@gingkoo/pandora-metabase 1.0.55 → 1.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/dialog/select-column/index.js +5 -1
- package/lib/cjs/components/modules/custom-column.js +13 -3
- package/lib/cjs/components/modules/filter.js +5 -1
- package/lib/cjs/components/modules/join-data.js +50 -20
- package/lib/cjs/components/modules/summarize/group-by.js +12 -3
- package/lib/cjs/components/modules/summarize/select-index.js +12 -3
- package/lib/cjs/components/modules/table-data.js +20 -6
- package/lib/cjs/hooks/use-state.js +55 -13
- package/lib/cjs/index.js +2 -0
- package/lib/cjs/store/types.d.ts +18 -0
- package/lib/cjs/store/types.js +21 -1
- package/lib/cjs/types.d.ts +5 -1
- package/lib/es/components/dialog/select-column/index.js +5 -1
- package/lib/es/components/modules/custom-column.js +13 -3
- package/lib/es/components/modules/filter.js +5 -1
- package/lib/es/components/modules/join-data.js +51 -21
- package/lib/es/components/modules/summarize/group-by.js +13 -4
- package/lib/es/components/modules/summarize/select-index.js +13 -4
- package/lib/es/components/modules/table-data.js +20 -6
- package/lib/es/hooks/use-state.js +56 -13
- package/lib/es/index.js +2 -0
- package/lib/es/store/types.d.ts +18 -0
- package/lib/es/store/types.js +20 -0
- package/lib/es/types.d.ts +5 -1
- package/package.json +1 -1
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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
|
|
295
|
-
var
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
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);
|
package/lib/es/store/types.d.ts
CHANGED
|
@@ -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
|
package/lib/es/store/types.js
CHANGED
|
@@ -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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MetaListType, ToolbarType, FormulaTemplatesItem } from './store/types';
|
|
1
|
+
import type { MetaListType, ToolbarType, FormulaTemplatesItem, ChangeType } from './store/types';
|
|
2
2
|
import { UnionEnum } from './store/enum';
|
|
3
3
|
import { DataType } from './components/dialog/select-join-column';
|
|
4
4
|
export interface MetaListProps {
|
|
@@ -38,6 +38,10 @@ export interface MetabaseProps {
|
|
|
38
38
|
tableEnableAlias?: boolean;
|
|
39
39
|
fieldEnableAlias?: boolean;
|
|
40
40
|
isSelectFields?: boolean;
|
|
41
|
+
onChange?: (newData: MetaListType[], curData?: {
|
|
42
|
+
data: any;
|
|
43
|
+
type: ChangeType;
|
|
44
|
+
}) => Promise<void | Boolean>;
|
|
41
45
|
}
|
|
42
46
|
export interface OptionItem {
|
|
43
47
|
value?: string;
|