@gct-paas/core 0.0.1-dev.14 → 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,214 @@
1
+ import '../../state/index.mjs';
2
+ import '../../node_modules/.pnpm/qx-util@0.4.8/node_modules/qx-util/out/index.mjs';
3
+ import { QXEvent } from '../../node_modules/.pnpm/qx-util@0.4.8/node_modules/qx-util/out/utils/qx-event/qx-event.mjs';
4
+ import { FormState } from '../../state/form/form.state.mjs';
5
+
6
+ "use strict";
7
+ class GctFormController {
8
+ constructor(model) {
9
+ this.model = model;
10
+ this.init();
11
+ }
12
+ evt = new QXEvent();
13
+ state = new FormState();
14
+ item = {};
15
+ provider = {};
16
+ context = {};
17
+ params = {};
18
+ /**
19
+ * 所有属性的项标识,由 item 和 hidden 类型的表单项的 name 组成
20
+ *
21
+ * @author zhanghanrui
22
+ * @date 2024-04-02 20:04:20
23
+ * @protected
24
+ * @type {string[]}
25
+ */
26
+ fields = [];
27
+ /**
28
+ * 所有[item、hidden]表单项的映射,key 为表单项的 name
29
+ *
30
+ * @author zhanghanrui
31
+ * @date 2024-04-02 20:04:39
32
+ * @protected
33
+ * @type {(Record<string, IFormItem | IFormHiddenItem>)}
34
+ */
35
+ modelMap = {};
36
+ /**
37
+ * 表单初始化
38
+ *
39
+ * @author zhanghanrui
40
+ * @date 2024-04-01 13:04:27
41
+ * @protected
42
+ */
43
+ init() {
44
+ if (this.model.children) {
45
+ this.initFormItems(this.model.children);
46
+ }
47
+ this.initEvent();
48
+ this.calcState();
49
+ }
50
+ /**
51
+ * 初始化表单事件订阅相关
52
+ *
53
+ * @author zhanghanrui
54
+ * @date 2024-04-02 14:04:31
55
+ * @protected
56
+ */
57
+ initEvent() {
58
+ }
59
+ /**
60
+ * 计算表单状态,数据变更或加载数据后调用
61
+ *
62
+ * @author zhanghanrui
63
+ * @date 2024-04-02 21:04:15
64
+ * @protected
65
+ */
66
+ calcState() {
67
+ }
68
+ /**
69
+ * 初始化表单项控制器
70
+ *
71
+ * @author zhanghanrui
72
+ * @date 2024-04-01 13:04:38
73
+ * @protected
74
+ * @param {IFormItemBasic[]} models
75
+ */
76
+ initFormItems(models) {
77
+ models.forEach((model) => {
78
+ let provider = null;
79
+ if (model.type === "item" || model.type === "hidden") {
80
+ this.fields.push(model.name);
81
+ this.modelMap[model.name] = model;
82
+ }
83
+ if (model.type === "item") {
84
+ provider = _gct.register.formItem.create(
85
+ `${model.type}___${model.editor.type}___${model.name}`
86
+ );
87
+ if (!provider) {
88
+ provider = _gct.register.formItem.create(
89
+ `${model.type}___${model.editor.type}`
90
+ );
91
+ }
92
+ }
93
+ if (!provider) {
94
+ provider = _gct.register.formItem.create(model.type);
95
+ }
96
+ if (!provider) {
97
+ console.error(`\u672A\u627E\u5230\u8868\u5355\u9879\u63D0\u4F9B\u8005\uFF1A${model.type}`, model);
98
+ return;
99
+ }
100
+ this.provider[model.name] = provider;
101
+ if (model.type === "item") {
102
+ const item = model;
103
+ this.item[item.name] = provider.createController(this, item);
104
+ } else if (model.type === "hidden") {
105
+ const hidden = model;
106
+ this.item[hidden.name] = provider.createController(this, hidden);
107
+ } else if (model.type === "container" || model.container) {
108
+ const container = model;
109
+ this.item[model.name] = provider.createController(this, container);
110
+ if (container.children) {
111
+ this.initFormItems(container.children);
112
+ }
113
+ }
114
+ });
115
+ }
116
+ /**
117
+ * 计算表单项隐藏
118
+ *
119
+ * @author zhanghanrui
120
+ * @date 2024-08-01 11:08:23
121
+ * @protected
122
+ */
123
+ calcHidden() {
124
+ const keys = Object.keys(this.item);
125
+ keys.forEach((key) => {
126
+ const c = this.item[key];
127
+ if (c.model.hidden) {
128
+ const bol = c.model.hidden(this, c, this.state.data);
129
+ if (bol != null) {
130
+ c.state.visible = !bol;
131
+ }
132
+ }
133
+ });
134
+ }
135
+ /**
136
+ * 获取当前表单数据
137
+ *
138
+ * @author zhanghanrui
139
+ * @date 2024-04-02 20:04:16
140
+ * @return {*} {IData}
141
+ */
142
+ getData() {
143
+ const data = {};
144
+ this.fields.forEach((field) => {
145
+ const c = this.item[field];
146
+ if (c && (c.state.visible === true || c.model.type === "hidden")) {
147
+ data[c.key] = c.value;
148
+ }
149
+ });
150
+ return data;
151
+ }
152
+ /**
153
+ * 重置表单数据
154
+ *
155
+ * @author zhanghanrui
156
+ * @date 2024-04-02 20:04:11
157
+ */
158
+ resetData() {
159
+ this.fields.forEach((key) => {
160
+ const c = this.item[key];
161
+ if (c) {
162
+ c.reset();
163
+ }
164
+ });
165
+ }
166
+ async load() {
167
+ try {
168
+ if (!this.model.loadRequest) {
169
+ return {};
170
+ }
171
+ this.state.loading = true;
172
+ const data = await this.model.loadRequest({ id: this.context.id });
173
+ this.fields.forEach((key) => {
174
+ const c = this.item[key];
175
+ if (c) {
176
+ c.value = data[c.key];
177
+ }
178
+ c.defaultValue();
179
+ });
180
+ this.state.loaded = true;
181
+ return data;
182
+ } finally {
183
+ this.state.loading = false;
184
+ }
185
+ }
186
+ destroy() {
187
+ this.state.destroyed = true;
188
+ this.evt.reset();
189
+ this.fields.forEach((key) => {
190
+ const c = this.item[key];
191
+ if (c) {
192
+ c.destroy();
193
+ }
194
+ });
195
+ }
196
+ validate() {
197
+ return Promise.resolve(true);
198
+ }
199
+ validateItem(_key) {
200
+ return Promise.resolve(true);
201
+ }
202
+ loaded() {
203
+ this.calcHidden();
204
+ this.fields.forEach((key) => {
205
+ const c = this.item[key];
206
+ c.defaultValue();
207
+ });
208
+ this.calcState();
209
+ }
210
+ mounted() {
211
+ }
212
+ }
213
+
214
+ export { GctFormController };
@@ -0,0 +1,15 @@
1
+ export { EditFormController, useEditFormController, } from './edit-form/edit-form.controller';
2
+ export { EditorController } from './editor-item/editor-item.controller';
3
+ export { FormController, useFormController } from './form/form.controller';
4
+ export { GctFormController } from './gct-form/gct-form.controller';
5
+ export { FormCollapsePaneController } from './form-collapse-pane/form-collapse-pane.controller';
6
+ export { FormCollapseController } from './form-collapse/form-collapse.controller';
7
+ export { FormTabController } from './form-tab/form-tab.controller';
8
+ export { FormTabPaneController } from './form-tab-pane/form-tab-pane.controller';
9
+ export { FormGroupController } from './form-group/form-group.controller';
10
+ export { FormEditItemController } from './form-edit-item/form-edit-item.controller';
11
+ export { FormItemController } from './form-item/form-item.controller';
12
+ export { FormItemBasicController, useFormItemController, } from './form-item-basic/form-item-basic.controller';
13
+ export { FormHiddenItemController } from './form-item-hidden/form-item-hidden.controller';
14
+ export { LengthUnitEditorController } from './editor/length-unit-editor.controller';
15
+ export { ColorEditorController } from './editor/color-editor.controller';
@@ -0,0 +1,17 @@
1
+ export { EditFormController, useEditFormController } from './edit-form/edit-form.controller.mjs';
2
+ export { EditorController } from './editor-item/editor-item.controller.mjs';
3
+ export { FormController, useFormController } from './form/form.controller.mjs';
4
+ export { GctFormController } from './gct-form/gct-form.controller.mjs';
5
+ export { FormCollapsePaneController } from './form-collapse-pane/form-collapse-pane.controller.mjs';
6
+ export { FormCollapseController } from './form-collapse/form-collapse.controller.mjs';
7
+ export { FormTabController } from './form-tab/form-tab.controller.mjs';
8
+ export { FormTabPaneController } from './form-tab-pane/form-tab-pane.controller.mjs';
9
+ export { FormGroupController } from './form-group/form-group.controller.mjs';
10
+ export { FormEditItemController } from './form-edit-item/form-edit-item.controller.mjs';
11
+ export { FormItemController } from './form-item/form-item.controller.mjs';
12
+ export { FormItemBasicController, useFormItemController } from './form-item-basic/form-item-basic.controller.mjs';
13
+ export { FormHiddenItemController } from './form-item-hidden/form-item-hidden.controller.mjs';
14
+ export { LengthUnitEditorController } from './editor/length-unit-editor.controller.mjs';
15
+ export { ColorEditorController } from './editor/color-editor.controller.mjs';
16
+
17
+ "use strict";
@@ -44,6 +44,8 @@ export declare enum PropGroup {
44
44
  DISPLAY = "display",
45
45
  /**标签 */
46
46
  LABEL = "label",
47
+ /**vue3 */
48
+ VUE3 = "vue3",
47
49
  /**字段列表 */
48
50
  FIELD = "field",
49
51
  /**数据相关 */
@@ -47,6 +47,7 @@ var PropGroup = /* @__PURE__ */ ((PropGroup2) => {
47
47
  PropGroup2["ADVANCED"] = "advance";
48
48
  PropGroup2["DISPLAY"] = "display";
49
49
  PropGroup2["LABEL"] = "label";
50
+ PropGroup2["VUE3"] = "vue3";
50
51
  PropGroup2["FIELD"] = "field";
51
52
  PropGroup2["DATA"] = "data";
52
53
  PropGroup2["OTHER"] = "other";
@@ -1,9 +1,10 @@
1
1
  import { I18n } from 'vue-i18n';
2
2
  import { GlobalStoreUtil } from '../../store';
3
- import { DesignerRegister, RenderRegister } from '../../register';
3
+ import { DesignerRegister, EditorRegister, FormItemRegister, RenderRegister } from '../../register';
4
4
  import { IMessageUtil } from '../../interface';
5
5
  import { ApiManage as ApaasApi } from '../../service/gct-apaas';
6
6
  import { ApiManage as PlatformApi } from '../../service/gct-platform';
7
+ import { DictionaryUtil } from '../../utils';
7
8
  /**
8
9
  * gct paas 平台全局对象
9
10
  *
@@ -32,6 +33,11 @@ export declare class GctGlobal {
32
33
  * @type {IMessageUtil}
33
34
  */
34
35
  message: IMessageUtil;
36
+ /**
37
+ * 全局数据字典工具类
38
+ *
39
+ */
40
+ dictionary: DictionaryUtil;
35
41
  /**
36
42
  * 综合性注册中心
37
43
  */
@@ -44,6 +50,8 @@ export declare class GctGlobal {
44
50
  mobile: RenderRegister;
45
51
  web: RenderRegister;
46
52
  };
53
+ editor: typeof EditorRegister;
54
+ formItem: typeof FormItemRegister;
47
55
  };
48
56
  /**
49
57
  * 所有后台 api 服务
@@ -56,8 +64,8 @@ export declare class GctGlobal {
56
64
  * i18n 实例的 t 方法,多语言转换
57
65
  *
58
66
  * @param {string} key
59
- * @param {string} def
67
+ * @param {string} [def]
60
68
  * @returns {*} {string}
61
69
  */
62
- t(key: string, def: string): string;
70
+ t(key: string, def?: string): string;
63
71
  }
@@ -3,6 +3,10 @@ import { GlobalStoreUtil } from '../../store/index.mjs';
3
3
  import '../../register/index.mjs';
4
4
  import { ApiManage as ApiManage$1 } from '../../service/gct-apaas/index.mjs';
5
5
  import { ApiManage } from '../../service/gct-platform/index.mjs';
6
+ import '../../utils/index.mjs';
7
+ import { DictionaryUtil } from '../../utils/dictionary/dictionary.mjs';
8
+ import { FormItemRegister } from '../../register/form-item-register/form-item-register.mjs';
9
+ import { EditorRegister } from '../../register/editor-register/editor-register.mjs';
6
10
  import { RenderRegister } from '../../register/render-register/render-register.mjs';
7
11
  import { DesignerRegister } from '../../register/designer-register/designer-register.mjs';
8
12
 
@@ -29,6 +33,11 @@ class GctGlobal {
29
33
  * @type {IMessageUtil}
30
34
  */
31
35
  message;
36
+ /**
37
+ * 全局数据字典工具类
38
+ *
39
+ */
40
+ dictionary = new DictionaryUtil();
32
41
  /**
33
42
  * 综合性注册中心
34
43
  */
@@ -40,7 +49,9 @@ class GctGlobal {
40
49
  render: {
41
50
  mobile: new RenderRegister(),
42
51
  web: new RenderRegister()
43
- }
52
+ },
53
+ editor: EditorRegister,
54
+ formItem: FormItemRegister
44
55
  };
45
56
  /**
46
57
  * 所有后台 api 服务
@@ -53,7 +64,7 @@ class GctGlobal {
53
64
  * i18n 实例的 t 方法,多语言转换
54
65
  *
55
66
  * @param {string} key
56
- * @param {string} def
67
+ * @param {string} [def]
57
68
  * @returns {*} {string}
58
69
  */
59
70
  t(key, def) {
@@ -1 +1,5 @@
1
+ export { useForm } from './use-form/use-form';
2
+ export { useGctFormValue, useGctFormValueByText, } from './use-gct-form-value/use-gct-form-value';
3
+ export { useModal } from './use-modal/use-modal';
1
4
  export { useNamespace } from './use-namespace/use-namespace';
5
+ export { copyTextToClipboard, isDef, useCopyToClipboard, } from './useCopyToClipboard';
@@ -1,3 +1,7 @@
1
+ export { useForm } from './use-form/use-form.mjs';
2
+ export { useGctFormValue, useGctFormValueByText } from './use-gct-form-value/use-gct-form-value.mjs';
3
+ export { useModal } from './use-modal/use-modal.mjs';
1
4
  export { useNamespace } from './use-namespace/use-namespace.mjs';
5
+ export { copyTextToClipboard, isDef, useCopyToClipboard } from './useCopyToClipboard.mjs';
2
6
 
3
7
  "use strict";
@@ -0,0 +1,10 @@
1
+ import { IFormController } from '../../interface';
2
+ /**
3
+ * 获取表单控制器
4
+ *
5
+ * @author zhanghanrui
6
+ * @date 2024-04-02 17:04:17
7
+ * @export
8
+ * @return {*} {IFormController}
9
+ */
10
+ export declare function useForm(): IFormController;
@@ -0,0 +1,9 @@
1
+ import { inject } from 'vue';
2
+
3
+ "use strict";
4
+ function useForm() {
5
+ const c = inject("formController");
6
+ return c;
7
+ }
8
+
9
+ export { useForm };
@@ -0,0 +1,22 @@
1
+ import { WritableComputedRef } from 'vue';
2
+ /**
3
+ * 获取编辑器双向数据绑定值对象,自动发送更新事件
4
+ *
5
+ * @export
6
+ * @template T
7
+ * @param {string} [key] 可以指定字段字段名(指定后直接改 form),默认取 props 中的 value
8
+ * @returns {*} {WritableComputedRef<T>}
9
+ */
10
+ export declare function useGctFormValue<T = any>(key?: string): WritableComputedRef<T>;
11
+ /**
12
+ * 获取编辑器双向数据绑定值对象,自动发送更新事件(纯字符串)
13
+ *
14
+ * @author zhanghanrui
15
+ * @date 2024-04-03 13:04:25
16
+ * @export
17
+ * @template T
18
+ * @param {string} [prefix]
19
+ * @param {string} [suffix]
20
+ * @return {*} {WritableComputedRef<T>}
21
+ */
22
+ export declare function useGctFormValueByText(prefix?: string, suffix?: string): WritableComputedRef<string>;
@@ -0,0 +1,84 @@
1
+ import { computed, getCurrentInstance } from 'vue';
2
+ import { useForm } from '../use-form/use-form.mjs';
3
+
4
+ "use strict";
5
+ function useGctFormValue(key) {
6
+ let val;
7
+ if (key) {
8
+ const form = useForm();
9
+ val = computed({
10
+ get() {
11
+ return form.state.data[key];
12
+ },
13
+ set(val2) {
14
+ form.state.data[key] = val2;
15
+ }
16
+ });
17
+ } else {
18
+ let vue = getCurrentInstance().proxy;
19
+ const props = vue.$props;
20
+ const emit = vue.$emit;
21
+ val = computed({
22
+ get: () => {
23
+ return props.value;
24
+ },
25
+ set: (newVal) => {
26
+ if (typeof newVal === "string") {
27
+ newVal = newVal.trim();
28
+ }
29
+ if (typeof newVal != "object" && props.value == newVal) {
30
+ return;
31
+ }
32
+ emit("update:value", newVal);
33
+ }
34
+ });
35
+ vue = null;
36
+ }
37
+ return val;
38
+ }
39
+ function useGctFormValueByText(prefix, suffix) {
40
+ let vue = getCurrentInstance().proxy;
41
+ const props = vue.$props;
42
+ const emit = vue.$emit;
43
+ const prefixSize = prefix ? prefix.length : 0;
44
+ const suffixSize = suffix ? suffix.length : 0;
45
+ const val = computed({
46
+ get: () => {
47
+ if (!props.value) {
48
+ return "";
49
+ }
50
+ let value = props.value;
51
+ if (prefixSize > 0 && value.startsWith(prefix)) {
52
+ value = value.substring(prefixSize);
53
+ }
54
+ if (suffixSize > 0 && value.endsWith(suffix)) {
55
+ value = value.substring(0, value.length - suffixSize);
56
+ }
57
+ return value;
58
+ },
59
+ set: (newVal) => {
60
+ if (props.value === newVal) {
61
+ return;
62
+ }
63
+ if (typeof newVal === "string") {
64
+ newVal = newVal.trim();
65
+ }
66
+ if (newVal == "") {
67
+ emit("update:value", "");
68
+ return;
69
+ }
70
+ let value = newVal;
71
+ if (prefixSize > 0) {
72
+ value = prefix + value;
73
+ }
74
+ if (suffixSize > 0) {
75
+ value = value + suffix;
76
+ }
77
+ emit("update:value", value);
78
+ }
79
+ });
80
+ vue = null;
81
+ return val;
82
+ }
83
+
84
+ export { useGctFormValue, useGctFormValueByText };
@@ -0,0 +1,10 @@
1
+ import { IModal, IModalData } from '../../interface';
2
+ /**
3
+ * 获取模态打开时的模态实例
4
+ *
5
+ * @author zhanghanrui
6
+ * @date 2024-04-02 23:04:32
7
+ * @export
8
+ * @return {*} {IModal}
9
+ */
10
+ export declare function useModal(ok?: () => Promise<IModalData | null>): IModal | undefined;
@@ -0,0 +1,14 @@
1
+ import { inject } from 'vue';
2
+
3
+ "use strict";
4
+ function useModal(ok) {
5
+ const modal = inject("modal");
6
+ if (modal) {
7
+ if (ok) {
8
+ modal.ok = ok;
9
+ }
10
+ }
11
+ return modal;
12
+ }
13
+
14
+ export { useModal };
@@ -0,0 +1,11 @@
1
+ export declare function isDef<T = unknown>(val?: T): val is T;
2
+ interface Options {
3
+ target?: HTMLElement;
4
+ }
5
+ export declare function useCopyToClipboard(initial?: string): {
6
+ clipboardRef: import('vue').Ref<string, string>;
7
+ isSuccessRef: import('vue').Ref<boolean, boolean>;
8
+ copiedRef: import('vue').Ref<boolean, boolean>;
9
+ };
10
+ export declare function copyTextToClipboard(input: string, { target }?: Options): boolean;
11
+ export {};
@@ -0,0 +1,58 @@
1
+ import { ref, watch } from 'vue';
2
+
3
+ "use strict";
4
+ function isDef(val) {
5
+ return typeof val !== "undefined";
6
+ }
7
+ function useCopyToClipboard(initial) {
8
+ const clipboardRef = ref(initial || "");
9
+ const isSuccessRef = ref(false);
10
+ const copiedRef = ref(false);
11
+ watch(
12
+ clipboardRef,
13
+ (str) => {
14
+ if (isDef(str)) {
15
+ copiedRef.value = true;
16
+ isSuccessRef.value = copyTextToClipboard(str);
17
+ }
18
+ },
19
+ { immediate: !!initial, flush: "sync" }
20
+ );
21
+ return { clipboardRef, isSuccessRef, copiedRef };
22
+ }
23
+ function copyTextToClipboard(input, { target = document.body } = {}) {
24
+ const element = document.createElement("textarea");
25
+ const previouslyFocusedElement = document.activeElement;
26
+ element.value = input;
27
+ element.setAttribute("readonly", "");
28
+ element.style.contain = "strict";
29
+ element.style.position = "absolute";
30
+ element.style.left = "-9999px";
31
+ element.style.fontSize = "12pt";
32
+ const selection = document.getSelection();
33
+ let originalRange;
34
+ if (selection && selection.rangeCount > 0) {
35
+ originalRange = selection.getRangeAt(0);
36
+ }
37
+ target.append(element);
38
+ element.select();
39
+ element.selectionStart = 0;
40
+ element.selectionEnd = input.length;
41
+ let isSuccess = false;
42
+ try {
43
+ isSuccess = document.execCommand("copy");
44
+ } catch (e) {
45
+ throw new Error(e);
46
+ }
47
+ element.remove();
48
+ if (originalRange && selection) {
49
+ selection.removeAllRanges();
50
+ selection.addRange(originalRange);
51
+ }
52
+ if (previouslyFocusedElement) {
53
+ previouslyFocusedElement.focus();
54
+ }
55
+ return isSuccess;
56
+ }
57
+
58
+ export { copyTextToClipboard, isDef, useCopyToClipboard };
package/es/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './constants';
2
+ export * from './controller';
2
3
  export * from './enums';
3
4
  export * from './global';
4
5
  export * from './hooks';
package/es/index.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  import './global/index.mjs';
2
2
  export { PLUGIN_BASE_URL, STYLE_NAMESPACE_TAG } from './constants/index.mjs';
3
+ import './controller/index.mjs';
3
4
  import './enums/index.mjs';
4
5
  import './hooks/index.mjs';
5
6
  import './interface/index.mjs';
@@ -9,7 +10,25 @@ import './state/index.mjs';
9
10
  export { GlobalStoreUtil } from './store/index.mjs';
10
11
  import './utils/index.mjs';
11
12
  import { GctGlobal } from './global/gct/gct.mjs';
13
+ export { EditorRegisterConst } from './constants/editor-register/editor-register.mjs';
14
+ export { EditorType, EditorTypeOld } from './constants/editor-type/editor-type.mjs';
15
+ export { FormContainerType } from './constants/form-container-type/form-container-type.mjs';
12
16
  export { CoreConst } from './constants/core.mjs';
17
+ export { EditFormController, useEditFormController } from './controller/edit-form/edit-form.controller.mjs';
18
+ export { EditorController } from './controller/editor-item/editor-item.controller.mjs';
19
+ export { FormController, useFormController } from './controller/form/form.controller.mjs';
20
+ export { GctFormController } from './controller/gct-form/gct-form.controller.mjs';
21
+ export { FormCollapsePaneController } from './controller/form-collapse-pane/form-collapse-pane.controller.mjs';
22
+ export { FormCollapseController } from './controller/form-collapse/form-collapse.controller.mjs';
23
+ export { FormTabController } from './controller/form-tab/form-tab.controller.mjs';
24
+ export { FormTabPaneController } from './controller/form-tab-pane/form-tab-pane.controller.mjs';
25
+ export { FormGroupController } from './controller/form-group/form-group.controller.mjs';
26
+ export { FormEditItemController } from './controller/form-edit-item/form-edit-item.controller.mjs';
27
+ export { FormItemController } from './controller/form-item/form-item.controller.mjs';
28
+ export { FormItemBasicController, useFormItemController } from './controller/form-item-basic/form-item-basic.controller.mjs';
29
+ export { FormHiddenItemController } from './controller/form-item-hidden/form-item-hidden.controller.mjs';
30
+ export { LengthUnitEditorController } from './controller/editor/length-unit-editor.controller.mjs';
31
+ export { ColorEditorController } from './controller/editor/color-editor.controller.mjs';
13
32
  export { EntityModelCategoryEnum, EntityModelTypeEnum, FieldDefaultValueTypeEnum, FieldSysVarDefaultValueEnum, SHOW_FIELDTYPES, UserServiceType, scriptTypeEnum } from './enums/app-designer/index.mjs';
14
33
  export { ASSIGNMENTSTRATEGY_ENUM, BorderStyle, COLUMNS_TYPE, Dependency_ENUM, DisplayType, EventCategory, GLOBAL_TYPE, GLOBAL_VAR_TYPE, INNER_EVENT, PanelEnum, Postion, ProgressTypeEnum, PropGroup, SUB_TABLE_EDIT_MODE, SUB_TABLE_OPE_EVENT_TYPE, SUB_TABLE_OPE_EVENT_TYPE_INLINE, StyleGroup, TagTypeEnum, TextAlign, TextDecoration, VERIFICATIONCONDITIONS_TYPE, tagEnum } from './enums/page-designer/panel.mjs';
15
34
  export { ToolkitEnum } from './enums/page-designer/toolkit.mjs';
@@ -29,15 +48,32 @@ export { RoleEnum } from './enums/roleEnum.mjs';
29
48
  export { SizeEnum } from './enums/sizeEnum.mjs';
30
49
  export { ExamineAndApproveStateEnum, ProcessStatusEnum, ch_ProcessStatusMap } from './enums/processEnum.mjs';
31
50
  export { PluginModeEnum } from './enums/plugin-enum.mjs';
51
+ export { useForm } from './hooks/use-form/use-form.mjs';
52
+ export { useGctFormValue, useGctFormValueByText } from './hooks/use-gct-form-value/use-gct-form-value.mjs';
53
+ export { useModal } from './hooks/use-modal/use-modal.mjs';
32
54
  export { useNamespace } from './hooks/use-namespace/use-namespace.mjs';
55
+ export { copyTextToClipboard, isDef, useCopyToClipboard } from './hooks/useCopyToClipboard.mjs';
33
56
  export { DesignerRegister } from './register/designer-register/designer-register.mjs';
57
+ export { EditorRegister } from './register/editor-register/editor-register.mjs';
58
+ export { FormItemRegister } from './register/form-item-register/form-item-register.mjs';
34
59
  export { RenderRegister } from './register/render-register/render-register.mjs';
35
60
  export { GlobalPiniaState } from './state/global-pinia-state/global-pinia-state.mjs';
61
+ export { FormState } from './state/form/form.state.mjs';
62
+ export { FormCollapsePaneState } from './state/form-collapse-pane/form-collapse-pane.state.mjs';
63
+ export { FormCollapseState } from './state/form-collapse/form-collapse.state.mjs';
64
+ export { FormTabState } from './state/form-tab/form-tab.state.mjs';
65
+ export { FormTabPaneState } from './state/form-tab-pane/form-tab-pane.state.mjs';
66
+ export { FormEditItemState } from './state/form-edit-item/form-edit-item.state.mjs';
67
+ export { FormGroupState } from './state/form-group/form-group.state.mjs';
68
+ export { FormItemState } from './state/form-item/form-item.state.mjs';
69
+ export { FormItemBasicState } from './state/form-item-basic/form-item-basic.state.mjs';
36
70
  export { HttpUtil } from './utils/axios/axios.mjs';
71
+ export { DictionaryUtil } from './utils/dictionary/dictionary.mjs';
37
72
  export { Namespace } from './utils/namespace/namespace.mjs';
38
73
  export { PluginPgkUtil } from './utils/plugin-pkg-util/plugin-pkg-util.mjs';
39
74
  export { PluginStaticResource } from './utils/plugin-static-resource/plugin-static-resource.mjs';
40
75
  export { deepMerge, getToken, setToken } from './utils/tools/tools.mjs';
76
+ export { widthEditorInstall } from './utils/width-install/width-install.mjs';
41
77
 
42
78
  "use strict";
43
79
  function install() {