{"version":3,"file":"form.mjs","sources":["../../../../../../../packages/components/form/src/config/form.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\r\n\r\nimport type { TooltipProps } from '@ll-plus/components'\r\nimport type {\r\n  FormProps as AntFormProps,\r\n  ColProps,\r\n  FormItemProps,\r\n  RowProps,\r\n} from 'ant-design-vue'\r\nimport type { ExtractPropTypes } from 'vue'\r\nimport type Form from '../form.vue'\r\n\r\ntype FormType<T = any> = (\r\n  | 'input'\r\n  | 'input-number'\r\n  | 'cascader'\r\n  | 'checkbox'\r\n  | 'checkbox-group'\r\n  | 'code-editor'\r\n  | 'date-picker'\r\n  | 'time-picker'\r\n  | 'date-range'\r\n  | 'time-range'\r\n  | 'radio'\r\n  | 'radio-group'\r\n  | 'select'\r\n  | 'switch'\r\n  | 'textarea'\r\n  | 'upload-image'\r\n) &\r\n  T\r\n\r\nexport interface FormChangeEvent {\r\n  item: FormColumn\r\n  value: any\r\n  formData: FormData\r\n}\r\nexport interface BasicFormColumn extends FormItemProps {\r\n  label?: string\r\n  key: string\r\n  spanCol?: number | 24 // 一行几条\r\n  colOptions?: ColProps\r\n  tip?: string\r\n  info?: string\r\n  tipConfig?: TooltipProps\r\n  type: FormType\r\n  unit?: string\r\n  change?: () => void\r\n  rowOptions?: RowProps\r\n  children?: FormColumn[]\r\n  [key: string]: any\r\n}\r\n\r\nexport type FormColumn<T = any> = BasicFormColumn & T\r\n\r\nexport type FormData = Record<string, any>\r\n\r\nexport const formProps = buildProps({\r\n  /**\r\n   * @description 表单项列表\r\n   */\r\n  formColumns: {\r\n    type: definePropType<FormColumn[]>(Array),\r\n    default: () => [],\r\n  },\r\n  /**\r\n   * @description 展开的行变化时触发\r\n   */\r\n  formOptions: {\r\n    type: definePropType<AntFormProps>(Object),\r\n    default: () => ({\r\n      layout: 'horizontal',\r\n    }),\r\n  },\r\n  /**\r\n   * @description 展开的行变化时触发\r\n   */\r\n  formData: {\r\n    type: definePropType<FormData>(Object),\r\n    default: () => ({}),\r\n  },\r\n  /**\r\n   * @description 展开的行变化时触发\r\n   */\r\n  rowOptions: {\r\n    type: definePropType<RowProps>(Object),\r\n    default: () => ({\r\n      gutter: 16,\r\n    }),\r\n  },\r\n  /**\r\n   * @description 表单加载状态\r\n   */\r\n  loading: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  /**\r\n   * @description 自动聚焦\r\n   */\r\n  autoFocus: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  /**\r\n   * @description 是否全体禁用\r\n   */\r\n  disabled: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  /**\r\n   * @description 当某一规则校验不通过时，是否停止剩下的规则的校验\r\n   */\r\n  validateErrorStop: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n} as const)\r\n\r\nexport const formEmits = {\r\n  /**\r\n   * @description 表单项值改变时触发\r\n   */\r\n  change: (params: FormChangeEvent) => !!params,\r\n  blur: (params: FormChangeEvent) => !!params,\r\n}\r\n\r\n// props\r\nexport type FormProps = ExtractPropTypes<typeof formProps>\r\n\r\n// emits\r\nexport type FormEmits = typeof formEmits\r\n\r\n// instance\r\nexport type FormInstance = InstanceType<typeof Form>\r\n"],"names":[],"mappings":";;;;AAyDO,MAAM,YAAY,UAAA,CAAW;AAAA;AAAA;AAAA;AAAA,EAIlC,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,eAA6B,KAAK,CAAA;AAAA,IACxC,OAAA,EAAS,MAAM;AAAC,GAClB;AAAA;AAAA;AAAA;AAAA,EAIA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,IACzC,SAAS,OAAO;AAAA,MACd,MAAA,EAAQ;AAAA,KACV;AAAA,GACF;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,eAAyB,MAAM,CAAA;AAAA,IACrC,OAAA,EAAS,OAAO,EAAC;AAAA,GACnB;AAAA;AAAA;AAAA;AAAA,EAIA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,eAAyB,MAAM,CAAA;AAAA,IACrC,SAAS,OAAO;AAAA,MACd,MAAA,EAAQ;AAAA,KACV;AAAA,GACF;AAAA;AAAA;AAAA;AAAA,EAIA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,iBAAA,EAAmB;AAAA,IACjB,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb,CAAU;AAEH,MAAM,SAAA,GAAY;AAAA;AAAA;AAAA;AAAA,EAIvB,MAAA,EAAQ,CAAC,MAAA,KAA4B,CAAC,CAAC,MAAA;AAAA,EACvC,IAAA,EAAM,CAAC,MAAA,KAA4B,CAAC,CAAC;AACvC;;;;"}