@gingkoo/pandora-metabase 1.0.151 → 1.0.153

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 (53) hide show
  1. package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.d.ts +2 -1
  2. package/lib/cjs/components/dialog/formula-list/CaseWhenGroup.js +7 -5
  3. package/lib/cjs/components/dialog/formula-list/LogicGroup.d.ts +2 -1
  4. package/lib/cjs/components/dialog/formula-list/LogicGroup.js +4 -2
  5. package/lib/cjs/components/dialog/formula-list/index.js +23 -14
  6. package/lib/cjs/components/dialog/select-column/index.d.ts +2 -1
  7. package/lib/cjs/components/dialog/select-column/index.js +10 -1
  8. package/lib/cjs/components/metabase/index.js +30 -2
  9. package/lib/cjs/components/modules/components/header.js +1 -1
  10. package/lib/cjs/components/modules/components/item-name.js +4 -1
  11. package/lib/cjs/components/modules/components/item-wrapper.js +1 -1
  12. package/lib/cjs/components/modules/components/meta-icon.js +4 -2
  13. package/lib/cjs/components/modules/custom-column.js +2 -2
  14. package/lib/cjs/components/modules/join-data.js +40 -41
  15. package/lib/cjs/components/modules/permission-table.js +1 -0
  16. package/lib/cjs/components/modules/row-limit.js +1 -0
  17. package/lib/cjs/components/modules/sort.js +2 -2
  18. package/lib/cjs/components/modules/summarize/group-by.js +6 -3
  19. package/lib/cjs/components/modules/summarize/select-index.js +3 -3
  20. package/lib/cjs/components/modules/table-data.js +6 -4
  21. package/lib/cjs/components/modules/union.js +1 -1
  22. package/lib/cjs/hooks/use-state.js +66 -52
  23. package/lib/cjs/index.js +7 -2
  24. package/lib/cjs/types.d.ts +1 -0
  25. package/lib/cjs/utils.d.ts +2 -0
  26. package/lib/cjs/utils.js +4 -4
  27. package/lib/es/components/dialog/formula-list/CaseWhenGroup.d.ts +2 -1
  28. package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +7 -5
  29. package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +2 -1
  30. package/lib/es/components/dialog/formula-list/LogicGroup.js +4 -2
  31. package/lib/es/components/dialog/formula-list/index.js +24 -15
  32. package/lib/es/components/dialog/select-column/index.d.ts +2 -1
  33. package/lib/es/components/dialog/select-column/index.js +10 -1
  34. package/lib/es/components/metabase/index.js +30 -2
  35. package/lib/es/components/modules/components/header.js +1 -1
  36. package/lib/es/components/modules/components/item-name.js +4 -1
  37. package/lib/es/components/modules/components/item-wrapper.js +1 -1
  38. package/lib/es/components/modules/components/meta-icon.js +4 -2
  39. package/lib/es/components/modules/custom-column.js +2 -2
  40. package/lib/es/components/modules/join-data.js +40 -41
  41. package/lib/es/components/modules/permission-table.js +1 -0
  42. package/lib/es/components/modules/row-limit.js +1 -0
  43. package/lib/es/components/modules/sort.js +2 -2
  44. package/lib/es/components/modules/summarize/group-by.js +7 -4
  45. package/lib/es/components/modules/summarize/select-index.js +3 -3
  46. package/lib/es/components/modules/table-data.js +6 -4
  47. package/lib/es/components/modules/union.js +1 -1
  48. package/lib/es/hooks/use-state.js +66 -52
  49. package/lib/es/index.js +7 -2
  50. package/lib/es/types.d.ts +1 -0
  51. package/lib/es/utils.d.ts +2 -0
  52. package/lib/es/utils.js +2 -1
  53. package/package.json +1 -1
@@ -28,6 +28,7 @@ var PermissionTable = function PermissionTable(props) {
28
28
  var _getHelper = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
29
29
  prevTables = _getHelper.prevTables;
30
30
  function selectTable(e) {
31
+ if (store.snapshotMode) return;
31
32
  var _getHelper2 = (0, _utils.getHelper)(store.metaList[groupIndex].list, meta),
32
33
  ExistAboveGroupBy = _getHelper2.ExistAboveGroupBy,
33
34
  prevList = _getHelper2.prevList,
@@ -21,6 +21,7 @@ var RowLimit = function RowLimit(props) {
21
21
  var store = (0, _useProvider.useStore)();
22
22
  var index = (0, _utils.findIndex)(store.metaList[groupIndex].list, meta);
23
23
  function handleChange(inputValue) {
24
+ if (store.snapshotMode) return;
24
25
  var newMeta = store.metaList[groupIndex].list.slice();
25
26
  newMeta[index].limit = inputValue;
26
27
  store.setMeta(newMeta, groupIndex);
@@ -207,7 +207,7 @@ var Sort = function Sort(props) {
207
207
  onClick: function onClick() {
208
208
  return handleSort(i);
209
209
  },
210
- children: [v.sort === _enum.SortEnum.asc ? (0, _jsxRuntime.jsx)(_icons.UpArrowIcon, {}) : (0, _jsxRuntime.jsx)(_icons.DownArrowIcon, {}), getName(v.expression), (0, _jsxRuntime.jsx)("span", {
210
+ children: [v.sort === _enum.SortEnum.asc ? (0, _jsxRuntime.jsx)(_icons.UpArrowIcon, {}) : (0, _jsxRuntime.jsx)(_icons.DownArrowIcon, {}), getName(v.expression), !store.snapshotMode && (0, _jsxRuntime.jsx)("span", {
211
211
  style: {
212
212
  fontSize: 0
213
213
  },
@@ -219,7 +219,7 @@ var Sort = function Sort(props) {
219
219
  }, i)
220
220
  })
221
221
  }, i);
222
- }), (0, _jsxRuntime.jsx)("div", {
222
+ }), !store.snapshotMode && (0, _jsxRuntime.jsx)("div", {
223
223
  className: "Sqb-TableName gray-name",
224
224
  onClick: addSortColumn,
225
225
  children: (0, _jsxRuntime.jsx)(_icons.AddIcon, {})
@@ -32,6 +32,9 @@ var _getSummaryText = function getSummaryText() {
32
32
  var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
33
33
  var itemToText = function itemToText(item) {
34
34
  if (!item) return '';
35
+ if (item.type === _types.AtomsTypeEnum.FIELD || item.type === _types.AtomsTypeEnum.EXPRESSION || item.type === _types.AtomsTypeEnum.FORMULA || item.type === _types.AtomsTypeEnum.COLLECTION || item.type === _types.AtomsTypeEnum.CASE_WHEN || item.type === _types.AtomsTypeEnum.AND_OR) {
36
+ return (0, _utils.getAtomDisplayText)(item);
37
+ }
35
38
  if (item.quotes) return item.quotes;
36
39
  if (item.fieldName) return item.fieldAlias || item.fieldName;
37
40
  if (item.type === _types.AtomsTypeEnum.FORMULA) {
@@ -525,7 +528,7 @@ var GroupBy = function GroupBy(props) {
525
528
  return handleUpdate(e, i);
526
529
  },
527
530
  children: [v.quotes && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
528
- children: store.groupByEnableAlias && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
531
+ children: store.groupByEnableAlias && !store.snapshotMode && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
529
532
  title: !(0, _utils.isValidSQLAlias)(v === null || v === void 0 ? void 0 : v.fieldAlias) ? (0, _locale.__)('SqlQueryBuilder.aliasForRules') : (0, _locale.__)('SqlQueryBuilder.alias'),
530
533
  children: (0, _jsxRuntime.jsx)(_pandora.Button, {
531
534
  className: (0, _classnames["default"])(':Sqb-TableName-as :Sqb-TableName green-name', (0, _defineProperty2["default"])({}, 'isError', !(0, _utils.isValidSQLAlias)(v === null || v === void 0 ? void 0 : v.fieldAlias))),
@@ -540,7 +543,7 @@ var GroupBy = function GroupBy(props) {
540
543
  }
541
544
  })
542
545
  })
543
- }), "".concat(v.quotes, " ").concat(v.fieldAlias ? "as ".concat(v.fieldAlias) : ''), (0, _jsxRuntime.jsx)("span", {
546
+ }), "".concat(v.quotes, " ").concat(v.fieldAlias ? "as ".concat(v.fieldAlias) : ''), !store.snapshotMode && (0, _jsxRuntime.jsx)("span", {
544
547
  style: {
545
548
  fontSize: 0
546
549
  },
@@ -552,7 +555,7 @@ var GroupBy = function GroupBy(props) {
552
555
  })
553
556
  })
554
557
  }, i);
555
- }), (0, _jsxRuntime.jsx)("div", {
558
+ }), !store.snapshotMode && (0, _jsxRuntime.jsx)("div", {
556
559
  className: (0, _classnames["default"])("Sqb-TableName green-name", {
557
560
  notSelected: notBySelected
558
561
  }),
@@ -427,7 +427,7 @@ var SelectIndex = function SelectIndex(props) {
427
427
  return handleUpdate(e, i);
428
428
  },
429
429
  children: [v.quotes && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
430
- children: store.groupByEnableAlias && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
430
+ children: store.groupByEnableAlias && !store.snapshotMode && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
431
431
  title: !(0, _utils.isValidSQLAlias)(v === null || v === void 0 ? void 0 : v.fieldAlias) ? (0, _locale.__)('SqlQueryBuilder.aliasForRules') : (0, _locale.__)('SqlQueryBuilder.alias'),
432
432
  children: (0, _jsxRuntime.jsx)(_pandora.Button, {
433
433
  className: (0, _classnames["default"])(':Sqb-TableName-as :Sqb-TableName green-name', (0, _defineProperty2["default"])({}, 'isError', !(0, _utils.isValidSQLAlias)(v === null || v === void 0 ? void 0 : v.fieldAlias))),
@@ -442,7 +442,7 @@ var SelectIndex = function SelectIndex(props) {
442
442
  }
443
443
  })
444
444
  })
445
- }), "".concat(v.quotes, " ").concat(v.fieldAlias ? "as ".concat(v.fieldAlias) : ''), (0, _jsxRuntime.jsx)("span", {
445
+ }), "".concat(v.quotes, " ").concat(v.fieldAlias ? "as ".concat(v.fieldAlias) : ''), !store.snapshotMode && (0, _jsxRuntime.jsx)("span", {
446
446
  style: {
447
447
  fontSize: 0
448
448
  },
@@ -454,7 +454,7 @@ var SelectIndex = function SelectIndex(props) {
454
454
  })
455
455
  })
456
456
  }, i);
457
- }), (0, _jsxRuntime.jsx)("div", {
457
+ }), !store.snapshotMode && (0, _jsxRuntime.jsx)("div", {
458
458
  className: (0, _classnames["default"])("Sqb-TableName green-name", {
459
459
  notSelected: notGroupSelected
460
460
  }),
@@ -85,7 +85,7 @@ var TableData = function TableData(props) {
85
85
  }, 0);
86
86
  }, [meta]);
87
87
  function selectTable(e) {
88
- !meta.readonly && store.setPopup({
88
+ !meta.readonly && !store.snapshotMode && store.setPopup({
89
89
  visible: true,
90
90
  node: e.currentTarget,
91
91
  content: (0, _jsxRuntime.jsx)(_dialog.SelectTable, {
@@ -128,6 +128,7 @@ var TableData = function TableData(props) {
128
128
  groupIndex: groupIndex,
129
129
  table: meta.table,
130
130
  metaIndex: 0,
131
+ readonly: store.snapshotMode,
131
132
  data: columns,
132
133
  onChange: function onChange(data, newMetaList) {
133
134
  var _newMetaList = newMetaList || store.metaList[groupIndex].list.slice();
@@ -310,7 +311,7 @@ var TableData = function TableData(props) {
310
311
  },
311
312
  children: [subQuerySelected && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
312
313
  children: function () {
313
- var showButton = store.tableEnableAlias || tableIsError() && isDel;
314
+ var showButton = !store.snapshotMode && (store.tableEnableAlias || tableIsError() && isDel);
314
315
  var icon = isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
315
316
  return showButton ? (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
316
317
  title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
@@ -352,7 +353,7 @@ var TableData = function TableData(props) {
352
353
  onClick: selectTable,
353
354
  children: [selected && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
354
355
  children: function () {
355
- var showButton = store.tableEnableAlias || tableIsError() && isDel;
356
+ var showButton = !store.snapshotMode && (store.tableEnableAlias || tableIsError() && isDel);
356
357
  var icon = isDel ? (0, _jsxRuntime.jsx)(_pandoraIcons.ExclamationCircleFill, {}) : store.tableEnableAlias ? 'As' : '';
357
358
  return showButton ? (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
358
359
  title: (0, _locale.__)(tableIsError() ? isDel ? 'metabase.verify' : 'SqlQueryBuilder.repeatAlias' : 'SqlQueryBuilder.alias'),
@@ -384,7 +385,7 @@ var TableData = function TableData(props) {
384
385
  }()
385
386
  }), selected ? "".concat(meta.table.datasourceName, ".").concat(meta.table.name, " ").concat((_meta$table7 = meta.table) !== null && _meta$table7 !== void 0 && _meta$table7.alias && store.tableEnableAlias ? "as ".concat((_meta$table8 = meta.table) === null || _meta$table8 === void 0 ? void 0 : _meta$table8.alias) : '') : (0, _locale.__)('SqlQueryBuilder.pickTable')]
386
387
  })
387
- }), store.showSubquery && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
388
+ }), store.showSubquery && (!store.snapshotMode || meta.isSubquery) && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
388
389
  title: (0, _locale.__)('SqlQueryBuilder.switchSubQuery'),
389
390
  children: (0, _jsxRuntime.jsx)(_pandora.Button, {
390
391
  disabled: meta.readonly,
@@ -396,6 +397,7 @@ var TableData = function TableData(props) {
396
397
  })
397
398
  }), selected && store.showFields && (!store.isExit || store.isSubquery) && ((_store$showMainColumn = store.showMainColumn[groupIndex]) === null || _store$showMainColumn === void 0 ? void 0 : _store$showMainColumn.showColumn) && (0, _jsxRuntime.jsx)("div", {
398
399
  className: "Sqb-TableColumns",
400
+ "data-sqb-snapshot-allow": 'true',
399
401
  onClick: selectColumns,
400
402
  children: (0, _locale.__)('SqlQueryBuilder.columns')
401
403
  })]
@@ -27,7 +27,7 @@ var RowLimit = function RowLimit(props) {
27
27
  groupIndex = props.groupIndex;
28
28
  var store = (0, _useProvider.useStore)();
29
29
  function selectOperator(e) {
30
- !meta.readonly && store.setPopup({
30
+ !meta.readonly && !store.snapshotMode && store.setPopup({
31
31
  visible: true,
32
32
  node: e.currentTarget,
33
33
  content: (0, _jsxRuntime.jsx)(_selectList["default"], {
@@ -166,80 +166,84 @@ var useStore = function useStore() {
166
166
  _useState50 = (0, _slicedToArray2["default"])(_useState49, 2),
167
167
  tableFlat = _useState50[0],
168
168
  setTableFlat = _useState50[1];
169
- var _useState51 = (0, _react.useState)([]),
169
+ var _useState51 = (0, _react.useState)(false),
170
170
  _useState52 = (0, _slicedToArray2["default"])(_useState51, 2),
171
- sourceTable = _useState52[0],
172
- setSourceTable = _useState52[1];
171
+ snapshotMode = _useState52[0],
172
+ setSnapshotMode = _useState52[1];
173
173
  var _useState53 = (0, _react.useState)([]),
174
174
  _useState54 = (0, _slicedToArray2["default"])(_useState53, 2),
175
- operatorList = _useState54[0],
176
- setOperatorList = _useState54[1];
175
+ sourceTable = _useState54[0],
176
+ setSourceTable = _useState54[1];
177
177
  var _useState55 = (0, _react.useState)([]),
178
178
  _useState56 = (0, _slicedToArray2["default"])(_useState55, 2),
179
- copyType = _useState56[0],
180
- setCopyType = _useState56[1];
181
- var _useState57 = (0, _react.useState)(false),
179
+ operatorList = _useState56[0],
180
+ setOperatorList = _useState56[1];
181
+ var _useState57 = (0, _react.useState)([]),
182
182
  _useState58 = (0, _slicedToArray2["default"])(_useState57, 2),
183
- metabaseCopy = _useState58[0],
184
- setMetabaseCopy = _useState58[1];
183
+ copyType = _useState58[0],
184
+ setCopyType = _useState58[1];
185
185
  var _useState59 = (0, _react.useState)(false),
186
186
  _useState60 = (0, _slicedToArray2["default"])(_useState59, 2),
187
- moduleDiff = _useState60[0],
188
- setModuleDiff = _useState60[1];
187
+ metabaseCopy = _useState60[0],
188
+ setMetabaseCopy = _useState60[1];
189
189
  var _useState61 = (0, _react.useState)(false),
190
190
  _useState62 = (0, _slicedToArray2["default"])(_useState61, 2),
191
- showFormulaSql = _useState62[0],
192
- setShowFormulaSql = _useState62[1];
191
+ moduleDiff = _useState62[0],
192
+ setModuleDiff = _useState62[1];
193
193
  var _useState63 = (0, _react.useState)(false),
194
194
  _useState64 = (0, _slicedToArray2["default"])(_useState63, 2),
195
- showFormulaDiff = _useState64[0],
196
- setShowFormulaDiff = _useState64[1];
197
- var _useState65 = (0, _react.useState)(true),
195
+ showFormulaSql = _useState64[0],
196
+ setShowFormulaSql = _useState64[1];
197
+ var _useState65 = (0, _react.useState)(false),
198
198
  _useState66 = (0, _slicedToArray2["default"])(_useState65, 2),
199
- matchBrackets = _useState66[0],
200
- setMatchBrackets = _useState66[1];
201
- var _useState67 = (0, _react.useState)(false),
199
+ showFormulaDiff = _useState66[0],
200
+ setShowFormulaDiff = _useState66[1];
201
+ var _useState67 = (0, _react.useState)(true),
202
202
  _useState68 = (0, _slicedToArray2["default"])(_useState67, 2),
203
- hasFormulaSqlCode = _useState68[0],
204
- setHasFormulaSqlCode = _useState68[1];
203
+ matchBrackets = _useState68[0],
204
+ setMatchBrackets = _useState68[1];
205
205
  var _useState69 = (0, _react.useState)(false),
206
206
  _useState70 = (0, _slicedToArray2["default"])(_useState69, 2),
207
- hasFormulaDiffCode = _useState70[0],
208
- setHasFormulaDiffCode = _useState70[1];
209
- var _useState71 = (0, _react.useState)([]),
207
+ hasFormulaSqlCode = _useState70[0],
208
+ setHasFormulaSqlCode = _useState70[1];
209
+ var _useState71 = (0, _react.useState)(false),
210
210
  _useState72 = (0, _slicedToArray2["default"])(_useState71, 2),
211
- sourceData = _useState72[0],
212
- setSourceData = _useState72[1];
213
- var _useState73 = (0, _react.useState)(false),
211
+ hasFormulaDiffCode = _useState72[0],
212
+ setHasFormulaDiffCode = _useState72[1];
213
+ var _useState73 = (0, _react.useState)([]),
214
214
  _useState74 = (0, _slicedToArray2["default"])(_useState73, 2),
215
- moduleCopy = _useState74[0],
216
- setModuleCopy = _useState74[1];
215
+ sourceData = _useState74[0],
216
+ setSourceData = _useState74[1];
217
217
  var _useState75 = (0, _react.useState)(false),
218
218
  _useState76 = (0, _slicedToArray2["default"])(_useState75, 2),
219
- isMetabaseCopy = _useState76[0],
220
- setIsMetabaseCopy = _useState76[1];
219
+ moduleCopy = _useState76[0],
220
+ setModuleCopy = _useState76[1];
221
221
  var _useState77 = (0, _react.useState)(false),
222
222
  _useState78 = (0, _slicedToArray2["default"])(_useState77, 2),
223
- joinAliasConflictCheck = _useState78[0],
224
- setJoinAliasConflictCheck = _useState78[1];
225
- var _useState79 = (0, _react.useState)([]),
223
+ isMetabaseCopy = _useState78[0],
224
+ setIsMetabaseCopy = _useState78[1];
225
+ var _useState79 = (0, _react.useState)(false),
226
226
  _useState80 = (0, _slicedToArray2["default"])(_useState79, 2),
227
- existsError = _useState80[0],
228
- setExistsError = _useState80[1];
229
- var rightClickButtonValueMap = (0, _react.useRef)({});
227
+ joinAliasConflictCheck = _useState80[0],
228
+ setJoinAliasConflictCheck = _useState80[1];
230
229
  var _useState81 = (0, _react.useState)([]),
231
230
  _useState82 = (0, _slicedToArray2["default"])(_useState81, 2),
232
- rightClickMenu = _useState82[0],
233
- setRightClickMenu = _useState82[1];
234
- var _useState83 = (0, _react.useState)(null),
231
+ existsError = _useState82[0],
232
+ setExistsError = _useState82[1];
233
+ var rightClickButtonValueMap = (0, _react.useRef)({});
234
+ var _useState83 = (0, _react.useState)([]),
235
235
  _useState84 = (0, _slicedToArray2["default"])(_useState83, 2),
236
- rightClickMenuState = _useState84[0],
237
- setRightClickMenuState = _useState84[1];
238
- var rightClickMenuClickRef = (0, _react.useRef)();
239
- var _useState85 = (0, _react.useState)(_storage["default"]._metabaseCopyModule || []),
236
+ rightClickMenu = _useState84[0],
237
+ setRightClickMenu = _useState84[1];
238
+ var _useState85 = (0, _react.useState)(null),
240
239
  _useState86 = (0, _slicedToArray2["default"])(_useState85, 2),
241
- metabaseCopyModule = _useState86[0],
242
- setMetabaseCopyModule = _useState86[1];
240
+ rightClickMenuState = _useState86[0],
241
+ setRightClickMenuState = _useState86[1];
242
+ var rightClickMenuClickRef = (0, _react.useRef)();
243
+ var _useState87 = (0, _react.useState)(_storage["default"]._metabaseCopyModule || []),
244
+ _useState88 = (0, _slicedToArray2["default"])(_useState87, 2),
245
+ metabaseCopyModule = _useState88[0],
246
+ setMetabaseCopyModule = _useState88[1];
243
247
  var setRightClickMenuClick = function setRightClickMenuClick(fn) {
244
248
  rightClickMenuClickRef.current = fn;
245
249
  };
@@ -607,6 +611,12 @@ var useStore = function useStore() {
607
611
  case 0:
608
612
  changeObj = _args9.length > 2 && _args9[2] !== undefined ? _args9[2] : {};
609
613
  _metaList = _args9.length > 3 ? _args9[3] : undefined;
614
+ if (!(snapshotMode && changeObj !== 'init')) {
615
+ _context9.next = 1;
616
+ break;
617
+ }
618
+ return _context9.abrupt("return");
619
+ case 1:
610
620
  prevMeta = (0, _cloneDeep["default"])(_metaList || latestMetaListRef.current);
611
621
  newMeta = (0, _cloneDeep["default"])(prevMeta);
612
622
  if (newMeta[groupInd]) {
@@ -614,23 +624,23 @@ var useStore = function useStore() {
614
624
  _setMeta(newMeta);
615
625
  }
616
626
  if (!(changeObj === 'init')) {
617
- _context9.next = 1;
627
+ _context9.next = 2;
618
628
  break;
619
629
  }
620
630
  return _context9.abrupt("return");
621
- case 1:
631
+ case 2:
622
632
  oldData = (0, _utils.splitByUnion)(prevMeta);
623
633
  newData = (0, _utils.splitByUnion)(newMeta);
624
- _context9.next = 2;
634
+ _context9.next = 3;
625
635
  return fetchChangeFn.current(oldData, changeObj, {
626
636
  isExit: isExit
627
637
  }, newData);
628
- case 2:
638
+ case 3:
629
639
  isChange = _context9.sent;
630
640
  if (isChange === false) {
631
641
  _setMeta(prevMeta);
632
642
  }
633
- case 3:
643
+ case 4:
634
644
  case "end":
635
645
  return _context9.stop();
636
646
  }
@@ -935,6 +945,7 @@ var useStore = function useStore() {
935
945
  };
936
946
  };
937
947
  var addMeta = function addMeta(type, index, groupIndex, obj, onConflict) {
948
+ if (snapshotMode) return false;
938
949
  if (joinAliasConflictCheck && obj && obj.length > 0) {
939
950
  var conflict = checkTable1Conflict(obj, index, groupIndex);
940
951
  if (conflict.hasConflict && conflict.conflictingAlias && onConflict) {
@@ -970,6 +981,7 @@ var useStore = function useStore() {
970
981
  return true;
971
982
  };
972
983
  var delMeta = function delMeta(meta, groupIndex) {
984
+ if (snapshotMode) return;
973
985
  if (meta.type === 'group') {
974
986
  var _newMeta = metaList.slice();
975
987
  _newMeta.splice(groupIndex, 1);
@@ -1111,6 +1123,8 @@ var useStore = function useStore() {
1111
1123
  setIsSelectFields: setIsSelectFields,
1112
1124
  tableFlat: tableFlat,
1113
1125
  setTableFlat: setTableFlat,
1126
+ snapshotMode: snapshotMode,
1127
+ setSnapshotMode: setSnapshotMode,
1114
1128
  getSourceTable: getSourceTable,
1115
1129
  sourceTable: sourceTable,
1116
1130
  copyType: copyType,
package/lib/cjs/index.js CHANGED
@@ -26,6 +26,8 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
26
26
  loading = _props$loading === void 0 ? false : _props$loading,
27
27
  _props$showFields = props.showFields,
28
28
  showFields = _props$showFields === void 0 ? true : _props$showFields,
29
+ _props$snapshotMode = props.snapshotMode,
30
+ snapshotMode = _props$snapshotMode === void 0 ? false : _props$snapshotMode,
29
31
  getTables = props.getTables,
30
32
  getColumns = props.getColumns,
31
33
  onChange = props.onChange,
@@ -131,6 +133,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
131
133
  store.setGroupByEnableAlias(groupByEnableAlias);
132
134
  store.setIsSelectFields(isSelectFields);
133
135
  store.setTableFlat(tableFlat);
136
+ store.setSnapshotMode(snapshotMode);
134
137
  store.setCopyType(copyType || EMPTY_ARRAY);
135
138
  store.setMetabaseCopy(metabaseCopy);
136
139
  store.setModuleDiff(moduleDiff);
@@ -141,7 +144,7 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
141
144
  store.setModuleCopy(moduleCopy);
142
145
  store.setJoinAliasConflictCheck(joinAliasConflictCheck);
143
146
  store.setOperatorList(operatorList || EMPTY_ARRAY);
144
- }, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType, isExit, tableEnableAlias, fieldEnableAlias, groupByEnableAlias, isSelectFields, tableFlat, copyType, metabaseCopy, moduleDiff, showFormulaSql, showFormulaDiff, matchBrackets, getFormulaSqlCode, getFormulaDiffCode, isSubquery, moduleCopy, joinAliasConflictCheck, operatorList]);
147
+ }, [showFields, fieldNameTpl, tableNameTpl, toolbar, showSubquery, subShowSubquery, constantList, formulaTemplates, ignoreGroupByType, filterCustomType, isExit, tableEnableAlias, fieldEnableAlias, groupByEnableAlias, isSelectFields, tableFlat, snapshotMode, copyType, metabaseCopy, moduleDiff, showFormulaSql, showFormulaDiff, matchBrackets, getFormulaSqlCode, getFormulaDiffCode, isSubquery, moduleCopy, joinAliasConflictCheck, operatorList]);
145
148
  _react["default"].useImperativeHandle(ref, function () {
146
149
  return {
147
150
  reset: function reset() {
@@ -161,7 +164,9 @@ var SqlVisionBuilder = _react["default"].forwardRef(function (props, ref) {
161
164
  msg: (0, _locale.__)('loading')
162
165
  });
163
166
  return (0, _jsxRuntime.jsx)(_useProvider.Provider, {
164
- value: store,
167
+ value: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, store), {}, {
168
+ snapshotMode: snapshotMode
169
+ }),
165
170
  children: (0, _jsxRuntime.jsx)(_metabase["default"], (0, _objectSpread2["default"])({}, props))
166
171
  });
167
172
  });
@@ -45,6 +45,7 @@ export interface MetabaseProps {
45
45
  btnText?: string;
46
46
  showFields?: boolean;
47
47
  readonly?: boolean;
48
+ snapshotMode?: boolean;
48
49
  getTables: (datasourceId: string, options: FetchOptions) => Promise<any>;
49
50
  getColumns: (table: {
50
51
  name: string;
@@ -25,7 +25,9 @@ export declare const getHelper: (list: MetaListType[], item: MetaListType) => He
25
25
  export declare const mergeSubQueryColumns: (columns: MetaData_ColumnsType[], oldColumns?: MetaData_ColumnsType[], isSelectFields?: boolean) => MetaData_ColumnsType[];
26
26
  export declare const syncSubQueryFieldReferences: (list: MetaListType[], table: MetaData_TableType, columns: MetaData_ColumnsType[], oldColumns?: MetaData_ColumnsType[]) => MetaListType[];
27
27
  export declare const getSubColumns: (metaList: any) => DataType[];
28
+ export declare const getAtomDisplayText: (item?: AtomsItem) => string;
28
29
  export declare const normalizeAndOrStructure: <T>(data: T) => T;
30
+ export declare const syncAtomQuotes: (item: AtomsItem) => AtomsItem;
29
31
  export declare function isValidSQLAlias(str: string): boolean;
30
32
  export declare const changeTableAlias: (list: MetaListType[] | [], curObj: Pick<MetaData_TableType, "tableUuid" | "alias">) => MetaListType[];
31
33
  export declare const changeFieldAlias: (list: MetaListType[], curObj: Pick<MetaData_ColumnsType, "fieldUuid" | "fieldAlias"> & Partial<Pick<MetaData_ColumnsType, "id" | "name" | "datasourceId">> & Partial<Pick<MetaSummarize_Group | MetaSummarize_By, "table" | "tableId" | "tableUuid" | "fieldId" | "name">>) => MetaListType[];
package/lib/cjs/utils.js CHANGED
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.changeTableAlias = exports.changeFieldAlias = exports.changeExistsCopyField = exports.changeCopyField = exports.buildSqlQuery = void 0;
8
8
  exports.containsSubset = containsSubset;
9
- exports.isExistsError = exports.isError = exports.isCanPaste = exports.getSubQueryColumnInstanceUuid = exports.getSubColumns = exports.getObjTem = exports.getMetaTabels = exports.getHelper = exports.getColumnsTables = exports.findMetaKey = exports.findIndex = void 0;
9
+ exports.isExistsError = exports.isError = exports.isCanPaste = exports.getSubQueryColumnInstanceUuid = exports.getSubColumns = exports.getObjTem = exports.getMetaTabels = exports.getHelper = exports.getColumnsTables = exports.getAtomDisplayText = exports.findMetaKey = exports.findIndex = void 0;
10
10
  exports.isValidSQLAlias = isValidSQLAlias;
11
11
  exports.patchData = exports.normalizeLegacySummarizeForSave = exports.normalizeAndOrStructure = exports.metaIsCheck = exports.mergeSubQueryColumns = void 0;
12
12
  exports.reassembleByUnion = reassembleByUnion;
13
13
  exports.splitByUnion = splitByUnion;
14
- exports.syncSubQueryFieldReferences = void 0;
14
+ exports.syncSubQueryFieldReferences = exports.syncAtomQuotes = void 0;
15
15
  var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
16
16
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
17
17
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
@@ -598,7 +598,7 @@ var getSelectAtomText = function getSelectAtomText(item) {
598
598
  }
599
599
  return getOptionText(String(item.val || ''));
600
600
  };
601
- var _getAtomDisplayText = function getAtomDisplayText(item) {
601
+ var _getAtomDisplayText = exports.getAtomDisplayText = function getAtomDisplayText(item) {
602
602
  if (!item) return '';
603
603
  if (item.type === _types.AtomsTypeEnum.FIELD) {
604
604
  if (item.tableId === _helper.SummarizeAlias) {
@@ -968,7 +968,7 @@ var buildExpressionQuotes = function buildExpressionQuotes(item) {
968
968
  }
969
969
  return normalizeAtomQuotes("".concat(lhsText, " ").concat(getExpressionConditionText(condition), " ").concat(rhsText || firstVal));
970
970
  };
971
- var syncAtomQuotes = function syncAtomQuotes(item) {
971
+ var syncAtomQuotes = exports.syncAtomQuotes = function syncAtomQuotes(item) {
972
972
  if (item.type === _types.AtomsTypeEnum.JOIN_DEFAULT) {
973
973
  return (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, item), {}, {
974
974
  lhs: syncAtomQuotesList(item.lhs || []),
@@ -17,6 +17,7 @@ type Props = {
17
17
  onZoomCase?: (e: any) => void;
18
18
  onDeleteCase?: (e: any) => void;
19
19
  showTools?: boolean;
20
+ readonly?: boolean;
20
21
  isNested?: boolean;
21
22
  useBranchScrollInner?: boolean;
22
23
  caseRegionKey?: string;
@@ -24,5 +25,5 @@ type Props = {
24
25
  activeRegionKey?: string | null;
25
26
  onActivateRegion?: (key: string) => void;
26
27
  };
27
- declare const CaseWhenGroup: ({ caseAtomsContent, whenClauses, elseContent, onAddBranch, onAddElse, onRemoveElse, onZoomCase, onDeleteCase, showTools, isNested, useBranchScrollInner, caseRegionKey, elseRegionKey, activeRegionKey, onActivateRegion, }: Props) => React.JSX.Element;
28
+ declare const CaseWhenGroup: ({ caseAtomsContent, whenClauses, elseContent, onAddBranch, onAddElse, onRemoveElse, onZoomCase, onDeleteCase, showTools, readonly, isNested, useBranchScrollInner, caseRegionKey, elseRegionKey, activeRegionKey, onActivateRegion, }: Props) => React.JSX.Element;
28
29
  export default CaseWhenGroup;
@@ -69,6 +69,8 @@ var CaseWhenGroup = function CaseWhenGroup(_ref) {
69
69
  onDeleteCase = _ref.onDeleteCase,
70
70
  _ref$showTools = _ref.showTools,
71
71
  showTools = _ref$showTools === void 0 ? true : _ref$showTools,
72
+ _ref$readonly = _ref.readonly,
73
+ readonly = _ref$readonly === void 0 ? false : _ref$readonly,
72
74
  _ref$isNested = _ref.isNested,
73
75
  isNested = _ref$isNested === void 0 ? false : _ref$isNested,
74
76
  _ref$useBranchScrollI = _ref.useBranchScrollInner,
@@ -105,7 +107,7 @@ var CaseWhenGroup = function CaseWhenGroup(_ref) {
105
107
  className: cx('Sqb-FormulaGroup', 'flow-group', 'formula-node-group', 'Sqb-CaseWhenGroup', {
106
108
  'Sqb-CaseWhenGroup--nested': isNested
107
109
  }),
108
- children: [showTools && _jsxs("div", {
110
+ children: [showTools && !readonly && _jsxs("div", {
109
111
  className: 'Sqb-CaseWhenTools',
110
112
  children: [onZoomCase && _jsx(Tooltip, {
111
113
  title: "\u7F16\u8F91 caseWhen",
@@ -177,7 +179,7 @@ var CaseWhenGroup = function CaseWhenGroup(_ref) {
177
179
  })]
178
180
  })]
179
181
  }))
180
- }), _jsxs("div", {
182
+ }), !readonly && _jsxs("div", {
181
183
  className: 'Sqb-CaseRow-actions when-row-actions',
182
184
  children: [_jsx(Tooltip, {
183
185
  title: "\u65B0\u589E when",
@@ -206,7 +208,7 @@ var CaseWhenGroup = function CaseWhenGroup(_ref) {
206
208
  })]
207
209
  })]
208
210
  }, branch.key);
209
- }), whenClauses.length < 1 && _jsx(Tooltip, {
211
+ }), !readonly && whenClauses.length < 1 && _jsx(Tooltip, {
210
212
  title: "\u65B0\u589E when",
211
213
  children: _jsxs("button", {
212
214
  type: 'button',
@@ -237,7 +239,7 @@ var CaseWhenGroup = function CaseWhenGroup(_ref) {
237
239
  children: elseContent
238
240
  })]
239
241
  }))
240
- }), _jsx("div", {
242
+ }), !readonly && _jsx("div", {
241
243
  className: 'Sqb-CaseRow-actions when-row-actions',
242
244
  children: _jsx(Tooltip, {
243
245
  title: "\u5220\u9664 else",
@@ -253,7 +255,7 @@ var CaseWhenGroup = function CaseWhenGroup(_ref) {
253
255
  })
254
256
  })
255
257
  })]
256
- }), !elseContent && _jsx(Tooltip, {
258
+ }), !readonly && !elseContent && _jsx(Tooltip, {
257
259
  title: "\u65B0\u589E else",
258
260
  children: _jsxs("button", {
259
261
  type: 'button',
@@ -8,6 +8,7 @@ type Props = {
8
8
  onAddItem: () => void;
9
9
  onDeleteItem: (operatorIndex: number, side: 'left' | 'right') => void;
10
10
  onDelete: (e: any) => void;
11
+ readonly?: boolean;
11
12
  };
12
- declare const LogicGroup: ({ items, onChangeOperator, onAddItem, onDeleteItem, onDelete, }: Props) => React.JSX.Element;
13
+ declare const LogicGroup: ({ items, onChangeOperator, onAddItem, onDeleteItem, onDelete, readonly, }: Props) => React.JSX.Element;
13
14
  export default LogicGroup;
@@ -19,7 +19,9 @@ var LogicGroup = function LogicGroup(_ref) {
19
19
  onChangeOperator = _ref.onChangeOperator,
20
20
  onAddItem = _ref.onAddItem,
21
21
  onDeleteItem = _ref.onDeleteItem,
22
- onDelete = _ref.onDelete;
22
+ onDelete = _ref.onDelete,
23
+ _ref$readonly = _ref.readonly,
24
+ readonly = _ref$readonly === void 0 ? false : _ref$readonly;
23
25
  var canDeleteItem = items.length > 2;
24
26
  var handleOperatorMenuChange = function handleOperatorMenuChange(operatorIndex, action) {
25
27
  if (action === 'add') {
@@ -76,7 +78,7 @@ var LogicGroup = function LogicGroup(_ref) {
76
78
  }), _jsx("span", {
77
79
  className: 'Sqb-CaseKeyword',
78
80
  children: ")"
79
- }), _jsx(Tooltip, {
81
+ }), !readonly && _jsx(Tooltip, {
80
82
  title: "\u5220\u9664 and/or",
81
83
  children: _jsx("button", {
82
84
  type: 'button',