@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.
@@ -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-left: var(--sqb-item-shell-margin-x, 14px);
1653
- padding-right: var(--sqb-item-shell-margin-x, 14px);
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 getFieldTableKey = function getFieldTableKey(tableId, tableUuid) {
99
- return tableId || tableUuid || '';
99
+ var normalizeIdentityValue = function normalizeIdentityValue(val) {
100
+ if (val === undefined || val === null) return '';
101
+ return "".concat(val);
100
102
  };
101
- var isSameSelectedTable = function isSameSelectedTable(field, tableId, tableUuid) {
102
- if (field.tableId && tableId) {
103
- return field.tableId === tableId;
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 (field.tableUuid && tableUuid) {
106
- return field.tableUuid === tableUuid;
116
+ if (normalizedTableUuid) {
117
+ return "".concat(datasourceKey, "|uuid:").concat(normalizedTableUuid);
107
118
  }
108
- return false;
119
+ return datasourceKey;
109
120
  };
110
- var getSelectedFieldKey = function getSelectedFieldKey(field) {
111
- if (!field) return '';
112
- var tableKey = getFieldTableKey(field.tableId, field.tableUuid);
113
- var fieldKey = field.fieldId || field.fieldUuid || field.fieldName || '';
114
- return "".concat(tableKey, "|").concat(fieldKey);
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 getColumnKey = function getColumnKey(column, isSummarizeColumn, tableId, tableUuid) {
117
- var tableKey = getFieldTableKey(tableId, tableUuid);
118
- var fieldKey = column.id || column.fieldId || column.fieldUuid || column.name || '';
119
- return "".concat(tableKey, "|").concat(fieldKey);
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(id_alias, tableId, tableUuid) {
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, tableId, tableUuid) && getSelectedFieldKey(v) === id_alias;
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 (0, _helper2.isSameColumnByIdFirst)((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, column), {}, {
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.id || '', item.tableUuid || '');
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, val.tableId, val.tableUuid) && (0, _helper2.isSameColumnByIdFirst)(v, val);
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, val.tableId, val.tableUuid) && (0, _helper2.isSameColumnByIdFirst)(v, val));
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, curTableId, tableUuid)) return null;
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(columnKey, tableId || '', tableUuid)
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 operators = ['AND', 'OR', '(', ')', ',', '+', '-', '*', '/', '!=', '<=', '>=', '<', '>', '='];
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"])((0, _defineProperty2["default"])({}, _types.AtomsTypeEnum.JOIN_DEFAULT, 'joinData.default'), _types.AtomsTypeEnum.EXPRESSION, 'joinData.expression'), _types.AtomsTypeEnum.OPERATOR, 'customColumn.operator'), _types.AtomsTypeEnum.COLLECTION, 'customColumn.collection')[v];
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].val = key;
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, item);
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
- var index = (0, _utils2.findIndex)(store.metaList[groupIndex].list, meta);
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: menuOperator,
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: v.val
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
- var index = (0, _utils2.findIndex)(store.metaList[groupIndex].list, meta);
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
- var index = (0, _utils2.findIndex)(store.metaList[groupIndex].list, meta);
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
  })]
@@ -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
- var leftTableName = normalizeId(left.tableName || left.table);
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);