@fileverse-dev/fortune-react 1.0.2-mod-24 → 1.0.2-mod-25-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
@@ -8,6 +8,7 @@ var produce = require('immer');
8
8
  var _ = require('lodash');
9
9
  var ui = require('@fileverse/ui');
10
10
  var regeneratorRuntime = require('regenerator-runtime');
11
+ var Tippy = require('@tippyjs/react');
11
12
 
12
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
14
 
@@ -15,6 +16,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
16
  var produce__default = /*#__PURE__*/_interopDefaultLegacy(produce);
16
17
  var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
17
18
  var regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(regeneratorRuntime);
19
+ var Tippy__default = /*#__PURE__*/_interopDefaultLegacy(Tippy);
18
20
 
19
21
  function _arrayLikeToArray(r, a) {
20
22
  (null == a || a > r.length) && (a = r.length);
@@ -1231,7 +1233,8 @@ var Dialog = function Dialog(_ref) {
1231
1233
  onCancel = _ref.onCancel,
1232
1234
  children = _ref.children,
1233
1235
  containerStyle = _ref.containerStyle,
1234
- contentStyle = _ref.contentStyle;
1236
+ contentStyle = _ref.contentStyle,
1237
+ title = _ref.title;
1235
1238
  var _useContext = React.useContext(WorkbookContext),
1236
1239
  context = _useContext.context;
1237
1240
  var _locale = fortuneCore.locale(context),
@@ -1240,8 +1243,12 @@ var Dialog = function Dialog(_ref) {
1240
1243
  className: "fortune-dialog",
1241
1244
  style: containerStyle
1242
1245
  }, /*#__PURE__*/React__default['default'].createElement("div", {
1243
- className: "flex items-center justify-end border-b color-border-default py-3 px-6"
1244
- }, /*#__PURE__*/React__default['default'].createElement(ui.IconButton, {
1246
+ className: ui.cn("flex items-center justify-end border-b color-border-default py-3 px-6", {
1247
+ "justify-between": title
1248
+ })
1249
+ }, title && /*#__PURE__*/React__default['default'].createElement("div", {
1250
+ className: "text-heading-sm"
1251
+ }, title), /*#__PURE__*/React__default['default'].createElement(ui.IconButton, {
1245
1252
  icon: "X",
1246
1253
  variant: "ghost",
1247
1254
  onClick: onCancel,
@@ -2366,13 +2373,14 @@ function useDialog() {
2366
2373
  var _useContext = React.useContext(ModalContext),
2367
2374
  showModal = _useContext.showModal,
2368
2375
  hideModal = _useContext.hideModal;
2369
- var showDialog = React.useCallback(function (content, type) {
2370
- var onOk = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : hideModal;
2371
- var onCancel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : hideModal;
2376
+ var showDialog = React.useCallback(function (content, type, title) {
2377
+ var onOk = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : hideModal;
2378
+ var onCancel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : hideModal;
2372
2379
  showModal(/*#__PURE__*/React__default['default'].createElement(Dialog, {
2373
2380
  type: type,
2374
2381
  onOk: onOk,
2375
- onCancel: onCancel
2382
+ onCancel: onCancel,
2383
+ title: title
2376
2384
  }, content));
2377
2385
  }, [hideModal, showModal]);
2378
2386
  return {
@@ -2886,6 +2894,21 @@ var DataVerification = function DataVerification() {
2886
2894
  }, button.cancel));
2887
2895
  };
2888
2896
 
2897
+ function getDisplayedRangeTxt(context) {
2898
+ var _context$rangeDialog$, _context$rangeDialog;
2899
+ if (context.luckysheet_select_save) {
2900
+ var range = context.luckysheet_select_save[context.luckysheet_select_save.length - 1];
2901
+ return fortuneCore.getRangetxt(context, context.currentSheetId, range, context.currentSheetId);
2902
+ }
2903
+ return (_context$rangeDialog$ = (_context$rangeDialog = context.rangeDialog) === null || _context$rangeDialog === void 0 ? void 0 : _context$rangeDialog.rangeTxt) !== null && _context$rangeDialog$ !== void 0 ? _context$rangeDialog$ : "";
2904
+ }
2905
+
2906
+ var datepickerStyles = "\n .datepicker-toggle {\n display: inline-block;\n position: relative;\n width: 100%;\n }\n \n .datepicker-toggle-button {\n opacity: 0.3;\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n width: 16px;\n height: 16px;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIj48L3JlY3Q+PGxpbmUgeDE9IjE2IiB5MT0iMiIgeDI9IjE2IiB5Mj0iNiI+PC9saW5lPjxsaW5lIHgxPSI4IiB5MT0iMiIgeDI9IjgiIHkyPSI2Ij48L2xpbmU+PGxpbmUgeDE9IjMiIHkxPSIxMCIgeDI9IjIxIiB5Mj0iMTAiPjwvbGluZT48L3N2Zz4=');\n background-repeat: no-repeat;\n background-position: center;\n pointer-events: none;\n }\n \n .datepicker-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n font-size: 14px;\n line-height: 1.5;\n color: #1a202c;\n background-color: #fff;\n cursor: pointer;\n }\n \n .datepicker-input::-webkit-calendar-picker-indicator {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n cursor: pointer;\n opacity: 0;\n }\n \n .datepicker-input:focus {\n outline: none;\n border-color: #4299e1;\n box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.1);\n }\n";
2907
+ if (typeof document !== "undefined") {
2908
+ var styleSheet = document.createElement("style");
2909
+ styleSheet.textContent = datepickerStyles;
2910
+ document.head.appendChild(styleSheet);
2911
+ }
2889
2912
  var ConditionRules = function ConditionRules(_ref) {
2890
2913
  var type = _ref.type;
2891
2914
  var _useContext = React.useContext(WorkbookContext),
@@ -2899,12 +2922,23 @@ var ConditionRules = function ConditionRules(_ref) {
2899
2922
  protection = _locale.protection,
2900
2923
  generalDialog = _locale.generalDialog;
2901
2924
  var _useState = React.useState({
2902
- textColor: "#000000",
2903
- cellColor: "#000000"
2925
+ textColor: "#FFFFFF",
2926
+ cellColor: "#D82E2A"
2904
2927
  }),
2905
2928
  _useState2 = _slicedToArray(_useState, 2),
2906
2929
  colorRules = _useState2[0],
2907
2930
  setColorRules = _useState2[1];
2931
+ var dataSelectRange = React.useCallback(function (selectType) {
2932
+ hideDialog();
2933
+ setContext(function (ctx) {
2934
+ ctx.conditionRules.textColor.color = colorRules.textColor;
2935
+ ctx.conditionRules.cellColor.color = colorRules.cellColor;
2936
+ ctx.rangeDialog.show = true;
2937
+ ctx.rangeDialog.type = selectType;
2938
+ ctx.rangeDialog.rangeTxt = ctx.conditionRules.rulesValue;
2939
+ ctx.rangeDialog.singleSelect = true;
2940
+ });
2941
+ }, [colorRules.cellColor, colorRules.textColor, hideDialog, setContext]);
2908
2942
  var close = React.useCallback(function (closeType) {
2909
2943
  if (closeType === "confirm") {
2910
2944
  setContext(function (ctx) {
@@ -2973,17 +3007,16 @@ var ConditionRules = function ConditionRules(_ref) {
2973
3007
  ctx.rangeDialog.rangeTxt = "";
2974
3008
  });
2975
3009
  }, []);
3010
+ var titleType = type === "top10_percent" ? "top10" : type === "last10_percent" ? "last10" : type;
2976
3011
  return /*#__PURE__*/React__default['default'].createElement("div", {
2977
3012
  className: "condition-rules"
3013
+ }, !["aboveAverage", "belowAverage"].includes(type) && (/*#__PURE__*/React__default['default'].createElement("div", {
3014
+ className: "flex flex-col"
2978
3015
  }, /*#__PURE__*/React__default['default'].createElement("div", {
2979
- className: "condition-rules-title"
2980
- }, conditionformat["conditionformat_".concat(type)]), /*#__PURE__*/React__default['default'].createElement("div", {
2981
- className: "conditin-rules-value"
2982
- }, conditionformat["conditionformat_".concat(type, "_title")]), (type === "greaterThan" || type === "lessThan" || type === "equal" || type === "textContains") && (/*#__PURE__*/React__default['default'].createElement("div", {
2983
- className: "condition-rules-inpbox"
2984
- }, /*#__PURE__*/React__default['default'].createElement("input", {
2985
- className: "condition-rules-input",
2986
- type: "text",
3016
+ className: "condition-rules-value text-heading-xsm"
3017
+ }, conditionformat["conditionformat_".concat(titleType, "_title")]), (type === "greaterThan" || type === "lessThan" || type === "equal" || type === "textContains") && (/*#__PURE__*/React__default['default'].createElement("div", {
3018
+ className: "w-full"
3019
+ }, /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
2987
3020
  value: context.conditionRules.rulesValue,
2988
3021
  onChange: function onChange(e) {
2989
3022
  var value = e.target.value;
@@ -2992,12 +3025,11 @@ var ConditionRules = function ConditionRules(_ref) {
2992
3025
  });
2993
3026
  }
2994
3027
  }))), type === "between" && (/*#__PURE__*/React__default['default'].createElement("div", {
2995
- className: "condition-rules-between-box"
3028
+ className: "w-full flex gap-2 items-center"
2996
3029
  }, /*#__PURE__*/React__default['default'].createElement("div", {
2997
- className: "condition-rules-between-inpbox"
2998
- }, /*#__PURE__*/React__default['default'].createElement("input", {
2999
- className: "condition-rules-between-input",
3000
- type: "text",
3030
+ className: "w-full"
3031
+ }, /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
3032
+ placeholder: "From",
3001
3033
  value: context.conditionRules.betweenValue.value1,
3002
3034
  onChange: function onChange(e) {
3003
3035
  var value = e.target.value;
@@ -3005,15 +3037,10 @@ var ConditionRules = function ConditionRules(_ref) {
3005
3037
  ctx.conditionRules.betweenValue.value1 = value;
3006
3038
  });
3007
3039
  }
3008
- })), /*#__PURE__*/React__default['default'].createElement("span", {
3009
- style: {
3010
- margin: "0px 4px"
3011
- }
3012
- }, conditionformat.to), /*#__PURE__*/React__default['default'].createElement("div", {
3013
- className: "condition-rules-between-inpbox"
3014
- }, /*#__PURE__*/React__default['default'].createElement("input", {
3015
- className: "condition-rules-between-input",
3016
- type: "text",
3040
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
3041
+ className: "w-full"
3042
+ }, /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
3043
+ placeholder: "To",
3017
3044
  value: context.conditionRules.betweenValue.value2,
3018
3045
  onChange: function onChange(e) {
3019
3046
  var value = e.target.value;
@@ -3022,10 +3049,10 @@ var ConditionRules = function ConditionRules(_ref) {
3022
3049
  });
3023
3050
  }
3024
3051
  })))), type === "occurrenceDate" && (/*#__PURE__*/React__default['default'].createElement("div", {
3025
- className: "condition-rules-inpbox"
3052
+ className: "datepicker-toggle"
3026
3053
  }, /*#__PURE__*/React__default['default'].createElement("input", {
3027
3054
  type: "date",
3028
- className: "condition-rules-date",
3055
+ className: "datepicker-input",
3029
3056
  value: context.conditionRules.dateValue,
3030
3057
  onChange: function onChange(e) {
3031
3058
  var value = e.target.value;
@@ -3033,50 +3060,101 @@ var ConditionRules = function ConditionRules(_ref) {
3033
3060
  ctx.conditionRules.dateValue = value;
3034
3061
  });
3035
3062
  }
3036
- }))), type === "duplicateValue" && (/*#__PURE__*/React__default['default'].createElement("select", {
3037
- className: "condition-rules-select",
3038
- onChange: function onChange(e) {
3039
- var value = e.target.value;
3063
+ }), /*#__PURE__*/React__default['default'].createElement("span", {
3064
+ className: "datepicker-toggle-button"
3065
+ }))), type === "duplicateValue" && (/*#__PURE__*/React__default['default'].createElement(ui.Select, {
3066
+ value: context.conditionRules.repeatValue,
3067
+ onValueChange: function onValueChange(value) {
3040
3068
  setContext(function (ctx) {
3041
3069
  ctx.conditionRules.repeatValue = value;
3042
3070
  });
3043
3071
  }
3044
- }, /*#__PURE__*/React__default['default'].createElement("option", {
3072
+ }, /*#__PURE__*/React__default['default'].createElement(ui.SelectTrigger, null, /*#__PURE__*/React__default['default'].createElement(ui.SelectValue, null)), /*#__PURE__*/React__default['default'].createElement(ui.SelectContent, {
3073
+ className: "condition-rules-select"
3074
+ }, /*#__PURE__*/React__default['default'].createElement(ui.SelectItem, {
3045
3075
  value: "0"
3046
- }, conditionformat.duplicateValue), /*#__PURE__*/React__default['default'].createElement("option", {
3076
+ }, conditionformat.duplicateValue), /*#__PURE__*/React__default['default'].createElement(ui.SelectItem, {
3047
3077
  value: "1"
3048
- }, conditionformat.uniqueValue))), (type === "top10" || type === "top10_percent" || type === "last10" || type === "last10_percent") && (/*#__PURE__*/React__default['default'].createElement("div", {
3078
+ }, conditionformat.uniqueValue)))), (type === "top10" || type === "top10_percent" || type === "last10" || type === "last10_percent") && (/*#__PURE__*/React__default['default'].createElement("div", {
3049
3079
  className: "condition-rules-project-box"
3050
- }, type === "top10" || type === "top10_percent" ? conditionformat.top : conditionformat.last, /*#__PURE__*/React__default['default'].createElement("input", {
3051
- className: "condition-rules-project-input",
3080
+ }, type === "top10" || type === "top10_percent" ? conditionformat.top : conditionformat.last, /*#__PURE__*/React__default['default'].createElement("div", {
3081
+ className: "flex items-center"
3082
+ }, /*#__PURE__*/React__default['default'].createElement(ui.IconButton, {
3083
+ icon: "Minus",
3084
+ variant: "ghost",
3085
+ className: "!bg-transparent",
3086
+ disabled: Number(context.conditionRules.projectValue) <= 1,
3087
+ onClick: function onClick() {
3088
+ setContext(function (ctx) {
3089
+ var current = Number(ctx.conditionRules.projectValue) || 0;
3090
+ ctx.conditionRules.projectValue = String(Math.max(current - 1, 1));
3091
+ });
3092
+ }
3093
+ }), /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
3094
+ className: "condition-rules-project-input pr-0",
3052
3095
  type: "number",
3096
+ min: 1,
3097
+ max: type === "top10" || type === "last10" ? 10 : 100,
3053
3098
  value: context.conditionRules.projectValue,
3054
3099
  onChange: function onChange(e) {
3055
3100
  var value = e.target.value;
3056
3101
  setContext(function (ctx) {
3057
3102
  ctx.conditionRules.projectValue = value;
3058
3103
  });
3104
+ },
3105
+ rightIcon: type === "top10" || type === "last10" ? (/*#__PURE__*/React__default['default'].createElement("span", {
3106
+ className: "color-icon-secondary"
3107
+ }, conditionformat.oneself)) : (/*#__PURE__*/React__default['default'].createElement("span", {
3108
+ className: "color-icon-secondary"
3109
+ }, "%"))
3110
+ }), /*#__PURE__*/React__default['default'].createElement(ui.IconButton, {
3111
+ icon: "Plus",
3112
+ variant: "ghost",
3113
+ className: "!bg-transparent",
3114
+ disabled: Number(context.conditionRules.projectValue) >= (type === "top10" || type === "last10" ? 10 : 100),
3115
+ onClick: function onClick() {
3116
+ setContext(function (ctx) {
3117
+ var current = Number(ctx.conditionRules.projectValue) || 0;
3118
+ ctx.conditionRules.projectValue = String(current + 1);
3119
+ });
3120
+ }
3121
+ })))))), /*#__PURE__*/React__default['default'].createElement("div", {
3122
+ className: "flex flex-col"
3123
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
3124
+ className: "condition-rules-value text-heading-xsm"
3125
+ }, conditionformat.applyRange), /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
3126
+ rightIcon: /*#__PURE__*/React__default['default'].createElement(ui.LucideIcon, {
3127
+ name: "Grid2x2",
3128
+ size: "sm"
3129
+ }),
3130
+ "aria-hidden": "true",
3131
+ readOnly: true,
3132
+ placeholder: conditionformat.selectRange,
3133
+ value: getDisplayedRangeTxt(context),
3134
+ onClick: function onClick() {
3135
+ dataSelectRange("conditionRules".concat(type));
3059
3136
  }
3060
- }), type === "top10" || type === "last10" ? conditionformat.oneself : "%")), /*#__PURE__*/React__default['default'].createElement("div", {
3061
- className: "condition-rules-set-title"
3137
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
3138
+ className: "flex flex-col"
3139
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
3140
+ className: "condition-rules-set-title text-heading-xsm"
3062
3141
  }, "".concat(conditionformat.setAs, "\uFF1A")), /*#__PURE__*/React__default['default'].createElement("div", {
3063
3142
  className: "condition-rules-setbox"
3064
3143
  }, /*#__PURE__*/React__default['default'].createElement("div", {
3065
3144
  className: "condition-rules-set"
3066
3145
  }, /*#__PURE__*/React__default['default'].createElement("div", {
3067
3146
  className: "condition-rules-color"
3068
- }, /*#__PURE__*/React__default['default'].createElement("input", {
3069
- id: "checkTextColor",
3070
- type: "checkbox",
3071
- className: "condition-rules-check",
3147
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
3148
+ id: "checkTextColor"
3149
+ }, /*#__PURE__*/React__default['default'].createElement(ui.Checkbox, {
3072
3150
  checked: context.conditionRules.textColor.check,
3073
- onChange: function onChange(e) {
3151
+ onCheckedChange: function onCheckedChange(e) {
3074
3152
  var checked = e.target.checked;
3075
3153
  setContext(function (ctx) {
3076
3154
  ctx.conditionRules.textColor.check = checked;
3077
3155
  });
3078
3156
  }
3079
- }), /*#__PURE__*/React__default['default'].createElement("label", {
3157
+ })), /*#__PURE__*/React__default['default'].createElement("label", {
3080
3158
  htmlFor: "checkTextColor",
3081
3159
  className: "condition-rules-label"
3082
3160
  }, conditionformat.textColor), /*#__PURE__*/React__default['default'].createElement("input", {
@@ -3093,18 +3171,17 @@ var ConditionRules = function ConditionRules(_ref) {
3093
3171
  className: "condition-rules-set"
3094
3172
  }, /*#__PURE__*/React__default['default'].createElement("div", {
3095
3173
  className: "condition-rules-color"
3096
- }, /*#__PURE__*/React__default['default'].createElement("input", {
3097
- id: "checkCellColor",
3098
- type: "checkbox",
3099
- className: "condition-rules-check",
3174
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
3175
+ id: "checkCellColor"
3176
+ }, /*#__PURE__*/React__default['default'].createElement(ui.Checkbox, {
3100
3177
  checked: context.conditionRules.cellColor.check,
3101
- onChange: function onChange(e) {
3178
+ onCheckedChange: function onCheckedChange(e) {
3102
3179
  var checked = e.target.checked;
3103
3180
  setContext(function (ctx) {
3104
3181
  ctx.conditionRules.cellColor.check = checked;
3105
3182
  });
3106
3183
  }
3107
- }), /*#__PURE__*/React__default['default'].createElement("label", {
3184
+ })), /*#__PURE__*/React__default['default'].createElement("label", {
3108
3185
  htmlFor: "checkCellColor",
3109
3186
  className: "condition-rules-label"
3110
3187
  }, conditionformat.cellColor), /*#__PURE__*/React__default['default'].createElement("input", {
@@ -3117,23 +3194,32 @@ var ConditionRules = function ConditionRules(_ref) {
3117
3194
  draft.cellColor = value;
3118
3195
  }));
3119
3196
  }
3120
- })))), /*#__PURE__*/React__default['default'].createElement("div", {
3121
- className: "button-basic button-primary",
3197
+ }))))), /*#__PURE__*/React__default['default'].createElement(ui.Divider, {
3198
+ className: "w-full border-t-[1px]"
3199
+ }), /*#__PURE__*/React__default['default'].createElement("div", {
3200
+ className: "flex gap-2 justify-end"
3201
+ }, /*#__PURE__*/React__default['default'].createElement(ui.Button, {
3202
+ variant: "secondary",
3203
+ style: {
3204
+ minWidth: "80px"
3205
+ },
3122
3206
  onClick: function onClick() {
3123
- close("confirm");
3207
+ close("close");
3124
3208
  },
3125
3209
  tabIndex: 0
3126
- }, button.confirm), /*#__PURE__*/React__default['default'].createElement("div", {
3127
- className: "button-basic button-close",
3210
+ }, button.cancel), /*#__PURE__*/React__default['default'].createElement(ui.Button, {
3211
+ variant: "default",
3212
+ style: {
3213
+ minWidth: "80px"
3214
+ },
3128
3215
  onClick: function onClick() {
3129
- close("close");
3216
+ close("confirm");
3130
3217
  },
3131
3218
  tabIndex: 0
3132
- }, button.cancel));
3219
+ }, button.apply)));
3133
3220
  };
3134
3221
 
3135
3222
  var RangeDialog = function RangeDialog() {
3136
- var _context$rangeDialog$, _context$rangeDialog;
3137
3223
  var _useContext = React.useContext(WorkbookContext),
3138
3224
  context = _useContext.context,
3139
3225
  setContext = _useContext.setContext;
@@ -3142,7 +3228,7 @@ var RangeDialog = function RangeDialog() {
3142
3228
  var _locale = fortuneCore.locale(context),
3143
3229
  dataVerification = _locale.dataVerification,
3144
3230
  button = _locale.button;
3145
- var _useState = React.useState((_context$rangeDialog$ = (_context$rangeDialog = context.rangeDialog) === null || _context$rangeDialog === void 0 ? void 0 : _context$rangeDialog.rangeTxt) !== null && _context$rangeDialog$ !== void 0 ? _context$rangeDialog$ : ""),
3231
+ var _useState = React.useState(getDisplayedRangeTxt(context)),
3146
3232
  _useState2 = _slicedToArray(_useState, 2),
3147
3233
  rangeTxt2 = _useState2[0],
3148
3234
  setRangeTxt2 = _useState2[1];
@@ -3156,30 +3242,24 @@ var RangeDialog = function RangeDialog() {
3156
3242
  if (rangeDialogType.indexOf("between") >= 0) {
3157
3243
  showDialog(/*#__PURE__*/React__default['default'].createElement(ConditionRules, {
3158
3244
  type: "between"
3159
- }));
3245
+ }), undefined, fortuneCore.locale(context).conditionformat.conditionformat_between);
3160
3246
  return;
3161
3247
  }
3162
3248
  if (rangeDialogType.indexOf("conditionRules") >= 0) {
3163
3249
  var rulesType = rangeDialogType.substring("conditionRules".length, rangeDialogType.length);
3164
3250
  showDialog(/*#__PURE__*/React__default['default'].createElement(ConditionRules, {
3165
3251
  type: rulesType
3166
- }));
3252
+ }), undefined, fortuneCore.locale(context).conditionformat["conditionformat_".concat(rulesType)]);
3167
3253
  return;
3168
3254
  }
3169
3255
  showDialog(/*#__PURE__*/React__default['default'].createElement(DataVerification, null));
3170
- }, [context.rangeDialog, setContext, showDialog]);
3256
+ }, [setContext, showDialog, context]);
3171
3257
  React.useEffect(function () {
3172
- setRangeTxt2(function (r) {
3173
- if (context.luckysheet_select_save) {
3174
- var range = context.luckysheet_select_save[context.luckysheet_select_save.length - 1];
3175
- r = fortuneCore.getRangetxt(context, context.currentSheetId, range, context.currentSheetId);
3176
- return r;
3177
- }
3178
- return "";
3179
- });
3258
+ setRangeTxt2(getDisplayedRangeTxt(context));
3180
3259
  }, [context, context.luckysheet_select_save]);
3181
3260
  return /*#__PURE__*/React__default['default'].createElement("div", {
3182
3261
  id: "range-dialog",
3262
+ className: "fortune-dialog",
3183
3263
  onClick: function onClick(e) {
3184
3264
  return e.stopPropagation();
3185
3265
  },
@@ -3197,15 +3277,34 @@ var RangeDialog = function RangeDialog() {
3197
3277
  },
3198
3278
  tabIndex: 0
3199
3279
  }, /*#__PURE__*/React__default['default'].createElement("div", {
3200
- className: "dialog-title"
3201
- }, dataVerification.selectCellRange), /*#__PURE__*/React__default['default'].createElement("input", {
3280
+ className: ui.cn("flex items-center justify-between border-b color-border-default py-3 px-6")
3281
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
3282
+ className: "text-heading-sm"
3283
+ }, dataVerification.selectCellRange), /*#__PURE__*/React__default['default'].createElement(ui.IconButton, {
3284
+ icon: "X",
3285
+ variant: "ghost",
3286
+ onClick: close,
3287
+ tabIndex: 0
3288
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
3289
+ className: "px-6 pb-6 pt-4 text-body-sm"
3290
+ }, /*#__PURE__*/React__default['default'].createElement(ui.TextField, {
3291
+ className: "w-full",
3202
3292
  readOnly: true,
3203
3293
  placeholder: dataVerification.selectCellRange2,
3204
3294
  value: rangeTxt2
3205
- }), /*#__PURE__*/React__default['default'].createElement("div", {
3206
- className: "button-basic button-primary",
3295
+ })), /*#__PURE__*/React__default['default'].createElement("div", {
3296
+ className: "px-6 pb-6 flex flex-row gap-2 justify-end"
3297
+ }, /*#__PURE__*/React__default['default'].createElement(ui.Button, {
3298
+ variant: "secondary",
3299
+ style: {
3300
+ minWidth: "80px"
3301
+ },
3302
+ onClick: close,
3303
+ tabIndex: 0
3304
+ }, button.close), /*#__PURE__*/React__default['default'].createElement(ui.Button, {
3305
+ variant: "default",
3207
3306
  style: {
3208
- marginLeft: "6px"
3307
+ minWidth: "80px"
3209
3308
  },
3210
3309
  onClick: function onClick() {
3211
3310
  setContext(function (ctx) {
@@ -3214,13 +3313,7 @@ var RangeDialog = function RangeDialog() {
3214
3313
  close();
3215
3314
  },
3216
3315
  tabIndex: 0
3217
- }, button.confirm), /*#__PURE__*/React__default['default'].createElement("div", {
3218
- className: "button-basic button-close",
3219
- onClick: function onClick() {
3220
- close();
3221
- },
3222
- tabIndex: 0
3223
- }, button.close));
3316
+ }, button.confirm)));
3224
3317
  };
3225
3318
 
3226
3319
  function useOutsideClick(containerRef, handler, deps, optionalContainerRef) {
@@ -4139,7 +4232,6 @@ var Combo = function Combo(_ref) {
4139
4232
  var openState = React.useRef(false);
4140
4233
  var triggerRef = React.useRef(null);
4141
4234
  useOutsideClick(popupRef, function () {
4142
- console.log("Combo useOutsideClick", openState.current);
4143
4235
  setOpen(false);
4144
4236
  openState.current = false;
4145
4237
  }, [], triggerRef);
@@ -4171,10 +4263,8 @@ var Combo = function Combo(_ref) {
4171
4263
  ref: triggerRef,
4172
4264
  className: "fortune-toolbar-combo-button",
4173
4265
  onClick: function onClick(e) {
4174
- console.log("Combo onClick pop ref", popupRef.current, "ll", document.getElementsByClassName("fortune-toolbar-combo-popup"));
4175
4266
  openState.current = !openState.current;
4176
4267
  setOpen(openState.current);
4177
- console.log("Combo onClick", iconId, _onClick, open, openState.current, e, e.target);
4178
4268
  if (_onClick) _onClick(e);else setOpen(openState.current);
4179
4269
  },
4180
4270
  tabIndex: 0,
@@ -4190,7 +4280,7 @@ var Combo = function Combo(_ref) {
4190
4280
  className: "fortune-tooltip"
4191
4281
  }, tooltip)), open && (/*#__PURE__*/React__default['default'].createElement("div", {
4192
4282
  ref: popupRef,
4193
- className: "fortune-toolbar-combo-popup",
4283
+ className: "fortune-toolbar-combo-popup color-text-default",
4194
4284
  style: popupPosition
4195
4285
  }, children === null || children === void 0 ? void 0 : children(setOpen))));
4196
4286
  };
@@ -4222,209 +4312,10 @@ var Option = function Option(_ref2) {
4222
4312
  }, iconId && /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
4223
4313
  name: iconId
4224
4314
  }), /*#__PURE__*/React__default['default'].createElement("div", {
4225
- className: "fortuen-toolbar-text"
4315
+ className: "fortuen-toolbar-text color-text-default text-body-sm"
4226
4316
  }, children));
4227
4317
  };
4228
4318
 
4229
- var FormulaSearch$1 = function FormulaSearch(_ref) {
4230
- var _onCancel = _ref.onCancel;
4231
- var _useContext = React.useContext(WorkbookContext),
4232
- context = _useContext.context,
4233
- setContext = _useContext.setContext,
4234
- _useContext$refs = _useContext.refs,
4235
- cellInput = _useContext$refs.cellInput,
4236
- globalCache = _useContext$refs.globalCache;
4237
- var _useState = React.useState(20),
4238
- _useState2 = _slicedToArray(_useState, 2),
4239
- selectedType = _useState2[0],
4240
- setSelectedType = _useState2[1];
4241
- var _useState3 = React.useState(0),
4242
- _useState4 = _slicedToArray(_useState3, 2),
4243
- selectedFuncIndex = _useState4[0],
4244
- setSelectedFuncIndex = _useState4[1];
4245
- var _useState5 = React.useState(""),
4246
- _useState6 = _slicedToArray(_useState5, 2),
4247
- searchText = _useState6[0],
4248
- setSearchText = _useState6[1];
4249
- var _locale = fortuneCore.locale(context),
4250
- formulaMore = _locale.formulaMore,
4251
- functionlist = _locale.functionlist,
4252
- button = _locale.button;
4253
- var typeList = React.useMemo(function () {
4254
- return [{
4255
- t: 20,
4256
- n: formulaMore.Crypto
4257
- }, {
4258
- t: 0,
4259
- n: formulaMore.Math
4260
- }, {
4261
- t: 1,
4262
- n: formulaMore.Statistical
4263
- }, {
4264
- t: 2,
4265
- n: formulaMore.Lookup
4266
- }, {
4267
- t: 3,
4268
- n: formulaMore.luckysheet
4269
- }, {
4270
- t: 4,
4271
- n: formulaMore.dataMining
4272
- }, {
4273
- t: 5,
4274
- n: formulaMore.Database
4275
- }, {
4276
- t: 6,
4277
- n: formulaMore.Date
4278
- }, {
4279
- t: 7,
4280
- n: formulaMore.Filter
4281
- }, {
4282
- t: 8,
4283
- n: formulaMore.Financial
4284
- }, {
4285
- t: 9,
4286
- n: formulaMore.Engineering
4287
- }, {
4288
- t: 10,
4289
- n: formulaMore.Logical
4290
- }, {
4291
- t: 11,
4292
- n: formulaMore.Operator
4293
- }, {
4294
- t: 12,
4295
- n: formulaMore.Text
4296
- }, {
4297
- t: 13,
4298
- n: formulaMore.Parser
4299
- }, {
4300
- t: 14,
4301
- n: formulaMore.Array
4302
- }, {
4303
- t: -1,
4304
- n: formulaMore.other
4305
- }];
4306
- }, [formulaMore]);
4307
- var filteredFunctionList = React.useMemo(function () {
4308
- if (searchText) {
4309
- var list = [];
4310
- var text = ___default['default'].cloneDeep(searchText.toUpperCase());
4311
- for (var i = 0; i < functionlist.length; i += 1) {
4312
- if (/^[a-zA-Z]+$/.test(text)) {
4313
- if (functionlist[i].n.indexOf(text) !== -1) {
4314
- list.push(functionlist[i]);
4315
- }
4316
- } else if (functionlist[i].a.indexOf(text) !== -1) {
4317
- list.push(functionlist[i]);
4318
- }
4319
- }
4320
- return list;
4321
- }
4322
- return ___default['default'].filter(functionlist, function (v) {
4323
- return v.t === selectedType;
4324
- });
4325
- }, [functionlist, selectedType, searchText]);
4326
- var onConfirm = React.useCallback(function () {
4327
- var _context$luckysheet_s;
4328
- var last = (_context$luckysheet_s = context.luckysheet_select_save) === null || _context$luckysheet_s === void 0 ? void 0 : _context$luckysheet_s[context.luckysheet_select_save.length - 1];
4329
- var row_index = last === null || last === void 0 ? void 0 : last.row_focus;
4330
- var col_index = last === null || last === void 0 ? void 0 : last.column_focus;
4331
- if (!last) {
4332
- row_index = 0;
4333
- col_index = 0;
4334
- } else {
4335
- if (row_index == null) {
4336
- var _last$row = _slicedToArray(last.row, 1);
4337
- row_index = _last$row[0];
4338
- }
4339
- if (col_index == null) {
4340
- var _last$column = _slicedToArray(last.column, 1);
4341
- col_index = _last$column[0];
4342
- }
4343
- }
4344
- var formulaTxt = "<span dir=\"auto\" class=\"luckysheet-formula-text-color\">=</span><span dir=\"auto\" class=\"luckysheet-formula-text-color\">".concat(filteredFunctionList[selectedFuncIndex].n.toUpperCase(), "</span><span dir=\"auto\" class=\"luckysheet-formula-text-color\">(</span>");
4345
- setContext(function (ctx) {
4346
- if (cellInput.current != null) {
4347
- ctx.luckysheetCellUpdate = [row_index, col_index];
4348
- globalCache.doNotUpdateCell = true;
4349
- cellInput.current.innerHTML = formulaTxt;
4350
- var spans = cellInput.current.childNodes;
4351
- if (!___default['default'].isEmpty(spans)) {
4352
- fortuneCore.setCaretPosition(ctx, spans[spans.length - 1], 0, 1);
4353
- }
4354
- ctx.functionHint = filteredFunctionList[selectedFuncIndex].n.toUpperCase();
4355
- ctx.functionCandidates = [];
4356
- if (___default['default'].isEmpty(ctx.formulaCache.functionlistMap)) {
4357
- for (var i = 0; i < functionlist.length; i += 1) {
4358
- ctx.formulaCache.functionlistMap[functionlist[i].n] = functionlist[i];
4359
- }
4360
- }
4361
- _onCancel();
4362
- }
4363
- });
4364
- }, [cellInput, context.luckysheet_select_save, filteredFunctionList, globalCache, selectedFuncIndex, setContext, _onCancel, functionlist]);
4365
- var onCancel = React.useCallback(function () {
4366
- setContext(function (ctx) {
4367
- fortuneCore.cancelNormalSelected(ctx);
4368
- if (cellInput.current) {
4369
- cellInput.current.innerHTML = "";
4370
- }
4371
- });
4372
- _onCancel();
4373
- }, [_onCancel, cellInput, setContext]);
4374
- return /*#__PURE__*/React__default['default'].createElement("div", {
4375
- id: "luckysheet-search-formula"
4376
- }, /*#__PURE__*/React__default['default'].createElement("div", {
4377
- className: "inpbox"
4378
- }, /*#__PURE__*/React__default['default'].createElement("div", null, formulaMore.findFunctionTitle, "\uFF1A"), /*#__PURE__*/React__default['default'].createElement("input", {
4379
- className: "formulaInputFocus",
4380
- id: "searchFormulaListInput",
4381
- placeholder: formulaMore.tipInputFunctionName,
4382
- spellCheck: "false",
4383
- onChange: function onChange(e) {
4384
- return setSearchText(e.target.value);
4385
- }
4386
- })), /*#__PURE__*/React__default['default'].createElement("div", {
4387
- className: "selbox"
4388
- }, /*#__PURE__*/React__default['default'].createElement("span", null, formulaMore.selectCategory, "\uFF1A"), /*#__PURE__*/React__default['default'].createElement("select", {
4389
- id: "formulaTypeSelect",
4390
- onChange: function onChange(e) {
4391
- setSelectedType(parseInt(e.target.value, 10));
4392
- setSelectedFuncIndex(0);
4393
- }
4394
- }, typeList.map(function (v) {
4395
- return /*#__PURE__*/React__default['default'].createElement("option", {
4396
- key: v.t,
4397
- value: v.t
4398
- }, v.n);
4399
- }))), /*#__PURE__*/React__default['default'].createElement("div", {
4400
- className: "listbox",
4401
- style: {
4402
- height: 200
4403
- }
4404
- }, /*#__PURE__*/React__default['default'].createElement("div", null, formulaMore.selectFunctionTitle, "\uFF1A"), /*#__PURE__*/React__default['default'].createElement("div", {
4405
- className: "formulaList"
4406
- }, filteredFunctionList.map(function (v, index) {
4407
- return /*#__PURE__*/React__default['default'].createElement("div", {
4408
- className: "listBox".concat(index === selectedFuncIndex ? " on" : ""),
4409
- key: v.n,
4410
- onClick: function onClick() {
4411
- return setSelectedFuncIndex(index);
4412
- },
4413
- tabIndex: 0
4414
- }, /*#__PURE__*/React__default['default'].createElement("div", null, v.n), /*#__PURE__*/React__default['default'].createElement("div", null, v.a));
4415
- }))), /*#__PURE__*/React__default['default'].createElement("div", {
4416
- className: "fortune-dialog-box-button-container"
4417
- }, /*#__PURE__*/React__default['default'].createElement("div", {
4418
- className: "fortune-message-box-button button-primary",
4419
- onClick: onConfirm,
4420
- tabIndex: 0
4421
- }, button.confirm), /*#__PURE__*/React__default['default'].createElement("div", {
4422
- className: "fortune-message-box-button button-default",
4423
- onClick: onCancel,
4424
- tabIndex: 0
4425
- }, button.cancel)));
4426
- };
4427
-
4428
4319
  var SplitColumn = function SplitColumn() {
4429
4320
  var _useContext = React.useContext(WorkbookContext),
4430
4321
  context = _useContext.context,
@@ -4468,7 +4359,7 @@ var SplitColumn = function SplitColumn() {
4468
4359
  }
4469
4360
  }
4470
4361
  if (dataCover) {
4471
- showDialog(splitText.splitConfirmToExe, "yesno", function () {
4362
+ showDialog(splitText.splitConfirmToExe, "yesno", undefined, function () {
4472
4363
  hideDialog();
4473
4364
  setContext(function (ctx) {
4474
4365
  fortuneCore.updateMoreCell(r, c, dataArr, ctx);
@@ -4791,33 +4682,53 @@ var ConditionalFormat = function ConditionalFormat(_ref) {
4791
4682
  showDialog = _useDialog.showDialog;
4792
4683
  var _locale = fortuneCore.locale(context),
4793
4684
  conditionformat = _locale.conditionformat;
4794
- var showSubMenu = React.useCallback(function (e) {
4795
- var target = e.target;
4796
- var menuItem = target.className === "fortune-toolbar-menu-line" ? target.parentElement : target;
4685
+ var activeSubMenuRef = React.useRef(null);
4686
+ var updateSubMenuPosition = React.useCallback(function (subMenu, menuItem) {
4797
4687
  var menuItemRect = menuItem.getBoundingClientRect();
4798
4688
  var workbookContainerRect = refs.workbookContainer.current.getBoundingClientRect();
4799
- var subMenu = menuItem.querySelector(".condition-format-sub-menu");
4800
- if (___default['default'].isNil(subMenu)) return;
4801
- var menuItemStyle = window.getComputedStyle(menuItem);
4802
- var menuItemPaddingRight = parseFloat(menuItemStyle.getPropertyValue("padding-right").replace("px", ""));
4803
- if (workbookContainerRect.right - menuItemRect.right < parseFloat(subMenu.style.width.replace("px", ""))) {
4804
- subMenu.style.display = "block";
4805
- subMenu.style.right = "".concat(menuItemRect.width - menuItemPaddingRight, "px");
4689
+ var subMenuWidth = subMenu.offsetWidth;
4690
+ var availableSpace = workbookContainerRect.right - menuItemRect.right;
4691
+ if (availableSpace < subMenuWidth) {
4692
+ subMenu.style.right = "108%";
4806
4693
  } else {
4807
- subMenu.style.display = "block";
4808
- subMenu.style.right = "".concat(-(parseFloat(subMenu.style.width.replace("px", "")) + menuItemPaddingRight), "px");
4694
+ subMenu.style.right = "-100%";
4809
4695
  }
4810
4696
  }, [refs.workbookContainer]);
4697
+ var showSubMenu = React.useCallback(function (e) {
4698
+ var target = e.target;
4699
+ var menuItem = target.className === "fortune-toolbar-menu-line" ? target.parentElement : target;
4700
+ var subMenu = menuItem.querySelector(".condition-format-sub-menu");
4701
+ if (___default['default'].isNil(subMenu)) return;
4702
+ subMenu.style.display = "block";
4703
+ activeSubMenuRef.current = subMenu;
4704
+ updateSubMenuPosition(subMenu, menuItem);
4705
+ }, [updateSubMenuPosition]);
4811
4706
  var hideSubMenu = React.useCallback(function (e) {
4812
4707
  var target = e.target;
4813
4708
  if (target.className === "condition-format-sub-menu") {
4814
4709
  target.style.display = "none";
4710
+ activeSubMenuRef.current = null;
4815
4711
  return;
4816
4712
  }
4817
4713
  var subMenu = target.className === "condition-format-item" ? target.parentElement : target.querySelector(".condition-format-sub-menu");
4818
4714
  if (___default['default'].isNil(subMenu)) return;
4819
4715
  subMenu.style.display = "none";
4716
+ activeSubMenuRef.current = null;
4820
4717
  }, []);
4718
+ React.useEffect(function () {
4719
+ var handleResize = function handleResize() {
4720
+ if (activeSubMenuRef.current) {
4721
+ var menuItem = activeSubMenuRef.current.parentElement;
4722
+ if (menuItem) {
4723
+ updateSubMenuPosition(activeSubMenuRef.current, menuItem);
4724
+ }
4725
+ }
4726
+ };
4727
+ window.addEventListener("resize", handleResize);
4728
+ return function () {
4729
+ window.removeEventListener("resize", handleResize);
4730
+ };
4731
+ }, [updateSubMenuPosition]);
4821
4732
  var getConditionFormatItem = React.useCallback(function (name) {
4822
4733
  if (name === "-") {
4823
4734
  return /*#__PURE__*/React__default['default'].createElement(MenuDivider, {
@@ -4838,8 +4749,7 @@ var ConditionalFormat = function ConditionalFormat(_ref) {
4838
4749
  }), /*#__PURE__*/React__default['default'].createElement("div", {
4839
4750
  className: "condition-format-sub-menu",
4840
4751
  style: {
4841
- display: "none",
4842
- width: 150
4752
+ display: "none"
4843
4753
  }
4844
4754
  }, [{
4845
4755
  text: "greaterThan",
@@ -4864,13 +4774,13 @@ var ConditionalFormat = function ConditionalFormat(_ref) {
4864
4774
  value: "##"
4865
4775
  }].map(function (v) {
4866
4776
  return /*#__PURE__*/React__default['default'].createElement("div", {
4867
- className: "condition-format-item",
4777
+ className: "condition-format-item text-body-sm color-text-default",
4868
4778
  key: v.text,
4869
4779
  onClick: function onClick() {
4870
- setOpen(false);
4780
+ setOpen === null || setOpen === void 0 ? void 0 : setOpen(false);
4871
4781
  showDialog(/*#__PURE__*/React__default['default'].createElement(ConditionRules, {
4872
4782
  type: v.text
4873
- }));
4783
+ }), undefined, conditionformat["conditionformat_".concat(v.text)]);
4874
4784
  },
4875
4785
  tabIndex: 0
4876
4786
  }, conditionformat[v.text], /*#__PURE__*/React__default['default'].createElement("span", null, v.value));
@@ -4889,8 +4799,7 @@ var ConditionalFormat = function ConditionalFormat(_ref) {
4889
4799
  }), /*#__PURE__*/React__default['default'].createElement("div", {
4890
4800
  className: "condition-format-sub-menu",
4891
4801
  style: {
4892
- display: "none",
4893
- width: 180
4802
+ display: "none"
4894
4803
  }
4895
4804
  }, [{
4896
4805
  text: "top10",
@@ -4912,13 +4821,13 @@ var ConditionalFormat = function ConditionalFormat(_ref) {
4912
4821
  value: conditionformat.below
4913
4822
  }].map(function (v) {
4914
4823
  return /*#__PURE__*/React__default['default'].createElement("div", {
4915
- className: "condition-format-item",
4824
+ className: "condition-format-item text-body-sm color-text-default",
4916
4825
  key: v.text,
4917
4826
  onClick: function onClick() {
4918
- setOpen(false);
4827
+ setOpen === null || setOpen === void 0 ? void 0 : setOpen(false);
4919
4828
  showDialog(/*#__PURE__*/React__default['default'].createElement(ConditionRules, {
4920
4829
  type: v.text
4921
- }));
4830
+ }), undefined, conditionformat["conditionformat_".concat(v.text)]);
4922
4831
  },
4923
4832
  tabIndex: 0
4924
4833
  }, conditionformat[v.text], /*#__PURE__*/React__default['default'].createElement("span", null, v.value));
@@ -4967,12 +4876,11 @@ var ConditionalFormat = function ConditionalFormat(_ref) {
4967
4876
  }), /*#__PURE__*/React__default['default'].createElement("div", {
4968
4877
  className: "condition-format-sub-menu",
4969
4878
  style: {
4970
- display: "none",
4971
- width: 150
4879
+ display: "none"
4972
4880
  }
4973
4881
  }, ["deleteSheetRule"].map(function (v) {
4974
4882
  return /*#__PURE__*/React__default['default'].createElement("div", {
4975
- className: "condition-format-item",
4883
+ className: "condition-format-item text-body-sm color-text-default",
4976
4884
  key: v,
4977
4885
  style: {
4978
4886
  padding: "6px 10px"
@@ -6211,9 +6119,10 @@ var Toolbar = function Toolbar(_ref) {
6211
6119
  }), /*#__PURE__*/React__default['default'].createElement(MenuDivider, null), /*#__PURE__*/React__default['default'].createElement(Option, {
6212
6120
  key: "formula",
6213
6121
  onClick: function onClick() {
6214
- showDialog(/*#__PURE__*/React__default['default'].createElement(FormulaSearch$1, {
6215
- onCancel: hideDialog
6216
- }));
6122
+ var button = document.getElementById("function-button");
6123
+ if (button) {
6124
+ button.click();
6125
+ }
6217
6126
  setOpen(false);
6218
6127
  }
6219
6128
  }, "".concat(formula.find, "...")));
@@ -6538,7 +6447,11 @@ var Toolbar = function Toolbar(_ref) {
6538
6447
  key: name,
6539
6448
  tooltip: toolbar.sortAndFilter
6540
6449
  }, function (setOpen) {
6541
- return /*#__PURE__*/React__default['default'].createElement(Select, null, _items8.map(function (_ref11, index) {
6450
+ return /*#__PURE__*/React__default['default'].createElement(Select, {
6451
+ style: {
6452
+ minWidth: "11.25rem"
6453
+ }
6454
+ }, _items8.map(function (_ref11, index) {
6542
6455
  var text = _ref11.text,
6543
6456
  iconId = _ref11.iconId,
6544
6457
  value = _ref11.value,
@@ -6550,10 +6463,13 @@ var Toolbar = function Toolbar(_ref) {
6550
6463
  setOpen(false);
6551
6464
  }
6552
6465
  }, /*#__PURE__*/React__default['default'].createElement("div", {
6553
- className: "fortune-toolbar-menu-line"
6554
- }, text, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
6466
+ className: "fortune-toolbar-menu-line gap-1",
6467
+ style: {
6468
+ justifyContent: "start"
6469
+ }
6470
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
6555
6471
  name: iconId
6556
- })))) : (/*#__PURE__*/React__default['default'].createElement(MenuDivider, {
6472
+ }), text))) : (/*#__PURE__*/React__default['default'].createElement(MenuDivider, {
6557
6473
  key: "divider-".concat(index)
6558
6474
  }));
6559
6475
  }));
@@ -7311,132 +7227,18 @@ var Menu = function Menu(_ref) {
7311
7227
  }, children));
7312
7228
  };
7313
7229
 
7314
- var CustomSort = function CustomSort() {
7315
- var _useState = React.useState([]),
7316
- _useState2 = _slicedToArray(_useState, 2),
7317
- rangeColChar = _useState2[0],
7318
- setRangeColChar = _useState2[1];
7319
- var _useState3 = React.useState(true),
7320
- _useState4 = _slicedToArray(_useState3, 2),
7321
- ascOrDesc = _useState4[0],
7322
- setAscOrDesc = _useState4[1];
7230
+ var ContextMenu = function ContextMenu() {
7231
+ var _useDialog = useDialog(),
7232
+ showDialog = _useDialog.showDialog;
7233
+ var containerRef = React.useRef(null);
7323
7234
  var _useContext = React.useContext(WorkbookContext),
7324
7235
  context = _useContext.context,
7325
- setContext = _useContext.setContext;
7326
- var _useState5 = React.useState("0"),
7327
- _useState6 = _slicedToArray(_useState5, 2),
7328
- selectedValue = _useState6[0],
7329
- setSelectedValue = _useState6[1];
7330
- var _useState7 = React.useState(false),
7331
- _useState8 = _slicedToArray(_useState7, 2),
7332
- isTitleChange = _useState8[0],
7333
- setIstitleChange = _useState8[1];
7334
- var _locale = fortuneCore.locale(context),
7335
- sort = _locale.sort;
7336
- var _useDialog = useDialog(),
7337
- hideDialog = _useDialog.hideDialog;
7338
- var col_start = context.luckysheet_select_save[0].column[0];
7339
- var col_end = context.luckysheet_select_save[0].column[1];
7340
- var row_start = context.luckysheet_select_save[0].row[0];
7341
- var row_end = context.luckysheet_select_save[0].row[1];
7342
- var sheetIndex = fortuneCore.getSheetIndex(context, context.currentSheetId);
7343
- var handleSelectChange = function handleSelectChange(event) {
7344
- setSelectedValue(event.target.value);
7345
- };
7346
- var handleRadioChange = React.useCallback(function (e) {
7347
- var sortValue = e.target.value;
7348
- setAscOrDesc(sortValue === "asc");
7349
- }, []);
7350
- var handleTitleChange = React.useCallback(function (e) {
7351
- var value = e.target.checked;
7352
- setIstitleChange(value);
7353
- }, []);
7354
- React.useEffect(function () {
7355
- var list = [];
7356
- if (isTitleChange) {
7357
- for (var i = col_start; i <= col_end; i += 1) {
7358
- var _context$luckysheetfi, _context$luckysheetfi2;
7359
- var cell = (_context$luckysheetfi = context.luckysheetfile[sheetIndex].data) === null || _context$luckysheetfi === void 0 ? void 0 : (_context$luckysheetfi2 = _context$luckysheetfi[row_start]) === null || _context$luckysheetfi2 === void 0 ? void 0 : _context$luckysheetfi2[i];
7360
- var colHeaderValue = (cell === null || cell === void 0 ? void 0 : cell.m) || (cell === null || cell === void 0 ? void 0 : cell.v);
7361
- if (colHeaderValue) {
7362
- list.push(colHeaderValue);
7363
- } else {
7364
- var ColumnChar = fortuneCore.indexToColumnChar(i);
7365
- list.push("".concat(sort.columnOperation, " ").concat(ColumnChar));
7366
- }
7367
- }
7368
- } else {
7369
- for (var _i = col_start; _i <= col_end; _i += 1) {
7370
- var _ColumnChar = fortuneCore.indexToColumnChar(_i);
7371
- list.push(_ColumnChar);
7372
- }
7373
- }
7374
- setRangeColChar(list);
7375
- }, [col_end, col_start, context.luckysheetfile, isTitleChange, row_start, sheetIndex, sort.columnOperation]);
7376
- return /*#__PURE__*/React__default['default'].createElement("div", {
7377
- className: "fortune-sort"
7378
- }, /*#__PURE__*/React__default['default'].createElement("div", {
7379
- className: "fortune-sort-title"
7380
- }, /*#__PURE__*/React__default['default'].createElement("span", null, /*#__PURE__*/React__default['default'].createElement("span", null, sort.sortRangeTitle), fortuneCore.indexToColumnChar(col_start), row_start + 1, /*#__PURE__*/React__default['default'].createElement("span", null, sort.sortRangeTitleTo), fortuneCore.indexToColumnChar(col_end), row_end + 1)), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("div", {
7381
- className: "fortune-sort-modal"
7382
- }, /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("input", {
7383
- type: "checkbox",
7384
- id: "fortune-sort-haveheader",
7385
- onChange: handleTitleChange
7386
- }), /*#__PURE__*/React__default['default'].createElement("span", null, sort.hasTitle)), /*#__PURE__*/React__default['default'].createElement("div", {
7387
- className: "fortune-sort-tablec"
7388
- }, /*#__PURE__*/React__default['default'].createElement("table", {
7389
- cellSpacing: "0"
7390
- }, /*#__PURE__*/React__default['default'].createElement("tbody", null, /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("td", {
7391
- style: {
7392
- width: "190px"
7393
- }
7394
- }, sort.sortBy, /*#__PURE__*/React__default['default'].createElement("select", {
7395
- name: "sort_0",
7396
- onChange: handleSelectChange
7397
- }, rangeColChar.map(function (col, index) {
7398
- return /*#__PURE__*/React__default['default'].createElement("option", {
7399
- value: index,
7400
- key: index
7401
- }, col);
7402
- }))), /*#__PURE__*/React__default['default'].createElement("td", null, /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("input", {
7403
- type: "radio",
7404
- value: "asc",
7405
- defaultChecked: true,
7406
- name: "sort_0",
7407
- onChange: handleRadioChange
7408
- }), /*#__PURE__*/React__default['default'].createElement("span", null, sort.asc)), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("input", {
7409
- type: "radio",
7410
- value: "desc",
7411
- name: "sort_0",
7412
- onChange: handleRadioChange
7413
- }), /*#__PURE__*/React__default['default'].createElement("span", null, sort.desc))))))))), /*#__PURE__*/React__default['default'].createElement("div", {
7414
- className: "fortune-sort-button"
7415
- }, /*#__PURE__*/React__default['default'].createElement("div", {
7416
- className: "button-basic button-primary",
7417
- onClick: function onClick() {
7418
- setContext(function (draftCtx) {
7419
- fortuneCore.sortSelection(draftCtx, ascOrDesc, parseInt(selectedValue, 10));
7420
- draftCtx.contextMenu = {};
7421
- });
7422
- hideDialog();
7423
- },
7424
- tabIndex: 0
7425
- }, sort.confirm)));
7426
- };
7427
-
7428
- var ContextMenu = function ContextMenu() {
7429
- var _useDialog = useDialog(),
7430
- showDialog = _useDialog.showDialog;
7431
- var containerRef = React.useRef(null);
7432
- var _useContext = React.useContext(WorkbookContext),
7433
- context = _useContext.context,
7434
- setContext = _useContext.setContext,
7435
- settings = _useContext.settings,
7436
- refs = _useContext.refs;
7437
- var contextMenu = context.contextMenu;
7438
- var _useAlert = useAlert(),
7439
- showAlert = _useAlert.showAlert;
7236
+ setContext = _useContext.setContext,
7237
+ settings = _useContext.settings,
7238
+ refs = _useContext.refs;
7239
+ var contextMenu = context.contextMenu;
7240
+ var _useAlert = useAlert(),
7241
+ showAlert = _useAlert.showAlert;
7440
7242
  var _locale = fortuneCore.locale(context),
7441
7243
  rightclick = _locale.rightclick,
7442
7244
  drag = _locale.drag,
@@ -7450,6 +7252,65 @@ var ContextMenu = function ContextMenu() {
7450
7252
  key: "divider-".concat(i)
7451
7253
  });
7452
7254
  }
7255
+ if (name === "freeze-row") {
7256
+ var freezeState = fortuneCore.getFreezeState(context);
7257
+ var isFrozen = freezeState.isRowFrozen;
7258
+ var isEntireRowSelected = (selection === null || selection === void 0 ? void 0 : selection.row_select) === true;
7259
+ if (!isEntireRowSelected) return null;
7260
+ return /*#__PURE__*/React__default['default'].createElement(Menu, {
7261
+ key: "freeze-row",
7262
+ onClick: function onClick() {
7263
+ setContext(function (draftCtx) {
7264
+ if (isFrozen) {
7265
+ fortuneCore.toggleFreeze(draftCtx, "unfreeze-row");
7266
+ } else {
7267
+ fortuneCore.toggleFreeze(draftCtx, "row");
7268
+ }
7269
+ draftCtx.contextMenu = {};
7270
+ });
7271
+ }
7272
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7273
+ className: "context-item"
7274
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7275
+ name: "freeze-flv",
7276
+ width: 18,
7277
+ height: 18,
7278
+ style: {
7279
+ marginTop: "4px",
7280
+ marginRight: "4px"
7281
+ }
7282
+ }), isFrozen ? "Unfreeze row" : "Freeze to current row"));
7283
+ }
7284
+ if (name === "freeze-column") {
7285
+ var _freezeState = fortuneCore.getFreezeState(context);
7286
+ var _isFrozen = _freezeState.isColFrozen;
7287
+ var isEntireColumnSelected = (selection === null || selection === void 0 ? void 0 : selection.column_select) === true;
7288
+ if (!isEntireColumnSelected) return null;
7289
+ return /*#__PURE__*/React__default['default'].createElement(Menu, {
7290
+ key: "freeze-column",
7291
+ onClick: function onClick() {
7292
+ setContext(function (draftCtx) {
7293
+ if (_isFrozen) {
7294
+ fortuneCore.toggleFreeze(draftCtx, "unfreeze-column");
7295
+ } else {
7296
+ fortuneCore.toggleFreeze(draftCtx, "column");
7297
+ fortuneCore.jfrefreshgrid(draftCtx, null, undefined, false);
7298
+ }
7299
+ draftCtx.contextMenu = {};
7300
+ });
7301
+ }
7302
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7303
+ className: "context-item"
7304
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7305
+ name: "freeze-flv",
7306
+ width: 18,
7307
+ height: 18,
7308
+ style: {
7309
+ marginTop: "4px",
7310
+ marginRight: "4px"
7311
+ }
7312
+ }), /*#__PURE__*/React__default['default'].createElement("p", null, _isFrozen ? "Unfreeze column" : "Freeze to current column")));
7313
+ }
7453
7314
  if (name === "comment") {
7454
7315
  return /*#__PURE__*/React__default['default'].createElement(Menu, {
7455
7316
  key: name,
@@ -7568,19 +7429,14 @@ var ContextMenu = function ContextMenu() {
7568
7429
  }, /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7569
7430
  name: "insert-flv",
7570
7431
  width: 18,
7571
- height: 18,
7572
- style: {
7573
- marginRight: "8px",
7574
- position: "relative",
7575
- top: "3px"
7576
- }
7577
- }), ___default['default'].startsWith((_context$lang = context.lang) !== null && _context$lang !== void 0 ? _context$lang : "", "zh") && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, rightclick.to, /*#__PURE__*/React__default['default'].createElement("span", {
7432
+ height: 18
7433
+ }), /*#__PURE__*/React__default['default'].createElement("div", null, ___default['default'].startsWith((_context$lang = context.lang) !== null && _context$lang !== void 0 ? _context$lang : "", "zh") && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, rightclick.to, /*#__PURE__*/React__default['default'].createElement("span", {
7578
7434
  className: "luckysheet-cols-rows-shift-".concat(dir)
7579
7435
  }, rightclick[dir]))), "".concat(rightclick.insert, " "), "1", /*#__PURE__*/React__default['default'].createElement("span", {
7580
7436
  className: "luckysheet-cols-rows-shift-word luckysheet-mousedown-cancel"
7581
7437
  }, " ".concat(rightclick.column, " ")), !___default['default'].startsWith((_context$lang2 = context.lang) !== null && _context$lang2 !== void 0 ? _context$lang2 : "", "zh") && (/*#__PURE__*/React__default['default'].createElement("span", {
7582
7438
  className: "luckysheet-cols-rows-shift-".concat(dir)
7583
- }, rightclick[dir]))));
7439
+ }, rightclick[dir])))));
7584
7440
  });
7585
7441
  }
7586
7442
  if (name === "insert-row") {
@@ -7616,19 +7472,14 @@ var ContextMenu = function ContextMenu() {
7616
7472
  }, /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7617
7473
  name: "insert-flv",
7618
7474
  width: 18,
7619
- height: 18,
7620
- style: {
7621
- marginRight: "8px",
7622
- position: "relative",
7623
- top: "3px"
7624
- }
7625
- }), ___default['default'].startsWith((_context$lang3 = context.lang) !== null && _context$lang3 !== void 0 ? _context$lang3 : "", "zh") && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, rightclick.to, /*#__PURE__*/React__default['default'].createElement("span", {
7475
+ height: 18
7476
+ }), /*#__PURE__*/React__default['default'].createElement("div", null, ___default['default'].startsWith((_context$lang3 = context.lang) !== null && _context$lang3 !== void 0 ? _context$lang3 : "", "zh") && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, rightclick.to, /*#__PURE__*/React__default['default'].createElement("span", {
7626
7477
  className: "luckysheet-cols-rows-shift-".concat(dir)
7627
7478
  }, rightclick[dir]))), "".concat(rightclick.insert, " "), "1", /*#__PURE__*/React__default['default'].createElement("span", {
7628
7479
  className: "luckysheet-cols-rows-shift-word luckysheet-mousedown-cancel"
7629
7480
  }, " ".concat(rightclick.row, " ")), !___default['default'].startsWith((_context$lang4 = context.lang) !== null && _context$lang4 !== void 0 ? _context$lang4 : "", "zh") && (/*#__PURE__*/React__default['default'].createElement("span", {
7630
7481
  className: "luckysheet-cols-rows-shift-".concat(dir)
7631
- }, rightclick[dir]))));
7482
+ }, rightclick[dir])))));
7632
7483
  });
7633
7484
  }
7634
7485
  if (name === "delete-column") {
@@ -7890,49 +7741,152 @@ var ContextMenu = function ContextMenu() {
7890
7741
  }
7891
7742
  }), /*#__PURE__*/React__default['default'].createElement("p", null, rightclick.clearContent)));
7892
7743
  }
7893
- if (name === "orderAZ") {
7894
- return /*#__PURE__*/React__default['default'].createElement(Menu, {
7895
- key: name,
7896
- onClick: function onClick() {
7897
- setContext(function (draftCtx) {
7898
- fortuneCore.sortSelection(draftCtx, true);
7899
- draftCtx.contextMenu = {};
7900
- });
7901
- }
7902
- }, rightclick.orderAZ);
7903
- }
7904
- if (name === "orderZA") {
7905
- return /*#__PURE__*/React__default['default'].createElement(Menu, {
7906
- key: name,
7907
- onClick: function onClick() {
7908
- setContext(function (draftCtx) {
7909
- fortuneCore.sortSelection(draftCtx, false);
7910
- draftCtx.contextMenu = {};
7911
- });
7912
- }
7913
- }, rightclick.orderZA);
7914
- }
7915
7744
  if (name === "sort") {
7916
- return /*#__PURE__*/React__default['default'].createElement(Menu, {
7745
+ var _locale2 = fortuneCore.locale(context),
7746
+ sort = _locale2.sort;
7747
+ return /*#__PURE__*/React__default['default'].createElement(Tippy__default['default'], {
7917
7748
  key: name,
7918
- onClick: function onClick() {
7919
- setContext(function (draftCtx) {
7920
- showDialog(/*#__PURE__*/React__default['default'].createElement(CustomSort, null));
7921
- draftCtx.contextMenu = {};
7922
- });
7749
+ placement: "right-start",
7750
+ interactive: true,
7751
+ interactiveBorder: 50,
7752
+ offset: [0, 0],
7753
+ arrow: false,
7754
+ zIndex: 3000,
7755
+ appendTo: document.body,
7756
+ content: /*#__PURE__*/React__default['default'].createElement("div", {
7757
+ className: "fortune-toolbar-select",
7758
+ style: {
7759
+ minWidth: "11.25rem"
7760
+ }
7761
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7762
+ className: "flex flex-col color-text-default text-body-sm"
7763
+ }, /*#__PURE__*/React__default['default'].createElement(Menu, {
7764
+ onClick: function onClick() {
7765
+ setContext(function (draftCtx) {
7766
+ fortuneCore.sortSelection(draftCtx, true);
7767
+ draftCtx.contextMenu = {};
7768
+ });
7769
+ }
7770
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7771
+ className: "context-item p-2 w-full",
7772
+ style: {
7773
+ height: "40px"
7774
+ }
7775
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7776
+ name: "sort-asc",
7777
+ width: 22,
7778
+ style: {
7779
+ marginRight: "4px"
7780
+ }
7781
+ }), /*#__PURE__*/React__default['default'].createElement("p", null, sort.asc))), /*#__PURE__*/React__default['default'].createElement(Menu, {
7782
+ onClick: function onClick() {
7783
+ setContext(function (draftCtx) {
7784
+ fortuneCore.sortSelection(draftCtx, false);
7785
+ draftCtx.contextMenu = {};
7786
+ });
7787
+ }
7788
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7789
+ className: "context-item p-2 w-full",
7790
+ style: {
7791
+ height: "40px"
7792
+ }
7793
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7794
+ name: "sort-desc",
7795
+ width: 22,
7796
+ style: {
7797
+ marginRight: "4px"
7798
+ }
7799
+ }), /*#__PURE__*/React__default['default'].createElement("p", null, sort.desc))))),
7800
+ trigger: "mouseenter focus",
7801
+ hideOnClick: false
7802
+ }, /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Menu, null, /*#__PURE__*/React__default['default'].createElement("div", {
7803
+ className: "flex items-center justify-between w-full"
7804
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7805
+ className: "context-item"
7806
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7807
+ name: "sort-flv",
7808
+ width: 18,
7809
+ height: 18,
7810
+ style: {
7811
+ marginRight: "8px"
7923
7812
  }
7924
- }, rightclick.sortSelection);
7813
+ }), /*#__PURE__*/React__default['default'].createElement("p", null, rightclick.sortSelection)), /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7814
+ name: "rightArrow",
7815
+ width: 18
7816
+ })))));
7925
7817
  }
7926
7818
  if (name === "filter") {
7927
- return /*#__PURE__*/React__default['default'].createElement(Menu, {
7819
+ var _locale3 = fortuneCore.locale(context),
7820
+ filter = _locale3.filter;
7821
+ return /*#__PURE__*/React__default['default'].createElement(Tippy__default['default'], {
7928
7822
  key: name,
7929
- onClick: function onClick() {
7930
- setContext(function (draftCtx) {
7931
- fortuneCore.createFilter(draftCtx);
7932
- draftCtx.contextMenu = {};
7933
- });
7823
+ placement: "right-start",
7824
+ interactive: true,
7825
+ interactiveBorder: 50,
7826
+ offset: [0, 0],
7827
+ arrow: false,
7828
+ zIndex: 3000,
7829
+ appendTo: document.body,
7830
+ content: /*#__PURE__*/React__default['default'].createElement("div", {
7831
+ className: "fortune-toolbar-select",
7832
+ style: {
7833
+ minWidth: "11.25rem"
7834
+ }
7835
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7836
+ className: "flex flex-col color-text-default text-body-sm"
7837
+ }, /*#__PURE__*/React__default['default'].createElement(Menu, {
7838
+ onClick: function onClick() {
7839
+ setContext(function (draftCtx) {
7840
+ fortuneCore.createFilter(draftCtx);
7841
+ draftCtx.contextMenu = {};
7842
+ });
7843
+ }
7844
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7845
+ className: "context-item p-2 w-full",
7846
+ style: {
7847
+ height: "40px"
7848
+ }
7849
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7850
+ name: "filter",
7851
+ width: 22,
7852
+ style: {
7853
+ marginRight: "4px"
7854
+ }
7855
+ }), /*#__PURE__*/React__default['default'].createElement("p", null, filter.filter))), /*#__PURE__*/React__default['default'].createElement(Menu, {
7856
+ onClick: function onClick() {
7857
+ setContext(function (draftCtx) {
7858
+ fortuneCore.clearFilter(draftCtx);
7859
+ draftCtx.contextMenu = {};
7860
+ });
7861
+ }
7862
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7863
+ className: "context-item p-2 w-full",
7864
+ style: {
7865
+ height: "40px"
7866
+ }
7867
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7868
+ name: "eraser",
7869
+ width: 22,
7870
+ style: {
7871
+ marginRight: "4px"
7872
+ }
7873
+ }), /*#__PURE__*/React__default['default'].createElement("p", null, filter.clearFilter))))),
7874
+ trigger: "mouseenter focus",
7875
+ hideOnClick: false
7876
+ }, /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Menu, null, /*#__PURE__*/React__default['default'].createElement("div", {
7877
+ className: "flex items-center justify-between w-full"
7878
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7879
+ className: "context-item"
7880
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7881
+ name: "filter",
7882
+ width: 22,
7883
+ style: {
7884
+ marginRight: "4px"
7934
7885
  }
7935
- }, rightclick.filterSelection);
7886
+ }), /*#__PURE__*/React__default['default'].createElement("p", null, rightclick.filterSelection)), /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7887
+ name: "rightArrow",
7888
+ width: 18
7889
+ })))));
7936
7890
  }
7937
7891
  if (name === "image") {
7938
7892
  return /*#__PURE__*/React__default['default'].createElement(Menu, {
@@ -7956,8 +7910,45 @@ var ContextMenu = function ContextMenu() {
7956
7910
  }
7957
7911
  }, rightclick.link);
7958
7912
  }
7913
+ if (name === "conditionFormat") {
7914
+ var closeContextMenu = function closeContextMenu() {
7915
+ return setContext(function (ctx) {
7916
+ ctx.contextMenu = {};
7917
+ });
7918
+ };
7919
+ return /*#__PURE__*/React__default['default'].createElement(Tippy__default['default'], {
7920
+ key: name,
7921
+ placement: "right-start",
7922
+ interactive: true,
7923
+ interactiveBorder: 50,
7924
+ offset: [0, 0],
7925
+ arrow: false,
7926
+ zIndex: 3000,
7927
+ appendTo: document.body,
7928
+ content: /*#__PURE__*/React__default['default'].createElement("div", {
7929
+ style: {
7930
+ minWidth: 220
7931
+ }
7932
+ }, /*#__PURE__*/React__default['default'].createElement(ConditionalFormat, {
7933
+ items: ["highlightCellRules", "itemSelectionRules", "-", "deleteRule"],
7934
+ setOpen: closeContextMenu
7935
+ })),
7936
+ trigger: "mouseenter focus",
7937
+ hideOnClick: false
7938
+ }, /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Menu, null, /*#__PURE__*/React__default['default'].createElement("div", {
7939
+ className: "flex items-center justify-between w-full"
7940
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
7941
+ className: "flex items-center gap-2"
7942
+ }, /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7943
+ name: "conditionFormat",
7944
+ width: 18
7945
+ }), /*#__PURE__*/React__default['default'].createElement("p", null, rightclick.conditionFormat || "Conditional Format")), /*#__PURE__*/React__default['default'].createElement(SVGIcon, {
7946
+ name: "rightArrow",
7947
+ width: 18
7948
+ })))));
7949
+ }
7959
7950
  return null;
7960
- }, [context.currentSheetId, context.lang, context.luckysheet_select_save, context.defaultrowlen, context.defaultcollen, rightclick, info, setContext, showAlert, showDialog, drag, generalDialog]);
7951
+ }, [context, setContext, refs.globalCache, rightclick, showAlert, showDialog, drag.noMulti, info.tipRowHeightLimit, info.tipColumnWidthLimit, generalDialog.partiallyError, generalDialog.readOnlyError, generalDialog.dataNullError]);
7961
7952
  React.useLayoutEffect(function () {
7962
7953
  var _refs$workbookContain;
7963
7954
  if (!containerRef.current) {
@@ -9225,31 +9216,41 @@ var SVGDefines = function SVGDefines(_ref) {
9225
9216
  stroke: "#535A68",
9226
9217
  strokeWidth: "1.5"
9227
9218
  })), /*#__PURE__*/React__default['default'].createElement("symbol", {
9228
- viewBox: "0 0 1024 1024",
9229
- fill: "#535A68",
9230
- id: "sort-desc"
9219
+ id: "sort-desc",
9220
+ width: "18",
9221
+ height: "18",
9222
+ viewBox: "0 0 18 18",
9223
+ fill: "none"
9231
9224
  }, /*#__PURE__*/React__default['default'].createElement("path", {
9232
- d: "M839.6 433.8L749 150.5c-1.2-3.9-4.8-6.5-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-0.3 0.9-0.5 1.9-0.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-0.1 2.8-0.4 2.4-0.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7 0.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2z",
9233
- "p-id": "2016"
9225
+ d: "M6.75 12.75C7.16421 12.75 7.5 13.0858 7.5 13.5C7.5 13.9142 7.16421 14.25 6.75 14.25H5.25C4.83579 14.25 4.5 13.9142 4.5 13.5C4.5 13.0858 4.83579 12.75 5.25 12.75H6.75Z",
9226
+ fill: "#363B3F"
9234
9227
  }), /*#__PURE__*/React__default['default'].createElement("path", {
9235
- d: "M806.8 818.4H677.2v-0.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v0.4L587.7 828.9c-1.1 1.6-1.7 3.4-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43c0.1-5.1-4.1-9.3-9.2-9.3z",
9236
- "p-id": "2017"
9228
+ d: "M9 9.75C9.41421 9.75 9.75 10.0858 9.75 10.5C9.75 10.9142 9.41421 11.25 9 11.25H5.25C4.83579 11.25 4.5 10.9142 4.5 10.5C4.5 10.0858 4.83579 9.75 5.25 9.75H9Z",
9229
+ fill: "#363B3F"
9237
9230
  }), /*#__PURE__*/React__default['default'].createElement("path", {
9238
- d: "M416 702h-76V172c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v530h-76c-6.7 0-10.5 7.8-6.3 13l112 141.9c3.2 4.1 9.4 4.1 12.6 0l112-141.9c4.1-5.2 0.4-13-6.3-13z",
9239
- "p-id": "2018"
9240
- })), /*#__PURE__*/React__default['default'].createElement("svg", {
9241
- viewBox: "0 0 1024 1024",
9242
- fill: "#535A68",
9243
- id: "sort-asc"
9231
+ d: "M11.25 6.75C11.6642 6.75 12 7.08579 12 7.5C12 7.91421 11.6642 8.25 11.25 8.25H5.25C4.83579 8.25 4.5 7.91421 4.5 7.5C4.5 7.08579 4.83579 6.75 5.25 6.75H11.25Z",
9232
+ fill: "#363B3F"
9233
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
9234
+ d: "M13.5 3.75C13.9142 3.75 14.25 4.08579 14.25 4.5C14.25 4.91421 13.9142 5.25 13.5 5.25H5.25C4.83579 5.25 4.5 4.91421 4.5 4.5C4.5 4.08579 4.83579 3.75 5.25 3.75H13.5Z",
9235
+ fill: "#363B3F"
9236
+ })), /*#__PURE__*/React__default['default'].createElement("symbol", {
9237
+ id: "sort-asc",
9238
+ width: "18",
9239
+ height: "18",
9240
+ viewBox: "0 0 18 18",
9241
+ fill: "none"
9244
9242
  }, /*#__PURE__*/React__default['default'].createElement("path", {
9245
- d: "M839.6 433.8L749 150.5c-1.2-3.9-4.8-6.5-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-0.3 0.9-0.5 1.9-0.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-0.1 2.8-0.4 2.4-0.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7 0.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2z",
9246
- "p-id": "2263"
9243
+ d: "M13.5 12.75C13.9142 12.75 14.25 13.0858 14.25 13.5C14.25 13.9142 13.9142 14.25 13.5 14.25H5.25C4.83579 14.25 4.5 13.9142 4.5 13.5C4.5 13.0858 4.83579 12.75 5.25 12.75H13.5Z",
9244
+ fill: "#363B3F"
9245
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
9246
+ d: "M11.25 9.75C11.6642 9.75 12 10.0858 12 10.5C12 10.9142 11.6642 11.25 11.25 11.25H5.25C4.83579 11.25 4.5 10.9142 4.5 10.5C4.5 10.0858 4.83579 9.75 5.25 9.75H11.25Z",
9247
+ fill: "#363B3F"
9247
9248
  }), /*#__PURE__*/React__default['default'].createElement("path", {
9248
- d: "M806.8 818.4H677.2v-0.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v0.4L587.7 828.9c-1.1 1.6-1.7 3.4-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43c0.1-5.1-4.1-9.3-9.2-9.3z",
9249
- "p-id": "2264"
9249
+ d: "M9 6.75C9.41421 6.75 9.75 7.08579 9.75 7.5C9.75 7.91421 9.41421 8.25 9 8.25H5.25C4.83579 8.25 4.5 7.91421 4.5 7.5C4.5 7.08579 4.83579 6.75 5.25 6.75H9Z",
9250
+ fill: "#363B3F"
9250
9251
  }), /*#__PURE__*/React__default['default'].createElement("path", {
9251
- d: "M310.3 167.1c-3.2-4.1-9.4-4.1-12.6 0L185.7 309c-4.2 5.3-0.4 13 6.3 13h76v530c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V322h76c6.7 0 10.5-7.8 6.3-13l-112-141.9z",
9252
- "p-id": "2265"
9252
+ d: "M6.75 3.75C7.16421 3.75 7.5 4.08579 7.5 4.5C7.5 4.91421 7.16421 5.25 6.75 5.25H5.25C4.83579 5.25 4.5 4.91421 4.5 4.5C4.5 4.08579 4.83579 3.75 5.25 3.75H6.75Z",
9253
+ fill: "#363B3F"
9253
9254
  })), /*#__PURE__*/React__default['default'].createElement("symbol", {
9254
9255
  viewBox: "0 0 1024 1024",
9255
9256
  fill: "#535A68",
@@ -9312,13 +9313,16 @@ var SVGDefines = function SVGDefines(_ref) {
9312
9313
  d: "M4.66663 1.33334C4.66663 0.965149 4.36815 0.666672 3.99996 0.666672C3.63177 0.666672 3.33329 0.965149 3.33329 1.33334V3.33334H1.33329C0.965103 3.33334 0.666626 3.63182 0.666626 4C0.666626 4.36819 0.965103 4.66667 1.33329 4.66667H3.33329V10.6667C3.33329 11.1971 3.54401 11.7058 3.91908 12.0809C4.29415 12.456 4.80286 12.6667 5.33329 12.6667H11.3333V14.6667C11.3333 15.0349 11.6318 15.3333 12 15.3333C12.3681 15.3333 12.6666 15.0349 12.6666 14.6667V12.6667H14.6666C15.0348 12.6667 15.3333 12.3682 15.3333 12C15.3333 11.6318 15.0348 11.3333 14.6666 11.3333H12.6666V5.33334C12.6666 4.8029 12.4559 4.2942 12.0808 3.91912C11.7058 3.54405 11.1971 3.33334 10.6666 3.33334H4.66663V1.33334ZM4.66663 4.66667V10.6667C4.66663 10.8435 4.73686 11.0131 4.86189 11.1381C4.98691 11.2631 5.15648 11.3333 5.33329 11.3333H11.3333V5.33334C11.3333 5.15653 11.2631 4.98696 11.138 4.86193C11.013 4.73691 10.8434 4.66667 10.6666 4.66667H4.66663Z",
9313
9314
  fill: "#363B3F"
9314
9315
  }))), /*#__PURE__*/React__default['default'].createElement("symbol", {
9315
- viewBox: "0 0 1024 1024",
9316
- fill: "#535A68",
9317
- id: "conditionFormat",
9318
- width: "20"
9316
+ width: "20",
9317
+ height: "24",
9318
+ viewBox: "0 0 16 16",
9319
+ fill: "none",
9320
+ id: "conditionFormat"
9319
9321
  }, /*#__PURE__*/React__default['default'].createElement("path", {
9320
- d: "M128 128h768v768H128V128z m64 512v128h128v-128H192z m256 0v128h192v-128H448zM192 448v128h128V448H192z m0-192v128h128V256H192z m192 0v128h192V256H384z m320 384v128h128v-128h-128z m0-192v128h128V448h-128z m0-192v128h128V256h-128z",
9321
- "p-id": "1955"
9322
+ "fill-rule": "evenodd",
9323
+ "clip-rule": "evenodd",
9324
+ d: "M11.4661 0.673182C11.7715 0.703436 12.0585 0.838439 12.2773 1.0573C12.5274 1.30735 12.668 1.64638 12.668 2.00001V7.51303C12.7678 7.57076 12.861 7.64098 12.944 7.72396C13.1941 7.97401 13.3346 8.31305 13.3346 8.66667V9.33334C13.3346 9.86377 13.1238 10.3723 12.7487 10.7474C12.3736 11.1225 11.8651 11.3333 11.3346 11.3333H10.0013V13.2669C10.0012 13.7973 9.79038 14.306 9.41536 14.681C9.0403 15.056 8.53167 15.2669 8.0013 15.2669C7.47093 15.2669 6.9623 15.056 6.58724 14.681C6.21223 14.306 6.00137 13.7973 6.0013 13.2669V11.3333H4.66797C4.13754 11.3333 3.62898 11.1225 3.25391 10.7474C2.92577 10.4193 2.72324 9.98901 2.67773 9.53125L2.66797 9.33334V8.66667C2.66797 8.31305 2.80855 7.97401 3.05859 7.72396C3.14158 7.64098 3.23477 7.57076 3.33464 7.51303V2.00001C3.33464 1.64638 3.47521 1.30734 3.72526 1.0573C3.97531 0.807248 4.31435 0.666672 4.66797 0.666672H11.3346L11.4661 0.673182ZM4.0013 8.66667V9.33334L4.00456 9.39909C4.01968 9.55176 4.08719 9.69526 4.19661 9.80469C4.32164 9.92972 4.49116 10 4.66797 10H6.0013C6.35492 10 6.69396 10.1406 6.94401 10.3906C7.19406 10.6407 7.33464 10.9797 7.33464 11.3333V13.2669C7.3347 13.4436 7.40498 13.6133 7.52995 13.7383C7.65496 13.8632 7.82455 13.9336 8.0013 13.9336C8.17805 13.9336 8.34764 13.8632 8.47266 13.7383C8.59762 13.6133 8.6679 13.4436 8.66797 13.2669V11.3333C8.66797 10.9797 8.80855 10.6407 9.05859 10.3906C9.30864 10.1406 9.64768 10 10.0013 10H11.3346C11.5114 10 11.681 9.92972 11.806 9.80469C11.931 9.67967 12.0013 9.51015 12.0013 9.33334V8.66667H4.0013ZM4.66797 7.33334H11.3346V2.00001H10.0013V4C10.0013 4.36819 9.70283 4.66667 9.33463 4.66667C8.96644 4.66667 8.66797 4.36819 8.66797 4V2.00001H7.33464V2.66667C7.33464 3.03486 7.03616 3.33334 6.66797 3.33334C6.29978 3.33334 6.0013 3.03486 6.0013 2.66667V2.00001H4.66797V7.33334Z",
9325
+ fill: "#363B3F"
9322
9326
  })), /*#__PURE__*/React__default['default'].createElement("symbol", {
9323
9327
  viewBox: "0 0 1024 1024",
9324
9328
  fill: "#535A68",
@@ -9424,19 +9428,29 @@ var SVGDefines = function SVGDefines(_ref) {
9424
9428
  d: "M0.728617 1.71942C0.837856 1.48397 1.07381 1.33333 1.33336 1.33333H14.6667C14.9262 1.33333 15.1622 1.48397 15.2714 1.71942C15.3807 1.95486 15.3433 2.2323 15.1757 2.43048L10 8.55077V14C10 14.2311 9.88039 14.4456 9.68385 14.5671C9.48731 14.6886 9.24188 14.6996 9.03522 14.5963L6.36855 13.263C6.1427 13.15 6.00003 12.9192 6.00003 12.6667V8.55077L0.824316 2.43048C0.656718 2.2323 0.619379 1.95486 0.728617 1.71942ZM2.77023 2.66667L7.17574 7.87618C7.27752 7.99653 7.33336 8.14905 7.33336 8.30667V12.2546L8.6667 12.9213V8.30667C8.6667 8.14905 8.72254 7.99653 8.82432 7.87618L13.2298 2.66667H2.77023Z",
9425
9429
  fill: "#363B3F"
9426
9430
  }))), /*#__PURE__*/React__default['default'].createElement("symbol", {
9427
- viewBox: "0 0 1024 1024",
9428
- fill: "#535A68",
9429
- id: "filter1"
9431
+ id: "filter1",
9432
+ width: "18",
9433
+ height: "18",
9434
+ viewBox: "0 0 18 18",
9435
+ fill: "none"
9430
9436
  }, /*#__PURE__*/React__default['default'].createElement("path", {
9431
- d: "M608 864C588.8 864 576 851.2 576 832L576 448c0-6.4 6.4-19.2 12.8-25.6L787.2 256c6.4-6.4 6.4-19.2 0-19.2 0-6.4-6.4-12.8-19.2-12.8L256 224c-12.8 0-19.2 6.4-19.2 12.8 0 6.4-6.4 12.8 6.4 19.2l198.4 166.4C441.6 428.8 448 441.6 448 448l0 256c0 19.2-12.8 32-32 32S384 723.2 384 704L384 460.8 198.4 307.2c-25.6-25.6-32-64-19.2-96C185.6 179.2 217.6 160 256 160L768 160c32 0 64 19.2 76.8 51.2 12.8 32 6.4 70.4-19.2 89.6l-192 160L633.6 832C640 851.2 627.2 864 608 864z",
9432
- "p-id": "43727"
9437
+ d: "M10.0149 1.5C10.4291 1.5 10.7649 1.83579 10.7649 2.25C10.7649 2.66421 10.4291 3 10.0149 3H2.24975L7.66821 8.99121L7.80004 9.15161C8.09041 9.53914 8.24953 10.0121 8.24975 10.5V15.0007L9.74902 15.75L9.74975 10.5C9.75 9.9426 9.95667 9.4046 10.3306 8.99121L11.2439 7.98047L11.2988 7.92627C11.5809 7.67149 12.0156 7.66669 12.3037 7.927C12.6108 8.20473 12.6348 8.67881 12.3572 8.98608L11.4438 9.99683L11.4431 9.99756C11.3186 10.1353 11.2499 10.3143 11.2498 10.5V15.75L11.2468 15.8452C11.2327 16.0677 11.1689 16.2847 11.0601 16.4802C10.9356 16.7036 10.756 16.8914 10.5386 17.0259C10.3211 17.1604 10.0726 17.237 9.81713 17.2485C9.5937 17.2586 9.37132 17.2188 9.16601 17.1321L9.07885 17.0918L7.57885 16.3418C7.32961 16.2172 7.11961 16.0259 6.97314 15.7888C6.84501 15.5814 6.77019 15.3462 6.75341 15.104L6.74975 15V10.5C6.7496 10.3375 6.69633 10.1801 6.5996 10.051L6.55566 9.99756L1.13647 4.00562C0.94211 3.79026 0.81445 3.52231 0.768793 3.23584C0.723182 2.94943 0.760896 2.65567 0.878656 2.39062C0.996448 2.12559 1.18922 1.90053 1.43237 1.74243C1.67547 1.58442 1.95908 1.50014 2.24902 1.5H10.0149Z",
9438
+ fill: "#363B3F"
9439
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
9440
+ d: "M14.2498 1.5C14.6638 1.50014 14.9998 1.83587 14.9998 2.25V3.75H16.4998C16.9138 3.75014 17.2498 4.08587 17.2498 4.5C17.2498 4.91413 16.9138 5.24986 16.4998 5.25H14.9998V6.75C14.9998 7.16413 14.6638 7.49986 14.2498 7.5C13.8355 7.5 13.4998 7.16421 13.4998 6.75V5.25H11.9998C11.5855 5.25 11.2498 4.91421 11.2498 4.5C11.2498 4.08579 11.5855 3.75 11.9998 3.75H13.4998V2.25C13.4998 1.83579 13.8355 1.5 14.2498 1.5Z",
9441
+ fill: "#363B3F"
9433
9442
  })), /*#__PURE__*/React__default['default'].createElement("symbol", {
9434
- viewBox: "0 0 1024 1024",
9435
- fill: "#535A68",
9436
- id: "eraser"
9443
+ id: "eraser",
9444
+ width: "18",
9445
+ height: "18",
9446
+ viewBox: "0 0 18 18",
9447
+ fill: "none"
9437
9448
  }, /*#__PURE__*/React__default['default'].createElement("path", {
9438
- d: "M596.437333 85.333333a42.837333 42.837333 0 0 0-30.549333 13.824l-469.333333 512a42.666667 42.666667 0 0 0 1.28 59.008l170.666666 170.666667A42.496 42.496 0 0 0 298.666667 853.333333h512v-85.333333h-195.669334l311.168-311.168a42.538667 42.538667 0 0 0 0-60.330667l-298.666666-298.666666A43.221333 43.221333 0 0 0 596.437333 85.333333z m-102.144 682.666667H316.330667l-129.28-129.28 268.8-293.205333 230.485333 230.485333-192.042667 192z m252.373334-252.330667l-233.130667-233.130666 85.12-92.842667L835.669333 426.666667 746.666667 515.669333z",
9439
- "p-id": "50819"
9449
+ d: "M9.39746 1.5C9.81167 1.5 10.1475 1.83579 10.1475 2.25C10.1475 2.66421 9.81167 3 9.39746 3H2.24975L7.66821 8.99121L7.80004 9.15161C8.09041 9.53914 8.24953 10.0121 8.24975 10.5V15.0007L9.74902 15.75L9.74975 10.5C9.75 9.94243 9.95719 9.40465 10.3313 8.99121L10.6506 8.63672L10.7048 8.58252C10.9867 8.32757 11.4214 8.32258 11.7097 8.58252C12.0172 8.86008 12.0415 9.33487 11.7639 9.64233L11.4438 9.99683L11.4431 9.99756C11.3186 10.1353 11.2499 10.3143 11.2498 10.5V15.75L11.2468 15.8452C11.2327 16.0677 11.1689 16.2847 11.0601 16.4802C10.9356 16.7036 10.756 16.8914 10.5386 17.0259C10.3211 17.1604 10.0726 17.237 9.81713 17.2485C9.5937 17.2586 9.37132 17.2188 9.16601 17.1321L9.07885 17.0918L7.57885 16.3418C7.32961 16.2172 7.11961 16.0259 6.97314 15.7888C6.84501 15.5814 6.77019 15.3462 6.75341 15.104L6.74975 15V10.5C6.7496 10.3375 6.69633 10.1801 6.5996 10.051L6.55566 9.99756L1.13647 4.00562C0.94211 3.79026 0.81445 3.52231 0.768793 3.23584C0.723182 2.94943 0.760896 2.65567 0.878656 2.39062C0.996448 2.12559 1.18922 1.90053 1.43237 1.74243C1.67547 1.58442 1.95908 1.50014 2.24902 1.5H9.39746Z",
9450
+ fill: "#363B3F"
9451
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
9452
+ d: "M11.8445 2.09473C12.1191 1.82027 12.5534 1.80323 12.8479 2.04346L12.905 2.09473L14.2498 3.43945L15.5945 2.09473L15.6516 2.04346C15.9462 1.80333 16.3805 1.82019 16.655 2.09473C16.9294 2.36928 16.9464 2.80361 16.7063 3.09814L16.655 3.15527L15.3103 4.5L16.655 5.84473L16.7063 5.90186C16.9464 6.19639 16.9294 6.63072 16.655 6.90527C16.3805 7.17981 15.9462 7.19667 15.6516 6.95654L15.5945 6.90527L14.2498 5.56055L12.905 6.90527C12.6122 7.19812 12.1374 7.19804 11.8445 6.90527C11.5516 6.61238 11.5516 6.13762 11.8445 5.84473L13.1892 4.5L11.8445 3.15527L11.7932 3.09814C11.5529 2.80356 11.5699 2.36931 11.8445 2.09473Z",
9453
+ fill: "#363B3F"
9440
9454
  })), /*#__PURE__*/React__default['default'].createElement("symbol", {
9441
9455
  viewBox: "0 0 1057 1024",
9442
9456
  fill: "#535A68",
@@ -9490,12 +9504,16 @@ var SVGDefines = function SVGDefines(_ref) {
9490
9504
  fill: "",
9491
9505
  "p-id": "5612"
9492
9506
  })), /*#__PURE__*/React__default['default'].createElement("symbol", {
9493
- viewBox: "0 0 1024 1024",
9494
- fill: "#A8ABB0",
9507
+ width: "16",
9508
+ height: "24",
9509
+ viewBox: "0 0 16 16",
9510
+ fill: "none",
9495
9511
  id: "rightArrow"
9496
9512
  }, /*#__PURE__*/React__default['default'].createElement("path", {
9497
- d: "M781.963636 495.709091l-418.909091-323.490909c-20.945455-16.290909-37.236364-9.309091-37.236363 16.290909v646.981818c0 25.6 16.290909 32.581818 37.236363 16.290909l418.909091-323.490909c11.636364-9.309091 11.636364-23.272727 0-32.581818z",
9498
- "p-id": "5380"
9513
+ "fill-rule": "evenodd",
9514
+ "clip-rule": "evenodd",
9515
+ d: "M5.52729 3.52859C5.78764 3.26824 6.20975 3.26824 6.4701 3.52859L10.4701 7.52859C10.7305 7.78894 10.7305 8.21105 10.4701 8.4714L6.4701 12.4714C6.20975 12.7317 5.78764 12.7317 5.52729 12.4714C5.26694 12.2111 5.26694 11.7889 5.52729 11.5286L9.05589 8L5.52729 4.4714C5.26694 4.21105 5.26694 3.78894 5.52729 3.52859Z",
9516
+ fill: "#77818A"
9499
9517
  })), /*#__PURE__*/React__default['default'].createElement("symbol", {
9500
9518
  viewBox: "0 0 1024 1024",
9501
9519
  id: "downArrow"
@@ -9585,6 +9603,20 @@ var SVGDefines = function SVGDefines(_ref) {
9585
9603
  "clip-rule": "evenodd",
9586
9604
  d: "M3.75 1.5C3.15326 1.5 2.58097 1.73705 2.15901 2.15901C1.73705 2.58097 1.5 3.15326 1.5 3.75V15.75C1.5 16.0533 1.68273 16.3268 1.96299 16.4429C2.24324 16.559 2.56583 16.4948 2.78033 16.2803L5.56066 13.5H14.25C14.8467 13.5 15.419 13.2629 15.841 12.841C16.2629 12.419 16.5 11.8467 16.5 11.25V3.75C16.5 3.15326 16.2629 2.58097 15.841 2.15901C15.419 1.73705 14.8467 1.5 14.25 1.5H3.75ZM3.21967 3.21967C3.36032 3.07902 3.55109 3 3.75 3H14.25C14.4489 3 14.6397 3.07902 14.7803 3.21967C14.921 3.36032 15 3.55109 15 3.75V11.25C15 11.4489 14.921 11.6397 14.7803 11.7803C14.6397 11.921 14.4489 12 14.25 12H5.25C5.05109 12 4.86032 12.079 4.71967 12.2197L3 13.9393V3.75C3 3.55109 3.07902 3.36032 3.21967 3.21967Z",
9587
9605
  fill: "#363B3F"
9606
+ }))), /*#__PURE__*/React__default['default'].createElement("symbol", {
9607
+ id: "freeze-flv",
9608
+ viewBox: "0 0 24 24"
9609
+ }, /*#__PURE__*/React__default['default'].createElement("svg", {
9610
+ width: "18",
9611
+ height: "16",
9612
+ viewBox: "0 0 18 16",
9613
+ fill: "none",
9614
+ xmlns: "http://www.w3.org/2000/svg"
9615
+ }, /*#__PURE__*/React__default['default'].createElement("path", {
9616
+ "fill-rule": "evenodd",
9617
+ "clip-rule": "evenodd",
9618
+ d: "M13.4208 1.58557C13.6061 1.21509 13.4559 0.764586 13.0854 0.579344C12.7149 0.394102 12.2644 0.54427 12.0792 0.914754L11.4375 2.19811L11.1708 1.66475C10.9856 1.29427 10.5351 1.1441 10.1646 1.32934C9.79411 1.51459 9.64394 1.96509 9.82918 2.33557L10.599 3.87516L10.0365 5.00016H7.96353L7.40103 3.87516L8.17083 2.33557C8.35607 1.96509 8.2059 1.51459 7.83541 1.32934C7.46493 1.1441 7.01443 1.29427 6.82918 1.66475L6.5625 2.19811L5.92082 0.914754C5.73558 0.54427 5.28508 0.394102 4.91459 0.579344C4.54411 0.764586 4.39394 1.21509 4.57918 1.58557L5.22086 2.86893L4.63417 2.76226C4.22664 2.68817 3.8362 2.95847 3.7621 3.366C3.688 3.77353 3.95831 4.16397 4.36584 4.23807L6.05939 4.54598L6.66148 5.75016L5.91147 7.25016H4.49999L3.6 6.05018C3.35147 5.71881 2.88137 5.65165 2.55 5.90018C2.21863 6.14871 2.15147 6.61881 2.4 6.95018L2.62499 7.25016H1.5C1.08579 7.25016 0.75 7.58595 0.75 8.00016C0.75 8.41438 1.08579 8.75016 1.5 8.75016H2.62501L2.4 9.05018C2.15147 9.38155 2.21863 9.85165 2.55 10.1002C2.88137 10.3487 3.35147 10.2816 3.6 9.95018L4.50001 8.75016H5.91148L6.66148 10.2502L6.05938 11.4544L4.36584 11.7623C3.95831 11.8364 3.688 12.2268 3.7621 12.6344C3.8362 13.0419 4.22664 13.3122 4.63417 13.2381L5.22085 13.1314L4.57918 14.4148C4.39394 14.7852 4.54411 15.2357 4.91459 15.421C5.28508 15.6062 5.73558 15.4561 5.92082 15.0856L6.5625 13.8022L6.82918 14.3356C7.01443 14.7061 7.46493 14.8562 7.83541 14.671C8.2059 14.4858 8.35607 14.0353 8.17083 13.6648L7.40102 12.1252L7.96352 11.0002H10.0365L10.599 12.1252L9.82918 13.6648C9.64394 14.0353 9.79411 14.4858 10.1646 14.671C10.5351 14.8562 10.9856 14.7061 11.1708 14.3356L11.4375 13.8022L12.0792 15.0856C12.2644 15.4561 12.7149 15.6062 13.0854 15.421C13.4559 15.2358 13.6061 14.7853 13.4208 14.4148L12.7791 13.1314L13.3658 13.2381C13.7734 13.3122 14.1638 13.0419 14.2379 12.6344C14.312 12.2268 14.0417 11.8364 13.6342 11.7623L11.9406 11.4544L11.3385 10.2502L12.0885 8.75018H13.5L14.4 9.95018C14.6485 10.2816 15.1186 10.3487 15.45 10.1002C15.7814 9.85165 15.8485 9.38155 15.6 9.05018L15.375 8.75018H16.5C16.9142 8.75018 17.25 8.4144 17.25 8.00018C17.25 7.58597 16.9142 7.25018 16.5 7.25018H15.375L15.6 6.95018C15.8485 6.61881 15.7814 6.14871 15.45 5.90018C15.1186 5.65165 14.6485 5.71881 14.4 6.05018L13.5 7.25018H12.0885L11.3385 5.75016L11.9406 4.54599L13.6342 4.23807C14.0417 4.16397 14.312 3.77353 14.2379 3.366C14.1638 2.95847 13.7734 2.68817 13.3658 2.76226L12.7791 2.86893L13.4208 1.58557ZM7.96353 6.50016L7.21353 8.00016L7.96354 9.50018H10.0365L10.7865 8.00018L10.0365 6.50016H7.96353Z",
9619
+ fill: "#363B3F"
9588
9620
  }))), /*#__PURE__*/React__default['default'].createElement("symbol", {
9589
9621
  viewBox: "0 0 1024 1024",
9590
9622
  id: "tab"
@@ -9599,6 +9631,32 @@ var SVGDefines = function SVGDefines(_ref) {
9599
9631
  d: "M844.8 896c25.6 0 51.2-19.2 51.2-51.2v-185.6h-51.2c-44.8 0-83.2-38.4-83.2-83.2s38.4-83.2 83.2-83.2h51.2V313.6c0-25.6-19.2-51.2-51.2-51.2h-134.4c0-70.4-57.6-128-128-128S448 185.6 448 256H313.6c-25.6 0-51.2 19.2-51.2 51.2V448C185.6 448 128 505.6 128 576s57.6 128 128 128v134.4c0 25.6 19.2 51.2 51.2 51.2h185.6v-51.2c0-44.8 38.4-83.2 83.2-83.2 44.8 0 83.2 38.4 83.2 83.2v57.6h185.6zM576 710.4c-70.4 0-128 57.6-128 128H307.2v-185.6H256c-44.8 0-83.2-38.4-83.2-83.2S211.2 492.8 256 492.8h51.2V307.2h185.6V256c0-44.8 38.4-83.2 83.2-83.2 44.8 0 83.2 38.4 83.2 83.2v51.2h185.6V448c-70.4 0-128 57.6-128 128s57.6 128 128 128v140.8H704c6.4-70.4-51.2-134.4-128-134.4z",
9600
9632
  fill: "",
9601
9633
  "p-id": "36983"
9634
+ })), /*#__PURE__*/React__default['default'].createElement("symbol", {
9635
+ id: "sort-flv",
9636
+ width: "18",
9637
+ height: "18",
9638
+ viewBox: "0 0 18 18",
9639
+ fill: "none"
9640
+ }, /*#__PURE__*/React__default['default'].createElement("path", {
9641
+ "fill-rule": "evenodd",
9642
+ "clip-rule": "evenodd",
9643
+ d: "M1.71967 11.4697C2.01256 11.1768 2.48744 11.1768 2.78033 11.4697L5.25 13.9393L7.71967 11.4697C8.01256 11.1768 8.48744 11.1768 8.78033 11.4697C9.07322 11.7626 9.07322 12.2374 8.78033 12.5303L5.78033 15.5303C5.48744 15.8232 5.01256 15.8232 4.71967 15.5303L1.71967 12.5303C1.42678 12.2374 1.42678 11.7626 1.71967 11.4697Z",
9644
+ fill: "#363B3F"
9645
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
9646
+ "fill-rule": "evenodd",
9647
+ "clip-rule": "evenodd",
9648
+ d: "M5.25 2.25C5.66421 2.25 6 2.58579 6 3V15C6 15.4142 5.66421 15.75 5.25 15.75C4.83579 15.75 4.5 15.4142 4.5 15V3C4.5 2.58579 4.83579 2.25 5.25 2.25Z",
9649
+ fill: "#363B3F"
9650
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
9651
+ "fill-rule": "evenodd",
9652
+ "clip-rule": "evenodd",
9653
+ d: "M12.2197 2.46967C12.5126 2.17678 12.9874 2.17678 13.2803 2.46967L16.2803 5.46967C16.5732 5.76256 16.5732 6.23744 16.2803 6.53033C15.9874 6.82322 15.5126 6.82322 15.2197 6.53033L12.75 4.06066L10.2803 6.53033C9.98744 6.82322 9.51256 6.82322 9.21967 6.53033C8.92678 6.23744 8.92678 5.76256 9.21967 5.46967L12.2197 2.46967Z",
9654
+ fill: "#363B3F"
9655
+ }), /*#__PURE__*/React__default['default'].createElement("path", {
9656
+ "fill-rule": "evenodd",
9657
+ "clip-rule": "evenodd",
9658
+ d: "M12.75 2.25C13.1642 2.25 13.5 2.58579 13.5 3V15C13.5 15.4142 13.1642 15.75 12.75 15.75C12.3358 15.75 12 15.4142 12 15V3C12 2.58579 12.3358 2.25 12.75 2.25Z",
9659
+ fill: "#363B3F"
9602
9660
  }))));
9603
9661
  };
9604
9662
 
@@ -9893,7 +9951,7 @@ var MoreItemsContaier = function MoreItemsContaier(_ref) {
9893
9951
  }, children);
9894
9952
  };
9895
9953
 
9896
- function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cellInput, scrollbarX, scrollbarY) {
9954
+ function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cellInput, scrollbarX, scrollbarY, globalCache) {
9897
9955
  return {
9898
9956
  applyOp: function applyOp(ops) {
9899
9957
  setContext(function (ctx_) {
@@ -10194,6 +10252,50 @@ function generateAPIs(context, setContext, handleUndo, handleRedo, settings, cel
10194
10252
  },
10195
10253
  celldataToData: function celldataToData(celldata, rowCount, colCount) {
10196
10254
  return fortuneCore.api.celldataToData(celldata, rowCount, colCount);
10255
+ },
10256
+ insertFunction: function insertFunction(selectedFuncIndex, filteredFunctionList, callback) {
10257
+ var _context$luckysheet_s2;
10258
+ var last = (_context$luckysheet_s2 = context.luckysheet_select_save) === null || _context$luckysheet_s2 === void 0 ? void 0 : _context$luckysheet_s2[context.luckysheet_select_save.length - 1];
10259
+ var row_index = last === null || last === void 0 ? void 0 : last.row_focus;
10260
+ var col_index = last === null || last === void 0 ? void 0 : last.column_focus;
10261
+ if (!last) {
10262
+ row_index = 0;
10263
+ col_index = 0;
10264
+ } else {
10265
+ if (row_index == null) {
10266
+ var _last$row2 = _slicedToArray(last.row, 1);
10267
+ row_index = _last$row2[0];
10268
+ }
10269
+ if (col_index == null) {
10270
+ var _last$column2 = _slicedToArray(last.column, 1);
10271
+ col_index = _last$column2[0];
10272
+ }
10273
+ }
10274
+ var formulaTxt = "<span dir=\"auto\" class=\"luckysheet-formula-text-color\">=</span><span dir=\"auto\" class=\"luckysheet-formula-text-color\">".concat(filteredFunctionList[selectedFuncIndex].n.toUpperCase(), "</span><span dir=\"auto\" class=\"luckysheet-formula-text-color\">(</span>");
10275
+ var _locale2 = fortuneCore.locale(context),
10276
+ functionlist = _locale2.functionlist;
10277
+ setContext(function (ctx) {
10278
+ if (cellInput != null && globalCache != null) {
10279
+ ctx.luckysheetCellUpdate = [row_index, col_index];
10280
+ globalCache.doNotUpdateCell = true;
10281
+ cellInput.innerHTML = formulaTxt;
10282
+ var spans = cellInput.childNodes;
10283
+ if (!___default['default'].isEmpty(spans)) {
10284
+ fortuneCore.setCaretPosition(ctx, spans[spans.length - 1], 0, 1);
10285
+ }
10286
+ ctx.functionHint = filteredFunctionList[selectedFuncIndex].n.toUpperCase();
10287
+ ctx.functionCandidates = [];
10288
+ if (___default['default'].isEmpty(ctx.formulaCache.functionlistMap)) {
10289
+ for (var i = 0; i < functionlist.length; i += 1) {
10290
+ ctx.formulaCache.functionlistMap[functionlist[i].n] = functionlist[i];
10291
+ }
10292
+ }
10293
+ callback === null || callback === void 0 ? void 0 : callback();
10294
+ }
10295
+ });
10296
+ },
10297
+ getLocaleContext: function getLocaleContext() {
10298
+ return fortuneCore.locale(context);
10197
10299
  }
10198
10300
  };
10199
10301
  }
@@ -11401,8 +11503,8 @@ var Workbook = /*#__PURE__*/React__default['default'].forwardRef(function (_ref,
11401
11503
  };
11402
11504
  }, [onPaste]);
11403
11505
  React.useImperativeHandle(ref, function () {
11404
- return generateAPIs(context, setContextWithProduce, handleUndo, handleRedo, mergedSettings, cellInput.current, scrollbarX.current, scrollbarY.current);
11405
- }, [context, setContextWithProduce, handleUndo, handleRedo, mergedSettings]);
11506
+ return generateAPIs(context, setContextWithProduce, handleUndo, handleRedo, mergedSettings, cellInput.current, scrollbarX.current, scrollbarY.current, globalCache.current);
11507
+ }, [context, setContextWithProduce, handleUndo, handleRedo, mergedSettings, globalCache]);
11406
11508
  var i = fortuneCore.getSheetIndex(context, context.currentSheetId);
11407
11509
  if (i == null) {
11408
11510
  return null;