@univerjs/sheets-ui 0.6.10-experimental.20250411-f5b7b16 → 0.6.10-experimental.20250418-8830bd4

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.
@@ -55,7 +55,7 @@ export declare function getSetCellValueMutations(pasteTo: ISheetDiscreteRangeLoc
55
55
  * @param accessor
56
56
  * @param withRichFormat
57
57
  */
58
- export declare function getSetCellStyleMutations(pasteTo: ISheetDiscreteRangeLocation, matrix: ObjectMatrix<ICellDataWithSpanInfo>, accessor: IAccessor, withRichFormat?: boolean): {
58
+ export declare function getSetCellStyleMutations(pasteTo: ISheetDiscreteRangeLocation, pasteFrom: Nullable<ISheetDiscreteRangeLocation>, matrix: ObjectMatrix<ICellDataWithSpanInfo>, accessor: IAccessor, withRichFormat?: boolean): {
59
59
  undos: IMutationInfo<object>[];
60
60
  redos: IMutationInfo<object>[];
61
61
  };
@@ -1,14 +1,13 @@
1
- import { DocumentDataModel, ICellData, IDocumentBody, IDocumentData, IStyleData, Nullable, Styles, Workbook, Disposable, ICommandService, IContextService, IUndoRedoService, IUniverInstanceService, LocaleService } from '@univerjs/core';
2
- import { IRenderContext, IRenderModule, IRenderManagerService } from '@univerjs/engine-render';
1
+ import { DocumentDataModel, ICellData, IDocumentBody, IDocumentData, IStyleData, Nullable, Styles, Disposable, ICommandService, IContextService, IUndoRedoService, IUniverInstanceService, LocaleService } from '@univerjs/core';
3
2
  import { DocSelectionManagerService } from '@univerjs/docs';
4
3
  import { IEditorService } from '@univerjs/docs-ui';
5
4
  import { IFunctionService, LexerTreeBuilder } from '@univerjs/engine-formula';
5
+ import { IRenderManagerService } from '@univerjs/engine-render';
6
6
  import { SheetInterceptorService, SheetsSelectionsService } from '@univerjs/sheets';
7
7
  import { IEditorBridgeService } from '../../services/editor-bridge.service';
8
8
  import { ICellEditorManagerService } from '../../services/editor/cell-editor-manager.service';
9
9
  import { SheetCellEditorResizeService } from '../../services/editor/cell-editor-resize.service';
10
- export declare class EditingRenderController extends Disposable implements IRenderModule {
11
- private readonly _context;
10
+ export declare class EditingRenderController extends Disposable {
12
11
  private readonly _undoRedoService;
13
12
  private readonly _contextService;
14
13
  private readonly _renderManagerService;
@@ -20,22 +19,20 @@ export declare class EditingRenderController extends Disposable implements IRend
20
19
  private readonly _commandService;
21
20
  protected readonly _localService: LocaleService;
22
21
  private readonly _editorService;
23
- private readonly _sheetCellEditorResizeService;
24
22
  private readonly _univerInstanceService;
25
23
  private readonly _sheetInterceptorService;
24
+ private readonly _sheetCellEditorResizeService;
25
+ private readonly _selectionManagerService;
26
26
  /**
27
27
  * It is used to distinguish whether the user has actively moved the cursor in the editor, mainly through mouse clicks.
28
28
  */
29
29
  private _cursorChange;
30
30
  /** If the corresponding unit is active and prepared for editing. */
31
- private _isUnitEditing;
32
- private _workbookSelections;
33
- private _d;
31
+ private _editingUnit;
34
32
  _cursorTimeout: NodeJS.Timeout;
35
- constructor(_context: IRenderContext<Workbook>, selectionManagerService: SheetsSelectionsService, _undoRedoService: IUndoRedoService, _contextService: IContextService, _renderManagerService: IRenderManagerService, _editorBridgeService: IEditorBridgeService, _cellEditorManagerService: ICellEditorManagerService, _lexerTreeBuilder: LexerTreeBuilder, _functionService: IFunctionService, _textSelectionManagerService: DocSelectionManagerService, _commandService: ICommandService, _localService: LocaleService, _editorService: IEditorService, _sheetCellEditorResizeService: SheetCellEditorResizeService, // RenderModule
36
- _univerInstanceService: IUniverInstanceService, _sheetInterceptorService: SheetInterceptorService);
33
+ constructor(_undoRedoService: IUndoRedoService, _contextService: IContextService, _renderManagerService: IRenderManagerService, _editorBridgeService: IEditorBridgeService, _cellEditorManagerService: ICellEditorManagerService, _lexerTreeBuilder: LexerTreeBuilder, _functionService: IFunctionService, _textSelectionManagerService: DocSelectionManagerService, _commandService: ICommandService, _localService: LocaleService, _editorService: IEditorService, _univerInstanceService: IUniverInstanceService, _sheetInterceptorService: SheetInterceptorService, _sheetCellEditorResizeService: SheetCellEditorResizeService, _selectionManagerService: SheetsSelectionsService);
37
34
  dispose(): void;
38
- private _disposeCurrent;
35
+ private get _workbookSelections();
39
36
  private _init;
40
37
  private _initEditorVisibilityListener;
41
38
  private _listenEditorFocus;
@@ -51,6 +48,7 @@ export declare class EditingRenderController extends Disposable implements IRend
51
48
  */
52
49
  private _commandExecutedListener;
53
50
  private _handleEditorVisible;
51
+ private _refreshCurrentSelections;
54
52
  private _handleEditorInvisible;
55
53
  private _getEditorObject;
56
54
  private _isCellImageData;
@@ -65,9 +63,9 @@ export declare class EditingRenderController extends Disposable implements IRend
65
63
  private _cursorStateListener;
66
64
  private _moveInEditor;
67
65
  private _getDocumentDataModel;
68
- private _isCurrentSheetFocused;
69
66
  private _getEditorSkeleton;
70
67
  private _getEditorViewModel;
68
+ private _getEditingUnit;
71
69
  private _emptyDocumentDataModel;
72
70
  }
73
71
  export declare function getCellDataByInput(cellData: ICellData, snapshot: Nullable<IDocumentData>, lexerTreeBuilder: LexerTreeBuilder, localeService: LocaleService, functionService: IFunctionService, styles: Styles): ICellData | null;
@@ -1,6 +1,5 @@
1
1
  import { Workbook, ICommandService, IContextService, IUniverInstanceService, RxDisposable } from '@univerjs/core';
2
2
  import { IRenderContext, IRenderModule, IRenderManagerService } from '@univerjs/engine-render';
3
- import { IEditorService, IRangeSelectorService } from '@univerjs/docs-ui';
4
3
  import { SheetsSelectionsService } from '@univerjs/sheets';
5
4
  import { IEditorBridgeService } from '../../services/editor-bridge.service';
6
5
  import { SheetSkeletonManagerService } from '../../services/sheet-skeleton-manager.service';
@@ -10,17 +9,16 @@ export declare class EditorBridgeRenderController extends RxDisposable implement
10
9
  private readonly _commandService;
11
10
  private readonly _editorBridgeService;
12
11
  private readonly _selectionManagerService;
13
- private readonly _rangeSelectorService;
14
12
  private readonly _contextService;
15
13
  private readonly _renderManagerService;
16
- private readonly _editorService;
17
14
  private readonly _sheetSkeletonManagerService;
18
15
  private _d;
19
- constructor(_context: IRenderContext<Workbook>, _instanceSrv: IUniverInstanceService, _commandService: ICommandService, _editorBridgeService: IEditorBridgeService, _selectionManagerService: SheetsSelectionsService, _rangeSelectorService: IRangeSelectorService, _contextService: IContextService, _renderManagerService: IRenderManagerService, _editorService: IEditorService, _sheetSkeletonManagerService: SheetSkeletonManagerService);
16
+ constructor(_context: IRenderContext<Workbook>, _instanceSrv: IUniverInstanceService, _commandService: ICommandService, _editorBridgeService: IEditorBridgeService, _selectionManagerService: SheetsSelectionsService, _contextService: IContextService, _renderManagerService: IRenderManagerService, _sheetSkeletonManagerService: SheetSkeletonManagerService);
20
17
  private _init;
21
18
  private _disposeCurrent;
22
19
  private _initSelectionChangeListener;
23
20
  private _updateEditorPosition;
21
+ refreshEditorPosition(): void;
24
22
  private _initEventListener;
25
23
  /**
26
24
  * Should activate the editor when the user inputs text.
@@ -31,9 +29,6 @@ export declare class EditorBridgeRenderController extends RxDisposable implement
31
29
  private _showEditorByKeyboard;
32
30
  private _tryHideEditor;
33
31
  private _hideEditor;
34
- private _initialRangeSelector;
35
- private _rangeSelector;
36
- private _getCurrentUnitIdAndSheetId;
37
32
  private _getSheetObject;
38
33
  private _isCurrentSheetFocused;
39
34
  }
@@ -9,4 +9,5 @@ export declare const EditorCursorEscShortcut: IShortcutItem;
9
9
  export declare const EditorCursorCtrlEnterShortcut: IShortcutItem;
10
10
  export declare const EditorBreakLineShortcut: IShortcutItem;
11
11
  export declare const EditorDeleteLeftShortcut: IShortcutItem;
12
+ export declare const ShiftEditorDeleteLeftShortcut: IShortcutItem;
12
13
  export declare const EditorDeleteLeftShortcutInActive: IShortcutItem;
@@ -1,3 +1,4 @@
1
1
  import { IShortcutItem } from '@univerjs/ui';
2
2
  export declare const ClearSelectionValueShortcutItem: IShortcutItem;
3
3
  export declare const ClearSelectionValueShortcutItemMac: IShortcutItem;
4
+ export declare const ShiftClearSelectionValueShortcutItem: IShortcutItem;
@@ -1,6 +1,6 @@
1
1
  import { ICellWithCoord, IDisposable, ISelectionCell, Nullable, DisposableCollection } from '@univerjs/core';
2
2
  import { ISelectionStyle } from '@univerjs/sheets';
3
- import { ICanvasPopup, ICellAlert } from '@univerjs/sheets-ui';
3
+ import { ICanvasPopup, ICellAlert, IDropdownParam } from '@univerjs/sheets-ui';
4
4
  import { ComponentType, ComponentManager } from '@univerjs/ui';
5
5
  import { FRange } from '@univerjs/sheets/facade';
6
6
  export interface IFComponentKey {
@@ -183,6 +183,19 @@ interface IFRangeSheetsUIMixin {
183
183
  * ```
184
184
  */
185
185
  highlight(style?: Nullable<Partial<ISelectionStyle>>, primary?: Nullable<ISelectionCell>): IDisposable;
186
+ /**
187
+ * Show a dropdown at the current range.
188
+ * @param {IDropdownParam} param - The parameters for the dropdown.
189
+ * @returns {IDisposable} The disposable object to hide the dropdown.
190
+ * @example
191
+ * ```ts
192
+ * const fWorkbook = univerAPI.getActiveWorkbook();
193
+ * const fWorksheet = fWorkbook.getActiveSheet();
194
+ * const fRange = fWorksheet.getRange('C3:E5');
195
+ * fRange.showDropdown({ type: 'list', props: { options: [{ label: 'Option 1', value: 'option1' }, { label: 'Option 2', value: 'option2' }] } });
196
+ * ```
197
+ */
198
+ showDropdown(param: IDropdownParam): IDisposable;
186
199
  }
187
200
  declare module '@univerjs/sheets/facade' {
188
201
  interface FRange extends IFRangeSheetsUIMixin {
@@ -56,7 +56,7 @@ export interface IFWorkbookSheetsUIMixin {
56
56
  * title: (
57
57
  * <>
58
58
  * <Button onClick={() => { console.log('Cancel clicked') }}>Cancel</Button>
59
- * <Button type="primary" onClick={() => { console.log('Confirm clicked') }} style={{marginLeft: '10px'}}>Confirm</Button>
59
+ * <Button variant="primary" onClick={() => { console.log('Confirm clicked') }} style={{marginLeft: '10px'}}>Confirm</Button>
60
60
  * </>
61
61
  * )
62
62
  * },
@@ -92,6 +92,7 @@ export { FormatPainterStatus, IFormatPainterService } from './services/format-pa
92
92
  export type { IFormatPainterBeforeApplyHookParams, IFormatPainterHook } from './services/format-painter/format-painter.service';
93
93
  export { SELECTION_SHAPE_DEPTH } from './services/selection/const';
94
94
  export { type IBaseSheetBarProps } from './views/sheet-bar/sheet-bar-tabs/SheetBarItem';
95
+ export { type IDropdownParam, ISheetCellDropdownManagerService, SheetCellDropdownManagerService } from './services/cell-dropdown-manager.service';
95
96
  export { FormulaBar } from './views/formula-bar/FormulaBar';
96
97
  export { SetWorksheetColAutoWidthCommand } from './commands/commands/set-worksheet-auto-col-width.command';
97
98
  export { AutoClearContentCommand, AutoFillCommand } from './commands/commands/auto-fill.command';
@@ -0,0 +1,28 @@
1
+ import { IDisposable, Disposable } from '@univerjs/core';
2
+ import { ISheetLocation } from '@univerjs/sheets';
3
+ import { ICellDropdown } from '../views/dropdown';
4
+ import { IRenderManagerService } from '@univerjs/engine-render';
5
+ import { ComponentManager, IZenZoneService } from '@univerjs/ui';
6
+ import { SheetCanvasPopManagerService } from './canvas-pop-manager.service';
7
+ export type IDropdownParam = {
8
+ location: ISheetLocation;
9
+ onHide?: () => void;
10
+ closeOnOutSide?: boolean;
11
+ } & ICellDropdown;
12
+ export interface IDropdownComponentProps {
13
+ componentKey: string;
14
+ location: ISheetLocation;
15
+ hideFn: () => void;
16
+ }
17
+ export interface ISheetCellDropdownManagerService {
18
+ showDropdown(param: IDropdownParam): IDisposable;
19
+ }
20
+ export declare const ISheetCellDropdownManagerService: import('@wendellhu/redi').IdentifierDecorator<ISheetCellDropdownManagerService>;
21
+ export declare class SheetCellDropdownManagerService extends Disposable implements ISheetCellDropdownManagerService {
22
+ private readonly _canvasPopupManagerService;
23
+ private readonly _zenZoneService;
24
+ private readonly _renderManagerService;
25
+ private readonly _componentManager;
26
+ constructor(_canvasPopupManagerService: SheetCanvasPopManagerService, _zenZoneService: IZenZoneService, _renderManagerService: IRenderManagerService, _componentManager: ComponentManager);
27
+ showDropdown(param: IDropdownParam): IDisposable;
28
+ }
@@ -1,18 +1,21 @@
1
- import { Workbook, Disposable, IUniverInstanceService } from '@univerjs/core';
2
- import { IRenderContext, IRenderModule, IRenderManagerService } from '@univerjs/engine-render';
1
+ import { Disposable, IUniverInstanceService } from '@univerjs/core';
2
+ import { IRenderManagerService } from '@univerjs/engine-render';
3
3
  import { ILayoutService } from '@univerjs/ui';
4
4
  import { IEditorBridgeService } from '../editor-bridge.service';
5
- import { SheetSkeletonManagerService } from '../sheet-skeleton-manager.service';
6
5
  import { ICellEditorManagerService } from './cell-editor-manager.service';
7
- export declare class SheetCellEditorResizeService extends Disposable implements IRenderModule {
8
- private readonly _context;
6
+ export declare class SheetCellEditorResizeService extends Disposable {
9
7
  private readonly _layoutService;
10
8
  private readonly _cellEditorManagerService;
11
9
  private readonly _editorBridgeService;
12
10
  private readonly _renderManagerService;
13
- private readonly _sheetSkeletonManagerService;
14
11
  private readonly _univerInstanceService;
15
- constructor(_context: IRenderContext<Workbook>, _layoutService: ILayoutService, _cellEditorManagerService: ICellEditorManagerService, _editorBridgeService: IEditorBridgeService, _renderManagerService: IRenderManagerService, _sheetSkeletonManagerService: SheetSkeletonManagerService, _univerInstanceService: IUniverInstanceService);
12
+ constructor(_layoutService: ILayoutService, _cellEditorManagerService: ICellEditorManagerService, _editorBridgeService: IEditorBridgeService, _renderManagerService: IRenderManagerService, _univerInstanceService: IUniverInstanceService);
13
+ private get _currentRenderer();
14
+ private get _editingUnitId();
15
+ private get _editingRenderer();
16
+ private get _renderer();
17
+ private get _sheetSkeletonManagerService();
18
+ private get engine();
16
19
  fitTextSize(callback?: () => void): void;
17
20
  /**
18
21
  * Mainly used to pre-calculate the width of the editor,
@@ -2,7 +2,7 @@ import { IDisposable, IPosition, ISelectionCell, Nullable, Disposable, IContextS
2
2
  import { Engine, IDocumentLayoutObject, Scene, DeviceInputEventType, IRenderManagerService } from '@univerjs/engine-render';
3
3
  import { SheetsSelectionsService, SheetInterceptorService } from '@univerjs/sheets';
4
4
  import { KeyCode } from '@univerjs/ui';
5
- import { Observable } from 'rxjs';
5
+ import { Observable, BehaviorSubject } from 'rxjs';
6
6
  import { IEditorService } from '@univerjs/docs-ui';
7
7
  export interface IEditorBridgeServiceVisibleParam {
8
8
  visible: boolean;
@@ -63,6 +63,7 @@ export interface IEditorBridgeService {
63
63
  disableForceKeepVisible(): void;
64
64
  isForceKeepVisible(): boolean;
65
65
  getCurrentEditorId(): Nullable<string>;
66
+ helpFunctionVisible$: BehaviorSubject<boolean>;
66
67
  }
67
68
  export declare class EditorBridgeService extends Disposable implements IEditorBridgeService, IDisposable {
68
69
  private readonly _sheetInterceptorService;
@@ -74,11 +75,11 @@ export declare class EditorBridgeService extends Disposable implements IEditorBr
74
75
  private readonly _contextService;
75
76
  private _editorUnitId;
76
77
  private _editorIsDirty;
77
- private _isDisabled;
78
78
  private _visibleParams;
79
79
  private _currentEditCell;
80
80
  private _currentEditCellState;
81
81
  private _currentEditCellLayout;
82
+ helpFunctionVisible$: BehaviorSubject<boolean>;
82
83
  private readonly _currentEditCellState$;
83
84
  readonly currentEditCellState$: Observable<Nullable<ICellEditorState>>;
84
85
  private readonly _currentEditCellLayout$;
@@ -1,15 +1,29 @@
1
- import { IRange, Disposable, InterceptorManager } from '@univerjs/core';
2
- import { Scene } from '@univerjs/engine-render';
3
- interface ISheetPos {
1
+ import { DisposableCollection, IRange, Worksheet, Disposable, InterceptorManager } from '@univerjs/core';
2
+ import { Engine, Scene, Spreadsheet, SpreadsheetSkeleton } from '@univerjs/engine-render';
3
+ interface ISheetPrintContext {
4
4
  unitId: string;
5
5
  subUnitId: string;
6
+ scene: Scene;
7
+ engine: Engine;
8
+ root: HTMLElement;
9
+ worksheet: Worksheet;
10
+ skeleton: SpreadsheetSkeleton;
11
+ offset: {
12
+ offsetX: number;
13
+ offsetY: number;
14
+ };
15
+ }
16
+ interface ISheetPrintComponentContext extends ISheetPrintContext {
17
+ spreadsheet: Spreadsheet;
6
18
  }
7
19
  export declare class SheetPrintInterceptorService extends Disposable {
8
20
  readonly interceptor: InterceptorManager<{
9
- PRINTING_RANGE: import('@univerjs/core').IInterceptor<IRange, ISheetPos>;
10
- PRINTING_COMPONENT_COLLECT: import('@univerjs/core').IInterceptor<undefined, ISheetPos & {
11
- scene: Scene;
21
+ PRINTING_RANGE: import('@univerjs/core').IInterceptor<IRange, {
22
+ unitId: string;
23
+ subUnitId: string;
12
24
  }>;
25
+ PRINTING_COMPONENT_COLLECT: import('@univerjs/core').IInterceptor<undefined, ISheetPrintComponentContext>;
26
+ PRINTING_DOM_COLLECT: import('@univerjs/core').IInterceptor<DisposableCollection, ISheetPrintContext>;
13
27
  }>;
14
28
  constructor();
15
29
  }
@@ -0,0 +1,14 @@
1
+ import { ICascaderOption } from '@univerjs/design';
2
+ import { IPopup } from '@univerjs/ui';
3
+ import { IBaseDropdownProps } from '../type';
4
+ export interface ICascaderDropdownProps {
5
+ options: ICascaderOption[];
6
+ defaultValue?: string[];
7
+ onChange: (value: string[]) => void;
8
+ }
9
+ export declare function CascaderDropdown(props: {
10
+ popup: IPopup<ICascaderDropdownProps & IBaseDropdownProps>;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ export declare namespace CascaderDropdown {
13
+ var componentKey: string;
14
+ }
@@ -0,0 +1,12 @@
1
+ import { IPopup } from '@univerjs/ui';
2
+ import { IBaseDropdownProps } from '../type';
3
+ export interface IColorDropdownProps {
4
+ defaultValue?: string;
5
+ onChange?: (value: string) => void;
6
+ }
7
+ export declare function ColorDropdown(props: {
8
+ popup: IPopup<IColorDropdownProps & IBaseDropdownProps>;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export declare namespace ColorDropdown {
11
+ var componentKey: string;
12
+ }
@@ -0,0 +1,15 @@
1
+ import { IPopup } from '@univerjs/ui';
2
+ import { IBaseDropdownProps } from '../type';
3
+ import { dayjs } from '@univerjs/core';
4
+ export interface IDateDropdownProps {
5
+ defaultValue?: dayjs.Dayjs;
6
+ onChange?: (value: dayjs.Dayjs | undefined) => boolean | Promise<boolean>;
7
+ patternType?: 'datetime' | 'date' | 'time';
8
+ showTime?: boolean;
9
+ }
10
+ export declare function DateDropdown(props: {
11
+ popup: IPopup<IDateDropdownProps & IBaseDropdownProps>;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ export declare namespace DateDropdown {
14
+ var componentKey: string;
15
+ }
@@ -0,0 +1,27 @@
1
+ import { ICascaderDropdownProps, CascaderDropdown } from './cascader-dropdown';
2
+ import { IColorDropdownProps, ColorDropdown } from './color-dropdown';
3
+ import { IDateDropdownProps, DateDropdown } from './date-dropdown';
4
+ import { IListDropdownProps, ListDropDown } from './list-dropdown';
5
+ export type ICellDropdown = {
6
+ type: 'datepicker';
7
+ props: IDateDropdownProps;
8
+ } | {
9
+ type: 'list';
10
+ props: IListDropdownProps;
11
+ } | {
12
+ type: 'color';
13
+ props: IColorDropdownProps;
14
+ } | {
15
+ type: 'cascader';
16
+ props: ICascaderDropdownProps;
17
+ };
18
+ export { CascaderDropdown } from './cascader-dropdown';
19
+ export { ColorDropdown } from './color-dropdown';
20
+ export { DateDropdown } from './date-dropdown';
21
+ export { ListDropDown } from './list-dropdown';
22
+ export declare const dropdownMap: {
23
+ datepicker: typeof DateDropdown;
24
+ list: typeof ListDropDown;
25
+ color: typeof ColorDropdown;
26
+ cascader: typeof CascaderDropdown;
27
+ };
@@ -0,0 +1,19 @@
1
+ import { IPopup } from '@univerjs/ui';
2
+ import { IBaseDropdownProps } from '../type';
3
+ export interface IListDropdownProps {
4
+ multiple?: boolean;
5
+ onEdit?: () => void;
6
+ onChange?: (value: string[]) => boolean | Promise<boolean>;
7
+ options: {
8
+ label: string;
9
+ value: string;
10
+ color?: string;
11
+ }[];
12
+ defaultValue?: string;
13
+ }
14
+ export declare function ListDropDown(props: {
15
+ popup: IPopup<IListDropdownProps & IBaseDropdownProps>;
16
+ }): import("react/jsx-runtime").JSX.Element | null;
17
+ export declare namespace ListDropDown {
18
+ var componentKey: string;
19
+ }
@@ -0,0 +1,5 @@
1
+ import { ISheetLocation } from '@univerjs/sheets';
2
+ export interface IBaseDropdownProps {
3
+ location: ISheetLocation;
4
+ hideFn: () => void;
5
+ }
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(b,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):(b=typeof globalThis<"u"?globalThis:b||self,h(b.UniverSheetsUiFacade={},b.UniverCore,b.UniverCoreFacade,b.UniverDocs,b.UniverEngineRender,b.UniverSheets,b.UniverSheetsUi,b.UniverSheetsFacade,b.UniverUi,b.rxjs))})(this,function(b,h,M,H,S,I,d,p,C,m){"use strict";class y extends M.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:a}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:s}=v,n=l.getEditLocation();if(g){const c={row:n.row,column:n.column,eventType:s,keycode:u,workbook:o,worksheet:a,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:a}=i,l=e.get(d.IEditorBridgeService),v=e.get(h.IUniverInstanceService),g=t.params,{visible:u,keycode:s,eventType:n}=g,c=l.getEditLocation();if(!u){const P={row:c.row,column:c.column,eventType:n,keycode:s,workbook:o,worksheet:a,isZenEditor:!1,value:h.RichTextValue.create(v.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:s!==C.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,P),P.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:a}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:s}=v,n=l.getEditLocation();if(g){const c={row:n.row,column:n.column,eventType:s,keycode:u,workbook:o,worksheet:a,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:a}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:s}=v,n=l.getEditLocation();if(!g){const c={row:n.row,column:n.column,eventType:s,keycode:u,workbook:o,worksheet:a,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:a}=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:s,column:n}=l.getEditLocation(),c={workbook:o,worksheet:a,row:s,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:a}=i,l={zoom:t.params.zoomRatio,workbook:o,worksheet:a};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:a}=i;this.fireEvent(this.Event.SheetZoomChanged,{zoom:a.getZoom(),workbook:o,worksheet:a})}))}_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 s;return(s=g.currentClickedCell$)==null?void 0:s.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 s;return(s=g.currentRichText$)==null?void 0:s.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 s;return(s=g.currentPointerDownCell$)==null?void 0:s.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 s;return(s=g.currentPointerUpCell$)==null?void 0:s.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 s;return(s=g.currentCellPosWithEvent$)==null?void 0:s.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 s;return(s=u.currentCell$)==null?void 0:s.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 s;return(s=u.endCell$)==null?void 0:s.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 s;return(s=g.currentRowHeaderClick$)==null?void 0:s.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 s;return(s=g.currentRowHeaderPointerDown$)==null?void 0:s.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 s;return(s=g.currentRowHeaderPointerUp$)==null?void 0:s.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 s;return(s=g.currentHoveredRowHeader$)==null?void 0:s.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 s;return(s=g.currentColHeaderClick$)==null?void 0:s.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 s;return(s=g.currentColHeaderPointerDown$)==null?void 0:s.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 s;return(s=g.currentColHeaderPointerUp$)==null?void 0:s.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 s;return(s=g.currentHoveredColHeader$)==null?void 0:s.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 a;const l=m.combineLatest([r.created$,t.lifecycle$]);this.disposeWithMe(l.subscribe(([v,g])=>{var P;if(v.type===h.UniverInstanceType.UNIVER_SHEET&&(a=v),g<=h.LifecycleStages.Rendered||!a)return;const u=new h.DisposableCollection,s=this.getWorkbook(a.unitId);if(!s)return;o.get(a.unitId)&&((P=o.get(a.unitId))==null||P.dispose()),o.set(a.unitId,u);const n=a.with(d.SheetScrollManagerService),c=a.with(I.SheetsSelectionsService);u.add(this.registerEventHandler(this.Event.Scroll,()=>n.validViewportScrollInfo$.subscribe(E=>{E&&this.fireEvent(this.Event.Scroll,{workbook:s,worksheet:s.getActiveSheet(),...E})}))),u.add(this.registerEventHandler(this.Event.SelectionMoveStart,()=>c.selectionMoveStart$.subscribe(E=>{var f;this.fireEvent(this.Event.SelectionMoveStart,{workbook:s,worksheet:s.getActiveSheet(),selections:(f=E==null?void 0:E.map(k=>k.range))!=null?f:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionMoving,()=>c.selectionMoving$.subscribe(E=>{var f;this.fireEvent(this.Event.SelectionMoving,{workbook:s,worksheet:s.getActiveSheet(),selections:(f=E==null?void 0:E.map(k=>k.range))!=null?f:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionMoveEnd,()=>c.selectionMoveEnd$.subscribe(E=>{var f;this.fireEvent(this.Event.SelectionMoveEnd,{workbook:s,worksheet:s.getActiveSheet(),selections:(f=E==null?void 0:E.map(k=>k.range))!=null?f:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionChanged,()=>c.selectionChanged$.subscribe(E=>{var f;this.fireEvent(this.Event.SelectionChanged,{workbook:s,worksheet:s.getActiveSheet(),selections:(f=E==null?void 0:E.map(k=>k.range))!=null?f:[]})}))),a=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(a=>{var l,v;return(v=(l=this.getWorkbook(a.unitId))==null?void 0:l.getSheetBySheetId(a.subUnitId))==null?void 0:v.getRange(a.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:a,plain:l}=o;return{workbook:e,worksheet:r,text:l,html:a,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 a;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()):"";a={workbook:e,worksheet:r,text:v,html:g}}return a}_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(),a=o.getSheetId(),l=i.getRenderById(t);l&&((g=e.headerStyle)!=null&&g.size)&&(l.with(d.SheetSkeletonManagerService).setColumnHeaderSize(l,a,(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,a=o.get(r);if(!a)throw new Error("Render component not found");return a}getSheetHooks(){return this._injector.createInstance(p.FSheetHooks)}}M.FUniver.extend(y);class D extends p.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}_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)}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}}p.FWorkbook.extend(D);class T extends p.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 a=t.with(d.SheetSkeletonManagerService).getCurrentSkeleton();if(!a)return i;const l=a==null?void 0:a.getVisibleRanges();if(!l)return i;i=a.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 a=i.validViewportScrollInfo$.subscribe(l=>{e(l)});return h.toDisposable(a)}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 v,g;const r=this,t=this._fWorkbook.getId(),i=this._injector.get(S.IRenderManagerService),o=r.getSheetId(),a=i.getRenderById(t);a&&((v=e.headerStyle)!=null&&v.size)&&(a.with(d.SheetSkeletonManagerService).setColumnHeaderSize(a,o,(g=e.headerStyle)==null?void 0:g.size),r==null||r.refreshCanvas());const l=this._getSheetRenderComponent(t,d.SHEET_VIEW_KEY.COLUMN);l&&(l.setCustomHeader(e),r==null||r.refreshCanvas())}customizeRowHeader(e){const r=this._fWorkbook.getId();this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}setColumnHeaderHeight(e){const r=this,t=this._fWorkbook.getId(),i=r.getSheetId();return this._commandService.executeCommand(d.SetColumnHeaderHeightCommand.id,{unitId:t,subUnitId:i,size:e}),r==null||r.refreshCanvas(),this}setRowHeaderWidth(e){const r=this,t=this._fWorkbook.getId(),i=r.getSheetId();this._commandService.executeCommand(d.SetRowHeaderWidthCommand.id,{unitId:t,subUnitId:i,size:e});const o=this._getSheetRenderComponent(t,d.SHEET_VIEW_KEY.ROW);return o&&o.setCustomHeader({headerStyle:{size:e}}),r==null||r.refreshCanvas(),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,a=o.get(r);if(!a)throw new Error("Render component not found");return a}}p.FWorksheet.extend(T);class x extends p.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}p.FPermission.extend(x);class B extends p.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,a)=>a({...i,customRender:[...(i==null?void 0:i.customRender)||[],...e||[]]}),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)})}}p.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"}}M.FEventName.extend(A);class O extends p.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),a=(l=o==null?void 0:o.with(d.SheetSkeletonManagerService).getSkeletonParam(i))==null?void 0:l.skeleton;if(!a)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 a.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 a,l,v;e.direction=(a=e.direction)!=null?a:"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 a,l,v;e.direction=(a=e.direction)!=null?a:"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)})}}p.FRange.extend(O);function R(w,e){const{componentKey:r,isVue3:t}=w;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}}b.transformComponentKey=R,Object.defineProperty(b,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,M,H,S,I,c,b,C,m){"use strict";class y extends M.FUniver{_initSheetUIEvent(e){const r=e.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeSheetEditStart,()=>r.beforeCommandExecuted(t=>{if(t.id!==c.SetCellEditVisibleOperation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:a}=i,l=e.get(c.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:s}=v,n=l.getEditLocation();if(g){const d={row:n.row,column:n.column,eventType:s,keycode:u,workbook:o,worksheet:a,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,d),d.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetEditEnd,()=>r.beforeCommandExecuted(t=>{if(t.id!==c.SetCellEditVisibleOperation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:a}=i,l=e.get(c.IEditorBridgeService),v=e.get(h.IUniverInstanceService),g=t.params,{visible:u,keycode:s,eventType:n}=g,d=l.getEditLocation();if(!u){const P={row:d.row,column:d.column,eventType:n,keycode:s,workbook:o,worksheet:a,isZenEditor:!1,value:h.RichTextValue.create(v.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:s!==C.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,P),P.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.SheetEditStarted,()=>r.onCommandExecuted(t=>{if(t.id!==c.SetCellEditVisibleOperation.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:a}=i,l=e.get(c.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:s}=v,n=l.getEditLocation();if(g){const d={row:n.row,column:n.column,eventType:s,keycode:u,workbook:o,worksheet:a,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,d)}})),this.registerEventHandler(this.Event.SheetEditEnded,()=>r.onCommandExecuted(t=>{if(t.id!==c.SetCellEditVisibleOperation.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:a}=i,l=e.get(c.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:s}=v,n=l.getEditLocation();if(!g){const d={row:n.row,column:n.column,eventType:s,keycode:u,workbook:o,worksheet:a,isZenEditor:!1,isConfirm:u!==C.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,d)}})),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:a}=i,l=e.get(c.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:s,column:n}=l.getEditLocation(),d={workbook:o,worksheet:a,row:s,column:n,value:h.RichTextValue.create(v.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,d)}})),this.registerEventHandler(this.Event.BeforeSheetZoomChange,()=>r.beforeCommandExecuted(t=>{if(t.id!==c.SetZoomRatioCommand.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:a}=i,l={zoom:t.params.zoomRatio,workbook:o,worksheet:a};if(this.fireEvent(this.Event.BeforeSheetZoomChange,l),l.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.SheetZoomChanged,()=>r.onCommandExecuted(t=>{if(t.id!==c.SetZoomRatioCommand.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:a}=i;this.fireEvent(this.Event.SheetZoomChanged,{zoom:a.getZoom(),workbook:o,worksheet:a})}))}_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(c.HoverManagerService),u=e.get(c.DragManagerService);g&&(this.registerEventHandler(this.Event.CellClicked,()=>{var s;return(s=g.currentClickedCell$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.location.unitId,n.location.subUnitId);d&&this.fireEvent(this.Event.CellClicked,{...d,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.CellHover,()=>{var s;return(s=g.currentRichText$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.CellHover,{...d,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerDown,()=>{var s;return(s=g.currentPointerDownCell$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.CellPointerDown,{...d,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerUp,()=>{var s;return(s=g.currentPointerUpCell$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.CellPointerUp,{...d,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerMove,()=>{var s;return(s=g.currentCellPosWithEvent$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.CellPointerMove,{...d,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.DragOver,()=>{var s;return(s=u.currentCell$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.location.unitId,n.location.subUnitId);d&&this.fireEvent(this.Event.DragOver,{...d,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.Drop,()=>{var s;return(s=u.endCell$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.location.unitId,n.location.subUnitId);d&&this.fireEvent(this.Event.Drop,{...d,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.RowHeaderClick,()=>{var s;return(s=g.currentRowHeaderClick$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.RowHeaderClick,{...d,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderPointerDown,()=>{var s;return(s=g.currentRowHeaderPointerDown$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.RowHeaderPointerDown,{...d,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderPointerUp,()=>{var s;return(s=g.currentRowHeaderPointerUp$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.RowHeaderPointerUp,{...d,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderHover,()=>{var s;return(s=g.currentHoveredRowHeader$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.RowHeaderHover,{...d,row:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderClick,()=>{var s;return(s=g.currentColHeaderClick$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.ColumnHeaderClick,{...d,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderPointerDown,()=>{var s;return(s=g.currentColHeaderPointerDown$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.ColumnHeaderPointerDown,{...d,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderPointerUp,()=>{var s;return(s=g.currentColHeaderPointerUp$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.ColumnHeaderPointerUp,{...d,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderHover,()=>{var s;return(s=g.currentHoveredColHeader$)==null?void 0:s.pipe(m.filter(n=>!!n)).subscribe(n=>{const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.ColumnHeaderHover,{...d,column:n.index})})}))})),this.disposeWithMe(i);const o=new Map;let a;const l=m.combineLatest([r.created$,t.lifecycle$]);this.disposeWithMe(l.subscribe(([v,g])=>{var P;if(v.type===h.UniverInstanceType.UNIVER_SHEET&&(a=v),g<=h.LifecycleStages.Rendered||!a)return;const u=new h.DisposableCollection,s=this.getWorkbook(a.unitId);if(!s)return;o.get(a.unitId)&&((P=o.get(a.unitId))==null||P.dispose()),o.set(a.unitId,u);const n=a.with(c.SheetScrollManagerService),d=a.with(I.SheetsSelectionsService);u.add(this.registerEventHandler(this.Event.Scroll,()=>n.validViewportScrollInfo$.subscribe(E=>{E&&this.fireEvent(this.Event.Scroll,{workbook:s,worksheet:s.getActiveSheet(),...E})}))),u.add(this.registerEventHandler(this.Event.SelectionMoveStart,()=>d.selectionMoveStart$.subscribe(E=>{var f;this.fireEvent(this.Event.SelectionMoveStart,{workbook:s,worksheet:s.getActiveSheet(),selections:(f=E==null?void 0:E.map(k=>k.range))!=null?f:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionMoving,()=>d.selectionMoving$.subscribe(E=>{var f;this.fireEvent(this.Event.SelectionMoving,{workbook:s,worksheet:s.getActiveSheet(),selections:(f=E==null?void 0:E.map(k=>k.range))!=null?f:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionMoveEnd,()=>d.selectionMoveEnd$.subscribe(E=>{var f;this.fireEvent(this.Event.SelectionMoveEnd,{workbook:s,worksheet:s.getActiveSheet(),selections:(f=E==null?void 0:E.map(k=>k.range))!=null?f:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionChanged,()=>d.selectionChanged$.subscribe(E=>{var f;this.fireEvent(this.Event.SelectionChanged,{workbook:s,worksheet:s.getActiveSheet(),selections:(f=E==null?void 0:E.map(k=>k.range))!=null?f:[]})}))),a=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 c.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 c.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(a=>{var l,v;return(v=(l=this.getWorkbook(a.unitId))==null?void 0:l.getSheetBySheetId(a.subUnitId))==null?void 0:v.getRange(a.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(c.ISheetClipboardService).generateCopyContent(e.getId(),r.getSheetId(),t.getRange());if(!o)return;const{html:a,plain:l}=o;return{workbook:e,worksheet:r,text:l,html:a,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 a;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()):"";a={workbook:e,worksheet:r,text:v,html:g}}return a}_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(),a=o.getSheetId(),l=i.getRenderById(t);l&&((g=e.headerStyle)!=null&&g.size)&&(l.with(c.SheetSkeletonManagerService).setColumnHeaderSize(l,a,(u=e.headerStyle)==null?void 0:u.size),o==null||o.refreshCanvas()),this._getSheetRenderComponent(t,c.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,c.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,c.SHEET_VIEW_KEY.ROW),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,c.SHEET_VIEW_KEY.COLUMN),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetMainExtension(e,...r){const t=this._getSheetRenderComponent(e,c.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,a=o.get(r);if(!a)throw new Error("Render component not found");return a}getSheetHooks(){return this._injector.createInstance(b.FSheetHooks)}}M.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}_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(c.HoverManagerService);return h.toDisposable(r.currentClickedCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}onCellHover(e){const r=this._injector.get(c.HoverManagerService);return h.toDisposable(r.currentRichText$.pipe(m.filter(t=>!!t)).subscribe(e))}onCellPointerDown(e){const r=this._injector.get(c.HoverManagerService);return h.toDisposable(r.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const r=this._injector.get(c.HoverManagerService);return h.toDisposable(r.currentPointerUpCell$.subscribe(e))}onCellPointerMove(e){const r=this._injector.get(c.HoverManagerService);return h.toDisposable(r.currentCellPosWithEvent$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t,t.event)}))}onDragOver(e){const r=this._injector.get(c.DragManagerService);return h.toDisposable(r.currentCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}onDrop(e){const r=this._injector.get(c.DragManagerService);return h.toDisposable(r.endCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}startEditing(){return this._injector.get(h.ICommandService).syncExecuteCommand(c.SetCellEditVisibleOperation.id,{eventType:S.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){return this._injector.get(h.ICommandService).syncExecuteCommand(c.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)}getScrollStateBySheetId(e){const r=this._workbook.getUnitId(),i=this._injector.get(S.IRenderManagerService).getRenderById(r);return i?i.with(c.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(c.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(c.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(c.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(c.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(c.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(c.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 a=t.with(c.SheetSkeletonManagerService).getCurrentSkeleton();if(!a)return i;const l=a==null?void 0:a.getVisibleRanges();if(!l)return i;i=a.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(c.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(c.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(c.SheetScrollManagerService);if(i){const a=i.validViewportScrollInfo$.subscribe(l=>{e(l)});return h.toDisposable(a)}return h.toDisposable(()=>{})}getSkeleton(){var r,t;const e=(r=this._injector.get(S.IRenderManagerService).getRenderById(this._workbook.getUnitId()))==null?void 0:r.with(c.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(c.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 v,g;const r=this,t=this._fWorkbook.getId(),i=this._injector.get(S.IRenderManagerService),o=r.getSheetId(),a=i.getRenderById(t);a&&((v=e.headerStyle)!=null&&v.size)&&(a.with(c.SheetSkeletonManagerService).setColumnHeaderSize(a,o,(g=e.headerStyle)==null?void 0:g.size),r==null||r.refreshCanvas());const l=this._getSheetRenderComponent(t,c.SHEET_VIEW_KEY.COLUMN);l&&(l.setCustomHeader(e),r==null||r.refreshCanvas())}customizeRowHeader(e){const r=this._fWorkbook.getId();this._getSheetRenderComponent(r,c.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}setColumnHeaderHeight(e){const r=this,t=this._fWorkbook.getId(),i=r.getSheetId();return this._commandService.executeCommand(c.SetColumnHeaderHeightCommand.id,{unitId:t,subUnitId:i,size:e}),r==null||r.refreshCanvas(),this}setRowHeaderWidth(e){const r=this,t=this._fWorkbook.getId(),i=r.getSheetId();this._commandService.executeCommand(c.SetRowHeaderWidthCommand.id,{unitId:t,subUnitId:i,size:e});const o=this._getSheetRenderComponent(t,c.SHEET_VIEW_KEY.ROW);return o&&o.setCustomHeader({headerStyle:{size:e}}),r==null||r.refreshCanvas(),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,a=o.get(r);if(!a)throw new Error("Render component not found");return a}}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(c.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return h.toDisposable(this._injector.get(c.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return h.toDisposable(this._injector.get(c.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return h.toDisposable(this._injector.get(c.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,a)=>a({...i,customRender:[...(i==null?void 0:i.customRender)||[],...e||[]]}),priority:t})}onBeforeCellEdit(e){return this._injector.get(h.ICommandService).beforeCommandExecuted(r=>{const t=r.params;r.id===c.SetCellEditVisibleOperation.id&&t.visible&&e(t)})}onAfterCellEdit(e){return this._injector.get(h.ICommandService).onCommandExecuted(r=>{const t=r.params;r.id===c.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"}}M.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),a=(l=o==null?void 0:o.with(c.SheetSkeletonManagerService).getSkeletonParam(i))==null?void 0:l.skeleton;if(!a)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 a.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(c.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(t=r==null?void 0:r.html)!=null?t:""}attachPopup(e){var a,l,v;e.direction=(a=e.direction)!=null?a:"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(c.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(c.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 a,l,v;e.direction=(a=e.direction)!=null?a:"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(c.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(c.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(c.ISheetCellDropdownManagerService).showDropdown(e)}}b.FRange.extend(O);function R(w,e){const{componentKey:r,isVue3:t}=w;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"})});