@luck-design-biz/luckda 0.0.23 → 0.0.24-2

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 (433) hide show
  1. package/es/components/Builder/index.js +6 -4
  2. package/es/components/LdFormList/index.js +1 -4
  3. package/es/components/LdGrid/index.js +12 -3
  4. package/es/lowcode/constants/api-url.js +292 -1
  5. package/es/lowcode/constants/event-topics.js +14 -1
  6. package/es/lowcode/engine/factory/panel-item-factory/DynamicStrategy.js +60 -0
  7. package/es/lowcode/engine/factory/panel-item-factory/GroupStrategy.js +32 -0
  8. package/es/lowcode/engine/factory/panel-item-factory/NumberStrategy.js +32 -0
  9. package/es/lowcode/engine/factory/panel-item-factory/SegmentedStrategy.js +32 -0
  10. package/es/lowcode/engine/factory/panel-item-factory/SelectStrategy.js +53 -0
  11. package/es/lowcode/engine/factory/panel-item-factory/Strategy.js +21 -0
  12. package/es/lowcode/engine/factory/panel-item-factory/StringStrategy.js +51 -0
  13. package/es/lowcode/engine/factory/panel-item-factory/SwitchStrategy.js +42 -0
  14. package/es/lowcode/engine/factory/panel-item-factory/index.js +44 -0
  15. package/es/lowcode/engine/meta/box.props.default.json +12 -0
  16. package/es/lowcode/engine/meta/box.props.json +42 -0
  17. package/es/lowcode/engine/meta/button.props.default.json +15 -7
  18. package/es/lowcode/engine/meta/{components/button.json → button.props.json} +126 -103
  19. package/es/lowcode/engine/meta/cardlist.props.default.json +17 -9
  20. package/es/lowcode/engine/meta/{components/card-list.json → cardlist.props.json} +143 -142
  21. package/es/lowcode/engine/meta/components-list.json +127 -121
  22. package/es/lowcode/engine/meta/dialog.props.default.json +19 -0
  23. package/{lib/lowcode/engine/meta/components/modal.json → es/lowcode/engine/meta/dialog.props.json} +120 -119
  24. package/es/lowcode/engine/meta/drawer.props.default.json +17 -9
  25. package/{lib/lowcode/engine/meta/components/drawer.json → es/lowcode/engine/meta/drawer.props.json} +143 -142
  26. package/es/lowcode/engine/meta/form.props.default.json +12 -4
  27. package/{lib/lowcode/engine/meta/components/form.json → es/lowcode/engine/meta/form.props.json} +116 -115
  28. package/es/lowcode/engine/meta/iframe.props.default.json +10 -2
  29. package/es/lowcode/engine/meta/{components/iframe.json → iframe.props.json} +31 -30
  30. package/es/lowcode/engine/meta/image.props.default.json +15 -7
  31. package/es/lowcode/engine/meta/{components/image.json → image.props.json} +113 -112
  32. package/es/lowcode/engine/meta/imex.props.default.json +11 -3
  33. package/{lib/lowcode/engine/meta/components/imex.json → es/lowcode/engine/meta/imex.props.json} +81 -80
  34. package/es/lowcode/engine/meta/js-editor/auto-complete.json +29 -0
  35. package/es/lowcode/engine/meta/jsx.props.default.json +10 -1
  36. package/es/lowcode/engine/meta/{components/jsx.json → jsx.props.json} +24 -23
  37. package/es/lowcode/engine/meta/layout.props.default.json +12 -4
  38. package/{lib/lowcode/engine/meta/components/layout.json → es/lowcode/engine/meta/layout.props.json} +107 -106
  39. package/es/lowcode/engine/meta/link.props.default.json +13 -5
  40. package/{lib/lowcode/engine/meta/components/link.json → es/lowcode/engine/meta/link.props.json} +111 -110
  41. package/es/lowcode/engine/meta/section.props.default.json +16 -8
  42. package/{lib/lowcode/engine/meta/components/section.json → es/lowcode/engine/meta/section.props.json} +107 -106
  43. package/es/lowcode/engine/meta/split.props.default.json +12 -4
  44. package/es/lowcode/engine/meta/{components/split.json → split.props.json} +71 -70
  45. package/es/lowcode/engine/meta/table.props.default.json +29 -9
  46. package/es/lowcode/engine/meta/table.props.json +236 -0
  47. package/es/lowcode/engine/meta/tabs.props.default.json +17 -9
  48. package/es/lowcode/engine/meta/{components/tabs.json → tabs.props.json} +140 -139
  49. package/es/lowcode/engine/meta/text.props.default.json +11 -3
  50. package/{lib/lowcode/engine/meta/components/text.json → es/lowcode/engine/meta/text.props.json} +65 -64
  51. package/es/lowcode/engine/meta/tree.props.default.json +16 -8
  52. package/es/lowcode/engine/meta/{components/tree.json → tree.props.json} +156 -155
  53. package/es/lowcode/engine/provider/ContextProvider.js +46 -41
  54. package/es/lowcode/engine/provider/EventBusProvider.js +2 -2
  55. package/es/lowcode/engine/tools/dataProcess.js +85 -8
  56. package/es/lowcode/engine/tools/helper.js +68 -0
  57. package/es/lowcode/engine/tools/usePromiseState.js +24 -0
  58. package/es/lowcode/index.js +3 -1
  59. package/es/lowcode/painter/Design.js +40 -85
  60. package/es/lowcode/painter/DesignOperator.js +271 -0
  61. package/es/lowcode/painter/DesignToolbar.js +91 -0
  62. package/es/lowcode/painter/I18n.js +202 -2
  63. package/es/lowcode/painter/Outline.js +63 -54
  64. package/es/lowcode/painter/Panel.js +239 -2
  65. package/es/lowcode/painter/Ribbon.js +61 -55
  66. package/es/lowcode/painter/components/Collapse.js +90 -0
  67. package/es/lowcode/painter/components/ColorInput.js +125 -0
  68. package/es/lowcode/painter/components/ListEditor.js +89 -0
  69. package/es/lowcode/painter/components/NumberInput.js +148 -0
  70. package/es/lowcode/painter/components/PanelItem.js +83 -11
  71. package/es/lowcode/painter/components/PopConfirm.js +23 -0
  72. package/es/lowcode/painter/components/PopForm.js +71 -0
  73. package/es/lowcode/painter/components/RuleInput.js +9 -7
  74. package/es/lowcode/painter/components/SortBox.js +92 -0
  75. package/es/lowcode/painter/components/actions-editor/ActionEditor.js +147 -0
  76. package/es/lowcode/painter/components/actions-editor/index.js +170 -0
  77. package/es/lowcode/painter/components/code-editor/BaseEditor.js +96 -0
  78. package/es/lowcode/painter/components/code-editor/CssEditor.js +41 -0
  79. package/es/lowcode/painter/components/code-editor/FullScreenEditor.js +87 -0
  80. package/es/lowcode/painter/components/code-editor/JSEditor.js +106 -0
  81. package/es/lowcode/painter/components/code-editor/index.js +2 -0
  82. package/es/lowcode/painter/index.js +33 -3
  83. package/es/lowcode/painter/panel-section/ButtonType.js +39 -0
  84. package/es/lowcode/painter/panel-section/DataSetSelector.js +61 -0
  85. package/es/lowcode/painter/panel-section/Icon.js +48 -0
  86. package/es/lowcode/painter/panel-section/IconSelector.js +134 -0
  87. package/es/lowcode/painter/panel-section/LayoutRatio.js +57 -49
  88. package/es/lowcode/painter/panel-section/StylePanel/BackGround.js +61 -0
  89. package/es/lowcode/painter/panel-section/StylePanel/Border.js +150 -0
  90. package/es/lowcode/painter/panel-section/StylePanel/BorderRadius.js +87 -0
  91. package/es/lowcode/painter/panel-section/StylePanel/BorderRadiusSelector.js +66 -0
  92. package/es/lowcode/painter/panel-section/StylePanel/BorderSelector.js +66 -0
  93. package/es/lowcode/painter/panel-section/StylePanel/Display.js +296 -0
  94. package/es/lowcode/painter/panel-section/StylePanel/DisplaySvg.js +543 -0
  95. package/es/lowcode/painter/panel-section/StylePanel/Font.js +162 -0
  96. package/es/lowcode/painter/panel-section/StylePanel/FontEditor.js +386 -0
  97. package/es/lowcode/painter/panel-section/StylePanel/GapSelector.js +78 -0
  98. package/es/lowcode/painter/panel-section/StylePanel/HighLightPanel.js +23 -0
  99. package/es/lowcode/painter/panel-section/StylePanel/HighLigthtSpan.js +20 -0
  100. package/es/lowcode/painter/panel-section/StylePanel/HightLightSvg.js +23 -0
  101. package/es/lowcode/painter/panel-section/StylePanel/MainPanel.js +96 -0
  102. package/es/lowcode/painter/panel-section/StylePanel/Margin.js +60 -0
  103. package/es/lowcode/painter/panel-section/StylePanel/Opacity.js +50 -0
  104. package/es/lowcode/painter/panel-section/StylePanel/Padding.js +61 -0
  105. package/es/lowcode/painter/panel-section/StylePanel/Pointer.js +41 -0
  106. package/es/lowcode/painter/panel-section/StylePanel/Shadow.js +216 -0
  107. package/es/lowcode/painter/panel-section/StylePanel/Size.js +53 -0
  108. package/es/lowcode/painter/panel-section/StylePanel/StyleContext.js +148 -0
  109. package/es/lowcode/painter/panel-section/StylePanel/StyleRow.js +16 -0
  110. package/es/lowcode/painter/panel-section/StylePanel/WidthHeight.js +51 -0
  111. package/es/lowcode/painter/panel-section/StylePanel/index.js +29 -0
  112. package/es/lowcode/painter/panel-section/TabItems.js +207 -0
  113. package/es/lowcode/painter/panel-section/TableActions.js +19 -0
  114. package/es/lowcode/painter/panel-section/TableZebra.js +14 -0
  115. package/es/lowcode/painter/panel-section/WidthHeight.js +39 -0
  116. package/es/lowcode/painter/services/I18n.js +85 -0
  117. package/es/lowcode/painter/style/actions-editor.less +16 -0
  118. package/es/lowcode/painter/style/border-editor.less +36 -0
  119. package/es/lowcode/painter/style/border-radius-selector.less +43 -0
  120. package/es/lowcode/painter/style/border-selector.less +40 -0
  121. package/es/lowcode/painter/style/button-type.less +5 -0
  122. package/es/lowcode/painter/style/collapse.less +22 -0
  123. package/es/lowcode/painter/style/color-input.less +19 -0
  124. package/es/lowcode/painter/style/design.less +116 -5
  125. package/es/lowcode/painter/style/display.less +17 -0
  126. package/es/lowcode/painter/style/font-editor.less +9 -0
  127. package/es/lowcode/painter/style/fullscreen-editor.less +17 -0
  128. package/es/lowcode/painter/style/icon-selector.less +22 -0
  129. package/es/lowcode/painter/style/icon.less +11 -0
  130. package/es/lowcode/painter/style/index.less +0 -1
  131. package/es/lowcode/painter/style/layout-ratio.less +1 -1
  132. package/es/lowcode/painter/style/list-editor.less +59 -0
  133. package/es/lowcode/painter/style/number-input.less +17 -0
  134. package/es/lowcode/painter/style/outline.less +2 -0
  135. package/es/lowcode/painter/style/panel-item.less +45 -12
  136. package/es/lowcode/painter/style/panel.less +124 -0
  137. package/es/lowcode/painter/style/pop-confirm.less +10 -0
  138. package/es/lowcode/painter/style/pop-form.less +20 -0
  139. package/es/lowcode/painter/style/ribbon.less +1 -0
  140. package/es/lowcode/painter/style/style-panel.less +37 -0
  141. package/es/lowcode/painter/style/tabitems.less +90 -0
  142. package/es/lowcode/view/Canvas.js +79 -70
  143. package/es/lowcode/view/Page.js +10 -28
  144. package/es/lowcode/view/index.js +5 -6
  145. package/es/lowcode/view/lc-components/Box/FunctionDesign.js +20 -0
  146. package/es/lowcode/view/lc-components/Box/FunctionLive.js +9 -0
  147. package/es/lowcode/view/lc-components/Box/index.js +22 -5
  148. package/es/lowcode/view/lc-components/Box/index.less +15 -0
  149. package/es/lowcode/view/lc-components/Box/meta.json +42 -0
  150. package/es/lowcode/view/lc-components/Button/FunctionDesign.js +21 -0
  151. package/es/lowcode/view/lc-components/Button/FunctionLive.js +9 -0
  152. package/es/lowcode/view/lc-components/Button/index.js +75 -7
  153. package/es/lowcode/view/lc-components/Button/meta.json +127 -0
  154. package/es/lowcode/view/lc-components/Button/style.less +3 -0
  155. package/es/lowcode/view/lc-components/CardList/FunctionDesign.js +9 -0
  156. package/es/lowcode/view/lc-components/CardList/FunctionLive.js +9 -0
  157. package/{lib/lowcode/engine/meta/components/table.json → es/lowcode/view/lc-components/CardList/meta.json} +11 -28
  158. package/es/lowcode/view/lc-components/Dialog/FunctionDesign.js +54 -0
  159. package/es/lowcode/view/lc-components/Dialog/FunctionLive.js +9 -0
  160. package/es/lowcode/view/lc-components/Dialog/index.js +20 -11
  161. package/es/lowcode/view/lc-components/Dialog/index.less +1 -1
  162. package/es/lowcode/view/lc-components/Dialog/meta.json +121 -0
  163. package/es/lowcode/view/lc-components/Drawer/FunctionDesign.js +20 -0
  164. package/es/lowcode/view/lc-components/Drawer/FunctionLive.js +9 -0
  165. package/es/lowcode/view/lc-components/Drawer/index.js +22 -9
  166. package/es/lowcode/view/lc-components/Drawer/index.less +7 -0
  167. package/es/lowcode/view/lc-components/Drawer/meta.json +144 -0
  168. package/es/lowcode/view/lc-components/Form/FunctionDesign.js +9 -0
  169. package/es/lowcode/view/lc-components/Form/FunctionLive.js +9 -0
  170. package/es/lowcode/view/lc-components/Form/meta.json +117 -0
  171. package/es/lowcode/view/lc-components/Iframe/FunctionDesign.js +9 -0
  172. package/es/lowcode/view/lc-components/Iframe/FunctionLive.js +9 -0
  173. package/es/lowcode/view/lc-components/Iframe/meta.json +32 -0
  174. package/es/lowcode/view/lc-components/ImEx/FunctionDesign.js +9 -0
  175. package/es/lowcode/view/lc-components/ImEx/FunctionLive.js +9 -0
  176. package/es/lowcode/view/lc-components/ImEx/meta.json +82 -0
  177. package/es/lowcode/view/lc-components/Image/FunctionDesign.js +9 -0
  178. package/es/lowcode/view/lc-components/Image/FunctionLive.js +9 -0
  179. package/es/lowcode/view/lc-components/Image/meta.json +114 -0
  180. package/es/lowcode/view/lc-components/JSX/FunctionDesign.js +9 -0
  181. package/es/lowcode/view/lc-components/JSX/FunctionLive.js +9 -0
  182. package/es/lowcode/view/lc-components/JSX/meta.json +25 -0
  183. package/es/lowcode/view/lc-components/Layout/FunctionDesign.js +75 -0
  184. package/es/lowcode/view/lc-components/Layout/FunctionLive.js +15 -0
  185. package/es/lowcode/view/lc-components/Layout/index.js +40 -7
  186. package/es/lowcode/view/lc-components/Layout/index.less +5 -0
  187. package/es/lowcode/view/lc-components/Layout/meta.json +108 -0
  188. package/es/lowcode/view/lc-components/Link/FunctionDesign.js +9 -0
  189. package/es/lowcode/view/lc-components/Link/FunctionLive.js +9 -0
  190. package/es/lowcode/view/lc-components/Link/meta.json +112 -0
  191. package/es/lowcode/view/lc-components/Section/FunctionDesign.js +9 -0
  192. package/es/lowcode/view/lc-components/Section/FunctionLive.js +9 -0
  193. package/es/lowcode/view/lc-components/Section/meta.json +108 -0
  194. package/es/lowcode/view/lc-components/Split/FunctionDesign.js +9 -0
  195. package/es/lowcode/view/lc-components/Split/FunctionLive.js +9 -0
  196. package/es/lowcode/view/lc-components/Split/meta.json +72 -0
  197. package/es/lowcode/view/lc-components/Table/FunctionDesign.js +18 -0
  198. package/es/lowcode/view/lc-components/Table/FunctionLive.js +9 -0
  199. package/es/lowcode/view/lc-components/Table/index.js +229 -9
  200. package/es/lowcode/view/lc-components/Table/meta.json +225 -0
  201. package/es/lowcode/view/lc-components/Tabs/FunctionDesign.js +9 -0
  202. package/es/lowcode/view/lc-components/Tabs/FunctionLive.js +9 -0
  203. package/es/lowcode/view/lc-components/Tabs/meta.json +141 -0
  204. package/es/lowcode/view/lc-components/Text/FunctionDesign.js +9 -0
  205. package/es/lowcode/view/lc-components/Text/FunctionLive.js +9 -0
  206. package/es/lowcode/view/lc-components/Text/meta.json +66 -0
  207. package/es/lowcode/view/lc-components/Tree/FunctionDesign.js +9 -0
  208. package/es/lowcode/view/lc-components/Tree/FunctionLive.js +9 -0
  209. package/es/lowcode/view/lc-components/Tree/meta.json +157 -0
  210. package/es/lowcode/view/lc-components/Wrapper.js +32 -23
  211. package/es/lowcode/view/style/page.less +0 -1
  212. package/es/upload/Form/gridForm.js +1 -1
  213. package/es/utils/grid.js +4 -3
  214. package/lib/components/Builder/index.js +5 -3
  215. package/lib/components/LdFormList/index.js +1 -5
  216. package/lib/components/LdGrid/index.js +12 -3
  217. package/lib/lowcode/constants/api-url.js +294 -2
  218. package/lib/lowcode/constants/event-topics.js +15 -2
  219. package/lib/lowcode/engine/factory/panel-item-factory/DynamicStrategy.js +73 -0
  220. package/lib/lowcode/engine/factory/panel-item-factory/GroupStrategy.js +38 -0
  221. package/lib/lowcode/engine/factory/panel-item-factory/NumberStrategy.js +38 -0
  222. package/lib/lowcode/engine/factory/panel-item-factory/SegmentedStrategy.js +38 -0
  223. package/lib/lowcode/engine/factory/panel-item-factory/SelectStrategy.js +59 -0
  224. package/lib/lowcode/engine/factory/panel-item-factory/Strategy.js +27 -0
  225. package/lib/lowcode/engine/factory/panel-item-factory/StringStrategy.js +57 -0
  226. package/lib/lowcode/engine/factory/panel-item-factory/SwitchStrategy.js +48 -0
  227. package/lib/lowcode/engine/factory/panel-item-factory/index.js +50 -0
  228. package/lib/lowcode/engine/meta/box.props.default.json +12 -0
  229. package/lib/lowcode/engine/meta/box.props.json +42 -0
  230. package/lib/lowcode/engine/meta/button.props.default.json +15 -7
  231. package/lib/lowcode/engine/meta/{components/button.json → button.props.json} +126 -103
  232. package/lib/lowcode/engine/meta/cardlist.props.default.json +17 -9
  233. package/lib/lowcode/engine/meta/{components/card-list.json → cardlist.props.json} +143 -142
  234. package/lib/lowcode/engine/meta/components-list.json +127 -121
  235. package/lib/lowcode/engine/meta/dialog.props.default.json +19 -0
  236. package/{es/lowcode/engine/meta/components/modal.json → lib/lowcode/engine/meta/dialog.props.json} +120 -119
  237. package/lib/lowcode/engine/meta/drawer.props.default.json +17 -9
  238. package/{es/lowcode/engine/meta/components/drawer.json → lib/lowcode/engine/meta/drawer.props.json} +143 -142
  239. package/lib/lowcode/engine/meta/form.props.default.json +12 -4
  240. package/{es/lowcode/engine/meta/components/form.json → lib/lowcode/engine/meta/form.props.json} +116 -115
  241. package/lib/lowcode/engine/meta/iframe.props.default.json +10 -2
  242. package/lib/lowcode/engine/meta/{components/iframe.json → iframe.props.json} +31 -30
  243. package/lib/lowcode/engine/meta/image.props.default.json +15 -7
  244. package/lib/lowcode/engine/meta/{components/image.json → image.props.json} +113 -112
  245. package/lib/lowcode/engine/meta/imex.props.default.json +11 -3
  246. package/{es/lowcode/engine/meta/components/imex.json → lib/lowcode/engine/meta/imex.props.json} +81 -80
  247. package/lib/lowcode/engine/meta/js-editor/auto-complete.json +29 -0
  248. package/lib/lowcode/engine/meta/jsx.props.default.json +10 -1
  249. package/lib/lowcode/engine/meta/{components/jsx.json → jsx.props.json} +24 -23
  250. package/lib/lowcode/engine/meta/layout.props.default.json +12 -4
  251. package/{es/lowcode/engine/meta/components/layout.json → lib/lowcode/engine/meta/layout.props.json} +107 -106
  252. package/lib/lowcode/engine/meta/link.props.default.json +13 -5
  253. package/{es/lowcode/engine/meta/components/link.json → lib/lowcode/engine/meta/link.props.json} +111 -110
  254. package/lib/lowcode/engine/meta/section.props.default.json +16 -8
  255. package/{es/lowcode/engine/meta/components/section.json → lib/lowcode/engine/meta/section.props.json} +107 -106
  256. package/lib/lowcode/engine/meta/split.props.default.json +12 -4
  257. package/lib/lowcode/engine/meta/{components/split.json → split.props.json} +71 -70
  258. package/lib/lowcode/engine/meta/table.props.default.json +29 -9
  259. package/lib/lowcode/engine/meta/table.props.json +236 -0
  260. package/lib/lowcode/engine/meta/tabs.props.default.json +17 -9
  261. package/lib/lowcode/engine/meta/{components/tabs.json → tabs.props.json} +140 -139
  262. package/lib/lowcode/engine/meta/text.props.default.json +11 -3
  263. package/{es/lowcode/engine/meta/components/text.json → lib/lowcode/engine/meta/text.props.json} +65 -64
  264. package/lib/lowcode/engine/meta/tree.props.default.json +16 -8
  265. package/lib/lowcode/engine/meta/{components/tree.json → tree.props.json} +156 -155
  266. package/lib/lowcode/engine/provider/ContextProvider.js +46 -41
  267. package/lib/lowcode/engine/provider/EventBusProvider.js +2 -2
  268. package/lib/lowcode/engine/tools/dataProcess.js +86 -8
  269. package/lib/lowcode/engine/tools/helper.js +70 -0
  270. package/lib/lowcode/engine/tools/usePromiseState.js +31 -0
  271. package/lib/lowcode/index.js +5 -1
  272. package/lib/lowcode/painter/Design.js +39 -84
  273. package/lib/lowcode/painter/DesignOperator.js +278 -0
  274. package/lib/lowcode/painter/DesignToolbar.js +99 -0
  275. package/lib/lowcode/painter/I18n.js +203 -2
  276. package/lib/lowcode/painter/Outline.js +62 -53
  277. package/lib/lowcode/painter/Panel.js +238 -1
  278. package/lib/lowcode/painter/Ribbon.js +63 -64
  279. package/lib/lowcode/painter/components/Collapse.js +97 -0
  280. package/lib/lowcode/painter/components/ColorInput.js +132 -0
  281. package/lib/lowcode/painter/components/ListEditor.js +95 -0
  282. package/lib/lowcode/painter/components/NumberInput.js +155 -0
  283. package/lib/lowcode/painter/components/PanelItem.js +84 -11
  284. package/lib/lowcode/painter/components/PopConfirm.js +29 -0
  285. package/lib/lowcode/painter/components/PopForm.js +77 -0
  286. package/lib/lowcode/painter/components/RuleInput.js +9 -7
  287. package/lib/lowcode/painter/components/SortBox.js +99 -0
  288. package/lib/lowcode/painter/components/actions-editor/ActionEditor.js +155 -0
  289. package/lib/lowcode/painter/components/actions-editor/index.js +178 -0
  290. package/lib/lowcode/painter/components/code-editor/BaseEditor.js +103 -0
  291. package/lib/lowcode/painter/components/code-editor/CssEditor.js +48 -0
  292. package/lib/lowcode/painter/components/code-editor/FullScreenEditor.js +94 -0
  293. package/lib/lowcode/painter/components/code-editor/JSEditor.js +117 -0
  294. package/lib/lowcode/painter/components/code-editor/index.js +20 -0
  295. package/lib/lowcode/painter/index.js +35 -3
  296. package/lib/lowcode/painter/panel-section/ButtonType.js +46 -0
  297. package/lib/lowcode/painter/panel-section/DataSetSelector.js +69 -0
  298. package/lib/lowcode/painter/panel-section/Icon.js +54 -0
  299. package/lib/lowcode/painter/panel-section/IconSelector.js +141 -0
  300. package/lib/lowcode/painter/panel-section/LayoutRatio.js +56 -48
  301. package/lib/lowcode/painter/panel-section/StylePanel/BackGround.js +68 -0
  302. package/lib/lowcode/painter/panel-section/StylePanel/Border.js +158 -0
  303. package/lib/lowcode/painter/panel-section/StylePanel/BorderRadius.js +95 -0
  304. package/lib/lowcode/painter/panel-section/StylePanel/BorderRadiusSelector.js +73 -0
  305. package/lib/lowcode/painter/panel-section/StylePanel/BorderSelector.js +73 -0
  306. package/lib/lowcode/painter/panel-section/StylePanel/Display.js +303 -0
  307. package/lib/lowcode/painter/panel-section/StylePanel/DisplaySvg.js +550 -0
  308. package/lib/lowcode/painter/panel-section/StylePanel/Font.js +170 -0
  309. package/lib/lowcode/painter/panel-section/StylePanel/FontEditor.js +392 -0
  310. package/lib/lowcode/painter/panel-section/StylePanel/GapSelector.js +85 -0
  311. package/lib/lowcode/painter/panel-section/StylePanel/HighLightPanel.js +29 -0
  312. package/lib/lowcode/painter/panel-section/StylePanel/HighLigthtSpan.js +26 -0
  313. package/lib/lowcode/painter/panel-section/StylePanel/HightLightSvg.js +29 -0
  314. package/lib/lowcode/painter/panel-section/StylePanel/MainPanel.js +103 -0
  315. package/lib/lowcode/painter/panel-section/StylePanel/Margin.js +67 -0
  316. package/lib/lowcode/painter/panel-section/StylePanel/Opacity.js +57 -0
  317. package/lib/lowcode/painter/panel-section/StylePanel/Padding.js +68 -0
  318. package/lib/lowcode/painter/panel-section/StylePanel/Pointer.js +48 -0
  319. package/lib/lowcode/painter/panel-section/StylePanel/Shadow.js +224 -0
  320. package/lib/lowcode/painter/panel-section/StylePanel/Size.js +59 -0
  321. package/lib/lowcode/painter/panel-section/StylePanel/StyleContext.js +159 -0
  322. package/lib/lowcode/painter/panel-section/StylePanel/StyleRow.js +22 -0
  323. package/lib/lowcode/painter/panel-section/StylePanel/WidthHeight.js +58 -0
  324. package/lib/lowcode/painter/panel-section/StylePanel/index.js +35 -0
  325. package/lib/lowcode/painter/panel-section/TabItems.js +215 -0
  326. package/lib/lowcode/painter/panel-section/TableActions.js +26 -0
  327. package/lib/lowcode/painter/panel-section/TableZebra.js +21 -0
  328. package/lib/lowcode/painter/panel-section/WidthHeight.js +46 -0
  329. package/lib/lowcode/painter/services/I18n.js +95 -0
  330. package/lib/lowcode/painter/style/actions-editor.less +16 -0
  331. package/lib/lowcode/painter/style/border-editor.less +36 -0
  332. package/lib/lowcode/painter/style/border-radius-selector.less +43 -0
  333. package/lib/lowcode/painter/style/border-selector.less +40 -0
  334. package/lib/lowcode/painter/style/button-type.less +5 -0
  335. package/lib/lowcode/painter/style/collapse.less +22 -0
  336. package/lib/lowcode/painter/style/color-input.less +19 -0
  337. package/lib/lowcode/painter/style/design.less +116 -5
  338. package/lib/lowcode/painter/style/display.less +17 -0
  339. package/lib/lowcode/painter/style/font-editor.less +9 -0
  340. package/lib/lowcode/painter/style/fullscreen-editor.less +17 -0
  341. package/lib/lowcode/painter/style/icon-selector.less +22 -0
  342. package/lib/lowcode/painter/style/icon.less +11 -0
  343. package/lib/lowcode/painter/style/index.less +0 -1
  344. package/lib/lowcode/painter/style/layout-ratio.less +1 -1
  345. package/lib/lowcode/painter/style/list-editor.less +59 -0
  346. package/lib/lowcode/painter/style/number-input.less +17 -0
  347. package/lib/lowcode/painter/style/outline.less +2 -0
  348. package/lib/lowcode/painter/style/panel-item.less +45 -12
  349. package/lib/lowcode/painter/style/panel.less +124 -0
  350. package/lib/lowcode/painter/style/pop-confirm.less +10 -0
  351. package/lib/lowcode/painter/style/pop-form.less +20 -0
  352. package/lib/lowcode/painter/style/ribbon.less +1 -0
  353. package/lib/lowcode/painter/style/style-panel.less +37 -0
  354. package/lib/lowcode/painter/style/tabitems.less +90 -0
  355. package/lib/lowcode/view/Canvas.js +84 -75
  356. package/lib/lowcode/view/Page.js +9 -27
  357. package/lib/lowcode/view/index.js +5 -6
  358. package/lib/lowcode/view/lc-components/Box/FunctionDesign.js +27 -0
  359. package/lib/lowcode/view/lc-components/Box/FunctionLive.js +16 -0
  360. package/lib/lowcode/view/lc-components/Box/index.js +23 -6
  361. package/lib/lowcode/view/lc-components/Box/index.less +15 -0
  362. package/lib/lowcode/view/lc-components/Box/meta.json +42 -0
  363. package/lib/lowcode/view/lc-components/Button/FunctionDesign.js +28 -0
  364. package/lib/lowcode/view/lc-components/Button/FunctionLive.js +16 -0
  365. package/lib/lowcode/view/lc-components/Button/index.js +76 -8
  366. package/lib/lowcode/view/lc-components/Button/meta.json +127 -0
  367. package/lib/lowcode/view/lc-components/Button/style.less +3 -0
  368. package/lib/lowcode/view/lc-components/CardList/FunctionDesign.js +16 -0
  369. package/lib/lowcode/view/lc-components/CardList/FunctionLive.js +16 -0
  370. package/{es/lowcode/engine/meta/components/table.json → lib/lowcode/view/lc-components/CardList/meta.json} +11 -28
  371. package/lib/lowcode/view/lc-components/Dialog/FunctionDesign.js +62 -0
  372. package/lib/lowcode/view/lc-components/Dialog/FunctionLive.js +16 -0
  373. package/lib/lowcode/view/lc-components/Dialog/index.js +20 -11
  374. package/lib/lowcode/view/lc-components/Dialog/index.less +1 -1
  375. package/lib/lowcode/view/lc-components/Dialog/meta.json +121 -0
  376. package/lib/lowcode/view/lc-components/Drawer/FunctionDesign.js +27 -0
  377. package/lib/lowcode/view/lc-components/Drawer/FunctionLive.js +16 -0
  378. package/lib/lowcode/view/lc-components/Drawer/index.js +22 -9
  379. package/lib/lowcode/view/lc-components/Drawer/index.less +7 -0
  380. package/lib/lowcode/view/lc-components/Drawer/meta.json +144 -0
  381. package/lib/lowcode/view/lc-components/Form/FunctionDesign.js +16 -0
  382. package/lib/lowcode/view/lc-components/Form/FunctionLive.js +16 -0
  383. package/lib/lowcode/view/lc-components/Form/meta.json +117 -0
  384. package/lib/lowcode/view/lc-components/Iframe/FunctionDesign.js +16 -0
  385. package/lib/lowcode/view/lc-components/Iframe/FunctionLive.js +16 -0
  386. package/lib/lowcode/view/lc-components/Iframe/meta.json +32 -0
  387. package/lib/lowcode/view/lc-components/ImEx/FunctionDesign.js +16 -0
  388. package/lib/lowcode/view/lc-components/ImEx/FunctionLive.js +16 -0
  389. package/lib/lowcode/view/lc-components/ImEx/meta.json +82 -0
  390. package/lib/lowcode/view/lc-components/Image/FunctionDesign.js +16 -0
  391. package/lib/lowcode/view/lc-components/Image/FunctionLive.js +16 -0
  392. package/lib/lowcode/view/lc-components/Image/meta.json +114 -0
  393. package/lib/lowcode/view/lc-components/JSX/FunctionDesign.js +16 -0
  394. package/lib/lowcode/view/lc-components/JSX/FunctionLive.js +16 -0
  395. package/lib/lowcode/view/lc-components/JSX/meta.json +25 -0
  396. package/lib/lowcode/view/lc-components/Layout/FunctionDesign.js +82 -0
  397. package/lib/lowcode/view/lc-components/Layout/FunctionLive.js +22 -0
  398. package/lib/lowcode/view/lc-components/Layout/index.js +41 -8
  399. package/lib/lowcode/view/lc-components/Layout/index.less +5 -0
  400. package/lib/lowcode/view/lc-components/Layout/meta.json +108 -0
  401. package/lib/lowcode/view/lc-components/Link/FunctionDesign.js +16 -0
  402. package/lib/lowcode/view/lc-components/Link/FunctionLive.js +16 -0
  403. package/lib/lowcode/view/lc-components/Link/meta.json +112 -0
  404. package/lib/lowcode/view/lc-components/Section/FunctionDesign.js +16 -0
  405. package/lib/lowcode/view/lc-components/Section/FunctionLive.js +16 -0
  406. package/lib/lowcode/view/lc-components/Section/meta.json +108 -0
  407. package/lib/lowcode/view/lc-components/Split/FunctionDesign.js +16 -0
  408. package/lib/lowcode/view/lc-components/Split/FunctionLive.js +16 -0
  409. package/lib/lowcode/view/lc-components/Split/meta.json +72 -0
  410. package/lib/lowcode/view/lc-components/Table/FunctionDesign.js +25 -0
  411. package/lib/lowcode/view/lc-components/Table/FunctionLive.js +16 -0
  412. package/lib/lowcode/view/lc-components/Table/index.js +228 -8
  413. package/lib/lowcode/view/lc-components/Table/meta.json +225 -0
  414. package/lib/lowcode/view/lc-components/Tabs/FunctionDesign.js +16 -0
  415. package/lib/lowcode/view/lc-components/Tabs/FunctionLive.js +16 -0
  416. package/lib/lowcode/view/lc-components/Tabs/meta.json +141 -0
  417. package/lib/lowcode/view/lc-components/Text/FunctionDesign.js +16 -0
  418. package/lib/lowcode/view/lc-components/Text/FunctionLive.js +16 -0
  419. package/lib/lowcode/view/lc-components/Text/meta.json +66 -0
  420. package/lib/lowcode/view/lc-components/Tree/FunctionDesign.js +16 -0
  421. package/lib/lowcode/view/lc-components/Tree/FunctionLive.js +16 -0
  422. package/lib/lowcode/view/lc-components/Tree/meta.json +157 -0
  423. package/lib/lowcode/view/lc-components/Wrapper.js +30 -21
  424. package/lib/lowcode/view/style/page.less +0 -1
  425. package/lib/upload/Form/gridForm.js +1 -1
  426. package/lib/utils/grid.js +6 -5
  427. package/package.json +15 -6
  428. package/es/lowcode/engine/meta/modal.props.default.json +0 -11
  429. package/es/lowcode/engine/tools/lcid.js +0 -16
  430. package/es/lowcode/painter/panel-section/Radio.js +0 -58
  431. package/lib/lowcode/engine/meta/modal.props.default.json +0 -11
  432. package/lib/lowcode/engine/tools/lcid.js +0 -22
  433. package/lib/lowcode/painter/panel-section/Radio.js +0 -65
@@ -1,7 +1,9 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
1
2
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
3
  import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
3
4
  import _typeof from "@babel/runtime/helpers/esm/typeof";
4
5
  import * as LZString from 'lz-string';
6
+ import { CELL_KEY } from "../../constants";
5
7
 
6
8
  /**
7
9
  * 数据压缩
@@ -12,7 +14,7 @@ export function compress(data) {
12
14
  // 将对象转换为JSON字符串
13
15
  var jsonString = JSON.stringify(data);
14
16
  // 使用LZ-String压缩JSON字符串
15
- return LZString.compressToUTF16(jsonString);
17
+ return LZString.compressToBase64(jsonString);
16
18
  }
17
19
 
18
20
  /**
@@ -22,7 +24,7 @@ export function compress(data) {
22
24
  */
23
25
  export function decompress(compressedData) {
24
26
  // 使用LZ-String解压数据
25
- var jsonString = LZString.decompressFromUTF16(compressedData);
27
+ var jsonString = LZString.decompressFromBase64(compressedData);
26
28
  // 将JSON字符串转换回对象
27
29
  return JSON.parse(jsonString);
28
30
  }
@@ -37,6 +39,12 @@ export function decompress(compressedData) {
37
39
  */
38
40
  export function findNodeAndParent(id, current) {
39
41
  var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
42
+ if (!parent && current.props.id === id) {
43
+ return {
44
+ node: current,
45
+ parent: null
46
+ };
47
+ }
40
48
  if (current.hasOwnProperty('children') && current.children.includes(id)) {
41
49
  return {
42
50
  node: current[id],
@@ -44,7 +52,7 @@ export function findNodeAndParent(id, current) {
44
52
  };
45
53
  }
46
54
  for (var key in current) {
47
- if (current[key] && _typeof(current[key]) === 'object' && key !== 'props') {
55
+ if (current[key] && _typeof(current[key]) === 'object' && key !== 'props' && key !== 'children') {
48
56
  var result = findNodeAndParent(id, current[key], current);
49
57
  if (result.node) {
50
58
  return result;
@@ -98,7 +106,7 @@ function process(json, path, id, data) {
98
106
  current[id] = {
99
107
  props: _objectSpread(_objectSpread({}, data), {}, {
100
108
  id: id,
101
- parentId: current.id
109
+ parentId: current.props.id
102
110
  })
103
111
  };
104
112
  } else if (!path && id && data) {
@@ -133,12 +141,12 @@ function process(json, path, id, data) {
133
141
  * 对指定的JSON结构进行节点的添加操作。
134
142
  *
135
143
  * @param {Object} json - 要操作的JSON对象。
136
- * @param {string|null} path - 要操作的节点路径,使用'/'分隔。
144
+ * @param {string} parentId - 父节点的唯一标识符。
137
145
  * @param {string} id - 操作节点的唯一标识符。
138
146
  * @param {Object|null} data - 要添加或修改的数据。如果为null,表示删除操作。
139
147
  */
140
- export function add(json, path, id, data) {
141
- process(json, path, id, data);
148
+ export function add(json, parentId, id, data) {
149
+ process(json, getPathById(json, parentId), id, data);
142
150
  }
143
151
 
144
152
  /**
@@ -153,7 +161,7 @@ export function modifyById(json, id, data) {
153
161
  }
154
162
 
155
163
  /**
156
- * 查找指定ID的节点及其父节点。
164
+ * 删除指定id的节点。
157
165
  *
158
166
  * @param {Object} json - JSON对象。
159
167
  * @param {string} id - 要删除的节点ID。
@@ -173,6 +181,7 @@ export function deleteById(json, id) {
173
181
  export function getPathById(json, id) {
174
182
  var currentPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
175
183
  for (var key in json) {
184
+ if (id === CELL_KEY.PAGE_ROOT) return '/';
176
185
  var newPath = currentPath ? "".concat(currentPath, "/").concat(key) : key;
177
186
  if (json[key].props && json[key].props.id === id) {
178
187
  return newPath;
@@ -185,4 +194,72 @@ export function getPathById(json, id) {
185
194
  }
186
195
  }
187
196
  return null;
197
+ }
198
+
199
+ /**
200
+ * 在给定的JSON结构中搜索具有特定id的节点,并返回包含该节点及其所有父节点的props属性的路径数组。
201
+ *
202
+ * @param {Object} data - 待搜索的JSON对象,它代表了一个复杂的树状结构,每个节点都可能有props和children属性。
203
+ * @param {string} targetId - 需要找到的目标节点的id。
204
+ * @returns {Array<Object>} 一个包含目标节点及其所有父节点的props属性的数组。如果未找到目标节点,则返回空数组。
205
+ *
206
+ * @example
207
+ * const data = {
208
+ * props: {
209
+ * id: 'page_root',
210
+ * type: 'Page',
211
+ * name: '页面',
212
+ * hasHeder: true,
213
+ * hasFooter: true,
214
+ * },
215
+ * // ...其他节点
216
+ * };
217
+ *
218
+ * const path = getPathNodesById(data, 'form_jknbjkun');
219
+ * console.log(path);
220
+ * // 输出目标节点及其所有父节点的props属性的数组
221
+ */
222
+ export function getPathNodesById(data, targetId) {
223
+ // 初始化结果数组
224
+ var result = [];
225
+
226
+ // 定义递归函数以搜索路径
227
+ function search(node) {
228
+ var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
229
+ // 检查当前节点是否是目标节点
230
+ if (node && node.props && node.props.id === targetId) {
231
+ // 如果是,将当前路径和节点自身添加到结果中
232
+ result = [].concat(_toConsumableArray(path), [node.props]);
233
+ return true;
234
+ }
235
+
236
+ // 遍历子节点
237
+ if (node && node.children) {
238
+ var _iterator2 = _createForOfIteratorHelper(node.children),
239
+ _step2;
240
+ try {
241
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
242
+ var childId = _step2.value;
243
+ // 对每个子节点,首先尝试从当前节点获取子节点数据
244
+ var childNode = node[childId];
245
+ if (search(childNode, [].concat(_toConsumableArray(path), [node.props]))) {
246
+ return true;
247
+ }
248
+ }
249
+ } catch (err) {
250
+ _iterator2.e(err);
251
+ } finally {
252
+ _iterator2.f();
253
+ }
254
+ }
255
+ return false;
256
+ }
257
+
258
+ // 从顶层"data"对象开始搜索
259
+ if (search(data)) {
260
+ return result;
261
+ }
262
+
263
+ // 如果未找到目标节点,返回空数组
264
+ return [];
188
265
  }
@@ -1,4 +1,72 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
1
3
  import _typeof from "@babel/runtime/helpers/esm/typeof";
4
+ import { omit } from 'lodash';
2
5
  export function isPromise(value) {
3
6
  return !!value && _typeof(value) === 'object' && typeof value.then === 'function';
7
+ }
8
+ export function omitBadProps(props) {
9
+ var rubbish = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
10
+ return omit(props, ['component', 'name', 'desc', 'icon', 'group', 'groupName', 'order'].concat(_toConsumableArray(rubbish)));
11
+ }
12
+ export function listReducer(state, action) {
13
+ switch (action.type) {
14
+ case 'add':
15
+ {
16
+ var _action$callback;
17
+ var newState = [].concat(_toConsumableArray(state), [action.payload]);
18
+ (_action$callback = action.callback) === null || _action$callback === void 0 || _action$callback.call(action, newState);
19
+ return newState;
20
+ }
21
+ case 'delete':
22
+ {
23
+ var _action$callback2;
24
+ var _newState = state.filter(function (item) {
25
+ return item.id !== action.payload;
26
+ });
27
+ (_action$callback2 = action.callback) === null || _action$callback2 === void 0 || _action$callback2.call(action, _newState);
28
+ return _newState;
29
+ }
30
+ case 'edit':
31
+ {
32
+ var _action$callback3;
33
+ var _newState2 = state.map(function (item) {
34
+ return item.id === action.payload.id ? _objectSpread(_objectSpread({}, item), action.payload.data) : item;
35
+ });
36
+ (_action$callback3 = action.callback) === null || _action$callback3 === void 0 || _action$callback3.call(action, _newState2);
37
+ return _newState2;
38
+ }
39
+ case 'active':
40
+ {
41
+ var _action$callback4;
42
+ var _newState3 = state.map(function (item) {
43
+ item.active = false;
44
+ return item.id === action.payload.id ? _objectSpread(_objectSpread({}, item), action.payload.data) : item;
45
+ });
46
+ (_action$callback4 = action.callback) === null || _action$callback4 === void 0 || _action$callback4.call(action, _newState3);
47
+ return _newState3;
48
+ }
49
+ case 'new':
50
+ {
51
+ var _action$callback5;
52
+ var _newState4 = _toConsumableArray(action.payload);
53
+ (_action$callback5 = action.callback) === null || _action$callback5 === void 0 || _action$callback5.call(action, _newState4);
54
+ return _newState4;
55
+ }
56
+ case 'sort':
57
+ {
58
+ var _action$callback6;
59
+ var sortItems = action.payload;
60
+ var newItems = state.sort(function (a, b) {
61
+ var indexA = sortItems.indexOf(a.id);
62
+ var indexB = sortItems.indexOf(b.id);
63
+ return indexA - indexB;
64
+ });
65
+ (_action$callback6 = action.callback) === null || _action$callback6 === void 0 || _action$callback6.call(action, _newState5);
66
+ var _newState5 = _toConsumableArray(newItems);
67
+ return _newState5;
68
+ }
69
+ default:
70
+ throw new Error();
71
+ }
4
72
  }
@@ -0,0 +1,24 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import { useRef, useCallback } from 'react';
3
+ import { useSafeState, useDeepCompareEffect } from 'ahooks';
4
+ var usePromiseState = function usePromiseState(initialState) {
5
+ var _useSafeState = useSafeState(initialState),
6
+ _useSafeState2 = _slicedToArray(_useSafeState, 2),
7
+ state = _useSafeState2[0],
8
+ setState = _useSafeState2[1];
9
+ var promiseRef = useRef(null);
10
+ var setStatePromise = useCallback(function (_state) {
11
+ return new Promise(function (resolve) {
12
+ promiseRef.current = resolve;
13
+ setState(_state);
14
+ });
15
+ }, []);
16
+ useDeepCompareEffect(function () {
17
+ if (promiseRef.current) {
18
+ promiseRef.current(state);
19
+ promiseRef.current = null;
20
+ }
21
+ }, [state]);
22
+ return [state, setStatePromise];
23
+ };
24
+ export default usePromiseState;
@@ -1,3 +1,5 @@
1
1
  export { default as Painter } from "./painter";
2
2
  export { default as View } from "./view";
3
- // export * as dataProcess from './engine/tools/dataProcess';
3
+ // export * as dataProcess from './engine/tools/dataProcess';
4
+
5
+ export default function launcher() {}
@@ -1,97 +1,52 @@
1
- import React, { useRef, useEffect } from 'react';
2
- import { useEventListener } from 'ahooks';
3
- import { useLDContext } from "../engine/provider/ContextProvider";
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import React, { useRef, useState } from 'react';
3
+ import { RawIntlProvider, getLocale, getIntl, localeInfo } from 'umi';
4
+ import { useMemoizedFn } from 'ahooks';
5
+ import moment from 'moment';
6
+ import { ConfigProvider } from 'luck-design/antd';
7
+ import DesignToolbar from "./DesignToolbar";
8
+ import DesignOperator from "./DesignOperator";
4
9
  import Page from "../view/Page";
5
- import { CELL_CLASS_NAME } from "../constants";
6
10
  import styles from "./style/design.less";
7
11
  var Design = function Design() {
8
- var context = useLDContext();
9
- var detectorRef = useRef(null);
10
- var selectorRef = useRef(null);
12
+ var _localeInfo$locale;
11
13
  var simulatorRef = useRef(null);
12
- var hoverCellRef = useRef(null);
13
- var activeCellRef = useRef(null);
14
- useEventListener('mousemove', function (event) {
15
- var elem = event.target;
16
- var targetCell = elem.closest(".".concat(CELL_CLASS_NAME));
17
- if (targetCell && !targetCell.isEqualNode(hoverCellRef.current) && !targetCell.isEqualNode(activeCellRef.current)) {
18
- var _id = targetCell.id;
19
- hoverCellRef.current = targetCell;
20
- context.$publisher(context.topics.COMPONENT_HOVER, {
21
- id: _id,
22
- cellNode: targetCell
23
- });
24
- } else if (!targetCell || targetCell.isEqualNode(activeCellRef.current)) {
25
- hoverCellRef.current = null;
26
- context.$publisher(context.topics.COMPONENT_HOVER, null);
14
+ var _useState = useState(function () {
15
+ return getLocale();
16
+ }),
17
+ _useState2 = _slicedToArray(_useState, 2),
18
+ locale = _useState2[0],
19
+ setLocale = _useState2[1];
20
+ var _useState3 = useState(function () {
21
+ return getIntl(getLocale(), true);
22
+ }),
23
+ _useState4 = _slicedToArray(_useState3, 2),
24
+ intl = _useState4[0],
25
+ setIntl = _useState4[1];
26
+ var handleLangChange = useMemoizedFn(function (_locale) {
27
+ if (moment !== null && moment !== void 0 && moment.locale) {
28
+ var _localeInfo$_locale;
29
+ moment.locale(((_localeInfo$_locale = localeInfo[_locale]) === null || _localeInfo$_locale === void 0 ? void 0 : _localeInfo$_locale.momentLocale) || 'en');
27
30
  }
28
- }, {
29
- target: simulatorRef
30
- });
31
- useEventListener('mouseleave', function () {
32
- if (hoverCellRef.current) {
33
- hoverCellRef.current = null;
34
- context.$publisher(context.topics.COMPONENT_HOVER, null);
35
- }
36
- }, {
37
- target: simulatorRef
31
+ setLocale(_locale);
32
+ setIntl(getIntl(_locale));
38
33
  });
39
- useEventListener('click', function (event) {
40
- var elem = event.target;
41
- var targetCell = elem.closest(".".concat(CELL_CLASS_NAME));
42
- if (!targetCell || targetCell.isEqualNode(activeCellRef.current)) return;
43
- activeCellRef.current = targetCell;
44
- hoverCellRef.current = null;
45
- context.$publisher(context.topics.COMPONENT_HOVER, null);
46
- context.$publisher(context.topics.COMPONENT_ACTIVE, {
47
- id: activeCellRef.current.id,
48
- cellNode: activeCellRef.current
49
- });
50
- }, {
51
- target: simulatorRef
52
- });
53
- useEffect(function () {
54
- var setRect = function setRect(node, cellNode) {
55
- node.style.left = "".concat(cellNode.offsetLeft, "px");
56
- node.style.top = "".concat(cellNode.offsetTop, "px");
57
- node.style.width = "".concat(cellNode.offsetWidth, "px");
58
- node.style.height = "".concat(cellNode.offsetHeight, "px");
59
- };
60
- var hcid = context.$subscriber(context.topics.COMPONENT_HOVER).on(function (payload) {
61
- if (payload.id) {
62
- detectorRef.current.style.display = 'block';
63
- setRect(detectorRef.current, payload.cellNode);
64
- } else {
65
- detectorRef.current.style.display = 'none';
66
- }
67
- }).watch();
68
- var acid = context.$subscriber(context.topics.COMPONENT_ACTIVE).on(function (payload) {
69
- if (payload.id) {
70
- selectorRef.current.style.display = 'block';
71
- setRect(selectorRef.current, payload.cellNode);
72
- } else {
73
- selectorRef.current.style.display = 'none';
74
- }
75
- }).watch();
76
- return function () {
77
- context.$unsubscriber(context.topics.COMPONENT_HOVER, hcid);
78
- context.$unsubscriber(context.topics.COMPONENT_ACTIVE, acid);
79
- };
80
- }, []);
81
34
  return /*#__PURE__*/React.createElement("div", {
82
35
  className: styles['lc-painter-design']
83
- }, /*#__PURE__*/React.createElement("div", {
84
- id: "lc-detector",
85
- ref: detectorRef,
86
- className: styles.detector
36
+ }, /*#__PURE__*/React.createElement(DesignToolbar, {
37
+ locale: locale,
38
+ onLangChange: handleLangChange
87
39
  }), /*#__PURE__*/React.createElement("div", {
88
- id: "lc-selector",
89
- ref: selectorRef,
90
- className: styles.selector
91
- }), /*#__PURE__*/React.createElement(Page, {
40
+ className: styles['lc-painter-design-workspace']
41
+ }, /*#__PURE__*/React.createElement(DesignOperator, {
42
+ target: simulatorRef
43
+ }), /*#__PURE__*/React.createElement(ConfigProvider, {
44
+ locale: ((_localeInfo$locale = localeInfo[locale]) === null || _localeInfo$locale === void 0 ? void 0 : _localeInfo$locale.antd) || {}
45
+ }, /*#__PURE__*/React.createElement(RawIntlProvider, {
46
+ value: intl
47
+ }, /*#__PURE__*/React.createElement(Page, {
92
48
  ref: simulatorRef,
93
- pageCode: "mk2i87qb",
94
- className: styles.simulator
95
- }));
49
+ className: styles['lc-painter-design-simulator']
50
+ })))));
96
51
  };
97
52
  export default Design;
@@ -0,0 +1,271 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import React, { useRef, useEffect, useState } from 'react';
3
+ import { last, initial } from 'lodash';
4
+ import { useEventListener, useSetState, useMemoizedFn, useCreation, useSize, useLatest } from 'ahooks';
5
+ import { Icon, Dropdown, message } from 'luck-design/antd';
6
+ import { cloneDeep, reverse } from 'lodash';
7
+ import { suid } from '@luck-design-biz/base/utils';
8
+ import { useLDContext } from "../engine/provider/ContextProvider";
9
+ import { add, deleteById } from "../engine/tools/dataProcess";
10
+ import { CELL_KEY, CELL_CLASS_NAME } from "../constants";
11
+ import styles from "./style/design.less";
12
+ var _MODAL_COMPONENT_ = ['Dialog', 'Drawer'];
13
+ var getOperatorStyle = function getOperatorStyle(page, cellNode) {
14
+ var _page$getBoundingClie = page.getBoundingClientRect(),
15
+ pageLeft = _page$getBoundingClie.left,
16
+ pageTop = _page$getBoundingClie.top;
17
+ var _cellNode$getBounding = cellNode.getBoundingClientRect(),
18
+ cellNodeLeft = _cellNode$getBounding.left,
19
+ cellNodeTop = _cellNode$getBounding.top;
20
+ return {
21
+ left: "".concat(cellNodeLeft - pageLeft, "px"),
22
+ top: "".concat(cellNodeTop - pageTop, "px"),
23
+ width: "".concat(cellNode.offsetWidth, "px"),
24
+ height: "".concat(cellNode.offsetHeight, "px")
25
+ };
26
+ };
27
+ var DesignOperator = function DesignOperator(_ref) {
28
+ var _getDomById, _getDomById2;
29
+ var target = _ref.target;
30
+ var context = useLDContext();
31
+ var size = useSize(target);
32
+ var _useState = useState(suid()),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ positionKey = _useState2[0],
35
+ setPositionKey = _useState2[1];
36
+ var _useSetState = useSetState({
37
+ selector: null,
38
+ detector: null
39
+ }),
40
+ _useSetState2 = _slicedToArray(_useSetState, 2),
41
+ operatorId = _useSetState2[0],
42
+ setOperatorId = _useSetState2[1];
43
+ var lastSelectorId = useLatest(operatorId.selector);
44
+ var currentModal = useRef(null);
45
+ var getDomById = useMemoizedFn(function (id) {
46
+ return context.componentMap.get(id).dom;
47
+ });
48
+ var handleSelect = useMemoizedFn(function (_key) {
49
+ context.$publisher(context.topics.COMPONENT_ACTIVE, _key ? {
50
+ id: _key
51
+ } : null);
52
+ });
53
+ var handleHover = useMemoizedFn(function (_key) {
54
+ context.$publisher(context.topics.COMPONENT_HOVER, _key ? {
55
+ id: _key
56
+ } : null);
57
+ });
58
+ var handleDelete = useMemoizedFn(function (_ref2) {
59
+ var id = _ref2.id,
60
+ parentId = _ref2.parentId;
61
+ context.$publisher(context.topics.COMPONENT_ACTIVE, null);
62
+ var cloneData = cloneDeep(context.pageData);
63
+ deleteById(cloneData, id);
64
+ context._setPageData(cloneData).then(function (newData) {
65
+ context.$publisher(context.topics.COMPONENT_DELETE, {
66
+ id: id,
67
+ parentId: parentId,
68
+ pageData: newData
69
+ });
70
+ });
71
+ });
72
+ var addComponent = useMemoizedFn(function (data, targetId) {
73
+ var json = require("../engine/meta/".concat(data.component.toLowerCase(), ".props.default.json"));
74
+ var _id = "".concat(data.component.toLowerCase(), "_").concat(suid());
75
+ var cloneData = cloneDeep(context.pageData);
76
+ add(cloneData, targetId, _id, json);
77
+ context.$subscriber(context.topics.COMPONENT_MOUNT).once(function (_ref3) {
78
+ var mountCompId = _ref3.id;
79
+ if (mountCompId === _id) {
80
+ context.$publisher(context.topics.COMPONENT_APPEND, {
81
+ id: _id,
82
+ pageData: cloneData
83
+ });
84
+ }
85
+ }).watch();
86
+ context._setPageData(cloneData);
87
+ });
88
+ var acticeProps = useCreation(function () {
89
+ if (!operatorId.selector) return null;
90
+ var levelNodes = context.componentMap.get(operatorId.selector).api.getLevelNodes();
91
+ return {
92
+ props: last(levelNodes),
93
+ menu: /*#__PURE__*/React.createElement("div", {
94
+ className: styles['next-overlay-wrapper'],
95
+ onMouseLeave: function onMouseLeave() {
96
+ return handleHover();
97
+ }
98
+ }, reverse(initial(levelNodes)).map(function (m) {
99
+ return /*#__PURE__*/React.createElement("div", {
100
+ key: m.id
101
+ }, /*#__PURE__*/React.createElement("span", {
102
+ onClick: function onClick() {
103
+ return handleSelect(m.id);
104
+ },
105
+ onMouseOver: function onMouseOver() {
106
+ return handleHover(m.id);
107
+ }
108
+ }, m.name));
109
+ }))
110
+ };
111
+ }, [operatorId.selector]);
112
+ var lastDetectorNode = useCreation(function () {
113
+ return operatorId.detector ? last(context.componentMap.get(operatorId.detector).api.getLevelNodes()) : null;
114
+ }, [operatorId.detector]);
115
+ useEventListener('mousemove', function (event) {
116
+ var elem = event.target;
117
+ var targetCell = elem.closest(".".concat(CELL_CLASS_NAME));
118
+ var targetCellId = targetCell === null || targetCell === void 0 ? void 0 : targetCell.id;
119
+ if (targetCellId && targetCellId !== operatorId.detector && targetCellId !== operatorId.selector) {
120
+ setOperatorId({
121
+ detector: targetCellId
122
+ });
123
+ context.$publisher(context.topics.COMPONENT_HOVER, {
124
+ id: targetCellId
125
+ });
126
+ } else if (!targetCell || targetCellId === operatorId.selector) {
127
+ setOperatorId({
128
+ detector: null
129
+ });
130
+ context.$publisher(context.topics.COMPONENT_HOVER, null);
131
+ }
132
+ }, {
133
+ target: target
134
+ });
135
+ useEventListener('mouseleave', function () {
136
+ if (operatorId.detector) {
137
+ setOperatorId({
138
+ detector: null
139
+ });
140
+ context.$publisher(context.topics.COMPONENT_HOVER, null);
141
+ }
142
+ }, {
143
+ target: target
144
+ });
145
+ useEventListener('click', function (event) {
146
+ var elem = event.target;
147
+ var targetCell = elem.closest(".".concat(CELL_CLASS_NAME));
148
+ var targetCellId = targetCell === null || targetCell === void 0 ? void 0 : targetCell.id;
149
+ if (!targetCellId || targetCellId === operatorId.selector) return;
150
+ context.$publisher(context.topics.COMPONENT_HOVER, null);
151
+ context.$publisher(context.topics.COMPONENT_ACTIVE, {
152
+ id: targetCell.id
153
+ });
154
+ }, {
155
+ target: target
156
+ });
157
+ useEffect(function () {
158
+ var csid = context.$subscriber(context.topics.COMPONENT_SETTING_CLICK).on(function (_ref4) {
159
+ var data = _ref4.data;
160
+ if (_MODAL_COMPONENT_.includes(data.component)) {
161
+ context.$subscriber(context.topics.COMPONENT_APPEND).once(function (_ref5) {
162
+ var compId = _ref5.id;
163
+ context.$publisher(context.topics.COMPONENT_MODAL_TOGGLE, {
164
+ toggle: true,
165
+ id: compId
166
+ });
167
+ context.$publisher(context.topics.COMPONENT_ACTIVE, {
168
+ id: compId
169
+ });
170
+ }).watch();
171
+ addComponent(data, CELL_KEY.PAGE_ROOT);
172
+ return;
173
+ }
174
+ if (!lastSelectorId.current) {
175
+ message.info('请在右侧画布选择节点');
176
+ return;
177
+ }
178
+ if (context.componentMap.get(lastSelectorId.current).dom.getAttribute('name') !== 'box') {
179
+ message.info('该节点不支持添加子节点');
180
+ return;
181
+ }
182
+ addComponent(data, lastSelectorId.current);
183
+ }).watch();
184
+ var hcid = context.$subscriber(context.topics.COMPONENT_HOVER).on(function (payload) {
185
+ if (payload.id) setOperatorId({
186
+ detector: payload.id
187
+ });else setOperatorId({
188
+ detector: null
189
+ });
190
+ }).watch();
191
+ var acid = context.$subscriber(context.topics.COMPONENT_ACTIVE).on(function (payload) {
192
+ if (payload.id) {
193
+ setOperatorId({
194
+ selector: payload.id,
195
+ detector: null
196
+ });
197
+ } else {
198
+ setOperatorId({
199
+ selector: null
200
+ });
201
+ }
202
+ }).watch();
203
+ var cmtid = context.$subscriber(context.topics.COMPONENT_MODAL_TOGGLE).on(function (_ref6) {
204
+ var toggle = _ref6.toggle,
205
+ id = _ref6.id;
206
+ if (toggle) {
207
+ target.current.style.setProperty('overflow', 'hidden');
208
+ var _modal = context.componentMap.get(id);
209
+ var _prevModal = currentModal.current ? context.componentMap.get(currentModal.current) : null;
210
+ _prevModal === null || _prevModal === void 0 || _prevModal.api.doClose();
211
+ _modal.api.doOpen();
212
+ currentModal.current = id;
213
+ } else {
214
+ target.current.style.removeProperty('overflow');
215
+ var _modal2 = context.componentMap.get(id || currentModal.current);
216
+ _modal2.api.doClose();
217
+ currentModal.current = void 0;
218
+ }
219
+ }).watch();
220
+ return function () {
221
+ context.$unsubscriber(context.topics.COMPONENT_SETTING_CLICK, csid);
222
+ context.$unsubscriber(context.topics.COMPONENT_HOVER, hcid);
223
+ context.$unsubscriber(context.topics.COMPONENT_ACTIVE, acid);
224
+ context.$unsubscriber(context.topics.MODAL_OPEN, cmtid);
225
+ };
226
+ }, []);
227
+ useEffect(function () {
228
+ var crid = context.$subscriber(context.topics.COMPONENT_REPOSITIONING).on(function (payload) {
229
+ if (payload.id === operatorId.selector) setPositionKey(suid());
230
+ }).watch();
231
+ return function () {
232
+ context.$unsubscriber(context.topics.COMPONENT_REPOSITIONING, crid);
233
+ };
234
+ }, [operatorId.selector]);
235
+ return /*#__PURE__*/React.createElement(React.Fragment, null, operatorId.detector && /*#__PURE__*/React.createElement("div", {
236
+ id: "lc-detector",
237
+ className: styles['lc-painter-design-detector'],
238
+ style: getOperatorStyle(target.current, getDomById(operatorId.detector))
239
+ }, /*#__PURE__*/React.createElement("span", {
240
+ className: styles['lc-painter-design-detector-name'],
241
+ style: {
242
+ top: ((_getDomById = getDomById(operatorId.detector)) === null || _getDomById === void 0 ? void 0 : _getDomById.offsetTop) < 23 ? 0 : '-23px'
243
+ }
244
+ }, lastDetectorNode ? "".concat(lastDetectorNode.name, "(").concat(operatorId.detector, ")") : null)), operatorId.selector && /*#__PURE__*/React.createElement("div", {
245
+ id: "lc-selector",
246
+ key: "".concat((size === null || size === void 0 ? void 0 : size.width) || 0, "-").concat((size === null || size === void 0 ? void 0 : size.height) || 0, "-").concat(positionKey),
247
+ className: styles['lc-painter-design-selector'],
248
+ style: getOperatorStyle(target.current, getDomById(operatorId.selector))
249
+ }, acticeProps && /*#__PURE__*/React.createElement("div", {
250
+ className: styles['lc-borders-actions'],
251
+ style: acticeProps.props.id === CELL_KEY.PAGE_ROOT ? {
252
+ top: 0
253
+ } : ((_getDomById2 = getDomById(operatorId.selector)) === null || _getDomById2 === void 0 ? void 0 : _getDomById2.offsetTop) < 23 ? {
254
+ bottom: '-23px'
255
+ } : {
256
+ top: '-23px'
257
+ }
258
+ }, /*#__PURE__*/React.createElement(Dropdown, {
259
+ overlay: acticeProps.menu,
260
+ placement: "bottomLeft"
261
+ }, /*#__PURE__*/React.createElement("div", {
262
+ className: "instance-node-selector"
263
+ }, acticeProps.props.name)), /*#__PURE__*/React.createElement("div", {
264
+ onClick: function onClick() {
265
+ return handleDelete(acticeProps.props);
266
+ }
267
+ }, /*#__PURE__*/React.createElement(Icon, {
268
+ type: "delete"
269
+ })))));
270
+ };
271
+ export default DesignOperator;