{"version":3,"file":"props.mjs","sources":["../../../components/form/props.ts"],"sourcesContent":["import {\n  booleanProp,\n  buildProps,\n  eventProp,\n  iconProp,\n  localeProp,\n  sizeProp\n} from '@vexip-ui/config'\n\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport type { IconEffect } from '@/components/icon'\nimport type { ConfigurableProps } from '@vexip-ui/config'\nimport type { ButtonAttrType, ButtonType } from '@/components/button'\nimport type { RowGridAlign, RowGridJustify } from '@/components/row'\nimport type { ColumnOptions } from '@/components/column'\nimport type { Rule } from './validator'\nimport type { FormLabelAlign, SubmitMethod } from './symbol'\n\nexport const formProps = buildProps({\n  method: String as PropType<SubmitMethod>,\n  action: String,\n  model: Object,\n  rules: Object,\n  labelWidth: [Number, String] as PropType<number | 'auto'>,\n  labelAlign: String as PropType<FormLabelAlign>,\n  allRequired: booleanProp,\n  labelSuffix: String,\n  hideAsterisk: booleanProp,\n  validateAll: booleanProp,\n  hideLabel: booleanProp,\n  disabled: booleanProp,\n  loading: booleanProp,\n  size: sizeProp,\n  inline: booleanProp,\n  gap: [Number, Array] as PropType<number | number[]>,\n  justify: String as PropType<RowGridJustify>,\n  align: String as PropType<RowGridAlign>\n})\n\nexport type FormProps = ExtractPropTypes<typeof formProps>\nexport type FormCProps = ConfigurableProps<FormProps, 'model'>\n\nconst mediaProp = [Number, Object] as PropType<number | ColumnOptions>\n\nexport const formItemProps = buildProps({\n  locale: localeProp('form'),\n  label: String,\n  prop: String,\n  name: String,\n  rules: [Object, Array] as PropType<Rule | Rule[]>,\n  labelWidth: Number,\n  required: booleanProp,\n  htmlFor: String,\n  errorTransition: String,\n  defaultValue: {\n    type: [String, Number, Boolean, Object, Array, Function] as PropType<any>,\n    default: null\n  },\n  hideErrorTip: booleanProp,\n  validateAll: booleanProp,\n  hideAsterisk: booleanProp,\n  hideLabel: booleanProp,\n  action: booleanProp,\n  help: String,\n  pure: booleanProp,\n  span: Number,\n  offset: Number,\n  push: Number,\n  pull: Number,\n  order: Number,\n  xs: mediaProp,\n  sm: mediaProp,\n  md: mediaProp,\n  lg: mediaProp,\n  xl: mediaProp,\n  xxl: mediaProp,\n  flex: [Number, String]\n})\n\nexport type FormItemProps = ExtractPropTypes<typeof formItemProps>\nexport type FormItemCProps = ConfigurableProps<FormItemProps, 'prop' | 'htmlFor' | 'defaultValue'>\n\nexport const formSubmitProps = buildProps({\n  size: sizeProp,\n  locale: localeProp('form'),\n  type: String as PropType<ButtonType>,\n  label: String,\n  dashed: booleanProp,\n  text: booleanProp,\n  simple: booleanProp,\n  ghost: booleanProp,\n  disabled: booleanProp,\n  circle: booleanProp,\n  loadingIcon: iconProp,\n  loadingEffect: String as PropType<IconEffect>,\n  icon: iconProp,\n  color: String,\n  buttonType: String as PropType<ButtonAttrType>,\n  block: booleanProp,\n  tag: String,\n  onBeforeSubmit: Function as PropType<() => unknown>,\n  onSubmit: eventProp(),\n  onError: eventProp<(errors: string[]) => void>()\n})\n\nexport type FormSubmitProps = ExtractPropTypes<typeof formSubmitProps>\nexport type FormSubmitCProps = ConfigurableProps<FormSubmitProps, never, 'onBeforeReset'>\n\nexport const formResetProps = buildProps({\n  size: sizeProp,\n  locale: localeProp('form'),\n  type: String as PropType<ButtonType>,\n  label: String,\n  dashed: booleanProp,\n  text: booleanProp,\n  simple: booleanProp,\n  ghost: booleanProp,\n  disabled: booleanProp,\n  loading: booleanProp,\n  circle: booleanProp,\n  loadingIcon: iconProp,\n  loadingEffect: String as PropType<IconEffect>,\n  icon: iconProp,\n  color: String,\n  buttonType: String as PropType<ButtonAttrType>,\n  block: booleanProp,\n  tag: String,\n  onBeforeReset: Function as PropType<() => unknown>,\n  onReset: eventProp()\n})\n\nexport type FormResetProps = ExtractPropTypes<typeof formResetProps>\nexport type FormResetCProps = ConfigurableProps<FormResetProps, never, 'onBeforeReset'>\n"],"names":["formProps","buildProps","booleanProp","sizeProp","mediaProp","formItemProps","localeProp","formSubmitProps","iconProp","eventProp","formResetProps"],"mappings":";AAkBO,MAAMA,IAAYC,EAAW;AAAA,EAClC,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,YAAY;AAAA,EACZ,aAAaC;AAAA,EACb,aAAa;AAAA,EACb,cAAcA;AAAA,EACd,aAAaA;AAAA,EACb,WAAWA;AAAA,EACX,UAAUA;AAAA,EACV,SAASA;AAAA,EACT,MAAMC;AAAA,EACN,QAAQD;AAAA,EACR,KAAK,CAAC,QAAQ,KAAK;AAAA,EACnB,SAAS;AAAA,EACT,OAAO;AACT,CAAC,GAKKE,IAAY,CAAC,QAAQ,MAAM,GAEpBC,IAAgBJ,EAAW;AAAA,EACtC,QAAQK,EAAW,MAAM;AAAA,EACzB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO,CAAC,QAAQ,KAAK;AAAA,EACrB,YAAY;AAAA,EACZ,UAAUJ;AAAA,EACV,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,cAAc;AAAA,IACZ,MAAM,CAAC,QAAQ,QAAQ,SAAS,QAAQ,OAAO,QAAQ;AAAA,IACvD,SAAS;AAAA,EACX;AAAA,EACA,cAAcA;AAAA,EACd,aAAaA;AAAA,EACb,cAAcA;AAAA,EACd,WAAWA;AAAA,EACX,QAAQA;AAAA,EACR,MAAM;AAAA,EACN,MAAMA;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,IAAIE;AAAA,EACJ,IAAIA;AAAA,EACJ,IAAIA;AAAA,EACJ,IAAIA;AAAA,EACJ,IAAIA;AAAA,EACJ,KAAKA;AAAA,EACL,MAAM,CAAC,QAAQ,MAAM;AACvB,CAAC,GAKYG,IAAkBN,EAAW;AAAA,EACxC,MAAME;AAAA,EACN,QAAQG,EAAW,MAAM;AAAA,EACzB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQJ;AAAA,EACR,MAAMA;AAAA,EACN,QAAQA;AAAA,EACR,OAAOA;AAAA,EACP,UAAUA;AAAA,EACV,QAAQA;AAAA,EACR,aAAaM;AAAA,EACb,eAAe;AAAA,EACf,MAAMA;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,OAAON;AAAA,EACP,KAAK;AAAA,EACL,gBAAgB;AAAA,EAChB,UAAUO,EAAU;AAAA,EACpB,SAASA,EAAsC;AACjD,CAAC,GAKYC,IAAiBT,EAAW;AAAA,EACvC,MAAME;AAAA,EACN,QAAQG,EAAW,MAAM;AAAA,EACzB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQJ;AAAA,EACR,MAAMA;AAAA,EACN,QAAQA;AAAA,EACR,OAAOA;AAAA,EACP,UAAUA;AAAA,EACV,SAASA;AAAA,EACT,QAAQA;AAAA,EACR,aAAaM;AAAA,EACb,eAAe;AAAA,EACf,MAAMA;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,OAAON;AAAA,EACP,KAAK;AAAA,EACL,eAAe;AAAA,EACf,SAASO,EAAU;AACrB,CAAC;"}