@fileverse-dev/fortune-react 1.0.2-mod-38 → 1.0.2-mod-39

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.
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defaultContext, defaultSettings, getSheetIndex, colLocationByIndex, fixPositionOnFrozenCells, colLocation, getFlowdata, isAllowEdit, handleColumnHeaderMouseDown, handleColSizeHandleMouseDown, handleColFreezeHandleMouseDown, handleContextMenu, selectTitlesMap, selectTitlesRange, fixColumnStyleOverflowInFreeze, rowLocationByIndex, rowLocation, handleRowHeaderMouseDown, handleRowSizeHandleMouseDown, handleRowFreezeHandleMouseDown, fixRowStyleOverflowInFreeze, locale, getStyleByCell, getCellValue, createRangeHightlight, isInlineStringCell, getInlineStringHTML, valueShowEs, escapeHTMLTag, escapeScriptTag, moveToEnd, isShowHidenCR, getrangeseleciton, cancelNormalSelected, moveHighlightCell, israngeseleciton, handleFormulaInput, onSearchDialogMoveStart, replaceAll, replace, searchAll, searchNext, normalizeSelection, scrollToHighlightCell, isLinkValid, goToLink, replaceHtml, removeHyperlink, saveHyperlink, createFilterOptions, onImageMoveStart, onImageResizeStart, showComments, setEditingComment, onCommentBoxMoveStart, confirmMessage, getRangeByTxt, getDropdownList, setCellValue, getRangetxt, setConditionRules, mergeBorder, setDropcownValue, handleCellAreaMouseDown, handleCellAreaDoubleClick, selectAll, showLinkCard, getCellRowColumn, getCellHyperlink, handleOverlayMouseMove, handleOverlayMouseUp, handleKeydownForZoom, handleOverlayTouchStart, handleOverlayTouchMove, handleOverlayTouchEnd, insertRowCol, drawArrow, onCellsMoveStart, createDropCellRange, updateContextWithSheetData, updateContextWithCanvas, initFreeze, Canvas, handleGlobalWheel, getDataArr, updateMoreCell, getRegStr, getOptionValue, getSelectRange, applyLocation, updateItem, update, normalizedCellAttr, updateFormat, handleTextSize, handleHorizontalAlign, handleVerticalAlign, handleScreenShot, showImgChooser, insertImage, editComment, deleteComment, showHideComment, showHideAllComments, newComment, handleSum, autoSelectionFormula, handleMerge, handleBorder, handleFreeze, handleSort, createFilter, clearFilter, toolbarItemSelectedFunc, toolbarItemClickHandler, handleTextColor, handleTextBackground, getInlineStringNoStyle, rangeHightlightselected, updateCell, editSheetName, cancelActiveImgItem, MAX_ZOOM_RATIO, MIN_ZOOM_RATIO, addSheet, getFreezeState, toggleFreeze, jfrefreshgrid, handleCopy, deleteRowCol, hideSelected, showSelected, api, removeActiveImage, deleteSelectedCellText, sortSelection, handleLink, handlePasteByClick, deleteSheet, opToPatch, setCaretPosition, orderbydatafiler, getFilterColumnValues, getFilterColumnColors, saveFilter, calcSelectionInfo, patchToOp, filterPatch, inverseRowColOptions, ensureSheetIndex, initSheetIndex, handleGlobalKeyDown, handlePaste, groupValuesRefresh } from '@fileverse-dev/fortune-core';
1
+ import { defaultContext, defaultSettings, getSheetIndex, colLocationByIndex, fixPositionOnFrozenCells, colLocation, getFlowdata, isAllowEdit, handleColumnHeaderMouseDown, handleColSizeHandleMouseDown, handleColFreezeHandleMouseDown, handleContextMenu, selectTitlesMap, selectTitlesRange, fixColumnStyleOverflowInFreeze, rowLocationByIndex, rowLocation, handleRowHeaderMouseDown, handleRowSizeHandleMouseDown, handleRowFreezeHandleMouseDown, fixRowStyleOverflowInFreeze, locale, getStyleByCell, getCellValue, createRangeHightlight, isInlineStringCell, getInlineStringHTML, valueShowEs, escapeHTMLTag, escapeScriptTag, moveToEnd, isShowHidenCR, getrangeseleciton, cancelNormalSelected, moveHighlightCell, israngeseleciton, handleFormulaInput, onSearchDialogMoveStart, replaceAll, replace, searchAll, searchNext, normalizeSelection, scrollToHighlightCell, isLinkValid, goToLink, replaceHtml, removeHyperlink, saveHyperlink, createFilterOptions, onImageMoveStart, onImageResizeStart, showComments, setEditingComment, onCommentBoxMoveStart, confirmMessage, getRangeByTxt, getDropdownList, setCellValue, getRangetxt, setConditionRules, mergeBorder, setDropdownValue, onIframeMoveStart, onIframeResizeStart, handleCellAreaMouseDown, handleCellAreaDoubleClick, selectAll, showLinkCard, getCellRowColumn, getCellHyperlink, handleOverlayMouseMove, handleOverlayMouseUp, handleKeydownForZoom, handleOverlayTouchStart, handleOverlayTouchMove, handleOverlayTouchEnd, insertRowCol, drawArrow, onCellsMoveStart, createDropCellRange, updateContextWithSheetData, updateContextWithCanvas, initFreeze, Canvas, handleGlobalWheel, getDataArr, updateMoreCell, getRegStr, getOptionValue, getSelectRange, applyLocation, updateItem, update, sanitizeDuneUrl, normalizedCellAttr, updateFormat, handleTextSize, handleHorizontalAlign, handleVerticalAlign, handleScreenShot, showImgChooser, insertImage, editComment, deleteComment, showHideComment, showHideAllComments, newComment, handleSum, autoSelectionFormula, handleMerge, handleBorder, handleFreeze, handleSort, createFilter, clearFilter, toolbarItemSelectedFunc, toolbarItemClickHandler, insertDuneChart, handleTextColor, handleTextBackground, getInlineStringNoStyle, rangeHightlightselected, updateCell, editSheetName, cancelActiveImgItem, MAX_ZOOM_RATIO, MIN_ZOOM_RATIO, addSheet, getFreezeState, toggleFreeze, jfrefreshgrid, handleCopy, deleteRowCol, hideSelected, showSelected, api, removeActiveImage, deleteSelectedCellText, sortSelection, handleLink, handlePasteByClick, deleteSheet, opToPatch, setCaretPosition, orderbydatafiler, getFilterColumnValues, getFilterColumnColors, saveFilter, calcSelectionInfo, patchToOp, filterPatch, inverseRowColOptions, ensureSheetIndex, initSheetIndex, handleGlobalKeyDown, handlePaste, groupValuesRefresh } from '@fileverse-dev/fortune-core';
2
2
  import React, { useContext, useRef, useState, useMemo, useCallback, useEffect, useLayoutEffect, useImperativeHandle } from 'react';
3
3
  import produce, { applyPatches, enablePatches, produceWithPatches } from 'immer';
4
4
  import _ from 'lodash';
@@ -172,7 +172,7 @@ function _regenerator() {
172
172
  i = p[t],
173
173
  d = G.p,
174
174
  l = i[2];
175
- r > 3 ? (o = l === n) && (c = i[4] || 3, u = i[5] === e ? i[3] : i[5], i[4] = 3, i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
175
+ r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
176
176
  }
177
177
  if (o || r > 1) return a;
178
178
  throw y = !0, n;
@@ -784,37 +784,12 @@ var ContentEditable = function ContentEditable(_ref) {
784
784
  };
785
785
 
786
786
  var FormulaSearch = function FormulaSearch(props) {
787
- var _context$luckysheet_s;
788
787
  var _useContext = useContext(WorkbookContext),
789
788
  context = _useContext.context;
790
- var firstSelection = (_context$luckysheet_s = context.luckysheet_select_save) === null || _context$luckysheet_s === void 0 ? void 0 : _context$luckysheet_s[0];
791
- var hintRef = useRef(null);
792
- var _useState = useState(0),
793
- _useState2 = _slicedToArray(_useState, 2),
794
- top = _useState2[0],
795
- setTop = _useState2[1];
796
- var calcuatePopUpPlacement = function calcuatePopUpPlacement() {
797
- var _hintRef$current;
798
- if (!(firstSelection === null || firstSelection === void 0 ? void 0 : firstSelection.top) || !firstSelection.height_move || !hintRef.current) return;
799
- var hintHeight = hintRef.current.offsetHeight;
800
- var inputBottom = firstSelection.top + firstSelection.height_move;
801
- var availableBelow = window.innerHeight - inputBottom;
802
- var hintAbove = hintHeight > availableBelow;
803
- var selectionHeight = (firstSelection === null || firstSelection === void 0 ? void 0 : firstSelection.height_move) || 0;
804
- var divOffset = ((_hintRef$current = hintRef.current) === null || _hintRef$current === void 0 ? void 0 : _hintRef$current.offsetHeight) || 0;
805
- setTop(hintAbove ? selectionHeight - (divOffset + 70) : selectionHeight + 4);
806
- };
807
- useEffect(function () {
808
- calcuatePopUpPlacement();
809
- });
810
789
  if (_.isEmpty(context.functionCandidates)) return null;
811
790
  return /*#__PURE__*/React.createElement("div", _objectSpread2(_objectSpread2({}, props), {}, {
812
- ref: hintRef,
813
791
  id: "luckysheet-formula-search-c",
814
- className: "luckysheet-formula-search-c",
815
- style: {
816
- top: top
817
- }
792
+ className: "luckysheet-formula-search-c"
818
793
  }), context.functionCandidates.map(function (v, index) {
819
794
  return /*#__PURE__*/React.createElement("div", {
820
795
  key: v.n,
@@ -864,10 +839,8 @@ var FormulaSearch = function FormulaSearch(props) {
864
839
  };
865
840
 
866
841
  var FormulaHint = function FormulaHint(props) {
867
- var _context$luckysheet_s;
868
842
  var _useContext = useContext(WorkbookContext),
869
843
  context = _useContext.context;
870
- var firstSelection = (_context$luckysheet_s = context.luckysheet_select_save) === null || _context$luckysheet_s === void 0 ? void 0 : _context$luckysheet_s[0];
871
844
  var _locale = locale(context),
872
845
  formulaMore = _locale.formulaMore;
873
846
  var fn = context.formulaCache.functionlistMap[context.functionHint];
@@ -883,7 +856,7 @@ var FormulaHint = function FormulaHint(props) {
883
856
  _useState6 = _slicedToArray(_useState5, 2),
884
857
  isKeyAdded = _useState6[0],
885
858
  setApiKeyAdded = _useState6[1];
886
- var _useState7 = useState(true),
859
+ var _useState7 = useState(false),
887
860
  _useState8 = _slicedToArray(_useState7, 2),
888
861
  showFunctionBody = _useState8[0],
889
862
  setShouldShowFunctionBody = _useState8[1];
@@ -897,66 +870,11 @@ var FormulaHint = function FormulaHint(props) {
897
870
  var apiKeyPlaceholder = {
898
871
  ETHERSCAN_API_KEY: "Etherscan API key"
899
872
  };
900
- var hintRef = useRef(null);
901
- var _useState9 = useState(0),
902
- _useState0 = _slicedToArray(_useState9, 2),
903
- top = _useState0[0],
904
- setTop = _useState0[1];
905
- var calcuatePopUpPlacement = function calcuatePopUpPlacement() {
906
- var _hintRef$current;
907
- if (!(firstSelection === null || firstSelection === void 0 ? void 0 : firstSelection.top) || !firstSelection.height_move || !hintRef.current) return;
908
- var hintHeight = 422;
909
- var inputBottom = firstSelection.top + firstSelection.height_move;
910
- var availableBelow = window.innerHeight - inputBottom;
911
- var hintAbove = hintHeight > availableBelow;
912
- var selectionHeight = (firstSelection === null || firstSelection === void 0 ? void 0 : firstSelection.height_move) || 0;
913
- var divOffset = ((_hintRef$current = hintRef.current) === null || _hintRef$current === void 0 ? void 0 : _hintRef$current.offsetHeight) || 0;
914
- setTop(hintAbove ? selectionHeight - (divOffset + 70) : selectionHeight + 4);
915
- };
916
- useEffect(function () {
917
- calcuatePopUpPlacement();
918
- });
919
- useEffect(function () {
920
- var el = document.getElementById("function-details");
921
- var handleWheel;
922
- if (el) {
923
- var scrollLockTimeout = null;
924
- var cache = {
925
- verticalScrollLock: false,
926
- horizontalScrollLock: false
927
- };
928
- handleWheel = function handleWheel(e) {
929
- e.preventDefault();
930
- var step = 40;
931
- var ratio = 1;
932
- if (e.deltaY !== 0 && !cache.verticalScrollLock) {
933
- cache.horizontalScrollLock = true;
934
- el.scrollTop += (e.deltaY > 0 ? 1 : -1) * step * ratio;
935
- } else if (e.deltaX !== 0 && !cache.horizontalScrollLock) {
936
- cache.verticalScrollLock = true;
937
- el.scrollLeft += (e.deltaX > 0 ? 1 : -1) * step * ratio;
938
- }
939
- clearTimeout(scrollLockTimeout);
940
- scrollLockTimeout = setTimeout(function () {
941
- cache.verticalScrollLock = false;
942
- cache.horizontalScrollLock = false;
943
- }, 50);
944
- };
945
- el.addEventListener("wheel", handleWheel, {
946
- passive: false
947
- });
948
- }
949
- return function () {
950
- if (el && handleWheel) el.removeEventListener("wheel", handleWheel);
951
- };
952
- }, []);
953
873
  if (!fn) return null;
954
874
  return /*#__PURE__*/React.createElement("div", _objectSpread2(_objectSpread2({}, props), {}, {
955
- ref: hintRef,
956
875
  id: "luckysheet-formula-help-c",
957
876
  className: "luckysheet-formula-help-c",
958
877
  style: {
959
- top: top,
960
878
  borderWidth: "1px",
961
879
  borderColor: (fn === null || fn === void 0 ? void 0 : fn.BRAND_SECONDARY_COLOR) ? fn === null || fn === void 0 ? void 0 : fn.BRAND_SECONDARY_COLOR : "#F8F9FA",
962
880
  backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA"),
@@ -1047,11 +965,8 @@ var FormulaHint = function FormulaHint(props) {
1047
965
  height: 16
1048
966
  })))), showFunctionBody && (/*#__PURE__*/React.createElement("div", {
1049
967
  className: "luckysheet-formula-help-content",
1050
- id: "function-details",
1051
968
  style: {
1052
- backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA"),
1053
- maxHeight: "318px",
1054
- overflowY: "scroll"
969
+ backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA")
1055
970
  }
1056
971
  }, fn.API_KEY && (/*#__PURE__*/React.createElement("div", {
1057
972
  style: {
@@ -1188,12 +1103,8 @@ var FormulaHint = function FormulaHint(props) {
1188
1103
  borderBottomRightRadius: "10px"
1189
1104
  },
1190
1105
  className: "w-full"
1191
- }, /*#__PURE__*/React.createElement("div", {
1192
- onClick: function onClick() {
1193
- var _document$getElementB;
1194
- (_document$getElementB = document.getElementById("function-button")) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.click();
1195
- },
1196
- className: "color-text-link cursor-pointer text-helper-text-sm"
1106
+ }, /*#__PURE__*/React.createElement("p", {
1107
+ className: "color-text-link text-helper-text-sm"
1197
1108
  }, "Learn More")));
1198
1109
  };
1199
1110
 
@@ -1292,38 +1203,6 @@ var InputBox = function InputBox() {
1292
1203
  var getActiveFormula = useCallback(function () {
1293
1204
  return document.querySelector(".luckysheet-formula-search-item-active");
1294
1205
  }, []);
1295
- var insertSelectedFormula = useCallback(function (formulaName) {
1296
- var _getrangeseleciton;
1297
- var textEditor = document.getElementById("luckysheet-rich-text-editor");
1298
- if (!textEditor) return;
1299
- var searchTxt = ((_getrangeseleciton = getrangeseleciton()) === null || _getrangeseleciton === void 0 ? void 0 : _getrangeseleciton.textContent) || "";
1300
- var deleteCount = searchTxt.length;
1301
- textEditor.focus();
1302
- var selection = window.getSelection();
1303
- if (!selection || selection.rangeCount === 0) return;
1304
- var range = selection.getRangeAt(0);
1305
- if (deleteCount !== 0 && range) {
1306
- var startOffset = Math.max(range.startOffset - deleteCount, 0);
1307
- var endOffset = range.startOffset;
1308
- range.setStart(range.startContainer, startOffset);
1309
- range.setEnd(range.startContainer, endOffset);
1310
- range.deleteContents();
1311
- }
1312
- var funcNode = new DOMParser().parseFromString("<span dir=\"auto\" class=\"luckysheet-formula-text-func\">".concat(formulaName, "</span>"), "text/html").body.firstChild;
1313
- var parNode = new DOMParser().parseFromString("<span dir=\"auto\" class=\"luckysheet-formula-text-lpar\">(</span>", "text/html").body.firstChild;
1314
- if (range === null || range === void 0 ? void 0 : range.startContainer.parentNode) {
1315
- range.setStart(range.startContainer.parentNode, 1);
1316
- }
1317
- if (parNode) range.insertNode(parNode);
1318
- if (funcNode) range.insertNode(funcNode);
1319
- range.collapse();
1320
- selection.removeAllRanges();
1321
- selection.addRange(range);
1322
- setContext(function (draftCtx) {
1323
- draftCtx.functionCandidates = [];
1324
- draftCtx.functionHint = formulaName;
1325
- });
1326
- }, [setContext]);
1327
1206
  var clearSearchItemActiveClass = useCallback(function () {
1328
1207
  var activeFormula = getActiveFormula();
1329
1208
  if (activeFormula) {
@@ -1331,24 +1210,89 @@ var InputBox = function InputBox() {
1331
1210
  }
1332
1211
  }, [getActiveFormula]);
1333
1212
  var selectActiveFormula = useCallback(function (e) {
1334
- var _getActiveFormula, _getActiveFormula$que;
1335
- var formulaName = (_getActiveFormula = getActiveFormula()) === null || _getActiveFormula === void 0 ? void 0 : (_getActiveFormula$que = _getActiveFormula.querySelector(".luckysheet-formula-search-func")) === null || _getActiveFormula$que === void 0 ? void 0 : _getActiveFormula$que.textContent;
1336
- if (formulaName) {
1337
- insertSelectedFormula(formulaName);
1213
+ var activeFormula = getActiveFormula();
1214
+ var formulaNameDiv = activeFormula === null || activeFormula === void 0 ? void 0 : activeFormula.querySelector(".luckysheet-formula-search-func");
1215
+ if (formulaNameDiv) {
1216
+ var formulaName = formulaNameDiv.textContent;
1217
+ var textEditor = document.getElementById("luckysheet-rich-text-editor");
1218
+ if (textEditor) {
1219
+ var _getrangeseleciton;
1220
+ var searchTxt = ((_getrangeseleciton = getrangeseleciton()) === null || _getrangeseleciton === void 0 ? void 0 : _getrangeseleciton.textContent) || "";
1221
+ var deleteCount = searchTxt.length;
1222
+ textEditor.focus();
1223
+ var selection = window.getSelection();
1224
+ if ((selection === null || selection === void 0 ? void 0 : selection.rangeCount) === 0) return;
1225
+ var range = selection === null || selection === void 0 ? void 0 : selection.getRangeAt(0);
1226
+ if (deleteCount !== 0 && range) {
1227
+ var startOffset = Math.max(range.startOffset - deleteCount, 0);
1228
+ var endOffset = range.startOffset;
1229
+ range.setStart(range.startContainer, startOffset);
1230
+ range.setEnd(range.startContainer, endOffset);
1231
+ range.deleteContents();
1232
+ }
1233
+ var functionStr = "<span dir=\"auto\" class=\"luckysheet-formula-text-func\">".concat(formulaName, "</span>");
1234
+ var lParStr = "<span dir=\"auto\" class=\"luckysheet-formula-text-lpar\">(</span>";
1235
+ var functionNode = new DOMParser().parseFromString(functionStr, "text/html").body.childNodes[0];
1236
+ var lParNode = new DOMParser().parseFromString(lParStr, "text/html").body.childNodes[0];
1237
+ if (range === null || range === void 0 ? void 0 : range.startContainer.parentNode) {
1238
+ range === null || range === void 0 ? void 0 : range.setStart(range.startContainer.parentNode, 1);
1239
+ }
1240
+ range === null || range === void 0 ? void 0 : range.insertNode(lParNode);
1241
+ range === null || range === void 0 ? void 0 : range.insertNode(functionNode);
1242
+ range === null || range === void 0 ? void 0 : range.collapse();
1243
+ selection === null || selection === void 0 ? void 0 : selection.removeAllRanges();
1244
+ if (range) selection === null || selection === void 0 ? void 0 : selection.addRange(range);
1245
+ setContext(function (draftCtx) {
1246
+ draftCtx.functionCandidates = [];
1247
+ draftCtx.functionHint = formulaName;
1248
+ });
1249
+ }
1338
1250
  e.preventDefault();
1339
1251
  e.stopPropagation();
1340
1252
  }
1341
- }, [getActiveFormula, insertSelectedFormula]);
1253
+ }, [getActiveFormula, setContext]);
1342
1254
  var selectActiveFormulaOnClick = useCallback(function (e) {
1343
- var _getActiveFormula2, _getActiveFormula2$qu;
1344
- preText.current = inputRef.current.innerText;
1345
- var formulaName = (_getActiveFormula2 = getActiveFormula()) === null || _getActiveFormula2 === void 0 ? void 0 : (_getActiveFormula2$qu = _getActiveFormula2.querySelector(".luckysheet-formula-search-func")) === null || _getActiveFormula2$qu === void 0 ? void 0 : _getActiveFormula2$qu.textContent;
1346
- if (formulaName) {
1347
- insertSelectedFormula(formulaName);
1255
+ var activeFormula = getActiveFormula();
1256
+ var formulaNameDiv = activeFormula === null || activeFormula === void 0 ? void 0 : activeFormula.querySelector(".luckysheet-formula-search-func");
1257
+ if (formulaNameDiv) {
1258
+ var formulaName = formulaNameDiv.textContent;
1259
+ var textEditor = document.getElementById("luckysheet-rich-text-editor");
1260
+ if (textEditor) {
1261
+ var _getrangeseleciton2;
1262
+ var searchTxt = ((_getrangeseleciton2 = getrangeseleciton()) === null || _getrangeseleciton2 === void 0 ? void 0 : _getrangeseleciton2.textContent) || "";
1263
+ var deleteCount = searchTxt.length;
1264
+ textEditor.focus();
1265
+ var selection = window.getSelection();
1266
+ if ((selection === null || selection === void 0 ? void 0 : selection.rangeCount) === 0) return;
1267
+ var range = selection === null || selection === void 0 ? void 0 : selection.getRangeAt(0);
1268
+ if (deleteCount !== 0 && range) {
1269
+ var startOffset = Math.max(range.startOffset - deleteCount, 0);
1270
+ var endOffset = range.startOffset;
1271
+ range.setStart(range.startContainer, startOffset);
1272
+ range.setEnd(range.startContainer, endOffset);
1273
+ range.deleteContents();
1274
+ }
1275
+ var functionStr = "<span dir=\"auto\" class=\"luckysheet-formula-text-func\">".concat(formulaName, "</span>");
1276
+ var lParStr = "<span dir=\"auto\" class=\"luckysheet-formula-text-lpar\">(</span>";
1277
+ var functionNode = new DOMParser().parseFromString(functionStr, "text/html").body.childNodes[0];
1278
+ var lParNode = new DOMParser().parseFromString(lParStr, "text/html").body.childNodes[0];
1279
+ if (range === null || range === void 0 ? void 0 : range.startContainer.parentNode) {
1280
+ range === null || range === void 0 ? void 0 : range.setStart(range.startContainer.parentNode, 1);
1281
+ }
1282
+ range === null || range === void 0 ? void 0 : range.insertNode(lParNode);
1283
+ range === null || range === void 0 ? void 0 : range.insertNode(functionNode);
1284
+ range === null || range === void 0 ? void 0 : range.collapse();
1285
+ selection === null || selection === void 0 ? void 0 : selection.removeAllRanges();
1286
+ if (range) selection === null || selection === void 0 ? void 0 : selection.addRange(range);
1287
+ setContext(function (draftCtx) {
1288
+ draftCtx.functionCandidates = [];
1289
+ draftCtx.functionHint = formulaName;
1290
+ });
1291
+ }
1348
1292
  e.preventDefault();
1349
1293
  e.stopPropagation();
1350
1294
  }
1351
- }, [getActiveFormula, insertSelectedFormula]);
1295
+ }, [getActiveFormula, setContext]);
1352
1296
  var onKeyDown = useCallback(function (e) {
1353
1297
  lastKeyDownEventRef.current = new KeyboardEvent(e.type, e.nativeEvent);
1354
1298
  preText.current = inputRef.current.innerText;
@@ -1465,7 +1409,10 @@ var InputBox = function InputBox() {
1465
1409
  onKeyDown: onKeyDown,
1466
1410
  onPaste: onPaste,
1467
1411
  allowEdit: edit ? !isHidenRC : edit
1468
- })), (context.functionCandidates.length > 0 || context.functionHint) && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormulaSearch, {
1412
+ })), document.activeElement === inputRef.current && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormulaSearch, {
1413
+ style: {
1414
+ top: ((firstSelection === null || firstSelection === void 0 ? void 0 : firstSelection.height_move) || 0) + 4
1415
+ },
1469
1416
  onMouseOver: function onMouseOver(e) {
1470
1417
  if (document.getElementById("luckysheet-formula-search-c")) {
1471
1418
  var hoveredItem = e.target.closest(".luckysheet-formula-search-item");
@@ -1475,10 +1422,14 @@ var InputBox = function InputBox() {
1475
1422
  }
1476
1423
  e.preventDefault();
1477
1424
  },
1478
- onMouseDown: function onMouseDown(e) {
1425
+ onClick: function onClick(e) {
1479
1426
  selectActiveFormulaOnClick(e);
1480
1427
  }
1481
- }), /*#__PURE__*/React.createElement(FormulaHint, null))));
1428
+ }), /*#__PURE__*/React.createElement(FormulaHint, {
1429
+ style: {
1430
+ top: ((firstSelection === null || firstSelection === void 0 ? void 0 : firstSelection.height_move) || 0) + 4
1431
+ }
1432
+ }))));
1482
1433
  };
1483
1434
 
1484
1435
  var ScrollBar = function ScrollBar(_ref) {
@@ -2608,8 +2559,18 @@ function useDialog() {
2608
2559
  };
2609
2560
  }
2610
2561
 
2562
+ var datepickerStyles = "\n .datepicker-toggle {\n display: inline-block;\n position: relative;\n width: 100%;\n }\n \n .datepicker-toggle-button {\n opacity: 0.3;\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n width: 16px;\n height: 16px;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PGxpbmUgeDE9IjE2IiB5MT0iMiIgeDI9IjE2IiB5Mj0iNiI+PC9saW5lPjxsaW5lIHgxPSI4IiB5MT0iMiIgeDI9IjgiIHkyPSI2Ij48L2xpbmU+PGxpbmUgeDE9IjMiIHkxPSIxMCIgeDI9IjIxIiB5Mj0iMTAiPjwvbGluZT48L3N2Zz4=');\n background-repeat: no-repeat;\n background-position: center;\n pointer-events: none;\n }\n \n .datepicker-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n font-size: 14px;\n line-height: 1.5;\n color: #1a202c;\n background-color: #fff;\n cursor: pointer;\n }\n \n .datepicker-input::-webkit-calendar-picker-indicator {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n cursor: pointer;\n opacity: 0;\n }\n \n .datepicker-input:focus {\n outline: none;\n border-color: #4299e1;\n box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.1);\n }\n";
2563
+ var injectDatepickerStyles = function injectDatepickerStyles() {
2564
+ if (typeof document !== "undefined") {
2565
+ var styleSheet = document.createElement("style");
2566
+ styleSheet.textContent = datepickerStyles;
2567
+ document.head.appendChild(styleSheet);
2568
+ }
2569
+ };
2570
+
2571
+ injectDatepickerStyles();
2611
2572
  var DataVerification = function DataVerification() {
2612
- var _context$dataVerifica, _context$dataVerifica2, _context$dataVerifica3, _context$dataVerifica4, _context$dataVerifica5, _context$dataVerifica6, _context$dataVerifica7, _context$dataVerifica8, _context$dataVerifica9, _context$dataVerifica0, _context$dataVerifica1, _context$dataVerifica10, _context$dataVerifica11, _context$dataVerifica12, _context$dataVerifica13, _context$dataVerifica14, _context$dataVerifica15, _context$dataVerifica16, _context$dataVerifica17, _context$dataVerifica18, _context$dataVerifica19, _context$dataVerifica20, _context$dataVerifica21, _context$dataVerifica22, _context$dataVerifica23;
2573
+ var _context$dataVerifica, _context$dataVerifica2, _context$dataVerifica3, _context$dataVerifica4, _context$dataVerifica5, _context$dataVerifica6, _context$dataVerifica7, _context$dataVerifica8, _context$dataVerifica9, _context$dataVerifica0, _context$dataVerifica1, _context$dataVerifica10, _context$dataVerifica11;
2613
2574
  var _useContext = useContext(WorkbookContext),
2614
2575
  context = _useContext.context,
2615
2576
  setContext = _useContext.setContext;
@@ -2618,15 +2579,11 @@ var DataVerification = function DataVerification() {
2618
2579
  hideDialog = _useDialog.hideDialog;
2619
2580
  var _locale = locale(context),
2620
2581
  dataVerification = _locale.dataVerification,
2621
- toolbar = _locale.toolbar,
2622
2582
  button = _locale.button,
2623
2583
  generalDialog = _locale.generalDialog;
2624
- var _useState = useState(["between", "notBetween", "equal", "notEqualTo", "moreThanThe", "lessThan", "greaterOrEqualTo", "lessThanOrEqualTo"]),
2584
+ var _useState = useState(["between", "notBetween", "equal", "notEqualTo", "earlierThan", "noEarlierThan", "laterThan", "noLaterThan"]),
2625
2585
  _useState2 = _slicedToArray(_useState, 1),
2626
- numberCondition = _useState2[0];
2627
- var _useState3 = useState(["between", "notBetween", "equal", "notEqualTo", "earlierThan", "noEarlierThan", "laterThan", "noLaterThan"]),
2628
- _useState4 = _slicedToArray(_useState3, 1),
2629
- dateCondition = _useState4[0];
2586
+ dateCondition = _useState2[0];
2630
2587
  var dataSelectRange = useCallback(function (type, value) {
2631
2588
  hideDialog();
2632
2589
  setContext(function (ctx) {
@@ -2761,48 +2718,36 @@ var DataVerification = function DataVerification() {
2761
2718
  return /*#__PURE__*/React.createElement("div", {
2762
2719
  id: "fortune-data-verification"
2763
2720
  }, /*#__PURE__*/React.createElement("div", {
2764
- className: "title"
2765
- }, toolbar.dataVerification), /*#__PURE__*/React.createElement("div", {
2766
- className: "box"
2721
+ className: "flex flex-col gap-4"
2767
2722
  }, /*#__PURE__*/React.createElement("div", {
2768
- className: "box-item",
2769
- style: {
2770
- borderTop: "1px solid #E1E4E8"
2771
- }
2723
+ className: "flex flex-col"
2772
2724
  }, /*#__PURE__*/React.createElement("div", {
2773
- className: "box-item-title"
2774
- }, dataVerification.cellRange), /*#__PURE__*/React.createElement("div", {
2775
- className: "data-verification-range"
2776
- }, /*#__PURE__*/React.createElement("input", {
2777
- className: "formulaInputFocus",
2778
- spellCheck: "false",
2725
+ className: "text-heading-xsm mb-2"
2726
+ }, dataVerification.cellRange), /*#__PURE__*/React.createElement(TextField, {
2727
+ rightIcon: /*#__PURE__*/React.createElement(LucideIcon, {
2728
+ name: "Grid2x2",
2729
+ size: "sm"
2730
+ }),
2731
+ "aria-hidden": "true",
2732
+ readOnly: true,
2779
2733
  value: (_context$dataVerifica = context.dataVerification.dataRegulation) === null || _context$dataVerifica === void 0 ? void 0 : _context$dataVerifica.rangeTxt,
2780
2734
  onChange: function onChange(e) {
2781
2735
  var value = e.target.value;
2782
2736
  setContext(function (ctx) {
2783
2737
  ctx.dataVerification.dataRegulation.rangeTxt = value;
2784
2738
  });
2785
- }
2786
- }), /*#__PURE__*/React.createElement("i", {
2787
- className: "icon",
2788
- "aria-hidden": "true",
2739
+ },
2789
2740
  onClick: function onClick() {
2790
2741
  hideDialog();
2791
2742
  dataSelectRange("rangeTxt", context.dataVerification.dataRegulation.value1);
2792
- },
2793
- tabIndex: 0
2794
- }, /*#__PURE__*/React.createElement(SVGIcon, {
2795
- name: "tab",
2796
- width: 18
2797
- })))), /*#__PURE__*/React.createElement("div", {
2798
- className: "box-item"
2743
+ }
2744
+ })), /*#__PURE__*/React.createElement("div", {
2745
+ className: "flex flex-col"
2799
2746
  }, /*#__PURE__*/React.createElement("div", {
2800
- className: "box-item-title"
2801
- }, dataVerification.verificationCondition), /*#__PURE__*/React.createElement("select", {
2802
- className: "data-verification-type-select",
2747
+ className: "text-heading-xsm mb-2"
2748
+ }, dataVerification.verificationCondition), /*#__PURE__*/React.createElement(Select$1, {
2803
2749
  value: context.dataVerification.dataRegulation.type,
2804
- onChange: function onChange(e) {
2805
- var value = e.target.value;
2750
+ onValueChange: function onValueChange(value) {
2806
2751
  setContext(function (ctx) {
2807
2752
  ctx.dataVerification.dataRegulation.type = value;
2808
2753
  if (value === "dropdown" || value === "checkbox") {
@@ -2818,18 +2763,14 @@ var DataVerification = function DataVerification() {
2818
2763
  ctx.dataVerification.dataRegulation.value2 = "";
2819
2764
  });
2820
2765
  }
2821
- }, ["dropdown", "checkbox", "number", "number_integer", "number_decimal", "text_content", "text_length", "date", "validity"].map(function (v) {
2822
- return /*#__PURE__*/React.createElement("option", {
2766
+ }, /*#__PURE__*/React.createElement(SelectTrigger, null, /*#__PURE__*/React.createElement(SelectValue, null)), /*#__PURE__*/React.createElement(SelectContent, null, ["dropdown", "checkbox", "date"].map(function (v) {
2767
+ return /*#__PURE__*/React.createElement(SelectItem$1, {
2823
2768
  value: v,
2824
2769
  key: v
2825
2770
  }, dataVerification[v]);
2826
- })), ((_context$dataVerifica2 = context.dataVerification) === null || _context$dataVerifica2 === void 0 ? void 0 : (_context$dataVerifica3 = _context$dataVerifica2.dataRegulation) === null || _context$dataVerifica3 === void 0 ? void 0 : _context$dataVerifica3.type) === "dropdown" && (/*#__PURE__*/React.createElement("div", {
2827
- className: "show-box-item"
2828
- }, /*#__PURE__*/React.createElement("div", {
2829
- className: "data-verification-range"
2830
- }, /*#__PURE__*/React.createElement("input", {
2831
- className: "formulaInputFocus",
2832
- spellCheck: "false",
2771
+ }))), ((_context$dataVerifica2 = context.dataVerification) === null || _context$dataVerifica2 === void 0 ? void 0 : (_context$dataVerifica3 = _context$dataVerifica2.dataRegulation) === null || _context$dataVerifica3 === void 0 ? void 0 : _context$dataVerifica3.type) === "dropdown" && (/*#__PURE__*/React.createElement("div", {
2772
+ className: "mt-4"
2773
+ }, /*#__PURE__*/React.createElement(TextField, {
2833
2774
  value: context.dataVerification.dataRegulation.value1,
2834
2775
  placeholder: dataVerification.placeholder1,
2835
2776
  onChange: function onChange(e) {
@@ -2838,39 +2779,28 @@ var DataVerification = function DataVerification() {
2838
2779
  ctx.dataVerification.dataRegulation.value1 = value;
2839
2780
  });
2840
2781
  }
2841
- }), /*#__PURE__*/React.createElement("i", {
2842
- className: "icon",
2843
- "aria-hidden": "true",
2844
- onClick: function onClick() {
2845
- return dataSelectRange("dropDown", context.dataVerification.dataRegulation.value1);
2846
- },
2847
- tabIndex: 0
2848
- }, /*#__PURE__*/React.createElement(SVGIcon, {
2849
- name: "tab",
2850
- width: 18
2851
- }))), /*#__PURE__*/React.createElement("div", {
2852
- className: "check"
2853
- }, /*#__PURE__*/React.createElement("input", {
2854
- type: "checkbox",
2782
+ }), /*#__PURE__*/React.createElement("div", {
2783
+ className: "mt-4 flex items-center"
2784
+ }, /*#__PURE__*/React.createElement(Checkbox, {
2785
+ className: "border-2",
2855
2786
  checked: context.dataVerification.dataRegulation.type2 === "true",
2856
- id: "mul",
2857
- onChange: function onChange(e) {
2787
+ onCheckedChange: function onCheckedChange(e) {
2858
2788
  var checked = e.target.checked;
2859
2789
  setContext(function (ctx) {
2860
2790
  ctx.dataVerification.dataRegulation.type2 = "".concat(checked);
2861
2791
  });
2862
2792
  }
2863
- }), /*#__PURE__*/React.createElement("label", {
2864
- htmlFor: "mul"
2793
+ }), /*#__PURE__*/React.createElement("span", {
2794
+ className: "ml-2"
2865
2795
  }, dataVerification.allowMultiSelect)))), ((_context$dataVerifica4 = context.dataVerification) === null || _context$dataVerifica4 === void 0 ? void 0 : (_context$dataVerifica5 = _context$dataVerifica4.dataRegulation) === null || _context$dataVerifica5 === void 0 ? void 0 : _context$dataVerifica5.type) === "checkbox" && (/*#__PURE__*/React.createElement("div", {
2866
- className: "show-box-item"
2796
+ className: "mt-4 space-y-2"
2867
2797
  }, /*#__PURE__*/React.createElement("div", {
2868
- className: "check-box"
2869
- }, /*#__PURE__*/React.createElement("span", null, dataVerification.selected, " \u2014\u2014 "), /*#__PURE__*/React.createElement("input", {
2870
- type: "text",
2871
- className: "data-verification-value1",
2872
- placeholder: dataVerification.placeholder2,
2798
+ className: "flex items-center gap-2"
2799
+ }, /*#__PURE__*/React.createElement("span", {
2800
+ className: "data-verification-checkbox-label"
2801
+ }, dataVerification.selected), /*#__PURE__*/React.createElement(TextField, {
2873
2802
  value: (_context$dataVerifica6 = context.dataVerification) === null || _context$dataVerifica6 === void 0 ? void 0 : (_context$dataVerifica7 = _context$dataVerifica6.dataRegulation) === null || _context$dataVerifica7 === void 0 ? void 0 : _context$dataVerifica7.value1,
2803
+ placeholder: dataVerification.placeholder2,
2874
2804
  onChange: function onChange(e) {
2875
2805
  var value = e.target.value;
2876
2806
  setContext(function (ctx) {
@@ -2878,129 +2808,41 @@ var DataVerification = function DataVerification() {
2878
2808
  });
2879
2809
  }
2880
2810
  })), /*#__PURE__*/React.createElement("div", {
2881
- className: "check-box"
2882
- }, /*#__PURE__*/React.createElement("span", null, dataVerification.notSelected, " \u2014\u2014 "), /*#__PURE__*/React.createElement("input", {
2883
- type: "text",
2884
- className: "data-verification-value2",
2885
- placeholder: dataVerification.placeholder2,
2811
+ className: "flex items-center gap-2"
2812
+ }, /*#__PURE__*/React.createElement("span", {
2813
+ className: "data-verification-checkbox-label"
2814
+ }, dataVerification.notSelected), /*#__PURE__*/React.createElement(TextField, {
2886
2815
  value: (_context$dataVerifica8 = context.dataVerification) === null || _context$dataVerifica8 === void 0 ? void 0 : (_context$dataVerifica9 = _context$dataVerifica8.dataRegulation) === null || _context$dataVerifica9 === void 0 ? void 0 : _context$dataVerifica9.value2,
2816
+ placeholder: dataVerification.placeholder2,
2887
2817
  onChange: function onChange(e) {
2888
2818
  var value = e.target.value;
2889
2819
  setContext(function (ctx) {
2890
2820
  ctx.dataVerification.dataRegulation.value2 = value;
2891
2821
  });
2892
2822
  }
2893
- })))), (((_context$dataVerifica0 = context.dataVerification) === null || _context$dataVerifica0 === void 0 ? void 0 : (_context$dataVerifica1 = _context$dataVerifica0.dataRegulation) === null || _context$dataVerifica1 === void 0 ? void 0 : _context$dataVerifica1.type) === "number" || ((_context$dataVerifica10 = context.dataVerification) === null || _context$dataVerifica10 === void 0 ? void 0 : (_context$dataVerifica11 = _context$dataVerifica10.dataRegulation) === null || _context$dataVerifica11 === void 0 ? void 0 : _context$dataVerifica11.type) === "number_integer" || ((_context$dataVerifica12 = context.dataVerification) === null || _context$dataVerifica12 === void 0 ? void 0 : (_context$dataVerifica13 = _context$dataVerifica12.dataRegulation) === null || _context$dataVerifica13 === void 0 ? void 0 : _context$dataVerifica13.type) === "number_decimal" || ((_context$dataVerifica14 = context.dataVerification) === null || _context$dataVerifica14 === void 0 ? void 0 : (_context$dataVerifica15 = _context$dataVerifica14.dataRegulation) === null || _context$dataVerifica15 === void 0 ? void 0 : _context$dataVerifica15.type) === "text_length") && (/*#__PURE__*/React.createElement("div", {
2894
- className: "show-box-item"
2895
- }, /*#__PURE__*/React.createElement("select", {
2896
- className: "data-verification-type-select",
2897
- value: context.dataVerification.dataRegulation.type2,
2898
- onChange: function onChange(e) {
2899
- var value = e.target.value;
2900
- setContext(function (ctx) {
2901
- ctx.dataVerification.dataRegulation.type2 = value;
2902
- ctx.dataVerification.dataRegulation.value1 = "";
2903
- ctx.dataVerification.dataRegulation.value2 = "";
2904
- });
2905
- }
2906
- }, numberCondition.map(function (v) {
2907
- return /*#__PURE__*/React.createElement("option", {
2908
- value: v,
2909
- key: v
2910
- }, dataVerification[v]);
2911
- })), context.dataVerification.dataRegulation.type2 === "between" || context.dataVerification.dataRegulation.type2 === "notBetween" ? (/*#__PURE__*/React.createElement("div", {
2912
- className: "input-box"
2913
- }, /*#__PURE__*/React.createElement("input", {
2914
- type: "number",
2915
- placeholder: "1",
2916
- value: context.dataVerification.dataRegulation.value1,
2917
- onChange: function onChange(e) {
2918
- var value = e.target.value;
2919
- setContext(function (ctx) {
2920
- ctx.dataVerification.dataRegulation.value1 = value;
2921
- });
2922
- }
2923
- }), /*#__PURE__*/React.createElement("span", null, "-"), /*#__PURE__*/React.createElement("input", {
2924
- type: "number",
2925
- placeholder: "100",
2926
- value: context.dataVerification.dataRegulation.value2,
2927
- onChange: function onChange(e) {
2928
- var value = e.target.value;
2929
- setContext(function (ctx) {
2930
- ctx.dataVerification.dataRegulation.value2 = value;
2931
- });
2932
- }
2933
- }))) : (/*#__PURE__*/React.createElement("div", {
2934
- className: "input-box"
2935
- }, /*#__PURE__*/React.createElement("input", {
2936
- type: "number",
2937
- style: {
2938
- width: "100%"
2939
- },
2940
- placeholder: dataVerification.placeholder3,
2941
- value: context.dataVerification.dataRegulation.value1,
2942
- onChange: function onChange(e) {
2943
- var value = e.target.value;
2944
- setContext(function (ctx) {
2945
- ctx.dataVerification.dataRegulation.value1 = value;
2946
- });
2947
- }
2948
- }))))), ((_context$dataVerifica16 = context.dataVerification) === null || _context$dataVerifica16 === void 0 ? void 0 : (_context$dataVerifica17 = _context$dataVerifica16.dataRegulation) === null || _context$dataVerifica17 === void 0 ? void 0 : _context$dataVerifica17.type) === "text_content" && (/*#__PURE__*/React.createElement("div", {
2949
- className: "show-box-item"
2950
- }, /*#__PURE__*/React.createElement("select", {
2951
- className: "data-verification-type-select",
2952
- value: context.dataVerification.dataRegulation.type2,
2953
- onChange: function onChange(e) {
2954
- var value = e.target.value;
2955
- setContext(function (ctx) {
2956
- ctx.dataVerification.dataRegulation.type2 = value;
2957
- ctx.dataVerification.dataRegulation.value1 = "";
2958
- ctx.dataVerification.dataRegulation.value2 = "";
2959
- });
2960
- }
2961
- }, ["include", "exclude", "equal"].map(function (v) {
2962
- return /*#__PURE__*/React.createElement("option", {
2963
- value: v,
2964
- key: v
2965
- }, dataVerification[v]);
2966
- })), /*#__PURE__*/React.createElement("div", {
2967
- className: "input-box"
2968
- }, /*#__PURE__*/React.createElement("input", {
2969
- type: "text",
2970
- style: {
2971
- width: "100%"
2972
- },
2973
- placeholder: dataVerification.placeholder4,
2974
- value: context.dataVerification.dataRegulation.value1,
2975
- onChange: function onChange(e) {
2976
- var value = e.target.value;
2977
- setContext(function (ctx) {
2978
- ctx.dataVerification.dataRegulation.value1 = value;
2979
- });
2980
- }
2981
- })))), ((_context$dataVerifica18 = context.dataVerification) === null || _context$dataVerifica18 === void 0 ? void 0 : (_context$dataVerifica19 = _context$dataVerifica18.dataRegulation) === null || _context$dataVerifica19 === void 0 ? void 0 : _context$dataVerifica19.type) === "date" && (/*#__PURE__*/React.createElement("div", {
2982
- className: "show-box-item"
2983
- }, /*#__PURE__*/React.createElement("select", {
2984
- className: "data-verification-type-select",
2823
+ })))), ((_context$dataVerifica0 = context.dataVerification) === null || _context$dataVerifica0 === void 0 ? void 0 : (_context$dataVerifica1 = _context$dataVerifica0.dataRegulation) === null || _context$dataVerifica1 === void 0 ? void 0 : _context$dataVerifica1.type) === "date" && (/*#__PURE__*/React.createElement("div", {
2824
+ className: "mt-4"
2825
+ }, /*#__PURE__*/React.createElement(Select$1, {
2985
2826
  value: context.dataVerification.dataRegulation.type2,
2986
- onChange: function onChange(e) {
2987
- var value = e.target.value;
2827
+ onValueChange: function onValueChange(value) {
2988
2828
  setContext(function (ctx) {
2989
2829
  ctx.dataVerification.dataRegulation.type2 = value;
2990
2830
  ctx.dataVerification.dataRegulation.value1 = "";
2991
2831
  ctx.dataVerification.dataRegulation.value2 = "";
2992
2832
  });
2993
2833
  }
2994
- }, dateCondition.map(function (v) {
2995
- return /*#__PURE__*/React.createElement("option", {
2834
+ }, /*#__PURE__*/React.createElement(SelectTrigger, null, /*#__PURE__*/React.createElement(SelectValue, null)), /*#__PURE__*/React.createElement(SelectContent, null, dateCondition.map(function (v) {
2835
+ return /*#__PURE__*/React.createElement(SelectItem$1, {
2996
2836
  value: v,
2997
2837
  key: v
2998
2838
  }, dataVerification[v]);
2999
- })), context.dataVerification.dataRegulation.type2 === "between" || context.dataVerification.dataRegulation.type2 === "notBetween" ? (/*#__PURE__*/React.createElement("div", {
3000
- className: "input-box"
2839
+ }))), context.dataVerification.dataRegulation.type2 === "between" || context.dataVerification.dataRegulation.type2 === "notBetween" ? (/*#__PURE__*/React.createElement("div", {
2840
+ className: "mt-4 flex gap-2 items-center"
2841
+ }, /*#__PURE__*/React.createElement("div", {
2842
+ className: "datepicker-toggle"
3001
2843
  }, /*#__PURE__*/React.createElement("input", {
3002
2844
  type: "date",
3003
- placeholder: "1",
2845
+ className: "datepicker-input",
3004
2846
  value: context.dataVerification.dataRegulation.value1,
3005
2847
  onChange: function onChange(e) {
3006
2848
  var value = e.target.value;
@@ -3008,9 +2850,13 @@ var DataVerification = function DataVerification() {
3008
2850
  ctx.dataVerification.dataRegulation.value1 = value;
3009
2851
  });
3010
2852
  }
3011
- }), /*#__PURE__*/React.createElement("span", null, "-"), /*#__PURE__*/React.createElement("input", {
2853
+ }), /*#__PURE__*/React.createElement("span", {
2854
+ className: "datepicker-toggle-button"
2855
+ })), /*#__PURE__*/React.createElement("span", null, "-"), /*#__PURE__*/React.createElement("div", {
2856
+ className: "datepicker-toggle"
2857
+ }, /*#__PURE__*/React.createElement("input", {
3012
2858
  type: "date",
3013
- placeholder: "100",
2859
+ className: "datepicker-input",
3014
2860
  value: context.dataVerification.dataRegulation.value2,
3015
2861
  onChange: function onChange(e) {
3016
2862
  var value = e.target.value;
@@ -3018,13 +2864,15 @@ var DataVerification = function DataVerification() {
3018
2864
  ctx.dataVerification.dataRegulation.value2 = value;
3019
2865
  });
3020
2866
  }
3021
- }))) : (/*#__PURE__*/React.createElement("div", {
3022
- className: "input-box"
2867
+ }), /*#__PURE__*/React.createElement("span", {
2868
+ className: "datepicker-toggle-button"
2869
+ })))) : (/*#__PURE__*/React.createElement("div", {
2870
+ className: "mt-4"
2871
+ }, /*#__PURE__*/React.createElement("div", {
2872
+ className: "datepicker-toggle"
3023
2873
  }, /*#__PURE__*/React.createElement("input", {
3024
2874
  type: "date",
3025
- style: {
3026
- width: "100%"
3027
- },
2875
+ className: "datepicker-input",
3028
2876
  placeholder: dataVerification.placeholder3,
3029
2877
  value: context.dataVerification.dataRegulation.value1,
3030
2878
  onChange: function onChange(e) {
@@ -3033,57 +2881,35 @@ var DataVerification = function DataVerification() {
3033
2881
  ctx.dataVerification.dataRegulation.value1 = value;
3034
2882
  });
3035
2883
  }
3036
- }))))), ((_context$dataVerifica20 = context.dataVerification) === null || _context$dataVerifica20 === void 0 ? void 0 : (_context$dataVerifica21 = _context$dataVerifica20.dataRegulation) === null || _context$dataVerifica21 === void 0 ? void 0 : _context$dataVerifica21.type) === "validity" && (/*#__PURE__*/React.createElement("div", {
3037
- className: "show-box-item"
3038
- }, /*#__PURE__*/React.createElement("select", {
3039
- className: "data-verification-type-select",
3040
- value: context.dataVerification.dataRegulation.type2,
3041
- onChange: function onChange(e) {
3042
- var value = e.target.value;
3043
- setContext(function (ctx) {
3044
- ctx.dataVerification.dataRegulation.type2 = value;
3045
- ctx.dataVerification.dataRegulation.value1 = "";
3046
- ctx.dataVerification.dataRegulation.value2 = "";
3047
- });
3048
- }
3049
- }, ["identificationNumber", "phoneNumber"].map(function (v) {
3050
- return /*#__PURE__*/React.createElement("option", {
3051
- value: v,
3052
- key: v
3053
- }, dataVerification[v]);
3054
- }))))), /*#__PURE__*/React.createElement("div", {
3055
- className: "box-item"
2884
+ }), /*#__PURE__*/React.createElement("span", {
2885
+ className: "datepicker-toggle-button"
2886
+ }))))))), /*#__PURE__*/React.createElement(Divider$2, {
2887
+ className: "w-full border-t-[1px]"
2888
+ }), /*#__PURE__*/React.createElement("div", {
2889
+ className: "flex flex-col gap-2"
3056
2890
  }, ["prohibitInput", "hintShow"].map(function (v) {
3057
2891
  return /*#__PURE__*/React.createElement("div", {
3058
- className: "check",
3059
- key: "div".concat(v)
3060
- }, /*#__PURE__*/React.createElement("input", {
3061
- type: "checkbox",
3062
- id: v,
3063
- key: "input".concat(v),
2892
+ key: v,
2893
+ className: "flex items-center"
2894
+ }, /*#__PURE__*/React.createElement(Checkbox, {
2895
+ className: "border-2",
3064
2896
  checked: context.dataVerification.dataRegulation[v],
3065
- onChange: function onChange() {
2897
+ onCheckedChange: function onCheckedChange(e) {
2898
+ var checked = e.target.checked;
3066
2899
  setContext(function (ctx) {
3067
2900
  var _ctx$dataVerification5;
3068
2901
  var dataRegulation = (_ctx$dataVerification5 = ctx.dataVerification) === null || _ctx$dataVerification5 === void 0 ? void 0 : _ctx$dataVerification5.dataRegulation;
3069
2902
  if (v === "prohibitInput") {
3070
- dataRegulation.prohibitInput = !dataRegulation.prohibitInput;
2903
+ dataRegulation.prohibitInput = checked;
3071
2904
  } else if (v === "hintShow") {
3072
- dataRegulation.hintShow = !dataRegulation.hintShow;
2905
+ dataRegulation.hintShow = checked;
3073
2906
  }
3074
2907
  });
3075
2908
  }
3076
- }), /*#__PURE__*/React.createElement("label", {
3077
- htmlFor: v,
3078
- key: "label".concat(v)
2909
+ }), /*#__PURE__*/React.createElement("span", {
2910
+ className: "ml-2"
3079
2911
  }, dataVerification[v]));
3080
- }), ((_context$dataVerifica22 = context.dataVerification) === null || _context$dataVerifica22 === void 0 ? void 0 : (_context$dataVerifica23 = _context$dataVerifica22.dataRegulation) === null || _context$dataVerifica23 === void 0 ? void 0 : _context$dataVerifica23.hintShow) && (/*#__PURE__*/React.createElement("div", {
3081
- className: "input-box"
3082
- }, /*#__PURE__*/React.createElement("input", {
3083
- type: "text",
3084
- style: {
3085
- width: "100%"
3086
- },
2912
+ }), ((_context$dataVerifica10 = context.dataVerification) === null || _context$dataVerifica10 === void 0 ? void 0 : (_context$dataVerifica11 = _context$dataVerifica10.dataRegulation) === null || _context$dataVerifica11 === void 0 ? void 0 : _context$dataVerifica11.hintShow) && (/*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(TextField, {
3087
2913
  placeholder: dataVerification.placeholder5,
3088
2914
  value: context.dataVerification.dataRegulation.hintValue,
3089
2915
  onChange: function onChange(e) {
@@ -3092,25 +2918,37 @@ var DataVerification = function DataVerification() {
3092
2918
  ctx.dataVerification.dataRegulation.hintValue = value;
3093
2919
  });
3094
2920
  }
3095
- }))))), /*#__PURE__*/React.createElement("div", {
3096
- className: "button-basic button-primary",
2921
+ }))))), /*#__PURE__*/React.createElement(Divider$2, {
2922
+ className: "w-full border-t-[1px] my-4"
2923
+ }), /*#__PURE__*/React.createElement("div", {
2924
+ className: "flex gap-2 justify-between items-center"
2925
+ }, /*#__PURE__*/React.createElement(Button$1, {
2926
+ variant: "secondary",
2927
+ style: {
2928
+ minWidth: "80px"
2929
+ },
3097
2930
  onClick: function onClick() {
3098
- btn("confirm");
2931
+ btn("close");
2932
+ }
2933
+ }, button.cancel), /*#__PURE__*/React.createElement("div", {
2934
+ className: "flex gap-2"
2935
+ }, /*#__PURE__*/React.createElement(Button$1, {
2936
+ variant: "secondary",
2937
+ style: {
2938
+ minWidth: "80px"
3099
2939
  },
3100
- tabIndex: 0
3101
- }, button.confirm), /*#__PURE__*/React.createElement("div", {
3102
- className: "button-basic button-close",
3103
2940
  onClick: function onClick() {
3104
2941
  btn("delete");
2942
+ }
2943
+ }, dataVerification.deleteVerification), /*#__PURE__*/React.createElement(Button$1, {
2944
+ variant: "default",
2945
+ style: {
2946
+ minWidth: "80px"
3105
2947
  },
3106
- tabIndex: 0
3107
- }, dataVerification.deleteVerification), /*#__PURE__*/React.createElement("div", {
3108
- className: "button-basic button-close",
3109
2948
  onClick: function onClick() {
3110
- btn("close");
3111
- },
3112
- tabIndex: 0
3113
- }, button.cancel));
2949
+ btn("confirm");
2950
+ }
2951
+ }, button.confirm))));
3114
2952
  };
3115
2953
 
3116
2954
  function getDisplayedRangeTxt(context) {
@@ -3122,12 +2960,7 @@ function getDisplayedRangeTxt(context) {
3122
2960
  return (_context$rangeDialog$ = (_context$rangeDialog = context.rangeDialog) === null || _context$rangeDialog === void 0 ? void 0 : _context$rangeDialog.rangeTxt) !== null && _context$rangeDialog$ !== void 0 ? _context$rangeDialog$ : "";
3123
2961
  }
3124
2962
 
3125
- var datepickerStyles = "\n .datepicker-toggle {\n display: inline-block;\n position: relative;\n width: 100%;\n }\n \n .datepicker-toggle-button {\n opacity: 0.3;\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n width: 16px;\n height: 16px;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PGxpbmUgeDE9IjE2IiB5MT0iMiIgeDI9IjE2IiB5Mj0iNiI+PC9saW5lPjxsaW5lIHgxPSI4IiB5MT0iMiIgeDI9IjgiIHkyPSI2Ij48L2xpbmU+PGxpbmUgeDE9IjMiIHkxPSIxMCIgeDI9IjIxIiB5Mj0iMTAiPjwvbGluZT48L3N2Zz4=');\n background-repeat: no-repeat;\n background-position: center;\n pointer-events: none;\n }\n \n .datepicker-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n font-size: 14px;\n line-height: 1.5;\n color: #1a202c;\n background-color: #fff;\n cursor: pointer;\n }\n \n .datepicker-input::-webkit-calendar-picker-indicator {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n cursor: pointer;\n opacity: 0;\n }\n \n .datepicker-input:focus {\n outline: none;\n border-color: #4299e1;\n box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.1);\n }\n";
3126
- if (typeof document !== "undefined") {
3127
- var styleSheet = document.createElement("style");
3128
- styleSheet.textContent = datepickerStyles;
3129
- document.head.appendChild(styleSheet);
3130
- }
2963
+ injectDatepickerStyles();
3131
2964
  var ConditionRules = function ConditionRules(_ref) {
3132
2965
  var type = _ref.type;
3133
2966
  var _useContext = useContext(WorkbookContext),
@@ -3448,7 +3281,8 @@ var RangeDialog = function RangeDialog() {
3448
3281
  showDialog = _useDialog.showDialog;
3449
3282
  var _locale = locale(context),
3450
3283
  dataVerification = _locale.dataVerification,
3451
- button = _locale.button;
3284
+ button = _locale.button,
3285
+ toolbar = _locale.toolbar;
3452
3286
  var _useState = useState(getDisplayedRangeTxt(context)),
3453
3287
  _useState2 = _slicedToArray(_useState, 2),
3454
3288
  rangeTxt2 = _useState2[0],
@@ -3473,7 +3307,7 @@ var RangeDialog = function RangeDialog() {
3473
3307
  }), undefined, locale(context).conditionformat["conditionformat_".concat(rulesType)]);
3474
3308
  return;
3475
3309
  }
3476
- showDialog(/*#__PURE__*/React.createElement(DataVerification, null));
3310
+ showDialog(/*#__PURE__*/React.createElement(DataVerification, null), undefined, toolbar.dataVerification);
3477
3311
  }, [setContext, showDialog, context]);
3478
3312
  useEffect(function () {
3479
3313
  setRangeTxt2(getDisplayedRangeTxt(context));
@@ -3662,7 +3496,7 @@ var DropDownList = function DropDownList() {
3662
3496
  arr.splice(index, 1);
3663
3497
  }
3664
3498
  setSelected(arr);
3665
- setDropcownValue(ctx, v, arr);
3499
+ setDropdownValue(ctx, v, arr);
3666
3500
  });
3667
3501
  },
3668
3502
  tabIndex: 0
@@ -3677,6 +3511,118 @@ var DropDownList = function DropDownList() {
3677
3511
  }));
3678
3512
  };
3679
3513
 
3514
+ var IframeBoxs = function IframeBoxs() {
3515
+ var _context$insertedIfra;
3516
+ var _useContext = useContext(WorkbookContext),
3517
+ context = _useContext.context,
3518
+ setContext = _useContext.setContext,
3519
+ refs = _useContext.refs;
3520
+ var containerRef = useRef(null);
3521
+ useEffect(function () {
3522
+ var handleClickOutside = function handleClickOutside(e) {
3523
+ if (!containerRef.current) return;
3524
+ var iframeBoxes = containerRef.current.querySelectorAll(".luckysheet-modal-dialog-iframe");
3525
+ var clickedInsideSomeIframe = Array.from(iframeBoxes).some(function (el) {
3526
+ return el.contains(e.target);
3527
+ });
3528
+ if (!clickedInsideSomeIframe && context.activeIframe !== undefined) {
3529
+ setContext(function (ctx) {
3530
+ ctx.activeIframe = undefined;
3531
+ });
3532
+ }
3533
+ };
3534
+ document.addEventListener("mousedown", handleClickOutside);
3535
+ return function () {
3536
+ document.removeEventListener("mousedown", handleClickOutside);
3537
+ };
3538
+ }, [context.activeIframe, setContext]);
3539
+ return /*#__PURE__*/React.createElement("div", {
3540
+ id: "fortune-iframe-boxes",
3541
+ ref: containerRef
3542
+ }, (_context$insertedIfra = context.insertedIframes) === null || _context$insertedIfra === void 0 ? void 0 : _context$insertedIfra.map(function (frame) {
3543
+ var isActive = frame.id === context.activeIframe;
3544
+ var style = {
3545
+ width: frame.width * context.zoomRatio,
3546
+ height: frame.height * context.zoomRatio,
3547
+ left: frame.left * context.zoomRatio,
3548
+ top: frame.top * context.zoomRatio,
3549
+ position: "absolute",
3550
+ padding: 0,
3551
+ zIndex: isActive ? 300 : 200
3552
+ };
3553
+ return /*#__PURE__*/React.createElement("div", {
3554
+ key: frame.id,
3555
+ id: isActive ? "fortune-modal-dialog-activeIframe" : frame.id,
3556
+ className: "luckysheet-modal-dialog luckysheet-modal-dialog-iframe",
3557
+ style: style,
3558
+ onClick: function onClick(e) {
3559
+ if (!isActive) {
3560
+ setContext(function (ctx) {
3561
+ ctx.activeIframe = frame.id;
3562
+ });
3563
+ }
3564
+ e.stopPropagation();
3565
+ },
3566
+ onMouseDown: function onMouseDown(e) {
3567
+ if (isActive) {
3568
+ onIframeMoveStart(context, refs.globalCache, e.nativeEvent);
3569
+ }
3570
+ e.stopPropagation();
3571
+ }
3572
+ }, /*#__PURE__*/React.createElement("div", {
3573
+ className: "luckysheet-modal-dialog-content",
3574
+ style: {
3575
+ width: "100%",
3576
+ height: "100%",
3577
+ overflow: "hidden"
3578
+ }
3579
+ }, /*#__PURE__*/React.createElement("iframe", {
3580
+ title: "iframe-".concat(frame.id),
3581
+ src: frame.src,
3582
+ style: {
3583
+ width: "100%",
3584
+ height: "100%",
3585
+ border: "none",
3586
+ pointerEvents: "none"
3587
+ }
3588
+ })), /*#__PURE__*/React.createElement("div", {
3589
+ className: "luckysheet-modal-dialog-border"
3590
+ }), isActive && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
3591
+ className: "luckysheet-modal-dialog-resize"
3592
+ }, ["lt", "mt", "lm", "rm", "rt", "lb", "mb", "rb"].map(function (dir) {
3593
+ return /*#__PURE__*/React.createElement("div", {
3594
+ key: dir,
3595
+ className: "luckysheet-modal-dialog-resize-item luckysheet-modal-dialog-resize-item-".concat(dir),
3596
+ "data-type": dir,
3597
+ style: {
3598
+ zIndex: 300,
3599
+ position: "absolute"
3600
+ },
3601
+ onMouseDown: function onMouseDown(e) {
3602
+ onIframeResizeStart(context, refs.globalCache, e.nativeEvent, dir);
3603
+ e.stopPropagation();
3604
+ }
3605
+ });
3606
+ })), /*#__PURE__*/React.createElement("div", {
3607
+ className: "luckysheet-modal-dialog-controll"
3608
+ }, /*#__PURE__*/React.createElement("span", {
3609
+ className: "luckysheet-modal-controll-btn luckysheet-modal-controll-del",
3610
+ role: "button",
3611
+ tabIndex: 0,
3612
+ title: "Delete",
3613
+ onClick: function onClick() {
3614
+ setContext(function (ctx) {
3615
+ var _ctx$insertedIframes;
3616
+ ctx.insertedIframes = ctx === null || ctx === void 0 ? void 0 : (_ctx$insertedIframes = ctx.insertedIframes) === null || _ctx$insertedIframes === void 0 ? void 0 : _ctx$insertedIframes.filter(function (f) {
3617
+ return f.id !== frame.id;
3618
+ });
3619
+ ctx.activeIframe = undefined;
3620
+ });
3621
+ }
3622
+ }, "DELETE")))));
3623
+ }));
3624
+ };
3625
+
3680
3626
  var SheetOverlay = function SheetOverlay() {
3681
3627
  var _refs$cellArea$curren, _refs$cellArea$curren2, _context$luckysheet_s, _context$luckysheet_s2, _context$luckysheet_s3, _context$luckysheet_s4, _context$luckysheet_s5, _context$luckysheet_s6, _context$presences$le, _context$presences, _context$linkCard, _context$rangeDialog;
3682
3628
  var _useContext = useContext(WorkbookContext),
@@ -4119,7 +4065,7 @@ var SheetOverlay = function SheetOverlay() {
4119
4065
  id: "luckysheet-multipleRange-show"
4120
4066
  }), /*#__PURE__*/React.createElement("div", {
4121
4067
  id: "luckysheet-dynamicArray-hightShow"
4122
- }), /*#__PURE__*/React.createElement(ImgBoxs, null), /*#__PURE__*/React.createElement("div", {
4068
+ }), /*#__PURE__*/React.createElement(ImgBoxs, null), /*#__PURE__*/React.createElement(IframeBoxs, null), /*#__PURE__*/React.createElement("div", {
4123
4069
  id: "luckysheet-dataVerification-dropdown-btn",
4124
4070
  onClick: function onClick() {
4125
4071
  setContext(function (ctx) {
@@ -4132,8 +4078,9 @@ var SheetOverlay = function SheetOverlay() {
4132
4078
  display: "none"
4133
4079
  }
4134
4080
  }, /*#__PURE__*/React.createElement(SVGIcon, {
4135
- name: "combo-arrow",
4136
- width: 16
4081
+ name: "caret-down-fill",
4082
+ width: 16,
4083
+ height: 16
4137
4084
  })), context.dataVerificationDropDownList && /*#__PURE__*/React.createElement(DropDownList, null), /*#__PURE__*/React.createElement("div", {
4138
4085
  id: "luckysheet-dataVerification-showHintBox",
4139
4086
  className: "luckysheet-mousedown-cancel",
@@ -4367,9 +4314,6 @@ var Sheet = function Sheet(_ref) {
4367
4314
  }
4368
4315
  }, [context, refs.canvas, refs.globalCache.freezen, setContext, sheet.id]);
4369
4316
  var onWheel = useCallback(function (e) {
4370
- var el = document.getElementById("function-details");
4371
- var isMouseOver = el === null || el === void 0 ? void 0 : el.matches(":hover");
4372
- if (el && isMouseOver) return;
4373
4317
  setContext(function (draftCtx) {
4374
4318
  handleGlobalWheel(draftCtx, e, refs.globalCache, refs.scrollbarX.current, refs.scrollbarY.current);
4375
4319
  });
@@ -4455,6 +4399,9 @@ var Combo = function Combo(_ref) {
4455
4399
  setPopupPosition = _useState4[1];
4456
4400
  var popupRef = useRef(null);
4457
4401
  var buttonRef = useRef(null);
4402
+ var isLucideIcon = useMemo(function () {
4403
+ return (iconId === null || iconId === void 0 ? void 0 : iconId.startsWith("align-")) || ["text-overflow", "text-wrap", "text-clip"].includes(iconId);
4404
+ }, [iconId]);
4458
4405
  useOutsideClick(popupRef, function () {
4459
4406
  setOpen(false);
4460
4407
  });
@@ -4482,7 +4429,7 @@ var Combo = function Combo(_ref) {
4482
4429
  }, /*#__PURE__*/React.createElement("div", {
4483
4430
  ref: buttonRef,
4484
4431
  className: "fortune-toolbar-combo"
4485
- }, /*#__PURE__*/React.createElement("div", {
4432
+ }, !isLucideIcon ? (/*#__PURE__*/React.createElement("div", {
4486
4433
  className: "fortune-toolbar-combo-button",
4487
4434
  onClick: function onClick(e) {
4488
4435
  if (_onClick) {
@@ -4501,7 +4448,13 @@ var Combo = function Combo(_ref) {
4501
4448
  name: iconId
4502
4449
  })) : (/*#__PURE__*/React.createElement("span", {
4503
4450
  className: "fortune-toolbar-combo-text"
4504
- }, text !== undefined ? text : ""))), showArrow && (/*#__PURE__*/React.createElement("div", {
4451
+ }, text !== undefined ? text : "")))) : (/*#__PURE__*/React.createElement(IconButton, {
4452
+ icon: getIcon(iconId),
4453
+ variant: "ghost",
4454
+ onClick: function onClick() {
4455
+ return setOpen(!open);
4456
+ }
4457
+ })), showArrow && (/*#__PURE__*/React.createElement("div", {
4505
4458
  className: "fortune-toolbar-combo-arrow",
4506
4459
  onClick: function onClick() {
4507
4460
  return setOpen(!open);
@@ -5406,6 +5359,121 @@ var FormatSearch = function FormatSearch(_ref) {
5406
5359
  }, button.cancel)));
5407
5360
  };
5408
5361
 
5362
+ var DuneChartsInputModal = function DuneChartsInputModal(_ref) {
5363
+ var isOpen = _ref.isOpen,
5364
+ onClose = _ref.onClose,
5365
+ onSubmit = _ref.onSubmit,
5366
+ icon = _ref.icon,
5367
+ _ref$submitText = _ref.submitText,
5368
+ submitText = _ref$submitText === void 0 ? "Submit" : _ref$submitText,
5369
+ _ref$placeholder = _ref.placeholder,
5370
+ placeholder = _ref$placeholder === void 0 ? "Enter a value..." : _ref$placeholder;
5371
+ var _useState = useState(""),
5372
+ _useState2 = _slicedToArray(_useState, 2),
5373
+ url = _useState2[0],
5374
+ setUrl = _useState2[1];
5375
+ var _useState3 = useState(false),
5376
+ _useState4 = _slicedToArray(_useState3, 2),
5377
+ showError = _useState4[0],
5378
+ setShowError = _useState4[1];
5379
+ var inputRef = useRef(null);
5380
+ useEffect(function () {
5381
+ if (isOpen && inputRef.current) {
5382
+ var timer = setTimeout(function () {
5383
+ var _inputRef$current;
5384
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
5385
+ }, 100);
5386
+ return function () {
5387
+ return clearTimeout(timer);
5388
+ };
5389
+ }
5390
+ return undefined;
5391
+ }, [isOpen]);
5392
+ if (!isOpen) return null;
5393
+ var handleSubmit = function handleSubmit() {
5394
+ var trimmed = url.trim();
5395
+ if (trimmed && sanitizeDuneUrl(trimmed)) {
5396
+ onSubmit(trimmed);
5397
+ setUrl("");
5398
+ setShowError(false);
5399
+ onClose();
5400
+ } else {
5401
+ setShowError(true);
5402
+ }
5403
+ };
5404
+ var handleKeyDown = function handleKeyDown(e) {
5405
+ e.stopPropagation();
5406
+ if (e.key === "Enter") {
5407
+ handleSubmit();
5408
+ }
5409
+ };
5410
+ return /*#__PURE__*/React.createElement("div", {
5411
+ className: "custom-overlay",
5412
+ onClick: onClose
5413
+ }, /*#__PURE__*/React.createElement("div", {
5414
+ className: "input-modal",
5415
+ style: {
5416
+ transformOrigin: "top center"
5417
+ },
5418
+ onClick: function onClick(e) {
5419
+ return e.stopPropagation();
5420
+ },
5421
+ onKeyDown: handleKeyDown
5422
+ }, /*#__PURE__*/React.createElement("div", {
5423
+ className: "modal-header"
5424
+ }, /*#__PURE__*/React.createElement(SVGIcon, {
5425
+ name: icon
5426
+ }), /*#__PURE__*/React.createElement("input", {
5427
+ ref: inputRef,
5428
+ className: "modal-input",
5429
+ type: "text",
5430
+ placeholder: placeholder,
5431
+ value: url,
5432
+ onChange: function onChange(e) {
5433
+ setUrl(e.target.value);
5434
+ setShowError(false);
5435
+ },
5436
+ onKeyDown: handleKeyDown
5437
+ })), showError && (/*#__PURE__*/React.createElement("div", {
5438
+ className: "modal-error-message"
5439
+ }, /*#__PURE__*/React.createElement(SVGIcon, {
5440
+ style: {
5441
+ width: "14px",
5442
+ height: "14px"
5443
+ },
5444
+ name: "circle-alert"
5445
+ }), /*#__PURE__*/React.createElement("span", null, "Please make sure the URL is a valid Dune chart link"))), url.length > 0 && !showError && (/*#__PURE__*/React.createElement("div", {
5446
+ className: "modal-footer"
5447
+ }, /*#__PURE__*/React.createElement(Button$1, {
5448
+ onClick: handleSubmit,
5449
+ className: "modal-button"
5450
+ }, submitText)))));
5451
+ };
5452
+
5453
+ var getIcon = function getIcon(title) {
5454
+ switch (title) {
5455
+ case "align-left":
5456
+ return "AlignLeft";
5457
+ case "align-center":
5458
+ return "AlignCenter";
5459
+ case "align-right":
5460
+ return "AlignRight";
5461
+ case "align-top":
5462
+ return "ArrowUpFromLine";
5463
+ case "align-middle":
5464
+ return "AlignVerticalMiddle";
5465
+ case "align-bottom":
5466
+ return "ArrowDownFromLine";
5467
+ case "text-overflow":
5468
+ return "TextOverflow";
5469
+ case "text-wrap":
5470
+ return "WrapText";
5471
+ case "text-clip":
5472
+ return "TextClip";
5473
+ default:
5474
+ return "";
5475
+ }
5476
+ };
5409
5477
  var Toolbar = function Toolbar(_ref) {
5410
5478
  var _context$luckysheet_s, _flowdata$row, _settings$customToolb;
5411
5479
  var setMoreItems = _ref.setMoreItems,
@@ -5427,6 +5495,10 @@ var Toolbar = function Toolbar(_ref) {
5427
5495
  _useState4 = _slicedToArray(_useState3, 2),
5428
5496
  itemLocations = _useState4[0],
5429
5497
  setItemLocations = _useState4[1];
5498
+ var _useState5 = useState(false),
5499
+ _useState6 = _slicedToArray(_useState5, 2),
5500
+ showDuneModal = _useState6[0],
5501
+ setShowDuneModal = _useState6[1];
5430
5502
  var _useDialog = useDialog(),
5431
5503
  showDialog = _useDialog.showDialog,
5432
5504
  hideDialog = _useDialog.hideDialog;
@@ -5457,12 +5529,12 @@ var Toolbar = function Toolbar(_ref) {
5457
5529
  var sheetWidth = context.luckysheetTableContentHW[0];
5458
5530
  var currency = settings.currency;
5459
5531
  var defaultFormat = defaultFmt(currency);
5460
- var _useState5 = useState("#000000"),
5461
- _useState6 = _slicedToArray(_useState5, 1),
5462
- customColor = _useState6[0];
5463
- var _useState7 = useState("1"),
5532
+ var _useState7 = useState("#000000"),
5464
5533
  _useState8 = _slicedToArray(_useState7, 1),
5465
- customStyle = _useState8[0];
5534
+ customColor = _useState8[0];
5535
+ var _useState9 = useState("1"),
5536
+ _useState0 = _slicedToArray(_useState9, 1),
5537
+ customStyle = _useState0[0];
5466
5538
  var showSubMenu = useCallback(function (e, className) {
5467
5539
  var target = e.target;
5468
5540
  var menuItem = target.className === "fortune-toolbar-menu-line" ? target.parentElement : target;
@@ -5742,27 +5814,38 @@ var Toolbar = function Toolbar(_ref) {
5742
5814
  tooltip: toolbar.horizontalAlign,
5743
5815
  showArrow: false
5744
5816
  }, function (setOpen) {
5745
- return /*#__PURE__*/React.createElement(Select, null, items.map(function (_ref3) {
5746
- var text = _ref3.text,
5747
- title = _ref3.title;
5748
- return /*#__PURE__*/React.createElement(Option, {
5817
+ return /*#__PURE__*/React.createElement(Select, {
5818
+ style: {
5819
+ minWidth: "fit-content",
5820
+ display: "flex",
5821
+ flexDirection: "row",
5822
+ alignItems: "center",
5823
+ justifyContent: "center",
5824
+ gap: 4
5825
+ }
5826
+ }, items.map(function (_ref3) {
5827
+ var _$find2;
5828
+ var title = _ref3.title;
5829
+ return /*#__PURE__*/React.createElement(IconButton, {
5749
5830
  key: title,
5831
+ isActive: ((_$find2 = _.find(items, function (item) {
5832
+ return "".concat(item.value) === "".concat(cell === null || cell === void 0 ? void 0 : cell.ht);
5833
+ })) === null || _$find2 === void 0 ? void 0 : _$find2.title) === title,
5834
+ icon: getIcon(title),
5835
+ variant: "ghost",
5750
5836
  onClick: function onClick() {
5751
5837
  setContext(function (ctx) {
5752
5838
  handleHorizontalAlign(ctx, refs.cellInput.current, title.replace("align-", ""));
5753
5839
  });
5754
5840
  setOpen(false);
5755
- }
5756
- }, /*#__PURE__*/React.createElement("div", {
5757
- className: "fortune-toolbar-menu-line"
5758
- }, text, /*#__PURE__*/React.createElement(SVGIcon, {
5759
- name: title
5760
- })));
5841
+ },
5842
+ tabIndex: 0
5843
+ });
5761
5844
  }));
5762
5845
  });
5763
5846
  }
5764
5847
  if (name === "vertical-align") {
5765
- var _$find2;
5848
+ var _$find3;
5766
5849
  var _items = [{
5767
5850
  title: "align-top",
5768
5851
  text: align.top,
@@ -5777,29 +5860,40 @@ var Toolbar = function Toolbar(_ref) {
5777
5860
  value: 2
5778
5861
  }];
5779
5862
  return /*#__PURE__*/React.createElement(Combo, {
5780
- iconId: ((_$find2 = _.find(_items, function (item) {
5863
+ iconId: ((_$find3 = _.find(_items, function (item) {
5781
5864
  return "".concat(item.value) === "".concat(cell === null || cell === void 0 ? void 0 : cell.vt);
5782
- })) === null || _$find2 === void 0 ? void 0 : _$find2.title) || "align-top",
5865
+ })) === null || _$find3 === void 0 ? void 0 : _$find3.title) || "align-top",
5783
5866
  key: name,
5784
5867
  tooltip: toolbar.verticalAlign,
5785
5868
  showArrow: false
5786
5869
  }, function (setOpen) {
5787
- return /*#__PURE__*/React.createElement(Select, null, _items.map(function (_ref4) {
5788
- var text = _ref4.text,
5789
- title = _ref4.title;
5790
- return /*#__PURE__*/React.createElement(Option, {
5870
+ return /*#__PURE__*/React.createElement(Select, {
5871
+ style: {
5872
+ minWidth: "fit-content",
5873
+ display: "flex",
5874
+ flexDirection: "row",
5875
+ alignItems: "center",
5876
+ justifyContent: "center",
5877
+ gap: 4
5878
+ }
5879
+ }, _items.map(function (_ref4) {
5880
+ var _$find4;
5881
+ var title = _ref4.title;
5882
+ return /*#__PURE__*/React.createElement(IconButton, {
5791
5883
  key: title,
5884
+ isActive: ((_$find4 = _.find(_items, function (item) {
5885
+ return "".concat(item.value) === "".concat(cell === null || cell === void 0 ? void 0 : cell.vt);
5886
+ })) === null || _$find4 === void 0 ? void 0 : _$find4.title) === title,
5887
+ icon: getIcon(title),
5888
+ variant: "ghost",
5792
5889
  onClick: function onClick() {
5793
5890
  setContext(function (ctx) {
5794
5891
  handleVerticalAlign(ctx, refs.cellInput.current, title.replace("align-", ""));
5795
5892
  });
5796
5893
  setOpen(false);
5797
- }
5798
- }, /*#__PURE__*/React.createElement("div", {
5799
- className: "fortune-toolbar-menu-line"
5800
- }, text, /*#__PURE__*/React.createElement(SVGIcon, {
5801
- name: title
5802
- })));
5894
+ },
5895
+ tabIndex: 0
5896
+ });
5803
5897
  }));
5804
5898
  });
5805
5899
  }
@@ -5874,7 +5968,7 @@ var Toolbar = function Toolbar(_ref) {
5874
5968
  key: name,
5875
5969
  onClick: function onClick() {
5876
5970
  if (context.allowEdit === false) return;
5877
- showDialog(/*#__PURE__*/React.createElement(DataVerification, null));
5971
+ showDialog(/*#__PURE__*/React.createElement(DataVerification, null), undefined, toolbar.dataVerification);
5878
5972
  }
5879
5973
  });
5880
5974
  }
@@ -6348,12 +6442,23 @@ var Toolbar = function Toolbar(_ref) {
6348
6442
  tooltip: toolbar.textWrap,
6349
6443
  showArrow: false
6350
6444
  }, function (setOpen) {
6351
- return /*#__PURE__*/React.createElement(Select, null, _items6.map(function (_ref1) {
6352
- var text = _ref1.text,
6353
- iconId = _ref1.iconId,
6445
+ return /*#__PURE__*/React.createElement(Select, {
6446
+ style: {
6447
+ minWidth: "fit-content",
6448
+ display: "flex",
6449
+ flexDirection: "row",
6450
+ alignItems: "center",
6451
+ justifyContent: "center",
6452
+ gap: 4
6453
+ }
6454
+ }, _items6.map(function (_ref1) {
6455
+ var iconId = _ref1.iconId,
6354
6456
  value = _ref1.value;
6355
- return /*#__PURE__*/React.createElement(Option, {
6457
+ return /*#__PURE__*/React.createElement(IconButton, {
6356
6458
  key: value,
6459
+ isActive: _curr.value === value,
6460
+ icon: getIcon(iconId),
6461
+ variant: "ghost",
6357
6462
  onClick: function onClick() {
6358
6463
  setContext(function (ctx) {
6359
6464
  var d = getFlowdata(ctx);
@@ -6361,12 +6466,9 @@ var Toolbar = function Toolbar(_ref) {
6361
6466
  updateFormat(ctx, refs.cellInput.current, d, "tb", value);
6362
6467
  });
6363
6468
  setOpen(false);
6364
- }
6365
- }, /*#__PURE__*/React.createElement("div", {
6366
- className: "fortune-toolbar-menu-line"
6367
- }, text, /*#__PURE__*/React.createElement(SVGIcon, {
6368
- name: iconId
6369
- })));
6469
+ },
6470
+ tabIndex: 0
6471
+ });
6370
6472
  }));
6371
6473
  });
6372
6474
  }
@@ -6517,7 +6619,7 @@ var Toolbar = function Toolbar(_ref) {
6517
6619
  });
6518
6620
  }
6519
6621
  });
6520
- }, [toolbar, cell, setContext, refs.cellInput, refs.fxInput, refs.globalCache, defaultFormat, align, handleUndo, handleRedo, flowdata, formula, showDialog, hideDialog, merge, border, freezen, screenshot, sort, textWrap, rotation, filter, splitText, findAndReplace, context.luckysheet_select_save, context.defaultFontSize, context.allowEdit, comment, fontarray, hideSubMenu, showSubMenu, refs.canvas, customColor, customStyle, toolbarFormat.moreCurrency]);
6622
+ }, [toolbar, cell, setContext, refs.cellInput, refs.fxInput, refs.globalCache, defaultFormat, align, handleUndo, handleRedo, flowdata, formula, showDuneModal, merge, border, freezen, screenshot, sort, textWrap, rotation, filter, splitText, findAndReplace, context.luckysheet_select_save, context.defaultFontSize, context.allowEdit, comment, fontarray, hideSubMenu, showSubMenu, refs.canvas, customColor, customStyle, toolbarFormat.moreCurrency]);
6521
6623
  return /*#__PURE__*/React.createElement("div", {
6522
6624
  ref: containerRef,
6523
6625
  className: "fortune-toolbar",
@@ -6572,7 +6674,29 @@ var Toolbar = function Toolbar(_ref) {
6572
6674
  icon: n.icon,
6573
6675
  iconName: n.iconName
6574
6676
  }, n.children);
6575
- }));
6677
+ }), /*#__PURE__*/React.createElement(Button, {
6678
+ iconId: "dune-logo",
6679
+ tooltip: "Insert Dune Chart",
6680
+ key: "dune-charts",
6681
+ onClick: function onClick() {
6682
+ if (context.allowEdit === false) return;
6683
+ setShowDuneModal(true);
6684
+ }
6685
+ }), showDuneModal && (/*#__PURE__*/React.createElement(DuneChartsInputModal, {
6686
+ isOpen: showDuneModal,
6687
+ onSubmit: function onSubmit(url) {
6688
+ setContext(function (draftCtx) {
6689
+ insertDuneChart(draftCtx, url);
6690
+ });
6691
+ setShowDuneModal(false);
6692
+ },
6693
+ onClose: function onClose() {
6694
+ return setShowDuneModal(false);
6695
+ },
6696
+ icon: "dune-logo",
6697
+ placeholder: "Add Dune chart link to embed",
6698
+ submitText: "Embed Dune chart"
6699
+ })));
6576
6700
  };
6577
6701
 
6578
6702
  var LocationBox = function LocationBox() {
@@ -9703,6 +9827,74 @@ var SVGDefines = function SVGDefines(_ref) {
9703
9827
  "clip-rule": "evenodd",
9704
9828
  d: "M12.75 2.25C13.1642 2.25 13.5 2.58579 13.5 3V15C13.5 15.4142 13.1642 15.75 12.75 15.75C12.3358 15.75 12 15.4142 12 15V3C12 2.58579 12.3358 2.25 12.75 2.25Z",
9705
9829
  fill: "#363B3F"
9830
+ })), /*#__PURE__*/React.createElement("symbol", {
9831
+ id: "dune-logo",
9832
+ viewBox: "0 0 18 16",
9833
+ fill: "none"
9834
+ }, /*#__PURE__*/React.createElement("svg", {
9835
+ width: "18",
9836
+ height: "16",
9837
+ viewBox: "0 0 18 16",
9838
+ fill: "none",
9839
+ xmlns: "http://www.w3.org/2000/svg"
9840
+ }, /*#__PURE__*/React.createElement("g", {
9841
+ "clip-path": "url(#clip0_80_246690)"
9842
+ }, /*#__PURE__*/React.createElement("path", {
9843
+ d: "M7.99485 15.9875C12.4102 15.9875 15.9896 12.4085 15.9896 7.99373C15.9896 3.57891 12.4102 0 7.99485 0C3.57941 0 0 3.57891 0 7.99373C0 12.4085 3.57941 15.9875 7.99485 15.9875Z",
9844
+ fill: "#F4603E"
9845
+ }), /*#__PURE__*/React.createElement("path", {
9846
+ d: "M1.39258 12.5028C1.39258 12.5028 6.67562 10.7723 15.9868 7.73633C15.9868 7.73633 16.4968 12.7082 11.3424 15.3015C11.3424 15.3015 8.80068 16.5197 6.01215 15.7383C6.01215 15.7383 3.23545 15.2142 1.39258 12.5028Z",
9847
+ fill: "#1E1870"
9848
+ })), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
9849
+ id: "clip0_80_246690"
9850
+ }, /*#__PURE__*/React.createElement("rect", {
9851
+ width: "16",
9852
+ height: "16",
9853
+ fill: "white"
9854
+ }))))), /*#__PURE__*/React.createElement("symbol", {
9855
+ id: "circle-alert",
9856
+ viewBox: "0 0 14 14",
9857
+ fill: "none"
9858
+ }, /*#__PURE__*/React.createElement("svg", {
9859
+ width: "14",
9860
+ height: "14",
9861
+ viewBox: "0 0 14 14",
9862
+ fill: "none",
9863
+ xmlns: "http://www.w3.org/2000/svg"
9864
+ }, /*#__PURE__*/React.createElement("g", {
9865
+ "clip-path": "url(#clip0_138_127604)"
9866
+ }, /*#__PURE__*/React.createElement("path", {
9867
+ d: "M6.99967 4.0835C7.32184 4.0835 7.58301 4.34466 7.58301 4.66683V7.00016C7.58301 7.32233 7.32184 7.5835 6.99967 7.5835C6.67751 7.5835 6.41634 7.32233 6.41634 7.00016V4.66683C6.41634 4.34466 6.67751 4.0835 6.99967 4.0835Z",
9868
+ fill: "#FB3449"
9869
+ }), /*#__PURE__*/React.createElement("path", {
9870
+ d: "M6.99967 8.75016C6.67751 8.75016 6.41634 9.01133 6.41634 9.3335C6.41634 9.65566 6.67751 9.91683 6.99967 9.91683H7.00551C7.32767 9.91683 7.58884 9.65566 7.58884 9.3335C7.58884 9.01133 7.32767 8.75016 7.00551 8.75016H6.99967Z",
9871
+ fill: "#FB3449"
9872
+ }), /*#__PURE__*/React.createElement("path", {
9873
+ "fill-rule": "evenodd",
9874
+ "clip-rule": "evenodd",
9875
+ d: "M0.583008 7.00016C0.583008 3.45634 3.45585 0.583496 6.99967 0.583496C10.5435 0.583496 13.4163 3.45634 13.4163 7.00016C13.4163 10.544 10.5435 13.4168 6.99967 13.4168C3.45585 13.4168 0.583008 10.544 0.583008 7.00016ZM6.99967 1.75016C4.10018 1.75016 1.74967 4.10067 1.74967 7.00016C1.74967 9.89966 4.10018 12.2502 6.99967 12.2502C9.89917 12.2502 12.2497 9.89966 12.2497 7.00016C12.2497 4.10067 9.89917 1.75016 6.99967 1.75016Z",
9876
+ fill: "#FB3449"
9877
+ })), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
9878
+ id: "clip0_138_127604"
9879
+ }, /*#__PURE__*/React.createElement("rect", {
9880
+ width: "14",
9881
+ height: "14",
9882
+ fill: "white"
9883
+ }))))), /*#__PURE__*/React.createElement("symbol", {
9884
+ id: "caret-down-fill",
9885
+ width: "14",
9886
+ height: "14",
9887
+ viewBox: "0 0 14 14",
9888
+ fill: "none"
9889
+ }, /*#__PURE__*/React.createElement("rect", {
9890
+ width: "14",
9891
+ height: "14",
9892
+ rx: "4",
9893
+ fill: "black",
9894
+ "fill-opacity": "0.1"
9895
+ }), /*#__PURE__*/React.createElement("path", {
9896
+ d: "M6.64775 8.97978L3.77152 6.10355C3.45654 5.78857 3.67962 5.25 4.12507 5.25H9.87753C10.323 5.25 10.5461 5.78857 10.2311 6.10355L7.35486 8.97978C7.15959 9.17504 6.84301 9.17504 6.64775 8.97978Z",
9897
+ fill: "#363B3F"
9706
9898
  }))));
9707
9899
  };
9708
9900
 
@@ -10342,6 +10534,9 @@ function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cel
10342
10534
  },
10343
10535
  getLocaleContext: function getLocaleContext() {
10344
10536
  return locale(context);
10537
+ },
10538
+ getWorkbookContect: function getWorkbookContect() {
10539
+ return context;
10345
10540
  }
10346
10541
  };
10347
10542
  }
@@ -11065,6 +11260,48 @@ var SheetList = function SheetList() {
11065
11260
  }));
11066
11261
  };
11067
11262
 
11263
+ var DunePreview = function DunePreview(_ref) {
11264
+ var url = _ref.url,
11265
+ position = _ref.position,
11266
+ onKeepAsLink = _ref.onKeepAsLink,
11267
+ onEmbed = _ref.onEmbed;
11268
+ var embedUrl = sanitizeDuneUrl(url);
11269
+ if (!embedUrl) return null;
11270
+ return /*#__PURE__*/React.createElement("div", {
11271
+ className: "fortune-dune-preview",
11272
+ style: {
11273
+ left: position.left,
11274
+ top: position.top
11275
+ },
11276
+ onClick: function onClick(e) {
11277
+ return e.stopPropagation();
11278
+ }
11279
+ }, /*#__PURE__*/React.createElement("div", {
11280
+ className: "fortune-dune-preview-header"
11281
+ }, /*#__PURE__*/React.createElement("span", {
11282
+ className: "fortune-dune-preview-title"
11283
+ }, "Detected Dune chart link")), /*#__PURE__*/React.createElement("div", {
11284
+ className: "fortune-dune-preview-content"
11285
+ }, /*#__PURE__*/React.createElement("iframe", {
11286
+ src: embedUrl,
11287
+ title: "Dune Chart Preview",
11288
+ style: {
11289
+ width: "100%",
11290
+ height: "100%",
11291
+ border: "none"
11292
+ }
11293
+ })), /*#__PURE__*/React.createElement("p", null, "Do you want to insert Dune chart?"), /*#__PURE__*/React.createElement("div", {
11294
+ className: "fortune-dune-preview-footer"
11295
+ }, /*#__PURE__*/React.createElement(Button$1, {
11296
+ variant: "ghost",
11297
+ onClick: onKeepAsLink,
11298
+ className: "!w-fit px-0"
11299
+ }, "Keep as Link"), /*#__PURE__*/React.createElement(Button$1, {
11300
+ onClick: onEmbed,
11301
+ className: "!w-fit px-0"
11302
+ }, "Embed")));
11303
+ };
11304
+
11068
11305
  var _excluded = ["onChange", "onOp", "data"];
11069
11306
  enablePatches();
11070
11307
  var triggerGroupValuesRefresh = function triggerGroupValuesRefresh(ctx) {
@@ -11597,7 +11834,25 @@ var Workbook = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
11597
11834
  style: {
11598
11835
  width: "60px"
11599
11836
  }
11600
- }, formula.count, ": ", calInfo.count)), !!calInfo.numberC && !!calInfo.sum && (/*#__PURE__*/React.createElement("div", null, formula.sum, ": ", calInfo.sum)), !!calInfo.numberC && !!calInfo.average && (/*#__PURE__*/React.createElement("div", null, formula.average, ": ", calInfo.average)), !!calInfo.numberC && !!calInfo.max && (/*#__PURE__*/React.createElement("div", null, formula.max, ": ", calInfo.max)), !!calInfo.numberC && !!calInfo.min && (/*#__PURE__*/React.createElement("div", null, formula.min, ": ", calInfo.min)))))));
11837
+ }, formula.count, ": ", calInfo.count)), !!calInfo.numberC && !!calInfo.sum && (/*#__PURE__*/React.createElement("div", null, formula.sum, ": ", calInfo.sum)), !!calInfo.numberC && !!calInfo.average && (/*#__PURE__*/React.createElement("div", null, formula.average, ": ", calInfo.average)), !!calInfo.numberC && !!calInfo.max && (/*#__PURE__*/React.createElement("div", null, formula.max, ": ", calInfo.max)), !!calInfo.numberC && !!calInfo.min && (/*#__PURE__*/React.createElement("div", null, formula.min, ": ", calInfo.min)))), context.showDunePreview && (/*#__PURE__*/React.createElement(DunePreview, {
11838
+ url: context.showDunePreview.url,
11839
+ position: context.showDunePreview.position,
11840
+ onKeepAsLink: function onKeepAsLink() {
11841
+ setContextWithProduce(function (draftCtx) {
11842
+ draftCtx.showDunePreview = undefined;
11843
+ }, {
11844
+ noHistory: true
11845
+ });
11846
+ },
11847
+ onEmbed: function onEmbed() {
11848
+ setContextWithProduce(function (draftCtx) {
11849
+ insertDuneChart(draftCtx, context.showDunePreview.url);
11850
+ draftCtx.showDunePreview = undefined;
11851
+ }, {
11852
+ noHistory: true
11853
+ });
11854
+ }
11855
+ })))));
11601
11856
  });
11602
11857
 
11603
11858
  export { Workbook };