@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 +1048 -905
- package/lib/es/index.js +1044 -910
- package/lib/index.js +1044 -910
- package/lib/types/controllers/render-controllers/header-unhide.render-controller.d.ts +10 -2
- package/lib/types/controllers/render-controllers/sheet.render-controller.d.ts +9 -0
- package/lib/types/index.d.ts +2 -0
- package/lib/types/menu/clear.menu.d.ts +1 -0
- package/lib/types/services/clipboard/copy-content-cache.d.ts +0 -1
- package/lib/types/services/header-unhide-range.service.d.ts +32 -0
- package/lib/types/services/selection/mobile-selection-shape.d.ts +2 -0
- package/lib/types/services/selection/selection-control.d.ts +4 -0
- package/lib/umd/index.js +11 -11
- package/package.json +14 -14
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,
|
|
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(
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 =
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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).
|
|
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).
|
|
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).
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 {
|
|
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,
|
|
14548
|
+
const rowSize = Math.min(44, rowBaseWidth / 3);
|
|
14541
14549
|
this._rowResizeRect.transformByState({
|
|
14542
|
-
left:
|
|
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 =
|
|
14568
|
+
const columnSize = columnBaseHeight * .7;
|
|
14561
14569
|
this._columnResizeRect.transformByState({
|
|
14562
14570
|
left,
|
|
14563
|
-
top:
|
|
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,
|
|
14609
|
-
const shapeWidth = canvasMaxWidth > columnTotalWidth +
|
|
14610
|
-
const shapeHeight = canvasMaxHeight > rowTotalHeight +
|
|
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/
|
|
14746
|
-
|
|
14747
|
-
|
|
14748
|
-
|
|
14749
|
-
|
|
14750
|
-
|
|
14751
|
-
|
|
14752
|
-
|
|
14753
|
-
this
|
|
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
|
-
|
|
14765
|
-
|
|
14766
|
-
this.
|
|
14767
|
-
|
|
14768
|
-
|
|
14769
|
-
|
|
14770
|
-
|
|
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
|
-
|
|
14780
|
-
|
|
14781
|
-
this.
|
|
14782
|
-
|
|
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
|
-
|
|
14816
|
-
|
|
14817
|
-
|
|
14818
|
-
|
|
14819
|
-
|
|
14820
|
-
|
|
14821
|
-
|
|
14822
|
-
|
|
14823
|
-
|
|
14824
|
-
|
|
14825
|
-
|
|
14826
|
-
|
|
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
|
-
|
|
14868
|
-
|
|
14869
|
-
|
|
14870
|
-
|
|
14871
|
-
|
|
14872
|
-
|
|
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
|
-
|
|
14896
|
-
|
|
14897
|
-
|
|
14898
|
-
|
|
14899
|
-
|
|
14900
|
-
|
|
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
|
|
14936
|
-
|
|
14937
|
-
|
|
14938
|
-
|
|
14939
|
-
|
|
14940
|
-
|
|
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
|
-
|
|
14943
|
-
|
|
14944
|
-
|
|
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
|
|
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:
|
|
15009
|
-
height:
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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:
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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).
|
|
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).
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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/
|
|
27100
|
-
|
|
27101
|
-
|
|
27102
|
-
|
|
27103
|
-
|
|
27104
|
-
|
|
27105
|
-
|
|
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
|
-
|
|
27112
|
-
|
|
27113
|
-
|
|
27114
|
-
this.transformByState({
|
|
27115
|
-
width: this._size,
|
|
27116
|
-
height: this._size
|
|
27117
|
-
});
|
|
27312
|
+
_init() {
|
|
27313
|
+
this._initComponents();
|
|
27314
|
+
this._initUiPartComponents();
|
|
27118
27315
|
}
|
|
27119
|
-
|
|
27120
|
-
|
|
27121
|
-
|
|
27122
|
-
|
|
27123
|
-
|
|
27124
|
-
|
|
27125
|
-
|
|
27126
|
-
|
|
27127
|
-
|
|
27128
|
-
|
|
27129
|
-
|
|
27130
|
-
|
|
27131
|
-
|
|
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
|
-
|
|
27151
|
-
|
|
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.
|
|
27161
|
-
this.
|
|
27162
|
-
this
|
|
27163
|
-
_defineProperty(this, "
|
|
27164
|
-
|
|
27165
|
-
|
|
27166
|
-
|
|
27167
|
-
|
|
27168
|
-
this.
|
|
27169
|
-
|
|
27170
|
-
|
|
27171
|
-
|
|
27172
|
-
|
|
27173
|
-
|
|
27174
|
-
|
|
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
|
-
|
|
27178
|
-
const
|
|
27179
|
-
|
|
27180
|
-
|
|
27181
|
-
|
|
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
|
-
|
|
27193
|
-
|
|
27194
|
-
|
|
27195
|
-
|
|
27196
|
-
|
|
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.
|
|
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
|
-
|
|
27252
|
-
|
|
27253
|
-
|
|
27254
|
-
|
|
27255
|
-
|
|
27256
|
-
|
|
27257
|
-
|
|
27258
|
-
|
|
27259
|
-
|
|
27260
|
-
|
|
27261
|
-
this.
|
|
27262
|
-
|
|
27263
|
-
|
|
27264
|
-
|
|
27265
|
-
|
|
27266
|
-
|
|
27267
|
-
|
|
27268
|
-
|
|
27269
|
-
this.
|
|
27270
|
-
|
|
27271
|
-
|
|
27272
|
-
|
|
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
|
-
|
|
27287
|
-
const
|
|
27288
|
-
const
|
|
27289
|
-
|
|
27290
|
-
|
|
27291
|
-
|
|
27292
|
-
|
|
27293
|
-
|
|
27294
|
-
|
|
27295
|
-
|
|
27296
|
-
|
|
27297
|
-
|
|
27298
|
-
|
|
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
|
-
|
|
27317
|
-
__decorateParam(1, (0, _univerjs_core.Inject)(
|
|
27318
|
-
__decorateParam(2,
|
|
27319
|
-
__decorateParam(3, _univerjs_core.
|
|
27320
|
-
__decorateParam(4, (0, _univerjs_core.Inject)(
|
|
27321
|
-
],
|
|
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/
|
|
27325
|
-
|
|
27326
|
-
|
|
27327
|
-
|
|
27328
|
-
|
|
27329
|
-
|
|
27330
|
-
|
|
27331
|
-
|
|
27332
|
-
|
|
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
|
-
|
|
27342
|
-
|
|
27343
|
-
|
|
27344
|
-
|
|
27345
|
-
|
|
27346
|
-
|
|
27347
|
-
|
|
27348
|
-
|
|
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
|
-
|
|
27352
|
-
|
|
27353
|
-
|
|
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
|
-
|
|
27356
|
-
|
|
27357
|
-
|
|
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
|
-
|
|
27413
|
-
|
|
27414
|
-
|
|
27415
|
-
|
|
27416
|
-
|
|
27417
|
-
|
|
27418
|
-
|
|
27419
|
-
|
|
27420
|
-
|
|
27421
|
-
|
|
27422
|
-
|
|
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
|
-
|
|
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-
|
|
27473
|
-
const
|
|
27474
|
-
|
|
27475
|
-
|
|
27476
|
-
|
|
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
|
-
|
|
27484
|
-
|
|
27485
|
-
|
|
27486
|
-
|
|
27487
|
-
this
|
|
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
|
-
|
|
27491
|
-
this.
|
|
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
|
-
|
|
27494
|
-
|
|
27495
|
-
this.
|
|
27496
|
-
|
|
27497
|
-
|
|
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.
|
|
27505
|
-
|
|
27506
|
-
|
|
27507
|
-
|
|
27508
|
-
|
|
27509
|
-
|
|
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
|
-
|
|
27515
|
-
|
|
27516
|
-
|
|
27517
|
-
|
|
27518
|
-
|
|
27519
|
-
|
|
27520
|
-
|
|
27521
|
-
|
|
27522
|
-
|
|
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
|
-
|
|
27541
|
-
|
|
27542
|
-
|
|
27543
|
-
|
|
27544
|
-
|
|
27545
|
-
|
|
27546
|
-
|
|
27547
|
-
|
|
27548
|
-
|
|
27549
|
-
|
|
27550
|
-
|
|
27551
|
-
|
|
27552
|
-
|
|
27553
|
-
|
|
27554
|
-
|
|
27555
|
-
|
|
27556
|
-
|
|
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
|
-
|
|
27568
|
-
this.
|
|
27569
|
-
|
|
27570
|
-
|
|
27571
|
-
|
|
27572
|
-
|
|
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
|
-
|
|
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', {
|