@univerjs/sheets-ui 0.23.0 → 0.24.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
@@ -518,11 +518,13 @@ var BaseSelectionRenderService = class extends _univerjs_core.Disposable {
518
518
  }
519
519
  newSelectionControl(scene, skeleton, selection) {
520
520
  const zIndex = this.getSelectionControls().length;
521
- const { rowHeaderWidth, columnHeaderHeight } = skeleton;
521
+ const { rowHeaderWidth, rowHeaderWidthAndMarginLeft, columnHeaderHeight, columnHeaderHeightAndMarginTop } = skeleton;
522
522
  const control = new SelectionControl(scene, zIndex, this._selectionTheme, {
523
523
  highlightHeader: this._highlightHeader,
524
524
  rowHeaderWidth,
525
- columnHeaderHeight
525
+ columnHeaderHeight,
526
+ rowHeaderOffsetX: Math.max(0, rowHeaderWidthAndMarginLeft - rowHeaderWidth),
527
+ columnHeaderOffsetY: Math.max(0, columnHeaderHeightAndMarginTop - columnHeaderHeight)
526
528
  });
527
529
  this._selectionControls.push(control);
528
530
  const selectionWithCoord = (0, _univerjs_sheets.attachSelectionWithCoord)(selection, skeleton);
@@ -1808,7 +1810,7 @@ const SELECTION_TITLE_HIGHLIGHT_ALPHA = .3;
1808
1810
  */
1809
1811
  var SelectionControl = class extends _univerjs_core.Disposable {
1810
1812
  constructor(_scene, _zIndex, _themeService, options) {
1811
- var _options$enableAutoFi, _options$highlightHea, _options$rowHeaderWid, _options$columnHeader;
1813
+ var _options$enableAutoFi, _options$highlightHea, _options$rowHeaderWid, _options$columnHeader, _options$rowHeaderOff, _options$columnHeader2;
1812
1814
  super();
1813
1815
  this._scene = _scene;
1814
1816
  this._zIndex = _zIndex;
@@ -1847,6 +1849,8 @@ var SelectionControl = class extends _univerjs_core.Disposable {
1847
1849
  _defineProperty(this, "_currentStyle", void 0);
1848
1850
  _defineProperty(this, "_rowHeaderWidth", 0);
1849
1851
  _defineProperty(this, "_columnHeaderHeight", 0);
1852
+ _defineProperty(this, "_rowHeaderOffsetX", 0);
1853
+ _defineProperty(this, "_columnHeaderOffsetY", 0);
1850
1854
  _defineProperty(this, "_widgetRects", []);
1851
1855
  _defineProperty(this, "_controlExtension", void 0);
1852
1856
  _defineProperty(this, "_dispose$", new rxjs.BehaviorSubject(this));
@@ -1864,6 +1868,8 @@ var SelectionControl = class extends _univerjs_core.Disposable {
1864
1868
  this._highlightHeader = (_options$highlightHea = options === null || options === void 0 ? void 0 : options.highlightHeader) !== null && _options$highlightHea !== void 0 ? _options$highlightHea : true;
1865
1869
  this._rowHeaderWidth = (_options$rowHeaderWid = options === null || options === void 0 ? void 0 : options.rowHeaderWidth) !== null && _options$rowHeaderWid !== void 0 ? _options$rowHeaderWid : 0;
1866
1870
  this._columnHeaderHeight = (_options$columnHeader = options === null || options === void 0 ? void 0 : options.columnHeaderHeight) !== null && _options$columnHeader !== void 0 ? _options$columnHeader : 0;
1871
+ this._rowHeaderOffsetX = (_options$rowHeaderOff = options === null || options === void 0 ? void 0 : options.rowHeaderOffsetX) !== null && _options$rowHeaderOff !== void 0 ? _options$rowHeaderOff : 0;
1872
+ this._columnHeaderOffsetY = (_options$columnHeader2 = options === null || options === void 0 ? void 0 : options.columnHeaderOffsetY) !== null && _options$columnHeader2 !== void 0 ? _options$columnHeader2 : 0;
1867
1873
  this._initializeSheetBody();
1868
1874
  this._initialHeader();
1869
1875
  }
@@ -2228,6 +2234,8 @@ var SelectionControl = class extends _univerjs_core.Disposable {
2228
2234
  if (sk) {
2229
2235
  this._rowHeaderWidth = sk.rowHeaderWidth;
2230
2236
  this._columnHeaderHeight = sk.columnHeaderHeight;
2237
+ this._rowHeaderOffsetX = Math.max(0, sk.rowHeaderWidthAndMarginLeft - sk.rowHeaderWidth);
2238
+ this._columnHeaderOffsetY = Math.max(0, sk.columnHeaderHeightAndMarginTop - sk.columnHeaderHeight);
2231
2239
  }
2232
2240
  this._selectionRenderModel.setValue(selectionWthCoord.rangeWithCoord, selectionWthCoord.primaryWithCoord);
2233
2241
  this._showAutoFill = selectionWthCoord.primaryWithCoord !== null;
@@ -2248,6 +2256,8 @@ var SelectionControl = class extends _univerjs_core.Disposable {
2248
2256
  update(newSelectionRange, rowHeaderWidth = 0, columnHeaderHeight = 0, style, primaryCell) {
2249
2257
  this._rowHeaderWidth = rowHeaderWidth;
2250
2258
  this._columnHeaderHeight = columnHeaderHeight;
2259
+ this._rowHeaderOffsetX = 0;
2260
+ this._columnHeaderOffsetY = 0;
2251
2261
  this.updateRangeBySelectionWithCoord({
2252
2262
  rangeWithCoord: newSelectionRange,
2253
2263
  primaryWithCoord: primaryCell,
@@ -2367,6 +2377,8 @@ var SelectionControl = class extends _univerjs_core.Disposable {
2367
2377
  columnHeaderStrokeWidth /= scale;
2368
2378
  const rowHeaderWidth = this._rowHeaderWidth;
2369
2379
  const columnHeaderHeight = this._columnHeaderHeight;
2380
+ const rowHeaderOffsetX = this._rowHeaderOffsetX;
2381
+ const columnHeaderOffsetY = this._columnHeaderOffsetY;
2370
2382
  if (this._highlightHeader && columnHeaderHeight > 0) {
2371
2383
  let highlightTitleColor = columnHeaderFill;
2372
2384
  if (rangeType === _univerjs_core.RANGE_TYPE.COLUMN) highlightTitleColor = new _univerjs_core.ColorKit(stroke).setAlpha(SELECTION_TITLE_HIGHLIGHT_ALPHA).toString();
@@ -2379,7 +2391,7 @@ var SelectionControl = class extends _univerjs_core.Disposable {
2379
2391
  top: columnHeaderHeight - columnHeaderStrokeWidth + 1 / scale
2380
2392
  });
2381
2393
  this._columnHeaderGroup.show();
2382
- this._columnHeaderGroup.translate(startX, 0);
2394
+ this._columnHeaderGroup.translate(startX, columnHeaderOffsetY);
2383
2395
  } else this._columnHeaderGroup.hide();
2384
2396
  this._columnHeaderGroup.makeDirty(true);
2385
2397
  if (this._highlightHeader && rowHeaderWidth > 0) {
@@ -2394,7 +2406,7 @@ var SelectionControl = class extends _univerjs_core.Disposable {
2394
2406
  left: rowHeaderWidth - rowHeaderStrokeWidth + 1 / scale
2395
2407
  });
2396
2408
  this._rowHeaderGroup.show();
2397
- this._rowHeaderGroup.translate(0, startY);
2409
+ this._rowHeaderGroup.translate(rowHeaderOffsetX, startY);
2398
2410
  } else this._rowHeaderGroup.hide();
2399
2411
  this._rowHeaderGroup.makeDirty(true);
2400
2412
  }
@@ -2608,7 +2620,7 @@ let MarkSelectionService = class MarkSelectionService extends _univerjs_core.Dis
2608
2620
  }
2609
2621
  addShape(selection, exits = [], zIndex = DEFAULT_Z_INDEX) {
2610
2622
  var _workbook$getActiveSh;
2611
- const workbook = this._currentService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
2623
+ const workbook = this._currentService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
2612
2624
  const subUnitId = (_workbook$getActiveSh = workbook.getActiveSheet()) === null || _workbook$getActiveSh === void 0 ? void 0 : _workbook$getActiveSh.getSheetId();
2613
2625
  if (!subUnitId) return null;
2614
2626
  const id = (0, _univerjs_core.generateRandomId)();
@@ -2626,7 +2638,7 @@ let MarkSelectionService = class MarkSelectionService extends _univerjs_core.Dis
2626
2638
  }
2627
2639
  addShapeWithNoFresh(selection, exits = [], zIndex = DEFAULT_Z_INDEX) {
2628
2640
  var _workbook$getActiveSh2;
2629
- const workbook = this._currentService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
2641
+ const workbook = this._currentService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
2630
2642
  const subUnitId = (_workbook$getActiveSh2 = workbook.getActiveSheet()) === null || _workbook$getActiveSh2 === void 0 ? void 0 : _workbook$getActiveSh2.getSheetId();
2631
2643
  if (!subUnitId) return null;
2632
2644
  const id = (0, _univerjs_core.generateRandomId)();
@@ -2642,7 +2654,7 @@ let MarkSelectionService = class MarkSelectionService extends _univerjs_core.Dis
2642
2654
  }
2643
2655
  refreshShapes() {
2644
2656
  var _currentSheet$getActi;
2645
- const currentSheet = this._currentService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
2657
+ const currentSheet = this._currentService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
2646
2658
  if (!currentSheet) return;
2647
2659
  const currentUnitId = currentSheet.getUnitId();
2648
2660
  const currentSubUnitId = (_currentSheet$getActi = currentSheet.getActiveSheet()) === null || _currentSheet$getActi === void 0 ? void 0 : _currentSheet$getActi.getSheetId();
@@ -2734,10 +2746,6 @@ function cloneCellDataWithSpanInfo(cell) {
2734
2746
  //#endregion
2735
2747
  //#region src/services/clipboard/copy-content-cache.ts
2736
2748
  const COPY_CONTENT_CACHE_LIMIT = 10;
2737
- const ID_LENGTH = 6;
2738
- function genId() {
2739
- return (0, _univerjs_core.generateRandomId)(ID_LENGTH);
2740
- }
2741
2749
  function extractId(html) {
2742
2750
  const match = html.match(/data-copy-id="([^\s]+)"/);
2743
2751
  if (match && match[1]) return match[1];
@@ -4064,7 +4072,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4064
4072
  async copy(options) {
4065
4073
  const selection = this._selectionManagerService.getCurrentLastSelection();
4066
4074
  if (!selection) return false;
4067
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
4075
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
4068
4076
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
4069
4077
  if (!workbook || !worksheet) return false;
4070
4078
  const workbookId = workbook.getUnitId();
@@ -4225,7 +4233,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4225
4233
  rowIndex += 1;
4226
4234
  }
4227
4235
  for (let c = startColumn; c <= endColumn; c++) discreteRange.cols.push(c);
4228
- const copyId = genId();
4236
+ const copyId = (0, _univerjs_core.generateRandomId)(6);
4229
4237
  const html = this._usmToHtml.convert(matrix, discreteRange, hooks, copyId);
4230
4238
  return {
4231
4239
  copyId,
@@ -4277,7 +4285,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4277
4285
  });
4278
4286
  const result = redoMutationsInfo.every((m) => this._commandService.executeCommand(m.id, m.params));
4279
4287
  if (result) this._undoRedoService.pushUndoRedo({
4280
- unitID: this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getUnitId(),
4288
+ unitID: this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getUnitId(),
4281
4289
  undoMutations: undoMutationsInfo,
4282
4290
  redoMutations: redoMutationsInfo
4283
4291
  });
@@ -4624,7 +4632,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4624
4632
  };
4625
4633
  }
4626
4634
  _getPastingTarget() {
4627
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
4635
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
4628
4636
  const worksheet = workbook.getActiveSheet();
4629
4637
  const selection = this._selectionManagerService.getCurrentLastSelection();
4630
4638
  return {
@@ -4686,7 +4694,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4686
4694
  const { startRow, startColumn, endRow, endColumn } = vRange;
4687
4695
  const destinationRows = endRow - startRow + 1;
4688
4696
  const destinationColumns = endColumn - startColumn + 1;
4689
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
4697
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
4690
4698
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
4691
4699
  if (!worksheet) return null;
4692
4700
  const mergedCellsInRange = worksheet.getMergeData().filter((rect) => discreteRange.rows.includes(rect.startRow) && discreteRange.cols.includes(rect.startColumn));
@@ -4826,7 +4834,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
4826
4834
  * @param range
4827
4835
  */
4828
4836
  _topLeftCellsMatch(rowCount, colCount, range) {
4829
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
4837
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
4830
4838
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
4831
4839
  if (!worksheet) return false;
4832
4840
  const { topRow, leftCol } = range;
@@ -6027,7 +6035,7 @@ const DeleteRangeProtectionFromContextMenuCommand = {
6027
6035
  const undoRedoService = accessor.get(_univerjs_core.IUndoRedoService);
6028
6036
  const selectionManagerService = accessor.get(_univerjs_sheets.SheetsSelectionsService);
6029
6037
  const worksheetRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
6030
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
6038
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
6031
6039
  const worksheet = workbook.getActiveSheet();
6032
6040
  const unitId = workbook.getUnitId();
6033
6041
  const subUnitId = worksheet.getSheetId();
@@ -6078,7 +6086,7 @@ const SetRangeProtectionFromContextMenuCommand = {
6078
6086
  const univerInstanceService = accessor.get(_univerjs_core.IUniverInstanceService);
6079
6087
  const selectionManagerService = accessor.get(_univerjs_sheets.SheetsSelectionsService);
6080
6088
  const worksheetRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
6081
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
6089
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
6082
6090
  const worksheet = workbook.getActiveSheet();
6083
6091
  const unitId = workbook.getUnitId();
6084
6092
  const subUnitId = worksheet.getSheetId();
@@ -6999,7 +7007,7 @@ function isRenderManagerService(renderManagerService) {
6999
7007
  * Get render objects of a spreadsheet.
7000
7008
  */
7001
7009
  function getSheetObject(univerInstanceService, renderManagerService) {
7002
- const workbook = univerInstanceService instanceof _univerjs_core.Workbook ? univerInstanceService : univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
7010
+ const workbook = univerInstanceService instanceof _univerjs_core.Workbook ? univerInstanceService : univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
7003
7011
  if (!workbook) return null;
7004
7012
  const unitId = workbook.getUnitId();
7005
7013
  let components, mainComponent, scene, engine;
@@ -7551,7 +7559,7 @@ const ScrollToCellCommand = {
7551
7559
  type: _univerjs_core.CommandType.COMMAND,
7552
7560
  handler: (accessor, params) => {
7553
7561
  const instanceService = accessor.get(_univerjs_core.IUniverInstanceService);
7554
- return accessor.get(_univerjs_engine_render.IRenderManagerService).getRenderById(instanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(SheetsScrollRenderController).scrollToRange(params.range, params.forceTop, params.forceLeft);
7562
+ return accessor.get(_univerjs_engine_render.IRenderManagerService).getRenderById(instanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(SheetsScrollRenderController).scrollToRange(params.range, params.forceTop, params.forceLeft);
7555
7563
  }
7556
7564
  };
7557
7565
  /**
@@ -8161,7 +8169,7 @@ const DeleteWorksheetProtectionFormSheetBarCommand = {
8161
8169
  const commandService = accessor.get(_univerjs_core.ICommandService);
8162
8170
  const undoRedoService = accessor.get(_univerjs_core.IUndoRedoService);
8163
8171
  const worksheetProtectionRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
8164
- const workbook = accessor.get(_univerjs_core.IUniverInstanceService).getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
8172
+ const workbook = accessor.get(_univerjs_core.IUniverInstanceService).getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
8165
8173
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
8166
8174
  const unitId = workbook.getUnitId();
8167
8175
  if (!worksheet) return false;
@@ -8248,7 +8256,7 @@ const SetCellEditVisibleOperation = {
8248
8256
  if (!params) return false;
8249
8257
  if (((_configService$getCon = accessor.get(_univerjs_core.IConfigService).getConfig("sheets-ui.config")) === null || _configService$getCon === void 0 ? void 0 : _configService$getCon.disableEdit) && params.visible) return false;
8250
8258
  const { unitId } = params;
8251
- const workbook = accessor.get(_univerjs_core.IUniverInstanceService).getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
8259
+ const workbook = accessor.get(_univerjs_core.IUniverInstanceService).getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
8252
8260
  if (!workbook) return false;
8253
8261
  accessor.get(IEditorBridgeService).changeVisible({
8254
8262
  ...params,
@@ -8262,7 +8270,7 @@ const SetCellEditVisibleWithF2Operation = {
8262
8270
  type: _univerjs_core.CommandType.OPERATION,
8263
8271
  handler: (accessor, params) => {
8264
8272
  const commandService = accessor.get(_univerjs_core.ICommandService);
8265
- const workbook = accessor.get(_univerjs_core.IUniverInstanceService).getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
8273
+ const workbook = accessor.get(_univerjs_core.IUniverInstanceService).getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
8266
8274
  if (!workbook) return false;
8267
8275
  return commandService.syncExecuteCommand(SetCellEditVisibleOperation.id, {
8268
8276
  ...params,
@@ -8302,7 +8310,7 @@ const ScrollToRangeOperation = {
8302
8310
  handler: (accessor, params) => {
8303
8311
  if (!params) return false;
8304
8312
  const instanceService = accessor.get(_univerjs_core.IUniverInstanceService);
8305
- return accessor.get(_univerjs_engine_render.IRenderManagerService).getRenderById(instanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(SheetsScrollRenderController).scrollToRange(params.range, params.forceTop, params.forceLeft);
8313
+ return accessor.get(_univerjs_engine_render.IRenderManagerService).getRenderById(instanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(SheetsScrollRenderController).scrollToRange(params.range, params.forceTop, params.forceLeft);
8306
8314
  }
8307
8315
  };
8308
8316
 
@@ -8877,7 +8885,7 @@ let AutoHeightController = class AutoHeightController extends _univerjs_core.Dis
8877
8885
  }
8878
8886
  getUndoRedoParamsOfAutoHeight(ranges, subUnitIdParam, currentCellHeights) {
8879
8887
  const { _univerInstanceService: univerInstanceService } = this;
8880
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
8888
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
8881
8889
  const unitId = workbook.getUnitId();
8882
8890
  let worksheet = workbook.getActiveSheet();
8883
8891
  let subUnitId = worksheet.getSheetId();
@@ -10429,7 +10437,7 @@ let EditingRenderController = class EditingRenderController extends _univerjs_co
10429
10437
  _initialCursorSync(d) {
10430
10438
  d.add(this._cellEditorManagerService.focus$.pipe((0, rxjs.filter)((f) => !!f)).subscribe(() => {
10431
10439
  var _this$_renderManagerS2;
10432
- const currentDoc = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_DOC);
10440
+ const currentDoc = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_DOC);
10433
10441
  if (!currentDoc) return;
10434
10442
  const docSelectionRenderManager = (_this$_renderManagerS2 = this._renderManagerService.getRenderById(currentDoc === null || currentDoc === void 0 ? void 0 : currentDoc.getUnitId())) === null || _this$_renderManagerS2 === void 0 ? void 0 : _this$_renderManagerS2.with(_univerjs_docs_ui.DocSelectionRenderService);
10435
10443
  if (!docSelectionRenderManager) return;
@@ -11795,7 +11803,7 @@ let SheetClipboardController = class SheetClipboardController extends _univerjs_
11795
11803
  id: PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_BESIDES_BORDER,
11796
11804
  specialPasteInfo: { label: "specialPaste.besidesBorder" },
11797
11805
  onPasteCells: (pasteFrom, pasteTo, matrix, payload) => {
11798
- self._instanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
11806
+ self._instanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
11799
11807
  const redoMutationsInfo = [];
11800
11808
  const undoMutationsInfo = [];
11801
11809
  const { range, unitId, subUnitId } = pasteTo;
@@ -11914,7 +11922,7 @@ let DragManagerService = class DragManagerService extends _univerjs_core.Disposa
11914
11922
  }));
11915
11923
  }
11916
11924
  _calcActiveCell(offsetX, offsetY) {
11917
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
11925
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
11918
11926
  if (!workbook) return null;
11919
11927
  const worksheet = workbook.getActiveSheet();
11920
11928
  if (!worksheet) return;
@@ -14517,7 +14525,7 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14517
14525
  var _this$_sheetSkeletonM;
14518
14526
  const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
14519
14527
  if (skeleton == null || this._rowResizeRect == null || this._columnResizeRect == null) return;
14520
- const { rowHeaderWidth, columnHeaderHeight } = skeleton;
14528
+ const { rowBaseWidth, rowGutterWidth, columnBaseHeight, columnGutterHeight } = getHeaderBaseLayout$1(skeleton);
14521
14529
  const { startX, startY, endX, endY, row, column } = getCoordByOffset(evt.offsetX, evt.offsetY, scene, skeleton);
14522
14530
  const isLastRow = row === skeleton.worksheet.getRowCount() - 1;
14523
14531
  const isLastColumn = column === skeleton.worksheet.getColumnCount() - 1;
@@ -14537,9 +14545,9 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14537
14545
  }
14538
14546
  if (this._currentRow === -1) return;
14539
14547
  if (!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null, { row: this._currentRow })) return false;
14540
- const rowSize = Math.min(44, rowHeaderWidth / 3);
14548
+ const rowSize = Math.min(44, rowBaseWidth / 3);
14541
14549
  this._rowResizeRect.transformByState({
14542
- left: rowHeaderWidth / 2 - rowSize / 2,
14550
+ left: rowGutterWidth + rowBaseWidth / 2 - rowSize / 2,
14543
14551
  top
14544
14552
  });
14545
14553
  this._rowResizeRect.setShapeProps({ size: rowSize });
@@ -14557,10 +14565,10 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14557
14565
  }
14558
14566
  if (this._currentColumn === -1) return;
14559
14567
  if (!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null, { col: this._currentColumn })) return false;
14560
- const columnSize = columnHeaderHeight * .7;
14568
+ const columnSize = columnBaseHeight * .7;
14561
14569
  this._columnResizeRect.transformByState({
14562
14570
  left,
14563
- top: columnHeaderHeight / 2 - columnSize / 2
14571
+ top: columnGutterHeight + columnBaseHeight / 2 - columnSize / 2
14564
14572
  });
14565
14573
  this._columnResizeRect.setShapeProps({ size: columnSize });
14566
14574
  this._columnResizeRect.show();
@@ -14605,9 +14613,9 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
14605
14613
  let isStartMove = false;
14606
14614
  let moveChangeX = 0;
14607
14615
  let moveChangeY = 0;
14608
- const { columnTotalWidth, rowHeaderWidth, rowTotalHeight, columnHeaderHeight } = skeleton;
14609
- const shapeWidth = canvasMaxWidth > columnTotalWidth + rowHeaderWidth ? canvasMaxWidth : columnTotalWidth + rowHeaderWidth;
14610
- const shapeHeight = canvasMaxHeight > rowTotalHeight + columnHeaderHeight ? canvasMaxHeight : rowTotalHeight + columnHeaderHeight;
14616
+ const { columnTotalWidth, rowHeaderWidthAndMarginLeft, rowTotalHeight, columnHeaderHeightAndMarginTop } = skeleton;
14617
+ const shapeWidth = canvasMaxWidth > columnTotalWidth + rowHeaderWidthAndMarginLeft ? canvasMaxWidth : columnTotalWidth + rowHeaderWidthAndMarginLeft;
14618
+ const shapeHeight = canvasMaxHeight > rowTotalHeight + columnHeaderHeightAndMarginTop ? canvasMaxHeight : rowTotalHeight + columnHeaderHeightAndMarginTop;
14611
14619
  const HEADER_MENU_SHAPE_THUMB_SIZE_SCALE = 4 / Math.max(scaleX, scaleY);
14612
14620
  if (initialType === 0) this._resizeHelperShape = new _univerjs_engine_render.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER, {
14613
14621
  width: shapeWidth,
@@ -14740,208 +14748,580 @@ HeaderResizeRenderController = __decorate([
14740
14748
  __decorateParam(2, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetsSelectionsService)),
14741
14749
  __decorateParam(3, _univerjs_core.ICommandService)
14742
14750
  ], HeaderResizeRenderController);
14751
+ function getHeaderBaseLayout$1(skeleton) {
14752
+ var _skeleton$worksheet$g, _skeleton$worksheet, _config$rowHeader, _config$columnHeader;
14753
+ const config = (_skeleton$worksheet$g = (_skeleton$worksheet = skeleton.worksheet).getConfig) === null || _skeleton$worksheet$g === void 0 ? void 0 : _skeleton$worksheet$g.call(_skeleton$worksheet);
14754
+ const configuredRowWidth = config === null || config === void 0 || (_config$rowHeader = config.rowHeader) === null || _config$rowHeader === void 0 ? void 0 : _config$rowHeader.width;
14755
+ const configuredColumnHeight = config === null || config === void 0 || (_config$columnHeader = config.columnHeader) === null || _config$columnHeader === void 0 ? void 0 : _config$columnHeader.height;
14756
+ const rowBaseWidth = typeof configuredRowWidth === "number" && configuredRowWidth > 0 ? Math.min(configuredRowWidth, skeleton.rowHeaderWidth) : skeleton.rowHeaderWidth;
14757
+ const columnBaseHeight = typeof configuredColumnHeight === "number" && configuredColumnHeight > 0 ? Math.min(configuredColumnHeight, skeleton.columnHeaderHeight) : skeleton.columnHeaderHeight;
14758
+ return {
14759
+ rowBaseWidth,
14760
+ rowGutterWidth: Math.max(0, skeleton.rowHeaderWidthAndMarginLeft - rowBaseWidth),
14761
+ columnBaseHeight,
14762
+ columnGutterHeight: Math.max(0, skeleton.columnHeaderHeightAndMarginTop - columnBaseHeight)
14763
+ };
14764
+ }
14743
14765
 
14744
14766
  //#endregion
14745
- //#region src/controllers/render-controllers/sheet.render-controller.ts
14746
- const FRAME_STACK_THRESHOLD = 60;
14747
- let SheetRenderController = class SheetRenderController extends _univerjs_core.RxDisposable {
14748
- constructor(_context, _configService, _sheetSkeletonManagerService, _sheetRenderService, _commandService, _telemetryService) {
14749
- super();
14750
- this._context = _context;
14751
- this._configService = _configService;
14752
- this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
14753
- this._sheetRenderService = _sheetRenderService;
14754
- this._commandService = _commandService;
14755
- this._telemetryService = _telemetryService;
14756
- _defineProperty(this, "_renderMetric$", new rxjs.Subject());
14757
- _defineProperty(this, "renderMetric$", this._renderMetric$.asObservable());
14758
- _defineProperty(this, "_renderFrameTimeMetric", null);
14759
- _defineProperty(this, "_renderFrameTags", {});
14760
- _defineProperty(this, "_afterRenderMetric$", new rxjs.Subject());
14761
- this._addNewRender();
14762
- this._initRenderMetricSubscriber();
14767
+ //#region src/services/header-unhide-range.service.ts
14768
+ let HeaderUnhideRangeAxis = /* @__PURE__ */ function(HeaderUnhideRangeAxis) {
14769
+ HeaderUnhideRangeAxis["ROW"] = "row";
14770
+ HeaderUnhideRangeAxis["COLUMN"] = "column";
14771
+ return HeaderUnhideRangeAxis;
14772
+ }({});
14773
+ var HeaderUnhideRangeService = class {
14774
+ constructor() {
14775
+ _defineProperty(this, "_visibleHandlers", /* @__PURE__ */ new Set());
14763
14776
  }
14764
- _addNewRender() {
14765
- const { scene, engine, unit: workbook } = this._context;
14766
- this._addComponent(workbook);
14767
- this._initRerenderScheduler();
14768
- this._initCommandListener();
14769
- const worksheet = this._context.unit.getActiveSheet();
14770
- if (!worksheet) throw new Error("No active sheet found");
14771
- const sheetId = worksheet.getSheetId();
14772
- this._sheetSkeletonManagerService.setCurrent({ sheetId });
14773
- const frameFn = () => scene.render();
14774
- this.disposeWithMe(this._context.activated$.subscribe((activated) => {
14775
- if (activated) engine.runRenderLoop(frameFn);
14776
- else engine.stopRenderLoop(frameFn);
14777
- }));
14777
+ registerRangeVisibleHandler(handler) {
14778
+ this._visibleHandlers.add(handler);
14779
+ const dispose = () => this._visibleHandlers.delete(handler);
14780
+ return {
14781
+ dispose,
14782
+ unsubscribe: dispose
14783
+ };
14778
14784
  }
14779
- _initRenderMetricSubscriber() {
14780
- const { engine } = this._context;
14781
- this.disposeWithMe(engine.beginFrame$.subscribe(() => {
14782
- this._renderFrameTimeMetric = null;
14783
- this._renderFrameTags = {};
14784
- }));
14785
- this.disposeWithMe(engine.endFrame$.subscribe(() => {
14786
- if (this._renderFrameTimeMetric && Object.keys(this._renderFrameTimeMetric).filter((key) => key.startsWith(_univerjs_engine_render.SHEET_EXTENSION_PREFIX)).length > 0) this._afterRenderMetric$.next({
14787
- frameTimeMetric: this._renderFrameTimeMetric,
14788
- tags: this._renderFrameTags
14789
- });
14790
- }));
14791
- this.disposeWithMe(engine.renderFrameTimeMetric$.subscribe(([key, value]) => {
14792
- if (!this._renderFrameTimeMetric) this._renderFrameTimeMetric = {};
14793
- if (!this._renderFrameTimeMetric[key]) this._renderFrameTimeMetric[key] = [];
14794
- this._renderFrameTimeMetric[key].push(Math.round(value * 100) / 100);
14795
- }));
14796
- this.disposeWithMe(engine.renderFrameTags$.subscribe(([key, value]) => {
14797
- this._renderFrameTags[key] = value;
14798
- }));
14799
- const frameInfoList = [];
14800
- this.disposeWithMe(this._afterRenderMetric$.pipe((0, rxjs.withLatestFrom)(engine.endFrame$)).subscribe(([sceneRenderDetail, basicFrameTimeInfo]) => {
14801
- frameInfoList.push({
14802
- FPS: basicFrameTimeInfo.FPS,
14803
- elapsedTime: basicFrameTimeInfo.elapsedTime,
14804
- frameTime: Math.round(basicFrameTimeInfo.frameTime * 100) / 100,
14805
- ...sceneRenderDetail.frameTimeMetric,
14806
- ...sceneRenderDetail.tags
14807
- });
14808
- if (frameInfoList.length > FRAME_STACK_THRESHOLD) {
14809
- this._captureRenderMetric(frameInfoList);
14810
- frameInfoList.length = 0;
14811
- }
14812
- }));
14785
+ shouldRenderRange(visible, payload) {
14786
+ let nextVisible = visible;
14787
+ for (const handler of this._visibleHandlers) nextVisible = handler(nextVisible, payload);
14788
+ return nextVisible;
14813
14789
  }
14814
- /**
14815
- * Send render metric to telemetry service
14816
- * @param frameInfoList
14817
- */
14818
- _captureRenderMetric(frameInfoList) {
14819
- var _this$_telemetryServi;
14820
- const filteredFrameInfo = frameInfoList;
14821
- if (filteredFrameInfo.length === 0) return;
14822
- const sumValueForNumListFields = (data) => {
14823
- let totalSum = 0;
14824
- const sums = Object.entries(data).filter(([_, value]) => Array.isArray(value)).map(([key]) => key).reduce((acc, key) => {
14825
- acc[key] = data[key].reduce((sum, num) => sum + num, 0);
14826
- return acc;
14827
- }, {});
14828
- Object.keys(data).filter((key) => key.startsWith(_univerjs_engine_render.SHEET_EXTENSION_PREFIX)).forEach((key) => {
14829
- totalSum += sums[key];
14830
- });
14831
- return {
14832
- ...sums,
14833
- extensionTotal: totalSum
14834
- };
14835
- };
14836
- const frameTimeListAfterSum = frameInfoList.map((info) => {
14837
- return {
14838
- ...info,
14839
- ...sumValueForNumListFields(info)
14840
- };
14841
- });
14842
- const getSummaryStats = (list) => {
14843
- return Object.entries(list[0]).filter(([key, _]) => !["elapsedTime"].includes(key)).filter(([_, value]) => typeof value === "number").map(([key]) => key).reduce((acc, key) => {
14844
- const values = list.map((obj) => obj[key]);
14845
- const max = Math.max(...values);
14846
- const min = Math.min(...values);
14847
- const avg = values.reduce((sum, val) => sum + val, 0) / values.length;
14848
- acc[key] = {
14849
- max: Math.round(max * 100) / 100,
14850
- min: Math.round(min * 100) / 100,
14851
- avg: Math.round(avg * 100) / 100
14852
- };
14853
- return acc;
14854
- }, {});
14855
- };
14856
- const summaryFrameStats = getSummaryStats(frameTimeListAfterSum);
14857
- const elapsedTimeToStart = filteredFrameInfo[filteredFrameInfo.length - 1].elapsedTime;
14858
- const telemetryData = {
14859
- sheetId: this._context.unit.getActiveSheet().getSheetId(),
14860
- unitId: this._context.unit.getUnitId(),
14861
- elapsedTimeToStart,
14862
- ...summaryFrameStats
14863
- };
14864
- this._renderMetric$.next(telemetryData);
14865
- (_this$_telemetryServi = this._telemetryService) === null || _this$_telemetryServi === void 0 || _this$_telemetryServi.capture("sheet_render_cost", telemetryData);
14790
+ };
14791
+
14792
+ //#endregion
14793
+ //#region src/menu/header-menu-shape.ts
14794
+ const HEADER_MENU_SHAPE_CIRCLE_FILL = "rgba(0, 0, 0, 0.15)";
14795
+ const HEADER_MENU_SHAPE_TRIANGLE_FILL = "rgb(0, 0, 0)";
14796
+ const HEADER_MENU_BACKGROUND_COLOR = "rgb(255, 255, 255, 1)";
14797
+ var HeaderMenuShape = class extends _univerjs_engine_render.Shape {
14798
+ constructor(key, props) {
14799
+ super(key, props);
14800
+ _defineProperty(this, "_size", 12);
14801
+ _defineProperty(this, "_iconRatio", .4);
14802
+ _defineProperty(this, "_mode", 0);
14803
+ this.setShapeProps(props);
14866
14804
  }
14867
- _addComponent(workbook) {
14868
- const { scene, components } = this._context;
14869
- const worksheet = workbook.getActiveSheet();
14870
- const spreadsheet = new _univerjs_engine_render.Spreadsheet("__SpreadsheetRender__");
14871
- this._addViewport(worksheet);
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__", {
14875
- zIndex: 2,
14876
- left: -1,
14877
- top: -1,
14878
- fill: "rgb(248, 249, 250)",
14879
- stroke: "rgb(217, 217, 217)",
14880
- strokeWidth: 1
14805
+ setShapeProps(props) {
14806
+ if (props === null || props === void 0 ? void 0 : props.size) this._size = props.size;
14807
+ if (props === null || props === void 0 ? void 0 : props.mode) this._mode = props.mode;
14808
+ this.transformByState({
14809
+ width: this._size,
14810
+ height: this._size
14881
14811
  });
14882
- this._context.mainComponent = spreadsheet;
14883
- components.set("__SpreadsheetRender__", spreadsheet);
14884
- components.set("__SpreadsheetRowHeader__", spreadsheetRowHeader);
14885
- components.set("__SpreadsheetColumnHeader__", spreadsheetColumnHeader);
14886
- components.set("__SpreadsheetLeftTopPlaceholder__", SpreadsheetLeftTopPlaceholder);
14887
- scene.addObjects([spreadsheet], 0);
14888
- scene.addObjects([
14889
- spreadsheetRowHeader,
14890
- spreadsheetColumnHeader,
14891
- SpreadsheetLeftTopPlaceholder
14892
- ], 10);
14893
- scene.enableLayerCache(0, 10);
14894
14812
  }
14895
- _initViewports(scene, rowHeader, columnHeader) {
14896
- const rowHeaderWidth = rowHeader.hidden ? 0 : rowHeader.width;
14897
- const columnHeaderHeight = columnHeader.hidden ? 0 : columnHeader.height;
14898
- const bufferEdgeX = 100;
14899
- const bufferEdgeY = 100;
14900
- const viewMain = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN, scene, {
14901
- left: rowHeaderWidth,
14902
- top: columnHeaderHeight,
14903
- bottom: 0,
14904
- right: 0,
14905
- isWheelPreventDefaultX: true,
14906
- allowCache: true,
14907
- bufferEdgeX,
14908
- bufferEdgeY
14909
- });
14910
- const viewMainLeftTop = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP, scene, {
14911
- isWheelPreventDefaultX: true,
14912
- active: false,
14913
- allowCache: true,
14914
- bufferEdgeX: 0,
14915
- bufferEdgeY: 0
14916
- });
14917
- const viewMainLeft = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT, scene, {
14918
- isWheelPreventDefaultX: true,
14919
- active: false,
14920
- allowCache: true,
14921
- bufferEdgeX: 0,
14922
- bufferEdgeY
14923
- });
14924
- const viewMainTop = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP, scene, {
14925
- isWheelPreventDefaultX: true,
14926
- active: false,
14927
- allowCache: true,
14928
- bufferEdgeX,
14929
- bufferEdgeY: 0
14930
- });
14931
- const viewRowTop = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP, scene, {
14932
- active: false,
14933
- isWheelPreventDefaultX: true
14813
+ _draw(ctx) {
14814
+ if (this._mode === 1) _univerjs_engine_render.Rect.drawWith(ctx, {
14815
+ width: this._size,
14816
+ height: this._size,
14817
+ radius: this._size,
14818
+ fill: HEADER_MENU_SHAPE_CIRCLE_FILL
14934
14819
  });
14935
- const viewRowBottom = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM, scene, {
14936
- left: 0,
14937
- top: columnHeaderHeight,
14938
- bottom: 0,
14939
- width: rowHeaderWidth + 1,
14940
- isWheelPreventDefaultX: true
14820
+ const iconSize = this._size * .5 * this._iconRatio;
14821
+ const sixtyDegree = Math.PI / 180 * 60;
14822
+ const left = iconSize * Math.sin(sixtyDegree);
14823
+ const top = iconSize * Math.cos(sixtyDegree);
14824
+ _univerjs_engine_render.RegularPolygon.drawWith(ctx, {
14825
+ pointsGroup: [[
14826
+ {
14827
+ x: -left + this._size / 2,
14828
+ y: -top + this._size / 2
14829
+ },
14830
+ {
14831
+ x: left + this._size / 2,
14832
+ y: -top + this._size / 2
14833
+ },
14834
+ {
14835
+ x: this._size / 2,
14836
+ y: iconSize + this._size / 2
14837
+ }
14838
+ ]],
14839
+ fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
14941
14840
  });
14942
- const viewColumnLeft = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT, scene, {
14943
- active: false,
14944
- isWheelPreventDefaultX: true
14841
+ }
14842
+ };
14843
+
14844
+ //#endregion
14845
+ //#region src/views/header-unhide-shape.ts
14846
+ const UNHIDE_ICON_SIZE = 12;
14847
+ const UNHIDE_ARROW_RATIO = .4;
14848
+ var HeaderUnhideShape = class extends _univerjs_engine_render.Shape {
14849
+ constructor(key, props, onClick) {
14850
+ super(key, props);
14851
+ _defineProperty(this, "_size", 12);
14852
+ _defineProperty(this, "_iconRatio", UNHIDE_ARROW_RATIO);
14853
+ _defineProperty(this, "_hovered", true);
14854
+ _defineProperty(this, "_hasPrevious", true);
14855
+ _defineProperty(this, "_hasNext", true);
14856
+ _defineProperty(this, "_unhideType", void 0);
14857
+ if (props) this.setShapeProps(props);
14858
+ this.onPointerEnter$.subscribeEvent(() => this.setShapeProps({ hovered: true }));
14859
+ this.onPointerLeave$.subscribeEvent(() => this.setShapeProps({ hovered: false }));
14860
+ this.onPointerDown$.subscribeEvent(() => onClick === null || onClick === void 0 ? void 0 : onClick());
14861
+ }
14862
+ setShapeProps(props) {
14863
+ if (props.type !== void 0) this._unhideType = props.type;
14864
+ if (props.hovered !== void 0) this._hovered = props.hovered;
14865
+ if (props.hasPrevious !== void 0) this._hasPrevious = props.hasPrevious;
14866
+ if (props.hasNext !== void 0) this._hasNext = props.hasNext;
14867
+ this.transformByState({
14868
+ width: this._size * (this._unhideType === 1 ? 2 : 1),
14869
+ height: this._size * (this._unhideType === 0 ? 2 : 1)
14870
+ });
14871
+ }
14872
+ _draw(ctx) {
14873
+ if (this._unhideType === 0) this._drawOnRow(ctx);
14874
+ else this._drawOnCol(ctx);
14875
+ }
14876
+ _drawOnRow(ctx) {
14877
+ if (this._hovered) if (!this._hasNext || !this._hasPrevious) _univerjs_engine_render.Rect.drawWith(ctx, {
14878
+ width: this._size,
14879
+ height: this._size,
14880
+ stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
14881
+ fill: HEADER_MENU_BACKGROUND_COLOR
14882
+ });
14883
+ else _univerjs_engine_render.Rect.drawWith(ctx, {
14884
+ width: this._size,
14885
+ height: 2 * this._size,
14886
+ stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
14887
+ fill: HEADER_MENU_BACKGROUND_COLOR
14888
+ });
14889
+ const iconSize = this._size * .5 * this._iconRatio;
14890
+ const sixtyDegree = Math.PI / 3;
14891
+ const top = iconSize * Math.cos(sixtyDegree);
14892
+ const left = iconSize * Math.sin(sixtyDegree);
14893
+ if (this._hasPrevious) _univerjs_engine_render.RegularPolygon.drawWith(ctx, {
14894
+ pointsGroup: [[
14895
+ {
14896
+ x: this._size / 2,
14897
+ y: this._size / 2 - left
14898
+ },
14899
+ {
14900
+ x: this._size / 2 - left,
14901
+ y: this._size / 2 + top
14902
+ },
14903
+ {
14904
+ x: this._size / 2 + left,
14905
+ y: this._size / 2 + top
14906
+ }
14907
+ ]],
14908
+ fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
14909
+ });
14910
+ if (this._hasNext) {
14911
+ const offset = this._hasPrevious ? 3 : 1;
14912
+ _univerjs_engine_render.RegularPolygon.drawWith(ctx, {
14913
+ pointsGroup: [[
14914
+ {
14915
+ x: this._size / 2,
14916
+ y: this._size * offset / 2 + left
14917
+ },
14918
+ {
14919
+ x: this._size / 2 - left,
14920
+ y: this._size * offset / 2 - top
14921
+ },
14922
+ {
14923
+ x: this._size / 2 + left,
14924
+ y: this._size * offset / 2 - top
14925
+ }
14926
+ ]],
14927
+ fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
14928
+ });
14929
+ }
14930
+ }
14931
+ /**
14932
+ *
14933
+ * @param ctx
14934
+ */
14935
+ _drawOnCol(ctx) {
14936
+ if (this._hovered) if (!this._hasNext || !this._hasPrevious) _univerjs_engine_render.Rect.drawWith(ctx, {
14937
+ width: this._size,
14938
+ height: this._size,
14939
+ stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
14940
+ fill: HEADER_MENU_BACKGROUND_COLOR
14941
+ });
14942
+ else _univerjs_engine_render.Rect.drawWith(ctx, {
14943
+ width: 2 * this._size,
14944
+ height: this._size,
14945
+ stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
14946
+ fill: HEADER_MENU_BACKGROUND_COLOR
14947
+ });
14948
+ const iconSize = this._size * .5 * this._iconRatio;
14949
+ const sixtyDegree = Math.PI / 3;
14950
+ const top = iconSize * Math.cos(sixtyDegree);
14951
+ const left = iconSize * Math.sin(sixtyDegree);
14952
+ if (this._hasPrevious) _univerjs_engine_render.RegularPolygon.drawWith(ctx, {
14953
+ pointsGroup: [[
14954
+ {
14955
+ x: -top + this._size / 2,
14956
+ y: this._size / 2
14957
+ },
14958
+ {
14959
+ x: this._size / 2 + left,
14960
+ y: this._size / 2 - left
14961
+ },
14962
+ {
14963
+ x: this._size / 2 + left,
14964
+ y: this._size / 2 + left
14965
+ }
14966
+ ]],
14967
+ fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
14968
+ });
14969
+ if (this._hasNext) {
14970
+ const offset = this._hasPrevious ? 3 : 1;
14971
+ _univerjs_engine_render.RegularPolygon.drawWith(ctx, {
14972
+ pointsGroup: [[
14973
+ {
14974
+ x: top + this._size * offset / 2,
14975
+ y: this._size / 2
14976
+ },
14977
+ {
14978
+ x: -left + this._size * offset / 2,
14979
+ y: this._size / 2 - left
14980
+ },
14981
+ {
14982
+ x: -left + this._size * offset / 2,
14983
+ y: this._size / 2 + left
14984
+ }
14985
+ ]],
14986
+ fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
14987
+ });
14988
+ }
14989
+ }
14990
+ };
14991
+
14992
+ //#endregion
14993
+ //#region src/controllers/render-controllers/header-unhide.render-controller.ts
14994
+ const HEADER_UNHIDE_CONTROLLER_SHAPE = "__SpreadsheetHeaderUnhideSHAPEControllerShape__";
14995
+ const HEADER_UNHIDE_RANGE_VISIBLE_CHECK = (0, _univerjs_core.createInterceptorKey)("headerUnhideRangeVisibleCheck");
14996
+ let HeaderUnhideRenderController = class HeaderUnhideRenderController extends _univerjs_core.RxDisposable {
14997
+ get _workbook() {
14998
+ return this._context.unit;
14999
+ }
15000
+ constructor(_context, _sheetSkeletonManagerService, _headerUnhideRangeService, _commandService) {
15001
+ super();
15002
+ this._context = _context;
15003
+ this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
15004
+ this._headerUnhideRangeService = _headerUnhideRangeService;
15005
+ this._commandService = _commandService;
15006
+ _defineProperty(this, "_shapes", {
15007
+ cols: [],
15008
+ rows: []
15009
+ });
15010
+ _defineProperty(this, "interceptor", new _univerjs_core.InterceptorManager({ HEADER_UNHIDE_RANGE_VISIBLE_CHECK }));
15011
+ this._init();
15012
+ }
15013
+ dispose() {
15014
+ super.dispose();
15015
+ this._clearShapes();
15016
+ }
15017
+ _init() {
15018
+ let activeSheetId = "";
15019
+ this._context.unit.activeSheet$.pipe((0, rxjs.takeUntil)(this.dispose$)).subscribe((worksheet) => {
15020
+ this._clearShapes();
15021
+ if (!worksheet) {
15022
+ activeSheetId = "";
15023
+ return;
15024
+ }
15025
+ activeSheetId = worksheet.getSheetId();
15026
+ this._update(this._workbook, worksheet);
15027
+ });
15028
+ this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
15029
+ if (param) {
15030
+ const { unitId, sheetId } = param;
15031
+ if (unitId === this._workbook.getUnitId() && sheetId === activeSheetId) {
15032
+ const worksheet = this._workbook.getSheetBySheetId(sheetId);
15033
+ if (worksheet) this._update(this._workbook, worksheet);
15034
+ }
15035
+ }
15036
+ }));
15037
+ }
15038
+ _update(workbook, worksheet) {
15039
+ var _this$_sheetSkeletonM;
15040
+ const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getSkeletonParam(worksheet.getSheetId())) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
15041
+ if (!skeleton) return;
15042
+ const visibleCheck = this.interceptor.fetchThroughInterceptors(HEADER_UNHIDE_RANGE_VISIBLE_CHECK);
15043
+ const shouldRenderRange = (payload) => {
15044
+ var _visibleCheck;
15045
+ return this._headerUnhideRangeService.shouldRenderRange((_visibleCheck = visibleCheck(true, payload)) !== null && _visibleCheck !== void 0 ? _visibleCheck : true, payload);
15046
+ };
15047
+ const hiddenRowRanges = worksheet.getHiddenRows().filter((range) => shouldRenderRange({
15048
+ axis: "row",
15049
+ range,
15050
+ workbook,
15051
+ worksheet
15052
+ }));
15053
+ const hiddenColRanges = worksheet.getHiddenCols().filter((range) => shouldRenderRange({
15054
+ axis: "column",
15055
+ range,
15056
+ workbook,
15057
+ worksheet
15058
+ }));
15059
+ const { scene } = this._getSheetObject();
15060
+ const rowCount = worksheet.getRowCount();
15061
+ const rowShapes = hiddenRowRanges.map((range) => {
15062
+ const { startRow, endRow } = range;
15063
+ const position = getCoordByCell(startRow, 0, scene, skeleton);
15064
+ const hasPrevious = startRow !== 0;
15065
+ const hasNext = endRow !== rowCount - 1;
15066
+ return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
15067
+ type: 0,
15068
+ hovered: false,
15069
+ hasPrevious,
15070
+ hasNext,
15071
+ top: position.startY - (hasPrevious ? 12 : 0),
15072
+ left: position.startX - 12
15073
+ }, () => this._commandService.executeCommand(_univerjs_sheets.SetSpecificRowsVisibleCommand.id, {
15074
+ unitId: workbook.getUnitId(),
15075
+ subUnitId: worksheet.getSheetId(),
15076
+ ranges: [range]
15077
+ }));
15078
+ });
15079
+ const colCount = worksheet.getColumnCount();
15080
+ const colShapes = hiddenColRanges.map((range) => {
15081
+ const { startColumn, endColumn } = range;
15082
+ const position = getCoordByCell(0, startColumn, scene, skeleton);
15083
+ const hasPrevious = startColumn !== 0;
15084
+ const hasNext = endColumn !== colCount - 1;
15085
+ return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
15086
+ type: 1,
15087
+ hovered: false,
15088
+ hasPrevious,
15089
+ hasNext,
15090
+ top: Math.max(skeleton.columnHeaderHeight, skeleton.columnHeaderHeightAndMarginTop) - 12,
15091
+ left: position.startX - (hasPrevious ? 12 : 0)
15092
+ }, () => this._commandService.executeCommand(_univerjs_sheets.SetSpecificColsVisibleCommand.id, {
15093
+ unitId: workbook.getUnitId(),
15094
+ subUnitId: worksheet.getSheetId(),
15095
+ ranges: [range]
15096
+ }));
15097
+ });
15098
+ scene.addObjects(colShapes, 12);
15099
+ scene.addObjects(rowShapes, 12);
15100
+ this._clearShapes();
15101
+ this._shapes = {
15102
+ cols: colShapes,
15103
+ rows: rowShapes
15104
+ };
15105
+ }
15106
+ _clearShapes() {
15107
+ this._shapes.cols.forEach((shape) => shape.dispose());
15108
+ this._shapes.rows.forEach((shape) => shape.dispose());
15109
+ this._shapes = {
15110
+ cols: [],
15111
+ rows: []
15112
+ };
15113
+ }
15114
+ _getSheetObject() {
15115
+ return getSheetObject(this._workbook, this._context);
15116
+ }
15117
+ };
15118
+ HeaderUnhideRenderController = __decorate([
15119
+ __decorateParam(1, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)),
15120
+ __decorateParam(2, (0, _univerjs_core.Inject)(HeaderUnhideRangeService)),
15121
+ __decorateParam(3, _univerjs_core.ICommandService)
15122
+ ], HeaderUnhideRenderController);
15123
+
15124
+ //#endregion
15125
+ //#region src/controllers/render-controllers/sheet.render-controller.ts
15126
+ const FRAME_STACK_THRESHOLD = 60;
15127
+ let SheetRenderController = class SheetRenderController extends _univerjs_core.RxDisposable {
15128
+ constructor(_context, _configService, _sheetSkeletonManagerService, _sheetRenderService, _commandService, _telemetryService) {
15129
+ super();
15130
+ this._context = _context;
15131
+ this._configService = _configService;
15132
+ this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
15133
+ this._sheetRenderService = _sheetRenderService;
15134
+ this._commandService = _commandService;
15135
+ this._telemetryService = _telemetryService;
15136
+ _defineProperty(this, "_renderMetric$", new rxjs.Subject());
15137
+ _defineProperty(this, "renderMetric$", this._renderMetric$.asObservable());
15138
+ _defineProperty(this, "_renderFrameTimeMetric", null);
15139
+ _defineProperty(this, "_renderFrameTags", {});
15140
+ _defineProperty(this, "_afterRenderMetric$", new rxjs.Subject());
15141
+ this._addNewRender();
15142
+ this._initRenderMetricSubscriber();
15143
+ }
15144
+ _addNewRender() {
15145
+ const { scene, engine, unit: workbook } = this._context;
15146
+ this._addComponent(workbook);
15147
+ this._initRerenderScheduler();
15148
+ this._initCommandListener();
15149
+ const worksheet = this._context.unit.getActiveSheet();
15150
+ if (!worksheet) throw new Error("No active sheet found");
15151
+ const sheetId = worksheet.getSheetId();
15152
+ this._sheetSkeletonManagerService.setCurrent({ sheetId });
15153
+ const frameFn = () => scene.render();
15154
+ this.disposeWithMe(this._context.activated$.subscribe((activated) => {
15155
+ if (activated) engine.runRenderLoop(frameFn);
15156
+ else engine.stopRenderLoop(frameFn);
15157
+ }));
15158
+ }
15159
+ _initRenderMetricSubscriber() {
15160
+ const { engine } = this._context;
15161
+ this.disposeWithMe(engine.beginFrame$.subscribe(() => {
15162
+ this._renderFrameTimeMetric = null;
15163
+ this._renderFrameTags = {};
15164
+ }));
15165
+ this.disposeWithMe(engine.endFrame$.subscribe(() => {
15166
+ if (this._renderFrameTimeMetric && Object.keys(this._renderFrameTimeMetric).filter((key) => key.startsWith(_univerjs_engine_render.SHEET_EXTENSION_PREFIX)).length > 0) this._afterRenderMetric$.next({
15167
+ frameTimeMetric: this._renderFrameTimeMetric,
15168
+ tags: this._renderFrameTags
15169
+ });
15170
+ }));
15171
+ this.disposeWithMe(engine.renderFrameTimeMetric$.subscribe(([key, value]) => {
15172
+ if (!this._renderFrameTimeMetric) this._renderFrameTimeMetric = {};
15173
+ if (!this._renderFrameTimeMetric[key]) this._renderFrameTimeMetric[key] = [];
15174
+ this._renderFrameTimeMetric[key].push(Math.round(value * 100) / 100);
15175
+ }));
15176
+ this.disposeWithMe(engine.renderFrameTags$.subscribe(([key, value]) => {
15177
+ this._renderFrameTags[key] = value;
15178
+ }));
15179
+ const frameInfoList = [];
15180
+ this.disposeWithMe(this._afterRenderMetric$.pipe((0, rxjs.withLatestFrom)(engine.endFrame$)).subscribe(([sceneRenderDetail, basicFrameTimeInfo]) => {
15181
+ frameInfoList.push({
15182
+ FPS: basicFrameTimeInfo.FPS,
15183
+ elapsedTime: basicFrameTimeInfo.elapsedTime,
15184
+ frameTime: Math.round(basicFrameTimeInfo.frameTime * 100) / 100,
15185
+ ...sceneRenderDetail.frameTimeMetric,
15186
+ ...sceneRenderDetail.tags
15187
+ });
15188
+ if (frameInfoList.length > FRAME_STACK_THRESHOLD) {
15189
+ this._captureRenderMetric(frameInfoList);
15190
+ frameInfoList.length = 0;
15191
+ }
15192
+ }));
15193
+ }
15194
+ /**
15195
+ * Send render metric to telemetry service
15196
+ * @param frameInfoList
15197
+ */
15198
+ _captureRenderMetric(frameInfoList) {
15199
+ var _this$_telemetryServi;
15200
+ const filteredFrameInfo = frameInfoList;
15201
+ if (filteredFrameInfo.length === 0) return;
15202
+ const sumValueForNumListFields = (data) => {
15203
+ let totalSum = 0;
15204
+ const sums = Object.entries(data).filter(([_, value]) => Array.isArray(value)).map(([key]) => key).reduce((acc, key) => {
15205
+ acc[key] = data[key].reduce((sum, num) => sum + num, 0);
15206
+ return acc;
15207
+ }, {});
15208
+ Object.keys(data).filter((key) => key.startsWith(_univerjs_engine_render.SHEET_EXTENSION_PREFIX)).forEach((key) => {
15209
+ totalSum += sums[key];
15210
+ });
15211
+ return {
15212
+ ...sums,
15213
+ extensionTotal: totalSum
15214
+ };
15215
+ };
15216
+ const frameTimeListAfterSum = frameInfoList.map((info) => {
15217
+ return {
15218
+ ...info,
15219
+ ...sumValueForNumListFields(info)
15220
+ };
15221
+ });
15222
+ const getSummaryStats = (list) => {
15223
+ return Object.entries(list[0]).filter(([key, _]) => !["elapsedTime"].includes(key)).filter(([_, value]) => typeof value === "number").map(([key]) => key).reduce((acc, key) => {
15224
+ const values = list.map((obj) => obj[key]);
15225
+ const max = Math.max(...values);
15226
+ const min = Math.min(...values);
15227
+ const avg = values.reduce((sum, val) => sum + val, 0) / values.length;
15228
+ acc[key] = {
15229
+ max: Math.round(max * 100) / 100,
15230
+ min: Math.round(min * 100) / 100,
15231
+ avg: Math.round(avg * 100) / 100
15232
+ };
15233
+ return acc;
15234
+ }, {});
15235
+ };
15236
+ const summaryFrameStats = getSummaryStats(frameTimeListAfterSum);
15237
+ const elapsedTimeToStart = filteredFrameInfo[filteredFrameInfo.length - 1].elapsedTime;
15238
+ const telemetryData = {
15239
+ sheetId: this._context.unit.getActiveSheet().getSheetId(),
15240
+ unitId: this._context.unit.getUnitId(),
15241
+ elapsedTimeToStart,
15242
+ ...summaryFrameStats
15243
+ };
15244
+ this._renderMetric$.next(telemetryData);
15245
+ (_this$_telemetryServi = this._telemetryService) === null || _this$_telemetryServi === void 0 || _this$_telemetryServi.capture("sheet_render_cost", telemetryData);
15246
+ }
15247
+ _addComponent(workbook) {
15248
+ const { scene, components } = this._context;
15249
+ const worksheet = workbook.getActiveSheet();
15250
+ const spreadsheet = new _univerjs_engine_render.Spreadsheet("__SpreadsheetRender__");
15251
+ this._addViewport(worksheet);
15252
+ const spreadsheetRowHeader = new _univerjs_engine_render.SpreadsheetRowHeader("__SpreadsheetRowHeader__");
15253
+ const spreadsheetColumnHeader = new _univerjs_engine_render.SpreadsheetColumnHeader("__SpreadsheetColumnHeader__");
15254
+ const SpreadsheetLeftTopPlaceholder = new _univerjs_engine_render.Rect("__SpreadsheetLeftTopPlaceholder__", {
15255
+ zIndex: 2,
15256
+ left: -1,
15257
+ top: -1,
15258
+ fill: "rgb(248, 249, 250)",
15259
+ stroke: "rgb(217, 217, 217)",
15260
+ strokeWidth: 1
15261
+ });
15262
+ this._context.mainComponent = spreadsheet;
15263
+ components.set("__SpreadsheetRender__", spreadsheet);
15264
+ components.set("__SpreadsheetRowHeader__", spreadsheetRowHeader);
15265
+ components.set("__SpreadsheetColumnHeader__", spreadsheetColumnHeader);
15266
+ components.set("__SpreadsheetLeftTopPlaceholder__", SpreadsheetLeftTopPlaceholder);
15267
+ scene.addObjects([spreadsheet], 0);
15268
+ scene.addObjects([
15269
+ spreadsheetRowHeader,
15270
+ spreadsheetColumnHeader,
15271
+ SpreadsheetLeftTopPlaceholder
15272
+ ], 10);
15273
+ scene.enableLayerCache(0, 10);
15274
+ }
15275
+ _initViewports(scene, rowHeader, columnHeader) {
15276
+ const rowHeaderWidth = rowHeader.hidden ? 0 : rowHeader.width;
15277
+ const columnHeaderHeight = columnHeader.hidden ? 0 : columnHeader.height;
15278
+ const bufferEdgeX = 100;
15279
+ const bufferEdgeY = 100;
15280
+ const viewMain = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN, scene, {
15281
+ left: rowHeaderWidth,
15282
+ top: columnHeaderHeight,
15283
+ bottom: 0,
15284
+ right: 0,
15285
+ isWheelPreventDefaultX: true,
15286
+ allowCache: true,
15287
+ bufferEdgeX,
15288
+ bufferEdgeY
15289
+ });
15290
+ const viewMainLeftTop = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP, scene, {
15291
+ isWheelPreventDefaultX: true,
15292
+ active: false,
15293
+ allowCache: true,
15294
+ bufferEdgeX: 0,
15295
+ bufferEdgeY: 0
15296
+ });
15297
+ const viewMainLeft = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT, scene, {
15298
+ isWheelPreventDefaultX: true,
15299
+ active: false,
15300
+ allowCache: true,
15301
+ bufferEdgeX: 0,
15302
+ bufferEdgeY
15303
+ });
15304
+ const viewMainTop = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP, scene, {
15305
+ isWheelPreventDefaultX: true,
15306
+ active: false,
15307
+ allowCache: true,
15308
+ bufferEdgeX,
15309
+ bufferEdgeY: 0
15310
+ });
15311
+ const viewRowTop = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP, scene, {
15312
+ active: false,
15313
+ isWheelPreventDefaultX: true
15314
+ });
15315
+ const viewRowBottom = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM, scene, {
15316
+ left: 0,
15317
+ top: columnHeaderHeight,
15318
+ bottom: 0,
15319
+ width: rowHeaderWidth + 1,
15320
+ isWheelPreventDefaultX: true
15321
+ });
15322
+ const viewColumnLeft = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT, scene, {
15323
+ active: false,
15324
+ isWheelPreventDefaultX: true
14945
15325
  });
14946
15326
  const viewColumnRight = new _univerjs_engine_render.Viewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT, scene, {
14947
15327
  left: rowHeaderWidth,
@@ -15000,13 +15380,13 @@ let SheetRenderController = class SheetRenderController extends _univerjs_core.R
15000
15380
  const spreadsheetRowHeader = components.get("__SpreadsheetRowHeader__");
15001
15381
  const spreadsheetColumnHeader = components.get("__SpreadsheetColumnHeader__");
15002
15382
  const spreadsheetLeftTopPlaceholder = components.get("__SpreadsheetLeftTopPlaceholder__");
15003
- const { rowHeaderWidth, columnHeaderHeight } = spreadsheetSkeleton;
15383
+ const leftTopPlaceholderSize = getLeftTopPlaceholderSize(spreadsheetSkeleton);
15004
15384
  spreadsheet === null || spreadsheet === void 0 || spreadsheet.updateSkeleton(spreadsheetSkeleton);
15005
15385
  spreadsheetRowHeader === null || spreadsheetRowHeader === void 0 || spreadsheetRowHeader.updateSkeleton(spreadsheetSkeleton);
15006
15386
  spreadsheetColumnHeader === null || spreadsheetColumnHeader === void 0 || spreadsheetColumnHeader.updateSkeleton(spreadsheetSkeleton);
15007
15387
  spreadsheetLeftTopPlaceholder === null || spreadsheetLeftTopPlaceholder === void 0 || spreadsheetLeftTopPlaceholder.transformByState({
15008
- width: rowHeaderWidth,
15009
- height: columnHeaderHeight
15388
+ width: leftTopPlaceholderSize.width,
15389
+ height: leftTopPlaceholderSize.height
15010
15390
  });
15011
15391
  }));
15012
15392
  }
@@ -15126,6 +15506,13 @@ SheetRenderController = __decorate([
15126
15506
  __decorateParam(4, _univerjs_core.ICommandService),
15127
15507
  __decorateParam(5, (0, _univerjs_core.Optional)(_univerjs_telemetry.ITelemetryService))
15128
15508
  ], SheetRenderController);
15509
+ function getLeftTopPlaceholderSize(skeleton) {
15510
+ var _skeleton$rowHeaderWi, _skeleton$columnHeade;
15511
+ return {
15512
+ width: (_skeleton$rowHeaderWi = skeleton.rowHeaderWidthAndMarginLeft) !== null && _skeleton$rowHeaderWi !== void 0 ? _skeleton$rowHeaderWi : skeleton.rowHeaderWidth,
15513
+ height: (_skeleton$columnHeade = skeleton.columnHeaderHeightAndMarginTop) !== null && _skeleton$columnHeade !== void 0 ? _skeleton$columnHeade : skeleton.columnHeaderHeight
15514
+ };
15515
+ }
15129
15516
 
15130
15517
  //#endregion
15131
15518
  //#region src/components/border-panel/border-line/icons/BorderDashDot.tsx
@@ -16139,7 +16526,7 @@ function getBaseRangeMenuHidden$(accessor) {
16139
16526
  var _selectionManagerServ;
16140
16527
  const range = (_selectionManagerServ = selectionManagerService.getCurrentLastSelection()) === null || _selectionManagerServ === void 0 ? void 0 : _selectionManagerServ.range;
16141
16528
  if (!range) return true;
16142
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
16529
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
16143
16530
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
16144
16531
  if (!workbook || !worksheet) return true;
16145
16532
  const unitId = workbook.getUnitId();
@@ -16162,7 +16549,7 @@ function getInsertBeforeMenuHidden$(accessor, type) {
16162
16549
  var _selectionManagerServ3;
16163
16550
  const range = (_selectionManagerServ3 = selectionManagerService.getCurrentLastSelection()) === null || _selectionManagerServ3 === void 0 ? void 0 : _selectionManagerServ3.range;
16164
16551
  if (!range) return true;
16165
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
16552
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
16166
16553
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
16167
16554
  if (!workbook || !worksheet) return true;
16168
16555
  const unitId = workbook.getUnitId();
@@ -16190,7 +16577,7 @@ function getDeleteMenuHidden$(accessor, type) {
16190
16577
  var _selectionManagerServ4;
16191
16578
  const range = (_selectionManagerServ4 = selectionManagerService.getCurrentLastSelection()) === null || _selectionManagerServ4 === void 0 ? void 0 : _selectionManagerServ4.range;
16192
16579
  if (!range) return true;
16193
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
16580
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
16194
16581
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
16195
16582
  if (!workbook || !worksheet) return true;
16196
16583
  const unitId = workbook.getUnitId();
@@ -16221,7 +16608,7 @@ function getCellMenuHidden$(accessor, type) {
16221
16608
  var _selectionManagerServ5;
16222
16609
  const range = (_selectionManagerServ5 = selectionManagerService.getCurrentLastSelection()) === null || _selectionManagerServ5 === void 0 ? void 0 : _selectionManagerServ5.range;
16223
16610
  if (!range) return true;
16224
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
16611
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
16225
16612
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
16226
16613
  if (!workbook || !worksheet) return true;
16227
16614
  const unitId = workbook.getUnitId();
@@ -16321,7 +16708,6 @@ function ClearSelectionContentMenuItemFactory(accessor) {
16321
16708
  return {
16322
16709
  id: _univerjs_sheets.ClearSelectionContentCommand.id,
16323
16710
  type: _univerjs_ui.MenuItemType.BUTTON,
16324
- icon: "ClearFormatDoubleIcon",
16325
16711
  title: "rightClick.clearContent",
16326
16712
  disabled$: getObservableWithExclusiveRange$(accessor, getCurrentRangeDisable$(accessor, {
16327
16713
  workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
@@ -16335,7 +16721,6 @@ function ClearSelectionFormatMenuItemFactory(accessor) {
16335
16721
  return {
16336
16722
  id: _univerjs_sheets.ClearSelectionFormatCommand.id,
16337
16723
  type: _univerjs_ui.MenuItemType.BUTTON,
16338
- icon: "ClearFormatDoubleIcon",
16339
16724
  title: "rightClick.clearFormat",
16340
16725
  disabled$: getCurrentRangeDisable$(accessor, {
16341
16726
  workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
@@ -16345,11 +16730,28 @@ function ClearSelectionFormatMenuItemFactory(accessor) {
16345
16730
  hidden$: (0, _univerjs_ui.getMenuHiddenObservable)(accessor, _univerjs_core.UniverInstanceType.UNIVER_SHEET)
16346
16731
  };
16347
16732
  }
16348
- function ClearSelectionAllMenuItemFactory(accessor) {
16733
+ function ClearSelectionAllToolbarMenuItemFactory(accessor) {
16349
16734
  return {
16350
16735
  id: _univerjs_sheets.ClearSelectionAllCommand.id,
16351
16736
  type: _univerjs_ui.MenuItemType.BUTTON,
16352
16737
  icon: "ClearFormatDoubleIcon",
16738
+ tooltip: "rightClick.clearAll",
16739
+ disabled$: getObservableWithExclusiveRange$(accessor, getCurrentRangeDisable$(accessor, {
16740
+ workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
16741
+ worksheetTypes: [
16742
+ _univerjs_sheets.WorksheetEditPermission,
16743
+ _univerjs_sheets.WorksheetSetCellValuePermission,
16744
+ _univerjs_sheets.WorksheetSetCellStylePermission
16745
+ ],
16746
+ rangeTypes: [_univerjs_sheets.RangeProtectionPermissionEditPoint]
16747
+ })),
16748
+ hidden$: (0, _univerjs_ui.getMenuHiddenObservable)(accessor, _univerjs_core.UniverInstanceType.UNIVER_SHEET)
16749
+ };
16750
+ }
16751
+ function ClearSelectionAllMenuItemFactory(accessor) {
16752
+ return {
16753
+ id: _univerjs_sheets.ClearSelectionAllCommand.id,
16754
+ type: _univerjs_ui.MenuItemType.BUTTON,
16353
16755
  title: "rightClick.clearAll",
16354
16756
  tooltip: "rightClick.clearAll",
16355
16757
  disabled$: getObservableWithExclusiveRange$(accessor, getCurrentRangeDisable$(accessor, {
@@ -16656,7 +17058,7 @@ function ToggleGridlinesMenuFactory(accessor) {
16656
17058
  icon: "HideGridlinesDoubleIcon",
16657
17059
  activated$: new rxjs.Observable((observer) => {
16658
17060
  const getValue = () => {
16659
- const workbook = instanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
17061
+ const workbook = instanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
16660
17062
  if (workbook) return workbook.getActiveSheet().getConfig().showGridlines === _univerjs_core.BooleanNumber.TRUE;
16661
17063
  return false;
16662
17064
  };
@@ -18555,7 +18957,7 @@ function ShowMenuItemFactory(accessor) {
18555
18957
  title: "sheetConfig.unhide",
18556
18958
  disabled$: new rxjs.Observable((subscriber) => {
18557
18959
  function disableFunction() {
18558
- const worksheets = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getWorksheets();
18960
+ const worksheets = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getWorksheets();
18559
18961
  const visibleSheets = Array.from(worksheets.values());
18560
18962
  subscriber.next(visibleSheets.length === 1);
18561
18963
  }
@@ -18570,7 +18972,7 @@ function ShowMenuItemFactory(accessor) {
18570
18972
  };
18571
18973
  }
18572
18974
  function disableFunction(univerInstanceService, subscriber) {
18573
- const worksheets = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getWorksheets();
18975
+ const worksheets = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getWorksheets();
18574
18976
  const visibleSheets = Array.from(worksheets.values()).filter((sheet) => sheet.getConfig().hidden === _univerjs_core.BooleanNumber.FALSE);
18575
18977
  subscriber.next(visibleSheets.length === 1);
18576
18978
  }
@@ -18646,7 +19048,7 @@ const menuSchema = {
18646
19048
  },
18647
19049
  [_univerjs_sheets.ClearSelectionAllCommand.id]: {
18648
19050
  order: 3,
18649
- menuItemFactory: ClearSelectionAllMenuItemFactory
19051
+ menuItemFactory: ClearSelectionAllToolbarMenuItemFactory
18650
19052
  }
18651
19053
  },
18652
19054
  [_univerjs_ui.RibbonStartGroup.FORMAT]: {
@@ -19399,7 +19801,7 @@ let SheetCanvasPopManagerService = class SheetCanvasPopManagerService extends _u
19399
19801
  */
19400
19802
  attachPopupToObject(targetObject, popup) {
19401
19803
  var _this$_renderManagerS;
19402
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
19804
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
19403
19805
  const worksheet = workbook.getActiveSheet();
19404
19806
  if (!worksheet || this._isSelectionMoving && !popup.showOnSelectionMoving) return {
19405
19807
  dispose: () => {},
@@ -19449,7 +19851,7 @@ let SheetCanvasPopManagerService = class SheetCanvasPopManagerService extends _u
19449
19851
  }
19450
19852
  attachPopupByPosition(bound, popup, location) {
19451
19853
  var _this$_renderManagerS2;
19452
- let workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
19854
+ let workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
19453
19855
  let worksheet = workbook.getActiveSheet();
19454
19856
  if (!worksheet) return null;
19455
19857
  const unitId = workbook.getUnitId();
@@ -19490,7 +19892,7 @@ let SheetCanvasPopManagerService = class SheetCanvasPopManagerService extends _u
19490
19892
  }
19491
19893
  attachPopupToAbsolutePosition(bound, popup, _unitId, _subUnitId) {
19492
19894
  var _this$_renderManagerS3;
19493
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
19895
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
19494
19896
  const worksheet = workbook.getActiveSheet();
19495
19897
  if (!worksheet) return null;
19496
19898
  const unitId = workbook.getUnitId();
@@ -19595,7 +19997,7 @@ let SheetCanvasPopManagerService = class SheetCanvasPopManagerService extends _u
19595
19997
  * @param showOnSelectionMoving
19596
19998
  */
19597
19999
  attachRangePopup(range, popup, _unitId, _subUnitId, viewport, showOnSelectionMoving = false) {
19598
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
20000
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
19599
20001
  const worksheet = workbook.getActiveSheet();
19600
20002
  if (!worksheet) return null;
19601
20003
  const unitId = workbook.getUnitId();
@@ -19942,7 +20344,7 @@ const CellPopup = (props) => {
19942
20344
  const DefinedNameInput = (props) => {
19943
20345
  const { inputId, state = false, type = "range", confirm, cancel, name, formulaOrRefString, comment = "", localSheetId = _univerjs_sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME, hidden = false, id } = props;
19944
20346
  const univerInstanceService = (0, _univerjs_ui.useDependency)(_univerjs_core.IUniverInstanceService);
19945
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
20347
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
19946
20348
  const localeService = (0, _univerjs_ui.useDependency)(_univerjs_core.LocaleService);
19947
20349
  const definedNamesService = (0, _univerjs_ui.useDependency)(_univerjs_engine_formula.IDefinedNamesService);
19948
20350
  const superTableService = (0, _univerjs_ui.useDependency)(_univerjs_engine_formula.ISuperTableService);
@@ -20736,7 +21138,7 @@ function DefinedNameOverlay({ search, isInputEvent }) {
20736
21138
  const definedNamesService = (0, _univerjs_ui.useDependency)(_univerjs_engine_formula.IDefinedNamesService);
20737
21139
  const univerInstanceService = (0, _univerjs_ui.useDependency)(_univerjs_core.IUniverInstanceService);
20738
21140
  const sidebarService = (0, _univerjs_ui.useDependency)(_univerjs_ui.ISidebarService);
20739
- const unitId = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getUnitId();
21141
+ const unitId = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getUnitId();
20740
21142
  const getDefinedNameMap = () => {
20741
21143
  const definedNameMap = definedNamesService.getDefinedNameMap(unitId);
20742
21144
  if (definedNameMap) return Array.from(Object.values(definedNameMap));
@@ -22834,7 +23236,7 @@ function ZoomSlider() {
22834
23236
  }, [commandService, getCurrentZoom]);
22835
23237
  function handleChange(value) {
22836
23238
  setZoom(value);
22837
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
23239
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
22838
23240
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
22839
23241
  if (worksheet == null) return;
22840
23242
  const zoomRatio = value / 100;
@@ -23887,14 +24289,14 @@ let StatusBarController = class StatusBarController extends _univerjs_core.Dispo
23887
24289
  return rawCell;
23888
24290
  }
23889
24291
  _calculateSelection(selections, primary) {
23890
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
24292
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
23891
24293
  if (!workbook) return this._clearResult();
23892
24294
  const unitId = workbook.getUnitId();
23893
24295
  const sheet = workbook.getActiveSheet();
23894
24296
  const sheetId = sheet === null || sheet === void 0 ? void 0 : sheet.getSheetId();
23895
24297
  if (!sheetId) return this._clearResult();
23896
24298
  const sheetData = {};
23897
- this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getSheets().forEach((sheet) => {
24299
+ this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getSheets().forEach((sheet) => {
23898
24300
  const sheetConfig = sheet.getConfig();
23899
24301
  sheetData[sheet.getSheetId()] = {
23900
24302
  cellData: new _univerjs_core.ObjectMatrix(sheetConfig.cellData),
@@ -23990,7 +24392,7 @@ const useHighlightRange = (ranges = []) => {
23990
24392
  //#endregion
23991
24393
  //#region package.json
23992
24394
  var name = "@univerjs/sheets-ui";
23993
- var version = "0.23.0";
24395
+ var version = "0.24.0";
23994
24396
 
23995
24397
  //#endregion
23996
24398
  //#region src/services/cell-alert-manager.service.ts
@@ -24238,7 +24640,7 @@ let SheetsDefinedNameController = class SheetsDefinedNameController extends _uni
24238
24640
  _syncDefinedNameRange(params) {
24239
24641
  if (params.length === 0) return;
24240
24642
  const lastSelection = params[params.length - 1];
24241
- const workbook = this._instanceSrv.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
24643
+ const workbook = this._instanceSrv.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
24242
24644
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
24243
24645
  if (!worksheet) return;
24244
24646
  this._definedNamesService.setCurrentRange({
@@ -24660,7 +25062,7 @@ let FormatPainterController = class FormatPainterController extends _univerjs_co
24660
25062
  const range = selection === null || selection === void 0 ? void 0 : selection.range;
24661
25063
  if (!range) return null;
24662
25064
  const { startRow, endRow, startColumn, endColumn } = range;
24663
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
25065
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
24664
25066
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
24665
25067
  if (!worksheet) return null;
24666
25068
  const cellData = worksheet.getCellMatrix();
@@ -25418,7 +25820,7 @@ let SheetPermissionInterceptorCanvasRenderController = class SheetPermissionInte
25418
25820
  _initFreezePermissionInterceptor() {
25419
25821
  this.disposeWithMe(this._headerFreezeRenderController.interceptor.intercept(this._headerFreezeRenderController.interceptor.getInterceptPoints().FREEZE_PERMISSION_CHECK, { handler: (_, __) => {
25420
25822
  var _this$_permissionServ5, _this$_permissionServ6;
25421
- const workbook = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
25823
+ const workbook = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
25422
25824
  if (!(workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet()) || !workbook) return false;
25423
25825
  return (_this$_permissionServ5 = (_this$_permissionServ6 = this._permissionService.getPermissionPoint(new _univerjs_sheets.WorkbookEditablePermission(workbook.getUnitId()).id)) === null || _this$_permissionServ6 === void 0 ? void 0 : _this$_permissionServ6.value) !== null && _this$_permissionServ5 !== void 0 ? _this$_permissionServ5 : false;
25424
25826
  } }));
@@ -25464,7 +25866,7 @@ let SheetPermissionInterceptorClipboardController = class SheetPermissionInterce
25464
25866
  startColumn: startRange.startColumn + ranges.startColumn,
25465
25867
  endColumn: startRange.startColumn + ranges.endColumn
25466
25868
  };
25467
- const worksheet = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();
25869
+ const worksheet = this._univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();
25468
25870
  if (!worksheet) return false;
25469
25871
  const { startRow, endRow, startColumn, endColumn } = targetRange;
25470
25872
  let hasPermission = true;
@@ -25593,7 +25995,7 @@ const generateDefaultRule = (injector, fromSheetBar) => {
25593
25995
  var _selectionManagerServ, _selectionManagerServ2;
25594
25996
  const univerInstanceService = injector.get(_univerjs_core.IUniverInstanceService);
25595
25997
  const selectionManagerService = injector.get(_univerjs_sheets.SheetsSelectionsService);
25596
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
25998
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
25597
25999
  const worksheet = workbook.getActiveSheet();
25598
26000
  let unitType = _univerjs_sheets.UnitObject.SelectRange;
25599
26001
  let ranges = (_selectionManagerServ = (_selectionManagerServ2 = selectionManagerService.getCurrentSelections()) === null || _selectionManagerServ2 === void 0 ? void 0 : _selectionManagerServ2.map((s) => s.range)) !== null && _selectionManagerServ !== void 0 ? _selectionManagerServ : [];
@@ -25620,7 +26022,7 @@ const generateDefaultRule = (injector, fromSheetBar) => {
25620
26022
  };
25621
26023
  };
25622
26024
  const generateRuleByUnitType = (injector, rule) => {
25623
- const worksheet = injector.get(_univerjs_core.IUniverInstanceService).getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();
26025
+ const worksheet = injector.get(_univerjs_core.IUniverInstanceService).getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();
25624
26026
  const { unitType } = rule;
25625
26027
  if (unitType === _univerjs_sheets.UnitObject.Worksheet) return {
25626
26028
  ...rule,
@@ -25645,7 +26047,7 @@ const PermissionDetailFooterPart = (props) => {
25645
26047
  const localeService = (0, _univerjs_ui.useDependency)(_univerjs_core.LocaleService);
25646
26048
  const commandService = (0, _univerjs_ui.useDependency)(_univerjs_core.ICommandService);
25647
26049
  const sheetPermissionUserManagerService = (0, _univerjs_ui.useDependency)(SheetPermissionUserManagerService);
25648
- const workbook = (0, _univerjs_ui.useDependency)(_univerjs_core.IUniverInstanceService).getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
26050
+ const workbook = (0, _univerjs_ui.useDependency)(_univerjs_core.IUniverInstanceService).getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
25649
26051
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
25650
26052
  if (!workbook || !worksheet) return null;
25651
26053
  const unitId = workbook.getUnitId();
@@ -25806,7 +26208,7 @@ const PermissionDetailMainPart = (props) => {
25806
26208
  const univerInstanceService = (0, _univerjs_ui.useDependency)(_univerjs_core.IUniverInstanceService);
25807
26209
  const localeService = (0, _univerjs_ui.useDependency)(_univerjs_core.LocaleService);
25808
26210
  const injector = (0, _univerjs_ui.useDependency)(_univerjs_core.Injector);
25809
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
26211
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
25810
26212
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
25811
26213
  if (!workbook || !worksheet) return null;
25812
26214
  const unitId = workbook.getUnitId();
@@ -25814,7 +26216,7 @@ const PermissionDetailMainPart = (props) => {
25814
26216
  const handleRangeChange = (rangeText) => {
25815
26217
  const newRange = rangeText.split(",").map(_univerjs_engine_formula.deserializeRangeWithSheet).map((item) => item.range);
25816
26218
  if (newRange.some((i) => !(0, _univerjs_core.isValidRange)(i) || i.endColumn < i.startColumn || i.endRow < i.startRow)) return;
25817
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
26219
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
25818
26220
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
25819
26221
  if (!workbook || !worksheet) return;
25820
26222
  const unitId = workbook.getUnitId();
@@ -25876,7 +26278,7 @@ const PermissionDetailUserPart = (props) => {
25876
26278
  const userManagerService = (0, _univerjs_ui.useDependency)(_univerjs_core.UserManagerService);
25877
26279
  const univerInstanceService = (0, _univerjs_ui.useDependency)(_univerjs_core.IUniverInstanceService);
25878
26280
  const selectUserList = (0, _univerjs_ui.useObservable)(sheetPermissionUserManagerService.selectUserList$, sheetPermissionUserManagerService.selectUserList);
25879
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
26281
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
25880
26282
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
25881
26283
  if (!workbook || !worksheet) return null;
25882
26284
  const unitId = workbook.getUnitId();
@@ -26449,7 +26851,7 @@ const SheetPermissionDialog = () => {
26449
26851
  const worksheetProtectionPointRuleModel = (0, _univerjs_ui.useDependency)(_univerjs_sheets.WorksheetProtectionPointModel);
26450
26852
  const dialogService = (0, _univerjs_ui.useDependency)(_univerjs_ui.IDialogService);
26451
26853
  const permissionService = (0, _univerjs_ui.useDependency)(_univerjs_core.IPermissionService);
26452
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
26854
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
26453
26855
  const worksheet = workbook.getActiveSheet();
26454
26856
  if (!worksheet) throw new Error("No active sheet found");
26455
26857
  const [collaborators, setCollaborators] = (0, react.useState)([]);
@@ -26500,7 +26902,7 @@ const SheetPermissionDialog = () => {
26500
26902
  getPermissionPoints();
26501
26903
  }, []);
26502
26904
  const handleChangeActionPermission = async () => {
26503
- const workbook = univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
26905
+ const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
26504
26906
  const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
26505
26907
  if (!worksheet) throw new Error("No active sheet found");
26506
26908
  const unitId = workbook.getUnitId();
@@ -26893,690 +27295,394 @@ var WorksheetProtectionRenderExtension = class extends _univerjs_engine_render.S
26893
27295
  getShadowStrategy() {
26894
27296
  return this._shadowStrategy;
26895
27297
  }
26896
- setZIndex(zIndex) {
26897
- this.Z_INDEX = zIndex;
26898
- }
26899
- };
26900
-
26901
- //#endregion
26902
- //#region src/controllers/permission/sheet-permission-render.controller.ts
26903
- let SheetPermissionRenderManagerController = class SheetPermissionRenderManagerController extends _univerjs_core.Disposable {
26904
- constructor(_injector, _componentManager) {
26905
- super();
26906
- this._injector = _injector;
26907
- this._componentManager = _componentManager;
26908
- this._init();
26909
- }
26910
- _init() {
26911
- this._initComponents();
26912
- this._initUiPartComponents();
26913
- }
26914
- _initComponents() {
26915
- [
26916
- [permissionMenuIconKey, _univerjs_icons.ProtectIcon],
26917
- [permissionDeleteIconKey, _univerjs_icons.DeleteIcon],
26918
- [permissionEditIconKey, _univerjs_icons.WriteIcon],
26919
- [permissionCheckIconKey, _univerjs_icons.CheckMarkIcon],
26920
- [permissionLockIconKey, _univerjs_icons.LockIcon],
26921
- [UNIVER_SHEET_PERMISSION_PANEL, SheetPermissionPanel],
26922
- [UNIVER_SHEET_PERMISSION_USER_DIALOG, SheetPermissionUserDialog],
26923
- [UNIVER_SHEET_PERMISSION_DIALOG, SheetPermissionDialog],
26924
- [UNIVER_SHEET_PERMISSION_ALERT_DIALOG, AlertDialog]
26925
- ].forEach(([key, comp]) => {
26926
- this.disposeWithMe(this._componentManager.register(key, comp));
26927
- });
26928
- }
26929
- _initUiPartComponents() {
26930
- const config = this._injector.get(_univerjs_core.IConfigService).getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
26931
- if (config === null || config === void 0 ? void 0 : config.protectedRangeUserSelector) {
26932
- const { component, framework } = config.protectedRangeUserSelector;
26933
- this.disposeWithMe(this._componentManager.register(UNIVER_SHEET_PERMISSION_USER_PART, component, { framework }));
26934
- }
26935
- }
26936
- };
26937
- SheetPermissionRenderManagerController = __decorate([__decorateParam(0, (0, _univerjs_core.Inject)(_univerjs_core.Injector)), __decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_ui.ComponentManager))], SheetPermissionRenderManagerController);
26938
- let SheetPermissionRenderController = class SheetPermissionRenderController extends _univerjs_core.Disposable {
26939
- constructor(_context, _rangeProtectionRuleModel, _sheetSkeletonManagerService, _permissionService, _configService) {
26940
- super();
26941
- this._context = _context;
26942
- this._rangeProtectionRuleModel = _rangeProtectionRuleModel;
26943
- this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
26944
- this._permissionService = _permissionService;
26945
- this._configService = _configService;
26946
- _defineProperty(this, "_rangeProtectionCanViewRenderExtension", void 0);
26947
- _defineProperty(this, "_rangeProtectionCanNotViewRenderExtension", void 0);
26948
- const config = this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
26949
- const shadowStrategy = convertToShadowStrategy(config === null || config === void 0 ? void 0 : config.protectedRangeShadow);
26950
- this._rangeProtectionCanViewRenderExtension = new RangeProtectionCanViewRenderExtension(shadowStrategy);
26951
- this._rangeProtectionCanNotViewRenderExtension = new RangeProtectionCanNotViewRenderExtension(shadowStrategy);
26952
- this._initSkeleton();
26953
- this._initRender();
26954
- this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe((info) => {
26955
- var _info$oldRule, _info$oldRule2;
26956
- if (((_info$oldRule = info.oldRule) === null || _info$oldRule === void 0 ? void 0 : _info$oldRule.id) && this._rangeProtectionCanViewRenderExtension.renderCache.has(info.oldRule.id) || this._rangeProtectionCanViewRenderExtension.renderCache.has(info.rule.id)) this._rangeProtectionCanViewRenderExtension.clearCache();
26957
- if (((_info$oldRule2 = info.oldRule) === null || _info$oldRule2 === void 0 ? void 0 : _info$oldRule2.id) && this._rangeProtectionCanNotViewRenderExtension.renderCache.has(info.oldRule.id) || this._rangeProtectionCanNotViewRenderExtension.renderCache.has(info.rule.id)) this._rangeProtectionCanNotViewRenderExtension.clearCache();
26958
- }));
26959
- }
26960
- _initRender() {
26961
- const spreadsheetRender = this._context.mainComponent;
26962
- if (spreadsheetRender) {
26963
- if (!spreadsheetRender.getExtensionByKey("RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY")) spreadsheetRender.register(this._rangeProtectionCanViewRenderExtension);
26964
- if (!spreadsheetRender.getExtensionByKey("RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY")) spreadsheetRender.register(this._rangeProtectionCanNotViewRenderExtension);
26965
- }
26966
- }
26967
- _initSkeleton() {
26968
- const markDirtySkeleton = () => {
26969
- var _this$_context$mainCo;
26970
- this._sheetSkeletonManagerService.reCalculate();
26971
- (_this$_context$mainCo = this._context.mainComponent) === null || _this$_context$mainCo === void 0 || _this$_context$mainCo.makeDirty();
26972
- };
26973
- this.disposeWithMe((0, rxjs.merge)(this._permissionService.permissionPointUpdate$.pipe((0, rxjs.throttleTime)(300, void 0, { trailing: true })), this._rangeProtectionRuleModel.rangeRuleInitStateChange$, this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(markDirtySkeleton));
26974
- }
26975
- };
26976
- SheetPermissionRenderController = __decorate([
26977
- __decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_sheets.RangeProtectionRuleModel)),
26978
- __decorateParam(2, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)),
26979
- __decorateParam(3, _univerjs_core.IPermissionService),
26980
- __decorateParam(4, _univerjs_core.IConfigService)
26981
- ], SheetPermissionRenderController);
26982
- let WorksheetProtectionRenderController = class WorksheetProtectionRenderController extends _univerjs_core.Disposable {
26983
- constructor(_context, _renderManagerService, _sheetSkeletonManagerService, _worksheetProtectionRuleModel, _configService) {
26984
- super();
26985
- this._context = _context;
26986
- this._renderManagerService = _renderManagerService;
26987
- this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
26988
- this._worksheetProtectionRuleModel = _worksheetProtectionRuleModel;
26989
- this._configService = _configService;
26990
- _defineProperty(this, "_worksheetProtectionRenderExtension", void 0);
26991
- const config = this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
26992
- const shadowStrategy = convertToShadowStrategy(config === null || config === void 0 ? void 0 : config.protectedRangeShadow);
26993
- this._worksheetProtectionRenderExtension = new WorksheetProtectionRenderExtension(shadowStrategy);
26994
- this._initSkeleton();
26995
- if (shadowStrategy === "none") return;
26996
- this._initRender();
26997
- }
26998
- _initRender() {
26999
- const renderId = this._context.unitId;
27000
- const render = renderId && this._renderManagerService.getRenderById(renderId);
27001
- const spreadsheetRender = render && render.mainComponent;
27002
- if (spreadsheetRender) {
27003
- if (!spreadsheetRender.getExtensionByKey("worksheet-protection")) spreadsheetRender.register(this._worksheetProtectionRenderExtension);
27004
- }
27005
- }
27006
- _initSkeleton() {
27007
- const markDirtySkeleton = () => {
27008
- var _this$_context$mainCo2;
27009
- this._sheetSkeletonManagerService.reCalculate();
27010
- (_this$_context$mainCo2 = this._context.mainComponent) === null || _this$_context$mainCo2 === void 0 || _this$_context$mainCo2.makeDirty();
27011
- };
27012
- this.disposeWithMe((0, rxjs.merge)(this._worksheetProtectionRuleModel.worksheetRuleInitStateChange$).pipe().subscribe(markDirtySkeleton));
27013
- }
27014
- };
27015
- WorksheetProtectionRenderController = __decorate([
27016
- __decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_engine_render.IRenderManagerService)),
27017
- __decorateParam(2, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)),
27018
- __decorateParam(3, (0, _univerjs_core.Inject)(_univerjs_sheets.WorksheetProtectionRuleModel)),
27019
- __decorateParam(4, (0, _univerjs_core.Inject)(_univerjs_core.IConfigService))
27020
- ], WorksheetProtectionRenderController);
27021
-
27022
- //#endregion
27023
- //#region src/controllers/render-controllers/clipboard.render-controller.ts
27024
- let ClipboardRenderController = class ClipboardRenderController extends _univerjs_core.Disposable {
27025
- constructor(_context, _sheetSkeletonManagerService, _sheetClipboardService, _sheetClipboardController) {
27026
- super();
27027
- this._context = _context;
27028
- this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
27029
- this._sheetClipboardService = _sheetClipboardService;
27030
- this._sheetClipboardController = _sheetClipboardController;
27031
- this._initialize();
27032
- }
27033
- _initialize() {
27034
- this.disposeWithMe((0, _univerjs_core.toDisposable)(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((skeleton) => {
27035
- if (!(skeleton === null || skeleton === void 0 ? void 0 : skeleton.unitId)) return;
27036
- if (!this._sheetClipboardService.getPasteMenuVisible()) return;
27037
- const pasteOptionsCache = this._sheetClipboardService.getPasteOptionsCache();
27038
- const menuUnitId = pasteOptionsCache === null || pasteOptionsCache === void 0 ? void 0 : pasteOptionsCache.target.unitId;
27039
- if (skeleton.unitId === menuUnitId) this._sheetClipboardController.refreshOptionalPaste();
27040
- })));
27041
- }
27042
- };
27043
- ClipboardRenderController = __decorate([
27044
- __decorateParam(1, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)),
27045
- __decorateParam(2, ISheetClipboardService),
27046
- __decorateParam(3, (0, _univerjs_core.Inject)(SheetClipboardController))
27047
- ], ClipboardRenderController);
27048
-
27049
- //#endregion
27050
- //#region src/controllers/render-controllers/format-painter.render-controller.ts
27051
- let FormatPainterRenderController = class FormatPainterRenderController extends _univerjs_core.Disposable {
27052
- constructor(_context, _formatPainterService, _selectionRenderService, _commandService) {
27053
- super();
27054
- this._context = _context;
27055
- this._formatPainterService = _formatPainterService;
27056
- this._selectionRenderService = _selectionRenderService;
27057
- this._commandService = _commandService;
27058
- this._initialize();
27059
- }
27060
- _initialize() {
27061
- this._bindFormatPainterStatus();
27062
- this._commandExecutedListener();
27063
- }
27064
- _commandExecutedListener() {
27065
- this.disposeWithMe(this._selectionRenderService.selectionMoveEnd$.subscribe((selections) => {
27066
- if (this._formatPainterService.getStatus() !== 0) {
27067
- var _this$_context$unit$g;
27068
- const { rangeWithCoord } = selections[selections.length - 1];
27069
- this._commandService.executeCommand(ApplyFormatPainterCommand.id, {
27070
- unitId: this._context.unitId,
27071
- subUnitId: ((_this$_context$unit$g = this._context.unit.getActiveSheet()) === null || _this$_context$unit$g === void 0 ? void 0 : _this$_context$unit$g.getSheetId()) || "",
27072
- range: {
27073
- startRow: rangeWithCoord.startRow,
27074
- startColumn: rangeWithCoord.startColumn,
27075
- endRow: rangeWithCoord.endRow,
27076
- endColumn: rangeWithCoord.endColumn
27077
- }
27078
- });
27079
- if (this._formatPainterService.getStatus() === 1) this._commandService.executeCommand(SetOnceFormatPainterCommand.id);
27080
- }
27081
- }));
27082
- }
27083
- _bindFormatPainterStatus() {
27084
- this.disposeWithMe((0, _univerjs_core.toDisposable)(this._formatPainterService.status$.subscribe((status) => {
27085
- const scene = this._context.scene;
27086
- if (!scene) return;
27087
- if (status !== 0) scene.setDefaultCursor(_univerjs_engine_render.CURSOR_TYPE.CELL);
27088
- else scene.setDefaultCursor(_univerjs_engine_render.CURSOR_TYPE.DEFAULT);
27089
- })));
27298
+ setZIndex(zIndex) {
27299
+ this.Z_INDEX = zIndex;
27090
27300
  }
27091
27301
  };
27092
- FormatPainterRenderController = __decorate([
27093
- __decorateParam(1, IFormatPainterService),
27094
- __decorateParam(2, ISheetSelectionRenderService),
27095
- __decorateParam(3, _univerjs_core.ICommandService)
27096
- ], FormatPainterRenderController);
27097
27302
 
27098
27303
  //#endregion
27099
- //#region src/menu/header-menu-shape.ts
27100
- const HEADER_MENU_SHAPE_CIRCLE_FILL = "rgba(0, 0, 0, 0.15)";
27101
- const HEADER_MENU_SHAPE_TRIANGLE_FILL = "rgb(0, 0, 0)";
27102
- const HEADER_MENU_BACKGROUND_COLOR = "rgb(255, 255, 255, 1)";
27103
- var HeaderMenuShape = class extends _univerjs_engine_render.Shape {
27104
- constructor(key, props) {
27105
- super(key, props);
27106
- _defineProperty(this, "_size", 12);
27107
- _defineProperty(this, "_iconRatio", .4);
27108
- _defineProperty(this, "_mode", 0);
27109
- this.setShapeProps(props);
27304
+ //#region src/controllers/permission/sheet-permission-render.controller.ts
27305
+ let SheetPermissionRenderManagerController = class SheetPermissionRenderManagerController extends _univerjs_core.Disposable {
27306
+ constructor(_injector, _componentManager) {
27307
+ super();
27308
+ this._injector = _injector;
27309
+ this._componentManager = _componentManager;
27310
+ this._init();
27110
27311
  }
27111
- setShapeProps(props) {
27112
- if (props === null || props === void 0 ? void 0 : props.size) this._size = props.size;
27113
- if (props === null || props === void 0 ? void 0 : props.mode) this._mode = props.mode;
27114
- this.transformByState({
27115
- width: this._size,
27116
- height: this._size
27117
- });
27312
+ _init() {
27313
+ this._initComponents();
27314
+ this._initUiPartComponents();
27118
27315
  }
27119
- _draw(ctx) {
27120
- if (this._mode === 1) _univerjs_engine_render.Rect.drawWith(ctx, {
27121
- width: this._size,
27122
- height: this._size,
27123
- radius: this._size,
27124
- fill: HEADER_MENU_SHAPE_CIRCLE_FILL
27125
- });
27126
- const iconSize = this._size * .5 * this._iconRatio;
27127
- const sixtyDegree = Math.PI / 180 * 60;
27128
- const left = iconSize * Math.sin(sixtyDegree);
27129
- const top = iconSize * Math.cos(sixtyDegree);
27130
- _univerjs_engine_render.RegularPolygon.drawWith(ctx, {
27131
- pointsGroup: [[
27132
- {
27133
- x: -left + this._size / 2,
27134
- y: -top + this._size / 2
27135
- },
27136
- {
27137
- x: left + this._size / 2,
27138
- y: -top + this._size / 2
27139
- },
27140
- {
27141
- x: this._size / 2,
27142
- y: iconSize + this._size / 2
27143
- }
27144
- ]],
27145
- fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
27316
+ _initComponents() {
27317
+ [
27318
+ [permissionMenuIconKey, _univerjs_icons.ProtectIcon],
27319
+ [permissionDeleteIconKey, _univerjs_icons.DeleteIcon],
27320
+ [permissionEditIconKey, _univerjs_icons.WriteIcon],
27321
+ [permissionCheckIconKey, _univerjs_icons.CheckMarkIcon],
27322
+ [permissionLockIconKey, _univerjs_icons.LockIcon],
27323
+ [UNIVER_SHEET_PERMISSION_PANEL, SheetPermissionPanel],
27324
+ [UNIVER_SHEET_PERMISSION_USER_DIALOG, SheetPermissionUserDialog],
27325
+ [UNIVER_SHEET_PERMISSION_DIALOG, SheetPermissionDialog],
27326
+ [UNIVER_SHEET_PERMISSION_ALERT_DIALOG, AlertDialog]
27327
+ ].forEach(([key, comp]) => {
27328
+ this.disposeWithMe(this._componentManager.register(key, comp));
27146
27329
  });
27147
27330
  }
27331
+ _initUiPartComponents() {
27332
+ const config = this._injector.get(_univerjs_core.IConfigService).getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
27333
+ if (config === null || config === void 0 ? void 0 : config.protectedRangeUserSelector) {
27334
+ const { component, framework } = config.protectedRangeUserSelector;
27335
+ this.disposeWithMe(this._componentManager.register(UNIVER_SHEET_PERMISSION_USER_PART, component, { framework }));
27336
+ }
27337
+ }
27148
27338
  };
27149
-
27150
- //#endregion
27151
- //#region src/controllers/render-controllers/header-menu.render-controller.ts
27152
- const HEADER_MENU_CONTROLLER_SHAPE = "__SpreadsheetHeaderMenuSHAPEControllerShape__";
27153
- const HEADER_MENU_CONTROLLER_MENU = "__SpreadsheetHeaderMenuMAINControllerShape__";
27154
- const HEADER_MENU_CONTROLLER_SHAPE_COLOR = "rgba(0, 0, 0, 0.1)";
27155
- let HeaderMenuRenderController = class HeaderMenuRenderController extends _univerjs_core.Disposable {
27156
- constructor(_context, _sheetSkeletonManagerService, _contextMenuService, _commandService, _selectionManagerService) {
27339
+ SheetPermissionRenderManagerController = __decorate([__decorateParam(0, (0, _univerjs_core.Inject)(_univerjs_core.Injector)), __decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_ui.ComponentManager))], SheetPermissionRenderManagerController);
27340
+ let SheetPermissionRenderController = class SheetPermissionRenderController extends _univerjs_core.Disposable {
27341
+ constructor(_context, _rangeProtectionRuleModel, _sheetSkeletonManagerService, _permissionService, _configService) {
27157
27342
  super();
27158
27343
  this._context = _context;
27344
+ this._rangeProtectionRuleModel = _rangeProtectionRuleModel;
27159
27345
  this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
27160
- this._contextMenuService = _contextMenuService;
27161
- this._commandService = _commandService;
27162
- this._selectionManagerService = _selectionManagerService;
27163
- _defineProperty(this, "_hoverRect", void 0);
27164
- _defineProperty(this, "_hoverMenu", void 0);
27165
- _defineProperty(this, "_currentColumn", Number.POSITIVE_INFINITY);
27166
- _defineProperty(this, "_headerPointerSubs", void 0);
27167
- _defineProperty(this, "_colHeaderPointerSubs", void 0);
27168
- this._initialize();
27169
- }
27170
- dispose() {
27171
- var _this$_hoverRect, _this$_hoverMenu, _this$_headerPointerS;
27172
- (_this$_hoverRect = this._hoverRect) === null || _this$_hoverRect === void 0 || _this$_hoverRect.dispose();
27173
- (_this$_hoverMenu = this._hoverMenu) === null || _this$_hoverMenu === void 0 || _this$_hoverMenu.dispose();
27174
- (_this$_headerPointerS = this._headerPointerSubs) === null || _this$_headerPointerS === void 0 || _this$_headerPointerS.unsubscribe();
27175
- this._headerPointerSubs = null;
27346
+ this._permissionService = _permissionService;
27347
+ this._configService = _configService;
27348
+ _defineProperty(this, "_rangeProtectionCanViewRenderExtension", void 0);
27349
+ _defineProperty(this, "_rangeProtectionCanNotViewRenderExtension", void 0);
27350
+ const config = this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
27351
+ const shadowStrategy = convertToShadowStrategy(config === null || config === void 0 ? void 0 : config.protectedRangeShadow);
27352
+ this._rangeProtectionCanViewRenderExtension = new RangeProtectionCanViewRenderExtension(shadowStrategy);
27353
+ this._rangeProtectionCanNotViewRenderExtension = new RangeProtectionCanNotViewRenderExtension(shadowStrategy);
27354
+ this._initSkeleton();
27355
+ this._initRender();
27356
+ this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe((info) => {
27357
+ var _info$oldRule, _info$oldRule2;
27358
+ if (((_info$oldRule = info.oldRule) === null || _info$oldRule === void 0 ? void 0 : _info$oldRule.id) && this._rangeProtectionCanViewRenderExtension.renderCache.has(info.oldRule.id) || this._rangeProtectionCanViewRenderExtension.renderCache.has(info.rule.id)) this._rangeProtectionCanViewRenderExtension.clearCache();
27359
+ if (((_info$oldRule2 = info.oldRule) === null || _info$oldRule2 === void 0 ? void 0 : _info$oldRule2.id) && this._rangeProtectionCanNotViewRenderExtension.renderCache.has(info.oldRule.id) || this._rangeProtectionCanNotViewRenderExtension.renderCache.has(info.rule.id)) this._rangeProtectionCanNotViewRenderExtension.clearCache();
27360
+ }));
27176
27361
  }
27177
- _initialize() {
27178
- const scene = this._context.scene;
27179
- this._hoverRect = new _univerjs_engine_render.Rect(HEADER_MENU_CONTROLLER_SHAPE, {
27180
- fill: HEADER_MENU_CONTROLLER_SHAPE_COLOR,
27181
- evented: false
27182
- });
27183
- this._hoverMenu = new HeaderMenuShape(HEADER_MENU_CONTROLLER_MENU, {
27184
- zIndex: 100,
27185
- visible: false
27186
- });
27187
- scene.addObjects([this._hoverRect, this._hoverMenu], 10);
27188
- this._initialHover(0);
27189
- this._initialHover(1);
27190
- this._initialHoverMenu();
27362
+ _initRender() {
27363
+ const spreadsheetRender = this._context.mainComponent;
27364
+ if (spreadsheetRender) {
27365
+ if (!spreadsheetRender.getExtensionByKey("RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY")) spreadsheetRender.register(this._rangeProtectionCanViewRenderExtension);
27366
+ if (!spreadsheetRender.getExtensionByKey("RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY")) spreadsheetRender.register(this._rangeProtectionCanNotViewRenderExtension);
27367
+ }
27191
27368
  }
27192
- _initialHover(initialType = 0) {
27193
- var _this$_headerPointerS2, _this$_headerPointerS3, _this$_headerPointerS4;
27194
- const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
27195
- const spreadsheetRowHeader = this._context.components.get("__SpreadsheetRowHeader__");
27196
- const eventBindingObject = initialType === 0 ? spreadsheetRowHeader : spreadsheetColumnHeader;
27197
- const pointerMoveHandler = (evt) => {
27198
- var _this$_sheetSkeletonM;
27199
- const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
27200
- if (skeleton == null) return;
27201
- const { rowHeaderWidth, columnHeaderHeight } = skeleton;
27202
- const { startX, startY, endX, endY, column } = getCoordByOffset(evt.offsetX, evt.offsetY, this._context.scene, skeleton);
27203
- if (initialType === 0) {
27204
- var _this$_hoverRect2;
27205
- (_this$_hoverRect2 = this._hoverRect) === null || _this$_hoverRect2 === void 0 || _this$_hoverRect2.transformByState({
27206
- width: rowHeaderWidth,
27207
- height: endY - startY,
27208
- left: 0,
27209
- top: startY
27210
- });
27211
- } else {
27212
- var _this$_hoverRect3;
27213
- this._currentColumn = column;
27214
- (_this$_hoverRect3 = this._hoverRect) === null || _this$_hoverRect3 === void 0 || _this$_hoverRect3.transformByState({
27215
- width: endX - startX,
27216
- height: columnHeaderHeight,
27217
- left: startX,
27218
- top: 0
27219
- });
27220
- if (this._hoverMenu == null) return;
27221
- if (endX - startX < columnHeaderHeight * 2) {
27222
- this._hoverMenu.hide();
27223
- return;
27224
- }
27225
- const menuSize = columnHeaderHeight * .8;
27226
- this._hoverMenu.transformByState({
27227
- left: endX - columnHeaderHeight,
27228
- top: columnHeaderHeight / 2 - menuSize / 2
27229
- });
27230
- this._hoverMenu.setShapeProps({ size: menuSize });
27231
- this._hoverMenu.show();
27232
- }
27233
- };
27234
- const pointerEnterHandler = () => {
27235
- var _this$_hoverRect4;
27236
- (_this$_hoverRect4 = this._hoverRect) === null || _this$_hoverRect4 === void 0 || _this$_hoverRect4.show();
27237
- };
27238
- const pointerLeaveHandler = () => {
27239
- var _this$_hoverRect5, _this$_hoverMenu2;
27240
- (_this$_hoverRect5 = this._hoverRect) === null || _this$_hoverRect5 === void 0 || _this$_hoverRect5.hide();
27241
- (_this$_hoverMenu2 = this._hoverMenu) === null || _this$_hoverMenu2 === void 0 || _this$_hoverMenu2.hide();
27369
+ _initSkeleton() {
27370
+ const markDirtySkeleton = () => {
27371
+ var _this$_context$mainCo;
27372
+ this._sheetSkeletonManagerService.reCalculate();
27373
+ (_this$_context$mainCo = this._context.mainComponent) === null || _this$_context$mainCo === void 0 || _this$_context$mainCo.makeDirty();
27242
27374
  };
27243
- this._headerPointerSubs = new rxjs.Subscription();
27244
- const headerPointerMoveSub = eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler);
27245
- const headerPointerEnterSub = eventBindingObject.onPointerEnter$.subscribeEvent(pointerEnterHandler);
27246
- const headerPointerLeaveSub = eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler);
27247
- (_this$_headerPointerS2 = this._headerPointerSubs) === null || _this$_headerPointerS2 === void 0 || _this$_headerPointerS2.add(headerPointerMoveSub);
27248
- (_this$_headerPointerS3 = this._headerPointerSubs) === null || _this$_headerPointerS3 === void 0 || _this$_headerPointerS3.add(headerPointerEnterSub);
27249
- (_this$_headerPointerS4 = this._headerPointerSubs) === null || _this$_headerPointerS4 === void 0 || _this$_headerPointerS4.add(headerPointerLeaveSub);
27375
+ this.disposeWithMe((0, rxjs.merge)(this._permissionService.permissionPointUpdate$.pipe((0, rxjs.throttleTime)(300, void 0, { trailing: true })), this._rangeProtectionRuleModel.rangeRuleInitStateChange$, this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(markDirtySkeleton));
27250
27376
  }
27251
- _initialHoverMenu() {
27252
- if (this._hoverMenu == null) return;
27253
- this._hoverMenu.onPointerEnter$.subscribeEvent(() => {
27254
- if (this._hoverMenu == null) return;
27255
- this._hoverMenu.setProps({
27256
- mode: 1,
27257
- visible: true
27258
- });
27259
- this._context.scene.setCursor(_univerjs_engine_render.CURSOR_TYPE.POINTER);
27260
- });
27261
- this._hoverMenu.onPointerLeave$.subscribeEvent(() => {
27262
- if (this._hoverMenu == null) return;
27263
- this._hoverMenu.setProps({
27264
- mode: 0,
27265
- visible: false
27266
- });
27267
- this._context.scene.resetCursor();
27268
- });
27269
- this._hoverMenu.onPointerDown$.subscribeEvent((evt) => {
27270
- var _this$_selectionManag;
27271
- const currentColumn = this._currentColumn;
27272
- const currentSelectionDatas = (_this$_selectionManag = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag === void 0 ? void 0 : _this$_selectionManag.map((s) => s.range);
27273
- if (!!!(currentSelectionDatas === null || currentSelectionDatas === void 0 ? void 0 : currentSelectionDatas.filter((range) => range.rangeType === _univerjs_core.RANGE_TYPE.COLUMN).find((data) => {
27274
- const { startColumn, endColumn } = data;
27275
- if (currentColumn >= startColumn && currentColumn <= endColumn) return true;
27276
- return false;
27277
- }))) {
27278
- const selection = this._getSelectionOnColumn(currentColumn);
27279
- this._commandService.syncExecuteCommand(_univerjs_sheets.SetSelectionsOperation.id, selection);
27280
- }
27281
- evt.stopPropagation();
27282
- evt.preventDefault();
27283
- this._contextMenuService.triggerContextMenu(evt, _univerjs_ui.ContextMenuPosition.COL_HEADER);
27284
- });
27377
+ };
27378
+ SheetPermissionRenderController = __decorate([
27379
+ __decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_sheets.RangeProtectionRuleModel)),
27380
+ __decorateParam(2, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)),
27381
+ __decorateParam(3, _univerjs_core.IPermissionService),
27382
+ __decorateParam(4, _univerjs_core.IConfigService)
27383
+ ], SheetPermissionRenderController);
27384
+ let WorksheetProtectionRenderController = class WorksheetProtectionRenderController extends _univerjs_core.Disposable {
27385
+ constructor(_context, _renderManagerService, _sheetSkeletonManagerService, _worksheetProtectionRuleModel, _configService) {
27386
+ super();
27387
+ this._context = _context;
27388
+ this._renderManagerService = _renderManagerService;
27389
+ this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
27390
+ this._worksheetProtectionRuleModel = _worksheetProtectionRuleModel;
27391
+ this._configService = _configService;
27392
+ _defineProperty(this, "_worksheetProtectionRenderExtension", void 0);
27393
+ const config = this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
27394
+ const shadowStrategy = convertToShadowStrategy(config === null || config === void 0 ? void 0 : config.protectedRangeShadow);
27395
+ this._worksheetProtectionRenderExtension = new WorksheetProtectionRenderExtension(shadowStrategy);
27396
+ this._initSkeleton();
27397
+ if (shadowStrategy === "none") return;
27398
+ this._initRender();
27285
27399
  }
27286
- _getSelectionOnColumn(column) {
27287
- const workbook = this._context.unit;
27288
- const worksheet = workbook.getActiveSheet();
27289
- if (!worksheet) throw new Error("No active worksheet");
27290
- return {
27291
- unitId: workbook.getUnitId(),
27292
- subUnitId: worksheet.getSheetId(),
27293
- selections: [{
27294
- range: {
27295
- startRow: 0,
27296
- startColumn: column,
27297
- endRow: worksheet.getRowCount() - 1,
27298
- endColumn: column,
27299
- rangeType: _univerjs_core.RANGE_TYPE.COLUMN
27300
- },
27301
- primary: {
27302
- startRow: 0,
27303
- startColumn: column,
27304
- endRow: 0,
27305
- endColumn: column,
27306
- actualRow: 0,
27307
- actualColumn: column,
27308
- isMerged: false,
27309
- isMergedMainCell: false
27310
- },
27311
- style: null
27312
- }]
27400
+ _initRender() {
27401
+ const renderId = this._context.unitId;
27402
+ const render = renderId && this._renderManagerService.getRenderById(renderId);
27403
+ const spreadsheetRender = render && render.mainComponent;
27404
+ if (spreadsheetRender) {
27405
+ if (!spreadsheetRender.getExtensionByKey("worksheet-protection")) spreadsheetRender.register(this._worksheetProtectionRenderExtension);
27406
+ }
27407
+ }
27408
+ _initSkeleton() {
27409
+ const markDirtySkeleton = () => {
27410
+ var _this$_context$mainCo2;
27411
+ this._sheetSkeletonManagerService.reCalculate();
27412
+ (_this$_context$mainCo2 = this._context.mainComponent) === null || _this$_context$mainCo2 === void 0 || _this$_context$mainCo2.makeDirty();
27313
27413
  };
27414
+ this.disposeWithMe((0, rxjs.merge)(this._worksheetProtectionRuleModel.worksheetRuleInitStateChange$).pipe().subscribe(markDirtySkeleton));
27314
27415
  }
27315
27416
  };
27316
- HeaderMenuRenderController = __decorate([
27317
- __decorateParam(1, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)),
27318
- __decorateParam(2, _univerjs_ui.IContextMenuService),
27319
- __decorateParam(3, _univerjs_core.ICommandService),
27320
- __decorateParam(4, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetsSelectionsService))
27321
- ], HeaderMenuRenderController);
27417
+ WorksheetProtectionRenderController = __decorate([
27418
+ __decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_engine_render.IRenderManagerService)),
27419
+ __decorateParam(2, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)),
27420
+ __decorateParam(3, (0, _univerjs_core.Inject)(_univerjs_sheets.WorksheetProtectionRuleModel)),
27421
+ __decorateParam(4, (0, _univerjs_core.Inject)(_univerjs_core.IConfigService))
27422
+ ], WorksheetProtectionRenderController);
27322
27423
 
27323
27424
  //#endregion
27324
- //#region src/views/header-unhide-shape.ts
27325
- const UNHIDE_ICON_SIZE = 12;
27326
- const UNHIDE_ARROW_RATIO = .4;
27327
- var HeaderUnhideShape = class extends _univerjs_engine_render.Shape {
27328
- constructor(key, props, onClick) {
27329
- super(key, props);
27330
- _defineProperty(this, "_size", 12);
27331
- _defineProperty(this, "_iconRatio", UNHIDE_ARROW_RATIO);
27332
- _defineProperty(this, "_hovered", true);
27333
- _defineProperty(this, "_hasPrevious", true);
27334
- _defineProperty(this, "_hasNext", true);
27335
- _defineProperty(this, "_unhideType", void 0);
27336
- if (props) this.setShapeProps(props);
27337
- this.onPointerEnter$.subscribeEvent(() => this.setShapeProps({ hovered: true }));
27338
- this.onPointerLeave$.subscribeEvent(() => this.setShapeProps({ hovered: false }));
27339
- this.onPointerDown$.subscribeEvent(() => onClick === null || onClick === void 0 ? void 0 : onClick());
27425
+ //#region src/controllers/render-controllers/clipboard.render-controller.ts
27426
+ let ClipboardRenderController = class ClipboardRenderController extends _univerjs_core.Disposable {
27427
+ constructor(_context, _sheetSkeletonManagerService, _sheetClipboardService, _sheetClipboardController) {
27428
+ super();
27429
+ this._context = _context;
27430
+ this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
27431
+ this._sheetClipboardService = _sheetClipboardService;
27432
+ this._sheetClipboardController = _sheetClipboardController;
27433
+ this._initialize();
27340
27434
  }
27341
- setShapeProps(props) {
27342
- if (props.type !== void 0) this._unhideType = props.type;
27343
- if (props.hovered !== void 0) this._hovered = props.hovered;
27344
- if (props.hasPrevious !== void 0) this._hasPrevious = props.hasPrevious;
27345
- if (props.hasNext !== void 0) this._hasNext = props.hasNext;
27346
- this.transformByState({
27347
- width: this._size * (this._unhideType === 1 ? 2 : 1),
27348
- height: this._size * (this._unhideType === 0 ? 2 : 1)
27349
- });
27435
+ _initialize() {
27436
+ this.disposeWithMe((0, _univerjs_core.toDisposable)(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((skeleton) => {
27437
+ if (!(skeleton === null || skeleton === void 0 ? void 0 : skeleton.unitId)) return;
27438
+ if (!this._sheetClipboardService.getPasteMenuVisible()) return;
27439
+ const pasteOptionsCache = this._sheetClipboardService.getPasteOptionsCache();
27440
+ const menuUnitId = pasteOptionsCache === null || pasteOptionsCache === void 0 ? void 0 : pasteOptionsCache.target.unitId;
27441
+ if (skeleton.unitId === menuUnitId) this._sheetClipboardController.refreshOptionalPaste();
27442
+ })));
27350
27443
  }
27351
- _draw(ctx) {
27352
- if (this._unhideType === 0) this._drawOnRow(ctx);
27353
- else this._drawOnCol(ctx);
27444
+ };
27445
+ ClipboardRenderController = __decorate([
27446
+ __decorateParam(1, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)),
27447
+ __decorateParam(2, ISheetClipboardService),
27448
+ __decorateParam(3, (0, _univerjs_core.Inject)(SheetClipboardController))
27449
+ ], ClipboardRenderController);
27450
+
27451
+ //#endregion
27452
+ //#region src/controllers/render-controllers/format-painter.render-controller.ts
27453
+ let FormatPainterRenderController = class FormatPainterRenderController extends _univerjs_core.Disposable {
27454
+ constructor(_context, _formatPainterService, _selectionRenderService, _commandService) {
27455
+ super();
27456
+ this._context = _context;
27457
+ this._formatPainterService = _formatPainterService;
27458
+ this._selectionRenderService = _selectionRenderService;
27459
+ this._commandService = _commandService;
27460
+ this._initialize();
27354
27461
  }
27355
- _drawOnRow(ctx) {
27356
- if (this._hovered) if (!this._hasNext || !this._hasPrevious) _univerjs_engine_render.Rect.drawWith(ctx, {
27357
- width: this._size,
27358
- height: this._size,
27359
- stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
27360
- fill: HEADER_MENU_BACKGROUND_COLOR
27361
- });
27362
- else _univerjs_engine_render.Rect.drawWith(ctx, {
27363
- width: this._size,
27364
- height: 2 * this._size,
27365
- stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
27366
- fill: HEADER_MENU_BACKGROUND_COLOR
27367
- });
27368
- const iconSize = this._size * .5 * this._iconRatio;
27369
- const sixtyDegree = Math.PI / 3;
27370
- const top = iconSize * Math.cos(sixtyDegree);
27371
- const left = iconSize * Math.sin(sixtyDegree);
27372
- if (this._hasPrevious) _univerjs_engine_render.RegularPolygon.drawWith(ctx, {
27373
- pointsGroup: [[
27374
- {
27375
- x: this._size / 2,
27376
- y: this._size / 2 - left
27377
- },
27378
- {
27379
- x: this._size / 2 - left,
27380
- y: this._size / 2 + top
27381
- },
27382
- {
27383
- x: this._size / 2 + left,
27384
- y: this._size / 2 + top
27385
- }
27386
- ]],
27387
- fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
27388
- });
27389
- if (this._hasNext) {
27390
- const offset = this._hasPrevious ? 3 : 1;
27391
- _univerjs_engine_render.RegularPolygon.drawWith(ctx, {
27392
- pointsGroup: [[
27393
- {
27394
- x: this._size / 2,
27395
- y: this._size * offset / 2 + left
27396
- },
27397
- {
27398
- x: this._size / 2 - left,
27399
- y: this._size * offset / 2 - top
27400
- },
27401
- {
27402
- x: this._size / 2 + left,
27403
- y: this._size * offset / 2 - top
27404
- }
27405
- ]],
27406
- fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
27407
- });
27408
- }
27462
+ _initialize() {
27463
+ this._bindFormatPainterStatus();
27464
+ this._commandExecutedListener();
27409
27465
  }
27410
- /**
27411
- *
27412
- * @param ctx
27413
- */
27414
- _drawOnCol(ctx) {
27415
- if (this._hovered) if (!this._hasNext || !this._hasPrevious) _univerjs_engine_render.Rect.drawWith(ctx, {
27416
- width: this._size,
27417
- height: this._size,
27418
- stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
27419
- fill: HEADER_MENU_BACKGROUND_COLOR
27420
- });
27421
- else _univerjs_engine_render.Rect.drawWith(ctx, {
27422
- width: 2 * this._size,
27423
- height: this._size,
27424
- stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
27425
- fill: HEADER_MENU_BACKGROUND_COLOR
27426
- });
27427
- const iconSize = this._size * .5 * this._iconRatio;
27428
- const sixtyDegree = Math.PI / 3;
27429
- const top = iconSize * Math.cos(sixtyDegree);
27430
- const left = iconSize * Math.sin(sixtyDegree);
27431
- if (this._hasPrevious) _univerjs_engine_render.RegularPolygon.drawWith(ctx, {
27432
- pointsGroup: [[
27433
- {
27434
- x: -top + this._size / 2,
27435
- y: this._size / 2
27436
- },
27437
- {
27438
- x: this._size / 2 + left,
27439
- y: this._size / 2 - left
27440
- },
27441
- {
27442
- x: this._size / 2 + left,
27443
- y: this._size / 2 + left
27444
- }
27445
- ]],
27446
- fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
27447
- });
27448
- if (this._hasNext) {
27449
- const offset = this._hasPrevious ? 3 : 1;
27450
- _univerjs_engine_render.RegularPolygon.drawWith(ctx, {
27451
- pointsGroup: [[
27452
- {
27453
- x: top + this._size * offset / 2,
27454
- y: this._size / 2
27455
- },
27456
- {
27457
- x: -left + this._size * offset / 2,
27458
- y: this._size / 2 - left
27459
- },
27460
- {
27461
- x: -left + this._size * offset / 2,
27462
- y: this._size / 2 + left
27466
+ _commandExecutedListener() {
27467
+ this.disposeWithMe(this._selectionRenderService.selectionMoveEnd$.subscribe((selections) => {
27468
+ if (this._formatPainterService.getStatus() !== 0) {
27469
+ var _this$_context$unit$g;
27470
+ const { rangeWithCoord } = selections[selections.length - 1];
27471
+ this._commandService.executeCommand(ApplyFormatPainterCommand.id, {
27472
+ unitId: this._context.unitId,
27473
+ subUnitId: ((_this$_context$unit$g = this._context.unit.getActiveSheet()) === null || _this$_context$unit$g === void 0 ? void 0 : _this$_context$unit$g.getSheetId()) || "",
27474
+ range: {
27475
+ startRow: rangeWithCoord.startRow,
27476
+ startColumn: rangeWithCoord.startColumn,
27477
+ endRow: rangeWithCoord.endRow,
27478
+ endColumn: rangeWithCoord.endColumn
27463
27479
  }
27464
- ]],
27465
- fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
27466
- });
27467
- }
27480
+ });
27481
+ if (this._formatPainterService.getStatus() === 1) this._commandService.executeCommand(SetOnceFormatPainterCommand.id);
27482
+ }
27483
+ }));
27484
+ }
27485
+ _bindFormatPainterStatus() {
27486
+ this.disposeWithMe((0, _univerjs_core.toDisposable)(this._formatPainterService.status$.subscribe((status) => {
27487
+ const scene = this._context.scene;
27488
+ if (!scene) return;
27489
+ if (status !== 0) scene.setDefaultCursor(_univerjs_engine_render.CURSOR_TYPE.CELL);
27490
+ else scene.setDefaultCursor(_univerjs_engine_render.CURSOR_TYPE.DEFAULT);
27491
+ })));
27468
27492
  }
27469
27493
  };
27494
+ FormatPainterRenderController = __decorate([
27495
+ __decorateParam(1, IFormatPainterService),
27496
+ __decorateParam(2, ISheetSelectionRenderService),
27497
+ __decorateParam(3, _univerjs_core.ICommandService)
27498
+ ], FormatPainterRenderController);
27470
27499
 
27471
27500
  //#endregion
27472
- //#region src/controllers/render-controllers/header-unhide.render-controller.ts
27473
- const HEADER_UNHIDE_CONTROLLER_SHAPE = "__SpreadsheetHeaderUnhideSHAPEControllerShape__";
27474
- let HeaderUnhideRenderController = class HeaderUnhideRenderController extends _univerjs_core.RxDisposable {
27475
- get _workbook() {
27476
- return this._context.unit;
27477
- }
27478
- constructor(_context, _sheetSkeletonManagerService, _commandService) {
27501
+ //#region src/controllers/render-controllers/header-menu.render-controller.ts
27502
+ const HEADER_MENU_CONTROLLER_SHAPE = "__SpreadsheetHeaderMenuSHAPEControllerShape__";
27503
+ const HEADER_MENU_CONTROLLER_MENU = "__SpreadsheetHeaderMenuMAINControllerShape__";
27504
+ const HEADER_MENU_CONTROLLER_SHAPE_COLOR = "rgba(0, 0, 0, 0.1)";
27505
+ let HeaderMenuRenderController = class HeaderMenuRenderController extends _univerjs_core.Disposable {
27506
+ constructor(_context, _sheetSkeletonManagerService, _contextMenuService, _commandService, _selectionManagerService) {
27479
27507
  super();
27480
27508
  this._context = _context;
27481
27509
  this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
27510
+ this._contextMenuService = _contextMenuService;
27482
27511
  this._commandService = _commandService;
27483
- _defineProperty(this, "_shapes", {
27484
- cols: [],
27485
- rows: []
27486
- });
27487
- this._init();
27512
+ this._selectionManagerService = _selectionManagerService;
27513
+ _defineProperty(this, "_hoverRect", void 0);
27514
+ _defineProperty(this, "_hoverMenu", void 0);
27515
+ _defineProperty(this, "_currentColumn", Number.POSITIVE_INFINITY);
27516
+ _defineProperty(this, "_headerPointerSubs", void 0);
27517
+ _defineProperty(this, "_colHeaderPointerSubs", void 0);
27518
+ this._initialize();
27488
27519
  }
27489
27520
  dispose() {
27490
- super.dispose();
27491
- this._clearShapes();
27521
+ var _this$_hoverRect, _this$_hoverMenu, _this$_headerPointerS;
27522
+ (_this$_hoverRect = this._hoverRect) === null || _this$_hoverRect === void 0 || _this$_hoverRect.dispose();
27523
+ (_this$_hoverMenu = this._hoverMenu) === null || _this$_hoverMenu === void 0 || _this$_hoverMenu.dispose();
27524
+ (_this$_headerPointerS = this._headerPointerSubs) === null || _this$_headerPointerS === void 0 || _this$_headerPointerS.unsubscribe();
27525
+ this._headerPointerSubs = null;
27492
27526
  }
27493
- _init() {
27494
- let activeSheetId = "";
27495
- this._context.unit.activeSheet$.pipe((0, rxjs.takeUntil)(this.dispose$)).subscribe((worksheet) => {
27496
- this._clearShapes();
27497
- if (!worksheet) {
27498
- activeSheetId = "";
27499
- return;
27500
- }
27501
- activeSheetId = worksheet.getSheetId();
27502
- this._update(this._workbook, worksheet);
27527
+ _initialize() {
27528
+ const scene = this._context.scene;
27529
+ this._hoverRect = new _univerjs_engine_render.Rect(HEADER_MENU_CONTROLLER_SHAPE, {
27530
+ fill: HEADER_MENU_CONTROLLER_SHAPE_COLOR,
27531
+ evented: false
27503
27532
  });
27504
- this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
27505
- if (param) {
27506
- const { unitId, sheetId } = param;
27507
- if (unitId === this._workbook.getUnitId() && sheetId === activeSheetId) {
27508
- const worksheet = this._workbook.getSheetBySheetId(sheetId);
27509
- if (worksheet) this._update(this._workbook, worksheet);
27533
+ this._hoverMenu = new HeaderMenuShape(HEADER_MENU_CONTROLLER_MENU, {
27534
+ zIndex: 100,
27535
+ visible: false
27536
+ });
27537
+ scene.addObjects([this._hoverRect, this._hoverMenu], 10);
27538
+ this._initialHover(0);
27539
+ this._initialHover(1);
27540
+ this._initialHoverMenu();
27541
+ }
27542
+ _initialHover(initialType = 0) {
27543
+ var _this$_headerPointerS2, _this$_headerPointerS3, _this$_headerPointerS4;
27544
+ const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
27545
+ const spreadsheetRowHeader = this._context.components.get("__SpreadsheetRowHeader__");
27546
+ const eventBindingObject = initialType === 0 ? spreadsheetRowHeader : spreadsheetColumnHeader;
27547
+ const pointerMoveHandler = (evt) => {
27548
+ var _this$_sheetSkeletonM;
27549
+ const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
27550
+ if (skeleton == null) return;
27551
+ const { rowBaseWidth, rowGutterWidth, columnBaseHeight, columnGutterHeight } = getHeaderBaseLayout(skeleton);
27552
+ const { startX, startY, endX, endY, column } = getCoordByOffset(evt.offsetX, evt.offsetY, this._context.scene, skeleton);
27553
+ if (initialType === 0) {
27554
+ var _this$_hoverRect2;
27555
+ (_this$_hoverRect2 = this._hoverRect) === null || _this$_hoverRect2 === void 0 || _this$_hoverRect2.transformByState({
27556
+ width: rowBaseWidth,
27557
+ height: endY - startY,
27558
+ left: rowGutterWidth,
27559
+ top: startY
27560
+ });
27561
+ } else {
27562
+ var _this$_hoverRect3;
27563
+ this._currentColumn = column;
27564
+ (_this$_hoverRect3 = this._hoverRect) === null || _this$_hoverRect3 === void 0 || _this$_hoverRect3.transformByState({
27565
+ width: endX - startX,
27566
+ height: columnBaseHeight,
27567
+ left: startX,
27568
+ top: columnGutterHeight
27569
+ });
27570
+ if (this._hoverMenu == null) return;
27571
+ if (endX - startX < columnBaseHeight * 2) {
27572
+ this._hoverMenu.hide();
27573
+ return;
27510
27574
  }
27575
+ const menuSize = columnBaseHeight * .8;
27576
+ this._hoverMenu.transformByState({
27577
+ left: endX - columnBaseHeight,
27578
+ top: columnGutterHeight + columnBaseHeight / 2 - menuSize / 2
27579
+ });
27580
+ this._hoverMenu.setShapeProps({ size: menuSize });
27581
+ this._hoverMenu.show();
27511
27582
  }
27512
- }));
27583
+ };
27584
+ const pointerEnterHandler = () => {
27585
+ var _this$_hoverRect4;
27586
+ (_this$_hoverRect4 = this._hoverRect) === null || _this$_hoverRect4 === void 0 || _this$_hoverRect4.show();
27587
+ };
27588
+ const pointerLeaveHandler = () => {
27589
+ var _this$_hoverRect5, _this$_hoverMenu2;
27590
+ (_this$_hoverRect5 = this._hoverRect) === null || _this$_hoverRect5 === void 0 || _this$_hoverRect5.hide();
27591
+ (_this$_hoverMenu2 = this._hoverMenu) === null || _this$_hoverMenu2 === void 0 || _this$_hoverMenu2.hide();
27592
+ };
27593
+ this._headerPointerSubs = new rxjs.Subscription();
27594
+ const headerPointerMoveSub = eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler);
27595
+ const headerPointerEnterSub = eventBindingObject.onPointerEnter$.subscribeEvent(pointerEnterHandler);
27596
+ const headerPointerLeaveSub = eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler);
27597
+ (_this$_headerPointerS2 = this._headerPointerSubs) === null || _this$_headerPointerS2 === void 0 || _this$_headerPointerS2.add(headerPointerMoveSub);
27598
+ (_this$_headerPointerS3 = this._headerPointerSubs) === null || _this$_headerPointerS3 === void 0 || _this$_headerPointerS3.add(headerPointerEnterSub);
27599
+ (_this$_headerPointerS4 = this._headerPointerSubs) === null || _this$_headerPointerS4 === void 0 || _this$_headerPointerS4.add(headerPointerLeaveSub);
27513
27600
  }
27514
- _update(workbook, worksheet) {
27515
- var _this$_sheetSkeletonM;
27516
- const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getSkeletonParam(worksheet.getSheetId())) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
27517
- if (!skeleton) return;
27518
- const hiddenRowRanges = worksheet.getHiddenRows();
27519
- const hiddenColRanges = worksheet.getHiddenCols();
27520
- const { scene } = this._getSheetObject();
27521
- const rowCount = worksheet.getRowCount();
27522
- const rowShapes = hiddenRowRanges.map((range) => {
27523
- const { startRow, endRow } = range;
27524
- const position = getCoordByCell(startRow, 0, scene, skeleton);
27525
- const hasPrevious = startRow !== 0;
27526
- const hasNext = endRow !== rowCount - 1;
27527
- return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
27528
- type: 0,
27529
- hovered: false,
27530
- hasPrevious,
27531
- hasNext,
27532
- top: position.startY - (hasPrevious ? 12 : 0),
27533
- left: position.startX - 12
27534
- }, () => this._commandService.executeCommand(_univerjs_sheets.SetSpecificRowsVisibleCommand.id, {
27535
- unitId: workbook.getUnitId(),
27536
- subUnitId: worksheet.getSheetId(),
27537
- ranges: [range]
27538
- }));
27601
+ _initialHoverMenu() {
27602
+ if (this._hoverMenu == null) return;
27603
+ this._hoverMenu.onPointerEnter$.subscribeEvent(() => {
27604
+ if (this._hoverMenu == null) return;
27605
+ this._hoverMenu.setProps({
27606
+ mode: 1,
27607
+ visible: true
27608
+ });
27609
+ this._context.scene.setCursor(_univerjs_engine_render.CURSOR_TYPE.POINTER);
27539
27610
  });
27540
- const colCount = worksheet.getColumnCount();
27541
- const colShapes = hiddenColRanges.map((range) => {
27542
- const { startColumn, endColumn } = range;
27543
- const position = getCoordByCell(0, startColumn, scene, skeleton);
27544
- const hasPrevious = startColumn !== 0;
27545
- const hasNext = endColumn !== colCount - 1;
27546
- return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
27547
- type: 1,
27548
- hovered: false,
27549
- hasPrevious,
27550
- hasNext,
27551
- top: 20 - 12,
27552
- left: position.startX - (hasPrevious ? 12 : 0)
27553
- }, () => this._commandService.executeCommand(_univerjs_sheets.SetSpecificColsVisibleCommand.id, {
27554
- unitId: workbook.getUnitId(),
27555
- subUnitId: worksheet.getSheetId(),
27556
- ranges: [range]
27557
- }));
27611
+ this._hoverMenu.onPointerLeave$.subscribeEvent(() => {
27612
+ if (this._hoverMenu == null) return;
27613
+ this._hoverMenu.setProps({
27614
+ mode: 0,
27615
+ visible: false
27616
+ });
27617
+ this._context.scene.resetCursor();
27618
+ });
27619
+ this._hoverMenu.onPointerDown$.subscribeEvent((evt) => {
27620
+ var _this$_selectionManag;
27621
+ const currentColumn = this._currentColumn;
27622
+ const currentSelectionDatas = (_this$_selectionManag = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag === void 0 ? void 0 : _this$_selectionManag.map((s) => s.range);
27623
+ if (!!!(currentSelectionDatas === null || currentSelectionDatas === void 0 ? void 0 : currentSelectionDatas.filter((range) => range.rangeType === _univerjs_core.RANGE_TYPE.COLUMN).find((data) => {
27624
+ const { startColumn, endColumn } = data;
27625
+ if (currentColumn >= startColumn && currentColumn <= endColumn) return true;
27626
+ return false;
27627
+ }))) {
27628
+ const selection = this._getSelectionOnColumn(currentColumn);
27629
+ this._commandService.syncExecuteCommand(_univerjs_sheets.SetSelectionsOperation.id, selection);
27630
+ }
27631
+ evt.stopPropagation();
27632
+ evt.preventDefault();
27633
+ this._contextMenuService.triggerContextMenu(evt, _univerjs_ui.ContextMenuPosition.COL_HEADER);
27558
27634
  });
27559
- scene.addObjects(colShapes, 12);
27560
- scene.addObjects(rowShapes, 12);
27561
- this._clearShapes();
27562
- this._shapes = {
27563
- cols: colShapes,
27564
- rows: rowShapes
27565
- };
27566
27635
  }
27567
- _clearShapes() {
27568
- this._shapes.cols.forEach((shape) => shape.dispose());
27569
- this._shapes.rows.forEach((shape) => shape.dispose());
27570
- this._shapes = {
27571
- cols: [],
27572
- rows: []
27636
+ _getSelectionOnColumn(column) {
27637
+ const workbook = this._context.unit;
27638
+ const worksheet = workbook.getActiveSheet();
27639
+ if (!worksheet) throw new Error("No active worksheet");
27640
+ return {
27641
+ unitId: workbook.getUnitId(),
27642
+ subUnitId: worksheet.getSheetId(),
27643
+ selections: [{
27644
+ range: {
27645
+ startRow: 0,
27646
+ startColumn: column,
27647
+ endRow: worksheet.getRowCount() - 1,
27648
+ endColumn: column,
27649
+ rangeType: _univerjs_core.RANGE_TYPE.COLUMN
27650
+ },
27651
+ primary: {
27652
+ startRow: 0,
27653
+ startColumn: column,
27654
+ endRow: 0,
27655
+ endColumn: column,
27656
+ actualRow: 0,
27657
+ actualColumn: column,
27658
+ isMerged: false,
27659
+ isMergedMainCell: false
27660
+ },
27661
+ style: null
27662
+ }]
27573
27663
  };
27574
27664
  }
27575
- _getSheetObject() {
27576
- return getSheetObject(this._workbook, this._context);
27577
- }
27578
27665
  };
27579
- HeaderUnhideRenderController = __decorate([__decorateParam(1, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)), __decorateParam(2, _univerjs_core.ICommandService)], HeaderUnhideRenderController);
27666
+ HeaderMenuRenderController = __decorate([
27667
+ __decorateParam(1, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)),
27668
+ __decorateParam(2, _univerjs_ui.IContextMenuService),
27669
+ __decorateParam(3, _univerjs_core.ICommandService),
27670
+ __decorateParam(4, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetsSelectionsService))
27671
+ ], HeaderMenuRenderController);
27672
+ function getHeaderBaseLayout(skeleton) {
27673
+ var _skeleton$worksheet$g, _skeleton$worksheet, _config$rowHeader, _config$columnHeader;
27674
+ const config = (_skeleton$worksheet$g = (_skeleton$worksheet = skeleton.worksheet).getConfig) === null || _skeleton$worksheet$g === void 0 ? void 0 : _skeleton$worksheet$g.call(_skeleton$worksheet);
27675
+ const configuredRowWidth = config === null || config === void 0 || (_config$rowHeader = config.rowHeader) === null || _config$rowHeader === void 0 ? void 0 : _config$rowHeader.width;
27676
+ const configuredColumnHeight = config === null || config === void 0 || (_config$columnHeader = config.columnHeader) === null || _config$columnHeader === void 0 ? void 0 : _config$columnHeader.height;
27677
+ const rowBaseWidth = typeof configuredRowWidth === "number" && configuredRowWidth > 0 ? Math.min(configuredRowWidth, skeleton.rowHeaderWidth) : skeleton.rowHeaderWidth;
27678
+ const columnBaseHeight = typeof configuredColumnHeight === "number" && configuredColumnHeight > 0 ? Math.min(configuredColumnHeight, skeleton.columnHeaderHeight) : skeleton.columnHeaderHeight;
27679
+ return {
27680
+ rowBaseWidth,
27681
+ rowGutterWidth: Math.max(0, skeleton.rowHeaderWidthAndMarginLeft - rowBaseWidth),
27682
+ columnBaseHeight,
27683
+ columnGutterHeight: Math.max(0, skeleton.columnHeaderHeightAndMarginTop - columnBaseHeight)
27684
+ };
27685
+ }
27580
27686
 
27581
27687
  //#endregion
27582
27688
  //#region src/consts/mobile-context.ts
@@ -28883,7 +28989,7 @@ let SheetSkeletonRenderController = class SheetSkeletonRenderController extends
28883
28989
  }));
28884
28990
  }
28885
28991
  _updateSceneSize(param) {
28886
- var _this$_renderManagerS;
28992
+ var _this$_renderManagerS, _scene$getViewport, _scene$getViewport2, _scene$getViewport3, _scene$getViewport4, _scene$getViewport5;
28887
28993
  if (param == null) return;
28888
28994
  const { unitId } = this._context;
28889
28995
  const { skeleton } = param;
@@ -28896,6 +29002,30 @@ let SheetSkeletonRenderController = class SheetSkeletonRenderController extends
28896
29002
  height: columnHeaderHeightAndMarginTop + rowTotalHeight
28897
29003
  });
28898
29004
  scene.getMainViewport().setMargin(rowHeaderWidthAndMarginLeft, columnHeaderHeightAndMarginTop);
29005
+ scene.getMainViewport().resizeWhenFreezeChange({
29006
+ left: rowHeaderWidthAndMarginLeft,
29007
+ top: columnHeaderHeightAndMarginTop
29008
+ });
29009
+ (_scene$getViewport = scene.getViewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT)) === null || _scene$getViewport === void 0 || _scene$getViewport.resizeWhenFreezeChange({
29010
+ left: rowHeaderWidthAndMarginLeft,
29011
+ height: columnHeaderHeightAndMarginTop
29012
+ });
29013
+ (_scene$getViewport2 = scene.getViewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT)) === null || _scene$getViewport2 === void 0 || _scene$getViewport2.resizeWhenFreezeChange({
29014
+ left: rowHeaderWidthAndMarginLeft,
29015
+ height: columnHeaderHeightAndMarginTop
29016
+ });
29017
+ (_scene$getViewport3 = scene.getViewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM)) === null || _scene$getViewport3 === void 0 || _scene$getViewport3.resizeWhenFreezeChange({
29018
+ width: rowHeaderWidthAndMarginLeft,
29019
+ top: columnHeaderHeightAndMarginTop
29020
+ });
29021
+ (_scene$getViewport4 = scene.getViewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP)) === null || _scene$getViewport4 === void 0 || _scene$getViewport4.resizeWhenFreezeChange({
29022
+ width: rowHeaderWidthAndMarginLeft,
29023
+ top: columnHeaderHeightAndMarginTop
29024
+ });
29025
+ (_scene$getViewport5 = scene.getViewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP)) === null || _scene$getViewport5 === void 0 || _scene$getViewport5.resizeWhenFreezeChange({
29026
+ width: rowHeaderWidthAndMarginLeft,
29027
+ height: columnHeaderHeightAndMarginTop
29028
+ });
28899
29029
  }
28900
29030
  };
28901
29031
  SheetSkeletonRenderController = __decorate([__decorateParam(1, (0, _univerjs_core.Inject)(SheetSkeletonManagerService)), __decorateParam(2, _univerjs_engine_render.IRenderManagerService)], SheetSkeletonRenderController);
@@ -29729,16 +29859,18 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
29729
29859
  */
29730
29860
  newSelectionControl(scene, skeleton, selection) {
29731
29861
  const selectionControls = this.getSelectionControls();
29732
- const { rowHeaderWidth, columnHeaderHeight } = skeleton;
29862
+ const { rowHeaderWidth, rowHeaderWidthAndMarginLeft, columnHeaderHeight, columnHeaderHeightAndMarginTop } = skeleton;
29733
29863
  const rangeType = selection.range.rangeType;
29734
29864
  const control = new MobileSelectionControl(scene, selectionControls.length, this._themeService, {
29735
29865
  highlightHeader: this._highlightHeader,
29736
29866
  rowHeaderWidth,
29737
29867
  columnHeaderHeight,
29868
+ rowHeaderOffsetX: Math.max(0, rowHeaderWidthAndMarginLeft - rowHeaderWidth),
29869
+ columnHeaderOffsetY: Math.max(0, columnHeaderHeightAndMarginTop - columnHeaderHeight),
29738
29870
  rangeType
29739
29871
  });
29740
29872
  const selectionWithCoord = (0, _univerjs_sheets.attachSelectionWithCoord)(selection, skeleton);
29741
- control.updateRangeBySelectionWithCoord(selectionWithCoord);
29873
+ control.updateRangeBySelectionWithCoord(selectionWithCoord, skeleton);
29742
29874
  this._selectionControls.push(control);
29743
29875
  const { expandingModeForTopLeft, expandingModeForBottomRight } = (() => {
29744
29876
  switch (rangeType) {
@@ -30014,6 +30146,7 @@ let UniverSheetsMobileUIPlugin = class UniverSheetsMobileUIPlugin extends _unive
30014
30146
  [IStatusBarService, { useClass: StatusBarService }],
30015
30147
  [IMarkSelectionService, { useClass: MarkSelectionService }],
30016
30148
  [HoverManagerService],
30149
+ [HeaderUnhideRangeService],
30017
30150
  [DragManagerService],
30018
30151
  [SheetCanvasPopManagerService],
30019
30152
  [CellPopupManagerService],
@@ -30609,6 +30742,7 @@ let UniverSheetsUIPlugin = class UniverSheetsUIPlugin extends _univerjs_core.Plu
30609
30742
  [IStatusBarService, { useClass: StatusBarService }],
30610
30743
  [IMarkSelectionService, { useClass: MarkSelectionService }],
30611
30744
  [HoverManagerService],
30745
+ [HeaderUnhideRangeService],
30612
30746
  [DragManagerService],
30613
30747
  [SheetCanvasPopManagerService],
30614
30748
  [CellPopupManagerService],
@@ -30823,6 +30957,7 @@ Object.defineProperty(exports, 'FormulaEditorController', {
30823
30957
  return FormulaEditorController;
30824
30958
  }
30825
30959
  });
30960
+ exports.HEADER_UNHIDE_RANGE_VISIBLE_CHECK = HEADER_UNHIDE_RANGE_VISIBLE_CHECK;
30826
30961
  Object.defineProperty(exports, 'HeaderFreezeRenderController', {
30827
30962
  enumerable: true,
30828
30963
  get: function () {
@@ -30841,6 +30976,14 @@ Object.defineProperty(exports, 'HeaderResizeRenderController', {
30841
30976
  return HeaderResizeRenderController;
30842
30977
  }
30843
30978
  });
30979
+ exports.HeaderUnhideRangeAxis = HeaderUnhideRangeAxis;
30980
+ exports.HeaderUnhideRangeService = HeaderUnhideRangeService;
30981
+ Object.defineProperty(exports, 'HeaderUnhideRenderController', {
30982
+ enumerable: true,
30983
+ get: function () {
30984
+ return HeaderUnhideRenderController;
30985
+ }
30986
+ });
30844
30987
  exports.HideColConfirmCommand = HideColConfirmCommand;
30845
30988
  exports.HideRowConfirmCommand = HideRowConfirmCommand;
30846
30989
  Object.defineProperty(exports, 'HoverManagerService', {