@gingkoo/pandora-metabase 1.0.55 → 1.0.56

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.
@@ -9,6 +9,7 @@ import cx from 'classnames';
9
9
  import { __ } from '../../locale';
10
10
  import { findIndex, isError } from '../../utils';
11
11
  import { sleep, flatArray } from '../../utils/helper';
12
+ import { ChangeType } from '../../store/types';
12
13
  import { getHelper } from '../../utils';
13
14
  import { TypeEnum, SQL_COLUMN_TYPE } from '../../store/enum';
14
15
  import CustomEditor from '../../components/dialog/custom-editor';
@@ -95,7 +96,10 @@ var CustomColumn = function CustomColumn(props) {
95
96
  // if(data.name !== value.name){
96
97
  // newMeta = newMeta.filter((v: MetaListType, _i: number)=> _i<=index)
97
98
  // }
98
- store.setMeta(newMeta, groupIndex);
99
+ store.setMeta(newMeta, groupIndex, {
100
+ obj: data,
101
+ type: ChangeType.customColumn
102
+ });
99
103
  closePopup();
100
104
  },
101
105
  onClose: closePopup
@@ -246,7 +250,10 @@ var CustomColumn = function CustomColumn(props) {
246
250
  } else {
247
251
  newMeta[index].customColumn[i] = data;
248
252
  }
249
- store.setMeta(newMeta, groupIndex);
253
+ store.setMeta(newMeta, groupIndex, {
254
+ obj: data,
255
+ type: ChangeType.customColumn
256
+ });
250
257
  try {
251
258
  o.close();
252
259
  } catch (e) {
@@ -274,7 +281,10 @@ var CustomColumn = function CustomColumn(props) {
274
281
  meta: meta,
275
282
  onChange: function onChange(data) {
276
283
  newMeta[index].customColumn.push(data);
277
- store.setMeta(newMeta, groupIndex);
284
+ store.setMeta(newMeta, groupIndex, {
285
+ obj: data,
286
+ type: ChangeType.customColumn
287
+ });
278
288
  closePopup();
279
289
  },
280
290
  onClose: closePopup
@@ -7,6 +7,7 @@ import { uuidv4 } from '../../utils/helper';
7
7
  import { findIndex, getHelper } from '../../utils';
8
8
  import { TypeEnum, SQL_COLUMN_TYPE } from '../../store/enum';
9
9
  import FormulaList from '../dialog/formula-list';
10
+ import { ChangeType } from '../../store/types';
10
11
  import Wrapper from './components/Wrapper';
11
12
  import NextDom from './components/meta-icon';
12
13
  import Header from './components/header';
@@ -140,7 +141,10 @@ var Filter = function Filter(props) {
140
141
  var selectFilter = function selectFilter(val) {
141
142
  var newMeta = store.metaList[groupIndex].list.slice();
142
143
  newMeta[index].filter = val;
143
- store.setMeta(newMeta, groupIndex);
144
+ store.setMeta(newMeta, groupIndex, {
145
+ obj: val,
146
+ type: ChangeType.formula
147
+ });
144
148
  };
145
149
  var getPreColumns = function getPreColumns() {
146
150
  var data = [].concat(_toConsumableArray(getColumns()), _toConsumableArray(cloneDeep(notExistsColumns || [])));
@@ -17,7 +17,7 @@ import { uuidv4, getAlias } from '../../utils/helper';
17
17
  import { __ } from '../../locale';
18
18
  import { findIndex, getSubColumns } from '../../utils';
19
19
  import { TypeEnum, ColumnsPopupThemeEnum, JoinEnum, SQL_COLUMN_TYPE } from '../../store/enum';
20
- import { AtomsTypeEnum } from '../../store/types';
20
+ import { AtomsTypeEnum, ChangeType } from '../../store/types';
21
21
  import { SummarizeAlias } from '../../store/helper';
22
22
  import { getHelper, changeTableAlias, isValidSQLAlias, isError } from '../../utils';
23
23
  import ItemName from './components/item-name';
@@ -377,7 +377,10 @@ var JoinData = function JoinData(props) {
377
377
  onChange: function onChange(data) {
378
378
  var newMetaList = store.metaList[groupIndex].list.slice();
379
379
  newMetaList[index].columns = data;
380
- store.setMeta(newMetaList, groupIndex);
380
+ store.setMeta(newMetaList, groupIndex, {
381
+ obj: data,
382
+ type: ChangeType.field
383
+ });
381
384
  }
382
385
  })
383
386
  });
@@ -486,7 +489,7 @@ var JoinData = function JoinData(props) {
486
489
  }, []);
487
490
  }
488
491
  // // 过滤为table1选中的表
489
- var newMeta = store.metaList[groupIndex].list.slice();
492
+ var newMeta = cloneDeep(store.metaList[groupIndex].list);
490
493
  // if (((newMeta[index] as MetaJoin)[FlagLocation.TABLE_1] as MetaJoin_TalbeType).name) {
491
494
  // data = data.filter((v) => {
492
495
  // return (
@@ -513,8 +516,11 @@ var JoinData = function JoinData(props) {
513
516
  // }
514
517
  // }
515
518
  newMeta[index][table_type] = data;
516
- initExpressions();
517
- store.setMeta(newMeta, groupIndex);
519
+ initExpressions(newMeta);
520
+ store.setMeta(newMeta, groupIndex, {
521
+ obj: data,
522
+ type: ChangeType[table_type]
523
+ });
518
524
  store.setPopup({
519
525
  visible: false
520
526
  });
@@ -542,7 +548,7 @@ var JoinData = function JoinData(props) {
542
548
  var tableName = data.name;
543
549
  if (meta.table2.name !== tableName || meta.table2.datasourceId !== data.datasourceId) {
544
550
  var _store$preProps;
545
- var newMeta = store.metaList[groupIndex].list.slice();
551
+ var newMeta = cloneDeep(store.metaList[groupIndex].list);
546
552
  var alias = getAlias(tableName, newMeta, ((_store$preProps = store.preProps) === null || _store$preProps === void 0 ? void 0 : _store$preProps.notExistsColumns) || []);
547
553
  var _table2 = _objectSpread(_objectSpread({}, data), {}, {
548
554
  name: tableName,
@@ -555,12 +561,15 @@ var JoinData = function JoinData(props) {
555
561
  datasourceName: data.datasourceName
556
562
  });
557
563
  newMeta[index].table2 = _table2;
558
- initExpressions();
564
+ initExpressions(newMeta);
559
565
  store.fetchColumns(_table2, data.datasourceId, [], function (columns) {
560
566
  newMeta[index].columns = columns;
561
567
  // 关联表变了 下面模块全部删除
562
568
  // newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);
563
- // store.setMeta(newMeta, groupIndex);
569
+ store.setMeta(newMeta, groupIndex, {
570
+ obj: data,
571
+ type: ChangeType.table2
572
+ });
564
573
  });
565
574
  }
566
575
  setIsDel(false);
@@ -572,8 +581,8 @@ var JoinData = function JoinData(props) {
572
581
  });
573
582
  }
574
583
  // 切换表后重置数据
575
- function initExpressions() {
576
- var newMeta = store.metaList[groupIndex].list.slice();
584
+ function initExpressions(newMeta) {
585
+ // let newMeta: MetaListType[] = store.metaList[groupIndex].list.slice();
577
586
  if (newMeta[index].expressions && newMeta[index].expressions.length > 0) {
578
587
  return;
579
588
  }
@@ -655,7 +664,10 @@ var JoinData = function JoinData(props) {
655
664
  onChange: function onChange(type) {
656
665
  var newMeta = store.metaList[groupIndex].list.slice();
657
666
  newMeta[index].joinType = type;
658
- store.setMeta(newMeta, groupIndex);
667
+ store.setMeta(newMeta, groupIndex, {
668
+ obj: type,
669
+ type: ChangeType.joinType
670
+ });
659
671
  store.setPopup({
660
672
  visible: false
661
673
  });
@@ -941,7 +953,10 @@ var JoinData = function JoinData(props) {
941
953
  // _ind2
942
954
  // ] as AtomsField
943
955
  // ).quotes = quotes;
944
- store.setMeta(newMeta, groupIndex);
956
+ store.setMeta(newMeta, groupIndex, {
957
+ obj: fields,
958
+ type: ChangeType[_position]
959
+ });
945
960
  }
946
961
  })
947
962
  });
@@ -966,7 +981,10 @@ var JoinData = function JoinData(props) {
966
981
  var index = findIndex(store.metaList[groupIndex].list, meta);
967
982
  var newMeta = store.metaList[groupIndex].list.slice();
968
983
  newMeta[index].expressions[_ind][_position][_ind2].val = curObj.value;
969
- store.setMeta(newMeta, groupIndex);
984
+ store.setMeta(newMeta, groupIndex, {
985
+ obj: val,
986
+ type: ChangeType[_position]
987
+ });
970
988
  }
971
989
  })
972
990
  });
@@ -1072,7 +1090,7 @@ var JoinData = function JoinData(props) {
1072
1090
  isExit = _store$preProps2.isExit,
1073
1091
  toolbar = _store$preProps2.toolbar,
1074
1092
  other = _objectWithoutProperties(_store$preProps2, _excluded);
1075
- var newMeta = store.metaList[groupIndex].list.slice();
1093
+ var newMeta = cloneDeep(store.metaList[groupIndex].list);
1076
1094
  var index = findIndex(store.metaList[groupIndex].list, meta);
1077
1095
  var oldList = cloneDeep(newMeta[index].subquery);
1078
1096
  var _toolbar = subToolbar || toolbar;
@@ -1120,10 +1138,13 @@ var JoinData = function JoinData(props) {
1120
1138
  return _column;
1121
1139
  });
1122
1140
  // (newMeta[index] as MetaJoin).columns = newColumns;
1123
- initExpressions();
1141
+ initExpressions(newMeta);
1124
1142
  // 关联表变了 下面模块全部删除
1125
1143
  // newMeta = newMeta.filter((v: MetaListType, i: number) => i <= index);
1126
- store.setMeta(newMeta, groupIndex);
1144
+ store.setMeta(newMeta, groupIndex, {
1145
+ obj: newList,
1146
+ type: ChangeType.subQuery
1147
+ });
1127
1148
  o.close();
1128
1149
  } catch (e) {
1129
1150
  console.warn(e);
@@ -1184,7 +1205,10 @@ var JoinData = function JoinData(props) {
1184
1205
  newMeta = store.metaList[groupIndex].list.slice();
1185
1206
  newMeta[index].table2.alias = alias;
1186
1207
  newMeta = changeTableAlias(newMeta, newMeta[index].table2);
1187
- store.setMeta(newMeta, groupIndex);
1208
+ store.setMeta(newMeta, groupIndex, {
1209
+ obj: newMeta[index].table2,
1210
+ type: ChangeType.tableAlias
1211
+ });
1188
1212
  case 2:
1189
1213
  case "end":
1190
1214
  return _context2.stop();
@@ -1220,7 +1244,10 @@ var JoinData = function JoinData(props) {
1220
1244
  value: value,
1221
1245
  onChange: function onChange(data) {
1222
1246
  newMeta[index].expressions.splice(i, 1, data);
1223
- store.setMeta(newMeta, groupIndex);
1247
+ store.setMeta(newMeta, groupIndex, {
1248
+ obj: newMeta[index].expressions,
1249
+ type: ChangeType.expressions
1250
+ });
1224
1251
  closePopup();
1225
1252
  }
1226
1253
  })
@@ -1533,7 +1560,7 @@ var JoinData = function JoinData(props) {
1533
1560
  // }}
1534
1561
  // ></Button>
1535
1562
  // </Tooltip>
1536
- , subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table5 = meta.table2) !== null && _meta$table5 !== void 0 && _meta$table5.alias ? "as ".concat((_meta$table6 = meta.table2) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '', " ") : __('SqlQueryBuilder.setSubQuery')]
1563
+ , subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table5 = meta.table2) !== null && _meta$table5 !== void 0 && _meta$table5.alias && store.tableEnableAlias ? "as ".concat((_meta$table6 = meta.table2) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '', " ") : __('SqlQueryBuilder.setSubQuery')]
1537
1564
  }) : _jsxs("div", {
1538
1565
  className: cx("Sqb-TableName", {
1539
1566
  notSelected: !table2Selected
@@ -1607,7 +1634,7 @@ var JoinData = function JoinData(props) {
1607
1634
  // }}
1608
1635
  // ></Button>
1609
1636
  // </Tooltip>
1610
- , table2Selected ? "".concat(meta.table2.datasourceName, ".").concat(meta.table2.name, " ").concat((_meta$table8 = meta.table2) !== null && _meta$table8 !== void 0 && _meta$table8.alias ? "as ".concat((_meta$table9 = meta.table2) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.alias) : '') : __('SqlQueryBuilder.pickTable')]
1637
+ , table2Selected ? "".concat(meta.table2.datasourceName, ".").concat(meta.table2.name, " ").concat((_meta$table8 = meta.table2) !== null && _meta$table8 !== void 0 && _meta$table8.alias && store.tableEnableAlias ? "as ".concat((_meta$table9 = meta.table2) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.alias) : '') : __('SqlQueryBuilder.pickTable')]
1611
1638
  }), store.showSubquery && _jsx(Tooltip, {
1612
1639
  title: __('SqlQueryBuilder.switchSubQuery'),
1613
1640
  children: _jsx(Button, {
@@ -1810,7 +1837,10 @@ var JoinData = function JoinData(props) {
1810
1837
  var newMeta = store.metaList[groupIndex].list.slice();
1811
1838
  newMeta[index].expressions[i].list = data;
1812
1839
  newMeta[index].expressions[i].quotes = _quotes;
1813
- store.setMeta(newMeta, groupIndex);
1840
+ store.setMeta(newMeta, groupIndex, {
1841
+ obj: newMeta[index].expressions,
1842
+ type: ChangeType.expressions
1843
+ });
1814
1844
  }
1815
1845
  }), _jsx(Tooltip, {
1816
1846
  title: __('SqlQueryBuilder.add'),
@@ -6,7 +6,7 @@ import cx from 'classnames';
6
6
  import { __ } from '../../../locale';
7
7
  import { findIndex, getHelper } from '../../../utils';
8
8
  import { TypeEnum, ColumnsPopupThemeEnum, SQL_COLUMN_TYPE } from '../../../store/enum';
9
- import { MetaSummarize_Enum, AtomsTypeEnum } from '../../../store/types';
9
+ import { MetaSummarize_Enum, AtomsTypeEnum, ChangeType } from '../../../store/types';
10
10
  import SelectJoinColumn from '../../dialog/select-join-column';
11
11
  import { Tooltip, Button, Modal, Input, Toast } from '@gingkoo/pandora';
12
12
  import { uuidv4, getAlias } from '../../../utils/helper';
@@ -151,7 +151,10 @@ var GroupBy = function GroupBy(props) {
151
151
  // if (value.quotes !== data.quotes) {
152
152
  // newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);
153
153
  // }
154
- store.setMeta(newMeta, groupIndex);
154
+ store.setMeta(newMeta, groupIndex, {
155
+ obj: newMeta[index].by,
156
+ type: ChangeType.by
157
+ });
155
158
  closePopup();
156
159
  }
157
160
  })
@@ -203,7 +206,10 @@ var GroupBy = function GroupBy(props) {
203
206
  summarizeType: MetaSummarize_Enum.BY
204
207
  });
205
208
  });
206
- store.setMeta(newMeta, groupIndex);
209
+ store.setMeta(newMeta, groupIndex, {
210
+ obj: newMeta[index].by,
211
+ type: ChangeType.by
212
+ });
207
213
  closePopup();
208
214
  }
209
215
  })
@@ -253,7 +259,10 @@ var GroupBy = function GroupBy(props) {
253
259
  newMeta[index].by[i].sql = newMeta[index].by[i].sql.split('AS ')[0] + "AS ".concat(fieldAlias); //修改sql
254
260
  newMeta[index].by[i].fieldAlias = fieldAlias;
255
261
  newMeta = changeFieldAlias(newMeta, newMeta[index].by[i]);
256
- store.setMeta(newMeta, groupIndex);
262
+ store.setMeta(newMeta, groupIndex, {
263
+ obj: newMeta[index].by,
264
+ type: ChangeType.by
265
+ });
257
266
  case 2:
258
267
  case "end":
259
268
  return _context.stop();
@@ -9,7 +9,7 @@ import { TypeEnum, SQL_COLUMN_TYPE } from '../../../store/enum';
9
9
  import { summarizeToSql } from '../../../store/helper';
10
10
  import { Tooltip, Button, Modal, Input, Toast } from '@gingkoo/pandora';
11
11
  import { uuidv4 } from '../../../utils/helper';
12
- import { MetaSummarize_Enum, AtomsTypeEnum } from '../../../store/types';
12
+ import { MetaSummarize_Enum, AtomsTypeEnum, ChangeType } from '../../../store/types';
13
13
  import { changeFieldAlias, isValidSQLAlias, isError } from '../../../utils';
14
14
  import ItemName from '../components/item-name';
15
15
  import { AddIcon, CloseIcon } from '../../icons';
@@ -152,7 +152,10 @@ var SelectIndex = function SelectIndex(props) {
152
152
  // if (value.quotes !== data.quotes) {
153
153
  // newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);
154
154
  // }
155
- store.setMeta(newMeta, groupIndex);
155
+ store.setMeta(newMeta, groupIndex, {
156
+ obj: newMeta[index].group,
157
+ type: ChangeType.group
158
+ });
156
159
  closePopup();
157
160
  }
158
161
  })
@@ -203,7 +206,10 @@ var SelectIndex = function SelectIndex(props) {
203
206
  summarizeType: MetaSummarize_Enum.GROUP
204
207
  });
205
208
  });
206
- store.setMeta(newMeta, groupIndex);
209
+ store.setMeta(newMeta, groupIndex, {
210
+ obj: newMeta[index].group,
211
+ type: ChangeType.group
212
+ });
207
213
  closePopup();
208
214
  }
209
215
  })
@@ -254,7 +260,10 @@ var SelectIndex = function SelectIndex(props) {
254
260
  newMeta[index].group[i].fieldAlias = fieldAlias;
255
261
  newMeta[index].group[i].sql = newMeta[index].group[i].sql.split('AS ')[0] + "AS ".concat(fieldAlias); //修改sql
256
262
  newMeta = changeFieldAlias(newMeta, newMeta[index].group[i]);
257
- store.setMeta(newMeta, groupIndex);
263
+ store.setMeta(newMeta, groupIndex, {
264
+ obj: newMeta[index].group,
265
+ type: ChangeType.group
266
+ });
258
267
  case 2:
259
268
  case "end":
260
269
  return _context.stop();
@@ -9,6 +9,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
9
9
  import { useEffect, useState } from 'react';
10
10
  import cx from 'classnames';
11
11
  import { __ } from '../../locale';
12
+ import { ChangeType } from '../../store/types';
12
13
  import { Tooltip, Button, Modal, Modal2, Input, Toast } from '@gingkoo/pandora';
13
14
  import Metabase from '../../index';
14
15
  import { uuidv4, getAlias } from '../../utils/helper';
@@ -83,6 +84,7 @@ var TableData = function TableData(props) {
83
84
  data: store.sourceList,
84
85
  value: meta.table,
85
86
  onChange: function onChange(data) {
87
+ console.log('🚀 ~ selectTable ~ data:', data);
86
88
  if (meta.table.datasourceId !== data.datasourceId || meta.table.name !== data.name) {
87
89
  var _store$preProps;
88
90
  var newMetaList = store.metaList[groupIndex].list.slice()[0];
@@ -95,7 +97,10 @@ var TableData = function TableData(props) {
95
97
  // ① 主表动了 其他都得重新选
96
98
  var newMetas = store.metaList[groupIndex].list.slice();
97
99
  newMetas[0] = newMetaList;
98
- store.setMeta(newMetas, groupIndex);
100
+ store.setMeta(newMetas, groupIndex, {
101
+ obj: data,
102
+ type: ChangeType.datasource
103
+ });
99
104
  // store.setMeta([newMetaList], groupIndex);
100
105
  });
101
106
  }
@@ -119,7 +124,10 @@ var TableData = function TableData(props) {
119
124
  var newMetaList = store.metaList[groupIndex].list.slice();
120
125
  // @ts-ignore
121
126
  newMetaList[0].columns = data;
122
- store.setMeta(newMetaList, groupIndex);
127
+ store.setMeta(newMetaList, groupIndex, {
128
+ obj: data,
129
+ type: ChangeType.columns
130
+ });
123
131
  }
124
132
  })
125
133
  });
@@ -151,7 +159,10 @@ var TableData = function TableData(props) {
151
159
  newMetaList = store.metaList[groupIndex].list.slice(); // @ts-ignore
152
160
  newMetaList[0].table.alias = alias;
153
161
  newMetaList = changeTableAlias(newMetaList, newMetaList[0].table);
154
- store.setMeta(newMetaList, groupIndex);
162
+ store.setMeta(newMetaList, groupIndex, {
163
+ obj: newMetaList[0].table,
164
+ type: ChangeType.tableAlias
165
+ });
155
166
  case 2:
156
167
  case "end":
157
168
  return _context2.stop();
@@ -223,7 +234,10 @@ var TableData = function TableData(props) {
223
234
  // (newMeta[index] as MetaJoin).expressions = [];
224
235
  var newMetas = store.metaList[groupIndex].list.slice();
225
236
  newMetas[0] = newMetaList;
226
- store.setMeta(newMetas, groupIndex);
237
+ store.setMeta(newMetas, groupIndex, {
238
+ obj: newList,
239
+ type: ChangeType.subQuery
240
+ });
227
241
  o.close();
228
242
  } catch (e) {
229
243
  console.warn(e);
@@ -318,7 +332,7 @@ var TableData = function TableData(props) {
318
332
  })
319
333
  }) : null;
320
334
  }()
321
- }), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table5 = meta.table) !== null && _meta$table5 !== void 0 && _meta$table5.alias ? "as ".concat((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '', " ") : __('SqlQueryBuilder.setSubQuery')]
335
+ }), subQuerySelected ? "".concat(((_meta$subquery2 = meta.subquery) === null || _meta$subquery2 === void 0 ? void 0 : _meta$subquery2[0]).table.datasourceName, ".").concat(((_meta$subquery3 = meta.subquery) === null || _meta$subquery3 === void 0 ? void 0 : _meta$subquery3[0]).table.name, " ").concat((_meta$table5 = meta.table) !== null && _meta$table5 !== void 0 && _meta$table5.alias && store.tableEnableAlias ? "as ".concat((_meta$table6 = meta.table) === null || _meta$table6 === void 0 ? void 0 : _meta$table6.alias) : '', " ") : __('SqlQueryBuilder.setSubQuery')]
322
336
  }) : _jsxs("div", {
323
337
  className: cx("Sqb-TableName", {
324
338
  notSelected: !selected
@@ -392,7 +406,7 @@ var TableData = function TableData(props) {
392
406
  // }}
393
407
  // ></Button>
394
408
  // </Tooltip>
395
- , selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table8 = meta.table) !== null && _meta$table8 !== void 0 && _meta$table8.alias ? "as ".concat((_meta$table9 = meta.table) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.alias) : '') : __('SqlQueryBuilder.pickTable')]
409
+ , selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table8 = meta.table) !== null && _meta$table8 !== void 0 && _meta$table8.alias && store.tableEnableAlias ? "as ".concat((_meta$table9 = meta.table) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.alias) : '') : __('SqlQueryBuilder.pickTable')]
396
410
  }), store.showSubquery && _jsx(Tooltip, {
397
411
  title: __('SqlQueryBuilder.switchSubQuery'),
398
412
  children: _jsx(Button, {
@@ -8,6 +8,8 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
8
8
  import { useState, useRef, useMemo } from 'react';
9
9
  import { uuidv4 } from '../utils/helper';
10
10
  import { TypeEnum, JoinEnum, UnionEnum } from '../store/enum';
11
+ import { splitByUnion } from '../utils';
12
+ import cloneDeep from 'lodash/cloneDeep';
11
13
  import { findIndex } from '../utils';
12
14
  var metaKey = 1;
13
15
  export var SummarizeAlias = 'source';
@@ -148,6 +150,10 @@ var useStore = function useStore() {
148
150
  fetchDatasetFn.current = fn;
149
151
  };
150
152
  var fetchColumnsFn = useRef();
153
+ var fetchChangeFn = useRef();
154
+ var setFetchChangeFn = function setFetchChangeFn(fn) {
155
+ fetchChangeFn.current = fn;
156
+ };
151
157
  var setFetchColumnsFn = function setFetchColumnsFn(fn) {
152
158
  fetchColumnsFn.current = fn;
153
159
  };
@@ -231,6 +237,7 @@ var useStore = function useStore() {
231
237
  var _columns2;
232
238
  var oldColumns,
233
239
  callback,
240
+ isSelect,
234
241
  oldObj,
235
242
  selectId,
236
243
  _table$alias,
@@ -248,6 +255,7 @@ var useStore = function useStore() {
248
255
  case 0:
249
256
  oldColumns = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : [];
250
257
  callback = _args2.length > 3 ? _args2[3] : undefined;
258
+ isSelect = _args2.length > 4 && _args2[4] !== undefined ? _args2[4] : isSelectFields;
251
259
  // 获取之前选中的数据
252
260
  oldObj = {};
253
261
  selectId = oldColumns.filter(function (v) {
@@ -276,7 +284,7 @@ var useStore = function useStore() {
276
284
  var obj = {};
277
285
  obj = oldObj[v.id] || {};
278
286
  return _objectSpread(_objectSpread(_objectSpread({}, obj), v), {}, {
279
- select: isSelectFields || select,
287
+ select: isSelect || select,
280
288
  fieldUuid: obj.fieldUuid || v.fieldUuid || uuidv4('field')
281
289
  });
282
290
  });
@@ -291,14 +299,47 @@ var useStore = function useStore() {
291
299
  return _ref2.apply(this, arguments);
292
300
  };
293
301
  }();
294
- var setMeta = function setMeta(curData, groupInd) {
295
- var _metaList = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : metaList;
296
- var newMeta = _metaList.slice();
297
- if (newMeta[groupInd]) {
298
- newMeta[groupInd].list = curData;
299
- _setMeta(newMeta);
300
- }
301
- };
302
+ var setMeta = /*#__PURE__*/function () {
303
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(curData, groupInd) {
304
+ var changeObj,
305
+ _metaList,
306
+ newMeta,
307
+ isChange,
308
+ _args3 = arguments;
309
+ return _regeneratorRuntime.wrap(function (_context3) {
310
+ while (1) switch (_context3.prev = _context3.next) {
311
+ case 0:
312
+ changeObj = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {};
313
+ _metaList = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : metaList;
314
+ newMeta = cloneDeep(_metaList);
315
+ if (newMeta[groupInd]) {
316
+ newMeta[groupInd].list = curData;
317
+ _setMeta(newMeta);
318
+ }
319
+ // 过滤掉初始化
320
+ if (!(changeObj === 'init')) {
321
+ _context3.next = 1;
322
+ break;
323
+ }
324
+ return _context3.abrupt("return");
325
+ case 1:
326
+ _context3.next = 2;
327
+ return fetchChangeFn.current(splitByUnion(_metaList), changeObj);
328
+ case 2:
329
+ isChange = _context3.sent;
330
+ if (isChange === false) {
331
+ _setMeta(_metaList);
332
+ }
333
+ case 3:
334
+ case "end":
335
+ return _context3.stop();
336
+ }
337
+ }, _callee3);
338
+ }));
339
+ return function setMeta(_x4, _x5) {
340
+ return _ref3.apply(this, arguments);
341
+ };
342
+ }();
302
343
  // 回显
303
344
  var setPreData = function setPreData(data) {
304
345
  // let patchVersion = (data?.[0]?.list?.[0] as any)?.patchVersion || '';
@@ -323,8 +364,8 @@ var useStore = function useStore() {
323
364
  } else {
324
365
  newMeta[i].columns = columns || [];
325
366
  }
326
- setMeta(newMeta, groupIndex, data);
327
- });
367
+ setMeta(newMeta, groupIndex, 'init', data);
368
+ }, false);
328
369
  return _objectSpread({}, v);
329
370
  }
330
371
  // 设置column
@@ -342,8 +383,8 @@ var useStore = function useStore() {
342
383
  // if (v.type === TypeEnum.joinData) {
343
384
  // newMeta[i] = setQuotes(newMeta[i]);
344
385
  // }
345
- setMeta(newMeta, groupIndex, data);
346
- });
386
+ setMeta(newMeta, groupIndex, 'init', data);
387
+ }, false);
347
388
  return _objectSpread({}, v);
348
389
  }
349
390
  return _objectSpread({}, v);
@@ -585,6 +626,8 @@ var useStore = function useStore() {
585
626
  fetchDatasetFn: fetchDatasetFn.current,
586
627
  setFetchDatasetFn: setFetchDatasetFn,
587
628
  fetchColumnsFn: fetchColumnsFn.current,
629
+ setFetchChangeFn: setFetchChangeFn,
630
+ fetchChangeFn: fetchChangeFn.current,
588
631
  setFetchColumnsFn: setFetchColumnsFn,
589
632
  showMainColumn: showMainColumn,
590
633
  showToolbar: showToolbar,
package/lib/es/index.js CHANGED
@@ -23,6 +23,7 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
23
23
  showFields = _props$showFields === void 0 ? true : _props$showFields,
24
24
  getTables = props.getTables,
25
25
  getColumns = props.getColumns,
26
+ onChange = props.onChange,
26
27
  _props$tableNameTpl = props.tableNameTpl,
27
28
  tableNameTpl = _props$tableNameTpl === void 0 ? '${name}' : _props$tableNameTpl,
28
29
  _props$fieldNameTpl = props.fieldNameTpl,
@@ -57,6 +58,7 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
57
58
  useEffect(function () {
58
59
  getTables && store.setFetchDatasetFn(getTables);
59
60
  getColumns && store.setFetchColumnsFn(getColumns);
61
+ onChange && store.setFetchChangeFn(onChange);
60
62
  }, []);
61
63
  useEffect(function () {
62
64
  store.setProps(props);
@@ -1,5 +1,23 @@
1
1
  import type { DatasourceType } from '../types';
2
2
  import { TypeEnum, SpecialType, JoinEnum, SQL_COLUMN_TYPE, SortEnum } from './enum';
3
+ export declare enum ChangeType {
4
+ fieldAlias = "fieldAlias",// 修改字段别名
5
+ tableAlias = "tableAlias",// 修改字段别名
6
+ customColumn = "customColumn",// 自定义列
7
+ formula = "formula",
8
+ field = "field",// 修改字段别名
9
+ expressions = "expressions",// expressions
10
+ table1 = "table1",
11
+ table2 = "table2",
12
+ joinType = "joinType",
13
+ lhs = "lhs",
14
+ rhs = "rhs",
15
+ subQuery = "subQuery",
16
+ datasource = "datasource",
17
+ columns = "columns",
18
+ by = "by",
19
+ group = "group"
20
+ }
3
21
  export declare enum AtomsTypeEnum {
4
22
  JOIN_DEFAULT = "joinDefault",// join默认
5
23
  EXISTS = "exists",// notExists
@@ -1,3 +1,23 @@
1
+ // 修改类型
2
+ export var ChangeType;
3
+ (function (ChangeType) {
4
+ ChangeType["fieldAlias"] = "fieldAlias";
5
+ ChangeType["tableAlias"] = "tableAlias";
6
+ ChangeType["customColumn"] = "customColumn";
7
+ ChangeType["formula"] = "formula";
8
+ ChangeType["field"] = "field";
9
+ ChangeType["expressions"] = "expressions";
10
+ ChangeType["table1"] = "table1";
11
+ ChangeType["table2"] = "table2";
12
+ ChangeType["joinType"] = "joinType";
13
+ ChangeType["lhs"] = "lhs";
14
+ ChangeType["rhs"] = "rhs";
15
+ ChangeType["subQuery"] = "subQuery";
16
+ ChangeType["datasource"] = "datasource";
17
+ ChangeType["columns"] = "columns";
18
+ ChangeType["by"] = "by";
19
+ ChangeType["group"] = "group";
20
+ })(ChangeType || (ChangeType = {}));
1
21
  // 表达式类型
2
22
  export var AtomsTypeEnum;
3
23
  (function (AtomsTypeEnum) {
package/lib/es/types.d.ts CHANGED
@@ -38,6 +38,7 @@ export interface MetabaseProps {
38
38
  tableEnableAlias?: boolean;
39
39
  fieldEnableAlias?: boolean;
40
40
  isSelectFields?: boolean;
41
+ onChange?: (newData: MetaListType[], curData: any) => Promise<void | Boolean>;
41
42
  }
42
43
  export interface OptionItem {
43
44
  value?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gingkoo/pandora-metabase",
3
- "version": "1.0.55",
3
+ "version": "1.0.56",
4
4
  "description": "",
5
5
  "main": "lib/es/index.js",
6
6
  "module": "lib/es/index.js",