@gingkoo/pandora-metabase 1.0.140 → 1.0.141-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -3
- package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +8 -5
- package/lib/cjs/components/dialog/formula-list/LogicGroup.js +64 -18
- package/lib/cjs/components/dialog/formula-list/index.js +374 -153
- package/lib/cjs/components/dialog/formula-list/index.less +18 -5
- package/lib/cjs/components/dialog/formula-list/utils.js +45 -17
- package/lib/cjs/components/dialog/select-summarize/index.js +7 -0
- package/lib/cjs/components/modules/summarize/group-by.js +10 -1
- package/lib/cjs/components/modules/summarize/select-index.js +3 -1
- package/lib/cjs/hooks/use-state.js +181 -80
- package/lib/cjs/index.js +24 -3
- package/lib/cjs/store/types.d.ts +4 -4
- package/lib/cjs/types.d.ts +21 -1
- package/lib/cjs/utils/transformSql.js +51 -38
- package/lib/cjs/utils.d.ts +1 -0
- package/lib/cjs/utils.js +291 -56
- package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +8 -5
- package/lib/es/components/dialog/formula-list/LogicGroup.js +65 -19
- package/lib/es/components/dialog/formula-list/index.js +373 -152
- package/lib/es/components/dialog/formula-list/index.less +18 -5
- package/lib/es/components/dialog/formula-list/utils.js +45 -17
- package/lib/es/components/dialog/select-summarize/index.js +7 -0
- package/lib/es/components/modules/summarize/group-by.js +10 -1
- package/lib/es/components/modules/summarize/select-index.js +3 -1
- package/lib/es/hooks/use-state.js +182 -81
- package/lib/es/index.js +25 -4
- package/lib/es/store/types.d.ts +4 -4
- package/lib/es/types.d.ts +21 -1
- package/lib/es/utils/transformSql.js +52 -39
- package/lib/es/utils.d.ts +1 -0
- package/lib/es/utils.js +290 -55
- package/package.json +1 -1
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
.preview-box {
|
|
2
|
-
.pd-Radio-button-solid .pd-Radio-button.pd-Radio-checked {
|
|
3
|
-
background-color: #509ee3;
|
|
4
|
-
border-color: #509ee3;
|
|
5
|
-
}
|
|
6
2
|
.preview-container {
|
|
7
3
|
width: 100%;
|
|
8
4
|
}
|
|
9
5
|
|
|
6
|
+
.Sqb-FormulaPreviewHeader {
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
gap: 8px;
|
|
10
|
+
flex-wrap: wrap;
|
|
11
|
+
|
|
12
|
+
p {
|
|
13
|
+
margin: 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
10
17
|
.isSqlError {
|
|
11
18
|
background-color: rgba(255, 0, 0, 0.1) !important;
|
|
12
19
|
padding: 5px;
|
|
@@ -20,6 +27,12 @@
|
|
|
20
27
|
// font-size: 10px;
|
|
21
28
|
}
|
|
22
29
|
}
|
|
30
|
+
|
|
31
|
+
.Sqb-FormulaSqlPreview {
|
|
32
|
+
max-height: 100%;
|
|
33
|
+
overflow: auto;
|
|
34
|
+
}
|
|
35
|
+
|
|
23
36
|
.Sqb-Filter-item {
|
|
24
37
|
--sqb-item-shell-margin-x: 14px;
|
|
25
38
|
--sqb-item-gap-x: 8px;
|
|
@@ -1441,7 +1454,7 @@
|
|
|
1441
1454
|
vertical-align: middle;
|
|
1442
1455
|
}
|
|
1443
1456
|
|
|
1444
|
-
.Sqb-FormulaGroup.logic-group
|
|
1457
|
+
.Sqb-FormulaGroup.logic-group .Sqb-TableName.logic-operator {
|
|
1445
1458
|
justify-content: center;
|
|
1446
1459
|
flex: 0 0 32px;
|
|
1447
1460
|
width: 32px;
|
|
@@ -212,14 +212,17 @@ export var getTemplateItem = function getTemplateItem(type, item) {
|
|
|
212
212
|
};
|
|
213
213
|
} else if (type === AtomsTypeEnum.AND_OR) {
|
|
214
214
|
return {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
215
|
+
items: [{
|
|
216
|
+
atoms: [{
|
|
217
|
+
val: '',
|
|
218
|
+
type: AtomsTypeEnum.UNKNOWN
|
|
219
|
+
}]
|
|
220
|
+
}, {
|
|
221
|
+
operator: 'and',
|
|
222
|
+
atoms: [{
|
|
223
|
+
val: '',
|
|
224
|
+
type: AtomsTypeEnum.UNKNOWN
|
|
225
|
+
}]
|
|
223
226
|
}],
|
|
224
227
|
quotes: '',
|
|
225
228
|
type: type
|
|
@@ -270,12 +273,20 @@ var _isOk = function isOk(rhsVal) {
|
|
|
270
273
|
return _isOk(clause.whenAtoms || []) && _isOk(clause.thenAtoms || []);
|
|
271
274
|
}) && _isOk(v.caseAtoms || []) && _isOk(v.elseAtoms || []);
|
|
272
275
|
} else if (v.type === AtomsTypeEnum.AND_OR) {
|
|
273
|
-
|
|
276
|
+
if (Array.isArray(v.items) && v.items.length > 0) {
|
|
277
|
+
return v.items.every(function (item, index) {
|
|
278
|
+
var _item$atoms;
|
|
279
|
+
if (index > 0 && !item.operator) return false;
|
|
280
|
+
return Boolean((_item$atoms = item.atoms) === null || _item$atoms === void 0 ? void 0 : _item$atoms.length) && _isOk(item.atoms || []);
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
var legacyItem = v;
|
|
284
|
+
var hasBinarySides = Array.isArray(legacyItem.leftAtoms) || Array.isArray(legacyItem.rightAtoms);
|
|
274
285
|
if (hasBinarySides) {
|
|
275
|
-
var
|
|
276
|
-
return Boolean(
|
|
286
|
+
var _legacyItem$leftAtoms, _legacyItem$rightAtom;
|
|
287
|
+
return Boolean(legacyItem.operator) && Boolean((_legacyItem$leftAtoms = legacyItem.leftAtoms) === null || _legacyItem$leftAtoms === void 0 ? void 0 : _legacyItem$leftAtoms.length) && Boolean((_legacyItem$rightAtom = legacyItem.rightAtoms) === null || _legacyItem$rightAtom === void 0 ? void 0 : _legacyItem$rightAtom.length) && _isOk(legacyItem.leftAtoms || []) && _isOk(legacyItem.rightAtoms || []);
|
|
277
288
|
}
|
|
278
|
-
return Boolean(
|
|
289
|
+
return Boolean(legacyItem.operator) && _isOk(legacyItem.atoms || []);
|
|
279
290
|
} else if (v.type === AtomsTypeEnum.FORMULA) {
|
|
280
291
|
if (!v.quotes) {
|
|
281
292
|
return false;
|
|
@@ -401,25 +412,42 @@ export function validateExpressionIntegrity(list) {
|
|
|
401
412
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
402
413
|
var item = _step2.value;
|
|
403
414
|
if (item.type === AtomsTypeEnum.AND_OR) {
|
|
404
|
-
if (
|
|
415
|
+
if (Array.isArray(item.items) && item.items.length > 0) {
|
|
416
|
+
for (var index = 0; index < item.items.length; index++) {
|
|
417
|
+
var logicItem = item.items[index];
|
|
418
|
+
if (index > 0 && !logicItem.operator) {
|
|
419
|
+
return {
|
|
420
|
+
isError: true,
|
|
421
|
+
error: 'AND / OR 结构缺少操作符'
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
var _nestedError = validateExpressionIntegrity(logicItem.atoms || []);
|
|
425
|
+
if (_nestedError.isError) {
|
|
426
|
+
return _nestedError;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
continue;
|
|
430
|
+
}
|
|
431
|
+
var legacyItem = item;
|
|
432
|
+
if (!legacyItem.operator) {
|
|
405
433
|
return {
|
|
406
434
|
isError: true,
|
|
407
435
|
error: 'AND / OR 结构缺少操作符'
|
|
408
436
|
};
|
|
409
437
|
}
|
|
410
|
-
var hasBinarySides = Array.isArray(
|
|
438
|
+
var hasBinarySides = Array.isArray(legacyItem.leftAtoms) || Array.isArray(legacyItem.rightAtoms);
|
|
411
439
|
if (hasBinarySides) {
|
|
412
|
-
var leftError = validateExpressionIntegrity(
|
|
440
|
+
var leftError = validateExpressionIntegrity(legacyItem.leftAtoms || []);
|
|
413
441
|
if (leftError.isError) {
|
|
414
442
|
return leftError;
|
|
415
443
|
}
|
|
416
|
-
var rightError = validateExpressionIntegrity(
|
|
444
|
+
var rightError = validateExpressionIntegrity(legacyItem.rightAtoms || []);
|
|
417
445
|
if (rightError.isError) {
|
|
418
446
|
return rightError;
|
|
419
447
|
}
|
|
420
448
|
continue;
|
|
421
449
|
}
|
|
422
|
-
var nestedError = validateExpressionIntegrity(
|
|
450
|
+
var nestedError = validateExpressionIntegrity(legacyItem.atoms || []);
|
|
423
451
|
if (nestedError.isError) {
|
|
424
452
|
return nestedError;
|
|
425
453
|
}
|
|
@@ -133,6 +133,13 @@ var SelectSummarize = function SelectSummarize(_ref) {
|
|
|
133
133
|
return [lhs, item.condition, rhs].filter(Boolean).join(' ').trim();
|
|
134
134
|
}
|
|
135
135
|
if (item.type === AtomsTypeEnum.AND_OR) {
|
|
136
|
+
if (Array.isArray(item.items) && item.items.length > 0) {
|
|
137
|
+
var itemsText = item.items.map(function (logicItem, index) {
|
|
138
|
+
var atomsText = getFormulaSummary(logicItem.atoms || []);
|
|
139
|
+
return index === 0 ? atomsText : "".concat(logicItem.operator || 'and', " ").concat(atomsText);
|
|
140
|
+
}).join(' ');
|
|
141
|
+
return "( ".concat(itemsText, " )").replace(/\s+/g, ' ').trim();
|
|
142
|
+
}
|
|
136
143
|
var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
|
|
137
144
|
if (hasBinarySides) {
|
|
138
145
|
var leftText = getFormulaSummary(item.leftAtoms || []);
|
|
@@ -39,6 +39,13 @@ var _getSummaryText = function getSummaryText() {
|
|
|
39
39
|
return [lhs, item.condition, rhs].filter(Boolean).join(' ').trim();
|
|
40
40
|
}
|
|
41
41
|
if (item.type === AtomsTypeEnum.AND_OR) {
|
|
42
|
+
if (Array.isArray(item.items) && item.items.length > 0) {
|
|
43
|
+
var itemsText = item.items.map(function (logicItem, index) {
|
|
44
|
+
var atomsText = _getSummaryText(logicItem.atoms || []);
|
|
45
|
+
return index === 0 ? atomsText : "".concat(logicItem.operator || 'and', " ").concat(atomsText);
|
|
46
|
+
}).join(' ');
|
|
47
|
+
return "( ".concat(itemsText, " )").replace(/\s+/g, ' ').trim();
|
|
48
|
+
}
|
|
42
49
|
var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
|
|
43
50
|
if (hasBinarySides) {
|
|
44
51
|
var leftText = _getSummaryText(item.leftAtoms || []);
|
|
@@ -433,7 +440,9 @@ var GroupBy = function GroupBy(props) {
|
|
|
433
440
|
if (_found) return _found;
|
|
434
441
|
}
|
|
435
442
|
if (item.type === AtomsTypeEnum.AND_OR) {
|
|
436
|
-
var _found2 = _getFirstField([].concat(_toConsumableArray(item.
|
|
443
|
+
var _found2 = _getFirstField([].concat(_toConsumableArray((item.items || []).flatMap(function (logicItem) {
|
|
444
|
+
return logicItem.atoms || [];
|
|
445
|
+
})), _toConsumableArray(item.leftAtoms || []), _toConsumableArray(item.rightAtoms || []), _toConsumableArray(item.atoms || [])));
|
|
437
446
|
if (_found2) return _found2;
|
|
438
447
|
}
|
|
439
448
|
if (item.type === AtomsTypeEnum.CASE_WHEN) {
|
|
@@ -346,7 +346,9 @@ var SelectIndex = function SelectIndex(props) {
|
|
|
346
346
|
if (_found) return _found;
|
|
347
347
|
}
|
|
348
348
|
if (item.type === AtomsTypeEnum.AND_OR) {
|
|
349
|
-
var _found2 = _getFirstField([].concat(_toConsumableArray(item.
|
|
349
|
+
var _found2 = _getFirstField([].concat(_toConsumableArray((item.items || []).flatMap(function (logicItem) {
|
|
350
|
+
return logicItem.atoms || [];
|
|
351
|
+
})), _toConsumableArray(item.leftAtoms || []), _toConsumableArray(item.rightAtoms || []), _toConsumableArray(item.atoms || [])));
|
|
350
352
|
if (_found2) return _found2;
|
|
351
353
|
}
|
|
352
354
|
if (item.type === AtomsTypeEnum.CASE_WHEN) {
|
|
@@ -7,7 +7,7 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
|
7
7
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
8
8
|
var _excluded = ["alias", "datasourceName", "datasourceId", "column"];
|
|
9
9
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
10
|
-
import { useEffect, useState, useRef, useMemo } from 'react';
|
|
10
|
+
import { useEffect, useState, useRef, useMemo, useCallback } from 'react';
|
|
11
11
|
import { uuidv4, getAlias, isSameColumnByIdFirst } from '../utils/helper';
|
|
12
12
|
import { TypeEnum, JoinEnum, UnionEnum } from '../store/enum';
|
|
13
13
|
import { splitByUnion } from '../utils';
|
|
@@ -98,7 +98,12 @@ var useStore = function useStore() {
|
|
|
98
98
|
var _useState25 = useState(defaultMeta),
|
|
99
99
|
_useState26 = _slicedToArray(_useState25, 2),
|
|
100
100
|
metaList = _useState26[0],
|
|
101
|
-
|
|
101
|
+
setMetaState = _useState26[1];
|
|
102
|
+
var latestMetaListRef = useRef(cloneDeep(defaultMeta));
|
|
103
|
+
var _setMeta = useCallback(function (data) {
|
|
104
|
+
latestMetaListRef.current = cloneDeep(data);
|
|
105
|
+
setMetaState(data);
|
|
106
|
+
}, []);
|
|
102
107
|
var _useState27 = useState({
|
|
103
108
|
visible: false,
|
|
104
109
|
node: null,
|
|
@@ -175,30 +180,46 @@ var useStore = function useStore() {
|
|
|
175
180
|
_useState60 = _slicedToArray(_useState59, 2),
|
|
176
181
|
moduleDiff = _useState60[0],
|
|
177
182
|
setModuleDiff = _useState60[1];
|
|
178
|
-
var _useState61 = useState(
|
|
183
|
+
var _useState61 = useState(false),
|
|
179
184
|
_useState62 = _slicedToArray(_useState61, 2),
|
|
180
|
-
|
|
181
|
-
|
|
185
|
+
showFormulaSql = _useState62[0],
|
|
186
|
+
setShowFormulaSql = _useState62[1];
|
|
182
187
|
var _useState63 = useState(false),
|
|
183
188
|
_useState64 = _slicedToArray(_useState63, 2),
|
|
184
|
-
|
|
185
|
-
|
|
189
|
+
showFormulaDiff = _useState64[0],
|
|
190
|
+
setShowFormulaDiff = _useState64[1];
|
|
186
191
|
var _useState65 = useState(false),
|
|
187
192
|
_useState66 = _slicedToArray(_useState65, 2),
|
|
188
|
-
|
|
189
|
-
|
|
193
|
+
hasFormulaSqlCode = _useState66[0],
|
|
194
|
+
setHasFormulaSqlCode = _useState66[1];
|
|
190
195
|
var _useState67 = useState(false),
|
|
191
196
|
_useState68 = _slicedToArray(_useState67, 2),
|
|
192
|
-
|
|
193
|
-
|
|
197
|
+
hasFormulaDiffCode = _useState68[0],
|
|
198
|
+
setHasFormulaDiffCode = _useState68[1];
|
|
194
199
|
var _useState69 = useState([]),
|
|
195
200
|
_useState70 = _slicedToArray(_useState69, 2),
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
var _useState71 = useState(
|
|
201
|
+
sourceData = _useState70[0],
|
|
202
|
+
setSourceData = _useState70[1];
|
|
203
|
+
var _useState71 = useState(false),
|
|
199
204
|
_useState72 = _slicedToArray(_useState71, 2),
|
|
200
|
-
|
|
201
|
-
|
|
205
|
+
moduleCopy = _useState72[0],
|
|
206
|
+
setModuleCopy = _useState72[1];
|
|
207
|
+
var _useState73 = useState(false),
|
|
208
|
+
_useState74 = _slicedToArray(_useState73, 2),
|
|
209
|
+
isMetabaseCopy = _useState74[0],
|
|
210
|
+
setIsMetabaseCopy = _useState74[1];
|
|
211
|
+
var _useState75 = useState(false),
|
|
212
|
+
_useState76 = _slicedToArray(_useState75, 2),
|
|
213
|
+
joinAliasConflictCheck = _useState76[0],
|
|
214
|
+
setJoinAliasConflictCheck = _useState76[1];
|
|
215
|
+
var _useState77 = useState([]),
|
|
216
|
+
_useState78 = _slicedToArray(_useState77, 2),
|
|
217
|
+
existsError = _useState78[0],
|
|
218
|
+
setExistsError = _useState78[1];
|
|
219
|
+
var _useState79 = useState(storage._metabaseCopyModule || []),
|
|
220
|
+
_useState80 = _slicedToArray(_useState79, 2),
|
|
221
|
+
metabaseCopyModule = _useState80[0],
|
|
222
|
+
setMetabaseCopyModule = _useState80[1];
|
|
202
223
|
var setFormulaTemplates = function setFormulaTemplates(data) {
|
|
203
224
|
var newData = data === null || data === void 0 ? void 0 : data.map(function (v) {
|
|
204
225
|
var children = v.children.map(function (vv) {
|
|
@@ -220,6 +241,8 @@ var useStore = function useStore() {
|
|
|
220
241
|
var fetchColumnsFn = useRef();
|
|
221
242
|
var fetchChangeFn = useRef();
|
|
222
243
|
var fetchDiffFn = useRef();
|
|
244
|
+
var fetchFormulaSqlFn = useRef();
|
|
245
|
+
var fetchFormulaDiffFn = useRef();
|
|
223
246
|
var fetchExistsError = useRef();
|
|
224
247
|
var setFetchChangeFn = function setFetchChangeFn(fn) {
|
|
225
248
|
fetchChangeFn.current = fn;
|
|
@@ -227,6 +250,14 @@ var useStore = function useStore() {
|
|
|
227
250
|
var setFetchDiffFn = function setFetchDiffFn(fn) {
|
|
228
251
|
fetchDiffFn.current = fn;
|
|
229
252
|
};
|
|
253
|
+
var setFetchFormulaSqlFn = function setFetchFormulaSqlFn(fn) {
|
|
254
|
+
fetchFormulaSqlFn.current = fn;
|
|
255
|
+
setHasFormulaSqlCode(Boolean(fn));
|
|
256
|
+
};
|
|
257
|
+
var setFetchFormulaDiffFn = function setFetchFormulaDiffFn(fn) {
|
|
258
|
+
fetchFormulaDiffFn.current = fn;
|
|
259
|
+
setHasFormulaDiffCode(Boolean(fn));
|
|
260
|
+
};
|
|
230
261
|
var setExistsErrorFn = function () {
|
|
231
262
|
var _ref = _asyncToGenerator(_regeneratorRuntime.mark(function _callee(fn, value) {
|
|
232
263
|
var data;
|
|
@@ -284,6 +315,60 @@ var useStore = function useStore() {
|
|
|
284
315
|
return _ref2.apply(this, arguments);
|
|
285
316
|
};
|
|
286
317
|
}();
|
|
318
|
+
var getFormulaSqlCode = function () {
|
|
319
|
+
var _ref3 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee3(value) {
|
|
320
|
+
var data;
|
|
321
|
+
return _regeneratorRuntime.wrap(function (_context3) {
|
|
322
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
323
|
+
case 0:
|
|
324
|
+
if (fetchFormulaSqlFn.current) {
|
|
325
|
+
_context3.next = 1;
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
return _context3.abrupt("return", '');
|
|
329
|
+
case 1:
|
|
330
|
+
_context3.next = 2;
|
|
331
|
+
return fetchFormulaSqlFn.current(value);
|
|
332
|
+
case 2:
|
|
333
|
+
data = _context3.sent;
|
|
334
|
+
return _context3.abrupt("return", data);
|
|
335
|
+
case 3:
|
|
336
|
+
case "end":
|
|
337
|
+
return _context3.stop();
|
|
338
|
+
}
|
|
339
|
+
}, _callee3);
|
|
340
|
+
}));
|
|
341
|
+
return function getFormulaSqlCode(_x3) {
|
|
342
|
+
return _ref3.apply(this, arguments);
|
|
343
|
+
};
|
|
344
|
+
}();
|
|
345
|
+
var getFormulaDiffCode = function () {
|
|
346
|
+
var _ref4 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee4(params) {
|
|
347
|
+
var data;
|
|
348
|
+
return _regeneratorRuntime.wrap(function (_context4) {
|
|
349
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
350
|
+
case 0:
|
|
351
|
+
if (fetchFormulaDiffFn.current) {
|
|
352
|
+
_context4.next = 1;
|
|
353
|
+
break;
|
|
354
|
+
}
|
|
355
|
+
return _context4.abrupt("return", undefined);
|
|
356
|
+
case 1:
|
|
357
|
+
_context4.next = 2;
|
|
358
|
+
return fetchFormulaDiffFn.current(params);
|
|
359
|
+
case 2:
|
|
360
|
+
data = _context4.sent;
|
|
361
|
+
return _context4.abrupt("return", data);
|
|
362
|
+
case 3:
|
|
363
|
+
case "end":
|
|
364
|
+
return _context4.stop();
|
|
365
|
+
}
|
|
366
|
+
}, _callee4);
|
|
367
|
+
}));
|
|
368
|
+
return function getFormulaDiffCode(_x4) {
|
|
369
|
+
return _ref4.apply(this, arguments);
|
|
370
|
+
};
|
|
371
|
+
}();
|
|
287
372
|
var setFetchColumnsFn = function setFetchColumnsFn(fn) {
|
|
288
373
|
fetchColumnsFn.current = fn;
|
|
289
374
|
};
|
|
@@ -317,84 +402,84 @@ var useStore = function useStore() {
|
|
|
317
402
|
}
|
|
318
403
|
}, [sourceList, isExit, tableFlat]);
|
|
319
404
|
var getSourceTable = function () {
|
|
320
|
-
var
|
|
405
|
+
var _ref5 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee6(source) {
|
|
321
406
|
var results;
|
|
322
|
-
return _regeneratorRuntime.wrap(function (
|
|
323
|
-
while (1) switch (
|
|
407
|
+
return _regeneratorRuntime.wrap(function (_context6) {
|
|
408
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
324
409
|
case 0:
|
|
325
|
-
|
|
410
|
+
_context6.next = 1;
|
|
326
411
|
return Promise.all(source.map(function () {
|
|
327
|
-
var
|
|
412
|
+
var _ref6 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee5(v) {
|
|
328
413
|
var tables;
|
|
329
|
-
return _regeneratorRuntime.wrap(function (
|
|
330
|
-
while (1) switch (
|
|
414
|
+
return _regeneratorRuntime.wrap(function (_context5) {
|
|
415
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
331
416
|
case 0:
|
|
332
|
-
|
|
417
|
+
_context5.next = 1;
|
|
333
418
|
return fetchDataset(v.datasourceId);
|
|
334
419
|
case 1:
|
|
335
|
-
tables =
|
|
336
|
-
return
|
|
420
|
+
tables = _context5.sent;
|
|
421
|
+
return _context5.abrupt("return", _objectSpread(_objectSpread({}, v), {}, {
|
|
337
422
|
children: tables
|
|
338
423
|
}));
|
|
339
424
|
case 2:
|
|
340
425
|
case "end":
|
|
341
|
-
return
|
|
426
|
+
return _context5.stop();
|
|
342
427
|
}
|
|
343
|
-
},
|
|
428
|
+
}, _callee5);
|
|
344
429
|
}));
|
|
345
|
-
return function (
|
|
346
|
-
return
|
|
430
|
+
return function (_x6) {
|
|
431
|
+
return _ref6.apply(this, arguments);
|
|
347
432
|
};
|
|
348
433
|
}()));
|
|
349
434
|
case 1:
|
|
350
|
-
results =
|
|
435
|
+
results = _context6.sent;
|
|
351
436
|
setSourceTable(results || []);
|
|
352
437
|
case 2:
|
|
353
438
|
case "end":
|
|
354
|
-
return
|
|
439
|
+
return _context6.stop();
|
|
355
440
|
}
|
|
356
|
-
},
|
|
441
|
+
}, _callee6);
|
|
357
442
|
}));
|
|
358
|
-
return function getSourceTable(
|
|
359
|
-
return
|
|
443
|
+
return function getSourceTable(_x5) {
|
|
444
|
+
return _ref5.apply(this, arguments);
|
|
360
445
|
};
|
|
361
446
|
}();
|
|
362
447
|
var showToolbar = function showToolbar(name) {
|
|
363
448
|
return !!~toolbar.indexOf(name);
|
|
364
449
|
};
|
|
365
450
|
var fetchDataset = function () {
|
|
366
|
-
var
|
|
451
|
+
var _ref7 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee7(datasourceId) {
|
|
367
452
|
var tables, _tables;
|
|
368
|
-
return _regeneratorRuntime.wrap(function (
|
|
369
|
-
while (1) switch (
|
|
453
|
+
return _regeneratorRuntime.wrap(function (_context7) {
|
|
454
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
370
455
|
case 0:
|
|
371
456
|
tables = getDataset(datasourceId);
|
|
372
457
|
if (!tables.length) {
|
|
373
|
-
|
|
458
|
+
_context7.next = 1;
|
|
374
459
|
break;
|
|
375
460
|
}
|
|
376
|
-
return
|
|
461
|
+
return _context7.abrupt("return", tables);
|
|
377
462
|
case 1:
|
|
378
|
-
|
|
463
|
+
_context7.next = 2;
|
|
379
464
|
return fetchDatasetFn.current(datasourceId, {
|
|
380
465
|
isExit: isExit
|
|
381
466
|
});
|
|
382
467
|
case 2:
|
|
383
|
-
_tables =
|
|
468
|
+
_tables = _context7.sent;
|
|
384
469
|
setDataset(datasourceId, _tables);
|
|
385
|
-
return
|
|
470
|
+
return _context7.abrupt("return", _tables);
|
|
386
471
|
case 3:
|
|
387
472
|
case "end":
|
|
388
|
-
return
|
|
473
|
+
return _context7.stop();
|
|
389
474
|
}
|
|
390
|
-
},
|
|
475
|
+
}, _callee7);
|
|
391
476
|
}));
|
|
392
|
-
return function fetchDataset(
|
|
393
|
-
return
|
|
477
|
+
return function fetchDataset(_x7) {
|
|
478
|
+
return _ref7.apply(this, arguments);
|
|
394
479
|
};
|
|
395
480
|
}();
|
|
396
481
|
var fetchColumns = function () {
|
|
397
|
-
var
|
|
482
|
+
var _ref8 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee8(table, datasourceId) {
|
|
398
483
|
var _columns2;
|
|
399
484
|
var oldColumns,
|
|
400
485
|
callback,
|
|
@@ -412,15 +497,15 @@ var useStore = function useStore() {
|
|
|
412
497
|
tableName,
|
|
413
498
|
columns,
|
|
414
499
|
_columns,
|
|
415
|
-
|
|
416
|
-
return _regeneratorRuntime.wrap(function (
|
|
417
|
-
while (1) switch (
|
|
500
|
+
_args8 = arguments;
|
|
501
|
+
return _regeneratorRuntime.wrap(function (_context8) {
|
|
502
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
418
503
|
case 0:
|
|
419
|
-
oldColumns =
|
|
420
|
-
callback =
|
|
421
|
-
isSelect =
|
|
422
|
-
_isSubquery =
|
|
423
|
-
_isExit =
|
|
504
|
+
oldColumns = _args8.length > 2 && _args8[2] !== undefined ? _args8[2] : [];
|
|
505
|
+
callback = _args8.length > 3 ? _args8[3] : undefined;
|
|
506
|
+
isSelect = _args8.length > 4 && _args8[4] !== undefined ? _args8[4] : isSelectFields;
|
|
507
|
+
_isSubquery = _args8.length > 5 && _args8[5] !== undefined ? _args8[5] : isSubquery;
|
|
508
|
+
_isExit = _args8.length > 6 && _args8[6] !== undefined ? _args8[6] : isExit;
|
|
424
509
|
oldObj = {};
|
|
425
510
|
selectId = oldColumns.filter(function (v) {
|
|
426
511
|
oldObj[v.id] = v;
|
|
@@ -438,15 +523,15 @@ var useStore = function useStore() {
|
|
|
438
523
|
tableName = table.name;
|
|
439
524
|
columns = getColumns(tableName);
|
|
440
525
|
if (columns.length) {
|
|
441
|
-
|
|
526
|
+
_context8.next = 2;
|
|
442
527
|
break;
|
|
443
528
|
}
|
|
444
|
-
|
|
529
|
+
_context8.next = 1;
|
|
445
530
|
return fetchColumnsFn.current(extra, datasourceId, {
|
|
446
531
|
isExit: _isExit
|
|
447
532
|
});
|
|
448
533
|
case 1:
|
|
449
|
-
columns =
|
|
534
|
+
columns = _context8.sent;
|
|
450
535
|
setColumns(tableName, columns);
|
|
451
536
|
case 2:
|
|
452
537
|
_columns = (_columns2 = columns) === null || _columns2 === void 0 ? void 0 : _columns2.map(function (v) {
|
|
@@ -462,54 +547,56 @@ var useStore = function useStore() {
|
|
|
462
547
|
typeof callback === 'function' && callback(_columns);
|
|
463
548
|
case 3:
|
|
464
549
|
case "end":
|
|
465
|
-
return
|
|
550
|
+
return _context8.stop();
|
|
466
551
|
}
|
|
467
|
-
},
|
|
552
|
+
}, _callee8);
|
|
468
553
|
}));
|
|
469
|
-
return function fetchColumns(
|
|
470
|
-
return
|
|
554
|
+
return function fetchColumns(_x8, _x9) {
|
|
555
|
+
return _ref8.apply(this, arguments);
|
|
471
556
|
};
|
|
472
557
|
}();
|
|
473
558
|
var setMeta = function () {
|
|
474
|
-
var
|
|
559
|
+
var _ref9 = _asyncToGenerator(_regeneratorRuntime.mark(function _callee9(curData, groupInd) {
|
|
475
560
|
var changeObj,
|
|
476
561
|
_metaList,
|
|
562
|
+
prevMeta,
|
|
477
563
|
newMeta,
|
|
478
564
|
isChange,
|
|
479
|
-
|
|
480
|
-
return _regeneratorRuntime.wrap(function (
|
|
481
|
-
while (1) switch (
|
|
565
|
+
_args9 = arguments;
|
|
566
|
+
return _regeneratorRuntime.wrap(function (_context9) {
|
|
567
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
482
568
|
case 0:
|
|
483
|
-
changeObj =
|
|
484
|
-
_metaList =
|
|
485
|
-
|
|
569
|
+
changeObj = _args9.length > 2 && _args9[2] !== undefined ? _args9[2] : {};
|
|
570
|
+
_metaList = _args9.length > 3 ? _args9[3] : undefined;
|
|
571
|
+
prevMeta = cloneDeep(_metaList || latestMetaListRef.current);
|
|
572
|
+
newMeta = cloneDeep(prevMeta);
|
|
486
573
|
if (newMeta[groupInd]) {
|
|
487
|
-
newMeta[groupInd].list = curData;
|
|
574
|
+
newMeta[groupInd].list = cloneDeep(curData);
|
|
488
575
|
_setMeta(newMeta);
|
|
489
576
|
}
|
|
490
577
|
if (!(changeObj === 'init')) {
|
|
491
|
-
|
|
578
|
+
_context9.next = 1;
|
|
492
579
|
break;
|
|
493
580
|
}
|
|
494
|
-
return
|
|
581
|
+
return _context9.abrupt("return");
|
|
495
582
|
case 1:
|
|
496
|
-
|
|
497
|
-
return fetchChangeFn.current(splitByUnion(
|
|
583
|
+
_context9.next = 2;
|
|
584
|
+
return fetchChangeFn.current(splitByUnion(newMeta), changeObj, {
|
|
498
585
|
isExit: isExit
|
|
499
586
|
});
|
|
500
587
|
case 2:
|
|
501
|
-
isChange =
|
|
588
|
+
isChange = _context9.sent;
|
|
502
589
|
if (isChange === false) {
|
|
503
|
-
_setMeta(
|
|
590
|
+
_setMeta(prevMeta);
|
|
504
591
|
}
|
|
505
592
|
case 3:
|
|
506
593
|
case "end":
|
|
507
|
-
return
|
|
594
|
+
return _context9.stop();
|
|
508
595
|
}
|
|
509
|
-
},
|
|
596
|
+
}, _callee9);
|
|
510
597
|
}));
|
|
511
|
-
return function setMeta(
|
|
512
|
-
return
|
|
598
|
+
return function setMeta(_x0, _x1) {
|
|
599
|
+
return _ref9.apply(this, arguments);
|
|
513
600
|
};
|
|
514
601
|
}();
|
|
515
602
|
var setPreData = function setPreData(data) {
|
|
@@ -908,6 +995,9 @@ var useStore = function useStore() {
|
|
|
908
995
|
set_cacheSource2TableMap({});
|
|
909
996
|
set_cacheColumnsMap({});
|
|
910
997
|
};
|
|
998
|
+
var getCurrentMetaList = function getCurrentMetaList() {
|
|
999
|
+
return cloneDeep(latestMetaListRef.current);
|
|
1000
|
+
};
|
|
911
1001
|
return {
|
|
912
1002
|
showFields: showFields,
|
|
913
1003
|
setShowFields: setShowFields,
|
|
@@ -952,6 +1042,7 @@ var useStore = function useStore() {
|
|
|
952
1042
|
setDataset: setDataset,
|
|
953
1043
|
getDataset: getDataset,
|
|
954
1044
|
reset: reset,
|
|
1045
|
+
getCurrentMetaList: getCurrentMetaList,
|
|
955
1046
|
setProps: setProps,
|
|
956
1047
|
preProps: preProps.current,
|
|
957
1048
|
showSubquery: showSubquery,
|
|
@@ -987,10 +1078,20 @@ var useStore = function useStore() {
|
|
|
987
1078
|
setMetabaseCopy: setMetabaseCopy,
|
|
988
1079
|
moduleDiff: moduleDiff,
|
|
989
1080
|
setModuleDiff: setModuleDiff,
|
|
1081
|
+
showFormulaSql: showFormulaSql,
|
|
1082
|
+
setShowFormulaSql: setShowFormulaSql,
|
|
1083
|
+
showFormulaDiff: showFormulaDiff,
|
|
1084
|
+
setShowFormulaDiff: setShowFormulaDiff,
|
|
1085
|
+
hasFormulaSqlCode: hasFormulaSqlCode,
|
|
1086
|
+
hasFormulaDiffCode: hasFormulaDiffCode,
|
|
990
1087
|
sourceData: sourceData,
|
|
991
1088
|
setSourceData: setSourceData,
|
|
992
1089
|
setFetchDiffFn: setFetchDiffFn,
|
|
993
1090
|
getModuleDiffCode: getModuleDiffCode,
|
|
1091
|
+
setFetchFormulaSqlFn: setFetchFormulaSqlFn,
|
|
1092
|
+
getFormulaSqlCode: getFormulaSqlCode,
|
|
1093
|
+
setFetchFormulaDiffFn: setFetchFormulaDiffFn,
|
|
1094
|
+
getFormulaDiffCode: getFormulaDiffCode,
|
|
994
1095
|
isSubquery: isSubquery,
|
|
995
1096
|
setIsSubquery: setIsSubquery,
|
|
996
1097
|
moduleCopy: moduleCopy,
|