@univerjs/sheets-ui 0.10.11 → 0.10.12-nightly.202510251119

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.
@@ -18,6 +18,10 @@ export interface IScrollCommandParams {
18
18
  * e.g. if scrolled about 2 columns, now left is E, then sheetViewStartColumn is 2.
19
19
  */
20
20
  sheetViewStartColumn?: number;
21
+ /**
22
+ * The duration of the scroll animation in milliseconds.
23
+ */
24
+ duration?: number;
21
25
  }
22
26
  /**
23
27
  * This command is used to manage the scroll by relative offset
@@ -1,5 +1,5 @@
1
1
  import { IRange, Workbook, Disposable, ICommandService, IContextService, Injector } from '@univerjs/core';
2
- import { IRenderContext, IRenderModule, IRenderManagerService } from '@univerjs/engine-render';
2
+ import { IRenderContext, IRenderModule, Viewport, IRenderManagerService } from '@univerjs/engine-render';
3
3
  import { SheetScrollManagerService } from '../../services/scroll-manager.service';
4
4
  import { SheetSkeletonManagerService } from '../../services/sheet-skeleton-manager.service';
5
5
  /**
@@ -17,6 +17,12 @@ export declare class SheetsScrollRenderController extends Disposable implements
17
17
  private _wheelEventListener;
18
18
  private _scrollBarEventListener;
19
19
  private _initSkeletonListener;
20
+ _smoothScrollToViewportPos(params: {
21
+ viewportMain: Viewport;
22
+ viewportScrollX: number;
23
+ viewportScrollY: number;
24
+ duration: number;
25
+ }): void;
20
26
  _updateViewportScroll(viewportScrollX?: number, viewportScrollY?: number): void;
21
27
  scrollToRange(range: IRange, forceTop?: boolean, forceLeft?: boolean): boolean;
22
28
  /**
@@ -28,7 +34,7 @@ export declare class SheetsScrollRenderController extends Disposable implements
28
34
  * @param {number} column - Cell column
29
35
  * @returns {boolean} - true if scroll is successful
30
36
  */
31
- scrollToCell(row: number, column: number): boolean;
37
+ scrollToCell(row: number, column: number, duration?: number): boolean;
32
38
  private _initCommandListener;
33
39
  private _scrollToSelectionForExpand;
34
40
  private _getFreeze;
@@ -2,6 +2,7 @@ import { IRange, RichTextValue } from '@univerjs/core';
2
2
  import { IEventBase } from '@univerjs/core/facade';
3
3
  import { DeviceInputEventType, SpreadsheetSkeleton } from '@univerjs/engine-render';
4
4
  import { CommandListenerSkeletonChange } from '@univerjs/sheets';
5
+ import { IDragCellPosition } from '@univerjs/sheets-ui';
5
6
  import { FRange, FWorkbook, FWorksheet } from '@univerjs/sheets/facade';
6
7
  import { KeyCode } from '@univerjs/ui';
7
8
  /**
@@ -453,12 +454,12 @@ export interface IFSheetsUIEventNameMixin {
453
454
  readonly ColumnHeaderHover: 'ColumnHeaderHover';
454
455
  /**
455
456
  * Event fired when the drag element passes over the spreadsheet cells
456
- * @see {@link ICellEventParam}
457
+ * @see {@link IDragEventParam}
457
458
  * @example
458
459
  * ```ts
459
460
  * const disposable = univerAPI.addEvent(univerAPI.Event.DragOver, (params) => {
460
- * const { worksheet, workbook, row, column } = params;
461
- * console.log(params);
461
+ * const { row, column, dataTransfer } = params;
462
+ * console.log(params, dataTransfer.files.length);
462
463
  * });
463
464
  *
464
465
  * // Remove the event listener, use `disposable.dispose()`
@@ -467,12 +468,12 @@ export interface IFSheetsUIEventNameMixin {
467
468
  readonly DragOver: 'DragOver';
468
469
  /**
469
470
  * Event fired when the drag element is dropped on the spreadsheet cells
470
- * @see {@link ICellEventParam}
471
+ * @see {@link IDragEventParam}
471
472
  * @example
472
473
  * ```ts
473
474
  * const disposable = univerAPI.addEvent(univerAPI.Event.Drop, (params) => {
474
- * const { worksheet, workbook, row, column } = params;
475
- * console.log(params);
475
+ * const { row, column, dataTransfer } = params;
476
+ * console.log(params, dataTransfer.files.length);
476
477
  * });
477
478
  *
478
479
  * // Remove the event listener, use `disposable.dispose()`
@@ -706,6 +707,8 @@ export interface ICellEventParam extends ISheetUIEventBase {
706
707
  row: number;
707
708
  column: number;
708
709
  }
710
+ export interface IDragEventParam extends IDragCellPosition, ICellEventParam {
711
+ }
709
712
  export interface IScrollEventParam extends ISheetUIEventBase {
710
713
  scrollX: number;
711
714
  scrollY: number;
@@ -742,8 +745,8 @@ export interface IFSheetsUIEventParamConfig {
742
745
  CellPointerDown: ICellEventParam;
743
746
  CellPointerUp: ICellEventParam;
744
747
  CellPointerMove: ICellEventParam;
745
- Drop: ICellEventParam;
746
- DragOver: ICellEventParam;
748
+ Drop: IDragEventParam;
749
+ DragOver: IDragEventParam;
747
750
  RowHeaderClick: ISheetRowHeaderEvent;
748
751
  RowHeaderHover: ISheetRowHeaderEvent;
749
752
  RowHeaderPointerDown: ISheetRowHeaderEvent;
@@ -178,10 +178,21 @@ export interface IFWorkbookSheetsUIMixin {
178
178
  * @example
179
179
  * ```ts
180
180
  * const fWorkbook = univerAPI.getActiveWorkbook();
181
- * await fWorkbook.endEditingAsync(false);
181
+ * await fWorkbook.abortEditingAsync();
182
182
  * ```
183
183
  */
184
184
  abortEditingAsync(): Promise<boolean>;
185
+ /**
186
+ * Check if the current active cell is in editing state
187
+ * @returns {boolean} True if the current active cell is in editing state, false otherwise
188
+ * @example
189
+ * ```ts
190
+ * const fWorkbook = univerAPI.getActiveWorkbook();
191
+ * const isEditing = fWorkbook.isCellEditing();
192
+ * console.log(isEditing);
193
+ * ```
194
+ */
195
+ isCellEditing(): boolean;
185
196
  /**
186
197
  * Get scroll state of specified sheet.
187
198
  * @param {string} sheetId - sheet id
@@ -268,6 +279,7 @@ export declare class FWorkbookSheetsUIMixin extends FWorkbook implements IFWorkb
268
279
  endEditing(save?: boolean): Promise<boolean>;
269
280
  endEditingAsync(save?: boolean): Promise<boolean>;
270
281
  abortEditingAsync(): Promise<boolean>;
282
+ isCellEditing(): boolean;
271
283
  /**
272
284
  * Get scroll state of specified sheet.
273
285
  * @param {string} sheetId - sheet id
@@ -1,7 +1,8 @@
1
- import { IDisposable, IRange, Nullable } from '@univerjs/core';
1
+ import { IDisposable, IRange, ISelectionCell, Nullable } from '@univerjs/core';
2
2
  import { IColumnsHeaderCfgParam, IRowsHeaderCfgParam, SpreadsheetSkeleton } from '@univerjs/engine-render';
3
+ import { ISelectionStyle } from '@univerjs/sheets';
3
4
  import { IScrollState, IViewportScrollState } from '@univerjs/sheets-ui';
4
- import { FWorksheet } from '@univerjs/sheets/facade';
5
+ import { FRange, FWorksheet } from '@univerjs/sheets/facade';
5
6
  /**
6
7
  * @ignore
7
8
  */
@@ -17,6 +18,24 @@ export interface IFWorksheetSkeletonMixin {
17
18
  * ```
18
19
  */
19
20
  refreshCanvas(): FWorksheet;
21
+ /**
22
+ * Highlight multiple ranges on the worksheet.
23
+ * @param {FRange[]} ranges The ranges to highlight.
24
+ * @param {Nullable<Partial<ISelectionStyle>>} style - style for highlight ranges.
25
+ * @param {Nullable<ISelectionCell>} primary - primary cell for highlight ranges.
26
+ * @return {IDisposable} An IDisposable to remove the highlights.
27
+ * @example
28
+ * ```ts
29
+ * const fWorkbook = univerAPI.getActiveWorkbook();
30
+ * const fWorksheet = fWorkbook.getActiveSheet();
31
+ * const ranges = [fWorksheet.getRange('A1:B2'), fWorksheet.getRange('D4:E5')];
32
+ * const disposable = fWorksheet.highlightRanges(ranges, { fill: 'yellow' });
33
+ *
34
+ * // To remove the highlights later
35
+ * disposable.dispose();
36
+ * ```
37
+ */
38
+ highlightRanges(ranges: FRange[], style?: Nullable<Partial<ISelectionStyle>>, primary?: Nullable<ISelectionCell>): IDisposable;
20
39
  /**
21
40
  * Set zoom ratio of the worksheet.
22
41
  * @param {number} zoomRatio The zoom ratio to set.It should be in the range of 0.1 to 4.0.
@@ -63,6 +82,7 @@ export interface IFWorksheetSkeletonMixin {
63
82
  * Based on the limitations of viewport and the number of rows and columns, you can only scroll to the maximum scrollable range.
64
83
  * @param {number} row - Cell row index
65
84
  * @param {number} column - Cell column index
85
+ * @param {number} [duration] - The duration of the scroll animation in milliseconds.
66
86
  * @returns {FWorksheet} - The FWorksheet instance for chaining.
67
87
  * @example
68
88
  * ```ts
@@ -76,7 +96,7 @@ export interface IFWorksheetSkeletonMixin {
76
96
  * fWorksheet.scrollToCell(row, column);
77
97
  * ```
78
98
  */
79
- scrollToCell(row: number, column: number): FWorksheet;
99
+ scrollToCell(row: number, column: number, duration?: number): FWorksheet;
80
100
  /**
81
101
  * Get scroll state of current sheet.
82
102
  * @returns {IScrollState} curr scroll state
@@ -249,10 +269,11 @@ export interface IFWorksheetSkeletonMixin {
249
269
  }
250
270
  export declare class FWorksheetSkeletonMixin extends FWorksheet implements IFWorksheetSkeletonMixin {
251
271
  refreshCanvas(): FWorksheet;
272
+ highlightRanges(ranges: FRange[], style?: Nullable<Partial<ISelectionStyle>>, primary?: Nullable<ISelectionCell>): IDisposable;
252
273
  zoom(zoomRatio: number): FWorksheet;
253
274
  getZoom(): number;
254
275
  getVisibleRange(): IRange;
255
- scrollToCell(row: number, column: number): FWorksheet;
276
+ scrollToCell(row: number, column: number, duration?: number): FWorksheet;
256
277
  getScrollState(): IScrollState;
257
278
  onScroll(callback: (params: Nullable<IViewportScrollState>) => void): IDisposable;
258
279
  getSkeleton(): Nullable<SpreadsheetSkeleton>;
@@ -27,6 +27,48 @@ export interface IScrollState {
27
27
  * e.g. If column A ~ C is frozen, the first column of viewMain is D, but sheetViewStartColumn still 0.
28
28
  */
29
29
  sheetViewStartColumn: number;
30
+ /**
31
+ * The duration of the scroll animation in milliseconds.
32
+ */
33
+ duration?: number;
34
+ /**
35
+ * The relative screen offset ratio (horizontal).
36
+ *
37
+ * - Represents how far the target scroll position is along the **visible screen width**.
38
+ * - The value is **relative**, not absolute — for example:
39
+ * - `screenRatioX = 0` → aligns the target with the **left edge** of the visible area.
40
+ * - `screenRatioX = 0.5` → centers the target horizontally.
41
+ * - `screenRatioX = 1` → aligns the target with the **right edge**.
42
+ *
43
+ * The final horizontal scroll offset is calculated as:
44
+ * ```ts
45
+ * offsetX = screenWidth * screenRatioX
46
+ * ```
47
+ *
48
+ * @example
49
+ * // Scroll to 60% of the screen width to make the range appear slightly right-centered
50
+ * screenRatioX = 0.6
51
+ */
52
+ screenRatioX?: number;
53
+ /**
54
+ * The relative screen offset ratio (vertical).
55
+ *
56
+ * - Represents how far the target scroll position is along the **visible screen height**.
57
+ * - The value is **relative**, not absolute — for example:
58
+ * - `screenRatioY = 0` → aligns the target with the **top edge** of the visible area.
59
+ * - `screenRatioY = 0.5` → centers the target vertically.
60
+ * - `screenRatioY = 1` → aligns the target with the **bottom edge**.
61
+ *
62
+ * The final vertical scroll offset is calculated as:
63
+ * ```ts
64
+ * offsetY = screenHeight * screenRatioY
65
+ * ```
66
+ *
67
+ * @example
68
+ * // Scroll to 55% of the screen height for a slightly lower visual bias
69
+ * screenRatioY = 0.55
70
+ */
71
+ screenRatioY?: number;
30
72
  }
31
73
  export interface IViewportScrollState extends IScrollState {
32
74
  /** scroll value in scrollbar */
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(p,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("@univerjs/sheets-ui"),require("@univerjs/sheets/facade"),require("@univerjs/ui"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/core/facade","@univerjs/docs","@univerjs/engine-render","@univerjs/sheets","@univerjs/sheets-ui","@univerjs/sheets/facade","@univerjs/ui","rxjs"],h):(p=typeof globalThis<"u"?globalThis:p||self,h(p.UniverSheetsUiFacade={},p.UniverCore,p.UniverCoreFacade,p.UniverDocs,p.UniverEngineRender,p.UniverSheets,p.UniverSheetsUi,p.UniverSheetsFacade,p.UniverUi,p.rxjs))})(this,(function(p,h,P,H,S,I,d,b,C,m){"use strict";class y extends P.FUniver{_initSheetUIEvent(e){const r=e.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeSheetEditStart,()=>r.beforeCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:a}=v,n=l.getEditLocation();if(g){const c={row:n.row,column:n.column,eventType:a,keycode:u,workbook:o,worksheet:s,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,c),c.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetEditEnd,()=>r.beforeCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=e.get(h.IUniverInstanceService),g=t.params,{visible:u,keycode:a,eventType:n}=g,c=l.getEditLocation();if(!u){const M={row:c.row,column:c.column,eventType:n,keycode:a,workbook:o,worksheet:s,isZenEditor:!1,value:h.RichTextValue.create(v.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:a!==C.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,M),M.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.SheetEditStarted,()=>r.onCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:a}=v,n=l.getEditLocation();if(g){const c={row:n.row,column:n.column,eventType:a,keycode:u,workbook:o,worksheet:s,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,c)}})),this.registerEventHandler(this.Event.SheetEditEnded,()=>r.onCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:a}=v,n=l.getEditLocation();if(!g){const c={row:n.row,column:n.column,eventType:a,keycode:u,workbook:o,worksheet:s,isZenEditor:!1,isConfirm:u!==C.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,c)}})),this.registerEventHandler(this.Event.SheetEditChanging,()=>r.onCommandExecuted(t=>{if(t.id!==H.RichTextEditingMutation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=e.get(h.IUniverInstanceService),g=t.params;if(!l.isVisible().visible)return;const{unitId:u}=g;if(u===h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const{row:a,column:n}=l.getEditLocation(),c={workbook:o,worksheet:s,row:a,column:n,value:h.RichTextValue.create(v.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,c)}})),this.registerEventHandler(this.Event.BeforeSheetZoomChange,()=>r.beforeCommandExecuted(t=>{if(t.id!==d.SetZoomRatioCommand.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l={zoom:t.params.zoomRatio,workbook:o,worksheet:s};if(this.fireEvent(this.Event.BeforeSheetZoomChange,l),l.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.SheetZoomChanged,()=>r.onCommandExecuted(t=>{if(t.id!==d.SetZoomRatioCommand.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i;this.fireEvent(this.Event.SheetZoomChanged,{zoom:s.getZoom(),workbook:o,worksheet:s})}))}_initObserverListener(e){const r=e.get(S.IRenderManagerService),t=e.get(h.LifecycleService),i=new h.DisposableCollection;this.disposeWithMe(t.lifecycle$.subscribe(v=>{if(v!==h.LifecycleStages.Rendered)return;i.dispose();const g=e.get(d.HoverManagerService),u=e.get(d.DragManagerService);g&&(this.registerEventHandler(this.Event.CellClicked,()=>{var a;return(a=g.currentClickedCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.CellClicked,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.CellHover,()=>{var a;return(a=g.currentRichText$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellHover,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerDown,()=>{var a;return(a=g.currentPointerDownCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerDown,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerUp,()=>{var a;return(a=g.currentPointerUpCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerUp,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerMove,()=>{var a;return(a=g.currentCellPosWithEvent$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerMove,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.DragOver,()=>{var a;return(a=u.currentCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.DragOver,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.Drop,()=>{var a;return(a=u.endCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.Drop,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.RowHeaderClick,()=>{var a;return(a=g.currentRowHeaderClick$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderClick,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderPointerDown,()=>{var a;return(a=g.currentRowHeaderPointerDown$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderPointerDown,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderPointerUp,()=>{var a;return(a=g.currentRowHeaderPointerUp$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderPointerUp,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderHover,()=>{var a;return(a=g.currentHoveredRowHeader$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderHover,{...c,row:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderClick,()=>{var a;return(a=g.currentColHeaderClick$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderClick,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderPointerDown,()=>{var a;return(a=g.currentColHeaderPointerDown$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderPointerDown,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderPointerUp,()=>{var a;return(a=g.currentColHeaderPointerUp$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderPointerUp,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderHover,()=>{var a;return(a=g.currentHoveredColHeader$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderHover,{...c,column:n.index})})}))})),this.disposeWithMe(i);const o=new Map;let s;const l=m.combineLatest([r.created$,t.lifecycle$]);this.disposeWithMe(l.subscribe(([v,g])=>{var M;if(v.type===h.UniverInstanceType.UNIVER_SHEET&&(s=v),g<=h.LifecycleStages.Rendered||!s)return;const u=new h.DisposableCollection,a=this.getWorkbook(s.unitId);if(!a)return;o.get(s.unitId)&&((M=o.get(s.unitId))==null||M.dispose()),o.set(s.unitId,u);const n=s.with(d.SheetScrollManagerService),c=s.with(I.SheetsSelectionsService);u.add(this.registerEventHandler(this.Event.Scroll,()=>n.validViewportScrollInfo$.subscribe(E=>{E&&this.fireEvent(this.Event.Scroll,{workbook:a,worksheet:a.getActiveSheet(),...E})}))),u.add(this.registerEventHandler(this.Event.SelectionMoveStart,()=>c.selectionMoveStart$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoveStart,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionMoving,()=>c.selectionMoving$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoving,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionMoveEnd,()=>c.selectionMoveEnd$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoveEnd,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionChanged,()=>c.selectionChanged$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionChanged,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),s=null,this.disposeWithMe(u)})),this.disposeWithMe(r.disposed$.subscribe(v=>{var g;(g=o.get(v))==null||g.dispose(),o.delete(v)})),this.disposeWithMe(()=>{o.forEach(v=>{v.dispose()})})}_initialize(e){this._initSheetUIEvent(e),this._initObserverListener(e);const r=e.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeClipboardChange,()=>r.beforeCommandExecuted(t=>{switch(t.id){case C.CopyCommand.id:case C.CutCommand.id:this._beforeClipboardChange();break}})),this.registerEventHandler(this.Event.ClipboardChanged,()=>r.onCommandExecuted(t=>{switch(t.id){case C.CopyCommand.id:case C.CutCommand.id:this._clipboardChanged();break}})),this.registerEventHandler(this.Event.BeforeClipboardPaste,()=>r.beforeCommandExecuted(t=>{switch(t.id){case d.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(t.params);break;case C.PasteCommand.id:this._beforeClipboardPasteAsync();break}})),this.registerEventHandler(this.Event.ClipboardPasted,()=>r.onCommandExecuted(t=>{switch(t.id){case d.SheetPasteShortKeyCommand.id:this._clipboardPaste(t.params);break;case C.PasteCommand.id:this._clipboardPasteAsync();break}})),this.registerEventHandler(this.Event.SheetSkeletonChanged,()=>r.onCommandExecuted(t=>{if(I.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(t.id)>-1){const i=this.getActiveSheet();if(!i)return;const o=I.getSkeletonChangedEffectedRange(t,i.worksheet.getMaxColumns()).map(s=>{var l,v;return(v=(l=this.getWorkbook(s.unitId))==null?void 0:l.getSheetBySheetId(s.subUnitId))==null?void 0:v.getRange(s.range)}).filter(Boolean);if(!o.length)return;this.fireEvent(this.Event.SheetSkeletonChanged,{workbook:i.workbook,worksheet:i.worksheet,payload:t,skeleton:i.worksheet.getSkeleton(),effectedRanges:o})}}))}_generateClipboardCopyParam(){const e=this.getActiveWorkbook(),r=e==null?void 0:e.getActiveSheet(),t=e==null?void 0:e.getActiveRange();if(!e||!r||!t)return;const o=this._injector.get(d.ISheetClipboardService).generateCopyContent(e.getId(),r.getSheetId(),t.getRange());if(!o)return;const{html:s,plain:l}=o;return{workbook:e,worksheet:r,text:l,html:s,fromSheet:r,fromRange:t}}_beforeClipboardChange(){const e=this._generateClipboardCopyParam();if(e&&(this.fireEvent(this.Event.BeforeClipboardChange,e),e.cancel))throw new h.CanceledError}_clipboardChanged(){const e=this._generateClipboardCopyParam();e&&this.fireEvent(this.Event.ClipboardChanged,e)}_generateClipboardPasteParam(e){if(!e)return;const{htmlContent:r,textContent:t}=e,i=this.getActiveWorkbook(),o=i==null?void 0:i.getActiveSheet();return!i||!o?void 0:{workbook:i,worksheet:o,text:t,html:r}}async _generateClipboardPasteParamAsync(){const e=this.getActiveWorkbook(),r=e==null?void 0:e.getActiveSheet();if(!e||!r)return;const o=(await this._injector.get(C.IClipboardInterfaceService).read())[0];let s;if(o){const l=o.types,v=l.indexOf(C.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await o.getType(C.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(u=>u&&u.text()):"",g=l.indexOf(C.HTML_CLIPBOARD_MIME_TYPE)!==-1?await o.getType(C.HTML_CLIPBOARD_MIME_TYPE).then(u=>u&&u.text()):"";s={workbook:e,worksheet:r,text:v,html:g}}return s}_beforeClipboardPaste(e){const r=this._generateClipboardPasteParam(e);if(r&&(this.fireEvent(this.Event.BeforeClipboardPaste,r),r.cancel))throw new h.CanceledError}_clipboardPaste(e){const r=this._generateClipboardPasteParam(e);if(r&&(this.fireEvent(this.Event.ClipboardPasted,r),r.cancel))throw new h.CanceledError}async _beforeClipboardPasteAsync(){if(!C.supportClipboardAPI()){this._injector.get(h.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 h.CanceledError}async _clipboardPasteAsync(){if(!C.supportClipboardAPI()){this._injector.get(h.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 h.CanceledError}customizeColumnHeader(e){var g,u;const r=this.getActiveWorkbook();if(!r){console.error("WorkBook not exist");return}const t=r==null?void 0:r.getId(),i=this._injector.get(S.IRenderManagerService),o=r.getActiveSheet(),s=o.getSheetId(),l=i.getRenderById(t);l&&((g=e.headerStyle)!=null&&g.size)&&(l.with(d.SheetSkeletonManagerService).setColumnHeaderSize(l,s,(u=e.headerStyle)==null?void 0:u.size),o==null||o.refreshCanvas()),this._getSheetRenderComponent(t,d.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e),o==null||o.refreshCanvas()}customizeRowHeader(e){const r=this.getActiveWorkbook();if(!r){console.error("WorkBook not exist");return}const t=r==null?void 0:r.getId();this._getSheetRenderComponent(t,d.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,d.SHEET_VIEW_KEY.ROW),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,d.SHEET_VIEW_KEY.COLUMN),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetMainExtension(e,...r){const t=this._getSheetRenderComponent(e,d.SHEET_VIEW_KEY.MAIN),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}_getSheetRenderComponent(e,r){const i=this._injector.get(S.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}getSheetHooks(){return this._injector.createInstance(b.FSheetHooks)}pasteIntoSheet(e,r,t){return this._commandService.executeCommand(d.SheetPasteShortKeyCommand.id,{htmlContent:e,textContent:r,files:t})}}P.FUniver.extend(y);class D extends b.FWorkbook{openSiderbar(e){return this._logDeprecation("openSiderbar"),this._injector.get(C.ISidebarService).open(e)}openDialog(e){this._logDeprecation("openDialog");const t=this._injector.get(C.IDialogService).open({...e,onClose:()=>{t.dispose()}});return t}customizeColumnHeader(e){const r=this._workbook.getUnitId();this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){const r=this._workbook.getUnitId();this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}_getSheetRenderComponent(e,r){const i=this._injector.get(S.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}_logDeprecation(e){this._injector.get(h.ILogService).warn("[FWorkbook]",`${e} is deprecated. Please use the function of the same name on "FUniver".`)}generateCellParams(e){const r=this.getActiveSheet();return{row:e.row,column:e.col,workbook:this,worksheet:r}}onCellClick(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentClickedCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}onCellHover(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentRichText$.pipe(m.filter(t=>!!t)).subscribe(e))}onCellPointerDown(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentPointerUpCell$.subscribe(e))}onCellPointerMove(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentCellPosWithEvent$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t,t.event)}))}onDragOver(e){const r=this._injector.get(d.DragManagerService);return h.toDisposable(r.currentCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}onDrop(e){const r=this._injector.get(d.DragManagerService);return h.toDisposable(r.endCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}startEditing(){return this._injector.get(h.ICommandService).syncExecuteCommand(d.SetCellEditVisibleOperation.id,{eventType:S.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){return this._injector.get(h.ICommandService).syncExecuteCommand(d.SetCellEditVisibleOperation.id,{eventType:S.DeviceInputEventType.Keyboard,keycode:e?C.KeyCode.ENTER:C.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await h.awaitTime(0),!0}endEditingAsync(e=!0){return this.endEditing(e)}abortEditingAsync(){return this.endEditingAsync(!1)}getScrollStateBySheetId(e){const r=this._workbook.getUnitId(),i=this._injector.get(S.IRenderManagerService).getRenderById(r);return i?i.with(d.SheetScrollManagerService).getScrollStateByParam({unitId:r,sheetId:e}):null}disableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).showSelection(),this}}b.FWorkbook.extend(D);class T extends b.FWorksheet{refreshCanvas(){const e=this._injector.get(S.IRenderManagerService),r=this._fWorkbook.id,t=e.getRenderById(r);if(!t)throw new Error(`Render Unit with unitId ${r} not found`);t.with(d.SheetSkeletonManagerService).reCalculate();const i=t.mainComponent;if(!i)throw new Error("Main component not found");return i.makeDirty(),this}zoom(e){const r=this._injector.get(h.ICommandService),t=Math.min(Math.max(e,.1),4);return r.executeCommand(d.SetZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:t}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);let i={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!t)return i;const s=t.with(d.SheetSkeletonManagerService).getCurrentSkeleton();if(!s)return i;const l=s==null?void 0:s.getVisibleRanges();if(!l)return i;i=s.getVisibleRangeByViewport(S.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[v,g]of l)S.sheetContentViewportKeys.indexOf(v)!==-1&&(i.startColumn=Math.min(i.startColumn,g.startColumn),i.startRow=Math.min(i.startRow,g.startRow),i.endColumn=Math.max(i.endColumn,g.endColumn),i.endRow=Math.max(i.endRow,g.endRow));return i}scrollToCell(e,r){const t=this._workbook.getUnitId(),o=this._injector.get(S.IRenderManagerService).getRenderById(t);return o&&(o==null?void 0:o.with(d.SheetsScrollRenderController)).scrollToCell(e,r),this}getScrollState(){const e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(S.IRenderManagerService).getRenderById(r);return o&&o.with(d.SheetScrollManagerService).getScrollStateByParam({unitId:r,sheetId:t})||e}onScroll(e){var o;const r=this._workbook.getUnitId(),i=(o=this._injector.get(S.IRenderManagerService).getRenderById(r))==null?void 0:o.with(d.SheetScrollManagerService);if(i){const s=i.validViewportScrollInfo$.subscribe(l=>{e(l)});return h.toDisposable(s)}return h.toDisposable(()=>{})}getSkeleton(){var r,t;const e=(r=this._injector.get(S.IRenderManagerService).getRenderById(this._workbook.getUnitId()))==null?void 0:r.with(d.SheetSkeletonManagerService);return(t=e==null?void 0:e.getWorksheetSkeleton(this._worksheet.getSheetId()))==null?void 0:t.skeleton}autoResizeColumn(e){return this.autoResizeColumns(e,1)}autoResizeColumns(e,r){const t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startColumn:e,endColumn:e+r-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(d.SetWorksheetColAutoWidthCommand.id,{unitId:t,subUnitId:i,ranges:o}),this}setColumnAutoWidth(e,r){return this.autoResizeColumns(e,r)}autoResizeRows(e,r){const t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e+r-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(I.SetWorksheetRowIsAutoHeightCommand.id,{unitId:t,subUnitId:i,ranges:o}),this}customizeColumnHeader(e){var l,v;const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(S.IRenderManagerService).getRenderById(r);o&&((l=e.headerStyle)!=null&&l.size)&&o.with(d.SheetSkeletonManagerService).setColumnHeaderSize(o,t,(v=e.headerStyle)==null?void 0:v.size),this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e,t)}customizeRowHeader(e){var l,v;const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(S.IRenderManagerService).getRenderById(r);o&&((l=e.headerStyle)!=null&&l.size)&&o.with(d.SheetSkeletonManagerService).setRowHeaderSize(o,t,(v=e.headerStyle)==null?void 0:v.size),this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.ROW).setCustomHeader(e,t)}setColumnHeaderHeight(e){const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return this._commandService.executeCommand(d.SetColumnHeaderHeightCommand.id,{unitId:r,subUnitId:t,size:e}),this}setRowHeaderWidth(e){const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return this._commandService.executeCommand(d.SetRowHeaderWidthCommand.id,{unitId:r,subUnitId:t,size:e}),this}_getSheetRenderComponent(e,r){const i=this._injector.get(S.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}}b.FWorksheet.extend(T);class x extends b.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}b.FPermission.extend(x);class B extends b.FSheetHooks{onCellPointerMove(e){return h.toDisposable(this._injector.get(d.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return h.toDisposable(this._injector.get(d.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return h.toDisposable(this._injector.get(d.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return h.toDisposable(this._injector.get(d.DragManagerService).endCell$.subscribe(e))}onCellRender(e,r=h.InterceptorEffectEnum.Style,t=I.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(I.SheetInterceptorService).intercept(I.INTERCEPTOR_POINT.CELL_CONTENT,{effect:r,handler:(i,o,s)=>(i&&!i.customRender&&e&&(i.customRender=[...e]),s(i)),priority:t})}onBeforeCellEdit(e){return this._injector.get(h.ICommandService).beforeCommandExecuted(r=>{const t=r.params;r.id===d.SetCellEditVisibleOperation.id&&t.visible&&e(t)})}onAfterCellEdit(e){return this._injector.get(h.ICommandService).onCommandExecuted(r=>{const t=r.params;r.id===d.SetCellEditVisibleOperation.id&&!t.visible&&e(t)})}}b.FSheetHooks.extend(B);const _={CellClicked:"CellClicked",CellPointerDown:"CellPointerDown",CellPointerUp:"CellPointerUp",CellPointerMove:"CellPointerMove",CellHover:"CellHover"};class A{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 _.CellClicked}get CellHover(){return _.CellHover}get CellPointerDown(){return _.CellPointerDown}get CellPointerUp(){return _.CellPointerUp}get CellPointerMove(){return _.CellPointerMove}get DragOver(){return"DragOver"}get Drop(){return"Drop"}get Scroll(){return"Scroll"}get SelectionMoveStart(){return"SelectionMoveStart"}get SelectionChanged(){return"SelectionChanged"}get SelectionMoving(){return"SelectionMoving"}get SelectionMoveEnd(){return"SelectionMoveEnd"}get RowHeaderClick(){return"RowHeaderClick"}get RowHeaderPointerDown(){return"RowHeaderPointerDown"}get RowHeaderPointerUp(){return"RowHeaderPointerUp"}get RowHeaderHover(){return"RowHeaderHover"}get ColumnHeaderClick(){return"ColumnHeaderClick"}get ColumnHeaderPointerDown(){return"ColumnHeaderPointerDown"}get ColumnHeaderPointerUp(){return"ColumnHeaderPointerUp"}get ColumnHeaderHover(){return"ColumnHeaderHover"}get SheetSkeletonChanged(){return"SheetSkeletonChanged"}get BeforeSheetZoomChange(){return"BeforeSheetZoomChange"}get SheetZoomChanged(){return"SheetZoomChanged"}}P.FEventName.extend(A);class O extends b.FRange{getCell(){var l;const e=this._injector.get(S.IRenderManagerService),r=this._injector.get(h.ILogService),t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=e.getRenderById(t),s=(l=o==null?void 0:o.with(d.SheetSkeletonManagerService).getSkeletonParam(i))==null?void 0:l.skeleton;if(!s)throw r.error("[Facade]: `FRange.getCell` can only be called in current worksheet"),new Error("`FRange.getCell` can only be called in current worksheet");return s.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:e,startY:r,endX:t,endY:i}=this.getCell(),o={x:e,y:r,width:t-e,height:i-r,top:r,left:e,bottom:i,right:t};return{...o,toJSON:()=>JSON.stringify(o)}}generateHTML(){var t;const r=this._injector.get(d.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(t=r==null?void 0:r.html)!=null?t:""}attachPopup(e){var s,l,v;e.direction=(s=e.direction)!=null?s:"horizontal",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(v=e.offset)!=null?v:[0,0];const{key:r,disposableCollection:t}=R(e,this._injector.get(C.ComponentManager)),o=this._injector.get(d.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:r},this.getUnitId(),this._worksheet.getSheetId());return o?(t.add(o),t):(t.dispose(),null)}attachAlertPopup(e){const r=this._injector.get(d.CellAlertManagerService),t={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return r.showAlert({...e,location:t}),{dispose:()=>{r.removeAlert(e.key)}}}attachRangePopup(e){var s,l,v;e.direction=(s=e.direction)!=null?s:"top-center",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(v=e.offset)!=null?v:[0,0];const{key:r,disposableCollection:t}=R(e,this._injector.get(C.ComponentManager)),o=this._injector.get(d.SheetCanvasPopManagerService).attachRangePopup(this._range,{...e,componentKey:r},this.getUnitId(),this._worksheet.getSheetId());return o?(t.add(o),t):(t.dispose(),null)}highlight(e,r){const t=this._injector.get(d.IMarkSelectionService),i=t.addShape({range:this._range,style:e,primary:r});if(!i)throw new Error("Failed to highlight current range");return h.toDisposable(()=>{t.removeShape(i)})}showDropdown(e){return this._injector.get(d.ISheetCellDropdownManagerService).showDropdown(e)}}b.FRange.extend(O);function R(f,e){const{componentKey:r,isVue3:t}=f;let i;const o=new h.DisposableCollection;return typeof r=="string"?i=r:(i=`External_${h.generateRandomId(6)}`,o.add(e.register(i,r,{framework:t?"vue3":"react"}))),{key:i,disposableCollection:o}}p.transformComponentKey=R,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(p,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("@univerjs/sheets-ui"),require("@univerjs/sheets/facade"),require("@univerjs/ui"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/core/facade","@univerjs/docs","@univerjs/engine-render","@univerjs/sheets","@univerjs/sheets-ui","@univerjs/sheets/facade","@univerjs/ui","rxjs"],h):(p=typeof globalThis<"u"?globalThis:p||self,h(p.UniverSheetsUiFacade={},p.UniverCore,p.UniverCoreFacade,p.UniverDocs,p.UniverEngineRender,p.UniverSheets,p.UniverSheetsUi,p.UniverSheetsFacade,p.UniverUi,p.rxjs))})(this,(function(p,h,P,H,u,I,a,b,C,m){"use strict";class y extends P.FUniver{_initSheetUIEvent(e){const r=e.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeSheetEditStart,()=>r.beforeCommandExecuted(t=>{if(t.id!==a.SetCellEditVisibleOperation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(a.IEditorBridgeService),g=t.params,{visible:v,keycode:S,eventType:d}=g,n=l.getEditLocation();if(v){const c={row:n.row,column:n.column,eventType:d,keycode:S,workbook:o,worksheet:s,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,c),c.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetEditEnd,()=>r.beforeCommandExecuted(t=>{if(t.id!==a.SetCellEditVisibleOperation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(a.IEditorBridgeService),g=e.get(h.IUniverInstanceService),v=t.params,{visible:S,keycode:d,eventType:n}=v,c=l.getEditLocation();if(!S){const M={row:c.row,column:c.column,eventType:n,keycode:d,workbook:o,worksheet:s,isZenEditor:!1,value:h.RichTextValue.create(g.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:d!==C.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,M),M.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.SheetEditStarted,()=>r.onCommandExecuted(t=>{if(t.id!==a.SetCellEditVisibleOperation.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(a.IEditorBridgeService),g=t.params,{visible:v,keycode:S,eventType:d}=g,n=l.getEditLocation();if(v){const c={row:n.row,column:n.column,eventType:d,keycode:S,workbook:o,worksheet:s,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,c)}})),this.registerEventHandler(this.Event.SheetEditEnded,()=>r.onCommandExecuted(t=>{if(t.id!==a.SetCellEditVisibleOperation.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(a.IEditorBridgeService),g=t.params,{visible:v,keycode:S,eventType:d}=g,n=l.getEditLocation();if(!v){const c={row:n.row,column:n.column,eventType:d,keycode:S,workbook:o,worksheet:s,isZenEditor:!1,isConfirm:S!==C.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,c)}})),this.registerEventHandler(this.Event.SheetEditChanging,()=>r.onCommandExecuted(t=>{if(t.id!==H.RichTextEditingMutation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(a.IEditorBridgeService),g=e.get(h.IUniverInstanceService),v=t.params;if(!l.isVisible().visible)return;const{unitId:S}=v;if(S===h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const{row:d,column:n}=l.getEditLocation(),c={workbook:o,worksheet:s,row:d,column:n,value:h.RichTextValue.create(g.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,c)}})),this.registerEventHandler(this.Event.BeforeSheetZoomChange,()=>r.beforeCommandExecuted(t=>{if(t.id!==a.SetZoomRatioCommand.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l={zoom:t.params.zoomRatio,workbook:o,worksheet:s};if(this.fireEvent(this.Event.BeforeSheetZoomChange,l),l.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.SheetZoomChanged,()=>r.onCommandExecuted(t=>{if(t.id!==a.SetZoomRatioCommand.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i;this.fireEvent(this.Event.SheetZoomChanged,{zoom:s.getZoom(),workbook:o,worksheet:s})}))}_initObserverListener(e){const r=e.get(u.IRenderManagerService),t=e.get(h.LifecycleService),i=new h.DisposableCollection;this.disposeWithMe(t.lifecycle$.subscribe(g=>{if(g!==h.LifecycleStages.Rendered)return;i.dispose();const v=e.get(a.HoverManagerService),S=e.get(a.DragManagerService);v&&(this.registerEventHandler(this.Event.CellClicked,()=>{var d;return(d=v.currentClickedCell$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.CellClicked,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.CellHover,()=>{var d;return(d=v.currentRichText$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellHover,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerDown,()=>{var d;return(d=v.currentPointerDownCell$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerDown,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerUp,()=>{var d;return(d=v.currentPointerUpCell$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerUp,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerMove,()=>{var d;return(d=v.currentCellPosWithEvent$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerMove,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.DragOver,()=>{var d;return(d=S.currentCell$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.DragOver,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.Drop,()=>{var d;return(d=S.endCell$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.Drop,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.RowHeaderClick,()=>{var d;return(d=v.currentRowHeaderClick$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderClick,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderPointerDown,()=>{var d;return(d=v.currentRowHeaderPointerDown$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderPointerDown,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderPointerUp,()=>{var d;return(d=v.currentRowHeaderPointerUp$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderPointerUp,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderHover,()=>{var d;return(d=v.currentHoveredRowHeader$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderHover,{...c,row:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderClick,()=>{var d;return(d=v.currentColHeaderClick$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderClick,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderPointerDown,()=>{var d;return(d=v.currentColHeaderPointerDown$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderPointerDown,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderPointerUp,()=>{var d;return(d=v.currentColHeaderPointerUp$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderPointerUp,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderHover,()=>{var d;return(d=v.currentHoveredColHeader$)==null?void 0:d.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderHover,{...c,column:n.index})})}))})),this.disposeWithMe(i);const o=new Map;let s;const l=m.combineLatest([r.created$,t.lifecycle$]);this.disposeWithMe(l.subscribe(([g,v])=>{var M;if(g.type===h.UniverInstanceType.UNIVER_SHEET&&(s=g),v<=h.LifecycleStages.Rendered||!s)return;const S=new h.DisposableCollection,d=this.getWorkbook(s.unitId);if(!d)return;o.get(s.unitId)&&((M=o.get(s.unitId))==null||M.dispose()),o.set(s.unitId,S);const n=s.with(a.SheetScrollManagerService),c=s.with(I.SheetsSelectionsService);S.add(this.registerEventHandler(this.Event.Scroll,()=>n.validViewportScrollInfo$.subscribe(E=>{E&&this.fireEvent(this.Event.Scroll,{workbook:d,worksheet:d.getActiveSheet(),...E})}))),S.add(this.registerEventHandler(this.Event.SelectionMoveStart,()=>c.selectionMoveStart$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoveStart,{workbook:d,worksheet:d.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),S.add(this.registerEventHandler(this.Event.SelectionMoving,()=>c.selectionMoving$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoving,{workbook:d,worksheet:d.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),S.add(this.registerEventHandler(this.Event.SelectionMoveEnd,()=>c.selectionMoveEnd$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoveEnd,{workbook:d,worksheet:d.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),S.add(this.registerEventHandler(this.Event.SelectionChanged,()=>c.selectionChanged$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionChanged,{workbook:d,worksheet:d.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),s=null,this.disposeWithMe(S)})),this.disposeWithMe(r.disposed$.subscribe(g=>{var v;(v=o.get(g))==null||v.dispose(),o.delete(g)})),this.disposeWithMe(()=>{o.forEach(g=>{g.dispose()})})}_initialize(e){this._initSheetUIEvent(e),this._initObserverListener(e);const r=e.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeClipboardChange,()=>r.beforeCommandExecuted(t=>{switch(t.id){case C.CopyCommand.id:case C.CutCommand.id:this._beforeClipboardChange();break}})),this.registerEventHandler(this.Event.ClipboardChanged,()=>r.onCommandExecuted(t=>{switch(t.id){case C.CopyCommand.id:case C.CutCommand.id:this._clipboardChanged();break}})),this.registerEventHandler(this.Event.BeforeClipboardPaste,()=>r.beforeCommandExecuted(t=>{switch(t.id){case a.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(t.params);break;case C.PasteCommand.id:this._beforeClipboardPasteAsync();break}})),this.registerEventHandler(this.Event.ClipboardPasted,()=>r.onCommandExecuted(t=>{switch(t.id){case a.SheetPasteShortKeyCommand.id:this._clipboardPaste(t.params);break;case C.PasteCommand.id:this._clipboardPasteAsync();break}})),this.registerEventHandler(this.Event.SheetSkeletonChanged,()=>r.onCommandExecuted(t=>{if(I.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(t.id)>-1){const i=this.getActiveSheet();if(!i)return;const o=I.getSkeletonChangedEffectedRange(t,i.worksheet.getMaxColumns()).map(s=>{var l,g;return(g=(l=this.getWorkbook(s.unitId))==null?void 0:l.getSheetBySheetId(s.subUnitId))==null?void 0:g.getRange(s.range)}).filter(Boolean);if(!o.length)return;this.fireEvent(this.Event.SheetSkeletonChanged,{workbook:i.workbook,worksheet:i.worksheet,payload:t,skeleton:i.worksheet.getSkeleton(),effectedRanges:o})}}))}_generateClipboardCopyParam(){const e=this.getActiveWorkbook(),r=e==null?void 0:e.getActiveSheet(),t=e==null?void 0:e.getActiveRange();if(!e||!r||!t)return;const o=this._injector.get(a.ISheetClipboardService).generateCopyContent(e.getId(),r.getSheetId(),t.getRange());if(!o)return;const{html:s,plain:l}=o;return{workbook:e,worksheet:r,text:l,html:s,fromSheet:r,fromRange:t}}_beforeClipboardChange(){const e=this._generateClipboardCopyParam();if(e&&(this.fireEvent(this.Event.BeforeClipboardChange,e),e.cancel))throw new h.CanceledError}_clipboardChanged(){const e=this._generateClipboardCopyParam();e&&this.fireEvent(this.Event.ClipboardChanged,e)}_generateClipboardPasteParam(e){if(!e)return;const{htmlContent:r,textContent:t}=e,i=this.getActiveWorkbook(),o=i==null?void 0:i.getActiveSheet();return!i||!o?void 0:{workbook:i,worksheet:o,text:t,html:r}}async _generateClipboardPasteParamAsync(){const e=this.getActiveWorkbook(),r=e==null?void 0:e.getActiveSheet();if(!e||!r)return;const o=(await this._injector.get(C.IClipboardInterfaceService).read())[0];let s;if(o){const l=o.types,g=l.indexOf(C.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await o.getType(C.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(S=>S&&S.text()):"",v=l.indexOf(C.HTML_CLIPBOARD_MIME_TYPE)!==-1?await o.getType(C.HTML_CLIPBOARD_MIME_TYPE).then(S=>S&&S.text()):"";s={workbook:e,worksheet:r,text:g,html:v}}return s}_beforeClipboardPaste(e){const r=this._generateClipboardPasteParam(e);if(r&&(this.fireEvent(this.Event.BeforeClipboardPaste,r),r.cancel))throw new h.CanceledError}_clipboardPaste(e){const r=this._generateClipboardPasteParam(e);if(r&&(this.fireEvent(this.Event.ClipboardPasted,r),r.cancel))throw new h.CanceledError}async _beforeClipboardPasteAsync(){if(!C.supportClipboardAPI()){this._injector.get(h.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 h.CanceledError}async _clipboardPasteAsync(){if(!C.supportClipboardAPI()){this._injector.get(h.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 h.CanceledError}customizeColumnHeader(e){var v,S;const r=this.getActiveWorkbook();if(!r){console.error("WorkBook not exist");return}const t=r==null?void 0:r.getId(),i=this._injector.get(u.IRenderManagerService),o=r.getActiveSheet(),s=o.getSheetId(),l=i.getRenderById(t);l&&((v=e.headerStyle)!=null&&v.size)&&(l.with(a.SheetSkeletonManagerService).setColumnHeaderSize(l,s,(S=e.headerStyle)==null?void 0:S.size),o==null||o.refreshCanvas()),this._getSheetRenderComponent(t,a.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e),o==null||o.refreshCanvas()}customizeRowHeader(e){const r=this.getActiveWorkbook();if(!r){console.error("WorkBook not exist");return}const t=r==null?void 0:r.getId();this._getSheetRenderComponent(t,a.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,a.SHEET_VIEW_KEY.ROW),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,a.SHEET_VIEW_KEY.COLUMN),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetMainExtension(e,...r){const t=this._getSheetRenderComponent(e,a.SHEET_VIEW_KEY.MAIN),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}_getSheetRenderComponent(e,r){const i=this._injector.get(u.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}getSheetHooks(){return this._injector.createInstance(b.FSheetHooks)}pasteIntoSheet(e,r,t){return this._commandService.executeCommand(a.SheetPasteShortKeyCommand.id,{htmlContent:e,textContent:r,files:t})}}P.FUniver.extend(y);class D extends b.FWorkbook{openSiderbar(e){return this._logDeprecation("openSiderbar"),this._injector.get(C.ISidebarService).open(e)}openDialog(e){this._logDeprecation("openDialog");const t=this._injector.get(C.IDialogService).open({...e,onClose:()=>{t.dispose()}});return t}customizeColumnHeader(e){const r=this._workbook.getUnitId();this._getSheetRenderComponent(r,a.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){const r=this._workbook.getUnitId();this._getSheetRenderComponent(r,a.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}_getSheetRenderComponent(e,r){const i=this._injector.get(u.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}_logDeprecation(e){this._injector.get(h.ILogService).warn("[FWorkbook]",`${e} is deprecated. Please use the function of the same name on "FUniver".`)}generateCellParams(e){const r=this.getActiveSheet();return{row:e.row,column:e.col,workbook:this,worksheet:r}}onCellClick(e){const r=this._injector.get(a.HoverManagerService);return h.toDisposable(r.currentClickedCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}onCellHover(e){const r=this._injector.get(a.HoverManagerService);return h.toDisposable(r.currentRichText$.pipe(m.filter(t=>!!t)).subscribe(e))}onCellPointerDown(e){const r=this._injector.get(a.HoverManagerService);return h.toDisposable(r.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const r=this._injector.get(a.HoverManagerService);return h.toDisposable(r.currentPointerUpCell$.subscribe(e))}onCellPointerMove(e){const r=this._injector.get(a.HoverManagerService);return h.toDisposable(r.currentCellPosWithEvent$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t,t.event)}))}onDragOver(e){const r=this._injector.get(a.DragManagerService);return h.toDisposable(r.currentCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}onDrop(e){const r=this._injector.get(a.DragManagerService);return h.toDisposable(r.endCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}startEditing(){const e=this._injector.get(h.ICommandService);return this._injector.get(a.IEditorBridgeService).isVisible().visible?!0:e.syncExecuteCommand(a.SetCellEditVisibleOperation.id,{eventType:u.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){const r=this._injector.get(h.ICommandService);return this._injector.get(a.IEditorBridgeService).isVisible().visible&&r.syncExecuteCommand(a.SetCellEditVisibleOperation.id,{eventType:u.DeviceInputEventType.Keyboard,keycode:e?C.KeyCode.ENTER:C.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await h.awaitTime(0),!0}endEditingAsync(e=!0){return this.endEditing(e)}abortEditingAsync(){return this.endEditingAsync(!1)}isCellEditing(){return this._injector.get(a.IEditorBridgeService).isVisible().visible}getScrollStateBySheetId(e){const r=this._workbook.getUnitId(),i=this._injector.get(u.IRenderManagerService).getRenderById(r);return i?i.with(a.SheetScrollManagerService).getScrollStateByParam({unitId:r,sheetId:e}):null}disableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(u.IRenderManagerService).getRenderById(e);return t&&t.with(a.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(u.IRenderManagerService).getRenderById(e);return t&&t.with(a.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(u.IRenderManagerService).getRenderById(e);return t&&t.with(a.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(u.IRenderManagerService).getRenderById(e);return t&&t.with(a.ISheetSelectionRenderService).showSelection(),this}}b.FWorkbook.extend(D);class T extends b.FWorksheet{refreshCanvas(){const e=this._injector.get(u.IRenderManagerService),r=this._fWorkbook.id,t=e.getRenderById(r);if(!t)throw new Error(`Render Unit with unitId ${r} not found`);t.with(a.SheetSkeletonManagerService).reCalculate();const i=t.mainComponent;if(!i)throw new Error("Main component not found");return i.makeDirty(),this}highlightRanges(e,r,t){const i=this._injector.get(a.IMarkSelectionService),o=[];for(const s of e){const l=s.getRange(),g=i.addShapeWithNoFresh({range:l,style:r,primary:t});g&&o.push(g)}if(i.refreshShapes(),o.length===0)throw new Error("Failed to highlight current range");return h.toDisposable(()=>{o.forEach(s=>{i.removeShape(s)})})}zoom(e){const r=this._injector.get(h.ICommandService),t=Math.min(Math.max(e,.1),4);return r.executeCommand(a.SetZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:t}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const e=this._workbook.getUnitId(),t=this._injector.get(u.IRenderManagerService).getRenderById(e);let i={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!t)return i;const s=t.with(a.SheetSkeletonManagerService).getCurrentSkeleton();if(!s)return i;const l=s==null?void 0:s.getVisibleRanges();if(!l)return i;i=s.getVisibleRangeByViewport(u.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[g,v]of l)u.sheetContentViewportKeys.indexOf(g)!==-1&&(i.startColumn=Math.min(i.startColumn,v.startColumn),i.startRow=Math.min(i.startRow,v.startRow),i.endColumn=Math.max(i.endColumn,v.endColumn),i.endRow=Math.max(i.endRow,v.endRow));return i}scrollToCell(e,r,t){const i=this._workbook.getUnitId(),s=this._injector.get(u.IRenderManagerService).getRenderById(i);return s&&(s==null?void 0:s.with(a.SheetsScrollRenderController)).scrollToCell(e,r,t),this}getScrollState(){const e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(u.IRenderManagerService).getRenderById(r);return o&&o.with(a.SheetScrollManagerService).getScrollStateByParam({unitId:r,sheetId:t})||e}onScroll(e){var o;const r=this._workbook.getUnitId(),i=(o=this._injector.get(u.IRenderManagerService).getRenderById(r))==null?void 0:o.with(a.SheetScrollManagerService);if(i){const s=i.validViewportScrollInfo$.subscribe(l=>{e(l)});return h.toDisposable(s)}return h.toDisposable(()=>{})}getSkeleton(){var r,t;const e=(r=this._injector.get(u.IRenderManagerService).getRenderById(this._workbook.getUnitId()))==null?void 0:r.with(a.SheetSkeletonManagerService);return(t=e==null?void 0:e.getWorksheetSkeleton(this._worksheet.getSheetId()))==null?void 0:t.skeleton}autoResizeColumn(e){return this.autoResizeColumns(e,1)}autoResizeColumns(e,r){const t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startColumn:e,endColumn:e+r-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(a.SetWorksheetColAutoWidthCommand.id,{unitId:t,subUnitId:i,ranges:o}),this}setColumnAutoWidth(e,r){return this.autoResizeColumns(e,r)}autoResizeRows(e,r){const t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e+r-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(I.SetWorksheetRowIsAutoHeightCommand.id,{unitId:t,subUnitId:i,ranges:o}),this}customizeColumnHeader(e){var l,g;const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(u.IRenderManagerService).getRenderById(r);o&&((l=e.headerStyle)!=null&&l.size)&&o.with(a.SheetSkeletonManagerService).setColumnHeaderSize(o,t,(g=e.headerStyle)==null?void 0:g.size),this._getSheetRenderComponent(r,a.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e,t)}customizeRowHeader(e){var l,g;const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(u.IRenderManagerService).getRenderById(r);o&&((l=e.headerStyle)!=null&&l.size)&&o.with(a.SheetSkeletonManagerService).setRowHeaderSize(o,t,(g=e.headerStyle)==null?void 0:g.size),this._getSheetRenderComponent(r,a.SHEET_VIEW_KEY.ROW).setCustomHeader(e,t)}setColumnHeaderHeight(e){const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return this._commandService.executeCommand(a.SetColumnHeaderHeightCommand.id,{unitId:r,subUnitId:t,size:e}),this}setRowHeaderWidth(e){const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return this._commandService.executeCommand(a.SetRowHeaderWidthCommand.id,{unitId:r,subUnitId:t,size:e}),this}_getSheetRenderComponent(e,r){const i=this._injector.get(u.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}}b.FWorksheet.extend(T);class B extends b.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}b.FPermission.extend(B);class x extends b.FSheetHooks{onCellPointerMove(e){return h.toDisposable(this._injector.get(a.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return h.toDisposable(this._injector.get(a.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return h.toDisposable(this._injector.get(a.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return h.toDisposable(this._injector.get(a.DragManagerService).endCell$.subscribe(e))}onCellRender(e,r=h.InterceptorEffectEnum.Style,t=I.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(I.SheetInterceptorService).intercept(I.INTERCEPTOR_POINT.CELL_CONTENT,{effect:r,handler:(i,o,s)=>(i&&!i.customRender&&e&&(i.customRender=[...e]),s(i)),priority:t})}onBeforeCellEdit(e){return this._injector.get(h.ICommandService).beforeCommandExecuted(r=>{const t=r.params;r.id===a.SetCellEditVisibleOperation.id&&t.visible&&e(t)})}onAfterCellEdit(e){return this._injector.get(h.ICommandService).onCommandExecuted(r=>{const t=r.params;r.id===a.SetCellEditVisibleOperation.id&&!t.visible&&e(t)})}}b.FSheetHooks.extend(x);const _={CellClicked:"CellClicked",CellPointerDown:"CellPointerDown",CellPointerUp:"CellPointerUp",CellPointerMove:"CellPointerMove",CellHover:"CellHover"};class A{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 _.CellClicked}get CellHover(){return _.CellHover}get CellPointerDown(){return _.CellPointerDown}get CellPointerUp(){return _.CellPointerUp}get CellPointerMove(){return _.CellPointerMove}get DragOver(){return"DragOver"}get Drop(){return"Drop"}get Scroll(){return"Scroll"}get SelectionMoveStart(){return"SelectionMoveStart"}get SelectionChanged(){return"SelectionChanged"}get SelectionMoving(){return"SelectionMoving"}get SelectionMoveEnd(){return"SelectionMoveEnd"}get RowHeaderClick(){return"RowHeaderClick"}get RowHeaderPointerDown(){return"RowHeaderPointerDown"}get RowHeaderPointerUp(){return"RowHeaderPointerUp"}get RowHeaderHover(){return"RowHeaderHover"}get ColumnHeaderClick(){return"ColumnHeaderClick"}get ColumnHeaderPointerDown(){return"ColumnHeaderPointerDown"}get ColumnHeaderPointerUp(){return"ColumnHeaderPointerUp"}get ColumnHeaderHover(){return"ColumnHeaderHover"}get SheetSkeletonChanged(){return"SheetSkeletonChanged"}get BeforeSheetZoomChange(){return"BeforeSheetZoomChange"}get SheetZoomChanged(){return"SheetZoomChanged"}}P.FEventName.extend(A);class O extends b.FRange{getCell(){var l;const e=this._injector.get(u.IRenderManagerService),r=this._injector.get(h.ILogService),t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=e.getRenderById(t),s=(l=o==null?void 0:o.with(a.SheetSkeletonManagerService).getSkeletonParam(i))==null?void 0:l.skeleton;if(!s)throw r.error("[Facade]: `FRange.getCell` can only be called in current worksheet"),new Error("`FRange.getCell` can only be called in current worksheet");return s.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:e,startY:r,endX:t,endY:i}=this.getCell(),o={x:e,y:r,width:t-e,height:i-r,top:r,left:e,bottom:i,right:t};return{...o,toJSON:()=>JSON.stringify(o)}}generateHTML(){var t;const r=this._injector.get(a.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(t=r==null?void 0:r.html)!=null?t:""}attachPopup(e){var s,l,g;e.direction=(s=e.direction)!=null?s:"horizontal",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(g=e.offset)!=null?g:[0,0];const{key:r,disposableCollection:t}=R(e,this._injector.get(C.ComponentManager)),o=this._injector.get(a.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:r},this.getUnitId(),this._worksheet.getSheetId());return o?(t.add(o),t):(t.dispose(),null)}attachAlertPopup(e){const r=this._injector.get(a.CellAlertManagerService),t={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return r.showAlert({...e,location:t}),{dispose:()=>{r.removeAlert(e.key)}}}attachRangePopup(e){var s,l,g;e.direction=(s=e.direction)!=null?s:"top-center",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(g=e.offset)!=null?g:[0,0];const{key:r,disposableCollection:t}=R(e,this._injector.get(C.ComponentManager)),o=this._injector.get(a.SheetCanvasPopManagerService).attachRangePopup(this._range,{...e,componentKey:r},this.getUnitId(),this._worksheet.getSheetId());return o?(t.add(o),t):(t.dispose(),null)}highlight(e,r){const t=this._injector.get(a.IMarkSelectionService),i=t.addShape({range:this._range,style:e,primary:r});if(!i)throw new Error("Failed to highlight current range");return h.toDisposable(()=>{t.removeShape(i)})}showDropdown(e){return this._injector.get(a.ISheetCellDropdownManagerService).showDropdown(e)}}b.FRange.extend(O);function R(f,e){const{componentKey:r,isVue3:t}=f;let i;const o=new h.DisposableCollection;return typeof r=="string"?i=r:(i=`External_${h.generateRandomId(6)}`,o.add(e.register(i,r,{framework:t?"vue3":"react"}))),{key:i,disposableCollection:o}}p.transformComponentKey=R,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));