@gingkoo/pandora-metabase 1.0.126 → 1.0.128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/dialog/expression/index.js +15 -5
- package/lib/cjs/components/dialog/expression/index.less +31 -16
- package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.d.ts +14 -5
- package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.js +236 -62
- package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +3 -2
- package/lib/cjs/components/dialog/formula-list/LogicGroup.js +19 -11
- package/lib/cjs/components/dialog/formula-list/index.d.ts +1 -0
- package/lib/cjs/components/dialog/formula-list/index.js +658 -174
- package/lib/cjs/components/dialog/formula-list/index.less +1438 -145
- package/lib/cjs/components/dialog/formula-list/utils.js +50 -19
- package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +1 -0
- package/lib/cjs/components/dialog/select-column-multiple/index.js +42 -22
- package/lib/cjs/components/dialog/select-summarize/index.js +10 -2
- package/lib/cjs/components/dialog/select-table/index.d.ts +2 -1
- package/lib/cjs/components/dialog/select-table/index.js +197 -52
- package/lib/cjs/components/dialog/select-table/index.less +45 -2
- package/lib/cjs/components/metabase/index.less +156 -39
- package/lib/cjs/components/modules/custom-column.js +7 -3
- package/lib/cjs/components/modules/filter.js +6 -3
- package/lib/cjs/components/modules/join-data.js +67 -16
- package/lib/cjs/components/modules/permission-table.js +8 -4
- package/lib/cjs/components/modules/sort.js +2 -1
- package/lib/cjs/components/modules/summarize/group-by.js +20 -6
- package/lib/cjs/components/modules/summarize/select-index.js +9 -5
- package/lib/cjs/components/modules/table-data.js +26 -5
- package/lib/cjs/hooks/use-state.js +143 -17
- package/lib/cjs/index.js +7 -1
- package/lib/cjs/store/types.d.ts +14 -7
- package/lib/cjs/types.d.ts +8 -0
- package/lib/cjs/utils/transformSql.js +44 -21
- package/lib/cjs/utils.d.ts +2 -2
- package/lib/cjs/utils.js +349 -58
- package/lib/es/components/dialog/expression/index.js +15 -5
- package/lib/es/components/dialog/expression/index.less +31 -16
- package/lib/es/components/dialog/formula-list/CaseWhenGroup.d.ts +14 -5
- package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +238 -64
- package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +3 -2
- package/lib/es/components/dialog/formula-list/LogicGroup.js +19 -11
- package/lib/es/components/dialog/formula-list/index.d.ts +1 -0
- package/lib/es/components/dialog/formula-list/index.js +660 -176
- package/lib/es/components/dialog/formula-list/index.less +1438 -145
- package/lib/es/components/dialog/formula-list/utils.js +50 -19
- package/lib/es/components/dialog/select-column-multiple/index.d.ts +1 -0
- package/lib/es/components/dialog/select-column-multiple/index.js +42 -22
- package/lib/es/components/dialog/select-summarize/index.js +10 -2
- package/lib/es/components/dialog/select-table/index.d.ts +2 -1
- package/lib/es/components/dialog/select-table/index.js +197 -52
- package/lib/es/components/dialog/select-table/index.less +45 -2
- package/lib/es/components/metabase/index.less +156 -39
- package/lib/es/components/modules/custom-column.js +7 -3
- package/lib/es/components/modules/filter.js +6 -3
- package/lib/es/components/modules/join-data.js +67 -16
- package/lib/es/components/modules/permission-table.js +8 -4
- package/lib/es/components/modules/sort.js +2 -1
- package/lib/es/components/modules/summarize/group-by.js +21 -7
- package/lib/es/components/modules/summarize/select-index.js +10 -6
- package/lib/es/components/modules/table-data.js +26 -5
- package/lib/es/hooks/use-state.js +143 -17
- package/lib/es/index.js +7 -1
- package/lib/es/store/types.d.ts +14 -7
- package/lib/es/types.d.ts +8 -0
- package/lib/es/utils/transformSql.js +45 -22
- package/lib/es/utils.d.ts +2 -2
- package/lib/es/utils.js +350 -59
- package/package.json +1 -1
package/lib/cjs/utils.js
CHANGED
|
@@ -144,7 +144,7 @@ var getSubColumns = exports.getSubColumns = function getSubColumns(metaList) {
|
|
|
144
144
|
_data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
|
|
145
145
|
var _v$sql;
|
|
146
146
|
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
|
|
147
|
-
name: v.name || v.quotes,
|
|
147
|
+
name: v.fieldAlias || v.name || v.quotes,
|
|
148
148
|
name_zh: v.name_zh || v.quotes,
|
|
149
149
|
id: v.id || v.fieldId,
|
|
150
150
|
realName: ((_v$sql = v.sql) === null || _v$sql === void 0 || (_v$sql = _v$sql.split(' AS ')) === null || _v$sql === void 0 ? void 0 : _v$sql[1]) || '',
|
|
@@ -158,7 +158,7 @@ var getSubColumns = exports.getSubColumns = function getSubColumns(metaList) {
|
|
|
158
158
|
_data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
|
|
159
159
|
var _v$sql2;
|
|
160
160
|
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
|
|
161
|
-
name: v.name || v.quotes,
|
|
161
|
+
name: v.fieldAlias || v.name || v.quotes,
|
|
162
162
|
name_zh: v.name_zh || v.quotes,
|
|
163
163
|
id: v.id || v.fieldId,
|
|
164
164
|
realName: ((_v$sql2 = v.sql) === null || _v$sql2 === void 0 || (_v$sql2 = _v$sql2.split(' AS ')) === null || _v$sql2 === void 0 ? void 0 : _v$sql2[1]) || '',
|
|
@@ -253,71 +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 || '',
|
|
281
549
|
fieldAlias: val.alias
|
|
282
550
|
});
|
|
283
551
|
}
|
|
284
|
-
return v;
|
|
285
552
|
} else if (v.type === _types.AtomsTypeEnum.SUB_QUERY) {
|
|
553
|
+
nextItem = (0, _objectSpread6["default"])({}, v);
|
|
286
554
|
if (type === AliasType.table) {
|
|
287
|
-
|
|
288
|
-
tableUuid: val.uuid,
|
|
555
|
+
nextItem.subQuery = changeTableAlias(v.subQuery || [], {
|
|
556
|
+
tableUuid: val.uuid || '',
|
|
289
557
|
alias: val.alias
|
|
290
558
|
});
|
|
291
559
|
}
|
|
292
560
|
if (type === AliasType.field) {
|
|
293
|
-
|
|
294
|
-
fieldUuid: val.uuid,
|
|
561
|
+
nextItem.subQuery = changeFieldAlias(v.subQuery || [], {
|
|
562
|
+
fieldUuid: val.uuid || '',
|
|
295
563
|
fieldAlias: val.alias
|
|
296
564
|
});
|
|
297
565
|
}
|
|
298
|
-
return v;
|
|
299
566
|
} else if (v.type === _types.AtomsTypeEnum.FORMULA) {
|
|
300
|
-
|
|
301
|
-
|
|
567
|
+
nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
|
|
568
|
+
args: _changeAlias(v.args || [], val, type)
|
|
569
|
+
});
|
|
302
570
|
} else if (v.type === _types.AtomsTypeEnum.COLLECTION) {
|
|
303
|
-
|
|
304
|
-
|
|
571
|
+
nextItem = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, v), {}, {
|
|
572
|
+
list: _changeAlias(v.list || [], val, type)
|
|
573
|
+
});
|
|
305
574
|
} else if (v.type === _types.AtomsTypeEnum.CASE_WHEN) {
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
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)
|
|
312
584
|
});
|
|
313
|
-
v.elseValue = _changeAlias(v.elseValue || [], val, type);
|
|
314
|
-
return v;
|
|
315
585
|
} else if (v.type === _types.AtomsTypeEnum.AND_OR) {
|
|
316
|
-
|
|
317
|
-
|
|
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
|
+
});
|
|
318
594
|
} else {
|
|
319
|
-
|
|
595
|
+
nextItem = v;
|
|
320
596
|
}
|
|
597
|
+
return syncAtomQuotes(nextItem);
|
|
321
598
|
});
|
|
322
599
|
};
|
|
323
600
|
function isValidSQLAlias(str) {
|
|
@@ -417,27 +694,41 @@ var changeTableAlias = exports.changeTableAlias = function changeTableAlias(list
|
|
|
417
694
|
})) || [];
|
|
418
695
|
};
|
|
419
696
|
var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list, curObj) {
|
|
697
|
+
var _firstData$table, _firstData$table2, _firstData$table3, _firstData$table4;
|
|
420
698
|
var _cloneDeep2 = (0, _cloneDeep3["default"])(curObj),
|
|
421
699
|
uuid = _cloneDeep2.fieldUuid,
|
|
422
|
-
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
|
+
};
|
|
423
720
|
var newList = (0, _cloneDeep3["default"])(list);
|
|
424
721
|
return (newList === null || newList === void 0 ? void 0 : newList.map(function (v) {
|
|
425
722
|
if (v.type === _enum.TypeEnum.data) {}
|
|
426
723
|
if (v.type === _enum.TypeEnum.joinData) {
|
|
427
724
|
if (v.expressions && v.expressions.length > 0) {
|
|
428
|
-
v.expressions = _changeAlias(v.expressions,
|
|
429
|
-
uuid: uuid,
|
|
430
|
-
alias: alias
|
|
431
|
-
}, AliasType.field);
|
|
725
|
+
v.expressions = _changeAlias(v.expressions, aliasTarget, AliasType.field);
|
|
432
726
|
}
|
|
433
727
|
}
|
|
434
728
|
if (v.type === _enum.TypeEnum.customColumn) {
|
|
435
729
|
v.customColumn.map(function (item) {
|
|
436
730
|
if (item.formulaList && item.formulaList.length > 0) {
|
|
437
|
-
item.formulaList = _changeAlias(item.formulaList,
|
|
438
|
-
uuid: uuid,
|
|
439
|
-
alias: alias
|
|
440
|
-
}, AliasType.field);
|
|
731
|
+
item.formulaList = _changeAlias(item.formulaList, aliasTarget, AliasType.field);
|
|
441
732
|
}
|
|
442
733
|
});
|
|
443
734
|
}
|
|
@@ -446,10 +737,7 @@ var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list
|
|
|
446
737
|
v.group.map(function (group) {
|
|
447
738
|
var groupAtoms = group.atoms;
|
|
448
739
|
if (groupAtoms && groupAtoms.length > 0) {
|
|
449
|
-
group.atoms = _changeAlias(groupAtoms,
|
|
450
|
-
uuid: uuid,
|
|
451
|
-
alias: alias
|
|
452
|
-
}, AliasType.field);
|
|
740
|
+
group.atoms = _changeAlias(groupAtoms, aliasTarget, AliasType.field);
|
|
453
741
|
group.sql = (0, _helper.summarizeToSql)(v.group, group).sql;
|
|
454
742
|
} else if (group.fieldUuid === uuid) {
|
|
455
743
|
group.fieldAlias = alias;
|
|
@@ -458,10 +746,7 @@ var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list
|
|
|
458
746
|
});
|
|
459
747
|
v.by.map(function (by) {
|
|
460
748
|
if (by.atoms && by.atoms.length > 0) {
|
|
461
|
-
by.atoms = _changeAlias(by.atoms,
|
|
462
|
-
uuid: uuid,
|
|
463
|
-
alias: alias
|
|
464
|
-
}, AliasType.field);
|
|
749
|
+
by.atoms = _changeAlias(by.atoms, aliasTarget, AliasType.field);
|
|
465
750
|
by.sql = (0, _helper.summarizeByToSql)(by);
|
|
466
751
|
} else if (by.fieldUuid === uuid) {
|
|
467
752
|
by.fieldAlias = alias;
|
|
@@ -471,20 +756,14 @@ var changeFieldAlias = exports.changeFieldAlias = function changeFieldAlias(list
|
|
|
471
756
|
}
|
|
472
757
|
if (v.type === _enum.TypeEnum.filter) {
|
|
473
758
|
if (v.filter && v.filter.length > 0) {
|
|
474
|
-
v.filter = _changeAlias(v.filter,
|
|
475
|
-
uuid: uuid,
|
|
476
|
-
alias: alias
|
|
477
|
-
}, AliasType.field);
|
|
759
|
+
v.filter = _changeAlias(v.filter, aliasTarget, AliasType.field);
|
|
478
760
|
}
|
|
479
761
|
}
|
|
480
762
|
if (v.type === _enum.TypeEnum.sort) {
|
|
481
763
|
if (v.sort && v.sort.length > 0) {
|
|
482
764
|
v.sort = v.sort.map(function (sort) {
|
|
483
765
|
return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, sort), {}, {
|
|
484
|
-
expression: _changeAlias(sort.expression,
|
|
485
|
-
uuid: uuid,
|
|
486
|
-
alias: alias
|
|
487
|
-
}, AliasType.field)
|
|
766
|
+
expression: _changeAlias(sort.expression, aliasTarget, AliasType.field)
|
|
488
767
|
});
|
|
489
768
|
});
|
|
490
769
|
}
|
|
@@ -542,7 +821,8 @@ var stripSummarizeTableFields = function stripSummarizeTableFields(record) {
|
|
|
542
821
|
tableUuid: '',
|
|
543
822
|
alias: '',
|
|
544
823
|
datasourceId: '',
|
|
545
|
-
datasourceName: ''
|
|
824
|
+
datasourceName: '',
|
|
825
|
+
datasourceType: ''
|
|
546
826
|
});
|
|
547
827
|
};
|
|
548
828
|
var createSummarizeFieldAtom = function createSummarizeFieldAtom(record) {
|
|
@@ -560,6 +840,7 @@ var createSummarizeFieldAtom = function createSummarizeFieldAtom(record) {
|
|
|
560
840
|
tableUuid: record.tableUuid || '',
|
|
561
841
|
datasourceName: record.datasourceName || '',
|
|
562
842
|
datasourceId: record.datasourceId || '',
|
|
843
|
+
datasourceType: record.datasourceType || '',
|
|
563
844
|
type: _types.AtomsTypeEnum.FIELD
|
|
564
845
|
};
|
|
565
846
|
};
|
|
@@ -820,6 +1101,7 @@ function setNewField(field, data) {
|
|
|
820
1101
|
}
|
|
821
1102
|
field.datasourceId = table.datasourceId || '';
|
|
822
1103
|
field.datasourceName = table.datasourceName || '';
|
|
1104
|
+
field.datasourceType = table.datasourceType || '';
|
|
823
1105
|
field.tableId = table.id || '';
|
|
824
1106
|
field.tableName = table.name || '';
|
|
825
1107
|
field.tableAlias = table.alias || '';
|
|
@@ -859,6 +1141,15 @@ var _changeCopyField = exports.changeCopyField = function changeCopyField(items,
|
|
|
859
1141
|
} else if (v.type === _types.AtomsTypeEnum.FORMULA) {
|
|
860
1142
|
v.args = _changeCopyField(v.args, data);
|
|
861
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
|
+
});
|
|
862
1153
|
} else if (v.type === _types.AtomsTypeEnum.COLLECTION) {
|
|
863
1154
|
v.list = _changeCopyField(v.list, data);
|
|
864
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) {
|