@gingkoo/pandora-metabase 1.0.118 → 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.
- 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 +1 -30
- 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 +967 -503
- 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 +3 -3
- 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 +231 -76
- package/lib/cjs/components/modules/summarize/select-index.js +96 -46
- 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 +42 -113
- package/lib/cjs/utils.d.ts +1 -6
- package/lib/cjs/utils.js +115 -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 +0 -30
- 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 +966 -503
- 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 +3 -3
- 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 +233 -78
- package/lib/es/components/modules/summarize/select-index.js +96 -46
- 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 +42 -112
- package/lib/es/utils.d.ts +1 -6
- package/lib/es/utils.js +116 -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
|
|
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 = [];
|
|
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 = _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
|
|
192
|
-
_leftSql =
|
|
193
|
-
_leftSqlItems =
|
|
194
|
-
_joinDefaultLeftConstants =
|
|
195
|
-
var
|
|
196
|
-
_rightSql =
|
|
197
|
-
_rightSqlItems =
|
|
198
|
-
_joinDefaultRightConstants =
|
|
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
|
|
476
|
-
argSql =
|
|
477
|
-
formulaConstants =
|
|
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
|
|
483
|
-
collectionSql =
|
|
484
|
-
collectionConstants =
|
|
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
|
|
509
|
-
sql =
|
|
510
|
-
joinConstants =
|
|
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
|
|
601
|
-
field_sql =
|
|
602
|
-
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
|
|
618
|
-
sql =
|
|
619
|
-
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(
|
|
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
|
|
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
|
|
665
|
-
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[];
|