@gingkoo/pandora-metabase 1.0.130 → 1.0.131

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.
Files changed (65) hide show
  1. package/lib/cjs/components/dialog/expression/index.js +0 -1
  2. package/lib/cjs/components/dialog/formula-list/utils.js +0 -3
  3. package/lib/cjs/components/dialog/select-column/index.js +2 -2
  4. package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +0 -1
  5. package/lib/cjs/components/dialog/select-column-multiple/index.js +44 -19
  6. package/lib/cjs/components/dialog/select-join-column/index.js +23 -7
  7. package/lib/cjs/components/dialog/select-join-column-multiple/index.js +15 -6
  8. package/lib/cjs/components/dialog/select-permission-table/index.js +2 -2
  9. package/lib/cjs/components/dialog/select-summarize/index.js +1 -3
  10. package/lib/cjs/components/dialog/select-table/index.d.ts +1 -2
  11. package/lib/cjs/components/dialog/select-table/index.js +231 -261
  12. package/lib/cjs/components/dialog/select-table/index.less +51 -36
  13. package/lib/cjs/components/metabase/index.js +34 -16
  14. package/lib/cjs/components/modules/components/item-name.js +0 -1
  15. package/lib/cjs/components/modules/custom-column.js +3 -7
  16. package/lib/cjs/components/modules/filter.js +3 -6
  17. package/lib/cjs/components/modules/join-data.js +41 -87
  18. package/lib/cjs/components/modules/permission-table.js +5 -9
  19. package/lib/cjs/components/modules/sort.js +1 -2
  20. package/lib/cjs/components/modules/summarize/group-by.js +1 -8
  21. package/lib/cjs/components/modules/summarize/select-index.js +1 -4
  22. package/lib/cjs/components/modules/table-data.js +28 -44
  23. package/lib/cjs/hooks/use-state.js +22 -147
  24. package/lib/cjs/index.js +1 -7
  25. package/lib/cjs/locale/en.js +1 -0
  26. package/lib/cjs/locale/zh.js +1 -0
  27. package/lib/cjs/store/types.d.ts +4 -5
  28. package/lib/cjs/types.d.ts +0 -8
  29. package/lib/cjs/utils/helper.d.ts +4 -0
  30. package/lib/cjs/utils/helper.js +102 -1
  31. package/lib/cjs/utils/transformSql.js +0 -2
  32. package/lib/cjs/utils.js +38 -18
  33. package/lib/es/components/dialog/expression/index.js +0 -1
  34. package/lib/es/components/dialog/formula-list/utils.js +0 -3
  35. package/lib/es/components/dialog/select-column/index.js +3 -3
  36. package/lib/es/components/dialog/select-column-multiple/index.d.ts +0 -1
  37. package/lib/es/components/dialog/select-column-multiple/index.js +45 -21
  38. package/lib/es/components/dialog/select-join-column/index.js +24 -8
  39. package/lib/es/components/dialog/select-join-column-multiple/index.js +16 -7
  40. package/lib/es/components/dialog/select-permission-table/index.js +3 -3
  41. package/lib/es/components/dialog/select-summarize/index.js +1 -3
  42. package/lib/es/components/dialog/select-table/index.d.ts +1 -2
  43. package/lib/es/components/dialog/select-table/index.js +233 -263
  44. package/lib/es/components/dialog/select-table/index.less +51 -36
  45. package/lib/es/components/metabase/index.js +34 -16
  46. package/lib/es/components/modules/components/item-name.js +0 -1
  47. package/lib/es/components/modules/custom-column.js +3 -7
  48. package/lib/es/components/modules/filter.js +3 -6
  49. package/lib/es/components/modules/join-data.js +42 -88
  50. package/lib/es/components/modules/permission-table.js +6 -10
  51. package/lib/es/components/modules/sort.js +1 -2
  52. package/lib/es/components/modules/summarize/group-by.js +1 -8
  53. package/lib/es/components/modules/summarize/select-index.js +1 -4
  54. package/lib/es/components/modules/table-data.js +29 -45
  55. package/lib/es/hooks/use-state.js +23 -148
  56. package/lib/es/index.js +1 -7
  57. package/lib/es/locale/en.js +1 -0
  58. package/lib/es/locale/zh.js +1 -0
  59. package/lib/es/store/types.d.ts +4 -5
  60. package/lib/es/types.d.ts +0 -8
  61. package/lib/es/utils/helper.d.ts +4 -0
  62. package/lib/es/utils/helper.js +101 -0
  63. package/lib/es/utils/transformSql.js +0 -2
  64. package/lib/es/utils.js +39 -19
  65. package/package.json +1 -1
@@ -644,7 +644,6 @@ var SelectFilterColumn = function SelectFilterColumn(_ref) {
644
644
  tableUuid: '',
645
645
  datasourceName: '',
646
646
  datasourceId: '',
647
- datasourceType: '',
648
647
  type: _types.AtomsTypeEnum.FIELD
649
648
  }]);
650
649
  }
@@ -75,7 +75,6 @@ var insertTemplateAt = exports.insertTemplateAt = function insertTemplateAt(oldT
75
75
  tableUuid: '',
76
76
  datasourceName: '',
77
77
  datasourceId: '',
78
- datasourceType: '',
79
78
  type: _types.AtomsTypeEnum.FIELD
80
79
  }, {
81
80
  val: 'ORDER BY',
@@ -93,7 +92,6 @@ var insertTemplateAt = exports.insertTemplateAt = function insertTemplateAt(oldT
93
92
  tableUuid: '',
94
93
  datasourceName: '',
95
94
  datasourceId: '',
96
- datasourceType: '',
97
95
  type: _types.AtomsTypeEnum.FIELD
98
96
  }, {
99
97
  val: ')',
@@ -153,7 +151,6 @@ var getTemplateItem = exports.getTemplateItem = function getTemplateItem(type, i
153
151
  tableUuid: '',
154
152
  datasourceName: '',
155
153
  datasourceId: '',
156
- datasourceType: '',
157
154
  type: _types.AtomsTypeEnum.FIELD
158
155
  };
159
156
  } else if (type === _types.AtomsTypeEnum.EXPRESSION || type === _types.AtomsTypeEnum.JOIN_DEFAULT) {
@@ -79,7 +79,7 @@ var SelectColumn = function SelectColumn(_ref) {
79
79
  var originalData = (0, _cloneDeep["default"])(originList);
80
80
  var mergedColumns = originalData.map(function (item) {
81
81
  var match = columns.find(function (col) {
82
- return col.fieldUuid === item.fieldUuid;
82
+ return (0, _helper.isSameColumnByIdFirst)(col, item);
83
83
  });
84
84
  return match ? (0, _cloneDeep["default"])(match) : item;
85
85
  });
@@ -203,7 +203,7 @@ var SelectColumn = function SelectColumn(_ref) {
203
203
  }
204
204
  })
205
205
  })]
206
- }, v.name);
206
+ }, (0, _helper.getColumnIdFirstKey)(v));
207
207
  })
208
208
  })]
209
209
  })
@@ -14,7 +14,6 @@ export interface ColumnType {
14
14
  id: string;
15
15
  datasourceId: string;
16
16
  datasourceName: string;
17
- datasourceType?: string;
18
17
  table2?: Omit<MetaJoin_TalbeType, 'column' | 'column_id'> | null;
19
18
  }
20
19
  export interface ColumnGroupType {
@@ -85,22 +85,34 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
85
85
  (0, _react.useEffect)(function () {
86
86
  setValue(_value);
87
87
  }, [_value]);
88
+ var getFieldTableKey = function getFieldTableKey(tableId, tableUuid) {
89
+ return tableId || tableUuid || '';
90
+ };
91
+ var isSameSelectedTable = function isSameSelectedTable(field, tableId, tableUuid) {
92
+ if (field.tableId && tableId) {
93
+ return field.tableId === tableId;
94
+ }
95
+ if (field.tableUuid && tableUuid) {
96
+ return field.tableUuid === tableUuid;
97
+ }
98
+ return false;
99
+ };
88
100
  var getSelectedFieldKey = function getSelectedFieldKey(field) {
89
101
  if (!field) return '';
90
- if (field.tableId === _helper.SummarizeAlias) {
91
- return field.fieldAlias || '';
92
- }
93
- return "".concat(field.fieldId).concat(field.fieldAlias || '');
102
+ var tableKey = getFieldTableKey(field.tableId, field.tableUuid);
103
+ var fieldKey = field.tableId === _helper.SummarizeAlias ? field.fieldAlias || '' : "".concat(field.fieldId).concat(field.fieldAlias || '');
104
+ return "".concat(tableKey, "|").concat(fieldKey);
94
105
  };
95
- var getColumnKey = function getColumnKey(column, isSummarizeColumn) {
106
+ var getColumnKey = function getColumnKey(column, isSummarizeColumn, tableId, tableUuid) {
107
+ var tableKey = getFieldTableKey(tableId, tableUuid);
96
108
  if (isSummarizeColumn) {
97
- return column.fieldAlias || column.name || '';
109
+ return "".concat(tableKey, "|").concat(column.fieldAlias || column.name || '');
98
110
  }
99
- return "".concat(column.id || column.name).concat(column.fieldAlias || '');
111
+ return "".concat(tableKey, "|").concat(column.id || column.name).concat(column.fieldAlias || '');
100
112
  };
101
- var isActive = function isActive(id_alias) {
113
+ var isActive = function isActive(id_alias, tableId, tableUuid) {
102
114
  return (value === null || value === void 0 ? void 0 : value.filter(function (v) {
103
- return getSelectedFieldKey(v) === id_alias;
115
+ return isSameSelectedTable(v, tableId, tableUuid) && getSelectedFieldKey(v) === id_alias;
104
116
  }).length) > 0;
105
117
  };
106
118
  (0, _react.useEffect)(function () {
@@ -154,30 +166,39 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
154
166
  }
155
167
  var selectedKey = getSelectedFieldKey(val);
156
168
  var isHas = (value === null || value === void 0 ? void 0 : value.filter(function (v) {
157
- return getSelectedFieldKey(v) === selectedKey;
169
+ return val && isSameSelectedTable(v, val.tableId, val.tableUuid) && getSelectedFieldKey(v) === selectedKey;
158
170
  }).length) > 0;
159
171
  var _value = value.slice();
160
172
  if (tableUuid != curTable) {
161
173
  _value = [];
162
174
  }
163
175
  if (!isHas && val) {
176
+ _value = _value.filter(function (v) {
177
+ var hasTableKey = getFieldTableKey(v.tableId, v.tableUuid);
178
+ var isLegacySameField = !hasTableKey && (v.fieldId && v.fieldId === val.fieldId || v.fieldName && v.fieldName === val.fieldName);
179
+ return !isLegacySameField;
180
+ });
164
181
  _value.push(val);
165
182
  } else {
166
183
  _value = _value.filter(function (v) {
167
- return getSelectedFieldKey(v) !== selectedKey;
184
+ return !(val && isSameSelectedTable(v, val.tableId, val.tableUuid) && getSelectedFieldKey(v) === selectedKey);
168
185
  });
169
186
  }
170
- var curTableColumn = data.filter(function (v) {
187
+ var curTableItem = data.find(function (v) {
171
188
  return v.tableUuid === tableUuid;
172
- }).flatMap(function (v) {
173
- return v.columns;
174
189
  });
190
+ var curTableId = (curTableItem === null || curTableItem === void 0 ? void 0 : curTableItem.id) || '';
191
+ var curTableColumn = (curTableItem === null || curTableItem === void 0 ? void 0 : curTableItem.columns) || [];
175
192
  _value = _value.filter(function (item2) {
176
- return curTableColumn.some(function (item1) {
193
+ return isSameSelectedTable(item2, curTableId, tableUuid) && curTableColumn.some(function (item1) {
177
194
  if (item2.tableId === _helper.SummarizeAlias) {
178
195
  return (item1.fieldAlias || item1.name) === item2.fieldAlias;
179
196
  }
180
- return item1.name === item2.fieldName;
197
+ return (0, _helper2.isSameColumnByIdFirst)((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, item1), {}, {
198
+ tableId: curTableId,
199
+ tableUuid: tableUuid,
200
+ datasourceId: (curTableItem === null || curTableItem === void 0 ? void 0 : curTableItem.datasourceId) || ''
201
+ }), item2);
181
202
  });
182
203
  });
183
204
  setValue(_value);
@@ -266,6 +287,11 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
266
287
  if (isGroup) {
267
288
  changeValue(tableUuid);
268
289
  }
290
+ if (tableUuid !== curTable) {
291
+ setCurTable(tableUuid);
292
+ setValue([]);
293
+ onSelect === null || onSelect === void 0 || onSelect([], '');
294
+ }
269
295
  if (!isMultiple) return void 0;
270
296
  var newTables = (0, _cloneDeep["default"])(tableList);
271
297
  if (open) {
@@ -326,7 +352,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
326
352
  _v$database_type = v.database_type,
327
353
  database_type = _v$database_type === void 0 ? '' : _v$database_type,
328
354
  name = v.name;
329
- var columnKey = getColumnKey(v, isSummarize);
355
+ var columnKey = getColumnKey(v, isSummarize, tableId || '', tableUuid);
330
356
  var fieldAlias = isSummarize ? v.fieldAlias || name || '' : v.fieldAlias || '';
331
357
  var fieldName = isSummarize ? '' : name || '';
332
358
  var fieldId = isSummarize ? '' : v.id || name || '';
@@ -342,7 +368,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
342
368
  className: (0, _classnames["default"])("Sqb-List-section"),
343
369
  children: (0, _jsxRuntime.jsx)("div", {
344
370
  className: (0, _classnames["default"])("Sqb-List-item mx-2", {
345
- active: isActive(columnKey)
371
+ active: isActive(columnKey, tableId || '', tableUuid)
346
372
  }),
347
373
  onClick: function onClick() {
348
374
  changeValue(tableUuid, {
@@ -353,7 +379,6 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
353
379
  tableUuid: tableItem.tableUuid || '',
354
380
  datasourceName: tableItem.datasourceName || '',
355
381
  datasourceId: tableItem.datasourceId || '',
356
- datasourceType: tableItem.datasourceType || '',
357
382
  fieldName: fieldName,
358
383
  fieldId: fieldId,
359
384
  fieldNameZh: fieldNameZh,
@@ -56,7 +56,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
56
56
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
57
57
  curTable = _useState4[0],
58
58
  setCurTable = _useState4[1];
59
- var _useState5 = (0, _react.useState)(_value.name),
59
+ var _useState5 = (0, _react.useState)(_value),
60
60
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
61
61
  curColumn = _useState6[0],
62
62
  setCurColumn = _useState6[1];
@@ -77,7 +77,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
77
77
  setTableList = _useState0[1];
78
78
  (0, _react.useEffect)(function () {
79
79
  setValue(_value);
80
- setCurColumn(_value.name);
80
+ setCurColumn(_value);
81
81
  }, [_value]);
82
82
  (0, _react.useEffect)(function () {
83
83
  var tableUuid = _value === null || _value === void 0 ? void 0 : _value.tableUuid;
@@ -251,12 +251,20 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
251
251
  if (~_const.DATE_GROUP.indexOf(database_type)) {
252
252
  groupe = _enum.SQL_GROUP_TYPE.DATE;
253
253
  }
254
- var showCondition = curColumn === name && curTable === tableUuid && _condition;
254
+ var showCondition = (0, _helper2.isSameColumnByIdFirst)(curColumn, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
255
+ tableId: tableId,
256
+ tableUuid: tableUuid,
257
+ datasourceId: datasourceId
258
+ })) && curTable === tableUuid && _condition;
255
259
  return (0, _jsxRuntime.jsx)("div", {
256
260
  className: (0, _classnames["default"])("Sqb-List-section"),
257
261
  children: (0, _jsxRuntime.jsxs)("div", {
258
262
  className: (0, _classnames["default"])("Sqb-List-item mx-2", {
259
- active: curColumn === name && curTable === tableUuid
263
+ active: curTable === tableUuid && (0, _helper2.isSameColumnByIdFirst)(value, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
264
+ tableId: tableId,
265
+ tableUuid: tableUuid,
266
+ datasourceId: datasourceId
267
+ }))
260
268
  }),
261
269
  onClick: function onClick() {
262
270
  if (isGroup && typeof onGroup === 'function') {
@@ -318,11 +326,15 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
318
326
  onVisibleChange: function onVisibleChange(visible) {
319
327
  if (visible) {
320
328
  setCurTable(tableUuid);
321
- setCurColumn(name);
329
+ setCurColumn((0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, value), v), {}, {
330
+ tableId: tableId,
331
+ tableUuid: tableUuid,
332
+ datasourceId: datasourceId
333
+ }));
322
334
  store.setClosable(false);
323
335
  } else {
324
336
  setCurTable(tableUuid);
325
- setCurColumn(value.name);
337
+ setCurColumn(value);
326
338
  setTimeout(function () {
327
339
  return store.setClosable(true);
328
340
  }, 300);
@@ -379,7 +391,11 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
379
391
  })
380
392
  })]
381
393
  })
382
- }, name);
394
+ }, (0, _helper2.getColumnIdFirstKey)((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
395
+ tableId: tableId,
396
+ tableUuid: tableUuid,
397
+ datasourceId: datasourceId
398
+ })));
383
399
  })]
384
400
  })]
385
401
  }, tableUuid || tableAlias);
@@ -74,9 +74,9 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
74
74
  (0, _react.useEffect)(function () {
75
75
  setValue(_value);
76
76
  }, [_value]);
77
- var isActive = function isActive(fieldUuid) {
77
+ var isActive = function isActive(field) {
78
78
  return value.filter(function (v) {
79
- return v.fieldUuid === fieldUuid;
79
+ return (0, _helper2.isSameColumnByIdFirst)(v, field);
80
80
  }).length > 0;
81
81
  };
82
82
  (0, _react.useEffect)(function () {
@@ -109,7 +109,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
109
109
  }
110
110
  var changeValue = function changeValue(table, val) {
111
111
  var isHas = value.filter(function (v) {
112
- return v.fieldUuid === val.fieldUuid;
112
+ return (0, _helper2.isSameColumnByIdFirst)(v, val);
113
113
  }).length > 0;
114
114
  var _value = (0, _toConsumableArray2["default"])(value);
115
115
  if (table.tableUuid != curTable.tableUuid) {
@@ -119,7 +119,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
119
119
  _value.push(val);
120
120
  } else {
121
121
  _value = _value.filter(function (v) {
122
- return v.fieldUuid != val.fieldUuid;
122
+ return !(0, _helper2.isSameColumnByIdFirst)(v, val);
123
123
  });
124
124
  }
125
125
  setValue(_value);
@@ -230,7 +230,12 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
230
230
  className: (0, _classnames["default"])("Sqb-List-section"),
231
231
  children: (0, _jsxRuntime.jsx)("div", {
232
232
  className: (0, _classnames["default"])("Sqb-List-item mx-2", {
233
- active: isActive(v.fieldUuid)
233
+ active: isActive((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
234
+ fieldId: fieldId || v.id,
235
+ tableId: tableId,
236
+ tableUuid: tableUuid,
237
+ datasourceId: datasourceId
238
+ }))
234
239
  }),
235
240
  onClick: function onClick() {
236
241
  changeValue(tableItem, {
@@ -253,7 +258,11 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
253
258
  })]
254
259
  })
255
260
  })
256
- }, name);
261
+ }, (0, _helper2.getColumnIdFirstKey)((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
262
+ tableId: tableId,
263
+ tableUuid: tableUuid,
264
+ datasourceId: datasourceId
265
+ })));
257
266
  })]
258
267
  })]
259
268
  }, tableUuid || tableAlias);
@@ -67,7 +67,7 @@ var SelectPermissionTable = function SelectPermissionTable(_ref) {
67
67
  className: (0, _classnames["default"])("Sqb-List-section"),
68
68
  children: (0, _jsxRuntime.jsx)("div", {
69
69
  className: (0, _classnames["default"])("Sqb-List-item mx-2", {
70
- active: value.alias + '' + value.id === v.alias + '' + v.id
70
+ active: (0, _helper.isSameTableByIdFirst)(value, v)
71
71
  }),
72
72
  onClick: function onClick() {
73
73
  onChange(v);
@@ -85,7 +85,7 @@ var SelectPermissionTable = function SelectPermissionTable(_ref) {
85
85
  })]
86
86
  })
87
87
  })
88
- }, v.alias || v.name);
88
+ }, (0, _helper.getTableIdFirstKey)(v));
89
89
  })]
90
90
  })
91
91
  })
@@ -110,7 +110,6 @@ var SelectSummarize = function SelectSummarize(_ref) {
110
110
  tableUuid: value.tableUuid || '',
111
111
  datasourceName: value.datasourceName || '',
112
112
  datasourceId: value.datasourceId || '',
113
- datasourceType: value.datasourceType || '',
114
113
  type: _types.AtomsTypeEnum.FIELD
115
114
  };
116
115
  return [fieldAtom];
@@ -177,8 +176,7 @@ var SelectSummarize = function SelectSummarize(_ref) {
177
176
  fieldAlias: '',
178
177
  fieldUuid: '',
179
178
  datasourceId: '',
180
- datasourceName: '',
181
- datasourceType: ''
179
+ datasourceName: ''
182
180
  } : {}), record), {}, {
183
181
  condition: condition,
184
182
  quotes: quotes
@@ -6,9 +6,8 @@ interface PropsType {
6
6
  sourceTable: any[];
7
7
  value: MetaData_TableType;
8
8
  onChange: (reocrd: MetaData_TableType) => void;
9
- onDatasourceTypeChange?: (record: MetaData_TableType) => void;
10
9
  didUpdate?: Function;
11
10
  tableFlat?: boolean;
12
11
  }
13
- declare const SelectTable: ({ data, sourceTable, value, onChange, onDatasourceTypeChange, didUpdate, tableFlat, }: PropsType) => import("react/jsx-runtime").JSX.Element;
12
+ declare const SelectTable: ({ data, sourceTable, value, onChange, didUpdate, tableFlat, }: PropsType) => import("react/jsx-runtime").JSX.Element;
14
13
  export default SelectTable;