zova-module-a-form 5.1.22 → 5.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/component/form/controller.d.ts.map +1 -1
- package/dist/component/formField/controller.d.ts.map +1 -1
- package/dist/component/formField/render.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/beanControllerFormBase.d.ts.map +1 -1
- package/dist/lib/beanControllerPageFormBase.d.ts.map +1 -1
- package/dist/types/formField.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/component/form/controller.tsx +58 -14
- package/src/component/formField/controller.tsx +21 -8
- package/src/component/formField/render.tsx +12 -4
- package/src/lib/beanControllerFormBase.ts +41 -12
- package/src/lib/beanControllerPageFormBase.ts +11 -2
- package/src/types/formField.ts +34 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/form/controller.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAiB,MAAM,eAAe,CAAC;AAEtE,OAAO,EACL,QAAQ,EAST,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAkB,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnD,OAAO,EACL,SAAS,EACT,aAAa,EACb,+BAA+B,EAE/B,4BAA4B,EAC5B,oCAAoC,EACpC,mBAAmB,EACnB,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/form/controller.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/formField/controller.tsx"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAa,iBAAiB,EAAO,MAAM,MAAM,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAiB,MAAM,wBAAwB,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAEL,0BAA0B,EAE1B,uBAAuB,EAEvB,kCAAkC,EACnC,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,wBAAwB,
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/formField/controller.tsx"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAa,iBAAiB,EAAO,MAAM,MAAM,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAiB,MAAM,wBAAwB,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAEL,0BAA0B,EAE1B,uBAAuB,EAEvB,kCAAkC,EACnC,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,wBAAwB,CACvC,WAAW,SAAS,EAAE,GAAG,EAAE,CAC3B,SAAQ,0BAA0B,CAAC,WAAW,CAAC;CAAG;AAEpD,qBACa,mBAAmB,CAAC,WAAW,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,kBAAkB;IACtF,MAAM,CAAC,aAAa,KAAM;IAC1B,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAA2B;IAEtE,OAAO,CAAC,UAAU,CAAgB;IAC3B,WAAW,EAAE,kCAAkC,CAAC,WAAW,CAAC,CAAC;IAGpE,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAGpC,qBAAqB,EAAE,mBAAmB,CAAC;cAE3B,QAAQ;IAmCxB,IAAW,IAAI,8DAEd;IAED,IAAW,KAAK,IAAI,aAAa,CAEhC;IAED,IAAW,IAAI,uDAEd;IAED,IAAW,QAAQ,4EAElB;IAED,IAAW,cAAc,wFAExB;IAED,IAAW,QAAQ,0DAElB;IAED,IAAW,YAAY,kDAEtB;IAEM,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAAE,OAAO;IAOnD,UAAU;IAIV,gBAAgB,IAAI,uBAAuB,CAAC,WAAW,CAAC;IAgB/D,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,eAAe;IA4DvB,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,+BAA+B;IAevC,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,8BAA8B;CAoBvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/component/formField/render.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,MAAM,CAAC;AAKxD,qBACa,eAAe,CAAC,WAAW,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,cAAc;IACvE,MAAM;;;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/component/formField/render.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,MAAM,CAAC;AAKxD,qBACa,eAAe,CAAC,WAAW,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,cAAc;IACvE,MAAM;;;IAUb,OAAO,CAAC,kBAAkB;CAW3B"}
|
package/dist/index.js
CHANGED
|
@@ -445,9 +445,9 @@ var ControllerFormField = (_dec$5 = Controller(), _dec2$5 = BeanInfo({ module: "
|
|
|
445
445
|
const layoutOptions = Object.assign({
|
|
446
446
|
bordered: this.scope.config.formFieldLayout.bordered,
|
|
447
447
|
label: property?.title ?? name
|
|
448
|
-
}, this.$$form.$props.formFieldLayout,
|
|
449
|
-
const presetOptions = Object.assign({},
|
|
450
|
-
const propsBucket = Object.assign({ render: "Input" },
|
|
448
|
+
}, this.$$form.$props.formFieldLayout, this.$props?.layout, propsTop?.layout);
|
|
449
|
+
const presetOptions = Object.assign({}, this.$props?.options, propsTop?.options);
|
|
450
|
+
const propsBucket = Object.assign({ render: "Input" }, this.$props, propsTop, {
|
|
451
451
|
layout: layoutOptions,
|
|
452
452
|
options: presetOptions
|
|
453
453
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["catchError","celEnvBase","isEmptyObject","ZodMetadata","determineFormLevelErrorSourceAndValue","getBy","isGlobalFormValidationError","revalidateLogic","useStore","cast","deepEqual","deepExtend","objectAssignReactive","UseScope","isJsxComponent","ZovaJsx","Controller","renderFormFieldTopPropsSystem","BeanControllerFormBase","constFieldProps","ControllerForm","_dec","_dec2","__z_BeanInfo","module","_dec3","_dec4","Reflect","metadata","ScopeModuleAOpenapi","Object","_class","_class2","_ControllerForm","constructor","args","formProvider","schema","zodSchema","properties","zovaJsx","fieldCelEnv","_initializerDefineProperty","_descriptor","__init__","bean","_setBean","form","_createForm","formState","store","state","$computed","$$scopeOpenapi","config","$props","_getZodSchema","$sdk","loadSchemaProperties","schemaScene","_getFieldCelEnv","_newBeanSimple","components","$watch","data","newValue","oldValue","reset","submit","submitMeta","_","error","handleSubmit","isValid","values","opts","formMeta","getFieldValue","name","setFieldValue","value","disableNotifyChanged","onChanged","getFieldProperty","find","item","key","getFieldZodSchema","getFieldSchema","celEnv","clone","registerFunction","getFieldScope","scopeExtra","formScope","property","getFieldJsxRenderContext","$$formField","celScope","app","ctx","$scene","$host","$celScope","$jsx","$$form","getFieldComponentPropsTop","jsxRenderContext","props","_getFieldComponentPropsTopInner","rest","keys","filter","includes","length","keyValue","evaluateExpression","renderJsxOrCel","undefined","needAppend","render","isComponentFormField","type","propsAppend","assign","getRenderProvider","_patchZodSchema","schemaToZodSchema","def","options","Error","$useForm","defaultValues","validationLogic","validateOnDynamic","validateOnDynamicLogic","onSubmitInvalid","onSubmit","onSubmitData","resHandled","meta","event","emit","code","_handleError422","onShowError","renderField","propsExtra","_renderFieldByKey","visible","componentOptions","_getFieldComponentOptionsTop","renderProvider","cause","formApi","hasErrored","currentValidationErrorMap","rawError","parseIssues","formError","fieldErrors","normalizeError","errorMapKey","getErrorMapKey","field","fieldMeta","baseStore","fieldMetaBase","getFieldMeta","errorMap","currentErrorMap","errorSourceMap","currentErrorMapSource","newFormValidatorError","newErrorValue","newSource","isPreviousErrorFromFormValidator","previousErrorValue","setFieldMeta","prev","setState","submitErrKey","serverErrKey","$propsDefault","formTag","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","issues","message","JSON","parse","fields","issue","path","join","isNil","useField","useStore","markRaw","BeanControllerBase","deepEqual","Use","Controller","constFieldProps","ControllerFormField","_dec","_dec2","__z_BeanInfo","module","_dec3","injectionScope","_dec4","Reflect","metadata","ControllerForm","Object","_dec5","_dec6","BeanBehaviorsHolder","_class","_class2","_ControllerFormField","constructor","args","_formField","propsBucket","_initializerDefineProperty","_descriptor","_descriptor2","__init__","$$form","Error","name","bean","_setBean","_createField","$computed","_getPropsBucket","$watch","property","newValue","oldValue","options","_getFormFieldOptions","api","update","form","resetField","$$beanBehaviorsHolder","initialize","behaviorTag","undefined","behaviors","_getFieldBehaviors","field","$props","getFieldProperty","fieldZodSchema","getFieldZodSchema","formMeta","formProvider","setValue","value","disableNotifyChanged","setFieldValue","handleBlur","getRenderContext","props","key","class","readonly","celScope","getFieldScope","jsxRenderContext","getFieldJsxRenderContext","fieldState","store","state","propsTop","_getFieldComponentPropsTop","layoutOptions","assign","bordered","scope","config","formFieldLayout","label","title","layout","presetOptions","render","style","$cssMerge","$style","classTemp","styleTemp","readonlyTemp","formMode","renderProvider","getRenderProvider","getFieldComponentPropsTop","_prepareBehaviorFormField","_prepareBehaviorFormFieldLayout","behaviorFormField","FormField","behaviorFormFieldLayout","FormFieldLayout","getFieldValue","defaultValue","sys","default","validators","_getFormFieldOptionsValidators","zodSchemaField","validateOnDynamicDefault","onDynamic","onBlur","onChange","validateOnDynamic","validateOnBlur","validateOnChange","_normalizeValidateSchema","$propsDefault","$componentOptions","inheritAttrs","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","validateSchema","BeanControllerBase","Use","Controller","ControllerForm","ControllerFormFieldBlank","_dec","_dec2","__z_BeanInfo","module","_dec3","injectionScope","_dec4","Reflect","metadata","Object","_class","_class2","_ControllerFormFieldBlank","constructor","args","_initializerDefineProperty","_descriptor","__init__","render","$slotDefault","$$form","$propsDefault","$componentOptions","inheritAttrs","deepExtendDefault","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","BeanControllerBase","Use","Controller","ControllerFormFieldPreset","_dec","_dec2","__z_BeanInfo","module","_dec3","injectionScope","_dec4","Reflect","metadata","ControllerForm","Object","_class","_class2","_ControllerFormFieldPreset","constructor","args","_initializerDefineProperty","_descriptor","__init__","render","name","$props","Error","$$form","renderField","$propsDefault","$componentOptions","inheritAttrs","deepExtendDefault","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","h","BeanRenderBase","Render","RenderForm","_dec","_dec2","__z_BeanInfo","module","_class","_renderSchema","properties","children","property","child","_renderFieldByKey","key","Array","isArray","push","_renderChildren","$props","slotHeader","bodyInner","_renderBodyInner","slotBody","slotFooter","FormTag","formTag","$slotDefault","_createVNode","_Fragment","display","_renderProps","props","inline","class","onSubmit","e","onFormSubmit","preventDefault","stopPropagation","submit","render","slotWrapper","BeanRenderBase","SymbolController","Render","RenderFormField","_dec","_dec2","__z_BeanInfo","module","_class","render","renderContext","getRenderContext","$$beanBehaviorsHolder","_renderSlotDefault","$slotDefault","$$form","zovaJsx","propsBucket","props","celScope","jsxRenderContext"],"sources":["../src/lib/beanControllerFormBase.ts","../src/types/formField.ts","../src/component/form/controller.tsx","../src/component/formField/controller.tsx","../src/component/formFieldBlank/controller.tsx","../src/component/formFieldPreset/controller.tsx","../src/component/form/render.tsx","../src/.metadata/component/form.ts","../src/component/formField/render.tsx","../src/.metadata/component/formField.ts","../src/.metadata/component/formFieldBlank.ts","../src/.metadata/component/formFieldPreset.ts","../src/config/config.ts","../src/.metadata/index.ts","../src/lib/beanControllerPageFormBase.ts","../src/lib/utils.ts"],"sourcesContent":["import type { FormApi, FormAsyncValidateOrFn, FormOptions, FormValidateOrFn, VueFormApi } from '@tanstack/vue-form';\n\nimport { useForm } from '@tanstack/vue-form';\nimport { markRaw } from 'vue';\nimport { BeanControllerBase } from 'zova';\n\nimport { TypeForm } from '../types/form.js';\n\nexport class BeanControllerFormBase<TFormData extends {} = {}, TSubmitMeta = never> extends BeanControllerBase {\n form: TypeForm<TFormData, TSubmitMeta>;\n formState: TypeForm<TFormData>['state'];\n\n public async submit(_submitMeta?: TSubmitMeta): Promise<boolean> {\n throw new Error('should implement submit');\n }\n\n public reset(_values?: TFormData, _opts?: { keepDefaultValues?: boolean }): TFormData {\n throw new Error('should implement reset');\n }\n\n public $useForm<\n TFormData,\n TSubmitMeta = never,\n TFormOnMount extends undefined | FormValidateOrFn<TFormData> = undefined | FormValidateOrFn<TFormData>,\n TFormOnChange extends undefined | FormValidateOrFn<TFormData> = undefined | FormValidateOrFn<TFormData>,\n TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData> = undefined | FormAsyncValidateOrFn<TFormData>,\n TFormOnBlur extends undefined | FormValidateOrFn<TFormData> = undefined | FormValidateOrFn<TFormData>,\n TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData> = undefined | FormAsyncValidateOrFn<TFormData>,\n TFormOnSubmit extends undefined | FormValidateOrFn<TFormData> = undefined | FormValidateOrFn<TFormData>,\n TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData> = undefined | FormAsyncValidateOrFn<TFormData>,\n TFormOnDynamic extends undefined | FormValidateOrFn<TFormData> = undefined | FormValidateOrFn<TFormData>,\n TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData> = undefined | FormAsyncValidateOrFn<TFormData>,\n TFormOnServer extends undefined | FormAsyncValidateOrFn<TFormData> = undefined | FormAsyncValidateOrFn<TFormData>,\n >(\n opts?: FormOptions<\n TFormData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n >,\n ): FormApi<\n TFormData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n > &\n VueFormApi<\n TFormData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n > {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useForm(opts));\n });\n }\n}\n","import type { SchemaObject } from 'openapi3-ts/oas31';\nimport type { VNode } from 'vue';\nimport type z from 'zod';\nimport type { IBehaviorItem } from 'zova-module-a-behavior';\nimport type {\n IJsxRenderContextBase,\n IResourceFormFieldLayoutOptions,\n ISchemaRenderComponentPresetRecord,\n TypeFormFieldRenderComponent,\n TypeFormFieldRenderComponentProvider,\n TypeRenderComponentPreset,\n} from 'zova-module-a-openapi';\n\nimport { DeepKeys } from '@tanstack/vue-form';\nimport { types } from 'typestyle';\n\nimport type { ControllerForm } from '../component/form/controller.jsx';\nimport type { ControllerFormField } from '../component/formField/controller.jsx';\nimport type { TypeBehaviorFormFieldOptions } from './form.js';\n\nexport type HTMLInputElementType = 'text' | 'password' | 'number' | 'file' | 'hidden' | 'tel' | 'email';\nexport const constFieldProps = '$$FieldProps';\n\nexport interface IFormFieldScope<TParentData = {}> {\n name: string;\n value: any;\n property?: SchemaObject;\n render?: IFormFieldRenderContext<TParentData>;\n}\n\nexport interface IFormFieldLayoutOptionsBase {\n layout?: IResourceFormFieldLayoutOptions;\n}\n\nexport interface IFormFieldSysOptionsBase<TParentData = {}> {\n sys?: Omit<TypeBehaviorFormFieldOptions<TParentData>, 'name'>;\n}\n\nexport interface IFormFieldValidatorsOptionsBase {\n onDynamic?: boolean | z.ZodType;\n onChange?: boolean | z.ZodType;\n onBlur?: boolean | z.ZodType;\n}\n\nexport interface IFormFieldOptionsBase<TParentData = {}, TName extends DeepKeys<TParentData> = DeepKeys<TParentData>> {\n name?: TName;\n render?: TypeRenderComponentPreset;\n class?: any;\n style?: types.NestedCSSProperties;\n value?: any;\n readonly?: boolean;\n disableNotifyChanged?: boolean;\n validators?: IFormFieldValidatorsOptionsBase;\n // onChange?: (e: Event) => void; // allow set to null, but not provide null type\n // onInput?: (e: Event) => void; // allow set to null, but not provide null type\n // onBlur?: (e: Event) => void; // allow set to null, but not provide null type\n}\n\nexport interface IFormFieldPresetOptions<PresetName extends keyof ISchemaRenderComponentPresetRecord = never> extends IFormFieldComponentOptions {\n render?: PresetName;\n options?: ISchemaRenderComponentPresetRecord[PresetName];\n}\n\nexport interface IFormFieldComponentOptions<TParentData = {}> extends IFormFieldOptions<TParentData> {\n options?: any;\n}\n\nexport interface IFormFieldOptions<TParentData = {}>\n extends IFormFieldSysOptionsBase<TParentData>, IFormFieldOptionsBase<TParentData>, IFormFieldLayoutOptionsBase {\n behaviors?: IBehaviorItem;\n slotDefault?: (props: IFormFieldRenderContext<TParentData>, formField: ControllerFormField) => VNode;\n}\n\nexport interface IFormFieldRenderContextProps {\n key?: string;\n name?: string;\n class?: any;\n readonly?: boolean;\n}\n\n// export interface IFormFieldRenderContextProps {\n// name?: string;\n// value?: any;\n// type?: any; // not use string for quasar\n// readonly?: boolean;\n// placeholder?: string;\n// class?: any;\n// onChange?: (e: Event) => void;\n// onInput?: (e: Event) => void;\n// onBlur?: (e: Event) => void;\n// }\n\nexport interface IFormFieldRenderContextPropsBucket<TParentData = {}> extends Omit<IFormFieldOptions<TParentData>, 'render'> {\n options?: any;\n render: TypeFormFieldRenderComponent;\n renderProvider?: TypeFormFieldRenderComponentProvider;\n needHandleBorder?: boolean;\n}\n\nexport interface IFormFieldRenderContext<TParentData = {}> {\n propsBucket: IFormFieldRenderContextPropsBucket<TParentData>;\n props: IFormFieldRenderContextProps;\n celScope: IFormFieldScope<TParentData>;\n jsxRenderContext: {};\n}\n\nexport interface IJsxRenderContextFormField<TParentData extends {} = {}, TSubmitMeta = never> extends IJsxRenderContextBase {\n $celScope: IFormFieldScope<TParentData>;\n $$formField: ControllerFormField<TParentData> | undefined;\n $$form: ControllerForm<TParentData, TSubmitMeta>;\n}\n\nexport interface IJsxRenderContextForm<TParentData extends {} = {}> extends IJsxRenderContextBase {\n $celScope: IFormFieldScope<TParentData>;\n $$form: ControllerForm<TParentData>;\n}\n","import { catchError, celEnvBase, isEmptyObject } from '@cabloy/utils';\nimport { ZodMetadata } from '@cabloy/zod-openapi';\nimport {\n DeepKeys,\n determineFormLevelErrorSourceAndValue,\n FormValidationError,\n getBy,\n isGlobalFormValidationError,\n revalidateLogic,\n useStore,\n ValidationCause,\n ValidationError,\n} from '@tanstack/vue-form';\nimport { SchemaObject } from 'openapi3-ts/oas31';\nimport { VNode } from 'vue';\nimport { z } from 'zod';\nimport { $ZodIssue } from 'zod/v4/core';\nimport { cast, deepEqual, deepExtend, objectAssignReactive, UseScope } from 'zova';\nimport { isJsxComponent, ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\nimport {\n IFormMeta,\n IFormProvider,\n IResourceFormFieldLayoutOptions,\n renderFormFieldTopPropsSystem,\n TypeFormFieldRenderComponent,\n TypeFormFieldRenderComponentProvider,\n TypeFormSchemaScene,\n ScopeModuleAOpenapi,\n ISchemaObjectExtensionField,\n} from 'zova-module-a-openapi';\n\nimport { BeanControllerFormBase } from '../../lib/beanControllerFormBase.js';\nimport { IFormScope, RevalidateLogicProps, TypeFormOnShowError, TypeFormOnSubmit, TypeFormOnSubmitInvalid } from '../../types/form.js';\nimport {\n constFieldProps,\n IFormFieldOptions,\n IFormFieldRenderContextPropsBucket,\n IFormFieldScope,\n IJsxRenderContextFormField,\n} from '../../types/formField.js';\nimport { ControllerFormField } from '../formField/controller.jsx';\n\nexport interface ControllerFormProps<TFormData extends {} = {}, TSubmitMeta = never> {\n formTag?: string;\n inline?: boolean;\n data?: TFormData;\n schema?: SchemaObject;\n schemaScene?: TypeFormSchemaScene;\n zodSchema?: z.ZodObject<any>;\n validateOnDynamic?: boolean;\n validateOnDynamicLogic?: RevalidateLogicProps;\n formMeta?: IFormMeta;\n formProvider?: IFormProvider;\n formScope?: IFormScope;\n formFieldLayout?: IResourceFormFieldLayoutOptions;\n onFormSubmit?: (e: SubmitEvent, form: ControllerForm<TFormData, TSubmitMeta>) => any;\n onSubmitInvalid?: TypeFormOnSubmitInvalid<TFormData, TSubmitMeta>;\n onSubmitData?: TypeFormOnSubmit<TFormData, TSubmitMeta>;\n onShowError?: TypeFormOnShowError<TFormData, TSubmitMeta>;\n onChanged?: (data: TFormData) => void;\n slotDefault?: (form: ControllerForm<TFormData, TSubmitMeta>) => VNode;\n slotHeader?: (form: ControllerForm<TFormData, TSubmitMeta>) => VNode;\n slotBody?: (children: VNode, form: ControllerForm<TFormData, TSubmitMeta>) => VNode;\n slotFooter?: (form: ControllerForm<TFormData, TSubmitMeta>) => VNode;\n slotWrapper?: (children: (VNode | undefined)[], form: ControllerForm<TFormData, TSubmitMeta>) => VNode;\n}\n@Controller()\nexport class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> extends BeanControllerFormBase<TFormData, TSubmitMeta> {\n static $propsDefault = { formTag: 'form', schemaScene: 'form' };\n\n formProvider: IFormProvider;\n schema: SchemaObject | undefined;\n zodSchema: z.ZodObject<any> | undefined;\n properties: ISchemaObjectExtensionField[] | undefined;\n zovaJsx: ZovaJsx;\n fieldCelEnv: typeof celEnvBase;\n\n @UseScope()\n $$scopeOpenapi: ScopeModuleAOpenapi;\n\n protected async __init__() {\n this.bean._setBean('$$form', this);\n this.form = this._createForm();\n this.formState = useStore(this.form.store, state => state) as any;\n this.formProvider = this.$computed(() => {\n const formProvider = this.$$scopeOpenapi.config.formProvider;\n return this.$props.formProvider ? deepExtend({}, formProvider, this.$props.formProvider) : formProvider;\n });\n this.schema = this.$computed(() => {\n return this.$props.schema;\n });\n this.zodSchema = this.$computed(() => {\n return this._getZodSchema();\n });\n this.properties = this.$computed(() => {\n return this.$sdk.loadSchemaProperties(this.schema, this.$props.schemaScene);\n });\n this.fieldCelEnv = this._getFieldCelEnv();\n this.zovaJsx = this.bean._newBeanSimple(ZovaJsx, false, this.formProvider.components, this.fieldCelEnv);\n this.$watch(\n () => this.$props.data,\n (newValue, oldValue) => {\n if (deepEqual(newValue, oldValue)) return;\n this.reset(this.$props.data);\n },\n );\n }\n\n public async submit(submitMeta?: TSubmitMeta): Promise<boolean> {\n const [_, error] = await catchError(() => {\n return this.form.handleSubmit(submitMeta as any);\n });\n return !error && this.formState.isValid;\n }\n\n public reset(values?: TFormData, opts?: { keepDefaultValues?: boolean }): TFormData {\n this.form.reset(values ?? ({} as TFormData), opts);\n return this.form.state.values;\n }\n\n public get formMeta() {\n return this.$props.formMeta;\n }\n\n public getFieldValue<K extends DeepKeys<TFormData>>(name: K) {\n return getBy(this.formState.values, name) ?? null;\n }\n\n public setFieldValue<K extends DeepKeys<TFormData>>(name: K, value: any, disableNotifyChanged?: boolean) {\n this.form.setFieldValue(name, value);\n if (!disableNotifyChanged) {\n this.$props.onChanged?.(this.formState.values);\n }\n }\n\n public getFieldProperty<K extends DeepKeys<TFormData>>(name: K): ISchemaObjectExtensionField | undefined {\n if (!this.properties) return;\n return this.properties.find(item => item.key === name);\n }\n\n public getFieldZodSchema<K extends DeepKeys<TFormData>>(name: K) {\n return ZodMetadata.getFieldSchema(this.zodSchema, name as string);\n }\n\n private _getFieldCelEnv(): typeof celEnvBase {\n const celEnv = celEnvBase.clone();\n celEnv.registerFunction('getValue(string):dyn', name => {\n return this.form.getFieldValue(name) ?? null;\n });\n celEnv.registerFunction('getProperty(string):dyn', name => {\n return this.getFieldProperty(name) ?? null;\n });\n return celEnv;\n }\n\n public getFieldScope<K extends DeepKeys<TFormData>>(name: K, scopeExtra?: {}): IFormFieldScope<TFormData> {\n return objectAssignReactive({}, this.$props.formScope, {\n name,\n value: this.getFieldValue(name),\n property: this.getFieldProperty(name),\n ...scopeExtra,\n });\n }\n\n public getFieldJsxRenderContext(\n $$formField: ControllerFormField<TFormData> | undefined,\n celScope: IFormFieldScope<TFormData>,\n ): IJsxRenderContextFormField<TFormData, TSubmitMeta> {\n return {\n app: this.app,\n ctx: this.ctx,\n $scene: 'formField',\n $host: $$formField ?? this,\n $celScope: celScope,\n $jsx: this.zovaJsx,\n $$formField,\n $$form: this,\n };\n }\n\n public getFieldComponentPropsTop<K extends DeepKeys<TFormData>>(\n name: K,\n celScope: IFormFieldScope<TFormData>,\n jsxRenderContext: {},\n ): IFormFieldRenderContextPropsBucket {\n const props = this._getFieldComponentPropsTopInner(name, celScope, jsxRenderContext);\n return props;\n }\n\n private _getFieldComponentPropsTopInner<K extends DeepKeys<TFormData>>(\n name: K,\n celScope: IFormFieldScope<TFormData>,\n jsxRenderContext: {},\n ): IFormFieldRenderContextPropsBucket {\n let props: any = {\n [constFieldProps]: true,\n key: name,\n name,\n value: celScope.value,\n };\n const property = this.getFieldProperty(name);\n if (!property) return props;\n const rest = property.rest;\n if (!rest) return props;\n const keys = Object.keys(rest).filter(item => !renderFormFieldTopPropsSystem.includes(item));\n if (keys.length === 0) return props;\n for (const key of keys) {\n const value = rest[key];\n let keyValue;\n if (key === 'render') {\n if (typeof value === 'string') {\n keyValue = this.zovaJsx.evaluateExpression(value, celScope);\n } else {\n keyValue = value;\n }\n } else {\n keyValue = this.zovaJsx.renderJsxOrCel(value, undefined, celScope, jsxRenderContext);\n }\n props[key] = keyValue;\n }\n // render\n const needAppend = isJsxComponent(props.render) && this.isComponentFormField(props.render.type);\n if (needAppend && !isEmptyObject(props.render.props)) {\n const propsAppend = this.zovaJsx.renderJsxOrCel(props.render.props, undefined, celScope, jsxRenderContext);\n props = Object.assign({}, props, propsAppend);\n }\n // ok\n return props;\n }\n\n // public getRenderFlattern(render: TypeFormFieldRenderComponent): TypeFormFieldRenderComponent {\n // return isJsxComponent(render) ? cast(render).type : render;\n // }\n\n public getRenderProvider(render: TypeFormFieldRenderComponent): TypeFormFieldRenderComponentProvider {\n if (isJsxComponent(render)) {\n return cast(render).type;\n }\n if (typeof render === 'string') {\n return this.formProvider.components?.[render] ?? render;\n }\n return render as TypeFormFieldRenderComponentProvider;\n }\n\n private _getZodSchema() {\n if (this.$props.zodSchema) return this._patchZodSchema(this.$props.zodSchema);\n if (!this.schema) return;\n return this._patchZodSchema(this.$sdk.schemaToZodSchema(this.schema));\n }\n\n private _patchZodSchema(schema: z.ZodObject<any> | z.ZodUnion<any>) {\n if (schema.def.type === 'object') return schema;\n if (schema.def.type === 'union') {\n return schema.def.options.find(item => item.def.type === 'object');\n }\n throw new Error('invalid zod schema');\n }\n\n private _createForm() {\n // not use $computed\n return this.$useForm<TFormData, TSubmitMeta>({\n defaultValues: this.$props.data,\n validationLogic: this.$props.validateOnDynamic !== false ? revalidateLogic(this.$props.validateOnDynamicLogic) : undefined,\n onSubmitInvalid: data => {\n this.$props.onSubmitInvalid?.(data, this);\n },\n onSubmit: async data => {\n const [_, error] = await catchError(() => {\n return this.$props.onSubmitData?.(data, this);\n });\n // emit event\n const resHandled = await this.app.meta.event.emit('a-form:formSubmission', {\n form: this.form as any,\n data,\n error,\n });\n if (!error) return;\n if (error.code === 422) {\n this._handleError422(error);\n this.$props.onSubmitInvalid?.(data, this);\n } else {\n if (!resHandled) {\n this.$props.onShowError?.({ data, error }, this);\n }\n }\n // must throw error for stop next logic\n throw error;\n },\n });\n }\n\n public renderField<K extends DeepKeys<TFormData>>(name: K, propsExtra?: IFormFieldOptions<TFormData>) {\n const property = this.getFieldProperty(name);\n const key = property?.key ?? name;\n return this._renderFieldByKey(key, propsExtra);\n }\n\n protected _renderFieldByKey(key: string, propsExtra?: IFormFieldOptions<TFormData>) {\n // celScope\n const celScope = this.getFieldScope(key);\n const jsxRenderContext = this.getFieldJsxRenderContext(undefined, celScope);\n // props\n let props = this.getFieldComponentPropsTop(key, celScope, jsxRenderContext);\n if (propsExtra) {\n props = Object.assign({}, props, propsExtra);\n }\n if (cast(props).visible === false) return;\n const componentOptions = this._getFieldComponentOptionsTop(props.render);\n return this.zovaJsx.render(componentOptions, props, celScope, jsxRenderContext);\n }\n\n private _getFieldComponentOptionsTop(render: TypeFormFieldRenderComponent): TypeFormFieldRenderComponent {\n render = render ?? 'Input';\n const renderProvider = this.getRenderProvider(render);\n if (this.isComponentFormField(renderProvider)) {\n return renderProvider as TypeFormFieldRenderComponent;\n }\n return 'a-form:formField';\n }\n\n public isComponentFormField(renderProvider?: TypeFormFieldRenderComponentProvider) {\n return typeof renderProvider === 'string' && renderProvider.includes(':formField');\n }\n\n private _handleError422(error: Error, cause: ValidationCause = 'submit') {\n const formApi = this.form;\n\n let hasErrored = false as boolean;\n\n // This map will only include fields that have errors in the current validation cycle\n const currentValidationErrorMap: any = {};\n\n const rawError = parseIssues(error);\n const { formError, fieldErrors } = normalizeError<TFormData>(rawError);\n\n const errorMapKey = getErrorMapKey(cause);\n\n for (const field of Object.keys(formApi.state.fieldMeta) as DeepKeys<TFormData>[]) {\n if (formApi.baseStore.state.fieldMetaBase[field] === undefined) {\n continue;\n }\n\n const fieldMeta = formApi.getFieldMeta(field);\n if (!fieldMeta) continue;\n\n const { errorMap: currentErrorMap, errorSourceMap: currentErrorMapSource } = fieldMeta;\n\n const newFormValidatorError = fieldErrors?.[field];\n\n const { newErrorValue, newSource } = determineFormLevelErrorSourceAndValue({\n newFormValidatorError,\n isPreviousErrorFromFormValidator: currentErrorMapSource?.[errorMapKey] === 'form',\n previousErrorValue: currentErrorMap?.[errorMapKey],\n });\n\n if (newSource === 'form') {\n currentValidationErrorMap[field] = {\n ...currentValidationErrorMap[field],\n [errorMapKey]: newFormValidatorError,\n };\n }\n\n if (currentErrorMap?.[errorMapKey] !== newErrorValue) {\n formApi.setFieldMeta(field, prev => ({\n ...prev,\n errorMap: {\n ...prev.errorMap,\n [errorMapKey]: newErrorValue,\n },\n errorSourceMap: {\n ...prev.errorSourceMap,\n [errorMapKey]: newSource,\n },\n }));\n }\n }\n\n if (formApi.state.errorMap?.[errorMapKey] !== formError) {\n formApi.baseStore.setState(prev => ({\n ...prev,\n errorMap: {\n ...prev.errorMap,\n [errorMapKey]: formError,\n },\n }));\n }\n\n if (formError || fieldErrors) {\n hasErrored = true;\n }\n\n /**\n * when we have an error for onSubmit in the state, we want\n * to clear the error as soon as the user enters a valid value in the field\n */\n const submitErrKey = getErrorMapKey('submit');\n if (formApi.state.errorMap?.[submitErrKey] && cause !== 'submit' && !hasErrored) {\n formApi.baseStore.setState(prev => ({\n ...prev,\n errorMap: {\n ...prev.errorMap,\n [submitErrKey]: undefined,\n },\n }));\n }\n\n /**\n * when we have an error for onServer in the state, we want\n * to clear the error as soon as the user enters a valid value in the field\n */\n const serverErrKey = getErrorMapKey('server');\n if (formApi.state.errorMap?.[serverErrKey] && cause !== 'server' && !hasErrored) {\n formApi.baseStore.setState(prev => ({\n ...prev,\n errorMap: {\n ...prev.errorMap,\n [serverErrKey]: undefined,\n },\n }));\n }\n }\n}\n\nfunction parseIssues(error: Error) {\n const issues: $ZodIssue[] = typeof error.message === 'string' ? JSON.parse(error.message) : error.message;\n const fields = {};\n for (const issue of issues) {\n const key = issue.path.join('.');\n fields[key] = issue;\n }\n return { fields };\n}\n\nfunction normalizeError<TFormData>(rawError?: FormValidationError<unknown>): {\n formError: ValidationError;\n fieldErrors?: Partial<Record<DeepKeys<TFormData>, ValidationError>>;\n} {\n if (rawError) {\n if (isGlobalFormValidationError(rawError)) {\n const formError = normalizeError(rawError.form).formError;\n const fieldErrors = rawError.fields;\n return { formError, fieldErrors } as never;\n }\n\n return { formError: rawError };\n }\n\n return { formError: undefined };\n}\n\nfunction getErrorMapKey(cause: ValidationCause) {\n switch (cause) {\n case 'submit':\n return 'onSubmit';\n case 'blur':\n return 'onBlur';\n case 'mount':\n return 'onMount';\n case 'server':\n return 'onServer';\n case 'dynamic':\n return 'onDynamic';\n case 'change':\n default:\n return 'onChange';\n }\n}\n","import { isNil } from '@cabloy/utils';\nimport { useField, useStore } from '@tanstack/vue-form';\nimport { markRaw } from 'vue';\nimport z from 'zod';\nimport { BeanControllerBase, deepEqual, IComponentOptions, Use } from 'zova';\nimport { Controller } from 'zova-module-a-bean';\nimport { BeanBehaviorsHolder, IBehaviorItem } from 'zova-module-a-behavior';\n\nimport type { ControllerForm } from '../form/controller.jsx';\n\nimport { TypeFormField } from '../../types/form.js';\nimport {\n constFieldProps,\n IFormFieldComponentOptions,\n IFormFieldOptions,\n IFormFieldRenderContext,\n IFormFieldRenderContextProps,\n IFormFieldRenderContextPropsBucket,\n} from '../../types/formField.js';\n\nexport interface ControllerFormFieldProps<TParentData extends {} = {}> extends IFormFieldComponentOptions<TParentData> {}\n\n@Controller()\nexport class ControllerFormField<TParentData extends {} = {}> extends BeanControllerBase {\n static $propsDefault = {};\n static $componentOptions: IComponentOptions = { inheritAttrs: false };\n\n private _formField: TypeFormField;\n public propsBucket: IFormFieldRenderContextPropsBucket<TParentData>;\n\n @Use({ injectionScope: 'host' })\n $$form: ControllerForm<TParentData>;\n\n @Use()\n $$beanBehaviorsHolder: BeanBehaviorsHolder;\n\n protected async __init__() {\n if (!this.$$form) {\n throw new Error(`FormField component should be used in Form component: ${this.name}`);\n }\n // provide\n this.bean._setBean('$$formField', this);\n // field\n this._formField = this._createField();\n // propsBucket\n this.propsBucket = this.$computed(() => {\n return this._getPropsBucket();\n });\n // defaultValue\n // this._handleDefaultValue();\n // watch\n this.$watch(\n () => this.property,\n (newValue, oldValue) => {\n if (deepEqual(newValue, oldValue)) return;\n // defaultValue\n // this._handleDefaultValue();\n const options = this._getFormFieldOptions();\n this._formField.api.update(options as any);\n this.form.resetField(this.name);\n },\n );\n // behaviors\n await this.$$beanBehaviorsHolder.initialize({\n behaviorTag: undefined as any,\n behaviors: () => {\n return this._getFieldBehaviors();\n },\n });\n }\n\n public get form() {\n return this.$$form.form;\n }\n\n public get field(): TypeFormField {\n return this._formField;\n }\n\n public get name() {\n return this.$props.name!;\n }\n\n public get property() {\n return this.$$form.getFieldProperty(this.name);\n }\n\n public get fieldZodSchema() {\n return this.$$form.getFieldZodSchema(this.name);\n }\n\n public get formMeta() {\n return this.$$form.formMeta;\n }\n\n public get formProvider() {\n return this.$$form.formProvider;\n }\n\n public setValue(value: any, disableNotifyChanged?: boolean) {\n if (disableNotifyChanged === undefined) {\n disableNotifyChanged = this.propsBucket.disableNotifyChanged;\n }\n return this.$$form.setFieldValue(this.name, value, disableNotifyChanged);\n }\n\n public handleBlur() {\n this.field.api.handleBlur();\n }\n\n public getRenderContext(): IFormFieldRenderContext<TParentData> {\n const name = this.name;\n // propsBucket\n const propsBucket = this.propsBucket;\n // props\n const props: IFormFieldRenderContextProps = { key: name, name };\n // class\n props.class = propsBucket.class;\n // readonly\n props.readonly = propsBucket.readonly;\n // celScope\n const celScope = this.$$form.getFieldScope(this.name, {});\n const jsxRenderContext = this.$$form.getFieldJsxRenderContext(this, celScope);\n return { propsBucket, props, celScope, jsxRenderContext };\n }\n\n private _createField() {\n const options = this._getFormFieldOptions();\n const field = markRaw(useField(options as any)) as any;\n const fieldState = useStore(field.api.store, state => state) as any;\n return { api: field.api, state: fieldState };\n }\n\n private _getPropsBucket() {\n const property = this.property;\n const name = this.name;\n // options\n const propsTop = this._getFieldComponentPropsTop();\n // layout options\n const layoutOptions = Object.assign(\n {\n bordered: this.scope.config.formFieldLayout.bordered,\n label: property?.title ?? name,\n },\n this.$$form.$props.formFieldLayout,\n propsTop?.layout,\n this.$props?.layout,\n );\n // preset options\n const presetOptions = Object.assign({}, propsTop?.options, this.$props?.options);\n // propsBucket\n const propsBucket = Object.assign(\n {\n render: 'Input',\n },\n propsTop,\n this.$props as IFormFieldOptions<TParentData>,\n {\n layout: layoutOptions,\n options: presetOptions,\n },\n );\n // class/style: layout\n if (propsBucket.layout.class || propsBucket.layout.style) {\n propsBucket.layout.class = this.$cssMerge(propsBucket.layout.class, this.$style(propsBucket.layout.style));\n delete propsBucket.layout.style;\n }\n // class/style: need not check typeof propsBucket.render === 'string' because maybe return false\n const classTemp = propsBucket.options?.class ?? propsBucket.class;\n const styleTemp = propsBucket.options?.style ?? propsBucket.style;\n if (classTemp || styleTemp) {\n propsBucket.class = this.$cssMerge(classTemp, this.$style(styleTemp));\n if (propsBucket.options?.class) delete propsBucket.options.class;\n if (propsBucket.options?.style) delete propsBucket.options.style;\n delete propsBucket.style;\n }\n // readonly\n const readonlyTemp = propsBucket.options?.readonly ?? propsBucket.readonly;\n if (!isNil(readonlyTemp)) {\n propsBucket.readonly = readonlyTemp;\n if (propsBucket.options?.readonly) delete propsBucket.options.readonly;\n } else if (this.formMeta?.formMode === 'view') {\n propsBucket.readonly = true;\n }\n // render\n // propsBucket.renderFlattern = this.$$form.getRenderFlattern(propsBucket.render);\n propsBucket.renderProvider = this.$$form.getRenderProvider(propsBucket.render);\n return propsBucket;\n }\n\n private _getFieldComponentPropsTop() {\n if (this.$props[constFieldProps] === true) return;\n const celScope = this.$$form.getFieldScope(this.name);\n const jsxRenderContext = this.$$form.getFieldJsxRenderContext(this, celScope);\n return this.$$form.getFieldComponentPropsTop(this.name, celScope, jsxRenderContext);\n }\n\n private _getFieldBehaviors() {\n const behaviors: IBehaviorItem = {};\n // custom\n if (this.$props.behaviors) {\n Object.assign(behaviors, this.$props.behaviors);\n }\n // formField\n this._prepareBehaviorFormField(behaviors);\n // formFieldLayout\n this._prepareBehaviorFormFieldLayout(behaviors);\n return behaviors;\n }\n\n private _prepareBehaviorFormField(behaviors: IBehaviorItem) {\n const behaviorFormField = this.formProvider.behaviors?.FormField;\n if (!behaviorFormField) return;\n behaviors[behaviorFormField] = {} as never;\n }\n\n private _prepareBehaviorFormFieldLayout(behaviors: IBehaviorItem) {\n const behaviorFormFieldLayout = this.formProvider.behaviors?.FormFieldLayout;\n if (!behaviorFormFieldLayout) return;\n behaviors[behaviorFormFieldLayout] = {} as never;\n }\n\n // private _handleDefaultValue() {\n // const defaultValue = this.$props.defaultValue ?? this.property?.default;\n // if (isNil(defaultValue)) return;\n // const value = this.$$form.getFieldValue(this.name);\n // if (isNil(value)) {\n // this.$$form.setFieldValue(this.name, defaultValue, true);\n // }\n // }\n\n private _getFormFieldOptions() {\n // defaultValue\n const value = this.$$form.getFieldValue(this.name);\n const defaultValue = isNil(value) ? (this.$props.sys?.defaultValue ?? this.property?.default) : undefined;\n // validators\n const validators = this._getFormFieldOptionsValidators();\n return Object.assign(\n {\n defaultValue,\n },\n this.$props.sys,\n {\n name: this.name,\n form: this.$$form.form,\n validators,\n },\n );\n }\n\n private _getFormFieldOptionsValidators() {\n const zodSchemaField = this.fieldZodSchema;\n const validators = this.$props.validators;\n const validateOnDynamicDefault = validators?.onDynamic === undefined && validators?.onBlur === undefined && validators?.onChange === undefined;\n const validateOnDynamic = validators?.onDynamic ?? validateOnDynamicDefault;\n const validateOnBlur = validators?.onBlur;\n const validateOnChange = validators?.onChange;\n return Object.assign(\n {},\n {\n onDynamic: _normalizeValidateSchema(validateOnDynamic, zodSchemaField),\n onBlur: _normalizeValidateSchema(validateOnBlur, zodSchemaField),\n onChange: _normalizeValidateSchema(validateOnChange, zodSchemaField),\n },\n this.$props.sys?.validators,\n );\n }\n}\n\nfunction _normalizeValidateSchema(validateSchema?: boolean | z.ZodType, zodSchemaField?: z.ZodType) {\n if (!validateSchema) return undefined;\n if (validateSchema === true) return zodSchemaField;\n return validateSchema;\n}\n","import type { IComponentOptions } from 'zova';\n\nimport { VNode } from 'vue';\nimport { BeanControllerBase, Use } from 'zova';\nimport { Controller } from 'zova-module-a-bean';\n\nimport { ControllerForm } from '../form/controller.jsx';\n\nexport interface ControllerFormFieldBlankProps<TParentData extends {} = {}, TSubmitMeta = never> {\n slotDefault?: (form: ControllerForm<TParentData, TSubmitMeta>) => VNode | undefined;\n}\n\n@Controller()\nexport class ControllerFormFieldBlank<TParentData extends {} = {}> extends BeanControllerBase {\n static $propsDefault = {};\n static $componentOptions: IComponentOptions = { inheritAttrs: false, deepExtendDefault: true };\n\n @Use({ injectionScope: 'host' })\n $$form: ControllerForm<TParentData>;\n\n protected async __init__() {}\n\n protected render() {\n if (this.$slotDefault) {\n return this.$slotDefault(this.$$form);\n }\n }\n}\n","import { BeanControllerBase, IComponentOptions, Use } from 'zova';\nimport { Controller } from 'zova-module-a-bean';\nimport { ISchemaRenderComponentPresetRecord } from 'zova-module-a-openapi';\n\nimport type { ControllerForm } from '../form/controller.jsx';\n\nimport { IFormFieldPresetOptions } from '../../types/formField.js';\n\nexport interface ControllerFormFieldPresetProps<\n PresetName extends keyof ISchemaRenderComponentPresetRecord = never,\n> extends IFormFieldPresetOptions<PresetName> {}\n\n@Controller()\nexport class ControllerFormFieldPreset extends BeanControllerBase {\n static $propsDefault = {};\n static $componentOptions: IComponentOptions = { inheritAttrs: false, deepExtendDefault: true };\n\n @Use({ injectionScope: 'host' })\n $$form: ControllerForm;\n\n protected async __init__() {}\n\n protected render() {\n const name = this.$props.name;\n if (!name) throw new Error(`should specify field name`);\n return this.$$form.renderField(name, this.$props as any);\n }\n}\n","import { h, VNode } from 'vue';\nimport { BeanRenderBase } from 'zova';\nimport { Render } from 'zova-module-a-bean';\n\n@Render()\nexport class RenderForm extends BeanRenderBase {\n private _renderSchema() {\n if (!this.properties) return;\n const children: VNode[] = [];\n for (const property of this.properties) {\n const child = this._renderFieldByKey(property.key!);\n if (child) {\n if (Array.isArray(child)) {\n children.push(...child);\n } else {\n children.push(child);\n }\n }\n }\n return children;\n }\n\n private _renderChildren() {\n const children: (VNode | undefined)[] = [];\n children.push(this.$props.slotHeader?.(this));\n const bodyInner = this._renderBodyInner();\n if (this.$props.slotBody) {\n children.push(this.$props.slotBody(bodyInner, this));\n } else {\n children.push(bodyInner);\n }\n children.push(this.$props.slotFooter?.(this));\n return children;\n }\n\n private _renderBodyInner() {\n const FormTag = this.$props.formTag;\n return this.$slotDefault ? (\n this.$slotDefault(this)\n ) : (\n <>\n {this._renderSchema()}\n {FormTag === 'form' && <button type=\"submit\" style={{ display: 'none' }}></button>}\n </>\n );\n }\n\n private _renderProps() {\n const FormTag = this.$props.formTag;\n const props: any = {};\n if (this.$props.inline) {\n props.class = 'inline';\n }\n if (FormTag === 'form') {\n props.onSubmit = (e: SubmitEvent) => {\n if (this.$props.onFormSubmit) {\n this.$props.onFormSubmit(e, this);\n } else {\n e.preventDefault();\n e.stopPropagation();\n this.submit();\n }\n };\n }\n return props;\n }\n\n public render() {\n const FormTag = this.$props.formTag;\n const props = this._renderProps();\n const children = this._renderChildren();\n if (this.$props.slotWrapper) {\n return h(FormTag, props, this.$props.slotWrapper(children, this));\n }\n return h(FormTag, props, children);\n }\n}\n","import type { TypeControllerInnerProps } from 'zova';\n\nimport { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\n\nimport type { ControllerFormProps } from '../../component/form/controller.jsx';\n\nimport { ControllerForm } from '../../component/form/controller.jsx';\nimport { RenderForm } from '../../component/form/render.jsx';\nexport type TypeControllerFormPublicProps<TFormData extends {} = {}, TSubmitMeta = never> = {\n controllerRef?: (ref: ControllerForm<TFormData, TSubmitMeta>) => void;\n} & ControllerFormProps<TFormData, TSubmitMeta>;\n\ntype ControllerInnerProps<\n TFormData extends {} = {},\n TSubmitMeta = never,\n> = TypeControllerInnerProps<\n ControllerFormProps<TFormData, TSubmitMeta>,\n keyof typeof ControllerForm.$propsDefault\n>;\ndeclare module 'zova-module-a-form' {\n export interface ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> {\n $props: ControllerInnerProps<TFormData, TSubmitMeta>;\n }\n}\ndeclare module 'zova-module-a-form' {\n export interface RenderForm<\n TFormData extends {} = {},\n TSubmitMeta = never,\n > extends ControllerForm<TFormData, TSubmitMeta> {}\n}\nexport const ZForm = defineComponent(\n <TFormData extends {} = {}, TSubmitMeta = never>(\n _props: TypeControllerFormPublicProps<TFormData, TSubmitMeta>,\n ) => {\n useController(ControllerForm, RenderForm, undefined);\n return () => {};\n },\n prepareComponentOptions(),\n);\ndeclare module 'zova-module-a-bean' {\n export interface IVonaComponentRecord {\n 'a-form:form': ControllerFormProps;\n }\n}\n","import { BeanRenderBase, SymbolController } from 'zova';\nimport { Render } from 'zova-module-a-bean';\n\nimport { IFormFieldRenderContext } from '../../types/formField.js';\n\n@Render()\nexport class RenderFormField<TParentData extends {} = {}> extends BeanRenderBase {\n public render() {\n const renderContext = this.getRenderContext();\n return this.$$beanBehaviorsHolder.render((renderContext: IFormFieldRenderContext<TParentData>) => {\n return this._renderSlotDefault(renderContext);\n }, renderContext);\n }\n\n private _renderSlotDefault(renderContext: IFormFieldRenderContext<TParentData>) {\n if (this.$slotDefault) {\n return this.$slotDefault!(renderContext, this[SymbolController]);\n }\n return this.$$form.zovaJsx.render(renderContext.propsBucket.render, renderContext.props, renderContext.celScope, renderContext.jsxRenderContext);\n }\n}\n","import type { TypeControllerInnerProps } from 'zova';\n\nimport { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\n\nimport type { ControllerFormFieldProps } from '../../component/formField/controller.jsx';\n\nimport { ControllerFormField } from '../../component/formField/controller.jsx';\nimport { RenderFormField } from '../../component/formField/render.jsx';\nexport type TypeControllerFormFieldPublicProps<TParentData extends {} = {}> = {\n controllerRef?: (ref: ControllerFormField<TParentData>) => void;\n} & ControllerFormFieldProps<TParentData>;\n\ntype ControllerInnerProps<TParentData extends {} = {}> = TypeControllerInnerProps<\n ControllerFormFieldProps<TParentData>,\n keyof typeof ControllerFormField.$propsDefault\n>;\ndeclare module 'zova-module-a-form' {\n export interface ControllerFormField<TParentData extends {} = {}> {\n $props: ControllerInnerProps<TParentData>;\n }\n}\ndeclare module 'zova-module-a-form' {\n export interface RenderFormField<\n TParentData extends {} = {},\n > extends ControllerFormField<TParentData> {}\n}\nexport const ZFormField = defineComponent(\n <TParentData extends {} = {}>(_props: TypeControllerFormFieldPublicProps<TParentData>) => {\n useController(ControllerFormField, RenderFormField, undefined);\n return () => {};\n },\n prepareComponentOptions(ControllerFormField.$componentOptions),\n);\ndeclare module 'zova-module-a-bean' {\n export interface IVonaComponentRecord {\n 'a-form:formField': ControllerFormFieldProps;\n }\n}\n","import type { TypeControllerInnerProps } from 'zova';\n\nimport { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\n\nimport type { ControllerFormFieldBlankProps } from '../../component/formFieldBlank/controller.jsx';\n\nimport { ControllerFormFieldBlank } from '../../component/formFieldBlank/controller.jsx';\nexport type TypeControllerFormFieldBlankPublicProps<\n TParentData extends {} = {},\n TSubmitMeta = never,\n> = {\n controllerRef?: (ref: ControllerFormFieldBlank<TParentData, TSubmitMeta>) => void;\n} & ControllerFormFieldBlankProps<TParentData, TSubmitMeta>;\n\ntype ControllerInnerProps<\n TParentData extends {} = {},\n TSubmitMeta = never,\n> = TypeControllerInnerProps<\n ControllerFormFieldBlankProps<TParentData, TSubmitMeta>,\n keyof typeof ControllerFormFieldBlank.$propsDefault\n>;\ndeclare module 'zova-module-a-form' {\n export interface ControllerFormFieldBlank<TParentData extends {} = {}, TSubmitMeta = never> {\n $props: ControllerInnerProps<TParentData, TSubmitMeta>;\n }\n}\n\nexport const ZFormFieldBlank = defineComponent(\n <TParentData extends {} = {}, TSubmitMeta = never>(\n _props: TypeControllerFormFieldBlankPublicProps<TParentData, TSubmitMeta>,\n ) => {\n useController(ControllerFormFieldBlank, undefined, undefined);\n return () => {};\n },\n prepareComponentOptions(ControllerFormFieldBlank.$componentOptions),\n);\ndeclare module 'zova-module-a-bean' {\n export interface IVonaComponentRecord {\n 'a-form:formFieldBlank': ControllerFormFieldBlankProps;\n }\n}\n","import type { TypeControllerInnerProps } from 'zova';\n\nimport { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ISchemaRenderComponentPresetRecord } from 'zova-module-a-openapi';\n\nimport type { ControllerFormFieldPresetProps } from '../../component/formFieldPreset/controller.jsx';\n\nimport { ControllerFormFieldPreset } from '../../component/formFieldPreset/controller.jsx';\nexport type TypeControllerFormFieldPresetPublicProps<\n PresetName extends keyof ISchemaRenderComponentPresetRecord = never,\n> = {\n controllerRef?: (ref: ControllerFormFieldPreset<PresetName>) => void;\n} & ControllerFormFieldPresetProps<PresetName>;\n\ntype ControllerInnerProps<PresetName extends keyof ISchemaRenderComponentPresetRecord = never> =\n TypeControllerInnerProps<\n ControllerFormFieldPresetProps<PresetName>,\n keyof typeof ControllerFormFieldPreset.$propsDefault\n >;\ndeclare module 'zova-module-a-form' {\n export interface ControllerFormFieldPreset<\n PresetName extends keyof ISchemaRenderComponentPresetRecord = never,\n > {\n $props: ControllerInnerProps<PresetName>;\n }\n}\n\nexport const ZFormFieldPreset = defineComponent(\n <PresetName extends keyof ISchemaRenderComponentPresetRecord = never>(\n _props: TypeControllerFormFieldPresetPublicProps<PresetName>,\n ) => {\n useController(ControllerFormFieldPreset, undefined, undefined);\n return () => {};\n },\n prepareComponentOptions(ControllerFormFieldPreset.$componentOptions),\n);\ndeclare module 'zova-module-a-bean' {\n export interface IVonaComponentRecord {\n 'a-form:formFieldPreset': ControllerFormFieldPresetProps;\n }\n}\n","import type { ZovaSys } from 'zova';\n\nexport const config = (_sys: ZovaSys) => {\n return {\n formFieldLayout: {\n bordered: true,\n },\n };\n};\n","// eslint-disable\n/** controller: begin */\nexport * from '../component/form/controller.jsx';\nexport * from '../component/formField/controller.jsx';\nexport * from '../component/formFieldBlank/controller.jsx';\nexport * from '../component/formFieldPreset/controller.jsx';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-form' {\n \n export interface ControllerForm {\n /** @internal */\n get scope(): ScopeModuleAForm;\n }\n\n export interface ControllerFormField {\n /** @internal */\n get scope(): ScopeModuleAForm;\n }\n\n export interface ControllerFormFieldBlank {\n /** @internal */\n get scope(): ScopeModuleAForm;\n }\n\n export interface ControllerFormFieldPreset {\n /** @internal */\n get scope(): ScopeModuleAForm;\n } \n}\n/** controller: end */\n/** controller: begin */\nimport { ControllerForm } from '../component/form/controller.jsx';\nimport { ControllerFormField } from '../component/formField/controller.jsx';\nimport { ControllerFormFieldBlank } from '../component/formFieldBlank/controller.jsx';\nimport { ControllerFormFieldPreset } from '../component/formFieldPreset/controller.jsx';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordLocal {\n 'a-form.controller.form': ControllerForm;\n'a-form.controller.formField': ControllerFormField;\n'a-form.controller.formFieldBlank': ControllerFormFieldBlank;\n'a-form.controller.formFieldPreset': ControllerFormFieldPreset;\n }\n}\n/** controller: end */\n\n/** components: begin */\nexport * from './component/form.js';\nimport { ZForm } from './component/form.js';\nexport * from './component/formField.js';\nimport { ZFormField } from './component/formField.js';\nexport * from './component/formFieldBlank.js';\nimport { ZFormFieldBlank } from './component/formFieldBlank.js';\nexport * from './component/formFieldPreset.js';\nimport { ZFormFieldPreset } from './component/formFieldPreset.js';\nexport const components = {\n 'form': ZForm,\n'formField': ZFormField,\n'formFieldBlank': ZFormFieldBlank,\n'formFieldPreset': ZFormFieldPreset,\n};\nimport 'zova';\ndeclare module 'zova' {\nexport interface IComponentRecord {\n 'a-form:form': ControllerForm;\n'a-form:formField': ControllerFormField;\n'a-form:formFieldBlank': ControllerFormFieldBlank;\n'a-form:formFieldPreset': ControllerFormFieldPreset;\n}\nexport interface IZovaComponentRecord {\n 'a-form:form': typeof ZForm;\n'a-form:formField': typeof ZFormField;\n'a-form:formFieldBlank': typeof ZFormFieldBlank;\n'a-form:formFieldPreset': typeof ZFormFieldPreset;\n}\n}\n/** components: end */\n/** render: begin */\nexport * from '../component/form/render.jsx';\nexport * from '../component/formField/render.jsx';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-form' {\n \n export interface RenderForm {\n /** @internal */\n get scope(): ScopeModuleAForm;\n }\n\n export interface RenderFormField {\n /** @internal */\n get scope(): ScopeModuleAForm;\n } \n}\n/** render: end */\n/** render: begin */\nimport { RenderForm } from '../component/form/render.jsx';\nimport { RenderFormField } from '../component/formField/render.jsx';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordLocal {\n 'a-form.render.form': RenderForm;\n'a-form.render.formField': RenderFormField;\n }\n}\n/** render: end */\n/** config: begin */\nexport * from '../config/config.js';\nimport { config } from '../config/config.js';\n/** config: end */\n/** scope: begin */\nimport { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\n\n@Scope()\nexport class ScopeModuleAForm extends BeanScopeBase {}\n\nexport interface ScopeModuleAForm {\n util: BeanScopeUtil;\nconfig: TypeModuleConfig<typeof config>;\n}\n\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanScopeRecord {\n 'a-form': ScopeModuleAForm;\n }\n \n export interface IBeanScopeConfig {\n 'a-form': ReturnType<typeof config>;\n }\n\n \n\n \n}\n \n/** scope: end */\n","import type { FormApi, FormAsyncValidateOrFn, FormOptions, FormValidateOrFn, VueFormApi } from '@tanstack/vue-form';\n\nimport { useForm } from '@tanstack/vue-form';\nimport { markRaw } from 'vue';\nimport { BeanControllerPageBase } from 'zova';\n\nimport { TypeForm } from '../types/form.js';\n\nexport class BeanControllerPageFormBase<TFormData extends {} = {}, TSubmitMeta = never> extends BeanControllerPageBase {\n form: TypeForm<TFormData, TSubmitMeta>;\n formState: TypeForm<TFormData>['state'];\n\n public async submit(_submitMeta?: TSubmitMeta): Promise<boolean> {\n throw new Error('should implement submit');\n }\n\n public reset(_values?: TFormData, _opts?: { keepDefaultValues?: boolean }): TFormData {\n throw new Error('should implement reset');\n }\n\n public $useForm<\n TParentData,\n TFormOnMount extends undefined | FormValidateOrFn<TParentData>,\n TFormOnChange extends undefined | FormValidateOrFn<TParentData>,\n TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n TFormOnBlur extends undefined | FormValidateOrFn<TParentData>,\n TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n TFormOnSubmit extends undefined | FormValidateOrFn<TParentData>,\n TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n TFormOnDynamic extends undefined | FormValidateOrFn<TParentData>,\n TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n TFormOnServer extends undefined | FormAsyncValidateOrFn<TParentData>,\n TSubmitMeta,\n >(\n opts?: FormOptions<\n TParentData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n >,\n ): FormApi<\n TParentData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n > &\n VueFormApi<\n TParentData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n > {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useForm(opts));\n });\n }\n}\n","import type { IFormMeta, TypeFormScene } from 'zova-module-a-openapi';\n\nexport function formMetaFromFormScene(formScene: TypeFormScene): IFormMeta {\n if (formScene === 'view') return { formScene, formMode: 'view', editMode: undefined };\n if (formScene === 'create') return { formScene, formMode: 'edit', editMode: 'create' };\n if (formScene === 'edit') return { formScene, formMode: 'edit', editMode: 'update' };\n throw new Error('invalid parameters');\n}\n\nexport function formSceneFromFormMeta(formMeta: Partial<IFormMeta>): TypeFormScene | undefined {\n if (formMeta.formMode === 'view') return 'view';\n if (formMeta.formMode === 'edit' && formMeta.editMode === 'create') return 'create';\n if (formMeta.formMode === 'edit' && formMeta.editMode === 'update') return 'edit';\n if (formMeta.formMode === 'edit' && formMeta.editMode === undefined) return 'edit';\n return undefined;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["catchError","celEnvBase","isEmptyObject","ZodMetadata","determineFormLevelErrorSourceAndValue","getBy","isGlobalFormValidationError","revalidateLogic","useStore","cast","deepEqual","deepExtend","objectAssignReactive","UseScope","isJsxComponent","ZovaJsx","Controller","renderFormFieldTopPropsSystem","BeanControllerFormBase","constFieldProps","ControllerForm","_dec","_dec2","__z_BeanInfo","module","_dec3","_dec4","Reflect","metadata","ScopeModuleAOpenapi","Object","_class","_class2","_ControllerForm","constructor","args","formProvider","schema","zodSchema","properties","zovaJsx","fieldCelEnv","_initializerDefineProperty","_descriptor","__init__","bean","_setBean","form","_createForm","formState","store","state","$computed","$$scopeOpenapi","config","$props","_getZodSchema","$sdk","loadSchemaProperties","schemaScene","_getFieldCelEnv","_newBeanSimple","components","$watch","data","newValue","oldValue","reset","submit","submitMeta","_","error","handleSubmit","isValid","values","opts","formMeta","getFieldValue","name","setFieldValue","value","disableNotifyChanged","onChanged","getFieldProperty","find","item","key","getFieldZodSchema","getFieldSchema","celEnv","clone","registerFunction","getFieldScope","scopeExtra","formScope","property","getFieldJsxRenderContext","$$formField","celScope","app","ctx","$scene","$host","$celScope","$jsx","$$form","getFieldComponentPropsTop","jsxRenderContext","props","_getFieldComponentPropsTopInner","rest","keys","filter","includes","length","keyValue","evaluateExpression","renderJsxOrCel","undefined","needAppend","render","isComponentFormField","type","propsAppend","assign","getRenderProvider","_patchZodSchema","schemaToZodSchema","def","options","Error","$useForm","defaultValues","validationLogic","validateOnDynamic","validateOnDynamicLogic","onSubmitInvalid","onSubmit","onSubmitData","resHandled","meta","event","emit","code","_handleError422","onShowError","renderField","propsExtra","_renderFieldByKey","visible","componentOptions","_getFieldComponentOptionsTop","renderProvider","cause","formApi","hasErrored","currentValidationErrorMap","rawError","parseIssues","formError","fieldErrors","normalizeError","errorMapKey","getErrorMapKey","field","fieldMeta","baseStore","fieldMetaBase","getFieldMeta","errorMap","currentErrorMap","errorSourceMap","currentErrorMapSource","newFormValidatorError","newErrorValue","newSource","isPreviousErrorFromFormValidator","previousErrorValue","setFieldMeta","prev","setState","submitErrKey","serverErrKey","$propsDefault","formTag","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","issues","message","JSON","parse","fields","issue","path","join","isNil","useField","useStore","markRaw","BeanControllerBase","deepEqual","Use","Controller","constFieldProps","ControllerFormField","_dec","_dec2","__z_BeanInfo","module","_dec3","injectionScope","_dec4","Reflect","metadata","ControllerForm","Object","_dec5","_dec6","BeanBehaviorsHolder","_class","_class2","_ControllerFormField","constructor","args","_formField","propsBucket","_initializerDefineProperty","_descriptor","_descriptor2","__init__","$$form","Error","name","bean","_setBean","_createField","$computed","_getPropsBucket","$watch","property","newValue","oldValue","options","_getFormFieldOptions","api","update","form","resetField","$$beanBehaviorsHolder","initialize","behaviorTag","undefined","behaviors","_getFieldBehaviors","field","$props","getFieldProperty","fieldZodSchema","getFieldZodSchema","formMeta","formProvider","setValue","value","disableNotifyChanged","setFieldValue","handleBlur","getRenderContext","props","key","class","readonly","celScope","getFieldScope","jsxRenderContext","getFieldJsxRenderContext","fieldState","store","state","propsTop","_getFieldComponentPropsTop","layoutOptions","assign","bordered","scope","config","formFieldLayout","label","title","layout","presetOptions","render","style","$cssMerge","$style","classTemp","styleTemp","readonlyTemp","formMode","renderProvider","getRenderProvider","getFieldComponentPropsTop","_prepareBehaviorFormField","_prepareBehaviorFormFieldLayout","behaviorFormField","FormField","behaviorFormFieldLayout","FormFieldLayout","getFieldValue","defaultValue","sys","default","validators","_getFormFieldOptionsValidators","zodSchemaField","validateOnDynamicDefault","onDynamic","onBlur","onChange","validateOnDynamic","validateOnBlur","validateOnChange","_normalizeValidateSchema","$propsDefault","$componentOptions","inheritAttrs","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","validateSchema","BeanControllerBase","Use","Controller","ControllerForm","ControllerFormFieldBlank","_dec","_dec2","__z_BeanInfo","module","_dec3","injectionScope","_dec4","Reflect","metadata","Object","_class","_class2","_ControllerFormFieldBlank","constructor","args","_initializerDefineProperty","_descriptor","__init__","render","$slotDefault","$$form","$propsDefault","$componentOptions","inheritAttrs","deepExtendDefault","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","BeanControllerBase","Use","Controller","ControllerFormFieldPreset","_dec","_dec2","__z_BeanInfo","module","_dec3","injectionScope","_dec4","Reflect","metadata","ControllerForm","Object","_class","_class2","_ControllerFormFieldPreset","constructor","args","_initializerDefineProperty","_descriptor","__init__","render","name","$props","Error","$$form","renderField","$propsDefault","$componentOptions","inheritAttrs","deepExtendDefault","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","h","BeanRenderBase","Render","RenderForm","_dec","_dec2","__z_BeanInfo","module","_class","_renderSchema","properties","children","property","child","_renderFieldByKey","key","Array","isArray","push","_renderChildren","$props","slotHeader","bodyInner","_renderBodyInner","slotBody","slotFooter","FormTag","formTag","$slotDefault","_createVNode","_Fragment","display","_renderProps","props","inline","class","onSubmit","e","onFormSubmit","preventDefault","stopPropagation","submit","render","slotWrapper","BeanRenderBase","SymbolController","Render","RenderFormField","_dec","_dec2","__z_BeanInfo","module","_class","render","renderContext","getRenderContext","$$beanBehaviorsHolder","_renderSlotDefault","$slotDefault","$$form","zovaJsx","propsBucket","props","celScope","jsxRenderContext"],"sources":["../src/lib/beanControllerFormBase.ts","../src/types/formField.ts","../src/component/form/controller.tsx","../src/component/formField/controller.tsx","../src/component/formFieldBlank/controller.tsx","../src/component/formFieldPreset/controller.tsx","../src/component/form/render.tsx","../src/.metadata/component/form.ts","../src/component/formField/render.tsx","../src/.metadata/component/formField.ts","../src/.metadata/component/formFieldBlank.ts","../src/.metadata/component/formFieldPreset.ts","../src/config/config.ts","../src/.metadata/index.ts","../src/lib/beanControllerPageFormBase.ts","../src/lib/utils.ts"],"sourcesContent":["import type {\n FormApi,\n FormAsyncValidateOrFn,\n FormOptions,\n FormValidateOrFn,\n VueFormApi,\n} from '@tanstack/vue-form';\n\nimport { useForm } from '@tanstack/vue-form';\nimport { markRaw } from 'vue';\nimport { BeanControllerBase } from 'zova';\n\nimport { TypeForm } from '../types/form.js';\n\nexport class BeanControllerFormBase<\n TFormData extends {} = {},\n TSubmitMeta = never,\n> extends BeanControllerBase {\n form: TypeForm<TFormData, TSubmitMeta>;\n formState: TypeForm<TFormData>['state'];\n\n public async submit(_submitMeta?: TSubmitMeta): Promise<boolean> {\n throw new Error('should implement submit');\n }\n\n public reset(_values?: TFormData, _opts?: { keepDefaultValues?: boolean }): TFormData {\n throw new Error('should implement reset');\n }\n\n public $useForm<\n TFormData,\n TSubmitMeta = never,\n TFormOnMount extends undefined | FormValidateOrFn<TFormData> =\n | undefined\n | FormValidateOrFn<TFormData>,\n TFormOnChange extends undefined | FormValidateOrFn<TFormData> =\n | undefined\n | FormValidateOrFn<TFormData>,\n TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData> =\n | undefined\n | FormAsyncValidateOrFn<TFormData>,\n TFormOnBlur extends undefined | FormValidateOrFn<TFormData> =\n | undefined\n | FormValidateOrFn<TFormData>,\n TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData> =\n | undefined\n | FormAsyncValidateOrFn<TFormData>,\n TFormOnSubmit extends undefined | FormValidateOrFn<TFormData> =\n | undefined\n | FormValidateOrFn<TFormData>,\n TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData> =\n | undefined\n | FormAsyncValidateOrFn<TFormData>,\n TFormOnDynamic extends undefined | FormValidateOrFn<TFormData> =\n | undefined\n | FormValidateOrFn<TFormData>,\n TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData> =\n | undefined\n | FormAsyncValidateOrFn<TFormData>,\n TFormOnServer extends undefined | FormAsyncValidateOrFn<TFormData> =\n | undefined\n | FormAsyncValidateOrFn<TFormData>,\n >(\n opts?: FormOptions<\n TFormData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n >,\n ): FormApi<\n TFormData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n > &\n VueFormApi<\n TFormData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n > {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useForm(opts));\n });\n }\n}\n","import type { SchemaObject } from 'openapi3-ts/oas31';\nimport type { VNode } from 'vue';\nimport type z from 'zod';\nimport type { IBehaviorItem } from 'zova-module-a-behavior';\nimport type {\n IJsxRenderContextBase,\n IResourceFormFieldLayoutOptions,\n ISchemaRenderComponentPresetRecord,\n TypeFormFieldRenderComponent,\n TypeFormFieldRenderComponentProvider,\n TypeRenderComponentPreset,\n} from 'zova-module-a-openapi';\n\nimport { DeepKeys } from '@tanstack/vue-form';\nimport { types } from 'typestyle';\n\nimport type { ControllerForm } from '../component/form/controller.jsx';\nimport type { ControllerFormField } from '../component/formField/controller.jsx';\nimport type { TypeBehaviorFormFieldOptions } from './form.js';\n\nexport type HTMLInputElementType =\n | 'text'\n | 'password'\n | 'number'\n | 'file'\n | 'hidden'\n | 'tel'\n | 'email';\nexport const constFieldProps = '$$FieldProps';\n\nexport interface IFormFieldScope<TParentData = {}> {\n name: string;\n value: any;\n property?: SchemaObject;\n render?: IFormFieldRenderContext<TParentData>;\n}\n\nexport interface IFormFieldLayoutOptionsBase {\n layout?: IResourceFormFieldLayoutOptions;\n}\n\nexport interface IFormFieldSysOptionsBase<TParentData = {}> {\n sys?: Omit<TypeBehaviorFormFieldOptions<TParentData>, 'name'>;\n}\n\nexport interface IFormFieldValidatorsOptionsBase {\n onDynamic?: boolean | z.ZodType;\n onChange?: boolean | z.ZodType;\n onBlur?: boolean | z.ZodType;\n}\n\nexport interface IFormFieldOptionsBase<\n TParentData = {},\n TName extends DeepKeys<TParentData> = DeepKeys<TParentData>,\n> {\n name?: TName;\n render?: TypeRenderComponentPreset;\n class?: any;\n style?: types.NestedCSSProperties;\n value?: any;\n readonly?: boolean;\n disableNotifyChanged?: boolean;\n validators?: IFormFieldValidatorsOptionsBase;\n // onChange?: (e: Event) => void; // allow set to null, but not provide null type\n // onInput?: (e: Event) => void; // allow set to null, but not provide null type\n // onBlur?: (e: Event) => void; // allow set to null, but not provide null type\n}\n\nexport interface IFormFieldPresetOptions<\n PresetName extends keyof ISchemaRenderComponentPresetRecord = never,\n> extends IFormFieldComponentOptions {\n render?: PresetName;\n options?: ISchemaRenderComponentPresetRecord[PresetName];\n}\n\nexport interface IFormFieldComponentOptions<\n TParentData = {},\n> extends IFormFieldOptions<TParentData> {\n options?: any;\n}\n\nexport interface IFormFieldOptions<TParentData = {}>\n extends\n IFormFieldSysOptionsBase<TParentData>,\n IFormFieldOptionsBase<TParentData>,\n IFormFieldLayoutOptionsBase {\n behaviors?: IBehaviorItem;\n slotDefault?: (\n props: IFormFieldRenderContext<TParentData>,\n formField: ControllerFormField,\n ) => VNode;\n}\n\nexport interface IFormFieldRenderContextProps {\n key?: string;\n name?: string;\n class?: any;\n readonly?: boolean;\n}\n\n// export interface IFormFieldRenderContextProps {\n// name?: string;\n// value?: any;\n// type?: any; // not use string for quasar\n// readonly?: boolean;\n// placeholder?: string;\n// class?: any;\n// onChange?: (e: Event) => void;\n// onInput?: (e: Event) => void;\n// onBlur?: (e: Event) => void;\n// }\n\nexport interface IFormFieldRenderContextPropsBucket<TParentData = {}> extends Omit<\n IFormFieldOptions<TParentData>,\n 'render'\n> {\n options?: any;\n render: TypeFormFieldRenderComponent;\n renderProvider?: TypeFormFieldRenderComponentProvider;\n needHandleBorder?: boolean;\n}\n\nexport interface IFormFieldRenderContext<TParentData = {}> {\n propsBucket: IFormFieldRenderContextPropsBucket<TParentData>;\n props: IFormFieldRenderContextProps;\n celScope: IFormFieldScope<TParentData>;\n jsxRenderContext: {};\n}\n\nexport interface IJsxRenderContextFormField<\n TParentData extends {} = {},\n TSubmitMeta = never,\n> extends IJsxRenderContextBase {\n $celScope: IFormFieldScope<TParentData>;\n $$formField: ControllerFormField<TParentData> | undefined;\n $$form: ControllerForm<TParentData, TSubmitMeta>;\n}\n\nexport interface IJsxRenderContextForm<TParentData extends {} = {}> extends IJsxRenderContextBase {\n $celScope: IFormFieldScope<TParentData>;\n $$form: ControllerForm<TParentData>;\n}\n","import { catchError, celEnvBase, isEmptyObject } from '@cabloy/utils';\nimport { ZodMetadata } from '@cabloy/zod-openapi';\nimport {\n DeepKeys,\n determineFormLevelErrorSourceAndValue,\n FormValidationError,\n getBy,\n isGlobalFormValidationError,\n revalidateLogic,\n useStore,\n ValidationCause,\n ValidationError,\n} from '@tanstack/vue-form';\nimport { SchemaObject } from 'openapi3-ts/oas31';\nimport { VNode } from 'vue';\nimport { z } from 'zod';\nimport { $ZodIssue } from 'zod/v4/core';\nimport { cast, deepEqual, deepExtend, objectAssignReactive, UseScope } from 'zova';\nimport { isJsxComponent, ZovaJsx } from 'zova-jsx';\nimport { Controller } from 'zova-module-a-bean';\nimport {\n IFormMeta,\n IFormProvider,\n IResourceFormFieldLayoutOptions,\n renderFormFieldTopPropsSystem,\n TypeFormFieldRenderComponent,\n TypeFormFieldRenderComponentProvider,\n TypeFormSchemaScene,\n ScopeModuleAOpenapi,\n ISchemaObjectExtensionField,\n} from 'zova-module-a-openapi';\n\nimport { BeanControllerFormBase } from '../../lib/beanControllerFormBase.js';\nimport {\n IFormScope,\n RevalidateLogicProps,\n TypeFormOnShowError,\n TypeFormOnSubmit,\n TypeFormOnSubmitInvalid,\n} from '../../types/form.js';\nimport {\n constFieldProps,\n IFormFieldOptions,\n IFormFieldRenderContextPropsBucket,\n IFormFieldScope,\n IJsxRenderContextFormField,\n} from '../../types/formField.js';\nimport { ControllerFormField } from '../formField/controller.jsx';\n\nexport interface ControllerFormProps<TFormData extends {} = {}, TSubmitMeta = never> {\n formTag?: string;\n inline?: boolean;\n data?: TFormData;\n schema?: SchemaObject;\n schemaScene?: TypeFormSchemaScene;\n zodSchema?: z.ZodObject<any>;\n validateOnDynamic?: boolean;\n validateOnDynamicLogic?: RevalidateLogicProps;\n formMeta?: IFormMeta;\n formProvider?: IFormProvider;\n formScope?: IFormScope;\n formFieldLayout?: IResourceFormFieldLayoutOptions;\n onFormSubmit?: (e: SubmitEvent, form: ControllerForm<TFormData, TSubmitMeta>) => any;\n onSubmitInvalid?: TypeFormOnSubmitInvalid<TFormData, TSubmitMeta>;\n onSubmitData?: TypeFormOnSubmit<TFormData, TSubmitMeta>;\n onShowError?: TypeFormOnShowError<TFormData, TSubmitMeta>;\n onChanged?: (data: TFormData) => void;\n slotDefault?: (form: ControllerForm<TFormData, TSubmitMeta>) => VNode;\n slotHeader?: (form: ControllerForm<TFormData, TSubmitMeta>) => VNode;\n slotBody?: (children: VNode, form: ControllerForm<TFormData, TSubmitMeta>) => VNode;\n slotFooter?: (form: ControllerForm<TFormData, TSubmitMeta>) => VNode;\n slotWrapper?: (\n children: (VNode | undefined)[],\n form: ControllerForm<TFormData, TSubmitMeta>,\n ) => VNode;\n}\n@Controller()\nexport class ControllerForm<\n TFormData extends {} = {},\n TSubmitMeta = never,\n> extends BeanControllerFormBase<TFormData, TSubmitMeta> {\n static $propsDefault = { formTag: 'form', schemaScene: 'form' };\n\n formProvider: IFormProvider;\n schema: SchemaObject | undefined;\n zodSchema: z.ZodObject<any> | undefined;\n properties: ISchemaObjectExtensionField[] | undefined;\n zovaJsx: ZovaJsx;\n fieldCelEnv: typeof celEnvBase;\n\n @UseScope()\n $$scopeOpenapi: ScopeModuleAOpenapi;\n\n protected async __init__() {\n this.bean._setBean('$$form', this);\n this.form = this._createForm();\n this.formState = useStore(this.form.store, state => state) as any;\n this.formProvider = this.$computed(() => {\n const formProvider = this.$$scopeOpenapi.config.formProvider;\n return this.$props.formProvider\n ? deepExtend({}, formProvider, this.$props.formProvider)\n : formProvider;\n });\n this.schema = this.$computed(() => {\n return this.$props.schema;\n });\n this.zodSchema = this.$computed(() => {\n return this._getZodSchema();\n });\n this.properties = this.$computed(() => {\n return this.$sdk.loadSchemaProperties(this.schema, this.$props.schemaScene);\n });\n this.fieldCelEnv = this._getFieldCelEnv();\n this.zovaJsx = this.bean._newBeanSimple(\n ZovaJsx,\n false,\n this.formProvider.components,\n this.fieldCelEnv,\n );\n this.$watch(\n () => this.$props.data,\n (newValue, oldValue) => {\n if (deepEqual(newValue, oldValue)) return;\n this.reset(this.$props.data);\n },\n );\n }\n\n public async submit(submitMeta?: TSubmitMeta): Promise<boolean> {\n const [_, error] = await catchError(() => {\n return this.form.handleSubmit(submitMeta as any);\n });\n return !error && this.formState.isValid;\n }\n\n public reset(values?: TFormData, opts?: { keepDefaultValues?: boolean }): TFormData {\n this.form.reset(values ?? ({} as TFormData), opts);\n return this.form.state.values;\n }\n\n public get formMeta() {\n return this.$props.formMeta;\n }\n\n public getFieldValue<K extends DeepKeys<TFormData>>(name: K) {\n return getBy(this.formState.values, name) ?? null;\n }\n\n public setFieldValue<K extends DeepKeys<TFormData>>(\n name: K,\n value: any,\n disableNotifyChanged?: boolean,\n ) {\n this.form.setFieldValue(name, value);\n if (!disableNotifyChanged) {\n this.$props.onChanged?.(this.formState.values);\n }\n }\n\n public getFieldProperty<K extends DeepKeys<TFormData>>(\n name: K,\n ): ISchemaObjectExtensionField | undefined {\n if (!this.properties) return;\n return this.properties.find(item => item.key === name);\n }\n\n public getFieldZodSchema<K extends DeepKeys<TFormData>>(name: K) {\n return ZodMetadata.getFieldSchema(this.zodSchema, name as string);\n }\n\n private _getFieldCelEnv(): typeof celEnvBase {\n const celEnv = celEnvBase.clone();\n celEnv.registerFunction('getValue(string):dyn', name => {\n return this.form.getFieldValue(name) ?? null;\n });\n celEnv.registerFunction('getProperty(string):dyn', name => {\n return this.getFieldProperty(name) ?? null;\n });\n return celEnv;\n }\n\n public getFieldScope<K extends DeepKeys<TFormData>>(\n name: K,\n scopeExtra?: {},\n ): IFormFieldScope<TFormData> {\n return objectAssignReactive({}, this.$props.formScope, {\n name,\n value: this.getFieldValue(name),\n property: this.getFieldProperty(name),\n ...scopeExtra,\n });\n }\n\n public getFieldJsxRenderContext(\n $$formField: ControllerFormField<TFormData> | undefined,\n celScope: IFormFieldScope<TFormData>,\n ): IJsxRenderContextFormField<TFormData, TSubmitMeta> {\n return {\n app: this.app,\n ctx: this.ctx,\n $scene: 'formField',\n $host: $$formField ?? this,\n $celScope: celScope,\n $jsx: this.zovaJsx,\n $$formField,\n $$form: this,\n };\n }\n\n public getFieldComponentPropsTop<K extends DeepKeys<TFormData>>(\n name: K,\n celScope: IFormFieldScope<TFormData>,\n jsxRenderContext: {},\n ): IFormFieldRenderContextPropsBucket {\n const props = this._getFieldComponentPropsTopInner(name, celScope, jsxRenderContext);\n return props;\n }\n\n private _getFieldComponentPropsTopInner<K extends DeepKeys<TFormData>>(\n name: K,\n celScope: IFormFieldScope<TFormData>,\n jsxRenderContext: {},\n ): IFormFieldRenderContextPropsBucket {\n let props: any = {\n [constFieldProps]: true,\n key: name,\n name,\n value: celScope.value,\n };\n const property = this.getFieldProperty(name);\n if (!property) return props;\n const rest = property.rest;\n if (!rest) return props;\n const keys = Object.keys(rest).filter(item => !renderFormFieldTopPropsSystem.includes(item));\n if (keys.length === 0) return props;\n for (const key of keys) {\n const value = rest[key];\n let keyValue;\n if (key === 'render') {\n if (typeof value === 'string') {\n keyValue = this.zovaJsx.evaluateExpression(value, celScope);\n } else {\n keyValue = value;\n }\n } else {\n keyValue = this.zovaJsx.renderJsxOrCel(value, undefined, celScope, jsxRenderContext);\n }\n props[key] = keyValue;\n }\n // render\n const needAppend = isJsxComponent(props.render) && this.isComponentFormField(props.render.type);\n if (needAppend && !isEmptyObject(props.render.props)) {\n const propsAppend = this.zovaJsx.renderJsxOrCel(\n props.render.props,\n undefined,\n celScope,\n jsxRenderContext,\n );\n props = Object.assign({}, props, propsAppend);\n }\n // ok\n return props;\n }\n\n // public getRenderFlattern(render: TypeFormFieldRenderComponent): TypeFormFieldRenderComponent {\n // return isJsxComponent(render) ? cast(render).type : render;\n // }\n\n public getRenderProvider(\n render: TypeFormFieldRenderComponent,\n ): TypeFormFieldRenderComponentProvider {\n if (isJsxComponent(render)) {\n return cast(render).type;\n }\n if (typeof render === 'string') {\n return this.formProvider.components?.[render] ?? render;\n }\n return render as TypeFormFieldRenderComponentProvider;\n }\n\n private _getZodSchema() {\n if (this.$props.zodSchema) return this._patchZodSchema(this.$props.zodSchema);\n if (!this.schema) return;\n return this._patchZodSchema(this.$sdk.schemaToZodSchema(this.schema));\n }\n\n private _patchZodSchema(schema: z.ZodObject<any> | z.ZodUnion<any>) {\n if (schema.def.type === 'object') return schema;\n if (schema.def.type === 'union') {\n return schema.def.options.find(item => item.def.type === 'object');\n }\n throw new Error('invalid zod schema');\n }\n\n private _createForm() {\n // not use $computed\n return this.$useForm<TFormData, TSubmitMeta>({\n defaultValues: this.$props.data,\n validationLogic:\n this.$props.validateOnDynamic !== false\n ? revalidateLogic(this.$props.validateOnDynamicLogic)\n : undefined,\n onSubmitInvalid: data => {\n this.$props.onSubmitInvalid?.(data, this);\n },\n onSubmit: async data => {\n const [_, error] = await catchError(() => {\n return this.$props.onSubmitData?.(data, this);\n });\n // emit event\n const resHandled = await this.app.meta.event.emit('a-form:formSubmission', {\n form: this.form as any,\n data,\n error,\n });\n if (!error) return;\n if (error.code === 422) {\n this._handleError422(error);\n this.$props.onSubmitInvalid?.(data, this);\n } else {\n if (!resHandled) {\n this.$props.onShowError?.({ data, error }, this);\n }\n }\n // must throw error for stop next logic\n throw error;\n },\n });\n }\n\n public renderField<K extends DeepKeys<TFormData>>(\n name: K,\n propsExtra?: IFormFieldOptions<TFormData>,\n ) {\n const property = this.getFieldProperty(name);\n const key = property?.key ?? name;\n return this._renderFieldByKey(key, propsExtra);\n }\n\n protected _renderFieldByKey(key: string, propsExtra?: IFormFieldOptions<TFormData>) {\n // celScope\n const celScope = this.getFieldScope(key);\n const jsxRenderContext = this.getFieldJsxRenderContext(undefined, celScope);\n // props\n let props = this.getFieldComponentPropsTop(key, celScope, jsxRenderContext);\n if (propsExtra) {\n props = Object.assign({}, props, propsExtra);\n }\n if (cast(props).visible === false) return;\n const componentOptions = this._getFieldComponentOptionsTop(props.render);\n return this.zovaJsx.render(componentOptions, props, celScope, jsxRenderContext);\n }\n\n private _getFieldComponentOptionsTop(\n render: TypeFormFieldRenderComponent,\n ): TypeFormFieldRenderComponent {\n render = render ?? 'Input';\n const renderProvider = this.getRenderProvider(render);\n if (this.isComponentFormField(renderProvider)) {\n return renderProvider as TypeFormFieldRenderComponent;\n }\n return 'a-form:formField';\n }\n\n public isComponentFormField(renderProvider?: TypeFormFieldRenderComponentProvider) {\n return typeof renderProvider === 'string' && renderProvider.includes(':formField');\n }\n\n private _handleError422(error: Error, cause: ValidationCause = 'submit') {\n const formApi = this.form;\n\n let hasErrored = false as boolean;\n\n // This map will only include fields that have errors in the current validation cycle\n const currentValidationErrorMap: any = {};\n\n const rawError = parseIssues(error);\n const { formError, fieldErrors } = normalizeError<TFormData>(rawError);\n\n const errorMapKey = getErrorMapKey(cause);\n\n for (const field of Object.keys(formApi.state.fieldMeta) as DeepKeys<TFormData>[]) {\n if (formApi.baseStore.state.fieldMetaBase[field] === undefined) {\n continue;\n }\n\n const fieldMeta = formApi.getFieldMeta(field);\n if (!fieldMeta) continue;\n\n const { errorMap: currentErrorMap, errorSourceMap: currentErrorMapSource } = fieldMeta;\n\n const newFormValidatorError = fieldErrors?.[field];\n\n const { newErrorValue, newSource } = determineFormLevelErrorSourceAndValue({\n newFormValidatorError,\n isPreviousErrorFromFormValidator: currentErrorMapSource?.[errorMapKey] === 'form',\n previousErrorValue: currentErrorMap?.[errorMapKey],\n });\n\n if (newSource === 'form') {\n currentValidationErrorMap[field] = {\n ...currentValidationErrorMap[field],\n [errorMapKey]: newFormValidatorError,\n };\n }\n\n if (currentErrorMap?.[errorMapKey] !== newErrorValue) {\n formApi.setFieldMeta(field, prev => ({\n ...prev,\n errorMap: {\n ...prev.errorMap,\n [errorMapKey]: newErrorValue,\n },\n errorSourceMap: {\n ...prev.errorSourceMap,\n [errorMapKey]: newSource,\n },\n }));\n }\n }\n\n if (formApi.state.errorMap?.[errorMapKey] !== formError) {\n formApi.baseStore.setState(prev => ({\n ...prev,\n errorMap: {\n ...prev.errorMap,\n [errorMapKey]: formError,\n },\n }));\n }\n\n if (formError || fieldErrors) {\n hasErrored = true;\n }\n\n /**\n * when we have an error for onSubmit in the state, we want\n * to clear the error as soon as the user enters a valid value in the field\n */\n const submitErrKey = getErrorMapKey('submit');\n if (formApi.state.errorMap?.[submitErrKey] && cause !== 'submit' && !hasErrored) {\n formApi.baseStore.setState(prev => ({\n ...prev,\n errorMap: {\n ...prev.errorMap,\n [submitErrKey]: undefined,\n },\n }));\n }\n\n /**\n * when we have an error for onServer in the state, we want\n * to clear the error as soon as the user enters a valid value in the field\n */\n const serverErrKey = getErrorMapKey('server');\n if (formApi.state.errorMap?.[serverErrKey] && cause !== 'server' && !hasErrored) {\n formApi.baseStore.setState(prev => ({\n ...prev,\n errorMap: {\n ...prev.errorMap,\n [serverErrKey]: undefined,\n },\n }));\n }\n }\n}\n\nfunction parseIssues(error: Error) {\n const issues: $ZodIssue[] =\n typeof error.message === 'string' ? JSON.parse(error.message) : error.message;\n const fields = {};\n for (const issue of issues) {\n const key = issue.path.join('.');\n fields[key] = issue;\n }\n return { fields };\n}\n\nfunction normalizeError<TFormData>(rawError?: FormValidationError<unknown>): {\n formError: ValidationError;\n fieldErrors?: Partial<Record<DeepKeys<TFormData>, ValidationError>>;\n} {\n if (rawError) {\n if (isGlobalFormValidationError(rawError)) {\n const formError = normalizeError(rawError.form).formError;\n const fieldErrors = rawError.fields;\n return { formError, fieldErrors } as never;\n }\n\n return { formError: rawError };\n }\n\n return { formError: undefined };\n}\n\nfunction getErrorMapKey(cause: ValidationCause) {\n switch (cause) {\n case 'submit':\n return 'onSubmit';\n case 'blur':\n return 'onBlur';\n case 'mount':\n return 'onMount';\n case 'server':\n return 'onServer';\n case 'dynamic':\n return 'onDynamic';\n case 'change':\n default:\n return 'onChange';\n }\n}\n","import { isNil } from '@cabloy/utils';\nimport { useField, useStore } from '@tanstack/vue-form';\nimport { markRaw } from 'vue';\nimport z from 'zod';\nimport { BeanControllerBase, deepEqual, IComponentOptions, Use } from 'zova';\nimport { Controller } from 'zova-module-a-bean';\nimport { BeanBehaviorsHolder, IBehaviorItem } from 'zova-module-a-behavior';\n\nimport type { ControllerForm } from '../form/controller.jsx';\n\nimport { TypeFormField } from '../../types/form.js';\nimport {\n constFieldProps,\n IFormFieldComponentOptions,\n IFormFieldOptions,\n IFormFieldRenderContext,\n IFormFieldRenderContextProps,\n IFormFieldRenderContextPropsBucket,\n} from '../../types/formField.js';\n\nexport interface ControllerFormFieldProps<\n TParentData extends {} = {},\n> extends IFormFieldComponentOptions<TParentData> {}\n\n@Controller()\nexport class ControllerFormField<TParentData extends {} = {}> extends BeanControllerBase {\n static $propsDefault = {};\n static $componentOptions: IComponentOptions = { inheritAttrs: false };\n\n private _formField: TypeFormField;\n public propsBucket: IFormFieldRenderContextPropsBucket<TParentData>;\n\n @Use({ injectionScope: 'host' })\n $$form: ControllerForm<TParentData>;\n\n @Use()\n $$beanBehaviorsHolder: BeanBehaviorsHolder;\n\n protected async __init__() {\n if (!this.$$form) {\n throw new Error(`FormField component should be used in Form component: ${this.name}`);\n }\n // provide\n this.bean._setBean('$$formField', this);\n // field\n this._formField = this._createField();\n // propsBucket\n this.propsBucket = this.$computed(() => {\n return this._getPropsBucket();\n });\n // defaultValue\n // this._handleDefaultValue();\n // watch\n this.$watch(\n () => this.property,\n (newValue, oldValue) => {\n if (deepEqual(newValue, oldValue)) return;\n // defaultValue\n // this._handleDefaultValue();\n const options = this._getFormFieldOptions();\n this._formField.api.update(options as any);\n this.form.resetField(this.name);\n },\n );\n // behaviors\n await this.$$beanBehaviorsHolder.initialize({\n behaviorTag: undefined as any,\n behaviors: () => {\n return this._getFieldBehaviors();\n },\n });\n }\n\n public get form() {\n return this.$$form.form;\n }\n\n public get field(): TypeFormField {\n return this._formField;\n }\n\n public get name() {\n return this.$props.name!;\n }\n\n public get property() {\n return this.$$form.getFieldProperty(this.name);\n }\n\n public get fieldZodSchema() {\n return this.$$form.getFieldZodSchema(this.name);\n }\n\n public get formMeta() {\n return this.$$form.formMeta;\n }\n\n public get formProvider() {\n return this.$$form.formProvider;\n }\n\n public setValue(value: any, disableNotifyChanged?: boolean) {\n if (disableNotifyChanged === undefined) {\n disableNotifyChanged = this.propsBucket.disableNotifyChanged;\n }\n return this.$$form.setFieldValue(this.name, value, disableNotifyChanged);\n }\n\n public handleBlur() {\n this.field.api.handleBlur();\n }\n\n public getRenderContext(): IFormFieldRenderContext<TParentData> {\n const name = this.name;\n // propsBucket\n const propsBucket = this.propsBucket;\n // props\n const props: IFormFieldRenderContextProps = { key: name, name };\n // class\n props.class = propsBucket.class;\n // readonly\n props.readonly = propsBucket.readonly;\n // celScope\n const celScope = this.$$form.getFieldScope(this.name, {});\n const jsxRenderContext = this.$$form.getFieldJsxRenderContext(this, celScope);\n return { propsBucket, props, celScope, jsxRenderContext };\n }\n\n private _createField() {\n const options = this._getFormFieldOptions();\n const field = markRaw(useField(options as any)) as any;\n const fieldState = useStore(field.api.store, state => state) as any;\n return { api: field.api, state: fieldState };\n }\n\n private _getPropsBucket() {\n const property = this.property;\n const name = this.name;\n // options\n const propsTop = this._getFieldComponentPropsTop();\n // layout options\n const layoutOptions = Object.assign(\n {\n bordered: this.scope.config.formFieldLayout.bordered,\n label: property?.title ?? name,\n },\n this.$$form.$props.formFieldLayout,\n this.$props?.layout,\n propsTop?.layout,\n );\n // preset options\n const presetOptions = Object.assign({}, this.$props?.options, propsTop?.options);\n // propsBucket\n const propsBucket = Object.assign(\n {\n render: 'Input',\n },\n this.$props as IFormFieldOptions<TParentData>,\n propsTop,\n {\n layout: layoutOptions,\n options: presetOptions,\n },\n );\n // class/style: layout\n if (propsBucket.layout.class || propsBucket.layout.style) {\n propsBucket.layout.class = this.$cssMerge(\n propsBucket.layout.class,\n this.$style(propsBucket.layout.style),\n );\n delete propsBucket.layout.style;\n }\n // class/style: need not check typeof propsBucket.render === 'string' because maybe return false\n const classTemp = propsBucket.options?.class ?? propsBucket.class;\n const styleTemp = propsBucket.options?.style ?? propsBucket.style;\n if (classTemp || styleTemp) {\n propsBucket.class = this.$cssMerge(classTemp, this.$style(styleTemp));\n if (propsBucket.options?.class) delete propsBucket.options.class;\n if (propsBucket.options?.style) delete propsBucket.options.style;\n delete propsBucket.style;\n }\n // readonly\n const readonlyTemp = propsBucket.options?.readonly ?? propsBucket.readonly;\n if (!isNil(readonlyTemp)) {\n propsBucket.readonly = readonlyTemp;\n if (propsBucket.options?.readonly) delete propsBucket.options.readonly;\n } else if (this.formMeta?.formMode === 'view') {\n propsBucket.readonly = true;\n }\n // render\n // propsBucket.renderFlattern = this.$$form.getRenderFlattern(propsBucket.render);\n propsBucket.renderProvider = this.$$form.getRenderProvider(propsBucket.render);\n return propsBucket;\n }\n\n private _getFieldComponentPropsTop() {\n if (this.$props[constFieldProps] === true) return;\n const celScope = this.$$form.getFieldScope(this.name);\n const jsxRenderContext = this.$$form.getFieldJsxRenderContext(this, celScope);\n return this.$$form.getFieldComponentPropsTop(this.name, celScope, jsxRenderContext);\n }\n\n private _getFieldBehaviors() {\n const behaviors: IBehaviorItem = {};\n // custom\n if (this.$props.behaviors) {\n Object.assign(behaviors, this.$props.behaviors);\n }\n // formField\n this._prepareBehaviorFormField(behaviors);\n // formFieldLayout\n this._prepareBehaviorFormFieldLayout(behaviors);\n return behaviors;\n }\n\n private _prepareBehaviorFormField(behaviors: IBehaviorItem) {\n const behaviorFormField = this.formProvider.behaviors?.FormField;\n if (!behaviorFormField) return;\n behaviors[behaviorFormField] = {} as never;\n }\n\n private _prepareBehaviorFormFieldLayout(behaviors: IBehaviorItem) {\n const behaviorFormFieldLayout = this.formProvider.behaviors?.FormFieldLayout;\n if (!behaviorFormFieldLayout) return;\n behaviors[behaviorFormFieldLayout] = {} as never;\n }\n\n // private _handleDefaultValue() {\n // const defaultValue = this.$props.defaultValue ?? this.property?.default;\n // if (isNil(defaultValue)) return;\n // const value = this.$$form.getFieldValue(this.name);\n // if (isNil(value)) {\n // this.$$form.setFieldValue(this.name, defaultValue, true);\n // }\n // }\n\n private _getFormFieldOptions() {\n // defaultValue\n const value = this.$$form.getFieldValue(this.name);\n const defaultValue = isNil(value)\n ? (this.$props.sys?.defaultValue ?? this.property?.default)\n : undefined;\n // validators\n const validators = this._getFormFieldOptionsValidators();\n return Object.assign(\n {\n defaultValue,\n },\n this.$props.sys,\n {\n name: this.name,\n form: this.$$form.form,\n validators,\n },\n );\n }\n\n private _getFormFieldOptionsValidators() {\n const zodSchemaField = this.fieldZodSchema;\n const validators = this.$props.validators;\n const validateOnDynamicDefault =\n validators?.onDynamic === undefined &&\n validators?.onBlur === undefined &&\n validators?.onChange === undefined;\n const validateOnDynamic = validators?.onDynamic ?? validateOnDynamicDefault;\n const validateOnBlur = validators?.onBlur;\n const validateOnChange = validators?.onChange;\n return Object.assign(\n {},\n {\n onDynamic: _normalizeValidateSchema(validateOnDynamic, zodSchemaField),\n onBlur: _normalizeValidateSchema(validateOnBlur, zodSchemaField),\n onChange: _normalizeValidateSchema(validateOnChange, zodSchemaField),\n },\n this.$props.sys?.validators,\n );\n }\n}\n\nfunction _normalizeValidateSchema(\n validateSchema?: boolean | z.ZodType,\n zodSchemaField?: z.ZodType,\n) {\n if (!validateSchema) return undefined;\n if (validateSchema === true) return zodSchemaField;\n return validateSchema;\n}\n","import type { IComponentOptions } from 'zova';\n\nimport { VNode } from 'vue';\nimport { BeanControllerBase, Use } from 'zova';\nimport { Controller } from 'zova-module-a-bean';\n\nimport { ControllerForm } from '../form/controller.jsx';\n\nexport interface ControllerFormFieldBlankProps<TParentData extends {} = {}, TSubmitMeta = never> {\n slotDefault?: (form: ControllerForm<TParentData, TSubmitMeta>) => VNode | undefined;\n}\n\n@Controller()\nexport class ControllerFormFieldBlank<TParentData extends {} = {}> extends BeanControllerBase {\n static $propsDefault = {};\n static $componentOptions: IComponentOptions = { inheritAttrs: false, deepExtendDefault: true };\n\n @Use({ injectionScope: 'host' })\n $$form: ControllerForm<TParentData>;\n\n protected async __init__() {}\n\n protected render() {\n if (this.$slotDefault) {\n return this.$slotDefault(this.$$form);\n }\n }\n}\n","import { BeanControllerBase, IComponentOptions, Use } from 'zova';\nimport { Controller } from 'zova-module-a-bean';\nimport { ISchemaRenderComponentPresetRecord } from 'zova-module-a-openapi';\n\nimport type { ControllerForm } from '../form/controller.jsx';\n\nimport { IFormFieldPresetOptions } from '../../types/formField.js';\n\nexport interface ControllerFormFieldPresetProps<\n PresetName extends keyof ISchemaRenderComponentPresetRecord = never,\n> extends IFormFieldPresetOptions<PresetName> {}\n\n@Controller()\nexport class ControllerFormFieldPreset extends BeanControllerBase {\n static $propsDefault = {};\n static $componentOptions: IComponentOptions = { inheritAttrs: false, deepExtendDefault: true };\n\n @Use({ injectionScope: 'host' })\n $$form: ControllerForm;\n\n protected async __init__() {}\n\n protected render() {\n const name = this.$props.name;\n if (!name) throw new Error(`should specify field name`);\n return this.$$form.renderField(name, this.$props as any);\n }\n}\n","import { h, VNode } from 'vue';\nimport { BeanRenderBase } from 'zova';\nimport { Render } from 'zova-module-a-bean';\n\n@Render()\nexport class RenderForm extends BeanRenderBase {\n private _renderSchema() {\n if (!this.properties) return;\n const children: VNode[] = [];\n for (const property of this.properties) {\n const child = this._renderFieldByKey(property.key!);\n if (child) {\n if (Array.isArray(child)) {\n children.push(...child);\n } else {\n children.push(child);\n }\n }\n }\n return children;\n }\n\n private _renderChildren() {\n const children: (VNode | undefined)[] = [];\n children.push(this.$props.slotHeader?.(this));\n const bodyInner = this._renderBodyInner();\n if (this.$props.slotBody) {\n children.push(this.$props.slotBody(bodyInner, this));\n } else {\n children.push(bodyInner);\n }\n children.push(this.$props.slotFooter?.(this));\n return children;\n }\n\n private _renderBodyInner() {\n const FormTag = this.$props.formTag;\n return this.$slotDefault ? (\n this.$slotDefault(this)\n ) : (\n <>\n {this._renderSchema()}\n {FormTag === 'form' && <button type=\"submit\" style={{ display: 'none' }}></button>}\n </>\n );\n }\n\n private _renderProps() {\n const FormTag = this.$props.formTag;\n const props: any = {};\n if (this.$props.inline) {\n props.class = 'inline';\n }\n if (FormTag === 'form') {\n props.onSubmit = (e: SubmitEvent) => {\n if (this.$props.onFormSubmit) {\n this.$props.onFormSubmit(e, this);\n } else {\n e.preventDefault();\n e.stopPropagation();\n this.submit();\n }\n };\n }\n return props;\n }\n\n public render() {\n const FormTag = this.$props.formTag;\n const props = this._renderProps();\n const children = this._renderChildren();\n if (this.$props.slotWrapper) {\n return h(FormTag, props, this.$props.slotWrapper(children, this));\n }\n return h(FormTag, props, children);\n }\n}\n","import type { TypeControllerInnerProps } from 'zova';\n\nimport { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\n\nimport type { ControllerFormProps } from '../../component/form/controller.jsx';\n\nimport { ControllerForm } from '../../component/form/controller.jsx';\nimport { RenderForm } from '../../component/form/render.jsx';\nexport type TypeControllerFormPublicProps<TFormData extends {} = {}, TSubmitMeta = never> = {\n controllerRef?: (ref: ControllerForm<TFormData, TSubmitMeta>) => void;\n} & ControllerFormProps<TFormData, TSubmitMeta>;\n\ntype ControllerInnerProps<\n TFormData extends {} = {},\n TSubmitMeta = never,\n> = TypeControllerInnerProps<\n ControllerFormProps<TFormData, TSubmitMeta>,\n keyof typeof ControllerForm.$propsDefault\n>;\ndeclare module 'zova-module-a-form' {\n export interface ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> {\n $props: ControllerInnerProps<TFormData, TSubmitMeta>;\n }\n}\ndeclare module 'zova-module-a-form' {\n export interface RenderForm<\n TFormData extends {} = {},\n TSubmitMeta = never,\n > extends ControllerForm<TFormData, TSubmitMeta> {}\n}\nexport const ZForm = defineComponent(\n <TFormData extends {} = {}, TSubmitMeta = never>(\n _props: TypeControllerFormPublicProps<TFormData, TSubmitMeta>,\n ) => {\n useController(ControllerForm, RenderForm, undefined);\n return () => {};\n },\n prepareComponentOptions(),\n);\ndeclare module 'zova-module-a-bean' {\n export interface IVonaComponentRecord {\n 'a-form:form': ControllerFormProps;\n }\n}\n","import { BeanRenderBase, SymbolController } from 'zova';\nimport { Render } from 'zova-module-a-bean';\n\nimport { IFormFieldRenderContext } from '../../types/formField.js';\n\n@Render()\nexport class RenderFormField<TParentData extends {} = {}> extends BeanRenderBase {\n public render() {\n const renderContext = this.getRenderContext();\n return this.$$beanBehaviorsHolder.render(\n (renderContext: IFormFieldRenderContext<TParentData>) => {\n return this._renderSlotDefault(renderContext);\n },\n renderContext,\n );\n }\n\n private _renderSlotDefault(renderContext: IFormFieldRenderContext<TParentData>) {\n if (this.$slotDefault) {\n return this.$slotDefault!(renderContext, this[SymbolController]);\n }\n return this.$$form.zovaJsx.render(\n renderContext.propsBucket.render,\n renderContext.props,\n renderContext.celScope,\n renderContext.jsxRenderContext,\n );\n }\n}\n","import type { TypeControllerInnerProps } from 'zova';\n\nimport { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\n\nimport type { ControllerFormFieldProps } from '../../component/formField/controller.jsx';\n\nimport { ControllerFormField } from '../../component/formField/controller.jsx';\nimport { RenderFormField } from '../../component/formField/render.jsx';\nexport type TypeControllerFormFieldPublicProps<TParentData extends {} = {}> = {\n controllerRef?: (ref: ControllerFormField<TParentData>) => void;\n} & ControllerFormFieldProps<TParentData>;\n\ntype ControllerInnerProps<TParentData extends {} = {}> = TypeControllerInnerProps<\n ControllerFormFieldProps<TParentData>,\n keyof typeof ControllerFormField.$propsDefault\n>;\ndeclare module 'zova-module-a-form' {\n export interface ControllerFormField<TParentData extends {} = {}> {\n $props: ControllerInnerProps<TParentData>;\n }\n}\ndeclare module 'zova-module-a-form' {\n export interface RenderFormField<\n TParentData extends {} = {},\n > extends ControllerFormField<TParentData> {}\n}\nexport const ZFormField = defineComponent(\n <TParentData extends {} = {}>(_props: TypeControllerFormFieldPublicProps<TParentData>) => {\n useController(ControllerFormField, RenderFormField, undefined);\n return () => {};\n },\n prepareComponentOptions(ControllerFormField.$componentOptions),\n);\ndeclare module 'zova-module-a-bean' {\n export interface IVonaComponentRecord {\n 'a-form:formField': ControllerFormFieldProps;\n }\n}\n","import type { TypeControllerInnerProps } from 'zova';\n\nimport { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\n\nimport type { ControllerFormFieldBlankProps } from '../../component/formFieldBlank/controller.jsx';\n\nimport { ControllerFormFieldBlank } from '../../component/formFieldBlank/controller.jsx';\nexport type TypeControllerFormFieldBlankPublicProps<\n TParentData extends {} = {},\n TSubmitMeta = never,\n> = {\n controllerRef?: (ref: ControllerFormFieldBlank<TParentData, TSubmitMeta>) => void;\n} & ControllerFormFieldBlankProps<TParentData, TSubmitMeta>;\n\ntype ControllerInnerProps<\n TParentData extends {} = {},\n TSubmitMeta = never,\n> = TypeControllerInnerProps<\n ControllerFormFieldBlankProps<TParentData, TSubmitMeta>,\n keyof typeof ControllerFormFieldBlank.$propsDefault\n>;\ndeclare module 'zova-module-a-form' {\n export interface ControllerFormFieldBlank<TParentData extends {} = {}, TSubmitMeta = never> {\n $props: ControllerInnerProps<TParentData, TSubmitMeta>;\n }\n}\n\nexport const ZFormFieldBlank = defineComponent(\n <TParentData extends {} = {}, TSubmitMeta = never>(\n _props: TypeControllerFormFieldBlankPublicProps<TParentData, TSubmitMeta>,\n ) => {\n useController(ControllerFormFieldBlank, undefined, undefined);\n return () => {};\n },\n prepareComponentOptions(ControllerFormFieldBlank.$componentOptions),\n);\ndeclare module 'zova-module-a-bean' {\n export interface IVonaComponentRecord {\n 'a-form:formFieldBlank': ControllerFormFieldBlankProps;\n }\n}\n","import type { TypeControllerInnerProps } from 'zova';\n\nimport { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ISchemaRenderComponentPresetRecord } from 'zova-module-a-openapi';\n\nimport type { ControllerFormFieldPresetProps } from '../../component/formFieldPreset/controller.jsx';\n\nimport { ControllerFormFieldPreset } from '../../component/formFieldPreset/controller.jsx';\nexport type TypeControllerFormFieldPresetPublicProps<\n PresetName extends keyof ISchemaRenderComponentPresetRecord = never,\n> = {\n controllerRef?: (ref: ControllerFormFieldPreset<PresetName>) => void;\n} & ControllerFormFieldPresetProps<PresetName>;\n\ntype ControllerInnerProps<PresetName extends keyof ISchemaRenderComponentPresetRecord = never> =\n TypeControllerInnerProps<\n ControllerFormFieldPresetProps<PresetName>,\n keyof typeof ControllerFormFieldPreset.$propsDefault\n >;\ndeclare module 'zova-module-a-form' {\n export interface ControllerFormFieldPreset<\n PresetName extends keyof ISchemaRenderComponentPresetRecord = never,\n > {\n $props: ControllerInnerProps<PresetName>;\n }\n}\n\nexport const ZFormFieldPreset = defineComponent(\n <PresetName extends keyof ISchemaRenderComponentPresetRecord = never>(\n _props: TypeControllerFormFieldPresetPublicProps<PresetName>,\n ) => {\n useController(ControllerFormFieldPreset, undefined, undefined);\n return () => {};\n },\n prepareComponentOptions(ControllerFormFieldPreset.$componentOptions),\n);\ndeclare module 'zova-module-a-bean' {\n export interface IVonaComponentRecord {\n 'a-form:formFieldPreset': ControllerFormFieldPresetProps;\n }\n}\n","import type { ZovaSys } from 'zova';\n\nexport const config = (_sys: ZovaSys) => {\n return {\n formFieldLayout: {\n bordered: true,\n },\n };\n};\n","// eslint-disable\n/** controller: begin */\nexport * from '../component/form/controller.jsx';\nexport * from '../component/formField/controller.jsx';\nexport * from '../component/formFieldBlank/controller.jsx';\nexport * from '../component/formFieldPreset/controller.jsx';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-form' {\n \n export interface ControllerForm {\n /** @internal */\n get scope(): ScopeModuleAForm;\n }\n\n export interface ControllerFormField {\n /** @internal */\n get scope(): ScopeModuleAForm;\n }\n\n export interface ControllerFormFieldBlank {\n /** @internal */\n get scope(): ScopeModuleAForm;\n }\n\n export interface ControllerFormFieldPreset {\n /** @internal */\n get scope(): ScopeModuleAForm;\n } \n}\n/** controller: end */\n/** controller: begin */\nimport { ControllerForm } from '../component/form/controller.jsx';\nimport { ControllerFormField } from '../component/formField/controller.jsx';\nimport { ControllerFormFieldBlank } from '../component/formFieldBlank/controller.jsx';\nimport { ControllerFormFieldPreset } from '../component/formFieldPreset/controller.jsx';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordLocal {\n 'a-form.controller.form': ControllerForm;\n'a-form.controller.formField': ControllerFormField;\n'a-form.controller.formFieldBlank': ControllerFormFieldBlank;\n'a-form.controller.formFieldPreset': ControllerFormFieldPreset;\n }\n}\n/** controller: end */\n\n/** components: begin */\nexport * from './component/form.js';\nimport { ZForm } from './component/form.js';\nexport * from './component/formField.js';\nimport { ZFormField } from './component/formField.js';\nexport * from './component/formFieldBlank.js';\nimport { ZFormFieldBlank } from './component/formFieldBlank.js';\nexport * from './component/formFieldPreset.js';\nimport { ZFormFieldPreset } from './component/formFieldPreset.js';\nexport const components = {\n 'form': ZForm,\n'formField': ZFormField,\n'formFieldBlank': ZFormFieldBlank,\n'formFieldPreset': ZFormFieldPreset,\n};\nimport 'zova';\ndeclare module 'zova' {\nexport interface IComponentRecord {\n 'a-form:form': ControllerForm;\n'a-form:formField': ControllerFormField;\n'a-form:formFieldBlank': ControllerFormFieldBlank;\n'a-form:formFieldPreset': ControllerFormFieldPreset;\n}\nexport interface IZovaComponentRecord {\n 'a-form:form': typeof ZForm;\n'a-form:formField': typeof ZFormField;\n'a-form:formFieldBlank': typeof ZFormFieldBlank;\n'a-form:formFieldPreset': typeof ZFormFieldPreset;\n}\n}\n/** components: end */\n/** render: begin */\nexport * from '../component/form/render.jsx';\nexport * from '../component/formField/render.jsx';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-form' {\n \n export interface RenderForm {\n /** @internal */\n get scope(): ScopeModuleAForm;\n }\n\n export interface RenderFormField {\n /** @internal */\n get scope(): ScopeModuleAForm;\n } \n}\n/** render: end */\n/** render: begin */\nimport { RenderForm } from '../component/form/render.jsx';\nimport { RenderFormField } from '../component/formField/render.jsx';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordLocal {\n 'a-form.render.form': RenderForm;\n'a-form.render.formField': RenderFormField;\n }\n}\n/** render: end */\n/** config: begin */\nexport * from '../config/config.js';\nimport { config } from '../config/config.js';\n/** config: end */\n/** scope: begin */\nimport { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\n\n@Scope()\nexport class ScopeModuleAForm extends BeanScopeBase {}\n\nexport interface ScopeModuleAForm {\n util: BeanScopeUtil;\nconfig: TypeModuleConfig<typeof config>;\n}\n\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanScopeRecord {\n 'a-form': ScopeModuleAForm;\n }\n \n export interface IBeanScopeConfig {\n 'a-form': ReturnType<typeof config>;\n }\n\n \n\n \n}\n \n/** scope: end */\n","import type {\n FormApi,\n FormAsyncValidateOrFn,\n FormOptions,\n FormValidateOrFn,\n VueFormApi,\n} from '@tanstack/vue-form';\n\nimport { useForm } from '@tanstack/vue-form';\nimport { markRaw } from 'vue';\nimport { BeanControllerPageBase } from 'zova';\n\nimport { TypeForm } from '../types/form.js';\n\nexport class BeanControllerPageFormBase<\n TFormData extends {} = {},\n TSubmitMeta = never,\n> extends BeanControllerPageBase {\n form: TypeForm<TFormData, TSubmitMeta>;\n formState: TypeForm<TFormData>['state'];\n\n public async submit(_submitMeta?: TSubmitMeta): Promise<boolean> {\n throw new Error('should implement submit');\n }\n\n public reset(_values?: TFormData, _opts?: { keepDefaultValues?: boolean }): TFormData {\n throw new Error('should implement reset');\n }\n\n public $useForm<\n TParentData,\n TFormOnMount extends undefined | FormValidateOrFn<TParentData>,\n TFormOnChange extends undefined | FormValidateOrFn<TParentData>,\n TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n TFormOnBlur extends undefined | FormValidateOrFn<TParentData>,\n TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n TFormOnSubmit extends undefined | FormValidateOrFn<TParentData>,\n TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n TFormOnDynamic extends undefined | FormValidateOrFn<TParentData>,\n TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n TFormOnServer extends undefined | FormAsyncValidateOrFn<TParentData>,\n TSubmitMeta,\n >(\n opts?: FormOptions<\n TParentData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n >,\n ): FormApi<\n TParentData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n > &\n VueFormApi<\n TParentData,\n TFormOnMount,\n TFormOnChange,\n TFormOnChangeAsync,\n TFormOnBlur,\n TFormOnBlurAsync,\n TFormOnSubmit,\n TFormOnSubmitAsync,\n TFormOnDynamic,\n TFormOnDynamicAsync,\n TFormOnServer,\n TSubmitMeta\n > {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useForm(opts));\n });\n }\n}\n","import type { IFormMeta, TypeFormScene } from 'zova-module-a-openapi';\n\nexport function formMetaFromFormScene(formScene: TypeFormScene): IFormMeta {\n if (formScene === 'view') return { formScene, formMode: 'view', editMode: undefined };\n if (formScene === 'create') return { formScene, formMode: 'edit', editMode: 'create' };\n if (formScene === 'edit') return { formScene, formMode: 'edit', editMode: 'update' };\n throw new Error('invalid parameters');\n}\n\nexport function formSceneFromFormMeta(formMeta: Partial<IFormMeta>): TypeFormScene | undefined {\n if (formMeta.formMode === 'view') return 'view';\n if (formMeta.formMode === 'edit' && formMeta.editMode === 'create') return 'create';\n if (formMeta.formMode === 'edit' && formMeta.editMode === 'update') return 'edit';\n if (formMeta.formMode === 'edit' && formMeta.editMode === undefined) return 'edit';\n return undefined;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beanControllerFormBase.d.ts","sourceRoot":"","sources":["../../src/lib/beanControllerFormBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"beanControllerFormBase.d.ts","sourceRoot":"","sources":["../../src/lib/beanControllerFormBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACX,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,qBAAa,sBAAsB,CACjC,SAAS,SAAS,EAAE,GAAG,EAAE,EACzB,WAAW,GAAG,KAAK,CACnB,SAAQ,kBAAkB;IAC1B,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACvC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;IAE3B,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzD,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS;IAI9E,QAAQ,CACb,SAAS,EACT,WAAW,GAAG,KAAK,EACnB,YAAY,SAAS,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,GACxD,SAAS,GACT,gBAAgB,CAAC,SAAS,CAAC,EAC/B,aAAa,SAAS,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,GACzD,SAAS,GACT,gBAAgB,CAAC,SAAS,CAAC,EAC/B,kBAAkB,SAAS,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,GACnE,SAAS,GACT,qBAAqB,CAAC,SAAS,CAAC,EACpC,WAAW,SAAS,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,GACvD,SAAS,GACT,gBAAgB,CAAC,SAAS,CAAC,EAC/B,gBAAgB,SAAS,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,GACjE,SAAS,GACT,qBAAqB,CAAC,SAAS,CAAC,EACpC,aAAa,SAAS,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,GACzD,SAAS,GACT,gBAAgB,CAAC,SAAS,CAAC,EAC/B,kBAAkB,SAAS,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,GACnE,SAAS,GACT,qBAAqB,CAAC,SAAS,CAAC,EACpC,cAAc,SAAS,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAC1D,SAAS,GACT,gBAAgB,CAAC,SAAS,CAAC,EAC/B,mBAAmB,SAAS,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,GACpE,SAAS,GACT,qBAAqB,CAAC,SAAS,CAAC,EACpC,aAAa,SAAS,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAC9D,SAAS,GACT,qBAAqB,CAAC,SAAS,CAAC,EAEpC,IAAI,CAAC,EAAE,WAAW,CAChB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,CACZ,GACA,OAAO,CACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,CACZ,GACC,UAAU,CACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,CACZ;CAKJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beanControllerPageFormBase.d.ts","sourceRoot":"","sources":["../../src/lib/beanControllerPageFormBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"beanControllerPageFormBase.d.ts","sourceRoot":"","sources":["../../src/lib/beanControllerPageFormBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACX,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,qBAAa,0BAA0B,CACrC,SAAS,SAAS,EAAE,GAAG,EAAE,EACzB,WAAW,GAAG,KAAK,CACnB,SAAQ,sBAAsB;IAC9B,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACvC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;IAE3B,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzD,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS;IAI9E,QAAQ,CACb,WAAW,EACX,YAAY,SAAS,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,EAC9D,aAAa,SAAS,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,EAC/D,kBAAkB,SAAS,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC,EACzE,WAAW,SAAS,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,EAC7D,gBAAgB,SAAS,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC,EACvE,aAAa,SAAS,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,EAC/D,kBAAkB,SAAS,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC,EACzE,cAAc,SAAS,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,EAChE,mBAAmB,SAAS,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC,EAC1E,aAAa,SAAS,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC,EACpE,WAAW,EAEX,IAAI,CAAC,EAAE,WAAW,CAChB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,CACZ,GACA,OAAO,CACR,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,CACZ,GACC,UAAU,CACR,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,CACZ;CAKJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formField.d.ts","sourceRoot":"","sources":["../../src/types/formField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EACV,qBAAqB,EACrB,+BAA+B,EAC/B,kCAAkC,EAClC,4BAA4B,EAC5B,oCAAoC,EACpC,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAE9D,MAAM,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"formField.d.ts","sourceRoot":"","sources":["../../src/types/formField.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -31,7 +31,13 @@ import {
|
|
|
31
31
|
} from 'zova-module-a-openapi';
|
|
32
32
|
|
|
33
33
|
import { BeanControllerFormBase } from '../../lib/beanControllerFormBase.js';
|
|
34
|
-
import {
|
|
34
|
+
import {
|
|
35
|
+
IFormScope,
|
|
36
|
+
RevalidateLogicProps,
|
|
37
|
+
TypeFormOnShowError,
|
|
38
|
+
TypeFormOnSubmit,
|
|
39
|
+
TypeFormOnSubmitInvalid,
|
|
40
|
+
} from '../../types/form.js';
|
|
35
41
|
import {
|
|
36
42
|
constFieldProps,
|
|
37
43
|
IFormFieldOptions,
|
|
@@ -63,10 +69,16 @@ export interface ControllerFormProps<TFormData extends {} = {}, TSubmitMeta = ne
|
|
|
63
69
|
slotHeader?: (form: ControllerForm<TFormData, TSubmitMeta>) => VNode;
|
|
64
70
|
slotBody?: (children: VNode, form: ControllerForm<TFormData, TSubmitMeta>) => VNode;
|
|
65
71
|
slotFooter?: (form: ControllerForm<TFormData, TSubmitMeta>) => VNode;
|
|
66
|
-
slotWrapper?: (
|
|
72
|
+
slotWrapper?: (
|
|
73
|
+
children: (VNode | undefined)[],
|
|
74
|
+
form: ControllerForm<TFormData, TSubmitMeta>,
|
|
75
|
+
) => VNode;
|
|
67
76
|
}
|
|
68
77
|
@Controller()
|
|
69
|
-
export class ControllerForm<
|
|
78
|
+
export class ControllerForm<
|
|
79
|
+
TFormData extends {} = {},
|
|
80
|
+
TSubmitMeta = never,
|
|
81
|
+
> extends BeanControllerFormBase<TFormData, TSubmitMeta> {
|
|
70
82
|
static $propsDefault = { formTag: 'form', schemaScene: 'form' };
|
|
71
83
|
|
|
72
84
|
formProvider: IFormProvider;
|
|
@@ -85,7 +97,9 @@ export class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> exte
|
|
|
85
97
|
this.formState = useStore(this.form.store, state => state) as any;
|
|
86
98
|
this.formProvider = this.$computed(() => {
|
|
87
99
|
const formProvider = this.$$scopeOpenapi.config.formProvider;
|
|
88
|
-
return this.$props.formProvider
|
|
100
|
+
return this.$props.formProvider
|
|
101
|
+
? deepExtend({}, formProvider, this.$props.formProvider)
|
|
102
|
+
: formProvider;
|
|
89
103
|
});
|
|
90
104
|
this.schema = this.$computed(() => {
|
|
91
105
|
return this.$props.schema;
|
|
@@ -97,7 +111,12 @@ export class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> exte
|
|
|
97
111
|
return this.$sdk.loadSchemaProperties(this.schema, this.$props.schemaScene);
|
|
98
112
|
});
|
|
99
113
|
this.fieldCelEnv = this._getFieldCelEnv();
|
|
100
|
-
this.zovaJsx = this.bean._newBeanSimple(
|
|
114
|
+
this.zovaJsx = this.bean._newBeanSimple(
|
|
115
|
+
ZovaJsx,
|
|
116
|
+
false,
|
|
117
|
+
this.formProvider.components,
|
|
118
|
+
this.fieldCelEnv,
|
|
119
|
+
);
|
|
101
120
|
this.$watch(
|
|
102
121
|
() => this.$props.data,
|
|
103
122
|
(newValue, oldValue) => {
|
|
@@ -127,14 +146,20 @@ export class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> exte
|
|
|
127
146
|
return getBy(this.formState.values, name) ?? null;
|
|
128
147
|
}
|
|
129
148
|
|
|
130
|
-
public setFieldValue<K extends DeepKeys<TFormData>>(
|
|
149
|
+
public setFieldValue<K extends DeepKeys<TFormData>>(
|
|
150
|
+
name: K,
|
|
151
|
+
value: any,
|
|
152
|
+
disableNotifyChanged?: boolean,
|
|
153
|
+
) {
|
|
131
154
|
this.form.setFieldValue(name, value);
|
|
132
155
|
if (!disableNotifyChanged) {
|
|
133
156
|
this.$props.onChanged?.(this.formState.values);
|
|
134
157
|
}
|
|
135
158
|
}
|
|
136
159
|
|
|
137
|
-
public getFieldProperty<K extends DeepKeys<TFormData>>(
|
|
160
|
+
public getFieldProperty<K extends DeepKeys<TFormData>>(
|
|
161
|
+
name: K,
|
|
162
|
+
): ISchemaObjectExtensionField | undefined {
|
|
138
163
|
if (!this.properties) return;
|
|
139
164
|
return this.properties.find(item => item.key === name);
|
|
140
165
|
}
|
|
@@ -154,7 +179,10 @@ export class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> exte
|
|
|
154
179
|
return celEnv;
|
|
155
180
|
}
|
|
156
181
|
|
|
157
|
-
public getFieldScope<K extends DeepKeys<TFormData>>(
|
|
182
|
+
public getFieldScope<K extends DeepKeys<TFormData>>(
|
|
183
|
+
name: K,
|
|
184
|
+
scopeExtra?: {},
|
|
185
|
+
): IFormFieldScope<TFormData> {
|
|
158
186
|
return objectAssignReactive({}, this.$props.formScope, {
|
|
159
187
|
name,
|
|
160
188
|
value: this.getFieldValue(name),
|
|
@@ -222,7 +250,12 @@ export class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> exte
|
|
|
222
250
|
// render
|
|
223
251
|
const needAppend = isJsxComponent(props.render) && this.isComponentFormField(props.render.type);
|
|
224
252
|
if (needAppend && !isEmptyObject(props.render.props)) {
|
|
225
|
-
const propsAppend = this.zovaJsx.renderJsxOrCel(
|
|
253
|
+
const propsAppend = this.zovaJsx.renderJsxOrCel(
|
|
254
|
+
props.render.props,
|
|
255
|
+
undefined,
|
|
256
|
+
celScope,
|
|
257
|
+
jsxRenderContext,
|
|
258
|
+
);
|
|
226
259
|
props = Object.assign({}, props, propsAppend);
|
|
227
260
|
}
|
|
228
261
|
// ok
|
|
@@ -233,7 +266,9 @@ export class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> exte
|
|
|
233
266
|
// return isJsxComponent(render) ? cast(render).type : render;
|
|
234
267
|
// }
|
|
235
268
|
|
|
236
|
-
public getRenderProvider(
|
|
269
|
+
public getRenderProvider(
|
|
270
|
+
render: TypeFormFieldRenderComponent,
|
|
271
|
+
): TypeFormFieldRenderComponentProvider {
|
|
237
272
|
if (isJsxComponent(render)) {
|
|
238
273
|
return cast(render).type;
|
|
239
274
|
}
|
|
@@ -261,7 +296,10 @@ export class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> exte
|
|
|
261
296
|
// not use $computed
|
|
262
297
|
return this.$useForm<TFormData, TSubmitMeta>({
|
|
263
298
|
defaultValues: this.$props.data,
|
|
264
|
-
validationLogic:
|
|
299
|
+
validationLogic:
|
|
300
|
+
this.$props.validateOnDynamic !== false
|
|
301
|
+
? revalidateLogic(this.$props.validateOnDynamicLogic)
|
|
302
|
+
: undefined,
|
|
265
303
|
onSubmitInvalid: data => {
|
|
266
304
|
this.$props.onSubmitInvalid?.(data, this);
|
|
267
305
|
},
|
|
@@ -290,7 +328,10 @@ export class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> exte
|
|
|
290
328
|
});
|
|
291
329
|
}
|
|
292
330
|
|
|
293
|
-
public renderField<K extends DeepKeys<TFormData>>(
|
|
331
|
+
public renderField<K extends DeepKeys<TFormData>>(
|
|
332
|
+
name: K,
|
|
333
|
+
propsExtra?: IFormFieldOptions<TFormData>,
|
|
334
|
+
) {
|
|
294
335
|
const property = this.getFieldProperty(name);
|
|
295
336
|
const key = property?.key ?? name;
|
|
296
337
|
return this._renderFieldByKey(key, propsExtra);
|
|
@@ -310,7 +351,9 @@ export class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> exte
|
|
|
310
351
|
return this.zovaJsx.render(componentOptions, props, celScope, jsxRenderContext);
|
|
311
352
|
}
|
|
312
353
|
|
|
313
|
-
private _getFieldComponentOptionsTop(
|
|
354
|
+
private _getFieldComponentOptionsTop(
|
|
355
|
+
render: TypeFormFieldRenderComponent,
|
|
356
|
+
): TypeFormFieldRenderComponent {
|
|
314
357
|
render = render ?? 'Input';
|
|
315
358
|
const renderProvider = this.getRenderProvider(render);
|
|
316
359
|
if (this.isComponentFormField(renderProvider)) {
|
|
@@ -423,7 +466,8 @@ export class ControllerForm<TFormData extends {} = {}, TSubmitMeta = never> exte
|
|
|
423
466
|
}
|
|
424
467
|
|
|
425
468
|
function parseIssues(error: Error) {
|
|
426
|
-
const issues: $ZodIssue[] =
|
|
469
|
+
const issues: $ZodIssue[] =
|
|
470
|
+
typeof error.message === 'string' ? JSON.parse(error.message) : error.message;
|
|
427
471
|
const fields = {};
|
|
428
472
|
for (const issue of issues) {
|
|
429
473
|
const key = issue.path.join('.');
|
|
@@ -18,7 +18,9 @@ import {
|
|
|
18
18
|
IFormFieldRenderContextPropsBucket,
|
|
19
19
|
} from '../../types/formField.js';
|
|
20
20
|
|
|
21
|
-
export interface ControllerFormFieldProps<
|
|
21
|
+
export interface ControllerFormFieldProps<
|
|
22
|
+
TParentData extends {} = {},
|
|
23
|
+
> extends IFormFieldComponentOptions<TParentData> {}
|
|
22
24
|
|
|
23
25
|
@Controller()
|
|
24
26
|
export class ControllerFormField<TParentData extends {} = {}> extends BeanControllerBase {
|
|
@@ -143,18 +145,18 @@ export class ControllerFormField<TParentData extends {} = {}> extends BeanContro
|
|
|
143
145
|
label: property?.title ?? name,
|
|
144
146
|
},
|
|
145
147
|
this.$$form.$props.formFieldLayout,
|
|
146
|
-
propsTop?.layout,
|
|
147
148
|
this.$props?.layout,
|
|
149
|
+
propsTop?.layout,
|
|
148
150
|
);
|
|
149
151
|
// preset options
|
|
150
|
-
const presetOptions = Object.assign({},
|
|
152
|
+
const presetOptions = Object.assign({}, this.$props?.options, propsTop?.options);
|
|
151
153
|
// propsBucket
|
|
152
154
|
const propsBucket = Object.assign(
|
|
153
155
|
{
|
|
154
156
|
render: 'Input',
|
|
155
157
|
},
|
|
156
|
-
propsTop,
|
|
157
158
|
this.$props as IFormFieldOptions<TParentData>,
|
|
159
|
+
propsTop,
|
|
158
160
|
{
|
|
159
161
|
layout: layoutOptions,
|
|
160
162
|
options: presetOptions,
|
|
@@ -162,7 +164,10 @@ export class ControllerFormField<TParentData extends {} = {}> extends BeanContro
|
|
|
162
164
|
);
|
|
163
165
|
// class/style: layout
|
|
164
166
|
if (propsBucket.layout.class || propsBucket.layout.style) {
|
|
165
|
-
propsBucket.layout.class = this.$cssMerge(
|
|
167
|
+
propsBucket.layout.class = this.$cssMerge(
|
|
168
|
+
propsBucket.layout.class,
|
|
169
|
+
this.$style(propsBucket.layout.style),
|
|
170
|
+
);
|
|
166
171
|
delete propsBucket.layout.style;
|
|
167
172
|
}
|
|
168
173
|
// class/style: need not check typeof propsBucket.render === 'string' because maybe return false
|
|
@@ -232,7 +237,9 @@ export class ControllerFormField<TParentData extends {} = {}> extends BeanContro
|
|
|
232
237
|
private _getFormFieldOptions() {
|
|
233
238
|
// defaultValue
|
|
234
239
|
const value = this.$$form.getFieldValue(this.name);
|
|
235
|
-
const defaultValue = isNil(value)
|
|
240
|
+
const defaultValue = isNil(value)
|
|
241
|
+
? (this.$props.sys?.defaultValue ?? this.property?.default)
|
|
242
|
+
: undefined;
|
|
236
243
|
// validators
|
|
237
244
|
const validators = this._getFormFieldOptionsValidators();
|
|
238
245
|
return Object.assign(
|
|
@@ -251,7 +258,10 @@ export class ControllerFormField<TParentData extends {} = {}> extends BeanContro
|
|
|
251
258
|
private _getFormFieldOptionsValidators() {
|
|
252
259
|
const zodSchemaField = this.fieldZodSchema;
|
|
253
260
|
const validators = this.$props.validators;
|
|
254
|
-
const validateOnDynamicDefault =
|
|
261
|
+
const validateOnDynamicDefault =
|
|
262
|
+
validators?.onDynamic === undefined &&
|
|
263
|
+
validators?.onBlur === undefined &&
|
|
264
|
+
validators?.onChange === undefined;
|
|
255
265
|
const validateOnDynamic = validators?.onDynamic ?? validateOnDynamicDefault;
|
|
256
266
|
const validateOnBlur = validators?.onBlur;
|
|
257
267
|
const validateOnChange = validators?.onChange;
|
|
@@ -267,7 +277,10 @@ export class ControllerFormField<TParentData extends {} = {}> extends BeanContro
|
|
|
267
277
|
}
|
|
268
278
|
}
|
|
269
279
|
|
|
270
|
-
function _normalizeValidateSchema(
|
|
280
|
+
function _normalizeValidateSchema(
|
|
281
|
+
validateSchema?: boolean | z.ZodType,
|
|
282
|
+
zodSchemaField?: z.ZodType,
|
|
283
|
+
) {
|
|
271
284
|
if (!validateSchema) return undefined;
|
|
272
285
|
if (validateSchema === true) return zodSchemaField;
|
|
273
286
|
return validateSchema;
|
|
@@ -7,15 +7,23 @@ import { IFormFieldRenderContext } from '../../types/formField.js';
|
|
|
7
7
|
export class RenderFormField<TParentData extends {} = {}> extends BeanRenderBase {
|
|
8
8
|
public render() {
|
|
9
9
|
const renderContext = this.getRenderContext();
|
|
10
|
-
return this.$$beanBehaviorsHolder.render(
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
return this.$$beanBehaviorsHolder.render(
|
|
11
|
+
(renderContext: IFormFieldRenderContext<TParentData>) => {
|
|
12
|
+
return this._renderSlotDefault(renderContext);
|
|
13
|
+
},
|
|
14
|
+
renderContext,
|
|
15
|
+
);
|
|
13
16
|
}
|
|
14
17
|
|
|
15
18
|
private _renderSlotDefault(renderContext: IFormFieldRenderContext<TParentData>) {
|
|
16
19
|
if (this.$slotDefault) {
|
|
17
20
|
return this.$slotDefault!(renderContext, this[SymbolController]);
|
|
18
21
|
}
|
|
19
|
-
return this.$$form.zovaJsx.render(
|
|
22
|
+
return this.$$form.zovaJsx.render(
|
|
23
|
+
renderContext.propsBucket.render,
|
|
24
|
+
renderContext.props,
|
|
25
|
+
renderContext.celScope,
|
|
26
|
+
renderContext.jsxRenderContext,
|
|
27
|
+
);
|
|
20
28
|
}
|
|
21
29
|
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
FormApi,
|
|
3
|
+
FormAsyncValidateOrFn,
|
|
4
|
+
FormOptions,
|
|
5
|
+
FormValidateOrFn,
|
|
6
|
+
VueFormApi,
|
|
7
|
+
} from '@tanstack/vue-form';
|
|
2
8
|
|
|
3
9
|
import { useForm } from '@tanstack/vue-form';
|
|
4
10
|
import { markRaw } from 'vue';
|
|
@@ -6,7 +12,10 @@ import { BeanControllerBase } from 'zova';
|
|
|
6
12
|
|
|
7
13
|
import { TypeForm } from '../types/form.js';
|
|
8
14
|
|
|
9
|
-
export class BeanControllerFormBase<
|
|
15
|
+
export class BeanControllerFormBase<
|
|
16
|
+
TFormData extends {} = {},
|
|
17
|
+
TSubmitMeta = never,
|
|
18
|
+
> extends BeanControllerBase {
|
|
10
19
|
form: TypeForm<TFormData, TSubmitMeta>;
|
|
11
20
|
formState: TypeForm<TFormData>['state'];
|
|
12
21
|
|
|
@@ -21,16 +30,36 @@ export class BeanControllerFormBase<TFormData extends {} = {}, TSubmitMeta = nev
|
|
|
21
30
|
public $useForm<
|
|
22
31
|
TFormData,
|
|
23
32
|
TSubmitMeta = never,
|
|
24
|
-
TFormOnMount extends undefined | FormValidateOrFn<TFormData> =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
TFormOnMount extends undefined | FormValidateOrFn<TFormData> =
|
|
34
|
+
| undefined
|
|
35
|
+
| FormValidateOrFn<TFormData>,
|
|
36
|
+
TFormOnChange extends undefined | FormValidateOrFn<TFormData> =
|
|
37
|
+
| undefined
|
|
38
|
+
| FormValidateOrFn<TFormData>,
|
|
39
|
+
TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData> =
|
|
40
|
+
| undefined
|
|
41
|
+
| FormAsyncValidateOrFn<TFormData>,
|
|
42
|
+
TFormOnBlur extends undefined | FormValidateOrFn<TFormData> =
|
|
43
|
+
| undefined
|
|
44
|
+
| FormValidateOrFn<TFormData>,
|
|
45
|
+
TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData> =
|
|
46
|
+
| undefined
|
|
47
|
+
| FormAsyncValidateOrFn<TFormData>,
|
|
48
|
+
TFormOnSubmit extends undefined | FormValidateOrFn<TFormData> =
|
|
49
|
+
| undefined
|
|
50
|
+
| FormValidateOrFn<TFormData>,
|
|
51
|
+
TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData> =
|
|
52
|
+
| undefined
|
|
53
|
+
| FormAsyncValidateOrFn<TFormData>,
|
|
54
|
+
TFormOnDynamic extends undefined | FormValidateOrFn<TFormData> =
|
|
55
|
+
| undefined
|
|
56
|
+
| FormValidateOrFn<TFormData>,
|
|
57
|
+
TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData> =
|
|
58
|
+
| undefined
|
|
59
|
+
| FormAsyncValidateOrFn<TFormData>,
|
|
60
|
+
TFormOnServer extends undefined | FormAsyncValidateOrFn<TFormData> =
|
|
61
|
+
| undefined
|
|
62
|
+
| FormAsyncValidateOrFn<TFormData>,
|
|
34
63
|
>(
|
|
35
64
|
opts?: FormOptions<
|
|
36
65
|
TFormData,
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
FormApi,
|
|
3
|
+
FormAsyncValidateOrFn,
|
|
4
|
+
FormOptions,
|
|
5
|
+
FormValidateOrFn,
|
|
6
|
+
VueFormApi,
|
|
7
|
+
} from '@tanstack/vue-form';
|
|
2
8
|
|
|
3
9
|
import { useForm } from '@tanstack/vue-form';
|
|
4
10
|
import { markRaw } from 'vue';
|
|
@@ -6,7 +12,10 @@ import { BeanControllerPageBase } from 'zova';
|
|
|
6
12
|
|
|
7
13
|
import { TypeForm } from '../types/form.js';
|
|
8
14
|
|
|
9
|
-
export class BeanControllerPageFormBase<
|
|
15
|
+
export class BeanControllerPageFormBase<
|
|
16
|
+
TFormData extends {} = {},
|
|
17
|
+
TSubmitMeta = never,
|
|
18
|
+
> extends BeanControllerPageBase {
|
|
10
19
|
form: TypeForm<TFormData, TSubmitMeta>;
|
|
11
20
|
formState: TypeForm<TFormData>['state'];
|
|
12
21
|
|
package/src/types/formField.ts
CHANGED
|
@@ -18,7 +18,14 @@ import type { ControllerForm } from '../component/form/controller.jsx';
|
|
|
18
18
|
import type { ControllerFormField } from '../component/formField/controller.jsx';
|
|
19
19
|
import type { TypeBehaviorFormFieldOptions } from './form.js';
|
|
20
20
|
|
|
21
|
-
export type HTMLInputElementType =
|
|
21
|
+
export type HTMLInputElementType =
|
|
22
|
+
| 'text'
|
|
23
|
+
| 'password'
|
|
24
|
+
| 'number'
|
|
25
|
+
| 'file'
|
|
26
|
+
| 'hidden'
|
|
27
|
+
| 'tel'
|
|
28
|
+
| 'email';
|
|
22
29
|
export const constFieldProps = '$$FieldProps';
|
|
23
30
|
|
|
24
31
|
export interface IFormFieldScope<TParentData = {}> {
|
|
@@ -42,7 +49,10 @@ export interface IFormFieldValidatorsOptionsBase {
|
|
|
42
49
|
onBlur?: boolean | z.ZodType;
|
|
43
50
|
}
|
|
44
51
|
|
|
45
|
-
export interface IFormFieldOptionsBase<
|
|
52
|
+
export interface IFormFieldOptionsBase<
|
|
53
|
+
TParentData = {},
|
|
54
|
+
TName extends DeepKeys<TParentData> = DeepKeys<TParentData>,
|
|
55
|
+
> {
|
|
46
56
|
name?: TName;
|
|
47
57
|
render?: TypeRenderComponentPreset;
|
|
48
58
|
class?: any;
|
|
@@ -56,19 +66,29 @@ export interface IFormFieldOptionsBase<TParentData = {}, TName extends DeepKeys<
|
|
|
56
66
|
// onBlur?: (e: Event) => void; // allow set to null, but not provide null type
|
|
57
67
|
}
|
|
58
68
|
|
|
59
|
-
export interface IFormFieldPresetOptions<
|
|
69
|
+
export interface IFormFieldPresetOptions<
|
|
70
|
+
PresetName extends keyof ISchemaRenderComponentPresetRecord = never,
|
|
71
|
+
> extends IFormFieldComponentOptions {
|
|
60
72
|
render?: PresetName;
|
|
61
73
|
options?: ISchemaRenderComponentPresetRecord[PresetName];
|
|
62
74
|
}
|
|
63
75
|
|
|
64
|
-
export interface IFormFieldComponentOptions<
|
|
76
|
+
export interface IFormFieldComponentOptions<
|
|
77
|
+
TParentData = {},
|
|
78
|
+
> extends IFormFieldOptions<TParentData> {
|
|
65
79
|
options?: any;
|
|
66
80
|
}
|
|
67
81
|
|
|
68
82
|
export interface IFormFieldOptions<TParentData = {}>
|
|
69
|
-
extends
|
|
83
|
+
extends
|
|
84
|
+
IFormFieldSysOptionsBase<TParentData>,
|
|
85
|
+
IFormFieldOptionsBase<TParentData>,
|
|
86
|
+
IFormFieldLayoutOptionsBase {
|
|
70
87
|
behaviors?: IBehaviorItem;
|
|
71
|
-
slotDefault?: (
|
|
88
|
+
slotDefault?: (
|
|
89
|
+
props: IFormFieldRenderContext<TParentData>,
|
|
90
|
+
formField: ControllerFormField,
|
|
91
|
+
) => VNode;
|
|
72
92
|
}
|
|
73
93
|
|
|
74
94
|
export interface IFormFieldRenderContextProps {
|
|
@@ -90,7 +110,10 @@ export interface IFormFieldRenderContextProps {
|
|
|
90
110
|
// onBlur?: (e: Event) => void;
|
|
91
111
|
// }
|
|
92
112
|
|
|
93
|
-
export interface IFormFieldRenderContextPropsBucket<TParentData = {}> extends Omit<
|
|
113
|
+
export interface IFormFieldRenderContextPropsBucket<TParentData = {}> extends Omit<
|
|
114
|
+
IFormFieldOptions<TParentData>,
|
|
115
|
+
'render'
|
|
116
|
+
> {
|
|
94
117
|
options?: any;
|
|
95
118
|
render: TypeFormFieldRenderComponent;
|
|
96
119
|
renderProvider?: TypeFormFieldRenderComponentProvider;
|
|
@@ -104,7 +127,10 @@ export interface IFormFieldRenderContext<TParentData = {}> {
|
|
|
104
127
|
jsxRenderContext: {};
|
|
105
128
|
}
|
|
106
129
|
|
|
107
|
-
export interface IJsxRenderContextFormField<
|
|
130
|
+
export interface IJsxRenderContextFormField<
|
|
131
|
+
TParentData extends {} = {},
|
|
132
|
+
TSubmitMeta = never,
|
|
133
|
+
> extends IJsxRenderContextBase {
|
|
108
134
|
$celScope: IFormFieldScope<TParentData>;
|
|
109
135
|
$$formField: ControllerFormField<TParentData> | undefined;
|
|
110
136
|
$$form: ControllerForm<TParentData, TSubmitMeta>;
|