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