@univerjs/sheets-ui 0.22.1 → 0.23.0-insiders.20260522-e8f2a3b
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 +938 -793
- package/lib/es/index.js +929 -793
- package/lib/index.js +929 -793
- 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/types/views/permission/extensions/range-protection.render.d.ts +2 -2
- package/lib/umd/index.js +11 -11
- package/package.json +14 -14
- package/LICENSE +0 -176
package/lib/es/index.js
CHANGED
|
@@ -489,11 +489,13 @@ var BaseSelectionRenderService = class extends Disposable {
|
|
|
489
489
|
}
|
|
490
490
|
newSelectionControl(scene, skeleton, selection) {
|
|
491
491
|
const zIndex = this.getSelectionControls().length;
|
|
492
|
-
const { rowHeaderWidth, columnHeaderHeight } = skeleton;
|
|
492
|
+
const { rowHeaderWidth, rowHeaderWidthAndMarginLeft, columnHeaderHeight, columnHeaderHeightAndMarginTop } = skeleton;
|
|
493
493
|
const control = new SelectionControl(scene, zIndex, this._selectionTheme, {
|
|
494
494
|
highlightHeader: this._highlightHeader,
|
|
495
495
|
rowHeaderWidth,
|
|
496
|
-
columnHeaderHeight
|
|
496
|
+
columnHeaderHeight,
|
|
497
|
+
rowHeaderOffsetX: Math.max(0, rowHeaderWidthAndMarginLeft - rowHeaderWidth),
|
|
498
|
+
columnHeaderOffsetY: Math.max(0, columnHeaderHeightAndMarginTop - columnHeaderHeight)
|
|
497
499
|
});
|
|
498
500
|
this._selectionControls.push(control);
|
|
499
501
|
const selectionWithCoord = attachSelectionWithCoord(selection, skeleton);
|
|
@@ -1779,7 +1781,7 @@ const SELECTION_TITLE_HIGHLIGHT_ALPHA = .3;
|
|
|
1779
1781
|
*/
|
|
1780
1782
|
var SelectionControl = class extends Disposable {
|
|
1781
1783
|
constructor(_scene, _zIndex, _themeService, options) {
|
|
1782
|
-
var _options$enableAutoFi, _options$highlightHea, _options$rowHeaderWid, _options$columnHeader;
|
|
1784
|
+
var _options$enableAutoFi, _options$highlightHea, _options$rowHeaderWid, _options$columnHeader, _options$rowHeaderOff, _options$columnHeader2;
|
|
1783
1785
|
super();
|
|
1784
1786
|
this._scene = _scene;
|
|
1785
1787
|
this._zIndex = _zIndex;
|
|
@@ -1818,6 +1820,8 @@ var SelectionControl = class extends Disposable {
|
|
|
1818
1820
|
_defineProperty(this, "_currentStyle", void 0);
|
|
1819
1821
|
_defineProperty(this, "_rowHeaderWidth", 0);
|
|
1820
1822
|
_defineProperty(this, "_columnHeaderHeight", 0);
|
|
1823
|
+
_defineProperty(this, "_rowHeaderOffsetX", 0);
|
|
1824
|
+
_defineProperty(this, "_columnHeaderOffsetY", 0);
|
|
1821
1825
|
_defineProperty(this, "_widgetRects", []);
|
|
1822
1826
|
_defineProperty(this, "_controlExtension", void 0);
|
|
1823
1827
|
_defineProperty(this, "_dispose$", new BehaviorSubject(this));
|
|
@@ -1835,6 +1839,8 @@ var SelectionControl = class extends Disposable {
|
|
|
1835
1839
|
this._highlightHeader = (_options$highlightHea = options === null || options === void 0 ? void 0 : options.highlightHeader) !== null && _options$highlightHea !== void 0 ? _options$highlightHea : true;
|
|
1836
1840
|
this._rowHeaderWidth = (_options$rowHeaderWid = options === null || options === void 0 ? void 0 : options.rowHeaderWidth) !== null && _options$rowHeaderWid !== void 0 ? _options$rowHeaderWid : 0;
|
|
1837
1841
|
this._columnHeaderHeight = (_options$columnHeader = options === null || options === void 0 ? void 0 : options.columnHeaderHeight) !== null && _options$columnHeader !== void 0 ? _options$columnHeader : 0;
|
|
1842
|
+
this._rowHeaderOffsetX = (_options$rowHeaderOff = options === null || options === void 0 ? void 0 : options.rowHeaderOffsetX) !== null && _options$rowHeaderOff !== void 0 ? _options$rowHeaderOff : 0;
|
|
1843
|
+
this._columnHeaderOffsetY = (_options$columnHeader2 = options === null || options === void 0 ? void 0 : options.columnHeaderOffsetY) !== null && _options$columnHeader2 !== void 0 ? _options$columnHeader2 : 0;
|
|
1838
1844
|
this._initializeSheetBody();
|
|
1839
1845
|
this._initialHeader();
|
|
1840
1846
|
}
|
|
@@ -2199,6 +2205,8 @@ var SelectionControl = class extends Disposable {
|
|
|
2199
2205
|
if (sk) {
|
|
2200
2206
|
this._rowHeaderWidth = sk.rowHeaderWidth;
|
|
2201
2207
|
this._columnHeaderHeight = sk.columnHeaderHeight;
|
|
2208
|
+
this._rowHeaderOffsetX = Math.max(0, sk.rowHeaderWidthAndMarginLeft - sk.rowHeaderWidth);
|
|
2209
|
+
this._columnHeaderOffsetY = Math.max(0, sk.columnHeaderHeightAndMarginTop - sk.columnHeaderHeight);
|
|
2202
2210
|
}
|
|
2203
2211
|
this._selectionRenderModel.setValue(selectionWthCoord.rangeWithCoord, selectionWthCoord.primaryWithCoord);
|
|
2204
2212
|
this._showAutoFill = selectionWthCoord.primaryWithCoord !== null;
|
|
@@ -2219,6 +2227,8 @@ var SelectionControl = class extends Disposable {
|
|
|
2219
2227
|
update(newSelectionRange, rowHeaderWidth = 0, columnHeaderHeight = 0, style, primaryCell) {
|
|
2220
2228
|
this._rowHeaderWidth = rowHeaderWidth;
|
|
2221
2229
|
this._columnHeaderHeight = columnHeaderHeight;
|
|
2230
|
+
this._rowHeaderOffsetX = 0;
|
|
2231
|
+
this._columnHeaderOffsetY = 0;
|
|
2222
2232
|
this.updateRangeBySelectionWithCoord({
|
|
2223
2233
|
rangeWithCoord: newSelectionRange,
|
|
2224
2234
|
primaryWithCoord: primaryCell,
|
|
@@ -2338,6 +2348,8 @@ var SelectionControl = class extends Disposable {
|
|
|
2338
2348
|
columnHeaderStrokeWidth /= scale;
|
|
2339
2349
|
const rowHeaderWidth = this._rowHeaderWidth;
|
|
2340
2350
|
const columnHeaderHeight = this._columnHeaderHeight;
|
|
2351
|
+
const rowHeaderOffsetX = this._rowHeaderOffsetX;
|
|
2352
|
+
const columnHeaderOffsetY = this._columnHeaderOffsetY;
|
|
2341
2353
|
if (this._highlightHeader && columnHeaderHeight > 0) {
|
|
2342
2354
|
let highlightTitleColor = columnHeaderFill;
|
|
2343
2355
|
if (rangeType === RANGE_TYPE.COLUMN) highlightTitleColor = new ColorKit(stroke).setAlpha(SELECTION_TITLE_HIGHLIGHT_ALPHA).toString();
|
|
@@ -2350,7 +2362,7 @@ var SelectionControl = class extends Disposable {
|
|
|
2350
2362
|
top: columnHeaderHeight - columnHeaderStrokeWidth + 1 / scale
|
|
2351
2363
|
});
|
|
2352
2364
|
this._columnHeaderGroup.show();
|
|
2353
|
-
this._columnHeaderGroup.translate(startX,
|
|
2365
|
+
this._columnHeaderGroup.translate(startX, columnHeaderOffsetY);
|
|
2354
2366
|
} else this._columnHeaderGroup.hide();
|
|
2355
2367
|
this._columnHeaderGroup.makeDirty(true);
|
|
2356
2368
|
if (this._highlightHeader && rowHeaderWidth > 0) {
|
|
@@ -2365,7 +2377,7 @@ var SelectionControl = class extends Disposable {
|
|
|
2365
2377
|
left: rowHeaderWidth - rowHeaderStrokeWidth + 1 / scale
|
|
2366
2378
|
});
|
|
2367
2379
|
this._rowHeaderGroup.show();
|
|
2368
|
-
this._rowHeaderGroup.translate(
|
|
2380
|
+
this._rowHeaderGroup.translate(rowHeaderOffsetX, startY);
|
|
2369
2381
|
} else this._rowHeaderGroup.hide();
|
|
2370
2382
|
this._rowHeaderGroup.makeDirty(true);
|
|
2371
2383
|
}
|
|
@@ -2705,10 +2717,6 @@ function cloneCellDataWithSpanInfo(cell) {
|
|
|
2705
2717
|
//#endregion
|
|
2706
2718
|
//#region src/services/clipboard/copy-content-cache.ts
|
|
2707
2719
|
const COPY_CONTENT_CACHE_LIMIT = 10;
|
|
2708
|
-
const ID_LENGTH = 6;
|
|
2709
|
-
function genId() {
|
|
2710
|
-
return generateRandomId(ID_LENGTH);
|
|
2711
|
-
}
|
|
2712
2720
|
function extractId(html) {
|
|
2713
2721
|
const match = html.match(/data-copy-id="([^\s]+)"/);
|
|
2714
2722
|
if (match && match[1]) return match[1];
|
|
@@ -4196,7 +4204,7 @@ let SheetClipboardService = class SheetClipboardService extends Disposable {
|
|
|
4196
4204
|
rowIndex += 1;
|
|
4197
4205
|
}
|
|
4198
4206
|
for (let c = startColumn; c <= endColumn; c++) discreteRange.cols.push(c);
|
|
4199
|
-
const copyId =
|
|
4207
|
+
const copyId = generateRandomId(6);
|
|
4200
4208
|
const html = this._usmToHtml.convert(matrix, discreteRange, hooks, copyId);
|
|
4201
4209
|
return {
|
|
4202
4210
|
copyId,
|
|
@@ -14488,7 +14496,7 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends Di
|
|
|
14488
14496
|
var _this$_sheetSkeletonM;
|
|
14489
14497
|
const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
|
|
14490
14498
|
if (skeleton == null || this._rowResizeRect == null || this._columnResizeRect == null) return;
|
|
14491
|
-
const {
|
|
14499
|
+
const { rowBaseWidth, rowGutterWidth, columnBaseHeight, columnGutterHeight } = getHeaderBaseLayout$1(skeleton);
|
|
14492
14500
|
const { startX, startY, endX, endY, row, column } = getCoordByOffset(evt.offsetX, evt.offsetY, scene, skeleton);
|
|
14493
14501
|
const isLastRow = row === skeleton.worksheet.getRowCount() - 1;
|
|
14494
14502
|
const isLastColumn = column === skeleton.worksheet.getColumnCount() - 1;
|
|
@@ -14508,9 +14516,9 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends Di
|
|
|
14508
14516
|
}
|
|
14509
14517
|
if (this._currentRow === -1) return;
|
|
14510
14518
|
if (!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null, { row: this._currentRow })) return false;
|
|
14511
|
-
const rowSize = Math.min(44,
|
|
14519
|
+
const rowSize = Math.min(44, rowBaseWidth / 3);
|
|
14512
14520
|
this._rowResizeRect.transformByState({
|
|
14513
|
-
left:
|
|
14521
|
+
left: rowGutterWidth + rowBaseWidth / 2 - rowSize / 2,
|
|
14514
14522
|
top
|
|
14515
14523
|
});
|
|
14516
14524
|
this._rowResizeRect.setShapeProps({ size: rowSize });
|
|
@@ -14528,10 +14536,10 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends Di
|
|
|
14528
14536
|
}
|
|
14529
14537
|
if (this._currentColumn === -1) return;
|
|
14530
14538
|
if (!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null, { col: this._currentColumn })) return false;
|
|
14531
|
-
const columnSize =
|
|
14539
|
+
const columnSize = columnBaseHeight * .7;
|
|
14532
14540
|
this._columnResizeRect.transformByState({
|
|
14533
14541
|
left,
|
|
14534
|
-
top:
|
|
14542
|
+
top: columnGutterHeight + columnBaseHeight / 2 - columnSize / 2
|
|
14535
14543
|
});
|
|
14536
14544
|
this._columnResizeRect.setShapeProps({ size: columnSize });
|
|
14537
14545
|
this._columnResizeRect.show();
|
|
@@ -14576,9 +14584,9 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends Di
|
|
|
14576
14584
|
let isStartMove = false;
|
|
14577
14585
|
let moveChangeX = 0;
|
|
14578
14586
|
let moveChangeY = 0;
|
|
14579
|
-
const { columnTotalWidth,
|
|
14580
|
-
const shapeWidth = canvasMaxWidth > columnTotalWidth +
|
|
14581
|
-
const shapeHeight = canvasMaxHeight > rowTotalHeight +
|
|
14587
|
+
const { columnTotalWidth, rowHeaderWidthAndMarginLeft, rowTotalHeight, columnHeaderHeightAndMarginTop } = skeleton;
|
|
14588
|
+
const shapeWidth = canvasMaxWidth > columnTotalWidth + rowHeaderWidthAndMarginLeft ? canvasMaxWidth : columnTotalWidth + rowHeaderWidthAndMarginLeft;
|
|
14589
|
+
const shapeHeight = canvasMaxHeight > rowTotalHeight + columnHeaderHeightAndMarginTop ? canvasMaxHeight : rowTotalHeight + columnHeaderHeightAndMarginTop;
|
|
14582
14590
|
const HEADER_MENU_SHAPE_THUMB_SIZE_SCALE = 4 / Math.max(scaleX, scaleY);
|
|
14583
14591
|
if (initialType === 0) this._resizeHelperShape = new Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER, {
|
|
14584
14592
|
width: shapeWidth,
|
|
@@ -14711,126 +14719,498 @@ HeaderResizeRenderController = __decorate([
|
|
|
14711
14719
|
__decorateParam(2, Inject(SheetsSelectionsService)),
|
|
14712
14720
|
__decorateParam(3, ICommandService)
|
|
14713
14721
|
], HeaderResizeRenderController);
|
|
14722
|
+
function getHeaderBaseLayout$1(skeleton) {
|
|
14723
|
+
var _skeleton$worksheet$g, _skeleton$worksheet, _config$rowHeader, _config$columnHeader;
|
|
14724
|
+
const config = (_skeleton$worksheet$g = (_skeleton$worksheet = skeleton.worksheet).getConfig) === null || _skeleton$worksheet$g === void 0 ? void 0 : _skeleton$worksheet$g.call(_skeleton$worksheet);
|
|
14725
|
+
const configuredRowWidth = config === null || config === void 0 || (_config$rowHeader = config.rowHeader) === null || _config$rowHeader === void 0 ? void 0 : _config$rowHeader.width;
|
|
14726
|
+
const configuredColumnHeight = config === null || config === void 0 || (_config$columnHeader = config.columnHeader) === null || _config$columnHeader === void 0 ? void 0 : _config$columnHeader.height;
|
|
14727
|
+
const rowBaseWidth = typeof configuredRowWidth === "number" && configuredRowWidth > 0 ? Math.min(configuredRowWidth, skeleton.rowHeaderWidth) : skeleton.rowHeaderWidth;
|
|
14728
|
+
const columnBaseHeight = typeof configuredColumnHeight === "number" && configuredColumnHeight > 0 ? Math.min(configuredColumnHeight, skeleton.columnHeaderHeight) : skeleton.columnHeaderHeight;
|
|
14729
|
+
return {
|
|
14730
|
+
rowBaseWidth,
|
|
14731
|
+
rowGutterWidth: Math.max(0, skeleton.rowHeaderWidthAndMarginLeft - rowBaseWidth),
|
|
14732
|
+
columnBaseHeight,
|
|
14733
|
+
columnGutterHeight: Math.max(0, skeleton.columnHeaderHeightAndMarginTop - columnBaseHeight)
|
|
14734
|
+
};
|
|
14735
|
+
}
|
|
14714
14736
|
|
|
14715
14737
|
//#endregion
|
|
14716
|
-
//#region src/
|
|
14717
|
-
|
|
14718
|
-
|
|
14719
|
-
|
|
14720
|
-
|
|
14721
|
-
|
|
14722
|
-
|
|
14723
|
-
|
|
14724
|
-
this
|
|
14725
|
-
this._commandService = _commandService;
|
|
14726
|
-
this._telemetryService = _telemetryService;
|
|
14727
|
-
_defineProperty(this, "_renderMetric$", new Subject());
|
|
14728
|
-
_defineProperty(this, "renderMetric$", this._renderMetric$.asObservable());
|
|
14729
|
-
_defineProperty(this, "_renderFrameTimeMetric", null);
|
|
14730
|
-
_defineProperty(this, "_renderFrameTags", {});
|
|
14731
|
-
_defineProperty(this, "_afterRenderMetric$", new Subject());
|
|
14732
|
-
this._addNewRender();
|
|
14733
|
-
this._initRenderMetricSubscriber();
|
|
14738
|
+
//#region src/services/header-unhide-range.service.ts
|
|
14739
|
+
let HeaderUnhideRangeAxis = /* @__PURE__ */ function(HeaderUnhideRangeAxis) {
|
|
14740
|
+
HeaderUnhideRangeAxis["ROW"] = "row";
|
|
14741
|
+
HeaderUnhideRangeAxis["COLUMN"] = "column";
|
|
14742
|
+
return HeaderUnhideRangeAxis;
|
|
14743
|
+
}({});
|
|
14744
|
+
var HeaderUnhideRangeService = class {
|
|
14745
|
+
constructor() {
|
|
14746
|
+
_defineProperty(this, "_visibleHandlers", /* @__PURE__ */ new Set());
|
|
14734
14747
|
}
|
|
14735
|
-
|
|
14736
|
-
|
|
14737
|
-
this.
|
|
14738
|
-
|
|
14739
|
-
|
|
14740
|
-
|
|
14741
|
-
|
|
14742
|
-
const sheetId = worksheet.getSheetId();
|
|
14743
|
-
this._sheetSkeletonManagerService.setCurrent({ sheetId });
|
|
14744
|
-
const frameFn = () => scene.render();
|
|
14745
|
-
this.disposeWithMe(this._context.activated$.subscribe((activated) => {
|
|
14746
|
-
if (activated) engine.runRenderLoop(frameFn);
|
|
14747
|
-
else engine.stopRenderLoop(frameFn);
|
|
14748
|
-
}));
|
|
14748
|
+
registerRangeVisibleHandler(handler) {
|
|
14749
|
+
this._visibleHandlers.add(handler);
|
|
14750
|
+
const dispose = () => this._visibleHandlers.delete(handler);
|
|
14751
|
+
return {
|
|
14752
|
+
dispose,
|
|
14753
|
+
unsubscribe: dispose
|
|
14754
|
+
};
|
|
14749
14755
|
}
|
|
14750
|
-
|
|
14751
|
-
|
|
14752
|
-
|
|
14753
|
-
|
|
14754
|
-
|
|
14756
|
+
shouldRenderRange(visible, payload) {
|
|
14757
|
+
let nextVisible = visible;
|
|
14758
|
+
for (const handler of this._visibleHandlers) nextVisible = handler(nextVisible, payload);
|
|
14759
|
+
return nextVisible;
|
|
14760
|
+
}
|
|
14761
|
+
};
|
|
14762
|
+
|
|
14763
|
+
//#endregion
|
|
14764
|
+
//#region src/menu/header-menu-shape.ts
|
|
14765
|
+
const HEADER_MENU_SHAPE_CIRCLE_FILL = "rgba(0, 0, 0, 0.15)";
|
|
14766
|
+
const HEADER_MENU_SHAPE_TRIANGLE_FILL = "rgb(0, 0, 0)";
|
|
14767
|
+
const HEADER_MENU_BACKGROUND_COLOR = "rgb(255, 255, 255, 1)";
|
|
14768
|
+
var HeaderMenuShape = class extends Shape {
|
|
14769
|
+
constructor(key, props) {
|
|
14770
|
+
super(key, props);
|
|
14771
|
+
_defineProperty(this, "_size", 12);
|
|
14772
|
+
_defineProperty(this, "_iconRatio", .4);
|
|
14773
|
+
_defineProperty(this, "_mode", 0);
|
|
14774
|
+
this.setShapeProps(props);
|
|
14775
|
+
}
|
|
14776
|
+
setShapeProps(props) {
|
|
14777
|
+
if (props === null || props === void 0 ? void 0 : props.size) this._size = props.size;
|
|
14778
|
+
if (props === null || props === void 0 ? void 0 : props.mode) this._mode = props.mode;
|
|
14779
|
+
this.transformByState({
|
|
14780
|
+
width: this._size,
|
|
14781
|
+
height: this._size
|
|
14755
14782
|
});
|
|
14756
|
-
|
|
14757
|
-
|
|
14758
|
-
|
|
14759
|
-
|
|
14760
|
-
|
|
14783
|
+
}
|
|
14784
|
+
_draw(ctx) {
|
|
14785
|
+
if (this._mode === 1) Rect.drawWith(ctx, {
|
|
14786
|
+
width: this._size,
|
|
14787
|
+
height: this._size,
|
|
14788
|
+
radius: this._size,
|
|
14789
|
+
fill: HEADER_MENU_SHAPE_CIRCLE_FILL
|
|
14761
14790
|
});
|
|
14762
|
-
|
|
14763
|
-
|
|
14764
|
-
|
|
14765
|
-
|
|
14791
|
+
const iconSize = this._size * .5 * this._iconRatio;
|
|
14792
|
+
const sixtyDegree = Math.PI / 180 * 60;
|
|
14793
|
+
const left = iconSize * Math.sin(sixtyDegree);
|
|
14794
|
+
const top = iconSize * Math.cos(sixtyDegree);
|
|
14795
|
+
RegularPolygon.drawWith(ctx, {
|
|
14796
|
+
pointsGroup: [[
|
|
14797
|
+
{
|
|
14798
|
+
x: -left + this._size / 2,
|
|
14799
|
+
y: -top + this._size / 2
|
|
14800
|
+
},
|
|
14801
|
+
{
|
|
14802
|
+
x: left + this._size / 2,
|
|
14803
|
+
y: -top + this._size / 2
|
|
14804
|
+
},
|
|
14805
|
+
{
|
|
14806
|
+
x: this._size / 2,
|
|
14807
|
+
y: iconSize + this._size / 2
|
|
14808
|
+
}
|
|
14809
|
+
]],
|
|
14810
|
+
fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
|
|
14766
14811
|
});
|
|
14767
|
-
|
|
14768
|
-
|
|
14812
|
+
}
|
|
14813
|
+
};
|
|
14814
|
+
|
|
14815
|
+
//#endregion
|
|
14816
|
+
//#region src/views/header-unhide-shape.ts
|
|
14817
|
+
const UNHIDE_ICON_SIZE = 12;
|
|
14818
|
+
const UNHIDE_ARROW_RATIO = .4;
|
|
14819
|
+
var HeaderUnhideShape = class extends Shape {
|
|
14820
|
+
constructor(key, props, onClick) {
|
|
14821
|
+
super(key, props);
|
|
14822
|
+
_defineProperty(this, "_size", 12);
|
|
14823
|
+
_defineProperty(this, "_iconRatio", UNHIDE_ARROW_RATIO);
|
|
14824
|
+
_defineProperty(this, "_hovered", true);
|
|
14825
|
+
_defineProperty(this, "_hasPrevious", true);
|
|
14826
|
+
_defineProperty(this, "_hasNext", true);
|
|
14827
|
+
_defineProperty(this, "_unhideType", void 0);
|
|
14828
|
+
if (props) this.setShapeProps(props);
|
|
14829
|
+
this.onPointerEnter$.subscribeEvent(() => this.setShapeProps({ hovered: true }));
|
|
14830
|
+
this.onPointerLeave$.subscribeEvent(() => this.setShapeProps({ hovered: false }));
|
|
14831
|
+
this.onPointerDown$.subscribeEvent(() => onClick === null || onClick === void 0 ? void 0 : onClick());
|
|
14832
|
+
}
|
|
14833
|
+
setShapeProps(props) {
|
|
14834
|
+
if (props.type !== void 0) this._unhideType = props.type;
|
|
14835
|
+
if (props.hovered !== void 0) this._hovered = props.hovered;
|
|
14836
|
+
if (props.hasPrevious !== void 0) this._hasPrevious = props.hasPrevious;
|
|
14837
|
+
if (props.hasNext !== void 0) this._hasNext = props.hasNext;
|
|
14838
|
+
this.transformByState({
|
|
14839
|
+
width: this._size * (this._unhideType === 1 ? 2 : 1),
|
|
14840
|
+
height: this._size * (this._unhideType === 0 ? 2 : 1)
|
|
14769
14841
|
});
|
|
14770
|
-
|
|
14771
|
-
|
|
14772
|
-
|
|
14773
|
-
|
|
14774
|
-
|
|
14775
|
-
|
|
14776
|
-
|
|
14777
|
-
|
|
14778
|
-
|
|
14779
|
-
|
|
14780
|
-
|
|
14781
|
-
|
|
14782
|
-
|
|
14842
|
+
}
|
|
14843
|
+
_draw(ctx) {
|
|
14844
|
+
if (this._unhideType === 0) this._drawOnRow(ctx);
|
|
14845
|
+
else this._drawOnCol(ctx);
|
|
14846
|
+
}
|
|
14847
|
+
_drawOnRow(ctx) {
|
|
14848
|
+
if (this._hovered) if (!this._hasNext || !this._hasPrevious) Rect.drawWith(ctx, {
|
|
14849
|
+
width: this._size,
|
|
14850
|
+
height: this._size,
|
|
14851
|
+
stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
|
|
14852
|
+
fill: HEADER_MENU_BACKGROUND_COLOR
|
|
14853
|
+
});
|
|
14854
|
+
else Rect.drawWith(ctx, {
|
|
14855
|
+
width: this._size,
|
|
14856
|
+
height: 2 * this._size,
|
|
14857
|
+
stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
|
|
14858
|
+
fill: HEADER_MENU_BACKGROUND_COLOR
|
|
14859
|
+
});
|
|
14860
|
+
const iconSize = this._size * .5 * this._iconRatio;
|
|
14861
|
+
const sixtyDegree = Math.PI / 3;
|
|
14862
|
+
const top = iconSize * Math.cos(sixtyDegree);
|
|
14863
|
+
const left = iconSize * Math.sin(sixtyDegree);
|
|
14864
|
+
if (this._hasPrevious) RegularPolygon.drawWith(ctx, {
|
|
14865
|
+
pointsGroup: [[
|
|
14866
|
+
{
|
|
14867
|
+
x: this._size / 2,
|
|
14868
|
+
y: this._size / 2 - left
|
|
14869
|
+
},
|
|
14870
|
+
{
|
|
14871
|
+
x: this._size / 2 - left,
|
|
14872
|
+
y: this._size / 2 + top
|
|
14873
|
+
},
|
|
14874
|
+
{
|
|
14875
|
+
x: this._size / 2 + left,
|
|
14876
|
+
y: this._size / 2 + top
|
|
14877
|
+
}
|
|
14878
|
+
]],
|
|
14879
|
+
fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
|
|
14783
14880
|
});
|
|
14881
|
+
if (this._hasNext) {
|
|
14882
|
+
const offset = this._hasPrevious ? 3 : 1;
|
|
14883
|
+
RegularPolygon.drawWith(ctx, {
|
|
14884
|
+
pointsGroup: [[
|
|
14885
|
+
{
|
|
14886
|
+
x: this._size / 2,
|
|
14887
|
+
y: this._size * offset / 2 + left
|
|
14888
|
+
},
|
|
14889
|
+
{
|
|
14890
|
+
x: this._size / 2 - left,
|
|
14891
|
+
y: this._size * offset / 2 - top
|
|
14892
|
+
},
|
|
14893
|
+
{
|
|
14894
|
+
x: this._size / 2 + left,
|
|
14895
|
+
y: this._size * offset / 2 - top
|
|
14896
|
+
}
|
|
14897
|
+
]],
|
|
14898
|
+
fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
|
|
14899
|
+
});
|
|
14900
|
+
}
|
|
14784
14901
|
}
|
|
14785
14902
|
/**
|
|
14786
|
-
*
|
|
14787
|
-
* @param
|
|
14903
|
+
*
|
|
14904
|
+
* @param ctx
|
|
14788
14905
|
*/
|
|
14789
|
-
|
|
14790
|
-
|
|
14791
|
-
|
|
14792
|
-
|
|
14793
|
-
|
|
14794
|
-
|
|
14795
|
-
const sums = Object.entries(data).filter(([_, value]) => Array.isArray(value)).map(([key]) => key).reduce((acc, key) => {
|
|
14796
|
-
acc[key] = data[key].reduce((sum, num) => sum + num, 0);
|
|
14797
|
-
return acc;
|
|
14798
|
-
}, {});
|
|
14799
|
-
Object.keys(data).filter((key) => key.startsWith(SHEET_EXTENSION_PREFIX)).forEach((key) => {
|
|
14800
|
-
totalSum += sums[key];
|
|
14801
|
-
});
|
|
14802
|
-
return {
|
|
14803
|
-
...sums,
|
|
14804
|
-
extensionTotal: totalSum
|
|
14805
|
-
};
|
|
14806
|
-
};
|
|
14807
|
-
const frameTimeListAfterSum = frameInfoList.map((info) => {
|
|
14808
|
-
return {
|
|
14809
|
-
...info,
|
|
14810
|
-
...sumValueForNumListFields(info)
|
|
14811
|
-
};
|
|
14906
|
+
_drawOnCol(ctx) {
|
|
14907
|
+
if (this._hovered) if (!this._hasNext || !this._hasPrevious) Rect.drawWith(ctx, {
|
|
14908
|
+
width: this._size,
|
|
14909
|
+
height: this._size,
|
|
14910
|
+
stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
|
|
14911
|
+
fill: HEADER_MENU_BACKGROUND_COLOR
|
|
14812
14912
|
});
|
|
14813
|
-
|
|
14814
|
-
|
|
14815
|
-
|
|
14816
|
-
|
|
14817
|
-
|
|
14818
|
-
|
|
14819
|
-
|
|
14820
|
-
|
|
14821
|
-
|
|
14822
|
-
|
|
14823
|
-
|
|
14824
|
-
|
|
14825
|
-
|
|
14826
|
-
|
|
14827
|
-
|
|
14828
|
-
|
|
14829
|
-
|
|
14830
|
-
|
|
14831
|
-
|
|
14832
|
-
|
|
14833
|
-
|
|
14913
|
+
else Rect.drawWith(ctx, {
|
|
14914
|
+
width: 2 * this._size,
|
|
14915
|
+
height: this._size,
|
|
14916
|
+
stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
|
|
14917
|
+
fill: HEADER_MENU_BACKGROUND_COLOR
|
|
14918
|
+
});
|
|
14919
|
+
const iconSize = this._size * .5 * this._iconRatio;
|
|
14920
|
+
const sixtyDegree = Math.PI / 3;
|
|
14921
|
+
const top = iconSize * Math.cos(sixtyDegree);
|
|
14922
|
+
const left = iconSize * Math.sin(sixtyDegree);
|
|
14923
|
+
if (this._hasPrevious) RegularPolygon.drawWith(ctx, {
|
|
14924
|
+
pointsGroup: [[
|
|
14925
|
+
{
|
|
14926
|
+
x: -top + this._size / 2,
|
|
14927
|
+
y: this._size / 2
|
|
14928
|
+
},
|
|
14929
|
+
{
|
|
14930
|
+
x: this._size / 2 + left,
|
|
14931
|
+
y: this._size / 2 - left
|
|
14932
|
+
},
|
|
14933
|
+
{
|
|
14934
|
+
x: this._size / 2 + left,
|
|
14935
|
+
y: this._size / 2 + left
|
|
14936
|
+
}
|
|
14937
|
+
]],
|
|
14938
|
+
fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
|
|
14939
|
+
});
|
|
14940
|
+
if (this._hasNext) {
|
|
14941
|
+
const offset = this._hasPrevious ? 3 : 1;
|
|
14942
|
+
RegularPolygon.drawWith(ctx, {
|
|
14943
|
+
pointsGroup: [[
|
|
14944
|
+
{
|
|
14945
|
+
x: top + this._size * offset / 2,
|
|
14946
|
+
y: this._size / 2
|
|
14947
|
+
},
|
|
14948
|
+
{
|
|
14949
|
+
x: -left + this._size * offset / 2,
|
|
14950
|
+
y: this._size / 2 - left
|
|
14951
|
+
},
|
|
14952
|
+
{
|
|
14953
|
+
x: -left + this._size * offset / 2,
|
|
14954
|
+
y: this._size / 2 + left
|
|
14955
|
+
}
|
|
14956
|
+
]],
|
|
14957
|
+
fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
|
|
14958
|
+
});
|
|
14959
|
+
}
|
|
14960
|
+
}
|
|
14961
|
+
};
|
|
14962
|
+
|
|
14963
|
+
//#endregion
|
|
14964
|
+
//#region src/controllers/render-controllers/header-unhide.render-controller.ts
|
|
14965
|
+
const HEADER_UNHIDE_CONTROLLER_SHAPE = "__SpreadsheetHeaderUnhideSHAPEControllerShape__";
|
|
14966
|
+
const HEADER_UNHIDE_RANGE_VISIBLE_CHECK = createInterceptorKey("headerUnhideRangeVisibleCheck");
|
|
14967
|
+
let HeaderUnhideRenderController = class HeaderUnhideRenderController extends RxDisposable {
|
|
14968
|
+
get _workbook() {
|
|
14969
|
+
return this._context.unit;
|
|
14970
|
+
}
|
|
14971
|
+
constructor(_context, _sheetSkeletonManagerService, _headerUnhideRangeService, _commandService) {
|
|
14972
|
+
super();
|
|
14973
|
+
this._context = _context;
|
|
14974
|
+
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
14975
|
+
this._headerUnhideRangeService = _headerUnhideRangeService;
|
|
14976
|
+
this._commandService = _commandService;
|
|
14977
|
+
_defineProperty(this, "_shapes", {
|
|
14978
|
+
cols: [],
|
|
14979
|
+
rows: []
|
|
14980
|
+
});
|
|
14981
|
+
_defineProperty(this, "interceptor", new InterceptorManager({ HEADER_UNHIDE_RANGE_VISIBLE_CHECK }));
|
|
14982
|
+
this._init();
|
|
14983
|
+
}
|
|
14984
|
+
dispose() {
|
|
14985
|
+
super.dispose();
|
|
14986
|
+
this._clearShapes();
|
|
14987
|
+
}
|
|
14988
|
+
_init() {
|
|
14989
|
+
let activeSheetId = "";
|
|
14990
|
+
this._context.unit.activeSheet$.pipe(takeUntil(this.dispose$)).subscribe((worksheet) => {
|
|
14991
|
+
this._clearShapes();
|
|
14992
|
+
if (!worksheet) {
|
|
14993
|
+
activeSheetId = "";
|
|
14994
|
+
return;
|
|
14995
|
+
}
|
|
14996
|
+
activeSheetId = worksheet.getSheetId();
|
|
14997
|
+
this._update(this._workbook, worksheet);
|
|
14998
|
+
});
|
|
14999
|
+
this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
|
|
15000
|
+
if (param) {
|
|
15001
|
+
const { unitId, sheetId } = param;
|
|
15002
|
+
if (unitId === this._workbook.getUnitId() && sheetId === activeSheetId) {
|
|
15003
|
+
const worksheet = this._workbook.getSheetBySheetId(sheetId);
|
|
15004
|
+
if (worksheet) this._update(this._workbook, worksheet);
|
|
15005
|
+
}
|
|
15006
|
+
}
|
|
15007
|
+
}));
|
|
15008
|
+
}
|
|
15009
|
+
_update(workbook, worksheet) {
|
|
15010
|
+
var _this$_sheetSkeletonM;
|
|
15011
|
+
const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getSkeletonParam(worksheet.getSheetId())) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
|
|
15012
|
+
if (!skeleton) return;
|
|
15013
|
+
const visibleCheck = this.interceptor.fetchThroughInterceptors(HEADER_UNHIDE_RANGE_VISIBLE_CHECK);
|
|
15014
|
+
const shouldRenderRange = (payload) => {
|
|
15015
|
+
var _visibleCheck;
|
|
15016
|
+
return this._headerUnhideRangeService.shouldRenderRange((_visibleCheck = visibleCheck(true, payload)) !== null && _visibleCheck !== void 0 ? _visibleCheck : true, payload);
|
|
15017
|
+
};
|
|
15018
|
+
const hiddenRowRanges = worksheet.getHiddenRows().filter((range) => shouldRenderRange({
|
|
15019
|
+
axis: "row",
|
|
15020
|
+
range,
|
|
15021
|
+
workbook,
|
|
15022
|
+
worksheet
|
|
15023
|
+
}));
|
|
15024
|
+
const hiddenColRanges = worksheet.getHiddenCols().filter((range) => shouldRenderRange({
|
|
15025
|
+
axis: "column",
|
|
15026
|
+
range,
|
|
15027
|
+
workbook,
|
|
15028
|
+
worksheet
|
|
15029
|
+
}));
|
|
15030
|
+
const { scene } = this._getSheetObject();
|
|
15031
|
+
const rowCount = worksheet.getRowCount();
|
|
15032
|
+
const rowShapes = hiddenRowRanges.map((range) => {
|
|
15033
|
+
const { startRow, endRow } = range;
|
|
15034
|
+
const position = getCoordByCell(startRow, 0, scene, skeleton);
|
|
15035
|
+
const hasPrevious = startRow !== 0;
|
|
15036
|
+
const hasNext = endRow !== rowCount - 1;
|
|
15037
|
+
return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
|
|
15038
|
+
type: 0,
|
|
15039
|
+
hovered: false,
|
|
15040
|
+
hasPrevious,
|
|
15041
|
+
hasNext,
|
|
15042
|
+
top: position.startY - (hasPrevious ? 12 : 0),
|
|
15043
|
+
left: position.startX - 12
|
|
15044
|
+
}, () => this._commandService.executeCommand(SetSpecificRowsVisibleCommand.id, {
|
|
15045
|
+
unitId: workbook.getUnitId(),
|
|
15046
|
+
subUnitId: worksheet.getSheetId(),
|
|
15047
|
+
ranges: [range]
|
|
15048
|
+
}));
|
|
15049
|
+
});
|
|
15050
|
+
const colCount = worksheet.getColumnCount();
|
|
15051
|
+
const colShapes = hiddenColRanges.map((range) => {
|
|
15052
|
+
const { startColumn, endColumn } = range;
|
|
15053
|
+
const position = getCoordByCell(0, startColumn, scene, skeleton);
|
|
15054
|
+
const hasPrevious = startColumn !== 0;
|
|
15055
|
+
const hasNext = endColumn !== colCount - 1;
|
|
15056
|
+
return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
|
|
15057
|
+
type: 1,
|
|
15058
|
+
hovered: false,
|
|
15059
|
+
hasPrevious,
|
|
15060
|
+
hasNext,
|
|
15061
|
+
top: Math.max(skeleton.columnHeaderHeight, skeleton.columnHeaderHeightAndMarginTop) - 12,
|
|
15062
|
+
left: position.startX - (hasPrevious ? 12 : 0)
|
|
15063
|
+
}, () => this._commandService.executeCommand(SetSpecificColsVisibleCommand.id, {
|
|
15064
|
+
unitId: workbook.getUnitId(),
|
|
15065
|
+
subUnitId: worksheet.getSheetId(),
|
|
15066
|
+
ranges: [range]
|
|
15067
|
+
}));
|
|
15068
|
+
});
|
|
15069
|
+
scene.addObjects(colShapes, 12);
|
|
15070
|
+
scene.addObjects(rowShapes, 12);
|
|
15071
|
+
this._clearShapes();
|
|
15072
|
+
this._shapes = {
|
|
15073
|
+
cols: colShapes,
|
|
15074
|
+
rows: rowShapes
|
|
15075
|
+
};
|
|
15076
|
+
}
|
|
15077
|
+
_clearShapes() {
|
|
15078
|
+
this._shapes.cols.forEach((shape) => shape.dispose());
|
|
15079
|
+
this._shapes.rows.forEach((shape) => shape.dispose());
|
|
15080
|
+
this._shapes = {
|
|
15081
|
+
cols: [],
|
|
15082
|
+
rows: []
|
|
15083
|
+
};
|
|
15084
|
+
}
|
|
15085
|
+
_getSheetObject() {
|
|
15086
|
+
return getSheetObject(this._workbook, this._context);
|
|
15087
|
+
}
|
|
15088
|
+
};
|
|
15089
|
+
HeaderUnhideRenderController = __decorate([
|
|
15090
|
+
__decorateParam(1, Inject(SheetSkeletonManagerService)),
|
|
15091
|
+
__decorateParam(2, Inject(HeaderUnhideRangeService)),
|
|
15092
|
+
__decorateParam(3, ICommandService)
|
|
15093
|
+
], HeaderUnhideRenderController);
|
|
15094
|
+
|
|
15095
|
+
//#endregion
|
|
15096
|
+
//#region src/controllers/render-controllers/sheet.render-controller.ts
|
|
15097
|
+
const FRAME_STACK_THRESHOLD = 60;
|
|
15098
|
+
let SheetRenderController = class SheetRenderController extends RxDisposable {
|
|
15099
|
+
constructor(_context, _configService, _sheetSkeletonManagerService, _sheetRenderService, _commandService, _telemetryService) {
|
|
15100
|
+
super();
|
|
15101
|
+
this._context = _context;
|
|
15102
|
+
this._configService = _configService;
|
|
15103
|
+
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
15104
|
+
this._sheetRenderService = _sheetRenderService;
|
|
15105
|
+
this._commandService = _commandService;
|
|
15106
|
+
this._telemetryService = _telemetryService;
|
|
15107
|
+
_defineProperty(this, "_renderMetric$", new Subject());
|
|
15108
|
+
_defineProperty(this, "renderMetric$", this._renderMetric$.asObservable());
|
|
15109
|
+
_defineProperty(this, "_renderFrameTimeMetric", null);
|
|
15110
|
+
_defineProperty(this, "_renderFrameTags", {});
|
|
15111
|
+
_defineProperty(this, "_afterRenderMetric$", new Subject());
|
|
15112
|
+
this._addNewRender();
|
|
15113
|
+
this._initRenderMetricSubscriber();
|
|
15114
|
+
}
|
|
15115
|
+
_addNewRender() {
|
|
15116
|
+
const { scene, engine, unit: workbook } = this._context;
|
|
15117
|
+
this._addComponent(workbook);
|
|
15118
|
+
this._initRerenderScheduler();
|
|
15119
|
+
this._initCommandListener();
|
|
15120
|
+
const worksheet = this._context.unit.getActiveSheet();
|
|
15121
|
+
if (!worksheet) throw new Error("No active sheet found");
|
|
15122
|
+
const sheetId = worksheet.getSheetId();
|
|
15123
|
+
this._sheetSkeletonManagerService.setCurrent({ sheetId });
|
|
15124
|
+
const frameFn = () => scene.render();
|
|
15125
|
+
this.disposeWithMe(this._context.activated$.subscribe((activated) => {
|
|
15126
|
+
if (activated) engine.runRenderLoop(frameFn);
|
|
15127
|
+
else engine.stopRenderLoop(frameFn);
|
|
15128
|
+
}));
|
|
15129
|
+
}
|
|
15130
|
+
_initRenderMetricSubscriber() {
|
|
15131
|
+
const { engine } = this._context;
|
|
15132
|
+
this.disposeWithMe(engine.beginFrame$.subscribe(() => {
|
|
15133
|
+
this._renderFrameTimeMetric = null;
|
|
15134
|
+
this._renderFrameTags = {};
|
|
15135
|
+
}));
|
|
15136
|
+
this.disposeWithMe(engine.endFrame$.subscribe(() => {
|
|
15137
|
+
if (this._renderFrameTimeMetric && Object.keys(this._renderFrameTimeMetric).filter((key) => key.startsWith(SHEET_EXTENSION_PREFIX)).length > 0) this._afterRenderMetric$.next({
|
|
15138
|
+
frameTimeMetric: this._renderFrameTimeMetric,
|
|
15139
|
+
tags: this._renderFrameTags
|
|
15140
|
+
});
|
|
15141
|
+
}));
|
|
15142
|
+
this.disposeWithMe(engine.renderFrameTimeMetric$.subscribe(([key, value]) => {
|
|
15143
|
+
if (!this._renderFrameTimeMetric) this._renderFrameTimeMetric = {};
|
|
15144
|
+
if (!this._renderFrameTimeMetric[key]) this._renderFrameTimeMetric[key] = [];
|
|
15145
|
+
this._renderFrameTimeMetric[key].push(Math.round(value * 100) / 100);
|
|
15146
|
+
}));
|
|
15147
|
+
this.disposeWithMe(engine.renderFrameTags$.subscribe(([key, value]) => {
|
|
15148
|
+
this._renderFrameTags[key] = value;
|
|
15149
|
+
}));
|
|
15150
|
+
const frameInfoList = [];
|
|
15151
|
+
this.disposeWithMe(this._afterRenderMetric$.pipe(withLatestFrom(engine.endFrame$)).subscribe(([sceneRenderDetail, basicFrameTimeInfo]) => {
|
|
15152
|
+
frameInfoList.push({
|
|
15153
|
+
FPS: basicFrameTimeInfo.FPS,
|
|
15154
|
+
elapsedTime: basicFrameTimeInfo.elapsedTime,
|
|
15155
|
+
frameTime: Math.round(basicFrameTimeInfo.frameTime * 100) / 100,
|
|
15156
|
+
...sceneRenderDetail.frameTimeMetric,
|
|
15157
|
+
...sceneRenderDetail.tags
|
|
15158
|
+
});
|
|
15159
|
+
if (frameInfoList.length > FRAME_STACK_THRESHOLD) {
|
|
15160
|
+
this._captureRenderMetric(frameInfoList);
|
|
15161
|
+
frameInfoList.length = 0;
|
|
15162
|
+
}
|
|
15163
|
+
}));
|
|
15164
|
+
}
|
|
15165
|
+
/**
|
|
15166
|
+
* Send render metric to telemetry service
|
|
15167
|
+
* @param frameInfoList
|
|
15168
|
+
*/
|
|
15169
|
+
_captureRenderMetric(frameInfoList) {
|
|
15170
|
+
var _this$_telemetryServi;
|
|
15171
|
+
const filteredFrameInfo = frameInfoList;
|
|
15172
|
+
if (filteredFrameInfo.length === 0) return;
|
|
15173
|
+
const sumValueForNumListFields = (data) => {
|
|
15174
|
+
let totalSum = 0;
|
|
15175
|
+
const sums = Object.entries(data).filter(([_, value]) => Array.isArray(value)).map(([key]) => key).reduce((acc, key) => {
|
|
15176
|
+
acc[key] = data[key].reduce((sum, num) => sum + num, 0);
|
|
15177
|
+
return acc;
|
|
15178
|
+
}, {});
|
|
15179
|
+
Object.keys(data).filter((key) => key.startsWith(SHEET_EXTENSION_PREFIX)).forEach((key) => {
|
|
15180
|
+
totalSum += sums[key];
|
|
15181
|
+
});
|
|
15182
|
+
return {
|
|
15183
|
+
...sums,
|
|
15184
|
+
extensionTotal: totalSum
|
|
15185
|
+
};
|
|
15186
|
+
};
|
|
15187
|
+
const frameTimeListAfterSum = frameInfoList.map((info) => {
|
|
15188
|
+
return {
|
|
15189
|
+
...info,
|
|
15190
|
+
...sumValueForNumListFields(info)
|
|
15191
|
+
};
|
|
15192
|
+
});
|
|
15193
|
+
const getSummaryStats = (list) => {
|
|
15194
|
+
return Object.entries(list[0]).filter(([key, _]) => !["elapsedTime"].includes(key)).filter(([_, value]) => typeof value === "number").map(([key]) => key).reduce((acc, key) => {
|
|
15195
|
+
const values = list.map((obj) => obj[key]);
|
|
15196
|
+
const max = Math.max(...values);
|
|
15197
|
+
const min = Math.min(...values);
|
|
15198
|
+
const avg = values.reduce((sum, val) => sum + val, 0) / values.length;
|
|
15199
|
+
acc[key] = {
|
|
15200
|
+
max: Math.round(max * 100) / 100,
|
|
15201
|
+
min: Math.round(min * 100) / 100,
|
|
15202
|
+
avg: Math.round(avg * 100) / 100
|
|
15203
|
+
};
|
|
15204
|
+
return acc;
|
|
15205
|
+
}, {});
|
|
15206
|
+
};
|
|
15207
|
+
const summaryFrameStats = getSummaryStats(frameTimeListAfterSum);
|
|
15208
|
+
const elapsedTimeToStart = filteredFrameInfo[filteredFrameInfo.length - 1].elapsedTime;
|
|
15209
|
+
const telemetryData = {
|
|
15210
|
+
sheetId: this._context.unit.getActiveSheet().getSheetId(),
|
|
15211
|
+
unitId: this._context.unit.getUnitId(),
|
|
15212
|
+
elapsedTimeToStart,
|
|
15213
|
+
...summaryFrameStats
|
|
14834
15214
|
};
|
|
14835
15215
|
this._renderMetric$.next(telemetryData);
|
|
14836
15216
|
(_this$_telemetryServi = this._telemetryService) === null || _this$_telemetryServi === void 0 || _this$_telemetryServi.capture("sheet_render_cost", telemetryData);
|
|
@@ -14971,13 +15351,13 @@ let SheetRenderController = class SheetRenderController extends RxDisposable {
|
|
|
14971
15351
|
const spreadsheetRowHeader = components.get("__SpreadsheetRowHeader__");
|
|
14972
15352
|
const spreadsheetColumnHeader = components.get("__SpreadsheetColumnHeader__");
|
|
14973
15353
|
const spreadsheetLeftTopPlaceholder = components.get("__SpreadsheetLeftTopPlaceholder__");
|
|
14974
|
-
const
|
|
15354
|
+
const leftTopPlaceholderSize = getLeftTopPlaceholderSize(spreadsheetSkeleton);
|
|
14975
15355
|
spreadsheet === null || spreadsheet === void 0 || spreadsheet.updateSkeleton(spreadsheetSkeleton);
|
|
14976
15356
|
spreadsheetRowHeader === null || spreadsheetRowHeader === void 0 || spreadsheetRowHeader.updateSkeleton(spreadsheetSkeleton);
|
|
14977
15357
|
spreadsheetColumnHeader === null || spreadsheetColumnHeader === void 0 || spreadsheetColumnHeader.updateSkeleton(spreadsheetSkeleton);
|
|
14978
15358
|
spreadsheetLeftTopPlaceholder === null || spreadsheetLeftTopPlaceholder === void 0 || spreadsheetLeftTopPlaceholder.transformByState({
|
|
14979
|
-
width:
|
|
14980
|
-
height:
|
|
15359
|
+
width: leftTopPlaceholderSize.width,
|
|
15360
|
+
height: leftTopPlaceholderSize.height
|
|
14981
15361
|
});
|
|
14982
15362
|
}));
|
|
14983
15363
|
}
|
|
@@ -15097,6 +15477,13 @@ SheetRenderController = __decorate([
|
|
|
15097
15477
|
__decorateParam(4, ICommandService),
|
|
15098
15478
|
__decorateParam(5, Optional(ITelemetryService))
|
|
15099
15479
|
], SheetRenderController);
|
|
15480
|
+
function getLeftTopPlaceholderSize(skeleton) {
|
|
15481
|
+
var _skeleton$rowHeaderWi, _skeleton$columnHeade;
|
|
15482
|
+
return {
|
|
15483
|
+
width: (_skeleton$rowHeaderWi = skeleton.rowHeaderWidthAndMarginLeft) !== null && _skeleton$rowHeaderWi !== void 0 ? _skeleton$rowHeaderWi : skeleton.rowHeaderWidth,
|
|
15484
|
+
height: (_skeleton$columnHeade = skeleton.columnHeaderHeightAndMarginTop) !== null && _skeleton$columnHeade !== void 0 ? _skeleton$columnHeade : skeleton.columnHeaderHeight
|
|
15485
|
+
};
|
|
15486
|
+
}
|
|
15100
15487
|
|
|
15101
15488
|
//#endregion
|
|
15102
15489
|
//#region src/components/border-panel/border-line/icons/BorderDashDot.tsx
|
|
@@ -16292,7 +16679,6 @@ function ClearSelectionContentMenuItemFactory(accessor) {
|
|
|
16292
16679
|
return {
|
|
16293
16680
|
id: ClearSelectionContentCommand.id,
|
|
16294
16681
|
type: MenuItemType.BUTTON,
|
|
16295
|
-
icon: "ClearFormatDoubleIcon",
|
|
16296
16682
|
title: "rightClick.clearContent",
|
|
16297
16683
|
disabled$: getObservableWithExclusiveRange$(accessor, getCurrentRangeDisable$(accessor, {
|
|
16298
16684
|
workbookTypes: [WorkbookEditablePermission],
|
|
@@ -16306,7 +16692,6 @@ function ClearSelectionFormatMenuItemFactory(accessor) {
|
|
|
16306
16692
|
return {
|
|
16307
16693
|
id: ClearSelectionFormatCommand.id,
|
|
16308
16694
|
type: MenuItemType.BUTTON,
|
|
16309
|
-
icon: "ClearFormatDoubleIcon",
|
|
16310
16695
|
title: "rightClick.clearFormat",
|
|
16311
16696
|
disabled$: getCurrentRangeDisable$(accessor, {
|
|
16312
16697
|
workbookTypes: [WorkbookEditablePermission],
|
|
@@ -16316,11 +16701,28 @@ function ClearSelectionFormatMenuItemFactory(accessor) {
|
|
|
16316
16701
|
hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_SHEET)
|
|
16317
16702
|
};
|
|
16318
16703
|
}
|
|
16319
|
-
function
|
|
16704
|
+
function ClearSelectionAllToolbarMenuItemFactory(accessor) {
|
|
16320
16705
|
return {
|
|
16321
16706
|
id: ClearSelectionAllCommand.id,
|
|
16322
16707
|
type: MenuItemType.BUTTON,
|
|
16323
16708
|
icon: "ClearFormatDoubleIcon",
|
|
16709
|
+
tooltip: "rightClick.clearAll",
|
|
16710
|
+
disabled$: getObservableWithExclusiveRange$(accessor, getCurrentRangeDisable$(accessor, {
|
|
16711
|
+
workbookTypes: [WorkbookEditablePermission],
|
|
16712
|
+
worksheetTypes: [
|
|
16713
|
+
WorksheetEditPermission,
|
|
16714
|
+
WorksheetSetCellValuePermission,
|
|
16715
|
+
WorksheetSetCellStylePermission
|
|
16716
|
+
],
|
|
16717
|
+
rangeTypes: [RangeProtectionPermissionEditPoint]
|
|
16718
|
+
})),
|
|
16719
|
+
hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_SHEET)
|
|
16720
|
+
};
|
|
16721
|
+
}
|
|
16722
|
+
function ClearSelectionAllMenuItemFactory(accessor) {
|
|
16723
|
+
return {
|
|
16724
|
+
id: ClearSelectionAllCommand.id,
|
|
16725
|
+
type: MenuItemType.BUTTON,
|
|
16324
16726
|
title: "rightClick.clearAll",
|
|
16325
16727
|
tooltip: "rightClick.clearAll",
|
|
16326
16728
|
disabled$: getObservableWithExclusiveRange$(accessor, getCurrentRangeDisable$(accessor, {
|
|
@@ -18617,7 +19019,7 @@ const menuSchema = {
|
|
|
18617
19019
|
},
|
|
18618
19020
|
[ClearSelectionAllCommand.id]: {
|
|
18619
19021
|
order: 3,
|
|
18620
|
-
menuItemFactory:
|
|
19022
|
+
menuItemFactory: ClearSelectionAllToolbarMenuItemFactory
|
|
18621
19023
|
}
|
|
18622
19024
|
},
|
|
18623
19025
|
[RibbonStartGroup.FORMAT]: {
|
|
@@ -23961,7 +24363,7 @@ const useHighlightRange = (ranges = []) => {
|
|
|
23961
24363
|
//#endregion
|
|
23962
24364
|
//#region package.json
|
|
23963
24365
|
var name = "@univerjs/sheets-ui";
|
|
23964
|
-
var version = "0.
|
|
24366
|
+
var version = "0.23.0-insiders.20260522-e8f2a3b";
|
|
23965
24367
|
|
|
23966
24368
|
//#endregion
|
|
23967
24369
|
//#region src/services/cell-alert-manager.service.ts
|
|
@@ -26755,28 +27157,30 @@ var RangeProtectionRenderExtension = class extends SheetExtension {
|
|
|
26755
27157
|
getShadowStrategy() {
|
|
26756
27158
|
return this._shadowStrategy;
|
|
26757
27159
|
}
|
|
26758
|
-
draw(ctx, _parentScale, spreadsheetSkeleton) {
|
|
27160
|
+
draw(ctx, _parentScale, spreadsheetSkeleton, diffRanges) {
|
|
26759
27161
|
const { worksheet } = spreadsheetSkeleton;
|
|
26760
27162
|
if (!worksheet) return;
|
|
26761
27163
|
ctx.save();
|
|
26762
27164
|
if (!this._pattern) this._pattern = ctx.createPattern(this._img, "repeat");
|
|
26763
27165
|
this.renderCache.clear();
|
|
26764
|
-
|
|
26765
|
-
|
|
26766
|
-
|
|
26767
|
-
|
|
26768
|
-
|
|
26769
|
-
|
|
26770
|
-
|
|
26771
|
-
|
|
26772
|
-
if (this.
|
|
26773
|
-
|
|
26774
|
-
|
|
26775
|
-
|
|
26776
|
-
|
|
26777
|
-
|
|
26778
|
-
|
|
26779
|
-
|
|
27166
|
+
((diffRanges === null || diffRanges === void 0 ? void 0 : diffRanges.length) ? diffRanges : [spreadsheetSkeleton.rowColumnSegment]).forEach((range) => {
|
|
27167
|
+
Range.foreach(range, (row, col) => {
|
|
27168
|
+
if (!worksheet.getRowVisible(row) || !worksheet.getColVisible(col)) return;
|
|
27169
|
+
const { selectionProtection = [] } = worksheet.getCell(row, col) || {};
|
|
27170
|
+
if (!this._pattern) return;
|
|
27171
|
+
ctx.fillStyle = this._pattern;
|
|
27172
|
+
selectionProtection.forEach((config) => {
|
|
27173
|
+
if (!config.ruleId) return;
|
|
27174
|
+
if (this.shouldRender(config)) {
|
|
27175
|
+
if (this.renderCache.has(config.ruleId)) return;
|
|
27176
|
+
this.renderCache.add(config.ruleId);
|
|
27177
|
+
config.ranges.forEach((range) => {
|
|
27178
|
+
const start = spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow, range.startColumn, false);
|
|
27179
|
+
const end = spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow, range.endColumn, false);
|
|
27180
|
+
ctx.fillRect(start.startX, start.startY, end.endX - start.startX, end.endY - start.startY);
|
|
27181
|
+
});
|
|
27182
|
+
}
|
|
27183
|
+
});
|
|
26780
27184
|
});
|
|
26781
27185
|
});
|
|
26782
27186
|
ctx.restore();
|
|
@@ -26862,690 +27266,394 @@ var WorksheetProtectionRenderExtension = class extends SheetExtension {
|
|
|
26862
27266
|
getShadowStrategy() {
|
|
26863
27267
|
return this._shadowStrategy;
|
|
26864
27268
|
}
|
|
26865
|
-
setZIndex(zIndex) {
|
|
26866
|
-
this.Z_INDEX = zIndex;
|
|
26867
|
-
}
|
|
26868
|
-
};
|
|
26869
|
-
|
|
26870
|
-
//#endregion
|
|
26871
|
-
//#region src/controllers/permission/sheet-permission-render.controller.ts
|
|
26872
|
-
let SheetPermissionRenderManagerController = class SheetPermissionRenderManagerController extends Disposable {
|
|
26873
|
-
constructor(_injector, _componentManager) {
|
|
26874
|
-
super();
|
|
26875
|
-
this._injector = _injector;
|
|
26876
|
-
this._componentManager = _componentManager;
|
|
26877
|
-
this._init();
|
|
26878
|
-
}
|
|
26879
|
-
_init() {
|
|
26880
|
-
this._initComponents();
|
|
26881
|
-
this._initUiPartComponents();
|
|
26882
|
-
}
|
|
26883
|
-
_initComponents() {
|
|
26884
|
-
[
|
|
26885
|
-
[permissionMenuIconKey, ProtectIcon],
|
|
26886
|
-
[permissionDeleteIconKey, DeleteIcon],
|
|
26887
|
-
[permissionEditIconKey, WriteIcon],
|
|
26888
|
-
[permissionCheckIconKey, CheckMarkIcon],
|
|
26889
|
-
[permissionLockIconKey, LockIcon],
|
|
26890
|
-
[UNIVER_SHEET_PERMISSION_PANEL, SheetPermissionPanel],
|
|
26891
|
-
[UNIVER_SHEET_PERMISSION_USER_DIALOG, SheetPermissionUserDialog],
|
|
26892
|
-
[UNIVER_SHEET_PERMISSION_DIALOG, SheetPermissionDialog],
|
|
26893
|
-
[UNIVER_SHEET_PERMISSION_ALERT_DIALOG, AlertDialog]
|
|
26894
|
-
].forEach(([key, comp]) => {
|
|
26895
|
-
this.disposeWithMe(this._componentManager.register(key, comp));
|
|
26896
|
-
});
|
|
26897
|
-
}
|
|
26898
|
-
_initUiPartComponents() {
|
|
26899
|
-
const config = this._injector.get(IConfigService).getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
|
|
26900
|
-
if (config === null || config === void 0 ? void 0 : config.protectedRangeUserSelector) {
|
|
26901
|
-
const { component, framework } = config.protectedRangeUserSelector;
|
|
26902
|
-
this.disposeWithMe(this._componentManager.register(UNIVER_SHEET_PERMISSION_USER_PART, component, { framework }));
|
|
26903
|
-
}
|
|
26904
|
-
}
|
|
26905
|
-
};
|
|
26906
|
-
SheetPermissionRenderManagerController = __decorate([__decorateParam(0, Inject(Injector)), __decorateParam(1, Inject(ComponentManager))], SheetPermissionRenderManagerController);
|
|
26907
|
-
let SheetPermissionRenderController = class SheetPermissionRenderController extends Disposable {
|
|
26908
|
-
constructor(_context, _rangeProtectionRuleModel, _sheetSkeletonManagerService, _permissionService, _configService) {
|
|
26909
|
-
super();
|
|
26910
|
-
this._context = _context;
|
|
26911
|
-
this._rangeProtectionRuleModel = _rangeProtectionRuleModel;
|
|
26912
|
-
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
26913
|
-
this._permissionService = _permissionService;
|
|
26914
|
-
this._configService = _configService;
|
|
26915
|
-
_defineProperty(this, "_rangeProtectionCanViewRenderExtension", void 0);
|
|
26916
|
-
_defineProperty(this, "_rangeProtectionCanNotViewRenderExtension", void 0);
|
|
26917
|
-
const config = this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
|
|
26918
|
-
const shadowStrategy = convertToShadowStrategy(config === null || config === void 0 ? void 0 : config.protectedRangeShadow);
|
|
26919
|
-
this._rangeProtectionCanViewRenderExtension = new RangeProtectionCanViewRenderExtension(shadowStrategy);
|
|
26920
|
-
this._rangeProtectionCanNotViewRenderExtension = new RangeProtectionCanNotViewRenderExtension(shadowStrategy);
|
|
26921
|
-
this._initSkeleton();
|
|
26922
|
-
this._initRender();
|
|
26923
|
-
this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe((info) => {
|
|
26924
|
-
var _info$oldRule, _info$oldRule2;
|
|
26925
|
-
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();
|
|
26926
|
-
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();
|
|
26927
|
-
}));
|
|
26928
|
-
}
|
|
26929
|
-
_initRender() {
|
|
26930
|
-
const spreadsheetRender = this._context.mainComponent;
|
|
26931
|
-
if (spreadsheetRender) {
|
|
26932
|
-
if (!spreadsheetRender.getExtensionByKey("RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY")) spreadsheetRender.register(this._rangeProtectionCanViewRenderExtension);
|
|
26933
|
-
if (!spreadsheetRender.getExtensionByKey("RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY")) spreadsheetRender.register(this._rangeProtectionCanNotViewRenderExtension);
|
|
26934
|
-
}
|
|
26935
|
-
}
|
|
26936
|
-
_initSkeleton() {
|
|
26937
|
-
const markDirtySkeleton = () => {
|
|
26938
|
-
var _this$_context$mainCo;
|
|
26939
|
-
this._sheetSkeletonManagerService.reCalculate();
|
|
26940
|
-
(_this$_context$mainCo = this._context.mainComponent) === null || _this$_context$mainCo === void 0 || _this$_context$mainCo.makeDirty();
|
|
26941
|
-
};
|
|
26942
|
-
this.disposeWithMe(merge$1(this._permissionService.permissionPointUpdate$.pipe(throttleTime(300, void 0, { trailing: true })), this._rangeProtectionRuleModel.rangeRuleInitStateChange$, this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(markDirtySkeleton));
|
|
26943
|
-
}
|
|
26944
|
-
};
|
|
26945
|
-
SheetPermissionRenderController = __decorate([
|
|
26946
|
-
__decorateParam(1, Inject(RangeProtectionRuleModel)),
|
|
26947
|
-
__decorateParam(2, Inject(SheetSkeletonManagerService)),
|
|
26948
|
-
__decorateParam(3, IPermissionService),
|
|
26949
|
-
__decorateParam(4, IConfigService)
|
|
26950
|
-
], SheetPermissionRenderController);
|
|
26951
|
-
let WorksheetProtectionRenderController = class WorksheetProtectionRenderController extends Disposable {
|
|
26952
|
-
constructor(_context, _renderManagerService, _sheetSkeletonManagerService, _worksheetProtectionRuleModel, _configService) {
|
|
26953
|
-
super();
|
|
26954
|
-
this._context = _context;
|
|
26955
|
-
this._renderManagerService = _renderManagerService;
|
|
26956
|
-
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
26957
|
-
this._worksheetProtectionRuleModel = _worksheetProtectionRuleModel;
|
|
26958
|
-
this._configService = _configService;
|
|
26959
|
-
_defineProperty(this, "_worksheetProtectionRenderExtension", void 0);
|
|
26960
|
-
const config = this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
|
|
26961
|
-
const shadowStrategy = convertToShadowStrategy(config === null || config === void 0 ? void 0 : config.protectedRangeShadow);
|
|
26962
|
-
this._worksheetProtectionRenderExtension = new WorksheetProtectionRenderExtension(shadowStrategy);
|
|
26963
|
-
this._initSkeleton();
|
|
26964
|
-
if (shadowStrategy === "none") return;
|
|
26965
|
-
this._initRender();
|
|
26966
|
-
}
|
|
26967
|
-
_initRender() {
|
|
26968
|
-
const renderId = this._context.unitId;
|
|
26969
|
-
const render = renderId && this._renderManagerService.getRenderById(renderId);
|
|
26970
|
-
const spreadsheetRender = render && render.mainComponent;
|
|
26971
|
-
if (spreadsheetRender) {
|
|
26972
|
-
if (!spreadsheetRender.getExtensionByKey("worksheet-protection")) spreadsheetRender.register(this._worksheetProtectionRenderExtension);
|
|
26973
|
-
}
|
|
26974
|
-
}
|
|
26975
|
-
_initSkeleton() {
|
|
26976
|
-
const markDirtySkeleton = () => {
|
|
26977
|
-
var _this$_context$mainCo2;
|
|
26978
|
-
this._sheetSkeletonManagerService.reCalculate();
|
|
26979
|
-
(_this$_context$mainCo2 = this._context.mainComponent) === null || _this$_context$mainCo2 === void 0 || _this$_context$mainCo2.makeDirty();
|
|
26980
|
-
};
|
|
26981
|
-
this.disposeWithMe(merge$1(this._worksheetProtectionRuleModel.worksheetRuleInitStateChange$).pipe().subscribe(markDirtySkeleton));
|
|
26982
|
-
}
|
|
26983
|
-
};
|
|
26984
|
-
WorksheetProtectionRenderController = __decorate([
|
|
26985
|
-
__decorateParam(1, Inject(IRenderManagerService)),
|
|
26986
|
-
__decorateParam(2, Inject(SheetSkeletonManagerService)),
|
|
26987
|
-
__decorateParam(3, Inject(WorksheetProtectionRuleModel)),
|
|
26988
|
-
__decorateParam(4, Inject(IConfigService))
|
|
26989
|
-
], WorksheetProtectionRenderController);
|
|
26990
|
-
|
|
26991
|
-
//#endregion
|
|
26992
|
-
//#region src/controllers/render-controllers/clipboard.render-controller.ts
|
|
26993
|
-
let ClipboardRenderController = class ClipboardRenderController extends Disposable {
|
|
26994
|
-
constructor(_context, _sheetSkeletonManagerService, _sheetClipboardService, _sheetClipboardController) {
|
|
26995
|
-
super();
|
|
26996
|
-
this._context = _context;
|
|
26997
|
-
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
26998
|
-
this._sheetClipboardService = _sheetClipboardService;
|
|
26999
|
-
this._sheetClipboardController = _sheetClipboardController;
|
|
27000
|
-
this._initialize();
|
|
27001
|
-
}
|
|
27002
|
-
_initialize() {
|
|
27003
|
-
this.disposeWithMe(toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((skeleton) => {
|
|
27004
|
-
if (!(skeleton === null || skeleton === void 0 ? void 0 : skeleton.unitId)) return;
|
|
27005
|
-
if (!this._sheetClipboardService.getPasteMenuVisible()) return;
|
|
27006
|
-
const pasteOptionsCache = this._sheetClipboardService.getPasteOptionsCache();
|
|
27007
|
-
const menuUnitId = pasteOptionsCache === null || pasteOptionsCache === void 0 ? void 0 : pasteOptionsCache.target.unitId;
|
|
27008
|
-
if (skeleton.unitId === menuUnitId) this._sheetClipboardController.refreshOptionalPaste();
|
|
27009
|
-
})));
|
|
27010
|
-
}
|
|
27011
|
-
};
|
|
27012
|
-
ClipboardRenderController = __decorate([
|
|
27013
|
-
__decorateParam(1, Inject(SheetSkeletonManagerService)),
|
|
27014
|
-
__decorateParam(2, ISheetClipboardService),
|
|
27015
|
-
__decorateParam(3, Inject(SheetClipboardController))
|
|
27016
|
-
], ClipboardRenderController);
|
|
27017
|
-
|
|
27018
|
-
//#endregion
|
|
27019
|
-
//#region src/controllers/render-controllers/format-painter.render-controller.ts
|
|
27020
|
-
let FormatPainterRenderController = class FormatPainterRenderController extends Disposable {
|
|
27021
|
-
constructor(_context, _formatPainterService, _selectionRenderService, _commandService) {
|
|
27022
|
-
super();
|
|
27023
|
-
this._context = _context;
|
|
27024
|
-
this._formatPainterService = _formatPainterService;
|
|
27025
|
-
this._selectionRenderService = _selectionRenderService;
|
|
27026
|
-
this._commandService = _commandService;
|
|
27027
|
-
this._initialize();
|
|
27028
|
-
}
|
|
27029
|
-
_initialize() {
|
|
27030
|
-
this._bindFormatPainterStatus();
|
|
27031
|
-
this._commandExecutedListener();
|
|
27032
|
-
}
|
|
27033
|
-
_commandExecutedListener() {
|
|
27034
|
-
this.disposeWithMe(this._selectionRenderService.selectionMoveEnd$.subscribe((selections) => {
|
|
27035
|
-
if (this._formatPainterService.getStatus() !== 0) {
|
|
27036
|
-
var _this$_context$unit$g;
|
|
27037
|
-
const { rangeWithCoord } = selections[selections.length - 1];
|
|
27038
|
-
this._commandService.executeCommand(ApplyFormatPainterCommand.id, {
|
|
27039
|
-
unitId: this._context.unitId,
|
|
27040
|
-
subUnitId: ((_this$_context$unit$g = this._context.unit.getActiveSheet()) === null || _this$_context$unit$g === void 0 ? void 0 : _this$_context$unit$g.getSheetId()) || "",
|
|
27041
|
-
range: {
|
|
27042
|
-
startRow: rangeWithCoord.startRow,
|
|
27043
|
-
startColumn: rangeWithCoord.startColumn,
|
|
27044
|
-
endRow: rangeWithCoord.endRow,
|
|
27045
|
-
endColumn: rangeWithCoord.endColumn
|
|
27046
|
-
}
|
|
27047
|
-
});
|
|
27048
|
-
if (this._formatPainterService.getStatus() === 1) this._commandService.executeCommand(SetOnceFormatPainterCommand.id);
|
|
27049
|
-
}
|
|
27050
|
-
}));
|
|
27051
|
-
}
|
|
27052
|
-
_bindFormatPainterStatus() {
|
|
27053
|
-
this.disposeWithMe(toDisposable(this._formatPainterService.status$.subscribe((status) => {
|
|
27054
|
-
const scene = this._context.scene;
|
|
27055
|
-
if (!scene) return;
|
|
27056
|
-
if (status !== 0) scene.setDefaultCursor(CURSOR_TYPE.CELL);
|
|
27057
|
-
else scene.setDefaultCursor(CURSOR_TYPE.DEFAULT);
|
|
27058
|
-
})));
|
|
27059
|
-
}
|
|
27269
|
+
setZIndex(zIndex) {
|
|
27270
|
+
this.Z_INDEX = zIndex;
|
|
27271
|
+
}
|
|
27060
27272
|
};
|
|
27061
|
-
FormatPainterRenderController = __decorate([
|
|
27062
|
-
__decorateParam(1, IFormatPainterService),
|
|
27063
|
-
__decorateParam(2, ISheetSelectionRenderService),
|
|
27064
|
-
__decorateParam(3, ICommandService)
|
|
27065
|
-
], FormatPainterRenderController);
|
|
27066
27273
|
|
|
27067
27274
|
//#endregion
|
|
27068
|
-
//#region src/
|
|
27069
|
-
|
|
27070
|
-
|
|
27071
|
-
|
|
27072
|
-
|
|
27073
|
-
|
|
27074
|
-
|
|
27075
|
-
_defineProperty(this, "_size", 12);
|
|
27076
|
-
_defineProperty(this, "_iconRatio", .4);
|
|
27077
|
-
_defineProperty(this, "_mode", 0);
|
|
27078
|
-
this.setShapeProps(props);
|
|
27275
|
+
//#region src/controllers/permission/sheet-permission-render.controller.ts
|
|
27276
|
+
let SheetPermissionRenderManagerController = class SheetPermissionRenderManagerController extends Disposable {
|
|
27277
|
+
constructor(_injector, _componentManager) {
|
|
27278
|
+
super();
|
|
27279
|
+
this._injector = _injector;
|
|
27280
|
+
this._componentManager = _componentManager;
|
|
27281
|
+
this._init();
|
|
27079
27282
|
}
|
|
27080
|
-
|
|
27081
|
-
|
|
27082
|
-
|
|
27083
|
-
this.transformByState({
|
|
27084
|
-
width: this._size,
|
|
27085
|
-
height: this._size
|
|
27086
|
-
});
|
|
27283
|
+
_init() {
|
|
27284
|
+
this._initComponents();
|
|
27285
|
+
this._initUiPartComponents();
|
|
27087
27286
|
}
|
|
27088
|
-
|
|
27089
|
-
|
|
27090
|
-
|
|
27091
|
-
|
|
27092
|
-
|
|
27093
|
-
|
|
27094
|
-
|
|
27095
|
-
|
|
27096
|
-
|
|
27097
|
-
|
|
27098
|
-
|
|
27099
|
-
|
|
27100
|
-
|
|
27101
|
-
{
|
|
27102
|
-
x: -left + this._size / 2,
|
|
27103
|
-
y: -top + this._size / 2
|
|
27104
|
-
},
|
|
27105
|
-
{
|
|
27106
|
-
x: left + this._size / 2,
|
|
27107
|
-
y: -top + this._size / 2
|
|
27108
|
-
},
|
|
27109
|
-
{
|
|
27110
|
-
x: this._size / 2,
|
|
27111
|
-
y: iconSize + this._size / 2
|
|
27112
|
-
}
|
|
27113
|
-
]],
|
|
27114
|
-
fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
|
|
27287
|
+
_initComponents() {
|
|
27288
|
+
[
|
|
27289
|
+
[permissionMenuIconKey, ProtectIcon],
|
|
27290
|
+
[permissionDeleteIconKey, DeleteIcon],
|
|
27291
|
+
[permissionEditIconKey, WriteIcon],
|
|
27292
|
+
[permissionCheckIconKey, CheckMarkIcon],
|
|
27293
|
+
[permissionLockIconKey, LockIcon],
|
|
27294
|
+
[UNIVER_SHEET_PERMISSION_PANEL, SheetPermissionPanel],
|
|
27295
|
+
[UNIVER_SHEET_PERMISSION_USER_DIALOG, SheetPermissionUserDialog],
|
|
27296
|
+
[UNIVER_SHEET_PERMISSION_DIALOG, SheetPermissionDialog],
|
|
27297
|
+
[UNIVER_SHEET_PERMISSION_ALERT_DIALOG, AlertDialog]
|
|
27298
|
+
].forEach(([key, comp]) => {
|
|
27299
|
+
this.disposeWithMe(this._componentManager.register(key, comp));
|
|
27115
27300
|
});
|
|
27116
27301
|
}
|
|
27302
|
+
_initUiPartComponents() {
|
|
27303
|
+
const config = this._injector.get(IConfigService).getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
|
|
27304
|
+
if (config === null || config === void 0 ? void 0 : config.protectedRangeUserSelector) {
|
|
27305
|
+
const { component, framework } = config.protectedRangeUserSelector;
|
|
27306
|
+
this.disposeWithMe(this._componentManager.register(UNIVER_SHEET_PERMISSION_USER_PART, component, { framework }));
|
|
27307
|
+
}
|
|
27308
|
+
}
|
|
27117
27309
|
};
|
|
27118
|
-
|
|
27119
|
-
|
|
27120
|
-
|
|
27121
|
-
const HEADER_MENU_CONTROLLER_SHAPE = "__SpreadsheetHeaderMenuSHAPEControllerShape__";
|
|
27122
|
-
const HEADER_MENU_CONTROLLER_MENU = "__SpreadsheetHeaderMenuMAINControllerShape__";
|
|
27123
|
-
const HEADER_MENU_CONTROLLER_SHAPE_COLOR = "rgba(0, 0, 0, 0.1)";
|
|
27124
|
-
let HeaderMenuRenderController = class HeaderMenuRenderController extends Disposable {
|
|
27125
|
-
constructor(_context, _sheetSkeletonManagerService, _contextMenuService, _commandService, _selectionManagerService) {
|
|
27310
|
+
SheetPermissionRenderManagerController = __decorate([__decorateParam(0, Inject(Injector)), __decorateParam(1, Inject(ComponentManager))], SheetPermissionRenderManagerController);
|
|
27311
|
+
let SheetPermissionRenderController = class SheetPermissionRenderController extends Disposable {
|
|
27312
|
+
constructor(_context, _rangeProtectionRuleModel, _sheetSkeletonManagerService, _permissionService, _configService) {
|
|
27126
27313
|
super();
|
|
27127
27314
|
this._context = _context;
|
|
27315
|
+
this._rangeProtectionRuleModel = _rangeProtectionRuleModel;
|
|
27128
27316
|
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
27129
|
-
this.
|
|
27130
|
-
this.
|
|
27131
|
-
this
|
|
27132
|
-
_defineProperty(this, "
|
|
27133
|
-
|
|
27134
|
-
|
|
27135
|
-
|
|
27136
|
-
|
|
27137
|
-
this.
|
|
27138
|
-
|
|
27139
|
-
|
|
27140
|
-
|
|
27141
|
-
|
|
27142
|
-
|
|
27143
|
-
|
|
27144
|
-
this._headerPointerSubs = null;
|
|
27317
|
+
this._permissionService = _permissionService;
|
|
27318
|
+
this._configService = _configService;
|
|
27319
|
+
_defineProperty(this, "_rangeProtectionCanViewRenderExtension", void 0);
|
|
27320
|
+
_defineProperty(this, "_rangeProtectionCanNotViewRenderExtension", void 0);
|
|
27321
|
+
const config = this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
|
|
27322
|
+
const shadowStrategy = convertToShadowStrategy(config === null || config === void 0 ? void 0 : config.protectedRangeShadow);
|
|
27323
|
+
this._rangeProtectionCanViewRenderExtension = new RangeProtectionCanViewRenderExtension(shadowStrategy);
|
|
27324
|
+
this._rangeProtectionCanNotViewRenderExtension = new RangeProtectionCanNotViewRenderExtension(shadowStrategy);
|
|
27325
|
+
this._initSkeleton();
|
|
27326
|
+
this._initRender();
|
|
27327
|
+
this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe((info) => {
|
|
27328
|
+
var _info$oldRule, _info$oldRule2;
|
|
27329
|
+
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();
|
|
27330
|
+
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();
|
|
27331
|
+
}));
|
|
27145
27332
|
}
|
|
27146
|
-
|
|
27147
|
-
const
|
|
27148
|
-
|
|
27149
|
-
|
|
27150
|
-
|
|
27151
|
-
}
|
|
27152
|
-
this._hoverMenu = new HeaderMenuShape(HEADER_MENU_CONTROLLER_MENU, {
|
|
27153
|
-
zIndex: 100,
|
|
27154
|
-
visible: false
|
|
27155
|
-
});
|
|
27156
|
-
scene.addObjects([this._hoverRect, this._hoverMenu], 10);
|
|
27157
|
-
this._initialHover(0);
|
|
27158
|
-
this._initialHover(1);
|
|
27159
|
-
this._initialHoverMenu();
|
|
27333
|
+
_initRender() {
|
|
27334
|
+
const spreadsheetRender = this._context.mainComponent;
|
|
27335
|
+
if (spreadsheetRender) {
|
|
27336
|
+
if (!spreadsheetRender.getExtensionByKey("RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY")) spreadsheetRender.register(this._rangeProtectionCanViewRenderExtension);
|
|
27337
|
+
if (!spreadsheetRender.getExtensionByKey("RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY")) spreadsheetRender.register(this._rangeProtectionCanNotViewRenderExtension);
|
|
27338
|
+
}
|
|
27160
27339
|
}
|
|
27161
|
-
|
|
27162
|
-
|
|
27163
|
-
|
|
27164
|
-
|
|
27165
|
-
|
|
27166
|
-
const pointerMoveHandler = (evt) => {
|
|
27167
|
-
var _this$_sheetSkeletonM;
|
|
27168
|
-
const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
|
|
27169
|
-
if (skeleton == null) return;
|
|
27170
|
-
const { rowHeaderWidth, columnHeaderHeight } = skeleton;
|
|
27171
|
-
const { startX, startY, endX, endY, column } = getCoordByOffset(evt.offsetX, evt.offsetY, this._context.scene, skeleton);
|
|
27172
|
-
if (initialType === 0) {
|
|
27173
|
-
var _this$_hoverRect2;
|
|
27174
|
-
(_this$_hoverRect2 = this._hoverRect) === null || _this$_hoverRect2 === void 0 || _this$_hoverRect2.transformByState({
|
|
27175
|
-
width: rowHeaderWidth,
|
|
27176
|
-
height: endY - startY,
|
|
27177
|
-
left: 0,
|
|
27178
|
-
top: startY
|
|
27179
|
-
});
|
|
27180
|
-
} else {
|
|
27181
|
-
var _this$_hoverRect3;
|
|
27182
|
-
this._currentColumn = column;
|
|
27183
|
-
(_this$_hoverRect3 = this._hoverRect) === null || _this$_hoverRect3 === void 0 || _this$_hoverRect3.transformByState({
|
|
27184
|
-
width: endX - startX,
|
|
27185
|
-
height: columnHeaderHeight,
|
|
27186
|
-
left: startX,
|
|
27187
|
-
top: 0
|
|
27188
|
-
});
|
|
27189
|
-
if (this._hoverMenu == null) return;
|
|
27190
|
-
if (endX - startX < columnHeaderHeight * 2) {
|
|
27191
|
-
this._hoverMenu.hide();
|
|
27192
|
-
return;
|
|
27193
|
-
}
|
|
27194
|
-
const menuSize = columnHeaderHeight * .8;
|
|
27195
|
-
this._hoverMenu.transformByState({
|
|
27196
|
-
left: endX - columnHeaderHeight,
|
|
27197
|
-
top: columnHeaderHeight / 2 - menuSize / 2
|
|
27198
|
-
});
|
|
27199
|
-
this._hoverMenu.setShapeProps({ size: menuSize });
|
|
27200
|
-
this._hoverMenu.show();
|
|
27201
|
-
}
|
|
27202
|
-
};
|
|
27203
|
-
const pointerEnterHandler = () => {
|
|
27204
|
-
var _this$_hoverRect4;
|
|
27205
|
-
(_this$_hoverRect4 = this._hoverRect) === null || _this$_hoverRect4 === void 0 || _this$_hoverRect4.show();
|
|
27206
|
-
};
|
|
27207
|
-
const pointerLeaveHandler = () => {
|
|
27208
|
-
var _this$_hoverRect5, _this$_hoverMenu2;
|
|
27209
|
-
(_this$_hoverRect5 = this._hoverRect) === null || _this$_hoverRect5 === void 0 || _this$_hoverRect5.hide();
|
|
27210
|
-
(_this$_hoverMenu2 = this._hoverMenu) === null || _this$_hoverMenu2 === void 0 || _this$_hoverMenu2.hide();
|
|
27340
|
+
_initSkeleton() {
|
|
27341
|
+
const markDirtySkeleton = () => {
|
|
27342
|
+
var _this$_context$mainCo;
|
|
27343
|
+
this._sheetSkeletonManagerService.reCalculate();
|
|
27344
|
+
(_this$_context$mainCo = this._context.mainComponent) === null || _this$_context$mainCo === void 0 || _this$_context$mainCo.makeDirty();
|
|
27211
27345
|
};
|
|
27212
|
-
this.
|
|
27213
|
-
const headerPointerMoveSub = eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler);
|
|
27214
|
-
const headerPointerEnterSub = eventBindingObject.onPointerEnter$.subscribeEvent(pointerEnterHandler);
|
|
27215
|
-
const headerPointerLeaveSub = eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler);
|
|
27216
|
-
(_this$_headerPointerS2 = this._headerPointerSubs) === null || _this$_headerPointerS2 === void 0 || _this$_headerPointerS2.add(headerPointerMoveSub);
|
|
27217
|
-
(_this$_headerPointerS3 = this._headerPointerSubs) === null || _this$_headerPointerS3 === void 0 || _this$_headerPointerS3.add(headerPointerEnterSub);
|
|
27218
|
-
(_this$_headerPointerS4 = this._headerPointerSubs) === null || _this$_headerPointerS4 === void 0 || _this$_headerPointerS4.add(headerPointerLeaveSub);
|
|
27346
|
+
this.disposeWithMe(merge$1(this._permissionService.permissionPointUpdate$.pipe(throttleTime(300, void 0, { trailing: true })), this._rangeProtectionRuleModel.rangeRuleInitStateChange$, this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(markDirtySkeleton));
|
|
27219
27347
|
}
|
|
27220
|
-
|
|
27221
|
-
|
|
27222
|
-
|
|
27223
|
-
|
|
27224
|
-
|
|
27225
|
-
|
|
27226
|
-
|
|
27227
|
-
|
|
27228
|
-
|
|
27229
|
-
|
|
27230
|
-
this.
|
|
27231
|
-
|
|
27232
|
-
|
|
27233
|
-
|
|
27234
|
-
|
|
27235
|
-
|
|
27236
|
-
|
|
27237
|
-
|
|
27238
|
-
this.
|
|
27239
|
-
|
|
27240
|
-
|
|
27241
|
-
|
|
27242
|
-
if (!!!(currentSelectionDatas === null || currentSelectionDatas === void 0 ? void 0 : currentSelectionDatas.filter((range) => range.rangeType === RANGE_TYPE.COLUMN).find((data) => {
|
|
27243
|
-
const { startColumn, endColumn } = data;
|
|
27244
|
-
if (currentColumn >= startColumn && currentColumn <= endColumn) return true;
|
|
27245
|
-
return false;
|
|
27246
|
-
}))) {
|
|
27247
|
-
const selection = this._getSelectionOnColumn(currentColumn);
|
|
27248
|
-
this._commandService.syncExecuteCommand(SetSelectionsOperation.id, selection);
|
|
27249
|
-
}
|
|
27250
|
-
evt.stopPropagation();
|
|
27251
|
-
evt.preventDefault();
|
|
27252
|
-
this._contextMenuService.triggerContextMenu(evt, ContextMenuPosition.COL_HEADER);
|
|
27253
|
-
});
|
|
27348
|
+
};
|
|
27349
|
+
SheetPermissionRenderController = __decorate([
|
|
27350
|
+
__decorateParam(1, Inject(RangeProtectionRuleModel)),
|
|
27351
|
+
__decorateParam(2, Inject(SheetSkeletonManagerService)),
|
|
27352
|
+
__decorateParam(3, IPermissionService),
|
|
27353
|
+
__decorateParam(4, IConfigService)
|
|
27354
|
+
], SheetPermissionRenderController);
|
|
27355
|
+
let WorksheetProtectionRenderController = class WorksheetProtectionRenderController extends Disposable {
|
|
27356
|
+
constructor(_context, _renderManagerService, _sheetSkeletonManagerService, _worksheetProtectionRuleModel, _configService) {
|
|
27357
|
+
super();
|
|
27358
|
+
this._context = _context;
|
|
27359
|
+
this._renderManagerService = _renderManagerService;
|
|
27360
|
+
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
27361
|
+
this._worksheetProtectionRuleModel = _worksheetProtectionRuleModel;
|
|
27362
|
+
this._configService = _configService;
|
|
27363
|
+
_defineProperty(this, "_worksheetProtectionRenderExtension", void 0);
|
|
27364
|
+
const config = this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);
|
|
27365
|
+
const shadowStrategy = convertToShadowStrategy(config === null || config === void 0 ? void 0 : config.protectedRangeShadow);
|
|
27366
|
+
this._worksheetProtectionRenderExtension = new WorksheetProtectionRenderExtension(shadowStrategy);
|
|
27367
|
+
this._initSkeleton();
|
|
27368
|
+
if (shadowStrategy === "none") return;
|
|
27369
|
+
this._initRender();
|
|
27254
27370
|
}
|
|
27255
|
-
|
|
27256
|
-
const
|
|
27257
|
-
const
|
|
27258
|
-
|
|
27259
|
-
|
|
27260
|
-
|
|
27261
|
-
|
|
27262
|
-
|
|
27263
|
-
|
|
27264
|
-
|
|
27265
|
-
|
|
27266
|
-
|
|
27267
|
-
|
|
27268
|
-
rangeType: RANGE_TYPE.COLUMN
|
|
27269
|
-
},
|
|
27270
|
-
primary: {
|
|
27271
|
-
startRow: 0,
|
|
27272
|
-
startColumn: column,
|
|
27273
|
-
endRow: 0,
|
|
27274
|
-
endColumn: column,
|
|
27275
|
-
actualRow: 0,
|
|
27276
|
-
actualColumn: column,
|
|
27277
|
-
isMerged: false,
|
|
27278
|
-
isMergedMainCell: false
|
|
27279
|
-
},
|
|
27280
|
-
style: null
|
|
27281
|
-
}]
|
|
27371
|
+
_initRender() {
|
|
27372
|
+
const renderId = this._context.unitId;
|
|
27373
|
+
const render = renderId && this._renderManagerService.getRenderById(renderId);
|
|
27374
|
+
const spreadsheetRender = render && render.mainComponent;
|
|
27375
|
+
if (spreadsheetRender) {
|
|
27376
|
+
if (!spreadsheetRender.getExtensionByKey("worksheet-protection")) spreadsheetRender.register(this._worksheetProtectionRenderExtension);
|
|
27377
|
+
}
|
|
27378
|
+
}
|
|
27379
|
+
_initSkeleton() {
|
|
27380
|
+
const markDirtySkeleton = () => {
|
|
27381
|
+
var _this$_context$mainCo2;
|
|
27382
|
+
this._sheetSkeletonManagerService.reCalculate();
|
|
27383
|
+
(_this$_context$mainCo2 = this._context.mainComponent) === null || _this$_context$mainCo2 === void 0 || _this$_context$mainCo2.makeDirty();
|
|
27282
27384
|
};
|
|
27385
|
+
this.disposeWithMe(merge$1(this._worksheetProtectionRuleModel.worksheetRuleInitStateChange$).pipe().subscribe(markDirtySkeleton));
|
|
27283
27386
|
}
|
|
27284
27387
|
};
|
|
27285
|
-
|
|
27286
|
-
__decorateParam(1, Inject(
|
|
27287
|
-
__decorateParam(2,
|
|
27288
|
-
__decorateParam(3,
|
|
27289
|
-
__decorateParam(4, Inject(
|
|
27290
|
-
],
|
|
27388
|
+
WorksheetProtectionRenderController = __decorate([
|
|
27389
|
+
__decorateParam(1, Inject(IRenderManagerService)),
|
|
27390
|
+
__decorateParam(2, Inject(SheetSkeletonManagerService)),
|
|
27391
|
+
__decorateParam(3, Inject(WorksheetProtectionRuleModel)),
|
|
27392
|
+
__decorateParam(4, Inject(IConfigService))
|
|
27393
|
+
], WorksheetProtectionRenderController);
|
|
27291
27394
|
|
|
27292
27395
|
//#endregion
|
|
27293
|
-
//#region src/
|
|
27294
|
-
|
|
27295
|
-
|
|
27296
|
-
|
|
27297
|
-
|
|
27298
|
-
|
|
27299
|
-
|
|
27300
|
-
|
|
27301
|
-
|
|
27302
|
-
_defineProperty(this, "_hasPrevious", true);
|
|
27303
|
-
_defineProperty(this, "_hasNext", true);
|
|
27304
|
-
_defineProperty(this, "_unhideType", void 0);
|
|
27305
|
-
if (props) this.setShapeProps(props);
|
|
27306
|
-
this.onPointerEnter$.subscribeEvent(() => this.setShapeProps({ hovered: true }));
|
|
27307
|
-
this.onPointerLeave$.subscribeEvent(() => this.setShapeProps({ hovered: false }));
|
|
27308
|
-
this.onPointerDown$.subscribeEvent(() => onClick === null || onClick === void 0 ? void 0 : onClick());
|
|
27396
|
+
//#region src/controllers/render-controllers/clipboard.render-controller.ts
|
|
27397
|
+
let ClipboardRenderController = class ClipboardRenderController extends Disposable {
|
|
27398
|
+
constructor(_context, _sheetSkeletonManagerService, _sheetClipboardService, _sheetClipboardController) {
|
|
27399
|
+
super();
|
|
27400
|
+
this._context = _context;
|
|
27401
|
+
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
27402
|
+
this._sheetClipboardService = _sheetClipboardService;
|
|
27403
|
+
this._sheetClipboardController = _sheetClipboardController;
|
|
27404
|
+
this._initialize();
|
|
27309
27405
|
}
|
|
27310
|
-
|
|
27311
|
-
|
|
27312
|
-
|
|
27313
|
-
|
|
27314
|
-
|
|
27315
|
-
|
|
27316
|
-
|
|
27317
|
-
|
|
27318
|
-
});
|
|
27406
|
+
_initialize() {
|
|
27407
|
+
this.disposeWithMe(toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((skeleton) => {
|
|
27408
|
+
if (!(skeleton === null || skeleton === void 0 ? void 0 : skeleton.unitId)) return;
|
|
27409
|
+
if (!this._sheetClipboardService.getPasteMenuVisible()) return;
|
|
27410
|
+
const pasteOptionsCache = this._sheetClipboardService.getPasteOptionsCache();
|
|
27411
|
+
const menuUnitId = pasteOptionsCache === null || pasteOptionsCache === void 0 ? void 0 : pasteOptionsCache.target.unitId;
|
|
27412
|
+
if (skeleton.unitId === menuUnitId) this._sheetClipboardController.refreshOptionalPaste();
|
|
27413
|
+
})));
|
|
27319
27414
|
}
|
|
27320
|
-
|
|
27321
|
-
|
|
27322
|
-
|
|
27415
|
+
};
|
|
27416
|
+
ClipboardRenderController = __decorate([
|
|
27417
|
+
__decorateParam(1, Inject(SheetSkeletonManagerService)),
|
|
27418
|
+
__decorateParam(2, ISheetClipboardService),
|
|
27419
|
+
__decorateParam(3, Inject(SheetClipboardController))
|
|
27420
|
+
], ClipboardRenderController);
|
|
27421
|
+
|
|
27422
|
+
//#endregion
|
|
27423
|
+
//#region src/controllers/render-controllers/format-painter.render-controller.ts
|
|
27424
|
+
let FormatPainterRenderController = class FormatPainterRenderController extends Disposable {
|
|
27425
|
+
constructor(_context, _formatPainterService, _selectionRenderService, _commandService) {
|
|
27426
|
+
super();
|
|
27427
|
+
this._context = _context;
|
|
27428
|
+
this._formatPainterService = _formatPainterService;
|
|
27429
|
+
this._selectionRenderService = _selectionRenderService;
|
|
27430
|
+
this._commandService = _commandService;
|
|
27431
|
+
this._initialize();
|
|
27323
27432
|
}
|
|
27324
|
-
|
|
27325
|
-
|
|
27326
|
-
|
|
27327
|
-
height: this._size,
|
|
27328
|
-
stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
|
|
27329
|
-
fill: HEADER_MENU_BACKGROUND_COLOR
|
|
27330
|
-
});
|
|
27331
|
-
else Rect.drawWith(ctx, {
|
|
27332
|
-
width: this._size,
|
|
27333
|
-
height: 2 * this._size,
|
|
27334
|
-
stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
|
|
27335
|
-
fill: HEADER_MENU_BACKGROUND_COLOR
|
|
27336
|
-
});
|
|
27337
|
-
const iconSize = this._size * .5 * this._iconRatio;
|
|
27338
|
-
const sixtyDegree = Math.PI / 3;
|
|
27339
|
-
const top = iconSize * Math.cos(sixtyDegree);
|
|
27340
|
-
const left = iconSize * Math.sin(sixtyDegree);
|
|
27341
|
-
if (this._hasPrevious) RegularPolygon.drawWith(ctx, {
|
|
27342
|
-
pointsGroup: [[
|
|
27343
|
-
{
|
|
27344
|
-
x: this._size / 2,
|
|
27345
|
-
y: this._size / 2 - left
|
|
27346
|
-
},
|
|
27347
|
-
{
|
|
27348
|
-
x: this._size / 2 - left,
|
|
27349
|
-
y: this._size / 2 + top
|
|
27350
|
-
},
|
|
27351
|
-
{
|
|
27352
|
-
x: this._size / 2 + left,
|
|
27353
|
-
y: this._size / 2 + top
|
|
27354
|
-
}
|
|
27355
|
-
]],
|
|
27356
|
-
fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
|
|
27357
|
-
});
|
|
27358
|
-
if (this._hasNext) {
|
|
27359
|
-
const offset = this._hasPrevious ? 3 : 1;
|
|
27360
|
-
RegularPolygon.drawWith(ctx, {
|
|
27361
|
-
pointsGroup: [[
|
|
27362
|
-
{
|
|
27363
|
-
x: this._size / 2,
|
|
27364
|
-
y: this._size * offset / 2 + left
|
|
27365
|
-
},
|
|
27366
|
-
{
|
|
27367
|
-
x: this._size / 2 - left,
|
|
27368
|
-
y: this._size * offset / 2 - top
|
|
27369
|
-
},
|
|
27370
|
-
{
|
|
27371
|
-
x: this._size / 2 + left,
|
|
27372
|
-
y: this._size * offset / 2 - top
|
|
27373
|
-
}
|
|
27374
|
-
]],
|
|
27375
|
-
fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
|
|
27376
|
-
});
|
|
27377
|
-
}
|
|
27433
|
+
_initialize() {
|
|
27434
|
+
this._bindFormatPainterStatus();
|
|
27435
|
+
this._commandExecutedListener();
|
|
27378
27436
|
}
|
|
27379
|
-
|
|
27380
|
-
|
|
27381
|
-
|
|
27382
|
-
|
|
27383
|
-
|
|
27384
|
-
|
|
27385
|
-
|
|
27386
|
-
|
|
27387
|
-
|
|
27388
|
-
|
|
27389
|
-
|
|
27390
|
-
|
|
27391
|
-
|
|
27392
|
-
height: this._size,
|
|
27393
|
-
stroke: HEADER_MENU_SHAPE_TRIANGLE_FILL,
|
|
27394
|
-
fill: HEADER_MENU_BACKGROUND_COLOR
|
|
27395
|
-
});
|
|
27396
|
-
const iconSize = this._size * .5 * this._iconRatio;
|
|
27397
|
-
const sixtyDegree = Math.PI / 3;
|
|
27398
|
-
const top = iconSize * Math.cos(sixtyDegree);
|
|
27399
|
-
const left = iconSize * Math.sin(sixtyDegree);
|
|
27400
|
-
if (this._hasPrevious) RegularPolygon.drawWith(ctx, {
|
|
27401
|
-
pointsGroup: [[
|
|
27402
|
-
{
|
|
27403
|
-
x: -top + this._size / 2,
|
|
27404
|
-
y: this._size / 2
|
|
27405
|
-
},
|
|
27406
|
-
{
|
|
27407
|
-
x: this._size / 2 + left,
|
|
27408
|
-
y: this._size / 2 - left
|
|
27409
|
-
},
|
|
27410
|
-
{
|
|
27411
|
-
x: this._size / 2 + left,
|
|
27412
|
-
y: this._size / 2 + left
|
|
27413
|
-
}
|
|
27414
|
-
]],
|
|
27415
|
-
fill: HEADER_MENU_SHAPE_TRIANGLE_FILL
|
|
27416
|
-
});
|
|
27417
|
-
if (this._hasNext) {
|
|
27418
|
-
const offset = this._hasPrevious ? 3 : 1;
|
|
27419
|
-
RegularPolygon.drawWith(ctx, {
|
|
27420
|
-
pointsGroup: [[
|
|
27421
|
-
{
|
|
27422
|
-
x: top + this._size * offset / 2,
|
|
27423
|
-
y: this._size / 2
|
|
27424
|
-
},
|
|
27425
|
-
{
|
|
27426
|
-
x: -left + this._size * offset / 2,
|
|
27427
|
-
y: this._size / 2 - left
|
|
27428
|
-
},
|
|
27429
|
-
{
|
|
27430
|
-
x: -left + this._size * offset / 2,
|
|
27431
|
-
y: this._size / 2 + left
|
|
27437
|
+
_commandExecutedListener() {
|
|
27438
|
+
this.disposeWithMe(this._selectionRenderService.selectionMoveEnd$.subscribe((selections) => {
|
|
27439
|
+
if (this._formatPainterService.getStatus() !== 0) {
|
|
27440
|
+
var _this$_context$unit$g;
|
|
27441
|
+
const { rangeWithCoord } = selections[selections.length - 1];
|
|
27442
|
+
this._commandService.executeCommand(ApplyFormatPainterCommand.id, {
|
|
27443
|
+
unitId: this._context.unitId,
|
|
27444
|
+
subUnitId: ((_this$_context$unit$g = this._context.unit.getActiveSheet()) === null || _this$_context$unit$g === void 0 ? void 0 : _this$_context$unit$g.getSheetId()) || "",
|
|
27445
|
+
range: {
|
|
27446
|
+
startRow: rangeWithCoord.startRow,
|
|
27447
|
+
startColumn: rangeWithCoord.startColumn,
|
|
27448
|
+
endRow: rangeWithCoord.endRow,
|
|
27449
|
+
endColumn: rangeWithCoord.endColumn
|
|
27432
27450
|
}
|
|
27433
|
-
|
|
27434
|
-
|
|
27435
|
-
}
|
|
27436
|
-
}
|
|
27451
|
+
});
|
|
27452
|
+
if (this._formatPainterService.getStatus() === 1) this._commandService.executeCommand(SetOnceFormatPainterCommand.id);
|
|
27453
|
+
}
|
|
27454
|
+
}));
|
|
27455
|
+
}
|
|
27456
|
+
_bindFormatPainterStatus() {
|
|
27457
|
+
this.disposeWithMe(toDisposable(this._formatPainterService.status$.subscribe((status) => {
|
|
27458
|
+
const scene = this._context.scene;
|
|
27459
|
+
if (!scene) return;
|
|
27460
|
+
if (status !== 0) scene.setDefaultCursor(CURSOR_TYPE.CELL);
|
|
27461
|
+
else scene.setDefaultCursor(CURSOR_TYPE.DEFAULT);
|
|
27462
|
+
})));
|
|
27437
27463
|
}
|
|
27438
27464
|
};
|
|
27465
|
+
FormatPainterRenderController = __decorate([
|
|
27466
|
+
__decorateParam(1, IFormatPainterService),
|
|
27467
|
+
__decorateParam(2, ISheetSelectionRenderService),
|
|
27468
|
+
__decorateParam(3, ICommandService)
|
|
27469
|
+
], FormatPainterRenderController);
|
|
27439
27470
|
|
|
27440
27471
|
//#endregion
|
|
27441
|
-
//#region src/controllers/render-controllers/header-
|
|
27442
|
-
const
|
|
27443
|
-
|
|
27444
|
-
|
|
27445
|
-
|
|
27446
|
-
|
|
27447
|
-
constructor(_context, _sheetSkeletonManagerService, _commandService) {
|
|
27472
|
+
//#region src/controllers/render-controllers/header-menu.render-controller.ts
|
|
27473
|
+
const HEADER_MENU_CONTROLLER_SHAPE = "__SpreadsheetHeaderMenuSHAPEControllerShape__";
|
|
27474
|
+
const HEADER_MENU_CONTROLLER_MENU = "__SpreadsheetHeaderMenuMAINControllerShape__";
|
|
27475
|
+
const HEADER_MENU_CONTROLLER_SHAPE_COLOR = "rgba(0, 0, 0, 0.1)";
|
|
27476
|
+
let HeaderMenuRenderController = class HeaderMenuRenderController extends Disposable {
|
|
27477
|
+
constructor(_context, _sheetSkeletonManagerService, _contextMenuService, _commandService, _selectionManagerService) {
|
|
27448
27478
|
super();
|
|
27449
27479
|
this._context = _context;
|
|
27450
27480
|
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
27481
|
+
this._contextMenuService = _contextMenuService;
|
|
27451
27482
|
this._commandService = _commandService;
|
|
27452
|
-
|
|
27453
|
-
|
|
27454
|
-
|
|
27455
|
-
|
|
27456
|
-
this
|
|
27483
|
+
this._selectionManagerService = _selectionManagerService;
|
|
27484
|
+
_defineProperty(this, "_hoverRect", void 0);
|
|
27485
|
+
_defineProperty(this, "_hoverMenu", void 0);
|
|
27486
|
+
_defineProperty(this, "_currentColumn", Number.POSITIVE_INFINITY);
|
|
27487
|
+
_defineProperty(this, "_headerPointerSubs", void 0);
|
|
27488
|
+
_defineProperty(this, "_colHeaderPointerSubs", void 0);
|
|
27489
|
+
this._initialize();
|
|
27457
27490
|
}
|
|
27458
27491
|
dispose() {
|
|
27459
|
-
|
|
27460
|
-
this.
|
|
27492
|
+
var _this$_hoverRect, _this$_hoverMenu, _this$_headerPointerS;
|
|
27493
|
+
(_this$_hoverRect = this._hoverRect) === null || _this$_hoverRect === void 0 || _this$_hoverRect.dispose();
|
|
27494
|
+
(_this$_hoverMenu = this._hoverMenu) === null || _this$_hoverMenu === void 0 || _this$_hoverMenu.dispose();
|
|
27495
|
+
(_this$_headerPointerS = this._headerPointerSubs) === null || _this$_headerPointerS === void 0 || _this$_headerPointerS.unsubscribe();
|
|
27496
|
+
this._headerPointerSubs = null;
|
|
27461
27497
|
}
|
|
27462
|
-
|
|
27463
|
-
|
|
27464
|
-
this.
|
|
27465
|
-
|
|
27466
|
-
|
|
27467
|
-
activeSheetId = "";
|
|
27468
|
-
return;
|
|
27469
|
-
}
|
|
27470
|
-
activeSheetId = worksheet.getSheetId();
|
|
27471
|
-
this._update(this._workbook, worksheet);
|
|
27498
|
+
_initialize() {
|
|
27499
|
+
const scene = this._context.scene;
|
|
27500
|
+
this._hoverRect = new Rect(HEADER_MENU_CONTROLLER_SHAPE, {
|
|
27501
|
+
fill: HEADER_MENU_CONTROLLER_SHAPE_COLOR,
|
|
27502
|
+
evented: false
|
|
27472
27503
|
});
|
|
27473
|
-
this.
|
|
27474
|
-
|
|
27475
|
-
|
|
27476
|
-
|
|
27477
|
-
|
|
27478
|
-
|
|
27504
|
+
this._hoverMenu = new HeaderMenuShape(HEADER_MENU_CONTROLLER_MENU, {
|
|
27505
|
+
zIndex: 100,
|
|
27506
|
+
visible: false
|
|
27507
|
+
});
|
|
27508
|
+
scene.addObjects([this._hoverRect, this._hoverMenu], 10);
|
|
27509
|
+
this._initialHover(0);
|
|
27510
|
+
this._initialHover(1);
|
|
27511
|
+
this._initialHoverMenu();
|
|
27512
|
+
}
|
|
27513
|
+
_initialHover(initialType = 0) {
|
|
27514
|
+
var _this$_headerPointerS2, _this$_headerPointerS3, _this$_headerPointerS4;
|
|
27515
|
+
const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
|
|
27516
|
+
const spreadsheetRowHeader = this._context.components.get("__SpreadsheetRowHeader__");
|
|
27517
|
+
const eventBindingObject = initialType === 0 ? spreadsheetRowHeader : spreadsheetColumnHeader;
|
|
27518
|
+
const pointerMoveHandler = (evt) => {
|
|
27519
|
+
var _this$_sheetSkeletonM;
|
|
27520
|
+
const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
|
|
27521
|
+
if (skeleton == null) return;
|
|
27522
|
+
const { rowBaseWidth, rowGutterWidth, columnBaseHeight, columnGutterHeight } = getHeaderBaseLayout(skeleton);
|
|
27523
|
+
const { startX, startY, endX, endY, column } = getCoordByOffset(evt.offsetX, evt.offsetY, this._context.scene, skeleton);
|
|
27524
|
+
if (initialType === 0) {
|
|
27525
|
+
var _this$_hoverRect2;
|
|
27526
|
+
(_this$_hoverRect2 = this._hoverRect) === null || _this$_hoverRect2 === void 0 || _this$_hoverRect2.transformByState({
|
|
27527
|
+
width: rowBaseWidth,
|
|
27528
|
+
height: endY - startY,
|
|
27529
|
+
left: rowGutterWidth,
|
|
27530
|
+
top: startY
|
|
27531
|
+
});
|
|
27532
|
+
} else {
|
|
27533
|
+
var _this$_hoverRect3;
|
|
27534
|
+
this._currentColumn = column;
|
|
27535
|
+
(_this$_hoverRect3 = this._hoverRect) === null || _this$_hoverRect3 === void 0 || _this$_hoverRect3.transformByState({
|
|
27536
|
+
width: endX - startX,
|
|
27537
|
+
height: columnBaseHeight,
|
|
27538
|
+
left: startX,
|
|
27539
|
+
top: columnGutterHeight
|
|
27540
|
+
});
|
|
27541
|
+
if (this._hoverMenu == null) return;
|
|
27542
|
+
if (endX - startX < columnBaseHeight * 2) {
|
|
27543
|
+
this._hoverMenu.hide();
|
|
27544
|
+
return;
|
|
27479
27545
|
}
|
|
27546
|
+
const menuSize = columnBaseHeight * .8;
|
|
27547
|
+
this._hoverMenu.transformByState({
|
|
27548
|
+
left: endX - columnBaseHeight,
|
|
27549
|
+
top: columnGutterHeight + columnBaseHeight / 2 - menuSize / 2
|
|
27550
|
+
});
|
|
27551
|
+
this._hoverMenu.setShapeProps({ size: menuSize });
|
|
27552
|
+
this._hoverMenu.show();
|
|
27480
27553
|
}
|
|
27481
|
-
}
|
|
27554
|
+
};
|
|
27555
|
+
const pointerEnterHandler = () => {
|
|
27556
|
+
var _this$_hoverRect4;
|
|
27557
|
+
(_this$_hoverRect4 = this._hoverRect) === null || _this$_hoverRect4 === void 0 || _this$_hoverRect4.show();
|
|
27558
|
+
};
|
|
27559
|
+
const pointerLeaveHandler = () => {
|
|
27560
|
+
var _this$_hoverRect5, _this$_hoverMenu2;
|
|
27561
|
+
(_this$_hoverRect5 = this._hoverRect) === null || _this$_hoverRect5 === void 0 || _this$_hoverRect5.hide();
|
|
27562
|
+
(_this$_hoverMenu2 = this._hoverMenu) === null || _this$_hoverMenu2 === void 0 || _this$_hoverMenu2.hide();
|
|
27563
|
+
};
|
|
27564
|
+
this._headerPointerSubs = new Subscription();
|
|
27565
|
+
const headerPointerMoveSub = eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler);
|
|
27566
|
+
const headerPointerEnterSub = eventBindingObject.onPointerEnter$.subscribeEvent(pointerEnterHandler);
|
|
27567
|
+
const headerPointerLeaveSub = eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler);
|
|
27568
|
+
(_this$_headerPointerS2 = this._headerPointerSubs) === null || _this$_headerPointerS2 === void 0 || _this$_headerPointerS2.add(headerPointerMoveSub);
|
|
27569
|
+
(_this$_headerPointerS3 = this._headerPointerSubs) === null || _this$_headerPointerS3 === void 0 || _this$_headerPointerS3.add(headerPointerEnterSub);
|
|
27570
|
+
(_this$_headerPointerS4 = this._headerPointerSubs) === null || _this$_headerPointerS4 === void 0 || _this$_headerPointerS4.add(headerPointerLeaveSub);
|
|
27482
27571
|
}
|
|
27483
|
-
|
|
27484
|
-
|
|
27485
|
-
|
|
27486
|
-
|
|
27487
|
-
|
|
27488
|
-
|
|
27489
|
-
|
|
27490
|
-
|
|
27491
|
-
|
|
27492
|
-
const { startRow, endRow } = range;
|
|
27493
|
-
const position = getCoordByCell(startRow, 0, scene, skeleton);
|
|
27494
|
-
const hasPrevious = startRow !== 0;
|
|
27495
|
-
const hasNext = endRow !== rowCount - 1;
|
|
27496
|
-
return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
|
|
27497
|
-
type: 0,
|
|
27498
|
-
hovered: false,
|
|
27499
|
-
hasPrevious,
|
|
27500
|
-
hasNext,
|
|
27501
|
-
top: position.startY - (hasPrevious ? 12 : 0),
|
|
27502
|
-
left: position.startX - 12
|
|
27503
|
-
}, () => this._commandService.executeCommand(SetSpecificRowsVisibleCommand.id, {
|
|
27504
|
-
unitId: workbook.getUnitId(),
|
|
27505
|
-
subUnitId: worksheet.getSheetId(),
|
|
27506
|
-
ranges: [range]
|
|
27507
|
-
}));
|
|
27572
|
+
_initialHoverMenu() {
|
|
27573
|
+
if (this._hoverMenu == null) return;
|
|
27574
|
+
this._hoverMenu.onPointerEnter$.subscribeEvent(() => {
|
|
27575
|
+
if (this._hoverMenu == null) return;
|
|
27576
|
+
this._hoverMenu.setProps({
|
|
27577
|
+
mode: 1,
|
|
27578
|
+
visible: true
|
|
27579
|
+
});
|
|
27580
|
+
this._context.scene.setCursor(CURSOR_TYPE.POINTER);
|
|
27508
27581
|
});
|
|
27509
|
-
|
|
27510
|
-
|
|
27511
|
-
|
|
27512
|
-
|
|
27513
|
-
|
|
27514
|
-
|
|
27515
|
-
|
|
27516
|
-
|
|
27517
|
-
|
|
27518
|
-
|
|
27519
|
-
|
|
27520
|
-
|
|
27521
|
-
|
|
27522
|
-
|
|
27523
|
-
|
|
27524
|
-
|
|
27525
|
-
|
|
27526
|
-
|
|
27582
|
+
this._hoverMenu.onPointerLeave$.subscribeEvent(() => {
|
|
27583
|
+
if (this._hoverMenu == null) return;
|
|
27584
|
+
this._hoverMenu.setProps({
|
|
27585
|
+
mode: 0,
|
|
27586
|
+
visible: false
|
|
27587
|
+
});
|
|
27588
|
+
this._context.scene.resetCursor();
|
|
27589
|
+
});
|
|
27590
|
+
this._hoverMenu.onPointerDown$.subscribeEvent((evt) => {
|
|
27591
|
+
var _this$_selectionManag;
|
|
27592
|
+
const currentColumn = this._currentColumn;
|
|
27593
|
+
const currentSelectionDatas = (_this$_selectionManag = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag === void 0 ? void 0 : _this$_selectionManag.map((s) => s.range);
|
|
27594
|
+
if (!!!(currentSelectionDatas === null || currentSelectionDatas === void 0 ? void 0 : currentSelectionDatas.filter((range) => range.rangeType === RANGE_TYPE.COLUMN).find((data) => {
|
|
27595
|
+
const { startColumn, endColumn } = data;
|
|
27596
|
+
if (currentColumn >= startColumn && currentColumn <= endColumn) return true;
|
|
27597
|
+
return false;
|
|
27598
|
+
}))) {
|
|
27599
|
+
const selection = this._getSelectionOnColumn(currentColumn);
|
|
27600
|
+
this._commandService.syncExecuteCommand(SetSelectionsOperation.id, selection);
|
|
27601
|
+
}
|
|
27602
|
+
evt.stopPropagation();
|
|
27603
|
+
evt.preventDefault();
|
|
27604
|
+
this._contextMenuService.triggerContextMenu(evt, ContextMenuPosition.COL_HEADER);
|
|
27527
27605
|
});
|
|
27528
|
-
scene.addObjects(colShapes, 12);
|
|
27529
|
-
scene.addObjects(rowShapes, 12);
|
|
27530
|
-
this._clearShapes();
|
|
27531
|
-
this._shapes = {
|
|
27532
|
-
cols: colShapes,
|
|
27533
|
-
rows: rowShapes
|
|
27534
|
-
};
|
|
27535
27606
|
}
|
|
27536
|
-
|
|
27537
|
-
this.
|
|
27538
|
-
|
|
27539
|
-
|
|
27540
|
-
|
|
27541
|
-
|
|
27607
|
+
_getSelectionOnColumn(column) {
|
|
27608
|
+
const workbook = this._context.unit;
|
|
27609
|
+
const worksheet = workbook.getActiveSheet();
|
|
27610
|
+
if (!worksheet) throw new Error("No active worksheet");
|
|
27611
|
+
return {
|
|
27612
|
+
unitId: workbook.getUnitId(),
|
|
27613
|
+
subUnitId: worksheet.getSheetId(),
|
|
27614
|
+
selections: [{
|
|
27615
|
+
range: {
|
|
27616
|
+
startRow: 0,
|
|
27617
|
+
startColumn: column,
|
|
27618
|
+
endRow: worksheet.getRowCount() - 1,
|
|
27619
|
+
endColumn: column,
|
|
27620
|
+
rangeType: RANGE_TYPE.COLUMN
|
|
27621
|
+
},
|
|
27622
|
+
primary: {
|
|
27623
|
+
startRow: 0,
|
|
27624
|
+
startColumn: column,
|
|
27625
|
+
endRow: 0,
|
|
27626
|
+
endColumn: column,
|
|
27627
|
+
actualRow: 0,
|
|
27628
|
+
actualColumn: column,
|
|
27629
|
+
isMerged: false,
|
|
27630
|
+
isMergedMainCell: false
|
|
27631
|
+
},
|
|
27632
|
+
style: null
|
|
27633
|
+
}]
|
|
27542
27634
|
};
|
|
27543
27635
|
}
|
|
27544
|
-
_getSheetObject() {
|
|
27545
|
-
return getSheetObject(this._workbook, this._context);
|
|
27546
|
-
}
|
|
27547
27636
|
};
|
|
27548
|
-
|
|
27637
|
+
HeaderMenuRenderController = __decorate([
|
|
27638
|
+
__decorateParam(1, Inject(SheetSkeletonManagerService)),
|
|
27639
|
+
__decorateParam(2, IContextMenuService),
|
|
27640
|
+
__decorateParam(3, ICommandService),
|
|
27641
|
+
__decorateParam(4, Inject(SheetsSelectionsService))
|
|
27642
|
+
], HeaderMenuRenderController);
|
|
27643
|
+
function getHeaderBaseLayout(skeleton) {
|
|
27644
|
+
var _skeleton$worksheet$g, _skeleton$worksheet, _config$rowHeader, _config$columnHeader;
|
|
27645
|
+
const config = (_skeleton$worksheet$g = (_skeleton$worksheet = skeleton.worksheet).getConfig) === null || _skeleton$worksheet$g === void 0 ? void 0 : _skeleton$worksheet$g.call(_skeleton$worksheet);
|
|
27646
|
+
const configuredRowWidth = config === null || config === void 0 || (_config$rowHeader = config.rowHeader) === null || _config$rowHeader === void 0 ? void 0 : _config$rowHeader.width;
|
|
27647
|
+
const configuredColumnHeight = config === null || config === void 0 || (_config$columnHeader = config.columnHeader) === null || _config$columnHeader === void 0 ? void 0 : _config$columnHeader.height;
|
|
27648
|
+
const rowBaseWidth = typeof configuredRowWidth === "number" && configuredRowWidth > 0 ? Math.min(configuredRowWidth, skeleton.rowHeaderWidth) : skeleton.rowHeaderWidth;
|
|
27649
|
+
const columnBaseHeight = typeof configuredColumnHeight === "number" && configuredColumnHeight > 0 ? Math.min(configuredColumnHeight, skeleton.columnHeaderHeight) : skeleton.columnHeaderHeight;
|
|
27650
|
+
return {
|
|
27651
|
+
rowBaseWidth,
|
|
27652
|
+
rowGutterWidth: Math.max(0, skeleton.rowHeaderWidthAndMarginLeft - rowBaseWidth),
|
|
27653
|
+
columnBaseHeight,
|
|
27654
|
+
columnGutterHeight: Math.max(0, skeleton.columnHeaderHeightAndMarginTop - columnBaseHeight)
|
|
27655
|
+
};
|
|
27656
|
+
}
|
|
27549
27657
|
|
|
27550
27658
|
//#endregion
|
|
27551
27659
|
//#region src/consts/mobile-context.ts
|
|
@@ -28847,12 +28955,12 @@ let SheetSkeletonRenderController = class SheetSkeletonRenderController extends
|
|
|
28847
28955
|
this._context = _context;
|
|
28848
28956
|
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
28849
28957
|
this._renderManagerService = _renderManagerService;
|
|
28850
|
-
this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
|
|
28958
|
+
this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
|
|
28851
28959
|
this._updateSceneSize(param);
|
|
28852
|
-
});
|
|
28960
|
+
}));
|
|
28853
28961
|
}
|
|
28854
28962
|
_updateSceneSize(param) {
|
|
28855
|
-
var _this$_renderManagerS;
|
|
28963
|
+
var _this$_renderManagerS, _scene$getViewport, _scene$getViewport2, _scene$getViewport3, _scene$getViewport4, _scene$getViewport5;
|
|
28856
28964
|
if (param == null) return;
|
|
28857
28965
|
const { unitId } = this._context;
|
|
28858
28966
|
const { skeleton } = param;
|
|
@@ -28865,6 +28973,30 @@ let SheetSkeletonRenderController = class SheetSkeletonRenderController extends
|
|
|
28865
28973
|
height: columnHeaderHeightAndMarginTop + rowTotalHeight
|
|
28866
28974
|
});
|
|
28867
28975
|
scene.getMainViewport().setMargin(rowHeaderWidthAndMarginLeft, columnHeaderHeightAndMarginTop);
|
|
28976
|
+
scene.getMainViewport().resizeWhenFreezeChange({
|
|
28977
|
+
left: rowHeaderWidthAndMarginLeft,
|
|
28978
|
+
top: columnHeaderHeightAndMarginTop
|
|
28979
|
+
});
|
|
28980
|
+
(_scene$getViewport = scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT)) === null || _scene$getViewport === void 0 || _scene$getViewport.resizeWhenFreezeChange({
|
|
28981
|
+
left: rowHeaderWidthAndMarginLeft,
|
|
28982
|
+
height: columnHeaderHeightAndMarginTop
|
|
28983
|
+
});
|
|
28984
|
+
(_scene$getViewport2 = scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT)) === null || _scene$getViewport2 === void 0 || _scene$getViewport2.resizeWhenFreezeChange({
|
|
28985
|
+
left: rowHeaderWidthAndMarginLeft,
|
|
28986
|
+
height: columnHeaderHeightAndMarginTop
|
|
28987
|
+
});
|
|
28988
|
+
(_scene$getViewport3 = scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM)) === null || _scene$getViewport3 === void 0 || _scene$getViewport3.resizeWhenFreezeChange({
|
|
28989
|
+
width: rowHeaderWidthAndMarginLeft,
|
|
28990
|
+
top: columnHeaderHeightAndMarginTop
|
|
28991
|
+
});
|
|
28992
|
+
(_scene$getViewport4 = scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_ROW_TOP)) === null || _scene$getViewport4 === void 0 || _scene$getViewport4.resizeWhenFreezeChange({
|
|
28993
|
+
width: rowHeaderWidthAndMarginLeft,
|
|
28994
|
+
top: columnHeaderHeightAndMarginTop
|
|
28995
|
+
});
|
|
28996
|
+
(_scene$getViewport5 = scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP)) === null || _scene$getViewport5 === void 0 || _scene$getViewport5.resizeWhenFreezeChange({
|
|
28997
|
+
width: rowHeaderWidthAndMarginLeft,
|
|
28998
|
+
height: columnHeaderHeightAndMarginTop
|
|
28999
|
+
});
|
|
28868
29000
|
}
|
|
28869
29001
|
};
|
|
28870
29002
|
SheetSkeletonRenderController = __decorate([__decorateParam(1, Inject(SheetSkeletonManagerService)), __decorateParam(2, IRenderManagerService)], SheetSkeletonRenderController);
|
|
@@ -29698,16 +29830,18 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
|
|
|
29698
29830
|
*/
|
|
29699
29831
|
newSelectionControl(scene, skeleton, selection) {
|
|
29700
29832
|
const selectionControls = this.getSelectionControls();
|
|
29701
|
-
const { rowHeaderWidth, columnHeaderHeight } = skeleton;
|
|
29833
|
+
const { rowHeaderWidth, rowHeaderWidthAndMarginLeft, columnHeaderHeight, columnHeaderHeightAndMarginTop } = skeleton;
|
|
29702
29834
|
const rangeType = selection.range.rangeType;
|
|
29703
29835
|
const control = new MobileSelectionControl(scene, selectionControls.length, this._themeService, {
|
|
29704
29836
|
highlightHeader: this._highlightHeader,
|
|
29705
29837
|
rowHeaderWidth,
|
|
29706
29838
|
columnHeaderHeight,
|
|
29839
|
+
rowHeaderOffsetX: Math.max(0, rowHeaderWidthAndMarginLeft - rowHeaderWidth),
|
|
29840
|
+
columnHeaderOffsetY: Math.max(0, columnHeaderHeightAndMarginTop - columnHeaderHeight),
|
|
29707
29841
|
rangeType
|
|
29708
29842
|
});
|
|
29709
29843
|
const selectionWithCoord = attachSelectionWithCoord(selection, skeleton);
|
|
29710
|
-
control.updateRangeBySelectionWithCoord(selectionWithCoord);
|
|
29844
|
+
control.updateRangeBySelectionWithCoord(selectionWithCoord, skeleton);
|
|
29711
29845
|
this._selectionControls.push(control);
|
|
29712
29846
|
const { expandingModeForTopLeft, expandingModeForBottomRight } = (() => {
|
|
29713
29847
|
switch (rangeType) {
|
|
@@ -29983,6 +30117,7 @@ let UniverSheetsMobileUIPlugin = class UniverSheetsMobileUIPlugin extends Plugin
|
|
|
29983
30117
|
[IStatusBarService, { useClass: StatusBarService }],
|
|
29984
30118
|
[IMarkSelectionService, { useClass: MarkSelectionService }],
|
|
29985
30119
|
[HoverManagerService],
|
|
30120
|
+
[HeaderUnhideRangeService],
|
|
29986
30121
|
[DragManagerService],
|
|
29987
30122
|
[SheetCanvasPopManagerService],
|
|
29988
30123
|
[CellPopupManagerService],
|
|
@@ -30578,6 +30713,7 @@ let UniverSheetsUIPlugin = class UniverSheetsUIPlugin extends Plugin {
|
|
|
30578
30713
|
[IStatusBarService, { useClass: StatusBarService }],
|
|
30579
30714
|
[IMarkSelectionService, { useClass: MarkSelectionService }],
|
|
30580
30715
|
[HoverManagerService],
|
|
30716
|
+
[HeaderUnhideRangeService],
|
|
30581
30717
|
[DragManagerService],
|
|
30582
30718
|
[SheetCanvasPopManagerService],
|
|
30583
30719
|
[CellPopupManagerService],
|
|
@@ -30706,4 +30842,4 @@ UniverSheetsUIPlugin = __decorate([
|
|
|
30706
30842
|
], UniverSheetsUIPlugin);
|
|
30707
30843
|
|
|
30708
30844
|
//#endregion
|
|
30709
|
-
export { AddRangeProtectionFromContextMenuCommand, AddRangeProtectionFromSheetBarCommand, AddRangeProtectionFromToolbarCommand, ApplyFormatPainterCommand, AutoFillUIController, AutoHeightController, AutoWidthController, BaseSelectionRenderService, COPY_SPECIAL_MENU_ID, COPY_TYPE, CellAlertManagerService, CellAlertType, CellCustomRenderController, CellEditorManagerService, CellPopupManagerService, ChangeSheetProtectionFromSheetBarCommand, ChangeZoomRatioCommand, DeleteRangeMoveLeftConfirmCommand, DeleteRangeMoveUpConfirmCommand, DeleteRangeProtectionFromContextMenuCommand, DeleteWorksheetProtectionFormSheetBarCommand, DragManagerService, DragRenderController, EMBEDDING_FORMULA_EDITOR, EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY, EditingRenderController, EditorBridgeService, ExpandSelectionCommand, FormatPainterStatus, FormulaBar, FormulaEditorController, HeaderFreezeRenderController, HeaderMoveRenderController, HeaderResizeRenderController, HideColConfirmCommand, HideRowConfirmCommand, HoverManagerService, HoverRenderController, ICellEditorManagerService, IEditorBridgeService, IFormatPainterService, IFormulaEditorManagerService, IMarkSelectionService, IRepeatLastActionService, ISheetCellDropdownManagerService, ISheetClipboardService, ISheetSelectionRenderService, IStatusBarService, InsertRangeMoveDownConfirmCommand, InsertRangeMoveRightConfirmCommand, JumpOver, MarkSelectionService, MobileSheetBar, MoveSelectionCommand, MoveSelectionEnterAndTabCommand, PASTE_SPECIAL_MENU_ID, PREDEFINED_HOOK_NAME, PREDEFINED_HOOK_NAME_COPY, PREDEFINED_HOOK_NAME_PASTE, RANGE_SELECTOR_COMPONENT_KEY, RANGE_SELECTOR_SYMBOLS, RemoveColConfirmCommand, RemoveRowConfirmCommand, RemoveSheetConfirmCommand, RenameSheetOperation, RenderSheetContent, RenderSheetFooter, RenderSheetHeader, RepeatLastActionPermission, ResetRangeTextColorCommand, ResetScrollCommand, SELECTION_SHAPE_DEPTH, SHEET_UI_PLUGIN_NAME, SHEET_VIEW_KEY, ScrollCommand, ScrollToCellCommand, ScrollToRangeOperation, SelectAllCommand, SelectionControl, SelectionControl as SelectionShape, SelectionShapeExtension, SetActivateCellEditOperation, SetCellEditVisibleArrowOperation, SetCellEditVisibleOperation, SetCellEditVisibleWithF2Operation, SetColumnFrozenCommand, SetColumnHeaderHeightCommand, SetFirstColumnFrozenCommand, SetFirstRowFrozenCommand, SetFormatPainterOperation, SetInfiniteFormatPainterCommand, SetOnceFormatPainterCommand, SetRangeBoldCommand, SetRangeFontDecreaseCommand, SetRangeFontFamilyCommand, SetRangeFontIncreaseCommand, SetRangeFontSizeCommand, SetRangeItalicCommand, SetRangeProtectionFromContextMenuCommand, SetRangeStrickThroughCommand, SetRangeSubscriptCommand, SetRangeSuperscriptCommand, SetRangeTextColorCommand, SetRangeUnderlineCommand, SetRowFrozenCommand, SetRowHeaderWidthCommand, SetScrollOperation, SetScrollRelativeCommand, SetSelectionFrozenCommand, SetWorksheetColAutoWidthCommand, SetZoomRatioCommand, SetZoomRatioOperation, SheetBar, SheetCanvasPopManagerService, SheetCellDropdownManagerService, SheetCellEditorResizeService, SheetClipboardController, SheetClipboardService, SheetCopyCommand, SheetCopyDownCommand, SheetCopyRightCommand, SheetCutCommand, SheetMenuPosition, SheetPasteBesidesBorderCommand, SheetPasteColWidthCommand, SheetPasteCommand, SheetPasteFormatCommand, SheetPasteShortKeyCommand, SheetPasteValueCommand, SheetPermissionCheckUIController, SheetPermissionOpenDialogOperation, SheetPermissionOpenPanelOperation, SheetPermissionRenderManagerService, SheetPermissionUserManagerService, SheetPrintInterceptorService, SheetRenderController, SheetScrollManagerService, SheetSelectionRenderService, SheetSkeletonManagerService, SheetUIController, SheetsRenderService, SheetsScrollRenderController, menuSchema as SheetsUIMenuSchema, SheetsUIPart, ShowMenuListCommand, SidebarDefinedNameOperation, StatusBarController, StatusBarService, UNIVER_SHEET_PERMISSION_USER_PART, UniverSheetsMobileUIPlugin, UniverSheetsUIPlugin, ViewSheetPermissionFromContextMenuCommand, ViewSheetPermissionFromSheetBarCommand, calculateDocSkeletonRects, matchedSelectionByRowColIndex as checkInHeaderRanges, deriveStateFromActiveSheet$, functionDisplayNames, genNormalSelectionStyle, genSelectionByRange, selectionDataForSelectAll as getAllSelection, getCellRealRange, getCoordByCell, getCoordByOffset, getCurrentExclusiveRangeInterest$, getCurrentRangeDisable$, getCustomRangePosition, getEditingCustomRangePosition, getEditorObject, getMatrixPlainText, getObservableWithExclusiveRange$, getRepeatRange, getSheetObject, getTopLeftSelectionOfCurrSheet, getTransformCoord, getViewportByCell, isEmbeddingFormulaEditor, isRangeSelector, menuClipboardDisabledObservable, mergeSetRangeValues, useActiveWorkbook, useActiveWorksheet, useHighlightRange, useKeyEventConfig, useWorkbooks, virtualizeDiscreteRanges, whenFormulaEditorActivated, whenSheetEditorActivated, whenSheetEditorFocused };
|
|
30845
|
+
export { AddRangeProtectionFromContextMenuCommand, AddRangeProtectionFromSheetBarCommand, AddRangeProtectionFromToolbarCommand, ApplyFormatPainterCommand, AutoFillUIController, AutoHeightController, AutoWidthController, BaseSelectionRenderService, COPY_SPECIAL_MENU_ID, COPY_TYPE, CellAlertManagerService, CellAlertType, CellCustomRenderController, CellEditorManagerService, CellPopupManagerService, ChangeSheetProtectionFromSheetBarCommand, ChangeZoomRatioCommand, DeleteRangeMoveLeftConfirmCommand, DeleteRangeMoveUpConfirmCommand, DeleteRangeProtectionFromContextMenuCommand, DeleteWorksheetProtectionFormSheetBarCommand, DragManagerService, DragRenderController, EMBEDDING_FORMULA_EDITOR, EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY, EditingRenderController, EditorBridgeService, ExpandSelectionCommand, FormatPainterStatus, FormulaBar, FormulaEditorController, HEADER_UNHIDE_RANGE_VISIBLE_CHECK, HeaderFreezeRenderController, HeaderMoveRenderController, HeaderResizeRenderController, HeaderUnhideRangeAxis, HeaderUnhideRangeService, HeaderUnhideRenderController, HideColConfirmCommand, HideRowConfirmCommand, HoverManagerService, HoverRenderController, ICellEditorManagerService, IEditorBridgeService, IFormatPainterService, IFormulaEditorManagerService, IMarkSelectionService, IRepeatLastActionService, ISheetCellDropdownManagerService, ISheetClipboardService, ISheetSelectionRenderService, IStatusBarService, InsertRangeMoveDownConfirmCommand, InsertRangeMoveRightConfirmCommand, JumpOver, MarkSelectionService, MobileSheetBar, MoveSelectionCommand, MoveSelectionEnterAndTabCommand, PASTE_SPECIAL_MENU_ID, PREDEFINED_HOOK_NAME, PREDEFINED_HOOK_NAME_COPY, PREDEFINED_HOOK_NAME_PASTE, RANGE_SELECTOR_COMPONENT_KEY, RANGE_SELECTOR_SYMBOLS, RemoveColConfirmCommand, RemoveRowConfirmCommand, RemoveSheetConfirmCommand, RenameSheetOperation, RenderSheetContent, RenderSheetFooter, RenderSheetHeader, RepeatLastActionPermission, ResetRangeTextColorCommand, ResetScrollCommand, SELECTION_SHAPE_DEPTH, SHEET_UI_PLUGIN_NAME, SHEET_VIEW_KEY, ScrollCommand, ScrollToCellCommand, ScrollToRangeOperation, SelectAllCommand, SelectionControl, SelectionControl as SelectionShape, SelectionShapeExtension, SetActivateCellEditOperation, SetCellEditVisibleArrowOperation, SetCellEditVisibleOperation, SetCellEditVisibleWithF2Operation, SetColumnFrozenCommand, SetColumnHeaderHeightCommand, SetFirstColumnFrozenCommand, SetFirstRowFrozenCommand, SetFormatPainterOperation, SetInfiniteFormatPainterCommand, SetOnceFormatPainterCommand, SetRangeBoldCommand, SetRangeFontDecreaseCommand, SetRangeFontFamilyCommand, SetRangeFontIncreaseCommand, SetRangeFontSizeCommand, SetRangeItalicCommand, SetRangeProtectionFromContextMenuCommand, SetRangeStrickThroughCommand, SetRangeSubscriptCommand, SetRangeSuperscriptCommand, SetRangeTextColorCommand, SetRangeUnderlineCommand, SetRowFrozenCommand, SetRowHeaderWidthCommand, SetScrollOperation, SetScrollRelativeCommand, SetSelectionFrozenCommand, SetWorksheetColAutoWidthCommand, SetZoomRatioCommand, SetZoomRatioOperation, SheetBar, SheetCanvasPopManagerService, SheetCellDropdownManagerService, SheetCellEditorResizeService, SheetClipboardController, SheetClipboardService, SheetCopyCommand, SheetCopyDownCommand, SheetCopyRightCommand, SheetCutCommand, SheetMenuPosition, SheetPasteBesidesBorderCommand, SheetPasteColWidthCommand, SheetPasteCommand, SheetPasteFormatCommand, SheetPasteShortKeyCommand, SheetPasteValueCommand, SheetPermissionCheckUIController, SheetPermissionOpenDialogOperation, SheetPermissionOpenPanelOperation, SheetPermissionRenderManagerService, SheetPermissionUserManagerService, SheetPrintInterceptorService, SheetRenderController, SheetScrollManagerService, SheetSelectionRenderService, SheetSkeletonManagerService, SheetUIController, SheetsRenderService, SheetsScrollRenderController, menuSchema as SheetsUIMenuSchema, SheetsUIPart, ShowMenuListCommand, SidebarDefinedNameOperation, StatusBarController, StatusBarService, UNIVER_SHEET_PERMISSION_USER_PART, UniverSheetsMobileUIPlugin, UniverSheetsUIPlugin, ViewSheetPermissionFromContextMenuCommand, ViewSheetPermissionFromSheetBarCommand, calculateDocSkeletonRects, matchedSelectionByRowColIndex as checkInHeaderRanges, deriveStateFromActiveSheet$, functionDisplayNames, genNormalSelectionStyle, genSelectionByRange, selectionDataForSelectAll as getAllSelection, getCellRealRange, getCoordByCell, getCoordByOffset, getCurrentExclusiveRangeInterest$, getCurrentRangeDisable$, getCustomRangePosition, getEditingCustomRangePosition, getEditorObject, getMatrixPlainText, getObservableWithExclusiveRange$, getRepeatRange, getSheetObject, getTopLeftSelectionOfCurrSheet, getTransformCoord, getViewportByCell, isEmbeddingFormulaEditor, isRangeSelector, menuClipboardDisabledObservable, mergeSetRangeValues, useActiveWorkbook, useActiveWorksheet, useHighlightRange, useKeyEventConfig, useWorkbooks, virtualizeDiscreteRanges, whenFormulaEditorActivated, whenSheetEditorActivated, whenSheetEditorFocused };
|