@gingkoo/pandora-metabase 1.0.54 → 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.
- package/lib/cjs/components/dialog/select-column/index.js +6 -2
- 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 +191 -69
- package/lib/cjs/components/modules/summarize/group-by.js +27 -16
- package/lib/cjs/components/modules/summarize/select-index.js +27 -16
- package/lib/cjs/components/modules/table-data.js +123 -55
- package/lib/cjs/hooks/use-state.js +74 -14
- package/lib/cjs/index.js +17 -4
- package/lib/cjs/store/types.d.ts +18 -0
- package/lib/cjs/store/types.js +21 -1
- package/lib/cjs/types.d.ts +5 -0
- package/lib/es/components/dialog/select-column/index.js +6 -2
- 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 +192 -70
- package/lib/es/components/modules/summarize/group-by.js +29 -18
- package/lib/es/components/modules/summarize/select-index.js +29 -18
- package/lib/es/components/modules/table-data.js +123 -55
- package/lib/es/hooks/use-state.js +75 -14
- package/lib/es/index.js +17 -4
- package/lib/es/store/types.d.ts +18 -0
- package/lib/es/store/types.js +20 -0
- package/lib/es/types.d.ts +5 -0
- package/package.json +1 -1
|
@@ -15,6 +15,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
15
15
|
var _react = require("react");
|
|
16
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
17
|
var _locale = require("../../locale");
|
|
18
|
+
var _types = require("../../store/types");
|
|
18
19
|
var _pandora = require("@gingkoo/pandora");
|
|
19
20
|
var _index = _interopRequireDefault(require("../../index"));
|
|
20
21
|
var _helper = require("../../utils/helper");
|
|
@@ -89,6 +90,7 @@ var TableData = function TableData(props) {
|
|
|
89
90
|
data: store.sourceList,
|
|
90
91
|
value: meta.table,
|
|
91
92
|
onChange: function onChange(data) {
|
|
93
|
+
console.log('🚀 ~ selectTable ~ data:', data);
|
|
92
94
|
if (meta.table.datasourceId !== data.datasourceId || meta.table.name !== data.name) {
|
|
93
95
|
var _store$preProps;
|
|
94
96
|
var newMetaList = store.metaList[groupIndex].list.slice()[0];
|
|
@@ -101,7 +103,10 @@ var TableData = function TableData(props) {
|
|
|
101
103
|
// ① 主表动了 其他都得重新选
|
|
102
104
|
var newMetas = store.metaList[groupIndex].list.slice();
|
|
103
105
|
newMetas[0] = newMetaList;
|
|
104
|
-
store.setMeta(newMetas, groupIndex
|
|
106
|
+
store.setMeta(newMetas, groupIndex, {
|
|
107
|
+
obj: data,
|
|
108
|
+
type: _types.ChangeType.datasource
|
|
109
|
+
});
|
|
105
110
|
// store.setMeta([newMetaList], groupIndex);
|
|
106
111
|
});
|
|
107
112
|
}
|
|
@@ -125,7 +130,10 @@ var TableData = function TableData(props) {
|
|
|
125
130
|
var newMetaList = store.metaList[groupIndex].list.slice();
|
|
126
131
|
// @ts-ignore
|
|
127
132
|
newMetaList[0].columns = data;
|
|
128
|
-
store.setMeta(newMetaList, groupIndex
|
|
133
|
+
store.setMeta(newMetaList, groupIndex, {
|
|
134
|
+
obj: data,
|
|
135
|
+
type: _types.ChangeType.columns
|
|
136
|
+
});
|
|
129
137
|
}
|
|
130
138
|
})
|
|
131
139
|
});
|
|
@@ -157,7 +165,10 @@ var TableData = function TableData(props) {
|
|
|
157
165
|
newMetaList = store.metaList[groupIndex].list.slice(); // @ts-ignore
|
|
158
166
|
newMetaList[0].table.alias = alias;
|
|
159
167
|
newMetaList = (0, _utils.changeTableAlias)(newMetaList, newMetaList[0].table);
|
|
160
|
-
store.setMeta(newMetaList, groupIndex
|
|
168
|
+
store.setMeta(newMetaList, groupIndex, {
|
|
169
|
+
obj: newMetaList[0].table,
|
|
170
|
+
type: _types.ChangeType.tableAlias
|
|
171
|
+
});
|
|
161
172
|
case 2:
|
|
162
173
|
case "end":
|
|
163
174
|
return _context2.stop();
|
|
@@ -221,13 +232,18 @@ var TableData = function TableData(props) {
|
|
|
221
232
|
var existingCol = newMetaList.columns.find(function (oldCol) {
|
|
222
233
|
return oldCol.name === newCol.name;
|
|
223
234
|
});
|
|
235
|
+
var _column = existingCol ? existingCol : newCol;
|
|
236
|
+
_column.select = store.isSelectFields || _column.select;
|
|
224
237
|
// 如果存在,返回旧列;否则返回新列
|
|
225
|
-
return
|
|
238
|
+
return _column;
|
|
226
239
|
});
|
|
227
240
|
// (newMeta[index] as MetaJoin).expressions = [];
|
|
228
241
|
var newMetas = store.metaList[groupIndex].list.slice();
|
|
229
242
|
newMetas[0] = newMetaList;
|
|
230
|
-
store.setMeta(newMetas, groupIndex
|
|
243
|
+
store.setMeta(newMetas, groupIndex, {
|
|
244
|
+
obj: newList,
|
|
245
|
+
type: _types.ChangeType.subQuery
|
|
246
|
+
});
|
|
231
247
|
o.close();
|
|
232
248
|
} catch (e) {
|
|
233
249
|
console.warn(e);
|
|
@@ -290,61 +306,113 @@ var TableData = function TableData(props) {
|
|
|
290
306
|
onClick: function onClick() {
|
|
291
307
|
showSubQuery(meta.subquery);
|
|
292
308
|
},
|
|
293
|
-
children: [subQuerySelected && (0, _jsxRuntime.jsx)(
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
309
|
+
children: [subQuerySelected && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
310
|
+
children: function () {
|
|
311
|
+
var showButton = store.tableEnableAlias || tableIsError() && isDel;
|
|
312
|
+
var icon = isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
|
|
313
|
+
return showButton ? (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
314
|
+
title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
315
|
+
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
316
|
+
danger: tableIsError(),
|
|
317
|
+
className: (0, _classnames["default"])(':Sqb-TableName-as', {
|
|
318
|
+
isError: tableIsError()
|
|
319
|
+
}),
|
|
320
|
+
shape: 'circle',
|
|
321
|
+
style: isDel ? {
|
|
322
|
+
fontSize: 18,
|
|
323
|
+
backgroundColor: '#fff',
|
|
324
|
+
width: 'auto',
|
|
325
|
+
height: 'auto'
|
|
326
|
+
} : {},
|
|
327
|
+
iconOnly: true,
|
|
328
|
+
primary: !isDel,
|
|
329
|
+
icon: icon,
|
|
330
|
+
size: 'small',
|
|
331
|
+
onClick: function onClick(e) {
|
|
332
|
+
if (store.tableEnableAlias) {
|
|
333
|
+
var _meta$table4;
|
|
334
|
+
e.stopPropagation();
|
|
335
|
+
onChangeTableAlias(((_meta$table4 = meta.table) === null || _meta$table4 === void 0 ? void 0 : _meta$table4.alias) || '');
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
})
|
|
339
|
+
}) : null;
|
|
340
|
+
}()
|
|
341
|
+
}), 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) : '', " ") : (0, _locale.__)('SqlQueryBuilder.setSubQuery')]
|
|
318
342
|
}) : (0, _jsxRuntime.jsxs)("div", {
|
|
319
343
|
className: (0, _classnames["default"])("Sqb-TableName", {
|
|
320
344
|
notSelected: !selected
|
|
321
345
|
}),
|
|
322
346
|
onClick: selectTable,
|
|
323
|
-
children: [selected && (0, _jsxRuntime.jsx)(
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
347
|
+
children: [selected && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
348
|
+
children: function () {
|
|
349
|
+
var showButton = store.tableEnableAlias || tableIsError() && isDel;
|
|
350
|
+
var icon = isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
|
|
351
|
+
return showButton ? (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
352
|
+
title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
|
|
353
|
+
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
354
|
+
danger: tableIsError(),
|
|
355
|
+
className: (0, _classnames["default"])(':Sqb-TableName-as', {
|
|
356
|
+
isError: tableIsError()
|
|
357
|
+
}),
|
|
358
|
+
shape: 'circle',
|
|
359
|
+
style: isDel ? {
|
|
360
|
+
fontSize: 18,
|
|
361
|
+
backgroundColor: '#fff',
|
|
362
|
+
width: 'auto',
|
|
363
|
+
height: 'auto'
|
|
364
|
+
} : {},
|
|
365
|
+
iconOnly: true,
|
|
366
|
+
primary: !isDel,
|
|
367
|
+
icon: icon,
|
|
368
|
+
size: 'small',
|
|
369
|
+
onClick: function onClick(e) {
|
|
370
|
+
if (store.tableEnableAlias) {
|
|
371
|
+
var _meta$table7;
|
|
372
|
+
e.stopPropagation();
|
|
373
|
+
onChangeTableAlias(((_meta$table7 = meta.table) === null || _meta$table7 === void 0 ? void 0 : _meta$table7.alias) || '');
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
})
|
|
377
|
+
}) : null;
|
|
378
|
+
}()
|
|
379
|
+
})
|
|
380
|
+
// <Tooltip
|
|
381
|
+
// title={__(
|
|
382
|
+
// tableIsError()
|
|
383
|
+
// ? isDel
|
|
384
|
+
// ? 'metabase.verify'
|
|
385
|
+
// : 'SqlQueryBuilder.repeatAlias'
|
|
386
|
+
// : 'SqlQueryBuilder.alias',
|
|
387
|
+
// )}
|
|
388
|
+
// >
|
|
389
|
+
// <Button
|
|
390
|
+
// danger={tableIsError()}
|
|
391
|
+
// className={cx(':Sqb-TableName-as', {
|
|
392
|
+
// isError: tableIsError(),
|
|
393
|
+
// })}
|
|
394
|
+
// shape='circle'
|
|
395
|
+
// style={
|
|
396
|
+
// isDel
|
|
397
|
+
// ? {
|
|
398
|
+
// fontSize: 18,
|
|
399
|
+
// backgroundColor: '#fff',
|
|
400
|
+
// width: 'auto',
|
|
401
|
+
// height: 'auto',
|
|
402
|
+
// }
|
|
403
|
+
// : {}
|
|
404
|
+
// }
|
|
405
|
+
// iconOnly
|
|
406
|
+
// primary={!isDel}
|
|
407
|
+
// icon={isDel ? <ExclamationCircleFill /> : 'As'}
|
|
408
|
+
// size='small'
|
|
409
|
+
// onClick={(e) => {
|
|
410
|
+
// e.stopPropagation();
|
|
411
|
+
// onChangeTableAlias(meta.table?.alias || '');
|
|
412
|
+
// }}
|
|
413
|
+
// ></Button>
|
|
414
|
+
// </Tooltip>
|
|
415
|
+
, 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) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
|
|
348
416
|
}), store.showSubquery && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
349
417
|
title: (0, _locale.__)('SqlQueryBuilder.switchSubQuery'),
|
|
350
418
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
@@ -15,6 +15,7 @@ var _react = require("react");
|
|
|
15
15
|
var _helper = require("../utils/helper");
|
|
16
16
|
var _enum = require("../store/enum");
|
|
17
17
|
var _utils = require("../utils");
|
|
18
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
18
19
|
var _excluded = ["alias", "datasourceName", "datasourceId", "column"];
|
|
19
20
|
var metaKey = 1;
|
|
20
21
|
var SummarizeAlias = exports.SummarizeAlias = 'source';
|
|
@@ -133,6 +134,18 @@ var useStore = function useStore() {
|
|
|
133
134
|
_useState38 = (0, _slicedToArray2["default"])(_useState37, 2),
|
|
134
135
|
isExit = _useState38[0],
|
|
135
136
|
setIsExit = _useState38[1]; // 是否是notExit
|
|
137
|
+
var _useState39 = (0, _react.useState)(true),
|
|
138
|
+
_useState40 = (0, _slicedToArray2["default"])(_useState39, 2),
|
|
139
|
+
tableEnableAlias = _useState40[0],
|
|
140
|
+
setTableEnableAlias = _useState40[1]; // 表名是否开启别名
|
|
141
|
+
var _useState41 = (0, _react.useState)(true),
|
|
142
|
+
_useState42 = (0, _slicedToArray2["default"])(_useState41, 2),
|
|
143
|
+
fieldEnableAlias = _useState42[0],
|
|
144
|
+
setFieldEnableAlias = _useState42[1]; // 字段名是否开启别名
|
|
145
|
+
var _useState43 = (0, _react.useState)(true),
|
|
146
|
+
_useState44 = (0, _slicedToArray2["default"])(_useState43, 2),
|
|
147
|
+
isSelectFields = _useState44[0],
|
|
148
|
+
setIsSelectFields = _useState44[1]; // 是否默认勾选字段
|
|
136
149
|
// 外层ref
|
|
137
150
|
var popupContainer = (0, _react.useRef)();
|
|
138
151
|
// const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(
|
|
@@ -143,6 +156,10 @@ var useStore = function useStore() {
|
|
|
143
156
|
fetchDatasetFn.current = fn;
|
|
144
157
|
};
|
|
145
158
|
var fetchColumnsFn = (0, _react.useRef)();
|
|
159
|
+
var fetchChangeFn = (0, _react.useRef)();
|
|
160
|
+
var setFetchChangeFn = function setFetchChangeFn(fn) {
|
|
161
|
+
fetchChangeFn.current = fn;
|
|
162
|
+
};
|
|
146
163
|
var setFetchColumnsFn = function setFetchColumnsFn(fn) {
|
|
147
164
|
fetchColumnsFn.current = fn;
|
|
148
165
|
};
|
|
@@ -226,6 +243,7 @@ var useStore = function useStore() {
|
|
|
226
243
|
var _columns2;
|
|
227
244
|
var oldColumns,
|
|
228
245
|
callback,
|
|
246
|
+
isSelect,
|
|
229
247
|
oldObj,
|
|
230
248
|
selectId,
|
|
231
249
|
_table$alias,
|
|
@@ -243,6 +261,7 @@ var useStore = function useStore() {
|
|
|
243
261
|
case 0:
|
|
244
262
|
oldColumns = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : [];
|
|
245
263
|
callback = _args2.length > 3 ? _args2[3] : undefined;
|
|
264
|
+
isSelect = _args2.length > 4 && _args2[4] !== undefined ? _args2[4] : isSelectFields;
|
|
246
265
|
// 获取之前选中的数据
|
|
247
266
|
oldObj = {};
|
|
248
267
|
selectId = oldColumns.filter(function (v) {
|
|
@@ -271,7 +290,7 @@ var useStore = function useStore() {
|
|
|
271
290
|
var obj = {};
|
|
272
291
|
obj = oldObj[v.id] || {};
|
|
273
292
|
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, obj), v), {}, {
|
|
274
|
-
select: select,
|
|
293
|
+
select: isSelect || select,
|
|
275
294
|
fieldUuid: obj.fieldUuid || v.fieldUuid || (0, _helper.uuidv4)('field')
|
|
276
295
|
});
|
|
277
296
|
});
|
|
@@ -286,14 +305,47 @@ var useStore = function useStore() {
|
|
|
286
305
|
return _ref2.apply(this, arguments);
|
|
287
306
|
};
|
|
288
307
|
}();
|
|
289
|
-
var setMeta = function
|
|
290
|
-
var
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
308
|
+
var setMeta = /*#__PURE__*/function () {
|
|
309
|
+
var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(curData, groupInd) {
|
|
310
|
+
var changeObj,
|
|
311
|
+
_metaList,
|
|
312
|
+
newMeta,
|
|
313
|
+
isChange,
|
|
314
|
+
_args3 = arguments;
|
|
315
|
+
return _regenerator["default"].wrap(function (_context3) {
|
|
316
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
317
|
+
case 0:
|
|
318
|
+
changeObj = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {};
|
|
319
|
+
_metaList = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : metaList;
|
|
320
|
+
newMeta = (0, _cloneDeep["default"])(_metaList);
|
|
321
|
+
if (newMeta[groupInd]) {
|
|
322
|
+
newMeta[groupInd].list = curData;
|
|
323
|
+
_setMeta(newMeta);
|
|
324
|
+
}
|
|
325
|
+
// 过滤掉初始化
|
|
326
|
+
if (!(changeObj === 'init')) {
|
|
327
|
+
_context3.next = 1;
|
|
328
|
+
break;
|
|
329
|
+
}
|
|
330
|
+
return _context3.abrupt("return");
|
|
331
|
+
case 1:
|
|
332
|
+
_context3.next = 2;
|
|
333
|
+
return fetchChangeFn.current((0, _utils.splitByUnion)(_metaList), changeObj);
|
|
334
|
+
case 2:
|
|
335
|
+
isChange = _context3.sent;
|
|
336
|
+
if (isChange === false) {
|
|
337
|
+
_setMeta(_metaList);
|
|
338
|
+
}
|
|
339
|
+
case 3:
|
|
340
|
+
case "end":
|
|
341
|
+
return _context3.stop();
|
|
342
|
+
}
|
|
343
|
+
}, _callee3);
|
|
344
|
+
}));
|
|
345
|
+
return function setMeta(_x4, _x5) {
|
|
346
|
+
return _ref3.apply(this, arguments);
|
|
347
|
+
};
|
|
348
|
+
}();
|
|
297
349
|
// 回显
|
|
298
350
|
var setPreData = function setPreData(data) {
|
|
299
351
|
// let patchVersion = (data?.[0]?.list?.[0] as any)?.patchVersion || '';
|
|
@@ -318,8 +370,8 @@ var useStore = function useStore() {
|
|
|
318
370
|
} else {
|
|
319
371
|
newMeta[i].columns = columns || [];
|
|
320
372
|
}
|
|
321
|
-
setMeta(newMeta, groupIndex, data);
|
|
322
|
-
});
|
|
373
|
+
setMeta(newMeta, groupIndex, 'init', data);
|
|
374
|
+
}, false);
|
|
323
375
|
return (0, _objectSpread2["default"])({}, v);
|
|
324
376
|
}
|
|
325
377
|
// 设置column
|
|
@@ -337,8 +389,8 @@ var useStore = function useStore() {
|
|
|
337
389
|
// if (v.type === TypeEnum.joinData) {
|
|
338
390
|
// newMeta[i] = setQuotes(newMeta[i]);
|
|
339
391
|
// }
|
|
340
|
-
setMeta(newMeta, groupIndex, data);
|
|
341
|
-
});
|
|
392
|
+
setMeta(newMeta, groupIndex, 'init', data);
|
|
393
|
+
}, false);
|
|
342
394
|
return (0, _objectSpread2["default"])({}, v);
|
|
343
395
|
}
|
|
344
396
|
return (0, _objectSpread2["default"])({}, v);
|
|
@@ -580,6 +632,8 @@ var useStore = function useStore() {
|
|
|
580
632
|
fetchDatasetFn: fetchDatasetFn.current,
|
|
581
633
|
setFetchDatasetFn: setFetchDatasetFn,
|
|
582
634
|
fetchColumnsFn: fetchColumnsFn.current,
|
|
635
|
+
setFetchChangeFn: setFetchChangeFn,
|
|
636
|
+
fetchChangeFn: fetchChangeFn.current,
|
|
583
637
|
setFetchColumnsFn: setFetchColumnsFn,
|
|
584
638
|
showMainColumn: showMainColumn,
|
|
585
639
|
showToolbar: showToolbar,
|
|
@@ -609,7 +663,13 @@ var useStore = function useStore() {
|
|
|
609
663
|
formulaTemplates: formulaTemplates,
|
|
610
664
|
setFormulaTemplates: setFormulaTemplates,
|
|
611
665
|
isExit: isExit,
|
|
612
|
-
setIsExit: setIsExit
|
|
666
|
+
setIsExit: setIsExit,
|
|
667
|
+
tableEnableAlias: tableEnableAlias,
|
|
668
|
+
setTableEnableAlias: setTableEnableAlias,
|
|
669
|
+
fieldEnableAlias: fieldEnableAlias,
|
|
670
|
+
setFieldEnableAlias: setFieldEnableAlias,
|
|
671
|
+
isSelectFields: isSelectFields,
|
|
672
|
+
setIsSelectFields: setIsSelectFields
|
|
613
673
|
};
|
|
614
674
|
};
|
|
615
675
|
var _default = exports["default"] = useStore;
|
package/lib/cjs/index.js
CHANGED
|
@@ -33,6 +33,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
|
|
|
33
33
|
showFields = _props$showFields === void 0 ? true : _props$showFields,
|
|
34
34
|
getTables = props.getTables,
|
|
35
35
|
getColumns = props.getColumns,
|
|
36
|
+
onChange = props.onChange,
|
|
36
37
|
_props$tableNameTpl = props.tableNameTpl,
|
|
37
38
|
tableNameTpl = _props$tableNameTpl === void 0 ? '${name}' : _props$tableNameTpl,
|
|
38
39
|
_props$fieldNameTpl = props.fieldNameTpl,
|
|
@@ -43,6 +44,8 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
|
|
|
43
44
|
value = _props$value === void 0 ? [] : _props$value,
|
|
44
45
|
_props$sourceList = props.sourceList,
|
|
45
46
|
sourceList = _props$sourceList === void 0 ? [] : _props$sourceList,
|
|
47
|
+
_props$exitSourceList = props.exitSourceList,
|
|
48
|
+
exitSourceList = _props$exitSourceList === void 0 ? [] : _props$exitSourceList,
|
|
46
49
|
_props$showSubquery = props.showSubquery,
|
|
47
50
|
showSubquery = _props$showSubquery === void 0 ? true : _props$showSubquery,
|
|
48
51
|
_props$subShowSubquer = props.subShowSubquery,
|
|
@@ -54,11 +57,18 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
|
|
|
54
57
|
_props$filterCustomTy = props.filterCustomType,
|
|
55
58
|
filterCustomType = _props$filterCustomTy === void 0 ? false : _props$filterCustomTy,
|
|
56
59
|
_props$isExit = props.isExit,
|
|
57
|
-
isExit = _props$isExit === void 0 ? false : _props$isExit
|
|
60
|
+
isExit = _props$isExit === void 0 ? false : _props$isExit,
|
|
61
|
+
_props$tableEnableAli = props.tableEnableAlias,
|
|
62
|
+
tableEnableAlias = _props$tableEnableAli === void 0 ? true : _props$tableEnableAli,
|
|
63
|
+
_props$fieldEnableAli = props.fieldEnableAlias,
|
|
64
|
+
fieldEnableAlias = _props$fieldEnableAli === void 0 ? true : _props$fieldEnableAli,
|
|
65
|
+
_props$isSelectFields = props.isSelectFields,
|
|
66
|
+
isSelectFields = _props$isSelectFields === void 0 ? true : _props$isSelectFields;
|
|
58
67
|
var store = (0, _useState["default"])();
|
|
59
68
|
(0, _react.useEffect)(function () {
|
|
60
69
|
getTables && store.setFetchDatasetFn(getTables);
|
|
61
70
|
getColumns && store.setFetchColumnsFn(getColumns);
|
|
71
|
+
onChange && store.setFetchChangeFn(onChange);
|
|
62
72
|
}, []);
|
|
63
73
|
(0, _react.useEffect)(function () {
|
|
64
74
|
store.setProps(props);
|
|
@@ -68,8 +78,8 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
|
|
|
68
78
|
store.setPreData(_value);
|
|
69
79
|
}, [value]);
|
|
70
80
|
(0, _react.useEffect)(function () {
|
|
71
|
-
store.setSourceList(sourceList);
|
|
72
|
-
}, [sourceList]);
|
|
81
|
+
store.setSourceList(isExit && exitSourceList && Array.from(exitSourceList).length > 0 ? exitSourceList || sourceList : sourceList);
|
|
82
|
+
}, [sourceList, exitSourceList, isExit]);
|
|
73
83
|
(0, _react.useEffect)(function () {
|
|
74
84
|
store.setShowFields(showFields);
|
|
75
85
|
store.setFieldNameTpl(fieldNameTpl || '${name}');
|
|
@@ -82,7 +92,10 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
|
|
|
82
92
|
store.setIgnoreGroupByType(ignoreGroupByType);
|
|
83
93
|
store.setfilterCustomType(filterCustomType);
|
|
84
94
|
store.setIsExit(isExit);
|
|
85
|
-
|
|
95
|
+
store.setTableEnableAlias(tableEnableAlias);
|
|
96
|
+
store.setFieldEnableAlias(fieldEnableAlias);
|
|
97
|
+
store.setIsSelectFields(isSelectFields);
|
|
98
|
+
}, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType, isExit, tableEnableAlias, fieldEnableAlias, isSelectFields]);
|
|
86
99
|
_react["default"].useImperativeHandle(ref, function () {
|
|
87
100
|
return {
|
|
88
101
|
// setDatasource: (list) => {
|
package/lib/cjs/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/cjs/store/types.js
CHANGED
|
@@ -3,7 +3,27 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.MetaSummarize_Enum = exports.AtomsTypeEnum = void 0;
|
|
6
|
+
exports.MetaSummarize_Enum = exports.ChangeType = exports.AtomsTypeEnum = void 0;
|
|
7
|
+
// 修改类型
|
|
8
|
+
var ChangeType;
|
|
9
|
+
(function (ChangeType) {
|
|
10
|
+
ChangeType["fieldAlias"] = "fieldAlias";
|
|
11
|
+
ChangeType["tableAlias"] = "tableAlias";
|
|
12
|
+
ChangeType["customColumn"] = "customColumn";
|
|
13
|
+
ChangeType["formula"] = "formula";
|
|
14
|
+
ChangeType["field"] = "field";
|
|
15
|
+
ChangeType["expressions"] = "expressions";
|
|
16
|
+
ChangeType["table1"] = "table1";
|
|
17
|
+
ChangeType["table2"] = "table2";
|
|
18
|
+
ChangeType["joinType"] = "joinType";
|
|
19
|
+
ChangeType["lhs"] = "lhs";
|
|
20
|
+
ChangeType["rhs"] = "rhs";
|
|
21
|
+
ChangeType["subQuery"] = "subQuery";
|
|
22
|
+
ChangeType["datasource"] = "datasource";
|
|
23
|
+
ChangeType["columns"] = "columns";
|
|
24
|
+
ChangeType["by"] = "by";
|
|
25
|
+
ChangeType["group"] = "group";
|
|
26
|
+
})(ChangeType || (exports.ChangeType = ChangeType = {}));
|
|
7
27
|
// 表达式类型
|
|
8
28
|
var AtomsTypeEnum;
|
|
9
29
|
(function (AtomsTypeEnum) {
|
package/lib/cjs/types.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export interface MetabaseProps {
|
|
|
25
25
|
onOk?: (params: any) => void;
|
|
26
26
|
value?: MetaListType[];
|
|
27
27
|
sourceList?: DatasourceType[];
|
|
28
|
+
exitSourceList?: DatasourceType[];
|
|
28
29
|
showSubquery?: boolean;
|
|
29
30
|
subShowSubquery?: boolean;
|
|
30
31
|
constantList?: OptionItem[];
|
|
@@ -34,6 +35,10 @@ export interface MetabaseProps {
|
|
|
34
35
|
notExistsColumns?: DataType[];
|
|
35
36
|
formulaTemplates?: FormulaTemplatesItem[];
|
|
36
37
|
isExit?: boolean;
|
|
38
|
+
tableEnableAlias?: boolean;
|
|
39
|
+
fieldEnableAlias?: boolean;
|
|
40
|
+
isSelectFields?: boolean;
|
|
41
|
+
onChange?: (newData: MetaListType[], curData: any) => Promise<void | Boolean>;
|
|
37
42
|
}
|
|
38
43
|
export interface OptionItem {
|
|
39
44
|
value?: string;
|
|
@@ -14,6 +14,7 @@ import { useEffect, useMemo, useState } from 'react';
|
|
|
14
14
|
import cloneDeep from 'lodash/cloneDeep';
|
|
15
15
|
import cx from 'classnames';
|
|
16
16
|
import { Button, Modal, Input, Tooltip, Toast } from '@gingkoo/pandora';
|
|
17
|
+
import { ChangeType } from '../../../store/types';
|
|
17
18
|
import { __ } from '../../../locale';
|
|
18
19
|
import { NotSelectIcon, SelectIcon } from '../../icons';
|
|
19
20
|
import { useStore } from '../../../hooks/use-provider';
|
|
@@ -116,7 +117,10 @@ var SelectColumn = function SelectColumn(_ref) {
|
|
|
116
117
|
newColumns[i].fieldAlias = fieldAlias;
|
|
117
118
|
newColumns[i].fieldUuid = newColumns[i].fieldUuid || uuidv4('field');
|
|
118
119
|
newMetaList = changeFieldAlias(newMetaList, newColumns[i]);
|
|
119
|
-
store.setMeta(newMetaList, groupIndex
|
|
120
|
+
store.setMeta(newMetaList, groupIndex, {
|
|
121
|
+
obj: newColumns[i],
|
|
122
|
+
type: ChangeType.fieldAlias
|
|
123
|
+
});
|
|
120
124
|
onSelect(newColumns);
|
|
121
125
|
setTimeout(function () {
|
|
122
126
|
store.setClosable(true);
|
|
@@ -185,7 +189,7 @@ var SelectColumn = function SelectColumn(_ref) {
|
|
|
185
189
|
children: _jsx(SelectIcon, {})
|
|
186
190
|
}) : _jsx("div", {
|
|
187
191
|
className: 'no-select mr-2'
|
|
188
|
-
}), v.name, v.name_zh ? " \uFF08".concat(v.name_zh, "\uFF09") : '', v.fieldAlias ? " as ".concat(v.fieldAlias) : '', _jsx(Tooltip, {
|
|
192
|
+
}), v.name, v.name_zh ? " \uFF08".concat(v.name_zh, "\uFF09") : '', v.fieldAlias ? " as ".concat(v.fieldAlias) : '', store.fieldEnableAlias && _jsx(Tooltip, {
|
|
189
193
|
title: __('SqlQueryBuilder.alias'),
|
|
190
194
|
children: _jsx(Button, {
|
|
191
195
|
className: ':Sqb-TableName-as',
|
|
@@ -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 || [])));
|