{"version":3,"file":"useFormilyForm.mjs","sources":["../../../../../package/hooks/formily/useFormilyForm.tsx"],"sourcesContent":["import {\n  DefineComponent,\n  ISchema,\n  ISchemaFieldProps,\n  SchemaKey,\n  VueComponent,\n  useForm\n} from \"@formily/vue\";\nimport { IFormProps, createForm } from \"@formily/core\";\nimport { PropType, computed, defineComponent, getCurrentInstance } from \"vue\";\nimport { FormLayout, formLayoutProps } from \"@vue-admin-core/formily\";\nimport { observer } from \"@formily/reactive-vue\";\n\nexport type FormilyFormSchema = ISchema[\"properties\"];\n\nexport const useFormilyForm = (\n  schema?: ISchema[\"properties\"],\n  options?: IFormProps<any>,\n  // SchemaField 组件\n  SchemaField?: DefineComponent<ISchemaFieldProps>\n) => {\n  const form = useForm();\n\n  const app = getCurrentInstance();\n\n  const SelfSchemaField = (app?.appContext.components.SchemaField ||\n    SchemaField) as DefineComponent<ISchemaFieldProps>;\n\n  if (!SelfSchemaField) {\n    throw new Error(`SchemaField 找不到，在全局设置app.use(setupFormily)或者传入SchemaField`);\n  }\n\n  if (!form.value) {\n    form.value = createForm(options);\n  }\n\n  const FormilyForm = defineComponent({\n    name: \"FormilyForm\",\n    props: {\n      ...formLayoutProps,\n      schema: {\n        type: Object as PropType<ISchema[\"properties\"]>\n      },\n      components: {\n        type: Object as PropType<Record<string, VueComponent>>\n      },\n      scope: {\n        type: Object\n      },\n      name: {\n        type: [String, Number] as PropType<SchemaKey>\n      },\n      definitions: {\n        type: Object as PropType<Record<string, ISchema>>\n      }\n    },\n    setup(props, { slots }) {\n      const { schema: schemaProps, components, scope, name, ...reset } = props;\n      const _schema = computed(() => ({\n        type: \"object\",\n        definitions: props.definitions,\n        properties: schemaProps || schema\n      }));\n      return () => (\n        <FormLayout {...reset}>\n          <SelfSchemaField\n            schema={_schema.value}\n            components={components}\n            scope={scope}\n            name={name}\n          ></SelfSchemaField>\n          {slots.default && slots.default()}\n        </FormLayout>\n      );\n    }\n  });\n\n  return {\n    form,\n    FormilyForm: observer(FormilyForm)\n  };\n};\n"],"names":["useFormilyForm","schema","options","SchemaField","form","useForm","app","getCurrentInstance","SelfSchemaField","appContext","components","Error","value","createForm","FormilyForm","defineComponent","name","props","formLayoutProps","type","Object","scope","String","Number","definitions","setup","slots","schemaProps","reset","_schema","computed","properties","_createVNode","FormLayout","default","observer"],"mappings":";;;;;;;AAeO,MAAMA,cAAiBA,GAAAA,CAC5BC,MACAC,EAAAA,OAAAA,EAEAC,WACG,KAAA;AACH,EAAA,MAAMC,OAAOC,OAAQ,EAAA,CAAA;AAErB,EAAA,MAAMC,MAAMC,kBAAmB,EAAA,CAAA;AAE/B,EAAA,MAAMC,eAAmBF,GAAAA,CAAAA,GAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAKG,UAAWC,CAAAA,UAAAA,CAAWP,WAClDA,KAAAA,WAAAA,CAAAA;AAEF,EAAA,IAAI,CAACK,eAAiB,EAAA;AACpB,IAAM,MAAA,IAAIG,MAAO,CAA0D,0HAAA,CAAA,CAAA,CAAA;AAAA,GAC7E;AAEA,EAAI,IAAA,CAACP,KAAKQ,KAAO,EAAA;AACfR,IAAKQ,IAAAA,CAAAA,KAAAA,GAAQC,WAAWX,OAAO,CAAA,CAAA;AAAA,GACjC;AAEA,EAAA,MAAMY,cAAcC,eAAgB,CAAA;AAAA,IAClCC,IAAM,EAAA,aAAA;AAAA,IACNC,KAAO,EAAA;AAAA,MACL,GAAGC,eAAAA;AAAAA,MACHjB,MAAQ,EAAA;AAAA,QACNkB,IAAMC,EAAAA,MAAAA;AAAAA,OACR;AAAA,MACAV,UAAY,EAAA;AAAA,QACVS,IAAMC,EAAAA,MAAAA;AAAAA,OACR;AAAA,MACAC,KAAO,EAAA;AAAA,QACLF,IAAMC,EAAAA,MAAAA;AAAAA,OACR;AAAA,MACAJ,IAAM,EAAA;AAAA,QACJG,IAAAA,EAAM,CAACG,MAAAA,EAAQC,MAAM,CAAA;AAAA,OACvB;AAAA,MACAC,WAAa,EAAA;AAAA,QACXL,IAAMC,EAAAA,MAAAA;AAAAA,OACR;AAAA,KACF;AAAA,IACAK,MAAMR,KAAO,EAAA;AAAA,MAAES,KAAAA;AAAAA,KAAS,EAAA;AACtB,MAAM,MAAA;AAAA,QAAEzB,MAAQ0B,EAAAA,WAAAA;AAAAA,QAAajB,UAAAA;AAAAA,QAAYW,KAAAA;AAAAA,QAAOL,IAAAA;AAAAA,QAAM,GAAGY,KAAAA;AAAAA,OAAUX,GAAAA,KAAAA,CAAAA;AACnE,MAAMY,MAAAA,OAAAA,GAAUC,SAAS,OAAO;AAAA,QAC9BX,IAAM,EAAA,QAAA;AAAA,QACNK,aAAaP,KAAMO,CAAAA,WAAAA;AAAAA,QACnBO,YAAYJ,WAAe1B,IAAAA,MAAAA;AAAAA,OAC3B,CAAA,CAAA,CAAA;AACF,MAAO,OAAA,MAAA+B,WAAAC,CAAAA,UAAAA,EACWL,KAAK,EAAA;AAAA,QAAAM,OAAAA,EAAAA,MAAAF,CAAAA,WAAAA,CAAAxB,eAAA,EAAA;AAAA,UAAA,UAETqB,OAAQjB,CAAAA,KAAAA;AAAAA,UAAK,YACTF,EAAAA,UAAAA;AAAAA,UAAU,OACfW,EAAAA,KAAAA;AAAAA,UAAK,MACNL,EAAAA,IAAAA;AAAAA,WAEPU,IAAAA,CAAAA,EAAAA,MAAMQ,OAAWR,IAAAA,KAAAA,CAAMQ,SAAS,CAAA;AAAA,OAEpC,CAAA,CAAA;AAAA,KACH;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL9B,IAAAA;AAAAA,IACAU,WAAAA,EAAaqB,SAASrB,WAAW,CAAA;AAAA,GACnC,CAAA;AACF;;;;"}