@kp-ui/lowcode-pc 1.0.0-alpha.3 → 1.0.0-alpha.5

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 (450) hide show
  1. package/_virtual/_plugin-vue_export-helper.js +11 -0
  2. package/_virtual/_plugin-vue_export-helper.js.map +1 -0
  3. package/assets/styles/style.css +300 -292
  4. package/core/src/components/DragBtn.vue.js +8 -0
  5. package/core/src/components/DragBtn.vue.js.map +1 -0
  6. package/core/src/components/DragBtn.vue2.js +33 -0
  7. package/core/src/components/DragBtn.vue2.js.map +1 -0
  8. package/core/src/components/common/RenderWidgetList.vue.js +8 -0
  9. package/core/src/components/common/RenderWidgetList.vue.js.map +1 -0
  10. package/core/src/components/common/RenderWidgetList.vue2.js +94 -0
  11. package/core/src/components/common/RenderWidgetList.vue2.js.map +1 -0
  12. package/core/src/components/common/desginer/WidgetWrapper.vue.js +8 -0
  13. package/core/src/components/common/desginer/WidgetWrapper.vue.js.map +1 -0
  14. package/core/src/components/common/desginer/WidgetWrapper.vue2.js +67 -0
  15. package/core/src/components/common/desginer/WidgetWrapper.vue2.js.map +1 -0
  16. package/core/src/components/common/render/Debugger.vue.js +8 -0
  17. package/core/src/components/common/render/Debugger.vue.js.map +1 -0
  18. package/core/src/components/common/render/Debugger.vue2.js +73 -0
  19. package/core/src/components/common/render/Debugger.vue2.js.map +1 -0
  20. package/core/src/components/common/render/LowcodeRenderProvider.vue.js +51 -0
  21. package/core/src/components/common/render/LowcodeRenderProvider.vue.js.map +1 -0
  22. package/core/src/components/common/render/LowcodeRenderProvider.vue2.js +5 -0
  23. package/core/src/components/common/render/LowcodeRenderProvider.vue2.js.map +1 -0
  24. package/core/src/components/common/render/RenderForm.vue.js +69 -0
  25. package/core/src/components/common/render/RenderForm.vue.js.map +1 -0
  26. package/core/src/components/common/render/RenderForm.vue2.js +5 -0
  27. package/core/src/components/common/render/RenderForm.vue2.js.map +1 -0
  28. package/core/src/components/common/render/useFormContext.js +262 -0
  29. package/core/src/components/common/render/useFormContext.js.map +1 -0
  30. package/core/src/components/contextMenu/WidgetContextMenu.vue.js +8 -0
  31. package/core/src/components/contextMenu/WidgetContextMenu.vue.js.map +1 -0
  32. package/core/src/components/contextMenu/WidgetContextMenu.vue2.js +125 -0
  33. package/core/src/components/contextMenu/WidgetContextMenu.vue2.js.map +1 -0
  34. package/core/src/components/contextMenu/useWidgetContextMenu.js +165 -0
  35. package/core/src/components/contextMenu/useWidgetContextMenu.js.map +1 -0
  36. package/core/src/constants/LayoutTypeEnum.js +10 -0
  37. package/core/src/constants/LayoutTypeEnum.js.map +1 -0
  38. package/core/src/constants/WidgetTypeEnum.js +63 -0
  39. package/core/src/constants/WidgetTypeEnum.js.map +1 -0
  40. package/core/src/constants/index.js +9 -0
  41. package/core/src/constants/index.js.map +1 -0
  42. package/core/src/hooks/useAppRef.js +56 -0
  43. package/core/src/hooks/useAppRef.js.map +1 -0
  44. package/core/src/hooks/useDataHttp.js +65 -0
  45. package/core/src/hooks/useDataHttp.js.map +1 -0
  46. package/core/src/hooks/useDesigner.js +56 -0
  47. package/core/src/hooks/useDesigner.js.map +1 -0
  48. package/core/src/hooks/useField.js +570 -0
  49. package/core/src/hooks/useField.js.map +1 -0
  50. package/core/src/hooks/useFormValidation.js +112 -0
  51. package/core/src/hooks/useFormValidation.js.map +1 -0
  52. package/core/src/hooks/useLowcode.js +94 -0
  53. package/core/src/hooks/useLowcode.js.map +1 -0
  54. package/core/src/hooks/useWidget.js +15 -0
  55. package/core/src/hooks/useWidget.js.map +1 -0
  56. package/{assets/en-US.mjs → core/src/lang/en-US.js} +3 -1
  57. package/core/src/lang/en-US.js.map +1 -0
  58. package/{assets/en-US_extension.mjs → core/src/lang/en-US_extension.js} +1 -1
  59. package/core/src/lang/en-US_extension.js.map +1 -0
  60. package/{assets/en-US_render.mjs → core/src/lang/en-US_render.js} +1 -1
  61. package/core/src/lang/en-US_render.js.map +1 -0
  62. package/{assets/zh-CN.mjs → core/src/lang/zh-CN.js} +19 -4
  63. package/core/src/lang/zh-CN.js.map +1 -0
  64. package/{assets/zh-CN_extension.mjs → core/src/lang/zh-CN_extension.js} +1 -1
  65. package/core/src/lang/zh-CN_extension.js.map +1 -0
  66. package/{assets/zh-CN_render.mjs → core/src/lang/zh-CN_render.js} +1 -1
  67. package/core/src/lang/zh-CN_render.js.map +1 -0
  68. package/core/src/utils/event-bus.js +8 -0
  69. package/core/src/utils/event-bus.js.map +1 -0
  70. package/core/src/utils/format.js +46 -0
  71. package/core/src/utils/format.js.map +1 -0
  72. package/core/src/utils/getFileName.js +10 -0
  73. package/core/src/utils/getFileName.js.map +1 -0
  74. package/core/src/utils/i18n.js +33 -0
  75. package/core/src/utils/i18n.js.map +1 -0
  76. package/core/src/utils/smart-vue-i18n/index.js +84 -0
  77. package/core/src/utils/smart-vue-i18n/index.js.map +1 -0
  78. package/core/src/utils/useEmitter.js +95 -0
  79. package/core/src/utils/useEmitter.js.map +1 -0
  80. package/core/src/utils/util.js +155 -0
  81. package/core/src/utils/util.js.map +1 -0
  82. package/core/src/utils/validators.js +114 -0
  83. package/core/src/utils/validators.js.map +1 -0
  84. package/install.js +29 -0
  85. package/install.js.map +1 -0
  86. package/package.json +34 -34
  87. package/src/components/desginer/form-widget/container-widget/data-table-widget.vue.js +8 -0
  88. package/src/components/desginer/form-widget/container-widget/data-table-widget.vue.js.map +1 -0
  89. package/{assets/data-table-widget.mjs → src/components/desginer/form-widget/container-widget/data-table-widget.vue2.js} +5 -4
  90. package/src/components/desginer/form-widget/container-widget/data-table-widget.vue2.js.map +1 -0
  91. package/src/components/desginer/form-widget/container-widget/grid-col-widget.vue.js +8 -0
  92. package/src/components/desginer/form-widget/container-widget/grid-col-widget.vue.js.map +1 -0
  93. package/{assets/grid-col-widget.mjs → src/components/desginer/form-widget/container-widget/grid-col-widget.vue2.js} +8 -15
  94. package/src/components/desginer/form-widget/container-widget/grid-col-widget.vue2.js.map +1 -0
  95. package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue.js +8 -0
  96. package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue.js.map +1 -0
  97. package/{assets/grid-sub-form-widget.mjs → src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue2.js} +4 -4
  98. package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue2.js.map +1 -0
  99. package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue3.js +2 -0
  100. package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue3.js.map +1 -0
  101. package/src/components/desginer/form-widget/container-widget/grid-widget.vue.js +8 -0
  102. package/src/components/desginer/form-widget/container-widget/grid-widget.vue.js.map +1 -0
  103. package/{assets/grid-widget.mjs → src/components/desginer/form-widget/container-widget/grid-widget.vue2.js} +13 -10
  104. package/src/components/desginer/form-widget/container-widget/grid-widget.vue2.js.map +1 -0
  105. package/src/components/desginer/form-widget/container-widget/index.js +19 -0
  106. package/src/components/desginer/form-widget/container-widget/index.js.map +1 -0
  107. package/src/components/desginer/form-widget/container-widget/tab-widget.vue.js +8 -0
  108. package/src/components/desginer/form-widget/container-widget/tab-widget.vue.js.map +1 -0
  109. package/{assets/tab-widget.mjs → src/components/desginer/form-widget/container-widget/tab-widget.vue2.js} +5 -4
  110. package/src/components/desginer/form-widget/container-widget/tab-widget.vue2.js.map +1 -0
  111. package/src/components/desginer/form-widget/container-widget/useTableWidget.js +297 -0
  112. package/src/components/desginer/form-widget/container-widget/useTableWidget.js.map +1 -0
  113. package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.js +8 -0
  114. package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.js.map +1 -0
  115. package/{assets/vf-box-widget.mjs → src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js} +5 -4
  116. package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -0
  117. package/src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue.js +9 -0
  118. package/src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue.js.map +1 -0
  119. package/{assets/vf-collapse-widget.mjs → src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue2.js} +6 -7
  120. package/src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue2.js.map +1 -0
  121. package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue.js +8 -0
  122. package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue.js.map +1 -0
  123. package/{assets/vf-dialog-widget.mjs → src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js} +13 -5
  124. package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js.map +1 -0
  125. package/src/components/desginer/form-widget/index.vue.js +2 -0
  126. package/src/components/desginer/form-widget/index.vue.js.map +1 -0
  127. package/src/components/desginer/widget-panel/advanced/bpmn-editor.js +30 -0
  128. package/src/components/desginer/widget-panel/advanced/bpmn-editor.js.map +1 -0
  129. package/src/components/desginer/widget-panel/advanced/cascader.js +68 -0
  130. package/src/components/desginer/widget-panel/advanced/cascader.js.map +1 -0
  131. package/src/components/desginer/widget-panel/advanced/code-editor.js +44 -0
  132. package/src/components/desginer/widget-panel/advanced/code-editor.js.map +1 -0
  133. package/src/components/desginer/widget-panel/advanced/data-table.js +102 -0
  134. package/src/components/desginer/widget-panel/advanced/data-table.js.map +1 -0
  135. package/src/components/desginer/widget-panel/advanced/diy-compontent.js +30 -0
  136. package/src/components/desginer/widget-panel/advanced/diy-compontent.js.map +1 -0
  137. package/src/components/desginer/widget-panel/advanced/file-upload.js +43 -0
  138. package/src/components/desginer/widget-panel/advanced/file-upload.js.map +1 -0
  139. package/src/components/desginer/widget-panel/advanced/rich-editor.js +40 -0
  140. package/src/components/desginer/widget-panel/advanced/rich-editor.js.map +1 -0
  141. package/src/components/desginer/widget-panel/advanced/tree-select.js +69 -0
  142. package/src/components/desginer/widget-panel/advanced/tree-select.js.map +1 -0
  143. package/src/components/desginer/widget-panel/advanced/tree.js +47 -0
  144. package/src/components/desginer/widget-panel/advanced/tree.js.map +1 -0
  145. package/src/components/desginer/widget-panel/advancedFieldsEnums.js +24 -0
  146. package/src/components/desginer/widget-panel/advancedFieldsEnums.js.map +1 -0
  147. package/src/components/desginer/widget-panel/basicFields/button.js +37 -0
  148. package/src/components/desginer/widget-panel/basicFields/button.js.map +1 -0
  149. package/src/components/desginer/widget-panel/basicFields/buttonList.js +45 -0
  150. package/src/components/desginer/widget-panel/basicFields/buttonList.js.map +1 -0
  151. package/src/components/desginer/widget-panel/basicFields/checkbox.js +64 -0
  152. package/src/components/desginer/widget-panel/basicFields/checkbox.js.map +1 -0
  153. package/src/components/desginer/widget-panel/basicFields/color.js +38 -0
  154. package/src/components/desginer/widget-panel/basicFields/color.js.map +1 -0
  155. package/src/components/desginer/widget-panel/basicFields/date.js +55 -0
  156. package/src/components/desginer/widget-panel/basicFields/date.js.map +1 -0
  157. package/src/components/desginer/widget-panel/basicFields/dateRange.js +55 -0
  158. package/src/components/desginer/widget-panel/basicFields/dateRange.js.map +1 -0
  159. package/src/components/desginer/widget-panel/basicFields/divider.js +31 -0
  160. package/src/components/desginer/widget-panel/basicFields/divider.js.map +1 -0
  161. package/src/components/desginer/widget-panel/basicFields/dropdown.js +42 -0
  162. package/src/components/desginer/widget-panel/basicFields/dropdown.js.map +1 -0
  163. package/src/components/desginer/widget-panel/basicFields/htmlText.js +29 -0
  164. package/src/components/desginer/widget-panel/basicFields/htmlText.js.map +1 -0
  165. package/src/components/desginer/widget-panel/basicFields/input.js +56 -0
  166. package/src/components/desginer/widget-panel/basicFields/input.js.map +1 -0
  167. package/src/components/desginer/widget-panel/basicFields/number.js +50 -0
  168. package/src/components/desginer/widget-panel/basicFields/number.js.map +1 -0
  169. package/src/components/desginer/widget-panel/basicFields/radio.js +70 -0
  170. package/src/components/desginer/widget-panel/basicFields/radio.js.map +1 -0
  171. package/src/components/desginer/widget-panel/basicFields/rate.js +45 -0
  172. package/src/components/desginer/widget-panel/basicFields/rate.js.map +1 -0
  173. package/src/components/desginer/widget-panel/basicFields/select.js +77 -0
  174. package/src/components/desginer/widget-panel/basicFields/select.js.map +1 -0
  175. package/src/components/desginer/widget-panel/basicFields/slider.js +47 -0
  176. package/src/components/desginer/widget-panel/basicFields/slider.js.map +1 -0
  177. package/src/components/desginer/widget-panel/basicFields/staticText.js +29 -0
  178. package/src/components/desginer/widget-panel/basicFields/staticText.js.map +1 -0
  179. package/src/components/desginer/widget-panel/basicFields/switch.js +41 -0
  180. package/src/components/desginer/widget-panel/basicFields/switch.js.map +1 -0
  181. package/src/components/desginer/widget-panel/basicFields/textarea.js +53 -0
  182. package/src/components/desginer/widget-panel/basicFields/textarea.js.map +1 -0
  183. package/src/components/desginer/widget-panel/basicFields/time.js +51 -0
  184. package/src/components/desginer/widget-panel/basicFields/time.js.map +1 -0
  185. package/src/components/desginer/widget-panel/basicFields/timeRange.js +52 -0
  186. package/src/components/desginer/widget-panel/basicFields/timeRange.js.map +1 -0
  187. package/src/components/desginer/widget-panel/basicFieldsEnums.js +46 -0
  188. package/src/components/desginer/widget-panel/basicFieldsEnums.js.map +1 -0
  189. package/src/components/desginer/widget-panel/containers/grid-col.js +29 -0
  190. package/src/components/desginer/widget-panel/containers/grid-col.js.map +1 -0
  191. package/src/components/desginer/widget-panel/containers/grid-sub-form.js +22 -0
  192. package/src/components/desginer/widget-panel/containers/grid-sub-form.js.map +1 -0
  193. package/src/components/desginer/widget-panel/containers/grid.js +26 -0
  194. package/src/components/desginer/widget-panel/containers/grid.js.map +1 -0
  195. package/src/components/desginer/widget-panel/containers/index.js +19 -0
  196. package/{index.js.map → src/components/desginer/widget-panel/containers/index.js.map} +1 -1
  197. package/src/components/desginer/widget-panel/containers/tab-pane.js +23 -0
  198. package/src/components/desginer/widget-panel/containers/tab-pane.js.map +1 -0
  199. package/src/components/desginer/widget-panel/containers/tab.js +27 -0
  200. package/src/components/desginer/widget-panel/containers/tab.js.map +1 -0
  201. package/src/components/desginer/widget-panel/containers/vf-box.js +47 -0
  202. package/src/components/desginer/widget-panel/containers/vf-box.js.map +1 -0
  203. package/src/components/desginer/widget-panel/containers/vf-collapse.js +25 -0
  204. package/src/components/desginer/widget-panel/containers/vf-collapse.js.map +1 -0
  205. package/src/components/desginer/widget-panel/containers/vf-dialog.js +55 -0
  206. package/src/components/desginer/widget-panel/containers/vf-dialog.js.map +1 -0
  207. package/src/components/desginer/widget-panel/widgetsConfig.js +7 -0
  208. package/src/components/desginer/widget-panel/widgetsConfig.js.map +1 -0
  209. package/src/components/field-widget/bpmn-editor-widget.vue.js +8 -0
  210. package/src/components/field-widget/bpmn-editor-widget.vue.js.map +1 -0
  211. package/{assets/bpmn-editor-widget.mjs → src/components/field-widget/bpmn-editor-widget.vue2.js} +5 -6
  212. package/src/components/field-widget/bpmn-editor-widget.vue2.js.map +1 -0
  213. package/src/components/field-widget/button-list-widget.vue.js +8 -0
  214. package/src/components/field-widget/button-list-widget.vue.js.map +1 -0
  215. package/{assets/button-list-widget.mjs → src/components/field-widget/button-list-widget.vue2.js} +13 -6
  216. package/src/components/field-widget/button-list-widget.vue2.js.map +1 -0
  217. package/src/components/field-widget/button-widget.vue.js +8 -0
  218. package/src/components/field-widget/button-widget.vue.js.map +1 -0
  219. package/{assets/button-widget.mjs → src/components/field-widget/button-widget.vue2.js} +4 -5
  220. package/src/components/field-widget/button-widget.vue2.js.map +1 -0
  221. package/src/components/field-widget/cascader-widget.vue.js +5 -0
  222. package/src/components/field-widget/cascader-widget.vue.js.map +1 -0
  223. package/{assets/cascader-widget.mjs → src/components/field-widget/cascader-widget.vue2.js} +6 -5
  224. package/src/components/field-widget/cascader-widget.vue2.js.map +1 -0
  225. package/src/components/field-widget/checkbox-widget.vue.js +5 -0
  226. package/src/components/field-widget/checkbox-widget.vue.js.map +1 -0
  227. package/{assets/checkbox-widget.mjs → src/components/field-widget/checkbox-widget.vue2.js} +9 -11
  228. package/src/components/field-widget/checkbox-widget.vue2.js.map +1 -0
  229. package/src/components/field-widget/code-editor-widget.vue.js +5 -0
  230. package/src/components/field-widget/code-editor-widget.vue.js.map +1 -0
  231. package/{assets/code-editor-widget.mjs → src/components/field-widget/code-editor-widget.vue2.js} +4 -4
  232. package/src/components/field-widget/code-editor-widget.vue2.js.map +1 -0
  233. package/src/components/field-widget/color-widget.vue.js +8 -0
  234. package/src/components/field-widget/color-widget.vue.js.map +1 -0
  235. package/{assets/color-widget.mjs → src/components/field-widget/color-widget.vue2.js} +5 -6
  236. package/src/components/field-widget/color-widget.vue2.js.map +1 -0
  237. package/src/components/field-widget/date-range-widget.vue.js +8 -0
  238. package/src/components/field-widget/date-range-widget.vue.js.map +1 -0
  239. package/{assets/date-range-widget.mjs → src/components/field-widget/date-range-widget.vue2.js} +5 -6
  240. package/src/components/field-widget/date-range-widget.vue2.js.map +1 -0
  241. package/src/components/field-widget/date-widget.vue.js +8 -0
  242. package/src/components/field-widget/date-widget.vue.js.map +1 -0
  243. package/{assets/date-widget.mjs → src/components/field-widget/date-widget.vue2.js} +5 -6
  244. package/src/components/field-widget/date-widget.vue2.js.map +1 -0
  245. package/src/components/field-widget/divider-widget.vue.js +5 -0
  246. package/src/components/field-widget/divider-widget.vue.js.map +1 -0
  247. package/{assets/divider-widget.mjs → src/components/field-widget/divider-widget.vue2.js} +3 -3
  248. package/src/components/field-widget/divider-widget.vue2.js.map +1 -0
  249. package/src/components/field-widget/diy-compontent-widget.vue.js +5 -0
  250. package/src/components/field-widget/diy-compontent-widget.vue.js.map +1 -0
  251. package/{assets/diy-compontent-widget.mjs → src/components/field-widget/diy-compontent-widget.vue2.js} +4 -4
  252. package/src/components/field-widget/diy-compontent-widget.vue2.js.map +1 -0
  253. package/src/components/field-widget/dropdown-widget.vue.js +8 -0
  254. package/src/components/field-widget/dropdown-widget.vue.js.map +1 -0
  255. package/{assets/dropdown-widget.mjs → src/components/field-widget/dropdown-widget.vue2.js} +4 -5
  256. package/src/components/field-widget/dropdown-widget.vue2.js.map +1 -0
  257. package/src/components/field-widget/file-upload-widget.vue.js +8 -0
  258. package/src/components/field-widget/file-upload-widget.vue.js.map +1 -0
  259. package/{assets/file-upload-widget.mjs → src/components/field-widget/file-upload-widget.vue2.js} +30 -22
  260. package/src/components/field-widget/file-upload-widget.vue2.js.map +1 -0
  261. package/src/components/field-widget/form-item-wrapper.vue.js +8 -0
  262. package/src/components/field-widget/form-item-wrapper.vue.js.map +1 -0
  263. package/{assets/form-item-wrapper.mjs → src/components/field-widget/form-item-wrapper.vue2.js} +3 -4
  264. package/src/components/field-widget/form-item-wrapper.vue2.js.map +1 -0
  265. package/{assets/useSelect.mjs → src/components/field-widget/hooks/useSelect.js} +3 -3
  266. package/src/components/field-widget/hooks/useSelect.js.map +1 -0
  267. package/src/components/field-widget/html-text-widget.vue.js +8 -0
  268. package/src/components/field-widget/html-text-widget.vue.js.map +1 -0
  269. package/{assets/html-text-widget.mjs → src/components/field-widget/html-text-widget.vue2.js} +4 -5
  270. package/src/components/field-widget/html-text-widget.vue2.js.map +1 -0
  271. package/src/components/field-widget/html-text-widget.vue3.js +2 -0
  272. package/src/components/field-widget/html-text-widget.vue3.js.map +1 -0
  273. package/src/components/field-widget/index.js +12 -0
  274. package/src/components/field-widget/index.js.map +1 -0
  275. package/src/components/field-widget/input-widget.vue.js +8 -0
  276. package/src/components/field-widget/input-widget.vue.js.map +1 -0
  277. package/{assets/input-widget.mjs → src/components/field-widget/input-widget.vue2.js} +5 -6
  278. package/src/components/field-widget/input-widget.vue2.js.map +1 -0
  279. package/src/components/field-widget/number-widget.vue.js +5 -0
  280. package/src/components/field-widget/number-widget.vue.js.map +1 -0
  281. package/{assets/number-widget.mjs → src/components/field-widget/number-widget.vue2.js} +4 -4
  282. package/src/components/field-widget/number-widget.vue2.js.map +1 -0
  283. package/src/components/field-widget/radio-widget.vue.js +8 -0
  284. package/src/components/field-widget/radio-widget.vue.js.map +1 -0
  285. package/{assets/radio-widget.mjs → src/components/field-widget/radio-widget.vue2.js} +6 -7
  286. package/src/components/field-widget/radio-widget.vue2.js.map +1 -0
  287. package/src/components/field-widget/rate-widget.vue.js +8 -0
  288. package/src/components/field-widget/rate-widget.vue.js.map +1 -0
  289. package/{assets/rate-widget.mjs → src/components/field-widget/rate-widget.vue2.js} +5 -6
  290. package/src/components/field-widget/rate-widget.vue2.js.map +1 -0
  291. package/src/components/field-widget/rich-editor-widget.vue.js +8 -0
  292. package/src/components/field-widget/rich-editor-widget.vue.js.map +1 -0
  293. package/{assets/rich-editor-widget.mjs → src/components/field-widget/rich-editor-widget.vue2.js} +5 -6
  294. package/src/components/field-widget/rich-editor-widget.vue2.js.map +1 -0
  295. package/src/components/field-widget/select-widget.vue.js +8 -0
  296. package/src/components/field-widget/select-widget.vue.js.map +1 -0
  297. package/{assets/select-widget.mjs → src/components/field-widget/select-widget.vue2.js} +5 -7
  298. package/src/components/field-widget/select-widget.vue2.js.map +1 -0
  299. package/src/components/field-widget/slider-widget.vue.js +5 -0
  300. package/src/components/field-widget/slider-widget.vue.js.map +1 -0
  301. package/{assets/slider-widget.mjs → src/components/field-widget/slider-widget.vue2.js} +4 -4
  302. package/src/components/field-widget/slider-widget.vue2.js.map +1 -0
  303. package/src/components/field-widget/static-text-widget.vue.js +5 -0
  304. package/src/components/field-widget/static-text-widget.vue.js.map +1 -0
  305. package/{assets/static-text-widget.mjs → src/components/field-widget/static-text-widget.vue2.js} +3 -3
  306. package/src/components/field-widget/static-text-widget.vue2.js.map +1 -0
  307. package/src/components/field-widget/switch-widget.vue.js +8 -0
  308. package/src/components/field-widget/switch-widget.vue.js.map +1 -0
  309. package/{assets/switch-widget.mjs → src/components/field-widget/switch-widget.vue2.js} +5 -6
  310. package/src/components/field-widget/switch-widget.vue2.js.map +1 -0
  311. package/src/components/field-widget/textarea-widget.vue.js +8 -0
  312. package/src/components/field-widget/textarea-widget.vue.js.map +1 -0
  313. package/{assets/textarea-widget.mjs → src/components/field-widget/textarea-widget.vue2.js} +5 -6
  314. package/src/components/field-widget/textarea-widget.vue2.js.map +1 -0
  315. package/src/components/field-widget/time-range-widget.vue.js +8 -0
  316. package/src/components/field-widget/time-range-widget.vue.js.map +1 -0
  317. package/{assets/time-range-widget.mjs → src/components/field-widget/time-range-widget.vue2.js} +5 -6
  318. package/src/components/field-widget/time-range-widget.vue2.js.map +1 -0
  319. package/src/components/field-widget/time-widget.vue.js +8 -0
  320. package/src/components/field-widget/time-widget.vue.js.map +1 -0
  321. package/{assets/time-widget.mjs → src/components/field-widget/time-widget.vue2.js} +5 -6
  322. package/src/components/field-widget/time-widget.vue2.js.map +1 -0
  323. package/src/components/field-widget/tree-widget.vue.js +8 -0
  324. package/src/components/field-widget/tree-widget.vue.js.map +1 -0
  325. package/{assets/tree-widget.mjs → src/components/field-widget/tree-widget.vue2.js} +6 -7
  326. package/src/components/field-widget/tree-widget.vue2.js.map +1 -0
  327. package/src/components/field-widget/treeSelect-widget.vue.js +5 -0
  328. package/src/components/field-widget/treeSelect-widget.vue.js.map +1 -0
  329. package/{assets/treeSelect-widget.mjs → src/components/field-widget/treeSelect-widget.vue2.js} +6 -5
  330. package/src/components/field-widget/treeSelect-widget.vue2.js.map +1 -0
  331. package/{assets/useField.mjs → src/components/field-widget/useField.js} +7 -3
  332. package/src/components/field-widget/useField.js.map +1 -0
  333. package/src/components/field-widget/vue-render-widget.vue.js +5 -0
  334. package/src/components/field-widget/vue-render-widget.vue.js.map +1 -0
  335. package/{assets/vue-render-widget.mjs → src/components/field-widget/vue-render-widget.vue2.js} +4 -4
  336. package/src/components/field-widget/vue-render-widget.vue2.js.map +1 -0
  337. package/src/components/form-render/RenderWigetList.vue.js +5 -0
  338. package/src/components/form-render/RenderWigetList.vue.js.map +1 -0
  339. package/src/components/form-render/RenderWigetList.vue2.js +46 -0
  340. package/src/components/form-render/RenderWigetList.vue2.js.map +1 -0
  341. package/src/components/form-render/container-items/data-table-widget.vue.js +8 -0
  342. package/src/components/form-render/container-items/data-table-widget.vue.js.map +1 -0
  343. package/src/components/form-render/container-items/data-table-widget.vue2.js +119 -0
  344. package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -0
  345. package/src/components/form-render/container-items/grid-col-widget.vue.js +8 -0
  346. package/src/components/form-render/container-items/grid-col-widget.vue.js.map +1 -0
  347. package/src/components/form-render/container-items/grid-col-widget.vue2.js +56 -0
  348. package/src/components/form-render/container-items/grid-col-widget.vue2.js.map +1 -0
  349. package/src/components/form-render/container-items/grid-sub-form-widget.vue.js +8 -0
  350. package/src/components/form-render/container-items/grid-sub-form-widget.vue.js.map +1 -0
  351. package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js +263 -0
  352. package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js.map +1 -0
  353. package/src/components/form-render/container-items/grid-widget.vue.js +8 -0
  354. package/src/components/form-render/container-items/grid-widget.vue.js.map +1 -0
  355. package/src/components/form-render/container-items/grid-widget.vue2.js +61 -0
  356. package/src/components/form-render/container-items/grid-widget.vue2.js.map +1 -0
  357. package/src/components/form-render/container-items/grid-widget.vue3.js +2 -0
  358. package/src/components/form-render/container-items/grid-widget.vue3.js.map +1 -0
  359. package/src/components/form-render/container-items/index.js +21 -0
  360. package/src/components/form-render/container-items/index.js.map +1 -0
  361. package/src/components/form-render/container-items/tab-widget.vue.js +8 -0
  362. package/src/components/form-render/container-items/tab-widget.vue.js.map +1 -0
  363. package/src/components/form-render/container-items/tab-widget.vue2.js +66 -0
  364. package/src/components/form-render/container-items/tab-widget.vue2.js.map +1 -0
  365. package/src/components/form-render/container-items/vf-box-widget.vue.js +8 -0
  366. package/src/components/form-render/container-items/vf-box-widget.vue.js.map +1 -0
  367. package/src/components/form-render/container-items/vf-box-widget.vue2.js +59 -0
  368. package/src/components/form-render/container-items/vf-box-widget.vue2.js.map +1 -0
  369. package/src/components/form-render/container-items/vf-collapse-widget.vue.js +9 -0
  370. package/src/components/form-render/container-items/vf-collapse-widget.vue.js.map +1 -0
  371. package/src/components/form-render/container-items/vf-collapse-widget.vue2.js +70 -0
  372. package/src/components/form-render/container-items/vf-collapse-widget.vue2.js.map +1 -0
  373. package/src/components/public/ActionButtonListRender.vue.js +53 -0
  374. package/src/components/public/ActionButtonListRender.vue.js.map +1 -0
  375. package/src/components/public/ActionButtonListRender.vue2.js +130 -0
  376. package/src/components/public/ActionButtonListRender.vue2.js.map +1 -0
  377. package/src/components/public/ConfigView/CustomPageRender.vue.js +74 -0
  378. package/src/components/public/ConfigView/CustomPageRender.vue.js.map +1 -0
  379. package/src/components/public/ConfigView/CustomPageRender.vue2.js +5 -0
  380. package/src/components/public/ConfigView/CustomPageRender.vue2.js.map +1 -0
  381. package/src/components/public/CustomerModal/CustomerModal.vue.js +5 -0
  382. package/src/components/public/CustomerModal/CustomerModal.vue.js.map +1 -0
  383. package/{assets/CustomerModal.mjs → src/components/public/CustomerModal/CustomerModal.vue2.js} +5 -2
  384. package/src/components/public/CustomerModal/CustomerModal.vue2.js.map +1 -0
  385. package/{assets/useCustomerModal.mjs → src/components/public/CustomerModal/useCustomerModal.js} +2 -2
  386. package/src/components/public/CustomerModal/useCustomerModal.js.map +1 -0
  387. package/src/components/public/DynamicDialog.vue.js +227 -0
  388. package/src/components/public/DynamicDialog.vue.js.map +1 -0
  389. package/src/components/public/DynamicDialog.vue3.js +6 -0
  390. package/src/components/public/DynamicDialog.vue3.js.map +1 -0
  391. package/src/components/render/index.vue.js +8 -0
  392. package/src/components/render/index.vue.js.map +1 -0
  393. package/src/components/render/index.vue2.js +107 -0
  394. package/src/components/render/index.vue2.js.map +1 -0
  395. package/src/components/render/useRenderWidget.js +11 -0
  396. package/src/components/render/useRenderWidget.js.map +1 -0
  397. package/src/hooks/useLowcode.js +113 -0
  398. package/src/hooks/useLowcode.js.map +1 -0
  399. package/stats.html +4949 -0
  400. package/assets/CustomerModal.mjs.map +0 -1
  401. package/assets/bpmn-editor-widget.mjs.map +0 -1
  402. package/assets/button-list-widget.mjs.map +0 -1
  403. package/assets/button-widget.mjs.map +0 -1
  404. package/assets/cascader-widget.mjs.map +0 -1
  405. package/assets/checkbox-widget.mjs.map +0 -1
  406. package/assets/code-editor-widget.mjs.map +0 -1
  407. package/assets/color-widget.mjs.map +0 -1
  408. package/assets/data-table-widget.mjs.map +0 -1
  409. package/assets/date-range-widget.mjs.map +0 -1
  410. package/assets/date-widget.mjs.map +0 -1
  411. package/assets/divider-widget.mjs.map +0 -1
  412. package/assets/diy-compontent-widget.mjs.map +0 -1
  413. package/assets/dropdown-widget.mjs.map +0 -1
  414. package/assets/en-US.mjs.map +0 -1
  415. package/assets/en-US_extension.mjs.map +0 -1
  416. package/assets/en-US_render.mjs.map +0 -1
  417. package/assets/file-upload-widget.mjs.map +0 -1
  418. package/assets/form-item-wrapper.mjs.map +0 -1
  419. package/assets/grid-col-widget.mjs.map +0 -1
  420. package/assets/grid-sub-form-widget.mjs.map +0 -1
  421. package/assets/grid-widget.mjs.map +0 -1
  422. package/assets/html-text-widget.mjs.map +0 -1
  423. package/assets/input-widget.mjs.map +0 -1
  424. package/assets/install.mjs +0 -5565
  425. package/assets/install.mjs.map +0 -1
  426. package/assets/number-widget.mjs.map +0 -1
  427. package/assets/radio-widget.mjs.map +0 -1
  428. package/assets/rate-widget.mjs.map +0 -1
  429. package/assets/rich-editor-widget.mjs.map +0 -1
  430. package/assets/select-widget.mjs.map +0 -1
  431. package/assets/slider-widget.mjs.map +0 -1
  432. package/assets/static-text-widget.mjs.map +0 -1
  433. package/assets/switch-widget.mjs.map +0 -1
  434. package/assets/tab-widget.mjs.map +0 -1
  435. package/assets/textarea-widget.mjs.map +0 -1
  436. package/assets/time-range-widget.mjs.map +0 -1
  437. package/assets/time-widget.mjs.map +0 -1
  438. package/assets/tree-widget.mjs.map +0 -1
  439. package/assets/treeSelect-widget.mjs.map +0 -1
  440. package/assets/useCustomerModal.mjs.map +0 -1
  441. package/assets/useField.mjs.map +0 -1
  442. package/assets/useSelect.mjs.map +0 -1
  443. package/assets/vf-box-widget.mjs.map +0 -1
  444. package/assets/vf-collapse-widget.mjs.map +0 -1
  445. package/assets/vf-dialog-widget.mjs.map +0 -1
  446. package/assets/vue-render-widget.mjs.map +0 -1
  447. package/assets/zh-CN.mjs.map +0 -1
  448. package/assets/zh-CN_extension.mjs.map +0 -1
  449. package/assets/zh-CN_render.mjs.map +0 -1
  450. package/index.js +0 -12
@@ -0,0 +1,46 @@
1
+ import { isArray } from "lodash-es";
2
+ const formateCascaderCode = (arr = [], codeList, fieldNames = { label: "label", value: "value", children: "children" }, emblem = "/") => {
3
+ if (!codeList || codeList.length === 0) return;
4
+ if (isArray(codeList[0])) {
5
+ const res2 = codeList.map(
6
+ (item) => getTreeName(arr, item, fieldNames).join(emblem)
7
+ );
8
+ return res2.join(",");
9
+ } else {
10
+ const res = getTreeName(arr, codeList, fieldNames);
11
+ return res.join(emblem);
12
+ }
13
+ };
14
+ const getTreeName = (list = [], val = [], fieldNames = { label: "label", value: "value", children: "children" }) => {
15
+ const nameList = [];
16
+ list.forEach((item) => {
17
+ if (val.length === 0) return;
18
+ if (item[fieldNames.value] === val[0]) {
19
+ nameList.push(item[fieldNames.label]);
20
+ const children = item[fieldNames.children];
21
+ if (isArray(children)) {
22
+ const res = getTreeName(children, val.slice(1), fieldNames);
23
+ nameList.push(...res);
24
+ }
25
+ }
26
+ });
27
+ return nameList;
28
+ };
29
+ function formatSize(value, defaultSize = "") {
30
+ if (value === void 0 || value === null || value === "") {
31
+ return defaultSize;
32
+ }
33
+ const strValue = String(value);
34
+ if (strValue.endsWith("px") || strValue.endsWith("%")) {
35
+ return strValue;
36
+ }
37
+ if (!isNaN(Number(strValue))) {
38
+ return `${strValue}px`;
39
+ }
40
+ return strValue;
41
+ }
42
+ export {
43
+ formatSize,
44
+ formateCascaderCode
45
+ };
46
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sources":["../../../../../core/src/utils/format.ts"],"sourcesContent":["import { isArray } from 'lodash-es';\n\nfunction validateDate(dateStr: string | number | Date): boolean {\n const date = new Date(typeof dateStr === 'string' ? Date.parse(dateStr) : dateStr);\n return date instanceof Date && !isNaN(date.getTime());\n}\n\nexport function formatDate1(date: string | number | Date): string {\n if (!validateDate(date)) {\n return String(date);\n }\n const d = new Date(typeof date === 'string' ? Date.parse(date) : date); //转换成Date\n const y = d.getFullYear();\n let m: string | number = d.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n let day: string | number = d.getDate();\n day = day < 10 ? '0' + day : day;\n return y + '-' + m + '-' + day;\n}\n\nexport function formatDate2(date: string | number | Date): string {\n if (!validateDate(date)) {\n return String(date);\n }\n const d = new Date(typeof date === 'string' ? Date.parse(date) : date); //转换成Date\n const y = d.getFullYear();\n let m: string | number = d.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n let day: string | number = d.getDate();\n day = day < 10 ? '0' + day : day;\n return y + '/' + m + '/' + day;\n}\n\nexport function formatDate3(date: string | number | Date): string {\n if (!validateDate(date)) {\n return String(date);\n }\n const d = new Date(typeof date === 'string' ? Date.parse(date) : date); //转换成Date\n const y = d.getFullYear();\n let m: string | number = d.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n let day: string | number = d.getDate();\n day = day < 10 ? '0' + day : day;\n return y + '年' + m + '月' + day + '日';\n}\n\nexport function formatDate4(date: string | number | Date): string {\n if (!validateDate(date)) {\n return String(date);\n }\n const d = new Date(typeof date === 'string' ? Date.parse(date) : date); //转换成Date\n return d.toLocaleString();\n}\n\nexport function formatDate5(date: string | number | Date): string {\n if (!validateDate(date)) {\n return String(date);\n }\n const d = new Date(typeof date === 'string' ? Date.parse(date) : date); //转换成Date\n return d.toLocaleString('chinese', { hour12: false });\n}\n\n// ###,###,###,##0.######\nexport function formatNumber1(v: number): string | number {\n if (typeof v !== 'number') {\n return v;\n }\n\n const parts = v.toString().split('.');\n const length = parts[1]?.length || 0;\n let formatted: string;\n switch (length) {\n case 0:\n formatted = v.toFixed(0);\n break;\n case 1:\n formatted = v.toFixed(1);\n break;\n case 2:\n formatted = v.toFixed(2);\n break;\n case 3:\n formatted = v.toFixed(3);\n break;\n case 4:\n formatted = v.toFixed(4);\n break;\n case 5:\n formatted = v.toFixed(5);\n break;\n default:\n formatted = v.toFixed(6);\n }\n const res = formatted.replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n//###,###,###,##0.00####\nexport function formatNumber2(v: number): string | number {\n if (typeof v !== 'number') {\n return v;\n }\n\n const parts = v.toString().split('.');\n const length = parts[1]?.length || 0;\n let formatted: string;\n switch (length) {\n case 0:\n case 1:\n case 2:\n formatted = v.toFixed(2);\n break;\n case 3:\n formatted = v.toFixed(3);\n break;\n case 4:\n formatted = v.toFixed(4);\n break;\n case 5:\n formatted = v.toFixed(5);\n break;\n default:\n formatted = v.toFixed(6);\n }\n\n const res = formatted.replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,###,###,##0.000000\nexport function formatNumber3(v: number): string | number {\n if (typeof v !== 'number') {\n return v;\n }\n\n const formatted = v.toFixed(6);\n const res = formatted.replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,###,###,##0.000\nexport function formatNumber4(v: number): string | number {\n if (typeof v !== 'number') {\n return v;\n }\n\n const formatted = v.toFixed(3);\n const res = formatted.replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,###,###,##0.00\nexport function formatNumber5(v: number): string | number {\n if (typeof v !== 'number') {\n return v;\n }\n\n const formatted = v.toFixed(2);\n const res = formatted.replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,###,###,##0\nexport function formatNumber6(v: number): string | number {\n if (typeof v !== 'number') {\n return v;\n }\n\n const formatted = v.toFixed(0);\n const res = formatted.replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res;\n}\n\n// ###,##0.00##%\nexport function formatNumber7(v: number): string | number {\n if (typeof v !== 'number') {\n return v;\n }\n\n const parts = v.toString().split('.');\n const length = parts[1]?.length || 0;\n let multiplied = v * 100;\n let formatted: string;\n switch (length) {\n case 0:\n case 1:\n case 2:\n formatted = multiplied.toFixed(2);\n break;\n case 3:\n formatted = multiplied.toFixed(3);\n break;\n default:\n formatted = multiplied.toFixed(4);\n }\n\n const res = formatted.replace(/\\d+/, function (n) {\n // 先提取整数部分\n return n.replace(/(\\d)(?=(\\d{3})+$)/g, function ($1) {\n return $1 + ',';\n });\n });\n return res + '%';\n}\n\ninterface FieldNames {\n label: string;\n value: string;\n children: string;\n}\n\ninterface TreeItem {\n [key: string]: unknown;\n}\n\n/**\n * 将Cascader转义为汉字\n * @param arr 数据数组\n * @param codeList 代码列表\n * @param fieldNames 字段名称映射\n * @param emblem 拼接符号\n * @returns\n */\nexport const formateCascaderCode = (\n arr: TreeItem[] = [],\n codeList: string[] | string[][] | undefined,\n fieldNames: FieldNames = { label: 'label', value: 'value', children: 'children' },\n emblem = '/'\n): string | undefined => {\n if (!codeList || codeList.length === 0) return;\n if (isArray(codeList[0])) {\n const res2 = (codeList as string[][]).map(item =>\n getTreeName(arr, item, fieldNames).join(emblem)\n );\n return res2.join(',');\n } else {\n const res = getTreeName(arr, codeList as string[], fieldNames);\n return res.join(emblem);\n }\n};\n\nconst getTreeName = (\n list: TreeItem[] = [],\n val: string[] = [],\n fieldNames: FieldNames = { label: 'label', value: 'value', children: 'children' }\n): string[] => {\n const nameList: string[] = [];\n list.forEach(item => {\n if (val.length === 0) return;\n if (item[fieldNames.value] === val[0]) {\n nameList.push(item[fieldNames.label] as string);\n const children = item[fieldNames.children];\n if (isArray(children)) {\n const res = getTreeName(children as TreeItem[], val.slice(1), fieldNames);\n nameList.push(...res);\n }\n }\n });\n return nameList;\n};\n\n/**\n * 将tree转义为汉字\n * @param arr 值数组\n * @param codeList 代码列表\n * @param fieldNames 字段名称映射\n * @param emblem 拼接符号\n * @returns\n */\nexport const formateTreeToName = (\n arr: string[] = [],\n codeList: TreeItem[] | undefined,\n fieldNames: FieldNames = { label: 'label', value: 'value', children: 'children' },\n emblem = ','\n): string | undefined => {\n if (!codeList || codeList.length === 0) return;\n const str = arr.reduce<TreeItem[]>((t, v) => {\n const res = getListName(v, codeList, fieldNames);\n if (res) {\n t = [...t, res];\n }\n return t;\n }, []);\n return str.map(item => item[fieldNames.label] as string).join(emblem);\n};\n\nconst getListName = (\n val: string,\n list: TreeItem[],\n fieldNames: FieldNames\n): TreeItem | undefined => {\n let res: TreeItem | undefined;\n list.forEach(it1 => {\n if (it1[fieldNames.value] === val) {\n res = it1;\n return;\n }\n const childrenList = (it1[fieldNames.children] as TreeItem[]) || [];\n if (childrenList.length) {\n const found = getListName(val, childrenList, fieldNames);\n if (found) {\n res = found;\n }\n }\n });\n return res;\n};\n\n/**\n * 格式化尺寸,支持数字、px、%\n * @param value 尺寸值\n * @param defaultSize 默认尺寸\n * @returns 格式化后的尺寸字符串\n */\nexport function formatSize(value: string | number | undefined | null, defaultSize = ''): string {\n if (value === undefined || value === null || value === '') {\n return defaultSize;\n }\n const strValue = String(value);\n if (strValue.endsWith('px') || strValue.endsWith('%')) {\n return strValue;\n }\n if (!isNaN(Number(strValue))) {\n return `${strValue}px`;\n }\n return strValue;\n}\n"],"names":[],"mappings":";AA6PO,MAAM,sBAAsB,CAC/B,MAAkB,CAAA,GAClB,UACA,aAAyB,EAAE,OAAO,SAAS,OAAO,SAAS,UAAU,WAAA,GACrE,SAAS,QACY;AACrB,MAAI,CAAC,YAAY,SAAS,WAAW,EAAG;AACxC,MAAI,QAAQ,SAAS,CAAC,CAAC,GAAG;AACtB,UAAM,OAAQ,SAAwB;AAAA,MAAI,UACtC,YAAY,KAAK,MAAM,UAAU,EAAE,KAAK,MAAM;AAAA,IAAA;AAElD,WAAO,KAAK,KAAK,GAAG;AAAA,EACxB,OAAO;AACH,UAAM,MAAM,YAAY,KAAK,UAAsB,UAAU;AAC7D,WAAO,IAAI,KAAK,MAAM;AAAA,EAC1B;AACJ;AAEA,MAAM,cAAc,CAChB,OAAmB,CAAA,GACnB,MAAgB,CAAA,GAChB,aAAyB,EAAE,OAAO,SAAS,OAAO,SAAS,UAAU,iBAC1D;AACX,QAAM,WAAqB,CAAA;AAC3B,OAAK,QAAQ,CAAA,SAAQ;AACjB,QAAI,IAAI,WAAW,EAAG;AACtB,QAAI,KAAK,WAAW,KAAK,MAAM,IAAI,CAAC,GAAG;AACnC,eAAS,KAAK,KAAK,WAAW,KAAK,CAAW;AAC9C,YAAM,WAAW,KAAK,WAAW,QAAQ;AACzC,UAAI,QAAQ,QAAQ,GAAG;AACnB,cAAM,MAAM,YAAY,UAAwB,IAAI,MAAM,CAAC,GAAG,UAAU;AACxE,iBAAS,KAAK,GAAG,GAAG;AAAA,MACxB;AAAA,IACJ;AAAA,EACJ,CAAC;AACD,SAAO;AACX;AAuDO,SAAS,WAAW,OAA2C,cAAc,IAAY;AAC5F,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,IAAI;AACvD,WAAO;AAAA,EACX;AACA,QAAM,WAAW,OAAO,KAAK;AAC7B,MAAI,SAAS,SAAS,IAAI,KAAK,SAAS,SAAS,GAAG,GAAG;AACnD,WAAO;AAAA,EACX;AACA,MAAI,CAAC,MAAM,OAAO,QAAQ,CAAC,GAAG;AAC1B,WAAO,GAAG,QAAQ;AAAA,EACtB;AACA,SAAO;AACX;"}
@@ -0,0 +1,10 @@
1
+ function getFileName(path) {
2
+ const normalizedPath = path.replace(/\\/g, "/");
3
+ const filenameWithExt = normalizedPath.split("/").pop() || "";
4
+ const lastDotIndex = filenameWithExt.lastIndexOf(".");
5
+ return lastDotIndex === -1 ? filenameWithExt : filenameWithExt.substring(0, lastDotIndex);
6
+ }
7
+ export {
8
+ getFileName
9
+ };
10
+ //# sourceMappingURL=getFileName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFileName.js","sources":["../../../../../core/src/utils/getFileName.ts"],"sourcesContent":["export function getFileName(path: string): string {\n // 处理Windows路径分隔符\n const normalizedPath = path.replace(/\\\\/g, '/');\n // 获取带扩展名的文件名\n const filenameWithExt = normalizedPath.split('/').pop() || '';\n // 分离文件名和扩展名\n const lastDotIndex = filenameWithExt.lastIndexOf('.');\n return lastDotIndex === -1 ? filenameWithExt : filenameWithExt.substring(0, lastDotIndex);\n}\n"],"names":[],"mappings":"AAAO,SAAS,YAAY,MAAsB;AAE9C,QAAM,iBAAiB,KAAK,QAAQ,OAAO,GAAG;AAE9C,QAAM,kBAAkB,eAAe,MAAM,GAAG,EAAE,SAAS;AAE3D,QAAM,eAAe,gBAAgB,YAAY,GAAG;AACpD,SAAO,iBAAiB,KAAK,kBAAkB,gBAAgB,UAAU,GAAG,YAAY;AAC5F;"}
@@ -0,0 +1,33 @@
1
+ import { mapActions, mapState } from "pinia";
2
+ import { createI18n } from "./smart-vue-i18n/index.js";
3
+ import { useLocaleStore } from "@kp-ui/i18n";
4
+ const i18n = createI18n();
5
+ ({
6
+ computed: {
7
+ ...mapState(useLocaleStore, ["getLocale"])
8
+ },
9
+ methods: {
10
+ ...mapActions(useLocaleStore, ["setLocale"])
11
+ }
12
+ });
13
+ function useI18n() {
14
+ const i18nt = (key, obj) => {
15
+ return i18n.$st(key, obj);
16
+ };
17
+ const i18n2t = (key1, key2) => {
18
+ return i18n.$st2(key1, key2);
19
+ };
20
+ const initLocale = (locale) => {
21
+ i18n.setLang(locale);
22
+ };
23
+ return {
24
+ i18nt,
25
+ i18n2t,
26
+ initLocale
27
+ };
28
+ }
29
+ export {
30
+ i18n,
31
+ useI18n
32
+ };
33
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sources":["../../../../../core/src/utils/i18n.ts"],"sourcesContent":["import { mapActions, mapState } from 'pinia';\nimport { createI18n } from './smart-vue-i18n';\nimport { useLocaleStore } from '@kp-ui/i18n';\n\nconst i18n = createI18n({\n locale: 'zh-CN'\n});\n\nexport const translate = function (key: string): string {\n return i18n.$st(key);\n};\n\nexport const setLangMessages = (langName: string, messages: any) => {\n i18n.setLangMessages(langName, messages);\n};\n\nexport default {\n computed: {\n ...mapState(useLocaleStore, ['getLocale'])\n },\n methods: {\n ...mapActions(useLocaleStore, ['setLocale']),\n async changeLocale(langName: string) {\n await i18n.setLang(langName);\n },\n i18nt(key: string): string {\n return i18n.$st(key);\n },\n /* 如果key1不存在,则查找key2 */\n i18n2t(key1: string, key2: string): string {\n return i18n.$st2(key1, key2);\n }\n }\n};\n\nexport function useI18n() {\n const i18nt = (key: string, obj?: Record<string, any>): string => {\n return i18n.$st(key, obj);\n };\n const i18n2t = (key1: string, key2: string): string => {\n return i18n.$st2(key1, key2);\n };\n\n const initLocale = (locale: string) => {\n i18n.setLang(locale);\n };\n\n return {\n i18nt,\n i18n2t,\n initLocale\n };\n}\n\nexport { i18n };\n"],"names":[],"mappings":";;;AAIA,MAAM,OAAO,WAEZ;AAAA,CAUc;AAAA,EACX,UAAU;AAAA,IACN,GAAG,SAAS,gBAAgB,CAAC,WAAW,CAAC;AAAA,EAAA;AAAA,EAE7C,SAAS;AAAA,IACL,GAAG,WAAW,gBAAgB,CAAC,WAAW,CAAC;AAAA,EAW/C;AACJ;AAEO,SAAS,UAAU;AACtB,QAAM,QAAQ,CAAC,KAAa,QAAsC;AAC9D,WAAO,KAAK,IAAI,KAAK,GAAG;AAAA,EAC5B;AACA,QAAM,SAAS,CAAC,MAAc,SAAyB;AACnD,WAAO,KAAK,KAAK,MAAM,IAAI;AAAA,EAC/B;AAEA,QAAM,aAAa,CAAC,WAAmB;AACnC,SAAK,QAAQ,MAAM;AAAA,EACvB;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
@@ -0,0 +1,84 @@
1
+ import { reactive } from "vue";
2
+ import { get, isObject } from "lodash-es";
3
+ const locale = reactive({
4
+ lang: "zh-CN",
5
+ messages: {}
6
+ });
7
+ const langLoaders = {
8
+ "zh-CN": async () => {
9
+ const [zhCN, zhLocale, zhLocale_render, zhLocale_extension] = await Promise.all([
10
+ import("ant-design-vue/es/locale/zh_CN"),
11
+ import("../../lang/zh-CN.js"),
12
+ import("../../lang/zh-CN_render.js"),
13
+ import("../../lang/zh-CN_extension.js")
14
+ ]);
15
+ return {
16
+ ...zhCN.default,
17
+ ...zhLocale.default,
18
+ ...zhLocale_render.default,
19
+ ...zhLocale_extension.default
20
+ };
21
+ },
22
+ "en-US": async () => {
23
+ const [enUS, enLocale, enLocale_render, enLocale_extension] = await Promise.all([
24
+ import("ant-design-vue/es/locale/en_US"),
25
+ import("../../lang/en-US.js"),
26
+ import("../../lang/en-US_render.js"),
27
+ import("../../lang/en-US_extension.js")
28
+ ]);
29
+ return {
30
+ ...enUS.default,
31
+ ...enLocale.default,
32
+ ...enLocale_render.default,
33
+ ...enLocale_extension.default
34
+ };
35
+ }
36
+ };
37
+ function createI18n(options) {
38
+ const methoad = {
39
+ get messages() {
40
+ return locale.messages;
41
+ },
42
+ $st(path, args) {
43
+ const message = get(this.messages[locale.lang], path);
44
+ if (isObject(args)) {
45
+ let result = "";
46
+ Object.entries(args).forEach(([key, value]) => {
47
+ result = message.replace(`{${key}}`, value);
48
+ });
49
+ return result;
50
+ }
51
+ if (typeof message === "undefined") {
52
+ return path;
53
+ }
54
+ return typeof message === "function" ? message(...args) : message !== null ? message : path;
55
+ },
56
+ $st2(path, path2) {
57
+ const messages = this.messages[locale.lang];
58
+ const message = get(messages, path);
59
+ return message !== null ? message : get(messages, path2);
60
+ },
61
+ async setLang(lang) {
62
+ locale.lang = lang;
63
+ if (!(lang in locale.messages)) {
64
+ locale.messages[lang] = {};
65
+ }
66
+ if (lang in langLoaders) {
67
+ const messages = await langLoaders[lang]();
68
+ locale.messages[lang] = messages;
69
+ }
70
+ locale.lang = lang;
71
+ },
72
+ setLangMessages(lang, messages) {
73
+ locale.messages[lang] = {
74
+ ...locale.messages[lang],
75
+ ...messages
76
+ };
77
+ }
78
+ };
79
+ return methoad;
80
+ }
81
+ export {
82
+ createI18n
83
+ };
84
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../core/src/utils/smart-vue-i18n/index.ts"],"sourcesContent":["import { reactive } from 'vue';\nimport { isObject, get } from 'lodash-es';\n\nconst locale = reactive({\n lang: 'zh-CN',\n messages: {}\n});\n\ntype i18nOptionsType = {\n locale: string;\n};\n\nconst langLoaders = {\n 'zh-CN': async () => {\n const [zhCN, zhLocale, zhLocale_render, zhLocale_extension] = await Promise.all([\n import('ant-design-vue/es/locale/zh_CN'),\n import('../../lang/zh-CN'),\n import('../../lang/zh-CN_render'),\n import('../../lang/zh-CN_extension')\n ]);\n return {\n ...zhCN.default,\n ...zhLocale.default,\n ...zhLocale_render.default,\n ...zhLocale_extension.default\n };\n },\n 'en-US': async () => {\n const [enUS, enLocale, enLocale_render, enLocale_extension] = await Promise.all([\n import('ant-design-vue/es/locale/en_US'),\n import('../../lang/en-US'),\n import('../../lang/en-US_render'),\n import('../../lang/en-US_extension')\n ]);\n return {\n ...enUS.default,\n ...enLocale.default,\n ...enLocale_render.default,\n ...enLocale_extension.default\n };\n }\n};\n\nexport function createI18n(options: i18nOptionsType) {\n const methoad = {\n get messages() {\n return locale.messages;\n },\n $st(path: string, args) {\n const message = get(this.messages[locale.lang], path);\n\n if (isObject(args)) {\n let result = '';\n Object.entries(args).forEach(([key, value]) => {\n result = message.replace(`{${key}}`, value);\n });\n return result;\n }\n\n if (typeof message === 'undefined') {\n return path;\n }\n\n return typeof message === 'function'\n ? message(...args)\n : message !== null\n ? message\n : path;\n },\n\n $st2(path, path2) {\n const messages = this.messages[locale.lang];\n const message = get(messages, path);\n return message !== null ? message : get(messages, path2);\n },\n\n async setLang(lang) {\n locale.lang = lang;\n if (!(lang in locale.messages)) {\n locale.messages[lang] = {};\n }\n if (lang in langLoaders) {\n const messages = await langLoaders[lang]();\n locale.messages[lang] = messages;\n }\n locale.lang = lang;\n },\n setLangMessages(lang, messages) {\n locale.messages[lang] = {\n ...locale.messages[lang],\n ...messages\n };\n }\n };\n\n return methoad;\n}\n"],"names":[],"mappings":";;AAGA,MAAM,SAAS,SAAS;AAAA,EACpB,MAAM;AAAA,EACN,UAAU,CAAA;AACd,CAAC;AAMD,MAAM,cAAc;AAAA,EAChB,SAAS,YAAY;AACjB,UAAM,CAAC,MAAM,UAAU,iBAAiB,kBAAkB,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC5E,OAAO,gCAAgC;AAAA,MACvC,OAAO,qBAAkB;AAAA,MACzB,OAAO,4BAAyB;AAAA,MAChC,OAAO,+BAA4B;AAAA,IAAA,CACtC;AACD,WAAO;AAAA,MACH,GAAG,KAAK;AAAA,MACR,GAAG,SAAS;AAAA,MACZ,GAAG,gBAAgB;AAAA,MACnB,GAAG,mBAAmB;AAAA,IAAA;AAAA,EAE9B;AAAA,EACA,SAAS,YAAY;AACjB,UAAM,CAAC,MAAM,UAAU,iBAAiB,kBAAkB,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC5E,OAAO,gCAAgC;AAAA,MACvC,OAAO,qBAAkB;AAAA,MACzB,OAAO,4BAAyB;AAAA,MAChC,OAAO,+BAA4B;AAAA,IAAA,CACtC;AACD,WAAO;AAAA,MACH,GAAG,KAAK;AAAA,MACR,GAAG,SAAS;AAAA,MACZ,GAAG,gBAAgB;AAAA,MACnB,GAAG,mBAAmB;AAAA,IAAA;AAAA,EAE9B;AACJ;AAEO,SAAS,WAAW,SAA0B;AACjD,QAAM,UAAU;AAAA,IACZ,IAAI,WAAW;AACX,aAAO,OAAO;AAAA,IAClB;AAAA,IACA,IAAI,MAAc,MAAM;AACpB,YAAM,UAAU,IAAI,KAAK,SAAS,OAAO,IAAI,GAAG,IAAI;AAEpD,UAAI,SAAS,IAAI,GAAG;AAChB,YAAI,SAAS;AACb,eAAO,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC3C,mBAAS,QAAQ,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,QAC9C,CAAC;AACD,eAAO;AAAA,MACX;AAEA,UAAI,OAAO,YAAY,aAAa;AAChC,eAAO;AAAA,MACX;AAEA,aAAO,OAAO,YAAY,aACpB,QAAQ,GAAG,IAAI,IACf,YAAY,OACZ,UACA;AAAA,IACV;AAAA,IAEA,KAAK,MAAM,OAAO;AACd,YAAM,WAAW,KAAK,SAAS,OAAO,IAAI;AAC1C,YAAM,UAAU,IAAI,UAAU,IAAI;AAClC,aAAO,YAAY,OAAO,UAAU,IAAI,UAAU,KAAK;AAAA,IAC3D;AAAA,IAEA,MAAM,QAAQ,MAAM;AAChB,aAAO,OAAO;AACd,UAAI,EAAE,QAAQ,OAAO,WAAW;AAC5B,eAAO,SAAS,IAAI,IAAI,CAAA;AAAA,MAC5B;AACA,UAAI,QAAQ,aAAa;AACrB,cAAM,WAAW,MAAM,YAAY,IAAI,EAAA;AACvC,eAAO,SAAS,IAAI,IAAI;AAAA,MAC5B;AACA,aAAO,OAAO;AAAA,IAClB;AAAA,IACA,gBAAgB,MAAM,UAAU;AAC5B,aAAO,SAAS,IAAI,IAAI;AAAA,QACpB,GAAG,OAAO,SAAS,IAAI;AAAA,QACvB,GAAG;AAAA,MAAA;AAAA,IAEX;AAAA,EAAA;AAGJ,SAAO;AACX;"}
@@ -0,0 +1,95 @@
1
+ import { ref, getCurrentInstance } from "vue";
2
+ function useEmitter() {
3
+ const vfEvents = ref({});
4
+ const instance = getCurrentInstance();
5
+ const emit$ = (eventName, data) => {
6
+ if (vfEvents.value[eventName]) {
7
+ vfEvents.value[eventName].forEach((fn) => {
8
+ fn(data);
9
+ });
10
+ }
11
+ };
12
+ const on$ = (eventName, fn) => {
13
+ vfEvents.value[eventName] = vfEvents.value[eventName] || [];
14
+ vfEvents.value[eventName].push(fn);
15
+ };
16
+ const off$ = (eventName, fn) => {
17
+ if (vfEvents.value[eventName]) {
18
+ if (fn === void 0 || fn === null) {
19
+ vfEvents.value[eventName].length = 0;
20
+ return;
21
+ }
22
+ for (let i = 0; i < vfEvents.value[eventName].length; i++) {
23
+ if (vfEvents.value[eventName][i] === fn) {
24
+ vfEvents.value[eventName].splice(i, 1);
25
+ break;
26
+ }
27
+ }
28
+ }
29
+ };
30
+ const dispatch = (componentName, eventName, params) => {
31
+ var _a, _b, _c, _d, _e, _f;
32
+ if (!instance) return;
33
+ let parent = instance.parent;
34
+ let name = (_a = parent == null ? void 0 : parent.type) == null ? void 0 : _a["componentName"];
35
+ while (parent && (!name || name !== componentName)) {
36
+ parent = parent.parent;
37
+ if (parent) {
38
+ name = (_b = parent.type) == null ? void 0 : _b["componentName"];
39
+ }
40
+ }
41
+ if (parent) {
42
+ if (((_c = parent.exposed) == null ? void 0 : _c.emit$) || ((_d = parent.ctx) == null ? void 0 : _d.emit$)) {
43
+ const targetEmit$ = ((_e = parent.exposed) == null ? void 0 : _e.emit$) || ((_f = parent.ctx) == null ? void 0 : _f.emit$);
44
+ targetEmit$.call(parent.proxy, eventName, params);
45
+ }
46
+ }
47
+ };
48
+ const broadcast = (componentName, eventName, params) => {
49
+ const ctx = instance == null ? void 0 : instance.proxy;
50
+ if (ctx == null ? void 0 : ctx.widgetRefList) {
51
+ Object.keys(ctx.widgetRefList).forEach((refName) => {
52
+ var _a;
53
+ const widget = ctx.widgetRefList[refName];
54
+ const cmpName = (_a = widget.$options) == null ? void 0 : _a.componentName;
55
+ if (cmpName === componentName) {
56
+ if (widget.emit$) {
57
+ widget.emit$.call(widget, eventName, params);
58
+ }
59
+ }
60
+ });
61
+ }
62
+ if (ctx == null ? void 0 : ctx.refList) {
63
+ Object.keys(ctx.refList).forEach((refName) => {
64
+ var _a;
65
+ const ref2 = ctx.refList[refName];
66
+ const cmpName = (_a = ref2.$options) == null ? void 0 : _a.componentName;
67
+ if (cmpName === componentName) {
68
+ if (ref2.emit$) {
69
+ ref2.emit$.call(ref2, eventName, params);
70
+ }
71
+ }
72
+ });
73
+ }
74
+ };
75
+ const editEventHandler = (eventName, eventParams, mode) => {
76
+ dispatch("SettingPanel", "editEventHandler", [eventName, [...eventParams], mode]);
77
+ };
78
+ const onChangeEditEventHandler = (params) => {
79
+ dispatch("SettingPanel", "onChangeEventHandler", params);
80
+ };
81
+ return {
82
+ vfEvents,
83
+ editEventHandler,
84
+ onChangeEditEventHandler,
85
+ emit$,
86
+ on$,
87
+ off$,
88
+ dispatch,
89
+ broadcast
90
+ };
91
+ }
92
+ export {
93
+ useEmitter
94
+ };
95
+ //# sourceMappingURL=useEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEmitter.js","sources":["../../../../../core/src/utils/useEmitter.ts"],"sourcesContent":["import { ref, getCurrentInstance, ComponentInternalInstance, Ref } from 'vue';\n\n/**\n * 事件处理函数类型\n */\nexport type EventHandler<T = any> = (data: T) => void;\n\n/**\n * 事件存储对象类型\n */\nexport interface EventsMap {\n [eventName: string]: EventHandler[];\n}\n\n/**\n * 组件引用类型\n */\ninterface ComponentRef {\n $options?: {\n componentName?: string;\n };\n emit$?: (eventName: string, params: any) => void;\n}\n\n/**\n * 组件上下文类型\n */\ninterface ComponentContext {\n widgetRefList?: Record<string, ComponentRef>;\n refList?: Record<string, ComponentRef>;\n}\n\nexport type EditEventHandlerParams = {\n title?: string;\n attr: string;\n eventParams?: string[];\n mode?: string;\n};\n\n/**\n * 组合式API版本的事件总线\n * 用于组件间通信\n */\nexport function useEmitter() {\n // 使用ref创建响应式事件存储对象\n const vfEvents: Ref<EventsMap> = ref({});\n const instance = getCurrentInstance();\n\n /**\n * 触发事件\n * @param {string} eventName 事件名称\n * @param {any} data 事件数据\n */\n const emit$ = <T = any>(eventName: string, data: T): void => {\n if (vfEvents.value[eventName]) {\n vfEvents.value[eventName].forEach(fn => {\n fn(data);\n });\n }\n };\n\n /**\n * 监听事件\n * @param {string} eventName 事件名称\n * @param {Function} fn 回调函数\n */\n const on$ = <T = any>(eventName: string, fn: EventHandler<T>): void => {\n vfEvents.value[eventName] = vfEvents.value[eventName] || [];\n vfEvents.value[eventName].push(fn as EventHandler);\n };\n\n /**\n * 移除事件监听\n * @param {string} eventName 事件名称\n * @param {Function} fn 回调函数,如果不传则移除该事件的所有监听\n */\n const off$ = <T = any>(eventName: string, fn?: EventHandler<T>): void => {\n if (vfEvents.value[eventName]) {\n if (fn === undefined || fn === null) {\n vfEvents.value[eventName].length = 0;\n return;\n }\n\n for (let i = 0; i < vfEvents.value[eventName].length; i++) {\n if (vfEvents.value[eventName][i] === fn) {\n vfEvents.value[eventName].splice(i, 1);\n break;\n }\n }\n }\n };\n\n /**\n * 向上派发事件,寻找指定组件并触发其事件\n * @param {string} componentName 目标组件名称\n * @param {string} eventName 事件名称\n * @param {any} params 事件参数\n */\n const dispatch = (componentName: string, eventName: string, params: any): void => {\n if (!instance) return;\n let parent = instance.parent as ComponentInternalInstance | null;\n let name = parent?.type?.['componentName'] as string | undefined;\n\n while (parent && (!name || name !== componentName)) {\n parent = parent.parent;\n\n if (parent) {\n name = parent.type?.['componentName'] as string | undefined;\n }\n }\n\n if (parent) {\n // 检查目标组件是否有emit$方法\n if (parent.exposed?.emit$ || (parent as any).ctx?.emit$) {\n const targetEmit$ = parent.exposed?.emit$ || parent.ctx?.emit$;\n targetEmit$.call(parent.proxy, eventName, params);\n\n // if (componentName === 'VFormRender') {\n // // 执行原生$emit,以便可以用@进行声明式事件处理\n // parent.emit(eventName, ...(Array.isArray(params) ? params : [params]));\n // }\n }\n }\n };\n\n /**\n * 向下广播事件,寻找指定组件并触发其事件\n * @param {string} componentName 目标组件名称\n * @param {string} eventName 事件名称\n * @param {any} params 事件参数\n */\n const broadcast = (componentName: string, eventName: string, params: any): void => {\n // Vue3中不再有$children属性,需要通过其他方式获取子组件\n // 使用widgetRefList或refList属性\n\n // 处理FormRender组件的widgetRefList\n const ctx = instance?.proxy as unknown as ComponentContext;\n if (ctx?.widgetRefList) {\n Object.keys(ctx.widgetRefList).forEach(refName => {\n const widget = ctx.widgetRefList[refName];\n const cmpName = widget.$options?.componentName;\n if (cmpName === componentName) {\n if (widget.emit$) {\n widget.emit$.call(widget, eventName, params);\n }\n }\n });\n }\n\n // 处理其他组件的refList\n if (ctx?.refList) {\n Object.keys(ctx.refList).forEach(refName => {\n const ref = ctx.refList[refName];\n const cmpName = ref.$options?.componentName;\n if (cmpName === componentName) {\n if (ref.emit$) {\n ref.emit$.call(ref, eventName, params);\n }\n }\n });\n }\n };\n\n /**\n * 编辑事件处理器\n * @param {string} eventName 事件名称\n * @param {any[]} eventParams 事件参数\n * @deprecated\n */\n const editEventHandler = (eventName: string, eventParams: any[], mode: string): void => {\n dispatch('SettingPanel', 'editEventHandler', [eventName, [...eventParams], mode]);\n };\n\n const onChangeEditEventHandler = (params: EditEventHandlerParams): void => {\n dispatch('SettingPanel', 'onChangeEventHandler', params);\n };\n\n return {\n vfEvents,\n editEventHandler,\n onChangeEditEventHandler,\n emit$,\n on$,\n off$,\n dispatch,\n broadcast\n };\n}\n"],"names":["ref"],"mappings":";AA2CO,SAAS,aAAa;AAEzB,QAAM,WAA2B,IAAI,EAAE;AACvC,QAAM,WAAW,mBAAA;AAOjB,QAAM,QAAQ,CAAU,WAAmB,SAAkB;AACzD,QAAI,SAAS,MAAM,SAAS,GAAG;AAC3B,eAAS,MAAM,SAAS,EAAE,QAAQ,CAAA,OAAM;AACpC,WAAG,IAAI;AAAA,MACX,CAAC;AAAA,IACL;AAAA,EACJ;AAOA,QAAM,MAAM,CAAU,WAAmB,OAA8B;AACnE,aAAS,MAAM,SAAS,IAAI,SAAS,MAAM,SAAS,KAAK,CAAA;AACzD,aAAS,MAAM,SAAS,EAAE,KAAK,EAAkB;AAAA,EACrD;AAOA,QAAM,OAAO,CAAU,WAAmB,OAA+B;AACrE,QAAI,SAAS,MAAM,SAAS,GAAG;AAC3B,UAAI,OAAO,UAAa,OAAO,MAAM;AACjC,iBAAS,MAAM,SAAS,EAAE,SAAS;AACnC;AAAA,MACJ;AAEA,eAAS,IAAI,GAAG,IAAI,SAAS,MAAM,SAAS,EAAE,QAAQ,KAAK;AACvD,YAAI,SAAS,MAAM,SAAS,EAAE,CAAC,MAAM,IAAI;AACrC,mBAAS,MAAM,SAAS,EAAE,OAAO,GAAG,CAAC;AACrC;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAQA,QAAM,WAAW,CAAC,eAAuB,WAAmB,WAAsB;;AAC9E,QAAI,CAAC,SAAU;AACf,QAAI,SAAS,SAAS;AACtB,QAAI,QAAO,sCAAQ,SAAR,mBAAe;AAE1B,WAAO,WAAW,CAAC,QAAQ,SAAS,gBAAgB;AAChD,eAAS,OAAO;AAEhB,UAAI,QAAQ;AACR,gBAAO,YAAO,SAAP,mBAAc;AAAA,MACzB;AAAA,IACJ;AAEA,QAAI,QAAQ;AAER,YAAI,YAAO,YAAP,mBAAgB,YAAU,YAAe,QAAf,mBAAoB,QAAO;AACrD,cAAM,gBAAc,YAAO,YAAP,mBAAgB,YAAS,YAAO,QAAP,mBAAY;AACzD,oBAAY,KAAK,OAAO,OAAO,WAAW,MAAM;AAAA,MAMpD;AAAA,IACJ;AAAA,EACJ;AAQA,QAAM,YAAY,CAAC,eAAuB,WAAmB,WAAsB;AAK/E,UAAM,MAAM,qCAAU;AACtB,QAAI,2BAAK,eAAe;AACpB,aAAO,KAAK,IAAI,aAAa,EAAE,QAAQ,CAAA,YAAW;;AAC9C,cAAM,SAAS,IAAI,cAAc,OAAO;AACxC,cAAM,WAAU,YAAO,aAAP,mBAAiB;AACjC,YAAI,YAAY,eAAe;AAC3B,cAAI,OAAO,OAAO;AACd,mBAAO,MAAM,KAAK,QAAQ,WAAW,MAAM;AAAA,UAC/C;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAGA,QAAI,2BAAK,SAAS;AACd,aAAO,KAAK,IAAI,OAAO,EAAE,QAAQ,CAAA,YAAW;;AACxC,cAAMA,OAAM,IAAI,QAAQ,OAAO;AAC/B,cAAM,WAAUA,UAAI,aAAJA,mBAAc;AAC9B,YAAI,YAAY,eAAe;AAC3B,cAAIA,KAAI,OAAO;AACXA,iBAAI,MAAM,KAAKA,MAAK,WAAW,MAAM;AAAA,UACzC;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAQA,QAAM,mBAAmB,CAAC,WAAmB,aAAoB,SAAuB;AACpF,aAAS,gBAAgB,oBAAoB,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC;AAAA,EACpF;AAEA,QAAM,2BAA2B,CAAC,WAAyC;AACvE,aAAS,gBAAgB,wBAAwB,MAAM;AAAA,EAC3D;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
@@ -0,0 +1,155 @@
1
+ import "clipboard";
2
+ import "@kp-ui/tool";
3
+ import { cloneDeep } from "lodash-es";
4
+ function isNull(value) {
5
+ return value === null || value === void 0;
6
+ }
7
+ const generateId = function() {
8
+ return Math.floor(Math.random() * 1e5 + Math.random() * 2e4 + Math.random() * 5e3);
9
+ };
10
+ const deepClone = function(origin) {
11
+ return cloneDeep(origin);
12
+ };
13
+ const insertCustomCssToHead = function(cssCode, formId = "") {
14
+ const head = document.getElementsByTagName("head")[0];
15
+ const newStyle = document.createElement("style");
16
+ newStyle.type = "text/css";
17
+ newStyle.id = formId ? "vform-custom-css-" + formId : "vform-custom-css";
18
+ try {
19
+ newStyle.appendChild(document.createTextNode(cssCode));
20
+ } catch (ex) {
21
+ newStyle.styleSheet.cssText = cssCode;
22
+ }
23
+ head.appendChild(newStyle);
24
+ };
25
+ const insertGlobalFunctionsToHtml = function(functionsCode, formId = "") {
26
+ const bodyEle = document.getElementsByTagName("body")[0];
27
+ const newScriptEle = document.createElement("script");
28
+ newScriptEle.id = formId ? "v_form_global_functions-" + formId : "v_form_global_functions";
29
+ newScriptEle.type = "text/javascript";
30
+ newScriptEle.innerHTML = functionsCode;
31
+ bodyEle.appendChild(newScriptEle);
32
+ };
33
+ function traverseContainerWidgets(widgetList, handler) {
34
+ if (!(widgetList == null ? void 0 : widgetList.length)) {
35
+ return;
36
+ }
37
+ widgetList.forEach((w) => {
38
+ var _a, _b, _c;
39
+ if (w.category === "container") {
40
+ handler(w);
41
+ }
42
+ if (w.type === "grid") {
43
+ (_a = w.cols) == null ? void 0 : _a.forEach((col) => {
44
+ traverseContainerWidgets(col.widgetList, handler);
45
+ });
46
+ } else if (w.type === "table") {
47
+ (_b = w.rows) == null ? void 0 : _b.forEach((row) => {
48
+ var _a2;
49
+ (_a2 = row.cols) == null ? void 0 : _a2.forEach((cell) => {
50
+ traverseContainerWidgets(cell.widgetList, handler);
51
+ });
52
+ });
53
+ } else if (w.type === "tab") {
54
+ (_c = w.tabs) == null ? void 0 : _c.forEach((tab) => {
55
+ traverseContainerWidgets(tab.widgetList, handler);
56
+ });
57
+ } else if (w.type === "sub-form" || w.type === "grid-sub-form") {
58
+ traverseContainerWidgets(w.widgetList, handler);
59
+ } else if (w.category === "container") {
60
+ traverseContainerWidgets(w.widgetList, handler);
61
+ }
62
+ });
63
+ }
64
+ function handleWidgetForTraverse(widget, handler) {
65
+ if (widget.category && widget.category === "container") {
66
+ traverseFieldWidgetsOfContainer(widget, handler);
67
+ } else if (widget.formItemFlag) {
68
+ handler(widget);
69
+ }
70
+ }
71
+ function traverseFieldWidgetsOfContainer(con, handler) {
72
+ var _a, _b, _c, _d, _e;
73
+ if (con.type === "grid") {
74
+ (_a = con.cols) == null ? void 0 : _a.forEach((col) => {
75
+ var _a2;
76
+ (_a2 = col.widgetList) == null ? void 0 : _a2.forEach((cw) => {
77
+ handleWidgetForTraverse(cw, handler);
78
+ });
79
+ });
80
+ } else if (con.type === "table") {
81
+ (_b = con.rows) == null ? void 0 : _b.forEach((row) => {
82
+ var _a2;
83
+ (_a2 = row.cols) == null ? void 0 : _a2.forEach((cell) => {
84
+ var _a3;
85
+ (_a3 = cell.widgetList) == null ? void 0 : _a3.forEach((cw) => {
86
+ handleWidgetForTraverse(cw, handler);
87
+ });
88
+ });
89
+ });
90
+ } else if (con.type === "tab") {
91
+ (_c = con.tabs) == null ? void 0 : _c.forEach((tab) => {
92
+ var _a2;
93
+ (_a2 = tab.widgetList) == null ? void 0 : _a2.forEach((cw) => {
94
+ handleWidgetForTraverse(cw, handler);
95
+ });
96
+ });
97
+ } else if (con.type === "sub-form" || con.type === "grid-sub-form") {
98
+ (_d = con.widgetList) == null ? void 0 : _d.forEach((cw) => {
99
+ handleWidgetForTraverse(cw, handler);
100
+ });
101
+ } else if (con.category === "container") {
102
+ (_e = con.widgetList) == null ? void 0 : _e.forEach((cw) => {
103
+ handleWidgetForTraverse(cw, handler);
104
+ });
105
+ }
106
+ }
107
+ function getContainerWidgetByName(widgetList, containerName) {
108
+ if (!widgetList) {
109
+ return null;
110
+ }
111
+ let foundContainer = null;
112
+ const handlerFn = (con) => {
113
+ var _a;
114
+ if (((_a = con.options) == null ? void 0 : _a.name) === containerName) {
115
+ foundContainer = con;
116
+ }
117
+ };
118
+ traverseContainerWidgets(widgetList, handlerFn);
119
+ return foundContainer;
120
+ }
121
+ function cloneFormConfigWithoutEventHandler(formConfig) {
122
+ const newFC = deepClone(formConfig);
123
+ newFC.onFormCreated = "";
124
+ newFC.onFormMounted = "";
125
+ newFC.onFormDataChange = "";
126
+ return newFC;
127
+ }
128
+ function translateOptionItems(rawData, widgetType, labelKey, valueKey) {
129
+ if (["cascader", "treeSelect", "select"].includes(widgetType)) {
130
+ return deepClone(rawData);
131
+ }
132
+ const result = [];
133
+ if (rawData && rawData.length > 0) {
134
+ rawData.forEach((ri) => {
135
+ result.push({
136
+ label: ri[labelKey],
137
+ value: ri[valueKey]
138
+ });
139
+ });
140
+ }
141
+ return rawData;
142
+ }
143
+ export {
144
+ cloneFormConfigWithoutEventHandler,
145
+ deepClone,
146
+ generateId,
147
+ getContainerWidgetByName,
148
+ insertCustomCssToHead,
149
+ insertGlobalFunctionsToHtml,
150
+ isNull,
151
+ translateOptionItems,
152
+ traverseContainerWidgets,
153
+ traverseFieldWidgetsOfContainer
154
+ };
155
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sources":["../../../../../core/src/utils/util.ts"],"sourcesContent":["import Clipboard from 'clipboard';\nimport { getLocat } from '@kp-ui/tool';\nimport { isArray, isEmpty, cloneDeep } from 'lodash-es';\n\nimport { FormConfig, Widget, FormJsonType } from '@kp-ui/lowcode-core';\n\nexport function isNull(value: unknown): value is null | undefined {\n return value === null || value === undefined;\n}\n\nexport function isNotNull(value: unknown): boolean {\n return value !== null && value !== undefined;\n}\n\nexport function isEmptyStr(str: unknown): boolean {\n //return (str === undefined) || (!str) || (!/[^\\s]/.test(str));\n return (\n str === undefined ||\n (!str && str !== 0 && str !== '0') ||\n (typeof str === 'string' && !/[^\\s]/.test(str))\n );\n}\n\nexport const generateId = function (): number {\n return Math.floor(Math.random() * 100000 + Math.random() * 20000 + Math.random() * 5000);\n};\n\nexport const deepClone = function <T>(origin: T): T {\n return cloneDeep(origin);\n};\n\nexport const overwriteObj = function <T extends Record<string, unknown>>(\n obj1: T,\n obj2: Partial<T>\n): void {\n /* 浅拷贝对象属性,obj2覆盖obj1 */\n Object.keys(obj2).forEach(prop => {\n (obj1 as Record<string, unknown>)[prop] = obj2[prop as keyof T];\n });\n};\n\nexport const insertCustomCssToHead = function (cssCode: string, formId = ''): void {\n const head = document.getElementsByTagName('head')[0];\n\n const newStyle = document.createElement('style');\n newStyle.type = 'text/css';\n newStyle.id = formId ? 'vform-custom-css' + '-' + formId : 'vform-custom-css';\n\n try {\n newStyle.appendChild(document.createTextNode(cssCode));\n } catch (ex) {\n (newStyle as HTMLStyleElement & { styleSheet?: { cssText: string } }).styleSheet!.cssText =\n cssCode;\n }\n\n head.appendChild(newStyle);\n};\n\nexport const insertGlobalFunctionsToHtml = function (functionsCode: string, formId = ''): void {\n const bodyEle = document.getElementsByTagName('body')[0];\n\n const newScriptEle = document.createElement('script');\n newScriptEle.id = formId ? 'v_form_global_functions' + '-' + formId : 'v_form_global_functions';\n newScriptEle.type = 'text/javascript';\n newScriptEle.innerHTML = functionsCode;\n bodyEle.appendChild(newScriptEle);\n};\n\nexport const optionExists = function (\n optionsObj: Record<string, unknown> | null | undefined,\n optionName: string\n): boolean {\n if (!optionsObj) {\n return false;\n }\n\n return Object.keys(optionsObj).indexOf(optionName) > -1;\n};\n\nexport const loadRemoteScript = function (srcPath: string, callback: () => void): void {\n /*加载远程js,加载成功后执行回调函数*/\n const sid = encodeURIComponent(srcPath);\n const oldScriptEle = document.getElementById(sid);\n\n if (!oldScriptEle) {\n let s: HTMLScriptElement | null = document.createElement('script');\n s.src = srcPath;\n s.id = sid;\n document.body.appendChild(s);\n\n s.onload = s.onreadystatechange = function (\n this: HTMLScriptElement,\n _?: Event | string,\n isAbort?: boolean\n ) {\n /* 借鉴自ace.js */\n const scriptEl = this as HTMLScriptElement & { readyState?: string };\n if (\n isAbort ||\n !scriptEl.readyState ||\n scriptEl.readyState === 'loaded' ||\n scriptEl.readyState === 'complete'\n ) {\n s = null;\n if (!isAbort) {\n callback();\n }\n }\n } as OnErrorEventHandler;\n }\n};\n\nexport type WidgetHandler = (widget: Widget, parent?: Widget | null) => void;\nexport type ContainerHandler = (container: Widget) => void;\n\nexport function traverseFieldWidgets(\n widgetList: Widget[] | undefined,\n handler: WidgetHandler,\n parent: Widget | null = null,\n staticWidgetsIncluded = false\n): void {\n if (!widgetList) {\n return;\n }\n\n widgetList.forEach(w => {\n if (w.formItemFlag || (w.formItemFlag === false && staticWidgetsIncluded)) {\n handler(w, parent);\n } else if (w.type === 'grid') {\n w.cols?.forEach(col => {\n traverseFieldWidgets(col.widgetList, handler, w, staticWidgetsIncluded);\n });\n } else if (w.type === 'table') {\n w.rows?.forEach(row => {\n row.cols?.forEach(cell => {\n traverseFieldWidgets(cell.widgetList, handler, w, staticWidgetsIncluded);\n });\n });\n } else if (w.type === 'tab') {\n w.tabs?.forEach(tab => {\n traverseFieldWidgets(tab.widgetList, handler, w, staticWidgetsIncluded);\n });\n } else if (w.type === 'sub-form' || w.type === 'grid-sub-form') {\n traverseFieldWidgets(w.widgetList, handler, w, staticWidgetsIncluded);\n } else if (w.category === 'container') {\n //自定义容器\n traverseFieldWidgets(w.widgetList, handler, w, staticWidgetsIncluded);\n }\n });\n}\n\nexport function traverseContainerWidgets(\n widgetList: Widget[] | undefined,\n handler: ContainerHandler\n): void {\n if (!widgetList?.length) {\n return;\n }\n\n widgetList.forEach(w => {\n if (w.category === 'container') {\n handler(w);\n }\n\n if (w.type === 'grid') {\n w.cols?.forEach(col => {\n traverseContainerWidgets(col.widgetList, handler);\n });\n } else if (w.type === 'table') {\n w.rows?.forEach(row => {\n row.cols?.forEach(cell => {\n traverseContainerWidgets(cell.widgetList, handler);\n });\n });\n } else if (w.type === 'tab') {\n w.tabs?.forEach(tab => {\n traverseContainerWidgets(tab.widgetList, handler);\n });\n } else if (w.type === 'sub-form' || w.type === 'grid-sub-form') {\n traverseContainerWidgets(w.widgetList, handler);\n } else if (w.category === 'container') {\n //自定义容器\n traverseContainerWidgets(w.widgetList, handler);\n }\n });\n}\n\nexport function traverseAllWidgets(\n widgetList: Widget[] | undefined,\n handler: (widget: Widget) => void\n): void {\n if (!widgetList) {\n return;\n }\n\n widgetList.forEach(w => {\n handler(w);\n\n if (w.type === 'grid') {\n w.cols?.forEach(col => {\n handler(col as unknown as Widget);\n traverseAllWidgets(col.widgetList, handler);\n });\n } else if (w.type === 'table') {\n w.rows?.forEach(row => {\n row.cols?.forEach(cell => {\n handler(cell as unknown as Widget);\n traverseAllWidgets(cell.widgetList, handler);\n });\n });\n } else if (w.type === 'tab') {\n w.tabs?.forEach(tab => {\n traverseAllWidgets(tab.widgetList, handler);\n });\n } else if (w.type === 'sub-form' || w.type === 'grid-sub-form') {\n traverseAllWidgets(w.widgetList, handler);\n } else if (w.category === 'container') {\n //自定义容器\n traverseAllWidgets(w.widgetList, handler);\n }\n });\n}\n\nfunction handleWidgetForTraverse(widget: Widget, handler: WidgetHandler): void {\n if (widget.category && widget.category === 'container') {\n traverseFieldWidgetsOfContainer(widget, handler);\n } else if (widget.formItemFlag) {\n handler(widget);\n }\n}\n\n/**\n * 遍历容器内的字段组件\n * @param con\n * @param handler\n */\nexport function traverseFieldWidgetsOfContainer(con: Widget, handler: WidgetHandler): void {\n if (con.type === 'grid') {\n con.cols?.forEach(col => {\n col.widgetList?.forEach(cw => {\n handleWidgetForTraverse(cw, handler);\n });\n });\n } else if (con.type === 'table') {\n con.rows?.forEach(row => {\n row.cols?.forEach(cell => {\n cell.widgetList?.forEach(cw => {\n handleWidgetForTraverse(cw, handler);\n });\n });\n });\n } else if (con.type === 'tab') {\n con.tabs?.forEach(tab => {\n tab.widgetList?.forEach(cw => {\n handleWidgetForTraverse(cw, handler);\n });\n });\n } else if (con.type === 'sub-form' || con.type === 'grid-sub-form') {\n con.widgetList?.forEach(cw => {\n handleWidgetForTraverse(cw, handler);\n });\n } else if (con.category === 'container') {\n //自定义容器\n con.widgetList?.forEach(cw => {\n handleWidgetForTraverse(cw, handler);\n });\n }\n}\n\nfunction handleContainerTraverse(\n widget: Widget,\n fieldHandler: WidgetHandler,\n containerHandler: ContainerHandler\n): void {\n if (widget.category && widget.category === 'container') {\n traverseWidgetsOfContainer(widget, fieldHandler, containerHandler);\n } else if (widget.formItemFlag) {\n fieldHandler(widget);\n }\n}\n\n/**\n * 遍历容器内部的字段组件和容器组件\n * @param con\n * @param fieldHandler\n * @param containerHandler\n */\nexport function traverseWidgetsOfContainer(\n con: Widget,\n fieldHandler: WidgetHandler,\n containerHandler: ContainerHandler\n): void {\n if (con.type === 'grid') {\n con.cols?.forEach(col => {\n col.widgetList?.forEach(cw => {\n handleContainerTraverse(cw, fieldHandler, containerHandler);\n });\n });\n } else if (con.type === 'table') {\n con.rows?.forEach(row => {\n row.cols?.forEach(cell => {\n cell.widgetList?.forEach(cw => {\n handleContainerTraverse(cw, fieldHandler, containerHandler);\n });\n });\n });\n } else if (con.type === 'tab') {\n con.tabs?.forEach(tab => {\n tab.widgetList?.forEach(cw => {\n handleContainerTraverse(cw, fieldHandler, containerHandler);\n });\n });\n } else if (con.type === 'sub-form' || con.type === 'grid-sub-form') {\n con.widgetList?.forEach(cw => {\n handleContainerTraverse(cw, fieldHandler, containerHandler);\n });\n } else if (con.category === 'container') {\n //自定义容器\n con.widgetList?.forEach(cw => {\n handleContainerTraverse(cw, fieldHandler, containerHandler);\n });\n }\n}\n\nexport interface FieldWidgetInfo {\n type: string;\n name: string | undefined;\n field: Widget;\n}\n\n/**\n * 获取所有字段组件\n * @param widgetList\n * @param staticWidgetsIncluded 是否包含按钮等静态组件,默认不包含\n * @returns {[]}\n */\nexport function getAllFieldWidgets(\n widgetList: Widget[] | undefined,\n staticWidgetsIncluded = false\n): FieldWidgetInfo[] {\n if (!widgetList) {\n return [];\n }\n\n const result: FieldWidgetInfo[] = [];\n const handlerFn: WidgetHandler = w => {\n result.push({\n type: w.type,\n name: w.options?.name,\n field: w\n });\n };\n traverseFieldWidgets(widgetList, handlerFn, null, staticWidgetsIncluded);\n\n return result;\n}\n\nexport interface ContainerWidgetInfo {\n type: string;\n name: string | undefined;\n container: Widget;\n}\n\n/**\n * 获取所有容器组件\n * @param widgetList\n * @returns {[]}\n */\nexport function getAllContainerWidgets(widgetList: Widget[] | undefined): ContainerWidgetInfo[] {\n if (!widgetList) {\n return [];\n }\n\n const result: ContainerWidgetInfo[] = [];\n const handlerFn: ContainerHandler = w => {\n result.push({\n type: w.type,\n name: w.options?.name,\n container: w\n });\n };\n traverseContainerWidgets(widgetList, handlerFn);\n\n return result;\n}\n\nexport function getFieldWidgetByName(\n widgetList: Widget[] | undefined,\n fieldName: string,\n staticWidgetsIncluded?: boolean\n): Widget | null {\n if (!widgetList) {\n return null;\n }\n\n let foundWidget: Widget | null = null;\n const handlerFn: WidgetHandler = widget => {\n if (widget.options?.name === fieldName) {\n foundWidget = widget;\n }\n };\n\n traverseFieldWidgets(widgetList, handlerFn, null, staticWidgetsIncluded);\n return foundWidget;\n}\n\nexport function getContainerWidgetByName(\n widgetList: Widget[] | undefined,\n containerName: string\n): Widget | null {\n if (!widgetList) {\n return null;\n }\n\n let foundContainer: Widget | null = null;\n const handlerFn: ContainerHandler = con => {\n if (con.options?.name === containerName) {\n foundContainer = con;\n }\n };\n\n traverseContainerWidgets(widgetList, handlerFn);\n return foundContainer;\n}\n\nexport function getContainerWidgetById(\n widgetList: Widget[] | undefined,\n containerId: string\n): Widget | null {\n if (!widgetList) {\n return null;\n }\n\n let foundContainer: Widget | null = null;\n const handlerFn: ContainerHandler = con => {\n if (con.id === containerId) {\n foundContainer = con;\n }\n };\n\n traverseContainerWidgets(widgetList, handlerFn);\n return foundContainer;\n}\n\ninterface MessageApi {\n success: (msg: string) => void;\n error: (msg: string) => void;\n}\n\nexport function copyToClipboard(\n content: string,\n clickEvent: MouseEvent,\n $message: MessageApi,\n successMsg: string,\n errorMsg: string\n): void {\n const clipboard = new Clipboard(clickEvent.target as Element, {\n text: () => content\n });\n\n clipboard.on('success', () => {\n $message.success(successMsg);\n clipboard.destroy();\n });\n\n clipboard.on('error', () => {\n $message.error(errorMsg);\n clipboard.destroy();\n });\n\n clipboard.onClick(clickEvent);\n}\n\nexport function getQueryParam(variable: string): string | undefined {\n const query = window.location.search.substring(1);\n const vars = query.split('&');\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n if (pair[0] == variable) {\n return pair[1];\n }\n }\n\n return undefined;\n}\n\nexport function getDefaultFormConfig(): FormConfig {\n const { formCode = '' } = getLocat() as { formCode?: string };\n\n return {\n labelWidth: 80,\n labelPosition: 'horizontal', //'left',\n size: '',\n labelAlign: 'right',\n cssCode: '',\n customClass: [],\n\n isEnterSubmit: 0,\n\n buttonList: [],\n\n functions: '', //全局函数\n layoutType: 'PC',\n scaleMode: 'auto',\n onFormCreated: '',\n onFormMounted: `\n if(!this.vfCtx) return\n if(!this.vfCtx._id) return\n const type = this.vfCtx.type\n this.setReadMode(type==='view')\n this.onFormDetail().then(res=>{\n this.setFormData({...res})\n })\n `,\n\n onFormDataChange: '',\n\n serveList: {\n list: [],\n vformUpdate: {\n http: {\n url: `/api/tmgc2-mgt/formDefinition/${formCode}/evaluate/formSubmit`,\n method: 'post',\n data: { _id: '${_id}' },\n params: {}\n },\n dataReqHandlerCode: `const d=data.data||{};\\n Object.keys(d).forEach(k=>{\\n if(d[k]==='null'){\\n d[k]=null\\n }\\n })\\nreturn {...data,data:d}`,\n dataHandlerCode: ''\n },\n vformDetail: {\n http: {\n url: `/api/tmgc2-mgt/formDefinition/${formCode}/evaluate/formLoad`,\n method: 'post',\n data: { _id: '${_id}' },\n params: {}\n },\n dataReqHandlerCode: `const d=data.data||{};\\n Object.keys(d).forEach(k=>{\\n if(d[k]==='null'){\\n d[k]=null\\n }\\n })\\nreturn {...data,data:d}`,\n dataHandlerCode: 'return data.data.object||{}'\n }\n }\n };\n}\n\nexport function buildDefaultFormJson(): FormJsonType {\n return {\n widgetList: [],\n formConfig: deepClone(getDefaultFormConfig())\n };\n}\n\nexport function cloneFormConfigWithoutEventHandler(formConfig: FormConfig): FormConfig {\n const newFC = deepClone(formConfig);\n newFC.onFormCreated = '';\n newFC.onFormMounted = '';\n newFC.onFormDataChange = '';\n\n return newFC;\n}\n\n/**\n * 转译选择项数据\n * @param rawData\n * @param widgetType\n * @param labelKey\n * @param valueKey\n * @returns {[]}\n */\nexport function translateOptionItems<T extends Record<string, unknown>>(\n rawData: T[],\n widgetType: string,\n labelKey: string,\n valueKey: string\n): Array<{ label: unknown; value: unknown }> | T[] {\n if (['cascader', 'treeSelect', 'select'].includes(widgetType)) {\n // 级联选择不转译\n return deepClone(rawData);\n }\n\n const result: Array<{ label: unknown; value: unknown }> = [];\n if (rawData && rawData.length > 0) {\n rawData.forEach(ri => {\n result.push({\n label: ri[labelKey],\n value: ri[valueKey]\n });\n });\n }\n\n return rawData; //result;\n}\n\nexport function getDSByName(\n formConfig: FormConfig,\n dsName: string\n): { uniqueName: string; [key: string]: unknown } | null {\n let resultDS: { uniqueName: string; [key: string]: unknown } | null = null;\n if (dsName && formConfig.dataSources) {\n formConfig.dataSources.forEach(ds => {\n if (ds.uniqueName === dsName) {\n resultDS = ds;\n }\n });\n }\n\n return resultDS;\n}\n"],"names":["_a"],"mappings":";;;AAMO,SAAS,OAAO,OAA2C;AAC9D,SAAO,UAAU,QAAQ,UAAU;AACvC;AAeO,MAAM,aAAa,WAAoB;AAC1C,SAAO,KAAK,MAAM,KAAK,OAAA,IAAW,MAAS,KAAK,OAAA,IAAW,MAAQ,KAAK,OAAA,IAAW,GAAI;AAC3F;AAEO,MAAM,YAAY,SAAa,QAAc;AAChD,SAAO,UAAU,MAAM;AAC3B;AAYO,MAAM,wBAAwB,SAAU,SAAiB,SAAS,IAAU;AAC/E,QAAM,OAAO,SAAS,qBAAqB,MAAM,EAAE,CAAC;AAEpD,QAAM,WAAW,SAAS,cAAc,OAAO;AAC/C,WAAS,OAAO;AAChB,WAAS,KAAK,SAAS,sBAA2B,SAAS;AAE3D,MAAI;AACA,aAAS,YAAY,SAAS,eAAe,OAAO,CAAC;AAAA,EACzD,SAAS,IAAI;AACR,aAAqE,WAAY,UAC9E;AAAA,EACR;AAEA,OAAK,YAAY,QAAQ;AAC7B;AAEO,MAAM,8BAA8B,SAAU,eAAuB,SAAS,IAAU;AAC3F,QAAM,UAAU,SAAS,qBAAqB,MAAM,EAAE,CAAC;AAEvD,QAAM,eAAe,SAAS,cAAc,QAAQ;AACpD,eAAa,KAAK,SAAS,6BAAkC,SAAS;AACtE,eAAa,OAAO;AACpB,eAAa,YAAY;AACzB,UAAQ,YAAY,YAAY;AACpC;AAqFO,SAAS,yBACZ,YACA,SACI;AACJ,MAAI,EAAC,yCAAY,SAAQ;AACrB;AAAA,EACJ;AAEA,aAAW,QAAQ,CAAA,MAAK;;AACpB,QAAI,EAAE,aAAa,aAAa;AAC5B,cAAQ,CAAC;AAAA,IACb;AAEA,QAAI,EAAE,SAAS,QAAQ;AACnB,cAAE,SAAF,mBAAQ,QAAQ,CAAA,QAAO;AACnB,iCAAyB,IAAI,YAAY,OAAO;AAAA,MACpD;AAAA,IACJ,WAAW,EAAE,SAAS,SAAS;AAC3B,cAAE,SAAF,mBAAQ,QAAQ,CAAA,QAAO;;AACnB,SAAAA,MAAA,IAAI,SAAJ,gBAAAA,IAAU,QAAQ,CAAA,SAAQ;AACtB,mCAAyB,KAAK,YAAY,OAAO;AAAA,QACrD;AAAA,MACJ;AAAA,IACJ,WAAW,EAAE,SAAS,OAAO;AACzB,cAAE,SAAF,mBAAQ,QAAQ,CAAA,QAAO;AACnB,iCAAyB,IAAI,YAAY,OAAO;AAAA,MACpD;AAAA,IACJ,WAAW,EAAE,SAAS,cAAc,EAAE,SAAS,iBAAiB;AAC5D,+BAAyB,EAAE,YAAY,OAAO;AAAA,IAClD,WAAW,EAAE,aAAa,aAAa;AAEnC,+BAAyB,EAAE,YAAY,OAAO;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAsCA,SAAS,wBAAwB,QAAgB,SAA8B;AAC3E,MAAI,OAAO,YAAY,OAAO,aAAa,aAAa;AACpD,oCAAgC,QAAQ,OAAO;AAAA,EACnD,WAAW,OAAO,cAAc;AAC5B,YAAQ,MAAM;AAAA,EAClB;AACJ;AAOO,SAAS,gCAAgC,KAAa,SAA8B;;AACvF,MAAI,IAAI,SAAS,QAAQ;AACrB,cAAI,SAAJ,mBAAU,QAAQ,CAAA,QAAO;;AACrB,OAAAA,MAAA,IAAI,eAAJ,gBAAAA,IAAgB,QAAQ,CAAA,OAAM;AAC1B,gCAAwB,IAAI,OAAO;AAAA,MACvC;AAAA,IACJ;AAAA,EACJ,WAAW,IAAI,SAAS,SAAS;AAC7B,cAAI,SAAJ,mBAAU,QAAQ,CAAA,QAAO;;AACrB,OAAAA,MAAA,IAAI,SAAJ,gBAAAA,IAAU,QAAQ,CAAA,SAAQ;;AACtB,SAAAA,MAAA,KAAK,eAAL,gBAAAA,IAAiB,QAAQ,CAAA,OAAM;AAC3B,kCAAwB,IAAI,OAAO;AAAA,QACvC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,WAAW,IAAI,SAAS,OAAO;AAC3B,cAAI,SAAJ,mBAAU,QAAQ,CAAA,QAAO;;AACrB,OAAAA,MAAA,IAAI,eAAJ,gBAAAA,IAAgB,QAAQ,CAAA,OAAM;AAC1B,gCAAwB,IAAI,OAAO;AAAA,MACvC;AAAA,IACJ;AAAA,EACJ,WAAW,IAAI,SAAS,cAAc,IAAI,SAAS,iBAAiB;AAChE,cAAI,eAAJ,mBAAgB,QAAQ,CAAA,OAAM;AAC1B,8BAAwB,IAAI,OAAO;AAAA,IACvC;AAAA,EACJ,WAAW,IAAI,aAAa,aAAa;AAErC,cAAI,eAAJ,mBAAgB,QAAQ,CAAA,OAAM;AAC1B,8BAAwB,IAAI,OAAO;AAAA,IACvC;AAAA,EACJ;AACJ;AA2IO,SAAS,yBACZ,YACA,eACa;AACb,MAAI,CAAC,YAAY;AACb,WAAO;AAAA,EACX;AAEA,MAAI,iBAAgC;AACpC,QAAM,YAA8B,CAAA,QAAO;;AACvC,UAAI,SAAI,YAAJ,mBAAa,UAAS,eAAe;AACrC,uBAAiB;AAAA,IACrB;AAAA,EACJ;AAEA,2BAAyB,YAAY,SAAS;AAC9C,SAAO;AACX;AA+HO,SAAS,mCAAmC,YAAoC;AACnF,QAAM,QAAQ,UAAU,UAAU;AAClC,QAAM,gBAAgB;AACtB,QAAM,gBAAgB;AACtB,QAAM,mBAAmB;AAEzB,SAAO;AACX;AAUO,SAAS,qBACZ,SACA,YACA,UACA,UAC+C;AAC/C,MAAI,CAAC,YAAY,cAAc,QAAQ,EAAE,SAAS,UAAU,GAAG;AAE3D,WAAO,UAAU,OAAO;AAAA,EAC5B;AAEA,QAAM,SAAoD,CAAA;AAC1D,MAAI,WAAW,QAAQ,SAAS,GAAG;AAC/B,YAAQ,QAAQ,CAAA,OAAM;AAClB,aAAO,KAAK;AAAA,QACR,OAAO,GAAG,QAAQ;AAAA,QAClB,OAAO,GAAG,QAAQ;AAAA,MAAA,CACrB;AAAA,IACL,CAAC;AAAA,EACL;AAEA,SAAO;AACX;"}