@gingkoo/pandora-metabase 1.0.125 → 1.0.127
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 +62 -14
- 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 +21 -3
- 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 +381 -63
- 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 +62 -14
- 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 +21 -3
- 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 +382 -64
- package/package.json +1 -1
package/lib/cjs/utils.js
CHANGED
|
@@ -253,44 +253,348 @@ var AliasType;
|
|
|
253
253
|
AliasType["table"] = "table";
|
|
254
254
|
AliasType["field"] = "field";
|
|
255
255
|
})(AliasType || (AliasType = {}));
|
|
256
|
+
var normalizeAtomQuotes = function normalizeAtomQuotes(quotes) {
|
|
257
|
+
return quotes.replace(/\s+/g, ' ').trim();
|
|
258
|
+
};
|
|
259
|
+
var getExpressionConditionText = function getExpressionConditionText(condition) {
|
|
260
|
+
var localeKey = {
|
|
261
|
+
等于: 'filter.equal',
|
|
262
|
+
不等于: 'filter.notEqual',
|
|
263
|
+
大于: 'filter.greaterThan',
|
|
264
|
+
小于: 'filter.lessThan',
|
|
265
|
+
介于之间: 'filter.inBetween',
|
|
266
|
+
大于或等于: 'filter.greaterThanOrEqualTo',
|
|
267
|
+
小于或等于: 'filter.lessThanOrEqualTo',
|
|
268
|
+
为空: 'filter.empty',
|
|
269
|
+
不为空: 'filter.notEmpty',
|
|
270
|
+
包含: 'filter.contain',
|
|
271
|
+
不包含: 'filter.notInclude',
|
|
272
|
+
'以...开始': 'filter.startWith',
|
|
273
|
+
'以...结束': 'filter.endWith',
|
|
274
|
+
'不以...开始': 'filter.notStartWith',
|
|
275
|
+
'不以...结束': 'filter.notEndWith',
|
|
276
|
+
早于: 'filter.earlierThan',
|
|
277
|
+
晚于: 'filter.laterThan',
|
|
278
|
+
是空的: 'filter.isEmpty',
|
|
279
|
+
In: 'filter.within',
|
|
280
|
+
'Not In': 'filter.withnotin',
|
|
281
|
+
无需结果: 'filter.notresults',
|
|
282
|
+
正则匹配: 'filter.regularMatch'
|
|
283
|
+
}[condition];
|
|
284
|
+
return localeKey ? (0, _locale.__)(localeKey) : condition;
|
|
285
|
+
};
|
|
286
|
+
var getSelectAtomText = function getSelectAtomText(item) {
|
|
287
|
+
var displayField = item.displayField || 'value';
|
|
288
|
+
var getOptionText = function getOptionText(value) {
|
|
289
|
+
var _ref, _option$displayField;
|
|
290
|
+
var option = (item.options || []).find(function (currentOption) {
|
|
291
|
+
return currentOption.value === value;
|
|
292
|
+
});
|
|
293
|
+
if (!option) return value || '';
|
|
294
|
+
return String((_ref = (_option$displayField = option[displayField]) !== null && _option$displayField !== void 0 ? _option$displayField : option.value) !== null && _ref !== void 0 ? _ref : '');
|
|
295
|
+
};
|
|
296
|
+
if (Array.isArray(item.val)) {
|
|
297
|
+
return item.val.map(function (currentValue) {
|
|
298
|
+
return getOptionText(String(currentValue));
|
|
299
|
+
}).join(', ');
|
|
300
|
+
}
|
|
301
|
+
return getOptionText(String(item.val || ''));
|
|
302
|
+
};
|
|
303
|
+
var _getAtomDisplayText = function getAtomDisplayText(item) {
|
|
304
|
+
if (!item) return '';
|
|
305
|
+
if (item.type === _types.AtomsTypeEnum.FIELD) {
|
|
306
|
+
return item.fieldAlias || item.fieldName || '';
|
|
307
|
+
}
|
|
308
|
+
if (item.type === _types.AtomsTypeEnum.CASE_WHEN) {
|
|
309
|
+
return buildCaseWhenQuotes(item);
|
|
310
|
+
}
|
|
311
|
+
if (item.type === _types.AtomsTypeEnum.AND_OR) {
|
|
312
|
+
return buildAndOrQuotes(item);
|
|
313
|
+
}
|
|
314
|
+
if (item.type === _types.AtomsTypeEnum.EXPRESSION) {
|
|
315
|
+
return buildExpressionQuotes(item);
|
|
316
|
+
}
|
|
317
|
+
if (item.type === _types.AtomsTypeEnum.FORMULA) {
|
|
318
|
+
return buildFormulaQuotes(item);
|
|
319
|
+
}
|
|
320
|
+
if (item.type === _types.AtomsTypeEnum.COLLECTION) {
|
|
321
|
+
return (item.list || []).map(_getAtomDisplayText).join(' ');
|
|
322
|
+
}
|
|
323
|
+
if (item.type === _types.AtomsTypeEnum.SELECT) {
|
|
324
|
+
return getSelectAtomText(item);
|
|
325
|
+
}
|
|
326
|
+
if (item.type === _types.AtomsTypeEnum.EXISTS || item.type === _types.AtomsTypeEnum.NOT_EXISTS || item.type === _types.AtomsTypeEnum.SUB_QUERY) {
|
|
327
|
+
return item.quotes || '';
|
|
328
|
+
}
|
|
329
|
+
var val = item.val;
|
|
330
|
+
if (Array.isArray(val)) return val.join(', ');
|
|
331
|
+
return val || val === 0 ? String(val) : '';
|
|
332
|
+
};
|
|
333
|
+
var buildFormulaQuotes = function buildFormulaQuotes(item) {
|
|
334
|
+
var argsText = (item.args || []).map(_getAtomDisplayText).join(' , ');
|
|
335
|
+
return normalizeAtomQuotes("".concat(item.name || '', " ( ").concat(argsText, " )"));
|
|
336
|
+
};
|
|
337
|
+
var buildAndOrQuotes = function buildAndOrQuotes(item) {
|
|
338
|
+
var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
|
|
339
|
+
if (hasBinarySides) {
|
|
340
|
+
var leftText = (item.leftAtoms || []).map(_getAtomDisplayText).join(' ');
|
|
341
|
+
var rightText = (item.rightAtoms || []).map(_getAtomDisplayText).join(' ');
|
|
342
|
+
return normalizeAtomQuotes("( ".concat(leftText, " ").concat(item.operator || 'and', " ").concat(rightText, " )"));
|
|
343
|
+
}
|
|
344
|
+
var atomsText = (item.atoms || []).map(_getAtomDisplayText).join(' ');
|
|
345
|
+
return normalizeAtomQuotes("".concat(item.operator || 'and', " ( ").concat(atomsText, " )"));
|
|
346
|
+
};
|
|
347
|
+
var buildCaseWhenQuotes = function buildCaseWhenQuotes(item) {
|
|
348
|
+
var caseAtomsText = (item.caseAtoms || []).map(_getAtomDisplayText).join(' ');
|
|
349
|
+
var whenClausesText = (item.whenClauses || []).map(function (clause) {
|
|
350
|
+
var whenText = (clause.whenAtoms || []).map(_getAtomDisplayText).join(' ');
|
|
351
|
+
var thenText = (clause.thenAtoms || []).map(_getAtomDisplayText).join(' ');
|
|
352
|
+
return "when ".concat(whenText, " then ").concat(thenText).trim();
|
|
353
|
+
}).join(' ');
|
|
354
|
+
var elseAtomsText = (item.elseAtoms || []).length ? " else ".concat((item.elseAtoms || []).map(_getAtomDisplayText).join(' ')) : '';
|
|
355
|
+
return normalizeAtomQuotes("case ".concat(caseAtomsText, " ").concat(whenClausesText).concat(elseAtomsText, " end"));
|
|
356
|
+
};
|
|
357
|
+
var getExpressionAtomsText = function getExpressionAtomsText() {
|
|
358
|
+
var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
359
|
+
var formula = arguments.length > 1 ? arguments[1] : undefined;
|
|
360
|
+
var names = items.map(_getAtomDisplayText).join(' || ');
|
|
361
|
+
if ((formula === null || formula === void 0 ? void 0 : formula.type) === 'SUBSTR') {
|
|
362
|
+
var _formula$params, _formula$params2;
|
|
363
|
+
return "SUBSTR(".concat(names, ",").concat(formula === null || formula === void 0 || (_formula$params = formula.params) === null || _formula$params === void 0 ? void 0 : _formula$params[1], ",").concat(formula === null || formula === void 0 || (_formula$params2 = formula.params) === null || _formula$params2 === void 0 ? void 0 : _formula$params2[2], ")");
|
|
364
|
+
}
|
|
365
|
+
return names;
|
|
366
|
+
};
|
|
367
|
+
var getExpressionFirstValue = function getExpressionFirstValue() {
|
|
368
|
+
var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
369
|
+
var firstItem = items[0];
|
|
370
|
+
if (!firstItem) {
|
|
371
|
+
return {
|
|
372
|
+
firstVal: '',
|
|
373
|
+
secondVal: ''
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
if (Array.isArray(firstItem.val)) {
|
|
377
|
+
return {
|
|
378
|
+
firstVal: firstItem.val[0] || '',
|
|
379
|
+
secondVal: firstItem.val[1] || ''
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
return {
|
|
383
|
+
firstVal: firstItem.val || firstItem.val === 0 ? String(firstItem.val) : _getAtomDisplayText(firstItem),
|
|
384
|
+
secondVal: ''
|
|
385
|
+
};
|
|
386
|
+
};
|
|
387
|
+
var buildExpressionQuotes = function buildExpressionQuotes(item) {
|
|
388
|
+
var condition = item.condition || '';
|
|
389
|
+
var lhsText = getExpressionAtomsText(item.lhs || [], item.formula);
|
|
390
|
+
var rhsText = getExpressionAtomsText(item.rhs || [], item.formula);
|
|
391
|
+
var _getExpressionFirstVa = getExpressionFirstValue(item.rhs || []),
|
|
392
|
+
firstVal = _getExpressionFirstVa.firstVal,
|
|
393
|
+
secondVal = _getExpressionFirstVa.secondVal;
|
|
394
|
+
if (condition === '以...开始') {
|
|
395
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "startWith ".concat(firstVal) : "\u4EE5 ".concat(firstVal, " \u5F00\u59CB")));
|
|
396
|
+
}
|
|
397
|
+
if (condition === '不以...开始') {
|
|
398
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "not startWith ".concat(firstVal) : "\u4E0D\u4EE5 ".concat(firstVal, " \u5F00\u59CB")));
|
|
399
|
+
}
|
|
400
|
+
if (condition === '以...结束') {
|
|
401
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "endWith ".concat(firstVal) : "\u4EE5 ".concat(firstVal, " \u7ED3\u675F")));
|
|
402
|
+
}
|
|
403
|
+
if (condition === '不以...结束') {
|
|
404
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "not endWith ".concat(firstVal) : "\u4E0D\u4EE5 ".concat(firstVal, " \u7ED3\u675F")));
|
|
405
|
+
}
|
|
406
|
+
if (condition === '介于之间') {
|
|
407
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "Between ".concat(firstVal, " and ").concat(secondVal) : "\u4ECB\u4E8E".concat(firstVal, "\u548C").concat(secondVal, "\u4E4B\u95F4")));
|
|
408
|
+
}
|
|
409
|
+
if (condition === '前') {
|
|
410
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "previous ".concat(firstVal).concat(secondVal) : "\u4E0A\u4E00\u4E2A".concat(firstVal).concat(secondVal)));
|
|
411
|
+
}
|
|
412
|
+
if (condition === '下一个') {
|
|
413
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "next ".concat(firstVal).concat(secondVal) : "\u4E0B\u4E00\u4E2A".concat(firstVal).concat(secondVal)));
|
|
414
|
+
}
|
|
415
|
+
if (condition === '在') {
|
|
416
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? 'is' : '是', " ").concat(firstVal));
|
|
417
|
+
}
|
|
418
|
+
if (condition === '是空的') {
|
|
419
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? 'is empty' : '为空'));
|
|
420
|
+
}
|
|
421
|
+
if (condition === '不是空的') {
|
|
422
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? 'not empty' : '不为空'));
|
|
423
|
+
}
|
|
424
|
+
if (condition === '当前') {
|
|
425
|
+
if (firstVal === '天') {
|
|
426
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? 'today' : '今天'));
|
|
427
|
+
}
|
|
428
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(_locale.isEn ? "this is ".concat(firstVal) : "\u8FD9\u4E2A".concat(firstVal)));
|
|
429
|
+
}
|
|
430
|
+
if (condition === 'In' || condition === 'Not In') {
|
|
431
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(getExpressionConditionText(condition), " (").concat(firstVal, ")"));
|
|
432
|
+
}
|
|
433
|
+
return normalizeAtomQuotes("".concat(lhsText, " ").concat(getExpressionConditionText(condition), " ").concat(rhsText || firstVal));
|
|
434
|
+
};
|
|
435
|
+
var syncAtomQuotes = function syncAtomQuotes(item) {
|
|
436
|
+
if (item.type === _types.AtomsTypeEnum.JOIN_DEFAULT) {
|
|
437
|
+
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
|
|
438
|
+
lhs: syncAtomQuotesList(item.lhs || []),
|
|
439
|
+
rhs: syncAtomQuotesList(item.rhs || [])
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
if (item.type === _types.AtomsTypeEnum.EXPRESSION) {
|
|
443
|
+
var nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
|
|
444
|
+
lhs: syncAtomQuotesList(item.lhs || []),
|
|
445
|
+
rhs: syncAtomQuotesList(item.rhs || [])
|
|
446
|
+
});
|
|
447
|
+
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, nextItem), {}, {
|
|
448
|
+
quotes: buildExpressionQuotes(nextItem)
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
if (item.type === _types.AtomsTypeEnum.FORMULA) {
|
|
452
|
+
var _nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
|
|
453
|
+
args: syncAtomQuotesList(item.args || [])
|
|
454
|
+
});
|
|
455
|
+
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem), {}, {
|
|
456
|
+
quotes: buildFormulaQuotes(_nextItem)
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
if (item.type === _types.AtomsTypeEnum.COLLECTION) {
|
|
460
|
+
var _nextItem2 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
|
|
461
|
+
list: syncAtomQuotesList(item.list || [])
|
|
462
|
+
});
|
|
463
|
+
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem2), {}, {
|
|
464
|
+
quotes: (_nextItem2.list || []).map(_getAtomDisplayText).join(' ')
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
if (item.type === _types.AtomsTypeEnum.CASE_WHEN) {
|
|
468
|
+
var _nextItem3 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
|
|
469
|
+
caseAtoms: syncAtomQuotesList(item.caseAtoms || []),
|
|
470
|
+
whenClauses: (item.whenClauses || []).map(function (clause) {
|
|
471
|
+
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, clause), {}, {
|
|
472
|
+
whenAtoms: syncAtomQuotesList(clause.whenAtoms || []),
|
|
473
|
+
thenAtoms: syncAtomQuotesList(clause.thenAtoms || [])
|
|
474
|
+
});
|
|
475
|
+
}),
|
|
476
|
+
elseAtoms: syncAtomQuotesList(item.elseAtoms || [])
|
|
477
|
+
});
|
|
478
|
+
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem3), {}, {
|
|
479
|
+
quotes: buildCaseWhenQuotes(_nextItem3)
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
if (item.type === _types.AtomsTypeEnum.AND_OR) {
|
|
483
|
+
var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
|
|
484
|
+
var _nextItem4 = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), hasBinarySides ? {
|
|
485
|
+
atoms: undefined,
|
|
486
|
+
leftAtoms: syncAtomQuotesList(item.leftAtoms || []),
|
|
487
|
+
rightAtoms: syncAtomQuotesList(item.rightAtoms || [])
|
|
488
|
+
} : {
|
|
489
|
+
atoms: syncAtomQuotesList(item.atoms || [])
|
|
490
|
+
});
|
|
491
|
+
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, _nextItem4), {}, {
|
|
492
|
+
quotes: buildAndOrQuotes(_nextItem4)
|
|
493
|
+
});
|
|
494
|
+
}
|
|
495
|
+
return item;
|
|
496
|
+
};
|
|
497
|
+
var syncAtomQuotesList = function syncAtomQuotesList(items) {
|
|
498
|
+
return items.map(syncAtomQuotes);
|
|
499
|
+
};
|
|
500
|
+
var isSameAliasTargetTable = function isSameAliasTargetTable(item, target) {
|
|
501
|
+
if (target.tableUuid && item.tableUuid && item.tableUuid === target.tableUuid) {
|
|
502
|
+
return true;
|
|
503
|
+
}
|
|
504
|
+
if (target.datasourceId && item.datasourceId && item.datasourceId !== target.datasourceId) {
|
|
505
|
+
return false;
|
|
506
|
+
}
|
|
507
|
+
if (target.tableId && item.tableId && item.tableId === target.tableId) {
|
|
508
|
+
return true;
|
|
509
|
+
}
|
|
510
|
+
return Boolean(target.tableName && item.tableName && item.tableName === target.tableName);
|
|
511
|
+
};
|
|
512
|
+
var isAliasTargetField = function isAliasTargetField(item, target) {
|
|
513
|
+
if (target.uuid && item.fieldUuid && item.fieldUuid === target.uuid) {
|
|
514
|
+
return true;
|
|
515
|
+
}
|
|
516
|
+
var sameTable = isSameAliasTargetTable(item, target);
|
|
517
|
+
if (target.fieldId && item.fieldId && item.fieldId === target.fieldId) {
|
|
518
|
+
return sameTable || !target.tableId;
|
|
519
|
+
}
|
|
520
|
+
return Boolean(target.fieldName && item.fieldName && item.fieldName === target.fieldName && sameTable);
|
|
521
|
+
};
|
|
256
522
|
var _changeAlias = function changeAlias(items, val, type) {
|
|
257
523
|
return items.map(function (v) {
|
|
524
|
+
var nextItem;
|
|
258
525
|
if (v.type === _types.AtomsTypeEnum.JOIN_DEFAULT || v.type === _types.AtomsTypeEnum.EXPRESSION) {
|
|
259
|
-
|
|
526
|
+
nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
|
|
260
527
|
lhs: _changeAlias(v.lhs, val, type),
|
|
261
528
|
rhs: _changeAlias(v.rhs, val, type)
|
|
262
529
|
});
|
|
263
530
|
} else if (v.type === _types.AtomsTypeEnum.FIELD) {
|
|
531
|
+
nextItem = (0, _objectSpread6["default"])({}, v);
|
|
264
532
|
if (type === AliasType.table && v.tableUuid === val.uuid) {
|
|
265
|
-
|
|
533
|
+
nextItem.tableAlias = val.alias;
|
|
266
534
|
}
|
|
267
|
-
if (type === AliasType.field && v
|
|
268
|
-
|
|
535
|
+
if (type === AliasType.field && isAliasTargetField(v, val)) {
|
|
536
|
+
nextItem.fieldAlias = val.alias;
|
|
269
537
|
}
|
|
270
|
-
return v;
|
|
271
538
|
} else if (v.type === _types.AtomsTypeEnum.EXISTS || v.type === _types.AtomsTypeEnum.NOT_EXISTS) {
|
|
539
|
+
nextItem = (0, _objectSpread6["default"])({}, v);
|
|
272
540
|
if (type === AliasType.table) {
|
|
273
|
-
|
|
274
|
-
tableUuid: val.uuid,
|
|
541
|
+
nextItem.notExists = changeTableAlias(v.notExists || [], {
|
|
542
|
+
tableUuid: val.uuid || '',
|
|
275
543
|
alias: val.alias
|
|
276
544
|
});
|
|
277
545
|
}
|
|
278
546
|
if (type === AliasType.field) {
|
|
279
|
-
|
|
280
|
-
fieldUuid: val.uuid,
|
|
547
|
+
nextItem.notExists = changeFieldAlias(v.notExists || [], {
|
|
548
|
+
fieldUuid: val.uuid || '',
|
|
549
|
+
fieldAlias: val.alias
|
|
550
|
+
});
|
|
551
|
+
}
|
|
552
|
+
} else if (v.type === _types.AtomsTypeEnum.SUB_QUERY) {
|
|
553
|
+
nextItem = (0, _objectSpread6["default"])({}, v);
|
|
554
|
+
if (type === AliasType.table) {
|
|
555
|
+
nextItem.subQuery = changeTableAlias(v.subQuery || [], {
|
|
556
|
+
tableUuid: val.uuid || '',
|
|
557
|
+
alias: val.alias
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
if (type === AliasType.field) {
|
|
561
|
+
nextItem.subQuery = changeFieldAlias(v.subQuery || [], {
|
|
562
|
+
fieldUuid: val.uuid || '',
|
|
281
563
|
fieldAlias: val.alias
|
|
282
564
|
});
|
|
283
565
|
}
|
|
284
|
-
return v;
|
|
285
566
|
} else if (v.type === _types.AtomsTypeEnum.FORMULA) {
|
|
286
|
-
|
|
287
|
-
|
|
567
|
+
nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
|
|
568
|
+
args: _changeAlias(v.args || [], val, type)
|
|
569
|
+
});
|
|
288
570
|
} else if (v.type === _types.AtomsTypeEnum.COLLECTION) {
|
|
289
|
-
|
|
290
|
-
|
|
571
|
+
nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
|
|
572
|
+
list: _changeAlias(v.list || [], val, type)
|
|
573
|
+
});
|
|
574
|
+
} else if (v.type === _types.AtomsTypeEnum.CASE_WHEN) {
|
|
575
|
+
nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
|
|
576
|
+
caseAtoms: _changeAlias(v.caseAtoms || [], val, type),
|
|
577
|
+
whenClauses: (v.whenClauses || []).map(function (clause) {
|
|
578
|
+
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, clause), {}, {
|
|
579
|
+
whenAtoms: _changeAlias(clause.whenAtoms || [], val, type),
|
|
580
|
+
thenAtoms: _changeAlias(clause.thenAtoms || [], val, type)
|
|
581
|
+
});
|
|
582
|
+
}),
|
|
583
|
+
elseAtoms: _changeAlias(v.elseAtoms || [], val, type)
|
|
584
|
+
});
|
|
585
|
+
} else if (v.type === _types.AtomsTypeEnum.AND_OR) {
|
|
586
|
+
var hasBinarySides = Array.isArray(v.leftAtoms) || Array.isArray(v.rightAtoms);
|
|
587
|
+
nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), hasBinarySides ? {
|
|
588
|
+
atoms: undefined,
|
|
589
|
+
leftAtoms: _changeAlias(v.leftAtoms || [], val, type),
|
|
590
|
+
rightAtoms: _changeAlias(v.rightAtoms || [], val, type)
|
|
591
|
+
} : {
|
|
592
|
+
atoms: _changeAlias(v.atoms || [], val, type)
|
|
593
|
+
});
|
|
291
594
|
} else {
|
|
292
|
-
|
|
595
|
+
nextItem = v;
|
|
293
596
|
}
|
|
597
|
+
return syncAtomQuotes(nextItem);
|
|
294
598
|
});
|
|
295
599
|
};
|
|
296
600
|
function isValidSQLAlias(str) {
|
|
@@ -353,27 +657,27 @@ var changeTableAlias = exports.changeTableAlias = function changeTableAlias(list
|
|
|
353
657
|
}
|
|
354
658
|
if (v.type === _enum.TypeEnum.summarize) {
|
|
355
659
|
v.group.map(function (group) {
|
|
356
|
-
|
|
660
|
+
var groupAtoms = group.atoms;
|
|
661
|
+
if (groupAtoms && groupAtoms.length > 0) {
|
|
662
|
+
group.atoms = _changeAlias(groupAtoms, {
|
|
663
|
+
uuid: tableUuid,
|
|
664
|
+
alias: alias
|
|
665
|
+
}, AliasType.table);
|
|
666
|
+
group.sql = (0, _helper.summarizeToSql)(v.group, group).sql;
|
|
667
|
+
} else if (group.tableUuid === tableUuid) {
|
|
357
668
|
group.alias = alias;
|
|
358
|
-
var groupAtoms = group.atoms;
|
|
359
|
-
if (groupAtoms && groupAtoms.length > 0) {
|
|
360
|
-
group.atoms = _changeAlias(groupAtoms, {
|
|
361
|
-
uuid: tableUuid,
|
|
362
|
-
alias: alias
|
|
363
|
-
}, AliasType.table);
|
|
364
|
-
}
|
|
365
669
|
group.sql = (0, _helper.summarizeToSql)(v.group, group).sql;
|
|
366
670
|
}
|
|
367
671
|
});
|
|
368
672
|
v.by.map(function (by) {
|
|
369
|
-
if (by.
|
|
673
|
+
if (by.atoms && by.atoms.length > 0) {
|
|
674
|
+
by.atoms = _changeAlias(by.atoms, {
|
|
675
|
+
uuid: tableUuid,
|
|
676
|
+
alias: alias
|
|
677
|
+
}, AliasType.table);
|
|
678
|
+
by.sql = (0, _helper.summarizeByToSql)(by);
|
|
679
|
+
} else if (by.tableUuid === tableUuid) {
|
|
370
680
|
by.alias = alias;
|
|
371
|
-
if (by.atoms && by.atoms.length > 0) {
|
|
372
|
-
by.atoms = _changeAlias(by.atoms, {
|
|
373
|
-
uuid: tableUuid,
|
|
374
|
-
alias: alias
|
|
375
|
-
}, AliasType.table);
|
|
376
|
-
}
|
|
377
681
|
by.sql = (0, _helper.summarizeByToSql)(by);
|
|
378
682
|
}
|
|
379
683
|
});
|
|
@@ -390,74 +694,76 @@ var changeTableAlias = exports.changeTableAlias = function changeTableAlias(list
|
|
|
390
694
|
})) || [];
|
|
391
695
|
};
|
|
392
696
|
var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list, curObj) {
|
|
697
|
+
var _firstData$table, _firstData$table2, _firstData$table3, _firstData$table4;
|
|
393
698
|
var _cloneDeep2 = (0, _cloneDeep3["default"])(curObj),
|
|
394
699
|
uuid = _cloneDeep2.fieldUuid,
|
|
395
|
-
alias = _cloneDeep2.fieldAlias
|
|
700
|
+
alias = _cloneDeep2.fieldAlias,
|
|
701
|
+
fieldId = _cloneDeep2.id,
|
|
702
|
+
fieldName = _cloneDeep2.name,
|
|
703
|
+
datasourceId = _cloneDeep2.datasourceId,
|
|
704
|
+
table = _cloneDeep2.table,
|
|
705
|
+
tableId = _cloneDeep2.tableId,
|
|
706
|
+
tableUuid = _cloneDeep2.tableUuid;
|
|
707
|
+
var firstData = list.find(function (item) {
|
|
708
|
+
return item.type === _enum.TypeEnum.data;
|
|
709
|
+
});
|
|
710
|
+
var aliasTarget = {
|
|
711
|
+
uuid: uuid,
|
|
712
|
+
alias: alias,
|
|
713
|
+
fieldId: curObj.fieldId || fieldId,
|
|
714
|
+
fieldName: fieldName,
|
|
715
|
+
tableId: tableId || (firstData === null || firstData === void 0 || (_firstData$table = firstData.table) === null || _firstData$table === void 0 ? void 0 : _firstData$table.id),
|
|
716
|
+
tableName: table || (firstData === null || firstData === void 0 || (_firstData$table2 = firstData.table) === null || _firstData$table2 === void 0 ? void 0 : _firstData$table2.name),
|
|
717
|
+
tableUuid: tableUuid || (firstData === null || firstData === void 0 || (_firstData$table3 = firstData.table) === null || _firstData$table3 === void 0 ? void 0 : _firstData$table3.tableUuid),
|
|
718
|
+
datasourceId: datasourceId || (firstData === null || firstData === void 0 || (_firstData$table4 = firstData.table) === null || _firstData$table4 === void 0 ? void 0 : _firstData$table4.datasourceId)
|
|
719
|
+
};
|
|
396
720
|
var newList = (0, _cloneDeep3["default"])(list);
|
|
397
721
|
return (newList === null || newList === void 0 ? void 0 : newList.map(function (v) {
|
|
398
722
|
if (v.type === _enum.TypeEnum.data) {}
|
|
399
723
|
if (v.type === _enum.TypeEnum.joinData) {
|
|
400
724
|
if (v.expressions && v.expressions.length > 0) {
|
|
401
|
-
v.expressions = _changeAlias(v.expressions,
|
|
402
|
-
uuid: uuid,
|
|
403
|
-
alias: alias
|
|
404
|
-
}, AliasType.field);
|
|
725
|
+
v.expressions = _changeAlias(v.expressions, aliasTarget, AliasType.field);
|
|
405
726
|
}
|
|
406
727
|
}
|
|
407
728
|
if (v.type === _enum.TypeEnum.customColumn) {
|
|
408
729
|
v.customColumn.map(function (item) {
|
|
409
730
|
if (item.formulaList && item.formulaList.length > 0) {
|
|
410
|
-
item.formulaList = _changeAlias(item.formulaList,
|
|
411
|
-
uuid: uuid,
|
|
412
|
-
alias: alias
|
|
413
|
-
}, AliasType.field);
|
|
731
|
+
item.formulaList = _changeAlias(item.formulaList, aliasTarget, AliasType.field);
|
|
414
732
|
}
|
|
415
733
|
});
|
|
416
734
|
}
|
|
417
735
|
if (v.type === _enum.TypeEnum.rowLimit) {}
|
|
418
736
|
if (v.type === _enum.TypeEnum.summarize) {
|
|
419
737
|
v.group.map(function (group) {
|
|
420
|
-
|
|
738
|
+
var groupAtoms = group.atoms;
|
|
739
|
+
if (groupAtoms && groupAtoms.length > 0) {
|
|
740
|
+
group.atoms = _changeAlias(groupAtoms, aliasTarget, AliasType.field);
|
|
741
|
+
group.sql = (0, _helper.summarizeToSql)(v.group, group).sql;
|
|
742
|
+
} else if (group.fieldUuid === uuid) {
|
|
421
743
|
group.fieldAlias = alias;
|
|
422
|
-
var groupAtoms = group.atoms;
|
|
423
|
-
if (groupAtoms && groupAtoms.length > 0) {
|
|
424
|
-
group.atoms = _changeAlias(groupAtoms, {
|
|
425
|
-
uuid: uuid,
|
|
426
|
-
alias: alias
|
|
427
|
-
}, AliasType.field);
|
|
428
|
-
}
|
|
429
744
|
group.sql = (0, _helper.summarizeToSql)(v.group, group).sql;
|
|
430
745
|
}
|
|
431
746
|
});
|
|
432
747
|
v.by.map(function (by) {
|
|
433
|
-
if (by.
|
|
748
|
+
if (by.atoms && by.atoms.length > 0) {
|
|
749
|
+
by.atoms = _changeAlias(by.atoms, aliasTarget, AliasType.field);
|
|
750
|
+
by.sql = (0, _helper.summarizeByToSql)(by);
|
|
751
|
+
} else if (by.fieldUuid === uuid) {
|
|
434
752
|
by.fieldAlias = alias;
|
|
435
|
-
if (by.atoms && by.atoms.length > 0) {
|
|
436
|
-
by.atoms = _changeAlias(by.atoms, {
|
|
437
|
-
uuid: uuid,
|
|
438
|
-
alias: alias
|
|
439
|
-
}, AliasType.field);
|
|
440
|
-
}
|
|
441
753
|
by.sql = (0, _helper.summarizeByToSql)(by);
|
|
442
754
|
}
|
|
443
755
|
});
|
|
444
756
|
}
|
|
445
757
|
if (v.type === _enum.TypeEnum.filter) {
|
|
446
758
|
if (v.filter && v.filter.length > 0) {
|
|
447
|
-
v.filter = _changeAlias(v.filter,
|
|
448
|
-
uuid: uuid,
|
|
449
|
-
alias: alias
|
|
450
|
-
}, AliasType.field);
|
|
759
|
+
v.filter = _changeAlias(v.filter, aliasTarget, AliasType.field);
|
|
451
760
|
}
|
|
452
761
|
}
|
|
453
762
|
if (v.type === _enum.TypeEnum.sort) {
|
|
454
763
|
if (v.sort && v.sort.length > 0) {
|
|
455
764
|
v.sort = v.sort.map(function (sort) {
|
|
456
765
|
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, sort), {}, {
|
|
457
|
-
expression: _changeAlias(sort.expression,
|
|
458
|
-
uuid: uuid,
|
|
459
|
-
alias: alias
|
|
460
|
-
}, AliasType.field)
|
|
766
|
+
expression: _changeAlias(sort.expression, aliasTarget, AliasType.field)
|
|
461
767
|
});
|
|
462
768
|
});
|
|
463
769
|
}
|
|
@@ -515,7 +821,8 @@ var stripSummarizeTableFields = function stripSummarizeTableFields(record) {
|
|
|
515
821
|
tableUuid: '',
|
|
516
822
|
alias: '',
|
|
517
823
|
datasourceId: '',
|
|
518
|
-
datasourceName: ''
|
|
824
|
+
datasourceName: '',
|
|
825
|
+
datasourceType: ''
|
|
519
826
|
});
|
|
520
827
|
};
|
|
521
828
|
var createSummarizeFieldAtom = function createSummarizeFieldAtom(record) {
|
|
@@ -533,6 +840,7 @@ var createSummarizeFieldAtom = function createSummarizeFieldAtom(record) {
|
|
|
533
840
|
tableUuid: record.tableUuid || '',
|
|
534
841
|
datasourceName: record.datasourceName || '',
|
|
535
842
|
datasourceId: record.datasourceId || '',
|
|
843
|
+
datasourceType: record.datasourceType || '',
|
|
536
844
|
type: _types.AtomsTypeEnum.FIELD
|
|
537
845
|
};
|
|
538
846
|
};
|
|
@@ -793,6 +1101,7 @@ function setNewField(field, data) {
|
|
|
793
1101
|
}
|
|
794
1102
|
field.datasourceId = table.datasourceId || '';
|
|
795
1103
|
field.datasourceName = table.datasourceName || '';
|
|
1104
|
+
field.datasourceType = table.datasourceType || '';
|
|
796
1105
|
field.tableId = table.id || '';
|
|
797
1106
|
field.tableName = table.name || '';
|
|
798
1107
|
field.tableAlias = table.alias || '';
|
|
@@ -832,6 +1141,15 @@ var _changeCopyField = exports.changeCopyField = function changeCopyField(items,
|
|
|
832
1141
|
} else if (v.type === _types.AtomsTypeEnum.FORMULA) {
|
|
833
1142
|
v.args = _changeCopyField(v.args, data);
|
|
834
1143
|
return v;
|
|
1144
|
+
} else if (v.type === _types.AtomsTypeEnum.AND_OR) {
|
|
1145
|
+
var hasBinarySides = Array.isArray(v.leftAtoms) || Array.isArray(v.rightAtoms);
|
|
1146
|
+
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), hasBinarySides ? {
|
|
1147
|
+
atoms: undefined,
|
|
1148
|
+
leftAtoms: _changeCopyField(v.leftAtoms || [], data),
|
|
1149
|
+
rightAtoms: _changeCopyField(v.rightAtoms || [], data)
|
|
1150
|
+
} : {
|
|
1151
|
+
atoms: _changeCopyField(v.atoms || [], data)
|
|
1152
|
+
});
|
|
835
1153
|
} else if (v.type === _types.AtomsTypeEnum.COLLECTION) {
|
|
836
1154
|
v.list = _changeCopyField(v.list, data);
|
|
837
1155
|
return v;
|
|
@@ -11,6 +11,7 @@ import { ChevronODown } from '@gingkoo/pandora-icons';
|
|
|
11
11
|
import moment from 'dayjs';
|
|
12
12
|
import { __, isEn } from '../../../locale';
|
|
13
13
|
import { ColumnsPopupThemeEnum, SQL_COLUMN_TYPE, SQL_GROUP_TYPE } from '../../../store/enum';
|
|
14
|
+
import { SummarizeAlias } from '../../../store/helper';
|
|
14
15
|
import { AtomsTypeEnum } from '../../../store/types';
|
|
15
16
|
import { NUMBER_GROUP, DATE_GROUP } from '../const';
|
|
16
17
|
import SelectList from '../select-list';
|
|
@@ -109,6 +110,13 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
109
110
|
return popupContainer || document.body;
|
|
110
111
|
};
|
|
111
112
|
var table2Selected = Boolean(rhsVal && (rhsVal === null || rhsVal === void 0 ? void 0 : rhsVal.length) > 0);
|
|
113
|
+
function getFieldDisplayName(field) {
|
|
114
|
+
if (!field) return '';
|
|
115
|
+
if (field.tableId === SummarizeAlias) {
|
|
116
|
+
return field.fieldAlias || field.fieldName || '';
|
|
117
|
+
}
|
|
118
|
+
return field.fieldName || field.fieldAlias || '';
|
|
119
|
+
}
|
|
112
120
|
var disabled = useMemo(function () {
|
|
113
121
|
if (!condition) return true;
|
|
114
122
|
if (~['无需结果'].indexOf(condition)) {
|
|
@@ -127,7 +135,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
127
135
|
});
|
|
128
136
|
}
|
|
129
137
|
if (v.type === AtomsTypeEnum.FIELD) {
|
|
130
|
-
return v
|
|
138
|
+
return getFieldDisplayName(v);
|
|
131
139
|
}
|
|
132
140
|
});
|
|
133
141
|
return !isOk;
|
|
@@ -139,7 +147,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
139
147
|
var getAtomsQuotesName = function getAtomsQuotesName(items) {
|
|
140
148
|
var names = items.map(function (v) {
|
|
141
149
|
if ((v === null || v === void 0 ? void 0 : v.type) === AtomsTypeEnum.FIELD) {
|
|
142
|
-
return v
|
|
150
|
+
return getFieldDisplayName(v);
|
|
143
151
|
} else {
|
|
144
152
|
return v.val;
|
|
145
153
|
}
|
|
@@ -628,6 +636,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
628
636
|
tableUuid: '',
|
|
629
637
|
datasourceName: '',
|
|
630
638
|
datasourceId: '',
|
|
639
|
+
datasourceType: '',
|
|
631
640
|
type: AtomsTypeEnum.FIELD
|
|
632
641
|
}]);
|
|
633
642
|
}
|
|
@@ -686,7 +695,7 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
686
695
|
curColumn.lhs.filter(function (v) {
|
|
687
696
|
return v.type === AtomsTypeEnum.FIELD;
|
|
688
697
|
}).map(function (v) {
|
|
689
|
-
names.push(v
|
|
698
|
+
names.push(getFieldDisplayName(v));
|
|
690
699
|
});
|
|
691
700
|
params[0] = names.join(' || ');
|
|
692
701
|
}
|
|
@@ -823,13 +832,14 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
|
|
|
823
832
|
className: 'content',
|
|
824
833
|
children: [rhsVal === null || rhsVal === void 0 ? void 0 : rhsVal.map(function (v, i) {
|
|
825
834
|
if (v.type === AtomsTypeEnum.FIELD) {
|
|
835
|
+
var displayName = getFieldDisplayName(v);
|
|
826
836
|
return _jsx("div", {
|
|
827
837
|
className: cx("Sqb-TableName purple-name", {
|
|
828
|
-
notSelected: !
|
|
838
|
+
notSelected: !displayName
|
|
829
839
|
}),
|
|
830
840
|
"v-index": i,
|
|
831
841
|
onClick: selectTable,
|
|
832
|
-
children:
|
|
842
|
+
children: displayName || __('SqlQueryBuilder.pickTable')
|
|
833
843
|
}, i);
|
|
834
844
|
}
|
|
835
845
|
if (v.type === AtomsTypeEnum.CONSTANT) {
|