@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.js CHANGED
@@ -813,49 +813,43 @@ var FormulaSearch = function FormulaSearch(props) {
813
813
  justifyContent: "space-between"
814
814
  }
815
815
  }, /*#__PURE__*/React__default['default'].createElement("div", {
816
- className: "luckysheet-formula-search-func"
816
+ className: "luckysheet-formula-search-func text-body-sm"
817
817
  }, v.n), /*#__PURE__*/React__default['default'].createElement("div", {
818
818
  style: {
819
819
  display: "flex",
820
+ justifyContent: "end",
821
+ width: "68px",
822
+ height: "20px",
823
+ alignItems: "center",
820
824
  gap: "4px"
821
825
  }
822
826
  }, v.LOGO && (/*#__PURE__*/React__default['default'].createElement("img", {
823
827
  src: v.LOGO,
824
828
  alt: "Service Logo",
825
- width: 32,
826
- height: 32
829
+ style: {
830
+ width: "20px"
831
+ }
827
832
  })), v.API_KEY && (/*#__PURE__*/React__default['default'].createElement("div", {
828
833
  style: {
829
834
  borderRadius: "4px",
830
- width: "20px",
831
- height: "20px",
832
- backgroundColor: "".concat(localStorage.getItem(v.API_KEY) ? "#177E23" : "#F9A92B")
833
- }
835
+ backgroundColor: "".concat(localStorage.getItem(v.API_KEY) ? "#177E23" : "#F9A92B"),
836
+ width: "16px",
837
+ height: "16px"
838
+ },
839
+ className: "flex justify-center"
834
840
  }, /*#__PURE__*/React__default['default'].createElement(ui.LucideIcon, {
835
841
  name: "Key",
836
842
  style: {
837
- color: "white"
843
+ color: localStorage.getItem(v.API_KEY) ? "white" : "#77818A",
844
+ width: "12px",
845
+ height: "12px"
838
846
  }
839
847
  }))))), /*#__PURE__*/React__default['default'].createElement("div", {
840
- className: "luckysheet-formula-search-detail"
848
+ className: "luckysheet-formula-search-detail mt-1 text-helper-text-sm"
841
849
  }, v.d));
842
850
  }));
843
851
  };
844
852
 
845
- function lightenHexColor(hex) {
846
- var amount = 100;
847
- if (hex.startsWith("#")) {
848
- hex = hex.slice(1);
849
- }
850
- var r = parseInt(hex.slice(0, 2), 16);
851
- var g = parseInt(hex.slice(2, 4), 16);
852
- var b = parseInt(hex.slice(4, 6), 16);
853
- r = Math.min(255, r + amount);
854
- g = Math.min(255, g + amount);
855
- b = Math.min(255, b + amount);
856
- var newHex = "#".concat((1 << 24 | r << 16 | g << 8 | b).toString(16).slice(1).toUpperCase());
857
- return newHex;
858
- }
859
853
  var FormulaHint = function FormulaHint(props) {
860
854
  var _useContext = React.useContext(WorkbookContext),
861
855
  context = _useContext.context;
@@ -870,13 +864,26 @@ var FormulaHint = function FormulaHint(props) {
870
864
  _useState4 = _slicedToArray(_useState3, 2),
871
865
  showAPInput = _useState4[0],
872
866
  setShowAPInput = _useState4[1];
867
+ var _useState5 = React.useState(!!localStorage.getItem(fn === null || fn === void 0 ? void 0 : fn.API_KEY)),
868
+ _useState6 = _slicedToArray(_useState5, 2),
869
+ isKeyAdded = _useState6[0],
870
+ setApiKeyAdded = _useState6[1];
871
+ React.useEffect(function () {
872
+ if (fn) {
873
+ setApiKeyAdded(!!localStorage.getItem(fn === null || fn === void 0 ? void 0 : fn.API_KEY));
874
+ setAPI_KEY(localStorage.getItem(fn === null || fn === void 0 ? void 0 : fn.API_KEY) || "");
875
+ setShowAPInput(!localStorage.getItem(fn === null || fn === void 0 ? void 0 : fn.API_KEY));
876
+ }
877
+ }, [fn]);
873
878
  if (!fn) return null;
874
879
  return /*#__PURE__*/React__default['default'].createElement("div", _objectSpread2(_objectSpread2({}, props), {}, {
875
880
  id: "luckysheet-formula-help-c",
876
881
  className: "luckysheet-formula-help-c",
877
882
  style: {
878
883
  border: "1px solid ".concat(fn.BRAND_COLOR),
879
- backgroundColor: "".concat(fn.BRAND_COLOR ? lightenHexColor(fn.BRAND_COLOR) : "#F8F9FA")
884
+ backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA"),
885
+ width: "340px",
886
+ padding: "0px"
880
887
  }
881
888
  }), /*#__PURE__*/React__default['default'].createElement("div", {
882
889
  className: "luckysheet-formula-help-close",
@@ -891,17 +898,21 @@ var FormulaHint = function FormulaHint(props) {
891
898
  className: "fa fa-angle-up",
892
899
  "aria-hidden": "true"
893
900
  })), /*#__PURE__*/React__default['default'].createElement("div", {
894
- className: "luckysheet-formula-help-title formula-title",
901
+ className: "flex items-center justify-between",
895
902
  style: {
896
- backgroundColor: "".concat(fn.BRAND_COLOR ? lightenHexColor(fn.BRAND_COLOR) : "#F8F9FA")
903
+ backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA"),
904
+ padding: "10px"
897
905
  }
898
906
  }, /*#__PURE__*/React__default['default'].createElement("div", {
899
- className: "luckysheet-formula-help-title-formula"
900
- }, /*#__PURE__*/React__default['default'].createElement("span", {
907
+ className: "luckysheet-formula-help-title-formula color-text-default"
908
+ }, /*#__PURE__*/React__default['default'].createElement("code", {
909
+ style: {
910
+ fontWeight: 500
911
+ },
901
912
  className: "luckysheet-arguments-help-function-name"
902
- }, fn.n), /*#__PURE__*/React__default['default'].createElement("span", {
913
+ }, fn.n), /*#__PURE__*/React__default['default'].createElement("code", {
903
914
  className: "luckysheet-arguments-paren"
904
- }, "("), /*#__PURE__*/React__default['default'].createElement("span", {
915
+ }, "("), /*#__PURE__*/React__default['default'].createElement("code", {
905
916
  className: "luckysheet-arguments-parameter-holder"
906
917
  }, fn.p.map(function (param, i) {
907
918
  var name = param.name;
@@ -911,43 +922,51 @@ var FormulaHint = function FormulaHint(props) {
911
922
  if (param.require === "o") {
912
923
  name = "[".concat(name, "]");
913
924
  }
914
- return /*#__PURE__*/React__default['default'].createElement("span", {
925
+ return /*#__PURE__*/React__default['default'].createElement("code", {
915
926
  className: "luckysheet-arguments-help-parameter",
916
927
  dir: "auto",
917
928
  key: name
918
929
  }, name, i !== fn.p.length - 1 && ", ");
919
- })), /*#__PURE__*/React__default['default'].createElement("span", {
930
+ })), /*#__PURE__*/React__default['default'].createElement("code", {
920
931
  className: "luckysheet-arguments-paren"
921
932
  }, ")")), /*#__PURE__*/React__default['default'].createElement("div", {
922
933
  style: {
923
934
  display: "flex",
935
+ justifyContent: "end",
936
+ width: "68px",
937
+ height: "20px",
938
+ alignItems: "center",
924
939
  gap: "4px"
925
940
  }
926
941
  }, fn.LOGO && (/*#__PURE__*/React__default['default'].createElement("img", {
927
942
  src: fn.LOGO,
928
943
  alt: "Service Logo",
929
- width: 32,
930
- height: 32
944
+ style: {
945
+ width: "20px"
946
+ }
931
947
  })), fn.API_KEY && (/*#__PURE__*/React__default['default'].createElement("div", {
932
948
  style: {
933
949
  borderRadius: "4px",
934
- width: "20px",
935
- height: "20px",
936
- backgroundColor: "".concat(localStorage.getItem(fn.API_KEY) ? "#177E23" : "#F9A92B")
937
- }
950
+ backgroundColor: "".concat(isKeyAdded ? "#177E23" : "#e8ebec"),
951
+ width: "16px",
952
+ height: "16px"
953
+ },
954
+ className: "flex justify-center"
938
955
  }, /*#__PURE__*/React__default['default'].createElement(ui.LucideIcon, {
939
956
  name: "Key",
940
957
  style: {
941
- color: "white"
958
+ color: isKeyAdded ? "white" : "#77818A",
959
+ width: "12px",
960
+ height: "12px"
942
961
  }
943
962
  }))))), /*#__PURE__*/React__default['default'].createElement("div", {
944
963
  className: "luckysheet-formula-help-content",
945
964
  style: {
946
- backgroundColor: "".concat(fn.BRAND_COLOR ? lightenHexColor(fn.BRAND_COLOR) : "#F8F9FA")
965
+ backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA")
947
966
  }
948
967
  }, fn.API_KEY && (/*#__PURE__*/React__default['default'].createElement("div", {
949
968
  style: {
950
- borderLeft: "4px solid ".concat(API_KEY ? "#177E23" : "#fb923c"),
969
+ borderLeft: "4px solid ".concat(isKeyAdded ? "#177E23" : "#fb923c"),
951
970
  backgroundColor: "white",
952
971
  padding: "16px",
953
972
  margin: "4px 4px 0px 4px",
@@ -964,25 +983,20 @@ var FormulaHint = function FormulaHint(props) {
964
983
  }
965
984
  }, /*#__PURE__*/React__default['default'].createElement("h3", {
966
985
  style: {
967
- fontSize: "14px",
968
- fontWeight: "600",
969
- color: "#1f2937",
970
986
  margin: "0 0 8px 0"
971
- }
972
- }, "API key is required"), /*#__PURE__*/React__default['default'].createElement(ui.LucideIcon, {
987
+ },
988
+ className: "text-heading-xsm color-text-default"
989
+ }, isKeyAdded ? "API key provided" : "API key is required"), /*#__PURE__*/React__default['default'].createElement(ui.LucideIcon, {
973
990
  name: "ChevronDown",
974
991
  width: 24,
975
992
  height: 24
976
993
  })), showAPInput && (/*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("p", {
977
994
  style: {
978
- color: "#6b7280",
979
995
  margin: "0 0 16px 0"
980
- }
996
+ },
997
+ className: "text-body-sm color-text-default"
981
998
  }, "This function is require API key. Please paste it below and\n press 'Ok'."), /*#__PURE__*/React__default['default'].createElement("div", {
982
- style: {
983
- display: "flex",
984
- gap: "12px"
985
- }
999
+ className: "w-full"
986
1000
  }, /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
987
1001
  value: API_KEY,
988
1002
  id: "function-api-key",
@@ -990,12 +1004,19 @@ var FormulaHint = function FormulaHint(props) {
990
1004
  placeholder: "API key",
991
1005
  onChange: function onChange(e) {
992
1006
  setAPI_KEY(e.target.value);
1007
+ setApiKeyAdded(false);
993
1008
  }
994
- }), /*#__PURE__*/React__default['default'].createElement(ui.Button, {
1009
+ }), /*#__PURE__*/React__default['default'].createElement("div", {
1010
+ className: "flex justify-end mt-2"
1011
+ }, /*#__PURE__*/React__default['default'].createElement(ui.Button, {
995
1012
  onClick: function onClick() {
996
1013
  localStorage.setItem(fn.API_KEY, API_KEY);
997
- }
998
- }, "Ok")))))), /*#__PURE__*/React__default['default'].createElement("div", {
1014
+ setApiKeyAdded(true);
1015
+ setShowAPInput(false);
1016
+ },
1017
+ disabled: !API_KEY,
1018
+ className: "min-w-[80px]"
1019
+ }, "Ok"))))))), /*#__PURE__*/React__default['default'].createElement("div", {
999
1020
  style: {
1000
1021
  backgroundColor: "white",
1001
1022
  padding: "6px",
@@ -1003,13 +1024,20 @@ var FormulaHint = function FormulaHint(props) {
1003
1024
  borderRadius: "4px"
1004
1025
  }
1005
1026
  }, /*#__PURE__*/React__default['default'].createElement("div", {
1006
- className: "luckysheet-formula-help-content-example"
1027
+ className: ""
1007
1028
  }, /*#__PURE__*/React__default['default'].createElement("div", {
1008
- className: "luckysheet-arguments-help-section-title example-title"
1009
- }, formulaMore.helpExample), /*#__PURE__*/React__default['default'].createElement("div", {
1010
- className: "luckysheet-arguments-help-formula"
1029
+ style: {
1030
+ lineHeight: "16px",
1031
+ fontSize: "12px"
1032
+ },
1033
+ className: "text-body-sm-bold mb-1 color-text-secondary"
1034
+ }, formulaMore.helpExample), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("code", {
1035
+ style: {
1036
+ overflowWrap: "break-word"
1037
+ },
1038
+ className: "example-value-code"
1011
1039
  }, /*#__PURE__*/React__default['default'].createElement("span", {
1012
- className: "luckysheet-arguments-help-function-name example-value"
1040
+ className: "luckysheet-arguments-help-function-name"
1013
1041
  }, fn.n), /*#__PURE__*/React__default['default'].createElement("span", {
1014
1042
  className: "luckysheet-arguments-paren"
1015
1043
  }, "("), /*#__PURE__*/React__default['default'].createElement("span", {
@@ -1022,26 +1050,32 @@ var FormulaHint = function FormulaHint(props) {
1022
1050
  }, param.example, i !== fn.p.length - 1 && ", ");
1023
1051
  })), /*#__PURE__*/React__default['default'].createElement("span", {
1024
1052
  className: "luckysheet-arguments-paren"
1025
- }, ")"))), /*#__PURE__*/React__default['default'].createElement("div", {
1053
+ }, ")")))), /*#__PURE__*/React__default['default'].createElement("div", {
1026
1054
  className: "luckysheet-formula-help-content-detail",
1027
1055
  style: {
1028
- paddingBottom: "6px"
1056
+ paddingBottom: "8px"
1029
1057
  }
1030
1058
  }, /*#__PURE__*/React__default['default'].createElement("div", {
1031
- className: "luckysheet-arguments-help-section"
1059
+ className: ""
1032
1060
  }, /*#__PURE__*/React__default['default'].createElement("div", {
1033
- className: "luckysheet-arguments-help-section-title luckysheet-arguments-help-parameter-name example-title"
1061
+ style: {
1062
+ lineHeight: "16px",
1063
+ fontSize: "12px",
1064
+ padding: "0px"
1065
+ },
1066
+ className: "text-body-sm-bold mb-1 mt-2 color-text-secondary"
1034
1067
  }, "About"), /*#__PURE__*/React__default['default'].createElement("span", {
1035
- className: "luckysheet-arguments-help-parameter-content example-value"
1068
+ className: "luckysheet-arguments-help-parameter-content text-helper-text-sm"
1036
1069
  }, fn.d))), /*#__PURE__*/React__default['default'].createElement("div", {
1070
+ style: {
1071
+ paddingTop: "6px"
1072
+ },
1037
1073
  className: "luckysheet-formula-help-content-param"
1038
1074
  }, fn.p.map(function (param) {
1039
1075
  return /*#__PURE__*/React__default['default'].createElement("div", {
1040
- className: "luckysheet-arguments-help-section",
1076
+ className: "",
1041
1077
  key: param.name
1042
- }, /*#__PURE__*/React__default['default'].createElement("div", {
1043
- className: "luckysheet-arguments-help-section-title example-title"
1044
- }, param.name, param.repeat === "y" && (/*#__PURE__*/React__default['default'].createElement("span", {
1078
+ }, /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("code", null, param.name, param.repeat === "y" && (/*#__PURE__*/React__default['default'].createElement("span", {
1045
1079
  className: "luckysheet-arguments-help-argument-info example-value",
1046
1080
  style: {
1047
1081
  marginTop: "2px"
@@ -1051,15 +1085,21 @@ var FormulaHint = function FormulaHint(props) {
1051
1085
  style: {
1052
1086
  marginTop: "2px"
1053
1087
  }
1054
- }, "-[", formulaMore.allowOptionText, "]"))), /*#__PURE__*/React__default['default'].createElement("span", {
1055
- className: "luckysheet-arguments-help-parameter-content example-value",
1088
+ }, "-[", formulaMore.allowOptionText, "]")))), /*#__PURE__*/React__default['default'].createElement("span", {
1089
+ className: "luckysheet-arguments-help-parameter-content text-helper-text-sm",
1056
1090
  style: {
1057
1091
  marginTop: "2px"
1058
1092
  }
1059
1093
  }, param.detail));
1060
1094
  })))), /*#__PURE__*/React__default['default'].createElement("div", {
1061
- className: "luckysheet-formula-help-foot"
1062
- }));
1095
+ style: {
1096
+ backgroundColor: "".concat(fn.BRAND_COLOR ? fn.BRAND_COLOR : "#F8F9FA"),
1097
+ padding: "8px"
1098
+ },
1099
+ className: "w-full"
1100
+ }, /*#__PURE__*/React__default['default'].createElement("p", {
1101
+ className: "color-text-link text-helper-text-sm"
1102
+ }, "Learn More")));
1063
1103
  };
1064
1104
 
1065
1105
  function usePrevious(value) {
@@ -1804,7 +1844,8 @@ var LinkEditCard = function LinkEditCard(_ref) {
1804
1844
  originType = _ref.originType,
1805
1845
  originAddress = _ref.originAddress,
1806
1846
  isEditing = _ref.isEditing,
1807
- position = _ref.position;
1847
+ position = _ref.position,
1848
+ selectingCellRange = _ref.selectingCellRange;
1808
1849
  var _useContext = React.useContext(WorkbookContext),
1809
1850
  context = _useContext.context,
1810
1851
  setContext = _useContext.setContext,
@@ -1823,24 +1864,29 @@ var LinkEditCard = function LinkEditCard(_ref) {
1823
1864
  setLinkType = _useState6[1];
1824
1865
  var _locale = fortuneCore.locale(context),
1825
1866
  insertLink = _locale.insertLink,
1826
- linkTypeList = _locale.linkTypeList;
1867
+ linkTypeList = _locale.linkTypeList,
1868
+ button = _locale.button;
1869
+ var lastCell = React.useRef(fortuneCore.normalizeSelection(context, [{
1870
+ row: [r, r],
1871
+ column: [c, c]
1872
+ }]));
1873
+ var skipCellRangeSet = React.useRef(true);
1827
1874
  var isLinkAddressValid = fortuneCore.isLinkValid(context, linkType, linkAddress);
1828
- var isButtonDisabled = React.useMemo(function () {
1829
- if (!linkText.trim()) return true;
1830
- if (linkType === "webpage") {
1831
- return !linkAddress.trim() || !isLinkAddressValid.isValid;
1832
- }
1833
- if (linkType === "sheet") {
1834
- return !linkAddress.trim();
1835
- }
1836
- return false;
1837
- }, [linkText, linkAddress, linkType, isLinkAddressValid.isValid]);
1875
+ var tooltip = /*#__PURE__*/React__default['default'].createElement("div", {
1876
+ className: "validation-input-tip"
1877
+ }, isLinkAddressValid.tooltip);
1838
1878
  var hideLinkCard = React.useCallback(function () {
1839
1879
  ___default['default'].set(refs.globalCache, "linkCard.mouseEnter", false);
1840
1880
  setContext(function (draftCtx) {
1841
1881
  draftCtx.linkCard = undefined;
1842
1882
  });
1843
1883
  }, [refs.globalCache, setContext]);
1884
+ var setRangeModalVisible = React.useCallback(function (visible) {
1885
+ return setContext(function (draftCtx) {
1886
+ draftCtx.luckysheet_select_save = lastCell.current;
1887
+ if (draftCtx.linkCard != null) draftCtx.linkCard.selectingCellRange = visible;
1888
+ });
1889
+ }, [setContext]);
1844
1890
  var containerEvent = React.useMemo(function () {
1845
1891
  return {
1846
1892
  onMouseEnter: function onMouseEnter() {
@@ -1866,6 +1912,19 @@ var LinkEditCard = function LinkEditCard(_ref) {
1866
1912
  }
1867
1913
  };
1868
1914
  }, [refs.globalCache]);
1915
+ var renderBottomButton = React.useCallback(function (onOk, onCancel) {
1916
+ return /*#__PURE__*/React__default['default'].createElement("div", {
1917
+ className: "button-group"
1918
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
1919
+ className: "button-basic button-default",
1920
+ onClick: onCancel,
1921
+ tabIndex: 0
1922
+ }, button.cancel), /*#__PURE__*/React__default['default'].createElement("div", {
1923
+ className: "button-basic button-primary",
1924
+ onClick: onOk,
1925
+ tabIndex: 0
1926
+ }, button.confirm));
1927
+ }, [button]);
1869
1928
  var renderToolbarButton = React.useCallback(function (iconId, onClick) {
1870
1929
  return /*#__PURE__*/React__default['default'].createElement("div", {
1871
1930
  className: "fortune-toolbar-button",
@@ -1884,6 +1943,23 @@ var LinkEditCard = function LinkEditCard(_ref) {
1884
1943
  setLinkText(originText);
1885
1944
  setLinkType(originType);
1886
1945
  }, [rc, originAddress, originText, originType]);
1946
+ React.useLayoutEffect(function () {
1947
+ if (selectingCellRange) {
1948
+ skipCellRangeSet.current = true;
1949
+ }
1950
+ }, [selectingCellRange]);
1951
+ React.useLayoutEffect(function () {
1952
+ if (skipCellRangeSet.current) {
1953
+ skipCellRangeSet.current = false;
1954
+ return;
1955
+ }
1956
+ if (selectingCellRange) {
1957
+ var len = ___default['default'].size(context.luckysheet_select_save);
1958
+ if (len > 0) {
1959
+ setLinkAddress(fortuneCore.getRangetxt(context, context.currentSheetId, context.luckysheet_select_save[len - 1], ""));
1960
+ }
1961
+ }
1962
+ }, [context, selectingCellRange]);
1887
1963
  if (!isEditing) {
1888
1964
  return /*#__PURE__*/React__default['default'].createElement("div", _objectSpread2(_objectSpread2({}, containerEvent), {}, {
1889
1965
  onKeyDown: function onKeyDown(e) {
@@ -1924,16 +2000,69 @@ var LinkEditCard = function LinkEditCard(_ref) {
1924
2000
  });
1925
2001
  }));
1926
2002
  }
1927
- return /*#__PURE__*/React__default['default'].createElement("div", _objectSpread2({
1928
- className: "fortune-link-card",
2003
+ return selectingCellRange ? (/*#__PURE__*/React__default['default'].createElement("div", _objectSpread2(_objectSpread2({
2004
+ className: "fortune-link-modify-modal range-selection-modal",
2005
+ style: {
2006
+ left: position.cellLeft,
2007
+ top: position.cellBottom + 5
2008
+ }
2009
+ }, ___default['default'].omit(containerEvent, ["onMouseDown", "onMouseMove", "onMouseUp"])), {}, {
2010
+ onMouseDown: function onMouseDown(e) {
2011
+ var nativeEvent = e.nativeEvent;
2012
+ fortuneCore.onRangeSelectionModalMoveStart(context, refs.globalCache, nativeEvent);
2013
+ e.stopPropagation();
2014
+ }
2015
+ }), /*#__PURE__*/React__default['default'].createElement("div", {
2016
+ className: "modal-icon-close",
2017
+ onClick: function onClick() {
2018
+ return setRangeModalVisible(false);
2019
+ },
2020
+ tabIndex: 0
2021
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
2022
+ name: "close"
2023
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
2024
+ className: "modal-title"
2025
+ }, insertLink.selectCellRange), /*#__PURE__*/React__default['default'].createElement("input", _objectSpread2(_objectSpread2({}, containerEvent), {}, {
2026
+ className: "range-selection-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input"),
2027
+ placeholder: insertLink.cellRangePlaceholder,
2028
+ onChange: function onChange(e) {
2029
+ return setLinkAddress(e.target.value);
2030
+ },
2031
+ value: linkAddress
2032
+ })), tooltip, /*#__PURE__*/React__default['default'].createElement("div", {
2033
+ className: "modal-footer"
2034
+ }, renderBottomButton(function () {
2035
+ if (isLinkAddressValid.isValid) setRangeModalVisible(false);
2036
+ }, function () {
2037
+ setLinkAddress(originAddress);
2038
+ setRangeModalVisible(false);
2039
+ })))) : (/*#__PURE__*/React__default['default'].createElement("div", _objectSpread2({
2040
+ className: "fortune-link-modify-modal",
1929
2041
  style: {
1930
2042
  left: position.cellLeft + 20,
1931
2043
  top: position.cellBottom
1932
2044
  }
1933
- }, containerEvent), /*#__PURE__*/React__default['default'].createElement(ui.Select, {
2045
+ }, containerEvent), /*#__PURE__*/React__default['default'].createElement("div", {
2046
+ className: "fortune-link-modify-line"
2047
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
2048
+ className: "fortune-link-modify-title"
2049
+ }, insertLink.linkText), /*#__PURE__*/React__default['default'].createElement("input", {
2050
+ className: "fortune-link-modify-input",
2051
+ spellCheck: "false",
2052
+ autoFocus: true,
2053
+ value: linkText,
2054
+ onChange: function onChange(e) {
2055
+ return setLinkText(e.target.value);
2056
+ }
2057
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
2058
+ className: "fortune-link-modify-line"
2059
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
2060
+ className: "fortune-link-modify-title"
2061
+ }, insertLink.linkType), /*#__PURE__*/React__default['default'].createElement("select", {
2062
+ className: "fortune-link-modify-select",
1934
2063
  value: linkType,
1935
- onValueChange: function onValueChange(value) {
1936
- if (value === "sheet") {
2064
+ onChange: function onChange(e) {
2065
+ if (e.target.value === "sheet") {
1937
2066
  if (!linkText) {
1938
2067
  setLinkText(context.luckysheetfile[0].name);
1939
2068
  }
@@ -1941,79 +2070,65 @@ var LinkEditCard = function LinkEditCard(_ref) {
1941
2070
  } else {
1942
2071
  setLinkAddress("");
1943
2072
  }
1944
- setLinkType(value);
1945
- }
1946
- }, /*#__PURE__*/React__default['default'].createElement(ui.SelectTrigger, {
1947
- className: "fortune-link-type-select"
1948
- }, /*#__PURE__*/React__default['default'].createElement(ui.SelectValue, null)), /*#__PURE__*/React__default['default'].createElement(ui.SelectContent, {
1949
- className: "fortune-link-type-dropdown"
1950
- }, linkTypeList.filter(function (type) {
1951
- return type.value !== "cellrange";
1952
- }).map(function (type) {
1953
- return /*#__PURE__*/React__default['default'].createElement(ui.SelectItem, {
2073
+ if (e.target.value === "cellrange") setRangeModalVisible(true);
2074
+ setLinkType(e.target.value);
2075
+ }
2076
+ }, linkTypeList.map(function (type) {
2077
+ return /*#__PURE__*/React__default['default'].createElement("option", {
1954
2078
  key: type.value,
1955
2079
  value: type.value
1956
2080
  }, type.text);
1957
2081
  }))), /*#__PURE__*/React__default['default'].createElement("div", {
1958
- className: "fortune-input-with-icon"
1959
- }, /*#__PURE__*/React__default['default'].createElement("div", {
1960
- className: "input-icon"
1961
- }, /*#__PURE__*/React__default['default'].createElement(ui.LucideIcon, {
1962
- name: "ALargeSmall"
1963
- })), /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
1964
- placeholder: "Display text",
1965
- value: linkText,
2082
+ className: "fortune-link-modify-line"
2083
+ }, linkType === "webpage" && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
2084
+ className: "fortune-link-modify-title"
2085
+ }, insertLink.linkAddress), /*#__PURE__*/React__default['default'].createElement("input", {
2086
+ className: "fortune-link-modify-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input"),
2087
+ spellCheck: "false",
2088
+ value: linkAddress,
1966
2089
  onChange: function onChange(e) {
1967
- return setLinkText(e.target.value);
1968
- },
1969
- className: "fortune-link-input"
1970
- })), linkType === "webpage" && (/*#__PURE__*/React__default['default'].createElement("div", {
1971
- className: "fortune-input-with-icon"
1972
- }, /*#__PURE__*/React__default['default'].createElement("div", {
1973
- className: "input-icon"
1974
- }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
1975
- name: "link"
1976
- })), /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
1977
- placeholder: "Paste URL",
2090
+ return setLinkAddress(e.target.value);
2091
+ }
2092
+ }), tooltip)), linkType === "cellrange" && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
2093
+ className: "fortune-link-modify-title"
2094
+ }, insertLink.linkCell), /*#__PURE__*/React__default['default'].createElement("input", {
2095
+ className: "fortune-link-modify-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input"),
2096
+ spellCheck: "false",
1978
2097
  value: linkAddress,
1979
2098
  onChange: function onChange(e) {
1980
2099
  return setLinkAddress(e.target.value);
2100
+ }
2101
+ }), /*#__PURE__*/React__default['default'].createElement("div", {
2102
+ className: "fortune-link-modify-cell-selector",
2103
+ onClick: function onClick() {
2104
+ return setRangeModalVisible(true);
1981
2105
  },
1982
- className: "fortune-link-input ".concat(!linkAddress || isLinkAddressValid.isValid ? "" : "error-input")
1983
- }))), linkType === "sheet" && (/*#__PURE__*/React__default['default'].createElement("div", {
1984
- className: "fortune-input-with-icon"
1985
- }, /*#__PURE__*/React__default['default'].createElement("div", {
1986
- className: "input-icon"
2106
+ tabIndex: 0
1987
2107
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
1988
- name: "link"
1989
- })), /*#__PURE__*/React__default['default'].createElement(ui.Select, {
1990
- onValueChange: function onValueChange(value) {
1991
- if (!linkText) setLinkText(value);
1992
- setLinkAddress(value);
2108
+ name: "border-all"
2109
+ })), tooltip)), linkType === "sheet" && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
2110
+ className: "fortune-link-modify-title"
2111
+ }, insertLink.linkSheet), /*#__PURE__*/React__default['default'].createElement("select", {
2112
+ className: "fortune-link-modify-select",
2113
+ onChange: function onChange(e) {
2114
+ if (!linkText) setLinkText(e.target.value);
2115
+ setLinkAddress(e.target.value);
1993
2116
  },
1994
2117
  value: linkAddress
1995
- }, /*#__PURE__*/React__default['default'].createElement(ui.SelectTrigger, {
1996
- className: "fortune-sheet-select"
1997
- }, /*#__PURE__*/React__default['default'].createElement(ui.SelectValue, {
1998
- placeholder: "[Sheet name]"
1999
- })), /*#__PURE__*/React__default['default'].createElement(ui.SelectContent, {
2000
- className: "fortune-sheet-dropdown"
2001
2118
  }, context.luckysheetfile.map(function (sheet) {
2002
- return /*#__PURE__*/React__default['default'].createElement(ui.SelectItem, {
2119
+ return /*#__PURE__*/React__default['default'].createElement("option", {
2003
2120
  key: sheet.id,
2004
2121
  value: sheet.name
2005
2122
  }, sheet.name);
2006
- }))))), /*#__PURE__*/React__default['default'].createElement(ui.Button, {
2007
- className: "fortune-insert-button",
2008
- disabled: isButtonDisabled,
2009
- onClick: function onClick() {
2010
- if (isButtonDisabled) return;
2011
- ___default['default'].set(refs.globalCache, "linkCard.mouseEnter", false);
2012
- setContext(function (draftCtx) {
2013
- return fortuneCore.saveHyperlink(draftCtx, r, c, linkText, linkType, linkAddress);
2014
- });
2015
- }
2016
- }, "Insert link"));
2123
+ })), tooltip))), /*#__PURE__*/React__default['default'].createElement("div", {
2124
+ className: "modal-footer"
2125
+ }, renderBottomButton(function () {
2126
+ if (!isLinkAddressValid.isValid) return;
2127
+ ___default['default'].set(refs.globalCache, "linkCard.mouseEnter", false);
2128
+ setContext(function (draftCtx) {
2129
+ return fortuneCore.saveHyperlink(draftCtx, r, c, linkText, linkType, linkAddress);
2130
+ });
2131
+ }, hideLinkCard))));
2017
2132
  };
2018
2133
 
2019
2134
  var FilterOptions = function FilterOptions(_ref) {
@@ -2115,11 +2230,15 @@ var FilterOptions = function FilterOptions(_ref) {
2115
2230
  width: undefined
2116
2231
  }),
2117
2232
  className: "luckysheet-filter-options ".concat(filterParam == null ? "" : "luckysheet-filter-options-active")
2118
- }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
2119
- name: "filter",
2120
- width: 15,
2121
- height: 15
2122
- }));
2233
+ }, filterParam == null ? (/*#__PURE__*/React__default['default'].createElement("div", {
2234
+ className: "caret down"
2235
+ })) : (/*#__PURE__*/React__default['default'].createElement(SVGIcon, {
2236
+ name: "filter-fill-white",
2237
+ style: {
2238
+ width: 15,
2239
+ height: 15
2240
+ }
2241
+ })));
2123
2242
  })));
2124
2243
  };
2125
2244
 
@@ -3217,7 +3336,6 @@ var ConditionRules = function ConditionRules(_ref) {
3217
3336
  }, /*#__PURE__*/React__default['default'].createElement("span", {
3218
3337
  id: "checkTextColor"
3219
3338
  }, /*#__PURE__*/React__default['default'].createElement(ui.Checkbox, {
3220
- className: "border-2",
3221
3339
  checked: context.conditionRules.textColor.check,
3222
3340
  onCheckedChange: function onCheckedChange(e) {
3223
3341
  var checked = e.target.checked;
@@ -3245,7 +3363,6 @@ var ConditionRules = function ConditionRules(_ref) {
3245
3363
  }, /*#__PURE__*/React__default['default'].createElement("span", {
3246
3364
  id: "checkCellColor"
3247
3365
  }, /*#__PURE__*/React__default['default'].createElement(ui.Checkbox, {
3248
- className: "border-2",
3249
3366
  checked: context.conditionRules.cellColor.check,
3250
3367
  onCheckedChange: function onCheckedChange(e) {
3251
3368
  var checked = e.target.checked;
@@ -4285,8 +4402,6 @@ var Combo = function Combo(_ref) {
4285
4402
  _onClick = _ref.onClick,
4286
4403
  text = _ref.text,
4287
4404
  iconId = _ref.iconId,
4288
- _ref$showArrow = _ref.showArrow,
4289
- showArrow = _ref$showArrow === void 0 ? true : _ref$showArrow,
4290
4405
  children = _ref.children;
4291
4406
  var style = {
4292
4407
  userSelect: "none"
@@ -4303,9 +4418,12 @@ var Combo = function Combo(_ref) {
4303
4418
  setPopupPosition = _useState4[1];
4304
4419
  var popupRef = React.useRef(null);
4305
4420
  var buttonRef = React.useRef(null);
4421
+ var openState = React.useRef(false);
4422
+ var triggerRef = React.useRef(null);
4306
4423
  useOutsideClick(popupRef, function () {
4307
4424
  setOpen(false);
4308
- });
4425
+ openState.current = false;
4426
+ }, [], triggerRef);
4309
4427
  React.useLayoutEffect(function () {
4310
4428
  if (!popupRef.current) {
4311
4429
  return;
@@ -4331,43 +4449,27 @@ var Combo = function Combo(_ref) {
4331
4449
  ref: buttonRef,
4332
4450
  className: "fortune-toolbar-combo"
4333
4451
  }, /*#__PURE__*/React__default['default'].createElement("div", {
4452
+ ref: triggerRef,
4334
4453
  className: "fortune-toolbar-combo-button",
4335
4454
  onClick: function onClick(e) {
4336
- if (_onClick) {
4337
- _onClick(e);
4338
- if (!showArrow) setOpen(!open);
4339
- } else {
4340
- setOpen(!open);
4341
- }
4455
+ openState.current = !openState.current;
4456
+ setOpen(openState.current);
4457
+ if (_onClick) _onClick(e);else setOpen(openState.current);
4342
4458
  },
4343
4459
  tabIndex: 0,
4344
4460
  "data-tips": tooltip,
4345
4461
  role: "button",
4346
- "aria-label": "".concat(tooltip, ": ").concat(text !== undefined ? text : ""),
4462
+ "aria-label": tooltip,
4347
4463
  style: style
4348
4464
  }, iconId ? (/*#__PURE__*/React__default['default'].createElement(SVGIcon, {
4349
4465
  name: iconId
4350
4466
  })) : (/*#__PURE__*/React__default['default'].createElement("span", {
4351
4467
  className: "fortune-toolbar-combo-text"
4352
- }, text !== undefined ? text : ""))), showArrow && (/*#__PURE__*/React__default['default'].createElement("div", {
4353
- className: "fortune-toolbar-combo-arrow",
4354
- onClick: function onClick() {
4355
- return setOpen(!open);
4356
- },
4357
- tabIndex: 0,
4358
- "data-tips": tooltip,
4359
- role: "button",
4360
- "aria-label": tooltip,
4361
- style: style
4362
- }, /*#__PURE__*/React__default['default'].createElement(ui.LucideIcon, {
4363
- name: "ChevronDown",
4364
- width: 14,
4365
- height: 14
4366
- }))), tooltip && /*#__PURE__*/React__default['default'].createElement("div", {
4468
+ }, text))), tooltip && /*#__PURE__*/React__default['default'].createElement("div", {
4367
4469
  className: "fortune-tooltip"
4368
4470
  }, tooltip)), open && (/*#__PURE__*/React__default['default'].createElement("div", {
4369
4471
  ref: popupRef,
4370
- className: "fortune-toolbar-combo-popup",
4472
+ className: "fortune-toolbar-combo-popup color-text-default",
4371
4473
  style: popupPosition
4372
4474
  }, children === null || children === void 0 ? void 0 : children(setOpen))));
4373
4475
  };
@@ -5130,6 +5232,215 @@ var CustomColor = function CustomColor(_ref) {
5130
5232
  }));
5131
5233
  };
5132
5234
 
5235
+ var size = [{
5236
+ Text: "1",
5237
+ value: "Thin",
5238
+ strokeDasharray: "1,0",
5239
+ strokeWidth: "1"
5240
+ }, {
5241
+ Text: "2",
5242
+ value: "Hair",
5243
+ strokeDasharray: "1,5",
5244
+ strokeWidth: "1"
5245
+ }, {
5246
+ Text: "3",
5247
+ value: "Dotted",
5248
+ strokeDasharray: "2,5",
5249
+ strokeWidth: "2"
5250
+ }, {
5251
+ Text: "4",
5252
+ value: "Dashed",
5253
+ strokeDasharray: "5,5",
5254
+ strokeWidth: "2"
5255
+ }, {
5256
+ Text: "5",
5257
+ value: "DashDot",
5258
+ strokeDasharray: "20,5,5,10,5,5",
5259
+ strokeWidth: "2"
5260
+ }, {
5261
+ Text: "6",
5262
+ value: "DashDotDot",
5263
+ strokeDasharray: "20,5,5,5,5,10,5,5,5,5",
5264
+ strokeWidth: "2"
5265
+ }, {
5266
+ Text: "8",
5267
+ value: "Medium",
5268
+ strokeDasharray: "2,0",
5269
+ strokeWidth: "2"
5270
+ }, {
5271
+ Text: "9",
5272
+ value: "MediumDashed",
5273
+ strokeDasharray: "3,5",
5274
+ strokeWidth: "3"
5275
+ }, {
5276
+ Text: "10",
5277
+ value: "MediumDashDot",
5278
+ strokeDasharray: "20,5,5,10,5,5",
5279
+ strokeWidth: "3"
5280
+ }, {
5281
+ Text: "11",
5282
+ value: "MediumDashDotDot",
5283
+ strokeDasharray: "5,5,5,5,20,5,5,5,5,10",
5284
+ strokeWidth: "3"
5285
+ }, {
5286
+ Text: "13",
5287
+ value: "Thick",
5288
+ strokeDasharray: "2,0",
5289
+ strokeWidth: "3"
5290
+ }];
5291
+ var CustomBorder = function CustomBorder(_ref) {
5292
+ var onPick = _ref.onPick;
5293
+ var _useContext = React.useContext(WorkbookContext),
5294
+ context = _useContext.context,
5295
+ refs = _useContext.refs;
5296
+ var _locale = fortuneCore.locale(context),
5297
+ border = _locale.border;
5298
+ var _useState = React.useState("#000000"),
5299
+ _useState2 = _slicedToArray(_useState, 2),
5300
+ changeColor = _useState2[0],
5301
+ setchangeColor = _useState2[1];
5302
+ var _useState3 = React.useState("1"),
5303
+ _useState4 = _slicedToArray(_useState3, 2),
5304
+ changeStyle = _useState4[0],
5305
+ setchangeStyle = _useState4[1];
5306
+ var colorRef = React.useRef(null);
5307
+ var styleRef = React.useRef(null);
5308
+ var colorPreviewRef = React.useRef(null);
5309
+ var _useState5 = React.useState(""),
5310
+ _useState6 = _slicedToArray(_useState5, 2),
5311
+ previewWith = _useState6[0],
5312
+ setPreviewWith = _useState6[1];
5313
+ var _useState7 = React.useState(""),
5314
+ _useState8 = _slicedToArray(_useState7, 2),
5315
+ previewdasharry = _useState8[0],
5316
+ setPreviewdasharray = _useState8[1];
5317
+ var showBorderSubMenu = React.useCallback(function (e) {
5318
+ var target = e.target;
5319
+ var menuItemRect = target.getBoundingClientRect();
5320
+ var subMenuItem = target.querySelector(".fortune-border-select-menu");
5321
+ if (___default['default'].isNil(subMenuItem)) return;
5322
+ subMenuItem.style.display = "block";
5323
+ var workbookContainerRect = refs.workbookContainer.current.getBoundingClientRect();
5324
+ if (workbookContainerRect.width - menuItemRect.right > parseFloat(subMenuItem.style.width.replace("px", ""))) {
5325
+ subMenuItem.style.left = "".concat(menuItemRect === null || menuItemRect === void 0 ? void 0 : menuItemRect.width, "px");
5326
+ } else {
5327
+ subMenuItem.style.left = "-".concat(subMenuItem.style.width);
5328
+ }
5329
+ }, [refs.workbookContainer]);
5330
+ var hideBorderSubMenu = React.useCallback(function () {
5331
+ styleRef.current.style.display = "none";
5332
+ colorRef.current.style.display = "none";
5333
+ }, []);
5334
+ var changePreviewStyle = React.useCallback(function (width, dasharray) {
5335
+ setPreviewWith(width);
5336
+ setPreviewdasharray(dasharray);
5337
+ }, []);
5338
+ return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("div", {
5339
+ className: "fortune-border-select-option",
5340
+ key: "borderColor",
5341
+ onMouseEnter: function onMouseEnter(e) {
5342
+ showBorderSubMenu(e);
5343
+ },
5344
+ onMouseLeave: function onMouseLeave() {
5345
+ hideBorderSubMenu();
5346
+ }
5347
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
5348
+ className: "fortune-toolbar-menu-line"
5349
+ }, border.borderColor, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
5350
+ name: "rightArrow",
5351
+ style: {
5352
+ width: "14px"
5353
+ }
5354
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
5355
+ ref: colorPreviewRef,
5356
+ className: "fortune-border-color-preview",
5357
+ style: {
5358
+ backgroundColor: changeColor
5359
+ }
5360
+ }), /*#__PURE__*/React__default['default'].createElement("div", {
5361
+ ref: colorRef,
5362
+ className: "fortune-border-select-menu",
5363
+ style: {
5364
+ display: "none",
5365
+ width: "166px"
5366
+ }
5367
+ }, /*#__PURE__*/React__default['default'].createElement(CustomColor, {
5368
+ onCustomPick: function onCustomPick(color) {
5369
+ onPick(color, changeStyle);
5370
+ colorPreviewRef.current.style.backgroundColor = changeColor;
5371
+ setchangeColor(color);
5372
+ },
5373
+ onColorPick: function onColorPick(color) {
5374
+ onPick(color, changeStyle);
5375
+ setchangeColor(color);
5376
+ }
5377
+ }))), /*#__PURE__*/React__default['default'].createElement("div", {
5378
+ className: "fortune-border-select-option",
5379
+ key: "borderStyle",
5380
+ onMouseEnter: function onMouseEnter(e) {
5381
+ showBorderSubMenu(e);
5382
+ },
5383
+ onMouseLeave: function onMouseLeave() {
5384
+ hideBorderSubMenu();
5385
+ }
5386
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
5387
+ className: "fortune-toolbar-menu-line"
5388
+ }, border.borderStyle, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
5389
+ name: "rightArrow",
5390
+ style: {
5391
+ width: "14px"
5392
+ }
5393
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
5394
+ className: "fortune-border-style-preview"
5395
+ }, /*#__PURE__*/React__default['default'].createElement("svg", {
5396
+ width: "90"
5397
+ }, /*#__PURE__*/React__default['default'].createElement("g", {
5398
+ fill: "none",
5399
+ stroke: "black",
5400
+ strokeWidth: previewWith
5401
+ }, /*#__PURE__*/React__default['default'].createElement("path", {
5402
+ strokeDasharray: previewdasharry,
5403
+ d: "M0 0 l90 0"
5404
+ })))), /*#__PURE__*/React__default['default'].createElement("div", {
5405
+ ref: styleRef,
5406
+ className: "fortune-border-select-menu fortune-toolbar-select",
5407
+ style: {
5408
+ display: "none",
5409
+ width: "110px"
5410
+ }
5411
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
5412
+ className: "fortune-border-style-picker-menu fortune-border-style-reset",
5413
+ onClick: function onClick() {
5414
+ onPick(changeColor, "1");
5415
+ changePreviewStyle("1", "1,0");
5416
+ },
5417
+ tabIndex: 0
5418
+ }, border.borderDefault), /*#__PURE__*/React__default['default'].createElement("div", {
5419
+ className: "fortune-boder-style-picker"
5420
+ }, size.map(function (items, i) {
5421
+ return /*#__PURE__*/React__default['default'].createElement("div", {
5422
+ key: i,
5423
+ className: "fortune-border-style-picker-menu",
5424
+ onClick: function onClick() {
5425
+ onPick(changeColor, items.Text);
5426
+ setchangeStyle(items.Text);
5427
+ changePreviewStyle(items.strokeWidth, items.strokeDasharray);
5428
+ },
5429
+ tabIndex: 0
5430
+ }, /*#__PURE__*/React__default['default'].createElement("svg", {
5431
+ height: "10",
5432
+ width: "90"
5433
+ }, /*#__PURE__*/React__default['default'].createElement("g", {
5434
+ fill: "none",
5435
+ stroke: "black",
5436
+ strokeWidth: items.strokeWidth
5437
+ }, /*#__PURE__*/React__default['default'].createElement("path", {
5438
+ strokeDasharray: items.strokeDasharray,
5439
+ d: "M0 5 l85 0"
5440
+ }))));
5441
+ })))));
5442
+ };
5443
+
5133
5444
  var FormatSearch = function FormatSearch(_ref) {
5134
5445
  var type = _ref.type,
5135
5446
  _onCancel = _ref.onCancel;
@@ -5412,7 +5723,6 @@ var Toolbar = function Toolbar(_ref) {
5412
5723
  }), /*#__PURE__*/React__default['default'].createElement(Combo, {
5413
5724
  iconId: name,
5414
5725
  tooltip: tooltip,
5415
- showArrow: false,
5416
5726
  onClick: function onClick() {
5417
5727
  var color = name === "font-color" ? refs.globalCache.recentTextColor : refs.globalCache.recentBackgroundColor;
5418
5728
  if (color) pick(color);
@@ -5445,8 +5755,7 @@ var Toolbar = function Toolbar(_ref) {
5445
5755
  return /*#__PURE__*/React__default['default'].createElement(Combo, {
5446
5756
  text: currentFmt,
5447
5757
  key: name,
5448
- tooltip: tooltip,
5449
- showArrow: false
5758
+ tooltip: tooltip
5450
5759
  }, function (setOpen) {
5451
5760
  return /*#__PURE__*/React__default['default'].createElement(Select, null, defaultFormat.map(function (_ref2, ii) {
5452
5761
  var text = _ref2.text,
@@ -5530,8 +5839,7 @@ var Toolbar = function Toolbar(_ref) {
5530
5839
  return /*#__PURE__*/React__default['default'].createElement(Combo, {
5531
5840
  text: current,
5532
5841
  key: name,
5533
- tooltip: tooltip,
5534
- showArrow: false
5842
+ tooltip: tooltip
5535
5843
  }, function (setOpen) {
5536
5844
  return /*#__PURE__*/React__default['default'].createElement(Select, null, fontarray.map(function (o) {
5537
5845
  return /*#__PURE__*/React__default['default'].createElement(Option, {
@@ -5553,8 +5861,7 @@ var Toolbar = function Toolbar(_ref) {
5553
5861
  return /*#__PURE__*/React__default['default'].createElement(Combo, {
5554
5862
  text: cell ? fortuneCore.normalizedCellAttr(cell, "fs", context.defaultFontSize) : context.defaultFontSize.toString(),
5555
5863
  key: name,
5556
- tooltip: tooltip,
5557
- showArrow: false
5864
+ tooltip: tooltip
5558
5865
  }, function (setOpen) {
5559
5866
  return /*#__PURE__*/React__default['default'].createElement(Select, null, [9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72].map(function (num) {
5560
5867
  return /*#__PURE__*/React__default['default'].createElement(Option, {
@@ -5589,8 +5896,7 @@ var Toolbar = function Toolbar(_ref) {
5589
5896
  return "".concat(item.value) === "".concat(cell === null || cell === void 0 ? void 0 : cell.ht);
5590
5897
  })) === null || _$find === void 0 ? void 0 : _$find.title) || "align-left",
5591
5898
  key: name,
5592
- tooltip: toolbar.horizontalAlign,
5593
- showArrow: false
5899
+ tooltip: toolbar.horizontalAlign
5594
5900
  }, function (setOpen) {
5595
5901
  return /*#__PURE__*/React__default['default'].createElement(Select, null, items.map(function (_ref3) {
5596
5902
  var text = _ref3.text,
@@ -5631,8 +5937,7 @@ var Toolbar = function Toolbar(_ref) {
5631
5937
  return "".concat(item.value) === "".concat(cell === null || cell === void 0 ? void 0 : cell.vt);
5632
5938
  })) === null || _$find2 === void 0 ? void 0 : _$find2.title) || "align-top",
5633
5939
  key: name,
5634
- tooltip: toolbar.verticalAlign,
5635
- showArrow: false
5940
+ tooltip: toolbar.verticalAlign
5636
5941
  }, function (setOpen) {
5637
5942
  return /*#__PURE__*/React__default['default'].createElement(Select, null, _items.map(function (_ref4) {
5638
5943
  var text = _ref4.text,
@@ -5757,8 +6062,7 @@ var Toolbar = function Toolbar(_ref) {
5757
6062
  return /*#__PURE__*/React__default['default'].createElement(Combo, {
5758
6063
  iconId: "locationCondition",
5759
6064
  key: name,
5760
- tooltip: findAndReplace.location,
5761
- showArrow: false
6065
+ tooltip: findAndReplace.location
5762
6066
  }, function (setOpen) {
5763
6067
  return /*#__PURE__*/React__default['default'].createElement(Select, null, _items2.map(function (_ref5) {
5764
6068
  var text = _ref5.text,
@@ -5843,8 +6147,7 @@ var Toolbar = function Toolbar(_ref) {
5843
6147
  return /*#__PURE__*/React__default['default'].createElement(Combo, {
5844
6148
  iconId: "conditionFormat",
5845
6149
  key: name,
5846
- tooltip: toolbar.conditionalFormat,
5847
- showArrow: false
6150
+ tooltip: toolbar.conditionalFormat
5848
6151
  }, function (setOpen) {
5849
6152
  return /*#__PURE__*/React__default['default'].createElement(ConditionalFormat, {
5850
6153
  items: _items3,
@@ -5941,8 +6244,7 @@ var Toolbar = function Toolbar(_ref) {
5941
6244
  return /*#__PURE__*/React__default['default'].createElement(Combo, {
5942
6245
  iconId: name,
5943
6246
  key: name,
5944
- tooltip: tooltip,
5945
- showArrow: false
6247
+ tooltip: tooltip
5946
6248
  }, function (setOpen) {
5947
6249
  return /*#__PURE__*/React__default['default'].createElement(Select, null, itemData.map(function (_ref6) {
5948
6250
  var key = _ref6.key,
@@ -5981,7 +6283,6 @@ var Toolbar = function Toolbar(_ref) {
5981
6283
  iconId: "formula-sum",
5982
6284
  key: name,
5983
6285
  tooltip: toolbar.autoSum,
5984
- showArrow: false,
5985
6286
  onClick: function onClick() {
5986
6287
  return setContext(function (ctx) {
5987
6288
  fortuneCore.handleSum(ctx, refs.cellInput.current, refs.fxInput.current, refs.globalCache);
@@ -6053,13 +6354,12 @@ var Toolbar = function Toolbar(_ref) {
6053
6354
  setOpen(false);
6054
6355
  }
6055
6356
  }, /*#__PURE__*/React__default['default'].createElement("div", {
6357
+ className: "fortune-toolbar-menu-line"
6358
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
6359
+ name: value,
6056
6360
  style: {
6057
- display: "flex",
6058
- alignItems: "center",
6059
- gap: 6
6361
+ marginRight: 4
6060
6362
  }
6061
- }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
6062
- name: value
6063
6363
  }), text));
6064
6364
  }));
6065
6365
  });
@@ -6077,6 +6377,9 @@ var Toolbar = function Toolbar(_ref) {
6077
6377
  }, {
6078
6378
  text: border.borderRight,
6079
6379
  value: "border-right"
6380
+ }, {
6381
+ text: "",
6382
+ value: "divider"
6080
6383
  }, {
6081
6384
  text: border.borderNone,
6082
6385
  value: "border-none"
@@ -6086,6 +6389,9 @@ var Toolbar = function Toolbar(_ref) {
6086
6389
  }, {
6087
6390
  text: border.borderOutside,
6088
6391
  value: "border-outside"
6392
+ }, {
6393
+ text: "",
6394
+ value: "divider"
6089
6395
  }, {
6090
6396
  text: border.borderInside,
6091
6397
  value: "border-inside"
@@ -6098,35 +6404,44 @@ var Toolbar = function Toolbar(_ref) {
6098
6404
  }, {
6099
6405
  text: border.borderSlash,
6100
6406
  value: "border-slash"
6407
+ }, {
6408
+ text: "",
6409
+ value: "divider"
6101
6410
  }];
6102
6411
  return /*#__PURE__*/React__default['default'].createElement(Combo, {
6103
6412
  iconId: "border-all",
6104
6413
  key: name,
6105
6414
  tooltip: tooltip,
6106
6415
  text: "\u8FB9\u6846\u8BBE\u7F6E",
6107
- showArrow: false,
6108
6416
  onClick: function onClick() {
6109
6417
  return setContext(function (ctx) {
6110
6418
  fortuneCore.handleBorder(ctx, "border-all", customColor, customStyle);
6111
6419
  });
6112
6420
  }
6113
6421
  }, function (setOpen) {
6114
- return /*#__PURE__*/React__default['default'].createElement("div", {
6115
- className: "fortune-toolbar-select fortune-border-grid"
6116
- }, _items4.map(function (_ref9) {
6117
- var value = _ref9.value;
6118
- return /*#__PURE__*/React__default['default'].createElement("div", {
6422
+ return /*#__PURE__*/React__default['default'].createElement(Select, null, _items4.map(function (_ref9, ii) {
6423
+ var text = _ref9.text,
6424
+ value = _ref9.value;
6425
+ return value !== "divider" ? (/*#__PURE__*/React__default['default'].createElement(Option, {
6119
6426
  key: value,
6120
- className: "fortune-border-grid-item",
6121
6427
  onClick: function onClick() {
6122
6428
  setContext(function (ctx) {
6123
6429
  fortuneCore.handleBorder(ctx, value, customColor, customStyle);
6124
6430
  });
6125
6431
  setOpen(false);
6126
6432
  }
6127
- }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
6433
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
6434
+ className: "fortune-toolbar-menu-line"
6435
+ }, text, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
6128
6436
  name: value
6437
+ })))) : (/*#__PURE__*/React__default['default'].createElement(MenuDivider, {
6438
+ key: ii
6129
6439
  }));
6440
+ }), /*#__PURE__*/React__default['default'].createElement(CustomBorder, {
6441
+ onPick: function onPick(color, style) {
6442
+ setcustomColor(color);
6443
+ setcustomStyle(style);
6444
+ }
6130
6445
  }));
6131
6446
  });
6132
6447
  }
@@ -6148,7 +6463,6 @@ var Toolbar = function Toolbar(_ref) {
6148
6463
  iconId: "freeze-row-col",
6149
6464
  key: name,
6150
6465
  tooltip: tooltip,
6151
- showArrow: false,
6152
6466
  onClick: function onClick() {
6153
6467
  return setContext(function (ctx) {
6154
6468
  fortuneCore.handleFreeze(ctx, "freeze-row-col");
@@ -6195,8 +6509,7 @@ var Toolbar = function Toolbar(_ref) {
6195
6509
  return /*#__PURE__*/React__default['default'].createElement(Combo, {
6196
6510
  iconId: _curr.iconId,
6197
6511
  key: name,
6198
- tooltip: toolbar.textWrap,
6199
- showArrow: false
6512
+ tooltip: toolbar.textWrap
6200
6513
  }, function (setOpen) {
6201
6514
  return /*#__PURE__*/React__default['default'].createElement(Select, null, _items6.map(function (_ref1) {
6202
6515
  var text = _ref1.text,
@@ -6253,8 +6566,7 @@ var Toolbar = function Toolbar(_ref) {
6253
6566
  return /*#__PURE__*/React__default['default'].createElement(Combo, {
6254
6567
  iconId: _curr2.iconId,
6255
6568
  key: name,
6256
- tooltip: toolbar.textRotate,
6257
- showArrow: false
6569
+ tooltip: toolbar.textRotate
6258
6570
  }, function (setOpen) {
6259
6571
  return /*#__PURE__*/React__default['default'].createElement(Select, null, _items7.map(function (_ref10) {
6260
6572
  var text = _ref10.text,
@@ -6322,8 +6634,7 @@ var Toolbar = function Toolbar(_ref) {
6322
6634
  return /*#__PURE__*/React__default['default'].createElement(Combo, {
6323
6635
  iconId: "filter",
6324
6636
  key: name,
6325
- tooltip: toolbar.sortAndFilter,
6326
- showArrow: false
6637
+ tooltip: toolbar.sortAndFilter
6327
6638
  }, function (setOpen) {
6328
6639
  return /*#__PURE__*/React__default['default'].createElement(Select, {
6329
6640
  style: {
@@ -6346,9 +6657,7 @@ var Toolbar = function Toolbar(_ref) {
6346
6657
  justifyContent: "start"
6347
6658
  }
6348
6659
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
6349
- name: iconId,
6350
- width: 24,
6351
- height: 18
6660
+ name: iconId
6352
6661
  }), text))) : (/*#__PURE__*/React__default['default'].createElement(MenuDivider, {
6353
6662
  key: "divider-".concat(index)
6354
6663
  }));
@@ -6373,7 +6682,7 @@ var Toolbar = function Toolbar(_ref) {
6373
6682
  className: "fortune-toolbar",
6374
6683
  "aria-label": toolbar.toolbar
6375
6684
  }, settings.customToolbarItems.filter(function (n) {
6376
- return n.key === "import-export";
6685
+ return n.key !== "templates";
6377
6686
  }).map(function (n) {
6378
6687
  return /*#__PURE__*/React__default['default'].createElement(CustomButton, {
6379
6688
  tooltip: n.tooltip,
@@ -6410,18 +6719,6 @@ var Toolbar = function Toolbar(_ref) {
6410
6719
  icon: n.icon,
6411
6720
  iconName: n.iconName
6412
6721
  }, n.children);
6413
- }), /*#__PURE__*/React__default['default'].createElement(Divider, {
6414
- key: "customDivider"
6415
- }), settings.customToolbarItems.filter(function (n) {
6416
- return n.key !== "templates" && n.key !== "import-export";
6417
- }).map(function (n) {
6418
- return /*#__PURE__*/React__default['default'].createElement(CustomButton, {
6419
- tooltip: n.tooltip,
6420
- onClick: n.onClick,
6421
- key: n.key,
6422
- icon: n.icon,
6423
- iconName: n.iconName
6424
- }, n.children);
6425
6722
  }));
6426
6723
  };
6427
6724
 
@@ -7666,8 +7963,7 @@ var ContextMenu = function ContextMenu() {
7666
7963
  }
7667
7964
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7668
7965
  name: "sort-asc",
7669
- width: 24,
7670
- height: 18,
7966
+ width: 22,
7671
7967
  style: {
7672
7968
  marginRight: "4px"
7673
7969
  }
@@ -7685,8 +7981,7 @@ var ContextMenu = function ContextMenu() {
7685
7981
  }
7686
7982
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7687
7983
  name: "sort-desc",
7688
- width: 24,
7689
- height: 18,
7984
+ width: 22,
7690
7985
  style: {
7691
7986
  marginRight: "4px"
7692
7987
  }
@@ -7742,7 +8037,7 @@ var ContextMenu = function ContextMenu() {
7742
8037
  }
7743
8038
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7744
8039
  name: "filter",
7745
- width: 24,
8040
+ width: 22,
7746
8041
  style: {
7747
8042
  marginRight: "4px"
7748
8043
  }
@@ -7760,11 +8055,9 @@ var ContextMenu = function ContextMenu() {
7760
8055
  }
7761
8056
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7762
8057
  name: "eraser",
7763
- width: 24,
7764
- height: 22,
8058
+ width: 22,
7765
8059
  style: {
7766
- marginRight: "4px",
7767
- marginLeft: "2px"
8060
+ marginRight: "4px"
7768
8061
  }
7769
8062
  }), /*#__PURE__*/React__default['default'].createElement("p", null, filter.clearFilter))))),
7770
8063
  trigger: "mouseenter focus",
@@ -7775,7 +8068,7 @@ var ContextMenu = function ContextMenu() {
7775
8068
  className: "context-item"
7776
8069
  }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7777
8070
  name: "filter",
7778
- width: 24,
8071
+ width: 22,
7779
8072
  style: {
7780
8073
  marginRight: "4px"
7781
8074
  }
@@ -10199,24 +10492,23 @@ function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cel
10199
10492
  var SelectItem = function SelectItem(_ref) {
10200
10493
  var item = _ref.item,
10201
10494
  isChecked = _ref.isChecked,
10202
- onChange = _ref.onChange,
10495
+ _onChange = _ref.onChange,
10203
10496
  isItemVisible = _ref.isItemVisible;
10204
10497
  var checked = React.useMemo(function () {
10205
10498
  return isChecked(item.key);
10206
10499
  }, [isChecked, item.key]);
10207
10500
  return isItemVisible(item) ? (/*#__PURE__*/React__default['default'].createElement("div", {
10208
10501
  className: "select-item"
10209
- }, /*#__PURE__*/React__default['default'].createElement("div", {
10210
- className: "flex items-center gap-2"
10211
- }, /*#__PURE__*/React__default['default'].createElement(ui.Checkbox, {
10212
- className: "border-2",
10502
+ }, /*#__PURE__*/React__default['default'].createElement("input", {
10503
+ className: "filter-checkbox",
10504
+ type: "checkbox",
10213
10505
  checked: checked,
10214
- onCheckedChange: function onCheckedChange(e) {
10215
- onChange(item, e.target.checked);
10506
+ onChange: function onChange() {
10507
+ _onChange(item, !checked);
10216
10508
  }
10217
- }), /*#__PURE__*/React__default['default'].createElement("span", null, item.text)), /*#__PURE__*/React__default['default'].createElement("span", {
10509
+ }), /*#__PURE__*/React__default['default'].createElement("div", null, item.text), /*#__PURE__*/React__default['default'].createElement("span", {
10218
10510
  className: "count"
10219
- }, "".concat(item.rows.length)))) : null;
10511
+ }, "( ".concat(item.rows.length, " )")))) : null;
10220
10512
  };
10221
10513
  var _DateSelectTreeItem = function DateSelectTreeItem(_ref2) {
10222
10514
  var item = _ref2.item,
@@ -10225,7 +10517,7 @@ var _DateSelectTreeItem = function DateSelectTreeItem(_ref2) {
10225
10517
  initialExpand = _ref2.initialExpand,
10226
10518
  onExpand = _ref2.onExpand,
10227
10519
  isChecked = _ref2.isChecked,
10228
- onChange = _ref2.onChange,
10520
+ _onChange2 = _ref2.onChange,
10229
10521
  isItemVisible = _ref2.isItemVisible;
10230
10522
  var _useState = React.useState(initialExpand(item.key)),
10231
10523
  _useState2 = _slicedToArray(_useState, 2),
@@ -10234,43 +10526,39 @@ var _DateSelectTreeItem = function DateSelectTreeItem(_ref2) {
10234
10526
  var checked = React.useMemo(function () {
10235
10527
  return isChecked(item.key);
10236
10528
  }, [isChecked, item.key]);
10237
- return isItemVisible(item) ? (/*#__PURE__*/React__default['default'].createElement("div", {
10238
- className: "flex flex-col gap-2"
10239
- }, /*#__PURE__*/React__default['default'].createElement("div", {
10529
+ return isItemVisible(item) ? (/*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("div", {
10240
10530
  className: "select-item",
10241
10531
  style: {
10242
10532
  marginLeft: -2 + depth * 20
10243
10533
  },
10244
- tabIndex: 0
10245
- }, /*#__PURE__*/React__default['default'].createElement("div", {
10246
- className: "flex items-center gap-2",
10247
- style: {
10248
- flex: 1
10534
+ onClick: function onClick() {
10535
+ onExpand === null || onExpand === void 0 ? void 0 : onExpand(item.key, !expand);
10536
+ setExpand(!expand);
10249
10537
  },
10250
- onClick: function onClick(e) {
10251
- return e.stopPropagation();
10252
- }
10538
+ tabIndex: 0
10253
10539
  }, ___default['default'].isEmpty(item.children) ? (/*#__PURE__*/React__default['default'].createElement("div", {
10254
10540
  style: {
10255
10541
  width: 10
10256
10542
  }
10257
- })) : (/*#__PURE__*/React__default['default'].createElement(ui.LucideIcon, {
10258
- name: expand ? "ChevronDown" : "ChevronRight",
10259
- className: "cursor-pointer",
10260
- size: "sm",
10261
- onClick: function onClick() {
10262
- onExpand === null || onExpand === void 0 ? void 0 : onExpand(item.key, !expand);
10263
- setExpand(!expand);
10543
+ })) : (/*#__PURE__*/React__default['default'].createElement("div", {
10544
+ className: "filter-caret ".concat(expand ? "down" : "right"),
10545
+ style: {
10546
+ cursor: "pointer"
10264
10547
  }
10265
- })), /*#__PURE__*/React__default['default'].createElement(ui.Checkbox, {
10266
- className: "border-2",
10548
+ })), /*#__PURE__*/React__default['default'].createElement("input", {
10549
+ className: "filter-checkbox",
10550
+ type: "checkbox",
10267
10551
  checked: checked,
10268
- onCheckedChange: function onCheckedChange(e) {
10269
- onChange(item, e.target.checked);
10270
- }
10271
- }), /*#__PURE__*/React__default['default'].createElement("span", null, item.text)), /*#__PURE__*/React__default['default'].createElement("span", {
10552
+ onChange: function onChange() {
10553
+ _onChange2(item, !checked);
10554
+ },
10555
+ onClick: function onClick(e) {
10556
+ return e.stopPropagation();
10557
+ },
10558
+ tabIndex: 0
10559
+ }), /*#__PURE__*/React__default['default'].createElement("div", null, item.text), /*#__PURE__*/React__default['default'].createElement("span", {
10272
10560
  className: "count"
10273
- }, "".concat(item.rows.length))), expand && item.children.map(function (v) {
10561
+ }, "( ".concat(item.rows.length, " )"))), expand && item.children.map(function (v) {
10274
10562
  return /*#__PURE__*/React__default['default'].createElement(_DateSelectTreeItem, _objectSpread2({
10275
10563
  key: v.key,
10276
10564
  item: v,
@@ -10279,7 +10567,7 @@ var _DateSelectTreeItem = function DateSelectTreeItem(_ref2) {
10279
10567
  initialExpand: initialExpand,
10280
10568
  onExpand: onExpand,
10281
10569
  isChecked: isChecked,
10282
- onChange: onChange,
10570
+ onChange: _onChange2,
10283
10571
  isItemVisible: isItemVisible
10284
10572
  }));
10285
10573
  }))) : null;
@@ -10328,7 +10616,8 @@ var FilterMenu = function FilterMenu() {
10328
10616
  startCol = _ref4.startCol,
10329
10617
  endRow = _ref4.endRow,
10330
10618
  endCol = _ref4.endCol,
10331
- col = _ref4.col;
10619
+ col = _ref4.col,
10620
+ listBoxMaxHeight = _ref4.listBoxMaxHeight;
10332
10621
  var _locale = fortuneCore.locale(context),
10333
10622
  filter = _locale.filter;
10334
10623
  var _useState3 = React.useState({
@@ -10403,6 +10692,25 @@ var FilterMenu = function FilterMenu() {
10403
10692
  }));
10404
10693
  }, 300);
10405
10694
  }, [data.flattenValues]);
10695
+ var selectAll = React.useCallback(function () {
10696
+ setDatesUncheck([]);
10697
+ setValuesUncheck([]);
10698
+ hiddenRows.current = [];
10699
+ }, []);
10700
+ var clearAll = React.useCallback(function () {
10701
+ setDatesUncheck(___default['default'].keys(data.dateRowMap));
10702
+ setValuesUncheck(___default['default'].keys(data.valueRowMap));
10703
+ hiddenRows.current = data.visibleRows;
10704
+ }, [data.dateRowMap, data.valueRowMap, data.visibleRows]);
10705
+ var inverseSelect = React.useCallback(function () {
10706
+ setDatesUncheck(produce__default['default'](function (draft) {
10707
+ return ___default['default'].xor(draft, ___default['default'].keys(data.dateRowMap));
10708
+ }));
10709
+ setValuesUncheck(produce__default['default'](function (draft) {
10710
+ return ___default['default'].xor(draft, ___default['default'].keys(data.valueRowMap));
10711
+ }));
10712
+ hiddenRows.current = ___default['default'].xor(hiddenRows.current, data.visibleRows);
10713
+ }, [data.dateRowMap, data.valueRowMap, data.visibleRows]);
10406
10714
  var onColorSelectChange = React.useCallback(function (key, color, checked) {
10407
10715
  setFilterColors(produce__default['default'](function (draft) {
10408
10716
  var colorData = ___default['default'].find(___default['default'].get(draft, key), function (v) {
@@ -10532,12 +10840,11 @@ var FilterMenu = function FilterMenu() {
10532
10840
  ref: containerRef,
10533
10841
  style: {
10534
10842
  left: filterContextMenu.x,
10535
- top: filterContextMenu.y,
10536
- minWidth: "280px !important"
10843
+ top: filterContextMenu.y
10537
10844
  }
10538
10845
  }, (_settings$filterConte = settings.filterContextMenu) === null || _settings$filterConte === void 0 ? void 0 : _settings$filterConte.map(function (name, i) {
10539
10846
  if (name === "|") {
10540
- return /*#__PURE__*/React__default['default'].createElement(ui.Divider, {
10847
+ return /*#__PURE__*/React__default['default'].createElement(Divider$1, {
10541
10848
  key: "divider-".concat(i)
10542
10849
  });
10543
10850
  }
@@ -10547,16 +10854,7 @@ var FilterMenu = function FilterMenu() {
10547
10854
  onClick: function onClick() {
10548
10855
  return sortData(true);
10549
10856
  }
10550
- }, /*#__PURE__*/React__default['default'].createElement("div", {
10551
- className: "context-item w-full"
10552
- }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
10553
- name: "sort-asc",
10554
- width: 24,
10555
- height: 18,
10556
- style: {
10557
- marginRight: "4px"
10558
- }
10559
- }), /*#__PURE__*/React__default['default'].createElement("p", null, filter.sortByAsc)));
10857
+ }, filter.sortByAsc);
10560
10858
  }
10561
10859
  if (name === "sort-by-desc") {
10562
10860
  return /*#__PURE__*/React__default['default'].createElement(Menu, {
@@ -10564,16 +10862,7 @@ var FilterMenu = function FilterMenu() {
10564
10862
  onClick: function onClick() {
10565
10863
  return sortData(false);
10566
10864
  }
10567
- }, /*#__PURE__*/React__default['default'].createElement("div", {
10568
- className: "context-item w-full"
10569
- }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
10570
- name: "sort-desc",
10571
- width: 24,
10572
- height: 18,
10573
- style: {
10574
- marginRight: "4px"
10575
- }
10576
- }), /*#__PURE__*/React__default['default'].createElement("p", null, filter.sortByDesc)));
10865
+ }, filter.sortByDesc);
10577
10866
  }
10578
10867
  if (name === "filter-by-color") {
10579
10868
  return /*#__PURE__*/React__default['default'].createElement("div", {
@@ -10601,22 +10890,72 @@ var FilterMenu = function FilterMenu() {
10601
10890
  className: "filter-caret right"
10602
10891
  }))));
10603
10892
  }
10893
+ if (name === "filter-by-condition") {
10894
+ return /*#__PURE__*/React__default['default'].createElement("div", {
10895
+ key: "name"
10896
+ }, /*#__PURE__*/React__default['default'].createElement(Menu, {
10897
+ onClick: function onClick() {}
10898
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
10899
+ className: "filter-caret right"
10900
+ }), filter.filterByCondition), /*#__PURE__*/React__default['default'].createElement("div", {
10901
+ className: "luckysheet-\\${menuid}-bycondition",
10902
+ style: {
10903
+ display: "none"
10904
+ }
10905
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
10906
+ className: "luckysheet-flat-menu-button luckysheet-mousedown-cancel",
10907
+ id: "luckysheet-\\${menuid}-selected"
10908
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
10909
+ className: "luckysheet-mousedown-cancel",
10910
+ "data-value": "null",
10911
+ "data-type": "0"
10912
+ }, filter.filiterInputNone), /*#__PURE__*/React__default['default'].createElement("div", {
10913
+ className: "luckysheet-mousedown-cancel"
10914
+ }, /*#__PURE__*/React__default['default'].createElement("i", {
10915
+ className: "fa fa-sort",
10916
+ "aria-hidden": "true"
10917
+ })))));
10918
+ }
10604
10919
  if (name === "filter-by-value") {
10605
10920
  return /*#__PURE__*/React__default['default'].createElement("div", {
10606
10921
  key: name
10922
+ }, /*#__PURE__*/React__default['default'].createElement(Menu, {
10923
+ onClick: function onClick() {}
10607
10924
  }, /*#__PURE__*/React__default['default'].createElement("div", {
10608
- className: "luckysheet-filter-byvalue flex flex-col gap-2 mt-2"
10925
+ className: "filter-caret right"
10926
+ }), filter.filterByValues), /*#__PURE__*/React__default['default'].createElement("div", {
10927
+ className: "luckysheet-filter-byvalue"
10609
10928
  }, /*#__PURE__*/React__default['default'].createElement("div", {
10929
+ className: "fortune-menuitem-row byvalue-btn-row"
10930
+ }, /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("span", {
10931
+ className: "fortune-byvalue-btn",
10932
+ onClick: selectAll,
10933
+ tabIndex: 0
10934
+ }, filter.filterValueByAllBtn), " - ", /*#__PURE__*/React__default['default'].createElement("span", {
10935
+ className: "fortune-byvalue-btn",
10936
+ onClick: clearAll,
10937
+ tabIndex: 0
10938
+ }, filter.filterValueByClearBtn), " - ", /*#__PURE__*/React__default['default'].createElement("span", {
10939
+ className: "fortune-byvalue-btn",
10940
+ onClick: inverseSelect,
10941
+ tabIndex: 0
10942
+ }, filter.filterValueByInverseBtn)), /*#__PURE__*/React__default['default'].createElement("div", {
10943
+ className: "byvalue-filter-icon"
10944
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
10945
+ name: "filter-fill",
10946
+ style: {
10947
+ width: 20,
10948
+ height: 20
10949
+ }
10950
+ }))), /*#__PURE__*/React__default['default'].createElement("div", {
10610
10951
  className: "filtermenu-input-container"
10611
- }, /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
10612
- leftIcon: /*#__PURE__*/React__default['default'].createElement(ui.LucideIcon, {
10613
- name: "Search",
10614
- size: "sm"
10615
- }),
10952
+ }, /*#__PURE__*/React__default['default'].createElement("input", {
10953
+ type: "text",
10616
10954
  onKeyDown: function onKeyDown(e) {
10617
10955
  return e.stopPropagation();
10618
10956
  },
10619
10957
  placeholder: filter.filterValueByTip,
10958
+ className: "luckysheet-mousedown-cancel",
10620
10959
  id: "luckysheet-\\${menuid}-byvalue-input",
10621
10960
  value: searchText,
10622
10961
  onChange: function onChange(e) {
@@ -10624,7 +10963,10 @@ var FilterMenu = function FilterMenu() {
10624
10963
  searchValues(e.target.value);
10625
10964
  }
10626
10965
  })), /*#__PURE__*/React__default['default'].createElement("div", {
10627
- id: "luckysheet-filter-byvalue-select"
10966
+ id: "luckysheet-filter-byvalue-select",
10967
+ style: {
10968
+ maxHeight: listBoxMaxHeight
10969
+ }
10628
10970
  }, /*#__PURE__*/React__default['default'].createElement(DateSelectTree, {
10629
10971
  dates: data.dates,
10630
10972
  onExpand: onExpand,
@@ -10646,37 +10988,6 @@ var FilterMenu = function FilterMenu() {
10646
10988
  return v.match(item.key) != null;
10647
10989
  }) > -1;
10648
10990
  }
10649
- }), /*#__PURE__*/React__default['default'].createElement(SelectItem, {
10650
- item: {
10651
- key: "all",
10652
- text: filter.filterValueByAllBtn,
10653
- value: "",
10654
- mask: "",
10655
- rows: data.values.filter(function (v) {
10656
- return showValues.includes(v.text);
10657
- }).flatMap(function (v) {
10658
- return v.rows;
10659
- })
10660
- },
10661
- isChecked: function isChecked() {
10662
- var allDatesChecked = datesUncheck.length === 0;
10663
- var allValuesChecked = valuesUncheck.length === 0;
10664
- return allDatesChecked && allValuesChecked;
10665
- },
10666
- onChange: function onChange(item, checked) {
10667
- if (checked) {
10668
- setDatesUncheck([]);
10669
- setValuesUncheck([]);
10670
- hiddenRows.current = [];
10671
- } else {
10672
- setDatesUncheck(___default['default'].keys(data.dateRowMap));
10673
- setValuesUncheck(___default['default'].keys(data.valueRowMap));
10674
- hiddenRows.current = data.visibleRows;
10675
- }
10676
- },
10677
- isItemVisible: function isItemVisible() {
10678
- return true;
10679
- }
10680
10991
  }), data.values.map(function (v) {
10681
10992
  return /*#__PURE__*/React__default['default'].createElement(SelectItem, {
10682
10993
  key: v.key,
@@ -10686,17 +10997,14 @@ var FilterMenu = function FilterMenu() {
10686
10997
  },
10687
10998
  onChange: function onChange(item, checked) {
10688
10999
  var rows = hiddenRows.current;
10689
- if (checked) {
10690
- hiddenRows.current = ___default['default'].without.apply(___default['default'], [rows].concat(_toConsumableArray(item.rows)));
10691
- setValuesUncheck(produce__default['default'](function (draft) {
11000
+ hiddenRows.current = checked ? ___default['default'].without.apply(___default['default'], [rows].concat(_toConsumableArray(item.rows))) : ___default['default'].concat(rows, item.rows);
11001
+ setValuesUncheck(produce__default['default'](function (draft) {
11002
+ if (checked) {
10692
11003
  ___default['default'].pull(draft, item.key);
10693
- }));
10694
- } else {
10695
- hiddenRows.current = ___default['default'].concat(rows, item.rows);
10696
- setValuesUncheck(produce__default['default'](function (draft) {
11004
+ } else {
10697
11005
  draft.push(item.key);
10698
- }));
10699
- }
11006
+ }
11007
+ }));
10700
11008
  },
10701
11009
  isItemVisible: function isItemVisible(item) {
10702
11010
  return showValues.length === data.flattenValues.length ? true : ___default['default'].includes(showValues, item.text);
@@ -10705,49 +11013,40 @@ var FilterMenu = function FilterMenu() {
10705
11013
  }))));
10706
11014
  }
10707
11015
  return null;
10708
- }), /*#__PURE__*/React__default['default'].createElement("div", {
10709
- className: "fortune-menuitem-row mt-2"
10710
- }, /*#__PURE__*/React__default['default'].createElement(ui.Button, {
10711
- variant: "ghost",
10712
- style: {
10713
- minWidth: "80px"
10714
- },
11016
+ }), /*#__PURE__*/React__default['default'].createElement(Divider$1, null), /*#__PURE__*/React__default['default'].createElement("div", {
11017
+ className: "fortune-menuitem-row"
11018
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
11019
+ className: "button-basic button-primary",
10715
11020
  onClick: function onClick() {
11021
+ if (col == null) return;
10716
11022
  setContext(function (draftCtx) {
10717
- fortuneCore.clearFilter(draftCtx);
11023
+ var rowHidden = ___default['default'].reduce(hiddenRows.current, function (pre, curr) {
11024
+ pre[curr] = 0;
11025
+ return pre;
11026
+ }, {});
11027
+ fortuneCore.saveFilter(draftCtx, hiddenRows.current.length > 0, rowHidden, {}, startRow, endRow, col, startCol, endCol);
11028
+ hiddenRows.current = [];
11029
+ draftCtx.filterContextMenu = undefined;
10718
11030
  });
10719
11031
  },
10720
11032
  tabIndex: 0
10721
- }, filter.clearFilter), /*#__PURE__*/React__default['default'].createElement(ui.Button, {
10722
- variant: "secondary",
10723
- style: {
10724
- minWidth: "80px"
10725
- },
11033
+ }, filter.filterConform), /*#__PURE__*/React__default['default'].createElement("div", {
11034
+ className: "button-basic button-default",
10726
11035
  onClick: function onClick() {
10727
11036
  setContext(function (draftCtx) {
10728
11037
  draftCtx.filterContextMenu = undefined;
10729
11038
  });
10730
11039
  },
10731
11040
  tabIndex: 0
10732
- }, filter.filterCancel), /*#__PURE__*/React__default['default'].createElement(ui.Button, {
10733
- variant: "default",
10734
- style: {
10735
- minWidth: "80px"
10736
- },
11041
+ }, filter.filterCancel), /*#__PURE__*/React__default['default'].createElement("div", {
11042
+ className: "button-basic button-danger",
10737
11043
  onClick: function onClick() {
10738
- if (col == null) return;
10739
11044
  setContext(function (draftCtx) {
10740
- var rowHidden = ___default['default'].reduce(hiddenRows.current, function (pre, curr) {
10741
- pre[curr] = 0;
10742
- return pre;
10743
- }, {});
10744
- fortuneCore.saveFilter(draftCtx, hiddenRows.current.length > 0, rowHidden, {}, startRow, endRow, col, startCol, endCol);
10745
- hiddenRows.current = [];
10746
- draftCtx.filterContextMenu = undefined;
11045
+ fortuneCore.clearFilter(draftCtx);
10747
11046
  });
10748
11047
  },
10749
11048
  tabIndex: 0
10750
- }, filter.filterConfirm))), showSubMenu && (/*#__PURE__*/React__default['default'].createElement("div", {
11049
+ }, filter.clearFilter))), showSubMenu && (/*#__PURE__*/React__default['default'].createElement("div", {
10751
11050
  ref: subMenuRef,
10752
11051
  className: "luckysheet-filter-bycolor-submenu",
10753
11052
  style: subMenuPos,
@@ -10787,7 +11086,7 @@ var FilterMenu = function FilterMenu() {
10787
11086
  });
10788
11087
  },
10789
11088
  tabIndex: 0
10790
- }, filter.filterConfirm))))));
11089
+ }, filter.filterConform))))));
10791
11090
  };
10792
11091
 
10793
11092
  var SheetHiddenButton = function SheetHiddenButton(_ref) {