@gingkoo/pandora-metabase 1.0.71 → 1.0.73
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/components/dialog/custom-editor/index.js +4 -1
- package/lib/cjs/components/dialog/expression/index.js +2 -3
- package/lib/cjs/components/dialog/formula/index.js +1 -0
- package/lib/cjs/components/dialog/formula-list/index.d.ts +1 -0
- package/lib/cjs/components/dialog/formula-list/index.js +248 -65
- package/lib/cjs/components/dialog/formula-list/index.less +54 -0
- package/lib/cjs/components/dialog/formula-list/utils.d.ts +7 -0
- package/lib/cjs/components/dialog/formula-list/utils.js +141 -3
- package/lib/cjs/components/metabase/helper.less +7 -0
- package/lib/cjs/components/metabase/index.js +54 -2
- package/lib/cjs/components/metabase/index.less +9 -7
- package/lib/cjs/components/modules/components/header.d.ts +2 -0
- package/lib/cjs/components/modules/components/header.js +54 -1
- package/lib/cjs/components/modules/custom-column.js +1 -0
- package/lib/cjs/components/modules/filter.js +1 -0
- package/lib/cjs/components/modules/join-data.js +3 -4
- package/lib/cjs/components/modules/permission-table.js +1 -0
- package/lib/cjs/components/modules/row-limit.js +1 -0
- package/lib/cjs/components/modules/sort.js +1 -0
- package/lib/cjs/components/modules/summarize/index.js +1 -0
- package/lib/cjs/components/modules/table-data.js +1 -0
- package/lib/cjs/components/modules/union.js +1 -0
- package/lib/cjs/hooks/use-state.js +115 -55
- package/lib/cjs/index.js +16 -3
- package/lib/cjs/locale/en.js +8 -1
- package/lib/cjs/locale/zh.js +8 -1
- package/lib/cjs/store/types.d.ts +7 -0
- package/lib/cjs/store/types.js +10 -1
- package/lib/cjs/types.d.ts +11 -1
- package/lib/cjs/utils/storage.d.ts +2 -0
- package/lib/cjs/utils/storage.js +3 -1
- package/lib/cjs/utils.d.ts +3 -0
- package/lib/cjs/utils.js +132 -1
- package/lib/es/components/dialog/custom-editor/index.js +4 -1
- package/lib/es/components/dialog/expression/index.js +2 -3
- package/lib/es/components/dialog/formula/index.js +2 -1
- package/lib/es/components/dialog/formula-list/index.d.ts +1 -0
- package/lib/es/components/dialog/formula-list/index.js +252 -69
- package/lib/es/components/dialog/formula-list/index.less +54 -0
- package/lib/es/components/dialog/formula-list/utils.d.ts +7 -0
- package/lib/es/components/dialog/formula-list/utils.js +140 -3
- package/lib/es/components/metabase/helper.less +7 -0
- package/lib/es/components/metabase/index.js +57 -5
- package/lib/es/components/metabase/index.less +9 -7
- package/lib/es/components/modules/components/header.d.ts +2 -0
- package/lib/es/components/modules/components/header.js +54 -2
- package/lib/es/components/modules/custom-column.js +1 -0
- package/lib/es/components/modules/filter.js +1 -0
- package/lib/es/components/modules/join-data.js +4 -5
- package/lib/es/components/modules/permission-table.js +1 -0
- package/lib/es/components/modules/row-limit.js +1 -0
- package/lib/es/components/modules/sort.js +1 -0
- package/lib/es/components/modules/summarize/index.js +1 -0
- package/lib/es/components/modules/table-data.js +1 -0
- package/lib/es/components/modules/union.js +1 -0
- package/lib/es/hooks/use-state.js +115 -55
- package/lib/es/index.js +16 -3
- package/lib/es/locale/en.js +8 -1
- package/lib/es/locale/zh.js +8 -1
- package/lib/es/store/types.d.ts +7 -0
- package/lib/es/store/types.js +9 -0
- package/lib/es/types.d.ts +11 -1
- package/lib/es/utils/storage.d.ts +2 -0
- package/lib/es/utils/storage.js +3 -1
- package/lib/es/utils.d.ts +3 -0
- package/lib/es/utils.js +133 -1
- package/package.json +1 -1
|
@@ -15,8 +15,10 @@ var _formulaList = _interopRequireDefault(require("../formula-list"));
|
|
|
15
15
|
var _utils = require("../formula-list/utils");
|
|
16
16
|
var _locale = require("../../../locale");
|
|
17
17
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
18
|
+
var _types = require("../../../store/types");
|
|
18
19
|
var _pandora = require("@gingkoo/pandora");
|
|
19
20
|
var _templateObject; // import { getTemplate } from './utils';
|
|
21
|
+
// import { OptionsTypeEnum, customTypes, otherList, operatorList, functionList } from './enum';
|
|
20
22
|
var VisualBox = _styledComponents["default"].div.attrs({
|
|
21
23
|
className: 'visual-box'
|
|
22
24
|
})(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
@@ -85,7 +87,8 @@ var CaseEditor = function CaseEditor(props) {
|
|
|
85
87
|
data: data,
|
|
86
88
|
exitData: exitData,
|
|
87
89
|
ref: ref,
|
|
88
|
-
onChange: setCaseList
|
|
90
|
+
onChange: setCaseList,
|
|
91
|
+
_type: _types.FormulaTypeEnum.CUSTOM
|
|
89
92
|
})]
|
|
90
93
|
})
|
|
91
94
|
})
|
|
@@ -962,9 +962,8 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
962
962
|
* 不至于让用户每一个都自己选、
|
|
963
963
|
* 比如说:条件字段 默认我们帮他选好第一个...
|
|
964
964
|
*/
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
setDefaultVal(conditions[0]);
|
|
965
|
+
// let { conditions } = getData(curColumn);
|
|
966
|
+
// setDefaultVal(conditions[0]);
|
|
968
967
|
}
|
|
969
968
|
})
|
|
970
969
|
});
|
|
@@ -205,6 +205,7 @@ var CaseEditor = _react["default"].forwardRef(function (props, ref) {
|
|
|
205
205
|
value: v.list,
|
|
206
206
|
data: data,
|
|
207
207
|
ref: _ref,
|
|
208
|
+
_type: _types.FormulaTypeEnum.FORMULA,
|
|
208
209
|
onChange: function onChange(data, _quotes) {
|
|
209
210
|
var _args = (0, _cloneDeep["default"])(fun.args);
|
|
210
211
|
_args[i].list = data;
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
9
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
10
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
11
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
13
|
var _react = require("react");
|
|
@@ -31,9 +31,29 @@ var _arrow = _interopRequireDefault(require("./arrow.svg"));
|
|
|
31
31
|
var _useProvider = require("../../../hooks/use-provider");
|
|
32
32
|
var _itemName = _interopRequireDefault(require("../../modules/components/item-name"));
|
|
33
33
|
var _diffViewer = _interopRequireDefault(require("../diff-viewer"));
|
|
34
|
+
var _storage = _interopRequireDefault(require("../../../utils/storage"));
|
|
34
35
|
var _excluded = ["notExistsToolbar", "toolbar"]; // import './index.less';
|
|
35
36
|
var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
36
|
-
var _caseList2;
|
|
37
|
+
var _storage$_metabaseCop, _caseList2;
|
|
38
|
+
// 响应 storage._metabaseCopyItems 变化,保证粘贴按钮能实时显示
|
|
39
|
+
var _useState = (0, _react.useState)((_storage["default"] === null || _storage["default"] === void 0 || (_storage$_metabaseCop = _storage["default"]._metabaseCopyItems) === null || _storage$_metabaseCop === void 0 ? void 0 : _storage$_metabaseCop.length) || 0),
|
|
40
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
41
|
+
checkedItemsCount = _useState2[0],
|
|
42
|
+
setCheckedItemsCount = _useState2[1];
|
|
43
|
+
(0, _react.useEffect)(function () {
|
|
44
|
+
var _storage$_metabaseCop3;
|
|
45
|
+
// 监听 _metabaseCopyItems 变化(自定义事件)
|
|
46
|
+
var handler = function handler() {
|
|
47
|
+
var _storage$_metabaseCop2;
|
|
48
|
+
setCheckedItemsCount((_storage["default"] === null || _storage["default"] === void 0 || (_storage$_metabaseCop2 = _storage["default"]._metabaseCopyItems) === null || _storage$_metabaseCop2 === void 0 ? void 0 : _storage$_metabaseCop2.length) || 0);
|
|
49
|
+
};
|
|
50
|
+
window.addEventListener('sqb-checked-items-changed', handler);
|
|
51
|
+
// 初始化
|
|
52
|
+
setCheckedItemsCount((_storage["default"] === null || _storage["default"] === void 0 || (_storage$_metabaseCop3 = _storage["default"]._metabaseCopyItems) === null || _storage$_metabaseCop3 === void 0 ? void 0 : _storage$_metabaseCop3.length) || 0);
|
|
53
|
+
return function () {
|
|
54
|
+
window.removeEventListener('sqb-checked-items-changed', handler);
|
|
55
|
+
};
|
|
56
|
+
}, []);
|
|
37
57
|
var value = props.value,
|
|
38
58
|
data = props.data,
|
|
39
59
|
exitData = props.exitData,
|
|
@@ -46,23 +66,36 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
46
66
|
isCustom = _props$isCustom === void 0 ? false : _props$isCustom,
|
|
47
67
|
_props$showPreview = props.showPreview,
|
|
48
68
|
showPreview = _props$showPreview === void 0 ? true : _props$showPreview,
|
|
49
|
-
check = props.check
|
|
69
|
+
check = props.check,
|
|
70
|
+
_props$_type = props._type,
|
|
71
|
+
_type = _props$_type === void 0 ? 'filter' : _props$_type;
|
|
50
72
|
var caseList = value || [];
|
|
51
|
-
var
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
setOldCode = _useState2[1];
|
|
55
|
-
var _useState3 = (0, _react.useState)('code'),
|
|
73
|
+
var store = (0, _useProvider.useStore)();
|
|
74
|
+
var caseListRef = (0, _react.useRef)(caseList);
|
|
75
|
+
var _useState3 = (0, _react.useState)(''),
|
|
56
76
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
57
|
-
|
|
58
|
-
|
|
77
|
+
oldCode = _useState4[0],
|
|
78
|
+
setOldCode = _useState4[1];
|
|
79
|
+
var _useState5 = (0, _react.useState)('code'),
|
|
80
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
81
|
+
previewMode = _useState6[0],
|
|
82
|
+
setPreviewMode = _useState6[1];
|
|
83
|
+
var _useState7 = (0, _react.useState)(function () {
|
|
84
|
+
if (store.copyType.includes(_types.FormulaTypeEnum.ALL)) {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
return store.copyType.includes(_type);
|
|
88
|
+
}),
|
|
89
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
90
|
+
isCopy = _useState8[0],
|
|
91
|
+
setIsCopy = _useState8[1];
|
|
59
92
|
(0, _react.useEffect)(function () {
|
|
60
93
|
setOldCode(getPreviewStr(caseList));
|
|
61
94
|
}, []);
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
filterVal =
|
|
65
|
-
setFilterVal =
|
|
95
|
+
var _useState9 = (0, _react.useState)(''),
|
|
96
|
+
_useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
97
|
+
filterVal = _useState0[0],
|
|
98
|
+
setFilterVal = _useState0[1];
|
|
66
99
|
var setCaseList = function setCaseList(data) {
|
|
67
100
|
var quotes = data.map(function (v, i) {
|
|
68
101
|
if (v !== null && v !== void 0 && v.quotes) {
|
|
@@ -75,18 +108,37 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
75
108
|
}).join(' ');
|
|
76
109
|
onChange === null || onChange === void 0 || onChange(data, quotes);
|
|
77
110
|
caseList = data;
|
|
111
|
+
caseListRef.current = data;
|
|
78
112
|
};
|
|
79
|
-
var
|
|
80
|
-
|
|
81
|
-
ind =
|
|
82
|
-
setInd =
|
|
83
|
-
var store = (0, _useProvider.useStore)();
|
|
113
|
+
var _useState1 = (0, _react.useState)(-1),
|
|
114
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
|
|
115
|
+
ind = _useState10[0],
|
|
116
|
+
setInd = _useState10[1];
|
|
84
117
|
var filterCustomType = store.filterCustomType;
|
|
85
118
|
var _ref = (0, _react.useRef)(null);
|
|
86
|
-
var
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
119
|
+
var _useState11 = (0, _react.useState)({
|
|
120
|
+
isError: false
|
|
121
|
+
}),
|
|
122
|
+
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
123
|
+
errorInfo = _useState12[0],
|
|
124
|
+
setErrorInfo = _useState12[1];
|
|
125
|
+
var _useState13 = (0, _react.useState)(false),
|
|
126
|
+
_useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
|
|
127
|
+
isCheck = _useState14[0],
|
|
128
|
+
setIsCheck = _useState14[1];
|
|
129
|
+
var myInstanceIdRef = (0, _react.useRef)(Math.random().toString(36).slice(2));
|
|
130
|
+
var _useState15 = (0, _react.useState)(!!window.__sqb_selection_active__),
|
|
131
|
+
_useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
|
|
132
|
+
globalSelectionActive = _useState16[0],
|
|
133
|
+
setGlobalSelectionActive = _useState16[1];
|
|
134
|
+
var _useState17 = (0, _react.useState)(window.__sqb_selection_owner__ || null),
|
|
135
|
+
_useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
|
|
136
|
+
globalSelectionOwner = _useState18[0],
|
|
137
|
+
setGlobalSelectionOwner = _useState18[1];
|
|
138
|
+
var _useState19 = (0, _react.useState)([]),
|
|
139
|
+
_useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
|
|
140
|
+
selectedIndices = _useState20[0],
|
|
141
|
+
setSelectedIndices = _useState20[1];
|
|
90
142
|
(0, _react.useEffect)(function () {
|
|
91
143
|
var leftBrackets = caseList.filter(function (v) {
|
|
92
144
|
return v.type === _types.AtomsTypeEnum.OPERATOR && v.val === '(';
|
|
@@ -94,7 +146,9 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
94
146
|
var rightBrackets = caseList.filter(function (v) {
|
|
95
147
|
return v.type === _types.AtomsTypeEnum.OPERATOR && v.val === ')';
|
|
96
148
|
}).length;
|
|
97
|
-
setIsSqlError(leftBrackets != rightBrackets);
|
|
149
|
+
// setIsSqlError(leftBrackets != rightBrackets);
|
|
150
|
+
var _errorInfo = (0, _utils2.validateExpressionIntegrity)(caseList);
|
|
151
|
+
setErrorInfo(_errorInfo);
|
|
98
152
|
}, [caseList]);
|
|
99
153
|
// 获取预览字符串
|
|
100
154
|
var getPreviewStr = function getPreviewStr() {
|
|
@@ -243,6 +297,89 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
243
297
|
setCaseList(_caseList);
|
|
244
298
|
closePopup();
|
|
245
299
|
}
|
|
300
|
+
// 重置粘贴状态
|
|
301
|
+
function initPaste() {
|
|
302
|
+
var isDispatch = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
303
|
+
setSelectedIndices([]);
|
|
304
|
+
setLocalItem([]);
|
|
305
|
+
setIsCheck(false);
|
|
306
|
+
//有些事不需要通知别的过滤器重置勾选状态
|
|
307
|
+
if (isDispatch) {
|
|
308
|
+
window.dispatchEvent(new CustomEvent('sqb-check-active', {
|
|
309
|
+
detail: {
|
|
310
|
+
owner: myInstanceIdRef.current
|
|
311
|
+
}
|
|
312
|
+
}));
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
// 粘贴到末尾并清除勾选
|
|
316
|
+
function handlePaste() {
|
|
317
|
+
var _caseList = caseList.slice();
|
|
318
|
+
// determine items to paste (selected items have priority)
|
|
319
|
+
var itemsToPaste = _storage["default"]._metabaseCopyItems || [];
|
|
320
|
+
itemsToPaste = (0, _utils.changeCopyField)(itemsToPaste, data);
|
|
321
|
+
if (itemsToPaste.length) {
|
|
322
|
+
_caseList.push.apply(_caseList, (0, _toConsumableArray2["default"])(itemsToPaste));
|
|
323
|
+
setCaseList(_caseList);
|
|
324
|
+
}
|
|
325
|
+
initPaste();
|
|
326
|
+
}
|
|
327
|
+
// 将值存在 localStorage
|
|
328
|
+
function setLocalItem(next) {
|
|
329
|
+
var _caseList = caseList.slice();
|
|
330
|
+
// determine items to paste (selected items have priority)
|
|
331
|
+
var itemsToPaste = [];
|
|
332
|
+
if (next.length > 0) {
|
|
333
|
+
// paste all selected items
|
|
334
|
+
itemsToPaste = next.map(function (i) {
|
|
335
|
+
return _caseList[i] ? (0, _cloneDeep["default"])(_caseList[i]) : null;
|
|
336
|
+
}).filter(Boolean);
|
|
337
|
+
}
|
|
338
|
+
_storage["default"]._metabaseCopyItems = itemsToPaste;
|
|
339
|
+
window.dispatchEvent(new CustomEvent('sqb-checked-items-changed'));
|
|
340
|
+
}
|
|
341
|
+
function toggleSelect(index, checked) {
|
|
342
|
+
var next = selectedIndices.slice();
|
|
343
|
+
if (checked) {
|
|
344
|
+
if (!next.includes(index)) next.push(index);
|
|
345
|
+
} else {
|
|
346
|
+
next = next.filter(function (i) {
|
|
347
|
+
return i !== index;
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
next = next.sort(function (a, b) {
|
|
351
|
+
return a - b;
|
|
352
|
+
});
|
|
353
|
+
setSelectedIndices(next);
|
|
354
|
+
setLocalItem(next);
|
|
355
|
+
// const active = next.length > 0;
|
|
356
|
+
}
|
|
357
|
+
var copyAll = function copyAll() {
|
|
358
|
+
_setIsCheck(true);
|
|
359
|
+
var allIndices = caseList.map(function (v, i) {
|
|
360
|
+
return i;
|
|
361
|
+
});
|
|
362
|
+
setSelectedIndices(allIndices);
|
|
363
|
+
setLocalItem(allIndices);
|
|
364
|
+
};
|
|
365
|
+
// 开启关闭勾选,清除别的过滤器勾选
|
|
366
|
+
var _setIsCheck = function _setIsCheck(val) {
|
|
367
|
+
initPaste();
|
|
368
|
+
setIsCheck(val);
|
|
369
|
+
};
|
|
370
|
+
(0, _react.useEffect)(function () {
|
|
371
|
+
var onCheckActive = function onCheckActive(e) {
|
|
372
|
+
var detail = (e === null || e === void 0 ? void 0 : e.detail) || {};
|
|
373
|
+
var owner = detail.owner;
|
|
374
|
+
if (owner && owner !== myInstanceIdRef.current) {
|
|
375
|
+
initPaste(false);
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
window.addEventListener('sqb-check-active', onCheckActive);
|
|
379
|
+
return function () {
|
|
380
|
+
window.removeEventListener('sqb-check-active', onCheckActive);
|
|
381
|
+
};
|
|
382
|
+
}, []);
|
|
246
383
|
// 添加
|
|
247
384
|
var addOperator = function addOperator(type, index, position) {
|
|
248
385
|
var _caseList = caseList.slice() || [];
|
|
@@ -604,52 +741,47 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
604
741
|
ind: index,
|
|
605
742
|
position: ''
|
|
606
743
|
});
|
|
607
|
-
// return (
|
|
608
|
-
// <Select
|
|
609
|
-
// triggerProps={{
|
|
610
|
-
// clickToClose: true,
|
|
611
|
-
// }}
|
|
612
|
-
// value={v.val}
|
|
613
|
-
// triggerElement={(value) => {
|
|
614
|
-
// return (
|
|
615
|
-
// <div
|
|
616
|
-
// className={cx(`Sqb-TableName `, {
|
|
617
|
-
// notSelected: true,
|
|
618
|
-
// })}
|
|
619
|
-
// >
|
|
620
|
-
// {__('customColumn.selectCustomInput')}
|
|
621
|
-
// <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>
|
|
622
|
-
// <CloseIcon />
|
|
623
|
-
// </span>
|
|
624
|
-
// </div>
|
|
625
|
-
// );
|
|
626
|
-
// }}
|
|
627
|
-
// onChange={(val) => {
|
|
628
|
-
// addOperator(val, index, '');
|
|
629
|
-
// }}
|
|
630
|
-
// >
|
|
631
|
-
// {_customTypes.map((option, index) => (
|
|
632
|
-
// <Select.Option key={index + '' + ind} value={option.value}>
|
|
633
|
-
// {option.label}
|
|
634
|
-
// </Select.Option>
|
|
635
|
-
// ))}
|
|
636
|
-
// </Select>
|
|
637
|
-
// );
|
|
638
744
|
}
|
|
639
745
|
};
|
|
640
746
|
return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
641
747
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
642
748
|
className: "Sqb-NotebookCell",
|
|
643
|
-
children: [
|
|
749
|
+
children: [isCopy && caseList.length > 0 && (0, _jsxRuntime.jsxs)(_pandora.Space, {
|
|
750
|
+
size: 'small',
|
|
751
|
+
direction: 'vertical',
|
|
752
|
+
className: (0, _classnames["default"])('item-isCheck', {
|
|
753
|
+
isCheck: isCheck
|
|
754
|
+
}),
|
|
755
|
+
children: [(0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
756
|
+
className: (0, _classnames["default"])('primary-color', {}),
|
|
757
|
+
size: 'small',
|
|
758
|
+
onClick: function onClick() {
|
|
759
|
+
return _setIsCheck(!isCheck);
|
|
760
|
+
},
|
|
761
|
+
primary: true,
|
|
762
|
+
children: isCheck ? (0, _locale.__)('customColumn.closeCopy') : (0, _locale.__)('customColumn.openCopy')
|
|
763
|
+
}), (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
764
|
+
className: (0, _classnames["default"])('', 'primary-color', {}),
|
|
765
|
+
size: 'small',
|
|
766
|
+
onClick: function onClick() {
|
|
767
|
+
return copyAll();
|
|
768
|
+
},
|
|
769
|
+
primary: true,
|
|
770
|
+
children: (0, _locale.__)('customColumn.copyAll')
|
|
771
|
+
})]
|
|
772
|
+
}), (_caseList2 = caseList) === null || _caseList2 === void 0 ? void 0 : _caseList2.map(function (v, i) {
|
|
644
773
|
return (0, _jsxRuntime.jsxs)("div", {
|
|
645
774
|
className: (0, _classnames["default"])('Sqb-Filter-item', {
|
|
646
775
|
hover: ind === i,
|
|
647
|
-
'item-fixed': v.fixed || false
|
|
776
|
+
'item-fixed': v.fixed || false,
|
|
777
|
+
'item-selected': isCheck
|
|
648
778
|
}),
|
|
649
779
|
onMouseEnter: function onMouseEnter(e) {
|
|
780
|
+
if (isCheck) return;
|
|
650
781
|
setInd(i);
|
|
651
782
|
},
|
|
652
783
|
onMouseLeave: function onMouseLeave() {
|
|
784
|
+
if (isCheck) return;
|
|
653
785
|
setInd(-1);
|
|
654
786
|
},
|
|
655
787
|
children: [selectOperator({
|
|
@@ -659,7 +791,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
659
791
|
"v-index": i,
|
|
660
792
|
"v-type": 'before',
|
|
661
793
|
onClick: function onClick() {
|
|
662
|
-
addOperator(_types.AtomsTypeEnum.UNKNOWN, i, 'before');
|
|
794
|
+
if (!selectedIndices.length) addOperator(_types.AtomsTypeEnum.UNKNOWN, i, 'before');
|
|
663
795
|
},
|
|
664
796
|
children: (0, _jsxRuntime.jsx)("img", {
|
|
665
797
|
src: _arrow["default"]
|
|
@@ -669,7 +801,20 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
669
801
|
ind: i,
|
|
670
802
|
position: 'before',
|
|
671
803
|
trigger: 'hover'
|
|
672
|
-
}),
|
|
804
|
+
}), v.type !== _types.AtomsTypeEnum.UNKNOWN && (0, _jsxRuntime.jsx)(_pandora.Checkbox, {
|
|
805
|
+
className: 'item-check',
|
|
806
|
+
checked: selectedIndices.includes(i),
|
|
807
|
+
disabled: globalSelectionActive && globalSelectionOwner !== myInstanceIdRef.current,
|
|
808
|
+
onChange: function onChange(e) {
|
|
809
|
+
var _e$target$checked, _e$target;
|
|
810
|
+
return toggleSelect(i, (_e$target$checked = e === null || e === void 0 || (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.checked) !== null && _e$target$checked !== void 0 ? _e$target$checked : !selectedIndices.includes(i));
|
|
811
|
+
}
|
|
812
|
+
}), (0, _jsxRuntime.jsx)("div", {
|
|
813
|
+
style: {
|
|
814
|
+
pointerEvents: isCheck ? 'none' : 'auto'
|
|
815
|
+
},
|
|
816
|
+
children: itemDom(v, i)
|
|
817
|
+
}), selectOperator({
|
|
673
818
|
triggerElement: function triggerElement(value) {
|
|
674
819
|
return (0, _jsxRuntime.jsx)("div", {
|
|
675
820
|
className: 'right-arrow',
|
|
@@ -698,6 +843,17 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
698
843
|
ind: -1,
|
|
699
844
|
position: 'add',
|
|
700
845
|
trigger: 'click'
|
|
846
|
+
}), isCopy && (selectedIndices.length > 0 || checkedItemsCount > 0) && selectOperator({
|
|
847
|
+
triggerElement: function triggerElement(value) {
|
|
848
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
849
|
+
className: (0, _classnames["default"])("Sqb-TableName green-name"),
|
|
850
|
+
onClick: handlePaste,
|
|
851
|
+
children: ["\u7C98\u8D34(", selectedIndices.length || checkedItemsCount, ")\u9879"]
|
|
852
|
+
});
|
|
853
|
+
},
|
|
854
|
+
ind: -1,
|
|
855
|
+
position: 'add',
|
|
856
|
+
trigger: 'click'
|
|
701
857
|
}), showPreview && (0, _jsxRuntime.jsx)("div", {
|
|
702
858
|
className: (0, _classnames["default"])("mb-2 font-bold uppercase tracking-wider preview-box"),
|
|
703
859
|
style: {
|
|
@@ -737,7 +893,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
737
893
|
newCode: getPreviewStr(caseList)
|
|
738
894
|
}), previewMode === 'code' && (0, _jsxRuntime.jsx)("div", {
|
|
739
895
|
className: (0, _classnames["default"])({
|
|
740
|
-
isSqlError:
|
|
896
|
+
isSqlError: errorInfo.isError
|
|
741
897
|
}),
|
|
742
898
|
children: caseList.map(function (v, i) {
|
|
743
899
|
if (v !== null && v !== void 0 && v.quotes) {
|
|
@@ -757,11 +913,31 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
757
913
|
children: [(0, _jsxRuntime.jsx)("br", {}), v.val, (0, _jsxRuntime.jsx)("br", {})]
|
|
758
914
|
}, i);
|
|
759
915
|
}
|
|
760
|
-
if (v.type === _types.AtomsTypeEnum.OPERATOR
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
916
|
+
if (v.type === _types.AtomsTypeEnum.OPERATOR) {
|
|
917
|
+
if (v.val === '(' || v.val === ')') {
|
|
918
|
+
return (0, _jsxRuntime.jsx)("span", {
|
|
919
|
+
className: (0, _classnames["default"])('mr-1', {
|
|
920
|
+
error: errorInfo.isBracket
|
|
921
|
+
}),
|
|
922
|
+
children: v.val
|
|
923
|
+
}, i);
|
|
924
|
+
}
|
|
925
|
+
if (v.val === 'case' || v.val === 'end' || v.val === 'when' || v.val === 'then') {
|
|
926
|
+
return (0, _jsxRuntime.jsx)("span", {
|
|
927
|
+
className: (0, _classnames["default"])('mr-1', {
|
|
928
|
+
error: errorInfo.isCase
|
|
929
|
+
}),
|
|
930
|
+
children: v.val
|
|
931
|
+
}, i);
|
|
932
|
+
}
|
|
933
|
+
if (v.val === 'over') {
|
|
934
|
+
return (0, _jsxRuntime.jsx)("span", {
|
|
935
|
+
className: (0, _classnames["default"])('mr-1', {
|
|
936
|
+
error: errorInfo.isOver
|
|
937
|
+
}),
|
|
938
|
+
children: v.val
|
|
939
|
+
}, i);
|
|
940
|
+
}
|
|
765
941
|
}
|
|
766
942
|
return (0, _jsxRuntime.jsx)("span", {
|
|
767
943
|
className: 'mr-1',
|
|
@@ -769,6 +945,13 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
769
945
|
}, i);
|
|
770
946
|
}
|
|
771
947
|
})
|
|
948
|
+
}), (0, _jsxRuntime.jsx)("div", {
|
|
949
|
+
className: 'errorMsg mt-2',
|
|
950
|
+
children: errorInfo.isError && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
951
|
+
children: ["\u63D0\u793A\uFF1A", (0, _jsxRuntime.jsx)("span", {
|
|
952
|
+
children: errorInfo.error
|
|
953
|
+
})]
|
|
954
|
+
})
|
|
772
955
|
})]
|
|
773
956
|
})]
|
|
774
957
|
})
|
|
@@ -6,4 +6,58 @@
|
|
|
6
6
|
.preview-container {
|
|
7
7
|
width: 100%;
|
|
8
8
|
}
|
|
9
|
+
|
|
10
|
+
.isSqlError {
|
|
11
|
+
background-color: rgba(255, 0, 0, 0.1) !important;
|
|
12
|
+
padding: 5px;
|
|
13
|
+
.error {
|
|
14
|
+
color: rgb(245, 63, 63) !important;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.errorMsg {
|
|
19
|
+
color: rgb(245, 63, 63);
|
|
20
|
+
// font-size: 10px;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
.Sqb-Filter-item {
|
|
24
|
+
position: relative;
|
|
25
|
+
&.item-selected {
|
|
26
|
+
.item-check {
|
|
27
|
+
display: block;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
.item-check {
|
|
31
|
+
display: none;
|
|
32
|
+
position: absolute;
|
|
33
|
+
// right: 0;
|
|
34
|
+
// top: -10px;
|
|
35
|
+
z-index: 1;
|
|
36
|
+
margin: 0;
|
|
37
|
+
padding: 0;
|
|
38
|
+
width: 100%;
|
|
39
|
+
height: 36px;
|
|
40
|
+
.pd-Checkbox-mask-wrapper {
|
|
41
|
+
margin-top: 10px;
|
|
42
|
+
margin-left: 5px;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
.Sqb-NotebookCell {
|
|
47
|
+
position: relative;
|
|
48
|
+
&:hover {
|
|
49
|
+
.item-isCheck {
|
|
50
|
+
display: block;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
.item-isCheck {
|
|
54
|
+
&.isCheck {
|
|
55
|
+
display: block;
|
|
56
|
+
}
|
|
57
|
+
display: none;
|
|
58
|
+
position: absolute;
|
|
59
|
+
right: 0;
|
|
60
|
+
top: 0;
|
|
61
|
+
// transform: translateX(100%);
|
|
62
|
+
}
|
|
9
63
|
}
|
|
@@ -19,3 +19,10 @@ export declare const customTypes: ({
|
|
|
19
19
|
})[];
|
|
20
20
|
export declare const getTemplateItem: (type: AtomsTypeEnum, item?: any) => AtomsItem;
|
|
21
21
|
export declare const isOk: (rhsVal: AtomsItem[]) => boolean;
|
|
22
|
+
export declare function validateExpressionIntegrity(list: AtomsItem[]): {
|
|
23
|
+
isError: boolean;
|
|
24
|
+
error?: string;
|
|
25
|
+
isBracket?: boolean;
|
|
26
|
+
isCase?: boolean;
|
|
27
|
+
isOver?: boolean;
|
|
28
|
+
};
|