@luck-design-biz/luckda 1.0.2-2 → 1.0.2-4
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.
- package/es/lowcode/constants/event-topics.js +2 -0
- package/es/lowcode/engine/meta/box.props.default.json +1 -1
- package/es/lowcode/engine/meta/box.props.json +1 -1
- package/es/lowcode/engine/meta/fielddatadic.props.default.json +16 -0
- package/es/lowcode/engine/meta/fielddatadic.props.json +73 -0
- package/es/lowcode/engine/meta/layout.props.default.json +1 -1
- package/es/lowcode/engine/meta/layout.props.json +1 -1
- package/es/lowcode/painter/DesignOperator.js +8 -3
- package/es/lowcode/painter/DesignToolbar.js +27 -28
- package/es/lowcode/painter/Panel.js +1 -1
- package/es/lowcode/painter/components/DragDrop/DragDropContext.js +10 -3
- package/es/lowcode/painter/components/TreeEditor.js +76 -8
- package/es/lowcode/painter/components/code-editor/BaseEditor.js +10 -6
- package/es/lowcode/painter/panel-section/JSEditor.js +55 -33
- package/es/lowcode/painter/panel-section/StylePanel/MainPanel.js +37 -26
- package/es/lowcode/painter/style/components.less +1 -1
- package/es/lowcode/view/{errorBoundary.js → ErrorBoundary.js} +24 -6
- package/es/lowcode/view/Page.js +3 -3
- package/es/lowcode/view/lc-components/Box/FunctionDesign.js +4 -2
- package/es/lowcode/view/lc-components/Box/index.less +2 -2
- package/es/lowcode/view/lc-components/Box/meta.json +1 -1
- package/es/lowcode/view/lc-components/JSX/RuntimeComp.js +32 -16
- package/es/lowcode/view/lc-components/Layout/meta.json +1 -1
- package/lib/lowcode/constants/event-topics.js +3 -1
- package/lib/lowcode/engine/meta/box.props.default.json +1 -1
- package/lib/lowcode/engine/meta/box.props.json +1 -1
- package/lib/lowcode/engine/meta/fielddatadic.props.default.json +16 -0
- package/lib/lowcode/engine/meta/fielddatadic.props.json +73 -0
- package/lib/lowcode/engine/meta/layout.props.default.json +1 -1
- package/lib/lowcode/engine/meta/layout.props.json +1 -1
- package/lib/lowcode/painter/DesignOperator.js +8 -3
- package/lib/lowcode/painter/DesignToolbar.js +27 -28
- package/lib/lowcode/painter/Panel.js +1 -1
- package/lib/lowcode/painter/components/DragDrop/DragDropContext.js +10 -3
- package/lib/lowcode/painter/components/TreeEditor.js +76 -8
- package/lib/lowcode/painter/components/code-editor/BaseEditor.js +10 -6
- package/lib/lowcode/painter/panel-section/JSEditor.js +54 -32
- package/lib/lowcode/painter/panel-section/StylePanel/MainPanel.js +37 -26
- package/lib/lowcode/painter/style/components.less +1 -1
- package/lib/lowcode/view/{errorBoundary.js → ErrorBoundary.js} +23 -5
- package/lib/lowcode/view/Page.js +4 -4
- package/lib/lowcode/view/lc-components/Box/FunctionDesign.js +4 -2
- package/lib/lowcode/view/lc-components/Box/index.less +2 -2
- package/lib/lowcode/view/lc-components/Box/meta.json +1 -1
- package/lib/lowcode/view/lc-components/JSX/RuntimeComp.js +31 -16
- package/lib/lowcode/view/lc-components/Layout/meta.json +1 -1
- package/package.json +1 -1
|
@@ -1,57 +1,79 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _ahooks = require("ahooks");
|
|
11
12
|
var _antd = require("luck-design/antd");
|
|
12
|
-
var
|
|
13
|
+
var _luckDesign = require("luck-design");
|
|
13
14
|
var _utils = require("@luck-design-biz/base/utils");
|
|
14
|
-
var
|
|
15
|
-
var _FullScreenEditor = _interopRequireDefault(require("../components/code-editor/FullScreenEditor"));
|
|
15
|
+
var _RuntimeComp = _interopRequireDefault(require("../../view/lc-components/JSX/RuntimeComp"));
|
|
16
16
|
var _JSEditor2 = _interopRequireDefault(require("../components/code-editor/JSEditor"));
|
|
17
17
|
var _JSEditor = function _JSEditor(_ref) {
|
|
18
18
|
var defaultValue = _ref.defaultValue,
|
|
19
19
|
defaultCode = _ref.defaultCode,
|
|
20
20
|
onChange = _ref.onChange,
|
|
21
|
-
mustConfirm = _ref.mustConfirm,
|
|
22
21
|
children = _ref.children;
|
|
23
22
|
var editorRef = (0, _react.useRef)();
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
});
|
|
33
|
-
return /*#__PURE__*/_react.default.createElement(_PopConfirm.default, {
|
|
34
|
-
placement: "left",
|
|
35
|
-
title: /*#__PURE__*/_react.default.createElement(_FullScreenEditor.default, {
|
|
36
|
-
ref: editorRef,
|
|
37
|
-
EditorComponent: _JSEditor2.default,
|
|
38
|
-
width: "600px",
|
|
39
|
-
height: "400px",
|
|
40
|
-
onChange: handleCodeChange.current,
|
|
41
|
-
onLoad: handleEditorLoad
|
|
23
|
+
var _useState = (0, _react.useState)(defaultValue || defaultCode),
|
|
24
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
25
|
+
code = _useState2[0],
|
|
26
|
+
setCode = _useState2[1];
|
|
27
|
+
var _useDebounceFn = (0, _ahooks.useDebounceFn)(function (_code) {
|
|
28
|
+
setCode(_code);
|
|
29
|
+
}, {
|
|
30
|
+
wait: 500
|
|
42
31
|
}),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
32
|
+
run = _useDebounceFn.run;
|
|
33
|
+
var _useBoolean = (0, _ahooks.useBoolean)(false),
|
|
34
|
+
_useBoolean2 = (0, _slicedToArray2.default)(_useBoolean, 2),
|
|
35
|
+
visible = _useBoolean2[0],
|
|
36
|
+
_useBoolean2$ = _useBoolean2[1],
|
|
37
|
+
show = _useBoolean2$.setTrue,
|
|
38
|
+
hidden = _useBoolean2$.setFalse;
|
|
39
|
+
var _useBoolean3 = (0, _ahooks.useBoolean)(false),
|
|
40
|
+
_useBoolean4 = (0, _slicedToArray2.default)(_useBoolean3, 2),
|
|
41
|
+
hasError = _useBoolean4[0],
|
|
42
|
+
_useBoolean4$ = _useBoolean4[1],
|
|
43
|
+
hasErrorOn = _useBoolean4$.setTrue,
|
|
44
|
+
hasErrorOff = _useBoolean4$.setFalse;
|
|
45
|
+
var handleErrorCatch = (0, _ahooks.useMemoizedFn)(function (error) {
|
|
46
|
+
console.log(12121212, error);
|
|
47
|
+
});
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children || /*#__PURE__*/_react.default.createElement(_antd.Button, {
|
|
50
49
|
block: true,
|
|
51
|
-
size: "small"
|
|
50
|
+
size: "small",
|
|
51
|
+
onClick: show
|
|
52
52
|
}, (0, _utils.formatMessage)({
|
|
53
53
|
id: 'luckda.lowcode.painter.panel-section.style-panel.sourceedit',
|
|
54
54
|
label: '源码编辑'
|
|
55
|
-
}))
|
|
55
|
+
})), /*#__PURE__*/_react.default.createElement(_luckDesign.LuckModal, {
|
|
56
|
+
title: (0, _utils.formatMessage)({
|
|
57
|
+
id: 'luckda.lowcode.painter.panel-section.style-panel.sourceedit',
|
|
58
|
+
label: '源码编辑'
|
|
59
|
+
}),
|
|
60
|
+
width: "80vw",
|
|
61
|
+
height: "80vh",
|
|
62
|
+
fullScreen: true,
|
|
63
|
+
mask: false,
|
|
64
|
+
maskClosable: false,
|
|
65
|
+
closable: false,
|
|
66
|
+
visible: visible,
|
|
67
|
+
onClose: hidden
|
|
68
|
+
}, /*#__PURE__*/_react.default.createElement(_luckDesign.SplitPane, {
|
|
69
|
+
split: "vertical"
|
|
70
|
+
}, /*#__PURE__*/_react.default.createElement(_JSEditor2.default, {
|
|
71
|
+
ref: editorRef,
|
|
72
|
+
onChange: run
|
|
73
|
+
}, defaultValue || defaultCode), /*#__PURE__*/_react.default.createElement(_luckDesign.SplitPane.Pane, {
|
|
74
|
+
minSize: "400px"
|
|
75
|
+
}, /*#__PURE__*/_react.default.createElement(_RuntimeComp.default, {
|
|
76
|
+
onErrorCatch: handleErrorCatch
|
|
77
|
+
}, code)))));
|
|
56
78
|
};
|
|
57
79
|
var _default = exports.default = _JSEditor;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _utils = require("@luck-design-biz/base/utils");
|
|
12
|
+
var _ahooks = require("ahooks");
|
|
11
13
|
var _antd = require("luck-design/antd");
|
|
12
14
|
var _Collapse = _interopRequireDefault(require("../../components/Collapse"));
|
|
13
|
-
var _PopConfirm = _interopRequireDefault(require("../../components/PopConfirm"));
|
|
14
15
|
var _CssEditor = _interopRequireDefault(require("../../components/code-editor/CssEditor"));
|
|
15
|
-
var _FullScreenEditor = _interopRequireDefault(require("../../components/code-editor/FullScreenEditor"));
|
|
16
16
|
var _stylePanel = _interopRequireDefault(require("../../style/style-panel.less"));
|
|
17
17
|
var _StyleContext = require("./StyleContext");
|
|
18
18
|
var _WidthHeight = _interopRequireDefault(require("./WidthHeight"));
|
|
@@ -26,6 +26,7 @@ var _BorderRadius = _interopRequireDefault(require("./BorderRadius"));
|
|
|
26
26
|
var _Shadow = _interopRequireDefault(require("./Shadow"));
|
|
27
27
|
var _Opacity = _interopRequireDefault(require("./Opacity"));
|
|
28
28
|
var _Pointer = _interopRequireDefault(require("./Pointer"));
|
|
29
|
+
var _luckDesign = require("luck-design");
|
|
29
30
|
/**
|
|
30
31
|
* 主样式面板
|
|
31
32
|
*/
|
|
@@ -33,21 +34,20 @@ var MainPanel = function MainPanel() {
|
|
|
33
34
|
var style = (0, _StyleContext.useStyle)(true);
|
|
34
35
|
var dispatch = (0, _StyleContext.useStyleDispatch)();
|
|
35
36
|
var editorRef = (0, _StyleContext.useEditor)();
|
|
37
|
+
var _useState = (0, _react.useState)(false),
|
|
38
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
39
|
+
show = _useState2[0],
|
|
40
|
+
setShow = _useState2[1];
|
|
41
|
+
var lasestStyle = (0, _ahooks.useLatest)(style);
|
|
36
42
|
var handleCodeChange = (0, _react.useCallback)(function (code) {
|
|
37
43
|
dispatch({
|
|
38
44
|
type: 'code',
|
|
39
45
|
payload: code
|
|
40
46
|
});
|
|
47
|
+
// editorRef.current.editor.setValue(code)
|
|
41
48
|
}, []);
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
type: 'code',
|
|
45
|
-
payload: code
|
|
46
|
-
});
|
|
47
|
-
editorRef.current.editor.setValue(code);
|
|
48
|
-
}, []);
|
|
49
|
-
var handleEditorLoad = (0, _react.useCallback)(function () {
|
|
50
|
-
(0, _StyleContext.styleToEditor)(style).then(function (css) {
|
|
49
|
+
var handleOnload = (0, _react.useCallback)(function () {
|
|
50
|
+
(0, _StyleContext.styleToEditor)(lasestStyle.current).then(function (css) {
|
|
51
51
|
editorRef.current.editor.setValue(css);
|
|
52
52
|
});
|
|
53
53
|
}, []);
|
|
@@ -60,24 +60,35 @@ var MainPanel = function MainPanel() {
|
|
|
60
60
|
})
|
|
61
61
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
62
62
|
className: _stylePanel.default['style-editor']
|
|
63
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
}, /*#__PURE__*/_react.default.createElement(_luckDesign.LuckModal, {
|
|
64
|
+
title: (0, _utils.formatMessage)({
|
|
65
|
+
id: 'luckda.lowcode.painter.panel-section.style-panel.sourceedit',
|
|
66
|
+
label: '源码编辑'
|
|
67
|
+
}),
|
|
68
|
+
visible: show,
|
|
69
|
+
fullScreen: true,
|
|
70
|
+
mask: false,
|
|
71
|
+
footer: null,
|
|
72
|
+
maskClosable: false,
|
|
73
|
+
onClose: function onClose() {
|
|
74
|
+
setShow(false);
|
|
75
|
+
}
|
|
76
|
+
}, /*#__PURE__*/_react.default.createElement(_CssEditor.default, {
|
|
77
|
+
ref: editorRef,
|
|
78
|
+
width: "100%",
|
|
79
|
+
height: "100%",
|
|
80
|
+
onChange: handleCodeChange,
|
|
81
|
+
onLoad: handleOnload
|
|
82
|
+
})), /*#__PURE__*/_react.default.createElement(_antd.Button, {
|
|
75
83
|
type: "primary",
|
|
76
|
-
size: "small"
|
|
84
|
+
size: "small",
|
|
85
|
+
onClick: function onClick() {
|
|
86
|
+
setShow(true);
|
|
87
|
+
}
|
|
77
88
|
}, (0, _utils.formatMessage)({
|
|
78
89
|
id: 'luckda.lowcode.painter.panel-section.style-panel.sourceedit',
|
|
79
90
|
label: '源码编辑'
|
|
80
|
-
})))
|
|
91
|
+
}))), /*#__PURE__*/_react.default.createElement(_WidthHeight.default, {
|
|
81
92
|
field: "width",
|
|
82
93
|
label: (0, _utils.formatMessage)({
|
|
83
94
|
id: 'luckda.lowcode.painter.panel-section.style-panel.width',
|
|
@@ -11,8 +11,13 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
11
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
12
|
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
13
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
14
|
-
var
|
|
15
|
-
|
|
14
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
|
+
var Wrapper = _styledComponents.default.div.withConfig({
|
|
16
|
+
displayName: "Wrapper",
|
|
17
|
+
componentId: "luckda-6530__sc-1ge5tx6-0"
|
|
18
|
+
})(["width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;"]);
|
|
19
|
+
var ErrorBoundary = /*#__PURE__*/function (_PureComponent) {
|
|
20
|
+
(0, _inherits2.default)(ErrorBoundary, _PureComponent);
|
|
16
21
|
var _super = (0, _createSuper2.default)(ErrorBoundary);
|
|
17
22
|
function ErrorBoundary(props) {
|
|
18
23
|
var _this;
|
|
@@ -26,11 +31,24 @@ var ErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
|
26
31
|
return _this;
|
|
27
32
|
}
|
|
28
33
|
(0, _createClass2.default)(ErrorBoundary, [{
|
|
34
|
+
key: "componentDidUpdate",
|
|
35
|
+
value: function componentDidUpdate(prevProps) {
|
|
36
|
+
if (this.props.children !== prevProps.children && this.state.hasError) {
|
|
37
|
+
// 重置 hasError 为 false 以便重新渲染子组件
|
|
38
|
+
this.setState({
|
|
39
|
+
hasError: false,
|
|
40
|
+
error: '',
|
|
41
|
+
errorInfo: ''
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}, {
|
|
29
46
|
key: "componentDidCatch",
|
|
30
47
|
value: function componentDidCatch(error, errorInfo) {
|
|
48
|
+
var _this$props$onErrorCa, _this$props;
|
|
31
49
|
// 在此处记录错误信息
|
|
32
50
|
console.error(error);
|
|
33
|
-
this.props.
|
|
51
|
+
(_this$props$onErrorCa = (_this$props = this.props).onErrorCatch) === null || _this$props$onErrorCa === void 0 || _this$props$onErrorCa.call(_this$props, error, errorInfo);
|
|
34
52
|
this.setState({
|
|
35
53
|
hasError: true,
|
|
36
54
|
error: error,
|
|
@@ -42,7 +60,7 @@ var ErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
|
42
60
|
value: function render() {
|
|
43
61
|
if (this.state.hasError) {
|
|
44
62
|
// 如果有错误,显示备用 UI
|
|
45
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
63
|
+
return /*#__PURE__*/_react.default.createElement(Wrapper, null, /*#__PURE__*/_react.default.createElement("h3", {
|
|
46
64
|
style: {
|
|
47
65
|
whiteSpace: 'pre-line',
|
|
48
66
|
color: 'var(--luck-color-danger)',
|
|
@@ -65,5 +83,5 @@ var ErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
|
65
83
|
}
|
|
66
84
|
}]);
|
|
67
85
|
return ErrorBoundary;
|
|
68
|
-
}(_react.
|
|
86
|
+
}(_react.PureComponent);
|
|
69
87
|
var _default = exports.default = ErrorBoundary;
|
package/lib/lowcode/view/Page.js
CHANGED
|
@@ -21,7 +21,7 @@ var _Wrapper = _interopRequireDefault(require("./lc-components/Wrapper"));
|
|
|
21
21
|
var _Canvas = _interopRequireDefault(require("./Canvas"));
|
|
22
22
|
var _constants = require("../constants");
|
|
23
23
|
var _useCombinedRefs = _interopRequireDefault(require("../engine/tools/useCombinedRefs"));
|
|
24
|
-
var
|
|
24
|
+
var _ErrorBoundary = _interopRequireDefault(require("./ErrorBoundary"));
|
|
25
25
|
var _page = _interopRequireDefault(require("./style/page.less"));
|
|
26
26
|
var _excluded = ["className"];
|
|
27
27
|
var LCPage = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
@@ -46,11 +46,11 @@ var LCPage = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
46
46
|
var getTargetDom = (0, _ahooks.useMemoizedFn)(function () {
|
|
47
47
|
return _rootRef.current;
|
|
48
48
|
});
|
|
49
|
-
var
|
|
49
|
+
var handleErrorCatch = (0, _ahooks.useMemoizedFn)(function () {
|
|
50
50
|
ctx.$publisher(ctx.topics.COMPONENT_ACTIVE, null);
|
|
51
51
|
});
|
|
52
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
53
|
-
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, {
|
|
53
|
+
onErrorCatch: handleErrorCatch
|
|
54
54
|
}, /*#__PURE__*/_react.default.createElement(_Wrapper.default, {
|
|
55
55
|
id: _constants.LC_BUILDIN_UNIT_KEY.PAGE_ROOT,
|
|
56
56
|
getTargetDom: getTargetDom
|
|
@@ -24,10 +24,12 @@ var FunctionDesign = function FunctionDesign(_ref) {
|
|
|
24
24
|
return !children || _react.default.Children.count(children) === 0;
|
|
25
25
|
}, [children]);
|
|
26
26
|
return /*#__PURE__*/_react.default.createElement(_index.default, (0, _extends2.default)({
|
|
27
|
-
className: (0, _classnames.default)(_index2.default['lc-component-box-design'], (0, _defineProperty2.default)(
|
|
27
|
+
className: (0, _classnames.default)(_index2.default['lc-component-box-design'], (0, _defineProperty2.default)({}, className, !!className)),
|
|
28
28
|
style: (0, _objectSpread2.default)({
|
|
29
29
|
minHeight: 60
|
|
30
30
|
}, style)
|
|
31
|
-
}, props), isEmpty ?
|
|
31
|
+
}, props), isEmpty ? /*#__PURE__*/_react.default.createElement("div", {
|
|
32
|
+
className: _index2.default.placeholder
|
|
33
|
+
}, "\u70B9\u51FB\u7EC4\u4EF6\u5E93\u7684\u7EC4\u4EF6\u6216\u62D6\u62FD\u7EC4\u4EF6\u5230\u8FD9\u91CC") : children);
|
|
32
34
|
};
|
|
33
35
|
var _default = exports.default = FunctionDesign;
|
|
@@ -14,10 +14,13 @@ var Babel = _interopRequireWildcard(require("@babel/standalone"));
|
|
|
14
14
|
var LuckAntd = _interopRequireWildcard(require("luck-design/antd"));
|
|
15
15
|
var LuckDesign = _interopRequireWildcard(require("luck-design"));
|
|
16
16
|
var AHooks = _interopRequireWildcard(require("ahooks"));
|
|
17
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
17
18
|
var _lodash = require("lodash");
|
|
18
19
|
var _ContextProvider = require("../../../engine/provider/ContextProvider");
|
|
19
20
|
var _helper = require("../../../engine/tools/helper");
|
|
20
|
-
var
|
|
21
|
+
var _ErrorBoundary = _interopRequireDefault(require("../../ErrorBoundary"));
|
|
22
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
var _excluded = ["children", "onErrorCatch"];
|
|
21
24
|
/**
|
|
22
25
|
* 实时代码渲染组件
|
|
23
26
|
* todo:沙箱上下文的集成
|
|
@@ -25,27 +28,39 @@ var _excluded = ["children"];
|
|
|
25
28
|
*/
|
|
26
29
|
var RuntimeCom = function RuntimeCom(_ref) {
|
|
27
30
|
var children = _ref.children,
|
|
31
|
+
onErrorCatch = _ref.onErrorCatch,
|
|
28
32
|
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
29
33
|
var ctx = (0, _ContextProvider.useContext)();
|
|
30
34
|
var Component = AHooks.useCreation(function () {
|
|
31
35
|
var code = _react.default.Children.toArray(children).join('').trim();
|
|
32
36
|
if (!code) return _react.Fragment;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
try {
|
|
38
|
+
// 使用Babel转换代码
|
|
39
|
+
var transformedCode = Babel.transform(code, {
|
|
40
|
+
presets: ['react']
|
|
41
|
+
}).code;
|
|
42
|
+
var functionNameMatch = transformedCode.match(/function\s+([^\s(]+)/);
|
|
43
|
+
if (functionNameMatch && functionNameMatch.length > 1) {
|
|
44
|
+
var functionName = functionNameMatch[1];
|
|
45
|
+
var argsName = (0, _lodash.keys)(rest);
|
|
46
|
+
var _args = argsName.map(function (n) {
|
|
47
|
+
return rest[n];
|
|
48
|
+
});
|
|
49
|
+
return _helper.executeCode.apply(void 0, [ctx, "function() {".concat(transformedCode, "; return ").concat(functionName, ";}"), ['React', 'Antd', 'Luckd', 'styled', 'libs'].concat((0, _toConsumableArray2.default)(argsName)), _react.default, LuckAntd, LuckDesign, _styledComponents.default, (0, _objectSpread2.default)({}, AHooks)].concat((0, _toConsumableArray2.default)(_args)));
|
|
50
|
+
}
|
|
51
|
+
return _react.Fragment;
|
|
52
|
+
} catch (e) {
|
|
53
|
+
return function () {
|
|
54
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
55
|
+
style: {
|
|
56
|
+
color: 'red'
|
|
57
|
+
}
|
|
58
|
+
}, e.message);
|
|
59
|
+
};
|
|
46
60
|
}
|
|
47
|
-
return _react.Fragment;
|
|
48
61
|
}, [children]);
|
|
49
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
62
|
+
return /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, {
|
|
63
|
+
onErrorCatch: onErrorCatch
|
|
64
|
+
}, /*#__PURE__*/_react.default.createElement(Component, null));
|
|
50
65
|
};
|
|
51
66
|
var _default = exports.default = RuntimeCom;
|