@gingkoo/pandora-metabase 1.0.141 → 1.0.143-alpha.0
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/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-column/index.js +5 -2
- 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 +173 -77
- package/lib/cjs/index.js +17 -3
- package/lib/cjs/store/types.d.ts +4 -4
- package/lib/cjs/types.d.ts +22 -3
- package/lib/cjs/utils/transformSql.js +51 -38
- package/lib/cjs/utils.d.ts +1 -0
- package/lib/cjs/utils.js +327 -57
- 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-column/index.js +5 -2
- 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 +173 -77
- package/lib/es/index.js +18 -4
- package/lib/es/store/types.d.ts +4 -4
- package/lib/es/types.d.ts +22 -3
- package/lib/es/utils/transformSql.js +52 -39
- package/lib/es/utils.d.ts +1 -0
- package/lib/es/utils.js +326 -56
- package/package.json +1 -1
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var
|
|
4
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
10
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
|
|
11
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
12
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/extends"));
|
|
13
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
|
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
|
|
13
15
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
14
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
15
17
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
@@ -41,9 +43,10 @@ var _helperDom = require("../../../utils/helper-dom");
|
|
|
41
43
|
var _CaseWhenGroup = _interopRequireDefault(require("./CaseWhenGroup"));
|
|
42
44
|
var _LogicGroup = _interopRequireDefault(require("./LogicGroup"));
|
|
43
45
|
var _helper = require("../../../store/helper");
|
|
44
|
-
var _excluded = ["
|
|
45
|
-
_excluded2 = ["
|
|
46
|
-
|
|
46
|
+
var _excluded = ["operator", "leftAtoms", "rightAtoms", "atoms"],
|
|
47
|
+
_excluded2 = ["notExistsToolbar", "toolbar"],
|
|
48
|
+
_excluded3 = ["subToolbar", "notExistsColumns", "showFields", "isExit", "toolbar"];
|
|
49
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t3 in e) "default" !== _t3 && {}.hasOwnProperty.call(e, _t3) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t3)) && (i.get || i.set) ? o(f, _t3, i) : f[_t3] = e[_t3]); return f; })(e, t); }
|
|
47
50
|
var CASE_FIXED_OPERATORS = ['case', 'when', 'then', 'else', 'end'];
|
|
48
51
|
var LOGIC_FIXED_OPERATORS = ['(', ')'];
|
|
49
52
|
var LOGIC_REQUIRED_OPERATORS = ['(', ')'];
|
|
@@ -113,6 +116,12 @@ var TOKEN_PALETTE = {
|
|
|
113
116
|
gray: 'rgb(147, 161, 171)',
|
|
114
117
|
green: 'rgb(136, 191, 77)'
|
|
115
118
|
};
|
|
119
|
+
var createUnknownAtom = function createUnknownAtom() {
|
|
120
|
+
return {
|
|
121
|
+
val: '',
|
|
122
|
+
type: _types.AtomsTypeEnum.UNKNOWN
|
|
123
|
+
};
|
|
124
|
+
};
|
|
116
125
|
var getTokenStyleByClassName = function getTokenStyleByClassName(className, extraStyle) {
|
|
117
126
|
var names = " ".concat(className || '', " ");
|
|
118
127
|
var color = TOKEN_PALETTE.blue;
|
|
@@ -282,22 +291,29 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
282
291
|
});
|
|
283
292
|
return map;
|
|
284
293
|
}, [otherTypes]);
|
|
285
|
-
var
|
|
294
|
+
var normalizedValue = (0, _react.useMemo)(function () {
|
|
295
|
+
return (0, _utils2.normalizeAndOrStructure)(value || []);
|
|
296
|
+
}, [value]);
|
|
297
|
+
var caseList = normalizedValue;
|
|
298
|
+
var initialValueRef = (0, _react.useRef)((0, _cloneDeep["default"])(caseList));
|
|
286
299
|
var caseListRef = (0, _react.useRef)(caseList);
|
|
300
|
+
caseListRef.current = caseList;
|
|
301
|
+
var hasFormulaSqlAction = Boolean(store.showFormulaSql && store.hasFormulaSqlCode);
|
|
302
|
+
var hasFormulaDiffAction = Boolean(store.showFormulaDiff && store.hasFormulaDiffCode);
|
|
287
303
|
var operatorList = (0, _react.useMemo)(function () {
|
|
288
304
|
if (store.operatorList.length > 0) {
|
|
289
305
|
return store.operatorList;
|
|
290
306
|
}
|
|
291
307
|
return _utils3.operatorList;
|
|
292
308
|
}, [store.operatorList]);
|
|
293
|
-
var _useState3 = (0, _react.useState)(
|
|
309
|
+
var _useState3 = (0, _react.useState)(false),
|
|
294
310
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
var _useState5 = (0, _react.useState)(
|
|
311
|
+
sqlLoading = _useState4[0],
|
|
312
|
+
setSqlLoading = _useState4[1];
|
|
313
|
+
var _useState5 = (0, _react.useState)(false),
|
|
298
314
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
299
|
-
|
|
300
|
-
|
|
315
|
+
diffLoading = _useState6[0],
|
|
316
|
+
setDiffLoading = _useState6[1];
|
|
301
317
|
var _useState7 = (0, _react.useState)(function () {
|
|
302
318
|
if (!enableCopy) {
|
|
303
319
|
return false;
|
|
@@ -341,8 +357,54 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
341
357
|
}
|
|
342
358
|
return field.fieldName || field.fieldAlias || '';
|
|
343
359
|
}
|
|
360
|
+
var normalizeAndOrItems = function normalizeAndOrItems() {
|
|
361
|
+
var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
362
|
+
var legacyItem = item;
|
|
363
|
+
if (Array.isArray(legacyItem.items) && legacyItem.items.length > 0) {
|
|
364
|
+
return legacyItem.items.map(function (currentItem, index) {
|
|
365
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, index > 0 ? {
|
|
366
|
+
operator: currentItem.operator || legacyItem.operator || 'and'
|
|
367
|
+
} : {}), {}, {
|
|
368
|
+
atoms: Array.isArray(currentItem.atoms) && currentItem.atoms.length > 0 ? currentItem.atoms : [createUnknownAtom()]
|
|
369
|
+
});
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
if (Array.isArray(legacyItem.leftAtoms) || Array.isArray(legacyItem.rightAtoms)) {
|
|
373
|
+
return [{
|
|
374
|
+
atoms: Array.isArray(legacyItem.leftAtoms) && legacyItem.leftAtoms.length > 0 ? legacyItem.leftAtoms : [createUnknownAtom()]
|
|
375
|
+
}, {
|
|
376
|
+
operator: legacyItem.operator || 'and',
|
|
377
|
+
atoms: Array.isArray(legacyItem.rightAtoms) && legacyItem.rightAtoms.length > 0 ? legacyItem.rightAtoms : [createUnknownAtom()]
|
|
378
|
+
}];
|
|
379
|
+
}
|
|
380
|
+
return [{
|
|
381
|
+
atoms: Array.isArray(legacyItem.atoms) && legacyItem.atoms.length > 0 ? legacyItem.atoms : [createUnknownAtom()]
|
|
382
|
+
}];
|
|
383
|
+
};
|
|
384
|
+
var buildAndOrItem = function buildAndOrItem(item, items) {
|
|
385
|
+
var normalizedItems = normalizeAndOrItems({
|
|
386
|
+
items: items
|
|
387
|
+
});
|
|
388
|
+
var operator = item.operator,
|
|
389
|
+
leftAtoms = item.leftAtoms,
|
|
390
|
+
rightAtoms = item.rightAtoms,
|
|
391
|
+
atoms = item.atoms,
|
|
392
|
+
nextItem = (0, _objectWithoutProperties2["default"])(item, _excluded);
|
|
393
|
+
var itemForQuotes = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, nextItem), {}, {
|
|
394
|
+
items: normalizedItems
|
|
395
|
+
});
|
|
396
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, nextItem), {}, {
|
|
397
|
+
items: normalizedItems,
|
|
398
|
+
quotes: getItemQuotes(itemForQuotes)
|
|
399
|
+
});
|
|
400
|
+
};
|
|
344
401
|
function getItemDisplayText(v) {
|
|
402
|
+
var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new WeakSet();
|
|
345
403
|
if (!v) return '';
|
|
404
|
+
if ((0, _typeof2["default"])(v) === 'object') {
|
|
405
|
+
if (visited.has(v)) return v.quotes || '';
|
|
406
|
+
visited.add(v);
|
|
407
|
+
}
|
|
346
408
|
if (v.quotes) return v.quotes;
|
|
347
409
|
if (v.type === _types.AtomsTypeEnum.FIELD) return getFieldDisplayName(v);
|
|
348
410
|
if (v.fieldName) return v.fieldName;
|
|
@@ -351,25 +413,30 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
351
413
|
}
|
|
352
414
|
if (v.type === _types.AtomsTypeEnum.CASE_WHEN) {
|
|
353
415
|
var caseAtomsText = (v.caseAtoms || []).map(function (item) {
|
|
354
|
-
return getItemDisplayText(item);
|
|
416
|
+
return getItemDisplayText(item, visited);
|
|
355
417
|
}).join(' ');
|
|
356
418
|
var whenClausesText = (v.whenClauses || []).map(function (branch) {
|
|
357
|
-
var whenText = (branch.whenAtoms || []).map(
|
|
358
|
-
|
|
419
|
+
var whenText = (branch.whenAtoms || []).map(function (item) {
|
|
420
|
+
return getItemDisplayText(item, visited);
|
|
421
|
+
}).join(' ');
|
|
422
|
+
var thenText = (branch.thenAtoms || []).map(function (item) {
|
|
423
|
+
return getItemDisplayText(item, visited);
|
|
424
|
+
}).join(' ');
|
|
359
425
|
return "when ".concat(whenText, " then ").concat(thenText).trim();
|
|
360
426
|
}).join(' ');
|
|
361
|
-
var elseAtomsText = (v.elseAtoms || []).length ? " else ".concat((v.elseAtoms || []).map(
|
|
427
|
+
var elseAtomsText = (v.elseAtoms || []).length ? " else ".concat((v.elseAtoms || []).map(function (item) {
|
|
428
|
+
return getItemDisplayText(item, visited);
|
|
429
|
+
}).join(' ')) : '';
|
|
362
430
|
return "case ".concat(caseAtomsText, " ").concat(whenClausesText).concat(elseAtomsText, " end").replace(/\s+/g, ' ').trim();
|
|
363
431
|
}
|
|
364
432
|
if (v.type === _types.AtomsTypeEnum.AND_OR) {
|
|
365
|
-
var
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
return
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
return "".concat(v.operator || 'and', " ( ").concat(atomsText, " )").replace(/\s+/g, ' ').trim();
|
|
433
|
+
var itemsText = normalizeAndOrItems(v).map(function (item, index) {
|
|
434
|
+
var atomsText = (item.atoms || []).map(function (atom) {
|
|
435
|
+
return getItemDisplayText(atom, visited);
|
|
436
|
+
}).join(' ');
|
|
437
|
+
return index === 0 ? atomsText : "".concat(item.operator || 'and', " ").concat(atomsText);
|
|
438
|
+
}).join(' ');
|
|
439
|
+
return "( ".concat(itemsText, " )").replace(/\s+/g, ' ').trim();
|
|
373
440
|
}
|
|
374
441
|
if (v.type === _types.AtomsTypeEnum.SELECT) {
|
|
375
442
|
return getSelectDisplayText(v);
|
|
@@ -384,55 +451,61 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
384
451
|
quotes: ''
|
|
385
452
|
}));
|
|
386
453
|
};
|
|
387
|
-
var
|
|
454
|
+
var _withSyncedQuotesInner = function withSyncedQuotesInner(item, visited) {
|
|
455
|
+
if (!item || (0, _typeof2["default"])(item) !== 'object') return item;
|
|
456
|
+
if (visited.has(item)) return visited.get(item);
|
|
388
457
|
if (item.type === _types.AtomsTypeEnum.CASE_WHEN) {
|
|
389
458
|
var _item$elseAtoms;
|
|
390
459
|
var nextItem = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, item), {}, {
|
|
391
|
-
caseAtoms:
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
whenClauses: (item.whenClauses || []).map(function (clause) {
|
|
395
|
-
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, clause), {}, {
|
|
396
|
-
whenAtoms: (clause.whenAtoms || []).map(function (currentItem) {
|
|
397
|
-
return _withSyncedQuotes(currentItem);
|
|
398
|
-
}),
|
|
399
|
-
thenAtoms: (clause.thenAtoms || []).map(function (currentItem) {
|
|
400
|
-
return _withSyncedQuotes(currentItem);
|
|
401
|
-
})
|
|
402
|
-
});
|
|
403
|
-
}),
|
|
404
|
-
elseAtoms: (_item$elseAtoms = item.elseAtoms) === null || _item$elseAtoms === void 0 ? void 0 : _item$elseAtoms.map(function (currentItem) {
|
|
405
|
-
return _withSyncedQuotes(currentItem);
|
|
406
|
-
})
|
|
460
|
+
caseAtoms: [],
|
|
461
|
+
whenClauses: [],
|
|
462
|
+
elseAtoms: []
|
|
407
463
|
});
|
|
408
|
-
|
|
409
|
-
|
|
464
|
+
visited.set(item, nextItem);
|
|
465
|
+
nextItem.caseAtoms = (item.caseAtoms || []).map(function (currentItem) {
|
|
466
|
+
return _withSyncedQuotesInner(currentItem, visited);
|
|
410
467
|
});
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
return _withSyncedQuotes(currentItem);
|
|
421
|
-
})
|
|
422
|
-
} : {
|
|
423
|
-
atoms: (item.atoms || []).map(function (currentItem) {
|
|
424
|
-
return _withSyncedQuotes(currentItem);
|
|
425
|
-
})
|
|
468
|
+
nextItem.whenClauses = (item.whenClauses || []).map(function (clause) {
|
|
469
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, clause), {}, {
|
|
470
|
+
whenAtoms: (clause.whenAtoms || []).map(function (currentItem) {
|
|
471
|
+
return _withSyncedQuotesInner(currentItem, visited);
|
|
472
|
+
}),
|
|
473
|
+
thenAtoms: (clause.thenAtoms || []).map(function (currentItem) {
|
|
474
|
+
return _withSyncedQuotesInner(currentItem, visited);
|
|
475
|
+
})
|
|
476
|
+
});
|
|
426
477
|
});
|
|
427
|
-
|
|
428
|
-
|
|
478
|
+
nextItem.elseAtoms = (_item$elseAtoms = item.elseAtoms) === null || _item$elseAtoms === void 0 ? void 0 : _item$elseAtoms.map(function (currentItem) {
|
|
479
|
+
return _withSyncedQuotesInner(currentItem, visited);
|
|
429
480
|
});
|
|
481
|
+
nextItem.quotes = getItemQuotes(nextItem);
|
|
482
|
+
return nextItem;
|
|
483
|
+
}
|
|
484
|
+
if (item.type === _types.AtomsTypeEnum.AND_OR) {
|
|
485
|
+
var _nextItem = {
|
|
486
|
+
type: item.type,
|
|
487
|
+
quotes: item.quotes || '',
|
|
488
|
+
items: []
|
|
489
|
+
};
|
|
490
|
+
visited.set(item, _nextItem);
|
|
491
|
+
var syncedItem = buildAndOrItem(item, normalizeAndOrItems(item).map(function (currentItem) {
|
|
492
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, currentItem), {}, {
|
|
493
|
+
atoms: (currentItem.atoms || []).map(function (atom) {
|
|
494
|
+
return _withSyncedQuotesInner(atom, visited);
|
|
495
|
+
})
|
|
496
|
+
});
|
|
497
|
+
}));
|
|
498
|
+
(0, _extends2["default"])(_nextItem, syncedItem);
|
|
499
|
+
return _nextItem;
|
|
430
500
|
}
|
|
431
501
|
return item;
|
|
432
502
|
};
|
|
503
|
+
var withSyncedQuotes = function withSyncedQuotes(item) {
|
|
504
|
+
return _withSyncedQuotesInner(item, new WeakMap());
|
|
505
|
+
};
|
|
433
506
|
var setCaseList = function setCaseList(data) {
|
|
434
507
|
var nextData = data.map(function (item) {
|
|
435
|
-
return
|
|
508
|
+
return withSyncedQuotes(item);
|
|
436
509
|
});
|
|
437
510
|
var quotes = nextData.map(function (item) {
|
|
438
511
|
return getItemDisplayText(item);
|
|
@@ -446,21 +519,160 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
446
519
|
nextList[index] = nextItem;
|
|
447
520
|
setCaseList(nextList);
|
|
448
521
|
};
|
|
449
|
-
var
|
|
522
|
+
var getFormulaSqlText = function getFormulaSqlText(result) {
|
|
523
|
+
var _ref3, _result$sql;
|
|
524
|
+
if (typeof result === 'string') return result;
|
|
525
|
+
if (!result) return '';
|
|
526
|
+
return String((_ref3 = (_result$sql = result.sql) !== null && _result$sql !== void 0 ? _result$sql : result.code) !== null && _ref3 !== void 0 ? _ref3 : '');
|
|
527
|
+
};
|
|
528
|
+
var getFormulaDiffData = function getFormulaDiffData(result) {
|
|
529
|
+
var _result$oldCode, _ref4, _result$newCode;
|
|
530
|
+
if (typeof result === 'string') {
|
|
531
|
+
return {
|
|
532
|
+
oldCode: '',
|
|
533
|
+
newCode: result
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
if (!result) {
|
|
537
|
+
return {
|
|
538
|
+
oldCode: '',
|
|
539
|
+
newCode: ''
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
return {
|
|
543
|
+
oldCode: String((_result$oldCode = result.oldCode) !== null && _result$oldCode !== void 0 ? _result$oldCode : ''),
|
|
544
|
+
newCode: String((_ref4 = (_result$newCode = result.newCode) !== null && _result$newCode !== void 0 ? _result$newCode : result.code) !== null && _ref4 !== void 0 ? _ref4 : '')
|
|
545
|
+
};
|
|
546
|
+
};
|
|
547
|
+
var normalizeFormulaValueForOutput = function normalizeFormulaValueForOutput() {
|
|
450
548
|
var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
451
|
-
return data.map(function (
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
}
|
|
455
|
-
if (v.type === _types.AtomsTypeEnum.OPERATOR && (v.val === '(' || v.val === ')')) {
|
|
456
|
-
return "".concat(v.val);
|
|
457
|
-
}
|
|
458
|
-
return getItemDisplayText(v);
|
|
459
|
-
}).join(' ');
|
|
549
|
+
return data.map(function (item) {
|
|
550
|
+
return withSyncedQuotes(item);
|
|
551
|
+
});
|
|
460
552
|
};
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
}
|
|
553
|
+
var getCurrentFormulaValue = function getCurrentFormulaValue() {
|
|
554
|
+
return (0, _cloneDeep["default"])(normalizeFormulaValueForOutput(caseListRef.current || caseList || []));
|
|
555
|
+
};
|
|
556
|
+
var getInitialFormulaValue = function getInitialFormulaValue() {
|
|
557
|
+
return (0, _cloneDeep["default"])(normalizeFormulaValueForOutput(initialValueRef.current || []));
|
|
558
|
+
};
|
|
559
|
+
var showFormulaSql = function () {
|
|
560
|
+
var _ref5 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
|
|
561
|
+
var result, sql, _t;
|
|
562
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
563
|
+
while (1) switch (_context.prev = _context.next) {
|
|
564
|
+
case 0:
|
|
565
|
+
if (!(!hasFormulaSqlAction || sqlLoading)) {
|
|
566
|
+
_context.next = 1;
|
|
567
|
+
break;
|
|
568
|
+
}
|
|
569
|
+
return _context.abrupt("return");
|
|
570
|
+
case 1:
|
|
571
|
+
setSqlLoading(true);
|
|
572
|
+
_context.prev = 2;
|
|
573
|
+
_context.next = 3;
|
|
574
|
+
return store.getFormulaSqlCode(getCurrentFormulaValue());
|
|
575
|
+
case 3:
|
|
576
|
+
result = _context.sent;
|
|
577
|
+
sql = getFormulaSqlText(result);
|
|
578
|
+
if (sql) {
|
|
579
|
+
_context.next = 4;
|
|
580
|
+
break;
|
|
581
|
+
}
|
|
582
|
+
_pandora.Toast.warning('暂无可展示的SQL');
|
|
583
|
+
return _context.abrupt("return");
|
|
584
|
+
case 4:
|
|
585
|
+
openChildModal({
|
|
586
|
+
title: '查看SQL',
|
|
587
|
+
transparentMask: true,
|
|
588
|
+
content: (0, _jsxRuntime.jsx)("div", {
|
|
589
|
+
className: 'Sqb-FormulaSqlPreview scroller',
|
|
590
|
+
children: (0, _jsxRuntime.jsx)(_pandora.Code, {
|
|
591
|
+
mode: 'code',
|
|
592
|
+
language: 'sql',
|
|
593
|
+
children: sql
|
|
594
|
+
})
|
|
595
|
+
}),
|
|
596
|
+
onClose: function onClose() {}
|
|
597
|
+
});
|
|
598
|
+
_context.next = 6;
|
|
599
|
+
break;
|
|
600
|
+
case 5:
|
|
601
|
+
_context.prev = 5;
|
|
602
|
+
_t = _context["catch"](2);
|
|
603
|
+
_pandora.Toast.error('获取SQL失败');
|
|
604
|
+
case 6:
|
|
605
|
+
_context.prev = 6;
|
|
606
|
+
setSqlLoading(false);
|
|
607
|
+
return _context.finish(6);
|
|
608
|
+
case 7:
|
|
609
|
+
case "end":
|
|
610
|
+
return _context.stop();
|
|
611
|
+
}
|
|
612
|
+
}, _callee, null, [[2, 5, 6, 7]]);
|
|
613
|
+
}));
|
|
614
|
+
return function showFormulaSql() {
|
|
615
|
+
return _ref5.apply(this, arguments);
|
|
616
|
+
};
|
|
617
|
+
}();
|
|
618
|
+
var showFormulaDiff = function () {
|
|
619
|
+
var _ref6 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2() {
|
|
620
|
+
var result, _getFormulaDiffData, oldCode, newCode, _t2;
|
|
621
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
622
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
623
|
+
case 0:
|
|
624
|
+
if (!(!hasFormulaDiffAction || diffLoading)) {
|
|
625
|
+
_context2.next = 1;
|
|
626
|
+
break;
|
|
627
|
+
}
|
|
628
|
+
return _context2.abrupt("return");
|
|
629
|
+
case 1:
|
|
630
|
+
setDiffLoading(true);
|
|
631
|
+
_context2.prev = 2;
|
|
632
|
+
_context2.next = 3;
|
|
633
|
+
return store.getFormulaDiffCode({
|
|
634
|
+
oldCode: getInitialFormulaValue(),
|
|
635
|
+
newCode: getCurrentFormulaValue()
|
|
636
|
+
});
|
|
637
|
+
case 3:
|
|
638
|
+
result = _context2.sent;
|
|
639
|
+
_getFormulaDiffData = getFormulaDiffData(result), oldCode = _getFormulaDiffData.oldCode, newCode = _getFormulaDiffData.newCode;
|
|
640
|
+
if (!(!oldCode && !newCode)) {
|
|
641
|
+
_context2.next = 4;
|
|
642
|
+
break;
|
|
643
|
+
}
|
|
644
|
+
_pandora.Toast.warning('暂无可展示的对比结果');
|
|
645
|
+
return _context2.abrupt("return");
|
|
646
|
+
case 4:
|
|
647
|
+
openChildModal({
|
|
648
|
+
title: '对比结果',
|
|
649
|
+
transparentMask: true,
|
|
650
|
+
content: (0, _jsxRuntime.jsx)(_diffViewer["default"], {
|
|
651
|
+
oldCode: oldCode,
|
|
652
|
+
newCode: newCode
|
|
653
|
+
}),
|
|
654
|
+
onClose: function onClose() {}
|
|
655
|
+
});
|
|
656
|
+
_context2.next = 6;
|
|
657
|
+
break;
|
|
658
|
+
case 5:
|
|
659
|
+
_context2.prev = 5;
|
|
660
|
+
_t2 = _context2["catch"](2);
|
|
661
|
+
_pandora.Toast.error('获取对比结果失败');
|
|
662
|
+
case 6:
|
|
663
|
+
_context2.prev = 6;
|
|
664
|
+
setDiffLoading(false);
|
|
665
|
+
return _context2.finish(6);
|
|
666
|
+
case 7:
|
|
667
|
+
case "end":
|
|
668
|
+
return _context2.stop();
|
|
669
|
+
}
|
|
670
|
+
}, _callee2, null, [[2, 5, 6, 7]]);
|
|
671
|
+
}));
|
|
672
|
+
return function showFormulaDiff() {
|
|
673
|
+
return _ref6.apply(this, arguments);
|
|
674
|
+
};
|
|
675
|
+
}();
|
|
464
676
|
var renderTokenContent = function renderTokenContent(children) {
|
|
465
677
|
return (0, _jsxRuntime.jsx)("span", {
|
|
466
678
|
className: 'Sqb-TokenContent',
|
|
@@ -484,7 +696,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
484
696
|
activeZoomRegionKey = _useState12[0],
|
|
485
697
|
setActiveZoomRegionKey = _useState12[1];
|
|
486
698
|
var updateDraftValue = function updateDraftValue(nextValue) {
|
|
487
|
-
setDraftValue(
|
|
699
|
+
setDraftValue(withSyncedQuotes(nextValue));
|
|
488
700
|
};
|
|
489
701
|
var handleOk = function handleOk() {
|
|
490
702
|
var _modalInstance2, _modalInstance2$close;
|
|
@@ -645,7 +857,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
645
857
|
setDraftList = _useState14[1];
|
|
646
858
|
var updateDraftList = function updateDraftList(nextList) {
|
|
647
859
|
setDraftList(nextList.map(function (item) {
|
|
648
|
-
return
|
|
860
|
+
return withSyncedQuotes(item);
|
|
649
861
|
}));
|
|
650
862
|
};
|
|
651
863
|
var handleOk = function handleOk() {
|
|
@@ -850,38 +1062,66 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
850
1062
|
});
|
|
851
1063
|
};
|
|
852
1064
|
var renderAndOrEditor = function renderAndOrEditor(value, index) {
|
|
853
|
-
var
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
type: _types.AtomsTypeEnum.UNKNOWN
|
|
857
|
-
};
|
|
1065
|
+
var items = normalizeAndOrItems(value);
|
|
1066
|
+
var updateItems = function updateItems(nextItems) {
|
|
1067
|
+
updateAtomAt(index, buildAndOrItem(value, nextItems));
|
|
858
1068
|
};
|
|
859
|
-
var leftAtoms = Array.isArray(value.leftAtoms) ? value.leftAtoms : value.atoms || [createUnknownAtom()];
|
|
860
|
-
var rightAtoms = Array.isArray(value.rightAtoms) ? value.rightAtoms : [createUnknownAtom()];
|
|
861
1069
|
return (0, _jsxRuntime.jsx)(_LogicGroup["default"], {
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
atoms: undefined,
|
|
874
|
-
rightAtoms: rightAtoms,
|
|
875
|
-
leftAtoms: nextList
|
|
876
|
-
}));
|
|
877
|
-
}),
|
|
878
|
-
rightContent: renderNestedFormulaList(rightAtoms, function (nextList) {
|
|
879
|
-
updateAtomAt(index, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, value), {}, {
|
|
880
|
-
atoms: undefined,
|
|
881
|
-
leftAtoms: leftAtoms,
|
|
882
|
-
rightAtoms: nextList
|
|
883
|
-
}));
|
|
1070
|
+
items: items.map(function (item, itemIndex) {
|
|
1071
|
+
return {
|
|
1072
|
+
operator: item.operator,
|
|
1073
|
+
content: renderNestedFormulaList(item.atoms, function (nextList) {
|
|
1074
|
+
var nextItems = items.slice();
|
|
1075
|
+
nextItems[itemIndex] = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, nextItems[itemIndex]), {}, {
|
|
1076
|
+
atoms: nextList
|
|
1077
|
+
});
|
|
1078
|
+
updateItems(nextItems);
|
|
1079
|
+
})
|
|
1080
|
+
};
|
|
884
1081
|
}),
|
|
1082
|
+
onChangeOperator: function onChangeOperator(itemIndex, operator) {
|
|
1083
|
+
var nextItems = items.slice();
|
|
1084
|
+
if (itemIndex <= 0 || !nextItems[itemIndex]) return;
|
|
1085
|
+
nextItems[itemIndex] = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, nextItems[itemIndex]), {}, {
|
|
1086
|
+
operator: operator
|
|
1087
|
+
});
|
|
1088
|
+
updateItems(nextItems);
|
|
1089
|
+
},
|
|
1090
|
+
onAddItem: function onAddItem() {
|
|
1091
|
+
var nextItems = items.slice();
|
|
1092
|
+
nextItems.push({
|
|
1093
|
+
operator: 'and',
|
|
1094
|
+
atoms: [createUnknownAtom()]
|
|
1095
|
+
});
|
|
1096
|
+
if (nextItems[0]) {
|
|
1097
|
+
nextItems[0] = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, nextItems[0]), {}, {
|
|
1098
|
+
operator: undefined
|
|
1099
|
+
});
|
|
1100
|
+
}
|
|
1101
|
+
updateItems(nextItems);
|
|
1102
|
+
},
|
|
1103
|
+
onDeleteItem: function onDeleteItem(operatorIndex, side) {
|
|
1104
|
+
if (items.length <= 2) return;
|
|
1105
|
+
var nextItems = items.slice();
|
|
1106
|
+
if (side === 'left') {
|
|
1107
|
+
var _nextItems;
|
|
1108
|
+
var previousOperator = (_nextItems = nextItems[operatorIndex - 1]) === null || _nextItems === void 0 ? void 0 : _nextItems.operator;
|
|
1109
|
+
nextItems.splice(operatorIndex - 1, 1);
|
|
1110
|
+
if (nextItems[operatorIndex - 1]) {
|
|
1111
|
+
nextItems[operatorIndex - 1] = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, nextItems[operatorIndex - 1]), {}, {
|
|
1112
|
+
operator: previousOperator
|
|
1113
|
+
});
|
|
1114
|
+
}
|
|
1115
|
+
} else {
|
|
1116
|
+
nextItems.splice(operatorIndex, 1);
|
|
1117
|
+
}
|
|
1118
|
+
if (nextItems[0]) {
|
|
1119
|
+
nextItems[0] = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, nextItems[0]), {}, {
|
|
1120
|
+
operator: undefined
|
|
1121
|
+
});
|
|
1122
|
+
}
|
|
1123
|
+
updateItems(nextItems);
|
|
1124
|
+
},
|
|
885
1125
|
onDelete: function onDelete(e) {
|
|
886
1126
|
return handleDel(e, index);
|
|
887
1127
|
}
|
|
@@ -1335,10 +1575,10 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
1335
1575
|
title: (0, _locale.__)('metabase.prompt'),
|
|
1336
1576
|
content: (0, _locale.__)('customColumn.confirmDelete'),
|
|
1337
1577
|
onOk: function () {
|
|
1338
|
-
var _onOk = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function
|
|
1578
|
+
var _onOk = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
|
|
1339
1579
|
var selectedIndexSet, _caseList;
|
|
1340
|
-
return _regenerator["default"].wrap(function (
|
|
1341
|
-
while (1) switch (
|
|
1580
|
+
return _regenerator["default"].wrap(function (_context3) {
|
|
1581
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
1342
1582
|
case 0:
|
|
1343
1583
|
selectedIndexSet = new Set(selectedIndices);
|
|
1344
1584
|
_caseList = caseList.filter(function (_, index) {
|
|
@@ -1348,9 +1588,9 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
1348
1588
|
initPaste();
|
|
1349
1589
|
case 1:
|
|
1350
1590
|
case "end":
|
|
1351
|
-
return
|
|
1591
|
+
return _context3.stop();
|
|
1352
1592
|
}
|
|
1353
|
-
},
|
|
1593
|
+
}, _callee3);
|
|
1354
1594
|
}));
|
|
1355
1595
|
function onOk() {
|
|
1356
1596
|
return _onOk.apply(this, arguments);
|
|
@@ -1454,7 +1694,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
1454
1694
|
var _store$preProps = store.preProps,
|
|
1455
1695
|
notExistsToolbar = _store$preProps.notExistsToolbar,
|
|
1456
1696
|
toolbar = _store$preProps.toolbar,
|
|
1457
|
-
other = (0, _objectWithoutProperties2["default"])(_store$preProps,
|
|
1697
|
+
other = (0, _objectWithoutProperties2["default"])(_store$preProps, _excluded2);
|
|
1458
1698
|
var _value = ((_caseList$i = caseList[i]) === null || _caseList$i === void 0 ? void 0 : _caseList$i.notExists) || [];
|
|
1459
1699
|
var oldList = (0, _cloneDeep["default"])(((_caseList$i2 = caseList[i]) === null || _caseList$i2 === void 0 ? void 0 : _caseList$i2.notExists) || []);
|
|
1460
1700
|
var childModalZIndex = (0, _helperDom.getTopLayerZIndex)() + 1;
|
|
@@ -1502,7 +1742,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
1502
1742
|
showFields = _store$preProps2.showFields,
|
|
1503
1743
|
isExit = _store$preProps2.isExit,
|
|
1504
1744
|
toolbar = _store$preProps2.toolbar,
|
|
1505
|
-
other = (0, _objectWithoutProperties2["default"])(_store$preProps2,
|
|
1745
|
+
other = (0, _objectWithoutProperties2["default"])(_store$preProps2, _excluded3);
|
|
1506
1746
|
var _value = ((_caseList$i3 = caseList[i]) === null || _caseList$i3 === void 0 ? void 0 : _caseList$i3.subQuery) || [];
|
|
1507
1747
|
var oldList = (0, _cloneDeep["default"])(((_caseList$i4 = caseList[i]) === null || _caseList$i4 === void 0 ? void 0 : _caseList$i4.subQuery) || []);
|
|
1508
1748
|
var childModalZIndex = (0, _helperDom.getTopLayerZIndex)() + 1;
|
|
@@ -2113,50 +2353,31 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
2113
2353
|
size: 'middle',
|
|
2114
2354
|
className: 'preview-container',
|
|
2115
2355
|
children: [(0, _jsxRuntime.jsxs)("div", {
|
|
2356
|
+
className: 'Sqb-FormulaPreviewHeader',
|
|
2116
2357
|
children: [(0, _jsxRuntime.jsx)("p", {
|
|
2117
2358
|
children: "\u9884\u89C8\uFF1A"
|
|
2118
|
-
}), (0, _jsxRuntime.
|
|
2119
|
-
direction: 'vertical',
|
|
2120
|
-
defaultValue: previewMode,
|
|
2121
|
-
buttonStyle: 'solid',
|
|
2122
|
-
type: 'button',
|
|
2359
|
+
}), hasFormulaSqlAction && (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
2123
2360
|
size: 'small',
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
overflow: 'auto',
|
|
2137
|
-
wordBreak: 'break-word'
|
|
2138
|
-
},
|
|
2139
|
-
children: [previewMode === 'diff' && (0, _jsxRuntime.jsx)(_diffViewer["default"], {
|
|
2140
|
-
oldCode: oldCode,
|
|
2141
|
-
newCode: getPreviewStr(caseList)
|
|
2142
|
-
}), previewMode === 'code' && (0, _jsxRuntime.jsx)("div", {
|
|
2143
|
-
className: (0, _classnames["default"])({
|
|
2144
|
-
isSqlError: errorInfo.isError
|
|
2145
|
-
}),
|
|
2146
|
-
children: caseList.map(function (v, i) {
|
|
2147
|
-
return (0, _jsxRuntime.jsx)("span", {
|
|
2148
|
-
className: 'mr-1',
|
|
2149
|
-
children: getItemDisplayText(v)
|
|
2150
|
-
}, i);
|
|
2151
|
-
})
|
|
2152
|
-
}), (0, _jsxRuntime.jsx)("div", {
|
|
2153
|
-
className: 'errorMsg mt-2',
|
|
2154
|
-
children: errorInfo.isError && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
2155
|
-
children: ["\u63D0\u793A\uFF1A", (0, _jsxRuntime.jsx)("span", {
|
|
2156
|
-
children: errorInfo.error
|
|
2157
|
-
})]
|
|
2158
|
-
})
|
|
2361
|
+
type: 'link',
|
|
2362
|
+
loading: sqlLoading,
|
|
2363
|
+
disabled: sqlLoading,
|
|
2364
|
+
onClick: showFormulaSql,
|
|
2365
|
+
children: "\u9884\u89C8SQL"
|
|
2366
|
+
}), hasFormulaDiffAction && (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
2367
|
+
size: 'small',
|
|
2368
|
+
type: 'link',
|
|
2369
|
+
loading: diffLoading,
|
|
2370
|
+
disabled: diffLoading,
|
|
2371
|
+
onClick: showFormulaDiff,
|
|
2372
|
+
children: "\u5BF9\u6BD4\u7ED3\u679C"
|
|
2159
2373
|
})]
|
|
2374
|
+
}), (0, _jsxRuntime.jsx)("div", {
|
|
2375
|
+
className: 'errorMsg mt-2',
|
|
2376
|
+
children: errorInfo.isError && (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
2377
|
+
children: ["\u63D0\u793A\uFF1A", (0, _jsxRuntime.jsx)("span", {
|
|
2378
|
+
children: errorInfo.error
|
|
2379
|
+
})]
|
|
2380
|
+
})
|
|
2160
2381
|
})]
|
|
2161
2382
|
})
|
|
2162
2383
|
})]
|