@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/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 _ref, _option$displayField;
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((_ref = (_option$displayField = option[displayField]) !== null && _option$displayField !== void 0 ? _option$displayField : option.value) !== null && _ref !== void 0 ? _ref : '');
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
- return item.fieldAlias || item.fieldName || '';
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
- nextItem.fieldAlias = val.alias;
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$formulaList;
634
- if (item !== null && item !== void 0 && item.formulaList && ((_item$formulaList = item.formulaList) === null || _item$formulaList === void 0 ? void 0 : _item$formulaList.length) > 0) {
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 _isError = function isError(item, data) {
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
- if (!(tables !== null && tables !== void 0 && (_tables$_datasourceId = tables[_datasourceId]) !== null && _tables$_datasourceId !== void 0 && _tables$_datasourceId[tableId + tableAlias])) {
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$_datasourceId3, _tables$_datasourceId4;
1010
- var hasField = (_tables$_datasourceId3 = tables === null || tables === void 0 || (_tables$_datasourceId4 = tables[_datasourceId]) === null || _tables$_datasourceId4 === void 0 || (_tables$_datasourceId4 = _tables$_datasourceId4[tableId + tableAlias]) === null || _tables$_datasourceId4 === void 0 ? void 0 : _tables$_datasourceId4.some(function (v) {
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 && _tables$_datasourceId3 !== void 0 ? _tables$_datasourceId3 : false;
1295
+ })) !== null && _fields$some !== void 0 ? _fields$some : false;
1016
1296
  return !hasField;
1017
1297
  }
1018
1298
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gingkoo/pandora-metabase",
3
- "version": "1.0.136",
3
+ "version": "1.0.137-alpha.2",
4
4
  "description": "",
5
5
  "main": "lib/es/index.js",
6
6
  "module": "lib/es/index.js",