@univerjs/sheets-ui 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/lib/cjs/index.js +775 -483
  2. package/lib/cjs/locale/ar-SA.js +15 -0
  3. package/lib/cjs/locale/ca-ES.js +15 -0
  4. package/lib/cjs/locale/de-DE.js +15 -0
  5. package/lib/cjs/locale/en-US.js +15 -0
  6. package/lib/cjs/locale/es-ES.js +15 -0
  7. package/lib/cjs/locale/fa-IR.js +15 -0
  8. package/lib/cjs/locale/fr-FR.js +15 -0
  9. package/lib/cjs/locale/id-ID.js +15 -0
  10. package/lib/cjs/locale/it-IT.js +15 -0
  11. package/lib/cjs/locale/ja-JP.js +15 -0
  12. package/lib/cjs/locale/ko-KR.js +15 -0
  13. package/lib/cjs/locale/pl-PL.js +15 -0
  14. package/lib/cjs/locale/pt-BR.js +15 -0
  15. package/lib/cjs/locale/ru-RU.js +15 -0
  16. package/lib/cjs/locale/sk-SK.js +15 -0
  17. package/lib/cjs/locale/vi-VN.js +15 -0
  18. package/lib/cjs/locale/zh-CN.js +15 -0
  19. package/lib/cjs/locale/zh-HK.js +15 -0
  20. package/lib/cjs/locale/zh-TW.js +15 -0
  21. package/lib/es/index.js +742 -451
  22. package/lib/es/locale/ar-SA.js +15 -0
  23. package/lib/es/locale/ca-ES.js +15 -0
  24. package/lib/es/locale/de-DE.js +15 -0
  25. package/lib/es/locale/en-US.js +15 -0
  26. package/lib/es/locale/es-ES.js +15 -0
  27. package/lib/es/locale/fa-IR.js +15 -0
  28. package/lib/es/locale/fr-FR.js +15 -0
  29. package/lib/es/locale/id-ID.js +15 -0
  30. package/lib/es/locale/it-IT.js +15 -0
  31. package/lib/es/locale/ja-JP.js +15 -0
  32. package/lib/es/locale/ko-KR.js +15 -0
  33. package/lib/es/locale/pl-PL.js +15 -0
  34. package/lib/es/locale/pt-BR.js +15 -0
  35. package/lib/es/locale/ru-RU.js +15 -0
  36. package/lib/es/locale/sk-SK.js +15 -0
  37. package/lib/es/locale/vi-VN.js +15 -0
  38. package/lib/es/locale/zh-CN.js +15 -0
  39. package/lib/es/locale/zh-HK.js +15 -0
  40. package/lib/es/locale/zh-TW.js +15 -0
  41. package/lib/index.css +0 -28
  42. package/lib/index.js +742 -451
  43. package/lib/locale/ar-SA.js +15 -0
  44. package/lib/locale/ca-ES.js +15 -0
  45. package/lib/locale/de-DE.js +15 -0
  46. package/lib/locale/en-US.js +15 -0
  47. package/lib/locale/es-ES.js +15 -0
  48. package/lib/locale/fa-IR.js +15 -0
  49. package/lib/locale/fr-FR.js +15 -0
  50. package/lib/locale/id-ID.js +15 -0
  51. package/lib/locale/it-IT.js +15 -0
  52. package/lib/locale/ja-JP.js +15 -0
  53. package/lib/locale/ko-KR.js +15 -0
  54. package/lib/locale/pl-PL.js +15 -0
  55. package/lib/locale/pt-BR.js +15 -0
  56. package/lib/locale/ru-RU.js +15 -0
  57. package/lib/locale/sk-SK.js +15 -0
  58. package/lib/locale/vi-VN.js +15 -0
  59. package/lib/locale/zh-CN.js +15 -0
  60. package/lib/locale/zh-HK.js +15 -0
  61. package/lib/locale/zh-TW.js +15 -0
  62. package/lib/types/commands/commands/set-selection.command.d.ts +2 -0
  63. package/lib/types/{views/editor-container/index.d.ts → common/selection-input.d.ts} +3 -2
  64. package/lib/types/config/config.d.ts +6 -0
  65. package/lib/types/controllers/editor/data-sync.controller.d.ts +1 -0
  66. package/lib/types/controllers/editor/editing.render-controller.d.ts +1 -0
  67. package/lib/types/controllers/render-controllers/contextmenu.render-controller.d.ts +6 -3
  68. package/lib/types/controllers/render-controllers/desktop-cell-edit.render-controller.d.ts +3 -1
  69. package/lib/types/index.d.ts +6 -4
  70. package/lib/types/locale/en-US.d.ts +15 -0
  71. package/lib/types/menu/zoom.menu.d.ts +2 -2
  72. package/lib/types/services/cell-alert-manager.service.d.ts +1 -0
  73. package/lib/types/services/editor/cell-editor-resize.service.d.ts +6 -0
  74. package/lib/types/services/editor-bridge.service.d.ts +4 -0
  75. package/lib/types/services/hover-manager.service.d.ts +2 -2
  76. package/lib/types/services/selection/base-selection-render.service.d.ts +2 -0
  77. package/lib/types/services/selection/selection-control.d.ts +6 -1
  78. package/lib/types/services/selection/selection-render.service.d.ts +1 -0
  79. package/lib/types/views/border-panel/interface.d.ts +37 -4
  80. package/lib/types/views/defined-name/DefinedNameOverlay.d.ts +5 -2
  81. package/lib/types/views/editor-container/focus-editor.d.ts +3 -2
  82. package/lib/umd/facade.js +3 -1
  83. package/lib/umd/index.js +12 -12
  84. package/lib/umd/locale/ar-SA.js +1 -1
  85. package/lib/umd/locale/ca-ES.js +1 -1
  86. package/lib/umd/locale/de-DE.js +1 -1
  87. package/lib/umd/locale/en-US.js +1 -1
  88. package/lib/umd/locale/es-ES.js +1 -1
  89. package/lib/umd/locale/fa-IR.js +1 -1
  90. package/lib/umd/locale/fr-FR.js +1 -1
  91. package/lib/umd/locale/id-ID.js +1 -1
  92. package/lib/umd/locale/it-IT.js +1 -1
  93. package/lib/umd/locale/ja-JP.js +1 -1
  94. package/lib/umd/locale/ko-KR.js +1 -1
  95. package/lib/umd/locale/pl-PL.js +1 -1
  96. package/lib/umd/locale/pt-BR.js +1 -1
  97. package/lib/umd/locale/ru-RU.js +1 -1
  98. package/lib/umd/locale/sk-SK.js +1 -1
  99. package/lib/umd/locale/vi-VN.js +1 -1
  100. package/lib/umd/locale/zh-CN.js +1 -1
  101. package/lib/umd/locale/zh-HK.js +1 -1
  102. package/lib/umd/locale/zh-TW.js +1 -1
  103. package/package.json +16 -16
  104. package/lib/types/views/sheet-slider/SheetZoomInput.d.ts +0 -18
@@ -143,13 +143,15 @@ export { calculateDocSkeletonRects, getCustomRangePosition, getEditingCustomRang
143
143
  export { AutoFillPopupMenu } from './views/auto-fill-popup-menu/AutoFillPopupMenu';
144
144
  export { BorderLine } from './views/border-panel/border-line/BorderLine';
145
145
  export { BORDER_LINE_CHILDREN, BORDER_SIZE_CHILDREN } from './views/border-panel/interface';
146
- export { EditorContainer, useKeyEventConfig } from './views/editor-container';
146
+ export { DEFINED_NAME_CONTAINER } from './views/defined-name/component-name';
147
+ export { EditorContainer } from './views/editor-container/EditorContainer';
148
+ export { useKeyEventConfig } from './views/editor-container/hooks';
147
149
  export { FormulaBar } from './views/formula-bar';
148
150
  export { useActiveWorkbook, useActiveWorksheet, useWorkbooks } from './views/hook';
149
151
  export type { IRangeProtectionRenderCellData } from './views/permission/extensions/range-protection.render';
150
- export { type IPermissionDetailUserPartProps } from './views/permission/panel-detail/PermissionDetailUserPart';
151
- export { type IBaseSheetBarProps } from './views/sheet-bar/sheet-bar-tabs/SheetBarItem';
152
+ export type { IPermissionDetailUserPartProps } from './views/permission/panel-detail/PermissionDetailUserPart';
153
+ export type { IBaseSheetBarProps } from './views/sheet-bar/sheet-bar-tabs/SheetBarItem';
152
154
  export { SheetBar } from './views/sheet-bar/SheetBar';
153
155
  export { SHEET_FOOTER_BAR_HEIGHT } from './views/sheet-container/SheetContainer';
154
- export { type IStatisticItem } from './views/status-bar/CopyableStatisticItem';
156
+ export type { IStatisticItem } from './views/status-bar/CopyableStatisticItem';
155
157
  export { functionDisplayNames } from './views/status-bar/CopyableStatisticItem';
@@ -52,6 +52,7 @@ declare const locale: {
52
52
  main: string;
53
53
  };
54
54
  toggleGridlines: string;
55
+ zoom: string;
55
56
  fullscreen: string;
56
57
  };
57
58
  align: {
@@ -66,6 +67,20 @@ declare const locale: {
66
67
  confirm: string;
67
68
  cancel: string;
68
69
  };
70
+ borderStyle: {
71
+ thin: string;
72
+ hair: string;
73
+ dotted: string;
74
+ dashed: string;
75
+ dashDot: string;
76
+ dashDotDot: string;
77
+ medium: string;
78
+ mediumDashed: string;
79
+ mediumDashDot: string;
80
+ mediumDashDotDot: string;
81
+ thick: string;
82
+ double: string;
83
+ };
69
84
  borderLine: {
70
85
  borderTop: string;
71
86
  borderBottom: string;
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IAccessor } from '@univerjs/core';
17
- import type { IMenuButtonItem } from '@univerjs/ui';
17
+ import type { IMenuSelectorItem } from '@univerjs/ui';
18
18
  import type { LocaleKey } from '../locale/types';
19
19
  export declare const ZOOM_RATIO_MENU_ID = "sheet.menu.zoom-ratio";
20
- export declare function ZoomRatioMenuItemFactory(accessor: IAccessor): IMenuButtonItem<LocaleKey, number>;
20
+ export declare function ZoomRatioMenuItemFactory(accessor: IAccessor): IMenuSelectorItem<LocaleKey, number>;
@@ -38,6 +38,7 @@ export interface ICellAlert {
38
38
  height: number;
39
39
  key: string;
40
40
  menu?: ICellAlertMenuItem[];
41
+ action?: ICellAlertMenuItem;
41
42
  }
42
43
  export declare class CellAlertManagerService extends Disposable {
43
44
  private readonly _renderManagerService;
@@ -27,6 +27,10 @@ export declare class SheetCellEditorResizeService extends Disposable {
27
27
  private readonly _univerInstanceService;
28
28
  private readonly _configService;
29
29
  private readonly _embedFloatingGeometryService?;
30
+ private _editorWidth;
31
+ private _editorHeight;
32
+ private _initialEditorSize;
33
+ private _cellSize;
30
34
  constructor(_layoutService: ILayoutService, _cellEditorManagerService: ICellEditorManagerService, _editorBridgeService: IEditorBridgeService, _renderManagerService: IRenderManagerService, _univerInstanceService: IUniverInstanceService, _configService: IConfigService, _embedFloatingGeometryService?: ISheetEmbedFloatingGeometryService | undefined);
31
35
  private get _currentRenderer();
32
36
  private get _editingUnitId();
@@ -35,6 +39,7 @@ export declare class SheetCellEditorResizeService extends Disposable {
35
39
  private get _sheetSkeletonManagerService();
36
40
  private get engine();
37
41
  fitTextSize(callback?: () => void): void;
42
+ private _syncCellSize;
38
43
  /**
39
44
  * Mainly used to pre-calculate the width of the editor,
40
45
  * to determine whether it needs to be automatically widened.
@@ -47,6 +52,7 @@ export declare class SheetCellEditorResizeService extends Disposable {
47
52
  * and calculate the editor's boundaries relative to the browser.
48
53
  */
49
54
  private _editAreaProcessing;
55
+ private _fitEditorViewport;
50
56
  private _getEditorContentElement;
51
57
  /**
52
58
  * Since the document does not support cell background color, an additional rect needs to be added.
@@ -29,6 +29,10 @@ export interface IEditorBridgeServiceVisibleParam {
29
29
  keycode?: KeyCode;
30
30
  isShift?: boolean;
31
31
  initialValue?: string;
32
+ pointerPosition?: {
33
+ x: number;
34
+ y: number;
35
+ };
32
36
  }
33
37
  export interface ICurrentEditCellParam {
34
38
  scene: Scene;
@@ -110,7 +110,7 @@ export declare class HoverManagerService extends Disposable {
110
110
  currentCellPosWithEvent$: import("rxjs").Observable<void | ICellPosWithEvent | null | undefined>;
111
111
  currentPosition$: import("rxjs").Observable<Nullable<IHoverCellPosition>>;
112
112
  currentClickedCell$: import("rxjs").Observable<IHoverRichTextInfo>;
113
- currentDbClickedCell$: import("rxjs").Observable<IHoverRichTextInfo>;
113
+ currentDbClickedCell$: import("rxjs").Observable<IHoverRichTextInfo & ICellWithEvent>;
114
114
  currentPointerDownCell$: import("rxjs").Observable<ICellPosWithEvent>;
115
115
  currentPointerUpCell$: import("rxjs").Observable<ICellPosWithEvent>;
116
116
  currentHoveredRowHeader$: import("rxjs").Observable<Nullable<IHoverHeaderPosition>>;
@@ -140,7 +140,7 @@ export declare class HoverManagerService extends Disposable {
140
140
  * @param offsetY
141
141
  */
142
142
  triggerClick(unitId: string, offsetX: number, offsetY: number): void;
143
- triggerDbClick(unitId: string, offsetX: number, offsetY: number): void;
143
+ triggerDbClick(unitId: string, event: IPointerEvent | IMouseEvent): void;
144
144
  triggerScroll(): void;
145
145
  triggerRowHeaderClick(unitId: string, offsetX: number, offsetY: number): void;
146
146
  triggerColHeaderClick(unitId: string, offsetX: number, offsetY: number): void;
@@ -216,6 +216,8 @@ export declare class BaseSelectionRenderService extends Disposable implements IS
216
216
  x: number;
217
217
  y: number;
218
218
  }): Nullable<ISelectionWithCoord>;
219
+ protected _isContextMenuGesture(evt: IPointerEvent | IMouseEvent): boolean;
220
+ protected _isMultiSelectModifier(evt: IPointerEvent | IMouseEvent): boolean;
219
221
  protected _checkClearPreviousControls(evt: IPointerEvent | IMouseEvent): void;
220
222
  protected _makeSelectionByTwoCells(currentCell: ICellWithCoord, startSelectionRange: IRangeWithCoord, skeleton: SpreadsheetSkeleton, rangeType: RANGE_TYPE, activeControl: SelectionControl): void;
221
223
  isSelectionEnabled(): boolean;
@@ -61,6 +61,9 @@ export declare class SelectionControl extends Disposable {
61
61
  protected _scene: Scene;
62
62
  protected _zIndex: number;
63
63
  protected readonly _themeService: ThemeService;
64
+ private _moveAnimationFrame;
65
+ private _animatedRange;
66
+ private _restoreMoveEvents;
64
67
  private _isHelperSelection;
65
68
  /**
66
69
  * For ref selections, there is no auto fill.
@@ -196,7 +199,9 @@ export declare class SelectionControl extends Disposable {
196
199
  * Update range and primary range and style.
197
200
  * @param selectionWthCoord
198
201
  */
199
- updateRangeBySelectionWithCoord(selectionWthCoord: ISelectionWithCoord, sk?: SpreadsheetSkeleton): void;
202
+ updateRangeBySelectionWithCoord(selectionWthCoord: ISelectionWithCoord, sk?: SpreadsheetSkeleton, animate?: boolean): void;
203
+ private _animateMove;
204
+ private _stopMoveAnimation;
200
205
  /**
201
206
  * Update primary range.
202
207
  * highlight cell would update if primary cell has value.
@@ -75,5 +75,6 @@ export declare class SheetSelectionRenderService extends BaseSelectionRenderServ
75
75
  */
76
76
  protected _onPointerDown(evt: IPointerEvent | IMouseEvent, _zIndex: number | undefined, rangeType: RANGE_TYPE | undefined, viewport: Nullable<Viewport>, scrollTimerType?: ScrollTimerType): void;
77
77
  private _updateSelectionControl;
78
+ private _canAnimateSelection;
78
79
  endSelection(): void;
79
80
  }
@@ -80,7 +80,40 @@ export declare const BORDER_LINE_CHILDREN: ({
80
80
  icon: string;
81
81
  value: BorderType.MLTR_BCTR;
82
82
  })[];
83
- export declare const BORDER_SIZE_CHILDREN: {
84
- label: BorderStyleTypes;
85
- value: BorderStyleTypes;
86
- }[];
83
+ export declare const BORDER_SIZE_CHILDREN: ({
84
+ label: "sheets-ui.borderStyle.thin";
85
+ value: BorderStyleTypes.THIN;
86
+ } | {
87
+ label: "sheets-ui.borderStyle.hair";
88
+ value: BorderStyleTypes.HAIR;
89
+ } | {
90
+ label: "sheets-ui.borderStyle.dotted";
91
+ value: BorderStyleTypes.DOTTED;
92
+ } | {
93
+ label: "sheets-ui.borderStyle.dashed";
94
+ value: BorderStyleTypes.DASHED;
95
+ } | {
96
+ label: "sheets-ui.borderStyle.dashDot";
97
+ value: BorderStyleTypes.DASH_DOT;
98
+ } | {
99
+ label: "sheets-ui.borderStyle.dashDotDot";
100
+ value: BorderStyleTypes.DASH_DOT_DOT;
101
+ } | {
102
+ label: "sheets-ui.borderStyle.medium";
103
+ value: BorderStyleTypes.MEDIUM;
104
+ } | {
105
+ label: "sheets-ui.borderStyle.mediumDashed";
106
+ value: BorderStyleTypes.MEDIUM_DASHED;
107
+ } | {
108
+ label: "sheets-ui.borderStyle.mediumDashDot";
109
+ value: BorderStyleTypes.MEDIUM_DASH_DOT;
110
+ } | {
111
+ label: "sheets-ui.borderStyle.mediumDashDotDot";
112
+ value: BorderStyleTypes.MEDIUM_DASH_DOT_DOT;
113
+ } | {
114
+ label: "sheets-ui.borderStyle.thick";
115
+ value: BorderStyleTypes.THICK;
116
+ } | {
117
+ label: "sheets-ui.borderStyle.double";
118
+ value: BorderStyleTypes.DOUBLE;
119
+ })[];
@@ -13,7 +13,10 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export declare function DefinedNameOverlay({ search, isInputEvent }: {
16
+ interface IDefinedNameOverlayProps {
17
17
  search: string;
18
18
  isInputEvent: boolean;
19
- }): import("react").JSX.Element;
19
+ onClose: () => void;
20
+ }
21
+ export declare function DefinedNameOverlay({ search, isInputEvent, onClose }: IDefinedNameOverlayProps): import("react").JSX.Element;
22
+ export {};
@@ -14,12 +14,13 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IDisposable } from '@univerjs/core';
17
+ import type { IEditorService } from '@univerjs/docs-ui';
17
18
  import type { ISheetEmbedInteractionBoundaryService, ISheetEmbedRuntimeFocusCoordinator } from '../../services/sheet-embed-integration.service';
18
- export declare function focusSheetCellEditorElement(ownerDocument?: Document): boolean;
19
+ export declare function focusSheetCellEditorElement(editorService: IEditorService): boolean;
19
20
  export declare function registerSheetCellEditorRuntimePortal(options: {
20
21
  embedId: string;
22
+ editorService: IEditorService;
21
23
  ownerDocument?: Document;
22
24
  interactionBoundaryService?: ISheetEmbedInteractionBoundaryService;
23
25
  focusCoordinator?: ISheetEmbedRuntimeFocusCoordinator;
24
26
  }): IDisposable;
25
- export declare function resolveSheetCellEditorPortalRoot(ownerDocument?: Document): HTMLElement | null;
package/lib/umd/facade.js CHANGED
@@ -1 +1,3 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("@univerjs/sheets-ui"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/sheets/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/core/facade`,`@univerjs/docs`,`@univerjs/engine-render`,`@univerjs/sheets`,`@univerjs/sheets-ui`,`@univerjs/ui`,`rxjs`,`@univerjs/sheets/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsUiFacade={},e.UniverCore,e.UniverCoreFacade,e.UniverDocs,e.UniverEngineRender,e.UniverSheets,e.UniverSheetsUi,e.UniverUi,e.rxjs,e.UniverSheetsFacade))})(this,function(e,t,n,r,i,a,o,s,c,l){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var u=class extends n.FUniver{_initSheetUIEvent(e){let n=e.get(t.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetEditStart,()=>n.beforeCommandExecuted(n=>{if(n.id!==o.SetCellEditVisibleOperation.id)return;let r=this.getActiveSheet();if(!r)return;let{workbook:i,worksheet:a}=r,s=e.get(o.IEditorBridgeService),{visible:c,keycode:l,eventType:u}=n.params,d=s.getEditLocation();if(!c)return;let f={row:d.row,column:d.column,eventType:u,keycode:l,workbook:i,worksheet:a};if(this.fireEvent(this.Event.BeforeSheetEditStart,f),f.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetEditEnd,()=>n.beforeCommandExecuted(n=>{if(n.id!==o.SetCellEditVisibleOperation.id)return;let r=this.getActiveSheet();if(!r)return;let{workbook:i,worksheet:a}=r,c=e.get(o.IEditorBridgeService),l=e.get(t.IUniverInstanceService),{visible:u,keycode:d,eventType:f}=n.params,p=c.getEditLocation();if(u)return;let m={row:p.row,column:p.column,eventType:f,keycode:d,workbook:i,worksheet:a,value:t.RichTextValue.create(l.getUnit(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:d!==s.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,m),m.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditStarted,()=>n.onCommandExecuted(t=>{if(t.id!==o.SetCellEditVisibleOperation.id)return;let n=t.params,r=this.getSheetCommandTarget(n);if(!r)return;let{workbook:i,worksheet:a}=r,{visible:s,keycode:c,eventType:l}=n;if(!s)return;let u=e.get(o.IEditorBridgeService).getEditLocation(),d={row:u.row,column:u.column,eventType:l,keycode:c,workbook:i,worksheet:a};this.fireEvent(this.Event.SheetEditStarted,d)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditEnded,()=>n.onCommandExecuted(t=>{if(t.id!==o.SetCellEditVisibleOperation.id)return;let n=t.params,r=this.getSheetCommandTarget(n);if(!r)return;let{workbook:i,worksheet:a}=r,{visible:c,keycode:l,eventType:u}=n;if(c)return;let d=e.get(o.IEditorBridgeService).getEditLocation(),f={row:d.row,column:d.column,eventType:u,keycode:l,workbook:i,worksheet:a,isConfirm:l!==s.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,f)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditChanging,()=>n.onCommandExecuted(n=>{if(n.id!==r.RichTextEditingMutation.id)return;let i=n.params,a=this.getActiveSheet();if(!a)return;let{workbook:s,worksheet:c}=a,l=e.get(o.IEditorBridgeService),u=e.get(t.IUniverInstanceService);if(!l.isVisible().visible)return;let{unitId:d}=i;if(d===t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){let{row:e,column:n}=l.getEditLocation(),r={workbook:s,worksheet:c,row:e,column:n,value:t.RichTextValue.create(u.getUnit(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot())};this.fireEvent(this.Event.SheetEditChanging,r)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetZoomChange,()=>n.beforeCommandExecuted(e=>{if(e.id!==o.SetZoomRatioCommand.id)return;let n=e.params,r=this.getSheetCommandTarget(n);if(!r)return;let{workbook:i,worksheet:a}=r,{zoomRatio:s}=n,c={workbook:i,worksheet:a,zoom:s};if(this.fireEvent(this.Event.BeforeSheetZoomChange,c),c.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetZoomChanged,()=>n.onCommandExecuted(e=>{if(e.id!==o.SetZoomRatioCommand.id)return;let t=e.params,n=this.getSheetCommandTarget(t);if(!n)return;let{workbook:r,worksheet:i}=n,{zoomRatio:a}=t,s={workbook:r,worksheet:i,zoom:a};this.fireEvent(this.Event.SheetZoomChanged,s)})))}_initObserverListener(e){let n=e.get(i.IRenderManagerService),r=e.get(t.LifecycleService),s=e.get(t.IUniverInstanceService),l=new t.DisposableCollection,u=()=>{let t=e.get(o.HoverManagerService),n=e.get(o.DragManagerService);l.add(this.registerEventHandler(this.Event.CellClicked,()=>{var e;return(e=t.currentClickedCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e.location,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,row:r,column:i};this.fireEvent(this.Event.CellClicked,c)})})),l.add(this.registerEventHandler(this.Event.CellHover,()=>{var e;return(e=t.currentRichText$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,row:r,column:i};this.fireEvent(this.Event.CellHover,c)})})),l.add(this.registerEventHandler(this.Event.CellPointerDown,()=>{var e;return(e=t.currentPointerDownCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,row:r,column:i};this.fireEvent(this.Event.CellPointerDown,c)})})),l.add(this.registerEventHandler(this.Event.CellPointerUp,()=>{var e;return(e=t.currentPointerUpCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,row:r,column:i};this.fireEvent(this.Event.CellPointerUp,c)})})),l.add(this.registerEventHandler(this.Event.CellPointerMove,()=>{var e;return(e=t.currentCellPosWithEvent$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,row:r,column:i};this.fireEvent(this.Event.CellPointerMove,c)})})),l.add(this.registerEventHandler(this.Event.DragOver,()=>{var e;return(e=n.currentCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e.location,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,...e,row:r,column:i};this.fireEvent(this.Event.DragOver,c)})})),l.add(this.registerEventHandler(this.Event.Drop,()=>{var e;return(e=n.endCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e.location,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,...e,row:r,column:i};this.fireEvent(this.Event.Drop,c)})})),l.add(this.registerEventHandler(this.Event.RowHeaderClick,()=>{var e;return(e=t.currentRowHeaderClick$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,row:r};this.fireEvent(this.Event.RowHeaderClick,s)})})),l.add(this.registerEventHandler(this.Event.RowHeaderPointerDown,()=>{var e;return(e=t.currentRowHeaderPointerDown$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,row:r};this.fireEvent(this.Event.RowHeaderPointerDown,s)})})),l.add(this.registerEventHandler(this.Event.RowHeaderPointerUp,()=>{var e;return(e=t.currentRowHeaderPointerUp$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,row:r};this.fireEvent(this.Event.RowHeaderPointerUp,s)})})),l.add(this.registerEventHandler(this.Event.RowHeaderHover,()=>{var e;return(e=t.currentHoveredRowHeader$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,row:r};this.fireEvent(this.Event.RowHeaderHover,s)})})),l.add(this.registerEventHandler(this.Event.ColumnHeaderClick,()=>{var e;return(e=t.currentColHeaderClick$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,column:r};this.fireEvent(this.Event.ColumnHeaderClick,s)})})),l.add(this.registerEventHandler(this.Event.ColumnHeaderPointerDown,()=>{var e;return(e=t.currentColHeaderPointerDown$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,column:r};this.fireEvent(this.Event.ColumnHeaderPointerDown,s)})})),l.add(this.registerEventHandler(this.Event.ColumnHeaderPointerUp,()=>{var e;return(e=t.currentColHeaderPointerUp$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,column:r};this.fireEvent(this.Event.ColumnHeaderPointerUp,s)})})),l.add(this.registerEventHandler(this.Event.ColumnHeaderHover,()=>{var e;return(e=t.currentHoveredColHeader$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,column:r};this.fireEvent(this.Event.ColumnHeaderHover,s)})})),this.disposeWithMe(l)},d=s.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).length>0?(0,c.of)(!0):s.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,c.take)(1));this.disposeWithMe((0,c.combineLatest)([d,r.lifecycle$]).pipe((0,c.filter)(([,e])=>e>=t.LifecycleStages.Rendered),(0,c.take)(1)).subscribe(()=>u()));let f,p=(0,c.combineLatest)([n.created$,r.lifecycle$]),m=new t.DisposableCollection;this.disposeWithMe(p.subscribe(([e,n])=>{if(e.type===t.UniverInstanceType.UNIVER_SHEET&&(f=e),n<=t.LifecycleStages.Rendered||!f)return;let r=this.getWorkbook(f.unitId);if(!r)return;m.dispose();let i=f.with(o.SheetScrollManagerService),s=this._tryGetRenderDependency(f,a.SheetsSelectionsService);m.add(this.registerEventHandler(this.Event.Scroll,()=>i.validViewportScrollInfo$.subscribe(e=>{if(!e)return;let t={workbook:r,worksheet:r.getActiveSheet(),...e};this.fireEvent(this.Event.Scroll,t)}))),s&&(m.add(this.registerEventHandler(this.Event.SelectionMoveStart,()=>s.selectionMoveStart$.subscribe(e=>{let t={workbook:r,worksheet:r.getActiveSheet(),selections:(e==null?void 0:e.map(e=>e.range))??[]};this.fireEvent(this.Event.SelectionMoveStart,t)}))),m.add(this.registerEventHandler(this.Event.SelectionMoving,()=>s.selectionMoving$.subscribe(e=>{let t={workbook:r,worksheet:r.getActiveSheet(),selections:(e==null?void 0:e.map(e=>e.range))??[]};this.fireEvent(this.Event.SelectionMoving,t)}))),m.add(this.registerEventHandler(this.Event.SelectionMoveEnd,()=>s.selectionMoveEnd$.subscribe(e=>{let t={workbook:r,worksheet:r.getActiveSheet(),selections:(e==null?void 0:e.map(e=>e.range))??[]};this.fireEvent(this.Event.SelectionMoveEnd,t)}))),m.add(this.registerEventHandler(this.Event.SelectionChanged,()=>s.selectionChanged$.subscribe(e=>{let t={workbook:r,worksheet:r.getActiveSheet(),selections:(e==null?void 0:e.map(e=>e.range))??[]};this.fireEvent(this.Event.SelectionChanged,t)})))),f=null,this.disposeWithMe(m)}))}_tryGetRenderDependency(e,t){try{return e.with(t)}catch(e){if(e instanceof Error&&(e.message.includes(`DependencyNotFoundError`)||e.message.includes(`Cannot find`)))return null;throw e}}_initialize(e){this._initSheetUIEvent(e),this._initObserverListener(e);let n=e.get(t.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeClipboardChange,()=>n.beforeCommandExecuted(e=>{switch(e.id){case s.CopyCommand.id:case s.CutCommand.id:this._beforeClipboardChange()}}))),this.disposeWithMe(this.registerEventHandler(this.Event.ClipboardChanged,()=>n.onCommandExecuted(e=>{switch(e.id){case s.CopyCommand.id:case s.CutCommand.id:this._clipboardChanged()}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeClipboardPaste,()=>n.beforeCommandExecuted(e=>{switch(e.id){case o.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(e.params);break;case s.PasteCommand.id:this._beforeClipboardPasteAsync()}}))),this.disposeWithMe(this.registerEventHandler(this.Event.ClipboardPasted,()=>n.onCommandExecuted(e=>{switch(e.id){case o.SheetPasteShortKeyCommand.id:this._clipboardPaste(e.params);break;case s.PasteCommand.id:this._clipboardPasteAsync()}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetSkeletonChanged,()=>n.onCommandExecuted(e=>{if(a.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(e.id)>-1){let t=this.getActiveSheet();if(!t)return;let n=(0,a.getSkeletonChangedEffectedRange)(e,t.worksheet.getMaxColumns()).map(e=>{var t;return(t=this.getWorkbook(e.unitId))==null||(t=t.getSheetBySheetId(e.subUnitId))==null?void 0:t.getRange(e.range)}).filter(Boolean);if(!n.length)return;let r={workbook:t.workbook,worksheet:t.worksheet,payload:e,skeleton:t.worksheet.getSkeleton(),effectedRanges:n};this.fireEvent(this.Event.SheetSkeletonChanged,r)}})))}_generateClipboardCopyParam(){let e=this.getActiveWorkbook(),t=e==null?void 0:e.getActiveSheet(),n=e==null?void 0:e.getActiveRange();if(!e||!t||!n)return;let r=this._injector.get(o.ISheetClipboardService).generateCopyContent(e.getId(),t.getSheetId(),n.getRange());if(!r)return;let{html:i,plain:a}=r;return{workbook:e,worksheet:t,text:a,html:i,fromSheet:t,fromRange:n}}_beforeClipboardChange(){let e=this._generateClipboardCopyParam();if(e&&(this.fireEvent(this.Event.BeforeClipboardChange,e),e.cancel))throw new t.CanceledError}_clipboardChanged(){let e=this._generateClipboardCopyParam();e&&this.fireEvent(this.Event.ClipboardChanged,e)}_generateClipboardPasteParam(e){if(!e)return;let{htmlContent:t,textContent:n}=e,r=this.getActiveWorkbook(),i=r==null?void 0:r.getActiveSheet();if(r&&i)return{workbook:r,worksheet:i,text:n,html:t}}async _generateClipboardPasteParamAsync(){let e=this.getActiveWorkbook(),t=e==null?void 0:e.getActiveSheet();if(!e||!t)return;let n=(await this._injector.get(s.IClipboardInterfaceService).read())[0],r;if(n){let i=n.types;r={workbook:e,worksheet:t,text:i.indexOf(s.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)===-1?``:await n.getType(s.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(e=>e&&e.text()),html:i.indexOf(s.HTML_CLIPBOARD_MIME_TYPE)===-1?``:await n.getType(s.HTML_CLIPBOARD_MIME_TYPE).then(e=>e&&e.text())}}return r}_beforeClipboardPaste(e){let n=this._generateClipboardPasteParam(e);if(n&&(this.fireEvent(this.Event.BeforeClipboardPaste,n),n.cancel))throw new t.CanceledError}_clipboardPaste(e){let n=this._generateClipboardPasteParam(e);if(n&&(this.fireEvent(this.Event.ClipboardPasted,n),n.cancel))throw new t.CanceledError}async _beforeClipboardPasteAsync(){if(!(0,s.supportClipboardAPI)()){this._injector.get(t.ILogService).warn(`[Facade]: The navigator object only supports the browser environment`);return}let e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.BeforeClipboardPaste,e),e.cancel))throw new t.CanceledError}async _clipboardPasteAsync(){if(!(0,s.supportClipboardAPI)()){this._injector.get(t.ILogService).warn(`[Facade]: The navigator object only supports the browser environment`);return}let e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.ClipboardPasted,e),e.cancel))throw new t.CanceledError}registerSheetRowHeaderExtension(e,...n){let r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.ROW),i=r.register(...n);return(0,t.toDisposable)(()=>{i.dispose(),r.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...n){let r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.COLUMN),i=r.register(...n);return(0,t.toDisposable)(()=>{i.dispose(),r.makeDirty(!0)})}registerSheetMainExtension(e,...n){let r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.MAIN),i=r.register(...n);return(0,t.toDisposable)(()=>{i.dispose(),r.makeDirty(!0)})}registerCellCustomRender(e,n=t.InterceptorEffectEnum.Style,r){return this._injector.get(a.SheetInterceptorService).intercept(a.INTERCEPTOR_POINT.CELL_CONTENT,{effect:n,handler:(t,n,r)=>(t&&!t.customRender&&e&&(t.customRender=[...e]),r(t)),priority:r})}_getSheetRenderComponent(e,t){let n=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);if(!n)throw Error(`Render Unit with unitId ${e} not found`);let{components:r}=n,a=r.get(t);if(!a)throw Error(`Render component not found`);return a}pasteIntoSheet(e,t,n){return this._commandService.executeCommand(o.SheetPasteShortKeyCommand.id,{htmlContent:e,textContent:t,files:n})}setProtectedRangeShadowStrategy(e){this._injector.get(o.SheetPermissionRenderManagerService).setProtectedRangeShadowStrategy(e)}getProtectedRangeShadowStrategy(){return this._injector.get(o.SheetPermissionRenderManagerService).getProtectedRangeShadowStrategy()}getProtectedRangeShadowStrategy$(){return this._injector.get(o.SheetPermissionRenderManagerService).getProtectedRangeShadowStrategy$()}setPermissionDialogVisible(e){this._injector.get(t.IPermissionService).setShowComponents(e)}};n.FUniver.extend(u);var d=class extends l.FWorkbook{customizeColumnHeader(e){let t=this._workbook.getUnitId();this._getSheetRenderComponent(t,o.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){let t=this._workbook.getUnitId();this._getSheetRenderComponent(t,o.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}_getSheetRenderComponent(e,t){let n=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);if(!n)throw Error(`Render Unit with unitId ${e} not found`);let{components:r}=n,a=r.get(t);if(!a)throw Error(`Render component not found`);return a}_logDeprecation(e){this._injector.get(t.ILogService).warn(`[FWorkbook]`,`${e} is deprecated. Please use the function of the same name on "FUniver".`)}startEditing(){let e=this._injector.get(t.ICommandService);return this._injector.get(o.IEditorBridgeService).isVisible().visible?!0:e.syncExecuteCommand(o.SetCellEditVisibleOperation.id,{eventType:i.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditingAsync(e=!0){let n=this._injector.get(t.ICommandService);return this._injector.get(o.IEditorBridgeService).isVisible().visible&&n.syncExecuteCommand(o.SetCellEditVisibleOperation.id,{eventType:i.DeviceInputEventType.Keyboard,keycode:e?s.KeyCode.ENTER:s.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await(0,t.awaitTime)(0),!0}abortEditingAsync(){return this.endEditingAsync(!1)}isCellEditing(){return this._injector.get(o.IEditorBridgeService).isVisible().visible}getScrollStateBySheetId(e){let t=this._workbook.getUnitId(),n=this._injector.get(i.IRenderManagerService).getRenderUnitById(t);return n?n.with(o.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:e}):null}disableSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);return t&&t.with(o.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);return t&&t.with(o.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);return t&&t.with(o.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);return t&&t.with(o.ISheetSelectionRenderService).showSelection(),this}};l.FWorkbook.extend(d);var f=class extends l.FWorksheet{refreshCanvas(){let e=this._injector.get(i.IRenderManagerService),t=this._fWorkbook.id,n=e.getRenderUnitById(t);if(!n)throw Error(`Render Unit with unitId ${t} not found`);return n.with(o.SheetSkeletonManagerService).reCalculate(),n.components.forEach(e=>{var t;(t=e.makeDirty)==null||t.call(e)}),this}highlightRanges(e,n,r){let i=this._injector.get(o.IMarkSelectionService),a=[];for(let t of e){let e=t.getRange(),o=i.addShapeWithNoFresh({range:e,style:n,primary:r});o&&a.push(o)}if(i.refreshShapes(),a.length===0)throw Error(`Failed to highlight current range`);return(0,t.toDisposable)(()=>{a.forEach(e=>{i.removeShape(e)})})}zoom(e){let n=this._injector.get(t.ICommandService),r=Math.min(Math.max(e,.1),4);return n.executeCommand(o.SetZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:r}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);if(!t)return null;let n=t.with(o.SheetSkeletonManagerService).getCurrentSkeleton();return n?n.getVisibleRangeByViewport(i.SHEET_VIEWPORT_KEY.VIEW_MAIN):null}getVisibleRangesOfAllViewports(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);if(!t)return null;let n=t.with(o.SheetSkeletonManagerService).getCurrentSkeleton();return n?n.getVisibleRanges():null}scrollToCell(e,t,n){let r=this._workbook.getUnitId(),a=this._injector.get(i.IRenderManagerService).getRenderUnitById(r);return a&&(a==null?void 0:a.with(o.SheetsScrollRenderController)).scrollToCell(e,t,n),this}getScrollState(){let e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=this._injector.get(i.IRenderManagerService).getRenderUnitById(t);return r&&r.with(o.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:n})||e}getSkeleton(){var e;let t=(e=this._injector.get(i.IRenderManagerService).getRenderUnitById(this._workbook.getUnitId()))==null?void 0:e.with(o.SheetSkeletonManagerService);return t==null?void 0:t.getSkeleton(this._worksheet.getSheetId())}autoResizeColumns(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(o.SetWorksheetColAutoWidthCommand.id,{unitId:n,subUnitId:r,ranges:i}),this}autoResizeRows(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightCommand.id,{unitId:n,subUnitId:r,ranges:i}),this}customizeColumnHeader(e){var t;let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=this._injector.get(i.IRenderManagerService).getRenderUnitById(n);if(a&&(t=e.headerStyle)!=null&&t.size){var s;a.with(o.SheetSkeletonManagerService).setColumnHeaderSize(a,r,(s=e.headerStyle)==null?void 0:s.size)}this._getSheetRenderComponent(n,o.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e,r)}customizeRowHeader(e){var t;let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=this._injector.get(i.IRenderManagerService).getRenderUnitById(n);if(a&&(t=e.headerStyle)!=null&&t.size){var s;a.with(o.SheetSkeletonManagerService).setRowHeaderSize(a,r,(s=e.headerStyle)==null?void 0:s.size)}this._getSheetRenderComponent(n,o.SHEET_VIEW_KEY.ROW).setCustomHeader(e,r)}setColumnHeaderHeight(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.executeCommand(o.SetColumnHeaderHeightCommand.id,{unitId:t,subUnitId:n,size:e}),this}setRowHeaderWidth(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.executeCommand(o.SetRowHeaderWidthCommand.id,{unitId:t,subUnitId:n,size:e}),this}_getSheetRenderComponent(e,t){let n=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);if(!n)throw Error(`Render Unit with unitId ${e} not found`);let{components:r}=n,a=r.get(t);if(!a)throw Error(`Render component not found`);return a}};l.FWorksheet.extend(f);var p=class extends n.FEventName{get BeforeClipboardChange(){return`BeforeClipboardChange`}get ClipboardChanged(){return`ClipboardChanged`}get BeforeClipboardPaste(){return`BeforeClipboardPaste`}get ClipboardPasted(){return`ClipboardPasted`}get BeforeSheetEditStart(){return`BeforeSheetEditStart`}get SheetEditStarted(){return`SheetEditStarted`}get SheetEditChanging(){return`SheetEditChanging`}get BeforeSheetEditEnd(){return`BeforeSheetEditEnd`}get SheetEditEnded(){return`SheetEditEnded`}get CellClicked(){return`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`}};n.FEventName.extend(p);var m=class extends n.FEnum{get SHEET_VIEWPORT_KEY(){return i.SHEET_VIEWPORT_KEY}};n.FEnum.extend(m);var h=class extends l.FRange{getCell(){var e;let n=this._injector.get(i.IRenderManagerService),r=this._injector.get(t.ILogService),a=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),c=n.getRenderUnitById(a),l=c==null||(e=c.with(o.SheetSkeletonManagerService).getSkeletonParam(s))==null?void 0:e.skeleton;if(!l)throw r.error("[Facade]: `FRange.getCell` can only be called in current worksheet"),Error("`FRange.getCell` can only be called in current worksheet");return l.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){let{startX:e,startY:t,endX:n,endY:r}=this.getCell(),i={x:e,y:t,width:n-e,height:r-t,top:t,left:e,bottom:r,right:n};return{...i,toJSON:()=>JSON.stringify(i)}}generateHTML(){let e=this._injector.get(o.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(e==null?void 0:e.html)??``}attachPopup(e){e.direction=e.direction??`horizontal`,e.extraProps=e.extraProps??{},e.offset=e.offset??[0,0];let{key:t,disposableCollection:n}=g(e,this._injector.get(s.ComponentManager)),r=this._injector.get(o.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:t},this.getUnitId(),this._worksheet.getSheetId());return r?(n.add(r),n):(n.dispose(),null)}attachAlertPopup(e){let t=this._injector.get(o.CellAlertManagerService),n={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return t.showAlert({...e,location:n}),{dispose:()=>{t.removeAlert(e.key)}}}attachRangePopup(e){e.direction=e.direction??`top-center`,e.extraProps=e.extraProps??{},e.offset=e.offset??[0,0];let{key:t,disposableCollection:n}=g(e,this._injector.get(s.ComponentManager)),r=this._injector.get(o.SheetCanvasPopManagerService).attachRangePopup(this._range,{...e,componentKey:t},this.getUnitId(),this._worksheet.getSheetId());return r?(n.add(r),n):(n.dispose(),null)}highlight(e,n){let r=this._injector.get(o.IMarkSelectionService),i=r.addShape({range:this._range,style:e,primary:n});if(!i)throw Error(`Failed to highlight current range`);return(0,t.toDisposable)(()=>{r.removeShape(i)})}showDropdown(e){return this._injector.get(o.ISheetCellDropdownManagerService).showDropdown(e)}};l.FRange.extend(h);function g(e,n){let{componentKey:r,framework:i}=e,a,o=new t.DisposableCollection;if(typeof r==`string`)a=r;else{let e=i??`react`;a=e===`web-component`?`external-${(0,t.generateRandomId)(6).toLowerCase()}`:`External_${(0,t.generateRandomId)(6)}`,o.add(n.register(a,r,{framework:e}))}return{key:a,disposableCollection:o}}e.FSheetsUIEnumMixin=m,e.transformComponentKey=g});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("@univerjs/sheets-ui"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/sheets/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/core/facade`,`@univerjs/docs`,`@univerjs/engine-render`,`@univerjs/sheets`,`@univerjs/sheets-ui`,`@univerjs/ui`,`rxjs`,`@univerjs/sheets/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsUiFacade={},e.UniverCore,e.UniverCoreFacade,e.UniverDocs,e.UniverEngineRender,e.UniverSheets,e.UniverSheetsUi,e.UniverUi,e.rxjs,e.UniverSheetsFacade))})(this,function(e,t,n,r,i,a,o,s,c,l){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var u=class extends n.FUniver{_initSheetUIEvent(e){let n=e.get(t.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetEditStart,()=>n.beforeCommandExecuted(n=>{if(n.id!==o.SetCellEditVisibleOperation.id)return;let r=this.getActiveSheet();if(!r)return;let{workbook:i,worksheet:a}=r,s=e.get(o.IEditorBridgeService),{visible:c,keycode:l,eventType:u}=n.params,d=s.getEditLocation();if(!c)return;let f={row:d.row,column:d.column,eventType:u,keycode:l,workbook:i,worksheet:a};if(this.fireEvent(this.Event.BeforeSheetEditStart,f),f.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetEditEnd,()=>n.beforeCommandExecuted(n=>{if(n.id!==o.SetCellEditVisibleOperation.id)return;let r=this.getActiveSheet();if(!r)return;let{workbook:i,worksheet:a}=r,c=e.get(o.IEditorBridgeService),l=e.get(t.IUniverInstanceService),{visible:u,keycode:d,eventType:f}=n.params,p=c.getEditLocation();if(u)return;let m={row:p.row,column:p.column,eventType:f,keycode:d,workbook:i,worksheet:a,value:t.RichTextValue.create(l.getUnit(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:d!==s.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,m),m.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditStarted,()=>n.onCommandExecuted(t=>{if(t.id!==o.SetCellEditVisibleOperation.id)return;let n=t.params,r=this.getSheetCommandTarget(n);if(!r)return;let{workbook:i,worksheet:a}=r,{visible:s,keycode:c,eventType:l}=n;if(!s)return;let u=e.get(o.IEditorBridgeService).getEditLocation(),d={row:u.row,column:u.column,eventType:l,keycode:c,workbook:i,worksheet:a};this.fireEvent(this.Event.SheetEditStarted,d)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditEnded,()=>n.onCommandExecuted(t=>{if(t.id!==o.SetCellEditVisibleOperation.id)return;let n=t.params,r=this.getSheetCommandTarget(n);if(!r)return;let{workbook:i,worksheet:a}=r,{visible:c,keycode:l,eventType:u}=n;if(c)return;let d=e.get(o.IEditorBridgeService).getEditLocation(),f={row:d.row,column:d.column,eventType:u,keycode:l,workbook:i,worksheet:a,isConfirm:l!==s.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,f)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditChanging,()=>n.onCommandExecuted(n=>{if(n.id!==r.RichTextEditingMutation.id)return;let i=n.params,a=this.getActiveSheet();if(!a)return;let{workbook:s,worksheet:c}=a,l=e.get(o.IEditorBridgeService),u=e.get(t.IUniverInstanceService);if(!l.isVisible().visible)return;let{unitId:d}=i;if(d===t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){let{row:e,column:n}=l.getEditLocation(),r={workbook:s,worksheet:c,row:e,column:n,value:t.RichTextValue.create(u.getUnit(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot())};this.fireEvent(this.Event.SheetEditChanging,r)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetZoomChange,()=>n.beforeCommandExecuted(e=>{if(e.id!==o.SetZoomRatioCommand.id)return;let n=e.params,r=this.getSheetCommandTarget(n);if(!r)return;let{workbook:i,worksheet:a}=r,{zoomRatio:s}=n,c={workbook:i,worksheet:a,zoom:s};if(this.fireEvent(this.Event.BeforeSheetZoomChange,c),c.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetZoomChanged,()=>n.onCommandExecuted(e=>{if(e.id!==o.SetZoomRatioCommand.id)return;let t=e.params,n=this.getSheetCommandTarget(t);if(!n)return;let{workbook:r,worksheet:i}=n,{zoomRatio:a}=t,s={workbook:r,worksheet:i,zoom:a};this.fireEvent(this.Event.SheetZoomChanged,s)})))}_initObserverListener(e){let n=e.get(i.IRenderManagerService),r=e.get(t.LifecycleService),s=e.get(t.IUniverInstanceService),l=new t.DisposableCollection,u=()=>{let t=e.get(o.HoverManagerService),n=e.get(o.DragManagerService);l.add(this.registerEventHandler(this.Event.CellClicked,()=>{var e;return(e=t.currentClickedCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e.location,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,row:r,column:i};this.fireEvent(this.Event.CellClicked,c)})})),l.add(this.registerEventHandler(this.Event.CellHover,()=>{var e;return(e=t.currentRichText$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,row:r,column:i};this.fireEvent(this.Event.CellHover,c)})})),l.add(this.registerEventHandler(this.Event.CellPointerDown,()=>{var e;return(e=t.currentPointerDownCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,row:r,column:i};this.fireEvent(this.Event.CellPointerDown,c)})})),l.add(this.registerEventHandler(this.Event.CellPointerUp,()=>{var e;return(e=t.currentPointerUpCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,row:r,column:i};this.fireEvent(this.Event.CellPointerUp,c)})})),l.add(this.registerEventHandler(this.Event.CellPointerMove,()=>{var e;return(e=t.currentCellPosWithEvent$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,row:r,column:i};this.fireEvent(this.Event.CellPointerMove,c)})})),l.add(this.registerEventHandler(this.Event.DragOver,()=>{var e;return(e=n.currentCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e.location,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,...e,row:r,column:i};this.fireEvent(this.Event.DragOver,c)})})),l.add(this.registerEventHandler(this.Event.Drop,()=>{var e;return(e=n.endCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,row:r,col:i}=e.location,a=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!a)return;let{workbook:o,worksheet:s}=a,c={workbook:o,worksheet:s,...e,row:r,column:i};this.fireEvent(this.Event.Drop,c)})})),l.add(this.registerEventHandler(this.Event.RowHeaderClick,()=>{var e;return(e=t.currentRowHeaderClick$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,row:r};this.fireEvent(this.Event.RowHeaderClick,s)})})),l.add(this.registerEventHandler(this.Event.RowHeaderPointerDown,()=>{var e;return(e=t.currentRowHeaderPointerDown$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,row:r};this.fireEvent(this.Event.RowHeaderPointerDown,s)})})),l.add(this.registerEventHandler(this.Event.RowHeaderPointerUp,()=>{var e;return(e=t.currentRowHeaderPointerUp$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,row:r};this.fireEvent(this.Event.RowHeaderPointerUp,s)})})),l.add(this.registerEventHandler(this.Event.RowHeaderHover,()=>{var e;return(e=t.currentHoveredRowHeader$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,row:r};this.fireEvent(this.Event.RowHeaderHover,s)})})),l.add(this.registerEventHandler(this.Event.ColumnHeaderClick,()=>{var e;return(e=t.currentColHeaderClick$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,column:r};this.fireEvent(this.Event.ColumnHeaderClick,s)})})),l.add(this.registerEventHandler(this.Event.ColumnHeaderPointerDown,()=>{var e;return(e=t.currentColHeaderPointerDown$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,column:r};this.fireEvent(this.Event.ColumnHeaderPointerDown,s)})})),l.add(this.registerEventHandler(this.Event.ColumnHeaderPointerUp,()=>{var e;return(e=t.currentColHeaderPointerUp$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,column:r};this.fireEvent(this.Event.ColumnHeaderPointerUp,s)})})),l.add(this.registerEventHandler(this.Event.ColumnHeaderHover,()=>{var e;return(e=t.currentHoveredColHeader$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let{unitId:t,subUnitId:n,index:r}=e,i=this.getSheetCommandTarget({unitId:t,subUnitId:n});if(!i)return;let{workbook:a,worksheet:o}=i,s={workbook:a,worksheet:o,column:r};this.fireEvent(this.Event.ColumnHeaderHover,s)})})),this.disposeWithMe(l)},d=s.getAllUnitsForType(t.UniverInstanceType.UNIVER_SHEET).length>0?(0,c.of)(!0):s.getTypeOfUnitAdded$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,c.take)(1));this.disposeWithMe((0,c.combineLatest)([d,r.lifecycle$]).pipe((0,c.filter)(([,e])=>e>=t.LifecycleStages.Rendered),(0,c.take)(1)).subscribe(()=>u()));let f,p=(0,c.combineLatest)([n.created$,r.lifecycle$]),m=new t.DisposableCollection;this.disposeWithMe(p.subscribe(([e,n])=>{if(e.type===t.UniverInstanceType.UNIVER_SHEET&&(f=e),n<=t.LifecycleStages.Rendered||!f)return;let r=this.getWorkbook(f.unitId);if(!r)return;m.dispose();let i=f.with(o.SheetScrollManagerService),s=this._tryGetRenderDependency(f,a.SheetsSelectionsService);m.add(this.registerEventHandler(this.Event.Scroll,()=>i.validViewportScrollInfo$.subscribe(e=>{if(!e)return;let t={workbook:r,worksheet:r.getActiveSheet(),...e};this.fireEvent(this.Event.Scroll,t)}))),s&&(m.add(this.registerEventHandler(this.Event.SelectionMoveStart,()=>s.selectionMoveStart$.subscribe(e=>{let t={workbook:r,worksheet:r.getActiveSheet(),selections:(e==null?void 0:e.map(e=>e.range))??[]};this.fireEvent(this.Event.SelectionMoveStart,t)}))),m.add(this.registerEventHandler(this.Event.SelectionMoving,()=>s.selectionMoving$.subscribe(e=>{let t={workbook:r,worksheet:r.getActiveSheet(),selections:(e==null?void 0:e.map(e=>e.range))??[]};this.fireEvent(this.Event.SelectionMoving,t)}))),m.add(this.registerEventHandler(this.Event.SelectionMoveEnd,()=>s.selectionMoveEnd$.subscribe(e=>{let t={workbook:r,worksheet:r.getActiveSheet(),selections:(e==null?void 0:e.map(e=>e.range))??[]};this.fireEvent(this.Event.SelectionMoveEnd,t)}))),m.add(this.registerEventHandler(this.Event.SelectionChanged,()=>s.selectionChanged$.subscribe(e=>{let t={workbook:r,worksheet:r.getActiveSheet(),selections:(e==null?void 0:e.map(e=>e.range))??[]};this.fireEvent(this.Event.SelectionChanged,t)})))),f=null,this.disposeWithMe(m)}))}_tryGetRenderDependency(e,t){try{return e.with(t)}catch(e){if(e instanceof Error&&(e.message.includes(`DependencyNotFoundError`)||e.message.includes(`Cannot find`)))return null;throw e}}_initialize(e){this._initSheetUIEvent(e),this._initObserverListener(e);let n=e.get(t.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeClipboardChange,()=>n.beforeCommandExecuted(e=>{switch(e.id){case s.CopyCommand.id:case s.CutCommand.id:this._beforeClipboardChange()}}))),this.disposeWithMe(this.registerEventHandler(this.Event.ClipboardChanged,()=>n.onCommandExecuted(e=>{switch(e.id){case s.CopyCommand.id:case s.CutCommand.id:this._clipboardChanged()}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeClipboardPaste,()=>n.beforeCommandExecuted(e=>{switch(e.id){case o.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(e.params);break;case s.PasteCommand.id:this._beforeClipboardPasteAsync()}}))),this.disposeWithMe(this.registerEventHandler(this.Event.ClipboardPasted,()=>n.onCommandExecuted(e=>{switch(e.id){case o.SheetPasteShortKeyCommand.id:this._clipboardPaste(e.params);break;case s.PasteCommand.id:this._clipboardPasteAsync()}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetSkeletonChanged,()=>n.onCommandExecuted(e=>{if(a.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(e.id)>-1){let t=this.getActiveSheet();if(!t)return;let n=(0,a.getSkeletonChangedEffectedRange)(e,t.worksheet.getMaxColumns()).map(e=>{var t;return(t=this.getWorkbook(e.unitId))==null||(t=t.getSheetBySheetId(e.subUnitId))==null?void 0:t.getRange(e.range)}).filter(Boolean);if(!n.length)return;let r={workbook:t.workbook,worksheet:t.worksheet,payload:e,skeleton:t.worksheet.getSkeleton(),effectedRanges:n};this.fireEvent(this.Event.SheetSkeletonChanged,r)}})))}_generateClipboardCopyParam(){let e=this.getActiveWorkbook(),t=e==null?void 0:e.getActiveSheet(),n=e==null?void 0:e.getActiveRange();if(!e||!t||!n)return;let r=this._injector.get(o.ISheetClipboardService).generateCopyContent(e.getId(),t.getSheetId(),n.getRange());if(!r)return;let{html:i,plain:a}=r;return{workbook:e,worksheet:t,text:a,html:i,fromSheet:t,fromRange:n}}_beforeClipboardChange(){let e=this._generateClipboardCopyParam();if(e&&(this.fireEvent(this.Event.BeforeClipboardChange,e),e.cancel))throw new t.CanceledError}_clipboardChanged(){let e=this._generateClipboardCopyParam();e&&this.fireEvent(this.Event.ClipboardChanged,e)}_generateClipboardPasteParam(e){if(!e)return;let{htmlContent:t,textContent:n}=e,r=this.getActiveWorkbook(),i=r==null?void 0:r.getActiveSheet();if(r&&i)return{workbook:r,worksheet:i,text:n,html:t}}async _generateClipboardPasteParamAsync(){let e=this.getActiveWorkbook(),t=e==null?void 0:e.getActiveSheet();if(!e||!t)return;let n=(await this._injector.get(s.IClipboardInterfaceService).read())[0],r;if(n){let i=n.types;r={workbook:e,worksheet:t,text:i.indexOf(s.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)===-1?``:await n.getType(s.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(e=>e&&e.text()),html:i.indexOf(s.HTML_CLIPBOARD_MIME_TYPE)===-1?``:await n.getType(s.HTML_CLIPBOARD_MIME_TYPE).then(e=>e&&e.text())}}return r}_beforeClipboardPaste(e){let n=this._generateClipboardPasteParam(e);if(n&&(this.fireEvent(this.Event.BeforeClipboardPaste,n),n.cancel))throw new t.CanceledError}_clipboardPaste(e){let n=this._generateClipboardPasteParam(e);if(n&&(this.fireEvent(this.Event.ClipboardPasted,n),n.cancel))throw new t.CanceledError}async _beforeClipboardPasteAsync(){if(!(0,s.supportClipboardAPI)()){this._injector.get(t.ILogService).warn(`[Facade]: The navigator object only supports the browser environment`);return}let e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.BeforeClipboardPaste,e),e.cancel))throw new t.CanceledError}async _clipboardPasteAsync(){if(!(0,s.supportClipboardAPI)()){this._injector.get(t.ILogService).warn(`[Facade]: The navigator object only supports the browser environment`);return}let e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.ClipboardPasted,e),e.cancel))throw new t.CanceledError}registerSheetRowHeaderExtension(e,...n){let r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.ROW),i=r.register(...n);return(0,t.toDisposable)(()=>{i.dispose(),r.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...n){let r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.COLUMN),i=r.register(...n);return(0,t.toDisposable)(()=>{i.dispose(),r.makeDirty(!0)})}registerSheetMainExtension(e,...n){let r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.MAIN),i=r.register(...n);return(0,t.toDisposable)(()=>{i.dispose(),r.makeDirty(!0)})}registerCellCustomRender(e,n=t.InterceptorEffectEnum.Style,r){return this._injector.get(a.SheetInterceptorService).intercept(a.INTERCEPTOR_POINT.CELL_CONTENT,{effect:n,handler:(t,n,r)=>(t&&!t.customRender&&e&&(t.customRender=[...e]),r(t)),priority:r})}_getSheetRenderComponent(e,t){let n=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);if(!n)throw Error(`Render Unit with unitId ${e} not found`);let{components:r}=n,a=r.get(t);if(!a)throw Error(`Render component not found`);return a}pasteIntoSheet(e,t,n){return this._commandService.executeCommand(o.SheetPasteShortKeyCommand.id,{htmlContent:e,textContent:t,files:n})}setProtectedRangeShadowStrategy(e){this._injector.get(o.SheetPermissionRenderManagerService).setProtectedRangeShadowStrategy(e)}getProtectedRangeShadowStrategy(){return this._injector.get(o.SheetPermissionRenderManagerService).getProtectedRangeShadowStrategy()}getProtectedRangeShadowStrategy$(){return this._injector.get(o.SheetPermissionRenderManagerService).getProtectedRangeShadowStrategy$()}setPermissionDialogVisible(e){this._injector.get(t.IPermissionService).setShowComponents(e)}};n.FUniver.extend(u);var d=class extends l.FWorkbook{customizeColumnHeader(e){let t=this._workbook.getUnitId();this._getSheetRenderComponent(t,o.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){let t=this._workbook.getUnitId();this._getSheetRenderComponent(t,o.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}_getSheetRenderComponent(e,t){let n=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);if(!n)throw Error(`Render Unit with unitId ${e} not found`);let{components:r}=n,a=r.get(t);if(!a)throw Error(`Render component not found`);return a}
2
+ /* istanbul ignore next -- deprecated API helper */
3
+ _logDeprecation(e){this._injector.get(t.ILogService).warn(`[FWorkbook]`,`${e} is deprecated. Please use the function of the same name on "FUniver".`)}startEditing(){let e=this._injector.get(t.ICommandService);return this._injector.get(o.IEditorBridgeService).isVisible().visible?!0:e.syncExecuteCommand(o.SetCellEditVisibleOperation.id,{eventType:i.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditingAsync(e=!0){let n=this._injector.get(t.ICommandService);return this._injector.get(o.IEditorBridgeService).isVisible().visible&&n.syncExecuteCommand(o.SetCellEditVisibleOperation.id,{eventType:i.DeviceInputEventType.Keyboard,keycode:e?s.KeyCode.ENTER:s.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await(0,t.awaitTime)(0),!0}abortEditingAsync(){return this.endEditingAsync(!1)}isCellEditing(){return this._injector.get(o.IEditorBridgeService).isVisible().visible}getScrollStateBySheetId(e){let t=this._workbook.getUnitId(),n=this._injector.get(i.IRenderManagerService).getRenderUnitById(t);return n?n.with(o.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:e}):null}disableSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);return t&&t.with(o.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);return t&&t.with(o.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);return t&&t.with(o.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);return t&&t.with(o.ISheetSelectionRenderService).showSelection(),this}};l.FWorkbook.extend(d);var f=class extends l.FWorksheet{refreshCanvas(){let e=this._injector.get(i.IRenderManagerService),t=this._fWorkbook.id,n=e.getRenderUnitById(t);if(!n)throw Error(`Render Unit with unitId ${t} not found`);return n.with(o.SheetSkeletonManagerService).reCalculate(),n.components.forEach(e=>{var t;(t=e.makeDirty)==null||t.call(e)}),this}highlightRanges(e,n,r){let i=this._injector.get(o.IMarkSelectionService),a=[];for(let t of e){let e=t.getRange(),o=i.addShapeWithNoFresh({range:e,style:n,primary:r});o&&a.push(o)}if(i.refreshShapes(),a.length===0)throw Error(`Failed to highlight current range`);return(0,t.toDisposable)(()=>{a.forEach(e=>{i.removeShape(e)})})}zoom(e){let n=this._injector.get(t.ICommandService),r=Math.min(Math.max(e,.1),4);return n.executeCommand(o.SetZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:r}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);if(!t)return null;let n=t.with(o.SheetSkeletonManagerService).getCurrentSkeleton();return n?n.getVisibleRangeByViewport(i.SHEET_VIEWPORT_KEY.VIEW_MAIN):null}getVisibleRangesOfAllViewports(){let e=this._workbook.getUnitId(),t=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);if(!t)return null;let n=t.with(o.SheetSkeletonManagerService).getCurrentSkeleton();return n?n.getVisibleRanges():null}scrollToCell(e,t,n){let r=this._workbook.getUnitId(),a=this._injector.get(i.IRenderManagerService).getRenderUnitById(r);return a&&(a==null?void 0:a.with(o.SheetsScrollRenderController)).scrollToCell(e,t,n),this}getScrollState(){let e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),r=this._injector.get(i.IRenderManagerService).getRenderUnitById(t);return r&&r.with(o.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:n})||e}getSkeleton(){var e;let t=(e=this._injector.get(i.IRenderManagerService).getRenderUnitById(this._workbook.getUnitId()))==null?void 0:e.with(o.SheetSkeletonManagerService);return t==null?void 0:t.getSkeleton(this._worksheet.getSheetId())}autoResizeColumns(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(o.SetWorksheetColAutoWidthCommand.id,{unitId:n,subUnitId:r,ranges:i}),this}autoResizeRows(e,t=1){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(a.SetWorksheetRowIsAutoHeightCommand.id,{unitId:n,subUnitId:r,ranges:i}),this}customizeColumnHeader(e){var t;let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=this._injector.get(i.IRenderManagerService).getRenderUnitById(n);if(a&&(t=e.headerStyle)!=null&&t.size){var s;a.with(o.SheetSkeletonManagerService).setColumnHeaderSize(a,r,(s=e.headerStyle)==null?void 0:s.size)}this._getSheetRenderComponent(n,o.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e,r)}customizeRowHeader(e){var t;let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=this._injector.get(i.IRenderManagerService).getRenderUnitById(n);if(a&&(t=e.headerStyle)!=null&&t.size){var s;a.with(o.SheetSkeletonManagerService).setRowHeaderSize(a,r,(s=e.headerStyle)==null?void 0:s.size)}this._getSheetRenderComponent(n,o.SHEET_VIEW_KEY.ROW).setCustomHeader(e,r)}setColumnHeaderHeight(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.executeCommand(o.SetColumnHeaderHeightCommand.id,{unitId:t,subUnitId:n,size:e}),this}setRowHeaderWidth(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.executeCommand(o.SetRowHeaderWidthCommand.id,{unitId:t,subUnitId:n,size:e}),this}_getSheetRenderComponent(e,t){let n=this._injector.get(i.IRenderManagerService).getRenderUnitById(e);if(!n)throw Error(`Render Unit with unitId ${e} not found`);let{components:r}=n,a=r.get(t);if(!a)throw Error(`Render component not found`);return a}};l.FWorksheet.extend(f);var p=class extends n.FEventName{get BeforeClipboardChange(){return`BeforeClipboardChange`}get ClipboardChanged(){return`ClipboardChanged`}get BeforeClipboardPaste(){return`BeforeClipboardPaste`}get ClipboardPasted(){return`ClipboardPasted`}get BeforeSheetEditStart(){return`BeforeSheetEditStart`}get SheetEditStarted(){return`SheetEditStarted`}get SheetEditChanging(){return`SheetEditChanging`}get BeforeSheetEditEnd(){return`BeforeSheetEditEnd`}get SheetEditEnded(){return`SheetEditEnded`}get CellClicked(){return`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`}};n.FEventName.extend(p);var m=class extends n.FEnum{get SHEET_VIEWPORT_KEY(){return i.SHEET_VIEWPORT_KEY}};n.FEnum.extend(m);var h=class extends l.FRange{getCell(){var e;let n=this._injector.get(i.IRenderManagerService),r=this._injector.get(t.ILogService),a=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),c=n.getRenderUnitById(a),l=c==null||(e=c.with(o.SheetSkeletonManagerService).getSkeletonParam(s))==null?void 0:e.skeleton;if(!l)throw r.error("[Facade]: `FRange.getCell` can only be called in current worksheet"),Error("`FRange.getCell` can only be called in current worksheet");return l.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){let{startX:e,startY:t,endX:n,endY:r}=this.getCell(),i={x:e,y:t,width:n-e,height:r-t,top:t,left:e,bottom:r,right:n};return{...i,toJSON:()=>JSON.stringify(i)}}generateHTML(){let e=this._injector.get(o.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(e==null?void 0:e.html)??``}attachPopup(e){e.direction=e.direction??`horizontal`,e.extraProps=e.extraProps??{},e.offset=e.offset??[0,0];let{key:t,disposableCollection:n}=g(e,this._injector.get(s.ComponentManager)),r=this._injector.get(o.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:t},this.getUnitId(),this._worksheet.getSheetId());return r?(n.add(r),n):(n.dispose(),null)}attachAlertPopup(e){let t=this._injector.get(o.CellAlertManagerService),n={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return t.showAlert({...e,location:n}),{dispose:()=>{t.removeAlert(e.key)}}}attachRangePopup(e){e.direction=e.direction??`top-center`,e.extraProps=e.extraProps??{},e.offset=e.offset??[0,0];let{key:t,disposableCollection:n}=g(e,this._injector.get(s.ComponentManager)),r=this._injector.get(o.SheetCanvasPopManagerService).attachRangePopup(this._range,{...e,componentKey:t},this.getUnitId(),this._worksheet.getSheetId());return r?(n.add(r),n):(n.dispose(),null)}highlight(e,n){let r=this._injector.get(o.IMarkSelectionService),i=r.addShape({range:this._range,style:e,primary:n});if(!i)throw Error(`Failed to highlight current range`);return(0,t.toDisposable)(()=>{r.removeShape(i)})}showDropdown(e){return this._injector.get(o.ISheetCellDropdownManagerService).showDropdown(e)}};l.FRange.extend(h);function g(e,n){let{componentKey:r,framework:i}=e,a,o=new t.DisposableCollection;if(typeof r==`string`)a=r;else{let e=i??`react`;a=e===`web-component`?`external-${(0,t.generateRandomId)(6).toLowerCase()}`:`External_${(0,t.generateRandomId)(6)}`,o.add(n.register(a,r,{framework:e}))}return{key:a,disposableCollection:o}}e.FSheetsUIEnumMixin=m,e.transformComponentKey=g});