@fileverse-dev/fortune-react 1.1.99-patch-1 → 1.1.99-patch-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/es/components/ContextMenu/index.js +2 -2
  2. package/es/components/DataVerification/ColorPicker.js +31 -7
  3. package/es/components/DataVerification/DropdownList.js +20 -1
  4. package/es/components/DataVerification/DropdownOption.js +5 -2
  5. package/es/components/DataVerification/RangeDialog.js +0 -2
  6. package/es/components/DataVerification/index.css +20 -0
  7. package/es/components/DataVerification/index.js +29 -5
  8. package/es/components/SheetOverlay/ColumnHeader.js +88 -5
  9. package/es/components/SheetOverlay/FormulaHint/index.js +13 -2
  10. package/es/components/SheetOverlay/RowHeader.js +82 -5
  11. package/es/components/SheetOverlay/index.css +24 -1
  12. package/es/components/Toolbar/index.d.ts +1 -1
  13. package/es/components/Toolbar/index.js +22 -18
  14. package/es/components/Workbook/api.d.ts +1 -1
  15. package/es/components/Workbook/index.d.ts +10 -10
  16. package/es/components/Workbook/index.js +5 -0
  17. package/lib/components/ContextMenu/index.js +2 -2
  18. package/lib/components/DataVerification/ColorPicker.js +30 -6
  19. package/lib/components/DataVerification/DropdownList.js +20 -1
  20. package/lib/components/DataVerification/DropdownOption.js +5 -2
  21. package/lib/components/DataVerification/RangeDialog.js +0 -2
  22. package/lib/components/DataVerification/index.css +20 -0
  23. package/lib/components/DataVerification/index.js +29 -5
  24. package/lib/components/SheetOverlay/ColumnHeader.js +87 -4
  25. package/lib/components/SheetOverlay/FormulaHint/index.js +13 -2
  26. package/lib/components/SheetOverlay/RowHeader.js +81 -4
  27. package/lib/components/SheetOverlay/index.css +24 -1
  28. package/lib/components/Toolbar/index.d.ts +1 -1
  29. package/lib/components/Toolbar/index.js +22 -18
  30. package/lib/components/Workbook/api.d.ts +1 -1
  31. package/lib/components/Workbook/index.d.ts +10 -10
  32. package/lib/components/Workbook/index.js +5 -0
  33. package/package.json +2 -2
@@ -12,30 +12,30 @@ declare const Workbook: React.ForwardRefExoticComponent<Settings & AdditionalPro
12
12
  applyOp: (ops: Op[]) => void;
13
13
  getCryptoPrice: typeof getCryptoPrice;
14
14
  getCellValue: (row: number, column: number, options?: api.CommonOptions & {
15
- type?: "error" | "rt" | "f" | "m" | "v" | "mc" | "ct" | "qp" | "spl" | "bg" | "lo" | "baseValue" | "baseCurrency" | "baseCurrencyPrice" | "isDataBlockFormula" | "ps" | "hl" | keyof import("@fileverse-dev/fortune-core").CellStyle | undefined;
15
+ type?: "m" | "mc" | "rt" | "v" | "f" | "ct" | "qp" | "spl" | "bg" | "lo" | "baseValue" | "baseCurrency" | "baseCurrencyPrice" | "isDataBlockFormula" | "ps" | "hl" | "error" | keyof import("@fileverse-dev/fortune-core").CellStyle | undefined;
16
16
  }) => any;
17
17
  onboardingActiveCell: (functionName: string) => void;
18
18
  initializeComment: (row: number, column: number) => void;
19
19
  updateSheetLiveQueryList: (subsheetIndex: number, _data: import("@fileverse-dev/fortune-core").LiveQueryData) => void;
20
20
  removeFromLiveQueryList: (subSheetIndex: number, id: string) => void;
21
21
  setCellValue: (row: number, column: number, value: any, options?: api.CommonOptions & {
22
- type?: "error" | "rt" | "f" | "m" | "v" | "mc" | "ct" | "qp" | "spl" | "bg" | "lo" | "baseValue" | "baseCurrency" | "baseCurrencyPrice" | "isDataBlockFormula" | "ps" | "hl" | keyof import("@fileverse-dev/fortune-core").CellStyle | undefined;
22
+ type?: "m" | "mc" | "rt" | "v" | "f" | "ct" | "qp" | "spl" | "bg" | "lo" | "baseValue" | "baseCurrency" | "baseCurrencyPrice" | "isDataBlockFormula" | "ps" | "hl" | "error" | keyof import("@fileverse-dev/fortune-core").CellStyle | undefined;
23
23
  }) => void;
24
24
  setCellError: (row: number, column: number, errorMessage: {
25
25
  title: string;
26
26
  message: string;
27
27
  }) => void;
28
28
  clearCell: (row: number, column: number, options?: api.CommonOptions) => void;
29
- setCellFormat: (row: number, column: number, attr: "error" | "rt" | "f" | "m" | "v" | "mc" | "ct" | "qp" | "spl" | "bg" | "lo" | "baseValue" | "baseCurrency" | "baseCurrencyPrice" | "isDataBlockFormula" | "ps" | "hl" | keyof import("@fileverse-dev/fortune-core").CellStyle, value: any, options?: api.CommonOptions) => void;
29
+ setCellFormat: (row: number, column: number, attr: "m" | "mc" | "rt" | "v" | "f" | "ct" | "qp" | "spl" | "bg" | "lo" | "baseValue" | "baseCurrency" | "baseCurrencyPrice" | "isDataBlockFormula" | "ps" | "hl" | "error" | keyof import("@fileverse-dev/fortune-core").CellStyle, value: any, options?: api.CommonOptions) => void;
30
30
  autoFillCell: (copyRange: import("@fileverse-dev/fortune-core").SingleRange, applyRange: import("@fileverse-dev/fortune-core").SingleRange, direction: "left" | "right" | "down" | "up") => void;
31
- freeze: (type: "column" | "both" | "row", range: {
31
+ freeze: (type: "row" | "column" | "both", range: {
32
32
  row: number;
33
33
  column: number;
34
34
  }, options?: api.CommonOptions) => void;
35
- insertRowOrColumn: (type: "column" | "row", index: number, count: number, direction?: "lefttop" | "rightbottom", options?: api.CommonOptions) => void;
36
- deleteRowOrColumn: (type: "column" | "row", start: number, end: number, options?: api.CommonOptions) => void;
37
- hideRowOrColumn: (rowOrColInfo: string[], type: "column" | "row") => void;
38
- showRowOrColumn: (rowOrColInfo: string[], type: "column" | "row") => void;
35
+ insertRowOrColumn: (type: "row" | "column", index: number, count: number, direction?: "lefttop" | "rightbottom", options?: api.CommonOptions) => void;
36
+ deleteRowOrColumn: (type: "row" | "column", start: number, end: number, options?: api.CommonOptions) => void;
37
+ hideRowOrColumn: (rowOrColInfo: string[], type: "row" | "column") => void;
38
+ showRowOrColumn: (rowOrColInfo: string[], type: "row" | "column") => void;
39
39
  setRowHeight: (rowInfo: Record<string, number>, options?: api.CommonOptions, custom?: boolean) => void;
40
40
  setColumnWidth: (columnInfo: Record<string, number>, options?: api.CommonOptions, custom?: boolean) => void;
41
41
  getRowHeight: (rows: number[], options?: api.CommonOptions) => Record<number, number>;
@@ -57,7 +57,7 @@ declare const Workbook: React.ForwardRefExoticComponent<Settings & AdditionalPro
57
57
  getHtmlByRange: (range: import("@fileverse-dev/fortune-core").Range, options?: api.CommonOptions) => string | null;
58
58
  setSelection: (range: import("@fileverse-dev/fortune-core").Range, options?: api.CommonOptions) => void;
59
59
  setCellValuesByRange: (data: any[][], range: import("@fileverse-dev/fortune-core").SingleRange, options?: api.CommonOptions) => void;
60
- setCellFormatByRange: (attr: "error" | "rt" | "f" | "m" | "v" | "mc" | "ct" | "qp" | "spl" | "bg" | "lo" | "baseValue" | "baseCurrency" | "baseCurrencyPrice" | "isDataBlockFormula" | "ps" | "hl" | keyof import("@fileverse-dev/fortune-core").CellStyle, value: any, range: import("@fileverse-dev/fortune-core").SingleRange | import("@fileverse-dev/fortune-core").Range, options?: api.CommonOptions) => void;
60
+ setCellFormatByRange: (attr: "m" | "mc" | "rt" | "v" | "f" | "ct" | "qp" | "spl" | "bg" | "lo" | "baseValue" | "baseCurrency" | "baseCurrencyPrice" | "isDataBlockFormula" | "ps" | "hl" | "error" | keyof import("@fileverse-dev/fortune-core").CellStyle, value: any, range: import("@fileverse-dev/fortune-core").SingleRange | import("@fileverse-dev/fortune-core").Range, options?: api.CommonOptions) => void;
61
61
  mergeCells: (ranges: import("@fileverse-dev/fortune-core").Range, type: string, options?: api.CommonOptions) => void;
62
62
  cancelMerge: (ranges: import("@fileverse-dev/fortune-core").Range, options?: api.CommonOptions) => void;
63
63
  getAllSheets: () => SheetType[];
@@ -116,7 +116,7 @@ declare const Workbook: React.ForwardRefExoticComponent<Settings & AdditionalPro
116
116
  dynamicArray_compute?: any;
117
117
  dynamicArray?: any[] | undefined;
118
118
  frozen?: {
119
- type: "column" | "rangeColumn" | "rangeBoth" | "both" | "row" | "rangeRow";
119
+ type: "row" | "column" | "both" | "rangeRow" | "rangeColumn" | "rangeBoth";
120
120
  range?: {
121
121
  row_focus: number;
122
122
  column_focus: number;
@@ -647,6 +647,11 @@ var Workbook = /*#__PURE__*/React.forwardRef(function (_a, ref) {
647
647
  }
648
648
  });
649
649
  }
650
+ setContextWithProduce(function (ctx) {
651
+ if (ctx.luckysheet_selection_range) {
652
+ ctx.luckysheet_selection_range = [];
653
+ }
654
+ });
650
655
  }, [context, setContextWithProduce]);
651
656
  var onMoreToolbarItemsClose = useCallback(function () {
652
657
  setMoreToolbarItems(null);
@@ -642,7 +642,7 @@ var ContextMenu = function ContextMenu() {
642
642
  }), /*#__PURE__*/_react.default.createElement("div", null, rightclick.deleteSelected, rightclick.row))));
643
643
  }
644
644
  if (name === "hide-row") {
645
- return (selection === null || selection === void 0 ? void 0 : selection.row_select) === true && ["hideSelected", "showHide"].map(function (item) {
645
+ return (selection === null || selection === void 0 ? void 0 : selection.row_select) && ["hideSelected", "showHide"].map(function (item) {
646
646
  return /*#__PURE__*/_react.default.createElement(_Menu.default, {
647
647
  key: item,
648
648
  onClick: function onClick() {
@@ -1086,7 +1086,7 @@ var ContextMenu = function ContextMenu() {
1086
1086
  left: contextMenu.x,
1087
1087
  top: contextMenu.y
1088
1088
  }
1089
- }, context.contextMenu.headerMenu === true ? settings.headerContextMenu.map(function (menu, i) {
1089
+ }, context.contextMenu.headerMenu === true || context.contextMenu.headerMenu === "row" ? settings.headerContextMenu.map(function (menu, i) {
1090
1090
  return getMenuElement(menu, i);
1091
1091
  }) : settings.cellContextMenu.map(function (menu, i) {
1092
1092
  return getMenuElement(menu, i);
@@ -65,7 +65,9 @@ var ColorSection = exports.ColorSection = function ColorSection(_a) {
65
65
  }, /*#__PURE__*/_react.default.createElement("div", {
66
66
  className: "flex items-center justify-between color-picker rounded transition-all cursor-pointer border border-gray-300",
67
67
  style: {
68
- padding: "7px"
68
+ padding: "7px",
69
+ border: "var(--border-width-md, 1px) solid hsl(var(--color-border-default, #E8EBEC))",
70
+ borderRadius: "var(--border-radius-sm, 4px)"
69
71
  }
70
72
  }, /*#__PURE__*/_react.default.createElement("div", {
71
73
  className: "flex items-center gap-3 color-text-secondary"
@@ -80,7 +82,7 @@ var ColorSection = exports.ColorSection = function ColorSection(_a) {
80
82
  })))), /*#__PURE__*/_react.default.createElement(_ui.PopoverContent, {
81
83
  align: "start",
82
84
  alignOffset: 0,
83
- className: "w-[200px] export-content-popover",
85
+ className: "color-picker-container",
84
86
  elevation: 2,
85
87
  side: "bottom",
86
88
  sideOffset: 4
@@ -89,18 +91,40 @@ var ColorSection = exports.ColorSection = function ColorSection(_a) {
89
91
  }, /*#__PURE__*/_react.default.createElement("div", {
90
92
  className: "flex gap-2 flex-wrap w-full"
91
93
  }, TEXT_COLORS.map(function (color) {
92
- return /*#__PURE__*/_react.default.createElement("button", {
94
+ return /*#__PURE__*/_react.default.createElement("div", {
95
+ key: color.value,
96
+ className: "w-7 h-7 rounded-full transition-all hover:scale-110 hover:shadow-md",
97
+ style: {
98
+ border: "".concat(color.value) === trigerColor ? "2px solid rgb(".concat(color.value, ")") : "none",
99
+ padding: "2px"
100
+ }
101
+ }, /*#__PURE__*/_react.default.createElement("button", {
93
102
  type: "button",
94
103
  key: color.value,
95
104
  onClick: function onClick() {
96
105
  onPick(color.value);
97
106
  setIsOpen(false);
98
107
  },
99
- className: "w-7 h-7 rounded-full transition-all hover:scale-110 hover:shadow-md",
108
+ className: "w-full h-full rounded-full transition-all hover:scale-110 hover:shadow-md",
100
109
  style: {
101
110
  backgroundColor: "rgb(".concat(color.value, ")")
102
111
  },
103
112
  title: color.name
104
- });
105
- })))));
113
+ }));
114
+ }), /*#__PURE__*/_react.default.createElement("div", {
115
+ className: "w-full flex justify-center",
116
+ onClick: function onClick() {
117
+ onPick("228, 232, 237");
118
+ setIsOpen(false);
119
+ }
120
+ }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
121
+ icon: "DropletOff",
122
+ size: "md",
123
+ variant: "ghost",
124
+ className: "color-picker-icon"
125
+ }), /*#__PURE__*/_react.default.createElement(_ui.Button, {
126
+ size: "md",
127
+ variant: "ghost",
128
+ className: "color-picker-reset"
129
+ }, "Reset"))))));
106
130
  };
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _fortuneCore = require("@fileverse-dev/fortune-core");
9
9
  var _react = _interopRequireWildcard(require("react"));
10
+ var _ui = require("@fileverse/ui");
10
11
  var _context = _interopRequireDefault(require("../../context"));
11
12
  var _useOutsideClick = require("../../hooks/useOutsideClick");
12
13
  var _SVGIcon = _interopRequireDefault(require("../SVGIcon"));
@@ -154,6 +155,24 @@ var DropDownList = function DropDownList() {
154
155
  display: isMul && selected.indexOf(v) >= 0 ? "inline" : "none"
155
156
  }
156
157
  }), v);
157
- }));
158
+ }), /*#__PURE__*/_react.default.createElement("div", {
159
+ className: "w-full flex align-center",
160
+ style: {
161
+ height: "28px"
162
+ }
163
+ }, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
164
+ icon: "Pencil",
165
+ size: "sm",
166
+ variant: "ghost",
167
+ className: "color-picker-icon pt-2"
168
+ }), /*#__PURE__*/_react.default.createElement(_ui.Button, {
169
+ size: "md",
170
+ variant: "ghost",
171
+ className: "color-picker-reset",
172
+ onClick: function onClick() {
173
+ var _a;
174
+ (_a = window === null || window === void 0 ? void 0 : window.dataVerificationClick) === null || _a === void 0 ? void 0 : _a.call(window);
175
+ }
176
+ }, "Edit")));
158
177
  };
159
178
  var _default = exports.default = DropDownList;
@@ -181,7 +181,7 @@ var DynamicInputList = function DynamicInputList(_a) {
181
181
  }, optionItems.map(function (item, index) {
182
182
  return /*#__PURE__*/_react.default.createElement("li", {
183
183
  key: item.id,
184
- className: (0, _ui.cn)("relative flex optionItems-center gap-3 transition mb-4", draggingIndex === index && "scale-[0.99] opacity-80 shadow-lg rounded-xl"),
184
+ className: (0, _ui.cn)("relative flex optionItems-center gap-2 transition mb-4", draggingIndex === index && "scale-[0.99] opacity-80 shadow-lg rounded-xl"),
185
185
  onDragOver: function onDragOver(e) {
186
186
  return onDragOverRow(index, e);
187
187
  },
@@ -276,7 +276,10 @@ var DynamicInputList = function DynamicInputList(_a) {
276
276
  }, /*#__PURE__*/_react.default.createElement(_ui.Button, {
277
277
  variant: "secondary",
278
278
  onClick: handleAdd,
279
- className: ""
279
+ size: "sm",
280
+ style: {
281
+ fontWeight: 500
282
+ }
280
283
  }, "Add another item")));
281
284
  };
282
285
  var _default = exports.default = DynamicInputList;
@@ -8,7 +8,6 @@ exports.default = void 0;
8
8
  var _fortuneCore = require("@fileverse-dev/fortune-core");
9
9
  var _ui = require("@fileverse/ui");
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- var _ = _interopRequireDefault(require("."));
12
11
  var _context = _interopRequireDefault(require("../../context"));
13
12
  var _useDialog = require("../../hooks/useDialog");
14
13
  var _ConditionRules = _interopRequireDefault(require("../ConditionFormat/ConditionRules"));
@@ -48,7 +47,6 @@ var RangeDialog = function RangeDialog() {
48
47
  }), undefined, (0, _fortuneCore.locale)(context).conditionformat["conditionformat_".concat(rulesType)]);
49
48
  return;
50
49
  }
51
- showDialog(/*#__PURE__*/_react.default.createElement(_.default, null), undefined, toolbar.dataVerification);
52
50
  }, [setContext, showDialog, context]);
53
51
  (0, _react.useEffect)(function () {
54
52
  setRangeTxt2((0, _getDisplayedRangeTxt.getDisplayedRangeTxt)(context));
@@ -203,4 +203,24 @@
203
203
 
204
204
  .color-picker:hover {
205
205
  background: hsl(var(--color-bg-default-hover, #F2F4F5));
206
+ }
207
+
208
+ .color-picker-container {
209
+ border: 1px solid hsl(var(--color-border-default, #E8EBEC)) !important;
210
+ box-shadow: 0 4px 16px -4px rgba(0, 0, 0, 0.15);
211
+ width: 230px !important;
212
+ }
213
+
214
+ .color-picker-reset {
215
+ min-width: 0px;
216
+ padding-left: 0px;
217
+ margin-left: 0px;
218
+ }
219
+
220
+ .color-picker-reset:hover {
221
+ background-color: white;
222
+ }
223
+
224
+ .color-picker-icon:hover {
225
+ background-color: white;
206
226
  }
@@ -93,6 +93,14 @@ var DataVerification = function DataVerification() {
93
93
  }));
94
94
  }
95
95
  }, []);
96
+ var dataSelectRange = (0, _react.useCallback)(function (type, value) {
97
+ hideDialog();
98
+ setContext(function (ctx) {
99
+ ctx.rangeDialog.show = true;
100
+ ctx.rangeDialog.type = type;
101
+ ctx.rangeDialog.rangeTxt = value;
102
+ });
103
+ }, [hideDialog, setContext]);
96
104
  var btn = (0, _react.useCallback)(function (type) {
97
105
  if (type === "confirm") {
98
106
  setContext(function (ctx) {
@@ -219,7 +227,7 @@ var DataVerification = function DataVerification() {
219
227
  return /*#__PURE__*/_react.default.createElement("div", {
220
228
  id: "fortune-data-verification"
221
229
  }, /*#__PURE__*/_react.default.createElement("div", {
222
- className: "flex flex-col gap-4",
230
+ className: "flex flex-col gap-4 h-[calc(100vh-270px)] overflow-y-auto no-scrollbar",
223
231
  style: {
224
232
  width: "345px",
225
233
  padding: "16px"
@@ -235,7 +243,17 @@ var DataVerification = function DataVerification() {
235
243
  }),
236
244
  "aria-hidden": "true",
237
245
  readOnly: true,
238
- value: (_a = context.dataVerification.dataRegulation) === null || _a === void 0 ? void 0 : _a.rangeTxt
246
+ value: (_a = context.dataVerification.dataRegulation) === null || _a === void 0 ? void 0 : _a.rangeTxt,
247
+ onChange: function onChange(e) {
248
+ var value = e.target.value;
249
+ setContext(function (ctx) {
250
+ ctx.dataVerification.dataRegulation.rangeTxt = value;
251
+ });
252
+ },
253
+ onClick: function onClick() {
254
+ hideDialog();
255
+ dataSelectRange("rangeTxt", context.dataVerification.dataRegulation.value1);
256
+ }
239
257
  })), /*#__PURE__*/_react.default.createElement("div", {
240
258
  className: "flex flex-col"
241
259
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -280,7 +298,7 @@ var DataVerification = function DataVerification() {
280
298
  });
281
299
  }
282
300
  }), /*#__PURE__*/_react.default.createElement("span", {
283
- className: "ml-2"
301
+ className: "ml-2 text-body-sm"
284
302
  }, dataVerification.allowMultiSelect)))), ((_e = (_d = context.dataVerification) === null || _d === void 0 ? void 0 : _d.dataRegulation) === null || _e === void 0 ? void 0 : _e.type) === "checkbox" && (/*#__PURE__*/_react.default.createElement("div", {
285
303
  className: "mt-4 space-y-2"
286
304
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -396,7 +414,7 @@ var DataVerification = function DataVerification() {
396
414
  });
397
415
  }
398
416
  }), /*#__PURE__*/_react.default.createElement("span", {
399
- className: "ml-2"
417
+ className: "ml-2 text-body-sm"
400
418
  }, dataVerification[v]));
401
419
  }), ((_o = (_m = context.dataVerification) === null || _m === void 0 ? void 0 : _m.dataRegulation) === null || _o === void 0 ? void 0 : _o.hintShow) && (/*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_ui.TextField, {
402
420
  placeholder: dataVerification.placeholder5,
@@ -408,7 +426,11 @@ var DataVerification = function DataVerification() {
408
426
  });
409
427
  }
410
428
  }))))), /*#__PURE__*/_react.default.createElement(_ui.Divider, {
411
- className: "w-full border-t-[1px] my-4"
429
+ className: "border-t-[1px]",
430
+ style: {
431
+ width: "315px",
432
+ margin: "0 16px 16px 16px"
433
+ }
412
434
  }), /*#__PURE__*/_react.default.createElement("div", {
413
435
  className: "flex gap-2 justify-between items-center",
414
436
  style: {
@@ -432,7 +454,9 @@ var DataVerification = function DataVerification() {
432
454
  minWidth: "80px"
433
455
  },
434
456
  onClick: function onClick() {
457
+ var _a;
435
458
  btn("confirm");
459
+ (_a = document.getElementById("data-verification-button")) === null || _a === void 0 ? void 0 : _a.click();
436
460
  }
437
461
  }, button.confirm))));
438
462
  };
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _fortuneCore = require("@fileverse-dev/fortune-core");
9
+ var _api = require("@fileverse-dev/fortune-core/src/api");
9
10
  var _lodash = _interopRequireDefault(require("lodash"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _context = _interopRequireDefault(require("../../context"));
@@ -82,13 +83,13 @@ var ColumnHeader = function ColumnHeader() {
82
83
  }]);
83
84
  }, [context, hoverLocation.col_index, refs.globalCache.freezen]);
84
85
  var onMouseDown = (0, _react.useCallback)(function (e) {
85
- if (e.button === 0 && e.target.tagName === "use") {
86
+ if (e.button === 0 && e.target.tagName === "use" || e.button === 2) {
86
87
  var nativeEvent_1 = e.nativeEvent;
87
88
  setContext(function (draft) {
88
89
  (0, _fortuneCore.handleColumnHeaderMouseDown)(draft, refs.globalCache, nativeEvent_1, containerRef.current, refs.cellInput.current, refs.fxInput.current);
89
90
  });
90
91
  }
91
- if (e.button !== 0) return;
92
+ if (e.button !== 0 || context.isFlvReadOnly) return;
92
93
  var targetEl = e.target;
93
94
  if (targetEl.closest(".fortune-cols-change-size") || targetEl.closest(".fortune-cols-freeze-handle") || targetEl.closest(".header-arrow")) return;
94
95
  var headerEl = containerRef.current;
@@ -163,6 +164,44 @@ var ColumnHeader = function ColumnHeader() {
163
164
  }
164
165
  setSelectedLocation(selects);
165
166
  }, [context.luckysheet_select_save, context.visibledatacolumn]);
167
+ var _g = (0, _react.useState)([]),
168
+ hiddenPointers = _g[0],
169
+ setHiddenPointers = _g[1];
170
+ (0, _react.useEffect)(function () {
171
+ var _a, _b;
172
+ if (sheetIndex == null) return;
173
+ var tempPointers = [];
174
+ var colhidden = (_b = (_a = context.luckysheetfile[sheetIndex]) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.colhidden;
175
+ if (colhidden) {
176
+ Object.keys(colhidden).forEach(function (key) {
177
+ var item = {
178
+ col: key,
179
+ left: context.visibledatacolumn[Number(key) - 1]
180
+ };
181
+ tempPointers.push(item);
182
+ });
183
+ console.log(tempPointers);
184
+ setHiddenPointers(tempPointers);
185
+ } else {
186
+ setHiddenPointers([]);
187
+ }
188
+ }, [context.visibledatacolumn, sheetIndex]);
189
+ var showColumn = function showColumn(e, item) {
190
+ if (context.isFlvReadOnly) return;
191
+ e.stopPropagation();
192
+ setContext(function (ctx) {
193
+ var _a;
194
+ (0, _api.setSelection)(ctx, [{
195
+ row: [0, (_a = context.visibledatarow) === null || _a === void 0 ? void 0 : _a.length],
196
+ column: [Number(item.col) - 1, Number(item.col) + 1]
197
+ }], {
198
+ id: context.currentSheetId
199
+ });
200
+ });
201
+ setContext(function (ctx) {
202
+ (0, _fortuneCore.showSelected)(ctx, "column");
203
+ });
204
+ };
166
205
  (0, _react.useEffect)(function () {
167
206
  containerRef.current.scrollLeft = context.scrollLeft;
168
207
  }, [context.scrollLeft]);
@@ -185,7 +224,51 @@ var ColumnHeader = function ColumnHeader() {
185
224
  };
186
225
  });
187
226
  }
188
- }, /*#__PURE__*/_react.default.createElement("div", {
227
+ }, hiddenPointers.map(function (item) {
228
+ return /*#__PURE__*/_react.default.createElement("div", {
229
+ className: "flex gap-4 cursor-pointer hide-btn align-center",
230
+ style: {
231
+ height: context.columnHeaderHeight - 12,
232
+ left: "".concat(item.left - 12, "px")
233
+ },
234
+ onClick: function onClick(e) {
235
+ return showColumn(e, item);
236
+ }
237
+ }, /*#__PURE__*/_react.default.createElement("div", {
238
+ className: ""
239
+ }, /*#__PURE__*/_react.default.createElement("svg", {
240
+ xmlns: "http://www.w3.org/2000/svg",
241
+ width: "5",
242
+ height: "8",
243
+ viewBox: "0 0 5 8",
244
+ fill: "none"
245
+ }, /*#__PURE__*/_react.default.createElement("path", {
246
+ d: "M0.164574 4.20629L3.54376 7.58548C3.7275 7.76922 4.04167 7.63909 4.04167 7.37924L4.04167 0.620865C4.04167 0.361018 3.7275 0.230885 3.54376 0.414625L0.164575 3.79381C0.0506717 3.90772 0.0506715 4.09239 0.164574 4.20629Z",
247
+ fill: "#363B3F"
248
+ }))));
249
+ }), hiddenPointers.map(function (item) {
250
+ return /*#__PURE__*/_react.default.createElement("div", {
251
+ className: "flex gap-4 cursor-pointer hide-btn align-center",
252
+ style: {
253
+ height: context.columnHeaderHeight - 12,
254
+ left: "".concat(item.left + 6, "px")
255
+ },
256
+ onClick: function onClick(e) {
257
+ return showColumn(e, item);
258
+ }
259
+ }, /*#__PURE__*/_react.default.createElement("div", {
260
+ className: ""
261
+ }, /*#__PURE__*/_react.default.createElement("svg", {
262
+ xmlns: "http://www.w3.org/2000/svg",
263
+ width: "5",
264
+ height: "8",
265
+ viewBox: "0 0 5 8",
266
+ fill: "none"
267
+ }, /*#__PURE__*/_react.default.createElement("path", {
268
+ d: "M4.68811 4.35359L1.81188 7.22982C1.4969 7.5448 0.958328 7.32172 0.958328 6.87627L0.958328 1.12381C0.958328 0.678362 1.4969 0.455279 1.81188 0.770261L4.68811 3.64649C4.88337 3.84175 4.88337 4.15833 4.68811 4.35359Z",
269
+ fill: "#363B3F"
270
+ }))));
271
+ }), /*#__PURE__*/_react.default.createElement("div", {
189
272
  className: "fortune-cols-freeze-handle",
190
273
  onMouseDown: onColFreezeHandleMouseDown,
191
274
  style: {
@@ -208,7 +291,7 @@ var ColumnHeader = function ColumnHeader() {
208
291
  display: "block"
209
292
  }, (0, _fortuneCore.fixColumnStyleOverflowInFreeze)(context, hoverLocation.col_index, hoverLocation.col_index, (_a = refs.globalCache.freezen) === null || _a === void 0 ? void 0 : _a[context.currentSheetId]))
210
293
  }, allowEditRef.current && (/*#__PURE__*/_react.default.createElement("span", {
211
- className: "header-arrow",
294
+ className: "header-arrow mr-2",
212
295
  onClick: function onClick(e) {
213
296
  setContext(function (ctx) {
214
297
  ctx.contextMenu = {
@@ -75,6 +75,17 @@ var FormulaHint = function FormulaHint(props) {
75
75
  var divOffset = ((_d = hintRef.current) === null || _d === void 0 ? void 0 : _d.offsetHeight) || 0;
76
76
  setTop(hintAbove ? selectionHeight - (divOffset + 30) : selectionHeight + 4);
77
77
  };
78
+ var hexToRgbString = function hexToRgbString(hex) {
79
+ hex = hex.replace("#", "");
80
+ var r = parseInt(hex.substring(0, 2), 16);
81
+ var g = parseInt(hex.substring(2, 4), 16);
82
+ var b = parseInt(hex.substring(4, 6), 16);
83
+ return "".concat(r, ", ").concat(g, ", ").concat(b);
84
+ };
85
+ var bgColor = function bgColor(BRAND_SECONDARY_COLOR) {
86
+ var bg = BRAND_SECONDARY_COLOR ? "rgb(".concat(hexToRgbString(BRAND_SECONDARY_COLOR), ", 0.4)") : "#FFDF0A";
87
+ return bg;
88
+ };
78
89
  (0, _react.useEffect)(function () {
79
90
  calcuatePopUpPlacement();
80
91
  }, []);
@@ -198,7 +209,7 @@ var FormulaHint = function FormulaHint(props) {
198
209
  dir: "auto",
199
210
  key: name,
200
211
  style: {
201
- backgroundColor: commaCount === i ? (fn === null || fn === void 0 ? void 0 : fn.BRAND_SECONDARY_COLOR) || "#FFDF0A" : "transparent"
212
+ backgroundColor: commaCount === i ? bgColor(fn.BRAND_SECONDARY_COLOR) : "transparent"
202
213
  }
203
214
  }, name, i !== fn.p.length - 1 && ", ");
204
215
  })), /*#__PURE__*/_react.default.createElement("code", {
@@ -374,7 +385,7 @@ var FormulaHint = function FormulaHint(props) {
374
385
  }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("code", {
375
386
  className: "font-family-mono mb-1 mt-2 color-text-default font-family-mono",
376
387
  style: {
377
- backgroundColor: commaCount === index ? (fn === null || fn === void 0 ? void 0 : fn.BRAND_SECONDARY_COLOR) || "#FFDF0A" : "transparent"
388
+ backgroundColor: commaCount === index ? bgColor(fn.BRAND_SECONDARY_COLOR) : "transparent"
378
389
  }
379
390
  }, param.name, param.repeat === "y" && (/*#__PURE__*/_react.default.createElement("span", {
380
391
  className: "luckysheet-arguments-help-argument-info example-value",
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _fortuneCore = require("@fileverse-dev/fortune-core");
9
+ var _api = require("@fileverse-dev/fortune-core/src/api");
9
10
  var _lodash = _interopRequireDefault(require("lodash"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _context = _interopRequireDefault(require("../../context"));
@@ -76,7 +77,13 @@ var RowHeader = function RowHeader() {
76
77
  getRowIndexClicked = _f.getRowIndexClicked,
77
78
  isRowDoubleClicked = _f.isRowDoubleClicked;
78
79
  var onMouseDown = (0, _react.useCallback)(function (e) {
79
- if (e.button !== 0) return;
80
+ if (e.button === 0 && e.target.tagName === "use" || e.button === 2) {
81
+ var nativeEvent_1 = e.nativeEvent;
82
+ setContext(function (draft) {
83
+ (0, _fortuneCore.handleRowHeaderMouseDown)(draft, refs.globalCache, nativeEvent_1, containerRef.current, refs.cellInput.current, refs.fxInput.current);
84
+ });
85
+ }
86
+ if (e.button !== 0 || context.isFlvReadOnly) return;
80
87
  var targetEl = e.target;
81
88
  if (targetEl.closest(".fortune-rows-change-size") || targetEl.closest(".fortune-rows-freeze-handle")) return;
82
89
  var headerEl = containerRef.current;
@@ -88,9 +95,9 @@ var RowHeader = function RowHeader() {
88
95
  draft.luckysheet_scroll_status = true;
89
96
  });
90
97
  } else {
91
- var nativeEvent_1 = e.nativeEvent;
98
+ var nativeEvent_2 = e.nativeEvent;
92
99
  setContext(function (draft) {
93
- (0, _fortuneCore.handleRowHeaderMouseDown)(draft, refs.globalCache, nativeEvent_1, containerRef.current, refs.cellInput.current, refs.fxInput.current);
100
+ (0, _fortuneCore.handleRowHeaderMouseDown)(draft, refs.globalCache, nativeEvent_2, containerRef.current, refs.cellInput.current, refs.fxInput.current);
94
101
  });
95
102
  return;
96
103
  }
@@ -156,6 +163,43 @@ var RowHeader = function RowHeader() {
156
163
  }
157
164
  setSelectedLocation(selects);
158
165
  }, [context.luckysheet_select_save, context.visibledatarow]);
166
+ var _g = (0, _react.useState)([]),
167
+ hiddenPointers = _g[0],
168
+ setHiddenPointers = _g[1];
169
+ (0, _react.useEffect)(function () {
170
+ var _a, _b;
171
+ if (sheetIndex == null) return;
172
+ var tempPointers = [];
173
+ var rowhidden = (_b = (_a = context.luckysheetfile[sheetIndex]) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.rowhidden;
174
+ if (rowhidden) {
175
+ Object.keys(rowhidden).forEach(function (key) {
176
+ var item = {
177
+ row: key,
178
+ top: context.visibledatarow[Number(key) - 1]
179
+ };
180
+ tempPointers.push(item);
181
+ });
182
+ setHiddenPointers(tempPointers);
183
+ } else {
184
+ setHiddenPointers([]);
185
+ }
186
+ }, [context.visibledatarow, sheetIndex]);
187
+ var showRow = function showRow(e, item) {
188
+ if (context.isFlvReadOnly) return;
189
+ e.stopPropagation();
190
+ setContext(function (ctx) {
191
+ var _a;
192
+ (0, _api.setSelection)(ctx, [{
193
+ row: [Number(item.row) - 1, Number(item.row) + 1],
194
+ column: [0, (_a = context.visibledatacolumn) === null || _a === void 0 ? void 0 : _a.length]
195
+ }], {
196
+ id: context.currentSheetId
197
+ });
198
+ });
199
+ setContext(function (ctx) {
200
+ (0, _fortuneCore.showSelected)(ctx, "row");
201
+ });
202
+ };
159
203
  (0, _react.useEffect)(function () {
160
204
  containerRef.current.scrollTop = context.scrollTop;
161
205
  }, [context.scrollTop]);
@@ -170,7 +214,40 @@ var RowHeader = function RowHeader() {
170
214
  onMouseDown: onMouseDown,
171
215
  onMouseLeave: onMouseLeave,
172
216
  onContextMenu: onContextMenu
173
- }, /*#__PURE__*/_react.default.createElement("div", {
217
+ }, hiddenPointers.map(function (item) {
218
+ return /*#__PURE__*/_react.default.createElement("div", {
219
+ className: "flex flex-col gap-4 cursor-pointer align-center hide-btn-row hide-btn",
220
+ style: {
221
+ top: "".concat(item.top - 16, "px"),
222
+ zIndex: 100
223
+ },
224
+ onClick: function onClick(e) {
225
+ return showRow(e, item);
226
+ }
227
+ }, /*#__PURE__*/_react.default.createElement("div", {
228
+ className: "rotate-row-icon"
229
+ }, /*#__PURE__*/_react.default.createElement("svg", {
230
+ xmlns: "http://www.w3.org/2000/svg",
231
+ width: "5",
232
+ height: "8",
233
+ viewBox: "0 0 5 8",
234
+ fill: "none"
235
+ }, /*#__PURE__*/_react.default.createElement("path", {
236
+ d: "M0.164574 4.20629L3.54376 7.58548C3.7275 7.76922 4.04167 7.63909 4.04167 7.37924L4.04167 0.620865C4.04167 0.361018 3.7275 0.230885 3.54376 0.414625L0.164575 3.79381C0.0506717 3.90772 0.0506715 4.09239 0.164574 4.20629Z",
237
+ fill: "#363B3F"
238
+ }))), /*#__PURE__*/_react.default.createElement("div", {
239
+ className: "rotate-90"
240
+ }, /*#__PURE__*/_react.default.createElement("svg", {
241
+ xmlns: "http://www.w3.org/2000/svg",
242
+ width: "5",
243
+ height: "8",
244
+ viewBox: "0 0 5 8",
245
+ fill: "none"
246
+ }, /*#__PURE__*/_react.default.createElement("path", {
247
+ d: "M0.164574 4.20629L3.54376 7.58548C3.7275 7.76922 4.04167 7.63909 4.04167 7.37924L4.04167 0.620865C4.04167 0.361018 3.7275 0.230885 3.54376 0.414625L0.164575 3.79381C0.0506717 3.90772 0.0506715 4.09239 0.164574 4.20629Z",
248
+ fill: "#363B3F"
249
+ }))));
250
+ }), /*#__PURE__*/_react.default.createElement("div", {
174
251
  className: "fortune-rows-freeze-handle",
175
252
  onMouseDown: onRowFreezeHandleMouseDown,
176
253
  style: {
@@ -1010,4 +1010,27 @@
1010
1010
  background: #555;
1011
1011
  /* darker on hover */
1012
1012
  /* scrollbar */
1013
- }
1013
+ }
1014
+
1015
+ .hide-btn {
1016
+ padding-top: 1px;
1017
+ position: absolute;
1018
+ right: 5;
1019
+ top: 5px;
1020
+ z-index: 200;
1021
+ width: 9px;
1022
+ }
1023
+
1024
+ .hide-btn:hover {
1025
+ border: 1px solid #0188fb;
1026
+ }
1027
+
1028
+ .rotate-row-icon {
1029
+ transform: rotate(-90deg);
1030
+ }
1031
+
1032
+ .hide-btn-row {
1033
+ position: absolute;
1034
+ left: 4px;
1035
+ z-index: 200;
1036
+ }