@fileverse-dev/fortune-react 1.0.2-mod-33 → 1.0.2-mod-28-patch-1

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, getRangetxt, goToLink, replaceHtml, removeHyperlink, onRangeSelectionModalMoveStart, saveHyperlink, createFilterOptions, onImageMoveStart, onImageResizeStart, showComments, setEditingComment, onCommentBoxMoveStart, confirmMessage, getRangeByTxt, getDropdownList, setCellValue, 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';
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';
@@ -801,49 +801,43 @@ var FormulaSearch = function FormulaSearch(props) {
801
801
  justifyContent: "space-between"
802
802
  }
803
803
  }, /*#__PURE__*/React.createElement("div", {
804
- className: "luckysheet-formula-search-func"
804
+ className: "luckysheet-formula-search-func text-body-sm"
805
805
  }, v.n), /*#__PURE__*/React.createElement("div", {
806
806
  style: {
807
807
  display: "flex",
808
+ justifyContent: "end",
809
+ width: "68px",
810
+ height: "20px",
811
+ alignItems: "center",
808
812
  gap: "4px"
809
813
  }
810
814
  }, v.LOGO && (/*#__PURE__*/React.createElement("img", {
811
815
  src: v.LOGO,
812
816
  alt: "Service Logo",
813
- width: 32,
814
- height: 32
817
+ style: {
818
+ width: "20px"
819
+ }
815
820
  })), v.API_KEY && (/*#__PURE__*/React.createElement("div", {
816
821
  style: {
817
822
  borderRadius: "4px",
818
- width: "20px",
819
- height: "20px",
820
- backgroundColor: "".concat(localStorage.getItem(v.API_KEY) ? "#177E23" : "#F9A92B")
821
- }
823
+ backgroundColor: "".concat(localStorage.getItem(v.API_KEY) ? "#177E23" : "#F9A92B"),
824
+ width: "16px",
825
+ height: "16px"
826
+ },
827
+ className: "flex justify-center"
822
828
  }, /*#__PURE__*/React.createElement(LucideIcon, {
823
829
  name: "Key",
824
830
  style: {
825
- color: "white"
831
+ color: localStorage.getItem(v.API_KEY) ? "white" : "#77818A",
832
+ width: "12px",
833
+ height: "12px"
826
834
  }
827
835
  }))))), /*#__PURE__*/React.createElement("div", {
828
- className: "luckysheet-formula-search-detail"
836
+ className: "luckysheet-formula-search-detail mt-1 text-helper-text-sm"
829
837
  }, v.d));
830
838
  }));
831
839
  };
832
840
 
833
- function lightenHexColor(hex) {
834
- var amount = 100;
835
- if (hex.startsWith("#")) {
836
- hex = hex.slice(1);
837
- }
838
- var r = parseInt(hex.slice(0, 2), 16);
839
- var g = parseInt(hex.slice(2, 4), 16);
840
- var b = parseInt(hex.slice(4, 6), 16);
841
- r = Math.min(255, r + amount);
842
- g = Math.min(255, g + amount);
843
- b = Math.min(255, b + amount);
844
- var newHex = "#".concat((1 << 24 | r << 16 | g << 8 | b).toString(16).slice(1).toUpperCase());
845
- return newHex;
846
- }
847
841
  var FormulaHint = function FormulaHint(props) {
848
842
  var _useContext = useContext(WorkbookContext),
849
843
  context = _useContext.context;
@@ -858,13 +852,26 @@ var FormulaHint = function FormulaHint(props) {
858
852
  _useState4 = _slicedToArray(_useState3, 2),
859
853
  showAPInput = _useState4[0],
860
854
  setShowAPInput = _useState4[1];
855
+ var _useState5 = useState(!!localStorage.getItem(fn === null || fn === void 0 ? void 0 : fn.API_KEY)),
856
+ _useState6 = _slicedToArray(_useState5, 2),
857
+ isKeyAdded = _useState6[0],
858
+ setApiKeyAdded = _useState6[1];
859
+ useEffect(function () {
860
+ if (fn) {
861
+ setApiKeyAdded(!!localStorage.getItem(fn === null || fn === void 0 ? void 0 : fn.API_KEY));
862
+ setAPI_KEY(localStorage.getItem(fn === null || fn === void 0 ? void 0 : fn.API_KEY) || "");
863
+ setShowAPInput(!localStorage.getItem(fn === null || fn === void 0 ? void 0 : fn.API_KEY));
864
+ }
865
+ }, [fn]);
861
866
  if (!fn) return null;
862
867
  return /*#__PURE__*/React.createElement("div", _objectSpread2(_objectSpread2({}, props), {}, {
863
868
  id: "luckysheet-formula-help-c",
864
869
  className: "luckysheet-formula-help-c",
865
870
  style: {
866
871
  border: "1px solid ".concat(fn.BRAND_COLOR),
867
- backgroundColor: "".concat(fn.BRAND_COLOR ? lightenHexColor(fn.BRAND_COLOR) : "#F8F9FA")
872
+ backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA"),
873
+ width: "340px",
874
+ padding: "0px"
868
875
  }
869
876
  }), /*#__PURE__*/React.createElement("div", {
870
877
  className: "luckysheet-formula-help-close",
@@ -879,17 +886,21 @@ var FormulaHint = function FormulaHint(props) {
879
886
  className: "fa fa-angle-up",
880
887
  "aria-hidden": "true"
881
888
  })), /*#__PURE__*/React.createElement("div", {
882
- className: "luckysheet-formula-help-title formula-title",
889
+ className: "flex items-center justify-between",
883
890
  style: {
884
- backgroundColor: "".concat(fn.BRAND_COLOR ? lightenHexColor(fn.BRAND_COLOR) : "#F8F9FA")
891
+ backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA"),
892
+ padding: "10px"
885
893
  }
886
894
  }, /*#__PURE__*/React.createElement("div", {
887
- className: "luckysheet-formula-help-title-formula"
888
- }, /*#__PURE__*/React.createElement("span", {
895
+ className: "luckysheet-formula-help-title-formula color-text-default"
896
+ }, /*#__PURE__*/React.createElement("code", {
897
+ style: {
898
+ fontWeight: 500
899
+ },
889
900
  className: "luckysheet-arguments-help-function-name"
890
- }, fn.n), /*#__PURE__*/React.createElement("span", {
901
+ }, fn.n), /*#__PURE__*/React.createElement("code", {
891
902
  className: "luckysheet-arguments-paren"
892
- }, "("), /*#__PURE__*/React.createElement("span", {
903
+ }, "("), /*#__PURE__*/React.createElement("code", {
893
904
  className: "luckysheet-arguments-parameter-holder"
894
905
  }, fn.p.map(function (param, i) {
895
906
  var name = param.name;
@@ -899,43 +910,51 @@ var FormulaHint = function FormulaHint(props) {
899
910
  if (param.require === "o") {
900
911
  name = "[".concat(name, "]");
901
912
  }
902
- return /*#__PURE__*/React.createElement("span", {
913
+ return /*#__PURE__*/React.createElement("code", {
903
914
  className: "luckysheet-arguments-help-parameter",
904
915
  dir: "auto",
905
916
  key: name
906
917
  }, name, i !== fn.p.length - 1 && ", ");
907
- })), /*#__PURE__*/React.createElement("span", {
918
+ })), /*#__PURE__*/React.createElement("code", {
908
919
  className: "luckysheet-arguments-paren"
909
920
  }, ")")), /*#__PURE__*/React.createElement("div", {
910
921
  style: {
911
922
  display: "flex",
923
+ justifyContent: "end",
924
+ width: "68px",
925
+ height: "20px",
926
+ alignItems: "center",
912
927
  gap: "4px"
913
928
  }
914
929
  }, fn.LOGO && (/*#__PURE__*/React.createElement("img", {
915
930
  src: fn.LOGO,
916
931
  alt: "Service Logo",
917
- width: 32,
918
- height: 32
932
+ style: {
933
+ width: "20px"
934
+ }
919
935
  })), fn.API_KEY && (/*#__PURE__*/React.createElement("div", {
920
936
  style: {
921
937
  borderRadius: "4px",
922
- width: "20px",
923
- height: "20px",
924
- backgroundColor: "".concat(localStorage.getItem(fn.API_KEY) ? "#177E23" : "#F9A92B")
925
- }
938
+ backgroundColor: "".concat(isKeyAdded ? "#177E23" : "#e8ebec"),
939
+ width: "16px",
940
+ height: "16px"
941
+ },
942
+ className: "flex justify-center"
926
943
  }, /*#__PURE__*/React.createElement(LucideIcon, {
927
944
  name: "Key",
928
945
  style: {
929
- color: "white"
946
+ color: isKeyAdded ? "white" : "#77818A",
947
+ width: "12px",
948
+ height: "12px"
930
949
  }
931
950
  }))))), /*#__PURE__*/React.createElement("div", {
932
951
  className: "luckysheet-formula-help-content",
933
952
  style: {
934
- backgroundColor: "".concat(fn.BRAND_COLOR ? lightenHexColor(fn.BRAND_COLOR) : "#F8F9FA")
953
+ backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA")
935
954
  }
936
955
  }, fn.API_KEY && (/*#__PURE__*/React.createElement("div", {
937
956
  style: {
938
- borderLeft: "4px solid ".concat(API_KEY ? "#177E23" : "#fb923c"),
957
+ borderLeft: "4px solid ".concat(isKeyAdded ? "#177E23" : "#fb923c"),
939
958
  backgroundColor: "white",
940
959
  padding: "16px",
941
960
  margin: "4px 4px 0px 4px",
@@ -952,25 +971,20 @@ var FormulaHint = function FormulaHint(props) {
952
971
  }
953
972
  }, /*#__PURE__*/React.createElement("h3", {
954
973
  style: {
955
- fontSize: "14px",
956
- fontWeight: "600",
957
- color: "#1f2937",
958
974
  margin: "0 0 8px 0"
959
- }
960
- }, "API key is required"), /*#__PURE__*/React.createElement(LucideIcon, {
975
+ },
976
+ className: "text-heading-xsm color-text-default"
977
+ }, isKeyAdded ? "API key provided" : "API key is required"), /*#__PURE__*/React.createElement(LucideIcon, {
961
978
  name: "ChevronDown",
962
979
  width: 24,
963
980
  height: 24
964
981
  })), showAPInput && (/*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("p", {
965
982
  style: {
966
- color: "#6b7280",
967
983
  margin: "0 0 16px 0"
968
- }
984
+ },
985
+ className: "text-body-sm color-text-default"
969
986
  }, "This function is require API key. Please paste it below and\n press 'Ok'."), /*#__PURE__*/React.createElement("div", {
970
- style: {
971
- display: "flex",
972
- gap: "12px"
973
- }
987
+ className: "w-full"
974
988
  }, /*#__PURE__*/React.createElement(TextField, {
975
989
  value: API_KEY,
976
990
  id: "function-api-key",
@@ -978,12 +992,19 @@ var FormulaHint = function FormulaHint(props) {
978
992
  placeholder: "API key",
979
993
  onChange: function onChange(e) {
980
994
  setAPI_KEY(e.target.value);
995
+ setApiKeyAdded(false);
981
996
  }
982
- }), /*#__PURE__*/React.createElement(Button$1, {
997
+ }), /*#__PURE__*/React.createElement("div", {
998
+ className: "flex justify-end mt-2"
999
+ }, /*#__PURE__*/React.createElement(Button$1, {
983
1000
  onClick: function onClick() {
984
1001
  localStorage.setItem(fn.API_KEY, API_KEY);
985
- }
986
- }, "Ok")))))), /*#__PURE__*/React.createElement("div", {
1002
+ setApiKeyAdded(true);
1003
+ setShowAPInput(false);
1004
+ },
1005
+ disabled: !API_KEY,
1006
+ className: "min-w-[80px]"
1007
+ }, "Ok"))))))), /*#__PURE__*/React.createElement("div", {
987
1008
  style: {
988
1009
  backgroundColor: "white",
989
1010
  padding: "6px",
@@ -991,13 +1012,20 @@ var FormulaHint = function FormulaHint(props) {
991
1012
  borderRadius: "4px"
992
1013
  }
993
1014
  }, /*#__PURE__*/React.createElement("div", {
994
- className: "luckysheet-formula-help-content-example"
1015
+ className: ""
995
1016
  }, /*#__PURE__*/React.createElement("div", {
996
- className: "luckysheet-arguments-help-section-title example-title"
997
- }, formulaMore.helpExample), /*#__PURE__*/React.createElement("div", {
998
- className: "luckysheet-arguments-help-formula"
1017
+ style: {
1018
+ lineHeight: "16px",
1019
+ fontSize: "12px"
1020
+ },
1021
+ className: "text-body-sm-bold mb-1 color-text-secondary"
1022
+ }, formulaMore.helpExample), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("code", {
1023
+ style: {
1024
+ overflowWrap: "break-word"
1025
+ },
1026
+ className: "example-value-code"
999
1027
  }, /*#__PURE__*/React.createElement("span", {
1000
- className: "luckysheet-arguments-help-function-name example-value"
1028
+ className: "luckysheet-arguments-help-function-name"
1001
1029
  }, fn.n), /*#__PURE__*/React.createElement("span", {
1002
1030
  className: "luckysheet-arguments-paren"
1003
1031
  }, "("), /*#__PURE__*/React.createElement("span", {
@@ -1010,26 +1038,32 @@ var FormulaHint = function FormulaHint(props) {
1010
1038
  }, param.example, i !== fn.p.length - 1 && ", ");
1011
1039
  })), /*#__PURE__*/React.createElement("span", {
1012
1040
  className: "luckysheet-arguments-paren"
1013
- }, ")"))), /*#__PURE__*/React.createElement("div", {
1041
+ }, ")")))), /*#__PURE__*/React.createElement("div", {
1014
1042
  className: "luckysheet-formula-help-content-detail",
1015
1043
  style: {
1016
- paddingBottom: "6px"
1044
+ paddingBottom: "8px"
1017
1045
  }
1018
1046
  }, /*#__PURE__*/React.createElement("div", {
1019
- className: "luckysheet-arguments-help-section"
1047
+ className: ""
1020
1048
  }, /*#__PURE__*/React.createElement("div", {
1021
- className: "luckysheet-arguments-help-section-title luckysheet-arguments-help-parameter-name example-title"
1049
+ style: {
1050
+ lineHeight: "16px",
1051
+ fontSize: "12px",
1052
+ padding: "0px"
1053
+ },
1054
+ className: "text-body-sm-bold mb-1 mt-2 color-text-secondary"
1022
1055
  }, "About"), /*#__PURE__*/React.createElement("span", {
1023
- className: "luckysheet-arguments-help-parameter-content example-value"
1056
+ className: "luckysheet-arguments-help-parameter-content text-helper-text-sm"
1024
1057
  }, fn.d))), /*#__PURE__*/React.createElement("div", {
1058
+ style: {
1059
+ paddingTop: "6px"
1060
+ },
1025
1061
  className: "luckysheet-formula-help-content-param"
1026
1062
  }, fn.p.map(function (param) {
1027
1063
  return /*#__PURE__*/React.createElement("div", {
1028
- className: "luckysheet-arguments-help-section",
1064
+ className: "",
1029
1065
  key: param.name
1030
- }, /*#__PURE__*/React.createElement("div", {
1031
- className: "luckysheet-arguments-help-section-title example-title"
1032
- }, param.name, param.repeat === "y" && (/*#__PURE__*/React.createElement("span", {
1066
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("code", null, param.name, param.repeat === "y" && (/*#__PURE__*/React.createElement("span", {
1033
1067
  className: "luckysheet-arguments-help-argument-info example-value",
1034
1068
  style: {
1035
1069
  marginTop: "2px"
@@ -1039,15 +1073,21 @@ var FormulaHint = function FormulaHint(props) {
1039
1073
  style: {
1040
1074
  marginTop: "2px"
1041
1075
  }
1042
- }, "-[", formulaMore.allowOptionText, "]"))), /*#__PURE__*/React.createElement("span", {
1043
- className: "luckysheet-arguments-help-parameter-content example-value",
1076
+ }, "-[", formulaMore.allowOptionText, "]")))), /*#__PURE__*/React.createElement("span", {
1077
+ className: "luckysheet-arguments-help-parameter-content text-helper-text-sm",
1044
1078
  style: {
1045
1079
  marginTop: "2px"
1046
1080
  }
1047
1081
  }, param.detail));
1048
1082
  })))), /*#__PURE__*/React.createElement("div", {
1049
- className: "luckysheet-formula-help-foot"
1050
- }));
1083
+ style: {
1084
+ backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA"),
1085
+ padding: "8px"
1086
+ },
1087
+ className: "w-full"
1088
+ }, /*#__PURE__*/React.createElement("p", {
1089
+ className: "color-text-link text-helper-text-sm"
1090
+ }, "Learn More")));
1051
1091
  };
1052
1092
 
1053
1093
  function usePrevious(value) {
@@ -1792,7 +1832,8 @@ var LinkEditCard = function LinkEditCard(_ref) {
1792
1832
  originType = _ref.originType,
1793
1833
  originAddress = _ref.originAddress,
1794
1834
  isEditing = _ref.isEditing,
1795
- position = _ref.position;
1835
+ position = _ref.position,
1836
+ selectingCellRange = _ref.selectingCellRange;
1796
1837
  var _useContext = useContext(WorkbookContext),
1797
1838
  context = _useContext.context,
1798
1839
  setContext = _useContext.setContext,
@@ -1811,24 +1852,29 @@ var LinkEditCard = function LinkEditCard(_ref) {
1811
1852
  setLinkType = _useState6[1];
1812
1853
  var _locale = locale(context),
1813
1854
  insertLink = _locale.insertLink,
1814
- linkTypeList = _locale.linkTypeList;
1855
+ linkTypeList = _locale.linkTypeList,
1856
+ button = _locale.button;
1857
+ var lastCell = useRef(normalizeSelection(context, [{
1858
+ row: [r, r],
1859
+ column: [c, c]
1860
+ }]));
1861
+ var skipCellRangeSet = useRef(true);
1815
1862
  var isLinkAddressValid = isLinkValid(context, linkType, linkAddress);
1816
- var isButtonDisabled = useMemo(function () {
1817
- if (!linkText.trim()) return true;
1818
- if (linkType === "webpage") {
1819
- return !linkAddress.trim() || !isLinkAddressValid.isValid;
1820
- }
1821
- if (linkType === "sheet") {
1822
- return !linkAddress.trim();
1823
- }
1824
- return false;
1825
- }, [linkText, linkAddress, linkType, isLinkAddressValid.isValid]);
1863
+ var tooltip = /*#__PURE__*/React.createElement("div", {
1864
+ className: "validation-input-tip"
1865
+ }, isLinkAddressValid.tooltip);
1826
1866
  var hideLinkCard = useCallback(function () {
1827
1867
  _.set(refs.globalCache, "linkCard.mouseEnter", false);
1828
1868
  setContext(function (draftCtx) {
1829
1869
  draftCtx.linkCard = undefined;
1830
1870
  });
1831
1871
  }, [refs.globalCache, setContext]);
1872
+ var setRangeModalVisible = useCallback(function (visible) {
1873
+ return setContext(function (draftCtx) {
1874
+ draftCtx.luckysheet_select_save = lastCell.current;
1875
+ if (draftCtx.linkCard != null) draftCtx.linkCard.selectingCellRange = visible;
1876
+ });
1877
+ }, [setContext]);
1832
1878
  var containerEvent = useMemo(function () {
1833
1879
  return {
1834
1880
  onMouseEnter: function onMouseEnter() {
@@ -1854,6 +1900,19 @@ var LinkEditCard = function LinkEditCard(_ref) {
1854
1900
  }
1855
1901
  };
1856
1902
  }, [refs.globalCache]);
1903
+ var renderBottomButton = useCallback(function (onOk, onCancel) {
1904
+ return /*#__PURE__*/React.createElement("div", {
1905
+ className: "button-group"
1906
+ }, /*#__PURE__*/React.createElement("div", {
1907
+ className: "button-basic button-default",
1908
+ onClick: onCancel,
1909
+ tabIndex: 0
1910
+ }, button.cancel), /*#__PURE__*/React.createElement("div", {
1911
+ className: "button-basic button-primary",
1912
+ onClick: onOk,
1913
+ tabIndex: 0
1914
+ }, button.confirm));
1915
+ }, [button]);
1857
1916
  var renderToolbarButton = useCallback(function (iconId, onClick) {
1858
1917
  return /*#__PURE__*/React.createElement("div", {
1859
1918
  className: "fortune-toolbar-button",
@@ -1872,6 +1931,23 @@ var LinkEditCard = function LinkEditCard(_ref) {
1872
1931
  setLinkText(originText);
1873
1932
  setLinkType(originType);
1874
1933
  }, [rc, originAddress, originText, originType]);
1934
+ useLayoutEffect(function () {
1935
+ if (selectingCellRange) {
1936
+ skipCellRangeSet.current = true;
1937
+ }
1938
+ }, [selectingCellRange]);
1939
+ useLayoutEffect(function () {
1940
+ if (skipCellRangeSet.current) {
1941
+ skipCellRangeSet.current = false;
1942
+ return;
1943
+ }
1944
+ if (selectingCellRange) {
1945
+ var len = _.size(context.luckysheet_select_save);
1946
+ if (len > 0) {
1947
+ setLinkAddress(getRangetxt(context, context.currentSheetId, context.luckysheet_select_save[len - 1], ""));
1948
+ }
1949
+ }
1950
+ }, [context, selectingCellRange]);
1875
1951
  if (!isEditing) {
1876
1952
  return /*#__PURE__*/React.createElement("div", _objectSpread2(_objectSpread2({}, containerEvent), {}, {
1877
1953
  onKeyDown: function onKeyDown(e) {
@@ -1912,16 +1988,69 @@ var LinkEditCard = function LinkEditCard(_ref) {
1912
1988
  });
1913
1989
  }));
1914
1990
  }
1915
- return /*#__PURE__*/React.createElement("div", _objectSpread2({
1916
- className: "fortune-link-card",
1991
+ return selectingCellRange ? (/*#__PURE__*/React.createElement("div", _objectSpread2(_objectSpread2({
1992
+ className: "fortune-link-modify-modal range-selection-modal",
1993
+ style: {
1994
+ left: position.cellLeft,
1995
+ top: position.cellBottom + 5
1996
+ }
1997
+ }, _.omit(containerEvent, ["onMouseDown", "onMouseMove", "onMouseUp"])), {}, {
1998
+ onMouseDown: function onMouseDown(e) {
1999
+ var nativeEvent = e.nativeEvent;
2000
+ onRangeSelectionModalMoveStart(context, refs.globalCache, nativeEvent);
2001
+ e.stopPropagation();
2002
+ }
2003
+ }), /*#__PURE__*/React.createElement("div", {
2004
+ className: "modal-icon-close",
2005
+ onClick: function onClick() {
2006
+ return setRangeModalVisible(false);
2007
+ },
2008
+ tabIndex: 0
2009
+ }, /*#__PURE__*/React.createElement(SVGIcon, {
2010
+ name: "close"
2011
+ })), /*#__PURE__*/React.createElement("div", {
2012
+ className: "modal-title"
2013
+ }, insertLink.selectCellRange), /*#__PURE__*/React.createElement("input", _objectSpread2(_objectSpread2({}, containerEvent), {}, {
2014
+ className: "range-selection-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input"),
2015
+ placeholder: insertLink.cellRangePlaceholder,
2016
+ onChange: function onChange(e) {
2017
+ return setLinkAddress(e.target.value);
2018
+ },
2019
+ value: linkAddress
2020
+ })), tooltip, /*#__PURE__*/React.createElement("div", {
2021
+ className: "modal-footer"
2022
+ }, renderBottomButton(function () {
2023
+ if (isLinkAddressValid.isValid) setRangeModalVisible(false);
2024
+ }, function () {
2025
+ setLinkAddress(originAddress);
2026
+ setRangeModalVisible(false);
2027
+ })))) : (/*#__PURE__*/React.createElement("div", _objectSpread2({
2028
+ className: "fortune-link-modify-modal",
1917
2029
  style: {
1918
2030
  left: position.cellLeft + 20,
1919
2031
  top: position.cellBottom
1920
2032
  }
1921
- }, containerEvent), /*#__PURE__*/React.createElement(Select$1, {
2033
+ }, containerEvent), /*#__PURE__*/React.createElement("div", {
2034
+ className: "fortune-link-modify-line"
2035
+ }, /*#__PURE__*/React.createElement("div", {
2036
+ className: "fortune-link-modify-title"
2037
+ }, insertLink.linkText), /*#__PURE__*/React.createElement("input", {
2038
+ className: "fortune-link-modify-input",
2039
+ spellCheck: "false",
2040
+ autoFocus: true,
2041
+ value: linkText,
2042
+ onChange: function onChange(e) {
2043
+ return setLinkText(e.target.value);
2044
+ }
2045
+ })), /*#__PURE__*/React.createElement("div", {
2046
+ className: "fortune-link-modify-line"
2047
+ }, /*#__PURE__*/React.createElement("div", {
2048
+ className: "fortune-link-modify-title"
2049
+ }, insertLink.linkType), /*#__PURE__*/React.createElement("select", {
2050
+ className: "fortune-link-modify-select",
1922
2051
  value: linkType,
1923
- onValueChange: function onValueChange(value) {
1924
- if (value === "sheet") {
2052
+ onChange: function onChange(e) {
2053
+ if (e.target.value === "sheet") {
1925
2054
  if (!linkText) {
1926
2055
  setLinkText(context.luckysheetfile[0].name);
1927
2056
  }
@@ -1929,79 +2058,65 @@ var LinkEditCard = function LinkEditCard(_ref) {
1929
2058
  } else {
1930
2059
  setLinkAddress("");
1931
2060
  }
1932
- setLinkType(value);
1933
- }
1934
- }, /*#__PURE__*/React.createElement(SelectTrigger, {
1935
- className: "fortune-link-type-select"
1936
- }, /*#__PURE__*/React.createElement(SelectValue, null)), /*#__PURE__*/React.createElement(SelectContent, {
1937
- className: "fortune-link-type-dropdown"
1938
- }, linkTypeList.filter(function (type) {
1939
- return type.value !== "cellrange";
1940
- }).map(function (type) {
1941
- return /*#__PURE__*/React.createElement(SelectItem$1, {
2061
+ if (e.target.value === "cellrange") setRangeModalVisible(true);
2062
+ setLinkType(e.target.value);
2063
+ }
2064
+ }, linkTypeList.map(function (type) {
2065
+ return /*#__PURE__*/React.createElement("option", {
1942
2066
  key: type.value,
1943
2067
  value: type.value
1944
2068
  }, type.text);
1945
2069
  }))), /*#__PURE__*/React.createElement("div", {
1946
- className: "fortune-input-with-icon"
1947
- }, /*#__PURE__*/React.createElement("div", {
1948
- className: "input-icon"
1949
- }, /*#__PURE__*/React.createElement(LucideIcon, {
1950
- name: "ALargeSmall"
1951
- })), /*#__PURE__*/React.createElement(TextField, {
1952
- placeholder: "Display text",
1953
- value: linkText,
2070
+ className: "fortune-link-modify-line"
2071
+ }, linkType === "webpage" && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
2072
+ className: "fortune-link-modify-title"
2073
+ }, insertLink.linkAddress), /*#__PURE__*/React.createElement("input", {
2074
+ className: "fortune-link-modify-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input"),
2075
+ spellCheck: "false",
2076
+ value: linkAddress,
1954
2077
  onChange: function onChange(e) {
1955
- return setLinkText(e.target.value);
1956
- },
1957
- className: "fortune-link-input"
1958
- })), linkType === "webpage" && (/*#__PURE__*/React.createElement("div", {
1959
- className: "fortune-input-with-icon"
1960
- }, /*#__PURE__*/React.createElement("div", {
1961
- className: "input-icon"
1962
- }, /*#__PURE__*/React.createElement(SVGIcon, {
1963
- name: "link"
1964
- })), /*#__PURE__*/React.createElement(TextField, {
1965
- placeholder: "Paste URL",
2078
+ return setLinkAddress(e.target.value);
2079
+ }
2080
+ }), tooltip)), linkType === "cellrange" && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
2081
+ className: "fortune-link-modify-title"
2082
+ }, insertLink.linkCell), /*#__PURE__*/React.createElement("input", {
2083
+ className: "fortune-link-modify-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input"),
2084
+ spellCheck: "false",
1966
2085
  value: linkAddress,
1967
2086
  onChange: function onChange(e) {
1968
2087
  return setLinkAddress(e.target.value);
2088
+ }
2089
+ }), /*#__PURE__*/React.createElement("div", {
2090
+ className: "fortune-link-modify-cell-selector",
2091
+ onClick: function onClick() {
2092
+ return setRangeModalVisible(true);
1969
2093
  },
1970
- className: "fortune-link-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input")
1971
- }))), linkType === "sheet" && (/*#__PURE__*/React.createElement("div", {
1972
- className: "fortune-input-with-icon"
1973
- }, /*#__PURE__*/React.createElement("div", {
1974
- className: "input-icon"
2094
+ tabIndex: 0
1975
2095
  }, /*#__PURE__*/React.createElement(SVGIcon, {
1976
- name: "link"
1977
- })), /*#__PURE__*/React.createElement(Select$1, {
1978
- onValueChange: function onValueChange(value) {
1979
- if (!linkText) setLinkText(value);
1980
- setLinkAddress(value);
2096
+ name: "border-all"
2097
+ })), tooltip)), linkType === "sheet" && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
2098
+ className: "fortune-link-modify-title"
2099
+ }, insertLink.linkSheet), /*#__PURE__*/React.createElement("select", {
2100
+ className: "fortune-link-modify-select",
2101
+ onChange: function onChange(e) {
2102
+ if (!linkText) setLinkText(e.target.value);
2103
+ setLinkAddress(e.target.value);
1981
2104
  },
1982
2105
  value: linkAddress
1983
- }, /*#__PURE__*/React.createElement(SelectTrigger, {
1984
- className: "fortune-sheet-select"
1985
- }, /*#__PURE__*/React.createElement(SelectValue, {
1986
- placeholder: "[Sheet name]"
1987
- })), /*#__PURE__*/React.createElement(SelectContent, {
1988
- className: "fortune-sheet-dropdown"
1989
2106
  }, context.luckysheetfile.map(function (sheet) {
1990
- return /*#__PURE__*/React.createElement(SelectItem$1, {
2107
+ return /*#__PURE__*/React.createElement("option", {
1991
2108
  key: sheet.id,
1992
2109
  value: sheet.name
1993
2110
  }, sheet.name);
1994
- }))))), /*#__PURE__*/React.createElement(Button$1, {
1995
- className: "fortune-insert-button",
1996
- disabled: isButtonDisabled,
1997
- onClick: function onClick() {
1998
- if (isButtonDisabled) return;
1999
- _.set(refs.globalCache, "linkCard.mouseEnter", false);
2000
- setContext(function (draftCtx) {
2001
- return saveHyperlink(draftCtx, r, c, linkText, linkType, linkAddress);
2002
- });
2003
- }
2004
- }, "Insert link"));
2111
+ })), tooltip))), /*#__PURE__*/React.createElement("div", {
2112
+ className: "modal-footer"
2113
+ }, renderBottomButton(function () {
2114
+ if (!isLinkAddressValid.isValid) return;
2115
+ _.set(refs.globalCache, "linkCard.mouseEnter", false);
2116
+ setContext(function (draftCtx) {
2117
+ return saveHyperlink(draftCtx, r, c, linkText, linkType, linkAddress);
2118
+ });
2119
+ }, hideLinkCard))));
2005
2120
  };
2006
2121
 
2007
2122
  var FilterOptions = function FilterOptions(_ref) {
@@ -2103,11 +2218,15 @@ var FilterOptions = function FilterOptions(_ref) {
2103
2218
  width: undefined
2104
2219
  }),
2105
2220
  className: "luckysheet-filter-options ".concat(filterParam == null ? "" : "luckysheet-filter-options-active")
2106
- }, /*#__PURE__*/React.createElement(SVGIcon, {
2107
- name: "filter",
2108
- width: 15,
2109
- height: 15
2110
- }));
2221
+ }, filterParam == null ? (/*#__PURE__*/React.createElement("div", {
2222
+ className: "caret down"
2223
+ })) : (/*#__PURE__*/React.createElement(SVGIcon, {
2224
+ name: "filter-fill-white",
2225
+ style: {
2226
+ width: 15,
2227
+ height: 15
2228
+ }
2229
+ })));
2111
2230
  })));
2112
2231
  };
2113
2232
 
@@ -3205,7 +3324,6 @@ var ConditionRules = function ConditionRules(_ref) {
3205
3324
  }, /*#__PURE__*/React.createElement("span", {
3206
3325
  id: "checkTextColor"
3207
3326
  }, /*#__PURE__*/React.createElement(Checkbox, {
3208
- className: "border-2",
3209
3327
  checked: context.conditionRules.textColor.check,
3210
3328
  onCheckedChange: function onCheckedChange(e) {
3211
3329
  var checked = e.target.checked;
@@ -3233,7 +3351,6 @@ var ConditionRules = function ConditionRules(_ref) {
3233
3351
  }, /*#__PURE__*/React.createElement("span", {
3234
3352
  id: "checkCellColor"
3235
3353
  }, /*#__PURE__*/React.createElement(Checkbox, {
3236
- className: "border-2",
3237
3354
  checked: context.conditionRules.cellColor.check,
3238
3355
  onCheckedChange: function onCheckedChange(e) {
3239
3356
  var checked = e.target.checked;
@@ -4273,8 +4390,6 @@ var Combo = function Combo(_ref) {
4273
4390
  _onClick = _ref.onClick,
4274
4391
  text = _ref.text,
4275
4392
  iconId = _ref.iconId,
4276
- _ref$showArrow = _ref.showArrow,
4277
- showArrow = _ref$showArrow === void 0 ? true : _ref$showArrow,
4278
4393
  children = _ref.children;
4279
4394
  var style = {
4280
4395
  userSelect: "none"
@@ -4291,9 +4406,12 @@ var Combo = function Combo(_ref) {
4291
4406
  setPopupPosition = _useState4[1];
4292
4407
  var popupRef = useRef(null);
4293
4408
  var buttonRef = useRef(null);
4409
+ var openState = useRef(false);
4410
+ var triggerRef = useRef(null);
4294
4411
  useOutsideClick(popupRef, function () {
4295
4412
  setOpen(false);
4296
- });
4413
+ openState.current = false;
4414
+ }, [], triggerRef);
4297
4415
  useLayoutEffect(function () {
4298
4416
  if (!popupRef.current) {
4299
4417
  return;
@@ -4319,43 +4437,27 @@ var Combo = function Combo(_ref) {
4319
4437
  ref: buttonRef,
4320
4438
  className: "fortune-toolbar-combo"
4321
4439
  }, /*#__PURE__*/React.createElement("div", {
4440
+ ref: triggerRef,
4322
4441
  className: "fortune-toolbar-combo-button",
4323
4442
  onClick: function onClick(e) {
4324
- if (_onClick) {
4325
- _onClick(e);
4326
- if (!showArrow) setOpen(!open);
4327
- } else {
4328
- setOpen(!open);
4329
- }
4443
+ openState.current = !openState.current;
4444
+ setOpen(openState.current);
4445
+ if (_onClick) _onClick(e);else setOpen(openState.current);
4330
4446
  },
4331
4447
  tabIndex: 0,
4332
4448
  "data-tips": tooltip,
4333
4449
  role: "button",
4334
- "aria-label": "".concat(tooltip, ": ").concat(text !== undefined ? text : ""),
4450
+ "aria-label": tooltip,
4335
4451
  style: style
4336
4452
  }, iconId ? (/*#__PURE__*/React.createElement(SVGIcon, {
4337
4453
  name: iconId
4338
4454
  })) : (/*#__PURE__*/React.createElement("span", {
4339
4455
  className: "fortune-toolbar-combo-text"
4340
- }, text !== undefined ? text : ""))), showArrow && (/*#__PURE__*/React.createElement("div", {
4341
- className: "fortune-toolbar-combo-arrow",
4342
- onClick: function onClick() {
4343
- return setOpen(!open);
4344
- },
4345
- tabIndex: 0,
4346
- "data-tips": tooltip,
4347
- role: "button",
4348
- "aria-label": tooltip,
4349
- style: style
4350
- }, /*#__PURE__*/React.createElement(LucideIcon, {
4351
- name: "ChevronDown",
4352
- width: 14,
4353
- height: 14
4354
- }))), tooltip && /*#__PURE__*/React.createElement("div", {
4456
+ }, text))), tooltip && /*#__PURE__*/React.createElement("div", {
4355
4457
  className: "fortune-tooltip"
4356
4458
  }, tooltip)), open && (/*#__PURE__*/React.createElement("div", {
4357
4459
  ref: popupRef,
4358
- className: "fortune-toolbar-combo-popup",
4460
+ className: "fortune-toolbar-combo-popup color-text-default",
4359
4461
  style: popupPosition
4360
4462
  }, children === null || children === void 0 ? void 0 : children(setOpen))));
4361
4463
  };
@@ -5118,6 +5220,215 @@ var CustomColor = function CustomColor(_ref) {
5118
5220
  }));
5119
5221
  };
5120
5222
 
5223
+ var size = [{
5224
+ Text: "1",
5225
+ value: "Thin",
5226
+ strokeDasharray: "1,0",
5227
+ strokeWidth: "1"
5228
+ }, {
5229
+ Text: "2",
5230
+ value: "Hair",
5231
+ strokeDasharray: "1,5",
5232
+ strokeWidth: "1"
5233
+ }, {
5234
+ Text: "3",
5235
+ value: "Dotted",
5236
+ strokeDasharray: "2,5",
5237
+ strokeWidth: "2"
5238
+ }, {
5239
+ Text: "4",
5240
+ value: "Dashed",
5241
+ strokeDasharray: "5,5",
5242
+ strokeWidth: "2"
5243
+ }, {
5244
+ Text: "5",
5245
+ value: "DashDot",
5246
+ strokeDasharray: "20,5,5,10,5,5",
5247
+ strokeWidth: "2"
5248
+ }, {
5249
+ Text: "6",
5250
+ value: "DashDotDot",
5251
+ strokeDasharray: "20,5,5,5,5,10,5,5,5,5",
5252
+ strokeWidth: "2"
5253
+ }, {
5254
+ Text: "8",
5255
+ value: "Medium",
5256
+ strokeDasharray: "2,0",
5257
+ strokeWidth: "2"
5258
+ }, {
5259
+ Text: "9",
5260
+ value: "MediumDashed",
5261
+ strokeDasharray: "3,5",
5262
+ strokeWidth: "3"
5263
+ }, {
5264
+ Text: "10",
5265
+ value: "MediumDashDot",
5266
+ strokeDasharray: "20,5,5,10,5,5",
5267
+ strokeWidth: "3"
5268
+ }, {
5269
+ Text: "11",
5270
+ value: "MediumDashDotDot",
5271
+ strokeDasharray: "5,5,5,5,20,5,5,5,5,10",
5272
+ strokeWidth: "3"
5273
+ }, {
5274
+ Text: "13",
5275
+ value: "Thick",
5276
+ strokeDasharray: "2,0",
5277
+ strokeWidth: "3"
5278
+ }];
5279
+ var CustomBorder = function CustomBorder(_ref) {
5280
+ var onPick = _ref.onPick;
5281
+ var _useContext = useContext(WorkbookContext),
5282
+ context = _useContext.context,
5283
+ refs = _useContext.refs;
5284
+ var _locale = locale(context),
5285
+ border = _locale.border;
5286
+ var _useState = useState("#000000"),
5287
+ _useState2 = _slicedToArray(_useState, 2),
5288
+ changeColor = _useState2[0],
5289
+ setchangeColor = _useState2[1];
5290
+ var _useState3 = useState("1"),
5291
+ _useState4 = _slicedToArray(_useState3, 2),
5292
+ changeStyle = _useState4[0],
5293
+ setchangeStyle = _useState4[1];
5294
+ var colorRef = useRef(null);
5295
+ var styleRef = useRef(null);
5296
+ var colorPreviewRef = useRef(null);
5297
+ var _useState5 = useState(""),
5298
+ _useState6 = _slicedToArray(_useState5, 2),
5299
+ previewWith = _useState6[0],
5300
+ setPreviewWith = _useState6[1];
5301
+ var _useState7 = useState(""),
5302
+ _useState8 = _slicedToArray(_useState7, 2),
5303
+ previewdasharry = _useState8[0],
5304
+ setPreviewdasharray = _useState8[1];
5305
+ var showBorderSubMenu = useCallback(function (e) {
5306
+ var target = e.target;
5307
+ var menuItemRect = target.getBoundingClientRect();
5308
+ var subMenuItem = target.querySelector(".fortune-border-select-menu");
5309
+ if (_.isNil(subMenuItem)) return;
5310
+ subMenuItem.style.display = "block";
5311
+ var workbookContainerRect = refs.workbookContainer.current.getBoundingClientRect();
5312
+ if (workbookContainerRect.width - menuItemRect.right > parseFloat(subMenuItem.style.width.replace("px", ""))) {
5313
+ subMenuItem.style.left = "".concat(menuItemRect === null || menuItemRect === void 0 ? void 0 : menuItemRect.width, "px");
5314
+ } else {
5315
+ subMenuItem.style.left = "-".concat(subMenuItem.style.width);
5316
+ }
5317
+ }, [refs.workbookContainer]);
5318
+ var hideBorderSubMenu = useCallback(function () {
5319
+ styleRef.current.style.display = "none";
5320
+ colorRef.current.style.display = "none";
5321
+ }, []);
5322
+ var changePreviewStyle = useCallback(function (width, dasharray) {
5323
+ setPreviewWith(width);
5324
+ setPreviewdasharray(dasharray);
5325
+ }, []);
5326
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
5327
+ className: "fortune-border-select-option",
5328
+ key: "borderColor",
5329
+ onMouseEnter: function onMouseEnter(e) {
5330
+ showBorderSubMenu(e);
5331
+ },
5332
+ onMouseLeave: function onMouseLeave() {
5333
+ hideBorderSubMenu();
5334
+ }
5335
+ }, /*#__PURE__*/React.createElement("div", {
5336
+ className: "fortune-toolbar-menu-line"
5337
+ }, border.borderColor, /*#__PURE__*/React.createElement(SVGIcon, {
5338
+ name: "rightArrow",
5339
+ style: {
5340
+ width: "14px"
5341
+ }
5342
+ })), /*#__PURE__*/React.createElement("div", {
5343
+ ref: colorPreviewRef,
5344
+ className: "fortune-border-color-preview",
5345
+ style: {
5346
+ backgroundColor: changeColor
5347
+ }
5348
+ }), /*#__PURE__*/React.createElement("div", {
5349
+ ref: colorRef,
5350
+ className: "fortune-border-select-menu",
5351
+ style: {
5352
+ display: "none",
5353
+ width: "166px"
5354
+ }
5355
+ }, /*#__PURE__*/React.createElement(CustomColor, {
5356
+ onCustomPick: function onCustomPick(color) {
5357
+ onPick(color, changeStyle);
5358
+ colorPreviewRef.current.style.backgroundColor = changeColor;
5359
+ setchangeColor(color);
5360
+ },
5361
+ onColorPick: function onColorPick(color) {
5362
+ onPick(color, changeStyle);
5363
+ setchangeColor(color);
5364
+ }
5365
+ }))), /*#__PURE__*/React.createElement("div", {
5366
+ className: "fortune-border-select-option",
5367
+ key: "borderStyle",
5368
+ onMouseEnter: function onMouseEnter(e) {
5369
+ showBorderSubMenu(e);
5370
+ },
5371
+ onMouseLeave: function onMouseLeave() {
5372
+ hideBorderSubMenu();
5373
+ }
5374
+ }, /*#__PURE__*/React.createElement("div", {
5375
+ className: "fortune-toolbar-menu-line"
5376
+ }, border.borderStyle, /*#__PURE__*/React.createElement(SVGIcon, {
5377
+ name: "rightArrow",
5378
+ style: {
5379
+ width: "14px"
5380
+ }
5381
+ })), /*#__PURE__*/React.createElement("div", {
5382
+ className: "fortune-border-style-preview"
5383
+ }, /*#__PURE__*/React.createElement("svg", {
5384
+ width: "90"
5385
+ }, /*#__PURE__*/React.createElement("g", {
5386
+ fill: "none",
5387
+ stroke: "black",
5388
+ strokeWidth: previewWith
5389
+ }, /*#__PURE__*/React.createElement("path", {
5390
+ strokeDasharray: previewdasharry,
5391
+ d: "M0 0 l90 0"
5392
+ })))), /*#__PURE__*/React.createElement("div", {
5393
+ ref: styleRef,
5394
+ className: "fortune-border-select-menu fortune-toolbar-select",
5395
+ style: {
5396
+ display: "none",
5397
+ width: "110px"
5398
+ }
5399
+ }, /*#__PURE__*/React.createElement("div", {
5400
+ className: "fortune-border-style-picker-menu fortune-border-style-reset",
5401
+ onClick: function onClick() {
5402
+ onPick(changeColor, "1");
5403
+ changePreviewStyle("1", "1,0");
5404
+ },
5405
+ tabIndex: 0
5406
+ }, border.borderDefault), /*#__PURE__*/React.createElement("div", {
5407
+ className: "fortune-boder-style-picker"
5408
+ }, size.map(function (items, i) {
5409
+ return /*#__PURE__*/React.createElement("div", {
5410
+ key: i,
5411
+ className: "fortune-border-style-picker-menu",
5412
+ onClick: function onClick() {
5413
+ onPick(changeColor, items.Text);
5414
+ setchangeStyle(items.Text);
5415
+ changePreviewStyle(items.strokeWidth, items.strokeDasharray);
5416
+ },
5417
+ tabIndex: 0
5418
+ }, /*#__PURE__*/React.createElement("svg", {
5419
+ height: "10",
5420
+ width: "90"
5421
+ }, /*#__PURE__*/React.createElement("g", {
5422
+ fill: "none",
5423
+ stroke: "black",
5424
+ strokeWidth: items.strokeWidth
5425
+ }, /*#__PURE__*/React.createElement("path", {
5426
+ strokeDasharray: items.strokeDasharray,
5427
+ d: "M0 5 l85 0"
5428
+ }))));
5429
+ })))));
5430
+ };
5431
+
5121
5432
  var FormatSearch = function FormatSearch(_ref) {
5122
5433
  var type = _ref.type,
5123
5434
  _onCancel = _ref.onCancel;
@@ -5400,7 +5711,6 @@ var Toolbar = function Toolbar(_ref) {
5400
5711
  }), /*#__PURE__*/React.createElement(Combo, {
5401
5712
  iconId: name,
5402
5713
  tooltip: tooltip,
5403
- showArrow: false,
5404
5714
  onClick: function onClick() {
5405
5715
  var color = name === "font-color" ? refs.globalCache.recentTextColor : refs.globalCache.recentBackgroundColor;
5406
5716
  if (color) pick(color);
@@ -5433,8 +5743,7 @@ var Toolbar = function Toolbar(_ref) {
5433
5743
  return /*#__PURE__*/React.createElement(Combo, {
5434
5744
  text: currentFmt,
5435
5745
  key: name,
5436
- tooltip: tooltip,
5437
- showArrow: false
5746
+ tooltip: tooltip
5438
5747
  }, function (setOpen) {
5439
5748
  return /*#__PURE__*/React.createElement(Select, null, defaultFormat.map(function (_ref2, ii) {
5440
5749
  var text = _ref2.text,
@@ -5518,8 +5827,7 @@ var Toolbar = function Toolbar(_ref) {
5518
5827
  return /*#__PURE__*/React.createElement(Combo, {
5519
5828
  text: current,
5520
5829
  key: name,
5521
- tooltip: tooltip,
5522
- showArrow: false
5830
+ tooltip: tooltip
5523
5831
  }, function (setOpen) {
5524
5832
  return /*#__PURE__*/React.createElement(Select, null, fontarray.map(function (o) {
5525
5833
  return /*#__PURE__*/React.createElement(Option, {
@@ -5541,8 +5849,7 @@ var Toolbar = function Toolbar(_ref) {
5541
5849
  return /*#__PURE__*/React.createElement(Combo, {
5542
5850
  text: cell ? normalizedCellAttr(cell, "fs", context.defaultFontSize) : context.defaultFontSize.toString(),
5543
5851
  key: name,
5544
- tooltip: tooltip,
5545
- showArrow: false
5852
+ tooltip: tooltip
5546
5853
  }, function (setOpen) {
5547
5854
  return /*#__PURE__*/React.createElement(Select, null, [9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72].map(function (num) {
5548
5855
  return /*#__PURE__*/React.createElement(Option, {
@@ -5577,8 +5884,7 @@ var Toolbar = function Toolbar(_ref) {
5577
5884
  return "".concat(item.value) === "".concat(cell === null || cell === void 0 ? void 0 : cell.ht);
5578
5885
  })) === null || _$find === void 0 ? void 0 : _$find.title) || "align-left",
5579
5886
  key: name,
5580
- tooltip: toolbar.horizontalAlign,
5581
- showArrow: false
5887
+ tooltip: toolbar.horizontalAlign
5582
5888
  }, function (setOpen) {
5583
5889
  return /*#__PURE__*/React.createElement(Select, null, items.map(function (_ref3) {
5584
5890
  var text = _ref3.text,
@@ -5619,8 +5925,7 @@ var Toolbar = function Toolbar(_ref) {
5619
5925
  return "".concat(item.value) === "".concat(cell === null || cell === void 0 ? void 0 : cell.vt);
5620
5926
  })) === null || _$find2 === void 0 ? void 0 : _$find2.title) || "align-top",
5621
5927
  key: name,
5622
- tooltip: toolbar.verticalAlign,
5623
- showArrow: false
5928
+ tooltip: toolbar.verticalAlign
5624
5929
  }, function (setOpen) {
5625
5930
  return /*#__PURE__*/React.createElement(Select, null, _items.map(function (_ref4) {
5626
5931
  var text = _ref4.text,
@@ -5745,8 +6050,7 @@ var Toolbar = function Toolbar(_ref) {
5745
6050
  return /*#__PURE__*/React.createElement(Combo, {
5746
6051
  iconId: "locationCondition",
5747
6052
  key: name,
5748
- tooltip: findAndReplace.location,
5749
- showArrow: false
6053
+ tooltip: findAndReplace.location
5750
6054
  }, function (setOpen) {
5751
6055
  return /*#__PURE__*/React.createElement(Select, null, _items2.map(function (_ref5) {
5752
6056
  var text = _ref5.text,
@@ -5831,8 +6135,7 @@ var Toolbar = function Toolbar(_ref) {
5831
6135
  return /*#__PURE__*/React.createElement(Combo, {
5832
6136
  iconId: "conditionFormat",
5833
6137
  key: name,
5834
- tooltip: toolbar.conditionalFormat,
5835
- showArrow: false
6138
+ tooltip: toolbar.conditionalFormat
5836
6139
  }, function (setOpen) {
5837
6140
  return /*#__PURE__*/React.createElement(ConditionalFormat, {
5838
6141
  items: _items3,
@@ -5929,8 +6232,7 @@ var Toolbar = function Toolbar(_ref) {
5929
6232
  return /*#__PURE__*/React.createElement(Combo, {
5930
6233
  iconId: name,
5931
6234
  key: name,
5932
- tooltip: tooltip,
5933
- showArrow: false
6235
+ tooltip: tooltip
5934
6236
  }, function (setOpen) {
5935
6237
  return /*#__PURE__*/React.createElement(Select, null, itemData.map(function (_ref6) {
5936
6238
  var key = _ref6.key,
@@ -5969,7 +6271,6 @@ var Toolbar = function Toolbar(_ref) {
5969
6271
  iconId: "formula-sum",
5970
6272
  key: name,
5971
6273
  tooltip: toolbar.autoSum,
5972
- showArrow: false,
5973
6274
  onClick: function onClick() {
5974
6275
  return setContext(function (ctx) {
5975
6276
  handleSum(ctx, refs.cellInput.current, refs.fxInput.current, refs.globalCache);
@@ -6041,13 +6342,12 @@ var Toolbar = function Toolbar(_ref) {
6041
6342
  setOpen(false);
6042
6343
  }
6043
6344
  }, /*#__PURE__*/React.createElement("div", {
6345
+ className: "fortune-toolbar-menu-line"
6346
+ }, /*#__PURE__*/React.createElement(SVGIcon, {
6347
+ name: value,
6044
6348
  style: {
6045
- display: "flex",
6046
- alignItems: "center",
6047
- gap: 6
6349
+ marginRight: 4
6048
6350
  }
6049
- }, /*#__PURE__*/React.createElement(SVGIcon, {
6050
- name: value
6051
6351
  }), text));
6052
6352
  }));
6053
6353
  });
@@ -6065,6 +6365,9 @@ var Toolbar = function Toolbar(_ref) {
6065
6365
  }, {
6066
6366
  text: border.borderRight,
6067
6367
  value: "border-right"
6368
+ }, {
6369
+ text: "",
6370
+ value: "divider"
6068
6371
  }, {
6069
6372
  text: border.borderNone,
6070
6373
  value: "border-none"
@@ -6074,6 +6377,9 @@ var Toolbar = function Toolbar(_ref) {
6074
6377
  }, {
6075
6378
  text: border.borderOutside,
6076
6379
  value: "border-outside"
6380
+ }, {
6381
+ text: "",
6382
+ value: "divider"
6077
6383
  }, {
6078
6384
  text: border.borderInside,
6079
6385
  value: "border-inside"
@@ -6086,35 +6392,44 @@ var Toolbar = function Toolbar(_ref) {
6086
6392
  }, {
6087
6393
  text: border.borderSlash,
6088
6394
  value: "border-slash"
6395
+ }, {
6396
+ text: "",
6397
+ value: "divider"
6089
6398
  }];
6090
6399
  return /*#__PURE__*/React.createElement(Combo, {
6091
6400
  iconId: "border-all",
6092
6401
  key: name,
6093
6402
  tooltip: tooltip,
6094
6403
  text: "\u8FB9\u6846\u8BBE\u7F6E",
6095
- showArrow: false,
6096
6404
  onClick: function onClick() {
6097
6405
  return setContext(function (ctx) {
6098
6406
  handleBorder(ctx, "border-all", customColor, customStyle);
6099
6407
  });
6100
6408
  }
6101
6409
  }, function (setOpen) {
6102
- return /*#__PURE__*/React.createElement("div", {
6103
- className: "fortune-toolbar-select fortune-border-grid"
6104
- }, _items4.map(function (_ref9) {
6105
- var value = _ref9.value;
6106
- return /*#__PURE__*/React.createElement("div", {
6410
+ return /*#__PURE__*/React.createElement(Select, null, _items4.map(function (_ref9, ii) {
6411
+ var text = _ref9.text,
6412
+ value = _ref9.value;
6413
+ return value !== "divider" ? (/*#__PURE__*/React.createElement(Option, {
6107
6414
  key: value,
6108
- className: "fortune-border-grid-item",
6109
6415
  onClick: function onClick() {
6110
6416
  setContext(function (ctx) {
6111
6417
  handleBorder(ctx, value, customColor, customStyle);
6112
6418
  });
6113
6419
  setOpen(false);
6114
6420
  }
6115
- }, /*#__PURE__*/React.createElement(SVGIcon, {
6421
+ }, /*#__PURE__*/React.createElement("div", {
6422
+ className: "fortune-toolbar-menu-line"
6423
+ }, text, /*#__PURE__*/React.createElement(SVGIcon, {
6116
6424
  name: value
6425
+ })))) : (/*#__PURE__*/React.createElement(MenuDivider, {
6426
+ key: ii
6117
6427
  }));
6428
+ }), /*#__PURE__*/React.createElement(CustomBorder, {
6429
+ onPick: function onPick(color, style) {
6430
+ setcustomColor(color);
6431
+ setcustomStyle(style);
6432
+ }
6118
6433
  }));
6119
6434
  });
6120
6435
  }
@@ -6136,7 +6451,6 @@ var Toolbar = function Toolbar(_ref) {
6136
6451
  iconId: "freeze-row-col",
6137
6452
  key: name,
6138
6453
  tooltip: tooltip,
6139
- showArrow: false,
6140
6454
  onClick: function onClick() {
6141
6455
  return setContext(function (ctx) {
6142
6456
  handleFreeze(ctx, "freeze-row-col");
@@ -6183,8 +6497,7 @@ var Toolbar = function Toolbar(_ref) {
6183
6497
  return /*#__PURE__*/React.createElement(Combo, {
6184
6498
  iconId: _curr.iconId,
6185
6499
  key: name,
6186
- tooltip: toolbar.textWrap,
6187
- showArrow: false
6500
+ tooltip: toolbar.textWrap
6188
6501
  }, function (setOpen) {
6189
6502
  return /*#__PURE__*/React.createElement(Select, null, _items6.map(function (_ref1) {
6190
6503
  var text = _ref1.text,
@@ -6241,8 +6554,7 @@ var Toolbar = function Toolbar(_ref) {
6241
6554
  return /*#__PURE__*/React.createElement(Combo, {
6242
6555
  iconId: _curr2.iconId,
6243
6556
  key: name,
6244
- tooltip: toolbar.textRotate,
6245
- showArrow: false
6557
+ tooltip: toolbar.textRotate
6246
6558
  }, function (setOpen) {
6247
6559
  return /*#__PURE__*/React.createElement(Select, null, _items7.map(function (_ref10) {
6248
6560
  var text = _ref10.text,
@@ -6310,8 +6622,7 @@ var Toolbar = function Toolbar(_ref) {
6310
6622
  return /*#__PURE__*/React.createElement(Combo, {
6311
6623
  iconId: "filter",
6312
6624
  key: name,
6313
- tooltip: toolbar.sortAndFilter,
6314
- showArrow: false
6625
+ tooltip: toolbar.sortAndFilter
6315
6626
  }, function (setOpen) {
6316
6627
  return /*#__PURE__*/React.createElement(Select, {
6317
6628
  style: {
@@ -6334,9 +6645,7 @@ var Toolbar = function Toolbar(_ref) {
6334
6645
  justifyContent: "start"
6335
6646
  }
6336
6647
  }, /*#__PURE__*/React.createElement(SVGIcon, {
6337
- name: iconId,
6338
- width: 24,
6339
- height: 18
6648
+ name: iconId
6340
6649
  }), text))) : (/*#__PURE__*/React.createElement(MenuDivider, {
6341
6650
  key: "divider-".concat(index)
6342
6651
  }));
@@ -6361,7 +6670,7 @@ var Toolbar = function Toolbar(_ref) {
6361
6670
  className: "fortune-toolbar",
6362
6671
  "aria-label": toolbar.toolbar
6363
6672
  }, settings.customToolbarItems.filter(function (n) {
6364
- return n.key === "import-export";
6673
+ return n.key !== "templates";
6365
6674
  }).map(function (n) {
6366
6675
  return /*#__PURE__*/React.createElement(CustomButton, {
6367
6676
  tooltip: n.tooltip,
@@ -6398,18 +6707,6 @@ var Toolbar = function Toolbar(_ref) {
6398
6707
  icon: n.icon,
6399
6708
  iconName: n.iconName
6400
6709
  }, n.children);
6401
- }), /*#__PURE__*/React.createElement(Divider, {
6402
- key: "customDivider"
6403
- }), settings.customToolbarItems.filter(function (n) {
6404
- return n.key !== "templates" && n.key !== "import-export";
6405
- }).map(function (n) {
6406
- return /*#__PURE__*/React.createElement(CustomButton, {
6407
- tooltip: n.tooltip,
6408
- onClick: n.onClick,
6409
- key: n.key,
6410
- icon: n.icon,
6411
- iconName: n.iconName
6412
- }, n.children);
6413
6710
  }));
6414
6711
  };
6415
6712
 
@@ -7654,8 +7951,7 @@ var ContextMenu = function ContextMenu() {
7654
7951
  }
7655
7952
  }, /*#__PURE__*/React.createElement(SVGIcon, {
7656
7953
  name: "sort-asc",
7657
- width: 24,
7658
- height: 18,
7954
+ width: 22,
7659
7955
  style: {
7660
7956
  marginRight: "4px"
7661
7957
  }
@@ -7673,8 +7969,7 @@ var ContextMenu = function ContextMenu() {
7673
7969
  }
7674
7970
  }, /*#__PURE__*/React.createElement(SVGIcon, {
7675
7971
  name: "sort-desc",
7676
- width: 24,
7677
- height: 18,
7972
+ width: 22,
7678
7973
  style: {
7679
7974
  marginRight: "4px"
7680
7975
  }
@@ -7730,7 +8025,7 @@ var ContextMenu = function ContextMenu() {
7730
8025
  }
7731
8026
  }, /*#__PURE__*/React.createElement(SVGIcon, {
7732
8027
  name: "filter",
7733
- width: 24,
8028
+ width: 22,
7734
8029
  style: {
7735
8030
  marginRight: "4px"
7736
8031
  }
@@ -7748,11 +8043,9 @@ var ContextMenu = function ContextMenu() {
7748
8043
  }
7749
8044
  }, /*#__PURE__*/React.createElement(SVGIcon, {
7750
8045
  name: "eraser",
7751
- width: 24,
7752
- height: 22,
8046
+ width: 22,
7753
8047
  style: {
7754
- marginRight: "4px",
7755
- marginLeft: "2px"
8048
+ marginRight: "4px"
7756
8049
  }
7757
8050
  }), /*#__PURE__*/React.createElement("p", null, filter.clearFilter))))),
7758
8051
  trigger: "mouseenter focus",
@@ -7763,7 +8056,7 @@ var ContextMenu = function ContextMenu() {
7763
8056
  className: "context-item"
7764
8057
  }, /*#__PURE__*/React.createElement(SVGIcon, {
7765
8058
  name: "filter",
7766
- width: 24,
8059
+ width: 22,
7767
8060
  style: {
7768
8061
  marginRight: "4px"
7769
8062
  }
@@ -10187,24 +10480,23 @@ function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cel
10187
10480
  var SelectItem = function SelectItem(_ref) {
10188
10481
  var item = _ref.item,
10189
10482
  isChecked = _ref.isChecked,
10190
- onChange = _ref.onChange,
10483
+ _onChange = _ref.onChange,
10191
10484
  isItemVisible = _ref.isItemVisible;
10192
10485
  var checked = useMemo(function () {
10193
10486
  return isChecked(item.key);
10194
10487
  }, [isChecked, item.key]);
10195
10488
  return isItemVisible(item) ? (/*#__PURE__*/React.createElement("div", {
10196
10489
  className: "select-item"
10197
- }, /*#__PURE__*/React.createElement("div", {
10198
- className: "flex items-center gap-2"
10199
- }, /*#__PURE__*/React.createElement(Checkbox, {
10200
- className: "border-2",
10490
+ }, /*#__PURE__*/React.createElement("input", {
10491
+ className: "filter-checkbox",
10492
+ type: "checkbox",
10201
10493
  checked: checked,
10202
- onCheckedChange: function onCheckedChange(e) {
10203
- onChange(item, e.target.checked);
10494
+ onChange: function onChange() {
10495
+ _onChange(item, !checked);
10204
10496
  }
10205
- }), /*#__PURE__*/React.createElement("span", null, item.text)), /*#__PURE__*/React.createElement("span", {
10497
+ }), /*#__PURE__*/React.createElement("div", null, item.text), /*#__PURE__*/React.createElement("span", {
10206
10498
  className: "count"
10207
- }, "".concat(item.rows.length)))) : null;
10499
+ }, "( ".concat(item.rows.length, " )")))) : null;
10208
10500
  };
10209
10501
  var _DateSelectTreeItem = function DateSelectTreeItem(_ref2) {
10210
10502
  var item = _ref2.item,
@@ -10213,7 +10505,7 @@ var _DateSelectTreeItem = function DateSelectTreeItem(_ref2) {
10213
10505
  initialExpand = _ref2.initialExpand,
10214
10506
  onExpand = _ref2.onExpand,
10215
10507
  isChecked = _ref2.isChecked,
10216
- onChange = _ref2.onChange,
10508
+ _onChange2 = _ref2.onChange,
10217
10509
  isItemVisible = _ref2.isItemVisible;
10218
10510
  var _useState = useState(initialExpand(item.key)),
10219
10511
  _useState2 = _slicedToArray(_useState, 2),
@@ -10222,43 +10514,39 @@ var _DateSelectTreeItem = function DateSelectTreeItem(_ref2) {
10222
10514
  var checked = useMemo(function () {
10223
10515
  return isChecked(item.key);
10224
10516
  }, [isChecked, item.key]);
10225
- return isItemVisible(item) ? (/*#__PURE__*/React.createElement("div", {
10226
- className: "flex flex-col gap-2"
10227
- }, /*#__PURE__*/React.createElement("div", {
10517
+ return isItemVisible(item) ? (/*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
10228
10518
  className: "select-item",
10229
10519
  style: {
10230
10520
  marginLeft: -2 + depth * 20
10231
10521
  },
10232
- tabIndex: 0
10233
- }, /*#__PURE__*/React.createElement("div", {
10234
- className: "flex items-center gap-2",
10235
- style: {
10236
- flex: 1
10522
+ onClick: function onClick() {
10523
+ onExpand === null || onExpand === void 0 ? void 0 : onExpand(item.key, !expand);
10524
+ setExpand(!expand);
10237
10525
  },
10238
- onClick: function onClick(e) {
10239
- return e.stopPropagation();
10240
- }
10526
+ tabIndex: 0
10241
10527
  }, _.isEmpty(item.children) ? (/*#__PURE__*/React.createElement("div", {
10242
10528
  style: {
10243
10529
  width: 10
10244
10530
  }
10245
- })) : (/*#__PURE__*/React.createElement(LucideIcon, {
10246
- name: expand ? "ChevronDown" : "ChevronRight",
10247
- className: "cursor-pointer",
10248
- size: "sm",
10249
- onClick: function onClick() {
10250
- onExpand === null || onExpand === void 0 ? void 0 : onExpand(item.key, !expand);
10251
- setExpand(!expand);
10531
+ })) : (/*#__PURE__*/React.createElement("div", {
10532
+ className: "filter-caret ".concat(expand ? "down" : "right"),
10533
+ style: {
10534
+ cursor: "pointer"
10252
10535
  }
10253
- })), /*#__PURE__*/React.createElement(Checkbox, {
10254
- className: "border-2",
10536
+ })), /*#__PURE__*/React.createElement("input", {
10537
+ className: "filter-checkbox",
10538
+ type: "checkbox",
10255
10539
  checked: checked,
10256
- onCheckedChange: function onCheckedChange(e) {
10257
- onChange(item, e.target.checked);
10258
- }
10259
- }), /*#__PURE__*/React.createElement("span", null, item.text)), /*#__PURE__*/React.createElement("span", {
10540
+ onChange: function onChange() {
10541
+ _onChange2(item, !checked);
10542
+ },
10543
+ onClick: function onClick(e) {
10544
+ return e.stopPropagation();
10545
+ },
10546
+ tabIndex: 0
10547
+ }), /*#__PURE__*/React.createElement("div", null, item.text), /*#__PURE__*/React.createElement("span", {
10260
10548
  className: "count"
10261
- }, "".concat(item.rows.length))), expand && item.children.map(function (v) {
10549
+ }, "( ".concat(item.rows.length, " )"))), expand && item.children.map(function (v) {
10262
10550
  return /*#__PURE__*/React.createElement(_DateSelectTreeItem, _objectSpread2({
10263
10551
  key: v.key,
10264
10552
  item: v,
@@ -10267,7 +10555,7 @@ var _DateSelectTreeItem = function DateSelectTreeItem(_ref2) {
10267
10555
  initialExpand: initialExpand,
10268
10556
  onExpand: onExpand,
10269
10557
  isChecked: isChecked,
10270
- onChange: onChange,
10558
+ onChange: _onChange2,
10271
10559
  isItemVisible: isItemVisible
10272
10560
  }));
10273
10561
  }))) : null;
@@ -10316,7 +10604,8 @@ var FilterMenu = function FilterMenu() {
10316
10604
  startCol = _ref4.startCol,
10317
10605
  endRow = _ref4.endRow,
10318
10606
  endCol = _ref4.endCol,
10319
- col = _ref4.col;
10607
+ col = _ref4.col,
10608
+ listBoxMaxHeight = _ref4.listBoxMaxHeight;
10320
10609
  var _locale = locale(context),
10321
10610
  filter = _locale.filter;
10322
10611
  var _useState3 = useState({
@@ -10391,6 +10680,25 @@ var FilterMenu = function FilterMenu() {
10391
10680
  }));
10392
10681
  }, 300);
10393
10682
  }, [data.flattenValues]);
10683
+ var selectAll = useCallback(function () {
10684
+ setDatesUncheck([]);
10685
+ setValuesUncheck([]);
10686
+ hiddenRows.current = [];
10687
+ }, []);
10688
+ var clearAll = useCallback(function () {
10689
+ setDatesUncheck(_.keys(data.dateRowMap));
10690
+ setValuesUncheck(_.keys(data.valueRowMap));
10691
+ hiddenRows.current = data.visibleRows;
10692
+ }, [data.dateRowMap, data.valueRowMap, data.visibleRows]);
10693
+ var inverseSelect = useCallback(function () {
10694
+ setDatesUncheck(produce(function (draft) {
10695
+ return _.xor(draft, _.keys(data.dateRowMap));
10696
+ }));
10697
+ setValuesUncheck(produce(function (draft) {
10698
+ return _.xor(draft, _.keys(data.valueRowMap));
10699
+ }));
10700
+ hiddenRows.current = _.xor(hiddenRows.current, data.visibleRows);
10701
+ }, [data.dateRowMap, data.valueRowMap, data.visibleRows]);
10394
10702
  var onColorSelectChange = useCallback(function (key, color, checked) {
10395
10703
  setFilterColors(produce(function (draft) {
10396
10704
  var colorData = _.find(_.get(draft, key), function (v) {
@@ -10520,12 +10828,11 @@ var FilterMenu = function FilterMenu() {
10520
10828
  ref: containerRef,
10521
10829
  style: {
10522
10830
  left: filterContextMenu.x,
10523
- top: filterContextMenu.y,
10524
- minWidth: "280px !important"
10831
+ top: filterContextMenu.y
10525
10832
  }
10526
10833
  }, (_settings$filterConte = settings.filterContextMenu) === null || _settings$filterConte === void 0 ? void 0 : _settings$filterConte.map(function (name, i) {
10527
10834
  if (name === "|") {
10528
- return /*#__PURE__*/React.createElement(Divider$2, {
10835
+ return /*#__PURE__*/React.createElement(Divider$1, {
10529
10836
  key: "divider-".concat(i)
10530
10837
  });
10531
10838
  }
@@ -10535,16 +10842,7 @@ var FilterMenu = function FilterMenu() {
10535
10842
  onClick: function onClick() {
10536
10843
  return sortData(true);
10537
10844
  }
10538
- }, /*#__PURE__*/React.createElement("div", {
10539
- className: "context-item w-full"
10540
- }, /*#__PURE__*/React.createElement(SVGIcon, {
10541
- name: "sort-asc",
10542
- width: 24,
10543
- height: 18,
10544
- style: {
10545
- marginRight: "4px"
10546
- }
10547
- }), /*#__PURE__*/React.createElement("p", null, filter.sortByAsc)));
10845
+ }, filter.sortByAsc);
10548
10846
  }
10549
10847
  if (name === "sort-by-desc") {
10550
10848
  return /*#__PURE__*/React.createElement(Menu, {
@@ -10552,16 +10850,7 @@ var FilterMenu = function FilterMenu() {
10552
10850
  onClick: function onClick() {
10553
10851
  return sortData(false);
10554
10852
  }
10555
- }, /*#__PURE__*/React.createElement("div", {
10556
- className: "context-item w-full"
10557
- }, /*#__PURE__*/React.createElement(SVGIcon, {
10558
- name: "sort-desc",
10559
- width: 24,
10560
- height: 18,
10561
- style: {
10562
- marginRight: "4px"
10563
- }
10564
- }), /*#__PURE__*/React.createElement("p", null, filter.sortByDesc)));
10853
+ }, filter.sortByDesc);
10565
10854
  }
10566
10855
  if (name === "filter-by-color") {
10567
10856
  return /*#__PURE__*/React.createElement("div", {
@@ -10589,22 +10878,72 @@ var FilterMenu = function FilterMenu() {
10589
10878
  className: "filter-caret right"
10590
10879
  }))));
10591
10880
  }
10881
+ if (name === "filter-by-condition") {
10882
+ return /*#__PURE__*/React.createElement("div", {
10883
+ key: "name"
10884
+ }, /*#__PURE__*/React.createElement(Menu, {
10885
+ onClick: function onClick() {}
10886
+ }, /*#__PURE__*/React.createElement("div", {
10887
+ className: "filter-caret right"
10888
+ }), filter.filterByCondition), /*#__PURE__*/React.createElement("div", {
10889
+ className: "luckysheet-\\${menuid}-bycondition",
10890
+ style: {
10891
+ display: "none"
10892
+ }
10893
+ }, /*#__PURE__*/React.createElement("div", {
10894
+ className: "luckysheet-flat-menu-button luckysheet-mousedown-cancel",
10895
+ id: "luckysheet-\\${menuid}-selected"
10896
+ }, /*#__PURE__*/React.createElement("span", {
10897
+ className: "luckysheet-mousedown-cancel",
10898
+ "data-value": "null",
10899
+ "data-type": "0"
10900
+ }, filter.filiterInputNone), /*#__PURE__*/React.createElement("div", {
10901
+ className: "luckysheet-mousedown-cancel"
10902
+ }, /*#__PURE__*/React.createElement("i", {
10903
+ className: "fa fa-sort",
10904
+ "aria-hidden": "true"
10905
+ })))));
10906
+ }
10592
10907
  if (name === "filter-by-value") {
10593
10908
  return /*#__PURE__*/React.createElement("div", {
10594
10909
  key: name
10910
+ }, /*#__PURE__*/React.createElement(Menu, {
10911
+ onClick: function onClick() {}
10595
10912
  }, /*#__PURE__*/React.createElement("div", {
10596
- className: "luckysheet-filter-byvalue flex flex-col gap-2 mt-2"
10913
+ className: "filter-caret right"
10914
+ }), filter.filterByValues), /*#__PURE__*/React.createElement("div", {
10915
+ className: "luckysheet-filter-byvalue"
10597
10916
  }, /*#__PURE__*/React.createElement("div", {
10917
+ className: "fortune-menuitem-row byvalue-btn-row"
10918
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
10919
+ className: "fortune-byvalue-btn",
10920
+ onClick: selectAll,
10921
+ tabIndex: 0
10922
+ }, filter.filterValueByAllBtn), " - ", /*#__PURE__*/React.createElement("span", {
10923
+ className: "fortune-byvalue-btn",
10924
+ onClick: clearAll,
10925
+ tabIndex: 0
10926
+ }, filter.filterValueByClearBtn), " - ", /*#__PURE__*/React.createElement("span", {
10927
+ className: "fortune-byvalue-btn",
10928
+ onClick: inverseSelect,
10929
+ tabIndex: 0
10930
+ }, filter.filterValueByInverseBtn)), /*#__PURE__*/React.createElement("div", {
10931
+ className: "byvalue-filter-icon"
10932
+ }, /*#__PURE__*/React.createElement(SVGIcon, {
10933
+ name: "filter-fill",
10934
+ style: {
10935
+ width: 20,
10936
+ height: 20
10937
+ }
10938
+ }))), /*#__PURE__*/React.createElement("div", {
10598
10939
  className: "filtermenu-input-container"
10599
- }, /*#__PURE__*/React.createElement(TextField, {
10600
- leftIcon: /*#__PURE__*/React.createElement(LucideIcon, {
10601
- name: "Search",
10602
- size: "sm"
10603
- }),
10940
+ }, /*#__PURE__*/React.createElement("input", {
10941
+ type: "text",
10604
10942
  onKeyDown: function onKeyDown(e) {
10605
10943
  return e.stopPropagation();
10606
10944
  },
10607
10945
  placeholder: filter.filterValueByTip,
10946
+ className: "luckysheet-mousedown-cancel",
10608
10947
  id: "luckysheet-\\${menuid}-byvalue-input",
10609
10948
  value: searchText,
10610
10949
  onChange: function onChange(e) {
@@ -10612,7 +10951,10 @@ var FilterMenu = function FilterMenu() {
10612
10951
  searchValues(e.target.value);
10613
10952
  }
10614
10953
  })), /*#__PURE__*/React.createElement("div", {
10615
- id: "luckysheet-filter-byvalue-select"
10954
+ id: "luckysheet-filter-byvalue-select",
10955
+ style: {
10956
+ maxHeight: listBoxMaxHeight
10957
+ }
10616
10958
  }, /*#__PURE__*/React.createElement(DateSelectTree, {
10617
10959
  dates: data.dates,
10618
10960
  onExpand: onExpand,
@@ -10634,37 +10976,6 @@ var FilterMenu = function FilterMenu() {
10634
10976
  return v.match(item.key) != null;
10635
10977
  }) > -1;
10636
10978
  }
10637
- }), /*#__PURE__*/React.createElement(SelectItem, {
10638
- item: {
10639
- key: "all",
10640
- text: filter.filterValueByAllBtn,
10641
- value: "",
10642
- mask: "",
10643
- rows: data.values.filter(function (v) {
10644
- return showValues.includes(v.text);
10645
- }).flatMap(function (v) {
10646
- return v.rows;
10647
- })
10648
- },
10649
- isChecked: function isChecked() {
10650
- var allDatesChecked = datesUncheck.length === 0;
10651
- var allValuesChecked = valuesUncheck.length === 0;
10652
- return allDatesChecked && allValuesChecked;
10653
- },
10654
- onChange: function onChange(item, checked) {
10655
- if (checked) {
10656
- setDatesUncheck([]);
10657
- setValuesUncheck([]);
10658
- hiddenRows.current = [];
10659
- } else {
10660
- setDatesUncheck(_.keys(data.dateRowMap));
10661
- setValuesUncheck(_.keys(data.valueRowMap));
10662
- hiddenRows.current = data.visibleRows;
10663
- }
10664
- },
10665
- isItemVisible: function isItemVisible() {
10666
- return true;
10667
- }
10668
10979
  }), data.values.map(function (v) {
10669
10980
  return /*#__PURE__*/React.createElement(SelectItem, {
10670
10981
  key: v.key,
@@ -10674,17 +10985,14 @@ var FilterMenu = function FilterMenu() {
10674
10985
  },
10675
10986
  onChange: function onChange(item, checked) {
10676
10987
  var rows = hiddenRows.current;
10677
- if (checked) {
10678
- hiddenRows.current = _.without.apply(_, [rows].concat(_toConsumableArray(item.rows)));
10679
- setValuesUncheck(produce(function (draft) {
10988
+ hiddenRows.current = checked ? _.without.apply(_, [rows].concat(_toConsumableArray(item.rows))) : _.concat(rows, item.rows);
10989
+ setValuesUncheck(produce(function (draft) {
10990
+ if (checked) {
10680
10991
  _.pull(draft, item.key);
10681
- }));
10682
- } else {
10683
- hiddenRows.current = _.concat(rows, item.rows);
10684
- setValuesUncheck(produce(function (draft) {
10992
+ } else {
10685
10993
  draft.push(item.key);
10686
- }));
10687
- }
10994
+ }
10995
+ }));
10688
10996
  },
10689
10997
  isItemVisible: function isItemVisible(item) {
10690
10998
  return showValues.length === data.flattenValues.length ? true : _.includes(showValues, item.text);
@@ -10693,49 +11001,40 @@ var FilterMenu = function FilterMenu() {
10693
11001
  }))));
10694
11002
  }
10695
11003
  return null;
10696
- }), /*#__PURE__*/React.createElement("div", {
10697
- className: "fortune-menuitem-row mt-2"
10698
- }, /*#__PURE__*/React.createElement(Button$1, {
10699
- variant: "ghost",
10700
- style: {
10701
- minWidth: "80px"
10702
- },
11004
+ }), /*#__PURE__*/React.createElement(Divider$1, null), /*#__PURE__*/React.createElement("div", {
11005
+ className: "fortune-menuitem-row"
11006
+ }, /*#__PURE__*/React.createElement("div", {
11007
+ className: "button-basic button-primary",
10703
11008
  onClick: function onClick() {
11009
+ if (col == null) return;
10704
11010
  setContext(function (draftCtx) {
10705
- clearFilter(draftCtx);
11011
+ var rowHidden = _.reduce(hiddenRows.current, function (pre, curr) {
11012
+ pre[curr] = 0;
11013
+ return pre;
11014
+ }, {});
11015
+ saveFilter(draftCtx, hiddenRows.current.length > 0, rowHidden, {}, startRow, endRow, col, startCol, endCol);
11016
+ hiddenRows.current = [];
11017
+ draftCtx.filterContextMenu = undefined;
10706
11018
  });
10707
11019
  },
10708
11020
  tabIndex: 0
10709
- }, filter.clearFilter), /*#__PURE__*/React.createElement(Button$1, {
10710
- variant: "secondary",
10711
- style: {
10712
- minWidth: "80px"
10713
- },
11021
+ }, filter.filterConform), /*#__PURE__*/React.createElement("div", {
11022
+ className: "button-basic button-default",
10714
11023
  onClick: function onClick() {
10715
11024
  setContext(function (draftCtx) {
10716
11025
  draftCtx.filterContextMenu = undefined;
10717
11026
  });
10718
11027
  },
10719
11028
  tabIndex: 0
10720
- }, filter.filterCancel), /*#__PURE__*/React.createElement(Button$1, {
10721
- variant: "default",
10722
- style: {
10723
- minWidth: "80px"
10724
- },
11029
+ }, filter.filterCancel), /*#__PURE__*/React.createElement("div", {
11030
+ className: "button-basic button-danger",
10725
11031
  onClick: function onClick() {
10726
- if (col == null) return;
10727
11032
  setContext(function (draftCtx) {
10728
- var rowHidden = _.reduce(hiddenRows.current, function (pre, curr) {
10729
- pre[curr] = 0;
10730
- return pre;
10731
- }, {});
10732
- saveFilter(draftCtx, hiddenRows.current.length > 0, rowHidden, {}, startRow, endRow, col, startCol, endCol);
10733
- hiddenRows.current = [];
10734
- draftCtx.filterContextMenu = undefined;
11033
+ clearFilter(draftCtx);
10735
11034
  });
10736
11035
  },
10737
11036
  tabIndex: 0
10738
- }, filter.filterConfirm))), showSubMenu && (/*#__PURE__*/React.createElement("div", {
11037
+ }, filter.clearFilter))), showSubMenu && (/*#__PURE__*/React.createElement("div", {
10739
11038
  ref: subMenuRef,
10740
11039
  className: "luckysheet-filter-bycolor-submenu",
10741
11040
  style: subMenuPos,
@@ -10775,7 +11074,7 @@ var FilterMenu = function FilterMenu() {
10775
11074
  });
10776
11075
  },
10777
11076
  tabIndex: 0
10778
- }, filter.filterConfirm))))));
11077
+ }, filter.filterConform))))));
10779
11078
  };
10780
11079
 
10781
11080
  var SheetHiddenButton = function SheetHiddenButton(_ref) {