@gingkoo/pandora-metabase 1.0.26 → 1.0.28

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 (66) hide show
  1. package/lib/cjs/common/SplitView/index.js +11 -12
  2. package/lib/cjs/components/dialog/custom-column/expression-editor.js +1 -2
  3. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -2
  4. package/lib/cjs/components/dialog/expression/index.js +11 -12
  5. package/lib/cjs/components/dialog/formula-list/index.js +53 -43
  6. package/lib/cjs/components/dialog/index.js +2 -2
  7. package/lib/cjs/components/dialog/select-column/index.js +4 -4
  8. package/lib/cjs/components/dialog/select-column-multiple/index.js +7 -7
  9. package/lib/cjs/components/dialog/select-join-column/index.js +4 -0
  10. package/lib/cjs/components/dialog/select-permission-table/index.js +2 -2
  11. package/lib/cjs/components/dialog/select-table/index.js +7 -7
  12. package/lib/cjs/components/icons.js +36 -36
  13. package/lib/cjs/components/metabase/index.js +41 -12
  14. package/lib/cjs/components/metabase/index.less +3 -0
  15. package/lib/cjs/components/modules/components/Wrapper.js +6 -6
  16. package/lib/cjs/components/modules/components/item-name.d.ts +7 -0
  17. package/lib/cjs/components/modules/components/item-name.js +34 -0
  18. package/lib/cjs/components/modules/components/meta-icon.js +6 -0
  19. package/lib/cjs/components/modules/custom-column.js +25 -25
  20. package/lib/cjs/components/modules/filter.js +2 -2
  21. package/lib/cjs/components/modules/join-data.js +206 -80
  22. package/lib/cjs/components/modules/permission-table.js +24 -10
  23. package/lib/cjs/components/modules/sort.js +17 -13
  24. package/lib/cjs/components/modules/summarize/group-by.js +90 -38
  25. package/lib/cjs/components/modules/summarize/select-index.js +84 -38
  26. package/lib/cjs/components/modules/table-data.js +14 -6
  27. package/lib/cjs/components/popup.js +1 -2
  28. package/lib/cjs/hooks/use-state.js +58 -65
  29. package/lib/cjs/index.js +1 -2
  30. package/lib/cjs/locale/en.js +5 -2
  31. package/lib/cjs/locale/zh.js +5 -2
  32. package/lib/cjs/utils/transformSql.d.ts +6 -0
  33. package/lib/cjs/utils/transformSql.js +968 -0
  34. package/lib/cjs/utils.d.ts +7 -1
  35. package/lib/cjs/utils.js +112 -15
  36. package/lib/es/common/SplitView/index.js +10 -10
  37. package/lib/es/components/dialog/expression/index.js +10 -10
  38. package/lib/es/components/dialog/formula-list/index.js +54 -44
  39. package/lib/es/components/dialog/select-column/index.js +4 -4
  40. package/lib/es/components/dialog/select-column-multiple/index.js +7 -7
  41. package/lib/es/components/dialog/select-join-column/index.js +4 -0
  42. package/lib/es/components/dialog/select-permission-table/index.js +2 -2
  43. package/lib/es/components/dialog/select-table/index.js +7 -7
  44. package/lib/es/components/icons.js +36 -36
  45. package/lib/es/components/metabase/index.js +42 -13
  46. package/lib/es/components/metabase/index.less +3 -0
  47. package/lib/es/components/modules/components/Wrapper.js +6 -6
  48. package/lib/es/components/modules/components/item-name.d.ts +7 -0
  49. package/lib/es/components/modules/components/item-name.js +28 -0
  50. package/lib/es/components/modules/components/meta-icon.js +6 -0
  51. package/lib/es/components/modules/custom-column.js +26 -26
  52. package/lib/es/components/modules/filter.js +2 -2
  53. package/lib/es/components/modules/join-data.js +207 -81
  54. package/lib/es/components/modules/permission-table.js +24 -10
  55. package/lib/es/components/modules/sort.js +18 -14
  56. package/lib/es/components/modules/summarize/group-by.js +92 -40
  57. package/lib/es/components/modules/summarize/select-index.js +86 -40
  58. package/lib/es/components/modules/table-data.js +14 -6
  59. package/lib/es/hooks/use-state.js +58 -65
  60. package/lib/es/locale/en.js +5 -2
  61. package/lib/es/locale/zh.js +5 -2
  62. package/lib/es/utils/transformSql.d.ts +6 -0
  63. package/lib/es/utils/transformSql.js +961 -0
  64. package/lib/es/utils.d.ts +7 -1
  65. package/lib/es/utils.js +102 -4
  66. package/package.json +1 -1
@@ -32,19 +32,19 @@ var Wrapper = function Wrapper(_ref) {
32
32
  function _animation() {
33
33
  _animation = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
34
34
  var _couterRef$current;
35
- return _regenerator["default"].wrap(function _callee$(_context) {
35
+ return _regenerator["default"].wrap(function (_context) {
36
36
  while (1) switch (_context.prev = _context.next) {
37
37
  case 0:
38
- _context.next = 2;
38
+ _context.next = 1;
39
39
  return (0, _helper.sleep)(10);
40
- case 2:
40
+ case 1:
41
41
  setOpacity(1);
42
42
  ((_couterRef$current = couterRef.current) === null || _couterRef$current === void 0 || (_couterRef$current = _couterRef$current.childNodes) === null || _couterRef$current === void 0 ? void 0 : _couterRef$current.length) && setMaxHeight(couterRef.current.childNodes[0].clientHeight + 16);
43
- _context.next = 6;
43
+ _context.next = 2;
44
44
  return (0, _helper.sleep)(500);
45
- case 6:
45
+ case 2:
46
46
  setMaxHeight('auto');
47
- case 7:
47
+ case 3:
48
48
  case "end":
49
49
  return _context.stop();
50
50
  }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface HeaderProps {
3
+ children: React.ReactNode;
4
+ isError: boolean;
5
+ }
6
+ declare const ItemName: (props: HeaderProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default ItemName;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _jsxRuntime = require("react/jsx-runtime");
8
+ var _pandora = require("@gingkoo/pandora");
9
+ var _pandoraIcons = require("@gingkoo/pandora-icons");
10
+ var _locale = require("../../../locale");
11
+ var ItemName = function ItemName(props) {
12
+ var children = props.children,
13
+ isError = props.isError;
14
+ return (0, _jsxRuntime.jsx)(_pandora.Badge, {
15
+ offset: [-8, 0],
16
+ count: isError ? (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
17
+ title: (0, _locale.__)('metabase.verify'),
18
+ children: (0, _jsxRuntime.jsx)(_pandora.Button, {
19
+ className: 'isError',
20
+ style: {
21
+ width: '100%',
22
+ height: '100%',
23
+ fontSize: 18
24
+ },
25
+ danger: true,
26
+ size: 'small',
27
+ icon: (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}),
28
+ iconOnly: true
29
+ })
30
+ }) : '',
31
+ children: children
32
+ });
33
+ };
34
+ var _default = exports["default"] = ItemName;
@@ -153,6 +153,9 @@ var findNextIcon = function findNextIcon(store, props) {
153
153
  } else {
154
154
  available = OrderType.slice(curLocation + 1, nextLocation);
155
155
  }
156
+ if (nextType === _enum.TypeEnum.joinData) {
157
+ available = [_enum.TypeEnum.joinData];
158
+ }
156
159
  }
157
160
  if (type === _enum.TypeEnum.joinData) {
158
161
  if (ExistAboveGroupBy && isLast) {
@@ -173,6 +176,9 @@ var findNextIcon = function findNextIcon(store, props) {
173
176
  if (nextType !== _enum.TypeEnum.joinData && meta.table2.name) {
174
177
  available.unshift(_enum.TypeEnum.joinData);
175
178
  }
179
+ if (nextType === _enum.TypeEnum.joinData) {
180
+ available = [_enum.TypeEnum.joinData];
181
+ }
176
182
  }
177
183
  if (type === _enum.TypeEnum.customColumn) {
178
184
  if (ExistAboveGroupBy && isLast) {
@@ -12,6 +12,7 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/
12
12
  var _jsxRuntime = require("react/jsx-runtime");
13
13
  var _pandora = require("@gingkoo/pandora");
14
14
  var _useProvider = require("../../hooks/use-provider");
15
+ var _classnames = _interopRequireDefault(require("classnames"));
15
16
  var _locale = require("../../locale");
16
17
  var _utils = require("../../utils");
17
18
  var _helper = require("../../utils/helper");
@@ -22,6 +23,7 @@ var _dialog = require("../dialog");
22
23
  var _Wrapper = _interopRequireDefault(require("./components/Wrapper"));
23
24
  var _metaIcon = _interopRequireDefault(require("./components/meta-icon"));
24
25
  var _header = _interopRequireDefault(require("./components/header"));
26
+ var _itemName = _interopRequireDefault(require("./components/item-name"));
25
27
  var CustomColumn = function CustomColumn(props) {
26
28
  var meta = props.meta,
27
29
  groupIndex = props.groupIndex;
@@ -73,14 +75,14 @@ var CustomColumn = function CustomColumn(props) {
73
75
  function _handleUpdate() {
74
76
  _handleUpdate = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(e, i) {
75
77
  var node, newMeta, value, columns;
76
- return _regenerator["default"].wrap(function _callee$(_context) {
78
+ return _regenerator["default"].wrap(function (_context) {
77
79
  while (1) switch (_context.prev = _context.next) {
78
80
  case 0:
79
81
  node = e.currentTarget;
80
82
  closePopup();
81
- _context.next = 4;
83
+ _context.next = 1;
82
84
  return (0, _helper.sleep)(100);
83
- case 4:
85
+ case 1:
84
86
  newMeta = store.metaList[groupIndex].list.slice();
85
87
  value = customColumn[i];
86
88
  columns = getAvailableColumns();
@@ -102,7 +104,7 @@ var CustomColumn = function CustomColumn(props) {
102
104
  onClose: closePopup
103
105
  })
104
106
  });
105
- case 8:
107
+ case 2:
106
108
  case "end":
107
109
  return _context.stop();
108
110
  }
@@ -128,8 +130,8 @@ var CustomColumn = function CustomColumn(props) {
128
130
  tableId: prevGroupBy.alias,
129
131
  tableUuid: prevGroupBy.tableUuid || (0, _helper.uuidv4)('table'),
130
132
  alias: prevGroupBy.alias,
131
- datasourceId: mainTable.table.datasourceId,
132
- datasourceName: mainTable.table.datasourceName,
133
+ datasourceId: '',
134
+ datasourceName: '',
133
135
  columns: []
134
136
  };
135
137
  if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group = prevGroupBy.group) !== null && _prevGroupBy$group !== void 0 && _prevGroupBy$group.length) {
@@ -161,15 +163,11 @@ var CustomColumn = function CustomColumn(props) {
161
163
  data = [_data];
162
164
  var joinData = prevList.filter(function (v) {
163
165
  return v.type === _enum.TypeEnum.joinData;
164
- })
165
- // @ts-ignore
166
- .filter(function (v) {
166
+ }).filter(function (v) {
167
167
  return v && v.table2.name;
168
168
  });
169
169
  if (joinData.length) {
170
- data = data.concat(
171
- // @ts-ignore
172
- joinData.map(function (v) {
170
+ data = data.concat(joinData.map(function (v) {
173
171
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v.table2), {}, {
174
172
  alias: v.table2.alias,
175
173
  table: v.table2.name,
@@ -182,7 +180,6 @@ var CustomColumn = function CustomColumn(props) {
182
180
  }));
183
181
  }
184
182
  } else {
185
- // @ts-ignore
186
183
  data = store.metaList[groupIndex].list.slice(0, index).map(function (v) {
187
184
  if (v.type === _enum.TypeEnum.data) {
188
185
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v.table), {}, {
@@ -303,20 +300,23 @@ var CustomColumn = function CustomColumn(props) {
303
300
  children: (0, _jsxRuntime.jsxs)("div", {
304
301
  className: "Sqb-NotebookCell gray-bg",
305
302
  children: [meta.customColumn.map(function (v, i) {
306
- return (0, _jsxRuntime.jsxs)("div", {
307
- className: "Sqb-TableName gray-name",
308
- onClick: function onClick(e) {
309
- return showSubQuery(e, i);
310
- },
311
- children: [v.name, (0, _jsxRuntime.jsx)("span", {
312
- style: {
313
- fontSize: 0
314
- },
303
+ return (0, _jsxRuntime.jsx)(_itemName["default"], {
304
+ isError: (0, _utils.isError)(v.formulaList, getColumns()),
305
+ children: (0, _jsxRuntime.jsxs)("div", {
306
+ className: (0, _classnames["default"])("Sqb-TableName gray-name"),
315
307
  onClick: function onClick(e) {
316
- return handleDel(e, i);
308
+ return showSubQuery(e, i);
317
309
  },
318
- children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
319
- })]
310
+ children: [v.name, (0, _jsxRuntime.jsx)("span", {
311
+ style: {
312
+ fontSize: 0
313
+ },
314
+ onClick: function onClick(e) {
315
+ return handleDel(e, i);
316
+ },
317
+ children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
318
+ })]
319
+ })
320
320
  }, i);
321
321
  }), (0, _jsxRuntime.jsx)("div", {
322
322
  className: "Sqb-TableName gray-name",
@@ -47,8 +47,8 @@ var Filter = function Filter(props) {
47
47
  id: prevGroupBy.alias,
48
48
  tableUuid: prevGroupBy.tableUuid,
49
49
  // alias: (prevGroupBy as MetaSummarize).alias,
50
- datasourceId: mainTable.table.datasourceId,
51
- datasourceName: mainTable.table.datasourceName,
50
+ // datasourceId: mainTable.table.datasourceId,
51
+ // datasourceName: mainTable.table.datasourceName,
52
52
  columns: []
53
53
  };
54
54
  if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group = prevGroupBy.group) !== null && _prevGroupBy$group !== void 0 && _prevGroupBy$group.length) {