@luck-design-biz/luckda 0.0.25-1 → 0.0.25-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 (139) hide show
  1. package/es/locales/zh-CN.js +9 -0
  2. package/es/lowcode/constants/api-url.js +184 -100
  3. package/es/lowcode/constants/index.js +2 -1
  4. package/es/lowcode/engine/meta/box.props.default.json +1 -1
  5. package/es/lowcode/engine/meta/box.props.json +1 -1
  6. package/es/lowcode/engine/meta/button.props.json +1 -1
  7. package/es/lowcode/engine/meta/cardlist.props.json +1 -1
  8. package/es/lowcode/engine/meta/components-list.json +1 -1
  9. package/es/lowcode/engine/meta/dialog.props.json +1 -1
  10. package/es/lowcode/engine/meta/drawer.props.json +1 -1
  11. package/es/lowcode/engine/meta/form.props.default.json +4 -5
  12. package/es/lowcode/engine/meta/form.props.json +33 -30
  13. package/es/lowcode/engine/meta/image.props.json +2 -2
  14. package/es/lowcode/engine/meta/imex.props.json +1 -1
  15. package/es/lowcode/engine/meta/link.props.json +1 -1
  16. package/es/lowcode/engine/meta/section.props.default.json +4 -6
  17. package/es/lowcode/engine/meta/section.props.json +52 -49
  18. package/es/lowcode/engine/meta/text.props.json +2 -2
  19. package/es/lowcode/engine/meta/tree.props.json +2 -2
  20. package/es/lowcode/engine/provider/ContextProvider/index.js +10 -2
  21. package/es/lowcode/engine/provider/RemoteSourceProvider.js +28 -15
  22. package/es/lowcode/engine/tools/helper.js +23 -21
  23. package/es/lowcode/engine/tools/useCanvasRender.js +5 -7
  24. package/es/lowcode/engine/tools/usePromiseState.js +23 -14
  25. package/es/lowcode/painter/Design.js +34 -2
  26. package/es/lowcode/painter/DesignOperator.js +6 -8
  27. package/es/lowcode/painter/DesignToolbar.js +258 -21
  28. package/es/lowcode/painter/Panel.js +8 -9
  29. package/es/lowcode/painter/components/AttrsPanel.js +6 -6
  30. package/es/lowcode/painter/components/DragDrop/DragDropWrapper.js +5 -2
  31. package/es/lowcode/painter/components/ListEditor.js +8 -2
  32. package/es/lowcode/painter/components/field-setting/BatchSetting.js +13 -3
  33. package/es/lowcode/painter/components/field-setting/SettingUI.js +26 -7
  34. package/es/lowcode/painter/components/field-setting/index.js +18 -8
  35. package/es/lowcode/painter/index.js +1 -28
  36. package/es/lowcode/painter/panel-section/ActionsColumnWidth.js +25 -0
  37. package/es/lowcode/painter/panel-section/BlockEditor/index.js +7 -4
  38. package/es/lowcode/painter/panel-section/BlocksEditor/BlockEditorItem.js +4 -3
  39. package/es/lowcode/painter/panel-section/BlocksEditor/index.js +48 -15
  40. package/es/lowcode/painter/panel-section/FieldsSetting.js +48 -27
  41. package/es/lowcode/painter/panel-section/I18nInput.js +20 -0
  42. package/es/lowcode/painter/style/design.less +6 -2
  43. package/es/lowcode/painter/style/list-editor.less +36 -0
  44. package/es/lowcode/preview/index.js +17 -4
  45. package/es/lowcode/view/lc-components/Box/meta.json +1 -1
  46. package/es/lowcode/view/lc-components/Button/meta.json +1 -1
  47. package/es/lowcode/view/lc-components/CardList/meta.json +1 -1
  48. package/es/lowcode/view/lc-components/Dialog/FunctionDesign.js +2 -4
  49. package/es/lowcode/view/lc-components/Dialog/meta.json +1 -1
  50. package/es/lowcode/view/lc-components/Drawer/meta.json +1 -1
  51. package/es/lowcode/view/lc-components/Form/FunctionDesign.js +66 -4
  52. package/es/lowcode/view/lc-components/Form/index.js +232 -61
  53. package/es/lowcode/view/lc-components/Form/meta.json +33 -30
  54. package/es/lowcode/view/lc-components/ImEx/meta.json +1 -1
  55. package/es/lowcode/view/lc-components/Image/meta.json +2 -2
  56. package/es/lowcode/view/lc-components/Layout/FunctionDesign.js +6 -7
  57. package/es/lowcode/view/lc-components/Link/meta.json +1 -1
  58. package/es/lowcode/view/lc-components/Section/FunctionDesign.js +31 -2
  59. package/es/lowcode/view/lc-components/Section/index.js +114 -24
  60. package/es/lowcode/view/lc-components/Section/index.less +7 -0
  61. package/es/lowcode/view/lc-components/Section/meta.json +48 -49
  62. package/es/lowcode/view/lc-components/Split/FunctionDesign.js +4 -6
  63. package/es/lowcode/view/lc-components/Split/index.js +4 -4
  64. package/es/lowcode/view/lc-components/Table/index.js +7 -6
  65. package/es/lowcode/view/lc-components/Tabs/FunctionDesign.js +2 -4
  66. package/es/lowcode/view/lc-components/Text/meta.json +2 -2
  67. package/es/lowcode/view/lc-components/Tree/meta.json +2 -2
  68. package/es/upload/Form/gridForm.js +7 -3
  69. package/lib/locales/zh-CN.js +9 -0
  70. package/lib/lowcode/constants/api-url.js +183 -100
  71. package/lib/lowcode/constants/index.js +3 -2
  72. package/lib/lowcode/engine/meta/box.props.default.json +1 -1
  73. package/lib/lowcode/engine/meta/box.props.json +1 -1
  74. package/lib/lowcode/engine/meta/button.props.json +1 -1
  75. package/lib/lowcode/engine/meta/cardlist.props.json +1 -1
  76. package/lib/lowcode/engine/meta/components-list.json +1 -1
  77. package/lib/lowcode/engine/meta/dialog.props.json +1 -1
  78. package/lib/lowcode/engine/meta/drawer.props.json +1 -1
  79. package/lib/lowcode/engine/meta/form.props.default.json +4 -5
  80. package/lib/lowcode/engine/meta/form.props.json +33 -30
  81. package/lib/lowcode/engine/meta/image.props.json +2 -2
  82. package/lib/lowcode/engine/meta/imex.props.json +1 -1
  83. package/lib/lowcode/engine/meta/link.props.json +1 -1
  84. package/lib/lowcode/engine/meta/section.props.default.json +4 -6
  85. package/lib/lowcode/engine/meta/section.props.json +52 -49
  86. package/lib/lowcode/engine/meta/text.props.json +2 -2
  87. package/lib/lowcode/engine/meta/tree.props.json +2 -2
  88. package/lib/lowcode/engine/provider/ContextProvider/index.js +10 -2
  89. package/lib/lowcode/engine/provider/RemoteSourceProvider.js +24 -11
  90. package/lib/lowcode/engine/tools/helper.js +23 -21
  91. package/lib/lowcode/engine/tools/useCanvasRender.js +3 -5
  92. package/lib/lowcode/engine/tools/usePromiseState.js +22 -14
  93. package/lib/lowcode/painter/Design.js +32 -0
  94. package/lib/lowcode/painter/DesignOperator.js +5 -7
  95. package/lib/lowcode/painter/DesignToolbar.js +256 -19
  96. package/lib/lowcode/painter/Panel.js +7 -8
  97. package/lib/lowcode/painter/components/AttrsPanel.js +6 -6
  98. package/lib/lowcode/painter/components/DragDrop/DragDropWrapper.js +5 -2
  99. package/lib/lowcode/painter/components/ListEditor.js +8 -2
  100. package/lib/lowcode/painter/components/field-setting/BatchSetting.js +13 -3
  101. package/lib/lowcode/painter/components/field-setting/SettingUI.js +26 -7
  102. package/lib/lowcode/painter/components/field-setting/index.js +18 -8
  103. package/lib/lowcode/painter/index.js +1 -30
  104. package/lib/lowcode/painter/panel-section/ActionsColumnWidth.js +32 -0
  105. package/lib/lowcode/painter/panel-section/BlockEditor/index.js +7 -4
  106. package/lib/lowcode/painter/panel-section/BlocksEditor/BlockEditorItem.js +4 -3
  107. package/lib/lowcode/painter/panel-section/BlocksEditor/index.js +47 -13
  108. package/lib/lowcode/painter/panel-section/FieldsSetting.js +46 -25
  109. package/lib/lowcode/painter/panel-section/I18nInput.js +27 -0
  110. package/lib/lowcode/painter/style/design.less +6 -2
  111. package/lib/lowcode/painter/style/list-editor.less +36 -0
  112. package/lib/lowcode/preview/index.js +18 -4
  113. package/lib/lowcode/view/lc-components/Box/meta.json +1 -1
  114. package/lib/lowcode/view/lc-components/Button/meta.json +1 -1
  115. package/lib/lowcode/view/lc-components/CardList/meta.json +1 -1
  116. package/lib/lowcode/view/lc-components/Dialog/FunctionDesign.js +2 -4
  117. package/lib/lowcode/view/lc-components/Dialog/meta.json +1 -1
  118. package/lib/lowcode/view/lc-components/Drawer/meta.json +1 -1
  119. package/lib/lowcode/view/lc-components/Form/FunctionDesign.js +64 -2
  120. package/lib/lowcode/view/lc-components/Form/index.js +230 -59
  121. package/lib/lowcode/view/lc-components/Form/meta.json +33 -30
  122. package/lib/lowcode/view/lc-components/ImEx/meta.json +1 -1
  123. package/lib/lowcode/view/lc-components/Image/meta.json +2 -2
  124. package/lib/lowcode/view/lc-components/Layout/FunctionDesign.js +5 -6
  125. package/lib/lowcode/view/lc-components/Link/meta.json +1 -1
  126. package/lib/lowcode/view/lc-components/Section/FunctionDesign.js +31 -2
  127. package/lib/lowcode/view/lc-components/Section/index.js +113 -23
  128. package/lib/lowcode/view/lc-components/Section/index.less +7 -0
  129. package/lib/lowcode/view/lc-components/Section/meta.json +48 -49
  130. package/lib/lowcode/view/lc-components/Split/FunctionDesign.js +5 -7
  131. package/lib/lowcode/view/lc-components/Split/index.js +4 -4
  132. package/lib/lowcode/view/lc-components/Table/index.js +7 -6
  133. package/lib/lowcode/view/lc-components/Tabs/FunctionDesign.js +4 -6
  134. package/lib/lowcode/view/lc-components/Text/meta.json +2 -2
  135. package/lib/lowcode/view/lc-components/Tree/meta.json +2 -2
  136. package/lib/upload/Form/gridForm.js +7 -3
  137. package/package.json +1 -1
  138. package/es/lowcode/painter/services/toolbar.js +0 -25
  139. package/lib/lowcode/painter/services/toolbar.js +0 -32
@@ -1,33 +1,41 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
7
  var _react = require("react");
10
8
  var _ahooks = require("ahooks");
9
+ var _lodash = require("lodash");
11
10
  var usePromiseState = function usePromiseState(initialState) {
12
- var _useResetState = (0, _ahooks.useResetState)(initialState),
13
- _useResetState2 = (0, _slicedToArray2.default)(_useResetState, 3),
14
- state = _useResetState2[0],
15
- setState = _useResetState2[1],
16
- resetState = _useResetState2[2];
11
+ var _useHistoryTravel = (0, _ahooks.useHistoryTravel)(initialState),
12
+ value = _useHistoryTravel.value,
13
+ setValue = _useHistoryTravel.setValue,
14
+ backLength = _useHistoryTravel.backLength,
15
+ forwardLength = _useHistoryTravel.forwardLength,
16
+ back = _useHistoryTravel.back,
17
+ forward = _useHistoryTravel.forward;
17
18
  var promiseRef = (0, _react.useRef)(null);
18
- var setStatePromise = (0, _react.useCallback)(function (_state) {
19
+ var setStatePromise = (0, _react.useCallback)(function (_value) {
19
20
  return new Promise(function (resolve) {
20
21
  promiseRef.current = resolve;
21
- console.log('_state', _state);
22
- setState(_state);
22
+ var _valStr = JSON.stringify(_value);
23
+ if (!(0, _lodash.isEqual)(value, _valStr)) {
24
+ setValue(_valStr);
25
+ }
23
26
  });
24
27
  }, []);
25
- (0, _ahooks.useDeepCompareEffect)(function () {
28
+ (0, _ahooks.useUpdateLayoutEffect)(function () {
26
29
  if (promiseRef.current) {
27
- promiseRef.current(state);
30
+ promiseRef.current(JSON.parse(value));
28
31
  promiseRef.current = null;
29
32
  }
30
- }, [state]);
31
- return [state, setStatePromise, resetState];
33
+ }, [value]);
34
+ return [JSON.parse(value), setStatePromise, {
35
+ backLength: backLength - 1,
36
+ forwardLength: forwardLength,
37
+ back: back,
38
+ forward: forward
39
+ }];
32
40
  };
33
41
  var _default = exports.default = usePromiseState;
@@ -12,6 +12,8 @@ var _umi = require("umi");
12
12
  var _ahooks = require("ahooks");
13
13
  var _moment = _interopRequireDefault(require("moment"));
14
14
  var _antd = require("luck-design/antd");
15
+ var _utils = require("@luck-design-biz/base/utils");
16
+ var _ContextProvider = require("../engine/provider/ContextProvider");
15
17
  var _DesignToolbar = _interopRequireDefault(require("./DesignToolbar"));
16
18
  var _DesignOperator = _interopRequireDefault(require("./DesignOperator"));
17
19
  var _Page = _interopRequireDefault(require("../view/Page"));
@@ -19,6 +21,7 @@ var _design = _interopRequireDefault(require("./style/design.less"));
19
21
  var Design = function Design() {
20
22
  var _localeInfo$locale;
21
23
  var simulatorRef = (0, _react.useRef)(null);
24
+ var remoteSource = (0, _ContextProvider.useRemoteSource)();
22
25
  var _useState = (0, _react.useState)(function () {
23
26
  return (0, _umi.getLocale)();
24
27
  }),
@@ -31,6 +34,35 @@ var Design = function Design() {
31
34
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
32
35
  intl = _useState4[0],
33
36
  setIntl = _useState4[1];
37
+ var unblock = (0, _ahooks.useMemoizedFn)(function () {
38
+ if (remoteSource.backLength > 0) return confirm("".concat((0, _utils.formatMessage)({
39
+ id: 'app.base.operate.comfire.leave',
40
+ label: '离开当前页面?'
41
+ }), "\n").concat((0, _utils.formatMessage)({
42
+ id: 'app.base.operate.comfire.message.leave',
43
+ label: '系统可能不会保存您所做的更改。'
44
+ })));
45
+ return true;
46
+ });
47
+ var handleBeforeUnload = (0, _ahooks.useMemoizedFn)(function (event) {
48
+ if (remoteSource.backLength > 0) {
49
+ event.preventDefault();
50
+ event.returnValue = null;
51
+ return null;
52
+ }
53
+ });
54
+ (0, _react.useEffect)(function () {
55
+ window.addEventListener('beforeunload', handleBeforeUnload);
56
+ _umi.history.block(function () {
57
+ return unblock();
58
+ });
59
+ return function () {
60
+ window.removeEventListener('beforeunload', handleBeforeUnload);
61
+ _umi.history.block(function () {
62
+ return true;
63
+ });
64
+ };
65
+ }, []);
34
66
  var handleLangChange = (0, _ahooks.useMemoizedFn)(function (_locale) {
35
67
  if (_moment.default !== null && _moment.default !== void 0 && _moment.default.locale) {
36
68
  var _localeInfo$_locale;
@@ -78,21 +78,20 @@ var DesignOperator = function DesignOperator(_ref) {
78
78
  var addComponent = (0, _ahooks.useMemoizedFn)(function (data, targetId) {
79
79
  var json = require("../engine/meta/".concat(data.component.toLowerCase(), ".props.default.json"));
80
80
  var _id = "".concat(data.component.toLowerCase(), "_").concat((0, _utils.suid)());
81
- var cloneData = (0, _lodash.cloneDeep)(pageData);
82
- (0, _dataProcess.add)(cloneData, targetId, _id, json);
81
+ (0, _dataProcess.add)(pageData, targetId, _id, json);
83
82
  context.$subscriber(context.topics.COMPONENT_MOUNT).once(function (_ref3) {
84
83
  var mountCompId = _ref3.id;
85
84
  if (mountCompId === _id) {
86
85
  context.$publisher(context.topics.COMPONENT_APPEND, {
87
86
  id: _id,
88
- pageData: cloneData
87
+ pageData: pageData
89
88
  });
90
89
  context.$publisher(context.topics.COMPONENT_ACTIVE, {
91
90
  id: _id
92
91
  });
93
92
  }
94
93
  }).watch();
95
- setPageData(cloneData);
94
+ setPageData(pageData);
96
95
  });
97
96
  var acticeProps = (0, _ahooks.useCreation)(function () {
98
97
  if (!operatorId.selector) return null;
@@ -238,9 +237,8 @@ var DesignOperator = function DesignOperator(_ref) {
238
237
  if (lastSelectorId.current === id) {
239
238
  context.$publisher(context.topics.COMPONENT_ACTIVE, null);
240
239
  }
241
- var cloneData = (0, _lodash.cloneDeep)(pageData);
242
- (0, _dataProcess.deleteById)(cloneData, id);
243
- setPageData(cloneData);
240
+ (0, _dataProcess.deleteById)(pageData, id);
241
+ setPageData(pageData);
244
242
  });
245
243
  return function () {
246
244
  context.$unsubscriber(context.topics.COMPONENT_SETTING_CLICK, csid);
@@ -1,32 +1,47 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
+ var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
15
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
16
  var _react = _interopRequireWildcard(require("react"));
17
+ var _umi = require("umi");
12
18
  var _classnames = _interopRequireDefault(require("classnames"));
13
19
  var _ahooks = require("ahooks");
14
20
  var _antd = require("luck-design/antd");
15
21
  var _utils = require("@luck-design-biz/base/utils");
16
22
  var _ContextProvider = require("../engine/provider/ContextProvider");
17
23
  var _JsonEditor = _interopRequireDefault(require("../painter/components/code-editor/JsonEditor"));
24
+ var _preview = _interopRequireDefault(require("../preview"));
18
25
  var _constants = require("../constants");
19
- var _toolbar = require("./services/toolbar");
20
26
  var _design = _interopRequireDefault(require("./style/design.less"));
27
+ var _apiUrl = require("../constants/api-url");
28
+ var _services = require("@luck-design-biz/base/lib/sys/services");
29
+ var _excluded = ["key", "label"];
21
30
  var DesignToolbar = function DesignToolbar(_ref) {
22
31
  var locale = _ref.locale,
23
32
  onLangChange = _ref.onLangChange;
33
+ var location = (0, _umi.useLocation)();
24
34
  var editorRef = (0, _react.useRef)();
25
35
  var context = (0, _ContextProvider.useContext)();
26
36
  var _usePageData = (0, _ContextProvider.usePageData)(),
27
37
  _usePageData2 = (0, _slicedToArray2.default)(_usePageData, 2),
28
38
  pageData = _usePageData2[0],
29
- setPageData = _usePageData2[1].setPageData;
39
+ _usePageData2$ = _usePageData2[1],
40
+ setPageData = _usePageData2$.setPageData,
41
+ back = _usePageData2$.back,
42
+ forward = _usePageData2$.forward,
43
+ backLength = _usePageData2$.backLength,
44
+ forwardLength = _usePageData2$.forwardLength;
30
45
  var _ref2 = (0, _ContextProvider.useRemoteSource)() || {},
31
46
  pageinfo = _ref2.pageinfo;
32
47
  var _useState = (0, _react.useState)(null),
@@ -41,6 +56,29 @@ var DesignToolbar = function DesignToolbar(_ref) {
41
56
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
42
57
  show = _useState6[0],
43
58
  setShow = _useState6[1];
59
+ var _useState7 = (0, _react.useState)(false),
60
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
61
+ showPreview = _useState8[0],
62
+ setShowPreview = _useState8[1];
63
+ var _useState9 = (0, _react.useState)([]),
64
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
65
+ userOptions = _useState10[0],
66
+ setUserOptions = _useState10[1];
67
+ var _useCookieState = (0, _ahooks.useCookieState)(_constants.COOKIE_VIRTUAL_ACCOUNT_KEY),
68
+ _useCookieState2 = (0, _slicedToArray2.default)(_useCookieState, 2),
69
+ userId = _useCookieState2[0],
70
+ setUserId = _useCookieState2[1];
71
+ var _useRequest = (0, _ahooks.useRequest)(_apiUrl.fetchClearCache, {
72
+ manual: true
73
+ }),
74
+ clearCacheLoading = _useRequest.loading,
75
+ runClearCache = _useRequest.run;
76
+ var _useRequest2 = (0, _ahooks.useRequest)(_apiUrl.fetchUpdatePageData, {
77
+ manual: true,
78
+ debounceWait: 300
79
+ }),
80
+ updatePageDataLoading = _useRequest2.loading,
81
+ runAsync = _useRequest2.runAsync;
44
82
  (0, _react.useEffect)(function () {
45
83
  var topicId = context.$subscriber(context.topics.LANG_SETTING_SELECT).on(function (_ref3) {
46
84
  var _langList = _ref3.langList;
@@ -50,20 +88,57 @@ var DesignToolbar = function DesignToolbar(_ref) {
50
88
  return context.$unsubscriber(context.topics.LANG_SETTING_SELECT, topicId);
51
89
  };
52
90
  }, []);
53
- var handleSave = (0, _ahooks.useMemoizedFn)(function () {
91
+ (0, _react.useEffect)(function () {
92
+ if (!showPreview) {
93
+ setUserId(void 0);
94
+ }
95
+ }, [showPreview]);
96
+ var handleSave = (0, _ahooks.useMemoizedFn)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
54
97
  var _pageinfo$relationshi;
55
- (0, _toolbar.updatePageData)({}, {
56
- pageData: JSON.stringify(pageData),
57
- pageCode: pageinfo === null || pageinfo === void 0 || (_pageinfo$relationshi = pageinfo.relationship) === null || _pageinfo$relationshi === void 0 ? void 0 : _pageinfo$relationshi.pageCode
58
- }).then(function (_ref4) {
59
- var code = _ref4.code;
60
- if (code === 1) {
61
- (0, _utils.showPop)((0, _utils.formatMessage)({
62
- id: 'app.base.tip.operate.success'
63
- }), null, 'success');
98
+ var _yield$runAsync, code;
99
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
100
+ while (1) switch (_context.prev = _context.next) {
101
+ case 0:
102
+ _context.next = 2;
103
+ return runAsync({
104
+ pageData: JSON.stringify(pageData),
105
+ pageCode: pageinfo === null || pageinfo === void 0 || (_pageinfo$relationshi = pageinfo.relationship) === null || _pageinfo$relationshi === void 0 ? void 0 : _pageinfo$relationshi.pageCode
106
+ });
107
+ case 2:
108
+ _yield$runAsync = _context.sent;
109
+ code = _yield$runAsync.code;
110
+ if (code === 1) {
111
+ (0, _utils.showPop)((0, _utils.formatMessage)({
112
+ id: 'app.base.tip.operate.success'
113
+ }), null, 'success');
114
+ }
115
+ case 5:
116
+ case "end":
117
+ return _context.stop();
118
+ }
119
+ }, _callee);
120
+ })), []);
121
+ var handleClearCache = (0, _ahooks.useMemoizedFn)(function () {
122
+ _antd.Modal.confirm({
123
+ title: (0, _utils.formatMessage)({
124
+ id: 'luckda.lowcode.design.toolbar.clear.tip',
125
+ label: '清除提示'
126
+ }),
127
+ content: (0, _utils.formatMessage)({
128
+ id: 'luckda.lowcode.design.toolbar.clear',
129
+ label: '确定清除当前页面及模块缓存么?'
130
+ }),
131
+ getContainer: function getContainer() {
132
+ return document.getElementById('lc-design-workspace');
133
+ },
134
+ zIndex: 3000,
135
+ onOk: function onOk() {
136
+ return runClearCache({
137
+ moduleCode: pageinfo.relationship.moduleCode
138
+ });
64
139
  }
65
140
  });
66
- }, []);
141
+ });
67
142
  var handleOk = (0, _ahooks.useMemoizedFn)(function () {
68
143
  var code = editorRef.current.editor.getValue();
69
144
  try {
@@ -77,6 +152,43 @@ var DesignToolbar = function DesignToolbar(_ref) {
77
152
  }));
78
153
  }
79
154
  });
155
+ var _useDebounceFn = (0, _ahooks.useDebounceFn)( /*#__PURE__*/function () {
156
+ var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2(value) {
157
+ var _yield$readAllUser, code, list, detail;
158
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
159
+ while (1) switch (_context2.prev = _context2.next) {
160
+ case 0:
161
+ _context2.next = 2;
162
+ return (0, _services.readAllUser)({
163
+ sname: value
164
+ });
165
+ case 2:
166
+ _yield$readAllUser = _context2.sent;
167
+ code = _yield$readAllUser.code;
168
+ list = _yield$readAllUser.list;
169
+ detail = _yield$readAllUser.detail;
170
+ if (code === 1) {
171
+ setUserOptions(list.map(function (id) {
172
+ var item = detail[id];
173
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
174
+ key: "".concat(item.indocno),
175
+ label: item.sname
176
+ });
177
+ }));
178
+ }
179
+ case 7:
180
+ case "end":
181
+ return _context2.stop();
182
+ }
183
+ }, _callee2);
184
+ }));
185
+ return function (_x) {
186
+ return _ref5.apply(this, arguments);
187
+ };
188
+ }(), {
189
+ wait: 500
190
+ }),
191
+ handleSearch = _useDebounceFn.run;
80
192
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
81
193
  className: _design.default['lc-painter-design-toolbar']
82
194
  }, /*#__PURE__*/_react.default.createElement(_antd.Select, {
@@ -108,6 +220,35 @@ var DesignToolbar = function DesignToolbar(_ref) {
108
220
  type: "mobile"
109
221
  })), /*#__PURE__*/_react.default.createElement(_antd.Divider, {
110
222
  type: "vertical"
223
+ }), /*#__PURE__*/_react.default.createElement("span", {
224
+ className: (0, _classnames.default)(_design.default['toolbar-item'], (0, _defineProperty2.default)({}, _design.default.disabled, backLength < 1)),
225
+ onClick: function onClick() {
226
+ return backLength > 0 && back();
227
+ }
228
+ }, /*#__PURE__*/_react.default.createElement("svg", {
229
+ viewBox: "0 0 1024 1024",
230
+ width: "20",
231
+ height: "20",
232
+ fill: "currentColor",
233
+ style: {
234
+ transform: 'rotateY(180deg)'
235
+ }
236
+ }, /*#__PURE__*/_react.default.createElement("path", {
237
+ d: "M946.8 420L651.9 125.1c-19.5-19.5-52.7-5.7-52.7 21.8v174c-79.3-1.8-501.8 14.9-532.3 569.6-0.9 17.2 22.1 24.3 30.6 9.3C255 621 396.6 553.3 599.1 561.5v175.2c0 27.5 33.3 41.3 52.8 21.9l294.8-294.9c12.1-12.1 12.1-31.6 0.1-43.7z"
238
+ }))), /*#__PURE__*/_react.default.createElement("span", {
239
+ className: (0, _classnames.default)(_design.default['toolbar-item'], (0, _defineProperty2.default)({}, _design.default.disabled, forwardLength < 1)),
240
+ onClick: function onClick() {
241
+ return forwardLength > 0 && forward();
242
+ }
243
+ }, /*#__PURE__*/_react.default.createElement("svg", {
244
+ viewBox: "0 0 1024 1024",
245
+ width: "20",
246
+ height: "20",
247
+ fill: "currentColor"
248
+ }, /*#__PURE__*/_react.default.createElement("path", {
249
+ d: "M946.8 420L651.9 125.1c-19.5-19.5-52.7-5.7-52.7 21.8v174c-79.3-1.8-501.8 14.9-532.3 569.6-0.9 17.2 22.1 24.3 30.6 9.3C255 621 396.6 553.3 599.1 561.5v175.2c0 27.5 33.3 41.3 52.8 21.9l294.8-294.9c12.1-12.1 12.1-31.6 0.1-43.7z"
250
+ }))), /*#__PURE__*/_react.default.createElement(_antd.Divider, {
251
+ type: "vertical"
111
252
  }), /*#__PURE__*/_react.default.createElement("span", {
112
253
  style: {
113
254
  width: 'auto',
@@ -119,15 +260,35 @@ var DesignToolbar = function DesignToolbar(_ref) {
119
260
  id: _constants.LC_BUILDIN_UNIT_KEY.PAGE_ROOT
120
261
  });
121
262
  }
122
- }, "\u9875\u9762\u5C5E\u6027"), /*#__PURE__*/_react.default.createElement(_antd.Divider, {
263
+ }, (0, _utils.formatMessage)({
264
+ id: 'luckda.lowcode.design.toolbar.pageAttrs',
265
+ label: '页面属性'
266
+ })), /*#__PURE__*/_react.default.createElement(_antd.Divider, {
123
267
  type: "vertical"
124
268
  }), /*#__PURE__*/_react.default.createElement(_antd.Button, {
125
269
  size: "small",
126
270
  style: {
127
271
  fontSize: 12,
128
272
  margin: '0 4px 0 2px'
273
+ },
274
+ loading: clearCacheLoading,
275
+ onClick: handleClearCache
276
+ }, (0, _utils.formatMessage)({
277
+ id: 'luckda.lowcode.design.toolbar.clear',
278
+ label: '清除缓存'
279
+ })), /*#__PURE__*/_react.default.createElement(_antd.Button, {
280
+ size: "small",
281
+ style: {
282
+ fontSize: 12,
283
+ margin: '0 4px 0 2px'
284
+ },
285
+ onClick: function onClick() {
286
+ return setShowPreview(true);
129
287
  }
130
- }, "\u9884\u89C8"), /*#__PURE__*/_react.default.createElement(_antd.Button, {
288
+ }, (0, _utils.formatMessage)({
289
+ id: 'luckda.lowcode.design.toolbar.preview',
290
+ label: '预览'
291
+ })), /*#__PURE__*/_react.default.createElement(_antd.Button, {
131
292
  size: "small",
132
293
  type: "primary",
133
294
  style: {
@@ -140,7 +301,10 @@ var DesignToolbar = function DesignToolbar(_ref) {
140
301
  padding: '0 7px'
141
302
  },
142
303
  onClick: handleSave
143
- }, "\u4FDD\u5B58"), /*#__PURE__*/_react.default.createElement("div", {
304
+ }, (0, _utils.formatMessage)({
305
+ id: 'luckda.lowcode.design.toolbar.save',
306
+ label: '保存'
307
+ })), /*#__PURE__*/_react.default.createElement("div", {
144
308
  style: {
145
309
  display: 'inline-block'
146
310
  },
@@ -148,7 +312,7 @@ var DesignToolbar = function DesignToolbar(_ref) {
148
312
  return setShow(true);
149
313
  }
150
314
  }, /*#__PURE__*/_react.default.createElement(_antd.Icon, {
151
- type: "eye"
315
+ type: updatePageDataLoading ? 'loading' : 'eye'
152
316
  })))), /*#__PURE__*/_react.default.createElement(_antd.Modal, {
153
317
  visible: show,
154
318
  width: 1024,
@@ -165,6 +329,79 @@ var DesignToolbar = function DesignToolbar(_ref) {
165
329
  }
166
330
  }, /*#__PURE__*/_react.default.createElement(_JsonEditor.default, {
167
331
  ref: editorRef
168
- }, JSON.stringify(pageData, null, '\t'))));
332
+ }, JSON.stringify(pageData, null, '\t'))), /*#__PURE__*/_react.default.createElement(_antd.Drawer, {
333
+ title: /*#__PURE__*/_react.default.createElement("div", {
334
+ id: "preview-drawer-header",
335
+ style: {
336
+ display: 'flex',
337
+ height: 54,
338
+ alignItems: 'center',
339
+ justifyContent: 'space-between'
340
+ }
341
+ }, /*#__PURE__*/_react.default.createElement("h3", {
342
+ style: {
343
+ marginBottom: 0
344
+ }
345
+ }, (0, _utils.formatMessage)({
346
+ id: 'luckda.lowcode.design.toolbar.pagePreview',
347
+ label: '页面预览'
348
+ })), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_antd.Select, {
349
+ placeholder: (0, _utils.formatMessage)({
350
+ id: 'luckda.lowcode.design.toolbar.selectUser',
351
+ label: '请选择模拟登录人'
352
+ }),
353
+ allowClear: true,
354
+ style: {
355
+ width: 180
356
+ },
357
+ dropdownStyle: {
358
+ zIndex: 3100
359
+ },
360
+ filterOption: false,
361
+ labelInValue: true,
362
+ showSearch: true,
363
+ getPopupContainer: function getPopupContainer() {
364
+ return document.getElementById('preview-drawer-header').closest('.ant-drawer-wrapper-body');
365
+ },
366
+ onSearch: handleSearch,
367
+ onChange: function onChange(_, _opt) {
368
+ if (_opt) {
369
+ setUserId(_opt.props.sloginid);
370
+ } else {
371
+ setUserId(void 0);
372
+ }
373
+ }
374
+ }, userOptions.map(function (_ref6) {
375
+ var key = _ref6.key,
376
+ label = _ref6.label,
377
+ rest = (0, _objectWithoutProperties2.default)(_ref6, _excluded);
378
+ return /*#__PURE__*/_react.default.createElement(_antd.Select.Option, (0, _extends2.default)({
379
+ key: key,
380
+ value: key
381
+ }, rest), label);
382
+ })))),
383
+ placement: "bottom",
384
+ height: "94vh",
385
+ footer: false,
386
+ zIndex: 3000,
387
+ headerStyle: {
388
+ padding: '0 48px 0 24px'
389
+ },
390
+ bodyStyle: {
391
+ height: 'calc(100% - 54px)',
392
+ backgroundColor: '#F0F2F5'
393
+ },
394
+ visible: showPreview,
395
+ destroyOnClose: true,
396
+ onClose: function onClose() {
397
+ return setShowPreview(false);
398
+ },
399
+ getContainer: function getContainer() {
400
+ return document.getElementById('lc-design-workspace');
401
+ }
402
+ }, /*#__PURE__*/_react.default.createElement(_preview.default, {
403
+ code: location.query.code,
404
+ userId: userId || 'no-user'
405
+ })));
169
406
  };
170
407
  var _default = exports.default = DesignToolbar;
@@ -66,24 +66,23 @@ var Panel = function Panel() {
66
66
  }
67
67
  }, [activeNode]);
68
68
  var handleChange = (0, _ahooks.useMemoizedFn)(function (field, value, repositioning) {
69
- var cloneData = (0, _lodash.cloneDeep)(pageData);
70
69
  if (field === 'enableHeader') {
71
70
  if (value) {
72
71
  var headerMeta = require("../engine/meta/pageheader.props.default.json");
73
- (0, _dataProcess.add)(cloneData, _constants.LC_BUILDIN_UNIT_KEY.PAGE_ROOT, _constants.LC_BUILDIN_UNIT_KEY.PAGE_HEADER, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, headerMeta), {}, {
72
+ (0, _dataProcess.add)(pageData, _constants.LC_BUILDIN_UNIT_KEY.PAGE_ROOT, _constants.LC_BUILDIN_UNIT_KEY.PAGE_HEADER, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, headerMeta), {}, {
74
73
  buildIn: true
75
74
  }));
76
75
  } else {
77
- (0, _dataProcess.deleteById)(cloneData, _constants.LC_BUILDIN_UNIT_KEY.PAGE_HEADER);
76
+ (0, _dataProcess.deleteById)(pageData, _constants.LC_BUILDIN_UNIT_KEY.PAGE_HEADER);
78
77
  }
79
78
  } else if (field === 'enableFooter') {
80
79
  if (value) {
81
80
  var footerMeta = require("../engine/meta/pagefooter.props.default.json");
82
- (0, _dataProcess.add)(cloneData, _constants.LC_BUILDIN_UNIT_KEY.PAGE_ROOT, _constants.LC_BUILDIN_UNIT_KEY.PAGE_FOOTER, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, footerMeta), {}, {
81
+ (0, _dataProcess.add)(pageData, _constants.LC_BUILDIN_UNIT_KEY.PAGE_ROOT, _constants.LC_BUILDIN_UNIT_KEY.PAGE_FOOTER, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, footerMeta), {}, {
83
82
  buildIn: true
84
83
  }));
85
84
  } else {
86
- (0, _dataProcess.deleteById)(cloneData, _constants.LC_BUILDIN_UNIT_KEY.PAGE_FOOTER);
85
+ (0, _dataProcess.deleteById)(pageData, _constants.LC_BUILDIN_UNIT_KEY.PAGE_FOOTER);
87
86
  }
88
87
  }
89
88
  var component = context.componentMap.get(activeNode.node.id);
@@ -91,11 +90,11 @@ var Panel = function Panel() {
91
90
  node = _component$api$getSel.node;
92
91
  var oldValue = (0, _defineProperty2.default)({}, field, (0, _lodash.get)(node.props, field));
93
92
  var newNodeData = (0, _lodash.set)(node.props, field, value);
94
- (0, _dataProcess.modifyById)(cloneData, activeNode.node.id, newNodeData);
95
- setPageData(cloneData).then(function (newData) {
93
+ (0, _dataProcess.modifyById)(pageData, activeNode.node.id, newNodeData);
94
+ setPageData(pageData).then(function (newData) {
96
95
  context.$publisher(context.topics.COMPONENT_MODIFY, {
97
96
  id: activeNode.node.id,
98
- pageData: (0, _lodash.cloneDeep)(newData),
97
+ pageData: newData,
99
98
  oldValue: oldValue,
100
99
  newValue: (0, _defineProperty2.default)({}, field, value)
101
100
  });
@@ -64,7 +64,7 @@ var AttrsPanel = function AttrsPanel(_ref) {
64
64
  props = _ref2.props,
65
65
  wrapper = _ref2.wrapper,
66
66
  wrapperProps = _ref2.wrapperProps,
67
- _next2 = _ref2.next,
67
+ next = _ref2.next,
68
68
  repositioning = _ref2.repositioning,
69
69
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
70
70
  var Comp = factory.current.getPanelItemFor((0, _lodash.startsWith)(type, '_') ? 'dynamic' : type, type);
@@ -74,8 +74,8 @@ var AttrsPanel = function AttrsPanel(_ref) {
74
74
  key: key,
75
75
  field: key,
76
76
  label: name,
77
- next: _next2 ? function (_dp) {
78
- return goNext(_next2, _dp);
77
+ next: next ? function (_dp) {
78
+ return goNext(next, _dp);
79
79
  } : null,
80
80
  defaultCollapsed: defaultValue,
81
81
  desc: desc
@@ -86,9 +86,9 @@ var AttrsPanel = function AttrsPanel(_ref) {
86
86
  nodeId: value.id,
87
87
  key: key,
88
88
  defaultValue: (0, _lodash.isNil)(_originalVal) ? defaultValue : _originalVal,
89
- next: function next(_dp) {
90
- return goNext(_next2, _dp);
91
- },
89
+ next: next !== null && next !== void 0 && next.props ? function (_dp) {
90
+ return goNext(next, _dp);
91
+ } : null,
92
92
  onChange: function onChange(val) {
93
93
  return handleChange(valueKey || key, val, repositioning);
94
94
  },
@@ -7,9 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = _default;
8
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
9
  var _react = require("react");
10
+ var _ahooks = require("ahooks");
10
11
  var _core = require("@dnd-kit/core");
11
12
  var _ContextProvider = require("../../../engine/provider/ContextProvider");
12
- var _ahooks = require("ahooks");
13
13
  var _DragDropContext = require("./DragDropContext");
14
14
  var _constants = require("../../../constants");
15
15
  function _default(_ref) {
@@ -40,6 +40,9 @@ function _default(_ref) {
40
40
  }
41
41
  }),
42
42
  setDropRef = _useDroppable.setNodeRef;
43
+ var _memoListeners = (0, _ahooks.useCreation)(function () {
44
+ return listeners;
45
+ }, []);
43
46
  (0, _react.useEffect)(function () {
44
47
  var dom = getTargetDom();
45
48
  if (dom) {
@@ -48,7 +51,7 @@ function _default(_ref) {
48
51
  }
49
52
  }, []);
50
53
  var comp = (0, _ahooks.useCreation)(function () {
51
- return /*#__PURE__*/(0, _react.cloneElement)(children, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), listeners), attributes));
54
+ return /*#__PURE__*/(0, _react.cloneElement)(children, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, children.props), _memoListeners), attributes));
52
55
  }, [id, children]);
53
56
  return comp;
54
57
  }
@@ -76,7 +76,8 @@ var ListEditorItem = exports.ListEditorItem = function ListEditorItem(_ref2) {
76
76
  _ref2$sortable = _ref2.sortable,
77
77
  sortable = _ref2$sortable === void 0 ? true : _ref2$sortable,
78
78
  transform = _ref2.transform,
79
- transition = _ref2.transition;
79
+ transition = _ref2.transition,
80
+ onAddLine = _ref2.onAddLine;
80
81
  return /*#__PURE__*/_react.default.createElement("div", {
81
82
  ref: setNodeRef,
82
83
  style: style,
@@ -100,5 +101,10 @@ var ListEditorItem = exports.ListEditorItem = function ListEditorItem(_ref2) {
100
101
  d: "M0.499972716,6 L1.50002728,6 C1.77615459,6 2,6.22384541 2,6.49997272 C2,6.77610002 1.77615459,6.99994543 1.50002728,6.99994543 L0.499972716,6.99994543 C0.22384541,6.99994543 3.38158422e-17,6.77610002 0,6.49997272 C-3.38158422e-17,6.22384541 0.22384541,6 0.499972716,6 Z M0.499972716,3 L1.50002728,3 C1.77615459,3 2,3.22384541 2,3.49997272 C2,3.77610002 1.77615459,3.99994543 1.50002728,3.99994543 L0.499972716,3.99994543 C0.22384541,3.99994543 3.38158422e-17,3.77610002 0,3.49997272 C-3.38158422e-17,3.22384541 0.22384541,3 0.499972716,3 Z M0.499972716,7.28787148e-18 L1.50002728,5.55666624e-14 C1.77615459,7.07214574e-14 2,0.22384541 2,0.499972716 C2,0.776100022 1.77615459,0.999945432 1.50002728,0.999945432 L0.499972716,0.999945432 C0.22384541,0.999945432 3.38158422e-17,0.776100022 0,0.499972716 C-3.38158422e-17,0.22384541 0.22384541,5.0723721e-17 0.499972716,0 Z M0.5,9.00002729 L1.5,9.00002729 C1.77614237,9.00002729 2,9.22388491 2,9.50002729 C2,9.77616966 1.77614237,10.0000273 1.5,10.0000273 L0.5,10.0000273 C0.223857625,10.0000273 3.38176876e-17,9.77616966 0,9.50002729 C-3.38176876e-17,9.22388491 0.223857625,9.00002729 0.5,9.00002729 Z M0.5,12.0000273 L1.5,12.0000273 C1.77614237,12.0000273 2,12.2238849 2,12.5000273 C2,12.7761697 1.77614237,13.0000273 1.5,13.0000273 L0.5,13.0000273 C0.223857625,13.0000273 3.38176876e-17,12.7761697 0,12.5000273 C-3.38176876e-17,12.2238849 0.223857625,12.0000273 0.5,12.0000273 Z M0.5,15.0000273 L1.5,15.0000273 C1.77614237,15.0000273 2,15.2238849 2,15.5000273 C2,15.7761697 1.77614237,16.0000273 1.5,16.0000273 L0.5,16.0000273 C0.223857625,16.0000273 3.38176876e-17,15.7761697 0,15.5000273 C-3.38176876e-17,15.2238849 0.223857625,15.0000273 0.5,15.0000273 Z M3.49997272,6 L4.50002728,6 C4.77615459,6 5,6.22384541 5,6.49997272 C5,6.77610002 4.77615459,6.99994543 4.50002728,6.99994543 L3.49997272,6.99994543 C3.22384541,6.99994543 3,6.77610002 3,6.49997272 C3,6.22384541 3.22384541,6 3.49997272,6 Z M3.49997272,3 L4.50002728,3 C4.77615459,3 5,3.22384541 5,3.49997272 C5,3.77610002 4.77615459,3.99994543 4.50002728,3.99994543 L3.49997272,3.99994543 C3.22384541,3.99994543 3,3.77610002 3,3.49997272 C3,3.22384541 3.22384541,3 3.49997272,3 Z M3.49997272,7.28787148e-18 L4.50002728,5.55666624e-14 C4.77615459,7.07214574e-14 5,0.22384541 5,0.499972716 C5,0.776100022 4.77615459,0.999945432 4.50002728,0.999945432 L3.49997272,0.999945432 C3.22384541,0.999945432 3,0.776100022 3,0.499972716 C3,0.22384541 3.22384541,5.0723721e-17 3.49997272,0 Z M3.5,9.00002729 L4.5,9.00002729 C4.77614237,9.00002729 5,9.22388491 5,9.50002729 C5,9.77616966 4.77614237,10.0000273 4.5,10.0000273 L3.5,10.0000273 C3.22385763,10.0000273 3,9.77616966 3,9.50002729 C3,9.22388491 3.22385763,9.00002729 3.5,9.00002729 Z M3.5,12.0000273 L4.5,12.0000273 C4.77614237,12.0000273 5,12.2238849 5,12.5000273 C5,12.7761697 4.77614237,13.0000273 4.5,13.0000273 L3.5,13.0000273 C3.22385763,13.0000273 3,12.7761697 3,12.5000273 C3,12.2238849 3.22385763,12.0000273 3.5,12.0000273 Z M3.5,15.0000273 L4.5,15.0000273 C4.77614237,15.0000273 5,15.2238849 5,15.5000273 C5,15.7761697 4.77614237,16.0000273 4.5,16.0000273 L3.5,16.0000273 C3.22385763,16.0000273 3,15.7761697 3,15.5000273 C3,15.2238849 3.22385763,15.0000273 3.5,15.0000273 Z"
101
102
  }))), left), /*#__PURE__*/_react.default.createElement("div", {
102
103
  className: _listEditor.default['list-item-right']
103
- }, right));
104
+ }, right), onAddLine ? /*#__PURE__*/_react.default.createElement("div", {
105
+ className: _listEditor.default['list-item-bottom-line'],
106
+ onClick: function onClick() {
107
+ return onAddLine(item);
108
+ }
109
+ }) : null);
104
110
  };