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