@gingkoo/pandora-metabase 1.0.126 → 1.0.128
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/expression/index.js +15 -5
- package/lib/cjs/components/dialog/expression/index.less +31 -16
- package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.d.ts +14 -5
- package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.js +236 -62
- package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +3 -2
- package/lib/cjs/components/dialog/formula-list/LogicGroup.js +19 -11
- package/lib/cjs/components/dialog/formula-list/index.d.ts +1 -0
- package/lib/cjs/components/dialog/formula-list/index.js +658 -174
- package/lib/cjs/components/dialog/formula-list/index.less +1438 -145
- package/lib/cjs/components/dialog/formula-list/utils.js +50 -19
- package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +1 -0
- package/lib/cjs/components/dialog/select-column-multiple/index.js +42 -22
- package/lib/cjs/components/dialog/select-summarize/index.js +10 -2
- package/lib/cjs/components/dialog/select-table/index.d.ts +2 -1
- package/lib/cjs/components/dialog/select-table/index.js +197 -52
- package/lib/cjs/components/dialog/select-table/index.less +45 -2
- package/lib/cjs/components/metabase/index.less +156 -39
- package/lib/cjs/components/modules/custom-column.js +7 -3
- package/lib/cjs/components/modules/filter.js +6 -3
- package/lib/cjs/components/modules/join-data.js +67 -16
- package/lib/cjs/components/modules/permission-table.js +8 -4
- package/lib/cjs/components/modules/sort.js +2 -1
- package/lib/cjs/components/modules/summarize/group-by.js +20 -6
- package/lib/cjs/components/modules/summarize/select-index.js +9 -5
- package/lib/cjs/components/modules/table-data.js +26 -5
- package/lib/cjs/hooks/use-state.js +143 -17
- package/lib/cjs/index.js +7 -1
- package/lib/cjs/store/types.d.ts +14 -7
- package/lib/cjs/types.d.ts +8 -0
- package/lib/cjs/utils/transformSql.js +44 -21
- package/lib/cjs/utils.d.ts +2 -2
- package/lib/cjs/utils.js +349 -58
- package/lib/es/components/dialog/expression/index.js +15 -5
- package/lib/es/components/dialog/expression/index.less +31 -16
- package/lib/es/components/dialog/formula-list/CaseWhenGroup.d.ts +14 -5
- package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +238 -64
- package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +3 -2
- package/lib/es/components/dialog/formula-list/LogicGroup.js +19 -11
- package/lib/es/components/dialog/formula-list/index.d.ts +1 -0
- package/lib/es/components/dialog/formula-list/index.js +660 -176
- package/lib/es/components/dialog/formula-list/index.less +1438 -145
- package/lib/es/components/dialog/formula-list/utils.js +50 -19
- package/lib/es/components/dialog/select-column-multiple/index.d.ts +1 -0
- package/lib/es/components/dialog/select-column-multiple/index.js +42 -22
- package/lib/es/components/dialog/select-summarize/index.js +10 -2
- package/lib/es/components/dialog/select-table/index.d.ts +2 -1
- package/lib/es/components/dialog/select-table/index.js +197 -52
- package/lib/es/components/dialog/select-table/index.less +45 -2
- package/lib/es/components/metabase/index.less +156 -39
- package/lib/es/components/modules/custom-column.js +7 -3
- package/lib/es/components/modules/filter.js +6 -3
- package/lib/es/components/modules/join-data.js +67 -16
- package/lib/es/components/modules/permission-table.js +8 -4
- package/lib/es/components/modules/sort.js +2 -1
- package/lib/es/components/modules/summarize/group-by.js +21 -7
- package/lib/es/components/modules/summarize/select-index.js +10 -6
- package/lib/es/components/modules/table-data.js +26 -5
- package/lib/es/hooks/use-state.js +143 -17
- package/lib/es/index.js +7 -1
- package/lib/es/store/types.d.ts +14 -7
- package/lib/es/types.d.ts +8 -0
- package/lib/es/utils/transformSql.js +45 -22
- package/lib/es/utils.d.ts +2 -2
- package/lib/es/utils.js +350 -59
- package/package.json +1 -1
|
@@ -2,15 +2,15 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
3
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
4
4
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
5
|
-
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
6
5
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
6
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
7
7
|
var _excluded = ["notExistsToolbar", "toolbar"],
|
|
8
8
|
_excluded2 = ["subToolbar", "notExistsColumns", "showFields", "isExit", "toolbar"];
|
|
9
9
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
10
|
-
import { jsx as _jsx,
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
11
|
import React, { useEffect, useState, useMemo, useRef, forwardRef } from 'react';
|
|
12
12
|
import './index.less';
|
|
13
|
-
import { FieldString, FieldNumber, FfPlus } from '@gingkoo/pandora-icons';
|
|
13
|
+
import { FieldString, FieldNumber, FfPlus, FullscreenOExpand } from '@gingkoo/pandora-icons';
|
|
14
14
|
import cx from 'classnames';
|
|
15
15
|
import Metabase from '../../../index';
|
|
16
16
|
import { __ } from '../../../locale';
|
|
@@ -34,9 +34,99 @@ import storage from '../../../utils/storage';
|
|
|
34
34
|
import { getTopLayerZIndex } from '../../../utils/helper-dom';
|
|
35
35
|
import CaseWhenGroup from './CaseWhenGroup';
|
|
36
36
|
import LogicGroup from './LogicGroup';
|
|
37
|
+
import { SummarizeAlias } from '../../../store/helper';
|
|
37
38
|
var CASE_FIXED_OPERATORS = ['case', 'when', 'then', 'else', 'end'];
|
|
38
39
|
var LOGIC_FIXED_OPERATORS = ['(', ')'];
|
|
39
40
|
var LOGIC_REQUIRED_OPERATORS = ['(', ')'];
|
|
41
|
+
var TOKEN_DELETE_ICON_SIZE = 10;
|
|
42
|
+
var ADD_TRIGGER_STYLE = {
|
|
43
|
+
display: 'inline-flex',
|
|
44
|
+
alignItems: 'center',
|
|
45
|
+
justifyContent: 'center',
|
|
46
|
+
minHeight: 28,
|
|
47
|
+
minWidth: 36,
|
|
48
|
+
padding: '4px 7px',
|
|
49
|
+
border: '1px solid transparent',
|
|
50
|
+
borderRadius: 5,
|
|
51
|
+
boxSizing: 'border-box',
|
|
52
|
+
color: '#fff',
|
|
53
|
+
backgroundColor: 'rgb(147, 161, 171)',
|
|
54
|
+
fontSize: 13,
|
|
55
|
+
lineHeight: '18px',
|
|
56
|
+
cursor: 'pointer'
|
|
57
|
+
};
|
|
58
|
+
var ZOOM_FOOTER_BUTTON_STYLE = {
|
|
59
|
+
minWidth: 72,
|
|
60
|
+
height: 30,
|
|
61
|
+
borderRadius: 6
|
|
62
|
+
};
|
|
63
|
+
var ZOOM_FOOTER_CANCEL_STYLE = _objectSpread(_objectSpread({}, ZOOM_FOOTER_BUTTON_STYLE), {}, {
|
|
64
|
+
borderColor: 'rgba(83, 92, 112, 0.18)',
|
|
65
|
+
background: '#fff',
|
|
66
|
+
color: 'rgba(83, 92, 112, 0.82)'
|
|
67
|
+
});
|
|
68
|
+
var ZOOM_FOOTER_CONFIRM_STYLE = _objectSpread(_objectSpread({}, ZOOM_FOOTER_BUTTON_STYLE), {}, {
|
|
69
|
+
borderColor: 'rgb(80, 158, 227)',
|
|
70
|
+
background: 'rgb(80, 158, 227)',
|
|
71
|
+
color: '#fff'
|
|
72
|
+
});
|
|
73
|
+
var FORMULA_LIST_ZOOM_BUTTON_STYLE = {
|
|
74
|
+
display: 'inline-flex',
|
|
75
|
+
alignItems: 'center',
|
|
76
|
+
justifyContent: 'center',
|
|
77
|
+
width: 22,
|
|
78
|
+
minWidth: 22,
|
|
79
|
+
height: 22,
|
|
80
|
+
margin: 0,
|
|
81
|
+
padding: 0,
|
|
82
|
+
border: 'none',
|
|
83
|
+
borderRadius: 999,
|
|
84
|
+
background: 'transparent',
|
|
85
|
+
color: 'rgba(83, 92, 112, 0.58)',
|
|
86
|
+
cursor: 'pointer',
|
|
87
|
+
lineHeight: 0
|
|
88
|
+
};
|
|
89
|
+
var TOKEN_BASE_STYLE = {
|
|
90
|
+
display: 'inline-flex',
|
|
91
|
+
alignItems: 'center',
|
|
92
|
+
minHeight: 28,
|
|
93
|
+
padding: '4px 7px',
|
|
94
|
+
border: '1px solid transparent',
|
|
95
|
+
borderRadius: 5,
|
|
96
|
+
boxSizing: 'border-box',
|
|
97
|
+
fontSize: 13,
|
|
98
|
+
lineHeight: '18px',
|
|
99
|
+
cursor: 'pointer'
|
|
100
|
+
};
|
|
101
|
+
var TOKEN_PALETTE = {
|
|
102
|
+
blue: 'rgb(80, 158, 227)',
|
|
103
|
+
purple: 'rgb(113, 114, 173)',
|
|
104
|
+
gray: 'rgb(147, 161, 171)',
|
|
105
|
+
green: 'rgb(136, 191, 77)'
|
|
106
|
+
};
|
|
107
|
+
var getTokenStyleByClassName = function getTokenStyleByClassName(className, extraStyle) {
|
|
108
|
+
var names = " ".concat(className || '', " ");
|
|
109
|
+
var color = TOKEN_PALETTE.blue;
|
|
110
|
+
if (names.includes(' purple-name ')) {
|
|
111
|
+
color = TOKEN_PALETTE.purple;
|
|
112
|
+
} else if (names.includes(' gray-name ')) {
|
|
113
|
+
color = TOKEN_PALETTE.gray;
|
|
114
|
+
} else if (names.includes(' green-name ')) {
|
|
115
|
+
color = TOKEN_PALETTE.green;
|
|
116
|
+
}
|
|
117
|
+
var selectedStyle = _objectSpread(_objectSpread({}, TOKEN_BASE_STYLE), {}, {
|
|
118
|
+
color: '#fff',
|
|
119
|
+
backgroundColor: color
|
|
120
|
+
});
|
|
121
|
+
var notSelectedStyle = _objectSpread(_objectSpread({}, TOKEN_BASE_STYLE), {}, {
|
|
122
|
+
borderColor: color.replace('rgb', 'rgba').replace(')', ', 0.25)'),
|
|
123
|
+
color: color,
|
|
124
|
+
backgroundColor: 'transparent'
|
|
125
|
+
});
|
|
126
|
+
return _objectSpread(_objectSpread(_objectSpread({}, names.includes(' notSelected ') ? notSelectedStyle : selectedStyle), names.includes(' operator-trigger ') ? {
|
|
127
|
+
padding: '4px 7px'
|
|
128
|
+
} : {}), extraStyle);
|
|
129
|
+
};
|
|
40
130
|
var FormulaList = forwardRef(function (props, ref) {
|
|
41
131
|
var _storage$_metabaseCop;
|
|
42
132
|
var _useState = useState((storage === null || storage === void 0 || (_storage$_metabaseCop = storage._metabaseCopyItems) === null || _storage$_metabaseCop === void 0 ? void 0 : _storage$_metabaseCop.length) || 0),
|
|
@@ -76,6 +166,8 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
76
166
|
embedded = _props$embedded === void 0 ? false : _props$embedded,
|
|
77
167
|
_props$enableCopy = props.enableCopy,
|
|
78
168
|
enableCopy = _props$enableCopy === void 0 ? true : _props$enableCopy,
|
|
169
|
+
_props$enableZoom = props.enableZoom,
|
|
170
|
+
enableZoom = _props$enableZoom === void 0 ? true : _props$enableZoom,
|
|
79
171
|
parentPopupChannel = props.parentPopupChannel;
|
|
80
172
|
var parentPopupLockCountRef = useRef(0);
|
|
81
173
|
var parentPopupUnlockTimerRef = useRef(null);
|
|
@@ -216,21 +308,6 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
216
308
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
217
309
|
filterVal = _useState0[0],
|
|
218
310
|
setFilterVal = _useState0[1];
|
|
219
|
-
var setCaseList = function setCaseList(data) {
|
|
220
|
-
var quotes = data.map(function (v) {
|
|
221
|
-
if (v !== null && v !== void 0 && v.quotes) return v.quotes;
|
|
222
|
-
if (v !== null && v !== void 0 && v.fieldName) return v.fieldName;
|
|
223
|
-
return v === null || v === void 0 ? void 0 : v.val;
|
|
224
|
-
}).join(' ');
|
|
225
|
-
caseList = data;
|
|
226
|
-
caseListRef.current = data;
|
|
227
|
-
onChange === null || onChange === void 0 || onChange(data, quotes);
|
|
228
|
-
};
|
|
229
|
-
var updateAtomAt = function updateAtomAt(index, nextItem) {
|
|
230
|
-
var nextList = caseList.slice();
|
|
231
|
-
nextList[index] = nextItem;
|
|
232
|
-
setCaseList(nextList);
|
|
233
|
-
};
|
|
234
311
|
function getSelectDisplayText(item) {
|
|
235
312
|
var displayField = item.displayField || 'value';
|
|
236
313
|
var getOptionText = function getOptionText(value) {
|
|
@@ -248,36 +325,42 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
248
325
|
}
|
|
249
326
|
return getOptionText(String(item.val || ''));
|
|
250
327
|
}
|
|
328
|
+
function getFieldDisplayName(field) {
|
|
329
|
+
if (!field) return '';
|
|
330
|
+
if (field.tableId === SummarizeAlias) {
|
|
331
|
+
return field.fieldAlias || field.fieldName || '';
|
|
332
|
+
}
|
|
333
|
+
return field.fieldName || field.fieldAlias || '';
|
|
334
|
+
}
|
|
251
335
|
function getItemDisplayText(v) {
|
|
252
336
|
if (!v) return '';
|
|
253
337
|
if (v.quotes) return v.quotes;
|
|
338
|
+
if (v.type === AtomsTypeEnum.FIELD) return getFieldDisplayName(v);
|
|
254
339
|
if (v.fieldName) return v.fieldName;
|
|
255
340
|
if (v.type === AtomsTypeEnum.FORMULA) {
|
|
256
341
|
return v.name ? getQuotes(v, v.args, formulaList) : '';
|
|
257
342
|
}
|
|
258
343
|
if (v.type === AtomsTypeEnum.CASE_WHEN) {
|
|
259
|
-
var
|
|
344
|
+
var caseAtomsText = (v.caseAtoms || []).map(function (item) {
|
|
260
345
|
return getItemDisplayText(item);
|
|
261
346
|
}).join(' ');
|
|
262
|
-
var
|
|
263
|
-
var whenText = (branch.
|
|
264
|
-
|
|
265
|
-
}).join(' ');
|
|
266
|
-
var thenText = (branch.then || []).map(function (item) {
|
|
267
|
-
return getItemDisplayText(item);
|
|
268
|
-
}).join(' ');
|
|
347
|
+
var whenClausesText = (v.whenClauses || []).map(function (branch) {
|
|
348
|
+
var whenText = (branch.whenAtoms || []).map(getItemDisplayText).join(' ');
|
|
349
|
+
var thenText = (branch.thenAtoms || []).map(getItemDisplayText).join(' ');
|
|
269
350
|
return "when ".concat(whenText, " then ").concat(thenText).trim();
|
|
270
351
|
}).join(' ');
|
|
271
|
-
var
|
|
272
|
-
|
|
273
|
-
}).join(' ')) : '';
|
|
274
|
-
return "case ".concat(caseValueText, " ").concat(branchText).concat(elseText, " end").replace(/\s+/g, ' ').trim();
|
|
352
|
+
var elseAtomsText = (v.elseAtoms || []).length ? " else ".concat((v.elseAtoms || []).map(getItemDisplayText).join(' ')) : '';
|
|
353
|
+
return "case ".concat(caseAtomsText, " ").concat(whenClausesText).concat(elseAtomsText, " end").replace(/\s+/g, ' ').trim();
|
|
275
354
|
}
|
|
276
355
|
if (v.type === AtomsTypeEnum.AND_OR) {
|
|
277
|
-
var
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
356
|
+
var hasBinarySides = Array.isArray(v.leftAtoms) || Array.isArray(v.rightAtoms);
|
|
357
|
+
if (hasBinarySides) {
|
|
358
|
+
var leftText = (v.leftAtoms || []).map(getItemDisplayText).join(' ');
|
|
359
|
+
var rightText = (v.rightAtoms || []).map(getItemDisplayText).join(' ');
|
|
360
|
+
return "( ".concat(leftText, " ").concat(v.operator || 'and', " ").concat(rightText, " )").replace(/\s+/g, ' ').trim();
|
|
361
|
+
}
|
|
362
|
+
var atomsText = (v.atoms || []).map(getItemDisplayText).join(' ');
|
|
363
|
+
return "".concat(v.operator || 'and', " ( ").concat(atomsText, " )").replace(/\s+/g, ' ').trim();
|
|
281
364
|
}
|
|
282
365
|
if (v.type === AtomsTypeEnum.SELECT) {
|
|
283
366
|
return getSelectDisplayText(v);
|
|
@@ -287,6 +370,73 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
287
370
|
}
|
|
288
371
|
return v.val || '';
|
|
289
372
|
}
|
|
373
|
+
var getItemQuotes = function getItemQuotes(item) {
|
|
374
|
+
return getItemDisplayText(_objectSpread(_objectSpread({}, item), {}, {
|
|
375
|
+
quotes: ''
|
|
376
|
+
}));
|
|
377
|
+
};
|
|
378
|
+
var _withSyncedQuotes = function withSyncedQuotes(item) {
|
|
379
|
+
if (item.type === AtomsTypeEnum.CASE_WHEN) {
|
|
380
|
+
var _item$elseAtoms;
|
|
381
|
+
var nextItem = _objectSpread(_objectSpread({}, item), {}, {
|
|
382
|
+
caseAtoms: (item.caseAtoms || []).map(function (currentItem) {
|
|
383
|
+
return _withSyncedQuotes(currentItem);
|
|
384
|
+
}),
|
|
385
|
+
whenClauses: (item.whenClauses || []).map(function (clause) {
|
|
386
|
+
return _objectSpread(_objectSpread({}, clause), {}, {
|
|
387
|
+
whenAtoms: (clause.whenAtoms || []).map(function (currentItem) {
|
|
388
|
+
return _withSyncedQuotes(currentItem);
|
|
389
|
+
}),
|
|
390
|
+
thenAtoms: (clause.thenAtoms || []).map(function (currentItem) {
|
|
391
|
+
return _withSyncedQuotes(currentItem);
|
|
392
|
+
})
|
|
393
|
+
});
|
|
394
|
+
}),
|
|
395
|
+
elseAtoms: (_item$elseAtoms = item.elseAtoms) === null || _item$elseAtoms === void 0 ? void 0 : _item$elseAtoms.map(function (currentItem) {
|
|
396
|
+
return _withSyncedQuotes(currentItem);
|
|
397
|
+
})
|
|
398
|
+
});
|
|
399
|
+
return _objectSpread(_objectSpread({}, nextItem), {}, {
|
|
400
|
+
quotes: getItemQuotes(nextItem)
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
if (item.type === AtomsTypeEnum.AND_OR) {
|
|
404
|
+
var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
|
|
405
|
+
var _nextItem = _objectSpread(_objectSpread({}, item), hasBinarySides ? {
|
|
406
|
+
atoms: undefined,
|
|
407
|
+
leftAtoms: (item.leftAtoms || []).map(function (currentItem) {
|
|
408
|
+
return _withSyncedQuotes(currentItem);
|
|
409
|
+
}),
|
|
410
|
+
rightAtoms: (item.rightAtoms || []).map(function (currentItem) {
|
|
411
|
+
return _withSyncedQuotes(currentItem);
|
|
412
|
+
})
|
|
413
|
+
} : {
|
|
414
|
+
atoms: (item.atoms || []).map(function (currentItem) {
|
|
415
|
+
return _withSyncedQuotes(currentItem);
|
|
416
|
+
})
|
|
417
|
+
});
|
|
418
|
+
return _objectSpread(_objectSpread({}, _nextItem), {}, {
|
|
419
|
+
quotes: getItemQuotes(_nextItem)
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
return item;
|
|
423
|
+
};
|
|
424
|
+
var setCaseList = function setCaseList(data) {
|
|
425
|
+
var nextData = data.map(function (item) {
|
|
426
|
+
return _withSyncedQuotes(item);
|
|
427
|
+
});
|
|
428
|
+
var quotes = nextData.map(function (item) {
|
|
429
|
+
return getItemDisplayText(item);
|
|
430
|
+
}).join(' ');
|
|
431
|
+
caseList = nextData;
|
|
432
|
+
caseListRef.current = nextData;
|
|
433
|
+
onChange === null || onChange === void 0 || onChange(nextData, quotes);
|
|
434
|
+
};
|
|
435
|
+
var updateAtomAt = function updateAtomAt(index, nextItem) {
|
|
436
|
+
var nextList = caseList.slice();
|
|
437
|
+
nextList[index] = nextItem;
|
|
438
|
+
setCaseList(nextList);
|
|
439
|
+
};
|
|
290
440
|
var getPreviewStr = function getPreviewStr() {
|
|
291
441
|
var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
292
442
|
return data.map(function (v) {
|
|
@@ -308,9 +458,256 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
308
458
|
children: children
|
|
309
459
|
});
|
|
310
460
|
};
|
|
461
|
+
var openCaseWhenFormulaModal = function openCaseWhenFormulaModal(e, value, index) {
|
|
462
|
+
e.preventDefault();
|
|
463
|
+
e.stopPropagation();
|
|
464
|
+
var childModalZIndex = getTopLayerZIndex() + 1;
|
|
465
|
+
var modalInstance;
|
|
466
|
+
var CaseWhenZoomEditor = function CaseWhenZoomEditor() {
|
|
467
|
+
var _useState1 = useState(function () {
|
|
468
|
+
return cloneDeep(value);
|
|
469
|
+
}),
|
|
470
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
471
|
+
draftValue = _useState10[0],
|
|
472
|
+
setDraftValue = _useState10[1];
|
|
473
|
+
var _useState11 = useState(null),
|
|
474
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
475
|
+
activeZoomRegionKey = _useState12[0],
|
|
476
|
+
setActiveZoomRegionKey = _useState12[1];
|
|
477
|
+
var updateDraftValue = function updateDraftValue(nextValue) {
|
|
478
|
+
setDraftValue(_withSyncedQuotes(nextValue));
|
|
479
|
+
};
|
|
480
|
+
var handleOk = function handleOk() {
|
|
481
|
+
var _modalInstance2, _modalInstance2$close;
|
|
482
|
+
updateAtomAt(index, cloneDeep(draftValue));
|
|
483
|
+
(_modalInstance2 = modalInstance) === null || _modalInstance2 === void 0 || (_modalInstance2$close = _modalInstance2.close) === null || _modalInstance2$close === void 0 || _modalInstance2$close.call(_modalInstance2);
|
|
484
|
+
};
|
|
485
|
+
return _jsx(Provider, {
|
|
486
|
+
value: store,
|
|
487
|
+
children: _jsxs("div", {
|
|
488
|
+
className: 'Sqb-FormulaListZoomEditor',
|
|
489
|
+
children: [_jsx("div", {
|
|
490
|
+
className: 'Sqb-FormulaListZoomEditor-body',
|
|
491
|
+
children: _jsx("div", {
|
|
492
|
+
className: 'Sqb-NotebookCell Sqb-FormulaListZoomEditor-cell',
|
|
493
|
+
children: _jsx(CaseWhenGroup, {
|
|
494
|
+
showTools: false,
|
|
495
|
+
useBranchScrollInner: true,
|
|
496
|
+
caseRegionKey: 'case-zoom-case',
|
|
497
|
+
elseRegionKey: 'case-zoom-else',
|
|
498
|
+
activeRegionKey: activeZoomRegionKey,
|
|
499
|
+
onActivateRegion: setActiveZoomRegionKey,
|
|
500
|
+
caseAtomsContent: renderNestedFormulaList(draftValue.caseAtoms || [], function (nextList) {
|
|
501
|
+
updateDraftValue(_objectSpread(_objectSpread({}, draftValue), {}, {
|
|
502
|
+
caseAtoms: nextList
|
|
503
|
+
}));
|
|
504
|
+
}),
|
|
505
|
+
whenClauses: (draftValue.whenClauses || []).map(function (branch, branchIndex) {
|
|
506
|
+
return {
|
|
507
|
+
key: "case-zoom-".concat(branchIndex),
|
|
508
|
+
canDelete: (draftValue.whenClauses || []).length > 1,
|
|
509
|
+
whenContent: renderNestedFormulaList(branch.whenAtoms || [], function (nextList) {
|
|
510
|
+
var nextWhenClauses = (draftValue.whenClauses || []).slice();
|
|
511
|
+
nextWhenClauses[branchIndex] = _objectSpread(_objectSpread({}, branch), {}, {
|
|
512
|
+
whenAtoms: nextList
|
|
513
|
+
});
|
|
514
|
+
updateDraftValue(_objectSpread(_objectSpread({}, draftValue), {}, {
|
|
515
|
+
whenClauses: nextWhenClauses
|
|
516
|
+
}));
|
|
517
|
+
}),
|
|
518
|
+
thenContent: renderNestedFormulaList(branch.thenAtoms || [], function (nextList) {
|
|
519
|
+
var nextWhenClauses = (draftValue.whenClauses || []).slice();
|
|
520
|
+
nextWhenClauses[branchIndex] = _objectSpread(_objectSpread({}, branch), {}, {
|
|
521
|
+
thenAtoms: nextList
|
|
522
|
+
});
|
|
523
|
+
updateDraftValue(_objectSpread(_objectSpread({}, draftValue), {}, {
|
|
524
|
+
whenClauses: nextWhenClauses
|
|
525
|
+
}));
|
|
526
|
+
}),
|
|
527
|
+
onAddAfter: function onAddAfter(event) {
|
|
528
|
+
event.stopPropagation();
|
|
529
|
+
var nextWhenClauses = (draftValue.whenClauses || []).slice();
|
|
530
|
+
nextWhenClauses.splice(branchIndex + 1, 0, {
|
|
531
|
+
whenAtoms: [{
|
|
532
|
+
val: '',
|
|
533
|
+
type: AtomsTypeEnum.UNKNOWN
|
|
534
|
+
}],
|
|
535
|
+
thenAtoms: [{
|
|
536
|
+
val: '',
|
|
537
|
+
type: AtomsTypeEnum.UNKNOWN
|
|
538
|
+
}]
|
|
539
|
+
});
|
|
540
|
+
updateDraftValue(_objectSpread(_objectSpread({}, draftValue), {}, {
|
|
541
|
+
whenClauses: nextWhenClauses
|
|
542
|
+
}));
|
|
543
|
+
},
|
|
544
|
+
onDelete: function onDelete(event) {
|
|
545
|
+
event.stopPropagation();
|
|
546
|
+
var whenClauses = draftValue.whenClauses || [];
|
|
547
|
+
if (whenClauses.length <= 1) return;
|
|
548
|
+
updateDraftValue(_objectSpread(_objectSpread({}, draftValue), {}, {
|
|
549
|
+
whenClauses: whenClauses.filter(function (_, currentIndex) {
|
|
550
|
+
return currentIndex !== branchIndex;
|
|
551
|
+
})
|
|
552
|
+
}));
|
|
553
|
+
}
|
|
554
|
+
};
|
|
555
|
+
}),
|
|
556
|
+
elseContent: draftValue.elseAtoms ? renderNestedFormulaList(draftValue.elseAtoms || [], function (nextList) {
|
|
557
|
+
updateDraftValue(_objectSpread(_objectSpread({}, draftValue), {}, {
|
|
558
|
+
elseAtoms: nextList
|
|
559
|
+
}));
|
|
560
|
+
}) : undefined,
|
|
561
|
+
onAddBranch: function onAddBranch(event) {
|
|
562
|
+
event.stopPropagation();
|
|
563
|
+
updateDraftValue(_objectSpread(_objectSpread({}, draftValue), {}, {
|
|
564
|
+
whenClauses: [].concat(_toConsumableArray(draftValue.whenClauses || []), [{
|
|
565
|
+
whenAtoms: [{
|
|
566
|
+
val: '',
|
|
567
|
+
type: AtomsTypeEnum.UNKNOWN
|
|
568
|
+
}],
|
|
569
|
+
thenAtoms: [{
|
|
570
|
+
val: '',
|
|
571
|
+
type: AtomsTypeEnum.UNKNOWN
|
|
572
|
+
}]
|
|
573
|
+
}])
|
|
574
|
+
}));
|
|
575
|
+
},
|
|
576
|
+
onAddElse: function onAddElse(event) {
|
|
577
|
+
event.stopPropagation();
|
|
578
|
+
updateDraftValue(_objectSpread(_objectSpread({}, draftValue), {}, {
|
|
579
|
+
elseAtoms: [{
|
|
580
|
+
val: '',
|
|
581
|
+
type: AtomsTypeEnum.UNKNOWN
|
|
582
|
+
}]
|
|
583
|
+
}));
|
|
584
|
+
},
|
|
585
|
+
onRemoveElse: function onRemoveElse(event) {
|
|
586
|
+
event.stopPropagation();
|
|
587
|
+
updateDraftValue(_objectSpread(_objectSpread({}, draftValue), {}, {
|
|
588
|
+
elseAtoms: undefined
|
|
589
|
+
}));
|
|
590
|
+
}
|
|
591
|
+
})
|
|
592
|
+
})
|
|
593
|
+
}), _jsxs("div", {
|
|
594
|
+
className: 'Sqb-FormulaListZoomEditor-footer',
|
|
595
|
+
children: [_jsx(Button, {
|
|
596
|
+
className: 'sqb-formula-list-zoom-editor-cancel',
|
|
597
|
+
style: ZOOM_FOOTER_CANCEL_STYLE,
|
|
598
|
+
onClick: function onClick() {
|
|
599
|
+
var _modalInstance3, _modalInstance3$close;
|
|
600
|
+
return (_modalInstance3 = modalInstance) === null || _modalInstance3 === void 0 || (_modalInstance3$close = _modalInstance3.close) === null || _modalInstance3$close === void 0 ? void 0 : _modalInstance3$close.call(_modalInstance3);
|
|
601
|
+
},
|
|
602
|
+
children: "\u53D6\u6D88"
|
|
603
|
+
}), _jsx(Button, {
|
|
604
|
+
className: 'sqb-formula-list-zoom-editor-confirm',
|
|
605
|
+
primary: true,
|
|
606
|
+
style: ZOOM_FOOTER_CONFIRM_STYLE,
|
|
607
|
+
onClick: handleOk,
|
|
608
|
+
children: "\u786E\u5B9A"
|
|
609
|
+
})]
|
|
610
|
+
})]
|
|
611
|
+
})
|
|
612
|
+
});
|
|
613
|
+
};
|
|
614
|
+
modalInstance = openChildModal({
|
|
615
|
+
zIndex: childModalZIndex,
|
|
616
|
+
className: 'sqb-formula-list-zoom-modal',
|
|
617
|
+
title: '编辑',
|
|
618
|
+
transparentMask: true,
|
|
619
|
+
modalWidth: 1180,
|
|
620
|
+
modalHeight: 680,
|
|
621
|
+
content: _jsx(CaseWhenZoomEditor, {}),
|
|
622
|
+
onClose: function onClose() {}
|
|
623
|
+
});
|
|
624
|
+
};
|
|
625
|
+
var openFormulaListModal = function openFormulaListModal(e) {
|
|
626
|
+
e.preventDefault();
|
|
627
|
+
e.stopPropagation();
|
|
628
|
+
var childModalZIndex = getTopLayerZIndex() + 1;
|
|
629
|
+
var modalInstance;
|
|
630
|
+
var FormulaListZoomEditor = function FormulaListZoomEditor() {
|
|
631
|
+
var _useState13 = useState(function () {
|
|
632
|
+
return cloneDeep(caseList || []);
|
|
633
|
+
}),
|
|
634
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
635
|
+
draftList = _useState14[0],
|
|
636
|
+
setDraftList = _useState14[1];
|
|
637
|
+
var updateDraftList = function updateDraftList(nextList) {
|
|
638
|
+
setDraftList(nextList.map(function (item) {
|
|
639
|
+
return _withSyncedQuotes(item);
|
|
640
|
+
}));
|
|
641
|
+
};
|
|
642
|
+
var handleOk = function handleOk() {
|
|
643
|
+
var _modalInstance4, _modalInstance4$close;
|
|
644
|
+
setCaseList(cloneDeep(draftList));
|
|
645
|
+
(_modalInstance4 = modalInstance) === null || _modalInstance4 === void 0 || (_modalInstance4$close = _modalInstance4.close) === null || _modalInstance4$close === void 0 || _modalInstance4$close.call(_modalInstance4);
|
|
646
|
+
};
|
|
647
|
+
return _jsx(Provider, {
|
|
648
|
+
value: store,
|
|
649
|
+
children: _jsxs("div", {
|
|
650
|
+
className: 'Sqb-FormulaListZoomEditor',
|
|
651
|
+
children: [_jsx("div", {
|
|
652
|
+
className: 'Sqb-FormulaListZoomEditor-body Sqb-FormulaListZoomEditor-body--formulaList',
|
|
653
|
+
children: _jsx(FormulaList, {
|
|
654
|
+
ref: ref,
|
|
655
|
+
value: draftList,
|
|
656
|
+
data: data,
|
|
657
|
+
exitData: exitData,
|
|
658
|
+
onChange: function onChange(atoms) {
|
|
659
|
+
return updateDraftList(atoms);
|
|
660
|
+
},
|
|
661
|
+
customTypes: _customTypes,
|
|
662
|
+
otherTypes: otherTypes,
|
|
663
|
+
isCustom: isCustom,
|
|
664
|
+
showPreview: showPreview,
|
|
665
|
+
check: check,
|
|
666
|
+
_type: _type,
|
|
667
|
+
enableCopy: false,
|
|
668
|
+
enableZoom: false,
|
|
669
|
+
parentPopupChannel: parentPopupChannel
|
|
670
|
+
})
|
|
671
|
+
}), _jsxs("div", {
|
|
672
|
+
className: 'Sqb-FormulaListZoomEditor-footer',
|
|
673
|
+
children: [_jsx(Button, {
|
|
674
|
+
className: 'sqb-formula-list-zoom-editor-cancel',
|
|
675
|
+
style: ZOOM_FOOTER_CANCEL_STYLE,
|
|
676
|
+
onClick: function onClick() {
|
|
677
|
+
var _modalInstance5, _modalInstance5$close;
|
|
678
|
+
return (_modalInstance5 = modalInstance) === null || _modalInstance5 === void 0 || (_modalInstance5$close = _modalInstance5.close) === null || _modalInstance5$close === void 0 ? void 0 : _modalInstance5$close.call(_modalInstance5);
|
|
679
|
+
},
|
|
680
|
+
children: "\u53D6\u6D88"
|
|
681
|
+
}), _jsx(Button, {
|
|
682
|
+
className: 'sqb-formula-list-zoom-editor-confirm',
|
|
683
|
+
primary: true,
|
|
684
|
+
style: ZOOM_FOOTER_CONFIRM_STYLE,
|
|
685
|
+
onClick: handleOk,
|
|
686
|
+
children: "\u786E\u5B9A"
|
|
687
|
+
})]
|
|
688
|
+
})]
|
|
689
|
+
})
|
|
690
|
+
});
|
|
691
|
+
};
|
|
692
|
+
modalInstance = openChildModal({
|
|
693
|
+
zIndex: childModalZIndex,
|
|
694
|
+
className: 'sqb-formula-list-zoom-modal',
|
|
695
|
+
title: '编辑',
|
|
696
|
+
transparentMask: true,
|
|
697
|
+
modalWidth: 1180,
|
|
698
|
+
modalHeight: 680,
|
|
699
|
+
content: _jsx(FormulaListZoomEditor, {}),
|
|
700
|
+
onClose: function onClose() {}
|
|
701
|
+
});
|
|
702
|
+
};
|
|
311
703
|
var renderNestedFormulaList = function renderNestedFormulaList(list, onNestedChange) {
|
|
704
|
+
var hasNestedCaseWhen = list.some(function (item) {
|
|
705
|
+
return (item === null || item === void 0 ? void 0 : item.type) === AtomsTypeEnum.CASE_WHEN;
|
|
706
|
+
});
|
|
312
707
|
return _jsx("div", {
|
|
313
|
-
className: 'Sqb-NestedFormulaList',
|
|
708
|
+
className: cx('Sqb-NestedFormulaList', {
|
|
709
|
+
'Sqb-NestedFormulaList--hasCaseWhen': hasNestedCaseWhen
|
|
710
|
+
}),
|
|
314
711
|
children: _jsx(FormulaList, {
|
|
315
712
|
ref: ref,
|
|
316
713
|
embedded: true,
|
|
@@ -326,80 +723,94 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
326
723
|
showPreview: false,
|
|
327
724
|
check: check,
|
|
328
725
|
_type: _type,
|
|
726
|
+
enableZoom: false,
|
|
329
727
|
parentPopupChannel: parentPopupChannel
|
|
330
728
|
})
|
|
331
729
|
});
|
|
332
730
|
};
|
|
333
731
|
var renderCaseWhenEditor = function renderCaseWhenEditor(value, index) {
|
|
732
|
+
var caseAtoms = value.caseAtoms || [];
|
|
733
|
+
var whenClauses = value.whenClauses || [];
|
|
734
|
+
var elseAtoms = value.elseAtoms;
|
|
735
|
+
var caseRegionKey = "case-".concat(index, "-case");
|
|
736
|
+
var elseRegionKey = "case-".concat(index, "-else");
|
|
334
737
|
return _jsx(CaseWhenGroup, {
|
|
335
|
-
|
|
738
|
+
isNested: embedded,
|
|
739
|
+
useBranchScrollInner: !embedded,
|
|
740
|
+
caseRegionKey: caseRegionKey,
|
|
741
|
+
elseRegionKey: elseRegionKey,
|
|
742
|
+
activeRegionKey: hoveredCaseGroupKey,
|
|
743
|
+
onActivateRegion: setHoveredCaseGroupKey,
|
|
744
|
+
caseAtomsContent: renderNestedFormulaList(caseAtoms, function (nextList) {
|
|
336
745
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
337
|
-
|
|
746
|
+
caseAtoms: nextList
|
|
338
747
|
}));
|
|
339
748
|
}),
|
|
340
|
-
|
|
749
|
+
whenClauses: whenClauses.map(function (branch, branchIndex) {
|
|
341
750
|
return {
|
|
342
751
|
key: "case-".concat(index, "-branch-").concat(branchIndex),
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
752
|
+
canDelete: whenClauses.length > 1,
|
|
753
|
+
whenContent: renderNestedFormulaList(branch.whenAtoms || [], function (nextList) {
|
|
754
|
+
var nextWhenClauses = whenClauses.slice();
|
|
755
|
+
nextWhenClauses[branchIndex] = _objectSpread(_objectSpread({}, branch), {}, {
|
|
756
|
+
whenAtoms: nextList
|
|
347
757
|
});
|
|
348
758
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
349
|
-
|
|
759
|
+
whenClauses: nextWhenClauses
|
|
350
760
|
}));
|
|
351
761
|
}),
|
|
352
|
-
thenContent: renderNestedFormulaList(branch.
|
|
353
|
-
var
|
|
354
|
-
|
|
355
|
-
|
|
762
|
+
thenContent: renderNestedFormulaList(branch.thenAtoms || [], function (nextList) {
|
|
763
|
+
var nextWhenClauses = whenClauses.slice();
|
|
764
|
+
nextWhenClauses[branchIndex] = _objectSpread(_objectSpread({}, branch), {}, {
|
|
765
|
+
thenAtoms: nextList
|
|
356
766
|
});
|
|
357
767
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
358
|
-
|
|
768
|
+
whenClauses: nextWhenClauses
|
|
359
769
|
}));
|
|
360
770
|
}),
|
|
361
771
|
onAddAfter: function onAddAfter(e) {
|
|
362
772
|
e.stopPropagation();
|
|
363
|
-
var
|
|
364
|
-
|
|
365
|
-
|
|
773
|
+
var nextWhenClauses = whenClauses.slice();
|
|
774
|
+
nextWhenClauses.splice(branchIndex + 1, 0, {
|
|
775
|
+
whenAtoms: [{
|
|
366
776
|
val: '',
|
|
367
777
|
type: AtomsTypeEnum.UNKNOWN
|
|
368
778
|
}],
|
|
369
|
-
|
|
779
|
+
thenAtoms: [{
|
|
370
780
|
val: '',
|
|
371
781
|
type: AtomsTypeEnum.UNKNOWN
|
|
372
782
|
}]
|
|
373
783
|
});
|
|
374
784
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
375
|
-
|
|
785
|
+
whenClauses: nextWhenClauses
|
|
376
786
|
}));
|
|
377
787
|
},
|
|
378
788
|
onDelete: function onDelete(e) {
|
|
379
789
|
e.stopPropagation();
|
|
380
|
-
|
|
790
|
+
if (whenClauses.length <= 1) return;
|
|
791
|
+
var nextWhenClauses = whenClauses.filter(function (_, currentIndex) {
|
|
381
792
|
return currentIndex !== branchIndex;
|
|
382
793
|
});
|
|
383
794
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
384
|
-
|
|
795
|
+
whenClauses: nextWhenClauses
|
|
385
796
|
}));
|
|
386
797
|
}
|
|
387
798
|
};
|
|
388
799
|
}),
|
|
389
|
-
elseContent:
|
|
800
|
+
elseContent: elseAtoms ? renderNestedFormulaList(elseAtoms || [], function (nextList) {
|
|
390
801
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
391
|
-
|
|
802
|
+
elseAtoms: nextList
|
|
392
803
|
}));
|
|
393
804
|
}) : undefined,
|
|
394
805
|
onAddBranch: function onAddBranch(e) {
|
|
395
806
|
e.stopPropagation();
|
|
396
807
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
397
|
-
|
|
398
|
-
|
|
808
|
+
whenClauses: [].concat(_toConsumableArray(whenClauses), [{
|
|
809
|
+
whenAtoms: [{
|
|
399
810
|
val: '',
|
|
400
811
|
type: AtomsTypeEnum.UNKNOWN
|
|
401
812
|
}],
|
|
402
|
-
|
|
813
|
+
thenAtoms: [{
|
|
403
814
|
val: '',
|
|
404
815
|
type: AtomsTypeEnum.UNKNOWN
|
|
405
816
|
}]
|
|
@@ -409,7 +820,7 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
409
820
|
onAddElse: function onAddElse(e) {
|
|
410
821
|
e.stopPropagation();
|
|
411
822
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
412
|
-
|
|
823
|
+
elseAtoms: [{
|
|
413
824
|
val: '',
|
|
414
825
|
type: AtomsTypeEnum.UNKNOWN
|
|
415
826
|
}]
|
|
@@ -418,25 +829,48 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
418
829
|
onRemoveElse: function onRemoveElse(e) {
|
|
419
830
|
e.stopPropagation();
|
|
420
831
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
421
|
-
|
|
832
|
+
elseAtoms: undefined
|
|
422
833
|
}));
|
|
423
834
|
},
|
|
835
|
+
onZoomCase: function onZoomCase(e) {
|
|
836
|
+
return openCaseWhenFormulaModal(e, value, index);
|
|
837
|
+
},
|
|
424
838
|
onDeleteCase: function onDeleteCase(e) {
|
|
425
839
|
return handleDel(e, index);
|
|
426
840
|
}
|
|
427
841
|
});
|
|
428
842
|
};
|
|
429
843
|
var renderAndOrEditor = function renderAndOrEditor(value, index) {
|
|
844
|
+
var createUnknownAtom = function createUnknownAtom() {
|
|
845
|
+
return {
|
|
846
|
+
val: '',
|
|
847
|
+
type: AtomsTypeEnum.UNKNOWN
|
|
848
|
+
};
|
|
849
|
+
};
|
|
850
|
+
var leftAtoms = Array.isArray(value.leftAtoms) ? value.leftAtoms : value.atoms || [createUnknownAtom()];
|
|
851
|
+
var rightAtoms = Array.isArray(value.rightAtoms) ? value.rightAtoms : [createUnknownAtom()];
|
|
430
852
|
return _jsx(LogicGroup, {
|
|
431
853
|
operator: value.operator || 'and',
|
|
432
854
|
onToggleOperator: function onToggleOperator() {
|
|
433
855
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
856
|
+
atoms: undefined,
|
|
857
|
+
leftAtoms: leftAtoms,
|
|
858
|
+
rightAtoms: rightAtoms,
|
|
434
859
|
operator: value.operator === 'or' ? 'and' : 'or'
|
|
435
860
|
}));
|
|
436
861
|
},
|
|
437
|
-
|
|
862
|
+
leftContent: renderNestedFormulaList(leftAtoms, function (nextList) {
|
|
863
|
+
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
864
|
+
atoms: undefined,
|
|
865
|
+
rightAtoms: rightAtoms,
|
|
866
|
+
leftAtoms: nextList
|
|
867
|
+
}));
|
|
868
|
+
}),
|
|
869
|
+
rightContent: renderNestedFormulaList(rightAtoms, function (nextList) {
|
|
438
870
|
updateAtomAt(index, _objectSpread(_objectSpread({}, value), {}, {
|
|
439
|
-
|
|
871
|
+
atoms: undefined,
|
|
872
|
+
leftAtoms: leftAtoms,
|
|
873
|
+
rightAtoms: nextList
|
|
440
874
|
}));
|
|
441
875
|
}),
|
|
442
876
|
onDelete: function onDelete(e) {
|
|
@@ -444,43 +878,43 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
444
878
|
}
|
|
445
879
|
});
|
|
446
880
|
};
|
|
447
|
-
var
|
|
448
|
-
|
|
449
|
-
ind =
|
|
450
|
-
setInd =
|
|
881
|
+
var _useState15 = useState(-1),
|
|
882
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
883
|
+
ind = _useState16[0],
|
|
884
|
+
setInd = _useState16[1];
|
|
451
885
|
var filterCustomType = store.filterCustomType;
|
|
452
886
|
var _ref = useRef(null);
|
|
453
|
-
var
|
|
887
|
+
var _useState17 = useState({
|
|
454
888
|
isError: false
|
|
455
889
|
}),
|
|
456
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
457
|
-
errorInfo = _useState12[0],
|
|
458
|
-
setErrorInfo = _useState12[1];
|
|
459
|
-
var _useState13 = useState(false),
|
|
460
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
461
|
-
isCheck = _useState14[0],
|
|
462
|
-
setIsCheck = _useState14[1];
|
|
463
|
-
var myInstanceIdRef = useRef(Math.random().toString(36).slice(2));
|
|
464
|
-
var _useState15 = useState(null),
|
|
465
|
-
_useState16 = _slicedToArray(_useState15, 2),
|
|
466
|
-
hoveredCaseGroupKey = _useState16[0],
|
|
467
|
-
setHoveredCaseGroupKey = _useState16[1];
|
|
468
|
-
var _useState17 = useState(!!window.__sqb_selection_active__),
|
|
469
890
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
var _useState19 = useState(
|
|
891
|
+
errorInfo = _useState18[0],
|
|
892
|
+
setErrorInfo = _useState18[1];
|
|
893
|
+
var _useState19 = useState(false),
|
|
473
894
|
_useState20 = _slicedToArray(_useState19, 2),
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
var
|
|
895
|
+
isCheck = _useState20[0],
|
|
896
|
+
setIsCheck = _useState20[1];
|
|
897
|
+
var myInstanceIdRef = useRef(Math.random().toString(36).slice(2));
|
|
898
|
+
var _useState21 = useState(null),
|
|
477
899
|
_useState22 = _slicedToArray(_useState21, 2),
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
var _useState23 = useState(
|
|
900
|
+
hoveredCaseGroupKey = _useState22[0],
|
|
901
|
+
setHoveredCaseGroupKey = _useState22[1];
|
|
902
|
+
var _useState23 = useState(!!window.__sqb_selection_active__),
|
|
481
903
|
_useState24 = _slicedToArray(_useState23, 2),
|
|
482
|
-
|
|
483
|
-
|
|
904
|
+
globalSelectionActive = _useState24[0],
|
|
905
|
+
setGlobalSelectionActive = _useState24[1];
|
|
906
|
+
var _useState25 = useState(window.__sqb_selection_owner__ || null),
|
|
907
|
+
_useState26 = _slicedToArray(_useState25, 2),
|
|
908
|
+
globalSelectionOwner = _useState26[0],
|
|
909
|
+
setGlobalSelectionOwner = _useState26[1];
|
|
910
|
+
var _useState27 = useState([]),
|
|
911
|
+
_useState28 = _slicedToArray(_useState27, 2),
|
|
912
|
+
selectedIndices = _useState28[0],
|
|
913
|
+
setSelectedIndices = _useState28[1];
|
|
914
|
+
var _useState29 = useState(null),
|
|
915
|
+
_useState30 = _slicedToArray(_useState29, 2),
|
|
916
|
+
hoveredCopyIndex = _useState30[0],
|
|
917
|
+
setHoveredCopyIndex = _useState30[1];
|
|
484
918
|
var getCaseGroupEnd = function getCaseGroupEnd(list, startIndex) {
|
|
485
919
|
var depth = 0;
|
|
486
920
|
for (var index = startIndex; index < list.length; index++) {
|
|
@@ -635,6 +1069,9 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
635
1069
|
}
|
|
636
1070
|
return true;
|
|
637
1071
|
};
|
|
1072
|
+
var canShowItemInsertArrows = function canShowItemInsertArrows(item, groupType) {
|
|
1073
|
+
return canShowInsertArrows(item, groupType);
|
|
1074
|
+
};
|
|
638
1075
|
useEffect(function () {
|
|
639
1076
|
var _errorInfo = validateExpressionIntegrity(caseList);
|
|
640
1077
|
setErrorInfo(_errorInfo);
|
|
@@ -1183,15 +1620,16 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
1183
1620
|
};
|
|
1184
1621
|
}
|
|
1185
1622
|
if (type === AtomsTypeEnum.FIELD) {
|
|
1623
|
+
var displayName = getFieldDisplayName(v);
|
|
1186
1624
|
return {
|
|
1187
1625
|
className: cx({
|
|
1188
|
-
notSelected: !
|
|
1626
|
+
notSelected: !displayName
|
|
1189
1627
|
}),
|
|
1190
1628
|
onClick: function onClick(e) {
|
|
1191
1629
|
return handleField(e, index, v);
|
|
1192
1630
|
},
|
|
1193
1631
|
node: _jsxs(_Fragment, {
|
|
1194
|
-
children: [!
|
|
1632
|
+
children: [!displayName && __('customColumn.selectField'), displayName, renderDeleteIcon(v, index, groupType)]
|
|
1195
1633
|
})
|
|
1196
1634
|
};
|
|
1197
1635
|
}
|
|
@@ -1359,32 +1797,41 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
1359
1797
|
if (groupType === 'logic') {
|
|
1360
1798
|
return {
|
|
1361
1799
|
className: cx('gray-name', 'notSelected'),
|
|
1362
|
-
style: {
|
|
1363
|
-
minWidth: 44
|
|
1364
|
-
|
|
1365
|
-
},
|
|
1800
|
+
style: _objectSpread(_objectSpread({}, ADD_TRIGGER_STYLE), {}, {
|
|
1801
|
+
minWidth: 44
|
|
1802
|
+
}),
|
|
1366
1803
|
node: selectOperator({
|
|
1367
1804
|
triggerElement: function triggerElement() {
|
|
1368
|
-
return renderTokenContent(_jsx(
|
|
1805
|
+
return renderTokenContent(_jsx(Tooltip, {
|
|
1806
|
+
title: "\u6DFB\u52A0",
|
|
1807
|
+
children: _jsx(AddIcon, {})
|
|
1808
|
+
}));
|
|
1369
1809
|
},
|
|
1370
1810
|
ind: index,
|
|
1371
1811
|
position: ''
|
|
1372
1812
|
})
|
|
1373
1813
|
};
|
|
1374
1814
|
}
|
|
1815
|
+
var customInputClassName = cx({
|
|
1816
|
+
notSelected: true
|
|
1817
|
+
});
|
|
1375
1818
|
return {
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1819
|
+
raw: true,
|
|
1820
|
+
node: _jsx(ItemName, _objectSpread(_objectSpread({}, getItemNameProps(v)), {}, {
|
|
1821
|
+
children: selectOperator({
|
|
1822
|
+
triggerElement: function triggerElement() {
|
|
1823
|
+
return _jsx("div", {
|
|
1824
|
+
className: cx('Sqb-TableName', customInputClassName),
|
|
1825
|
+
style: getTokenStyleByClassName(customInputClassName),
|
|
1826
|
+
children: renderTokenContent(_jsxs(_Fragment, {
|
|
1827
|
+
children: [__('customColumn.selectCustomInput'), renderDeleteIcon(v, index, groupType)]
|
|
1828
|
+
}))
|
|
1829
|
+
});
|
|
1830
|
+
},
|
|
1831
|
+
ind: index,
|
|
1832
|
+
position: ''
|
|
1833
|
+
})
|
|
1834
|
+
}))
|
|
1388
1835
|
};
|
|
1389
1836
|
};
|
|
1390
1837
|
var copyDom = function copyDom() {
|
|
@@ -1422,6 +1869,8 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
1422
1869
|
var showCheckbox = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
|
|
1423
1870
|
var itemContent = itemDom(v, i, groupType);
|
|
1424
1871
|
var isCompositeAtom = v.type === AtomsTypeEnum.CASE_WHEN || v.type === AtomsTypeEnum.AND_OR;
|
|
1872
|
+
var showAfterArrow = canShowItemInsertArrows(v, groupType);
|
|
1873
|
+
var showBeforeArrow = canShowItemInsertArrows(v, groupType);
|
|
1425
1874
|
return _jsx(React.Fragment, {
|
|
1426
1875
|
children: _jsxs("div", {
|
|
1427
1876
|
className: cx('Sqb-Filter-item', _defineProperty({
|
|
@@ -1429,6 +1878,8 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
1429
1878
|
'item-fixed': v.fixed || false,
|
|
1430
1879
|
'item-selected': isCheck,
|
|
1431
1880
|
'item-composite': isCompositeAtom,
|
|
1881
|
+
'has-left-arrow': showBeforeArrow,
|
|
1882
|
+
'has-right-arrow': showAfterArrow,
|
|
1432
1883
|
'group-child': groupType !== 'single',
|
|
1433
1884
|
'group-flow-child': groupType === 'caseWhen',
|
|
1434
1885
|
'group-logic-child': groupType === 'logic'
|
|
@@ -1441,7 +1892,7 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
1441
1892
|
if (isCheck) return;
|
|
1442
1893
|
setInd(-1);
|
|
1443
1894
|
},
|
|
1444
|
-
children: [copyDom(i),
|
|
1895
|
+
children: [copyDom(i), showBeforeArrow && selectOperator({
|
|
1445
1896
|
triggerElement: function triggerElement() {
|
|
1446
1897
|
return _jsx("div", {
|
|
1447
1898
|
className: 'left-arrow',
|
|
@@ -1470,19 +1921,19 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
1470
1921
|
style: {
|
|
1471
1922
|
pointerEvents: isCheck || store.isMetabaseCopy ? 'none' : 'auto'
|
|
1472
1923
|
},
|
|
1473
|
-
className: cx({
|
|
1474
|
-
openCheck: isCheck
|
|
1924
|
+
className: cx('Sqb-Filter-item-node', {
|
|
1925
|
+
openCheck: isCheck && !isCompositeAtom
|
|
1475
1926
|
}),
|
|
1476
|
-
children: _jsx(ItemName, _objectSpread(_objectSpread({}, getItemNameProps(v)), {}, {
|
|
1477
|
-
children:
|
|
1927
|
+
children: itemContent.raw ? itemContent.node : _jsx(ItemName, _objectSpread(_objectSpread({}, getItemNameProps(v)), {}, {
|
|
1928
|
+
children: _jsx("div", _objectSpread(_objectSpread({
|
|
1478
1929
|
className: cx('Sqb-TableName', itemContent.className),
|
|
1479
1930
|
onClick: itemContent.onClick,
|
|
1480
|
-
style: itemContent.style
|
|
1931
|
+
style: getTokenStyleByClassName(itemContent.className, itemContent.style)
|
|
1481
1932
|
}, itemContent.attrs || {}), {}, {
|
|
1482
1933
|
children: itemContent.node
|
|
1483
1934
|
}))
|
|
1484
1935
|
}))
|
|
1485
|
-
}),
|
|
1936
|
+
}), showAfterArrow && selectOperator({
|
|
1486
1937
|
triggerElement: function triggerElement(value) {
|
|
1487
1938
|
return _jsx("div", {
|
|
1488
1939
|
className: 'right-arrow',
|
|
@@ -1510,25 +1961,34 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
1510
1961
|
};
|
|
1511
1962
|
var renderDeleteIcon = function renderDeleteIcon(item, index, groupType) {
|
|
1512
1963
|
if (!canDeleteItem(item, groupType)) return null;
|
|
1513
|
-
return _jsx(
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1964
|
+
return _jsx(Tooltip, {
|
|
1965
|
+
title: "\u5220\u9664",
|
|
1966
|
+
children: _jsx("span", {
|
|
1967
|
+
className: 'item-del',
|
|
1968
|
+
style: {
|
|
1969
|
+
fontSize: 0
|
|
1970
|
+
},
|
|
1971
|
+
onClick: function onClick(e) {
|
|
1972
|
+
return handleDel(e, index);
|
|
1973
|
+
},
|
|
1974
|
+
children: _jsx(CloseIcon, {
|
|
1975
|
+
width: TOKEN_DELETE_ICON_SIZE,
|
|
1976
|
+
height: TOKEN_DELETE_ICON_SIZE
|
|
1977
|
+
})
|
|
1978
|
+
})
|
|
1522
1979
|
});
|
|
1523
1980
|
};
|
|
1524
1981
|
var renderCaseRecoverButton = function renderCaseRecoverButton(onClick, className, label) {
|
|
1525
|
-
return
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1982
|
+
return _jsx(Tooltip, {
|
|
1983
|
+
title: label,
|
|
1984
|
+
children: _jsxs("button", {
|
|
1985
|
+
type: 'button',
|
|
1986
|
+
className: cx('Sqb-CaseRecover', className),
|
|
1987
|
+
onClick: onClick,
|
|
1988
|
+
children: [_jsx(FfPlus, {}), _jsx("span", {
|
|
1989
|
+
children: label
|
|
1990
|
+
})]
|
|
1991
|
+
})
|
|
1532
1992
|
});
|
|
1533
1993
|
};
|
|
1534
1994
|
var renderGroupInsertArrow = function renderGroupInsertArrow(index, position) {
|
|
@@ -1552,57 +2012,81 @@ var FormulaList = forwardRef(function (props, ref) {
|
|
|
1552
2012
|
trigger: 'hover'
|
|
1553
2013
|
});
|
|
1554
2014
|
};
|
|
2015
|
+
var showFormulaListZoom = !embedded && enableZoom;
|
|
2016
|
+
var showCopyTools = !embedded && isCopy && caseList.length > 0;
|
|
2017
|
+
var renderFormulaListZoomButton = function renderFormulaListZoomButton() {
|
|
2018
|
+
return _jsx(Tooltip, {
|
|
2019
|
+
title: "\u7F16\u8F91",
|
|
2020
|
+
children: _jsx("button", {
|
|
2021
|
+
type: 'button',
|
|
2022
|
+
className: 'Sqb-FormulaList-zoom formula-node-tool',
|
|
2023
|
+
style: FORMULA_LIST_ZOOM_BUTTON_STYLE,
|
|
2024
|
+
onClick: openFormulaListModal,
|
|
2025
|
+
children: _jsx(FullscreenOExpand, {})
|
|
2026
|
+
})
|
|
2027
|
+
});
|
|
2028
|
+
};
|
|
1555
2029
|
return _jsx(_Fragment, {
|
|
1556
2030
|
children: _jsxs("div", {
|
|
1557
2031
|
className: cx('Sqb-NotebookCell', {
|
|
1558
2032
|
'Sqb-NotebookCell--embedded': embedded
|
|
1559
2033
|
}),
|
|
1560
|
-
children: [
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
className: cx('item-isCheck', {
|
|
1564
|
-
isCheck: isCheck
|
|
1565
|
-
}),
|
|
1566
|
-
children: [_jsx(Button, {
|
|
1567
|
-
className: cx('primary-color', {}),
|
|
1568
|
-
size: 'small',
|
|
1569
|
-
onClick: function onClick() {
|
|
1570
|
-
return _setIsCheck(!isCheck);
|
|
1571
|
-
},
|
|
1572
|
-
primary: true,
|
|
1573
|
-
children: isCheck ? __('customColumn.closeCopy') : __('customColumn.openCopy')
|
|
1574
|
-
}), _jsx(Button, {
|
|
1575
|
-
className: cx('', 'primary-color', {}),
|
|
1576
|
-
size: 'small',
|
|
1577
|
-
onClick: function onClick() {
|
|
1578
|
-
return copyAll();
|
|
1579
|
-
},
|
|
1580
|
-
primary: true,
|
|
1581
|
-
children: __('customColumn.copyAll')
|
|
1582
|
-
}), selectedIndices.length > 0 && _jsx(Button, {
|
|
1583
|
-
primary: true,
|
|
1584
|
-
danger: true,
|
|
1585
|
-
size: 'small',
|
|
1586
|
-
onClick: function onClick() {
|
|
1587
|
-
return delSelect();
|
|
1588
|
-
},
|
|
1589
|
-
children: __('customColumn.delSelect')
|
|
1590
|
-
}), !isCheck && checkedItemsCount > 0 && _jsx(Button, {
|
|
1591
|
-
primary: true,
|
|
1592
|
-
warning: true,
|
|
2034
|
+
children: [showCopyTools ? _jsxs("div", {
|
|
2035
|
+
className: 'Sqb-FormulaListTopTools',
|
|
2036
|
+
children: [_jsxs(Space, {
|
|
1593
2037
|
size: 'small',
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
2038
|
+
direction: 'horizontal',
|
|
2039
|
+
className: cx('item-isCheck', {
|
|
2040
|
+
isCheck: isCheck
|
|
2041
|
+
}),
|
|
2042
|
+
children: [_jsx(Button, {
|
|
2043
|
+
className: cx('primary-color', {}),
|
|
2044
|
+
size: 'small',
|
|
2045
|
+
onClick: function onClick() {
|
|
2046
|
+
return _setIsCheck(!isCheck);
|
|
2047
|
+
},
|
|
2048
|
+
primary: true,
|
|
2049
|
+
children: isCheck ? __('customColumn.closeCopy') : __('customColumn.openCopy')
|
|
2050
|
+
}), _jsx(Button, {
|
|
2051
|
+
className: cx('', 'primary-color', {}),
|
|
2052
|
+
size: 'small',
|
|
2053
|
+
onClick: function onClick() {
|
|
2054
|
+
return copyAll();
|
|
2055
|
+
},
|
|
2056
|
+
primary: true,
|
|
2057
|
+
children: __('customColumn.copyAll')
|
|
2058
|
+
}), selectedIndices.length > 0 && _jsx(Button, {
|
|
2059
|
+
primary: true,
|
|
2060
|
+
danger: true,
|
|
2061
|
+
size: 'small',
|
|
2062
|
+
onClick: function onClick() {
|
|
2063
|
+
return delSelect();
|
|
2064
|
+
},
|
|
2065
|
+
children: __('customColumn.delSelect')
|
|
2066
|
+
}), !isCheck && checkedItemsCount > 0 && _jsx(Button, {
|
|
2067
|
+
primary: true,
|
|
2068
|
+
warning: true,
|
|
2069
|
+
size: 'small',
|
|
2070
|
+
onClick: function onClick() {
|
|
2071
|
+
return initPaste();
|
|
2072
|
+
},
|
|
2073
|
+
children: "\u6E05\u9664\u590D\u5236"
|
|
2074
|
+
})]
|
|
2075
|
+
}), showFormulaListZoom && renderFormulaListZoomButton()]
|
|
2076
|
+
}) : showFormulaListZoom && _jsx("div", {
|
|
2077
|
+
className: 'Sqb-FormulaListFloatingTools',
|
|
2078
|
+
children: renderFormulaListZoomButton()
|
|
1599
2079
|
}), caseList.map(function (item, itemIndex) {
|
|
1600
2080
|
return renderItemShell(item, itemIndex, 'single');
|
|
1601
2081
|
}), Array.from(caseList).length < 1 && selectOperator({
|
|
1602
2082
|
triggerElement: function triggerElement() {
|
|
1603
|
-
return _jsx(
|
|
1604
|
-
|
|
1605
|
-
children: _jsx(
|
|
2083
|
+
return _jsx(Tooltip, {
|
|
2084
|
+
title: "\u6DFB\u52A0",
|
|
2085
|
+
children: _jsx("div", {
|
|
2086
|
+
className: cx("Sqb-TableName gray-name"),
|
|
2087
|
+
style: ADD_TRIGGER_STYLE,
|
|
2088
|
+
children: _jsx(AddIcon, {})
|
|
2089
|
+
})
|
|
1606
2090
|
});
|
|
1607
2091
|
},
|
|
1608
2092
|
ind: -1,
|