@gingkoo/pandora-metabase 1.0.23 → 1.0.25
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/lib/cjs/common/SplitView/index.js +12 -11
- package/lib/cjs/components/dialog/custom-column/expression-editor.js +2 -1
- package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +2 -1
- package/lib/cjs/components/dialog/custom-editor/index.js +2 -1
- package/lib/cjs/components/dialog/expression/index.js +13 -12
- package/lib/cjs/components/dialog/formula/index.d.ts +10 -0
- package/lib/cjs/components/dialog/formula/index.js +242 -0
- package/lib/cjs/components/dialog/formula/index.less +81 -0
- package/lib/cjs/components/dialog/formula/utils.d.ts +7 -0
- package/lib/cjs/components/dialog/formula/utils.js +45 -0
- package/lib/cjs/components/dialog/formula-list/index.d.ts +3 -1
- package/lib/cjs/components/dialog/formula-list/index.js +107 -43
- package/lib/cjs/components/dialog/formula-list/utils.d.ts +14 -1
- package/lib/cjs/components/dialog/formula-list/utils.js +159 -2
- package/lib/cjs/components/dialog/index.d.ts +1 -0
- package/lib/cjs/components/dialog/index.js +9 -2
- package/lib/cjs/components/dialog/select-column/index.js +6 -13
- package/lib/cjs/components/dialog/select-column-multiple/index.js +0 -1
- package/lib/cjs/components/dialog/select-table/index.js +7 -7
- package/lib/cjs/components/icons.js +36 -36
- package/lib/cjs/components/metabase/index.js +6 -6
- package/lib/cjs/components/metabase/index.less +10 -0
- package/lib/cjs/components/modules/components/Wrapper.js +6 -6
- package/lib/cjs/components/modules/custom-column.js +4 -4
- package/lib/cjs/components/modules/enum/filter-enum.d.ts +7 -2
- package/lib/cjs/components/modules/enum/filter-enum.js +8 -2
- package/lib/cjs/components/modules/join-data.js +78 -36
- package/lib/cjs/components/modules/summarize/group-by.js +6 -13
- package/lib/cjs/components/modules/summarize/select-index.js +6 -13
- package/lib/cjs/components/modules/table-data.js +9 -16
- package/lib/cjs/components/popup.js +2 -1
- package/lib/cjs/hooks/patch.js +106 -76
- package/lib/cjs/hooks/use-state.js +100 -65
- package/lib/cjs/index.js +5 -2
- package/lib/cjs/locale/en.js +6 -3
- package/lib/cjs/locale/zh.js +6 -3
- package/lib/cjs/store/helper.d.ts +1 -2
- package/lib/cjs/store/helper.js +1 -76
- package/lib/cjs/store/types.d.ts +36 -2
- package/lib/cjs/store/types.js +3 -0
- package/lib/cjs/types.d.ts +2 -1
- package/lib/cjs/utils.d.ts +1 -0
- package/lib/cjs/utils.js +16 -2
- package/lib/es/common/SplitView/index.js +10 -10
- package/lib/es/components/dialog/custom-editor/index.js +2 -1
- package/lib/es/components/dialog/expression/index.js +11 -11
- package/lib/es/components/dialog/formula/index.d.ts +10 -0
- package/lib/es/components/dialog/formula/index.js +236 -0
- package/lib/es/components/dialog/formula/index.less +81 -0
- package/lib/es/components/dialog/formula/utils.d.ts +7 -0
- package/lib/es/components/dialog/formula/utils.js +37 -0
- package/lib/es/components/dialog/formula-list/index.d.ts +3 -1
- package/lib/es/components/dialog/formula-list/index.js +104 -40
- package/lib/es/components/dialog/formula-list/utils.d.ts +14 -1
- package/lib/es/components/dialog/formula-list/utils.js +160 -2
- package/lib/es/components/dialog/index.d.ts +1 -0
- package/lib/es/components/dialog/index.js +2 -1
- package/lib/es/components/dialog/select-column/index.js +7 -14
- package/lib/es/components/dialog/select-column-multiple/index.js +0 -1
- package/lib/es/components/dialog/select-table/index.js +7 -7
- package/lib/es/components/icons.js +36 -36
- package/lib/es/components/metabase/index.js +6 -6
- package/lib/es/components/metabase/index.less +10 -0
- package/lib/es/components/modules/components/Wrapper.js +6 -6
- package/lib/es/components/modules/custom-column.js +4 -4
- package/lib/es/components/modules/enum/filter-enum.d.ts +7 -2
- package/lib/es/components/modules/enum/filter-enum.js +8 -2
- package/lib/es/components/modules/join-data.js +78 -36
- package/lib/es/components/modules/summarize/group-by.js +7 -14
- package/lib/es/components/modules/summarize/select-index.js +7 -14
- package/lib/es/components/modules/table-data.js +10 -17
- package/lib/es/hooks/patch.js +105 -75
- package/lib/es/hooks/use-state.js +101 -66
- package/lib/es/index.js +3 -1
- package/lib/es/locale/en.js +6 -3
- package/lib/es/locale/zh.js +6 -3
- package/lib/es/store/helper.d.ts +1 -2
- package/lib/es/store/helper.js +0 -75
- package/lib/es/store/types.d.ts +36 -2
- package/lib/es/store/types.js +3 -0
- package/lib/es/types.d.ts +2 -1
- package/lib/es/types.js +18 -1
- package/lib/es/utils.d.ts +1 -0
- package/lib/es/utils.js +13 -1
- package/package.json +2 -2
- package/lib/cjs/components/dialog/formula-list/enum.d.ts +0 -39
- package/lib/cjs/components/dialog/formula-list/enum.js +0 -123
- package/lib/es/components/dialog/formula-list/enum.d.ts +0 -39
- package/lib/es/components/dialog/formula-list/enum.js +0 -117
|
@@ -15,7 +15,8 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
|
15
15
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
16
16
|
var _winsize = require("../../hooks/winsize");
|
|
17
17
|
var _templateObject;
|
|
18
|
-
function
|
|
18
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
19
20
|
var StyledSashHorizontal = _styledComponents["default"].div.attrs({
|
|
20
21
|
className: 'view-sash horizontal'
|
|
21
22
|
})(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n top: ", ";\n"])), function (props) {
|
|
@@ -60,17 +61,17 @@ var SplitView = _react["default"].forwardRef(function (props, ref) {
|
|
|
60
61
|
hMaximum = _useState8[0],
|
|
61
62
|
setHMaximum = _useState8[1];
|
|
62
63
|
var _useState9 = (0, _react.useState)(false),
|
|
63
|
-
|
|
64
|
-
vMinimum =
|
|
65
|
-
setVMinimum =
|
|
66
|
-
var
|
|
67
|
-
_useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
|
|
68
|
-
vMaximum = _useState10[0],
|
|
69
|
-
setVMaximum = _useState10[1];
|
|
70
|
-
var _useState11 = (0, _react.useState)(0),
|
|
64
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
65
|
+
vMinimum = _useState10[0],
|
|
66
|
+
setVMinimum = _useState10[1];
|
|
67
|
+
var _useState11 = (0, _react.useState)(false),
|
|
71
68
|
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
vMaximum = _useState12[0],
|
|
70
|
+
setVMaximum = _useState12[1];
|
|
71
|
+
var _useState13 = (0, _react.useState)(0),
|
|
72
|
+
_useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
|
|
73
|
+
bottomHeight = _useState14[0],
|
|
74
|
+
setBottomHeight = _useState14[1];
|
|
74
75
|
_react["default"].useImperativeHandle(ref, function () {
|
|
75
76
|
return {
|
|
76
77
|
open: function open() {
|
|
@@ -18,7 +18,8 @@ var _popup = _interopRequireDefault(require("../../popup"));
|
|
|
18
18
|
var _selectList = _interopRequireDefault(require("./dialog/select-list"));
|
|
19
19
|
var _functionTip = _interopRequireDefault(require("./dialog/function-tip"));
|
|
20
20
|
var _useProvider = require("../../../hooks/use-provider");
|
|
21
|
-
function
|
|
21
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
22
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
22
23
|
var ErrorMessage = function ErrorMessage(_ref) {
|
|
23
24
|
var msg = _ref.msg;
|
|
24
25
|
if (!msg) return null;
|
|
@@ -20,7 +20,8 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
|
20
20
|
var _server = _interopRequireDefault(require("react-dom/server"));
|
|
21
21
|
var _selection = require("../../../utils/selection");
|
|
22
22
|
var _tokenizedExpression = _interopRequireDefault(require("./tokenized-expression"));
|
|
23
|
-
function
|
|
23
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
24
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
24
25
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, (0, _isNativeReflectConstruct2["default"])() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
25
26
|
var TokenizedInput = /*#__PURE__*/function (_React$Component) {
|
|
26
27
|
function TokenizedInput() {
|
|
@@ -12,6 +12,7 @@ var _react = require("react");
|
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
require("./index.less");
|
|
14
14
|
var _formulaList = _interopRequireDefault(require("../formula-list"));
|
|
15
|
+
var _utils = require("../formula-list/utils");
|
|
15
16
|
var _locale = require("../../../locale");
|
|
16
17
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
17
18
|
var _pandora = require("@gingkoo/pandora");
|
|
@@ -36,7 +37,7 @@ var CaseEditor = function CaseEditor(props) {
|
|
|
36
37
|
var ref = (0, _react.useRef)(null);
|
|
37
38
|
// 提交按钮是否可用
|
|
38
39
|
var usable = (0, _react.useMemo)(function () {
|
|
39
|
-
return
|
|
40
|
+
return (0, _utils.isOk)(caseList) && name;
|
|
40
41
|
}, [caseList, name]);
|
|
41
42
|
// 取消
|
|
42
43
|
var _onClose = function _onClose() {
|
|
@@ -25,7 +25,8 @@ var _selectColumnMultiple = _interopRequireDefault(require("../select-column-mul
|
|
|
25
25
|
var _icons = require("../../icons");
|
|
26
26
|
var _useProvider = require("../../../hooks/use-provider");
|
|
27
27
|
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
28
|
-
function
|
|
28
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
29
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
29
30
|
/**
|
|
30
31
|
* 关联模块 选择表字段
|
|
31
32
|
*/
|
|
@@ -88,18 +89,18 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
88
89
|
special_type = _useState8[0],
|
|
89
90
|
setSpecial_type = _useState8[1];
|
|
90
91
|
var _useState9 = (0, _react.useState)(value.formula || {}),
|
|
91
|
-
|
|
92
|
-
formula =
|
|
93
|
-
setFormula =
|
|
92
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
93
|
+
formula = _useState10[0],
|
|
94
|
+
setFormula = _useState10[1];
|
|
94
95
|
var store = (0, _useProvider.useStore)();
|
|
95
|
-
var
|
|
96
|
-
_useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
|
|
97
|
-
popupVisible = _useState10[0],
|
|
98
|
-
setPopupVisible = _useState10[1];
|
|
99
|
-
var _useState11 = (0, _react.useState)((value === null || value === void 0 || (_value$lhs = value.lhs) === null || _value$lhs === void 0 ? void 0 : _value$lhs.length) > 0 || false),
|
|
96
|
+
var _useState11 = (0, _react.useState)(false),
|
|
100
97
|
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
101
|
-
|
|
102
|
-
|
|
98
|
+
popupVisible = _useState12[0],
|
|
99
|
+
setPopupVisible = _useState12[1];
|
|
100
|
+
var _useState13 = (0, _react.useState)((value === null || value === void 0 || (_value$lhs = value.lhs) === null || _value$lhs === void 0 ? void 0 : _value$lhs.length) > 0 || false),
|
|
101
|
+
_useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
|
|
102
|
+
isNext = _useState14[0],
|
|
103
|
+
setIsNext = _useState14[1];
|
|
103
104
|
var table2Selected = Boolean(rhsVal && (rhsVal === null || rhsVal === void 0 ? void 0 : rhsVal.length) > 0);
|
|
104
105
|
var disabled = (0, _react.useMemo)(function () {
|
|
105
106
|
if (!condition) return true;
|
|
@@ -629,7 +630,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
629
630
|
value: '',
|
|
630
631
|
list: [{
|
|
631
632
|
value: _types.AtomsTypeEnum.INPUT_STRING,
|
|
632
|
-
label: (0, _locale.__)('
|
|
633
|
+
label: (0, _locale.__)('customColumn.input')
|
|
633
634
|
}, {
|
|
634
635
|
value: _types.AtomsTypeEnum.CONSTANT,
|
|
635
636
|
label: (0, _locale.__)('customColumn.constant')
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import './index.less';
|
|
2
|
+
import { AtomsFormula } from '../../../store/types';
|
|
3
|
+
interface PropsType {
|
|
4
|
+
value: AtomsFormula;
|
|
5
|
+
data: any;
|
|
6
|
+
onOk: Function;
|
|
7
|
+
onCancel: Function;
|
|
8
|
+
}
|
|
9
|
+
declare const CaseEditor: (props: PropsType) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default CaseEditor;
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/taggedTemplateLiteral"));
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
var _react = require("react");
|
|
13
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
|
+
require("./index.less");
|
|
15
|
+
var _formulaList = _interopRequireDefault(require("../formula-list"));
|
|
16
|
+
var _icons = require("../../icons");
|
|
17
|
+
var _utils = require("../formula-list/utils");
|
|
18
|
+
var _locale = require("../../../locale");
|
|
19
|
+
var _utils2 = require("./utils");
|
|
20
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
21
|
+
var _types = require("../../../store/types");
|
|
22
|
+
var _pandora = require("@gingkoo/pandora");
|
|
23
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
24
|
+
var _useProvider = require("../../../hooks/use-provider");
|
|
25
|
+
var _templateObject; // import { OptionsTypeEnum, customTypes, otherList, operatorList, functionList } from './enum';
|
|
26
|
+
var VisualBox = _styledComponents["default"].div.attrs({
|
|
27
|
+
className: 'visual-box'
|
|
28
|
+
})(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
29
|
+
var CaseEditor = function CaseEditor(props) {
|
|
30
|
+
var _store$formulaTemplat, _fun$args;
|
|
31
|
+
var store = (0, _useProvider.useStore)();
|
|
32
|
+
var value = props.value,
|
|
33
|
+
data = props.data,
|
|
34
|
+
onOk = props.onOk,
|
|
35
|
+
onCancel = props.onCancel;
|
|
36
|
+
var _useState = (0, _react.useState)(value),
|
|
37
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
38
|
+
fun = _useState2[0],
|
|
39
|
+
setFun = _useState2[1];
|
|
40
|
+
var _useState3 = (0, _react.useState)((0, _utils2.getObjTem)(store.formulaTemplates)),
|
|
41
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
42
|
+
formulaList = _useState4[0],
|
|
43
|
+
setFunctionList = _useState4[1];
|
|
44
|
+
var _useState5 = (0, _react.useState)({
|
|
45
|
+
canAdd: true,
|
|
46
|
+
canDel: true
|
|
47
|
+
}),
|
|
48
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
49
|
+
formulaOpr = _useState6[0],
|
|
50
|
+
setFormulaOpr = _useState6[1];
|
|
51
|
+
(0, _react.useEffect)(function () {
|
|
52
|
+
setFormulaOpr((0, _utils2.getParamActions)(fun.args, fun.arity));
|
|
53
|
+
}, [fun]);
|
|
54
|
+
var ref = (0, _react.useRef)(null);
|
|
55
|
+
// EXPRESSION = 'expression', // 表达式
|
|
56
|
+
// // FUNCTION = 'function', // 函数
|
|
57
|
+
// INPUT_STRING = 'inputString', // 字符串输入框
|
|
58
|
+
// INPUT_STRING_LIST = 'inputStringList', // 字符串输入框
|
|
59
|
+
// INPUT_NUMBER_LIST = 'inputNumberList', // 数字输入框
|
|
60
|
+
// INPUT_NUMBER = 'inputNumber', // 数字输入框
|
|
61
|
+
// CONSTANT = 'constant', // 常量
|
|
62
|
+
// OPERATOR = 'operator', // 运算符
|
|
63
|
+
// UNKNOWN = 'unknown', //未选具体类型
|
|
64
|
+
// FORMULA = 'FORMULA',
|
|
65
|
+
// COLLECTION = 'collection',
|
|
66
|
+
// 提交按钮是否可用
|
|
67
|
+
var usable = (0, _react.useMemo)(function () {
|
|
68
|
+
return fun.name && (0, _utils.isOk)(fun.args);
|
|
69
|
+
}, [fun]);
|
|
70
|
+
// 取消
|
|
71
|
+
var _onClose = function _onClose() {
|
|
72
|
+
onCancel === null || onCancel === void 0 || onCancel();
|
|
73
|
+
};
|
|
74
|
+
// 确定
|
|
75
|
+
var _onOk = function _onOk() {
|
|
76
|
+
typeof onOk === 'function' && (onOk === null || onOk === void 0 ? void 0 : onOk(fun));
|
|
77
|
+
};
|
|
78
|
+
// 选择公式名
|
|
79
|
+
var handleFunName = function handleFunName(name) {
|
|
80
|
+
var _formulaList$name;
|
|
81
|
+
formulaList === null || formulaList === void 0 || formulaList[name].args;
|
|
82
|
+
setFun((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, fun), {}, {
|
|
83
|
+
args: (0, _utils2.getTemArgs)(formulaList === null || formulaList === void 0 ? void 0 : formulaList[name].args),
|
|
84
|
+
arity: formulaList === null || formulaList === void 0 || (_formulaList$name = formulaList[name]) === null || _formulaList$name === void 0 ? void 0 : _formulaList$name.arity,
|
|
85
|
+
name: name
|
|
86
|
+
}));
|
|
87
|
+
};
|
|
88
|
+
var addParams = function addParams(index) {
|
|
89
|
+
var _args = (0, _cloneDeep["default"])(fun.args);
|
|
90
|
+
var tem = (0, _utils2.getTemArgs)(formulaList === null || formulaList === void 0 ? void 0 : formulaList[fun.name].args)[index + 1] || {
|
|
91
|
+
type: _types.AtomsTypeEnum.COLLECTION,
|
|
92
|
+
list: []
|
|
93
|
+
};
|
|
94
|
+
_args.splice(index + 1, 0, tem);
|
|
95
|
+
setFun((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, fun), {}, {
|
|
96
|
+
args: _args
|
|
97
|
+
}));
|
|
98
|
+
};
|
|
99
|
+
var delParams = function delParams(index) {
|
|
100
|
+
var _args = (0, _cloneDeep["default"])(fun.args);
|
|
101
|
+
_args.splice(index, 1);
|
|
102
|
+
setFun((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, fun), {}, {
|
|
103
|
+
args: _args
|
|
104
|
+
}));
|
|
105
|
+
};
|
|
106
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
107
|
+
className: 'function-box',
|
|
108
|
+
ref: ref,
|
|
109
|
+
children: [(0, _jsxRuntime.jsx)(VisualBox, {
|
|
110
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
111
|
+
className: "Sqb-item Sqb-case-editor mb-2 mt-2",
|
|
112
|
+
children: (0, _jsxRuntime.jsxs)("div", {
|
|
113
|
+
className: "Sqb-item--content",
|
|
114
|
+
children: [(0, _jsxRuntime.jsxs)("div", {
|
|
115
|
+
className: 'Sqb-NotebookCell-header',
|
|
116
|
+
children: [(0, _jsxRuntime.jsx)("div", {
|
|
117
|
+
className: "mb-2 font-bold uppercase tracking-wider",
|
|
118
|
+
style: {
|
|
119
|
+
fontSize: 12,
|
|
120
|
+
color: '#949aab'
|
|
121
|
+
},
|
|
122
|
+
children: "\u8BF7\u5148\u9009\u62E9\u516C\u5F0F\uFF0C\u5207\u6362\u516C\u5F0F\u65F6\u4F1A\u91CD\u7F6E\u53C2\u6570"
|
|
123
|
+
}), (0, _jsxRuntime.jsx)("div", {
|
|
124
|
+
className: 'Sqb-NotebookCell formula-name',
|
|
125
|
+
children: (0, _jsxRuntime.jsx)(_pandora.Select, {
|
|
126
|
+
triggerProps: {
|
|
127
|
+
clickToClose: true
|
|
128
|
+
},
|
|
129
|
+
value: fun.name,
|
|
130
|
+
triggerElement: function triggerElement(value) {
|
|
131
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
132
|
+
className: (0, _classnames["default"])("Sqb-TableName Sqb-TableName-OPERATOR", {
|
|
133
|
+
notSelected: !fun.name
|
|
134
|
+
}),
|
|
135
|
+
children: fun.name ? fun.name : (0, _locale.__)('customColumn.selectFormula')
|
|
136
|
+
});
|
|
137
|
+
},
|
|
138
|
+
onChange: function onChange(val) {
|
|
139
|
+
handleFunName(val);
|
|
140
|
+
},
|
|
141
|
+
children: (_store$formulaTemplat = store.formulaTemplates) === null || _store$formulaTemplat === void 0 ? void 0 : _store$formulaTemplat.map(function (option, index) {
|
|
142
|
+
return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
|
|
143
|
+
value: option.name,
|
|
144
|
+
children: option.name
|
|
145
|
+
}, index);
|
|
146
|
+
})
|
|
147
|
+
})
|
|
148
|
+
}), fun.name && (0, _jsxRuntime.jsxs)("div", {
|
|
149
|
+
className: "mb-2 font-bold uppercase tracking-wider",
|
|
150
|
+
style: {
|
|
151
|
+
fontSize: 12,
|
|
152
|
+
color: '#949aab'
|
|
153
|
+
},
|
|
154
|
+
children: [(0, _jsxRuntime.jsxs)("p", {
|
|
155
|
+
children: ["\u63CF\u8FF0\uFF1A", formulaList[fun.name].description]
|
|
156
|
+
}), (0, _jsxRuntime.jsxs)("p", {
|
|
157
|
+
children: ["\u6848\u4F8B\uFF1A", formulaList[fun.name].example]
|
|
158
|
+
})]
|
|
159
|
+
})]
|
|
160
|
+
}), fun === null || fun === void 0 || (_fun$args = fun.args) === null || _fun$args === void 0 ? void 0 : _fun$args.map(function (v, i) {
|
|
161
|
+
if (v.type === _types.AtomsTypeEnum.COLLECTION) {
|
|
162
|
+
var _formulaList$fun$name;
|
|
163
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
164
|
+
className: 'Sqb-item-formula-args',
|
|
165
|
+
children: [(0, _jsxRuntime.jsxs)("div", {
|
|
166
|
+
className: 'Sqb-item-formula',
|
|
167
|
+
children: [(0, _jsxRuntime.jsxs)("div", {
|
|
168
|
+
className: "mb-2 font-bold uppercase tracking-wider",
|
|
169
|
+
style: {
|
|
170
|
+
fontSize: 12,
|
|
171
|
+
color: '#949aab'
|
|
172
|
+
},
|
|
173
|
+
children: ["\u53C2\u6570", i + 1, ":"]
|
|
174
|
+
}), (0, _jsxRuntime.jsx)(_formulaList["default"], {
|
|
175
|
+
check: (formulaList === null || formulaList === void 0 || (_formulaList$fun$name = formulaList[fun.name]) === null || _formulaList$fun$name === void 0 || (_formulaList$fun$name = _formulaList$fun$name.args) === null || _formulaList$fun$name === void 0 || (_formulaList$fun$name = _formulaList$fun$name[i]) === null || _formulaList$fun$name === void 0 ? void 0 : _formulaList$fun$name.check) || '',
|
|
176
|
+
value: v.list,
|
|
177
|
+
data: data,
|
|
178
|
+
ref: ref,
|
|
179
|
+
onChange: function onChange(data, _quotes) {
|
|
180
|
+
var _args = (0, _cloneDeep["default"])(fun.args);
|
|
181
|
+
_args[i].list = data;
|
|
182
|
+
_args[i].quotes = _quotes || '';
|
|
183
|
+
var quotes = _args.map(function (v) {
|
|
184
|
+
return v.quotes;
|
|
185
|
+
}).join(' , ');
|
|
186
|
+
setFun((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, fun), {}, {
|
|
187
|
+
quotes: fun.name + ' ( ' + quotes + ' ) ',
|
|
188
|
+
args: _args
|
|
189
|
+
}));
|
|
190
|
+
}
|
|
191
|
+
})]
|
|
192
|
+
}), (0, _jsxRuntime.jsxs)("div", {
|
|
193
|
+
className: 'Sqb-item-opr',
|
|
194
|
+
children: [(0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
195
|
+
primary: true,
|
|
196
|
+
disabled: !formulaOpr.canAdd,
|
|
197
|
+
shape: 'square',
|
|
198
|
+
icon: (0, _jsxRuntime.jsx)(_icons.AddIcon, {}),
|
|
199
|
+
onClick: function onClick() {
|
|
200
|
+
addParams(i);
|
|
201
|
+
}
|
|
202
|
+
}), (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
203
|
+
primary: true,
|
|
204
|
+
level: 'danger',
|
|
205
|
+
shape: 'square',
|
|
206
|
+
icon: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {}),
|
|
207
|
+
disabled: !formulaOpr.canDel,
|
|
208
|
+
onClick: function onClick() {
|
|
209
|
+
delParams(i);
|
|
210
|
+
}
|
|
211
|
+
})]
|
|
212
|
+
})]
|
|
213
|
+
}, i);
|
|
214
|
+
}
|
|
215
|
+
})]
|
|
216
|
+
})
|
|
217
|
+
})
|
|
218
|
+
}), (0, _jsxRuntime.jsx)("div", {
|
|
219
|
+
className: "btns p-4",
|
|
220
|
+
children: (0, _jsxRuntime.jsxs)("div", {
|
|
221
|
+
style: {
|
|
222
|
+
marginLeft: 'auto'
|
|
223
|
+
},
|
|
224
|
+
children: [(0, _jsxRuntime.jsx)("button", {
|
|
225
|
+
className: "btn",
|
|
226
|
+
onClick: function onClick() {
|
|
227
|
+
return _onClose();
|
|
228
|
+
},
|
|
229
|
+
children: (0, _locale.__)('customColumn.cancel')
|
|
230
|
+
}), (0, _jsxRuntime.jsx)("button", {
|
|
231
|
+
className: (0, _classnames["default"])("btn ml-4", {
|
|
232
|
+
usable: usable
|
|
233
|
+
}),
|
|
234
|
+
disabled: !usable,
|
|
235
|
+
onClick: _onOk,
|
|
236
|
+
children: (0, _locale.__)('customColumn.complete')
|
|
237
|
+
})]
|
|
238
|
+
})
|
|
239
|
+
})]
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
var _default = exports["default"] = CaseEditor;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
.function-box {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
height: 100%;
|
|
5
|
+
width: 100%;
|
|
6
|
+
.visual-box {
|
|
7
|
+
flex: 1;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.Sqb-case-editor {
|
|
11
|
+
padding: 20px 20px 50px;
|
|
12
|
+
.Sqb-item--content {
|
|
13
|
+
width: 100%;
|
|
14
|
+
height: 100%;
|
|
15
|
+
.Sqb-item-formula-args {
|
|
16
|
+
display: flex;
|
|
17
|
+
align-items: center;
|
|
18
|
+
margin: 20px 0;
|
|
19
|
+
.Sqb-item-formula {
|
|
20
|
+
flex: 1;
|
|
21
|
+
}
|
|
22
|
+
.Sqb-item-opr {
|
|
23
|
+
display: flex;
|
|
24
|
+
gap: 10px;
|
|
25
|
+
margin-left: 10px;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.btns {
|
|
32
|
+
flex-direction: row;
|
|
33
|
+
align-items: center;
|
|
34
|
+
display: flex;
|
|
35
|
+
border-top: 1px solid #f0f0f0;
|
|
36
|
+
// position: absolute;
|
|
37
|
+
width: 100%;
|
|
38
|
+
bottom: 0;
|
|
39
|
+
z-index: 3;
|
|
40
|
+
background-color: #fff;
|
|
41
|
+
.btn {
|
|
42
|
+
padding: 0.75rem 1rem;
|
|
43
|
+
|
|
44
|
+
display: inline-block;
|
|
45
|
+
box-sizing: border-box;
|
|
46
|
+
text-decoration: none;
|
|
47
|
+
background: transparent;
|
|
48
|
+
border: 1px solid rgb(228, 228, 228);
|
|
49
|
+
color: #4c5773;
|
|
50
|
+
cursor: pointer;
|
|
51
|
+
text-decoration: none;
|
|
52
|
+
font-weight: bold;
|
|
53
|
+
font-family: 'Lato', sans-serif;
|
|
54
|
+
border-radius: 6px;
|
|
55
|
+
|
|
56
|
+
outline: none;
|
|
57
|
+
|
|
58
|
+
&:disabled {
|
|
59
|
+
opacity: 0.5;
|
|
60
|
+
cursor: not-allowed;
|
|
61
|
+
}
|
|
62
|
+
&:not(:disabled):hover {
|
|
63
|
+
color: #509ee3;
|
|
64
|
+
border-color: rgb(214, 214, 214);
|
|
65
|
+
background: #f9fbfc;
|
|
66
|
+
transition: all 200ms linear;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&.usable {
|
|
70
|
+
color: #ffffff;
|
|
71
|
+
background: #509ee3;
|
|
72
|
+
border: 1px solid #509ee3;
|
|
73
|
+
&:hover {
|
|
74
|
+
color: #ffffff;
|
|
75
|
+
border-color: #509ee3;
|
|
76
|
+
background-color: rgba(80, 158, 227, 0.88);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Arity, AtomsItem, AtomsCollection } from '../../../store/types';
|
|
2
|
+
export declare const getObjTem: (arr: any[]) => any;
|
|
3
|
+
export declare const getTemArgs: (temArgs: any[]) => AtomsCollection[];
|
|
4
|
+
export declare function getParamActions(params: AtomsItem[], arity?: Arity): {
|
|
5
|
+
canAdd: boolean;
|
|
6
|
+
canDel: boolean;
|
|
7
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getObjTem = void 0;
|
|
7
|
+
exports.getParamActions = getParamActions;
|
|
8
|
+
exports.getTemArgs = void 0;
|
|
9
|
+
var _types = require("../../../store/types");
|
|
10
|
+
var _utils = require("../formula-list/utils");
|
|
11
|
+
var getObjTem = exports.getObjTem = function getObjTem(arr) {
|
|
12
|
+
var obj = {};
|
|
13
|
+
arr === null || arr === void 0 || arr.map(function (v) {
|
|
14
|
+
if (v.name) {
|
|
15
|
+
obj[v.name] = v;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
return obj;
|
|
19
|
+
};
|
|
20
|
+
var getTemArgs = exports.getTemArgs = function getTemArgs(temArgs) {
|
|
21
|
+
return (temArgs === null || temArgs === void 0 ? void 0 : temArgs.map(function (v) {
|
|
22
|
+
return {
|
|
23
|
+
type: _types.AtomsTypeEnum.COLLECTION,
|
|
24
|
+
quotes: '',
|
|
25
|
+
list: [(0, _utils.getTemplateItem)(v.type)]
|
|
26
|
+
};
|
|
27
|
+
})) || [];
|
|
28
|
+
};
|
|
29
|
+
function getParamActions(params, arity) {
|
|
30
|
+
var len = (params === null || params === void 0 ? void 0 : params.length) || 0;
|
|
31
|
+
if (!arity) {
|
|
32
|
+
return {
|
|
33
|
+
canAdd: true,
|
|
34
|
+
canDel: true
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
var effectiveMin = 'min' in arity ? arity.min : 'exact' in arity ? arity.exact : 0;
|
|
38
|
+
var effectiveMax = 'max' in arity ? arity.max : 'exact' in arity ? arity.exact // ← 这里!不能是 Infinity
|
|
39
|
+
: Infinity;
|
|
40
|
+
return {
|
|
41
|
+
canAdd: len < effectiveMax,
|
|
42
|
+
// 小于 max 才能加
|
|
43
|
+
canDel: len > effectiveMin // 大于 min 才能删
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -6,8 +6,10 @@ interface PropsType {
|
|
|
6
6
|
value: AtomsItem[];
|
|
7
7
|
data: any;
|
|
8
8
|
exitData?: any;
|
|
9
|
+
onChange?: (atoms: AtomsItem[], quotes: string) => void;
|
|
10
|
+
check?: string;
|
|
9
11
|
isCustom?: boolean;
|
|
10
|
-
|
|
12
|
+
showPreview?: boolean;
|
|
11
13
|
}
|
|
12
14
|
declare const FormulaList: React.ForwardRefExoticComponent<PropsType & React.RefAttributes<unknown>>;
|
|
13
15
|
export default FormulaList;
|