@gingkoo/pandora-metabase 1.0.118 → 1.0.120

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 +6 -31
  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 +970 -504
  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 -113
  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 +7 -4
  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 +7 -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 +251 -89
  62. package/lib/cjs/components/modules/summarize/select-index.js +116 -59
  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 +40 -101
  95. package/lib/cjs/utils.d.ts +1 -6
  96. package/lib/cjs/utils.js +126 -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 +5 -31
  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 +969 -504
  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 -113
  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 +7 -4
  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 +7 -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 +253 -91
  159. package/lib/es/components/modules/summarize/select-index.js +116 -59
  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 +40 -100
  193. package/lib/es/utils.d.ts +1 -6
  194. package/lib/es/utils.js +127 -255
  195. package/package.json +1 -1
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports["default"] = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
11
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
10
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
11
13
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
12
14
  var _jsxRuntime = require("react/jsx-runtime");
@@ -30,6 +32,7 @@ var SelectIndex = function SelectIndex(props) {
30
32
  var group = meta.group;
31
33
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
32
34
  var notGroupSelected = !group.length;
35
+ var summarizeWithoutArgument = ['总行数', '累积行数'];
33
36
  function getColumns() {
34
37
  var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
35
38
  ExistAboveGroupBy = _getHelper.ExistAboveGroupBy,
@@ -39,8 +42,9 @@ var SelectIndex = function SelectIndex(props) {
39
42
  if (ExistAboveGroupBy) {
40
43
  var _prevGroupBy$group, _prevGroupBy$by;
41
44
  var _data = {
42
- table: prevGroupBy.alias,
43
- tableId: prevGroupBy.alias,
45
+ name: prevGroupBy.alias,
46
+ id: prevGroupBy.alias,
47
+ name_zh: prevGroupBy.alias,
44
48
  tableUuid: prevGroupBy.tableUuid || (0, _helper2.uuidv4)('table'),
45
49
  alias: prevGroupBy.alias,
46
50
  columns: []
@@ -55,7 +59,6 @@ var SelectIndex = function SelectIndex(props) {
55
59
  fieldUuid: (0, _helper2.uuidv4)('field'),
56
60
  fieldAlias: v.fieldAlias || '',
57
61
  realName: ((_v$sql = v.sql) === null || _v$sql === void 0 || (_v$sql = _v$sql.split(' AS ')) === null || _v$sql === void 0 ? void 0 : _v$sql[1]) || '',
58
- // name_zh: '',
59
62
  database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
60
63
  special_type: '',
61
64
  select: true
@@ -70,7 +73,6 @@ var SelectIndex = function SelectIndex(props) {
70
73
  name_zh: v.name_zh || v.quotes,
71
74
  id: v.id || v.fieldId,
72
75
  realName: ((_v$sql2 = v.sql) === null || _v$sql2 === void 0 || (_v$sql2 = _v$sql2.split(' AS ')) === null || _v$sql2 === void 0 ? void 0 : _v$sql2[1]) || '',
73
- // name_zh: '',
74
76
  database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
75
77
  special_type: '',
76
78
  fieldUuid: (0, _helper2.uuidv4)('field'),
@@ -82,50 +84,53 @@ var SelectIndex = function SelectIndex(props) {
82
84
  data = [_data];
83
85
  var joinData = prevList.filter(function (v) {
84
86
  return v.type === _enum.TypeEnum.joinData;
85
- })
86
- // @ts-ignore
87
- .filter(function (v) {
87
+ }).filter(function (v) {
88
88
  return v && v.table2.name;
89
89
  });
90
90
  if (joinData.length) {
91
- data = data.concat(
92
- // @ts-ignore
93
- joinData.map(function (v) {
91
+ data = data.concat(joinData.map(function (v) {
94
92
  return {
93
+ name: v.table2.name,
94
+ id: v.table2.id,
95
+ name_zh: v.table2.name_zh || v.table2.name,
95
96
  alias: v.table2.alias,
96
- table: v.table2.name,
97
97
  tableUuid: v.table2.tableUuid,
98
- tableId: v.table2.id,
99
98
  columns: v.columns
100
99
  };
101
100
  }));
102
101
  }
103
102
  } else {
104
- // @ts-ignore
105
103
  data = store.metaList[groupIndex].list.slice(0, index).map(function (v) {
106
104
  if (v.type === _enum.TypeEnum.data) {
107
105
  return {
106
+ name: v.table.name,
107
+ id: v.table.id,
108
+ name_zh: v.table.name_zh || v.table.name,
108
109
  alias: v.table.alias,
109
- table: v.table.name,
110
110
  tableUuid: v.table.tableUuid,
111
- tableId: v.table.id,
112
111
  columns: v.columns
113
112
  };
114
113
  } else if (v.type === _enum.TypeEnum.joinData) {
115
114
  return {
115
+ name: v.table2.name,
116
+ id: v.table2.id,
117
+ name_zh: v.table2.name_zh || v.table2.name,
116
118
  alias: v.table2.alias,
117
- table: v.table2.name,
118
119
  tableUuid: v.table2.tableUuid,
119
- tableId: v.table2.id,
120
120
  columns: v.columns
121
121
  };
122
122
  } else {
123
123
  return {
124
- table: null
124
+ name: '',
125
+ id: '',
126
+ name_zh: '',
127
+ alias: '',
128
+ tableUuid: '',
129
+ columns: []
125
130
  };
126
131
  }
127
132
  }).filter(function (v) {
128
- return v.table;
133
+ return Boolean(v.name);
129
134
  });
130
135
  }
131
136
  return data;
@@ -134,7 +139,7 @@ var SelectIndex = function SelectIndex(props) {
134
139
  var newMeta = store.metaList[groupIndex].list.slice();
135
140
  var data = getColumns();
136
141
  var value = group[i];
137
- store.setPopup({
142
+ store.setPopup2({
138
143
  visible: true,
139
144
  node: e.currentTarget,
140
145
  content: (0, _jsxRuntime.jsx)(_dialog.SelectSummarize, {
@@ -142,23 +147,17 @@ var SelectIndex = function SelectIndex(props) {
142
147
  value: value,
143
148
  ignoreGroupByType: store.ignoreGroupByType,
144
149
  onChange: function onChange(data) {
145
- //@ts-ignore
146
- newMeta[index].group.splice(i, 1, data);
147
- //@ts-ignore
150
+ newMeta[index].group.splice(i, 1, normalizeGroupRecord(data));
148
151
  newMeta[index].group = newMeta[index].group.map(function (v) {
149
152
  var _summarizeToSql = (0, _helper.summarizeToSql)(newMeta[index].group, v),
150
153
  sql = _summarizeToSql.sql,
151
154
  fieldAlias = _summarizeToSql.fieldAlias;
152
155
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
153
156
  name: v.name || v.quotes,
154
- //@ts-ignore
155
157
  sql: sql,
156
158
  fieldAlias: fieldAlias
157
159
  });
158
160
  });
159
- // if (value.quotes !== data.quotes) {
160
- // newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);
161
- // }
162
161
  store.setMeta(newMeta, groupIndex, {
163
162
  obj: newMeta[index].group,
164
163
  type: _types.ChangeType.group
@@ -186,11 +185,9 @@ var SelectIndex = function SelectIndex(props) {
186
185
  quotes: '',
187
186
  datasourceId: '',
188
187
  datasourceName: '',
189
- // column: '',
190
- // column_id: '',
191
188
  summarizeType: _types.MetaSummarize_Enum.GROUP
192
189
  };
193
- store.setPopup({
190
+ store.setPopup2({
194
191
  visible: true,
195
192
  node: e.currentTarget,
196
193
  content: (0, _jsxRuntime.jsx)(_dialog.SelectSummarize, {
@@ -198,9 +195,7 @@ var SelectIndex = function SelectIndex(props) {
198
195
  value: value,
199
196
  ignoreGroupByType: store.ignoreGroupByType,
200
197
  onChange: function onChange(data) {
201
- // @ts-ignore
202
- newMeta[index].group.push(data);
203
- // @ts-ignore
198
+ newMeta[index].group.push(normalizeGroupRecord(data));
204
199
  newMeta[index].group = newMeta[index].group.map(function (v) {
205
200
  var _summarizeToSql2 = (0, _helper.summarizeToSql)(newMeta[index].group, v),
206
201
  sql = _summarizeToSql2.sql,
@@ -226,15 +221,13 @@ var SelectIndex = function SelectIndex(props) {
226
221
  e.stopPropagation();
227
222
  closePopup();
228
223
  var newMeta = store.metaList[groupIndex].list.slice();
229
- // @ts-ignore
230
224
  newMeta[index].group = group.filter(function (_, i) {
231
225
  return i !== itemId;
232
226
  });
233
- // newMeta = newMeta.filter((_: MetaListType, _i: number) => _i <= index);
234
227
  store.setMeta(newMeta, groupIndex);
235
228
  }
236
229
  function closePopup() {
237
- store.setPopup({
230
+ store.setPopup2({
238
231
  visible: false
239
232
  });
240
233
  }
@@ -242,7 +235,6 @@ var SelectIndex = function SelectIndex(props) {
242
235
  var fieldAlias = val || '';
243
236
  _pandora.Modal.confirm({
244
237
  title: (0, _locale.__)('SqlQueryBuilder.alias'),
245
- // 设置别名
246
238
  content: (0, _jsxRuntime.jsx)(_pandora.Input, {
247
239
  defaultValue: fieldAlias,
248
240
  onChange: function onChange(val) {
@@ -251,7 +243,7 @@ var SelectIndex = function SelectIndex(props) {
251
243
  }),
252
244
  icon: false,
253
245
  onOk: function () {
254
- var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
246
+ var _onOk = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
255
247
  var newMeta;
256
248
  return _regenerator["default"].wrap(function (_context) {
257
249
  while (1) switch (_context.prev = _context.next) {
@@ -263,9 +255,9 @@ var SelectIndex = function SelectIndex(props) {
263
255
  _pandora.Toast.warning((0, _locale.__)('SqlQueryBuilder.aliasForRules'));
264
256
  return _context.abrupt("return", false);
265
257
  case 1:
266
- newMeta = store.metaList[groupIndex].list.slice(); // @ts-ignore
258
+ newMeta = store.metaList[groupIndex].list.slice();
267
259
  newMeta[index].group[i].fieldAlias = fieldAlias;
268
- newMeta[index].group[i].sql = newMeta[index].group[i].sql.split('AS ')[0] + "AS ".concat(fieldAlias); //修改sql
260
+ newMeta[index].group[i].sql = newMeta[index].group[i].sql.split('AS ')[0] + "AS ".concat(fieldAlias);
269
261
  newMeta = (0, _utils.changeFieldAlias)(newMeta, newMeta[index].group[i]);
270
262
  store.setMeta(newMeta, groupIndex, {
271
263
  obj: newMeta[index].group,
@@ -288,15 +280,11 @@ var SelectIndex = function SelectIndex(props) {
288
280
  var _getColumns = function _getColumns() {
289
281
  return getColumns().map(function (v) {
290
282
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
291
- name: v.table,
292
- id: v.tableId,
293
- name_zh: '',
283
+ name_zh: v.name_zh || '',
294
284
  tableUuid: v.tableUuid,
295
285
  alias: v.alias,
296
- // 线上的都为空,默认会标红。 等统一格式后可隐藏
297
286
  datasourceName: '',
298
- // 数据源名
299
- datasourceId: '' // 数据源id
287
+ datasourceId: ''
300
288
  });
301
289
  });
302
290
  };
@@ -304,36 +292,105 @@ var SelectIndex = function SelectIndex(props) {
304
292
  var _v = (0, _cloneDeep["default"])(v);
305
293
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _v), {}, {
306
294
  fieldName: v.name,
307
- // 字段名
308
295
  fieldNameZh: v.name_zh,
309
- // 字段中文名
310
296
  fieldAlias: v.fieldAlias,
311
- // 别名
312
297
  fieldUuid: v.fieldUuid,
313
- // uuid
314
298
  fieldId: v.fieldId,
315
- // 字段id
316
299
  tableName: v.table,
317
- // 表名
318
300
  tableNameZh: '',
319
301
  tableId: v.tableId,
320
- // 表名
321
302
  tableAlias: v.alias,
322
- // 别名
323
303
  tableUuid: v.tableUuid,
324
- // 表唯一标识
325
- // 线上的都为空,默认会标红。 等统一格式后可隐藏
326
304
  datasourceName: '',
327
- // 数据源名
328
305
  datasourceId: '',
329
- // 数据源id
330
306
  type: _types.AtomsTypeEnum.FIELD
331
307
  });
332
308
  };
309
+ var isFormulaMetric = function isFormulaMetric(record) {
310
+ return !!record.condition && !summarizeWithoutArgument.includes(record.condition);
311
+ };
312
+ var _getFirstField = function getFirstField() {
313
+ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
314
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(list),
315
+ _step;
316
+ try {
317
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
318
+ var item = _step.value;
319
+ if (!item) continue;
320
+ if (item.type === _types.AtomsTypeEnum.FIELD) return item;
321
+ if (item.type === _types.AtomsTypeEnum.EXPRESSION) {
322
+ var found = _getFirstField([].concat((0, _toConsumableArray2["default"])(item.lhs || []), (0, _toConsumableArray2["default"])(item.rhs || [])));
323
+ if (found) return found;
324
+ }
325
+ if (item.type === _types.AtomsTypeEnum.FORMULA) {
326
+ var _found = (item.args || []).map(function (arg) {
327
+ return _getFirstField((arg === null || arg === void 0 ? void 0 : arg.list) || []);
328
+ }).find(Boolean);
329
+ if (_found) return _found;
330
+ }
331
+ if (item.type === _types.AtomsTypeEnum.AND_OR) {
332
+ var _found2 = _getFirstField(item.list || []);
333
+ if (_found2) return _found2;
334
+ }
335
+ if (item.type === _types.AtomsTypeEnum.CASE_WHEN) {
336
+ var _found3 = _getFirstField(item.caseValue || []) || (item.branches || []).map(function (branch) {
337
+ return _getFirstField([].concat((0, _toConsumableArray2["default"])(branch.when || []), (0, _toConsumableArray2["default"])(branch.then || [])));
338
+ }).find(Boolean) || _getFirstField(item.elseValue || []);
339
+ if (_found3) return _found3;
340
+ }
341
+ if (item.type === _types.AtomsTypeEnum.EXISTS || item.type === _types.AtomsTypeEnum.NOT_EXISTS) {
342
+ var _found4 = _getFirstField(item.notExists || []);
343
+ if (_found4) return _found4;
344
+ }
345
+ if (item.type === _types.AtomsTypeEnum.COLLECTION) {
346
+ var _found5 = _getFirstField(item.list || []);
347
+ if (_found5) return _found5;
348
+ }
349
+ }
350
+ } catch (err) {
351
+ _iterator.e(err);
352
+ } finally {
353
+ _iterator.f();
354
+ }
355
+ return null;
356
+ };
357
+ var getAtomsValue = function getAtomsValue(record) {
358
+ var _record$atoms;
359
+ if (!isFormulaMetric(record)) return [];
360
+ if ((_record$atoms = record.atoms) !== null && _record$atoms !== void 0 && _record$atoms.length) return record.atoms;
361
+ var field = getField(record);
362
+ return field.fieldName ? [field] : [];
363
+ };
364
+ var normalizeGroupRecord = function normalizeGroupRecord(record) {
365
+ var atoms = getAtomsValue(record);
366
+ var firstField = _getFirstField(atoms);
367
+ var nextRecord = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, record), {}, {
368
+ atoms: atoms.length ? atoms : undefined
369
+ });
370
+ if (firstField) {
371
+ nextRecord.table = firstField.tableName || nextRecord.table;
372
+ nextRecord.tableId = firstField.tableId || nextRecord.tableId;
373
+ nextRecord.tableUuid = firstField.tableUuid || nextRecord.tableUuid;
374
+ nextRecord.alias = firstField.tableAlias || nextRecord.alias;
375
+ nextRecord.name = firstField.fieldName || nextRecord.name;
376
+ nextRecord.id = firstField.fieldId || nextRecord.id;
377
+ nextRecord.realName = firstField.fieldName || nextRecord.realName;
378
+ nextRecord.fieldUuid = firstField.fieldUuid || nextRecord.fieldUuid;
379
+ nextRecord.datasourceId = firstField.datasourceId || nextRecord.datasourceId;
380
+ nextRecord.datasourceName = firstField.datasourceName || nextRecord.datasourceName;
381
+ nextRecord.database_type = firstField.database_type || nextRecord.database_type;
382
+ if (!nextRecord.quotes || nextRecord.quotes === nextRecord.condition) {
383
+ nextRecord.quotes = "".concat(nextRecord.condition, " ").concat(firstField.fieldAlias || firstField.fieldName || '').trim();
384
+ }
385
+ }
386
+ return nextRecord;
387
+ };
333
388
  return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
334
389
  children: [meta.group.map(function (v, i) {
390
+ var atomsValue = getAtomsValue(v);
391
+ var showAtoms = isFormulaMetric(v);
335
392
  return (0, _jsxRuntime.jsx)(_itemName["default"], {
336
- isError: (0, _utils.isError)(getField(v), _getColumns()),
393
+ isError: (0, _utils.isError)(showAtoms ? atomsValue : getField(v), _getColumns()),
337
394
  children: (0, _jsxRuntime.jsxs)("div", {
338
395
  className: "Sqb-TableName green-name",
339
396
  onClick: function onClick(e) {
@@ -19,6 +19,7 @@ var _types = require("../../store/types");
19
19
  var _pandora = require("@gingkoo/pandora");
20
20
  var _index = _interopRequireDefault(require("../../index"));
21
21
  var _helper = require("../../utils/helper");
22
+ var _helperDom = require("../../utils/helper-dom");
22
23
  var _utils = require("../../utils");
23
24
  var _pandoraIcons = require("@gingkoo/pandora-icons");
24
25
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
@@ -42,8 +43,8 @@ var TableData = function TableData(props) {
42
43
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
43
44
  isDel = _useState2[0],
44
45
  setIsDel = _useState2[1];
45
- var tableIsDel = /*#__PURE__*/function () {
46
- var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
46
+ var tableIsDel = function () {
47
+ var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
47
48
  var _meta$table, _meta$table2;
48
49
  var tableName, tables, names;
49
50
  return _regenerator["default"].wrap(function (_context) {
@@ -103,14 +104,12 @@ var TableData = function TableData(props) {
103
104
  });
104
105
  store.fetchColumns(data, data.datasourceId, [], function (columns) {
105
106
  newMetaList.columns = columns;
106
- // ① 主表动了 其他都得重新选
107
107
  var newMetas = store.metaList[groupIndex].list.slice();
108
108
  newMetas[0] = newMetaList;
109
109
  store.setMeta(newMetas, groupIndex, {
110
110
  obj: data,
111
111
  type: _types.ChangeType.datasource
112
112
  });
113
- // store.setMeta([newMetaList], groupIndex);
114
113
  });
115
114
  }
116
115
  store.setPopup({
@@ -130,9 +129,7 @@ var TableData = function TableData(props) {
130
129
  groupIndex: groupIndex,
131
130
  data: columns,
132
131
  onChange: function onChange(data, newMetaList) {
133
- // 当前值已改变。必须以传入的数组为准,改变别名
134
132
  var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
135
- // @ts-ignore
136
133
  _newMetaList[0].columns = data;
137
134
  if (!newMetaList) {
138
135
  store.setMeta(_newMetaList, groupIndex, {
@@ -148,7 +145,6 @@ var TableData = function TableData(props) {
148
145
  var alias = val || '';
149
146
  _pandora.Modal.confirm({
150
147
  title: (0, _locale.__)('SqlQueryBuilder.alias'),
151
- // 设置别名
152
148
  content: (0, _jsxRuntime.jsx)(_pandora.Input, {
153
149
  defaultValue: alias,
154
150
  onChange: function onChange(val) {
@@ -156,7 +152,7 @@ var TableData = function TableData(props) {
156
152
  }
157
153
  }),
158
154
  onOk: function () {
159
- var _onOk = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
155
+ var _onOk = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2() {
160
156
  var newMetaList;
161
157
  return _regenerator["default"].wrap(function (_context2) {
162
158
  while (1) switch (_context2.prev = _context2.next) {
@@ -168,7 +164,7 @@ var TableData = function TableData(props) {
168
164
  _pandora.Toast.warning((0, _locale.__)('SqlQueryBuilder.aliasForRules'));
169
165
  return _context2.abrupt("return", false);
170
166
  case 1:
171
- newMetaList = store.metaList[groupIndex].list.slice(); // @ts-ignore
167
+ newMetaList = store.metaList[groupIndex].list.slice();
172
168
  newMetaList[0].table.alias = alias;
173
169
  newMetaList = (0, _utils.changeTableAlias)(newMetaList, newMetaList[0].table);
174
170
  store.setMeta(newMetaList, groupIndex, {
@@ -189,7 +185,6 @@ var TableData = function TableData(props) {
189
185
  onCancel: function onCancel() {}
190
186
  });
191
187
  };
192
- // 子查询弹窗
193
188
  var showSubQuery = function showSubQuery() {
194
189
  var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
195
190
  var _store$preProps2 = store.preProps,
@@ -198,23 +193,24 @@ var TableData = function TableData(props) {
198
193
  isExit = _store$preProps2.isExit,
199
194
  toolbar = _store$preProps2.toolbar,
200
195
  other = (0, _objectWithoutProperties2["default"])(_store$preProps2, _excluded);
196
+ var childModalZIndex = (0, _helperDom.getTopLayerZIndex)() + 1;
201
197
  var newMetaList = store.metaList[groupIndex].list.slice()[0];
202
198
  var newMeta = store.metaList[groupIndex].list.slice();
203
199
  var oldList = (0, _cloneDeep["default"])(newMetaList.subquery);
204
200
  var _toolbar = subToolbar || toolbar;
205
- // _toolbar = _toolbar.filter((v: string) => v !== 'group'); // 子查询不需要分组
206
201
  var o = _pandora.Modal2.openModal({
202
+ zIndex: childModalZIndex,
207
203
  title: (0, _locale.__)('SqlQueryBuilder.subquery'),
208
204
  transparentMask: true,
209
205
  content: (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
210
206
  children: (0, _jsxRuntime.jsx)(_index["default"], (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, other), {}, {
207
+ popupZIndex: childModalZIndex + 1,
211
208
  showSubquery: store._showSubquery,
212
209
  toolbar: _toolbar,
213
210
  btnText: (0, _locale.__)('SqlQueryBuilder.confirm'),
214
211
  value: (0, _cloneDeep["default"])(val),
215
212
  onOk: function onOk(newList) {
216
213
  try {
217
- // 子查询未改变不做操作
218
214
  if ((0, _isEqual["default"])(newList, oldList)) {
219
215
  o.close();
220
216
  return;
@@ -232,18 +228,14 @@ var TableData = function TableData(props) {
232
228
  select: false
233
229
  });
234
230
  });
235
- // newMetaList.columns = newColumns;
236
231
  newMetaList.columns = newColumns.map(function (newCol) {
237
- // 查找旧列中是否有相同 name 的列
238
232
  var existingCol = newMetaList.columns.find(function (oldCol) {
239
233
  return oldCol.name === newCol.name;
240
234
  });
241
235
  var _column = existingCol ? existingCol : newCol;
242
236
  _column.select = store.isSelectFields || _column.select;
243
- // 如果存在,返回旧列;否则返回新列
244
237
  return _column;
245
238
  });
246
- // (newMeta[index] as MetaJoin).expressions = [];
247
239
  var newMetas = store.metaList[groupIndex].list.slice();
248
240
  newMetas[0] = newMetaList;
249
241
  store.setMeta(newMetas, groupIndex, {
@@ -252,9 +244,7 @@ var TableData = function TableData(props) {
252
244
  });
253
245
  tableIsDel();
254
246
  o.close();
255
- } catch (e) {
256
- console.warn(e);
257
- } finally {
247
+ } catch (e) {} finally {
258
248
  o.close();
259
249
  }
260
250
  }
@@ -263,25 +253,18 @@ var TableData = function TableData(props) {
263
253
  onClose: function onClose() {}
264
254
  });
265
255
  };
266
- // 切换子查询
267
256
  var switchSubQuery = function switchSubQuery() {
268
257
  var newMetaList = store.metaList[groupIndex].list.slice();
269
258
  newMetaList[0].isSubquery = !newMetaList[0].isSubquery;
270
- //重置表数据
271
259
  newMetaList[0].subquery = [];
272
260
  newMetaList[0].table = {
273
261
  name: '',
274
- // 表名
275
262
  name_zh: '',
276
- // 表名
277
263
  tableUuid: '',
278
264
  id: '',
279
- // 表名
280
265
  alias: '',
281
- // 表别名
282
266
  datasourceName: '',
283
- // 数据源名
284
- datasourceId: '' // 数据源id
267
+ datasourceId: ''
285
268
  };
286
269
  store.setMeta(newMetaList, groupIndex);
287
270
  };
@@ -392,43 +375,7 @@ var TableData = function TableData(props) {
392
375
  })
393
376
  }) : null;
394
377
  }()
395
- })
396
- // <Tooltip
397
- // title={__(
398
- // tableIsError()
399
- // ? isDel
400
- // ? 'metabase.verify'
401
- // : 'SqlQueryBuilder.repeatAlias'
402
- // : 'SqlQueryBuilder.alias',
403
- // )}
404
- // >
405
- // <Button
406
- // danger={tableIsError()}
407
- // className={cx(':Sqb-TableName-as', {
408
- // isError: tableIsError(),
409
- // })}
410
- // shape='circle'
411
- // style={
412
- // isDel
413
- // ? {
414
- // fontSize: 18,
415
- // backgroundColor: '#fff',
416
- // width: 'auto',
417
- // height: 'auto',
418
- // }
419
- // : {}
420
- // }
421
- // iconOnly
422
- // primary={!isDel}
423
- // icon={isDel ? <ExclamationCircleFill /> : 'As'}
424
- // size='small'
425
- // onClick={(e) => {
426
- // e.stopPropagation();
427
- // onChangeTableAlias(meta.table?.alias || '');
428
- // }}
429
- // ></Button>
430
- // </Tooltip>
431
- , selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table8 = meta.table) !== null && _meta$table8 !== void 0 && _meta$table8.alias && store.tableEnableAlias ? "as ".concat((_meta$table9 = meta.table) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.alias) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
378
+ }), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table8 = meta.table) !== null && _meta$table8 !== void 0 && _meta$table8.alias && store.tableEnableAlias ? "as ".concat((_meta$table9 = meta.table) === null || _meta$table9 === void 0 ? void 0 : _meta$table9.alias) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
432
379
  }), store.showSubquery && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
433
380
  title: (0, _locale.__)('SqlQueryBuilder.switchSubQuery'),
434
381
  children: (0, _jsxRuntime.jsx)(_pandora.Button, {