@gingkoo/pandora-metabase 1.0.152 → 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 (49) 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 +14 -9
  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 +3 -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/es/components/dialog/formula-list/CaseWhenGroup.d.ts +2 -1
  26. package/lib/es/components/dialog/formula-list/CaseWhenGroup.js +7 -5
  27. package/lib/es/components/dialog/formula-list/LogicGroup.d.ts +2 -1
  28. package/lib/es/components/dialog/formula-list/LogicGroup.js +4 -2
  29. package/lib/es/components/dialog/formula-list/index.js +14 -9
  30. package/lib/es/components/dialog/select-column/index.d.ts +2 -1
  31. package/lib/es/components/dialog/select-column/index.js +10 -1
  32. package/lib/es/components/metabase/index.js +30 -2
  33. package/lib/es/components/modules/components/header.js +1 -1
  34. package/lib/es/components/modules/components/item-name.js +4 -1
  35. package/lib/es/components/modules/components/item-wrapper.js +1 -1
  36. package/lib/es/components/modules/components/meta-icon.js +4 -2
  37. package/lib/es/components/modules/custom-column.js +2 -2
  38. package/lib/es/components/modules/join-data.js +40 -41
  39. package/lib/es/components/modules/permission-table.js +1 -0
  40. package/lib/es/components/modules/row-limit.js +1 -0
  41. package/lib/es/components/modules/sort.js +2 -2
  42. package/lib/es/components/modules/summarize/group-by.js +3 -3
  43. package/lib/es/components/modules/summarize/select-index.js +3 -3
  44. package/lib/es/components/modules/table-data.js +6 -4
  45. package/lib/es/components/modules/union.js +1 -1
  46. package/lib/es/hooks/use-state.js +66 -52
  47. package/lib/es/index.js +7 -2
  48. package/lib/es/types.d.ts +1 -0
  49. package/package.json +1 -1
@@ -528,7 +528,7 @@ var GroupBy = function GroupBy(props) {
528
528
  return handleUpdate(e, i);
529
529
  },
530
530
  children: [v.quotes && (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
531
- children: store.groupByEnableAlias && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
531
+ children: store.groupByEnableAlias && !store.snapshotMode && (0, _jsxRuntime.jsx)(_pandora.Tooltip, {
532
532
  title: !(0, _utils.isValidSQLAlias)(v === null || v === void 0 ? void 0 : v.fieldAlias) ? (0, _locale.__)('SqlQueryBuilder.aliasForRules') : (0, _locale.__)('SqlQueryBuilder.alias'),
533
533
  children: (0, _jsxRuntime.jsx)(_pandora.Button, {
534
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))),
@@ -543,7 +543,7 @@ var GroupBy = function GroupBy(props) {
543
543
  }
544
544
  })
545
545
  })
546
- }), "".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", {
547
547
  style: {
548
548
  fontSize: 0
549
549
  },
@@ -555,7 +555,7 @@ var GroupBy = function GroupBy(props) {
555
555
  })
556
556
  })
557
557
  }, i);
558
- }), (0, _jsxRuntime.jsx)("div", {
558
+ }), !store.snapshotMode && (0, _jsxRuntime.jsx)("div", {
559
559
  className: (0, _classnames["default"])("Sqb-TableName green-name", {
560
560
  notSelected: notBySelected
561
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;
@@ -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',
@@ -156,6 +156,7 @@ var FormulaList = forwardRef(function (props, ref) {
156
156
  };
157
157
  }, []);
158
158
  var store = useStore();
159
+ var snapshotMode = Boolean(store.snapshotMode);
159
160
  var _props$value = props.value,
160
161
  value = _props$value === void 0 ? [] : _props$value,
161
162
  data = props.data,
@@ -957,6 +958,7 @@ var FormulaList = forwardRef(function (props, ref) {
957
958
  var caseRegionKey = "case-".concat(index, "-case");
958
959
  var elseRegionKey = "case-".concat(index, "-else");
959
960
  return _jsx(CaseWhenGroup, {
961
+ readonly: snapshotMode,
960
962
  isNested: embedded,
961
963
  useBranchScrollInner: !embedded,
962
964
  caseRegionKey: caseRegionKey,
@@ -1068,6 +1070,7 @@ var FormulaList = forwardRef(function (props, ref) {
1068
1070
  updateAtomAt(index, buildAndOrItem(value, nextItems));
1069
1071
  };
1070
1072
  return _jsx(LogicGroup, {
1073
+ readonly: snapshotMode,
1071
1074
  items: items.map(function (item, itemIndex) {
1072
1075
  return {
1073
1076
  operator: item.operator,
@@ -2088,6 +2091,7 @@ var FormulaList = forwardRef(function (props, ref) {
2088
2091
  var copyDom = function copyDom() {
2089
2092
  var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
2090
2093
  var positioned = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2094
+ if (snapshotMode) return null;
2091
2095
  if (embedded) return null;
2092
2096
  if (!isCopy || selectedIndices.length === 0 && checkedItemsCount === 0) return null;
2093
2097
  return _jsx("div", {
@@ -2120,8 +2124,8 @@ var FormulaList = forwardRef(function (props, ref) {
2120
2124
  var showCheckbox = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
2121
2125
  var itemContent = itemDom(v, i, groupType);
2122
2126
  var isCompositeAtom = v.type === AtomsTypeEnum.CASE_WHEN || v.type === AtomsTypeEnum.AND_OR;
2123
- var showAfterArrow = canShowItemInsertArrows(v, groupType);
2124
- var showBeforeArrow = canShowItemInsertArrows(v, groupType);
2127
+ var showAfterArrow = !snapshotMode && canShowItemInsertArrows(v, groupType);
2128
+ var showBeforeArrow = !snapshotMode && canShowItemInsertArrows(v, groupType);
2125
2129
  return _jsx(React.Fragment, {
2126
2130
  children: _jsxs("div", {
2127
2131
  className: cx('Sqb-Filter-item', _defineProperty({
@@ -2160,7 +2164,7 @@ var FormulaList = forwardRef(function (props, ref) {
2160
2164
  ind: i,
2161
2165
  position: 'before',
2162
2166
  trigger: 'hover'
2163
- }), !embedded && showCheckbox && v.type !== AtomsTypeEnum.UNKNOWN && _jsx(Checkbox, {
2167
+ }), !snapshotMode && !embedded && showCheckbox && v.type !== AtomsTypeEnum.UNKNOWN && _jsx(Checkbox, {
2164
2168
  className: 'item-check',
2165
2169
  checked: selectedIndices.includes(i),
2166
2170
  disabled: globalSelectionActive && globalSelectionOwner !== myInstanceIdRef.current,
@@ -2170,7 +2174,7 @@ var FormulaList = forwardRef(function (props, ref) {
2170
2174
  }
2171
2175
  }), _jsx("div", {
2172
2176
  style: {
2173
- pointerEvents: isCheck || store.isMetabaseCopy ? 'none' : 'auto'
2177
+ pointerEvents: snapshotMode || isCheck || store.isMetabaseCopy ? 'none' : 'auto'
2174
2178
  },
2175
2179
  className: cx('Sqb-Filter-item-node', {
2176
2180
  openCheck: isCheck && !isCompositeAtom
@@ -2214,6 +2218,7 @@ var FormulaList = forwardRef(function (props, ref) {
2214
2218
  });
2215
2219
  };
2216
2220
  var renderDeleteIcon = function renderDeleteIcon(item, index, groupType) {
2221
+ if (snapshotMode) return null;
2217
2222
  if (!canDeleteItem(item, groupType)) return null;
2218
2223
  return _jsx(Tooltip, {
2219
2224
  title: "\u5220\u9664",
@@ -2266,8 +2271,8 @@ var FormulaList = forwardRef(function (props, ref) {
2266
2271
  trigger: 'hover'
2267
2272
  });
2268
2273
  };
2269
- var showFormulaListZoom = !embedded && enableZoom;
2270
- var showCopyTools = !embedded && isCopy && caseList.length > 0;
2274
+ var showFormulaListZoom = !snapshotMode && !embedded && enableZoom;
2275
+ var showCopyTools = !snapshotMode && !embedded && isCopy && caseList.length > 0;
2271
2276
  var renderFormulaListZoomButton = function renderFormulaListZoomButton() {
2272
2277
  return _jsx(Tooltip, {
2273
2278
  title: "\u7F16\u8F91",
@@ -2332,7 +2337,7 @@ var FormulaList = forwardRef(function (props, ref) {
2332
2337
  children: renderFormulaListZoomButton()
2333
2338
  }), caseList.map(function (item, itemIndex) {
2334
2339
  return renderItemShell(item, itemIndex, 'single');
2335
- }), Array.from(caseList).length < 1 && selectOperator({
2340
+ }), !snapshotMode && Array.from(caseList).length < 1 && selectOperator({
2336
2341
  triggerElement: function triggerElement() {
2337
2342
  return _jsx(Tooltip, {
2338
2343
  title: "\u6DFB\u52A0",
@@ -2346,7 +2351,7 @@ var FormulaList = forwardRef(function (props, ref) {
2346
2351
  ind: -1,
2347
2352
  position: 'add',
2348
2353
  trigger: 'click'
2349
- }), !embedded && copyDom(-1, false), !embedded && showPreview && _jsx("div", {
2354
+ }), !embedded && !snapshotMode && copyDom(-1, false), !snapshotMode && !embedded && showPreview && _jsx("div", {
2350
2355
  className: cx("mb-2 font-bold uppercase tracking-wider preview-box"),
2351
2356
  style: {
2352
2357
  fontSize: 12,
@@ -2376,7 +2381,7 @@ var FormulaList = forwardRef(function (props, ref) {
2376
2381
  onClick: showFormulaDiff,
2377
2382
  children: "\u5BF9\u6BD4\u7ED3\u679C"
2378
2383
  })]
2379
- }), _jsx("div", {
2384
+ }), !snapshotMode && _jsx("div", {
2380
2385
  className: 'errorMsg mt-2',
2381
2386
  children: errorInfo.isError && _jsxs(_Fragment, {
2382
2387
  children: ["\u63D0\u793A\uFF1A", _jsx("span", {
@@ -6,7 +6,8 @@ interface PropsType {
6
6
  table?: Partial<MetaData_TableType>;
7
7
  metaIndex?: number;
8
8
  groupIndex: number;
9
+ readonly?: boolean;
9
10
  onChange: (record: MetaData_ColumnsType[], newMetaList?: any[]) => void;
10
11
  }
11
- declare const SelectColumn: ({ data, table, metaIndex, groupIndex, onChange }: PropsType) => React.JSX.Element;
12
+ declare const SelectColumn: ({ data, table, metaIndex, groupIndex, readonly, onChange, }: PropsType) => React.JSX.Element;
12
13
  export default SelectColumn;
@@ -22,6 +22,8 @@ var SelectColumn = function SelectColumn(_ref) {
22
22
  table = _ref.table,
23
23
  metaIndex = _ref.metaIndex,
24
24
  groupIndex = _ref.groupIndex,
25
+ _ref$readonly = _ref.readonly,
26
+ readonly = _ref$readonly === void 0 ? false : _ref$readonly,
25
27
  onChange = _ref.onChange;
26
28
  var _useState = useState([]),
27
29
  _useState2 = _slicedToArray(_useState, 2),
@@ -88,6 +90,7 @@ var SelectColumn = function SelectColumn(_ref) {
88
90
  }, [isAllSelect]);
89
91
  function onSelect(columns, newMetaList) {
90
92
  var useColumnsDirectly = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
93
+ if (readonly) return;
91
94
  var originalData = cloneDeep(originList);
92
95
  var mergedColumns = useColumnsDirectly ? cloneDeep(columns) : originalData.map(function (item) {
93
96
  var match = columns.find(function (col) {
@@ -100,6 +103,7 @@ var SelectColumn = function SelectColumn(_ref) {
100
103
  typeof onChange === 'function' && onChange(mergedColumns, newMetaList);
101
104
  }
102
105
  var onChangeFieldAlias = function onChangeFieldAlias(val, i) {
106
+ if (readonly) return;
103
107
  var fieldAlias = val || '';
104
108
  var currentColumn = columns[i];
105
109
  Modal.confirm({
@@ -177,11 +181,15 @@ var SelectColumn = function SelectColumn(_ref) {
177
181
  return _jsx("div", {
178
182
  className: "Sqb-SelectColumn--box",
179
183
  children: _jsxs("div", {
184
+ style: readonly ? {
185
+ cursor: 'default'
186
+ } : undefined,
180
187
  children: [_jsxs("div", {
181
188
  className: 'Sqb-SelectColumn--header pt-2',
182
189
  children: [_jsx("div", {
183
190
  className: cx("SelectColumn-border mb-2 pb-2 px-2 flex items-center", {}),
184
191
  onClick: function onClick() {
192
+ if (readonly) return;
185
193
  var newColumns = columns.map(function (v) {
186
194
  return _objectSpread(_objectSpread({}, v), {}, {
187
195
  select: !isAllSelect
@@ -209,6 +217,7 @@ var SelectColumn = function SelectColumn(_ref) {
209
217
  return _jsxs("div", {
210
218
  className: 'pb-2 px-2 flex items-center',
211
219
  onClick: function onClick() {
220
+ if (readonly) return;
212
221
  var newColumns = cloneDeep(columns);
213
222
  newColumns[i].select = !v.select;
214
223
  onSelect(newColumns);
@@ -218,7 +227,7 @@ var SelectColumn = function SelectColumn(_ref) {
218
227
  children: _jsx(SelectIcon, {})
219
228
  }) : _jsx("div", {
220
229
  className: 'no-select mr-2'
221
- }), v.name, v.name_zh ? " \uFF08".concat(v.name_zh, "\uFF09") : '', v.fieldAlias ? " as ".concat(v.fieldAlias) : '', store.fieldEnableAlias && _jsx(Tooltip, {
230
+ }), v.name, v.name_zh ? " \uFF08".concat(v.name_zh, "\uFF09") : '', v.fieldAlias ? " as ".concat(v.fieldAlias) : '', store.fieldEnableAlias && !readonly && _jsx(Tooltip, {
222
231
  title: __('SqlQueryBuilder.alias'),
223
232
  children: _jsx(Button, {
224
233
  className: ':Sqb-TableName-as',