@gct-paas/core 0.0.1-dev.15 → 0.0.1-dev.16

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 (236) hide show
  1. package/dist/index.min.cjs +1 -1
  2. package/dist/index.system.min.js +1 -1
  3. package/es/constants/editor-register/editor-register.d.ts +14 -0
  4. package/es/constants/editor-register/editor-register.mjs +7 -0
  5. package/es/constants/editor-type/editor-type.d.ts +144 -0
  6. package/es/constants/editor-type/editor-type.mjs +41 -0
  7. package/es/constants/form-container-type/form-container-type.d.ts +14 -0
  8. package/es/constants/form-container-type/form-container-type.mjs +7 -0
  9. package/es/constants/index.d.ts +3 -0
  10. package/es/constants/index.mjs +3 -0
  11. package/es/controller/edit-form/edit-form.controller.d.ts +27 -0
  12. package/es/controller/edit-form/edit-form.controller.mjs +42 -0
  13. package/es/controller/editor/color-editor.controller.d.ts +13 -0
  14. package/es/controller/editor/color-editor.controller.mjs +7 -0
  15. package/es/controller/editor/length-unit-editor.controller.d.ts +13 -0
  16. package/es/controller/editor/length-unit-editor.controller.mjs +7 -0
  17. package/es/controller/editor-item/editor-item.controller.d.ts +14 -0
  18. package/es/controller/editor-item/editor-item.controller.mjs +9 -0
  19. package/es/controller/form/form.controller.d.ts +76 -0
  20. package/es/controller/form/form.controller.mjs +147 -0
  21. package/es/controller/form-collapse/form-collapse.controller.d.ts +18 -0
  22. package/es/controller/form-collapse/form-collapse.controller.mjs +13 -0
  23. package/es/controller/form-collapse-pane/form-collapse-pane.controller.d.ts +18 -0
  24. package/es/controller/form-collapse-pane/form-collapse-pane.controller.mjs +13 -0
  25. package/es/controller/form-edit-item/form-edit-item.controller.d.ts +26 -0
  26. package/es/controller/form-edit-item/form-edit-item.controller.mjs +70 -0
  27. package/es/controller/form-group/form-group.controller.d.ts +18 -0
  28. package/es/controller/form-group/form-group.controller.mjs +13 -0
  29. package/es/controller/form-item/form-item.controller.d.ts +20 -0
  30. package/es/controller/form-item/form-item.controller.mjs +39 -0
  31. package/es/controller/form-item-basic/form-item-basic.controller.d.ts +57 -0
  32. package/es/controller/form-item-basic/form-item-basic.controller.mjs +48 -0
  33. package/es/controller/form-item-hidden/form-item-hidden.controller.d.ts +17 -0
  34. package/es/controller/form-item-hidden/form-item-hidden.controller.mjs +8 -0
  35. package/es/controller/form-tab/form-tab.controller.d.ts +18 -0
  36. package/es/controller/form-tab/form-tab.controller.mjs +13 -0
  37. package/es/controller/form-tab-pane/form-tab-pane.controller.d.ts +18 -0
  38. package/es/controller/form-tab-pane/form-tab-pane.controller.mjs +13 -0
  39. package/es/controller/gct-form/gct-form.controller.d.ts +101 -0
  40. package/es/controller/gct-form/gct-form.controller.mjs +214 -0
  41. package/es/controller/index.d.ts +15 -0
  42. package/es/controller/index.mjs +17 -0
  43. package/es/enums/page-designer/panel.d.ts +2 -0
  44. package/es/enums/page-designer/panel.mjs +1 -0
  45. package/es/global/gct/gct.d.ts +11 -3
  46. package/es/global/gct/gct.mjs +13 -2
  47. package/es/hooks/index.d.ts +4 -0
  48. package/es/hooks/index.mjs +4 -0
  49. package/es/hooks/use-form/use-form.d.ts +10 -0
  50. package/es/hooks/use-form/use-form.mjs +9 -0
  51. package/es/hooks/use-gct-form-value/use-gct-form-value.d.ts +22 -0
  52. package/es/hooks/use-gct-form-value/use-gct-form-value.mjs +84 -0
  53. package/es/hooks/use-modal/use-modal.d.ts +10 -0
  54. package/es/hooks/use-modal/use-modal.mjs +14 -0
  55. package/es/hooks/useCopyToClipboard.d.ts +11 -0
  56. package/es/hooks/useCopyToClipboard.mjs +58 -0
  57. package/es/index.d.ts +1 -0
  58. package/es/index.mjs +36 -0
  59. package/es/interface/controller/edit-form/edit-form.controller.d.ts +20 -0
  60. package/es/interface/controller/edit-form/edit-form.controller.mjs +1 -0
  61. package/es/interface/controller/editor/i-color-editor.controller.d.ts +11 -0
  62. package/es/interface/controller/editor/i-color-editor.controller.mjs +1 -0
  63. package/es/interface/controller/editor/i-length-unit-editor.controller.d.ts +11 -0
  64. package/es/interface/controller/editor/i-length-unit-editor.controller.mjs +1 -0
  65. package/es/interface/controller/editor-item/editor-item.controller.d.ts +19 -0
  66. package/es/interface/controller/editor-item/editor-item.controller.mjs +1 -0
  67. package/es/interface/controller/form/form.controller.d.ts +121 -0
  68. package/es/interface/controller/form/form.controller.mjs +3 -0
  69. package/es/interface/controller/form-collapse/form-collapse.controller.d.ts +23 -0
  70. package/es/interface/controller/form-collapse/form-collapse.controller.mjs +1 -0
  71. package/es/interface/controller/form-collapse-pane/form-collapse-pane.controller.d.ts +23 -0
  72. package/es/interface/controller/form-collapse-pane/form-collapse-pane.controller.mjs +1 -0
  73. package/es/interface/controller/form-edit-item/form-edit-item.controller.d.ts +54 -0
  74. package/es/interface/controller/form-edit-item/form-edit-item.controller.mjs +1 -0
  75. package/es/interface/controller/form-group/form-group.controller.d.ts +24 -0
  76. package/es/interface/controller/form-group/form-group.controller.mjs +1 -0
  77. package/es/interface/controller/form-hidden-item/form-hidden-item.controller.d.ts +24 -0
  78. package/es/interface/controller/form-hidden-item/form-hidden-item.controller.mjs +1 -0
  79. package/es/interface/controller/form-item/form-item.controller.d.ts +40 -0
  80. package/es/interface/controller/form-item/form-item.controller.mjs +1 -0
  81. package/es/interface/controller/form-item-basic/form-item-basic.controller.d.ts +51 -0
  82. package/es/interface/controller/form-item-basic/form-item-basic.controller.mjs +1 -0
  83. package/es/interface/controller/form-tab/form-tab.controller.d.ts +23 -0
  84. package/es/interface/controller/form-tab/form-tab.controller.mjs +1 -0
  85. package/es/interface/controller/form-tab-pane/form-tab-pane.controller.d.ts +23 -0
  86. package/es/interface/controller/form-tab-pane/form-tab-pane.controller.mjs +1 -0
  87. package/es/interface/controller/index.d.ts +14 -0
  88. package/es/interface/events/form/i-form.event.d.ts +11 -0
  89. package/es/interface/events/form/i-form.event.mjs +1 -0
  90. package/es/interface/events/index.d.ts +1 -0
  91. package/es/interface/events/index.mjs +1 -0
  92. package/es/interface/form/i-editor/i-check-switch.d.ts +29 -0
  93. package/es/interface/form/i-editor/i-check-switch.mjs +3 -0
  94. package/es/interface/form/i-editor/i-checkbox-editor.d.ts +9 -0
  95. package/es/interface/form/i-editor/i-checkbox-editor.mjs +3 -0
  96. package/es/interface/form/i-editor/i-color-editor.d.ts +13 -0
  97. package/es/interface/form/i-editor/i-color-editor.mjs +3 -0
  98. package/es/interface/form/i-editor/i-editor-basic.d.ts +87 -0
  99. package/es/interface/form/i-editor/i-editor-basic.mjs +1 -0
  100. package/es/interface/form/i-editor/i-icon-select-editor.d.ts +21 -0
  101. package/es/interface/form/i-editor/i-icon-select-editor.mjs +3 -0
  102. package/es/interface/form/i-editor/i-info-editor.d.ts +21 -0
  103. package/es/interface/form/i-editor/i-info-editor.mjs +3 -0
  104. package/es/interface/form/i-editor/i-length-unit-editor.d.ts +13 -0
  105. package/es/interface/form/i-editor/i-length-unit-editor.mjs +3 -0
  106. package/es/interface/form/i-editor/i-number-editor.d.ts +21 -0
  107. package/es/interface/form/i-editor/i-number-editor.mjs +3 -0
  108. package/es/interface/form/i-editor/i-picker-editor.d.ts +30 -0
  109. package/es/interface/form/i-editor/i-picker-editor.mjs +3 -0
  110. package/es/interface/form/i-editor/i-radio-editor.d.ts +21 -0
  111. package/es/interface/form/i-editor/i-radio-editor.mjs +3 -0
  112. package/es/interface/form/i-editor/i-select-editor.d.ts +14 -0
  113. package/es/interface/form/i-editor/i-select-editor.mjs +3 -0
  114. package/es/interface/form/i-editor/i-span-editor.d.ts +30 -0
  115. package/es/interface/form/i-editor/i-span-editor.mjs +3 -0
  116. package/es/interface/form/i-editor/i-switch-editor.d.ts +14 -0
  117. package/es/interface/form/i-editor/i-switch-editor.mjs +3 -0
  118. package/es/interface/form/i-editor/i-text-editor.d.ts +46 -0
  119. package/es/interface/form/i-editor/i-text-editor.mjs +3 -0
  120. package/es/interface/form/i-editor/i-textarea-editor.d.ts +25 -0
  121. package/es/interface/form/i-editor/i-textarea-editor.mjs +3 -0
  122. package/es/interface/form/i-form/i-edit-form.d.ts +42 -0
  123. package/es/interface/form/i-form/i-edit-form.mjs +1 -0
  124. package/es/interface/form/i-form/i-form-collapse-pane.d.ts +26 -0
  125. package/es/interface/form/i-form/i-form-collapse-pane.mjs +1 -0
  126. package/es/interface/form/i-form/i-form-collapse.d.ts +35 -0
  127. package/es/interface/form/i-form/i-form-collapse.mjs +1 -0
  128. package/es/interface/form/i-form/i-form-container.d.ts +53 -0
  129. package/es/interface/form/i-form/i-form-container.mjs +1 -0
  130. package/es/interface/form/i-form/i-form-edit-item.d.ts +140 -0
  131. package/es/interface/form/i-form/i-form-edit-item.mjs +1 -0
  132. package/es/interface/form/i-form/i-form-group-container.d.ts +24 -0
  133. package/es/interface/form/i-form/i-form-group-container.mjs +1 -0
  134. package/es/interface/form/i-form/i-form-group.d.ts +35 -0
  135. package/es/interface/form/i-form/i-form-group.mjs +1 -0
  136. package/es/interface/form/i-form/i-form-hidden-item.d.ts +11 -0
  137. package/es/interface/form/i-form/i-form-hidden-item.mjs +1 -0
  138. package/es/interface/form/i-form/i-form-item-basic.d.ts +126 -0
  139. package/es/interface/form/i-form/i-form-item-basic.mjs +1 -0
  140. package/es/interface/form/i-form/i-form-item.d.ts +11 -0
  141. package/es/interface/form/i-form/i-form-item.mjs +1 -0
  142. package/es/interface/form/i-form/i-form-tab-pane.d.ts +19 -0
  143. package/es/interface/form/i-form/i-form-tab-pane.mjs +1 -0
  144. package/es/interface/form/i-form/i-form-tab.d.ts +21 -0
  145. package/es/interface/form/i-form/i-form-tab.mjs +1 -0
  146. package/es/interface/form/i-form/i-form.d.ts +72 -0
  147. package/es/interface/form/i-form/i-form.mjs +1 -0
  148. package/es/interface/form/index.d.ts +28 -0
  149. package/es/interface/form/index.mjs +1 -0
  150. package/es/interface/i-dictionary/i-dictionary-item.d.ts +48 -0
  151. package/es/interface/i-dictionary/i-dictionary-item.mjs +1 -0
  152. package/es/interface/i-dictionary/i-dictionary.d.ts +52 -0
  153. package/es/interface/i-dictionary/i-dictionary.mjs +1 -0
  154. package/es/interface/i-modal/i-modal.d.ts +71 -0
  155. package/es/interface/i-modal/i-modal.mjs +3 -0
  156. package/es/interface/i-modal-data/i-modal-data.d.ts +34 -0
  157. package/es/interface/i-modal-data/i-modal-data.mjs +1 -0
  158. package/es/interface/index.d.ts +12 -4
  159. package/es/interface/index.mjs +0 -5
  160. package/es/interface/layout/i-flex-layout/i-flex-container.d.ts +75 -0
  161. package/es/interface/layout/i-flex-layout/i-flex-container.mjs +1 -0
  162. package/es/interface/layout/i-flex-layout/i-flex-item.d.ts +51 -0
  163. package/es/interface/layout/i-flex-layout/i-flex-item.mjs +1 -0
  164. package/es/interface/layout/i-grid-layout/i-grid-container.d.ts +29 -0
  165. package/es/interface/layout/i-grid-layout/i-grid-container.mjs +1 -0
  166. package/es/interface/layout/i-grid-layout/i-grid-item-span.d.ts +54 -0
  167. package/es/interface/layout/i-grid-layout/i-grid-item-span.mjs +1 -0
  168. package/es/interface/layout/i-grid-layout/i-grid-item.d.ts +37 -0
  169. package/es/interface/layout/i-grid-layout/i-grid-item.mjs +1 -0
  170. package/es/interface/layout/i-layout-basis/i-layout-container-basis.d.ts +11 -0
  171. package/es/interface/layout/i-layout-basis/i-layout-container-basis.mjs +1 -0
  172. package/es/interface/layout/index.d.ts +6 -0
  173. package/es/interface/layout/index.mjs +1 -0
  174. package/es/interface/provider/i-editor-provider/i-editor-provider.d.ts +24 -0
  175. package/es/interface/provider/i-editor-provider/i-editor-provider.mjs +1 -0
  176. package/es/interface/provider/i-form-item-provider/i-form-item-provider.d.ts +44 -0
  177. package/es/interface/provider/i-form-item-provider/i-form-item-provider.mjs +1 -0
  178. package/es/interface/provider/i-provider-basic/i-provider-basic.d.ts +25 -0
  179. package/es/interface/provider/i-provider-basic/i-provider-basic.mjs +1 -0
  180. package/es/interface/provider/index.d.ts +3 -0
  181. package/es/interface/provider/index.mjs +1 -0
  182. package/es/interface/state/form/form.state.d.ts +53 -0
  183. package/es/interface/state/form/form.state.mjs +1 -0
  184. package/es/interface/state/form-collapse/form-collapse.state.d.ts +11 -0
  185. package/es/interface/state/form-collapse/form-collapse.state.mjs +1 -0
  186. package/es/interface/state/form-collapse-pane/form-collapse-pane.state.d.ts +11 -0
  187. package/es/interface/state/form-collapse-pane/form-collapse-pane.state.mjs +1 -0
  188. package/es/interface/state/form-edit-item/form-edit-item.state.d.ts +38 -0
  189. package/es/interface/state/form-edit-item/form-edit-item.state.mjs +1 -0
  190. package/es/interface/state/form-group/form-group.state.d.ts +21 -0
  191. package/es/interface/state/form-group/form-group.state.mjs +1 -0
  192. package/es/interface/state/form-hidden-item/form-hidden-item.state.d.ts +5 -0
  193. package/es/interface/state/form-hidden-item/form-hidden-item.state.mjs +1 -0
  194. package/es/interface/state/form-item/form-item.state.d.ts +20 -0
  195. package/es/interface/state/form-item/form-item.state.mjs +1 -0
  196. package/es/interface/state/form-item-basic/form-item-basic.state.d.ts +63 -0
  197. package/es/interface/state/form-item-basic/form-item-basic.state.mjs +1 -0
  198. package/es/interface/state/form-tab/form-tab.state.d.ts +19 -0
  199. package/es/interface/state/form-tab/form-tab.state.mjs +1 -0
  200. package/es/interface/state/form-tab-pane/form-tab-pane.state.d.ts +11 -0
  201. package/es/interface/state/form-tab-pane/form-tab-pane.state.mjs +1 -0
  202. package/es/interface/state/i-designer-state.d.ts +0 -12
  203. package/es/interface/state/index.d.ts +10 -0
  204. package/es/register/editor-register/editor-register.d.ts +57 -0
  205. package/es/register/editor-register/editor-register.mjs +66 -0
  206. package/es/register/form-item-register/form-item-register.d.ts +47 -0
  207. package/es/register/form-item-register/form-item-register.mjs +52 -0
  208. package/es/register/index.d.ts +2 -0
  209. package/es/register/index.mjs +2 -0
  210. package/es/state/form/form.state.d.ts +24 -0
  211. package/es/state/form/form.state.mjs +17 -0
  212. package/es/state/form-collapse/form-collapse.state.d.ts +14 -0
  213. package/es/state/form-collapse/form-collapse.state.mjs +7 -0
  214. package/es/state/form-collapse-pane/form-collapse-pane.state.d.ts +14 -0
  215. package/es/state/form-collapse-pane/form-collapse-pane.state.mjs +7 -0
  216. package/es/state/form-edit-item/form-edit-item.state.d.ts +17 -0
  217. package/es/state/form-edit-item/form-edit-item.state.mjs +11 -0
  218. package/es/state/form-group/form-group.state.d.ts +21 -0
  219. package/es/state/form-group/form-group.state.mjs +15 -0
  220. package/es/state/form-item/form-item.state.d.ts +14 -0
  221. package/es/state/form-item/form-item.state.mjs +7 -0
  222. package/es/state/form-item-basic/form-item-basic.state.d.ts +17 -0
  223. package/es/state/form-item-basic/form-item-basic.state.mjs +10 -0
  224. package/es/state/form-tab/form-tab.state.d.ts +15 -0
  225. package/es/state/form-tab/form-tab.state.mjs +8 -0
  226. package/es/state/form-tab-pane/form-tab-pane.state.d.ts +14 -0
  227. package/es/state/form-tab-pane/form-tab-pane.state.mjs +7 -0
  228. package/es/state/index.d.ts +9 -0
  229. package/es/state/index.mjs +9 -0
  230. package/es/utils/dictionary/dictionary.d.ts +102 -0
  231. package/es/utils/dictionary/dictionary.mjs +147 -0
  232. package/es/utils/index.d.ts +2 -0
  233. package/es/utils/index.mjs +2 -0
  234. package/es/utils/width-install/width-install.d.ts +16 -0
  235. package/es/utils/width-install/width-install.mjs +21 -0
  236. package/package.json +6 -4
@@ -0,0 +1,26 @@
1
+ import { IFormEditItem, IFormEditItemController, IFormEditItemState } from '../../interface';
2
+ import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller';
3
+ /**
4
+ * 表单编辑项控制器
5
+ *
6
+ * @author zhanghanrui
7
+ * @date 2024-04-02 20:04:00
8
+ * @export
9
+ * @abstract
10
+ * @class FormEditItemController
11
+ * @extends {FormItemBasicController}
12
+ * @implements {IFormEditItemController}
13
+ */
14
+ export declare abstract class FormEditItemController extends FormItemBasicController implements IFormEditItemController {
15
+ model: IFormEditItem;
16
+ state: IFormEditItemState;
17
+ get key(): string;
18
+ get value(): any;
19
+ set value(value: any);
20
+ get editorValue(): any;
21
+ set editorValue(v: any);
22
+ protected init(): void;
23
+ defaultValue(): void;
24
+ reset(): void;
25
+ protected crateItemState(): IFormEditItemState;
26
+ }
@@ -0,0 +1,70 @@
1
+ import { cloneDeep } from 'lodash-es';
2
+ import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller.mjs';
3
+ import '../../state/index.mjs';
4
+ import { FormEditItemState } from '../../state/form-edit-item/form-edit-item.state.mjs';
5
+
6
+ "use strict";
7
+ class FormEditItemController extends FormItemBasicController {
8
+ get key() {
9
+ return this.model.field ?? this.model.name;
10
+ }
11
+ get value() {
12
+ return this.form.state.data[this.key];
13
+ }
14
+ set value(value) {
15
+ const oldValue = cloneDeep(this.form.state.data[this.key]);
16
+ this.form.state.data[this.key] = value;
17
+ this.form.evt.emit("change", this.key, value, oldValue);
18
+ this.state.value = value;
19
+ }
20
+ get editorValue() {
21
+ if (this.model.fields) {
22
+ return this.model.fields.map((key) => {
23
+ return this.form.item[key].value;
24
+ });
25
+ }
26
+ return this.value;
27
+ }
28
+ set editorValue(v) {
29
+ if (this.model.fields) {
30
+ this.model.fields.forEach((key, i) => {
31
+ this.form.item[key].value = v?.[i];
32
+ });
33
+ } else {
34
+ this.value = v;
35
+ }
36
+ }
37
+ init() {
38
+ super.init();
39
+ if (this.model.type !== "hidden") {
40
+ const { editor } = this.model;
41
+ this.state.readonly = editor.readonly;
42
+ if (editor.disabled != null) {
43
+ this.state.disabled = editor.disabled;
44
+ }
45
+ }
46
+ if (this.model.dictionary) {
47
+ const { mode } = this.model.dictionary;
48
+ if (mode === "static") {
49
+ this.state.options = this.model.dictionary.items || [];
50
+ }
51
+ }
52
+ }
53
+ defaultValue() {
54
+ if (this.form.state.data[this.key] === void 0 && this.model.defaultValue !== void 0) {
55
+ this.form.state.data[this.key] = this.model.defaultValue;
56
+ }
57
+ }
58
+ reset() {
59
+ if (this.model.defaultValue !== void 0) {
60
+ this.value = this.model.defaultValue;
61
+ } else {
62
+ this.value = void 0;
63
+ }
64
+ }
65
+ crateItemState() {
66
+ return new FormEditItemState();
67
+ }
68
+ }
69
+
70
+ export { FormEditItemController };
@@ -0,0 +1,18 @@
1
+ import { IFormGroup, IFormGroupController, IFormGroupState } from '../../interface';
2
+ import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller';
3
+ /**
4
+ * 表单分组控制器
5
+ *
6
+ * @author zhanghanrui
7
+ * @date 2024-04-01 14:04:00
8
+ * @export
9
+ * @class FormGroupController
10
+ * @extends {FormItemBasicController}
11
+ * @implements {IFormGroupController}
12
+ */
13
+ export declare class FormGroupController extends FormItemBasicController implements IFormGroupController {
14
+ readonly type = "group";
15
+ model: IFormGroup;
16
+ state: IFormGroupState;
17
+ protected crateItemState(): IFormGroupState;
18
+ }
@@ -0,0 +1,13 @@
1
+ import '../../state/index.mjs';
2
+ import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller.mjs';
3
+ import { FormGroupState } from '../../state/form-group/form-group.state.mjs';
4
+
5
+ "use strict";
6
+ class FormGroupController extends FormItemBasicController {
7
+ type = "group";
8
+ crateItemState() {
9
+ return new FormGroupState();
10
+ }
11
+ }
12
+
13
+ export { FormGroupController };
@@ -0,0 +1,20 @@
1
+ import { IDictionaryItem, IFormItem, IFormItemController, IFormItemState } from '../../interface';
2
+ import { FormEditItemController } from '../form-edit-item/form-edit-item.controller';
3
+ /**
4
+ * 表单项控制器
5
+ *
6
+ * @author zhanghanrui
7
+ * @date 2024-04-02 20:04:03
8
+ * @export
9
+ * @class FormItemController
10
+ * @extends {FormEditItemController}
11
+ * @implements {IFormItemController}
12
+ */
13
+ export declare class FormItemController extends FormEditItemController implements IFormItemController {
14
+ readonly type = "item";
15
+ model: IFormItem;
16
+ state: IFormItemState;
17
+ loadDictionary(params?: IParams): Promise<IDictionaryItem[]>;
18
+ clearDictionary(): void;
19
+ protected crateItemState(): IFormItemState;
20
+ }
@@ -0,0 +1,39 @@
1
+ import '../../state/index.mjs';
2
+ import { FormEditItemController } from '../form-edit-item/form-edit-item.controller.mjs';
3
+ import { FormItemState } from '../../state/form-item/form-item.state.mjs';
4
+
5
+ "use strict";
6
+ class FormItemController extends FormEditItemController {
7
+ type = "item";
8
+ async loadDictionary(params) {
9
+ if (this.state.options.length > 0) {
10
+ return this.state.options;
11
+ }
12
+ this.state.options = [];
13
+ this.state.loading = true;
14
+ try {
15
+ if (this.model.dictionary) {
16
+ this.state.options = await _gct.dictionary.asyncGetByConfig(
17
+ this.model.dictionary,
18
+ params
19
+ );
20
+ } else if (this.model.dictionaryTag) {
21
+ this.state.options = await _gct.dictionary.asyncGet(
22
+ this.model.dictionaryTag,
23
+ params
24
+ );
25
+ }
26
+ return this.state.options;
27
+ } finally {
28
+ this.state.loading = false;
29
+ }
30
+ }
31
+ clearDictionary() {
32
+ this.state.options = [];
33
+ }
34
+ crateItemState() {
35
+ return new FormItemState();
36
+ }
37
+ }
38
+
39
+ export { FormItemController };
@@ -0,0 +1,57 @@
1
+ import { IFormController, IFormItemBasic, IFormItemBasicController, IFormItemBasicState } from '../../interface';
2
+ /**
3
+ * 表单项基础控制器
4
+ *
5
+ * @author zhanghanrui
6
+ * @date 2024-04-01 14:04:08
7
+ * @export
8
+ * @abstract
9
+ * @class FormItemBasicController
10
+ * @implements {IFormItemBasicController}
11
+ */
12
+ export declare abstract class FormItemBasicController implements IFormItemBasicController {
13
+ protected readonly form: IFormController;
14
+ readonly model: IFormItemBasic;
15
+ /**
16
+ * 表单项类型
17
+ *
18
+ * @author zhanghanrui
19
+ * @date 2024-04-01 14:04:45
20
+ * @abstract
21
+ * @type {string}
22
+ */
23
+ abstract readonly type: string;
24
+ /**
25
+ * 表单项基础状态
26
+ *
27
+ * @description 禁止直接重写new实例,如果要覆盖重写 crateItemState 方法
28
+ * @author zhanghanrui
29
+ * @date 2024-04-02 22:04:07
30
+ * @type {IFormItemBasicState}
31
+ */
32
+ state: IFormItemBasicState;
33
+ get data(): any;
34
+ /**
35
+ * Creates an instance of FormItemBasicController.
36
+ *
37
+ * @author zhanghanrui
38
+ * @date 2024-04-02 09:04:55
39
+ * @param {IFormController} form
40
+ * @param {IFormItemBasic} model
41
+ */
42
+ constructor(form: IFormController, model: IFormItemBasic);
43
+ protected init(): void;
44
+ destroy(): void;
45
+ protected crateItemState(): IFormItemBasicState;
46
+ }
47
+ /**
48
+ * 加载表单项控制器实例
49
+ *
50
+ * @author zhanghanrui
51
+ * @date 2024-04-02 22:04:51
52
+ * @export
53
+ * @template T
54
+ * @param {() => T} fn
55
+ * @return {*} {T}
56
+ */
57
+ export declare function useFormItemController<T extends IFormItemBasicController = IFormItemBasicController>(fn: () => T): T;
@@ -0,0 +1,48 @@
1
+ import { reactive } from 'vue';
2
+ import '../../state/index.mjs';
3
+ import { FormItemBasicState } from '../../state/form-item-basic/form-item-basic.state.mjs';
4
+
5
+ "use strict";
6
+ class FormItemBasicController {
7
+ /**
8
+ * Creates an instance of FormItemBasicController.
9
+ *
10
+ * @author zhanghanrui
11
+ * @date 2024-04-02 09:04:55
12
+ * @param {IFormController} form
13
+ * @param {IFormItemBasic} model
14
+ */
15
+ constructor(form, model) {
16
+ this.form = form;
17
+ this.model = model;
18
+ this.init();
19
+ }
20
+ /**
21
+ * 表单项基础状态
22
+ *
23
+ * @description 禁止直接重写new实例,如果要覆盖重写 crateItemState 方法
24
+ * @author zhanghanrui
25
+ * @date 2024-04-02 22:04:07
26
+ * @type {IFormItemBasicState}
27
+ */
28
+ state = this.crateItemState();
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
+ get data() {
31
+ return this.form.state.data;
32
+ }
33
+ init() {
34
+ }
35
+ destroy() {
36
+ this.state.destroyed = true;
37
+ }
38
+ crateItemState() {
39
+ return new FormItemBasicState();
40
+ }
41
+ }
42
+ function useFormItemController(fn) {
43
+ const c = fn();
44
+ c.state = reactive(c.state);
45
+ return c;
46
+ }
47
+
48
+ export { FormItemBasicController, useFormItemController };
@@ -0,0 +1,17 @@
1
+ import { IFormHiddenItem, IFormHiddenItemController, IFormHiddenItemState } from '../../interface';
2
+ import { FormEditItemController } from '../form-edit-item/form-edit-item.controller';
3
+ /**
4
+ * 表单分组控制器
5
+ *
6
+ * @author zhanghanrui
7
+ * @date 2024-04-01 14:04:00
8
+ * @export
9
+ * @class FormHiddenItemController
10
+ * @extends {FormEditItemController}
11
+ * @implements {IFormGroupController}
12
+ */
13
+ export declare class FormHiddenItemController extends FormEditItemController implements IFormHiddenItemController {
14
+ readonly type = "hidden";
15
+ model: IFormHiddenItem;
16
+ state: IFormHiddenItemState;
17
+ }
@@ -0,0 +1,8 @@
1
+ import { FormEditItemController } from '../form-edit-item/form-edit-item.controller.mjs';
2
+
3
+ "use strict";
4
+ class FormHiddenItemController extends FormEditItemController {
5
+ type = "hidden";
6
+ }
7
+
8
+ export { FormHiddenItemController };
@@ -0,0 +1,18 @@
1
+ import { IFormTab, IFormTabController, IFormTabState } from '../../interface';
2
+ import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller';
3
+ /**
4
+ * 表单分组控制器
5
+ *
6
+ * @author zhanghanrui
7
+ * @date 2024-04-01 14:04:00
8
+ * @export
9
+ * @class FormTabController
10
+ * @extends {FormItemBasicController}
11
+ * @implements {IFormTabController}
12
+ */
13
+ export declare class FormTabController extends FormItemBasicController implements IFormTabController {
14
+ readonly type = "tab";
15
+ model: IFormTab;
16
+ state: IFormTabState;
17
+ protected crateItemState(): IFormTabState;
18
+ }
@@ -0,0 +1,13 @@
1
+ import '../../state/index.mjs';
2
+ import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller.mjs';
3
+ import { FormTabState } from '../../state/form-tab/form-tab.state.mjs';
4
+
5
+ "use strict";
6
+ class FormTabController extends FormItemBasicController {
7
+ type = "tab";
8
+ crateItemState() {
9
+ return new FormTabState();
10
+ }
11
+ }
12
+
13
+ export { FormTabController };
@@ -0,0 +1,18 @@
1
+ import { IFormTabPane, IFormTabPaneController, IFormTabPaneState } from '../../interface';
2
+ import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller';
3
+ /**
4
+ * 表单分组控制器
5
+ *
6
+ * @author zhanghanrui
7
+ * @date 2024-04-01 14:04:00
8
+ * @export
9
+ * @class FormTabPaneController
10
+ * @extends {FormItemBasicController}
11
+ * @implements {IFormTabPaneController}
12
+ */
13
+ export declare class FormTabPaneController extends FormItemBasicController implements IFormTabPaneController {
14
+ readonly type = "tab-pane";
15
+ model: IFormTabPane;
16
+ state: IFormTabPaneState;
17
+ protected crateItemState(): IFormTabPaneState;
18
+ }
@@ -0,0 +1,13 @@
1
+ import '../../state/index.mjs';
2
+ import { FormItemBasicController } from '../form-item-basic/form-item-basic.controller.mjs';
3
+ import { FormTabPaneState } from '../../state/form-tab-pane/form-tab-pane.state.mjs';
4
+
5
+ "use strict";
6
+ class FormTabPaneController extends FormItemBasicController {
7
+ type = "tab-pane";
8
+ crateItemState() {
9
+ return new FormTabPaneState();
10
+ }
11
+ }
12
+
13
+ export { FormTabPaneController };
@@ -0,0 +1,101 @@
1
+ import { IForm, IFormState, IFormController, IFormItemBasic, IFormItem, IFormItemProvider, IFormItemBasicController, IFormEvent, IFormHiddenItem } from '../../interface';
2
+ import { QXEvent } from 'qx-util';
3
+ /**
4
+ * 表单控制器
5
+ *
6
+ * @author zhanghanrui
7
+ * @date 2024-04-02 20:04:14
8
+ * @export
9
+ * @class GctFormController
10
+ * @implements {IFormController}
11
+ */
12
+ export declare class GctFormController implements IFormController {
13
+ readonly model: IForm;
14
+ readonly evt: QXEvent<IFormEvent>;
15
+ state: IFormState;
16
+ readonly item: Record<string, IFormItemBasicController>;
17
+ readonly provider: Record<string, IFormItemProvider>;
18
+ readonly context: IParams;
19
+ readonly params: IParams;
20
+ /**
21
+ * 所有属性的项标识,由 item 和 hidden 类型的表单项的 name 组成
22
+ *
23
+ * @author zhanghanrui
24
+ * @date 2024-04-02 20:04:20
25
+ * @protected
26
+ * @type {string[]}
27
+ */
28
+ protected fields: string[];
29
+ /**
30
+ * 所有[item、hidden]表单项的映射,key 为表单项的 name
31
+ *
32
+ * @author zhanghanrui
33
+ * @date 2024-04-02 20:04:39
34
+ * @protected
35
+ * @type {(Record<string, IFormItem | IFormHiddenItem>)}
36
+ */
37
+ protected modelMap: Record<string, IFormItem | IFormHiddenItem>;
38
+ constructor(model: IForm);
39
+ /**
40
+ * 表单初始化
41
+ *
42
+ * @author zhanghanrui
43
+ * @date 2024-04-01 13:04:27
44
+ * @protected
45
+ */
46
+ protected init(): void;
47
+ /**
48
+ * 初始化表单事件订阅相关
49
+ *
50
+ * @author zhanghanrui
51
+ * @date 2024-04-02 14:04:31
52
+ * @protected
53
+ */
54
+ protected initEvent(): void;
55
+ /**
56
+ * 计算表单状态,数据变更或加载数据后调用
57
+ *
58
+ * @author zhanghanrui
59
+ * @date 2024-04-02 21:04:15
60
+ * @protected
61
+ */
62
+ protected calcState(): void;
63
+ /**
64
+ * 初始化表单项控制器
65
+ *
66
+ * @author zhanghanrui
67
+ * @date 2024-04-01 13:04:38
68
+ * @protected
69
+ * @param {IFormItemBasic[]} models
70
+ */
71
+ protected initFormItems(models: IFormItemBasic[]): void;
72
+ /**
73
+ * 计算表单项隐藏
74
+ *
75
+ * @author zhanghanrui
76
+ * @date 2024-08-01 11:08:23
77
+ * @protected
78
+ */
79
+ protected calcHidden(): void;
80
+ /**
81
+ * 获取当前表单数据
82
+ *
83
+ * @author zhanghanrui
84
+ * @date 2024-04-02 20:04:16
85
+ * @return {*} {IData}
86
+ */
87
+ getData(): IData;
88
+ /**
89
+ * 重置表单数据
90
+ *
91
+ * @author zhanghanrui
92
+ * @date 2024-04-02 20:04:11
93
+ */
94
+ resetData(): void;
95
+ load(): Promise<IData>;
96
+ destroy(): void;
97
+ validate(): Promise<boolean>;
98
+ validateItem(_key: string): Promise<boolean>;
99
+ loaded(): void;
100
+ mounted(): void;
101
+ }