@gingkoo/pandora-metabase 1.0.115 → 1.0.116
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.
|
@@ -12,6 +12,7 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
|
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
14
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
15
16
|
require("./index.less");
|
|
16
17
|
var _formulaList = _interopRequireDefault(require("../formula-list"));
|
|
17
18
|
var _icons = require("../../icons");
|
|
@@ -30,7 +31,7 @@ var VisualBox = _styledComponents["default"].div.attrs({
|
|
|
30
31
|
className: 'visual-box'
|
|
31
32
|
})(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
32
33
|
var CaseEditor = _react["default"].forwardRef(function (props, ref) {
|
|
33
|
-
var _store$formulaTemplat,
|
|
34
|
+
var _store$formulaTemplat, _fun$args;
|
|
34
35
|
var store = (0, _useProvider.useStore)();
|
|
35
36
|
var value = props.value,
|
|
36
37
|
data = props.data,
|
|
@@ -50,6 +51,11 @@ var CaseEditor = _react["default"].forwardRef(function (props, ref) {
|
|
|
50
51
|
var formulaList = (0, _react.useMemo)(function () {
|
|
51
52
|
return (0, _utils2.getObjTem)(store.formulaTemplates);
|
|
52
53
|
}, [store.formulaTemplates]);
|
|
54
|
+
var currentFormulaKey = fun.id || fun.name;
|
|
55
|
+
var currentFormulaTemplate = (0, _react.useMemo)(function () {
|
|
56
|
+
return formulaList[currentFormulaKey];
|
|
57
|
+
}, [formulaList, currentFormulaKey]);
|
|
58
|
+
var effectiveArity = (currentFormulaTemplate === null || currentFormulaTemplate === void 0 ? void 0 : currentFormulaTemplate.arity) || fun.arity;
|
|
53
59
|
var _useState3 = (0, _react.useState)({
|
|
54
60
|
canAdd: true,
|
|
55
61
|
canDel: true
|
|
@@ -58,8 +64,23 @@ var CaseEditor = _react["default"].forwardRef(function (props, ref) {
|
|
|
58
64
|
formulaOpr = _useState4[0],
|
|
59
65
|
setFormulaOpr = _useState4[1];
|
|
60
66
|
(0, _react.useEffect)(function () {
|
|
61
|
-
setFormulaOpr((0, _utils2.getParamActions)(fun.args,
|
|
62
|
-
}, [fun]);
|
|
67
|
+
setFormulaOpr((0, _utils2.getParamActions)(fun.args, effectiveArity));
|
|
68
|
+
}, [fun.args, effectiveArity]);
|
|
69
|
+
(0, _react.useEffect)(function () {
|
|
70
|
+
if (!currentFormulaTemplate) return;
|
|
71
|
+
setFun(function (prev) {
|
|
72
|
+
var nextId = prev.id || currentFormulaKey;
|
|
73
|
+
var nextName = currentFormulaTemplate.name || prev.name;
|
|
74
|
+
if (prev.id === nextId && prev.name === nextName && (0, _isEqual["default"])(prev.arity, effectiveArity)) {
|
|
75
|
+
return prev;
|
|
76
|
+
}
|
|
77
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, prev), {}, {
|
|
78
|
+
id: nextId,
|
|
79
|
+
name: nextName,
|
|
80
|
+
arity: effectiveArity
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}, [currentFormulaKey, currentFormulaTemplate, effectiveArity]);
|
|
63
84
|
var _ref = (0, _react.useRef)(null);
|
|
64
85
|
// EXPRESSION = 'expression', // 表达式
|
|
65
86
|
// // FUNCTION = 'function', // 函数
|
|
@@ -83,6 +104,9 @@ var CaseEditor = _react["default"].forwardRef(function (props, ref) {
|
|
|
83
104
|
// 确定
|
|
84
105
|
var _onOk = function _onOk() {
|
|
85
106
|
typeof onOk === 'function' && (onOk === null || onOk === void 0 ? void 0 : onOk((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, fun), {}, {
|
|
107
|
+
arity: effectiveArity,
|
|
108
|
+
id: currentFormulaKey,
|
|
109
|
+
name: (currentFormulaTemplate === null || currentFormulaTemplate === void 0 ? void 0 : currentFormulaTemplate.name) || fun.name,
|
|
86
110
|
quotes: (0, _utils2.getQuotes)(fun, fun.args, formulaList)
|
|
87
111
|
})));
|
|
88
112
|
};
|
|
@@ -100,7 +124,7 @@ var CaseEditor = _react["default"].forwardRef(function (props, ref) {
|
|
|
100
124
|
};
|
|
101
125
|
var addParams = function addParams(index) {
|
|
102
126
|
var _args = (0, _cloneDeep["default"])(fun.args);
|
|
103
|
-
var tem = (0, _utils2.getTemArgs)(
|
|
127
|
+
var tem = (0, _utils2.getTemArgs)(currentFormulaTemplate === null || currentFormulaTemplate === void 0 ? void 0 : currentFormulaTemplate.args)[index + 1] || {
|
|
104
128
|
type: _types.AtomsTypeEnum.COLLECTION,
|
|
105
129
|
list: []
|
|
106
130
|
};
|
|
@@ -179,14 +203,14 @@ var CaseEditor = _react["default"].forwardRef(function (props, ref) {
|
|
|
179
203
|
color: '#949aab'
|
|
180
204
|
},
|
|
181
205
|
children: [(0, _jsxRuntime.jsxs)("p", {
|
|
182
|
-
children: ["\u63CF\u8FF0\uFF1A",
|
|
206
|
+
children: ["\u63CF\u8FF0\uFF1A", currentFormulaTemplate === null || currentFormulaTemplate === void 0 ? void 0 : currentFormulaTemplate.description]
|
|
183
207
|
}), (0, _jsxRuntime.jsxs)("p", {
|
|
184
|
-
children: ["\u6848\u4F8B\uFF1A",
|
|
208
|
+
children: ["\u6848\u4F8B\uFF1A", currentFormulaTemplate === null || currentFormulaTemplate === void 0 ? void 0 : currentFormulaTemplate.example]
|
|
185
209
|
})]
|
|
186
210
|
})]
|
|
187
211
|
}), fun === null || fun === void 0 || (_fun$args = fun.args) === null || _fun$args === void 0 ? void 0 : _fun$args.map(function (v, i) {
|
|
188
212
|
if (v.type === _types.AtomsTypeEnum.COLLECTION) {
|
|
189
|
-
var _store$preProps,
|
|
213
|
+
var _store$preProps, _currentFormulaTempla;
|
|
190
214
|
return (0, _jsxRuntime.jsxs)("div", {
|
|
191
215
|
className: 'Sqb-item-formula-args',
|
|
192
216
|
children: [(0, _jsxRuntime.jsxs)("div", {
|
|
@@ -200,7 +224,7 @@ var CaseEditor = _react["default"].forwardRef(function (props, ref) {
|
|
|
200
224
|
children: ["\u53C2\u6570", i + 1, ":"]
|
|
201
225
|
}), (0, _jsxRuntime.jsx)(_formulaList["default"], {
|
|
202
226
|
otherTypes: (_store$preProps = store.preProps) === null || _store$preProps === void 0 ? void 0 : _store$preProps.otherTypes,
|
|
203
|
-
check: (
|
|
227
|
+
check: (currentFormulaTemplate === null || currentFormulaTemplate === void 0 || (_currentFormulaTempla = currentFormulaTemplate.args) === null || _currentFormulaTempla === void 0 || (_currentFormulaTempla = _currentFormulaTempla[i]) === null || _currentFormulaTempla === void 0 ? void 0 : _currentFormulaTempla.check) || '',
|
|
204
228
|
value: v.list,
|
|
205
229
|
data: data,
|
|
206
230
|
ref: _ref,
|
|
@@ -5,6 +5,7 @@ var _templateObject;
|
|
|
5
5
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
6
|
import React, { useEffect, useState, useMemo, useRef } from 'react';
|
|
7
7
|
import cx from 'classnames';
|
|
8
|
+
import isEqual from 'lodash/isEqual';
|
|
8
9
|
import './index.less';
|
|
9
10
|
import FormulaList from '../formula-list';
|
|
10
11
|
import { AddIcon, CloseIcon } from '../../icons';
|
|
@@ -22,7 +23,7 @@ var VisualBox = Styled.div.attrs({
|
|
|
22
23
|
className: 'visual-box'
|
|
23
24
|
})(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
|
|
24
25
|
var CaseEditor = React.forwardRef(function (props, ref) {
|
|
25
|
-
var _store$formulaTemplat,
|
|
26
|
+
var _store$formulaTemplat, _fun$args;
|
|
26
27
|
var store = useStore();
|
|
27
28
|
var value = props.value,
|
|
28
29
|
data = props.data,
|
|
@@ -42,6 +43,11 @@ var CaseEditor = React.forwardRef(function (props, ref) {
|
|
|
42
43
|
var formulaList = useMemo(function () {
|
|
43
44
|
return getObjTem(store.formulaTemplates);
|
|
44
45
|
}, [store.formulaTemplates]);
|
|
46
|
+
var currentFormulaKey = fun.id || fun.name;
|
|
47
|
+
var currentFormulaTemplate = useMemo(function () {
|
|
48
|
+
return formulaList[currentFormulaKey];
|
|
49
|
+
}, [formulaList, currentFormulaKey]);
|
|
50
|
+
var effectiveArity = (currentFormulaTemplate === null || currentFormulaTemplate === void 0 ? void 0 : currentFormulaTemplate.arity) || fun.arity;
|
|
45
51
|
var _useState3 = useState({
|
|
46
52
|
canAdd: true,
|
|
47
53
|
canDel: true
|
|
@@ -50,8 +56,23 @@ var CaseEditor = React.forwardRef(function (props, ref) {
|
|
|
50
56
|
formulaOpr = _useState4[0],
|
|
51
57
|
setFormulaOpr = _useState4[1];
|
|
52
58
|
useEffect(function () {
|
|
53
|
-
setFormulaOpr(getParamActions(fun.args,
|
|
54
|
-
}, [fun]);
|
|
59
|
+
setFormulaOpr(getParamActions(fun.args, effectiveArity));
|
|
60
|
+
}, [fun.args, effectiveArity]);
|
|
61
|
+
useEffect(function () {
|
|
62
|
+
if (!currentFormulaTemplate) return;
|
|
63
|
+
setFun(function (prev) {
|
|
64
|
+
var nextId = prev.id || currentFormulaKey;
|
|
65
|
+
var nextName = currentFormulaTemplate.name || prev.name;
|
|
66
|
+
if (prev.id === nextId && prev.name === nextName && isEqual(prev.arity, effectiveArity)) {
|
|
67
|
+
return prev;
|
|
68
|
+
}
|
|
69
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
70
|
+
id: nextId,
|
|
71
|
+
name: nextName,
|
|
72
|
+
arity: effectiveArity
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}, [currentFormulaKey, currentFormulaTemplate, effectiveArity]);
|
|
55
76
|
var _ref = useRef(null);
|
|
56
77
|
// EXPRESSION = 'expression', // 表达式
|
|
57
78
|
// // FUNCTION = 'function', // 函数
|
|
@@ -75,6 +96,9 @@ var CaseEditor = React.forwardRef(function (props, ref) {
|
|
|
75
96
|
// 确定
|
|
76
97
|
var _onOk = function _onOk() {
|
|
77
98
|
typeof onOk === 'function' && (onOk === null || onOk === void 0 ? void 0 : onOk(_objectSpread(_objectSpread({}, fun), {}, {
|
|
99
|
+
arity: effectiveArity,
|
|
100
|
+
id: currentFormulaKey,
|
|
101
|
+
name: (currentFormulaTemplate === null || currentFormulaTemplate === void 0 ? void 0 : currentFormulaTemplate.name) || fun.name,
|
|
78
102
|
quotes: getQuotes(fun, fun.args, formulaList)
|
|
79
103
|
})));
|
|
80
104
|
};
|
|
@@ -92,7 +116,7 @@ var CaseEditor = React.forwardRef(function (props, ref) {
|
|
|
92
116
|
};
|
|
93
117
|
var addParams = function addParams(index) {
|
|
94
118
|
var _args = cloneDeep(fun.args);
|
|
95
|
-
var tem = getTemArgs(
|
|
119
|
+
var tem = getTemArgs(currentFormulaTemplate === null || currentFormulaTemplate === void 0 ? void 0 : currentFormulaTemplate.args)[index + 1] || {
|
|
96
120
|
type: AtomsTypeEnum.COLLECTION,
|
|
97
121
|
list: []
|
|
98
122
|
};
|
|
@@ -171,14 +195,14 @@ var CaseEditor = React.forwardRef(function (props, ref) {
|
|
|
171
195
|
color: '#949aab'
|
|
172
196
|
},
|
|
173
197
|
children: [_jsxs("p", {
|
|
174
|
-
children: ["\u63CF\u8FF0\uFF1A",
|
|
198
|
+
children: ["\u63CF\u8FF0\uFF1A", currentFormulaTemplate === null || currentFormulaTemplate === void 0 ? void 0 : currentFormulaTemplate.description]
|
|
175
199
|
}), _jsxs("p", {
|
|
176
|
-
children: ["\u6848\u4F8B\uFF1A",
|
|
200
|
+
children: ["\u6848\u4F8B\uFF1A", currentFormulaTemplate === null || currentFormulaTemplate === void 0 ? void 0 : currentFormulaTemplate.example]
|
|
177
201
|
})]
|
|
178
202
|
})]
|
|
179
203
|
}), fun === null || fun === void 0 || (_fun$args = fun.args) === null || _fun$args === void 0 ? void 0 : _fun$args.map(function (v, i) {
|
|
180
204
|
if (v.type === AtomsTypeEnum.COLLECTION) {
|
|
181
|
-
var _store$preProps,
|
|
205
|
+
var _store$preProps, _currentFormulaTempla;
|
|
182
206
|
return _jsxs("div", {
|
|
183
207
|
className: 'Sqb-item-formula-args',
|
|
184
208
|
children: [_jsxs("div", {
|
|
@@ -192,7 +216,7 @@ var CaseEditor = React.forwardRef(function (props, ref) {
|
|
|
192
216
|
children: ["\u53C2\u6570", i + 1, ":"]
|
|
193
217
|
}), _jsx(FormulaList, {
|
|
194
218
|
otherTypes: (_store$preProps = store.preProps) === null || _store$preProps === void 0 ? void 0 : _store$preProps.otherTypes,
|
|
195
|
-
check: (
|
|
219
|
+
check: (currentFormulaTemplate === null || currentFormulaTemplate === void 0 || (_currentFormulaTempla = currentFormulaTemplate.args) === null || _currentFormulaTempla === void 0 || (_currentFormulaTempla = _currentFormulaTempla[i]) === null || _currentFormulaTempla === void 0 ? void 0 : _currentFormulaTempla.check) || '',
|
|
196
220
|
value: v.list,
|
|
197
221
|
data: data,
|
|
198
222
|
ref: _ref,
|