zova-module-a-form 5.1.42 → 5.1.44

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.
@@ -4,14 +4,14 @@ import { SchemaObject } from 'openapi3-ts/oas31';
4
4
  import { VNode } from 'vue';
5
5
  import { z } from 'zod';
6
6
  import { ZovaJsx } from 'zova-jsx';
7
- import { IFormMeta, IFormProvider, IResourceFormFieldLayoutOptions, ISchemaObjectExtensionField, ScopeModuleAOpenapi, TypeFormFieldRenderComponent, TypeFormFieldRenderComponentProvider, TypeFormSchemaScene } from 'zova-module-a-openapi';
7
+ import { IFormMeta, IFormProvider, IResourceFormFieldLayoutOptions, IResourceRenderBlockOptionsBlock, ISchemaObjectExtensionField, ScopeModuleAOpenapi, TypeFormFieldRenderComponent, TypeFormFieldRenderComponentProvider, TypeFormSchemaScene } from 'zova-module-a-openapi';
8
+ import type { IResolvedFormLayoutNode, IResolvedFormLayoutTab } from '../../types/formLayout.js';
8
9
  import { BeanControllerFormBase } from '../../lib/beanControllerFormBase.js';
9
10
  import { IFormScope, RevalidateLogicProps, TypeFormOnShowError, TypeFormOnSubmit, TypeFormOnSubmitInvalid } from '../../types/form.js';
10
- import { IFormFieldOptions, IFormFieldRenderContextPropsBucket, IFormFieldScope, IJsxRenderContextFormField } from '../../types/formField.js';
11
+ import { IFormFieldOptions, IFormFieldRenderContextPropsBucket, IFormFieldScope, IJsxRenderContextForm, IJsxRenderContextFormField } from '../../types/formField.js';
11
12
  import { ControllerFormField } from '../formField/controller.jsx';
12
13
  export interface ControllerFormProps<TFormData extends {} = {}, TSubmitMeta = never> {
13
14
  formTag?: string;
14
- inline?: boolean;
15
15
  data?: TFormData;
16
16
  schema?: SchemaObject;
17
17
  schemaScene?: TypeFormSchemaScene;
@@ -22,6 +22,7 @@ export interface ControllerFormProps<TFormData extends {} = {}, TSubmitMeta = ne
22
22
  formProvider?: IFormProvider;
23
23
  formScope?: IFormScope;
24
24
  formFieldLayout?: IResourceFormFieldLayoutOptions;
25
+ blocks?: IResourceRenderBlockOptionsBlock[];
25
26
  onFormSubmit?: (e: SubmitEvent, form: ControllerForm<TFormData, TSubmitMeta>) => any;
26
27
  onSubmitInvalid?: TypeFormOnSubmitInvalid<TFormData, TSubmitMeta>;
27
28
  onSubmitData?: TypeFormOnSubmit<TFormData, TSubmitMeta>;
@@ -51,13 +52,17 @@ export declare class ControllerForm<TFormData extends {} = {}, TSubmitMeta = nev
51
52
  keepDefaultValues?: boolean;
52
53
  }): TFormData;
53
54
  get formMeta(): IFormMeta | undefined;
55
+ hasErrors(node: IResolvedFormLayoutNode | IResolvedFormLayoutTab): boolean;
56
+ getErrorFieldCount(node: IResolvedFormLayoutNode | IResolvedFormLayoutTab): any;
54
57
  getFieldValue<K extends DeepKeys<TFormData>>(name: K): any;
55
58
  setFieldValue<K extends DeepKeys<TFormData>>(name: K, value: any, disableNotifyChanged?: boolean): void;
56
59
  getFieldProperty<K extends DeepKeys<TFormData>>(name: K): ISchemaObjectExtensionField | undefined;
57
60
  getFieldZodSchema<K extends DeepKeys<TFormData>>(name: K): z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> | undefined;
58
61
  private _getFieldCelEnv;
59
62
  getFieldScope<K extends DeepKeys<TFormData>>(name: K, scopeExtra?: {}): IFormFieldScope<TFormData>;
63
+ getFormScope(scopeExtra?: {}): IFormScope;
60
64
  getFieldJsxRenderContext($$formField: ControllerFormField<TFormData> | undefined, celScope: IFormFieldScope<TFormData>): IJsxRenderContextFormField<TFormData, TSubmitMeta>;
65
+ getFormJsxRenderContext(celScope: IFormScope): IJsxRenderContextForm<TFormData, TSubmitMeta>;
61
66
  getFieldComponentPropsTop<K extends DeepKeys<TFormData>>(name: K, celScope: IFormFieldScope<TFormData>, jsxRenderContext: {}): IFormFieldRenderContextPropsBucket;
62
67
  private _getFieldComponentPropsTopInner;
63
68
  getRenderProvider(render: TypeFormFieldRenderComponent): TypeFormFieldRenderComponentProvider;
@@ -76,6 +81,7 @@ export declare class ControllerForm<TFormData extends {} = {}, TSubmitMeta = nev
76
81
  }>[] | undefined;
77
82
  private _getFieldComponentOptionsTop;
78
83
  isComponentFormField(renderProvider?: TypeFormFieldRenderComponentProvider): boolean;
84
+ private _getFormLayoutErrorFieldCount;
79
85
  private _handleError422;
80
86
  }
81
87
  //# sourceMappingURL=controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/form/controller.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/form/controller.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { BeanRenderBase } from 'zova';
3
3
  export declare class RenderForm extends BeanRenderBase {
4
4
  private _renderSchema;
5
5
  private _renderChildren;
6
+ private _renderFromBlocks;
6
7
  private _renderBodyInner;
7
8
  private _renderProps;
8
9
  render(): VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/component/form/render.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAGtC,qBACa,UAAW,SAAQ,cAAc;IAC5C,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,YAAY;IAoBb,MAAM;;;CASd"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/component/form/render.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAGtC,qBACa,UAAW,SAAQ,cAAc;IAC5C,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,YAAY;IAiBb,MAAM;;;CASd"}
@@ -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,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;IA6CxB,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
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/component/formField/controller.tsx"],"names":[],"mappings":"AAIA,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;IA6CxB,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"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { BeanControllerBase, BeanControllerPageBase, BeanInfo, BeanRenderBase, BeanScopeBase, SymbolController, Use, UseScope, cast, deepEqual, deepExtend, objectAssignReactive, prepareComponentOptions, useController } from "zova";
2
2
  import { catchError, celEnvBase, isEmptyObject, isNil } from "@cabloy/utils";
3
3
  import { ZodMetadata } from "@cabloy/zod-openapi";
4
- import { determineFormLevelErrorSourceAndValue, getBy, isGlobalFormValidationError, revalidateLogic, useField, useForm, useStore } from "@tanstack/vue-form";
4
+ import { determineFormLevelErrorSourceAndValue, getBy, isGlobalFormValidationError, revalidateLogic, useField, useForm } from "@tanstack/vue-form";
5
+ import { useSelector } from "@tanstack/vue-store";
5
6
  import { ZovaJsx, isJsxComponent } from "zova-jsx";
6
7
  import { Controller, Render, Scope } from "zova-module-a-bean";
7
8
  import { renderFormFieldTopPropsSystem } from "zova-module-a-openapi";
@@ -61,7 +62,7 @@ var ControllerForm$1 = (_dec$6 = Controller(), _dec2$6 = BeanInfo({ module: "a-f
61
62
  async __init__() {
62
63
  this.bean._setBean("$$form", this);
63
64
  this.form = this._createForm();
64
- this.formState = useStore(this.form.store, (state) => state);
65
+ this.formState = useSelector(this.form.store, (state) => state);
65
66
  this.formProvider = this.$computed(() => {
66
67
  const formProvider = this.$$scopeOpenapi.config.formProvider;
67
68
  return this.$props.formProvider ? deepExtend({}, formProvider, this.$props.formProvider) : formProvider;
@@ -96,6 +97,12 @@ var ControllerForm$1 = (_dec$6 = Controller(), _dec2$6 = BeanInfo({ module: "a-f
96
97
  get formMeta() {
97
98
  return this.$props.formMeta;
98
99
  }
100
+ hasErrors(node) {
101
+ return this.getErrorFieldCount(node) > 0;
102
+ }
103
+ getErrorFieldCount(node) {
104
+ return this._getFormLayoutErrorFieldCount(node);
105
+ }
99
106
  getFieldValue(name) {
100
107
  return getBy(this.formState.values, name) ?? null;
101
108
  }
@@ -115,6 +122,9 @@ var ControllerForm$1 = (_dec$6 = Controller(), _dec2$6 = BeanInfo({ module: "a-f
115
122
  celEnv.registerFunction("getValue(string):dyn", (name) => {
116
123
  return this.form.getFieldValue(name) ?? null;
117
124
  });
125
+ celEnv.registerFunction("getValue(string, dyn):dyn", (name, defaultValue) => {
126
+ return this.form.getFieldValue(name) ?? defaultValue;
127
+ });
118
128
  celEnv.registerFunction("getProperty(string):dyn", (name) => {
119
129
  return this.getFieldProperty(name) ?? null;
120
130
  });
@@ -128,6 +138,9 @@ var ControllerForm$1 = (_dec$6 = Controller(), _dec2$6 = BeanInfo({ module: "a-f
128
138
  ...scopeExtra
129
139
  });
130
140
  }
141
+ getFormScope(scopeExtra) {
142
+ return objectAssignReactive({}, this.$props.formScope, { ...scopeExtra });
143
+ }
131
144
  getFieldJsxRenderContext($$formField, celScope) {
132
145
  return {
133
146
  app: this.app,
@@ -140,6 +153,17 @@ var ControllerForm$1 = (_dec$6 = Controller(), _dec2$6 = BeanInfo({ module: "a-f
140
153
  $$form: this
141
154
  };
142
155
  }
156
+ getFormJsxRenderContext(celScope) {
157
+ return {
158
+ app: this.app,
159
+ ctx: this.ctx,
160
+ $scene: "form",
161
+ $host: this,
162
+ $celScope: celScope,
163
+ $jsx: this.zovaJsx,
164
+ $$form: this
165
+ };
166
+ }
143
167
  getFieldComponentPropsTop(name, celScope, jsxRenderContext) {
144
168
  return this._getFieldComponentPropsTopInner(name, celScope, jsxRenderContext);
145
169
  }
@@ -237,6 +261,12 @@ var ControllerForm$1 = (_dec$6 = Controller(), _dec2$6 = BeanInfo({ module: "a-f
237
261
  isComponentFormField(renderProvider) {
238
262
  return typeof renderProvider === "string" && renderProvider.includes(":formField");
239
263
  }
264
+ _getFormLayoutErrorFieldCount(node) {
265
+ if (node.type === "field") return this.formState.fieldMeta[node.name]?.errors?.length ? 1 : 0;
266
+ return node.children.reduce((count, child) => {
267
+ return count + this._getFormLayoutErrorFieldCount(child);
268
+ }, 0);
269
+ }
240
270
  _handleError422(error, cause = "submit") {
241
271
  const formApi = this.form;
242
272
  let hasErrored = false;
@@ -439,7 +469,7 @@ var ControllerFormField = (_dec$5 = Controller(), _dec2$5 = BeanInfo({ module: "
439
469
  }
440
470
  _createField() {
441
471
  const field = markRaw(useField(this._getFormFieldOptions()));
442
- const fieldState = useStore(field.api.store, (state) => state);
472
+ const fieldState = useSelector(field.api.store, (state) => state);
443
473
  return {
444
474
  api: field.api,
445
475
  state: fieldState
@@ -638,9 +668,24 @@ var RenderForm = (_dec$2 = Render(), _dec2$2 = BeanInfo({ module: "a-form" }), _
638
668
  children.push(this.$props.slotFooter?.(this));
639
669
  return children;
640
670
  }
671
+ _renderFromBlocks() {
672
+ const blocks = this.$props.blocks;
673
+ if (!blocks || blocks.length === 0) return this._renderSchema();
674
+ const celScope = this.getFormScope();
675
+ const jsxRenderContext = this.getFormJsxRenderContext(celScope);
676
+ const domBlocks = [];
677
+ blocks.forEach((block, index) => {
678
+ const options = Object.assign({ key: index }, block.options);
679
+ const domBlock = this.zovaJsx.render(block.render, options, celScope, jsxRenderContext);
680
+ if (!domBlock) return;
681
+ if (Array.isArray(domBlock)) domBlocks.push(...domBlock);
682
+ else domBlocks.push(domBlock);
683
+ });
684
+ return domBlocks;
685
+ }
641
686
  _renderBodyInner() {
642
687
  const FormTag = this.$props.formTag;
643
- return this.$slotDefault ? this.$slotDefault(this) : createVNode(Fragment, null, [this._renderSchema(), FormTag === "form" && createVNode("button", {
688
+ return this.$slotDefault ? this.$slotDefault(this) : createVNode(Fragment, null, [this.$props.blocks ? this._renderFromBlocks() : this._renderSchema(), FormTag === "form" && createVNode("button", {
644
689
  "type": "submit",
645
690
  "style": { display: "none" }
646
691
  }, null)]);
@@ -648,7 +693,6 @@ var RenderForm = (_dec$2 = Render(), _dec2$2 = BeanInfo({ module: "a-form" }), _
648
693
  _renderProps() {
649
694
  const FormTag = this.$props.formTag;
650
695
  const props = {};
651
- if (this.$props.inline) props.class = "inline";
652
696
  if (FormTag === "form") props.onSubmit = (e) => {
653
697
  if (this.$props.onFormSubmit) this.$props.onFormSubmit(e, this);
654
698
  else {
@@ -771,6 +815,107 @@ function formSceneFromFormMeta(formMeta) {
771
815
  if (formMeta.formMode === "edit" && formMeta.editMode === void 0) return "edit";
772
816
  }
773
817
  //#endregion
774
- export { BeanControllerFormBase, BeanControllerPageFormBase, ControllerForm$1 as ControllerForm, ControllerFormField, ControllerFormFieldBlank, ControllerFormFieldPreset, RenderForm, RenderFormField, ScopeModuleAForm, ZForm, ZFormField, ZFormFieldBlank, ZFormFieldPreset, components, config, constFieldProps, formMetaFromFormScene, formSceneFromFormMeta };
818
+ //#region src/lib/formLayout.ts
819
+ function resolveFormLayout(layout, properties) {
820
+ const propertyNames = new Set(properties?.filter((item) => item.rest?.visible !== false).map((item) => item.key).filter(Boolean));
821
+ const fieldNames = /* @__PURE__ */ new Set();
822
+ const nodeIds = /* @__PURE__ */ new Set();
823
+ const diagnostics = [];
824
+ const fieldTabPaths = {};
825
+ const children = layout.children.map((node, index) => resolveNode(node, [index], [], propertyNames, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);
826
+ for (const property of properties ?? []) {
827
+ const name = property.key;
828
+ if (!name || !propertyNames.has(name) || fieldNames.has(name)) continue;
829
+ fieldNames.add(name);
830
+ children.push({
831
+ type: "field",
832
+ name
833
+ });
834
+ }
835
+ return {
836
+ children,
837
+ fieldTabPaths,
838
+ diagnostics
839
+ };
840
+ }
841
+ function resolveNode(node, indexPath, tabPath, propertyNames, fieldNames, nodeIds, diagnostics, fieldTabPaths) {
842
+ if (node.type === "field") return resolveField(node, tabPath, propertyNames, fieldNames, diagnostics, fieldTabPaths);
843
+ if (node.type === "tabs") return resolveTabs(node, indexPath, propertyNames, fieldNames, nodeIds, diagnostics, fieldTabPaths);
844
+ const id = resolveId(node, indexPath);
845
+ if (!registerId(id, nodeIds, diagnostics)) return;
846
+ if (node.type === "section") {
847
+ const children = node.children.map((item) => resolveField(item, tabPath, propertyNames, fieldNames, diagnostics, fieldTabPaths)).filter(Boolean);
848
+ return children.length ? {
849
+ ...node,
850
+ id,
851
+ children
852
+ } : void 0;
853
+ }
854
+ const children = node.children.map((item, index) => resolveNode(item, [...indexPath, index], tabPath, propertyNames, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);
855
+ return children.length ? {
856
+ ...node,
857
+ id,
858
+ children
859
+ } : void 0;
860
+ }
861
+ function resolveTabs(node, indexPath, propertyNames, fieldNames, nodeIds, diagnostics, fieldTabPaths) {
862
+ const id = resolveId(node, indexPath);
863
+ if (!registerId(id, nodeIds, diagnostics)) return;
864
+ const children = node.children.map((tab, index) => resolveTab(tab, [...indexPath, index], id, propertyNames, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);
865
+ return children.length ? {
866
+ ...node,
867
+ id,
868
+ children
869
+ } : void 0;
870
+ }
871
+ function resolveTab(node, indexPath, tabsId, propertyNames, fieldNames, nodeIds, diagnostics, fieldTabPaths) {
872
+ const id = resolveId(node, indexPath);
873
+ if (!registerId(id, nodeIds, diagnostics)) return;
874
+ const tabPath = [{
875
+ tabsId,
876
+ tabId: id
877
+ }];
878
+ const children = node.children.map((item, index) => resolveNode(item, [...indexPath, index], tabPath, propertyNames, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);
879
+ return children.length ? {
880
+ ...node,
881
+ id,
882
+ children
883
+ } : void 0;
884
+ }
885
+ function resolveField(node, tabPath, propertyNames, fieldNames, diagnostics, fieldTabPaths) {
886
+ if (!propertyNames.has(node.name)) {
887
+ diagnostics.push({
888
+ type: "unknownField",
889
+ value: node.name
890
+ });
891
+ return;
892
+ }
893
+ if (fieldNames.has(node.name)) {
894
+ diagnostics.push({
895
+ type: "duplicateField",
896
+ value: node.name
897
+ });
898
+ return;
899
+ }
900
+ fieldNames.add(node.name);
901
+ fieldTabPaths[node.name] = tabPath;
902
+ return node;
903
+ }
904
+ function resolveId(node, indexPath) {
905
+ return node.id || `${node.type}-${indexPath.join("-")}`;
906
+ }
907
+ function registerId(id, ids, diagnostics) {
908
+ if (!ids.has(id)) {
909
+ ids.add(id);
910
+ return true;
911
+ }
912
+ diagnostics.push({
913
+ type: "duplicateId",
914
+ value: id
915
+ });
916
+ return false;
917
+ }
918
+ //#endregion
919
+ export { BeanControllerFormBase, BeanControllerPageFormBase, ControllerForm$1 as ControllerForm, ControllerFormField, ControllerFormFieldBlank, ControllerFormFieldPreset, RenderForm, RenderFormField, ScopeModuleAForm, ZForm, ZFormField, ZFormFieldBlank, ZFormFieldPreset, components, config, constFieldProps, formMetaFromFormScene, formSceneFromFormMeta, resolveFormLayout };
775
920
 
776
921
  //# sourceMappingURL=index.js.map