@univerjs/sheets-ui 0.5.3 → 0.5.4
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/facade.js +1 -1
- package/lib/cjs/index.js +30 -28
- package/lib/es/facade.js +490 -117
- package/lib/es/index.js +10728 -11062
- package/lib/index.css +1 -1
- package/lib/types/commands/commands/clipboard.command.d.ts +1 -0
- package/lib/types/components/hook.d.ts +2 -0
- package/lib/types/controllers/clipboard/clipboard.controller.d.ts +4 -2
- package/lib/types/controllers/clipboard/const.d.ts +16 -0
- package/lib/types/controllers/clipboard/utils.d.ts +63 -0
- package/lib/types/controllers/config.schema.d.ts +3 -0
- package/lib/types/controllers/force-string-alert-render.controller.d.ts +5 -1
- package/lib/types/controllers/permission/sheet-permission-check-ui.controller.d.ts +24 -0
- package/lib/types/controllers/permission/sheet-permission-interceptor-canvas-render.controller.d.ts +0 -1
- package/lib/types/controllers/permission/sheet-permission-interceptor-clipboard.controller.d.ts +3 -4
- package/lib/types/controllers/permission/sheet-permission-interceptor-formula-render.controller.d.ts +0 -1
- package/lib/types/controllers/render-controllers/scroll.render-controller.d.ts +7 -4
- package/lib/types/facade/f-event.d.ts +389 -0
- package/lib/types/facade/f-permission.d.ts +4 -1
- package/lib/types/facade/f-range.d.ts +48 -5
- package/lib/types/facade/f-sheet-hooks.d.ts +50 -12
- package/lib/types/facade/f-univer.d.ts +15 -16
- package/lib/types/facade/f-workbook.d.ts +43 -28
- package/lib/types/facade/f-worksheet.d.ts +24 -11
- package/lib/types/facade/index.d.ts +3 -1
- package/lib/types/index.d.ts +13 -14
- package/lib/types/services/clipboard/clipboard.service.d.ts +25 -10
- package/lib/types/services/clipboard/type.d.ts +18 -2
- package/lib/types/services/hover-manager.service.d.ts +6 -0
- package/lib/types/services/scroll-manager.service.d.ts +10 -2
- package/lib/types/services/selection/base-selection-render.service.d.ts +3 -3
- package/lib/types/services/selection/selection-render.service.d.ts +4 -0
- package/lib/types/views/cell-alert/CellAlertPopup.d.ts +6 -1
- package/lib/types/views/clipboard/ClipboardPopupMenu.d.ts +2 -0
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +28 -26
- package/package.json +15 -14
- package/lib/types/controllers/permission/sheet-permission-init.controller.d.ts +0 -26
- package/lib/types/controllers/permission/sheet-permission-interceptor-base.controller.d.ts +0 -36
- package/lib/types/controllers/permission/sheet-permission-view-model.controller.d.ts +0 -11
|
@@ -1,36 +1,32 @@
|
|
|
1
1
|
import { IDisposable, Nullable } from '@univerjs/core';
|
|
2
|
-
import {
|
|
2
|
+
import { IMouseEvent, IPointerEvent } from '@univerjs/engine-render';
|
|
3
|
+
import { ICellPosWithEvent, IDragCellPosition, IHoverRichTextInfo, IHoverRichTextPosition, IScrollState } from '@univerjs/sheets-ui';
|
|
3
4
|
import { FWorkbook } from '@univerjs/sheets/facade';
|
|
4
5
|
import { IDialogPartMethodOptions, ISidebarMethodOptions } from '@univerjs/ui';
|
|
6
|
+
import { ICellEventParam, IFSheetsUIEventParamConfig } from './f-event';
|
|
5
7
|
export interface IFWorkbookSheetsUIMixin {
|
|
6
8
|
/**
|
|
7
9
|
* Open a sidebar.
|
|
8
|
-
*
|
|
9
10
|
* @deprecated
|
|
10
|
-
*
|
|
11
11
|
* @param params the sidebar options
|
|
12
12
|
* @returns the disposable object
|
|
13
13
|
*/
|
|
14
14
|
openSiderbar(params: ISidebarMethodOptions): IDisposable;
|
|
15
15
|
/**
|
|
16
16
|
* Open a dialog.
|
|
17
|
-
*
|
|
18
17
|
* @deprecated
|
|
19
|
-
*
|
|
20
18
|
* @param dialog the dialog options
|
|
21
19
|
* @returns the disposable object
|
|
22
20
|
*/
|
|
23
21
|
openDialog(dialog: IDialogPartMethodOptions): IDisposable;
|
|
24
22
|
/**
|
|
25
23
|
* Subscribe to cell click events
|
|
26
|
-
*
|
|
27
24
|
* @param callback - The callback function to be called when a cell is clicked
|
|
28
25
|
* @returns A disposable object that can be used to unsubscribe from the event
|
|
29
26
|
*/
|
|
30
27
|
onCellClick(callback: (cell: IHoverRichTextInfo) => void): IDisposable;
|
|
31
28
|
/**
|
|
32
29
|
* Subscribe cell hover events
|
|
33
|
-
*
|
|
34
30
|
* @param callback - The callback function to be called when a cell is hovered
|
|
35
31
|
* @returns A disposable object that can be used to unsubscribe from the event
|
|
36
32
|
*/
|
|
@@ -39,82 +35,101 @@ export interface IFWorkbookSheetsUIMixin {
|
|
|
39
35
|
* Subscribe to pointer move events on workbook. Just like onCellHover, but with event information.
|
|
40
36
|
* @param {function(ICellPosWithEvent): any} callback The callback function accept cell location and event.
|
|
41
37
|
*/
|
|
42
|
-
|
|
38
|
+
onCellPointerMove(callback: (cell: ICellPosWithEvent, event: IPointerEvent | IMouseEvent) => void): IDisposable;
|
|
43
39
|
/**
|
|
44
40
|
* Subscribe to cell pointer down events.
|
|
45
41
|
* @param {function(ICellPosWithEvent): any} callback The callback function accept cell location and event.
|
|
46
42
|
*/
|
|
47
|
-
onCellPointerDown(callback: (cell:
|
|
43
|
+
onCellPointerDown(callback: (cell: ICellPosWithEvent) => void): IDisposable;
|
|
48
44
|
/**
|
|
49
45
|
* Subscribe to cell pointer up events.
|
|
50
46
|
* @param {function(ICellPosWithEvent): any} callback The callback function accept cell location and event.
|
|
51
47
|
*/
|
|
52
|
-
onCellPointerUp(callback: (cell:
|
|
48
|
+
onCellPointerUp(callback: (cell: ICellPosWithEvent) => void): IDisposable;
|
|
49
|
+
onDragOver(callback: (cell: IDragCellPosition) => void): IDisposable;
|
|
50
|
+
onDrop(callback: (cell: IDragCellPosition) => void): IDisposable;
|
|
53
51
|
/**
|
|
54
52
|
* Start the editing process
|
|
55
53
|
* @returns A boolean value
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* univerAPI.getActiveWorkbook().startEditing();
|
|
57
|
+
* ```
|
|
56
58
|
*/
|
|
57
59
|
startEditing(): boolean;
|
|
58
60
|
/**
|
|
59
61
|
* Use endEditingAsync as instead
|
|
60
62
|
* @deprecated
|
|
63
|
+
* End the editing process
|
|
64
|
+
* @async
|
|
65
|
+
* @param save - Whether to save the changes
|
|
66
|
+
* @returns A promise that resolves to a boolean value
|
|
67
|
+
* @example
|
|
68
|
+
* ``` ts
|
|
69
|
+
* univerAPI.getActiveWorkbook().endEditing(true);
|
|
70
|
+
* ```
|
|
61
71
|
*/
|
|
62
72
|
endEditing(save?: boolean): Promise<boolean>;
|
|
63
73
|
/**
|
|
64
74
|
* @async
|
|
65
|
-
* @param save - Whether to save the changes, default is true
|
|
66
|
-
* @returns A promise that resolves to a boolean value
|
|
67
|
-
* @param save
|
|
75
|
+
* @param {boolean} save - Whether to save the changes, default is true
|
|
76
|
+
* @returns {Promise<boolean>} A promise that resolves to a boolean value
|
|
68
77
|
*/
|
|
69
78
|
endEditingAsync(save?: boolean): Promise<boolean>;
|
|
70
79
|
getScrollStateBySheetId(sheetId: string): Nullable<IScrollState>;
|
|
71
80
|
/**
|
|
72
81
|
* Disable selection. After disabled, there would be no response for selection.
|
|
82
|
+
* @returns {FWorkbook} FWorkbook instance
|
|
73
83
|
* @example
|
|
74
|
-
* ```
|
|
84
|
+
* ```ts
|
|
75
85
|
* univerAPI.getActiveWorkbook().disableSelection();
|
|
76
86
|
* ```
|
|
77
87
|
*/
|
|
78
|
-
disableSelection():
|
|
88
|
+
disableSelection(): FWorkbook;
|
|
79
89
|
/**
|
|
80
90
|
* Enable selection. After this you can select range.
|
|
81
91
|
* @example
|
|
82
|
-
* ```
|
|
92
|
+
* ```ts
|
|
83
93
|
* univerAPI.getActiveWorkbook().enableSelection();
|
|
84
94
|
* ```
|
|
85
95
|
*/
|
|
86
|
-
enableSelection():
|
|
96
|
+
enableSelection(): FWorkbook;
|
|
87
97
|
/**
|
|
88
98
|
* Set selection invisible, Unlike disableSelection, selection still works, you just can not see them.
|
|
89
99
|
* @example
|
|
90
|
-
* ```
|
|
100
|
+
* ```ts
|
|
91
101
|
* univerAPI.getActiveWorkbook().transparentSelection();
|
|
92
102
|
* ```
|
|
93
103
|
*/
|
|
94
|
-
transparentSelection():
|
|
104
|
+
transparentSelection(): FWorkbook;
|
|
95
105
|
/**
|
|
96
106
|
* Set selection visible.
|
|
97
107
|
* @example
|
|
98
|
-
* ```
|
|
108
|
+
* ```ts
|
|
99
109
|
* univerAPI.getActiveWorkbook().showSelection();
|
|
100
110
|
* ```
|
|
101
111
|
*/
|
|
102
|
-
showSelection():
|
|
112
|
+
showSelection(): FWorkbook;
|
|
103
113
|
}
|
|
104
114
|
export declare class FWorkbookSheetsUIMixin extends FWorkbook implements IFWorkbookSheetsUIMixin {
|
|
105
115
|
openSiderbar(params: ISidebarMethodOptions): IDisposable;
|
|
106
116
|
openDialog(dialog: IDialogPartMethodOptions): IDisposable;
|
|
107
117
|
private _logDeprecation;
|
|
118
|
+
addUIEvent(event: keyof IFSheetsUIEventParamConfig, _callback: (params: IFSheetsUIEventParamConfig[typeof event]) => void): IDisposable;
|
|
119
|
+
generateCellParams(cell: IHoverRichTextPosition | ICellPosWithEvent): ICellEventParam;
|
|
108
120
|
onCellClick(callback: (cell: IHoverRichTextInfo) => void): IDisposable;
|
|
109
121
|
onCellHover(callback: (cell: IHoverRichTextPosition) => void): IDisposable;
|
|
110
|
-
onCellPointerDown(callback: (cell:
|
|
111
|
-
onCellPointerUp(callback: (cell:
|
|
112
|
-
|
|
122
|
+
onCellPointerDown(callback: (cell: ICellPosWithEvent) => void): IDisposable;
|
|
123
|
+
onCellPointerUp(callback: (cell: ICellPosWithEvent) => void): IDisposable;
|
|
124
|
+
onCellPointerMove(callback: (cell: ICellPosWithEvent, event: IPointerEvent | IMouseEvent) => void): IDisposable;
|
|
125
|
+
onDragOver(callback: (cell: IDragCellPosition) => void): IDisposable;
|
|
126
|
+
onDrop(callback: (cell: IDragCellPosition) => void): IDisposable;
|
|
113
127
|
startEditing(): boolean;
|
|
114
128
|
endEditing(save?: boolean): Promise<boolean>;
|
|
115
129
|
endEditingAsync(save?: boolean): Promise<boolean>;
|
|
116
130
|
/**
|
|
117
131
|
* Get scroll state of specified sheet.
|
|
132
|
+
* @param {string} sheetId - sheet id
|
|
118
133
|
* @returns {IScrollState} scroll state
|
|
119
134
|
* @example
|
|
120
135
|
* ``` ts
|
|
@@ -122,10 +137,10 @@ export declare class FWorkbookSheetsUIMixin extends FWorkbook implements IFWorkb
|
|
|
122
137
|
* ```
|
|
123
138
|
*/
|
|
124
139
|
getScrollStateBySheetId(sheetId: string): Nullable<IScrollState>;
|
|
125
|
-
disableSelection():
|
|
126
|
-
enableSelection():
|
|
127
|
-
transparentSelection():
|
|
128
|
-
showSelection():
|
|
140
|
+
disableSelection(): FWorkbook;
|
|
141
|
+
enableSelection(): FWorkbook;
|
|
142
|
+
transparentSelection(): FWorkbook;
|
|
143
|
+
showSelection(): FWorkbook;
|
|
129
144
|
}
|
|
130
145
|
declare module '@univerjs/sheets/facade' {
|
|
131
146
|
interface FWorkbook extends IFWorkbookSheetsUIMixin {
|
|
@@ -5,7 +5,7 @@ export interface IFWorksheetSkeletonMixin {
|
|
|
5
5
|
/**
|
|
6
6
|
* Refresh the canvas.
|
|
7
7
|
*/
|
|
8
|
-
refreshCanvas():
|
|
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.
|
|
@@ -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.
|
|
42
|
-
*
|
|
43
|
-
* @param
|
|
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):
|
|
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():
|
|
66
|
+
getScrollState(): IScrollState;
|
|
55
67
|
/**
|
|
56
68
|
* Invoked when scrolling the sheet.
|
|
57
|
-
* @param {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():
|
|
79
|
+
refreshCanvas(): FWorksheet;
|
|
67
80
|
zoom(zoomRatio: number): FWorksheet;
|
|
68
81
|
getZoom(): number;
|
|
69
82
|
getVisibleRange(): IRange;
|
|
70
|
-
scrollToCell(row: number, column: number):
|
|
71
|
-
getScrollState():
|
|
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,8 +18,10 @@ import './f-workbook';
|
|
|
18
18
|
import './f-worksheet';
|
|
19
19
|
import './f-permission';
|
|
20
20
|
import './f-sheet-hooks';
|
|
21
|
-
|
|
21
|
+
import './f-event';
|
|
22
|
+
export type * from './f-event';
|
|
22
23
|
export type * from './f-permission';
|
|
24
|
+
export { type IFComponentKey, transformComponentKey } from './f-range';
|
|
23
25
|
export type * from './f-sheet-hooks';
|
|
24
26
|
export type * from './f-univer';
|
|
25
27
|
export type * from './f-workbook';
|
package/lib/types/index.d.ts
CHANGED
|
@@ -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';
|
|
@@ -55,7 +43,7 @@ export { type ICanvasPopup, SheetCanvasPopManagerService } from './services/canv
|
|
|
55
43
|
export { CellAlertManagerService, CellAlertType, type ICellAlert } from './services/cell-alert-manager.service';
|
|
56
44
|
export { getMatrixPlainText, ISheetClipboardService, PREDEFINED_HOOK_NAME, SheetClipboardService, } from './services/clipboard/clipboard.service';
|
|
57
45
|
export { COPY_TYPE } from './services/clipboard/type';
|
|
58
|
-
export type { ICellDataWithSpanInfo, ICopyPastePayload, ISheetClipboardHook, ISheetDiscreteRangeLocation } from './services/clipboard/type';
|
|
46
|
+
export type { ICellDataWithSpanInfo, ICopyPastePayload, IPasteHookValueType, ISheetClipboardHook, ISheetDiscreteRangeLocation } from './services/clipboard/type';
|
|
59
47
|
export { getRepeatRange, mergeSetRangeValues } from './services/clipboard/utils';
|
|
60
48
|
export { DragManagerService, type IDragCellPosition } from './services/drag-manager.service';
|
|
61
49
|
export { EditorBridgeService, IEditorBridgeService, type IEditorBridgeServiceVisibleParam, } from './services/editor-bridge.service';
|
|
@@ -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,7 @@ 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 { type IUniverSheetsUIConfig } from './controllers/config.schema';
|
|
85
84
|
export { getCellRealRange } from './common/utils';
|
|
86
85
|
export { FONT_FAMILY_COMPONENT, FONT_FAMILY_ITEM_COMPONENT } from './components/font-family/interface';
|
|
87
86
|
export { FONT_SIZE_COMPONENT } from './components/font-size/interface';
|
|
@@ -94,7 +93,7 @@ export type { IFormatPainterBeforeApplyHookParams, IFormatPainterHook } from './
|
|
|
94
93
|
export { SELECTION_SHAPE_DEPTH } from './services/selection/const';
|
|
95
94
|
export { type IBaseSheetBarProps } from './views/sheet-bar/sheet-bar-tabs/SheetBarItem';
|
|
96
95
|
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';
|
|
96
|
+
export { type ISheetPasteByShortKeyParams, type ISheetPasteParams, SheetCopyCommand, SheetCutCommand, SheetPasteBesidesBorderCommand, SheetPasteColWidthCommand, SheetPasteCommand, SheetPasteFormatCommand, SheetPasteShortKeyCommand, SheetPasteValueCommand, } from './commands/commands/clipboard.command';
|
|
98
97
|
export { DeleteRangeMoveLeftConfirmCommand } from './commands/commands/delete-range-move-left-confirm.command';
|
|
99
98
|
export { DeleteRangeMoveUpConfirmCommand } from './commands/commands/delete-range-move-up-confirm.command';
|
|
100
99
|
export { HideColConfirmCommand, HideRowConfirmCommand } from './commands/commands/hide-row-col-confirm.command';
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { ICellDataWithSpanAndDisplay, IDisposable, IRange, Nullable, Disposable, ErrorService, ICommandService, ILogService, Injector, IUndoRedoService, IUniverInstanceService, LocaleService, ObjectMatrix, ThemeService } from '@univerjs/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
2
3
|
import { IDiscreteRange } from '../../controllers/utils/range-tools';
|
|
3
|
-
import { ISheetClipboardHook, COPY_TYPE } from './type';
|
|
4
|
+
import { IPasteHookKeyType, IPasteOptionCache, ISheetClipboardHook, COPY_TYPE } from './type';
|
|
4
5
|
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
5
6
|
import { SheetsSelectionsService } from '@univerjs/sheets';
|
|
6
7
|
import { IClipboardInterfaceService, INotificationService, IPlatformService } from '@univerjs/ui';
|
|
7
8
|
import { IMarkSelectionService } from '../mark-selection/mark-selection.service';
|
|
8
9
|
import { CopyContentCache } from './copy-content-cache';
|
|
9
10
|
export declare const PREDEFINED_HOOK_NAME: {
|
|
10
|
-
DEFAULT_COPY:
|
|
11
|
-
DEFAULT_PASTE:
|
|
12
|
-
SPECIAL_PASTE_VALUE:
|
|
13
|
-
SPECIAL_PASTE_FORMAT:
|
|
14
|
-
SPECIAL_PASTE_COL_WIDTH:
|
|
15
|
-
SPECIAL_PASTE_BESIDES_BORDER:
|
|
16
|
-
SPECIAL_PASTE_FORMULA:
|
|
11
|
+
readonly DEFAULT_COPY: "default-copy";
|
|
12
|
+
readonly DEFAULT_PASTE: "default-paste";
|
|
13
|
+
readonly SPECIAL_PASTE_VALUE: "special-paste-value";
|
|
14
|
+
readonly SPECIAL_PASTE_FORMAT: "special-paste-format";
|
|
15
|
+
readonly SPECIAL_PASTE_COL_WIDTH: "special-paste-col-width";
|
|
16
|
+
readonly SPECIAL_PASTE_BESIDES_BORDER: "special-paste-besides-border";
|
|
17
|
+
readonly SPECIAL_PASTE_FORMULA: "special-paste-formula";
|
|
17
18
|
};
|
|
18
19
|
interface ICopyContent {
|
|
19
20
|
copyId: string;
|
|
@@ -23,10 +24,16 @@ interface ICopyContent {
|
|
|
23
24
|
discreteRange: IDiscreteRange;
|
|
24
25
|
}
|
|
25
26
|
export interface ISheetClipboardService {
|
|
27
|
+
showMenu$: Observable<boolean>;
|
|
28
|
+
setShowMenu: (show: boolean) => void;
|
|
29
|
+
pasteOptionsCache$: Observable<IPasteOptionCache | null>;
|
|
30
|
+
updatePasteOptionsCache(cache: IPasteOptionCache | null): void;
|
|
26
31
|
copy(): Promise<boolean>;
|
|
27
32
|
cut(): Promise<boolean>;
|
|
28
33
|
paste(item: ClipboardItem, pasteType?: string): Promise<boolean>;
|
|
29
34
|
legacyPaste(html?: string, text?: string): Promise<boolean>;
|
|
35
|
+
rePasteWithPasteType(type: IPasteHookKeyType): boolean;
|
|
36
|
+
disposePasteOptionsCache(): void;
|
|
30
37
|
generateCopyContent(workbookId: string, worksheetId: string, range: IRange): Nullable<ICopyContent>;
|
|
31
38
|
copyContentCache(): CopyContentCache;
|
|
32
39
|
addClipboardHook(hook: ISheetClipboardHook): IDisposable;
|
|
@@ -51,18 +58,25 @@ export declare class SheetClipboardService extends Disposable implements ISheetC
|
|
|
51
58
|
private readonly _injector;
|
|
52
59
|
private _clipboardHooks;
|
|
53
60
|
private readonly _clipboardHooks$;
|
|
54
|
-
readonly clipboardHooks$:
|
|
61
|
+
readonly clipboardHooks$: Observable<ISheetClipboardHook[]>;
|
|
55
62
|
private _htmlToUSM;
|
|
56
63
|
private _usmToHtml;
|
|
57
64
|
private _copyContentCache;
|
|
58
65
|
private _copyMarkId;
|
|
66
|
+
private _pasteOptionsCache$;
|
|
67
|
+
readonly pasteOptionsCache$: Observable<IPasteOptionCache | null>;
|
|
68
|
+
private readonly _showMenu$;
|
|
69
|
+
readonly showMenu$: Observable<boolean>;
|
|
59
70
|
constructor(_logService: ILogService, _univerInstanceService: IUniverInstanceService, _selectionManagerService: SheetsSelectionsService, _clipboardInterfaceService: IClipboardInterfaceService, _undoRedoService: IUndoRedoService, _commandService: ICommandService, _markSelectionService: IMarkSelectionService, _notificationService: INotificationService, _platformService: IPlatformService, _renderManagerService: IRenderManagerService, _themeService: ThemeService, _localeService: LocaleService, _errorService: ErrorService, _injector: Injector);
|
|
71
|
+
setShowMenu(show: boolean): void;
|
|
60
72
|
copyContentCache(): CopyContentCache;
|
|
61
73
|
generateCopyContent(workbookId: string, worksheetId: string, range: IRange): Nullable<ICopyContent>;
|
|
62
74
|
copy(copyType?: COPY_TYPE): Promise<boolean>;
|
|
63
75
|
cut(): Promise<boolean>;
|
|
64
|
-
paste(item: ClipboardItem, pasteType?:
|
|
76
|
+
paste(item: ClipboardItem, pasteType?: "default-paste"): Promise<boolean>;
|
|
65
77
|
legacyPaste(html?: string, text?: string): Promise<boolean>;
|
|
78
|
+
rePasteWithPasteType(type: IPasteHookKeyType): boolean;
|
|
79
|
+
updatePasteOptionsCache(cache: IPasteOptionCache | null): void;
|
|
66
80
|
addClipboardHook(hook: ISheetClipboardHook): IDisposable;
|
|
67
81
|
getClipboardHooks(): ISheetClipboardHook[];
|
|
68
82
|
private _generateCopyContent;
|
|
@@ -127,6 +141,7 @@ export declare class SheetClipboardService extends Disposable implements ISheetC
|
|
|
127
141
|
private _topLeftCellsMatch;
|
|
128
142
|
removeMarkSelection(): void;
|
|
129
143
|
private _initUnitDisposed;
|
|
144
|
+
disposePasteOptionsCache(): void;
|
|
130
145
|
}
|
|
131
146
|
export declare function getMatrixPlainText(matrix: ObjectMatrix<ICellDataWithSpanAndDisplay>): string;
|
|
132
147
|
export declare const escapeSpecialCode: (cellStr: string) => string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ICellData, IDocumentData, IMutationInfo, IRange, ObjectMatrix } from '@univerjs/core';
|
|
2
2
|
import { IDiscreteRange } from '../../controllers/utils/range-tools';
|
|
3
|
+
import { PREDEFINED_HOOK_NAME } from './clipboard.service';
|
|
3
4
|
export declare enum COPY_TYPE {
|
|
4
5
|
COPY = "COPY",
|
|
5
6
|
CUT = "CUT"
|
|
@@ -30,7 +31,7 @@ export interface IParsedCellValueByClipboard {
|
|
|
30
31
|
}
|
|
31
32
|
export interface IUniverSheetCopyDataModel {
|
|
32
33
|
rowProperties?: IClipboardPropertyItem[];
|
|
33
|
-
colProperties?: IClipboardPropertyItem[]
|
|
34
|
+
colProperties?: IClipboardPropertyItem[];
|
|
34
35
|
cellMatrix: ObjectMatrix<ICellDataWithSpanInfo>;
|
|
35
36
|
}
|
|
36
37
|
export interface IPasteTarget {
|
|
@@ -41,7 +42,7 @@ export interface IPasteTarget {
|
|
|
41
42
|
export interface ICopyPastePayload {
|
|
42
43
|
copyType?: COPY_TYPE;
|
|
43
44
|
copyId?: string;
|
|
44
|
-
pasteType:
|
|
45
|
+
pasteType: IPasteHookValueType;
|
|
45
46
|
}
|
|
46
47
|
export interface ISheetDiscreteRangeLocation {
|
|
47
48
|
range: IDiscreteRange;
|
|
@@ -133,3 +134,18 @@ export interface ISheetClipboardHook {
|
|
|
133
134
|
*/
|
|
134
135
|
getFilteredOutRows?(range: IRange): number[];
|
|
135
136
|
}
|
|
137
|
+
export interface IPasteOptionCache {
|
|
138
|
+
target: IPasteTarget;
|
|
139
|
+
source?: IPasteSource;
|
|
140
|
+
cellMatrix: ObjectMatrix<ICellDataWithSpanInfo>;
|
|
141
|
+
rowProperties?: IClipboardPropertyItem[];
|
|
142
|
+
colProperties?: IClipboardPropertyItem[];
|
|
143
|
+
pasteType: IPasteHookValueType;
|
|
144
|
+
}
|
|
145
|
+
export type IPasteSource = ISheetDiscreteRangeLocation & {
|
|
146
|
+
copyId: string;
|
|
147
|
+
copyType: COPY_TYPE;
|
|
148
|
+
};
|
|
149
|
+
export type IPasteHookKeyType = Exclude<keyof typeof PREDEFINED_HOOK_NAME, 'default-copy'>;
|
|
150
|
+
export type IPasteHookValueTypeWithoutDefaultCopy = typeof PREDEFINED_HOOK_NAME[IPasteHookKeyType];
|
|
151
|
+
export type IPasteHookValueType = Exclude<IPasteHookValueTypeWithoutDefaultCopy, 'default-copy'>;
|
|
@@ -77,6 +77,12 @@ export declare class HoverManagerService extends Disposable {
|
|
|
77
77
|
triggerPointerDown(unitId: string, event: IPointerEvent | IMouseEvent): void;
|
|
78
78
|
triggerPointerUp(unitId: string, event: IPointerEvent | IMouseEvent): void;
|
|
79
79
|
triggerMouseMove(unitId: string, event: IPointerEvent | IMouseEvent): void;
|
|
80
|
+
/**
|
|
81
|
+
* Trigger by pointerup.
|
|
82
|
+
* @param unitId
|
|
83
|
+
* @param offsetX
|
|
84
|
+
* @param offsetY
|
|
85
|
+
*/
|
|
80
86
|
triggerClick(unitId: string, offsetX: number, offsetY: number): void;
|
|
81
87
|
triggerScroll(): void;
|
|
82
88
|
}
|
|
@@ -12,11 +12,19 @@ export interface IScrollState {
|
|
|
12
12
|
*/
|
|
13
13
|
offsetY: number;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
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
|
-
*
|
|
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
|
}
|
|
@@ -126,9 +126,9 @@ export declare class BaseSelectionRenderService extends Disposable implements IS
|
|
|
126
126
|
setSingleSelectionEnabled(enabled?: boolean): void;
|
|
127
127
|
newSelectionControl(scene: Scene, skeleton: SpreadsheetSkeleton, selection: ISelectionWithStyle): SelectionControl;
|
|
128
128
|
/**
|
|
129
|
-
* Update the corresponding selectionControl based on selectionsData
|
|
130
|
-
* selectionData[i]
|
|
131
|
-
* @param
|
|
129
|
+
* Update the corresponding selectionControl based on selectionsData from WorkbookSelectionModel
|
|
130
|
+
* selectionData[i] --> selectionControls[i]
|
|
131
|
+
* @param selectionsWithStyleList {ISelectionWithStyle[]} selectionsData from WorkbookSelectionModel
|
|
132
132
|
*/
|
|
133
133
|
resetSelectionsByModelData(selectionsWithStyleList: readonly ISelectionWithStyle[]): void;
|
|
134
134
|
refreshSelectionMoveStart(): void;
|
|
@@ -33,6 +33,10 @@ export declare class SheetSelectionRenderService extends BaseSelectionRenderServ
|
|
|
33
33
|
private _initUserActionSyncListener;
|
|
34
34
|
/**
|
|
35
35
|
* Update selectionData to selectionDataModel (WorkBookSelections) by SetSelectionsOperation.
|
|
36
|
+
*
|
|
37
|
+
* Unlike baseSelectionRenderService@resetSelectionsByModelData, this method is for update WorkbookSelectionModel.
|
|
38
|
+
*
|
|
39
|
+
*
|
|
36
40
|
* @param selectionDataWithStyleList
|
|
37
41
|
* @param type
|
|
38
42
|
*/
|
|
@@ -1,5 +1,10 @@
|
|
|
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
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param root0
|
|
6
|
+
* @param root0.popup
|
|
7
|
+
*/
|
|
3
8
|
export declare function CellAlert({ popup }: {
|
|
4
9
|
popup: ICanvasPopup;
|
|
5
10
|
}): 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}endEditingAsync(e=!0){return this.endEditing(e)}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).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(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(h,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@univerjs/core"),require("@univerjs/docs"),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/docs","@univerjs/engine-render","@univerjs/sheets-ui","@univerjs/sheets/facade","@univerjs/ui","rxjs","@univerjs/sheets"],o):(h=typeof globalThis<"u"?globalThis:h||self,o(h.UniverSheetsUiFacade={},h.UniverCore,h.UniverDocs,h.UniverEngineRender,h.UniverSheetsUi,h.UniverSheetsFacade,h.UniverUi,h.rxjs,h.UniverSheets))})(this,function(h,o,k,d,s,u,c,f,I){"use strict";class P extends o.FUniver{_initSheetUIEvent(e){const t=e.get(o.ICommandService);this.disposeWithMe(t.beforeCommandExecuted(r=>{if(r.id===s.SetCellEditVisibleOperation.id){if(!this._eventListend(this.Event.BeforeSheetEditStart)&&!this._eventListend(this.Event.BeforeSheetEditEnd))return;const n=this.getCommandSheetTarget(r);if(!n)return;const{workbook:i,worksheet:a}=n,l=e.get(s.IEditorBridgeService),g=e.get(o.IUniverInstanceService),C=r.params,{visible:v,keycode:b,eventType:m}=C,p=l.getEditLocation();if(v){const _={row:p.row,column:p.column,eventType:m,keycode:b,workbook:i,worksheet:a,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,_),_.cancel)throw new o.CanceledError}else{const _={row:p.row,column:p.column,eventType:m,keycode:b,workbook:i,worksheet:a,isZenEditor:!1,value:o.RichTextValue.create(g.getUnit(o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:b!==c.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,_),_.cancel)throw new o.CanceledError}}})),this.disposeWithMe(t.onCommandExecuted(r=>{if(r.id===s.SetCellEditVisibleOperation.id){if(!this._eventListend(this.Event.SheetEditStarted)&&!this._eventListend(this.Event.SheetEditEnded))return;const n=this.getCommandSheetTarget(r);if(!n)return;const{workbook:i,worksheet:a}=n,l=e.get(s.IEditorBridgeService),g=r.params,{visible:C,keycode:v,eventType:b}=g,m=l.getEditLocation();if(C){const p={row:m.row,column:m.column,eventType:b,keycode:v,workbook:i,worksheet:a,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,p)}else{const p={row:m.row,column:m.column,eventType:b,keycode:v,workbook:i,worksheet:a,isZenEditor:!1,isConfirm:v!==c.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,p)}}if(r.id===k.RichTextEditingMutation.id){if(!this._eventListend(this.Event.SheetEditChanging))return;const n=this.getCommandSheetTarget(r);if(!n)return;const{workbook:i,worksheet:a}=n,l=e.get(s.IEditorBridgeService),g=e.get(o.IUniverInstanceService),C=r.params;if(!l.isVisible().visible)return;const{unitId:v}=C;if(v===o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const{row:b,column:m}=l.getEditLocation(),p={workbook:i,worksheet:a,row:b,column:m,value:o.RichTextValue.create(g.getUnit(o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,p)}}}))}_initialize(e){this._initSheetUIEvent(e);const t=e.get(o.ICommandService);this.disposeWithMe(t.beforeCommandExecuted(r=>{switch(r.id){case c.CopyCommand.id:case c.CutCommand.id:this._beforeClipboardChange();break;case s.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 s.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.getActiveWorkbook(),t=e==null?void 0:e.getActiveSheet(),r=e==null?void 0:e.getActiveRange();if(!e||!t||!r)return;const i=this._injector.get(s.ISheetClipboardService).generateCopyContent(e.getId(),t.getSheetId(),r.getRange());if(!i)return;const{html:a,plain:l}=i;return{workbook:e,worksheet:t,text:l,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.getActiveWorkbook(),i=n==null?void 0:n.getActiveSheet();return!n||!i?void 0:{workbook:n,worksheet:i,text:r,html:t}}async _generateClipboardPasteParamAsync(){const e=this.getActiveWorkbook(),t=e==null?void 0:e.getActiveSheet();if(!e||!t)return;const i=(await this._injector.get(c.IClipboardInterfaceService).read())[0];let a;if(i){const l=i.types,g=l.indexOf(c.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await i.getType(c.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(v=>v&&v.text()):"",C=l.indexOf(c.HTML_CLIPBOARD_MIME_TYPE)!==-1?await i.getType(c.HTML_CLIPBOARD_MIME_TYPE).then(v=>v&&v.text()):"";a={workbook:e,worksheet:t,text:g,html:C}}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(o.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(o.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,s.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,s.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...t){const r=this._getSheetRenderComponent(e,s.SHEET_VIEW_KEY.ROW),n=r.register(...t);return o.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...t){const r=this._getSheetRenderComponent(e,s.SHEET_VIEW_KEY.COLUMN),n=r.register(...t);return o.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}registerSheetMainExtension(e,...t){const r=this._getSheetRenderComponent(e,s.SHEET_VIEW_KEY.MAIN),n=r.register(...t);return o.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:i}=n,a=i.get(t);if(!a)throw new Error("Render component not found");return a}getSheetHooks(){return this._injector.createInstance(u.FSheetHooks)}}o.FUniver.extend(P);const S={CellClicked:"CellClicked",CellPointerDown:"CellPointerDown",CellPointerUp:"CellPointerUp",CellPointerMove:"CellPointerMove",CellHover:"CellHover",DragOver:"DragOver",Drop:"Drop"};class M extends o.FEventName{get BeforeClipboardChange(){return"BeforeClipboardChange"}get ClipboardChanged(){return"ClipboardChanged"}get BeforeClipboardPaste(){return"BeforeClipboardPaste"}get ClipboardPasted(){return"ClipboardPasted"}get BeforeSheetEditStart(){return"BeforeSheetEditStart"}get SheetEditStarted(){return"SheetEditStarted"}get SheetEditChanging(){return"SheetEditChanging"}get BeforeSheetEditEnd(){return"BeforeSheetEditEnd"}get SheetEditEnded(){return"SheetEditEnded"}get CellClicked(){return S.CellClicked}get CellHover(){return S.CellHover}get CellPointerDown(){return S.CellPointerDown}get CellPointerUp(){return S.CellPointerUp}get CellPointerMove(){return S.CellPointerMove}get DragOver(){return"DragOver"}get Drop(){return"Drop"}}o.FEventName.extend(M);class y extends u.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(o.ILogService).warn("[FWorkbook]",`${e} is deprecated. Please use the function of the same name on "FUniver".`)}addUIEvent(e,t){const r=this.getActiveSheet(),n={workbook:this,worksheet:r};switch(e){case S.CellClicked:this.onCellClick(i=>{this.fireEvent(this.Event.CellClicked,{row:i.location.row,column:i.location.col,...n})});break;case S.CellPointerDown:this.onCellPointerDown(i=>{this.fireEvent(this.Event.CellPointerDown,this.generateCellParams(i))});break;case S.CellPointerUp:this.onCellPointerUp(i=>{this.fireEvent(this.Event.CellPointerUp,this.generateCellParams(i))});break;case S.CellPointerMove:this.onCellPointerMove(i=>{this.fireEvent(this.Event.CellPointerMove,this.generateCellParams(i))});break;case S.CellHover:this.onCellHover(i=>{this.fireEvent(this.Event.CellHover,this.generateCellParams(i))});break;case S.DragOver:this.onDragOver(i=>{this.fireEvent(this.Event.DragOver,{row:i.location.row,column:i.location.col,...n})});break;case S.Drop:this.onDrop(i=>{this.fireEvent(this.Event.Drop,{row:i.location.row,column:i.location.col,...n})})}return o.toDisposable(()=>{})}generateCellParams(e){const t=this.getActiveSheet();return{row:e.row,column:e.col,workbook:this,worksheet:t}}onCellClick(e){const t=this._injector.get(s.HoverManagerService);return o.toDisposable(t.currentClickedCell$.pipe(f.filter(r=>!!r)).subscribe(r=>{e(r)}))}onCellHover(e){const t=this._injector.get(s.HoverManagerService);return o.toDisposable(t.currentRichText$.pipe(f.filter(r=>!!r)).subscribe(e))}onCellPointerDown(e){const t=this._injector.get(s.HoverManagerService);return o.toDisposable(t.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const t=this._injector.get(s.HoverManagerService);return o.toDisposable(t.currentPointerUpCell$.subscribe(e))}onCellPointerMove(e){const t=this._injector.get(s.HoverManagerService);return o.toDisposable(t.currentCellPosWithEvent$.pipe(f.filter(r=>!!r)).subscribe(r=>{e(r,r.event)}))}onDragOver(e){const t=this._injector.get(s.DragManagerService);return o.toDisposable(t.currentCell$.pipe(f.filter(r=>!!r)).subscribe(r=>{e(r)}))}onDrop(e){const t=this._injector.get(s.DragManagerService);return o.toDisposable(t.endCell$.pipe(f.filter(r=>!!r)).subscribe(r=>{e(r)}))}startEditing(){return this._injector.get(o.ICommandService).syncExecuteCommand(s.SetCellEditVisibleOperation.id,{eventType:d.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){return this._injector.get(o.ICommandService).syncExecuteCommand(s.SetCellEditVisibleOperation.id,{eventType:d.DeviceInputEventType.Keyboard,keycode:e?c.KeyCode.ENTER:c.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await o.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(s.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(s.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(s.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(s.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(s.ISheetSelectionRenderService).showSelection(),this}}u.FWorkbook.extend(y);class D extends u.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(s.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(o.ICommandService).syncExecuteCommand(s.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(s.SheetSkeletonManagerService).getCurrentSkeleton();if(!a)return n;const l=a==null?void 0:a.getVisibleRanges();if(!l)return n;n=a.getVisibleRangeByViewport(d.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[g,C]of l)d.sheetContentViewportKeys.indexOf(g)!==-1&&(n.startColumn=Math.min(n.startColumn,C.startColumn),n.startRow=Math.min(n.startRow,C.startRow),n.endColumn=Math.max(n.endColumn,C.endColumn),n.endRow=Math.max(n.endRow,C.endRow));return n}scrollToCell(e,t){const r=this._workbook.getUnitId(),i=this._injector.get(d.IRenderManagerService).getRenderById(r);return i&&(i==null?void 0:i.with(s.SheetsScrollRenderController)).scrollToCell(e,t),this}getScrollState(){const e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=this._injector.get(d.IRenderManagerService).getRenderById(t);return i&&i.with(s.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:r})||e}onScroll(e){var i;const t=this._workbook.getUnitId(),n=(i=this._injector.get(d.IRenderManagerService).getRenderById(t))==null?void 0:i.with(s.SheetScrollManagerService);if(n){const a=n.validViewportScrollInfo$.subscribe(l=>{e(l)});return o.toDisposable(a)}return o.toDisposable(()=>{})}}u.FWorksheet.extend(D);class R extends u.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}u.FPermission.extend(R);class x extends u.FSheetHooks{onCellPointerMove(e){return o.toDisposable(this._injector.get(s.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return o.toDisposable(this._injector.get(s.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return o.toDisposable(this._injector.get(s.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return o.toDisposable(this._injector.get(s.DragManagerService).endCell$.subscribe(e))}onCellRender(e,t=o.InterceptorEffectEnum.Style,r=I.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(I.SheetInterceptorService).intercept(I.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t,handler:(n,i,a)=>a({...n,customRender:[...(n==null?void 0:n.customRender)||[],...e||[]]}),priority:r})}onBeforeCellEdit(e){return this._injector.get(o.ICommandService).beforeCommandExecuted(t=>{const r=t.params;t.id===s.SetCellEditVisibleOperation.id&&r.visible&&e(r)})}onAfterCellEdit(e){return this._injector.get(o.ICommandService).onCommandExecuted(t=>{const r=t.params;t.id===s.SetCellEditVisibleOperation.id&&!r.visible&&e(r)})}}u.FSheetHooks.extend(x);class T extends u.FRange{getCell(){const e=this._injector.get(d.IRenderManagerService),t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return e.getRenderById(t).with(s.SheetSkeletonManagerService).getWorksheetSkeleton(r).skeleton.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:e,startY:t,endX:r,endY:n}=this.getCell(),i={x:e,y:t,width:r-e,height:n-t,top:t,left:e,bottom:n,right:r};return{...i,toJSON:()=>JSON.stringify(i)}}generateHTML(){var t;const e=this._injector.get(s.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(t=e==null?void 0:e.html)!=null?t:""}attachPopup(e){var a,l,g;e.direction=(a=e.direction)!=null?a:"horizontal",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(g=e.offset)!=null?g:[0,0];const{key:t,disposableCollection:r}=w(e,this._injector.get(c.ComponentManager)),i=this._injector.get(s.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:t},this.getUnitId(),this._worksheet.getSheetId());return i?(r.add(i),r):(r.dispose(),null)}attachAlertPopup(e){const t=this._injector.get(s.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(s.IMarkSelectionService),n=r.addShape({range:this._range,style:e,primary:t});if(!n)throw new Error("Failed to highlight current range");return o.toDisposable(()=>{r.removeShape(n)})}}u.FRange.extend(T);function w(E,e){const{componentKey:t,isVue3:r}=E;let n;const i=new o.DisposableCollection;return typeof t=="string"?n=t:(n=`External_${o.generateRandomId(6)}`,i.add(e.register(n,t,{framework:r?"vue3":"react"}))),{key:n,disposableCollection:i}}h.transformComponentKey=w,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|