{"version":3,"file":"props.mjs","sources":["../../../components/form/props.ts"],"sourcesContent":["import {\r\n  booleanProp,\r\n  buildProps,\r\n  eventProp,\r\n  iconProp,\r\n  localeProp,\r\n  sizeProp,\r\n} from '@vexip-ui/config'\r\n\r\nimport type { ExtractPropTypes, PropType } from 'vue'\r\nimport type { IconEffect } from '@/components/icon'\r\nimport type { ConfigurableProps } from '@vexip-ui/config'\r\nimport type { ButtonAttrType, ButtonType } from '@/components/button'\r\nimport type { RowGridAlign, RowGridJustify } from '@/components/row'\r\nimport type { ColumnOptions } from '@/components/column'\r\nimport type { Rule } from './validator'\r\nimport type { FormLabelAlign, SubmitMethod } from './symbol'\r\n\r\nexport const formProps = buildProps({\r\n  method: String as PropType<SubmitMethod>,\r\n  action: String,\r\n  model: Object,\r\n  rules: Object,\r\n  labelWidth: [Number, String] as PropType<number | 'auto'>,\r\n  labelAlign: String as PropType<FormLabelAlign>,\r\n  allRequired: booleanProp,\r\n  labelSuffix: String,\r\n  hideAsterisk: booleanProp,\r\n  validateAll: booleanProp,\r\n  hideLabel: booleanProp,\r\n  disabled: booleanProp,\r\n  loading: booleanProp,\r\n  size: sizeProp,\r\n  inline: booleanProp,\r\n  gap: [Number, Array] as PropType<number | number[]>,\r\n  justify: String as PropType<RowGridJustify>,\r\n  align: String as PropType<RowGridAlign>,\r\n  onSubmit: eventProp<(e: SubmitEvent) => void>(),\r\n})\r\n\r\nexport type FormProps = ExtractPropTypes<typeof formProps>\r\nexport type FormCProps = ConfigurableProps<FormProps, 'model'>\r\n\r\nconst mediaProp = [Number, Object] as PropType<number | ColumnOptions>\r\n\r\nexport const formItemProps = buildProps({\r\n  locale: localeProp('form'),\r\n  label: String,\r\n  prop: String,\r\n  name: String,\r\n  rules: [Object, Array] as PropType<Rule | Rule[]>,\r\n  labelWidth: Number,\r\n  required: booleanProp,\r\n  htmlFor: String,\r\n  errorTransition: String,\r\n  defaultValue: {\r\n    type: [String, Number, Boolean, Object, Array, Function] as PropType<any>,\r\n    default: null,\r\n  },\r\n  hideErrorTip: booleanProp,\r\n  validateAll: booleanProp,\r\n  hideAsterisk: booleanProp,\r\n  hideLabel: booleanProp,\r\n  action: booleanProp,\r\n  help: String,\r\n  pure: booleanProp,\r\n  manual: booleanProp,\r\n  span: Number,\r\n  offset: Number,\r\n  push: Number,\r\n  pull: Number,\r\n  order: Number,\r\n  xs: mediaProp,\r\n  sm: mediaProp,\r\n  md: mediaProp,\r\n  lg: mediaProp,\r\n  xl: mediaProp,\r\n  xxl: mediaProp,\r\n  flex: [Number, String],\r\n})\r\n\r\nexport type FormItemProps = ExtractPropTypes<typeof formItemProps>\r\nexport type FormItemCProps = ConfigurableProps<FormItemProps, 'prop' | 'htmlFor' | 'defaultValue'>\r\n\r\nexport const formSubmitProps = buildProps({\r\n  size: sizeProp,\r\n  locale: localeProp('form'),\r\n  type: String as PropType<ButtonType>,\r\n  label: String,\r\n  dashed: booleanProp,\r\n  text: booleanProp,\r\n  simple: booleanProp,\r\n  ghost: booleanProp,\r\n  disabled: booleanProp,\r\n  circle: booleanProp,\r\n  loadingIcon: iconProp,\r\n  loadingEffect: String as PropType<IconEffect>,\r\n  icon: iconProp,\r\n  color: String,\r\n  buttonType: String as PropType<ButtonAttrType>,\r\n  block: booleanProp,\r\n  tag: String,\r\n  onBeforeSubmit: Function as PropType<() => unknown>,\r\n  onSubmit: eventProp(),\r\n  onError: eventProp<(errors: string[]) => void>(),\r\n})\r\n\r\nexport type FormSubmitProps = ExtractPropTypes<typeof formSubmitProps>\r\nexport type FormSubmitCProps = ConfigurableProps<FormSubmitProps, never, 'onBeforeReset'>\r\n\r\nexport const formResetProps = buildProps({\r\n  size: sizeProp,\r\n  locale: localeProp('form'),\r\n  type: String as PropType<ButtonType>,\r\n  label: String,\r\n  dashed: booleanProp,\r\n  text: booleanProp,\r\n  simple: booleanProp,\r\n  ghost: booleanProp,\r\n  disabled: booleanProp,\r\n  loading: booleanProp,\r\n  circle: booleanProp,\r\n  loadingIcon: iconProp,\r\n  loadingEffect: String as PropType<IconEffect>,\r\n  icon: iconProp,\r\n  color: String,\r\n  buttonType: String as PropType<ButtonAttrType>,\r\n  block: booleanProp,\r\n  tag: String,\r\n  onBeforeReset: Function as PropType<() => unknown>,\r\n  onReset: eventProp(),\r\n})\r\n\r\nexport type FormResetProps = ExtractPropTypes<typeof formResetProps>\r\nexport type FormResetCProps = ConfigurableProps<FormResetProps, never, 'onBeforeReset'>\r\n"],"names":["formProps","buildProps","booleanProp","sizeProp","eventProp","mediaProp","formItemProps","localeProp","formSubmitProps","iconProp","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;AAAA,EACP,UAAUE,EAAoC;AAChD,CAAC,GAKKC,IAAY,CAAC,QAAQ,MAAM,GAEpBC,IAAgBL,EAAW;AAAA,EACtC,QAAQM,EAAW,MAAM;AAAA,EACzB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO,CAAC,QAAQ,KAAK;AAAA,EACrB,YAAY;AAAA,EACZ,UAAUL;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,QAAQA;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,IAAIG;AAAA,EACJ,IAAIA;AAAA,EACJ,IAAIA;AAAA,EACJ,IAAIA;AAAA,EACJ,IAAIA;AAAA,EACJ,KAAKA;AAAA,EACL,MAAM,CAAC,QAAQ,MAAM;AACvB,CAAC,GAKYG,IAAkBP,EAAW;AAAA,EACxC,MAAME;AAAA,EACN,QAAQI,EAAW,MAAM;AAAA,EACzB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQL;AAAA,EACR,MAAMA;AAAA,EACN,QAAQA;AAAA,EACR,OAAOA;AAAA,EACP,UAAUA;AAAA,EACV,QAAQA;AAAA,EACR,aAAaO;AAAA,EACb,eAAe;AAAA,EACf,MAAMA;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,OAAOP;AAAA,EACP,KAAK;AAAA,EACL,gBAAgB;AAAA,EAChB,UAAUE,EAAU;AAAA,EACpB,SAASA,EAAsC;AACjD,CAAC,GAKYM,IAAiBT,EAAW;AAAA,EACvC,MAAME;AAAA,EACN,QAAQI,EAAW,MAAM;AAAA,EACzB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQL;AAAA,EACR,MAAMA;AAAA,EACN,QAAQA;AAAA,EACR,OAAOA;AAAA,EACP,UAAUA;AAAA,EACV,SAASA;AAAA,EACT,QAAQA;AAAA,EACR,aAAaO;AAAA,EACb,eAAe;AAAA,EACf,MAAMA;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,OAAOP;AAAA,EACP,KAAK;AAAA,EACL,eAAe;AAAA,EACf,SAASE,EAAU;AACrB,CAAC;"}