@gingkoo/pandora-metabase 1.0.117 → 1.0.119

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 (195) hide show
  1. package/lib/cjs/common/Portal/index.js +0 -2
  2. package/lib/cjs/common/SplitView/index.d.ts +0 -4
  3. package/lib/cjs/common/SplitView/index.js +0 -10
  4. package/lib/cjs/components/dialog/custom-column/config.js +4 -48
  5. package/lib/cjs/components/dialog/custom-column/expression-editor.js +3 -14
  6. package/lib/cjs/components/dialog/custom-column/expressions/suggest.d.ts +2 -34
  7. package/lib/cjs/components/dialog/custom-column/expressions/suggest.js +2 -43
  8. package/lib/cjs/components/dialog/custom-column/expressions/tokenizer.js +8 -65
  9. package/lib/cjs/components/dialog/custom-column/index.js +2 -4
  10. package/lib/cjs/components/dialog/custom-column/tokenized-expression.js +2 -3
  11. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -1
  12. package/lib/cjs/components/dialog/custom-editor/index.js +2 -7
  13. package/lib/cjs/components/dialog/diff-viewer/index copy.js +1 -16
  14. package/lib/cjs/components/dialog/expression/date-format-picker.js +2 -20
  15. package/lib/cjs/components/dialog/expression/date-format.js +2 -8
  16. package/lib/cjs/components/dialog/expression/index.d.ts +0 -3
  17. package/lib/cjs/components/dialog/expression/index.js +2 -83
  18. package/lib/cjs/components/dialog/formula/index.js +1 -30
  19. package/lib/cjs/components/dialog/formula/utils.js +2 -10
  20. package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.d.ts +19 -0
  21. package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.js +109 -0
  22. package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +9 -0
  23. package/lib/cjs/components/dialog/formula-list/LogicGroup.js +43 -0
  24. package/lib/cjs/components/dialog/formula-list/index.d.ts +3 -0
  25. package/lib/cjs/components/dialog/formula-list/index.js +966 -509
  26. package/lib/cjs/components/dialog/formula-list/index.less +724 -0
  27. package/lib/cjs/components/dialog/formula-list/utils.d.ts +0 -7
  28. package/lib/cjs/components/dialog/formula-list/utils.js +117 -112
  29. package/lib/cjs/components/dialog/select-column/index.d.ts +0 -6
  30. package/lib/cjs/components/dialog/select-column/index.js +4 -15
  31. package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +0 -8
  32. package/lib/cjs/components/dialog/select-column-multiple/index.js +6 -45
  33. package/lib/cjs/components/dialog/select-join/index.d.ts +0 -5
  34. package/lib/cjs/components/dialog/select-join/index.js +0 -6
  35. package/lib/cjs/components/dialog/select-join-column/index.d.ts +0 -8
  36. package/lib/cjs/components/dialog/select-join-column/index.js +7 -21
  37. package/lib/cjs/components/dialog/select-join-column-multiple/index.d.ts +0 -8
  38. package/lib/cjs/components/dialog/select-join-column-multiple/index.js +5 -35
  39. package/lib/cjs/components/dialog/select-permission-table/index.d.ts +0 -5
  40. package/lib/cjs/components/dialog/select-permission-table/index.js +0 -6
  41. package/lib/cjs/components/dialog/select-summarize/index.d.ts +3 -3
  42. package/lib/cjs/components/dialog/select-summarize/index.js +105 -18
  43. package/lib/cjs/components/dialog/select-summarize/index.less +23 -0
  44. package/lib/cjs/components/dialog/select-table/index.d.ts +0 -6
  45. package/lib/cjs/components/dialog/select-table/index.js +1 -9
  46. package/lib/cjs/components/metabase/index.js +72 -86
  47. package/lib/cjs/components/metabase/index.less +14 -7
  48. package/lib/cjs/components/modules/components/Wrapper.js +1 -1
  49. package/lib/cjs/components/modules/components/header.js +2 -2
  50. package/lib/cjs/components/modules/components/meta-icon.d.ts +0 -3
  51. package/lib/cjs/components/modules/components/meta-icon.js +2 -47
  52. package/lib/cjs/components/modules/custom-column.js +3 -29
  53. package/lib/cjs/components/modules/enum/filter-enum.js +9 -88
  54. package/lib/cjs/components/modules/filter.js +2 -20
  55. package/lib/cjs/components/modules/index.d.ts +4 -2
  56. package/lib/cjs/components/modules/index.js +24 -1
  57. package/lib/cjs/components/modules/join-data.js +13 -291
  58. package/lib/cjs/components/modules/row-limit.js +0 -1
  59. package/lib/cjs/components/modules/sort.js +1 -61
  60. package/lib/cjs/components/modules/summarize/group-by.d.ts +0 -5
  61. package/lib/cjs/components/modules/summarize/group-by.js +231 -76
  62. package/lib/cjs/components/modules/summarize/select-index.js +96 -46
  63. package/lib/cjs/components/modules/table-data.js +11 -64
  64. package/lib/cjs/components/popup.js +26 -32
  65. package/lib/cjs/hooks/patch.d.ts +1 -0
  66. package/lib/cjs/hooks/patch.js +104 -6
  67. package/lib/cjs/hooks/patch2.js +3 -165
  68. package/lib/cjs/hooks/use-provider.js +0 -3
  69. package/lib/cjs/hooks/use-state.js +55 -135
  70. package/lib/cjs/index.js +0 -15
  71. package/lib/cjs/locale/en.js +5 -0
  72. package/lib/cjs/locale/index.js +1 -4
  73. package/lib/cjs/locale/zh.js +5 -0
  74. package/lib/cjs/sql-formula.js +0 -1
  75. package/lib/cjs/store/enum.d.ts +6 -6
  76. package/lib/cjs/store/enum.js +0 -13
  77. package/lib/cjs/store/helper.d.ts +2 -1
  78. package/lib/cjs/store/helper.js +15 -225
  79. package/lib/cjs/store/types.d.ts +45 -67
  80. package/lib/cjs/store/types.js +3 -49
  81. package/lib/cjs/types.d.ts +1 -0
  82. package/lib/cjs/utils/cookies.js +0 -3
  83. package/lib/cjs/utils/event.js +1 -1
  84. package/lib/cjs/utils/helper-dom.d.ts +1 -0
  85. package/lib/cjs/utils/helper-dom.js +17 -10
  86. package/lib/cjs/utils/helper.js +1 -24
  87. package/lib/cjs/utils/keydown.js +4 -7
  88. package/lib/cjs/utils/platform.d.ts +0 -9
  89. package/lib/cjs/utils/platform.js +0 -10
  90. package/lib/cjs/utils/selection.js +0 -6
  91. package/lib/cjs/utils/storage.d.ts +0 -9
  92. package/lib/cjs/utils/storage.js +1 -11
  93. package/lib/cjs/utils/transformSql.d.ts +5 -0
  94. package/lib/cjs/utils/transformSql.js +42 -113
  95. package/lib/cjs/utils.d.ts +1 -6
  96. package/lib/cjs/utils.js +115 -255
  97. package/lib/es/common/Portal/index.js +0 -2
  98. package/lib/es/common/SplitView/index.d.ts +0 -4
  99. package/lib/es/common/SplitView/index.js +0 -10
  100. package/lib/es/components/dialog/custom-column/config.js +4 -48
  101. package/lib/es/components/dialog/custom-column/expression-editor.js +3 -14
  102. package/lib/es/components/dialog/custom-column/expressions/suggest.d.ts +2 -34
  103. package/lib/es/components/dialog/custom-column/expressions/suggest.js +2 -43
  104. package/lib/es/components/dialog/custom-column/expressions/tokenizer.js +8 -65
  105. package/lib/es/components/dialog/custom-column/index.js +2 -4
  106. package/lib/es/components/dialog/custom-column/tokenized-expression.js +1 -3
  107. package/lib/es/components/dialog/custom-column/tokenizedI-input.js +1 -1
  108. package/lib/es/components/dialog/custom-editor/index.js +1 -7
  109. package/lib/es/components/dialog/diff-viewer/index copy.js +1 -15
  110. package/lib/es/components/dialog/expression/date-format-picker.js +2 -20
  111. package/lib/es/components/dialog/expression/date-format.js +2 -8
  112. package/lib/es/components/dialog/expression/index.d.ts +0 -3
  113. package/lib/es/components/dialog/expression/index.js +2 -82
  114. package/lib/es/components/dialog/formula/index.js +0 -30
  115. package/lib/es/components/dialog/formula/utils.js +2 -10
  116. package/lib/es/components/dialog/formula-list/CaseWhenGroup.d.ts +19 -0
  117. package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +102 -0
  118. package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +9 -0
  119. package/lib/es/components/dialog/formula-list/LogicGroup.js +36 -0
  120. package/lib/es/components/dialog/formula-list/index.d.ts +3 -0
  121. package/lib/es/components/dialog/formula-list/index.js +965 -509
  122. package/lib/es/components/dialog/formula-list/index.less +724 -0
  123. package/lib/es/components/dialog/formula-list/utils.d.ts +0 -7
  124. package/lib/es/components/dialog/formula-list/utils.js +117 -112
  125. package/lib/es/components/dialog/index.js +3 -3
  126. package/lib/es/components/dialog/select-column/index.d.ts +0 -6
  127. package/lib/es/components/dialog/select-column/index.js +4 -14
  128. package/lib/es/components/dialog/select-column-multiple/index.d.ts +0 -8
  129. package/lib/es/components/dialog/select-column-multiple/index.js +7 -47
  130. package/lib/es/components/dialog/select-join/index.d.ts +0 -5
  131. package/lib/es/components/dialog/select-join/index.js +0 -5
  132. package/lib/es/components/dialog/select-join-column/index.d.ts +0 -8
  133. package/lib/es/components/dialog/select-join-column/index.js +7 -20
  134. package/lib/es/components/dialog/select-join-column-multiple/index.d.ts +0 -8
  135. package/lib/es/components/dialog/select-join-column-multiple/index.js +5 -34
  136. package/lib/es/components/dialog/select-permission-table/index.d.ts +0 -5
  137. package/lib/es/components/dialog/select-permission-table/index.js +0 -5
  138. package/lib/es/components/dialog/select-summarize/index.d.ts +3 -3
  139. package/lib/es/components/dialog/select-summarize/index.js +106 -18
  140. package/lib/es/components/dialog/select-summarize/index.less +23 -0
  141. package/lib/es/components/dialog/select-table/index.d.ts +0 -6
  142. package/lib/es/components/dialog/select-table/index.js +1 -8
  143. package/lib/es/components/metabase/index.js +72 -87
  144. package/lib/es/components/metabase/index.less +14 -7
  145. package/lib/es/components/modules/components/Wrapper.js +1 -1
  146. package/lib/es/components/modules/components/header.js +2 -2
  147. package/lib/es/components/modules/components/meta-icon.d.ts +0 -3
  148. package/lib/es/components/modules/components/meta-icon.js +2 -46
  149. package/lib/es/components/modules/custom-column.js +3 -29
  150. package/lib/es/components/modules/enum/filter-enum.js +9 -88
  151. package/lib/es/components/modules/filter.js +2 -19
  152. package/lib/es/components/modules/index.d.ts +4 -2
  153. package/lib/es/components/modules/index.js +24 -1
  154. package/lib/es/components/modules/join-data.js +13 -291
  155. package/lib/es/components/modules/row-limit.js +0 -1
  156. package/lib/es/components/modules/sort.js +1 -61
  157. package/lib/es/components/modules/summarize/group-by.d.ts +0 -5
  158. package/lib/es/components/modules/summarize/group-by.js +233 -78
  159. package/lib/es/components/modules/summarize/select-index.js +96 -46
  160. package/lib/es/components/modules/table-data.js +11 -64
  161. package/lib/es/components/popup.js +27 -33
  162. package/lib/es/hooks/patch.d.ts +1 -0
  163. package/lib/es/hooks/patch.js +103 -5
  164. package/lib/es/hooks/patch2.js +2 -164
  165. package/lib/es/hooks/use-provider.js +0 -3
  166. package/lib/es/hooks/use-state.js +55 -135
  167. package/lib/es/index.js +0 -14
  168. package/lib/es/locale/en.js +5 -0
  169. package/lib/es/locale/index.js +1 -4
  170. package/lib/es/locale/zh.js +5 -0
  171. package/lib/es/sql-formula.js +0 -1
  172. package/lib/es/store/enum.d.ts +6 -6
  173. package/lib/es/store/enum.js +0 -13
  174. package/lib/es/store/helper.d.ts +2 -1
  175. package/lib/es/store/helper.js +13 -224
  176. package/lib/es/store/types.d.ts +45 -67
  177. package/lib/es/store/types.js +3 -49
  178. package/lib/es/types.d.ts +1 -0
  179. package/lib/es/types.js +1 -18
  180. package/lib/es/utils/cookies.js +0 -3
  181. package/lib/es/utils/event.js +1 -1
  182. package/lib/es/utils/helper-dom.d.ts +1 -0
  183. package/lib/es/utils/helper-dom.js +16 -9
  184. package/lib/es/utils/helper.js +1 -24
  185. package/lib/es/utils/keydown.js +4 -7
  186. package/lib/es/utils/platform.d.ts +0 -9
  187. package/lib/es/utils/platform.js +0 -10
  188. package/lib/es/utils/selection.js +0 -6
  189. package/lib/es/utils/storage.d.ts +0 -9
  190. package/lib/es/utils/storage.js +1 -10
  191. package/lib/es/utils/transformSql.d.ts +5 -0
  192. package/lib/es/utils/transformSql.js +42 -112
  193. package/lib/es/utils.d.ts +1 -6
  194. package/lib/es/utils.js +116 -255
  195. package/package.json +1 -1
@@ -3,12 +3,6 @@ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
3
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
4
  import _regeneratorRuntime from "@babel/runtime/regenerator";
5
5
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
6
- /**
7
- * 选择表弹框
8
- * 谁在用?
9
- * 1、数据模块
10
- * 2、关联模块
11
- */
12
6
  import './index.less';
13
7
  import React, { useState, useEffect } from 'react';
14
8
  import cloneDeep from 'lodash/cloneDeep';
@@ -63,7 +57,7 @@ var SelectTable = function SelectTable(_ref) {
63
57
  return _getTables.apply(this, arguments);
64
58
  }
65
59
  function _getTables() {
66
- _getTables = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(datasourceId) {
60
+ _getTables = _asyncToGenerator(_regeneratorRuntime.mark(function _callee(datasourceId) {
67
61
  var tables;
68
62
  return _regeneratorRuntime.wrap(function (_context) {
69
63
  while (1) switch (_context.prev = _context.next) {
@@ -193,7 +187,6 @@ var SelectTable = function SelectTable(_ref) {
193
187
  });
194
188
  }
195
189
  var nextPage = !val.datasourceId;
196
- // 没有选 数据源 先选数据源
197
190
  if (nextPage) {
198
191
  return _jsx("div", {
199
192
  className: cx("Sqb-SelectDataSource--box pb-2 pt-2"),
@@ -8,10 +8,9 @@ import './index.less';
8
8
  import { useMemo, useState } from 'react';
9
9
  import cx from 'classnames';
10
10
  import { Button, Modal, Toast, Space, Tooltip } from '@gingkoo/pandora';
11
- // import { toJS } from 'mobx';
12
11
  import Styled from 'styled-components';
13
12
  import Union from '../modules/union';
14
- import { splitByUnion, reassembleByUnion, patchData } from '../../utils';
13
+ import { splitByUnion, reassembleByUnion, patchData, normalizeLegacySummarizeForSave } from '../../utils';
15
14
  import { __ } from '../../locale';
16
15
  import modulesMap from '../modules';
17
16
  import Popup from '../popup';
@@ -27,7 +26,8 @@ var Metabase = function Metabase(props) {
27
26
  readonly = _props$readonly === void 0 ? false : _props$readonly,
28
27
  onOk = props.onOk,
29
28
  metabaseCopy = props.metabaseCopy,
30
- moduleCopy = props.moduleCopy;
29
+ moduleCopy = props.moduleCopy,
30
+ popupZIndex = props.popupZIndex;
31
31
  var store = useStore();
32
32
  var _useState = useState(false),
33
33
  _useState2 = _slicedToArray(_useState, 2),
@@ -37,8 +37,6 @@ var Metabase = function Metabase(props) {
37
37
  _useState4 = _slicedToArray(_useState3, 2),
38
38
  isCopy = _useState4[0],
39
39
  setIsCopy = _useState4[1];
40
- // const popupContainer = useRef();
41
- // store.setPopupContainer(popupContainer);
42
40
  var popupContent = useMemo(function () {
43
41
  var _store$popupData = store.popupData,
44
42
  visible = _store$popupData.visible,
@@ -60,9 +58,6 @@ var Metabase = function Metabase(props) {
60
58
  Modal.error({
61
59
  title: __('metabase.prompt'),
62
60
  content: __('metabase.validationFilter')
63
- // onOk: async () => {
64
- // // await onSave();
65
- // },
66
61
  });
67
62
  return;
68
63
  }
@@ -71,7 +66,7 @@ var Metabase = function Metabase(props) {
71
66
  title: __('metabase.prompt'),
72
67
  content: __('metabase.validationFailed'),
73
68
  onOk: function () {
74
- var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
69
+ var _onOk = _asyncToGenerator(_regeneratorRuntime.mark(function _callee() {
75
70
  return _regeneratorRuntime.wrap(function (_context) {
76
71
  while (1) switch (_context.prev = _context.next) {
77
72
  case 0:
@@ -93,18 +88,19 @@ var Metabase = function Metabase(props) {
93
88
  onSave();
94
89
  }
95
90
  };
96
- var onSave = /*#__PURE__*/function () {
97
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
91
+ var onSave = function () {
92
+ var _ref = _asyncToGenerator(_regeneratorRuntime.mark(function _callee2() {
98
93
  var intercept, _metaList;
99
94
  return _regeneratorRuntime.wrap(function (_context2) {
100
95
  while (1) switch (_context2.prev = _context2.next) {
101
96
  case 0:
102
- intercept = false; // 是否返回
103
- _metaList = splitByUnion(store.metaList);
97
+ intercept = false;
98
+ _metaList = normalizeLegacySummarizeForSave(splitByUnion(store.metaList));
104
99
  _metaList[0].patchVersion = '1.1.0';
105
100
  store.metaList.map(function (v) {
106
101
  var _v$list;
107
- if (v.type !== 'union' && !((_v$list = v.list) === null || _v$list === void 0 ? void 0 : _v$list[0]).table.name) {
102
+ var firstTableName = (_v$list = v.list) === null || _v$list === void 0 || (_v$list = _v$list[0]) === null || _v$list === void 0 || (_v$list = _v$list.table) === null || _v$list === void 0 ? void 0 : _v$list.name;
103
+ if (v.type !== 'union' && !firstTableName) {
108
104
  intercept = true;
109
105
  return Toast.warning(__('data.pleaseSelectDataTable'));
110
106
  }
@@ -130,7 +126,6 @@ var Metabase = function Metabase(props) {
130
126
  return _ref.apply(this, arguments);
131
127
  };
132
128
  }();
133
- // 复制功能
134
129
  var copy = function copy() {
135
130
  return _jsxs(Space, {
136
131
  children: [moduleCopy && _jsx(_Fragment, {
@@ -144,9 +139,6 @@ var Metabase = function Metabase(props) {
144
139
  'primary-color': !store.isMetabaseCopy
145
140
  }),
146
141
  onClick: function onClick() {
147
- // if (store.isMetabaseCopy) {
148
- // storage._metabaseCopyModule = null;
149
- // }
150
142
  store.setIsMetabaseCopy(!store.isMetabaseCopy);
151
143
  store.setMetabaseCopyModule([]);
152
144
  storage._metabaseCopyModule = [];
@@ -194,78 +186,71 @@ var Metabase = function Metabase(props) {
194
186
  })]
195
187
  });
196
188
  };
197
- return (
198
- // @ts-ignore
199
- _jsx(VisualBox, {
200
- ref: store.popupContainer,
201
- children: _jsxs("div", {
202
- className: 'Sqb',
203
- children: [_jsx("div", {
204
- className: 'Sqb-fun-btns',
205
- children: copy()
206
- }), store.metaList.map(function (v, index) {
207
- var _v$list2;
208
- if (v.type === 'union' && v.union) {
209
- return _jsx("div", {
210
- className: cx("Sqb-list"),
211
- children: _jsx(Union, {
212
- union: v.union,
213
- meta: v,
214
- groupIndex: index
215
- })
216
- }, 'union' + index);
217
- }
189
+ return _jsx(VisualBox, {
190
+ ref: store.popupContainer,
191
+ children: _jsxs("div", {
192
+ className: 'Sqb',
193
+ children: [_jsx("div", {
194
+ className: 'Sqb-fun-btns',
195
+ children: copy()
196
+ }), store.metaList.map(function (v, index) {
197
+ var _v$list2;
198
+ if (v.type === 'union' && v.union) {
218
199
  return _jsx("div", {
219
200
  className: cx("Sqb-list"),
220
- children: v === null || v === void 0 || (_v$list2 = v.list) === null || _v$list2 === void 0 ? void 0 : _v$list2.map(function (meta) {
221
- var metaType = meta.type,
222
- metaKey = meta.metaKey,
223
- hidden = meta.hidden;
224
- if (hidden) return null;
225
- var Component = modulesMap.get(metaType);
226
- return _jsx(Component, {
227
- meta: meta,
228
- groupIndex: index
229
- }, metaKey);
201
+ children: _jsx(Union, {
202
+ union: v.union,
203
+ meta: v,
204
+ groupIndex: index
230
205
  })
231
- }, 'group' + index);
232
- }), !readonly && typeof onOk === 'function' ? _jsx(Button, {
233
- type: 'primary',
234
- className: ":Sqb-btn",
235
- loading: saveLoading,
236
- disabled: saveLoading,
237
- onClick: onCheck,
238
- children: btnText || __('SqlQueryBuilder.visualize')
239
- }) : null, store.popupContainer.current && _jsx(Popup
240
- // container={store.popupData.container || store.popupContainer.current}
241
- , {
242
- // container={store.popupData.container || store.popupContainer.current}
243
- visible: store.popupData.visible,
244
- node: store.popupData.node,
245
- closable: store.popupClosable,
246
- hideVisible: function hideVisible() {
247
- store.setPopup({
248
- visible: false
249
- });
250
- },
251
- children: popupContent
252
- }), store.popupContainer.current && _jsx(Popup
253
- // container={store.popupData2.container || store.popupContainer.current}
254
- , {
255
- // container={store.popupData2.container || store.popupContainer.current}
256
- visible: store.popupData2.visible,
257
- node: store.popupData2.node,
258
- closable: store.popupClosable2,
259
- hideVisible: function hideVisible() {
260
- store.setClosable(true);
261
- store.setPopup2({
262
- visible: false
263
- });
264
- },
265
- children: popupContent2
266
- })]
267
- })
206
+ }, 'union' + index);
207
+ }
208
+ return _jsx("div", {
209
+ className: cx("Sqb-list"),
210
+ children: v === null || v === void 0 || (_v$list2 = v.list) === null || _v$list2 === void 0 ? void 0 : _v$list2.map(function (meta) {
211
+ var metaType = meta.type,
212
+ metaKey = meta.metaKey,
213
+ hidden = meta.hidden;
214
+ if (hidden) return null;
215
+ var Component = modulesMap.get(metaType);
216
+ return _jsx(Component, {
217
+ meta: meta,
218
+ groupIndex: index
219
+ }, metaKey);
220
+ })
221
+ }, 'group' + index);
222
+ }), !readonly && typeof onOk === 'function' ? _jsx(Button, {
223
+ type: 'primary',
224
+ className: ":Sqb-btn",
225
+ loading: saveLoading,
226
+ disabled: saveLoading,
227
+ onClick: onCheck,
228
+ children: btnText || __('SqlQueryBuilder.visualize')
229
+ }) : null, store.popupContainer.current && _jsx(Popup, {
230
+ visible: store.popupData.visible,
231
+ node: store.popupData.node,
232
+ zIndex: popupZIndex,
233
+ closable: store.popupClosable,
234
+ hideVisible: function hideVisible() {
235
+ store.setPopup({
236
+ visible: false
237
+ });
238
+ },
239
+ children: popupContent
240
+ }), store.popupContainer.current && _jsx(Popup, {
241
+ visible: store.popupData2.visible,
242
+ node: store.popupData2.node,
243
+ zIndex: popupZIndex,
244
+ closable: store.popupClosable2,
245
+ hideVisible: function hideVisible() {
246
+ store.setClosable(true);
247
+ store.setPopup2({
248
+ visible: false
249
+ });
250
+ },
251
+ children: popupContent2
252
+ })]
268
253
  })
269
- );
254
+ });
270
255
  };
271
256
  export default Metabase;
@@ -111,7 +111,7 @@
111
111
  .right-arrow,
112
112
  .left-arrow {
113
113
  position: absolute;
114
- top: 0;
114
+ top: 50%;
115
115
  height: 40px;
116
116
  width: 30px;
117
117
  display: flex;
@@ -119,7 +119,7 @@
119
119
  justify-content: center;
120
120
  opacity: 0.4;
121
121
  cursor: pointer;
122
- transform: scale(0);
122
+ transform: translateY(-50%) scale(0);
123
123
  transition: all 0.3s;
124
124
  img {
125
125
  transform: scale(0.8);
@@ -129,7 +129,7 @@
129
129
  }
130
130
  }
131
131
  .left-arrow {
132
- transform: rotate(180deg) scale(0);
132
+ transform: translateY(-50%) rotate(180deg) scale(0);
133
133
  transform-origin: 50% 50%;
134
134
  // padding-top: 10px;
135
135
  left: -30px;
@@ -139,11 +139,11 @@
139
139
  // padding-bottom: 10px;
140
140
  }
141
141
  &:not(.item-fixed).hover {
142
- .left-arrow {
143
- transform: rotate(180deg) scale(1);
142
+ > .left-arrow {
143
+ transform: translateY(-50%) rotate(180deg) scale(1);
144
144
  }
145
- .right-arrow {
146
- transform: scale(1);
145
+ > .right-arrow {
146
+ transform: translateY(-50%) scale(1);
147
147
  }
148
148
  }
149
149
  }
@@ -208,11 +208,18 @@
208
208
  top: 0;
209
209
  transform: translate(50%, -50%);
210
210
  margin: 0;
211
+ padding: 0;
211
212
  border: none;
212
213
  border-radius: 50%;
213
214
  width: 20px;
214
215
  height: 20px;
216
+ min-height: 20px;
215
217
  font-size: 12px;
218
+ display: inline-flex;
219
+ align-items: center;
220
+ justify-content: center;
221
+ line-height: 1;
222
+ flex-shrink: 0;
216
223
  }
217
224
  &-input {
218
225
  //输入框样式,稍微小了一点
@@ -23,7 +23,7 @@ var Wrapper = function Wrapper(_ref) {
23
23
  return _animation.apply(this, arguments);
24
24
  }
25
25
  function _animation() {
26
- _animation = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
26
+ _animation = _asyncToGenerator(_regeneratorRuntime.mark(function _callee() {
27
27
  var _couterRef$current;
28
28
  return _regeneratorRuntime.wrap(function (_context) {
29
29
  while (1) switch (_context.prev = _context.next) {
@@ -13,8 +13,8 @@ var Header = function Header(props) {
13
13
  groupIndex = props.groupIndex,
14
14
  isDataModule = props.isDataModule;
15
15
  var store = useStore();
16
- var diff = /*#__PURE__*/function () {
17
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
16
+ var diff = function () {
17
+ var _ref = _asyncToGenerator(_regeneratorRuntime.mark(function _callee() {
18
18
  var _oldMeta, _newMeta, _yield$store$getModul, oldCode, newCode, o;
19
19
  return _regeneratorRuntime.wrap(function (_context) {
20
20
  while (1) switch (_context.prev = _context.next) {
@@ -10,9 +10,6 @@ type IconInfoType = {
10
10
  className?: string;
11
11
  };
12
12
  export declare const IconTypeMap: Map<TypeEnum, IconInfoType>;
13
- /**
14
- * 查找模块下面能放哪些icon (参考来源:metabase.com)
15
- */
16
13
  export declare const findNextIcon: (store: any, props: PropsType) => TypeEnum[];
17
14
  declare const NextDom: (props: PropsType) => import("react/jsx-runtime").JSX.Element | null;
18
15
  export default NextDom;
@@ -9,7 +9,6 @@ import { Tooltip, Button, Toast } from '@gingkoo/pandora';
9
9
  import { FfPlus } from '@gingkoo/pandora-icons';
10
10
  import storage from '../../../utils/storage';
11
11
  import { getHelper, isCanPaste } from '../../../utils';
12
- // import { type SqlVisionStoreType } from '../../../store/helper';
13
12
  import { useStore } from '../../../hooks/use-provider';
14
13
  import { RowLimitIcon, SortIcon, CustomColumnIcon, JoinDataIcon, PermissionTableIcon, SummarizeIcon, FilterIcon, GroupIcon } from '../../icons';
15
14
  var IconSIzeEnum;
@@ -50,11 +49,8 @@ export var IconTypeMap = new Map([[TypeEnum.filter, {
50
49
  icon: _jsx(GroupIcon, {}),
51
50
  className: 'union'
52
51
  }]]);
53
- // 前端展示的icon顺序 随便改不影响逻辑
54
52
  var DisplayOrder = [TypeEnum.filter, TypeEnum.summarize, TypeEnum.joinData, TypeEnum.permissionTable, TypeEnum.customColumn, TypeEnum.sort, TypeEnum.rowLimit, TypeEnum.union];
55
- // js逻辑顺序 正常顺序
56
53
  var OrderType = [TypeEnum.data, TypeEnum.joinData, TypeEnum.permissionTable, TypeEnum.customColumn, TypeEnum.filter, TypeEnum.summarize, TypeEnum.sort, TypeEnum.rowLimit, TypeEnum.union];
57
- // js逻辑顺序 聚合下面的顺序是这个样子
58
54
  var OrderNewType = [TypeEnum.sort, TypeEnum.rowLimit, TypeEnum.joinData, TypeEnum.permissionTable, TypeEnum.customColumn, TypeEnum.filter, TypeEnum.summarize, TypeEnum.union];
59
55
  var metaIcon = function metaIcon(size, handleClick) {
60
56
  return function (_ref) {
@@ -80,25 +76,6 @@ var metaIcon = function metaIcon(size, handleClick) {
80
76
  });
81
77
  };
82
78
  };
83
- /**
84
- * 如果选择了聚合 数据的 字段就不能选了
85
- */
86
- /*
87
- **** 该文件 主要是判断 模块下面该放的icon ****
88
-
89
- 这一块逻辑比较复杂 主要分两个部分
90
- 一、模块下面应该放哪些icon
91
- 1)正常顺序是上面的 OrderType,然后各自根据各自情况找出自己下面能放的icon,但是有两个瘪犊子 (关联、聚合)
92
- 2)关联比较特殊 可以有多个关联,关联选择了关联表之后,下面还可以继续选关联
93
- 3)聚合 ... 情况太大了 不一一写了 后面的人自己看下面代码逻辑吧
94
- 5)
95
- 6)
96
- 二、模块下面的icon size是large 还是small
97
- 1)正常情况,除了最后一个模块下面的icon是 large 其他的都是small 但是也有特殊情况,
98
- 2)特殊情况一 如果最后一个是聚合,且聚合没有选指标和groupby 下面是small
99
- 3)特殊情况二 如果最后一个是排序,下面是small
100
- */
101
- // 判断icon大小
102
79
  var judgeSize = function judgeSize(store, props, nextLen, groupIndex) {
103
80
  var meta = props.meta;
104
81
  var type = meta.type;
@@ -119,9 +96,6 @@ var judgeSize = function judgeSize(store, props, nextLen, groupIndex) {
119
96
  }
120
97
  return size;
121
98
  };
122
- /**
123
- * 查找模块下面能放哪些icon (参考来源:metabase.com)
124
- */
125
99
  export var findNextIcon = function findNextIcon(store, props) {
126
100
  var _store$metaList$group;
127
101
  var meta = props.meta,
@@ -138,10 +112,8 @@ export var findNextIcon = function findNextIcon(store, props) {
138
112
  prevGroupBy = _getHelper.prevGroupBy,
139
113
  nextGroupBy = _getHelper.nextGroupBy;
140
114
  var nextType = ((_store$metaList$group = store.metaList[groupIndex].list[index + 1]) === null || _store$metaList$group === void 0 ? void 0 : _store$metaList$group.type) || '';
141
- // @ts-ignore
142
115
  var isLast = nextType === '';
143
116
  var available = [];
144
- // 当前处在的位置
145
117
  var curLocation = OrderType.indexOf(type);
146
118
  var nextLocation = OrderType.indexOf(nextType);
147
119
  if (type === TypeEnum.data) {
@@ -156,7 +128,6 @@ export var findNextIcon = function findNextIcon(store, props) {
156
128
  }
157
129
  if (type === TypeEnum.joinData) {
158
130
  if (ExistAboveGroupBy && isLast) {
159
- // 聚合在上面 且自己是最后一个
160
131
  if (meta.table2.name) {
161
132
  available = OrderType.slice(curLocation + 1);
162
133
  } else {
@@ -169,7 +140,6 @@ export var findNextIcon = function findNextIcon(store, props) {
169
140
  available = OrderType.slice(curLocation + 1, nextLocation);
170
141
  }
171
142
  }
172
- // 关联比较特殊可以有多个
173
143
  if (nextType !== TypeEnum.joinData && meta.table2.name) {
174
144
  available.unshift(TypeEnum.joinData);
175
145
  }
@@ -179,9 +149,7 @@ export var findNextIcon = function findNextIcon(store, props) {
179
149
  }
180
150
  if (type === TypeEnum.customColumn) {
181
151
  if (ExistAboveGroupBy && isLast) {
182
- // 聚合在上面 且自己是最后一个
183
152
  var joinIndex = prevTypes.indexOf(TypeEnum.joinData);
184
- // 如果自定义已经选了 或者 自定义没选但是他上面有个关联且关联选了 则展示排序和行限制 否则不展示
185
153
  if (meta.customColumn.length || ~joinIndex && prevList[joinIndex].table2.name) {
186
154
  available = OrderType.slice(curLocation + 1);
187
155
  } else {
@@ -197,10 +165,8 @@ export var findNextIcon = function findNextIcon(store, props) {
197
165
  }
198
166
  if (type === TypeEnum.filter) {
199
167
  if (ExistAboveGroupBy && isLast) {
200
- // 聚合在上面 且自己是最后一个
201
168
  var _joinIndex = prevTypes.indexOf(TypeEnum.joinData);
202
169
  var customIndex = prevTypes.indexOf(TypeEnum.customColumn);
203
- // 如果自定义已经选了 或者 自定义没选但是他上面有个关联且关联选了 则展示排序和行限制 否则不展示
204
170
  if (meta.filter.length || ~_joinIndex && prevList[_joinIndex].table2.name || ~customIndex && prevList[customIndex].customColumn.length) {
205
171
  available = OrderType.slice(curLocation + 1);
206
172
  } else {
@@ -217,9 +183,7 @@ export var findNextIcon = function findNextIcon(store, props) {
217
183
  if (type === TypeEnum.summarize) {
218
184
  if (isLast) {
219
185
  if (!ExistAboveGroupBy) {
220
- if (meta.group.length && !meta.by.length) {
221
- // 一个不显示
222
- } else if (!meta.group.length && !meta.by.length) {
186
+ if (meta.group.length && !meta.by.length) {} else if (!meta.group.length && !meta.by.length) {
223
187
  available = [TypeEnum.sort, TypeEnum.rowLimit, TypeEnum.union];
224
188
  } else {
225
189
  available = OrderNewType;
@@ -231,9 +195,7 @@ export var findNextIcon = function findNextIcon(store, props) {
231
195
  var filterIndex = prevTypes.indexOf(TypeEnum.filter);
232
196
  if (~_joinIndex2 && prevList[_joinIndex2].table2.name || ~_customIndex && prevList[_customIndex].customColumn.length || ~filterIndex && prevList[filterIndex].filter.length) {
233
197
  available = OrderType.slice(curLocation + 1);
234
- } else {
235
- // 一个不显示
236
- }
198
+ } else {}
237
199
  } else {
238
200
  available = OrderNewType;
239
201
  }
@@ -308,7 +270,6 @@ var NextDom = function NextDom(props) {
308
270
  var meta = props.meta,
309
271
  groupIndex = props.groupIndex;
310
272
  var store = useStore();
311
- // @ts-ignore
312
273
  if (!((_store$metaList = store.metaList) !== null && _store$metaList !== void 0 && (_store$metaList = _store$metaList[groupIndex]) !== null && _store$metaList !== void 0 && (_store$metaList = _store$metaList.list) !== null && _store$metaList !== void 0 && (_store$metaList = _store$metaList[0]) !== null && _store$metaList !== void 0 && (_store$metaList = _store$metaList.table) !== null && _store$metaList !== void 0 && _store$metaList.name)) return null;
313
274
  var available = findNextIcon(store, props);
314
275
  if (!store.showToolbar(TypeEnum.permissionTable)) {
@@ -329,7 +290,6 @@ var NextDom = function NextDom(props) {
329
290
  setIsShowAdd = _React$useState2[1];
330
291
  useEffect(function () {
331
292
  if (store.metabaseCopyModule) {
332
- // let { prevItem, nextItem } = getHelper(store.metaList[groupIndex].list, meta);
333
293
  var nextTypes = findNextIcon(store, {
334
294
  meta: meta,
335
295
  groupIndex: groupIndex
@@ -346,10 +306,8 @@ var NextDom = function NextDom(props) {
346
306
  var _store$metaList3;
347
307
  var index = (_store$metaList3 = store.metaList) === null || _store$metaList3 === void 0 || (_store$metaList3 = _store$metaList3[groupIndex]) === null || _store$metaList3 === void 0 || (_store$metaList3 = _store$metaList3.list) === null || _store$metaList3 === void 0 ? void 0 : _store$metaList3.indexOf(meta);
348
308
  var success = store.addMeta('', index + 1, groupIndex, store.metabaseCopyModule, function (conflictingAlias) {
349
- // 冲突提示
350
309
  Toast.warning("\u8BE5\u8868\u5DF2\u5B58\u5728\u5173\u8054\uFF0C\u4E0D\u80FD\u590D\u5236");
351
310
  });
352
- // 仅在成功时重置
353
311
  if (success) {
354
312
  store.setMetabaseCopyModule([]);
355
313
  store.setIsMetabaseCopy(false);
@@ -362,8 +320,6 @@ var NextDom = function NextDom(props) {
362
320
  children: _jsxs(Button, {
363
321
  className: cx(':Sqb-item-copy'),
364
322
  onClick: handlePaste,
365
- // iconOnly={false}
366
- // icon={}
367
323
  dashed: true,
368
324
  ghost: true,
369
325
  children: [_jsx(FfPlus, {}), "\u5C06\u5185\u5BB9\u7C98\u8D34\u5230\u6B64\u5904"]
@@ -35,14 +35,10 @@ var CustomColumn = function CustomColumn(props) {
35
35
  var _getHelper = getHelper(store.metaList[groupIndex].list, meta),
36
36
  ExistAboveGroupBy = _getHelper.ExistAboveGroupBy,
37
37
  prevList = _getHelper.prevList;
38
- // TIPS metabase 将自定义列也放进去了 但是他们拼sql的时候又没有实现 这里我们也暂时不加进来
39
- // TIPS metabase 将聚合的参数也弄进来了
40
38
  if (ExistAboveGroupBy) {
41
39
  columns = flatArray(prevList.filter(function (v) {
42
40
  return v.type === TypeEnum.joinData;
43
- })
44
- // @ts-ignore
45
- .map(function (v) {
41
+ }).map(function (v) {
46
42
  return v.columns.map(function (o) {
47
43
  return _objectSpread(_objectSpread({}, o), {}, {
48
44
  name: "".concat(v.table2.alias, " -> ").concat(o.name)
@@ -72,7 +68,7 @@ var CustomColumn = function CustomColumn(props) {
72
68
  return _handleUpdate.apply(this, arguments);
73
69
  }
74
70
  function _handleUpdate() {
75
- _handleUpdate = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(e, i) {
71
+ _handleUpdate = _asyncToGenerator(_regeneratorRuntime.mark(function _callee(e, i) {
76
72
  var node, newMeta, value, columns;
77
73
  return _regeneratorRuntime.wrap(function (_context) {
78
74
  while (1) switch (_context.prev = _context.next) {
@@ -93,10 +89,6 @@ var CustomColumn = function CustomColumn(props) {
93
89
  value: value,
94
90
  onChange: function onChange(data) {
95
91
  newMeta[index].customColumn[i] = data;
96
- // TIPS 修改了名字后面都得删除 暂时不删除 因为过滤器和组合都没用到自定义列
97
- // if(data.name !== value.name){
98
- // newMeta = newMeta.filter((v: MetaListType, _i: number)=> _i<=index)
99
- // }
100
92
  store.setMeta(newMeta, groupIndex, {
101
93
  obj: data,
102
94
  type: ChangeType.customColumn
@@ -214,20 +206,6 @@ var CustomColumn = function CustomColumn(props) {
214
206
  }
215
207
  return data;
216
208
  }
217
- // const getPreColumns = () => {
218
- // let data = [...getColumns(), ...cloneDeep(notExistsColumns || [])];
219
- // // 将source 拍到最前面
220
- // const priorityNames = ['source'];
221
- // const sorted = data.sort((a, b) => {
222
- // const aPriority = priorityNames.includes(a.name);
223
- // const bPriority = priorityNames.includes(b.name);
224
- // if (aPriority && !bPriority) return -1;
225
- // if (!aPriority && bPriority) return 1;
226
- // return 0;
227
- // });
228
- // return sorted;
229
- // };
230
- // 自定义弹窗
231
209
  var showSubQuery = function showSubQuery(e, i) {
232
210
  var newMeta = store.metaList[groupIndex].list.slice();
233
211
  var _value = newMeta[index].customColumn[i] || [];
@@ -239,7 +217,6 @@ var CustomColumn = function CustomColumn(props) {
239
217
  value: store,
240
218
  children: _jsx(CustomEditor, {
241
219
  data: getColumns(),
242
- // data={getPreColumns()}
243
220
  exitData: getColumns(),
244
221
  value: _value,
245
222
  onCancel: function onCancel() {
@@ -260,9 +237,7 @@ var CustomColumn = function CustomColumn(props) {
260
237
  });
261
238
  try {
262
239
  o.close();
263
- } catch (e) {
264
- console.warn(e);
265
- } finally {
240
+ } catch (e) {} finally {
266
241
  o.close();
267
242
  }
268
243
  }
@@ -299,7 +274,6 @@ var CustomColumn = function CustomColumn(props) {
299
274
  e.stopPropagation();
300
275
  closePopup();
301
276
  var newMeta = store.metaList[groupIndex].list.slice();
302
- // TIPS 删除了后面都得删除 暂时不删除 因为过滤器和组合都没用到自定义列
303
277
  newMeta[index].customColumn = customColumn.filter(function (_, i) {
304
278
  return i !== itemId;
305
279
  });