zova-module-a-form 5.1.53 → 5.1.54

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/index.js CHANGED
@@ -210,18 +210,23 @@ function opaqueBehavior(value) {
210
210
  "zova-jsx:actionBulk"
211
211
  ].includes(String(item)) : /^(?:on[A-Z]|effect|evaluate|expression|command|behavior|validator|slot|v-|\$)/i.test(key)) || opaqueBehavior(item));
212
212
  }
213
+ var pageEntryBlockOptions = [
214
+ "blocks",
215
+ "resource",
216
+ "id",
217
+ "formScene",
218
+ "pageTitleKey",
219
+ "draft"
220
+ ];
213
221
  var blockOptions = {
214
- "basic-pageentry:blockPageEntry": [
215
- "blocks",
216
- "resource",
217
- "id",
218
- "formScene",
219
- "pageTitleKey",
220
- "draft"
221
- ],
222
+ "basic-pageentry:blockPageEntry": pageEntryBlockOptions,
223
+ "start-pageentry:blockPageEntry": pageEntryBlockOptions,
222
224
  "basic-pageentry:blockForm": ["blocks"],
225
+ "start-pageentry:blockForm": ["blocks"],
223
226
  "basic-form:blockFormLayout": ["formLayout"],
224
- "basic-pageentry:blockToolbarRow": ["actions"]
227
+ "start-form:blockFormLayout": ["formLayout"],
228
+ "basic-pageentry:blockToolbarRow": ["actions"],
229
+ "start-pageentry:blockToolbarRow": ["actions"]
225
230
  };
226
231
  function safeLayoutNode(value) {
227
232
  if (!isRecord(value) || typeof value.type !== "string") return false;
@@ -323,7 +328,7 @@ function normalizeBlocks(value) {
323
328
  if (!isRecord(block) || !isRecord(block.options)) return block;
324
329
  const options = { ...block.options };
325
330
  if (Object.hasOwn(options, "blocks")) options.blocks = normalizeBlocks(options.blocks);
326
- if (block.render === "basic-form:blockFormLayout" && safeLayout(options.formLayout)) options.formLayout = { children: options.formLayout.children.map(normalizeLayoutNode) };
331
+ if (["basic-form:blockFormLayout", "start-form:blockFormLayout"].includes(block.render) && safeLayout(options.formLayout)) options.formLayout = { children: options.formLayout.children.map(normalizeLayoutNode) };
327
332
  return {
328
333
  ...block,
329
334
  options
@@ -401,7 +406,8 @@ function createSchemaRefreshContract(schema, properties, resolveSchema) {
401
406
  const rest = property.rest;
402
407
  const form = isRecord(rest.form) ? rest.form : void 0;
403
408
  const render = rest.render ?? form?.render;
404
- if ((isRecord(render) ? render.type : render) !== "basic-details:formFieldDetails") continue;
409
+ const renderType = isRecord(render) ? render.type : render;
410
+ if (!["basic-details:formFieldDetails", "start-details:formFieldDetails"].includes(String(renderType))) continue;
405
411
  for (const name of [
406
412
  property.key,
407
413
  property.schemaKey,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["catchError","celEnvBase","isEmptyObject","isNil","ZodMetadata","determineFormLevelErrorSourceAndValue","getBy","isGlobalFormValidationError","revalidateLogic","useSelector","markRaw","nextTick","cast","deepEqual","deepExtend","objectAssignReactive","UseScope","isJsxComponent","ZovaJsx","Controller","renderFormFieldTopPropsSystem","BeanControllerFormBase","createSchemaRefreshContract","schemaRefreshFingerprint","SchemaRefreshTracker","constFieldProps","ControllerForm","_dec","_dec2","__z_BeanInfo","module","_dec3","_dec4","Reflect","metadata","ScopeModuleAOpenapi","Object","_class","_class2","_ControllerForm","constructor","args","formProvider","schema","zodSchema","properties","zovaJsx","fieldCelEnv","schemaRefresh","_schemaRefreshTracker","_schemaRefreshEpoch","_schemaRefreshPending","_schemaRefreshDisposed","_initializerDefineProperty","_descriptor","__init__","bean","_setBean","form","_createForm","formState","store","state","$computed","$$scopeOpenapi","config","$props","_getZodSchema","$sdk","loadSchemaProperties","schemaScene","locale","app","meta","current","policy","localePresentationRefresh","contract","reference","getSchema","data","ready","fields","selector","identity","epoch","scene","formMeta","validateOnDynamic","validateOnDynamicLogic","enabled","$watch","prune","flush","_getFieldCelEnv","_newBeanSimple","components","newValue","oldValue","reset","submit","submitMeta","formScene","_","error","handleSubmit","isValid","__dispose__","clear","hasSchemaRefresh","name","has","consumeSchemaRefresh","configuration","eligible","consume","schemaFieldRefreshed","onSchemaRefreshed","values","opts","hasErrors","node","getErrorFieldCount","_getFormLayoutErrorFieldCount","getFieldValue","setFieldValue","value","disableNotifyChanged","onChanged","getFieldProperty","find","item","key","getFieldZodSchema","getFieldSchema","celEnv","clone","registerFunction","defaultValue","getFieldScope","scopeExtra","formScope","property","getFormScope","getFieldJsxRenderContext","$$formField","celScope","ctx","$scene","$host","$celScope","$jsx","$$form","getFormJsxRenderContext","getFieldComponentPropsTop","jsxRenderContext","props","_getFieldComponentPropsTopInner","rest","keys","filter","includes","length","keyValue","evaluateExpression","renderJsxOrCel","undefined","needAppend","render","isComponentFormField","type","propsAppend","assign","readonlyTemp","readonly","formMode","getRenderProvider","_patchZodSchema","schemaToZodSchema","def","options","Error","$useForm","defaultValues","validationLogic","onSubmitInvalid","onSubmit","onSubmitData","resHandled","event","emit","code","_handleError422","onShowError","renderField","propsExtra","_renderFieldByKey","visible","componentOptions","_getFieldComponentOptionsTop","renderProvider","fieldMeta","errors","children","reduce","count","child","cause","formApi","hasErrored","currentValidationErrorMap","rawError","parseIssues","formError","fieldErrors","normalizeError","errorMapKey","getErrorMapKey","field","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","issue","path","join","isNil","useField","useSelector","markRaw","BeanControllerBase","Use","Controller","schemaRefreshFingerprint","constFieldBindingSlot","constFieldProps","ControllerFormField","_dec","_dec2","__z_BeanInfo","module","_dec3","injectionScope","_dec4","Reflect","metadata","ControllerForm","Object","_dec5","_dec6","BeanBehaviorsHolder","_class","_class2","_ControllerFormField","constructor","args","_formField","_initialized","_mounted","_disposed","_readyNotified","_remount","propsBucket","_initializerDefineProperty","_descriptor","_descriptor2","__init__","$$form","Error","name","bean","_setBean","hasSchemaRefresh","_createField","$computed","_getPropsBucket","$controllerMounted","_refreshField","$watch","schemaRefresh","_getRefreshConfiguration","flush","$$beanBehaviorsHolder","initialize","behaviorTag","undefined","behaviors","_getFieldBehaviors","process","env","CLIENT","$props","onEffect","getFieldValue","newValue","oldValue","__dispose__","props","render","options","readonly","required","sys","validators","slotDefault","contract","ready","inputBindingSlot","eligible","values","every","value","refresh","consumeSchemaRefresh","changed","form","field","api","update","_getFormFieldOptions","resetField","preserve","setFieldValue","dontUpdateMeta","dontRunListeners","dontValidate","validateSync","onFieldStateReady","schemaFieldRefreshed","property","getFieldProperty","fieldZodSchema","getFieldZodSchema","formMeta","formProvider","setValue","disableNotifyChanged","handleBlur","getRenderContext","key","class","celScope","getFieldScope","jsxRenderContext","getFieldJsxRenderContext","defaultValue","fieldState","store","state","propsTop","_getFieldComponentPropsTop","layoutOptions","assign","bordered","scope","config","formFieldLayout","label","title","layout","presetOptions","style","$cssMerge","$style","classTemp","styleTemp","readonlyTemp","formMode","renderProvider","getRenderProvider","getFieldComponentPropsTop","_prepareBehaviorFormField","_prepareBehaviorFormFieldLayout","behaviorFormField","FormField","behaviorFormFieldLayout","FormFieldLayout","default","_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","_renderFromBlocks","blocks","length","celScope","getFormScope","jsxRenderContext","getFormJsxRenderContext","domBlocks","forEach","block","index","options","Object","assign","domBlock","zovaJsx","render","FormTag","formTag","$slotDefault","_createVNode","_Fragment","display","_renderProps","props","onSubmit","e","onFormSubmit","preventDefault","stopPropagation","submit","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/lib/schemaRefresh.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","../src/lib/formLayout.ts"],"sourcesContent":["import { useForm } from '@tanstack/vue-form';\nimport { markRaw } from 'vue';\nimport { BeanControllerBase } from 'zova';\nexport class BeanControllerFormBase extends BeanControllerBase {\n constructor(...args) {\n super(...args);\n this.form = void 0;\n this.formState = void 0;\n }\n async submit(_submitMeta) {\n throw new Error('should implement submit');\n }\n reset(_values, _opts) {\n throw new Error('should implement reset');\n }\n $useForm(opts) {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useForm(opts));\n });\n }\n}","const schemaMaps = new Set(['properties', 'patternProperties', '$defs', 'definitions', 'dependentSchemas']);\nconst schemaArrays = new Set(['allOf', 'anyOf', 'oneOf', 'prefixItems']);\nconst schemaSingles = new Set(['items', 'additionalItems', 'additionalProperties', 'unevaluatedItems', 'unevaluatedProperties', 'contains', 'propertyNames', 'not', 'if', 'then', 'else', 'contentSchema']);\nconst restScenes = new Set(['table', 'form', 'form-view', 'form-create', 'filter']);\nconst restKeys = new Set(['schemaScene', 'fieldSource', 'visible', 'disableNotifyChanged', 'readonly', 'required', 'draft', 'order', 'align', 'width', 'fixed', 'enableSorting', 'sortDescFirst', 'render', 'options', 'class', 'style', 'placeholder', 'blocks', 'columnProps']);\nconst renderProps = new Set(['items', 'placeholder', 'readonly', 'required', 'name', 'type', 'options', 'class', 'style', 'relationName', 'imageScene', 'enableCrop', 'cropAspectRatio', 'resize', 'itemValue', 'itemTitle']);\nconst unsafeKeys = new Set(['__proto__', 'prototype', 'constructor']);\nconst opaqueSnapshots = new WeakSet();\nconst opaqueIds = new WeakMap();\nconst symbolIds = new Map();\nlet nextOpaqueId = 0;\nfunction opaqueId(value) {\n let id = opaqueIds.get(value);\n if (id === undefined) opaqueIds.set(value, id = ++nextOpaqueId);\n return id;\n}\n\n/** Stable configuration signature without invoking getters or retaining caller values. */\nexport function schemaRefreshFingerprint(value) {\n function encode(item, ancestors = new Set()) {\n if (typeof item === 'symbol') {\n let id = symbolIds.get(item);\n if (id === undefined) symbolIds.set(item, id = ++nextOpaqueId);\n return ['symbol', id];\n }\n if (typeof item === 'function') return ['opaque', opaqueId(item)];\n if (typeof item === 'bigint') return ['bigint', String(item)];\n if (typeof item === 'number' && !Number.isFinite(item)) return ['number', String(item)];\n if (item === null || typeof item !== 'object') return data(item);\n if (ancestors.has(item)) return ['cycle', opaqueId(item)];\n if (!Array.isArray(item) && !isRecord(item)) return ['opaque', opaqueId(item)];\n const next = new Set(ancestors).add(item);\n const descriptors = Object.getOwnPropertyDescriptors(item);\n return [Array.isArray(item) ? 'array' : 'object', Object.keys(descriptors).sort().map(key => {\n const descriptor = descriptors[key];\n return [key, descriptor.enumerable, 'value' in descriptor ? encode(descriptor.value, next) : ['accessor', descriptor.get && opaqueId(descriptor.get), descriptor.set && opaqueId(descriptor.set)]];\n }), Object.getOwnPropertySymbols(item).map(key => [encode(key), encode(Object.getOwnPropertyDescriptor(item, key)?.value, next)])];\n }\n return JSON.stringify(encode(value));\n}\nclass UnresolvedSchemaError extends Error {}\nfunction isRecord(value) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n}\n\n// Reject opaque runtime values instead of letting JSON.stringify silently discard them.\nfunction snapshot(value, ancestors = new Set()) {\n if (value === null || value === undefined || typeof value === 'string' || typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n if (typeof value === 'function') {\n const marker = {\n $opaqueRuntime: opaqueId(value)\n };\n opaqueSnapshots.add(marker);\n return marker;\n }\n if (typeof value !== 'object' || ancestors.has(value)) throw new Error('Opaque metadata');\n if (!Array.isArray(value) && !isRecord(value)) throw new Error('Opaque metadata');\n if (Object.getOwnPropertySymbols(value).length) throw new Error('Opaque metadata');\n const next = new Set(ancestors).add(value);\n const descriptors = Object.getOwnPropertyDescriptors(value);\n if (Array.isArray(value)) {\n if (Object.keys(descriptors).length !== value.length + 1) throw new Error('Opaque array');\n return Array.from({\n length: value.length\n }, (_, index) => {\n const descriptor = descriptors[index];\n if (!descriptor || !descriptor.enumerable || !('value' in descriptor)) throw new Error('Opaque array');\n return snapshot(descriptor.value, next);\n });\n }\n const result = Object.create(null);\n for (const [key, descriptor] of Object.entries(descriptors)) {\n if (!descriptor.enumerable || !('value' in descriptor)) throw new Error('Opaque metadata');\n result[key] = snapshot(descriptor.value, next);\n }\n return result;\n}\n\n// Tagged JSON keeps undefined distinct from missing, null, and literal marker strings.\nfunction data(value) {\n if (value === undefined) return ['undefined'];\n if (value === null) return ['null'];\n if (typeof value === 'number') return ['number', Object.is(value, -0) ? '-0' : value];\n if (typeof value === 'string' || typeof value === 'boolean') return [typeof value, value];\n if (Array.isArray(value)) return ['array', value.map(data)];\n if (isRecord(value)) {\n return ['object', Object.keys(value).sort().map(key => [key, data(value[key])])];\n }\n throw new Error('Opaque metadata');\n}\nfunction containsOpaque(value) {\n if (!value || typeof value !== 'object') return false;\n if (opaqueSnapshots.has(value)) return true;\n return Array.isArray(value) ? value.some(containsOpaque) : isRecord(value) && Object.values(value).some(containsOpaque);\n}\nfunction opaqueBehavior(value) {\n if (typeof value === 'string') return value.startsWith('cel://');\n if (Array.isArray(value)) return value.some(opaqueBehavior);\n if (!isRecord(value)) return false;\n return Object.entries(value).some(([key, item]) => (key === '$$typeof' ? !['zova-jsx:component', 'zova-jsx:block', 'zova-jsx:actionRow', 'zova-jsx:actionBulk'].includes(String(item)) : /^(?:on[A-Z]|effect|evaluate|expression|command|behavior|validator|slot|v-|\\$)/i.test(key)) || opaqueBehavior(item));\n}\nconst blockOptions = {\n 'basic-pageentry:blockPageEntry': ['blocks', 'resource', 'id', 'formScene', 'pageTitleKey', 'draft'],\n 'basic-pageentry:blockForm': ['blocks'],\n 'basic-form:blockFormLayout': ['formLayout'],\n 'basic-pageentry:blockToolbarRow': ['actions']\n};\nfunction safeLayoutNode(value) {\n if (!isRecord(value) || typeof value.type !== 'string') return false;\n const keys = {\n tabs: ['type', 'id', 'children'],\n tab: ['type', 'id', 'title', 'children'],\n group: ['type', 'id', 'title', 'description', 'children'],\n section: ['type', 'id', 'title', 'description', 'layout', 'columns', 'children'],\n field: ['type', 'name', 'span']\n };\n const allowed = keys[value.type];\n if (!allowed || Object.keys(value).some(key => !allowed.includes(key))) return false;\n if (value.title !== undefined && typeof value.title !== 'string') return false;\n if (value.type === 'field') return safeName(value.name);\n return Array.isArray(value.children) && value.children.every(safeLayoutNode);\n}\nfunction safeLayout(value) {\n return isRecord(value) && Object.keys(value).every(key => key === 'children') && Array.isArray(value.children) && value.children.every(safeLayoutNode);\n}\nfunction safeActions(value) {\n return Array.isArray(value) && value.every(action => {\n if (!isRecord(action) || typeof action.render !== 'string') return false;\n if (Object.keys(action).some(key => !['$$typeof', 'name', 'render', 'options'].includes(key))) return false;\n if (action.$$typeof !== undefined && action.$$typeof !== 'zova-jsx:actionRow') return false;\n return action.options === undefined || isRecord(action.options) && Object.keys(action.options).every(key => ['permission', 'class', 'style'].includes(key));\n });\n}\nfunction safeBlocks(value) {\n return Array.isArray(value) && value.every(block => {\n if (!isRecord(block) || typeof block.render !== 'string') return false;\n if (Object.keys(block).some(key => !['$$typeof', 'render', 'options'].includes(key))) return false;\n if (block.$$typeof !== undefined && block.$$typeof !== 'zova-jsx:block') return false;\n const allowed = blockOptions[block.render];\n if (!allowed) return false;\n if (block.options === undefined) return true;\n if (!isRecord(block.options)) return false;\n return Object.entries(block.options).every(([key, item]) => {\n if (!allowed.includes(key) && !['class', 'style'].includes(key)) return false;\n if (key === 'blocks') return safeBlocks(item);\n if (key === 'formLayout') return safeLayout(item);\n if (key === 'actions') return safeActions(item);\n return true;\n });\n });\n}\n\n// Only Basic's declared layout grammar owns these title strings. Rest data/options,\n// action metadata, descriptions, field names, and unknown structures stay strict.\nfunction normalizeLayoutNode(value) {\n if (!isRecord(value)) return value;\n const result = {\n ...value\n };\n if (['tab', 'group', 'section'].includes(String(value.type)) && typeof value.title === 'string') result.title = '';\n if (Array.isArray(value.children)) result.children = value.children.map(normalizeLayoutNode);\n return result;\n}\nfunction normalizeBlocks(value) {\n if (!Array.isArray(value)) return value;\n return value.map(block => {\n if (!isRecord(block) || !isRecord(block.options)) return block;\n const options = {\n ...block.options\n };\n if (Object.hasOwn(options, 'blocks')) options.blocks = normalizeBlocks(options.blocks);\n if (block.render === 'basic-form:blockFormLayout' && safeLayout(options.formLayout)) {\n const layout = options.formLayout;\n options.formLayout = {\n children: layout.children.map(normalizeLayoutNode)\n };\n }\n return {\n ...block,\n options\n };\n });\n}\nfunction normalizeAncestorRest(value) {\n if (!isRecord(value)) return value;\n const result = {\n ...value\n };\n for (const [key, item] of Object.entries(value)) {\n if (key === 'blocks' && safeBlocks(item)) result[key] = normalizeBlocks(item);else if (restScenes.has(key)) result[key] = normalizeAncestorRest(item);\n }\n return result;\n}\nfunction safeRest(value) {\n if (value === undefined || value === null) return true;\n if (!isRecord(value) || opaqueBehavior(value)) return false;\n return Object.entries(value).every(([key, item]) => {\n if (restScenes.has(key)) return safeRest(item);\n if (!restKeys.has(key)) return false;\n if (item === undefined || item === null) return true;\n if (['visible', 'disableNotifyChanged', 'readonly', 'required', 'draft', 'enableSorting', 'sortDescFirst'].includes(key)) {\n return typeof item === 'boolean';\n }\n if (['order', 'width'].includes(key)) return typeof item === 'number';\n if (['schemaScene', 'fieldSource', 'align', 'fixed', 'placeholder', 'class'].includes(key)) return typeof item === 'string';\n if (key === 'style') return isRecord(item);\n if (key === 'blocks') return safeBlocks(item);\n if (key === 'options' || key === 'columnProps') return isRecord(item) && Object.keys(item).every(part => renderProps.has(part));\n if (key !== 'render' || typeof item === 'string') return true;\n if (!isRecord(item) || typeof item.type !== 'string') return false;\n if (Object.keys(item).some(part => !['$$typeof', 'type', 'props', 'key', 'children'].includes(part))) {\n return false;\n }\n return item.props === undefined || isRecord(item.props) && Object.keys(item.props).every(part => renderProps.has(part));\n });\n}\nfunction safeName(value) {\n return typeof value === 'string' && value.split('.').every(part => !!part && !unsafeKeys.has(part));\n}\n\n/** Compile detached comparison facts from schema truth and SDK-canonical effective fields. */\nexport function createSchemaRefreshContract(schema, properties, resolveSchema) {\n if (schema === undefined || schema === null || properties === undefined) return {\n ready: false,\n fields: {}\n };\n const resolvedInputs = new Map();\n try {\n const root = snapshot(schema);\n const effective = snapshot(properties);\n if (!isRecord(root) || !Array.isArray(effective)) throw new Error('Schema unavailable');\n const targets = new Map();\n let eligible = true;\n const ancestorsRest = [];\n const ancestorsRestRaw = [];\n const detailNames = new Set();\n for (const property of effective) {\n if (!isRecord(property) || !isRecord(property.rest)) continue;\n const rest = property.rest;\n const form = isRecord(rest.form) ? rest.form : undefined;\n const render = rest.render ?? form?.render;\n const renderType = isRecord(render) ? render.type : render;\n if (renderType !== 'basic-details:formFieldDetails') continue;\n for (const name of [property.key, property.schemaKey, ...(Array.isArray(property.schemaKeys) ? property.schemaKeys : [])]) {\n if (typeof name === 'string') detailNames.add(name);\n }\n }\n // Basic Details resolves its row schema through the exact hidden `_name` auxiliary.\n // It belongs to that nested form, not to an unrelated parent field's behavior scope.\n const auxiliaryDetails = new Set();\n for (const property of effective) {\n if (!isRecord(property) || typeof property.key !== 'string' || !property.key.startsWith('_') || !detailNames.has(property.key.slice(1)) || !isRecord(property.rest) || property.rest.visible !== false || !(property.type === 'array' || Array.isArray(property.type) && property.type.length === 2 && property.type.includes('array') && property.type.includes('null')) || !isRecord(property.items) || typeof property.items.$ref !== 'string') {\n continue;\n }\n auxiliaryDetails.add(property.key);\n }\n for (const name of auxiliaryDetails) detailNames.add(name);\n let localEligible = true;\n function insideDetails(path) {\n return path[0] === 'fields' ? detailNames.has(path[1]) && path.slice(2).some(part => schemaMaps.has(part) || schemaSingles.has(part) || schemaArrays.has(part)) : path[0] === 'properties' && detailNames.has(path[1]) && path.slice(2).some(part => schemaMaps.has(part) || schemaSingles.has(part) || schemaArrays.has(part));\n }\n function target(ref) {\n if (targets.has(ref)) return targets.get(ref);\n let resolved = resolveSchema(ref);\n if (resolved === undefined && ref.startsWith('#/')) {\n resolved = root;\n for (const part of ref.slice(2).split('/')) {\n const key = decodeURIComponent(part).replace(/~1/g, '/').replace(/~0/g, '~');\n resolved = isRecord(resolved) && Object.hasOwn(resolved, key) ? resolved[key] : undefined;\n }\n }\n if (resolved === undefined) throw new UnresolvedSchemaError('Unresolved reference');\n resolvedInputs.set(ref, resolved);\n const detached = snapshot(resolved);\n targets.set(ref, detached);\n return detached;\n }\n function project(node, normalized, includeRest, refs = new Set(), path = [], collect = false) {\n if (typeof node === 'boolean') return ['schema', data(node)];\n if (!isRecord(node)) throw new Error('Invalid schema node');\n if (collect && Object.hasOwn(node, 'rest')) {\n const safe = safeRest(node.rest);\n if (insideDetails(path)) {\n if (path[0] === 'fields') localEligible &&= safe;\n } else {\n eligible &&= safe;\n }\n // Known details fields own a nested form; their descendants cannot mutate siblings.\n if (!insideDetails(path) && (path.length === 0 || path[0] !== 'fields' && ['properties', 'patternProperties', 'items', 'prefixItems', 'additionalProperties'].some(key => Object.hasOwn(node, key)))) {\n ancestorsRestRaw.push([path, data(node.rest)]);\n ancestorsRest.push([path, data(normalizeAncestorRest(node.rest))]);\n }\n }\n const entries = [];\n for (const key of Object.keys(node).sort()) {\n const value = node[key];\n if (key === 'rest' && !includeRest) continue;\n let projected;\n if (key === '$ref') {\n if (typeof value !== 'string' || refs.has(value)) throw new Error('Cyclic reference');\n projected = ['reference', value, project(target(value), normalized, includeRest, new Set(refs).add(value), [...path, key], collect)];\n } else if (normalized && (key === 'title' || key === 'description') && typeof value === 'string') {\n projected = ['display'];\n } else if (normalized && key === 'errorMessage' && isRecord(value)) {\n projected = ['messages', Object.keys(value).sort().map(part => [part, typeof value[part] === 'string' ? ['display'] : data(value[part])])];\n } else if (schemaMaps.has(key)) {\n if (!isRecord(value)) throw new Error('Invalid schema map');\n projected = ['map', Object.keys(value).sort().map(part => [part, project(value[part], normalized, includeRest, refs, [...path, key, part], collect)])];\n } else if (schemaArrays.has(key) || key === 'items' && Array.isArray(value)) {\n if (!Array.isArray(value)) throw new Error('Invalid schema array');\n projected = ['schemas', value.map((item, index) => project(item, normalized, includeRest, refs, [...path, key, String(index)], collect))];\n } else if (schemaSingles.has(key)) {\n projected = project(value, normalized, includeRest, refs, [...path, key], collect);\n } else if (key === 'dependencies') {\n if (!isRecord(value)) throw new Error('Invalid dependencies');\n projected = ['dependencies', Object.keys(value).sort().map(part => [part, Array.isArray(value[part]) ? data(value[part]) : project(value[part], normalized, includeRest, refs, [...path, key, part], collect)])];\n } else {\n if (collect && key !== 'rest' && containsOpaque(value)) {\n if (insideDetails(path)) {\n if (path[0] === 'fields') localEligible = false;\n } else {\n eligible = false;\n }\n }\n projected = data(value);\n }\n entries.push([key, projected]);\n }\n return ['schema', entries];\n }\n const validationRaw = JSON.stringify(project(root, false, false, new Set(), [], true));\n const validation = JSON.stringify(project(root, true, false));\n const fields = {};\n for (const property of effective) {\n if (!isRecord(property) || !safeName(property.key) || Object.hasOwn(fields, property.key)) throw new Error('Invalid canonical field');\n if (property.schemaKey !== undefined && !safeName(property.schemaKey) || property.schemaKeys !== undefined && (!Array.isArray(property.schemaKeys) || !property.schemaKeys.every(safeName))) {\n throw new Error('Invalid field alias');\n }\n localEligible = true;\n const raw = JSON.stringify(project(property, false, true, new Set(), ['fields', property.key], true));\n const compatible = JSON.stringify(project(property, true, true));\n fields[property.key] = {\n raw,\n compatible,\n eligible: localEligible\n };\n }\n for (const field of Object.values(fields)) field.eligible &&= eligible;\n return {\n ready: true,\n validation,\n validationRaw,\n fields,\n behavior: JSON.stringify([eligible, ancestorsRest]),\n behaviorRaw: JSON.stringify([eligible, ancestorsRestRaw])\n };\n } catch (error) {\n if (error instanceof UnresolvedSchemaError) return {\n ready: false,\n fields: {}\n };\n // Unsupported metadata remains observable, but can never authorize state replay.\n const raw = schemaRefreshFingerprint([schema, [...resolvedInputs.entries()]]);\n const fields = {};\n if (Array.isArray(properties)) {\n for (const property of properties) {\n if (!isRecord(property)) continue;\n const descriptor = Object.getOwnPropertyDescriptor(property, 'key');\n if (!descriptor || !('value' in descriptor) || !safeName(descriptor.value)) continue;\n const fieldRaw = schemaRefreshFingerprint(property);\n fields[descriptor.value] = {\n raw: fieldRaw,\n compatible: fieldRaw,\n eligible: false\n };\n }\n }\n return {\n ready: true,\n validation: raw,\n validationRaw: raw,\n fields,\n behavior: raw\n };\n }\n}\n/** Owns comparison facts only, never form values, errors, or schema facade references. */\nexport class SchemaRefreshTracker {\n constructor() {\n this.facts = new Map();\n }\n has(name) {\n return this.facts.has(name);\n }\n clear() {\n this.facts.clear();\n }\n prune(contract) {\n if (!contract.ready) return;\n for (const [name, facts] of this.facts) {\n if (facts.fieldRaw !== undefined && !Object.hasOwn(contract.fields, name)) this.facts.delete(name);\n }\n }\n consume(name, context) {\n if (!context.contract.ready) return {\n changed: false,\n preserve: false\n };\n const {\n contract,\n ...scope\n } = context;\n const field = contract.fields[name];\n const next = {\n ...scope,\n validation: contract.validation,\n validationRaw: contract.validationRaw ?? contract.validation,\n behavior: contract.behavior,\n behaviorRaw: contract.behaviorRaw ?? contract.behavior,\n fieldRaw: field?.raw,\n fieldCompatible: field?.compatible,\n fieldEligible: field?.eligible === true\n };\n const previous = this.facts.get(name);\n this.facts.set(name, next);\n if (!previous) return {\n changed: false,\n preserve: false\n };\n const changed = ['locale', 'identity', 'scene', 'configuration', 'enabled', 'eligible', 'validationRaw', 'behaviorRaw', 'fieldRaw', 'fieldEligible'].some(key => previous[key] !== next[key]);\n const preserve = changed && previous.locale !== next.locale && next.identity !== undefined && previous.identity === next.identity && previous.epoch === next.epoch && previous.scene === next.scene && previous.configuration === next.configuration && previous.enabled && next.enabled && previous.eligible && next.eligible && previous.fieldEligible && next.fieldEligible && previous.validation === next.validation && previous.behavior === next.behavior && previous.fieldCompatible === next.fieldCompatible;\n return {\n changed,\n preserve\n };\n }\n}","export const constFieldProps = '$$FieldProps';\n// Internal: the renderer supplies its own form-value binding slot.\nexport const constFieldBindingSlot = '$$FieldBindingSlot';\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// }","import { catchError, celEnvBase, isEmptyObject, isNil } from '@cabloy/utils';\nimport { ZodMetadata } from '@cabloy/zod-openapi';\nimport {\n DeepKeys,\n determineFormLevelErrorSourceAndValue,\n FormValidationError,\n getBy,\n isGlobalFormValidationError,\n revalidateLogic,\n ValidationCause,\n ValidationError,\n} from '@tanstack/vue-form';\nimport { useSelector } from '@tanstack/vue-store';\nimport { SchemaObject } from 'openapi3-ts/oas31';\nimport { markRaw, nextTick, 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 IResourceRenderBlockOptionsBlock,\n ISchemaObjectExtensionField,\n renderFormFieldTopPropsSystem,\n ScopeModuleAOpenapi,\n TypeFormFieldRenderComponent,\n TypeFormFieldRenderComponentProvider,\n TypeFormSchemaScene,\n} from 'zova-module-a-openapi';\n\nimport type { ISchemaRefreshContext } from '../../lib/schemaRefresh.js';\nimport type { IResolvedFormLayoutNode, IResolvedFormLayoutTab } from '../../types/formLayout.js';\n\nimport { BeanControllerFormBase } from '../../lib/beanControllerFormBase.js';\nimport {\n createSchemaRefreshContract,\n schemaRefreshFingerprint,\n SchemaRefreshTracker,\n} from '../../lib/schemaRefresh.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 IJsxRenderContextForm,\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 data?: TFormData;\n schema?: SchemaObject;\n schemaScene?: TypeFormSchemaScene;\n localePresentationRefresh?: { identity: string };\n zodSchema?: z.ZodObject<any>;\n validateOnDynamic?: boolean;\n validateOnDynamicLogic?: RevalidateLogicProps;\n formMeta?: IFormMeta;\n formProvider?: IFormProvider;\n formScope?: IFormScope;\n formFieldLayout?: IResourceFormFieldLayoutOptions;\n blocks?: IResourceRenderBlockOptionsBlock[];\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 onSchemaRefreshed?: (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 schemaRefresh: Omit<ISchemaRefreshContext, 'configuration' | 'eligible'>;\n private _schemaRefreshTracker = markRaw(new SchemaRefreshTracker());\n private _schemaRefreshEpoch = 0;\n private _schemaRefreshPending = false;\n private _schemaRefreshDisposed = false;\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 = useSelector(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.schemaRefresh = this.$computed(() => {\n const locale = this.app.meta.locale.current;\n const schema = this.schema;\n const policy = this.$props.localePresentationRefresh;\n const contract = schema\n ? createSchemaRefreshContract(schema, this.properties ?? [], reference => {\n return this.$sdk.getSchema(reference).data;\n })\n : { ready: !policy, fields: {} };\n if (schema && this.$sdk.selector !== locale) contract.ready = false;\n return {\n locale,\n identity: policy?.identity,\n epoch: this._schemaRefreshEpoch,\n scene: schemaRefreshFingerprint([\n this.$props.schemaScene,\n this.formMeta,\n this.formProvider,\n this.$props.zodSchema,\n this.$props.validateOnDynamic,\n this.$props.validateOnDynamicLogic,\n ]),\n enabled: !!policy && !this.$props.zodSchema,\n contract,\n };\n });\n this.$watch(\n () => this.schemaRefresh.contract,\n contract => this._schemaRefreshTracker.prune(contract),\n { flush: 'sync' },\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 ++this._schemaRefreshEpoch;\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 if (this.formMeta?.formScene === 'view') return false;\n const [_, error] = await catchError(() => {\n return this.form.handleSubmit(submitMeta as any);\n });\n return !error && this.formState.isValid;\n }\n\n protected __dispose__() {\n this._schemaRefreshDisposed = true;\n ++this._schemaRefreshEpoch;\n this._schemaRefreshTracker.clear();\n }\n\n public hasSchemaRefresh(name: string) {\n return this._schemaRefreshTracker.has(name);\n }\n\n public consumeSchemaRefresh(name: string, configuration: string, eligible: boolean) {\n return this._schemaRefreshTracker.consume(name, {\n ...this.schemaRefresh,\n configuration,\n eligible,\n });\n }\n\n public schemaFieldRefreshed() {\n if (this._schemaRefreshPending || !this.$props.onSchemaRefreshed) return;\n this._schemaRefreshPending = true;\n const epoch = this._schemaRefreshEpoch;\n const locale = this.app.meta.locale.current;\n const { identity, scene } = this.schemaRefresh;\n void nextTick(() => {\n this._schemaRefreshPending = false;\n if (\n !this._schemaRefreshDisposed &&\n epoch === this._schemaRefreshEpoch &&\n locale === this.app.meta.locale.current &&\n identity === this.schemaRefresh.identity &&\n scene === this.schemaRefresh.scene &&\n this.schemaRefresh.contract.ready\n ) {\n this.$props.onSchemaRefreshed?.(this.form.state.values);\n }\n });\n }\n\n public reset(values?: TFormData, opts?: { keepDefaultValues?: boolean }): TFormData {\n ++this._schemaRefreshEpoch;\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 hasErrors(node: IResolvedFormLayoutNode | IResolvedFormLayoutTab) {\n return this.getErrorFieldCount(node) > 0;\n }\n\n public getErrorFieldCount(node: IResolvedFormLayoutNode | IResolvedFormLayoutTab) {\n return this._getFormLayoutErrorFieldCount(node);\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('getValue(string, dyn):dyn', (name, defaultValue) => {\n return this.form.getFieldValue(name) ?? defaultValue;\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 getFormScope(scopeExtra?: {}): IFormScope {\n return objectAssignReactive({}, this.$props.formScope, {\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 getFormJsxRenderContext(\n celScope: IFormScope,\n ): IJsxRenderContextForm<TFormData, TSubmitMeta> {\n return {\n app: this.app,\n ctx: this.ctx,\n $scene: 'form',\n $host: this,\n $celScope: celScope,\n $jsx: this.zovaJsx,\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 // readonly\n const readonlyTemp = props.readonly;\n if (isNil(readonlyTemp) && this.formMeta?.formMode === 'view') {\n props.readonly = true;\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 _getFormLayoutErrorFieldCount(node: IResolvedFormLayoutNode | IResolvedFormLayoutTab) {\n if (node.type === 'field') {\n return this.formState.fieldMeta[node.name]?.errors?.length ? 1 : 0;\n }\n if (node.type === 'block') return 0;\n return node.children.reduce((count, child) => {\n return count + this._getFormLayoutErrorFieldCount(child);\n }, 0);\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 } from '@tanstack/vue-form';\nimport { useSelector } from '@tanstack/vue-store';\nimport { markRaw } from 'vue';\nimport z from 'zod';\nimport { BeanControllerBase, 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 { schemaRefreshFingerprint } from '../../lib/schemaRefresh.js';\nimport { TypeFormField } from '../../types/form.js';\nimport {\n constFieldBindingSlot,\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 private _initialized = false;\n private _mounted = false;\n private _disposed = false;\n private _readyNotified = false;\n private _remount = false;\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._remount = this.$$form.hasSchemaRefresh(this.name);\n this._formField = this._createField();\n // propsBucket\n this.propsBucket = this.$computed(() => {\n return this._getPropsBucket();\n });\n // defaultValue\n // this._handleDefaultValue();\n this.$controllerMounted(() => {\n this._mounted = true;\n this._refreshField();\n });\n this.$watch(\n () => [this.$$form.schemaRefresh, this._getRefreshConfiguration()],\n () => this._refreshField(),\n { flush: 'post' },\n );\n // behaviors\n await this.$$beanBehaviorsHolder.initialize({\n behaviorTag: undefined as any,\n behaviors: () => {\n return this._getFieldBehaviors();\n },\n });\n // onEffect\n if (process.env.CLIENT && this.$props.onEffect) {\n this.$watch(\n () => this.$$form.getFieldValue(this.name),\n (newValue, oldValue) => {\n if (newValue === oldValue) return;\n this.$props.onEffect?.(newValue);\n },\n );\n }\n this._initialized = true;\n this._refreshField();\n }\n\n protected __dispose__() {\n this._disposed = true;\n }\n\n private _getRefreshConfiguration() {\n const props = this.$props;\n return schemaRefreshFingerprint([\n props.name,\n props.render,\n props.options,\n props.readonly,\n props.required,\n props.sys,\n props.validators,\n props.behaviors,\n !!props.onEffect,\n !!props.slotDefault,\n props[constFieldBindingSlot] === true,\n ]);\n }\n\n private _refreshField() {\n if (\n !this._initialized ||\n this._disposed ||\n (process.env.CLIENT && this._remount && !this._mounted) ||\n !this.$$form.schemaRefresh.contract.ready\n ) {\n return;\n }\n const props = this.$props;\n // Only explicitly renderer-owned binding slots qualify; custom slots remain opaque.\n const inputBindingSlot =\n props[constFieldProps] === true && props[constFieldBindingSlot] === true;\n const eligible =\n !props.sys &&\n !props.behaviors &&\n !props.onEffect &&\n (!props.slotDefault || inputBindingSlot) &&\n Object.values(props.validators ?? {}).every(value => typeof value === 'boolean');\n const refresh = this.$$form.consumeSchemaRefresh(\n this.name,\n this._getRefreshConfiguration(),\n eligible,\n );\n if (refresh.changed) {\n const value = this.form.getFieldValue(this.name);\n this.field.api.update(this._getFormFieldOptions() as any);\n this.form.resetField(this.name);\n if (refresh.preserve) {\n this.form.setFieldValue(this.name, value, {\n dontUpdateMeta: true,\n dontRunListeners: true,\n dontValidate: true,\n });\n this.field.api.validateSync('change', {});\n }\n } else if (this._remount && !this._readyNotified) {\n this.field.api.update(this._getFormFieldOptions() as any);\n }\n if (refresh.changed || !this._readyNotified) {\n this._readyNotified = true;\n this.$props.onFieldStateReady?.(this);\n }\n if (refresh.changed) this.$$form.schemaFieldRefreshed();\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 // A remount must not seed over a live null/undefined before refresh eligibility is known.\n if (this._remount) delete options.defaultValue;\n const field = markRaw(useField(options as any)) as any;\n const fieldState = useSelector(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 _renderFromBlocks() {\n const blocks = this.$props.blocks;\n if (!blocks || blocks.length === 0) {\n return this._renderSchema();\n }\n const celScope = this.getFormScope();\n const jsxRenderContext = this.getFormJsxRenderContext(celScope);\n const domBlocks: VNode[] = [];\n blocks.forEach((block, index) => {\n const options = Object.assign({ key: index }, block.options);\n const domBlock = this.zovaJsx.render(block.render!, options, celScope, jsxRenderContext);\n if (!domBlock) return;\n if (Array.isArray(domBlock)) {\n domBlocks.push(...domBlock);\n } else {\n domBlocks.push(domBlock);\n }\n });\n return domBlocks;\n }\n\n private _renderBodyInner() {\n const FormTag = this.$props.formTag;\n return this.$slotDefault ? (\n this.$slotDefault(this)\n ) : (\n <>\n {this.$props.blocks ? this._renderFromBlocks() : 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 (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 { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerForm } from '../../component/form/controller.jsx';\nimport { RenderForm } from '../../component/form/render.jsx';\nexport const ZForm = defineComponent(_props => {\n useController(ControllerForm, RenderForm, undefined);\n return () => {};\n}, prepareComponentOptions());","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 { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerFormField } from '../../component/formField/controller.jsx';\nimport { RenderFormField } from '../../component/formField/render.jsx';\nexport const ZFormField = defineComponent(_props => {\n useController(ControllerFormField, RenderFormField, undefined);\n return () => {};\n}, prepareComponentOptions(ControllerFormField.$componentOptions));","import { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerFormFieldBlank } from '../../component/formFieldBlank/controller.jsx';\nexport const ZFormFieldBlank = defineComponent(_props => {\n useController(ControllerFormFieldBlank, undefined, undefined);\n return () => {};\n}, prepareComponentOptions(ControllerFormFieldBlank.$componentOptions));","import { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerFormFieldPreset } from '../../component/formFieldPreset/controller.jsx';\nexport const ZFormFieldPreset = defineComponent(_props => {\n useController(ControllerFormFieldPreset, undefined, undefined);\n return () => {};\n}, prepareComponentOptions(ControllerFormFieldPreset.$componentOptions));","export const config = _sys => {\n return {\n formFieldLayout: {\n bordered: true\n }\n };\n};","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\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';\nimport 'zova';\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';\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';\n/** components: end */\n/** render: begin */\nexport * from '../component/form/render.jsx';\nexport * from '../component/formField/render.jsx';\nimport 'zova';\n/** render: end */\n/** render: begin */\nimport { RenderForm } from '../component/form/render.jsx';\nimport { RenderFormField } from '../component/formField/render.jsx';\nimport 'zova';\n/** render: end */\n/** config: begin */\nexport * from '../config/config.js';\n/** config: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleAForm = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-form\"\n}), _dec(_class = _dec2(_class = class ScopeModuleAForm extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */","import { useForm } from '@tanstack/vue-form';\nimport { markRaw } from 'vue';\nimport { BeanControllerPageBase } from 'zova';\nexport class BeanControllerPageFormBase extends BeanControllerPageBase {\n constructor(...args) {\n super(...args);\n this.form = void 0;\n this.formState = void 0;\n }\n async submit(_submitMeta) {\n throw new Error('should implement submit');\n }\n reset(_values, _opts) {\n throw new Error('should implement reset');\n }\n $useForm(opts) {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useForm(opts));\n });\n }\n}","export function formMetaFromFormScene(formScene) {\n if (formScene === 'view') return {\n formScene,\n formMode: 'view',\n editMode: undefined\n };\n if (formScene === 'create') return {\n formScene,\n formMode: 'edit',\n editMode: 'create'\n };\n if (formScene === 'edit') return {\n formScene,\n formMode: 'edit',\n editMode: 'update'\n };\n throw new Error('invalid parameters');\n}\nexport function formSceneFromFormMeta(formMeta) {\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}","export function resolveFormLayout(layout, properties) {\n const visibleProperties = properties?.filter(item => item.rest?.visible !== false) ?? [];\n const propertyNames = new Set(visibleProperties.map(item => item.key).filter(Boolean));\n const propertyAliases = new Map();\n for (const property of visibleProperties) {\n if (!property.key) continue;\n const schemaKeys = [property.schemaKey, ...(property.schemaKeys ?? [])];\n for (const schemaKey of schemaKeys) {\n if (!schemaKey || schemaKey === property.key) continue;\n const aliases = propertyAliases.get(schemaKey) ?? new Set();\n aliases.add(property.key);\n propertyAliases.set(schemaKey, aliases);\n }\n }\n const fieldNames = new Set();\n const nodeIds = new Set();\n const diagnostics = [];\n const fieldTabPaths = {};\n const children = layout.children.map((node, index) => resolveNode(node, [index], [], propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);\n return {\n children,\n fieldTabPaths,\n diagnostics\n };\n}\nfunction resolveNode(node, indexPath, tabPath, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths) {\n if (node.type === 'field') {\n return resolveField(node, tabPath, propertyNames, propertyAliases, fieldNames, diagnostics, fieldTabPaths);\n }\n if (node.type === 'block') {\n return node;\n }\n if (node.type === 'tabs') {\n return resolveTabs(node, indexPath, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths);\n }\n const id = resolveId(node, indexPath);\n if (!registerId(id, nodeIds, diagnostics)) return;\n if (node.type === 'section') {\n const children = node.children.map(item => resolveLeaf(item, tabPath, propertyNames, propertyAliases, fieldNames, diagnostics, fieldTabPaths)).filter(Boolean);\n return children.length ? {\n ...node,\n id,\n children\n } : undefined;\n }\n const children = node.children.map((item, index) => resolveNode(item, [...indexPath, index], tabPath, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);\n return children.length ? {\n ...node,\n id,\n children\n } : undefined;\n}\nfunction resolveLeaf(node, tabPath, propertyNames, propertyAliases, fieldNames, diagnostics, fieldTabPaths) {\n if (node.type === 'block') return node;\n return resolveField(node, tabPath, propertyNames, propertyAliases, fieldNames, diagnostics, fieldTabPaths);\n}\nfunction resolveTabs(node, indexPath, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths) {\n const id = resolveId(node, indexPath);\n if (!registerId(id, nodeIds, diagnostics)) return;\n const children = node.children.map((tab, index) => resolveTab(tab, [...indexPath, index], id, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);\n return children.length ? {\n ...node,\n id,\n children\n } : undefined;\n}\nfunction resolveTab(node, indexPath, tabsId, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths) {\n const id = resolveId(node, indexPath);\n if (!registerId(id, nodeIds, diagnostics)) return;\n const tabPath = [{\n tabsId,\n tabId: id\n }];\n const children = node.children.map((item, index) => resolveNode(item, [...indexPath, index], tabPath, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);\n return children.length ? {\n ...node,\n id,\n children\n } : undefined;\n}\nfunction resolveField(node, tabPath, propertyNames, propertyAliases, fieldNames, diagnostics, fieldTabPaths) {\n const name = resolveFieldName(node.name, propertyNames, propertyAliases);\n if (!name) {\n diagnostics.push({\n type: 'unknownField',\n value: node.name\n });\n return;\n }\n if (fieldNames.has(name)) {\n diagnostics.push({\n type: 'duplicateField',\n value: node.name\n });\n return;\n }\n fieldNames.add(name);\n fieldTabPaths[name] = tabPath;\n return name === node.name ? node : {\n ...node,\n name\n };\n}\nfunction resolveFieldName(name, propertyNames, propertyAliases) {\n if (propertyNames.has(name)) return name;\n const aliases = propertyAliases.get(name);\n if (aliases?.size === 1) return aliases.values().next().value;\n const fieldSourcePrefix = `${name}.`;\n const fieldSources = [...propertyNames].filter(item => item.startsWith(fieldSourcePrefix));\n return fieldSources.length === 1 ? fieldSources[0] : undefined;\n}\nfunction resolveId(node, indexPath) {\n return node.id || `${node.type}-${indexPath.join('-')}`;\n}\nfunction registerId(id, ids, diagnostics) {\n if (!ids.has(id)) {\n ids.add(id);\n return true;\n }\n diagnostics.push({\n type: 'duplicateId',\n value: id\n });\n return false;\n}"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["catchError","celEnvBase","isEmptyObject","isNil","ZodMetadata","determineFormLevelErrorSourceAndValue","getBy","isGlobalFormValidationError","revalidateLogic","useSelector","markRaw","nextTick","cast","deepEqual","deepExtend","objectAssignReactive","UseScope","isJsxComponent","ZovaJsx","Controller","renderFormFieldTopPropsSystem","BeanControllerFormBase","createSchemaRefreshContract","schemaRefreshFingerprint","SchemaRefreshTracker","constFieldProps","ControllerForm","_dec","_dec2","__z_BeanInfo","module","_dec3","_dec4","Reflect","metadata","ScopeModuleAOpenapi","Object","_class","_class2","_ControllerForm","constructor","args","formProvider","schema","zodSchema","properties","zovaJsx","fieldCelEnv","schemaRefresh","_schemaRefreshTracker","_schemaRefreshEpoch","_schemaRefreshPending","_schemaRefreshDisposed","_initializerDefineProperty","_descriptor","__init__","bean","_setBean","form","_createForm","formState","store","state","$computed","$$scopeOpenapi","config","$props","_getZodSchema","$sdk","loadSchemaProperties","schemaScene","locale","app","meta","current","policy","localePresentationRefresh","contract","reference","getSchema","data","ready","fields","selector","identity","epoch","scene","formMeta","validateOnDynamic","validateOnDynamicLogic","enabled","$watch","prune","flush","_getFieldCelEnv","_newBeanSimple","components","newValue","oldValue","reset","submit","submitMeta","formScene","_","error","handleSubmit","isValid","__dispose__","clear","hasSchemaRefresh","name","has","consumeSchemaRefresh","configuration","eligible","consume","schemaFieldRefreshed","onSchemaRefreshed","values","opts","hasErrors","node","getErrorFieldCount","_getFormLayoutErrorFieldCount","getFieldValue","setFieldValue","value","disableNotifyChanged","onChanged","getFieldProperty","find","item","key","getFieldZodSchema","getFieldSchema","celEnv","clone","registerFunction","defaultValue","getFieldScope","scopeExtra","formScope","property","getFormScope","getFieldJsxRenderContext","$$formField","celScope","ctx","$scene","$host","$celScope","$jsx","$$form","getFormJsxRenderContext","getFieldComponentPropsTop","jsxRenderContext","props","_getFieldComponentPropsTopInner","rest","keys","filter","includes","length","keyValue","evaluateExpression","renderJsxOrCel","undefined","needAppend","render","isComponentFormField","type","propsAppend","assign","readonlyTemp","readonly","formMode","getRenderProvider","_patchZodSchema","schemaToZodSchema","def","options","Error","$useForm","defaultValues","validationLogic","onSubmitInvalid","onSubmit","onSubmitData","resHandled","event","emit","code","_handleError422","onShowError","renderField","propsExtra","_renderFieldByKey","visible","componentOptions","_getFieldComponentOptionsTop","renderProvider","fieldMeta","errors","children","reduce","count","child","cause","formApi","hasErrored","currentValidationErrorMap","rawError","parseIssues","formError","fieldErrors","normalizeError","errorMapKey","getErrorMapKey","field","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","issue","path","join","isNil","useField","useSelector","markRaw","BeanControllerBase","Use","Controller","schemaRefreshFingerprint","constFieldBindingSlot","constFieldProps","ControllerFormField","_dec","_dec2","__z_BeanInfo","module","_dec3","injectionScope","_dec4","Reflect","metadata","ControllerForm","Object","_dec5","_dec6","BeanBehaviorsHolder","_class","_class2","_ControllerFormField","constructor","args","_formField","_initialized","_mounted","_disposed","_readyNotified","_remount","propsBucket","_initializerDefineProperty","_descriptor","_descriptor2","__init__","$$form","Error","name","bean","_setBean","hasSchemaRefresh","_createField","$computed","_getPropsBucket","$controllerMounted","_refreshField","$watch","schemaRefresh","_getRefreshConfiguration","flush","$$beanBehaviorsHolder","initialize","behaviorTag","undefined","behaviors","_getFieldBehaviors","process","env","CLIENT","$props","onEffect","getFieldValue","newValue","oldValue","__dispose__","props","render","options","readonly","required","sys","validators","slotDefault","contract","ready","inputBindingSlot","eligible","values","every","value","refresh","consumeSchemaRefresh","changed","form","field","api","update","_getFormFieldOptions","resetField","preserve","setFieldValue","dontUpdateMeta","dontRunListeners","dontValidate","validateSync","onFieldStateReady","schemaFieldRefreshed","property","getFieldProperty","fieldZodSchema","getFieldZodSchema","formMeta","formProvider","setValue","disableNotifyChanged","handleBlur","getRenderContext","key","class","celScope","getFieldScope","jsxRenderContext","getFieldJsxRenderContext","defaultValue","fieldState","store","state","propsTop","_getFieldComponentPropsTop","layoutOptions","assign","bordered","scope","config","formFieldLayout","label","title","layout","presetOptions","style","$cssMerge","$style","classTemp","styleTemp","readonlyTemp","formMode","renderProvider","getRenderProvider","getFieldComponentPropsTop","_prepareBehaviorFormField","_prepareBehaviorFormFieldLayout","behaviorFormField","FormField","behaviorFormFieldLayout","FormFieldLayout","default","_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","_renderFromBlocks","blocks","length","celScope","getFormScope","jsxRenderContext","getFormJsxRenderContext","domBlocks","forEach","block","index","options","Object","assign","domBlock","zovaJsx","render","FormTag","formTag","$slotDefault","_createVNode","_Fragment","display","_renderProps","props","onSubmit","e","onFormSubmit","preventDefault","stopPropagation","submit","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/lib/schemaRefresh.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","../src/lib/formLayout.ts"],"sourcesContent":["import { useForm } from '@tanstack/vue-form';\nimport { markRaw } from 'vue';\nimport { BeanControllerBase } from 'zova';\nexport class BeanControllerFormBase extends BeanControllerBase {\n constructor(...args) {\n super(...args);\n this.form = void 0;\n this.formState = void 0;\n }\n async submit(_submitMeta) {\n throw new Error('should implement submit');\n }\n reset(_values, _opts) {\n throw new Error('should implement reset');\n }\n $useForm(opts) {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useForm(opts));\n });\n }\n}","const schemaMaps = new Set(['properties', 'patternProperties', '$defs', 'definitions', 'dependentSchemas']);\nconst schemaArrays = new Set(['allOf', 'anyOf', 'oneOf', 'prefixItems']);\nconst schemaSingles = new Set(['items', 'additionalItems', 'additionalProperties', 'unevaluatedItems', 'unevaluatedProperties', 'contains', 'propertyNames', 'not', 'if', 'then', 'else', 'contentSchema']);\nconst restScenes = new Set(['table', 'form', 'form-view', 'form-create', 'filter']);\nconst restKeys = new Set(['schemaScene', 'fieldSource', 'visible', 'disableNotifyChanged', 'readonly', 'required', 'draft', 'order', 'align', 'width', 'fixed', 'enableSorting', 'sortDescFirst', 'render', 'options', 'class', 'style', 'placeholder', 'blocks', 'columnProps']);\nconst renderProps = new Set(['items', 'placeholder', 'readonly', 'required', 'name', 'type', 'options', 'class', 'style', 'relationName', 'imageScene', 'enableCrop', 'cropAspectRatio', 'resize', 'itemValue', 'itemTitle']);\nconst unsafeKeys = new Set(['__proto__', 'prototype', 'constructor']);\nconst opaqueSnapshots = new WeakSet();\nconst opaqueIds = new WeakMap();\nconst symbolIds = new Map();\nlet nextOpaqueId = 0;\nfunction opaqueId(value) {\n let id = opaqueIds.get(value);\n if (id === undefined) opaqueIds.set(value, id = ++nextOpaqueId);\n return id;\n}\n\n/** Stable configuration signature without invoking getters or retaining caller values. */\nexport function schemaRefreshFingerprint(value) {\n function encode(item, ancestors = new Set()) {\n if (typeof item === 'symbol') {\n let id = symbolIds.get(item);\n if (id === undefined) symbolIds.set(item, id = ++nextOpaqueId);\n return ['symbol', id];\n }\n if (typeof item === 'function') return ['opaque', opaqueId(item)];\n if (typeof item === 'bigint') return ['bigint', String(item)];\n if (typeof item === 'number' && !Number.isFinite(item)) return ['number', String(item)];\n if (item === null || typeof item !== 'object') return data(item);\n if (ancestors.has(item)) return ['cycle', opaqueId(item)];\n if (!Array.isArray(item) && !isRecord(item)) return ['opaque', opaqueId(item)];\n const next = new Set(ancestors).add(item);\n const descriptors = Object.getOwnPropertyDescriptors(item);\n return [Array.isArray(item) ? 'array' : 'object', Object.keys(descriptors).sort().map(key => {\n const descriptor = descriptors[key];\n return [key, descriptor.enumerable, 'value' in descriptor ? encode(descriptor.value, next) : ['accessor', descriptor.get && opaqueId(descriptor.get), descriptor.set && opaqueId(descriptor.set)]];\n }), Object.getOwnPropertySymbols(item).map(key => [encode(key), encode(Object.getOwnPropertyDescriptor(item, key)?.value, next)])];\n }\n return JSON.stringify(encode(value));\n}\nclass UnresolvedSchemaError extends Error {}\nfunction isRecord(value) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n}\n\n// Reject opaque runtime values instead of letting JSON.stringify silently discard them.\nfunction snapshot(value, ancestors = new Set()) {\n if (value === null || value === undefined || typeof value === 'string' || typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n if (typeof value === 'function') {\n const marker = {\n $opaqueRuntime: opaqueId(value)\n };\n opaqueSnapshots.add(marker);\n return marker;\n }\n if (typeof value !== 'object' || ancestors.has(value)) throw new Error('Opaque metadata');\n if (!Array.isArray(value) && !isRecord(value)) throw new Error('Opaque metadata');\n if (Object.getOwnPropertySymbols(value).length) throw new Error('Opaque metadata');\n const next = new Set(ancestors).add(value);\n const descriptors = Object.getOwnPropertyDescriptors(value);\n if (Array.isArray(value)) {\n if (Object.keys(descriptors).length !== value.length + 1) throw new Error('Opaque array');\n return Array.from({\n length: value.length\n }, (_, index) => {\n const descriptor = descriptors[index];\n if (!descriptor || !descriptor.enumerable || !('value' in descriptor)) throw new Error('Opaque array');\n return snapshot(descriptor.value, next);\n });\n }\n const result = Object.create(null);\n for (const [key, descriptor] of Object.entries(descriptors)) {\n if (!descriptor.enumerable || !('value' in descriptor)) throw new Error('Opaque metadata');\n result[key] = snapshot(descriptor.value, next);\n }\n return result;\n}\n\n// Tagged JSON keeps undefined distinct from missing, null, and literal marker strings.\nfunction data(value) {\n if (value === undefined) return ['undefined'];\n if (value === null) return ['null'];\n if (typeof value === 'number') return ['number', Object.is(value, -0) ? '-0' : value];\n if (typeof value === 'string' || typeof value === 'boolean') return [typeof value, value];\n if (Array.isArray(value)) return ['array', value.map(data)];\n if (isRecord(value)) {\n return ['object', Object.keys(value).sort().map(key => [key, data(value[key])])];\n }\n throw new Error('Opaque metadata');\n}\nfunction containsOpaque(value) {\n if (!value || typeof value !== 'object') return false;\n if (opaqueSnapshots.has(value)) return true;\n return Array.isArray(value) ? value.some(containsOpaque) : isRecord(value) && Object.values(value).some(containsOpaque);\n}\nfunction opaqueBehavior(value) {\n if (typeof value === 'string') return value.startsWith('cel://');\n if (Array.isArray(value)) return value.some(opaqueBehavior);\n if (!isRecord(value)) return false;\n return Object.entries(value).some(([key, item]) => (key === '$$typeof' ? !['zova-jsx:component', 'zova-jsx:block', 'zova-jsx:actionRow', 'zova-jsx:actionBulk'].includes(String(item)) : /^(?:on[A-Z]|effect|evaluate|expression|command|behavior|validator|slot|v-|\\$)/i.test(key)) || opaqueBehavior(item));\n}\nconst pageEntryBlockOptions = ['blocks', 'resource', 'id', 'formScene', 'pageTitleKey', 'draft'];\nconst blockOptions = {\n 'basic-pageentry:blockPageEntry': pageEntryBlockOptions,\n 'start-pageentry:blockPageEntry': pageEntryBlockOptions,\n 'basic-pageentry:blockForm': ['blocks'],\n 'start-pageentry:blockForm': ['blocks'],\n 'basic-form:blockFormLayout': ['formLayout'],\n 'start-form:blockFormLayout': ['formLayout'],\n 'basic-pageentry:blockToolbarRow': ['actions'],\n 'start-pageentry:blockToolbarRow': ['actions']\n};\nfunction safeLayoutNode(value) {\n if (!isRecord(value) || typeof value.type !== 'string') return false;\n const keys = {\n tabs: ['type', 'id', 'children'],\n tab: ['type', 'id', 'title', 'children'],\n group: ['type', 'id', 'title', 'description', 'children'],\n section: ['type', 'id', 'title', 'description', 'layout', 'columns', 'children'],\n field: ['type', 'name', 'span']\n };\n const allowed = keys[value.type];\n if (!allowed || Object.keys(value).some(key => !allowed.includes(key))) return false;\n if (value.title !== undefined && typeof value.title !== 'string') return false;\n if (value.type === 'field') return safeName(value.name);\n return Array.isArray(value.children) && value.children.every(safeLayoutNode);\n}\nfunction safeLayout(value) {\n return isRecord(value) && Object.keys(value).every(key => key === 'children') && Array.isArray(value.children) && value.children.every(safeLayoutNode);\n}\nfunction safeActions(value) {\n return Array.isArray(value) && value.every(action => {\n if (!isRecord(action) || typeof action.render !== 'string') return false;\n if (Object.keys(action).some(key => !['$$typeof', 'name', 'render', 'options'].includes(key))) return false;\n if (action.$$typeof !== undefined && action.$$typeof !== 'zova-jsx:actionRow') return false;\n return action.options === undefined || isRecord(action.options) && Object.keys(action.options).every(key => ['permission', 'class', 'style'].includes(key));\n });\n}\nfunction safeBlocks(value) {\n return Array.isArray(value) && value.every(block => {\n if (!isRecord(block) || typeof block.render !== 'string') return false;\n if (Object.keys(block).some(key => !['$$typeof', 'render', 'options'].includes(key))) return false;\n if (block.$$typeof !== undefined && block.$$typeof !== 'zova-jsx:block') return false;\n const allowed = blockOptions[block.render];\n if (!allowed) return false;\n if (block.options === undefined) return true;\n if (!isRecord(block.options)) return false;\n return Object.entries(block.options).every(([key, item]) => {\n if (!allowed.includes(key) && !['class', 'style'].includes(key)) return false;\n if (key === 'blocks') return safeBlocks(item);\n if (key === 'formLayout') return safeLayout(item);\n if (key === 'actions') return safeActions(item);\n return true;\n });\n });\n}\n\n// Only Basic's and Start's declared layout grammar owns these title strings. Rest data/options,\n// action metadata, descriptions, field names, and unknown structures stay strict.\nfunction normalizeLayoutNode(value) {\n if (!isRecord(value)) return value;\n const result = {\n ...value\n };\n if (['tab', 'group', 'section'].includes(String(value.type)) && typeof value.title === 'string') result.title = '';\n if (Array.isArray(value.children)) result.children = value.children.map(normalizeLayoutNode);\n return result;\n}\nfunction normalizeBlocks(value) {\n if (!Array.isArray(value)) return value;\n return value.map(block => {\n if (!isRecord(block) || !isRecord(block.options)) return block;\n const options = {\n ...block.options\n };\n if (Object.hasOwn(options, 'blocks')) options.blocks = normalizeBlocks(options.blocks);\n if (['basic-form:blockFormLayout', 'start-form:blockFormLayout'].includes(block.render) && safeLayout(options.formLayout)) {\n const layout = options.formLayout;\n options.formLayout = {\n children: layout.children.map(normalizeLayoutNode)\n };\n }\n return {\n ...block,\n options\n };\n });\n}\nfunction normalizeAncestorRest(value) {\n if (!isRecord(value)) return value;\n const result = {\n ...value\n };\n for (const [key, item] of Object.entries(value)) {\n if (key === 'blocks' && safeBlocks(item)) result[key] = normalizeBlocks(item);else if (restScenes.has(key)) result[key] = normalizeAncestorRest(item);\n }\n return result;\n}\nfunction safeRest(value) {\n if (value === undefined || value === null) return true;\n if (!isRecord(value) || opaqueBehavior(value)) return false;\n return Object.entries(value).every(([key, item]) => {\n if (restScenes.has(key)) return safeRest(item);\n if (!restKeys.has(key)) return false;\n if (item === undefined || item === null) return true;\n if (['visible', 'disableNotifyChanged', 'readonly', 'required', 'draft', 'enableSorting', 'sortDescFirst'].includes(key)) {\n return typeof item === 'boolean';\n }\n if (['order', 'width'].includes(key)) return typeof item === 'number';\n if (['schemaScene', 'fieldSource', 'align', 'fixed', 'placeholder', 'class'].includes(key)) return typeof item === 'string';\n if (key === 'style') return isRecord(item);\n if (key === 'blocks') return safeBlocks(item);\n if (key === 'options' || key === 'columnProps') return isRecord(item) && Object.keys(item).every(part => renderProps.has(part));\n if (key !== 'render' || typeof item === 'string') return true;\n if (!isRecord(item) || typeof item.type !== 'string') return false;\n if (Object.keys(item).some(part => !['$$typeof', 'type', 'props', 'key', 'children'].includes(part))) {\n return false;\n }\n return item.props === undefined || isRecord(item.props) && Object.keys(item.props).every(part => renderProps.has(part));\n });\n}\nfunction safeName(value) {\n return typeof value === 'string' && value.split('.').every(part => !!part && !unsafeKeys.has(part));\n}\n\n/** Compile detached comparison facts from schema truth and SDK-canonical effective fields. */\nexport function createSchemaRefreshContract(schema, properties, resolveSchema) {\n if (schema === undefined || schema === null || properties === undefined) return {\n ready: false,\n fields: {}\n };\n const resolvedInputs = new Map();\n try {\n const root = snapshot(schema);\n const effective = snapshot(properties);\n if (!isRecord(root) || !Array.isArray(effective)) throw new Error('Schema unavailable');\n const targets = new Map();\n let eligible = true;\n const ancestorsRest = [];\n const ancestorsRestRaw = [];\n const detailNames = new Set();\n for (const property of effective) {\n if (!isRecord(property) || !isRecord(property.rest)) continue;\n const rest = property.rest;\n const form = isRecord(rest.form) ? rest.form : undefined;\n const render = rest.render ?? form?.render;\n const renderType = isRecord(render) ? render.type : render;\n if (!['basic-details:formFieldDetails', 'start-details:formFieldDetails'].includes(String(renderType))) {\n continue;\n }\n for (const name of [property.key, property.schemaKey, ...(Array.isArray(property.schemaKeys) ? property.schemaKeys : [])]) {\n if (typeof name === 'string') detailNames.add(name);\n }\n }\n // Basic and Start Details resolve row schemas through the exact hidden `_name` auxiliary.\n // It belongs to that nested form, not to an unrelated parent field's behavior scope.\n const auxiliaryDetails = new Set();\n for (const property of effective) {\n if (!isRecord(property) || typeof property.key !== 'string' || !property.key.startsWith('_') || !detailNames.has(property.key.slice(1)) || !isRecord(property.rest) || property.rest.visible !== false || !(property.type === 'array' || Array.isArray(property.type) && property.type.length === 2 && property.type.includes('array') && property.type.includes('null')) || !isRecord(property.items) || typeof property.items.$ref !== 'string') {\n continue;\n }\n auxiliaryDetails.add(property.key);\n }\n for (const name of auxiliaryDetails) detailNames.add(name);\n let localEligible = true;\n function insideDetails(path) {\n return path[0] === 'fields' ? detailNames.has(path[1]) && path.slice(2).some(part => schemaMaps.has(part) || schemaSingles.has(part) || schemaArrays.has(part)) : path[0] === 'properties' && detailNames.has(path[1]) && path.slice(2).some(part => schemaMaps.has(part) || schemaSingles.has(part) || schemaArrays.has(part));\n }\n function target(ref) {\n if (targets.has(ref)) return targets.get(ref);\n let resolved = resolveSchema(ref);\n if (resolved === undefined && ref.startsWith('#/')) {\n resolved = root;\n for (const part of ref.slice(2).split('/')) {\n const key = decodeURIComponent(part).replace(/~1/g, '/').replace(/~0/g, '~');\n resolved = isRecord(resolved) && Object.hasOwn(resolved, key) ? resolved[key] : undefined;\n }\n }\n if (resolved === undefined) throw new UnresolvedSchemaError('Unresolved reference');\n resolvedInputs.set(ref, resolved);\n const detached = snapshot(resolved);\n targets.set(ref, detached);\n return detached;\n }\n function project(node, normalized, includeRest, refs = new Set(), path = [], collect = false) {\n if (typeof node === 'boolean') return ['schema', data(node)];\n if (!isRecord(node)) throw new Error('Invalid schema node');\n if (collect && Object.hasOwn(node, 'rest')) {\n const safe = safeRest(node.rest);\n if (insideDetails(path)) {\n if (path[0] === 'fields') localEligible &&= safe;\n } else {\n eligible &&= safe;\n }\n // Known details fields own a nested form; their descendants cannot mutate siblings.\n if (!insideDetails(path) && (path.length === 0 || path[0] !== 'fields' && ['properties', 'patternProperties', 'items', 'prefixItems', 'additionalProperties'].some(key => Object.hasOwn(node, key)))) {\n ancestorsRestRaw.push([path, data(node.rest)]);\n ancestorsRest.push([path, data(normalizeAncestorRest(node.rest))]);\n }\n }\n const entries = [];\n for (const key of Object.keys(node).sort()) {\n const value = node[key];\n if (key === 'rest' && !includeRest) continue;\n let projected;\n if (key === '$ref') {\n if (typeof value !== 'string' || refs.has(value)) throw new Error('Cyclic reference');\n projected = ['reference', value, project(target(value), normalized, includeRest, new Set(refs).add(value), [...path, key], collect)];\n } else if (normalized && (key === 'title' || key === 'description') && typeof value === 'string') {\n projected = ['display'];\n } else if (normalized && key === 'errorMessage' && isRecord(value)) {\n projected = ['messages', Object.keys(value).sort().map(part => [part, typeof value[part] === 'string' ? ['display'] : data(value[part])])];\n } else if (schemaMaps.has(key)) {\n if (!isRecord(value)) throw new Error('Invalid schema map');\n projected = ['map', Object.keys(value).sort().map(part => [part, project(value[part], normalized, includeRest, refs, [...path, key, part], collect)])];\n } else if (schemaArrays.has(key) || key === 'items' && Array.isArray(value)) {\n if (!Array.isArray(value)) throw new Error('Invalid schema array');\n projected = ['schemas', value.map((item, index) => project(item, normalized, includeRest, refs, [...path, key, String(index)], collect))];\n } else if (schemaSingles.has(key)) {\n projected = project(value, normalized, includeRest, refs, [...path, key], collect);\n } else if (key === 'dependencies') {\n if (!isRecord(value)) throw new Error('Invalid dependencies');\n projected = ['dependencies', Object.keys(value).sort().map(part => [part, Array.isArray(value[part]) ? data(value[part]) : project(value[part], normalized, includeRest, refs, [...path, key, part], collect)])];\n } else {\n if (collect && key !== 'rest' && containsOpaque(value)) {\n if (insideDetails(path)) {\n if (path[0] === 'fields') localEligible = false;\n } else {\n eligible = false;\n }\n }\n projected = data(value);\n }\n entries.push([key, projected]);\n }\n return ['schema', entries];\n }\n const validationRaw = JSON.stringify(project(root, false, false, new Set(), [], true));\n const validation = JSON.stringify(project(root, true, false));\n const fields = {};\n for (const property of effective) {\n if (!isRecord(property) || !safeName(property.key) || Object.hasOwn(fields, property.key)) throw new Error('Invalid canonical field');\n if (property.schemaKey !== undefined && !safeName(property.schemaKey) || property.schemaKeys !== undefined && (!Array.isArray(property.schemaKeys) || !property.schemaKeys.every(safeName))) {\n throw new Error('Invalid field alias');\n }\n localEligible = true;\n const raw = JSON.stringify(project(property, false, true, new Set(), ['fields', property.key], true));\n const compatible = JSON.stringify(project(property, true, true));\n fields[property.key] = {\n raw,\n compatible,\n eligible: localEligible\n };\n }\n for (const field of Object.values(fields)) field.eligible &&= eligible;\n return {\n ready: true,\n validation,\n validationRaw,\n fields,\n behavior: JSON.stringify([eligible, ancestorsRest]),\n behaviorRaw: JSON.stringify([eligible, ancestorsRestRaw])\n };\n } catch (error) {\n if (error instanceof UnresolvedSchemaError) return {\n ready: false,\n fields: {}\n };\n // Unsupported metadata remains observable, but can never authorize state replay.\n const raw = schemaRefreshFingerprint([schema, [...resolvedInputs.entries()]]);\n const fields = {};\n if (Array.isArray(properties)) {\n for (const property of properties) {\n if (!isRecord(property)) continue;\n const descriptor = Object.getOwnPropertyDescriptor(property, 'key');\n if (!descriptor || !('value' in descriptor) || !safeName(descriptor.value)) continue;\n const fieldRaw = schemaRefreshFingerprint(property);\n fields[descriptor.value] = {\n raw: fieldRaw,\n compatible: fieldRaw,\n eligible: false\n };\n }\n }\n return {\n ready: true,\n validation: raw,\n validationRaw: raw,\n fields,\n behavior: raw\n };\n }\n}\n/** Owns comparison facts only, never form values, errors, or schema facade references. */\nexport class SchemaRefreshTracker {\n constructor() {\n this.facts = new Map();\n }\n has(name) {\n return this.facts.has(name);\n }\n clear() {\n this.facts.clear();\n }\n prune(contract) {\n if (!contract.ready) return;\n for (const [name, facts] of this.facts) {\n if (facts.fieldRaw !== undefined && !Object.hasOwn(contract.fields, name)) this.facts.delete(name);\n }\n }\n consume(name, context) {\n if (!context.contract.ready) return {\n changed: false,\n preserve: false\n };\n const {\n contract,\n ...scope\n } = context;\n const field = contract.fields[name];\n const next = {\n ...scope,\n validation: contract.validation,\n validationRaw: contract.validationRaw ?? contract.validation,\n behavior: contract.behavior,\n behaviorRaw: contract.behaviorRaw ?? contract.behavior,\n fieldRaw: field?.raw,\n fieldCompatible: field?.compatible,\n fieldEligible: field?.eligible === true\n };\n const previous = this.facts.get(name);\n this.facts.set(name, next);\n if (!previous) return {\n changed: false,\n preserve: false\n };\n const changed = ['locale', 'identity', 'scene', 'configuration', 'enabled', 'eligible', 'validationRaw', 'behaviorRaw', 'fieldRaw', 'fieldEligible'].some(key => previous[key] !== next[key]);\n const preserve = changed && previous.locale !== next.locale && next.identity !== undefined && previous.identity === next.identity && previous.epoch === next.epoch && previous.scene === next.scene && previous.configuration === next.configuration && previous.enabled && next.enabled && previous.eligible && next.eligible && previous.fieldEligible && next.fieldEligible && previous.validation === next.validation && previous.behavior === next.behavior && previous.fieldCompatible === next.fieldCompatible;\n return {\n changed,\n preserve\n };\n }\n}","export const constFieldProps = '$$FieldProps';\n// Internal: the renderer supplies its own form-value binding slot.\nexport const constFieldBindingSlot = '$$FieldBindingSlot';\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// }","import { catchError, celEnvBase, isEmptyObject, isNil } from '@cabloy/utils';\nimport { ZodMetadata } from '@cabloy/zod-openapi';\nimport {\n DeepKeys,\n determineFormLevelErrorSourceAndValue,\n FormValidationError,\n getBy,\n isGlobalFormValidationError,\n revalidateLogic,\n ValidationCause,\n ValidationError,\n} from '@tanstack/vue-form';\nimport { useSelector } from '@tanstack/vue-store';\nimport { SchemaObject } from 'openapi3-ts/oas31';\nimport { markRaw, nextTick, 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 IResourceRenderBlockOptionsBlock,\n ISchemaObjectExtensionField,\n renderFormFieldTopPropsSystem,\n ScopeModuleAOpenapi,\n TypeFormFieldRenderComponent,\n TypeFormFieldRenderComponentProvider,\n TypeFormSchemaScene,\n} from 'zova-module-a-openapi';\n\nimport type { ISchemaRefreshContext } from '../../lib/schemaRefresh.js';\nimport type { IResolvedFormLayoutNode, IResolvedFormLayoutTab } from '../../types/formLayout.js';\n\nimport { BeanControllerFormBase } from '../../lib/beanControllerFormBase.js';\nimport {\n createSchemaRefreshContract,\n schemaRefreshFingerprint,\n SchemaRefreshTracker,\n} from '../../lib/schemaRefresh.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 IJsxRenderContextForm,\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 data?: TFormData;\n schema?: SchemaObject;\n schemaScene?: TypeFormSchemaScene;\n localePresentationRefresh?: { identity: string };\n zodSchema?: z.ZodObject<any>;\n validateOnDynamic?: boolean;\n validateOnDynamicLogic?: RevalidateLogicProps;\n formMeta?: IFormMeta;\n formProvider?: IFormProvider;\n formScope?: IFormScope;\n formFieldLayout?: IResourceFormFieldLayoutOptions;\n blocks?: IResourceRenderBlockOptionsBlock[];\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 onSchemaRefreshed?: (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 schemaRefresh: Omit<ISchemaRefreshContext, 'configuration' | 'eligible'>;\n private _schemaRefreshTracker = markRaw(new SchemaRefreshTracker());\n private _schemaRefreshEpoch = 0;\n private _schemaRefreshPending = false;\n private _schemaRefreshDisposed = false;\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 = useSelector(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.schemaRefresh = this.$computed(() => {\n const locale = this.app.meta.locale.current;\n const schema = this.schema;\n const policy = this.$props.localePresentationRefresh;\n const contract = schema\n ? createSchemaRefreshContract(schema, this.properties ?? [], reference => {\n return this.$sdk.getSchema(reference).data;\n })\n : { ready: !policy, fields: {} };\n if (schema && this.$sdk.selector !== locale) contract.ready = false;\n return {\n locale,\n identity: policy?.identity,\n epoch: this._schemaRefreshEpoch,\n scene: schemaRefreshFingerprint([\n this.$props.schemaScene,\n this.formMeta,\n this.formProvider,\n this.$props.zodSchema,\n this.$props.validateOnDynamic,\n this.$props.validateOnDynamicLogic,\n ]),\n enabled: !!policy && !this.$props.zodSchema,\n contract,\n };\n });\n this.$watch(\n () => this.schemaRefresh.contract,\n contract => this._schemaRefreshTracker.prune(contract),\n { flush: 'sync' },\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 ++this._schemaRefreshEpoch;\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 if (this.formMeta?.formScene === 'view') return false;\n const [_, error] = await catchError(() => {\n return this.form.handleSubmit(submitMeta as any);\n });\n return !error && this.formState.isValid;\n }\n\n protected __dispose__() {\n this._schemaRefreshDisposed = true;\n ++this._schemaRefreshEpoch;\n this._schemaRefreshTracker.clear();\n }\n\n public hasSchemaRefresh(name: string) {\n return this._schemaRefreshTracker.has(name);\n }\n\n public consumeSchemaRefresh(name: string, configuration: string, eligible: boolean) {\n return this._schemaRefreshTracker.consume(name, {\n ...this.schemaRefresh,\n configuration,\n eligible,\n });\n }\n\n public schemaFieldRefreshed() {\n if (this._schemaRefreshPending || !this.$props.onSchemaRefreshed) return;\n this._schemaRefreshPending = true;\n const epoch = this._schemaRefreshEpoch;\n const locale = this.app.meta.locale.current;\n const { identity, scene } = this.schemaRefresh;\n void nextTick(() => {\n this._schemaRefreshPending = false;\n if (\n !this._schemaRefreshDisposed &&\n epoch === this._schemaRefreshEpoch &&\n locale === this.app.meta.locale.current &&\n identity === this.schemaRefresh.identity &&\n scene === this.schemaRefresh.scene &&\n this.schemaRefresh.contract.ready\n ) {\n this.$props.onSchemaRefreshed?.(this.form.state.values);\n }\n });\n }\n\n public reset(values?: TFormData, opts?: { keepDefaultValues?: boolean }): TFormData {\n ++this._schemaRefreshEpoch;\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 hasErrors(node: IResolvedFormLayoutNode | IResolvedFormLayoutTab) {\n return this.getErrorFieldCount(node) > 0;\n }\n\n public getErrorFieldCount(node: IResolvedFormLayoutNode | IResolvedFormLayoutTab) {\n return this._getFormLayoutErrorFieldCount(node);\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('getValue(string, dyn):dyn', (name, defaultValue) => {\n return this.form.getFieldValue(name) ?? defaultValue;\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 getFormScope(scopeExtra?: {}): IFormScope {\n return objectAssignReactive({}, this.$props.formScope, {\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 getFormJsxRenderContext(\n celScope: IFormScope,\n ): IJsxRenderContextForm<TFormData, TSubmitMeta> {\n return {\n app: this.app,\n ctx: this.ctx,\n $scene: 'form',\n $host: this,\n $celScope: celScope,\n $jsx: this.zovaJsx,\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 // readonly\n const readonlyTemp = props.readonly;\n if (isNil(readonlyTemp) && this.formMeta?.formMode === 'view') {\n props.readonly = true;\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 _getFormLayoutErrorFieldCount(node: IResolvedFormLayoutNode | IResolvedFormLayoutTab) {\n if (node.type === 'field') {\n return this.formState.fieldMeta[node.name]?.errors?.length ? 1 : 0;\n }\n if (node.type === 'block') return 0;\n return node.children.reduce((count, child) => {\n return count + this._getFormLayoutErrorFieldCount(child);\n }, 0);\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 } from '@tanstack/vue-form';\nimport { useSelector } from '@tanstack/vue-store';\nimport { markRaw } from 'vue';\nimport z from 'zod';\nimport { BeanControllerBase, 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 { schemaRefreshFingerprint } from '../../lib/schemaRefresh.js';\nimport { TypeFormField } from '../../types/form.js';\nimport {\n constFieldBindingSlot,\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 private _initialized = false;\n private _mounted = false;\n private _disposed = false;\n private _readyNotified = false;\n private _remount = false;\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._remount = this.$$form.hasSchemaRefresh(this.name);\n this._formField = this._createField();\n // propsBucket\n this.propsBucket = this.$computed(() => {\n return this._getPropsBucket();\n });\n // defaultValue\n // this._handleDefaultValue();\n this.$controllerMounted(() => {\n this._mounted = true;\n this._refreshField();\n });\n this.$watch(\n () => [this.$$form.schemaRefresh, this._getRefreshConfiguration()],\n () => this._refreshField(),\n { flush: 'post' },\n );\n // behaviors\n await this.$$beanBehaviorsHolder.initialize({\n behaviorTag: undefined as any,\n behaviors: () => {\n return this._getFieldBehaviors();\n },\n });\n // onEffect\n if (process.env.CLIENT && this.$props.onEffect) {\n this.$watch(\n () => this.$$form.getFieldValue(this.name),\n (newValue, oldValue) => {\n if (newValue === oldValue) return;\n this.$props.onEffect?.(newValue);\n },\n );\n }\n this._initialized = true;\n this._refreshField();\n }\n\n protected __dispose__() {\n this._disposed = true;\n }\n\n private _getRefreshConfiguration() {\n const props = this.$props;\n return schemaRefreshFingerprint([\n props.name,\n props.render,\n props.options,\n props.readonly,\n props.required,\n props.sys,\n props.validators,\n props.behaviors,\n !!props.onEffect,\n !!props.slotDefault,\n props[constFieldBindingSlot] === true,\n ]);\n }\n\n private _refreshField() {\n if (\n !this._initialized ||\n this._disposed ||\n (process.env.CLIENT && this._remount && !this._mounted) ||\n !this.$$form.schemaRefresh.contract.ready\n ) {\n return;\n }\n const props = this.$props;\n // Only explicitly renderer-owned binding slots qualify; custom slots remain opaque.\n const inputBindingSlot =\n props[constFieldProps] === true && props[constFieldBindingSlot] === true;\n const eligible =\n !props.sys &&\n !props.behaviors &&\n !props.onEffect &&\n (!props.slotDefault || inputBindingSlot) &&\n Object.values(props.validators ?? {}).every(value => typeof value === 'boolean');\n const refresh = this.$$form.consumeSchemaRefresh(\n this.name,\n this._getRefreshConfiguration(),\n eligible,\n );\n if (refresh.changed) {\n const value = this.form.getFieldValue(this.name);\n this.field.api.update(this._getFormFieldOptions() as any);\n this.form.resetField(this.name);\n if (refresh.preserve) {\n this.form.setFieldValue(this.name, value, {\n dontUpdateMeta: true,\n dontRunListeners: true,\n dontValidate: true,\n });\n this.field.api.validateSync('change', {});\n }\n } else if (this._remount && !this._readyNotified) {\n this.field.api.update(this._getFormFieldOptions() as any);\n }\n if (refresh.changed || !this._readyNotified) {\n this._readyNotified = true;\n this.$props.onFieldStateReady?.(this);\n }\n if (refresh.changed) this.$$form.schemaFieldRefreshed();\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 // A remount must not seed over a live null/undefined before refresh eligibility is known.\n if (this._remount) delete options.defaultValue;\n const field = markRaw(useField(options as any)) as any;\n const fieldState = useSelector(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 _renderFromBlocks() {\n const blocks = this.$props.blocks;\n if (!blocks || blocks.length === 0) {\n return this._renderSchema();\n }\n const celScope = this.getFormScope();\n const jsxRenderContext = this.getFormJsxRenderContext(celScope);\n const domBlocks: VNode[] = [];\n blocks.forEach((block, index) => {\n const options = Object.assign({ key: index }, block.options);\n const domBlock = this.zovaJsx.render(block.render!, options, celScope, jsxRenderContext);\n if (!domBlock) return;\n if (Array.isArray(domBlock)) {\n domBlocks.push(...domBlock);\n } else {\n domBlocks.push(domBlock);\n }\n });\n return domBlocks;\n }\n\n private _renderBodyInner() {\n const FormTag = this.$props.formTag;\n return this.$slotDefault ? (\n this.$slotDefault(this)\n ) : (\n <>\n {this.$props.blocks ? this._renderFromBlocks() : 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 (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 { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerForm } from '../../component/form/controller.jsx';\nimport { RenderForm } from '../../component/form/render.jsx';\nexport const ZForm = defineComponent(_props => {\n useController(ControllerForm, RenderForm, undefined);\n return () => {};\n}, prepareComponentOptions());","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 { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerFormField } from '../../component/formField/controller.jsx';\nimport { RenderFormField } from '../../component/formField/render.jsx';\nexport const ZFormField = defineComponent(_props => {\n useController(ControllerFormField, RenderFormField, undefined);\n return () => {};\n}, prepareComponentOptions(ControllerFormField.$componentOptions));","import { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerFormFieldBlank } from '../../component/formFieldBlank/controller.jsx';\nexport const ZFormFieldBlank = defineComponent(_props => {\n useController(ControllerFormFieldBlank, undefined, undefined);\n return () => {};\n}, prepareComponentOptions(ControllerFormFieldBlank.$componentOptions));","import { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerFormFieldPreset } from '../../component/formFieldPreset/controller.jsx';\nexport const ZFormFieldPreset = defineComponent(_props => {\n useController(ControllerFormFieldPreset, undefined, undefined);\n return () => {};\n}, prepareComponentOptions(ControllerFormFieldPreset.$componentOptions));","export const config = _sys => {\n return {\n formFieldLayout: {\n bordered: true\n }\n };\n};","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\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';\nimport 'zova';\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';\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';\n/** components: end */\n/** render: begin */\nexport * from '../component/form/render.jsx';\nexport * from '../component/formField/render.jsx';\nimport 'zova';\n/** render: end */\n/** render: begin */\nimport { RenderForm } from '../component/form/render.jsx';\nimport { RenderFormField } from '../component/formField/render.jsx';\nimport 'zova';\n/** render: end */\n/** config: begin */\nexport * from '../config/config.js';\n/** config: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleAForm = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-form\"\n}), _dec(_class = _dec2(_class = class ScopeModuleAForm extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */","import { useForm } from '@tanstack/vue-form';\nimport { markRaw } from 'vue';\nimport { BeanControllerPageBase } from 'zova';\nexport class BeanControllerPageFormBase extends BeanControllerPageBase {\n constructor(...args) {\n super(...args);\n this.form = void 0;\n this.formState = void 0;\n }\n async submit(_submitMeta) {\n throw new Error('should implement submit');\n }\n reset(_values, _opts) {\n throw new Error('should implement reset');\n }\n $useForm(opts) {\n return this.ctx.util.instanceScope(() => {\n return markRaw(useForm(opts));\n });\n }\n}","export function formMetaFromFormScene(formScene) {\n if (formScene === 'view') return {\n formScene,\n formMode: 'view',\n editMode: undefined\n };\n if (formScene === 'create') return {\n formScene,\n formMode: 'edit',\n editMode: 'create'\n };\n if (formScene === 'edit') return {\n formScene,\n formMode: 'edit',\n editMode: 'update'\n };\n throw new Error('invalid parameters');\n}\nexport function formSceneFromFormMeta(formMeta) {\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}","export function resolveFormLayout(layout, properties) {\n const visibleProperties = properties?.filter(item => item.rest?.visible !== false) ?? [];\n const propertyNames = new Set(visibleProperties.map(item => item.key).filter(Boolean));\n const propertyAliases = new Map();\n for (const property of visibleProperties) {\n if (!property.key) continue;\n const schemaKeys = [property.schemaKey, ...(property.schemaKeys ?? [])];\n for (const schemaKey of schemaKeys) {\n if (!schemaKey || schemaKey === property.key) continue;\n const aliases = propertyAliases.get(schemaKey) ?? new Set();\n aliases.add(property.key);\n propertyAliases.set(schemaKey, aliases);\n }\n }\n const fieldNames = new Set();\n const nodeIds = new Set();\n const diagnostics = [];\n const fieldTabPaths = {};\n const children = layout.children.map((node, index) => resolveNode(node, [index], [], propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);\n return {\n children,\n fieldTabPaths,\n diagnostics\n };\n}\nfunction resolveNode(node, indexPath, tabPath, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths) {\n if (node.type === 'field') {\n return resolveField(node, tabPath, propertyNames, propertyAliases, fieldNames, diagnostics, fieldTabPaths);\n }\n if (node.type === 'block') {\n return node;\n }\n if (node.type === 'tabs') {\n return resolveTabs(node, indexPath, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths);\n }\n const id = resolveId(node, indexPath);\n if (!registerId(id, nodeIds, diagnostics)) return;\n if (node.type === 'section') {\n const children = node.children.map(item => resolveLeaf(item, tabPath, propertyNames, propertyAliases, fieldNames, diagnostics, fieldTabPaths)).filter(Boolean);\n return children.length ? {\n ...node,\n id,\n children\n } : undefined;\n }\n const children = node.children.map((item, index) => resolveNode(item, [...indexPath, index], tabPath, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);\n return children.length ? {\n ...node,\n id,\n children\n } : undefined;\n}\nfunction resolveLeaf(node, tabPath, propertyNames, propertyAliases, fieldNames, diagnostics, fieldTabPaths) {\n if (node.type === 'block') return node;\n return resolveField(node, tabPath, propertyNames, propertyAliases, fieldNames, diagnostics, fieldTabPaths);\n}\nfunction resolveTabs(node, indexPath, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths) {\n const id = resolveId(node, indexPath);\n if (!registerId(id, nodeIds, diagnostics)) return;\n const children = node.children.map((tab, index) => resolveTab(tab, [...indexPath, index], id, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);\n return children.length ? {\n ...node,\n id,\n children\n } : undefined;\n}\nfunction resolveTab(node, indexPath, tabsId, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths) {\n const id = resolveId(node, indexPath);\n if (!registerId(id, nodeIds, diagnostics)) return;\n const tabPath = [{\n tabsId,\n tabId: id\n }];\n const children = node.children.map((item, index) => resolveNode(item, [...indexPath, index], tabPath, propertyNames, propertyAliases, fieldNames, nodeIds, diagnostics, fieldTabPaths)).filter(Boolean);\n return children.length ? {\n ...node,\n id,\n children\n } : undefined;\n}\nfunction resolveField(node, tabPath, propertyNames, propertyAliases, fieldNames, diagnostics, fieldTabPaths) {\n const name = resolveFieldName(node.name, propertyNames, propertyAliases);\n if (!name) {\n diagnostics.push({\n type: 'unknownField',\n value: node.name\n });\n return;\n }\n if (fieldNames.has(name)) {\n diagnostics.push({\n type: 'duplicateField',\n value: node.name\n });\n return;\n }\n fieldNames.add(name);\n fieldTabPaths[name] = tabPath;\n return name === node.name ? node : {\n ...node,\n name\n };\n}\nfunction resolveFieldName(name, propertyNames, propertyAliases) {\n if (propertyNames.has(name)) return name;\n const aliases = propertyAliases.get(name);\n if (aliases?.size === 1) return aliases.values().next().value;\n const fieldSourcePrefix = `${name}.`;\n const fieldSources = [...propertyNames].filter(item => item.startsWith(fieldSourcePrefix));\n return fieldSources.length === 1 ? fieldSources[0] : undefined;\n}\nfunction resolveId(node, indexPath) {\n return node.id || `${node.type}-${indexPath.join('-')}`;\n}\nfunction registerId(id, ids, diagnostics) {\n if (!ids.has(id)) {\n ids.add(id);\n return true;\n }\n diagnostics.push({\n type: 'duplicateId',\n value: id\n });\n return false;\n}"],"mappings":";;;;;;;;;;AAGA,IAAa,yBAAb,cAA4C,mBAAmB;CAC7D,YAAY,GAAG,MAAM;EACnB,MAAM,GAAG,IAAI;EACb,KAAK,OAAO,KAAK;EACjB,KAAK,YAAY,KAAK;CACxB;CACA,MAAM,OAAO,aAAa;EACxB,MAAM,IAAI,MAAM,yBAAyB;CAC3C;CACA,MAAM,SAAS,OAAO;EACpB,MAAM,IAAI,MAAM,wBAAwB;CAC1C;CACA,SAAS,MAAM;EACb,OAAO,KAAK,IAAI,KAAK,oBAAoB;GACvC,OAAO,QAAQ,QAAQ,IAAI,CAAC;EAC9B,CAAC;CACH;AACF;;;ACpBA,IAAM,6BAAa,IAAI,IAAI;CAAC;CAAc;CAAqB;CAAS;CAAe;AAAkB,CAAC;AAC1G,IAAM,+BAAe,IAAI,IAAI;CAAC;CAAS;CAAS;CAAS;AAAa,CAAC;AACvE,IAAM,gCAAgB,IAAI,IAAI;CAAC;CAAS;CAAmB;CAAwB;CAAoB;CAAyB;CAAY;CAAiB;CAAO;CAAM;CAAQ;CAAQ;AAAe,CAAC;AAC1M,IAAM,6BAAa,IAAI,IAAI;CAAC;CAAS;CAAQ;CAAa;CAAe;AAAQ,CAAC;AAClF,IAAM,2BAAW,IAAI,IAAI;CAAC;CAAe;CAAe;CAAW;CAAwB;CAAY;CAAY;CAAS;CAAS;CAAS;CAAS;CAAS;CAAiB;CAAiB;CAAU;CAAW;CAAS;CAAS;CAAe;CAAU;AAAa,CAAC;AAChR,IAAM,8BAAc,IAAI,IAAI;CAAC;CAAS;CAAe;CAAY;CAAY;CAAQ;CAAQ;CAAW;CAAS;CAAS;CAAgB;CAAc;CAAc;CAAmB;CAAU;CAAa;AAAW,CAAC;AAC5N,IAAM,6BAAa,IAAI,IAAI;CAAC;CAAa;CAAa;AAAa,CAAC;AACpE,IAAM,kCAAkB,IAAI,QAAQ;AACpC,IAAM,4BAAY,IAAI,QAAQ;AAC9B,IAAM,4BAAY,IAAI,IAAI;AAC1B,IAAI,eAAe;AACnB,SAAS,SAAS,OAAO;CACvB,IAAI,KAAK,UAAU,IAAI,KAAK;CAC5B,IAAI,OAAO,KAAA,GAAW,UAAU,IAAI,OAAO,KAAK,EAAE,YAAY;CAC9D,OAAO;AACT;;AAGA,SAAgB,yBAAyB,OAAO;CAC9C,SAAS,OAAO,MAAM,4BAAY,IAAI,IAAI,GAAG;EAC3C,IAAI,OAAO,SAAS,UAAU;GAC5B,IAAI,KAAK,UAAU,IAAI,IAAI;GAC3B,IAAI,OAAO,KAAA,GAAW,UAAU,IAAI,MAAM,KAAK,EAAE,YAAY;GAC7D,OAAO,CAAC,UAAU,EAAE;EACtB;EACA,IAAI,OAAO,SAAS,YAAY,OAAO,CAAC,UAAU,SAAS,IAAI,CAAC;EAChE,IAAI,OAAO,SAAS,UAAU,OAAO,CAAC,UAAU,OAAO,IAAI,CAAC;EAC5D,IAAI,OAAO,SAAS,YAAY,CAAC,OAAO,SAAS,IAAI,GAAG,OAAO,CAAC,UAAU,OAAO,IAAI,CAAC;EACtF,IAAI,SAAS,QAAQ,OAAO,SAAS,UAAU,OAAO,KAAK,IAAI;EAC/D,IAAI,UAAU,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,SAAS,IAAI,CAAC;EACxD,IAAI,CAAC,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,OAAO,CAAC,UAAU,SAAS,IAAI,CAAC;EAC7E,MAAM,OAAO,IAAI,IAAI,SAAS,CAAC,CAAC,IAAI,IAAI;EACxC,MAAM,cAAc,OAAO,0BAA0B,IAAI;EACzD,OAAO;GAAC,MAAM,QAAQ,IAAI,IAAI,UAAU;GAAU,OAAO,KAAK,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,QAAO;IAC3F,MAAM,aAAa,YAAY;IAC/B,OAAO;KAAC;KAAK,WAAW;KAAY,WAAW,aAAa,OAAO,WAAW,OAAO,IAAI,IAAI;MAAC;MAAY,WAAW,OAAO,SAAS,WAAW,GAAG;MAAG,WAAW,OAAO,SAAS,WAAW,GAAG;KAAC;IAAC;GACnM,CAAC;GAAG,OAAO,sBAAsB,IAAI,CAAC,CAAC,KAAI,QAAO,CAAC,OAAO,GAAG,GAAG,OAAO,OAAO,yBAAyB,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC;EAAC;CACnI;CACA,OAAO,KAAK,UAAU,OAAO,KAAK,CAAC;AACrC;AACA,IAAM,wBAAN,cAAoC,MAAM,CAAC;AAC3C,SAAS,SAAS,OAAO;CACvB,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG,OAAO;CACxE,MAAM,YAAY,OAAO,eAAe,KAAK;CAC7C,OAAO,cAAc,QAAQ,cAAc,OAAO;AACpD;AAGA,SAAS,SAAS,OAAO,4BAAY,IAAI,IAAI,GAAG;CAC9C,IAAI,UAAU,QAAQ,UAAU,KAAA,KAAa,OAAO,UAAU,YAAY,OAAO,UAAU,WACzF,OAAO;CAET,IAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,GAAG,OAAO;CAChE,IAAI,OAAO,UAAU,YAAY;EAC/B,MAAM,SAAS,EACb,gBAAgB,SAAS,KAAK,EAChC;EACA,gBAAgB,IAAI,MAAM;EAC1B,OAAO;CACT;CACA,IAAI,OAAO,UAAU,YAAY,UAAU,IAAI,KAAK,GAAG,MAAM,IAAI,MAAM,iBAAiB;CACxF,IAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,CAAC,SAAS,KAAK,GAAG,MAAM,IAAI,MAAM,iBAAiB;CAChF,IAAI,OAAO,sBAAsB,KAAK,CAAC,CAAC,QAAQ,MAAM,IAAI,MAAM,iBAAiB;CACjF,MAAM,OAAO,IAAI,IAAI,SAAS,CAAC,CAAC,IAAI,KAAK;CACzC,MAAM,cAAc,OAAO,0BAA0B,KAAK;CAC1D,IAAI,MAAM,QAAQ,KAAK,GAAG;EACxB,IAAI,OAAO,KAAK,WAAW,CAAC,CAAC,WAAW,MAAM,SAAS,GAAG,MAAM,IAAI,MAAM,cAAc;EACxF,OAAO,MAAM,KAAK,EAChB,QAAQ,MAAM,OAChB,IAAI,GAAG,UAAU;GACf,MAAM,aAAa,YAAY;GAC/B,IAAI,CAAC,cAAc,CAAC,WAAW,cAAc,EAAE,WAAW,aAAa,MAAM,IAAI,MAAM,cAAc;GACrG,OAAO,SAAS,WAAW,OAAO,IAAI;EACxC,CAAC;CACH;CACA,MAAM,SAAS,OAAO,OAAO,IAAI;CACjC,KAAK,MAAM,CAAC,KAAK,eAAe,OAAO,QAAQ,WAAW,GAAG;EAC3D,IAAI,CAAC,WAAW,cAAc,EAAE,WAAW,aAAa,MAAM,IAAI,MAAM,iBAAiB;EACzF,OAAO,OAAO,SAAS,WAAW,OAAO,IAAI;CAC/C;CACA,OAAO;AACT;AAGA,SAAS,KAAK,OAAO;CACnB,IAAI,UAAU,KAAA,GAAW,OAAO,CAAC,WAAW;CAC5C,IAAI,UAAU,MAAM,OAAO,CAAC,MAAM;CAClC,IAAI,OAAO,UAAU,UAAU,OAAO,CAAC,UAAU,OAAO,GAAG,OAAO,EAAE,IAAI,OAAO,KAAK;CACpF,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW,OAAO,CAAC,OAAO,OAAO,KAAK;CACxF,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,CAAC,SAAS,MAAM,IAAI,IAAI,CAAC;CAC1D,IAAI,SAAS,KAAK,GAChB,OAAO,CAAC,UAAU,OAAO,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,QAAO,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC;CAEjF,MAAM,IAAI,MAAM,iBAAiB;AACnC;AACA,SAAS,eAAe,OAAO;CAC7B,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU,OAAO;CAChD,IAAI,gBAAgB,IAAI,KAAK,GAAG,OAAO;CACvC,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,cAAc,IAAI,SAAS,KAAK,KAAK,OAAO,OAAO,KAAK,CAAC,CAAC,KAAK,cAAc;AACxH;AACA,SAAS,eAAe,OAAO;CAC7B,IAAI,OAAO,UAAU,UAAU,OAAO,MAAM,WAAW,QAAQ;CAC/D,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,KAAK,cAAc;CAC1D,IAAI,CAAC,SAAS,KAAK,GAAG,OAAO;CAC7B,OAAO,OAAO,QAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,WAAW,QAAQ,aAAa,CAAC;EAAC;EAAsB;EAAkB;EAAsB;CAAqB,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,IAAI,iFAAiF,KAAK,GAAG,MAAM,eAAe,IAAI,CAAC;AAC9S;AACA,IAAM,wBAAwB;CAAC;CAAU;CAAY;CAAM;CAAa;CAAgB;AAAO;AAC/F,IAAM,eAAe;CACnB,kCAAkC;CAClC,kCAAkC;CAClC,6BAA6B,CAAC,QAAQ;CACtC,6BAA6B,CAAC,QAAQ;CACtC,8BAA8B,CAAC,YAAY;CAC3C,8BAA8B,CAAC,YAAY;CAC3C,mCAAmC,CAAC,SAAS;CAC7C,mCAAmC,CAAC,SAAS;AAC/C;AACA,SAAS,eAAe,OAAO;CAC7B,IAAI,CAAC,SAAS,KAAK,KAAK,OAAO,MAAM,SAAS,UAAU,OAAO;CAQ/D,MAAM,UAAU;EANd,MAAM;GAAC;GAAQ;GAAM;EAAU;EAC/B,KAAK;GAAC;GAAQ;GAAM;GAAS;EAAU;EACvC,OAAO;GAAC;GAAQ;GAAM;GAAS;GAAe;EAAU;EACxD,SAAS;GAAC;GAAQ;GAAM;GAAS;GAAe;GAAU;GAAW;EAAU;EAC/E,OAAO;GAAC;GAAQ;GAAQ;EAAM;CAEhB,EAAK,MAAM;CAC3B,IAAI,CAAC,WAAW,OAAO,KAAK,KAAK,CAAC,CAAC,MAAK,QAAO,CAAC,QAAQ,SAAS,GAAG,CAAC,GAAG,OAAO;CAC/E,IAAI,MAAM,UAAU,KAAA,KAAa,OAAO,MAAM,UAAU,UAAU,OAAO;CACzE,IAAI,MAAM,SAAS,SAAS,OAAO,SAAS,MAAM,IAAI;CACtD,OAAO,MAAM,QAAQ,MAAM,QAAQ,KAAK,MAAM,SAAS,MAAM,cAAc;AAC7E;AACA,SAAS,WAAW,OAAO;CACzB,OAAO,SAAS,KAAK,KAAK,OAAO,KAAK,KAAK,CAAC,CAAC,OAAM,QAAO,QAAQ,UAAU,KAAK,MAAM,QAAQ,MAAM,QAAQ,KAAK,MAAM,SAAS,MAAM,cAAc;AACvJ;AACA,SAAS,YAAY,OAAO;CAC1B,OAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,OAAM,WAAU;EACnD,IAAI,CAAC,SAAS,MAAM,KAAK,OAAO,OAAO,WAAW,UAAU,OAAO;EACnE,IAAI,OAAO,KAAK,MAAM,CAAC,CAAC,MAAK,QAAO,CAAC;GAAC;GAAY;GAAQ;GAAU;EAAS,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,OAAO;EACtG,IAAI,OAAO,aAAa,KAAA,KAAa,OAAO,aAAa,sBAAsB,OAAO;EACtF,OAAO,OAAO,YAAY,KAAA,KAAa,SAAS,OAAO,OAAO,KAAK,OAAO,KAAK,OAAO,OAAO,CAAC,CAAC,OAAM,QAAO;GAAC;GAAc;GAAS;EAAO,CAAC,CAAC,SAAS,GAAG,CAAC;CAC5J,CAAC;AACH;AACA,SAAS,WAAW,OAAO;CACzB,OAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,OAAM,UAAS;EAClD,IAAI,CAAC,SAAS,KAAK,KAAK,OAAO,MAAM,WAAW,UAAU,OAAO;EACjE,IAAI,OAAO,KAAK,KAAK,CAAC,CAAC,MAAK,QAAO,CAAC;GAAC;GAAY;GAAU;EAAS,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,OAAO;EAC7F,IAAI,MAAM,aAAa,KAAA,KAAa,MAAM,aAAa,kBAAkB,OAAO;EAChF,MAAM,UAAU,aAAa,MAAM;EACnC,IAAI,CAAC,SAAS,OAAO;EACrB,IAAI,MAAM,YAAY,KAAA,GAAW,OAAO;EACxC,IAAI,CAAC,SAAS,MAAM,OAAO,GAAG,OAAO;EACrC,OAAO,OAAO,QAAQ,MAAM,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,UAAU;GAC1D,IAAI,CAAC,QAAQ,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,GAAG,GAAG,OAAO;GACxE,IAAI,QAAQ,UAAU,OAAO,WAAW,IAAI;GAC5C,IAAI,QAAQ,cAAc,OAAO,WAAW,IAAI;GAChD,IAAI,QAAQ,WAAW,OAAO,YAAY,IAAI;GAC9C,OAAO;EACT,CAAC;CACH,CAAC;AACH;AAIA,SAAS,oBAAoB,OAAO;CAClC,IAAI,CAAC,SAAS,KAAK,GAAG,OAAO;CAC7B,MAAM,SAAS,EACb,GAAG,MACL;CACA,IAAI;EAAC;EAAO;EAAS;CAAS,CAAC,CAAC,SAAS,OAAO,MAAM,IAAI,CAAC,KAAK,OAAO,MAAM,UAAU,UAAU,OAAO,QAAQ;CAChH,IAAI,MAAM,QAAQ,MAAM,QAAQ,GAAG,OAAO,WAAW,MAAM,SAAS,IAAI,mBAAmB;CAC3F,OAAO;AACT;AACA,SAAS,gBAAgB,OAAO;CAC9B,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG,OAAO;CAClC,OAAO,MAAM,KAAI,UAAS;EACxB,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,MAAM,OAAO,GAAG,OAAO;EACzD,MAAM,UAAU,EACd,GAAG,MAAM,QACX;EACA,IAAI,OAAO,OAAO,SAAS,QAAQ,GAAG,QAAQ,SAAS,gBAAgB,QAAQ,MAAM;EACrF,IAAI,CAAC,8BAA8B,4BAA4B,CAAC,CAAC,SAAS,MAAM,MAAM,KAAK,WAAW,QAAQ,UAAU,GAEtH,QAAQ,aAAa,EACnB,UAFa,QAAQ,WAEJ,SAAS,IAAI,mBAAmB,EACnD;EAEF,OAAO;GACL,GAAG;GACH;EACF;CACF,CAAC;AACH;AACA,SAAS,sBAAsB,OAAO;CACpC,IAAI,CAAC,SAAS,KAAK,GAAG,OAAO;CAC7B,MAAM,SAAS,EACb,GAAG,MACL;CACA,KAAK,MAAM,CAAC,KAAK,SAAS,OAAO,QAAQ,KAAK,GAC5C,IAAI,QAAQ,YAAY,WAAW,IAAI,GAAG,OAAO,OAAO,gBAAgB,IAAI;MAAO,IAAI,WAAW,IAAI,GAAG,GAAG,OAAO,OAAO,sBAAsB,IAAI;CAEtJ,OAAO;AACT;AACA,SAAS,SAAS,OAAO;CACvB,IAAI,UAAU,KAAA,KAAa,UAAU,MAAM,OAAO;CAClD,IAAI,CAAC,SAAS,KAAK,KAAK,eAAe,KAAK,GAAG,OAAO;CACtD,OAAO,OAAO,QAAQ,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,UAAU;EAClD,IAAI,WAAW,IAAI,GAAG,GAAG,OAAO,SAAS,IAAI;EAC7C,IAAI,CAAC,SAAS,IAAI,GAAG,GAAG,OAAO;EAC/B,IAAI,SAAS,KAAA,KAAa,SAAS,MAAM,OAAO;EAChD,IAAI;GAAC;GAAW;GAAwB;GAAY;GAAY;GAAS;GAAiB;EAAe,CAAC,CAAC,SAAS,GAAG,GACrH,OAAO,OAAO,SAAS;EAEzB,IAAI,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,GAAG,GAAG,OAAO,OAAO,SAAS;EAC7D,IAAI;GAAC;GAAe;GAAe;GAAS;GAAS;GAAe;EAAO,CAAC,CAAC,SAAS,GAAG,GAAG,OAAO,OAAO,SAAS;EACnH,IAAI,QAAQ,SAAS,OAAO,SAAS,IAAI;EACzC,IAAI,QAAQ,UAAU,OAAO,WAAW,IAAI;EAC5C,IAAI,QAAQ,aAAa,QAAQ,eAAe,OAAO,SAAS,IAAI,KAAK,OAAO,KAAK,IAAI,CAAC,CAAC,OAAM,SAAQ,YAAY,IAAI,IAAI,CAAC;EAC9H,IAAI,QAAQ,YAAY,OAAO,SAAS,UAAU,OAAO;EACzD,IAAI,CAAC,SAAS,IAAI,KAAK,OAAO,KAAK,SAAS,UAAU,OAAO;EAC7D,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,MAAK,SAAQ,CAAC;GAAC;GAAY;GAAQ;GAAS;GAAO;EAAU,CAAC,CAAC,SAAS,IAAI,CAAC,GACjG,OAAO;EAET,OAAO,KAAK,UAAU,KAAA,KAAa,SAAS,KAAK,KAAK,KAAK,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,OAAM,SAAQ,YAAY,IAAI,IAAI,CAAC;CACxH,CAAC;AACH;AACA,SAAS,SAAS,OAAO;CACvB,OAAO,OAAO,UAAU,YAAY,MAAM,MAAM,GAAG,CAAC,CAAC,OAAM,SAAQ,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC;AACpG;;AAGA,SAAgB,4BAA4B,QAAQ,YAAY,eAAe;CAC7E,IAAI,WAAW,KAAA,KAAa,WAAW,QAAQ,eAAe,KAAA,GAAW,OAAO;EAC9E,OAAO;EACP,QAAQ,CAAC;CACX;CACA,MAAM,iCAAiB,IAAI,IAAI;CAC/B,IAAI;EACF,MAAM,OAAO,SAAS,MAAM;EAC5B,MAAM,YAAY,SAAS,UAAU;EACrC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,QAAQ,SAAS,GAAG,MAAM,IAAI,MAAM,oBAAoB;EACtF,MAAM,0BAAU,IAAI,IAAI;EACxB,IAAI,WAAW;EACf,MAAM,gBAAgB,CAAC;EACvB,MAAM,mBAAmB,CAAC;EAC1B,MAAM,8BAAc,IAAI,IAAI;EAC5B,KAAK,MAAM,YAAY,WAAW;GAChC,IAAI,CAAC,SAAS,QAAQ,KAAK,CAAC,SAAS,SAAS,IAAI,GAAG;GACrD,MAAM,OAAO,SAAS;GACtB,MAAM,OAAO,SAAS,KAAK,IAAI,IAAI,KAAK,OAAO,KAAA;GAC/C,MAAM,SAAS,KAAK,UAAU,MAAM;GACpC,MAAM,aAAa,SAAS,MAAM,IAAI,OAAO,OAAO;GACpD,IAAI,CAAC,CAAC,kCAAkC,gCAAgC,CAAC,CAAC,SAAS,OAAO,UAAU,CAAC,GACnG;GAEF,KAAK,MAAM,QAAQ;IAAC,SAAS;IAAK,SAAS;IAAW,GAAI,MAAM,QAAQ,SAAS,UAAU,IAAI,SAAS,aAAa,CAAC;GAAE,GACtH,IAAI,OAAO,SAAS,UAAU,YAAY,IAAI,IAAI;EAEtD;EAGA,MAAM,mCAAmB,IAAI,IAAI;EACjC,KAAK,MAAM,YAAY,WAAW;GAChC,IAAI,CAAC,SAAS,QAAQ,KAAK,OAAO,SAAS,QAAQ,YAAY,CAAC,SAAS,IAAI,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,SAAS,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,SAAS,IAAI,KAAK,SAAS,KAAK,YAAY,SAAS,EAAE,SAAS,SAAS,WAAW,MAAM,QAAQ,SAAS,IAAI,KAAK,SAAS,KAAK,WAAW,KAAK,SAAS,KAAK,SAAS,OAAO,KAAK,SAAS,KAAK,SAAS,MAAM,MAAM,CAAC,SAAS,SAAS,KAAK,KAAK,OAAO,SAAS,MAAM,SAAS,UACva;GAEF,iBAAiB,IAAI,SAAS,GAAG;EACnC;EACA,KAAK,MAAM,QAAQ,kBAAkB,YAAY,IAAI,IAAI;EACzD,IAAI,gBAAgB;EACpB,SAAS,cAAc,MAAM;GAC3B,OAAO,KAAK,OAAO,WAAW,YAAY,IAAI,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAK,SAAQ,WAAW,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,gBAAgB,YAAY,IAAI,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAK,SAAQ,WAAW,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC;EAChU;EACA,SAAS,OAAO,KAAK;GACnB,IAAI,QAAQ,IAAI,GAAG,GAAG,OAAO,QAAQ,IAAI,GAAG;GAC5C,IAAI,WAAW,cAAc,GAAG;GAChC,IAAI,aAAa,KAAA,KAAa,IAAI,WAAW,IAAI,GAAG;IAClD,WAAW;IACX,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG;KAC1C,MAAM,MAAM,mBAAmB,IAAI,CAAC,CAAC,QAAQ,OAAO,GAAG,CAAC,CAAC,QAAQ,OAAO,GAAG;KAC3E,WAAW,SAAS,QAAQ,KAAK,OAAO,OAAO,UAAU,GAAG,IAAI,SAAS,OAAO,KAAA;IAClF;GACF;GACA,IAAI,aAAa,KAAA,GAAW,MAAM,IAAI,sBAAsB,sBAAsB;GAClF,eAAe,IAAI,KAAK,QAAQ;GAChC,MAAM,WAAW,SAAS,QAAQ;GAClC,QAAQ,IAAI,KAAK,QAAQ;GACzB,OAAO;EACT;EACA,SAAS,QAAQ,MAAM,YAAY,aAAa,uBAAO,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,UAAU,OAAO;GAC5F,IAAI,OAAO,SAAS,WAAW,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC;GAC3D,IAAI,CAAC,SAAS,IAAI,GAAG,MAAM,IAAI,MAAM,qBAAqB;GAC1D,IAAI,WAAW,OAAO,OAAO,MAAM,MAAM,GAAG;IAC1C,MAAM,OAAO,SAAS,KAAK,IAAI;IAC/B,IAAI,cAAc,IAAI,GAChB;SAAA,KAAK,OAAO,UAAU,kBAAkB;IAAA,OAE5C,aAAa;IAGf,IAAI,CAAC,cAAc,IAAI,MAAM,KAAK,WAAW,KAAK,KAAK,OAAO,YAAY;KAAC;KAAc;KAAqB;KAAS;KAAe;IAAsB,CAAC,CAAC,MAAK,QAAO,OAAO,OAAO,MAAM,GAAG,CAAC,IAAI;KACpM,iBAAiB,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC;KAC7C,cAAc,KAAK,CAAC,MAAM,KAAK,sBAAsB,KAAK,IAAI,CAAC,CAAC,CAAC;IACnE;GACF;GACA,MAAM,UAAU,CAAC;GACjB,KAAK,MAAM,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG;IAC1C,MAAM,QAAQ,KAAK;IACnB,IAAI,QAAQ,UAAU,CAAC,aAAa;IACpC,IAAI;IACJ,IAAI,QAAQ,QAAQ;KAClB,IAAI,OAAO,UAAU,YAAY,KAAK,IAAI,KAAK,GAAG,MAAM,IAAI,MAAM,kBAAkB;KACpF,YAAY;MAAC;MAAa;MAAO,QAAQ,OAAO,KAAK,GAAG,YAAY,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,GAAG,OAAO;KAAC;IACrI,OAAO,IAAI,eAAe,QAAQ,WAAW,QAAQ,kBAAkB,OAAO,UAAU,UACtF,YAAY,CAAC,SAAS;SACjB,IAAI,cAAc,QAAQ,kBAAkB,SAAS,KAAK,GAC/D,YAAY,CAAC,YAAY,OAAO,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,SAAQ,CAAC,MAAM,OAAO,MAAM,UAAU,WAAW,CAAC,SAAS,IAAI,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC;SACpI,IAAI,WAAW,IAAI,GAAG,GAAG;KAC9B,IAAI,CAAC,SAAS,KAAK,GAAG,MAAM,IAAI,MAAM,oBAAoB;KAC1D,YAAY,CAAC,OAAO,OAAO,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,SAAQ,CAAC,MAAM,QAAQ,MAAM,OAAO,YAAY,aAAa,MAAM;MAAC,GAAG;MAAM;MAAK;KAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IACvJ,OAAO,IAAI,aAAa,IAAI,GAAG,KAAK,QAAQ,WAAW,MAAM,QAAQ,KAAK,GAAG;KAC3E,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG,MAAM,IAAI,MAAM,sBAAsB;KACjE,YAAY,CAAC,WAAW,MAAM,KAAK,MAAM,UAAU,QAAQ,MAAM,YAAY,aAAa,MAAM;MAAC,GAAG;MAAM;MAAK,OAAO,KAAK;KAAC,GAAG,OAAO,CAAC,CAAC;IAC1I,OAAO,IAAI,cAAc,IAAI,GAAG,GAC9B,YAAY,QAAQ,OAAO,YAAY,aAAa,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,OAAO;SAC5E,IAAI,QAAQ,gBAAgB;KACjC,IAAI,CAAC,SAAS,KAAK,GAAG,MAAM,IAAI,MAAM,sBAAsB;KAC5D,YAAY,CAAC,gBAAgB,OAAO,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAI,SAAQ,CAAC,MAAM,MAAM,QAAQ,MAAM,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,QAAQ,MAAM,OAAO,YAAY,aAAa,MAAM;MAAC,GAAG;MAAM;MAAK;KAAI,GAAG,OAAO,CAAC,CAAC,CAAC;IACjN,OAAO;KACL,IAAI,WAAW,QAAQ,UAAU,eAAe,KAAK,GAAG;MACtD,IAAI,cAAc,IAAI,GAChB;WAAA,KAAK,OAAO,UAAU,gBAAgB;MAAA,OAE1C,WAAW;KAEf;KACA,YAAY,KAAK,KAAK;IACxB;IACA,QAAQ,KAAK,CAAC,KAAK,SAAS,CAAC;GAC/B;GACA,OAAO,CAAC,UAAU,OAAO;EAC3B;EACA,MAAM,gBAAgB,KAAK,UAAU,QAAQ,MAAM,OAAO,uBAAO,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;EACrF,MAAM,aAAa,KAAK,UAAU,QAAQ,MAAM,MAAM,KAAK,CAAC;EAC5D,MAAM,SAAS,CAAC;EAChB,KAAK,MAAM,YAAY,WAAW;GAChC,IAAI,CAAC,SAAS,QAAQ,KAAK,CAAC,SAAS,SAAS,GAAG,KAAK,OAAO,OAAO,QAAQ,SAAS,GAAG,GAAG,MAAM,IAAI,MAAM,yBAAyB;GACpI,IAAI,SAAS,cAAc,KAAA,KAAa,CAAC,SAAS,SAAS,SAAS,KAAK,SAAS,eAAe,KAAA,MAAc,CAAC,MAAM,QAAQ,SAAS,UAAU,KAAK,CAAC,SAAS,WAAW,MAAM,QAAQ,IACvL,MAAM,IAAI,MAAM,qBAAqB;GAEvC,gBAAgB;GAChB,MAAM,MAAM,KAAK,UAAU,QAAQ,UAAU,OAAO,sBAAM,IAAI,IAAI,GAAG,CAAC,UAAU,SAAS,GAAG,GAAG,IAAI,CAAC;GACpG,MAAM,aAAa,KAAK,UAAU,QAAQ,UAAU,MAAM,IAAI,CAAC;GAC/D,OAAO,SAAS,OAAO;IACrB;IACA;IACA,UAAU;GACZ;EACF;EACA,KAAK,MAAM,SAAS,OAAO,OAAO,MAAM,GAAG,MAAM,aAAa;EAC9D,OAAO;GACL,OAAO;GACP;GACA;GACA;GACA,UAAU,KAAK,UAAU,CAAC,UAAU,aAAa,CAAC;GAClD,aAAa,KAAK,UAAU,CAAC,UAAU,gBAAgB,CAAC;EAC1D;CACF,SAAS,OAAO;EACd,IAAI,iBAAiB,uBAAuB,OAAO;GACjD,OAAO;GACP,QAAQ,CAAC;EACX;EAEA,MAAM,MAAM,yBAAyB,CAAC,QAAQ,CAAC,GAAG,eAAe,QAAQ,CAAC,CAAC,CAAC;EAC5E,MAAM,SAAS,CAAC;EAChB,IAAI,MAAM,QAAQ,UAAU,GAC1B,KAAK,MAAM,YAAY,YAAY;GACjC,IAAI,CAAC,SAAS,QAAQ,GAAG;GACzB,MAAM,aAAa,OAAO,yBAAyB,UAAU,KAAK;GAClE,IAAI,CAAC,cAAc,EAAE,WAAW,eAAe,CAAC,SAAS,WAAW,KAAK,GAAG;GAC5E,MAAM,WAAW,yBAAyB,QAAQ;GAClD,OAAO,WAAW,SAAS;IACzB,KAAK;IACL,YAAY;IACZ,UAAU;GACZ;EACF;EAEF,OAAO;GACL,OAAO;GACP,YAAY;GACZ,eAAe;GACf;GACA,UAAU;EACZ;CACF;AACF;;AAEA,IAAa,uBAAb,MAAkC;CAChC,cAAc;EACZ,KAAK,wBAAQ,IAAI,IAAI;CACvB;CACA,IAAI,MAAM;EACR,OAAO,KAAK,MAAM,IAAI,IAAI;CAC5B;CACA,QAAQ;EACN,KAAK,MAAM,MAAM;CACnB;CACA,MAAM,UAAU;EACd,IAAI,CAAC,SAAS,OAAO;EACrB,KAAK,MAAM,CAAC,MAAM,UAAU,KAAK,OAC/B,IAAI,MAAM,aAAa,KAAA,KAAa,CAAC,OAAO,OAAO,SAAS,QAAQ,IAAI,GAAG,KAAK,MAAM,OAAO,IAAI;CAErG;CACA,QAAQ,MAAM,SAAS;EACrB,IAAI,CAAC,QAAQ,SAAS,OAAO,OAAO;GAClC,SAAS;GACT,UAAU;EACZ;EACA,MAAM,EACJ,UACA,GAAG,UACD;EACJ,MAAM,QAAQ,SAAS,OAAO;EAC9B,MAAM,OAAO;GACX,GAAG;GACH,YAAY,SAAS;GACrB,eAAe,SAAS,iBAAiB,SAAS;GAClD,UAAU,SAAS;GACnB,aAAa,SAAS,eAAe,SAAS;GAC9C,UAAU,OAAO;GACjB,iBAAiB,OAAO;GACxB,eAAe,OAAO,aAAa;EACrC;EACA,MAAM,WAAW,KAAK,MAAM,IAAI,IAAI;EACpC,KAAK,MAAM,IAAI,MAAM,IAAI;EACzB,IAAI,CAAC,UAAU,OAAO;GACpB,SAAS;GACT,UAAU;EACZ;EACA,MAAM,UAAU;GAAC;GAAU;GAAY;GAAS;GAAiB;GAAW;GAAY;GAAiB;GAAe;GAAY;EAAe,CAAC,CAAC,MAAK,QAAO,SAAS,SAAS,KAAK,IAAI;EAE5L,OAAO;GACL;GACA,UAHe,WAAW,SAAS,WAAW,KAAK,UAAU,KAAK,aAAa,KAAA,KAAa,SAAS,aAAa,KAAK,YAAY,SAAS,UAAU,KAAK,SAAS,SAAS,UAAU,KAAK,SAAS,SAAS,kBAAkB,KAAK,iBAAiB,SAAS,WAAW,KAAK,WAAW,SAAS,YAAY,KAAK,YAAY,SAAS,iBAAiB,KAAK,iBAAiB,SAAS,eAAe,KAAK,cAAc,SAAS,aAAa,KAAK,YAAY,SAAS,oBAAoB,KAAK;EAIte;CACF;AACF;;;AChcA,IAAa,kBAAkB;AAE/B,IAAa,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsFrC,IACa0B,oBAAcC,SAD1BR,WAAW,GAACS,UAAAC,SAAA,EAAAC,QAAA,SAAA,CAAA,GAAAC,UAmBVf,SAAQ,WAAC,GAACgB,UAAAC,QAAAC,SAAA,eAAA,OAAAC,wBAAA,cAAAC,SAAAD,mBAAA,GAAAR,OAAAU,WAAAT,QAAAS,YAAAC,aAAAC,kBAnBb,MACab,uBAGHL,uBAA+C;CAAAmB,YAAA,GAAAC,MAAA;EAAA,MAAA,GAAAA,IAAA;EAAA,KAGvDC,eAAY,KAAA;EAAA,KACZC,SAAM,KAAA;EAAA,KACNC,YAAS,KAAA;EAAA,KACTC,aAAU,KAAA;EAAA,KACVC,UAAO,KAAA;EAAA,KACPC,cAAW,KAAA;EAAA,KACXC,gBAAa,KAAA;EAAA,KACLC,wBAAwBvC,QAAQ,IAAIc,qBAAqB,CAAC;EAAC,KAC3D0B,sBAAsB;EAAC,KACvBC,wBAAwB;EAAK,KAC7BC,yBAAyB;EAAKC,6BAAA,MAAA,kBAAAC,eAAA,IAAA;CAAA;CAKtC,MAAgBC,WAAW;EACzB,KAAKC,KAAKC,SAAS,UAAU,IAAI;EACjC,KAAKC,OAAO,KAAKC,YAAY;EAC7B,KAAKC,YAAYnD,YAAY,KAAKiD,KAAKG,QAAOC,UAASA,KAAK;EAC5D,KAAKpB,eAAe,KAAKqB,gBAAgB;GACvC,MAAMrB,eAAe,KAAKsB,eAAeC,OAAOvB;GAChD,OAAO,KAAKwB,OAAOxB,eACf5B,WAAW,CAAC,GAAG4B,cAAc,KAAKwB,OAAOxB,YAAY,IACrDA;EACN,CAAC;EACD,KAAKC,SAAS,KAAKoB,gBAAgB;GACjC,OAAO,KAAKG,OAAOvB;EACrB,CAAC;EACD,KAAKC,YAAY,KAAKmB,gBAAgB;GACpC,OAAO,KAAKI,cAAc;EAC5B,CAAC;EACD,KAAKtB,aAAa,KAAKkB,gBAAgB;GACrC,OAAO,KAAKK,KAAKC,qBAAqB,KAAK1B,QAAQ,KAAKuB,OAAOI,WAAW;EAC5E,CAAC;EACD,KAAKtB,gBAAgB,KAAKe,gBAAgB;GACxC,MAAMQ,SAAS,KAAKC,IAAIC,KAAKF,OAAOG;GACpC,MAAM/B,SAAS,KAAKA;GACpB,MAAMgC,SAAS,KAAKT,OAAOU;GAC3B,MAAMC,WAAWlC,SACbrB,4BAA4BqB,QAAQ,KAAKE,cAAc,CAAA,IAAIiC,cAAa;IACtE,OAAO,KAAKV,KAAKW,UAAUD,SAAS,CAAC,CAACE;GACxC,CAAC,IACD;IAAEC,OAAO,CAACN;IAAQO,QAAQ,CAAC;GAAE;GACjC,IAAIvC,UAAU,KAAKyB,KAAKe,aAAaZ,QAAQM,SAASI,QAAQ;GAC9D,OAAO;IACLV;IACAa,UAAUT,QAAQS;IAClBC,OAAO,KAAKnC;IACZoC,OAAO/D,yBAAyB;KAC9B,KAAK2C,OAAOI;KACZ,KAAKiB;KACL,KAAK7C;KACL,KAAKwB,OAAOtB;KACZ,KAAKsB,OAAOsB;KACZ,KAAKtB,OAAOuB;IAAsB,CACnC;IACDC,SAAS,CAAC,CAACf,UAAU,CAAC,KAAKT,OAAOtB;IAClCiC;GACF;EACF,CAAC;EACD,KAAKc,aACG,KAAK3C,cAAc6B,WACzBA,aAAY,KAAK5B,sBAAsB2C,MAAMf,QAAQ,GACrD,EAAEgB,OAAO,OAAO,CAClB;EACA,KAAK9C,cAAc,KAAK+C,gBAAgB;EACxC,KAAKhD,UAAU,KAAKU,KAAKuC,eACvB7E,SACA,OACA,KAAKwB,aAAasD,YAClB,KAAKjD,WACP;EACA,KAAK4C,aACG,KAAKzB,OAAOc,OACjBiB,UAAUC,aAAa;GACtB,EAAE,KAAKhD;GACP,IAAIrC,UAAUoF,UAAUC,QAAQ,GAAG;GACnC,KAAKC,MAAM,KAAKjC,OAAOc,IAAI;EAC7B,CACF;CACF;CAEA,MAAaoB,OAAOC,YAA4C;EAC9D,IAAI,KAAKd,UAAUe,cAAc,QAAQ,OAAO;EAChD,MAAM,CAACC,GAAGC,SAAS,MAAMxG,iBAAiB;GACxC,OAAO,KAAK0D,KAAK+C,aAAaJ,UAAiB;EACjD,CAAC;EACD,OAAO,CAACG,SAAS,KAAK5C,UAAU8C;CAClC;CAEUC,cAAc;EACtB,KAAKvD,yBAAyB;EAC9B,EAAE,KAAKF;EACP,KAAKD,sBAAsB2D,MAAM;CACnC;CAEOC,iBAAiBC,MAAc;EACpC,OAAO,KAAK7D,sBAAsB8D,IAAID,IAAI;CAC5C;CAEOE,qBAAqBF,MAAcG,eAAuBC,UAAmB;EAClF,OAAO,KAAKjE,sBAAsBkE,QAAQL,MAAM;GAC9C,GAAG,KAAK9D;GACRiE;GACAC;EACF,CAAC;CACH;CAEOE,uBAAuB;EAC5B,IAAI,KAAKjE,yBAAyB,CAAC,KAAKe,OAAOmD,mBAAmB;EAClE,KAAKlE,wBAAwB;EAC7B,MAAMkC,QAAQ,KAAKnC;EACnB,MAAMqB,SAAS,KAAKC,IAAIC,KAAKF,OAAOG;EACpC,MAAM,EAAEU,UAAUE,UAAU,KAAKtC;EACjC,eAAoB;GAClB,KAAKG,wBAAwB;GAC7B,IACE,CAAC,KAAKC,0BACNiC,UAAU,KAAKnC,uBACfqB,WAAW,KAAKC,IAAIC,KAAKF,OAAOG,WAChCU,aAAa,KAAKpC,cAAcoC,YAChCE,UAAU,KAAKtC,cAAcsC,SAC7B,KAAKtC,cAAc6B,SAASI,OAE5B,KAAKf,OAAOmD,oBAAoB,KAAK3D,KAAKI,MAAMwD,MAAM;EAE1D,CAAC;CACH;CAEOnB,MAAMmB,QAAoBC,MAAmD;EAClF,EAAE,KAAKrE;EACP,KAAKQ,KAAKyC,MAAMmB,UAAW,CAAC,GAAiBC,IAAI;EACjD,OAAO,KAAK7D,KAAKI,MAAMwD;CACzB;CAEA,IAAW/B,WAAW;EACpB,OAAO,KAAKrB,OAAOqB;CACrB;CAEOiC,UAAUC,MAAwD;EACvE,OAAO,KAAKC,mBAAmBD,IAAI,IAAI;CACzC;CAEOC,mBAAmBD,MAAwD;EAChF,OAAO,KAAKE,8BAA8BF,IAAI;CAChD;CAEOG,cAA6Cd,MAAS;EAC3D,OAAOxG,MAAM,KAAKsD,UAAU0D,QAAQR,IAAI,KAAK;CAC/C;CAEOe,cACLf,MACAgB,OACAC,sBACA;EACA,KAAKrE,KAAKmE,cAAcf,MAAMgB,KAAK;EACnC,IAAI,CAACC,sBACH,KAAK7D,OAAO8D,YAAY,KAAKpE,UAAU0D,MAAM;CAEjD;CAEOW,iBACLnB,MACyC;EACzC,IAAI,CAAC,KAAKjE,YAAY;EACtB,OAAO,KAAKA,WAAWqF,MAAKC,SAAQA,KAAKC,QAAQtB,IAAI;CACvD;CAEOuB,kBAAiDvB,MAAS;EAC/D,OAAO1G,YAAYkI,eAAe,KAAK1F,WAAWkE,IAAc;CAClE;CAEQhB,kBAAqC;EAC3C,MAAMyC,SAAStI,WAAWuI,MAAM;EAChCD,OAAOE,iBAAiB,yBAAwB3B,SAAQ;GACtD,OAAO,KAAKpD,KAAKkE,cAAcd,IAAI,KAAK;EAC1C,CAAC;EACDyB,OAAOE,iBAAiB,8BAA8B3B,MAAM4B,iBAAiB;GAC3E,OAAO,KAAKhF,KAAKkE,cAAcd,IAAI,KAAK4B;EAC1C,CAAC;EACDH,OAAOE,iBAAiB,4BAA2B3B,SAAQ;GACzD,OAAO,KAAKmB,iBAAiBnB,IAAI,KAAK;EACxC,CAAC;EACD,OAAOyB;CACT;CAEOI,cACL7B,MACA8B,YAC4B;EAC5B,OAAO7H,qBAAqB,CAAC,GAAG,KAAKmD,OAAO2E,WAAW;GACrD/B;GACAgB,OAAO,KAAKF,cAAcd,IAAI;GAC9BgC,UAAU,KAAKb,iBAAiBnB,IAAI;GACpC,GAAG8B;EACL,CAAC;CACH;CAEOG,aAAaH,YAA6B;EAC/C,OAAO7H,qBAAqB,CAAC,GAAG,KAAKmD,OAAO2E,WAAW,EACrD,GAAGD,WACL,CAAC;CACH;CAEOI,yBACLC,aACAC,UACoD;EACpD,OAAO;GACL1E,KAAK,KAAKA;GACV2E,KAAK,KAAKA;GACVC,QAAQ;GACRC,OAAOJ,eAAe;GACtBK,WAAWJ;GACXK,MAAM,KAAKzG;GACXmG;GACAO,QAAQ;EACV;CACF;CAEOC,wBACLP,UAC+C;EAC/C,OAAO;GACL1E,KAAK,KAAKA;GACV2E,KAAK,KAAKA;GACVC,QAAQ;GACRC,OAAO;GACPC,WAAWJ;GACXK,MAAM,KAAKzG;GACX0G,QAAQ;EACV;CACF;CAEOE,0BACL5C,MACAoC,UACAS,kBACoC;EAEpC,OADc,KAAKE,gCAAgC/C,MAAMoC,UAAUS,gBAC5DC;CACT;CAEQC,gCACN/C,MACAoC,UACAS,kBACoC;EACpC,IAAIC,QAAa;IACI,iBAAA;GACnBxB,KAAKtB;GACLA;GACAgB,OAAOoB,SAASpB;EAClB;EACA,MAAMgB,WAAW,KAAKb,iBAAiBnB,IAAI;EAC3C,IAAI,CAACgC,UAAU,OAAOc;EACtB,MAAME,OAAOhB,SAASgB;EACtB,IAAI,CAACA,MAAM,OAAOF;EAClB,MAAMG,OAAO3H,OAAO2H,KAAKD,IAAI,CAAC,CAACE,QAAO7B,SAAQ,CAAC/G,8BAA8B6I,SAAS9B,IAAI,CAAC;EAC3F,IAAI4B,KAAKG,WAAW,GAAG,OAAON;EAC9B,KAAK,MAAMxB,OAAO2B,MAAM;GACtB,MAAMjC,QAAQgC,KAAK1B;GACnB,IAAI+B;GACJ,IAAI/B,QAAQ,UAAU;IACpB,IAAI,OAAON,UAAU,UACnBqC,WAAW,KAAKrH,QAAQsH,mBAAmBtC,OAAOoB,QAAQ;SAE1DiB,WAAWrC;GAEf,OACEqC,WAAW,KAAKrH,QAAQuH,eAAevC,OAAOwC,KAAAA,GAAWpB,UAAUS,gBAAgB;GAErFC,MAAMxB,OAAO+B;EACf;EAGA,IADmBlJ,eAAe2I,MAAMY,MAAM,KAAK,KAAKC,qBAAqBb,MAAMY,OAAOE,IAAI,KAC5E,CAACxK,cAAc0J,MAAMY,OAAOZ,KAAK,GAAG;GACpD,MAAMe,cAAc,KAAK7H,QAAQuH,eAC/BT,MAAMY,OAAOZ,OACbU,KAAAA,GACApB,UACAS,gBACF;GACAC,QAAQxH,OAAOwI,OAAO,CAAC,GAAGhB,OAAOe,WAAW;EAC9C;EAEA,MAAME,eAAejB,MAAMkB;EAC3B,IAAI3K,MAAM0K,YAAY,KAAK,KAAKtF,UAAUwF,aAAa,QACrDnB,MAAMkB,WAAW;EAGnB,OAAOlB;CACT;CAMOoB,kBACLR,QACsC;EACtC,IAAIvJ,eAAeuJ,MAAM,GACvB,OAAO5J,KAAK4J,MAAM,CAAC,CAACE;EAEtB,IAAI,OAAOF,WAAW,UACpB,OAAO,KAAK9H,aAAasD,aAAawE,WAAWA;EAEnD,OAAOA;CACT;CAEQrG,gBAAgB;EACtB,IAAI,KAAKD,OAAOtB,WAAW,OAAO,KAAKqI,gBAAgB,KAAK/G,OAAOtB,SAAS;EAC5E,IAAI,CAAC,KAAKD,QAAQ;EAClB,OAAO,KAAKsI,gBAAgB,KAAK7G,KAAK8G,kBAAkB,KAAKvI,MAAM,CAAC;CACtE;CAEQsI,gBAAgBtI,QAA4C;EAClE,IAAIA,OAAOwI,IAAIT,SAAS,UAAU,OAAO/H;EACzC,IAAIA,OAAOwI,IAAIT,SAAS,SACtB,OAAO/H,OAAOwI,IAAIC,QAAQlD,MAAKC,SAAQA,KAAKgD,IAAIT,SAAS,QAAQ;EAEnE,MAAM,IAAIW,MAAM,oBAAoB;CACtC;CAEQ1H,cAAc;EAEpB,OAAO,KAAK2H,SAAiC;GAC3CC,eAAe,KAAKrH,OAAOc;GAC3BwG,iBACE,KAAKtH,OAAOsB,sBAAsB,QAC9BhF,gBAAgB,KAAK0D,OAAOuB,sBAAsB,IAClD6E,KAAAA;GACNmB,kBAAiBzG,SAAQ;IACvB,KAAKd,OAAOuH,kBAAkBzG,MAAM,IAAI;GAC1C;GACA0G,UAAU,OAAM1G,SAAQ;IACtB,MAAM,CAACuB,GAAGC,SAAS,MAAMxG,iBAAiB;KACxC,OAAO,KAAKkE,OAAOyH,eAAe3G,MAAM,IAAI;IAC9C,CAAC;IAED,MAAM4G,aAAa,MAAM,KAAKpH,IAAIC,KAAKoH,MAAMC,KAAK,yBAAyB;KACzEpI,MAAM,KAAKA;KACXsB;KACAwB;IACF,CAAC;IACD,IAAI,CAACA,OAAO;IACZ,IAAIA,MAAMuF,SAAS,KAAK;KACtB,KAAKC,gBAAgBxF,KAAK;KAC1B,KAAKtC,OAAOuH,kBAAkBzG,MAAM,IAAI;IAC1C,OACE,IAAI,CAAC4G,YACH,KAAK1H,OAAO+H,cAAc;KAAEjH;KAAMwB;IAAM,GAAG,IAAI;IAInD,MAAMA;GACR;EACF,CAAC;CACH;CAEO0F,YACLpF,MACAqF,YACA;EAEA,MAAM/D,MADW,KAAKH,iBAAiBnB,IAC3BgC,CAAQ,EAAEV,OAAOtB;EAC7B,OAAO,KAAKsF,kBAAkBhE,KAAK+D,UAAU;CAC/C;CAEUC,kBAAkBhE,KAAa+D,YAA2C;EAElF,MAAMjD,WAAW,KAAKP,cAAcP,GAAG;EACvC,MAAMuB,mBAAmB,KAAKX,yBAAyBsB,KAAAA,GAAWpB,QAAQ;EAE1E,IAAIU,QAAQ,KAAKF,0BAA0BtB,KAAKc,UAAUS,gBAAgB;EAC1E,IAAIwC,YACFvC,QAAQxH,OAAOwI,OAAO,CAAC,GAAGhB,OAAOuC,UAAU;EAE7C,IAAIvL,KAAKgJ,KAAK,CAAC,CAACyC,YAAY,OAAO;EACnC,MAAMC,mBAAmB,KAAKC,6BAA6B3C,MAAMY,MAAM;EACvE,OAAO,KAAK1H,QAAQ0H,OAAO8B,kBAAkB1C,OAAOV,UAAUS,gBAAgB;CAChF;CAEQ4C,6BACN/B,QAC8B;EAC9BA,SAASA,UAAU;EACnB,MAAMgC,iBAAiB,KAAKxB,kBAAkBR,MAAM;EACpD,IAAI,KAAKC,qBAAqB+B,cAAc,GAC1C,OAAOA;EAET,OAAO;CACT;CAEO/B,qBAAqB+B,gBAAuD;EACjF,OAAO,OAAOA,mBAAmB,YAAYA,eAAevC,SAAS,YAAY;CACnF;CAEQtC,8BAA8BF,MAAwD;EAC5F,IAAIA,KAAKiD,SAAS,SAChB,OAAO,KAAK9G,UAAU6I,UAAUhF,KAAKX,KAAK,EAAE4F,QAAQxC,SAAS,IAAI;EAEnE,IAAIzC,KAAKiD,SAAS,SAAS,OAAO;EAClC,OAAOjD,KAAKkF,SAASC,QAAQC,OAAOC,UAAU;GAC5C,OAAOD,QAAQ,KAAKlF,8BAA8BmF,KAAK;EACzD,GAAG,CAAC;CACN;CAEQd,gBAAgBxF,OAAcuG,QAAyB,UAAU;EACvE,MAAMC,UAAU,KAAKtJ;EAErB,IAAIuJ,aAAa;EAGjB,MAAMC,4BAAiC,CAAC;EAGxC,MAAM,EAAEG,WAAWC,gBAAgBC,eADlBH,YAAY5G,KACgC2G,CAAQ;EAErE,MAAMK,cAAcC,eAAeV,KAAK;EAExC,KAAK,MAAMW,SAAStL,OAAO2H,KAAKiD,QAAQlJ,MAAM2I,SAAS,GAA4B;GACjF,IAAIO,QAAQW,UAAU7J,MAAM8J,cAAcF,WAAWpD,KAAAA,GACnD;GAGF,MAAMmC,YAAYO,QAAQa,aAAaH,KAAK;GAC5C,IAAI,CAACjB,WAAW;GAEhB,MAAM,EAAEqB,UAAUC,iBAAiBC,gBAAgBC,0BAA0BxB;GAE7E,MAAMyB,wBAAwBZ,cAAcI;GAE5C,MAAM,EAAES,eAAeC,cAAc/N,sCAAsC;IACzE6N;IACAG,kCAAkCJ,wBAAwBT,iBAAiB;IAC3Ec,oBAAoBP,kBAAkBP;GACxC,CAAC;GAED,IAAIY,cAAc,QAChBlB,0BAA0BQ,SAAS;IACjC,GAAGR,0BAA0BQ;KAC5BF,cAAcU;GACjB;GAGF,IAAIH,kBAAkBP,iBAAiBW,eACrCnB,QAAQuB,aAAab,QAAOc,UAAS;IACnC,GAAGA;IACHV,UAAU;KACR,GAAGU,KAAKV;MACPN,cAAcW;IACjB;IACAH,gBAAgB;KACd,GAAGQ,KAAKR;MACPR,cAAcY;IACjB;GACF,EAAE;EAEN;EAEA,IAAIpB,QAAQlJ,MAAMgK,WAAWN,iBAAiBH,WAC5CL,QAAQW,UAAUc,UAASD,UAAS;GAClC,GAAGA;GACHV,UAAU;IACR,GAAGU,KAAKV;KACPN,cAAcH;GACjB;EACF,EAAE;EAGJ,IAAIA,aAAaC,aACfL,aAAa;;;;;EAOf,MAAMyB,eAAejB,eAAe,QAAQ;EAC5C,IAAIT,QAAQlJ,MAAMgK,WAAWY,iBAAiB3B,UAAU,YAAY,CAACE,YACnED,QAAQW,UAAUc,UAASD,UAAS;GAClC,GAAGA;GACHV,UAAU;IACR,GAAGU,KAAKV;KACPY,eAAepE,KAAAA;GAClB;EACF,EAAE;;;;;EAOJ,MAAMqE,eAAelB,eAAe,QAAQ;EAC5C,IAAIT,QAAQlJ,MAAMgK,WAAWa,iBAAiB5B,UAAU,YAAY,CAACE,YACnED,QAAQW,UAAUc,UAASD,UAAS;GAClC,GAAGA;GACHV,UAAU;IACR,GAAGU,KAAKV;KACPa,eAAerE,KAAAA;GAClB;EACF,EAAE;CAEN;AACF,GAAC/H,gBA5fQqM,gBAAgB;CAAEC,SAAS;CAAQvK,aAAa;AAAO,GAAC/B,kBAAAe,gBAAAwL,4BAAAxM,UAAAyM,WAAA,kBAAA,CAAAhN,SAAAC,OAAA,GAAA;CAAAgN,cAAA;CAAAC,YAAA;CAAAC,UAAA;CAAAC,aAAA;AAAA,CAAA,GAAA7M,UAAA,KAAAD,QAAA,KAAAA;AA8fjE,SAAS+K,YAAY5G,OAAc;CACjC,MAAM4I,SACJ,OAAO5I,MAAM6I,YAAY,WAAWC,KAAKC,MAAM/I,MAAM6I,OAAO,IAAI7I,MAAM6I;CACxE,MAAMnK,SAAS,CAAC;CAChB,KAAK,MAAMsK,SAASJ,QAAQ;EAC1B,MAAMhH,MAAMoH,MAAMC,KAAKC,KAAK,GAAG;EAC/BxK,OAAOkD,OAAOoH;CAChB;CACA,OAAO,EAAEtK,OAAO;AAClB;AAEA,SAASqI,eAA0BJ,UAGjC;CACA,IAAIA,UAAU;EACZ,IAAI5M,4BAA4B4M,QAAQ,GAGtC,OAAO;GAAEE,WAFSE,eAAeJ,SAASzJ,IAAI,CAAC,CAAC2J;GAE5BC,aADAH,SAASjI;EACG;EAGlC,OAAO,EAAEmI,WAAWF,SAAS;CAC/B;CAEA,OAAO,EAAEE,WAAW/C,KAAAA,EAAU;AAChC;AAEA,SAASmD,eAAeV,OAAwB;CAC9C,QAAQA,OAAR;EACE,KAAK,UACH,OAAO;EACT,KAAK,QACH,OAAO;EACT,KAAK,SACH,OAAO;EACT,KAAK,UACH,OAAO;EACT,KAAK,WACH,OAAO;EAET,SACE,OAAO;CACX;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5mBA,IACasD,uBAAmBC,SAD/BL,WAAW,GAACM,UAAAC,SAAA,EAAAC,QAAA,SAAA,CAAA,GAAAC,UAaVV,IAAI,EAAEW,gBAAgB,OAAO,CAAC,GAACC,UAAAC,QAAAC,SAAA,eAAA,OAAAC,mBAAA,cAAAC,SAAAD,cAAA,GAAAE,QAG/BjB,IAAG,iCAAC,GAACkB,QAAAL,QAAAC,SAAA,eAAA,OAAAK,wBAAA,cAAAH,SAAAG,mBAAA,GAAAb,OAAAc,WAAAb,QAAAa,YAAAC,aAAAC,uBAhBR,MACajB,4BAAyDN,mBAAmB;CAAAwB,YAAA,GAAAC,MAAA;EAAA,MAAA,GAAAA,IAAA;EAAA,KAI/EC,aAAU,KAAA;EAAA,KACVC,eAAe;EAAK,KACpBC,WAAW;EAAK,KAChBC,YAAY;EAAK,KACjBC,iBAAiB;EAAK,KACtBC,WAAW;EAAK,KACjBC,cAAW,KAAA;EAAAC,6BAAA,MAAA,UAAAC,eAAA,IAAA;EAAAD,6BAAA,MAAA,yBAAAE,cAAA,IAAA;CAAA;CAQlB,MAAgBC,WAAW;EACzB,IAAI,CAAC,KAAKC,QACR,MAAM,IAAIC,MAAM,yDAAyD,KAAKC,MAAM;EAGtF,KAAKC,KAAKC,SAAS,eAAe,IAAI;EAEtC,KAAKV,WAAW,KAAKM,OAAOK,iBAAiB,KAAKH,IAAI;EACtD,KAAKb,aAAa,KAAKiB,aAAa;EAEpC,KAAKX,cAAc,KAAKY,gBAAgB;GACtC,OAAO,KAAKC,gBAAgB;EAC9B,CAAC;EAGD,KAAKC,yBAAyB;GAC5B,KAAKlB,WAAW;GAChB,KAAKmB,cAAc;EACrB,CAAC;EACD,KAAKC,aACG,CAAC,KAAKX,OAAOY,eAAe,KAAKC,yBAAyB,CAAC,SAC3D,KAAKH,cAAc,GACzB,EAAEI,OAAO,OAAO,CAClB;EAEA,MAAM,KAAKC,sBAAsBC,WAAW;GAC1CC,aAAaC,KAAAA;GACbC,iBAAiB;IACf,OAAO,KAAKC,mBAAmB;GACjC;EACF,CAAC;EAED,IAAIC,QAAQC,IAAIC,UAAU,KAAKC,OAAOC,UACpC,KAAKd,aACG,KAAKX,OAAO0B,cAAc,KAAKxB,IAAI,IACxCyB,UAAUC,aAAa;GACtB,IAAID,aAAaC,UAAU;GAC3B,KAAKJ,OAAOC,WAAWE,QAAQ;EACjC,CACF;EAEF,KAAKrC,eAAe;EACpB,KAAKoB,cAAc;CACrB;CAEUmB,cAAc;EACtB,KAAKrC,YAAY;CACnB;CAEQqB,2BAA2B;EACjC,MAAMiB,QAAQ,KAAKN;EACnB,OAAO1D,yBAAyB;GAC9BgE,MAAM5B;GACN4B,MAAMC;GACND,MAAME;GACNF,MAAMG;GACNH,MAAMI;GACNJ,MAAMK;GACNL,MAAMM;GACNN,MAAMX;GACN,CAAC,CAACW,MAAML;GACR,CAAC,CAACK,MAAMO;GACRP,MAAAA,0BAAiC;EAAI,CACtC;CACH;CAEQpB,gBAAgB;EACtB,IACE,CAAC,KAAKpB,gBACN,KAAKE,aACJ6B,QAAQC,IAAIC,UAAU,KAAK7B,YAAY,CAAC,KAAKH,YAC9C,CAAC,KAAKS,OAAOY,cAAc0B,SAASC,OAEpC;EAEF,MAAMT,QAAQ,KAAKN;EAEnB,MAAMgB,mBACJV,MAAAA,oBAA2B,QAAQA,MAAAA,0BAAiC;EACtE,MAAMW,WACJ,CAACX,MAAMK,OACP,CAACL,MAAMX,aACP,CAACW,MAAML,aACN,CAACK,MAAMO,eAAeG,qBACvB5D,OAAO8D,OAAOZ,MAAMM,cAAc,CAAC,CAAC,CAAC,CAACO,OAAMC,UAAS,OAAOA,UAAU,SAAS;EACjF,MAAMC,UAAU,KAAK7C,OAAO8C,qBAC1B,KAAK5C,MACL,KAAKW,yBAAyB,GAC9B4B,QACF;EACA,IAAII,QAAQE,SAAS;GACnB,MAAMH,QAAQ,KAAKI,KAAKtB,cAAc,KAAKxB,IAAI;GAC/C,KAAK+C,MAAMC,IAAIC,OAAO,KAAKC,qBAAqB,CAAQ;GACxD,KAAKJ,KAAKK,WAAW,KAAKnD,IAAI;GAC9B,IAAI2C,QAAQS,UAAU;IACpB,KAAKN,KAAKO,cAAc,KAAKrD,MAAM0C,OAAO;KACxCY,gBAAgB;KAChBC,kBAAkB;KAClBC,cAAc;IAChB,CAAC;IACD,KAAKT,MAAMC,IAAIS,aAAa,UAAU,CAAC,CAAC;GAC1C;EACF,OAAO,IAAI,KAAKjE,YAAY,CAAC,KAAKD,gBAChC,KAAKwD,MAAMC,IAAIC,OAAO,KAAKC,qBAAqB,CAAQ;EAE1D,IAAIP,QAAQE,WAAW,CAAC,KAAKtD,gBAAgB;GAC3C,KAAKA,iBAAiB;GACtB,KAAK+B,OAAOoC,oBAAoB,IAAI;EACtC;EACA,IAAIf,QAAQE,SAAS,KAAK/C,OAAO6D,qBAAqB;CACxD;CAEA,IAAWb,OAAO;EAChB,OAAO,KAAKhD,OAAOgD;CACrB;CAEA,IAAWC,QAAuB;EAChC,OAAO,KAAK5D;CACd;CAEA,IAAWa,OAAO;EAChB,OAAO,KAAKsB,OAAOtB;CACrB;CAEA,IAAW4D,WAAW;EACpB,OAAO,KAAK9D,OAAO+D,iBAAiB,KAAK7D,IAAI;CAC/C;CAEA,IAAW8D,iBAAiB;EAC1B,OAAO,KAAKhE,OAAOiE,kBAAkB,KAAK/D,IAAI;CAChD;CAEA,IAAWgE,WAAW;EACpB,OAAO,KAAKlE,OAAOkE;CACrB;CAEA,IAAWC,eAAe;EACxB,OAAO,KAAKnE,OAAOmE;CACrB;CAEOC,SAASxB,OAAYyB,sBAAgC;EAC1D,IAAIA,yBAAyBnD,KAAAA,GAC3BmD,uBAAuB,KAAK1E,YAAY0E;EAE1C,OAAO,KAAKrE,OAAOuD,cAAc,KAAKrD,MAAM0C,OAAOyB,oBAAoB;CACzE;CAEOC,aAAa;EAClB,KAAKrB,MAAMC,IAAIoB,WAAW;CAC5B;CAEOC,mBAAyD;EAC9D,MAAMrE,OAAO,KAAKA;EAElB,MAAMP,cAAc,KAAKA;EAEzB,MAAMmC,QAAsC;GAAE0C,KAAKtE;GAAMA;EAAK;EAE9D4B,MAAM2C,QAAQ9E,YAAY8E;EAE1B3C,MAAMG,WAAWtC,YAAYsC;EAE7B,MAAMyC,WAAW,KAAK1E,OAAO2E,cAAc,KAAKzE,MAAM,CAAC,CAAC;EAExD,OAAO;GAAEP;GAAamC;GAAO4C;GAAUE,kBADd,KAAK5E,OAAO6E,yBAAyB,MAAMH,QAC7BE;EAAiB;CAC1D;CAEQtE,eAAe;EACrB,MAAM0B,UAAU,KAAKoB,qBAAqB;EAE1C,IAAI,KAAK1D,UAAU,OAAOsC,QAAQ8C;EAClC,MAAM7B,QAAQvF,QAAQF,SAASwE,OAAc,CAAC;EAC9C,MAAM+C,aAAatH,YAAYwF,MAAMC,IAAI8B,QAAOC,UAASA,KAAK;EAC9D,OAAO;GAAE/B,KAAKD,MAAMC;GAAK+B,OAAOF;EAAW;CAC7C;CAEQvE,kBAAkB;EACxB,MAAMsD,WAAW,KAAKA;EACtB,MAAM5D,OAAO,KAAKA;EAElB,MAAMgF,WAAW,KAAKC,2BAA2B;EAEjD,MAAMC,gBAAgBxG,OAAOyG,OAC3B;GACEC,UAAU,KAAKC,MAAMC,OAAOC,gBAAgBH;GAC5CI,OAAO5B,UAAU6B,SAASzF;EAC5B,GACA,KAAKF,OAAOwB,OAAOiE,iBACnB,KAAKjE,QAAQoE,QACbV,UAAUU,MACZ;EAEA,MAAMC,gBAAgBjH,OAAOyG,OAAO,CAAC,GAAG,KAAK7D,QAAQQ,SAASkD,UAAUlD,OAAO;EAE/E,MAAMrC,cAAcf,OAAOyG,OACzB,EACEtD,QAAQ,QACV,GACA,KAAKP,QACL0D,UACA;GACEU,QAAQR;GACRpD,SAAS6D;EACX,CACF;EAEA,IAAIlG,YAAYiG,OAAOnB,SAAS9E,YAAYiG,OAAOE,OAAO;GACxDnG,YAAYiG,OAAOnB,QAAQ,KAAKsB,UAC9BpG,YAAYiG,OAAOnB,OACnB,KAAKuB,OAAOrG,YAAYiG,OAAOE,KAAK,CACtC;GACA,OAAOnG,YAAYiG,OAAOE;EAC5B;EAEA,MAAMG,YAAYtG,YAAYqC,SAASyC,SAAS9E,YAAY8E;EAC5D,MAAMyB,YAAYvG,YAAYqC,SAAS8D,SAASnG,YAAYmG;EAC5D,IAAIG,aAAaC,WAAW;GAC1BvG,YAAY8E,QAAQ,KAAKsB,UAAUE,WAAW,KAAKD,OAAOE,SAAS,CAAC;GACpE,IAAIvG,YAAYqC,SAASyC,OAAO,OAAO9E,YAAYqC,QAAQyC;GAC3D,IAAI9E,YAAYqC,SAAS8D,OAAO,OAAOnG,YAAYqC,QAAQ8D;GAC3D,OAAOnG,YAAYmG;EACrB;EAEA,MAAMK,eAAexG,YAAYqC,SAASC,YAAYtC,YAAYsC;EAClE,IAAI,CAAC1E,MAAM4I,YAAY,GAAG;GACxBxG,YAAYsC,WAAWkE;GACvB,IAAIxG,YAAYqC,SAASC,UAAU,OAAOtC,YAAYqC,QAAQC;EAChE,OAAO,IAAI,KAAKiC,UAAUkC,aAAa,QACrCzG,YAAYsC,WAAW;EAIzBtC,YAAY0G,iBAAiB,KAAKrG,OAAOsG,kBAAkB3G,YAAYoC,MAAM;EAC7E,OAAOpC;CACT;CAEQwF,6BAA6B;EACnC,IAAI,KAAK3D,OAAAA,oBAA4B,MAAM;EAC3C,MAAMkD,WAAW,KAAK1E,OAAO2E,cAAc,KAAKzE,IAAI;EACpD,MAAM0E,mBAAmB,KAAK5E,OAAO6E,yBAAyB,MAAMH,QAAQ;EAC5E,OAAO,KAAK1E,OAAOuG,0BAA0B,KAAKrG,MAAMwE,UAAUE,gBAAgB;CACpF;CAEQxD,qBAAqB;EAC3B,MAAMD,YAA2B,CAAC;EAElC,IAAI,KAAKK,OAAOL,WACdvC,OAAOyG,OAAOlE,WAAW,KAAKK,OAAOL,SAAS;EAGhD,KAAKqF,0BAA0BrF,SAAS;EAExC,KAAKsF,gCAAgCtF,SAAS;EAC9C,OAAOA;CACT;CAEQqF,0BAA0BrF,WAA0B;EAC1D,MAAMuF,oBAAoB,KAAKvC,aAAahD,WAAWwF;EACvD,IAAI,CAACD,mBAAmB;EACxBvF,UAAUuF,qBAAqB,CAAC;CAClC;CAEQD,gCAAgCtF,WAA0B;EAChE,MAAMyF,0BAA0B,KAAKzC,aAAahD,WAAW0F;EAC7D,IAAI,CAACD,yBAAyB;EAC9BzF,UAAUyF,2BAA2B,CAAC;CACxC;CAWQxD,uBAAuB;EAE7B,MAAMR,QAAQ,KAAK5C,OAAO0B,cAAc,KAAKxB,IAAI;EACjD,MAAM4E,eAAevH,MAAMqF,KAAK,IAC3B,KAAKpB,OAAOW,KAAK2C,gBAAgB,KAAKhB,UAAUgD,UACjD5F,KAAAA;EAEJ,MAAMkB,aAAa,KAAK2E,+BAA+B;EACvD,OAAOnI,OAAOyG,OACZ,EACEP,aACF,GACA,KAAKtD,OAAOW,KACZ;GACEjC,MAAM,KAAKA;GACX8C,MAAM,KAAKhD,OAAOgD;GAClBZ;EACF,CACF;CACF;CAEQ2E,iCAAiC;EACvC,MAAMC,iBAAiB,KAAKhD;EAC5B,MAAM5B,aAAa,KAAKZ,OAAOY;EAC/B,MAAM6E,2BACJ7E,YAAY8E,cAAchG,KAAAA,KAC1BkB,YAAY+E,WAAWjG,KAAAA,KACvBkB,YAAYgF,aAAalG,KAAAA;EAC3B,MAAMmG,oBAAoBjF,YAAY8E,aAAaD;EACnD,MAAMK,iBAAiBlF,YAAY+E;EACnC,MAAMI,mBAAmBnF,YAAYgF;EACrC,OAAOxI,OAAOyG,OACZ,CAAC,GACD;GACE6B,WAAWM,yBAAyBH,mBAAmBL,cAAc;GACrEG,QAAQK,yBAAyBF,gBAAgBN,cAAc;GAC/DI,UAAUI,yBAAyBD,kBAAkBP,cAAc;EACrE,GACA,KAAKxF,OAAOW,KAAKC,UACnB;CACF;AACF,GAAClD,qBA/UQuI,gBAAgB,CAAC,GAACvI,qBAClBwI,oBAAuC,EAAEC,cAAc,MAAM,GAACzI,uBAAAW,gBAAA+H,4BAAA3I,UAAA4I,WAAA,UAAA,CAAAvJ,SAAAE,OAAA,GAAA;CAAAsJ,cAAA;CAAAC,YAAA;CAAAC,UAAA;CAAAC,aAAA;AAAA,CAAA,GAAAnI,eAAA8H,4BAAA3I,UAAA4I,WAAA,yBAAA,CAAAhJ,OAAAC,KAAA,GAAA;CAAAgJ,cAAA;CAAAC,YAAA;CAAAC,UAAA;CAAAC,aAAA;AAAA,CAAA,GAAAhJ,UAAA,KAAAD,QAAA,KAAAA;AAgVvE,SAASwI,yBACPU,gBACAlB,gBACA;CACA,IAAI,CAACkB,gBAAgB,OAAOhH,KAAAA;CAC5B,IAAIgH,mBAAmB,MAAM,OAAOlB;CACpC,OAAOkB;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzWA,IACaK,4BAAwBC,SADpCH,WAAW,GAACI,UAAAC,SAAA,EAAAC,QAAA,SAAA,CAAA,GAAAC,UAKVR,IAAI,EAAES,gBAAgB,OAAO,CAAC,GAACC,UAAAC,QAAAC,SAAA,eAAA,OAAAV,qBAAA,cAAAW,SAAAX,gBAAA,GAAAE,OAAAU,WAAAT,QAAAS,YAAAC,aAAAC,4BALlC,MACab,iCAA8DJ,mBAAmB;CAAAkB,YAAA,GAAAC,MAAA;EAAA,MAAA,GAAAA,IAAA;EAAAC,6BAAA,MAAA,UAAAC,eAAA,IAAA;CAAA;CAO5F,MAAgBC,WAAW,CAAC;CAElBC,SAAS;EACjB,IAAI,KAAKC,cACP,OAAO,KAAKA,aAAa,KAAKC,MAAM;CAExC;AACF,GAACR,0BAbQS,gBAAgB,CAAC,GAACT,0BAClBU,oBAAuC;CAAEC,cAAc;CAAOC,mBAAmB;AAAK,GAACZ,4BAAAI,gBAAAS,4BAAAd,UAAAe,WAAA,UAAA,CAAAtB,SAAAE,OAAA,GAAA;CAAAqB,cAAA;CAAAC,YAAA;CAAAC,UAAA;CAAAC,aAAA;AAAA,CAAA,GAAAnB,UAAA,KAAAD,QAAA,KAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHhG,IACawB,6BAAyBC,SADrCF,WAAW,GAACG,UAAAC,SAAA,EAAAC,QAAA,SAAA,CAAA,GAAAC,QAKVP,IAAI,EAAEQ,gBAAgB,OAAO,CAAC,GAACC,QAAAC,QAAAC,SAAA,eAAA,OAAAC,mBAAA,cAAAC,SAAAD,cAAA,GAAAT,OAAAW,WAAAV,QAAAU,YAAAC,WAAAC,6BALlC,MACad,kCAAkCH,mBAAmB;CAAAkB,YAAA,GAAAC,MAAA;EAAA,MAAA,GAAAA,IAAA;EAAAC,2BAAA,MAAA,UAAAC,aAAA,IAAA;CAAA;CAOhE,MAAgBC,WAAW,CAAC;CAElBC,SAAS;EACjB,MAAMC,OAAO,KAAKC,OAAOD;EACzB,IAAI,CAACA,MAAM,MAAM,IAAIE,MAAM,2BAA2B;EACtD,OAAO,KAAKC,OAAOC,YAAYJ,MAAM,KAAKC,MAAa;CACzD;AACF,GAACR,2BAbQY,gBAAgB,CAAC,GAACZ,2BAClBa,oBAAuC;CAAEC,cAAc;CAAOC,mBAAmB;AAAK,GAACf,6BAAAI,cAAAY,0BAAAjB,QAAAkB,WAAA,UAAA,CAAA1B,OAAAE,KAAA,GAAA;CAAAyB,cAAA;CAAAC,YAAA;CAAAC,UAAA;CAAAC,aAAA;AAAA,CAAA,GAAAtB,QAAA,KAAAD,QAAA,KAAAA;;;;;;ACXhG,IACa2B,cAAUC,SADtBF,OAAO,GAACG,UAAAC,SAAA,EAAAC,QAAA,SAAA,CAAA,GAAAH,OAAAI,WAAAH,QAAAG,WAAT,MACaL,mBAAmBF,eAAe;CACrCQ,gBAAgB;EACtB,IAAI,CAAC,KAAKC,YAAY;EACtB,MAAMC,WAAoB,CAAA;EAC1B,KAAK,MAAMC,YAAY,KAAKF,YAAY;GACtC,MAAMG,QAAQ,KAAKC,kBAAkBF,SAASG,GAAI;GAClD,IAAIF,OAAO;IACT,IAAIG,MAAMC,QAAQJ,KAAK,GACrBF,SAASO,KAAK,GAAGL,KAAK;SAEtBF,SAASO,KAAKL,KAAK;GAEvB;EACF;EACA,OAAOF;CACT;CAEQQ,kBAAkB;EACxB,MAAMR,WAAkC,CAAA;EACxCA,SAASO,KAAK,KAAKE,OAAOC,aAAa,IAAI,CAAC;EAC5C,MAAMC,YAAY,KAAKC,iBAAiB;EACxC,IAAI,KAAKH,OAAOI,UACdb,SAASO,KAAK,KAAKE,OAAOI,SAASF,WAAW,IAAI,CAAC;OAEnDX,SAASO,KAAKI,SAAS;EAEzBX,SAASO,KAAK,KAAKE,OAAOK,aAAa,IAAI,CAAC;EAC5C,OAAOd;CACT;CAEQe,oBAAoB;EAC1B,MAAMC,SAAS,KAAKP,OAAOO;EAC3B,IAAI,CAACA,UAAUA,OAAOC,WAAW,GAC/B,OAAO,KAAKnB,cAAc;EAE5B,MAAMoB,WAAW,KAAKC,aAAa;EACnC,MAAMC,mBAAmB,KAAKC,wBAAwBH,QAAQ;EAC9D,MAAMI,YAAqB,CAAA;EAC3BN,OAAOO,SAASC,OAAOC,UAAU;GAC/B,MAAMC,UAAUC,OAAOC,OAAO,EAAExB,KAAKqB,MAAM,GAAGD,MAAME,OAAO;GAC3D,MAAMG,WAAW,KAAKC,QAAQC,OAAOP,MAAMO,QAASL,SAASR,UAAUE,gBAAgB;GACvF,IAAI,CAACS,UAAU;GACf,IAAIxB,MAAMC,QAAQuB,QAAQ,GACxBP,UAAUf,KAAK,GAAGsB,QAAQ;QAE1BP,UAAUf,KAAKsB,QAAQ;EAE3B,CAAC;EACD,OAAOP;CACT;CAEQV,mBAAmB;EACzB,MAAMoB,UAAU,KAAKvB,OAAOwB;EAC5B,OAAO,KAAKC,eACV,KAAKA,aAAa,IAAI,IAACC,YAAAC,UAAA,MAAA,CAGpB,KAAK3B,OAAOO,SAAS,KAAKD,kBAAkB,IAAI,KAAKjB,cAAc,GACnEkC,YAAY,UAAMG,YAAA,UAAA;GAAA,QAAA;GAAA,SAAiC,EAAEE,SAAS,OAAO;EAAC,GAAA,IAAA,CAAW,CAAA;CAGxF;CAEQC,eAAe;EACrB,MAAMN,UAAU,KAAKvB,OAAOwB;EAC5B,MAAMM,QAAa,CAAC;EACpB,IAAIP,YAAY,QACdO,MAAMC,YAAYC,MAAmB;GACnC,IAAI,KAAKhC,OAAOiC,cACd,KAAKjC,OAAOiC,aAAaD,GAAG,IAAI;QAC3B;IACLA,EAAEE,eAAe;IACjBF,EAAEG,gBAAgB;IAClB,KAAKC,OAAO;GACd;EACF;EAEF,OAAON;CACT;CAEOR,SAAS;EACd,MAAMC,UAAU,KAAKvB,OAAOwB;EAC5B,MAAMM,QAAQ,KAAKD,aAAa;EAChC,MAAMtC,WAAW,KAAKQ,gBAAgB;EACtC,IAAI,KAAKC,OAAOqC,aACd,OAAOzD,EAAE2C,SAASO,OAAO,KAAK9B,OAAOqC,YAAY9C,UAAU,IAAI,CAAC;EAElE,OAAOX,EAAE2C,SAASO,OAAOvC,QAAQ;CACnC;AACF,CAAC,KAAAH,QAAA,KAAAA;;;AC1FD,IAAa,QAAQ,iBAAgB,WAAU;CAC7C,cAAc,kBAAgB,YAAY,KAAA,CAAS;CACnD,aAAa,CAAC;AAChB,GAAG,wBAAwB,CAAC;;;;;;ACF5B,IACaqD,mBAAeC,SAD3BF,OAAO,GAACG,UAAAC,SAAA,EAAAC,QAAA,SAAA,CAAA,GAAAH,OAAAI,WAAAH,QAAAG,WAAT,MACaL,wBAAqDH,eAAe;CACxES,SAAS;EACd,MAAMC,gBAAgB,KAAKC,iBAAiB;EAC5C,OAAO,KAAKC,sBAAsBH,QAC/BC,kBAAwD;GACvD,OAAO,KAAKG,mBAAmBH,aAAa;EAC9C,GACAA,aACF;CACF;CAEQG,mBAAmBH,eAAqD;EAC9E,IAAI,KAAKI,cACP,OAAO,KAAKA,aAAcJ,eAAe,KAAKT,iBAAiB;EAEjE,OAAO,KAAKc,OAAOC,QAAQP,OACzBC,cAAcO,YAAYR,QAC1BC,cAAcQ,OACdR,cAAcS,UACdT,cAAcU,gBAChB;CACF;AACF,CAAC,KAAAZ,QAAA,KAAAA;;;ACxBD,IAAa,aAAa,iBAAgB,WAAU;CAClD,cAAc,qBAAqB,iBAAiB,KAAA,CAAS;CAC7D,aAAa,CAAC;AAChB,GAAG,wBAAwB,oBAAoB,iBAAiB,CAAC;;;ACJjE,IAAa,kBAAkB,iBAAgB,WAAU;CACvD,cAAc,0BAA0B,KAAA,GAAW,KAAA,CAAS;CAC5D,aAAa,CAAC;AAChB,GAAG,wBAAwB,yBAAyB,iBAAiB,CAAC;;;ACHtE,IAAa,mBAAmB,iBAAgB,WAAU;CACxD,cAAc,2BAA2B,KAAA,GAAW,KAAA,CAAS;CAC7D,aAAa,CAAC;AAChB,GAAG,wBAAwB,0BAA0B,iBAAiB,CAAC;;;ACNvE,IAAa,UAAS,SAAQ;CAC5B,OAAO,EACL,iBAAiB,EACf,UAAU,KACZ,EACF;AACF;;;;;ACNA,IAAI;AAAM,IAAA;AAAO,IAAA;AA2BjB,IAAa,aAAa;CACxB,QAAQ;CACR,aAAa;CACb,kBAAkB;CAClB,mBAAmB;AACrB;AAmBA,IAAW,oBAAoB,OAAO,MAAM,GAAG,QAAQ,SAAa,EAClE,QAAQ,SACV,CAAC,GAAG,KAAK,SAAS,MAAM,SAAS,MAAM,yBAAyB,cAAc,CAAC,CAAC,KAAK,MAAM,KAAK;;;;AClDhG,IAAa,6BAAb,cAAgD,uBAAuB;CACrE,YAAY,GAAG,MAAM;EACnB,MAAM,GAAG,IAAI;EACb,KAAK,OAAO,KAAK;EACjB,KAAK,YAAY,KAAK;CACxB;CACA,MAAM,OAAO,aAAa;EACxB,MAAM,IAAI,MAAM,yBAAyB;CAC3C;CACA,MAAM,SAAS,OAAO;EACpB,MAAM,IAAI,MAAM,wBAAwB;CAC1C;CACA,SAAS,MAAM;EACb,OAAO,KAAK,IAAI,KAAK,oBAAoB;GACvC,OAAO,QAAQ,QAAQ,IAAI,CAAC;EAC9B,CAAC;CACH;AACF;;;ACpBA,SAAgB,sBAAsB,WAAW;CAC/C,IAAI,cAAc,QAAQ,OAAO;EAC/B;EACA,UAAU;EACV,UAAU,KAAA;CACZ;CACA,IAAI,cAAc,UAAU,OAAO;EACjC;EACA,UAAU;EACV,UAAU;CACZ;CACA,IAAI,cAAc,QAAQ,OAAO;EAC/B;EACA,UAAU;EACV,UAAU;CACZ;CACA,MAAM,IAAI,MAAM,oBAAoB;AACtC;AACA,SAAgB,sBAAsB,UAAU;CAC9C,IAAI,SAAS,aAAa,QAAQ,OAAO;CACzC,IAAI,SAAS,aAAa,UAAU,SAAS,aAAa,UAAU,OAAO;CAC3E,IAAI,SAAS,aAAa,UAAU,SAAS,aAAa,UAAU,OAAO;CAC3E,IAAI,SAAS,aAAa,UAAU,SAAS,aAAa,KAAA,GAAW,OAAO;AAE9E;;;ACxBA,SAAgB,kBAAkB,QAAQ,YAAY;CACpD,MAAM,oBAAoB,YAAY,QAAO,SAAQ,KAAK,MAAM,YAAY,KAAK,KAAK,CAAC;CACvF,MAAM,gBAAgB,IAAI,IAAI,kBAAkB,KAAI,SAAQ,KAAK,GAAG,CAAC,CAAC,OAAO,OAAO,CAAC;CACrF,MAAM,kCAAkB,IAAI,IAAI;CAChC,KAAK,MAAM,YAAY,mBAAmB;EACxC,IAAI,CAAC,SAAS,KAAK;EACnB,MAAM,aAAa,CAAC,SAAS,WAAW,GAAI,SAAS,cAAc,CAAC,CAAE;EACtE,KAAK,MAAM,aAAa,YAAY;GAClC,IAAI,CAAC,aAAa,cAAc,SAAS,KAAK;GAC9C,MAAM,UAAU,gBAAgB,IAAI,SAAS,qBAAK,IAAI,IAAI;GAC1D,QAAQ,IAAI,SAAS,GAAG;GACxB,gBAAgB,IAAI,WAAW,OAAO;EACxC;CACF;CACA,MAAM,6BAAa,IAAI,IAAI;CAC3B,MAAM,0BAAU,IAAI,IAAI;CACxB,MAAM,cAAc,CAAC;CACrB,MAAM,gBAAgB,CAAC;CAEvB,OAAO;EACL,UAFe,OAAO,SAAS,KAAK,MAAM,UAAU,YAAY,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,eAAe,iBAAiB,YAAY,SAAS,aAAa,aAAa,CAAC,CAAC,CAAC,OAAO,OAE5K;EACA;EACA;CACF;AACF;AACA,SAAS,YAAY,MAAM,WAAW,SAAS,eAAe,iBAAiB,YAAY,SAAS,aAAa,eAAe;CAC9H,IAAI,KAAK,SAAS,SAChB,OAAO,aAAa,MAAM,SAAS,eAAe,iBAAiB,YAAY,aAAa,aAAa;CAE3G,IAAI,KAAK,SAAS,SAChB,OAAO;CAET,IAAI,KAAK,SAAS,QAChB,OAAO,YAAY,MAAM,WAAW,eAAe,iBAAiB,YAAY,SAAS,aAAa,aAAa;CAErH,MAAM,KAAK,UAAU,MAAM,SAAS;CACpC,IAAI,CAAC,WAAW,IAAI,SAAS,WAAW,GAAG;CAC3C,IAAI,KAAK,SAAS,WAAW;EAC3B,MAAM,WAAW,KAAK,SAAS,KAAI,SAAQ,YAAY,MAAM,SAAS,eAAe,iBAAiB,YAAY,aAAa,aAAa,CAAC,CAAC,CAAC,OAAO,OAAO;EAC7J,OAAO,SAAS,SAAS;GACvB,GAAG;GACH;GACA;EACF,IAAI,KAAA;CACN;CACA,MAAM,WAAW,KAAK,SAAS,KAAK,MAAM,UAAU,YAAY,MAAM,CAAC,GAAG,WAAW,KAAK,GAAG,SAAS,eAAe,iBAAiB,YAAY,SAAS,aAAa,aAAa,CAAC,CAAC,CAAC,OAAO,OAAO;CACtM,OAAO,SAAS,SAAS;EACvB,GAAG;EACH;EACA;CACF,IAAI,KAAA;AACN;AACA,SAAS,YAAY,MAAM,SAAS,eAAe,iBAAiB,YAAY,aAAa,eAAe;CAC1G,IAAI,KAAK,SAAS,SAAS,OAAO;CAClC,OAAO,aAAa,MAAM,SAAS,eAAe,iBAAiB,YAAY,aAAa,aAAa;AAC3G;AACA,SAAS,YAAY,MAAM,WAAW,eAAe,iBAAiB,YAAY,SAAS,aAAa,eAAe;CACrH,MAAM,KAAK,UAAU,MAAM,SAAS;CACpC,IAAI,CAAC,WAAW,IAAI,SAAS,WAAW,GAAG;CAC3C,MAAM,WAAW,KAAK,SAAS,KAAK,KAAK,UAAU,WAAW,KAAK,CAAC,GAAG,WAAW,KAAK,GAAG,IAAI,eAAe,iBAAiB,YAAY,SAAS,aAAa,aAAa,CAAC,CAAC,CAAC,OAAO,OAAO;CAC9L,OAAO,SAAS,SAAS;EACvB,GAAG;EACH;EACA;CACF,IAAI,KAAA;AACN;AACA,SAAS,WAAW,MAAM,WAAW,QAAQ,eAAe,iBAAiB,YAAY,SAAS,aAAa,eAAe;CAC5H,MAAM,KAAK,UAAU,MAAM,SAAS;CACpC,IAAI,CAAC,WAAW,IAAI,SAAS,WAAW,GAAG;CAC3C,MAAM,UAAU,CAAC;EACf;EACA,OAAO;CACT,CAAC;CACD,MAAM,WAAW,KAAK,SAAS,KAAK,MAAM,UAAU,YAAY,MAAM,CAAC,GAAG,WAAW,KAAK,GAAG,SAAS,eAAe,iBAAiB,YAAY,SAAS,aAAa,aAAa,CAAC,CAAC,CAAC,OAAO,OAAO;CACtM,OAAO,SAAS,SAAS;EACvB,GAAG;EACH;EACA;CACF,IAAI,KAAA;AACN;AACA,SAAS,aAAa,MAAM,SAAS,eAAe,iBAAiB,YAAY,aAAa,eAAe;CAC3G,MAAM,OAAO,iBAAiB,KAAK,MAAM,eAAe,eAAe;CACvE,IAAI,CAAC,MAAM;EACT,YAAY,KAAK;GACf,MAAM;GACN,OAAO,KAAK;EACd,CAAC;EACD;CACF;CACA,IAAI,WAAW,IAAI,IAAI,GAAG;EACxB,YAAY,KAAK;GACf,MAAM;GACN,OAAO,KAAK;EACd,CAAC;EACD;CACF;CACA,WAAW,IAAI,IAAI;CACnB,cAAc,QAAQ;CACtB,OAAO,SAAS,KAAK,OAAO,OAAO;EACjC,GAAG;EACH;CACF;AACF;AACA,SAAS,iBAAiB,MAAM,eAAe,iBAAiB;CAC9D,IAAI,cAAc,IAAI,IAAI,GAAG,OAAO;CACpC,MAAM,UAAU,gBAAgB,IAAI,IAAI;CACxC,IAAI,SAAS,SAAS,GAAG,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;CACxD,MAAM,oBAAoB,GAAG,KAAK;CAClC,MAAM,eAAe,CAAC,GAAG,aAAa,CAAC,CAAC,QAAO,SAAQ,KAAK,WAAW,iBAAiB,CAAC;CACzF,OAAO,aAAa,WAAW,IAAI,aAAa,KAAK,KAAA;AACvD;AACA,SAAS,UAAU,MAAM,WAAW;CAClC,OAAO,KAAK,MAAM,GAAG,KAAK,KAAK,GAAG,UAAU,KAAK,GAAG;AACtD;AACA,SAAS,WAAW,IAAI,KAAK,aAAa;CACxC,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG;EAChB,IAAI,IAAI,EAAE;EACV,OAAO;CACT;CACA,YAAY,KAAK;EACf,MAAM;EACN,OAAO;CACT,CAAC;CACD,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"schemaRefresh.d.ts","sourceRoot":"","sources":["../../src/lib/schemaRefresh.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,sBAAsB,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA6ED,0FAA0F;AAC1F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAwC/D;AAgQD,8FAA8F;AAC9F,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,EAC1C,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GACtC,sBAAsB,CAoQxB;AAYD,0FAA0F;AAC1F,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAEhE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,KAAK,IAAI,IAAI;IAIb,KAAK,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAQ7C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,oBAAoB;CAkD5E"}
1
+ {"version":3,"file":"schemaRefresh.d.ts","sourceRoot":"","sources":["../../src/lib/schemaRefresh.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,sBAAsB,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA6ED,0FAA0F;AAC1F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAwC/D;AAmQD,8FAA8F;AAC9F,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,EAC1C,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GACtC,sBAAsB,CA0QxB;AAYD,0FAA0F;AAC1F,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAEhE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,KAAK,IAAI,IAAI;IAIb,KAAK,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAQ7C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,oBAAoB;CAkD5E"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-module-a-form",
3
- "version": "5.1.53",
4
- "gitHead": "253160c06dab8bc48aa9b39016cf61ccf20dfa20",
3
+ "version": "5.1.54",
4
+ "gitHead": "5324b0bf03e570ec2e941873b0c5644e7ab5dbc4",
5
5
  "description": "",
6
6
  "keywords": [
7
7
  "Zova Module"
@@ -238,18 +238,16 @@ function opaqueBehavior(value: unknown): boolean {
238
238
  );
239
239
  }
240
240
 
241
+ const pageEntryBlockOptions = ['blocks', 'resource', 'id', 'formScene', 'pageTitleKey', 'draft'];
241
242
  const blockOptions: Record<string, string[]> = {
242
- 'basic-pageentry:blockPageEntry': [
243
- 'blocks',
244
- 'resource',
245
- 'id',
246
- 'formScene',
247
- 'pageTitleKey',
248
- 'draft',
249
- ],
243
+ 'basic-pageentry:blockPageEntry': pageEntryBlockOptions,
244
+ 'start-pageentry:blockPageEntry': pageEntryBlockOptions,
250
245
  'basic-pageentry:blockForm': ['blocks'],
246
+ 'start-pageentry:blockForm': ['blocks'],
251
247
  'basic-form:blockFormLayout': ['formLayout'],
248
+ 'start-form:blockFormLayout': ['formLayout'],
252
249
  'basic-pageentry:blockToolbarRow': ['actions'],
250
+ 'start-pageentry:blockToolbarRow': ['actions'],
253
251
  };
254
252
 
255
253
  function safeLayoutNode(value: unknown): boolean {
@@ -317,7 +315,7 @@ function safeBlocks(value: unknown): boolean {
317
315
  );
318
316
  }
319
317
 
320
- // Only Basic's declared layout grammar owns these title strings. Rest data/options,
318
+ // Only Basic's and Start's declared layout grammar owns these title strings. Rest data/options,
321
319
  // action metadata, descriptions, field names, and unknown structures stay strict.
322
320
  function normalizeLayoutNode(value: unknown): unknown {
323
321
  if (!isRecord(value)) return value;
@@ -334,7 +332,12 @@ function normalizeBlocks(value: unknown): unknown {
334
332
  if (!isRecord(block) || !isRecord(block.options)) return block;
335
333
  const options = { ...block.options };
336
334
  if (Object.hasOwn(options, 'blocks')) options.blocks = normalizeBlocks(options.blocks);
337
- if (block.render === 'basic-form:blockFormLayout' && safeLayout(options.formLayout)) {
335
+ if (
336
+ ['basic-form:blockFormLayout', 'start-form:blockFormLayout'].includes(
337
+ block.render as string,
338
+ ) &&
339
+ safeLayout(options.formLayout)
340
+ ) {
338
341
  const layout = options.formLayout as Record<string, unknown>;
339
342
  options.formLayout = { children: (layout.children as unknown[]).map(normalizeLayoutNode) };
340
343
  }
@@ -425,7 +428,13 @@ export function createSchemaRefreshContract(
425
428
  const form = isRecord(rest.form) ? rest.form : undefined;
426
429
  const render = rest.render ?? form?.render;
427
430
  const renderType = isRecord(render) ? render.type : render;
428
- if (renderType !== 'basic-details:formFieldDetails') continue;
431
+ if (
432
+ !['basic-details:formFieldDetails', 'start-details:formFieldDetails'].includes(
433
+ String(renderType),
434
+ )
435
+ ) {
436
+ continue;
437
+ }
429
438
  for (const name of [
430
439
  property.key,
431
440
  property.schemaKey,
@@ -434,7 +443,7 @@ export function createSchemaRefreshContract(
434
443
  if (typeof name === 'string') detailNames.add(name);
435
444
  }
436
445
  }
437
- // Basic Details resolves its row schema through the exact hidden `_name` auxiliary.
446
+ // Basic and Start Details resolve row schemas through the exact hidden `_name` auxiliary.
438
447
  // It belongs to that nested form, not to an unrelated parent field's behavior scope.
439
448
  const auxiliaryDetails = new Set<string>();
440
449
  for (const property of effective) {