@robot-admin/naive-ui-components 0.24.6 → 0.25.0

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.
Files changed (99) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +5 -1
  3. package/README_EN.md +5 -1
  4. package/dist/C_Form.base.css +23 -11
  5. package/dist/C_Form.css +23 -11
  6. package/dist/C_FormSearch.css +79 -79
  7. package/dist/C_Table.base.css +145 -120
  8. package/dist/C_Table.css +122 -109
  9. package/dist/C_Table2.cjs +2 -2
  10. package/dist/C_Table2.js +2 -2
  11. package/dist/config.d.cts +2 -2
  12. package/dist/config.d.ts +2 -2
  13. package/dist/constants2.d.cts +6 -6
  14. package/dist/constants2.d.ts +6 -6
  15. package/dist/constants3.d.cts +3 -3
  16. package/dist/constants3.d.ts +3 -3
  17. package/dist/data.d.cts +2 -2
  18. package/dist/data.d.ts +2 -2
  19. package/dist/data2.d.cts +8 -8
  20. package/dist/data2.d.ts +8 -8
  21. package/dist/dictionary.cjs +1 -1
  22. package/dist/dictionary.d.cts +10 -1
  23. package/dist/dictionary.d.ts +10 -1
  24. package/dist/dictionary.js +1 -1
  25. package/dist/helpers.cjs +1 -1
  26. package/dist/helpers.js +1 -1
  27. package/dist/index.d.cts +2 -2
  28. package/dist/index.d.ts +2 -2
  29. package/dist/index.vue.d.cts +5 -5
  30. package/dist/index.vue.d.ts +5 -5
  31. package/dist/index10.vue.d.ts +4 -4
  32. package/dist/index11.vue.d.cts +4 -4
  33. package/dist/index13.vue.d.ts +3 -3
  34. package/dist/index14.vue.d.cts +3 -3
  35. package/dist/index15.vue.d.ts +8 -8
  36. package/dist/index16.vue.d.cts +8 -8
  37. package/dist/index17.vue.d.ts +3 -3
  38. package/dist/index18.vue.d.cts +3 -3
  39. package/dist/index18.vue.d.ts +2 -2
  40. package/dist/index19.vue.d.cts +2 -2
  41. package/dist/index19.vue.d.ts +1 -1
  42. package/dist/index2.vue.d.cts +3 -3
  43. package/dist/index2.vue.d.ts +3 -3
  44. package/dist/index20.vue.d.cts +1 -1
  45. package/dist/index21.vue.d.ts +1 -1
  46. package/dist/index22.vue.d.cts +1 -1
  47. package/dist/index22.vue.d.ts +2 -2
  48. package/dist/index23.vue.d.cts +2 -2
  49. package/dist/index23.vue.d.ts +2 -2
  50. package/dist/index24.vue.d.cts +1 -1
  51. package/dist/index24.vue.d.ts +1 -1
  52. package/dist/index25.vue.d.cts +1 -1
  53. package/dist/index25.vue.d.ts +1 -1
  54. package/dist/index26.vue.d.cts +2 -2
  55. package/dist/index26.vue.d.ts +2 -2
  56. package/dist/index28.vue.d.cts +1 -1
  57. package/dist/index28.vue.d.ts +1 -1
  58. package/dist/index29.vue.d.cts +1 -1
  59. package/dist/index29.vue.d.ts +1 -1
  60. package/dist/index3.vue.d.cts +6 -6
  61. package/dist/index3.vue.d.ts +6 -6
  62. package/dist/index5.vue.d.cts +2 -2
  63. package/dist/index7.vue.d.ts +1 -1
  64. package/dist/index8.vue.d.cts +1 -1
  65. package/dist/mapUtils.d.cts +1 -1
  66. package/dist/mapUtils.d.ts +1 -1
  67. package/dist/serializeSearch.cjs +1 -1
  68. package/dist/serializeSearch.js +1 -1
  69. package/dist/style.css +224 -199
  70. package/dist/useCalendarEvents.d.cts +1 -1
  71. package/dist/useCalendarEvents.d.ts +1 -1
  72. package/dist/useCollapsePanel.d.cts +6 -6
  73. package/dist/useCollapsePanel.d.ts +6 -6
  74. package/dist/useComponentLocale.cjs +1 -1
  75. package/dist/useComponentLocale.js +1 -1
  76. package/dist/useCropperCore.d.cts +5 -5
  77. package/dist/useCropperCore.d.ts +5 -5
  78. package/dist/useDictionary.cjs +1 -1
  79. package/dist/useDictionary.js +1 -1
  80. package/dist/useDynamicFormState.d.cts +22 -13
  81. package/dist/useDynamicFormState.d.ts +22 -13
  82. package/dist/useEdgeInteraction.d.cts +2 -2
  83. package/dist/useEdgeInteraction.d.ts +2 -2
  84. package/dist/useFormConfig.d.cts +2 -0
  85. package/dist/useFormConfig.d.ts +2 -0
  86. package/dist/useInfiniteScroll.d.cts +1 -1
  87. package/dist/useInfiniteScroll.d.ts +1 -1
  88. package/dist/useQRCode.d.cts +2 -2
  89. package/dist/useQRCode.d.ts +2 -2
  90. package/dist/useSignatureHistory.d.cts +6 -6
  91. package/dist/useSignatureHistory.d.ts +6 -6
  92. package/dist/useSplitResize.d.cts +7 -7
  93. package/dist/useSplitResize.d.ts +7 -7
  94. package/dist/useWorkflowValidation.d.cts +5 -5
  95. package/dist/useWorkflowValidation.d.ts +5 -5
  96. package/dist/verification.d.cts +5 -5
  97. package/dist/verification.d.ts +5 -5
  98. package/docs/guides/data-workflows.md +9 -0
  99. package/package.json +1 -1
package/dist/data.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as getRetryableKeys, i as createBatchPatch, n as BatchOperationResult, r as PatchScalar, t as BatchFieldChange } from "./batchPatch.cjs";
2
- import { a as DictionarySource, c as getDictionaryLabel, i as DictionaryProvider, l as parseDictionaryValue, n as DictionaryOption, o as DictionaryValue, r as DictionaryParseResult, s as createDictionaryLabelResolver, t as DictionaryBinding } from "./dictionary.cjs";
2
+ import { a as DictionarySource, c as createDictionaryLabelResolver, i as DictionaryProvider, l as getDictionaryLabel, n as DictionaryOption, o as DictionaryState, r as DictionaryParseResult, s as DictionaryValue, t as DictionaryBinding, u as parseDictionaryValue } from "./dictionary.cjs";
3
3
  import { n as ValidationTarget, r as collectValidationIssues, t as ValidationIssue } from "./validation.cjs";
4
4
  import { n as ValueCodec, r as createNumberCodec, t as NumberCodecOptions } from "./numberCodec.cjs";
5
- export { type BatchFieldChange, type BatchOperationResult, type DictionaryBinding, type DictionaryOption, type DictionaryParseResult, type DictionaryProvider, type DictionarySource, type DictionaryValue, type NumberCodecOptions, type PatchScalar, type ValidationIssue, type ValidationTarget, type ValueCodec, collectValidationIssues, createBatchPatch, createDictionaryLabelResolver, createNumberCodec, getDictionaryLabel, getRetryableKeys, parseDictionaryValue };
5
+ export { type BatchFieldChange, type BatchOperationResult, type DictionaryBinding, type DictionaryOption, type DictionaryParseResult, type DictionaryProvider, type DictionarySource, type DictionaryState, type DictionaryValue, type NumberCodecOptions, type PatchScalar, type ValidationIssue, type ValidationTarget, type ValueCodec, collectValidationIssues, createBatchPatch, createDictionaryLabelResolver, createNumberCodec, getDictionaryLabel, getRetryableKeys, parseDictionaryValue };
package/dist/data.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as getRetryableKeys, i as createBatchPatch, n as BatchOperationResult, r as PatchScalar, t as BatchFieldChange } from "./batchPatch.js";
2
- import { a as DictionarySource, c as getDictionaryLabel, i as DictionaryProvider, l as parseDictionaryValue, n as DictionaryOption, o as DictionaryValue, r as DictionaryParseResult, s as createDictionaryLabelResolver, t as DictionaryBinding } from "./dictionary.js";
2
+ import { a as DictionarySource, c as createDictionaryLabelResolver, i as DictionaryProvider, l as getDictionaryLabel, n as DictionaryOption, o as DictionaryState, r as DictionaryParseResult, s as DictionaryValue, t as DictionaryBinding, u as parseDictionaryValue } from "./dictionary.js";
3
3
  import { n as ValidationTarget, r as collectValidationIssues, t as ValidationIssue } from "./validation.js";
4
4
  import { n as ValueCodec, r as createNumberCodec, t as NumberCodecOptions } from "./numberCodec.js";
5
- export { type BatchFieldChange, type BatchOperationResult, type DictionaryBinding, type DictionaryOption, type DictionaryParseResult, type DictionaryProvider, type DictionarySource, type DictionaryValue, type NumberCodecOptions, type PatchScalar, type ValidationIssue, type ValidationTarget, type ValueCodec, collectValidationIssues, createBatchPatch, createDictionaryLabelResolver, createNumberCodec, getDictionaryLabel, getRetryableKeys, parseDictionaryValue };
5
+ export { type BatchFieldChange, type BatchOperationResult, type DictionaryBinding, type DictionaryOption, type DictionaryParseResult, type DictionaryProvider, type DictionarySource, type DictionaryState, type DictionaryValue, type NumberCodecOptions, type PatchScalar, type ValidationIssue, type ValidationTarget, type ValueCodec, collectValidationIssues, createBatchPatch, createDictionaryLabelResolver, createNumberCodec, getDictionaryLabel, getRetryableKeys, parseDictionaryValue };
package/dist/data2.d.cts CHANGED
@@ -67,26 +67,26 @@ declare const __VLS_base: vue.DefineComponent<CTabsProps, {
67
67
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
68
68
  "update:modelValue": (value: TabsValue) => any;
69
69
  close: (value: TabsValue) => any;
70
- change: (value: TabsValue, item: TabsItem | undefined) => any;
71
70
  add: () => any;
71
+ change: (value: TabsValue, item: TabsItem | undefined) => any;
72
72
  }, string, vue.PublicProps, Readonly<CTabsProps> & Readonly<{
73
73
  "onUpdate:modelValue"?: ((value: TabsValue) => any) | undefined;
74
74
  onClose?: ((value: TabsValue) => any) | undefined;
75
- onChange?: ((value: TabsValue, item: TabsItem | undefined) => any) | undefined;
76
75
  onAdd?: (() => any) | undefined;
76
+ onChange?: ((value: TabsValue, item: TabsItem | undefined) => any) | undefined;
77
77
  }>, {
78
- modelValue: TabsValue | null;
79
78
  type: TabsType;
79
+ modelValue: TabsValue | null;
80
+ defaultValue: TabsValue | null;
80
81
  items: readonly TabsItem[];
81
82
  size: TabsSize;
82
- closable: boolean;
83
- displayDirective: TabsDisplayDirective;
84
- defaultValue: TabsValue | null;
85
- addable: boolean;
86
- animated: boolean;
87
83
  placement: TabsPlacement;
88
84
  justifyContent: TabsJustifyContent;
85
+ animated: boolean;
86
+ closable: boolean;
87
+ addable: boolean;
89
88
  tabsOnly: boolean;
89
+ displayDirective: TabsDisplayDirective;
90
90
  paneClass: string;
91
91
  paneStyle: string | vue.CSSProperties;
92
92
  beforeChange: (target: TabsValue, current: TabsValue | null) => boolean | Promise<boolean>;
package/dist/data2.d.ts CHANGED
@@ -67,26 +67,26 @@ declare const __VLS_base: vue.DefineComponent<CTabsProps, {
67
67
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
68
68
  "update:modelValue": (value: TabsValue) => any;
69
69
  close: (value: TabsValue) => any;
70
- change: (value: TabsValue, item: TabsItem | undefined) => any;
71
70
  add: () => any;
71
+ change: (value: TabsValue, item: TabsItem | undefined) => any;
72
72
  }, string, vue.PublicProps, Readonly<CTabsProps> & Readonly<{
73
73
  "onUpdate:modelValue"?: ((value: TabsValue) => any) | undefined;
74
74
  onClose?: ((value: TabsValue) => any) | undefined;
75
- onChange?: ((value: TabsValue, item: TabsItem | undefined) => any) | undefined;
76
75
  onAdd?: (() => any) | undefined;
76
+ onChange?: ((value: TabsValue, item: TabsItem | undefined) => any) | undefined;
77
77
  }>, {
78
- modelValue: TabsValue | null;
79
78
  type: TabsType;
79
+ modelValue: TabsValue | null;
80
+ defaultValue: TabsValue | null;
80
81
  items: readonly TabsItem[];
81
82
  size: TabsSize;
82
- closable: boolean;
83
- displayDirective: TabsDisplayDirective;
84
- defaultValue: TabsValue | null;
85
- addable: boolean;
86
- animated: boolean;
87
83
  placement: TabsPlacement;
88
84
  justifyContent: TabsJustifyContent;
85
+ animated: boolean;
86
+ closable: boolean;
87
+ addable: boolean;
89
88
  tabsOnly: boolean;
89
+ displayDirective: TabsDisplayDirective;
90
90
  paneClass: string;
91
91
  paneStyle: string | vue.CSSProperties;
92
92
  beforeChange: (target: TabsValue, current: TabsValue | null) => boolean | Promise<boolean>;
@@ -1 +1 @@
1
- function e(e){let t=new Map;for(let n of e)t.has(n.value)||t.set(n.value,n.label);return e=>t.get(e)??String(e??``)}function t(e,t){return t.find(t=>Object.is(t.value,e))?.label??String(e??``)}function n(e,t){let n=t.find(t=>Object.is(t.value,e));if(n)return{ok:!0,value:n.value};if(typeof e!=`string`)return{ok:!1,reason:`unknown`,input:e};let r=t.filter(t=>String(t.value)===e),i=r.length?r:t.filter(t=>t.label===e);return i.length===1?{ok:!0,value:i[0].value}:{ok:!1,reason:i.length?`ambiguous`:`unknown`,input:e}}function r(e){return Array.isArray(e)?e.map(r):typeof e==`string`||typeof e==`number`||typeof e==`boolean`?JSON.stringify([typeof e,e]):e}function i(e){if(Array.isArray(e))return e.map(i);if(typeof e!=`string`)return e;try{let t=JSON.parse(e);if(Array.isArray(t)&&t.length===2&&[`string`,`number`,`boolean`].includes(t[0])&&typeof t[1]===t[0])return t[1]}catch{}return e}function a(e){return e.map(e=>({...e,value:r(e.value)}))}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return e}});
1
+ function e(e){let t=new Map;for(let n of e)t.has(n.value)||t.set(n.value,n.label);let n=e=>t.get(e)??String(e??``);return e=>Array.isArray(e)?e.map(n).join(`、`):n(e)}function t(t,n){return Array.isArray(t)?e(n)(t):n.find(e=>Object.is(e.value,t))?.label??String(t??``)}function n(e,t){let n=t.find(t=>Object.is(t.value,e));if(n)return{ok:!0,value:n.value};if(typeof e!=`string`)return{ok:!1,reason:`unknown`,input:e};let r=t.filter(t=>String(t.value)===e),i=r.length?r:t.filter(t=>t.label===e);return i.length===1?{ok:!0,value:i[0].value}:{ok:!1,reason:i.length?`ambiguous`:`unknown`,input:e}}function r(e){return Array.isArray(e)?e.map(r):typeof e==`string`||typeof e==`number`||typeof e==`boolean`?JSON.stringify([typeof e,e]):e}function i(e){if(Array.isArray(e))return e.map(i);if(typeof e!=`string`)return e;try{let t=JSON.parse(e);if(Array.isArray(t)&&t.length===2&&[`string`,`number`,`boolean`].includes(t[0])&&typeof t[1]===t[0])return t[1]}catch{}return e}function a(e){return e.map(e=>({...e,value:r(e.value)}))}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return e}});
@@ -13,9 +13,18 @@ interface DictionarySource {
13
13
  getOptions(): readonly DictionaryOption[];
14
14
  load?(context: {
15
15
  signal: AbortSignal;
16
+ force?: boolean;
16
17
  }): Promise<readonly DictionaryOption[]>;
18
+ /** 可选的共享加载状态;订阅同时通知数据和状态更新。 */
19
+ getState?(): DictionaryState;
17
20
  subscribe?(listener: () => void): () => void;
18
21
  }
22
+ interface DictionaryState {
23
+ status: 'idle' | 'loading' | 'ready' | 'empty' | 'error';
24
+ error?: unknown;
25
+ /** 可选的不可变数据快照;仅状态变化时应复用同一数组,不可原地修改。 */
26
+ options?: readonly DictionaryOption[];
27
+ }
19
28
  interface DictionaryProvider {
20
29
  getDictionary(name: string): DictionarySource | undefined;
21
30
  }
@@ -35,4 +44,4 @@ declare function getDictionaryLabel(value: unknown, options: readonly Dictionary
35
44
  /** 原码优先于标签;多义标签或字符串化编码必须交由使用侧明确处理。 */
36
45
  declare function parseDictionaryValue(input: unknown, options: readonly DictionaryOption[]): DictionaryParseResult;
37
46
  //#endregion
38
- export { DictionarySource as a, getDictionaryLabel as c, DictionaryProvider as i, parseDictionaryValue as l, DictionaryOption as n, DictionaryValue as o, DictionaryParseResult as r, createDictionaryLabelResolver as s, DictionaryBinding as t };
47
+ export { DictionarySource as a, createDictionaryLabelResolver as c, DictionaryProvider as i, getDictionaryLabel as l, DictionaryOption as n, DictionaryState as o, DictionaryParseResult as r, DictionaryValue as s, DictionaryBinding as t, parseDictionaryValue as u };
@@ -13,9 +13,18 @@ interface DictionarySource {
13
13
  getOptions(): readonly DictionaryOption[];
14
14
  load?(context: {
15
15
  signal: AbortSignal;
16
+ force?: boolean;
16
17
  }): Promise<readonly DictionaryOption[]>;
18
+ /** 可选的共享加载状态;订阅同时通知数据和状态更新。 */
19
+ getState?(): DictionaryState;
17
20
  subscribe?(listener: () => void): () => void;
18
21
  }
22
+ interface DictionaryState {
23
+ status: 'idle' | 'loading' | 'ready' | 'empty' | 'error';
24
+ error?: unknown;
25
+ /** 可选的不可变数据快照;仅状态变化时应复用同一数组,不可原地修改。 */
26
+ options?: readonly DictionaryOption[];
27
+ }
19
28
  interface DictionaryProvider {
20
29
  getDictionary(name: string): DictionarySource | undefined;
21
30
  }
@@ -35,4 +44,4 @@ declare function getDictionaryLabel(value: unknown, options: readonly Dictionary
35
44
  /** 原码优先于标签;多义标签或字符串化编码必须交由使用侧明确处理。 */
36
45
  declare function parseDictionaryValue(input: unknown, options: readonly DictionaryOption[]): DictionaryParseResult;
37
46
  //#endregion
38
- export { DictionarySource as a, getDictionaryLabel as c, DictionaryProvider as i, parseDictionaryValue as l, DictionaryOption as n, DictionaryValue as o, DictionaryParseResult as r, createDictionaryLabelResolver as s, DictionaryBinding as t };
47
+ export { DictionarySource as a, createDictionaryLabelResolver as c, DictionaryProvider as i, getDictionaryLabel as l, DictionaryOption as n, DictionaryState as o, DictionaryParseResult as r, DictionaryValue as s, DictionaryBinding as t, parseDictionaryValue as u };
@@ -1 +1 @@
1
- function e(e){let t=new Map;for(let n of e)t.has(n.value)||t.set(n.value,n.label);return e=>t.get(e)??String(e??``)}function t(e,t){return t.find(t=>Object.is(t.value,e))?.label??String(e??``)}function n(e,t){let n=t.find(t=>Object.is(t.value,e));if(n)return{ok:!0,value:n.value};if(typeof e!=`string`)return{ok:!1,reason:`unknown`,input:e};let r=t.filter(t=>String(t.value)===e),i=r.length?r:t.filter(t=>t.label===e);return i.length===1?{ok:!0,value:i[0].value}:{ok:!1,reason:i.length?`ambiguous`:`unknown`,input:e}}function r(e){return Array.isArray(e)?e.map(r):typeof e==`string`||typeof e==`number`||typeof e==`boolean`?JSON.stringify([typeof e,e]):e}function i(e){if(Array.isArray(e))return e.map(i);if(typeof e!=`string`)return e;try{let t=JSON.parse(e);if(Array.isArray(t)&&t.length===2&&[`string`,`number`,`boolean`].includes(t[0])&&typeof t[1]===t[0])return t[1]}catch{}return e}function a(e){return e.map(e=>({...e,value:r(e.value)}))}export{n as a,t as i,i as n,a as o,r,e as t};
1
+ function e(e){let t=new Map;for(let n of e)t.has(n.value)||t.set(n.value,n.label);let n=e=>t.get(e)??String(e??``);return e=>Array.isArray(e)?e.map(n).join(`、`):n(e)}function t(t,n){return Array.isArray(t)?e(n)(t):n.find(e=>Object.is(e.value,t))?.label??String(t??``)}function n(e,t){let n=t.find(t=>Object.is(t.value,e));if(n)return{ok:!0,value:n.value};if(typeof e!=`string`)return{ok:!1,reason:`unknown`,input:e};let r=t.filter(t=>String(t.value)===e),i=r.length?r:t.filter(t=>t.label===e);return i.length===1?{ok:!0,value:i[0].value}:{ok:!1,reason:i.length?`ambiguous`:`unknown`,input:e}}function r(e){return Array.isArray(e)?e.map(r):typeof e==`string`||typeof e==`number`||typeof e==`boolean`?JSON.stringify([typeof e,e]):e}function i(e){if(Array.isArray(e))return e.map(i);if(typeof e!=`string`)return e;try{let t=JSON.parse(e);if(Array.isArray(t)&&t.length===2&&[`string`,`number`,`boolean`].includes(t[0])&&typeof t[1]===t[0])return t[1]}catch{}return e}function a(e){return e.map(e=>({...e,value:r(e.value)}))}export{n as a,t as i,i as n,a as o,r,e as t};
package/dist/helpers.cjs CHANGED
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./density.cjs`),t=require(`./dictionary.cjs`),n=require(`./data2.cjs`),r=require(`./useComponentLocale.cjs`),i=require(`./feedback.cjs`),a=require(`./C_Icon2.cjs`),o=require(`./export-helper.cjs`),s=require(`./useFormConfig.cjs`),c=require(`./useGridWidth.cjs`),l=require(`./useDictionary.cjs`),u=require(`./formValidation.cjs`);let d=require(`vue`),f=require(`naive-ui`);function p(e,t){if(Reflect.has(e,t)&&Object.prototype.hasOwnProperty.call(e,t))return(0,d.isReactive)(e);let r=e;for(let e of n.o(t)){if(!r||typeof r!=`object`||!(0,d.isReactive)(r))return!1;r=r[e]}return!0}function m(e,t=new Set){if(typeof e!=`object`||!e||t.has(e))return!0;t.add(e);let n=(0,d.isReactive)(e);if(Array.isArray(e)){for(let r of e)n=m(r,t)&&n;return n}return e instanceof Map?(e.forEach((e,r)=>{n=m(r,t)&&n,n=m(e,t)&&n}),n):e instanceof Set?(e.forEach(e=>{n=m(e,t)&&n}),n):(Object.values(e).forEach(e=>{n=m(e,t)&&n}),n)}function h(e,t){let r=(0,d.shallowRef)({}),i=new Map,a=(0,d.isReactive)(e);function o(){let n=new Set(t?(0,d.toValue)(t):[...Object.keys(r.value),...Object.keys(e)]);for(let e of i.keys())n.has(e)||i.delete(e);return n}let s=(0,d.computed)(()=>{for(let e of o())if(u(e))return!0;return!1});function c(){let e=[];for(let t of o())u(t)&&e.push(t);return e}function l(e){return f(e)}function u(t){if(!a)return f(t);let o=i.get(t);return o||(o=(0,d.computed)(()=>{let i=n.r(e,t),a=p(e,t);return{cacheable:m(i)&&a,dirty:!n.a(n.r(r.value,t),i)}}),i.set(t,o)),o.value.cacheable?o.value.dirty:f(t)}function f(t){let i=n.r(e,t);return m(i),!n.a(n.r(r.value,t),i)}function h(){r.value=n.t(e)}function g(){return n.t(r.value)}return{isDirty:s,getChangedFields:c,isFieldDirty:l,markAsClean:h,getCleanModel:g}}const g={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:[],upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:!1};function _(e){return n.t((e.value===void 0?g[e.type]:e.value)??null)}function v(e){let t=new Set;e.forEach((e,n)=>{if(!e.prop?.trim())throw TypeError(`[C_Form] options[${n}].prop 不能为空`);if(t.has(e.prop))throw TypeError(`[C_Form] 字段 prop 重复: ${e.prop}`);t.add(e.prop)})}function y(e,t,a,o,s,c){let f=(0,d.reactive)(n.t(s?.value??(t.value.mode===`edit`?t.value.initialValues:void 0)??{})),p=(0,d.reactive)({}),m=new Map,g=(0,d.ref)({}),y=(0,d.ref)({}),b=(0,d.ref)({}),x=(0,d.ref)(!1),S=new Map,C=!1,w,T=new Map,E=new Map,D=new Map,O=new Map,k=new Set,A=!1,j=!1,M=0,N=i.t(()=>t.value.feedback),{t:P}=r.t(()=>t.value.locale),{isDirty:F,getChangedFields:ee,isFieldDirty:te,markAsClean:I,getCleanModel:ne}=h(f,()=>e.value.map(e=>e.prop));function L(e,n,r){if(!C)try{t.value.onError?t.value.onError(e,{source:n,field:r}):N.error(e instanceof Error?e.message:String(e),e)}catch{}}let R=l.t(()=>new Map(e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions).map(e=>[e.prop,e.dictionary])),{onError:(e,t)=>L(e,`async-options`,t)});function z(e,t){if(!(C||!t))try{N[e](t)}catch{}}let B=(0,d.computed)(()=>e.value.filter(e=>{if(e.show===!1)return!1;if(!e.showWhen)return!0;try{return e.showWhen(f)}catch(t){return L(t,`callback`,e.prop),!1}}));function re(){j=!0;let e=++M;(0,d.nextTick)(()=>{e===M&&(j=!1)})}function V(){return n.t(f)}function ie(t){let r=t?n.t(t):{};return e.value.forEach(e=>{n.i(r,e.prop)||n.c(r,e.prop,_(e))}),r}function H(e){try{let t=u.n(e.rulesWhen?e.rulesWhen(f):e.rules);if(S.delete(e.prop),e.required&&!t.some(e=>e.required)){let n=e.label||e.prop;t.unshift(u.t(n,P(`form.required`,{label:n})))}if(e.crossFieldValidator){let n=e.crossFieldValidator;t.push({async validator(){let e=await n(f);if(e)throw Error(e)},trigger:[`change`,`blur`]})}if(t.length===0){delete p[e.prop];return}p[e.prop]=t.map(t=>({...t,key:e.prop}))}catch(t){delete p[e.prop],S.set(e.prop,t),L(t,`callback`,e.prop)}}function ae(){e.value.forEach(e=>{(e.rulesWhen||e.crossFieldValidator)&&H(e)})}function oe(e){k.forEach(r=>{e.has(r)||(m.delete(r),delete p[r],S.delete(r),G(r),D.delete(r),t.value.preserveRemovedFields||n.n(f,r))})}function se(t=!1){try{v(e.value);let r=V(),i=new Set(e.value.map(e=>e.prop));oe(i),e.value.forEach(e=>{n.i(f,e.prop)||n.c(f,e.prop,_(e)),H(e),ce(e)}),k=i,X(W(r),!1),t&&(0,d.nextTick)(I)}catch(e){throw L(e,`initialize`),e}}function U(e){let t=V();re(),n.s(f,ie(e)),X(W(t),!1)}function W(t){return[...new Set([...Object.keys(t),...Object.keys(f),...e.value.map(e=>e.prop)])].filter(e=>!n.a(n.r(t,e),n.r(f,e)))}function G(e){E.get(e)?.abort(),E.delete(e),T.delete(e),O.delete(e),delete g.value[e],delete y.value[e],delete b.value[e]}function ce(e){if(D.get(e.prop)!==e.asyncOptions){if(G(e.prop),!e.asyncOptions){D.delete(e.prop);return}D.set(e.prop,e.asyncOptions),K(e,`initialize`)}}function K(e,t){if(C)return;let n=O.get(e.prop),r={item:e,reason:n?.reason===`initialize`?n.reason:t};O.set(e.prop,r),(0,d.nextTick)(()=>{O.get(e.prop)===r&&(O.delete(e.prop),ue(r.item,r.reason))})}function q(e,t,n){return C||n.signal.aborted||T.get(e)!==t||E.get(e)!==n}function le(e){return!C&&!!e.asyncOptions&&D.get(e.prop)===e.asyncOptions}async function ue(e,t){if(!le(e))return;let{prop:r}=e,i=(T.get(r)??0)+1;T.set(r,i),E.get(r)?.abort();let a=new AbortController;E.set(r,a),y.value[r]=!0,delete b.value[r];try{let o=await e.asyncOptions(V(),{field:r,reason:t,signal:a.signal});if(q(r,i,a))return;if(!Array.isArray(o))throw TypeError(`[C_Form] ${r}.asyncOptions 必须返回数组`);g.value[r]=n.t([...o])}catch(e){if(q(r,i,a))return;b.value[r]=e,L(e,`async-options`,r)}finally{T.get(r)===i&&E.get(r)===a&&(y.value[r]=!1,E.delete(r))}}async function J(t){let n=e.value.filter(e=>e.asyncOptions&&(!t||e.prop===t)),r=e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&(!t||e.prop===t));if(t&&n.length===0&&r.length===0)throw Error(`[C_Form] 未找到异步选项字段: ${t}`);await Promise.all([...n.map(e=>(O.delete(e.prop),ue(e,`manual`))),...r.map(e=>R.reload(e.prop))])}function Y(){let t=e.value.filter(e=>e.valueWhen),r=new Set;if(t.length===0)return[];for(let e=0;e<=t.length;e+=1){let e=!1;for(let i of t)try{let t=i.valueWhen?.(f);t!==void 0&&!n.a(n.r(f,i.prop),t)&&(n.c(f,i.prop,n.t(t)),r.add(i.prop),e=!0)}catch(e){L(e,`callback`,i.prop)}if(!e)return[...r]}return L(Error(`[C_Form] valueWhen 存在循环依赖,已停止继续计算`),`callback`),[...r]}function de(t){let r=t.map(e=>n.o(e).join(`.`));return e.value.filter(e=>!e.asyncOptions||!e.dependsOn?!1:(Array.isArray(e.dependsOn)?e.dependsOn:[e.dependsOn]).some(e=>{let t=n.o(e).join(`.`);return r.some(e=>e===t||e.startsWith(`${t}.`)||t.startsWith(`${e}.`))}))}function X(e,n=!0){let r=[...new Set([...e,...Y()])];ae(),de(r).forEach(e=>{K(e,`dependency`)}),n&&t.value.validateOnChange&&(0,d.nextTick)(()=>{C||Z(r).catch(()=>void 0)})}function fe(e){X([e])}function pe(e,t){t?m.set(e,t):m.delete(e)}async function me(){if(c?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!a.value)throw Error(`[C_Form] 表单引用不存在`);try{let e=B.value.find(e=>S.has(e.prop));if(e)throw S.get(e.prop);if(await a.value.validate(),C)throw Error(`[C_Form] 表单已卸载`);o(`validate-success`,V())}catch(e){throw C||o(`validate-error`,e),e}}async function Z(e){if(c?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!a.value)throw Error(`[C_Form] 表单引用不存在`);let t=[...new Set(Array.isArray(e)?e:[e])],n=t.find(e=>S.has(e));if(n)throw S.get(n);let r=[],i=t.flatMap(e=>{let t=m.get(e);return t?[t.validate()]:(r.push(e),[])});r.length>0&&i.push(a.value.validate(void 0,e=>r.includes(String(e.key??``))));let o=(await Promise.allSettled(i)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(o.length>0)throw o}function he(e){if(!e){a.value?.restoreValidation();return}(Array.isArray(e)?e:[e]).forEach(e=>m.get(e)?.restoreValidation())}async function Q(e){let t=B.value.filter(e).map(e=>e.prop);if(t.length===0)return!0;try{return await Z(t),!0}catch{return!1}}function ge(e){let n=typeof e==`string`?e:t.value.steps?.steps?.[e]?.key;return n?Q(e=>e.layout?.step===n):Promise.resolve(!0)}function _e(e){return Q(t=>t.layout?.tab===e)}function ve(){return Q(e=>!!e.layout?.dynamic)}function ye(e){return Q(t=>t.layout?.group===e)}function be(e){Object.entries(n.t(e)).forEach(([e,t])=>{n.c(f,e,t)}),X(Object.keys(e))}function $(){let e=V();n.s(f,ne()),he(),X(W(e),!1),z(`info`,t.value.resetSuccessText)}async function xe(e,t,r=!1){n.c(f,e,n.t(t)),fe(e),r&&await Z(e)}function Se(e){return n.t(n.r(f,e))}async function Ce(e,t=!1){be(e),t&&await Z(Object.keys(e))}function we(){return C||c?.value===!1||x.value||t.value.disabled||t.value.readonly}function Te(e,r,i){return!C&&!e.signal.aborted&&c?.value!==!1&&!t.value.disabled&&!t.value.readonly&&i!==null&&a.value===i&&n.a(f,r)}async function Ee(){if(we())return!1;let e=V(),n=a.value,r=new AbortController;w=r,x.value=!0;try{if(await me(),!Te(r,e,n))return!1;let i={model:e,form:n};try{await t.value.onSubmit?.(i,{signal:r.signal})}catch(e){return r.signal.aborted||L(e,`submit`),!1}return r.signal.aborted?!1:(o(`submit`,i),z(`success`,t.value.submitSuccessText),!0)}catch{return!1}finally{w===r&&(w=void 0),x.value=!1}}function De(){se(!0);let e=s?.value??(t.value.mode===`edit`?t.value.initialValues:void 0);e&&U(e),(0,d.nextTick)(I)}return(0,d.watch)(e,()=>{let e=!A;e&&re(),se(e),A=!0},{deep:!0,immediate:!0}),s&&(0,d.watch)(s,e=>{e!==void 0&&!n.a(f,e)&&U(e)},{deep:!0,immediate:!0}),(0,d.watch)(()=>[t.value.mode,t.value.initialValues],([e,t])=>{s?.value!==void 0||e!==`edit`||!t||(U(t),(0,d.nextTick)(I))},{deep:!0}),(0,d.watch)(f,e=>{j||o(`update:modelValue`,n.t(e))},{deep:!0,flush:`post`}),(0,d.onScopeDispose)(()=>{C=!0,w?.abort(),E.forEach(e=>e.abort()),E.clear(),O.clear(),m.clear()}),{formModel:f,formRules:p,visibleOptions:B,initialize:De,handleFieldChange:fe,setFormItemRef:pe,getFormItemElement:e=>{let t=m.get(e)?.$el;return t?.nodeType===1?t:null},validate:me,validateField:Z,validateStep:ge,validateTab:_e,validateDynamicFields:ve,validateCustomGroup:ye,clearValidation:he,getModel:V,setFields:be,resetFields:$,setFieldValue:xe,getFieldValue:Se,setFieldsValue:Ce,submit:Ee,handleSubmit:Ee,handleReset:$,isSubmitting:x,isDirty:F,getChangedFields:ee,isFieldDirty:te,markAsClean:I,asyncOptionsCache:g,asyncLoadingMap:y,asyncErrorMap:b,getDictionaryOptions:R.getOptions,isDictionaryLoading:R.isLoading,reloadOptions:J}}function b(e,t){return e.matches(`:disabled`)||`disabled`in e&&e.disabled===!0||`readOnly`in e&&e.readOnly===!0||!t&&e.getAttribute(`tabindex`)===`-1`}function x(e){if(e.hidden||e.getAttribute(`aria-hidden`)===`true`||e.hasAttribute(`inert`)||e.getAttribute(`aria-disabled`)===`true`||e.getAttribute(`aria-readonly`)===`true`)return!0;let t=e.ownerDocument.defaultView?.getComputedStyle(e);return t?t.display===`none`||t.visibility===`hidden`||t.visibility===`collapse`:!1}function S(e,t=!1){if(!e.isConnected||typeof e.focus!=`function`||b(e,t))return!1;for(let t=e;t;t=t.parentElement)if(x(t))return!1;return!0}function C(e,t,n){if(!e||!S(e,n))return!1;(t??e).scrollIntoView?.({block:`nearest`,inline:`nearest`}),e.focus({preventScroll:!0});let r=e.ownerDocument.activeElement;return!!r&&(r===e||e.contains(r))}async function w(e,t,n,r){return e.focusTarget?e.focusTarget({field:e.prop,element:t,model:n,signal:r}):[...t?.querySelectorAll(`input:not([type="hidden"]),textarea,select,button,[tabindex],[contenteditable="true"]`)??[]].find(e=>S(e))}function T(e){let t=0,n=!1,r=!1,i,a=Promise.resolve(),o=()=>{let e=++t,n=i;return i=void 0,n?.abort(),e},s=t=>{let n=e.fields().find(e=>e.prop===t);if(!n||n.layout?.hidden)return;let r=e.access(n);return r.disabled||r.readonly?void 0:n},c=e=>n&&!r&&e===t,l=(t,n)=>{try{e.onError?.(t,n)}catch{}};return(0,d.onMounted)(()=>{n=!0}),(0,d.onActivated)(()=>{n=!0}),(0,d.onDeactivated)(()=>{n=!1,o()}),(0,d.onScopeDispose)(()=>{r=!0,n=!1,o()}),(0,d.watch)(e.layoutType,o),async t=>{let n=o();if(!c(n))return!1;let r=new AbortController;i=r;let u=()=>c(n)&&!r.signal.aborted,f=a.then(async()=>{if(await(0,d.nextTick)(),!u()||!s(t))return!1;let n=e.layout.value?.revealField;return n&&!await n(t,u)?!1:(await(0,d.nextTick)(),u()&&!!s(t))});a=f.catch(()=>!1);try{if(!await f)return!1;let n=s(t);if(!n)return!1;let i=e.getElement(t),a=await w(n,i,e.model,r.signal);if(!u()||s(t)!==n)return!1;let o=C(a,i,!!n.focusTarget);return u()&&o}catch(e){return u()&&l(e,t),!1}}}function E(e,t,n){let r=e.inputProps,i=r&&typeof r==`object`&&!Array.isArray(r)?r:{};return{...e,...n===`compact`&&e.showButton===void 0?{showButton:!1}:{},inputProps:{role:`spinbutton`,inputmode:e.precision===0?`numeric`:`decimal`,"aria-label":t.label,"aria-valuenow":Number.isFinite(e.value)?e.value:void 0,"aria-valuemin":e.min??void 0,"aria-valuemax":e.max??void 0,...i}}}const D=Symbol(`c-form-renderer-registry`);function O(e={}){let t=(0,d.shallowReactive)(new Map),n={get:e=>t.get(e)?.renderer,register:(e,n)=>{if(!e.trim())throw TypeError(`[C_Form] renderer type 不能为空`);if(typeof n!=`function`)throw TypeError(`[C_Form] renderer ${e} 必须是函数`);let r={renderer:n};return t.set(e,r),()=>t.get(e)===r&&t.delete(e)},unregister:(e,n)=>{let r=t.get(e);return!r||n&&r.renderer!==n?!1:t.delete(e)}};return Object.entries(e).forEach(([e,t])=>{n.register(e,t)}),n}function k(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function A(e){return{input:t=>(0,d.h)(e.NInput,{...t}),textarea:t=>(0,d.h)(e.NInput,{...t,type:`textarea`}),inputNumber:(t,n,r)=>(0,d.h)(e.NInputNumber,E(t,n,r.density)),switch:t=>(0,d.h)(e.NSwitch,{...t}),slider:t=>(0,d.h)(e.NSlider,{...t}),rate:t=>(0,d.h)(e.NRate,{...t}),datePicker:t=>(0,d.h)(e.NDatePicker,{...t}),daterange:t=>(0,d.h)(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>(0,d.h)(e.NTimePicker,{...t}),cascader:t=>(0,d.h)(e.NCascader,{...t}),colorPicker:t=>(0,d.h)(e.NColorPicker,{...t}),select:(t,n)=>(0,d.h)(e.NSelect,{...t,options:n.children?.map(e=>({...e}))||[]}),checkbox:(t,n)=>(0,d.h)(e.NCheckboxGroup,{...t},{default:()=>(0,d.h)(e.NSpace,{},{default:()=>n.children?.map(t=>(0,d.h)(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>(0,d.h)(e.NRadioGroup,{...t},{default:()=>(0,d.h)(e.NSpace,{},{default:()=>n.children?.map(t=>(0,d.h)(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,i)=>{let a={...t},{value:o}=a,s=a[`onUpdate:value`];return delete a.value,delete a[`onUpdate:value`],(0,d.h)(e.NUpload,{...a,fileList:Array.isArray(o)?o:[],"onUpdate:fileList":e=>s?.(e)},{default:()=>i.slots?.uploadClick?.()||(0,d.h)(e.NButton,{type:`primary`,size:n.attrs?.size??r.size,disabled:a.disabled===!0},{default:()=>`选择文件`}),tip:()=>i.slots?.uploadTip?.()||null})},editor:(t,n)=>{let r={...t},{value:i}=r,a=r[`onUpdate:value`];return delete r.value,delete r[`onUpdate:value`],(0,d.h)(e.C_Editor,{...r,editorId:`editor-${n.prop}`,modelValue:typeof i==`string`?i:``,"onUpdate:modelValue":e=>a?.(e)})}}}const j=O();function M(e,t){return j.register(e,t)}function N(e,t){return j.unregister(e,t)}const P=new Set([`select`,`checkbox`,`radio`,`cascader`]),F=new Set([`input`,`textarea`,`inputNumber`,`select`,`checkbox`,`radio`,`switch`,`datePicker`,`daterange`,`timePicker`,`cascader`,`colorPicker`]),ee=new Set([`input`,`textarea`,`inputNumber`,`rate`,`editor`]);function te(e){let{formModel:r,visibleOptions:i,config:a,handleFieldChange:o,componentMap:s,instanceSlots:c,asyncOptionsCache:l,asyncLoadingMap:u,renderers:f,setFormItemRef:p,onError:m}=e,h=s,g=A(h),_=(0,d.getCurrentInstance)()?(0,d.inject)(D,void 0):void 0,v=e.registry??_??j,y=e=>f?.value?.[e]??v.get(e)??g[e],b=e=>{let t=k(e.disabled,a.value.disabled,r),i=k(e.readonly,a.value.readonly,r),s=ee.has(e.type),c={...F.has(e.type)?{size:e.attrs?.size??a.value.size}:{},value:n.r(r,e.prop),"onUpdate:value":t=>{k(e.disabled,a.value.disabled,r)||k(e.readonly,a.value.readonly,r)||(n.c(r,e.prop,t),o(e.prop))},disabled:t||i&&!s,readonly:i||e.type===`rate`&&t};return e.type===`textarea`&&(c.type=`textarea`),e.placeholder&&(c.placeholder=e.placeholder),c};function x(t){let n=t.children??[];return Object.prototype.hasOwnProperty.call(l.value,t.prop)?l.value[t.prop]??[]:t.children!==void 0||t.asyncOptions?n:e.getDictionaryOptions?.(t.prop).map(e=>({...e}))??[]}function S(e){return P.has(e.type)?{...e,children:x(e)}:e}function C(t,n){return t.type===`select`&&(u.value[t.prop]||e.isDictionaryLoading?.(t.prop))&&(n.loading=!0),n}function w(e,t){return e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&P.has(e.type)&&t===g[e.type]}function T(e,n){let r=e[`onUpdate:value`];e.value=t.r(e.value),e[`onUpdate:value`]=e=>{let n=t.n(e);Array.isArray(r)?r.forEach(e=>e(n)):r?.(n)},n.children=t.o(n.children??[]),e.options=n.children,e.fallbackOption=e=>({value:e,label:String(t.n(e)??``)})}let E=e=>{try{let t=S(e),n=y(t.type);if(!n)return m?.(TypeError(`[C_Form] 未支持的组件类型: ${t.type}`),t.prop),null;let r=C(t,(0,d.mergeProps)(t.attrs??{},b(t)));return w(e,n)&&T(r,t),n(r,t,a.value,{slots:c,components:h})}catch(t){return m?.(t,e.prop),null}};function O(e){if(e.label)return e.help?(0,d.h)(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,(0,d.h)(h.NTooltip,{trigger:`hover`},{trigger:()=>(0,d.h)(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,textContent:`ⓘ`}),default:()=>e.help})]):e.label}return{renderFormItem:E,formItems:(0,d.computed)(()=>i.value.map(e=>{let t=!!(e.required||e.rules?.some(e=>e.required)),n=O(e);return(0,d.h)(h.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,class:`c-form-field`,key:e.prop,required:t,ref:t=>p?.(e.prop,t)},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>E(e)})})),getBaseProps:b}}const I={class:`c-form-default`},ne=(0,d.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(t,n)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,I,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e),{key:e.key??t}))),128))]))}});var L=o.t(ne,[[`__scopeId`,`data-v-4313de0c`]]);const R=(0,d.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=(0,d.computed)(()=>t.layoutConfig?.inline?.itemWidth??280),r=(0,d.computed)(()=>t.layoutConfig?.inline?.gap??16),i=(0,d.computed)(()=>t.layoutConfig?.inline?.rowGap??16),a=(0,d.computed)(()=>t.layoutConfig?.inline?.align??`center`),o=(0,d.computed)(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return a.value}}),s=(0,d.computed)(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),c=(0,d.computed)(()=>({display:`flex`,flexWrap:t.layoutConfig?.inline?.wrap??`wrap`,alignItems:o.value,justifyContent:s.value,gap:`${i.value}px ${r.value}px`,width:`100%`})),l=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},u=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(t,n)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{class:`c-form-inline`,style:(0,d.normalizeStyle)(c.value)},[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{key:l(e,t),class:`c-form-inline-item`,style:(0,d.normalizeStyle)(u(t))},[((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e)))],4))),128))],4))}});var z=o.t(R,[[`__scopeId`,`data-v-711f6c00`]]);const B={class:`config-header`},re={class:`config-controls`},V={class:`config-label`},ie={class:`item-wrapper`},H=(0,d.defineComponent)({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e,{expose:t}){let n=e,r=(0,d.reactive)({cols:24,gutter:16,responsive:!0}),i=(0,d.computed)(()=>n.layoutConfig?.grid||{}),o=(0,d.computed)(()=>i.value.showConfigPanel),s=(0,d.computed)(()=>i.value.showStats),l=(0,d.computed)(()=>({cols:o.value?r.cols:i.value.cols??24,gutter:o.value?r.gutter:i.value.gutter??16,responsive:o.value?r.responsive:i.value.responsive??!0})),u=(0,d.ref)(null),p=c.t(u,()=>l.value.responsive),m=(0,d.computed)(()=>{let e=i.value.minItemWidth;return l.value.responsive&&typeof e==`number`&&Number.isFinite(e)&&e>0?e:0}),h=(0,d.computed)(()=>{let e=i.value.xGap??l.value.gutter;return l.value.responsive&&p.value>0?Math.min(e,p.value/Math.max(1,l.value.cols)):e}),g=(0,d.computed)(()=>({cols:l.value.cols,xGap:h.value,yGap:i.value.yGap??i.value.yGutter??l.value.gutter,responsive:l.value.responsive?`screen`:`self`})),_=(0,d.computed)(()=>[{key:`cols`,label:`列数`,component:f.NInputNumber,value:r.cols,update:e=>{typeof e==`number`&&(r.cols=e)},props:{min:1,max:48,size:n.controlSize??`small`}},{key:`gutter`,label:`间距`,component:f.NInputNumber,value:r.gutter,update:e=>{typeof e==`number`&&(r.gutter=e)},props:{min:0,max:48,size:n.controlSize??`small`}},{key:`responsive`,label:`响应式`,component:f.NSwitch,value:r.responsive,update:e=>{typeof e==`boolean`&&(r.responsive=e)},props:{size:n.controlSize??`small`}}]),v=(0,d.computed)(()=>`列数: ${l.value.cols} | 间距: ${l.value.gutter}px | 项目: ${n.formItems.length}个`),y=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,b=(e,t)=>{let r=n.options?.[e]?.layout;return r?.[t]??r?.grid?.[t]},x=()=>{let{cols:e}=l.value;if(m.value&&p.value>0){let t=Math.max(1,Math.min(e,Math.floor((p.value+h.value)/(m.value+h.value))));return Math.ceil(e/t)}return e<=12?e:e<=24?12:8},S=e=>{if(!m.value||p.value<=0)return e;let{cols:t}=l.value,n=Math.ceil(t*(m.value+h.value)/(p.value+h.value));return Math.min(t,Math.max(e,n))},C=e=>{let t=b(e,`span`),n=b(e,`offset`),r=b(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=l.value.cols?S(t):x(),offset:typeof n==`number`&&n>=0&&n<l.value.cols?n:0,suffix:!!r}};return(0,d.watch)(i,e=>{e.cols!==void 0&&(r.cols=e.cols),e.gutter!==void 0&&(r.gutter=e.gutter),e.responsive!==void 0&&(r.responsive=e.responsive)},{immediate:!0}),t({updateGridConfig:e=>Object.assign(r,e),getCurrentConfig:()=>({...l.value}),getGridInfo:()=>({...l.value,itemCount:n.formItems.length})}),(t,n)=>{let r=f.NCard,i=f.NGridItem,c=f.NGrid,l=f.NAlert;return(0,d.openBlock)(),(0,d.createElementBlock)(`div`,{ref_key:`rootRef`,ref:u,class:`c-grid-layout`},[(0,d.createCommentVNode)(` 配置面板 `),o.value?((0,d.openBlock)(),(0,d.createBlock)(r,{key:0,size:e.controlSize??`small`,bordered:!1,class:`config-panel`},{header:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,B,[(0,d.createVNode)(a.t,{name:`mdi:view-grid`,size:18}),n[0]||=(0,d.createElementVNode)(`span`,null,`网格配置`,-1)])]),default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,re,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(_.value,e=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{key:e.key,class:`config-item`},[(0,d.createElementVNode)(`span`,V,(0,d.toDisplayString)(e.label)+`:`,1),((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e.component),(0,d.mergeProps)({value:e.value},{ref_for:!0},e.props,{"onUpdate:value":e.update}),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1},8,[`size`])):(0,d.createCommentVNode)(`v-if`,!0),(0,d.createCommentVNode)(` 网格容器 `),(0,d.createVNode)(c,(0,d.mergeProps)(g.value,{class:`grid-container`}),{default:(0,d.withCtx)(()=>[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createBlock)(i,(0,d.mergeProps)({key:y(e,t)},{ref_for:!0},C(t),{class:`grid-item`}),{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,ie,[((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e)))])]),_:2},1040))),128))]),_:1},16),(0,d.createCommentVNode)(` 统计信息 `),s.value?((0,d.openBlock)(),(0,d.createBlock)(l,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:(0,d.withCtx)(()=>[(0,d.createVNode)(a.t,{name:`mdi:information-outline`,size:16}),n[1]||=(0,d.createTextVNode)(` 网格信息 `,-1)]),default:(0,d.withCtx)(()=>[(0,d.createTextVNode)(` `+(0,d.toDisplayString)(v.value),1)]),_:1})):(0,d.createCommentVNode)(`v-if`,!0)],512)}}});var ae=o.t(H,[[`__scopeId`,`data-v-185a44af`]]);const oe=[`default`,`inline`,`grid`],se={NFormItem:f.NFormItem,NInput:f.NInput,NInputNumber:f.NInputNumber,NSwitch:f.NSwitch,NSelect:f.NSelect,NCheckboxGroup:f.NCheckboxGroup,NCheckbox:f.NCheckbox,NRadioGroup:f.NRadioGroup,NRadio:f.NRadio,NButton:f.NButton,NSpace:f.NSpace,NTooltip:f.NTooltip,NSlider:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./slider.cjs`))),NRate:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./rate.cjs`))),NDatePicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./date-picker.cjs`))),NTimePicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./time-picker.cjs`))),NCascader:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./cascader.cjs`))),NColorPicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./color-picker.cjs`))),NUpload:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./upload.cjs`))),C_Editor:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./C_Editor.cjs`)).then(e=>e.C_Editor))},U={default:L,inline:z,grid:ae,card:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Card.cjs`))),tabs:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Tabs.cjs`))),steps:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Steps.cjs`))),dynamic:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Dynamic.cjs`))),custom:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Custom.cjs`)))},W=(0,d.defineComponent)({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})},renderers:{}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(t,{expose:n,emit:i}){let a=t,o=i,c=s.o(),l=(0,d.useAttrs)(),u=(0,d.computed)(()=>s.r(a.config,c)),p=(0,d.computed)(()=>{let{size:e}=l;return s.i({...u.value,...e===`small`||e===`medium`||e===`large`?{size:e}:{}})}),m=(0,d.computed)(()=>u.value.density!==void 0),h=(0,d.computed)(()=>e.t(p.value.density)),g=(0,d.computed)(()=>{if(!m.value)return;let{gap:e,rowGap:t,padding:n,formItemGap:r}=h.value;return{"--c-form-gap":`${e}px`,"--c-form-row-gap":`${t}px`,"--c-form-padding":`${n}px`,"--c-form-item-gap":`${r}px`}}),{t:_}=r.t(()=>p.value.locale),v=(0,d.ref)(null),b=(0,d.ref)(null),x=(0,d.computed)(()=>oe.includes(p.value.layout)||b.value===p.value.layout),{formModel:S,formRules:C,visibleOptions:w,initialize:E,handleFieldChange:D,validate:O,validateField:k,validateStep:A,validateTab:j,validateDynamicFields:M,validateCustomGroup:N,clearValidation:P,getModel:F,setFields:ee,resetFields:I,setFieldValue:ne,getFieldValue:L,setFieldsValue:R,handleSubmit:z,handleReset:B,isDirty:re,getChangedFields:V,isFieldDirty:ie,markAsClean:H,asyncOptionsCache:ae,asyncLoadingMap:W,asyncErrorMap:G,getDictionaryOptions:ce,isDictionaryLoading:K,reloadOptions:q,setFormItemRef:le,getFormItemElement:ue,isSubmitting:J,submit:Y}=y((0,d.computed)(()=>a.options),p,v,o,(0,d.computed)(()=>a.modelValue),x),de=(0,d.computed)(()=>S),X=()=>F(),fe=(0,d.computed)(()=>({form:v.value,model:de.value,validate:O,validateField:k,reset:I,setFields:ee,getModel:X,clearValidation:P,submit:Y,reloadOptions:q,submitting:J.value})),pe=(0,d.getCurrentInstance)(),me=()=>Object.keys(pe?.slots??{}).filter(e=>![`action`,`action-extra`,`step-actions`].includes(e)),{formItems:Z,getBaseProps:he}=te({formModel:S,visibleOptions:w,config:p,handleFieldChange:D,componentMap:se,instanceSlots:pe?.slots,asyncOptionsCache:ae,asyncLoadingMap:W,renderers:(0,d.computed)(()=>a.renderers),getDictionaryOptions:ce,isDictionaryLoading:K,setFormItemRef:le,onError:(e,t)=>p.value.onError?.(e,{source:`render`,field:t})}),Q=(0,d.shallowRef)(null),ge=T({layout:Q,layoutType:()=>p.value.layout,fields:()=>w.value,model:S,getElement:ue,access:he,onError:(e,t)=>p.value.onError?.(e,{source:`callback`,field:t})}),_e=(0,d.computed)(()=>U[p.value.layout]||U.default),ve=(0,d.computed)(()=>{let e=p.value,t={type:e.layout,grid:e.grid,inline:e.inline,card:e.card,tabs:e.tabs,steps:e.steps,dynamic:e.dynamic,custom:e.custom};if(!m.value)return t;let{gap:n,rowGap:r}=h.value;return{...t,grid:{gutter:n,yGutter:e.grid?.gutter??r,...e.grid},inline:{gap:n,rowGap:r,...e.inline},card:{spacing:n,...e.card},tabs:{size:e.size,...e.tabs},steps:{size:e.size===`small`?`small`:`medium`,...e.steps},dynamic:{...e.dynamic,grid:{gutter:n,...e.dynamic?.grid}}}}),ye=(0,d.computed)(()=>s.a(p.value)),be=(0,d.computed)(()=>{let{layout:e}=p.value;return{...e===`steps`?{beforeStepChange:De,validateStep:Oe,submitting:J.value,disabled:p.value.disabled||p.value.readonly}:e===`tabs`?{beforeTabChange:we,validateTab:Te}:{},controlSize:m.value?p.value.size:void 0,onVnodeMounted:()=>{b.value=e}}}),$=(e,...t)=>{let n=p.value[e];if(typeof n==`function`)try{let e=n(...t);e instanceof Promise&&e.catch(e=>p.value.onError?.(e,{source:`callback`}))}catch(e){p.value.onError?.(e,{source:`callback`})}},xe=e=>{p.value.onFieldsChange?.(e)},Se=e=>{o(`validate-success`,e)},Ce=e=>{o(`validate-error`,e)},we=async(e,t)=>{try{return await p.value.onTabBeforeChange?.(e,t)!==!1}catch(e){return p.value.onError?.(e,{source:`callback`}),!1}},Te=async e=>{let t=await j(e);return t&&p.value.onTabValidate?.(e),t},Ee=(e,t)=>{p.value.onStepChange?.(e,t)},De=async(e,t)=>{try{return await p.value.onStepBeforeChange?.(e,t)!==!1}catch(e){return p.value.onError?.(e,{source:`callback`}),!1}},Oe=async(e,t)=>{try{return await A(t)?(p.value.onStepValidate?.(e),!0):!1}catch{return!1}};return n({validate:O,revealField:ge,validateField:k,validateStep:A,validateTab:j,validateDynamicFields:M,validateCustomGroup:N,clearValidation:P,getModel:F,setFields:ee,resetFields:I,setFieldValue:ne,getFieldValue:L,setFieldsValue:R,formRef:v,formModel:S,initialize:E,layoutType:(0,d.computed)(()=>p.value.layout),shouldShowDefaultActions:ye,isDirty:re,getChangedFields:V,isFieldDirty:ie,markAsClean:H,asyncLoadingMap:W,asyncErrorMap:G,reloadOptions:q,isSubmitting:J,submit:Y}),(e,t)=>((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NForm),(0,d.mergeProps)({ref_key:`formRef`,ref:v,class:[`c-form`,m.value&&`c-form--${p.value.density}`],style:g.value,model:(0,d.unref)(S),rules:(0,d.unref)(C),"validate-on-rule-change":!1,"label-placement":p.value.labelPlacement,"label-width":p.value.labelWidth,size:p.value.size,disabled:p.value.disabled,readonly:p.value.readonly},e.$attrs,{onSubmit:(0,d.withModifiers)((0,d.unref)(Y),[`prevent`])}),{default:(0,d.withCtx)(()=>[(0,d.createCommentVNode)(` 布局组件渲染 `),((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(_e.value),(0,d.mergeProps)({ref_key:`layoutRef`,ref:Q,key:p.value.layout,"form-items":(0,d.unref)(Z),"layout-config":ve.value,options:(0,d.unref)(w),"form-data":(0,d.unref)(S)},be.value,{onTabChange:t[0]||=(e,t)=>$(`onTabChange`,e,t),onStepChange:Ee,onFieldAdd:t[1]||=e=>$(`onFieldAdd`,e),onFieldRemove:t[2]||=e=>$(`onFieldRemove`,e),onFieldToggle:t[3]||=(e,t)=>$(`onFieldToggle`,e,t),onFieldsClear:t[4]||=e=>$(`onFieldsClear`),onRenderModeChange:t[5]||=e=>$(`onRenderModeChange`,e),onGroupToggle:t[6]||=(e,t)=>$(`onGroupToggle`,e,t),onGroupReset:t[7]||=e=>$(`onGroupReset`,e),onValidateSuccess:Se,onValidateError:Ce,onFieldsChange:xe}),(0,d.createSlots)({"step-actions":(0,d.withCtx)(t=>[(0,d.renderSlot)(e.$slots,`step-actions`,(0,d.mergeProps)(t,{submit:(0,d.unref)(Y),submitting:(0,d.unref)(J)}),()=>[t.isLastStep&&p.value.showActions?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NButton),{key:0,type:`primary`,size:p.value.size,loading:(0,d.unref)(J)||!x.value,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(Y)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.submitText||(0,d.unref)(_)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])):(0,d.createCommentVNode)(`v-if`,!0)],!0)]),_:2},[(0,d.renderList)(me(),t=>({name:t,fn:(0,d.withCtx)(n=>[(0,d.renderSlot)(e.$slots,t,(0,d.normalizeProps)((0,d.guardReactiveProps)(n)),void 0,!0)])}))]),1040,[`form-items`,`layout-config`,`options`,`form-data`])),(0,d.createCommentVNode)(` 表单操作按钮区域(只在特定布局中显示) `),ye.value?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NFormItem),{key:0,class:`c-form-actions`,"show-feedback":!1},{default:(0,d.withCtx)(()=>[(0,d.renderSlot)(e.$slots,`action`,(0,d.normalizeProps)((0,d.guardReactiveProps)(fe.value)),()=>[(0,d.createVNode)((0,d.unref)(f.NSpace),{justify:`end`,size:m.value?h.value.gap:void 0,style:{width:`100%`}},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.NButton),{size:p.value.size,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(B)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.resetText||(0,d.unref)(_)(`common.reset`)),1)]),_:1},8,[`size`,`disabled`,`onClick`]),(0,d.renderSlot)(e.$slots,`action-extra`,(0,d.normalizeProps)((0,d.guardReactiveProps)(fe.value)),void 0,!0),(0,d.createVNode)((0,d.unref)(f.NButton),{type:`primary`,size:p.value.size,loading:(0,d.unref)(J)||!x.value,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(z)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.submitText||(0,d.unref)(_)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])]),_:3},8,[`size`])],!0)]),_:3})):(0,d.createCommentVNode)(`v-if`,!0)]),_:3},16,[`class`,`style`,`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`,`onSubmit`]))}});var G=o.t(W,[[`__scopeId`,`data-v-12ebc552`]]);function ce(e){return e}function K(e){return e}function q(e){let t=(0,d.shallowRef)(n.t(e.initialValues)),r=(0,d.shallowRef)(null);return{model:t,formRef:r,bindings:(0,d.computed)(()=>({modelValue:t.value,options:(0,d.toValue)(e.options),config:(0,d.toValue)(e.config),"onUpdate:modelValue":e=>{t.value=n.t(e)}})),validate:async()=>{if(!r.value)throw Error(`C_Form is not mounted`);await r.value.validate()},submit:()=>r.value?.submit()??Promise.resolve(!1),reset:()=>{r.value?(r.value.resetFields(),t.value=n.t(r.value.getModel())):t.value=n.t(e.initialValues)},getValues:()=>n.t(r.value?.getModel()??t.value),setValues:async(e,i=!1)=>{r.value?(await r.value.setFieldsValue(e,i),t.value=n.t(r.value.getModel())):t.value={...t.value,...n.t(e)}}}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return y}});
1
+ require(`./chunk.cjs`);const e=require(`./density.cjs`),t=require(`./dictionary.cjs`),n=require(`./data2.cjs`),r=require(`./useComponentLocale.cjs`),i=require(`./feedback.cjs`),a=require(`./C_Icon2.cjs`),o=require(`./export-helper.cjs`),s=require(`./useFormConfig.cjs`),c=require(`./useGridWidth.cjs`),l=require(`./useDictionary.cjs`),u=require(`./formValidation.cjs`);let d=require(`vue`),f=require(`naive-ui`);function p(e,t){if(Reflect.has(e,t)&&Object.prototype.hasOwnProperty.call(e,t))return(0,d.isReactive)(e);let r=e;for(let e of n.o(t)){if(!r||typeof r!=`object`||!(0,d.isReactive)(r))return!1;r=r[e]}return!0}function m(e,t=new Set){if(typeof e!=`object`||!e||t.has(e))return!0;t.add(e);let n=(0,d.isReactive)(e);if(Array.isArray(e)){for(let r of e)n=m(r,t)&&n;return n}return e instanceof Map?(e.forEach((e,r)=>{n=m(r,t)&&n,n=m(e,t)&&n}),n):e instanceof Set?(e.forEach(e=>{n=m(e,t)&&n}),n):(Object.values(e).forEach(e=>{n=m(e,t)&&n}),n)}function h(e,t){let r=(0,d.shallowRef)({}),i=new Map,a=(0,d.isReactive)(e);function o(){let n=new Set(t?(0,d.toValue)(t):[...Object.keys(r.value),...Object.keys(e)]);for(let e of i.keys())n.has(e)||i.delete(e);return n}let s=(0,d.computed)(()=>{for(let e of o())if(u(e))return!0;return!1});function c(){let e=[];for(let t of o())u(t)&&e.push(t);return e}function l(e){return f(e)}function u(t){if(!a)return f(t);let o=i.get(t);return o||(o=(0,d.computed)(()=>{let i=n.r(e,t),a=p(e,t);return{cacheable:m(i)&&a,dirty:!n.a(n.r(r.value,t),i)}}),i.set(t,o)),o.value.cacheable?o.value.dirty:f(t)}function f(t){let i=n.r(e,t);return m(i),!n.a(n.r(r.value,t),i)}function h(){r.value=n.t(e)}function g(){return n.t(r.value)}return{isDirty:s,getChangedFields:c,isFieldDirty:l,markAsClean:h,getCleanModel:g}}const g={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:[],upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:!1};function _(e){return n.t((e.value===void 0?g[e.type]:e.value)??null)}function v(e){let t=new Set;e.forEach((e,n)=>{if(!e.prop?.trim())throw TypeError(`[C_Form] options[${n}].prop 不能为空`);if(t.has(e.prop))throw TypeError(`[C_Form] 字段 prop 重复: ${e.prop}`);t.add(e.prop)})}function y(e,t,a,o,s,c){let f=(0,d.reactive)(n.t(s?.value??(t.value.mode===`edit`?t.value.initialValues:void 0)??{})),p=(0,d.reactive)({}),m=new Map,g=(0,d.ref)({}),y=(0,d.ref)({}),b=(0,d.ref)({}),x=(0,d.ref)(!1),S=new Map,C=!1,w,T=new Map,E=new Map,D=new Map,O=new Map,k=new Set,A=!1,j=!1,M=0,N=i.t(()=>t.value.feedback),{t:P}=r.t(()=>t.value.locale),{isDirty:ee,getChangedFields:te,isFieldDirty:F,markAsClean:I,getCleanModel:ne}=h(f,()=>e.value.map(e=>e.prop));function L(e,n,r){if(!C)try{t.value.onError?t.value.onError(e,{source:n,field:r}):N.error(e instanceof Error?e.message:String(e),e)}catch{}}let R=l.t(()=>new Map(e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions).map(e=>[e.prop,e.dictionary])),{onError:(e,n)=>t.value.onError?.(e,{source:`async-options`,field:n})});function re(e,t){if(!(C||!t))try{N[e](t)}catch{}}let z=(0,d.computed)(()=>e.value.filter(e=>{if(e.show===!1)return!1;if(!e.showWhen)return!0;try{return e.showWhen(f)}catch(t){return L(t,`callback`,e.prop),!1}}));function B(){j=!0;let e=++M;(0,d.nextTick)(()=>{e===M&&(j=!1)})}function V(){return n.t(f)}function ie(t){let r=t?n.t(t):{};return e.value.forEach(e=>{n.i(r,e.prop)||n.c(r,e.prop,_(e))}),r}function H(e){try{let t=u.n(e.rulesWhen?e.rulesWhen(f):e.rules);if(S.delete(e.prop),e.required&&!t.some(e=>e.required)){let n=e.label||e.prop;t.unshift(u.t(n,P(`form.required`,{label:n})))}if(e.crossFieldValidator){let n=e.crossFieldValidator;t.push({async validator(){let e=await n(f);if(e)throw Error(e)},trigger:[`change`,`blur`]})}if(t.length===0){delete p[e.prop];return}p[e.prop]=t.map(t=>({...t,key:e.prop}))}catch(t){delete p[e.prop],S.set(e.prop,t),L(t,`callback`,e.prop)}}function ae(){e.value.forEach(e=>{(e.rulesWhen||e.crossFieldValidator)&&H(e)})}function oe(e){k.forEach(r=>{e.has(r)||(m.delete(r),delete p[r],S.delete(r),G(r),D.delete(r),t.value.preserveRemovedFields||n.n(f,r))})}function se(t=!1){try{v(e.value);let r=V(),i=new Set(e.value.map(e=>e.prop));oe(i),e.value.forEach(e=>{n.i(f,e.prop)||n.c(f,e.prop,_(e)),H(e),ce(e)}),k=i,X(W(r),!1),t&&(0,d.nextTick)(I)}catch(e){throw L(e,`initialize`),e}}function U(e){let t=V();B(),n.s(f,ie(e)),X(W(t),!1)}function W(t){return[...new Set([...Object.keys(t),...Object.keys(f),...e.value.map(e=>e.prop)])].filter(e=>!n.a(n.r(t,e),n.r(f,e)))}function G(e){E.get(e)?.abort(),E.delete(e),T.delete(e),O.delete(e),delete g.value[e],delete y.value[e],delete b.value[e]}function ce(e){if(D.get(e.prop)!==e.asyncOptions){if(G(e.prop),!e.asyncOptions){D.delete(e.prop);return}D.set(e.prop,e.asyncOptions),K(e,`initialize`)}}function K(e,t){if(C)return;let n=O.get(e.prop),r={item:e,reason:n?.reason===`initialize`?n.reason:t};O.set(e.prop,r),(0,d.nextTick)(()=>{O.get(e.prop)===r&&(O.delete(e.prop),ue(r.item,r.reason))})}function q(e,t,n){return C||n.signal.aborted||T.get(e)!==t||E.get(e)!==n}function le(e){return!C&&!!e.asyncOptions&&D.get(e.prop)===e.asyncOptions}async function ue(e,t){if(!le(e))return;let{prop:r}=e,i=(T.get(r)??0)+1;T.set(r,i),E.get(r)?.abort();let a=new AbortController;E.set(r,a),y.value[r]=!0,delete b.value[r];try{let o=await e.asyncOptions(V(),{field:r,reason:t,signal:a.signal});if(q(r,i,a))return;if(!Array.isArray(o))throw TypeError(`[C_Form] ${r}.asyncOptions 必须返回数组`);g.value[r]=n.t([...o])}catch(e){if(q(r,i,a))return;b.value[r]=e,L(e,`async-options`,r)}finally{T.get(r)===i&&E.get(r)===a&&(y.value[r]=!1,E.delete(r))}}async function de(t){let n=e.value.filter(e=>e.asyncOptions&&(!t||e.prop===t)),r=e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&(!t||e.prop===t));if(t&&n.length===0&&r.length===0)throw Error(`[C_Form] 未找到异步选项字段: ${t}`);await Promise.all([...n.map(e=>(O.delete(e.prop),ue(e,`manual`))),...r.map(e=>R.reload(e.prop))])}function J(){let t=e.value.filter(e=>e.valueWhen),r=new Set;if(t.length===0)return[];for(let e=0;e<=t.length;e+=1){let e=!1;for(let i of t)try{let t=i.valueWhen?.(f);t!==void 0&&!n.a(n.r(f,i.prop),t)&&(n.c(f,i.prop,n.t(t)),r.add(i.prop),e=!0)}catch(e){L(e,`callback`,i.prop)}if(!e)return[...r]}return L(Error(`[C_Form] valueWhen 存在循环依赖,已停止继续计算`),`callback`),[...r]}function Y(t){let r=t.map(e=>n.o(e).join(`.`));return e.value.filter(e=>!e.asyncOptions||!e.dependsOn?!1:(Array.isArray(e.dependsOn)?e.dependsOn:[e.dependsOn]).some(e=>{let t=n.o(e).join(`.`);return r.some(e=>e===t||e.startsWith(`${t}.`)||t.startsWith(`${e}.`))}))}function X(e,n=!0){let r=[...new Set([...e,...J()])];ae(),Y(r).forEach(e=>{K(e,`dependency`)}),n&&t.value.validateOnChange&&(0,d.nextTick)(()=>{C||Z(r).catch(()=>void 0)})}function fe(e){X([e])}function pe(e,t){t?m.set(e,t):m.delete(e)}async function me(){if(c?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!a.value)throw Error(`[C_Form] 表单引用不存在`);try{let e=z.value.find(e=>S.has(e.prop));if(e)throw S.get(e.prop);if(await a.value.validate(),C)throw Error(`[C_Form] 表单已卸载`);o(`validate-success`,V())}catch(e){throw C||o(`validate-error`,e),e}}async function Z(e){if(c?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!a.value)throw Error(`[C_Form] 表单引用不存在`);let t=[...new Set(Array.isArray(e)?e:[e])],n=t.find(e=>S.has(e));if(n)throw S.get(n);let r=[],i=t.flatMap(e=>{let t=m.get(e);return t?[t.validate()]:(r.push(e),[])});r.length>0&&i.push(a.value.validate(void 0,e=>r.includes(String(e.key??``))));let o=(await Promise.allSettled(i)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(o.length>0)throw o}function he(e){if(!e){a.value?.restoreValidation();return}(Array.isArray(e)?e:[e]).forEach(e=>m.get(e)?.restoreValidation())}async function Q(e){let t=z.value.filter(e).map(e=>e.prop);if(t.length===0)return!0;try{return await Z(t),!0}catch{return!1}}function ge(e){let n=typeof e==`string`?e:t.value.steps?.steps?.[e]?.key;return n?Q(e=>e.layout?.step===n):Promise.resolve(!0)}function _e(e){return Q(t=>t.layout?.tab===e)}function ve(){return Q(e=>!!e.layout?.dynamic)}function ye(e){return Q(t=>t.layout?.group===e)}function be(e){Object.entries(n.t(e)).forEach(([e,t])=>{n.c(f,e,t)}),X(Object.keys(e))}function xe(){let e=V();n.s(f,ne()),he(),X(W(e),!1),re(`info`,t.value.resetSuccessText)}async function $(e,t,r=!1){n.c(f,e,n.t(t)),fe(e),r&&await Z(e)}function Se(e){return n.t(n.r(f,e))}async function Ce(e,t=!1){be(e),t&&await Z(Object.keys(e))}function we(){return C||c?.value===!1||x.value||t.value.disabled||t.value.readonly}function Te(e,r,i){return!C&&!e.signal.aborted&&c?.value!==!1&&!t.value.disabled&&!t.value.readonly&&i!==null&&a.value===i&&n.a(f,r)}async function Ee(){if(we())return!1;let e=V(),n=a.value,r=new AbortController;w=r,x.value=!0;try{if(await me(),!Te(r,e,n))return!1;let i={model:e,form:n};try{await t.value.onSubmit?.(i,{signal:r.signal})}catch(e){return r.signal.aborted||L(e,`submit`),!1}return r.signal.aborted?!1:(o(`submit`,i),re(`success`,t.value.submitSuccessText),!0)}catch{return!1}finally{w===r&&(w=void 0),x.value=!1}}function De(){se(!0);let e=s?.value??(t.value.mode===`edit`?t.value.initialValues:void 0);e&&U(e),(0,d.nextTick)(I)}return(0,d.watch)(e,()=>{let e=!A;e&&B(),se(e),A=!0},{deep:!0,immediate:!0}),s&&(0,d.watch)(s,e=>{e!==void 0&&!n.a(f,e)&&U(e)},{deep:!0,immediate:!0}),(0,d.watch)(()=>[t.value.mode,t.value.initialValues],([e,t])=>{s?.value!==void 0||e!==`edit`||!t||(U(t),(0,d.nextTick)(I))},{deep:!0}),(0,d.watch)(f,e=>{j||o(`update:modelValue`,n.t(e))},{deep:!0,flush:`post`}),(0,d.onScopeDispose)(()=>{C=!0,w?.abort(),E.forEach(e=>e.abort()),E.clear(),O.clear(),m.clear()}),{formModel:f,formRules:p,visibleOptions:z,initialize:De,handleFieldChange:fe,setFormItemRef:pe,getFormItemElement:e=>{let t=m.get(e)?.$el;return t?.nodeType===1?t:null},validate:me,validateField:Z,validateStep:ge,validateTab:_e,validateDynamicFields:ve,validateCustomGroup:ye,clearValidation:he,getModel:V,setFields:be,resetFields:xe,setFieldValue:$,getFieldValue:Se,setFieldsValue:Ce,submit:Ee,handleSubmit:Ee,handleReset:xe,isSubmitting:x,isDirty:ee,getChangedFields:te,isFieldDirty:F,markAsClean:I,asyncOptionsCache:g,asyncLoadingMap:y,asyncErrorMap:b,getDictionaryOptions:R.getOptions,isDictionaryLoading:R.isLoading,getDictionaryError:R.getError,reloadOptions:de}}function b(e,t){return e.matches(`:disabled`)||`disabled`in e&&e.disabled===!0||`readOnly`in e&&e.readOnly===!0||!t&&e.getAttribute(`tabindex`)===`-1`}function x(e){if(e.hidden||e.getAttribute(`aria-hidden`)===`true`||e.hasAttribute(`inert`)||e.getAttribute(`aria-disabled`)===`true`||e.getAttribute(`aria-readonly`)===`true`)return!0;let t=e.ownerDocument.defaultView?.getComputedStyle(e);return t?t.display===`none`||t.visibility===`hidden`||t.visibility===`collapse`:!1}function S(e,t=!1){if(!e.isConnected||typeof e.focus!=`function`||b(e,t))return!1;for(let t=e;t;t=t.parentElement)if(x(t))return!1;return!0}function C(e,t,n){if(!e||!S(e,n))return!1;(t??e).scrollIntoView?.({block:`nearest`,inline:`nearest`}),e.focus({preventScroll:!0});let r=e.ownerDocument.activeElement;return!!r&&(r===e||e.contains(r))}async function w(e,t,n,r){return e.focusTarget?e.focusTarget({field:e.prop,element:t,model:n,signal:r}):[...t?.querySelectorAll(`input:not([type="hidden"]),textarea,select,button,[tabindex],[contenteditable="true"]`)??[]].find(e=>S(e))}function T(e){let t=0,n=!1,r=!1,i,a=Promise.resolve(),o=()=>{let e=++t,n=i;return i=void 0,n?.abort(),e},s=t=>{let n=e.fields().find(e=>e.prop===t);if(!n||n.layout?.hidden)return;let r=e.access(n);return r.disabled||r.readonly?void 0:n},c=e=>n&&!r&&e===t,l=(t,n)=>{try{e.onError?.(t,n)}catch{}};return(0,d.onMounted)(()=>{n=!0}),(0,d.onActivated)(()=>{n=!0}),(0,d.onDeactivated)(()=>{n=!1,o()}),(0,d.onScopeDispose)(()=>{r=!0,n=!1,o()}),(0,d.watch)(e.layoutType,o),async t=>{let n=o();if(!c(n))return!1;let r=new AbortController;i=r;let u=()=>c(n)&&!r.signal.aborted,f=a.then(async()=>{if(await(0,d.nextTick)(),!u()||!s(t))return!1;let n=e.layout.value?.revealField;return n&&!await n(t,u)?!1:(await(0,d.nextTick)(),u()&&!!s(t))});a=f.catch(()=>!1);try{if(!await f)return!1;let n=s(t);if(!n)return!1;let i=e.getElement(t),a=await w(n,i,e.model,r.signal);if(!u()||s(t)!==n)return!1;let o=C(a,i,!!n.focusTarget);return u()&&o}catch(e){return u()&&l(e,t),!1}}}function E(e,t,n){let r=e.inputProps,i=r&&typeof r==`object`&&!Array.isArray(r)?r:{};return{...e,...n===`compact`&&e.showButton===void 0?{showButton:!1}:{},inputProps:{role:`spinbutton`,inputmode:e.precision===0?`numeric`:`decimal`,"aria-label":t.label,"aria-valuenow":Number.isFinite(e.value)?e.value:void 0,"aria-valuemin":e.min??void 0,"aria-valuemax":e.max??void 0,...i}}}const D=Symbol(`c-form-renderer-registry`);function O(e={}){let t=(0,d.shallowReactive)(new Map),n={get:e=>t.get(e)?.renderer,register:(e,n)=>{if(!e.trim())throw TypeError(`[C_Form] renderer type 不能为空`);if(typeof n!=`function`)throw TypeError(`[C_Form] renderer ${e} 必须是函数`);let r={renderer:n};return t.set(e,r),()=>t.get(e)===r&&t.delete(e)},unregister:(e,n)=>{let r=t.get(e);return!r||n&&r.renderer!==n?!1:t.delete(e)}};return Object.entries(e).forEach(([e,t])=>{n.register(e,t)}),n}function k(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function A(e){return{input:t=>(0,d.h)(e.NInput,{...t}),textarea:t=>(0,d.h)(e.NInput,{...t,type:`textarea`}),inputNumber:(t,n,r)=>(0,d.h)(e.NInputNumber,E(t,n,r.density)),switch:t=>(0,d.h)(e.NSwitch,{...t}),slider:t=>(0,d.h)(e.NSlider,{...t}),rate:t=>(0,d.h)(e.NRate,{...t}),datePicker:t=>(0,d.h)(e.NDatePicker,{...t}),daterange:t=>(0,d.h)(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>(0,d.h)(e.NTimePicker,{...t}),cascader:t=>(0,d.h)(e.NCascader,{...t}),colorPicker:t=>(0,d.h)(e.NColorPicker,{...t}),select:(t,n)=>(0,d.h)(e.NSelect,{...t,options:n.children?.map(e=>({...e}))||[]}),checkbox:(t,n)=>(0,d.h)(e.NCheckboxGroup,{...t},{default:()=>(0,d.h)(e.NSpace,{},{default:()=>n.children?.map(t=>(0,d.h)(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>(0,d.h)(e.NRadioGroup,{...t},{default:()=>(0,d.h)(e.NSpace,{},{default:()=>n.children?.map(t=>(0,d.h)(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,i)=>{let a={...t},{value:o}=a,s=a[`onUpdate:value`];return delete a.value,delete a[`onUpdate:value`],(0,d.h)(e.NUpload,{...a,fileList:Array.isArray(o)?o:[],"onUpdate:fileList":e=>s?.(e)},{default:()=>i.slots?.uploadClick?.()||(0,d.h)(e.NButton,{type:`primary`,size:n.attrs?.size??r.size,disabled:a.disabled===!0},{default:()=>`选择文件`}),tip:()=>i.slots?.uploadTip?.()||null})},editor:(t,n)=>{let r={...t},{value:i}=r,a=r[`onUpdate:value`];return delete r.value,delete r[`onUpdate:value`],(0,d.h)(e.C_Editor,{...r,editorId:`editor-${n.prop}`,modelValue:typeof i==`string`?i:``,"onUpdate:modelValue":e=>a?.(e)})}}}const j=O();function M(e,t){return j.register(e,t)}function N(e,t){return j.unregister(e,t)}const P=new Set([`select`,`checkbox`,`radio`,`cascader`]),ee=new Set([`input`,`textarea`,`inputNumber`,`select`,`checkbox`,`radio`,`switch`,`datePicker`,`daterange`,`timePicker`,`cascader`,`colorPicker`]),te=new Set([`input`,`textarea`,`inputNumber`,`rate`,`editor`]);function F(e){let{formModel:i,visibleOptions:a,config:o,handleFieldChange:s,componentMap:c,instanceSlots:l,asyncOptionsCache:u,asyncLoadingMap:f,renderers:p,setFormItemRef:m,onError:h}=e,g=c,{t:_}=r.t(()=>o.value.locale),v=A(g),y=(0,d.getCurrentInstance)()?(0,d.inject)(D,void 0):void 0,b=e.registry??y??j,x=e=>p?.value?.[e]??b.get(e)??v[e],S=e=>{let t=k(e.disabled,o.value.disabled,i),r=k(e.readonly,o.value.readonly,i),a=te.has(e.type),c={...ee.has(e.type)?{size:e.attrs?.size??o.value.size}:{},value:n.r(i,e.prop),"onUpdate:value":t=>{k(e.disabled,o.value.disabled,i)||k(e.readonly,o.value.readonly,i)||(n.c(i,e.prop,t),s(e.prop))},disabled:t||r&&!a,readonly:r||e.type===`rate`&&t};return e.type===`textarea`&&(c.type=`textarea`),e.placeholder&&(c.placeholder=e.placeholder),c};function C(t){let n=t.children??[];return Object.prototype.hasOwnProperty.call(u.value,t.prop)?u.value[t.prop]??[]:t.children!==void 0||t.asyncOptions?n:e.getDictionaryOptions?.(t.prop).map(e=>({...e}))??[]}function w(e){return P.has(e.type)?{...e,children:C(e)}:e}function T(t,n){return t.type===`select`&&(f.value[t.prop]||e.isDictionaryLoading?.(t.prop))&&(n.loading=!0),n}function E(e,t){return e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&P.has(e.type)&&t===v[e.type]}function O(e,n){let r=e[`onUpdate:value`];e.value=t.r(e.value),e[`onUpdate:value`]=e=>{let n=t.n(e);Array.isArray(r)?r.forEach(e=>e(n)):r?.(n)},n.children=t.o(n.children??[]),e.options=n.children,e.fallbackOption=e=>({value:e,label:String(t.n(e)??``)})}function M(t){return e.getOptionsError?.(t.prop)===void 0?null:(0,d.h)(`div`,{role:`alert`,class:`c-form-option-error`},[_(`dictionary.optionsFailed`),(0,d.h)(g.NButton,{text:!0,size:`small`,loading:f.value[t.prop]||e.isDictionaryLoading?.(t.prop),onClick:()=>e.reloadOptions?.(t.prop)},{default:()=>_(`common.retry`)})])}function N(e,t){return!P.has(e.type)||!e.asyncOptions&&(e.dictionary===void 0||e.children!==void 0)?t:(0,d.h)(`div`,{class:`c-form-option-state`},[t,M(e)])}let F=e=>{try{let t=w(e),n=x(t.type);if(!n)return h?.(TypeError(`[C_Form] 未支持的组件类型: ${t.type}`),t.prop),null;let r=T(t,(0,d.mergeProps)(t.attrs??{},S(t)));return E(e,n)&&O(r,t),N(e,n(r,t,o.value,{slots:l,components:g}))}catch(t){return h?.(t,e.prop),null}};function I(e){if(e.label)return e.help?(0,d.h)(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,(0,d.h)(g.NTooltip,{trigger:`hover`},{trigger:()=>(0,d.h)(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,textContent:`ⓘ`}),default:()=>e.help})]):e.label}return{renderFormItem:F,formItems:(0,d.computed)(()=>a.value.map(e=>{let t=!!(e.required||e.rules?.some(e=>e.required)),n=I(e);return(0,d.h)(g.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,class:`c-form-field`,key:e.prop,required:t,ref:t=>m?.(e.prop,t)},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>F(e)})})),getBaseProps:S}}const I={class:`c-form-default`},ne=(0,d.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(t,n)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,I,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e),{key:e.key??t}))),128))]))}});var L=o.t(ne,[[`__scopeId`,`data-v-4313de0c`]]);const R=(0,d.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=(0,d.computed)(()=>t.layoutConfig?.inline?.itemWidth??280),r=(0,d.computed)(()=>t.layoutConfig?.inline?.gap??16),i=(0,d.computed)(()=>t.layoutConfig?.inline?.rowGap??16),a=(0,d.computed)(()=>t.layoutConfig?.inline?.align??`center`),o=(0,d.computed)(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return a.value}}),s=(0,d.computed)(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),c=(0,d.computed)(()=>({display:`flex`,flexWrap:t.layoutConfig?.inline?.wrap??`wrap`,alignItems:o.value,justifyContent:s.value,gap:`${i.value}px ${r.value}px`,width:`100%`})),l=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},u=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(t,n)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{class:`c-form-inline`,style:(0,d.normalizeStyle)(c.value)},[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{key:l(e,t),class:`c-form-inline-item`,style:(0,d.normalizeStyle)(u(t))},[((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e)))],4))),128))],4))}});var re=o.t(R,[[`__scopeId`,`data-v-711f6c00`]]);const z={class:`config-header`},B={class:`config-controls`},V={class:`config-label`},ie={class:`item-wrapper`},H=(0,d.defineComponent)({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e,{expose:t}){let n=e,r=(0,d.reactive)({cols:24,gutter:16,responsive:!0}),i=(0,d.computed)(()=>n.layoutConfig?.grid||{}),o=(0,d.computed)(()=>i.value.showConfigPanel),s=(0,d.computed)(()=>i.value.showStats),l=(0,d.computed)(()=>({cols:o.value?r.cols:i.value.cols??24,gutter:o.value?r.gutter:i.value.gutter??16,responsive:o.value?r.responsive:i.value.responsive??!0})),u=(0,d.ref)(null),p=c.t(u,()=>l.value.responsive),m=(0,d.computed)(()=>{let e=i.value.minItemWidth;return l.value.responsive&&typeof e==`number`&&Number.isFinite(e)&&e>0?e:0}),h=(0,d.computed)(()=>{let e=i.value.xGap??l.value.gutter;return l.value.responsive&&p.value>0?Math.min(e,p.value/Math.max(1,l.value.cols)):e}),g=(0,d.computed)(()=>({cols:l.value.cols,xGap:h.value,yGap:i.value.yGap??i.value.yGutter??l.value.gutter,responsive:l.value.responsive?`screen`:`self`})),_=(0,d.computed)(()=>[{key:`cols`,label:`列数`,component:f.NInputNumber,value:r.cols,update:e=>{typeof e==`number`&&(r.cols=e)},props:{min:1,max:48,size:n.controlSize??`small`}},{key:`gutter`,label:`间距`,component:f.NInputNumber,value:r.gutter,update:e=>{typeof e==`number`&&(r.gutter=e)},props:{min:0,max:48,size:n.controlSize??`small`}},{key:`responsive`,label:`响应式`,component:f.NSwitch,value:r.responsive,update:e=>{typeof e==`boolean`&&(r.responsive=e)},props:{size:n.controlSize??`small`}}]),v=(0,d.computed)(()=>`列数: ${l.value.cols} | 间距: ${l.value.gutter}px | 项目: ${n.formItems.length}个`),y=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,b=(e,t)=>{let r=n.options?.[e]?.layout;return r?.[t]??r?.grid?.[t]},x=()=>{let{cols:e}=l.value;if(m.value&&p.value>0){let t=Math.max(1,Math.min(e,Math.floor((p.value+h.value)/(m.value+h.value))));return Math.ceil(e/t)}return e<=12?e:e<=24?12:8},S=e=>{if(!m.value||p.value<=0)return e;let{cols:t}=l.value,n=Math.ceil(t*(m.value+h.value)/(p.value+h.value));return Math.min(t,Math.max(e,n))},C=e=>{let t=b(e,`span`),n=b(e,`offset`),r=b(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=l.value.cols?S(t):x(),offset:typeof n==`number`&&n>=0&&n<l.value.cols?n:0,suffix:!!r}};return(0,d.watch)(i,e=>{e.cols!==void 0&&(r.cols=e.cols),e.gutter!==void 0&&(r.gutter=e.gutter),e.responsive!==void 0&&(r.responsive=e.responsive)},{immediate:!0}),t({updateGridConfig:e=>Object.assign(r,e),getCurrentConfig:()=>({...l.value}),getGridInfo:()=>({...l.value,itemCount:n.formItems.length})}),(t,n)=>{let r=f.NCard,i=f.NGridItem,c=f.NGrid,l=f.NAlert;return(0,d.openBlock)(),(0,d.createElementBlock)(`div`,{ref_key:`rootRef`,ref:u,class:`c-grid-layout`},[(0,d.createCommentVNode)(` 配置面板 `),o.value?((0,d.openBlock)(),(0,d.createBlock)(r,{key:0,size:e.controlSize??`small`,bordered:!1,class:`config-panel`},{header:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,z,[(0,d.createVNode)(a.t,{name:`mdi:view-grid`,size:18}),n[0]||=(0,d.createElementVNode)(`span`,null,`网格配置`,-1)])]),default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,B,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(_.value,e=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{key:e.key,class:`config-item`},[(0,d.createElementVNode)(`span`,V,(0,d.toDisplayString)(e.label)+`:`,1),((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e.component),(0,d.mergeProps)({value:e.value},{ref_for:!0},e.props,{"onUpdate:value":e.update}),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1},8,[`size`])):(0,d.createCommentVNode)(`v-if`,!0),(0,d.createCommentVNode)(` 网格容器 `),(0,d.createVNode)(c,(0,d.mergeProps)(g.value,{class:`grid-container`}),{default:(0,d.withCtx)(()=>[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createBlock)(i,(0,d.mergeProps)({key:y(e,t)},{ref_for:!0},C(t),{class:`grid-item`}),{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,ie,[((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e)))])]),_:2},1040))),128))]),_:1},16),(0,d.createCommentVNode)(` 统计信息 `),s.value?((0,d.openBlock)(),(0,d.createBlock)(l,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:(0,d.withCtx)(()=>[(0,d.createVNode)(a.t,{name:`mdi:information-outline`,size:16}),n[1]||=(0,d.createTextVNode)(` 网格信息 `,-1)]),default:(0,d.withCtx)(()=>[(0,d.createTextVNode)(` `+(0,d.toDisplayString)(v.value),1)]),_:1})):(0,d.createCommentVNode)(`v-if`,!0)],512)}}});var ae=o.t(H,[[`__scopeId`,`data-v-185a44af`]]);const oe=[`default`,`inline`,`grid`],se={NFormItem:f.NFormItem,NInput:f.NInput,NInputNumber:f.NInputNumber,NSwitch:f.NSwitch,NSelect:f.NSelect,NCheckboxGroup:f.NCheckboxGroup,NCheckbox:f.NCheckbox,NRadioGroup:f.NRadioGroup,NRadio:f.NRadio,NButton:f.NButton,NSpace:f.NSpace,NTooltip:f.NTooltip,NSlider:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./slider.cjs`))),NRate:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./rate.cjs`))),NDatePicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./date-picker.cjs`))),NTimePicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./time-picker.cjs`))),NCascader:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./cascader.cjs`))),NColorPicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./color-picker.cjs`))),NUpload:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./upload.cjs`))),C_Editor:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./C_Editor.cjs`)).then(e=>e.C_Editor))},U={default:L,inline:re,grid:ae,card:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Card.cjs`))),tabs:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Tabs.cjs`))),steps:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Steps.cjs`))),dynamic:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Dynamic.cjs`))),custom:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Custom.cjs`)))},W=(0,d.defineComponent)({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})},renderers:{}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(t,{expose:n,emit:i}){let a=t,o=i,c=s.o(),l=(0,d.useAttrs)(),u=(0,d.computed)(()=>s.r(a.config,c)),p=(0,d.computed)(()=>{let{size:e}=l;return s.i({...u.value,...e===`small`||e===`medium`||e===`large`?{size:e}:{}})}),m=(0,d.computed)(()=>u.value.density!==void 0),h=(0,d.computed)(()=>e.t(p.value.density)),g=(0,d.computed)(()=>{if(!m.value)return;let{gap:e,rowGap:t,padding:n,formItemGap:r}=h.value;return{"--c-form-gap":`${e}px`,"--c-form-row-gap":`${t}px`,"--c-form-padding":`${n}px`,"--c-form-item-gap":`${r}px`}}),{t:_}=r.t(()=>p.value.locale),v=(0,d.ref)(null),b=(0,d.ref)(null),x=(0,d.computed)(()=>oe.includes(p.value.layout)||b.value===p.value.layout),{formModel:S,formRules:C,visibleOptions:w,initialize:E,handleFieldChange:D,validate:O,validateField:k,validateStep:A,validateTab:j,validateDynamicFields:M,validateCustomGroup:N,clearValidation:P,getModel:ee,setFields:te,resetFields:I,setFieldValue:ne,getFieldValue:L,setFieldsValue:R,handleSubmit:re,handleReset:z,isDirty:B,getChangedFields:V,isFieldDirty:ie,markAsClean:H,asyncOptionsCache:ae,asyncLoadingMap:W,asyncErrorMap:G,getDictionaryOptions:ce,isDictionaryLoading:K,getDictionaryError:q,reloadOptions:le,setFormItemRef:ue,getFormItemElement:de,isSubmitting:J,submit:Y}=y((0,d.computed)(()=>a.options),p,v,o,(0,d.computed)(()=>a.modelValue),x),X=(0,d.computed)(()=>S),fe=()=>ee(),pe=(0,d.computed)(()=>({form:v.value,model:X.value,validate:O,validateField:k,reset:I,setFields:te,getModel:fe,clearValidation:P,submit:Y,reloadOptions:le,submitting:J.value})),me=(0,d.getCurrentInstance)(),Z=()=>Object.keys(me?.slots??{}).filter(e=>![`action`,`action-extra`,`step-actions`].includes(e)),{formItems:he,getBaseProps:Q}=F({formModel:S,visibleOptions:w,config:p,handleFieldChange:D,componentMap:se,instanceSlots:me?.slots,asyncOptionsCache:ae,asyncLoadingMap:W,renderers:(0,d.computed)(()=>a.renderers),getDictionaryOptions:ce,isDictionaryLoading:K,getOptionsError:e=>G.value[e]??q(e),reloadOptions:le,setFormItemRef:ue,onError:(e,t)=>p.value.onError?.(e,{source:`render`,field:t})}),ge=(0,d.shallowRef)(null),_e=T({layout:ge,layoutType:()=>p.value.layout,fields:()=>w.value,model:S,getElement:de,access:Q,onError:(e,t)=>p.value.onError?.(e,{source:`callback`,field:t})}),ve=(0,d.computed)(()=>U[p.value.layout]||U.default),ye=(0,d.computed)(()=>{let e=p.value,t={type:e.layout,grid:e.grid,inline:e.inline,card:e.card,tabs:e.tabs,steps:e.steps,dynamic:e.dynamic,custom:e.custom};if(!m.value)return t;let{gap:n,rowGap:r}=h.value;return{...t,grid:{gutter:n,yGutter:e.grid?.gutter??r,...e.grid},inline:{gap:n,rowGap:r,...e.inline},card:{spacing:n,...e.card},tabs:{size:e.size,...e.tabs},steps:{size:e.size===`small`?`small`:`medium`,...e.steps},dynamic:{...e.dynamic,grid:{gutter:n,...e.dynamic?.grid}}}}),be=(0,d.computed)(()=>s.a(p.value)),xe=(0,d.computed)(()=>{let{layout:e}=p.value;return{...e===`steps`?{beforeStepChange:Oe,validateStep:ke,submitting:J.value,disabled:p.value.disabled||p.value.readonly}:e===`tabs`?{beforeTabChange:Te,validateTab:Ee}:{},controlSize:m.value?p.value.size:void 0,onVnodeMounted:()=>{b.value=e}}}),$=(e,...t)=>{let n=p.value[e];if(typeof n==`function`)try{let e=n(...t);e instanceof Promise&&e.catch(e=>p.value.onError?.(e,{source:`callback`}))}catch(e){p.value.onError?.(e,{source:`callback`})}},Se=e=>{p.value.onFieldsChange?.(e)},Ce=e=>{o(`validate-success`,e)},we=e=>{o(`validate-error`,e)},Te=async(e,t)=>{try{return await p.value.onTabBeforeChange?.(e,t)!==!1}catch(e){return p.value.onError?.(e,{source:`callback`}),!1}},Ee=async e=>{let t=await j(e);return t&&p.value.onTabValidate?.(e),t},De=(e,t)=>{p.value.onStepChange?.(e,t)},Oe=async(e,t)=>{try{return await p.value.onStepBeforeChange?.(e,t)!==!1}catch(e){return p.value.onError?.(e,{source:`callback`}),!1}},ke=async(e,t)=>{try{return await A(t)?(p.value.onStepValidate?.(e),!0):!1}catch{return!1}};return n({validate:O,revealField:_e,validateField:k,validateStep:A,validateTab:j,validateDynamicFields:M,validateCustomGroup:N,clearValidation:P,getModel:ee,setFields:te,resetFields:I,setFieldValue:ne,getFieldValue:L,setFieldsValue:R,formRef:v,formModel:S,initialize:E,layoutType:(0,d.computed)(()=>p.value.layout),shouldShowDefaultActions:be,isDirty:B,getChangedFields:V,isFieldDirty:ie,markAsClean:H,asyncLoadingMap:W,asyncErrorMap:G,getDictionaryError:q,reloadOptions:le,isSubmitting:J,submit:Y}),(e,t)=>((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NForm),(0,d.mergeProps)({ref_key:`formRef`,ref:v,class:[`c-form`,m.value&&`c-form--${p.value.density}`],style:g.value,model:(0,d.unref)(S),rules:(0,d.unref)(C),"validate-on-rule-change":!1,"label-placement":p.value.labelPlacement,"label-width":p.value.labelWidth,size:p.value.size,disabled:p.value.disabled,readonly:p.value.readonly},e.$attrs,{onSubmit:(0,d.withModifiers)((0,d.unref)(Y),[`prevent`])}),{default:(0,d.withCtx)(()=>[(0,d.createCommentVNode)(` 布局组件渲染 `),((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(ve.value),(0,d.mergeProps)({ref_key:`layoutRef`,ref:ge,key:p.value.layout,"form-items":(0,d.unref)(he),"layout-config":ye.value,options:(0,d.unref)(w),"form-data":(0,d.unref)(S)},xe.value,{onTabChange:t[0]||=(e,t)=>$(`onTabChange`,e,t),onStepChange:De,onFieldAdd:t[1]||=e=>$(`onFieldAdd`,e),onFieldRemove:t[2]||=e=>$(`onFieldRemove`,e),onFieldToggle:t[3]||=(e,t)=>$(`onFieldToggle`,e,t),onFieldsClear:t[4]||=e=>$(`onFieldsClear`),onRenderModeChange:t[5]||=e=>$(`onRenderModeChange`,e),onGroupToggle:t[6]||=(e,t)=>$(`onGroupToggle`,e,t),onGroupReset:t[7]||=e=>$(`onGroupReset`,e),onValidateSuccess:Ce,onValidateError:we,onFieldsChange:Se}),(0,d.createSlots)({"step-actions":(0,d.withCtx)(t=>[(0,d.renderSlot)(e.$slots,`step-actions`,(0,d.mergeProps)(t,{submit:(0,d.unref)(Y),submitting:(0,d.unref)(J)}),()=>[t.isLastStep&&p.value.showActions?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NButton),{key:0,type:`primary`,size:p.value.size,loading:(0,d.unref)(J)||!x.value,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(Y)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.submitText||(0,d.unref)(_)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])):(0,d.createCommentVNode)(`v-if`,!0)],!0)]),_:2},[(0,d.renderList)(Z(),t=>({name:t,fn:(0,d.withCtx)(n=>[(0,d.renderSlot)(e.$slots,t,(0,d.normalizeProps)((0,d.guardReactiveProps)(n)),void 0,!0)])}))]),1040,[`form-items`,`layout-config`,`options`,`form-data`])),(0,d.createCommentVNode)(` 表单操作按钮区域(只在特定布局中显示) `),be.value?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NFormItem),{key:0,class:`c-form-actions`,"show-feedback":!1},{default:(0,d.withCtx)(()=>[(0,d.renderSlot)(e.$slots,`action`,(0,d.normalizeProps)((0,d.guardReactiveProps)(pe.value)),()=>[(0,d.createVNode)((0,d.unref)(f.NSpace),{justify:`end`,size:m.value?h.value.gap:void 0,style:{width:`100%`}},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.NButton),{size:p.value.size,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(z)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.resetText||(0,d.unref)(_)(`common.reset`)),1)]),_:1},8,[`size`,`disabled`,`onClick`]),(0,d.renderSlot)(e.$slots,`action-extra`,(0,d.normalizeProps)((0,d.guardReactiveProps)(pe.value)),void 0,!0),(0,d.createVNode)((0,d.unref)(f.NButton),{type:`primary`,size:p.value.size,loading:(0,d.unref)(J)||!x.value,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(re)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.submitText||(0,d.unref)(_)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])]),_:3},8,[`size`])],!0)]),_:3})):(0,d.createCommentVNode)(`v-if`,!0)]),_:3},16,[`class`,`style`,`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`,`onSubmit`]))}});var G=o.t(W,[[`__scopeId`,`data-v-91d7b669`]]);function ce(e){return e}function K(e){return e}function q(e){let t=(0,d.shallowRef)(n.t(e.initialValues)),r=(0,d.shallowRef)(null);return{model:t,formRef:r,bindings:(0,d.computed)(()=>({modelValue:t.value,options:(0,d.toValue)(e.options),config:(0,d.toValue)(e.config),"onUpdate:modelValue":e=>{t.value=n.t(e)}})),validate:async()=>{if(!r.value)throw Error(`C_Form is not mounted`);await r.value.validate()},submit:()=>r.value?.submit()??Promise.resolve(!1),reset:()=>{r.value?(r.value.resetFields(),t.value=n.t(r.value.getModel())):t.value=n.t(e.initialValues)},getValues:()=>n.t(r.value?.getModel()??t.value),setValues:async(e,i=!1)=>{r.value?(await r.value.setFieldsValue(e,i),t.value=n.t(r.value.getModel())):t.value={...t.value,...n.t(e)}}}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return y}});
package/dist/helpers.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./density.js";import{n as t,o as n,r}from"./dictionary.js";import{a as i,c as a,i as o,n as s,o as c,r as l,s as u,t as d}from"./data2.js";import{t as f}from"./useComponentLocale.js";import{t as p}from"./feedback.js";import{t as m}from"./C_Icon2.js";import{t as h}from"./export-helper.js";import{a as g,i as _,o as v,r as ee}from"./useFormConfig.js";import{t as y}from"./useGridWidth.js";import{t as b}from"./useDictionary.js";import{a as x,i as te}from"./formValidation.js";import{Fragment as S,computed as C,createBlock as w,createCommentVNode as T,createElementBlock as E,createElementVNode as D,createSlots as O,createTextVNode as k,createVNode as A,defineAsyncComponent as j,defineComponent as M,getCurrentInstance as ne,guardReactiveProps as N,h as P,inject as re,isReactive as ie,mergeProps as F,nextTick as I,normalizeProps as ae,normalizeStyle as oe,onActivated as L,onDeactivated as se,onMounted as R,onScopeDispose as ce,openBlock as z,reactive as le,ref as B,renderList as V,renderSlot as H,resolveComponent as ue,resolveDynamicComponent as U,shallowReactive as de,shallowRef as W,toDisplayString as fe,toValue as pe,unref as G,useAttrs as me,watch as K,withCtx as q,withModifiers as he}from"vue";import{NAlert as ge,NButton as _e,NCard as ve,NCheckbox as ye,NCheckboxGroup as be,NForm as xe,NFormItem as Se,NGrid as Ce,NGridItem as J,NInput as we,NInputNumber as Te,NRadio as Ee,NRadioGroup as Y,NSelect as De,NSpace as Oe,NSwitch as X,NTooltip as Z}from"naive-ui";function ke(e,t){if(Reflect.has(e,t)&&Object.prototype.hasOwnProperty.call(e,t))return ie(e);let n=e;for(let e of c(t)){if(!n||typeof n!=`object`||!ie(n))return!1;n=n[e]}return!0}function Q(e,t=new Set){if(typeof e!=`object`||!e||t.has(e))return!0;t.add(e);let n=ie(e);if(Array.isArray(e)){for(let r of e)n=Q(r,t)&&n;return n}return e instanceof Map?(e.forEach((e,r)=>{n=Q(r,t)&&n,n=Q(e,t)&&n}),n):e instanceof Set?(e.forEach(e=>{n=Q(e,t)&&n}),n):(Object.values(e).forEach(e=>{n=Q(e,t)&&n}),n)}function Ae(e,t){let n=W({}),r=new Map,a=ie(e);function o(){let i=new Set(t?pe(t):[...Object.keys(n.value),...Object.keys(e)]);for(let e of r.keys())i.has(e)||r.delete(e);return i}let s=C(()=>{for(let e of o())if(f(e))return!0;return!1});function c(){let e=[];for(let t of o())f(t)&&e.push(t);return e}function u(e){return p(e)}function f(t){if(!a)return p(t);let o=r.get(t);return o||(o=C(()=>{let r=l(e,t),a=ke(e,t);return{cacheable:Q(r)&&a,dirty:!i(l(n.value,t),r)}}),r.set(t,o)),o.value.cacheable?o.value.dirty:p(t)}function p(t){let r=l(e,t);return Q(r),!i(l(n.value,t),r)}function m(){n.value=d(e)}function h(){return d(n.value)}return{isDirty:s,getChangedFields:c,isFieldDirty:u,markAsClean:m,getCleanModel:h}}const je={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:[],upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:!1};function Me(e){return d((e.value===void 0?je[e.type]:e.value)??null)}function Ne(e){let t=new Set;e.forEach((e,n)=>{if(!e.prop?.trim())throw TypeError(`[C_Form] options[${n}].prop 不能为空`);if(t.has(e.prop))throw TypeError(`[C_Form] 字段 prop 重复: ${e.prop}`);t.add(e.prop)})}function Pe(e,t,n,r,m,h){let g=le(d(m?.value??(t.value.mode===`edit`?t.value.initialValues:void 0)??{})),_=le({}),v=new Map,ee=B({}),y=B({}),S=B({}),w=B(!1),T=new Map,E=!1,D,O=new Map,k=new Map,A=new Map,j=new Map,M=new Set,ne=!1,N=!1,P=0,re=p(()=>t.value.feedback),{t:ie}=f(()=>t.value.locale),{isDirty:F,getChangedFields:ae,isFieldDirty:oe,markAsClean:L,getCleanModel:se}=Ae(g,()=>e.value.map(e=>e.prop));function R(e,n,r){if(!E)try{t.value.onError?t.value.onError(e,{source:n,field:r}):re.error(e instanceof Error?e.message:String(e),e)}catch{}}let z=b(()=>new Map(e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions).map(e=>[e.prop,e.dictionary])),{onError:(e,t)=>R(e,`async-options`,t)});function V(e,t){if(!(E||!t))try{re[e](t)}catch{}}let H=C(()=>e.value.filter(e=>{if(e.show===!1)return!1;if(!e.showWhen)return!0;try{return e.showWhen(g)}catch(t){return R(t,`callback`,e.prop),!1}}));function ue(){N=!0;let e=++P;I(()=>{e===P&&(N=!1)})}function U(){return d(g)}function de(t){let n=t?d(t):{};return e.value.forEach(e=>{o(n,e.prop)||a(n,e.prop,Me(e))}),n}function W(e){try{let t=x(e.rulesWhen?e.rulesWhen(g):e.rules);if(T.delete(e.prop),e.required&&!t.some(e=>e.required)){let n=e.label||e.prop;t.unshift(te(n,ie(`form.required`,{label:n})))}if(e.crossFieldValidator){let n=e.crossFieldValidator;t.push({async validator(){let e=await n(g);if(e)throw Error(e)},trigger:[`change`,`blur`]})}if(t.length===0){delete _[e.prop];return}_[e.prop]=t.map(t=>({...t,key:e.prop}))}catch(t){delete _[e.prop],T.set(e.prop,t),R(t,`callback`,e.prop)}}function fe(){e.value.forEach(e=>{(e.rulesWhen||e.crossFieldValidator)&&W(e)})}function pe(e){M.forEach(n=>{e.has(n)||(v.delete(n),delete _[n],T.delete(n),he(n),A.delete(n),t.value.preserveRemovedFields||s(g,n))})}function G(t=!1){try{Ne(e.value);let n=U(),r=new Set(e.value.map(e=>e.prop));pe(r),e.value.forEach(e=>{o(g,e.prop)||a(g,e.prop,Me(e)),W(e),ge(e)}),M=r,J(q(n),!1),t&&I(L)}catch(e){throw R(e,`initialize`),e}}function me(e){let t=U();ue(),u(g,de(e)),J(q(t),!1)}function q(t){return[...new Set([...Object.keys(t),...Object.keys(g),...e.value.map(e=>e.prop)])].filter(e=>!i(l(t,e),l(g,e)))}function he(e){k.get(e)?.abort(),k.delete(e),O.delete(e),j.delete(e),delete ee.value[e],delete y.value[e],delete S.value[e]}function ge(e){if(A.get(e.prop)!==e.asyncOptions){if(he(e.prop),!e.asyncOptions){A.delete(e.prop);return}A.set(e.prop,e.asyncOptions),_e(e,`initialize`)}}function _e(e,t){if(E)return;let n=j.get(e.prop),r={item:e,reason:n?.reason===`initialize`?n.reason:t};j.set(e.prop,r),I(()=>{j.get(e.prop)===r&&(j.delete(e.prop),be(r.item,r.reason))})}function ve(e,t,n){return E||n.signal.aborted||O.get(e)!==t||k.get(e)!==n}function ye(e){return!E&&!!e.asyncOptions&&A.get(e.prop)===e.asyncOptions}async function be(e,t){if(!ye(e))return;let{prop:n}=e,r=(O.get(n)??0)+1;O.set(n,r),k.get(n)?.abort();let i=new AbortController;k.set(n,i),y.value[n]=!0,delete S.value[n];try{let a=await e.asyncOptions(U(),{field:n,reason:t,signal:i.signal});if(ve(n,r,i))return;if(!Array.isArray(a))throw TypeError(`[C_Form] ${n}.asyncOptions 必须返回数组`);ee.value[n]=d([...a])}catch(e){if(ve(n,r,i))return;S.value[n]=e,R(e,`async-options`,n)}finally{O.get(n)===r&&k.get(n)===i&&(y.value[n]=!1,k.delete(n))}}async function xe(t){let n=e.value.filter(e=>e.asyncOptions&&(!t||e.prop===t)),r=e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&(!t||e.prop===t));if(t&&n.length===0&&r.length===0)throw Error(`[C_Form] 未找到异步选项字段: ${t}`);await Promise.all([...n.map(e=>(j.delete(e.prop),be(e,`manual`))),...r.map(e=>z.reload(e.prop))])}function Se(){let t=e.value.filter(e=>e.valueWhen),n=new Set;if(t.length===0)return[];for(let e=0;e<=t.length;e+=1){let e=!1;for(let r of t)try{let t=r.valueWhen?.(g);t!==void 0&&!i(l(g,r.prop),t)&&(a(g,r.prop,d(t)),n.add(r.prop),e=!0)}catch(e){R(e,`callback`,r.prop)}if(!e)return[...n]}return R(Error(`[C_Form] valueWhen 存在循环依赖,已停止继续计算`),`callback`),[...n]}function Ce(t){let n=t.map(e=>c(e).join(`.`));return e.value.filter(e=>!e.asyncOptions||!e.dependsOn?!1:(Array.isArray(e.dependsOn)?e.dependsOn:[e.dependsOn]).some(e=>{let t=c(e).join(`.`);return n.some(e=>e===t||e.startsWith(`${t}.`)||t.startsWith(`${e}.`))}))}function J(e,n=!0){let r=[...new Set([...e,...Se()])];fe(),Ce(r).forEach(e=>{_e(e,`dependency`)}),n&&t.value.validateOnChange&&I(()=>{E||Y(r).catch(()=>void 0)})}function we(e){J([e])}function Te(e,t){t?v.set(e,t):v.delete(e)}async function Ee(){if(h?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!n.value)throw Error(`[C_Form] 表单引用不存在`);try{let e=H.value.find(e=>T.has(e.prop));if(e)throw T.get(e.prop);if(await n.value.validate(),E)throw Error(`[C_Form] 表单已卸载`);r(`validate-success`,U())}catch(e){throw E||r(`validate-error`,e),e}}async function Y(e){if(h?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!n.value)throw Error(`[C_Form] 表单引用不存在`);let t=[...new Set(Array.isArray(e)?e:[e])],r=t.find(e=>T.has(e));if(r)throw T.get(r);let i=[],a=t.flatMap(e=>{let t=v.get(e);return t?[t.validate()]:(i.push(e),[])});i.length>0&&a.push(n.value.validate(void 0,e=>i.includes(String(e.key??``))));let o=(await Promise.allSettled(a)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(o.length>0)throw o}function De(e){if(!e){n.value?.restoreValidation();return}(Array.isArray(e)?e:[e]).forEach(e=>v.get(e)?.restoreValidation())}async function Oe(e){let t=H.value.filter(e).map(e=>e.prop);if(t.length===0)return!0;try{return await Y(t),!0}catch{return!1}}function X(e){let n=typeof e==`string`?e:t.value.steps?.steps?.[e]?.key;return n?Oe(e=>e.layout?.step===n):Promise.resolve(!0)}function Z(e){return Oe(t=>t.layout?.tab===e)}function ke(){return Oe(e=>!!e.layout?.dynamic)}function Q(e){return Oe(t=>t.layout?.group===e)}function je(e){Object.entries(d(e)).forEach(([e,t])=>{a(g,e,t)}),J(Object.keys(e))}function Pe(){let e=U();u(g,se()),De(),J(q(e),!1),V(`info`,t.value.resetSuccessText)}async function Fe(e,t,n=!1){a(g,e,d(t)),we(e),n&&await Y(e)}function Ie(e){return d(l(g,e))}async function Le(e,t=!1){je(e),t&&await Y(Object.keys(e))}function Re(){return E||h?.value===!1||w.value||t.value.disabled||t.value.readonly}function ze(e,r,a){return!E&&!e.signal.aborted&&h?.value!==!1&&!t.value.disabled&&!t.value.readonly&&a!==null&&n.value===a&&i(g,r)}async function Be(){if(Re())return!1;let e=U(),i=n.value,a=new AbortController;D=a,w.value=!0;try{if(await Ee(),!ze(a,e,i))return!1;let n={model:e,form:i};try{await t.value.onSubmit?.(n,{signal:a.signal})}catch(e){return a.signal.aborted||R(e,`submit`),!1}return a.signal.aborted?!1:(r(`submit`,n),V(`success`,t.value.submitSuccessText),!0)}catch{return!1}finally{D===a&&(D=void 0),w.value=!1}}function Ve(){G(!0);let e=m?.value??(t.value.mode===`edit`?t.value.initialValues:void 0);e&&me(e),I(L)}return K(e,()=>{let e=!ne;e&&ue(),G(e),ne=!0},{deep:!0,immediate:!0}),m&&K(m,e=>{e!==void 0&&!i(g,e)&&me(e)},{deep:!0,immediate:!0}),K(()=>[t.value.mode,t.value.initialValues],([e,t])=>{m?.value!==void 0||e!==`edit`||!t||(me(t),I(L))},{deep:!0}),K(g,e=>{N||r(`update:modelValue`,d(e))},{deep:!0,flush:`post`}),ce(()=>{E=!0,D?.abort(),k.forEach(e=>e.abort()),k.clear(),j.clear(),v.clear()}),{formModel:g,formRules:_,visibleOptions:H,initialize:Ve,handleFieldChange:we,setFormItemRef:Te,getFormItemElement:e=>{let t=v.get(e)?.$el;return t?.nodeType===1?t:null},validate:Ee,validateField:Y,validateStep:X,validateTab:Z,validateDynamicFields:ke,validateCustomGroup:Q,clearValidation:De,getModel:U,setFields:je,resetFields:Pe,setFieldValue:Fe,getFieldValue:Ie,setFieldsValue:Le,submit:Be,handleSubmit:Be,handleReset:Pe,isSubmitting:w,isDirty:F,getChangedFields:ae,isFieldDirty:oe,markAsClean:L,asyncOptionsCache:ee,asyncLoadingMap:y,asyncErrorMap:S,getDictionaryOptions:z.getOptions,isDictionaryLoading:z.isLoading,reloadOptions:xe}}function Fe(e,t){return e.matches(`:disabled`)||`disabled`in e&&e.disabled===!0||`readOnly`in e&&e.readOnly===!0||!t&&e.getAttribute(`tabindex`)===`-1`}function Ie(e){if(e.hidden||e.getAttribute(`aria-hidden`)===`true`||e.hasAttribute(`inert`)||e.getAttribute(`aria-disabled`)===`true`||e.getAttribute(`aria-readonly`)===`true`)return!0;let t=e.ownerDocument.defaultView?.getComputedStyle(e);return t?t.display===`none`||t.visibility===`hidden`||t.visibility===`collapse`:!1}function Le(e,t=!1){if(!e.isConnected||typeof e.focus!=`function`||Fe(e,t))return!1;for(let t=e;t;t=t.parentElement)if(Ie(t))return!1;return!0}function Re(e,t,n){if(!e||!Le(e,n))return!1;(t??e).scrollIntoView?.({block:`nearest`,inline:`nearest`}),e.focus({preventScroll:!0});let r=e.ownerDocument.activeElement;return!!r&&(r===e||e.contains(r))}async function ze(e,t,n,r){return e.focusTarget?e.focusTarget({field:e.prop,element:t,model:n,signal:r}):[...t?.querySelectorAll(`input:not([type="hidden"]),textarea,select,button,[tabindex],[contenteditable="true"]`)??[]].find(e=>Le(e))}function Be(e){let t=0,n=!1,r=!1,i,a=Promise.resolve(),o=()=>{let e=++t,n=i;return i=void 0,n?.abort(),e},s=t=>{let n=e.fields().find(e=>e.prop===t);if(!n||n.layout?.hidden)return;let r=e.access(n);return r.disabled||r.readonly?void 0:n},c=e=>n&&!r&&e===t,l=(t,n)=>{try{e.onError?.(t,n)}catch{}};return R(()=>{n=!0}),L(()=>{n=!0}),se(()=>{n=!1,o()}),ce(()=>{r=!0,n=!1,o()}),K(e.layoutType,o),async t=>{let n=o();if(!c(n))return!1;let r=new AbortController;i=r;let u=()=>c(n)&&!r.signal.aborted,d=a.then(async()=>{if(await I(),!u()||!s(t))return!1;let n=e.layout.value?.revealField;return n&&!await n(t,u)?!1:(await I(),u()&&!!s(t))});a=d.catch(()=>!1);try{if(!await d)return!1;let n=s(t);if(!n)return!1;let i=e.getElement(t),a=await ze(n,i,e.model,r.signal);if(!u()||s(t)!==n)return!1;let o=Re(a,i,!!n.focusTarget);return u()&&o}catch(e){return u()&&l(e,t),!1}}}function Ve(e,t,n){let r=e.inputProps,i=r&&typeof r==`object`&&!Array.isArray(r)?r:{};return{...e,...n===`compact`&&e.showButton===void 0?{showButton:!1}:{},inputProps:{role:`spinbutton`,inputmode:e.precision===0?`numeric`:`decimal`,"aria-label":t.label,"aria-valuenow":Number.isFinite(e.value)?e.value:void 0,"aria-valuemin":e.min??void 0,"aria-valuemax":e.max??void 0,...i}}}const He=Symbol(`c-form-renderer-registry`);function $(e={}){let t=de(new Map),n={get:e=>t.get(e)?.renderer,register:(e,n)=>{if(!e.trim())throw TypeError(`[C_Form] renderer type 不能为空`);if(typeof n!=`function`)throw TypeError(`[C_Form] renderer ${e} 必须是函数`);let r={renderer:n};return t.set(e,r),()=>t.get(e)===r&&t.delete(e)},unregister:(e,n)=>{let r=t.get(e);return!r||n&&r.renderer!==n?!1:t.delete(e)}};return Object.entries(e).forEach(([e,t])=>{n.register(e,t)}),n}function Ue(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function We(e){return{input:t=>P(e.NInput,{...t}),textarea:t=>P(e.NInput,{...t,type:`textarea`}),inputNumber:(t,n,r)=>P(e.NInputNumber,Ve(t,n,r.density)),switch:t=>P(e.NSwitch,{...t}),slider:t=>P(e.NSlider,{...t}),rate:t=>P(e.NRate,{...t}),datePicker:t=>P(e.NDatePicker,{...t}),daterange:t=>P(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>P(e.NTimePicker,{...t}),cascader:t=>P(e.NCascader,{...t}),colorPicker:t=>P(e.NColorPicker,{...t}),select:(t,n)=>P(e.NSelect,{...t,options:n.children?.map(e=>({...e}))||[]}),checkbox:(t,n)=>P(e.NCheckboxGroup,{...t},{default:()=>P(e.NSpace,{},{default:()=>n.children?.map(t=>P(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>P(e.NRadioGroup,{...t},{default:()=>P(e.NSpace,{},{default:()=>n.children?.map(t=>P(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,i)=>{let a={...t},{value:o}=a,s=a[`onUpdate:value`];return delete a.value,delete a[`onUpdate:value`],P(e.NUpload,{...a,fileList:Array.isArray(o)?o:[],"onUpdate:fileList":e=>s?.(e)},{default:()=>i.slots?.uploadClick?.()||P(e.NButton,{type:`primary`,size:n.attrs?.size??r.size,disabled:a.disabled===!0},{default:()=>`选择文件`}),tip:()=>i.slots?.uploadTip?.()||null})},editor:(t,n)=>{let r={...t},{value:i}=r,a=r[`onUpdate:value`];return delete r.value,delete r[`onUpdate:value`],P(e.C_Editor,{...r,editorId:`editor-${n.prop}`,modelValue:typeof i==`string`?i:``,"onUpdate:modelValue":e=>a?.(e)})}}}const Ge=$();function Ke(e,t){return Ge.register(e,t)}function qe(e,t){return Ge.unregister(e,t)}const Je=new Set([`select`,`checkbox`,`radio`,`cascader`]),Ye=new Set([`input`,`textarea`,`inputNumber`,`select`,`checkbox`,`radio`,`switch`,`datePicker`,`daterange`,`timePicker`,`cascader`,`colorPicker`]),Xe=new Set([`input`,`textarea`,`inputNumber`,`rate`,`editor`]);function Ze(e){let{formModel:i,visibleOptions:o,config:s,handleFieldChange:c,componentMap:u,instanceSlots:d,asyncOptionsCache:f,asyncLoadingMap:p,renderers:m,setFormItemRef:h,onError:g}=e,_=u,v=We(_),ee=ne()?re(He,void 0):void 0,y=e.registry??ee??Ge,b=e=>m?.value?.[e]??y.get(e)??v[e],x=e=>{let t=Ue(e.disabled,s.value.disabled,i),n=Ue(e.readonly,s.value.readonly,i),r=Xe.has(e.type),o={...Ye.has(e.type)?{size:e.attrs?.size??s.value.size}:{},value:l(i,e.prop),"onUpdate:value":t=>{Ue(e.disabled,s.value.disabled,i)||Ue(e.readonly,s.value.readonly,i)||(a(i,e.prop,t),c(e.prop))},disabled:t||n&&!r,readonly:n||e.type===`rate`&&t};return e.type===`textarea`&&(o.type=`textarea`),e.placeholder&&(o.placeholder=e.placeholder),o};function te(t){let n=t.children??[];return Object.prototype.hasOwnProperty.call(f.value,t.prop)?f.value[t.prop]??[]:t.children!==void 0||t.asyncOptions?n:e.getDictionaryOptions?.(t.prop).map(e=>({...e}))??[]}function S(e){return Je.has(e.type)?{...e,children:te(e)}:e}function w(t,n){return t.type===`select`&&(p.value[t.prop]||e.isDictionaryLoading?.(t.prop))&&(n.loading=!0),n}function T(e,t){return e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&Je.has(e.type)&&t===v[e.type]}function E(e,i){let a=e[`onUpdate:value`];e.value=r(e.value),e[`onUpdate:value`]=e=>{let n=t(e);Array.isArray(a)?a.forEach(e=>e(n)):a?.(n)},i.children=n(i.children??[]),e.options=i.children,e.fallbackOption=e=>({value:e,label:String(t(e)??``)})}let D=e=>{try{let t=S(e),n=b(t.type);if(!n)return g?.(TypeError(`[C_Form] 未支持的组件类型: ${t.type}`),t.prop),null;let r=w(t,F(t.attrs??{},x(t)));return T(e,n)&&E(r,t),n(r,t,s.value,{slots:d,components:_})}catch(t){return g?.(t,e.prop),null}};function O(e){if(e.label)return e.help?P(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,P(_.NTooltip,{trigger:`hover`},{trigger:()=>P(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,textContent:`ⓘ`}),default:()=>e.help})]):e.label}return{renderFormItem:D,formItems:C(()=>o.value.map(e=>{let t=!!(e.required||e.rules?.some(e=>e.required)),n=O(e);return P(_.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,class:`c-form-field`,key:e.prop,required:t,ref:t=>h?.(e.prop,t)},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>D(e)})})),getBaseProps:x}}const Qe={class:`c-form-default`};var $e=h(M({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(t,n)=>(z(),E(`div`,Qe,[(z(!0),E(S,null,V(e.formItems,(e,t)=>(z(),w(U(e),{key:e.key??t}))),128))]))}}),[[`__scopeId`,`data-v-4313de0c`]]),et=h(M({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=C(()=>t.layoutConfig?.inline?.itemWidth??280),r=C(()=>t.layoutConfig?.inline?.gap??16),i=C(()=>t.layoutConfig?.inline?.rowGap??16),a=C(()=>t.layoutConfig?.inline?.align??`center`),o=C(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return a.value}}),s=C(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),c=C(()=>({display:`flex`,flexWrap:t.layoutConfig?.inline?.wrap??`wrap`,alignItems:o.value,justifyContent:s.value,gap:`${i.value}px ${r.value}px`,width:`100%`})),l=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},u=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(t,n)=>(z(),E(`div`,{class:`c-form-inline`,style:oe(c.value)},[(z(!0),E(S,null,V(e.formItems,(e,t)=>(z(),E(`div`,{key:l(e,t),class:`c-form-inline-item`,style:oe(u(t))},[(z(),w(U(e)))],4))),128))],4))}}),[[`__scopeId`,`data-v-711f6c00`]]);const tt={class:`config-header`},nt={class:`config-controls`},rt={class:`config-label`},it={class:`item-wrapper`};var at=h(M({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e,{expose:t}){let n=e,r=le({cols:24,gutter:16,responsive:!0}),i=C(()=>n.layoutConfig?.grid||{}),a=C(()=>i.value.showConfigPanel),o=C(()=>i.value.showStats),s=C(()=>({cols:a.value?r.cols:i.value.cols??24,gutter:a.value?r.gutter:i.value.gutter??16,responsive:a.value?r.responsive:i.value.responsive??!0})),c=B(null),l=y(c,()=>s.value.responsive),u=C(()=>{let e=i.value.minItemWidth;return s.value.responsive&&typeof e==`number`&&Number.isFinite(e)&&e>0?e:0}),d=C(()=>{let e=i.value.xGap??s.value.gutter;return s.value.responsive&&l.value>0?Math.min(e,l.value/Math.max(1,s.value.cols)):e}),f=C(()=>({cols:s.value.cols,xGap:d.value,yGap:i.value.yGap??i.value.yGutter??s.value.gutter,responsive:s.value.responsive?`screen`:`self`})),p=C(()=>[{key:`cols`,label:`列数`,component:Te,value:r.cols,update:e=>{typeof e==`number`&&(r.cols=e)},props:{min:1,max:48,size:n.controlSize??`small`}},{key:`gutter`,label:`间距`,component:Te,value:r.gutter,update:e=>{typeof e==`number`&&(r.gutter=e)},props:{min:0,max:48,size:n.controlSize??`small`}},{key:`responsive`,label:`响应式`,component:X,value:r.responsive,update:e=>{typeof e==`boolean`&&(r.responsive=e)},props:{size:n.controlSize??`small`}}]),h=C(()=>`列数: ${s.value.cols} | 间距: ${s.value.gutter}px | 项目: ${n.formItems.length}个`),g=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,_=(e,t)=>{let r=n.options?.[e]?.layout;return r?.[t]??r?.grid?.[t]},v=()=>{let{cols:e}=s.value;if(u.value&&l.value>0){let t=Math.max(1,Math.min(e,Math.floor((l.value+d.value)/(u.value+d.value))));return Math.ceil(e/t)}return e<=12?e:e<=24?12:8},ee=e=>{if(!u.value||l.value<=0)return e;let{cols:t}=s.value,n=Math.ceil(t*(u.value+d.value)/(l.value+d.value));return Math.min(t,Math.max(e,n))},b=e=>{let t=_(e,`span`),n=_(e,`offset`),r=_(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=s.value.cols?ee(t):v(),offset:typeof n==`number`&&n>=0&&n<s.value.cols?n:0,suffix:!!r}};return K(i,e=>{e.cols!==void 0&&(r.cols=e.cols),e.gutter!==void 0&&(r.gutter=e.gutter),e.responsive!==void 0&&(r.responsive=e.responsive)},{immediate:!0}),t({updateGridConfig:e=>Object.assign(r,e),getCurrentConfig:()=>({...s.value}),getGridInfo:()=>({...s.value,itemCount:n.formItems.length})}),(t,n)=>{let r=ve,i=J,s=Ce,l=ge;return z(),E(`div`,{ref_key:`rootRef`,ref:c,class:`c-grid-layout`},[T(` 配置面板 `),a.value?(z(),w(r,{key:0,size:e.controlSize??`small`,bordered:!1,class:`config-panel`},{header:q(()=>[D(`div`,tt,[A(m,{name:`mdi:view-grid`,size:18}),n[0]||=D(`span`,null,`网格配置`,-1)])]),default:q(()=>[D(`div`,nt,[(z(!0),E(S,null,V(p.value,e=>(z(),E(`div`,{key:e.key,class:`config-item`},[D(`span`,rt,fe(e.label)+`:`,1),(z(),w(U(e.component),F({value:e.value},{ref_for:!0},e.props,{"onUpdate:value":e.update}),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1},8,[`size`])):T(`v-if`,!0),T(` 网格容器 `),A(s,F(f.value,{class:`grid-container`}),{default:q(()=>[(z(!0),E(S,null,V(e.formItems,(e,t)=>(z(),w(i,F({key:g(e,t)},{ref_for:!0},b(t),{class:`grid-item`}),{default:q(()=>[D(`div`,it,[(z(),w(U(e)))])]),_:2},1040))),128))]),_:1},16),T(` 统计信息 `),o.value?(z(),w(l,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:q(()=>[A(m,{name:`mdi:information-outline`,size:16}),n[1]||=k(` 网格信息 `,-1)]),default:q(()=>[k(` `+fe(h.value),1)]),_:1})):T(`v-if`,!0)],512)}}}),[[`__scopeId`,`data-v-185a44af`]]);const ot=[`default`,`inline`,`grid`],st={NFormItem:Se,NInput:we,NInputNumber:Te,NSwitch:X,NSelect:De,NCheckboxGroup:be,NCheckbox:ye,NRadioGroup:Y,NRadio:Ee,NButton:_e,NSpace:Oe,NTooltip:Z,NSlider:j(()=>import(`./slider.js`)),NRate:j(()=>import(`./rate.js`)),NDatePicker:j(()=>import(`./date-picker.js`)),NTimePicker:j(()=>import(`./time-picker.js`)),NCascader:j(()=>import(`./cascader.js`)),NColorPicker:j(()=>import(`./color-picker.js`)),NUpload:j(()=>import(`./upload.js`)),C_Editor:j(()=>import(`./C_Editor.js`).then(e=>e.C_Editor))},ct={default:$e,inline:et,grid:at,card:j(()=>import(`./Card.js`)),tabs:j(()=>import(`./Tabs.js`)),steps:j(()=>import(`./Steps.js`)),dynamic:j(()=>import(`./Dynamic.js`)),custom:j(()=>import(`./Custom.js`))};var lt=h(M({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})},renderers:{}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(t,{expose:n,emit:r}){let i=t,a=r,o=v(),s=me(),c=C(()=>ee(i.config,o)),l=C(()=>{let{size:e}=s;return _({...c.value,...e===`small`||e===`medium`||e===`large`?{size:e}:{}})}),u=C(()=>c.value.density!==void 0),d=C(()=>e(l.value.density)),p=C(()=>{if(!u.value)return;let{gap:e,rowGap:t,padding:n,formItemGap:r}=d.value;return{"--c-form-gap":`${e}px`,"--c-form-row-gap":`${t}px`,"--c-form-padding":`${n}px`,"--c-form-item-gap":`${r}px`}}),{t:m}=f(()=>l.value.locale),h=B(null),y=B(null),b=C(()=>ot.includes(l.value.layout)||y.value===l.value.layout),{formModel:x,formRules:te,visibleOptions:S,initialize:E,handleFieldChange:D,validate:j,validateField:M,validateStep:P,validateTab:re,validateDynamicFields:ie,validateCustomGroup:I,clearValidation:oe,getModel:L,setFields:se,resetFields:R,setFieldValue:ce,getFieldValue:le,setFieldsValue:ue,handleSubmit:de,handleReset:pe,isDirty:K,getChangedFields:ge,isFieldDirty:ve,markAsClean:ye,asyncOptionsCache:be,asyncLoadingMap:Ce,asyncErrorMap:J,getDictionaryOptions:we,isDictionaryLoading:Te,reloadOptions:Ee,setFormItemRef:Y,getFormItemElement:De,isSubmitting:X,submit:Z}=Pe(C(()=>i.options),l,h,a,C(()=>i.modelValue),b),ke=C(()=>x),Q=()=>L(),Ae=C(()=>({form:h.value,model:ke.value,validate:j,validateField:M,reset:R,setFields:se,getModel:Q,clearValidation:oe,submit:Z,reloadOptions:Ee,submitting:X.value})),je=ne(),Me=()=>Object.keys(je?.slots??{}).filter(e=>![`action`,`action-extra`,`step-actions`].includes(e)),{formItems:Ne,getBaseProps:Fe}=Ze({formModel:x,visibleOptions:S,config:l,handleFieldChange:D,componentMap:st,instanceSlots:je?.slots,asyncOptionsCache:be,asyncLoadingMap:Ce,renderers:C(()=>i.renderers),getDictionaryOptions:we,isDictionaryLoading:Te,setFormItemRef:Y,onError:(e,t)=>l.value.onError?.(e,{source:`render`,field:t})}),Ie=W(null),Le=Be({layout:Ie,layoutType:()=>l.value.layout,fields:()=>S.value,model:x,getElement:De,access:Fe,onError:(e,t)=>l.value.onError?.(e,{source:`callback`,field:t})}),Re=C(()=>ct[l.value.layout]||ct.default),ze=C(()=>{let e=l.value,t={type:e.layout,grid:e.grid,inline:e.inline,card:e.card,tabs:e.tabs,steps:e.steps,dynamic:e.dynamic,custom:e.custom};if(!u.value)return t;let{gap:n,rowGap:r}=d.value;return{...t,grid:{gutter:n,yGutter:e.grid?.gutter??r,...e.grid},inline:{gap:n,rowGap:r,...e.inline},card:{spacing:n,...e.card},tabs:{size:e.size,...e.tabs},steps:{size:e.size===`small`?`small`:`medium`,...e.steps},dynamic:{...e.dynamic,grid:{gutter:n,...e.dynamic?.grid}}}}),Ve=C(()=>g(l.value)),He=C(()=>{let{layout:e}=l.value;return{...e===`steps`?{beforeStepChange:Ye,validateStep:Xe,submitting:X.value,disabled:l.value.disabled||l.value.readonly}:e===`tabs`?{beforeTabChange:Ke,validateTab:qe}:{},controlSize:u.value?l.value.size:void 0,onVnodeMounted:()=>{y.value=e}}}),$=(e,...t)=>{let n=l.value[e];if(typeof n==`function`)try{let e=n(...t);e instanceof Promise&&e.catch(e=>l.value.onError?.(e,{source:`callback`}))}catch(e){l.value.onError?.(e,{source:`callback`})}},Ue=e=>{l.value.onFieldsChange?.(e)},We=e=>{a(`validate-success`,e)},Ge=e=>{a(`validate-error`,e)},Ke=async(e,t)=>{try{return await l.value.onTabBeforeChange?.(e,t)!==!1}catch(e){return l.value.onError?.(e,{source:`callback`}),!1}},qe=async e=>{let t=await re(e);return t&&l.value.onTabValidate?.(e),t},Je=(e,t)=>{l.value.onStepChange?.(e,t)},Ye=async(e,t)=>{try{return await l.value.onStepBeforeChange?.(e,t)!==!1}catch(e){return l.value.onError?.(e,{source:`callback`}),!1}},Xe=async(e,t)=>{try{return await P(t)?(l.value.onStepValidate?.(e),!0):!1}catch{return!1}};return n({validate:j,revealField:Le,validateField:M,validateStep:P,validateTab:re,validateDynamicFields:ie,validateCustomGroup:I,clearValidation:oe,getModel:L,setFields:se,resetFields:R,setFieldValue:ce,getFieldValue:le,setFieldsValue:ue,formRef:h,formModel:x,initialize:E,layoutType:C(()=>l.value.layout),shouldShowDefaultActions:Ve,isDirty:K,getChangedFields:ge,isFieldDirty:ve,markAsClean:ye,asyncLoadingMap:Ce,asyncErrorMap:J,reloadOptions:Ee,isSubmitting:X,submit:Z}),(e,t)=>(z(),w(G(xe),F({ref_key:`formRef`,ref:h,class:[`c-form`,u.value&&`c-form--${l.value.density}`],style:p.value,model:G(x),rules:G(te),"validate-on-rule-change":!1,"label-placement":l.value.labelPlacement,"label-width":l.value.labelWidth,size:l.value.size,disabled:l.value.disabled,readonly:l.value.readonly},e.$attrs,{onSubmit:he(G(Z),[`prevent`])}),{default:q(()=>[T(` 布局组件渲染 `),(z(),w(U(Re.value),F({ref_key:`layoutRef`,ref:Ie,key:l.value.layout,"form-items":G(Ne),"layout-config":ze.value,options:G(S),"form-data":G(x)},He.value,{onTabChange:t[0]||=(e,t)=>$(`onTabChange`,e,t),onStepChange:Je,onFieldAdd:t[1]||=e=>$(`onFieldAdd`,e),onFieldRemove:t[2]||=e=>$(`onFieldRemove`,e),onFieldToggle:t[3]||=(e,t)=>$(`onFieldToggle`,e,t),onFieldsClear:t[4]||=e=>$(`onFieldsClear`),onRenderModeChange:t[5]||=e=>$(`onRenderModeChange`,e),onGroupToggle:t[6]||=(e,t)=>$(`onGroupToggle`,e,t),onGroupReset:t[7]||=e=>$(`onGroupReset`,e),onValidateSuccess:We,onValidateError:Ge,onFieldsChange:Ue}),O({"step-actions":q(t=>[H(e.$slots,`step-actions`,F(t,{submit:G(Z),submitting:G(X)}),()=>[t.isLastStep&&l.value.showActions?(z(),w(G(_e),{key:0,type:`primary`,size:l.value.size,loading:G(X)||!b.value,disabled:!b.value||G(X)||l.value.disabled||l.value.readonly,onClick:G(Z)},{default:q(()=>[k(fe(l.value.submitText||G(m)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])):T(`v-if`,!0)],!0)]),_:2},[V(Me(),t=>({name:t,fn:q(n=>[H(e.$slots,t,ae(N(n)),void 0,!0)])}))]),1040,[`form-items`,`layout-config`,`options`,`form-data`])),T(` 表单操作按钮区域(只在特定布局中显示) `),Ve.value?(z(),w(G(Se),{key:0,class:`c-form-actions`,"show-feedback":!1},{default:q(()=>[H(e.$slots,`action`,ae(N(Ae.value)),()=>[A(G(Oe),{justify:`end`,size:u.value?d.value.gap:void 0,style:{width:`100%`}},{default:q(()=>[A(G(_e),{size:l.value.size,disabled:!b.value||G(X)||l.value.disabled||l.value.readonly,onClick:G(pe)},{default:q(()=>[k(fe(l.value.resetText||G(m)(`common.reset`)),1)]),_:1},8,[`size`,`disabled`,`onClick`]),H(e.$slots,`action-extra`,ae(N(Ae.value)),void 0,!0),A(G(_e),{type:`primary`,size:l.value.size,loading:G(X)||!b.value,disabled:!b.value||G(X)||l.value.disabled||l.value.readonly,onClick:G(de)},{default:q(()=>[k(fe(l.value.submitText||G(m)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])]),_:3},8,[`size`])],!0)]),_:3})):T(`v-if`,!0)]),_:3},16,[`class`,`style`,`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`,`onSubmit`]))}}),[[`__scopeId`,`data-v-12ebc552`]]);function ut(e){return e}function dt(e){return e}function ft(e){let t=W(d(e.initialValues)),n=W(null);return{model:t,formRef:n,bindings:C(()=>({modelValue:t.value,options:pe(e.options),config:pe(e.config),"onUpdate:modelValue":e=>{t.value=d(e)}})),validate:async()=>{if(!n.value)throw Error(`C_Form is not mounted`);await n.value.validate()},submit:()=>n.value?.submit()??Promise.resolve(!1),reset:()=>{n.value?(n.value.resetFields(),t.value=d(n.value.getModel())):t.value=d(e.initialValues)},getValues:()=>d(n.value?.getModel()??t.value),setValues:async(e,r=!1)=>{n.value?(await n.value.setFieldsValue(e,r),t.value=d(n.value.getModel())):t.value={...t.value,...d(e)}}}}export{He as a,qe as c,Ae as d,lt as i,Ze as l,ut as n,$ as o,ft as r,Ke as s,dt as t,Pe as u};
1
+ import{t as e}from"./density.js";import{n as t,o as n,r}from"./dictionary.js";import{a as i,c as a,i as o,n as s,o as c,r as l,s as u,t as d}from"./data2.js";import{t as f}from"./useComponentLocale.js";import{t as p}from"./feedback.js";import{t as m}from"./C_Icon2.js";import{t as h}from"./export-helper.js";import{a as g,i as _,o as v,r as y}from"./useFormConfig.js";import{t as b}from"./useGridWidth.js";import{t as x}from"./useDictionary.js";import{a as S,i as ee}from"./formValidation.js";import{Fragment as C,computed as w,createBlock as T,createCommentVNode as E,createElementBlock as D,createElementVNode as O,createSlots as k,createTextVNode as A,createVNode as j,defineAsyncComponent as M,defineComponent as N,getCurrentInstance as te,guardReactiveProps as ne,h as P,inject as re,isReactive as ie,mergeProps as F,nextTick as I,normalizeProps as ae,normalizeStyle as oe,onActivated as L,onDeactivated as se,onMounted as R,onScopeDispose as ce,openBlock as z,reactive as le,ref as B,renderList as V,renderSlot as H,resolveComponent as ue,resolveDynamicComponent as U,shallowReactive as de,shallowRef as W,toDisplayString as fe,toValue as pe,unref as G,useAttrs as me,watch as K,withCtx as q,withModifiers as he}from"vue";import{NAlert as ge,NButton as _e,NCard as ve,NCheckbox as ye,NCheckboxGroup as be,NForm as xe,NFormItem as Se,NGrid as Ce,NGridItem as J,NInput as we,NInputNumber as Te,NRadio as Ee,NRadioGroup as Y,NSelect as De,NSpace as Oe,NSwitch as ke,NTooltip as X}from"naive-ui";function Z(e,t){if(Reflect.has(e,t)&&Object.prototype.hasOwnProperty.call(e,t))return ie(e);let n=e;for(let e of c(t)){if(!n||typeof n!=`object`||!ie(n))return!1;n=n[e]}return!0}function Q(e,t=new Set){if(typeof e!=`object`||!e||t.has(e))return!0;t.add(e);let n=ie(e);if(Array.isArray(e)){for(let r of e)n=Q(r,t)&&n;return n}return e instanceof Map?(e.forEach((e,r)=>{n=Q(r,t)&&n,n=Q(e,t)&&n}),n):e instanceof Set?(e.forEach(e=>{n=Q(e,t)&&n}),n):(Object.values(e).forEach(e=>{n=Q(e,t)&&n}),n)}function Ae(e,t){let n=W({}),r=new Map,a=ie(e);function o(){let i=new Set(t?pe(t):[...Object.keys(n.value),...Object.keys(e)]);for(let e of r.keys())i.has(e)||r.delete(e);return i}let s=w(()=>{for(let e of o())if(f(e))return!0;return!1});function c(){let e=[];for(let t of o())f(t)&&e.push(t);return e}function u(e){return p(e)}function f(t){if(!a)return p(t);let o=r.get(t);return o||(o=w(()=>{let r=l(e,t),a=Z(e,t);return{cacheable:Q(r)&&a,dirty:!i(l(n.value,t),r)}}),r.set(t,o)),o.value.cacheable?o.value.dirty:p(t)}function p(t){let r=l(e,t);return Q(r),!i(l(n.value,t),r)}function m(){n.value=d(e)}function h(){return d(n.value)}return{isDirty:s,getChangedFields:c,isFieldDirty:u,markAsClean:m,getCleanModel:h}}const je={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:[],upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:!1};function Me(e){return d((e.value===void 0?je[e.type]:e.value)??null)}function Ne(e){let t=new Set;e.forEach((e,n)=>{if(!e.prop?.trim())throw TypeError(`[C_Form] options[${n}].prop 不能为空`);if(t.has(e.prop))throw TypeError(`[C_Form] 字段 prop 重复: ${e.prop}`);t.add(e.prop)})}function Pe(e,t,n,r,m,h){let g=le(d(m?.value??(t.value.mode===`edit`?t.value.initialValues:void 0)??{})),_=le({}),v=new Map,y=B({}),b=B({}),C=B({}),T=B(!1),E=new Map,D=!1,O,k=new Map,A=new Map,j=new Map,M=new Map,N=new Set,te=!1,ne=!1,P=0,re=p(()=>t.value.feedback),{t:ie}=f(()=>t.value.locale),{isDirty:F,getChangedFields:ae,isFieldDirty:oe,markAsClean:L,getCleanModel:se}=Ae(g,()=>e.value.map(e=>e.prop));function R(e,n,r){if(!D)try{t.value.onError?t.value.onError(e,{source:n,field:r}):re.error(e instanceof Error?e.message:String(e),e)}catch{}}let z=x(()=>new Map(e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions).map(e=>[e.prop,e.dictionary])),{onError:(e,n)=>t.value.onError?.(e,{source:`async-options`,field:n})});function V(e,t){if(!(D||!t))try{re[e](t)}catch{}}let H=w(()=>e.value.filter(e=>{if(e.show===!1)return!1;if(!e.showWhen)return!0;try{return e.showWhen(g)}catch(t){return R(t,`callback`,e.prop),!1}}));function ue(){ne=!0;let e=++P;I(()=>{e===P&&(ne=!1)})}function U(){return d(g)}function de(t){let n=t?d(t):{};return e.value.forEach(e=>{o(n,e.prop)||a(n,e.prop,Me(e))}),n}function W(e){try{let t=S(e.rulesWhen?e.rulesWhen(g):e.rules);if(E.delete(e.prop),e.required&&!t.some(e=>e.required)){let n=e.label||e.prop;t.unshift(ee(n,ie(`form.required`,{label:n})))}if(e.crossFieldValidator){let n=e.crossFieldValidator;t.push({async validator(){let e=await n(g);if(e)throw Error(e)},trigger:[`change`,`blur`]})}if(t.length===0){delete _[e.prop];return}_[e.prop]=t.map(t=>({...t,key:e.prop}))}catch(t){delete _[e.prop],E.set(e.prop,t),R(t,`callback`,e.prop)}}function fe(){e.value.forEach(e=>{(e.rulesWhen||e.crossFieldValidator)&&W(e)})}function pe(e){N.forEach(n=>{e.has(n)||(v.delete(n),delete _[n],E.delete(n),he(n),j.delete(n),t.value.preserveRemovedFields||s(g,n))})}function G(t=!1){try{Ne(e.value);let n=U(),r=new Set(e.value.map(e=>e.prop));pe(r),e.value.forEach(e=>{o(g,e.prop)||a(g,e.prop,Me(e)),W(e),ge(e)}),N=r,J(q(n),!1),t&&I(L)}catch(e){throw R(e,`initialize`),e}}function me(e){let t=U();ue(),u(g,de(e)),J(q(t),!1)}function q(t){return[...new Set([...Object.keys(t),...Object.keys(g),...e.value.map(e=>e.prop)])].filter(e=>!i(l(t,e),l(g,e)))}function he(e){A.get(e)?.abort(),A.delete(e),k.delete(e),M.delete(e),delete y.value[e],delete b.value[e],delete C.value[e]}function ge(e){if(j.get(e.prop)!==e.asyncOptions){if(he(e.prop),!e.asyncOptions){j.delete(e.prop);return}j.set(e.prop,e.asyncOptions),_e(e,`initialize`)}}function _e(e,t){if(D)return;let n=M.get(e.prop),r={item:e,reason:n?.reason===`initialize`?n.reason:t};M.set(e.prop,r),I(()=>{M.get(e.prop)===r&&(M.delete(e.prop),be(r.item,r.reason))})}function ve(e,t,n){return D||n.signal.aborted||k.get(e)!==t||A.get(e)!==n}function ye(e){return!D&&!!e.asyncOptions&&j.get(e.prop)===e.asyncOptions}async function be(e,t){if(!ye(e))return;let{prop:n}=e,r=(k.get(n)??0)+1;k.set(n,r),A.get(n)?.abort();let i=new AbortController;A.set(n,i),b.value[n]=!0,delete C.value[n];try{let a=await e.asyncOptions(U(),{field:n,reason:t,signal:i.signal});if(ve(n,r,i))return;if(!Array.isArray(a))throw TypeError(`[C_Form] ${n}.asyncOptions 必须返回数组`);y.value[n]=d([...a])}catch(e){if(ve(n,r,i))return;C.value[n]=e,R(e,`async-options`,n)}finally{k.get(n)===r&&A.get(n)===i&&(b.value[n]=!1,A.delete(n))}}async function xe(t){let n=e.value.filter(e=>e.asyncOptions&&(!t||e.prop===t)),r=e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&(!t||e.prop===t));if(t&&n.length===0&&r.length===0)throw Error(`[C_Form] 未找到异步选项字段: ${t}`);await Promise.all([...n.map(e=>(M.delete(e.prop),be(e,`manual`))),...r.map(e=>z.reload(e.prop))])}function Se(){let t=e.value.filter(e=>e.valueWhen),n=new Set;if(t.length===0)return[];for(let e=0;e<=t.length;e+=1){let e=!1;for(let r of t)try{let t=r.valueWhen?.(g);t!==void 0&&!i(l(g,r.prop),t)&&(a(g,r.prop,d(t)),n.add(r.prop),e=!0)}catch(e){R(e,`callback`,r.prop)}if(!e)return[...n]}return R(Error(`[C_Form] valueWhen 存在循环依赖,已停止继续计算`),`callback`),[...n]}function Ce(t){let n=t.map(e=>c(e).join(`.`));return e.value.filter(e=>!e.asyncOptions||!e.dependsOn?!1:(Array.isArray(e.dependsOn)?e.dependsOn:[e.dependsOn]).some(e=>{let t=c(e).join(`.`);return n.some(e=>e===t||e.startsWith(`${t}.`)||t.startsWith(`${e}.`))}))}function J(e,n=!0){let r=[...new Set([...e,...Se()])];fe(),Ce(r).forEach(e=>{_e(e,`dependency`)}),n&&t.value.validateOnChange&&I(()=>{D||Y(r).catch(()=>void 0)})}function we(e){J([e])}function Te(e,t){t?v.set(e,t):v.delete(e)}async function Ee(){if(h?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!n.value)throw Error(`[C_Form] 表单引用不存在`);try{let e=H.value.find(e=>E.has(e.prop));if(e)throw E.get(e.prop);if(await n.value.validate(),D)throw Error(`[C_Form] 表单已卸载`);r(`validate-success`,U())}catch(e){throw D||r(`validate-error`,e),e}}async function Y(e){if(h?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!n.value)throw Error(`[C_Form] 表单引用不存在`);let t=[...new Set(Array.isArray(e)?e:[e])],r=t.find(e=>E.has(e));if(r)throw E.get(r);let i=[],a=t.flatMap(e=>{let t=v.get(e);return t?[t.validate()]:(i.push(e),[])});i.length>0&&a.push(n.value.validate(void 0,e=>i.includes(String(e.key??``))));let o=(await Promise.allSettled(a)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(o.length>0)throw o}function De(e){if(!e){n.value?.restoreValidation();return}(Array.isArray(e)?e:[e]).forEach(e=>v.get(e)?.restoreValidation())}async function Oe(e){let t=H.value.filter(e).map(e=>e.prop);if(t.length===0)return!0;try{return await Y(t),!0}catch{return!1}}function ke(e){let n=typeof e==`string`?e:t.value.steps?.steps?.[e]?.key;return n?Oe(e=>e.layout?.step===n):Promise.resolve(!0)}function X(e){return Oe(t=>t.layout?.tab===e)}function Z(){return Oe(e=>!!e.layout?.dynamic)}function Q(e){return Oe(t=>t.layout?.group===e)}function je(e){Object.entries(d(e)).forEach(([e,t])=>{a(g,e,t)}),J(Object.keys(e))}function Pe(){let e=U();u(g,se()),De(),J(q(e),!1),V(`info`,t.value.resetSuccessText)}async function Fe(e,t,n=!1){a(g,e,d(t)),we(e),n&&await Y(e)}function Ie(e){return d(l(g,e))}async function Le(e,t=!1){je(e),t&&await Y(Object.keys(e))}function Re(){return D||h?.value===!1||T.value||t.value.disabled||t.value.readonly}function ze(e,r,a){return!D&&!e.signal.aborted&&h?.value!==!1&&!t.value.disabled&&!t.value.readonly&&a!==null&&n.value===a&&i(g,r)}async function Be(){if(Re())return!1;let e=U(),i=n.value,a=new AbortController;O=a,T.value=!0;try{if(await Ee(),!ze(a,e,i))return!1;let n={model:e,form:i};try{await t.value.onSubmit?.(n,{signal:a.signal})}catch(e){return a.signal.aborted||R(e,`submit`),!1}return a.signal.aborted?!1:(r(`submit`,n),V(`success`,t.value.submitSuccessText),!0)}catch{return!1}finally{O===a&&(O=void 0),T.value=!1}}function Ve(){G(!0);let e=m?.value??(t.value.mode===`edit`?t.value.initialValues:void 0);e&&me(e),I(L)}return K(e,()=>{let e=!te;e&&ue(),G(e),te=!0},{deep:!0,immediate:!0}),m&&K(m,e=>{e!==void 0&&!i(g,e)&&me(e)},{deep:!0,immediate:!0}),K(()=>[t.value.mode,t.value.initialValues],([e,t])=>{m?.value!==void 0||e!==`edit`||!t||(me(t),I(L))},{deep:!0}),K(g,e=>{ne||r(`update:modelValue`,d(e))},{deep:!0,flush:`post`}),ce(()=>{D=!0,O?.abort(),A.forEach(e=>e.abort()),A.clear(),M.clear(),v.clear()}),{formModel:g,formRules:_,visibleOptions:H,initialize:Ve,handleFieldChange:we,setFormItemRef:Te,getFormItemElement:e=>{let t=v.get(e)?.$el;return t?.nodeType===1?t:null},validate:Ee,validateField:Y,validateStep:ke,validateTab:X,validateDynamicFields:Z,validateCustomGroup:Q,clearValidation:De,getModel:U,setFields:je,resetFields:Pe,setFieldValue:Fe,getFieldValue:Ie,setFieldsValue:Le,submit:Be,handleSubmit:Be,handleReset:Pe,isSubmitting:T,isDirty:F,getChangedFields:ae,isFieldDirty:oe,markAsClean:L,asyncOptionsCache:y,asyncLoadingMap:b,asyncErrorMap:C,getDictionaryOptions:z.getOptions,isDictionaryLoading:z.isLoading,getDictionaryError:z.getError,reloadOptions:xe}}function Fe(e,t){return e.matches(`:disabled`)||`disabled`in e&&e.disabled===!0||`readOnly`in e&&e.readOnly===!0||!t&&e.getAttribute(`tabindex`)===`-1`}function Ie(e){if(e.hidden||e.getAttribute(`aria-hidden`)===`true`||e.hasAttribute(`inert`)||e.getAttribute(`aria-disabled`)===`true`||e.getAttribute(`aria-readonly`)===`true`)return!0;let t=e.ownerDocument.defaultView?.getComputedStyle(e);return t?t.display===`none`||t.visibility===`hidden`||t.visibility===`collapse`:!1}function Le(e,t=!1){if(!e.isConnected||typeof e.focus!=`function`||Fe(e,t))return!1;for(let t=e;t;t=t.parentElement)if(Ie(t))return!1;return!0}function Re(e,t,n){if(!e||!Le(e,n))return!1;(t??e).scrollIntoView?.({block:`nearest`,inline:`nearest`}),e.focus({preventScroll:!0});let r=e.ownerDocument.activeElement;return!!r&&(r===e||e.contains(r))}async function ze(e,t,n,r){return e.focusTarget?e.focusTarget({field:e.prop,element:t,model:n,signal:r}):[...t?.querySelectorAll(`input:not([type="hidden"]),textarea,select,button,[tabindex],[contenteditable="true"]`)??[]].find(e=>Le(e))}function Be(e){let t=0,n=!1,r=!1,i,a=Promise.resolve(),o=()=>{let e=++t,n=i;return i=void 0,n?.abort(),e},s=t=>{let n=e.fields().find(e=>e.prop===t);if(!n||n.layout?.hidden)return;let r=e.access(n);return r.disabled||r.readonly?void 0:n},c=e=>n&&!r&&e===t,l=(t,n)=>{try{e.onError?.(t,n)}catch{}};return R(()=>{n=!0}),L(()=>{n=!0}),se(()=>{n=!1,o()}),ce(()=>{r=!0,n=!1,o()}),K(e.layoutType,o),async t=>{let n=o();if(!c(n))return!1;let r=new AbortController;i=r;let u=()=>c(n)&&!r.signal.aborted,d=a.then(async()=>{if(await I(),!u()||!s(t))return!1;let n=e.layout.value?.revealField;return n&&!await n(t,u)?!1:(await I(),u()&&!!s(t))});a=d.catch(()=>!1);try{if(!await d)return!1;let n=s(t);if(!n)return!1;let i=e.getElement(t),a=await ze(n,i,e.model,r.signal);if(!u()||s(t)!==n)return!1;let o=Re(a,i,!!n.focusTarget);return u()&&o}catch(e){return u()&&l(e,t),!1}}}function Ve(e,t,n){let r=e.inputProps,i=r&&typeof r==`object`&&!Array.isArray(r)?r:{};return{...e,...n===`compact`&&e.showButton===void 0?{showButton:!1}:{},inputProps:{role:`spinbutton`,inputmode:e.precision===0?`numeric`:`decimal`,"aria-label":t.label,"aria-valuenow":Number.isFinite(e.value)?e.value:void 0,"aria-valuemin":e.min??void 0,"aria-valuemax":e.max??void 0,...i}}}const He=Symbol(`c-form-renderer-registry`);function Ue(e={}){let t=de(new Map),n={get:e=>t.get(e)?.renderer,register:(e,n)=>{if(!e.trim())throw TypeError(`[C_Form] renderer type 不能为空`);if(typeof n!=`function`)throw TypeError(`[C_Form] renderer ${e} 必须是函数`);let r={renderer:n};return t.set(e,r),()=>t.get(e)===r&&t.delete(e)},unregister:(e,n)=>{let r=t.get(e);return!r||n&&r.renderer!==n?!1:t.delete(e)}};return Object.entries(e).forEach(([e,t])=>{n.register(e,t)}),n}function $(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function We(e){return{input:t=>P(e.NInput,{...t}),textarea:t=>P(e.NInput,{...t,type:`textarea`}),inputNumber:(t,n,r)=>P(e.NInputNumber,Ve(t,n,r.density)),switch:t=>P(e.NSwitch,{...t}),slider:t=>P(e.NSlider,{...t}),rate:t=>P(e.NRate,{...t}),datePicker:t=>P(e.NDatePicker,{...t}),daterange:t=>P(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>P(e.NTimePicker,{...t}),cascader:t=>P(e.NCascader,{...t}),colorPicker:t=>P(e.NColorPicker,{...t}),select:(t,n)=>P(e.NSelect,{...t,options:n.children?.map(e=>({...e}))||[]}),checkbox:(t,n)=>P(e.NCheckboxGroup,{...t},{default:()=>P(e.NSpace,{},{default:()=>n.children?.map(t=>P(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>P(e.NRadioGroup,{...t},{default:()=>P(e.NSpace,{},{default:()=>n.children?.map(t=>P(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,i)=>{let a={...t},{value:o}=a,s=a[`onUpdate:value`];return delete a.value,delete a[`onUpdate:value`],P(e.NUpload,{...a,fileList:Array.isArray(o)?o:[],"onUpdate:fileList":e=>s?.(e)},{default:()=>i.slots?.uploadClick?.()||P(e.NButton,{type:`primary`,size:n.attrs?.size??r.size,disabled:a.disabled===!0},{default:()=>`选择文件`}),tip:()=>i.slots?.uploadTip?.()||null})},editor:(t,n)=>{let r={...t},{value:i}=r,a=r[`onUpdate:value`];return delete r.value,delete r[`onUpdate:value`],P(e.C_Editor,{...r,editorId:`editor-${n.prop}`,modelValue:typeof i==`string`?i:``,"onUpdate:modelValue":e=>a?.(e)})}}}const Ge=Ue();function Ke(e,t){return Ge.register(e,t)}function qe(e,t){return Ge.unregister(e,t)}const Je=new Set([`select`,`checkbox`,`radio`,`cascader`]),Ye=new Set([`input`,`textarea`,`inputNumber`,`select`,`checkbox`,`radio`,`switch`,`datePicker`,`daterange`,`timePicker`,`cascader`,`colorPicker`]),Xe=new Set([`input`,`textarea`,`inputNumber`,`rate`,`editor`]);function Ze(e){let{formModel:i,visibleOptions:o,config:s,handleFieldChange:c,componentMap:u,instanceSlots:d,asyncOptionsCache:p,asyncLoadingMap:m,renderers:h,setFormItemRef:g,onError:_}=e,v=u,{t:y}=f(()=>s.value.locale),b=We(v),x=te()?re(He,void 0):void 0,S=e.registry??x??Ge,ee=e=>h?.value?.[e]??S.get(e)??b[e],C=e=>{let t=$(e.disabled,s.value.disabled,i),n=$(e.readonly,s.value.readonly,i),r=Xe.has(e.type),o={...Ye.has(e.type)?{size:e.attrs?.size??s.value.size}:{},value:l(i,e.prop),"onUpdate:value":t=>{$(e.disabled,s.value.disabled,i)||$(e.readonly,s.value.readonly,i)||(a(i,e.prop,t),c(e.prop))},disabled:t||n&&!r,readonly:n||e.type===`rate`&&t};return e.type===`textarea`&&(o.type=`textarea`),e.placeholder&&(o.placeholder=e.placeholder),o};function T(t){let n=t.children??[];return Object.prototype.hasOwnProperty.call(p.value,t.prop)?p.value[t.prop]??[]:t.children!==void 0||t.asyncOptions?n:e.getDictionaryOptions?.(t.prop).map(e=>({...e}))??[]}function E(e){return Je.has(e.type)?{...e,children:T(e)}:e}function D(t,n){return t.type===`select`&&(m.value[t.prop]||e.isDictionaryLoading?.(t.prop))&&(n.loading=!0),n}function O(e,t){return e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&Je.has(e.type)&&t===b[e.type]}function k(e,i){let a=e[`onUpdate:value`];e.value=r(e.value),e[`onUpdate:value`]=e=>{let n=t(e);Array.isArray(a)?a.forEach(e=>e(n)):a?.(n)},i.children=n(i.children??[]),e.options=i.children,e.fallbackOption=e=>({value:e,label:String(t(e)??``)})}function A(t){return e.getOptionsError?.(t.prop)===void 0?null:P(`div`,{role:`alert`,class:`c-form-option-error`},[y(`dictionary.optionsFailed`),P(v.NButton,{text:!0,size:`small`,loading:m.value[t.prop]||e.isDictionaryLoading?.(t.prop),onClick:()=>e.reloadOptions?.(t.prop)},{default:()=>y(`common.retry`)})])}function j(e,t){return!Je.has(e.type)||!e.asyncOptions&&(e.dictionary===void 0||e.children!==void 0)?t:P(`div`,{class:`c-form-option-state`},[t,A(e)])}let M=e=>{try{let t=E(e),n=ee(t.type);if(!n)return _?.(TypeError(`[C_Form] 未支持的组件类型: ${t.type}`),t.prop),null;let r=D(t,F(t.attrs??{},C(t)));return O(e,n)&&k(r,t),j(e,n(r,t,s.value,{slots:d,components:v}))}catch(t){return _?.(t,e.prop),null}};function N(e){if(e.label)return e.help?P(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,P(v.NTooltip,{trigger:`hover`},{trigger:()=>P(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,textContent:`ⓘ`}),default:()=>e.help})]):e.label}return{renderFormItem:M,formItems:w(()=>o.value.map(e=>{let t=!!(e.required||e.rules?.some(e=>e.required)),n=N(e);return P(v.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,class:`c-form-field`,key:e.prop,required:t,ref:t=>g?.(e.prop,t)},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>M(e)})})),getBaseProps:C}}const Qe={class:`c-form-default`};var $e=h(N({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(t,n)=>(z(),D(`div`,Qe,[(z(!0),D(C,null,V(e.formItems,(e,t)=>(z(),T(U(e),{key:e.key??t}))),128))]))}}),[[`__scopeId`,`data-v-4313de0c`]]),et=h(N({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=w(()=>t.layoutConfig?.inline?.itemWidth??280),r=w(()=>t.layoutConfig?.inline?.gap??16),i=w(()=>t.layoutConfig?.inline?.rowGap??16),a=w(()=>t.layoutConfig?.inline?.align??`center`),o=w(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return a.value}}),s=w(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),c=w(()=>({display:`flex`,flexWrap:t.layoutConfig?.inline?.wrap??`wrap`,alignItems:o.value,justifyContent:s.value,gap:`${i.value}px ${r.value}px`,width:`100%`})),l=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},u=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(t,n)=>(z(),D(`div`,{class:`c-form-inline`,style:oe(c.value)},[(z(!0),D(C,null,V(e.formItems,(e,t)=>(z(),D(`div`,{key:l(e,t),class:`c-form-inline-item`,style:oe(u(t))},[(z(),T(U(e)))],4))),128))],4))}}),[[`__scopeId`,`data-v-711f6c00`]]);const tt={class:`config-header`},nt={class:`config-controls`},rt={class:`config-label`},it={class:`item-wrapper`};var at=h(N({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e,{expose:t}){let n=e,r=le({cols:24,gutter:16,responsive:!0}),i=w(()=>n.layoutConfig?.grid||{}),a=w(()=>i.value.showConfigPanel),o=w(()=>i.value.showStats),s=w(()=>({cols:a.value?r.cols:i.value.cols??24,gutter:a.value?r.gutter:i.value.gutter??16,responsive:a.value?r.responsive:i.value.responsive??!0})),c=B(null),l=b(c,()=>s.value.responsive),u=w(()=>{let e=i.value.minItemWidth;return s.value.responsive&&typeof e==`number`&&Number.isFinite(e)&&e>0?e:0}),d=w(()=>{let e=i.value.xGap??s.value.gutter;return s.value.responsive&&l.value>0?Math.min(e,l.value/Math.max(1,s.value.cols)):e}),f=w(()=>({cols:s.value.cols,xGap:d.value,yGap:i.value.yGap??i.value.yGutter??s.value.gutter,responsive:s.value.responsive?`screen`:`self`})),p=w(()=>[{key:`cols`,label:`列数`,component:Te,value:r.cols,update:e=>{typeof e==`number`&&(r.cols=e)},props:{min:1,max:48,size:n.controlSize??`small`}},{key:`gutter`,label:`间距`,component:Te,value:r.gutter,update:e=>{typeof e==`number`&&(r.gutter=e)},props:{min:0,max:48,size:n.controlSize??`small`}},{key:`responsive`,label:`响应式`,component:ke,value:r.responsive,update:e=>{typeof e==`boolean`&&(r.responsive=e)},props:{size:n.controlSize??`small`}}]),h=w(()=>`列数: ${s.value.cols} | 间距: ${s.value.gutter}px | 项目: ${n.formItems.length}个`),g=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,_=(e,t)=>{let r=n.options?.[e]?.layout;return r?.[t]??r?.grid?.[t]},v=()=>{let{cols:e}=s.value;if(u.value&&l.value>0){let t=Math.max(1,Math.min(e,Math.floor((l.value+d.value)/(u.value+d.value))));return Math.ceil(e/t)}return e<=12?e:e<=24?12:8},y=e=>{if(!u.value||l.value<=0)return e;let{cols:t}=s.value,n=Math.ceil(t*(u.value+d.value)/(l.value+d.value));return Math.min(t,Math.max(e,n))},x=e=>{let t=_(e,`span`),n=_(e,`offset`),r=_(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=s.value.cols?y(t):v(),offset:typeof n==`number`&&n>=0&&n<s.value.cols?n:0,suffix:!!r}};return K(i,e=>{e.cols!==void 0&&(r.cols=e.cols),e.gutter!==void 0&&(r.gutter=e.gutter),e.responsive!==void 0&&(r.responsive=e.responsive)},{immediate:!0}),t({updateGridConfig:e=>Object.assign(r,e),getCurrentConfig:()=>({...s.value}),getGridInfo:()=>({...s.value,itemCount:n.formItems.length})}),(t,n)=>{let r=ve,i=J,s=Ce,l=ge;return z(),D(`div`,{ref_key:`rootRef`,ref:c,class:`c-grid-layout`},[E(` 配置面板 `),a.value?(z(),T(r,{key:0,size:e.controlSize??`small`,bordered:!1,class:`config-panel`},{header:q(()=>[O(`div`,tt,[j(m,{name:`mdi:view-grid`,size:18}),n[0]||=O(`span`,null,`网格配置`,-1)])]),default:q(()=>[O(`div`,nt,[(z(!0),D(C,null,V(p.value,e=>(z(),D(`div`,{key:e.key,class:`config-item`},[O(`span`,rt,fe(e.label)+`:`,1),(z(),T(U(e.component),F({value:e.value},{ref_for:!0},e.props,{"onUpdate:value":e.update}),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1},8,[`size`])):E(`v-if`,!0),E(` 网格容器 `),j(s,F(f.value,{class:`grid-container`}),{default:q(()=>[(z(!0),D(C,null,V(e.formItems,(e,t)=>(z(),T(i,F({key:g(e,t)},{ref_for:!0},x(t),{class:`grid-item`}),{default:q(()=>[O(`div`,it,[(z(),T(U(e)))])]),_:2},1040))),128))]),_:1},16),E(` 统计信息 `),o.value?(z(),T(l,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:q(()=>[j(m,{name:`mdi:information-outline`,size:16}),n[1]||=A(` 网格信息 `,-1)]),default:q(()=>[A(` `+fe(h.value),1)]),_:1})):E(`v-if`,!0)],512)}}}),[[`__scopeId`,`data-v-185a44af`]]);const ot=[`default`,`inline`,`grid`],st={NFormItem:Se,NInput:we,NInputNumber:Te,NSwitch:ke,NSelect:De,NCheckboxGroup:be,NCheckbox:ye,NRadioGroup:Y,NRadio:Ee,NButton:_e,NSpace:Oe,NTooltip:X,NSlider:M(()=>import(`./slider.js`)),NRate:M(()=>import(`./rate.js`)),NDatePicker:M(()=>import(`./date-picker.js`)),NTimePicker:M(()=>import(`./time-picker.js`)),NCascader:M(()=>import(`./cascader.js`)),NColorPicker:M(()=>import(`./color-picker.js`)),NUpload:M(()=>import(`./upload.js`)),C_Editor:M(()=>import(`./C_Editor.js`).then(e=>e.C_Editor))},ct={default:$e,inline:et,grid:at,card:M(()=>import(`./Card.js`)),tabs:M(()=>import(`./Tabs.js`)),steps:M(()=>import(`./Steps.js`)),dynamic:M(()=>import(`./Dynamic.js`)),custom:M(()=>import(`./Custom.js`))};var lt=h(N({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})},renderers:{}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(t,{expose:n,emit:r}){let i=t,a=r,o=v(),s=me(),c=w(()=>y(i.config,o)),l=w(()=>{let{size:e}=s;return _({...c.value,...e===`small`||e===`medium`||e===`large`?{size:e}:{}})}),u=w(()=>c.value.density!==void 0),d=w(()=>e(l.value.density)),p=w(()=>{if(!u.value)return;let{gap:e,rowGap:t,padding:n,formItemGap:r}=d.value;return{"--c-form-gap":`${e}px`,"--c-form-row-gap":`${t}px`,"--c-form-padding":`${n}px`,"--c-form-item-gap":`${r}px`}}),{t:m}=f(()=>l.value.locale),h=B(null),b=B(null),x=w(()=>ot.includes(l.value.layout)||b.value===l.value.layout),{formModel:S,formRules:ee,visibleOptions:C,initialize:D,handleFieldChange:O,validate:M,validateField:N,validateStep:P,validateTab:re,validateDynamicFields:ie,validateCustomGroup:I,clearValidation:oe,getModel:L,setFields:se,resetFields:R,setFieldValue:ce,getFieldValue:le,setFieldsValue:ue,handleSubmit:de,handleReset:pe,isDirty:K,getChangedFields:ge,isFieldDirty:ve,markAsClean:ye,asyncOptionsCache:be,asyncLoadingMap:Ce,asyncErrorMap:J,getDictionaryOptions:we,isDictionaryLoading:Te,getDictionaryError:Ee,reloadOptions:Y,setFormItemRef:De,getFormItemElement:ke,isSubmitting:X,submit:Z}=Pe(w(()=>i.options),l,h,a,w(()=>i.modelValue),x),Q=w(()=>S),Ae=()=>L(),je=w(()=>({form:h.value,model:Q.value,validate:M,validateField:N,reset:R,setFields:se,getModel:Ae,clearValidation:oe,submit:Z,reloadOptions:Y,submitting:X.value})),Me=te(),Ne=()=>Object.keys(Me?.slots??{}).filter(e=>![`action`,`action-extra`,`step-actions`].includes(e)),{formItems:Fe,getBaseProps:Ie}=Ze({formModel:S,visibleOptions:C,config:l,handleFieldChange:O,componentMap:st,instanceSlots:Me?.slots,asyncOptionsCache:be,asyncLoadingMap:Ce,renderers:w(()=>i.renderers),getDictionaryOptions:we,isDictionaryLoading:Te,getOptionsError:e=>J.value[e]??Ee(e),reloadOptions:Y,setFormItemRef:De,onError:(e,t)=>l.value.onError?.(e,{source:`render`,field:t})}),Le=W(null),Re=Be({layout:Le,layoutType:()=>l.value.layout,fields:()=>C.value,model:S,getElement:ke,access:Ie,onError:(e,t)=>l.value.onError?.(e,{source:`callback`,field:t})}),ze=w(()=>ct[l.value.layout]||ct.default),Ve=w(()=>{let e=l.value,t={type:e.layout,grid:e.grid,inline:e.inline,card:e.card,tabs:e.tabs,steps:e.steps,dynamic:e.dynamic,custom:e.custom};if(!u.value)return t;let{gap:n,rowGap:r}=d.value;return{...t,grid:{gutter:n,yGutter:e.grid?.gutter??r,...e.grid},inline:{gap:n,rowGap:r,...e.inline},card:{spacing:n,...e.card},tabs:{size:e.size,...e.tabs},steps:{size:e.size===`small`?`small`:`medium`,...e.steps},dynamic:{...e.dynamic,grid:{gutter:n,...e.dynamic?.grid}}}}),He=w(()=>g(l.value)),Ue=w(()=>{let{layout:e}=l.value;return{...e===`steps`?{beforeStepChange:Xe,validateStep:Qe,submitting:X.value,disabled:l.value.disabled||l.value.readonly}:e===`tabs`?{beforeTabChange:qe,validateTab:Je}:{},controlSize:u.value?l.value.size:void 0,onVnodeMounted:()=>{b.value=e}}}),$=(e,...t)=>{let n=l.value[e];if(typeof n==`function`)try{let e=n(...t);e instanceof Promise&&e.catch(e=>l.value.onError?.(e,{source:`callback`}))}catch(e){l.value.onError?.(e,{source:`callback`})}},We=e=>{l.value.onFieldsChange?.(e)},Ge=e=>{a(`validate-success`,e)},Ke=e=>{a(`validate-error`,e)},qe=async(e,t)=>{try{return await l.value.onTabBeforeChange?.(e,t)!==!1}catch(e){return l.value.onError?.(e,{source:`callback`}),!1}},Je=async e=>{let t=await re(e);return t&&l.value.onTabValidate?.(e),t},Ye=(e,t)=>{l.value.onStepChange?.(e,t)},Xe=async(e,t)=>{try{return await l.value.onStepBeforeChange?.(e,t)!==!1}catch(e){return l.value.onError?.(e,{source:`callback`}),!1}},Qe=async(e,t)=>{try{return await P(t)?(l.value.onStepValidate?.(e),!0):!1}catch{return!1}};return n({validate:M,revealField:Re,validateField:N,validateStep:P,validateTab:re,validateDynamicFields:ie,validateCustomGroup:I,clearValidation:oe,getModel:L,setFields:se,resetFields:R,setFieldValue:ce,getFieldValue:le,setFieldsValue:ue,formRef:h,formModel:S,initialize:D,layoutType:w(()=>l.value.layout),shouldShowDefaultActions:He,isDirty:K,getChangedFields:ge,isFieldDirty:ve,markAsClean:ye,asyncLoadingMap:Ce,asyncErrorMap:J,getDictionaryError:Ee,reloadOptions:Y,isSubmitting:X,submit:Z}),(e,t)=>(z(),T(G(xe),F({ref_key:`formRef`,ref:h,class:[`c-form`,u.value&&`c-form--${l.value.density}`],style:p.value,model:G(S),rules:G(ee),"validate-on-rule-change":!1,"label-placement":l.value.labelPlacement,"label-width":l.value.labelWidth,size:l.value.size,disabled:l.value.disabled,readonly:l.value.readonly},e.$attrs,{onSubmit:he(G(Z),[`prevent`])}),{default:q(()=>[E(` 布局组件渲染 `),(z(),T(U(ze.value),F({ref_key:`layoutRef`,ref:Le,key:l.value.layout,"form-items":G(Fe),"layout-config":Ve.value,options:G(C),"form-data":G(S)},Ue.value,{onTabChange:t[0]||=(e,t)=>$(`onTabChange`,e,t),onStepChange:Ye,onFieldAdd:t[1]||=e=>$(`onFieldAdd`,e),onFieldRemove:t[2]||=e=>$(`onFieldRemove`,e),onFieldToggle:t[3]||=(e,t)=>$(`onFieldToggle`,e,t),onFieldsClear:t[4]||=e=>$(`onFieldsClear`),onRenderModeChange:t[5]||=e=>$(`onRenderModeChange`,e),onGroupToggle:t[6]||=(e,t)=>$(`onGroupToggle`,e,t),onGroupReset:t[7]||=e=>$(`onGroupReset`,e),onValidateSuccess:Ge,onValidateError:Ke,onFieldsChange:We}),k({"step-actions":q(t=>[H(e.$slots,`step-actions`,F(t,{submit:G(Z),submitting:G(X)}),()=>[t.isLastStep&&l.value.showActions?(z(),T(G(_e),{key:0,type:`primary`,size:l.value.size,loading:G(X)||!x.value,disabled:!x.value||G(X)||l.value.disabled||l.value.readonly,onClick:G(Z)},{default:q(()=>[A(fe(l.value.submitText||G(m)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])):E(`v-if`,!0)],!0)]),_:2},[V(Ne(),t=>({name:t,fn:q(n=>[H(e.$slots,t,ae(ne(n)),void 0,!0)])}))]),1040,[`form-items`,`layout-config`,`options`,`form-data`])),E(` 表单操作按钮区域(只在特定布局中显示) `),He.value?(z(),T(G(Se),{key:0,class:`c-form-actions`,"show-feedback":!1},{default:q(()=>[H(e.$slots,`action`,ae(ne(je.value)),()=>[j(G(Oe),{justify:`end`,size:u.value?d.value.gap:void 0,style:{width:`100%`}},{default:q(()=>[j(G(_e),{size:l.value.size,disabled:!x.value||G(X)||l.value.disabled||l.value.readonly,onClick:G(pe)},{default:q(()=>[A(fe(l.value.resetText||G(m)(`common.reset`)),1)]),_:1},8,[`size`,`disabled`,`onClick`]),H(e.$slots,`action-extra`,ae(ne(je.value)),void 0,!0),j(G(_e),{type:`primary`,size:l.value.size,loading:G(X)||!x.value,disabled:!x.value||G(X)||l.value.disabled||l.value.readonly,onClick:G(de)},{default:q(()=>[A(fe(l.value.submitText||G(m)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])]),_:3},8,[`size`])],!0)]),_:3})):E(`v-if`,!0)]),_:3},16,[`class`,`style`,`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`,`onSubmit`]))}}),[[`__scopeId`,`data-v-91d7b669`]]);function ut(e){return e}function dt(e){return e}function ft(e){let t=W(d(e.initialValues)),n=W(null);return{model:t,formRef:n,bindings:w(()=>({modelValue:t.value,options:pe(e.options),config:pe(e.config),"onUpdate:modelValue":e=>{t.value=d(e)}})),validate:async()=>{if(!n.value)throw Error(`C_Form is not mounted`);await n.value.validate()},submit:()=>n.value?.submit()??Promise.resolve(!1),reset:()=>{n.value?(n.value.resetFields(),t.value=d(n.value.getModel())):t.value=d(e.initialValues)},getValues:()=>d(n.value?.getModel()??t.value),setValues:async(e,r=!1)=>{n.value?(await n.value.setFieldsValue(e,r),t.value=d(n.value.getModel())):t.value={...t.value,...d(e)}}}}export{He as a,qe as c,Ae as d,lt as i,Ze as l,ut as n,Ue as o,ft as r,Ke as s,dt as t,Pe as u};
package/dist/index.d.cts CHANGED
@@ -11,7 +11,7 @@ import { i as TagItem, n as RouteItem, r as RouteMeta, t as BreadcrumbItem } fro
11
11
  import { a as MenuProps, c as createMenuOptions, i as MenuKey, l as flattenRoutes, n as MenuEmits, o as MenuValue, r as MenuExpose, s as MenuAdapterConfig, t as _default$34 } from "./index5.vue.cjs";
12
12
  import { n as BreadcrumbMenuItem, t as _default$6 } from "./index6.vue.cjs";
13
13
  import { A as FormTabActionsSlotProps, B as TabsLayoutConfig, C as FormMode, D as FormSlots, E as FormRecord, F as LayoutType, G as SPEC_RULES, H as NAIVE_COMBOS, I as MaybePromise, L as OptionItem, M as InlineLayoutConfig, N as LabelPlacement, O as FormStepActionsSlotProps, P as LayoutConfig, R as StepsLayoutConfig, S as FormInstance, T as FormOption, U as PRESET_RULES, V as FormValidationRule, W as RuleSpec, _ as DynamicFormState, a as ResolvedFormConfig, b as FormActionSlotProps, c as shouldShowActions, d as CardLayoutConfig, f as ComponentType, g as DynamicFormController, h as DynamicFormConfig, i as LayoutCallbacks, j as GridLayoutConfig, k as FormSubmitContext, l as useFormGlobalConfig, m as DynamicFieldConfig, n as FormConfig, o as mergeFormConfig, p as CustomLayoutConfig, r as LAYOUTS_WITH_OWN_CONTROLS, s as resolveFormConfig, t as FORM_DEFAULTS, u as AsyncOptionsContext, v as FieldPath, w as FormModel, x as FormErrorContext, y as FieldPathValue, z as SubmitEventPayload } from "./useFormConfig.cjs";
14
- import { a as DictionarySource, c as getDictionaryLabel, i as DictionaryProvider, l as parseDictionaryValue, n as DictionaryOption, o as DictionaryValue, r as DictionaryParseResult, s as createDictionaryLabelResolver, t as DictionaryBinding } from "./dictionary.cjs";
14
+ import { a as DictionarySource, c as createDictionaryLabelResolver, i as DictionaryProvider, l as getDictionaryLabel, n as DictionaryOption, o as DictionaryState, r as DictionaryParseResult, s as DictionaryValue, t as DictionaryBinding, u as parseDictionaryValue } from "./dictionary.cjs";
15
15
  import { n as ResolvedComponentDensity, r as resolveComponentDensity, t as ComponentDensity } from "./density.cjs";
16
16
  import { COMPONENT_FEEDBACK_KEY, COMPONENT_LOCALE_KEY, DICTIONARY_PROVIDER_KEY, FORM_GLOBAL_CONFIG_KEY } from "./config.cjs";
17
17
  import { $ as HighlightAPI, A as TreeNativeProps, B as useTableQuery, C as IconConfig, D as TreeExpose, E as TreeEmits, F as TreeSlots, G as useTableExpand, H as useCellEdit, I as TreeUpdateMeta, J as useTableColumns, K as useTableManager, L as TableQueryContext, M as TreeOption, N as TreeProps, O as TreeKey, P as TreeRenderContext, Q as _default$45, R as TableQueryResult, S as DropInfo, St as useComponentLocale, T as StatusType, U as usePagination, V as useModalEdit, W as useTableActions, X as defineTableConfig, Y as defineTableColumns, Z as validateTableRowKeys, _ as useTreeOperations, _t as createFormRendererRegistry, a as UseFormDirtyReturn, at as UseCFormReturn, b as ActionConfig, bt as useFormRenderer, c as getItem, ct as useCForm, d as setItem, dt as FORM_RENDERER_REGISTRY_KEY, et as HighlightPluginOptions, f as _default$22, ft as FormRenderer, g as FormModalProps, gt as UseFormRendererOptions, h as FormModalMode, ht as RendererProps, i as useDynamicFormState, it as UseCFormOptions, j as TreeNodeData, k as TreeMode, l as removeAllItem, lt as _default$21, m as FormModalEmits, mt as FormRendererRegistry, n as DynamicFormStateType, nt as setupHighlight, o as useFormDirty, ot as defineFormConfig, p as FormModalEditor, pt as FormRendererContext, q as useRowEdit, r as FIELD_TYPE_OPTIONS, rt as useHighlight, s as useFormState, st as defineFormOptions, t as DYNAMIC_FORM_STATE_KEY, tt as createHighlight, u as removeItem, ut as ComponentMap, v as presetConfigs$1, vt as registerRenderer, w as StatusConfig, x as ButtonType, xt as useComponentFeedback, y as _default$51, yt as unregisterRenderer, z as UseTableQueryOptions } from "./useDynamicFormState.cjs";
@@ -88,4 +88,4 @@ declare const _default$56: {
88
88
  install: (app: App, options?: ComponentLibOptions) => void;
89
89
  };
90
90
  //#endregion
91
- export { ACTION_BAR_DEFAULT_CONFIG, ACTION_KEYS, ACTION_PRESETS, AMapApi, AMapMapInstance, AMapMarkerEvent, AMapPosition, AMapSecurityConfig, STATUS_COLOR_MAP as AVATAR_STATUS_COLOR_MAP, ActionBarConfig, ActionButtonSize, ActionButtonType, ActionConfig, ActionDropdownItem, ActionGroupAlign, ActionItem, ActionState, AlignItems, AnalyticsEvent, AnalyticsEventType, AnalyticsReporter, AntiCheatConfig, ApiFunction, ApprovalMode, ApprovalNodeData, AspectRatioPreset, AsyncOptionsContext, AudioPlayerProps, AudioTrack, AvatarGroupProps, AvatarItem, BPMNDiagramData, BPMNFlow, BPMNNode, BUTTON_TEXT, BaseNodeData, BatchActionsConfig, BatchFieldChange, BatchOperationResult, BatchResultEmits, BatchResultProps, Bookmark, BreadcrumbItem, BreadcrumbMenuItem, BuiltInTableColumn, ButtonType, CATEGORY_MAP, CATEGORY_TABS, COMPONENT_FEEDBACK_KEY, COMPONENT_LOCALE_KEY, CRON_FIELD_META, CRON_TEMPLATES, CTabsEmits, CTabsProps, _default as C_ActionBar, _default$1 as C_AntV, _default$2 as C_AudioPlayer, _default$3 as C_AvatarGroup, _default$4 as C_Barcode, _default$5 as C_BatchResult, _default$6 as C_Breadcrumb, _default$7 as C_Captcha, _default$8 as C_Cascade, _default$9 as C_Chat, _default$10 as C_City, _default$11 as C_Code, _default$12 as C_CollapsePanel, _default$13 as C_ContextMenu, _default$14 as C_Cron, _default$15 as C_DataPicker, C_Date, _default$16 as C_Density, _default$17 as C_Draggable, _default$18 as C_Editor, _default$19 as C_ErrorSummary, _default$20 as C_FilePreview, _default$21 as C_Form, _default$22 as C_FormModal, C_FormSearch, _default$23 as C_FormulaEditor, _default$24 as C_FullCalendar, _default$25 as C_GlobalSearch, _default$26 as C_Guide, _default$27 as C_Icon, _default$28 as C_ImageCropper, _default$29 as C_Language, _default$30 as C_Loading, _default$31 as C_Login, _default$32 as C_Map, _default$33 as C_Markdown, _default$34 as C_Menu, _default$35 as C_NotificationCenter, _default$36 as C_OrgChart, _default$37 as C_PageLoading, _default$38 as C_Progress, _default$39 as C_QRCode, _default$40 as C_SectionNav, _default$41 as C_Signature, _default$42 as C_Skeleton, _default$43 as C_SplitPane, _default$44 as C_Steps, _default$45 as C_Table, _default$46 as C_Tabs, _default$47 as C_TagsView, _default$48 as C_Theme, C_Time, _default$49 as C_Timeline, _default$50 as C_Transfer, _default$51 as C_Tree, _default$52 as C_Upload, _default$53 as C_VideoPlayer, C_VtableGantt, _default$54 as C_WaterFall, _default$55 as C_WorkFlow, CalendarEditForm, CalendarEmits, CalendarEvent, CalendarExpose, CalendarProps, CalendarViewType, CaptchaEmits, CaptchaFormData, CaptchaInstance, CaptchaProof, CaptchaProps, CaptchaProvider, CaptchaSuccessPayload, CaptchaVerificationError, CaptchaVerificationRequest, CaptchaVerificationResult, CaptchaVerifier, CardLayoutConfig, CascadeItem, CascadeValue, Chapter, ChatContact, ChatMessage, ChatProps, ChildSelectionState, ChunkProgress, ClearNotificationsFn, ClipboardConfig, CollapsePanelEmits, CollapsePanelExpose, CollapsePanelItem, CollapsePanelProps, CollapsePanelVariant, CollapseTarget, ColumnDragConfig, ColumnFormatter, ColumnStatus, ColumnWithKey, type ComponentDensity, type ComponentFeedback, ComponentLibOptions, type ComponentLocale, type ComponentLocaleName, ComponentMap, ComponentType, Condition, ConditionNodeData, type ConfirmOptions, ConnectionConfig, ContextMenuItem, ContextMenuLabels, ContextMenuProps, CopyNodeData, CronConfig, CronEmits, CronExpose, CronFieldMeta, CronFieldMode, CronFieldType, CronFieldValue, CronProps, CronTemplate, CronValidation, CronValue, CropOutputFormat, CropResult, CrossPageSelectionConfig, CrudBinding, CustomAction, CustomLayoutConfig, CustomUploadRequest, DEFAULT_ACTION_ICON, DEFAULT_ANIMATION_DURATION, DEFAULT_AUDIO_PLAYER_PROPS, DEFAULT_AVATAR_GROUP_PROPS, DEFAULT_BREAKPOINTS, DEFAULT_CHAT_PROPS, DEFAULT_CONTEXT_MENU_PROPS, DEFAULT_CRON_EXPRESSION, DEFAULT_CRON_VALUE, DEFAULT_EDIT_FORM, DEFAULT_FEATURES, DEFAULT_FIELD_VALUE, DEFAULT_FUNCTIONS, DEFAULT_GAP, DEFAULT_HEARTBEAT_INTERVAL, DEFAULT_MAP_CONFIG, DEFAULT_MAX_BADGE_COUNT, DEFAULT_PAGE_SIZE, DEFAULT_PLAYBACK_RATE, DEFAULT_PLAYBACK_RATES, DEFAULT_POLLING_INTERVAL, DEFAULT_SKELETON_COUNT, DEFAULT_SOCIAL_PROVIDERS, DEFAULT_STORAGE_KEY, DEFAULT_TIMELINE_PROPS, DEFAULT_TRANSFER_PROPS, DEFAULT_VOLUME, DEFAULT_WS_HEARTBEAT_INTERVAL, DEFAULT_WS_HEARTBEAT_MESSAGE, DEFAULT_WS_MAX_RECONNECT, DEFAULT_WS_RECONNECT_INTERVAL, DICTIONARY_PROVIDER_KEY, DYNAMIC_FORM_STATE_KEY, DataPickerEmits, DataPickerProps, DataPickerSource, DataPickerValue, DataRecord, DataResourceOptions, DataResourceStatus, DateEmits, DateExpose, DateModelValue, DatePickerMode, DateProps, DateRangeInput, DateRangeValue, DateValue, DeleteNotificationFn, Department, DiagramConfig, DiagramData, DiagramExpose, DiagramType, DictionaryBinding, DictionaryOption, DictionaryParseResult, DictionaryProvider, DictionarySource, DictionaryValue, DisplayConfig, DocHeading, DragEvent, DraggableEmits, DraggableExpose, DraggableItem, DraggableProps, DraggableSlots, DropInfo, DynamicFieldConfig, DynamicFormConfig, DynamicFormController, DynamicFormState, DynamicFormStateType, DynamicRowsOptions, DynamicRowsReturn, ERDiagramData, ERField, ERRelation, ERTable, EVENT_COLORS, EditConfig, EditMode, EraserConfig, ErrorConfig, ErrorCorrectionLevel, ErrorSummaryProps, ExcelCell, ExcelColumn, ExcelLoadResult, ExcelRow, ExcelSheet, ExpandConfig, ExpandIconPosition, ExportConfig, ExportFormat, ExportOptions, ExportType, FIELD_TYPE_OPTIONS, FORM_DEFAULTS, FORM_GLOBAL_CONFIG_KEY, FORM_RENDERER_REGISTRY_KEY, FetchNotificationsFn, FetchNotificationsResult, FieldPath, FieldPathValue, FileConfig, FilePreviewLimits, FilePreviewProps, FilePreviewType, FormActionSlotProps, FormArrayEntry, FormConfig, FormErrorContext, FormInstance, FormModalEditor, FormModalEmits, FormModalMode, FormModalProps, FormMode, FormModel, FormOption, FormRecord, FormRenderer, FormRendererContext, FormRendererRegistry, FormSearchEmits, FormSearchExpose, FormSearchProps, FormSlots, FormStepActionsSlotProps, FormSubmitContext, FormTabActionsSlotProps, FormValidationRule, FormatterConfig, FormatterType, FormulaEditorConfig, FormulaEditorEmits, FormulaEditorExpose, FormulaEditorProps, FormulaFunction, FormulaKeyType, FormulaKeyboardKey, FormulaTemplate, FormulaToken, FormulaTokenType, FormulaValidation, FormulaVariable, FormulaVariableType, GanttClickEvent, GanttEmits, GanttExpose, GanttOptions, GanttPreset, GanttProps, GanttTask, GanttTaskBarContext, GanttTaskBarLayout, GanttTaskCellContext, GanttTaskCellLayout, GanttTaskChanges, GanttTaskNodeRecord, GanttTaskRecord, GanttTimelineContext, GanttTimelineLayout, GlobalSearchOptions, GraphConfig, GraphEvents, GraphExportOptions, GridConfig, GridLayoutConfig, GroupOptions, GuideExpose, GuideIllustration, GuidePersistence, GuideProps, GuideStep, GuideTarget, GuideTheme, HEADER_TOOLBAR, type HighlightAPI, type HighlightPluginOptions, HistoryConfig, HistoryItem, IDefinition, INFINITE_SCROLL_THRESHOLD, IPlayerOptions, IconConfig, IconProps, ImageCropperEmits, ImageCropperExpose, ImageCropperProps, InfiniteScrollStatus, InlineLayoutConfig, InstantCheckFn, JustifyContent, KEYBOARD_SHORTCUTS, KeyboardConfig, LAYOUTS_WITH_OWN_CONTROLS, LabelPlacement, LanguageOption, LayoutCallbacks, LayoutConfig, LayoutMode, LayoutOptions, LayoutType, LoadingProps, LoginFeatures, LoginProps, LogoOptions, MAP_TYPES, MOCK_MESSAGES, MODE_ICON_MAP, MONTH_LABELS, MapConfig, MapCoordinate, MapExpose, MapFitOptions, MapInstance, MapMarker, MapMarkerEvent, MapProps, MapTileConfig, MapType, MarkAllReadFn, MarkAsReadFn, MaybePromise, MaybeRefLike, MenuAdapterConfig, MenuEmits, MenuExpose, MenuItem, MenuKey, MenuPosition, MenuProps, MenuValue, MergeChunksFn, MessageSender, MessageStatus, MessageType, MinimapConfig, MouseWheelConfig, NAIVE_COMBOS, NUMBER_KEYS, NodeConfigFormData, NodeData, NodeStatus, NodeTemplate, NodeType, NormalTableColumn, NotificationCategory, NotificationCategoryOption, NotificationCenterController, NotificationCenterEmits, NotificationCenterExpose, NotificationCenterProps, NotificationCenterSlots, NotificationDataMode, NotificationItemSlotContext, NotificationMessage, NotificationPriority, NotificationSender, NotificationStatus, NotificationUnreadByCategory, NotificationWSConfig, NumberCodecOptions, OPERATORS, OPERATOR_KEYS, OSM_TILE_CONFIG, OptionItem, OrgChartDirection, OrgChartLineStyle, OrgChartNode, OrgChartProps, PRESET_RULES, PRIORITY_MAP, PROGRESS_THROTTLE_INTERVAL, PageLoadingOptions, PageLoadingProps, PaginationConfig, PanelInfo, ParentChildLinkMode, PasswordFormData, PatchScalar, PdfLoadResult, PenConfig, PenMode, PlaybackRate, PlayerInstance, PlayerState, Position, PrintWatermarkOptions, ProgressData, ProgressReporter, QRCodeExpose, QRCodeProps, QUALITY_LABEL_MAP, QualityDefinition, QualityLevel, QuizOption, QuizType, RegisterFormData, RenderFunction, RenderMode, RendererProps, type ResolvedComponentDensity, ResolvedFormConfig, Role, RouteItem, RouteMeta, RowAction, RowDragConfig, RuleSpec, SEEK_STEP, SKELETON_HEIGHT_RANGE, SOURCE_TYPE_MAP, SPACED_OPERATORS, SPEC_RULES, STORAGE_KEYS, STORAGE_PREFIX, ScrollerConfig, SearchConfig, SearchDateRangeValue, SearchFieldContext, SearchFieldType, SearchFormItem, SearchFormParams, SearchMenuItem, SearchNumberRangeValue, SearchOptionItem, SearchQueryEncoding, SectionNavItem, SectionNavProps, SelectOption, SelectionConfig, SerializeSearchOptions, SignatureEmits, SignatureExportFormat, SignatureExpose, SignaturePoint, SignatureProps, SignatureSnapshot, SignatureStroke, SimpleTableActions, SkeletonAnimation, SkeletonCardConfig, SkeletonDetailConfig, SkeletonFormConfig, SkeletonListConfig, SkeletonPreset, SkeletonProps, SkeletonTableConfig, SnapshotConfig, SocialProvider, SplitDirection, SplitPaneEmits, SplitPaneExpose, SplitPaneProps, StartNodeData, StatusConfig, StatusType, StepItem, StepsLayoutConfig, StrictTableColumn, SubmitEventPayload, SubtitleTrack, SummaryConfig, TABLE_GLOBAL_CONFIG_KEY, STATUS_COLOR_MAP$1 as TIMELINE_STATUS_COLOR_MAP, TableActionsEmits, TableActionsProps, TableColumn, TableConfig, TableEmits, TableGlobalConfig, TableInstance, TableManagerApi, TableProps, TableQueryContext, TableQueryResult, TableRowKey, TableRowKeyIssue, SelectionConfig$1 as TableSelectionConfig, TabsBadgeType, TabsDisplayDirective, TabsItem, TabsJustifyContent, TabsLayoutConfig, TabsPlacement, TabsSize, TabsType, TabsValue, TagItem, ThemeConfig, ThemeMode, ThumbnailConfig, TimeEmits, TimeExpose, TimeMode, TimeModelValue, TimeProps, TimeRangeValue, TimelineItem, TimelineProps, ToolbarAction, ToolbarConfig, TransferEmits, TransferItem, TransferProps, TreeConfig, TreeEmits, TreeExpose, TreeKey, TreeMode, TreeNativeProps, TreeNodeData, TreeOption, TreeProps, TreeRenderContext, TreeSlots, TreeUpdateMeta, UMLAttribute, UMLClass, UMLDiagramData, UMLMethod, UMLRelation, UploadChunk, UploadEmits, UploadExpose, UploadFileItem, UploadFileStatus, UploadProps, UploadRequestOptions, UploadedChunksQueryFn, UseCFormOptions, UseCFormReturn, UseCrossPageSelectionOptions, UseCrossPageSelectionReturn, UseFormDirtyReturn, UseFormRendererOptions, UseRowDragOptions, UseRowDragReturn, UseTableExpandOptions, UseTableExpandReturn, UseTableQueryOptions, UseTagsViewOptions, User, VOLUME_STEP, ValidationError, ValidationErrorType, ValidationIssue, ValidationParticipant, ValidationResult, ValidationTarget, ValueCodec, VideoPlayerEmits, VideoPlayerExpose, VideoPlayerProps, VideoQuiz, VideoSourceAdapter, VideoSourceType, VirtualScrollConfig, WATERMARK_DEFAULT_STYLE, WEEK_LABELS, WSConnectionStatus, WSNotificationPayload, WaterFallBreakpoint, WaterFallColumn, WaterFallEmits, WaterFallExpose, WaterFallItem, WaterFallLayoutItem, WaterFallProps, WatermarkConfig, WordLoadResult, WorkflowApiResponse, WorkflowConfig, WorkflowData, WorkflowEdge, WorkflowEmits, WorkflowExpose, WorkflowHistory, WorkflowNode, WorkflowNodeDataMap, WorkflowProps, WorkflowStats, WorkflowUtils, XGPLAYER_EVENTS, ZoomConfig, appendGanttGroup, applyFormatter, collectValidationIssues, createBatchPatch, createCaptchaProof, createDictionaryLabelResolver, createEditModeChecker, createFormRendererRegistry, createHighlight, createMenuOptions, createNumberCodec, createPageLoading, _default$56 as default, defineActions, defineFormConfig, defineFormOptions, defineTableColumns, defineTableConfig, defineTabs, exportTableData, flattenRoutes, formatFileSize, formatTime, presetConfigs as ganttPresetConfigs, getDictionaryLabel, getFileIcon, getInitials, getItem, getRetryableKeys, getValidMapMarkers, isValidMapCoordinate, mergeFormConfig, mergeGlobalConfig, nameToColor, normalizeMapZoom, parseDictionaryValue, printPresets, registerRenderer, removeAllItem, removeItem, resolveActionPreset, resolveComponentDensity, resolveConfig, resolveFormConfig, resolveTileConfig, serializeSearch, setItem, setupHighlight, shouldShowActions, toAMapPosition, presetConfigs$1 as treePresetConfigs, unregisterRenderer, useBookmarks, useCForm, useCalendarEvents, useCellEdit, useChapters, useChunkUpload, useCollapsePanel, useComponentFeedback, useComponentLocale, useCronDescription, useCronParser, useCronPreview, useCropperCore, useCrossPageSelection, useDataResource, useDragDrop, useDraggableLayout, useDynamicFormState, useDynamicRows, useEdgeInteraction, useFileHash, useFilePreview, useFormArray, useFormDirty, useFormGlobalConfig, useFormRenderer, useFormState, useFormulaEvaluator, useFormulaParser, useFullscreen, useGlobalSearch, useGraphBase, useGraphExport, useHighlight, useInfiniteScroll, useModalEdit, useNotificationCore, useNotificationFormat, useNotificationWS, usePagination, usePlaybackControl, usePlayerCore, usePrintWatermark, useProgressTracker, useQRCode, useResponsiveColumns, useRowDrag, useRowEdit, useSearchHistory, useSearchState, useSignatureCanvas, useSignatureExport, useSignatureHistory, useSplitResize, useSubtitle, useTableActions, useTableColumns, useTableExpand, useTableGlobalConfig, useTableManager, useTableQuery, useTagsView, useTimeSelection, useTreeOperations, useUploadCore, useUploadQueue, useValidationScope, useWaterFallLayout, useWorkflowNodes, useWorkflowPreview, useWorkflowValidation, validateTableRowKeys, verifyCaptchaProof };
91
+ export { ACTION_BAR_DEFAULT_CONFIG, ACTION_KEYS, ACTION_PRESETS, AMapApi, AMapMapInstance, AMapMarkerEvent, AMapPosition, AMapSecurityConfig, STATUS_COLOR_MAP as AVATAR_STATUS_COLOR_MAP, ActionBarConfig, ActionButtonSize, ActionButtonType, ActionConfig, ActionDropdownItem, ActionGroupAlign, ActionItem, ActionState, AlignItems, AnalyticsEvent, AnalyticsEventType, AnalyticsReporter, AntiCheatConfig, ApiFunction, ApprovalMode, ApprovalNodeData, AspectRatioPreset, AsyncOptionsContext, AudioPlayerProps, AudioTrack, AvatarGroupProps, AvatarItem, BPMNDiagramData, BPMNFlow, BPMNNode, BUTTON_TEXT, BaseNodeData, BatchActionsConfig, BatchFieldChange, BatchOperationResult, BatchResultEmits, BatchResultProps, Bookmark, BreadcrumbItem, BreadcrumbMenuItem, BuiltInTableColumn, ButtonType, CATEGORY_MAP, CATEGORY_TABS, COMPONENT_FEEDBACK_KEY, COMPONENT_LOCALE_KEY, CRON_FIELD_META, CRON_TEMPLATES, CTabsEmits, CTabsProps, _default as C_ActionBar, _default$1 as C_AntV, _default$2 as C_AudioPlayer, _default$3 as C_AvatarGroup, _default$4 as C_Barcode, _default$5 as C_BatchResult, _default$6 as C_Breadcrumb, _default$7 as C_Captcha, _default$8 as C_Cascade, _default$9 as C_Chat, _default$10 as C_City, _default$11 as C_Code, _default$12 as C_CollapsePanel, _default$13 as C_ContextMenu, _default$14 as C_Cron, _default$15 as C_DataPicker, C_Date, _default$16 as C_Density, _default$17 as C_Draggable, _default$18 as C_Editor, _default$19 as C_ErrorSummary, _default$20 as C_FilePreview, _default$21 as C_Form, _default$22 as C_FormModal, C_FormSearch, _default$23 as C_FormulaEditor, _default$24 as C_FullCalendar, _default$25 as C_GlobalSearch, _default$26 as C_Guide, _default$27 as C_Icon, _default$28 as C_ImageCropper, _default$29 as C_Language, _default$30 as C_Loading, _default$31 as C_Login, _default$32 as C_Map, _default$33 as C_Markdown, _default$34 as C_Menu, _default$35 as C_NotificationCenter, _default$36 as C_OrgChart, _default$37 as C_PageLoading, _default$38 as C_Progress, _default$39 as C_QRCode, _default$40 as C_SectionNav, _default$41 as C_Signature, _default$42 as C_Skeleton, _default$43 as C_SplitPane, _default$44 as C_Steps, _default$45 as C_Table, _default$46 as C_Tabs, _default$47 as C_TagsView, _default$48 as C_Theme, C_Time, _default$49 as C_Timeline, _default$50 as C_Transfer, _default$51 as C_Tree, _default$52 as C_Upload, _default$53 as C_VideoPlayer, C_VtableGantt, _default$54 as C_WaterFall, _default$55 as C_WorkFlow, CalendarEditForm, CalendarEmits, CalendarEvent, CalendarExpose, CalendarProps, CalendarViewType, CaptchaEmits, CaptchaFormData, CaptchaInstance, CaptchaProof, CaptchaProps, CaptchaProvider, CaptchaSuccessPayload, CaptchaVerificationError, CaptchaVerificationRequest, CaptchaVerificationResult, CaptchaVerifier, CardLayoutConfig, CascadeItem, CascadeValue, Chapter, ChatContact, ChatMessage, ChatProps, ChildSelectionState, ChunkProgress, ClearNotificationsFn, ClipboardConfig, CollapsePanelEmits, CollapsePanelExpose, CollapsePanelItem, CollapsePanelProps, CollapsePanelVariant, CollapseTarget, ColumnDragConfig, ColumnFormatter, ColumnStatus, ColumnWithKey, type ComponentDensity, type ComponentFeedback, ComponentLibOptions, type ComponentLocale, type ComponentLocaleName, ComponentMap, ComponentType, Condition, ConditionNodeData, type ConfirmOptions, ConnectionConfig, ContextMenuItem, ContextMenuLabels, ContextMenuProps, CopyNodeData, CronConfig, CronEmits, CronExpose, CronFieldMeta, CronFieldMode, CronFieldType, CronFieldValue, CronProps, CronTemplate, CronValidation, CronValue, CropOutputFormat, CropResult, CrossPageSelectionConfig, CrudBinding, CustomAction, CustomLayoutConfig, CustomUploadRequest, DEFAULT_ACTION_ICON, DEFAULT_ANIMATION_DURATION, DEFAULT_AUDIO_PLAYER_PROPS, DEFAULT_AVATAR_GROUP_PROPS, DEFAULT_BREAKPOINTS, DEFAULT_CHAT_PROPS, DEFAULT_CONTEXT_MENU_PROPS, DEFAULT_CRON_EXPRESSION, DEFAULT_CRON_VALUE, DEFAULT_EDIT_FORM, DEFAULT_FEATURES, DEFAULT_FIELD_VALUE, DEFAULT_FUNCTIONS, DEFAULT_GAP, DEFAULT_HEARTBEAT_INTERVAL, DEFAULT_MAP_CONFIG, DEFAULT_MAX_BADGE_COUNT, DEFAULT_PAGE_SIZE, DEFAULT_PLAYBACK_RATE, DEFAULT_PLAYBACK_RATES, DEFAULT_POLLING_INTERVAL, DEFAULT_SKELETON_COUNT, DEFAULT_SOCIAL_PROVIDERS, DEFAULT_STORAGE_KEY, DEFAULT_TIMELINE_PROPS, DEFAULT_TRANSFER_PROPS, DEFAULT_VOLUME, DEFAULT_WS_HEARTBEAT_INTERVAL, DEFAULT_WS_HEARTBEAT_MESSAGE, DEFAULT_WS_MAX_RECONNECT, DEFAULT_WS_RECONNECT_INTERVAL, DICTIONARY_PROVIDER_KEY, DYNAMIC_FORM_STATE_KEY, DataPickerEmits, DataPickerProps, DataPickerSource, DataPickerValue, DataRecord, DataResourceOptions, DataResourceStatus, DateEmits, DateExpose, DateModelValue, DatePickerMode, DateProps, DateRangeInput, DateRangeValue, DateValue, DeleteNotificationFn, Department, DiagramConfig, DiagramData, DiagramExpose, DiagramType, DictionaryBinding, DictionaryOption, DictionaryParseResult, DictionaryProvider, DictionarySource, DictionaryState, DictionaryValue, DisplayConfig, DocHeading, DragEvent, DraggableEmits, DraggableExpose, DraggableItem, DraggableProps, DraggableSlots, DropInfo, DynamicFieldConfig, DynamicFormConfig, DynamicFormController, DynamicFormState, DynamicFormStateType, DynamicRowsOptions, DynamicRowsReturn, ERDiagramData, ERField, ERRelation, ERTable, EVENT_COLORS, EditConfig, EditMode, EraserConfig, ErrorConfig, ErrorCorrectionLevel, ErrorSummaryProps, ExcelCell, ExcelColumn, ExcelLoadResult, ExcelRow, ExcelSheet, ExpandConfig, ExpandIconPosition, ExportConfig, ExportFormat, ExportOptions, ExportType, FIELD_TYPE_OPTIONS, FORM_DEFAULTS, FORM_GLOBAL_CONFIG_KEY, FORM_RENDERER_REGISTRY_KEY, FetchNotificationsFn, FetchNotificationsResult, FieldPath, FieldPathValue, FileConfig, FilePreviewLimits, FilePreviewProps, FilePreviewType, FormActionSlotProps, FormArrayEntry, FormConfig, FormErrorContext, FormInstance, FormModalEditor, FormModalEmits, FormModalMode, FormModalProps, FormMode, FormModel, FormOption, FormRecord, FormRenderer, FormRendererContext, FormRendererRegistry, FormSearchEmits, FormSearchExpose, FormSearchProps, FormSlots, FormStepActionsSlotProps, FormSubmitContext, FormTabActionsSlotProps, FormValidationRule, FormatterConfig, FormatterType, FormulaEditorConfig, FormulaEditorEmits, FormulaEditorExpose, FormulaEditorProps, FormulaFunction, FormulaKeyType, FormulaKeyboardKey, FormulaTemplate, FormulaToken, FormulaTokenType, FormulaValidation, FormulaVariable, FormulaVariableType, GanttClickEvent, GanttEmits, GanttExpose, GanttOptions, GanttPreset, GanttProps, GanttTask, GanttTaskBarContext, GanttTaskBarLayout, GanttTaskCellContext, GanttTaskCellLayout, GanttTaskChanges, GanttTaskNodeRecord, GanttTaskRecord, GanttTimelineContext, GanttTimelineLayout, GlobalSearchOptions, GraphConfig, GraphEvents, GraphExportOptions, GridConfig, GridLayoutConfig, GroupOptions, GuideExpose, GuideIllustration, GuidePersistence, GuideProps, GuideStep, GuideTarget, GuideTheme, HEADER_TOOLBAR, type HighlightAPI, type HighlightPluginOptions, HistoryConfig, HistoryItem, IDefinition, INFINITE_SCROLL_THRESHOLD, IPlayerOptions, IconConfig, IconProps, ImageCropperEmits, ImageCropperExpose, ImageCropperProps, InfiniteScrollStatus, InlineLayoutConfig, InstantCheckFn, JustifyContent, KEYBOARD_SHORTCUTS, KeyboardConfig, LAYOUTS_WITH_OWN_CONTROLS, LabelPlacement, LanguageOption, LayoutCallbacks, LayoutConfig, LayoutMode, LayoutOptions, LayoutType, LoadingProps, LoginFeatures, LoginProps, LogoOptions, MAP_TYPES, MOCK_MESSAGES, MODE_ICON_MAP, MONTH_LABELS, MapConfig, MapCoordinate, MapExpose, MapFitOptions, MapInstance, MapMarker, MapMarkerEvent, MapProps, MapTileConfig, MapType, MarkAllReadFn, MarkAsReadFn, MaybePromise, MaybeRefLike, MenuAdapterConfig, MenuEmits, MenuExpose, MenuItem, MenuKey, MenuPosition, MenuProps, MenuValue, MergeChunksFn, MessageSender, MessageStatus, MessageType, MinimapConfig, MouseWheelConfig, NAIVE_COMBOS, NUMBER_KEYS, NodeConfigFormData, NodeData, NodeStatus, NodeTemplate, NodeType, NormalTableColumn, NotificationCategory, NotificationCategoryOption, NotificationCenterController, NotificationCenterEmits, NotificationCenterExpose, NotificationCenterProps, NotificationCenterSlots, NotificationDataMode, NotificationItemSlotContext, NotificationMessage, NotificationPriority, NotificationSender, NotificationStatus, NotificationUnreadByCategory, NotificationWSConfig, NumberCodecOptions, OPERATORS, OPERATOR_KEYS, OSM_TILE_CONFIG, OptionItem, OrgChartDirection, OrgChartLineStyle, OrgChartNode, OrgChartProps, PRESET_RULES, PRIORITY_MAP, PROGRESS_THROTTLE_INTERVAL, PageLoadingOptions, PageLoadingProps, PaginationConfig, PanelInfo, ParentChildLinkMode, PasswordFormData, PatchScalar, PdfLoadResult, PenConfig, PenMode, PlaybackRate, PlayerInstance, PlayerState, Position, PrintWatermarkOptions, ProgressData, ProgressReporter, QRCodeExpose, QRCodeProps, QUALITY_LABEL_MAP, QualityDefinition, QualityLevel, QuizOption, QuizType, RegisterFormData, RenderFunction, RenderMode, RendererProps, type ResolvedComponentDensity, ResolvedFormConfig, Role, RouteItem, RouteMeta, RowAction, RowDragConfig, RuleSpec, SEEK_STEP, SKELETON_HEIGHT_RANGE, SOURCE_TYPE_MAP, SPACED_OPERATORS, SPEC_RULES, STORAGE_KEYS, STORAGE_PREFIX, ScrollerConfig, SearchConfig, SearchDateRangeValue, SearchFieldContext, SearchFieldType, SearchFormItem, SearchFormParams, SearchMenuItem, SearchNumberRangeValue, SearchOptionItem, SearchQueryEncoding, SectionNavItem, SectionNavProps, SelectOption, SelectionConfig, SerializeSearchOptions, SignatureEmits, SignatureExportFormat, SignatureExpose, SignaturePoint, SignatureProps, SignatureSnapshot, SignatureStroke, SimpleTableActions, SkeletonAnimation, SkeletonCardConfig, SkeletonDetailConfig, SkeletonFormConfig, SkeletonListConfig, SkeletonPreset, SkeletonProps, SkeletonTableConfig, SnapshotConfig, SocialProvider, SplitDirection, SplitPaneEmits, SplitPaneExpose, SplitPaneProps, StartNodeData, StatusConfig, StatusType, StepItem, StepsLayoutConfig, StrictTableColumn, SubmitEventPayload, SubtitleTrack, SummaryConfig, TABLE_GLOBAL_CONFIG_KEY, STATUS_COLOR_MAP$1 as TIMELINE_STATUS_COLOR_MAP, TableActionsEmits, TableActionsProps, TableColumn, TableConfig, TableEmits, TableGlobalConfig, TableInstance, TableManagerApi, TableProps, TableQueryContext, TableQueryResult, TableRowKey, TableRowKeyIssue, SelectionConfig$1 as TableSelectionConfig, TabsBadgeType, TabsDisplayDirective, TabsItem, TabsJustifyContent, TabsLayoutConfig, TabsPlacement, TabsSize, TabsType, TabsValue, TagItem, ThemeConfig, ThemeMode, ThumbnailConfig, TimeEmits, TimeExpose, TimeMode, TimeModelValue, TimeProps, TimeRangeValue, TimelineItem, TimelineProps, ToolbarAction, ToolbarConfig, TransferEmits, TransferItem, TransferProps, TreeConfig, TreeEmits, TreeExpose, TreeKey, TreeMode, TreeNativeProps, TreeNodeData, TreeOption, TreeProps, TreeRenderContext, TreeSlots, TreeUpdateMeta, UMLAttribute, UMLClass, UMLDiagramData, UMLMethod, UMLRelation, UploadChunk, UploadEmits, UploadExpose, UploadFileItem, UploadFileStatus, UploadProps, UploadRequestOptions, UploadedChunksQueryFn, UseCFormOptions, UseCFormReturn, UseCrossPageSelectionOptions, UseCrossPageSelectionReturn, UseFormDirtyReturn, UseFormRendererOptions, UseRowDragOptions, UseRowDragReturn, UseTableExpandOptions, UseTableExpandReturn, UseTableQueryOptions, UseTagsViewOptions, User, VOLUME_STEP, ValidationError, ValidationErrorType, ValidationIssue, ValidationParticipant, ValidationResult, ValidationTarget, ValueCodec, VideoPlayerEmits, VideoPlayerExpose, VideoPlayerProps, VideoQuiz, VideoSourceAdapter, VideoSourceType, VirtualScrollConfig, WATERMARK_DEFAULT_STYLE, WEEK_LABELS, WSConnectionStatus, WSNotificationPayload, WaterFallBreakpoint, WaterFallColumn, WaterFallEmits, WaterFallExpose, WaterFallItem, WaterFallLayoutItem, WaterFallProps, WatermarkConfig, WordLoadResult, WorkflowApiResponse, WorkflowConfig, WorkflowData, WorkflowEdge, WorkflowEmits, WorkflowExpose, WorkflowHistory, WorkflowNode, WorkflowNodeDataMap, WorkflowProps, WorkflowStats, WorkflowUtils, XGPLAYER_EVENTS, ZoomConfig, appendGanttGroup, applyFormatter, collectValidationIssues, createBatchPatch, createCaptchaProof, createDictionaryLabelResolver, createEditModeChecker, createFormRendererRegistry, createHighlight, createMenuOptions, createNumberCodec, createPageLoading, _default$56 as default, defineActions, defineFormConfig, defineFormOptions, defineTableColumns, defineTableConfig, defineTabs, exportTableData, flattenRoutes, formatFileSize, formatTime, presetConfigs as ganttPresetConfigs, getDictionaryLabel, getFileIcon, getInitials, getItem, getRetryableKeys, getValidMapMarkers, isValidMapCoordinate, mergeFormConfig, mergeGlobalConfig, nameToColor, normalizeMapZoom, parseDictionaryValue, printPresets, registerRenderer, removeAllItem, removeItem, resolveActionPreset, resolveComponentDensity, resolveConfig, resolveFormConfig, resolveTileConfig, serializeSearch, setItem, setupHighlight, shouldShowActions, toAMapPosition, presetConfigs$1 as treePresetConfigs, unregisterRenderer, useBookmarks, useCForm, useCalendarEvents, useCellEdit, useChapters, useChunkUpload, useCollapsePanel, useComponentFeedback, useComponentLocale, useCronDescription, useCronParser, useCronPreview, useCropperCore, useCrossPageSelection, useDataResource, useDragDrop, useDraggableLayout, useDynamicFormState, useDynamicRows, useEdgeInteraction, useFileHash, useFilePreview, useFormArray, useFormDirty, useFormGlobalConfig, useFormRenderer, useFormState, useFormulaEvaluator, useFormulaParser, useFullscreen, useGlobalSearch, useGraphBase, useGraphExport, useHighlight, useInfiniteScroll, useModalEdit, useNotificationCore, useNotificationFormat, useNotificationWS, usePagination, usePlaybackControl, usePlayerCore, usePrintWatermark, useProgressTracker, useQRCode, useResponsiveColumns, useRowDrag, useRowEdit, useSearchHistory, useSearchState, useSignatureCanvas, useSignatureExport, useSignatureHistory, useSplitResize, useSubtitle, useTableActions, useTableColumns, useTableExpand, useTableGlobalConfig, useTableManager, useTableQuery, useTagsView, useTimeSelection, useTreeOperations, useUploadCore, useUploadQueue, useValidationScope, useWaterFallLayout, useWorkflowNodes, useWorkflowPreview, useWorkflowValidation, validateTableRowKeys, verifyCaptchaProof };