@gingkoo/pandora-metabase 1.0.126 → 1.0.127

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.
Files changed (65) hide show
  1. package/lib/cjs/components/dialog/expression/index.js +15 -5
  2. package/lib/cjs/components/dialog/expression/index.less +31 -16
  3. package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.d.ts +14 -5
  4. package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.js +236 -62
  5. package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +3 -2
  6. package/lib/cjs/components/dialog/formula-list/LogicGroup.js +19 -11
  7. package/lib/cjs/components/dialog/formula-list/index.d.ts +1 -0
  8. package/lib/cjs/components/dialog/formula-list/index.js +658 -174
  9. package/lib/cjs/components/dialog/formula-list/index.less +1438 -145
  10. package/lib/cjs/components/dialog/formula-list/utils.js +50 -19
  11. package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +1 -0
  12. package/lib/cjs/components/dialog/select-column-multiple/index.js +42 -22
  13. package/lib/cjs/components/dialog/select-summarize/index.js +10 -2
  14. package/lib/cjs/components/dialog/select-table/index.d.ts +2 -1
  15. package/lib/cjs/components/dialog/select-table/index.js +197 -52
  16. package/lib/cjs/components/dialog/select-table/index.less +45 -2
  17. package/lib/cjs/components/metabase/index.less +156 -39
  18. package/lib/cjs/components/modules/custom-column.js +7 -3
  19. package/lib/cjs/components/modules/filter.js +6 -3
  20. package/lib/cjs/components/modules/join-data.js +62 -14
  21. package/lib/cjs/components/modules/permission-table.js +8 -4
  22. package/lib/cjs/components/modules/sort.js +2 -1
  23. package/lib/cjs/components/modules/summarize/group-by.js +20 -6
  24. package/lib/cjs/components/modules/summarize/select-index.js +9 -5
  25. package/lib/cjs/components/modules/table-data.js +21 -3
  26. package/lib/cjs/hooks/use-state.js +143 -17
  27. package/lib/cjs/index.js +7 -1
  28. package/lib/cjs/store/types.d.ts +14 -7
  29. package/lib/cjs/types.d.ts +8 -0
  30. package/lib/cjs/utils/transformSql.js +44 -21
  31. package/lib/cjs/utils.d.ts +2 -2
  32. package/lib/cjs/utils.js +347 -56
  33. package/lib/es/components/dialog/expression/index.js +15 -5
  34. package/lib/es/components/dialog/expression/index.less +31 -16
  35. package/lib/es/components/dialog/formula-list/CaseWhenGroup.d.ts +14 -5
  36. package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +238 -64
  37. package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +3 -2
  38. package/lib/es/components/dialog/formula-list/LogicGroup.js +19 -11
  39. package/lib/es/components/dialog/formula-list/index.d.ts +1 -0
  40. package/lib/es/components/dialog/formula-list/index.js +660 -176
  41. package/lib/es/components/dialog/formula-list/index.less +1438 -145
  42. package/lib/es/components/dialog/formula-list/utils.js +50 -19
  43. package/lib/es/components/dialog/select-column-multiple/index.d.ts +1 -0
  44. package/lib/es/components/dialog/select-column-multiple/index.js +42 -22
  45. package/lib/es/components/dialog/select-summarize/index.js +10 -2
  46. package/lib/es/components/dialog/select-table/index.d.ts +2 -1
  47. package/lib/es/components/dialog/select-table/index.js +197 -52
  48. package/lib/es/components/dialog/select-table/index.less +45 -2
  49. package/lib/es/components/metabase/index.less +156 -39
  50. package/lib/es/components/modules/custom-column.js +7 -3
  51. package/lib/es/components/modules/filter.js +6 -3
  52. package/lib/es/components/modules/join-data.js +62 -14
  53. package/lib/es/components/modules/permission-table.js +8 -4
  54. package/lib/es/components/modules/sort.js +2 -1
  55. package/lib/es/components/modules/summarize/group-by.js +21 -7
  56. package/lib/es/components/modules/summarize/select-index.js +10 -6
  57. package/lib/es/components/modules/table-data.js +21 -3
  58. package/lib/es/hooks/use-state.js +143 -17
  59. package/lib/es/index.js +7 -1
  60. package/lib/es/store/types.d.ts +14 -7
  61. package/lib/es/types.d.ts +8 -0
  62. package/lib/es/utils/transformSql.js +45 -22
  63. package/lib/es/utils.d.ts +2 -2
  64. package/lib/es/utils.js +348 -57
  65. package/package.json +1 -1
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
10
  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
13
  var _jsxRuntime = require("react/jsx-runtime");
14
14
  require("./index.less");
@@ -29,6 +29,7 @@ var SelectTable = function SelectTable(_ref) {
29
29
  value = _ref.value,
30
30
  _ref$onChange = _ref.onChange,
31
31
  onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
32
+ onDatasourceTypeChange = _ref.onDatasourceTypeChange,
32
33
  didUpdate = _ref.didUpdate,
33
34
  _ref$tableFlat = _ref.tableFlat,
34
35
  tableFlat = _ref$tableFlat === void 0 ? false : _ref$tableFlat;
@@ -42,50 +43,198 @@ var SelectTable = function SelectTable(_ref) {
42
43
  datasource = _useState4[0];
43
44
  var _useState5 = (0, _react.useState)(sourceTable.slice()),
44
45
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
45
- datasourceTable = _useState6[0],
46
- setDatasourceTable = _useState6[1];
47
- var _useState7 = (0, _react.useState)([]),
46
+ originDatasourceTable = _useState6[0],
47
+ setOriginDatasourceTable = _useState6[1];
48
+ var _useState7 = (0, _react.useState)(sourceTable.slice()),
48
49
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
49
- list = _useState8[0],
50
- setList = _useState8[1];
50
+ datasourceTable = _useState8[0],
51
+ setDatasourceTable = _useState8[1];
51
52
  var _useState9 = (0, _react.useState)([]),
52
53
  _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
53
- originList = _useState0[0],
54
- setOriginList = _useState0[1];
55
- var _useState1 = (0, _react.useState)(value),
54
+ list = _useState0[0],
55
+ setList = _useState0[1];
56
+ var _useState1 = (0, _react.useState)([]),
56
57
  _useState10 = (0, _slicedToArray2["default"])(_useState1, 2),
57
- val = _useState10[0],
58
- setVal = _useState10[1];
58
+ originList = _useState10[0],
59
+ setOriginList = _useState10[1];
60
+ var _useState11 = (0, _react.useState)(value),
61
+ _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
62
+ val = _useState12[0],
63
+ setVal = _useState12[1];
64
+ var _useState13 = (0, _react.useState)(''),
65
+ _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
66
+ tableFilterValue = _useState14[0],
67
+ setTableFilterValue = _useState14[1];
59
68
  (0, _react.useEffect)(function () {
60
69
  if (value.datasourceId) {
61
- getTables(value.datasourceId);
70
+ var datasourceItem = getDatasource(value.datasourceId);
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);
62
80
  }
63
81
  }, []);
64
- function getTables(_x) {
65
- return _getTables.apply(this, arguments);
82
+ function getDefaultDatasourceType(datasource) {
83
+ var _datasource$datasourc;
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
+ });
66
104
  }
67
- function _getTables() {
68
- _getTables = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(datasourceId) {
69
- var tables;
105
+ function loadTables(_x) {
106
+ return _loadTables.apply(this, arguments);
107
+ }
108
+ function _loadTables() {
109
+ _loadTables = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(datasourceId) {
110
+ var datasourceType,
111
+ force,
112
+ tables,
113
+ _args = arguments;
70
114
  return _regenerator["default"].wrap(function (_context) {
71
115
  while (1) switch (_context.prev = _context.next) {
72
116
  case 0:
117
+ datasourceType = _args.length > 1 && _args[1] !== undefined ? _args[1] : '';
118
+ force = _args.length > 2 && _args[2] !== undefined ? _args[2] : false;
73
119
  setLoading(true);
74
120
  _context.next = 1;
75
- return store.fetchDataset(datasourceId);
121
+ return store.fetchDataset(datasourceId, datasourceType, force);
76
122
  case 1:
77
123
  tables = _context.sent;
78
124
  setLoading(false);
79
125
  setList(tables);
80
126
  setOriginList(tables);
127
+ return _context.abrupt("return", tables);
81
128
  case 2:
82
129
  case "end":
83
130
  return _context.stop();
84
131
  }
85
132
  }, _callee);
86
133
  }));
87
- return _getTables.apply(this, arguments);
134
+ return _loadTables.apply(this, arguments);
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
+ });
88
233
  }
234
+ (0, _react.useEffect)(function () {
235
+ setOriginDatasourceTable(sourceTable.slice());
236
+ setDatasourceTable(filterDatasourceTables(sourceTable.slice(), tableFilterValue));
237
+ }, [sourceTable]);
89
238
  (0, _react.useEffect)(function () {
90
239
  didUpdate === null || didUpdate === void 0 || didUpdate();
91
240
  }, [list, loading, datasource]);
@@ -98,23 +247,14 @@ var SelectTable = function SelectTable(_ref) {
98
247
  }
99
248
  function onInput1(e) {
100
249
  var val = e.target.value;
101
- var newList = (0, _cloneDeep["default"])(sourceTable.slice());
102
- var _new = newList.map(function (v) {
103
- var _v$children;
104
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
105
- children: v === null || v === void 0 || (_v$children = v.children) === null || _v$children === void 0 ? void 0 : _v$children.filter(function (v) {
106
- return ~(v.name + (v.name_zh || '')).toLocaleLowerCase().indexOf(val.toLocaleLowerCase());
107
- })
108
- });
109
- }).filter(function (v) {
110
- return v.children.length > 0;
111
- });
112
- setDatasourceTable(_new);
250
+ setTableFilterValue(val);
251
+ setDatasourceTable(filterDatasourceTables(originDatasourceTable, val));
113
252
  }
114
253
  function goPrevPage() {
115
254
  setVal({
116
255
  datasourceId: '',
117
256
  datasourceName: '',
257
+ datasourceType: '',
118
258
  name: '',
119
259
  name_zh: '',
120
260
  tableUuid: '',
@@ -150,14 +290,20 @@ var SelectTable = function SelectTable(_ref) {
150
290
  })
151
291
  }), datasourceTable.map(function (table) {
152
292
  var _table$children;
293
+ var datasourceType = table.datasourceType || getDefaultDatasourceType(table);
153
294
  return (0, _jsxRuntime.jsxs)(_react["default"].Fragment, {
154
- children: [(0, _jsxRuntime.jsx)("div", {
295
+ children: [(0, _jsxRuntime.jsxs)("div", {
155
296
  className: (0, _classnames["default"])("Sqb-List-title mx-4 pb-2 pt-2"),
156
- children: table.datasourceName
297
+ children: [(0, _jsxRuntime.jsx)("span", {
298
+ children: table.datasourceName
299
+ }), renderDatasourceTypeSelector(table, datasourceType, function (type) {
300
+ return handleFlatDatasourceTypeChange(table, type);
301
+ })]
157
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) {
158
303
  var _val = {
159
304
  datasourceId: table.datasourceId,
160
305
  datasourceName: table.datasourceName,
306
+ datasourceType: datasourceType,
161
307
  name: '',
162
308
  name_zh: '',
163
309
  id: '',
@@ -168,10 +314,12 @@ var SelectTable = function SelectTable(_ref) {
168
314
  className: (0, _classnames["default"])("Sqb-List-section"),
169
315
  children: (0, _jsxRuntime.jsx)("div", {
170
316
  className: (0, _classnames["default"])("Sqb-List-item mx-2", {
171
- active: value.name === v.name
317
+ active: val.datasourceId === table.datasourceId && val.name === v.name && (val.datasourceType || datasourceType) === datasourceType
172
318
  }),
173
319
  onClick: function onClick() {
174
- onChange((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _val), v));
320
+ onChange((0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _val), v), {}, {
321
+ datasourceType: datasourceType
322
+ }));
175
323
  },
176
324
  children: (0, _jsxRuntime.jsxs)("a", {
177
325
  className: 'p-2',
@@ -186,9 +334,9 @@ var SelectTable = function SelectTable(_ref) {
186
334
  })]
187
335
  })
188
336
  })
189
- }, v.name);
337
+ }, "".concat(datasourceType, "_").concat(v.name));
190
338
  }))]
191
- }, table.datasourceId);
339
+ }, "".concat(table.datasourceId, "_").concat(datasourceType));
192
340
  })]
193
341
  })
194
342
  })
@@ -214,16 +362,7 @@ var SelectTable = function SelectTable(_ref) {
214
362
  active: val.datasourceId === v.datasourceId
215
363
  }),
216
364
  onClick: function onClick() {
217
- setVal({
218
- datasourceId: v.datasourceId,
219
- datasourceName: v.datasourceName,
220
- name: '',
221
- name_zh: '',
222
- id: '',
223
- tableUuid: (0, _helper.uuidv4)('table'),
224
- alias: ''
225
- });
226
- getTables(v.datasourceId);
365
+ handleSelectDatasource(v);
227
366
  },
228
367
  children: (0, _jsxRuntime.jsxs)("a", {
229
368
  className: 'p-2',
@@ -244,6 +383,8 @@ var SelectTable = function SelectTable(_ref) {
244
383
  })
245
384
  });
246
385
  }
386
+ var selectedDatasource = getDatasource(val.datasourceId) || val;
387
+ var datasourceType = val.datasourceType || getDefaultDatasourceType(selectedDatasource);
247
388
  return (0, _jsxRuntime.jsx)("div", {
248
389
  className: (0, _classnames["default"])("Sqb-SelectTable--box pb-2"),
249
390
  children: (0, _jsxRuntime.jsx)("div", {
@@ -256,12 +397,14 @@ var SelectTable = function SelectTable(_ref) {
256
397
  },
257
398
  children: [(0, _jsxRuntime.jsx)("div", {
258
399
  className: 'header',
259
- children: (0, _jsxRuntime.jsx)("div", {
400
+ children: (0, _jsxRuntime.jsxs)("div", {
260
401
  className: 'left-info',
261
- children: (0, _jsxRuntime.jsxs)("span", {
402
+ children: [(0, _jsxRuntime.jsxs)("span", {
262
403
  onClick: goPrevPage,
263
404
  children: [(0, _jsxRuntime.jsx)(_icons.LeftArrowIcon, {}), val.datasourceName]
264
- })
405
+ }), renderDatasourceTypeSelector(selectedDatasource, datasourceType, function (type) {
406
+ return handleDatasourceTypeChange(type);
407
+ })]
265
408
  })
266
409
  }), loading ? (0, _jsxRuntime.jsx)("div", {
267
410
  className: 'Sqb-SelectTable-loading',
@@ -290,10 +433,12 @@ var SelectTable = function SelectTable(_ref) {
290
433
  className: (0, _classnames["default"])("Sqb-List-section"),
291
434
  children: (0, _jsxRuntime.jsx)("div", {
292
435
  className: (0, _classnames["default"])("Sqb-List-item mx-2", {
293
- active: value.name === v.name
436
+ active: val.datasourceId === value.datasourceId && val.name === v.name && (val.datasourceType || datasourceType) === datasourceType
294
437
  }),
295
438
  onClick: function onClick() {
296
- onChange((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, val), v));
439
+ onChange((0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, val), v), {}, {
440
+ datasourceType: datasourceType
441
+ }));
297
442
  },
298
443
  children: (0, _jsxRuntime.jsxs)("a", {
299
444
  className: 'p-2',
@@ -28,7 +28,7 @@
28
28
  color: #4c5773;
29
29
  margin-top: 0;
30
30
  margin-bottom: 0;
31
- font-size: 14px;
31
+ font-size: 13px;
32
32
  font-weight: 600;
33
33
  }
34
34
  &:not(.disabled):hover,
@@ -64,10 +64,16 @@
64
64
  color: #949aab;
65
65
  border-bottom: 1px solid #f0f0f0;
66
66
  .left-info {
67
+ flex: 1;
67
68
  padding: 0.5rem 0.5rem 0.5rem 0;
68
69
  display: flex;
69
70
  align-items: center;
70
- span {
71
+ flex-wrap: wrap;
72
+ gap: 0.5rem;
73
+ .Sqb-DatasourceType-radio {
74
+ margin-left: auto;
75
+ }
76
+ > span {
71
77
  font-weight: 900;
72
78
  font-size: 16px;
73
79
  color: #4c5773;
@@ -95,6 +101,13 @@
95
101
  .Sqb-List-section {
96
102
  }
97
103
 
104
+ .Sqb-List-title {
105
+ display: flex;
106
+ align-items: center;
107
+ justify-content: space-between;
108
+ gap: 0.75rem;
109
+ }
110
+
98
111
  .Sqb-List-item {
99
112
  display: flex;
100
113
  border-radius: 4px;
@@ -167,3 +180,33 @@
167
180
  }
168
181
  }
169
182
  }
183
+
184
+ .Sqb-DatasourceType-radio {
185
+ display: flex;
186
+ align-items: center;
187
+ flex-wrap: wrap;
188
+ gap: 0.375rem;
189
+ justify-content: flex-end;
190
+ }
191
+
192
+ .Sqb-DatasourceType-radio-item {
193
+ display: inline-flex;
194
+ align-items: center;
195
+ gap: 2px;
196
+ color: #4c5773;
197
+ cursor: pointer;
198
+ font-size: 13px !important;
199
+ font-weight: 600;
200
+ line-height: 1.2;
201
+
202
+ span {
203
+ font-size: 13px !important;
204
+ line-height: 15px;
205
+ }
206
+
207
+ input {
208
+ margin: 0;
209
+ width: 13px;
210
+ height: 13px;
211
+ }
212
+ }