@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
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = exports.SummarizeAlias = void 0;
8
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
8
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
9
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
10
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
@@ -66,145 +67,145 @@ var useStore = function useStore() {
66
67
  toolbar = _useState8[0],
67
68
  setToolbar = _useState8[1]; //工具列表
68
69
  var _useState9 = (0, _react.useState)('${name}'),
69
- _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
70
- fieldNameTpl = _useState10[0],
71
- setFieldNameTpl = _useState10[1]; //显示字段
72
- var _useState11 = (0, _react.useState)('${name}'),
70
+ _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
71
+ fieldNameTpl = _useState0[0],
72
+ setFieldNameTpl = _useState0[1]; //显示字段
73
+ var _useState1 = (0, _react.useState)('${name}'),
74
+ _useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
75
+ tableNameTpl = _useState10[0],
76
+ setTableNameTpl = _useState10[1]; //显示字段
77
+ var _useState11 = (0, _react.useState)([]),
73
78
  _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
74
- tableNameTpl = _useState12[0],
75
- setTableNameTpl = _useState12[1]; //显示字段
79
+ sourceList = _useState12[0],
80
+ setSourceList = _useState12[1]; //数据源列表
76
81
  var _useState13 = (0, _react.useState)([]),
77
82
  _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
78
- sourceList = _useState14[0],
79
- setSourceList = _useState14[1]; //数据源列表
83
+ constantList = _useState14[0],
84
+ setConstantList = _useState14[1]; //常量列表
80
85
  var _useState15 = (0, _react.useState)([]),
81
86
  _useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
82
- constantList = _useState16[0],
83
- setConstantList = _useState16[1]; //常量列表
84
- var _useState17 = (0, _react.useState)([]),
87
+ formulaTemplates = _useState16[0],
88
+ _setFormulaTemplates = _useState16[1]; //公式配置数组
89
+ var _useState17 = (0, _react.useState)(false),
85
90
  _useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
86
- formulaTemplates = _useState18[0],
87
- _setFormulaTemplates = _useState18[1]; //公式配置数组
91
+ ignoreGroupByType = _useState18[0],
92
+ setIgnoreGroupByType = _useState18[1]; // 忽略groupBy类型
88
93
  var _useState19 = (0, _react.useState)(false),
89
94
  _useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
90
- ignoreGroupByType = _useState20[0],
91
- setIgnoreGroupByType = _useState20[1]; // 忽略groupBy类型
92
- var _useState21 = (0, _react.useState)(false),
95
+ filterCustomType = _useState20[0],
96
+ setfilterCustomType = _useState20[1]; // 过滤器自定义类型
97
+ var _useState21 = (0, _react.useState)({}),
93
98
  _useState22 = (0, _slicedToArray2["default"])(_useState21, 2),
94
- filterCustomType = _useState22[0],
95
- setfilterCustomType = _useState22[1]; // 过滤器自定义类型
99
+ _cacheSource2TableMap = _useState22[0],
100
+ set_cacheSource2TableMap = _useState22[1]; //数据源id 对应数据集列表
96
101
  var _useState23 = (0, _react.useState)({}),
97
102
  _useState24 = (0, _slicedToArray2["default"])(_useState23, 2),
98
- _cacheSource2TableMap = _useState24[0],
99
- set_cacheSource2TableMap = _useState24[1]; //数据源id 对应数据集列表
100
- var _useState25 = (0, _react.useState)({}),
103
+ _cacheColumnsMap = _useState24[0],
104
+ set_cacheColumnsMap = _useState24[1]; //数据源id 对应数据集列表
105
+ var _useState25 = (0, _react.useState)(defaultMeta),
101
106
  _useState26 = (0, _slicedToArray2["default"])(_useState25, 2),
102
- _cacheColumnsMap = _useState26[0],
103
- set_cacheColumnsMap = _useState26[1]; //数据源id 对应数据集列表
104
- var _useState27 = (0, _react.useState)(defaultMeta),
105
- _useState28 = (0, _slicedToArray2["default"])(_useState27, 2),
106
- metaList = _useState28[0],
107
- _setMeta = _useState28[1]; //数据源id 对应数据集列表
108
- var _useState29 = (0, _react.useState)({
107
+ metaList = _useState26[0],
108
+ _setMeta = _useState26[1]; //数据源id 对应数据集列表
109
+ var _useState27 = (0, _react.useState)({
109
110
  visible: false,
110
111
  node: null,
111
112
  content: null
112
113
  }),
113
- _useState30 = (0, _slicedToArray2["default"])(_useState29, 2),
114
- popupData = _useState30[0],
115
- setPopup = _useState30[1]; //弹窗
116
- var _useState31 = (0, _react.useState)({
114
+ _useState28 = (0, _slicedToArray2["default"])(_useState27, 2),
115
+ popupData = _useState28[0],
116
+ setPopup = _useState28[1]; //弹窗
117
+ var _useState29 = (0, _react.useState)({
117
118
  visible: false,
118
119
  node: null,
119
120
  content: null
120
121
  }),
122
+ _useState30 = (0, _slicedToArray2["default"])(_useState29, 2),
123
+ popupData2 = _useState30[0],
124
+ setPopup2 = _useState30[1]; //弹窗
125
+ var _useState31 = (0, _react.useState)(true),
121
126
  _useState32 = (0, _slicedToArray2["default"])(_useState31, 2),
122
- popupData2 = _useState32[0],
123
- setPopup2 = _useState32[1]; //弹窗
127
+ popupClosable = _useState32[0],
128
+ setClosable = _useState32[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
124
129
  var _useState33 = (0, _react.useState)(true),
125
130
  _useState34 = (0, _slicedToArray2["default"])(_useState33, 2),
126
- popupClosable = _useState34[0],
127
- setClosable = _useState34[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
128
- var _useState35 = (0, _react.useState)(true),
131
+ popupClosable2 = _useState34[0],
132
+ setClosable2 = _useState34[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
133
+ var _useState35 = (0, _react.useState)({}),
129
134
  _useState36 = (0, _slicedToArray2["default"])(_useState35, 2),
130
- popupClosable2 = _useState36[0],
131
- setClosable2 = _useState36[1]; //是否可关闭 如果弹框里面再弹框 则不可关闭
132
- var _useState37 = (0, _react.useState)({}),
135
+ currentTable = _useState36[0],
136
+ setCurrentTable = _useState36[1]; // 当前存在的表
137
+ var _useState37 = (0, _react.useState)(false),
133
138
  _useState38 = (0, _slicedToArray2["default"])(_useState37, 2),
134
- currentTable = _useState38[0],
135
- setCurrentTable = _useState38[1]; // 当前存在的表
139
+ isExit = _useState38[0],
140
+ setIsExit = _useState38[1]; // 是否是notExit
136
141
  var _useState39 = (0, _react.useState)(false),
137
142
  _useState40 = (0, _slicedToArray2["default"])(_useState39, 2),
138
- isExit = _useState40[0],
139
- setIsExit = _useState40[1]; // 是否是notExit
140
- var _useState41 = (0, _react.useState)(false),
143
+ isSubquery = _useState40[0],
144
+ setIsSubquery = _useState40[1]; // 是否是子查询
145
+ var _useState41 = (0, _react.useState)(true),
141
146
  _useState42 = (0, _slicedToArray2["default"])(_useState41, 2),
142
- isSubquery = _useState42[0],
143
- setIsSubquery = _useState42[1]; // 是否是子查询
147
+ tableEnableAlias = _useState42[0],
148
+ setTableEnableAlias = _useState42[1]; // 表名是否开启别名
144
149
  var _useState43 = (0, _react.useState)(true),
145
150
  _useState44 = (0, _slicedToArray2["default"])(_useState43, 2),
146
- tableEnableAlias = _useState44[0],
147
- setTableEnableAlias = _useState44[1]; // 表名是否开启别名
151
+ fieldEnableAlias = _useState44[0],
152
+ setFieldEnableAlias = _useState44[1]; // 字段名是否开启别名
148
153
  var _useState45 = (0, _react.useState)(true),
149
154
  _useState46 = (0, _slicedToArray2["default"])(_useState45, 2),
150
- fieldEnableAlias = _useState46[0],
151
- setFieldEnableAlias = _useState46[1]; // 字段名是否开启别名
155
+ groupByEnableAlias = _useState46[0],
156
+ setGroupByEnableAlias = _useState46[1]; // 聚合是否开启别名
152
157
  var _useState47 = (0, _react.useState)(true),
153
158
  _useState48 = (0, _slicedToArray2["default"])(_useState47, 2),
154
- groupByEnableAlias = _useState48[0],
155
- setGroupByEnableAlias = _useState48[1]; // 聚合是否开启别名
156
- var _useState49 = (0, _react.useState)(true),
159
+ isSelectFields = _useState48[0],
160
+ setIsSelectFields = _useState48[1]; // 是否默认勾选字段
161
+ var _useState49 = (0, _react.useState)(false),
157
162
  _useState50 = (0, _slicedToArray2["default"])(_useState49, 2),
158
- isSelectFields = _useState50[0],
159
- setIsSelectFields = _useState50[1]; // 是否默认勾选字段
160
- var _useState51 = (0, _react.useState)(false),
163
+ tableFlat = _useState50[0],
164
+ setTableFlat = _useState50[1]; // 是否平铺数据表
165
+ var _useState51 = (0, _react.useState)([]),
161
166
  _useState52 = (0, _slicedToArray2["default"])(_useState51, 2),
162
- tableFlat = _useState52[0],
163
- setTableFlat = _useState52[1]; // 是否平铺数据表
167
+ sourceTable = _useState52[0],
168
+ setSourceTable = _useState52[1];
164
169
  var _useState53 = (0, _react.useState)([]),
165
170
  _useState54 = (0, _slicedToArray2["default"])(_useState53, 2),
166
- sourceTable = _useState54[0],
167
- setSourceTable = _useState54[1];
171
+ operatorList = _useState54[0],
172
+ setOperatorList = _useState54[1]; // 操作符
168
173
  var _useState55 = (0, _react.useState)([]),
169
174
  _useState56 = (0, _slicedToArray2["default"])(_useState55, 2),
170
- operatorList = _useState56[0],
171
- setOperatorList = _useState56[1]; // 操作符
172
- var _useState57 = (0, _react.useState)([]),
175
+ copyType = _useState56[0],
176
+ setCopyType = _useState56[1]; // 复制类型
177
+ var _useState57 = (0, _react.useState)(false),
173
178
  _useState58 = (0, _slicedToArray2["default"])(_useState57, 2),
174
- copyType = _useState58[0],
175
- setCopyType = _useState58[1]; // 复制类型
179
+ metabaseCopy = _useState58[0],
180
+ setMetabaseCopy = _useState58[1]; // 是否开启复制功能
176
181
  var _useState59 = (0, _react.useState)(false),
177
182
  _useState60 = (0, _slicedToArray2["default"])(_useState59, 2),
178
- metabaseCopy = _useState60[0],
179
- setMetabaseCopy = _useState60[1]; // 是否开启复制功能
180
- var _useState61 = (0, _react.useState)(false),
183
+ moduleDiff = _useState60[0],
184
+ setModuleDiff = _useState60[1]; // 是否开启模块比对功能
185
+ var _useState61 = (0, _react.useState)([]),
181
186
  _useState62 = (0, _slicedToArray2["default"])(_useState61, 2),
182
- moduleDiff = _useState62[0],
183
- setModuleDiff = _useState62[1]; // 是否开启模块比对功能
184
- var _useState63 = (0, _react.useState)([]),
187
+ sourceData = _useState62[0],
188
+ setSourceData = _useState62[1]; // 原始数据
189
+ var _useState63 = (0, _react.useState)(false),
185
190
  _useState64 = (0, _slicedToArray2["default"])(_useState63, 2),
186
- sourceData = _useState64[0],
187
- setSourceData = _useState64[1]; // 原始数据
191
+ moduleCopy = _useState64[0],
192
+ setModuleCopy = _useState64[1]; // 是否开启模块复制功能
188
193
  var _useState65 = (0, _react.useState)(false),
189
194
  _useState66 = (0, _slicedToArray2["default"])(_useState65, 2),
190
- moduleCopy = _useState66[0],
191
- setModuleCopy = _useState66[1]; // 是否开启模块复制功能
195
+ isMetabaseCopy = _useState66[0],
196
+ setIsMetabaseCopy = _useState66[1]; // 是否开启勾选组复制
192
197
  var _useState67 = (0, _react.useState)(false),
193
198
  _useState68 = (0, _slicedToArray2["default"])(_useState67, 2),
194
- isMetabaseCopy = _useState68[0],
195
- setIsMetabaseCopy = _useState68[1]; // 是否开启勾选组复制
196
- var _useState69 = (0, _react.useState)(false),
199
+ joinAliasConflictCheck = _useState68[0],
200
+ setJoinAliasConflictCheck = _useState68[1]; // 是否开启关联别名冲突检测
201
+ var _useState69 = (0, _react.useState)([]),
197
202
  _useState70 = (0, _slicedToArray2["default"])(_useState69, 2),
198
- joinAliasConflictCheck = _useState70[0],
199
- setJoinAliasConflictCheck = _useState70[1]; // 是否开启关联别名冲突检测
200
- var _useState71 = (0, _react.useState)([]),
203
+ existsError = _useState70[0],
204
+ setExistsError = _useState70[1]; // exists 的错误字段
205
+ var _useState71 = (0, _react.useState)(_storage["default"]._metabaseCopyModule || []),
201
206
  _useState72 = (0, _slicedToArray2["default"])(_useState71, 2),
202
- existsError = _useState72[0],
203
- setExistsError = _useState72[1]; // exists 的错误字段
204
- var _useState73 = (0, _react.useState)(_storage["default"]._metabaseCopyModule || []),
205
- _useState74 = (0, _slicedToArray2["default"])(_useState73, 2),
206
- metabaseCopyModule = _useState74[0],
207
- setMetabaseCopyModule = _useState74[1]; // 复制的内容
207
+ metabaseCopyModule = _useState72[0],
208
+ setMetabaseCopyModule = _useState72[1]; // 复制的内容
208
209
  var setFormulaTemplates = function setFormulaTemplates(data) {
209
210
  var newData = data === null || data === void 0 ? void 0 : data.map(function (v) {
210
211
  var children = v.children.map(function (vv) {
@@ -240,22 +241,22 @@ var useStore = function useStore() {
240
241
  var setExistsErrorFn = /*#__PURE__*/function () {
241
242
  var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(fn, value) {
242
243
  var data;
243
- return _regenerator["default"].wrap(function _callee$(_context) {
244
+ return _regenerator["default"].wrap(function (_context) {
244
245
  while (1) switch (_context.prev = _context.next) {
245
246
  case 0:
246
247
  if (!(!value || value.length < 1)) {
247
- _context.next = 3;
248
+ _context.next = 1;
248
249
  break;
249
250
  }
250
251
  setExistsError([]);
251
252
  return _context.abrupt("return");
252
- case 3:
253
- _context.next = 5;
253
+ case 1:
254
+ _context.next = 2;
254
255
  return fn(value);
255
- case 5:
256
+ case 2:
256
257
  data = _context.sent;
257
258
  setExistsError(data || []);
258
- case 7:
259
+ case 3:
259
260
  case "end":
260
261
  return _context.stop();
261
262
  }
@@ -272,20 +273,20 @@ var useStore = function useStore() {
272
273
  newCode,
273
274
  data,
274
275
  _args2 = arguments;
275
- return _regenerator["default"].wrap(function _callee2$(_context2) {
276
+ return _regenerator["default"].wrap(function (_context2) {
276
277
  while (1) switch (_context2.prev = _context2.next) {
277
278
  case 0:
278
279
  oldCode = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : [];
279
280
  newCode = _args2.length > 1 ? _args2[1] : undefined;
280
- _context2.next = 4;
281
+ _context2.next = 1;
281
282
  return fetchDiffFn.current({
282
283
  oldCode: oldCode,
283
284
  newCode: newCode
284
285
  });
285
- case 4:
286
+ case 1:
286
287
  data = _context2.sent;
287
288
  return _context2.abrupt("return", data);
288
- case 6:
289
+ case 2:
289
290
  case "end":
290
291
  return _context2.stop();
291
292
  }
@@ -335,24 +336,24 @@ var useStore = function useStore() {
335
336
  var getSourceTable = /*#__PURE__*/function () {
336
337
  var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(source) {
337
338
  var results;
338
- return _regenerator["default"].wrap(function _callee4$(_context4) {
339
+ return _regenerator["default"].wrap(function (_context4) {
339
340
  while (1) switch (_context4.prev = _context4.next) {
340
341
  case 0:
341
- _context4.next = 2;
342
+ _context4.next = 1;
342
343
  return Promise.all(source.map(/*#__PURE__*/function () {
343
344
  var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(v) {
344
345
  var tables;
345
- return _regenerator["default"].wrap(function _callee3$(_context3) {
346
+ return _regenerator["default"].wrap(function (_context3) {
346
347
  while (1) switch (_context3.prev = _context3.next) {
347
348
  case 0:
348
- _context3.next = 2;
349
+ _context3.next = 1;
349
350
  return fetchDataset(v.datasourceId);
350
- case 2:
351
+ case 1:
351
352
  tables = _context3.sent;
352
353
  return _context3.abrupt("return", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
353
354
  children: tables
354
355
  }));
355
- case 4:
356
+ case 2:
356
357
  case "end":
357
358
  return _context3.stop();
358
359
  }
@@ -362,10 +363,10 @@ var useStore = function useStore() {
362
363
  return _ref4.apply(this, arguments);
363
364
  };
364
365
  }()));
365
- case 2:
366
+ case 1:
366
367
  results = _context4.sent;
367
368
  setSourceTable(results || []);
368
- case 4:
369
+ case 2:
369
370
  case "end":
370
371
  return _context4.stop();
371
372
  }
@@ -393,25 +394,25 @@ var useStore = function useStore() {
393
394
  var fetchDataset = /*#__PURE__*/function () {
394
395
  var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(datasourceId) {
395
396
  var tables, _tables;
396
- return _regenerator["default"].wrap(function _callee5$(_context5) {
397
+ return _regenerator["default"].wrap(function (_context5) {
397
398
  while (1) switch (_context5.prev = _context5.next) {
398
399
  case 0:
399
400
  tables = getDataset(datasourceId);
400
401
  if (!tables.length) {
401
- _context5.next = 3;
402
+ _context5.next = 1;
402
403
  break;
403
404
  }
404
405
  return _context5.abrupt("return", tables);
405
- case 3:
406
- _context5.next = 5;
406
+ case 1:
407
+ _context5.next = 2;
407
408
  return fetchDatasetFn.current(datasourceId, {
408
409
  isExit: isExit
409
410
  });
410
- case 5:
411
+ case 2:
411
412
  _tables = _context5.sent;
412
413
  setDataset(datasourceId, _tables);
413
414
  return _context5.abrupt("return", _tables);
414
- case 8:
415
+ case 3:
415
416
  case "end":
416
417
  return _context5.stop();
417
418
  }
@@ -444,7 +445,7 @@ var useStore = function useStore() {
444
445
  columns,
445
446
  _columns,
446
447
  _args6 = arguments;
447
- return _regenerator["default"].wrap(function _callee6$(_context6) {
448
+ return _regenerator["default"].wrap(function (_context6) {
448
449
  while (1) switch (_context6.prev = _context6.next) {
449
450
  case 0:
450
451
  oldColumns = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : [];
@@ -462,7 +463,7 @@ var useStore = function useStore() {
462
463
  }).filter(function (v) {
463
464
  return v;
464
465
  });
465
- if (_isSubquery) {
466
+ if (_isSubquery && oldColumns.length < 1) {
466
467
  selectId = [];
467
468
  isSelect = false;
468
469
  }
@@ -470,17 +471,17 @@ var useStore = function useStore() {
470
471
  tableName = table.name;
471
472
  columns = getColumns(tableName);
472
473
  if (columns.length) {
473
- _context6.next = 16;
474
+ _context6.next = 2;
474
475
  break;
475
476
  }
476
- _context6.next = 14;
477
+ _context6.next = 1;
477
478
  return fetchColumnsFn.current(extra, datasourceId, {
478
479
  isExit: _isExit
479
480
  });
480
- case 14:
481
+ case 1:
481
482
  columns = _context6.sent;
482
483
  setColumns(tableName, columns);
483
- case 16:
484
+ case 2:
484
485
  _columns = (_columns2 = columns) === null || _columns2 === void 0 ? void 0 : _columns2.map(function (v) {
485
486
  var select = selectId.includes(v.id);
486
487
  var obj = {};
@@ -491,7 +492,7 @@ var useStore = function useStore() {
491
492
  });
492
493
  });
493
494
  typeof callback === 'function' && callback(_columns);
494
- case 18:
495
+ case 3:
495
496
  case "end":
496
497
  return _context6.stop();
497
498
  }
@@ -508,7 +509,7 @@ var useStore = function useStore() {
508
509
  newMeta,
509
510
  isChange,
510
511
  _args7 = arguments;
511
- return _regenerator["default"].wrap(function _callee7$(_context7) {
512
+ return _regenerator["default"].wrap(function (_context7) {
512
513
  while (1) switch (_context7.prev = _context7.next) {
513
514
  case 0:
514
515
  changeObj = _args7.length > 2 && _args7[2] !== undefined ? _args7[2] : {};
@@ -520,22 +521,22 @@ var useStore = function useStore() {
520
521
  }
521
522
  // 过滤掉初始化
522
523
  if (!(changeObj === 'init')) {
523
- _context7.next = 6;
524
+ _context7.next = 1;
524
525
  break;
525
526
  }
526
527
  return _context7.abrupt("return");
527
- case 6:
528
- _context7.next = 8;
528
+ case 1:
529
+ _context7.next = 2;
529
530
  return fetchChangeFn.current((0, _utils.splitByUnion)(_metaList), changeObj, {
530
531
  isExit: isExit
531
532
  });
532
- case 8:
533
+ case 2:
533
534
  isChange = _context7.sent;
534
535
  // 是否还原
535
536
  if (isChange === false) {
536
537
  _setMeta(_metaList);
537
538
  }
538
- case 10:
539
+ case 3:
539
540
  case "end":
540
541
  return _context7.stop();
541
542
  }
@@ -834,49 +835,47 @@ var useStore = function useStore() {
834
835
  }
835
836
  return item;
836
837
  };
837
- // 检查粘贴位置上下级的 table1 是否与被粘贴项的 table1 有相同的 alias
838
- var checkTable1Conflict = function checkTable1Conflict(objList, index, groupIndex) {
839
- var _metaList$groupIndex, _objList$;
838
+ // 检查所有同级 joinData table1.id + table2.id 组合是否冲突
839
+ var checkTable1Conflict = function checkTable1Conflict(objList, _index, groupIndex) {
840
+ var _metaList$groupIndex;
840
841
  if (!objList || objList.length === 0) return {
841
842
  hasConflict: false
842
843
  };
843
844
  var groupList = ((_metaList$groupIndex = metaList[groupIndex]) === null || _metaList$groupIndex === void 0 ? void 0 : _metaList$groupIndex.list) || [];
844
- // 获取被粘贴项的 table1 alias
845
- var pastedTable1Alias = (_objList$ = objList[0]) === null || _objList$ === void 0 || (_objList$ = _objList$.table1) === null || _objList$ === void 0 ? void 0 : _objList$.alias;
846
- if (!pastedTable1Alias) return {
847
- hasConflict: false
845
+ // 获取所有同级 joinData 的 table1.id + table2.id 组合
846
+ var getJoinKey = function getJoinKey(table1, table2) {
847
+ return "".concat((table1 === null || table1 === void 0 ? void 0 : table1.id) || '', "_").concat((table2 === null || table2 === void 0 ? void 0 : table2.id) || '');
848
848
  };
849
- // 检查上下级的 table1 和 table2 alias
850
- var checkItem = function checkItem(item) {
851
- if (!item) return undefined;
852
- if (item.type === _enum.TypeEnum.joinData) {
853
- var _item$table, _item$table2;
854
- if (((_item$table = item.table1) === null || _item$table === void 0 ? void 0 : _item$table.alias) === pastedTable1Alias) return item.table1.alias;
855
- if (((_item$table2 = item.table2) === null || _item$table2 === void 0 ? void 0 : _item$table2.alias) === pastedTable1Alias) return item.table2.alias;
849
+ // 收集已存在的 joinData 组合
850
+ var existingJoinKeys = new Set();
851
+ groupList.forEach(function (item) {
852
+ if (item.type === _enum.TypeEnum.joinData && item.table1 && item.table2) {
853
+ existingJoinKeys.add(getJoinKey(item.table1, item.table2));
856
854
  }
857
- if (item.type === _enum.TypeEnum.data) {
858
- var _item$table3;
859
- if (((_item$table3 = item.table) === null || _item$table3 === void 0 ? void 0 : _item$table3.alias) === pastedTable1Alias) return item.table.alias;
855
+ });
856
+ // 检查每个被粘贴项的组合是否已存在
857
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(objList),
858
+ _step;
859
+ try {
860
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
861
+ var pastedItem = _step.value;
862
+ if (pastedItem.type !== _enum.TypeEnum.joinData || !pastedItem.table1 || !pastedItem.table2) {
863
+ continue;
864
+ }
865
+ var pastedKey = getJoinKey(pastedItem.table1, pastedItem.table2);
866
+ if (existingJoinKeys.has(pastedKey)) {
867
+ var _pastedItem$table, _pastedItem$table2;
868
+ return {
869
+ hasConflict: true,
870
+ conflictingAlias: (_pastedItem$table = pastedItem.table2) === null || _pastedItem$table === void 0 ? void 0 : _pastedItem$table.alias,
871
+ conflictingId: (_pastedItem$table2 = pastedItem.table2) === null || _pastedItem$table2 === void 0 ? void 0 : _pastedItem$table2.id
872
+ };
873
+ }
860
874
  }
861
- return undefined;
862
- };
863
- // 检查上邻(index - 1 位置)
864
- var prevItem = groupList[index - 1];
865
- var prevConflict = checkItem(prevItem);
866
- if (prevConflict) {
867
- return {
868
- hasConflict: true,
869
- conflictingAlias: pastedTable1Alias
870
- };
871
- }
872
- // 检查下邻(index 位置,即被插入位置的原元素)
873
- var nextItem = groupList[index];
874
- var nextConflict = checkItem(nextItem);
875
- if (nextConflict) {
876
- return {
877
- hasConflict: true,
878
- conflictingAlias: pastedTable1Alias
879
- };
875
+ } catch (err) {
876
+ _iterator.e(err);
877
+ } finally {
878
+ _iterator.f();
880
879
  }
881
880
  return {
882
881
  hasConflict: false
package/lib/cjs/index.js CHANGED
@@ -18,8 +18,7 @@ var _Loading = _interopRequireDefault(require("./common/Loading"));
18
18
  var _metabase = _interopRequireDefault(require("./components/metabase"));
19
19
  var _utils = require("./utils");
20
20
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
21
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
23
22
  // export { restoreStructure, handleSqlStruct, compressionStructure } from './store/helper';
24
23
 
25
24
  /**
@@ -604,9 +604,9 @@ var _handleNesting = function handleNesting(data) {
604
604
  var customColumnsConstants = [];
605
605
  var handleCustomColumn = function handleCustomColumn(data) {
606
606
  return data.map(function (it) {
607
- var _handleBaseType2Sql10 = _handleBaseType2Sql8(it.formulaList, db),
608
- field_sql = _handleBaseType2Sql10.sql,
609
- constants = _handleBaseType2Sql10.constants;
607
+ var _handleBaseType2Sql0 = _handleBaseType2Sql8(it.formulaList, db),
608
+ field_sql = _handleBaseType2Sql0.sql,
609
+ constants = _handleBaseType2Sql0.constants;
610
610
  customColumnsConstants.push.apply(customColumnsConstants, (0, _toConsumableArray2["default"])(constants));
611
611
  return {
612
612
  field_sql: "".concat(field_sql, " as ").concat(it.name),
@@ -621,9 +621,9 @@ var _handleNesting = function handleNesting(data) {
621
621
  obj.customColumnsConstants = customColumnsConstants;
622
622
  }
623
623
  if (filterData && filterData.filter.length) {
624
- var _handleBaseType2Sql11 = _handleBaseType2Sql8(filterData.filter, db),
625
- sql = _handleBaseType2Sql11.sql,
626
- constants = _handleBaseType2Sql11.constants;
624
+ var _handleBaseType2Sql1 = _handleBaseType2Sql8(filterData.filter, db),
625
+ sql = _handleBaseType2Sql1.sql,
626
+ constants = _handleBaseType2Sql1.constants;
627
627
  obj.filters = 'WHERE ' + sql;
628
628
  obj.filtersConstants = constants;
629
629
  }
@@ -668,8 +668,8 @@ var _handleNesting = function handleNesting(data) {
668
668
  }
669
669
  if (sortData && sortData.sort.length) {
670
670
  obj.orderInfos = "ORDER BY ".concat(sortData.sort.map(function (v) {
671
- var _handleBaseType2Sql12 = _handleBaseType2Sql8(v.expression, db),
672
- sql = _handleBaseType2Sql12.sql;
671
+ var _handleBaseType2Sql10 = _handleBaseType2Sql8(v.expression, db),
672
+ sql = _handleBaseType2Sql10.sql;
673
673
  return "".concat(sql, " ").concat(v.sort);
674
674
  }).join(', '));
675
675
  }
package/lib/cjs/utils.js CHANGED
@@ -320,7 +320,7 @@ var _changeAlias = function changeAlias(items, val, type) {
320
320
  });
321
321
  };
322
322
  function isValidSQLAlias(str) {
323
- if (!str) return false;
323
+ if (!str) return true;
324
324
  var regex = /^[a-zA-Z][a-zA-Z0-9_]{0,29}$/;
325
325
  return regex.test(str);
326
326
  }
@@ -51,17 +51,17 @@ var SplitView = React.forwardRef(function (props, ref) {
51
51
  hMaximum = _useState8[0],
52
52
  setHMaximum = _useState8[1];
53
53
  var _useState9 = useState(false),
54
- _useState10 = _slicedToArray(_useState9, 2),
55
- vMinimum = _useState10[0],
56
- setVMinimum = _useState10[1];
57
- var _useState11 = useState(false),
54
+ _useState0 = _slicedToArray(_useState9, 2),
55
+ vMinimum = _useState0[0],
56
+ setVMinimum = _useState0[1];
57
+ var _useState1 = useState(false),
58
+ _useState10 = _slicedToArray(_useState1, 2),
59
+ vMaximum = _useState10[0],
60
+ setVMaximum = _useState10[1];
61
+ var _useState11 = useState(0),
58
62
  _useState12 = _slicedToArray(_useState11, 2),
59
- vMaximum = _useState12[0],
60
- setVMaximum = _useState12[1];
61
- var _useState13 = useState(0),
62
- _useState14 = _slicedToArray(_useState13, 2),
63
- bottomHeight = _useState14[0],
64
- setBottomHeight = _useState14[1];
63
+ bottomHeight = _useState12[0],
64
+ setBottomHeight = _useState12[1];
65
65
  React.useImperativeHandle(ref, function () {
66
66
  return {
67
67
  open: function open() {