@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
@@ -2,7 +2,6 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
2
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
4
  var _excluded = ["children"];
5
- // @ts-nocheck
6
5
  var procEnum = {
7
6
  mysql: 'mysql',
8
7
  oracle: 'oracle',
@@ -19,28 +18,17 @@ var MetabaseTypeEnum = {
19
18
  union: 'union',
20
19
  permissionTable: 'permissionTable'
21
20
  };
22
- // 数据基础类型
23
21
  var BlockTypeEnum = {
24
22
  joinDefault: 'joinDefault',
25
- // 简单的表达式
26
23
  expression: 'expression',
27
- // 表达式
28
24
  operator: 'operator',
29
- // 操作符
30
25
  field: 'field',
31
- // 字段
32
26
  inputNumber: 'inputNumber',
33
- // 数字输入框
34
27
  inputString: 'inputString',
35
- // 字符串输入框
36
28
  constant: 'constant',
37
- // 常量
38
29
  inputStringList: 'inputStringList',
39
- // 多个字符串输入框
40
30
  inputNumberList: 'inputNumberList',
41
- // 多个数字输入框
42
31
  unknown: 'unknown',
43
- // 未知
44
32
  notExists: 'notExists',
45
33
  exists: 'exists',
46
34
  FORMULA: 'FORMULA',
@@ -77,11 +65,11 @@ var _recursionArr2 = function _recursionArr(arr) {
77
65
  }
78
66
  return obj;
79
67
  };
80
- var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
68
+ var _handleBaseType2Sql7 = function handleBaseType2Sql(list) {
81
69
  var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
82
70
  var sql = '';
83
71
  var constants = [];
84
- var sql_items = []; // 这个是 给 list 单一类型用的,字符串输入框 类型也不加''
72
+ var sql_items = [];
85
73
  if (!Array.isArray(list)) {
86
74
  return {
87
75
  sql: sql,
@@ -123,19 +111,15 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
123
111
  constants.push(item.val);
124
112
  }
125
113
  if (type === BlockTypeEnum.inputStringList) {
126
- // 这个如果存在 list 数组中,那么 list 数组种 只能有他,因为他太特殊了,现在就表达式在用
127
114
  if (Array.isArray(item.val) && item.val.length) {
128
115
  item.val.forEach(function (v) {
129
- // 这里虽然是字符串 但是不加 ''了 因为他太特殊了 不通用
130
116
  sql_items.push("".concat(v));
131
117
  });
132
118
  }
133
119
  }
134
120
  if (type === BlockTypeEnum.inputNumberList) {
135
- // 这个如果存在 list 数组中,那么 list 数组种 只能有他,因为他太特殊了,现在就表达式在用
136
121
  if (Array.isArray(item.val) && item.val.length) {
137
122
  item.val.forEach(function (v) {
138
- // 这里虽然是字符串 但是不加 ''了 因为他太特殊了 不通用
139
123
  sql_items.push("".concat(v));
140
124
  });
141
125
  }
@@ -143,21 +127,19 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
143
127
  if (type === BlockTypeEnum.joinDefault) {
144
128
  var lhs = item.lhs,
145
129
  rhs = item.rhs;
146
- // 他很特殊 左边里面只有一种类型 右边面只有一种类型
147
- var _handleBaseType2Sql2 = _handleBaseType2Sql8(lhs, db),
148
- leftSql = _handleBaseType2Sql2.sql,
149
- leftSqlItems = _handleBaseType2Sql2.sql_items,
150
- joinDefaultLeftConstants = _handleBaseType2Sql2.constants;
151
- var _handleBaseType2Sql3 = _handleBaseType2Sql8(rhs, db),
152
- rightSql = _handleBaseType2Sql3.sql,
153
- rightSqlItems = _handleBaseType2Sql3.sql_items,
154
- joinDefaultRightConstants = _handleBaseType2Sql3.constants;
130
+ var _handleBaseType2Sql = _handleBaseType2Sql7(lhs, db),
131
+ leftSql = _handleBaseType2Sql.sql,
132
+ leftSqlItems = _handleBaseType2Sql.sql_items,
133
+ joinDefaultLeftConstants = _handleBaseType2Sql.constants;
134
+ var _handleBaseType2Sql2 = _handleBaseType2Sql7(rhs, db),
135
+ rightSql = _handleBaseType2Sql2.sql,
136
+ rightSqlItems = _handleBaseType2Sql2.sql_items,
137
+ joinDefaultRightConstants = _handleBaseType2Sql2.constants;
155
138
  constants.push.apply(constants, _toConsumableArray(joinDefaultLeftConstants));
156
139
  constants.push.apply(constants, _toConsumableArray(joinDefaultRightConstants));
157
140
  var left_condition = leftSql;
158
141
  var right_condition = rightSql;
159
142
  if (leftSqlItems.length > 1) {
160
- // 多个肯定是字段
161
143
  if (db === procEnum.mysql) {
162
144
  left_condition = "CONCAT(".concat(leftSqlItems.join(','), ")");
163
145
  }
@@ -169,7 +151,6 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
169
151
  }
170
152
  }
171
153
  if (rightSqlItems.length > 1) {
172
- // 多个肯定是字段
173
154
  if (db === procEnum.mysql) {
174
155
  right_condition = "CONCAT(".concat(rightSqlItems.join(','), ")");
175
156
  }
@@ -188,20 +169,19 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
188
169
  condition = item.condition,
189
170
  database_type = item.database_type,
190
171
  formula = item.formula;
191
- var _handleBaseType2Sql4 = _handleBaseType2Sql8(_lhs, db),
192
- _leftSql = _handleBaseType2Sql4.sql,
193
- _leftSqlItems = _handleBaseType2Sql4.sql_items,
194
- _joinDefaultLeftConstants = _handleBaseType2Sql4.constants;
195
- var _handleBaseType2Sql5 = _handleBaseType2Sql8(_rhs, db),
196
- _rightSql = _handleBaseType2Sql5.sql,
197
- _rightSqlItems = _handleBaseType2Sql5.sql_items,
198
- _joinDefaultRightConstants = _handleBaseType2Sql5.constants;
172
+ var _handleBaseType2Sql3 = _handleBaseType2Sql7(_lhs, db),
173
+ _leftSql = _handleBaseType2Sql3.sql,
174
+ _leftSqlItems = _handleBaseType2Sql3.sql_items,
175
+ _joinDefaultLeftConstants = _handleBaseType2Sql3.constants;
176
+ var _handleBaseType2Sql4 = _handleBaseType2Sql7(_rhs, db),
177
+ _rightSql = _handleBaseType2Sql4.sql,
178
+ _rightSqlItems = _handleBaseType2Sql4.sql_items,
179
+ _joinDefaultRightConstants = _handleBaseType2Sql4.constants;
199
180
  constants.push.apply(constants, _toConsumableArray(_joinDefaultLeftConstants));
200
181
  constants.push.apply(constants, _toConsumableArray(_joinDefaultRightConstants));
201
182
  var _left_condition = _leftSql;
202
183
  var _right_condition = '';
203
184
  if (_leftSqlItems.length > 1) {
204
- // 多个肯定是字段
205
185
  if (db === procEnum.mysql) {
206
186
  _left_condition = "CONCAT(".concat(_leftSqlItems.join(','), ")");
207
187
  }
@@ -213,14 +193,12 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
213
193
  }
214
194
  }
215
195
  if (formula && formula.type && formula.params) {
216
- // 目前只有一个 SUBSTR, 也不想再加函数了,函数不在这里加
217
196
  var formulaType = formula.type;
218
197
  if (db === procEnum.sqlserver && formulaType === 'SUBSTR') {
219
198
  formulaType = 'SUBSTRING';
220
199
  }
221
200
  _left_condition = "".concat(formulaType, "(").concat(formula.params.map(function (it, i) {
222
201
  if (!i) {
223
- // 字段
224
202
  return _left_condition;
225
203
  } else {
226
204
  return it;
@@ -241,7 +219,6 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
241
219
  if (group === SQL_GROUP_TYPE.STRING) {
242
220
  var condition_1 = (_rightSqlItems === null || _rightSqlItems === void 0 ? void 0 : _rightSqlItems[0]) || '';
243
221
  switch (condition) {
244
- // string
245
222
  case '等于':
246
223
  _right_condition = "= ".concat(_rightSql);
247
224
  break;
@@ -249,7 +226,6 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
249
226
  _right_condition = "!= ".concat(_rightSql);
250
227
  break;
251
228
  case '包含':
252
- // 去掉引号
253
229
  _right_condition = "LIKE '%".concat(condition_1, "%'");
254
230
  break;
255
231
  case '不包含':
@@ -277,7 +253,6 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
277
253
  condition_1 = (_condition_ = condition_1) === null || _condition_ === void 0 || (_condition_ = _condition_.split(',')) === null || _condition_ === void 0 || (_condition_ = _condition_.map(function (v) {
278
254
  var _v;
279
255
  v = (_v = v) === null || _v === void 0 ? void 0 : _v.trim();
280
- // 如果已经加了引号
281
256
  if (v && (/^'.*'$/.test(v) || /^".*"$/.test(v))) {
282
257
  return "".concat(v);
283
258
  } else {
@@ -317,7 +292,6 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
317
292
  var _condition_3 = (_rightSqlItems === null || _rightSqlItems === void 0 ? void 0 : _rightSqlItems[0]) || '';
318
293
  var condition_2 = (_rightSqlItems === null || _rightSqlItems === void 0 ? void 0 : _rightSqlItems[1]) || '';
319
294
  switch (condition) {
320
- // number
321
295
  case '等于':
322
296
  _right_condition = "= ".concat(_condition_3);
323
297
  break;
@@ -428,15 +402,12 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
428
402
  var _condition_4 = (_rightSqlItems === null || _rightSqlItems === void 0 ? void 0 : _rightSqlItems[0]) || '';
429
403
  var _condition_5 = (_rightSqlItems === null || _rightSqlItems === void 0 ? void 0 : _rightSqlItems[1]) || '';
430
404
  if (/^[\d- :]+$/.test(_condition_4)) {
431
- // 日期
432
405
  _condition_4 = "'".concat(transformDate(_condition_4), "'");
433
406
  }
434
407
  if (/^[\d- :]+$/.test(_condition_5)) {
435
- // 日期
436
408
  _condition_5 = "'".concat(transformDate(_condition_5), "'");
437
409
  }
438
410
  switch (condition) {
439
- // date
440
411
  case '等于':
441
412
  _right_condition = "= ".concat(_condition_4);
442
413
  break;
@@ -472,16 +443,16 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
472
443
  }
473
444
  }
474
445
  if (type === BlockTypeEnum.FORMULA) {
475
- var _handleBaseType2Sql6 = _handleBaseType2Sql8(item.args, db),
476
- argSql = _handleBaseType2Sql6.sql,
477
- formulaConstants = _handleBaseType2Sql6.constants;
446
+ var _handleBaseType2Sql5 = _handleBaseType2Sql7(item.args, db),
447
+ argSql = _handleBaseType2Sql5.sql,
448
+ formulaConstants = _handleBaseType2Sql5.constants;
478
449
  sql += " ".concat(item.name, "(").concat(argSql, ")");
479
450
  constants.push.apply(constants, _toConsumableArray(formulaConstants));
480
451
  }
481
452
  if (type === BlockTypeEnum.collection) {
482
- var _handleBaseType2Sql7 = _handleBaseType2Sql8(item.list, db),
483
- collectionSql = _handleBaseType2Sql7.sql,
484
- collectionConstants = _handleBaseType2Sql7.constants;
453
+ var _handleBaseType2Sql6 = _handleBaseType2Sql7(item.list, db),
454
+ collectionSql = _handleBaseType2Sql6.sql,
455
+ collectionConstants = _handleBaseType2Sql6.constants;
485
456
  sql += " ".concat(collectionSql);
486
457
  constants.push.apply(constants, _toConsumableArray(collectionConstants));
487
458
  }
@@ -492,6 +463,7 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
492
463
  constants: constants
493
464
  };
494
465
  };
466
+ export { _handleBaseType2Sql7 as handleBaseType2Sql };
495
467
  var _handleJoinData = function _handleJoinData(joinData) {
496
468
  var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
497
469
  var constants = [];
@@ -505,9 +477,9 @@ var _handleJoinData = function _handleJoinData(joinData) {
505
477
  if (isSubquery) {
506
478
  subQuery = subquery;
507
479
  }
508
- var _handleBaseType2Sql9 = _handleBaseType2Sql8(expressions, db),
509
- sql = _handleBaseType2Sql9.sql,
510
- joinConstants = _handleBaseType2Sql9.constants;
480
+ var _handleBaseType2Sql8 = _handleBaseType2Sql7(expressions, db),
481
+ sql = _handleBaseType2Sql8.sql,
482
+ joinConstants = _handleBaseType2Sql8.constants;
511
483
  var joinCondition = "on ".concat(sql);
512
484
  constants = joinConstants;
513
485
  return {
@@ -527,7 +499,6 @@ var _handleJoinData = function _handleJoinData(joinData) {
527
499
  return {
528
500
  field_sql: "".concat(tableAlias ? "".concat(tableAlias, ".").concat(o.name) : o.name, " as ").concat(fieldAlias),
529
501
  read_name: o.name,
530
- // 原字段名
531
502
  name: fieldAlias,
532
503
  name_zh: o.name_zh,
533
504
  id: o.id
@@ -540,7 +511,6 @@ var _handleJoinData = function _handleJoinData(joinData) {
540
511
  constants: constants
541
512
  };
542
513
  };
543
- // 处理数据格式 - (这里才是真正处理成后端需要的格式 前面两步都是准备工作)
544
514
  var _handleNesting = function handleNesting(data) {
545
515
  var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
546
516
  var hasInnerSql = Boolean(data.children);
@@ -562,7 +532,6 @@ var _handleNesting = function handleNesting(data) {
562
532
  obj.datasourceId = tableData.table.datasourceId;
563
533
  obj.datasourceName = tableData.table.datasourceName;
564
534
  if (tableData.isSubquery && Array.isArray(tableData.subquery)) {
565
- // 主表是子查询
566
535
  obj.tableSubQuery = tableData.subquery;
567
536
  }
568
537
  if (!summarize || !summarize.group.length && !summarize.by.length) {
@@ -574,14 +543,10 @@ var _handleNesting = function handleNesting(data) {
574
543
  var fieldAlias = v.fieldAlias || v.name;
575
544
  return {
576
545
  field_sql: "".concat(tableAlias ? "".concat(tableAlias, ".").concat(v.name) : v.name, " as ").concat(fieldAlias),
577
- // 生成 sql 放 select 后面的
578
546
  read_name: v.name,
579
- // 原字段名
580
547
  name: fieldAlias,
581
- // 输出字段名
582
548
  name_zh: v.name_zh,
583
- // 字段中文名
584
- id: v.id // 字段原 DATA_ID
549
+ id: v.id
585
550
  };
586
551
  });
587
552
  }
@@ -597,9 +562,9 @@ var _handleNesting = function handleNesting(data) {
597
562
  var customColumnsConstants = [];
598
563
  var handleCustomColumn = function handleCustomColumn(data) {
599
564
  return data.map(function (it) {
600
- var _handleBaseType2Sql0 = _handleBaseType2Sql8(it.formulaList, db),
601
- field_sql = _handleBaseType2Sql0.sql,
602
- constants = _handleBaseType2Sql0.constants;
565
+ var _handleBaseType2Sql9 = _handleBaseType2Sql7(it.formulaList, db),
566
+ field_sql = _handleBaseType2Sql9.sql,
567
+ constants = _handleBaseType2Sql9.constants;
603
568
  customColumnsConstants.push.apply(customColumnsConstants, _toConsumableArray(constants));
604
569
  return {
605
570
  field_sql: "".concat(field_sql, " as ").concat(it.name),
@@ -614,9 +579,9 @@ var _handleNesting = function handleNesting(data) {
614
579
  obj.customColumnsConstants = customColumnsConstants;
615
580
  }
616
581
  if (filterData && filterData.filter.length) {
617
- var _handleBaseType2Sql1 = _handleBaseType2Sql8(filterData.filter, db),
618
- sql = _handleBaseType2Sql1.sql,
619
- constants = _handleBaseType2Sql1.constants;
582
+ var _handleBaseType2Sql0 = _handleBaseType2Sql7(filterData.filter, db),
583
+ sql = _handleBaseType2Sql0.sql,
584
+ constants = _handleBaseType2Sql0.constants;
620
585
  obj.filters = 'WHERE ' + sql;
621
586
  obj.filtersConstants = constants;
622
587
  }
@@ -631,10 +596,8 @@ var _handleNesting = function handleNesting(data) {
631
596
  queryColumns.push({
632
597
  field_sql: "".concat(v.sql, " as ").concat(v.fieldAlias),
633
598
  read_name: '',
634
- // 原字段名
635
599
  name: v.fieldAlias,
636
600
  name_zh: v.fieldAlias,
637
- // v.quotes,
638
601
  id: ''
639
602
  });
640
603
  return v.sql;
@@ -642,16 +605,16 @@ var _handleNesting = function handleNesting(data) {
642
605
  }
643
606
  if (summarize.by.length) {
644
607
  obj.groupBy.groupColumns = summarize.by.map(function (v) {
608
+ var _v$atoms;
609
+ var fieldSql = (_v$atoms = v.atoms) !== null && _v$atoms !== void 0 && _v$atoms.length ? _handleBaseType2Sql7(v.atoms, db).sql.trim() || v.sql : v.sql || "".concat(v.alias, ".").concat(v.realName || v.name);
645
610
  queryColumns.push({
646
- field_sql: "".concat(v.sql, " as ").concat(v.fieldAlias),
611
+ field_sql: "".concat(fieldSql, " as ").concat(v.fieldAlias),
647
612
  read_name: '',
648
- // 原字段名
649
613
  name: v.fieldAlias,
650
614
  name_zh: v.fieldAlias,
651
- // v.name_zh,
652
615
  id: v.id
653
616
  });
654
- return "".concat(v.alias, ".").concat(v.realName || v.name);
617
+ return fieldSql;
655
618
  });
656
619
  }
657
620
  obj.queryColumns = queryColumns;
@@ -661,8 +624,8 @@ var _handleNesting = function handleNesting(data) {
661
624
  }
662
625
  if (sortData && sortData.sort.length) {
663
626
  obj.orderInfos = "ORDER BY ".concat(sortData.sort.map(function (v) {
664
- var _handleBaseType2Sql10 = _handleBaseType2Sql8(v.expression, db),
665
- sql = _handleBaseType2Sql10.sql;
627
+ var _handleBaseType2Sql1 = _handleBaseType2Sql7(v.expression, db),
628
+ sql = _handleBaseType2Sql1.sql;
666
629
  return "".concat(sql, " ").concat(v.sort);
667
630
  }).join(', '));
668
631
  }
@@ -671,18 +634,15 @@ var _handleNesting = function handleNesting(data) {
671
634
  }
672
635
  return obj;
673
636
  };
674
- // 反转顺序 - (将原本嵌套的顺序完全反转 最内层变成最外层)别问为什么 问就是接口需要
675
637
  var reverseData = function reverseData(data) {
676
638
  var arr = [];
677
639
  _flatArr2(data, arr);
678
640
  return _recursionArr2(arr.reverse());
679
641
  };
680
- // 分层 - (将原本平铺的格式转成 嵌套的格式)
681
642
  var _layeredData = function layeredData(list) {
682
643
  var res = {};
683
644
  for (var i = 0; i < list.length; i++) {
684
645
  var meta = list[i];
685
- // @ts-ignore
686
646
  if (meta.type === MetabaseTypeEnum.joinData) {
687
647
  if (res[meta.type]) {
688
648
  res[meta.type].push(meta);
@@ -690,15 +650,12 @@ var _layeredData = function layeredData(list) {
690
650
  res[meta.type] = [meta];
691
651
  }
692
652
  } else {
693
- // @ts-ignore
694
653
  res[meta.type] = meta;
695
654
  }
696
655
  if (meta.type === MetabaseTypeEnum.summarize) {
697
656
  var nextMeta = list[i + 1];
698
657
  var nextNextMeta = list[i + 2];
699
658
  var nextNextNextMeta = list[i + 3];
700
- // 将sort 和 rowLimit 归到上一层 (虽然他们两在 summarize 后面)
701
- // 处理完 sort 和 rowLimit 之后 如果数组后面还有元素则进入下一层循环
702
659
  if (nextMeta) {
703
660
  if (nextMeta.type === MetabaseTypeEnum.rowLimit) {
704
661
  res[nextMeta.type] = nextMeta;
@@ -730,7 +687,6 @@ var handleSqlStruct = function handleSqlStruct(list) {
730
687
  var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
731
688
  return _handleNesting(reverseData(_layeredData(list)), db);
732
689
  };
733
- // 处理 union
734
690
  var handleSqlUnion = function handleSqlUnion(metas) {
735
691
  var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
736
692
  var noFields = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
@@ -746,7 +702,6 @@ var handleSqlUnion = function handleSqlUnion(metas) {
746
702
  fields = _sqlStruct2text.fields;
747
703
  var union_fields = [fields];
748
704
  if (unionMetas.length) {
749
- // 用到了 union
750
705
  unionMetas.forEach(function (it) {
751
706
  if (Array.isArray(it.subquery) && it.subquery.length) {
752
707
  var u_data = handleSqlStruct(it.subquery, db);
@@ -764,11 +719,6 @@ var handleSqlUnion = function handleSqlUnion(metas) {
764
719
  union_fields: union_fields
765
720
  };
766
721
  };
767
- /**
768
- * 拼 sql
769
- * @param {meta[]} data
770
- * @param {boolean} indent 0 是第一次进来 非 0 是第N次进来
771
- */
772
722
  var _sqlStruct2text3 = function sqlStruct2text(data) {
773
723
  var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
774
724
  var db = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : procEnum.mysql;
@@ -788,19 +738,14 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
788
738
  groupBy = data.groupBy;
789
739
  sql += "SELECT ";
790
740
  var firstEntry = !indent;
791
- // -------- 处理 fields --------
792
- // 情况一、一层 带聚合 字段是 聚合字段
793
- // 情况二、一层 不带聚合 字段是 主表和关联表的字段
794
- // 情况三、二层 带聚合 第一层 聚合字段 + 关联表字段 第二层 聚合字段 第三层 聚合字段
795
741
  if (noFields) {
796
742
  sql += '1 ';
797
743
  } else {
798
- var flag = false; // 是否加逗号
744
+ var flag = false;
799
745
  if (limit && db === procEnum.sqlserver) {
800
746
  sql += "TOP(".concat(limit, ") ");
801
747
  }
802
748
  if (hasInnerSql) {
803
- // 情况三 innerSqlStruct.queryColumns 是内层 聚合输出的字段,这种字段虽说是内层的,但是其实外层也需要
804
749
  if (innerSqlStruct.queryColumns && innerSqlStruct.queryColumns.length) {
805
750
  sql += innerSqlStruct.queryColumns.map(function (v) {
806
751
  return "".concat(alias, ".").concat(v.name, " as ").concat(v.name);
@@ -809,9 +754,6 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
809
754
  }
810
755
  } else {
811
756
  if (Array.isArray(queryColumns) && queryColumns.length) {
812
- // 情况一 queryColumns 是聚合字段
813
- // 情况二 queryColumns 是主表字段
814
- // 情况三 queryColumns 是聚合字段
815
757
  flag = true;
816
758
  sql += queryColumns.map(function (v) {
817
759
  return v.field_sql;
@@ -819,8 +761,6 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
819
761
  }
820
762
  }
821
763
  if (firstEntry && joinTables && !groupBy) {
822
- // 情况二 joinTables 是关联表字段
823
- // 情况三 joinTables 是关联表字段
824
764
  joinTables.forEach(function (it) {
825
765
  if (Array.isArray(it.queryColumns) && it.queryColumns.length) {
826
766
  if (flag) {
@@ -842,31 +782,26 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
842
782
  }).join(', ') + ' ';
843
783
  }
844
784
  }
845
- // -------- 处理 main table --------
846
785
  sql += 'FROM ';
847
786
  var as = db === procEnum.oracle ? '' : 'AS ';
848
787
  if (hasInnerSql) {
849
788
  sql += "(".concat(_sqlStruct2text3(innerSqlStruct, indent + 1, db).sql, ") ").concat(as).concat(alias, " ");
850
789
  } else {
851
790
  if (tableSubQuery) {
852
- // 子查询
853
791
  sql += "(".concat(handleSqlUnion(tableSubQuery, db).sql, ") ").concat(as).concat(alias, " ");
854
792
  } else {
855
793
  sql += "".concat(tableName, " ").concat(as).concat(alias, " ");
856
794
  }
857
795
  }
858
- // -------- 处理 left join --------
859
796
  if (joinTables) {
860
797
  joinTables.forEach(function (it) {
861
798
  if (it.subQuery) {
862
- // 子查询
863
799
  sql += "".concat(it.joinType, " (").concat(handleSqlUnion(it.subQuery, db).sql, ") ").concat(as).concat(it.alias, " ").concat(it.joinCondition, " ");
864
800
  } else {
865
801
  sql += "".concat(it.joinType, " ").concat(it.tableName, " ").concat(as).concat(it.alias, " ").concat(it.joinCondition, " ");
866
802
  }
867
803
  });
868
804
  }
869
- // -------- 处理 where --------
870
805
  if (filters) {
871
806
  sql += "".concat(filters, " ");
872
807
  if (limit && db === procEnum.oracle) {
@@ -877,21 +812,17 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
877
812
  }
878
813
  }
879
814
  }
880
- // -------- 处理 group by --------
881
815
  if (Array.isArray(groupBy === null || groupBy === void 0 ? void 0 : groupBy.groupColumns) && groupBy.groupColumns.length) {
882
816
  sql += "GROUP BY ".concat(groupBy.groupColumns.map(function (it) {
883
817
  return it;
884
818
  }).join(', '), " ");
885
819
  }
886
- // -------- 处理 orderby --------
887
820
  if (orderInfos) {
888
821
  sql += "".concat(orderInfos, " ");
889
822
  }
890
- // -------- 处理 limit --------
891
823
  if (limit && db === procEnum.mysql) {
892
824
  sql += "LIMIT ".concat(limit, " ");
893
825
  }
894
- // -------- 获取 字段列表 --------
895
826
  var fields = [];
896
827
  if (firstEntry && !noFields) {
897
828
  function addFields(data) {
@@ -940,7 +871,6 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
940
871
  };
941
872
  export var transformSql = function transformSql(metas) {
942
873
  var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
943
- // let new_metas = upgradeLegacyData(metas);
944
874
  var _handleSqlUnion = handleSqlUnion(metas, db, true),
945
875
  sql = _handleSqlUnion.sql,
946
876
  fields = _handleSqlUnion.fields,
package/lib/es/utils.d.ts CHANGED
@@ -26,17 +26,12 @@ export declare function isValidSQLAlias(str: string): boolean;
26
26
  export declare const changeTableAlias: (list: MetaListType[] | [], curObj: Pick<MetaData_TableType, "tableUuid" | "alias">) => MetaListType[];
27
27
  export declare const changeFieldAlias: (list: MetaListType[], curObj: Pick<MetaData_ColumnsType, "fieldUuid" | "fieldAlias">) => MetaListType[];
28
28
  export declare function splitByUnion(data: any): any[];
29
+ export declare const normalizeLegacySummarizeForSave: (metas?: MetaListType[]) => MetaListType[];
29
30
  export declare const getObjTem: (arr: any[]) => any;
30
31
  export declare const patchData: (metas: MetaListType[], constantList?: any, formulaTemplates?: any) => MetaListType[];
31
32
  export declare function reassembleByUnion(target?: any[]): any[];
32
33
  export declare const buildSqlQuery: (data: MetaListType[] | undefined, type: string) => string;
33
34
  export declare const isError: (item: AtomsItem | AtomsItem[], data: DataType[]) => boolean;
34
- /**
35
- * 在嵌套结构 root 中查找是否存在一个对象,使得 target 是该对象的子集
36
- * @param root 可能包含任意层数组/对象的根数据
37
- * @param target 目标对象(可能只包含部分字段)
38
- * @returns 是否存在
39
- */
40
35
  export declare function containsSubset(root: unknown, target: Record<string, unknown>): boolean;
41
36
  export declare const isExistsError: (meta: any[], errorList: any[]) => boolean;
42
37
  export declare const changeCopyField: (items: AtomsItem[], data: any[]) => AtomsItem[];