@gingkoo/pandora-metabase 1.0.72 → 1.0.73
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/expression/index.js +0 -1
- package/lib/cjs/components/modules/components/header.d.ts +2 -0
- package/lib/cjs/components/modules/components/header.js +54 -1
- package/lib/cjs/components/modules/custom-column.js +1 -0
- package/lib/cjs/components/modules/filter.js +1 -0
- package/lib/cjs/components/modules/join-data.js +1 -0
- package/lib/cjs/components/modules/permission-table.js +1 -0
- package/lib/cjs/components/modules/row-limit.js +1 -0
- package/lib/cjs/components/modules/sort.js +1 -0
- package/lib/cjs/components/modules/summarize/index.js +1 -0
- package/lib/cjs/components/modules/table-data.js +1 -0
- package/lib/cjs/components/modules/union.js +1 -0
- package/lib/cjs/hooks/use-state.js +103 -55
- package/lib/cjs/index.js +13 -7
- package/lib/cjs/types.d.ts +8 -0
- package/lib/cjs/utils.d.ts +1 -0
- package/lib/cjs/utils.js +6 -1
- package/lib/es/components/dialog/expression/index.js +0 -1
- package/lib/es/components/modules/components/header.d.ts +2 -0
- package/lib/es/components/modules/components/header.js +54 -2
- package/lib/es/components/modules/custom-column.js +1 -0
- package/lib/es/components/modules/filter.js +1 -0
- package/lib/es/components/modules/join-data.js +1 -0
- package/lib/es/components/modules/permission-table.js +1 -0
- package/lib/es/components/modules/row-limit.js +1 -0
- package/lib/es/components/modules/sort.js +1 -0
- package/lib/es/components/modules/summarize/index.js +1 -0
- package/lib/es/components/modules/table-data.js +1 -0
- package/lib/es/components/modules/union.js +1 -0
- package/lib/es/hooks/use-state.js +103 -55
- package/lib/es/index.js +13 -7
- package/lib/es/types.d.ts +8 -0
- package/lib/es/utils.d.ts +1 -0
- package/lib/es/utils.js +5 -0
- package/package.json +1 -1
|
@@ -1,17 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports["default"] = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
7
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
11
|
var _pandora = require("@gingkoo/pandora");
|
|
9
12
|
var _icons = require("../../icons");
|
|
10
13
|
var _locale = require("../../../locale");
|
|
14
|
+
var _useProvider = require("../../../hooks/use-provider");
|
|
15
|
+
var _utils = require("../../../utils");
|
|
16
|
+
var _diffViewer = _interopRequireDefault(require("../../dialog/diff-viewer"));
|
|
11
17
|
var Header = function Header(props) {
|
|
18
|
+
var meta = props.meta;
|
|
19
|
+
var store = (0, _useProvider.useStore)();
|
|
20
|
+
var diff = /*#__PURE__*/function () {
|
|
21
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
22
|
+
var index, _oldMeta, _newMeta, _yield$store$getModul, oldCode, newCode, o;
|
|
23
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
24
|
+
while (1) switch (_context.prev = _context.next) {
|
|
25
|
+
case 0:
|
|
26
|
+
index = (0, _utils.findMetaKey)(store.sourceData, meta);
|
|
27
|
+
_oldMeta = store.sourceData[index];
|
|
28
|
+
_newMeta = meta;
|
|
29
|
+
_context.next = 1;
|
|
30
|
+
return store.getModuleDiffCode(_oldMeta, _newMeta);
|
|
31
|
+
case 1:
|
|
32
|
+
_yield$store$getModul = _context.sent;
|
|
33
|
+
oldCode = _yield$store$getModul.oldCode;
|
|
34
|
+
newCode = _yield$store$getModul.newCode;
|
|
35
|
+
o = _pandora.Modal2.openModal({
|
|
36
|
+
title: '差异对比',
|
|
37
|
+
transparentMask: true,
|
|
38
|
+
content: (0, _jsxRuntime.jsx)(_diffViewer["default"], {
|
|
39
|
+
oldCode: oldCode,
|
|
40
|
+
newCode: newCode
|
|
41
|
+
}),
|
|
42
|
+
onClose: function onClose() {}
|
|
43
|
+
});
|
|
44
|
+
case 2:
|
|
45
|
+
case "end":
|
|
46
|
+
return _context.stop();
|
|
47
|
+
}
|
|
48
|
+
}, _callee);
|
|
49
|
+
}));
|
|
50
|
+
return function diff() {
|
|
51
|
+
return _ref.apply(this, arguments);
|
|
52
|
+
};
|
|
53
|
+
}();
|
|
12
54
|
return (0, _jsxRuntime.jsxs)("div", {
|
|
13
55
|
className: "Sqb-item--text ".concat(props.className || ''),
|
|
14
|
-
children: [props.title,
|
|
56
|
+
children: [props.title, store.moduleDiff && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
57
|
+
title: '点击比对当前模块与初始模块的差异',
|
|
58
|
+
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
59
|
+
style: {
|
|
60
|
+
color: 'inherit'
|
|
61
|
+
},
|
|
62
|
+
size: 'small',
|
|
63
|
+
type: 'link',
|
|
64
|
+
onClick: diff,
|
|
65
|
+
children: "\u5DEE\u5F02\u5BF9\u6BD4"
|
|
66
|
+
})
|
|
67
|
+
}), props.onClose && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
15
68
|
placement: 'top',
|
|
16
69
|
title: (0, _locale.__)('data.del'),
|
|
17
70
|
children: (0, _jsxRuntime.jsx)(_icons.CloseIcon2, {
|
|
@@ -315,6 +315,7 @@ var CustomColumn = function CustomColumn(props) {
|
|
|
315
315
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
316
316
|
className: "Sqb-hover-parent",
|
|
317
317
|
children: [(0, _jsxRuntime.jsx)(_header["default"], {
|
|
318
|
+
meta: meta,
|
|
318
319
|
className: 'gray-text',
|
|
319
320
|
title: (0, _locale.__)('SqlQueryBuilder.customColumn'),
|
|
320
321
|
onClose: function onClose() {
|
|
@@ -172,6 +172,7 @@ var Filter = function Filter(props) {
|
|
|
172
172
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
173
173
|
className: "Sqb-hover-parent",
|
|
174
174
|
children: [!meta.isPermanent ? (0, _jsxRuntime.jsx)(_header["default"], {
|
|
175
|
+
meta: meta,
|
|
175
176
|
className: 'purple-text',
|
|
176
177
|
title: (0, _locale.__)('SqlQueryBuilder.filter'),
|
|
177
178
|
onClose: function onClose() {
|
|
@@ -1458,6 +1458,7 @@ var JoinData = function JoinData(props) {
|
|
|
1458
1458
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
1459
1459
|
className: (0, _classnames["default"])("Sqb-hover-parent"),
|
|
1460
1460
|
children: [(0, _jsxRuntime.jsx)(_header["default"], {
|
|
1461
|
+
meta: meta,
|
|
1461
1462
|
title: (0, _locale.__)('SqlQueryBuilder.joinData'),
|
|
1462
1463
|
onClose: function onClose() {
|
|
1463
1464
|
return store.delMeta(meta, groupIndex);
|
|
@@ -118,6 +118,7 @@ var PermissionTable = function PermissionTable(props) {
|
|
|
118
118
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
119
119
|
className: "Sqb-hover-parent",
|
|
120
120
|
children: [(0, _jsxRuntime.jsx)(_header["default"], {
|
|
121
|
+
meta: meta,
|
|
121
122
|
className: 'gray-text',
|
|
122
123
|
title: (0, _locale.__)('SqlQueryBuilder.permissionTable'),
|
|
123
124
|
onClose: function onClose() {
|
|
@@ -30,6 +30,7 @@ var RowLimit = function RowLimit(props) {
|
|
|
30
30
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
31
31
|
className: (0, _classnames["default"])("Sqb-hover-parent"),
|
|
32
32
|
children: [(0, _jsxRuntime.jsx)(_header["default"], {
|
|
33
|
+
meta: meta,
|
|
33
34
|
className: 'gray-text',
|
|
34
35
|
title: (0, _locale.__)('SqlQueryBuilder.rowLimit'),
|
|
35
36
|
onClose: function onClose() {
|
|
@@ -241,6 +241,7 @@ var Sort = function Sort(props) {
|
|
|
241
241
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
242
242
|
className: (0, _classnames["default"])("Sqb-hover-parent"),
|
|
243
243
|
children: [(0, _jsxRuntime.jsx)(_header["default"], {
|
|
244
|
+
meta: meta,
|
|
244
245
|
className: 'gray-text',
|
|
245
246
|
title: (0, _locale.__)('SqlQueryBuilder.sort'),
|
|
246
247
|
onClose: function onClose() {
|
|
@@ -23,6 +23,7 @@ var Summarize = function Summarize(props) {
|
|
|
23
23
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
24
24
|
className: (0, _classnames["default"])("Sqb-hover-parent"),
|
|
25
25
|
children: [(0, _jsxRuntime.jsx)(_header["default"], {
|
|
26
|
+
meta: meta,
|
|
26
27
|
className: 'green-text',
|
|
27
28
|
title: (0, _locale.__)('SqlQueryBuilder.summarize'),
|
|
28
29
|
onClose: function onClose() {
|
|
@@ -296,6 +296,7 @@ var TableData = function TableData(props) {
|
|
|
296
296
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
297
297
|
className: "Sqb-hover-parent",
|
|
298
298
|
children: [(0, _jsxRuntime.jsx)(_header["default"], {
|
|
299
|
+
meta: meta,
|
|
299
300
|
title: (0, _locale.__)('SqlQueryBuilder.data')
|
|
300
301
|
}), (0, _jsxRuntime.jsx)("div", {
|
|
301
302
|
className: "Sqb-item--content",
|
|
@@ -48,6 +48,7 @@ var RowLimit = function RowLimit(props) {
|
|
|
48
48
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
49
49
|
className: (0, _classnames["default"])("Sqb-hover-parent"),
|
|
50
50
|
children: [(0, _jsxRuntime.jsx)(_header["default"], {
|
|
51
|
+
meta: meta,
|
|
51
52
|
title: (0, _locale.__)('SqlQueryBuilder.union'),
|
|
52
53
|
onClose: function onClose() {
|
|
53
54
|
return store.delMeta(meta, groupIndex);
|
|
@@ -166,6 +166,14 @@ var useStore = function useStore() {
|
|
|
166
166
|
_useState54 = (0, _slicedToArray2["default"])(_useState53, 2),
|
|
167
167
|
metabaseCopy = _useState54[0],
|
|
168
168
|
setMetabaseCopy = _useState54[1]; // 是否开启复制功能
|
|
169
|
+
var _useState55 = (0, _react.useState)(false),
|
|
170
|
+
_useState56 = (0, _slicedToArray2["default"])(_useState55, 2),
|
|
171
|
+
moduleDiff = _useState56[0],
|
|
172
|
+
setModuleDiff = _useState56[1]; // 是否开启模块比对功能
|
|
173
|
+
var _useState57 = (0, _react.useState)([]),
|
|
174
|
+
_useState58 = (0, _slicedToArray2["default"])(_useState57, 2),
|
|
175
|
+
sourceData = _useState58[0],
|
|
176
|
+
setSourceData = _useState58[1]; // 原始数据
|
|
169
177
|
// 外层ref
|
|
170
178
|
var popupContainer = (0, _react.useRef)();
|
|
171
179
|
// const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(
|
|
@@ -177,9 +185,43 @@ var useStore = function useStore() {
|
|
|
177
185
|
};
|
|
178
186
|
var fetchColumnsFn = (0, _react.useRef)();
|
|
179
187
|
var fetchChangeFn = (0, _react.useRef)();
|
|
188
|
+
var fetchDiffFn = (0, _react.useRef)();
|
|
180
189
|
var setFetchChangeFn = function setFetchChangeFn(fn) {
|
|
181
190
|
fetchChangeFn.current = fn;
|
|
182
191
|
};
|
|
192
|
+
var setFetchDiffFn = function setFetchDiffFn(fn) {
|
|
193
|
+
fetchDiffFn.current = fn;
|
|
194
|
+
};
|
|
195
|
+
// 获取所有数据表
|
|
196
|
+
var getModuleDiffCode = /*#__PURE__*/function () {
|
|
197
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
198
|
+
var oldCode,
|
|
199
|
+
newCode,
|
|
200
|
+
data,
|
|
201
|
+
_args = arguments;
|
|
202
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
203
|
+
while (1) switch (_context.prev = _context.next) {
|
|
204
|
+
case 0:
|
|
205
|
+
oldCode = _args.length > 0 && _args[0] !== undefined ? _args[0] : [];
|
|
206
|
+
newCode = _args.length > 1 ? _args[1] : undefined;
|
|
207
|
+
_context.next = 1;
|
|
208
|
+
return fetchDiffFn.current({
|
|
209
|
+
oldCode: oldCode,
|
|
210
|
+
newCode: newCode
|
|
211
|
+
});
|
|
212
|
+
case 1:
|
|
213
|
+
data = _context.sent;
|
|
214
|
+
return _context.abrupt("return", data);
|
|
215
|
+
case 2:
|
|
216
|
+
case "end":
|
|
217
|
+
return _context.stop();
|
|
218
|
+
}
|
|
219
|
+
}, _callee);
|
|
220
|
+
}));
|
|
221
|
+
return function getModuleDiffCode() {
|
|
222
|
+
return _ref.apply(this, arguments);
|
|
223
|
+
};
|
|
224
|
+
}();
|
|
183
225
|
var setFetchColumnsFn = function setFetchColumnsFn(fn) {
|
|
184
226
|
fetchColumnsFn.current = fn;
|
|
185
227
|
};
|
|
@@ -218,46 +260,46 @@ var useStore = function useStore() {
|
|
|
218
260
|
}, [sourceList, isExit, tableFlat]);
|
|
219
261
|
// 获取所有数据表
|
|
220
262
|
var getSourceTable = /*#__PURE__*/function () {
|
|
221
|
-
var
|
|
263
|
+
var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(source) {
|
|
222
264
|
var results;
|
|
223
|
-
return _regenerator["default"].wrap(function (
|
|
224
|
-
while (1) switch (
|
|
265
|
+
return _regenerator["default"].wrap(function (_context3) {
|
|
266
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
225
267
|
case 0:
|
|
226
|
-
|
|
268
|
+
_context3.next = 1;
|
|
227
269
|
return Promise.all(source.map(/*#__PURE__*/function () {
|
|
228
|
-
var
|
|
270
|
+
var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(v) {
|
|
229
271
|
var tables;
|
|
230
|
-
return _regenerator["default"].wrap(function (
|
|
231
|
-
while (1) switch (
|
|
272
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
273
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
232
274
|
case 0:
|
|
233
|
-
|
|
275
|
+
_context2.next = 1;
|
|
234
276
|
return fetchDataset(v.datasourceId);
|
|
235
277
|
case 1:
|
|
236
|
-
tables =
|
|
237
|
-
return
|
|
278
|
+
tables = _context2.sent;
|
|
279
|
+
return _context2.abrupt("return", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
238
280
|
children: tables
|
|
239
281
|
}));
|
|
240
282
|
case 2:
|
|
241
283
|
case "end":
|
|
242
|
-
return
|
|
284
|
+
return _context2.stop();
|
|
243
285
|
}
|
|
244
|
-
},
|
|
286
|
+
}, _callee2);
|
|
245
287
|
}));
|
|
246
288
|
return function (_x2) {
|
|
247
|
-
return
|
|
289
|
+
return _ref3.apply(this, arguments);
|
|
248
290
|
};
|
|
249
291
|
}()));
|
|
250
292
|
case 1:
|
|
251
|
-
results =
|
|
293
|
+
results = _context3.sent;
|
|
252
294
|
setSourceTable(results || []);
|
|
253
295
|
case 2:
|
|
254
296
|
case "end":
|
|
255
|
-
return
|
|
297
|
+
return _context3.stop();
|
|
256
298
|
}
|
|
257
|
-
},
|
|
299
|
+
}, _callee3);
|
|
258
300
|
}));
|
|
259
301
|
return function getSourceTable(_x) {
|
|
260
|
-
return
|
|
302
|
+
return _ref2.apply(this, arguments);
|
|
261
303
|
};
|
|
262
304
|
}();
|
|
263
305
|
// const showMainColumn = useMemo(() => {
|
|
@@ -276,41 +318,41 @@ var useStore = function useStore() {
|
|
|
276
318
|
return !!~toolbar.indexOf(name);
|
|
277
319
|
};
|
|
278
320
|
var fetchDataset = /*#__PURE__*/function () {
|
|
279
|
-
var
|
|
321
|
+
var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(datasourceId) {
|
|
280
322
|
var tables, _tables;
|
|
281
|
-
return _regenerator["default"].wrap(function (
|
|
282
|
-
while (1) switch (
|
|
323
|
+
return _regenerator["default"].wrap(function (_context4) {
|
|
324
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
283
325
|
case 0:
|
|
284
326
|
tables = getDataset(datasourceId);
|
|
285
327
|
if (!tables.length) {
|
|
286
|
-
|
|
328
|
+
_context4.next = 1;
|
|
287
329
|
break;
|
|
288
330
|
}
|
|
289
|
-
return
|
|
331
|
+
return _context4.abrupt("return", tables);
|
|
290
332
|
case 1:
|
|
291
|
-
|
|
333
|
+
_context4.next = 2;
|
|
292
334
|
return fetchDatasetFn.current(datasourceId, {
|
|
293
335
|
isExit: isExit
|
|
294
336
|
});
|
|
295
337
|
case 2:
|
|
296
|
-
_tables =
|
|
338
|
+
_tables = _context4.sent;
|
|
297
339
|
setDataset(datasourceId, _tables);
|
|
298
|
-
return
|
|
340
|
+
return _context4.abrupt("return", _tables);
|
|
299
341
|
case 3:
|
|
300
342
|
case "end":
|
|
301
|
-
return
|
|
343
|
+
return _context4.stop();
|
|
302
344
|
}
|
|
303
|
-
},
|
|
345
|
+
}, _callee4);
|
|
304
346
|
}));
|
|
305
347
|
return function fetchDataset(_x3) {
|
|
306
|
-
return
|
|
348
|
+
return _ref4.apply(this, arguments);
|
|
307
349
|
};
|
|
308
350
|
}();
|
|
309
351
|
// 根据数据源id查询集合列表
|
|
310
352
|
// fetchDataset():
|
|
311
353
|
// 查询表字段
|
|
312
354
|
var fetchColumns = /*#__PURE__*/function () {
|
|
313
|
-
var
|
|
355
|
+
var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(table, datasourceId) {
|
|
314
356
|
var _columns2;
|
|
315
357
|
var oldColumns,
|
|
316
358
|
callback,
|
|
@@ -326,13 +368,13 @@ var useStore = function useStore() {
|
|
|
326
368
|
tableName,
|
|
327
369
|
columns,
|
|
328
370
|
_columns,
|
|
329
|
-
|
|
330
|
-
return _regenerator["default"].wrap(function (
|
|
331
|
-
while (1) switch (
|
|
371
|
+
_args5 = arguments;
|
|
372
|
+
return _regenerator["default"].wrap(function (_context5) {
|
|
373
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
332
374
|
case 0:
|
|
333
|
-
oldColumns =
|
|
334
|
-
callback =
|
|
335
|
-
isSelect =
|
|
375
|
+
oldColumns = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : [];
|
|
376
|
+
callback = _args5.length > 3 ? _args5[3] : undefined;
|
|
377
|
+
isSelect = _args5.length > 4 && _args5[4] !== undefined ? _args5[4] : isSelectFields;
|
|
336
378
|
// 获取之前选中的数据
|
|
337
379
|
oldObj = {};
|
|
338
380
|
selectId = oldColumns.filter(function (v) {
|
|
@@ -347,15 +389,15 @@ var useStore = function useStore() {
|
|
|
347
389
|
tableName = table.name;
|
|
348
390
|
columns = getColumns(tableName);
|
|
349
391
|
if (columns.length) {
|
|
350
|
-
|
|
392
|
+
_context5.next = 2;
|
|
351
393
|
break;
|
|
352
394
|
}
|
|
353
|
-
|
|
395
|
+
_context5.next = 1;
|
|
354
396
|
return fetchColumnsFn.current(extra, datasourceId, {
|
|
355
397
|
isExit: isExit
|
|
356
398
|
});
|
|
357
399
|
case 1:
|
|
358
|
-
columns =
|
|
400
|
+
columns = _context5.sent;
|
|
359
401
|
setColumns(tableName, columns);
|
|
360
402
|
case 2:
|
|
361
403
|
_columns = (_columns2 = columns) === null || _columns2 === void 0 ? void 0 : _columns2.map(function (v) {
|
|
@@ -370,26 +412,26 @@ var useStore = function useStore() {
|
|
|
370
412
|
typeof callback === 'function' && callback(_columns);
|
|
371
413
|
case 3:
|
|
372
414
|
case "end":
|
|
373
|
-
return
|
|
415
|
+
return _context5.stop();
|
|
374
416
|
}
|
|
375
|
-
},
|
|
417
|
+
}, _callee5);
|
|
376
418
|
}));
|
|
377
419
|
return function fetchColumns(_x4, _x5) {
|
|
378
|
-
return
|
|
420
|
+
return _ref5.apply(this, arguments);
|
|
379
421
|
};
|
|
380
422
|
}();
|
|
381
423
|
var setMeta = /*#__PURE__*/function () {
|
|
382
|
-
var
|
|
424
|
+
var _ref6 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(curData, groupInd) {
|
|
383
425
|
var changeObj,
|
|
384
426
|
_metaList,
|
|
385
427
|
newMeta,
|
|
386
428
|
isChange,
|
|
387
|
-
|
|
388
|
-
return _regenerator["default"].wrap(function (
|
|
389
|
-
while (1) switch (
|
|
429
|
+
_args6 = arguments;
|
|
430
|
+
return _regenerator["default"].wrap(function (_context6) {
|
|
431
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
390
432
|
case 0:
|
|
391
|
-
changeObj =
|
|
392
|
-
_metaList =
|
|
433
|
+
changeObj = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : {};
|
|
434
|
+
_metaList = _args6.length > 3 && _args6[3] !== undefined ? _args6[3] : metaList;
|
|
393
435
|
newMeta = (0, _cloneDeep["default"])(_metaList);
|
|
394
436
|
if (newMeta[groupInd]) {
|
|
395
437
|
newMeta[groupInd].list = curData;
|
|
@@ -397,29 +439,29 @@ var useStore = function useStore() {
|
|
|
397
439
|
}
|
|
398
440
|
// 过滤掉初始化
|
|
399
441
|
if (!(changeObj === 'init')) {
|
|
400
|
-
|
|
442
|
+
_context6.next = 1;
|
|
401
443
|
break;
|
|
402
444
|
}
|
|
403
|
-
return
|
|
445
|
+
return _context6.abrupt("return");
|
|
404
446
|
case 1:
|
|
405
|
-
|
|
447
|
+
_context6.next = 2;
|
|
406
448
|
return fetchChangeFn.current((0, _utils.splitByUnion)(_metaList), changeObj, {
|
|
407
449
|
isExit: isExit
|
|
408
450
|
});
|
|
409
451
|
case 2:
|
|
410
|
-
isChange =
|
|
452
|
+
isChange = _context6.sent;
|
|
411
453
|
// 是否还原
|
|
412
454
|
if (isChange === false) {
|
|
413
455
|
_setMeta(_metaList);
|
|
414
456
|
}
|
|
415
457
|
case 3:
|
|
416
458
|
case "end":
|
|
417
|
-
return
|
|
459
|
+
return _context6.stop();
|
|
418
460
|
}
|
|
419
|
-
},
|
|
461
|
+
}, _callee6);
|
|
420
462
|
}));
|
|
421
463
|
return function setMeta(_x6, _x7) {
|
|
422
|
-
return
|
|
464
|
+
return _ref6.apply(this, arguments);
|
|
423
465
|
};
|
|
424
466
|
}();
|
|
425
467
|
// 回显
|
|
@@ -755,7 +797,13 @@ var useStore = function useStore() {
|
|
|
755
797
|
copyType: copyType,
|
|
756
798
|
setCopyType: setCopyType,
|
|
757
799
|
metabaseCopy: metabaseCopy,
|
|
758
|
-
setMetabaseCopy: setMetabaseCopy
|
|
800
|
+
setMetabaseCopy: setMetabaseCopy,
|
|
801
|
+
moduleDiff: moduleDiff,
|
|
802
|
+
setModuleDiff: setModuleDiff,
|
|
803
|
+
sourceData: sourceData,
|
|
804
|
+
setSourceData: setSourceData,
|
|
805
|
+
setFetchDiffFn: setFetchDiffFn,
|
|
806
|
+
getModuleDiffCode: getModuleDiffCode
|
|
759
807
|
};
|
|
760
808
|
};
|
|
761
809
|
var _default = exports["default"] = useStore;
|
package/lib/cjs/index.js
CHANGED
|
@@ -17,6 +17,7 @@ var _locale = require("./locale");
|
|
|
17
17
|
var _Loading = _interopRequireDefault(require("./common/Loading"));
|
|
18
18
|
var _metabase = _interopRequireDefault(require("./components/metabase"));
|
|
19
19
|
var _utils = require("./utils");
|
|
20
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
20
21
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
21
22
|
// export { restoreStructure, handleSqlStruct, compressionStructure } from './store/helper';
|
|
22
23
|
|
|
@@ -34,6 +35,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
|
|
|
34
35
|
getTables = props.getTables,
|
|
35
36
|
getColumns = props.getColumns,
|
|
36
37
|
onChange = props.onChange,
|
|
38
|
+
getModuleDiffCode = props.getModuleDiffCode,
|
|
37
39
|
_props$tableNameTpl = props.tableNameTpl,
|
|
38
40
|
tableNameTpl = _props$tableNameTpl === void 0 ? '${name}' : _props$tableNameTpl,
|
|
39
41
|
_props$fieldNameTpl = props.fieldNameTpl,
|
|
@@ -68,23 +70,26 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
|
|
|
68
70
|
isSelectFields = _props$isSelectFields === void 0 ? true : _props$isSelectFields,
|
|
69
71
|
_props$tableFlat = props.tableFlat,
|
|
70
72
|
tableFlat = _props$tableFlat === void 0 ? false : _props$tableFlat,
|
|
71
|
-
|
|
72
|
-
copyType = _props$copyType === void 0 ? [] : _props$copyType,
|
|
73
|
+
copyType = props.copyType,
|
|
73
74
|
_props$metabaseCopy = props.metabaseCopy,
|
|
74
|
-
metabaseCopy = _props$metabaseCopy === void 0 ? false : _props$metabaseCopy
|
|
75
|
+
metabaseCopy = _props$metabaseCopy === void 0 ? false : _props$metabaseCopy,
|
|
76
|
+
_props$moduleDiff = props.moduleDiff,
|
|
77
|
+
moduleDiff = _props$moduleDiff === void 0 ? false : _props$moduleDiff;
|
|
75
78
|
var store = (0, _useState["default"])();
|
|
76
79
|
(0, _react.useEffect)(function () {
|
|
77
80
|
getTables && store.setFetchDatasetFn(getTables);
|
|
78
81
|
getColumns && store.setFetchColumnsFn(getColumns);
|
|
79
82
|
onChange && store.setFetchChangeFn(onChange);
|
|
83
|
+
getModuleDiffCode && store.setFetchDiffFn(getModuleDiffCode);
|
|
80
84
|
}, []);
|
|
81
85
|
(0, _react.useEffect)(function () {
|
|
82
86
|
store.setProps(props);
|
|
83
87
|
}, [props]);
|
|
84
88
|
(0, _react.useEffect)(function () {
|
|
85
89
|
var _value = (0, _utils.reassembleByUnion)((0, _utils.patchData)(value));
|
|
86
|
-
|
|
87
|
-
store.setPreData(_value);
|
|
90
|
+
var source_value = (0, _utils.patchData)(value);
|
|
91
|
+
store.setPreData((0, _cloneDeep["default"])(_value));
|
|
92
|
+
store.setSourceData(source_value);
|
|
88
93
|
}, [value]);
|
|
89
94
|
(0, _react.useEffect)(function () {
|
|
90
95
|
store.setSourceList(isExit && exitSourceList && Array.from(exitSourceList).length > 0 ? exitSourceList || sourceList : sourceList);
|
|
@@ -106,9 +111,10 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
|
|
|
106
111
|
store.setGroupByEnableAlias(groupByEnableAlias);
|
|
107
112
|
store.setIsSelectFields(isSelectFields);
|
|
108
113
|
store.setTableFlat(tableFlat);
|
|
109
|
-
store.setCopyType(copyType);
|
|
114
|
+
store.setCopyType(copyType || []);
|
|
110
115
|
store.setMetabaseCopy(metabaseCopy);
|
|
111
|
-
|
|
116
|
+
store.setModuleDiff(moduleDiff);
|
|
117
|
+
}, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType, isExit, tableEnableAlias, fieldEnableAlias, groupByEnableAlias, isSelectFields, tableFlat, copyType, metabaseCopy, moduleDiff]);
|
|
112
118
|
_react["default"].useImperativeHandle(ref, function () {
|
|
113
119
|
return {
|
|
114
120
|
// setDatasource: (list) => {
|
package/lib/cjs/types.d.ts
CHANGED
|
@@ -49,6 +49,14 @@ export interface MetabaseProps {
|
|
|
49
49
|
}, options: FetchOptions) => Promise<void | Boolean>;
|
|
50
50
|
copyType?: (FormulaTypeEnum | string)[];
|
|
51
51
|
metabaseCopy?: boolean;
|
|
52
|
+
moduleDiff?: boolean;
|
|
53
|
+
getModuleDiffCode?: (obj: {
|
|
54
|
+
oldCode: MetaListType;
|
|
55
|
+
newCode: MetaListType;
|
|
56
|
+
}) => Promise<{
|
|
57
|
+
oldCode: string;
|
|
58
|
+
newCode: string;
|
|
59
|
+
}>;
|
|
52
60
|
}
|
|
53
61
|
export interface OptionItem {
|
|
54
62
|
value?: string;
|
package/lib/cjs/utils.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { TypeEnum } from './store/enum';
|
|
|
2
2
|
import { MetaListType, MetaSummarize, MetaData_TableType, MetaData_ColumnsType, AtomsItem } from './store/types';
|
|
3
3
|
import { DataType } from './components/dialog/select-column-multiple';
|
|
4
4
|
export declare const findIndex: <T>(arr: T[], item: T) => number;
|
|
5
|
+
export declare const findMetaKey: <T>(arr: T[], item: T) => number;
|
|
5
6
|
export declare const getMetaTabels: (data: MetaListType[]) => any;
|
|
6
7
|
export declare const getColumnsTables: (data: DataType[]) => any;
|
|
7
8
|
interface HelperResultType {
|
package/lib/cjs/utils.js
CHANGED
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.isError = exports.getSubColumns = exports.getMetaTabels = exports.getHelper = exports.getColumnsTables = exports.findIndex = exports.changeTableAlias = exports.changeFieldAlias = exports.changeExistsCopyField = exports.changeCopyField = exports.buildSqlQuery = void 0;
|
|
7
|
+
exports.isError = exports.getSubColumns = exports.getMetaTabels = exports.getHelper = exports.getColumnsTables = exports.findMetaKey = exports.findIndex = exports.changeTableAlias = exports.changeFieldAlias = exports.changeExistsCopyField = exports.changeCopyField = exports.buildSqlQuery = void 0;
|
|
8
8
|
exports.isValidSQLAlias = isValidSQLAlias;
|
|
9
9
|
exports.patchData = void 0;
|
|
10
10
|
exports.reassembleByUnion = reassembleByUnion;
|
|
@@ -26,6 +26,11 @@ var _excluded = ["list"];
|
|
|
26
26
|
var findIndex = exports.findIndex = function findIndex(arr, item) {
|
|
27
27
|
return arr.indexOf(item);
|
|
28
28
|
};
|
|
29
|
+
var findMetaKey = exports.findMetaKey = function findMetaKey(arr, item) {
|
|
30
|
+
return arr.findIndex(function (v) {
|
|
31
|
+
return v.metaKey === item.metaKey;
|
|
32
|
+
});
|
|
33
|
+
};
|
|
29
34
|
var getMetaTabels = exports.getMetaTabels = function getMetaTabels(data) {
|
|
30
35
|
var obj = {};
|
|
31
36
|
data.map(function (v) {
|
|
@@ -1,11 +1,63 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
1
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Tooltip } from '@gingkoo/pandora';
|
|
4
|
+
import { Tooltip, Button, Modal2 } from '@gingkoo/pandora';
|
|
3
5
|
import { CloseIcon2 } from '../../icons';
|
|
4
6
|
import { __ } from '../../../locale';
|
|
7
|
+
import { useStore } from '../../../hooks/use-provider';
|
|
8
|
+
import { findMetaKey } from '../../../utils';
|
|
9
|
+
import DiffViewer from '../../dialog/diff-viewer';
|
|
5
10
|
var Header = function Header(props) {
|
|
11
|
+
var meta = props.meta;
|
|
12
|
+
var store = useStore();
|
|
13
|
+
var diff = /*#__PURE__*/function () {
|
|
14
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
15
|
+
var index, _oldMeta, _newMeta, _yield$store$getModul, oldCode, newCode, o;
|
|
16
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
17
|
+
while (1) switch (_context.prev = _context.next) {
|
|
18
|
+
case 0:
|
|
19
|
+
index = findMetaKey(store.sourceData, meta);
|
|
20
|
+
_oldMeta = store.sourceData[index];
|
|
21
|
+
_newMeta = meta;
|
|
22
|
+
_context.next = 1;
|
|
23
|
+
return store.getModuleDiffCode(_oldMeta, _newMeta);
|
|
24
|
+
case 1:
|
|
25
|
+
_yield$store$getModul = _context.sent;
|
|
26
|
+
oldCode = _yield$store$getModul.oldCode;
|
|
27
|
+
newCode = _yield$store$getModul.newCode;
|
|
28
|
+
o = Modal2.openModal({
|
|
29
|
+
title: '差异对比',
|
|
30
|
+
transparentMask: true,
|
|
31
|
+
content: _jsx(DiffViewer, {
|
|
32
|
+
oldCode: oldCode,
|
|
33
|
+
newCode: newCode
|
|
34
|
+
}),
|
|
35
|
+
onClose: function onClose() {}
|
|
36
|
+
});
|
|
37
|
+
case 2:
|
|
38
|
+
case "end":
|
|
39
|
+
return _context.stop();
|
|
40
|
+
}
|
|
41
|
+
}, _callee);
|
|
42
|
+
}));
|
|
43
|
+
return function diff() {
|
|
44
|
+
return _ref.apply(this, arguments);
|
|
45
|
+
};
|
|
46
|
+
}();
|
|
6
47
|
return _jsxs("div", {
|
|
7
48
|
className: "Sqb-item--text ".concat(props.className || ''),
|
|
8
|
-
children: [props.title,
|
|
49
|
+
children: [props.title, store.moduleDiff && _jsx(Tooltip, {
|
|
50
|
+
title: '点击比对当前模块与初始模块的差异',
|
|
51
|
+
children: _jsx(Button, {
|
|
52
|
+
style: {
|
|
53
|
+
color: 'inherit'
|
|
54
|
+
},
|
|
55
|
+
size: 'small',
|
|
56
|
+
type: 'link',
|
|
57
|
+
onClick: diff,
|
|
58
|
+
children: "\u5DEE\u5F02\u5BF9\u6BD4"
|
|
59
|
+
})
|
|
60
|
+
}), props.onClose && _jsx(Tooltip, {
|
|
9
61
|
placement: 'top',
|
|
10
62
|
title: __('data.del'),
|
|
11
63
|
children: _jsx(CloseIcon2, {
|
|
@@ -311,6 +311,7 @@ var CustomColumn = function CustomColumn(props) {
|
|
|
311
311
|
children: _jsxs("div", {
|
|
312
312
|
className: "Sqb-hover-parent",
|
|
313
313
|
children: [_jsx(Header, {
|
|
314
|
+
meta: meta,
|
|
314
315
|
className: 'gray-text',
|
|
315
316
|
title: __('SqlQueryBuilder.customColumn'),
|
|
316
317
|
onClose: function onClose() {
|
|
@@ -164,6 +164,7 @@ var Filter = function Filter(props) {
|
|
|
164
164
|
children: _jsxs("div", {
|
|
165
165
|
className: "Sqb-hover-parent",
|
|
166
166
|
children: [!meta.isPermanent ? _jsx(Header, {
|
|
167
|
+
meta: meta,
|
|
167
168
|
className: 'purple-text',
|
|
168
169
|
title: __('SqlQueryBuilder.filter'),
|
|
169
170
|
onClose: function onClose() {
|
|
@@ -1453,6 +1453,7 @@ var JoinData = function JoinData(props) {
|
|
|
1453
1453
|
children: _jsxs("div", {
|
|
1454
1454
|
className: cx("Sqb-hover-parent"),
|
|
1455
1455
|
children: [_jsx(Header, {
|
|
1456
|
+
meta: meta,
|
|
1456
1457
|
title: __('SqlQueryBuilder.joinData'),
|
|
1457
1458
|
onClose: function onClose() {
|
|
1458
1459
|
return store.delMeta(meta, groupIndex);
|
|
@@ -112,6 +112,7 @@ var PermissionTable = function PermissionTable(props) {
|
|
|
112
112
|
children: _jsxs("div", {
|
|
113
113
|
className: "Sqb-hover-parent",
|
|
114
114
|
children: [_jsx(Header, {
|
|
115
|
+
meta: meta,
|
|
115
116
|
className: 'gray-text',
|
|
116
117
|
title: __('SqlQueryBuilder.permissionTable'),
|
|
117
118
|
onClose: function onClose() {
|
|
@@ -41,6 +41,7 @@ var RowLimit = function RowLimit(props) {
|
|
|
41
41
|
children: _jsxs("div", {
|
|
42
42
|
className: cx("Sqb-hover-parent"),
|
|
43
43
|
children: [_jsx(Header, {
|
|
44
|
+
meta: meta,
|
|
44
45
|
title: __('SqlQueryBuilder.union'),
|
|
45
46
|
onClose: function onClose() {
|
|
46
47
|
return store.delMeta(meta, groupIndex);
|
|
@@ -160,6 +160,14 @@ var useStore = function useStore() {
|
|
|
160
160
|
_useState54 = _slicedToArray(_useState53, 2),
|
|
161
161
|
metabaseCopy = _useState54[0],
|
|
162
162
|
setMetabaseCopy = _useState54[1]; // 是否开启复制功能
|
|
163
|
+
var _useState55 = useState(false),
|
|
164
|
+
_useState56 = _slicedToArray(_useState55, 2),
|
|
165
|
+
moduleDiff = _useState56[0],
|
|
166
|
+
setModuleDiff = _useState56[1]; // 是否开启模块比对功能
|
|
167
|
+
var _useState57 = useState([]),
|
|
168
|
+
_useState58 = _slicedToArray(_useState57, 2),
|
|
169
|
+
sourceData = _useState58[0],
|
|
170
|
+
setSourceData = _useState58[1]; // 原始数据
|
|
163
171
|
// 外层ref
|
|
164
172
|
var popupContainer = useRef();
|
|
165
173
|
// const [fetchDatasetFn, setFetchDatasetFn] = useState<(id: string) => Promise<any>>(
|
|
@@ -171,9 +179,43 @@ var useStore = function useStore() {
|
|
|
171
179
|
};
|
|
172
180
|
var fetchColumnsFn = useRef();
|
|
173
181
|
var fetchChangeFn = useRef();
|
|
182
|
+
var fetchDiffFn = useRef();
|
|
174
183
|
var setFetchChangeFn = function setFetchChangeFn(fn) {
|
|
175
184
|
fetchChangeFn.current = fn;
|
|
176
185
|
};
|
|
186
|
+
var setFetchDiffFn = function setFetchDiffFn(fn) {
|
|
187
|
+
fetchDiffFn.current = fn;
|
|
188
|
+
};
|
|
189
|
+
// 获取所有数据表
|
|
190
|
+
var getModuleDiffCode = /*#__PURE__*/function () {
|
|
191
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
192
|
+
var oldCode,
|
|
193
|
+
newCode,
|
|
194
|
+
data,
|
|
195
|
+
_args = arguments;
|
|
196
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
197
|
+
while (1) switch (_context.prev = _context.next) {
|
|
198
|
+
case 0:
|
|
199
|
+
oldCode = _args.length > 0 && _args[0] !== undefined ? _args[0] : [];
|
|
200
|
+
newCode = _args.length > 1 ? _args[1] : undefined;
|
|
201
|
+
_context.next = 1;
|
|
202
|
+
return fetchDiffFn.current({
|
|
203
|
+
oldCode: oldCode,
|
|
204
|
+
newCode: newCode
|
|
205
|
+
});
|
|
206
|
+
case 1:
|
|
207
|
+
data = _context.sent;
|
|
208
|
+
return _context.abrupt("return", data);
|
|
209
|
+
case 2:
|
|
210
|
+
case "end":
|
|
211
|
+
return _context.stop();
|
|
212
|
+
}
|
|
213
|
+
}, _callee);
|
|
214
|
+
}));
|
|
215
|
+
return function getModuleDiffCode() {
|
|
216
|
+
return _ref.apply(this, arguments);
|
|
217
|
+
};
|
|
218
|
+
}();
|
|
177
219
|
var setFetchColumnsFn = function setFetchColumnsFn(fn) {
|
|
178
220
|
fetchColumnsFn.current = fn;
|
|
179
221
|
};
|
|
@@ -212,46 +254,46 @@ var useStore = function useStore() {
|
|
|
212
254
|
}, [sourceList, isExit, tableFlat]);
|
|
213
255
|
// 获取所有数据表
|
|
214
256
|
var getSourceTable = /*#__PURE__*/function () {
|
|
215
|
-
var
|
|
257
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(source) {
|
|
216
258
|
var results;
|
|
217
|
-
return _regeneratorRuntime.wrap(function (
|
|
218
|
-
while (1) switch (
|
|
259
|
+
return _regeneratorRuntime.wrap(function (_context3) {
|
|
260
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
219
261
|
case 0:
|
|
220
|
-
|
|
262
|
+
_context3.next = 1;
|
|
221
263
|
return Promise.all(source.map(/*#__PURE__*/function () {
|
|
222
|
-
var
|
|
264
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(v) {
|
|
223
265
|
var tables;
|
|
224
|
-
return _regeneratorRuntime.wrap(function (
|
|
225
|
-
while (1) switch (
|
|
266
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
267
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
226
268
|
case 0:
|
|
227
|
-
|
|
269
|
+
_context2.next = 1;
|
|
228
270
|
return fetchDataset(v.datasourceId);
|
|
229
271
|
case 1:
|
|
230
|
-
tables =
|
|
231
|
-
return
|
|
272
|
+
tables = _context2.sent;
|
|
273
|
+
return _context2.abrupt("return", _objectSpread(_objectSpread({}, v), {}, {
|
|
232
274
|
children: tables
|
|
233
275
|
}));
|
|
234
276
|
case 2:
|
|
235
277
|
case "end":
|
|
236
|
-
return
|
|
278
|
+
return _context2.stop();
|
|
237
279
|
}
|
|
238
|
-
},
|
|
280
|
+
}, _callee2);
|
|
239
281
|
}));
|
|
240
282
|
return function (_x2) {
|
|
241
|
-
return
|
|
283
|
+
return _ref3.apply(this, arguments);
|
|
242
284
|
};
|
|
243
285
|
}()));
|
|
244
286
|
case 1:
|
|
245
|
-
results =
|
|
287
|
+
results = _context3.sent;
|
|
246
288
|
setSourceTable(results || []);
|
|
247
289
|
case 2:
|
|
248
290
|
case "end":
|
|
249
|
-
return
|
|
291
|
+
return _context3.stop();
|
|
250
292
|
}
|
|
251
|
-
},
|
|
293
|
+
}, _callee3);
|
|
252
294
|
}));
|
|
253
295
|
return function getSourceTable(_x) {
|
|
254
|
-
return
|
|
296
|
+
return _ref2.apply(this, arguments);
|
|
255
297
|
};
|
|
256
298
|
}();
|
|
257
299
|
// const showMainColumn = useMemo(() => {
|
|
@@ -270,41 +312,41 @@ var useStore = function useStore() {
|
|
|
270
312
|
return !!~toolbar.indexOf(name);
|
|
271
313
|
};
|
|
272
314
|
var fetchDataset = /*#__PURE__*/function () {
|
|
273
|
-
var
|
|
315
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(datasourceId) {
|
|
274
316
|
var tables, _tables;
|
|
275
|
-
return _regeneratorRuntime.wrap(function (
|
|
276
|
-
while (1) switch (
|
|
317
|
+
return _regeneratorRuntime.wrap(function (_context4) {
|
|
318
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
277
319
|
case 0:
|
|
278
320
|
tables = getDataset(datasourceId);
|
|
279
321
|
if (!tables.length) {
|
|
280
|
-
|
|
322
|
+
_context4.next = 1;
|
|
281
323
|
break;
|
|
282
324
|
}
|
|
283
|
-
return
|
|
325
|
+
return _context4.abrupt("return", tables);
|
|
284
326
|
case 1:
|
|
285
|
-
|
|
327
|
+
_context4.next = 2;
|
|
286
328
|
return fetchDatasetFn.current(datasourceId, {
|
|
287
329
|
isExit: isExit
|
|
288
330
|
});
|
|
289
331
|
case 2:
|
|
290
|
-
_tables =
|
|
332
|
+
_tables = _context4.sent;
|
|
291
333
|
setDataset(datasourceId, _tables);
|
|
292
|
-
return
|
|
334
|
+
return _context4.abrupt("return", _tables);
|
|
293
335
|
case 3:
|
|
294
336
|
case "end":
|
|
295
|
-
return
|
|
337
|
+
return _context4.stop();
|
|
296
338
|
}
|
|
297
|
-
},
|
|
339
|
+
}, _callee4);
|
|
298
340
|
}));
|
|
299
341
|
return function fetchDataset(_x3) {
|
|
300
|
-
return
|
|
342
|
+
return _ref4.apply(this, arguments);
|
|
301
343
|
};
|
|
302
344
|
}();
|
|
303
345
|
// 根据数据源id查询集合列表
|
|
304
346
|
// fetchDataset():
|
|
305
347
|
// 查询表字段
|
|
306
348
|
var fetchColumns = /*#__PURE__*/function () {
|
|
307
|
-
var
|
|
349
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(table, datasourceId) {
|
|
308
350
|
var _columns2;
|
|
309
351
|
var oldColumns,
|
|
310
352
|
callback,
|
|
@@ -320,13 +362,13 @@ var useStore = function useStore() {
|
|
|
320
362
|
tableName,
|
|
321
363
|
columns,
|
|
322
364
|
_columns,
|
|
323
|
-
|
|
324
|
-
return _regeneratorRuntime.wrap(function (
|
|
325
|
-
while (1) switch (
|
|
365
|
+
_args5 = arguments;
|
|
366
|
+
return _regeneratorRuntime.wrap(function (_context5) {
|
|
367
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
326
368
|
case 0:
|
|
327
|
-
oldColumns =
|
|
328
|
-
callback =
|
|
329
|
-
isSelect =
|
|
369
|
+
oldColumns = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : [];
|
|
370
|
+
callback = _args5.length > 3 ? _args5[3] : undefined;
|
|
371
|
+
isSelect = _args5.length > 4 && _args5[4] !== undefined ? _args5[4] : isSelectFields;
|
|
330
372
|
// 获取之前选中的数据
|
|
331
373
|
oldObj = {};
|
|
332
374
|
selectId = oldColumns.filter(function (v) {
|
|
@@ -341,15 +383,15 @@ var useStore = function useStore() {
|
|
|
341
383
|
tableName = table.name;
|
|
342
384
|
columns = getColumns(tableName);
|
|
343
385
|
if (columns.length) {
|
|
344
|
-
|
|
386
|
+
_context5.next = 2;
|
|
345
387
|
break;
|
|
346
388
|
}
|
|
347
|
-
|
|
389
|
+
_context5.next = 1;
|
|
348
390
|
return fetchColumnsFn.current(extra, datasourceId, {
|
|
349
391
|
isExit: isExit
|
|
350
392
|
});
|
|
351
393
|
case 1:
|
|
352
|
-
columns =
|
|
394
|
+
columns = _context5.sent;
|
|
353
395
|
setColumns(tableName, columns);
|
|
354
396
|
case 2:
|
|
355
397
|
_columns = (_columns2 = columns) === null || _columns2 === void 0 ? void 0 : _columns2.map(function (v) {
|
|
@@ -364,26 +406,26 @@ var useStore = function useStore() {
|
|
|
364
406
|
typeof callback === 'function' && callback(_columns);
|
|
365
407
|
case 3:
|
|
366
408
|
case "end":
|
|
367
|
-
return
|
|
409
|
+
return _context5.stop();
|
|
368
410
|
}
|
|
369
|
-
},
|
|
411
|
+
}, _callee5);
|
|
370
412
|
}));
|
|
371
413
|
return function fetchColumns(_x4, _x5) {
|
|
372
|
-
return
|
|
414
|
+
return _ref5.apply(this, arguments);
|
|
373
415
|
};
|
|
374
416
|
}();
|
|
375
417
|
var setMeta = /*#__PURE__*/function () {
|
|
376
|
-
var
|
|
418
|
+
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(curData, groupInd) {
|
|
377
419
|
var changeObj,
|
|
378
420
|
_metaList,
|
|
379
421
|
newMeta,
|
|
380
422
|
isChange,
|
|
381
|
-
|
|
382
|
-
return _regeneratorRuntime.wrap(function (
|
|
383
|
-
while (1) switch (
|
|
423
|
+
_args6 = arguments;
|
|
424
|
+
return _regeneratorRuntime.wrap(function (_context6) {
|
|
425
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
384
426
|
case 0:
|
|
385
|
-
changeObj =
|
|
386
|
-
_metaList =
|
|
427
|
+
changeObj = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : {};
|
|
428
|
+
_metaList = _args6.length > 3 && _args6[3] !== undefined ? _args6[3] : metaList;
|
|
387
429
|
newMeta = cloneDeep(_metaList);
|
|
388
430
|
if (newMeta[groupInd]) {
|
|
389
431
|
newMeta[groupInd].list = curData;
|
|
@@ -391,29 +433,29 @@ var useStore = function useStore() {
|
|
|
391
433
|
}
|
|
392
434
|
// 过滤掉初始化
|
|
393
435
|
if (!(changeObj === 'init')) {
|
|
394
|
-
|
|
436
|
+
_context6.next = 1;
|
|
395
437
|
break;
|
|
396
438
|
}
|
|
397
|
-
return
|
|
439
|
+
return _context6.abrupt("return");
|
|
398
440
|
case 1:
|
|
399
|
-
|
|
441
|
+
_context6.next = 2;
|
|
400
442
|
return fetchChangeFn.current(splitByUnion(_metaList), changeObj, {
|
|
401
443
|
isExit: isExit
|
|
402
444
|
});
|
|
403
445
|
case 2:
|
|
404
|
-
isChange =
|
|
446
|
+
isChange = _context6.sent;
|
|
405
447
|
// 是否还原
|
|
406
448
|
if (isChange === false) {
|
|
407
449
|
_setMeta(_metaList);
|
|
408
450
|
}
|
|
409
451
|
case 3:
|
|
410
452
|
case "end":
|
|
411
|
-
return
|
|
453
|
+
return _context6.stop();
|
|
412
454
|
}
|
|
413
|
-
},
|
|
455
|
+
}, _callee6);
|
|
414
456
|
}));
|
|
415
457
|
return function setMeta(_x6, _x7) {
|
|
416
|
-
return
|
|
458
|
+
return _ref6.apply(this, arguments);
|
|
417
459
|
};
|
|
418
460
|
}();
|
|
419
461
|
// 回显
|
|
@@ -749,7 +791,13 @@ var useStore = function useStore() {
|
|
|
749
791
|
copyType: copyType,
|
|
750
792
|
setCopyType: setCopyType,
|
|
751
793
|
metabaseCopy: metabaseCopy,
|
|
752
|
-
setMetabaseCopy: setMetabaseCopy
|
|
794
|
+
setMetabaseCopy: setMetabaseCopy,
|
|
795
|
+
moduleDiff: moduleDiff,
|
|
796
|
+
setModuleDiff: setModuleDiff,
|
|
797
|
+
sourceData: sourceData,
|
|
798
|
+
setSourceData: setSourceData,
|
|
799
|
+
setFetchDiffFn: setFetchDiffFn,
|
|
800
|
+
getModuleDiffCode: getModuleDiffCode
|
|
753
801
|
};
|
|
754
802
|
};
|
|
755
803
|
export default useStore;
|
package/lib/es/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import { __ } from './locale';
|
|
|
10
10
|
import Loading from './common/Loading';
|
|
11
11
|
import Metabase from './components/metabase';
|
|
12
12
|
import { reassembleByUnion, patchData } from './utils';
|
|
13
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
13
14
|
/**
|
|
14
15
|
* 规则
|
|
15
16
|
* 1、主表一换 下面全部删除
|
|
@@ -24,6 +25,7 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
|
|
|
24
25
|
getTables = props.getTables,
|
|
25
26
|
getColumns = props.getColumns,
|
|
26
27
|
onChange = props.onChange,
|
|
28
|
+
getModuleDiffCode = props.getModuleDiffCode,
|
|
27
29
|
_props$tableNameTpl = props.tableNameTpl,
|
|
28
30
|
tableNameTpl = _props$tableNameTpl === void 0 ? '${name}' : _props$tableNameTpl,
|
|
29
31
|
_props$fieldNameTpl = props.fieldNameTpl,
|
|
@@ -58,23 +60,26 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
|
|
|
58
60
|
isSelectFields = _props$isSelectFields === void 0 ? true : _props$isSelectFields,
|
|
59
61
|
_props$tableFlat = props.tableFlat,
|
|
60
62
|
tableFlat = _props$tableFlat === void 0 ? false : _props$tableFlat,
|
|
61
|
-
|
|
62
|
-
copyType = _props$copyType === void 0 ? [] : _props$copyType,
|
|
63
|
+
copyType = props.copyType,
|
|
63
64
|
_props$metabaseCopy = props.metabaseCopy,
|
|
64
|
-
metabaseCopy = _props$metabaseCopy === void 0 ? false : _props$metabaseCopy
|
|
65
|
+
metabaseCopy = _props$metabaseCopy === void 0 ? false : _props$metabaseCopy,
|
|
66
|
+
_props$moduleDiff = props.moduleDiff,
|
|
67
|
+
moduleDiff = _props$moduleDiff === void 0 ? false : _props$moduleDiff;
|
|
65
68
|
var store = useData();
|
|
66
69
|
useEffect(function () {
|
|
67
70
|
getTables && store.setFetchDatasetFn(getTables);
|
|
68
71
|
getColumns && store.setFetchColumnsFn(getColumns);
|
|
69
72
|
onChange && store.setFetchChangeFn(onChange);
|
|
73
|
+
getModuleDiffCode && store.setFetchDiffFn(getModuleDiffCode);
|
|
70
74
|
}, []);
|
|
71
75
|
useEffect(function () {
|
|
72
76
|
store.setProps(props);
|
|
73
77
|
}, [props]);
|
|
74
78
|
useEffect(function () {
|
|
75
79
|
var _value = reassembleByUnion(patchData(value));
|
|
76
|
-
|
|
77
|
-
store.setPreData(_value);
|
|
80
|
+
var source_value = patchData(value);
|
|
81
|
+
store.setPreData(cloneDeep(_value));
|
|
82
|
+
store.setSourceData(source_value);
|
|
78
83
|
}, [value]);
|
|
79
84
|
useEffect(function () {
|
|
80
85
|
store.setSourceList(isExit && exitSourceList && Array.from(exitSourceList).length > 0 ? exitSourceList || sourceList : sourceList);
|
|
@@ -96,9 +101,10 @@ var SqlVisionBuilder = React.forwardRef(function (props, ref) {
|
|
|
96
101
|
store.setGroupByEnableAlias(groupByEnableAlias);
|
|
97
102
|
store.setIsSelectFields(isSelectFields);
|
|
98
103
|
store.setTableFlat(tableFlat);
|
|
99
|
-
store.setCopyType(copyType);
|
|
104
|
+
store.setCopyType(copyType || []);
|
|
100
105
|
store.setMetabaseCopy(metabaseCopy);
|
|
101
|
-
|
|
106
|
+
store.setModuleDiff(moduleDiff);
|
|
107
|
+
}, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType, isExit, tableEnableAlias, fieldEnableAlias, groupByEnableAlias, isSelectFields, tableFlat, copyType, metabaseCopy, moduleDiff]);
|
|
102
108
|
React.useImperativeHandle(ref, function () {
|
|
103
109
|
return {
|
|
104
110
|
// setDatasource: (list) => {
|
package/lib/es/types.d.ts
CHANGED
|
@@ -49,6 +49,14 @@ export interface MetabaseProps {
|
|
|
49
49
|
}, options: FetchOptions) => Promise<void | Boolean>;
|
|
50
50
|
copyType?: (FormulaTypeEnum | string)[];
|
|
51
51
|
metabaseCopy?: boolean;
|
|
52
|
+
moduleDiff?: boolean;
|
|
53
|
+
getModuleDiffCode?: (obj: {
|
|
54
|
+
oldCode: MetaListType;
|
|
55
|
+
newCode: MetaListType;
|
|
56
|
+
}) => Promise<{
|
|
57
|
+
oldCode: string;
|
|
58
|
+
newCode: string;
|
|
59
|
+
}>;
|
|
52
60
|
}
|
|
53
61
|
export interface OptionItem {
|
|
54
62
|
value?: string;
|
package/lib/es/utils.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { TypeEnum } from './store/enum';
|
|
|
2
2
|
import { MetaListType, MetaSummarize, MetaData_TableType, MetaData_ColumnsType, AtomsItem } from './store/types';
|
|
3
3
|
import { DataType } from './components/dialog/select-column-multiple';
|
|
4
4
|
export declare const findIndex: <T>(arr: T[], item: T) => number;
|
|
5
|
+
export declare const findMetaKey: <T>(arr: T[], item: T) => number;
|
|
5
6
|
export declare const getMetaTabels: (data: MetaListType[]) => any;
|
|
6
7
|
export declare const getColumnsTables: (data: DataType[]) => any;
|
|
7
8
|
interface HelperResultType {
|
package/lib/es/utils.js
CHANGED
|
@@ -15,6 +15,11 @@ import { patchMetas } from './hooks/patch';
|
|
|
15
15
|
export var findIndex = function findIndex(arr, item) {
|
|
16
16
|
return arr.indexOf(item);
|
|
17
17
|
};
|
|
18
|
+
export var findMetaKey = function findMetaKey(arr, item) {
|
|
19
|
+
return arr.findIndex(function (v) {
|
|
20
|
+
return v.metaKey === item.metaKey;
|
|
21
|
+
});
|
|
22
|
+
};
|
|
18
23
|
export var getMetaTabels = function getMetaTabels(data) {
|
|
19
24
|
var obj = {};
|
|
20
25
|
data.map(function (v) {
|