@gingkoo/pandora-metabase 1.0.129 → 1.0.131
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/dialog/formula-list/utils.js +0 -3
- package/lib/cjs/components/dialog/select-column/index.js +2 -2
- package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +0 -1
- package/lib/cjs/components/dialog/select-column-multiple/index.js +44 -19
- package/lib/cjs/components/dialog/select-join-column/index.js +23 -7
- package/lib/cjs/components/dialog/select-join-column-multiple/index.js +15 -6
- package/lib/cjs/components/dialog/select-permission-table/index.js +2 -2
- package/lib/cjs/components/dialog/select-summarize/index.js +1 -3
- package/lib/cjs/components/dialog/select-table/index.d.ts +1 -2
- package/lib/cjs/components/dialog/select-table/index.js +230 -210
- package/lib/cjs/components/dialog/select-table/index.less +51 -36
- package/lib/cjs/components/metabase/index.js +34 -16
- package/lib/cjs/components/modules/components/item-name.js +0 -1
- package/lib/cjs/components/modules/custom-column.js +3 -7
- package/lib/cjs/components/modules/filter.js +3 -6
- package/lib/cjs/components/modules/join-data.js +41 -87
- package/lib/cjs/components/modules/permission-table.js +5 -9
- package/lib/cjs/components/modules/sort.js +1 -2
- package/lib/cjs/components/modules/summarize/group-by.js +1 -8
- package/lib/cjs/components/modules/summarize/select-index.js +1 -4
- package/lib/cjs/components/modules/table-data.js +28 -44
- package/lib/cjs/hooks/use-state.js +22 -147
- package/lib/cjs/index.js +1 -7
- package/lib/cjs/locale/en.js +1 -0
- package/lib/cjs/locale/zh.js +1 -0
- package/lib/cjs/store/types.d.ts +4 -5
- package/lib/cjs/types.d.ts +0 -8
- package/lib/cjs/utils/helper.d.ts +4 -0
- package/lib/cjs/utils/helper.js +102 -1
- package/lib/cjs/utils/transformSql.js +0 -2
- package/lib/cjs/utils.js +38 -18
- package/lib/es/components/dialog/expression/index.js +0 -1
- package/lib/es/components/dialog/formula-list/utils.js +0 -3
- package/lib/es/components/dialog/select-column/index.js +3 -3
- package/lib/es/components/dialog/select-column-multiple/index.d.ts +0 -1
- package/lib/es/components/dialog/select-column-multiple/index.js +45 -21
- package/lib/es/components/dialog/select-join-column/index.js +24 -8
- package/lib/es/components/dialog/select-join-column-multiple/index.js +16 -7
- package/lib/es/components/dialog/select-permission-table/index.js +3 -3
- package/lib/es/components/dialog/select-summarize/index.js +1 -3
- package/lib/es/components/dialog/select-table/index.d.ts +1 -2
- package/lib/es/components/dialog/select-table/index.js +232 -212
- package/lib/es/components/dialog/select-table/index.less +51 -36
- package/lib/es/components/metabase/index.js +34 -16
- package/lib/es/components/modules/components/item-name.js +0 -1
- package/lib/es/components/modules/custom-column.js +3 -7
- package/lib/es/components/modules/filter.js +3 -6
- package/lib/es/components/modules/join-data.js +42 -88
- package/lib/es/components/modules/permission-table.js +6 -10
- package/lib/es/components/modules/sort.js +1 -2
- package/lib/es/components/modules/summarize/group-by.js +1 -8
- package/lib/es/components/modules/summarize/select-index.js +1 -4
- package/lib/es/components/modules/table-data.js +29 -45
- package/lib/es/hooks/use-state.js +23 -148
- package/lib/es/index.js +1 -7
- package/lib/es/locale/en.js +1 -0
- package/lib/es/locale/zh.js +1 -0
- package/lib/es/store/types.d.ts +4 -5
- package/lib/es/types.d.ts +0 -8
- package/lib/es/utils/helper.d.ts +4 -0
- package/lib/es/utils/helper.js +101 -0
- package/lib/es/utils/transformSql.js +0 -2
- package/lib/es/utils.js +39 -19
- package/package.json +1 -1
|
@@ -7,20 +7,75 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
10
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
11
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
12
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
13
|
+
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
15
|
require("./index.less");
|
|
15
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
16
|
-
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
17
17
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
18
|
+
var _pandora = require("@gingkoo/pandora");
|
|
18
19
|
var _helper = require("../../../utils/helper");
|
|
19
20
|
var _useProvider = require("../../../hooks/use-provider");
|
|
20
21
|
var _Loading = _interopRequireDefault(require("../../../common/Loading"));
|
|
21
22
|
var _locale = require("../../../locale");
|
|
22
23
|
var _icons = require("../../icons");
|
|
23
24
|
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); }
|
|
25
|
+
function focusWithoutScroll(input) {
|
|
26
|
+
if (!input) return;
|
|
27
|
+
setTimeout(function () {
|
|
28
|
+
try {
|
|
29
|
+
input.focus({
|
|
30
|
+
preventScroll: true
|
|
31
|
+
});
|
|
32
|
+
} catch (e) {
|
|
33
|
+
input.focus();
|
|
34
|
+
}
|
|
35
|
+
}, 0);
|
|
36
|
+
}
|
|
37
|
+
function getTableTypeOptions(tables) {
|
|
38
|
+
return Array.from(new Set(tables.map(function (v) {
|
|
39
|
+
return v.table_type;
|
|
40
|
+
}).filter(function (v) {
|
|
41
|
+
return Boolean(v);
|
|
42
|
+
})));
|
|
43
|
+
}
|
|
44
|
+
function getFlatTableTypeOptions(sourceTable) {
|
|
45
|
+
return sourceTable.reduce(function (mo, datasource) {
|
|
46
|
+
if (datasource !== null && datasource !== void 0 && datasource.datasourceId && Array.isArray(datasource === null || datasource === void 0 ? void 0 : datasource.children)) {
|
|
47
|
+
mo[datasource.datasourceId] = getTableTypeOptions(datasource.children);
|
|
48
|
+
}
|
|
49
|
+
return mo;
|
|
50
|
+
}, {});
|
|
51
|
+
}
|
|
52
|
+
function matchTableName(table, searchVal) {
|
|
53
|
+
if (!searchVal) return true;
|
|
54
|
+
return Boolean(~(table.name + (table.name_zh || '')).toLocaleLowerCase().indexOf(searchVal.toLocaleLowerCase()));
|
|
55
|
+
}
|
|
56
|
+
function matchTableType(table, selectedTableTypes) {
|
|
57
|
+
if (!selectedTableTypes.length) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
return selectedTableTypes.includes(table.table_type || '');
|
|
61
|
+
}
|
|
62
|
+
function filterTables(tables, searchVal, selectedTableTypes) {
|
|
63
|
+
return tables.filter(function (table) {
|
|
64
|
+
return matchTableName(table, searchVal) && matchTableType(table, selectedTableTypes);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function filterDatasourceTable(sourceTable, searchVal, selectedTableTypesMap) {
|
|
68
|
+
return sourceTable.map(function (datasource) {
|
|
69
|
+
var children = Array.isArray(datasource === null || datasource === void 0 ? void 0 : datasource.children) ? datasource.children : [];
|
|
70
|
+
var selectedTableTypes = selectedTableTypesMap[datasource === null || datasource === void 0 ? void 0 : datasource.datasourceId] || [];
|
|
71
|
+
return (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, datasource), {}, {
|
|
72
|
+
children: filterTables(children, searchVal, selectedTableTypes)
|
|
73
|
+
});
|
|
74
|
+
}).filter(function (datasource) {
|
|
75
|
+
var _selectedTableTypesMa;
|
|
76
|
+
return datasource.children.length > 0 || Boolean((_selectedTableTypesMa = selectedTableTypesMap[datasource === null || datasource === void 0 ? void 0 : datasource.datasourceId]) === null || _selectedTableTypesMa === void 0 ? void 0 : _selectedTableTypesMa.length);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
24
79
|
var SelectTable = function SelectTable(_ref) {
|
|
25
80
|
var _ref$data = _ref.data,
|
|
26
81
|
data = _ref$data === void 0 ? [] : _ref$data,
|
|
@@ -29,7 +84,6 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
29
84
|
value = _ref.value,
|
|
30
85
|
_ref$onChange = _ref.onChange,
|
|
31
86
|
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
|
|
32
|
-
onDatasourceTypeChange = _ref.onDatasourceTypeChange,
|
|
33
87
|
didUpdate = _ref.didUpdate,
|
|
34
88
|
_ref$tableFlat = _ref.tableFlat,
|
|
35
89
|
tableFlat = _ref$tableFlat === void 0 ? false : _ref$tableFlat;
|
|
@@ -43,218 +97,143 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
43
97
|
datasource = _useState4[0];
|
|
44
98
|
var _useState5 = (0, _react.useState)(sourceTable.slice()),
|
|
45
99
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
var _useState7 = (0, _react.useState)(
|
|
100
|
+
datasourceTable = _useState6[0],
|
|
101
|
+
setDatasourceTable = _useState6[1];
|
|
102
|
+
var _useState7 = (0, _react.useState)([]),
|
|
49
103
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
50
|
-
|
|
51
|
-
|
|
104
|
+
list = _useState8[0],
|
|
105
|
+
setList = _useState8[1];
|
|
52
106
|
var _useState9 = (0, _react.useState)([]),
|
|
53
107
|
_useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
var _useState1 = (0, _react.useState)(
|
|
108
|
+
originList = _useState0[0],
|
|
109
|
+
setOriginList = _useState0[1];
|
|
110
|
+
var _useState1 = (0, _react.useState)(''),
|
|
57
111
|
_useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
var _useState11 = (0, _react.useState)(
|
|
112
|
+
searchVal = _useState10[0],
|
|
113
|
+
setSearchVal = _useState10[1];
|
|
114
|
+
var _useState11 = (0, _react.useState)(''),
|
|
61
115
|
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
var _useState13 = (0, _react.useState)(
|
|
116
|
+
flatSearchVal = _useState12[0],
|
|
117
|
+
setFlatSearchVal = _useState12[1];
|
|
118
|
+
var _useState13 = (0, _react.useState)([]),
|
|
65
119
|
_useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
|
|
66
|
-
|
|
67
|
-
|
|
120
|
+
selectedTableTypes = _useState14[0],
|
|
121
|
+
setSelectedTableTypes = _useState14[1];
|
|
122
|
+
var _useState15 = (0, _react.useState)({}),
|
|
123
|
+
_useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
|
|
124
|
+
selectedFlatTableTypes = _useState16[0],
|
|
125
|
+
setSelectedFlatTableTypes = _useState16[1];
|
|
126
|
+
var _useState17 = (0, _react.useState)(value),
|
|
127
|
+
_useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
|
|
128
|
+
val = _useState18[0],
|
|
129
|
+
setVal = _useState18[1];
|
|
130
|
+
var searchInputRef = (0, _react.useRef)(null);
|
|
131
|
+
var flatSearchInputRef = (0, _react.useRef)(null);
|
|
132
|
+
var tableTypeOptions = (0, _react.useMemo)(function () {
|
|
133
|
+
return getTableTypeOptions(originList);
|
|
134
|
+
}, [originList]);
|
|
135
|
+
var flatTableTypeOptions = (0, _react.useMemo)(function () {
|
|
136
|
+
return getFlatTableTypeOptions(sourceTable);
|
|
137
|
+
}, [sourceTable]);
|
|
138
|
+
var nextPage = !val.datasourceId;
|
|
68
139
|
(0, _react.useEffect)(function () {
|
|
69
140
|
if (value.datasourceId) {
|
|
70
|
-
|
|
71
|
-
var _datasourceType = value.datasourceType || getDefaultDatasourceType(datasourceItem);
|
|
72
|
-
var nextVal = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, value), {}, {
|
|
73
|
-
datasourceType: _datasourceType
|
|
74
|
-
});
|
|
75
|
-
setVal(nextVal);
|
|
76
|
-
if (!value.datasourceType && _datasourceType) {
|
|
77
|
-
emitDatasourceTypeChange(nextVal);
|
|
78
|
-
}
|
|
79
|
-
loadTables(value.datasourceId, _datasourceType);
|
|
141
|
+
getTables(value.datasourceId);
|
|
80
142
|
}
|
|
81
143
|
}, []);
|
|
82
|
-
function
|
|
83
|
-
|
|
84
|
-
return (datasource === null || datasource === void 0 ? void 0 : datasource.defaultDatasourceType) || (datasource === null || datasource === void 0 ? void 0 : datasource.datasourceType) || (datasource === null || datasource === void 0 || (_datasource$datasourc = datasource.datasourceTypeList) === null || _datasource$datasourc === void 0 || (_datasource$datasourc = _datasource$datasourc[0]) === null || _datasource$datasourc === void 0 ? void 0 : _datasource$datasourc.value) || '';
|
|
85
|
-
}
|
|
86
|
-
function getDatasource(datasourceId) {
|
|
87
|
-
return datasource.find(function (v) {
|
|
88
|
-
return v.datasourceId === datasourceId;
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
function filterDatasourceTables(tables, keyword) {
|
|
92
|
-
var searchVal = keyword.toLocaleLowerCase();
|
|
93
|
-
if (!searchVal) return tables.slice();
|
|
94
|
-
return (0, _cloneDeep["default"])(tables.slice()).map(function (v) {
|
|
95
|
-
var _v$children;
|
|
96
|
-
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
97
|
-
children: v === null || v === void 0 || (_v$children = v.children) === null || _v$children === void 0 ? void 0 : _v$children.filter(function (vv) {
|
|
98
|
-
return ~(vv.name + (vv.name_zh || '')).toLocaleLowerCase().indexOf(searchVal);
|
|
99
|
-
})
|
|
100
|
-
});
|
|
101
|
-
}).filter(function (v) {
|
|
102
|
-
return (v.children || []).length > 0;
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
function loadTables(_x) {
|
|
106
|
-
return _loadTables.apply(this, arguments);
|
|
144
|
+
function getTables(_x) {
|
|
145
|
+
return _getTables.apply(this, arguments);
|
|
107
146
|
}
|
|
108
|
-
function
|
|
109
|
-
|
|
110
|
-
var
|
|
111
|
-
force,
|
|
112
|
-
tables,
|
|
113
|
-
_args = arguments;
|
|
147
|
+
function _getTables() {
|
|
148
|
+
_getTables = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(datasourceId) {
|
|
149
|
+
var tables;
|
|
114
150
|
return _regenerator["default"].wrap(function (_context) {
|
|
115
151
|
while (1) switch (_context.prev = _context.next) {
|
|
116
152
|
case 0:
|
|
117
|
-
datasourceType = _args.length > 1 && _args[1] !== undefined ? _args[1] : '';
|
|
118
|
-
force = _args.length > 2 && _args[2] !== undefined ? _args[2] : false;
|
|
119
153
|
setLoading(true);
|
|
120
154
|
_context.next = 1;
|
|
121
|
-
return store.fetchDataset(datasourceId
|
|
155
|
+
return store.fetchDataset(datasourceId);
|
|
122
156
|
case 1:
|
|
123
157
|
tables = _context.sent;
|
|
124
158
|
setLoading(false);
|
|
125
159
|
setList(tables);
|
|
126
160
|
setOriginList(tables);
|
|
127
|
-
|
|
161
|
+
setSearchVal('');
|
|
162
|
+
setSelectedTableTypes([]);
|
|
128
163
|
case 2:
|
|
129
164
|
case "end":
|
|
130
165
|
return _context.stop();
|
|
131
166
|
}
|
|
132
167
|
}, _callee);
|
|
133
168
|
}));
|
|
134
|
-
return
|
|
135
|
-
}
|
|
136
|
-
function emitDatasourceTypeChange(nextVal) {
|
|
137
|
-
if (!nextVal.datasourceId || !nextVal.name) return;
|
|
138
|
-
onDatasourceTypeChange === null || onDatasourceTypeChange === void 0 || onDatasourceTypeChange(nextVal);
|
|
139
|
-
}
|
|
140
|
-
function handleSelectDatasource(datasource, datasourceType) {
|
|
141
|
-
var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
142
|
-
var nextDatasourceType = datasourceType || getDefaultDatasourceType(datasource);
|
|
143
|
-
setVal({
|
|
144
|
-
datasourceId: datasource.datasourceId,
|
|
145
|
-
datasourceName: datasource.datasourceName,
|
|
146
|
-
datasourceType: nextDatasourceType,
|
|
147
|
-
name: '',
|
|
148
|
-
name_zh: '',
|
|
149
|
-
id: '',
|
|
150
|
-
tableUuid: (0, _helper.uuidv4)('table'),
|
|
151
|
-
alias: ''
|
|
152
|
-
});
|
|
153
|
-
loadTables(datasource.datasourceId, nextDatasourceType, force);
|
|
154
|
-
}
|
|
155
|
-
function handleDatasourceTypeChange(datasourceType) {
|
|
156
|
-
var nextVal = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, val), {}, {
|
|
157
|
-
datasourceType: datasourceType
|
|
158
|
-
});
|
|
159
|
-
setVal(nextVal);
|
|
160
|
-
emitDatasourceTypeChange(nextVal);
|
|
161
|
-
loadTables(nextVal.datasourceId, datasourceType, true);
|
|
162
|
-
}
|
|
163
|
-
function handleFlatDatasourceTypeChange(_x2, _x3) {
|
|
164
|
-
return _handleFlatDatasourceTypeChange.apply(this, arguments);
|
|
165
|
-
}
|
|
166
|
-
function _handleFlatDatasourceTypeChange() {
|
|
167
|
-
_handleFlatDatasourceTypeChange = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(datasourceItem, datasourceType) {
|
|
168
|
-
var nextVal, tables, updateDatasourceTable, nextOriginDatasourceTable;
|
|
169
|
-
return _regenerator["default"].wrap(function (_context2) {
|
|
170
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
171
|
-
case 0:
|
|
172
|
-
if (val.datasourceId === datasourceItem.datasourceId) {
|
|
173
|
-
nextVal = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, val), {}, {
|
|
174
|
-
datasourceType: datasourceType
|
|
175
|
-
});
|
|
176
|
-
setVal(nextVal);
|
|
177
|
-
emitDatasourceTypeChange(nextVal);
|
|
178
|
-
}
|
|
179
|
-
_context2.next = 1;
|
|
180
|
-
return loadTables(datasourceItem.datasourceId, datasourceType, true);
|
|
181
|
-
case 1:
|
|
182
|
-
tables = _context2.sent;
|
|
183
|
-
updateDatasourceTable = function updateDatasourceTable(tablesData) {
|
|
184
|
-
return tablesData.map(function (v) {
|
|
185
|
-
if (v.datasourceId !== datasourceItem.datasourceId) return v;
|
|
186
|
-
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
|
|
187
|
-
datasourceType: datasourceType,
|
|
188
|
-
children: tables
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
};
|
|
192
|
-
nextOriginDatasourceTable = updateDatasourceTable(originDatasourceTable);
|
|
193
|
-
setOriginDatasourceTable(nextOriginDatasourceTable);
|
|
194
|
-
setDatasourceTable(filterDatasourceTables(nextOriginDatasourceTable, tableFilterValue));
|
|
195
|
-
case 2:
|
|
196
|
-
case "end":
|
|
197
|
-
return _context2.stop();
|
|
198
|
-
}
|
|
199
|
-
}, _callee2);
|
|
200
|
-
}));
|
|
201
|
-
return _handleFlatDatasourceTypeChange.apply(this, arguments);
|
|
202
|
-
}
|
|
203
|
-
function renderDatasourceTypeSelector(datasourceItem, datasourceType, onChange) {
|
|
204
|
-
var datasourceTypeList = datasourceItem.datasourceTypeList || [];
|
|
205
|
-
if (!datasourceTypeList.length) return null;
|
|
206
|
-
return (0, _jsxRuntime.jsx)("div", {
|
|
207
|
-
className: 'Sqb-DatasourceType-radio',
|
|
208
|
-
onClick: function onClick(e) {
|
|
209
|
-
return e.stopPropagation();
|
|
210
|
-
},
|
|
211
|
-
children: datasourceTypeList.map(function (item) {
|
|
212
|
-
var checked = datasourceType === item.value;
|
|
213
|
-
var handleChangeType = function handleChangeType(e) {
|
|
214
|
-
e.preventDefault();
|
|
215
|
-
e.stopPropagation();
|
|
216
|
-
if (!checked) onChange(item.value);
|
|
217
|
-
};
|
|
218
|
-
return (0, _jsxRuntime.jsxs)("label", {
|
|
219
|
-
className: 'Sqb-DatasourceType-radio-item',
|
|
220
|
-
onMouseDown: handleChangeType,
|
|
221
|
-
onClick: handleChangeType,
|
|
222
|
-
children: [(0, _jsxRuntime.jsx)("input", {
|
|
223
|
-
type: 'radio',
|
|
224
|
-
name: "datasourceType_".concat(datasourceItem.datasourceId || 'current'),
|
|
225
|
-
checked: checked,
|
|
226
|
-
readOnly: true
|
|
227
|
-
}), (0, _jsxRuntime.jsx)("span", {
|
|
228
|
-
children: item.label
|
|
229
|
-
})]
|
|
230
|
-
}, item.value);
|
|
231
|
-
})
|
|
232
|
-
});
|
|
169
|
+
return _getTables.apply(this, arguments);
|
|
233
170
|
}
|
|
234
|
-
(0, _react.useEffect)(function () {
|
|
235
|
-
setOriginDatasourceTable(sourceTable.slice());
|
|
236
|
-
setDatasourceTable(filterDatasourceTables(sourceTable.slice(), tableFilterValue));
|
|
237
|
-
}, [sourceTable]);
|
|
238
171
|
(0, _react.useEffect)(function () {
|
|
239
172
|
didUpdate === null || didUpdate === void 0 || didUpdate();
|
|
240
173
|
}, [list, loading, datasource]);
|
|
174
|
+
(0, _react.useEffect)(function () {
|
|
175
|
+
if (tableFlat) {
|
|
176
|
+
focusWithoutScroll(flatSearchInputRef.current);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (!nextPage && !loading) {
|
|
180
|
+
focusWithoutScroll(searchInputRef.current);
|
|
181
|
+
}
|
|
182
|
+
}, [tableFlat, nextPage, loading]);
|
|
183
|
+
(0, _react.useEffect)(function () {
|
|
184
|
+
setList(filterTables(originList, searchVal, selectedTableTypes));
|
|
185
|
+
}, [originList, searchVal, selectedTableTypes]);
|
|
186
|
+
(0, _react.useEffect)(function () {
|
|
187
|
+
setDatasourceTable(filterDatasourceTable(sourceTable, flatSearchVal, selectedFlatTableTypes));
|
|
188
|
+
}, [sourceTable, flatSearchVal, selectedFlatTableTypes]);
|
|
189
|
+
(0, _react.useEffect)(function () {
|
|
190
|
+
setSelectedTableTypes(function (prev) {
|
|
191
|
+
return prev.filter(function (v) {
|
|
192
|
+
return tableTypeOptions.includes(v);
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
}, [tableTypeOptions]);
|
|
196
|
+
(0, _react.useEffect)(function () {
|
|
197
|
+
setSelectedFlatTableTypes(function (prev) {
|
|
198
|
+
var next = Object.keys(flatTableTypeOptions).reduce(function (mo, datasourceId) {
|
|
199
|
+
var selected = prev[datasourceId] || [];
|
|
200
|
+
mo[datasourceId] = selected.filter(function (v) {
|
|
201
|
+
return flatTableTypeOptions[datasourceId].includes(v);
|
|
202
|
+
});
|
|
203
|
+
return mo;
|
|
204
|
+
}, {});
|
|
205
|
+
return next;
|
|
206
|
+
});
|
|
207
|
+
}, [flatTableTypeOptions]);
|
|
241
208
|
function onInput(e) {
|
|
242
|
-
|
|
243
|
-
var newList = (0, _cloneDeep["default"])(originList.slice());
|
|
244
|
-
setList(newList.filter(function (v) {
|
|
245
|
-
return ~(v.name + (v.name_zh || '')).toLocaleLowerCase().indexOf(val.toLocaleLowerCase());
|
|
246
|
-
}));
|
|
209
|
+
setSearchVal(e.target.value);
|
|
247
210
|
}
|
|
248
211
|
function onInput1(e) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
212
|
+
setFlatSearchVal(e.target.value);
|
|
213
|
+
}
|
|
214
|
+
function onTableTypeChange(tableType, checked) {
|
|
215
|
+
setSelectedTableTypes(function (prev) {
|
|
216
|
+
if (checked) {
|
|
217
|
+
return prev.includes(tableType) ? prev : prev.concat(tableType);
|
|
218
|
+
}
|
|
219
|
+
return prev.filter(function (v) {
|
|
220
|
+
return v !== tableType;
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
function onFlatTableTypeChange(datasourceId, tableType, checked) {
|
|
225
|
+
setSelectedFlatTableTypes(function (prev) {
|
|
226
|
+
var selectedTableTypes = prev[datasourceId] || [];
|
|
227
|
+
var nextTableTypes = checked ? selectedTableTypes.includes(tableType) ? selectedTableTypes : selectedTableTypes.concat(tableType) : selectedTableTypes.filter(function (v) {
|
|
228
|
+
return v !== tableType;
|
|
229
|
+
});
|
|
230
|
+
return (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, prev), {}, (0, _defineProperty2["default"])({}, datasourceId, nextTableTypes));
|
|
231
|
+
});
|
|
252
232
|
}
|
|
253
233
|
function goPrevPage() {
|
|
254
234
|
setVal({
|
|
255
235
|
datasourceId: '',
|
|
256
236
|
datasourceName: '',
|
|
257
|
-
datasourceType: '',
|
|
258
237
|
name: '',
|
|
259
238
|
name_zh: '',
|
|
260
239
|
tableUuid: '',
|
|
@@ -262,6 +241,54 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
262
241
|
alias: ''
|
|
263
242
|
});
|
|
264
243
|
}
|
|
244
|
+
function renderTableTypeFilter(tableTypes) {
|
|
245
|
+
if (tableTypes.length <= 1) return null;
|
|
246
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
247
|
+
className: 'Sqb-TableType-tag-group',
|
|
248
|
+
children: tableTypes.map(function (tableType) {
|
|
249
|
+
var checked = selectedTableTypes.includes(tableType);
|
|
250
|
+
return (0, _jsxRuntime.jsx)(_pandora.Tag, {
|
|
251
|
+
className: ':Sqb-TableType-filter-tag',
|
|
252
|
+
checkable: true,
|
|
253
|
+
checked: checked,
|
|
254
|
+
size: 'mini',
|
|
255
|
+
onChange: function onChange(checked) {
|
|
256
|
+
return onTableTypeChange(tableType, checked);
|
|
257
|
+
},
|
|
258
|
+
children: tableType
|
|
259
|
+
}, tableType);
|
|
260
|
+
})
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
function renderFlatTableTypeFilter(datasourceId, tableTypes) {
|
|
264
|
+
if (tableTypes.length <= 1) return null;
|
|
265
|
+
var selectedTableTypes = selectedFlatTableTypes[datasourceId] || [];
|
|
266
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
267
|
+
className: 'Sqb-TableType-tag-group',
|
|
268
|
+
children: tableTypes.map(function (tableType) {
|
|
269
|
+
var checked = selectedTableTypes.includes(tableType);
|
|
270
|
+
return (0, _jsxRuntime.jsx)(_pandora.Tag, {
|
|
271
|
+
className: ':Sqb-TableType-filter-tag',
|
|
272
|
+
checkable: true,
|
|
273
|
+
checked: checked,
|
|
274
|
+
size: 'mini',
|
|
275
|
+
onChange: function onChange(checked) {
|
|
276
|
+
return onFlatTableTypeChange(datasourceId, tableType, checked);
|
|
277
|
+
},
|
|
278
|
+
children: tableType
|
|
279
|
+
}, tableType);
|
|
280
|
+
})
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
function renderDatasourceTitle(table) {
|
|
284
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
285
|
+
className: (0, _classnames["default"])("Sqb-List-title Sqb-List-title-with-filter mx-4 pb-2 pt-2"),
|
|
286
|
+
children: [(0, _jsxRuntime.jsx)("span", {
|
|
287
|
+
className: 'Sqb-List-title-text',
|
|
288
|
+
children: table.datasourceName
|
|
289
|
+
}), renderFlatTableTypeFilter(table.datasourceId, flatTableTypeOptions[table.datasourceId] || [])]
|
|
290
|
+
});
|
|
291
|
+
}
|
|
265
292
|
if (tableFlat) {
|
|
266
293
|
return (0, _jsxRuntime.jsx)("div", {
|
|
267
294
|
className: (0, _classnames["default"])("Sqb-SelectTable--box pb-2"),
|
|
@@ -281,7 +308,7 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
281
308
|
className: 'px-2',
|
|
282
309
|
children: (0, _jsxRuntime.jsx)(_icons.SearchIcon, {})
|
|
283
310
|
}), (0, _jsxRuntime.jsx)("input", {
|
|
284
|
-
|
|
311
|
+
ref: flatSearchInputRef,
|
|
285
312
|
type: 'text',
|
|
286
313
|
className: 'p-2',
|
|
287
314
|
placeholder: (0, _locale.__)('data.search'),
|
|
@@ -290,36 +317,26 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
290
317
|
})
|
|
291
318
|
}), datasourceTable.map(function (table) {
|
|
292
319
|
var _table$children;
|
|
293
|
-
var datasourceType = table.datasourceType || getDefaultDatasourceType(table);
|
|
294
320
|
return (0, _jsxRuntime.jsxs)(_react["default"].Fragment, {
|
|
295
|
-
children: [(
|
|
296
|
-
className: (0, _classnames["default"])("Sqb-List-title mx-4 pb-2 pt-2"),
|
|
297
|
-
children: [(0, _jsxRuntime.jsx)("span", {
|
|
298
|
-
children: table.datasourceName
|
|
299
|
-
}), renderDatasourceTypeSelector(table, datasourceType, function (type) {
|
|
300
|
-
return handleFlatDatasourceTypeChange(table, type);
|
|
301
|
-
})]
|
|
302
|
-
}), Array.isArray(table.children) && (table === null || table === void 0 || (_table$children = table.children) === null || _table$children === void 0 ? void 0 : _table$children.map(function (v) {
|
|
321
|
+
children: [renderDatasourceTitle(table), Array.isArray(table.children) && (table === null || table === void 0 || (_table$children = table.children) === null || _table$children === void 0 ? void 0 : _table$children.map(function (v) {
|
|
303
322
|
var _val = {
|
|
304
323
|
datasourceId: table.datasourceId,
|
|
305
324
|
datasourceName: table.datasourceName,
|
|
306
|
-
datasourceType: datasourceType,
|
|
307
325
|
name: '',
|
|
308
326
|
name_zh: '',
|
|
309
327
|
id: '',
|
|
310
328
|
tableUuid: (0, _helper.uuidv4)('table'),
|
|
311
329
|
alias: ''
|
|
312
330
|
};
|
|
331
|
+
var tableValue = (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, _val), v);
|
|
313
332
|
return (0, _jsxRuntime.jsx)("div", {
|
|
314
333
|
className: (0, _classnames["default"])("Sqb-List-section"),
|
|
315
334
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
316
335
|
className: (0, _classnames["default"])("Sqb-List-item mx-2", {
|
|
317
|
-
active:
|
|
336
|
+
active: (0, _helper.isSameTableByIdFirst)(value, tableValue)
|
|
318
337
|
}),
|
|
319
338
|
onClick: function onClick() {
|
|
320
|
-
onChange(
|
|
321
|
-
datasourceType: datasourceType
|
|
322
|
-
}));
|
|
339
|
+
onChange(tableValue);
|
|
323
340
|
},
|
|
324
341
|
children: (0, _jsxRuntime.jsxs)("a", {
|
|
325
342
|
className: 'p-2',
|
|
@@ -334,15 +351,14 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
334
351
|
})]
|
|
335
352
|
})
|
|
336
353
|
})
|
|
337
|
-
},
|
|
354
|
+
}, (0, _helper.getTableIdFirstKey)(tableValue));
|
|
338
355
|
}))]
|
|
339
|
-
},
|
|
356
|
+
}, table.datasourceId);
|
|
340
357
|
})]
|
|
341
358
|
})
|
|
342
359
|
})
|
|
343
360
|
});
|
|
344
361
|
}
|
|
345
|
-
var nextPage = !val.datasourceId;
|
|
346
362
|
if (nextPage) {
|
|
347
363
|
return (0, _jsxRuntime.jsx)("div", {
|
|
348
364
|
className: (0, _classnames["default"])("Sqb-SelectDataSource--box pb-2 pt-2"),
|
|
@@ -362,7 +378,16 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
362
378
|
active: val.datasourceId === v.datasourceId
|
|
363
379
|
}),
|
|
364
380
|
onClick: function onClick() {
|
|
365
|
-
|
|
381
|
+
setVal({
|
|
382
|
+
datasourceId: v.datasourceId,
|
|
383
|
+
datasourceName: v.datasourceName,
|
|
384
|
+
name: '',
|
|
385
|
+
name_zh: '',
|
|
386
|
+
id: '',
|
|
387
|
+
tableUuid: (0, _helper.uuidv4)('table'),
|
|
388
|
+
alias: ''
|
|
389
|
+
});
|
|
390
|
+
getTables(v.datasourceId);
|
|
366
391
|
},
|
|
367
392
|
children: (0, _jsxRuntime.jsxs)("a", {
|
|
368
393
|
className: 'p-2',
|
|
@@ -383,8 +408,6 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
383
408
|
})
|
|
384
409
|
});
|
|
385
410
|
}
|
|
386
|
-
var selectedDatasource = getDatasource(val.datasourceId) || val;
|
|
387
|
-
var datasourceType = val.datasourceType || getDefaultDatasourceType(selectedDatasource);
|
|
388
411
|
return (0, _jsxRuntime.jsx)("div", {
|
|
389
412
|
className: (0, _classnames["default"])("Sqb-SelectTable--box pb-2"),
|
|
390
413
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
@@ -395,17 +418,15 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
395
418
|
style: {
|
|
396
419
|
width: '100%'
|
|
397
420
|
},
|
|
398
|
-
children: [(0, _jsxRuntime.
|
|
421
|
+
children: [(0, _jsxRuntime.jsxs)("div", {
|
|
399
422
|
className: 'header',
|
|
400
|
-
children: (0, _jsxRuntime.
|
|
423
|
+
children: [(0, _jsxRuntime.jsx)("div", {
|
|
401
424
|
className: 'left-info',
|
|
402
|
-
children:
|
|
425
|
+
children: (0, _jsxRuntime.jsxs)("span", {
|
|
403
426
|
onClick: goPrevPage,
|
|
404
427
|
children: [(0, _jsxRuntime.jsx)(_icons.LeftArrowIcon, {}), val.datasourceName]
|
|
405
|
-
})
|
|
406
|
-
|
|
407
|
-
})]
|
|
408
|
-
})
|
|
428
|
+
})
|
|
429
|
+
}), renderTableTypeFilter(tableTypeOptions)]
|
|
409
430
|
}), loading ? (0, _jsxRuntime.jsx)("div", {
|
|
410
431
|
className: 'Sqb-SelectTable-loading',
|
|
411
432
|
children: (0, _jsxRuntime.jsx)(_Loading["default"], {
|
|
@@ -421,7 +442,7 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
421
442
|
className: 'px-2',
|
|
422
443
|
children: (0, _jsxRuntime.jsx)(_icons.SearchIcon, {})
|
|
423
444
|
}), (0, _jsxRuntime.jsx)("input", {
|
|
424
|
-
|
|
445
|
+
ref: searchInputRef,
|
|
425
446
|
type: 'text',
|
|
426
447
|
className: 'p-2',
|
|
427
448
|
placeholder: (0, _locale.__)('data.search'),
|
|
@@ -429,16 +450,15 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
429
450
|
})]
|
|
430
451
|
})
|
|
431
452
|
}), Array.isArray(list) && list.map(function (v) {
|
|
453
|
+
var tableValue = (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, val), v);
|
|
432
454
|
return (0, _jsxRuntime.jsx)("div", {
|
|
433
455
|
className: (0, _classnames["default"])("Sqb-List-section"),
|
|
434
456
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
435
457
|
className: (0, _classnames["default"])("Sqb-List-item mx-2", {
|
|
436
|
-
active:
|
|
458
|
+
active: (0, _helper.isSameTableByIdFirst)(value, tableValue)
|
|
437
459
|
}),
|
|
438
460
|
onClick: function onClick() {
|
|
439
|
-
onChange(
|
|
440
|
-
datasourceType: datasourceType
|
|
441
|
-
}));
|
|
461
|
+
onChange(tableValue);
|
|
442
462
|
},
|
|
443
463
|
children: (0, _jsxRuntime.jsxs)("a", {
|
|
444
464
|
className: 'p-2',
|
|
@@ -453,7 +473,7 @@ var SelectTable = function SelectTable(_ref) {
|
|
|
453
473
|
})]
|
|
454
474
|
})
|
|
455
475
|
})
|
|
456
|
-
},
|
|
476
|
+
}, (0, _helper.getTableIdFirstKey)(tableValue));
|
|
457
477
|
})]
|
|
458
478
|
})]
|
|
459
479
|
})
|