@luck-design-biz/luckda 0.0.22 → 0.0.23

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 (251) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +40 -49
  3. package/es/components/Builder/index.js +4 -4
  4. package/es/components/LdAutoForm/index.js +7 -9
  5. package/es/components/LdCard/index.js +5 -6
  6. package/es/components/LdCard/model.js +1 -1
  7. package/es/components/LdCom/index.js +2 -2
  8. package/es/components/LdFormList/index.js +19 -17
  9. package/es/components/LdGrid/index.js +11 -12
  10. package/es/components/LdGrid/model.js +1 -1
  11. package/es/components/LdGridForm/index.js +10 -10
  12. package/es/components/LdGridForm/index.less +7 -7
  13. package/es/components/LdInfoPanel/index.js +2 -2
  14. package/es/components/LdRuntimeCom/index.js +42 -0
  15. package/es/components/LdTree/index.js +3 -4
  16. package/es/components/LdTree/index.less +36 -36
  17. package/es/helper/FromItems.js +1 -1
  18. package/es/helper/action.js +8 -8
  19. package/es/helper/form.js +16 -16
  20. package/es/helper/index.less +7 -7
  21. package/es/helper/ldBuilder.js +1 -1
  22. package/es/helper/ldComBuild.js +4 -4
  23. package/es/index.js +10 -9
  24. package/es/lowcode/constants/api-url.js +2 -0
  25. package/es/lowcode/constants/event-topics.js +23 -0
  26. package/es/lowcode/constants/index.js +12 -0
  27. package/es/lowcode/engine/factory/DataFactory.js +1 -0
  28. package/es/lowcode/engine/meta/button.props.default.json +8 -0
  29. package/es/lowcode/engine/meta/cardlist.props.default.json +10 -0
  30. package/es/lowcode/engine/meta/components/button.json +104 -0
  31. package/es/lowcode/engine/meta/components/card-list.json +143 -0
  32. package/es/lowcode/engine/meta/components/drawer.json +143 -0
  33. package/es/lowcode/engine/meta/components/form.json +116 -0
  34. package/es/lowcode/engine/meta/components/iframe.json +31 -0
  35. package/es/lowcode/engine/meta/components/image.json +113 -0
  36. package/es/lowcode/engine/meta/components/imex.json +81 -0
  37. package/es/lowcode/engine/meta/components/jsx.json +24 -0
  38. package/es/lowcode/engine/meta/components/layout.json +107 -0
  39. package/es/lowcode/engine/meta/components/link.json +111 -0
  40. package/es/lowcode/engine/meta/components/modal.json +120 -0
  41. package/es/lowcode/engine/meta/components/section.json +107 -0
  42. package/es/lowcode/engine/meta/components/split.json +71 -0
  43. package/es/lowcode/engine/meta/components/table.json +161 -0
  44. package/es/lowcode/engine/meta/components/tabs.json +140 -0
  45. package/es/lowcode/engine/meta/components/text.json +65 -0
  46. package/es/lowcode/engine/meta/components/tree.json +156 -0
  47. package/es/lowcode/engine/meta/components-list.json +122 -0
  48. package/es/lowcode/engine/meta/drawer.props.default.json +10 -0
  49. package/es/lowcode/engine/meta/form.props.default.json +5 -0
  50. package/es/lowcode/engine/meta/iframe.props.default.json +3 -0
  51. package/es/lowcode/engine/meta/image.props.default.json +8 -0
  52. package/es/lowcode/engine/meta/imex.props.default.json +4 -0
  53. package/es/lowcode/engine/meta/jsx.props.default.json +1 -0
  54. package/es/lowcode/engine/meta/layout.props.default.json +5 -0
  55. package/es/lowcode/engine/meta/link.props.default.json +6 -0
  56. package/es/lowcode/engine/meta/modal.props.default.json +11 -0
  57. package/es/lowcode/engine/meta/section.props.default.json +9 -0
  58. package/es/lowcode/engine/meta/split.props.default.json +5 -0
  59. package/es/lowcode/engine/meta/table.props.default.json +10 -0
  60. package/es/lowcode/engine/meta/tabs.props.default.json +10 -0
  61. package/es/lowcode/engine/meta/text.props.default.json +4 -0
  62. package/es/lowcode/engine/meta/tree.props.default.json +9 -0
  63. package/es/lowcode/engine/provider/ContextProvider.js +164 -0
  64. package/es/lowcode/engine/provider/EventBusProvider.js +120 -0
  65. package/es/lowcode/engine/tools/dataProcess.js +188 -0
  66. package/es/lowcode/engine/tools/helper.js +4 -0
  67. package/es/lowcode/engine/tools/lcid.js +16 -0
  68. package/es/lowcode/index.js +3 -0
  69. package/es/lowcode/painter/Components.js +104 -0
  70. package/es/lowcode/painter/Design.js +97 -0
  71. package/es/lowcode/painter/I18n.js +5 -0
  72. package/es/lowcode/painter/Outline.js +202 -0
  73. package/es/lowcode/painter/Panel.js +8 -0
  74. package/es/lowcode/painter/Ribbon.js +136 -0
  75. package/es/lowcode/painter/components/PanelItem.js +20 -0
  76. package/es/lowcode/painter/components/RuleInput.js +105 -0
  77. package/es/lowcode/painter/index.js +19 -0
  78. package/es/lowcode/painter/panel-section/LayoutRatio.js +123 -0
  79. package/es/lowcode/painter/panel-section/Radio.js +58 -0
  80. package/es/lowcode/painter/style/components.less +90 -0
  81. package/es/lowcode/painter/style/design.less +38 -0
  82. package/es/lowcode/painter/style/index.less +7 -0
  83. package/es/lowcode/painter/style/layout-ratio.less +51 -0
  84. package/es/lowcode/painter/style/outline.less +26 -0
  85. package/es/lowcode/painter/style/panel-item.less +21 -0
  86. package/es/lowcode/painter/style/panel.less +5 -0
  87. package/es/lowcode/painter/style/radio.less +24 -0
  88. package/es/lowcode/painter/style/ribbon.less +4 -0
  89. package/es/lowcode/painter/style/rule-input.less +13 -0
  90. package/es/lowcode/view/Canvas.js +135 -0
  91. package/es/lowcode/view/Loading.js +23 -0
  92. package/es/lowcode/view/Page.js +55 -0
  93. package/es/lowcode/view/index.js +18 -0
  94. package/es/lowcode/view/lc-components/Box/index.js +21 -0
  95. package/es/lowcode/view/lc-components/Button/index.js +37 -0
  96. package/es/lowcode/view/lc-components/CardList/index.js +20 -0
  97. package/es/lowcode/view/lc-components/Dialog/index.js +50 -0
  98. package/es/lowcode/view/lc-components/Dialog/index.less +3 -0
  99. package/es/lowcode/view/lc-components/Drawer/index.js +46 -0
  100. package/es/lowcode/view/lc-components/Form/index.js +20 -0
  101. package/es/lowcode/view/lc-components/Iframe/index.js +20 -0
  102. package/es/lowcode/view/lc-components/ImEx/index.js +20 -0
  103. package/es/lowcode/view/lc-components/Image/index.js +20 -0
  104. package/es/lowcode/view/lc-components/JSX/index.js +20 -0
  105. package/es/lowcode/view/lc-components/Layout/index.js +24 -0
  106. package/es/lowcode/view/lc-components/Link/index.js +20 -0
  107. package/es/lowcode/view/lc-components/Section/index.js +34 -0
  108. package/es/lowcode/view/lc-components/Split/index.js +21 -0
  109. package/es/lowcode/view/lc-components/Table/index.js +23 -0
  110. package/es/lowcode/view/lc-components/Tabs/index.js +21 -0
  111. package/es/lowcode/view/lc-components/Text/index.js +23 -0
  112. package/es/lowcode/view/lc-components/Tree/index.js +20 -0
  113. package/es/lowcode/view/lc-components/Wrapper.js +45 -0
  114. package/es/lowcode/view/style/canvas.less +5 -0
  115. package/es/lowcode/view/style/loading.less +84 -0
  116. package/es/lowcode/view/style/page.less +6 -0
  117. package/es/services.js +1 -1
  118. package/es/upload/Form/gridForm.js +29 -7
  119. package/es/upload/Form/index.js +1 -1
  120. package/es/upload/Form/index.less +7 -7
  121. package/es/upload/FormItem/index.js +30 -18
  122. package/es/upload/index.js +3 -3
  123. package/es/utils/action.js +1 -1
  124. package/es/utils/form.js +26 -26
  125. package/es/utils/grid.js +22 -26
  126. package/es/utils/index.js +3 -3
  127. package/lib/components/Builder/index.js +3 -5
  128. package/lib/components/LdAutoForm/index.js +5 -8
  129. package/lib/components/LdCard/index.js +5 -7
  130. package/lib/components/LdCom/index.js +6 -11
  131. package/lib/components/LdFormList/index.js +15 -13
  132. package/lib/components/LdGrid/index.js +10 -12
  133. package/lib/components/LdGridForm/index.js +6 -7
  134. package/lib/components/LdGridForm/index.less +7 -7
  135. package/lib/components/LdInfoPanel/index.js +2 -3
  136. package/lib/components/LdPop/index.js +2 -4
  137. package/lib/components/LdRuntimeCom/index.js +49 -0
  138. package/lib/components/LdTree/index.js +2 -4
  139. package/lib/components/LdTree/index.less +36 -36
  140. package/lib/helper/FromItems.js +15 -29
  141. package/lib/helper/action.js +9 -11
  142. package/lib/helper/form.js +18 -20
  143. package/lib/helper/index.less +7 -7
  144. package/lib/helper/ldBuilder.js +1 -2
  145. package/lib/helper/ldComBuild.js +7 -11
  146. package/lib/index.js +9 -1
  147. package/lib/lowcode/constants/api-url.js +8 -0
  148. package/lib/lowcode/constants/event-topics.js +29 -0
  149. package/lib/lowcode/constants/index.js +18 -0
  150. package/lib/lowcode/engine/factory/DataFactory.js +3 -0
  151. package/lib/lowcode/engine/meta/button.props.default.json +8 -0
  152. package/lib/lowcode/engine/meta/cardlist.props.default.json +10 -0
  153. package/lib/lowcode/engine/meta/components/button.json +104 -0
  154. package/lib/lowcode/engine/meta/components/card-list.json +143 -0
  155. package/lib/lowcode/engine/meta/components/drawer.json +143 -0
  156. package/lib/lowcode/engine/meta/components/form.json +116 -0
  157. package/lib/lowcode/engine/meta/components/iframe.json +31 -0
  158. package/lib/lowcode/engine/meta/components/image.json +113 -0
  159. package/lib/lowcode/engine/meta/components/imex.json +81 -0
  160. package/lib/lowcode/engine/meta/components/jsx.json +24 -0
  161. package/lib/lowcode/engine/meta/components/layout.json +107 -0
  162. package/lib/lowcode/engine/meta/components/link.json +111 -0
  163. package/lib/lowcode/engine/meta/components/modal.json +120 -0
  164. package/lib/lowcode/engine/meta/components/section.json +107 -0
  165. package/lib/lowcode/engine/meta/components/split.json +71 -0
  166. package/lib/lowcode/engine/meta/components/table.json +161 -0
  167. package/lib/lowcode/engine/meta/components/tabs.json +140 -0
  168. package/lib/lowcode/engine/meta/components/text.json +65 -0
  169. package/lib/lowcode/engine/meta/components/tree.json +156 -0
  170. package/lib/lowcode/engine/meta/components-list.json +122 -0
  171. package/lib/lowcode/engine/meta/drawer.props.default.json +10 -0
  172. package/lib/lowcode/engine/meta/form.props.default.json +5 -0
  173. package/lib/lowcode/engine/meta/iframe.props.default.json +3 -0
  174. package/lib/lowcode/engine/meta/image.props.default.json +8 -0
  175. package/lib/lowcode/engine/meta/imex.props.default.json +4 -0
  176. package/lib/lowcode/engine/meta/jsx.props.default.json +1 -0
  177. package/lib/lowcode/engine/meta/layout.props.default.json +5 -0
  178. package/lib/lowcode/engine/meta/link.props.default.json +6 -0
  179. package/lib/lowcode/engine/meta/modal.props.default.json +11 -0
  180. package/lib/lowcode/engine/meta/section.props.default.json +9 -0
  181. package/lib/lowcode/engine/meta/split.props.default.json +5 -0
  182. package/lib/lowcode/engine/meta/table.props.default.json +10 -0
  183. package/lib/lowcode/engine/meta/tabs.props.default.json +10 -0
  184. package/lib/lowcode/engine/meta/text.props.default.json +4 -0
  185. package/lib/lowcode/engine/meta/tree.props.default.json +9 -0
  186. package/lib/lowcode/engine/provider/ContextProvider.js +172 -0
  187. package/lib/lowcode/engine/provider/EventBusProvider.js +128 -0
  188. package/lib/lowcode/engine/tools/dataProcess.js +201 -0
  189. package/lib/lowcode/engine/tools/helper.js +11 -0
  190. package/lib/lowcode/engine/tools/lcid.js +22 -0
  191. package/lib/lowcode/index.js +20 -0
  192. package/lib/lowcode/painter/Components.js +112 -0
  193. package/lib/lowcode/painter/Design.js +105 -0
  194. package/lib/lowcode/painter/I18n.js +12 -0
  195. package/lib/lowcode/painter/Outline.js +210 -0
  196. package/lib/lowcode/painter/Panel.js +16 -0
  197. package/lib/lowcode/painter/Ribbon.js +151 -0
  198. package/lib/lowcode/painter/components/PanelItem.js +26 -0
  199. package/lib/lowcode/painter/components/RuleInput.js +112 -0
  200. package/lib/lowcode/painter/index.js +26 -0
  201. package/lib/lowcode/painter/panel-section/LayoutRatio.js +131 -0
  202. package/lib/lowcode/painter/panel-section/Radio.js +65 -0
  203. package/lib/lowcode/painter/style/components.less +90 -0
  204. package/lib/lowcode/painter/style/design.less +38 -0
  205. package/lib/lowcode/painter/style/index.less +7 -0
  206. package/lib/lowcode/painter/style/layout-ratio.less +51 -0
  207. package/lib/lowcode/painter/style/outline.less +26 -0
  208. package/lib/lowcode/painter/style/panel-item.less +21 -0
  209. package/lib/lowcode/painter/style/panel.less +5 -0
  210. package/lib/lowcode/painter/style/radio.less +24 -0
  211. package/lib/lowcode/painter/style/ribbon.less +4 -0
  212. package/lib/lowcode/painter/style/rule-input.less +13 -0
  213. package/lib/lowcode/view/Canvas.js +150 -0
  214. package/lib/lowcode/view/Loading.js +30 -0
  215. package/lib/lowcode/view/Page.js +63 -0
  216. package/lib/lowcode/view/index.js +25 -0
  217. package/lib/lowcode/view/lc-components/Box/index.js +29 -0
  218. package/lib/lowcode/view/lc-components/Button/index.js +45 -0
  219. package/lib/lowcode/view/lc-components/CardList/index.js +28 -0
  220. package/lib/lowcode/view/lc-components/Dialog/index.js +58 -0
  221. package/lib/lowcode/view/lc-components/Dialog/index.less +3 -0
  222. package/lib/lowcode/view/lc-components/Drawer/index.js +54 -0
  223. package/lib/lowcode/view/lc-components/Form/index.js +28 -0
  224. package/lib/lowcode/view/lc-components/Iframe/index.js +28 -0
  225. package/lib/lowcode/view/lc-components/ImEx/index.js +28 -0
  226. package/lib/lowcode/view/lc-components/Image/index.js +28 -0
  227. package/lib/lowcode/view/lc-components/JSX/index.js +28 -0
  228. package/lib/lowcode/view/lc-components/Layout/index.js +32 -0
  229. package/lib/lowcode/view/lc-components/Link/index.js +28 -0
  230. package/lib/lowcode/view/lc-components/Section/index.js +42 -0
  231. package/lib/lowcode/view/lc-components/Split/index.js +29 -0
  232. package/lib/lowcode/view/lc-components/Table/index.js +31 -0
  233. package/lib/lowcode/view/lc-components/Tabs/index.js +29 -0
  234. package/lib/lowcode/view/lc-components/Text/index.js +31 -0
  235. package/lib/lowcode/view/lc-components/Tree/index.js +28 -0
  236. package/lib/lowcode/view/lc-components/Wrapper.js +52 -0
  237. package/lib/lowcode/view/style/canvas.less +5 -0
  238. package/lib/lowcode/view/style/loading.less +84 -0
  239. package/lib/lowcode/view/style/page.less +6 -0
  240. package/lib/upload/Form/gridForm.js +27 -6
  241. package/lib/upload/Form/index.js +1 -2
  242. package/lib/upload/Form/index.less +7 -7
  243. package/lib/upload/FormItem/index.js +30 -19
  244. package/lib/upload/GridCell/index.js +1 -2
  245. package/lib/utils/form.js +26 -29
  246. package/lib/utils/grid.js +23 -28
  247. package/lowcode.js +1 -0
  248. package/package.json +157 -78
  249. package/upload.js +1 -1
  250. package/utils.js +1 -1
  251. package/README.zh-CN.md +0 -51
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _antd = require("luck-design/antd");
13
+ var _ahooks = require("ahooks");
14
+ var _utils = require("@luck-design-biz/base/utils");
15
+ var _ContextProvider = require("../engine/provider/ContextProvider");
16
+ var _components = _interopRequireDefault(require("./style/components.less"));
17
+ var _componentsList = _interopRequireDefault(require("../engine/meta/components-list.json"));
18
+ var TabPane = _antd.Tabs.TabPane;
19
+ var Search = _antd.Input.Search;
20
+ var BaseCom = function BaseCom(_ref) {
21
+ var onComponentClick = _ref.onComponentClick;
22
+ var _useState = (0, _react.useState)(''),
23
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
24
+ searchTerm = _useState2[0],
25
+ setSearchTerm = _useState2[1];
26
+ var handleSearch = (0, _ahooks.useMemoizedFn)(function (e) {
27
+ setSearchTerm(e.target.value.toLowerCase());
28
+ });
29
+ var filteredData = (0, _ahooks.useCreation)(function () {
30
+ return _componentsList.default.map(function (group) {
31
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, group), {}, {
32
+ components: group.components.filter(function (item) {
33
+ return item.name.toLowerCase().includes(searchTerm) || item.desc.toLowerCase().includes(searchTerm);
34
+ })
35
+ });
36
+ }).filter(function (group) {
37
+ return group.components.length > 0;
38
+ });
39
+ }, [_componentsList.default]);
40
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
41
+ className: _components.default['components-search']
42
+ }, /*#__PURE__*/_react.default.createElement(Search, {
43
+ placeholder: (0, _utils.formatMessage)({
44
+ id: 'luckda.lowcode.painter.components.search',
45
+ label: '搜索组件'
46
+ }),
47
+ onChange: handleSearch
48
+ })), /*#__PURE__*/_react.default.createElement("div", {
49
+ className: _components.default['components-content']
50
+ }, filteredData.map(function (group) {
51
+ return /*#__PURE__*/_react.default.createElement("div", {
52
+ key: group.group,
53
+ className: _components.default['components-wrapper']
54
+ }, /*#__PURE__*/_react.default.createElement("h3", null, group.groupName), group.components.map(function (item) {
55
+ return /*#__PURE__*/_react.default.createElement("div", {
56
+ key: item.component,
57
+ className: _components.default['components-item'],
58
+ onClick: function onClick() {
59
+ return onComponentClick(item);
60
+ }
61
+ }, /*#__PURE__*/_react.default.createElement("div", {
62
+ className: _components.default['icon-wrapper']
63
+ }, /*#__PURE__*/_react.default.createElement(_antd.Icon, {
64
+ type: item.icon || 'home'
65
+ })), /*#__PURE__*/_react.default.createElement("div", {
66
+ className: _components.default['text-content']
67
+ }, /*#__PURE__*/_react.default.createElement("span", null, item.name)));
68
+ }));
69
+ })));
70
+ };
71
+
72
+ /**
73
+ * 组件清单
74
+ */
75
+ var Components = function Components(_ref2) {
76
+ var _ref2$dataset = _ref2.dataset,
77
+ dataset = _ref2$dataset === void 0 ? 'test' : _ref2$dataset;
78
+ var context = (0, _ContextProvider.useLDContext)();
79
+ var onComponentClick = (0, _ahooks.useMemoizedFn)(function (data) {
80
+ context.$publisher(context.topics.COMPONENT_SETTING_CLICK, {
81
+ data: data
82
+ });
83
+ });
84
+ if (!dataset) return /*#__PURE__*/_react.default.createElement("div", {
85
+ className: _components.default['lc-painter-components'],
86
+ style: {
87
+ paddingTop: '16px'
88
+ }
89
+ }, /*#__PURE__*/_react.default.createElement(BaseCom, {
90
+ onComponentClick: onComponentClick
91
+ }));
92
+ return /*#__PURE__*/_react.default.createElement("div", {
93
+ className: _components.default['lc-painter-components']
94
+ }, /*#__PURE__*/_react.default.createElement(_antd.Tabs, {
95
+ defaultActiveKey: "base"
96
+ }, /*#__PURE__*/_react.default.createElement(TabPane, {
97
+ tab: (0, _utils.formatMessage)({
98
+ id: 'ccm.dev.page.set.components.base',
99
+ label: '基础组件'
100
+ }),
101
+ key: "base"
102
+ }, /*#__PURE__*/_react.default.createElement(BaseCom, {
103
+ onComponentClick: onComponentClick
104
+ })), /*#__PURE__*/_react.default.createElement(TabPane, {
105
+ tab: (0, _utils.formatMessage)({
106
+ id: 'ccm.dev.page.set.components.dataset',
107
+ label: '数据集字段'
108
+ }),
109
+ key: "dataset"
110
+ })));
111
+ };
112
+ var _default = exports.default = Components;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _ahooks = require("ahooks");
11
+ var _ContextProvider = require("../engine/provider/ContextProvider");
12
+ var _Page = _interopRequireDefault(require("../view/Page"));
13
+ var _constants = require("../constants");
14
+ var _design = _interopRequireDefault(require("./style/design.less"));
15
+ var Design = function Design() {
16
+ var context = (0, _ContextProvider.useLDContext)();
17
+ var detectorRef = (0, _react.useRef)(null);
18
+ var selectorRef = (0, _react.useRef)(null);
19
+ var simulatorRef = (0, _react.useRef)(null);
20
+ var hoverCellRef = (0, _react.useRef)(null);
21
+ var activeCellRef = (0, _react.useRef)(null);
22
+ (0, _ahooks.useEventListener)('mousemove', function (event) {
23
+ var elem = event.target;
24
+ var targetCell = elem.closest(".".concat(_constants.CELL_CLASS_NAME));
25
+ if (targetCell && !targetCell.isEqualNode(hoverCellRef.current) && !targetCell.isEqualNode(activeCellRef.current)) {
26
+ var _id = targetCell.id;
27
+ hoverCellRef.current = targetCell;
28
+ context.$publisher(context.topics.COMPONENT_HOVER, {
29
+ id: _id,
30
+ cellNode: targetCell
31
+ });
32
+ } else if (!targetCell || targetCell.isEqualNode(activeCellRef.current)) {
33
+ hoverCellRef.current = null;
34
+ context.$publisher(context.topics.COMPONENT_HOVER, null);
35
+ }
36
+ }, {
37
+ target: simulatorRef
38
+ });
39
+ (0, _ahooks.useEventListener)('mouseleave', function () {
40
+ if (hoverCellRef.current) {
41
+ hoverCellRef.current = null;
42
+ context.$publisher(context.topics.COMPONENT_HOVER, null);
43
+ }
44
+ }, {
45
+ target: simulatorRef
46
+ });
47
+ (0, _ahooks.useEventListener)('click', function (event) {
48
+ var elem = event.target;
49
+ var targetCell = elem.closest(".".concat(_constants.CELL_CLASS_NAME));
50
+ if (!targetCell || targetCell.isEqualNode(activeCellRef.current)) return;
51
+ activeCellRef.current = targetCell;
52
+ hoverCellRef.current = null;
53
+ context.$publisher(context.topics.COMPONENT_HOVER, null);
54
+ context.$publisher(context.topics.COMPONENT_ACTIVE, {
55
+ id: activeCellRef.current.id,
56
+ cellNode: activeCellRef.current
57
+ });
58
+ }, {
59
+ target: simulatorRef
60
+ });
61
+ (0, _react.useEffect)(function () {
62
+ var setRect = function setRect(node, cellNode) {
63
+ node.style.left = "".concat(cellNode.offsetLeft, "px");
64
+ node.style.top = "".concat(cellNode.offsetTop, "px");
65
+ node.style.width = "".concat(cellNode.offsetWidth, "px");
66
+ node.style.height = "".concat(cellNode.offsetHeight, "px");
67
+ };
68
+ var hcid = context.$subscriber(context.topics.COMPONENT_HOVER).on(function (payload) {
69
+ if (payload.id) {
70
+ detectorRef.current.style.display = 'block';
71
+ setRect(detectorRef.current, payload.cellNode);
72
+ } else {
73
+ detectorRef.current.style.display = 'none';
74
+ }
75
+ }).watch();
76
+ var acid = context.$subscriber(context.topics.COMPONENT_ACTIVE).on(function (payload) {
77
+ if (payload.id) {
78
+ selectorRef.current.style.display = 'block';
79
+ setRect(selectorRef.current, payload.cellNode);
80
+ } else {
81
+ selectorRef.current.style.display = 'none';
82
+ }
83
+ }).watch();
84
+ return function () {
85
+ context.$unsubscriber(context.topics.COMPONENT_HOVER, hcid);
86
+ context.$unsubscriber(context.topics.COMPONENT_ACTIVE, acid);
87
+ };
88
+ }, []);
89
+ return /*#__PURE__*/_react.default.createElement("div", {
90
+ className: _design.default['lc-painter-design']
91
+ }, /*#__PURE__*/_react.default.createElement("div", {
92
+ id: "lc-detector",
93
+ ref: detectorRef,
94
+ className: _design.default.detector
95
+ }), /*#__PURE__*/_react.default.createElement("div", {
96
+ id: "lc-selector",
97
+ ref: selectorRef,
98
+ className: _design.default.selector
99
+ }), /*#__PURE__*/_react.default.createElement(_Page.default, {
100
+ ref: simulatorRef,
101
+ pageCode: "mk2i87qb",
102
+ className: _design.default.simulator
103
+ }));
104
+ };
105
+ var _default = exports.default = Design;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var I18n = function I18n() {
10
+ return /*#__PURE__*/_react.default.createElement("div", null, "i18n");
11
+ };
12
+ var _default = exports.default = I18n;
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _ahooks = require("ahooks");
15
+ var _lodash = require("lodash");
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+ var _antd = require("luck-design/antd");
18
+ var _utils = require("@luck-design-biz/base/utils");
19
+ var _ContextProvider = require("../engine/provider/ContextProvider");
20
+ var _constants = require("../constants");
21
+ var _dataProcess = require("../engine/tools/dataProcess");
22
+ var _outline = _interopRequireDefault(require("./style/outline.less"));
23
+ var _excluded = ["props", "children"];
24
+ var TreeNode = _antd.Tree.TreeNode;
25
+ var PAGE_CELL = [_constants.CELL_KEY.PAGE_HEADER, _constants.CELL_KEY.PAGE_CONTENT, _constants.CELL_KEY.PAGE_FOOTER];
26
+ var Outline = function Outline() {
27
+ var modalTreeRef = (0, _react.useRef)();
28
+ var pageTreeRef = (0, _react.useRef)();
29
+ var openModal = (0, _react.useRef)(void 0);
30
+ var clickBySelf = (0, _react.useRef)(false);
31
+ var context = (0, _ContextProvider.useLDContext)();
32
+ var _useState = (0, _react.useState)(null),
33
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
34
+ pageAndModal = _useState2[0],
35
+ setPageAndModal = _useState2[1];
36
+ var _useState3 = (0, _react.useState)(null),
37
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
38
+ selectedKey = _useState4[0],
39
+ setSelectedKey = _useState4[1];
40
+ var _useState5 = (0, _react.useState)([]),
41
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
42
+ modalExpandedKeys = _useState6[0],
43
+ setModalExpandedKeys = _useState6[1];
44
+ var _useState7 = (0, _react.useState)([]),
45
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
46
+ pageExpandedKeys = _useState8[0],
47
+ setPageExpandedKeys = _useState8[1];
48
+ (0, _react.useEffect)(function () {
49
+ var _id = context.$subscriber(context.topics.COMPONENT_ACTIVE).on(function (payload) {
50
+ setSelectedKey(payload.id);
51
+ if (clickBySelf.current) {
52
+ clickBySelf.current = false;
53
+ return;
54
+ }
55
+ setModalExpandedKeys((0, _lodash.uniq)([].concat((0, _toConsumableArray2.default)((openModal.current ? modalTreeRef : pageTreeRef).current.props.expandedKeys), (0, _toConsumableArray2.default)((0, _lodash.split)((0, _dataProcess.getPathById)(context.pageData, payload.id), '/')))));
56
+ }).watch();
57
+ return function () {
58
+ context.$unsubscriber(context.topics.COMPONENT_ACTIVE, _id);
59
+ };
60
+ }, []);
61
+ var handleSelect = function handleSelect(_key) {
62
+ clickBySelf.current = true;
63
+ context.$publisher(context.topics.COMPONENT_ACTIVE, _key ? {
64
+ id: _key,
65
+ cellNode: context.componentMap.get(_key).dom
66
+ } : null);
67
+ };
68
+ var handleOpenModal = (0, _ahooks.useMemoizedFn)(function (_key) {
69
+ var _comp = context.componentMap.get(_key);
70
+ var _prevComp = openModal.current ? context.componentMap.get(openModal.current) : null;
71
+ _prevComp === null || _prevComp === void 0 || _prevComp.api.doClose();
72
+ _comp.api.doOpen();
73
+ openModal.current = _key;
74
+ });
75
+ var render = (0, _ahooks.useMemoizedFn)(function (_ref) {
76
+ var props = _ref.props,
77
+ children = _ref.children,
78
+ childrenMap = (0, _objectWithoutProperties2.default)(_ref, _excluded);
79
+ if (props) {
80
+ return /*#__PURE__*/_react.default.createElement(TreeNode, {
81
+ icon: /*#__PURE__*/_react.default.createElement(_antd.Icon, {
82
+ type: "layout"
83
+ }),
84
+ title: props.label,
85
+ key: props.id
86
+ }, (children === null || children === void 0 ? void 0 : children.length) && children.map(function (_id) {
87
+ return render(childrenMap[_id]);
88
+ }));
89
+ }
90
+ return (children || []).map(function (_id) {
91
+ return render(childrenMap[_id]);
92
+ });
93
+ });
94
+ (0, _ahooks.useDeepCompareLayoutEffect)(function () {
95
+ var _reduce = (0, _lodash.reduce)(context.pageData.children, function (result, _id) {
96
+ var resultKey = PAGE_CELL.includes(_id) ? 'page' : 'modal';
97
+ result[resultKey][_id] = context.pageData[_id];
98
+ if (!result[resultKey].children) {
99
+ result[resultKey].children = [];
100
+ }
101
+ result[resultKey].children.push(_id);
102
+ return result;
103
+ }, {
104
+ page: {},
105
+ modal: {}
106
+ }),
107
+ page = _reduce.page,
108
+ modal = _reduce.modal;
109
+ setPageAndModal({
110
+ page: render(page),
111
+ modal: render(modal)
112
+ });
113
+ }, [context.pageData]);
114
+ return /*#__PURE__*/_react.default.createElement("div", {
115
+ className: _outline.default['lc-painter-outline']
116
+ }, /*#__PURE__*/_react.default.createElement("div", {
117
+ className: (0, _classnames.default)(_outline.default['page-node'], (0, _defineProperty2.default)({}, _outline.default['page-node-active'], selectedKey === _constants.CELL_KEY.PAGE_ROOT)),
118
+ onClick: function onClick() {
119
+ return handleSelect(_constants.CELL_KEY.PAGE_ROOT);
120
+ }
121
+ }, /*#__PURE__*/_react.default.createElement(_antd.Icon, {
122
+ type: "layout"
123
+ }), /*#__PURE__*/_react.default.createElement("span", {
124
+ style: {
125
+ marginLeft: 5
126
+ }
127
+ }, (0, _utils.formatMessage)({
128
+ id: 'luckda.lowcode.page',
129
+ label: '页面'
130
+ }))), /*#__PURE__*/_react.default.createElement(_antd.Card, {
131
+ size: "small",
132
+ type: "inner",
133
+ hoverable: true,
134
+ title: (0, _utils.formatMessage)({
135
+ id: 'luckda.lowcode.model',
136
+ label: '模态视图层'
137
+ }),
138
+ style: {
139
+ margin: 5
140
+ },
141
+ bodyStyle: {
142
+ padding: 0
143
+ }
144
+ }, /*#__PURE__*/_react.default.createElement(_antd.Tree, {
145
+ ref: modalTreeRef,
146
+ showLine: true,
147
+ showIcon: true,
148
+ blockNode: true,
149
+ switcherIcon: /*#__PURE__*/_react.default.createElement(_antd.Icon, {
150
+ type: "down"
151
+ }),
152
+ selectedKeys: [selectedKey],
153
+ onSelect: function onSelect(_ref2, _ref3) {
154
+ var _ref4 = (0, _slicedToArray2.default)(_ref2, 1),
155
+ _key = _ref4[0];
156
+ var selected = _ref3.selected,
157
+ node = _ref3.node;
158
+ if (selected && node.props.pos.split('-').length === 2) {
159
+ handleOpenModal(_key);
160
+ handleSelect(_key);
161
+ } else if (!selected && node.props.pos.split('-').length === 2) {
162
+ var _comp = context.componentMap.get(openModal.current);
163
+ _comp.api.doClose();
164
+ openModal.current = void 0;
165
+ handleSelect(null);
166
+ } else {
167
+ handleSelect(node.props.eventKey);
168
+ var _split = (0, _lodash.split)((0, _dataProcess.getPathById)(context.pageData, node.props.eventKey), '/'),
169
+ _split2 = (0, _slicedToArray2.default)(_split, 1),
170
+ parentModal = _split2[0];
171
+ if (!openModal.current || openModal.current !== parentModal) {
172
+ handleOpenModal(parentModal);
173
+ }
174
+ }
175
+ },
176
+ expandedKeys: modalExpandedKeys,
177
+ onExpand: function onExpand(_keys, _ref5) {
178
+ var expanded = _ref5.expanded,
179
+ node = _ref5.node;
180
+ if (expanded && node.props.pos.split('-').length === 2) {
181
+ handleSelect(null);
182
+ handleOpenModal(node.props.eventKey);
183
+ }
184
+ setModalExpandedKeys(_keys);
185
+ }
186
+ }, pageAndModal === null || pageAndModal === void 0 ? void 0 : pageAndModal.modal)), /*#__PURE__*/_react.default.createElement(_antd.Tree, {
187
+ ref: pageTreeRef,
188
+ showLine: true,
189
+ showIcon: true,
190
+ blockNode: true,
191
+ switcherIcon: /*#__PURE__*/_react.default.createElement(_antd.Icon, {
192
+ type: "down"
193
+ }),
194
+ selectedKeys: [selectedKey],
195
+ onSelect: function onSelect(_ref6, _ref7) {
196
+ var _ref8 = (0, _slicedToArray2.default)(_ref6, 1),
197
+ _key = _ref8[0];
198
+ var node = _ref7.node;
199
+ if (openModal.current) {
200
+ var _prevComp = context.componentMap.get(openModal.current);
201
+ _prevComp.api.doClose();
202
+ openModal.current = void 0;
203
+ }
204
+ handleSelect(node.props.eventKey);
205
+ },
206
+ expandedKeys: pageExpandedKeys,
207
+ onExpand: setPageExpandedKeys
208
+ }, pageAndModal === null || pageAndModal === void 0 ? void 0 : pageAndModal.page));
209
+ };
210
+ var _default = exports.default = Outline;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _panel = _interopRequireDefault(require("./style/panel.less"));
11
+ var Panel = function Panel() {
12
+ return /*#__PURE__*/_react.default.createElement("div", {
13
+ className: _panel.default['lc-painter-panel']
14
+ }, "Panel");
15
+ };
16
+ var _default = exports.default = Panel;
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard3 = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
10
+ var _interopRequireWildcard2 = _interopRequireDefault(require("@babel/runtime/helpers/interopRequireWildcard"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _react = _interopRequireWildcard3(require("react"));
14
+ var _ahooks = require("ahooks");
15
+ var _umi = require("umi");
16
+ var _luckDesign = require("luck-design");
17
+ var _antd = require("luck-design/antd");
18
+ var _utils = require("@luck-design-biz/base/utils");
19
+ var _lodash = require("lodash");
20
+ var _ribbon = _interopRequireDefault(require("./style/ribbon.less"));
21
+ var _WIDTH_ = 48;
22
+ var _DRAWER_OUTLINE_ = {
23
+ width: 300,
24
+ key: 'outline',
25
+ title: '大纲树',
26
+ fix: true
27
+ };
28
+ var _DRAWER_COMPONENTS_ = {
29
+ width: 310,
30
+ key: 'components',
31
+ title: '组件',
32
+ fix: false
33
+ };
34
+ var _DRAWER_I18N_ = {
35
+ width: 450,
36
+ key: 'i18n',
37
+ title: '多语言文案管理',
38
+ fix: false
39
+ };
40
+ var Ribbon = function Ribbon() {
41
+ var _useState = (0, _react.useState)(null),
42
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
43
+ drawer = _useState2[0],
44
+ setDrawer = _useState2[1];
45
+ var Detail = (0, _ahooks.useCreation)(function () {
46
+ return (0, _umi.dynamic)({
47
+ loader: function () {
48
+ var _loader = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
49
+ var name, _yield$import, Comp;
50
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
51
+ while (1) switch (_context.prev = _context.next) {
52
+ case 0:
53
+ if (!drawer) {
54
+ _context.next = 7;
55
+ break;
56
+ }
57
+ name = (0, _lodash.upperFirst)(drawer.key);
58
+ _context.next = 4;
59
+ return function (specifier) {
60
+ return new Promise(function (r) {
61
+ return r(specifier);
62
+ }).then(function (s) {
63
+ return (0, _interopRequireWildcard2.default)(require(s));
64
+ });
65
+ }("./".concat(name));
66
+ case 4:
67
+ _yield$import = _context.sent;
68
+ Comp = _yield$import.default;
69
+ return _context.abrupt("return", Comp);
70
+ case 7:
71
+ return _context.abrupt("return", null);
72
+ case 8:
73
+ case "end":
74
+ return _context.stop();
75
+ }
76
+ }, _callee);
77
+ }));
78
+ function loader() {
79
+ return _loader.apply(this, arguments);
80
+ }
81
+ return loader;
82
+ }()
83
+ });
84
+ }, [drawer]);
85
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_luckDesign.Box, {
86
+ className: _ribbon.default['lc-painter-ribbon'],
87
+ width: _WIDTH_,
88
+ heitht: "100%",
89
+ direction: "column",
90
+ align: "center",
91
+ style: {
92
+ marginRight: drawer !== null && drawer !== void 0 && drawer.fix ? drawer.width : 0
93
+ }
94
+ }, /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
95
+ placement: "right",
96
+ title: (0, _utils.formatMessage)({
97
+ id: 'luckda.lowcode.outline',
98
+ label: _DRAWER_OUTLINE_.title
99
+ })
100
+ }, /*#__PURE__*/_react.default.createElement(_antd.Icon, {
101
+ type: "apartment",
102
+ onClick: function onClick() {
103
+ return setDrawer((drawer === null || drawer === void 0 ? void 0 : drawer.key) === _DRAWER_OUTLINE_.key ? null : _DRAWER_OUTLINE_);
104
+ }
105
+ })), /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
106
+ placement: "right",
107
+ title: (0, _utils.formatMessage)({
108
+ id: 'luckda.lowcode.components',
109
+ label: _DRAWER_COMPONENTS_.title
110
+ })
111
+ }, /*#__PURE__*/_react.default.createElement(_antd.Icon, {
112
+ type: "appstore",
113
+ onClick: function onClick() {
114
+ return setDrawer((drawer === null || drawer === void 0 ? void 0 : drawer.key) === _DRAWER_COMPONENTS_.key ? null : _DRAWER_COMPONENTS_);
115
+ }
116
+ })), /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
117
+ placement: "right",
118
+ title: (0, _utils.formatMessage)({
119
+ id: 'luckda.lowcode.i18n',
120
+ label: _DRAWER_I18N_.title
121
+ })
122
+ }, /*#__PURE__*/_react.default.createElement(_antd.Icon, {
123
+ type: "global",
124
+ onClick: function onClick() {
125
+ return setDrawer((drawer === null || drawer === void 0 ? void 0 : drawer.key) === _DRAWER_I18N_.key ? null : _DRAWER_I18N_);
126
+ }
127
+ }))), /*#__PURE__*/_react.default.createElement(_antd.Drawer, {
128
+ title: drawer ? (0, _utils.formatMessage)({
129
+ id: "luckda.lowcode.".concat(drawer.key),
130
+ label: drawer.title
131
+ }) : '',
132
+ placement: "left",
133
+ width: (drawer === null || drawer === void 0 ? void 0 : drawer.width) || 0,
134
+ visible: !!drawer,
135
+ mask: false,
136
+ getContainer: false,
137
+ onClose: function onClose() {
138
+ return setDrawer(null);
139
+ },
140
+ style: {
141
+ position: 'absolute',
142
+ left: _WIDTH_
143
+ },
144
+ bodyStyle: {
145
+ overflowY: 'auto',
146
+ height: 'calc(100% - 55px)',
147
+ padding: 0
148
+ }
149
+ }, Detail && /*#__PURE__*/_react.default.createElement(Detail, null)));
150
+ };
151
+ var _default = exports.default = Ribbon;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = _default;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _panelItem = _interopRequireDefault(require("../style/panel-item.less"));
10
+ /**
11
+ * 属性面板属性行组件
12
+ * @param {string} label 属性名
13
+ * @param {React.ReactNode} component 属性组件
14
+ * @returns
15
+ */
16
+ function _default(_ref) {
17
+ var label = _ref.label,
18
+ component = _ref.component;
19
+ return /*#__PURE__*/_react.default.createElement("div", {
20
+ className: _panelItem.default['lc-painter-components-panelitem']
21
+ }, /*#__PURE__*/_react.default.createElement("span", {
22
+ className: _panelItem.default['item-label']
23
+ }, label), /*#__PURE__*/_react.default.createElement("span", {
24
+ className: _panelItem.default['item-component']
25
+ }, component));
26
+ }