@kp-ui/lowcode-pc 1.0.0 → 1.0.1

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 (557) 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 +463 -388
  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 +97 -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 +61 -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 +64 -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 +57 -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 +60 -0
  47. package/core/src/hooks/useDesigner.js.map +1 -0
  48. package/{assets/useField.mjs → core/src/hooks/useField.js} +25 -5
  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/useWebMCP.js +82 -0
  55. package/core/src/hooks/useWebMCP.js.map +1 -0
  56. package/core/src/hooks/useWidget.js +15 -0
  57. package/core/src/hooks/useWidget.js.map +1 -0
  58. package/{assets/en-US.mjs → core/src/lang/en-US.js} +41 -0
  59. package/core/src/lang/en-US.js.map +1 -0
  60. package/{assets/en-US_extension.mjs → core/src/lang/en-US_extension.js} +1 -0
  61. package/core/src/lang/en-US_extension.js.map +1 -0
  62. package/{assets/en-US_render.mjs → core/src/lang/en-US_render.js} +1 -0
  63. package/core/src/lang/en-US_render.js.map +1 -0
  64. package/{assets/zh-CN.mjs → core/src/lang/zh-CN.js} +81 -6
  65. package/core/src/lang/zh-CN.js.map +1 -0
  66. package/{assets/zh-CN_extension.mjs → core/src/lang/zh-CN_extension.js} +1 -0
  67. package/core/src/lang/zh-CN_extension.js.map +1 -0
  68. package/{assets/zh-CN_render.mjs → core/src/lang/zh-CN_render.js} +1 -0
  69. package/core/src/lang/zh-CN_render.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 +31 -0
  85. package/install.js.map +1 -0
  86. package/package.json +9 -4
  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} +22 -6
  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} +13 -8
  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 -3
  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 -9
  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 -3
  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 +316 -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 -3
  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 -6
  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} +12 -4
  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 +104 -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 +27 -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 +24 -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/src/components/desginer/widget-panel/containers/index.js.map +1 -0
  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 -5
  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} +12 -5
  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 -4
  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 -4
  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 -10
  228. package/src/components/field-widget/checkbox-widget.vue2.js.map +1 -0
  229. package/src/components/field-widget/code-editor-widget.vue.js +8 -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} +10 -5
  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 -5
  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 -5
  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 -5
  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 -2
  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 -3
  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} +15 -23
  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} +15 -10
  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} +5 -7
  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 -2
  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 -4
  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 -5
  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 -3
  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} +11 -12
  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 -5
  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 -5
  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 -6
  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 -3
  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 -2
  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 -5
  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 -5
  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 -5
  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 -5
  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 -6
  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} +13 -12
  330. package/src/components/field-widget/treeSelect-widget.vue2.js.map +1 -0
  331. package/src/components/field-widget/vue-render-widget.vue.js +5 -0
  332. package/src/components/field-widget/vue-render-widget.vue.js.map +1 -0
  333. package/{assets/vue-render-widget.mjs → src/components/field-widget/vue-render-widget.vue2.js} +6 -8
  334. package/src/components/field-widget/vue-render-widget.vue2.js.map +1 -0
  335. package/src/components/form-render/RenderWigetList.vue.js +5 -0
  336. package/src/components/form-render/RenderWigetList.vue.js.map +1 -0
  337. package/src/components/form-render/RenderWigetList.vue2.js +46 -0
  338. package/src/components/form-render/RenderWigetList.vue2.js.map +1 -0
  339. package/src/components/form-render/container-items/data-table-widget.vue.js +8 -0
  340. package/src/components/form-render/container-items/data-table-widget.vue.js.map +1 -0
  341. package/src/components/form-render/container-items/data-table-widget.vue2.js +198 -0
  342. package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -0
  343. package/src/components/form-render/container-items/grid-col-widget.vue.js +8 -0
  344. package/src/components/form-render/container-items/grid-col-widget.vue.js.map +1 -0
  345. package/src/components/form-render/container-items/grid-col-widget.vue2.js +56 -0
  346. package/src/components/form-render/container-items/grid-col-widget.vue2.js.map +1 -0
  347. package/src/components/form-render/container-items/grid-sub-form-widget.vue.js +8 -0
  348. package/src/components/form-render/container-items/grid-sub-form-widget.vue.js.map +1 -0
  349. package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js +282 -0
  350. package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js.map +1 -0
  351. package/src/components/form-render/container-items/grid-widget.vue.js +8 -0
  352. package/src/components/form-render/container-items/grid-widget.vue.js.map +1 -0
  353. package/src/components/form-render/container-items/grid-widget.vue2.js +61 -0
  354. package/src/components/form-render/container-items/grid-widget.vue2.js.map +1 -0
  355. package/src/components/form-render/container-items/grid-widget.vue3.js +2 -0
  356. package/src/components/form-render/container-items/grid-widget.vue3.js.map +1 -0
  357. package/src/components/form-render/container-items/index.js +21 -0
  358. package/src/components/form-render/container-items/index.js.map +1 -0
  359. package/src/components/form-render/container-items/tab-widget.vue.js +8 -0
  360. package/src/components/form-render/container-items/tab-widget.vue.js.map +1 -0
  361. package/src/components/form-render/container-items/tab-widget.vue2.js +66 -0
  362. package/src/components/form-render/container-items/tab-widget.vue2.js.map +1 -0
  363. package/src/components/form-render/container-items/vf-box-widget.vue.js +8 -0
  364. package/src/components/form-render/container-items/vf-box-widget.vue.js.map +1 -0
  365. package/src/components/form-render/container-items/vf-box-widget.vue2.js +59 -0
  366. package/src/components/form-render/container-items/vf-box-widget.vue2.js.map +1 -0
  367. package/src/components/form-render/container-items/vf-collapse-widget.vue.js +9 -0
  368. package/src/components/form-render/container-items/vf-collapse-widget.vue.js.map +1 -0
  369. package/src/components/form-render/container-items/vf-collapse-widget.vue2.js +70 -0
  370. package/src/components/form-render/container-items/vf-collapse-widget.vue2.js.map +1 -0
  371. package/src/components/public/ActionButtonListRender.vue.js +53 -0
  372. package/src/components/public/ActionButtonListRender.vue.js.map +1 -0
  373. package/src/components/public/ActionButtonListRender.vue2.js +130 -0
  374. package/src/components/public/ActionButtonListRender.vue2.js.map +1 -0
  375. package/src/components/public/ConfigView/CustomPageRender.vue.js +74 -0
  376. package/src/components/public/ConfigView/CustomPageRender.vue.js.map +1 -0
  377. package/src/components/public/ConfigView/CustomPageRender.vue2.js +5 -0
  378. package/src/components/public/ConfigView/CustomPageRender.vue2.js.map +1 -0
  379. package/src/components/public/CustomerModal/CustomerModal.vue.js +5 -0
  380. package/src/components/public/CustomerModal/CustomerModal.vue.js.map +1 -0
  381. package/{assets/CustomerModal.mjs → src/components/public/CustomerModal/CustomerModal.vue2.js} +7 -91
  382. package/src/components/public/CustomerModal/CustomerModal.vue2.js.map +1 -0
  383. package/{assets/useCustomerModal.mjs → src/components/public/CustomerModal/useCustomerModal.js} +2 -1
  384. package/src/components/public/CustomerModal/useCustomerModal.js.map +1 -0
  385. package/src/components/public/DataTableColumnDialog.vue.js +8 -0
  386. package/src/components/public/DataTableColumnDialog.vue.js.map +1 -0
  387. package/src/components/public/DataTableColumnDialog.vue2.js +333 -0
  388. package/src/components/public/DataTableColumnDialog.vue2.js.map +1 -0
  389. package/src/components/public/DynamicDialog.vue.js +226 -0
  390. package/src/components/public/DynamicDialog.vue.js.map +1 -0
  391. package/src/components/public/DynamicDialog.vue3.js +6 -0
  392. package/src/components/public/DynamicDialog.vue3.js.map +1 -0
  393. package/src/components/render/index.vue.js +8 -0
  394. package/src/components/render/index.vue.js.map +1 -0
  395. package/src/components/render/index.vue2.js +105 -0
  396. package/src/components/render/index.vue2.js.map +1 -0
  397. package/src/components/render/useRenderWidget.js +11 -0
  398. package/src/components/render/useRenderWidget.js.map +1 -0
  399. package/src/hooks/useLowcode.js +113 -0
  400. package/src/hooks/useLowcode.js.map +1 -0
  401. package/stats.html +4949 -0
  402. package/types/index.d.ts +1 -0
  403. package/types/pc/install.d.ts +9 -0
  404. package/assets/install.mjs +0 -5405
  405. package/index.js +0 -7
  406. package/types/core/src/components/DragBtn.vue.d.ts +0 -7
  407. package/types/core/src/components/HttpEditor.vue.d.ts +0 -46
  408. package/types/core/src/components/common/EventItemEditor.vue.d.ts +0 -12
  409. package/types/core/src/components/common/LowcodeI18nProvider.vue.d.ts +0 -17
  410. package/types/core/src/components/common/RenderWidgetList.vue.d.ts +0 -16
  411. package/types/core/src/components/common/desginer/RenderDesignerWrapper.vue.d.ts +0 -2
  412. package/types/core/src/components/common/desginer/WidgetWrapper.vue.d.ts +0 -30
  413. package/types/core/src/components/common/render/ActionButtonListDialog.vue.d.ts +0 -345
  414. package/types/core/src/components/common/render/Debugger.vue.d.ts +0 -10
  415. package/types/core/src/components/common/render/LowcodeRenderProvider.vue.d.ts +0 -26
  416. package/types/core/src/components/common/render/index.d.ts +0 -6
  417. package/types/core/src/components/common/render/useFormContext.d.ts +0 -148
  418. package/types/core/src/components/common/render/useFormDataProcessor.d.ts +0 -10
  419. package/types/core/src/components/contextMenu/WidgetContextMenu.vue.d.ts +0 -21
  420. package/types/core/src/components/contextMenu/useWidgetContextMenu.d.ts +0 -25
  421. package/types/core/src/components/index.d.ts +0 -16
  422. package/types/core/src/components/layout/LowcodeLayout.vue.d.ts +0 -24
  423. package/types/core/src/components/property-editor/index.d.ts +0 -3
  424. package/types/core/src/components/property-editor/propertyRegister.d.ts +0 -199
  425. package/types/core/src/components/property-editor/useEditor.d.ts +0 -19
  426. package/types/core/src/components/setting-plane/WidgetSettingPlane.vue.d.ts +0 -2
  427. package/types/core/src/components/setting-plane/form-crud-setting.vue.d.ts +0 -10
  428. package/types/core/src/components/setting-plane/form-setting.vue.d.ts +0 -332
  429. package/types/core/src/components/setting-plane/index.d.ts +0 -3
  430. package/types/core/src/components/setting-plane/index.vue.d.ts +0 -675
  431. package/types/core/src/components/settings/PanelItemDrag.vue.d.ts +0 -24
  432. package/types/core/src/components/settings/WidgetPanel.vue.d.ts +0 -20
  433. package/types/core/src/components/toolbar-panel/index.vue.d.ts +0 -689
  434. package/types/core/src/constants/EditorTypeEnum.d.ts +0 -151
  435. package/types/core/src/constants/LayoutTypeEnum.d.ts +0 -5
  436. package/types/core/src/constants/WidgetTypeEnum.d.ts +0 -65
  437. package/types/core/src/constants/index.d.ts +0 -12
  438. package/types/core/src/hooks/index.d.ts +0 -6
  439. package/types/core/src/hooks/useAppRef.d.ts +0 -9
  440. package/types/core/src/hooks/useDataHttp.d.ts +0 -207
  441. package/types/core/src/hooks/useDesigner.d.ts +0 -20
  442. package/types/core/src/hooks/useField.d.ts +0 -95
  443. package/types/core/src/hooks/useFormValidation.d.ts +0 -54
  444. package/types/core/src/hooks/useInputEvent.d.ts +0 -10
  445. package/types/core/src/hooks/useLowcode.d.ts +0 -22
  446. package/types/core/src/hooks/useNativeDragAndDrop.d.ts +0 -34
  447. package/types/core/src/lang/en-US.d.ts +0 -564
  448. package/types/core/src/lang/en-US_extension.d.ts +0 -23
  449. package/types/core/src/lang/en-US_render.d.ts +0 -38
  450. package/types/core/src/lang/zh-CN.d.ts +0 -584
  451. package/types/core/src/lang/zh-CN_extension.d.ts +0 -23
  452. package/types/core/src/lang/zh-CN_render.d.ts +0 -38
  453. package/types/core/src/types/button.d.ts +0 -17
  454. package/types/core/src/types/designer.d.ts +0 -74
  455. package/types/core/src/types/fileObject.d.ts +0 -7
  456. package/types/core/src/types/global.d.ts +0 -20
  457. package/types/core/src/types/index.d.ts +0 -8
  458. package/types/core/src/types/rowSelectionType.d.ts +0 -12
  459. package/types/core/src/types/schema.d.ts +0 -169
  460. package/types/core/src/types/widgetProps.d.ts +0 -8
  461. package/types/core/src/utils/emitter.d.ts +0 -17
  462. package/types/core/src/utils/event-bus.d.ts +0 -10
  463. package/types/core/src/utils/file.d.ts +0 -0
  464. package/types/core/src/utils/format.d.ts +0 -46
  465. package/types/core/src/utils/getFileName.d.ts +0 -1
  466. package/types/core/src/utils/i18n.d.ts +0 -27
  467. package/types/core/src/utils/index.d.ts +0 -8
  468. package/types/core/src/utils/insertAssetsToBody.d.ts +0 -3
  469. package/types/core/src/utils/request/handleAxiosError.d.ts +0 -11
  470. package/types/core/src/utils/request/http.d.ts +0 -4
  471. package/types/core/src/utils/smart-vue-i18n/index.d.ts +0 -11
  472. package/types/core/src/utils/transformWidgetList.d.ts +0 -2
  473. package/types/core/src/utils/useEmitter.d.ts +0 -31
  474. package/types/core/src/utils/util.d.ts +0 -81
  475. package/types/core/src/utils/validators.d.ts +0 -25
  476. package/types/core/src/utils/widgetRegistry.d.ts +0 -27
  477. package/types/pc/src/components/desginer/form-widget/RenderDesignerPC.vue.d.ts +0 -2
  478. package/types/pc/src/components/desginer/form-widget/container-widget/data-table-widget.vue.d.ts +0 -77
  479. package/types/pc/src/components/desginer/form-widget/container-widget/grid-col-widget.vue.d.ts +0 -16
  480. package/types/pc/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue.d.ts +0 -5
  481. package/types/pc/src/components/desginer/form-widget/container-widget/grid-widget.vue.d.ts +0 -5
  482. package/types/pc/src/components/desginer/form-widget/container-widget/index.d.ts +0 -153
  483. package/types/pc/src/components/desginer/form-widget/container-widget/tab-widget.vue.d.ts +0 -5
  484. package/types/pc/src/components/desginer/form-widget/container-widget/useTableWidget.d.ts +0 -274
  485. package/types/pc/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.d.ts +0 -32
  486. package/types/pc/src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue.d.ts +0 -33
  487. package/types/pc/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue.d.ts +0 -4
  488. package/types/pc/src/components/desginer/form-widget/index.vue.d.ts +0 -171
  489. package/types/pc/src/components/desginer/index.vue.d.ts +0 -52
  490. package/types/pc/src/components/desginer/widget-panel/advanced/bpmn-editor.d.ts +0 -13
  491. package/types/pc/src/components/desginer/widget-panel/advanced/cascader.d.ts +0 -31
  492. package/types/pc/src/components/desginer/widget-panel/advanced/code-editor.d.ts +0 -18
  493. package/types/pc/src/components/desginer/widget-panel/advanced/data-table.d.ts +0 -52
  494. package/types/pc/src/components/desginer/widget-panel/advanced/diy-compontent.d.ts +0 -10
  495. package/types/pc/src/components/desginer/widget-panel/advanced/file-upload.d.ts +0 -24
  496. package/types/pc/src/components/desginer/widget-panel/advanced/index.d.ts +0 -8
  497. package/types/pc/src/components/desginer/widget-panel/advanced/rich-editor.d.ts +0 -22
  498. package/types/pc/src/components/desginer/widget-panel/advanced/tree-select.d.ts +0 -33
  499. package/types/pc/src/components/desginer/widget-panel/advanced/tree.d.ts +0 -27
  500. package/types/pc/src/components/desginer/widget-panel/advancedFieldsEnums.d.ts +0 -11
  501. package/types/pc/src/components/desginer/widget-panel/basicFields/button.d.ts +0 -17
  502. package/types/pc/src/components/desginer/widget-panel/basicFields/buttonList.d.ts +0 -22
  503. package/types/pc/src/components/desginer/widget-panel/basicFields/checkbox.d.ts +0 -27
  504. package/types/pc/src/components/desginer/widget-panel/basicFields/color.d.ts +0 -16
  505. package/types/pc/src/components/desginer/widget-panel/basicFields/date.d.ts +0 -29
  506. package/types/pc/src/components/desginer/widget-panel/basicFields/dateRange.d.ts +0 -29
  507. package/types/pc/src/components/desginer/widget-panel/basicFields/divider.d.ts +0 -12
  508. package/types/pc/src/components/desginer/widget-panel/basicFields/dropdown.d.ts +0 -18
  509. package/types/pc/src/components/desginer/widget-panel/basicFields/htmlText.d.ts +0 -11
  510. package/types/pc/src/components/desginer/widget-panel/basicFields/input.d.ts +0 -31
  511. package/types/pc/src/components/desginer/widget-panel/basicFields/number.d.ts +0 -26
  512. package/types/pc/src/components/desginer/widget-panel/basicFields/radio.d.ts +0 -38
  513. package/types/pc/src/components/desginer/widget-panel/basicFields/rate.d.ts +0 -23
  514. package/types/pc/src/components/desginer/widget-panel/basicFields/select.d.ts +0 -35
  515. package/types/pc/src/components/desginer/widget-panel/basicFields/slider.d.ts +0 -25
  516. package/types/pc/src/components/desginer/widget-panel/basicFields/staticText.d.ts +0 -11
  517. package/types/pc/src/components/desginer/widget-panel/basicFields/switch.d.ts +0 -19
  518. package/types/pc/src/components/desginer/widget-panel/basicFields/textarea.d.ts +0 -35
  519. package/types/pc/src/components/desginer/widget-panel/basicFields/time.d.ts +0 -26
  520. package/types/pc/src/components/desginer/widget-panel/basicFields/timeRange.d.ts +0 -27
  521. package/types/pc/src/components/desginer/widget-panel/basicFieldsEnums.d.ts +0 -38
  522. package/types/pc/src/components/desginer/widget-panel/containers/grid-col.d.ts +0 -17
  523. package/types/pc/src/components/desginer/widget-panel/containers/grid-sub-form.d.ts +0 -8
  524. package/types/pc/src/components/desginer/widget-panel/containers/grid.d.ts +0 -8
  525. package/types/pc/src/components/desginer/widget-panel/containers/index.d.ts +0 -8
  526. package/types/pc/src/components/desginer/widget-panel/containers/tab-pane.d.ts +0 -23
  527. package/types/pc/src/components/desginer/widget-panel/containers/tab.d.ts +0 -9
  528. package/types/pc/src/components/desginer/widget-panel/containers/vf-box.d.ts +0 -8
  529. package/types/pc/src/components/desginer/widget-panel/containers/vf-collapse.d.ts +0 -13
  530. package/types/pc/src/components/desginer/widget-panel/containers/vf-dialog.d.ts +0 -8
  531. package/types/pc/src/components/desginer/widget-panel/containersEnums.d.ts +0 -1
  532. package/types/pc/src/components/desginer/widget-panel/index.vue.d.ts +0 -8
  533. package/types/pc/src/components/desginer/widget-panel/widgetsConfig.d.ts +0 -28
  534. package/types/pc/src/components/field-widget/hooks/useSelect.d.ts +0 -72
  535. package/types/pc/src/components/field-widget/index.d.ts +0 -3
  536. package/types/pc/src/components/field-widget/useField.d.ts +0 -95
  537. package/types/pc/src/components/form-render/RenderWigetList.vue.d.ts +0 -27
  538. package/types/pc/src/components/form-render/container-items/data-table-widget.vue.d.ts +0 -95
  539. package/types/pc/src/components/form-render/container-items/grid-col-widget.vue.d.ts +0 -36
  540. package/types/pc/src/components/form-render/container-items/grid-sub-form-widget.vue.d.ts +0 -39
  541. package/types/pc/src/components/form-render/container-items/grid-widget.vue.d.ts +0 -35
  542. package/types/pc/src/components/form-render/container-items/index.d.ts +0 -255
  543. package/types/pc/src/components/form-render/container-items/tab-widget.vue.d.ts +0 -5
  544. package/types/pc/src/components/form-render/container-items/vf-box-widget.vue.d.ts +0 -32
  545. package/types/pc/src/components/form-render/container-items/vf-collapse-widget.vue.d.ts +0 -33
  546. package/types/pc/src/components/index.d.ts +0 -4
  547. package/types/pc/src/components/public/ActionButtonListRender.vue.d.ts +0 -121
  548. package/types/pc/src/components/public/ConfigView/CustomPageRender.vue.d.ts +0 -16
  549. package/types/pc/src/components/public/CustomerModal/CustomerModal.vue.d.ts +0 -14
  550. package/types/pc/src/components/public/CustomerModal/customerModal.d.ts +0 -6
  551. package/types/pc/src/components/public/CustomerModal/useCustomerModal.d.ts +0 -7
  552. package/types/pc/src/components/public/DynamicDialog.vue.d.ts +0 -97
  553. package/types/pc/src/components/render/index.vue.d.ts +0 -82
  554. package/types/pc/src/components/render/useRenderWidget.d.ts +0 -3
  555. package/types/pc/src/designer.d.ts +0 -233
  556. package/types/pc/src/hooks/useLowcode.d.ts +0 -21
  557. package/types/pc/src/hooks/useWidget.d.ts +0 -7
@@ -0,0 +1,262 @@
1
+ import { useTemplateRef, ref, computed, watchEffect, onMounted, nextTick } from "vue";
2
+ import { set, cloneDeep } from "lodash-es";
3
+ import { message } from "ant-design-vue";
4
+ import { getUuidKey } from "@kp-ui/tool";
5
+ import { useRef, useExecFunction } from "tmgc2-share";
6
+ import { useEmitter } from "../../../utils/useEmitter.js";
7
+ import { useAppRef } from "../../../hooks/useAppRef.js";
8
+ import { useFormValidation } from "../../../hooks/useFormValidation.js";
9
+ import { getContainerWidgetByName, cloneFormConfigWithoutEventHandler, insertCustomCssToHead, insertGlobalFunctionsToHtml, generateId } from "../../../utils/util.js";
10
+ import { useI18n } from "../../../utils/i18n.js";
11
+ const useFormContext = ({ renderForm, props }) => {
12
+ const { formJson } = props;
13
+ const dynamicDialogRef = useTemplateRef("dynamicDialogRef");
14
+ const { i18nt } = useI18n();
15
+ const [readModeFlag, setReadMode] = useRef(false);
16
+ const emitter = useEmitter();
17
+ const formJsonObj = ref();
18
+ const formDataModel = ref({});
19
+ const isLoading = ref(false);
20
+ const widgetRefList = ref(/* @__PURE__ */ new Map());
21
+ const dialogProps = ref({});
22
+ const childFormRef = ref();
23
+ const formWidgetId = Symbol("formWidget");
24
+ const dialogOrDrawerRef = ref();
25
+ const { executeFunction, context, execHttpFunction } = useExecFunction();
26
+ const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);
27
+ const formConfig = computed(() => {
28
+ var _a;
29
+ return ((_a = formJsonObj.value) == null ? void 0 : _a.formConfig) || {};
30
+ });
31
+ const widgetList = computed(() => {
32
+ var _a;
33
+ return ((_a = formJsonObj.value) == null ? void 0 : _a.widgetList) || [];
34
+ });
35
+ const labelPosition = computed(() => {
36
+ var _a;
37
+ return ((_a = formConfig.value) == null ? void 0 : _a.labelPosition) || "horizontal";
38
+ });
39
+ const setChildFormRef = (chid) => {
40
+ childFormRef.value = chid;
41
+ };
42
+ const labelWidth = computed(() => {
43
+ var _a;
44
+ return ((_a = formConfig.value) == null ? void 0 : _a.labelWidth) ? `${formConfig.value.labelWidth}px` : "80px";
45
+ });
46
+ const customClass = computed(() => {
47
+ var _a;
48
+ return ((_a = formConfig.value) == null ? void 0 : _a.customClass) || "";
49
+ });
50
+ let formValidator = useFormValidation(renderForm);
51
+ watchEffect(() => {
52
+ formValidator = useFormValidation(renderForm);
53
+ });
54
+ const setFormJson = async (json) => {
55
+ formJsonObj.value = json || { widgetList: [], formConfig: {} };
56
+ formDataModel.value = {};
57
+ insertCustomCode();
58
+ await nextTick();
59
+ handleOnMounted();
60
+ };
61
+ const getFormData = () => {
62
+ return formDataModel.value || {};
63
+ };
64
+ const setFormData = (data) => {
65
+ if (!data) return;
66
+ Object.keys(data).forEach((key) => {
67
+ if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {
68
+ formDataModel.value[key] = data[key];
69
+ }
70
+ });
71
+ };
72
+ const setLoading = (loading) => {
73
+ isLoading.value = loading;
74
+ };
75
+ const resetValidation = () => {
76
+ formValidator.resetValidation();
77
+ };
78
+ const clearValidate = () => {
79
+ formValidator.clearValidate();
80
+ };
81
+ const setDialogOrDrawerRef = (ddRef) => {
82
+ dialogOrDrawerRef.value = ddRef;
83
+ };
84
+ const getTopFormRef = () => {
85
+ if (!props.parentForm) {
86
+ return getFormRef();
87
+ }
88
+ let topFormRef = props.parentForm;
89
+ while (topFormRef.parentForm) {
90
+ topFormRef = topFormRef.parentForm;
91
+ }
92
+ return topFormRef;
93
+ };
94
+ const showDialog = (dialogName, formData = {}, extraData = {}) => {
95
+ var _a, _b;
96
+ const topFormRef = getTopFormRef();
97
+ const dialogCon = getContainerWidgetByName((topFormRef == null ? void 0 : topFormRef.widgetList) || [], dialogName) || getContainerWidgetByName(widgetList.value || [], dialogName);
98
+ if (dialogCon === null) {
99
+ message.error(i18nt("render.hint.refNotFound") + dialogName);
100
+ return;
101
+ }
102
+ if (!dialogName || dialogCon.type !== "vf-dialog") {
103
+ message.error(i18nt("render.hint.refNotFound") + dialogName);
104
+ return;
105
+ }
106
+ const dFormJson = {
107
+ widgetList: cloneDeep((dialogCon == null ? void 0 : dialogCon.widgetList) || []),
108
+ formConfig: cloneFormConfigWithoutEventHandler(((_a = topFormRef == null ? void 0 : topFormRef.formConfig) == null ? void 0 : _a.value) || {})
109
+ };
110
+ const wrapperDivId = getUuidKey();
111
+ dialogProps.value = {
112
+ options: dialogCon.options,
113
+ formJson: dFormJson,
114
+ formData: { ...formData },
115
+ optionData: topFormRef.optionData,
116
+ parentFormRef: context.value,
117
+ extraData,
118
+ wrapperId: wrapperDivId,
119
+ vfCtx: { ...formData }
120
+ };
121
+ (_b = dynamicDialogRef.value) == null ? void 0 : _b.show();
122
+ };
123
+ const getParentFormRef = () => {
124
+ return props.parentForm;
125
+ };
126
+ const getChildFormRef = () => {
127
+ var _a;
128
+ return (_a = dynamicDialogRef.value) == null ? void 0 : _a.getFormRef();
129
+ };
130
+ const fieldChangeEventHandler = () => {
131
+ emitter.off$("fieldChange");
132
+ emitter.on$("fieldChange", ({ fieldName, value }) => {
133
+ if (fieldName) {
134
+ set(formDataModel.value, fieldName, value);
135
+ }
136
+ });
137
+ };
138
+ const onFormDetail = async () => {
139
+ const serveList = formConfig.value.serveList;
140
+ const res = await execHttpFunction(serveList.vformDetail, {
141
+ vfCtx: props.vfCtx
142
+ });
143
+ console.log("res: ", res);
144
+ return res;
145
+ };
146
+ const onFormUpdate = async () => {
147
+ const valid = await formValidator.validate();
148
+ if (!valid) throw new Error(i18nt("表单验证失败"));
149
+ const serveList = formConfig.value.serveList;
150
+ const res = await execHttpFunction(serveList.vformUpdate, {
151
+ data: formDataModel.value,
152
+ vfCtx: props.vfCtx
153
+ });
154
+ console.log("res: ", res);
155
+ return res;
156
+ };
157
+ const handleOnMounted = () => {
158
+ var _a, _b;
159
+ if ((_a = formConfig.value) == null ? void 0 : _a.onFormMounted) {
160
+ console.log("onFormMounted: ");
161
+ executeFunction({
162
+ functionBody: (_b = formConfig.value) == null ? void 0 : _b.onFormMounted
163
+ });
164
+ }
165
+ };
166
+ const insertCustomCode = () => {
167
+ const formId = "vfRender" + generateId();
168
+ const { cssCode, functions } = formConfig.value;
169
+ console.log({ cssCode });
170
+ if (cssCode) {
171
+ insertCustomCssToHead(cssCode, formId || "");
172
+ }
173
+ if (functions) {
174
+ insertGlobalFunctionsToHtml(functions, formId || "");
175
+ }
176
+ };
177
+ const reload = () => {
178
+ var _a;
179
+ const router = (_a = context.value) == null ? void 0 : _a.$router;
180
+ router == null ? void 0 : router.replace({
181
+ query: {
182
+ ...router.currentRoute.value.query,
183
+ _t: Date.now()
184
+ }
185
+ });
186
+ };
187
+ const goBack = (reloadStatus, cb) => {
188
+ var _a, _b;
189
+ const goBack2 = (_a = getFormRef().vfCtx) == null ? void 0 : _a.goBack;
190
+ if (typeof goBack2 === "function") {
191
+ goBack2(reloadStatus, cb);
192
+ } else {
193
+ const router = (_b = context.value) == null ? void 0 : _b.$router;
194
+ router == null ? void 0 : router.go(-1);
195
+ }
196
+ };
197
+ const getFieldValue = (field) => {
198
+ return formDataModel.value[field];
199
+ };
200
+ const getVfCtx = () => {
201
+ return props.vfCtx;
202
+ };
203
+ onMounted(() => {
204
+ if (formJson) {
205
+ setFormJson(formJson);
206
+ }
207
+ fieldChangeEventHandler();
208
+ });
209
+ const expose = {
210
+ context,
211
+ i18nt,
212
+ goBack,
213
+ reload,
214
+ formValidator,
215
+ getFieldValue,
216
+ resetValidation,
217
+ clearValidate,
218
+ getVfCtx,
219
+ getParentFormRef,
220
+ getFormRef,
221
+ getWidgetRef,
222
+ showDialog,
223
+ getFormData,
224
+ getChildFormRef,
225
+ setFormData,
226
+ setReadMode,
227
+ setFormJson,
228
+ setLoading,
229
+ onFormDetail,
230
+ onFormUpdate,
231
+ formDataModel,
232
+ isLoading,
233
+ vfCtx: props.vfCtx,
234
+ // 计算属性
235
+ formConfig,
236
+ dynamicDialogRef,
237
+ setChildFormRef,
238
+ setDialogOrDrawerRef
239
+ };
240
+ return {
241
+ formWidgetId,
242
+ registerToRefList,
243
+ dialogOrDrawerRef,
244
+ emitter,
245
+ // 状态
246
+ formJsonObj,
247
+ readModeFlag,
248
+ // 引用
249
+ widgetRefList,
250
+ widgetList,
251
+ labelPosition,
252
+ labelWidth,
253
+ customClass,
254
+ dialogProps,
255
+ expose,
256
+ ...expose
257
+ };
258
+ };
259
+ export {
260
+ useFormContext
261
+ };
262
+ //# sourceMappingURL=useFormContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormContext.js","sources":["../../../../../../../core/src/components/common/render/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, useTemplateRef, watchEffect } from 'vue';\nimport {\n useFormValidation,\n FormConfig,\n Widget,\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@kp-ui/lowcode-core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport { useEmitter } from '@kp-ui/lowcode-core/src/utils/useEmitter';\nimport { useI18n, useAppRef } from '@kp-ui/lowcode-core';\n\nexport interface FormRenderProps {\n vfCtx?: Record<string, any>;\n formJson?: any;\n formData?: Record<string, any>;\n optionData?: Record<string, any>;\n disabledMode?: boolean;\n renderConfig?: {\n languageName?: string;\n };\n parentForm?: any;\n dynamicCreation?: boolean;\n debug?: boolean;\n}\n\n/**\n * 表单上下文配置\n */\nexport interface FormContextOptions {\n props: FormRenderProps;\n renderForm: any;\n}\n\n/**\n * 创建表单上下文\n * @param options 表单上下文配置\n * @returns 表单上下文\n */\nexport const useFormContext = ({ renderForm, props }: FormContextOptions) => {\n const { formJson } = props;\n const dynamicDialogRef = useTemplateRef<any>('dynamicDialogRef');\n const { i18nt } = useI18n();\n const [readModeFlag, setReadMode] = useRef(false);\n\n const emitter = useEmitter();\n\n const formJsonObj = ref();\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n const isLoading = ref(false);\n const widgetRefList = ref<Map<string, any>>(new Map());\n const dialogProps = ref({});\n const childFormRef = ref();\n\n const formWidgetId = Symbol('formWidget');\n\n const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed<FormConfig>(() => formJsonObj.value?.formConfig || {});\n\n const widgetList = computed(() => formJsonObj.value?.widgetList || []);\n const labelPosition = computed(() => {\n return formConfig.value?.labelPosition || 'horizontal';\n });\n\n const setChildFormRef = chid => {\n childFormRef.value = chid;\n };\n\n const labelWidth = computed(() => {\n return formConfig.value?.labelWidth ? `${formConfig.value.labelWidth}px` : '80px';\n });\n\n const customClass = computed(() => {\n return formConfig.value?.customClass || '';\n });\n\n // 初始化表单验证器\n let formValidator = useFormValidation(renderForm);\n\n // 监听 widgetList 变化,重新初始化验证器\n watchEffect(() => {\n formValidator = useFormValidation(renderForm);\n });\n\n /**\n * 设置表单JSON数据\n */\n const setFormJson = async (json: any) => {\n formJsonObj.value = json || { widgetList: [], formConfig: {} };\n\n // 重新构建表单数据模型\n formDataModel.value = {};\n insertCustomCode();\n await nextTick();\n handleOnMounted();\n };\n\n /**\n * 获取表单数据\n */\n const getFormData = () => {\n return formDataModel.value || {};\n };\n\n /**\n * 设置表单数据\n */\n const setFormData = (data: Record<string, any>) => {\n if (!data) return;\n // 更新表单数据模型\n Object.keys(data).forEach(key => {\n if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {\n formDataModel.value[key] = data[key];\n }\n });\n };\n\n /**\n * 设置加载状态\n */\n const setLoading = (loading: boolean) => {\n isLoading.value = loading;\n };\n\n /**\n * 重置表单验证\n */\n const resetValidation = () => {\n formValidator.resetValidation();\n };\n\n /**\n * 清除表单验证\n */\n const clearValidate = () => {\n formValidator.clearValidate();\n };\n\n const setDialogOrDrawerRef = (ddRef: any) => {\n dialogOrDrawerRef.value = ddRef;\n };\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n const getTopFormRef = () => {\n if (!props.parentForm) {\n return getFormRef();\n }\n\n let topFormRef = props.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n };\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n const showDialog = (dialogName, formData = {}, extraData = {}) => {\n const topFormRef = getTopFormRef();\n const dialogCon = (getContainerWidgetByName(topFormRef?.widgetList || [], dialogName) ||\n getContainerWidgetByName(widgetList.value || [], dialogName)) as Widget | null;\n\n if (dialogCon === null) {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: cloneDeep(dialogCon?.widgetList || []),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef?.formConfig?.value || {})\n };\n const wrapperDivId = getUuidKey();\n dialogProps.value = {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialogRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialogRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n if (fieldName) {\n // 过滤掉错误值\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n const onFormDetail = async () => {\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformDetail, {\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const onFormUpdate = async () => {\n const valid = await formValidator.validate();\n if (!valid) throw new Error(i18nt('表单验证失败'));\n\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformUpdate, {\n data: formDataModel.value,\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const handleOnMounted = () => {\n if (formConfig.value?.onFormMounted) {\n console.log('onFormMounted: ');\n executeFunction({\n functionBody: formConfig.value?.onFormMounted\n });\n }\n };\n\n /**\n * 插入自定义样式和脚本\n * @param cssCode CSS代码\n * @param functions 自定义函数\n * @param formId 表单ID\n */\n const insertCustomCode = () => {\n const formId = 'vfRender' + generateId();\n const { cssCode, functions } = formConfig.value;\n console.log({ cssCode });\n\n if (cssCode) {\n insertCustomCssToHead(cssCode, formId || '');\n }\n if (functions) {\n insertGlobalFunctionsToHtml(functions, formId || '');\n }\n };\n\n const reload = () => {\n const router = context.value?.$router;\n router?.replace({\n query: {\n ...router.currentRoute.value.query,\n _t: Date.now()\n }\n });\n };\n\n const goBack = (reloadStatus?: routerReloadStatus, cb?: () => void) => {\n const goBack = getFormRef().vfCtx?.goBack;\n if (typeof goBack === 'function') {\n goBack(reloadStatus, cb);\n } else {\n const router = context.value?.$router;\n router?.go(-1);\n }\n };\n\n const getFieldValue = (field: string) => {\n return formDataModel.value[field];\n };\n\n const getVfCtx = () => {\n return props.vfCtx;\n };\n\n onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\n });\n\n const expose = {\n context,\n i18nt,\n goBack,\n reload,\n formValidator,\n getFieldValue,\n resetValidation,\n clearValidate,\n getVfCtx,\n getParentFormRef,\n getFormRef,\n getWidgetRef,\n showDialog,\n getFormData,\n getChildFormRef,\n setFormData,\n setReadMode,\n setFormJson,\n setLoading,\n onFormDetail,\n onFormUpdate,\n formDataModel,\n isLoading,\n vfCtx: props.vfCtx,\n // 计算属性\n formConfig,\n dynamicDialogRef,\n setChildFormRef,\n setDialogOrDrawerRef\n };\n\n return {\n formWidgetId,\n registerToRefList,\n dialogOrDrawerRef,\n\n emitter,\n // 状态\n formJsonObj,\n readModeFlag,\n // 引用\n widgetRefList,\n\n widgetList,\n labelPosition,\n labelWidth,\n customClass,\n dialogProps,\n\n expose,\n ...expose\n };\n};\n"],"names":["goBack"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import _sfc_main from "./WidgetContextMenu.vue2.js";
2
+ /* empty css */
3
+ import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
4
+ const WidgetContextMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8adfdf56"]]);
5
+ export {
6
+ WidgetContextMenu as default
7
+ };
8
+ //# sourceMappingURL=WidgetContextMenu.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetContextMenu.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,125 @@
1
+ import { defineComponent, mergeModels, useModel, resolveComponent, createBlock, openBlock, withCtx, createElementVNode, normalizeStyle, createVNode, createElementBlock, Fragment, renderList, unref, createCommentVNode, createSlots, createTextVNode, toDisplayString, resolveDynamicComponent } from "vue";
2
+ import { useWidgetContextMenu } from "./useWidgetContextMenu.js";
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ ...{
5
+ name: "WidgetContextMenu"
6
+ },
7
+ __name: "WidgetContextMenu",
8
+ props: /* @__PURE__ */ mergeModels({
9
+ widget: {},
10
+ index: {},
11
+ visible: { type: Boolean },
12
+ x: {},
13
+ y: {},
14
+ parentWidget: {}
15
+ }, {
16
+ "list": { default: () => [] },
17
+ "listModifiers": {}
18
+ }),
19
+ emits: /* @__PURE__ */ mergeModels(["update:visible"], ["update:list"]),
20
+ setup(__props, { emit: __emit }) {
21
+ const props = __props;
22
+ const list = useModel(__props, "list");
23
+ const emit = __emit;
24
+ const handleVisibleChange = (val) => {
25
+ emit("update:visible", val);
26
+ };
27
+ const { menuConfigs } = useWidgetContextMenu({
28
+ widget: props.widget,
29
+ index: props.index,
30
+ parentWidget: props.parentWidget,
31
+ list,
32
+ onClose: () => handleVisibleChange(false)
33
+ });
34
+ return (_ctx, _cache) => {
35
+ const _component_a_menu_divider = resolveComponent("a-menu-divider");
36
+ const _component_a_menu_item = resolveComponent("a-menu-item");
37
+ const _component_a_sub_menu = resolveComponent("a-sub-menu");
38
+ const _component_a_menu = resolveComponent("a-menu");
39
+ const _component_a_dropdown = resolveComponent("a-dropdown");
40
+ return openBlock(), createBlock(_component_a_dropdown, {
41
+ open: _ctx.visible,
42
+ "onUpdate:open": handleVisibleChange,
43
+ trigger: ["click"]
44
+ }, {
45
+ overlay: withCtx(() => [
46
+ createVNode(_component_a_menu, null, {
47
+ default: withCtx(() => [
48
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(menuConfigs), (item) => {
49
+ return openBlock(), createElementBlock(Fragment, {
50
+ key: item.key
51
+ }, [
52
+ item.divider ? (openBlock(), createBlock(_component_a_menu_divider, { key: 0 })) : !item.hidden ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
53
+ item.children ? (openBlock(), createBlock(_component_a_sub_menu, {
54
+ key: 0,
55
+ title: item.label
56
+ }, createSlots({
57
+ default: withCtx(() => [
58
+ (openBlock(true), createElementBlock(Fragment, null, renderList(item.children, (sub) => {
59
+ return openBlock(), createBlock(_component_a_menu_item, {
60
+ key: sub.key,
61
+ onClick: sub.onClick
62
+ }, createSlots({
63
+ default: withCtx(() => [
64
+ createTextVNode(" " + toDisplayString(sub.label), 1)
65
+ ]),
66
+ _: 2
67
+ }, [
68
+ sub.icon ? {
69
+ name: "icon",
70
+ fn: withCtx(() => [
71
+ (openBlock(), createBlock(resolveDynamicComponent(sub.icon)))
72
+ ]),
73
+ key: "0"
74
+ } : void 0
75
+ ]), 1032, ["onClick"]);
76
+ }), 128))
77
+ ]),
78
+ _: 2
79
+ }, [
80
+ item.icon ? {
81
+ name: "icon",
82
+ fn: withCtx(() => [
83
+ (openBlock(), createBlock(resolveDynamicComponent(item.icon)))
84
+ ]),
85
+ key: "0"
86
+ } : void 0
87
+ ]), 1032, ["title"])) : (openBlock(), createBlock(_component_a_menu_item, {
88
+ onClick: item.onClick,
89
+ key: item.key
90
+ }, createSlots({
91
+ default: withCtx(() => [
92
+ createTextVNode(" " + toDisplayString(item.label), 1)
93
+ ]),
94
+ _: 2
95
+ }, [
96
+ item.icon ? {
97
+ name: "icon",
98
+ fn: withCtx(() => [
99
+ (openBlock(), createBlock(resolveDynamicComponent(item.icon)))
100
+ ]),
101
+ key: "0"
102
+ } : void 0
103
+ ]), 1032, ["onClick"]))
104
+ ], 64)) : createCommentVNode("", true)
105
+ ], 64);
106
+ }), 128))
107
+ ]),
108
+ _: 1
109
+ })
110
+ ]),
111
+ default: withCtx(() => [
112
+ createElementVNode("div", {
113
+ class: "context-menu-trigger",
114
+ style: normalizeStyle({ position: "fixed", left: _ctx.x + "px", top: _ctx.y + "px" })
115
+ }, null, 4)
116
+ ]),
117
+ _: 1
118
+ }, 8, ["open"]);
119
+ };
120
+ }
121
+ });
122
+ export {
123
+ _sfc_main as default
124
+ };
125
+ //# sourceMappingURL=WidgetContextMenu.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetContextMenu.vue2.js","sources":["../../../../../../core/src/components/contextMenu/WidgetContextMenu.vue"],"sourcesContent":["<template>\n <a-dropdown :open=\"visible\" @update:open=\"handleVisibleChange\" :trigger=\"['click']\">\n <div\n class=\"context-menu-trigger\"\n :style=\"{ position: 'fixed', left: x + 'px', top: y + 'px' }\"\n ></div>\n <template #overlay>\n <a-menu>\n <template v-for=\"item in menuConfigs\" :key=\"item.key\">\n <a-menu-divider v-if=\"item.divider\" />\n <template v-else-if=\"!item.hidden\">\n <a-sub-menu v-if=\"item.children\" :title=\"item.label\">\n <template #icon v-if=\"item.icon\">\n <component :is=\"item.icon\" />\n </template>\n <a-menu-item\n v-for=\"sub in item.children\"\n :key=\"sub.key\"\n @click=\"sub.onClick\"\n >\n <template #icon v-if=\"sub.icon\">\n <component :is=\"sub.icon\" />\n </template>\n {{ sub.label }}\n </a-menu-item>\n </a-sub-menu>\n <a-menu-item v-else @click=\"item.onClick\" :key=\"item.key\">\n <template #icon v-if=\"item.icon\">\n <component :is=\"item.icon\" />\n </template>\n {{ item.label }}\n </a-menu-item>\n </template>\n </template>\n </a-menu>\n </template>\n </a-dropdown>\n</template>\n\n<script lang=\"ts\" setup>\n import { Widget } from '@kp-ui/lowcode-core/src/types/schema';\n import { useWidgetContextMenu } from './useWidgetContextMenu';\n\n defineOptions({\n name: 'WidgetContextMenu'\n });\n\n const props = defineProps<{\n widget: Widget | null;\n index: number;\n visible: boolean;\n x: number;\n y: number;\n parentWidget?: any;\n }>();\n const list = defineModel<Widget[]>('list', { default: () => [] });\n\n const emit = defineEmits<{\n (e: 'update:visible', visible: boolean): void;\n }>();\n\n const handleVisibleChange = (val: boolean) => {\n emit('update:visible', val);\n };\n\n const { menuConfigs } = useWidgetContextMenu({\n widget: props.widget as Widget,\n index: props.index,\n parentWidget: props.parentWidget,\n list: list,\n onClose: () => handleVisibleChange(false)\n });\n</script>\n\n<style scoped>\n .context-menu-trigger {\n width: 1px;\n height: 1px;\n z-index: 9999;\n }\n</style>\n"],"names":["_useModel","_createBlock","visible","_createVNode","_createElementBlock","_Fragment","_renderList","_unref","_openBlock","_toDisplayString","_resolveDynamicComponent","_createElementVNode","_normalizeStyle","x","y"],"mappings":";;;;;;;;;;;;;;;;;;;;AA+CI,UAAM,QAAQ;AAQd,UAAM,OAAOA,SAAqB,SAAC,MAA6B;AAEhE,UAAM,OAAO;AAIb,UAAM,sBAAsB,CAAC,QAAiB;AAC1C,WAAK,kBAAkB,GAAG;AAAA,IAC9B;AAEA,UAAM,EAAE,YAAA,IAAgB,qBAAqB;AAAA,MACzC,QAAQ,MAAM;AAAA,MACd,OAAO,MAAM;AAAA,MACb,cAAc,MAAM;AAAA,MACpB;AAAA,MACA,SAAS,MAAM,oBAAoB,KAAK;AAAA,IAAA,CAC3C;;;;;;;0BAtEDC,YAmCa,uBAAA;AAAA,QAnCA,MAAMC,KAAAA;AAAAA,QAAU,iBAAa;AAAA,QAAsB,SAAS,CAAA,OAAA;AAAA,MAAA;QAK1D,iBACP,MA2BS;AAAA,UA3BTC,YA2BS,mBAAA,MAAA;AAAA,6BA1BK,MAA2B;AAAA,gCAArCC,mBAyBWC,UAAA,MAAAC,WAzBcC,MAAA,WAAA,GAAW,CAAnB,SAAI;;kBAAuB,KAAA,KAAK;AAAA,gBAAA;kBACvB,KAAK,wBAA3BN,YAAsC,2BAAA,EAAA,KAAA,EAAA,CAAA,KAChB,CAAA,KAAK,uBAA3BG,mBAsBWC,UAAA,EAAA,KAAA,KAAA;AAAA,oBArBW,KAAK,yBAAvBJ,YAca,uBAAA;AAAA;sBAdqB,OAAO,KAAK;AAAA,oBAAA;uCAKtC,MAA4B;AAAA,yBADhCO,UAAA,IAAA,GAAAJ,mBAScC,UAAA,MAAAC,WARI,KAAK,WAAZ,QAAG;8CADdL,YASc,wBAAA;AAAA,4BAPT,KAAK,IAAI;AAAA,4BACT,SAAO,IAAI;AAAA,0BAAA;6CAID,MACX;AAAA,8CADW,MACXQ,gBAAG,IAAI,KAAK,GAAA,CAAA;AAAA,4BAAA;;;4BAHU,IAAI;oCAAf;AAAA,0CACP,MAA4B;AAAA,8CAA5BR,YAA4BS,wBAAZ,IAAI,IAAI,CAAA;AAAA,8BAAA;;;;;;;;sBATV,KAAK;8BAAhB;AAAA,oCACP,MAA6B;AAAA,wCAA7BT,YAA6BS,wBAAb,KAAK,IAAI,CAAA;AAAA,wBAAA;;;0DAajCT,YAKc,wBAAA;AAAA,sBALO,SAAO,KAAK;AAAA,sBAAU,KAAK,KAAK;AAAA,oBAAA;uCAGtC,MACX;AAAA,wCADW,MACXQ,gBAAG,KAAK,KAAK,GAAA,CAAA;AAAA,sBAAA;;;sBAHS,KAAK;8BAAhB;AAAA,oCACP,MAA6B;AAAA,wCAA7BR,YAA6BS,wBAAb,KAAK,IAAI,CAAA;AAAA,wBAAA;;;;;;;;;;;yBA1BjD,MAGO;AAAA,UAHPC,mBAGO,OAAA;AAAA,YAFH,OAAM;AAAA,YACL,OAAKC,eAAA,EAAA,UAAA,SAAA,MAA6BC,KAAAA,IAAC,MAAA,KAAcC,KAAAA,IAAC,MAAA;AAAA,UAAA;;;;;;;"}
@@ -0,0 +1,165 @@
1
+ import { computed } from "vue";
2
+ import { RollbackOutlined, UnlockOutlined, LockOutlined, VerticalAlignTopOutlined, VerticalAlignBottomOutlined, ArrowUpOutlined, ArrowDownOutlined, AppstoreOutlined, CopyOutlined, DeleteOutlined } from "@ant-design/icons-vue";
3
+ import { useDesigner } from "../../hooks/useDesigner.js";
4
+ import { useI18n } from "../../utils/i18n.js";
5
+ function useWidgetContextMenu(props) {
6
+ const { designer, isBI } = useDesigner();
7
+ const { i18nt } = useI18n();
8
+ const moveUpWidget = () => {
9
+ designer.value.moveUpWidget(props.list.value, props.index);
10
+ designer.value.emitHistoryChange();
11
+ };
12
+ const moveDownWidget = () => {
13
+ designer.value.moveDownWidget(props.list.value, props.index);
14
+ designer.value.emitHistoryChange();
15
+ };
16
+ const cloneWidget = () => {
17
+ const list = props.list.value;
18
+ if (!list) return;
19
+ const cloned = designer.value.copyWidget(props.widget);
20
+ list.splice(props.index + 1, 0, cloned);
21
+ designer.value.setSelected(cloned);
22
+ designer.value.emitHistoryChange();
23
+ };
24
+ const removeWidget = () => {
25
+ designer.value.removeWidget(props.list.value, props.index, props.parentWidget);
26
+ };
27
+ const selectParentWidget = () => {
28
+ var _a;
29
+ if ((_a = props.parentWidget) == null ? void 0 : _a.id) {
30
+ designer.value.setSelected(props.parentWidget);
31
+ } else {
32
+ designer.value.clearSelected();
33
+ }
34
+ };
35
+ const handleAction = (action) => {
36
+ action();
37
+ props.onClose();
38
+ };
39
+ const handleLock = () => {
40
+ props.widget.options.locked = !props.widget.options.locked;
41
+ props.onClose();
42
+ };
43
+ const handleLayer = (type) => {
44
+ const widget = props.widget;
45
+ const zIndex = widget.options.zIndex || 0;
46
+ const list = designer.value.widgetList;
47
+ switch (type) {
48
+ case "top":
49
+ const maxZ = Math.max(...list.map((w) => w.options.zIndex || 0));
50
+ widget.options.zIndex = maxZ + 1;
51
+ break;
52
+ case "bottom":
53
+ const minZ = Math.min(...list.map((w) => w.options.zIndex || 0));
54
+ widget.options.zIndex = minZ - 1;
55
+ break;
56
+ case "up":
57
+ widget.options.zIndex = zIndex + 1;
58
+ break;
59
+ case "down":
60
+ widget.options.zIndex = zIndex - 1;
61
+ break;
62
+ }
63
+ props.onClose();
64
+ };
65
+ const menuConfigs = computed(() => {
66
+ var _a;
67
+ const configs = [];
68
+ if ((_a = props.parentWidget) == null ? void 0 : _a.id) {
69
+ configs.push({
70
+ key: "selectParent",
71
+ label: i18nt("designer.hint.selectParentWidget"),
72
+ icon: RollbackOutlined,
73
+ onClick: () => handleAction(selectParentWidget)
74
+ });
75
+ configs.push({ key: "d1", divider: true });
76
+ }
77
+ if (isBI.value) {
78
+ configs.push({
79
+ key: "lock",
80
+ label: props.widget.options.locked ? i18nt("designer.hint.unlock") : i18nt("designer.hint.lock"),
81
+ icon: props.widget.options.locked ? UnlockOutlined : LockOutlined,
82
+ onClick: handleLock
83
+ });
84
+ configs.push({
85
+ key: "layer",
86
+ label: i18nt("designer.hint.layer"),
87
+ icon: AppstoreOutlined,
88
+ children: [
89
+ {
90
+ key: "bringToFront",
91
+ label: i18nt("designer.hint.bringToFront"),
92
+ icon: VerticalAlignTopOutlined,
93
+ onClick: () => handleLayer("top")
94
+ },
95
+ {
96
+ key: "sendToBack",
97
+ label: i18nt("designer.hint.sendToBack"),
98
+ icon: VerticalAlignBottomOutlined,
99
+ onClick: () => handleLayer("bottom")
100
+ },
101
+ {
102
+ key: "bringForward",
103
+ label: i18nt("designer.hint.bringForward"),
104
+ icon: ArrowUpOutlined,
105
+ onClick: () => handleLayer("up")
106
+ },
107
+ {
108
+ key: "sendBackward",
109
+ label: i18nt("designer.hint.sendBackward"),
110
+ icon: ArrowDownOutlined,
111
+ onClick: () => handleLayer("down")
112
+ }
113
+ ]
114
+ });
115
+ configs.push({
116
+ key: "clone",
117
+ label: i18nt("designer.hint.cloneWidget"),
118
+ icon: CopyOutlined,
119
+ onClick: () => handleAction(cloneWidget)
120
+ });
121
+ configs.push({ key: "d2", divider: true });
122
+ } else {
123
+ configs.push({
124
+ key: "moveUp",
125
+ label: i18nt("designer.hint.moveUpWidget"),
126
+ icon: ArrowUpOutlined,
127
+ onClick: () => handleAction(moveUpWidget),
128
+ hidden: props.index <= 0
129
+ });
130
+ configs.push({
131
+ key: "moveDown",
132
+ label: i18nt("designer.hint.moveDownWidget"),
133
+ icon: ArrowDownOutlined,
134
+ onClick: () => handleAction(moveDownWidget),
135
+ hidden: props.index >= props.list.value.length - 1
136
+ });
137
+ configs.push({
138
+ key: "clone",
139
+ label: i18nt("designer.hint.cloneWidget"),
140
+ icon: CopyOutlined,
141
+ onClick: () => handleAction(cloneWidget)
142
+ });
143
+ configs.push({ key: "d3", divider: true });
144
+ }
145
+ configs.push({
146
+ key: "delete",
147
+ label: i18nt("designer.hint.remove"),
148
+ icon: DeleteOutlined,
149
+ onClick: () => handleAction(removeWidget)
150
+ });
151
+ return configs.filter((item) => !item.hidden);
152
+ });
153
+ return {
154
+ menuConfigs,
155
+ moveUpWidget,
156
+ moveDownWidget,
157
+ cloneWidget,
158
+ removeWidget,
159
+ selectParentWidget
160
+ };
161
+ }
162
+ export {
163
+ useWidgetContextMenu
164
+ };
165
+ //# sourceMappingURL=useWidgetContextMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWidgetContextMenu.js","sources":["../../../../../../core/src/components/contextMenu/useWidgetContextMenu.ts"],"sourcesContent":["import { Component, computed, Ref } from 'vue';\nimport { Widget } from '@kp-ui/lowcode-core/src/types/schema';\nimport {\n DeleteOutlined,\n LockOutlined,\n UnlockOutlined,\n VerticalAlignTopOutlined,\n VerticalAlignBottomOutlined,\n ArrowUpOutlined,\n ArrowDownOutlined,\n AppstoreOutlined,\n CopyOutlined,\n RollbackOutlined\n} from '@ant-design/icons-vue';\nimport { useDesigner } from '@kp-ui/lowcode-core';\nimport { useI18n } from '@kp-ui/lowcode-core';\n\nexport interface MenuItem {\n key: string;\n label?: string;\n icon?: Component;\n onClick?: () => void;\n divider?: boolean;\n children?: MenuItem[];\n hidden?: boolean;\n}\n\nexport function useWidgetContextMenu(props: {\n widget: Widget;\n index: number;\n parentWidget?: Widget;\n onClose: () => void;\n list: Ref<Widget[]>;\n}) {\n const { designer, isBI } = useDesigner();\n const { i18nt } = useI18n();\n\n // 上移组件\n const moveUpWidget = () => {\n designer.value.moveUpWidget(props.list.value, props.index);\n designer.value.emitHistoryChange();\n };\n\n // 下移组件\n const moveDownWidget = () => {\n designer.value.moveDownWidget(props.list.value, props.index);\n designer.value.emitHistoryChange();\n };\n\n // 复制组件\n const cloneWidget = () => {\n const list = props.list.value;\n if (!list) return;\n const cloned = designer.value.copyWidget(props.widget);\n list.splice(props.index + 1, 0, cloned);\n designer.value.setSelected(cloned);\n designer.value.emitHistoryChange();\n };\n\n // 删除组件\n const removeWidget = () => {\n designer.value.removeWidget(props.list.value, props.index, props.parentWidget);\n };\n\n // 选择父组件\n const selectParentWidget = () => {\n if (props.parentWidget?.id) {\n designer.value.setSelected(props.parentWidget);\n } else {\n designer.value.clearSelected();\n }\n };\n\n const handleAction = (action: () => void) => {\n action();\n props.onClose();\n };\n\n const handleLock = () => {\n props.widget.options.locked = !props.widget.options.locked;\n props.onClose();\n };\n\n const handleLayer = (type: 'top' | 'bottom' | 'up' | 'down') => {\n const widget = props.widget;\n const zIndex = widget.options.zIndex || 0;\n const list = designer.value.widgetList;\n switch (type) {\n case 'top':\n const maxZ = Math.max(...list.map(w => w.options.zIndex || 0));\n widget.options.zIndex = maxZ + 1;\n break;\n case 'bottom':\n const minZ = Math.min(...list.map(w => w.options.zIndex || 0));\n widget.options.zIndex = minZ - 1;\n break;\n case 'up':\n widget.options.zIndex = zIndex + 1;\n break;\n case 'down':\n widget.options.zIndex = zIndex - 1;\n break;\n }\n props.onClose();\n };\n\n const menuConfigs = computed<MenuItem[]>(() => {\n const configs: MenuItem[] = [];\n\n // 选择父组件\n if (props.parentWidget?.id) {\n configs.push({\n key: 'selectParent',\n label: i18nt('designer.hint.selectParentWidget'),\n icon: RollbackOutlined,\n onClick: () => handleAction(selectParentWidget)\n });\n configs.push({ key: 'd1', divider: true });\n }\n\n if (isBI.value) {\n // BI 模式特有:锁定\n configs.push({\n key: 'lock',\n label: props.widget.options.locked\n ? i18nt('designer.hint.unlock')\n : i18nt('designer.hint.lock'),\n icon: props.widget.options.locked ? UnlockOutlined : LockOutlined,\n onClick: handleLock\n });\n\n // BI 模式特有:图层\n configs.push({\n key: 'layer',\n label: i18nt('designer.hint.layer'),\n icon: AppstoreOutlined,\n children: [\n {\n key: 'bringToFront',\n label: i18nt('designer.hint.bringToFront'),\n icon: VerticalAlignTopOutlined,\n onClick: () => handleLayer('top')\n },\n {\n key: 'sendToBack',\n label: i18nt('designer.hint.sendToBack'),\n icon: VerticalAlignBottomOutlined,\n onClick: () => handleLayer('bottom')\n },\n {\n key: 'bringForward',\n label: i18nt('designer.hint.bringForward'),\n icon: ArrowUpOutlined,\n onClick: () => handleLayer('up')\n },\n {\n key: 'sendBackward',\n label: i18nt('designer.hint.sendBackward'),\n icon: ArrowDownOutlined,\n onClick: () => handleLayer('down')\n }\n ]\n });\n\n configs.push({\n key: 'clone',\n label: i18nt('designer.hint.cloneWidget'),\n icon: CopyOutlined,\n onClick: () => handleAction(cloneWidget)\n });\n\n configs.push({ key: 'd2', divider: true });\n } else {\n // 非 BI 模式:上移/下移/复制\n configs.push({\n key: 'moveUp',\n label: i18nt('designer.hint.moveUpWidget'),\n icon: ArrowUpOutlined,\n onClick: () => handleAction(moveUpWidget),\n hidden: props.index <= 0\n });\n configs.push({\n key: 'moveDown',\n label: i18nt('designer.hint.moveDownWidget'),\n icon: ArrowDownOutlined,\n onClick: () => handleAction(moveDownWidget),\n hidden: props.index >= props.list.value.length - 1\n });\n\n configs.push({\n key: 'clone',\n label: i18nt('designer.hint.cloneWidget'),\n icon: CopyOutlined,\n onClick: () => handleAction(cloneWidget)\n });\n\n configs.push({ key: 'd3', divider: true });\n }\n\n // 删除\n configs.push({\n key: 'delete',\n label: i18nt('designer.hint.remove'),\n icon: DeleteOutlined,\n onClick: () => handleAction(removeWidget)\n });\n\n return configs.filter(item => !item.hidden);\n });\n\n return {\n menuConfigs,\n moveUpWidget,\n moveDownWidget,\n cloneWidget,\n removeWidget,\n selectParentWidget\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ var LayoutTypeEnum = /* @__PURE__ */ ((LayoutTypeEnum2) => {
2
+ LayoutTypeEnum2["PC"] = "PC";
3
+ LayoutTypeEnum2["H5"] = "H5";
4
+ LayoutTypeEnum2["BI"] = "BI";
5
+ return LayoutTypeEnum2;
6
+ })(LayoutTypeEnum || {});
7
+ export {
8
+ LayoutTypeEnum
9
+ };
10
+ //# sourceMappingURL=LayoutTypeEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutTypeEnum.js","sources":["../../../../../core/src/constants/LayoutTypeEnum.ts"],"sourcesContent":["export enum LayoutTypeEnum {\n PC = 'PC',\n H5 = 'H5',\n BI = 'BI'\n}\n"],"names":["LayoutTypeEnum"],"mappings":"AAAO,IAAK,mCAAAA,oBAAL;AACHA,kBAAA,IAAA,IAAK;AACLA,kBAAA,IAAA,IAAK;AACLA,kBAAA,IAAA,IAAK;AAHG,SAAAA;AAAA,GAAA,kBAAA,CAAA,CAAA;"}