@schemx/vue 1.0.0 → 1.1.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 (121) hide show
  1. package/README.md +509 -324
  2. package/dist/analyze.html +1 -1
  3. package/dist/bridge/fieldBridge.d.ts +12 -0
  4. package/dist/bridge/fieldBridge.d.ts.map +1 -1
  5. package/dist/bridge/formBridge.d.ts +35 -2
  6. package/dist/bridge/formBridge.d.ts.map +1 -1
  7. package/dist/bridge/formInstance.d.ts +24 -4
  8. package/dist/bridge/formInstance.d.ts.map +1 -1
  9. package/dist/bridge/helpers.d.ts +8 -0
  10. package/dist/bridge/helpers.d.ts.map +1 -1
  11. package/dist/bridge/index.d.ts +2 -3
  12. package/dist/bridge/index.d.ts.map +1 -1
  13. package/dist/bridge/types.d.ts +97 -9
  14. package/dist/bridge/types.d.ts.map +1 -1
  15. package/dist/bridge/viewSchemaBridge.d.ts +14 -1
  16. package/dist/bridge/viewSchemaBridge.d.ts.map +1 -1
  17. package/dist/components/Button/index.d.ts.map +1 -1
  18. package/dist/components/Button/index.vue.d.ts +12 -0
  19. package/dist/components/Button/index.vue.d.ts.map +1 -1
  20. package/dist/components/Button/types.d.ts +15 -5
  21. package/dist/components/Button/types.d.ts.map +1 -1
  22. package/dist/components/Col/index.d.ts +27 -5
  23. package/dist/components/Col/index.d.ts.map +1 -1
  24. package/dist/components/ConfigProvider/index.d.ts +40 -7
  25. package/dist/components/ConfigProvider/index.d.ts.map +1 -1
  26. package/dist/components/Dynamic/index.d.ts +27 -17
  27. package/dist/components/Dynamic/index.d.ts.map +1 -1
  28. package/dist/components/Field/index.d.ts +13 -2
  29. package/dist/components/Field/index.d.ts.map +1 -1
  30. package/dist/components/Field/slot.d.ts +34 -10
  31. package/dist/components/Field/slot.d.ts.map +1 -1
  32. package/dist/components/Group/index.d.ts +37 -8
  33. package/dist/components/Group/index.d.ts.map +1 -1
  34. package/dist/components/Group/slot.d.ts +36 -9
  35. package/dist/components/Group/slot.d.ts.map +1 -1
  36. package/dist/components/Icon/index.d.ts +29 -0
  37. package/dist/components/Icon/index.d.ts.map +1 -0
  38. package/dist/components/Row/index.d.ts +30 -0
  39. package/dist/components/Row/index.d.ts.map +1 -0
  40. package/dist/components/SchemaList/index.d.ts +22 -12
  41. package/dist/components/SchemaList/index.d.ts.map +1 -1
  42. package/dist/components/Wrapper/index.vue.d.ts +6 -0
  43. package/dist/components/Wrapper/index.vue.d.ts.map +1 -1
  44. package/dist/config/defaultVueSchemaConfig.d.ts +62 -0
  45. package/dist/config/defaultVueSchemaConfig.d.ts.map +1 -0
  46. package/dist/config/index.d.ts +12 -2
  47. package/dist/config/index.d.ts.map +1 -1
  48. package/dist/config/vueConfig.d.ts +14 -3
  49. package/dist/config/vueConfig.d.ts.map +1 -1
  50. package/dist/context/configProviderContext.d.ts +66 -0
  51. package/dist/context/configProviderContext.d.ts.map +1 -0
  52. package/dist/context/fieldContext.d.ts +11 -0
  53. package/dist/context/fieldContext.d.ts.map +1 -0
  54. package/dist/context/formContext.d.ts +167 -0
  55. package/dist/context/formContext.d.ts.map +1 -0
  56. package/dist/context/index.d.ts +18 -0
  57. package/dist/context/index.d.ts.map +1 -0
  58. package/dist/form.d.ts +10 -2
  59. package/dist/form.d.ts.map +1 -1
  60. package/dist/hocs/withRemoteOptions.d.ts +6 -2
  61. package/dist/hocs/withRemoteOptions.d.ts.map +1 -1
  62. package/dist/hooks/index.d.ts +23 -15
  63. package/dist/hooks/index.d.ts.map +1 -1
  64. package/dist/hooks/useDictionary.d.ts +32 -9
  65. package/dist/hooks/useDictionary.d.ts.map +1 -1
  66. package/dist/hooks/useField.d.ts +7 -0
  67. package/dist/hooks/useField.d.ts.map +1 -1
  68. package/dist/hooks/useForm.d.ts +4 -16
  69. package/dist/hooks/useForm.d.ts.map +1 -1
  70. package/dist/hooks/useFormSelector.d.ts.map +1 -1
  71. package/dist/hooks/useViewSchemas.d.ts +26 -2
  72. package/dist/hooks/useViewSchemas.d.ts.map +1 -1
  73. package/dist/index.cjs +1 -1
  74. package/dist/index.cjs.map +1 -1
  75. package/dist/index.d.ts +35 -13
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.mjs +684 -357
  78. package/dist/index.mjs.map +1 -1
  79. package/dist/style.css +1 -1
  80. package/dist/types/definition.d.ts +248 -0
  81. package/dist/types/definition.d.ts.map +1 -0
  82. package/dist/types/dictionary.d.ts +9 -3
  83. package/dist/types/dictionary.d.ts.map +1 -1
  84. package/dist/types/field.d.ts +93 -21
  85. package/dist/types/field.d.ts.map +1 -1
  86. package/dist/types/form.d.ts +82 -6
  87. package/dist/types/form.d.ts.map +1 -1
  88. package/dist/types/icon.d.ts +15 -0
  89. package/dist/types/icon.d.ts.map +1 -0
  90. package/dist/types/index.d.ts +2 -15
  91. package/dist/types/index.d.ts.map +1 -1
  92. package/dist/types/layout.d.ts +89 -13
  93. package/dist/types/layout.d.ts.map +1 -1
  94. package/dist/utils/diff.d.ts +3 -6
  95. package/dist/utils/diff.d.ts.map +1 -1
  96. package/dist/utils/dynamic.d.ts +6 -2
  97. package/dist/utils/dynamic.d.ts.map +1 -1
  98. package/dist/utils/equal.d.ts +2 -2
  99. package/dist/utils/helpers.d.ts +26 -2
  100. package/dist/utils/helpers.d.ts.map +1 -1
  101. package/dist/utils/index.d.ts +19 -4
  102. package/dist/utils/index.d.ts.map +1 -1
  103. package/dist/utils/layout.d.ts +17 -0
  104. package/dist/utils/layout.d.ts.map +1 -0
  105. package/dist/utils/rendererProvider.d.ts +10 -3
  106. package/dist/utils/rendererProvider.d.ts.map +1 -1
  107. package/dist/utils/validation.d.ts +6 -2
  108. package/dist/utils/validation.d.ts.map +1 -1
  109. package/package.json +2 -2
  110. package/dist/config/appConfig.d.ts +0 -19
  111. package/dist/config/appConfig.d.ts.map +0 -1
  112. package/dist/config/providerConfig.d.ts +0 -22
  113. package/dist/config/providerConfig.d.ts.map +0 -1
  114. package/dist/hooks/provideFieldContext.d.ts +0 -40
  115. package/dist/hooks/provideFieldContext.d.ts.map +0 -1
  116. package/dist/hooks/provideFormConfigContext.d.ts +0 -71
  117. package/dist/hooks/provideFormConfigContext.d.ts.map +0 -1
  118. package/dist/hooks/provideFormContext.d.ts +0 -26
  119. package/dist/hooks/provideFormContext.d.ts.map +0 -1
  120. package/dist/utils/colProvider.d.ts +0 -20
  121. package/dist/utils/colProvider.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SchemaList/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAcjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,KAAK,EAAyB,gBAAgB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAEnF,wBAAwB;AACxB,MAAM,WAAW,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACpE,0BAA0B;IAC1B,OAAO,EAAE,SAAS,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAA;IAC7C,uCAAuC;IACvC,WAAW,EAAE,SAAS,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAA;IACjD,sCAAsC;IACtC,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,UAAU,CAAA;CACvE;AAED,QAAA,MAAM,UAAU;;cAMK,QAAQ,CAAC,SAAS,gBAAgB,EAAE,CAAC;;;;cAIrC,QAAQ,CAAC,SAAS,gBAAgB,EAAE,CAAC;;;;cAIxB,QAAQ,CAAC,kBAAkB,CAAC;;;;;cAKtC,QAAQ,CAAC,CAAC,MAAM,EAAE,gBAAgB,KAAK,UAAU,CAAC;;;;UAkF3D,UAAU;;cA/FJ,QAAQ,CAAC,SAAS,gBAAgB,EAAE,CAAC;;;;cAIrC,QAAQ,CAAC,SAAS,gBAAgB,EAAE,CAAC;;;;cAIxB,QAAQ,CAAC,kBAAkB,CAAC;;;;;cAKtC,QAAQ,CAAC,CAAC,MAAM,EAAE,gBAAgB,KAAK,UAAU,CAAC;;;;;;iCAAhC,gBAAgB,KAAK,UAAU;4EA4FvE,CAAA;AAEF,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SchemaList/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAUjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAyB,gBAAgB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAEnF,OAAO,aAAa,CAAA;AAEpB;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACpE;;OAEG;IACH,OAAO,EAAE,SAAS,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAA;IAC7C;;OAEG;IACH,WAAW,EAAE,SAAS,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAA;IACjD;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,UAAU,CAAA;CACvE;AAED,QAAA,MAAM,UAAU;;cAMK,QAAQ,CAAC,SAAS,gBAAgB,EAAE,CAAC;;;;cAIrC,QAAQ,CAAC,SAAS,gBAAgB,EAAE,CAAC;;;;cAIpC,QAAQ,CAAC,eAAe,CAAC;;;;;cAKvB,QAAQ,CAAC,CAAC,MAAM,EAAE,gBAAgB,KAAK,UAAU,CAAC;;;;UAqF3D,UAAU;;cAlGJ,QAAQ,CAAC,SAAS,gBAAgB,EAAE,CAAC;;;;cAIrC,QAAQ,CAAC,SAAS,gBAAgB,EAAE,CAAC;;;;cAIpC,QAAQ,CAAC,eAAe,CAAC;;;;;cAKvB,QAAQ,CAAC,CAAC,MAAM,EAAE,gBAAgB,KAAK,UAAU,CAAC;;;;;;iCAAhC,gBAAgB,KAAK,UAAU;4EA6FvE,CAAA;AAEF,eAAe,UAAU,CAAA"}
@@ -1,5 +1,11 @@
1
1
  interface Props {
2
+ /**
3
+ * 是否以只读插槽替换默认 Renderer 内容。
4
+ */
2
5
  readonly?: boolean;
6
+ /**
7
+ * 是否应用禁用状态样式。
8
+ */
3
9
  disabled?: boolean;
4
10
  }
5
11
  declare var __VLS_1: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Wrapper/index.vue"],"names":[],"mappings":"AAgGE,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAmFH,QAAA,IAAI,OAAO;;;CAAU,EAAE,OAAO;;;CAAW,CAAE;AAC3C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;cA7FD,OAAO;cACP,OAAO;6EA+FpB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"index.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Wrapper/index.vue"],"names":[],"mappings":"AAgHE,UAAU,KAAK;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AA6FH,QAAA,IAAI,OAAO;;;CAAU,EAAE,OAAO;;;CAAW,CAAE;AAC3C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;cA1GD,OAAO;cAIP,OAAO;6EAyGpB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Vue 适配层的字段展示默认值。
3
+ *
4
+ * Vue 层拥有字段展示与布局默认值;Core 只处理框架无关的字段状态和校验默认值。
5
+ */
6
+ export declare const defaultVueSchemaConfig: Readonly<{
7
+ /**
8
+ * 表单级标签图标默认值。
9
+ */
10
+ readonly labelIcon: "";
11
+ /**
12
+ * 表单级标签对齐默认值。
13
+ */
14
+ readonly labelAlign: "right";
15
+ /**
16
+ * 表单级标签位置默认值。
17
+ */
18
+ readonly labelPosition: "left";
19
+ /**
20
+ * 表单级标签宽度默认值。
21
+ */
22
+ readonly labelWidth: "auto";
23
+ /**
24
+ * 表单级内容对齐默认值。
25
+ */
26
+ readonly contentAlign: "left";
27
+ /**
28
+ * 表单级校验错误对齐默认值。
29
+ */
30
+ readonly errorAlign: "left";
31
+ /**
32
+ * 表单级标签冒号默认值。
33
+ */
34
+ readonly colon: true;
35
+ /**
36
+ * 表单级必填标记默认值。
37
+ */
38
+ readonly showRequiredMark: boolean | undefined;
39
+ /**
40
+ * 字段默认 Col 配置。
41
+ */
42
+ readonly col: {
43
+ readonly span: 24;
44
+ };
45
+ /**
46
+ * 旧版字段默认布局配置。
47
+ *
48
+ * @deprecated 请改用 {@link import("../types/layout").SchemxColConfig} 与 `col` 字段。
49
+ */
50
+ readonly layout: {
51
+ readonly span: 24;
52
+ };
53
+ /**
54
+ * 是否在 field schema 后显示底部边框。
55
+ */
56
+ readonly bordered: true;
57
+ }>;
58
+ /**
59
+ * Vue 展示默认配置的键集合。
60
+ */
61
+ export declare const defaultVueSchemaConfigKeys: (keyof typeof defaultVueSchemaConfig)[];
62
+ //# sourceMappingURL=defaultVueSchemaConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultVueSchemaConfig.d.ts","sourceRoot":"","sources":["../../src/config/defaultVueSchemaConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;IACjC;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;+BAC4B,OAAO,GAAG,SAAS;IAElD;;OAEG;;;;IAGH;;;;OAIG;;;;IAGH;;OAEG;;EAEM,CAAA;AAEX;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAElC,CAAC,MAAM,OAAO,sBAAsB,CAAC,EAAE,CAAA"}
@@ -1,4 +1,14 @@
1
- export { provideSchemxAppConfig, getSchemxAppConfig } from './appConfig';
2
- export { provideSchemxConfigProvider, getSchemxConfigProvider, getSchemxConfigProviderRef, } from './providerConfig';
1
+ /**
2
+ * Vue 配置入口。
3
+ *
4
+ * @module config
5
+ */
6
+ /**
7
+ * Vue Form 配置合并。
8
+ */
3
9
  export { mergeVueSchemxConfig } from './vueConfig';
10
+ /**
11
+ * Vue 字段展示默认配置。
12
+ */
13
+ export { defaultVueSchemaConfig, defaultVueSchemaConfigKeys, } from './defaultVueSchemaConfig';
4
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD;;GAEG;AACH,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAA"}
@@ -1,12 +1,23 @@
1
1
  import { SchemxConfig, Values } from '@schemx/core';
2
2
  /**
3
- * Vue 适配层优先级合并一个 Form 的显式配置。
3
+ * 按优先级合并一个 Form 的显式配置、Provider/App 配置和 Core 全局配置。
4
4
  *
5
- * Core 模块级配置和内置默认值由后续 createForm() 继续处理。
5
+ * Core 内置默认值由后续 `createForm()` 补齐。
6
6
  *
7
+ * @typeParam TValues - 用于关联 Renderer Props 的表单值类型。
7
8
  * @param localConfig - 当前 Form 或 useForm() 的显式配置。
8
9
  * @param fallbackConfig - Vue 层更低优先级的回退配置。
9
- * @returns 已合并 Provider、App Vue 默认 Registry 的配置。
10
+ * @returns 已合并 Provider、App、Core 全局配置和 Vue 默认 Registry 的配置。
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * setup() {
15
+ * const config = mergeVueSchemxConfig({
16
+ * schemaConfig: { readonly: true },
17
+ * })
18
+ * return { config }
19
+ * }
20
+ * ```
10
21
  */
11
22
  export declare function mergeVueSchemxConfig<TValues extends Values = Values>(localConfig: SchemxConfig<TValues>, fallbackConfig?: SchemxConfig<TValues>): SchemxConfig<TValues>;
12
23
  //# sourceMappingURL=vueConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vueConfig.d.ts","sourceRoot":"","sources":["../../src/config/vueConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAExD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAClE,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,EAClC,cAAc,GAAE,YAAY,CAAC,OAAO,CAAM,GACzC,YAAY,CAAC,OAAO,CAAC,CAavB"}
1
+ {"version":3,"file":"vueConfig.d.ts","sourceRoot":"","sources":["../../src/config/vueConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAClE,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,EAClC,cAAc,GAAE,YAAY,CAAC,OAAO,CAAM,GACzC,YAAY,CAAC,OAAO,CAAC,CAevB"}
@@ -0,0 +1,66 @@
1
+ import { App, ComputedRef } from 'vue';
2
+ import { SchemxConfig } from '@schemx/core';
3
+ /**
4
+ * 将安装配置作为当前 Vue App 的根配置上下文。
5
+ *
6
+ * `schemaConfig`、`rendererProps` 和 adapter 列表会复制并冻结受管层级。
7
+ * 扩展字段与 Registry 实例保留原引用。
8
+ *
9
+ * @param app - 要提供配置的 Vue App。
10
+ * @param config - 该 App 的默认 Schemx 配置。
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const app = createApp(App)
15
+ * provideSchemxAppConfig(app, { schemaConfig: { readonly: true } })
16
+ * app.mount("#app")
17
+ * ```
18
+ */
19
+ export declare function provideSchemxAppConfig(app: App, config?: SchemxConfig): void;
20
+ /**
21
+ * 创建并注入合并后的组件树级配置上下文。
22
+ *
23
+ * 子级提供的配置优先于父级;省略的配置项沿用最近祖先的值。
24
+ *
25
+ * @param config - 当前 ConfigProvider 的响应式配置。
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * setup() {
30
+ * const config = computed(() => ({ schemaConfig: { readonly: true } }))
31
+ * createConfigProviderContext(config)
32
+ * }
33
+ * ```
34
+ */
35
+ export declare function createConfigProviderContext(config: ComputedRef<SchemxConfig>): void;
36
+ /**
37
+ * 获取最近祖先 ConfigProvider 的当前配置。
38
+ *
39
+ * @returns 最近 Provider 的配置;没有 Provider 时返回 `undefined`。
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * setup() {
44
+ * const config = useConfigProviderContext()
45
+ * return { config }
46
+ * }
47
+ * ```
48
+ */
49
+ export declare function useConfigProviderContext(): SchemxConfig | undefined;
50
+ /**
51
+ * 获取最近祖先 ConfigProvider 的响应式配置引用。
52
+ *
53
+ * 只能在 Vue 组件实例中读取;其他调用位置返回 `undefined`。
54
+ *
55
+ * @returns 最近 Provider 的响应式配置;没有组件实例或 Provider 时返回 `undefined`。
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * setup() {
60
+ * const config = useConfigProviderContextRef()
61
+ * return { config }
62
+ * }
63
+ * ```
64
+ */
65
+ export declare function useConfigProviderContextRef(): ComputedRef<SchemxConfig> | undefined;
66
+ //# sourceMappingURL=configProviderContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configProviderContext.d.ts","sourceRoot":"","sources":["../../src/context/configProviderContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAgB,MAAM,KAAK,CAAA;AAIzD,OAAO,KAAK,EAAE,YAAY,EAA0B,MAAM,cAAc,CAAA;AA6CxE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAE,YAAiB,GAAG,IAAI,CAOhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,IAAI,CA0BnF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,IAAI,YAAY,GAAG,SAAS,CAEnE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,SAAS,CAMnF"}
@@ -0,0 +1,11 @@
1
+ import { FieldInstance } from '../types/field';
2
+ import { Values } from '@schemx/core';
3
+ /**
4
+ * 向后代组件提供当前字段实例。
5
+ */
6
+ export declare function createFieldContext<TValues extends Values = Values>(field: FieldInstance<TValues>): void;
7
+ /**
8
+ * 获取最近祖先组件提供的当前字段实例。
9
+ */
10
+ export declare function useFieldContext(): FieldInstance<Values>;
11
+ //# sourceMappingURL=fieldContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldContext.d.ts","sourceRoot":"","sources":["../../src/context/fieldContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAK1C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAChE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAC5B,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,aAAa,CAAC,MAAM,CAAC,CAWvD"}
@@ -0,0 +1,167 @@
1
+ import { InjectionKey } from 'vue';
2
+ import { VueFormRuntime } from '../bridge';
3
+ import { SchemxIconComponent } from '../types/icon';
4
+ import { SchemxColComponent, SchemxRowComponent } from '../types/layout';
5
+ import { SchemxInstance, SchemxSchemaConfig, Values } from '@schemx/core';
6
+ /**
7
+ * 表单实例的注入键。
8
+ *
9
+ * @internal
10
+ */
11
+ export declare const SCHEMX_FORM_INSTANCE_KEY: InjectionKey<SchemxInstance>;
12
+ /**
13
+ * 表单展示配置的注入键。
14
+ *
15
+ * @internal
16
+ */
17
+ export declare const SCHEMX_FORM_CONFIG_KEY: InjectionKey<FormConfigContextValue>;
18
+ /**
19
+ * 表单展示配置 Context。
20
+ */
21
+ export interface FormConfigContextValue {
22
+ /** 当前 Form 已解析的展示配置。 */
23
+ schemaConfig: Partial<SchemxSchemaConfig>;
24
+ /** 当前 Form 使用的 Icon Adapter。 */
25
+ iconComponent?: SchemxIconComponent;
26
+ /** 当前 Form 使用的 Row 组件。 */
27
+ rowComponent?: SchemxRowComponent;
28
+ /** 当前 Form 使用的 Col 组件。 */
29
+ colComponent?: SchemxColComponent;
30
+ }
31
+ /**
32
+ * 一个具体 Form 向后代暴露的运行上下文。
33
+ */
34
+ export interface FormContextValue<TValues extends Values = Values> extends FormConfigContextValue {
35
+ /** 当前 Form 的响应式实例。 */
36
+ form: SchemxInstance<TValues>;
37
+ }
38
+ /**
39
+ * 一次性向后代提供具体 Form 的实例与最终展示配置。
40
+ *
41
+ * @typeParam TValues - 表单值类型。
42
+ * @param context - Form 实例、展示配置和可选的布局组件与 Icon Adapter。
43
+ * @returns Vue Runtime 包装后的 Form 实例。
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * setup() {
48
+ * const form = useForm({ initialValues: { name: "" } })
49
+ * provideFormContext({ form, schemaConfig: {} })
50
+ * }
51
+ * ```
52
+ */
53
+ export declare function provideFormContext<TValues extends Values = Values>(context: FormContextValue<TValues>): SchemxInstance<TValues>;
54
+ /**
55
+ * 获取最近祖先提供的完整 Form Context。
56
+ *
57
+ * @typeParam TValues - 表单值类型。
58
+ * @returns 最近的 Form 实例和最终展示配置。
59
+ * @throws 当前组件树中没有 Form Context 时抛出错误。
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * setup() {
64
+ * const context = useFormContextValue()
65
+ * context.form.submit()
66
+ * }
67
+ * ```
68
+ */
69
+ export declare function useFormContextValue<TValues extends Values = Values>(): FormContextValue<TValues>;
70
+ /**
71
+ * 尝试读取当前 Form Context。
72
+ *
73
+ * 供可直接挂载的 Group、Dynamic 等底层组件在存在 Form 上下文时消费展示配置;
74
+ * 脱离 Form 时返回 `undefined`,由组件自身的兼容 Props 提供回退。
75
+ *
76
+ * @typeParam TValues - 表单值类型。
77
+ * @returns 最近的 Form Context;未在 Form 后代中调用时返回 `undefined`。
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * setup() {
82
+ * const context = useOptionalFormContextValue()
83
+ * return { rowComponent: context?.rowComponent }
84
+ * }
85
+ * ```
86
+ */
87
+ export declare function useOptionalFormContextValue<TValues extends Values = Values>(): FormContextValue<TValues> | undefined;
88
+ /**
89
+ * 向后代提供表单实例的兼容 API。
90
+ *
91
+ * @deprecated 请改用 {@link provideFormContext}({ form, schemaConfig })。
92
+ *
93
+ * @param instance - 要提供给后代组件的 SchemxInstance。
94
+ * @returns Vue Runtime 包装后的 Form 实例。
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * setup() {
99
+ * const form = useForm()
100
+ * provideFormContext({ form, schemaConfig: {} })
101
+ * }
102
+ * ```
103
+ */
104
+ export declare function createFormContext<TValues extends Values = Values>(instance: SchemxInstance<TValues>): SchemxInstance<TValues>;
105
+ /**
106
+ * 获取最近祖先提供的表单实例。
107
+ *
108
+ * @typeParam TValues - 表单值类型。
109
+ * @returns 最近的 SchemxInstance。
110
+ * @throws 当前组件树中没有 Form 实例时抛出错误。
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * setup() {
115
+ * const form = useFormContext()
116
+ * form.getFieldsValue()
117
+ * }
118
+ * ```
119
+ */
120
+ export declare function useFormContext<TValues extends Values = Values>(): SchemxInstance<TValues>;
121
+ /**
122
+ * 向后代提供表单展示配置的兼容 API。
123
+ *
124
+ * @deprecated 请改用 {@link provideFormContext}({ form, schemaConfig })。
125
+ *
126
+ * @param props - 要提供给后代的 Form 展示配置。
127
+ *
128
+ * @example
129
+ * ```ts
130
+ * setup() {
131
+ * const form = useForm()
132
+ * provideFormContext({ form, ...props })
133
+ * }
134
+ * ```
135
+ */
136
+ export declare function createFormConfigContext(props: FormConfigContextValue): void;
137
+ /**
138
+ * 获取当前 Form 的展示配置。
139
+ *
140
+ * @returns 最近 Form 提供的最终展示配置。
141
+ * @throws 当前组件树中没有 Form Config Context 时抛出错误。
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * setup() {
146
+ * const { schemaConfig } = useFormConfigContext()
147
+ * console.log(schemaConfig.readonly)
148
+ * }
149
+ * ```
150
+ */
151
+ export declare function useFormConfigContext(): FormConfigContextValue;
152
+ /**
153
+ * 获取当前表单的 Vue Runtime。
154
+ *
155
+ * @typeParam TValues - 表单值类型。
156
+ * @returns 当前 Form 对应的 Vue Runtime。
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * setup() {
161
+ * const runtime = useFormRuntimeContext()
162
+ * return { values: runtime.instance.getFieldsValue() }
163
+ * }
164
+ * ```
165
+ */
166
+ export declare function useFormRuntimeContext<TValues extends Values = Values>(): VueFormRuntime<TValues>;
167
+ //# sourceMappingURL=formContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formContext.d.ts","sourceRoot":"","sources":["../../src/context/formContext.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAU,KAAK,YAAY,EAAW,MAAM,KAAK,CAAA;AAExD,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE9E;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,cAAc,CACvC,CAAA;AAE3B;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,sBAAsB,CAC1C,CAAA;AAE9B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wBAAwB;IACxB,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACzC,gCAAgC;IAChC,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,0BAA0B;IAC1B,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,0BAA0B;IAC1B,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAC/B,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,sBAAsB;IAC9B,sBAAsB;IACtB,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;CAC9B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAChE,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,GACjC,cAAc,CAAC,OAAO,CAAC,CAOzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,SAAS,MAAM,GAAG,MAAM,KAC5B,gBAAgB,CAAC,OAAO,CAAC,CAW7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,KACzE,gBAAgB,CAAC,OAAO,CAAC,GAAG,SAAS,CAwBtC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/D,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,GAChC,cAAc,CAAC,OAAO,CAAC,CAMzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,OAAO,SAAS,MAAM,GAAG,MAAM,KAC5B,cAAc,CAAC,OAAO,CAAC,CAW3B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAE3E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,IAAI,sBAAsB,CAW7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,SAAS,MAAM,GAAG,MAAM,KAC5B,cAAc,CAAC,OAAO,CAAC,CAE3B"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Vue Context 统一导出。
3
+ *
4
+ * @module context
5
+ */
6
+ /**
7
+ * Form Context 的 provide/inject API。
8
+ */
9
+ export { provideFormContext, useFormContextValue, useFormContext, useFormConfigContext, useFormRuntimeContext, type FormConfigContextValue, type FormContextValue, createFormContext, createFormConfigContext, } from './formContext';
10
+ /**
11
+ * createFieldContext - 当前字段上下文注入与消费。
12
+ */
13
+ export { createFieldContext, useFieldContext } from './fieldContext';
14
+ /**
15
+ * ConfigProvider 组件树级配置上下文注入与消费。
16
+ */
17
+ export { createConfigProviderContext, useConfigProviderContext, useConfigProviderContextRef, } from './configProviderContext';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,eAAe,CAAA;AAEtB;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEpE;;GAEG;AACH,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAA"}
package/dist/form.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { App } from 'vue';
2
2
  import { default as Field } from './components/Field';
3
3
  import { default as SchemxForm } from './formRuntime.js';
4
- import { SchemxVueConfig } from './types/layout';
4
+ import { SchemxConfig } from '@schemx/core';
5
5
  /**
6
6
  * SchemxForm 插件安装选项
7
7
  *
@@ -17,7 +17,7 @@ import { SchemxVueConfig } from './types/layout';
17
17
  * })
18
18
  * ```
19
19
  */
20
- export interface SchemxInstallOptions extends SchemxVueConfig {
20
+ export interface SchemxInstallOptions extends SchemxConfig {
21
21
  }
22
22
  /**
23
23
  * 为组件挂载静态属性并保留原始类型
@@ -26,8 +26,16 @@ export interface SchemxInstallOptions extends SchemxVueConfig {
26
26
  * @param extra - 要挂载的静态属性
27
27
  * @typeParam TComponent - 原始组件类型。
28
28
  * @typeParam TExtras - 待挂载的静态属性类型。
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const Plugin = withInstall(Component, { install(app) { app.component("Demo", Component) } })
33
+ * ```
29
34
  */
30
35
  export declare function withInstall<TComponent extends object, TExtras extends Record<string, unknown>>(comp: TComponent, extra: TExtras): TComponent & TExtras;
36
+ /**
37
+ * 挂载了 Vue 插件安装方法和 `Field` 子组件的 Form 组件类型。
38
+ */
31
39
  export type SchemxFormPlugin = typeof SchemxForm & {
32
40
  install: (app: App, options?: SchemxInstallOptions) => void;
33
41
  Field: typeof Field;
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE9B,OAAO,KAAK,MAAM,oBAAoB,CAAA;AAEtC,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAErD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;CAAG;AAEhE;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,UAAU,SAAS,MAAM,EACzB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GACK,UAAU,GAAG,OAAO,CAC1D;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,UAAU,GAAG;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC3D,KAAK,EAAE,OAAO,KAAK,CAAA;CACpB,CAAA;AAED,QAAA,MAAM,gBAAgB,EAQL,gBAAgB,CAAA;AAEjC,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE9B,OAAO,KAAK,MAAM,oBAAoB,CAAA;AAEtC,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;CAAG;AAE7D;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,UAAU,SAAS,MAAM,EACzB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GACK,UAAU,GAAG,OAAO,CAC1D;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,UAAU,GAAG;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC3D,KAAK,EAAE,OAAO,KAAK,CAAA;CACpB,CAAA;AAED,QAAA,MAAM,gBAAgB,EAYL,gBAAgB,CAAA;AAEjC,eAAe,gBAAgB,CAAA"}
@@ -3,9 +3,13 @@ import { Component } from 'vue';
3
3
  * WithRemoteOptions 注入给被包装组件的额外 Props
4
4
  */
5
5
  export interface RemoteOptionsInjectedProps {
6
- /** 加载的选项列表 */
6
+ /**
7
+ * 加载的选项列表
8
+ */
7
9
  options: unknown[];
8
- /** 加载状态 */
10
+ /**
11
+ * 加载状态
12
+ */
9
13
  loading: boolean;
10
14
  }
11
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"withRemoteOptions.d.ts","sourceRoot":"","sources":["../../src/hocs/withRemoteOptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAwD,MAAM,KAAK,CAAA;AAOrF;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,cAAc;IACd,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,WAAW;IACX,OAAO,EAAE,OAAO,CAAA;CACjB;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,iBAAiB,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAiCxE;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"withRemoteOptions.d.ts","sourceRoot":"","sources":["../../src/hocs/withRemoteOptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAwD,MAAM,KAAK,CAAA;AAOrF;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,iBAAiB,CAAC,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAiCxE;AAED,eAAe,iBAAiB,CAAA"}
@@ -3,26 +3,34 @@
3
3
  *
4
4
  * @module hooks
5
5
  */
6
- /** useForm - 表单状态管理 */
6
+ /**
7
+ * useForm - 表单状态管理
8
+ */
7
9
  export { useForm } from './useForm';
8
- /** Vue Form Instance - 在 Vue effect 中可追踪的 Form 实例。 */
10
+ /** Vue 兼容用的表单实例类型。 */
9
11
  export type { VueSchemxInstance } from '../bridge';
10
- /** createFormContext - 表单上下文注入与消费 */
11
- export { createFormContext, useFormContext } from './provideFormContext';
12
- /** useField - 单字段控制 */
12
+ /**
13
+ * useField - 单字段控制
14
+ */
13
15
  export { useField } from './useField';
14
- /** createFieldContext - 表单上下文注入与消费 */
15
- export { createFieldContext, useFieldContext } from './provideFieldContext';
16
- /** useWatch - 字段变化监听 */
16
+ /**
17
+ * useWatch - 字段变化监听
18
+ */
17
19
  export { useWatch, useWatchField, useWatchFields, useWatchAll } from './useWatch';
18
- /** useDictionary - 字典选项加载 */
19
- export { useDictionary, type UseDictionaryReturn } from './useDictionary';
20
- /** useFormConfigContext - 表单上下文注入与消费 */
21
- export { createFormConfigContext, useFormConfigContext, type FormContextProps, } from './provideFormConfigContext';
22
- /** useStableRef - 引用稳定化的 shallowRef */
20
+ /**
21
+ * useDictionary - 字典选项加载
22
+ */
23
+ export { useDictionary, type UseDictionaryReturn, type UseDictOptionsReturn, } from './useDictionary';
24
+ /**
25
+ * useStableRef - 引用稳定化的 shallowRef
26
+ */
23
27
  export { useStableRef } from './useStableRef';
24
- /** useViewSchemas - ViewSchemas Vue 桥接 */
28
+ /**
29
+ * useViewSchemas - ViewSchemas Vue 桥接
30
+ */
25
31
  export { useViewSchemas } from './useViewSchemas';
26
- /** useFormSelector - 表单值 Selector Vue 桥接 */
32
+ /**
33
+ * useFormSelector - 表单值 Selector Vue 桥接
34
+ */
27
35
  export { useFormSelector, type UseFormSelectorOptions } from './useFormSelector';
28
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,uBAAuB;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,sDAAsD;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAElD,qCAAqC;AACrC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAExE,uBAAuB;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,sCAAsC;AACtC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE3E,wBAAwB;AACxB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEjF,6BAA6B;AAC7B,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAEzE,wCAAwC;AACxC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAA;AAEnC,uCAAuC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,0CAA0C;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,4CAA4C;AAC5C,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,sBAAsB;AACtB,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAElD;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEjF;;GAEG;AACH,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAA;AAExB;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -3,26 +3,41 @@ import { SchemxDictionary } from '../types/dictionary';
3
3
  import { NamePath, Values } from '@schemx/core';
4
4
  export type { SchemxDictionary, SchemxWithDictionary } from '../types/dictionary';
5
5
  /**
6
- * useDictionary 返回值
6
+ * useDictionary 返回值。
7
+ *
8
+ * @typeParam TOption - 格式化后的字典选项类型。
7
9
  */
8
10
  export interface UseDictionaryReturn<TOption = unknown> {
9
- /** 远程加载的字典选项列表(响应式) */
11
+ /**
12
+ * 远程加载的字典选项列表(响应式)
13
+ */
10
14
  list: Ref<TOption[]>;
11
- /** 请求加载状态(响应式) */
15
+ /**
16
+ * 请求加载状态(响应式)
17
+ */
12
18
  loading: Ref<boolean>;
13
- /** 请求错误信息(响应式) */
19
+ /**
20
+ * 请求错误信息(响应式)
21
+ */
14
22
  error: Ref<Error | undefined>;
15
- /** 触发字典选项加载 */
23
+ /**
24
+ * 触发字典选项加载
25
+ */
16
26
  loadDict: () => Promise<void>;
17
- /** 使用当前配置重新执行 api */
27
+ /**
28
+ * 使用当前配置重新执行 api
29
+ */
18
30
  refresh: () => Promise<void>;
19
- /** 直接修改 list 的值,不触发 api 调用 */
31
+ /**
32
+ * 直接修改 list 的值,不触发 api 调用
33
+ */
20
34
  mutate: (data: TOption[]) => void;
21
35
  }
22
36
  /**
23
- * @deprecated
37
+ * useDictionary 返回值的旧类型别名。
24
38
  *
25
- * 已弃用,请使用 **UseDictionaryReturn**
39
+ * @deprecated 请改用 {@link UseDictionaryReturn}。
40
+ * @typeParam TOption - 格式化后的字典选项类型。
26
41
  */
27
42
  export type UseDictOptionsReturn<TOption = unknown> = UseDictionaryReturn<TOption>;
28
43
  /**
@@ -30,6 +45,11 @@ export type UseDictOptionsReturn<TOption = unknown> = UseDictionaryReturn<TOptio
30
45
  *
31
46
  * @param err - 捕获的值(可能是任意类型)
32
47
  * @returns 包装原始值的 `Error` 对象
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const error = normalizeError("request failed")
52
+ * ```
33
53
  */
34
54
  export declare function normalizeError(err: unknown): Error;
35
55
  /**
@@ -40,6 +60,9 @@ export declare function normalizeError(err: unknown): Error;
40
60
  * 重试、错误处理等能力。
41
61
  *
42
62
  * @typeParam TValues - 表单值类型
63
+ * @typeParam TName - 当前字段路径类型
64
+ * @typeParam TResponse - api 的原始返回值类型
65
+ * @typeParam TOption - 格式化后的字典选项类型
43
66
  * @param options - 字典配置选项
44
67
  * @param fieldName - 当前字段名,用于 resetOnDepsChange 时清空字段值
45
68
  * @returns `{ list, loading, error, loadDict, refresh, mutate }`:响应式选项、
@@ -1 +1 @@
1
- {"version":3,"file":"useDictionary.d.ts","sourceRoot":"","sources":["../../src/hooks/useDictionary.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA6B,GAAG,EAAmB,MAAM,KAAK,CAAA;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAK1D,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,EAAE,MAAM,cAAc,CAAA;AAEpE,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEhF;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,OAAO,GAAG,OAAO;IACpD,uBAAuB;IACvB,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IACpB,kBAAkB;IAClB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,kBAAkB;IAClB,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,CAAA;IAC7B,eAAe;IACf,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,qBAAqB;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,8BAA8B;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAClC;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAAC,OAAO,GAAG,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAElF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAIlD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,KAAK,SAAS,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EACnD,SAAS,GAAG,OAAO,EACnB,OAAO,GAAG,OAAO,EAEjB,SAAS,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EACtD,YAAY,KAAK,KAChB,mBAAmB,CAAC,OAAO,CA6K7B,CAAA;AAoDD,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"useDictionary.d.ts","sourceRoot":"","sources":["../../src/hooks/useDictionary.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA6B,GAAG,EAAmB,MAAM,KAAK,CAAA;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAM1D,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,EAAE,MAAM,cAAc,CAAA;AAEpE,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEhF;;;;GAIG;AACH,MAAM,WAAW,mBAAmB,CAAC,OAAO,GAAG,OAAO;IACpD;;OAEG;IACH,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IACpB;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,CAAA;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B;;OAEG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAClC;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,OAAO,GAAG,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAElF;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAIlD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,KAAK,SAAS,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EACnD,SAAS,GAAG,OAAO,EACnB,OAAO,GAAG,OAAO,EAEjB,SAAS,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EACtD,YAAY,KAAK,KAChB,mBAAmB,CAAC,OAAO,CAwL7B,CAAA;AA8DD,eAAe,aAAa,CAAA"}