@univerjs/sheets-ui 0.5.5-nightly.202501220324 → 0.5.5-nightly.202501221606

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/es/facade.js CHANGED
@@ -511,7 +511,7 @@ const _FUniverSheetsUIMixin = class _FUniverSheetsUIMixin extends FUniver {
511
511
  return;
512
512
  }
513
513
  const unitId = wb == null ? void 0 : wb.getId(), renderManagerService = this._injector.get(IRenderManagerService), activeSheet = wb.getActiveSheet(), subUnitId = activeSheet.getSheetId(), render = renderManagerService.getRenderById(unitId);
514
- render && ((_a = cfg.headerStyle) != null && _a.size) && (render.with(SheetSkeletonManagerService).setColumnHeaderSize(subUnitId, render, (_b = cfg.headerStyle) == null ? void 0 : _b.size), activeSheet == null || activeSheet.refreshCanvas()), this._getSheetRenderComponent(unitId, SHEET_VIEW_KEY.COLUMN).setCustomHeader(cfg), activeSheet == null || activeSheet.refreshCanvas();
514
+ render && ((_a = cfg.headerStyle) != null && _a.size) && (render.with(SheetSkeletonManagerService).setColumnHeaderSize(render, subUnitId, (_b = cfg.headerStyle) == null ? void 0 : _b.size), activeSheet == null || activeSheet.refreshCanvas()), this._getSheetRenderComponent(unitId, SHEET_VIEW_KEY.COLUMN).setCustomHeader(cfg), activeSheet == null || activeSheet.refreshCanvas();
515
515
  }
516
516
  customizeRowHeader(cfg) {
517
517
  const wb = this.getActiveWorkbook();
@@ -1005,7 +1005,7 @@ const _FRangeSheetsUIMixin = class _FRangeSheetsUIMixin extends FRange {
1005
1005
  */
1006
1006
  attachRangePopup(popup) {
1007
1007
  var _a, _b, _c;
1008
- popup.direction = (_a = popup.direction) != null ? _a : "horizontal", popup.extraProps = (_b = popup.extraProps) != null ? _b : {}, popup.offset = (_c = popup.offset) != null ? _c : [0, 0];
1008
+ popup.direction = (_a = popup.direction) != null ? _a : "top-center", popup.extraProps = (_b = popup.extraProps) != null ? _b : {}, popup.offset = (_c = popup.offset) != null ? _c : [0, 0];
1009
1009
  const { key, disposableCollection } = transformComponentKey(popup, this._injector.get(ComponentManager)), disposePopup = this._injector.get(SheetCanvasPopManagerService).attachRangePopup(
1010
1010
  this._range,
1011
1011
  { ...popup, componentKey: key },
package/lib/es/index.js CHANGED
@@ -1969,23 +1969,25 @@ let SheetSkeletonManagerService = (_a = class extends Disposable {
1969
1969
  this._context.unit.getStyles()
1970
1970
  );
1971
1971
  }
1972
- setColumnHeaderSize(sheetId, render2, size) {
1972
+ setColumnHeaderSize(render2, sheetId, size) {
1973
1973
  var _a61;
1974
1974
  const skeleton = (_a61 = this.getWorksheetSkeleton(sheetId)) == null ? void 0 : _a61.skeleton;
1975
1975
  if (skeleton) {
1976
- skeleton.columnHeaderHeight = size, render2.scene.getViewports()[0].top = size, render2.scene.getViewport("viewColumnRight").setViewportSize({
1976
+ skeleton.columnHeaderHeight = size, render2.scene.getViewports()[0].top = size, render2.scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT).setViewportSize({
1977
1977
  height: size
1978
- }), render2.scene.getViewport("viewColumnLeft").setViewportSize({
1978
+ }), render2.scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT).setViewportSize({
1979
1979
  height: size
1980
- }), render2.scene.getViewport("viewRowBottom").setViewportSize({
1980
+ }), render2.scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM).setViewportSize({
1981
1981
  top: size
1982
- }), render2.scene.getViewport("viewRowTop").setViewportSize({
1982
+ }), render2.scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_ROW_TOP).setViewportSize({
1983
1983
  top: size
1984
- }), render2.scene.getViewport("viewLeftTop").setViewportSize({
1984
+ }), render2.scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP).setViewportSize({
1985
1985
  height: size
1986
1986
  });
1987
1987
  const selectionService = render2 == null ? void 0 : render2.with(SheetsSelectionsService), selectionRenderService = render2 == null ? void 0 : render2.with(ISheetSelectionRenderService), currSelections = selectionService.getCurrentSelections();
1988
1988
  selectionRenderService.resetSelectionsByModelData(currSelections);
1989
+ const sheetSkeletonManagerParam = this.getUnitSkeleton(render2.unitId, sheetId);
1990
+ this._currentSkeleton$.next(sheetSkeletonManagerParam);
1989
1991
  }
1990
1992
  }
1991
1993
  }, __name(_a, "SheetSkeletonManagerService"), _a);
@@ -11236,6 +11238,14 @@ let SheetRenderController = (_a21 = class extends RxDisposable {
11236
11238
  width: rowHeaderWidth,
11237
11239
  height: columnHeaderHeight
11238
11240
  });
11241
+ const rowFreezeHeaderRect = this._context.scene.getObject(FREEZE_ROW_HEADER_NAME);
11242
+ rowFreezeHeaderRect && rowFreezeHeaderRect.transformByState({
11243
+ top: columnHeaderHeight - rowFreezeHeaderRect.height
11244
+ });
11245
+ const colFreezeHeaderRect = this._context.scene.getObject(FREEZE_COLUMN_HEADER_NAME);
11246
+ colFreezeHeaderRect && colFreezeHeaderRect.transformByState({
11247
+ height: columnHeaderHeight
11248
+ });
11239
11249
  }));
11240
11250
  }
11241
11251
  _initCommandListener() {
@@ -14896,8 +14906,10 @@ const SINGLE_MODE_WIDTH = 800, ROW_COUNT_THRESHOLD = 3, StatusBar = /* @__PURE__
14896
14906
  );
14897
14907
  }, "StatusBar");
14898
14908
  function RenderSheetFooter() {
14899
- const menuManagerService = useDependency(IMenuManagerService), workbook = useActiveWorkbook(), footerMenus = menuManagerService.getMenuByPositionKey(ContextMenuPosition.FOOTER_MENU);
14900
- return workbook ? /* @__PURE__ */ jsxs("section", { className: styles$l.sheetContainer, "data-range-selector": !0, children: [
14909
+ const menuManagerService = useDependency(IMenuManagerService);
14910
+ if (!useActiveWorkbook()) return null;
14911
+ const footerMenus = menuManagerService.getMenuByPositionKey(ContextMenuPosition.FOOTER_MENU);
14912
+ return /* @__PURE__ */ jsxs("section", { className: styles$l.sheetContainer, "data-range-selector": !0, children: [
14901
14913
  /* @__PURE__ */ jsx(SheetBar, {}),
14902
14914
  /* @__PURE__ */ jsx(StatusBar, {}),
14903
14915
  footerMenus.map((item) => {
@@ -14914,7 +14926,7 @@ function RenderSheetFooter() {
14914
14926
  ));
14915
14927
  }),
14916
14928
  /* @__PURE__ */ jsx(CountBar, {})
14917
- ] }) : null;
14929
+ ] });
14918
14930
  }
14919
14931
  __name(RenderSheetFooter, "RenderSheetFooter");
14920
14932
  function RenderSheetHeader() {
@@ -1,8 +1,12 @@
1
- import { Disposable, ICommandService, Injector, InterceptorManager, ThemeService, Workbook } from '@univerjs/core';
2
- import { SheetInterceptorService, SheetsSelectionsService } from '@univerjs/sheets';
1
+ import { Workbook, Disposable, ICommandService, Injector, InterceptorManager, ThemeService } from '@univerjs/core';
3
2
  import { IRenderContext, IRenderModule } from '@univerjs/engine-render';
3
+ import { SheetInterceptorService, SheetsSelectionsService } from '@univerjs/sheets';
4
4
  import { SheetScrollManagerService } from '../../services/scroll-manager.service';
5
5
  import { SheetSkeletonManagerService } from '../../services/sheet-skeleton-manager.service';
6
+ export declare const FREEZE_ROW_MAIN_NAME = "__SpreadsheetFreezeRowMainName__";
7
+ export declare const FREEZE_ROW_HEADER_NAME = "__SpreadsheetFreezeRowHeaderName__";
8
+ export declare const FREEZE_COLUMN_MAIN_NAME = "__SpreadsheetFreezeColumnMainName__";
9
+ export declare const FREEZE_COLUMN_HEADER_NAME = "__SpreadsheetFreezeColumnHeaderName__";
6
10
  export declare const FREEZE_PERMISSION_CHECK: import('@univerjs/core').IInterceptor<boolean, null>;
7
11
  export declare class HeaderFreezeRenderController extends Disposable implements IRenderModule {
8
12
  private readonly _context;
@@ -55,12 +55,21 @@ interface IFRangeSheetsUIMixin {
55
55
  * @returns The disposable object to detach the popup, if the popup is not attached, return `null`.
56
56
  * @example
57
57
  ```
58
+ univerAPI.getComponentManager().register(
59
+ 'myPopup',
60
+ () => React.createElement('div', {
61
+ style: {
62
+ color: 'red',
63
+ fontSize: '14px'
64
+ }
65
+ }, 'Custom Popup')
66
+ );
67
+
58
68
  let sheet = univerAPI.getActiveWorkbook().getActiveSheet();
59
69
  let range = sheet.getRange(2, 2, 3, 3);
60
70
  univerAPI.getActiveWorkbook().setActiveRange(range);
61
71
  let disposable = range.attachPopup({
62
- componentKey: 'univer.sheet.cell-alert',
63
- extraProps: { alert: { type: 0, title: 'This is an Info', message: 'This is an info message' } },
72
+ componentKey: 'myPopup'
64
73
  });
65
74
  ```
66
75
  */
@@ -78,7 +87,7 @@ interface IFRangeSheetsUIMixin {
78
87
  */
79
88
  attachAlertPopup(alert: Omit<ICellAlert, 'location'>): IDisposable;
80
89
  /**
81
- * Attach a DOM popup to the start cell of current range.
90
+ * Attach a DOM popup to the current range.
82
91
  * @param alert The alert to attach
83
92
  * @returns The disposable object to detach the alert.
84
93
  * @example
@@ -86,9 +95,19 @@ interface IFRangeSheetsUIMixin {
86
95
  let sheet = univerAPI.getActiveWorkbook().getActiveSheet();
87
96
  let range = sheet.getRange(2, 2, 3, 3);
88
97
  univerAPI.getActiveWorkbook().setActiveRange(range);
98
+
99
+ univerAPI.getComponentManager().register(
100
+ 'myPopup',
101
+ () => React.createElement('div', {
102
+ style: {
103
+ background: 'red',
104
+ fontSize: '14px'
105
+ }
106
+ }, 'Custom Popup')
107
+ );
89
108
  let disposable = range.attachRangePopup({
90
- componentKey: 'univer.sheet.single-dom-popup',
91
- extraProps: { alert: { type: 0, title: 'This is an Info', message: 'This is an info message' } },
109
+ componentKey: 'myPopup',
110
+ direction: 'top' // 'vertical' | 'horizontal' | 'top' | 'right' | 'left' | 'bottom' | 'bottom-center' | 'top-center';
92
111
  });
93
112
  * ```
94
113
  */
@@ -58,5 +58,5 @@ export declare class SheetSkeletonManagerService extends Disposable implements I
58
58
  attachRangeWithCoord(range: IRange): Nullable<IRangeWithCoord>;
59
59
  private _getSkeleton;
60
60
  private _buildSkeleton;
61
- setColumnHeaderSize(sheetId: string, render: IRender, size: number): void;
61
+ setColumnHeaderSize(render: IRender, sheetId: string, size: number): void;
62
62
  }
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("@univerjs/core"),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/docs","@univerjs/engine-render","@univerjs/sheets","@univerjs/sheets-ui","@univerjs/sheets/facade","@univerjs/ui","rxjs"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.UniverSheetsUiFacade={},global.UniverCore,global.UniverDocs,global.UniverEngineRender,global.UniverSheets,global.UniverSheetsUi,global.UniverSheetsFacade,global.UniverUi,global.rxjs))})(this,function(exports2,core,docs,engineRender,sheets,sheetsUi,facade,ui,rxjs){"use strict";var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});const _FUniverSheetsUIMixin=class _FUniverSheetsUIMixin extends core.FUniver{_initSheetUIEvent(injector){const commandService=injector.get(core.ICommandService);this.disposeWithMe(commandService.beforeCommandExecuted(commandInfo=>{if(commandInfo.id===sheetsUi.SetCellEditVisibleOperation.id){if(!this._eventListend(this.Event.BeforeSheetEditStart)&&!this._eventListend(this.Event.BeforeSheetEditEnd))return;const target=this.getCommandSheetTarget(commandInfo);if(!target)return;const{workbook,worksheet}=target,editorBridgeService=injector.get(sheetsUi.IEditorBridgeService),univerInstanceService=injector.get(core.IUniverInstanceService),params=commandInfo.params,{visible,keycode,eventType}=params,loc=editorBridgeService.getEditLocation();if(visible){const eventParams={row:loc.row,column:loc.column,eventType,keycode,workbook,worksheet,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,eventParams),eventParams.cancel)throw new core.CanceledError}else{const eventParams={row:loc.row,column:loc.column,eventType,keycode,workbook,worksheet,isZenEditor:!1,value:core.RichTextValue.create(univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:keycode!==ui.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,eventParams),eventParams.cancel)throw new core.CanceledError}}if(commandInfo.id===sheetsUi.SetZoomRatioCommand.id){if(!this._eventListend(this.Event.BeforeSheetZoomChange))return;const target=this.getCommandSheetTarget(commandInfo);if(!target)return;const{workbook,worksheet}=target;this.fireEvent(this.Event.BeforeSheetZoomChange,{zoom:commandInfo.params.zoomRatio,workbook,worksheet})}})),this.disposeWithMe(commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===sheetsUi.SetCellEditVisibleOperation.id){if(!this._eventListend(this.Event.SheetEditStarted)&&!this._eventListend(this.Event.SheetEditEnded))return;const target=this.getCommandSheetTarget(commandInfo);if(!target)return;const{workbook,worksheet}=target,editorBridgeService=injector.get(sheetsUi.IEditorBridgeService),params=commandInfo.params,{visible,keycode,eventType}=params,loc=editorBridgeService.getEditLocation();if(visible){const eventParams={row:loc.row,column:loc.column,eventType,keycode,workbook,worksheet,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,eventParams)}else{const eventParams={row:loc.row,column:loc.column,eventType,keycode,workbook,worksheet,isZenEditor:!1,isConfirm:keycode!==ui.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,eventParams)}}if(commandInfo.id===docs.RichTextEditingMutation.id){if(!this._eventListend(this.Event.SheetEditChanging))return;const target=this.getCommandSheetTarget(commandInfo);if(!target)return;const{workbook,worksheet}=target,editorBridgeService=injector.get(sheetsUi.IEditorBridgeService),univerInstanceService=injector.get(core.IUniverInstanceService),params=commandInfo.params;if(!editorBridgeService.isVisible().visible)return;const{unitId}=params;if(unitId===core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const{row,column}=editorBridgeService.getEditLocation(),eventParams={workbook,worksheet,row,column,value:core.RichTextValue.create(univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,eventParams)}}if(commandInfo.id===sheetsUi.SetZoomRatioCommand.id){if(!this._eventListend(this.Event.SheetZoomChanged))return;const target=this.getCommandSheetTarget(commandInfo);if(!target)return;const{workbook,worksheet}=target;this.fireEvent(this.Event.SheetZoomChanged,{zoom:worksheet.getZoom(),workbook,worksheet})}})),this._initObserverListener(injector)}_initObserverListener(injector){const unitM=injector.get(core.IUniverInstanceService).getFocusedUnit(),unitId=unitM==null?void 0:unitM.getUnitId(),renderManagerService=injector.get(engineRender.IRenderManagerService);if(unitId){const lifeCycleService2=injector.get(core.LifecycleService),disposable=new core.DisposableCollection;this.disposeWithMe(lifeCycleService2.lifecycle$.subscribe(lifecycle=>{var _a,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o;if(lifecycle<core.LifecycleStages.Rendered)return;disposable.dispose();const hoverManagerService=injector.get(sheetsUi.HoverManagerService),dragManagerService=injector.get(sheetsUi.DragManagerService);hoverManagerService&&(disposable.add((_a=hoverManagerService.currentClickedCell$)==null?void 0:_a.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.CellClicked))return;const baseParams=this.getSheetTarget(cell.location.unitId,cell.location.subUnitId);baseParams&&this.fireEvent(this.Event.CellClicked,{...baseParams,...cell,row:cell.location.row,column:cell.location.col})})),disposable.add((_b=hoverManagerService.currentRichText$)==null?void 0:_b.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.CellHover))return;const baseParams=this.getSheetTarget(cell.unitId,cell.subUnitId);baseParams&&this.fireEvent(this.Event.CellHover,{...baseParams,...cell,row:cell.row,column:cell.col})})),disposable.add((_c=hoverManagerService.currentPointerDownCell$)==null?void 0:_c.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.CellPointerDown))return;const baseParams=this.getSheetTarget(cell.unitId,cell.subUnitId);baseParams&&this.fireEvent(this.Event.CellPointerDown,{...baseParams,...cell,row:cell.row,column:cell.col})})),disposable.add((_d=hoverManagerService.currentPointerUpCell$)==null?void 0:_d.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.CellPointerUp))return;const baseParams=this.getSheetTarget(cell.unitId,cell.subUnitId);baseParams&&this.fireEvent(this.Event.CellPointerUp,{...baseParams,...cell,row:cell.row,column:cell.col})})),disposable.add((_e=hoverManagerService.currentCellPosWithEvent$)==null?void 0:_e.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.CellPointerMove))return;const baseParams=this.getSheetTarget(cell.unitId,cell.subUnitId);baseParams&&this.fireEvent(this.Event.CellPointerMove,{...baseParams,...cell,row:cell.row,column:cell.col})})),disposable.add((_f=dragManagerService.currentCell$)==null?void 0:_f.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.DragOver))return;const baseParams=this.getSheetTarget(cell.location.unitId,cell.location.subUnitId);baseParams&&this.fireEvent(this.Event.DragOver,{...baseParams,...cell,row:cell.location.row,column:cell.location.col})})),disposable.add((_g=dragManagerService.endCell$)==null?void 0:_g.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.Drop))return;const baseParams=this.getSheetTarget(cell.location.unitId,cell.location.subUnitId);baseParams&&this.fireEvent(this.Event.Drop,{...baseParams,...cell,row:cell.location.row,column:cell.location.col})})),disposable.add((_h=hoverManagerService.currentRowHeaderClick$)==null?void 0:_h.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.RowHeaderClick))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.RowHeaderClick,{...baseParams,row:header.index})})),disposable.add((_i=hoverManagerService.currentRowHeaderPointerDown$)==null?void 0:_i.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.RowHeaderPointerDown))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.RowHeaderPointerDown,{...baseParams,row:header.index})})),disposable.add((_j=hoverManagerService.currentRowHeaderPointerUp$)==null?void 0:_j.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.RowHeaderPointerUp))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.RowHeaderPointerUp,{...baseParams,row:header.index})})),disposable.add((_k=hoverManagerService.currentHoveredRowHeader$)==null?void 0:_k.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.RowHeaderHover))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.RowHeaderHover,{...baseParams,row:header.index})})),disposable.add((_l=hoverManagerService.currentColHeaderClick$)==null?void 0:_l.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.ColumnHeaderClick))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.ColumnHeaderClick,{...baseParams,column:header.index})})),disposable.add((_m=hoverManagerService.currentColHeaderPointerDown$)==null?void 0:_m.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.ColumnHeaderPointerDown))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.ColumnHeaderPointerDown,{...baseParams,column:header.index})})),disposable.add((_n=hoverManagerService.currentColHeaderPointerUp$)==null?void 0:_n.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.ColumnHeaderPointerUp))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.ColumnHeaderPointerUp,{...baseParams,column:header.index})})),disposable.add((_o=hoverManagerService.currentHoveredColHeader$)==null?void 0:_o.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.ColumnHeaderHover))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.ColumnHeaderHover,{...baseParams,column:header.index})})))})),this.disposeWithMe(disposable)}const unitMap=new Map;let sheetRenderUnit;const lifeCycleService=injector.get(core.LifecycleService),combined$=rxjs.combineLatest([renderManagerService.created$,lifeCycleService.lifecycle$]);this.disposeWithMe(combined$.subscribe(([created,lifecycle])=>{var _a;if(created.type===core.UniverInstanceType.UNIVER_SHEET&&(sheetRenderUnit=created),lifecycle<=core.LifecycleStages.Rendered)return;const disposable=new core.DisposableCollection;if(!sheetRenderUnit)return;const workbook=this.getWorkbook(sheetRenderUnit.unitId);if(!workbook)return;unitMap.get(sheetRenderUnit.unitId)&&((_a=unitMap.get(sheetRenderUnit.unitId))==null||_a.dispose()),unitMap.set(sheetRenderUnit.unitId,disposable);const scrollManagerService=sheetRenderUnit.with(sheetsUi.SheetScrollManagerService);disposable.add(scrollManagerService.validViewportScrollInfo$.subscribe(params=>{params&&this._eventListend(this.Event.Scroll)&&this.fireEvent(this.Event.Scroll,{workbook,worksheet:workbook.getActiveSheet(),...params})}));const selectionService=sheetRenderUnit.with(sheets.SheetsSelectionsService);disposable.add(selectionService.selectionMoveStart$.subscribe(selections=>{var _a2;this._eventListend(this.Event.SelectionMoveStart)&&this.fireEvent(this.Event.SelectionMoveStart,{workbook,worksheet:workbook.getActiveSheet(),selections:(_a2=selections==null?void 0:selections.map(s=>s.range))!=null?_a2:[]})})),disposable.add(selectionService.selectionMoving$.subscribe(selections=>{var _a2;this._eventListend(this.Event.SelectionMoving)&&this.fireEvent(this.Event.SelectionMoving,{workbook,worksheet:workbook.getActiveSheet(),selections:(_a2=selections==null?void 0:selections.map(s=>s.range))!=null?_a2:[]})})),disposable.add(selectionService.selectionMoveEnd$.subscribe(selections=>{var _a2;this._eventListend(this.Event.SelectionMoveEnd)&&this.fireEvent(this.Event.SelectionMoveEnd,{workbook,worksheet:workbook.getActiveSheet(),selections:(_a2=selections==null?void 0:selections.map(s=>s.range))!=null?_a2:[]})})),disposable.add(selectionService.selectionChanged$.subscribe(selections=>{var _a2;this._eventListend(this.Event.SelectionChanged)&&this.fireEvent(this.Event.SelectionChanged,{workbook,worksheet:workbook.getActiveSheet(),selections:(_a2=selections==null?void 0:selections.map(s=>s.range))!=null?_a2:[]})})),sheetRenderUnit=null,this.disposeWithMe(disposable)})),this.disposeWithMe(renderManagerService.disposed$.subscribe(unitId2=>{var _a;(_a=unitMap.get(unitId2))==null||_a.dispose(),unitMap.delete(unitId2)})),this.disposeWithMe(()=>{unitMap.forEach(disposable=>{disposable.dispose()})})}_initialize(injector){this._initSheetUIEvent(injector);const commandService=injector.get(core.ICommandService);this.disposeWithMe(commandService.beforeCommandExecuted(commandInfo=>{switch(commandInfo.id){case ui.CopyCommand.id:case ui.CutCommand.id:this._beforeClipboardChange();break;case sheetsUi.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(commandInfo.params);break}})),this.disposeWithMe(commandService.onCommandExecuted(commandInfo=>{if(sheets.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(commandInfo.id)>-1){if(!this._eventListend(this.Event.SheetSkeletonChanged))return;const sheet=this.getActiveSheet();if(!sheet)return;const ranges=sheets.getSkeletonChangedEffectedRange(commandInfo).map(range=>{var _a,_b;return(_b=(_a=this.getWorkbook(range.unitId))==null?void 0:_a.getSheetBySheetId(range.subUnitId))==null?void 0:_b.getRange(range.range)}).filter(Boolean);if(!ranges.length)return;this.fireEvent(this.Event.SheetSkeletonChanged,{workbook:sheet.workbook,worksheet:sheet.worksheet,payload:commandInfo,skeleton:sheet.worksheet.getSkeleton(),effectedRanges:ranges});return}switch(commandInfo.id){case ui.CopyCommand.id:case ui.CutCommand.id:this._clipboardChanged();break;case sheetsUi.SheetPasteShortKeyCommand.id:this._clipboardPaste();break;case ui.PasteCommand.id:this._clipboardPasteAsync();break}})),this.disposeWithMe(commandService.beforeCommandExecuted(async commandInfo=>{switch(commandInfo.id){case ui.PasteCommand.id:await this._beforeClipboardPasteAsync();break}}))}_generateClipboardCopyParam(){const workbook=this.getActiveWorkbook(),worksheet=workbook==null?void 0:workbook.getActiveSheet(),range=workbook==null?void 0:workbook.getActiveRange();if(!workbook||!worksheet||!range)return;const content=this._injector.get(sheetsUi.ISheetClipboardService).generateCopyContent(workbook.getId(),worksheet.getSheetId(),range.getRange());if(!content)return;const{html,plain}=content;return{workbook,worksheet,text:plain,html,fromSheet:worksheet,fromRange:range}}_beforeClipboardChange(){if(!this.hasEventCallback(this.Event.BeforeClipboardChange))return;const eventParams=this._generateClipboardCopyParam();if(eventParams&&(this.fireEvent(this.Event.BeforeClipboardChange,eventParams),eventParams.cancel))throw new Error("Before clipboard change is canceled")}_clipboardChanged(){if(!this.hasEventCallback(this.Event.ClipboardChanged))return;const eventParams=this._generateClipboardCopyParam();if(eventParams&&(this.fireEvent(this.Event.ClipboardChanged,eventParams),eventParams.cancel))throw new Error("Clipboard changed is canceled")}_generateClipboardPasteParam(params){if(!params)return;const{htmlContent,textContent}=params,workbook=this.getActiveWorkbook(),worksheet=workbook==null?void 0:workbook.getActiveSheet();return!workbook||!worksheet?void 0:{workbook,worksheet,text:textContent,html:htmlContent}}async _generateClipboardPasteParamAsync(){const workbook=this.getActiveWorkbook(),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return;const item=(await this._injector.get(ui.IClipboardInterfaceService).read())[0];let eventParams;if(item){const types=item.types,text=types.indexOf(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"",html=types.indexOf(ui.HTML_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.HTML_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"";eventParams={workbook,worksheet,text,html}}return eventParams}_beforeClipboardPaste(params){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;const eventParams=this._generateClipboardPasteParam(params);if(eventParams&&(this.fireEvent(this.Event.BeforeClipboardPaste,eventParams),eventParams.cancel))throw new Error("Before clipboard paste is canceled")}_clipboardPaste(params){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;const eventParams=this._generateClipboardPasteParam(params);if(eventParams&&(this.fireEvent(this.Event.BeforeClipboardPaste,eventParams),eventParams.cancel))throw new Error("Clipboard pasted is canceled")}async _beforeClipboardPasteAsync(){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;if(!ui.supportClipboardAPI()){this._injector.get(core.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const eventParams=await this._generateClipboardPasteParamAsync();if(eventParams&&(this.fireEvent(this.Event.BeforeClipboardPaste,eventParams),eventParams.cancel))throw new Error("Before clipboard paste is canceled")}async _clipboardPasteAsync(){if(!this.hasEventCallback(this.Event.ClipboardPasted))return;if(!ui.supportClipboardAPI()){this._injector.get(core.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const eventParams=await this._generateClipboardPasteParamAsync();if(eventParams&&(this.fireEvent(this.Event.ClipboardPasted,eventParams),eventParams.cancel))throw new Error("Clipboard pasted is canceled")}customizeColumnHeader(cfg){var _a,_b;const wb=this.getActiveWorkbook();if(!wb){console.error("WorkBook not exist");return}const unitId=wb==null?void 0:wb.getId(),renderManagerService=this._injector.get(engineRender.IRenderManagerService),activeSheet=wb.getActiveSheet(),subUnitId=activeSheet.getSheetId(),render=renderManagerService.getRenderById(unitId);render&&((_a=cfg.headerStyle)!=null&&_a.size)&&(render.with(sheetsUi.SheetSkeletonManagerService).setColumnHeaderSize(subUnitId,render,(_b=cfg.headerStyle)==null?void 0:_b.size),activeSheet==null||activeSheet.refreshCanvas()),this._getSheetRenderComponent(unitId,sheetsUi.SHEET_VIEW_KEY.COLUMN).setCustomHeader(cfg),activeSheet==null||activeSheet.refreshCanvas()}customizeRowHeader(cfg){const wb=this.getActiveWorkbook();if(!wb){console.error("WorkBook not exist");return}const unitId=wb==null?void 0:wb.getId();this._getSheetRenderComponent(unitId,sheetsUi.SHEET_VIEW_KEY.ROW).setCustomHeader(cfg)}registerSheetRowHeaderExtension(unitId,...extensions){const sheetComponent=this._getSheetRenderComponent(unitId,sheetsUi.SHEET_VIEW_KEY.ROW),registerDisposable=sheetComponent.register(...extensions);return core.toDisposable(()=>{registerDisposable.dispose(),sheetComponent.makeDirty(!0)})}registerSheetColumnHeaderExtension(unitId,...extensions){const sheetComponent=this._getSheetRenderComponent(unitId,sheetsUi.SHEET_VIEW_KEY.COLUMN),registerDisposable=sheetComponent.register(...extensions);return core.toDisposable(()=>{registerDisposable.dispose(),sheetComponent.makeDirty(!0)})}registerSheetMainExtension(unitId,...extensions){const sheetComponent=this._getSheetRenderComponent(unitId,sheetsUi.SHEET_VIEW_KEY.MAIN),registerDisposable=sheetComponent.register(...extensions);return core.toDisposable(()=>{registerDisposable.dispose(),sheetComponent.makeDirty(!0)})}_getSheetRenderComponent(unitId,viewKey){const render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);if(!render)throw new Error(`Render Unit with unitId ${unitId} not found`);const{components}=render,renderComponent=components.get(viewKey);if(!renderComponent)throw new Error("Render component not found");return renderComponent}getSheetHooks(){return this._injector.createInstance(facade.FSheetHooks)}};__name(_FUniverSheetsUIMixin,"FUniverSheetsUIMixin");let FUniverSheetsUIMixin=_FUniverSheetsUIMixin;core.FUniver.extend(FUniverSheetsUIMixin);const _FWorkbookSheetsUIMixin=class _FWorkbookSheetsUIMixin extends facade.FWorkbook{openSiderbar(params){return this._logDeprecation("openSiderbar"),this._injector.get(ui.ISidebarService).open(params)}openDialog(dialog){this._logDeprecation("openDialog");const disposable=this._injector.get(ui.IDialogService).open({...dialog,onClose:__name(()=>{disposable.dispose()},"onClose")});return disposable}_logDeprecation(name){this._injector.get(core.ILogService).warn("[FWorkbook]",`${name} is deprecated. Please use the function of the same name on "FUniver".`)}generateCellParams(cell){const worksheet=this.getActiveSheet();return{row:cell.row,column:cell.col,workbook:this,worksheet}}onCellClick(callback){const hoverManagerService=this._injector.get(sheetsUi.HoverManagerService);return core.toDisposable(hoverManagerService.currentClickedCell$.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{callback(cell)}))}onCellHover(callback){const hoverManagerService=this._injector.get(sheetsUi.HoverManagerService);return core.toDisposable(hoverManagerService.currentRichText$.pipe(rxjs.filter(cell=>!!cell)).subscribe(callback))}onCellPointerDown(callback){const hoverManagerService=this._injector.get(sheetsUi.HoverManagerService);return core.toDisposable(hoverManagerService.currentPointerDownCell$.subscribe(callback))}onCellPointerUp(callback){const hoverManagerService=this._injector.get(sheetsUi.HoverManagerService);return core.toDisposable(hoverManagerService.currentPointerUpCell$.subscribe(callback))}onCellPointerMove(callback){const hoverManagerService=this._injector.get(sheetsUi.HoverManagerService);return core.toDisposable(hoverManagerService.currentCellPosWithEvent$.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{callback(cell,cell.event)}))}onDragOver(callback){const dragManagerService=this._injector.get(sheetsUi.DragManagerService);return core.toDisposable(dragManagerService.currentCell$.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{callback(cell)}))}onDrop(callback){const dragManagerService=this._injector.get(sheetsUi.DragManagerService);return core.toDisposable(dragManagerService.endCell$.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{callback(cell)}))}startEditing(){return this._injector.get(core.ICommandService).syncExecuteCommand(sheetsUi.SetCellEditVisibleOperation.id,{eventType:engineRender.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(save){return this._injector.get(core.ICommandService).syncExecuteCommand(sheetsUi.SetCellEditVisibleOperation.id,{eventType:engineRender.DeviceInputEventType.Keyboard,keycode:save?ui.KeyCode.ENTER:ui.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await core.awaitTime(0),!0}endEditingAsync(save=!0){return this.endEditing(save)}getScrollStateBySheetId(sheetId){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render?render.with(sheetsUi.SheetScrollManagerService).getScrollStateByParam({unitId,sheetId}):null}disableSelection(){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&render.with(sheetsUi.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&render.with(sheetsUi.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&render.with(sheetsUi.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&render.with(sheetsUi.ISheetSelectionRenderService).showSelection(),this}};__name(_FWorkbookSheetsUIMixin,"FWorkbookSheetsUIMixin");let FWorkbookSheetsUIMixin=_FWorkbookSheetsUIMixin;facade.FWorkbook.extend(FWorkbookSheetsUIMixin);const _FWorksheetSkeletonMixin=class _FWorksheetSkeletonMixin extends facade.FWorksheet{refreshCanvas(){const renderManagerService=this._injector.get(engineRender.IRenderManagerService),unitId=this._fWorkbook.id,render=renderManagerService.getRenderById(unitId);if(!render)throw new Error(`Render Unit with unitId ${unitId} not found`);render.with(sheetsUi.SheetSkeletonManagerService).reCalculate();const mainComponent=render.mainComponent;if(!mainComponent)throw new Error("Main component not found");return mainComponent.makeDirty(),this}zoom(zoomRatio){return this._injector.get(core.ICommandService).syncExecuteCommand(sheetsUi.ChangeZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);let range={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!render)return range;const sk=render.with(sheetsUi.SheetSkeletonManagerService).getCurrentSkeleton();if(!sk)return range;const visibleRangeMap=sk==null?void 0:sk.getVisibleRanges();if(!visibleRangeMap)return range;range=sk.getVisibleRangeByViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[k,r]of visibleRangeMap)engineRender.sheetContentViewportKeys.indexOf(k)!==-1&&(range.startColumn=Math.min(range.startColumn,r.startColumn),range.startRow=Math.min(range.startRow,r.startRow),range.endColumn=Math.max(range.endColumn,r.endColumn),range.endRow=Math.max(range.endRow,r.endRow));return range}scrollToCell(row,column){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&(render==null?void 0:render.with(sheetsUi.SheetsScrollRenderController)).scrollToCell(row,column),this}getScrollState(){const emptyScrollState={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},unitId=this._workbook.getUnitId(),sheetId=this._worksheet.getSheetId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&render.with(sheetsUi.SheetScrollManagerService).getScrollStateByParam({unitId,sheetId})||emptyScrollState}onScroll(callback){var _a;const unitId=this._workbook.getUnitId(),scrollManagerService=(_a=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId))==null?void 0:_a.with(sheetsUi.SheetScrollManagerService);if(scrollManagerService){const sub=scrollManagerService.validViewportScrollInfo$.subscribe(params=>{callback(params)});return core.toDisposable(sub)}return core.toDisposable(()=>{})}getSkeleton(){var _a,_b;const service=(_a=this._injector.get(engineRender.IRenderManagerService).getRenderById(this._workbook.getUnitId()))==null?void 0:_a.with(sheetsUi.SheetSkeletonManagerService);return(_b=service==null?void 0:service.getWorksheetSkeleton(this._worksheet.getSheetId()))==null?void 0:_b.skeleton}setColumnAutoWidth(columnPosition,numColumn){const unitId=this._workbook.getUnitId(),subUnitId=this._worksheet.getSheetId(),ranges=[{startColumn:columnPosition,endColumn:columnPosition+numColumn-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(sheetsUi.SetWorksheetColAutoWidthCommand.id,{unitId,subUnitId,ranges}),this}};__name(_FWorksheetSkeletonMixin,"FWorksheetSkeletonMixin");let FWorksheetSkeletonMixin=_FWorksheetSkeletonMixin;facade.FWorksheet.extend(FWorksheetSkeletonMixin);const _FPermissionSheetsUIMixin=class _FPermissionSheetsUIMixin extends facade.FPermission{setPermissionDialogVisible(visible){this._permissionService.setShowComponents(visible)}};__name(_FPermissionSheetsUIMixin,"FPermissionSheetsUIMixin");let FPermissionSheetsUIMixin=_FPermissionSheetsUIMixin;facade.FPermission.extend(FPermissionSheetsUIMixin);const _FSheetHooksUIMixin=class _FSheetHooksUIMixin extends facade.FSheetHooks{onCellPointerMove(callback){return core.toDisposable(this._injector.get(sheetsUi.HoverManagerService).currentPosition$.subscribe(callback))}onCellPointerOver(callback){return core.toDisposable(this._injector.get(sheetsUi.HoverManagerService).currentCell$.subscribe(callback))}onCellDragOver(callback){return core.toDisposable(this._injector.get(sheetsUi.DragManagerService).currentCell$.subscribe(callback))}onCellDrop(callback){return core.toDisposable(this._injector.get(sheetsUi.DragManagerService).endCell$.subscribe(callback))}onCellRender(customRender,effect=core.InterceptorEffectEnum.Style,priority=sheets.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(sheets.SheetInterceptorService).intercept(sheets.INTERCEPTOR_POINT.CELL_CONTENT,{effect,handler:__name((cell,pos,next)=>next({...cell,customRender:[...(cell==null?void 0:cell.customRender)||[],...customRender||[]]}),"handler"),priority})}onBeforeCellEdit(callback){return this._injector.get(core.ICommandService).beforeCommandExecuted(command=>{const params=command.params;command.id===sheetsUi.SetCellEditVisibleOperation.id&&params.visible&&callback(params)})}onAfterCellEdit(callback){return this._injector.get(core.ICommandService).onCommandExecuted(command=>{const params=command.params;command.id===sheetsUi.SetCellEditVisibleOperation.id&&!params.visible&&callback(params)})}};__name(_FSheetHooksUIMixin,"FSheetHooksUIMixin");let FSheetHooksUIMixin=_FSheetHooksUIMixin;facade.FSheetHooks.extend(FSheetHooksUIMixin);const CellFEventName={CellClicked:"CellClicked",CellPointerDown:"CellPointerDown",CellPointerUp:"CellPointerUp",CellPointerMove:"CellPointerMove",CellHover:"CellHover",DragOver:"DragOver",Drop:"Drop",Scroll:"Scroll",SelectionMoveStart:"SelectionMoveStart",SelectionMoving:"SelectionMoving",SelectionMoveEnd:"SelectionMoveEnd",SelectionChanged:"SelectionChanged"},_FSheetsUIEventName=class _FSheetsUIEventName extends core.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 CellFEventName.CellClicked}get CellHover(){return CellFEventName.CellHover}get CellPointerDown(){return CellFEventName.CellPointerDown}get CellPointerUp(){return CellFEventName.CellPointerUp}get CellPointerMove(){return CellFEventName.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"}};__name(_FSheetsUIEventName,"FSheetsUIEventName");let FSheetsUIEventName=_FSheetsUIEventName;core.FEventName.extend(FSheetsUIEventName);const _FRangeSheetsUIMixin=class _FRangeSheetsUIMixin extends facade.FRange{getCell(){var _a;const renderManagerService=this._injector.get(engineRender.IRenderManagerService),logService=this._injector.get(core.ILogService),unitId=this._workbook.getUnitId(),subUnitId=this._worksheet.getSheetId(),render=renderManagerService.getRenderById(unitId),skeleton=(_a=render==null?void 0:render.with(sheetsUi.SheetSkeletonManagerService).getWorksheetSkeleton(subUnitId))==null?void 0:_a.skeleton;if(!skeleton)throw logService.error("[Facade]: `FRange.getCell` can only be called in current worksheet"),new Error("`FRange.getCell` can only be called in current worksheet");return skeleton.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:x,startY:y,endX:x2,endY:y2}=this.getCell(),data={x,y,width:x2-x,height:y2-y,top:y,left:x,bottom:y2,right:x2};return{...data,toJSON:__name(()=>JSON.stringify(data),"toJSON")}}generateHTML(){var _a;const copyContent=this._injector.get(sheetsUi.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(_a=copyContent==null?void 0:copyContent.html)!=null?_a:""}attachPopup(popup){var _a,_b,_c;popup.direction=(_a=popup.direction)!=null?_a:"horizontal",popup.extraProps=(_b=popup.extraProps)!=null?_b:{},popup.offset=(_c=popup.offset)!=null?_c:[0,0];const{key,disposableCollection}=transformComponentKey(popup,this._injector.get(ui.ComponentManager)),disposePopup=this._injector.get(sheetsUi.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...popup,componentKey:key},this.getUnitId(),this._worksheet.getSheetId());return disposePopup?(disposableCollection.add(disposePopup),disposableCollection):(disposableCollection.dispose(),null)}attachAlertPopup(alert){const cellAlertService=this._injector.get(sheetsUi.CellAlertManagerService),location={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return cellAlertService.showAlert({...alert,location}),{dispose:__name(()=>{cellAlertService.removeAlert(alert.key)},"dispose")}}attachRangePopup(popup){var _a,_b,_c;popup.direction=(_a=popup.direction)!=null?_a:"horizontal",popup.extraProps=(_b=popup.extraProps)!=null?_b:{},popup.offset=(_c=popup.offset)!=null?_c:[0,0];const{key,disposableCollection}=transformComponentKey(popup,this._injector.get(ui.ComponentManager)),disposePopup=this._injector.get(sheetsUi.SheetCanvasPopManagerService).attachRangePopup(this._range,{...popup,componentKey:key},this.getUnitId(),this._worksheet.getSheetId());return disposePopup?(disposableCollection.add(disposePopup),disposableCollection):(disposableCollection.dispose(),null)}highlight(style,primary){const markSelectionService=this._injector.get(sheetsUi.IMarkSelectionService),id=markSelectionService.addShape({range:this._range,style,primary});if(!id)throw new Error("Failed to highlight current range");return core.toDisposable(()=>{markSelectionService.removeShape(id)})}};__name(_FRangeSheetsUIMixin,"FRangeSheetsUIMixin");let FRangeSheetsUIMixin=_FRangeSheetsUIMixin;facade.FRange.extend(FRangeSheetsUIMixin);function transformComponentKey(component,componentManager){const{componentKey,isVue3}=component;let key;const disposableCollection=new core.DisposableCollection;return typeof componentKey=="string"?key=componentKey:(key=`External_${core.generateRandomId(6)}`,disposableCollection.add(componentManager.register(key,componentKey,{framework:isVue3?"vue3":"react"}))),{key,disposableCollection}}__name(transformComponentKey,"transformComponentKey"),exports2.transformComponentKey=transformComponentKey,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});
1
+ (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("@univerjs/core"),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/docs","@univerjs/engine-render","@univerjs/sheets","@univerjs/sheets-ui","@univerjs/sheets/facade","@univerjs/ui","rxjs"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.UniverSheetsUiFacade={},global.UniverCore,global.UniverDocs,global.UniverEngineRender,global.UniverSheets,global.UniverSheetsUi,global.UniverSheetsFacade,global.UniverUi,global.rxjs))})(this,function(exports2,core,docs,engineRender,sheets,sheetsUi,facade,ui,rxjs){"use strict";var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});const _FUniverSheetsUIMixin=class _FUniverSheetsUIMixin extends core.FUniver{_initSheetUIEvent(injector){const commandService=injector.get(core.ICommandService);this.disposeWithMe(commandService.beforeCommandExecuted(commandInfo=>{if(commandInfo.id===sheetsUi.SetCellEditVisibleOperation.id){if(!this._eventListend(this.Event.BeforeSheetEditStart)&&!this._eventListend(this.Event.BeforeSheetEditEnd))return;const target=this.getCommandSheetTarget(commandInfo);if(!target)return;const{workbook,worksheet}=target,editorBridgeService=injector.get(sheetsUi.IEditorBridgeService),univerInstanceService=injector.get(core.IUniverInstanceService),params=commandInfo.params,{visible,keycode,eventType}=params,loc=editorBridgeService.getEditLocation();if(visible){const eventParams={row:loc.row,column:loc.column,eventType,keycode,workbook,worksheet,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,eventParams),eventParams.cancel)throw new core.CanceledError}else{const eventParams={row:loc.row,column:loc.column,eventType,keycode,workbook,worksheet,isZenEditor:!1,value:core.RichTextValue.create(univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:keycode!==ui.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,eventParams),eventParams.cancel)throw new core.CanceledError}}if(commandInfo.id===sheetsUi.SetZoomRatioCommand.id){if(!this._eventListend(this.Event.BeforeSheetZoomChange))return;const target=this.getCommandSheetTarget(commandInfo);if(!target)return;const{workbook,worksheet}=target;this.fireEvent(this.Event.BeforeSheetZoomChange,{zoom:commandInfo.params.zoomRatio,workbook,worksheet})}})),this.disposeWithMe(commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===sheetsUi.SetCellEditVisibleOperation.id){if(!this._eventListend(this.Event.SheetEditStarted)&&!this._eventListend(this.Event.SheetEditEnded))return;const target=this.getCommandSheetTarget(commandInfo);if(!target)return;const{workbook,worksheet}=target,editorBridgeService=injector.get(sheetsUi.IEditorBridgeService),params=commandInfo.params,{visible,keycode,eventType}=params,loc=editorBridgeService.getEditLocation();if(visible){const eventParams={row:loc.row,column:loc.column,eventType,keycode,workbook,worksheet,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,eventParams)}else{const eventParams={row:loc.row,column:loc.column,eventType,keycode,workbook,worksheet,isZenEditor:!1,isConfirm:keycode!==ui.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,eventParams)}}if(commandInfo.id===docs.RichTextEditingMutation.id){if(!this._eventListend(this.Event.SheetEditChanging))return;const target=this.getCommandSheetTarget(commandInfo);if(!target)return;const{workbook,worksheet}=target,editorBridgeService=injector.get(sheetsUi.IEditorBridgeService),univerInstanceService=injector.get(core.IUniverInstanceService),params=commandInfo.params;if(!editorBridgeService.isVisible().visible)return;const{unitId}=params;if(unitId===core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const{row,column}=editorBridgeService.getEditLocation(),eventParams={workbook,worksheet,row,column,value:core.RichTextValue.create(univerInstanceService.getUnit(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,eventParams)}}if(commandInfo.id===sheetsUi.SetZoomRatioCommand.id){if(!this._eventListend(this.Event.SheetZoomChanged))return;const target=this.getCommandSheetTarget(commandInfo);if(!target)return;const{workbook,worksheet}=target;this.fireEvent(this.Event.SheetZoomChanged,{zoom:worksheet.getZoom(),workbook,worksheet})}})),this._initObserverListener(injector)}_initObserverListener(injector){const unitM=injector.get(core.IUniverInstanceService).getFocusedUnit(),unitId=unitM==null?void 0:unitM.getUnitId(),renderManagerService=injector.get(engineRender.IRenderManagerService);if(unitId){const lifeCycleService2=injector.get(core.LifecycleService),disposable=new core.DisposableCollection;this.disposeWithMe(lifeCycleService2.lifecycle$.subscribe(lifecycle=>{var _a,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o;if(lifecycle<core.LifecycleStages.Rendered)return;disposable.dispose();const hoverManagerService=injector.get(sheetsUi.HoverManagerService),dragManagerService=injector.get(sheetsUi.DragManagerService);hoverManagerService&&(disposable.add((_a=hoverManagerService.currentClickedCell$)==null?void 0:_a.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.CellClicked))return;const baseParams=this.getSheetTarget(cell.location.unitId,cell.location.subUnitId);baseParams&&this.fireEvent(this.Event.CellClicked,{...baseParams,...cell,row:cell.location.row,column:cell.location.col})})),disposable.add((_b=hoverManagerService.currentRichText$)==null?void 0:_b.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.CellHover))return;const baseParams=this.getSheetTarget(cell.unitId,cell.subUnitId);baseParams&&this.fireEvent(this.Event.CellHover,{...baseParams,...cell,row:cell.row,column:cell.col})})),disposable.add((_c=hoverManagerService.currentPointerDownCell$)==null?void 0:_c.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.CellPointerDown))return;const baseParams=this.getSheetTarget(cell.unitId,cell.subUnitId);baseParams&&this.fireEvent(this.Event.CellPointerDown,{...baseParams,...cell,row:cell.row,column:cell.col})})),disposable.add((_d=hoverManagerService.currentPointerUpCell$)==null?void 0:_d.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.CellPointerUp))return;const baseParams=this.getSheetTarget(cell.unitId,cell.subUnitId);baseParams&&this.fireEvent(this.Event.CellPointerUp,{...baseParams,...cell,row:cell.row,column:cell.col})})),disposable.add((_e=hoverManagerService.currentCellPosWithEvent$)==null?void 0:_e.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.CellPointerMove))return;const baseParams=this.getSheetTarget(cell.unitId,cell.subUnitId);baseParams&&this.fireEvent(this.Event.CellPointerMove,{...baseParams,...cell,row:cell.row,column:cell.col})})),disposable.add((_f=dragManagerService.currentCell$)==null?void 0:_f.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.DragOver))return;const baseParams=this.getSheetTarget(cell.location.unitId,cell.location.subUnitId);baseParams&&this.fireEvent(this.Event.DragOver,{...baseParams,...cell,row:cell.location.row,column:cell.location.col})})),disposable.add((_g=dragManagerService.endCell$)==null?void 0:_g.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{if(!this._eventListend(this.Event.Drop))return;const baseParams=this.getSheetTarget(cell.location.unitId,cell.location.subUnitId);baseParams&&this.fireEvent(this.Event.Drop,{...baseParams,...cell,row:cell.location.row,column:cell.location.col})})),disposable.add((_h=hoverManagerService.currentRowHeaderClick$)==null?void 0:_h.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.RowHeaderClick))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.RowHeaderClick,{...baseParams,row:header.index})})),disposable.add((_i=hoverManagerService.currentRowHeaderPointerDown$)==null?void 0:_i.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.RowHeaderPointerDown))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.RowHeaderPointerDown,{...baseParams,row:header.index})})),disposable.add((_j=hoverManagerService.currentRowHeaderPointerUp$)==null?void 0:_j.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.RowHeaderPointerUp))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.RowHeaderPointerUp,{...baseParams,row:header.index})})),disposable.add((_k=hoverManagerService.currentHoveredRowHeader$)==null?void 0:_k.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.RowHeaderHover))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.RowHeaderHover,{...baseParams,row:header.index})})),disposable.add((_l=hoverManagerService.currentColHeaderClick$)==null?void 0:_l.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.ColumnHeaderClick))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.ColumnHeaderClick,{...baseParams,column:header.index})})),disposable.add((_m=hoverManagerService.currentColHeaderPointerDown$)==null?void 0:_m.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.ColumnHeaderPointerDown))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.ColumnHeaderPointerDown,{...baseParams,column:header.index})})),disposable.add((_n=hoverManagerService.currentColHeaderPointerUp$)==null?void 0:_n.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.ColumnHeaderPointerUp))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.ColumnHeaderPointerUp,{...baseParams,column:header.index})})),disposable.add((_o=hoverManagerService.currentHoveredColHeader$)==null?void 0:_o.pipe(rxjs.filter(header=>!!header)).subscribe(header=>{if(!this._eventListend(this.Event.ColumnHeaderHover))return;const baseParams=this.getSheetTarget(header.unitId,header.subUnitId);baseParams&&this.fireEvent(this.Event.ColumnHeaderHover,{...baseParams,column:header.index})})))})),this.disposeWithMe(disposable)}const unitMap=new Map;let sheetRenderUnit;const lifeCycleService=injector.get(core.LifecycleService),combined$=rxjs.combineLatest([renderManagerService.created$,lifeCycleService.lifecycle$]);this.disposeWithMe(combined$.subscribe(([created,lifecycle])=>{var _a;if(created.type===core.UniverInstanceType.UNIVER_SHEET&&(sheetRenderUnit=created),lifecycle<=core.LifecycleStages.Rendered)return;const disposable=new core.DisposableCollection;if(!sheetRenderUnit)return;const workbook=this.getWorkbook(sheetRenderUnit.unitId);if(!workbook)return;unitMap.get(sheetRenderUnit.unitId)&&((_a=unitMap.get(sheetRenderUnit.unitId))==null||_a.dispose()),unitMap.set(sheetRenderUnit.unitId,disposable);const scrollManagerService=sheetRenderUnit.with(sheetsUi.SheetScrollManagerService);disposable.add(scrollManagerService.validViewportScrollInfo$.subscribe(params=>{params&&this._eventListend(this.Event.Scroll)&&this.fireEvent(this.Event.Scroll,{workbook,worksheet:workbook.getActiveSheet(),...params})}));const selectionService=sheetRenderUnit.with(sheets.SheetsSelectionsService);disposable.add(selectionService.selectionMoveStart$.subscribe(selections=>{var _a2;this._eventListend(this.Event.SelectionMoveStart)&&this.fireEvent(this.Event.SelectionMoveStart,{workbook,worksheet:workbook.getActiveSheet(),selections:(_a2=selections==null?void 0:selections.map(s=>s.range))!=null?_a2:[]})})),disposable.add(selectionService.selectionMoving$.subscribe(selections=>{var _a2;this._eventListend(this.Event.SelectionMoving)&&this.fireEvent(this.Event.SelectionMoving,{workbook,worksheet:workbook.getActiveSheet(),selections:(_a2=selections==null?void 0:selections.map(s=>s.range))!=null?_a2:[]})})),disposable.add(selectionService.selectionMoveEnd$.subscribe(selections=>{var _a2;this._eventListend(this.Event.SelectionMoveEnd)&&this.fireEvent(this.Event.SelectionMoveEnd,{workbook,worksheet:workbook.getActiveSheet(),selections:(_a2=selections==null?void 0:selections.map(s=>s.range))!=null?_a2:[]})})),disposable.add(selectionService.selectionChanged$.subscribe(selections=>{var _a2;this._eventListend(this.Event.SelectionChanged)&&this.fireEvent(this.Event.SelectionChanged,{workbook,worksheet:workbook.getActiveSheet(),selections:(_a2=selections==null?void 0:selections.map(s=>s.range))!=null?_a2:[]})})),sheetRenderUnit=null,this.disposeWithMe(disposable)})),this.disposeWithMe(renderManagerService.disposed$.subscribe(unitId2=>{var _a;(_a=unitMap.get(unitId2))==null||_a.dispose(),unitMap.delete(unitId2)})),this.disposeWithMe(()=>{unitMap.forEach(disposable=>{disposable.dispose()})})}_initialize(injector){this._initSheetUIEvent(injector);const commandService=injector.get(core.ICommandService);this.disposeWithMe(commandService.beforeCommandExecuted(commandInfo=>{switch(commandInfo.id){case ui.CopyCommand.id:case ui.CutCommand.id:this._beforeClipboardChange();break;case sheetsUi.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(commandInfo.params);break}})),this.disposeWithMe(commandService.onCommandExecuted(commandInfo=>{if(sheets.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(commandInfo.id)>-1){if(!this._eventListend(this.Event.SheetSkeletonChanged))return;const sheet=this.getActiveSheet();if(!sheet)return;const ranges=sheets.getSkeletonChangedEffectedRange(commandInfo).map(range=>{var _a,_b;return(_b=(_a=this.getWorkbook(range.unitId))==null?void 0:_a.getSheetBySheetId(range.subUnitId))==null?void 0:_b.getRange(range.range)}).filter(Boolean);if(!ranges.length)return;this.fireEvent(this.Event.SheetSkeletonChanged,{workbook:sheet.workbook,worksheet:sheet.worksheet,payload:commandInfo,skeleton:sheet.worksheet.getSkeleton(),effectedRanges:ranges});return}switch(commandInfo.id){case ui.CopyCommand.id:case ui.CutCommand.id:this._clipboardChanged();break;case sheetsUi.SheetPasteShortKeyCommand.id:this._clipboardPaste();break;case ui.PasteCommand.id:this._clipboardPasteAsync();break}})),this.disposeWithMe(commandService.beforeCommandExecuted(async commandInfo=>{switch(commandInfo.id){case ui.PasteCommand.id:await this._beforeClipboardPasteAsync();break}}))}_generateClipboardCopyParam(){const workbook=this.getActiveWorkbook(),worksheet=workbook==null?void 0:workbook.getActiveSheet(),range=workbook==null?void 0:workbook.getActiveRange();if(!workbook||!worksheet||!range)return;const content=this._injector.get(sheetsUi.ISheetClipboardService).generateCopyContent(workbook.getId(),worksheet.getSheetId(),range.getRange());if(!content)return;const{html,plain}=content;return{workbook,worksheet,text:plain,html,fromSheet:worksheet,fromRange:range}}_beforeClipboardChange(){if(!this.hasEventCallback(this.Event.BeforeClipboardChange))return;const eventParams=this._generateClipboardCopyParam();if(eventParams&&(this.fireEvent(this.Event.BeforeClipboardChange,eventParams),eventParams.cancel))throw new Error("Before clipboard change is canceled")}_clipboardChanged(){if(!this.hasEventCallback(this.Event.ClipboardChanged))return;const eventParams=this._generateClipboardCopyParam();if(eventParams&&(this.fireEvent(this.Event.ClipboardChanged,eventParams),eventParams.cancel))throw new Error("Clipboard changed is canceled")}_generateClipboardPasteParam(params){if(!params)return;const{htmlContent,textContent}=params,workbook=this.getActiveWorkbook(),worksheet=workbook==null?void 0:workbook.getActiveSheet();return!workbook||!worksheet?void 0:{workbook,worksheet,text:textContent,html:htmlContent}}async _generateClipboardPasteParamAsync(){const workbook=this.getActiveWorkbook(),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return;const item=(await this._injector.get(ui.IClipboardInterfaceService).read())[0];let eventParams;if(item){const types=item.types,text=types.indexOf(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"",html=types.indexOf(ui.HTML_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.HTML_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"";eventParams={workbook,worksheet,text,html}}return eventParams}_beforeClipboardPaste(params){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;const eventParams=this._generateClipboardPasteParam(params);if(eventParams&&(this.fireEvent(this.Event.BeforeClipboardPaste,eventParams),eventParams.cancel))throw new Error("Before clipboard paste is canceled")}_clipboardPaste(params){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;const eventParams=this._generateClipboardPasteParam(params);if(eventParams&&(this.fireEvent(this.Event.BeforeClipboardPaste,eventParams),eventParams.cancel))throw new Error("Clipboard pasted is canceled")}async _beforeClipboardPasteAsync(){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;if(!ui.supportClipboardAPI()){this._injector.get(core.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const eventParams=await this._generateClipboardPasteParamAsync();if(eventParams&&(this.fireEvent(this.Event.BeforeClipboardPaste,eventParams),eventParams.cancel))throw new Error("Before clipboard paste is canceled")}async _clipboardPasteAsync(){if(!this.hasEventCallback(this.Event.ClipboardPasted))return;if(!ui.supportClipboardAPI()){this._injector.get(core.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const eventParams=await this._generateClipboardPasteParamAsync();if(eventParams&&(this.fireEvent(this.Event.ClipboardPasted,eventParams),eventParams.cancel))throw new Error("Clipboard pasted is canceled")}customizeColumnHeader(cfg){var _a,_b;const wb=this.getActiveWorkbook();if(!wb){console.error("WorkBook not exist");return}const unitId=wb==null?void 0:wb.getId(),renderManagerService=this._injector.get(engineRender.IRenderManagerService),activeSheet=wb.getActiveSheet(),subUnitId=activeSheet.getSheetId(),render=renderManagerService.getRenderById(unitId);render&&((_a=cfg.headerStyle)!=null&&_a.size)&&(render.with(sheetsUi.SheetSkeletonManagerService).setColumnHeaderSize(render,subUnitId,(_b=cfg.headerStyle)==null?void 0:_b.size),activeSheet==null||activeSheet.refreshCanvas()),this._getSheetRenderComponent(unitId,sheetsUi.SHEET_VIEW_KEY.COLUMN).setCustomHeader(cfg),activeSheet==null||activeSheet.refreshCanvas()}customizeRowHeader(cfg){const wb=this.getActiveWorkbook();if(!wb){console.error("WorkBook not exist");return}const unitId=wb==null?void 0:wb.getId();this._getSheetRenderComponent(unitId,sheetsUi.SHEET_VIEW_KEY.ROW).setCustomHeader(cfg)}registerSheetRowHeaderExtension(unitId,...extensions){const sheetComponent=this._getSheetRenderComponent(unitId,sheetsUi.SHEET_VIEW_KEY.ROW),registerDisposable=sheetComponent.register(...extensions);return core.toDisposable(()=>{registerDisposable.dispose(),sheetComponent.makeDirty(!0)})}registerSheetColumnHeaderExtension(unitId,...extensions){const sheetComponent=this._getSheetRenderComponent(unitId,sheetsUi.SHEET_VIEW_KEY.COLUMN),registerDisposable=sheetComponent.register(...extensions);return core.toDisposable(()=>{registerDisposable.dispose(),sheetComponent.makeDirty(!0)})}registerSheetMainExtension(unitId,...extensions){const sheetComponent=this._getSheetRenderComponent(unitId,sheetsUi.SHEET_VIEW_KEY.MAIN),registerDisposable=sheetComponent.register(...extensions);return core.toDisposable(()=>{registerDisposable.dispose(),sheetComponent.makeDirty(!0)})}_getSheetRenderComponent(unitId,viewKey){const render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);if(!render)throw new Error(`Render Unit with unitId ${unitId} not found`);const{components}=render,renderComponent=components.get(viewKey);if(!renderComponent)throw new Error("Render component not found");return renderComponent}getSheetHooks(){return this._injector.createInstance(facade.FSheetHooks)}};__name(_FUniverSheetsUIMixin,"FUniverSheetsUIMixin");let FUniverSheetsUIMixin=_FUniverSheetsUIMixin;core.FUniver.extend(FUniverSheetsUIMixin);const _FWorkbookSheetsUIMixin=class _FWorkbookSheetsUIMixin extends facade.FWorkbook{openSiderbar(params){return this._logDeprecation("openSiderbar"),this._injector.get(ui.ISidebarService).open(params)}openDialog(dialog){this._logDeprecation("openDialog");const disposable=this._injector.get(ui.IDialogService).open({...dialog,onClose:__name(()=>{disposable.dispose()},"onClose")});return disposable}_logDeprecation(name){this._injector.get(core.ILogService).warn("[FWorkbook]",`${name} is deprecated. Please use the function of the same name on "FUniver".`)}generateCellParams(cell){const worksheet=this.getActiveSheet();return{row:cell.row,column:cell.col,workbook:this,worksheet}}onCellClick(callback){const hoverManagerService=this._injector.get(sheetsUi.HoverManagerService);return core.toDisposable(hoverManagerService.currentClickedCell$.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{callback(cell)}))}onCellHover(callback){const hoverManagerService=this._injector.get(sheetsUi.HoverManagerService);return core.toDisposable(hoverManagerService.currentRichText$.pipe(rxjs.filter(cell=>!!cell)).subscribe(callback))}onCellPointerDown(callback){const hoverManagerService=this._injector.get(sheetsUi.HoverManagerService);return core.toDisposable(hoverManagerService.currentPointerDownCell$.subscribe(callback))}onCellPointerUp(callback){const hoverManagerService=this._injector.get(sheetsUi.HoverManagerService);return core.toDisposable(hoverManagerService.currentPointerUpCell$.subscribe(callback))}onCellPointerMove(callback){const hoverManagerService=this._injector.get(sheetsUi.HoverManagerService);return core.toDisposable(hoverManagerService.currentCellPosWithEvent$.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{callback(cell,cell.event)}))}onDragOver(callback){const dragManagerService=this._injector.get(sheetsUi.DragManagerService);return core.toDisposable(dragManagerService.currentCell$.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{callback(cell)}))}onDrop(callback){const dragManagerService=this._injector.get(sheetsUi.DragManagerService);return core.toDisposable(dragManagerService.endCell$.pipe(rxjs.filter(cell=>!!cell)).subscribe(cell=>{callback(cell)}))}startEditing(){return this._injector.get(core.ICommandService).syncExecuteCommand(sheetsUi.SetCellEditVisibleOperation.id,{eventType:engineRender.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(save){return this._injector.get(core.ICommandService).syncExecuteCommand(sheetsUi.SetCellEditVisibleOperation.id,{eventType:engineRender.DeviceInputEventType.Keyboard,keycode:save?ui.KeyCode.ENTER:ui.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await core.awaitTime(0),!0}endEditingAsync(save=!0){return this.endEditing(save)}getScrollStateBySheetId(sheetId){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render?render.with(sheetsUi.SheetScrollManagerService).getScrollStateByParam({unitId,sheetId}):null}disableSelection(){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&render.with(sheetsUi.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&render.with(sheetsUi.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&render.with(sheetsUi.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&render.with(sheetsUi.ISheetSelectionRenderService).showSelection(),this}};__name(_FWorkbookSheetsUIMixin,"FWorkbookSheetsUIMixin");let FWorkbookSheetsUIMixin=_FWorkbookSheetsUIMixin;facade.FWorkbook.extend(FWorkbookSheetsUIMixin);const _FWorksheetSkeletonMixin=class _FWorksheetSkeletonMixin extends facade.FWorksheet{refreshCanvas(){const renderManagerService=this._injector.get(engineRender.IRenderManagerService),unitId=this._fWorkbook.id,render=renderManagerService.getRenderById(unitId);if(!render)throw new Error(`Render Unit with unitId ${unitId} not found`);render.with(sheetsUi.SheetSkeletonManagerService).reCalculate();const mainComponent=render.mainComponent;if(!mainComponent)throw new Error("Main component not found");return mainComponent.makeDirty(),this}zoom(zoomRatio){return this._injector.get(core.ICommandService).syncExecuteCommand(sheetsUi.ChangeZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);let range={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!render)return range;const sk=render.with(sheetsUi.SheetSkeletonManagerService).getCurrentSkeleton();if(!sk)return range;const visibleRangeMap=sk==null?void 0:sk.getVisibleRanges();if(!visibleRangeMap)return range;range=sk.getVisibleRangeByViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[k,r]of visibleRangeMap)engineRender.sheetContentViewportKeys.indexOf(k)!==-1&&(range.startColumn=Math.min(range.startColumn,r.startColumn),range.startRow=Math.min(range.startRow,r.startRow),range.endColumn=Math.max(range.endColumn,r.endColumn),range.endRow=Math.max(range.endRow,r.endRow));return range}scrollToCell(row,column){const unitId=this._workbook.getUnitId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&(render==null?void 0:render.with(sheetsUi.SheetsScrollRenderController)).scrollToCell(row,column),this}getScrollState(){const emptyScrollState={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},unitId=this._workbook.getUnitId(),sheetId=this._worksheet.getSheetId(),render=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId);return render&&render.with(sheetsUi.SheetScrollManagerService).getScrollStateByParam({unitId,sheetId})||emptyScrollState}onScroll(callback){var _a;const unitId=this._workbook.getUnitId(),scrollManagerService=(_a=this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId))==null?void 0:_a.with(sheetsUi.SheetScrollManagerService);if(scrollManagerService){const sub=scrollManagerService.validViewportScrollInfo$.subscribe(params=>{callback(params)});return core.toDisposable(sub)}return core.toDisposable(()=>{})}getSkeleton(){var _a,_b;const service=(_a=this._injector.get(engineRender.IRenderManagerService).getRenderById(this._workbook.getUnitId()))==null?void 0:_a.with(sheetsUi.SheetSkeletonManagerService);return(_b=service==null?void 0:service.getWorksheetSkeleton(this._worksheet.getSheetId()))==null?void 0:_b.skeleton}setColumnAutoWidth(columnPosition,numColumn){const unitId=this._workbook.getUnitId(),subUnitId=this._worksheet.getSheetId(),ranges=[{startColumn:columnPosition,endColumn:columnPosition+numColumn-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(sheetsUi.SetWorksheetColAutoWidthCommand.id,{unitId,subUnitId,ranges}),this}};__name(_FWorksheetSkeletonMixin,"FWorksheetSkeletonMixin");let FWorksheetSkeletonMixin=_FWorksheetSkeletonMixin;facade.FWorksheet.extend(FWorksheetSkeletonMixin);const _FPermissionSheetsUIMixin=class _FPermissionSheetsUIMixin extends facade.FPermission{setPermissionDialogVisible(visible){this._permissionService.setShowComponents(visible)}};__name(_FPermissionSheetsUIMixin,"FPermissionSheetsUIMixin");let FPermissionSheetsUIMixin=_FPermissionSheetsUIMixin;facade.FPermission.extend(FPermissionSheetsUIMixin);const _FSheetHooksUIMixin=class _FSheetHooksUIMixin extends facade.FSheetHooks{onCellPointerMove(callback){return core.toDisposable(this._injector.get(sheetsUi.HoverManagerService).currentPosition$.subscribe(callback))}onCellPointerOver(callback){return core.toDisposable(this._injector.get(sheetsUi.HoverManagerService).currentCell$.subscribe(callback))}onCellDragOver(callback){return core.toDisposable(this._injector.get(sheetsUi.DragManagerService).currentCell$.subscribe(callback))}onCellDrop(callback){return core.toDisposable(this._injector.get(sheetsUi.DragManagerService).endCell$.subscribe(callback))}onCellRender(customRender,effect=core.InterceptorEffectEnum.Style,priority=sheets.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(sheets.SheetInterceptorService).intercept(sheets.INTERCEPTOR_POINT.CELL_CONTENT,{effect,handler:__name((cell,pos,next)=>next({...cell,customRender:[...(cell==null?void 0:cell.customRender)||[],...customRender||[]]}),"handler"),priority})}onBeforeCellEdit(callback){return this._injector.get(core.ICommandService).beforeCommandExecuted(command=>{const params=command.params;command.id===sheetsUi.SetCellEditVisibleOperation.id&&params.visible&&callback(params)})}onAfterCellEdit(callback){return this._injector.get(core.ICommandService).onCommandExecuted(command=>{const params=command.params;command.id===sheetsUi.SetCellEditVisibleOperation.id&&!params.visible&&callback(params)})}};__name(_FSheetHooksUIMixin,"FSheetHooksUIMixin");let FSheetHooksUIMixin=_FSheetHooksUIMixin;facade.FSheetHooks.extend(FSheetHooksUIMixin);const CellFEventName={CellClicked:"CellClicked",CellPointerDown:"CellPointerDown",CellPointerUp:"CellPointerUp",CellPointerMove:"CellPointerMove",CellHover:"CellHover",DragOver:"DragOver",Drop:"Drop",Scroll:"Scroll",SelectionMoveStart:"SelectionMoveStart",SelectionMoving:"SelectionMoving",SelectionMoveEnd:"SelectionMoveEnd",SelectionChanged:"SelectionChanged"},_FSheetsUIEventName=class _FSheetsUIEventName extends core.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 CellFEventName.CellClicked}get CellHover(){return CellFEventName.CellHover}get CellPointerDown(){return CellFEventName.CellPointerDown}get CellPointerUp(){return CellFEventName.CellPointerUp}get CellPointerMove(){return CellFEventName.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"}};__name(_FSheetsUIEventName,"FSheetsUIEventName");let FSheetsUIEventName=_FSheetsUIEventName;core.FEventName.extend(FSheetsUIEventName);const _FRangeSheetsUIMixin=class _FRangeSheetsUIMixin extends facade.FRange{getCell(){var _a;const renderManagerService=this._injector.get(engineRender.IRenderManagerService),logService=this._injector.get(core.ILogService),unitId=this._workbook.getUnitId(),subUnitId=this._worksheet.getSheetId(),render=renderManagerService.getRenderById(unitId),skeleton=(_a=render==null?void 0:render.with(sheetsUi.SheetSkeletonManagerService).getWorksheetSkeleton(subUnitId))==null?void 0:_a.skeleton;if(!skeleton)throw logService.error("[Facade]: `FRange.getCell` can only be called in current worksheet"),new Error("`FRange.getCell` can only be called in current worksheet");return skeleton.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:x,startY:y,endX:x2,endY:y2}=this.getCell(),data={x,y,width:x2-x,height:y2-y,top:y,left:x,bottom:y2,right:x2};return{...data,toJSON:__name(()=>JSON.stringify(data),"toJSON")}}generateHTML(){var _a;const copyContent=this._injector.get(sheetsUi.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(_a=copyContent==null?void 0:copyContent.html)!=null?_a:""}attachPopup(popup){var _a,_b,_c;popup.direction=(_a=popup.direction)!=null?_a:"horizontal",popup.extraProps=(_b=popup.extraProps)!=null?_b:{},popup.offset=(_c=popup.offset)!=null?_c:[0,0];const{key,disposableCollection}=transformComponentKey(popup,this._injector.get(ui.ComponentManager)),disposePopup=this._injector.get(sheetsUi.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...popup,componentKey:key},this.getUnitId(),this._worksheet.getSheetId());return disposePopup?(disposableCollection.add(disposePopup),disposableCollection):(disposableCollection.dispose(),null)}attachAlertPopup(alert){const cellAlertService=this._injector.get(sheetsUi.CellAlertManagerService),location={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return cellAlertService.showAlert({...alert,location}),{dispose:__name(()=>{cellAlertService.removeAlert(alert.key)},"dispose")}}attachRangePopup(popup){var _a,_b,_c;popup.direction=(_a=popup.direction)!=null?_a:"top-center",popup.extraProps=(_b=popup.extraProps)!=null?_b:{},popup.offset=(_c=popup.offset)!=null?_c:[0,0];const{key,disposableCollection}=transformComponentKey(popup,this._injector.get(ui.ComponentManager)),disposePopup=this._injector.get(sheetsUi.SheetCanvasPopManagerService).attachRangePopup(this._range,{...popup,componentKey:key},this.getUnitId(),this._worksheet.getSheetId());return disposePopup?(disposableCollection.add(disposePopup),disposableCollection):(disposableCollection.dispose(),null)}highlight(style,primary){const markSelectionService=this._injector.get(sheetsUi.IMarkSelectionService),id=markSelectionService.addShape({range:this._range,style,primary});if(!id)throw new Error("Failed to highlight current range");return core.toDisposable(()=>{markSelectionService.removeShape(id)})}};__name(_FRangeSheetsUIMixin,"FRangeSheetsUIMixin");let FRangeSheetsUIMixin=_FRangeSheetsUIMixin;facade.FRange.extend(FRangeSheetsUIMixin);function transformComponentKey(component,componentManager){const{componentKey,isVue3}=component;let key;const disposableCollection=new core.DisposableCollection;return typeof componentKey=="string"?key=componentKey:(key=`External_${core.generateRandomId(6)}`,disposableCollection.add(componentManager.register(key,componentKey,{framework:isVue3?"vue3":"react"}))),{key,disposableCollection}}__name(transformComponentKey,"transformComponentKey"),exports2.transformComponentKey=transformComponentKey,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});