@luck-design-biz/luckda 0.0.25-23 → 0.0.25-24

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 (31) hide show
  1. package/es/components/LdTree/index.js +36 -14
  2. package/es/lowcode/painter/DesignToolbar.js +1 -8
  3. package/es/lowcode/painter/Ribbon.js +1 -1
  4. package/es/lowcode/painter/components/ActionBindModal.js +1 -3
  5. package/es/lowcode/painter/components/DragDrop/DragDropContext.js +1 -1
  6. package/es/lowcode/painter/components/code-editor/BaseEditor.js +0 -19
  7. package/es/lowcode/painter/components/code-editor/JSEditor.js +26 -2
  8. package/es/lowcode/painter/components/field-setting/FieldAttrsModal.js +0 -2
  9. package/es/lowcode/painter/components/field-setting/FieldRulesModal.js +0 -1
  10. package/es/lowcode/painter/components/field-setting/SettingUI.js +0 -1
  11. package/es/lowcode/painter/panel-section/FieldsSetting.js +1 -2
  12. package/es/lowcode/painter/style/design.less +2 -2
  13. package/es/lowcode/view/lc-components/Dialog/FunctionDesign.js +7 -3
  14. package/es/lowcode/view/lc-components/Dialog/index.js +3 -2
  15. package/es/lowcode/view/lc-components/Tree/index.js +4 -4
  16. package/lib/components/LdTree/index.js +34 -12
  17. package/lib/lowcode/painter/DesignToolbar.js +1 -8
  18. package/lib/lowcode/painter/Ribbon.js +1 -1
  19. package/lib/lowcode/painter/components/ActionBindModal.js +1 -3
  20. package/lib/lowcode/painter/components/DragDrop/DragDropContext.js +1 -1
  21. package/lib/lowcode/painter/components/code-editor/BaseEditor.js +0 -19
  22. package/lib/lowcode/painter/components/code-editor/JSEditor.js +25 -1
  23. package/lib/lowcode/painter/components/field-setting/FieldAttrsModal.js +0 -2
  24. package/lib/lowcode/painter/components/field-setting/FieldRulesModal.js +0 -1
  25. package/lib/lowcode/painter/components/field-setting/SettingUI.js +0 -1
  26. package/lib/lowcode/painter/panel-section/FieldsSetting.js +1 -2
  27. package/lib/lowcode/painter/style/design.less +2 -2
  28. package/lib/lowcode/view/lc-components/Dialog/FunctionDesign.js +7 -3
  29. package/lib/lowcode/view/lc-components/Dialog/index.js +3 -2
  30. package/lib/lowcode/view/lc-components/Tree/index.js +4 -4
  31. package/package.json +1 -1
@@ -7,18 +7,29 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
7
7
  var _excluded = ["columns", "resources", "actions", "doAction", "wrapperRef", "ldId", "dataSetKey", "defaultParmas", "moduleCode", "readOnly", "title", "rowKey", "treeNodeTitle", "unselectableNodes", "rightMenus", "defaultExpandDeep", "draggable", "onDrop", "className", "treeClassName", "rootAdd", "suppressInit", "afterQuery", "afterInit", "isTree", "service", "dataToTreeFormat", "boxRef", "doubleClickExpand", "onNodeDoubleClick", "width", "height", "treeNodeCheckable", "treeNodeDisableCheckbox", "treeNodeDisable", "treeNodeIcon", "asyncLoad", "parentKey", "onMount", "onUnmount", "onDataSetChange", "onTreeNodeRender", "onlyRoot"],
8
8
  _excluded2 = ["onClick"];
9
9
  import React, { useState, useRef, useImperativeHandle, forwardRef, useLayoutEffect } from 'react';
10
- import { isFunction, isNumber, transform, includes, remove, cloneDeep, isNil, differenceBy } from 'lodash';
10
+ import { isFunction, isNumber, transform, includes, remove, cloneDeep, isNil, differenceBy, groupBy, forEach, assign } from 'lodash';
11
11
  import { useRequest, useMemoizedFn, useCreation } from 'ahooks';
12
12
  import PropTypes from 'prop-types';
13
13
  import classNames from 'classnames';
14
14
  import { Icon, Popover } from 'luck-design/antd';
15
15
  import { LuckTree } from 'luck-design';
16
- import { formatMessage, dataToTree, dragTreeData, flattenTree } from '@luck-design-biz/base/utils';
16
+ import { formatMessage, dataToTree, dragTreeData } from '@luck-design-biz/base/utils';
17
17
  import { TreeBox } from '@luck-design-biz/base';
18
18
  import ldBuilder from "../../helper/ldBuilder";
19
19
  import { behaviorCall } from "../../utils";
20
20
  import styles from "./index.less";
21
- var PRIMARY = window.appConfig.constraintKeys.PRIMARY;
21
+ var _window$appConfig$con = window.appConfig.constraintKeys,
22
+ PRIMARY = _window$appConfig$con.PRIMARY,
23
+ PARENT = _window$appConfig$con.PARENT;
24
+ var deepForEach = function deepForEach(children, deepForEachFn) {
25
+ forEach(children, function (child) {
26
+ var _child$children;
27
+ if (((_child$children = child.children) === null || _child$children === void 0 ? void 0 : _child$children.length) > 0) {
28
+ deepForEach(child.children, deepForEachFn);
29
+ }
30
+ deepForEachFn(child);
31
+ });
32
+ };
22
33
  var LdTree = function LdTree(_ref) {
23
34
  var columns = _ref.columns,
24
35
  resources = _ref.resources,
@@ -128,26 +139,37 @@ var LdTree = function LdTree(_ref) {
128
139
  run(_objectSpread(_objectSpread(_objectSpread({}, params[0]), _params), defaultParams[0]));
129
140
  });
130
141
  var handleUpdateTree = function handleUpdateTree(type, nodes) {
131
- var data = [];
132
- var flattenData = flattenTree(dataSource);
142
+ var data = cloneDeep(dataSource);
143
+ var nodesGroup = groupBy(nodes, PARENT);
133
144
  switch (type) {
134
145
  case 'delete':
135
- data = differenceBy(flattenData, nodes, window.appConfig.constraintKeys.PRIMARY);
146
+ deepForEach(data, function (child) {
147
+ if (nodesGroup[child[PRIMARY]]) {
148
+ var _child$children2;
149
+ if (((_child$children2 = child.children) === null || _child$children2 === void 0 ? void 0 : _child$children2.length) <= nodesGroup[child[PRIMARY]].length) child.isleaf = true;
150
+ child.children = differenceBy(child.children, nodesGroup[child[PRIMARY]], window.appConfig.constraintKeys.PRIMARY);
151
+ }
152
+ });
136
153
  break;
137
154
  case 'add':
138
- data = [].concat(_toConsumableArray(flattenData), _toConsumableArray(nodes));
155
+ deepForEach(data, function (child) {
156
+ if (nodesGroup[child[PRIMARY]]) {
157
+ child.isleaf = false;
158
+ child.children = [].concat(_toConsumableArray(child.children || []), _toConsumableArray(nodesGroup[child[PRIMARY]]));
159
+ }
160
+ });
139
161
  break;
140
162
  default:
141
- data = flattenData.map(function (i) {
163
+ deepForEach(data, function (child) {
142
164
  var findNode = nodes.find(function (n) {
143
- return n[PRIMARY] === i[PRIMARY];
165
+ return n[PRIMARY] === child[PRIMARY];
144
166
  });
145
- if (findNode) return _objectSpread(_objectSpread({}, i), findNode);
146
- return i;
167
+ if (findNode) {
168
+ assign(child, findNode);
169
+ }
147
170
  });
148
171
  }
149
- var treeData = dataToTreeFormat ? dataToTreeFormat(data) : dataToTree(data, null, window.appConfig.constraintKeys.PRIMARY, window.appConfig.constraintKeys.PARENT);
150
- setDataSource(treeData);
172
+ setDataSource(data);
151
173
  };
152
174
  useImperativeHandle(wrapperRef, function () {
153
175
  return _objectSpread(_objectSpread({}, treeRef.current), {}, {
@@ -233,7 +255,7 @@ var LdTree = function LdTree(_ref) {
233
255
  disabled: treeNodeDisable && treeNodeDisable(item)
234
256
  };
235
257
  if (treeNodeIcon && !isNil(treeNodeIcon(item))) props.icon = treeNodeIcon(item);
236
- if (!item.isleaf) {
258
+ if (!item.isleaf && !isNil(item.isleaf)) {
237
259
  return /*#__PURE__*/React.createElement(LuckTree.TreeNode, _extends({
238
260
  isLeaf: false
239
261
  }, props), renderTreeNodes(item.children || []));
@@ -143,7 +143,6 @@ var DesignToolbar = function DesignToolbar(_ref) {
143
143
  getContainer: function getContainer() {
144
144
  return document.getElementById('lc-design-workspace');
145
145
  },
146
- zIndex: 3000,
147
146
  onOk: function onOk() {
148
147
  return runClearCache({
149
148
  moduleCode: getLDMetaAttr('moduleCode')
@@ -347,7 +346,6 @@ var DesignToolbar = function DesignToolbar(_ref) {
347
346
  getContainer: function getContainer() {
348
347
  return document.getElementById('lc-design-workspace');
349
348
  },
350
- zIndex: 3000,
351
349
  onOk: handleOk,
352
350
  onCancel: function onCancel() {
353
351
  return setShow(false);
@@ -382,9 +380,6 @@ var DesignToolbar = function DesignToolbar(_ref) {
382
380
  style: {
383
381
  width: 180
384
382
  },
385
- dropdownStyle: {
386
- zIndex: 3100
387
- },
388
383
  filterOption: false,
389
384
  labelInValue: true,
390
385
  showSearch: true,
@@ -410,9 +405,7 @@ var DesignToolbar = function DesignToolbar(_ref) {
410
405
  })))),
411
406
  placement: "bottom",
412
407
  height: "94vh",
413
- footer: false
414
- // zIndex={3000}
415
- ,
408
+ footer: false,
416
409
  headerStyle: {
417
410
  padding: '0 48px 0 24px'
418
411
  },
@@ -14,7 +14,7 @@ var _DRAWER_PROPS = {
14
14
  placement: 'left',
15
15
  mask: false,
16
16
  getContainer: false,
17
- zIndex: 2000,
17
+ zIndex: 20,
18
18
  headerStyle: {
19
19
  borderBottom: 'none'
20
20
  },
@@ -178,7 +178,6 @@ var ActionBindModal = function ActionBindModal(_ref) {
178
178
  getContainer: function getContainer() {
179
179
  return document.getElementById('lc-design-workspace');
180
180
  },
181
- zIndex: 3000,
182
181
  onCancel: handleClose,
183
182
  onOk: handleComfirm
184
183
  }, /*#__PURE__*/React.createElement("div", {
@@ -278,8 +277,7 @@ var ActionBindModal = function ActionBindModal(_ref) {
278
277
  }),
279
278
  getPopupContainer: function getPopupContainer() {
280
279
  return document.getElementById('lc-design-workspace');
281
- },
282
- zIndex: 3000
280
+ }
283
281
  }, /*#__PURE__*/React.createElement(Icon, {
284
282
  style: {
285
283
  marginLeft: 4
@@ -54,7 +54,7 @@ export default function (_ref) {
54
54
  onDragMove: handleDragMove
55
55
  }, children, /*#__PURE__*/React.createElement(DragOverlay, {
56
56
  style: {
57
- zIndex: 2001
57
+ zIndex: 21
58
58
  },
59
59
  dropAnimation: null
60
60
  }, active && /*#__PURE__*/React.createElement(Overlay, null, active === null || active === void 0 || (_active$component = active.component) === null || _active$component === void 0 ? void 0 : _active$component.name))));
@@ -4,10 +4,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
4
4
  var _excluded = ["onChange", "isFullscreen", "style"],
5
5
  _excluded2 = ["children", "language", "options"];
6
6
  import React, { useEffect, useRef, useImperativeHandle, forwardRef } from 'react';
7
- import { useMemoizedFn } from 'ahooks';
8
7
  import * as monaco from 'monaco-editor';
9
- import prettier from 'prettier/standalone';
10
- import parserBabel from 'prettier/parser-babel';
11
8
 
12
9
  /**
13
10
  * BaseEditor 组件是一个封装了 monaco 编辑器的 React 组件,支持前向 ref 引用。
@@ -55,14 +52,6 @@ var BaseEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
55
52
  rest = _objectWithoutProperties(props, _excluded2);
56
53
  var editorRef = useRef(null);
57
54
  var editorInstance = useRef(null);
58
- var prettierFormetter = useMemoizedFn(function (unformattedCode) {
59
- return prettier.format(unformattedCode, {
60
- parser: 'babel',
61
- plugins: [parserBabel],
62
- tabWidth: 2,
63
- useTabs: false
64
- });
65
- });
66
55
 
67
56
  // 初始化编辑器实例
68
57
  useEffect(function () {
@@ -87,14 +76,6 @@ var BaseEditor = /*#__PURE__*/forwardRef(function (_ref, ref) {
87
76
  onDidChangeStorage: function onDidChangeStorage() {}
88
77
  }
89
78
  });
90
- var originalGetValue = editorInstance.current.getValue.bind(editorInstance.current);
91
- editorInstance.current.getValue = function () {
92
- return prettierFormetter(originalGetValue());
93
- };
94
- editorInstance.current.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyMod.Shift | monaco.KeyCode.KeyF, function () {
95
- var formattedCode = prettierFormetter(originalGetValue());
96
- editorInstance.current.setValue(formattedCode);
97
- });
98
79
  editorInstance.current.onDidChangeModelContent(function (event) {
99
80
  if (onChange) onChange(editorInstance.current.getValue(), event);
100
81
  });
@@ -7,7 +7,9 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
7
7
  var _excluded = ["children", "keywords"];
8
8
  import React, { useEffect, forwardRef } from 'react';
9
9
  import * as monaco from 'monaco-editor';
10
- import { isNil } from 'lodash';
10
+ import { isNil, uniqBy, compact } from 'lodash';
11
+ import prettier from 'prettier/standalone';
12
+ import parserBabel from 'prettier/parser-babel';
11
13
  import BaseEditor from "./BaseEditor";
12
14
  function capitalizeFirstLetter(string) {
13
15
  if (isNil(string)) return null;
@@ -72,7 +74,7 @@ var setupAutocomplete = /*#__PURE__*/function () {
72
74
  allCompletionItems = allCompletionItems.concat(items);
73
75
  });
74
76
  return {
75
- suggestions: allCompletionItems
77
+ suggestions: uniqBy(compact(allCompletionItems), 'label')
76
78
  };
77
79
  },
78
80
  triggerCharacters: ['.', "'", '"'] // 当用户输入点号时触发补全
@@ -87,6 +89,20 @@ var setupAutocomplete = /*#__PURE__*/function () {
87
89
  return _ref.apply(this, arguments);
88
90
  };
89
91
  }();
92
+ var prettierFormetter = function prettierFormetter(unformattedCode) {
93
+ try {
94
+ var formattedCode = prettier.format(unformattedCode, {
95
+ parser: 'babel',
96
+ plugins: [parserBabel],
97
+ tabWidth: 2,
98
+ useTabs: false
99
+ });
100
+ return formattedCode;
101
+ } catch (e) {
102
+ console.error('Prettier formatting error:', e);
103
+ return unformattedCode;
104
+ }
105
+ };
90
106
 
91
107
  /**
92
108
  * JSEditor 组件是一个专为 JavaScript 编辑设计的 React 组件,它基于 BaseEditor 组件构建,并集成了自动完成功能。
@@ -114,6 +130,14 @@ var JSEditor = /*#__PURE__*/forwardRef(function (_ref2, ref) {
114
130
  keywords = _ref2.keywords,
115
131
  rest = _objectWithoutProperties(_ref2, _excluded);
116
132
  useEffect(function () {
133
+ var originalGetValue = ref.current.editor.getValue.bind(ref.current.editor);
134
+ ref.current.editor.getValue = function () {
135
+ return prettierFormetter(originalGetValue());
136
+ };
137
+ ref.current.editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyMod.Shift | monaco.KeyCode.KeyF, function () {
138
+ var formattedCode = prettierFormetter(originalGetValue());
139
+ ref.current.editor.setValue(formattedCode);
140
+ });
117
141
  setupAutocomplete(monaco, keywords);
118
142
  }, []);
119
143
  return /*#__PURE__*/React.createElement(BaseEditor, _extends({
@@ -200,7 +200,6 @@ var FieldAttrsModal = Form.create({
200
200
  getContainer: function getContainer() {
201
201
  return document.getElementById('lc-design-workspace');
202
202
  },
203
- zIndex: 1001,
204
203
  onOk: function () {
205
204
  var _onOk = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
206
205
  var subData, _yield$fetchDelAttrs, code;
@@ -253,7 +252,6 @@ var FieldAttrsModal = Form.create({
253
252
  getContainer: function getContainer() {
254
253
  return document.getElementById('lc-design-workspace');
255
254
  },
256
- zIndex: 1001,
257
255
  destroyOnClose: true,
258
256
  bodyStyle: {
259
257
  marginTop: 0,
@@ -107,7 +107,6 @@ var FieldRulesModal = Form.create({
107
107
  getContainer: function getContainer() {
108
108
  return document.getElementById('lc-design-workspace');
109
109
  },
110
- zIndex: 1001,
111
110
  destroyOnClose: true,
112
111
  okButtonProps: {
113
112
  loading: loading
@@ -208,7 +208,6 @@ var SettingUI = function SettingUI(_ref) {
208
208
  getContainer: function getContainer() {
209
209
  return document.getElementById('lc-design-workspace');
210
210
  },
211
- zIndex: 1001,
212
211
  onOk: function () {
213
212
  var _onOk = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
214
213
  var success;
@@ -319,8 +319,7 @@ var FieldsSetting = function FieldsSetting(_ref) {
319
319
  style: {
320
320
  position: 'absolute',
321
321
  transform: 'none',
322
- right: 320,
323
- zIndex: 1001
322
+ right: 320
324
323
  }
325
324
  }, drawerType === 'single' ? /*#__PURE__*/React.createElement(FieldSetting, {
326
325
  key: fieldId,
@@ -7,7 +7,7 @@
7
7
  pointer-events: none;
8
8
  cursor: pointer;
9
9
  overflow: visible;
10
- z-index: 1001;
10
+ z-index: 11;
11
11
  }
12
12
 
13
13
  .selector-item {
@@ -142,7 +142,7 @@
142
142
  }
143
143
 
144
144
  .next-overlay-wrapper {
145
- z-index: 3000;
145
+ z-index: 30;
146
146
  display: flex;
147
147
  flex-direction: column;
148
148
  & > div > span {
@@ -20,7 +20,6 @@ var FunctionDesign = function FunctionDesign(_ref) {
20
20
  var ctx = useContext();
21
21
  useImperativeHandle(apiRef, function () {
22
22
  return {
23
- open: true,
24
23
  doOpen: function doOpen() {
25
24
  ctx.componentMap.get(id).api.getSelfDom().closest('.ant-modal-root').style.display = 'block';
26
25
  },
@@ -47,8 +46,13 @@ var FunctionDesign = function FunctionDesign(_ref) {
47
46
  position: 'absolute'
48
47
  }
49
48
  }, props, {
50
- defaultOpen: true,
51
- $apiRef: apiRef
49
+ $apiRef: apiRef,
50
+ $designProps: {
51
+ closable: false,
52
+ maskClosable: false,
53
+ visible: true,
54
+ zIndex: 10
55
+ }
52
56
  }), children);
53
57
  };
54
58
  export default FunctionDesign;
@@ -36,7 +36,8 @@ var LCDialog = function LCDialog(_ref) {
36
36
  footer = _ref.footer,
37
37
  btnGroup = _ref.btnGroup,
38
38
  advance = _ref.advance,
39
- $apiRef = _ref.$apiRef;
39
+ $apiRef = _ref.$apiRef,
40
+ $designProps = _ref.$designProps;
40
41
  var ctx = useContext();
41
42
  var apiRef = useRef();
42
43
  var domRef = useRef();
@@ -170,7 +171,7 @@ var LCDialog = function LCDialog(_ref) {
170
171
  return setOpen(false);
171
172
  },
172
173
  destroyOnClose: destroyOnClose
173
- }), /*#__PURE__*/React.createElement("div", {
174
+ }, $designProps), /*#__PURE__*/React.createElement("div", {
174
175
  style: {
175
176
  height: 0,
176
177
  width: 0,
@@ -107,11 +107,11 @@ var LCTree = function LCTree(_ref) {
107
107
  var handleSelect = useMemoizedFn(function (_selectedKeys, e) {
108
108
  if (cancelSelect || e.selected) {
109
109
  setSelectedKeys(_selectedKeys);
110
+ ctx.doAction(advance.events.onSelect, {
111
+ checkedKeys: _selectedKeys,
112
+ e: e
113
+ });
110
114
  }
111
- ctx.doAction(advance.events.onSelect, {
112
- checkedKeys: _selectedKeys,
113
- e: e
114
- });
115
115
  });
116
116
  var afterInit = useMemoizedFn(function (treeData, data) {
117
117
  var selected = !isNil(defaultSelect) ? executeCode(ctx, defaultSelect, ['treeData'], treeData) : null;
@@ -26,7 +26,18 @@ var _utils2 = require("../../utils");
26
26
  var _index = _interopRequireDefault(require("./index.less"));
27
27
  var _excluded = ["columns", "resources", "actions", "doAction", "wrapperRef", "ldId", "dataSetKey", "defaultParmas", "moduleCode", "readOnly", "title", "rowKey", "treeNodeTitle", "unselectableNodes", "rightMenus", "defaultExpandDeep", "draggable", "onDrop", "className", "treeClassName", "rootAdd", "suppressInit", "afterQuery", "afterInit", "isTree", "service", "dataToTreeFormat", "boxRef", "doubleClickExpand", "onNodeDoubleClick", "width", "height", "treeNodeCheckable", "treeNodeDisableCheckbox", "treeNodeDisable", "treeNodeIcon", "asyncLoad", "parentKey", "onMount", "onUnmount", "onDataSetChange", "onTreeNodeRender", "onlyRoot"],
28
28
  _excluded2 = ["onClick"];
29
- var PRIMARY = window.appConfig.constraintKeys.PRIMARY;
29
+ var _window$appConfig$con = window.appConfig.constraintKeys,
30
+ PRIMARY = _window$appConfig$con.PRIMARY,
31
+ PARENT = _window$appConfig$con.PARENT;
32
+ var deepForEach = function deepForEach(children, deepForEachFn) {
33
+ (0, _lodash.forEach)(children, function (child) {
34
+ var _child$children;
35
+ if (((_child$children = child.children) === null || _child$children === void 0 ? void 0 : _child$children.length) > 0) {
36
+ deepForEach(child.children, deepForEachFn);
37
+ }
38
+ deepForEachFn(child);
39
+ });
40
+ };
30
41
  var LdTree = function LdTree(_ref) {
31
42
  var columns = _ref.columns,
32
43
  resources = _ref.resources,
@@ -136,26 +147,37 @@ var LdTree = function LdTree(_ref) {
136
147
  run((0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, params[0]), _params), defaultParams[0]));
137
148
  });
138
149
  var handleUpdateTree = function handleUpdateTree(type, nodes) {
139
- var data = [];
140
- var flattenData = (0, _utils.flattenTree)(dataSource);
150
+ var data = (0, _lodash.cloneDeep)(dataSource);
151
+ var nodesGroup = (0, _lodash.groupBy)(nodes, PARENT);
141
152
  switch (type) {
142
153
  case 'delete':
143
- data = (0, _lodash.differenceBy)(flattenData, nodes, window.appConfig.constraintKeys.PRIMARY);
154
+ deepForEach(data, function (child) {
155
+ if (nodesGroup[child[PRIMARY]]) {
156
+ var _child$children2;
157
+ if (((_child$children2 = child.children) === null || _child$children2 === void 0 ? void 0 : _child$children2.length) <= nodesGroup[child[PRIMARY]].length) child.isleaf = true;
158
+ child.children = (0, _lodash.differenceBy)(child.children, nodesGroup[child[PRIMARY]], window.appConfig.constraintKeys.PRIMARY);
159
+ }
160
+ });
144
161
  break;
145
162
  case 'add':
146
- data = [].concat((0, _toConsumableArray2.default)(flattenData), (0, _toConsumableArray2.default)(nodes));
163
+ deepForEach(data, function (child) {
164
+ if (nodesGroup[child[PRIMARY]]) {
165
+ child.isleaf = false;
166
+ child.children = [].concat((0, _toConsumableArray2.default)(child.children || []), (0, _toConsumableArray2.default)(nodesGroup[child[PRIMARY]]));
167
+ }
168
+ });
147
169
  break;
148
170
  default:
149
- data = flattenData.map(function (i) {
171
+ deepForEach(data, function (child) {
150
172
  var findNode = nodes.find(function (n) {
151
- return n[PRIMARY] === i[PRIMARY];
173
+ return n[PRIMARY] === child[PRIMARY];
152
174
  });
153
- if (findNode) return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, i), findNode);
154
- return i;
175
+ if (findNode) {
176
+ (0, _lodash.assign)(child, findNode);
177
+ }
155
178
  });
156
179
  }
157
- var treeData = dataToTreeFormat ? dataToTreeFormat(data) : (0, _utils.dataToTree)(data, null, window.appConfig.constraintKeys.PRIMARY, window.appConfig.constraintKeys.PARENT);
158
- setDataSource(treeData);
180
+ setDataSource(data);
159
181
  };
160
182
  (0, _react.useImperativeHandle)(wrapperRef, function () {
161
183
  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, treeRef.current), {}, {
@@ -241,7 +263,7 @@ var LdTree = function LdTree(_ref) {
241
263
  disabled: treeNodeDisable && treeNodeDisable(item)
242
264
  };
243
265
  if (treeNodeIcon && !(0, _lodash.isNil)(treeNodeIcon(item))) props.icon = treeNodeIcon(item);
244
- if (!item.isleaf) {
266
+ if (!item.isleaf && !(0, _lodash.isNil)(item.isleaf)) {
245
267
  return /*#__PURE__*/_react.default.createElement(_luckDesign.LuckTree.TreeNode, (0, _extends2.default)({
246
268
  isLeaf: false
247
269
  }, props), renderTreeNodes(item.children || []));
@@ -151,7 +151,6 @@ var DesignToolbar = function DesignToolbar(_ref) {
151
151
  getContainer: function getContainer() {
152
152
  return document.getElementById('lc-design-workspace');
153
153
  },
154
- zIndex: 3000,
155
154
  onOk: function onOk() {
156
155
  return runClearCache({
157
156
  moduleCode: (0, _helper.getLDMetaAttr)('moduleCode')
@@ -355,7 +354,6 @@ var DesignToolbar = function DesignToolbar(_ref) {
355
354
  getContainer: function getContainer() {
356
355
  return document.getElementById('lc-design-workspace');
357
356
  },
358
- zIndex: 3000,
359
357
  onOk: handleOk,
360
358
  onCancel: function onCancel() {
361
359
  return setShow(false);
@@ -390,9 +388,6 @@ var DesignToolbar = function DesignToolbar(_ref) {
390
388
  style: {
391
389
  width: 180
392
390
  },
393
- dropdownStyle: {
394
- zIndex: 3100
395
- },
396
391
  filterOption: false,
397
392
  labelInValue: true,
398
393
  showSearch: true,
@@ -418,9 +413,7 @@ var DesignToolbar = function DesignToolbar(_ref) {
418
413
  })))),
419
414
  placement: "bottom",
420
415
  height: "94vh",
421
- footer: false
422
- // zIndex={3000}
423
- ,
416
+ footer: false,
424
417
  headerStyle: {
425
418
  padding: '0 48px 0 24px'
426
419
  },
@@ -22,7 +22,7 @@ var _DRAWER_PROPS = {
22
22
  placement: 'left',
23
23
  mask: false,
24
24
  getContainer: false,
25
- zIndex: 2000,
25
+ zIndex: 20,
26
26
  headerStyle: {
27
27
  borderBottom: 'none'
28
28
  },
@@ -185,7 +185,6 @@ var ActionBindModal = function ActionBindModal(_ref) {
185
185
  getContainer: function getContainer() {
186
186
  return document.getElementById('lc-design-workspace');
187
187
  },
188
- zIndex: 3000,
189
188
  onCancel: handleClose,
190
189
  onOk: handleComfirm
191
190
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -285,8 +284,7 @@ var ActionBindModal = function ActionBindModal(_ref) {
285
284
  }),
286
285
  getPopupContainer: function getPopupContainer() {
287
286
  return document.getElementById('lc-design-workspace');
288
- },
289
- zIndex: 3000
287
+ }
290
288
  }, /*#__PURE__*/_react.default.createElement(_antd.Icon, {
291
289
  style: {
292
290
  marginLeft: 4
@@ -63,7 +63,7 @@ function _default(_ref) {
63
63
  onDragMove: handleDragMove
64
64
  }, children, /*#__PURE__*/_react.default.createElement(_core.DragOverlay, {
65
65
  style: {
66
- zIndex: 2001
66
+ zIndex: 21
67
67
  },
68
68
  dropAnimation: null
69
69
  }, active && /*#__PURE__*/_react.default.createElement(_Overlay.default, null, active === null || active === void 0 || (_active$component = active.component) === null || _active$component === void 0 ? void 0 : _active$component.name))));
@@ -10,10 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
- var _ahooks = require("ahooks");
14
13
  var monaco = _interopRequireWildcard(require("monaco-editor"));
15
- var _standalone = _interopRequireDefault(require("prettier/standalone"));
16
- var _parserBabel = _interopRequireDefault(require("prettier/parser-babel"));
17
14
  var _excluded = ["onChange", "isFullscreen", "style"],
18
15
  _excluded2 = ["children", "language", "options"];
19
16
  /**
@@ -62,14 +59,6 @@ var BaseEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
62
59
  rest = (0, _objectWithoutProperties2.default)(props, _excluded2);
63
60
  var editorRef = (0, _react.useRef)(null);
64
61
  var editorInstance = (0, _react.useRef)(null);
65
- var prettierFormetter = (0, _ahooks.useMemoizedFn)(function (unformattedCode) {
66
- return _standalone.default.format(unformattedCode, {
67
- parser: 'babel',
68
- plugins: [_parserBabel.default],
69
- tabWidth: 2,
70
- useTabs: false
71
- });
72
- });
73
62
 
74
63
  // 初始化编辑器实例
75
64
  (0, _react.useEffect)(function () {
@@ -94,14 +83,6 @@ var BaseEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
94
83
  onDidChangeStorage: function onDidChangeStorage() {}
95
84
  }
96
85
  });
97
- var originalGetValue = editorInstance.current.getValue.bind(editorInstance.current);
98
- editorInstance.current.getValue = function () {
99
- return prettierFormetter(originalGetValue());
100
- };
101
- editorInstance.current.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyMod.Shift | monaco.KeyCode.KeyF, function () {
102
- var formattedCode = prettierFormetter(originalGetValue());
103
- editorInstance.current.setValue(formattedCode);
104
- });
105
86
  editorInstance.current.onDidChangeModelContent(function (event) {
106
87
  if (onChange) onChange(editorInstance.current.getValue(), event);
107
88
  });
@@ -16,6 +16,8 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
16
16
  var _react = _interopRequireWildcard3(require("react"));
17
17
  var monaco = _interopRequireWildcard3(require("monaco-editor"));
18
18
  var _lodash = require("lodash");
19
+ var _standalone = _interopRequireDefault(require("prettier/standalone"));
20
+ var _parserBabel = _interopRequireDefault(require("prettier/parser-babel"));
19
21
  var _BaseEditor = _interopRequireDefault(require("./BaseEditor"));
20
22
  var _excluded = ["children", "keywords"];
21
23
  function capitalizeFirstLetter(string) {
@@ -83,7 +85,7 @@ var setupAutocomplete = /*#__PURE__*/function () {
83
85
  allCompletionItems = allCompletionItems.concat(items);
84
86
  });
85
87
  return {
86
- suggestions: allCompletionItems
88
+ suggestions: (0, _lodash.uniqBy)((0, _lodash.compact)(allCompletionItems), 'label')
87
89
  };
88
90
  },
89
91
  triggerCharacters: ['.', "'", '"'] // 当用户输入点号时触发补全
@@ -98,6 +100,20 @@ var setupAutocomplete = /*#__PURE__*/function () {
98
100
  return _ref.apply(this, arguments);
99
101
  };
100
102
  }();
103
+ var prettierFormetter = function prettierFormetter(unformattedCode) {
104
+ try {
105
+ var formattedCode = _standalone.default.format(unformattedCode, {
106
+ parser: 'babel',
107
+ plugins: [_parserBabel.default],
108
+ tabWidth: 2,
109
+ useTabs: false
110
+ });
111
+ return formattedCode;
112
+ } catch (e) {
113
+ console.error('Prettier formatting error:', e);
114
+ return unformattedCode;
115
+ }
116
+ };
101
117
 
102
118
  /**
103
119
  * JSEditor 组件是一个专为 JavaScript 编辑设计的 React 组件,它基于 BaseEditor 组件构建,并集成了自动完成功能。
@@ -125,6 +141,14 @@ var JSEditor = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
125
141
  keywords = _ref2.keywords,
126
142
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
127
143
  (0, _react.useEffect)(function () {
144
+ var originalGetValue = ref.current.editor.getValue.bind(ref.current.editor);
145
+ ref.current.editor.getValue = function () {
146
+ return prettierFormetter(originalGetValue());
147
+ };
148
+ ref.current.editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyMod.Shift | monaco.KeyCode.KeyF, function () {
149
+ var formattedCode = prettierFormetter(originalGetValue());
150
+ ref.current.editor.setValue(formattedCode);
151
+ });
128
152
  setupAutocomplete(monaco, keywords);
129
153
  }, []);
130
154
  return /*#__PURE__*/_react.default.createElement(_BaseEditor.default, (0, _extends2.default)({
@@ -208,7 +208,6 @@ var FieldAttrsModal = _antd.Form.create({
208
208
  getContainer: function getContainer() {
209
209
  return document.getElementById('lc-design-workspace');
210
210
  },
211
- zIndex: 1001,
212
211
  onOk: function () {
213
212
  var _onOk = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
214
213
  var subData, _yield$fetchDelAttrs, code;
@@ -261,7 +260,6 @@ var FieldAttrsModal = _antd.Form.create({
261
260
  getContainer: function getContainer() {
262
261
  return document.getElementById('lc-design-workspace');
263
262
  },
264
- zIndex: 1001,
265
263
  destroyOnClose: true,
266
264
  bodyStyle: {
267
265
  marginTop: 0,
@@ -115,7 +115,6 @@ var FieldRulesModal = _antd.Form.create({
115
115
  getContainer: function getContainer() {
116
116
  return document.getElementById('lc-design-workspace');
117
117
  },
118
- zIndex: 1001,
119
118
  destroyOnClose: true,
120
119
  okButtonProps: {
121
120
  loading: loading
@@ -216,7 +216,6 @@ var SettingUI = function SettingUI(_ref) {
216
216
  getContainer: function getContainer() {
217
217
  return document.getElementById('lc-design-workspace');
218
218
  },
219
- zIndex: 1001,
220
219
  onOk: function () {
221
220
  var _onOk = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
222
221
  var success;
@@ -327,8 +327,7 @@ var FieldsSetting = function FieldsSetting(_ref) {
327
327
  style: {
328
328
  position: 'absolute',
329
329
  transform: 'none',
330
- right: 320,
331
- zIndex: 1001
330
+ right: 320
332
331
  }
333
332
  }, drawerType === 'single' ? /*#__PURE__*/_react.default.createElement(_fieldSetting.default, {
334
333
  key: fieldId,
@@ -7,7 +7,7 @@
7
7
  pointer-events: none;
8
8
  cursor: pointer;
9
9
  overflow: visible;
10
- z-index: 1001;
10
+ z-index: 11;
11
11
  }
12
12
 
13
13
  .selector-item {
@@ -142,7 +142,7 @@
142
142
  }
143
143
 
144
144
  .next-overlay-wrapper {
145
- z-index: 3000;
145
+ z-index: 30;
146
146
  display: flex;
147
147
  flex-direction: column;
148
148
  & > div > span {
@@ -28,7 +28,6 @@ var FunctionDesign = function FunctionDesign(_ref) {
28
28
  var ctx = (0, _ContextProvider.useContext)();
29
29
  (0, _react.useImperativeHandle)(apiRef, function () {
30
30
  return {
31
- open: true,
32
31
  doOpen: function doOpen() {
33
32
  ctx.componentMap.get(id).api.getSelfDom().closest('.ant-modal-root').style.display = 'block';
34
33
  },
@@ -55,8 +54,13 @@ var FunctionDesign = function FunctionDesign(_ref) {
55
54
  position: 'absolute'
56
55
  }
57
56
  }, props, {
58
- defaultOpen: true,
59
- $apiRef: apiRef
57
+ $apiRef: apiRef,
58
+ $designProps: {
59
+ closable: false,
60
+ maskClosable: false,
61
+ visible: true,
62
+ zIndex: 10
63
+ }
60
64
  }), children);
61
65
  };
62
66
  var _default = exports.default = FunctionDesign;
@@ -44,7 +44,8 @@ var LCDialog = function LCDialog(_ref) {
44
44
  footer = _ref.footer,
45
45
  btnGroup = _ref.btnGroup,
46
46
  advance = _ref.advance,
47
- $apiRef = _ref.$apiRef;
47
+ $apiRef = _ref.$apiRef,
48
+ $designProps = _ref.$designProps;
48
49
  var ctx = (0, _ContextProvider.useContext)();
49
50
  var apiRef = (0, _react.useRef)();
50
51
  var domRef = (0, _react.useRef)();
@@ -178,7 +179,7 @@ var LCDialog = function LCDialog(_ref) {
178
179
  return setOpen(false);
179
180
  },
180
181
  destroyOnClose: destroyOnClose
181
- }), /*#__PURE__*/_react.default.createElement("div", {
182
+ }, $designProps), /*#__PURE__*/_react.default.createElement("div", {
182
183
  style: {
183
184
  height: 0,
184
185
  width: 0,
@@ -115,11 +115,11 @@ var LCTree = function LCTree(_ref) {
115
115
  var handleSelect = (0, _ahooks.useMemoizedFn)(function (_selectedKeys, e) {
116
116
  if (cancelSelect || e.selected) {
117
117
  setSelectedKeys(_selectedKeys);
118
+ ctx.doAction(advance.events.onSelect, {
119
+ checkedKeys: _selectedKeys,
120
+ e: e
121
+ });
118
122
  }
119
- ctx.doAction(advance.events.onSelect, {
120
- checkedKeys: _selectedKeys,
121
- e: e
122
- });
123
123
  });
124
124
  var afterInit = (0, _ahooks.useMemoizedFn)(function (treeData, data) {
125
125
  var selected = !(0, _lodash.isNil)(defaultSelect) ? (0, _helper.executeCode)(ctx, defaultSelect, ['treeData'], treeData) : null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luck-design-biz/luckda",
3
- "version": "0.0.25-23",
3
+ "version": "0.0.25-24",
4
4
  "description": "前端配置管理中心业务组件库",
5
5
  "scripts": {
6
6
  "start": "cross-env NODE_OPTIONS=--max-old-space-size=10240 USER_RUNTIME=SITE RUNTIME=dev umi dev",