@gingkoo/pandora-metabase 1.0.108 → 1.0.110

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 (44) hide show
  1. package/lib/cjs/common/SplitView/index.js +11 -12
  2. package/lib/cjs/components/dialog/custom-column/expression-editor.js +1 -2
  3. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -2
  4. package/lib/cjs/components/dialog/expression/index.js +11 -12
  5. package/lib/cjs/components/dialog/formula/index.js +1 -2
  6. package/lib/cjs/components/dialog/formula-list/index.js +27 -28
  7. package/lib/cjs/components/dialog/index.js +2 -2
  8. package/lib/cjs/components/dialog/select-column/index.js +4 -4
  9. package/lib/cjs/components/dialog/select-join-column/index.js +3 -3
  10. package/lib/cjs/components/dialog/select-table/index.js +12 -13
  11. package/lib/cjs/components/icons.js +36 -36
  12. package/lib/cjs/components/metabase/index.js +9 -9
  13. package/lib/cjs/components/modules/components/Wrapper.js +6 -6
  14. package/lib/cjs/components/modules/components/header.js +4 -4
  15. package/lib/cjs/components/modules/components/meta-icon.js +1 -2
  16. package/lib/cjs/components/modules/custom-column.js +4 -4
  17. package/lib/cjs/components/modules/join-data.js +13 -13
  18. package/lib/cjs/components/modules/summarize/group-by.js +4 -4
  19. package/lib/cjs/components/modules/summarize/select-index.js +4 -4
  20. package/lib/cjs/components/modules/table-data.js +10 -10
  21. package/lib/cjs/components/popup.js +1 -2
  22. package/lib/cjs/hooks/use-state.js +160 -161
  23. package/lib/cjs/index.js +1 -2
  24. package/lib/cjs/utils/transformSql.js +8 -8
  25. package/lib/cjs/utils.js +1 -1
  26. package/lib/es/common/SplitView/index.js +10 -10
  27. package/lib/es/components/dialog/expression/index.js +10 -10
  28. package/lib/es/components/dialog/formula-list/index.js +26 -26
  29. package/lib/es/components/dialog/select-column/index.js +4 -4
  30. package/lib/es/components/dialog/select-join-column/index.js +3 -3
  31. package/lib/es/components/dialog/select-table/index.js +11 -11
  32. package/lib/es/components/icons.js +36 -36
  33. package/lib/es/components/metabase/index.js +9 -9
  34. package/lib/es/components/modules/components/Wrapper.js +6 -6
  35. package/lib/es/components/modules/components/header.js +4 -4
  36. package/lib/es/components/modules/custom-column.js +4 -4
  37. package/lib/es/components/modules/join-data.js +13 -13
  38. package/lib/es/components/modules/summarize/group-by.js +4 -4
  39. package/lib/es/components/modules/summarize/select-index.js +4 -4
  40. package/lib/es/components/modules/table-data.js +10 -10
  41. package/lib/es/hooks/use-state.js +160 -161
  42. package/lib/es/utils/transformSql.js +8 -8
  43. package/lib/es/utils.js +1 -1
  44. package/package.json +1 -1
@@ -40,20 +40,20 @@ var TableData = function TableData(props) {
40
40
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
41
41
  var _meta$table, _meta$table2;
42
42
  var tableName, tables, names;
43
- return _regeneratorRuntime.wrap(function _callee$(_context) {
43
+ return _regeneratorRuntime.wrap(function (_context) {
44
44
  while (1) switch (_context.prev = _context.next) {
45
45
  case 0:
46
46
  tableName = (_meta$table = meta.table) === null || _meta$table === void 0 ? void 0 : _meta$table.name;
47
47
  if (meta !== null && meta !== void 0 && (_meta$table2 = meta.table) !== null && _meta$table2 !== void 0 && _meta$table2.datasourceId) {
48
- _context.next = 4;
48
+ _context.next = 1;
49
49
  break;
50
50
  }
51
51
  setIsDel(false);
52
52
  return _context.abrupt("return");
53
- case 4:
54
- _context.next = 6;
53
+ case 1:
54
+ _context.next = 2;
55
55
  return store === null || store === void 0 ? void 0 : store.fetchDataset(meta.table.datasourceId);
56
- case 6:
56
+ case 2:
57
57
  tables = _context.sent;
58
58
  names = (tables === null || tables === void 0 ? void 0 : tables.map(function (v) {
59
59
  return v.name;
@@ -63,7 +63,7 @@ var TableData = function TableData(props) {
63
63
  } else {
64
64
  setIsDel(false);
65
65
  }
66
- case 9:
66
+ case 3:
67
67
  case "end":
68
68
  return _context.stop();
69
69
  }
@@ -152,16 +152,16 @@ var TableData = function TableData(props) {
152
152
  onOk: function () {
153
153
  var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
154
154
  var newMetaList;
155
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
155
+ return _regeneratorRuntime.wrap(function (_context2) {
156
156
  while (1) switch (_context2.prev = _context2.next) {
157
157
  case 0:
158
158
  if (isValidSQLAlias(alias)) {
159
- _context2.next = 3;
159
+ _context2.next = 1;
160
160
  break;
161
161
  }
162
162
  Toast.warning(__('SqlQueryBuilder.aliasForRules'));
163
163
  return _context2.abrupt("return", false);
164
- case 3:
164
+ case 1:
165
165
  newMetaList = store.metaList[groupIndex].list.slice(); // @ts-ignore
166
166
  newMetaList[0].table.alias = alias;
167
167
  newMetaList = changeTableAlias(newMetaList, newMetaList[0].table);
@@ -169,7 +169,7 @@ var TableData = function TableData(props) {
169
169
  obj: newMetaList[0].table,
170
170
  type: ChangeType.tableAlias
171
171
  });
172
- case 7:
172
+ case 2:
173
173
  case "end":
174
174
  return _context2.stop();
175
175
  }
@@ -1,3 +1,4 @@
1
+ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
1
2
  import _typeof from "@babel/runtime/helpers/esm/typeof";
2
3
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
@@ -60,145 +61,145 @@ var useStore = function useStore() {
60
61
  toolbar = _useState8[0],
61
62
  setToolbar = _useState8[1]; //工具列表
62
63
  var _useState9 = useState('${name}'),
63
- _useState10 = _slicedToArray(_useState9, 2),
64
- fieldNameTpl = _useState10[0],
65
- setFieldNameTpl = _useState10[1]; //显示字段
66
- var _useState11 = useState('${name}'),
64
+ _useState0 = _slicedToArray(_useState9, 2),
65
+ fieldNameTpl = _useState0[0],
66
+ setFieldNameTpl = _useState0[1]; //显示字段
67
+ var _useState1 = useState('${name}'),
68
+ _useState10 = _slicedToArray(_useState1, 2),
69
+ tableNameTpl = _useState10[0],
70
+ setTableNameTpl = _useState10[1]; //显示字段
71
+ var _useState11 = useState([]),
67
72
  _useState12 = _slicedToArray(_useState11, 2),
68
- tableNameTpl = _useState12[0],
69
- setTableNameTpl = _useState12[1]; //显示字段
73
+ sourceList = _useState12[0],
74
+ setSourceList = _useState12[1]; //数据源列表
70
75
  var _useState13 = useState([]),
71
76
  _useState14 = _slicedToArray(_useState13, 2),
72
- sourceList = _useState14[0],
73
- setSourceList = _useState14[1]; //数据源列表
77
+ constantList = _useState14[0],
78
+ setConstantList = _useState14[1]; //常量列表
74
79
  var _useState15 = useState([]),
75
80
  _useState16 = _slicedToArray(_useState15, 2),
76
- constantList = _useState16[0],
77
- setConstantList = _useState16[1]; //常量列表
78
- var _useState17 = useState([]),
81
+ formulaTemplates = _useState16[0],
82
+ _setFormulaTemplates = _useState16[1]; //公式配置数组
83
+ var _useState17 = useState(false),
79
84
  _useState18 = _slicedToArray(_useState17, 2),
80
- formulaTemplates = _useState18[0],
81
- _setFormulaTemplates = _useState18[1]; //公式配置数组
85
+ ignoreGroupByType = _useState18[0],
86
+ setIgnoreGroupByType = _useState18[1]; // 忽略groupBy类型
82
87
  var _useState19 = useState(false),
83
88
  _useState20 = _slicedToArray(_useState19, 2),
84
- ignoreGroupByType = _useState20[0],
85
- setIgnoreGroupByType = _useState20[1]; // 忽略groupBy类型
86
- var _useState21 = useState(false),
89
+ filterCustomType = _useState20[0],
90
+ setfilterCustomType = _useState20[1]; // 过滤器自定义类型
91
+ var _useState21 = useState({}),
87
92
  _useState22 = _slicedToArray(_useState21, 2),
88
- filterCustomType = _useState22[0],
89
- setfilterCustomType = _useState22[1]; // 过滤器自定义类型
93
+ _cacheSource2TableMap = _useState22[0],
94
+ set_cacheSource2TableMap = _useState22[1]; //数据源id 对应数据集列表
90
95
  var _useState23 = useState({}),
91
96
  _useState24 = _slicedToArray(_useState23, 2),
92
- _cacheSource2TableMap = _useState24[0],
93
- set_cacheSource2TableMap = _useState24[1]; //数据源id 对应数据集列表
94
- var _useState25 = useState({}),
97
+ _cacheColumnsMap = _useState24[0],
98
+ set_cacheColumnsMap = _useState24[1]; //数据源id 对应数据集列表
99
+ var _useState25 = useState(defaultMeta),
95
100
  _useState26 = _slicedToArray(_useState25, 2),
96
- _cacheColumnsMap = _useState26[0],
97
- set_cacheColumnsMap = _useState26[1]; //数据源id 对应数据集列表
98
- var _useState27 = useState(defaultMeta),
99
- _useState28 = _slicedToArray(_useState27, 2),
100
- metaList = _useState28[0],
101
- _setMeta = _useState28[1]; //数据源id 对应数据集列表
102
- var _useState29 = useState({
101
+ metaList = _useState26[0],
102
+ _setMeta = _useState26[1]; //数据源id 对应数据集列表
103
+ var _useState27 = useState({
103
104
  visible: false,
104
105
  node: null,
105
106
  content: null
106
107
  }),
107
- _useState30 = _slicedToArray(_useState29, 2),
108
- popupData = _useState30[0],
109
- setPopup = _useState30[1]; //弹窗
110
- var _useState31 = useState({
108
+ _useState28 = _slicedToArray(_useState27, 2),
109
+ popupData = _useState28[0],
110
+ setPopup = _useState28[1]; //弹窗
111
+ var _useState29 = useState({
111
112
  visible: false,
112
113
  node: null,
113
114
  content: null
114
115
  }),
116
+ _useState30 = _slicedToArray(_useState29, 2),
117
+ popupData2 = _useState30[0],
118
+ setPopup2 = _useState30[1]; //弹窗
119
+ var _useState31 = useState(true),
115
120
  _useState32 = _slicedToArray(_useState31, 2),
116
- popupData2 = _useState32[0],
117
- setPopup2 = _useState32[1]; //弹窗
121
+ popupClosable = _useState32[0],
122
+ setClosable = _useState32[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
118
123
  var _useState33 = useState(true),
119
124
  _useState34 = _slicedToArray(_useState33, 2),
120
- popupClosable = _useState34[0],
121
- setClosable = _useState34[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
122
- var _useState35 = useState(true),
125
+ popupClosable2 = _useState34[0],
126
+ setClosable2 = _useState34[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
127
+ var _useState35 = useState({}),
123
128
  _useState36 = _slicedToArray(_useState35, 2),
124
- popupClosable2 = _useState36[0],
125
- setClosable2 = _useState36[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
126
- var _useState37 = useState({}),
129
+ currentTable = _useState36[0],
130
+ setCurrentTable = _useState36[1]; // 当前存在的表
131
+ var _useState37 = useState(false),
127
132
  _useState38 = _slicedToArray(_useState37, 2),
128
- currentTable = _useState38[0],
129
- setCurrentTable = _useState38[1]; // 当前存在的表
133
+ isExit = _useState38[0],
134
+ setIsExit = _useState38[1]; // 是否是notExit
130
135
  var _useState39 = useState(false),
131
136
  _useState40 = _slicedToArray(_useState39, 2),
132
- isExit = _useState40[0],
133
- setIsExit = _useState40[1]; // 是否是notExit
134
- var _useState41 = useState(false),
137
+ isSubquery = _useState40[0],
138
+ setIsSubquery = _useState40[1]; // 是否是子查询
139
+ var _useState41 = useState(true),
135
140
  _useState42 = _slicedToArray(_useState41, 2),
136
- isSubquery = _useState42[0],
137
- setIsSubquery = _useState42[1]; // 是否是子查询
141
+ tableEnableAlias = _useState42[0],
142
+ setTableEnableAlias = _useState42[1]; // 表名是否开启别名
138
143
  var _useState43 = useState(true),
139
144
  _useState44 = _slicedToArray(_useState43, 2),
140
- tableEnableAlias = _useState44[0],
141
- setTableEnableAlias = _useState44[1]; // 表名是否开启别名
145
+ fieldEnableAlias = _useState44[0],
146
+ setFieldEnableAlias = _useState44[1]; // 字段名是否开启别名
142
147
  var _useState45 = useState(true),
143
148
  _useState46 = _slicedToArray(_useState45, 2),
144
- fieldEnableAlias = _useState46[0],
145
- setFieldEnableAlias = _useState46[1]; // 字段名是否开启别名
149
+ groupByEnableAlias = _useState46[0],
150
+ setGroupByEnableAlias = _useState46[1]; // 聚合是否开启别名
146
151
  var _useState47 = useState(true),
147
152
  _useState48 = _slicedToArray(_useState47, 2),
148
- groupByEnableAlias = _useState48[0],
149
- setGroupByEnableAlias = _useState48[1]; // 聚合是否开启别名
150
- var _useState49 = useState(true),
153
+ isSelectFields = _useState48[0],
154
+ setIsSelectFields = _useState48[1]; // 是否默认勾选字段
155
+ var _useState49 = useState(false),
151
156
  _useState50 = _slicedToArray(_useState49, 2),
152
- isSelectFields = _useState50[0],
153
- setIsSelectFields = _useState50[1]; // 是否默认勾选字段
154
- var _useState51 = useState(false),
157
+ tableFlat = _useState50[0],
158
+ setTableFlat = _useState50[1]; // 是否平铺数据表
159
+ var _useState51 = useState([]),
155
160
  _useState52 = _slicedToArray(_useState51, 2),
156
- tableFlat = _useState52[0],
157
- setTableFlat = _useState52[1]; // 是否平铺数据表
161
+ sourceTable = _useState52[0],
162
+ setSourceTable = _useState52[1];
158
163
  var _useState53 = useState([]),
159
164
  _useState54 = _slicedToArray(_useState53, 2),
160
- sourceTable = _useState54[0],
161
- setSourceTable = _useState54[1];
165
+ operatorList = _useState54[0],
166
+ setOperatorList = _useState54[1]; // 操作符
162
167
  var _useState55 = useState([]),
163
168
  _useState56 = _slicedToArray(_useState55, 2),
164
- operatorList = _useState56[0],
165
- setOperatorList = _useState56[1]; // 操作符
166
- var _useState57 = useState([]),
169
+ copyType = _useState56[0],
170
+ setCopyType = _useState56[1]; // 复制类型
171
+ var _useState57 = useState(false),
167
172
  _useState58 = _slicedToArray(_useState57, 2),
168
- copyType = _useState58[0],
169
- setCopyType = _useState58[1]; // 复制类型
173
+ metabaseCopy = _useState58[0],
174
+ setMetabaseCopy = _useState58[1]; // 是否开启复制功能
170
175
  var _useState59 = useState(false),
171
176
  _useState60 = _slicedToArray(_useState59, 2),
172
- metabaseCopy = _useState60[0],
173
- setMetabaseCopy = _useState60[1]; // 是否开启复制功能
174
- var _useState61 = useState(false),
177
+ moduleDiff = _useState60[0],
178
+ setModuleDiff = _useState60[1]; // 是否开启模块比对功能
179
+ var _useState61 = useState([]),
175
180
  _useState62 = _slicedToArray(_useState61, 2),
176
- moduleDiff = _useState62[0],
177
- setModuleDiff = _useState62[1]; // 是否开启模块比对功能
178
- var _useState63 = useState([]),
181
+ sourceData = _useState62[0],
182
+ setSourceData = _useState62[1]; // 原始数据
183
+ var _useState63 = useState(false),
179
184
  _useState64 = _slicedToArray(_useState63, 2),
180
- sourceData = _useState64[0],
181
- setSourceData = _useState64[1]; // 原始数据
185
+ moduleCopy = _useState64[0],
186
+ setModuleCopy = _useState64[1]; // 是否开启模块复制功能
182
187
  var _useState65 = useState(false),
183
188
  _useState66 = _slicedToArray(_useState65, 2),
184
- moduleCopy = _useState66[0],
185
- setModuleCopy = _useState66[1]; // 是否开启模块复制功能
189
+ isMetabaseCopy = _useState66[0],
190
+ setIsMetabaseCopy = _useState66[1]; // 是否开启勾选组复制
186
191
  var _useState67 = useState(false),
187
192
  _useState68 = _slicedToArray(_useState67, 2),
188
- isMetabaseCopy = _useState68[0],
189
- setIsMetabaseCopy = _useState68[1]; // 是否开启勾选组复制
190
- var _useState69 = useState(false),
193
+ joinAliasConflictCheck = _useState68[0],
194
+ setJoinAliasConflictCheck = _useState68[1]; // 是否开启关联别名冲突检测
195
+ var _useState69 = useState([]),
191
196
  _useState70 = _slicedToArray(_useState69, 2),
192
- joinAliasConflictCheck = _useState70[0],
193
- setJoinAliasConflictCheck = _useState70[1]; // 是否开启关联别名冲突检测
194
- var _useState71 = useState([]),
197
+ existsError = _useState70[0],
198
+ setExistsError = _useState70[1]; // exists 的错误字段
199
+ var _useState71 = useState(storage._metabaseCopyModule || []),
195
200
  _useState72 = _slicedToArray(_useState71, 2),
196
- existsError = _useState72[0],
197
- setExistsError = _useState72[1]; // exists 的错误字段
198
- var _useState73 = useState(storage._metabaseCopyModule || []),
199
- _useState74 = _slicedToArray(_useState73, 2),
200
- metabaseCopyModule = _useState74[0],
201
- setMetabaseCopyModule = _useState74[1]; // 复制的内容
201
+ metabaseCopyModule = _useState72[0],
202
+ setMetabaseCopyModule = _useState72[1]; // 复制的内容
202
203
  var setFormulaTemplates = function setFormulaTemplates(data) {
203
204
  var newData = data === null || data === void 0 ? void 0 : data.map(function (v) {
204
205
  var children = v.children.map(function (vv) {
@@ -234,22 +235,22 @@ var useStore = function useStore() {
234
235
  var setExistsErrorFn = /*#__PURE__*/function () {
235
236
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(fn, value) {
236
237
  var data;
237
- return _regeneratorRuntime.wrap(function _callee$(_context) {
238
+ return _regeneratorRuntime.wrap(function (_context) {
238
239
  while (1) switch (_context.prev = _context.next) {
239
240
  case 0:
240
241
  if (!(!value || value.length < 1)) {
241
- _context.next = 3;
242
+ _context.next = 1;
242
243
  break;
243
244
  }
244
245
  setExistsError([]);
245
246
  return _context.abrupt("return");
246
- case 3:
247
- _context.next = 5;
247
+ case 1:
248
+ _context.next = 2;
248
249
  return fn(value);
249
- case 5:
250
+ case 2:
250
251
  data = _context.sent;
251
252
  setExistsError(data || []);
252
- case 7:
253
+ case 3:
253
254
  case "end":
254
255
  return _context.stop();
255
256
  }
@@ -266,20 +267,20 @@ var useStore = function useStore() {
266
267
  newCode,
267
268
  data,
268
269
  _args2 = arguments;
269
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
270
+ return _regeneratorRuntime.wrap(function (_context2) {
270
271
  while (1) switch (_context2.prev = _context2.next) {
271
272
  case 0:
272
273
  oldCode = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : [];
273
274
  newCode = _args2.length > 1 ? _args2[1] : undefined;
274
- _context2.next = 4;
275
+ _context2.next = 1;
275
276
  return fetchDiffFn.current({
276
277
  oldCode: oldCode,
277
278
  newCode: newCode
278
279
  });
279
- case 4:
280
+ case 1:
280
281
  data = _context2.sent;
281
282
  return _context2.abrupt("return", data);
282
- case 6:
283
+ case 2:
283
284
  case "end":
284
285
  return _context2.stop();
285
286
  }
@@ -329,24 +330,24 @@ var useStore = function useStore() {
329
330
  var getSourceTable = /*#__PURE__*/function () {
330
331
  var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(source) {
331
332
  var results;
332
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
333
+ return _regeneratorRuntime.wrap(function (_context4) {
333
334
  while (1) switch (_context4.prev = _context4.next) {
334
335
  case 0:
335
- _context4.next = 2;
336
+ _context4.next = 1;
336
337
  return Promise.all(source.map(/*#__PURE__*/function () {
337
338
  var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(v) {
338
339
  var tables;
339
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
340
+ return _regeneratorRuntime.wrap(function (_context3) {
340
341
  while (1) switch (_context3.prev = _context3.next) {
341
342
  case 0:
342
- _context3.next = 2;
343
+ _context3.next = 1;
343
344
  return fetchDataset(v.datasourceId);
344
- case 2:
345
+ case 1:
345
346
  tables = _context3.sent;
346
347
  return _context3.abrupt("return", _objectSpread(_objectSpread({}, v), {}, {
347
348
  children: tables
348
349
  }));
349
- case 4:
350
+ case 2:
350
351
  case "end":
351
352
  return _context3.stop();
352
353
  }
@@ -356,10 +357,10 @@ var useStore = function useStore() {
356
357
  return _ref4.apply(this, arguments);
357
358
  };
358
359
  }()));
359
- case 2:
360
+ case 1:
360
361
  results = _context4.sent;
361
362
  setSourceTable(results || []);
362
- case 4:
363
+ case 2:
363
364
  case "end":
364
365
  return _context4.stop();
365
366
  }
@@ -387,25 +388,25 @@ var useStore = function useStore() {
387
388
  var fetchDataset = /*#__PURE__*/function () {
388
389
  var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(datasourceId) {
389
390
  var tables, _tables;
390
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
391
+ return _regeneratorRuntime.wrap(function (_context5) {
391
392
  while (1) switch (_context5.prev = _context5.next) {
392
393
  case 0:
393
394
  tables = getDataset(datasourceId);
394
395
  if (!tables.length) {
395
- _context5.next = 3;
396
+ _context5.next = 1;
396
397
  break;
397
398
  }
398
399
  return _context5.abrupt("return", tables);
399
- case 3:
400
- _context5.next = 5;
400
+ case 1:
401
+ _context5.next = 2;
401
402
  return fetchDatasetFn.current(datasourceId, {
402
403
  isExit: isExit
403
404
  });
404
- case 5:
405
+ case 2:
405
406
  _tables = _context5.sent;
406
407
  setDataset(datasourceId, _tables);
407
408
  return _context5.abrupt("return", _tables);
408
- case 8:
409
+ case 3:
409
410
  case "end":
410
411
  return _context5.stop();
411
412
  }
@@ -438,7 +439,7 @@ var useStore = function useStore() {
438
439
  columns,
439
440
  _columns,
440
441
  _args6 = arguments;
441
- return _regeneratorRuntime.wrap(function _callee6$(_context6) {
442
+ return _regeneratorRuntime.wrap(function (_context6) {
442
443
  while (1) switch (_context6.prev = _context6.next) {
443
444
  case 0:
444
445
  oldColumns = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : [];
@@ -456,7 +457,7 @@ var useStore = function useStore() {
456
457
  }).filter(function (v) {
457
458
  return v;
458
459
  });
459
- if (_isSubquery) {
460
+ if (_isSubquery && oldColumns.length < 1) {
460
461
  selectId = [];
461
462
  isSelect = false;
462
463
  }
@@ -464,17 +465,17 @@ var useStore = function useStore() {
464
465
  tableName = table.name;
465
466
  columns = getColumns(tableName);
466
467
  if (columns.length) {
467
- _context6.next = 16;
468
+ _context6.next = 2;
468
469
  break;
469
470
  }
470
- _context6.next = 14;
471
+ _context6.next = 1;
471
472
  return fetchColumnsFn.current(extra, datasourceId, {
472
473
  isExit: _isExit
473
474
  });
474
- case 14:
475
+ case 1:
475
476
  columns = _context6.sent;
476
477
  setColumns(tableName, columns);
477
- case 16:
478
+ case 2:
478
479
  _columns = (_columns2 = columns) === null || _columns2 === void 0 ? void 0 : _columns2.map(function (v) {
479
480
  var select = selectId.includes(v.id);
480
481
  var obj = {};
@@ -485,7 +486,7 @@ var useStore = function useStore() {
485
486
  });
486
487
  });
487
488
  typeof callback === 'function' && callback(_columns);
488
- case 18:
489
+ case 3:
489
490
  case "end":
490
491
  return _context6.stop();
491
492
  }
@@ -502,7 +503,7 @@ var useStore = function useStore() {
502
503
  newMeta,
503
504
  isChange,
504
505
  _args7 = arguments;
505
- return _regeneratorRuntime.wrap(function _callee7$(_context7) {
506
+ return _regeneratorRuntime.wrap(function (_context7) {
506
507
  while (1) switch (_context7.prev = _context7.next) {
507
508
  case 0:
508
509
  changeObj = _args7.length > 2 && _args7[2] !== undefined ? _args7[2] : {};
@@ -514,22 +515,22 @@ var useStore = function useStore() {
514
515
  }
515
516
  // 过滤掉初始化
516
517
  if (!(changeObj === 'init')) {
517
- _context7.next = 6;
518
+ _context7.next = 1;
518
519
  break;
519
520
  }
520
521
  return _context7.abrupt("return");
521
- case 6:
522
- _context7.next = 8;
522
+ case 1:
523
+ _context7.next = 2;
523
524
  return fetchChangeFn.current(splitByUnion(_metaList), changeObj, {
524
525
  isExit: isExit
525
526
  });
526
- case 8:
527
+ case 2:
527
528
  isChange = _context7.sent;
528
529
  // 是否还原
529
530
  if (isChange === false) {
530
531
  _setMeta(_metaList);
531
532
  }
532
- case 10:
533
+ case 3:
533
534
  case "end":
534
535
  return _context7.stop();
535
536
  }
@@ -828,49 +829,47 @@ var useStore = function useStore() {
828
829
  }
829
830
  return item;
830
831
  };
831
- // 检查粘贴位置上下级的 table1 是否与被粘贴项的 table1 有相同的 alias
832
- var checkTable1Conflict = function checkTable1Conflict(objList, index, groupIndex) {
833
- var _metaList$groupIndex, _objList$;
832
+ // 检查所有同级 joinData table1.id + table2.id 组合是否冲突
833
+ var checkTable1Conflict = function checkTable1Conflict(objList, _index, groupIndex) {
834
+ var _metaList$groupIndex;
834
835
  if (!objList || objList.length === 0) return {
835
836
  hasConflict: false
836
837
  };
837
838
  var groupList = ((_metaList$groupIndex = metaList[groupIndex]) === null || _metaList$groupIndex === void 0 ? void 0 : _metaList$groupIndex.list) || [];
838
- // 获取被粘贴项的 table1 alias
839
- var pastedTable1Alias = (_objList$ = objList[0]) === null || _objList$ === void 0 || (_objList$ = _objList$.table1) === null || _objList$ === void 0 ? void 0 : _objList$.alias;
840
- if (!pastedTable1Alias) return {
841
- hasConflict: false
839
+ // 获取所有同级 joinData 的 table1.id + table2.id 组合
840
+ var getJoinKey = function getJoinKey(table1, table2) {
841
+ return "".concat((table1 === null || table1 === void 0 ? void 0 : table1.id) || '', "_").concat((table2 === null || table2 === void 0 ? void 0 : table2.id) || '');
842
842
  };
843
- // 检查上下级的 table1 和 table2 alias
844
- var checkItem = function checkItem(item) {
845
- if (!item) return undefined;
846
- if (item.type === TypeEnum.joinData) {
847
- var _item$table, _item$table2;
848
- if (((_item$table = item.table1) === null || _item$table === void 0 ? void 0 : _item$table.alias) === pastedTable1Alias) return item.table1.alias;
849
- if (((_item$table2 = item.table2) === null || _item$table2 === void 0 ? void 0 : _item$table2.alias) === pastedTable1Alias) return item.table2.alias;
843
+ // 收集已存在的 joinData 组合
844
+ var existingJoinKeys = new Set();
845
+ groupList.forEach(function (item) {
846
+ if (item.type === TypeEnum.joinData && item.table1 && item.table2) {
847
+ existingJoinKeys.add(getJoinKey(item.table1, item.table2));
850
848
  }
851
- if (item.type === TypeEnum.data) {
852
- var _item$table3;
853
- if (((_item$table3 = item.table) === null || _item$table3 === void 0 ? void 0 : _item$table3.alias) === pastedTable1Alias) return item.table.alias;
849
+ });
850
+ // 检查每个被粘贴项的组合是否已存在
851
+ var _iterator = _createForOfIteratorHelper(objList),
852
+ _step;
853
+ try {
854
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
855
+ var pastedItem = _step.value;
856
+ if (pastedItem.type !== TypeEnum.joinData || !pastedItem.table1 || !pastedItem.table2) {
857
+ continue;
858
+ }
859
+ var pastedKey = getJoinKey(pastedItem.table1, pastedItem.table2);
860
+ if (existingJoinKeys.has(pastedKey)) {
861
+ var _pastedItem$table, _pastedItem$table2;
862
+ return {
863
+ hasConflict: true,
864
+ conflictingAlias: (_pastedItem$table = pastedItem.table2) === null || _pastedItem$table === void 0 ? void 0 : _pastedItem$table.alias,
865
+ conflictingId: (_pastedItem$table2 = pastedItem.table2) === null || _pastedItem$table2 === void 0 ? void 0 : _pastedItem$table2.id
866
+ };
867
+ }
854
868
  }
855
- return undefined;
856
- };
857
- // 检查上邻(index - 1 位置)
858
- var prevItem = groupList[index - 1];
859
- var prevConflict = checkItem(prevItem);
860
- if (prevConflict) {
861
- return {
862
- hasConflict: true,
863
- conflictingAlias: pastedTable1Alias
864
- };
865
- }
866
- // 检查下邻(index 位置,即被插入位置的原元素)
867
- var nextItem = groupList[index];
868
- var nextConflict = checkItem(nextItem);
869
- if (nextConflict) {
870
- return {
871
- hasConflict: true,
872
- conflictingAlias: pastedTable1Alias
873
- };
869
+ } catch (err) {
870
+ _iterator.e(err);
871
+ } finally {
872
+ _iterator.f();
874
873
  }
875
874
  return {
876
875
  hasConflict: false
@@ -597,9 +597,9 @@ var _handleNesting = function handleNesting(data) {
597
597
  var customColumnsConstants = [];
598
598
  var handleCustomColumn = function handleCustomColumn(data) {
599
599
  return data.map(function (it) {
600
- var _handleBaseType2Sql10 = _handleBaseType2Sql8(it.formulaList, db),
601
- field_sql = _handleBaseType2Sql10.sql,
602
- constants = _handleBaseType2Sql10.constants;
600
+ var _handleBaseType2Sql0 = _handleBaseType2Sql8(it.formulaList, db),
601
+ field_sql = _handleBaseType2Sql0.sql,
602
+ constants = _handleBaseType2Sql0.constants;
603
603
  customColumnsConstants.push.apply(customColumnsConstants, _toConsumableArray(constants));
604
604
  return {
605
605
  field_sql: "".concat(field_sql, " as ").concat(it.name),
@@ -614,9 +614,9 @@ var _handleNesting = function handleNesting(data) {
614
614
  obj.customColumnsConstants = customColumnsConstants;
615
615
  }
616
616
  if (filterData && filterData.filter.length) {
617
- var _handleBaseType2Sql11 = _handleBaseType2Sql8(filterData.filter, db),
618
- sql = _handleBaseType2Sql11.sql,
619
- constants = _handleBaseType2Sql11.constants;
617
+ var _handleBaseType2Sql1 = _handleBaseType2Sql8(filterData.filter, db),
618
+ sql = _handleBaseType2Sql1.sql,
619
+ constants = _handleBaseType2Sql1.constants;
620
620
  obj.filters = 'WHERE ' + sql;
621
621
  obj.filtersConstants = constants;
622
622
  }
@@ -661,8 +661,8 @@ var _handleNesting = function handleNesting(data) {
661
661
  }
662
662
  if (sortData && sortData.sort.length) {
663
663
  obj.orderInfos = "ORDER BY ".concat(sortData.sort.map(function (v) {
664
- var _handleBaseType2Sql12 = _handleBaseType2Sql8(v.expression, db),
665
- sql = _handleBaseType2Sql12.sql;
664
+ var _handleBaseType2Sql10 = _handleBaseType2Sql8(v.expression, db),
665
+ sql = _handleBaseType2Sql10.sql;
666
666
  return "".concat(sql, " ").concat(v.sort);
667
667
  }).join(', '));
668
668
  }
package/lib/es/utils.js CHANGED
@@ -307,7 +307,7 @@ var _changeAlias = function changeAlias(items, val, type) {
307
307
  });
308
308
  };
309
309
  export function isValidSQLAlias(str) {
310
- if (!str) return false;
310
+ if (!str) return true;
311
311
  var regex = /^[a-zA-Z][a-zA-Z0-9_]{0,29}$/;
312
312
  return regex.test(str);
313
313
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gingkoo/pandora-metabase",
3
- "version": "1.0.108",
3
+ "version": "1.0.110",
4
4
  "description": "",
5
5
  "main": "lib/es/index.js",
6
6
  "module": "lib/es/index.js",