@gingkoo/pandora-metabase 1.0.93 → 1.0.94

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.
@@ -16,6 +16,7 @@ require("./index.less");
16
16
  var _formulaList = _interopRequireDefault(require("../formula-list"));
17
17
  var _icons = require("../../icons");
18
18
  var _utils = require("../formula-list/utils");
19
+ var _itemName = _interopRequireDefault(require("../../modules/components/item-name"));
19
20
  var _locale = require("../../../locale");
20
21
  var _utils2 = require("./utils");
21
22
  var _styledComponents = _interopRequireDefault(require("styled-components"));
@@ -134,36 +135,39 @@ var CaseEditor = _react["default"].forwardRef(function (props, ref) {
134
135
  children: "\u8BF7\u5148\u9009\u62E9\u516C\u5F0F\uFF0C\u5207\u6362\u516C\u5F0F\u65F6\u4F1A\u91CD\u7F6E\u53C2\u6570"
135
136
  }), (0, _jsxRuntime.jsx)("div", {
136
137
  className: 'Sqb-NotebookCell formula-name',
137
- children: (0, _jsxRuntime.jsx)(_pandora.Select, {
138
- triggerProps: {
139
- clickToClose: true
140
- },
141
- value: fun.id || fun.name,
142
- triggerElement: function triggerElement(value) {
143
- var _formulaList$fun$id;
144
- return (0, _jsxRuntime.jsx)("div", {
145
- className: (0, _classnames["default"])("Sqb-TableName Sqb-TableName-OPERATOR", {
146
- notSelected: !fun.name
147
- }),
148
- children: fun.id ? (_formulaList$fun$id = formulaList[fun.id]) === null || _formulaList$fun$id === void 0 ? void 0 : _formulaList$fun$id.name : (0, _locale.__)('customColumn.selectFormula')
149
- });
150
- },
151
- onChange: function onChange(val) {
152
- handleFunName(val);
153
- },
154
- children: (_store$formulaTemplat = store.formulaTemplates) === null || _store$formulaTemplat === void 0 ? void 0 : _store$formulaTemplat.map(function (options, index) {
155
- return (0, _jsxRuntime.jsx)(_pandora.Select.OptGroup, {
156
- label: options.name,
157
- children: Array.from(options.children || []).map(function (option, ind) {
158
- return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
159
- value: option.id,
160
- children: option.name
161
- }, option.id || String(option.name + ind));
162
- })
163
- }, index);
164
- // <Select.Option key={index} value={option.name}>
165
- // {option.name}
166
- // </Select.Option>
138
+ children: (0, _jsxRuntime.jsx)(_itemName["default"], {
139
+ isError: (0, _utils2.formulaIsError)(fun, formulaList),
140
+ message: '公式丢失',
141
+ children: (0, _jsxRuntime.jsx)(_pandora.Select, {
142
+ triggerProps: {
143
+ clickToClose: true
144
+ },
145
+ value: fun.id || fun.name,
146
+ triggerElement: function triggerElement(value) {
147
+ return (0, _jsxRuntime.jsx)("div", {
148
+ className: (0, _classnames["default"])("Sqb-TableName Sqb-TableName-OPERATOR", {
149
+ notSelected: !fun.name
150
+ }),
151
+ children: (0, _utils2.formulaName)(fun, formulaList) || (0, _locale.__)('customColumn.selectFormula')
152
+ });
153
+ },
154
+ onChange: function onChange(val) {
155
+ handleFunName(val);
156
+ },
157
+ children: (_store$formulaTemplat = store.formulaTemplates) === null || _store$formulaTemplat === void 0 ? void 0 : _store$formulaTemplat.map(function (options, index) {
158
+ return (0, _jsxRuntime.jsx)(_pandora.Select.OptGroup, {
159
+ label: options.name,
160
+ children: Array.from(options.children || []).map(function (option, ind) {
161
+ return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
162
+ value: option.id,
163
+ children: option.name
164
+ }, option.id || String(option.name + ind));
165
+ })
166
+ }, index);
167
+ // <Select.Option key={index} value={option.name}>
168
+ // {option.name}
169
+ // </Select.Option>
170
+ })
167
171
  })
168
172
  })
169
173
  }), fun.name && (0, _jsxRuntime.jsxs)("div", {
@@ -5,4 +5,6 @@ export declare function getParamActions(params: AtomsItem[], arity?: Arity): {
5
5
  canAdd: boolean;
6
6
  canDel: boolean;
7
7
  };
8
+ export declare const formulaName: (fun: any, formulaList: any) => any;
8
9
  export declare const getQuotes: (fun: any, _args: AtomsItem[], formulaList: any) => string;
10
+ export declare const formulaIsError: (fun: any, formulaList: any) => boolean;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getObjTem = void 0;
6
+ exports.getObjTem = exports.formulaName = exports.formulaIsError = void 0;
7
7
  exports.getParamActions = getParamActions;
8
8
  exports.getTemArgs = exports.getQuotes = void 0;
9
9
  var _types = require("../../../store/types");
@@ -64,8 +64,12 @@ function getParamActions(params, arity) {
64
64
  canDel: len > effectiveMin // 大于 min 才能删
65
65
  };
66
66
  }
67
+ // 获取公式名称 如果找不到 用传入的name
68
+ var formulaName = exports.formulaName = function formulaName(fun, formulaList) {
69
+ var obj = formulaList[fun.id] || formulaList[fun.name];
70
+ return (obj === null || obj === void 0 ? void 0 : obj.name) || fun.name;
71
+ };
67
72
  var getQuotes = exports.getQuotes = function getQuotes(fun, _args, formulaList) {
68
- var _formulaList$fun$id;
69
73
  var quotes = _args === null || _args === void 0 ? void 0 : _args.map(function (v) {
70
74
  var quotes = v.list.map(function (vv, i) {
71
75
  if (vv !== null && vv !== void 0 && vv.quotes) {
@@ -78,5 +82,10 @@ var getQuotes = exports.getQuotes = function getQuotes(fun, _args, formulaList)
78
82
  }).join(' ');
79
83
  return quotes;
80
84
  }).join(' , ');
81
- return ((_formulaList$fun$id = formulaList[fun.id]) === null || _formulaList$fun$id === void 0 ? void 0 : _formulaList$fun$id.name) + ' ( ' + quotes + ' ) ';
85
+ // let obj = formulaList[fun.id] || formulaList[fun.name];
86
+ return formulaName(fun, formulaList) + ' ( ' + quotes + ' ) ';
87
+ };
88
+ var formulaIsError = exports.formulaIsError = function formulaIsError(fun, formulaList) {
89
+ var obj = fun.id ? formulaList[fun.id] : formulaList[fun.name];
90
+ return !(obj !== null && obj !== void 0 && obj.name);
82
91
  };
@@ -40,7 +40,7 @@ var _excluded = ["notExistsToolbar", "toolbar"],
40
40
  _excluded2 = ["subToolbar", "notExistsColumns", "showFields", "isExit", "toolbar"]; // import './index.less';
41
41
  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); }
42
42
  var FormulaList = (0, _react.forwardRef)(function (props, ref) {
43
- var _storage$_metabaseCop, _store$operatorList, _caseList2;
43
+ var _storage$_metabaseCop, _caseList2;
44
44
  // 响应 storage._metabaseCopyItems 变化,保证粘贴按钮能实时显示
45
45
  var _useState = (0, _react.useState)((_storage["default"] === null || _storage["default"] === void 0 || (_storage$_metabaseCop = _storage["default"]._metabaseCopyItems) === null || _storage$_metabaseCop === void 0 ? void 0 : _storage$_metabaseCop.length) || 0),
46
46
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -67,8 +67,6 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
67
67
  onChange = props.onChange,
68
68
  _props$customTypes = props.customTypes,
69
69
  _customTypes = _props$customTypes === void 0 ? _utils3.customTypes : _props$customTypes,
70
- _props$operatorList = props.operatorList,
71
- _operatorList = _props$operatorList === void 0 ? ((_store$operatorList = store.operatorList) === null || _store$operatorList === void 0 ? void 0 : _store$operatorList.length) > 0 ? store.operatorList : _utils3.operatorList : _props$operatorList,
72
70
  _props$isCustom = props.isCustom,
73
71
  isCustom = _props$isCustom === void 0 ? false : _props$isCustom,
74
72
  _props$showPreview = props.showPreview,
@@ -623,20 +621,23 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
623
621
  var itemDom = function itemDom(v, index) {
624
622
  var type = v.type;
625
623
  if (v.type === _types.AtomsTypeEnum.NOT_EXISTS || v.type === _types.AtomsTypeEnum.EXISTS) {
626
- return (0, _jsxRuntime.jsxs)("div", {
627
- className: "Sqb-TableName purple-name",
628
- onClick: function onClick(e) {
629
- return showNotExists(index);
630
- },
631
- children: [v.type, " ( * )", (0, _jsxRuntime.jsx)("span", {
632
- style: {
633
- fontSize: 0
634
- },
624
+ return (0, _jsxRuntime.jsx)(_itemName["default"], {
625
+ isError: (0, _utils2.isExistsError)(v.notExists, store.existsError),
626
+ children: (0, _jsxRuntime.jsxs)("div", {
627
+ className: "Sqb-TableName purple-name",
635
628
  onClick: function onClick(e) {
636
- return handleDel(e, index);
629
+ return showNotExists(index);
637
630
  },
638
- children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
639
- })]
631
+ children: [v.type, " ( * )", (0, _jsxRuntime.jsx)("span", {
632
+ style: {
633
+ fontSize: 0
634
+ },
635
+ onClick: function onClick(e) {
636
+ return handleDel(e, index);
637
+ },
638
+ children: (0, _jsxRuntime.jsx)(_icons.CloseIcon, {})
639
+ })]
640
+ }, index)
640
641
  }, index);
641
642
  } else if (v.type === _types.AtomsTypeEnum.SUB_QUERY) {
642
643
  return (0, _jsxRuntime.jsxs)("div", {
@@ -746,7 +747,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
746
747
  onChange: function onChange(val) {
747
748
  handleConstant(val, index);
748
749
  },
749
- children: _operatorList.map(function (option, index) {
750
+ children: operatorList.map(function (option, index) {
750
751
  return (0, _jsxRuntime.jsx)(_pandora.Select.Option, {
751
752
  value: option,
752
753
  children: option
@@ -756,8 +757,8 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
756
757
  } else if (type === _types.AtomsTypeEnum.CONSTANT) {
757
758
  //常量
758
759
  return (0, _jsxRuntime.jsx)(_itemName["default"], {
759
- isError: !(0, _utils3.getConstantLabel)(store.constantList, v.id || v.val),
760
- message: "\u5E38\u91CF\u5B57\u6BB5\u672A\u80FD\u6B63\u786E\u5BF9\u5E94",
760
+ isError: (v.id || v.val) && !(0, _utils3.getConstantLabel)(store.constantList, v.id || v.val),
761
+ message: "\u5E38\u91CF\u4E22\u5931",
761
762
  children: (0, _jsxRuntime.jsxs)("div", {
762
763
  className: (0, _classnames["default"])("Sqb-TableName", {
763
764
  notSelected: !v.val
@@ -777,7 +778,7 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
777
778
  })
778
779
  }, index);
779
780
  } else if (type === _types.AtomsTypeEnum.EXPRESSION) {
780
- if (v.condition === '早于' && v.rhs.length === 2) {
781
+ if (~['早于', '晚于', ''].indexOf(v.condition) && v.rhs.length > 1) {
781
782
  var _caseList$index$quote;
782
783
  var _caseList = caseList.slice();
783
784
  _caseList[index].rhs = [_caseList[index].rhs[0]];
@@ -808,7 +809,8 @@ var FormulaList = (0, _react.forwardRef)(function (props, ref) {
808
809
  } else if (type === _types.AtomsTypeEnum.FORMULA) {
809
810
  // 公式
810
811
  return (0, _jsxRuntime.jsx)(_itemName["default"], {
811
- isError: (0, _utils2.isError)(v, data),
812
+ isError: (0, _utils2.isError)(v, data) || (0, _utils.formulaIsError)(v, formulaList),
813
+ message: (0, _utils.formulaIsError)(v, formulaList) ? '公式丢失' : '',
812
814
  children: (0, _jsxRuntime.jsxs)("div", {
813
815
  className: (0, _classnames["default"])("Sqb-TableName gray-name"),
814
816
  onClick: function onClick(e) {
@@ -191,10 +191,14 @@ var useStore = function useStore() {
191
191
  _useState66 = (0, _slicedToArray2["default"])(_useState65, 2),
192
192
  isMetabaseCopy = _useState66[0],
193
193
  setIsMetabaseCopy = _useState66[1]; // 是否开启勾选组复制
194
- var _useState67 = (0, _react.useState)(_storage["default"]._metabaseCopyModule || []),
194
+ var _useState67 = (0, _react.useState)([]),
195
195
  _useState68 = (0, _slicedToArray2["default"])(_useState67, 2),
196
- metabaseCopyModule = _useState68[0],
197
- setMetabaseCopyModule = _useState68[1]; // 复制的内容
196
+ existsError = _useState68[0],
197
+ setExistsError = _useState68[1]; // exists 的错误字段
198
+ var _useState69 = (0, _react.useState)(_storage["default"]._metabaseCopyModule || []),
199
+ _useState70 = (0, _slicedToArray2["default"])(_useState69, 2),
200
+ metabaseCopyModule = _useState70[0],
201
+ setMetabaseCopyModule = _useState70[1]; // 复制的内容
198
202
  var setFormulaTemplates = function setFormulaTemplates(data) {
199
203
  var newData = data === null || data === void 0 ? void 0 : data.map(function (v) {
200
204
  var children = v.children.map(function (vv) {
@@ -220,40 +224,62 @@ var useStore = function useStore() {
220
224
  var fetchColumnsFn = (0, _react.useRef)();
221
225
  var fetchChangeFn = (0, _react.useRef)();
222
226
  var fetchDiffFn = (0, _react.useRef)();
227
+ var fetchExistsError = (0, _react.useRef)();
223
228
  var setFetchChangeFn = function setFetchChangeFn(fn) {
224
229
  fetchChangeFn.current = fn;
225
230
  };
226
231
  var setFetchDiffFn = function setFetchDiffFn(fn) {
227
232
  fetchDiffFn.current = fn;
228
233
  };
234
+ var setExistsErrorFn = /*#__PURE__*/function () {
235
+ var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(fn) {
236
+ var data;
237
+ return _regenerator["default"].wrap(function (_context) {
238
+ while (1) switch (_context.prev = _context.next) {
239
+ case 0:
240
+ _context.next = 1;
241
+ return fn();
242
+ case 1:
243
+ data = _context.sent;
244
+ setExistsError(data || []);
245
+ case 2:
246
+ case "end":
247
+ return _context.stop();
248
+ }
249
+ }, _callee);
250
+ }));
251
+ return function setExistsErrorFn(_x) {
252
+ return _ref.apply(this, arguments);
253
+ };
254
+ }();
229
255
  // 获取所有数据表
230
256
  var getModuleDiffCode = /*#__PURE__*/function () {
231
- var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
257
+ var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
232
258
  var oldCode,
233
259
  newCode,
234
260
  data,
235
- _args = arguments;
236
- return _regenerator["default"].wrap(function (_context) {
237
- while (1) switch (_context.prev = _context.next) {
261
+ _args2 = arguments;
262
+ return _regenerator["default"].wrap(function (_context2) {
263
+ while (1) switch (_context2.prev = _context2.next) {
238
264
  case 0:
239
- oldCode = _args.length > 0 && _args[0] !== undefined ? _args[0] : [];
240
- newCode = _args.length > 1 ? _args[1] : undefined;
241
- _context.next = 1;
265
+ oldCode = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : [];
266
+ newCode = _args2.length > 1 ? _args2[1] : undefined;
267
+ _context2.next = 1;
242
268
  return fetchDiffFn.current({
243
269
  oldCode: oldCode,
244
270
  newCode: newCode
245
271
  });
246
272
  case 1:
247
- data = _context.sent;
248
- return _context.abrupt("return", data);
273
+ data = _context2.sent;
274
+ return _context2.abrupt("return", data);
249
275
  case 2:
250
276
  case "end":
251
- return _context.stop();
277
+ return _context2.stop();
252
278
  }
253
- }, _callee);
279
+ }, _callee2);
254
280
  }));
255
281
  return function getModuleDiffCode() {
256
- return _ref.apply(this, arguments);
282
+ return _ref2.apply(this, arguments);
257
283
  };
258
284
  }();
259
285
  var setFetchColumnsFn = function setFetchColumnsFn(fn) {
@@ -294,46 +320,46 @@ var useStore = function useStore() {
294
320
  }, [sourceList, isExit, tableFlat]);
295
321
  // 获取所有数据表
296
322
  var getSourceTable = /*#__PURE__*/function () {
297
- var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(source) {
323
+ var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(source) {
298
324
  var results;
299
- return _regenerator["default"].wrap(function (_context3) {
300
- while (1) switch (_context3.prev = _context3.next) {
325
+ return _regenerator["default"].wrap(function (_context4) {
326
+ while (1) switch (_context4.prev = _context4.next) {
301
327
  case 0:
302
- _context3.next = 1;
328
+ _context4.next = 1;
303
329
  return Promise.all(source.map(/*#__PURE__*/function () {
304
- var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(v) {
330
+ var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(v) {
305
331
  var tables;
306
- return _regenerator["default"].wrap(function (_context2) {
307
- while (1) switch (_context2.prev = _context2.next) {
332
+ return _regenerator["default"].wrap(function (_context3) {
333
+ while (1) switch (_context3.prev = _context3.next) {
308
334
  case 0:
309
- _context2.next = 1;
335
+ _context3.next = 1;
310
336
  return fetchDataset(v.datasourceId);
311
337
  case 1:
312
- tables = _context2.sent;
313
- return _context2.abrupt("return", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
338
+ tables = _context3.sent;
339
+ return _context3.abrupt("return", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, v), {}, {
314
340
  children: tables
315
341
  }));
316
342
  case 2:
317
343
  case "end":
318
- return _context2.stop();
344
+ return _context3.stop();
319
345
  }
320
- }, _callee2);
346
+ }, _callee3);
321
347
  }));
322
- return function (_x2) {
323
- return _ref3.apply(this, arguments);
348
+ return function (_x3) {
349
+ return _ref4.apply(this, arguments);
324
350
  };
325
351
  }()));
326
352
  case 1:
327
- results = _context3.sent;
353
+ results = _context4.sent;
328
354
  setSourceTable(results || []);
329
355
  case 2:
330
356
  case "end":
331
- return _context3.stop();
357
+ return _context4.stop();
332
358
  }
333
- }, _callee3);
359
+ }, _callee4);
334
360
  }));
335
- return function getSourceTable(_x) {
336
- return _ref2.apply(this, arguments);
361
+ return function getSourceTable(_x2) {
362
+ return _ref3.apply(this, arguments);
337
363
  };
338
364
  }();
339
365
  // const showMainColumn = useMemo(() => {
@@ -352,41 +378,41 @@ var useStore = function useStore() {
352
378
  return !!~toolbar.indexOf(name);
353
379
  };
354
380
  var fetchDataset = /*#__PURE__*/function () {
355
- var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(datasourceId) {
381
+ var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(datasourceId) {
356
382
  var tables, _tables;
357
- return _regenerator["default"].wrap(function (_context4) {
358
- while (1) switch (_context4.prev = _context4.next) {
383
+ return _regenerator["default"].wrap(function (_context5) {
384
+ while (1) switch (_context5.prev = _context5.next) {
359
385
  case 0:
360
386
  tables = getDataset(datasourceId);
361
387
  if (!tables.length) {
362
- _context4.next = 1;
388
+ _context5.next = 1;
363
389
  break;
364
390
  }
365
- return _context4.abrupt("return", tables);
391
+ return _context5.abrupt("return", tables);
366
392
  case 1:
367
- _context4.next = 2;
393
+ _context5.next = 2;
368
394
  return fetchDatasetFn.current(datasourceId, {
369
395
  isExit: isExit
370
396
  });
371
397
  case 2:
372
- _tables = _context4.sent;
398
+ _tables = _context5.sent;
373
399
  setDataset(datasourceId, _tables);
374
- return _context4.abrupt("return", _tables);
400
+ return _context5.abrupt("return", _tables);
375
401
  case 3:
376
402
  case "end":
377
- return _context4.stop();
403
+ return _context5.stop();
378
404
  }
379
- }, _callee4);
405
+ }, _callee5);
380
406
  }));
381
- return function fetchDataset(_x3) {
382
- return _ref4.apply(this, arguments);
407
+ return function fetchDataset(_x4) {
408
+ return _ref5.apply(this, arguments);
383
409
  };
384
410
  }();
385
411
  // 根据数据源id查询集合列表
386
412
  // fetchDataset():
387
413
  // 查询表字段
388
414
  var fetchColumns = /*#__PURE__*/function () {
389
- var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(table, datasourceId) {
415
+ var _ref6 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(table, datasourceId) {
390
416
  var _columns2;
391
417
  var oldColumns,
392
418
  callback,
@@ -404,15 +430,15 @@ var useStore = function useStore() {
404
430
  tableName,
405
431
  columns,
406
432
  _columns,
407
- _args5 = arguments;
408
- return _regenerator["default"].wrap(function (_context5) {
409
- while (1) switch (_context5.prev = _context5.next) {
433
+ _args6 = arguments;
434
+ return _regenerator["default"].wrap(function (_context6) {
435
+ while (1) switch (_context6.prev = _context6.next) {
410
436
  case 0:
411
- oldColumns = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : [];
412
- callback = _args5.length > 3 ? _args5[3] : undefined;
413
- isSelect = _args5.length > 4 && _args5[4] !== undefined ? _args5[4] : isSelectFields;
414
- _isSubquery = _args5.length > 5 && _args5[5] !== undefined ? _args5[5] : isSubquery;
415
- _isExit = _args5.length > 6 && _args5[6] !== undefined ? _args5[6] : isExit;
437
+ oldColumns = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : [];
438
+ callback = _args6.length > 3 ? _args6[3] : undefined;
439
+ isSelect = _args6.length > 4 && _args6[4] !== undefined ? _args6[4] : isSelectFields;
440
+ _isSubquery = _args6.length > 5 && _args6[5] !== undefined ? _args6[5] : isSubquery;
441
+ _isExit = _args6.length > 6 && _args6[6] !== undefined ? _args6[6] : isExit;
416
442
  // 获取之前选中的数据
417
443
  oldObj = {};
418
444
  selectId = oldColumns.filter(function (v) {
@@ -431,15 +457,15 @@ var useStore = function useStore() {
431
457
  tableName = table.name;
432
458
  columns = getColumns(tableName);
433
459
  if (columns.length) {
434
- _context5.next = 2;
460
+ _context6.next = 2;
435
461
  break;
436
462
  }
437
- _context5.next = 1;
463
+ _context6.next = 1;
438
464
  return fetchColumnsFn.current(extra, datasourceId, {
439
465
  isExit: _isExit
440
466
  });
441
467
  case 1:
442
- columns = _context5.sent;
468
+ columns = _context6.sent;
443
469
  setColumns(tableName, columns);
444
470
  case 2:
445
471
  _columns = (_columns2 = columns) === null || _columns2 === void 0 ? void 0 : _columns2.map(function (v) {
@@ -454,26 +480,26 @@ var useStore = function useStore() {
454
480
  typeof callback === 'function' && callback(_columns);
455
481
  case 3:
456
482
  case "end":
457
- return _context5.stop();
483
+ return _context6.stop();
458
484
  }
459
- }, _callee5);
485
+ }, _callee6);
460
486
  }));
461
- return function fetchColumns(_x4, _x5) {
462
- return _ref5.apply(this, arguments);
487
+ return function fetchColumns(_x5, _x6) {
488
+ return _ref6.apply(this, arguments);
463
489
  };
464
490
  }();
465
491
  var setMeta = /*#__PURE__*/function () {
466
- var _ref6 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(curData, groupInd) {
492
+ var _ref7 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(curData, groupInd) {
467
493
  var changeObj,
468
494
  _metaList,
469
495
  newMeta,
470
496
  isChange,
471
- _args6 = arguments;
472
- return _regenerator["default"].wrap(function (_context6) {
473
- while (1) switch (_context6.prev = _context6.next) {
497
+ _args7 = arguments;
498
+ return _regenerator["default"].wrap(function (_context7) {
499
+ while (1) switch (_context7.prev = _context7.next) {
474
500
  case 0:
475
- changeObj = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : {};
476
- _metaList = _args6.length > 3 && _args6[3] !== undefined ? _args6[3] : metaList;
501
+ changeObj = _args7.length > 2 && _args7[2] !== undefined ? _args7[2] : {};
502
+ _metaList = _args7.length > 3 && _args7[3] !== undefined ? _args7[3] : metaList;
477
503
  newMeta = (0, _cloneDeep["default"])(_metaList);
478
504
  if (newMeta[groupInd]) {
479
505
  newMeta[groupInd].list = curData;
@@ -481,29 +507,29 @@ var useStore = function useStore() {
481
507
  }
482
508
  // 过滤掉初始化
483
509
  if (!(changeObj === 'init')) {
484
- _context6.next = 1;
510
+ _context7.next = 1;
485
511
  break;
486
512
  }
487
- return _context6.abrupt("return");
513
+ return _context7.abrupt("return");
488
514
  case 1:
489
- _context6.next = 2;
515
+ _context7.next = 2;
490
516
  return fetchChangeFn.current((0, _utils.splitByUnion)(_metaList), changeObj, {
491
517
  isExit: isExit
492
518
  });
493
519
  case 2:
494
- isChange = _context6.sent;
520
+ isChange = _context7.sent;
495
521
  // 是否还原
496
522
  if (isChange === false) {
497
523
  _setMeta(_metaList);
498
524
  }
499
525
  case 3:
500
526
  case "end":
501
- return _context6.stop();
527
+ return _context7.stop();
502
528
  }
503
- }, _callee6);
529
+ }, _callee7);
504
530
  }));
505
- return function setMeta(_x6, _x7) {
506
- return _ref6.apply(this, arguments);
531
+ return function setMeta(_x7, _x8) {
532
+ return _ref7.apply(this, arguments);
507
533
  };
508
534
  }();
509
535
  // 回显
@@ -878,7 +904,9 @@ var useStore = function useStore() {
878
904
  isMetabaseCopy: isMetabaseCopy,
879
905
  setIsMetabaseCopy: setIsMetabaseCopy,
880
906
  operatorList: operatorList,
881
- setOperatorList: setOperatorList
907
+ setOperatorList: setOperatorList,
908
+ setExistsErrorFn: setExistsErrorFn,
909
+ existsError: existsError
882
910
  };
883
911
  };
884
912
  var _default = exports["default"] = useStore;
@@ -3,12 +3,6 @@ import './locale/en';
3
3
  import './locale/zh';
4
4
  import type { MetabaseProps, SqlVisionBuilderRef, DatasourceType } from './types';
5
5
  import type { MetaListType, ToolbarType } from './store/types';
6
- /**
7
- * 规则
8
- * 1、主表一换 下面全部删除
9
- * 2、关联如果动了表或者删除了 下面的关联都删除
10
- * 3、关联如果动了表或者删除了 下面对应排序用到的对应的字段也删除 todo. 未完成 因为有可能关联里面选一样的表 还不知道怎么搞
11
- */
12
6
  declare const SqlVisionBuilder: React.ForwardRefExoticComponent<MetabaseProps & React.RefAttributes<SqlVisionBuilderRef>>;
13
7
  export default SqlVisionBuilder;
14
8
  export { MetabaseProps, DatasourceType, MetaListType, ToolbarType, SqlVisionBuilderRef };
package/lib/cjs/index.js CHANGED
@@ -27,6 +27,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
27
27
  * 2、关联如果动了表或者删除了 下面的关联都删除
28
28
  * 3、关联如果动了表或者删除了 下面对应排序用到的对应的字段也删除 todo. 未完成 因为有可能关联里面选一样的表 还不知道怎么搞
29
29
  */
30
+ var EMPTY_ARRAY = [];
30
31
  var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
31
32
  var _props$loading = props.loading,
32
33
  loading = _props$loading === void 0 ? false : _props$loading,
@@ -36,6 +37,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
36
37
  getColumns = props.getColumns,
37
38
  onChange = props.onChange,
38
39
  getModuleDiffCode = props.getModuleDiffCode,
40
+ getExistsError = props.getExistsError,
39
41
  _props$tableNameTpl = props.tableNameTpl,
40
42
  tableNameTpl = _props$tableNameTpl === void 0 ? '${name}' : _props$tableNameTpl,
41
43
  _props$fieldNameTpl = props.fieldNameTpl,
@@ -43,11 +45,11 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
43
45
  _props$toolbar = props.toolbar,
44
46
  toolbar = _props$toolbar === void 0 ? ['filter', 'summarize', 'joinData', 'customColumn', 'sort', 'rowLimit'] : _props$toolbar,
45
47
  _props$value = props.value,
46
- value = _props$value === void 0 ? [] : _props$value,
48
+ value = _props$value === void 0 ? EMPTY_ARRAY : _props$value,
47
49
  _props$sourceList = props.sourceList,
48
- sourceList = _props$sourceList === void 0 ? [] : _props$sourceList,
50
+ sourceList = _props$sourceList === void 0 ? EMPTY_ARRAY : _props$sourceList,
49
51
  _props$exitSourceList = props.exitSourceList,
50
- exitSourceList = _props$exitSourceList === void 0 ? [] : _props$exitSourceList,
52
+ exitSourceList = _props$exitSourceList === void 0 ? EMPTY_ARRAY : _props$exitSourceList,
51
53
  _props$showSubquery = props.showSubquery,
52
54
  showSubquery = _props$showSubquery === void 0 ? true : _props$showSubquery,
53
55
  _props$subShowSubquer = props.subShowSubquery,
@@ -80,13 +82,14 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
80
82
  _props$moduleCopy = props.moduleCopy,
81
83
  moduleCopy = _props$moduleCopy === void 0 ? false : _props$moduleCopy,
82
84
  _props$operatorList = props.operatorList,
83
- operatorList = _props$operatorList === void 0 ? [] : _props$operatorList;
85
+ operatorList = _props$operatorList === void 0 ? EMPTY_ARRAY : _props$operatorList;
84
86
  var store = (0, _useState["default"])();
85
87
  (0, _react.useEffect)(function () {
86
88
  getTables && store.setFetchDatasetFn(getTables);
87
89
  getColumns && store.setFetchColumnsFn(getColumns);
88
90
  onChange && store.setFetchChangeFn(onChange);
89
91
  getModuleDiffCode && store.setFetchDiffFn(getModuleDiffCode);
92
+ getExistsError && store.setExistsErrorFn(getExistsError);
90
93
  }, []);
91
94
  (0, _react.useEffect)(function () {
92
95
  store.setProps(props);
@@ -122,7 +125,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
122
125
  store.setModuleDiff(moduleDiff);
123
126
  store.setIsSubquery(isSubquery);
124
127
  store.setModuleCopy(moduleCopy);
125
- store.setOperatorList(operatorList);
128
+ store.setOperatorList(operatorList || []);
126
129
  }, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType, isExit, tableEnableAlias, fieldEnableAlias, groupByEnableAlias, isSelectFields, tableFlat, copyType, metabaseCopy, moduleDiff, isSubquery, moduleCopy, operatorList]);
127
130
  _react["default"].useImperativeHandle(ref, function () {
128
131
  return {
@@ -59,6 +59,7 @@ export interface MetabaseProps {
59
59
  oldCode: string;
60
60
  newCode: string;
61
61
  }>;
62
+ getExistsError?: () => Promise<any[]>;
62
63
  operatorList?: any[];
63
64
  }
64
65
  export interface OptionItem {