@gingkoo/pandora-metabase 1.0.14 → 1.0.15

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.
Files changed (96) hide show
  1. package/lib/cjs/common/SplitView/index.js +11 -12
  2. package/lib/cjs/components/dialog/custom-column/expression-editor.js +1 -2
  3. package/lib/cjs/components/dialog/custom-column/expressions/suggest.js +1 -1
  4. package/lib/cjs/components/dialog/custom-column/tokenizedI-input.js +1 -2
  5. package/lib/cjs/components/dialog/{select-filter → expression}/index.d.ts +4 -4
  6. package/lib/cjs/components/dialog/{select-filter → expression}/index.js +345 -206
  7. package/lib/cjs/components/dialog/formula-list/enum.d.ts +9 -13
  8. package/lib/cjs/components/dialog/formula-list/enum.js +83 -39
  9. package/lib/cjs/components/dialog/formula-list/index.d.ts +4 -1
  10. package/lib/cjs/components/dialog/formula-list/index.js +110 -126
  11. package/lib/cjs/components/dialog/formula-list/utils.js +77 -46
  12. package/lib/cjs/components/dialog/index.d.ts +2 -2
  13. package/lib/cjs/components/dialog/index.js +20 -20
  14. package/lib/cjs/components/dialog/select-column/index.js +43 -12
  15. package/lib/cjs/components/dialog/select-column-multiple/index.d.ts +54 -0
  16. package/lib/cjs/components/dialog/select-column-multiple/index.js +341 -0
  17. package/lib/cjs/components/dialog/select-column-multiple/index.less +246 -0
  18. package/lib/cjs/components/dialog/select-table/index.js +9 -7
  19. package/lib/cjs/components/icons.js +36 -36
  20. package/lib/cjs/components/metabase/index.js +6 -6
  21. package/lib/cjs/components/metabase/index.less +12 -1
  22. package/lib/cjs/components/modules/components/Wrapper.js +6 -6
  23. package/lib/cjs/components/modules/custom-column.js +12 -14
  24. package/lib/cjs/components/modules/enum/filter-enum.d.ts +34 -0
  25. package/lib/cjs/components/modules/enum/filter-enum.js +137 -0
  26. package/lib/cjs/components/modules/filter.js +43 -460
  27. package/lib/cjs/components/modules/join-data.js +892 -522
  28. package/lib/cjs/components/modules/permission-table.js +4 -0
  29. package/lib/cjs/components/modules/sort.js +102 -91
  30. package/lib/cjs/components/modules/summarize/group-by.js +47 -16
  31. package/lib/cjs/components/modules/summarize/select-index.js +48 -17
  32. package/lib/cjs/components/modules/table-data.js +13 -4
  33. package/lib/cjs/components/popup.js +1 -2
  34. package/lib/cjs/hooks/patch.d.ts +4 -0
  35. package/lib/cjs/hooks/patch.js +464 -0
  36. package/lib/cjs/hooks/use-state.js +73 -138
  37. package/lib/cjs/index.d.ts +0 -1
  38. package/lib/cjs/index.js +3 -21
  39. package/lib/cjs/locale/en.js +10 -3
  40. package/lib/cjs/locale/zh.js +12 -5
  41. package/lib/cjs/store/helper.d.ts +2 -3
  42. package/lib/cjs/store/helper.js +288 -233
  43. package/lib/cjs/store/types.d.ts +94 -71
  44. package/lib/cjs/store/types.js +17 -12
  45. package/lib/cjs/utils.d.ts +3 -3
  46. package/lib/cjs/utils.js +152 -187
  47. package/lib/es/common/SplitView/index.js +10 -10
  48. package/lib/es/components/dialog/custom-column/expressions/suggest.js +1 -1
  49. package/lib/es/components/dialog/{select-filter → expression}/index.d.ts +4 -4
  50. package/lib/es/components/dialog/{select-filter → expression}/index.js +343 -206
  51. package/lib/es/components/dialog/formula-list/enum.d.ts +9 -13
  52. package/lib/es/components/dialog/formula-list/enum.js +82 -38
  53. package/lib/es/components/dialog/formula-list/index.d.ts +4 -1
  54. package/lib/es/components/dialog/formula-list/index.js +115 -131
  55. package/lib/es/components/dialog/formula-list/utils.js +77 -46
  56. package/lib/es/components/dialog/index.d.ts +2 -2
  57. package/lib/es/components/dialog/index.js +3 -3
  58. package/lib/es/components/dialog/select-column/index.js +44 -13
  59. package/lib/es/components/dialog/select-column-multiple/index.d.ts +54 -0
  60. package/lib/es/components/dialog/select-column-multiple/index.js +335 -0
  61. package/lib/es/components/dialog/select-column-multiple/index.less +246 -0
  62. package/lib/es/components/dialog/select-table/index.js +9 -7
  63. package/lib/es/components/icons.js +36 -36
  64. package/lib/es/components/metabase/index.js +6 -6
  65. package/lib/es/components/metabase/index.less +12 -1
  66. package/lib/es/components/modules/components/Wrapper.js +6 -6
  67. package/lib/es/components/modules/custom-column.js +12 -14
  68. package/lib/es/components/modules/enum/filter-enum.d.ts +34 -0
  69. package/lib/es/components/modules/enum/filter-enum.js +131 -0
  70. package/lib/es/components/modules/filter.js +45 -463
  71. package/lib/es/components/modules/join-data.js +894 -524
  72. package/lib/es/components/modules/permission-table.js +4 -0
  73. package/lib/es/components/modules/sort.js +102 -91
  74. package/lib/es/components/modules/summarize/group-by.js +48 -17
  75. package/lib/es/components/modules/summarize/select-index.js +49 -18
  76. package/lib/es/components/modules/table-data.js +13 -4
  77. package/lib/es/hooks/patch.d.ts +4 -0
  78. package/lib/es/hooks/patch.js +457 -0
  79. package/lib/es/hooks/use-state.js +73 -138
  80. package/lib/es/index.d.ts +0 -1
  81. package/lib/es/index.js +1 -1
  82. package/lib/es/locale/en.js +10 -3
  83. package/lib/es/locale/zh.js +12 -5
  84. package/lib/es/store/helper.d.ts +2 -3
  85. package/lib/es/store/helper.js +288 -233
  86. package/lib/es/store/types.d.ts +94 -71
  87. package/lib/es/store/types.js +16 -11
  88. package/lib/es/utils.d.ts +3 -3
  89. package/lib/es/utils.js +154 -190
  90. package/package.json +1 -1
  91. package/lib/cjs/components/modules/filter copy.d.ts +0 -7
  92. package/lib/cjs/components/modules/filter copy.js +0 -178
  93. package/lib/es/components/modules/filter copy.d.ts +0 -7
  94. package/lib/es/components/modules/filter copy.js +0 -171
  95. /package/lib/cjs/components/dialog/{select-filter → expression}/index.less +0 -0
  96. /package/lib/es/components/dialog/{select-filter → expression}/index.less +0 -0
@@ -5,44 +5,30 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
9
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
10
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
12
10
  var _jsxRuntime = require("react/jsx-runtime");
13
- var _react = require("react");
14
- var _classnames = _interopRequireDefault(require("classnames"));
15
- var _index2 = _interopRequireDefault(require("../../index"));
16
- var _pandora = require("@gingkoo/pandora");
17
11
  var _locale = require("../../locale");
18
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
19
12
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
20
13
  var _helper = require("../../utils/helper");
21
14
  var _utils = require("../../utils");
22
15
  var _enum = require("../../store/enum");
23
- var _selectList = _interopRequireDefault(require("../dialog/select-list"));
24
- var _types = require("../../store/types");
16
+ var _formulaList = _interopRequireDefault(require("../dialog/formula-list"));
25
17
  var _Wrapper = _interopRequireDefault(require("./components/Wrapper"));
26
- var _icons = require("../icons");
27
18
  var _metaIcon = _interopRequireDefault(require("./components/meta-icon"));
28
19
  var _header = _interopRequireDefault(require("./components/header"));
29
- var _dialog = require("../dialog");
30
- var _arrow = _interopRequireDefault(require("./arrow.svg"));
20
+ var _filterEnum = require("./enum/filter-enum");
31
21
  var _useProvider = require("../../hooks/use-provider");
32
- var _excluded = ["notExistsToolbar", "toolbar"];
33
22
  var Filter = function Filter(props) {
34
23
  var meta = props.meta,
35
24
  groupIndex = props.groupIndex;
36
25
  var store = (0, _useProvider.useStore)();
37
26
  var filter = meta.filter;
38
27
  var notExistsColumns = store.preProps.notExistsColumns;
39
- var filterCustomType = store.filterCustomType;
28
+ // const filterCustomType = store.filterCustomType;
40
29
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
41
- var notSelected = !meta.filter.length;
42
- var _useState = (0, _react.useState)(-1),
43
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
44
- ind = _useState2[0],
45
- setInd = _useState2[1];
30
+ // let notSelected = !meta.filter.length;
31
+ // const [ind, setInd] = useState(-1);
46
32
  function getColumns() {
47
33
  var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
48
34
  ExistAboveGroupBy = _getHelper.ExistAboveGroupBy,
@@ -54,21 +40,23 @@ var Filter = function Filter(props) {
54
40
  if (ExistAboveGroupBy) {
55
41
  var _prevGroupBy$group, _prevGroupBy$by;
56
42
  var _data = {
57
- table: prevGroupBy.alias,
58
- tableId: prevGroupBy.alias,
59
- tableUuid: prevGroupBy.tableUuid,
60
43
  alias: prevGroupBy.alias,
44
+ name: prevGroupBy.alias,
45
+ name_zh: prevGroupBy.alias,
46
+ // tableId: (prevGroupBy as MetaSummarize).alias,
47
+ id: prevGroupBy.alias,
48
+ tableUuid: prevGroupBy.tableUuid,
49
+ // alias: (prevGroupBy as MetaSummarize).alias,
61
50
  datasourceId: mainTable.table.datasourceId,
62
51
  datasourceName: mainTable.table.datasourceName,
63
52
  columns: []
64
53
  };
65
54
  if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$group = prevGroupBy.group) !== null && _prevGroupBy$group !== void 0 && _prevGroupBy$group.length) {
66
55
  _data.columns = _data.columns.concat(prevGroupBy.group.map(function (v) {
67
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
68
- name_zh: v.quotes
69
- }, v), {}, {
70
- name: v.quotes,
71
- // name_zh: '',
56
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
57
+ name: v.name || v.quotes,
58
+ name_zh: v.name_zh || v.quotes,
59
+ id: v.id || v.fieldId,
72
60
  database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
73
61
  sql: v.sql,
74
62
  special_type: '',
@@ -78,11 +66,10 @@ var Filter = function Filter(props) {
78
66
  }
79
67
  if (prevGroupBy !== null && prevGroupBy !== void 0 && (_prevGroupBy$by = prevGroupBy.by) !== null && _prevGroupBy$by !== void 0 && _prevGroupBy$by.length) {
80
68
  _data.columns = _data.columns.concat(prevGroupBy.by.map(function (v) {
81
- return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
82
- name_zh: v.quotes
83
- }, v), {}, {
84
- name: v.quotes,
85
- // name_zh: '',
69
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
70
+ name: v.name || v.quotes,
71
+ name_zh: v.name_zh || v.quotes,
72
+ id: v.id || v.fieldId,
86
73
  database_type: (v === null || v === void 0 ? void 0 : v.database_type) || _enum.SQL_COLUMN_TYPE.FLOAT,
87
74
  sql: v.sql,
88
75
  special_type: '',
@@ -104,8 +91,9 @@ var Filter = function Filter(props) {
104
91
  joinData.map(function (v) {
105
92
  return {
106
93
  alias: v.table2.alias,
107
- table: v.table2.name,
108
- tableId: v.table2.id,
94
+ name: v.table2.name,
95
+ name_zh: v.table2.name_zh,
96
+ id: v.table2.id,
109
97
  tableUuid: v.table2.tableUuid || (0, _helper.uuidv4)('table'),
110
98
  columns: v.columns,
111
99
  datasourceId: mainTable.table.datasourceId,
@@ -119,8 +107,11 @@ var Filter = function Filter(props) {
119
107
  if (v.type === _enum.TypeEnum.data) {
120
108
  return {
121
109
  alias: v.table.alias,
122
- table: v.table.name,
123
- tableId: v.table.id,
110
+ // table: v.table.name,
111
+ name: v.table.name,
112
+ name_zh: v.table.name_zh,
113
+ // tableId: v.table.id,
114
+ id: v.table.id,
124
115
  tableUuid: v.table.tableUuid || (0, _helper.uuidv4)('table'),
125
116
  columns: v.columns,
126
117
  datasourceId: mainTable.table.datasourceId,
@@ -129,8 +120,9 @@ var Filter = function Filter(props) {
129
120
  } else if (v.type === _enum.TypeEnum.joinData) {
130
121
  return {
131
122
  alias: v.table2.alias,
132
- table: v.table2.name,
133
- tableId: v.table2.id,
123
+ name: v.table2.name,
124
+ name_zh: v.table2.name_zh,
125
+ id: v.table2.id,
134
126
  tableUuid: v.table2.tableUuid || (0, _helper.uuidv4)('table'),
135
127
  columns: v.columns,
136
128
  datasourceId: mainTable.table.datasourceId,
@@ -142,331 +134,21 @@ var Filter = function Filter(props) {
142
134
  };
143
135
  }
144
136
  }).filter(function (v) {
145
- return v.table;
137
+ return v.name;
146
138
  });
147
139
  }
148
140
  return data;
149
141
  }
150
- function handleUpdate(e, i) {
151
- var newMeta = store.metaList[groupIndex].list.slice();
152
- var val = filter[i];
153
- if (val.type === _types.Filter_TypeEnum.NOT_EXISTS || val.type === _types.Filter_TypeEnum.EXISTS) {
154
- showNotExists(i, '', val.type);
155
- return;
156
- }
157
- var data = [].concat((0, _toConsumableArray2["default"])(getColumns()), (0, _toConsumableArray2["default"])((0, _cloneDeep["default"])(notExistsColumns || [])));
158
- store.setPopup({
159
- visible: true,
160
- node: e.currentTarget,
161
- content: (0, _jsxRuntime.jsx)(_dialog.SelectFilter, {
162
- filterCustomType: filterCustomType,
163
- data: data,
164
- value: filter[i],
165
- onChange: function onChange(data) {
166
- newMeta[index].filter.splice(i, 1, data);
167
- store.setMeta(newMeta, groupIndex);
168
- closePopup();
169
- }
170
- })
171
- });
172
- }
173
- function handleAdd(e) {
174
- var node = e.currentTarget;
175
- var newMeta = store.metaList[groupIndex].list.slice();
176
- var data = [].concat((0, _toConsumableArray2["default"])(getColumns()), (0, _toConsumableArray2["default"])((0, _cloneDeep["default"])(notExistsColumns || [])));
177
- var _index = Number(node.getAttribute('v-index'));
178
- var _type = node.getAttribute('v-type');
179
- var value = {
180
- table: '',
181
- // 表名
182
- tableId: '',
183
- // 表名
184
- fieldUuid: '',
185
- // 字段唯一id
186
- fieldAlias: '',
187
- //字段别名
188
- tableUuid: '',
189
- alias: '',
190
- // 表的别名
191
- name: '',
192
- // 字段名
193
- id: '',
194
- // 字段名
195
- database_type: '',
196
- // 字段类型
197
- condition: '',
198
- // 选择条件
199
- val: [],
200
- // 选择结果 如果有两个 长度就为2
201
- quotes: '',
202
- // 前端显示用户看的文字
203
- datasourceId: '',
204
- datasourceName: '',
205
- type: _types.Filter_TypeEnum.EXPRESSION // 过滤类型
206
- };
207
- store.setPopup({
208
- visible: true,
209
- node: e.currentTarget,
210
- content: (0, _jsxRuntime.jsx)(_dialog.SelectFilter, {
211
- filterCustomType: filterCustomType,
212
- data: data,
213
- value: value,
214
- onChange: function onChange(val) {
215
- if (_type) {
216
- if (_type === 'before') {
217
- newMeta[index].filter.splice(_index, 0, val);
218
- } else {
219
- console.log('🚀 ~ ', newMeta[index].filter);
220
- newMeta[index].filter.splice(_index + 1, 0, val);
221
- }
222
- } else {
223
- newMeta[index].filter.push(val);
224
- }
225
- store.setMeta(newMeta, groupIndex);
226
- closePopup();
227
- }
228
- })
229
- });
230
- }
231
- function handleDel(e, itemId) {
232
- e.stopPropagation();
233
- closePopup();
234
- var newMeta = store.metaList[groupIndex].list.slice();
235
- // @ts-ignore
236
- newMeta[index].filter = filter.filter(function (_, i) {
237
- return i !== itemId;
238
- });
239
- store.setMeta(newMeta, groupIndex);
240
- }
241
142
  function closePopup() {
242
143
  store.setPopup({
243
144
  visible: false
244
145
  });
245
146
  }
246
- var options = ['(', ')', 'AND', 'OR'];
247
- var addOperator = function addOperator(val, i, type) {
147
+ var selectFilter = function selectFilter(val) {
248
148
  var newMeta = store.metaList[groupIndex].list.slice();
249
- var _filter = filter.slice();
250
- if (type === 'before') {
251
- _filter.splice(i, 0, val);
252
- } else {
253
- _filter.splice(i + 1, 0, val);
254
- }
255
- newMeta[index].filter = (0, _toConsumableArray2["default"])(_filter);
256
- setInd(-1);
257
- };
258
- // NotExists 窗口
259
- var showNotExists = function showNotExists(i, position, type) {
260
- var _newMeta$index$filter, _newMeta$index$filter2;
261
- var _store$preProps = store.preProps,
262
- notExistsToolbar = _store$preProps.notExistsToolbar,
263
- toolbar = _store$preProps.toolbar,
264
- other = (0, _objectWithoutProperties2["default"])(_store$preProps, _excluded);
265
- var newMeta = store.metaList[groupIndex].list.slice();
266
- var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
267
- var _value = position ? [] : ((_newMeta$index$filter = newMeta[index].filter[i]) === null || _newMeta$index$filter === void 0 ? void 0 : _newMeta$index$filter.notExists) || [];
268
- var oldList = position ? [] : (0, _cloneDeep["default"])(((_newMeta$index$filter2 = newMeta[index].filter[i]) === null || _newMeta$index$filter2 === void 0 ? void 0 : _newMeta$index$filter2.notExists) || []);
269
- var _toolbar = notExistsToolbar || toolbar;
270
- _toolbar = _toolbar.filter(function (v) {
271
- return v !== 'group';
272
- }); // 子查询不需要分组
273
- var notExistsColumns = getColumns();
274
- var o = _pandora.Modal2.openModal({
275
- title: type === _types.Filter_TypeEnum.EXISTS ? 'EXISTS' : 'NOT EXISTS',
276
- transparentMask: true,
277
- content: (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
278
- children: (0, _jsxRuntime.jsx)(_index2["default"], (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, other), {}, {
279
- notExistsColumns: notExistsColumns,
280
- showFields: false,
281
- showSubquery: false,
282
- toolbar: _toolbar,
283
- btnText: (0, _locale.__)('SqlQueryBuilder.confirm'),
284
- value: _value,
285
- onOk: function onOk(newList) {
286
- try {
287
- // 子查询未改变不做操作
288
- if ((0, _isEqual["default"])(newList, oldList)) {
289
- o.close();
290
- return;
291
- }
292
- var _tem = {
293
- notExists: newList,
294
- quotes: (0, _utils.buildSqlQuery)(newList, type),
295
- condition: '',
296
- table: '',
297
- tableId: '',
298
- fieldUuid: (0, _helper.uuidv4)('field'),
299
- // 字段唯一id
300
- fieldAlias: '',
301
- //字段别名
302
- tableUuid: (0, _helper.uuidv4)('table'),
303
- alias: '',
304
- name: '',
305
- id: '',
306
- database_type: '',
307
- val: [],
308
- datasourceId: '',
309
- datasourceName: '',
310
- type: type
311
- };
312
- // 新增
313
- if (i === -1) {
314
- // 如果是新增子查询
315
- newMeta[index].filter.push(_tem);
316
- o.close();
317
- } else if (position) {
318
- //新增
319
- if (position === 'before') {
320
- newMeta[index].filter.splice(i, 0, _tem);
321
- } else {
322
- newMeta[index].filter.splice(i + 1, 0, _tem);
323
- }
324
- } else {
325
- // 编辑
326
- newMeta[index].filter[i] = _tem;
327
- }
328
- store.setMeta(newMeta, groupIndex);
329
- o.close();
330
- } catch (e) {
331
- console.warn(e);
332
- } finally {
333
- o.close();
334
- }
335
- }
336
- }))
337
- }),
338
- onClose: function onClose() {}
339
- });
149
+ newMeta[index].filter = val;
150
+ store.setMeta(newMeta, groupIndex);
340
151
  };
341
- // 过滤类型,子查询为完整的查询语句,表达式为单个字段
342
- // 目前只支持表达式和子查询两种类型
343
- var filterType = [
344
- // {
345
- // value: Filter_TypeEnum.FIELD,
346
- // label: __('customColumn.field'),
347
- // },
348
- // {
349
- // value: Filter_TypeEnum.INPUT,
350
- // label: __('SqlQueryBuilder.input'),
351
- // },
352
- {
353
- value: _types.Filter_TypeEnum.EXPRESSION,
354
- label: (0, _locale.__)('customColumn.expression') //表达式
355
- }, {
356
- value: _types.Filter_TypeEnum.EXISTS,
357
- label: 'EXISTS'
358
- }, {
359
- value: _types.Filter_TypeEnum.NOT_EXISTS,
360
- label: 'NOT EXISTS'
361
- }];
362
- // 选择过滤类型
363
- function addSelectType(e) {
364
- var _e = (0, _cloneDeep["default"])(e);
365
- var node = _e.currentTarget;
366
- var _index = node.getAttribute('v-index') || -1;
367
- var _type = node.getAttribute('v-type');
368
- store.setPopup({
369
- visible: true,
370
- node: e.currentTarget,
371
- content: (0, _jsxRuntime.jsx)(_selectList["default"], {
372
- className: 'purple',
373
- list: filterType,
374
- onChange: function onChange(type) {
375
- closePopup();
376
- // 如果是新增子查询
377
- if (type === _types.Filter_TypeEnum.EXPRESSION) {
378
- handleAdd(_e);
379
- } else if (type === _types.Filter_TypeEnum.NOT_EXISTS || type === _types.Filter_TypeEnum.EXISTS) {
380
- showNotExists(_index, _type, type);
381
- }
382
- }
383
- })
384
- });
385
- }
386
- // const itemDom = (v: MetaFilter_Item, i: number) => {
387
- // if (typeof v === 'string') {
388
- // return (
389
- // <div className={`Sqb-TableName purple-name`} key={i}>
390
- // {v}
391
- // <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>
392
- // <CloseIcon />
393
- // </span>
394
- // </div>
395
- // );
396
- // }
397
- // if (v.type === Filter_TypeEnum.NOT_EXISTS) {
398
- // return (
399
- // <div className={`Sqb-TableName purple-name`} key={i} onClick={(e) => handleUpdate(e, i)}>
400
- // not exitis ( * )
401
- // <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>
402
- // <CloseIcon />
403
- // </span>
404
- // </div>
405
- // );
406
- // } else if (v.type === Filter_TypeEnum.EXPRESSION) {
407
- // return (
408
- // <div className={`Sqb-TableName purple-name`} key={i} onClick={(e) => handleUpdate(e, i)}>
409
- // {v.quotes}
410
- // <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, i)}>
411
- // <CloseIcon />
412
- // </span>
413
- // </div>
414
- // );
415
- // }
416
- // else if (v.type === Filter_TypeEnum.INPUT) {
417
- // // 输入框
418
- // return (
419
- // <div className={cx(`Sqb-TableName notSelected `)}>
420
- // <Input
421
- // className={':Sqb-Custom-input'}
422
- // value={v.operator}
423
- // placeholder={__('SqlQueryBuilder.pleaseEnter')}
424
- // size='large'
425
- // onChange={(val) => {
426
- // handleConstant(val, index);
427
- // }}
428
- // />
429
- // <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>
430
- // <CloseIcon />
431
- // </span>
432
- // </div>
433
- // );
434
- // } else if (v.type === Filter_TypeEnum.OPERATOR) {
435
- // //连接符
436
- // return (
437
- // <Select
438
- // triggerProps={{
439
- // clickToClose: true,
440
- // }}
441
- // value={v.operator}
442
- // triggerElement={(value) => {
443
- // return (
444
- // <div
445
- // className={cx(`Sqb-TableName `, {
446
- // notSelected: !v.operator,
447
- // })}
448
- // >
449
- // {!v.operator && __('customColumn.selectOperator')}
450
- // {v.operator}
451
- // <span style={{ fontSize: 0 }} onClick={(e) => handleDel(e, index)}>
452
- // <CloseIcon />
453
- // </span>
454
- // </div>
455
- // );
456
- // }}
457
- // onChange={(val) => {
458
- // handleConstant(val, index);
459
- // }}
460
- // >
461
- // {operatorList.map((option, index) => (
462
- // <Select.Option key={index + '' + ind} value={option}>
463
- // {option}
464
- // </Select.Option>
465
- // ))}
466
- // </Select>
467
- // );
468
- // }
469
- // };
470
152
  return (0, _jsxRuntime.jsx)(_Wrapper["default"], {
471
153
  className: "Sqb-item",
472
154
  children: (0, _jsxRuntime.jsxs)("div", {
@@ -480,114 +162,15 @@ var Filter = function Filter(props) {
480
162
  }
481
163
  }) : null, (0, _jsxRuntime.jsx)("div", {
482
164
  className: "Sqb-item--content",
483
- children: (0, _jsxRuntime.jsxs)("div", {
484
- className: "Sqb-NotebookCell gray-bg",
485
- children: [filter.map(function (v, i) {
486
- return (0, _jsxRuntime.jsxs)("div", {
487
- className: (0, _classnames["default"])('Sqb-Filter-item', {
488
- hover: ind === i
489
- }),
490
- onMouseEnter: function onMouseEnter(e) {
491
- setInd(i);
492
- },
493
- onMouseLeave: function onMouseLeave() {
494
- setInd(-1);
495
- },
496
- children: [(0, _jsxRuntime.jsx)(_pandora.Select, {
497
- trigger: 'hover',
498
- triggerProps: {
499
- clickToClose: true
500
- },
501
- triggerElement: function triggerElement() {
502
- return (0, _jsxRuntime.jsx)("div", {
503
- className: 'left-arrow',
504
- onClick: addSelectType,
505
- "v-index": i,
506
- "v-type": 'before',
507
- children: (0, _jsxRuntime.jsx)("img", {
508
- src: _arrow["default"]
509
- })
510
- });
511
- },
512
- onChange: function onChange(val) {
513
- addOperator(val, i, 'before');
514
- },
515
- children: options.map(function (option) {
516
- return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
517
- value: option,
518
- children: option
519
- }, option);
520
- })
521
- }), typeof v === 'string' ? (0, _jsxRuntime.jsxs)("div", {
522
- className: "Sqb-TableName purple-name",
523
- children: [v, (0, _jsxRuntime.jsx)("span", {
524
- style: {
525
- fontSize: 0
526
- },
527
- onClick: function onClick(e) {
528
- return handleDel(e, i);
529
- },
530
- children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
531
- })]
532
- }, i) : (0, _jsxRuntime.jsxs)("div", {
533
- className: "Sqb-TableName purple-name",
534
- onClick: function onClick(e) {
535
- return handleUpdate(e, i);
536
- },
537
- children: [v.type === _types.Filter_TypeEnum.NOT_EXISTS ? 'not exitis ( * )' : v.type === _types.Filter_TypeEnum.EXISTS ? 'exitis ( * )' : v.quotes, (0, _jsxRuntime.jsx)("span", {
538
- style: {
539
- fontSize: 0
540
- },
541
- onClick: function onClick(e) {
542
- return handleDel(e, i);
543
- },
544
- children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
545
- })]
546
- }, i), (0, _jsxRuntime.jsx)(_pandora.Select, {
547
- trigger: 'hover',
548
- triggerProps: {
549
- clickToClose: true
550
- },
551
- triggerElement: function triggerElement(value) {
552
- return (0, _jsxRuntime.jsx)("div", {
553
- className: 'right-arrow',
554
- onClick: addSelectType,
555
- "v-index": i,
556
- "v-type": 'after',
557
- children: (0, _jsxRuntime.jsx)("img", {
558
- src: _arrow["default"]
559
- })
560
- });
561
- },
562
- onChange: function onChange(val) {
563
- addOperator(val, i, 'after');
564
- },
565
- children: options.map(function (option) {
566
- return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
567
- value: option,
568
- children: option
569
- }, option);
570
- })
571
- })]
572
- }, i);
573
- }), (0, _jsxRuntime.jsx)("div", {
574
- className: (0, _classnames["default"])("Sqb-TableName purple-name", {
575
- notSelected: notSelected
576
- }),
577
- onClick: addSelectType,
578
- children: notSelected ? (0, _locale.__)('filter.addFiltersToNarrowDownYourAnswers') : (0, _jsxRuntime.jsx)(_icons.AddIcon, {})
579
- }), Array.from(filter).length > 0 && (0, _jsxRuntime.jsxs)("p", {
580
- className: 'Sqb-NotebookCell-preview',
581
- children: ["\u9884\u89C8\uFF1A", filter.map(function (v, i) {
582
- if (typeof v === 'string') {
583
- return v;
584
- } else if (v.type === _types.Filter_TypeEnum.NOT_EXISTS || v.type === _types.Filter_TypeEnum.EXISTS) {
585
- return "".concat((0, _utils.buildSqlQuery)(v.notExists, v.type));
586
- } else {
587
- return v.quotes;
588
- }
589
- }).join(' ')]
590
- })]
165
+ children: (0, _jsxRuntime.jsx)(_formulaList["default"], {
166
+ customTypes: _filterEnum.customTypes,
167
+ operatorList: _filterEnum.operatorList,
168
+ value: filter,
169
+ data: [].concat((0, _toConsumableArray2["default"])(getColumns()), (0, _toConsumableArray2["default"])((0, _cloneDeep["default"])(notExistsColumns || []))),
170
+ exitData: getColumns(),
171
+ onChange: function onChange(val) {
172
+ selectFilter(val);
173
+ }
591
174
  })
592
175
  }), (0, _jsxRuntime.jsx)(_metaIcon["default"], {
593
176
  meta: meta,