@schemx/vue 0.1.21 → 0.1.22

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 (43) hide show
  1. package/README.md +12 -12
  2. package/dist/components/FormGroup/index.d.ts +1 -1
  3. package/dist/components/FormItem/index.d.ts +1 -1
  4. package/dist/components/FormItem/index.d.ts.map +1 -1
  5. package/dist/hocs/index.d.ts +0 -1
  6. package/dist/hocs/index.d.ts.map +1 -1
  7. package/dist/hocs/withRemoteOptions.d.ts +3 -3
  8. package/dist/hocs/withRemoteOptions.d.ts.map +1 -1
  9. package/dist/hooks/index.d.ts +5 -7
  10. package/dist/hooks/index.d.ts.map +1 -1
  11. package/dist/hooks/useContext.d.ts +15 -3
  12. package/dist/hooks/useContext.d.ts.map +1 -1
  13. package/dist/hooks/useDictionary.d.ts +11 -4
  14. package/dist/hooks/useDictionary.d.ts.map +1 -1
  15. package/dist/hooks/useEffect.d.ts +1 -1
  16. package/dist/hooks/useField.d.ts +32 -1
  17. package/dist/hooks/useField.d.ts.map +1 -1
  18. package/dist/hooks/useForm.d.ts +4 -4
  19. package/dist/hooks/useForm.d.ts.map +1 -1
  20. package/dist/hooks/useViewSchemas.d.ts +1 -1
  21. package/dist/hooks/useWatch.d.ts +1 -1
  22. package/dist/index.cjs +6 -1
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.ts +4 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.mjs +2591 -1081
  27. package/dist/index.mjs.map +1 -1
  28. package/dist/types/dictionary.d.ts +150 -0
  29. package/dist/types/dictionary.d.ts.map +1 -0
  30. package/dist/types/field.d.ts +1 -1
  31. package/dist/types/form.d.ts +1 -1
  32. package/dist/types/index.d.ts +1 -0
  33. package/dist/types/index.d.ts.map +1 -1
  34. package/dist/utils/dynamic.d.ts +1 -1
  35. package/dist/utils/helpers.d.ts +1 -1
  36. package/dist/utils/rendererProvider.d.ts +1 -1
  37. package/dist/utils/rulesProvider.d.ts +1 -1
  38. package/dist/utils/validation.d.ts +1 -1
  39. package/package.json +2 -2
  40. package/dist/hooks/useFieldContext.d.ts +0 -23
  41. package/dist/hooks/useFieldContext.d.ts.map +0 -1
  42. package/dist/index.umd.js +0 -2
  43. package/dist/index.umd.js.map +0 -1
@@ -0,0 +1,150 @@
1
+ import { NamePath, SchemxInstance, Values } from '../../../core/src/index.ts';
2
+
3
+ /**
4
+ * 字典选项配置
5
+ *
6
+ * 通过 api 函数获取数据,支持完整泛型推导。
7
+ * api 的返回值类型 R 会自动传递给 formatter 和 onSuccess。
8
+ *
9
+ * @typeParam T - 表单值类型
10
+ * @typeParam R - api 函数的返回值类型
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // 基础用法
15
+ * dict: {
16
+ * api: async () => fetchOptions(),
17
+ * }
18
+ *
19
+ * // 带依赖联动 — values 自动推导为表单类型
20
+ * dict: {
21
+ * api: async (values) => fetchCities(values.province),
22
+ * dependsOn: ['province'],
23
+ * shouldFetch: (values) => !!values.province,
24
+ * resetOnDepsChange: true,
25
+ * immediate: false,
26
+ * }
27
+ *
28
+ * // formatter 的 res 自动推导为 api 返回值类型
29
+ * dict: {
30
+ * api: async (values) => fetchCities(values.province),
31
+ * // ^ 返回 CityResponse[]
32
+ * formatter: (res) => res.map(c => ({ label: c.name, value: c.id })),
33
+ * // ^ res: CityResponse[]
34
+ * }
35
+ * ```
36
+ */
37
+ export interface SchemxDictionary<T extends Values = Values, R = any> {
38
+ /**
39
+ * 数据获取函数
40
+ *
41
+ * 接收当前表单值和表单实例,返回数据(支持异步)。
42
+ * 返回值类型 R 会自动传递给 formatter 的第一个参数。
43
+ *
44
+ * @param values - 当前表单值。
45
+ * @param form - 当前表单实例。
46
+ * @returns 原始字典数据,支持同步或异步返回。
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * dict: {
51
+ * api: async (values, form) => {
52
+ * const res = await myApi.getCities(values.province)
53
+ * return res.data
54
+ * },
55
+ * dependsOn: ['province'],
56
+ * shouldFetch: (values) => !!values.province,
57
+ * }
58
+ * ```
59
+ */
60
+ api: (values: T, form: SchemxInstance<T>) => R | Promise<R>;
61
+ /**
62
+ * 响应数据格式化函数
63
+ *
64
+ * 第一个参数 res 的类型自动从 api 的返回值推导。
65
+ *
66
+ * @param res - api 返回并 await 后的结果。
67
+ * @param form - 当前表单实例。
68
+ * @returns 标准化后的选项数组,支持同步或异步返回。
69
+ */
70
+ formatter?: (res: Awaited<R>, form: SchemxInstance<T>) => any[] | Promise<any[]>;
71
+ /**
72
+ * 依赖的表单字段路径
73
+ *
74
+ * 当这些字段的值变化时,自动重新执行 api 函数。
75
+ * 不配置则仅在 onMounted 时执行一次。
76
+ */
77
+ dependsOn?: NamePath<T>[];
78
+ /**
79
+ * 是否应该执行 api
80
+ *
81
+ * 依赖字段变化时先调用此函数,返回 false 则跳过执行并清空 options。
82
+ * 典型场景:省份为空时不请求城市列表。
83
+ *
84
+ * 不配置时默认始终执行。
85
+ *
86
+ * @param values - 当前表单值。
87
+ * @returns 是否执行 api。
88
+ */
89
+ shouldFetch?: (values: T) => boolean;
90
+ /**
91
+ * 是否在组件挂载时立即执行
92
+ *
93
+ * - true(默认):onMounted 时执行 api
94
+ * - false:挂载时不执行,等待 dependsOn 字段变化或手动 refresh
95
+ */
96
+ immediate?: boolean;
97
+ /**
98
+ * 依赖字段变化时是否清空当前字段的值
99
+ *
100
+ * - true:依赖变化时调用 form.setFieldValue(fieldName, undefined)
101
+ * - false(默认):不清空,仅重新执行 api
102
+ *
103
+ * 需要配合 useDictionary 的 fieldName 参数使用。
104
+ */
105
+ resetOnDepsChange?: boolean;
106
+ /** 失败重试次数,默认 `0`(不重试) */
107
+ retryCount?: number;
108
+ /** 重试间隔(毫秒),默认 `1000` */
109
+ retryInterval?: number;
110
+ /** 请求失败回调 */
111
+ onError?: (error: Error, form: SchemxInstance<T>) => void;
112
+ /**
113
+ * 请求成功回调
114
+ *
115
+ * 在 formatter 之后、写入 list 之后调用。
116
+ */
117
+ onSuccess?: (data: any[], form: SchemxInstance<T>) => void;
118
+ /**
119
+ * 依赖字段变化回调
120
+ *
121
+ * 在 shouldFetch 判断之前调用,无论是否执行 api 都会触发。
122
+ * 可用于依赖变化时的额外清理逻辑(如清空下级字段)。
123
+ */
124
+ onDepsChange?: (values: T, form: SchemxInstance<T>) => void;
125
+ }
126
+ /**
127
+ * 为 Props 类型注入可选的 dict 字段
128
+ *
129
+ * 将任意组件 Props 类型 A 扩展为包含 `dict?: SchemxDictionary<T>` 的新类型。
130
+ * 用于为渲染器组件的 Props 添加字典选项支持。
131
+ *
132
+ * @typeParam A - 原始组件 Props 类型
133
+ * @typeParam T - 表单值类型
134
+ *
135
+ * @example
136
+ * ```ts
137
+ * interface MySelectProps {
138
+ * options?: { label: string; value: string }[]
139
+ * placeholder?: string
140
+ * }
141
+ *
142
+ * // 扩展后的类型包含 dict 字段
143
+ * type MySelectWithDict = SchemxWithDictionary<MySelectProps, MyFormValues>
144
+ * // 等价于 MySelectProps & { dict?: SchemxDictionary<MyFormValues> }
145
+ * ```
146
+ */
147
+ export type SchemxWithDictionary<A, T extends Values = Values> = A & {
148
+ dict?: SchemxDictionary<T>;
149
+ };
150
+ //# sourceMappingURL=dictionary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/types/dictionary.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG;IAClE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAE3D;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAEhF;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IAEzB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAA;IAEpC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,aAAa;IACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAEzD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAE1D;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;CAC5D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG;IACnE,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;CAC3B,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Ref } from 'vue';
2
- import { FieldValue, NamePath, SchemxFieldInstance, Values } from '@schemx/core';
2
+ import { FieldValue, NamePath, SchemxFieldInstance, Values } from '../../../core/src/index.ts';
3
3
 
4
4
  /**
5
5
  * Vue 层字段控制器实例
@@ -1,4 +1,4 @@
1
- import { SchemxProps, Values } from '@schemx/core';
1
+ import { SchemxProps, Values } from '../../../core/src/index.ts';
2
2
  import * as CSS from "csstype";
3
3
  /**
4
4
  * schemx 组件 Props
@@ -1,2 +1,3 @@
1
+ export type { SchemxDictionary, SchemxWithDictionary } from './dictionary';
1
2
  export * from './form';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAE1E,cAAc,QAAQ,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Dynamic, Values } from '@schemx/core';
1
+ import { Dynamic, Values } from '../../../core/src/index.ts';
2
2
 
3
3
  /**
4
4
  * 批量解析的单个属性条目
@@ -1,4 +1,4 @@
1
- import { SchemxViewSchema } from '@schemx/core';
1
+ import { SchemxViewSchema } from '../../../core/src/index.ts';
2
2
 
3
3
  /**
4
4
  * 判断当前项是否为顶层可见普通字段中的第一个或最后一个。
@@ -1,4 +1,4 @@
1
- import { RendererRegistryType, SchemxRendererKey } from '@schemx/core';
1
+ import { RendererRegistryType, SchemxRendererKey } from '../../../core/src/index.ts';
2
2
 
3
3
  /**
4
4
  * 全局渲染器注册实例
@@ -1,4 +1,4 @@
1
- import { ValidatorsRegistryType } from '@schemx/core';
1
+ import { ValidatorsRegistryType } from '../../../core/src/index.ts';
2
2
 
3
3
  /**
4
4
  * 全局校验规则注册实例
@@ -1,4 +1,4 @@
1
- import { ValidationTrigger } from '@schemx/core';
1
+ import { ValidationTrigger } from '../../../core/src/index.ts';
2
2
 
3
3
  /** 触发时机类型(支持单个或数组) */
4
4
  export type TriggerConfig = ValidationTrigger | ValidationTrigger[];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@schemx/vue",
4
- "version": "0.1.21",
4
+ "version": "0.1.22",
5
5
  "description": "基于 JSON Schema 配置的 Vue 3 动态表单引擎(UI 无关核心)",
6
6
  "keywords": [
7
7
  "schemx",
@@ -54,7 +54,7 @@
54
54
  "csstype": "^3.2.3",
55
55
  "dayjs": "^1.11.19",
56
56
  "es-toolkit": "^1.47.0",
57
- "@schemx/core": "0.1.23"
57
+ "@schemx/core": "0.1.24"
58
58
  },
59
59
  "license": "MIT",
60
60
  "devDependencies": {
@@ -1,23 +0,0 @@
1
- import { Values } from '@schemx/core';
2
- import { FieldInstance } from '../types/field';
3
- import { useField } from './useField';
4
-
5
- /**
6
- * 向子组件树注入当前字段上下文。
7
- *
8
- * 应在 FormItem(或任何创建了 useField 的组件)的 setup 中调用。
9
- *
10
- * @param field - useField 返回的字段实例
11
- */
12
- export declare function provideFieldContext<TValues extends Values = Values>(field: FieldInstance<TValues>): void;
13
- /**
14
- * 从最近的 FormItem 获取当前字段上下文。
15
- *
16
- * 必须在 FormItem 的组件子树内调用,否则抛出错误。
17
- *
18
- * @returns useField 返回的字段实例
19
- *
20
- * @throws 当不在 FormItem 子树内时抛出
21
- */
22
- export declare function useFieldContext(): ReturnType<typeof useField>;
23
- //# sourceMappingURL=useFieldContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFieldContext.d.ts","sourceRoot":"","sources":["../../src/hooks/useFieldContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAK1C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACjE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAC5B,IAAI,CAEN;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAQ7D"}
package/dist/index.umd.js DELETED
@@ -1,2 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue"),require("classnames"),require("es-toolkit")):"function"==typeof define&&define.amd?define(["exports","vue","classnames","es-toolkit"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).schemxCore={},e.Vue,e.classnames,e.esToolkit)}(this,function(e,t,i,n){"use strict";var r=Object.defineProperty,s=(e,t,i)=>((e,t,i)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i),o=Symbol.for("preact-signals");function l(){if(d>1)d--;else{var e,t=!1;for(!function(){var e=v;for(v=void 0;void 0!==e;)e.S.v===e.v&&(e.S.i=e.i),e=e.o}();void 0!==c;){var i=c;for(c=void 0,h++;void 0!==i;){var n=i.u;if(i.u=void 0,i.f&=-3,!(8&i.f)&&b(i))try{i.c()}catch(r){t||(e=r,t=!0)}i=n}}if(h=0,d--,t)throw e}}var a=void 0;function u(e){var t=a;a=void 0;try{return e()}finally{a=t}}var c=void 0,d=0,h=0,f=0,p=0,v=void 0,y=0;function g(e){if(void 0!==a){var t=e.n;if(void 0===t||t.t!==a)return t={i:0,S:e,p:a.s,n:void 0,t:a,e:void 0,x:void 0,r:t},void 0!==a.s&&(a.s.n=t),a.s=t,e.n=t,32&a.f&&e.S(t),t;if(-1===t.i)return t.i=0,void 0!==t.n&&(t.n.p=t.p,void 0!==t.p&&(t.p.n=t.n),t.p=a.s,t.n=void 0,a.s.n=t,a.s=t),t}}function m(e,t){this.v=e,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=null==t?void 0:t.watched,this.Z=null==t?void 0:t.unwatched,this.name=null==t?void 0:t.name}function b(e){for(var t=e.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function F(e){for(var t=e.s;void 0!==t;t=t.n){var i=t.S.n;if(void 0!==i&&(t.r=i),t.S.n=t,t.i=-1,void 0===t.n){e.s=t;break}}}function w(e){for(var t=e.s,i=void 0;void 0!==t;){var n=t.p;-1===t.i?(t.S.U(t),void 0!==n&&(n.n=t.n),void 0!==t.n&&(t.n.p=n)):i=t,t.S.n=t.r,void 0!==t.r&&(t.r=void 0),t=n}e.s=i}function S(e,t){m.call(this,void 0),this.x=e,this.s=void 0,this.g=y-1,this.f=4,this.W=null==t?void 0:t.watched,this.Z=null==t?void 0:t.unwatched,this.name=null==t?void 0:t.name}function V(e){var t=e.m;if(e.m=void 0,"function"==typeof t){d++;var i=a;a=void 0;try{t()}catch(n){throw e.f&=-2,e.f|=8,k(e),n}finally{a=i,l()}}}function k(e){for(var t=e.s;void 0!==t;t=t.n)t.S.U(t);e.x=void 0,e.s=void 0,V(e)}function A(e){if(a!==this)throw new Error("Out-of-order effect");w(this),a=e,this.f&=-2,8&this.f&&k(this),l()}function R(e,t){this.x=e,this.m=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=null==t?void 0:t.name}function j(e,t){var i=new R(e,t);try{i.c()}catch(r){throw i.d(),r}var n=i.d.bind(i);return n[Symbol.dispose]=n,n}function O(e,t){return new m(e,t)}m.prototype.brand=o,m.prototype.h=function(){return!0},m.prototype.S=function(e){var t=this,i=this.t;i!==e&&void 0===e.e&&(e.x=i,this.t=e,void 0!==i?i.e=e:u(function(){var e;null==(e=t.W)||e.call(t)}))},m.prototype.U=function(e){var t=this;if(void 0!==this.t){var i=e.e,n=e.x;void 0!==i&&(i.x=n,e.e=void 0),void 0!==n&&(n.e=i,e.x=void 0),e===this.t&&(this.t=n,void 0===n&&u(function(){var e;null==(e=t.Z)||e.call(t)}))}},m.prototype.subscribe=function(e){var t=this;return j(function(){var i=t.value,n=a;a=void 0;try{e(i)}finally{a=n}},{name:"sub"})},m.prototype.valueOf=function(){return this.value},m.prototype.toString=function(){return this.value+""},m.prototype.toJSON=function(){return this.value},m.prototype.peek=function(){var e=this;return u(function(){return e.value})},Object.defineProperty(m.prototype,"value",{get:function(){var e=g(this);return void 0!==e&&(e.i=this.i),this.v},set:function(e){if(e!==this.v){if(h>100)throw new Error("Cycle detected");i=this,0!==d&&0===h&&i.l!==p&&(i.l=p,v={S:i,v:i.v,i:i.i,o:v}),this.v=e,this.i++,y++,d++;try{for(var t=this.t;void 0!==t;t=t.x)t.t.N()}finally{l()}}var i}}),S.prototype=new m,S.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if(32==(36&this.f))return!0;if(this.f&=-5,this.g===y)return!0;if(this.g=y,this.f|=1,this.i>0&&!b(this))return this.f&=-2,!0;var e=a;try{F(this),a=this;var t=this.x();(16&this.f||this.v!==t||0===this.i)&&(this.v=t,this.f&=-17,this.i++)}catch(i){this.v=i,this.f|=16,this.i++}return a=e,w(this),this.f&=-2,!0},S.prototype.S=function(e){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}m.prototype.S.call(this,e)},S.prototype.U=function(e){if(void 0!==this.t&&(m.prototype.U.call(this,e),void 0===this.t)){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}},S.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var e=this.t;void 0!==e;e=e.x)e.t.N()}},Object.defineProperty(S.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var e=g(this);if(this.h(),void 0!==e&&(e.i=this.i),16&this.f)throw this.v;return this.v}}),R.prototype.c=function(){var e=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();"function"==typeof t&&(this.m=t)}finally{e()}},R.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1,this.f&=-9,V(this),F(this),d++;var e=a;return a=this,A.bind(this,e)},R.prototype.N=function(){2&this.f||(this.f|=2,this.u=c,c=this)},R.prototype.d=function(){this.f|=8,1&this.f||k(this)},R.prototype.dispose=function(){this.d()};const x="object"==typeof globalThis&&globalThis||"object"==typeof window&&window||"object"==typeof self&&self||"object"==typeof global&&global||function(){return this}();function T(e,t,{signal:i,edges:n}={}){let r,s=null;const o=null!=n&&n.includes("leading"),l=null==n||n.includes("trailing"),a=()=>{null!==s&&(e.apply(r,s),r=void 0,s=null)};let u=null;const c=()=>{null!=u&&clearTimeout(u),u=setTimeout(()=>{u=null,l&&a(),d()},t)},d=()=>{null!==u&&(clearTimeout(u),u=null),r=void 0,s=null},h=function(...e){if(null==i?void 0:i.aborted)return;r=this,s=e;const t=null==u;c(),o&&t&&a()};return h.schedule=c,h.cancel=d,h.flush=()=>{a()},null==i||i.addEventListener("abort",d,{once:!0}),h}function C(){}function P(e){return void 0!==x.Buffer&&x.Buffer.isBuffer(e)}function E(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function B(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const N="[object RegExp]",M="[object String]",I="[object Number]",$="[object Boolean]",D="[object Arguments]",U="[object Symbol]",_="[object Date]",q="[object Map]",z="[object Set]",W="[object Array]",L="[object ArrayBuffer]",G="[object Object]",K="[object DataView]",Z="[object Uint8Array]",H="[object Uint8ClampedArray]",X="[object Uint16Array]",J="[object Uint32Array]",Q="[object Int8Array]",Y="[object Int16Array]",ee="[object Int32Array]",te="[object Float32Array]",ie="[object Float64Array]";function ne(e,t,i,n=new Map,r=void 0){const s=null==r?void 0:r(e,t,i,n);if(void 0!==s)return s;if(null==(o=e)||"object"!=typeof o&&"function"!=typeof o)return e;var o,l;if(n.has(e))return n.get(e);if(Array.isArray(e)){const t=new Array(e.length);n.set(e,t);for(let s=0;s<e.length;s++)t[s]=ne(e[s],s,i,n,r);return Object.hasOwn(e,"index")&&(t.index=e.index),Object.hasOwn(e,"input")&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){const t=new Map;n.set(e,t);for(const[s,o]of e)t.set(s,ne(o,s,i,n,r));return t}if(e instanceof Set){const t=new Set;n.set(e,t);for(const s of e)t.add(ne(s,void 0,i,n,r));return t}if(P(e))return e.subarray();if(l=e,ArrayBuffer.isView(l)&&!(l instanceof DataView)){const t=new(Object.getPrototypeOf(e).constructor)(e.length);n.set(e,t);for(let s=0;s<e.length;s++)t[s]=ne(e[s],s,i,n,r);return t}if(e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){const t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return n.set(e,t),re(t,e,i,n,r),t}if("undefined"!=typeof File&&e instanceof File){const t=new File([e],e.name,{type:e.type});return n.set(e,t),re(t,e,i,n,r),t}if("undefined"!=typeof Blob&&e instanceof Blob){const t=new Blob([e],{type:e.type});return n.set(e,t),re(t,e,i,n,r),t}if(e instanceof Error){const t=structuredClone(e);return n.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,t.constructor=e.constructor,re(t,e,i,n,r),t}if(e instanceof Boolean){const t=new Boolean(e.valueOf());return n.set(e,t),re(t,e,i,n,r),t}if(e instanceof Number){const t=new Number(e.valueOf());return n.set(e,t),re(t,e,i,n,r),t}if(e instanceof String){const t=new String(e.valueOf());return n.set(e,t),re(t,e,i,n,r),t}if("object"==typeof e&&function(e){switch(B(e)){case D:case W:case L:case K:case $:case _:case te:case ie:case Q:case Y:case ee:case q:case I:case G:case N:case z:case M:case U:case Z:case H:case X:case J:return!0;default:return!1}}(e)){const t=Object.create(Object.getPrototypeOf(e));return n.set(e,t),re(t,e,i,n,r),t}return e}function re(e,t,i=e,n,r){const s=[...Object.keys(t),...E(t)];for(let o=0;o<s.length;o++){const l=s[o],a=Object.getOwnPropertyDescriptor(e,l);(null==a||a.writable)&&(e[l]=ne(t[l],l,i,n,r))}}function se(e){return ne(e,void 0,e,new Map,void 0)}function oe(e){if(!e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&"[object Object]"===Object.prototype.toString.call(e)}function le(e){return"__proto__"===e}function ae(e,t){const i={};for(let n=0;n<t.length;n++){const r=t[n];Object.hasOwn(e,r)&&(i[r]=e[r])}return i}function ue(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function ce(e,t,i,n,r,s,o){const l=o(e,t,i,n,r,s);if(void 0!==l)return l;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return e===t;case"number":return e===t||Object.is(e,t);case"object":return de(e,t,s,o)}return de(e,t,s,o)}function de(e,t,i,n){if(Object.is(e,t))return!0;let r=B(e),s=B(t);if("[object Arguments]"===r&&(r=G),"[object Arguments]"===s&&(s=G),r!==s)return!1;switch(r){case M:return e.toString()===t.toString();case I:return ue(e.valueOf(),t.valueOf());case $:case _:case U:return Object.is(e.valueOf(),t.valueOf());case N:return e.source===t.source&&e.flags===t.flags;case"[object Function]":return e===t}const o=(i=i??new Map).get(e),l=i.get(t);if(null!=o&&null!=l)return o===t;i.set(e,t),i.set(t,e);try{switch(r){case q:if(e.size!==t.size)return!1;for(const[r,s]of e.entries())if(!t.has(r)||!ce(s,t.get(r),r,e,t,i,n))return!1;return!0;case z:{if(e.size!==t.size)return!1;const r=Array.from(e.values()),s=Array.from(t.values());for(let o=0;o<r.length;o++){const l=r[o],a=s.findIndex(r=>ce(l,r,void 0,e,t,i,n));if(-1===a)return!1;s.splice(a,1)}return!0}case W:case Z:case H:case X:case J:case"[object BigUint64Array]":case Q:case Y:case ee:case"[object BigInt64Array]":case te:case ie:if(P(e)!==P(t))return!1;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!ce(e[r],t[r],r,e,t,i,n))return!1;return!0;case L:return e.byteLength===t.byteLength&&de(new Uint8Array(e),new Uint8Array(t),i,n);case K:return e.byteLength===t.byteLength&&e.byteOffset===t.byteOffset&&de(new Uint8Array(e),new Uint8Array(t),i,n);case"[object Error]":return e.name===t.name&&e.message===t.message;case G:{if(!(de(e.constructor,t.constructor,i,n)||oe(e)&&oe(t)))return!1;const r=[...Object.keys(e),...E(e)],s=[...Object.keys(t),...E(t)];if(r.length!==s.length)return!1;for(let o=0;o<r.length;o++){const s=r[o],l=e[s];if(!Object.hasOwn(t,s))return!1;if(!ce(l,t[s],s,e,t,i,n))return!1}return!0}default:return!1}}finally{i.delete(e),i.delete(t)}}function he(e,t){return function(e,t,i){return ce(e,t,void 0,void 0,void 0,void 0,i)}(e,t,C)}function fe(e){const{value:t,initialValue:i,touched:n,pending:r}=e||{},s=O(void 0===t?void 0:se(t)),o=O(void 0===i?void 0:se(i)),l=O(n??!1),a=O(r??!1),u=O([]);return{value:s,initialValue:o,touched:l,pending:a,pendingMessage:u,setValue:e=>{s.value=e},setInitialValue:e=>{o.value=e},setTouched:e=>{l.value=e},setPending:(e,t)=>{a.value=e,e?t&&(u.value=Array.isArray(t)?t:[t]):u.value=[]},reset:(e=o.peek())=>{s.value=se(e),l.value=!1,a.value=!1},peek:()=>({value:s.peek(),initialValue:o.peek(),touched:l.peek(),pending:a.peek(),pendingMessage:u.peek()})}}class pe{constructor(e={}){s(this,"records",new Map),s(this,"version",O(0)),s(this,"normalizeKey"),this.normalizeKey=e.normalizeKey??ye}getKey(e){return this.normalizeKey(e)}get(e){const t=this.records.get(this.getKey(e));if(t)return t.value;this.version.value}peek(e){var t;return null==(t=this.records.get(this.getKey(e)))?void 0:t.value}set(e,t){const i=this.getKey(e),n=this.records.has(i);return this.records.set(i,{key:e,value:t}),n||this.version.value++,this}has(e){return this.records.has(this.getKey(e))}delete(e){const t=this.getKey(e),i=this.records.get(t);return!!i&&(this.records.delete(t),ve(i.value),this.version.value++,!0)}clear(){if(0!==this.records.size){for(const e of this.records.values())ve(e.value);this.records.clear(),this.version.value++}}keys(){return this.version.value,Array.from(this.records.values(),e=>e.key).values()}values(){return this.version.value,Array.from(this.records.values(),e=>e.value).values()}entries(){return this.version.value,Array.from(this.records.values(),e=>[e.key,e.value]).values()}}function ve(e){e.value.value=void 0,e.initialValue.value=void 0,e.touched.value=!1,e.pending.value=!1}function ye(e){return Array.isArray(e)?e.map(e=>String(e)).join("."):String(e)}function ge(e){return j(e)}function me(e){!function(e){if(d>0)return e();p=++f,d++;try{return e()}finally{l()}}(e)}class be{constructor(){s(this,"signals",new Map),s(this,"version",O(0))}get(e){const t=this.signals.get(e);if(t)return t.value;this.version.value}set(e,t){const i=this.signals.get(e);return i?i.value=t:(this.signals.set(e,O(t)),this.version.value++),this}peek(e){var t;return null==(t=this.signals.get(e))?void 0:t.peek()}has(e){return this.signals.has(e)}delete(e){const t=this.signals.get(e);return!!t&&(this.signals.delete(e),me(()=>{t.value=void 0,this.version.value++}),!0)}clear(){if(0===this.signals.size)return;const e=[...this.signals.values()];this.signals.clear(),me(()=>{for(const t of e)t.value=void 0;this.version.value++})}keys(){return this.version.value,this.signals.keys()}values(){return this.version.value,Array.from(this.signals.values(),e=>e.value).values()}entries(){return this.version.value,Array.from(this.signals.entries(),([e,t])=>[e,t.value]).values()}}function Fe(e){return!we(e)&&!Se(e)}function we(e){return"group"===e.componentType}function Se(e){return"dependency"===e.componentType}function Ve(e){return"group"===e.componentType}const ke=e=>Object.hasOwn(e,"componentType")&&"string"==typeof e.componentType;function Ae(e){const t=[];return(e=>Object.hasOwn(e,"name")&&[null,void 0,""].every(t=>t!==e.name))(e)||t.push("name"),ke(e)||t.push("componentType"),t}function Re(e){const t=[];return ke(e)||t.push("componentType"),Object.hasOwn(e,"children")&&Array.isArray(e.children)||t.push("children"),t}function je(e){const t=[];return ke(e)||t.push("componentType"),Object.hasOwn(e,"to")&&Array.isArray(e.to)||t.push("to"),"function"!=typeof e.renderer&&t.push("renderer"),t}function Oe(e,t,i){const n="name"in t&&t.name||t.componentType||"unknown";return`[schemx] schemas[${e}] (${String(n)}) 缺少必填项: ${i.join(", ")},已被过滤`}function xe(e){const t=[],i=[];for(let n=0;n<e.length;n++){const r=e[n];let s=[];if(we(r)){if(s=Re(r),s.length>0){i.push(Oe(n,r,s));continue}t.push({...r,children:xe(r.children)})}else if(Se(r)){if(s=je(r),s.length>0){i.push(Oe(n,r,s));continue}t.push(r)}else if(Fe(r)){if(s=Ae(r),s.length>0){i.push(Oe(n,r,s));continue}t.push(r)}}return i.length&&console.warn(i.join("\n")),t}function Te(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(Te).join(",");const t=String(e);return"0"===t&&Object.is(Number(e),-0)?"-0":t}function Ce(e){var t;return"string"==typeof e||"symbol"==typeof e?e:Object.is(null==(t=null==e?void 0:e.valueOf)?void 0:t.call(e),-0)?"-0":String(e)}function Pe(e){if(Array.isArray(e))return e.map(Ce);if("symbol"==typeof e)return[e];const t=[],i=(e=Te(e)).length;if(0===i)return t;let n=0,r="",s="",o=!1;for(46===e.charCodeAt(0)&&(t.push(""),n++);n<i;){const l=e[n];s?"\\"===l&&n+1<i?(n++,r+=e[n]):l===s?s="":r+=l:o?'"'===l||"'"===l?s=l:"]"===l?(o=!1,t.push(r),r=""):r+=l:"["===l?(o=!0,r&&(t.push(r),r="")):"."===l?r&&(t.push(r),r=""):r+=l,n++}return r&&t.push(r),t}function Ee(e,t,i){if(null==e)return i;switch(typeof t){case"string":{if(le(t))return i;const n=e[t];return void 0===n?function(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}(t)?Ee(e,Pe(t),i):i:n}case"number":case"symbol":{"number"==typeof t&&(t=Ce(t));const n=e[t];return void 0===n?i:n}default:{if(Array.isArray(t))return function(e,t,i){if(0===t.length)return i;let n=e;for(let r=0;r<t.length;r++){if(null==n)return i;if(le(t[r]))return i;n=n[t[r]]}return void 0===n?i:n}(e,t,i);if(le(t=Object.is(null==t?void 0:t.valueOf(),-0)?"-0":String(t)))return i;const n=e[t];return void 0===n?i:n}}}function Be(e){return null!==e&&("object"==typeof e||"function"==typeof e)}const Ne=/^(?:0|[1-9]\d*)$/;function Me(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return Ne.test(e)}}const Ie=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$e=/^\w*$/;function De(e,t){return!Array.isArray(e)&&(!("number"!=typeof e&&"boolean"!=typeof e&&null!=e&&!function(e){return"symbol"==typeof e||e instanceof Symbol}(e))||("string"==typeof e&&($e.test(e)||!Ie.test(e))||null!=t&&Object.hasOwn(t,e)))}const Ue=(e,t,i)=>{const n=e[t];Object.hasOwn(e,t)&&ue(n,i)&&(void 0!==i||t in e)||(e[t]=i)};function _e(e,t,i){return function(e,t,i,n){if(null==e&&!Be(e))return e;let r;r=De(t,e)?[t]:Array.isArray(t)?t:Pe(t);const s=i(Ee(e,r));let o=e;for(let l=0;l<r.length&&null!=o;l++){const t=Ce(r[l]);if(le(t))continue;let i;if(l===r.length-1)i=s;else{const s=o[t],a=null==n?void 0:n(s,t,e);i=void 0!==a?a:Be(s)?s:Me(r[l+1])?[]:{}}Ue(o,t,i),o=o[t]}return e}(e,t,()=>i,()=>{})}function qe(e,t){return""===t||Array.isArray(t)&&0===t.length?e:Ee(e,Le(t))}function ze(e,t,i){null!=e&&_e(e,Le(t),i)}function We(e,t=""){const i=[];for(const n of Object.keys(e)){const r=t?`${t}.${n}`:n,s=e[n];Array.isArray(s)?s.forEach((e,t)=>{const n=`${r}[${t}]`;null!==e&&"object"==typeof e?i.push(...We(e,n)):i.push(n)}):null!==s&&"object"==typeof s?i.push(...We(s,r)):i.push(r)}return i}const Le=e=>Array.isArray(e)?e.map(e=>"number"==typeof e?e:String(e)):e;function Ge(e){let t=null;return(...i)=>t||(t=e(...i).finally(()=>{t=null}),t)}function Ke(e,t){const i={};for(const n of Object.keys(e))he(e[n],t[n])||(i[n]=e[n]);return i}const Ze={required:!1,readonly:!1,disabled:!1,visible:!0,labelIcon:"",labelAlign:"left",labelPosition:"left",labelWidth:"auto",validationTrigger:"blur",colon:!0},He=Object.keys(Ze);class Xe{constructor(){s(this,"rules",new Map),s(this,"errors",new be)}register(e,t,i){const n=Array.isArray(t)?t:[t],r=this.rules.get(e);r?(r.schemas.push(...n),i&&(r.defaultMessage=i)):this.rules.set(e,{schemas:n,defaultMessage:i})}unregister(e){this.rules.delete(e),this.errors.delete(e)}getFieldError(e){return this.errors.get(e)}setFieldError(e,t){this.errors.set(e,t)}async validateField(e,t){const i=Array.isArray(e)?e:[e];this.reset(i);let n=!0;for(const r of i){(await this.validateSingleRule(r,t)).ok||(n=!1)}return this.buildResult(n,t)}async validate(e){let t=!0;this.reset();for(const i of this.rules.keys()){(await this.validateSingleRule(i,e)).ok||(t=!1)}return this.buildResult(t,e)}reset(e){me(e?()=>{for(const t of e)this.errors.set(t,[])}:()=>{for(const e of this.rules.keys())this.errors.set(e,[]);for(const e of[...this.errors.keys()])this.rules.has(e)||this.errors.delete(e)})}buildResult(e,t){return e?{ok:!0,values:t}:{ok:!1,error:{errors:Array.from(this.errors.keys()).map(e=>({field:e,message:this.errors.peek(e)||[]})),values:t}}}failResult(e,t,i){return this.errors.set(e,t),{ok:!1,error:{errors:[{field:e,message:t}],values:i}}}async validateSingleRule(e,t){const i=this.rules.get(e);if(!i||0===i.schemas.length)return this.errors.delete(e),{ok:!0,values:t};const n=qe(t,e),r=[];null==n&&i.defaultMessage&&r.push(i.defaultMessage);for(const o of i.schemas)try{const e=await o["~standard"].validate(n);e.issues&&r.push(...e.issues.map(e=>e.message))}catch(s){console.warn(`[Validator] 校验字段 "${e}" 时发生错误:`,s),r.push("校验失败")}return r.length>0?this.failResult(e,r,t):(this.errors.delete(e),{ok:!0,values:t})}}function Je(){return new Xe}function Qe(e){return tt(t=>{if(null==t||""===t){const t=(null==e?void 0:e.label)??"";return it(t?`请输入${t}`:"此项为必填项")}return nt(t)})}function Ye(e){return tt(t=>{if(null==t||""===t||Array.isArray(t)&&0===t.length){const t=(null==e?void 0:e.label)??"";return it(t?`请选择${t}`:"此项为必选项")}return nt(t)})}function et(e){return tt(t=>{if(null==t||Array.isArray(t)&&0===t.length){const t=(null==e?void 0:e.label)??"";return it(t?`请上传${t}`:"此项为必传项")}return nt(t)})}const tt=e=>({"~standard":{version:1,vendor:"schemx",validate:e}}),it=e=>({issues:[{message:e}]}),nt=e=>({value:e});class rt{constructor(e){s(this,"renderers"),s(this,"defaultType"),this.renderers=new Map,this.defaultType=e}register(e,t,i){this.renderers.has(e)&&!1===(null==i?void 0:i.override)?console.warn(`[RendererRegistryType] RendererRegistry "${e}" already exists, skipping registration`):this.renderers.set(e,t)}registerAll(e){Object.entries(e).forEach(([e,t])=>{this.renderers.set(e,t)})}getRenderer(e){let t=this.renderers.get(e);return t||(console.warn(`[RendererRegistryType] RendererRegistry "${e}" not found, falling back to default "${this.defaultType}"`),this.defaultType&&(t=this.renderers.get(this.defaultType))),t}hasRenderer(e){return this.renderers.has(e)}unregister(e){const t=e===this.defaultType,i=this.renderers.delete(e);if(t&&i){const e=this.renderers.keys().next().value;e&&(console.warn("[RendererRegistryType] Default renderer was removed, Please reset the default renderer."),this.defaultType=e)}return i}getTypes(){return Array.from(this.renderers.keys())}setDefault(e){this.renderers.has(e)?this.defaultType=e:console.warn(`[RendererRegistryType] Cannot set default to "${e}": renderer not registered`)}getDefault(){return this.defaultType}clear(){this.renderers.clear()}size(){return this.renderers.size}}function st(e){return new rt(e)}class ot{constructor(){s(this,"validators"),this.validators=new Map}register(e,t,i){this.validators.has(e)&&!1===(null==i?void 0:i.override)?console.warn(`[ValidatorsRegistryType] Validators "${e}" 已存在,跳过注册`):this.validators.set(e,t)}registerAll(e){Object.entries(e).forEach(([e,t])=>{this.validators.set(e,t)})}get(e){return this.validators.get(e)}resolveValidatorsBySchema(e){const t=(null==e?void 0:e.rules)??[],i=Array.isArray(t)?t:[t],n=[];for(const r of i)if("string"==typeof r)if(this.validators.has(r)){const t=this.validators.get(r);t&&n.push("function"==typeof t?t(e):t)}else console.warn(`[schemx] 未找到名为 "${r}" 的校验规则`);else r&&n.push(r);return n}has(e){return this.validators.has(e)}unregister(e){return this.validators.delete(e)}getNames(){return Array.from(this.validators.keys())}clear(){this.validators.clear()}size(){return this.validators.size}}function lt(){return new ot}function at(e=[]){const t=O(e);return{signal:t,get value(){return t.value},peek:()=>t.peek(),set:e=>{t.value=e},update:e=>{t.value=e(t.peek())},subscribe:e=>{let i=!0;const n=t.subscribe(t=>{i?i=!1:e(t)});return()=>{n()}}}}function ut(e){if(!e||Array.isArray(e))return!1;const t=e;return"function"==typeof t.peek&&"function"==typeof t.set&&"function"==typeof t.update&&"function"==typeof t.subscribe}class ct extends Error{constructor(e,t){super(e),s(this,"schemaKey"),s(this,"schemaName"),this.name="CompileError",t&&"name"in t&&(this.schemaName=t.name),t&&"key"in t&&t.key&&(this.schemaKey=t.key)}}const dt=ct;function ht(e,t={},i=""){const n=[],r=xe(e);for(let s=0;s<r.length;s++){const e=r[s];let o;o=we(e)?pt(e,s,t,i):Se(e)?vt(e,s,i):ft(e,s,t,i),n.push(o)}return n}function ft(e,t,i={},n=""){const r=e.key??(n?`field:${n}/${e.name}`:`field:${e.name}`),s=function(e,t={}){const{componentProps:i,visible:n,readonly:r,disabled:s,required:o,placeholder:l,rules:a,validationTrigger:u,dependencies:c,...d}=e,h=n??Ze.visible,f=r??t.readonly??Ze.readonly,p=s??t.disabled??Ze.disabled,v=f?"right":(null==i?void 0:i.align)??d.contentAlign,y=yt(e),g={...i,readonly:f,disabled:p,placeholder:y,align:v},m=(Array.isArray(a)?a:[a]).filter(Boolean),b=o??(m.length>0||Ze.required),F={...d??{},key:d.key,name:d.name,label:d.label,componentType:d.componentType,visible:h,readonly:f,disabled:p,required:b,placeholder:y,componentProps:g,labelIcon:d.labelIcon||Ze.labelIcon,labelAlign:d.labelAlign||Ze.labelAlign,labelPosition:d.labelPosition||Ze.labelPosition,labelWidth:d.labelWidth||Ze.labelWidth,colon:d.colon??Ze.colon,rules:a,validationTrigger:u||Ze.validationTrigger};Object.hasOwn(e,"initialValue")&&(F.initialValue=d.initialValue);f&&(F.contentAlign="right",F.labelPosition="left");return F}(e,i);return{type:"field",key:r,name:e.name,rendererType:e.componentType,schema:s,dependencies:e.dependencies}}function pt(e,t,i={},n=""){const r=e.key??(n?`group:${n}/${t}`:`group:${t}`),{children:s,...o}=e;return{type:"group",key:r,schema:{...o,key:r},children:ht(s,i,r)}}function vt(e,t,i=""){const n=e.key??(i?`dependency:${i}/${t}`:`dependency:${t}`);if(!e.to||0===e.to.length)throw new dt("Dependency schema must have non-empty trigger fields",e);return{type:"dependency",key:n,trigger:[...e.to],renderer:(t,i)=>{const n=t.getValues();return e.renderer(n,t,{abortSignal:i})}}}function yt(e){var t;const i=(null==(t=e.componentProps)?void 0:t.placeholder)??e.placeholder;return null==i?["input","text","textarea"].includes(e.componentType)?`请输入${e.label||e.name}`:`请选择${e.label||e.name}`:i}const gt=e=>"group"===e.type;function mt(e,t,i){const n=bt(t,i);var r,s;(r=e.snapshot.peek(),s=n,r.visible===s.visible&&r.disabled===s.disabled&&r.readonly===s.readonly&&r.required===s.required&&r.label===s.label&&function(e,t){return e===t||!(!Array.isArray(e)||!Array.isArray(t))&&(e.length===t.length&&e.every((e,i)=>e===t[i]))}(r.rules,s.rules)&&r.placeholder===s.placeholder&&function(e,t){if(e===t)return!0;const i=Object.keys(e),n=Object.keys(t),r=e,s=t;return i.length===n.length&&i.every(e=>r[e]===s[e])}(r.componentProps,s.componentProps))||(e.snapshot.value=n)}function bt(e,t){const i=e.schema;return{visible:(null==t?void 0:t.visible)??i.visible??Ze.visible,disabled:(null==t?void 0:t.disabled)??i.disabled??Ze.disabled,readonly:(null==t?void 0:t.readonly)??i.readonly??Ze.readonly,required:(null==t?void 0:t.required)??i.required??Ze.required,label:i.label||"",rules:((null==t?void 0:t.rules)??i.rules)||[],placeholder:(null==t?void 0:t.placeholder)??i.placeholder??yt(i),componentProps:((null==t?void 0:t.componentProps)??i.componentProps)||{}}}function Ft(e){const{descriptor:t,fieldModel:i,context:n,scope:r}=e,s=t.schema,o=t.dependencies;if(null==o||null==o.triggerFields||0===o.triggerFields.length)return;let l=0;const a=ge(()=>{const e=++l;n.formApi.getValues(o.triggerFields),n.scheduler.track(async function(e,t,i){const n=i.getValues(),[r]=await Promise.all([St(e,t,n,i),wt(e,n,i)]);return r}(o,s,n.formApi).then(n=>{r.disposed||e!==l||mt(i,t,n)}))});r.add(()=>{l+=1,a()})}async function wt(e,t,i){if(e.trigger)try{await e.trigger(t,i)}catch(n){console.error("[schemx] trigger 执行错误:",n)}}async function St(e,t,i,n){const[r,s,o,l,a,u,c]=await Promise.all([Vt({condition:e.componentProps,values:i,formApi:n,defaultValue:t.componentProps}),Vt({condition:e.placeholder,values:i,formApi:n,defaultValue:t.placeholder}),Vt({condition:e.required,values:i,formApi:n,defaultValue:t.required}),Vt({condition:e.readonly,values:i,formApi:n,defaultValue:t.readonly}),Vt({condition:e.disabled,values:i,formApi:n,defaultValue:t.disabled}),Vt({condition:e.visible,values:i,formApi:n,defaultValue:t.visible}),Vt({condition:e.rules,values:i,formApi:n,defaultValue:t.rules})]);return{componentProps:r,placeholder:s,required:o,readonly:l,disabled:a,visible:u,rules:c}}async function Vt(e){const{condition:t,values:i,formApi:n,defaultValue:r}=e;return null==t?r:async function(e,t,i,n){try{return await t(i,e)??n}catch(r){return console.error("[schemx] 解析动态属性时发生错误:",r),n}}(n,t,i,r)}function kt(e){var t;const{node:i,descriptor:n,context:r}=e,s=e.scope??i.scope.child();null==(t=i.dependencySlot)||t.dispose();const o={loading:O(!1),error:O(null),version:O(0),abortController:O(null),run:async()=>{},dispose:()=>{}};return i.dependencyResourceScope=s,o.run=()=>{var e;if(s.disposed)return Promise.resolve();const t=i.descriptor,n=o.version.value+1;o.version.value=n,null==(e=o.abortController.value)||e.abort();const l=new AbortController;return o.abortController.value=l,o.loading.value=!0,o.error.value=null,r.scheduler.track((async()=>{try{const e=await Promise.resolve(t.renderer(r.formApi,l.signal));if(s.disposed||l.signal.aborted||n!==o.version.value)return;const a=ht(e,r.defaultProps);r.commitChildren(i,a)}catch(e){if(s.disposed||l.signal.aborted||n!==o.version.value)return;o.error.value=function(e){return e instanceof Error?e:new Error(String(e))}(e)}finally{s.disposed||l.signal.aborted||n!==o.version.value||(o.loading.value=!1)}})())},o.dispose=()=>{var e;o.version.value+=1,null==(e=o.abortController.value)||e.abort(),s.dispose()},s.add(()=>{var e;null==(e=o.abortController.value)||e.abort(),o.abortController.value=null,i.dependencySlot===o&&(i.dependencySlot=null),i.dependencyResourceScope===s&&(i.dependencyResourceScope=null)}),n.trigger.length>0&&function(e,t,i,n){let r=!0,s=!1;const o=ge(()=>{t.getValues(e),r||s||(s=!0,queueMicrotask(()=>{s=!1,n.disposed||i().catch(e=>{console.error("DependencyEffectSlot trigger run error:",e)})})),r=!1});n.add(o)}(n.trigger,r.formApi,()=>o.run(),s),i.dependencySlot=o,o.run().catch(e=>{console.error("DependencyEffectSlot initial run error:",e)}),o}class At{constructor(){s(this,"fields",new Map)}register(e){const t=e.name;this.fields.set(t,e)}unregister(e,t){const i=e,n=this.fields.get(i);t&&(null==n?void 0:n.node)!==t||this.fields.delete(i)}get(e){const t=e;return this.fields.get(t)}list(){return Array.from(this.fields.values())}}function Rt(e){const{name:t,fieldModel:i,scope:n,context:r}=e,s=r.scheduler,o=O(!1),l=O(!1);let a=0;const u=e=>{const i=++a;s.schedule({id:`validation:${String(t)}`,priority:"post",scope:n,run:()=>{n.disposed||i!==a||(e=>{const{visible:i,readonly:n,disabled:s,label:l,rules:a}=e;if(!i||n||s||!a)return r.instance.unregisterRules(t),r.instance.setFieldError(t,[]),void(o.value=!1);r.instance.registerRules(t,a,`${l}为必填项`),o.value=!0})(e)}})};n.add(()=>{a+=1,r.instance.unregisterRules(t),r.instance.setFieldError(t,[]),o.value=!1});const c=ge(()=>{u((()=>{const e=i.snapshot.value;return{visible:e.visible,readonly:e.readonly,disabled:e.disabled,label:e.label,rules:e.rules}})())});n.add(c);return{registered:o,validating:l,validate:async()=>{l.value=!0;try{return await r.instance.validateField(t)}finally{l.value=!1}},dispose:()=>{n.dispose()}}}function jt(e){const t=new Set;e&&t.add(e);const i=(e,...i)=>{for(const n of Array.from(t))e(n,...i)};return{on:e=>(t.add(e),()=>{t.delete(e)}),emitMount:e=>{i((e,t)=>{var i,n;null==(i=e.mount)||i.call(e,t),null==(n=e.mounted)||n.call(e,t)},e)},emitBeforeMount:e=>{i((e,t)=>{var i;null==(i=e.beforeMount)||i.call(e,t)},e)},emitUpdate:(e,t)=>{i((e,t,i)=>{var n;null==(n=e.update)||n.call(e,t,i)},e,t)},emitBeforeUpdate:(e,t)=>{i((e,t,i)=>{var n;null==(n=e.beforeUpdate)||n.call(e,t,i)},e,t)},emitUpdated:(e,t)=>{i((e,t,i)=>{var n;null==(n=e.updated)||n.call(e,t,i)},e,t)},emitBeforeUnmount:e=>{i((e,t)=>{var i;null==(i=e.beforeUnmount)||i.call(e,t)},e)},emitUnmount:e=>{i((e,t)=>{var i,n;null==(i=e.unmount)||i.call(e,t),null==(n=e.unmounted)||n.call(e,t)},e)},clear:()=>{t.clear()}}}const Ot=jt;function xt(e){return e.children}function Tt(e){return"root"!==e.type}function Ct(e){return"root"===e.type}function Pt(e){return"field"===(null==e?void 0:e.type)}function Et(e){return"group"===(null==e?void 0:e.type)}function Bt(e){return"dependency"===(null==e?void 0:e.type)}function Nt(e){return Ct(e)||Et(e)?e.childNodes:Bt(e)?e.dynamicChildNodes:[]}function Mt(e,t){Ct(e)||Et(e)?e.childNodes=t:Bt(e)&&(e.dynamicChildNodes=t)}function It(e,t){return function(e,t,i={}){const n=i.getChildren??xt,r=Array.isArray(e)?[...e]:[e];let s=0;for(;s<r.length;){const e=r[s];if(s++,t(e))return e;const i=n(e);(null==i?void 0:i.length)&&r.push(...i)}}(e,e=>Pt(e)&&e.descriptor.name===t,{getChildren:e=>Nt(e)})}class $t{constructor(e){s(this,"runtimeNodeManager"),this.runtimeNodeManager=e}reconcileChildren(e,t){return this.reconcileChildrenTree(e,t)}reconcileChildrenTree(e,t){const i=new Map(Nt(e).map(e=>[e.key,e])),n=[],r=[];let s=!1;for(const o of t){const t=i.get(o.key);if(t&&t.type===o.type){i.delete(o.key),t.parent=e,this.runtimeNodeManager.update(t,o),n.push(t),gt(o)&&r.push({node:t,descriptor:o});continue}s=!0;const l=this.runtimeNodeManager.create(o,e);this.runtimeNodeManager.mount(l),n.push(l),gt(o)&&r.push({node:l,descriptor:o})}Mt(e,n);for(const{node:o,descriptor:l}of r)gt(l)&&this.reconcileChildrenTree(o,l.children)&&(s=!0);i.size>0&&(s=!0);for(const o of i.values())this.runtimeNodeManager.disposeTree(o);return s}}function Dt(){let e=!1;const t=[],i=[];return{get disposed(){return e},add:i=>{if(e)return zt(i),Ut();const n={cleanup:i,disposed:!1};t.push(n);return{get disposed(){return n.disposed},dispose:()=>{n.disposed||(n.disposed=!0,qt(t,n),zt(n.cleanup))}}},child:()=>{const e=Dt();return i.push(e),e.add(()=>{qt(i,e)}),e},dispose:()=>{if(!e){e=!0;for(const e of i.slice().reverse())e.dispose();i.length=0;for(const e of t.slice().reverse())e.disposed||(e.disposed=!0,zt(e.cleanup));t.length=0}}}}const Ut=()=>({disposed:!0,dispose:_t}),_t=()=>{},qt=(e,t)=>{const i=e.indexOf(t);i>=0&&e.splice(i,1)},zt=e=>{try{e()}catch(t){!function(e){console.error("[Scope] Cleanup error:",e)}(t)}};class Wt{constructor(e){s(this,"nextId",1),s(this,"context"),s(this,"instance"),s(this,"fieldRegistry"),s(this,"lifecycleBus"),this.context=e,this.fieldRegistry=e.fieldRegistry,this.instance=e.instance,this.lifecycleBus=e.lifecycleBus}createRoot(){return{id:0,key:"schemx:root",type:"root",parent:null,scope:Dt(),disposed:O(!1),mounted:O(!1),childNodes:[]}}create(e,t){return"field"===e.type?this.createField(e,t):"group"===e.type?this.createGroup(e,t):"dependency"===e.type?this.createDependency(e,t):void function(e){throw new Error(`unknown type: ${e.type??"unknown"}`)}(e)}mount(e){if(Tt(e)){switch(this.lifecycleBus.emitBeforeMount(e),e.type){case"field":this.mountField(e);break;case"group":this.mountGroup(e);break;case"dependency":this.mountDependency(e)}e.mounted.value=!0,this.lifecycleBus.emitMount(e)}}update(e,t){if(Tt(e))switch(e.type){case"field":{"field"!==t.type&&Gt(e,t);const i=Lt(e);this.lifecycleBus.emitBeforeUpdate(e,i),e.descriptor=t,this.updateField(e,i),this.lifecycleBus.emitUpdate(e,i),this.lifecycleBus.emitUpdated(e,i);break}case"group":{gt(t)||Gt(e,t);const i=Lt(e);this.lifecycleBus.emitBeforeUpdate(e,i),e.descriptor=t,this.updateGroup(e,t),this.lifecycleBus.emitUpdate(e,i),this.lifecycleBus.emitUpdated(e,i);break}case"dependency":{(e=>"dependency"===e.type)(t)||Gt(e,t);const i=Lt(e);this.lifecycleBus.emitBeforeUpdate(e,i),e.descriptor=t,this.updateDependency(e,i),this.lifecycleBus.emitUpdate(e,i),this.lifecycleBus.emitUpdated(e,i);break}}}unmount(e){if(Tt(e)){switch(e.type){case"field":this.unmountField(e);break;case"group":this.unmountGroup(e);break;case"dependency":this.unmountDependency(e)}e.mounted.value=!1}}disposeTree(e){if(!e.disposed.value){if("root"!==e.type&&this.lifecycleBus.emitBeforeUnmount(e),e.disposed.value=!0,function(e){return"root"===e.type||"group"===e.type||"dependency"===e.type}(e)){for(const t of Nt(e))this.disposeTree(t);Mt(e,[])}this.unmount(e),e.scope.dispose(),e.parent=null,"root"!==e.type&&this.lifecycleBus.emitUnmount(e)}}createField(e,t){const i=function(e){return{snapshot:O(bt(e))}}(e);return{id:this.nextId++,key:e.key,type:e.type,parent:t,scope:t.scope.child(),disposed:O(!1),mounted:O(!1),descriptor:e,fieldModel:i,fieldResourceScope:null,fieldDependenciesScope:null}}createGroup(e,t){return{id:this.nextId++,key:e.key,type:e.type,parent:t,scope:t.scope.child(),disposed:O(!1),mounted:O(!1),descriptor:e,childNodes:[]}}createDependency(e,t){return{id:this.nextId++,key:e.key,type:e.type,parent:t,scope:t.scope.child(),disposed:O(!1),mounted:O(!1),descriptor:e,dependencySlot:null,dependencyResourceScope:null,dynamicChildNodes:[]}}mountField(e){const t=e.scope.child(),i=e.fieldModel;i&&(this.initializeFieldValue(e),e.fieldResourceScope=t,this.fieldRegistry.register({name:e.descriptor.name,node:e,model:i}),t.add(()=>{this.fieldRegistry.unregister(e.descriptor.name,e),e.fieldResourceScope===t&&(e.fieldResourceScope=null)}),this.mountFieldValidation(e,i,t),this.mountOrRestartFieldDependencies(e,i))}initializeFieldValue(e){const{name:t,schema:i}=e.descriptor;if(!Object.hasOwn(i,"initialValue")||void 0!==this.instance.getFieldSnapshot(t))return;const n={};ze(n,t,i.initialValue),this.instance.setInitialValues(n),this.instance.setFieldValue(t,i.initialValue)}mountGroup(e){}mountDependency(e){kt({node:e,descriptor:e.descriptor,context:this.context})}updateField(e,t){const i=e.fieldModel;if(i&&t&&t.descriptor.name===e.descriptor.name)return mt(i,e.descriptor),this.fieldRegistry.register({name:e.descriptor.name,node:e,model:i}),void this.mountOrRestartFieldDependencies(e,i);this.unmountField(e),this.mountField(e)}updateGroup(e,t){}updateDependency(e,t){e.dependencySlot&&t&&function(e,t){if(e.length!==t.length)return!1;return e.every((e,i)=>e===t[i])}(e.descriptor.trigger,null==t?void 0:t.descriptor.trigger)||(this.unmountDependency(e),this.mountDependency(e))}mountFieldValidation(e,t=e.fieldModel,i=e.fieldResourceScope){t&&i&&Rt({name:e.descriptor.name,fieldModel:t,context:this.context,scope:i})}mountOrRestartFieldDependencies(e,t=e.fieldModel){var i;if(null==(i=e.fieldDependenciesScope)||i.dispose(),!t||!e.descriptor.dependencies)return void(e.fieldDependenciesScope=null);const n=e.scope.child();e.fieldDependenciesScope=n,n.add(()=>{e.fieldDependenciesScope===n&&(e.fieldDependenciesScope=null)}),Ft({descriptor:e.descriptor,fieldModel:t,context:this.context,scope:n})}unmountField(e){var t,i;null==(t=e.fieldDependenciesScope)||t.dispose(),e.fieldDependenciesScope=null,null==(i=e.fieldResourceScope)||i.dispose(),e.fieldResourceScope=null}unmountGroup(e){}unmountDependency(e){var t;null==(t=e.dependencyResourceScope)||t.dispose(),e.dependencyResourceScope=null,e.dependencySlot=null}}function Lt(e){return{...e}}function Gt(e,t){throw new Error(`unexpected descriptor type: node ${e.type} cannot update with ${t.type}`)}const Kt=["sync","pre","normal","post"];const Zt=e=>null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then;class Ht{constructor(e={}){s(this,"fieldSignals",function(e={}){return new pe(e)}()),s(this,"initialValues");const t=e.initialValues??{};this.initialValues=se(t);const i=We(t);for(const n of i){const e=qe(t,n);this.fieldSignals.set(n,fe({value:e,initialValue:e}))}}getOrCreateFieldSignal(e){const t=qe(this.initialValues,e);let i=this.fieldSignals.peek(e);return i||(i=fe({value:t,initialValue:t}),this.fieldSignals.set(e,i)),i}getFieldValue(e){const t=this.fieldSignals.get(e);return null==t?void 0:t.value.value}setFieldValue(e,t){const i=this.getOrCreateFieldSignal(e);i.setValue(t),i.setTouched(!he(t,i.initialValue.peek()))}getFieldsValue(e){const t={},i=e??this.fieldSignals.keys();for(const n of i)ze(t,n,this.getFieldValue(n));return t}setFieldsValue(e){const t=We(e);me(()=>{for(const i of t)this.setFieldValue(i,qe(e,i))})}getFieldSnapshot(e){const t=this.fieldSignals.peek(e);return null==t?void 0:t.value.peek()}getFieldsSnapshot(e){const t={},i=e??this.fieldSignals.keys();for(const n of i)ze(t,n,this.getFieldSnapshot(n));return t}getInitialValue(e){const t=this.fieldSignals.peek(e);return t?t.initialValue.peek():qe(this.initialValues,e)}getInitialValues(e){if(void 0===e)return se(this.initialValues);const t={};for(const i of e)ze(t,i,qe(this.initialValues,i));return t}setInitialValue(e,t){ze(this.initialValues,e,t);const i=this.getOrCreateFieldSignal(e);i.setInitialValue(t),i.setTouched(!he(i.value.peek(),i.initialValue.peek()))}setInitialValues(e){const t=We(e);t.length&&me(()=>{for(const i of t){const t=qe(e,i);ze(this.initialValues,i,t);const n=this.getOrCreateFieldSignal(i);n.setInitialValue(t),n.setTouched(!he(n.value.peek(),n.initialValue.peek()))}})}isFieldTouched(e){var t;return(null==(t=this.fieldSignals.get(e))?void 0:t.touched.value)??!1}isFieldsTouched(e){const t=e??[...this.fieldSignals.keys()];return void 0===e?t.some(e=>this.isFieldTouched(e)):t.every(e=>this.isFieldTouched(e))}getTouchedFields(){const e=[];for(const[t,i]of this.fieldSignals.entries())i.touched.value&&e.push(t);return e}setFieldTouched(e,t){this.getOrCreateFieldSignal(e).setTouched(t)}setFieldsTouched(e,t=!0){me(()=>{for(const i of e)this.setFieldTouched(i,t)})}isFieldPending(e){var t;return(null==(t=this.fieldSignals.get(e))?void 0:t.pending.value)??!1}isFieldsPending(e){return(e??[...this.fieldSignals.keys()]).every(e=>this.isFieldPending(e))}getPendingFields(){const e=[];for(const[t,i]of this.fieldSignals.entries())i.pending.value&&e.push({field:t,message:i.pendingMessage.peek()});return e}setFieldPending(e,t,i){this.getOrCreateFieldSignal(e).setPending(t,i)}setFieldsPending(e,t=!0,i){me(()=>{for(const n of e)this.setFieldPending(n,t,i)})}resetField(e){this.getOrCreateFieldSignal(e).reset()}resetFields(e){me(()=>{for(const t of e)this.getOrCreateFieldSignal(t).reset()})}reset(e){const t=se(e??this.initialValues),i=We(t),n=new Set(i);me(()=>{for(const e of this.fieldSignals.keys())n.has(e)||this.fieldSignals.delete(e);for(const e of i){const i=qe(t,e);ze(this.initialValues,e,i);const n=this.fieldSignals.peek(e);n?(n.setInitialValue(i),n.reset(i)):this.fieldSignals.set(e,fe({value:i,initialValue:i}))}})}destroy(){this.fieldSignals.clear()}}function Xt(e){return e?Jt(Nt(e),1):[]}function Jt(e,t){if(t>100)throw new RangeError(`buildViewSchemas: max depth 100 exceeded at depth ${t}`);const i=[];for(const n of e){const e=Qt(n,t);if(null!==e)if(Array.isArray(e))for(const t of e)i.push(t);else i.push(e)}return i}function Qt(e,t){return e.disposed.value?null:Et(e)?function(e,t){const i=Jt(Nt(e),t+1),n=e.descriptor;return{...n.schema,key:e.key,children:i,debug:ii(e)}}(e,t):Bt(e)?function(e,t){return Jt(Nt(e),t+1)}(e,t):Pt(e)?function(e){const t=e.descriptor,i=e.fieldModel;if(!i)return console.warn(`[buildViewSchemas] skipping field node "${e.key}": no FieldModel resource`),null;if("field"!==(null==t?void 0:t.type))return null;const n=t.schema,r=i.snapshot.value;return{...n,key:e.key,visible:r.visible,label:r.label,readonly:r.readonly,disabled:r.disabled,required:r.required,placeholder:Yt(r.placeholder),componentProps:ei(r.componentProps??{}),rules:r.rules,validationTrigger:n.validationTrigger,debug:ii(e)}}(e):null}function Yt(e){return e.length>1e3?e.slice(0,1e3):e}function ei(e,t=0){if(t>10)return{};const i={};for(const n of Object.keys(e)){if(!ti(n))continue;const r=e[n];null===r||"object"!=typeof r||Array.isArray(r)?i[n]=r:i[n]=ei(r,t+1)}return i}function ti(e){return!!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(e)||!!/^[a-zA-Z0-9_-]+$/.test(e)}function ii(e){return{runtimeNodeId:e.id,runtimeNodeType:e.type,hasFieldModel:"field"===e.type&&void 0!==e.fieldModel,hasDependencySlot:"dependency"===e.type&&void 0!==e.dependencySlot}}function ni(e,t,i){let n=!1;const r=e.scope.add(()=>{n=!0}),s=function(e,t,i=16,n={}){const r=T(t,i,{edges:n.edges});let s=!1;const o=ge(()=>{const i=e();if(!s&&n.immediate)return s=!0,void t(i);s=!0,r(i)});return()=>{o(),r.cancel()}}(()=>(t.revision.value,n?[]:Xt(e)),e=>{try{i(e)}catch(t){console.error("[subscribeViewSchemas] onChange error:",t)}},16,{immediate:!0,edges:["leading","trailing"]});return()=>{s(),r.dispose(),n=!1}}class ri{constructor(e={}){var t,i;s(this,"context"),s(this,"callbacks"),s(this,"store"),s(this,"rendererRegistry"),s(this,"validatorRegistry"),s(this,"validator"),s(this,"root"),s(this,"scheduler"),s(this,"viewRevision"),s(this,"reconciler"),s(this,"runtimeNodeManager"),s(this,"fieldRegistry"),s(this,"scope",Dt()),s(this,"schemas"),s(this,"disposed",!1),s(this,"lifecycleBus"),s(this,"getFormInstance",()=>({setFieldValue:this.store.setFieldValue.bind(this.store),setFieldsValue:this.store.setFieldsValue.bind(this.store),getFieldValue:this.store.getFieldValue.bind(this.store),getFieldsValue:this.store.getFieldsValue.bind(this.store),getFieldSnapshot:this.store.getFieldSnapshot.bind(this.store),getFieldsSnapshot:this.store.getFieldsSnapshot.bind(this.store),getInitialValue:this.store.getInitialValue.bind(this.store),getInitialValues:this.store.getInitialValues.bind(this.store),setInitialValues:this.store.setInitialValues.bind(this.store),isFieldTouched:this.store.isFieldTouched.bind(this.store),setFieldTouched:this.store.setFieldTouched.bind(this.store),getTouchedFields:this.store.getTouchedFields.bind(this.store),setFieldPending:this.store.setFieldPending.bind(this.store),isFieldPending:this.store.isFieldPending.bind(this.store),getPendingFields:this.store.getPendingFields.bind(this.store),validateField:this.validateField.bind(this),validate:this.validate.bind(this),getFieldError:this.validator.getFieldError.bind(this.validator),setFieldError:this.validator.setFieldError.bind(this.validator),resetFields:this.store.resetFields.bind(this.store),reset:this.reset.bind(this),submit:this.submit.bind(this),registerRules:this.register.bind(this),unregisterRules:this.validator.unregister.bind(this.validator),effect:this.effect.bind(this),batch:this.batch.bind(this),setSchemas:this.setSchemas.bind(this),updateSchemas:this.updateSchemas.bind(this),updateDefaultProps:this.updateDefaultProps.bind(this),getViewRevision:()=>this.viewRevision.revision.value,getViewSchemas:this.getViewSchemas.bind(this),subscribeViewSchemas:this.subscribeViewSchemas.bind(this),waitForDependencies:this.waitForIdle.bind(this),getRenderer:this.rendererRegistry.getRenderer.bind(this.rendererRegistry),registerRenderer:this.rendererRegistry.register.bind(this.rendererRegistry),hasRenderer:this.rendererRegistry.hasRenderer.bind(this.rendererRegistry),getValidator:this.validatorRegistry.get.bind(this.validatorRegistry),registerValidator:this.validatorRegistry.register.bind(this.validatorRegistry),hasValidator:this.validatorRegistry.has.bind(this.validatorRegistry),destroy:this.destroy.bind(this)})),s(this,"getFormApi",()=>({setValue:this.store.setFieldValue.bind(this.store),setValues:this.store.setFieldsValue.bind(this.store),getValue:this.store.getFieldValue.bind(this.store),getValues:this.store.getFieldsValue.bind(this.store),getSnapshots:this.store.getFieldsSnapshot.bind(this.store),setPending:this.store.setFieldPending.bind(this.store),isPending:this.store.isFieldPending.bind(this.store),setTouched:this.store.setFieldTouched.bind(this.store),isTouched:this.store.isFieldTouched.bind(this.store),getError:this.validator.getFieldError.bind(this.validator),setError:this.validator.setFieldError.bind(this.validator),resetFields:this.store.resetFields.bind(this.store),reset:this.reset.bind(this),validateField:this.validateField.bind(this),validate:this.validate.bind(this)})),s(this,"validate",Ge(async()=>{const e=this.store.getPendingFields();if(e.length>0){const t=`存在正在操作中的字段: ${e.map(e=>e.field).join(", ")},请等待完成后再提交`;return console.warn(`[schemx] ${t}`),{ok:!1,error:{errors:e.map(({field:e,message:t})=>{const i=t.length?t:["字段正在处理中,请稍后重试"];return this.validator.setFieldError(e,i),{field:e,message:i}}),values:this.store.getFieldsSnapshot()}}}return await this.validator.validate(this.store.getFieldsValue())})),s(this,"submit",Ge(async()=>{var e,t,i,n;if(!(await this.waitForIdle()))return;const r=await this.validate();r.ok?await(null==(t=(e=this.callbacks).onFinish)?void 0:t.call(e,r.values)):null==(n=(i=this.callbacks).onFinishFailed)||n.call(i,r.error)})),s(this,"commitChildren",(e,t)=>{this.reconciler.reconcileChildren(e,t)&&this.viewRevision.bump()});const{schemas:n,initialValues:r={},modelValue:o,rendererRegistry:l,defaultRendererType:a,validatorRegistry:u,...c}=e;var d,h;this.callbacks={onValuesChange:e.onValuesChange,onFinish:e.onFinish,onFinishFailed:e.onFinishFailed,onFieldsChange:e.onFieldsChange},this.rendererRegistry=l??st(a),this.validatorRegistry=u??lt(),this.validator=Je(),this.store=function(e={}){return new Ht(e)}({initialValues:{...r,...o??{}}}),this.validatorRegistry.registerAll({required:Qe,selectRequired:Ye,uploadRequired:et}),this.lifecycleBus=jt(),this.scheduler=function(){const e=new Map(Kt.map(e=>[e,new Map])),t=new Set;let i=0,n=!1,r=null;const s=async()=>{if(!n)return r||(r=o().finally(()=>{r=null,d()}),r)},o=async()=>{var e,t;const i=l();for(const s of i)if(!n&&!(null==(e=s.scope)?void 0:e.disposed))try{const e=s.run();Zt(e)&&await a(e)}catch(r){null==(t=s.onError)||t.call(s,r)}},l=()=>{const t=[];for(const i of Kt){const n=e.get(i);n&&(t.push(...n.values()),n.clear())}return t},a=async e=>{i+=1;try{return await e}finally{i-=1,d()}},u=()=>!r&&0===i&&!c(),c=()=>Array.from(e.values()).some(e=>e.size>0),d=()=>{if(!u())return;const e=Array.from(t);t.clear(),e.forEach(e=>e(!0))};return{schedule:t=>{var i,r;n||(null==(i=t.scope)?void 0:i.disposed)||(null==(r=e.get(t.priority))||r.set(t.id,t),queueMicrotask(()=>{s()}))},flush:s,whenIdle:(e=1e4)=>u()?Promise.resolve(!0):new Promise(i=>{const n=globalThis.setTimeout(()=>{t.delete(i),i(!1)},e);t.add(e=>{globalThis.clearTimeout(n),i(e)})}),track:a,dispose:()=>{n=!0,e.forEach(e=>e.clear()),d()}}}(),this.viewRevision=function(){const e=O(0);return{revision:e,bump:()=>{e.value+=1}}}(),this.fieldRegistry=new At,this.context={defaultProps:ae(c,He),instance:this.getFormInstance(),formApi:this.getFormApi(),scheduler:this.scheduler,lifecycleBus:this.lifecycleBus,fieldRegistry:this.fieldRegistry,commitChildren:this.commitChildren},this.runtimeNodeManager=(d=this.context,new Wt(d)),this.reconciler=(h=this.runtimeNodeManager,new $t(h)),this.root=this.runtimeNodeManager.createRoot(),e.lifecycleHooks&&this.lifecycleBus.on(e.lifecycleHooks),this.schemas=ut(n)?n:at(n??[]),this.applySchemas(this.schemas.peek());const f=this.schemas.subscribe(e=>{this.applySchemas(e)});if(this.scope.add(f),(null==(t=this.callbacks)?void 0:t.onValuesChange)||(null==(i=this.callbacks)?void 0:i.onFieldsChange)){let e=this.store.getFieldsSnapshot();const t=ge(()=>{var t,i,n,r;const s=this.store.getFieldsValue(),o=this.store.getFieldsSnapshot(),l=Ke(o,e),a=We(l);a.length>0&&(null==(i=(t=this.callbacks).onValuesChange)||i.call(t,l,o),null==(r=(n=this.callbacks).onFieldsChange)||r.call(n,a,We(s))),e=o});this.scope.add(t)}}register(e,t,i){const n=[],r=It(this.root,e),s=null==r?void 0:r.descriptor.schema;this.validator.unregister(e);const o={...s,rules:t};n.push(...this.validatorRegistry.resolveValidatorsBySchema(o)),n.length>0&&this.validator.register(e,n,i)}async validateField(e){return await this.validator.validateField(e,this.store.getFieldsValue())}reset(){this.store.reset(),this.validator.reset()}effect(e){const t=ge(e),i=this.scope.add(t);return()=>{i.dispose()}}batch(e){me(e)}setSchemas(e){this.disposed||this.schemas.set(e)}updateSchemas(e){this.disposed||this.schemas.update(e)}updateDefaultProps(e){this.disposed||(Object.assign(this.context.defaultProps,ae(e,He)),this.applySchemas(this.schemas.peek()))}applySchemas(e){if(this.disposed)return;const t=this.viewRevision.revision.value,i=ht([...e],this.context.defaultProps);this.commitChildren(this.root,i),this.viewRevision.revision.value===t&&this.viewRevision.bump()}destroy(){this.disposed||(this.disposed=!0,this.scope.dispose(),this.runtimeNodeManager.disposeTree(this.root),this.scheduler.dispose(),this.store.destroy())}getViewSchemas(){return Xt(this.root)}subscribeViewSchemas(e){return ni(this.root,this.viewRevision,e)}waitForIdle(e=1e4){return this.scheduler.whenIdle(e)}}function si(e={}){return new ri(e).getFormInstance()}function oi(e,t){return{getValue:()=>e.getFieldValue(t),setValue:i=>{e.setFieldValue(t,i)},getInitialValue:()=>e.getInitialValue(t),setInitialValue:i=>{const n={};ze(n,t,i),e.setInitialValues(n)},getValues:()=>e.getFieldsValue(),getSnapshot:()=>e.getFieldsSnapshot(),validate:()=>e.validateField(t),getError:()=>e.getFieldError(t),setError:i=>{e.setFieldError(t,i)},clearError:()=>{e.setFieldError(t,[])},registerRules:(i,n)=>{e.registerRules(t,i,n)},unregisterRules:()=>{e.unregisterRules(t)},isTouched:()=>e.isFieldTouched(t)??!1,reset:()=>{e.resetFields([t])},setPending:(i,n)=>{e.setFieldPending(t,i,n)},isPending:()=>e.isFieldPending(t)??!1,effect:t=>e.effect(t)}}function li(e){let t,i=!1;const n=ge(()=>{null==t||t(),t=void 0;const i=e();"function"==typeof i&&(t=i)});return()=>{i||(i=!0,n(),null==t||t(),t=void 0)}}const ai=(e,t,i,n)=>{let r=e.getFieldSnapshot(t),s=!0;return e.effect(()=>{const o=e.getFieldValue(t),l=e.getFieldsSnapshot();if(s)return s=!1,n.immediate&&i({value:o,prevValue:void 0},l),void(r=o);n.inequality&&he(o,r)||(i({value:o,prevValue:r},l),r=o)})},ui=(e,t,i,n)=>{let r=e.getFieldsSnapshot(t),s=!0;return e.effect(()=>{const o=e.getFieldsValue(t),l=e.getFieldsSnapshot();if(s)return s=!1,n.immediate&&i({changedPaths:t,changedValues:o,prevValues:{}},l),void(r={...o});if(n.inequality&&he(o,r))return;const a=Ke(o,r),u=We(a);i({changedPaths:u,changedValues:a,prevValues:r},l),r={...o}})},ci=(e,t,i)=>{let n=!0,r=e.getFieldsSnapshot();return e.effect(()=>{const s=e.getFieldsSnapshot();if(n)return n=!1,i.immediate&&t({changedPaths:[],changedValues:s,prevValues:{}},s),void(r={...s});if(i.inequality&&he(s,r))return;const o=Ke(s,r),l=We(o);t({changedPaths:l,changedValues:o,prevValues:r},s),r={...s}})};function di(e,t,i,n){return"function"==typeof t?ci(e,t,i||{}):"string"==typeof t||"number"==typeof t?ai(e,t,i,n||{}):ui(e,t,i,n||{})}const hi=st("input"),fi=lt(),pi=Symbol("SCHEMX_INSTANCE");function vi(e){const{...i}=e,n={...i,rendererRegistry:i.rendererRegistry??hi,validatorRegistry:i.validatorRegistry??fi},r=t.computed(()=>si(n));return t.provide(pi,r.value),t.onUnmounted(()=>{r.value.destroy()}),r.value}function yi(){const e=t.inject(pi);if(!e)throw new Error("useFormInstance must be used within a Form");return e}const gi=new WeakMap;const mi=e=>{const i=yi(),n=e;let r=gi.get(i);r||(r=new Map,gi.set(i,r));const s=r.get(n);let o;if(s)s.refCount++,o=s;else{const{result:s,dispose:l}=function(e,i){const n=oi(e,i),r=t.shallowRef(n.getValue()),s=t.shallowRef(n.getError()),o=t.shallowRef(n.isPending()),l=n.effect(()=>{r.value=n.getValue(),s.value=n.getError(),o.value=n.isPending()}),a=t.computed(()=>s.value),u=t.computed(()=>(r.value,n.isTouched())),c=t.computed(()=>o.value);return{result:{value:r,error:a,dirty:u,pending:c,...n,getValue:()=>r.value},dispose:l}}(i,e);o={refCount:1,result:s,dispose:l},r.set(n,o)}return t.onUnmounted(()=>{--o.refCount<=0&&(o.dispose(),r.delete(n))}),o.result};function bi(e,i,n){const r=di(yi(),e,i,n);return t.onUnmounted(r),r}function Fi(e,t,i){return bi(e,t,i)}function wi(e){return e instanceof Error?e:new Error(String(e))}const Si=(e,i)=>{var n;const r=yi(),s=t.ref([]),o=t.ref(!1),l=t.ref(void 0);let a=0;const u=async()=>{try{const t=r.getFieldsValue();if("function"==typeof e.shouldFetch&&!e.shouldFetch(t))return s.value=[],void(o.value=!1);o.value=!0,l.value=void 0;const i=++a,n=await(async t=>{const i=e.retryCount??0,n=e.retryInterval??1e3;let s=new Error("Unknown error");for(let l=0;l<=i;l++)try{return await e.api(t,r)}catch(o){s=wi(o),l<i&&await new Promise(e=>setTimeout(e,n))}throw s})(t);if(i!==a)return;const u=await(async t=>"function"==typeof(null==e?void 0:e.formatter)?await e.formatter(t,r):t)(n);if(i!==a)return;s.value=u,l.value=void 0,"function"==typeof e.onSuccess&&e.onSuccess(u,r),o.value=!1}catch(t){const i=wi(t);l.value=i,s.value=[],o.value=!1,"function"==typeof e.onError&&e.onError(i,r)}};(null==(n=e.dependsOn)?void 0:n.length)&&Fi(e.dependsOn,(t,n)=>{"function"==typeof e.onDepsChange&&e.onDepsChange(n,r),e.resetOnDepsChange&&i&&r.setFieldValue(i,void 0),u()});const c=e.immediate??!0;return t.onMounted(()=>{c&&u()}),{list:s,loading:o,error:l,loadDict:u,refresh:()=>u(),mutate:e=>{s.value=e}}},Vi=Symbol("FormContext");function ki(){const e=t.inject(Vi);if(!e)throw new Error("useContext must be used within a Form");return e}function Ai(e){const i=t.shallowRef({});return t.watchEffect(()=>{const t=e();((e,t)=>{const i=Object.keys(e),n=Object.keys(t);return i.length===n.length&&i.every(i=>e[i]===t[i])})(i.value,t)||(i.value=t)}),i}const Ri=Symbol("schemx:field");function ji(e){return void 0!==e&&(!Array.isArray(e)||0!==e.length)}function Oi(e,t){if(!t)return!1;return(Array.isArray(t)?t:[t]).some(t=>function(e){return{onBlur:"blur",onChange:"change",onSubmit:"submit",blur:"blur",change:"change",submit:"submit"}[e]??"submit"}(t)===e)}const xi=e=>/[A-Z]/.test(e),Ti=e=>e.includes("-"),Ci=e=>e.replace(/([A-Z])/g,"-$1").toLowerCase(),Pi=e=>e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase()),Ei=(e,t)=>{if(e[t])return e[t];const i=xi(t)?Ci(t):Ti(t)?Pi(t):void 0;return i&&e[i]?e[i]:void 0},Bi=(e,t)=>{const i={},n=(r=String(e),(Ti(r)?Pi(r):r)+":");var r;const s=(e=>xi(e)?Ci(e):e)(String(e))+":";for(const[o,l]of Object.entries(t))o.startsWith(n)?i[o.slice(n.length)]=l:o.startsWith(s)&&s!==n&&(i[o.slice(s.length)]=l);return i},Ni=t.defineComponent((e,{slots:n})=>{const r=t.ref(Boolean(e.schema.defaultCollapsed)),s=()=>{e.schema.collapsible&&(r.value=!r.value)};return()=>{const o=e.schema,l=Boolean(o.collapsible);return t.createVNode("div",{class:i("schemx-group",{"schemx-group--collapsed":r.value},o.class),"data-key":o.key},[o.label&&t.createVNode("div",{role:l?"button":void 0,tabindex:l?0:void 0,class:i("schemx-group__header",{"schemx-group__header--clickable":l}),onClick:s,onKeydown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),s())}},[t.createVNode("span",{class:"schemx-group__title"},[o.label]),l&&t.createVNode("span",{class:i("schemx-group__arrow",{"schemx-group__arrow--down":!r.value})},null)]),!r.value&&t.createVNode("div",{class:"schemx-group__body"},[o.children.map(e=>t.createVNode(Mi,{key:e.key,schema:e},n))])])}},{name:"SchemxGroup",props:{schema:{type:Object,required:!0}}}),Mi=t.defineComponent((e,{slots:r})=>{const s=t.toRef(e,"schema");if(Ii(s.value))return()=>t.h(Ni,{schema:s.value},r);const o=yi(),l=ki(),a=()=>s.value,u=mi(a().name);!function(e){t.provide(Ri,e)}(u);const c=t.computed(()=>{return e=a().validationTrigger,t=l.validationTrigger,i="onChange",ji(e)?e:ji(t)?t:i;var e,t,i}),d=t.computed(()=>{const e=a().visible&&!a().readonly&&!a().disabled,t=a().rules,i=Array.isArray(t)?(null==t?void 0:t.length)>0:!!a().rules;return e&&i}),h=e=>{var t,i;u.setValue(e),null==(i=null==(t=a().componentProps)?void 0:t.onChange)||i.call(t,e),d.value&&Oi("change",c.value)&&u.validate()},f=()=>{d.value&&Oi("blur",c.value)&&u.validate()},p=t.computed(()=>({...n.omit(a(),["componentProps"]),name:a().name,componentType:a().componentType,class:i("schemx-item",a().class),required:a().required,readonly:a().readonly,disabled:a().disabled,visible:a().visible,placeholder:a().placeholder,validationTrigger:c.value})),v=Ai(()=>({...a().componentProps,formItemProps:p.value,value:u.getValue(),readonly:a().readonly,disabled:a().disabled,placeholder:a().placeholder,onChange:h,onBlur:f,"onUpdate:value":e=>u.setValue(e)})),y=()=>{const e=Ei(r,`${a().name}Label`);if(e)return e(p.value);const i=a().labelAlign||l.labelAlign,n=a().labelWidth||l.labelWidth,s=a().colon??l.colon;return t.createVNode("label",{class:"schemx-item__label",style:{width:n,textAlign:i}},[!a().required||a().disabled||a().readonly?null:t.createVNode("span",{class:"schemx-item__required"},[t.createTextVNode("*")]),t.createVNode("span",{class:"schemx-item__label-text"},[a().label,s?":":""])])},g=()=>{const e=o.getRenderer(a().componentType);if(!e)throw new Error(`[schemx] Can not find component renderer of "${a().componentType}".`);const i=Bi($i(a().name),r),n=t.h(e,v.value,i),s=Ei(r,`${a().name}Content`);return s?s({...p.value,columnElement:n}):t.createVNode("div",{class:"schemx-item__control"},[n])},m=()=>{const e=Ei(r,`${a().name}Error`);return e?e({...p.value,errors:u.error.value}):Array.isArray(u.error.value)&&0!==u.error.value.length?t.createVNode("div",{class:"schemx-item__error"},[u.error.value[0]]):null};return()=>{if(!a().visible)return null;const e=Ei(r,$i(a().name));if(e)return e(p.value);const n=a().labelPosition||l.labelPosition;return t.createVNode("div",{class:i("schemx-item-wrapper")},[t.createVNode("div",{class:i("schemx-item",`schemx-item--label-${n}`,a().class,{"is-readonly":a().readonly,"is-disabled":a().disabled}),style:{...a().style??{}}},[y(),t.createVNode("div",{class:"schemx-item__content"},[g(),m()])])])}},{name:"SchemxItem",props:{schema:{type:Object,required:!0}}}),Ii=e=>"group"===e.componentType,$i=e=>Array.isArray(e)?e.map(e=>String(e)).join("."):String(e);function Di(e){return!(!e||"group"===e.componentType||"visible"in e&&!1===e.visible)}function Ui(e,t,i){for(let n=t+i;n>=0&&n<e.length;n+=i)if(Di(e[n]))return e[n]}const _i=t.defineComponent({name:"SchemxForm",__name:"form",props:{class:{default:""},style:{default:()=>({})},required:{type:Boolean},readonly:{type:Boolean},disabled:{type:Boolean},visible:{type:Boolean},labelIcon:{},labelAlign:{},labelPosition:{},labelWidth:{},contentAlign:{},validationTrigger:{},colon:{type:Boolean},modelValue:{default:()=>({})},initialValues:{default:()=>({})},schemas:{default:()=>[]},form:{default:void 0},rendererRegistry:{default:void 0},defaultRendererType:{},validatorRegistry:{default:void 0},onFinish:{type:Function,default:void 0},onFinishFailed:{type:Function,default:void 0},onValuesChange:{type:Function,default:void 0},onFieldsChange:{type:Function,default:void 0}},emits:["update:modelValue"],setup(e,{expose:i,emit:r}){const s=e,o=r;(e=>{t.provide(Vi,e)})(n.omit(s,["form","modelValue","rendererRegistry","defaultRendererType","validatorRegistry","onFinish","onFinishFailed","onValuesChange","onFieldsChange"]));const l=s.form?s.form:vi({schemas:s.schemas,initialValues:s.initialValues,rendererRegistry:s.rendererRegistry,defaultRendererType:s.defaultRendererType,validatorRegistry:s.validatorRegistry,readonly:s.readonly,disabled:s.disabled,onFinish:async e=>{var t;null==(t=s.onFinish)||t.call(s,e)},onFinishFailed:async e=>{var t;null==(t=s.onFinishFailed)||t.call(s,e)},onValuesChange:(e,t)=>{var i;o("update:modelValue",t),null==(i=s.onValuesChange)||i.call(s,e,t)},onFieldsChange:(e,t)=>{var i;null==(i=s.onFieldsChange)||i.call(s,e,t)}});t.watch(()=>s.schemas,e=>{l.setSchemas(e)},{deep:!1,immediate:!!s.form});const a=function(e){const i=t.shallowRef(e.getViewSchemas()),n=e.subscribeViewSchemas(e=>{i.value=e});return t.onScopeDispose(n),i}(l),u=e=>{const{isFirst:t,isLast:i}=function(e,t){const i=e.findIndex(e=>e.key===t);return-1===i?{found:!1,isFirst:!1,isLast:!1}:Di(e[i])?{found:!0,isFirst:!Ui(e,i,-1),isLast:!Ui(e,i,1)}:{found:!0,isFirst:!1,isLast:!1}}(a.value,e.key);return{"schemx-item-wrapper--first":t,"schemx-item-wrapper--last":i}};return t.watchEffect(()=>{l.updateDefaultProps(s)}),i({...l}),(e,i)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["schemx",s.class])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(a),i=>(t.openBlock(),t.createBlock(t.unref(Mi),{key:i.key,schema:i,class:t.normalizeClass(u(i))},t.createSlots({_:2},[t.renderList(e.$slots,(i,n)=>({name:n,fn:t.withCtx(i=>[t.renderSlot(e.$slots,n,t.mergeProps({ref_for:!0},i??{}))])}))]),1032,["schema","class"]))),128))],2))}});const qi=(zi=_i,Wi={install(e,t){e.component("SchemxForm",_i)},FormItem:Mi},Object.assign(zi,Wi));var zi,Wi;e.FormGroup=Ni,e.FormItem=Mi,e.WithRemoteOptions=function(e){return t.defineComponent({name:`WithRemoteOptions(${e.name||"Anonymous"})`,inheritAttrs:!1,props:{dict:{type:Object,default:void 0},fieldName:{type:[String,Array],default:void 0}},setup(i,{attrs:n,slots:r}){const s=i.dict?Si(i.dict,i.fieldName):null,o=t.computed(()=>({...n,dict:i.dict,options:i.dict?null==s?void 0:s.list.value:n.options,loading:i.dict?null==s?void 0:s.loading.value:n.loading}));return()=>t.h(e,o.value,r)}})},e.collectObjectPathsByLeaf=We,e.createEffect=li,e.createField=oi,e.createForm=si,e.createFormInstance=si,e.createLifecycle=Ot,e.createLifecycleBus=jt,e.createRendererRegistry=st,e.createSchemas=at,e.createValidator=Je,e.createValidatorsRegistry=lt,e.createWatch=di,e.createWatchAll=ci,e.createWatchField=ai,e.createWatchFields=ui,e.default=qi,e.getByPath=qe,e.isBaseResolvedSchema=function(e){return!Ve(e)&&!function(e){return"dependency"===e.componentType}(e)},e.isBaseSchema=Fe,e.isDependencySchema=Se,e.isGroupResolvedSchema=Ve,e.isGroupSchema=we,e.isSchemxSchemas=ut,e.rendererRegistry=hi,e.schemxForm=qi,e.setByPath=ze,e.useContext=ki,e.useDictionary=Si,e.useEffect=function(e){const i=li(e);return t.onUnmounted(i),i},e.useField=mi,e.useFieldContext=function(){const e=t.inject(Ri);if(!e)throw new Error("[schemx] useFieldContext() must be used inside a FormItem tree");return e},e.useForm=vi,e.useWatch=bi,e.useWatchAll=function(e,t){return bi(e,t)},e.useWatchField=function(e,t,i){return bi(e,t,i)},e.useWatchFields=Fi,e.validatorRegistry=fi,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
2
- //# sourceMappingURL=index.umd.js.map