@univerjs/sheets-ui 0.5.2 → 0.5.3-experimental.20250106-e3b7a39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/lib/cjs/facade.js +1 -1
  2. package/lib/cjs/index.js +32 -30
  3. package/lib/es/facade.js +261 -102
  4. package/lib/es/index.js +9612 -10128
  5. package/lib/index.css +1 -1
  6. package/lib/types/commands/commands/set-scroll.command.d.ts +10 -0
  7. package/lib/types/controllers/permission/sheet-permission-check-ui.controller.d.ts +24 -0
  8. package/lib/types/controllers/permission/sheet-permission-interceptor-canvas-render.controller.d.ts +0 -1
  9. package/lib/types/controllers/permission/sheet-permission-interceptor-clipboard.controller.d.ts +3 -4
  10. package/lib/types/controllers/permission/sheet-permission-interceptor-formula-render.controller.d.ts +0 -1
  11. package/lib/types/controllers/render-controllers/scroll.render-controller.d.ts +7 -4
  12. package/lib/types/facade/f-event.d.ts +121 -0
  13. package/lib/types/facade/f-permission.d.ts +4 -1
  14. package/lib/types/facade/f-range.d.ts +48 -5
  15. package/lib/types/facade/f-sheet-hooks.d.ts +50 -12
  16. package/lib/types/facade/f-univer.d.ts +18 -15
  17. package/lib/types/facade/f-workbook.d.ts +37 -24
  18. package/lib/types/facade/f-worksheet.d.ts +26 -13
  19. package/lib/types/facade/index.d.ts +1 -0
  20. package/lib/types/index.d.ts +13 -13
  21. package/lib/types/services/scroll-manager.service.d.ts +12 -4
  22. package/lib/types/views/cell-alert/CellAlertPopup.d.ts +1 -1
  23. package/lib/umd/facade.js +1 -1
  24. package/lib/umd/index.js +30 -28
  25. package/package.json +15 -39
  26. package/LICENSE +0 -176
  27. package/lib/types/controllers/permission/sheet-permission-init.controller.d.ts +0 -26
  28. package/lib/types/controllers/permission/sheet-permission-interceptor-base.controller.d.ts +0 -36
  29. package/lib/types/controllers/permission/sheet-permission-view-model.controller.d.ts +0 -11
@@ -1,32 +1,27 @@
1
- import { IDisposable, FUniver } from '@univerjs/core';
1
+ import { IDisposable, Injector, FUniver } from '@univerjs/core';
2
2
  import { IColumnsHeaderCfgParam, IRowsHeaderCfgParam, SheetExtension } from '@univerjs/engine-render';
3
3
  import { FSheetHooks } from '@univerjs/sheets/facade';
4
4
  export interface IFUniverSheetsUIMixin {
5
5
  /**
6
6
  * Customize the column header of the spreadsheet.
7
- *
8
7
  * @param {IColumnsHeaderCfgParam} cfg The configuration of the column header.
9
- *
10
8
  * @example
11
9
  * ```typescript
12
- * customizeColumnHeader({ headerStyle: { backgroundColor: 'pink', fontSize: 9 }, columnsCfg: ['MokaII', undefined, null, { text: 'Size', textAlign: 'left' }] });
10
+ * univerAPI.customizeColumnHeader({ headerStyle: { backgroundColor: 'pink', fontSize: 9 }, columnsCfg: ['MokaII', undefined, null, { text: 'Size', textAlign: 'left' }] });
13
11
  * ```
14
12
  */
15
13
  customizeColumnHeader(cfg: IColumnsHeaderCfgParam): void;
16
14
  /**
17
15
  * Customize the row header of the spreadsheet.
18
- *
19
16
  * @param {IRowsHeaderCfgParam} cfg The configuration of the row header.
20
- *
21
17
  * @example
22
18
  * ```typescript
23
- * customizeRowHeader({ headerStyle: { backgroundColor: 'pink', fontSize: 9 }, rowsCfg: ['MokaII', undefined, null, { text: 'Size', textAlign: 'left' }] });
19
+ * univerAPI.customizeRowHeader({ headerStyle: { backgroundColor: 'pink', fontSize: 9 }, rowsCfg: ['MokaII', undefined, null, { text: 'Size', textAlign: 'left' }] });
24
20
  * ```
25
21
  */
26
22
  customizeRowHeader(cfg: IRowsHeaderCfgParam): void;
27
23
  /**
28
24
  * Register sheet row header render extensions.
29
- *
30
25
  * @param {string} unitId The unit id of the spreadsheet.
31
26
  * @param {SheetExtension[]} extensions The extensions to register.
32
27
  * @returns {IDisposable} The disposable instance.
@@ -34,7 +29,6 @@ export interface IFUniverSheetsUIMixin {
34
29
  registerSheetRowHeaderExtension(unitId: string, ...extensions: SheetExtension[]): IDisposable;
35
30
  /**
36
31
  * Register sheet column header render extensions.
37
- *
38
32
  * @param {string} unitId The unit id of the spreadsheet.
39
33
  * @param {SheetExtension[]} extensions The extensions to register.
40
34
  * @returns {IDisposable} The disposable instance.
@@ -42,7 +36,6 @@ export interface IFUniverSheetsUIMixin {
42
36
  registerSheetColumnHeaderExtension(unitId: string, ...extensions: SheetExtension[]): IDisposable;
43
37
  /**
44
38
  * Register sheet main render extensions.
45
- *
46
39
  * @param {string} unitId The unit id of the spreadsheet.
47
40
  * @param {SheetExtension[]} extensions The extensions to register.
48
41
  * @returns {IDisposable} The disposable instance.
@@ -50,12 +43,25 @@ export interface IFUniverSheetsUIMixin {
50
43
  registerSheetMainExtension(unitId: string, ...extensions: SheetExtension[]): IDisposable;
51
44
  /**
52
45
  * Get sheet hooks.
53
- *
54
- * @returns {FSheetHooks} FSheetHooks instance
46
+ * @returns {FSheetHooks} FSheetHooks instance.
47
+ * @example
48
+ * ``` ts
49
+ * univerAPI.getSheetHooks();
50
+ * ```
55
51
  */
56
52
  getSheetHooks(): FSheetHooks;
57
53
  }
58
54
  export declare class FUniverSheetsUIMixin extends FUniver implements IFUniverSheetsUIMixin {
55
+ _initialize(injector: Injector): void;
56
+ private _generateClipboardCopyParam;
57
+ private _beforeClipboardChange;
58
+ private _clipboardChanged;
59
+ private _generateClipboardPasteParam;
60
+ private _generateClipboardPasteParamAsync;
61
+ private _beforeClipboardPaste;
62
+ private _clipboardPaste;
63
+ private _beforeClipboardPasteAsync;
64
+ private _clipboardPasteAsync;
59
65
  customizeColumnHeader(cfg: IColumnsHeaderCfgParam): void;
60
66
  customizeRowHeader(cfg: IRowsHeaderCfgParam): void;
61
67
  registerSheetRowHeaderExtension(unitId: string, ...extensions: SheetExtension[]): IDisposable;
@@ -63,9 +69,7 @@ export declare class FUniverSheetsUIMixin extends FUniver implements IFUniverShe
63
69
  registerSheetMainExtension(unitId: string, ...extensions: SheetExtension[]): IDisposable;
64
70
  /**
65
71
  * Get sheet render component from render by unitId and view key.
66
- *
67
72
  * @private
68
- *
69
73
  * @param {string} unitId The unit id of the spreadsheet.
70
74
  * @param {SHEET_VIEW_KEY} viewKey The view key of the spreadsheet.
71
75
  * @returns {Nullable<RenderComponentType>} The render component.
@@ -73,7 +77,6 @@ export declare class FUniverSheetsUIMixin extends FUniver implements IFUniverShe
73
77
  private _getSheetRenderComponent;
74
78
  /**
75
79
  * Get sheet hooks.
76
- *
77
80
  * @returns {FSheetHooks} FSheetHooks instance
78
81
  */
79
82
  getSheetHooks(): FSheetHooks;
@@ -5,32 +5,26 @@ import { IDialogPartMethodOptions, ISidebarMethodOptions } from '@univerjs/ui';
5
5
  export interface IFWorkbookSheetsUIMixin {
6
6
  /**
7
7
  * Open a sidebar.
8
- *
9
8
  * @deprecated
10
- *
11
9
  * @param params the sidebar options
12
10
  * @returns the disposable object
13
11
  */
14
12
  openSiderbar(params: ISidebarMethodOptions): IDisposable;
15
13
  /**
16
14
  * Open a dialog.
17
- *
18
15
  * @deprecated
19
- *
20
16
  * @param dialog the dialog options
21
17
  * @returns the disposable object
22
18
  */
23
19
  openDialog(dialog: IDialogPartMethodOptions): IDisposable;
24
20
  /**
25
21
  * Subscribe to cell click events
26
- *
27
22
  * @param callback - The callback function to be called when a cell is clicked
28
23
  * @returns A disposable object that can be used to unsubscribe from the event
29
24
  */
30
25
  onCellClick(callback: (cell: IHoverRichTextInfo) => void): IDisposable;
31
26
  /**
32
27
  * Subscribe cell hover events
33
- *
34
28
  * @param callback - The callback function to be called when a cell is hovered
35
29
  * @returns A disposable object that can be used to unsubscribe from the event
36
30
  */
@@ -53,56 +47,65 @@ export interface IFWorkbookSheetsUIMixin {
53
47
  /**
54
48
  * Start the editing process
55
49
  * @returns A boolean value
50
+ * @example
51
+ * ```ts
52
+ * univerAPI.getActiveWorkbook().startEditing();
53
+ * ```
56
54
  */
57
55
  startEditing(): boolean;
58
56
  /**
57
+ * Use endEditingAsync as instead
58
+ * @deprecated
59
59
  * End the editing process
60
60
  * @async
61
61
  * @param save - Whether to save the changes
62
62
  * @returns A promise that resolves to a boolean value
63
- */
64
- endEditing(save?: boolean): Promise<boolean>;
65
- /**
66
- * Get scroll state of specified sheet.
67
- * @returns {IScrollState} scroll state
68
63
  * @example
69
64
  * ``` ts
70
- * univerAPI.getActiveWorkbook().getScrollStateBySheetId($sheetId)
65
+ * univerAPI.getActiveWorkbook().endEditing(true);
71
66
  * ```
72
67
  */
68
+ endEditing(save?: boolean): Promise<boolean>;
69
+ /**
70
+ * @async
71
+ * @param {boolean} save - Whether to save the changes, default is true
72
+ * @returns {Promise<boolean>} A promise that resolves to a boolean value
73
+ */
74
+ endEditingAsync(save?: boolean): Promise<boolean>;
73
75
  getScrollStateBySheetId(sheetId: string): Nullable<IScrollState>;
74
76
  /**
75
77
  * Disable selection. After disabled, there would be no response for selection.
78
+ * @returns {FWorkbook} FWorkbook instance
76
79
  * @example
77
- * ```
80
+ * ```ts
78
81
  * univerAPI.getActiveWorkbook().disableSelection();
79
82
  * ```
80
83
  */
81
- disableSelection(): void;
84
+ disableSelection(): FWorkbook;
82
85
  /**
83
86
  * Enable selection. After this you can select range.
84
87
  * @example
85
- * ```
88
+ * ```ts
86
89
  * univerAPI.getActiveWorkbook().enableSelection();
87
90
  * ```
88
91
  */
89
- enableSelection(): void;
92
+ enableSelection(): FWorkbook;
90
93
  /**
91
94
  * Set selection invisible, Unlike disableSelection, selection still works, you just can not see them.
92
95
  * @example
93
- * ```
96
+ * ```ts
94
97
  * univerAPI.getActiveWorkbook().transparentSelection();
95
98
  * ```
96
99
  */
97
- transparentSelection(): void;
100
+ transparentSelection(): FWorkbook;
98
101
  /**
99
102
  * Set selection visible.
100
103
  * @example
101
- * ```
104
+ * ```ts
102
105
  * univerAPI.getActiveWorkbook().showSelection();
103
106
  * ```
104
107
  */
105
- showSelection(): void;
108
+ showSelection(): FWorkbook;
106
109
  }
107
110
  export declare class FWorkbookSheetsUIMixin extends FWorkbook implements IFWorkbookSheetsUIMixin {
108
111
  openSiderbar(params: ISidebarMethodOptions): IDisposable;
@@ -115,11 +118,21 @@ export declare class FWorkbookSheetsUIMixin extends FWorkbook implements IFWorkb
115
118
  onPointerMove(callback: (cell: Nullable<ICellPosWithEvent>, buttons: number) => void): IDisposable;
116
119
  startEditing(): boolean;
117
120
  endEditing(save?: boolean): Promise<boolean>;
121
+ endEditingAsync(save?: boolean): Promise<boolean>;
122
+ /**
123
+ * Get scroll state of specified sheet.
124
+ * @param {string} sheetId - sheet id
125
+ * @returns {IScrollState} scroll state
126
+ * @example
127
+ * ``` ts
128
+ * univerAPI.getActiveWorkbook().getScrollStateBySheetId($sheetId)
129
+ * ```
130
+ */
118
131
  getScrollStateBySheetId(sheetId: string): Nullable<IScrollState>;
119
- disableSelection(): void;
120
- enableSelection(): void;
121
- transparentSelection(): void;
122
- showSelection(): void;
132
+ disableSelection(): FWorkbook;
133
+ enableSelection(): FWorkbook;
134
+ transparentSelection(): FWorkbook;
135
+ showSelection(): FWorkbook;
123
136
  }
124
137
  declare module '@univerjs/sheets/facade' {
125
138
  interface FWorkbook extends IFWorkbookSheetsUIMixin {
@@ -5,7 +5,7 @@ export interface IFWorksheetSkeletonMixin {
5
5
  /**
6
6
  * Refresh the canvas.
7
7
  */
8
- refreshCanvas(): void;
8
+ refreshCanvas(): FWorksheet;
9
9
  /**
10
10
  * Set zoom ratio of the worksheet.
11
11
  * @param {number} zoomRatio The zoom ratio to set.It should be in the range of 10 to 400.
@@ -19,7 +19,7 @@ export interface IFWorksheetSkeletonMixin {
19
19
  * console.log(zoomRatio); // 200
20
20
  * ```
21
21
  */
22
- zoom(zoomRatio: number): Promise<boolean>;
22
+ zoom(zoomRatio: number): FWorksheet;
23
23
  /**
24
24
  * Get the zoom ratio of the worksheet.
25
25
  * @returns The zoom ratio of the worksheet.
@@ -34,15 +34,27 @@ export interface IFWorksheetSkeletonMixin {
34
34
  getZoom(): number;
35
35
  /**
36
36
  * Return visible range, sum view range of 4 viewports.
37
- * @returns IRange
37
+ * @returns {IRange} - visible range
38
+ * @example
39
+ * ``` ts
40
+ * const fWorkbook = univerAPI.getActiveWorkbook();
41
+ * const fWorksheet = fWorkbook.getActiveSheet();
42
+ * const visibleRange = fWorksheet.getVisibleRange();
43
+ * ```
38
44
  */
39
45
  getVisibleRange(): IRange;
40
46
  /**
41
- * Scroll spreadsheet to cell position. Based on the limitations of viewport and the number of rows and columns, you can only scroll to the maximum scrollable range.
42
- * @param row
43
- * @param column
47
+ * Scroll spreadsheet(viewMain) to cell position. Make the cell at topleft of current viewport.
48
+ * Based on the limitations of viewport and the number of rows and columns, you can only scroll to the maximum scrollable range.
49
+ * @param {number} row - Cell row index
50
+ * @param {number} column - Cell column index
51
+ * @returns {FWorksheet} - Current worksheet
52
+ * @example
53
+ * ``` ts
54
+ * univerAPI.getActiveWorkbook().getActiveSheet().scrollToCell(1, 1);
55
+ * ```
44
56
  */
45
- scrollToCell(row: number, column: number): void;
57
+ scrollToCell(row: number, column: number): FWorksheet;
46
58
  /**
47
59
  * Get scroll state of current sheet.
48
60
  * @returns {IScrollState} curr scroll state
@@ -51,10 +63,11 @@ export interface IFWorksheetSkeletonMixin {
51
63
  * univerAPI.getActiveWorkbook().getActiveSheet().getScrollState()
52
64
  * ```
53
65
  */
54
- getScrollState(): Nullable<IScrollState>;
66
+ getScrollState(): IScrollState;
55
67
  /**
56
68
  * Invoked when scrolling the sheet.
57
- * @param {function(params: Nullable<IViewportScrollState>): void} callback The scrolling callback function.
69
+ * @param {function(Nullable<IViewportScrollState>): void} callback The scrolling callback function.
70
+ * @returns {IDisposable} The disposable object to remove the event listener.
58
71
  * @example
59
72
  * ``` ts
60
73
  * univerAPI.getActiveWorkbook().getActiveSheet().onScroll((params) => {...})
@@ -63,12 +76,12 @@ export interface IFWorksheetSkeletonMixin {
63
76
  onScroll(callback: (params: Nullable<IViewportScrollState>) => void): IDisposable;
64
77
  }
65
78
  export declare class FWorksheetSkeletonMixin extends FWorksheet implements IFWorksheetSkeletonMixin {
66
- refreshCanvas(): void;
67
- zoom(zoomRatio: number): Promise<boolean>;
79
+ refreshCanvas(): FWorksheet;
80
+ zoom(zoomRatio: number): FWorksheet;
68
81
  getZoom(): number;
69
82
  getVisibleRange(): IRange;
70
- scrollToCell(row: number, column: number): void;
71
- getScrollState(): Nullable<IScrollState>;
83
+ scrollToCell(row: number, column: number): FWorksheet;
84
+ getScrollState(): IScrollState;
72
85
  onScroll(callback: (params: Nullable<IViewportScrollState>) => void): IDisposable;
73
86
  }
74
87
  declare module '@univerjs/sheets/facade' {
@@ -18,6 +18,7 @@ import './f-workbook';
18
18
  import './f-worksheet';
19
19
  import './f-permission';
20
20
  import './f-sheet-hooks';
21
+ import './f-event';
21
22
  export { type IFComponentKey, transformComponentKey } from './f-range';
22
23
  export type * from './f-permission';
23
24
  export type * from './f-sheet-hooks';
@@ -15,23 +15,14 @@
15
15
  */
16
16
  import './global.css';
17
17
  export { getEditorObject } from './basics/editor/get-editor-object';
18
- export { EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY, RANGE_SELECTOR_COMPONENT_KEY, SHEET_VIEW_KEY } from './common/keys';
19
18
  export { useActiveWorkbook, useActiveWorksheet, useWorkbooks } from './components/hook';
20
19
  export { SHEET_UI_PLUGIN_NAME } from './consts/plugin-name';
21
20
  export { SheetsUIPart } from './consts/ui-name';
22
21
  export { AutoFillController } from './controllers/auto-fill.controller';
23
- export { AFFECT_LAYOUT_STYLES, AutoHeightController } from './controllers/auto-height.controller';
24
- export { AutoWidthController } from './controllers/auto-width.controller';
25
22
  export { CellCustomRenderController } from './controllers/cell-custom-render.controller';
26
- export { type IUniverSheetsUIConfig } from './controllers/config.schema';
27
- export { DragRenderController } from './controllers/drag-render.controller';
28
23
  export { EditingRenderController } from './controllers/editor/editing.render-controller';
29
- export { FormulaEditorController } from './controllers/editor/formula-editor.controller';
30
- export { HoverRenderController } from './controllers/hover-render.controller';
31
24
  export { PASTE_SPECIAL_MENU_ID, SheetMenuPosition } from './controllers/menu/menu';
32
25
  export { deriveStateFromActiveSheet$, getCurrentExclusiveRangeInterest$, getCurrentRangeDisable$, getObservableWithExclusiveRange$ } from './controllers/menu/menu-util';
33
- export { SheetPermissionInitController } from './controllers/permission/sheet-permission-init.controller';
34
- export { SheetPermissionInterceptorBaseController } from './controllers/permission/sheet-permission-interceptor-base.controller';
35
26
  export { HeaderFreezeRenderController } from './controllers/render-controllers/freeze.render-controller';
36
27
  export { HeaderMoveRenderController } from './controllers/render-controllers/header-move.render-controller';
37
28
  export { HeaderResizeRenderController } from './controllers/render-controllers/header-resize.render-controller';
@@ -39,10 +30,7 @@ export { SheetsScrollRenderController } from './controllers/render-controllers/s
39
30
  export { SheetRenderController } from './controllers/render-controllers/sheet.render-controller';
40
31
  export { SheetUIController } from './controllers/sheet-ui.controller';
41
32
  export { whenFormulaEditorActivated, whenSheetEditorFocused } from './controllers/shortcuts/utils';
42
- export { StatusBarController } from './controllers/status-bar.controller';
43
33
  export { getCoordByCell, getCoordByOffset, getSheetObject, getTransformCoord, } from './controllers/utils/component-tools';
44
- export { discreteRangeToRange, rangeToDiscreteRange, virtualizeDiscreteRanges } from './controllers/utils/range-tools';
45
- export type { IDiscreteRange } from './controllers/utils/range-tools';
46
34
  export { matchedSelectionByRowColIndex as checkInHeaderRanges } from './controllers/utils/selections-tools';
47
35
  export { useHighlightRange } from './hooks/useHighlightRange';
48
36
  export { UniverSheetsMobileUIPlugin } from './mobile-plugin';
@@ -65,6 +53,16 @@ export { IFormulaEditorManagerService } from './services/editor/formula-editor-m
65
53
  export { HoverManagerService } from './services/hover-manager.service';
66
54
  export type { ICellPosWithEvent, IHoverCellPosition, IHoverRichTextInfo, IHoverRichTextPosition } from './services/hover-manager.service';
67
55
  export { IMarkSelectionService, MarkSelectionService } from './services/mark-selection/mark-selection.service';
56
+ export { HoverRenderController } from './controllers/hover-render.controller';
57
+ export { DragRenderController } from './controllers/drag-render.controller';
58
+ export { EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY, RANGE_SELECTOR_COMPONENT_KEY, SHEET_VIEW_KEY } from './common/keys';
59
+ export type { IDiscreteRange } from './controllers/utils/range-tools';
60
+ export { discreteRangeToRange, rangeToDiscreteRange, virtualizeDiscreteRanges } from './controllers/utils/range-tools';
61
+ export { AFFECT_LAYOUT_STYLES, AutoHeightController } from './controllers/auto-height.controller';
62
+ export { AutoWidthController } from './controllers/auto-width.controller';
63
+ export { FormulaEditorController } from './controllers/editor/formula-editor.controller';
64
+ export { StatusBarController } from './controllers/status-bar.controller';
65
+ export { SheetPermissionCheckUIController } from './controllers/permission/sheet-permission-check-ui.controller';
68
66
  export { SheetPermissionUserManagerService } from './services/permission/sheet-permission-user-list.service';
69
67
  export { SheetPrintInterceptorService } from './services/print-interceptor.service';
70
68
  export { SheetScrollManagerService } from './services/scroll-manager.service';
@@ -82,6 +80,8 @@ export { MobileSheetBar } from './views/mobile/sheet-bar/MobileSheetBar';
82
80
  export type { IRangeProtectionRenderCellData } from './views/permission/extensions/range-protection.render';
83
81
  export { SheetBar } from './views/sheet-bar/SheetBar';
84
82
  export { RenderSheetContent, RenderSheetFooter, RenderSheetHeader } from './views/sheet-container/SheetContainer';
83
+ export { SheetPermissionInitController } from '@univerjs/sheets/controllers/permission/sheet-permission-init.controller.js';
84
+ export { type IUniverSheetsUIConfig } from './controllers/config.schema';
85
85
  export { getCellRealRange } from './common/utils';
86
86
  export { FONT_FAMILY_COMPONENT, FONT_FAMILY_ITEM_COMPONENT } from './components/font-family/interface';
87
87
  export { FONT_SIZE_COMPONENT } from './components/font-size/interface';
@@ -94,7 +94,7 @@ export type { IFormatPainterBeforeApplyHookParams, IFormatPainterHook } from './
94
94
  export { SELECTION_SHAPE_DEPTH } from './services/selection/const';
95
95
  export { type IBaseSheetBarProps } from './views/sheet-bar/sheet-bar-tabs/SheetBarItem';
96
96
  export { AutoClearContentCommand, AutoFillCommand } from './commands/commands/auto-fill.command';
97
- export { type ISheetPasteParams, SheetCopyCommand, SheetCutCommand, SheetPasteBesidesBorderCommand, SheetPasteColWidthCommand, SheetPasteCommand, SheetPasteFormatCommand, SheetPasteShortKeyCommand, SheetPasteValueCommand, } from './commands/commands/clipboard.command';
97
+ export { type ISheetPasteByShortKeyParams, type ISheetPasteParams, SheetCopyCommand, SheetCutCommand, SheetPasteBesidesBorderCommand, SheetPasteColWidthCommand, SheetPasteCommand, SheetPasteFormatCommand, SheetPasteShortKeyCommand, SheetPasteValueCommand, } from './commands/commands/clipboard.command';
98
98
  export { DeleteRangeMoveLeftConfirmCommand } from './commands/commands/delete-range-move-left-confirm.command';
99
99
  export { DeleteRangeMoveUpConfirmCommand } from './commands/commands/delete-range-move-up-confirm.command';
100
100
  export { HideColConfirmCommand, HideRowConfirmCommand } from './commands/commands/hide-row-col-confirm.command';
@@ -12,11 +12,19 @@ export interface IScrollState {
12
12
  */
13
13
  offsetY: number;
14
14
  /**
15
- * current start row in viewport visible area
15
+ * Current start row in viewportMain in canvas, NOT the first row of visible area of current viewport after freeze.
16
+ * e.g. If no freeze, it's the same as startRow in current viewport.
17
+ * If freeze, this value is smaller than the first row of visible area. Just pretend that viewMainTop does not exist.
18
+ *
19
+ * e.g. If row 1 ~ 2 is frozen, the first row if viewMain is 3, but sheetViewStartRow still 0.
16
20
  */
17
21
  sheetViewStartRow: number;
18
22
  /**
19
- * current start column in viewport visible area
23
+ * Current start column in viewportMain in canvas, NOT the first column of visible area of current viewport after freeze.
24
+ * e.g. If no freeze, it's the same as startColumn in current viewport.
25
+ * If freeze, this value is smaller than the first column of visible area. Just pretend that viewMainLeft does not exist.
26
+ *
27
+ * e.g. If column A ~ C is frozen, the first column of viewMain is D, but sheetViewStartColumn still 0.
20
28
  */
21
29
  sheetViewStartColumn: number;
22
30
  }
@@ -74,8 +82,8 @@ export declare class SheetScrollManagerService implements IRenderModule {
74
82
  dispose(): void;
75
83
  setSearchParam(param: IScrollStateSearchParam): void;
76
84
  setSearchParamAndRefresh(param: IScrollStateSearchParam): void;
77
- getScrollStateByParam(param: IScrollStateSearchParam): Readonly<Nullable<IScrollState>>;
78
- getCurrentScrollState(): Readonly<Nullable<IScrollState>>;
85
+ getScrollStateByParam(param: IScrollStateSearchParam): Readonly<IScrollState>;
86
+ getCurrentScrollState(): Readonly<IScrollState>;
79
87
  /**
80
88
  * Set scrollInfo by SetScrollOperation, call by ScrollCommand.id.
81
89
  * @param param
@@ -1,5 +1,5 @@
1
- import { default as React } from 'react';
2
1
  import { ICanvasPopup } from '../../services/canvas-pop-manager.service';
2
+ import { default as React } from 'react';
3
3
  export declare function CellAlert({ popup }: {
4
4
  popup: ICanvasPopup;
5
5
  }): React.JSX.Element | null;
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(a,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("@univerjs/sheets-ui"),require("@univerjs/sheets/facade"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","@univerjs/sheets-ui","@univerjs/sheets/facade","@univerjs/ui","rxjs","@univerjs/sheets"],i):(a=typeof globalThis<"u"?globalThis:a||self,i(a.UniverSheetsUiFacade={},a.UniverCore,a.UniverEngineRender,a.UniverSheetsUi,a.UniverSheetsFacade,a.UniverUi,a.rxjs,a.UniverSheets))})(this,function(a,i,c,o,l,S,v,m){"use strict";class I extends i.FUniver{customizeColumnHeader(e){const t=this.getActiveWorkbook();if(!t){console.error("WorkBook not exist");return}const r=t==null?void 0:t.getId();this._getSheetRenderComponent(r,o.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){const t=this.getActiveWorkbook();if(!t){console.error("WorkBook not exist");return}const r=t==null?void 0:t.getId();this._getSheetRenderComponent(r,o.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...t){const r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.ROW),n=r.register(...t);return i.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...t){const r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.COLUMN),n=r.register(...t);return i.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}registerSheetMainExtension(e,...t){const r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.MAIN),n=r.register(...t);return i.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}_getSheetRenderComponent(e,t){const n=this._injector.get(c.IRenderManagerService).getRenderById(e);if(!n)throw new Error(`Render Unit with unitId ${e} not found`);const{components:s}=n,d=s.get(t);if(!d)throw new Error("Render component not found");return d}getSheetHooks(){return this._injector.createInstance(l.FSheetHooks)}}i.FUniver.extend(I);class C extends l.FWorkbook{openSiderbar(e){return this._logDeprecation("openSiderbar"),this._injector.get(S.ISidebarService).open(e)}openDialog(e){this._logDeprecation("openDialog");const r=this._injector.get(S.IDialogService).open({...e,onClose:()=>{r.dispose()}});return r}_logDeprecation(e){this._injector.get(i.ILogService).warn("[FWorkbook]",`${e} is deprecated. Please use the function of the same name on "FUniver".`)}onCellClick(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentClickedCell$.pipe(v.filter(r=>!!r)).subscribe(e))}onCellHover(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentRichText$.pipe(v.filter(r=>!!r)).subscribe(e))}onCellPointerDown(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentPointerUpCell$.subscribe(e))}onPointerMove(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentCellPosWithEvent$.pipe(v.filter(r=>!!r)).subscribe(r=>{e(r,r.event.buttons)}))}startEditing(){return this._injector.get(i.ICommandService).syncExecuteCommand(o.SetCellEditVisibleOperation.id,{eventType:c.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){return this._injector.get(i.ICommandService).syncExecuteCommand(o.SetCellEditVisibleOperation.id,{eventType:c.DeviceInputEventType.Keyboard,keycode:e?S.KeyCode.ENTER:S.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await i.awaitTime(0),!0}getScrollStateBySheetId(e){const t=this._workbook.getUnitId(),n=this._injector.get(c.IRenderManagerService).getRenderById(t);return n?n.with(o.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:e}):null}disableSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(c.IRenderManagerService).getRenderById(e);r&&r.with(o.ISheetSelectionRenderService).disableSelection()}enableSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(c.IRenderManagerService).getRenderById(e);r&&r.with(o.ISheetSelectionRenderService).enableSelection()}transparentSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(c.IRenderManagerService).getRenderById(e);r&&r.with(o.ISheetSelectionRenderService).transparentSelection()}showSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(c.IRenderManagerService).getRenderById(e);r&&r.with(o.ISheetSelectionRenderService).showSelection()}}l.FWorkbook.extend(C);class _ extends l.FWorksheet{refreshCanvas(){const e=this._injector.get(c.IRenderManagerService),t=this._fWorkbook.id,r=e.getRenderById(t);if(!r)throw new Error(`Render Unit with unitId ${t} not found`);r.with(o.SheetSkeletonManagerService).reCalculate();const n=r.mainComponent;if(!n)throw new Error("Main component not found");n.makeDirty()}zoom(e){return this._injector.get(i.ICommandService).executeCommand(o.ChangeZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:e})}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const e=this._workbook.getUnitId(),r=this._injector.get(c.IRenderManagerService).getRenderById(e);let n={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!r)return n;const d=r.with(o.SheetSkeletonManagerService).getCurrentSkeleton();if(!d)return n;const h=d==null?void 0:d.getVisibleRanges();if(!h)return n;n=d.getVisibleRangeByViewport(c.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[w,u]of h)c.sheetContentViewportKeys.indexOf(w)!==-1&&(n.startColumn=Math.min(n.startColumn,u.startColumn),n.startRow=Math.min(n.startRow,u.startRow),n.endColumn=Math.max(n.endColumn,u.endColumn),n.endRow=Math.max(n.endRow,u.endRow));return n}scrollToCell(e,t){const r=this._workbook.getUnitId(),s=this._injector.get(c.IRenderManagerService).getRenderById(r);s&&(s==null?void 0:s.with(o.SheetsScrollRenderController)).scrollToCell(e,t)}getScrollState(){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),n=this._injector.get(c.IRenderManagerService).getRenderById(e);return n?n.with(o.SheetScrollManagerService).getScrollStateByParam({unitId:e,sheetId:t}):null}onScroll(e){var s;const t=this._workbook.getUnitId(),n=(s=this._injector.get(c.IRenderManagerService).getRenderById(t))==null?void 0:s.with(o.SheetScrollManagerService);if(n){const d=n.validViewportScrollInfo$.subscribe(h=>{e(h)});return i.toDisposable(d)}return i.toDisposable(()=>{})}}l.FWorksheet.extend(_);class k extends l.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}l.FPermission.extend(k);class b extends l.FSheetHooks{onCellPointerMove(e){return i.toDisposable(this._injector.get(o.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return i.toDisposable(this._injector.get(o.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return i.toDisposable(this._injector.get(o.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return i.toDisposable(this._injector.get(o.DragManagerService).endCell$.subscribe(e))}onCellRender(e,t=i.InterceptorEffectEnum.Style,r=m.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(m.SheetInterceptorService).intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t,handler:(n,s,d)=>d({...n,customRender:[...(n==null?void 0:n.customRender)||[],...e||[]]}),priority:r})}onBeforeCellEdit(e){return this._injector.get(i.ICommandService).beforeCommandExecuted(t=>{const r=t.params;t.id===o.SetCellEditVisibleOperation.id&&r.visible&&e(r)})}onAfterCellEdit(e){return this._injector.get(i.ICommandService).onCommandExecuted(t=>{const r=t.params;t.id===o.SetCellEditVisibleOperation.id&&!r.visible&&e(r)})}}l.FSheetHooks.extend(b);class M extends l.FRange{getCell(){const e=this._injector.get(c.IRenderManagerService),t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return e.getRenderById(t).with(o.SheetSkeletonManagerService).getWorksheetSkeleton(r).skeleton.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:e,startY:t,endX:r,endY:n}=this.getCell(),s={x:e,y:t,width:r-e,height:n-t,top:t,left:e,bottom:n,right:r};return{...s,toJSON:()=>JSON.stringify(s)}}generateHTML(){var t;const e=this._injector.get(o.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(t=e==null?void 0:e.html)!=null?t:""}attachPopup(e){const{key:t,disposableCollection:r}=p(e,this._injector.get(S.ComponentManager)),s=this._injector.get(o.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:t},this.getUnitId(),this._worksheet.getSheetId());return s?(r.add(s),r):(r.dispose(),null)}attachAlertPopup(e){const t=this._injector.get(o.CellAlertManagerService),r={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return t.showAlert({...e,location:r}),{dispose:()=>{t.removeAlert(e.key)}}}highlight(e,t){const r=this._injector.get(o.IMarkSelectionService),n=r.addShape({range:this._range,style:e,primary:t});if(!n)throw new Error("Failed to highlight current range");return i.toDisposable(()=>{r.removeShape(n)})}}l.FRange.extend(M);function p(g,e){const{componentKey:t,isVue3:r}=g;let n;const s=new i.DisposableCollection;return typeof t=="string"?n=t:(n=`External_${i.generateRandomId(6)}`,s.add(e.register(n,t,{framework:r?"vue3":"react"}))),{key:n,disposableCollection:s}}a.transformComponentKey=p,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})});
1
+ (function(l,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("@univerjs/sheets-ui"),require("@univerjs/sheets/facade"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","@univerjs/sheets-ui","@univerjs/sheets/facade","@univerjs/ui","rxjs","@univerjs/sheets"],i):(l=typeof globalThis<"u"?globalThis:l||self,i(l.UniverSheetsUiFacade={},l.UniverCore,l.UniverEngineRender,l.UniverSheetsUi,l.UniverSheetsFacade,l.UniverUi,l.rxjs,l.UniverSheets))})(this,function(l,i,d,o,g,c,p,m){"use strict";class I extends i.FUniver{_initialize(e){const t=e.get(i.ICommandService);this.disposeWithMe(t.beforeCommandExecuted(r=>{switch(r.id){case c.CopyCommand.id:case c.CutCommand.id:this._beforeClipboardChange();break;case o.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(r.params);break}})),this.disposeWithMe(t.onCommandExecuted(r=>{switch(r.id){case c.CopyCommand.id:case c.CutCommand.id:this._clipboardChanged();break;case o.SheetPasteShortKeyCommand.id:this._clipboardPaste();break;case c.PasteCommand.id:this._clipboardPasteAsync();break}})),this.disposeWithMe(t.beforeCommandExecuted(async r=>{switch(r.id){case c.PasteCommand.id:await this._beforeClipboardPasteAsync();break}}))}_generateClipboardCopyParam(){const e=this.getActiveUniverSheet(),t=e==null?void 0:e.getActiveSheet(),r=e==null?void 0:e.getActiveRange();if(!e||!t||!r)return;const s=this._injector.get(o.ISheetClipboardService).generateCopyContent(e.getId(),t.getSheetId(),r.getRange());if(!s)return;const{html:a,plain:h}=s;return{workbook:e,worksheet:t,text:h,html:a,fromSheet:t,fromRange:r}}_beforeClipboardChange(){if(!this.hasEventCallback(this.Event.BeforeClipboardChange))return;const e=this._generateClipboardCopyParam();if(e&&(this.fireEvent(this.Event.BeforeClipboardChange,e),e.cancel))throw new Error("Before clipboard change is canceled")}_clipboardChanged(){if(!this.hasEventCallback(this.Event.ClipboardChanged))return;const e=this._generateClipboardCopyParam();if(e&&(this.fireEvent(this.Event.ClipboardChanged,e),e.cancel))throw new Error("Clipboard changed is canceled")}_generateClipboardPasteParam(e){if(!e)return;const{htmlContent:t,textContent:r}=e,n=this.getActiveUniverSheet(),s=n==null?void 0:n.getActiveSheet();return!n||!s?void 0:{workbook:n,worksheet:s,text:r,html:t}}async _generateClipboardPasteParamAsync(){const e=this.getActiveUniverSheet(),t=e==null?void 0:e.getActiveSheet();if(!e||!t)return;const s=(await this._injector.get(c.IClipboardInterfaceService).read())[0];let a;if(s){const h=s.types,v=h.indexOf(c.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await s.getType(c.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(C=>C&&C.text()):"",u=h.indexOf(c.HTML_CLIPBOARD_MIME_TYPE)!==-1?await s.getType(c.HTML_CLIPBOARD_MIME_TYPE).then(C=>C&&C.text()):"";a={workbook:e,worksheet:t,text:v,html:u}}return a}_beforeClipboardPaste(e){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;const t=this._generateClipboardPasteParam(e);if(t&&(this.fireEvent(this.Event.BeforeClipboardPaste,t),t.cancel))throw new Error("Before clipboard paste is canceled")}_clipboardPaste(e){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;const t=this._generateClipboardPasteParam(e);if(t&&(this.fireEvent(this.Event.BeforeClipboardPaste,t),t.cancel))throw new Error("Clipboard pasted is canceled")}async _beforeClipboardPasteAsync(){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;if(!c.supportClipboardAPI()){this._injector.get(i.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.BeforeClipboardPaste,e),e.cancel))throw new Error("Before clipboard paste is canceled")}async _clipboardPasteAsync(){if(!this.hasEventCallback(this.Event.ClipboardPasted))return;if(!c.supportClipboardAPI()){this._injector.get(i.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.ClipboardPasted,e),e.cancel))throw new Error("Clipboard pasted is canceled")}customizeColumnHeader(e){const t=this.getActiveWorkbook();if(!t){console.error("WorkBook not exist");return}const r=t==null?void 0:t.getId();this._getSheetRenderComponent(r,o.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){const t=this.getActiveWorkbook();if(!t){console.error("WorkBook not exist");return}const r=t==null?void 0:t.getId();this._getSheetRenderComponent(r,o.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...t){const r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.ROW),n=r.register(...t);return i.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...t){const r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.COLUMN),n=r.register(...t);return i.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}registerSheetMainExtension(e,...t){const r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.MAIN),n=r.register(...t);return i.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}_getSheetRenderComponent(e,t){const n=this._injector.get(d.IRenderManagerService).getRenderById(e);if(!n)throw new Error(`Render Unit with unitId ${e} not found`);const{components:s}=n,a=s.get(t);if(!a)throw new Error("Render component not found");return a}getSheetHooks(){return this._injector.createInstance(g.FSheetHooks)}}i.FUniver.extend(I);class _ extends g.FWorkbook{openSiderbar(e){return this._logDeprecation("openSiderbar"),this._injector.get(c.ISidebarService).open(e)}openDialog(e){this._logDeprecation("openDialog");const r=this._injector.get(c.IDialogService).open({...e,onClose:()=>{r.dispose()}});return r}_logDeprecation(e){this._injector.get(i.ILogService).warn("[FWorkbook]",`${e} is deprecated. Please use the function of the same name on "FUniver".`)}onCellClick(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentClickedCell$.pipe(p.filter(r=>!!r)).subscribe(e))}onCellHover(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentRichText$.pipe(p.filter(r=>!!r)).subscribe(e))}onCellPointerDown(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentPointerUpCell$.subscribe(e))}onPointerMove(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentCellPosWithEvent$.pipe(p.filter(r=>!!r)).subscribe(r=>{e(r,r.event.buttons)}))}startEditing(){return this._injector.get(i.ICommandService).syncExecuteCommand(o.SetCellEditVisibleOperation.id,{eventType:d.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){return this._injector.get(i.ICommandService).syncExecuteCommand(o.SetCellEditVisibleOperation.id,{eventType:d.DeviceInputEventType.Keyboard,keycode:e?c.KeyCode.ENTER:c.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await i.awaitTime(0),!0}endEditingAsync(e=!0){return this.endEditing(e)}getScrollStateBySheetId(e){const t=this._workbook.getUnitId(),n=this._injector.get(d.IRenderManagerService).getRenderById(t);return n?n.with(o.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:e}):null}disableSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(o.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(o.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(o.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(o.ISheetSelectionRenderService).showSelection(),this}}g.FWorkbook.extend(_);class f extends g.FWorksheet{refreshCanvas(){const e=this._injector.get(d.IRenderManagerService),t=this._fWorkbook.id,r=e.getRenderById(t);if(!r)throw new Error(`Render Unit with unitId ${t} not found`);r.with(o.SheetSkeletonManagerService).reCalculate();const n=r.mainComponent;if(!n)throw new Error("Main component not found");return n.makeDirty(),this}zoom(e){return this._injector.get(i.ICommandService).syncExecuteCommand(o.ChangeZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:e}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);let n={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!r)return n;const a=r.with(o.SheetSkeletonManagerService).getCurrentSkeleton();if(!a)return n;const h=a==null?void 0:a.getVisibleRanges();if(!h)return n;n=a.getVisibleRangeByViewport(d.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[v,u]of h)d.sheetContentViewportKeys.indexOf(v)!==-1&&(n.startColumn=Math.min(n.startColumn,u.startColumn),n.startRow=Math.min(n.startRow,u.startRow),n.endColumn=Math.max(n.endColumn,u.endColumn),n.endRow=Math.max(n.endRow,u.endRow));return n}scrollToCell(e,t){const r=this._workbook.getUnitId(),s=this._injector.get(d.IRenderManagerService).getRenderById(r);return s&&(s==null?void 0:s.with(o.SheetsScrollRenderController)).scrollToCell(e,t),this}getScrollState(){const e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),s=this._injector.get(d.IRenderManagerService).getRenderById(t);return s&&s.with(o.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:r})||e}onScroll(e){var s;const t=this._workbook.getUnitId(),n=(s=this._injector.get(d.IRenderManagerService).getRenderById(t))==null?void 0:s.with(o.SheetScrollManagerService);if(n){const a=n.validViewportScrollInfo$.subscribe(h=>{e(h)});return i.toDisposable(a)}return i.toDisposable(()=>{})}}g.FWorksheet.extend(f);class E extends g.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}g.FPermission.extend(E);class w extends g.FSheetHooks{onCellPointerMove(e){return i.toDisposable(this._injector.get(o.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return i.toDisposable(this._injector.get(o.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return i.toDisposable(this._injector.get(o.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return i.toDisposable(this._injector.get(o.DragManagerService).endCell$.subscribe(e))}onCellRender(e,t=i.InterceptorEffectEnum.Style,r=m.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(m.SheetInterceptorService).intercept(m.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t,handler:(n,s,a)=>a({...n,customRender:[...(n==null?void 0:n.customRender)||[],...e||[]]}),priority:r})}onBeforeCellEdit(e){return this._injector.get(i.ICommandService).beforeCommandExecuted(t=>{const r=t.params;t.id===o.SetCellEditVisibleOperation.id&&r.visible&&e(r)})}onAfterCellEdit(e){return this._injector.get(i.ICommandService).onCommandExecuted(t=>{const r=t.params;t.id===o.SetCellEditVisibleOperation.id&&!r.visible&&e(r)})}}g.FSheetHooks.extend(w);class k extends i.FEventName{get BeforeClipboardChange(){return"BeforeClipboardChange"}get ClipboardChanged(){return"ClipboardChanged"}get BeforeClipboardPaste(){return"BeforeClipboardPaste"}get ClipboardPasted(){return"ClipboardPasted"}}i.FEventName.extend(k);class M extends g.FRange{getCell(){const e=this._injector.get(d.IRenderManagerService),t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return e.getRenderById(t).with(o.SheetSkeletonManagerService).getWorksheetSkeleton(r).skeleton.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:e,startY:t,endX:r,endY:n}=this.getCell(),s={x:e,y:t,width:r-e,height:n-t,top:t,left:e,bottom:n,right:r};return{...s,toJSON:()=>JSON.stringify(s)}}generateHTML(){var t;const e=this._injector.get(o.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(t=e==null?void 0:e.html)!=null?t:""}attachPopup(e){var a,h,v;e.direction=(a=e.direction)!=null?a:"horizontal",e.extraProps=(h=e.extraProps)!=null?h:{},e.offset=(v=e.offset)!=null?v:[0,0];const{key:t,disposableCollection:r}=b(e,this._injector.get(c.ComponentManager)),s=this._injector.get(o.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:t},this.getUnitId(),this._worksheet.getSheetId());return s?(r.add(s),r):(r.dispose(),null)}attachAlertPopup(e){const t=this._injector.get(o.CellAlertManagerService),r={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return t.showAlert({...e,location:r}),{dispose:()=>{t.removeAlert(e.key)}}}highlight(e,t){const r=this._injector.get(o.IMarkSelectionService),n=r.addShape({range:this._range,style:e,primary:t});if(!n)throw new Error("Failed to highlight current range");return i.toDisposable(()=>{r.removeShape(n)})}}g.FRange.extend(M);function b(S,e){const{componentKey:t,isVue3:r}=S;let n;const s=new i.DisposableCollection;return typeof t=="string"?n=t:(n=`External_${i.generateRandomId(6)}`,s.add(e.register(n,t,{framework:r?"vue3":"react"}))),{key:n,disposableCollection:s}}l.transformComponentKey=b,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});