@gingkoo/pandora-metabase 1.0.137 → 1.0.138
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/components/dialog/formula/index.js +1 -1
- package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.js +2 -2
- package/lib/cjs/components/dialog/formula-list/index.js +2 -2
- package/lib/cjs/components/dialog/formula-list/index.less +108 -2
- package/lib/cjs/components/dialog/formula-list/utils.js +6 -0
- package/lib/cjs/components/dialog/select-column-multiple/index.js +79 -34
- package/lib/cjs/components/metabase/helper.less +36 -0
- package/lib/cjs/components/metabase/index.js +1 -1
- package/lib/cjs/components/modules/join-data.js +64 -65
- package/lib/cjs/utils/helper.js +1 -5
- package/lib/cjs/utils.d.ts +1 -0
- package/lib/cjs/utils.js +112 -48
- package/lib/es/components/dialog/formula/index.js +1 -1
- package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +2 -2
- package/lib/es/components/dialog/formula-list/index.js +2 -2
- package/lib/es/components/dialog/formula-list/index.less +108 -2
- package/lib/es/components/dialog/formula-list/utils.js +6 -0
- package/lib/es/components/dialog/select-column-multiple/index.js +80 -35
- package/lib/es/components/metabase/helper.less +36 -0
- package/lib/es/components/metabase/index.js +1 -1
- package/lib/es/components/modules/join-data.js +64 -65
- package/lib/es/utils/helper.js +1 -5
- package/lib/es/utils.d.ts +1 -0
- package/lib/es/utils.js +111 -47
- package/package.json +1 -1
|
@@ -29,7 +29,7 @@ var _helperDom = require("../../../utils/helper-dom");
|
|
|
29
29
|
var _templateObject;
|
|
30
30
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
31
31
|
var VisualBox = _styledComponents["default"].div.attrs({
|
|
32
|
-
className: 'visual-box'
|
|
32
|
+
className: 'visual-box scroller'
|
|
33
33
|
})(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
34
34
|
var CaseEditor = _react["default"].forwardRef(function (props, ref) {
|
|
35
35
|
var _store$formulaTemplat, _fun$args;
|
|
@@ -162,7 +162,7 @@ var CaseWhenGroup = function CaseWhenGroup(_ref) {
|
|
|
162
162
|
className: 'Sqb-CaseBranchIndex',
|
|
163
163
|
children: branchIndex + 1
|
|
164
164
|
}), (0, _jsxRuntime.jsx)("div", {
|
|
165
|
-
className: 'Sqb-CaseBranch-body',
|
|
165
|
+
className: 'Sqb-CaseBranch-body scroller-x',
|
|
166
166
|
children: renderBranchContent((0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
167
167
|
children: [(0, _jsxRuntime.jsxs)("div", {
|
|
168
168
|
className: 'Sqb-CaseSection Sqb-CaseSection-condition',
|
|
@@ -233,7 +233,7 @@ var CaseWhenGroup = function CaseWhenGroup(_ref) {
|
|
|
233
233
|
className: 'Sqb-CaseBranchIndex Sqb-CaseBranchIndex--else',
|
|
234
234
|
"aria-hidden": 'true'
|
|
235
235
|
}), (0, _jsxRuntime.jsx)("div", {
|
|
236
|
-
className: 'Sqb-CaseBranch-body',
|
|
236
|
+
className: 'Sqb-CaseBranch-body scroller-x',
|
|
237
237
|
children: renderBranchContent((0, _jsxRuntime.jsxs)("div", {
|
|
238
238
|
className: 'Sqb-CaseSection Sqb-CaseSection-result Sqb-CaseSection-else',
|
|
239
239
|
children: [(0, _jsxRuntime.jsx)("span", {
|
|
@@ -496,7 +496,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
496
496
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
497
497
|
className: 'Sqb-FormulaListZoomEditor',
|
|
498
498
|
children: [(0, _jsxRuntime.jsx)("div", {
|
|
499
|
-
className: 'Sqb-FormulaListZoomEditor-body',
|
|
499
|
+
className: 'Sqb-FormulaListZoomEditor-body scroller scroller-x',
|
|
500
500
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
501
501
|
className: 'Sqb-NotebookCell Sqb-FormulaListZoomEditor-cell',
|
|
502
502
|
children: (0, _jsxRuntime.jsx)(_CaseWhenGroup["default"], {
|
|
@@ -658,7 +658,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
|
|
|
658
658
|
children: (0, _jsxRuntime.jsxs)("div", {
|
|
659
659
|
className: 'Sqb-FormulaListZoomEditor',
|
|
660
660
|
children: [(0, _jsxRuntime.jsx)("div", {
|
|
661
|
-
className: 'Sqb-FormulaListZoomEditor-body Sqb-FormulaListZoomEditor-body--formulaList',
|
|
661
|
+
className: 'Sqb-FormulaListZoomEditor-body Sqb-FormulaListZoomEditor-body--formulaList scroller scroller-x',
|
|
662
662
|
children: (0, _jsxRuntime.jsx)(FormulaList, {
|
|
663
663
|
ref: ref,
|
|
664
664
|
value: draftList,
|
|
@@ -1649,8 +1649,8 @@
|
|
|
1649
1649
|
width: 100%;
|
|
1650
1650
|
min-width: 100%;
|
|
1651
1651
|
box-sizing: border-box;
|
|
1652
|
-
padding
|
|
1653
|
-
padding
|
|
1652
|
+
padding: var(--sqb-item-shell-margin-x, 14px);
|
|
1653
|
+
// padding: var(--sqb-item-shell-margin-x, 14px);
|
|
1654
1654
|
}
|
|
1655
1655
|
|
|
1656
1656
|
.Sqb-FormulaListZoomEditor-body .Sqb-FormulaListZoomEditor-cell {
|
|
@@ -1736,6 +1736,14 @@
|
|
|
1736
1736
|
padding-bottom: 4px;
|
|
1737
1737
|
}
|
|
1738
1738
|
|
|
1739
|
+
.Sqb-FormulaListZoomEditor-body
|
|
1740
|
+
.Sqb-CaseWhenGroup:not(.Sqb-CaseWhenGroup--nested)
|
|
1741
|
+
> .Sqb-FormulaGroup-row
|
|
1742
|
+
> .Sqb-CaseBranch-body:has(.Sqb-CaseWhenGroup--nested) {
|
|
1743
|
+
overflow: visible;
|
|
1744
|
+
padding-bottom: 0;
|
|
1745
|
+
}
|
|
1746
|
+
|
|
1739
1747
|
.Sqb-FormulaListZoomEditor-body
|
|
1740
1748
|
.Sqb-CaseWhenGroup:not(.Sqb-CaseWhenGroup--nested)
|
|
1741
1749
|
> .Sqb-FormulaGroup-row
|
|
@@ -2162,3 +2170,101 @@
|
|
|
2162
2170
|
background: rgba(80, 158, 227, 0.88);
|
|
2163
2171
|
border-color: rgba(80, 158, 227, 0.88);
|
|
2164
2172
|
}
|
|
2173
|
+
|
|
2174
|
+
.Sqb-FormulaGroup.logic-group > .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested),
|
|
2175
|
+
.Sqb-FormulaGroup.logic-group
|
|
2176
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2177
|
+
> .Sqb-NestedFormulaList,
|
|
2178
|
+
.Sqb-FormulaGroup.logic-group
|
|
2179
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2180
|
+
> .Sqb-NestedFormulaList
|
|
2181
|
+
> .Sqb-NotebookCell,
|
|
2182
|
+
.Sqb-FormulaGroup.logic-group
|
|
2183
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2184
|
+
> .Sqb-NestedFormulaList
|
|
2185
|
+
> .Sqb-NotebookCell.Sqb-NotebookCell--embedded,
|
|
2186
|
+
.Sqb-FormulaGroup.logic-group
|
|
2187
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2188
|
+
> .Sqb-NestedFormulaList
|
|
2189
|
+
> .Sqb-NotebookCell.Sqb-NotebookCell--embedded
|
|
2190
|
+
> .Sqb-Filter-item.item-composite,
|
|
2191
|
+
.Sqb-FormulaGroup.logic-group
|
|
2192
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2193
|
+
> .Sqb-NestedFormulaList
|
|
2194
|
+
> .Sqb-NotebookCell.Sqb-NotebookCell--embedded
|
|
2195
|
+
> .Sqb-Filter-item.item-composite
|
|
2196
|
+
> .Sqb-Filter-item-node,
|
|
2197
|
+
.Sqb-FormulaGroup.logic-group
|
|
2198
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2199
|
+
.Sqb-CaseWhenGroup.Sqb-CaseWhenGroup--nested {
|
|
2200
|
+
min-width: 0;
|
|
2201
|
+
max-width: 100%;
|
|
2202
|
+
box-sizing: border-box;
|
|
2203
|
+
}
|
|
2204
|
+
|
|
2205
|
+
.Sqb-FormulaGroup.logic-group > .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested) {
|
|
2206
|
+
flex: 1 1 auto;
|
|
2207
|
+
}
|
|
2208
|
+
|
|
2209
|
+
.Sqb-FormulaGroup.logic-group
|
|
2210
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2211
|
+
> .Sqb-NestedFormulaList,
|
|
2212
|
+
.Sqb-FormulaGroup.logic-group
|
|
2213
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2214
|
+
> .Sqb-NestedFormulaList
|
|
2215
|
+
> .Sqb-NotebookCell,
|
|
2216
|
+
.Sqb-FormulaGroup.logic-group
|
|
2217
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2218
|
+
> .Sqb-NestedFormulaList
|
|
2219
|
+
> .Sqb-NotebookCell.Sqb-NotebookCell--embedded,
|
|
2220
|
+
.Sqb-FormulaGroup.logic-group
|
|
2221
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2222
|
+
> .Sqb-NestedFormulaList
|
|
2223
|
+
> .Sqb-NotebookCell.Sqb-NotebookCell--embedded
|
|
2224
|
+
> .Sqb-Filter-item.item-composite,
|
|
2225
|
+
.Sqb-FormulaGroup.logic-group
|
|
2226
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2227
|
+
> .Sqb-NestedFormulaList
|
|
2228
|
+
> .Sqb-NotebookCell.Sqb-NotebookCell--embedded
|
|
2229
|
+
> .Sqb-Filter-item.item-composite
|
|
2230
|
+
> .Sqb-Filter-item-node,
|
|
2231
|
+
.Sqb-FormulaGroup.logic-group
|
|
2232
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2233
|
+
.Sqb-CaseWhenGroup.Sqb-CaseWhenGroup--nested {
|
|
2234
|
+
flex: 1 1 auto;
|
|
2235
|
+
width: 100%;
|
|
2236
|
+
}
|
|
2237
|
+
|
|
2238
|
+
.Sqb-FormulaGroup.logic-group
|
|
2239
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2240
|
+
.Sqb-CaseWhenGroup.Sqb-CaseWhenGroup--nested
|
|
2241
|
+
> .Sqb-FormulaGroup-row.row-when,
|
|
2242
|
+
.Sqb-FormulaGroup.logic-group
|
|
2243
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2244
|
+
.Sqb-CaseWhenGroup.Sqb-CaseWhenGroup--nested
|
|
2245
|
+
> .Sqb-FormulaGroup-row.row-else {
|
|
2246
|
+
grid-template-columns:
|
|
2247
|
+
var(--sqb-case-index-column) minmax(0, 1fr)
|
|
2248
|
+
var(--sqb-case-action-column);
|
|
2249
|
+
width: 100%;
|
|
2250
|
+
min-width: 0;
|
|
2251
|
+
max-width: 100%;
|
|
2252
|
+
}
|
|
2253
|
+
|
|
2254
|
+
.Sqb-FormulaGroup.logic-group
|
|
2255
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2256
|
+
.Sqb-CaseWhenGroup.Sqb-CaseWhenGroup--nested
|
|
2257
|
+
> .Sqb-FormulaGroup-row.row-when
|
|
2258
|
+
> .Sqb-CaseBranch-body,
|
|
2259
|
+
.Sqb-FormulaGroup.logic-group
|
|
2260
|
+
> .Sqb-LogicGroup-content:has(.Sqb-CaseWhenGroup--nested)
|
|
2261
|
+
.Sqb-CaseWhenGroup.Sqb-CaseWhenGroup--nested
|
|
2262
|
+
> .Sqb-FormulaGroup-row.row-else
|
|
2263
|
+
> .Sqb-CaseBranch-body {
|
|
2264
|
+
width: 100%;
|
|
2265
|
+
min-width: 0;
|
|
2266
|
+
max-width: 100%;
|
|
2267
|
+
overflow-x: auto;
|
|
2268
|
+
overflow-y: hidden;
|
|
2269
|
+
padding-bottom: 4px;
|
|
2270
|
+
}
|
|
@@ -108,6 +108,12 @@ var customTypes = exports.customTypes = [{
|
|
|
108
108
|
}, {
|
|
109
109
|
value: _types.AtomsTypeEnum.EXPRESSION,
|
|
110
110
|
label: (0, _locale.__)('customColumn.expression')
|
|
111
|
+
}, {
|
|
112
|
+
value: _types.AtomsTypeEnum.CASE_WHEN,
|
|
113
|
+
label: (0, _locale.__)('customColumn.caseWhen')
|
|
114
|
+
}, {
|
|
115
|
+
value: _types.AtomsTypeEnum.AND_OR,
|
|
116
|
+
label: (0, _locale.__)('customColumn.andOr')
|
|
111
117
|
}, {
|
|
112
118
|
value: _types.AtomsTypeEnum.INPUT_STRING,
|
|
113
119
|
label: (0, _locale.__)('customColumn.input')
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = exports.NUMBER_GROUP_MAP = exports.DATE_GROUP_MAP = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
8
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
9
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -95,32 +96,74 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
95
96
|
setCurTable(selectedTableUuid);
|
|
96
97
|
}
|
|
97
98
|
}, [_value]);
|
|
98
|
-
var
|
|
99
|
-
|
|
99
|
+
var normalizeIdentityValue = function normalizeIdentityValue(val) {
|
|
100
|
+
if (val === undefined || val === null) return '';
|
|
101
|
+
return "".concat(val);
|
|
100
102
|
};
|
|
101
|
-
var
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
var isSourceLikeDatasource = function isSourceLikeDatasource(datasourceId) {
|
|
104
|
+
var normalizedDatasourceId = normalizeIdentityValue(datasourceId);
|
|
105
|
+
return !normalizedDatasourceId || normalizedDatasourceId === _helper.SummarizeAlias;
|
|
106
|
+
};
|
|
107
|
+
var getFieldTableKey = function getFieldTableKey(tableId, tableUuid, tableAlias, datasourceId) {
|
|
108
|
+
var normalizedTableId = normalizeIdentityValue(tableId);
|
|
109
|
+
var normalizedTableAlias = normalizeIdentityValue(tableAlias);
|
|
110
|
+
var normalizedTableUuid = normalizeIdentityValue(tableUuid);
|
|
111
|
+
var normalizedDatasourceId = normalizeIdentityValue(datasourceId);
|
|
112
|
+
var datasourceKey = isSourceLikeDatasource(normalizedDatasourceId) ? '' : normalizedDatasourceId;
|
|
113
|
+
if (normalizedTableId) {
|
|
114
|
+
return "".concat(datasourceKey, "|id:").concat(normalizedTableId, "|alias:").concat(normalizedTableAlias);
|
|
104
115
|
}
|
|
105
|
-
if (
|
|
106
|
-
return
|
|
116
|
+
if (normalizedTableUuid) {
|
|
117
|
+
return "".concat(datasourceKey, "|uuid:").concat(normalizedTableUuid);
|
|
107
118
|
}
|
|
108
|
-
return
|
|
119
|
+
return datasourceKey;
|
|
109
120
|
};
|
|
110
|
-
var
|
|
111
|
-
if (!
|
|
112
|
-
var
|
|
113
|
-
var
|
|
114
|
-
|
|
121
|
+
var isSameSelectedTable = function isSameSelectedTable(field, tableItem) {
|
|
122
|
+
if (!tableItem) return false;
|
|
123
|
+
var fieldDatasourceId = normalizeIdentityValue(field.datasourceId);
|
|
124
|
+
var tableDatasourceId = normalizeIdentityValue(tableItem.datasourceId);
|
|
125
|
+
if (fieldDatasourceId && tableDatasourceId && !isSourceLikeDatasource(fieldDatasourceId) && !isSourceLikeDatasource(tableDatasourceId) && fieldDatasourceId !== tableDatasourceId) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
var fieldTableId = normalizeIdentityValue(field.tableId);
|
|
129
|
+
var tableId = normalizeIdentityValue(tableItem.id);
|
|
130
|
+
if (fieldTableId && tableId) {
|
|
131
|
+
if (fieldTableId !== tableId) return false;
|
|
132
|
+
var fieldTableAlias = normalizeIdentityValue(field.tableAlias);
|
|
133
|
+
var tableAlias = normalizeIdentityValue(tableItem.alias);
|
|
134
|
+
if (fieldTableAlias && tableAlias) {
|
|
135
|
+
return fieldTableAlias === tableAlias;
|
|
136
|
+
}
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
var fieldTableUuid = normalizeIdentityValue(field.tableUuid);
|
|
140
|
+
var tableUuid = normalizeIdentityValue(tableItem.tableUuid);
|
|
141
|
+
return Boolean(fieldTableUuid && tableUuid && fieldTableUuid === tableUuid);
|
|
115
142
|
};
|
|
116
|
-
var
|
|
117
|
-
var
|
|
118
|
-
|
|
119
|
-
return
|
|
143
|
+
var getFieldStableValues = function getFieldStableValues(field) {
|
|
144
|
+
var includeAlias = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
145
|
+
if (!field) return [];
|
|
146
|
+
return [field.fieldId, field.id, field.fieldName].concat((0, _toConsumableArray2["default"])(includeAlias ? [field.fieldAlias] : [])).map(normalizeIdentityValue).filter(Boolean);
|
|
147
|
+
};
|
|
148
|
+
var getColumnStableValues = function getColumnStableValues(column) {
|
|
149
|
+
var includeAlias = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
150
|
+
if (!column) return [];
|
|
151
|
+
return [column.id, column.fieldId, column.fieldName, column.name, column.realName].concat((0, _toConsumableArray2["default"])(includeAlias ? [column.fieldAlias] : [])).map(normalizeIdentityValue).filter(Boolean);
|
|
152
|
+
};
|
|
153
|
+
var isSameSelectedField = function isSameSelectedField(field, column) {
|
|
154
|
+
var includeAlias = Boolean(column.summarizeType);
|
|
155
|
+
var fieldValues = getFieldStableValues(field, includeAlias);
|
|
156
|
+
var columnValues = getColumnStableValues(column, includeAlias);
|
|
157
|
+
if (fieldValues.some(function (value) {
|
|
158
|
+
return columnValues.includes(value);
|
|
159
|
+
})) {
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
return Boolean(field.fieldUuid && column.fieldUuid && field.fieldUuid === column.fieldUuid);
|
|
120
163
|
};
|
|
121
|
-
var isActive = function isActive(
|
|
164
|
+
var isActive = function isActive(column, tableItem) {
|
|
122
165
|
return (value === null || value === void 0 ? void 0 : value.filter(function (v) {
|
|
123
|
-
return isSameSelectedTable(v,
|
|
166
|
+
return isSameSelectedTable(v, tableItem) && isSameSelectedField(v, column);
|
|
124
167
|
}).length) > 0;
|
|
125
168
|
};
|
|
126
169
|
(0, _react.useEffect)(function () {
|
|
@@ -174,14 +217,8 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
174
217
|
};
|
|
175
218
|
var getMatchedColumnByField = function getMatchedColumnByField(field, tableItem) {
|
|
176
219
|
if (!tableItem) return null;
|
|
177
|
-
var tableId = tableItem.id || '';
|
|
178
|
-
var tableUuid = tableItem.tableUuid || '';
|
|
179
220
|
return (tableItem.columns || []).find(function (column) {
|
|
180
|
-
return (
|
|
181
|
-
tableId: tableId,
|
|
182
|
-
tableUuid: tableUuid,
|
|
183
|
-
datasourceId: tableItem.datasourceId || ''
|
|
184
|
-
}), field);
|
|
221
|
+
return isSameSelectedField(field, column);
|
|
185
222
|
}) || null;
|
|
186
223
|
};
|
|
187
224
|
var syncSelectedFieldByColumn = function syncSelectedFieldByColumn(field, column, tableItem) {
|
|
@@ -206,7 +243,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
206
243
|
(0, _react.useEffect)(function () {
|
|
207
244
|
var syncedValue = (_value || []).map(function (field) {
|
|
208
245
|
var tableItem = data.find(function (item) {
|
|
209
|
-
return isSameSelectedTable(field, item
|
|
246
|
+
return isSameSelectedTable(field, item);
|
|
210
247
|
});
|
|
211
248
|
var matchedColumn = getMatchedColumnByField(field, tableItem);
|
|
212
249
|
return matchedColumn ? syncSelectedFieldByColumn(field, matchedColumn, tableItem) : field;
|
|
@@ -226,7 +263,12 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
226
263
|
return;
|
|
227
264
|
}
|
|
228
265
|
var isHas = (value === null || value === void 0 ? void 0 : value.filter(function (v) {
|
|
229
|
-
return val && isSameSelectedTable(v,
|
|
266
|
+
return val && isSameSelectedTable(v, {
|
|
267
|
+
id: val.tableId,
|
|
268
|
+
tableUuid: val.tableUuid,
|
|
269
|
+
alias: val.tableAlias,
|
|
270
|
+
datasourceId: val.datasourceId
|
|
271
|
+
}) && isSameSelectedField(v, val);
|
|
230
272
|
}).length) > 0;
|
|
231
273
|
var _value = value.slice();
|
|
232
274
|
if (tableUuid != selectedTable) {
|
|
@@ -234,22 +276,26 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
234
276
|
}
|
|
235
277
|
if (!isHas && val) {
|
|
236
278
|
_value = _value.filter(function (v) {
|
|
237
|
-
var hasTableKey = getFieldTableKey(v.tableId, v.tableUuid);
|
|
279
|
+
var hasTableKey = getFieldTableKey(v.tableId, v.tableUuid, v.tableAlias, v.datasourceId);
|
|
238
280
|
var isLegacySameField = !hasTableKey && (v.fieldId && v.fieldId === val.fieldId || v.fieldName && v.fieldName === val.fieldName);
|
|
239
281
|
return !isLegacySameField;
|
|
240
282
|
});
|
|
241
283
|
_value.push(val);
|
|
242
284
|
} else {
|
|
243
285
|
_value = _value.filter(function (v) {
|
|
244
|
-
return !(val && isSameSelectedTable(v,
|
|
286
|
+
return !(val && isSameSelectedTable(v, {
|
|
287
|
+
id: val.tableId,
|
|
288
|
+
tableUuid: val.tableUuid,
|
|
289
|
+
alias: val.tableAlias,
|
|
290
|
+
datasourceId: val.datasourceId
|
|
291
|
+
}) && isSameSelectedField(v, val));
|
|
245
292
|
});
|
|
246
293
|
}
|
|
247
294
|
var curTableItem = data.find(function (v) {
|
|
248
295
|
return v.tableUuid === tableUuid;
|
|
249
296
|
});
|
|
250
|
-
var curTableId = (curTableItem === null || curTableItem === void 0 ? void 0 : curTableItem.id) || '';
|
|
251
297
|
_value = _value.map(function (item2) {
|
|
252
|
-
if (!isSameSelectedTable(item2,
|
|
298
|
+
if (!isSameSelectedTable(item2, curTableItem)) return null;
|
|
253
299
|
var matchedColumn = getMatchedColumnByField(item2, curTableItem);
|
|
254
300
|
return matchedColumn ? syncSelectedFieldByColumn(item2, matchedColumn, curTableItem) : null;
|
|
255
301
|
}).filter(Boolean);
|
|
@@ -400,7 +446,6 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
400
446
|
_v$database_type = v.database_type,
|
|
401
447
|
database_type = _v$database_type === void 0 ? '' : _v$database_type,
|
|
402
448
|
name = v.name;
|
|
403
|
-
var columnKey = getColumnKey(v, isSummarize, tableId || '', tableUuid);
|
|
404
449
|
var fieldAlias = isSummarize ? v.fieldAlias || name || '' : v.fieldAlias || '';
|
|
405
450
|
var fieldName = name || '';
|
|
406
451
|
var fieldId = v.id || '';
|
|
@@ -416,7 +461,7 @@ var SelectJoinColumn = function SelectJoinColumn(_ref) {
|
|
|
416
461
|
className: (0, _classnames["default"])("Sqb-List-section"),
|
|
417
462
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
418
463
|
className: (0, _classnames["default"])("Sqb-List-item mx-2", {
|
|
419
|
-
active: isActive(
|
|
464
|
+
active: isActive(v, tableItem)
|
|
420
465
|
}),
|
|
421
466
|
onClick: function onClick() {
|
|
422
467
|
changeValue(tableUuid, {
|
|
@@ -1,3 +1,39 @@
|
|
|
1
|
+
.scroller::-webkit-scrollbar {
|
|
2
|
+
width: 4px;
|
|
3
|
+
height: 100%;
|
|
4
|
+
background: transparent;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.scroller::-webkit-scrollbar-thumb {
|
|
8
|
+
background: rgba(100, 100, 100, 0.4);
|
|
9
|
+
border-radius: 2px;
|
|
10
|
+
|
|
11
|
+
&:hover {
|
|
12
|
+
background: rgba(100, 100, 100, 0.7);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.scroller-x::-webkit-scrollbar {
|
|
17
|
+
width: 100%;
|
|
18
|
+
height: 8px;
|
|
19
|
+
background: transparent;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.scroller.scroller-x::-webkit-scrollbar {
|
|
23
|
+
width: 4px;
|
|
24
|
+
height: 8px;
|
|
25
|
+
background: transparent;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.scroller-x::-webkit-scrollbar-thumb {
|
|
29
|
+
background: rgba(100, 100, 100, 0.4);
|
|
30
|
+
border-radius: 2px;
|
|
31
|
+
|
|
32
|
+
&:hover {
|
|
33
|
+
background: rgba(100, 100, 100, 0.7);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
1
37
|
.mx-4 {
|
|
2
38
|
margin-left: 1rem;
|
|
3
39
|
margin-right: 1rem;
|
|
@@ -24,7 +24,7 @@ var _useProvider = require("../../hooks/use-provider");
|
|
|
24
24
|
var _storage = _interopRequireDefault(require("../../utils/storage"));
|
|
25
25
|
var _templateObject;
|
|
26
26
|
var VisualBox = _styledComponents["default"].div.attrs({
|
|
27
|
-
className: 'visual-box'
|
|
27
|
+
className: 'visual-box scroller'
|
|
28
28
|
})(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
29
29
|
var Metabase = function Metabase(props) {
|
|
30
30
|
var _props$btnText = props.btnText,
|
|
@@ -37,7 +37,19 @@ var _dialog = require("../dialog");
|
|
|
37
37
|
var _useProvider = require("../../hooks/use-provider");
|
|
38
38
|
var _excluded = ["subToolbar", "notExistsColumns", "isExit", "toolbar"];
|
|
39
39
|
var PrevResult = 'Previous results';
|
|
40
|
-
var
|
|
40
|
+
var normalizeJoinOperator = function normalizeJoinOperator(val) {
|
|
41
|
+
return String(val).toUpperCase() === 'OR' ? 'OR' : 'AND';
|
|
42
|
+
};
|
|
43
|
+
var isJoinOperator = function isJoinOperator(item) {
|
|
44
|
+
return (item === null || item === void 0 ? void 0 : item.type) === _types.AtomsTypeEnum.OPERATOR;
|
|
45
|
+
};
|
|
46
|
+
var menuJoinOperator = [{
|
|
47
|
+
key: 'AND',
|
|
48
|
+
label: 'AND'
|
|
49
|
+
}, {
|
|
50
|
+
key: 'OR',
|
|
51
|
+
label: 'OR'
|
|
52
|
+
}];
|
|
41
53
|
var FlagLocation;
|
|
42
54
|
(function (FlagLocation) {
|
|
43
55
|
FlagLocation["TABLE_1"] = "table1";
|
|
@@ -49,7 +61,7 @@ var ExpressionsEnum;
|
|
|
49
61
|
ExpressionsEnum["RIGHT"] = "rhs";
|
|
50
62
|
})(ExpressionsEnum || (ExpressionsEnum = {}));
|
|
51
63
|
var getText = function getText(v) {
|
|
52
|
-
return (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(
|
|
64
|
+
return (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _types.AtomsTypeEnum.JOIN_DEFAULT, 'joinData.default'), _types.AtomsTypeEnum.EXPRESSION, 'joinData.expression'), _types.AtomsTypeEnum.COLLECTION, 'customColumn.collection')[v];
|
|
53
65
|
};
|
|
54
66
|
var menuTypes = [{
|
|
55
67
|
key: _types.AtomsTypeEnum.JOIN_DEFAULT,
|
|
@@ -57,19 +69,10 @@ var menuTypes = [{
|
|
|
57
69
|
}, {
|
|
58
70
|
key: _types.AtomsTypeEnum.EXPRESSION,
|
|
59
71
|
label: (0, _locale.__)(getText(_types.AtomsTypeEnum.EXPRESSION))
|
|
60
|
-
}, {
|
|
61
|
-
key: _types.AtomsTypeEnum.OPERATOR,
|
|
62
|
-
label: (0, _locale.__)(getText(_types.AtomsTypeEnum.OPERATOR))
|
|
63
72
|
}, {
|
|
64
73
|
key: _types.AtomsTypeEnum.COLLECTION,
|
|
65
74
|
label: (0, _locale.__)(getText(_types.AtomsTypeEnum.COLLECTION))
|
|
66
75
|
}];
|
|
67
|
-
var menuOperator = operators.map(function (v) {
|
|
68
|
-
return {
|
|
69
|
-
key: v,
|
|
70
|
-
label: v
|
|
71
|
-
};
|
|
72
|
-
});
|
|
73
76
|
var JoinData = function JoinData(props) {
|
|
74
77
|
var _meta$subquery, _meta$subquery2, _meta$subquery3, _meta$table4, _meta$table5, _meta$table7, _meta$table8, _meta$table9, _meta$table0, _meta$expressions, _meta$table1, _meta$table10, _meta$expressions2, _store$showMainColumn, _store$showMainColumn2;
|
|
75
78
|
var meta = props.meta,
|
|
@@ -130,6 +133,26 @@ var JoinData = function JoinData(props) {
|
|
|
130
133
|
tableIsDel();
|
|
131
134
|
}, 0);
|
|
132
135
|
}, [meta]);
|
|
136
|
+
(0, _react.useEffect)(function () {
|
|
137
|
+
var expressions = meta.expressions || [];
|
|
138
|
+
var hasInvalidOperator = expressions.some(function (item) {
|
|
139
|
+
return item.type === _types.AtomsTypeEnum.OPERATOR && item.val !== normalizeJoinOperator(item.val);
|
|
140
|
+
});
|
|
141
|
+
if (!hasInvalidOperator) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
var currentIndex = (0, _utils2.findIndex)(store.metaList[groupIndex].list, meta);
|
|
145
|
+
var newMeta = store.metaList[groupIndex].list.slice();
|
|
146
|
+
newMeta[currentIndex].expressions = expressions.map(function (item) {
|
|
147
|
+
if (item.type !== _types.AtomsTypeEnum.OPERATOR) {
|
|
148
|
+
return item;
|
|
149
|
+
}
|
|
150
|
+
return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, item), {}, {
|
|
151
|
+
val: normalizeJoinOperator(item.val)
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
store.setMeta(newMeta, groupIndex);
|
|
155
|
+
}, [meta.expressions]);
|
|
133
156
|
var getTableColumns = function getTableColumns() {
|
|
134
157
|
var data = [];
|
|
135
158
|
var _getHelper2 = (0, _utils2.getHelper)(store.metaList[groupIndex].list, meta),
|
|
@@ -973,7 +996,8 @@ var JoinData = function JoinData(props) {
|
|
|
973
996
|
var _store$preProps3;
|
|
974
997
|
newMeta[index].subquery = newList;
|
|
975
998
|
newMeta[index].table2 = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, newList[0].table), {}, {
|
|
976
|
-
alias: newMeta[index].table2.alias || (0, _helper.getAlias)(newList[0].table.name, newMeta, ((_store$preProps3 = store.preProps) === null || _store$preProps3 === void 0 ? void 0 : _store$preProps3.notExistsColumns) || [])
|
|
999
|
+
alias: newMeta[index].table2.alias || (0, _helper.getAlias)(newList[0].table.name, newMeta, ((_store$preProps3 = store.preProps) === null || _store$preProps3 === void 0 ? void 0 : _store$preProps3.notExistsColumns) || []),
|
|
1000
|
+
tableUuid: newMeta[index].table2.tableUuid || (0, _helper.uuidv4)('table')
|
|
977
1001
|
});
|
|
978
1002
|
var items = (0, _utils2.getSubColumns)(newList);
|
|
979
1003
|
var subQueryTable = newMeta[index].table2;
|
|
@@ -1064,10 +1088,26 @@ var JoinData = function JoinData(props) {
|
|
|
1064
1088
|
onCancel: function onCancel() {}
|
|
1065
1089
|
});
|
|
1066
1090
|
};
|
|
1091
|
+
var cleanJoinOperators = function cleanJoinOperators(expressions) {
|
|
1092
|
+
for (var i = expressions.length - 1; i >= 0; i--) {
|
|
1093
|
+
if (isJoinOperator(expressions[i]) && (i === 0 || i === expressions.length - 1 || isJoinOperator(expressions[i - 1]))) {
|
|
1094
|
+
expressions.splice(i, 1);
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
};
|
|
1067
1098
|
var changeOperator = function changeOperator(key, i) {
|
|
1068
1099
|
var index = (0, _utils2.findIndex)(store.metaList[groupIndex].list, meta);
|
|
1069
1100
|
var newMeta = store.metaList[groupIndex].list.slice();
|
|
1070
|
-
newMeta[index].expressions[i]
|
|
1101
|
+
var operator = newMeta[index].expressions[i];
|
|
1102
|
+
operator.val = normalizeJoinOperator(key);
|
|
1103
|
+
store.setMeta(newMeta, groupIndex);
|
|
1104
|
+
};
|
|
1105
|
+
var removeExpression = function removeExpression(i) {
|
|
1106
|
+
var index = (0, _utils2.findIndex)(store.metaList[groupIndex].list, meta);
|
|
1107
|
+
var newMeta = store.metaList[groupIndex].list.slice();
|
|
1108
|
+
var expressions = newMeta[index].expressions;
|
|
1109
|
+
expressions.splice(i, 1);
|
|
1110
|
+
cleanJoinOperators(expressions);
|
|
1071
1111
|
store.setMeta(newMeta, groupIndex);
|
|
1072
1112
|
};
|
|
1073
1113
|
var changeExpression = function changeExpression(e, i) {
|
|
@@ -1133,19 +1173,15 @@ var JoinData = function JoinData(props) {
|
|
|
1133
1173
|
}],
|
|
1134
1174
|
type: type
|
|
1135
1175
|
};
|
|
1136
|
-
store.setMeta(newMeta, groupIndex);
|
|
1137
|
-
}
|
|
1138
|
-
if (type === _types.AtomsTypeEnum.OPERATOR) {
|
|
1139
|
-
item = {
|
|
1140
|
-
val: 'AND',
|
|
1141
|
-
type: type
|
|
1142
|
-
};
|
|
1143
1176
|
}
|
|
1144
1177
|
if (!item) {
|
|
1145
1178
|
return;
|
|
1146
1179
|
}
|
|
1147
1180
|
if (i >= 0) {
|
|
1148
|
-
newMeta[index].expressions.splice(i + 1, 0,
|
|
1181
|
+
newMeta[index].expressions.splice(i + 1, 0, {
|
|
1182
|
+
val: 'AND',
|
|
1183
|
+
type: _types.AtomsTypeEnum.OPERATOR
|
|
1184
|
+
}, item);
|
|
1149
1185
|
} else {
|
|
1150
1186
|
newMeta[index].expressions.push(item);
|
|
1151
1187
|
}
|
|
@@ -1460,16 +1496,14 @@ var JoinData = function JoinData(props) {
|
|
|
1460
1496
|
className: 'mr-2 operator-icon',
|
|
1461
1497
|
icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfLine, {}),
|
|
1462
1498
|
onClick: function onClick() {
|
|
1463
|
-
|
|
1464
|
-
var newMeta = store.metaList[groupIndex].list.slice();
|
|
1465
|
-
newMeta[index].expressions.splice(i, 1);
|
|
1466
|
-
store.setMeta(newMeta, groupIndex);
|
|
1499
|
+
removeExpression(i);
|
|
1467
1500
|
}
|
|
1468
1501
|
})
|
|
1469
1502
|
})]
|
|
1470
1503
|
}, i);
|
|
1471
1504
|
}
|
|
1472
1505
|
if (v.type === _types.AtomsTypeEnum.OPERATOR) {
|
|
1506
|
+
var operator = normalizeJoinOperator(v.val);
|
|
1473
1507
|
return (0, _jsxRuntime.jsxs)("div", {
|
|
1474
1508
|
className: (0, _classnames["default"])("Sqb-where block"),
|
|
1475
1509
|
children: [i == 0 && (0, _jsxRuntime.jsx)("span", {
|
|
@@ -1480,41 +1514,12 @@ var JoinData = function JoinData(props) {
|
|
|
1480
1514
|
onChange: function onChange(key) {
|
|
1481
1515
|
changeOperator(key, i);
|
|
1482
1516
|
},
|
|
1483
|
-
droplist:
|
|
1517
|
+
droplist: menuJoinOperator,
|
|
1484
1518
|
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
1519
|
+
disabled: meta.readonly,
|
|
1485
1520
|
className: 'ml-2 mr-4 text-gray-500',
|
|
1486
1521
|
type: 'link',
|
|
1487
|
-
children:
|
|
1488
|
-
})
|
|
1489
|
-
}), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1490
|
-
title: (0, _locale.__)('SqlQueryBuilder.add'),
|
|
1491
|
-
children: (0, _jsxRuntime.jsx)(_pandora.Dropdown, {
|
|
1492
|
-
trigger: ['click'],
|
|
1493
|
-
onChange: function onChange(key) {
|
|
1494
|
-
addExpression(key, i);
|
|
1495
|
-
},
|
|
1496
|
-
droplist: menuTypes,
|
|
1497
|
-
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
1498
|
-
disabled: meta.readonly,
|
|
1499
|
-
primary: true,
|
|
1500
|
-
ghost: true,
|
|
1501
|
-
className: 'mr-2 operator-icon',
|
|
1502
|
-
icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfPlus, {})
|
|
1503
|
-
})
|
|
1504
|
-
})
|
|
1505
|
-
}), (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
|
|
1506
|
-
title: (0, _locale.__)('SqlQueryBuilder.del'),
|
|
1507
|
-
children: (0, _jsxRuntime.jsx)(_pandora.Button, {
|
|
1508
|
-
disabled: meta.readonly,
|
|
1509
|
-
danger: true,
|
|
1510
|
-
className: 'mr-2 operator-icon',
|
|
1511
|
-
icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfLine, {}),
|
|
1512
|
-
onClick: function onClick() {
|
|
1513
|
-
var index = (0, _utils2.findIndex)(store.metaList[groupIndex].list, meta);
|
|
1514
|
-
var newMeta = store.metaList[groupIndex].list.slice();
|
|
1515
|
-
newMeta[index].expressions.splice(i, 1);
|
|
1516
|
-
store.setMeta(newMeta, groupIndex);
|
|
1517
|
-
}
|
|
1522
|
+
children: operator
|
|
1518
1523
|
})
|
|
1519
1524
|
})]
|
|
1520
1525
|
}, i);
|
|
@@ -1560,10 +1565,7 @@ var JoinData = function JoinData(props) {
|
|
|
1560
1565
|
className: 'mr-2 operator-icon',
|
|
1561
1566
|
icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfLine, {}),
|
|
1562
1567
|
onClick: function onClick() {
|
|
1563
|
-
|
|
1564
|
-
var newMeta = store.metaList[groupIndex].list.slice();
|
|
1565
|
-
newMeta[index].expressions.splice(i, 1);
|
|
1566
|
-
store.setMeta(newMeta, groupIndex);
|
|
1568
|
+
removeExpression(i);
|
|
1567
1569
|
}
|
|
1568
1570
|
})
|
|
1569
1571
|
})]
|
|
@@ -1614,10 +1616,7 @@ var JoinData = function JoinData(props) {
|
|
|
1614
1616
|
className: 'mr-2 operator-icon',
|
|
1615
1617
|
icon: (0, _jsxRuntime.jsx)(_pandoraIcons.FfLine, {}),
|
|
1616
1618
|
onClick: function onClick() {
|
|
1617
|
-
|
|
1618
|
-
var newMeta = store.metaList[groupIndex].list.slice();
|
|
1619
|
-
newMeta[index].expressions.splice(i, 1);
|
|
1620
|
-
store.setMeta(newMeta, groupIndex);
|
|
1619
|
+
removeExpression(i);
|
|
1621
1620
|
}
|
|
1622
1621
|
})
|
|
1623
1622
|
})]
|
package/lib/cjs/utils/helper.js
CHANGED
|
@@ -119,11 +119,7 @@ var isSameColumnByIdFirst = exports.isSameColumnByIdFirst = function isSameColum
|
|
|
119
119
|
var leftTableUuid = normalizeId(left.tableUuid);
|
|
120
120
|
var rightTableUuid = normalizeId(right.tableUuid);
|
|
121
121
|
if (hasBoth(leftTableUuid, rightTableUuid) && leftTableUuid !== rightTableUuid) {
|
|
122
|
-
|
|
123
|
-
var rightTableName = normalizeId(right.tableName || right.table);
|
|
124
|
-
if (!hasBoth(leftTableName, rightTableName) || leftTableName !== rightTableName) {
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
122
|
+
return false;
|
|
127
123
|
}
|
|
128
124
|
var leftFieldId = normalizeId(left.fieldId || left.id);
|
|
129
125
|
var rightFieldId = normalizeId(right.fieldId || right.id);
|