@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.
- package/lib/cjs/common/Portal/index.js +0 -2
- package/lib/cjs/common/SplitView/index.d.ts +0 -4
- package/lib/cjs/common/SplitView/index.js +0 -10
- package/lib/cjs/components/dialog/custom-column/config.js +4 -48
- package/lib/cjs/components/dialog/custom-column/expression-editor.js +3 -14
- package/lib/cjs/components/dialog/custom-column/expressions/suggest.d.ts +2 -34
- package/lib/cjs/components/dialog/custom-column/expressions/suggest.js +2 -43
- package/lib/cjs/components/dialog/custom-column/expressions/tokenizer.js +8 -65
- package/lib/cjs/components/dialog/custom-column/index.js +2 -4
- package/lib/cjs/components/dialog/custom-column/tokenized-expression.js +2 -3
- package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -1
- package/lib/cjs/components/dialog/custom-editor/index.js +2 -7
- package/lib/cjs/components/dialog/diff-viewer/index copy.js +1 -16
- package/lib/cjs/components/dialog/expression/date-format-picker.js +2 -20
- package/lib/cjs/components/dialog/expression/date-format.js +2 -8
- package/lib/cjs/components/dialog/expression/index.d.ts +0 -3
- package/lib/cjs/components/dialog/expression/index.js +2 -83
- package/lib/cjs/components/dialog/formula/index.js +6 -31
- package/lib/cjs/components/dialog/formula/utils.js +2 -10
- package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.d.ts +19 -0
- package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.js +109 -0
- package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +9 -0
- package/lib/cjs/components/dialog/formula-list/LogicGroup.js +43 -0
- package/lib/cjs/components/dialog/formula-list/index.d.ts +3 -0
- package/lib/cjs/components/dialog/formula-list/index.js +970 -504
- package/lib/cjs/components/dialog/formula-list/index.less +724 -0
- package/lib/cjs/components/dialog/formula-list/utils.d.ts +0 -7
- package/lib/cjs/components/dialog/formula-list/utils.js +117 -113
- package/lib/cjs/components/dialog/select-column/index.d.ts +0 -6
- package/lib/cjs/components/dialog/select-column/index.js +4 -15
- package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +0 -8
- package/lib/cjs/components/dialog/select-column-multiple/index.js +6 -45
- package/lib/cjs/components/dialog/select-join/index.d.ts +0 -5
- package/lib/cjs/components/dialog/select-join/index.js +0 -6
- package/lib/cjs/components/dialog/select-join-column/index.d.ts +0 -8
- package/lib/cjs/components/dialog/select-join-column/index.js +7 -21
- package/lib/cjs/components/dialog/select-join-column-multiple/index.d.ts +0 -8
- package/lib/cjs/components/dialog/select-join-column-multiple/index.js +5 -35
- package/lib/cjs/components/dialog/select-permission-table/index.d.ts +0 -5
- package/lib/cjs/components/dialog/select-permission-table/index.js +0 -6
- package/lib/cjs/components/dialog/select-summarize/index.d.ts +7 -4
- package/lib/cjs/components/dialog/select-summarize/index.js +105 -18
- package/lib/cjs/components/dialog/select-summarize/index.less +23 -0
- package/lib/cjs/components/dialog/select-table/index.d.ts +0 -6
- package/lib/cjs/components/dialog/select-table/index.js +1 -9
- package/lib/cjs/components/metabase/index.js +72 -86
- package/lib/cjs/components/metabase/index.less +7 -7
- package/lib/cjs/components/modules/components/Wrapper.js +1 -1
- package/lib/cjs/components/modules/components/header.js +2 -2
- package/lib/cjs/components/modules/components/meta-icon.d.ts +0 -3
- package/lib/cjs/components/modules/components/meta-icon.js +2 -47
- package/lib/cjs/components/modules/custom-column.js +3 -29
- package/lib/cjs/components/modules/enum/filter-enum.js +9 -88
- package/lib/cjs/components/modules/filter.js +2 -20
- package/lib/cjs/components/modules/index.d.ts +4 -2
- package/lib/cjs/components/modules/index.js +24 -1
- package/lib/cjs/components/modules/join-data.js +13 -291
- package/lib/cjs/components/modules/row-limit.js +0 -1
- package/lib/cjs/components/modules/sort.js +1 -61
- package/lib/cjs/components/modules/summarize/group-by.d.ts +0 -5
- package/lib/cjs/components/modules/summarize/group-by.js +251 -89
- package/lib/cjs/components/modules/summarize/select-index.js +116 -59
- package/lib/cjs/components/modules/table-data.js +11 -64
- package/lib/cjs/components/popup.js +26 -32
- package/lib/cjs/hooks/patch.d.ts +1 -0
- package/lib/cjs/hooks/patch.js +104 -6
- package/lib/cjs/hooks/patch2.js +3 -165
- package/lib/cjs/hooks/use-provider.js +0 -3
- package/lib/cjs/hooks/use-state.js +55 -135
- package/lib/cjs/index.js +0 -15
- package/lib/cjs/locale/en.js +5 -0
- package/lib/cjs/locale/index.js +1 -4
- package/lib/cjs/locale/zh.js +5 -0
- package/lib/cjs/sql-formula.js +0 -1
- package/lib/cjs/store/enum.d.ts +6 -6
- package/lib/cjs/store/enum.js +0 -13
- package/lib/cjs/store/helper.d.ts +2 -1
- package/lib/cjs/store/helper.js +15 -225
- package/lib/cjs/store/types.d.ts +45 -67
- package/lib/cjs/store/types.js +3 -49
- package/lib/cjs/types.d.ts +1 -0
- package/lib/cjs/utils/cookies.js +0 -3
- package/lib/cjs/utils/event.js +1 -1
- package/lib/cjs/utils/helper-dom.d.ts +1 -0
- package/lib/cjs/utils/helper-dom.js +17 -10
- package/lib/cjs/utils/helper.js +1 -24
- package/lib/cjs/utils/keydown.js +4 -7
- package/lib/cjs/utils/platform.d.ts +0 -9
- package/lib/cjs/utils/platform.js +0 -10
- package/lib/cjs/utils/selection.js +0 -6
- package/lib/cjs/utils/storage.d.ts +0 -9
- package/lib/cjs/utils/storage.js +1 -11
- package/lib/cjs/utils/transformSql.d.ts +5 -0
- package/lib/cjs/utils/transformSql.js +40 -101
- package/lib/cjs/utils.d.ts +1 -6
- package/lib/cjs/utils.js +126 -255
- package/lib/es/common/Portal/index.js +0 -2
- package/lib/es/common/SplitView/index.d.ts +0 -4
- package/lib/es/common/SplitView/index.js +0 -10
- package/lib/es/components/dialog/custom-column/config.js +4 -48
- package/lib/es/components/dialog/custom-column/expression-editor.js +3 -14
- package/lib/es/components/dialog/custom-column/expressions/suggest.d.ts +2 -34
- package/lib/es/components/dialog/custom-column/expressions/suggest.js +2 -43
- package/lib/es/components/dialog/custom-column/expressions/tokenizer.js +8 -65
- package/lib/es/components/dialog/custom-column/index.js +2 -4
- package/lib/es/components/dialog/custom-column/tokenized-expression.js +1 -3
- package/lib/es/components/dialog/custom-column/tokenizedI-input.js +1 -1
- package/lib/es/components/dialog/custom-editor/index.js +1 -7
- package/lib/es/components/dialog/diff-viewer/index copy.js +1 -15
- package/lib/es/components/dialog/expression/date-format-picker.js +2 -20
- package/lib/es/components/dialog/expression/date-format.js +2 -8
- package/lib/es/components/dialog/expression/index.d.ts +0 -3
- package/lib/es/components/dialog/expression/index.js +2 -82
- package/lib/es/components/dialog/formula/index.js +5 -31
- package/lib/es/components/dialog/formula/utils.js +2 -10
- package/lib/es/components/dialog/formula-list/CaseWhenGroup.d.ts +19 -0
- package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +102 -0
- package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +9 -0
- package/lib/es/components/dialog/formula-list/LogicGroup.js +36 -0
- package/lib/es/components/dialog/formula-list/index.d.ts +3 -0
- package/lib/es/components/dialog/formula-list/index.js +969 -504
- package/lib/es/components/dialog/formula-list/index.less +724 -0
- package/lib/es/components/dialog/formula-list/utils.d.ts +0 -7
- package/lib/es/components/dialog/formula-list/utils.js +117 -113
- package/lib/es/components/dialog/index.js +3 -3
- package/lib/es/components/dialog/select-column/index.d.ts +0 -6
- package/lib/es/components/dialog/select-column/index.js +4 -14
- package/lib/es/components/dialog/select-column-multiple/index.d.ts +0 -8
- package/lib/es/components/dialog/select-column-multiple/index.js +7 -47
- package/lib/es/components/dialog/select-join/index.d.ts +0 -5
- package/lib/es/components/dialog/select-join/index.js +0 -5
- package/lib/es/components/dialog/select-join-column/index.d.ts +0 -8
- package/lib/es/components/dialog/select-join-column/index.js +7 -20
- package/lib/es/components/dialog/select-join-column-multiple/index.d.ts +0 -8
- package/lib/es/components/dialog/select-join-column-multiple/index.js +5 -34
- package/lib/es/components/dialog/select-permission-table/index.d.ts +0 -5
- package/lib/es/components/dialog/select-permission-table/index.js +0 -5
- package/lib/es/components/dialog/select-summarize/index.d.ts +7 -4
- package/lib/es/components/dialog/select-summarize/index.js +106 -18
- package/lib/es/components/dialog/select-summarize/index.less +23 -0
- package/lib/es/components/dialog/select-table/index.d.ts +0 -6
- package/lib/es/components/dialog/select-table/index.js +1 -8
- package/lib/es/components/metabase/index.js +72 -87
- package/lib/es/components/metabase/index.less +7 -7
- package/lib/es/components/modules/components/Wrapper.js +1 -1
- package/lib/es/components/modules/components/header.js +2 -2
- package/lib/es/components/modules/components/meta-icon.d.ts +0 -3
- package/lib/es/components/modules/components/meta-icon.js +2 -46
- package/lib/es/components/modules/custom-column.js +3 -29
- package/lib/es/components/modules/enum/filter-enum.js +9 -88
- package/lib/es/components/modules/filter.js +2 -19
- package/lib/es/components/modules/index.d.ts +4 -2
- package/lib/es/components/modules/index.js +24 -1
- package/lib/es/components/modules/join-data.js +13 -291
- package/lib/es/components/modules/row-limit.js +0 -1
- package/lib/es/components/modules/sort.js +1 -61
- package/lib/es/components/modules/summarize/group-by.d.ts +0 -5
- package/lib/es/components/modules/summarize/group-by.js +253 -91
- package/lib/es/components/modules/summarize/select-index.js +116 -59
- package/lib/es/components/modules/table-data.js +11 -64
- package/lib/es/components/popup.js +27 -33
- package/lib/es/hooks/patch.d.ts +1 -0
- package/lib/es/hooks/patch.js +103 -5
- package/lib/es/hooks/patch2.js +2 -164
- package/lib/es/hooks/use-provider.js +0 -3
- package/lib/es/hooks/use-state.js +55 -135
- package/lib/es/index.js +0 -14
- package/lib/es/locale/en.js +5 -0
- package/lib/es/locale/index.js +1 -4
- package/lib/es/locale/zh.js +5 -0
- package/lib/es/sql-formula.js +0 -1
- package/lib/es/store/enum.d.ts +6 -6
- package/lib/es/store/enum.js +0 -13
- package/lib/es/store/helper.d.ts +2 -1
- package/lib/es/store/helper.js +13 -224
- package/lib/es/store/types.d.ts +45 -67
- package/lib/es/store/types.js +3 -49
- package/lib/es/types.d.ts +1 -0
- package/lib/es/types.js +1 -18
- package/lib/es/utils/cookies.js +0 -3
- package/lib/es/utils/event.js +1 -1
- package/lib/es/utils/helper-dom.d.ts +1 -0
- package/lib/es/utils/helper-dom.js +16 -9
- package/lib/es/utils/helper.js +1 -24
- package/lib/es/utils/keydown.js +4 -7
- package/lib/es/utils/platform.d.ts +0 -9
- package/lib/es/utils/platform.js +0 -10
- package/lib/es/utils/selection.js +0 -6
- package/lib/es/utils/storage.d.ts +0 -9
- package/lib/es/utils/storage.js +1 -10
- package/lib/es/utils/transformSql.d.ts +5 -0
- package/lib/es/utils/transformSql.js +40 -100
- package/lib/es/utils.d.ts +1 -6
- package/lib/es/utils.js +127 -255
- 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
|
|
68
|
+
var _handleBaseType2Sql8 = 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 = [];
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
joinDefaultRightConstants = _handleBaseType2Sql3.constants;
|
|
130
|
+
var _handleBaseType2Sql = _handleBaseType2Sql8(lhs, db),
|
|
131
|
+
leftSql = _handleBaseType2Sql.sql,
|
|
132
|
+
leftSqlItems = _handleBaseType2Sql.sql_items,
|
|
133
|
+
joinDefaultLeftConstants = _handleBaseType2Sql.constants;
|
|
134
|
+
var _handleBaseType2Sql2 = _handleBaseType2Sql8(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
|
|
192
|
-
_leftSql =
|
|
193
|
-
_leftSqlItems =
|
|
194
|
-
_joinDefaultLeftConstants =
|
|
195
|
-
var
|
|
196
|
-
_rightSql =
|
|
197
|
-
_rightSqlItems =
|
|
198
|
-
_joinDefaultRightConstants =
|
|
172
|
+
var _handleBaseType2Sql3 = _handleBaseType2Sql8(_lhs, db),
|
|
173
|
+
_leftSql = _handleBaseType2Sql3.sql,
|
|
174
|
+
_leftSqlItems = _handleBaseType2Sql3.sql_items,
|
|
175
|
+
_joinDefaultLeftConstants = _handleBaseType2Sql3.constants;
|
|
176
|
+
var _handleBaseType2Sql4 = _handleBaseType2Sql8(_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,11 +443,21 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
|
|
|
472
443
|
}
|
|
473
444
|
}
|
|
474
445
|
if (type === BlockTypeEnum.FORMULA) {
|
|
475
|
-
var
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
446
|
+
var argSqlList = (Array.isArray(item.args) ? item.args : []).map(function (arg) {
|
|
447
|
+
if ((arg === null || arg === void 0 ? void 0 : arg.type) === BlockTypeEnum.collection) {
|
|
448
|
+
var _handleBaseType2Sql5 = _handleBaseType2Sql8(arg.list, db),
|
|
449
|
+
collectionSql = _handleBaseType2Sql5.sql,
|
|
450
|
+
collectionConstants = _handleBaseType2Sql5.constants;
|
|
451
|
+
constants.push.apply(constants, _toConsumableArray(collectionConstants));
|
|
452
|
+
return collectionSql.trim();
|
|
453
|
+
}
|
|
454
|
+
var _handleBaseType2Sql6 = _handleBaseType2Sql8([arg], db),
|
|
455
|
+
nestedSql = _handleBaseType2Sql6.sql,
|
|
456
|
+
nestedConstants = _handleBaseType2Sql6.constants;
|
|
457
|
+
constants.push.apply(constants, _toConsumableArray(nestedConstants));
|
|
458
|
+
return nestedSql.trim();
|
|
459
|
+
}).filter(Boolean);
|
|
460
|
+
sql += " ".concat(item.name, "(").concat(argSqlList.join(', '), ")");
|
|
480
461
|
}
|
|
481
462
|
if (type === BlockTypeEnum.collection) {
|
|
482
463
|
var _handleBaseType2Sql7 = _handleBaseType2Sql8(item.list, db),
|
|
@@ -492,6 +473,7 @@ var _handleBaseType2Sql8 = function _handleBaseType2Sql(list) {
|
|
|
492
473
|
constants: constants
|
|
493
474
|
};
|
|
494
475
|
};
|
|
476
|
+
export { _handleBaseType2Sql8 as handleBaseType2Sql };
|
|
495
477
|
var _handleJoinData = function _handleJoinData(joinData) {
|
|
496
478
|
var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
|
|
497
479
|
var constants = [];
|
|
@@ -527,7 +509,6 @@ var _handleJoinData = function _handleJoinData(joinData) {
|
|
|
527
509
|
return {
|
|
528
510
|
field_sql: "".concat(tableAlias ? "".concat(tableAlias, ".").concat(o.name) : o.name, " as ").concat(fieldAlias),
|
|
529
511
|
read_name: o.name,
|
|
530
|
-
// 原字段名
|
|
531
512
|
name: fieldAlias,
|
|
532
513
|
name_zh: o.name_zh,
|
|
533
514
|
id: o.id
|
|
@@ -540,7 +521,6 @@ var _handleJoinData = function _handleJoinData(joinData) {
|
|
|
540
521
|
constants: constants
|
|
541
522
|
};
|
|
542
523
|
};
|
|
543
|
-
// 处理数据格式 - (这里才是真正处理成后端需要的格式 前面两步都是准备工作)
|
|
544
524
|
var _handleNesting = function handleNesting(data) {
|
|
545
525
|
var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
|
|
546
526
|
var hasInnerSql = Boolean(data.children);
|
|
@@ -562,7 +542,6 @@ var _handleNesting = function handleNesting(data) {
|
|
|
562
542
|
obj.datasourceId = tableData.table.datasourceId;
|
|
563
543
|
obj.datasourceName = tableData.table.datasourceName;
|
|
564
544
|
if (tableData.isSubquery && Array.isArray(tableData.subquery)) {
|
|
565
|
-
// 主表是子查询
|
|
566
545
|
obj.tableSubQuery = tableData.subquery;
|
|
567
546
|
}
|
|
568
547
|
if (!summarize || !summarize.group.length && !summarize.by.length) {
|
|
@@ -574,14 +553,10 @@ var _handleNesting = function handleNesting(data) {
|
|
|
574
553
|
var fieldAlias = v.fieldAlias || v.name;
|
|
575
554
|
return {
|
|
576
555
|
field_sql: "".concat(tableAlias ? "".concat(tableAlias, ".").concat(v.name) : v.name, " as ").concat(fieldAlias),
|
|
577
|
-
// 生成 sql 放 select 后面的
|
|
578
556
|
read_name: v.name,
|
|
579
|
-
// 原字段名
|
|
580
557
|
name: fieldAlias,
|
|
581
|
-
// 输出字段名
|
|
582
558
|
name_zh: v.name_zh,
|
|
583
|
-
|
|
584
|
-
id: v.id // 字段原 DATA_ID
|
|
559
|
+
id: v.id
|
|
585
560
|
};
|
|
586
561
|
});
|
|
587
562
|
}
|
|
@@ -631,10 +606,8 @@ var _handleNesting = function handleNesting(data) {
|
|
|
631
606
|
queryColumns.push({
|
|
632
607
|
field_sql: "".concat(v.sql, " as ").concat(v.fieldAlias),
|
|
633
608
|
read_name: '',
|
|
634
|
-
// 原字段名
|
|
635
609
|
name: v.fieldAlias,
|
|
636
610
|
name_zh: v.fieldAlias,
|
|
637
|
-
// v.quotes,
|
|
638
611
|
id: ''
|
|
639
612
|
});
|
|
640
613
|
return v.sql;
|
|
@@ -642,16 +615,16 @@ var _handleNesting = function handleNesting(data) {
|
|
|
642
615
|
}
|
|
643
616
|
if (summarize.by.length) {
|
|
644
617
|
obj.groupBy.groupColumns = summarize.by.map(function (v) {
|
|
618
|
+
var _v$atoms;
|
|
619
|
+
var fieldSql = (_v$atoms = v.atoms) !== null && _v$atoms !== void 0 && _v$atoms.length ? _handleBaseType2Sql8(v.atoms, db).sql.trim() || v.sql : v.sql || "".concat(v.alias, ".").concat(v.realName || v.name);
|
|
645
620
|
queryColumns.push({
|
|
646
|
-
field_sql: "".concat(
|
|
621
|
+
field_sql: "".concat(fieldSql, " as ").concat(v.fieldAlias),
|
|
647
622
|
read_name: '',
|
|
648
|
-
// 原字段名
|
|
649
623
|
name: v.fieldAlias,
|
|
650
624
|
name_zh: v.fieldAlias,
|
|
651
|
-
// v.name_zh,
|
|
652
625
|
id: v.id
|
|
653
626
|
});
|
|
654
|
-
return
|
|
627
|
+
return fieldSql;
|
|
655
628
|
});
|
|
656
629
|
}
|
|
657
630
|
obj.queryColumns = queryColumns;
|
|
@@ -671,18 +644,15 @@ var _handleNesting = function handleNesting(data) {
|
|
|
671
644
|
}
|
|
672
645
|
return obj;
|
|
673
646
|
};
|
|
674
|
-
// 反转顺序 - (将原本嵌套的顺序完全反转 最内层变成最外层)别问为什么 问就是接口需要
|
|
675
647
|
var reverseData = function reverseData(data) {
|
|
676
648
|
var arr = [];
|
|
677
649
|
_flatArr2(data, arr);
|
|
678
650
|
return _recursionArr2(arr.reverse());
|
|
679
651
|
};
|
|
680
|
-
// 分层 - (将原本平铺的格式转成 嵌套的格式)
|
|
681
652
|
var _layeredData = function layeredData(list) {
|
|
682
653
|
var res = {};
|
|
683
654
|
for (var i = 0; i < list.length; i++) {
|
|
684
655
|
var meta = list[i];
|
|
685
|
-
// @ts-ignore
|
|
686
656
|
if (meta.type === MetabaseTypeEnum.joinData) {
|
|
687
657
|
if (res[meta.type]) {
|
|
688
658
|
res[meta.type].push(meta);
|
|
@@ -690,15 +660,12 @@ var _layeredData = function layeredData(list) {
|
|
|
690
660
|
res[meta.type] = [meta];
|
|
691
661
|
}
|
|
692
662
|
} else {
|
|
693
|
-
// @ts-ignore
|
|
694
663
|
res[meta.type] = meta;
|
|
695
664
|
}
|
|
696
665
|
if (meta.type === MetabaseTypeEnum.summarize) {
|
|
697
666
|
var nextMeta = list[i + 1];
|
|
698
667
|
var nextNextMeta = list[i + 2];
|
|
699
668
|
var nextNextNextMeta = list[i + 3];
|
|
700
|
-
// 将sort 和 rowLimit 归到上一层 (虽然他们两在 summarize 后面)
|
|
701
|
-
// 处理完 sort 和 rowLimit 之后 如果数组后面还有元素则进入下一层循环
|
|
702
669
|
if (nextMeta) {
|
|
703
670
|
if (nextMeta.type === MetabaseTypeEnum.rowLimit) {
|
|
704
671
|
res[nextMeta.type] = nextMeta;
|
|
@@ -730,7 +697,6 @@ var handleSqlStruct = function handleSqlStruct(list) {
|
|
|
730
697
|
var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
|
|
731
698
|
return _handleNesting(reverseData(_layeredData(list)), db);
|
|
732
699
|
};
|
|
733
|
-
// 处理 union
|
|
734
700
|
var handleSqlUnion = function handleSqlUnion(metas) {
|
|
735
701
|
var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
|
|
736
702
|
var noFields = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
@@ -746,7 +712,6 @@ var handleSqlUnion = function handleSqlUnion(metas) {
|
|
|
746
712
|
fields = _sqlStruct2text.fields;
|
|
747
713
|
var union_fields = [fields];
|
|
748
714
|
if (unionMetas.length) {
|
|
749
|
-
// 用到了 union
|
|
750
715
|
unionMetas.forEach(function (it) {
|
|
751
716
|
if (Array.isArray(it.subquery) && it.subquery.length) {
|
|
752
717
|
var u_data = handleSqlStruct(it.subquery, db);
|
|
@@ -764,11 +729,6 @@ var handleSqlUnion = function handleSqlUnion(metas) {
|
|
|
764
729
|
union_fields: union_fields
|
|
765
730
|
};
|
|
766
731
|
};
|
|
767
|
-
/**
|
|
768
|
-
* 拼 sql
|
|
769
|
-
* @param {meta[]} data
|
|
770
|
-
* @param {boolean} indent 0 是第一次进来 非 0 是第N次进来
|
|
771
|
-
*/
|
|
772
732
|
var _sqlStruct2text3 = function sqlStruct2text(data) {
|
|
773
733
|
var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
774
734
|
var db = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : procEnum.mysql;
|
|
@@ -788,19 +748,14 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
|
|
|
788
748
|
groupBy = data.groupBy;
|
|
789
749
|
sql += "SELECT ";
|
|
790
750
|
var firstEntry = !indent;
|
|
791
|
-
// -------- 处理 fields --------
|
|
792
|
-
// 情况一、一层 带聚合 字段是 聚合字段
|
|
793
|
-
// 情况二、一层 不带聚合 字段是 主表和关联表的字段
|
|
794
|
-
// 情况三、二层 带聚合 第一层 聚合字段 + 关联表字段 第二层 聚合字段 第三层 聚合字段
|
|
795
751
|
if (noFields) {
|
|
796
752
|
sql += '1 ';
|
|
797
753
|
} else {
|
|
798
|
-
var flag = false;
|
|
754
|
+
var flag = false;
|
|
799
755
|
if (limit && db === procEnum.sqlserver) {
|
|
800
756
|
sql += "TOP(".concat(limit, ") ");
|
|
801
757
|
}
|
|
802
758
|
if (hasInnerSql) {
|
|
803
|
-
// 情况三 innerSqlStruct.queryColumns 是内层 聚合输出的字段,这种字段虽说是内层的,但是其实外层也需要
|
|
804
759
|
if (innerSqlStruct.queryColumns && innerSqlStruct.queryColumns.length) {
|
|
805
760
|
sql += innerSqlStruct.queryColumns.map(function (v) {
|
|
806
761
|
return "".concat(alias, ".").concat(v.name, " as ").concat(v.name);
|
|
@@ -809,9 +764,6 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
|
|
|
809
764
|
}
|
|
810
765
|
} else {
|
|
811
766
|
if (Array.isArray(queryColumns) && queryColumns.length) {
|
|
812
|
-
// 情况一 queryColumns 是聚合字段
|
|
813
|
-
// 情况二 queryColumns 是主表字段
|
|
814
|
-
// 情况三 queryColumns 是聚合字段
|
|
815
767
|
flag = true;
|
|
816
768
|
sql += queryColumns.map(function (v) {
|
|
817
769
|
return v.field_sql;
|
|
@@ -819,8 +771,6 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
|
|
|
819
771
|
}
|
|
820
772
|
}
|
|
821
773
|
if (firstEntry && joinTables && !groupBy) {
|
|
822
|
-
// 情况二 joinTables 是关联表字段
|
|
823
|
-
// 情况三 joinTables 是关联表字段
|
|
824
774
|
joinTables.forEach(function (it) {
|
|
825
775
|
if (Array.isArray(it.queryColumns) && it.queryColumns.length) {
|
|
826
776
|
if (flag) {
|
|
@@ -842,31 +792,26 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
|
|
|
842
792
|
}).join(', ') + ' ';
|
|
843
793
|
}
|
|
844
794
|
}
|
|
845
|
-
// -------- 处理 main table --------
|
|
846
795
|
sql += 'FROM ';
|
|
847
796
|
var as = db === procEnum.oracle ? '' : 'AS ';
|
|
848
797
|
if (hasInnerSql) {
|
|
849
798
|
sql += "(".concat(_sqlStruct2text3(innerSqlStruct, indent + 1, db).sql, ") ").concat(as).concat(alias, " ");
|
|
850
799
|
} else {
|
|
851
800
|
if (tableSubQuery) {
|
|
852
|
-
// 子查询
|
|
853
801
|
sql += "(".concat(handleSqlUnion(tableSubQuery, db).sql, ") ").concat(as).concat(alias, " ");
|
|
854
802
|
} else {
|
|
855
803
|
sql += "".concat(tableName, " ").concat(as).concat(alias, " ");
|
|
856
804
|
}
|
|
857
805
|
}
|
|
858
|
-
// -------- 处理 left join --------
|
|
859
806
|
if (joinTables) {
|
|
860
807
|
joinTables.forEach(function (it) {
|
|
861
808
|
if (it.subQuery) {
|
|
862
|
-
// 子查询
|
|
863
809
|
sql += "".concat(it.joinType, " (").concat(handleSqlUnion(it.subQuery, db).sql, ") ").concat(as).concat(it.alias, " ").concat(it.joinCondition, " ");
|
|
864
810
|
} else {
|
|
865
811
|
sql += "".concat(it.joinType, " ").concat(it.tableName, " ").concat(as).concat(it.alias, " ").concat(it.joinCondition, " ");
|
|
866
812
|
}
|
|
867
813
|
});
|
|
868
814
|
}
|
|
869
|
-
// -------- 处理 where --------
|
|
870
815
|
if (filters) {
|
|
871
816
|
sql += "".concat(filters, " ");
|
|
872
817
|
if (limit && db === procEnum.oracle) {
|
|
@@ -877,21 +822,17 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
|
|
|
877
822
|
}
|
|
878
823
|
}
|
|
879
824
|
}
|
|
880
|
-
// -------- 处理 group by --------
|
|
881
825
|
if (Array.isArray(groupBy === null || groupBy === void 0 ? void 0 : groupBy.groupColumns) && groupBy.groupColumns.length) {
|
|
882
826
|
sql += "GROUP BY ".concat(groupBy.groupColumns.map(function (it) {
|
|
883
827
|
return it;
|
|
884
828
|
}).join(', '), " ");
|
|
885
829
|
}
|
|
886
|
-
// -------- 处理 orderby --------
|
|
887
830
|
if (orderInfos) {
|
|
888
831
|
sql += "".concat(orderInfos, " ");
|
|
889
832
|
}
|
|
890
|
-
// -------- 处理 limit --------
|
|
891
833
|
if (limit && db === procEnum.mysql) {
|
|
892
834
|
sql += "LIMIT ".concat(limit, " ");
|
|
893
835
|
}
|
|
894
|
-
// -------- 获取 字段列表 --------
|
|
895
836
|
var fields = [];
|
|
896
837
|
if (firstEntry && !noFields) {
|
|
897
838
|
function addFields(data) {
|
|
@@ -940,7 +881,6 @@ var _sqlStruct2text3 = function sqlStruct2text(data) {
|
|
|
940
881
|
};
|
|
941
882
|
export var transformSql = function transformSql(metas) {
|
|
942
883
|
var db = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : procEnum.mysql;
|
|
943
|
-
// let new_metas = upgradeLegacyData(metas);
|
|
944
884
|
var _handleSqlUnion = handleSqlUnion(metas, db, true),
|
|
945
885
|
sql = _handleSqlUnion.sql,
|
|
946
886
|
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[];
|