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

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 (54) hide show
  1. package/lib/cjs/facade.js +1 -1
  2. package/lib/cjs/index.js +6 -6
  3. package/lib/es/facade.js +5 -2
  4. package/lib/es/index.js +87 -61
  5. package/lib/types/controllers/render-controllers/freeze.render-controller.d.ts +6 -2
  6. package/lib/types/facade/f-event.d.ts +38 -32
  7. package/lib/types/facade/f-permission.d.ts +3 -0
  8. package/lib/types/facade/f-range.d.ts +27 -5
  9. package/lib/types/facade/f-sheet-hooks.d.ts +3 -0
  10. package/lib/types/facade/f-univer.d.ts +6 -0
  11. package/lib/types/facade/f-workbook.d.ts +3 -0
  12. package/lib/types/facade/f-worksheet.d.ts +3 -0
  13. package/lib/types/services/clipboard/utils.d.ts +1 -1
  14. package/lib/types/services/sheet-skeleton-manager.service.d.ts +1 -1
  15. package/lib/umd/facade.js +1 -1
  16. package/lib/umd/index.js +6 -6
  17. package/package.json +14 -14
  18. package/lib/types/commands/commands/__tests__/add-worksheet-merge.command.spec.d.ts +0 -16
  19. package/lib/types/commands/commands/__tests__/auto-fill.controller.spec.d.ts +0 -16
  20. package/lib/types/commands/commands/__tests__/create-command-test-bed.d.ts +0 -7
  21. package/lib/types/commands/commands/__tests__/create-selection-command-test-bed.d.ts +0 -28
  22. package/lib/types/commands/commands/__tests__/create-sheet-skeleton-test-bed.d.ts +0 -22
  23. package/lib/types/commands/commands/__tests__/hide-row-col-confirm.command.spec.d.ts +0 -16
  24. package/lib/types/commands/commands/__tests__/remove-row-col-confirm.command.spec.d.ts +0 -16
  25. package/lib/types/commands/commands/__tests__/selection-utils.spec.d.ts +0 -16
  26. package/lib/types/commands/commands/__tests__/set-format-painter.command.spec.d.ts +0 -16
  27. package/lib/types/commands/commands/__tests__/set-frozen.command.spec.d.ts +0 -16
  28. package/lib/types/commands/commands/__tests__/set-selections.command.spec.d.ts +0 -16
  29. package/lib/types/commands/commands/__tests__/sheet-skeleton.spec.d.ts +0 -16
  30. package/lib/types/controllers/editor/__tests__/create-test-bed.d.ts +0 -7
  31. package/lib/types/controllers/editor/__tests__/end-edit.controller.spec.d.ts +0 -16
  32. package/lib/types/controllers/editor/__tests__/mock-function.service.d.ts +0 -5
  33. package/lib/types/controllers/menu/__tests__/create-menu-test-bed.d.ts +0 -13
  34. package/lib/types/controllers/menu/__tests__/menu.spec.d.ts +0 -16
  35. package/lib/types/controllers/menu/__tests__/row-col.menu.spec.d.ts +0 -16
  36. package/lib/types/controllers/utils/__tests__/cell-tools.spec.d.ts +0 -16
  37. package/lib/types/facade/__tests__/create-test-bed.d.ts +0 -10
  38. package/lib/types/facade/__tests__/f-sheet-hooks.spec.d.ts +0 -16
  39. package/lib/types/services/auto-fill/__tests__/tool.spec.d.ts +0 -16
  40. package/lib/types/services/clipboard/__tests__/clipboard-copy-filter.spec.d.ts +0 -16
  41. package/lib/types/services/clipboard/__tests__/clipboard-paste-alignment.spec.d.ts +0 -16
  42. package/lib/types/services/clipboard/__tests__/clipboard-paste-border.spec.d.ts +0 -16
  43. package/lib/types/services/clipboard/__tests__/clipboard-paste-col-width.spec.d.ts +0 -16
  44. package/lib/types/services/clipboard/__tests__/clipboard-paste-font.spec.d.ts +0 -16
  45. package/lib/types/services/clipboard/__tests__/clipboard-paste-form-excel.spec.d.ts +0 -16
  46. package/lib/types/services/clipboard/__tests__/clipboard-paste-from-google.spec.d.ts +0 -16
  47. package/lib/types/services/clipboard/__tests__/clipboard-paste-from-notepad.spec.d.ts +0 -16
  48. package/lib/types/services/clipboard/__tests__/clipboard-paste-rotate.spec.d.ts +0 -16
  49. package/lib/types/services/clipboard/__tests__/clipboard-service.spec.d.ts +0 -16
  50. package/lib/types/services/clipboard/__tests__/clipboard-test-bed.d.ts +0 -29
  51. package/lib/types/services/clipboard/__tests__/constant.d.ts +0 -28
  52. package/lib/types/services/clipboard/__tests__/mock-clipboard.d.ts +0 -39
  53. package/lib/types/services/clipboard/__tests__/sheet-paste.spec.d.ts +0 -16
  54. package/lib/types/services/clipboard/__tests__/utils.spec.d.ts +0 -16
package/lib/cjs/facade.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),docs=require("@univerjs/docs"),engineRender=require("@univerjs/engine-render"),sheets=require("@univerjs/sheets"),sheetsUi=require("@univerjs/sheets-ui"),facade=require("@univerjs/sheets/facade"),ui=require("@univerjs/ui"),rxjs=require("rxjs"),_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");exports.transformComponentKey=transformComponentKey;
1
+ "use strict";var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),docs=require("@univerjs/docs"),engineRender=require("@univerjs/engine-render"),sheets=require("@univerjs/sheets"),sheetsUi=require("@univerjs/sheets-ui"),facade=require("@univerjs/sheets/facade"),ui=require("@univerjs/ui"),rxjs=require("rxjs"),_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");exports.transformComponentKey=transformComponentKey;