@gingkoo/pandora-metabase 1.0.136 → 1.0.137-alpha.2
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/utils.js +6 -0
- package/lib/cjs/components/dialog/select-column/index.js +13 -1
- package/lib/cjs/components/dialog/select-column-multiple/index.js +62 -17
- package/lib/cjs/components/modules/components/header.js +2 -0
- package/lib/cjs/components/modules/filter.js +4 -2
- package/lib/cjs/components/modules/join-data.js +73 -81
- package/lib/cjs/components/modules/table-data.js +11 -17
- package/lib/cjs/utils.d.ts +3 -1
- package/lib/cjs/utils.js +305 -24
- package/lib/es/components/dialog/formula-list/utils.js +6 -0
- package/lib/es/components/dialog/select-column/index.js +14 -2
- package/lib/es/components/dialog/select-column-multiple/index.js +63 -18
- package/lib/es/components/modules/components/header.js +2 -0
- package/lib/es/components/modules/filter.js +4 -2
- package/lib/es/components/modules/join-data.js +75 -83
- package/lib/es/components/modules/table-data.js +13 -19
- package/lib/es/utils.d.ts +3 -1
- package/lib/es/utils.js +304 -24
- package/package.json +1 -1
package/lib/es/utils.js
CHANGED
|
@@ -8,7 +8,7 @@ var _excluded = ["list"];
|
|
|
8
8
|
import { __, isEn } from './locale';
|
|
9
9
|
import { TypeEnum, SQL_COLUMN_TYPE } from './store/enum';
|
|
10
10
|
import { AtomsTypeEnum } from './store/types';
|
|
11
|
-
import { summarizeByToSql, summarizeToSql } from './store/helper';
|
|
11
|
+
import { SummarizeAlias, summarizeByToSql, summarizeToSql } from './store/helper';
|
|
12
12
|
import { transformSql } from './utils/transformSql';
|
|
13
13
|
import { isSameColumnByIdFirst, isSameTableByIdFirst, uuidv4 } from './utils/helper';
|
|
14
14
|
import cloneDeep from 'lodash/cloneDeep';
|
|
@@ -36,19 +36,42 @@ export var getMetaTabels = function getMetaTabels(data) {
|
|
|
36
36
|
});
|
|
37
37
|
return obj;
|
|
38
38
|
};
|
|
39
|
+
var SUB_QUERY_OUTPUT_COLUMN_KEY = '__subQueryOutputColumn';
|
|
40
|
+
var isSubQueryOutputColumn = function isSubQueryOutputColumn(column) {
|
|
41
|
+
return Boolean((column === null || column === void 0 ? void 0 : column.summarizeType) && (column === null || column === void 0 ? void 0 : column[SUB_QUERY_OUTPUT_COLUMN_KEY]));
|
|
42
|
+
};
|
|
39
43
|
export var getColumnsTables = function getColumnsTables(data) {
|
|
40
44
|
var obj = {};
|
|
41
45
|
data.map(function (v) {
|
|
42
46
|
var _v$datasourceId = v.datasourceId,
|
|
43
47
|
datasourceId = _v$datasourceId === void 0 ? 'source' : _v$datasourceId,
|
|
48
|
+
_v$datasourceName = v.datasourceName,
|
|
49
|
+
datasourceName = _v$datasourceName === void 0 ? '' : _v$datasourceName,
|
|
44
50
|
_v$id = v.id,
|
|
45
51
|
id = _v$id === void 0 ? '' : _v$id,
|
|
46
52
|
_v$alias = v.alias,
|
|
47
53
|
alias = _v$alias === void 0 ? '' : _v$alias,
|
|
54
|
+
_v$name = v.name,
|
|
55
|
+
name = _v$name === void 0 ? '' : _v$name,
|
|
56
|
+
_v$name_zh = v.name_zh,
|
|
57
|
+
name_zh = _v$name_zh === void 0 ? '' : _v$name_zh,
|
|
58
|
+
_v$tableUuid = v.tableUuid,
|
|
59
|
+
tableUuid = _v$tableUuid === void 0 ? '' : _v$tableUuid,
|
|
48
60
|
_v$columns = v.columns,
|
|
49
61
|
columns = _v$columns === void 0 ? [] : _v$columns;
|
|
50
62
|
var _datasourceId = datasourceId || 'source';
|
|
51
|
-
obj[_datasourceId] = _objectSpread(_objectSpread({}, obj[_datasourceId]), {}, _defineProperty({}, id + alias, columns)
|
|
63
|
+
obj[_datasourceId] = _objectSpread(_objectSpread({}, obj[_datasourceId]), {}, _defineProperty({}, id + alias, columns.map(function (column) {
|
|
64
|
+
if (!isSubQueryOutputColumn(column)) return column;
|
|
65
|
+
return _objectSpread(_objectSpread({}, column), {}, {
|
|
66
|
+
datasourceId: _datasourceId,
|
|
67
|
+
datasourceName: datasourceName || column.datasourceName || '',
|
|
68
|
+
tableId: id || column.tableId || '',
|
|
69
|
+
tableName: name || column.tableName || column.table || '',
|
|
70
|
+
tableNameZh: name_zh || column.tableNameZh || '',
|
|
71
|
+
tableAlias: alias || column.tableAlias || '',
|
|
72
|
+
tableUuid: tableUuid || column.tableUuid || ''
|
|
73
|
+
});
|
|
74
|
+
})));
|
|
52
75
|
});
|
|
53
76
|
return obj;
|
|
54
77
|
};
|
|
@@ -103,6 +126,240 @@ export var getHelper = function getHelper(list, item) {
|
|
|
103
126
|
nextItem: nextItem
|
|
104
127
|
};
|
|
105
128
|
};
|
|
129
|
+
var getSummarizeOutputName = function getSummarizeOutputName(record) {
|
|
130
|
+
return record.fieldAlias || record.name || record.quotes || '';
|
|
131
|
+
};
|
|
132
|
+
var normalizeSubQueryColumn = function normalizeSubQueryColumn(column) {
|
|
133
|
+
if (!(column !== null && column !== void 0 && column.summarizeType)) return column;
|
|
134
|
+
var outputName = getSummarizeOutputName(column);
|
|
135
|
+
return _objectSpread(_objectSpread({}, column), {}, {
|
|
136
|
+
name: outputName,
|
|
137
|
+
name_zh: column.name_zh || column.quotes || '',
|
|
138
|
+
id: column.id || column.fieldId || outputName,
|
|
139
|
+
realName: column.realName || column.name || '',
|
|
140
|
+
fieldAlias: ''
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
var getOuterSubQueryFieldAlias = function getOuterSubQueryFieldAlias(existingCol, newCol) {
|
|
144
|
+
var existingAlias = (existingCol === null || existingCol === void 0 ? void 0 : existingCol.fieldAlias) || '';
|
|
145
|
+
if (!existingAlias) return '';
|
|
146
|
+
var oldName = (existingCol === null || existingCol === void 0 ? void 0 : existingCol.name) || '';
|
|
147
|
+
var newName = (newCol === null || newCol === void 0 ? void 0 : newCol.name) || '';
|
|
148
|
+
if (existingAlias === oldName || existingAlias === newName) return '';
|
|
149
|
+
return existingAlias;
|
|
150
|
+
};
|
|
151
|
+
var getSyncedSubQueryFieldAlias = function getSyncedSubQueryFieldAlias(item, matchedColumn) {
|
|
152
|
+
var columnAlias = matchedColumn.fieldAlias || '';
|
|
153
|
+
if (columnAlias) return columnAlias;
|
|
154
|
+
var existingAlias = item.fieldAlias || '';
|
|
155
|
+
if (!existingAlias) return '';
|
|
156
|
+
var oldName = item.fieldName || '';
|
|
157
|
+
var newName = matchedColumn.name || '';
|
|
158
|
+
if (existingAlias === oldName || existingAlias === newName) return '';
|
|
159
|
+
return existingAlias;
|
|
160
|
+
};
|
|
161
|
+
var getSubQueryOutputIdentity = function getSubQueryOutputIdentity(column) {
|
|
162
|
+
var _column$sql$split;
|
|
163
|
+
if (!(column !== null && column !== void 0 && column.summarizeType)) return '';
|
|
164
|
+
var sqlBase = typeof column.sql === 'string' ? ((_column$sql$split = column.sql.split(/\s+AS\s+/i)) === null || _column$sql$split === void 0 || (_column$sql$split = _column$sql$split[0]) === null || _column$sql$split === void 0 ? void 0 : _column$sql$split.trim()) || '' : '';
|
|
165
|
+
var identityParts = [column.condition, column.fieldId, sqlBase || column.realName].filter(Boolean);
|
|
166
|
+
if (!identityParts.length) return '';
|
|
167
|
+
return [column.summarizeType].concat(_toConsumableArray(identityParts)).join('|');
|
|
168
|
+
};
|
|
169
|
+
var isSameSubQueryOutputColumn = function isSameSubQueryOutputColumn(oldCol, newCol) {
|
|
170
|
+
var oldIdentity = getSubQueryOutputIdentity(oldCol);
|
|
171
|
+
var newIdentity = getSubQueryOutputIdentity(newCol);
|
|
172
|
+
return Boolean(oldIdentity && newIdentity && oldIdentity === newIdentity);
|
|
173
|
+
};
|
|
174
|
+
export var mergeSubQueryColumns = function mergeSubQueryColumns(columns) {
|
|
175
|
+
var oldColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
176
|
+
var isSelectFields = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
177
|
+
return columns.map(function (newCol) {
|
|
178
|
+
var newColumn = newCol;
|
|
179
|
+
var existingCol = oldColumns.find(function (oldCol) {
|
|
180
|
+
var oldColumn = oldCol;
|
|
181
|
+
if (oldColumn.fieldUuid && newColumn.fieldUuid) {
|
|
182
|
+
return oldColumn.fieldUuid === newColumn.fieldUuid;
|
|
183
|
+
}
|
|
184
|
+
var oldFieldId = oldColumn.fieldId || oldColumn.id;
|
|
185
|
+
var newFieldId = newColumn.fieldId || newColumn.id;
|
|
186
|
+
if (oldFieldId && newFieldId) {
|
|
187
|
+
return oldFieldId === newFieldId;
|
|
188
|
+
}
|
|
189
|
+
if (isSameSubQueryOutputColumn(oldCol, newCol)) {
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
return isSameColumnByIdFirst(oldCol, newCol);
|
|
193
|
+
});
|
|
194
|
+
var nextCol = _objectSpread(_objectSpread(_objectSpread({}, existingCol || {}), newCol), {}, {
|
|
195
|
+
name_zh: existingCol ? existingCol.name_zh || '' : newColumn.name_zh || '',
|
|
196
|
+
fieldAlias: getOuterSubQueryFieldAlias(existingCol, newCol),
|
|
197
|
+
fieldUuid: newCol.fieldUuid || (existingCol === null || existingCol === void 0 ? void 0 : existingCol.fieldUuid) || uuidv4('field'),
|
|
198
|
+
select: isSelectFields || Boolean(existingCol === null || existingCol === void 0 ? void 0 : existingCol.select) || Boolean(newCol.select)
|
|
199
|
+
}, newColumn.summarizeType ? _defineProperty({}, SUB_QUERY_OUTPUT_COLUMN_KEY, true) : {});
|
|
200
|
+
return nextCol;
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
var getSubQueryMatchedColumn = function getSubQueryMatchedColumn(field, table, columns) {
|
|
204
|
+
var oldColumns = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
205
|
+
var fieldTable = {
|
|
206
|
+
datasourceId: field.datasourceId,
|
|
207
|
+
id: field.tableId,
|
|
208
|
+
name: field.tableName,
|
|
209
|
+
alias: field.tableAlias,
|
|
210
|
+
tableUuid: field.tableUuid
|
|
211
|
+
};
|
|
212
|
+
if (!isSameTableByIdFirst(table, fieldTable)) {
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
var normalizeColumnTable = function normalizeColumnTable(column) {
|
|
216
|
+
return _objectSpread(_objectSpread({}, column), {}, {
|
|
217
|
+
datasourceId: table.datasourceId || '',
|
|
218
|
+
tableId: table.id || '',
|
|
219
|
+
tableName: table.name || '',
|
|
220
|
+
tableAlias: table.alias || '',
|
|
221
|
+
tableUuid: table.tableUuid || ''
|
|
222
|
+
});
|
|
223
|
+
};
|
|
224
|
+
var matchedColumn = columns.find(function (column) {
|
|
225
|
+
return isSameColumnByIdFirst(normalizeColumnTable(column), field);
|
|
226
|
+
});
|
|
227
|
+
if (matchedColumn) return matchedColumn;
|
|
228
|
+
var oldMatchedColumn = oldColumns.find(function (column) {
|
|
229
|
+
return isSameColumnByIdFirst(normalizeColumnTable(column), field);
|
|
230
|
+
});
|
|
231
|
+
if (!oldMatchedColumn) return null;
|
|
232
|
+
return columns.find(function (column) {
|
|
233
|
+
return isSameSubQueryOutputColumn(oldMatchedColumn, column);
|
|
234
|
+
}) || columns[oldColumns.indexOf(oldMatchedColumn)] || null;
|
|
235
|
+
};
|
|
236
|
+
var _syncSubQueryFieldItems = function syncSubQueryFieldItems() {
|
|
237
|
+
var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
238
|
+
var table = arguments.length > 1 ? arguments[1] : undefined;
|
|
239
|
+
var columns = arguments.length > 2 ? arguments[2] : undefined;
|
|
240
|
+
var oldColumns = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
241
|
+
return items.map(function (item) {
|
|
242
|
+
var nextItem;
|
|
243
|
+
if (item.type === AtomsTypeEnum.FIELD) {
|
|
244
|
+
var matchedColumn = getSubQueryMatchedColumn(item, table, columns, oldColumns);
|
|
245
|
+
if (!matchedColumn) return item;
|
|
246
|
+
nextItem = _objectSpread(_objectSpread(_objectSpread({}, item), {}, {
|
|
247
|
+
tableName: table.name || item.tableName || '',
|
|
248
|
+
tableNameZh: table.name_zh || item.tableNameZh || '',
|
|
249
|
+
tableId: table.id || item.tableId || '',
|
|
250
|
+
tableAlias: table.alias || item.tableAlias || '',
|
|
251
|
+
tableUuid: table.tableUuid || item.tableUuid || '',
|
|
252
|
+
datasourceName: table.datasourceName || item.datasourceName || '',
|
|
253
|
+
datasourceId: table.datasourceId || item.datasourceId || ''
|
|
254
|
+
}, 'name' in item ? {
|
|
255
|
+
name: matchedColumn.name || item.name || ''
|
|
256
|
+
} : {}), {}, {
|
|
257
|
+
fieldName: matchedColumn.name || item.fieldName || '',
|
|
258
|
+
fieldNameZh: item.fieldNameZh || matchedColumn.name_zh || '',
|
|
259
|
+
fieldAlias: getSyncedSubQueryFieldAlias(item, matchedColumn),
|
|
260
|
+
fieldId: matchedColumn.id || matchedColumn.fieldId || item.fieldId || '',
|
|
261
|
+
fieldUuid: matchedColumn.fieldUuid || item.fieldUuid || ''
|
|
262
|
+
});
|
|
263
|
+
} else if (item.type === AtomsTypeEnum.JOIN_DEFAULT || item.type === AtomsTypeEnum.EXPRESSION) {
|
|
264
|
+
nextItem = _objectSpread(_objectSpread({}, item), {}, {
|
|
265
|
+
lhs: _syncSubQueryFieldItems(item.lhs, table, columns, oldColumns),
|
|
266
|
+
rhs: _syncSubQueryFieldItems(item.rhs, table, columns, oldColumns)
|
|
267
|
+
});
|
|
268
|
+
} else if (item.type === AtomsTypeEnum.FORMULA) {
|
|
269
|
+
nextItem = _objectSpread(_objectSpread({}, item), {}, {
|
|
270
|
+
args: _syncSubQueryFieldItems(item.args || [], table, columns, oldColumns)
|
|
271
|
+
});
|
|
272
|
+
} else if (item.type === AtomsTypeEnum.COLLECTION) {
|
|
273
|
+
nextItem = _objectSpread(_objectSpread({}, item), {}, {
|
|
274
|
+
list: _syncSubQueryFieldItems(item.list || [], table, columns, oldColumns)
|
|
275
|
+
});
|
|
276
|
+
} else if (item.type === AtomsTypeEnum.CASE_WHEN) {
|
|
277
|
+
nextItem = _objectSpread(_objectSpread({}, item), {}, {
|
|
278
|
+
caseAtoms: _syncSubQueryFieldItems(item.caseAtoms || [], table, columns, oldColumns),
|
|
279
|
+
whenClauses: (item.whenClauses || []).map(function (clause) {
|
|
280
|
+
return _objectSpread(_objectSpread({}, clause), {}, {
|
|
281
|
+
whenAtoms: _syncSubQueryFieldItems(clause.whenAtoms || [], table, columns, oldColumns),
|
|
282
|
+
thenAtoms: _syncSubQueryFieldItems(clause.thenAtoms || [], table, columns, oldColumns)
|
|
283
|
+
});
|
|
284
|
+
}),
|
|
285
|
+
elseAtoms: _syncSubQueryFieldItems(item.elseAtoms || [], table, columns, oldColumns)
|
|
286
|
+
});
|
|
287
|
+
} else if (item.type === AtomsTypeEnum.AND_OR) {
|
|
288
|
+
var hasBinarySides = Array.isArray(item.leftAtoms) || Array.isArray(item.rightAtoms);
|
|
289
|
+
nextItem = _objectSpread(_objectSpread({}, item), hasBinarySides ? {
|
|
290
|
+
atoms: undefined,
|
|
291
|
+
leftAtoms: _syncSubQueryFieldItems(item.leftAtoms || [], table, columns, oldColumns),
|
|
292
|
+
rightAtoms: _syncSubQueryFieldItems(item.rightAtoms || [], table, columns, oldColumns)
|
|
293
|
+
} : {
|
|
294
|
+
atoms: _syncSubQueryFieldItems(item.atoms || [], table, columns, oldColumns)
|
|
295
|
+
});
|
|
296
|
+
} else {
|
|
297
|
+
nextItem = item;
|
|
298
|
+
}
|
|
299
|
+
return syncAtomQuotes(nextItem);
|
|
300
|
+
});
|
|
301
|
+
};
|
|
302
|
+
export var syncSubQueryFieldReferences = function syncSubQueryFieldReferences(list, table, columns) {
|
|
303
|
+
var oldColumns = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
304
|
+
return cloneDeep(list).map(function (meta) {
|
|
305
|
+
var _meta$expressions, _meta$filter, _meta$sort;
|
|
306
|
+
if (meta.type === TypeEnum.joinData && (_meta$expressions = meta.expressions) !== null && _meta$expressions !== void 0 && _meta$expressions.length) {
|
|
307
|
+
return _objectSpread(_objectSpread({}, meta), {}, {
|
|
308
|
+
expressions: _syncSubQueryFieldItems(meta.expressions, table, columns, oldColumns)
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
if (meta.type === TypeEnum.customColumn) {
|
|
312
|
+
return _objectSpread(_objectSpread({}, meta), {}, {
|
|
313
|
+
customColumn: meta.customColumn.map(function (item) {
|
|
314
|
+
var _item$formulaList;
|
|
315
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
316
|
+
formulaList: (_item$formulaList = item.formulaList) !== null && _item$formulaList !== void 0 && _item$formulaList.length ? _syncSubQueryFieldItems(item.formulaList, table, columns, oldColumns) : item.formulaList
|
|
317
|
+
});
|
|
318
|
+
})
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
if (meta.type === TypeEnum.summarize) {
|
|
322
|
+
var nextMeta = _objectSpread(_objectSpread({}, meta), {}, {
|
|
323
|
+
group: meta.group.map(function (group) {
|
|
324
|
+
var _group$atoms;
|
|
325
|
+
var atoms = (_group$atoms = group.atoms) !== null && _group$atoms !== void 0 && _group$atoms.length ? _syncSubQueryFieldItems(group.atoms, table, columns, oldColumns) : group.atoms;
|
|
326
|
+
var nextGroup = _objectSpread(_objectSpread({}, group), {}, {
|
|
327
|
+
atoms: atoms
|
|
328
|
+
});
|
|
329
|
+
return atoms !== null && atoms !== void 0 && atoms.length ? _objectSpread(_objectSpread({}, nextGroup), {}, {
|
|
330
|
+
sql: summarizeToSql(meta.group, nextGroup).sql
|
|
331
|
+
}) : nextGroup;
|
|
332
|
+
}),
|
|
333
|
+
by: meta.by.map(function (by) {
|
|
334
|
+
var _by$atoms;
|
|
335
|
+
var atoms = (_by$atoms = by.atoms) !== null && _by$atoms !== void 0 && _by$atoms.length ? _syncSubQueryFieldItems(by.atoms, table, columns, oldColumns) : by.atoms;
|
|
336
|
+
var nextBy = _objectSpread(_objectSpread({}, by), {}, {
|
|
337
|
+
atoms: atoms
|
|
338
|
+
});
|
|
339
|
+
return atoms !== null && atoms !== void 0 && atoms.length ? _objectSpread(_objectSpread({}, nextBy), {}, {
|
|
340
|
+
sql: summarizeByToSql(nextBy)
|
|
341
|
+
}) : nextBy;
|
|
342
|
+
})
|
|
343
|
+
});
|
|
344
|
+
return nextMeta;
|
|
345
|
+
}
|
|
346
|
+
if (meta.type === TypeEnum.filter && (_meta$filter = meta.filter) !== null && _meta$filter !== void 0 && _meta$filter.length) {
|
|
347
|
+
return _objectSpread(_objectSpread({}, meta), {}, {
|
|
348
|
+
filter: _syncSubQueryFieldItems(meta.filter, table, columns, oldColumns)
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
if (meta.type === TypeEnum.sort && (_meta$sort = meta.sort) !== null && _meta$sort !== void 0 && _meta$sort.length) {
|
|
352
|
+
return _objectSpread(_objectSpread({}, meta), {}, {
|
|
353
|
+
sort: meta.sort.map(function (sort) {
|
|
354
|
+
return _objectSpread(_objectSpread({}, sort), {}, {
|
|
355
|
+
expression: _syncSubQueryFieldItems(sort.expression, table, columns, oldColumns)
|
|
356
|
+
});
|
|
357
|
+
})
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
return meta;
|
|
361
|
+
});
|
|
362
|
+
};
|
|
106
363
|
export var getSubColumns = function getSubColumns(metaList) {
|
|
107
364
|
var obj = {
|
|
108
365
|
metaKey: -1,
|
|
@@ -130,29 +387,25 @@ export var getSubColumns = function getSubColumns(metaList) {
|
|
|
130
387
|
if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group = prevGroupBy.group) !== null && _prevGroupBy$group !== void 0 && _prevGroupBy$group.length) {
|
|
131
388
|
_data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
|
|
132
389
|
var _v$sql;
|
|
133
|
-
return _objectSpread(_objectSpread({}, v), {}, {
|
|
134
|
-
name: v.name || v.quotes,
|
|
135
|
-
name_zh: v.name_zh || v.quotes,
|
|
390
|
+
return normalizeSubQueryColumn(_objectSpread(_objectSpread({}, v), {}, {
|
|
136
391
|
id: v.id || v.fieldId,
|
|
137
392
|
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]) || '',
|
|
138
393
|
database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
|
|
139
394
|
special_type: '',
|
|
140
395
|
select: true
|
|
141
|
-
});
|
|
396
|
+
}));
|
|
142
397
|
}));
|
|
143
398
|
}
|
|
144
399
|
if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by = prevGroupBy.by) !== null && _prevGroupBy$by !== void 0 && _prevGroupBy$by.length) {
|
|
145
400
|
_data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
|
|
146
401
|
var _v$sql2;
|
|
147
|
-
return _objectSpread(_objectSpread({}, v), {}, {
|
|
148
|
-
name: v.name || v.quotes,
|
|
149
|
-
name_zh: v.name_zh || v.quotes,
|
|
402
|
+
return normalizeSubQueryColumn(_objectSpread(_objectSpread({}, v), {}, {
|
|
150
403
|
id: v.id || v.fieldId,
|
|
151
404
|
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]) || '',
|
|
152
405
|
database_type: (v === null || v === void 0 ? void 0 : v.database_type) || SQL_COLUMN_TYPE.FLOAT,
|
|
153
406
|
special_type: '',
|
|
154
407
|
select: true
|
|
155
|
-
});
|
|
408
|
+
}));
|
|
156
409
|
}));
|
|
157
410
|
}
|
|
158
411
|
data = [_data];
|
|
@@ -286,12 +539,12 @@ var getExpressionConditionText = function getExpressionConditionText(condition)
|
|
|
286
539
|
var getSelectAtomText = function getSelectAtomText(item) {
|
|
287
540
|
var displayField = item.displayField || 'value';
|
|
288
541
|
var getOptionText = function getOptionText(value) {
|
|
289
|
-
var
|
|
542
|
+
var _ref2, _option$displayField;
|
|
290
543
|
var option = (item.options || []).find(function (currentOption) {
|
|
291
544
|
return currentOption.value === value;
|
|
292
545
|
});
|
|
293
546
|
if (!option) return value || '';
|
|
294
|
-
return String((
|
|
547
|
+
return String((_ref2 = (_option$displayField = option[displayField]) !== null && _option$displayField !== void 0 ? _option$displayField : option.value) !== null && _ref2 !== void 0 ? _ref2 : '');
|
|
295
548
|
};
|
|
296
549
|
if (Array.isArray(item.val)) {
|
|
297
550
|
return item.val.map(function (currentValue) {
|
|
@@ -303,7 +556,10 @@ var getSelectAtomText = function getSelectAtomText(item) {
|
|
|
303
556
|
var _getAtomDisplayText = function getAtomDisplayText(item) {
|
|
304
557
|
if (!item) return '';
|
|
305
558
|
if (item.type === AtomsTypeEnum.FIELD) {
|
|
306
|
-
|
|
559
|
+
if (item.tableId === SummarizeAlias) {
|
|
560
|
+
return item.fieldAlias || item.fieldName || '';
|
|
561
|
+
}
|
|
562
|
+
return item.fieldName || item.fieldAlias || '';
|
|
307
563
|
}
|
|
308
564
|
if (item.type === AtomsTypeEnum.CASE_WHEN) {
|
|
309
565
|
return buildCaseWhenQuotes(item);
|
|
@@ -533,7 +789,15 @@ var _changeAlias = function changeAlias(items, val, type) {
|
|
|
533
789
|
nextItem.tableAlias = val.alias;
|
|
534
790
|
}
|
|
535
791
|
if (type === AliasType.field && isAliasTargetField(v, val)) {
|
|
536
|
-
|
|
792
|
+
if (val.aliasAsFieldName && !isSameAliasTargetTable(v, val)) {
|
|
793
|
+
nextItem.fieldName = val.alias;
|
|
794
|
+
nextItem.fieldAlias = '';
|
|
795
|
+
if ('name' in nextItem) {
|
|
796
|
+
nextItem.name = val.alias;
|
|
797
|
+
}
|
|
798
|
+
} else {
|
|
799
|
+
nextItem.fieldAlias = val.alias;
|
|
800
|
+
}
|
|
537
801
|
}
|
|
538
802
|
} else if (v.type === AtomsTypeEnum.EXISTS || v.type === AtomsTypeEnum.NOT_EXISTS) {
|
|
539
803
|
nextItem = _objectSpread({}, v);
|
|
@@ -630,8 +894,8 @@ export var changeTableAlias = function changeTableAlias(list, curObj) {
|
|
|
630
894
|
}
|
|
631
895
|
if (v.type === TypeEnum.customColumn) {
|
|
632
896
|
v.customColumn.map(function (item) {
|
|
633
|
-
var _item$
|
|
634
|
-
if (item !== null && item !== void 0 && item.formulaList && ((_item$
|
|
897
|
+
var _item$formulaList2;
|
|
898
|
+
if (item !== null && item !== void 0 && item.formulaList && ((_item$formulaList2 = item.formulaList) === null || _item$formulaList2 === void 0 ? void 0 : _item$formulaList2.length) > 0) {
|
|
635
899
|
item.formulaList = _changeAlias(item.formulaList, {
|
|
636
900
|
uuid: tableUuid,
|
|
637
901
|
alias: alias
|
|
@@ -715,7 +979,8 @@ export var changeFieldAlias = function changeFieldAlias(list, curObj) {
|
|
|
715
979
|
tableId: tableId || (firstData === null || firstData === void 0 || (_firstData$table = firstData.table) === null || _firstData$table === void 0 ? void 0 : _firstData$table.id),
|
|
716
980
|
tableName: table || (firstData === null || firstData === void 0 || (_firstData$table2 = firstData.table) === null || _firstData$table2 === void 0 ? void 0 : _firstData$table2.name),
|
|
717
981
|
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)
|
|
982
|
+
datasourceId: datasourceId || (firstData === null || firstData === void 0 || (_firstData$table4 = firstData.table) === null || _firstData$table4 === void 0 ? void 0 : _firstData$table4.datasourceId),
|
|
983
|
+
aliasAsFieldName: Boolean(curObj.summarizeType)
|
|
719
984
|
};
|
|
720
985
|
var newList = cloneDeep(list);
|
|
721
986
|
return (newList === null || newList === void 0 ? void 0 : newList.map(function (v) {
|
|
@@ -966,7 +1231,17 @@ export var buildSqlQuery = function buildSqlQuery() {
|
|
|
966
1231
|
sql = _transformSql.sql;
|
|
967
1232
|
return "".concat(typeName, "(").concat(sql, ") ");
|
|
968
1233
|
};
|
|
969
|
-
var
|
|
1234
|
+
var hasLoadedColumnData = function hasLoadedColumnData() {
|
|
1235
|
+
var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
1236
|
+
return data.some(function (table) {
|
|
1237
|
+
return Array.isArray(table === null || table === void 0 ? void 0 : table.columns) && table.columns.length > 0;
|
|
1238
|
+
});
|
|
1239
|
+
};
|
|
1240
|
+
var _isError = function isError(item) {
|
|
1241
|
+
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
1242
|
+
if (!hasLoadedColumnData(data)) {
|
|
1243
|
+
return false;
|
|
1244
|
+
}
|
|
970
1245
|
var tables = getColumnsTables(data);
|
|
971
1246
|
if (!item) {
|
|
972
1247
|
return false;
|
|
@@ -993,11 +1268,12 @@ var _isError = function isError(item, data) {
|
|
|
993
1268
|
}
|
|
994
1269
|
if (_datasourceId === 'source') {
|
|
995
1270
|
var _tables$_datasourceId;
|
|
996
|
-
|
|
1271
|
+
var fields = tables === null || tables === void 0 || (_tables$_datasourceId = tables[_datasourceId]) === null || _tables$_datasourceId === void 0 ? void 0 : _tables$_datasourceId[tableId + tableAlias];
|
|
1272
|
+
if (!fields) {
|
|
997
1273
|
return true;
|
|
1274
|
+
} else if (!fields.length) {
|
|
1275
|
+
return false;
|
|
998
1276
|
} else {
|
|
999
|
-
var _tables$_datasourceId2;
|
|
1000
|
-
var fields = (tables === null || tables === void 0 || (_tables$_datasourceId2 = tables[_datasourceId]) === null || _tables$_datasourceId2 === void 0 ? void 0 : _tables$_datasourceId2[tableId + tableAlias]) || [];
|
|
1001
1277
|
return fields.every(function (field) {
|
|
1002
1278
|
return !isSameColumnByIdFirst(_objectSpread(_objectSpread({}, field), {}, {
|
|
1003
1279
|
datasourceId: _datasourceId,
|
|
@@ -1006,13 +1282,17 @@ var _isError = function isError(item, data) {
|
|
|
1006
1282
|
});
|
|
1007
1283
|
}
|
|
1008
1284
|
} else {
|
|
1009
|
-
var _tables$
|
|
1010
|
-
var
|
|
1285
|
+
var _tables$_datasourceId2, _fields$some;
|
|
1286
|
+
var _fields = tables === null || tables === void 0 || (_tables$_datasourceId2 = tables[_datasourceId]) === null || _tables$_datasourceId2 === void 0 ? void 0 : _tables$_datasourceId2[tableId + tableAlias];
|
|
1287
|
+
if (_fields && !_fields.length) {
|
|
1288
|
+
return false;
|
|
1289
|
+
}
|
|
1290
|
+
var hasField = (_fields$some = _fields === null || _fields === void 0 ? void 0 : _fields.some(function (v) {
|
|
1011
1291
|
return isSameColumnByIdFirst(_objectSpread(_objectSpread({}, v), {}, {
|
|
1012
1292
|
datasourceId: _datasourceId,
|
|
1013
1293
|
tableId: tableId
|
|
1014
1294
|
}), item);
|
|
1015
|
-
})) !== null &&
|
|
1295
|
+
})) !== null && _fields$some !== void 0 ? _fields$some : false;
|
|
1016
1296
|
return !hasField;
|
|
1017
1297
|
}
|
|
1018
1298
|
}
|