@univerjs/sheets-ui 0.21.1 → 0.22.0

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/lib/cjs/index.js CHANGED
@@ -70,6 +70,16 @@ function whenSheetFocused(contextService) {
70
70
  function whenSheetEditorFocused(contextService) {
71
71
  return contextService.getContextValue(_univerjs_core.FOCUSING_SHEET) && contextService.getContextValue(_univerjs_core.FOCUSING_UNIVER_EDITOR) && !contextService.getContextValue(_univerjs_core.EDITOR_ACTIVATED) && !contextService.getContextValue(_univerjs_core.FOCUSING_COMMON_DRAWINGS);
72
72
  }
73
+ /**
74
+ * Requires the currently focused unit to be Workbook, regardless of whether the cell editor is activated.
75
+ * Used by inline-format shortcuts (bold/italic/underline/strikethrough) so they can also fire
76
+ * inside the cell editor — the corresponding command will route to the docs inline-format command
77
+ * when EDITOR_ACTIVATED is true.
78
+ * @param contextService
79
+ */
80
+ function whenSheetFocusedInlineFormat(contextService) {
81
+ return contextService.getContextValue(_univerjs_core.FOCUSING_SHEET) && contextService.getContextValue(_univerjs_core.FOCUSING_UNIVER_EDITOR) && !contextService.getContextValue(_univerjs_core.FOCUSING_COMMON_DRAWINGS);
82
+ }
73
83
  function whenSheetEditorFocusedAndFxNotFocused(contextService) {
74
84
  return contextService.getContextValue(_univerjs_core.FOCUSING_SHEET) && contextService.getContextValue(_univerjs_core.FOCUSING_UNIVER_EDITOR) && !contextService.getContextValue(_univerjs_core.EDITOR_ACTIVATED) && !contextService.getContextValue(_univerjs_core.FOCUSING_FX_BAR_EDITOR) && !contextService.getContextValue(_univerjs_core.FOCUSING_COMMON_DRAWINGS);
75
85
  }
@@ -204,7 +214,7 @@ let SHEET_VIEW_KEY = /* @__PURE__ */ function(SHEET_VIEW_KEY) {
204
214
  }({});
205
215
 
206
216
  //#endregion
207
- //#region \0@oxc-project+runtime@0.124.0/helpers/typeof.js
217
+ //#region \0@oxc-project+runtime@0.129.0/helpers/typeof.js
208
218
  function _typeof(o) {
209
219
  "@babel/helpers - typeof";
210
220
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -215,7 +225,7 @@ function _typeof(o) {
215
225
  }
216
226
 
217
227
  //#endregion
218
- //#region \0@oxc-project+runtime@0.124.0/helpers/toPrimitive.js
228
+ //#region \0@oxc-project+runtime@0.129.0/helpers/toPrimitive.js
219
229
  function toPrimitive(t, r) {
220
230
  if ("object" != _typeof(t) || !t) return t;
221
231
  var e = t[Symbol.toPrimitive];
@@ -228,14 +238,14 @@ function toPrimitive(t, r) {
228
238
  }
229
239
 
230
240
  //#endregion
231
- //#region \0@oxc-project+runtime@0.124.0/helpers/toPropertyKey.js
241
+ //#region \0@oxc-project+runtime@0.129.0/helpers/toPropertyKey.js
232
242
  function toPropertyKey(t) {
233
243
  var i = toPrimitive(t, "string");
234
244
  return "symbol" == _typeof(i) ? i : i + "";
235
245
  }
236
246
 
237
247
  //#endregion
238
- //#region \0@oxc-project+runtime@0.124.0/helpers/defineProperty.js
248
+ //#region \0@oxc-project+runtime@0.129.0/helpers/defineProperty.js
239
249
  function _defineProperty(e, r, t) {
240
250
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
241
251
  value: t,
@@ -376,7 +386,7 @@ const SetRowHeaderWidthCommand = {
376
386
  if (render) {
377
387
  renderManagerSrv.getRenderById(unitId).with(SheetSkeletonManagerService).setRowHeaderSize(render, subUnitId, size);
378
388
  const { components } = render;
379
- const renderComponent = components.get(SHEET_VIEW_KEY.ROW);
389
+ const renderComponent = components.get("__SpreadsheetRowHeader__");
380
390
  if (renderComponent) renderComponent.setCustomHeader({ headerStyle: { size } }, subUnitId);
381
391
  }
382
392
  return true;
@@ -394,7 +404,7 @@ const SetColumnHeaderHeightCommand = {
394
404
  if (render) {
395
405
  renderManagerSrv.getRenderById(unitId).with(SheetSkeletonManagerService).setColumnHeaderSize(render, subUnitId, size);
396
406
  const { components } = render;
397
- const renderComponent = components.get(SHEET_VIEW_KEY.COLUMN);
407
+ const renderComponent = components.get("__SpreadsheetColumnHeader__");
398
408
  if (renderComponent) renderComponent.setCustomHeader({ headerStyle: { size } }, subUnitId);
399
409
  }
400
410
  return true;
@@ -983,7 +993,7 @@ function genSelectionByRange(skeleton, range) {
983
993
  }
984
994
 
985
995
  //#endregion
986
- //#region \0@oxc-project+runtime@0.124.0/helpers/decorateParam.js
996
+ //#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
987
997
  function __decorateParam(paramIndex, decorator) {
988
998
  return function(target, key) {
989
999
  decorator(target, key, paramIndex);
@@ -991,7 +1001,7 @@ function __decorateParam(paramIndex, decorator) {
991
1001
  }
992
1002
 
993
1003
  //#endregion
994
- //#region \0@oxc-project+runtime@0.124.0/helpers/decorate.js
1004
+ //#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
995
1005
  function __decorate(decorators, target, key, desc) {
996
1006
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
997
1007
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -1792,41 +1802,6 @@ var SelectionShapeExtension = class {
1792
1802
 
1793
1803
  //#endregion
1794
1804
  //#region src/services/selection/selection-control.ts
1795
- let SELECTION_MANAGER_KEY = /* @__PURE__ */ function(SELECTION_MANAGER_KEY) {
1796
- SELECTION_MANAGER_KEY["Selection"] = "__SpreadsheetSelectionShape__";
1797
- SELECTION_MANAGER_KEY["top"] = "__SpreadsheetSelectionTopControl__";
1798
- SELECTION_MANAGER_KEY["bottom"] = "__SpreadsheetSelectionBottomControl__";
1799
- SELECTION_MANAGER_KEY["left"] = "__SpreadsheetSelectionShapeLeftControl__";
1800
- SELECTION_MANAGER_KEY["right"] = "__SpreadsheetSelectionShapeRightControl__";
1801
- SELECTION_MANAGER_KEY["backgroundTop"] = "__SpreadsheetSelectionBackgroundControlTop__";
1802
- SELECTION_MANAGER_KEY["backgroundMiddleLeft"] = "__SpreadsheetSelectionBackgroundControlMiddleLeft__";
1803
- SELECTION_MANAGER_KEY["backgroundMiddleRight"] = "__SpreadsheetSelectionBackgroundControlMiddleRight__";
1804
- SELECTION_MANAGER_KEY["backgroundBottom"] = "__SpreadsheetSelectionBackgroundControlBottom__";
1805
- SELECTION_MANAGER_KEY["fill"] = "__SpreadsheetSelectionFillControl__";
1806
- SELECTION_MANAGER_KEY["fillTopLeft"] = "__SpreadsheetSelectionFillControlTopLeft__";
1807
- SELECTION_MANAGER_KEY["fillBottomRight"] = "__SpreadsheetSelectionFillControlBottomRight__";
1808
- SELECTION_MANAGER_KEY["fillTopLeftInner"] = "__SpreadsheetSelectionFillControlTopLeftInner__";
1809
- SELECTION_MANAGER_KEY["fillBottomRightInner"] = "__SpreadsheetSelectionFillControlBottomRightInner__";
1810
- SELECTION_MANAGER_KEY["lineMain"] = "__SpreadsheetDragLineMainControl__";
1811
- SELECTION_MANAGER_KEY["lineContent"] = "__SpreadsheetDragLineContentControl__";
1812
- SELECTION_MANAGER_KEY["line"] = "__SpreadsheetDragLineControl__";
1813
- SELECTION_MANAGER_KEY["dash"] = "__SpreadsheetDragDashControl__";
1814
- SELECTION_MANAGER_KEY["rowHeaderBackground"] = "__SpreadSheetSelectionRowHeaderBackground__";
1815
- SELECTION_MANAGER_KEY["rowHeaderBorder"] = "__SpreadSheetSelectionRowHeaderBorder__";
1816
- SELECTION_MANAGER_KEY["rowHeaderGroup"] = "__SpreadSheetSelectionRowHeaderGroup__";
1817
- SELECTION_MANAGER_KEY["columnHeaderBackground"] = "__SpreadSheetSelectionColumnHeaderBackground__";
1818
- SELECTION_MANAGER_KEY["columnHeaderBorder"] = "__SpreadSheetSelectionColumnHeaderBorder__";
1819
- SELECTION_MANAGER_KEY["columnHeaderGroup"] = "__SpreadSheetSelectionColumnHeaderGroup__";
1820
- SELECTION_MANAGER_KEY["topLeftWidget"] = "__SpreadSheetSelectionTopLeftWidget__";
1821
- SELECTION_MANAGER_KEY["topCenterWidget"] = "__SpreadSheetSelectionTopCenterWidget__";
1822
- SELECTION_MANAGER_KEY["topRightWidget"] = "__SpreadSheetSelectionTopRightWidget__";
1823
- SELECTION_MANAGER_KEY["middleLeftWidget"] = "__SpreadSheetSelectionMiddleLeftWidget__";
1824
- SELECTION_MANAGER_KEY["middleRightWidget"] = "__SpreadSheetSelectionMiddleRightWidget__";
1825
- SELECTION_MANAGER_KEY["bottomLeftWidget"] = "__SpreadSheetSelectionBottomLeftWidget__";
1826
- SELECTION_MANAGER_KEY["bottomCenterWidget"] = "__SpreadSheetSelectionBottomCenterWidget__";
1827
- SELECTION_MANAGER_KEY["bottomRightWidget"] = "__SpreadSheetSelectionBottomRightWidget__";
1828
- return SELECTION_MANAGER_KEY;
1829
- }({});
1830
1805
  const SELECTION_TITLE_HIGHLIGHT_ALPHA = .3;
1831
1806
  /**
1832
1807
  * The main selection canvas component, includes leftControl,rightControl,topControl,bottomControl,backgroundControlTop,backgroundControlMiddleLeft,backgroundControlMiddleRight,backgroundControlBottom,fillControl
@@ -1897,29 +1872,29 @@ var SelectionControl = class extends _univerjs_core.Disposable {
1897
1872
  this._currentStyle = genNormalSelectionStyle(this._themeService);
1898
1873
  this._selectionRenderModel = new SelectionRenderModel();
1899
1874
  const zIndex = this._zIndex;
1900
- this._leftBorder = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.left + zIndex, { zIndex });
1901
- this._rightBorder = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.right + zIndex, { zIndex });
1902
- this._topBorder = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.top + zIndex, { zIndex });
1903
- this._bottomBorder = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.bottom + zIndex, { zIndex });
1904
- this._backgroundControlTop = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.backgroundTop + zIndex, {
1875
+ this._leftBorder = new _univerjs_engine_render.Rect("__SpreadsheetSelectionShapeLeftControl__" + zIndex, { zIndex });
1876
+ this._rightBorder = new _univerjs_engine_render.Rect("__SpreadsheetSelectionShapeRightControl__" + zIndex, { zIndex });
1877
+ this._topBorder = new _univerjs_engine_render.Rect("__SpreadsheetSelectionTopControl__" + zIndex, { zIndex });
1878
+ this._bottomBorder = new _univerjs_engine_render.Rect("__SpreadsheetSelectionBottomControl__" + zIndex, { zIndex });
1879
+ this._backgroundControlTop = new _univerjs_engine_render.Rect("__SpreadsheetSelectionBackgroundControlTop__" + zIndex, {
1905
1880
  zIndex: zIndex - 1,
1906
1881
  evented: false
1907
1882
  });
1908
- this._backgroundControlBottom = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.backgroundBottom + zIndex, {
1883
+ this._backgroundControlBottom = new _univerjs_engine_render.Rect("__SpreadsheetSelectionBackgroundControlBottom__" + zIndex, {
1909
1884
  zIndex: zIndex - 1,
1910
1885
  evented: false
1911
1886
  });
1912
- this._backgroundControlMiddleLeft = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.backgroundMiddleLeft + zIndex, {
1887
+ this._backgroundControlMiddleLeft = new _univerjs_engine_render.Rect("__SpreadsheetSelectionBackgroundControlMiddleLeft__" + zIndex, {
1913
1888
  zIndex: zIndex - 1,
1914
1889
  evented: false
1915
1890
  });
1916
- this._backgroundControlMiddleRight = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.backgroundMiddleRight + zIndex, {
1891
+ this._backgroundControlMiddleRight = new _univerjs_engine_render.Rect("__SpreadsheetSelectionBackgroundControlMiddleRight__" + zIndex, {
1917
1892
  zIndex: zIndex - 1,
1918
1893
  evented: false
1919
1894
  });
1920
- this._autoFillControl = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.fill + zIndex, { zIndex: zIndex + 1 });
1895
+ this._autoFillControl = new _univerjs_engine_render.Rect("__SpreadsheetSelectionFillControl__" + zIndex, { zIndex: zIndex + 1 });
1921
1896
  this._autoFillControl.hide();
1922
- this._dashedRect = new _univerjs_engine_render.DashedRect(SELECTION_MANAGER_KEY.dash + zIndex, {
1897
+ this._dashedRect = new _univerjs_engine_render.DashedRect("__SpreadsheetDragDashControl__" + zIndex, {
1923
1898
  zIndex: zIndex + 2,
1924
1899
  evented: false,
1925
1900
  stroke: "#fff"
@@ -1937,7 +1912,7 @@ var SelectionControl = class extends _univerjs_core.Disposable {
1937
1912
  this._dashedRect
1938
1913
  ];
1939
1914
  this._widgetRects = this._initialWidget();
1940
- this._selectionShapeGroup = new _univerjs_engine_render.Group(SELECTION_MANAGER_KEY.Selection + zIndex, ...shapes, ...this._widgetRects);
1915
+ this._selectionShapeGroup = new _univerjs_engine_render.Group("__SpreadsheetSelectionShape__" + zIndex, ...shapes, ...this._widgetRects);
1941
1916
  this._selectionShapeGroup.hide();
1942
1917
  this._selectionShapeGroup.evented = false;
1943
1918
  this._selectionShapeGroup.zIndex = zIndex;
@@ -1951,27 +1926,27 @@ var SelectionControl = class extends _univerjs_core.Disposable {
1951
1926
  }
1952
1927
  _initialHeader() {
1953
1928
  const zIndex = this._zIndex;
1954
- this._rowHeaderBackground = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.rowHeaderBackground + zIndex, {
1929
+ this._rowHeaderBackground = new _univerjs_engine_render.Rect("__SpreadSheetSelectionRowHeaderBackground__" + zIndex, {
1955
1930
  zIndex: zIndex - 1,
1956
1931
  evented: false
1957
1932
  });
1958
- this._rowHeaderBorder = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.rowHeaderBorder + zIndex, {
1933
+ this._rowHeaderBorder = new _univerjs_engine_render.Rect("__SpreadSheetSelectionRowHeaderBorder__" + zIndex, {
1959
1934
  zIndex: zIndex - 1,
1960
1935
  evented: false
1961
1936
  });
1962
- this._rowHeaderGroup = new _univerjs_engine_render.Group(SELECTION_MANAGER_KEY.rowHeaderGroup + zIndex, this._rowHeaderBackground, this._rowHeaderBorder);
1937
+ this._rowHeaderGroup = new _univerjs_engine_render.Group("__SpreadSheetSelectionRowHeaderGroup__" + zIndex, this._rowHeaderBackground, this._rowHeaderBorder);
1963
1938
  this._rowHeaderGroup.hide();
1964
1939
  this._rowHeaderGroup.evented = false;
1965
1940
  this._rowHeaderGroup.zIndex = zIndex;
1966
- this._columnHeaderBackground = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.columnHeaderBackground + zIndex, {
1941
+ this._columnHeaderBackground = new _univerjs_engine_render.Rect("__SpreadSheetSelectionColumnHeaderBackground__" + zIndex, {
1967
1942
  zIndex: zIndex - 1,
1968
1943
  evented: false
1969
1944
  });
1970
- this._columnHeaderBorder = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.columnHeaderBorder + zIndex, {
1945
+ this._columnHeaderBorder = new _univerjs_engine_render.Rect("__SpreadSheetSelectionColumnHeaderBorder__" + zIndex, {
1971
1946
  zIndex: zIndex - 1,
1972
1947
  evented: false
1973
1948
  });
1974
- this._columnHeaderGroup = new _univerjs_engine_render.Group(SELECTION_MANAGER_KEY.columnHeaderGroup + zIndex, this._columnHeaderBackground, this._columnHeaderBorder);
1949
+ this._columnHeaderGroup = new _univerjs_engine_render.Group("__SpreadSheetSelectionColumnHeaderGroup__" + zIndex, this._columnHeaderBackground, this._columnHeaderBorder);
1975
1950
  this._columnHeaderGroup.hide();
1976
1951
  this._columnHeaderGroup.evented = false;
1977
1952
  this._columnHeaderGroup.zIndex = zIndex;
@@ -1979,14 +1954,14 @@ var SelectionControl = class extends _univerjs_core.Disposable {
1979
1954
  }
1980
1955
  _initialWidget() {
1981
1956
  const zIndex = this._zIndex;
1982
- this._topLeftWidget = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.topLeftWidget + zIndex, { zIndex: zIndex + 1 });
1983
- this._topCenterWidget = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.topCenterWidget + zIndex, { zIndex: zIndex + 1 });
1984
- this._topRightWidget = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.topRightWidget + zIndex, { zIndex: zIndex + 1 });
1985
- this._middleLeftWidget = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.middleLeftWidget + zIndex, { zIndex: zIndex + 1 });
1986
- this._middleRightWidget = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.middleRightWidget + zIndex, { zIndex: zIndex + 1 });
1987
- this._bottomLeftWidget = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.bottomLeftWidget + zIndex, { zIndex: zIndex + 1 });
1988
- this._bottomCenterWidget = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.bottomCenterWidget + zIndex, { zIndex: zIndex + 1 });
1989
- this._bottomRightWidget = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.bottomRightWidget + zIndex, { zIndex: zIndex + 1 });
1957
+ this._topLeftWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionTopLeftWidget__" + zIndex, { zIndex: zIndex + 1 });
1958
+ this._topCenterWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionTopCenterWidget__" + zIndex, { zIndex: zIndex + 1 });
1959
+ this._topRightWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionTopRightWidget__" + zIndex, { zIndex: zIndex + 1 });
1960
+ this._middleLeftWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionMiddleLeftWidget__" + zIndex, { zIndex: zIndex + 1 });
1961
+ this._middleRightWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionMiddleRightWidget__" + zIndex, { zIndex: zIndex + 1 });
1962
+ this._bottomLeftWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionBottomLeftWidget__" + zIndex, { zIndex: zIndex + 1 });
1963
+ this._bottomCenterWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionBottomCenterWidget__" + zIndex, { zIndex: zIndex + 1 });
1964
+ this._bottomRightWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionBottomRightWidget__" + zIndex, { zIndex: zIndex + 1 });
1990
1965
  return [
1991
1966
  this._topLeftWidget,
1992
1967
  this._topCenterWidget,
@@ -2620,7 +2595,7 @@ var SelectionControl = class extends _univerjs_core.Disposable {
2620
2595
 
2621
2596
  //#endregion
2622
2597
  //#region src/services/mark-selection/mark-selection.service.ts
2623
- const DEFAULT_Z_INDEX = SELECTION_SHAPE_DEPTH.MARK_SELECTION;
2598
+ const DEFAULT_Z_INDEX = 1e4;
2624
2599
  const IMarkSelectionService = (0, _univerjs_core.createIdentifier)("univer.mark-selection-service");
2625
2600
  let MarkSelectionService = class MarkSelectionService extends _univerjs_core.Disposable {
2626
2601
  constructor(_currentService, _sheetSkeletonService, _renderManagerService, _themeService) {
@@ -3000,6 +2975,7 @@ var HtmlToUSMService = class HtmlToUSMService {
3000
2975
  _defineProperty(this, "_styleRules", []);
3001
2976
  _defineProperty(this, "_afterProcessRules", []);
3002
2977
  _defineProperty(this, "_dom", null);
2978
+ _defineProperty(this, "_msoNumfmtMap", /* @__PURE__ */ new Map());
3003
2979
  _defineProperty(this, "_getCurrentSkeleton", void 0);
3004
2980
  this._getCurrentSkeleton = props.getCurrentSkeleton;
3005
2981
  }
@@ -3013,6 +2989,8 @@ var HtmlToUSMService = class HtmlToUSMService {
3013
2989
  this._dom = parseToDom(html);
3014
2990
  const style = this._dom.querySelector("style");
3015
2991
  if (style) {
2992
+ var _style$textContent;
2993
+ this._parseMsoNumfmtFromCssText((_style$textContent = style.textContent) !== null && _style$textContent !== void 0 ? _style$textContent : "");
3016
2994
  const shadowHost = document.createElement("div");
3017
2995
  const shadowRoot = shadowHost.attachShadow({ mode: "open" });
3018
2996
  document.body.appendChild(shadowHost);
@@ -3108,6 +3086,40 @@ var HtmlToUSMService = class HtmlToUSMService {
3108
3086
  cellMatrix: valueMatrix
3109
3087
  };
3110
3088
  }
3089
+ /**
3090
+ * Parse mso-number-format from raw CSS text before the browser drops proprietary properties.
3091
+ * Must be called with style.textContent BEFORE the style element is moved into a shadow DOM.
3092
+ */
3093
+ _parseMsoNumfmtFromCssText(rawCssText) {
3094
+ const ruleRegex = /([^{]+)\{([^}]*)\}/g;
3095
+ let match;
3096
+ while ((match = ruleRegex.exec(rawCssText)) !== null) {
3097
+ const selectors = match[1].trim();
3098
+ const numfmtMatch = match[2].match(/mso-number-format\s*:\s*("(?:[^"\\]|\\.)*"|[^;]+)/i);
3099
+ if (!numfmtMatch) continue;
3100
+ let value = numfmtMatch[1].trim();
3101
+ if (value.startsWith("\"") && value.endsWith("\"")) value = value.slice(1, -1);
3102
+ const decoded = decodeMsoNumberFormat(value);
3103
+ selectors.split(",").forEach((sel) => {
3104
+ this._msoNumfmtMap.set(sel.trim(), decoded);
3105
+ });
3106
+ }
3107
+ }
3108
+ /**
3109
+ * Get the mso-number-format value for a given DOM node,
3110
+ * following the same priority as _getStyle: class > id > tag.
3111
+ */
3112
+ _getMsoNumfmtForNode(node) {
3113
+ for (const className of node.classList) {
3114
+ const fmt = this._msoNumfmtMap.get(`.${className}`);
3115
+ if (fmt) return fmt;
3116
+ }
3117
+ if (node.id) {
3118
+ const fmt = this._msoNumfmtMap.get(`#${node.id}`);
3119
+ if (fmt) return fmt;
3120
+ }
3121
+ return this._msoNumfmtMap.get(node.nodeName.toLowerCase());
3122
+ }
3111
3123
  _getStyleBySelectorText(selectorText, cssText) {
3112
3124
  var _this$_styleMap$get;
3113
3125
  const css = (_this$_styleMap$get = this._styleMap.get(selectorText)) === null || _this$_styleMap$get === void 0 ? void 0 : _this$_styleMap$get.getPropertyValue(cssText);
@@ -3190,6 +3202,13 @@ var HtmlToUSMService = class HtmlToUSMService {
3190
3202
  rowSpan: value.rowSpan,
3191
3203
  colSpan: value.colSpan
3192
3204
  };
3205
+ if (value.numfmtPattern) {
3206
+ cellValue.s = {
3207
+ ...cellValue.s,
3208
+ n: { pattern: value.numfmtPattern }
3209
+ };
3210
+ cellValue.v = Number(cellValue.v);
3211
+ }
3193
3212
  valueMatrix.setValue(row, col, cellValue);
3194
3213
  });
3195
3214
  return {
@@ -3231,7 +3250,33 @@ var HtmlToUSMService = class HtmlToUSMService {
3231
3250
  if (borderRight && (0, _univerjs_ui.textTrim)(borderRight.substr(borderRight.indexOf(":") + 1)) !== "none") cellStyle = cellStyle.replace(/border-left:[^;]+;/, "");
3232
3251
  }
3233
3252
  }
3234
- const { cellText, cellRichStyle } = this._getCellTextAndRichText(cell, cellStyle, skeleton);
3253
+ let cellText = "";
3254
+ let cellRichStyle;
3255
+ let numfmtPattern;
3256
+ const pattern = this._getMsoNumfmtForNode(cell);
3257
+ if (pattern) {
3258
+ cellText = cell.innerHTML;
3259
+ if (cellText.includes("mso-spacerun:yes")) cellText = cleanMsoSpaceRun(cellText);
3260
+ const parseData = (0, _univerjs_core.getNumfmtParseValueFilter)(cellText);
3261
+ if (typeof (parseData === null || parseData === void 0 ? void 0 : parseData.v) === "number" && (parseData.z === pattern || _univerjs_core.numfmt.format(pattern, parseData.v) === cellText)) {
3262
+ cellText = parseData.v.toString();
3263
+ numfmtPattern = pattern;
3264
+ } else if (parseData && parseData.z) {
3265
+ cellText = parseData.v.toString();
3266
+ numfmtPattern = parseData.z;
3267
+ } else if (!parseData) {
3268
+ const extractedNumber = extractNumber(cellText);
3269
+ if (extractedNumber !== null && !Number.isNaN(extractedNumber) && _univerjs_core.numfmt.format(pattern, extractedNumber) === cellText) {
3270
+ cellText = extractedNumber.toString();
3271
+ numfmtPattern = pattern;
3272
+ }
3273
+ }
3274
+ }
3275
+ if (!numfmtPattern) {
3276
+ const cellTextAndRichText = this._getCellTextAndRichText(cell, cellStyle, skeleton);
3277
+ cellText = cellTextAndRichText.cellText;
3278
+ cellRichStyle = cellTextAndRichText.cellRichStyle;
3279
+ }
3235
3280
  const cellValue = {
3236
3281
  rowSpan,
3237
3282
  colSpan,
@@ -3240,7 +3285,8 @@ var HtmlToUSMService = class HtmlToUSMService {
3240
3285
  richTextParma: {
3241
3286
  p: cellRichStyle,
3242
3287
  v: cellText
3243
- }
3288
+ },
3289
+ numfmtPattern
3244
3290
  };
3245
3291
  if (cellMatrix.getValue(rowIndex, colSetValueIndex)) {
3246
3292
  colSetValueIndex += 1;
@@ -3298,9 +3344,9 @@ var HtmlToUSMService = class HtmlToUSMService {
3298
3344
  * "<span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>1,234.57 "
3299
3345
  */
3300
3346
  if (cell.innerHTML.includes("mso-spacerun:yes")) {
3301
- const cellText = cell.innerHTML.replace(/<span[^>]*mso-spacerun:yes[^>]*>[\s\S]*?<\/span>/gi, "").replace(/\s/g, "");
3347
+ const cellText = cleanMsoSpaceRun(cell.innerHTML);
3302
3348
  const parseInfo = (0, _univerjs_core.getNumfmtParseValueFilter)(cellText);
3303
- if (parseInfo && parseInfo.z && (0, _univerjs_core.isRealNum)(parseInfo.v)) return {
3349
+ if (parseInfo && parseInfo.z && typeof parseInfo.v === "number") return {
3304
3350
  cellText,
3305
3351
  cellRichStyle: void 0
3306
3352
  };
@@ -3420,6 +3466,7 @@ var HtmlToUSMService = class HtmlToUSMService {
3420
3466
  this._dom = null;
3421
3467
  this._styleCache.clear();
3422
3468
  this._styleMap.clear();
3469
+ this._msoNumfmtMap.clear();
3423
3470
  }
3424
3471
  };
3425
3472
  _defineProperty(HtmlToUSMService, "_pluginList", []);
@@ -3518,11 +3565,38 @@ function setMergedCellStyle(cellMatrix, cellStyle, cellValue, indexParams) {
3518
3565
  });
3519
3566
  else cellMatrix.setValue(i, j, { style: cellStyle });
3520
3567
  }
3568
+ /**
3569
+ * Decode mso-number-format value from Excel HTML CSS.
3570
+ * Excel escapes certain characters in CSS with backslash, and uses \0022 for double-quote.
3571
+ * e.g. "_\(* \#\,\#\#0_\)\;_\(* \\\(\#\,\#\#0\\\)\;_\(* \0022-\0022??_\)\;_\(\@_\)"
3572
+ * → "_(* #,##0_);_(* \(#,##0\);_(* \"-\"??_);_(@_)"
3573
+ */
3574
+ function decodeMsoNumberFormat(value) {
3575
+ let result = value.replace(/\\([0-9a-fA-F]{4})/g, (_, hex) => String.fromCharCode(Number.parseInt(hex, 16)));
3576
+ result = result.replace(/\\\\/g, "\0BACKSLASH\0");
3577
+ result = result.replace(/\\([^\\])/g, "$1");
3578
+ result = result.replace(/\x00BACKSLASH\x00/g, "\\");
3579
+ return result;
3580
+ }
3581
+ function cleanMsoSpaceRun(value) {
3582
+ return value.replace(/<span[^>]*mso-spacerun:yes[^>]*>/gi, "").replace(/<\/span>/gi, "").replace(/\u00A0|&nbsp;/gi, "");
3583
+ }
3584
+ function extractNumber(value) {
3585
+ const match = value.match(/\(?-?\d[\d,]*(\.\d+)?%?\)?/);
3586
+ if (!match) return null;
3587
+ let numStr = match[0];
3588
+ const isPercent = numStr.includes("%");
3589
+ numStr = numStr.replace(/[,%]/g, "");
3590
+ if (/^\(.*\)$/.test(numStr)) numStr = `-${numStr.slice(1, -1)}`;
3591
+ let num = Number(numStr);
3592
+ if (isPercent) num = num / 100;
3593
+ return num;
3594
+ }
3521
3595
 
3522
3596
  //#endregion
3523
3597
  //#region src/services/clipboard/html-to-usm/paste-plugins/plugin-lark.ts
3524
3598
  const LarkPastePlugin = {
3525
- name: "univer-doc-paste-plugin-lark",
3599
+ name: "univer-sheet-paste-plugin-lark",
3526
3600
  checkPasteType(html) {
3527
3601
  return /lark-record-clipboard/i.test(html);
3528
3602
  },
@@ -3551,7 +3625,7 @@ const LarkPastePlugin = {
3551
3625
  //#endregion
3552
3626
  //#region src/services/clipboard/html-to-usm/paste-plugins/plugin-univer.ts
3553
3627
  const UniverPastePlugin = {
3554
- name: "univer-doc-paste-plugin-univer",
3628
+ name: "univer-sheet-paste-plugin-univer",
3555
3629
  checkPasteType(html) {
3556
3630
  return /UniverNormal/i.test(html);
3557
3631
  },
@@ -3574,7 +3648,7 @@ const UniverPastePlugin = {
3574
3648
  //#endregion
3575
3649
  //#region src/services/clipboard/html-to-usm/paste-plugins/plugin-word.ts
3576
3650
  const WordPastePlugin = {
3577
- name: "univer-doc-paste-plugin-word",
3651
+ name: "univer-sheet-paste-plugin-word",
3578
3652
  checkPasteType(html) {
3579
3653
  return /word|mso/i.test(html);
3580
3654
  },
@@ -3973,7 +4047,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
3973
4047
  return this._copyContentCache;
3974
4048
  }
3975
4049
  generateCopyContent(workbookId, worksheetId, range, options) {
3976
- const { copyType = COPY_TYPE.COPY, copyHookType = PREDEFINED_HOOK_NAME_COPY.DEFAULT_COPY } = options || {};
4050
+ const { copyType = "COPY", copyHookType = PREDEFINED_HOOK_NAME_COPY.DEFAULT_COPY } = options || {};
3977
4051
  let hooks = this._clipboardHooks;
3978
4052
  if (copyHookType === PREDEFINED_HOOK_NAME_COPY.SPECIAL_COPY_FORMULA_ONLY) hooks = this._clipboardHooks.filter((h) => h.id === copyHookType);
3979
4053
  hooks.forEach((h) => {
@@ -3995,7 +4069,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
3995
4069
  if (!workbook || !worksheet) return false;
3996
4070
  const workbookId = workbook.getUnitId();
3997
4071
  const worksheetId = worksheet.getSheetId();
3998
- const { copyType = COPY_TYPE.COPY, copyHookType = PREDEFINED_HOOK_NAME_COPY.DEFAULT_COPY } = options || {};
4072
+ const { copyType = "COPY", copyHookType = PREDEFINED_HOOK_NAME_COPY.DEFAULT_COPY } = options || {};
3999
4073
  const copyContent = this.generateCopyContent(workbookId, worksheetId, selection.range, {
4000
4074
  copyType,
4001
4075
  copyHookType
@@ -4019,7 +4093,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4019
4093
  return true;
4020
4094
  }
4021
4095
  async cut() {
4022
- return this.copy({ copyType: COPY_TYPE.CUT });
4096
+ return this.copy({ copyType: "CUT" });
4023
4097
  }
4024
4098
  async paste(item, pasteType = PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE) {
4025
4099
  const types = item.types;
@@ -4065,7 +4139,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4065
4139
  const undoRedoService = this._injector.get(_univerjs_core.IUndoRedoService);
4066
4140
  const element = undoRedoService.pitchTopUndoElement();
4067
4141
  if (element) {
4068
- if ((0, _univerjs_core.sequenceExecute)(element.undoMutations, this._commandService)) undoRedoService.popUndoToRedo();
4142
+ if ((0, _univerjs_core.sequenceExecute)(element.undoMutations, this._commandService).result) undoRedoService.popUndoToRedo();
4069
4143
  }
4070
4144
  const { cellMatrix, rowProperties = [], colProperties = [], source, target } = pasteOptionsCache;
4071
4145
  this._pasteUSM({
@@ -4309,7 +4383,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4309
4383
  range.rows.forEach((j) => {
4310
4384
  rowProperties.push({ height: `${rowManager.getRowHeight(j)}` });
4311
4385
  });
4312
- if (cachedData.copyType === COPY_TYPE.CUT) {
4386
+ if (cachedData.copyType === "CUT") {
4313
4387
  const start = pasteTarget.pastedRange.rows[0];
4314
4388
  const end = range.rows[range.rows.length - 1] - range.rows[0] + start;
4315
4389
  pasteTarget.pastedRange.rows = Array.from(new Array(end + 1).keys()).slice(start);
@@ -4325,7 +4399,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4325
4399
  copyType: cachedData.copyType,
4326
4400
  copyId
4327
4401
  });
4328
- if (cachedData.copyType === COPY_TYPE.CUT) {
4402
+ if (cachedData.copyType === "CUT") {
4329
4403
  this._copyContentCache.set(copyId, {
4330
4404
  ...cachedData,
4331
4405
  matrix: null
@@ -4361,7 +4435,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4361
4435
  range: source.range
4362
4436
  } : null;
4363
4437
  const payload = {
4364
- copyType: (source === null || source === void 0 ? void 0 : source.copyType) || COPY_TYPE.COPY,
4438
+ copyType: (source === null || source === void 0 ? void 0 : source.copyType) || "COPY",
4365
4439
  copyId: source === null || source === void 0 ? void 0 : source.copyId,
4366
4440
  pasteType
4367
4441
  };
@@ -4398,7 +4472,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4398
4472
  undoMutationsInfo.push(...contentReturn.undos);
4399
4473
  }
4400
4474
  });
4401
- if (payload.copyType === COPY_TYPE.COPY) {
4475
+ if (payload.copyType === "COPY") {
4402
4476
  const setSelectionOperation = this._getSetSelectionOperation(unitId, subUnitId, pastedRange, cellMatrix, pasteType);
4403
4477
  if (setSelectionOperation) redoMutationsInfo.push(setSelectionOperation);
4404
4478
  }
@@ -4813,6 +4887,7 @@ function getCellTextForClipboard(cell) {
4813
4887
  if ((0, _univerjs_core.isNotNullOrUndefined)(cell.displayV)) return cell.displayV;
4814
4888
  return (0, _univerjs_core.extractPureTextFromCell)(cell);
4815
4889
  }
4890
+ const escapeSpecialCode = (cellStr) => cellStr.replace(/&/g, "&amp;").replace(/\uFEFF/g, "").replace(/</g, "&lt;").replace(/>/g, "&gt;");
4816
4891
  function rowAcrossMergedCell(row, startColumn, endColumn, worksheet) {
4817
4892
  return worksheet.getMergeData().some((mergedCell) => mergedCell.startRow <= row && row < mergedCell.endRow && startColumn <= mergedCell.startColumn && mergedCell.startColumn <= endColumn);
4818
4893
  }
@@ -6167,7 +6242,7 @@ let FormatPainterService = class FormatPainterService extends _univerjs_core.Dis
6167
6242
  _defineProperty(this, "_status$", void 0);
6168
6243
  _defineProperty(this, "_defaultHook", null);
6169
6244
  _defineProperty(this, "_extendHooks", []);
6170
- this._status$ = new rxjs.BehaviorSubject(FormatPainterStatus.OFF);
6245
+ this._status$ = new rxjs.BehaviorSubject(0);
6171
6246
  this.status$ = this._status$.asObservable();
6172
6247
  this._selectionFormat = {
6173
6248
  styles: new _univerjs_core.ObjectMatrix(),
@@ -6238,11 +6313,11 @@ let FormatPainterService = class FormatPainterService extends _univerjs_core.Dis
6238
6313
  }
6239
6314
  _updateRangeMark(status) {
6240
6315
  this._markSelectionService.removeAllShapes();
6241
- if (status !== FormatPainterStatus.OFF) {
6316
+ if (status !== 0) {
6242
6317
  const selection = this._selectionManagerService.getCurrentLastSelection();
6243
6318
  if (selection) {
6244
6319
  const style = createCopyPasteSelectionStyle(this._themeService);
6245
- if (status === FormatPainterStatus.INFINITE) this._markId = this._markSelectionService.addShape({
6320
+ if (status === 2) this._markId = this._markSelectionService.addShape({
6246
6321
  ...selection,
6247
6322
  style
6248
6323
  });
@@ -6283,8 +6358,8 @@ const SetInfiniteFormatPainterCommand = {
6283
6358
  handler: async (accessor) => {
6284
6359
  const status = accessor.get(IFormatPainterService).getStatus();
6285
6360
  let newStatus;
6286
- if (status !== FormatPainterStatus.OFF) newStatus = FormatPainterStatus.OFF;
6287
- else newStatus = FormatPainterStatus.INFINITE;
6361
+ if (status !== 0) newStatus = 0;
6362
+ else newStatus = 2;
6288
6363
  return accessor.get(_univerjs_core.ICommandService).executeCommand(SetFormatPainterOperation.id, { status: newStatus });
6289
6364
  }
6290
6365
  };
@@ -6294,8 +6369,8 @@ const SetOnceFormatPainterCommand = {
6294
6369
  handler: async (accessor) => {
6295
6370
  const status = accessor.get(IFormatPainterService).getStatus();
6296
6371
  let newStatus;
6297
- if (status !== FormatPainterStatus.OFF) newStatus = FormatPainterStatus.OFF;
6298
- else newStatus = FormatPainterStatus.ONCE;
6372
+ if (status !== 0) newStatus = 0;
6373
+ else newStatus = 1;
6299
6374
  return accessor.get(_univerjs_core.ICommandService).executeCommand(SetFormatPainterOperation.id, { status: newStatus });
6300
6375
  }
6301
6376
  };
@@ -6432,14 +6507,6 @@ SheetScrollManagerService = __decorate([__decorateParam(1, (0, _univerjs_core.In
6432
6507
 
6433
6508
  //#endregion
6434
6509
  //#region src/commands/commands/set-frozen.command.ts
6435
- let SetSelectionFrozenType = /* @__PURE__ */ function(SetSelectionFrozenType) {
6436
- SetSelectionFrozenType[SetSelectionFrozenType["RowColumn"] = 0] = "RowColumn";
6437
- SetSelectionFrozenType[SetSelectionFrozenType["Row"] = 1] = "Row";
6438
- SetSelectionFrozenType[SetSelectionFrozenType["Column"] = 2] = "Column";
6439
- SetSelectionFrozenType[SetSelectionFrozenType["FirstRow"] = 3] = "FirstRow";
6440
- SetSelectionFrozenType[SetSelectionFrozenType["FirstColumn"] = 4] = "FirstColumn";
6441
- return SetSelectionFrozenType;
6442
- }({});
6443
6510
  const SetSelectionFrozenCommand = {
6444
6511
  type: _univerjs_core.CommandType.COMMAND,
6445
6512
  id: "sheet.command.set-selection-frozen",
@@ -6458,12 +6525,12 @@ const SetSelectionFrozenCommand = {
6458
6525
  let startColumn;
6459
6526
  let freezedRowCount;
6460
6527
  let freezedColCount;
6461
- if (type === SetSelectionFrozenType.FirstRow) {
6528
+ if (type === 3) {
6462
6529
  startRow = sheetViewStartRow + 1;
6463
6530
  freezedRowCount = 1;
6464
6531
  startColumn = -1;
6465
6532
  freezedColCount = 0;
6466
- } else if (type === SetSelectionFrozenType.FirstColumn) {
6533
+ } else if (type === 4) {
6467
6534
  startRow = -1;
6468
6535
  freezedRowCount = 0;
6469
6536
  startColumn = sheetViewStartColumn + 1;
@@ -6476,12 +6543,12 @@ const SetSelectionFrozenCommand = {
6476
6543
  let selectColumn = (_primary$startColumn = primary === null || primary === void 0 ? void 0 : primary.startColumn) !== null && _primary$startColumn !== void 0 ? _primary$startColumn : range.startColumn;
6477
6544
  if (selectColumn === 0) selectColumn = 1;
6478
6545
  const rangeType = range.rangeType;
6479
- if (rangeType === _univerjs_core.RANGE_TYPE.ROW || type === SetSelectionFrozenType.Row) {
6546
+ if (rangeType === _univerjs_core.RANGE_TYPE.ROW || type === 1) {
6480
6547
  startRow = selectRow;
6481
6548
  freezedRowCount = selectRow - sheetViewStartRow;
6482
6549
  startColumn = -1;
6483
6550
  freezedColCount = 0;
6484
- } else if (rangeType === _univerjs_core.RANGE_TYPE.COLUMN || type === SetSelectionFrozenType.Column) {
6551
+ } else if (rangeType === _univerjs_core.RANGE_TYPE.COLUMN || type === 2) {
6485
6552
  startRow = -1;
6486
6553
  freezedRowCount = 0;
6487
6554
  startColumn = selectColumn;
@@ -6523,7 +6590,7 @@ const SetRowFrozenCommand = {
6523
6590
  type: _univerjs_core.CommandType.COMMAND,
6524
6591
  id: "sheet.command.set-row-frozen",
6525
6592
  handler: async (accessor) => {
6526
- accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: SetSelectionFrozenType.Row });
6593
+ accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: 1 });
6527
6594
  return true;
6528
6595
  }
6529
6596
  };
@@ -6531,7 +6598,7 @@ const SetColumnFrozenCommand = {
6531
6598
  type: _univerjs_core.CommandType.COMMAND,
6532
6599
  id: "sheet.command.set-col-frozen",
6533
6600
  handler: async (accessor) => {
6534
- accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: SetSelectionFrozenType.Column });
6601
+ accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: 2 });
6535
6602
  return true;
6536
6603
  }
6537
6604
  };
@@ -6539,7 +6606,7 @@ const SetFirstRowFrozenCommand = {
6539
6606
  type: _univerjs_core.CommandType.COMMAND,
6540
6607
  id: "sheet.command.set-first-row-frozen",
6541
6608
  handler: async (accessor) => {
6542
- accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: SetSelectionFrozenType.FirstRow });
6609
+ accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: 3 });
6543
6610
  return true;
6544
6611
  }
6545
6612
  };
@@ -6547,7 +6614,7 @@ const SetFirstColumnFrozenCommand = {
6547
6614
  type: _univerjs_core.CommandType.COMMAND,
6548
6615
  id: "sheet.command.set-first-column-frozen",
6549
6616
  handler: async (accessor) => {
6550
- accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: SetSelectionFrozenType.FirstColumn });
6617
+ accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: 4 });
6551
6618
  return true;
6552
6619
  }
6553
6620
  };
@@ -6645,7 +6712,7 @@ const MoveSelectionCommand = {
6645
6712
  }
6646
6713
  }
6647
6714
  const startRange = getStartRange(range, primary, direction);
6648
- const next = jumpOver === JumpOver.moveGap ? findNextGapRange(startRange, direction, worksheet) : findNextRange(startRange, direction, worksheet);
6715
+ const next = jumpOver === 1 ? findNextGapRange(startRange, direction, worksheet) : findNextRange(startRange, direction, worksheet);
6649
6716
  const destRange = (0, _univerjs_sheets.getCellAtRowCol)(next.startRow, next.startColumn, worksheet);
6650
6717
  if (_univerjs_core.Rectangle.equals(destRange, startRange)) return false;
6651
6718
  const unitId = workbook.getUnitId();
@@ -6837,7 +6904,7 @@ const ExpandSelectionCommand = {
6837
6904
  const destRange = !checkIfShrink({
6838
6905
  range: startRange,
6839
6906
  primary
6840
- }, direction, worksheet) ? jumpOver === JumpOver.moveGap ? expandToNextGapRange(startRange, direction, worksheet) : expandToNextCell(startRange, direction, worksheet) : jumpOver === JumpOver.moveGap ? shrinkToNextGapRange(startRange, {
6907
+ }, direction, worksheet) ? jumpOver === 1 ? expandToNextGapRange(startRange, direction, worksheet) : expandToNextCell(startRange, direction, worksheet) : jumpOver === 1 ? shrinkToNextGapRange(startRange, {
6841
6908
  ..._univerjs_core.Rectangle.clone(primary),
6842
6909
  rangeType: _univerjs_core.RANGE_TYPE.NORMAL
6843
6910
  }, direction, worksheet) : shrinkToNextCell(startRange, direction, worksheet);
@@ -6919,8 +6986,7 @@ const SelectAllCommand = {
6919
6986
  params: { range }
6920
6987
  });
6921
6988
  if (interceptor.redos.length) redos.push(...interceptor.redos);
6922
- (0, _univerjs_core.sequenceExecute)(redos, accessor.get(_univerjs_core.ICommandService));
6923
- return true;
6989
+ return (0, _univerjs_core.sequenceExecute)(redos, accessor.get(_univerjs_core.ICommandService)).result;
6924
6990
  }
6925
6991
  };
6926
6992
 
@@ -6954,9 +7020,9 @@ function getSheetObject(univerInstanceService, renderManagerService) {
6954
7020
  if (!components || !mainComponent) return null;
6955
7021
  return {
6956
7022
  spreadsheet: mainComponent,
6957
- spreadsheetRowHeader: components.get(SHEET_VIEW_KEY.ROW),
6958
- spreadsheetColumnHeader: components.get(SHEET_VIEW_KEY.COLUMN),
6959
- spreadsheetLeftTopPlaceholder: components.get(SHEET_VIEW_KEY.LEFT_TOP),
7023
+ spreadsheetRowHeader: components.get("__SpreadsheetRowHeader__"),
7024
+ spreadsheetColumnHeader: components.get("__SpreadsheetColumnHeader__"),
7025
+ spreadsheetLeftTopPlaceholder: components.get("__SpreadsheetLeftTopPlaceholder__"),
6960
7026
  scene,
6961
7027
  engine
6962
7028
  };
@@ -9690,21 +9756,21 @@ let RepeatLastActionService = class RepeatLastActionService extends _univerjs_co
9690
9756
  _defineProperty(this, "_repeatableCommands", new Set(SHEETS_BASIC_REPEATABLE_COMMANDS));
9691
9757
  _defineProperty(this, "_customCommandHandlers", /* @__PURE__ */ new Map());
9692
9758
  _defineProperty(this, "_permissionCheckMap", new Map([
9693
- [RepeatLastActionPermission.Editable, new Set([
9759
+ ["editable", new Set([
9694
9760
  _univerjs_sheets.InsertRowCommand.id,
9695
9761
  _univerjs_sheets.InsertColCommand.id,
9696
9762
  _univerjs_sheets.RemoveRowCommand.id,
9697
9763
  _univerjs_sheets.RemoveColCommand.id
9698
9764
  ])],
9699
- [RepeatLastActionPermission.CellStyle, new Set([
9765
+ ["cellStyle", new Set([
9700
9766
  _univerjs_sheets.SetStyleCommand.id,
9701
9767
  _univerjs_sheets.SetBorderCommand.id,
9702
9768
  _univerjs_sheets.ClearSelectionFormatCommand.id,
9703
9769
  _univerjs_sheets.ClearSelectionAllCommand.id
9704
9770
  ])],
9705
- [RepeatLastActionPermission.CellValue, new Set([_univerjs_sheets.ClearSelectionContentCommand.id, _univerjs_sheets.ClearSelectionAllCommand.id])],
9706
- [RepeatLastActionPermission.RowStyle, new Set([_univerjs_sheets.SetRowHeightCommand.id])],
9707
- [RepeatLastActionPermission.ColumnStyle, new Set([_univerjs_sheets.SetColWidthCommand.id])]
9771
+ ["cellValue", new Set([_univerjs_sheets.ClearSelectionContentCommand.id, _univerjs_sheets.ClearSelectionAllCommand.id])],
9772
+ ["rowStyle", new Set([_univerjs_sheets.SetRowHeightCommand.id])],
9773
+ ["columnStyle", new Set([_univerjs_sheets.SetColWidthCommand.id])]
9708
9774
  ]));
9709
9775
  }
9710
9776
  dispose() {
@@ -9725,13 +9791,13 @@ let RepeatLastActionService = class RepeatLastActionService extends _univerjs_co
9725
9791
  return this._repeatableCommands;
9726
9792
  }
9727
9793
  getActionPermission() {
9728
- if (!this._action) return RepeatLastActionPermission.None;
9794
+ if (!this._action) return "none";
9729
9795
  const permissions = [];
9730
9796
  for (const [permission, commandSet] of this._permissionCheckMap.entries()) if (commandSet.has(this._action.id)) permissions.push(permission);
9731
- if (permissions.length === 0) return RepeatLastActionPermission.None;
9797
+ if (permissions.length === 0) return "none";
9732
9798
  return permissions.length === 1 ? permissions[0] : permissions;
9733
9799
  }
9734
- registerRepeatableCommand(commandId, handler, permissionType = RepeatLastActionPermission.None) {
9800
+ registerRepeatableCommand(commandId, handler, permissionType = "none") {
9735
9801
  var _this$_permissionChec;
9736
9802
  this._repeatableCommands.add(commandId);
9737
9803
  this._customCommandHandlers.set(commandId, handler);
@@ -9801,7 +9867,7 @@ RepeatLastActionService = __decorate([__decorateParam(0, _univerjs_core.ICommand
9801
9867
  //#endregion
9802
9868
  //#region src/commands/commands/repeat-last-action.command.ts
9803
9869
  const permissionCheckMap = {
9804
- [RepeatLastActionPermission.Editable]: {
9870
+ ["editable"]: {
9805
9871
  permissionTypes: {
9806
9872
  workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
9807
9873
  worksheetTypes: [_univerjs_sheets.WorksheetEditPermission],
@@ -9809,7 +9875,7 @@ const permissionCheckMap = {
9809
9875
  },
9810
9876
  errorMessageKey: "permission.dialog.editErr"
9811
9877
  },
9812
- [RepeatLastActionPermission.CellStyle]: {
9878
+ ["cellStyle"]: {
9813
9879
  permissionTypes: {
9814
9880
  workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
9815
9881
  worksheetTypes: [_univerjs_sheets.WorksheetEditPermission, _univerjs_sheets.WorksheetSetCellStylePermission],
@@ -9817,7 +9883,7 @@ const permissionCheckMap = {
9817
9883
  },
9818
9884
  errorMessageKey: "permission.dialog.setStyleErr"
9819
9885
  },
9820
- [RepeatLastActionPermission.CellValue]: {
9886
+ ["cellValue"]: {
9821
9887
  permissionTypes: {
9822
9888
  workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
9823
9889
  worksheetTypes: [_univerjs_sheets.WorksheetEditPermission, _univerjs_sheets.WorksheetSetCellValuePermission],
@@ -9825,7 +9891,7 @@ const permissionCheckMap = {
9825
9891
  },
9826
9892
  errorMessageKey: "permission.dialog.editErr"
9827
9893
  },
9828
- [RepeatLastActionPermission.RowStyle]: {
9894
+ ["rowStyle"]: {
9829
9895
  permissionTypes: {
9830
9896
  workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
9831
9897
  worksheetTypes: [_univerjs_sheets.WorksheetEditPermission, _univerjs_sheets.WorksheetSetRowStylePermission],
@@ -9833,7 +9899,7 @@ const permissionCheckMap = {
9833
9899
  },
9834
9900
  errorMessageKey: "permission.dialog.setRowColStyleErr"
9835
9901
  },
9836
- [RepeatLastActionPermission.ColumnStyle]: {
9902
+ ["columnStyle"]: {
9837
9903
  permissionTypes: {
9838
9904
  workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
9839
9905
  worksheetTypes: [_univerjs_sheets.WorksheetEditPermission, _univerjs_sheets.WorksheetSetColumnStylePermission],
@@ -9854,14 +9920,14 @@ const RepeatLastActionCommand = {
9854
9920
  const localeService = accessor.get(_univerjs_core.LocaleService);
9855
9921
  const actionPermissionType = repeatLastActionService.getActionPermission();
9856
9922
  if (Array.isArray(actionPermissionType)) for (const permissionType of actionPermissionType) {
9857
- if (permissionType === RepeatLastActionPermission.None) continue;
9923
+ if (permissionType === "none") continue;
9858
9924
  const permissionConfig = permissionCheckMap[permissionType];
9859
9925
  if (!sheetPermissionCheckController.permissionCheckWithRanges(permissionConfig.permissionTypes)) {
9860
9926
  sheetPermissionCheckController.blockExecuteWithoutPermission(localeService.t(permissionConfig.errorMessageKey));
9861
9927
  return false;
9862
9928
  }
9863
9929
  }
9864
- else if (actionPermissionType !== RepeatLastActionPermission.None) {
9930
+ else if (actionPermissionType !== "none") {
9865
9931
  const permissionConfig = permissionCheckMap[actionPermissionType];
9866
9932
  if (!sheetPermissionCheckController.permissionCheckWithRanges(permissionConfig.permissionTypes)) {
9867
9933
  sheetPermissionCheckController.blockExecuteWithoutPermission(localeService.t(permissionConfig.errorMessageKey));
@@ -10276,12 +10342,6 @@ const isRangeSelector = (unitId) => {
10276
10342
  //#endregion
10277
10343
  //#region src/controllers/editor/editing.render-controller.ts
10278
10344
  const HIDDEN_EDITOR_POSITION$1 = -1e3;
10279
- var CursorChange = /* @__PURE__ */ function(CursorChange) {
10280
- CursorChange[CursorChange["InitialState"] = 0] = "InitialState";
10281
- CursorChange[CursorChange["StartEditor"] = 1] = "StartEditor";
10282
- CursorChange[CursorChange["CursorChange"] = 2] = "CursorChange";
10283
- return CursorChange;
10284
- }(CursorChange || {});
10285
10345
  let EditingRenderController = class EditingRenderController extends _univerjs_core.Disposable {
10286
10346
  constructor(_undoRedoService, _contextService, _renderManagerService, _editorBridgeService, _cellEditorManagerService, _lexerTreeBuilder, _functionService, _textSelectionManagerService, _commandService, _localService, _editorService, _univerInstanceService, _sheetInterceptorService, _sheetCellEditorResizeService, _selectionManagerService, _configService) {
10287
10347
  super();
@@ -10301,7 +10361,7 @@ let EditingRenderController = class EditingRenderController extends _univerjs_co
10301
10361
  this._sheetCellEditorResizeService = _sheetCellEditorResizeService;
10302
10362
  this._selectionManagerService = _selectionManagerService;
10303
10363
  this._configService = _configService;
10304
- _defineProperty(this, "_cursorChange", CursorChange.InitialState);
10364
+ _defineProperty(this, "_cursorChange", 0);
10305
10365
  _defineProperty(this, "_editingUnit", "");
10306
10366
  _defineProperty(this, "_cursorTimeout", void 0);
10307
10367
  this.disposeWithMe(this._init());
@@ -10477,19 +10537,19 @@ let EditingRenderController = class EditingRenderController extends _univerjs_co
10477
10537
  * the up, down, left, and right keys can no longer switch editing cells,
10478
10538
  * but move the cursor within the editor instead.
10479
10539
  */
10480
- if (keycode != null && (this._cursorChange === CursorChange.CursorChange || this._contextService.getContextValue(_univerjs_core.FOCUSING_FX_BAR_EDITOR))) {
10540
+ if (keycode != null && (this._cursorChange === 2 || this._contextService.getContextValue(_univerjs_core.FOCUSING_FX_BAR_EDITOR))) {
10481
10541
  this._moveInEditor(keycode, isShift);
10482
10542
  return;
10483
10543
  }
10484
10544
  this._commandService.syncExecuteCommand(SetCellEditVisibleOperation.id, params);
10485
10545
  }
10486
- if (command.id === SetCellEditVisibleWithF2Operation.id) this._cursorChange = CursorChange.CursorChange;
10546
+ if (command.id === SetCellEditVisibleWithF2Operation.id) this._cursorChange = 2;
10487
10547
  }));
10488
10548
  }
10489
10549
  _handleEditorVisible(param) {
10490
10550
  var _this$_sheetCellEdito4, _this$_renderManagerS5;
10491
10551
  const { eventType, keycode } = param;
10492
- this._cursorChange = eventType === _univerjs_engine_render.DeviceInputEventType.PointerDown || eventType === _univerjs_engine_render.DeviceInputEventType.Dblclick ? CursorChange.CursorChange : CursorChange.StartEditor;
10552
+ this._cursorChange = eventType === _univerjs_engine_render.DeviceInputEventType.PointerDown || eventType === _univerjs_engine_render.DeviceInputEventType.Dblclick ? 2 : 1;
10493
10553
  const editCellState = this._editorBridgeService.getEditLocation();
10494
10554
  if (editCellState == null) return;
10495
10555
  this._commandService.syncExecuteCommand(ScrollToRangeOperation.id, { range: {
@@ -10573,7 +10633,7 @@ let EditingRenderController = class EditingRenderController extends _univerjs_co
10573
10633
  const documentDataModel = this._univerInstanceService.getUnit(_univerjs_core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);
10574
10634
  const snapshot = _univerjs_core.Tools.deepClone(documentDataModel === null || documentDataModel === void 0 ? void 0 : documentDataModel.getSnapshot());
10575
10635
  const { keycode } = param;
10576
- this._cursorChange = CursorChange.InitialState;
10636
+ this._cursorChange = 0;
10577
10637
  const currentUnitId = (_editCellState$unitId = editCellState === null || editCellState === void 0 ? void 0 : editCellState.unitId) !== null && _editCellState$unitId !== void 0 ? _editCellState$unitId : "";
10578
10638
  this._exitInput(param);
10579
10639
  if (editCellState == null) return;
@@ -10721,7 +10781,7 @@ let EditingRenderController = class EditingRenderController extends _univerjs_co
10721
10781
  if (!(editorObject === null || editorObject === void 0 ? void 0 : editorObject.document)) return;
10722
10782
  const { document: documentComponent } = editorObject;
10723
10783
  d.add((0, _univerjs_core.toDisposable)(documentComponent.onPointerDown$.subscribeEvent(() => {
10724
- if (this._cursorChange === CursorChange.StartEditor) this._cursorChange = CursorChange.CursorChange;
10784
+ if (this._cursorChange === 1) this._cursorChange = 2;
10725
10785
  })));
10726
10786
  }
10727
10787
  _moveInEditor(keycode, isShift) {
@@ -10904,7 +10964,7 @@ function cleanCellDataObject(cellData) {
10904
10964
  function getDefaultOnPasteCellMutations(pasteFrom, pasteTo, data, payload, accessor) {
10905
10965
  const redoMutationsInfo = [];
10906
10966
  const undoMutationsInfo = [];
10907
- if (payload.copyType === COPY_TYPE.CUT) {
10967
+ if (payload.copyType === "CUT") {
10908
10968
  const { undos, redos } = getMoveRangeMutations(pasteFrom, pasteTo, accessor);
10909
10969
  redoMutationsInfo.push(...redos);
10910
10970
  undoMutationsInfo.push(...undos);
@@ -11398,7 +11458,13 @@ let SheetClipboardController = class SheetClipboardController extends _univerjs_
11398
11458
  var _cell$p, _cell$p2;
11399
11459
  const cell = currentSheet.getCell(row, col);
11400
11460
  if ((cell === null || cell === void 0 || (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 ? void 0 : _cell$p.paragraphs) || (cell === null || cell === void 0 || (_cell$p2 = cell.p) === null || _cell$p2 === void 0 || (_cell$p2 = _cell$p2.body) === null || _cell$p2 === void 0 ? void 0 : _cell$p2.textRuns)) return (0, _univerjs_docs_ui.convertBodyToHtml)(cell.p);
11401
- return cell ? (0, _univerjs_core.extractPureTextFromCell)(cell) : "";
11461
+ const content = (0, _univerjs_core.extractPureTextFromCell)(cell);
11462
+ if (content.trim() === "") return content;
11463
+ /**
11464
+ * Used for generating the copied HTML, so we need to escape special code to avoid breaking the HTML structure.
11465
+ * For example, if the cell value contains <, > or &, it would break the HTML structure and cause the copied content to be incorrect.
11466
+ */
11467
+ return escapeSpecialCode(content);
11402
11468
  },
11403
11469
  onCopyCellStyle: (row, col, rowSpan, colSpan) => {
11404
11470
  const properties = {};
@@ -11932,8 +11998,9 @@ DragRenderController = __decorate([
11932
11998
 
11933
11999
  //#endregion
11934
12000
  //#region src/services/editor/formula-editor-manager.service.ts
11935
- var FormulaEditorManagerService = class {
11936
- constructor() {
12001
+ var FormulaEditorManagerService = class extends _univerjs_core.Disposable {
12002
+ constructor(..._args) {
12003
+ super(..._args);
11937
12004
  _defineProperty(this, "_position", null);
11938
12005
  _defineProperty(this, "_position$", new rxjs.BehaviorSubject(null));
11939
12006
  _defineProperty(this, "position$", this._position$.asObservable());
@@ -11946,6 +12013,7 @@ var FormulaEditorManagerService = class {
11946
12013
  _defineProperty(this, "foldBtnStatus$", this._foldBtnStatus$.asObservable());
11947
12014
  }
11948
12015
  dispose() {
12016
+ super.dispose();
11949
12017
  this._position$.complete();
11950
12018
  this._focus$.complete();
11951
12019
  this._position = null;
@@ -12531,7 +12599,7 @@ let HoverManagerService = class HoverManagerService extends _univerjs_core.Dispo
12531
12599
  const cellData = worksheet.getCell(overflowLocation.row, overflowLocation.col);
12532
12600
  const { topOffset = 0, leftOffset = 0 } = (_cellData$fontRenderE = cellData === null || cellData === void 0 ? void 0 : cellData.fontRenderExtension) !== null && _cellData$fontRenderE !== void 0 ? _cellData$fontRenderE : {};
12533
12601
  if (font === null || font === void 0 ? void 0 : font.documentSkeleton) {
12534
- const { paddingLeft, paddingTop } = calcPadding(cell, font, (cellData === null || cellData === void 0 ? void 0 : cellData.v) !== null && (cellData === null || cellData === void 0 ? void 0 : cellData.v) !== void 0 ? !Number.isNaN(+cellData.v) : false);
12602
+ const { paddingLeft, paddingTop } = calcPadding(cell, font, (cellData === null || cellData === void 0 ? void 0 : cellData.p) ? false : (0, _univerjs_core.isRealNum)(cellData === null || cellData === void 0 ? void 0 : cellData.v) && (!(cellData === null || cellData === void 0 ? void 0 : cellData.t) || cellData.t === _univerjs_core.CellValueType.NUMBER));
12535
12603
  const rects = calculateDocSkeletonRects(font.documentSkeleton, paddingLeft, paddingTop);
12536
12604
  const innerX = offsetX - position.startX - leftOffset;
12537
12605
  const innerY = offsetY - position.startY - topOffset;
@@ -12763,8 +12831,8 @@ let HoverRenderController = class HoverRenderController extends _univerjs_core.D
12763
12831
  disposeSet.add(mainComponent.onPointerLeave$.subscribeEvent(() => {
12764
12832
  this._active = false;
12765
12833
  }));
12766
- const rowHeader = components.get(SHEET_VIEW_KEY.ROW);
12767
- const colHeader = components.get(SHEET_VIEW_KEY.COLUMN);
12834
+ const rowHeader = components.get("__SpreadsheetRowHeader__");
12835
+ const colHeader = components.get("__SpreadsheetColumnHeader__");
12768
12836
  if (rowHeader) {
12769
12837
  disposeSet.add(rowHeader.onPointerMove$.subscribeEvent((evt) => {
12770
12838
  this._hoverManagerService.triggerRowHeaderMouseMove(unitId, evt.offsetX, evt.offsetY);
@@ -12997,18 +13065,6 @@ SheetPermissionCheckUIController = __decorate([
12997
13065
 
12998
13066
  //#endregion
12999
13067
  //#region src/controllers/render-controllers/freeze.render-controller.ts
13000
- var FREEZE_DIRECTION_TYPE = /* @__PURE__ */ function(FREEZE_DIRECTION_TYPE) {
13001
- FREEZE_DIRECTION_TYPE[FREEZE_DIRECTION_TYPE["ROW"] = 0] = "ROW";
13002
- FREEZE_DIRECTION_TYPE[FREEZE_DIRECTION_TYPE["COLUMN"] = 1] = "COLUMN";
13003
- return FREEZE_DIRECTION_TYPE;
13004
- }(FREEZE_DIRECTION_TYPE || {});
13005
- var ResetScrollType = /* @__PURE__ */ function(ResetScrollType) {
13006
- ResetScrollType[ResetScrollType["NONE"] = 0] = "NONE";
13007
- ResetScrollType[ResetScrollType["X"] = 1] = "X";
13008
- ResetScrollType[ResetScrollType["Y"] = 2] = "Y";
13009
- ResetScrollType[ResetScrollType["ALL"] = 3] = "ALL";
13010
- return ResetScrollType;
13011
- }(ResetScrollType || {});
13012
13068
  const FREEZE_ROW_MAIN_NAME = "__SpreadsheetFreezeRowMainName__";
13013
13069
  const FREEZE_ROW_HEADER_NAME = "__SpreadsheetFreezeRowHeaderName__";
13014
13070
  const FREEZE_COLUMN_MAIN_NAME = "__SpreadsheetFreezeColumnMainName__";
@@ -13060,7 +13116,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13060
13116
  this._bindViewportScroll();
13061
13117
  this._zoomRefresh();
13062
13118
  }
13063
- _createFreeze(freezeDirectionType = FREEZE_DIRECTION_TYPE.ROW, freezeConfig) {
13119
+ _createFreeze(freezeDirectionType = 0, freezeConfig) {
13064
13120
  var _this$_sheetSkeletonM;
13065
13121
  const config = freezeConfig !== null && freezeConfig !== void 0 ? freezeConfig : this._getFreeze();
13066
13122
  if (config == null) return null;
@@ -13077,7 +13133,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13077
13133
  this._changeToOffsetY = startY;
13078
13134
  const scale = Math.max(scene.scaleX, scene.scaleY);
13079
13135
  let freezeSize = FREEZE_SIZE_NORMAL / Math.max(1, scale);
13080
- if (freezeDirectionType === FREEZE_DIRECTION_TYPE.ROW) {
13136
+ if (freezeDirectionType === 0) {
13081
13137
  if (freezeRow === -1 || freezeRow === 0) freezeSize = freezeSize * 2;
13082
13138
  const freezeOffset = freezeSize;
13083
13139
  this._rowFreezeHeaderRect = new _univerjs_engine_render.Rect(FREEZE_ROW_HEADER_NAME, {
@@ -13124,10 +13180,10 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13124
13180
  }
13125
13181
  this._eventBinding(freezeDirectionType);
13126
13182
  }
13127
- _eventBinding(freezeDirectionType = FREEZE_DIRECTION_TYPE.ROW) {
13183
+ _eventBinding(freezeDirectionType = 0) {
13128
13184
  let freezeObjectHeaderRect = this._rowFreezeHeaderRect;
13129
13185
  let freezeObjectMainRect = this._rowFreezeMainRect;
13130
- if (freezeDirectionType === FREEZE_DIRECTION_TYPE.COLUMN) {
13186
+ if (freezeDirectionType === 1) {
13131
13187
  freezeObjectHeaderRect = this._columnFreezeHeaderRect;
13132
13188
  freezeObjectMainRect = this._columnFreezeMainRect;
13133
13189
  }
@@ -13226,7 +13282,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13226
13282
  if (!viewports) return null;
13227
13283
  return viewports.find((i) => i.isHit(new _univerjs_engine_render.Vector2(evt.offsetX, evt.offsetY))) || null;
13228
13284
  }
13229
- _freezeDown(evt, freezeObjectHeaderRect, freezeObjectMainRect, freezeDirectionType = FREEZE_DIRECTION_TYPE.ROW) {
13285
+ _freezeDown(evt, freezeObjectHeaderRect, freezeObjectMainRect, freezeDirectionType = 0) {
13230
13286
  var _this$_sheetSkeletonM3;
13231
13287
  const skeleton = (_this$_sheetSkeletonM3 = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM3 === void 0 ? void 0 : _this$_sheetSkeletonM3.skeleton;
13232
13288
  if (skeleton == null) return;
@@ -13251,7 +13307,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13251
13307
  if (!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(true, null)) return false;
13252
13308
  scene.setCursor(_univerjs_engine_render.CURSOR_TYPE.GRABBING);
13253
13309
  const FREEZE_SIZE = FREEZE_SIZE_NORMAL / Math.max(scene.scaleX, scene.scaleY);
13254
- if (freezeDirectionType === FREEZE_DIRECTION_TYPE.ROW) {
13310
+ if (freezeDirectionType === 0) {
13255
13311
  var _freezeObjectHeaderRe, _freezeObjectMainRect;
13256
13312
  (_freezeObjectHeaderRe = freezeObjectHeaderRect.transformByState({ top: Math.min(startY, lastRowY) - FREEZE_SIZE / 2 })) === null || _freezeObjectHeaderRe === void 0 || _freezeObjectHeaderRe.setProps({ fill: this._freezeActiveColor });
13257
13313
  (_freezeObjectMainRect = freezeObjectMainRect.transformByState({ top: Math.min(startY, lastRowY) - FREEZE_SIZE / 2 })) === null || _freezeObjectMainRect === void 0 || _freezeObjectMainRect.setProps({ fill: this._freezeNormalHeaderColor });
@@ -13273,7 +13329,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13273
13329
  scene.enableObjectsEvent();
13274
13330
  this._clearObserverEvent();
13275
13331
  const { rowHeaderWidthAndMarginLeft, columnHeaderHeightAndMarginTop } = skeleton;
13276
- if (freezeDirectionType === FREEZE_DIRECTION_TYPE.ROW && (this._changeToRow === 0 || this._changeToRow === -1) || freezeDirectionType === FREEZE_DIRECTION_TYPE.COLUMN && (this._changeToColumn === 0 || this._changeToColumn === -1)) {
13332
+ if (freezeDirectionType === 0 && (this._changeToRow === 0 || this._changeToRow === -1) || freezeDirectionType === 1 && (this._changeToColumn === 0 || this._changeToColumn === -1)) {
13277
13333
  freezeObjectHeaderRect.setProps({ fill: this._freezeNormalHeaderColor });
13278
13334
  freezeObjectMainRect.setProps({ fill: this._freezeNormalMainColor });
13279
13335
  } else {
@@ -13281,7 +13337,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13281
13337
  freezeObjectMainRect === null || freezeObjectMainRect === void 0 || freezeObjectMainRect.setProps({ fill: this._freezeNormalHeaderColor });
13282
13338
  }
13283
13339
  const FREEZE_SIZE = FREEZE_SIZE_NORMAL / Math.max(scene.scaleX, scene.scaleY);
13284
- if (freezeDirectionType === FREEZE_DIRECTION_TYPE.ROW) {
13340
+ if (freezeDirectionType === 0) {
13285
13341
  if (this._changeToRow === 0 || this._changeToRow === -1) {
13286
13342
  freezeObjectHeaderRect.transformByState({ top: columnHeaderHeightAndMarginTop - FREEZE_SIZE });
13287
13343
  freezeObjectMainRect.transformByState({ top: columnHeaderHeightAndMarginTop - FREEZE_SIZE });
@@ -13302,12 +13358,12 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13302
13358
  let xSplit = (oldFreeze === null || oldFreeze === void 0 ? void 0 : oldFreeze.xSplit) || 0;
13303
13359
  let ySplit = (oldFreeze === null || oldFreeze === void 0 ? void 0 : oldFreeze.ySplit) || 0;
13304
13360
  const viewPortKey = (_this$_activeViewport = this._activeViewport) === null || _this$_activeViewport === void 0 ? void 0 : _this$_activeViewport.viewportKey;
13305
- if (freezeDirectionType === FREEZE_DIRECTION_TYPE.ROW) {
13361
+ if (freezeDirectionType === 0) {
13306
13362
  if (!viewPortKey || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP) ySplit = this._changeToRow - (oldFreeze.startRow - oldFreeze.ySplit);
13307
13363
  else ySplit = this._changeToRow - sheetViewStartRow;
13308
13364
  ySplit = ySplit < 0 ? 0 : ySplit;
13309
13365
  }
13310
- if (freezeDirectionType === FREEZE_DIRECTION_TYPE.COLUMN) {
13366
+ if (freezeDirectionType === 1) {
13311
13367
  if (!viewPortKey || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT) xSplit = this._changeToColumn - (oldFreeze.startColumn - oldFreeze.xSplit);
13312
13368
  else xSplit = this._changeToColumn - sheetViewStartColumn;
13313
13369
  xSplit = xSplit < 0 ? 0 : xSplit;
@@ -13373,7 +13429,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13373
13429
  });
13374
13430
  }));
13375
13431
  }
13376
- _updateViewport(row = -1, column = -1, ySplit = 0, xSplit = 0, resetScroll = ResetScrollType.ALL) {
13432
+ _updateViewport(row = -1, column = -1, ySplit = 0, xSplit = 0, resetScroll = 3) {
13377
13433
  var _this$_sheetSkeletonM4;
13378
13434
  const skeleton = (_this$_sheetSkeletonM4 = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM4 === void 0 ? void 0 : _this$_sheetSkeletonM4.skeleton;
13379
13435
  if (skeleton == null) return;
@@ -13468,7 +13524,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13468
13524
  startX: 0,
13469
13525
  endX: 0
13470
13526
  });
13471
- if (resetScroll & ResetScrollType.Y) this._commandService.executeCommand(ScrollCommand.id, {
13527
+ if (resetScroll & 2) this._commandService.executeCommand(ScrollCommand.id, {
13472
13528
  sheetViewStartRow: 0,
13473
13529
  offsetY: 0
13474
13530
  });
@@ -13512,7 +13568,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13512
13568
  startY: 0,
13513
13569
  endY: 0
13514
13570
  });
13515
- if (resetScroll & ResetScrollType.X) this._commandService.executeCommand(ScrollCommand.id, {
13571
+ if (resetScroll & 1) this._commandService.executeCommand(ScrollCommand.id, {
13516
13572
  sheetViewStartColumn: 0,
13517
13573
  offsetX: 0
13518
13574
  });
@@ -13559,11 +13615,11 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13559
13615
  endX: endSheetView.startX
13560
13616
  });
13561
13617
  if (resetScroll) this._commandService.executeCommand(ScrollCommand.id, {
13562
- ...resetScroll & ResetScrollType.X ? {
13618
+ ...resetScroll & 1 ? {
13563
13619
  sheetViewStartColumn: 0,
13564
13620
  offsetX: 0
13565
13621
  } : null,
13566
- ...resetScroll & ResetScrollType.Y ? {
13622
+ ...resetScroll & 2 ? {
13567
13623
  sheetViewStartRow: 0,
13568
13624
  offsetY: 0
13569
13625
  } : null
@@ -13649,7 +13705,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13649
13705
  const worksheet = this._context.unit.getActiveSheet();
13650
13706
  if (!worksheet) return;
13651
13707
  const { startRow = -1, startColumn = -1, ySplit = 0, xSplit = 0 } = worksheet.getConfig().freeze;
13652
- this._refreshFreeze(startRow, startColumn, ySplit, xSplit, ResetScrollType.NONE);
13708
+ this._refreshFreeze(startRow, startColumn, ySplit, xSplit, 0);
13653
13709
  }
13654
13710
  _themeChangeListener() {
13655
13711
  this._themeChange(this._themeService.getCurrentTheme());
@@ -13679,7 +13735,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13679
13735
  const worksheet = workbook.getActiveSheet();
13680
13736
  if (!worksheet) return empty;
13681
13737
  const subUnitId = worksheet.getSheetId();
13682
- this._refreshFreeze(newFreeze.startRow, newFreeze.startColumn, newFreeze.ySplit, newFreeze.xSplit, ResetScrollType.NONE);
13738
+ this._refreshFreeze(newFreeze.startRow, newFreeze.startColumn, newFreeze.ySplit, newFreeze.xSplit, 0);
13683
13739
  const redoMutationParams = {
13684
13740
  ...newFreeze,
13685
13741
  unitId,
@@ -13815,11 +13871,11 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13815
13871
  const freeze = worksheet.getConfig().freeze;
13816
13872
  this._lastFreeze = freeze;
13817
13873
  if (freeze == null) return;
13818
- let resetScroll = ResetScrollType.NONE;
13874
+ let resetScroll = 0;
13819
13875
  const { startRow = -1, startColumn = -1, ySplit = 0, xSplit = 0 } = freeze;
13820
- if (!lastFreeze || lastFreeze.startRow !== startRow || lastFreeze.ySplit !== ySplit) resetScroll |= ResetScrollType.Y;
13821
- if (!lastFreeze || lastFreeze.startColumn !== startColumn || lastFreeze.xSplit !== xSplit) resetScroll |= ResetScrollType.X;
13822
- if (params.resetScroll === false) resetScroll = ResetScrollType.NONE;
13876
+ if (!lastFreeze || lastFreeze.startRow !== startRow || lastFreeze.ySplit !== ySplit) resetScroll |= 2;
13877
+ if (!lastFreeze || lastFreeze.startColumn !== startColumn || lastFreeze.xSplit !== xSplit) resetScroll |= 1;
13878
+ if (params.resetScroll === false) resetScroll = 0;
13823
13879
  this._refreshFreeze(startRow, startColumn, ySplit, xSplit, resetScroll);
13824
13880
  }
13825
13881
  break;
@@ -13953,8 +14009,8 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
13953
14009
  xSplit
13954
14010
  };
13955
14011
  this._clearFreeze();
13956
- this._createFreeze(FREEZE_DIRECTION_TYPE.ROW, newFreeze);
13957
- this._createFreeze(FREEZE_DIRECTION_TYPE.COLUMN, newFreeze);
14012
+ this._createFreeze(0, newFreeze);
14013
+ this._createFreeze(1, newFreeze);
13958
14014
  this._updateViewport(startRow, startColumn, ySplit, xSplit, resetScroll);
13959
14015
  (_this$_getSheetObject2 = this._getSheetObject()) === null || _this$_getSheetObject2 === void 0 || _this$_getSheetObject2.spreadsheet.makeForceDirty();
13960
14016
  }
@@ -14095,8 +14151,8 @@ let HeaderMoveRenderController = class HeaderMoveRenderController extends _unive
14095
14151
  this._initialRowOrColumn(_univerjs_core.RANGE_TYPE.COLUMN);
14096
14152
  }
14097
14153
  _initialRowOrColumn(initialType = _univerjs_core.RANGE_TYPE.ROW) {
14098
- const spreadsheetColumnHeader = this._context.components.get(SHEET_VIEW_KEY.COLUMN);
14099
- const spreadsheetRowHeader = this._context.components.get(SHEET_VIEW_KEY.ROW);
14154
+ const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
14155
+ const spreadsheetRowHeader = this._context.components.get("__SpreadsheetRowHeader__");
14100
14156
  const scene = this._context.scene;
14101
14157
  const eventBindingObject = initialType === _univerjs_core.RANGE_TYPE.ROW ? spreadsheetRowHeader : spreadsheetColumnHeader;
14102
14158
  const pointerMoveHandler = (evt) => {
@@ -14315,11 +14371,6 @@ HeaderMoveRenderController = __decorate([
14315
14371
 
14316
14372
  //#endregion
14317
14373
  //#region src/views/header-resize-shape.ts
14318
- let HEADER_RESIZE_SHAPE_TYPE = /* @__PURE__ */ function(HEADER_RESIZE_SHAPE_TYPE) {
14319
- HEADER_RESIZE_SHAPE_TYPE[HEADER_RESIZE_SHAPE_TYPE["VERTICAL"] = 0] = "VERTICAL";
14320
- HEADER_RESIZE_SHAPE_TYPE[HEADER_RESIZE_SHAPE_TYPE["HORIZONTAL"] = 1] = "HORIZONTAL";
14321
- return HEADER_RESIZE_SHAPE_TYPE;
14322
- }({});
14323
14374
  const HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL = "rgba(120, 120, 120, 0.01)";
14324
14375
  const HEADER_MENU_SHAPE_RECT_FILL = "rgb(68, 71, 70)";
14325
14376
  const HEADER_MENU_SHAPE_SIZE = 12;
@@ -14329,7 +14380,7 @@ var HeaderMenuResizeShape = class extends _univerjs_engine_render.Shape {
14329
14380
  super(key, props);
14330
14381
  _defineProperty(this, "_size", 12);
14331
14382
  _defineProperty(this, "_color", HEADER_MENU_SHAPE_RECT_FILL);
14332
- _defineProperty(this, "_mode", HEADER_RESIZE_SHAPE_TYPE.VERTICAL);
14383
+ _defineProperty(this, "_mode", 0);
14333
14384
  this.setShapeProps(props);
14334
14385
  }
14335
14386
  get size() {
@@ -14351,7 +14402,7 @@ var HeaderMenuResizeShape = class extends _univerjs_engine_render.Shape {
14351
14402
  let { width, height } = this;
14352
14403
  let left = 0;
14353
14404
  let top = 0;
14354
- if (this.mode === HEADER_RESIZE_SHAPE_TYPE.VERTICAL) {
14405
+ if (this.mode === 0) {
14355
14406
  width = HEADER_MENU_SHAPE_THUMB_SIZE_SCALE;
14356
14407
  left = HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE - HEADER_MENU_SHAPE_THUMB_SIZE_SCALE;
14357
14408
  } else {
@@ -14385,7 +14436,7 @@ var HeaderMenuResizeShape = class extends _univerjs_engine_render.Shape {
14385
14436
  if (props === null || props === void 0 ? void 0 : props.size) this._size = props.size;
14386
14437
  if (props === null || props === void 0 ? void 0 : props.mode) this._mode = props.mode;
14387
14438
  if (props === null || props === void 0 ? void 0 : props.color) this._color = props.color;
14388
- if (this.mode === HEADER_RESIZE_SHAPE_TYPE.VERTICAL) this.transformByState({
14439
+ if (this.mode === 0) this.transformByState({
14389
14440
  width: 12,
14390
14441
  height: this.size
14391
14442
  });
@@ -14404,11 +14455,6 @@ const HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN = "__SpreadsheetHeaderResizeControll
14404
14455
  const HEADER_RESIZE_CONTROLLER_SHAPE_HELPER = "__SpreadsheetHeaderResizeControllerShapeHelper__";
14405
14456
  const HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR = "rgb(199, 199, 199)";
14406
14457
  const MINIMAL_OFFSET$1 = 2;
14407
- var HEADER_RESIZE_TYPE = /* @__PURE__ */ function(HEADER_RESIZE_TYPE) {
14408
- HEADER_RESIZE_TYPE[HEADER_RESIZE_TYPE["ROW"] = 0] = "ROW";
14409
- HEADER_RESIZE_TYPE[HEADER_RESIZE_TYPE["COLUMN"] = 1] = "COLUMN";
14410
- return HEADER_RESIZE_TYPE;
14411
- }(HEADER_RESIZE_TYPE || {});
14412
14458
  const HEADER_RESIZE_PERMISSION_CHECK = (0, _univerjs_core.createInterceptorKey)("headerResizePermissionCheck");
14413
14459
  let HeaderResizeRenderController = class HeaderResizeRenderController extends _univerjs_core.Disposable {
14414
14460
  constructor(_context, _sheetSkeletonManagerService, _selectionManagerService, _commandService) {
@@ -14443,25 +14489,25 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14443
14489
  const scene = this._context.scene;
14444
14490
  this._rowResizeRect = new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_ROW, {
14445
14491
  visible: false,
14446
- mode: HEADER_RESIZE_SHAPE_TYPE.HORIZONTAL,
14492
+ mode: 1,
14447
14493
  zIndex: 100
14448
14494
  });
14449
14495
  this._columnResizeRect = new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN, {
14450
14496
  visible: false,
14451
- mode: HEADER_RESIZE_SHAPE_TYPE.VERTICAL,
14497
+ mode: 0,
14452
14498
  zIndex: 100
14453
14499
  });
14454
14500
  scene.addObjects([this._rowResizeRect, this._columnResizeRect], 10);
14455
- this._initialHover(HEADER_RESIZE_TYPE.ROW);
14456
- this._initialHover(HEADER_RESIZE_TYPE.COLUMN);
14457
- this._initialHoverResize(HEADER_RESIZE_TYPE.ROW);
14458
- this._initialHoverResize(HEADER_RESIZE_TYPE.COLUMN);
14459
- }
14460
- _initialHover(initialType = HEADER_RESIZE_TYPE.ROW) {
14461
- const spreadsheetColumnHeader = this._context.components.get(SHEET_VIEW_KEY.COLUMN);
14462
- const spreadsheetRowHeader = this._context.components.get(SHEET_VIEW_KEY.ROW);
14501
+ this._initialHover(0);
14502
+ this._initialHover(1);
14503
+ this._initialHoverResize(0);
14504
+ this._initialHoverResize(1);
14505
+ }
14506
+ _initialHover(initialType = 0) {
14507
+ const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
14508
+ const spreadsheetRowHeader = this._context.components.get("__SpreadsheetRowHeader__");
14463
14509
  const scene = this._context.scene;
14464
- const eventBindingObject = initialType === HEADER_RESIZE_TYPE.ROW ? spreadsheetRowHeader : spreadsheetColumnHeader;
14510
+ const eventBindingObject = initialType === 0 ? spreadsheetRowHeader : spreadsheetColumnHeader;
14465
14511
  const pointerLeaveEvent = (_evt, _state) => {
14466
14512
  var _this$_rowResizeRect2, _this$_columnResizeRe2;
14467
14513
  (_this$_rowResizeRect2 = this._rowResizeRect) === null || _this$_rowResizeRect2 === void 0 || _this$_rowResizeRect2.hide();
@@ -14473,12 +14519,15 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14473
14519
  if (skeleton == null || this._rowResizeRect == null || this._columnResizeRect == null) return;
14474
14520
  const { rowHeaderWidth, columnHeaderHeight } = skeleton;
14475
14521
  const { startX, startY, endX, endY, row, column } = getCoordByOffset(evt.offsetX, evt.offsetY, scene, skeleton);
14522
+ const isLastRow = row === skeleton.worksheet.getRowCount() - 1;
14523
+ const isLastColumn = column === skeleton.worksheet.getColumnCount() - 1;
14476
14524
  const transformCoord = getTransformCoord(evt.offsetX, evt.offsetY, scene, skeleton);
14477
14525
  const { scaleX, scaleY } = scene.getAncestorScale();
14478
14526
  const HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE = 12 / Math.max(scaleX, scaleY);
14479
- if (initialType === HEADER_RESIZE_TYPE.ROW) {
14527
+ if (initialType === 0) {
14480
14528
  let top = startY - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2;
14481
- if (transformCoord.y <= startY + HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2 && transformCoord.y >= startY) this._currentRow = row - 1;
14529
+ if (isLastRow && endY - startY <= HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2) this._currentRow = row;
14530
+ else if (transformCoord.y <= startY + HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2 && transformCoord.y >= startY) this._currentRow = row - 1;
14482
14531
  else if (transformCoord.y >= endY - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2 && transformCoord.y <= endY) {
14483
14532
  this._currentRow = row;
14484
14533
  top = endY - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2;
@@ -14497,7 +14546,8 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14497
14546
  this._rowResizeRect.show();
14498
14547
  } else {
14499
14548
  let left = startX - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2;
14500
- if (transformCoord.x <= startX + HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2 && transformCoord.x >= startX) this._currentColumn = column - 1;
14549
+ if (isLastColumn && endX - startX <= HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2) this._currentColumn = column;
14550
+ else if (transformCoord.x <= startX + HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2 && transformCoord.x >= startX) this._currentColumn = column - 1;
14501
14551
  else if (transformCoord.x >= endX - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2 && transformCoord.x <= endX) {
14502
14552
  this._currentColumn = column;
14503
14553
  left = endX - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2;
@@ -14520,14 +14570,14 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14520
14570
  this._headerPointerSubs.add(eventBindingObject === null || eventBindingObject === void 0 ? void 0 : eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveEvent));
14521
14571
  this._headerPointerSubs.add(eventBindingObject === null || eventBindingObject === void 0 ? void 0 : eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveEvent));
14522
14572
  }
14523
- _initialHoverResize(initialType = HEADER_RESIZE_TYPE.ROW) {
14573
+ _initialHoverResize(initialType = 0) {
14524
14574
  const scene = this._context.scene;
14525
- const eventBindingObject = initialType === HEADER_RESIZE_TYPE.ROW ? this._rowResizeRect : this._columnResizeRect;
14575
+ const eventBindingObject = initialType === 0 ? this._rowResizeRect : this._columnResizeRect;
14526
14576
  if (eventBindingObject == null) return;
14527
14577
  this.disposeWithMe(eventBindingObject.onPointerEnter$.subscribeEvent(() => {
14528
14578
  if (eventBindingObject == null) return;
14529
14579
  eventBindingObject.show();
14530
- scene.setCursor(initialType === HEADER_RESIZE_TYPE.ROW ? _univerjs_engine_render.CURSOR_TYPE.ROW_RESIZE : _univerjs_engine_render.CURSOR_TYPE.COLUMN_RESIZE);
14580
+ scene.setCursor(initialType === 0 ? _univerjs_engine_render.CURSOR_TYPE.ROW_RESIZE : _univerjs_engine_render.CURSOR_TYPE.COLUMN_RESIZE);
14531
14581
  }));
14532
14582
  this.disposeWithMe(eventBindingObject.onPointerLeave$.subscribeEvent(() => {
14533
14583
  if (eventBindingObject == null) return;
@@ -14559,7 +14609,7 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14559
14609
  const shapeWidth = canvasMaxWidth > columnTotalWidth + rowHeaderWidth ? canvasMaxWidth : columnTotalWidth + rowHeaderWidth;
14560
14610
  const shapeHeight = canvasMaxHeight > rowTotalHeight + columnHeaderHeight ? canvasMaxHeight : rowTotalHeight + columnHeaderHeight;
14561
14611
  const HEADER_MENU_SHAPE_THUMB_SIZE_SCALE = 4 / Math.max(scaleX, scaleY);
14562
- if (initialType === HEADER_RESIZE_TYPE.ROW) this._resizeHelperShape = new _univerjs_engine_render.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER, {
14612
+ if (initialType === 0) this._resizeHelperShape = new _univerjs_engine_render.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER, {
14563
14613
  width: shapeWidth,
14564
14614
  height: HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,
14565
14615
  fill: HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,
@@ -14585,8 +14635,8 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14585
14635
  const HEADER_MENU_SHAPE_THUMB_SIZE_SCALE = 4 / Math.max(scaleX, scaleY);
14586
14636
  moveChangeX = moveOffsetX - this._startOffsetX - HEADER_MENU_SHAPE_THUMB_SIZE_SCALE / 2;
14587
14637
  moveChangeY = moveOffsetY - this._startOffsetY - HEADER_MENU_SHAPE_THUMB_SIZE_SCALE / 2;
14588
- if (Math.abs(initialType === HEADER_RESIZE_TYPE.ROW ? moveChangeY : moveChangeX) >= MINIMAL_OFFSET$1) isStartMove = true;
14589
- if (initialType === HEADER_RESIZE_TYPE.ROW) {
14638
+ if (Math.abs(initialType === 0 ? moveChangeY : moveChangeX) >= MINIMAL_OFFSET$1) isStartMove = true;
14639
+ if (initialType === 0) {
14590
14640
  if (moveChangeY > canvasMaxHeight - scrollBarHorizontalHeight + scrollXY.y - cell.startY) moveChangeY = canvasMaxHeight - scrollBarHorizontalHeight + scrollXY.y - cell.startY;
14591
14641
  if (moveChangeY < -(cell.endY - cell.startY) + 2) moveChangeY = -(cell.endY - cell.startY) + 2;
14592
14642
  if (isStartMove) {
@@ -14620,7 +14670,7 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14620
14670
  scene.resetCursor();
14621
14671
  (_this$_rowResizeRect6 = this._rowResizeRect) === null || _this$_rowResizeRect6 === void 0 || _this$_rowResizeRect6.hide();
14622
14672
  (_this$_columnResizeRe6 = this._columnResizeRect) === null || _this$_columnResizeRe6 === void 0 || _this$_columnResizeRe6.hide();
14623
- if (initialType === HEADER_RESIZE_TYPE.ROW) this._commandService.executeCommand(_univerjs_sheets.DeltaRowHeightCommand.id, {
14673
+ if (initialType === 0) this._commandService.executeCommand(_univerjs_sheets.DeltaRowHeightCommand.id, {
14624
14674
  deltaY: moveChangeY,
14625
14675
  anchorRow: this._currentRow
14626
14676
  });
@@ -14641,7 +14691,7 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14641
14691
  const endRow = sk.worksheet.getRowCount() - 1 || 0;
14642
14692
  const endColumn = sk.worksheet.getColumnCount() - 1 || 0;
14643
14693
  switch (initialType) {
14644
- case HEADER_RESIZE_TYPE.COLUMN: {
14694
+ case 1: {
14645
14695
  var _this$_columnResizeRe7;
14646
14696
  const curSelections = this._selectionManagerService.getCurrentSelections();
14647
14697
  const ranges = [];
@@ -14664,7 +14714,7 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14664
14714
  (_this$_columnResizeRe7 = this._columnResizeRect) === null || _this$_columnResizeRe7 === void 0 || _this$_columnResizeRe7.hide();
14665
14715
  break;
14666
14716
  }
14667
- case HEADER_RESIZE_TYPE.ROW:
14717
+ case 0:
14668
14718
  var _this$_rowResizeRect7;
14669
14719
  this._commandService.executeCommand(_univerjs_sheets.SetWorksheetRowIsAutoHeightCommand.id, { ranges: [{
14670
14720
  startRow: this._currentRow,
@@ -14817,11 +14867,11 @@ let SheetRenderController = class SheetRenderController extends _univerjs_core.R
14817
14867
  _addComponent(workbook) {
14818
14868
  const { scene, components } = this._context;
14819
14869
  const worksheet = workbook.getActiveSheet();
14820
- const spreadsheet = new _univerjs_engine_render.Spreadsheet(SHEET_VIEW_KEY.MAIN);
14870
+ const spreadsheet = new _univerjs_engine_render.Spreadsheet("__SpreadsheetRender__");
14821
14871
  this._addViewport(worksheet);
14822
- const spreadsheetRowHeader = new _univerjs_engine_render.SpreadsheetRowHeader(SHEET_VIEW_KEY.ROW);
14823
- const spreadsheetColumnHeader = new _univerjs_engine_render.SpreadsheetColumnHeader(SHEET_VIEW_KEY.COLUMN);
14824
- const SpreadsheetLeftTopPlaceholder = new _univerjs_engine_render.Rect(SHEET_VIEW_KEY.LEFT_TOP, {
14872
+ const spreadsheetRowHeader = new _univerjs_engine_render.SpreadsheetRowHeader("__SpreadsheetRowHeader__");
14873
+ const spreadsheetColumnHeader = new _univerjs_engine_render.SpreadsheetColumnHeader("__SpreadsheetColumnHeader__");
14874
+ const SpreadsheetLeftTopPlaceholder = new _univerjs_engine_render.Rect("__SpreadsheetLeftTopPlaceholder__", {
14825
14875
  zIndex: 2,
14826
14876
  left: -1,
14827
14877
  top: -1,
@@ -14830,10 +14880,10 @@ let SheetRenderController = class SheetRenderController extends _univerjs_core.R
14830
14880
  strokeWidth: 1
14831
14881
  });
14832
14882
  this._context.mainComponent = spreadsheet;
14833
- components.set(SHEET_VIEW_KEY.MAIN, spreadsheet);
14834
- components.set(SHEET_VIEW_KEY.ROW, spreadsheetRowHeader);
14835
- components.set(SHEET_VIEW_KEY.COLUMN, spreadsheetColumnHeader);
14836
- components.set(SHEET_VIEW_KEY.LEFT_TOP, SpreadsheetLeftTopPlaceholder);
14883
+ components.set("__SpreadsheetRender__", spreadsheet);
14884
+ components.set("__SpreadsheetRowHeader__", spreadsheetRowHeader);
14885
+ components.set("__SpreadsheetColumnHeader__", spreadsheetColumnHeader);
14886
+ components.set("__SpreadsheetLeftTopPlaceholder__", SpreadsheetLeftTopPlaceholder);
14837
14887
  scene.addObjects([spreadsheet], 0);
14838
14888
  scene.addObjects([
14839
14889
  spreadsheetRowHeader,
@@ -14947,9 +14997,9 @@ let SheetRenderController = class SheetRenderController extends _univerjs_core.R
14947
14997
  if (workbook == null || worksheet == null) return;
14948
14998
  const { mainComponent, components } = this._context;
14949
14999
  const spreadsheet = mainComponent;
14950
- const spreadsheetRowHeader = components.get(SHEET_VIEW_KEY.ROW);
14951
- const spreadsheetColumnHeader = components.get(SHEET_VIEW_KEY.COLUMN);
14952
- const spreadsheetLeftTopPlaceholder = components.get(SHEET_VIEW_KEY.LEFT_TOP);
15000
+ const spreadsheetRowHeader = components.get("__SpreadsheetRowHeader__");
15001
+ const spreadsheetColumnHeader = components.get("__SpreadsheetColumnHeader__");
15002
+ const spreadsheetLeftTopPlaceholder = components.get("__SpreadsheetLeftTopPlaceholder__");
14953
15003
  const { rowHeaderWidth, columnHeaderHeight } = spreadsheetSkeleton;
14954
15004
  spreadsheet === null || spreadsheet === void 0 || spreadsheet.updateSkeleton(spreadsheetSkeleton);
14955
15005
  spreadsheetRowHeader === null || spreadsheetRowHeader === void 0 || spreadsheetRowHeader.updateSkeleton(spreadsheetSkeleton);
@@ -16037,15 +16087,20 @@ function getCurrentRangeDisable$(accessor, permissionTypes = {}, supportCellEdit
16037
16087
  if (!workbook || (visible === null || visible === void 0 ? void 0 : visible.visible) && visible.unitId === workbook.getUnitId() && !supportCellEdit || formulaEditorFocus && !supportCellEdit) return (0, rxjs.of)(true);
16038
16088
  return workbook.activeSheet$.pipe((0, rxjs_operators.switchMap)((worksheet) => {
16039
16089
  if (!worksheet) return (0, rxjs.of)(true);
16040
- const selectionManagerService = accessor.get(_univerjs_sheets.SheetsSelectionsService);
16090
+ const unitId = workbook.getUnitId();
16091
+ const subUnitId = worksheet.getSheetId();
16041
16092
  const rangeProtectionRuleModel = accessor.get(_univerjs_sheets.RangeProtectionRuleModel);
16042
16093
  const worksheetRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
16094
+ const selectionManagerService = accessor.get(_univerjs_sheets.SheetsSelectionsService);
16095
+ const selectionChanged$ = selectionManagerService.selectionChanged$.pipe((0, rxjs_operators.startWith)(selectionManagerService.getWorkbookSelections(unitId).getSelectionsOfWorksheet(subUnitId)));
16043
16096
  const focusedOnDrawing$ = accessor.get(_univerjs_core.IContextService).subscribeContextValue$(_univerjs_core.FOCUSING_COMMON_DRAWINGS).pipe((0, rxjs_operators.startWith)(false));
16044
- return (0, rxjs.combineLatest)([selectionManagerService.selectionMoveEnd$, focusedOnDrawing$]).pipe((0, rxjs_operators.switchMap)(([selection, focusOnDrawings]) => {
16097
+ const permissionService = accessor.get(_univerjs_core.IPermissionService);
16098
+ return (0, rxjs.combineLatest)([
16099
+ selectionChanged$,
16100
+ focusedOnDrawing$,
16101
+ permissionService.permissionPointUpdate$.pipe((0, rxjs_operators.debounceTime)(100), (0, rxjs_operators.startWith)(null))
16102
+ ]).pipe((0, rxjs_operators.switchMap)(([selection, focusOnDrawings]) => {
16045
16103
  if (focusOnDrawings && !focusingShapeTextEditor) return (0, rxjs.of)(true);
16046
- const unitId = workbook.getUnitId();
16047
- const subUnitId = worksheet.getSheetId();
16048
- const permissionService = accessor.get(_univerjs_core.IPermissionService);
16049
16104
  const { workbookTypes = [_univerjs_sheets.WorkbookEditablePermission], worksheetTypes, rangeTypes } = permissionTypes;
16050
16105
  const permissionIds = [];
16051
16106
  workbookTypes === null || workbookTypes === void 0 || workbookTypes.forEach((F) => {
@@ -16185,23 +16240,24 @@ function getCellMenuHidden$(accessor, type) {
16185
16240
  }
16186
16241
  function getWorkbookPermissionDisable$(accessor, workbookPermissionTypes) {
16187
16242
  const workbook$ = accessor.get(_univerjs_core.IUniverInstanceService).getCurrentTypeOfUnit$(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
16188
- const worksheetRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
16189
- const selectionRuleModel = accessor.get(_univerjs_sheets.RangeProtectionRuleModel);
16190
16243
  const permissionService = accessor.get(_univerjs_core.IPermissionService);
16191
16244
  return (0, rxjs.combineLatest)([accessor.get(_univerjs_core.UserManagerService).currentUser$, workbook$]).pipe((0, rxjs_operators.switchMap)(([_user, workbook]) => {
16192
16245
  if (!workbook) return (0, rxjs.of)(true);
16193
- return workbook.activeSheet$.pipe((0, rxjs_operators.switchMap)((activeSheet) => {
16194
- if (!activeSheet) return (0, rxjs.of)(true);
16246
+ return workbook.activeSheet$.pipe((0, rxjs_operators.switchMap)((worksheet) => {
16247
+ var _permissionService$co;
16248
+ if (!worksheet) return (0, rxjs.of)(true);
16195
16249
  const unitId = workbook.getUnitId();
16250
+ const subUnitId = worksheet.getSheetId();
16251
+ const selectionProtectionRuleModel = accessor.get(_univerjs_sheets.RangeProtectionRuleModel);
16252
+ const worksheetProtectionRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
16196
16253
  const workbookPermissionIds = [];
16197
16254
  workbookPermissionTypes.forEach((F) => workbookPermissionIds.push(new F(unitId).id));
16198
- return permissionService.composePermission$(workbookPermissionIds).pipe((0, rxjs_operators.map)((list) => list.every((item) => item.value === true))).pipe((0, rxjs_operators.map)((basePermission) => {
16199
- if (!basePermission) return true;
16200
- const subUnitId = activeSheet.getSheetId();
16201
- const worksheetRule = worksheetRuleModel.getRule(unitId, subUnitId);
16202
- const rangeRuleList = selectionRuleModel.getSubunitRuleList(unitId, subUnitId);
16203
- if (worksheetRule || rangeRuleList.length) return true;
16204
- return false;
16255
+ return (0, rxjs.combineLatest)([(_permissionService$co = permissionService.composePermission$(workbookPermissionIds).pipe((0, rxjs_operators.map)((list) => list.every((item) => item.value === true)))) !== null && _permissionService$co !== void 0 ? _permissionService$co : (0, rxjs.of)(false), (0, rxjs.merge)(selectionProtectionRuleModel.ruleChange$, worksheetProtectionRuleModel.ruleChange$).pipe((0, rxjs_operators.startWith)(null))]).pipe((0, rxjs_operators.map)(([permission, _]) => {
16256
+ var _selectionProtectionR;
16257
+ if (!permission) return true;
16258
+ const worksheetRule = worksheetProtectionRuleModel.getRule(unitId, subUnitId);
16259
+ if (worksheetRule === null || worksheetRule === void 0 ? void 0 : worksheetRule.permissionId) return true;
16260
+ return ((_selectionProtectionR = selectionProtectionRuleModel.getSubunitRuleList(unitId, subUnitId)) === null || _selectionProtectionR === void 0 ? void 0 : _selectionProtectionR.filter((item) => item === null || item === void 0 ? void 0 : item.permissionId)).length > 0;
16205
16261
  }));
16206
16262
  }));
16207
16263
  }));
@@ -16977,7 +17033,7 @@ function FormatPainterMenuItemFactory(accessor) {
16977
17033
  activated$: new rxjs.Observable((subscriber) => {
16978
17034
  let active = false;
16979
17035
  const status$ = formatPainterService.status$.subscribe((s) => {
16980
- active = s !== FormatPainterStatus.OFF;
17036
+ active = s !== 0;
16981
17037
  subscriber.next(active);
16982
17038
  });
16983
17039
  subscriber.next(active);
@@ -18223,15 +18279,14 @@ function getRemovePermissionFromSheetBarDisable$(accessor) {
18223
18279
  return (0, rxjs.combineLatest)([univerInstanceService.getCurrentTypeOfUnit$(_univerjs_core.UniverInstanceType.UNIVER_SHEET), accessor.get(_univerjs_core.UserManagerService).currentUser$]).pipe((0, rxjs.switchMap)(([workbook, _]) => {
18224
18280
  if (!workbook) return (0, rxjs.of)(true);
18225
18281
  return workbook.activeSheet$.pipe((0, rxjs.switchMap)((worksheet) => {
18282
+ var _permissionService$ge2, _permissionService$ge3;
18226
18283
  if (!worksheet) return (0, rxjs.of)(true);
18227
18284
  const unitId = workbook.getUnitId();
18228
18285
  const subUnitId = worksheet.getSheetId();
18229
18286
  const worksheetProtectionRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
18230
- return worksheetProtectionRuleModel.ruleChange$.pipe((0, rxjs.startWith)(null)).pipe((0, rxjs.map)(() => {
18231
- if (worksheetProtectionRuleModel.getRule(unitId, subUnitId)) {
18232
- var _permissionService$ge2;
18233
- return ((_permissionService$ge2 = permissionService.getPermissionPoint(new _univerjs_sheets.WorksheetDeleteProtectionPermission(unitId, subUnitId).id)) === null || _permissionService$ge2 === void 0 ? void 0 : _permissionService$ge2.value) === false;
18234
- }
18287
+ return (0, rxjs.combineLatest)([(_permissionService$ge2 = (_permissionService$ge3 = permissionService.getPermissionPoint$(new _univerjs_sheets.WorksheetDeleteProtectionPermission(unitId, subUnitId).id)) === null || _permissionService$ge3 === void 0 ? void 0 : _permissionService$ge3.pipe((0, rxjs.map)((e) => !!e.value))) !== null && _permissionService$ge2 !== void 0 ? _permissionService$ge2 : (0, rxjs.of)(false), worksheetProtectionRuleModel.ruleChange$.pipe((0, rxjs.startWith)(null))]).pipe((0, rxjs.map)(([permission, _]) => {
18288
+ const worksheetRule = worksheetProtectionRuleModel.getRule(unitId, subUnitId);
18289
+ if (worksheetRule === null || worksheetRule === void 0 ? void 0 : worksheetRule.permissionId) return !permission;
18235
18290
  return true;
18236
18291
  }));
18237
18292
  }));
@@ -18246,19 +18301,15 @@ function getSetPermissionFromSheetBarDisable$(accessor) {
18246
18301
  var _permissionService$co4;
18247
18302
  if (!worksheet) return (0, rxjs.of)(true);
18248
18303
  const unitId = workbook.getUnitId();
18304
+ const subUnitId = worksheet.getSheetId();
18249
18305
  const selectionProtectionRuleModel = accessor.get(_univerjs_sheets.RangeProtectionRuleModel);
18250
18306
  const worksheetProtectionRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
18251
- return (0, rxjs.combineLatest)([
18252
- (_permissionService$co4 = permissionService.composePermission$([new _univerjs_sheets.WorkbookCreateProtectPermission(unitId).id, new _univerjs_sheets.WorkbookManageCollaboratorPermission(unitId).id]).pipe((0, rxjs.map)((permissions) => permissions.every((permission) => permission.value)))) !== null && _permissionService$co4 !== void 0 ? _permissionService$co4 : (0, rxjs.of)(false),
18253
- worksheetProtectionRuleModel.ruleChange$.pipe((0, rxjs.startWith)(null)),
18254
- selectionProtectionRuleModel.ruleChange$.pipe((0, rxjs.startWith)(null))
18255
- ]).pipe((0, rxjs.map)(([permission, _, __]) => {
18307
+ return (0, rxjs.combineLatest)([(_permissionService$co4 = permissionService.composePermission$([new _univerjs_sheets.WorkbookCreateProtectPermission(unitId).id, new _univerjs_sheets.WorkbookManageCollaboratorPermission(unitId).id]).pipe((0, rxjs.map)((permissions) => permissions.every((permission) => permission.value)))) !== null && _permissionService$co4 !== void 0 ? _permissionService$co4 : (0, rxjs.of)(false), (0, rxjs.merge)(selectionProtectionRuleModel.ruleChange$, worksheetProtectionRuleModel.ruleChange$).pipe((0, rxjs.startWith)(null))]).pipe((0, rxjs.map)(([permission, _]) => {
18308
+ var _selectionProtectionR2;
18256
18309
  if (!permission) return true;
18257
- const subUnitId = worksheet.getSheetId();
18258
18310
  const worksheetRule = worksheetProtectionRuleModel.getRule(unitId, subUnitId);
18259
- const selectionRuleList = selectionProtectionRuleModel.getSubunitRuleList(unitId, subUnitId);
18260
- if (worksheetRule || selectionRuleList.length) return false;
18261
- return true;
18311
+ if (worksheetRule === null || worksheetRule === void 0 ? void 0 : worksheetRule.permissionId) return false;
18312
+ return ((_selectionProtectionR2 = selectionProtectionRuleModel.getSubunitRuleList(unitId, subUnitId)) === null || _selectionProtectionR2 === void 0 ? void 0 : _selectionProtectionR2.filter((item) => item === null || item === void 0 ? void 0 : item.permissionId)).length === 0;
18262
18313
  }));
18263
18314
  }));
18264
18315
  }));
@@ -18283,8 +18334,8 @@ function getRemovePermissionDisable$(accessor) {
18283
18334
  if ((selectionRange === null || selectionRange === void 0 ? void 0 : selectionRange.rangeType) === _univerjs_core.RANGE_TYPE.ALL || (selectionRange === null || selectionRange === void 0 ? void 0 : selectionRange.rangeType) === _univerjs_core.RANGE_TYPE.COLUMN || (selectionRange === null || selectionRange === void 0 ? void 0 : selectionRange.rangeType) === _univerjs_core.RANGE_TYPE.ROW) return true;
18284
18335
  const worksheetRule = worksheetProtectionRuleModel.getRule(unitId, subUnitId);
18285
18336
  if (worksheetRule === null || worksheetRule === void 0 ? void 0 : worksheetRule.permissionId) {
18286
- var _permissionService$ge3;
18287
- return ((_permissionService$ge3 = permissionService.getPermissionPoint(new _univerjs_sheets.WorksheetDeleteProtectionPermission(unitId, subUnitId).id)) === null || _permissionService$ge3 === void 0 ? void 0 : _permissionService$ge3.value) === false;
18337
+ var _permissionService$ge4;
18338
+ return ((_permissionService$ge4 = permissionService.getPermissionPoint(new _univerjs_sheets.WorksheetDeleteProtectionPermission(unitId, subUnitId).id)) === null || _permissionService$ge4 === void 0 ? void 0 : _permissionService$ge4.value) === false;
18288
18339
  }
18289
18340
  if (selectionProtectionRuleModel.getSubunitRuleList(unitId, subUnitId).filter((rule) => {
18290
18341
  return rule.ranges.some((range) => {
@@ -18319,10 +18370,10 @@ function getViewPermissionDisable$(accessor) {
18319
18370
  ]).pipe((0, rxjs.switchMap)(([workbook, _, visible, formulaEditorFocus]) => {
18320
18371
  if (!workbook || (visible === null || visible === void 0 ? void 0 : visible.visible) && visible.unitId === workbook.getUnitId() || formulaEditorFocus) return (0, rxjs.of)(true);
18321
18372
  return workbook.activeSheet$.pipe((0, rxjs.switchMap)((worksheet) => {
18322
- var _permissionService$ge4, _permissionService$ge5;
18373
+ var _permissionService$ge5, _permissionService$ge6;
18323
18374
  if (!worksheet) return (0, rxjs.of)(true);
18324
18375
  const unitId = workbook.getUnitId();
18325
- return ((_permissionService$ge4 = (_permissionService$ge5 = permissionService.getPermissionPoint$(new _univerjs_sheets.WorkbookEditablePermission(unitId).id)) === null || _permissionService$ge5 === void 0 ? void 0 : _permissionService$ge5.pipe((0, rxjs.map)((e) => !!e.value))) !== null && _permissionService$ge4 !== void 0 ? _permissionService$ge4 : (0, rxjs.of)(false)).pipe((0, rxjs.map)((permission) => !permission));
18376
+ return ((_permissionService$ge5 = (_permissionService$ge6 = permissionService.getPermissionPoint$(new _univerjs_sheets.WorkbookEditablePermission(unitId).id)) === null || _permissionService$ge6 === void 0 ? void 0 : _permissionService$ge6.pipe((0, rxjs.map)((e) => !!e.value))) !== null && _permissionService$ge5 !== void 0 ? _permissionService$ge5 : (0, rxjs.of)(false)).pipe((0, rxjs.map)((permission) => !permission));
18326
18377
  }));
18327
18378
  }));
18328
18379
  }
@@ -20079,6 +20130,8 @@ const DefinedNameContainer = () => {
20079
20130
  const localeService = (0, _univerjs_ui.useDependency)(_univerjs_core.LocaleService);
20080
20131
  const definedNamesService = (0, _univerjs_ui.useDependency)(_univerjs_engine_formula.IDefinedNamesService);
20081
20132
  const selectionManagerService = (0, _univerjs_ui.useDependency)(_univerjs_sheets.SheetsSelectionsService);
20133
+ const permissionService = (0, _univerjs_ui.useDependency)(_univerjs_core.IPermissionService);
20134
+ const sheetPermissionCheckController = (0, _univerjs_ui.useDependency)(_univerjs_sheets.SheetPermissionCheckController);
20082
20135
  const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
20083
20136
  const unitId = workbook === null || workbook === void 0 ? void 0 : workbook.getUnitId();
20084
20137
  const getDefinedNameMap = () => {
@@ -20091,6 +20144,7 @@ const DefinedNameContainer = () => {
20091
20144
  const [definedNames, setDefinedNames] = (0, react.useState)([]);
20092
20145
  const [editorKey, setEditorKey] = (0, react.useState)(null);
20093
20146
  const [deleteConformKey, setDeleteConformKey] = (0, react.useState)();
20147
+ const [permissionCheckVersion, setPermissionCheckVersion] = (0, react.useState)(0);
20094
20148
  const listContainerRef = (0, react.useRef)(void 0);
20095
20149
  const [virtualDefinedNames, virtualActions] = (0, _univerjs_ui.useVirtualList)(definedNames, {
20096
20150
  containerTarget: listContainerRef,
@@ -20109,7 +20163,21 @@ const DefinedNameContainer = () => {
20109
20163
  definedNamesSubscription.unsubscribe();
20110
20164
  };
20111
20165
  }, []);
20166
+ (0, react.useEffect)(() => {
20167
+ const permissionSubscription = permissionService.permissionPointUpdate$.subscribe(() => {
20168
+ setPermissionCheckVersion((v) => v + 1);
20169
+ });
20170
+ return () => {
20171
+ permissionSubscription.unsubscribe();
20172
+ };
20173
+ }, [permissionService]);
20112
20174
  if (!workbook || !unitId) return;
20175
+ const checkWorkbookPermission = sheetPermissionCheckController.permissionCheckWithoutRange({ workbookTypes: [_univerjs_sheets.WorkbookEditablePermission] }, unitId);
20176
+ const checkDefinedNamePermission = (definedName) => {
20177
+ const { localSheetId } = definedName;
20178
+ if (!localSheetId || localSheetId === _univerjs_sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME) return checkWorkbookPermission;
20179
+ return sheetPermissionCheckController.permissionCheckWithoutRange({ worksheetTypes: [_univerjs_sheets.WorksheetEditPermission] }, unitId, localSheetId);
20180
+ };
20113
20181
  const insertConfirm = (param) => {
20114
20182
  const { name, formulaOrRefString, comment, localSheetId, hidden } = param;
20115
20183
  let id = param.id;
@@ -20209,6 +20277,7 @@ const DefinedNameContainer = () => {
20209
20277
  className: "univer-mb-4",
20210
20278
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_univerjs_design.Button, {
20211
20279
  className: (0, _univerjs_design.clsx)("univer-w-full", { "univer-hidden": editState }),
20280
+ disabled: !checkWorkbookPermission,
20212
20281
  onClick: openInsertCloseKeyEditor,
20213
20282
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.IncreaseIcon, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
20214
20283
  className: "univer-ml-1",
@@ -20250,7 +20319,7 @@ const DefinedNameContainer = () => {
20250
20319
  title: definedName.formulaOrRefString,
20251
20320
  children: definedName.formulaOrRefString
20252
20321
  })]
20253
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20322
+ }), checkDefinedNamePermission(definedName) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20254
20323
  className: "univer-absolute univer-right-5 univer-top-1/2 univer-hidden -univer-translate-y-1/2 univer-cursor-pointer univer-items-center univer-justify-end univer-gap-7 univer-text-xs univer-text-primary-600 group-hover:univer-flex dark:hover:!univer-bg-gray-600",
20255
20324
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_design.Tooltip, {
20256
20325
  title: localeService.t("definedName.updateButton"),
@@ -20626,24 +20695,16 @@ const EditorContainer = () => {
20626
20695
 
20627
20696
  //#endregion
20628
20697
  //#region src/services/utils/defined-name-utils.ts
20629
- let DefinedNameBoxActionType = /* @__PURE__ */ function(DefinedNameBoxActionType) {
20630
- DefinedNameBoxActionType["Noop"] = "noop";
20631
- DefinedNameBoxActionType["FocusDefinedName"] = "focusDefinedName";
20632
- DefinedNameBoxActionType["FocusSelection"] = "focusSelection";
20633
- DefinedNameBoxActionType["CreateDefinedName"] = "createDefinedName";
20634
- DefinedNameBoxActionType["Reset"] = "reset";
20635
- return DefinedNameBoxActionType;
20636
- }({});
20637
20698
  function resolveDefinedNameBoxAction(params) {
20638
20699
  const { inputValue, rangeString, unitId, formulaOrRefString, univerInstanceService, definedNamesService, superTableService, functionService } = params;
20639
- if (inputValue === rangeString) return { type: DefinedNameBoxActionType.Noop };
20700
+ if (inputValue === rangeString) return { type: "noop" };
20640
20701
  const definedName = definedNamesService.getValueByName(unitId, inputValue);
20641
20702
  if (definedName) return {
20642
- type: DefinedNameBoxActionType.FocusDefinedName,
20703
+ type: "focusDefinedName",
20643
20704
  definedName
20644
20705
  };
20645
20706
  if ((0, _univerjs_engine_formula.isReferenceStringWithEffectiveColumn)(inputValue)) return {
20646
- type: DefinedNameBoxActionType.FocusSelection,
20707
+ type: "focusSelection",
20647
20708
  refString: inputValue
20648
20709
  };
20649
20710
  if ((0, _univerjs_sheets.validateDefinedName)(inputValue, {
@@ -20654,10 +20715,10 @@ function resolveDefinedNameBoxAction(params) {
20654
20715
  superTableService,
20655
20716
  functionService
20656
20717
  }) === true) return {
20657
- type: DefinedNameBoxActionType.CreateDefinedName,
20718
+ type: "createDefinedName",
20658
20719
  name: inputValue
20659
20720
  };
20660
- return { type: DefinedNameBoxActionType.Reset };
20721
+ return { type: "reset" };
20661
20722
  }
20662
20723
  function getAbsoluteRefStringFromSelection(workbook, selections, lexerTreeBuilder) {
20663
20724
  var _workbook$getActiveSh;
@@ -20784,6 +20845,7 @@ function DefinedName({ disable }) {
20784
20845
  const superTableService = (0, _univerjs_ui.useDependency)(_univerjs_engine_formula.ISuperTableService);
20785
20846
  const functionService = (0, _univerjs_ui.useDependency)(_univerjs_engine_formula.IFunctionService);
20786
20847
  const layoutService = (0, _univerjs_ui.useDependency)(_univerjs_ui.ILayoutService);
20848
+ const sheetPermissionCheckController = (0, _univerjs_ui.useDependency)(_univerjs_sheets.SheetPermissionCheckController);
20787
20849
  const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
20788
20850
  const unitId = workbook === null || workbook === void 0 ? void 0 : workbook.getUnitId();
20789
20851
  const themeService = (0, _univerjs_ui.useDependency)(_univerjs_core.ThemeService);
@@ -20872,19 +20934,19 @@ function DefinedName({ disable }) {
20872
20934
  functionService
20873
20935
  });
20874
20936
  switch (action.type) {
20875
- case DefinedNameBoxActionType.Noop: return true;
20876
- case DefinedNameBoxActionType.FocusDefinedName:
20937
+ case "noop": return true;
20938
+ case "focusDefinedName":
20877
20939
  setRangeString(action.definedName.name);
20878
20940
  setInputValue(action.definedName.name);
20879
20941
  focusDefinedName(action.definedName);
20880
20942
  return true;
20881
- case DefinedNameBoxActionType.FocusSelection:
20943
+ case "focusSelection":
20882
20944
  setRangeString(action.refString);
20883
20945
  setInputValue(action.refString);
20884
20946
  focusSelection(action.refString);
20885
20947
  return true;
20886
- case DefinedNameBoxActionType.CreateDefinedName: {
20887
- if (!formulaOrRefString) {
20948
+ case "createDefinedName": {
20949
+ if (!formulaOrRefString || !sheetPermissionCheckController.permissionCheckWithoutRange({ workbookTypes: [_univerjs_sheets.WorkbookEditablePermission] }, unitId)) {
20888
20950
  resetValue();
20889
20951
  return false;
20890
20952
  }
@@ -20901,7 +20963,7 @@ function DefinedName({ disable }) {
20901
20963
  } else resetValue();
20902
20964
  return !!result;
20903
20965
  }
20904
- case DefinedNameBoxActionType.Reset:
20966
+ case "reset":
20905
20967
  resetValue();
20906
20968
  return false;
20907
20969
  }
@@ -20973,16 +21035,11 @@ function DefinedName({ disable }) {
20973
21035
 
20974
21036
  //#endregion
20975
21037
  //#region src/views/formula-bar/FormulaBar.tsx
20976
- var ArrowDirection = /* @__PURE__ */ function(ArrowDirection) {
20977
- ArrowDirection[ArrowDirection["Down"] = 0] = "Down";
20978
- ArrowDirection[ArrowDirection["Up"] = 1] = "Up";
20979
- return ArrowDirection;
20980
- }(ArrowDirection || {});
20981
21038
  function FormulaBar(props) {
20982
21039
  var _editState$documentLa, _editState$documentLa2;
20983
21040
  const { className, disableDefinedName } = props;
20984
21041
  const [iconActivated, setIconActivated] = (0, react.useState)(false);
20985
- const [arrowDirection, setArrowDirection] = (0, react.useState)(ArrowDirection.Down);
21042
+ const [arrowDirection, setArrowDirection] = (0, react.useState)(0);
20986
21043
  const formulaEditorManagerService = (0, _univerjs_ui.useDependency)(IFormulaEditorManagerService);
20987
21044
  const editorBridgeService = (0, _univerjs_ui.useDependency)(IEditorBridgeService);
20988
21045
  const worksheetProtectionRuleModel = (0, _univerjs_ui.useDependency)(_univerjs_sheets.WorksheetProtectionRuleModel);
@@ -21003,7 +21060,7 @@ function FormulaBar(props) {
21003
21060
  const editState = (0, _univerjs_ui.useObservable)(editorBridgeService.currentEditCellState$);
21004
21061
  const keyCodeConfig = useKeyEventConfig(isRefSelecting, editState === null || editState === void 0 ? void 0 : editState.unitId);
21005
21062
  const FormulaEditor = componentManager.get(EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY);
21006
- const formulaAuxUIParts = (0, _univerjs_ui.useComponentsOfPart)(SheetsUIPart.FORMULA_AUX);
21063
+ const formulaAuxUIParts = (0, _univerjs_ui.useComponentsOfPart)("formula-aux");
21007
21064
  const contextService = (0, _univerjs_ui.useDependency)(_univerjs_core.IContextService);
21008
21065
  (0, _univerjs_ui.useObservable)((0, react.useMemo)(() => contextService.subscribeContextValue$(_univerjs_core.FOCUSING_FX_BAR_EDITOR), [contextService]));
21009
21066
  const isFocusFxBar = contextService.getContextValue(_univerjs_core.FOCUSING_FX_BAR_EDITOR);
@@ -21083,9 +21140,9 @@ function FormulaBar(props) {
21083
21140
  }
21084
21141
  }, [formulaEditorManagerService]);
21085
21142
  function handleArrowClick() {
21086
- setArrowDirection(arrowDirection === ArrowDirection.Down ? ArrowDirection.Up : ArrowDirection.Down);
21143
+ setArrowDirection(arrowDirection === 0 ? 1 : 0);
21087
21144
  setTimeout(() => {
21088
- formulaEditorManagerService.handleFoldBtnClick(arrowDirection === ArrowDirection.Up);
21145
+ formulaEditorManagerService.handleFoldBtnClick(arrowDirection === 1);
21089
21146
  }, 150);
21090
21147
  }
21091
21148
  function handleCloseBtnClick() {
@@ -21138,8 +21195,8 @@ function FormulaBar(props) {
21138
21195
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
21139
21196
  "data-u-comp": "formula-bar",
21140
21197
  className: (0, _univerjs_design.clsx)("univer-box-border univer-flex univer-bg-white univer-transition-[height] univer-ease-linear dark:!univer-bg-gray-900", _univerjs_design.borderBottomClassName, className, {
21141
- "univer-h-7": arrowDirection === ArrowDirection.Down,
21142
- "univer-h-20": arrowDirection === ArrowDirection.Up,
21198
+ "univer-h-7": arrowDirection === 0,
21199
+ "univer-h-20": arrowDirection === 1,
21143
21200
  "univer-pointer-events-none": editDisable
21144
21201
  }),
21145
21202
  children: [
@@ -21204,7 +21261,7 @@ function FormulaBar(props) {
21204
21261
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
21205
21262
  className: (0, _univerjs_design.clsx)("univer-flex univer-h-full univer-w-5 univer-cursor-pointer univer-items-center univer-justify-center univer-text-xs univer-text-gray-700 dark:!univer-text-gray-200", { "univer-cursor-not-allowed univer-text-gray-200 dark:!univer-text-gray-700": editDisable }),
21206
21263
  onClick: handleArrowClick,
21207
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.DropdownIcon, { className: (0, _univerjs_design.clsx)({ "univer-rotate-180": arrowDirection === ArrowDirection.Up }) })
21264
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.DropdownIcon, { className: (0, _univerjs_design.clsx)({ "univer-rotate-180": arrowDirection === 1 }) })
21208
21265
  })]
21209
21266
  })]
21210
21267
  }),
@@ -21433,15 +21490,10 @@ const CONFIG = {
21433
21490
  cancel(v) {},
21434
21491
  complete(v) {}
21435
21492
  };
21436
- let AnimateStatus = /* @__PURE__ */ function(AnimateStatus) {
21437
- AnimateStatus[AnimateStatus["Request"] = 0] = "Request";
21438
- AnimateStatus[AnimateStatus["Cancel"] = 1] = "Cancel";
21439
- return AnimateStatus;
21440
- }({});
21441
21493
  var Animate = class {
21442
21494
  constructor(config) {
21443
21495
  _defineProperty(this, "_config", void 0);
21444
- _defineProperty(this, "_status", AnimateStatus.Request);
21496
+ _defineProperty(this, "_status", 0);
21445
21497
  _defineProperty(this, "_start", 0);
21446
21498
  _defineProperty(this, "_handle", 0);
21447
21499
  _defineProperty(this, "_delayHandle", null);
@@ -21474,20 +21526,20 @@ var Animate = class {
21474
21526
  }
21475
21527
  request() {
21476
21528
  if (this._config.delay === 0) {
21477
- this._status = AnimateStatus.Request;
21529
+ this._status = 0;
21478
21530
  this._start = Date.now();
21479
21531
  this._fakeHandle();
21480
21532
  } else {
21481
21533
  this._delayHandle && clearTimeout(this._delayHandle);
21482
21534
  this._delayHandle = setTimeout(() => {
21483
- this._status = AnimateStatus.Request;
21535
+ this._status = 0;
21484
21536
  this._start = Date.now();
21485
21537
  this._fakeHandle();
21486
21538
  }, this._config.delay);
21487
21539
  }
21488
21540
  }
21489
21541
  cancel() {
21490
- this._status = AnimateStatus.Cancel;
21542
+ this._status = 1;
21491
21543
  this._delayHandle && clearTimeout(this._delayHandle);
21492
21544
  cancelAnimationFrame(this._handle);
21493
21545
  }
@@ -21496,7 +21548,7 @@ var Animate = class {
21496
21548
  times = times >= this._config.duration ? this._config.duration : times;
21497
21549
  const fix = Tween[this._config.type](times, this._config.begin, this._config.end - this._config.begin, this._config.duration, .7).toFixed(2);
21498
21550
  this._config.receive(fix);
21499
- if (this._status === AnimateStatus.Cancel) {
21551
+ if (this._status === 1) {
21500
21552
  this._config.cancel(fix);
21501
21553
  this._config.complete(fix);
21502
21554
  return;
@@ -21786,7 +21838,8 @@ var SlideScrollbar = class {
21786
21838
  constructor(slideTabBar) {
21787
21839
  _defineProperty(this, "_slideTabBar", void 0);
21788
21840
  _defineProperty(this, "_scrollX", void 0);
21789
- this._scrollX = slideTabBar.primeval().scrollLeft;
21841
+ const primeval = slideTabBar.primeval();
21842
+ this._scrollX = primeval.scrollLeft;
21790
21843
  this._slideTabBar = slideTabBar;
21791
21844
  }
21792
21845
  scrollX(x) {
@@ -22679,6 +22732,8 @@ const SheetBar = () => {
22679
22732
  const unitId = useActiveWorkbook().getUnitId();
22680
22733
  const workbookEditablePermission = (0, _univerjs_ui.useObservable)(permissionService.getPermissionPoint$((_WorkbookEditablePerm = new _univerjs_sheets.WorkbookEditablePermission(unitId)) === null || _WorkbookEditablePerm === void 0 ? void 0 : _WorkbookEditablePerm.id));
22681
22734
  const workbookCreateSheetPermission = (0, _univerjs_ui.useObservable)(permissionService.getPermissionPoint$((_WorkbookCreateSheetP = new _univerjs_sheets.WorkbookCreateSheetPermission(unitId)) === null || _WorkbookCreateSheetP === void 0 ? void 0 : _WorkbookCreateSheetP.id));
22735
+ const config = (0, _univerjs_ui.useConfigValue)(SHEETS_UI_PLUGIN_CONFIG_KEY);
22736
+ const { show: addSheetButtonShow = true, defaultRowCount = _univerjs_core.DEFAULT_WORKSHEET_ROW_COUNT, defaultColumnCount = _univerjs_core.DEFAULT_WORKSHEET_COLUMN_COUNT } = ((config === null || config === void 0 ? void 0 : config.footer) || {}).addSheetButtonConfig || {};
22682
22737
  const updateScrollButtonState = (state) => {
22683
22738
  const { leftEnd, rightEnd } = state;
22684
22739
  setLeftScrollState(leftEnd);
@@ -22693,7 +22748,10 @@ const SheetBar = () => {
22693
22748
  };
22694
22749
  }, []);
22695
22750
  const addSheet = () => {
22696
- commandService.executeCommand(_univerjs_sheets.InsertSheetCommand.id);
22751
+ commandService.executeCommand(_univerjs_sheets.InsertSheetCommand.id, { sheet: {
22752
+ rowCount: defaultRowCount,
22753
+ columnCount: defaultColumnCount
22754
+ } });
22697
22755
  setTimeout(() => {
22698
22756
  sheetBarService.setAddSheet(0);
22699
22757
  }, 0);
@@ -22709,7 +22767,7 @@ const SheetBar = () => {
22709
22767
  children: [
22710
22768
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
22711
22769
  className: "univer-flex univer-items-center",
22712
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SheetBarButton, {
22770
+ children: [addSheetButtonShow && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SheetBarButton, {
22713
22771
  className: "univer-mr-2",
22714
22772
  onClick: addSheet,
22715
22773
  disabled: !((workbookCreateSheetPermission === null || workbookCreateSheetPermission === void 0 ? void 0 : workbookCreateSheetPermission.value) && (workbookEditablePermission === null || workbookEditablePermission === void 0 ? void 0 : workbookEditablePermission.value)),
@@ -23211,7 +23269,7 @@ const MoveSelectionEndDownShortcutItem = {
23211
23269
  preconditions: whenSheetEditorFocused,
23212
23270
  staticParameters: {
23213
23271
  direction: _univerjs_core.Direction.DOWN,
23214
- jumpOver: JumpOver.moveGap
23272
+ jumpOver: 1
23215
23273
  }
23216
23274
  };
23217
23275
  const MoveSelectionEndUpShortcutItem = {
@@ -23222,7 +23280,7 @@ const MoveSelectionEndUpShortcutItem = {
23222
23280
  preconditions: whenSheetEditorFocused,
23223
23281
  staticParameters: {
23224
23282
  direction: _univerjs_core.Direction.UP,
23225
- jumpOver: JumpOver.moveGap
23283
+ jumpOver: 1
23226
23284
  }
23227
23285
  };
23228
23286
  const MoveSelectionEndLeftShortcutItem = {
@@ -23233,7 +23291,7 @@ const MoveSelectionEndLeftShortcutItem = {
23233
23291
  preconditions: whenSheetEditorFocused,
23234
23292
  staticParameters: {
23235
23293
  direction: _univerjs_core.Direction.LEFT,
23236
- jumpOver: JumpOver.moveGap
23294
+ jumpOver: 1
23237
23295
  }
23238
23296
  };
23239
23297
  const MoveSelectionEndRightShortcutItem = {
@@ -23244,7 +23302,7 @@ const MoveSelectionEndRightShortcutItem = {
23244
23302
  preconditions: whenSheetEditorFocused,
23245
23303
  staticParameters: {
23246
23304
  direction: _univerjs_core.Direction.RIGHT,
23247
- jumpOver: JumpOver.moveGap
23305
+ jumpOver: 1
23248
23306
  }
23249
23307
  };
23250
23308
  const ExpandSelectionDownShortcutItem = {
@@ -23287,7 +23345,7 @@ const ExpandSelectionEndDownShortcutItem = {
23287
23345
  preconditions: whenSheetEditorFocused,
23288
23346
  staticParameters: {
23289
23347
  direction: _univerjs_core.Direction.DOWN,
23290
- jumpOver: JumpOver.moveGap
23348
+ jumpOver: 1
23291
23349
  }
23292
23350
  };
23293
23351
  const ExpandSelectionEndUpShortcutItem = {
@@ -23298,7 +23356,7 @@ const ExpandSelectionEndUpShortcutItem = {
23298
23356
  preconditions: whenSheetEditorFocused,
23299
23357
  staticParameters: {
23300
23358
  direction: _univerjs_core.Direction.UP,
23301
- jumpOver: JumpOver.moveGap
23359
+ jumpOver: 1
23302
23360
  }
23303
23361
  };
23304
23362
  const ExpandSelectionEndLeftShortcutItem = {
@@ -23309,7 +23367,7 @@ const ExpandSelectionEndLeftShortcutItem = {
23309
23367
  preconditions: whenSheetEditorFocused,
23310
23368
  staticParameters: {
23311
23369
  direction: _univerjs_core.Direction.LEFT,
23312
- jumpOver: JumpOver.moveGap
23370
+ jumpOver: 1
23313
23371
  }
23314
23372
  };
23315
23373
  const ExpandSelectionEndRightShortcutItem = {
@@ -23320,7 +23378,7 @@ const ExpandSelectionEndRightShortcutItem = {
23320
23378
  preconditions: whenSheetEditorFocused,
23321
23379
  staticParameters: {
23322
23380
  direction: _univerjs_core.Direction.RIGHT,
23323
- jumpOver: JumpOver.moveGap
23381
+ jumpOver: 1
23324
23382
  }
23325
23383
  };
23326
23384
  const SelectAllShortcutItem = {
@@ -23341,28 +23399,28 @@ const SetBoldShortcutItem = {
23341
23399
  id: SetRangeBoldCommand.id,
23342
23400
  description: "shortcut.sheet.set-bold",
23343
23401
  group: "4_sheet-edit",
23344
- preconditions: (contextService) => whenSheetEditorFocused(contextService),
23402
+ preconditions: (contextService) => whenSheetFocusedInlineFormat(contextService),
23345
23403
  binding: _univerjs_ui.KeyCode.B | _univerjs_ui.MetaKeys.CTRL_COMMAND
23346
23404
  };
23347
23405
  const SetItalicShortcutItem = {
23348
23406
  id: SetRangeItalicCommand.id,
23349
23407
  description: "shortcut.sheet.set-italic",
23350
23408
  group: "4_sheet-edit",
23351
- preconditions: (contextService) => whenSheetEditorFocused(contextService),
23409
+ preconditions: (contextService) => whenSheetFocusedInlineFormat(contextService),
23352
23410
  binding: _univerjs_ui.KeyCode.I | _univerjs_ui.MetaKeys.CTRL_COMMAND
23353
23411
  };
23354
23412
  const SetUnderlineShortcutItem = {
23355
23413
  id: SetRangeUnderlineCommand.id,
23356
23414
  description: "shortcut.sheet.set-underline",
23357
23415
  group: "4_sheet-edit",
23358
- preconditions: (contextService) => whenSheetEditorFocused(contextService),
23416
+ preconditions: (contextService) => whenSheetFocusedInlineFormat(contextService),
23359
23417
  binding: _univerjs_ui.KeyCode.U | _univerjs_ui.MetaKeys.CTRL_COMMAND
23360
23418
  };
23361
23419
  const SetStrikeThroughShortcutItem = {
23362
23420
  id: SetRangeStrickThroughCommand.id,
23363
23421
  description: "shortcut.sheet.set-strike-through",
23364
23422
  group: "4_sheet-edit",
23365
- preconditions: (contextService) => whenSheetEditorFocused(contextService),
23423
+ preconditions: (contextService) => whenSheetFocusedInlineFormat(contextService),
23366
23424
  binding: _univerjs_ui.KeyCode.X | _univerjs_ui.MetaKeys.SHIFT | _univerjs_ui.MetaKeys.CTRL_COMMAND
23367
23425
  };
23368
23426
 
@@ -23921,7 +23979,7 @@ const useHighlightRange = (ranges = []) => {
23921
23979
  //#endregion
23922
23980
  //#region package.json
23923
23981
  var name = "@univerjs/sheets-ui";
23924
- var version = "0.21.1";
23982
+ var version = "0.22.0";
23925
23983
 
23926
23984
  //#endregion
23927
23985
  //#region src/services/cell-alert-manager.service.ts
@@ -24011,9 +24069,9 @@ function CellAlert({ popup }) {
24011
24069
  if (!alert) return null;
24012
24070
  const { type, title, message } = alert;
24013
24071
  const iconMap = {
24014
- [CellAlertType.ERROR]: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.ErrorIcon, { className: "univer-mr-1.5 univer-text-red-500" }),
24015
- [CellAlertType.INFO]: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.InfoIcon, { className: "univer-mr-1.5 univer-text-blue-500" }),
24016
- [CellAlertType.WARNING]: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.WarningIcon, { className: "univer-mr-1.5 univer-text-yellow-500" })
24072
+ [2]: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.ErrorIcon, { className: "univer-mr-1.5 univer-text-red-500" }),
24073
+ [0]: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.InfoIcon, { className: "univer-mr-1.5 univer-text-blue-500" }),
24074
+ [1]: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.WarningIcon, { className: "univer-mr-1.5 univer-text-yellow-500" })
24017
24075
  };
24018
24076
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
24019
24077
  className: "univer-z-[100] univer-box-border univer-w-[156px] univer-rounded-lg univer-bg-white univer-px-2 univer-py-1 univer-text-gray-900 univer-shadow dark:!univer-bg-black dark:!univer-text-white",
@@ -24467,7 +24525,7 @@ let ForceStringAlertRenderController = class ForceStringAlertRenderController ex
24467
24525
  return;
24468
24526
  }
24469
24527
  this._cellAlertManagerService.showAlert({
24470
- type: CellAlertType.ERROR,
24528
+ type: 2,
24471
24529
  title: this._localeService.t("info.error"),
24472
24530
  message: this._localeService.t("info.forceStringInfo"),
24473
24531
  location,
@@ -24576,7 +24634,7 @@ let FormatPainterController = class FormatPainterController extends _univerjs_co
24576
24634
  priority: 0,
24577
24635
  isDefaultHook: true,
24578
24636
  onStatusChange: (status) => {
24579
- if (status !== FormatPainterStatus.OFF) {
24637
+ if (status !== 0) {
24580
24638
  const format = this._collectSelectionRangeFormat();
24581
24639
  if (format) this._formatPainterService.setSelectionFormat(format);
24582
24640
  }
@@ -26992,7 +27050,7 @@ let FormatPainterRenderController = class FormatPainterRenderController extends
26992
27050
  }
26993
27051
  _commandExecutedListener() {
26994
27052
  this.disposeWithMe(this._selectionRenderService.selectionMoveEnd$.subscribe((selections) => {
26995
- if (this._formatPainterService.getStatus() !== FormatPainterStatus.OFF) {
27053
+ if (this._formatPainterService.getStatus() !== 0) {
26996
27054
  var _this$_context$unit$g;
26997
27055
  const { rangeWithCoord } = selections[selections.length - 1];
26998
27056
  this._commandService.executeCommand(ApplyFormatPainterCommand.id, {
@@ -27005,7 +27063,7 @@ let FormatPainterRenderController = class FormatPainterRenderController extends
27005
27063
  endColumn: rangeWithCoord.endColumn
27006
27064
  }
27007
27065
  });
27008
- if (this._formatPainterService.getStatus() === FormatPainterStatus.ONCE) this._commandService.executeCommand(SetOnceFormatPainterCommand.id);
27066
+ if (this._formatPainterService.getStatus() === 1) this._commandService.executeCommand(SetOnceFormatPainterCommand.id);
27009
27067
  }
27010
27068
  }));
27011
27069
  }
@@ -27013,7 +27071,7 @@ let FormatPainterRenderController = class FormatPainterRenderController extends
27013
27071
  this.disposeWithMe((0, _univerjs_core.toDisposable)(this._formatPainterService.status$.subscribe((status) => {
27014
27072
  const scene = this._context.scene;
27015
27073
  if (!scene) return;
27016
- if (status !== FormatPainterStatus.OFF) scene.setDefaultCursor(_univerjs_engine_render.CURSOR_TYPE.CELL);
27074
+ if (status !== 0) scene.setDefaultCursor(_univerjs_engine_render.CURSOR_TYPE.CELL);
27017
27075
  else scene.setDefaultCursor(_univerjs_engine_render.CURSOR_TYPE.DEFAULT);
27018
27076
  })));
27019
27077
  }
@@ -27026,11 +27084,6 @@ FormatPainterRenderController = __decorate([
27026
27084
 
27027
27085
  //#endregion
27028
27086
  //#region src/menu/header-menu-shape.ts
27029
- let HEADER_MENU_SHAPE_TYPE = /* @__PURE__ */ function(HEADER_MENU_SHAPE_TYPE) {
27030
- HEADER_MENU_SHAPE_TYPE[HEADER_MENU_SHAPE_TYPE["NORMAL"] = 0] = "NORMAL";
27031
- HEADER_MENU_SHAPE_TYPE[HEADER_MENU_SHAPE_TYPE["HIGHLIGHT"] = 1] = "HIGHLIGHT";
27032
- return HEADER_MENU_SHAPE_TYPE;
27033
- }({});
27034
27087
  const HEADER_MENU_SHAPE_CIRCLE_FILL = "rgba(0, 0, 0, 0.15)";
27035
27088
  const HEADER_MENU_SHAPE_TRIANGLE_FILL = "rgb(0, 0, 0)";
27036
27089
  const HEADER_MENU_BACKGROUND_COLOR = "rgb(255, 255, 255, 1)";
@@ -27039,7 +27092,7 @@ var HeaderMenuShape = class extends _univerjs_engine_render.Shape {
27039
27092
  super(key, props);
27040
27093
  _defineProperty(this, "_size", 12);
27041
27094
  _defineProperty(this, "_iconRatio", .4);
27042
- _defineProperty(this, "_mode", HEADER_MENU_SHAPE_TYPE.NORMAL);
27095
+ _defineProperty(this, "_mode", 0);
27043
27096
  this.setShapeProps(props);
27044
27097
  }
27045
27098
  setShapeProps(props) {
@@ -27051,7 +27104,7 @@ var HeaderMenuShape = class extends _univerjs_engine_render.Shape {
27051
27104
  });
27052
27105
  }
27053
27106
  _draw(ctx) {
27054
- if (this._mode === HEADER_MENU_SHAPE_TYPE.HIGHLIGHT) _univerjs_engine_render.Rect.drawWith(ctx, {
27107
+ if (this._mode === 1) _univerjs_engine_render.Rect.drawWith(ctx, {
27055
27108
  width: this._size,
27056
27109
  height: this._size,
27057
27110
  radius: this._size,
@@ -27086,11 +27139,6 @@ var HeaderMenuShape = class extends _univerjs_engine_render.Shape {
27086
27139
  const HEADER_MENU_CONTROLLER_SHAPE = "__SpreadsheetHeaderMenuSHAPEControllerShape__";
27087
27140
  const HEADER_MENU_CONTROLLER_MENU = "__SpreadsheetHeaderMenuMAINControllerShape__";
27088
27141
  const HEADER_MENU_CONTROLLER_SHAPE_COLOR = "rgba(0, 0, 0, 0.1)";
27089
- var HEADER_HOVER_TYPE = /* @__PURE__ */ function(HEADER_HOVER_TYPE) {
27090
- HEADER_HOVER_TYPE[HEADER_HOVER_TYPE["ROW"] = 0] = "ROW";
27091
- HEADER_HOVER_TYPE[HEADER_HOVER_TYPE["COLUMN"] = 1] = "COLUMN";
27092
- return HEADER_HOVER_TYPE;
27093
- }(HEADER_HOVER_TYPE || {});
27094
27142
  let HeaderMenuRenderController = class HeaderMenuRenderController extends _univerjs_core.Disposable {
27095
27143
  constructor(_context, _sheetSkeletonManagerService, _contextMenuService, _commandService, _selectionManagerService) {
27096
27144
  super();
@@ -27124,22 +27172,22 @@ let HeaderMenuRenderController = class HeaderMenuRenderController extends _unive
27124
27172
  visible: false
27125
27173
  });
27126
27174
  scene.addObjects([this._hoverRect, this._hoverMenu], 10);
27127
- this._initialHover(HEADER_HOVER_TYPE.ROW);
27128
- this._initialHover(HEADER_HOVER_TYPE.COLUMN);
27175
+ this._initialHover(0);
27176
+ this._initialHover(1);
27129
27177
  this._initialHoverMenu();
27130
27178
  }
27131
- _initialHover(initialType = HEADER_HOVER_TYPE.ROW) {
27179
+ _initialHover(initialType = 0) {
27132
27180
  var _this$_headerPointerS2, _this$_headerPointerS3, _this$_headerPointerS4;
27133
- const spreadsheetColumnHeader = this._context.components.get(SHEET_VIEW_KEY.COLUMN);
27134
- const spreadsheetRowHeader = this._context.components.get(SHEET_VIEW_KEY.ROW);
27135
- const eventBindingObject = initialType === HEADER_HOVER_TYPE.ROW ? spreadsheetRowHeader : spreadsheetColumnHeader;
27181
+ const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
27182
+ const spreadsheetRowHeader = this._context.components.get("__SpreadsheetRowHeader__");
27183
+ const eventBindingObject = initialType === 0 ? spreadsheetRowHeader : spreadsheetColumnHeader;
27136
27184
  const pointerMoveHandler = (evt) => {
27137
27185
  var _this$_sheetSkeletonM;
27138
27186
  const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
27139
27187
  if (skeleton == null) return;
27140
27188
  const { rowHeaderWidth, columnHeaderHeight } = skeleton;
27141
27189
  const { startX, startY, endX, endY, column } = getCoordByOffset(evt.offsetX, evt.offsetY, this._context.scene, skeleton);
27142
- if (initialType === HEADER_HOVER_TYPE.ROW) {
27190
+ if (initialType === 0) {
27143
27191
  var _this$_hoverRect2;
27144
27192
  (_this$_hoverRect2 = this._hoverRect) === null || _this$_hoverRect2 === void 0 || _this$_hoverRect2.transformByState({
27145
27193
  width: rowHeaderWidth,
@@ -27192,7 +27240,7 @@ let HeaderMenuRenderController = class HeaderMenuRenderController extends _unive
27192
27240
  this._hoverMenu.onPointerEnter$.subscribeEvent(() => {
27193
27241
  if (this._hoverMenu == null) return;
27194
27242
  this._hoverMenu.setProps({
27195
- mode: HEADER_MENU_SHAPE_TYPE.HIGHLIGHT,
27243
+ mode: 1,
27196
27244
  visible: true
27197
27245
  });
27198
27246
  this._context.scene.setCursor(_univerjs_engine_render.CURSOR_TYPE.POINTER);
@@ -27200,7 +27248,7 @@ let HeaderMenuRenderController = class HeaderMenuRenderController extends _unive
27200
27248
  this._hoverMenu.onPointerLeave$.subscribeEvent(() => {
27201
27249
  if (this._hoverMenu == null) return;
27202
27250
  this._hoverMenu.setProps({
27203
- mode: HEADER_MENU_SHAPE_TYPE.NORMAL,
27251
+ mode: 0,
27204
27252
  visible: false
27205
27253
  });
27206
27254
  this._context.scene.resetCursor();
@@ -27261,11 +27309,6 @@ HeaderMenuRenderController = __decorate([
27261
27309
 
27262
27310
  //#endregion
27263
27311
  //#region src/views/header-unhide-shape.ts
27264
- let HeaderUnhideShapeType = /* @__PURE__ */ function(HeaderUnhideShapeType) {
27265
- HeaderUnhideShapeType[HeaderUnhideShapeType["ROW"] = 0] = "ROW";
27266
- HeaderUnhideShapeType[HeaderUnhideShapeType["COLUMN"] = 1] = "COLUMN";
27267
- return HeaderUnhideShapeType;
27268
- }({});
27269
27312
  const UNHIDE_ICON_SIZE = 12;
27270
27313
  const UNHIDE_ARROW_RATIO = .4;
27271
27314
  var HeaderUnhideShape = class extends _univerjs_engine_render.Shape {
@@ -27288,12 +27331,12 @@ var HeaderUnhideShape = class extends _univerjs_engine_render.Shape {
27288
27331
  if (props.hasPrevious !== void 0) this._hasPrevious = props.hasPrevious;
27289
27332
  if (props.hasNext !== void 0) this._hasNext = props.hasNext;
27290
27333
  this.transformByState({
27291
- width: this._size * (this._unhideType === HeaderUnhideShapeType.COLUMN ? 2 : 1),
27292
- height: this._size * (this._unhideType === HeaderUnhideShapeType.ROW ? 2 : 1)
27334
+ width: this._size * (this._unhideType === 1 ? 2 : 1),
27335
+ height: this._size * (this._unhideType === 0 ? 2 : 1)
27293
27336
  });
27294
27337
  }
27295
27338
  _draw(ctx) {
27296
- if (this._unhideType === HeaderUnhideShapeType.ROW) this._drawOnRow(ctx);
27339
+ if (this._unhideType === 0) this._drawOnRow(ctx);
27297
27340
  else this._drawOnCol(ctx);
27298
27341
  }
27299
27342
  _drawOnRow(ctx) {
@@ -27469,7 +27512,7 @@ let HeaderUnhideRenderController = class HeaderUnhideRenderController extends _u
27469
27512
  const hasPrevious = startRow !== 0;
27470
27513
  const hasNext = endRow !== rowCount - 1;
27471
27514
  return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
27472
- type: HeaderUnhideShapeType.ROW,
27515
+ type: 0,
27473
27516
  hovered: false,
27474
27517
  hasPrevious,
27475
27518
  hasNext,
@@ -27488,7 +27531,7 @@ let HeaderUnhideRenderController = class HeaderUnhideRenderController extends _u
27488
27531
  const hasPrevious = startColumn !== 0;
27489
27532
  const hasNext = endColumn !== colCount - 1;
27490
27533
  return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
27491
- type: HeaderUnhideShapeType.COLUMN,
27534
+ type: 1,
27492
27535
  hovered: false,
27493
27536
  hasPrevious,
27494
27537
  hasNext,
@@ -27561,17 +27604,17 @@ const MAIN_AREA_VIEWPORT_KEYS = new Set([
27561
27604
  _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP
27562
27605
  ]);
27563
27606
  const SELECTION_OBJECT_PREFIXES = [
27564
- SELECTION_MANAGER_KEY.Selection,
27565
- SELECTION_MANAGER_KEY.top,
27566
- SELECTION_MANAGER_KEY.bottom,
27567
- SELECTION_MANAGER_KEY.left,
27568
- SELECTION_MANAGER_KEY.right,
27569
- SELECTION_MANAGER_KEY.fillTopLeft,
27570
- SELECTION_MANAGER_KEY.fillBottomRight,
27571
- SELECTION_MANAGER_KEY.backgroundTop,
27572
- SELECTION_MANAGER_KEY.backgroundMiddleLeft,
27573
- SELECTION_MANAGER_KEY.backgroundMiddleRight,
27574
- SELECTION_MANAGER_KEY.backgroundBottom
27607
+ "__SpreadsheetSelectionShape__",
27608
+ "__SpreadsheetSelectionTopControl__",
27609
+ "__SpreadsheetSelectionBottomControl__",
27610
+ "__SpreadsheetSelectionShapeLeftControl__",
27611
+ "__SpreadsheetSelectionShapeRightControl__",
27612
+ "__SpreadsheetSelectionFillControlTopLeft__",
27613
+ "__SpreadsheetSelectionFillControlBottomRight__",
27614
+ "__SpreadsheetSelectionBackgroundControlTop__",
27615
+ "__SpreadsheetSelectionBackgroundControlMiddleLeft__",
27616
+ "__SpreadsheetSelectionBackgroundControlMiddleRight__",
27617
+ "__SpreadsheetSelectionBackgroundControlBottom__"
27575
27618
  ];
27576
27619
  function isSelectionObjectKey(objectKey) {
27577
27620
  return !!objectKey && SELECTION_OBJECT_PREFIXES.some((prefix) => objectKey.startsWith(prefix));
@@ -27822,12 +27865,12 @@ let MobileHeaderResizeRenderController = class MobileHeaderResizeRenderControlle
27822
27865
  const scene = this._context.scene;
27823
27866
  this._rowResizeButton = new HeaderMenuResizeShape(MOBILE_HEADER_RESIZE_CONTROLLER_SHAPE_ROW, {
27824
27867
  visible: false,
27825
- mode: HEADER_RESIZE_SHAPE_TYPE.HORIZONTAL,
27868
+ mode: 1,
27826
27869
  zIndex: 100
27827
27870
  });
27828
27871
  this._columnResizeButton = new HeaderMenuResizeShape(MOBILE_HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN, {
27829
27872
  visible: false,
27830
- mode: HEADER_RESIZE_SHAPE_TYPE.VERTICAL,
27873
+ mode: 0,
27831
27874
  zIndex: 100
27832
27875
  });
27833
27876
  scene.addObjects([this._rowResizeButton, this._columnResizeButton], 10);
@@ -29316,7 +29359,7 @@ var MobileSelectionControl = class extends SelectionControl {
29316
29359
  const stroke = defaultStyle.stroke;
29317
29360
  const AutofillStroke = defaultStyle.autofillStroke;
29318
29361
  const zIndex = this.zIndex;
29319
- this._fillControlTopLeft = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.fillTopLeft + zIndex, {
29362
+ this._fillControlTopLeft = new _univerjs_engine_render.Rect("__SpreadsheetSelectionFillControlTopLeft__" + zIndex, {
29320
29363
  zIndex: zIndex + 2,
29321
29364
  width: expandCornerSize,
29322
29365
  height: expandCornerSize,
@@ -29325,7 +29368,7 @@ var MobileSelectionControl = class extends SelectionControl {
29325
29368
  visualHeight: expandCornerInnerSize,
29326
29369
  strokeWidth: AutofillStrokeWidth
29327
29370
  });
29328
- this._fillControlBottomRight = new _univerjs_engine_render.Rect(SELECTION_MANAGER_KEY.fillBottomRight + zIndex, {
29371
+ this._fillControlBottomRight = new _univerjs_engine_render.Rect("__SpreadsheetSelectionFillControlBottomRight__" + zIndex, {
29329
29372
  zIndex: zIndex + 2,
29330
29373
  width: expandCornerSize,
29331
29374
  height: expandCornerSize,
@@ -29465,15 +29508,6 @@ var MobileSelectionControl = class extends SelectionControl {
29465
29508
 
29466
29509
  //#endregion
29467
29510
  //#region src/services/selection/mobile-selection-render.service.ts
29468
- var ExpandingControl = /* @__PURE__ */ function(ExpandingControl) {
29469
- ExpandingControl["BOTTOM_RIGHT"] = "bottom-right";
29470
- ExpandingControl["TOP_LEFT"] = "top-left";
29471
- ExpandingControl["LEFT"] = "left";
29472
- ExpandingControl["RIGHT"] = "right";
29473
- ExpandingControl["TOP"] = "top";
29474
- ExpandingControl["BOTTOM"] = "bottom";
29475
- return ExpandingControl;
29476
- }(ExpandingControl || {});
29477
29511
  let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderService extends BaseSelectionRenderService {
29478
29512
  constructor(_context, injector, themeService, shortcutService, selectionManagerService, sheetSkeletonManagerService, _logService, _commandService, _contextService, _scrollManagerService) {
29479
29513
  super(injector, themeService, shortcutService, sheetSkeletonManagerService, _contextService);
@@ -29486,7 +29520,7 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
29486
29520
  _defineProperty(this, "_renderDisposable", null);
29487
29521
  _defineProperty(this, "_expandingSelection", false);
29488
29522
  _defineProperty(this, "_selectionControls", []);
29489
- _defineProperty(this, "expandingControlMode", ExpandingControl.BOTTOM_RIGHT);
29523
+ _defineProperty(this, "expandingControlMode", "bottom-right");
29490
29524
  _defineProperty(this, "_anchorCellForExpanding", null);
29491
29525
  this._workbookSelections = selectionManagerService.getWorkbookSelections(this._context.unitId);
29492
29526
  this._init();
@@ -29696,24 +29730,24 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
29696
29730
  const { expandingModeForTopLeft, expandingModeForBottomRight } = (() => {
29697
29731
  switch (rangeType) {
29698
29732
  case _univerjs_core.RANGE_TYPE.NORMAL: return {
29699
- expandingModeForTopLeft: ExpandingControl.TOP_LEFT,
29700
- expandingModeForBottomRight: ExpandingControl.BOTTOM_RIGHT
29733
+ expandingModeForTopLeft: "top-left",
29734
+ expandingModeForBottomRight: "bottom-right"
29701
29735
  };
29702
29736
  case _univerjs_core.RANGE_TYPE.ROW: return {
29703
- expandingModeForTopLeft: ExpandingControl.TOP,
29704
- expandingModeForBottomRight: ExpandingControl.BOTTOM
29737
+ expandingModeForTopLeft: "top",
29738
+ expandingModeForBottomRight: "bottom"
29705
29739
  };
29706
29740
  case _univerjs_core.RANGE_TYPE.COLUMN: return {
29707
- expandingModeForTopLeft: ExpandingControl.LEFT,
29708
- expandingModeForBottomRight: ExpandingControl.RIGHT
29741
+ expandingModeForTopLeft: "left",
29742
+ expandingModeForBottomRight: "right"
29709
29743
  };
29710
29744
  case _univerjs_core.RANGE_TYPE.ALL: return {
29711
- expandingModeForTopLeft: ExpandingControl.TOP_LEFT,
29712
- expandingModeForBottomRight: ExpandingControl.BOTTOM_RIGHT
29745
+ expandingModeForTopLeft: "top-left",
29746
+ expandingModeForBottomRight: "bottom-right"
29713
29747
  };
29714
29748
  default: return {
29715
- expandingModeForTopLeft: ExpandingControl.TOP_LEFT,
29716
- expandingModeForBottomRight: ExpandingControl.BOTTOM_RIGHT
29749
+ expandingModeForTopLeft: "top-left",
29750
+ expandingModeForBottomRight: "bottom-right"
29717
29751
  };
29718
29752
  }
29719
29753
  })();
@@ -29758,7 +29792,8 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
29758
29792
  const viewportMain = scene.getViewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN);
29759
29793
  const activeSelectionControl = this.getActiveSelectionControl();
29760
29794
  if (!activeSelectionControl) return;
29761
- this._anchorCellForExpanding = this._changeCurrCellWhenControlPointerDown();
29795
+ const anchorCell = this._changeCurrCellWhenControlPointerDown();
29796
+ this._anchorCellForExpanding = anchorCell;
29762
29797
  this._selectionMoveStart$.next(this.getSelectionDataWithStyle());
29763
29798
  this._clearUpdatingListeners();
29764
29799
  this._addEndingListeners();
@@ -29770,7 +29805,7 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
29770
29805
  this.endSelection();
29771
29806
  this._expandingSelection = false;
29772
29807
  this._contextService.setContextValue(MOBILE_EXPANDING_SELECTION, false);
29773
- this.expandingControlMode = ExpandingControl.BOTTOM_RIGHT;
29808
+ this.expandingControlMode = "bottom-right";
29774
29809
  this._selectionMoveEnd$.next(this.getSelectionDataWithStyle());
29775
29810
  disposableShortcut.dispose();
29776
29811
  });
@@ -29781,28 +29816,28 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
29781
29816
  let currCellRange;
29782
29817
  const { startRow, startColumn, endRow, endColumn } = activeSelectionControl.model;
29783
29818
  switch (this.expandingControlMode) {
29784
- case ExpandingControl.TOP_LEFT:
29819
+ case "top-left":
29785
29820
  currCellRange = skeleton.getCellWithCoordByIndex(endRow, endColumn);
29786
29821
  break;
29787
- case ExpandingControl.BOTTOM_RIGHT:
29822
+ case "bottom-right":
29788
29823
  currCellRange = skeleton.getCellWithCoordByIndex(startRow, startColumn);
29789
29824
  break;
29790
- case ExpandingControl.LEFT:
29825
+ case "left":
29791
29826
  currCellRange = skeleton.getCellWithCoordByIndex(startRow, endColumn);
29792
29827
  currCellRange.isMerged = false;
29793
29828
  currCellRange.isMergedMainCell = false;
29794
29829
  break;
29795
- case ExpandingControl.RIGHT:
29830
+ case "right":
29796
29831
  currCellRange = skeleton.getCellWithCoordByIndex(startRow, startColumn);
29797
29832
  currCellRange.isMerged = false;
29798
29833
  currCellRange.isMergedMainCell = false;
29799
29834
  break;
29800
- case ExpandingControl.TOP:
29835
+ case "top":
29801
29836
  currCellRange = skeleton.getCellWithCoordByIndex(endRow, startColumn);
29802
29837
  currCellRange.isMerged = false;
29803
29838
  currCellRange.isMergedMainCell = false;
29804
29839
  break;
29805
- case ExpandingControl.BOTTOM:
29840
+ case "bottom":
29806
29841
  currCellRange = skeleton.getCellWithCoordByIndex(startRow, startColumn);
29807
29842
  currCellRange.isMerged = false;
29808
29843
  currCellRange.isMergedMainCell = false;
@@ -30131,8 +30166,8 @@ let SheetContextMenuRenderController = class SheetContextMenuRenderController ex
30131
30166
  }
30132
30167
  });
30133
30168
  this.disposeWithMe(spreadsheetSubscription);
30134
- const spreadsheetColumnHeader = this._context.components.get(SHEET_VIEW_KEY.COLUMN);
30135
- const rowHeaderSub = this._context.components.get(SHEET_VIEW_KEY.ROW).onPointerDown$.subscribeEvent((event) => {
30169
+ const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
30170
+ const rowHeaderSub = this._context.components.get("__SpreadsheetRowHeader__").onPointerDown$.subscribeEvent((event) => {
30136
30171
  if (event.button === 2) this._contextMenuService.triggerContextMenu(event, _univerjs_ui.ContextMenuPosition.ROW_HEADER);
30137
30172
  });
30138
30173
  this.disposeWithMe(rowHeaderSub);