@luck-design-biz/luckda 0.0.22-4 → 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 (222) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +40 -40
  3. package/es/components/Builder/index.js +1 -1
  4. package/es/components/LdFormList/index.js +4 -1
  5. package/es/components/LdGrid/index.js +4 -4
  6. package/es/components/LdGridForm/index.less +7 -7
  7. package/es/components/LdRuntimeCom/index.js +42 -0
  8. package/es/components/LdTree/index.less +36 -36
  9. package/es/helper/action.js +6 -6
  10. package/es/helper/form.js +14 -14
  11. package/es/helper/index.less +7 -7
  12. package/es/index.js +1 -0
  13. package/es/lowcode/constants/api-url.js +2 -0
  14. package/es/lowcode/constants/event-topics.js +23 -0
  15. package/es/lowcode/constants/index.js +12 -0
  16. package/es/lowcode/engine/factory/DataFactory.js +1 -0
  17. package/es/lowcode/engine/meta/button.props.default.json +8 -0
  18. package/es/lowcode/engine/meta/cardlist.props.default.json +10 -0
  19. package/es/lowcode/engine/meta/components/button.json +104 -0
  20. package/es/lowcode/engine/meta/components/card-list.json +143 -0
  21. package/es/lowcode/engine/meta/components/drawer.json +143 -0
  22. package/es/lowcode/engine/meta/components/form.json +116 -0
  23. package/es/lowcode/engine/meta/components/iframe.json +31 -0
  24. package/es/lowcode/engine/meta/components/image.json +113 -0
  25. package/es/lowcode/engine/meta/components/imex.json +81 -0
  26. package/es/lowcode/engine/meta/components/jsx.json +24 -0
  27. package/es/lowcode/engine/meta/components/layout.json +107 -0
  28. package/es/lowcode/engine/meta/components/link.json +111 -0
  29. package/es/lowcode/engine/meta/components/modal.json +120 -0
  30. package/es/lowcode/engine/meta/components/section.json +107 -0
  31. package/es/lowcode/engine/meta/components/split.json +71 -0
  32. package/es/lowcode/engine/meta/components/table.json +161 -0
  33. package/es/lowcode/engine/meta/components/tabs.json +140 -0
  34. package/es/lowcode/engine/meta/components/text.json +65 -0
  35. package/es/lowcode/engine/meta/components/tree.json +156 -0
  36. package/es/lowcode/engine/meta/components-list.json +122 -0
  37. package/es/lowcode/engine/meta/drawer.props.default.json +10 -0
  38. package/es/lowcode/engine/meta/form.props.default.json +5 -0
  39. package/es/lowcode/engine/meta/iframe.props.default.json +3 -0
  40. package/es/lowcode/engine/meta/image.props.default.json +8 -0
  41. package/es/lowcode/engine/meta/imex.props.default.json +4 -0
  42. package/es/lowcode/engine/meta/jsx.props.default.json +1 -0
  43. package/es/lowcode/engine/meta/layout.props.default.json +5 -0
  44. package/es/lowcode/engine/meta/link.props.default.json +6 -0
  45. package/es/lowcode/engine/meta/modal.props.default.json +11 -0
  46. package/es/lowcode/engine/meta/section.props.default.json +9 -0
  47. package/es/lowcode/engine/meta/split.props.default.json +5 -0
  48. package/es/lowcode/engine/meta/table.props.default.json +10 -0
  49. package/es/lowcode/engine/meta/tabs.props.default.json +10 -0
  50. package/es/lowcode/engine/meta/text.props.default.json +4 -0
  51. package/es/lowcode/engine/meta/tree.props.default.json +9 -0
  52. package/es/lowcode/engine/provider/ContextProvider.js +164 -0
  53. package/es/lowcode/engine/provider/EventBusProvider.js +120 -0
  54. package/es/lowcode/engine/tools/dataProcess.js +188 -0
  55. package/es/lowcode/engine/tools/helper.js +4 -0
  56. package/es/lowcode/engine/tools/lcid.js +16 -0
  57. package/es/lowcode/index.js +3 -0
  58. package/es/lowcode/painter/Components.js +104 -0
  59. package/es/lowcode/painter/Design.js +97 -0
  60. package/es/lowcode/painter/I18n.js +5 -0
  61. package/es/lowcode/painter/Outline.js +202 -0
  62. package/es/lowcode/painter/Panel.js +8 -0
  63. package/es/lowcode/painter/Ribbon.js +136 -0
  64. package/es/lowcode/painter/components/PanelItem.js +20 -0
  65. package/es/lowcode/painter/components/RuleInput.js +105 -0
  66. package/es/lowcode/painter/index.js +19 -0
  67. package/es/lowcode/painter/panel-section/LayoutRatio.js +123 -0
  68. package/es/lowcode/painter/panel-section/Radio.js +58 -0
  69. package/es/lowcode/painter/style/components.less +90 -0
  70. package/es/lowcode/painter/style/design.less +38 -0
  71. package/es/lowcode/painter/style/index.less +7 -0
  72. package/es/lowcode/painter/style/layout-ratio.less +51 -0
  73. package/es/lowcode/painter/style/outline.less +26 -0
  74. package/es/lowcode/painter/style/panel-item.less +21 -0
  75. package/es/lowcode/painter/style/panel.less +5 -0
  76. package/es/lowcode/painter/style/radio.less +24 -0
  77. package/es/lowcode/painter/style/ribbon.less +4 -0
  78. package/es/lowcode/painter/style/rule-input.less +13 -0
  79. package/es/lowcode/view/Canvas.js +135 -0
  80. package/es/lowcode/view/Loading.js +23 -0
  81. package/es/lowcode/view/Page.js +55 -0
  82. package/es/lowcode/view/index.js +18 -0
  83. package/es/lowcode/view/lc-components/Box/index.js +21 -0
  84. package/es/lowcode/view/lc-components/Button/index.js +37 -0
  85. package/es/lowcode/view/lc-components/CardList/index.js +20 -0
  86. package/es/lowcode/view/lc-components/Dialog/index.js +50 -0
  87. package/es/lowcode/view/lc-components/Dialog/index.less +3 -0
  88. package/es/lowcode/view/lc-components/Drawer/index.js +46 -0
  89. package/es/lowcode/view/lc-components/Form/index.js +20 -0
  90. package/es/lowcode/view/lc-components/Iframe/index.js +20 -0
  91. package/es/lowcode/view/lc-components/ImEx/index.js +20 -0
  92. package/es/lowcode/view/lc-components/Image/index.js +20 -0
  93. package/es/lowcode/view/lc-components/JSX/index.js +20 -0
  94. package/es/lowcode/view/lc-components/Layout/index.js +24 -0
  95. package/es/lowcode/view/lc-components/Link/index.js +20 -0
  96. package/es/lowcode/view/lc-components/Section/index.js +34 -0
  97. package/es/lowcode/view/lc-components/Split/index.js +21 -0
  98. package/es/lowcode/view/lc-components/Table/index.js +23 -0
  99. package/es/lowcode/view/lc-components/Tabs/index.js +21 -0
  100. package/es/lowcode/view/lc-components/Text/index.js +23 -0
  101. package/es/lowcode/view/lc-components/Tree/index.js +20 -0
  102. package/es/lowcode/view/lc-components/Wrapper.js +45 -0
  103. package/es/lowcode/view/style/canvas.less +5 -0
  104. package/es/lowcode/view/style/loading.less +84 -0
  105. package/es/lowcode/view/style/page.less +6 -0
  106. package/es/upload/Form/gridForm.js +1 -1
  107. package/es/upload/Form/index.less +7 -7
  108. package/es/upload/FormItem/index.js +15 -15
  109. package/es/utils/form.js +22 -22
  110. package/es/utils/grid.js +2 -2
  111. package/lib/components/Builder/index.js +1 -1
  112. package/lib/components/LdFormList/index.js +5 -1
  113. package/lib/components/LdGrid/index.js +4 -4
  114. package/lib/components/LdGridForm/index.less +7 -7
  115. package/lib/components/LdRuntimeCom/index.js +49 -0
  116. package/lib/components/LdTree/index.less +36 -36
  117. package/lib/helper/action.js +6 -6
  118. package/lib/helper/form.js +14 -14
  119. package/lib/helper/index.less +7 -7
  120. package/lib/index.js +9 -1
  121. package/lib/lowcode/constants/api-url.js +8 -0
  122. package/lib/lowcode/constants/event-topics.js +29 -0
  123. package/lib/lowcode/constants/index.js +18 -0
  124. package/lib/lowcode/engine/factory/DataFactory.js +3 -0
  125. package/lib/lowcode/engine/meta/button.props.default.json +8 -0
  126. package/lib/lowcode/engine/meta/cardlist.props.default.json +10 -0
  127. package/lib/lowcode/engine/meta/components/button.json +104 -0
  128. package/lib/lowcode/engine/meta/components/card-list.json +143 -0
  129. package/lib/lowcode/engine/meta/components/drawer.json +143 -0
  130. package/lib/lowcode/engine/meta/components/form.json +116 -0
  131. package/lib/lowcode/engine/meta/components/iframe.json +31 -0
  132. package/lib/lowcode/engine/meta/components/image.json +113 -0
  133. package/lib/lowcode/engine/meta/components/imex.json +81 -0
  134. package/lib/lowcode/engine/meta/components/jsx.json +24 -0
  135. package/lib/lowcode/engine/meta/components/layout.json +107 -0
  136. package/lib/lowcode/engine/meta/components/link.json +111 -0
  137. package/lib/lowcode/engine/meta/components/modal.json +120 -0
  138. package/lib/lowcode/engine/meta/components/section.json +107 -0
  139. package/lib/lowcode/engine/meta/components/split.json +71 -0
  140. package/lib/lowcode/engine/meta/components/table.json +161 -0
  141. package/lib/lowcode/engine/meta/components/tabs.json +140 -0
  142. package/lib/lowcode/engine/meta/components/text.json +65 -0
  143. package/lib/lowcode/engine/meta/components/tree.json +156 -0
  144. package/lib/lowcode/engine/meta/components-list.json +122 -0
  145. package/lib/lowcode/engine/meta/drawer.props.default.json +10 -0
  146. package/lib/lowcode/engine/meta/form.props.default.json +5 -0
  147. package/lib/lowcode/engine/meta/iframe.props.default.json +3 -0
  148. package/lib/lowcode/engine/meta/image.props.default.json +8 -0
  149. package/lib/lowcode/engine/meta/imex.props.default.json +4 -0
  150. package/lib/lowcode/engine/meta/jsx.props.default.json +1 -0
  151. package/lib/lowcode/engine/meta/layout.props.default.json +5 -0
  152. package/lib/lowcode/engine/meta/link.props.default.json +6 -0
  153. package/lib/lowcode/engine/meta/modal.props.default.json +11 -0
  154. package/lib/lowcode/engine/meta/section.props.default.json +9 -0
  155. package/lib/lowcode/engine/meta/split.props.default.json +5 -0
  156. package/lib/lowcode/engine/meta/table.props.default.json +10 -0
  157. package/lib/lowcode/engine/meta/tabs.props.default.json +10 -0
  158. package/lib/lowcode/engine/meta/text.props.default.json +4 -0
  159. package/lib/lowcode/engine/meta/tree.props.default.json +9 -0
  160. package/lib/lowcode/engine/provider/ContextProvider.js +172 -0
  161. package/lib/lowcode/engine/provider/EventBusProvider.js +128 -0
  162. package/lib/lowcode/engine/tools/dataProcess.js +201 -0
  163. package/lib/lowcode/engine/tools/helper.js +11 -0
  164. package/lib/lowcode/engine/tools/lcid.js +22 -0
  165. package/lib/lowcode/index.js +20 -0
  166. package/lib/lowcode/painter/Components.js +112 -0
  167. package/lib/lowcode/painter/Design.js +105 -0
  168. package/lib/lowcode/painter/I18n.js +12 -0
  169. package/lib/lowcode/painter/Outline.js +210 -0
  170. package/lib/lowcode/painter/Panel.js +16 -0
  171. package/lib/lowcode/painter/Ribbon.js +151 -0
  172. package/lib/lowcode/painter/components/PanelItem.js +26 -0
  173. package/lib/lowcode/painter/components/RuleInput.js +112 -0
  174. package/lib/lowcode/painter/index.js +26 -0
  175. package/lib/lowcode/painter/panel-section/LayoutRatio.js +131 -0
  176. package/lib/lowcode/painter/panel-section/Radio.js +65 -0
  177. package/lib/lowcode/painter/style/components.less +90 -0
  178. package/lib/lowcode/painter/style/design.less +38 -0
  179. package/lib/lowcode/painter/style/index.less +7 -0
  180. package/lib/lowcode/painter/style/layout-ratio.less +51 -0
  181. package/lib/lowcode/painter/style/outline.less +26 -0
  182. package/lib/lowcode/painter/style/panel-item.less +21 -0
  183. package/lib/lowcode/painter/style/panel.less +5 -0
  184. package/lib/lowcode/painter/style/radio.less +24 -0
  185. package/lib/lowcode/painter/style/ribbon.less +4 -0
  186. package/lib/lowcode/painter/style/rule-input.less +13 -0
  187. package/lib/lowcode/view/Canvas.js +150 -0
  188. package/lib/lowcode/view/Loading.js +30 -0
  189. package/lib/lowcode/view/Page.js +63 -0
  190. package/lib/lowcode/view/index.js +25 -0
  191. package/lib/lowcode/view/lc-components/Box/index.js +29 -0
  192. package/lib/lowcode/view/lc-components/Button/index.js +45 -0
  193. package/lib/lowcode/view/lc-components/CardList/index.js +28 -0
  194. package/lib/lowcode/view/lc-components/Dialog/index.js +58 -0
  195. package/lib/lowcode/view/lc-components/Dialog/index.less +3 -0
  196. package/lib/lowcode/view/lc-components/Drawer/index.js +54 -0
  197. package/lib/lowcode/view/lc-components/Form/index.js +28 -0
  198. package/lib/lowcode/view/lc-components/Iframe/index.js +28 -0
  199. package/lib/lowcode/view/lc-components/ImEx/index.js +28 -0
  200. package/lib/lowcode/view/lc-components/Image/index.js +28 -0
  201. package/lib/lowcode/view/lc-components/JSX/index.js +28 -0
  202. package/lib/lowcode/view/lc-components/Layout/index.js +32 -0
  203. package/lib/lowcode/view/lc-components/Link/index.js +28 -0
  204. package/lib/lowcode/view/lc-components/Section/index.js +42 -0
  205. package/lib/lowcode/view/lc-components/Split/index.js +29 -0
  206. package/lib/lowcode/view/lc-components/Table/index.js +31 -0
  207. package/lib/lowcode/view/lc-components/Tabs/index.js +29 -0
  208. package/lib/lowcode/view/lc-components/Text/index.js +31 -0
  209. package/lib/lowcode/view/lc-components/Tree/index.js +28 -0
  210. package/lib/lowcode/view/lc-components/Wrapper.js +52 -0
  211. package/lib/lowcode/view/style/canvas.less +5 -0
  212. package/lib/lowcode/view/style/loading.less +84 -0
  213. package/lib/lowcode/view/style/page.less +6 -0
  214. package/lib/upload/Form/gridForm.js +1 -1
  215. package/lib/upload/Form/index.less +7 -7
  216. package/lib/upload/FormItem/index.js +15 -15
  217. package/lib/utils/form.js +22 -22
  218. package/lib/utils/grid.js +2 -2
  219. package/lowcode.js +1 -0
  220. package/package.json +157 -151
  221. package/upload.js +1 -1
  222. package/utils.js +1 -1
@@ -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
+ }
@@ -0,0 +1,112 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _antd = require("luck-design/antd");
15
+ var _ruleInput = _interopRequireDefault(require("../style/rule-input.less"));
16
+ var _excluded = ["onValueChange", "rules", "value"];
17
+ /**
18
+ * 带校验功能的输入组件。
19
+ *
20
+ * 此组件封装了antd的Input组件,并增加了输入值的校验功能。它允许开发者定义一组校验规则,
21
+ * 以确保用户输入符合特定要求。每条规则由一个校验函数和一个错误信息组成。如果用户的输入
22
+ * 不满足任何一条规则,将展示相应的错误信息提示。
23
+ *
24
+ * @component
25
+ * @example
26
+ * <RuleInput
27
+ * value="示例值"
28
+ * onValueChange={(e, newValue) => console.log('新值:', newValue)}
29
+ * rules={[
30
+ * { func: value => !!value, err: '输入不能为空' },
31
+ * { func: value => /^\d+$/.test(value), err: '只允许输入数字' }
32
+ * ]}
33
+ * />
34
+ *
35
+ * @param {Object} props 组件接收的props
36
+ * @param {string} props.value 输入框当前的值,可以由外部控制以实现受控组件。
37
+ * @param {Function} props.onValueChange 当输入值改变并通过所有校验时,触发的回调函数。
38
+ * 该函数接收原生的事件对象和新的输入值作为参数。
39
+ * @param {Array<{func: (value: string) => boolean, err: string}>} props.rules
40
+ * 定义输入校验规则的数组。每个元素是一个对象,其中`func`属性是一个函数,用于执行校验逻辑,
41
+ * 接收当前输入值作为参数,返回一个布尔值表示校验是否通过;`err`属性是一个字符串,指定当
42
+ * 校验失败时要显示的错误信息。
43
+ * @param {Object} rest 传递给内部Input组件的其他props,如`placeholder`、`disabled`等。
44
+ * @param {React.Ref} ref React ref对象,用于将ref传递给内部的Input DOM元素。
45
+ *
46
+ * @returns React元素,渲染一个带有校验功能的输入框和校验失败时的错误信息提示。
47
+ */
48
+ var _default = exports.default = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
49
+ var onValueChange = _ref.onValueChange,
50
+ rules = _ref.rules,
51
+ value = _ref.value,
52
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
53
+ var _useState = (0, _react.useState)(value),
54
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
55
+ inputValue = _useState2[0],
56
+ setInputValue = _useState2[1]; // 托管输入值的状态
57
+ var _useState3 = (0, _react.useState)(null),
58
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
59
+ err = _useState4[0],
60
+ setErr = _useState4[1];
61
+
62
+ // 使用useEffect钩子监听value的变化
63
+ (0, _react.useEffect)(function () {
64
+ setInputValue(value);
65
+ setErr(null);
66
+ }, [value]);
67
+ var handleInputChange = function handleInputChange(e) {
68
+ var value = e.target.value;
69
+ setInputValue(value); // 更新托管的输入值
70
+
71
+ if (value == '') onValueChange(e, value);
72
+ var error = null;
73
+
74
+ // 遍历rules,检查输入值是否满足条件
75
+ var _iterator = (0, _createForOfIteratorHelper2.default)(rules),
76
+ _step;
77
+ try {
78
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
79
+ var rule = _step.value;
80
+ if (!rule.func(value)) {
81
+ error = rule.err;
82
+ break;
83
+ }
84
+ }
85
+ } catch (err) {
86
+ _iterator.e(err);
87
+ } finally {
88
+ _iterator.f();
89
+ }
90
+ if (!error) {
91
+ setErr(null);
92
+ onValueChange(e, value);
93
+ } else {
94
+ setErr(error);
95
+ console.log('err', error);
96
+ }
97
+ };
98
+ var className = _ruleInput.default['lc-painter-components-ruleinput'];
99
+ if (err) className += ' ' + _ruleInput.default['err'];
100
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
101
+ title: err,
102
+ visible: err
103
+ }, /*#__PURE__*/_react.default.createElement(_antd.Input, (0, _extends2.default)({
104
+ className: className,
105
+ size: "small",
106
+ value: inputValue // 绑定输入值
107
+ ,
108
+ onChange: handleInputChange
109
+ }, rest, {
110
+ ref: ref
111
+ }))));
112
+ });
@@ -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 = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _EventBusProvider = _interopRequireDefault(require("../engine/provider/EventBusProvider"));
12
+ var _ContextProvider = _interopRequireDefault(require("../engine/provider/ContextProvider"));
13
+ var _Ribbon = _interopRequireDefault(require("./Ribbon"));
14
+ var _Design = _interopRequireDefault(require("./Design"));
15
+ var _Panel = _interopRequireDefault(require("./Panel"));
16
+ var _index = require("../constants/index");
17
+ var _index2 = _interopRequireDefault(require("./style/index.less"));
18
+ var Painter = function Painter(_ref) {
19
+ var className = _ref.className;
20
+ return /*#__PURE__*/_react.default.createElement(_EventBusProvider.default, {
21
+ runtime: _index.RUNTIME.DESIGN
22
+ }, /*#__PURE__*/_react.default.createElement(_ContextProvider.default, null, /*#__PURE__*/_react.default.createElement("div", {
23
+ className: (0, _classnames.default)(_index2.default['lc-painter'], (0, _defineProperty2.default)({}, className, !!className))
24
+ }, /*#__PURE__*/_react.default.createElement(_Ribbon.default, null), /*#__PURE__*/_react.default.createElement(_Design.default, null), /*#__PURE__*/_react.default.createElement(_Panel.default, null))));
25
+ };
26
+ var _default = exports.default = Painter;