@univerjs/sheets-ui 0.20.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/lib/cjs/facade.js +1346 -1
  2. package/lib/cjs/index.js +30936 -13
  3. package/lib/cjs/locale/ca-ES.js +464 -1
  4. package/lib/cjs/locale/en-US.js +479 -1
  5. package/lib/cjs/locale/es-ES.js +464 -1
  6. package/lib/cjs/locale/fa-IR.js +464 -1
  7. package/lib/cjs/locale/fr-FR.js +464 -1
  8. package/lib/cjs/locale/ja-JP.js +464 -1
  9. package/lib/cjs/locale/ko-KR.js +464 -1
  10. package/lib/cjs/locale/ru-RU.js +464 -1
  11. package/lib/cjs/locale/sk-SK.js +464 -1
  12. package/lib/cjs/locale/vi-VN.js +464 -1
  13. package/lib/cjs/locale/zh-CN.js +464 -1
  14. package/lib/cjs/locale/zh-TW.js +464 -1
  15. package/lib/es/facade.js +1344 -1
  16. package/lib/es/index.js +30540 -13
  17. package/lib/es/locale/ca-ES.js +463 -1
  18. package/lib/es/locale/en-US.js +478 -1
  19. package/lib/es/locale/es-ES.js +463 -1
  20. package/lib/es/locale/fa-IR.js +463 -1
  21. package/lib/es/locale/fr-FR.js +463 -1
  22. package/lib/es/locale/ja-JP.js +463 -1
  23. package/lib/es/locale/ko-KR.js +463 -1
  24. package/lib/es/locale/ru-RU.js +463 -1
  25. package/lib/es/locale/sk-SK.js +463 -1
  26. package/lib/es/locale/vi-VN.js +463 -1
  27. package/lib/es/locale/zh-CN.js +463 -1
  28. package/lib/es/locale/zh-TW.js +463 -1
  29. package/lib/facade.js +1344 -1
  30. package/lib/index.js +30540 -13
  31. package/lib/locale/ca-ES.js +463 -1
  32. package/lib/locale/en-US.js +478 -1
  33. package/lib/locale/es-ES.js +463 -1
  34. package/lib/locale/fa-IR.js +463 -1
  35. package/lib/locale/fr-FR.js +463 -1
  36. package/lib/locale/ja-JP.js +463 -1
  37. package/lib/locale/ko-KR.js +463 -1
  38. package/lib/locale/ru-RU.js +463 -1
  39. package/lib/locale/sk-SK.js +463 -1
  40. package/lib/locale/vi-VN.js +463 -1
  41. package/lib/locale/zh-CN.js +463 -1
  42. package/lib/locale/zh-TW.js +463 -1
  43. package/lib/types/facade/{f-permission.d.ts → f-workbook-permission.d.ts} +5 -5
  44. package/lib/types/facade/index.d.ts +2 -2
  45. package/lib/types/locale/en-US.d.ts +2 -0
  46. package/lib/umd/facade.js +1 -1
  47. package/lib/umd/index.js +11 -11
  48. package/lib/umd/locale/ca-ES.js +1 -1
  49. package/lib/umd/locale/en-US.js +1 -1
  50. package/lib/umd/locale/es-ES.js +1 -1
  51. package/lib/umd/locale/fa-IR.js +1 -1
  52. package/lib/umd/locale/fr-FR.js +1 -1
  53. package/lib/umd/locale/ja-JP.js +1 -1
  54. package/lib/umd/locale/ko-KR.js +1 -1
  55. package/lib/umd/locale/ru-RU.js +1 -1
  56. package/lib/umd/locale/sk-SK.js +1 -1
  57. package/lib/umd/locale/vi-VN.js +1 -1
  58. package/lib/umd/locale/zh-CN.js +1 -1
  59. package/lib/umd/locale/zh-TW.js +1 -1
  60. package/package.json +15 -15
package/lib/cjs/facade.js CHANGED
@@ -1 +1,1346 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/core/facade`),n=require(`@univerjs/docs`),r=require(`@univerjs/engine-render`),i=require(`@univerjs/sheets`),a=require(`@univerjs/sheets-ui`),o=require(`@univerjs/sheets/facade`),s=require(`@univerjs/ui`),c=require(`rxjs`);var l=class extends t.FUniver{_initSheetUIEvent(t){let r=t.get(e.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetEditStart,()=>r.beforeCommandExecuted(n=>{if(n.id!==a.SetCellEditVisibleOperation.id)return;let r=this.getActiveSheet();if(!r)return;let{workbook:i,worksheet:o}=r,s=t.get(a.IEditorBridgeService),{visible:c,keycode:l,eventType:u}=n.params,d=s.getEditLocation();if(!c)return;let f={row:d.row,column:d.column,eventType:u,keycode:l,workbook:i,worksheet:o,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,f),f.cancel)throw new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetEditEnd,()=>r.beforeCommandExecuted(n=>{if(n.id!==a.SetCellEditVisibleOperation.id)return;let r=this.getActiveSheet();if(!r)return;let{workbook:i,worksheet:o}=r,c=t.get(a.IEditorBridgeService),l=t.get(e.IUniverInstanceService),{visible:u,keycode:d,eventType:f}=n.params,p=c.getEditLocation();if(u)return;let m={row:p.row,column:p.column,eventType:f,keycode:d,workbook:i,worksheet:o,isZenEditor:!1,value:e.RichTextValue.create(l.getUnit(e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:d!==s.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,m),m.cancel)throw new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditStarted,()=>r.onCommandExecuted(e=>{if(e.id!==a.SetCellEditVisibleOperation.id)return;let n=this.getCommandSheetTarget(e);if(!n)return;let{workbook:r,worksheet:i}=n,o=t.get(a.IEditorBridgeService),{visible:s,keycode:c,eventType:l}=e.params,u=o.getEditLocation();if(!s)return;let d={row:u.row,column:u.column,eventType:l,keycode:c,workbook:r,worksheet:i,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,d)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditEnded,()=>r.onCommandExecuted(e=>{if(e.id!==a.SetCellEditVisibleOperation.id)return;let n=this.getCommandSheetTarget(e);if(!n)return;let{workbook:r,worksheet:i}=n,o=t.get(a.IEditorBridgeService),{visible:c,keycode:l,eventType:u}=e.params,d=o.getEditLocation();if(c)return;let f={row:d.row,column:d.column,eventType:u,keycode:l,workbook:r,worksheet:i,isZenEditor:!1,isConfirm:l!==s.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,f)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditChanging,()=>r.onCommandExecuted(r=>{if(r.id!==n.RichTextEditingMutation.id)return;let i=this.getActiveSheet();if(!i)return;let{workbook:o,worksheet:s}=i,c=t.get(a.IEditorBridgeService),l=t.get(e.IUniverInstanceService),u=r.params;if(!c.isVisible().visible)return;let{unitId:d}=u;if(d===e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){let{row:t,column:n}=c.getEditLocation(),r={workbook:o,worksheet:s,row:t,column:n,value:e.RichTextValue.create(l.getUnit(e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,r)}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetZoomChange,()=>r.beforeCommandExecuted(t=>{if(t.id!==a.SetZoomRatioCommand.id)return;let n=this.getCommandSheetTarget(t);if(!n)return;let{workbook:r,worksheet:i}=n,o={zoom:t.params.zoomRatio,workbook:r,worksheet:i};if(this.fireEvent(this.Event.BeforeSheetZoomChange,o),o.cancel)throw new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetZoomChanged,()=>r.onCommandExecuted(e=>{if(e.id!==a.SetZoomRatioCommand.id)return;let t=this.getCommandSheetTarget(e);if(!t)return;let{workbook:n,worksheet:r}=t,i={zoom:r.getZoom(),workbook:n,worksheet:r};this.fireEvent(this.Event.SheetZoomChanged,i)})))}_initObserverListener(t){let n=t.get(r.IRenderManagerService),o=t.get(e.LifecycleService),s=new e.DisposableCollection;this.disposeWithMe(o.lifecycle$.subscribe(n=>{if(n!==e.LifecycleStages.Rendered)return;let r=t.get(a.HoverManagerService),i=t.get(a.DragManagerService);r&&(s.dispose(),s.add(this.registerEventHandler(this.Event.CellClicked,()=>{var e;return(e=r.currentClickedCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.location.unitId,e.location.subUnitId);if(!t)return;let n={...t,...e,row:e.location.row,column:e.location.col};this.fireEvent(this.Event.CellClicked,n)})})),s.add(this.registerEventHandler(this.Event.CellHover,()=>{var e;return(e=r.currentRichText$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,...e,row:e.row,column:e.col};this.fireEvent(this.Event.CellHover,n)})})),s.add(this.registerEventHandler(this.Event.CellPointerDown,()=>{var e;return(e=r.currentPointerDownCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,...e,row:e.row,column:e.col};this.fireEvent(this.Event.CellPointerDown,n)})})),s.add(this.registerEventHandler(this.Event.CellPointerUp,()=>{var e;return(e=r.currentPointerUpCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,...e,row:e.row,column:e.col};this.fireEvent(this.Event.CellPointerUp,n)})})),s.add(this.registerEventHandler(this.Event.CellPointerMove,()=>{var e;return(e=r.currentCellPosWithEvent$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,...e,row:e.row,column:e.col};this.fireEvent(this.Event.CellPointerMove,n)})})),s.add(this.registerEventHandler(this.Event.DragOver,()=>{var e;return(e=i.currentCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.location.unitId,e.location.subUnitId);if(!t)return;let n={...t,...e,row:e.location.row,column:e.location.col};this.fireEvent(this.Event.DragOver,n)})})),s.add(this.registerEventHandler(this.Event.Drop,()=>{var e;return(e=i.endCell$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.location.unitId,e.location.subUnitId);if(!t)return;let n={...t,...e,row:e.location.row,column:e.location.col};this.fireEvent(this.Event.Drop,n)})})),s.add(this.registerEventHandler(this.Event.RowHeaderClick,()=>{var e;return(e=r.currentRowHeaderClick$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,row:e.index};this.fireEvent(this.Event.RowHeaderClick,n)})})),s.add(this.registerEventHandler(this.Event.RowHeaderPointerDown,()=>{var e;return(e=r.currentRowHeaderPointerDown$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,row:e.index};this.fireEvent(this.Event.RowHeaderPointerDown,n)})})),s.add(this.registerEventHandler(this.Event.RowHeaderPointerUp,()=>{var e;return(e=r.currentRowHeaderPointerUp$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,row:e.index};this.fireEvent(this.Event.RowHeaderPointerUp,n)})})),s.add(this.registerEventHandler(this.Event.RowHeaderHover,()=>{var e;return(e=r.currentHoveredRowHeader$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,row:e.index};this.fireEvent(this.Event.RowHeaderHover,n)})})),s.add(this.registerEventHandler(this.Event.ColumnHeaderClick,()=>{var e;return(e=r.currentColHeaderClick$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,column:e.index};this.fireEvent(this.Event.ColumnHeaderClick,n)})})),s.add(this.registerEventHandler(this.Event.ColumnHeaderPointerDown,()=>{var e;return(e=r.currentColHeaderPointerDown$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,column:e.index};this.fireEvent(this.Event.ColumnHeaderPointerDown,n)})})),s.add(this.registerEventHandler(this.Event.ColumnHeaderPointerUp,()=>{var e;return(e=r.currentColHeaderPointerUp$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,column:e.index};this.fireEvent(this.Event.ColumnHeaderPointerUp,n)})})),s.add(this.registerEventHandler(this.Event.ColumnHeaderHover,()=>{var e;return(e=r.currentHoveredColHeader$)==null?void 0:e.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{let t=this.getSheetTarget(e.unitId,e.subUnitId);if(!t)return;let n={...t,column:e.index};this.fireEvent(this.Event.ColumnHeaderHover,n)})})),this.disposeWithMe(s))}));let l,u=(0,c.combineLatest)([n.created$,o.lifecycle$]),d=new e.DisposableCollection;this.disposeWithMe(u.subscribe(([t,n])=>{if(t.type===e.UniverInstanceType.UNIVER_SHEET&&(l=t),n<=e.LifecycleStages.Rendered||!l)return;let r=this.getWorkbook(l.unitId);if(!r)return;d.dispose();let o=l.with(a.SheetScrollManagerService),s=l.with(i.SheetsSelectionsService);d.add(this.registerEventHandler(this.Event.Scroll,()=>o.validViewportScrollInfo$.subscribe(e=>{if(!e)return;let t={workbook:r,worksheet:r.getActiveSheet(),...e};this.fireEvent(this.Event.Scroll,t)}))),d.add(this.registerEventHandler(this.Event.SelectionMoveStart,()=>s.selectionMoveStart$.subscribe(e=>{var t;let n={workbook:r,worksheet:r.getActiveSheet(),selections:(t=e==null?void 0:e.map(e=>e.range))==null?[]:t};this.fireEvent(this.Event.SelectionMoveStart,n)}))),d.add(this.registerEventHandler(this.Event.SelectionMoving,()=>s.selectionMoving$.subscribe(e=>{var t;let n={workbook:r,worksheet:r.getActiveSheet(),selections:(t=e==null?void 0:e.map(e=>e.range))==null?[]:t};this.fireEvent(this.Event.SelectionMoving,n)}))),d.add(this.registerEventHandler(this.Event.SelectionMoveEnd,()=>s.selectionMoveEnd$.subscribe(e=>{var t;let n={workbook:r,worksheet:r.getActiveSheet(),selections:(t=e==null?void 0:e.map(e=>e.range))==null?[]:t};this.fireEvent(this.Event.SelectionMoveEnd,n)}))),d.add(this.registerEventHandler(this.Event.SelectionChanged,()=>s.selectionChanged$.subscribe(e=>{var t;let n={workbook:r,worksheet:r.getActiveSheet(),selections:(t=e==null?void 0:e.map(e=>e.range))==null?[]:t};this.fireEvent(this.Event.SelectionChanged,n)}))),l=null,this.disposeWithMe(d)}))}_initialize(t){this._initSheetUIEvent(t),this._initObserverListener(t);let n=t.get(e.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeClipboardChange,()=>n.beforeCommandExecuted(e=>{switch(e.id){case s.CopyCommand.id:case s.CutCommand.id:this._beforeClipboardChange();break}}))),this.disposeWithMe(this.registerEventHandler(this.Event.ClipboardChanged,()=>n.onCommandExecuted(e=>{switch(e.id){case s.CopyCommand.id:case s.CutCommand.id:this._clipboardChanged();break}}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeClipboardPaste,()=>n.beforeCommandExecuted(e=>{switch(e.id){case a.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(e.params);break;case s.PasteCommand.id:this._beforeClipboardPasteAsync();break}}))),this.disposeWithMe(this.registerEventHandler(this.Event.ClipboardPasted,()=>n.onCommandExecuted(e=>{switch(e.id){case a.SheetPasteShortKeyCommand.id:this._clipboardPaste(e.params);break;case s.PasteCommand.id:this._clipboardPasteAsync();break}}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetSkeletonChanged,()=>n.onCommandExecuted(e=>{if(i.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(e.id)>-1){let t=this.getActiveSheet();if(!t)return;let n=(0,i.getSkeletonChangedEffectedRange)(e,t.worksheet.getMaxColumns()).map(e=>{var t;return(t=this.getWorkbook(e.unitId))==null||(t=t.getSheetBySheetId(e.subUnitId))==null?void 0:t.getRange(e.range)}).filter(Boolean);if(!n.length)return;let r={workbook:t.workbook,worksheet:t.worksheet,payload:e,skeleton:t.worksheet.getSkeleton(),effectedRanges:n};this.fireEvent(this.Event.SheetSkeletonChanged,r)}})))}_generateClipboardCopyParam(){let e=this.getActiveWorkbook(),t=e==null?void 0:e.getActiveSheet(),n=e==null?void 0:e.getActiveRange();if(!e||!t||!n)return;let r=this._injector.get(a.ISheetClipboardService).generateCopyContent(e.getId(),t.getSheetId(),n.getRange());if(!r)return;let{html:i,plain:o}=r;return{workbook:e,worksheet:t,text:o,html:i,fromSheet:t,fromRange:n}}_beforeClipboardChange(){let t=this._generateClipboardCopyParam();if(t&&(this.fireEvent(this.Event.BeforeClipboardChange,t),t.cancel))throw new e.CanceledError}_clipboardChanged(){let e=this._generateClipboardCopyParam();e&&this.fireEvent(this.Event.ClipboardChanged,e)}_generateClipboardPasteParam(e){if(!e)return;let{htmlContent:t,textContent:n}=e,r=this.getActiveWorkbook(),i=r==null?void 0:r.getActiveSheet();if(!(!r||!i))return{workbook:r,worksheet:i,text:n,html:t}}async _generateClipboardPasteParamAsync(){let e=this.getActiveWorkbook(),t=e==null?void 0:e.getActiveSheet();if(!e||!t)return;let n=(await this._injector.get(s.IClipboardInterfaceService).read())[0],r;if(n){let i=n.types;r={workbook:e,worksheet:t,text:i.indexOf(s.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)===-1?``:await n.getType(s.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(e=>e&&e.text()),html:i.indexOf(s.HTML_CLIPBOARD_MIME_TYPE)===-1?``:await n.getType(s.HTML_CLIPBOARD_MIME_TYPE).then(e=>e&&e.text())}}return r}_beforeClipboardPaste(t){let n=this._generateClipboardPasteParam(t);if(n&&(this.fireEvent(this.Event.BeforeClipboardPaste,n),n.cancel))throw new e.CanceledError}_clipboardPaste(t){let n=this._generateClipboardPasteParam(t);if(n&&(this.fireEvent(this.Event.ClipboardPasted,n),n.cancel))throw new e.CanceledError}async _beforeClipboardPasteAsync(){if(!(0,s.supportClipboardAPI)()){this._injector.get(e.ILogService).warn(`[Facade]: The navigator object only supports the browser environment`);return}let t=await this._generateClipboardPasteParamAsync();if(t&&(this.fireEvent(this.Event.BeforeClipboardPaste,t),t.cancel))throw new e.CanceledError}async _clipboardPasteAsync(){if(!(0,s.supportClipboardAPI)()){this._injector.get(e.ILogService).warn(`[Facade]: The navigator object only supports the browser environment`);return}let t=await this._generateClipboardPasteParamAsync();if(t&&(this.fireEvent(this.Event.ClipboardPasted,t),t.cancel))throw new e.CanceledError}customizeColumnHeader(e){var t;let n=this.getActiveWorkbook();if(!n){console.error(`WorkBook not exist`);return}let i=n==null?void 0:n.getId(),o=this._injector.get(r.IRenderManagerService),s=n.getActiveSheet(),c=s.getSheetId(),l=o.getRenderById(i);if(l&&(t=e.headerStyle)!=null&&t.size){var u;l.with(a.SheetSkeletonManagerService).setColumnHeaderSize(l,c,(u=e.headerStyle)==null?void 0:u.size),s==null||s.refreshCanvas()}this._getSheetRenderComponent(i,a.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e),s==null||s.refreshCanvas()}customizeRowHeader(e){let t=this.getActiveWorkbook();if(!t){console.error(`WorkBook not exist`);return}let n=t==null?void 0:t.getId();this._getSheetRenderComponent(n,a.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(t,...n){let r=this._getSheetRenderComponent(t,a.SHEET_VIEW_KEY.ROW),i=r.register(...n);return(0,e.toDisposable)(()=>{i.dispose(),r.makeDirty(!0)})}registerSheetColumnHeaderExtension(t,...n){let r=this._getSheetRenderComponent(t,a.SHEET_VIEW_KEY.COLUMN),i=r.register(...n);return(0,e.toDisposable)(()=>{i.dispose(),r.makeDirty(!0)})}registerSheetMainExtension(t,...n){let r=this._getSheetRenderComponent(t,a.SHEET_VIEW_KEY.MAIN),i=r.register(...n);return(0,e.toDisposable)(()=>{i.dispose(),r.makeDirty(!0)})}_getSheetRenderComponent(e,t){let n=this._injector.get(r.IRenderManagerService).getRenderById(e);if(!n)throw Error(`Render Unit with unitId ${e} not found`);let{components:i}=n,a=i.get(t);if(!a)throw Error(`Render component not found`);return a}getSheetHooks(){return this._injector.createInstance(o.FSheetHooks)}pasteIntoSheet(e,t,n){return this._commandService.executeCommand(a.SheetPasteShortKeyCommand.id,{htmlContent:e,textContent:t,files:n})}setProtectedRangeShadowStrategy(e){this._injector.get(a.SheetPermissionRenderManagerService).setProtectedRangeShadowStrategy(e)}getProtectedRangeShadowStrategy(){return this._injector.get(a.SheetPermissionRenderManagerService).getProtectedRangeShadowStrategy()}getProtectedRangeShadowStrategy$(){return this._injector.get(a.SheetPermissionRenderManagerService).getProtectedRangeShadowStrategy$()}setPermissionDialogVisible(t){this._injector.get(e.IPermissionService).setShowComponents(t)}};t.FUniver.extend(l);var u=class extends o.FWorkbook{openSiderbar(e){return this._logDeprecation(`openSiderbar`),this._injector.get(s.ISidebarService).open(e)}openDialog(e){this._logDeprecation(`openDialog`);let t=this._injector.get(s.IDialogService).open({...e,onClose:()=>{t.dispose()}});return t}customizeColumnHeader(e){let t=this._workbook.getUnitId();this._getSheetRenderComponent(t,a.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){let t=this._workbook.getUnitId();this._getSheetRenderComponent(t,a.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}_getSheetRenderComponent(e,t){let n=this._injector.get(r.IRenderManagerService).getRenderById(e);if(!n)throw Error(`Render Unit with unitId ${e} not found`);let{components:i}=n,a=i.get(t);if(!a)throw Error(`Render component not found`);return a}_logDeprecation(t){this._injector.get(e.ILogService).warn(`[FWorkbook]`,`${t} is deprecated. Please use the function of the same name on "FUniver".`)}onCellClick(t){return(0,e.toDisposable)(this._injector.get(a.HoverManagerService).currentClickedCell$.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{t(e)}))}onCellHover(t){return(0,e.toDisposable)(this._injector.get(a.HoverManagerService).currentRichText$.pipe((0,c.filter)(e=>!!e)).subscribe(t))}onCellPointerDown(t){return(0,e.toDisposable)(this._injector.get(a.HoverManagerService).currentPointerDownCell$.subscribe(t))}onCellPointerUp(t){return(0,e.toDisposable)(this._injector.get(a.HoverManagerService).currentPointerUpCell$.subscribe(t))}onCellPointerMove(t){return(0,e.toDisposable)(this._injector.get(a.HoverManagerService).currentCellPosWithEvent$.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{t(e,e.event)}))}onDragOver(t){return(0,e.toDisposable)(this._injector.get(a.DragManagerService).currentCell$.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{t(e)}))}onDrop(t){return(0,e.toDisposable)(this._injector.get(a.DragManagerService).endCell$.pipe((0,c.filter)(e=>!!e)).subscribe(e=>{t(e)}))}startEditing(){let t=this._injector.get(e.ICommandService);return this._injector.get(a.IEditorBridgeService).isVisible().visible?!0:t.syncExecuteCommand(a.SetCellEditVisibleOperation.id,{eventType:r.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(t){let n=this._injector.get(e.ICommandService);return this._injector.get(a.IEditorBridgeService).isVisible().visible&&n.syncExecuteCommand(a.SetCellEditVisibleOperation.id,{eventType:r.DeviceInputEventType.Keyboard,keycode:t?s.KeyCode.ENTER:s.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await(0,e.awaitTime)(0),!0}endEditingAsync(e=!0){return this.endEditing(e)}abortEditingAsync(){return this.endEditingAsync(!1)}isCellEditing(){return this._injector.get(a.IEditorBridgeService).isVisible().visible}getScrollStateBySheetId(e){let t=this._workbook.getUnitId(),n=this._injector.get(r.IRenderManagerService).getRenderById(t);return n?n.with(a.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:e}):null}disableSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(r.IRenderManagerService).getRenderById(e);return t&&t.with(a.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(r.IRenderManagerService).getRenderById(e);return t&&t.with(a.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(r.IRenderManagerService).getRenderById(e);return t&&t.with(a.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){let e=this._workbook.getUnitId(),t=this._injector.get(r.IRenderManagerService).getRenderById(e);return t&&t.with(a.ISheetSelectionRenderService).showSelection(),this}};o.FWorkbook.extend(u);var d=class extends o.FWorksheet{refreshCanvas(){let e=this._injector.get(r.IRenderManagerService),t=this._fWorkbook.id,n=e.getRenderById(t);if(!n)throw Error(`Render Unit with unitId ${t} not found`);return n.with(a.SheetSkeletonManagerService).reCalculate(),n.components.forEach(e=>{var t;(t=e.makeDirty)==null||t.call(e)}),this}highlightRanges(t,n,r){let i=this._injector.get(a.IMarkSelectionService),o=[];for(let e of t){let t=e.getRange(),a=i.addShapeWithNoFresh({range:t,style:n,primary:r});a&&o.push(a)}if(i.refreshShapes(),o.length===0)throw Error(`Failed to highlight current range`);return(0,e.toDisposable)(()=>{o.forEach(e=>{i.removeShape(e)})})}zoom(t){let n=this._injector.get(e.ICommandService),r=Math.min(Math.max(t,.1),4);return n.executeCommand(a.SetZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:r}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){let e=this._workbook.getUnitId(),t=this._injector.get(r.IRenderManagerService).getRenderById(e);if(!t)return null;let n=t.with(a.SheetSkeletonManagerService).getCurrentSkeleton();return n?n.getVisibleRangeByViewport(r.SHEET_VIEWPORT_KEY.VIEW_MAIN):null}getVisibleRangesOfAllViewports(){let e=this._workbook.getUnitId(),t=this._injector.get(r.IRenderManagerService).getRenderById(e);if(!t)return null;let n=t.with(a.SheetSkeletonManagerService).getCurrentSkeleton();return n?n.getVisibleRanges():null}scrollToCell(e,t,n){let i=this._workbook.getUnitId(),o=this._injector.get(r.IRenderManagerService).getRenderById(i);return o&&(o==null?void 0:o.with(a.SheetsScrollRenderController)).scrollToCell(e,t,n),this}getScrollState(){let e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},t=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this._injector.get(r.IRenderManagerService).getRenderById(t);return i&&i.with(a.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:n})||e}onScroll(t){var n;let i=this._workbook.getUnitId(),o=(n=this._injector.get(r.IRenderManagerService).getRenderById(i))==null?void 0:n.with(a.SheetScrollManagerService);return o?(0,e.toDisposable)(o.validViewportScrollInfo$.subscribe(e=>{t(e)})):(0,e.toDisposable)(()=>{})}getSkeleton(){var e;let t=(e=this._injector.get(r.IRenderManagerService).getRenderById(this._workbook.getUnitId()))==null?void 0:e.with(a.SheetSkeletonManagerService);return t==null?void 0:t.getSkeleton(this._worksheet.getSheetId())}autoResizeColumn(e){return this.autoResizeColumns(e,1)}autoResizeColumns(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=[{startColumn:e,endColumn:e+t-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(a.SetWorksheetColAutoWidthCommand.id,{unitId:n,subUnitId:r,ranges:i}),this}setColumnAutoWidth(e,t){return this.autoResizeColumns(e,t)}autoResizeRows(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),a=[{startRow:e,endRow:e+t-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(i.SetWorksheetRowIsAutoHeightCommand.id,{unitId:n,subUnitId:r,ranges:a}),this}customizeColumnHeader(e){var t;let n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=this._injector.get(r.IRenderManagerService).getRenderById(n);if(o&&(t=e.headerStyle)!=null&&t.size){var s;o.with(a.SheetSkeletonManagerService).setColumnHeaderSize(o,i,(s=e.headerStyle)==null?void 0:s.size)}this._getSheetRenderComponent(n,a.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e,i)}customizeRowHeader(e){var t;let n=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=this._injector.get(r.IRenderManagerService).getRenderById(n);if(o&&(t=e.headerStyle)!=null&&t.size){var s;o.with(a.SheetSkeletonManagerService).setRowHeaderSize(o,i,(s=e.headerStyle)==null?void 0:s.size)}this._getSheetRenderComponent(n,a.SHEET_VIEW_KEY.ROW).setCustomHeader(e,i)}setColumnHeaderHeight(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.executeCommand(a.SetColumnHeaderHeightCommand.id,{unitId:t,subUnitId:n,size:e}),this}setRowHeaderWidth(e){let t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return this._commandService.executeCommand(a.SetRowHeaderWidthCommand.id,{unitId:t,subUnitId:n,size:e}),this}_getSheetRenderComponent(e,t){let n=this._injector.get(r.IRenderManagerService).getRenderById(e);if(!n)throw Error(`Render Unit with unitId ${e} not found`);let{components:i}=n,a=i.get(t);if(!a)throw Error(`Render component not found`);return a}};o.FWorksheet.extend(d);var f=class extends o.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}};o.FPermission.extend(f);var p=class extends o.FSheetHooks{onCellPointerMove(t){return(0,e.toDisposable)(this._injector.get(a.HoverManagerService).currentPosition$.subscribe(t))}onCellPointerOver(t){return(0,e.toDisposable)(this._injector.get(a.HoverManagerService).currentCell$.subscribe(t))}onCellDragOver(t){return(0,e.toDisposable)(this._injector.get(a.DragManagerService).currentCell$.subscribe(t))}onCellDrop(t){return(0,e.toDisposable)(this._injector.get(a.DragManagerService).endCell$.subscribe(t))}onCellRender(t,n=e.InterceptorEffectEnum.Style,r=i.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(i.SheetInterceptorService).intercept(i.INTERCEPTOR_POINT.CELL_CONTENT,{effect:n,handler:(e,n,r)=>(e&&!e.customRender&&t&&(e.customRender=[...t]),r(e)),priority:r})}onBeforeCellEdit(t){return this._injector.get(e.ICommandService).beforeCommandExecuted(e=>{let n=e.params;e.id===a.SetCellEditVisibleOperation.id&&n.visible&&t(n)})}onAfterCellEdit(t){return this._injector.get(e.ICommandService).onCommandExecuted(e=>{let n=e.params;e.id===a.SetCellEditVisibleOperation.id&&!n.visible&&t(n)})}};o.FSheetHooks.extend(p);var m=class extends t.FEventName{get BeforeClipboardChange(){return`BeforeClipboardChange`}get ClipboardChanged(){return`ClipboardChanged`}get BeforeClipboardPaste(){return`BeforeClipboardPaste`}get ClipboardPasted(){return`ClipboardPasted`}get BeforeSheetEditStart(){return`BeforeSheetEditStart`}get SheetEditStarted(){return`SheetEditStarted`}get SheetEditChanging(){return`SheetEditChanging`}get BeforeSheetEditEnd(){return`BeforeSheetEditEnd`}get SheetEditEnded(){return`SheetEditEnded`}get CellClicked(){return`CellClicked`}get CellHover(){return`CellHover`}get CellPointerDown(){return`CellPointerDown`}get CellPointerUp(){return`CellPointerUp`}get CellPointerMove(){return`CellPointerMove`}get DragOver(){return`DragOver`}get Drop(){return`Drop`}get Scroll(){return`Scroll`}get SelectionMoveStart(){return`SelectionMoveStart`}get SelectionChanged(){return`SelectionChanged`}get SelectionMoving(){return`SelectionMoving`}get SelectionMoveEnd(){return`SelectionMoveEnd`}get RowHeaderClick(){return`RowHeaderClick`}get RowHeaderPointerDown(){return`RowHeaderPointerDown`}get RowHeaderPointerUp(){return`RowHeaderPointerUp`}get RowHeaderHover(){return`RowHeaderHover`}get ColumnHeaderClick(){return`ColumnHeaderClick`}get ColumnHeaderPointerDown(){return`ColumnHeaderPointerDown`}get ColumnHeaderPointerUp(){return`ColumnHeaderPointerUp`}get ColumnHeaderHover(){return`ColumnHeaderHover`}get SheetSkeletonChanged(){return`SheetSkeletonChanged`}get BeforeSheetZoomChange(){return`BeforeSheetZoomChange`}get SheetZoomChanged(){return`SheetZoomChanged`}};t.FEventName.extend(m);var h=class extends t.FEnum{get SHEET_VIEWPORT_KEY(){return r.SHEET_VIEWPORT_KEY}};t.FEnum.extend(h);var g=class extends o.FRange{getCell(){var t;let n=this._injector.get(r.IRenderManagerService),i=this._injector.get(e.ILogService),o=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),c=n.getRenderById(o),l=c==null||(t=c.with(a.SheetSkeletonManagerService).getSkeletonParam(s))==null?void 0:t.skeleton;if(!l)throw i.error("[Facade]: `FRange.getCell` can only be called in current worksheet"),Error("`FRange.getCell` can only be called in current worksheet");return l.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){let{startX:e,startY:t,endX:n,endY:r}=this.getCell(),i={x:e,y:t,width:n-e,height:r-t,top:t,left:e,bottom:r,right:n};return{...i,toJSON:()=>JSON.stringify(i)}}generateHTML(){var e;let t=this._injector.get(a.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(e=t==null?void 0:t.html)==null?``:e}attachPopup(e){var t,n,r;e.direction=(t=e.direction)==null?`horizontal`:t,e.extraProps=(n=e.extraProps)==null?{}:n,e.offset=(r=e.offset)==null?[0,0]:r;let{key:i,disposableCollection:o}=_(e,this._injector.get(s.ComponentManager)),c=this._injector.get(a.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:i},this.getUnitId(),this._worksheet.getSheetId());return c?(o.add(c),o):(o.dispose(),null)}attachAlertPopup(e){let t=this._injector.get(a.CellAlertManagerService),n={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return t.showAlert({...e,location:n}),{dispose:()=>{t.removeAlert(e.key)}}}attachRangePopup(e){var t,n,r;e.direction=(t=e.direction)==null?`top-center`:t,e.extraProps=(n=e.extraProps)==null?{}:n,e.offset=(r=e.offset)==null?[0,0]:r;let{key:i,disposableCollection:o}=_(e,this._injector.get(s.ComponentManager)),c=this._injector.get(a.SheetCanvasPopManagerService).attachRangePopup(this._range,{...e,componentKey:i},this.getUnitId(),this._worksheet.getSheetId());return c?(o.add(c),o):(o.dispose(),null)}highlight(t,n){let r=this._injector.get(a.IMarkSelectionService),i=r.addShape({range:this._range,style:t,primary:n});if(!i)throw Error(`Failed to highlight current range`);return(0,e.toDisposable)(()=>{r.removeShape(i)})}showDropdown(e){return this._injector.get(a.ISheetCellDropdownManagerService).showDropdown(e)}};o.FRange.extend(g);function _(t,n){let{componentKey:r,isVue3:i}=t,a,o=new e.DisposableCollection;return typeof r==`string`?a=r:(a=`External_${(0,e.generateRandomId)(6)}`,o.add(n.register(a,r,{framework:i?`vue3`:`react`}))),{key:a,disposableCollection:o}}exports.FSheetsUIEnumMixin=h,exports.transformComponentKey=_;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ let _univerjs_core = require("@univerjs/core");
3
+ let _univerjs_core_facade = require("@univerjs/core/facade");
4
+ let _univerjs_docs = require("@univerjs/docs");
5
+ let _univerjs_engine_render = require("@univerjs/engine-render");
6
+ let _univerjs_sheets = require("@univerjs/sheets");
7
+ let _univerjs_sheets_ui = require("@univerjs/sheets-ui");
8
+ let _univerjs_sheets_facade = require("@univerjs/sheets/facade");
9
+ let _univerjs_ui = require("@univerjs/ui");
10
+ let rxjs = require("rxjs");
11
+
12
+ //#region src/facade/f-univer.ts
13
+ var FUniverSheetsUIMixin = class extends _univerjs_core_facade.FUniver {
14
+ _initSheetUIEvent(injector) {
15
+ const commandService = injector.get(_univerjs_core.ICommandService);
16
+ this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetEditStart, () => commandService.beforeCommandExecuted((commandInfo) => {
17
+ if (commandInfo.id !== _univerjs_sheets_ui.SetCellEditVisibleOperation.id) return;
18
+ const target = this.getActiveSheet();
19
+ if (!target) return;
20
+ const { workbook, worksheet } = target;
21
+ const editorBridgeService = injector.get(_univerjs_sheets_ui.IEditorBridgeService);
22
+ const { visible, keycode, eventType } = commandInfo.params;
23
+ const loc = editorBridgeService.getEditLocation();
24
+ if (!visible) return;
25
+ const eventParams = {
26
+ row: loc.row,
27
+ column: loc.column,
28
+ eventType,
29
+ keycode,
30
+ workbook,
31
+ worksheet,
32
+ isZenEditor: false
33
+ };
34
+ this.fireEvent(this.Event.BeforeSheetEditStart, eventParams);
35
+ if (eventParams.cancel) throw new _univerjs_core.CanceledError();
36
+ })));
37
+ this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetEditEnd, () => commandService.beforeCommandExecuted((commandInfo) => {
38
+ if (commandInfo.id !== _univerjs_sheets_ui.SetCellEditVisibleOperation.id) return;
39
+ const target = this.getActiveSheet();
40
+ if (!target) return;
41
+ const { workbook, worksheet } = target;
42
+ const editorBridgeService = injector.get(_univerjs_sheets_ui.IEditorBridgeService);
43
+ const univerInstanceService = injector.get(_univerjs_core.IUniverInstanceService);
44
+ const { visible, keycode, eventType } = commandInfo.params;
45
+ const loc = editorBridgeService.getEditLocation();
46
+ if (visible) return;
47
+ const eventParams = {
48
+ row: loc.row,
49
+ column: loc.column,
50
+ eventType,
51
+ keycode,
52
+ workbook,
53
+ worksheet,
54
+ isZenEditor: false,
55
+ value: _univerjs_core.RichTextValue.create(univerInstanceService.getUnit(_univerjs_core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),
56
+ isConfirm: keycode !== _univerjs_ui.KeyCode.ESC
57
+ };
58
+ this.fireEvent(this.Event.BeforeSheetEditEnd, eventParams);
59
+ if (eventParams.cancel) throw new _univerjs_core.CanceledError();
60
+ })));
61
+ this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditStarted, () => commandService.onCommandExecuted((commandInfo) => {
62
+ if (commandInfo.id !== _univerjs_sheets_ui.SetCellEditVisibleOperation.id) return;
63
+ const target = this.getCommandSheetTarget(commandInfo);
64
+ if (!target) return;
65
+ const { workbook, worksheet } = target;
66
+ const editorBridgeService = injector.get(_univerjs_sheets_ui.IEditorBridgeService);
67
+ const { visible, keycode, eventType } = commandInfo.params;
68
+ const loc = editorBridgeService.getEditLocation();
69
+ if (!visible) return;
70
+ const eventParams = {
71
+ row: loc.row,
72
+ column: loc.column,
73
+ eventType,
74
+ keycode,
75
+ workbook,
76
+ worksheet,
77
+ isZenEditor: false
78
+ };
79
+ this.fireEvent(this.Event.SheetEditStarted, eventParams);
80
+ })));
81
+ this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditEnded, () => commandService.onCommandExecuted((commandInfo) => {
82
+ if (commandInfo.id !== _univerjs_sheets_ui.SetCellEditVisibleOperation.id) return;
83
+ const target = this.getCommandSheetTarget(commandInfo);
84
+ if (!target) return;
85
+ const { workbook, worksheet } = target;
86
+ const editorBridgeService = injector.get(_univerjs_sheets_ui.IEditorBridgeService);
87
+ const { visible, keycode, eventType } = commandInfo.params;
88
+ const loc = editorBridgeService.getEditLocation();
89
+ if (visible) return;
90
+ const eventParams = {
91
+ row: loc.row,
92
+ column: loc.column,
93
+ eventType,
94
+ keycode,
95
+ workbook,
96
+ worksheet,
97
+ isZenEditor: false,
98
+ isConfirm: keycode !== _univerjs_ui.KeyCode.ESC
99
+ };
100
+ this.fireEvent(this.Event.SheetEditEnded, eventParams);
101
+ })));
102
+ this.disposeWithMe(this.registerEventHandler(this.Event.SheetEditChanging, () => commandService.onCommandExecuted((commandInfo) => {
103
+ if (commandInfo.id !== _univerjs_docs.RichTextEditingMutation.id) return;
104
+ const target = this.getActiveSheet();
105
+ if (!target) return;
106
+ const { workbook, worksheet } = target;
107
+ const editorBridgeService = injector.get(_univerjs_sheets_ui.IEditorBridgeService);
108
+ const univerInstanceService = injector.get(_univerjs_core.IUniverInstanceService);
109
+ const params = commandInfo.params;
110
+ if (!editorBridgeService.isVisible().visible) return;
111
+ const { unitId } = params;
112
+ if (unitId === _univerjs_core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY) {
113
+ const { row, column } = editorBridgeService.getEditLocation();
114
+ const eventParams = {
115
+ workbook,
116
+ worksheet,
117
+ row,
118
+ column,
119
+ value: _univerjs_core.RichTextValue.create(univerInstanceService.getUnit(_univerjs_core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),
120
+ isZenEditor: false
121
+ };
122
+ this.fireEvent(this.Event.SheetEditChanging, eventParams);
123
+ }
124
+ })));
125
+ this.disposeWithMe(this.registerEventHandler(this.Event.BeforeSheetZoomChange, () => commandService.beforeCommandExecuted((commandInfo) => {
126
+ if (commandInfo.id !== _univerjs_sheets_ui.SetZoomRatioCommand.id) return;
127
+ const target = this.getCommandSheetTarget(commandInfo);
128
+ if (!target) return;
129
+ const { workbook, worksheet } = target;
130
+ const eventParams = {
131
+ zoom: commandInfo.params.zoomRatio,
132
+ workbook,
133
+ worksheet
134
+ };
135
+ this.fireEvent(this.Event.BeforeSheetZoomChange, eventParams);
136
+ if (eventParams.cancel) throw new _univerjs_core.CanceledError();
137
+ })));
138
+ this.disposeWithMe(this.registerEventHandler(this.Event.SheetZoomChanged, () => commandService.onCommandExecuted((commandInfo) => {
139
+ if (commandInfo.id !== _univerjs_sheets_ui.SetZoomRatioCommand.id) return;
140
+ const target = this.getCommandSheetTarget(commandInfo);
141
+ if (!target) return;
142
+ const { workbook, worksheet } = target;
143
+ const eventParams = {
144
+ zoom: worksheet.getZoom(),
145
+ workbook,
146
+ worksheet
147
+ };
148
+ this.fireEvent(this.Event.SheetZoomChanged, eventParams);
149
+ })));
150
+ }
151
+ _initObserverListener(injector) {
152
+ const renderManagerService = injector.get(_univerjs_engine_render.IRenderManagerService);
153
+ const lifeCycleService = injector.get(_univerjs_core.LifecycleService);
154
+ const lifecycle$Disposable = new _univerjs_core.DisposableCollection();
155
+ this.disposeWithMe(lifeCycleService.lifecycle$.subscribe((lifecycle) => {
156
+ if (lifecycle !== _univerjs_core.LifecycleStages.Rendered) return;
157
+ const hoverManagerService = injector.get(_univerjs_sheets_ui.HoverManagerService);
158
+ const dragManagerService = injector.get(_univerjs_sheets_ui.DragManagerService);
159
+ if (!hoverManagerService) return;
160
+ lifecycle$Disposable.dispose();
161
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.CellClicked, () => {
162
+ var _hoverManagerService$;
163
+ return (_hoverManagerService$ = hoverManagerService.currentClickedCell$) === null || _hoverManagerService$ === void 0 ? void 0 : _hoverManagerService$.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
164
+ const baseParams = this.getSheetTarget(cell.location.unitId, cell.location.subUnitId);
165
+ if (!baseParams) return;
166
+ const eventParams = {
167
+ ...baseParams,
168
+ ...cell,
169
+ row: cell.location.row,
170
+ column: cell.location.col
171
+ };
172
+ this.fireEvent(this.Event.CellClicked, eventParams);
173
+ });
174
+ }));
175
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.CellHover, () => {
176
+ var _hoverManagerService$2;
177
+ return (_hoverManagerService$2 = hoverManagerService.currentRichText$) === null || _hoverManagerService$2 === void 0 ? void 0 : _hoverManagerService$2.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
178
+ const baseParams = this.getSheetTarget(cell.unitId, cell.subUnitId);
179
+ if (!baseParams) return;
180
+ const eventParams = {
181
+ ...baseParams,
182
+ ...cell,
183
+ row: cell.row,
184
+ column: cell.col
185
+ };
186
+ this.fireEvent(this.Event.CellHover, eventParams);
187
+ });
188
+ }));
189
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.CellPointerDown, () => {
190
+ var _hoverManagerService$3;
191
+ return (_hoverManagerService$3 = hoverManagerService.currentPointerDownCell$) === null || _hoverManagerService$3 === void 0 ? void 0 : _hoverManagerService$3.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
192
+ const baseParams = this.getSheetTarget(cell.unitId, cell.subUnitId);
193
+ if (!baseParams) return;
194
+ const eventParams = {
195
+ ...baseParams,
196
+ ...cell,
197
+ row: cell.row,
198
+ column: cell.col
199
+ };
200
+ this.fireEvent(this.Event.CellPointerDown, eventParams);
201
+ });
202
+ }));
203
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.CellPointerUp, () => {
204
+ var _hoverManagerService$4;
205
+ return (_hoverManagerService$4 = hoverManagerService.currentPointerUpCell$) === null || _hoverManagerService$4 === void 0 ? void 0 : _hoverManagerService$4.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
206
+ const baseParams = this.getSheetTarget(cell.unitId, cell.subUnitId);
207
+ if (!baseParams) return;
208
+ const eventParams = {
209
+ ...baseParams,
210
+ ...cell,
211
+ row: cell.row,
212
+ column: cell.col
213
+ };
214
+ this.fireEvent(this.Event.CellPointerUp, eventParams);
215
+ });
216
+ }));
217
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.CellPointerMove, () => {
218
+ var _hoverManagerService$5;
219
+ return (_hoverManagerService$5 = hoverManagerService.currentCellPosWithEvent$) === null || _hoverManagerService$5 === void 0 ? void 0 : _hoverManagerService$5.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
220
+ const baseParams = this.getSheetTarget(cell.unitId, cell.subUnitId);
221
+ if (!baseParams) return;
222
+ const eventParams = {
223
+ ...baseParams,
224
+ ...cell,
225
+ row: cell.row,
226
+ column: cell.col
227
+ };
228
+ this.fireEvent(this.Event.CellPointerMove, eventParams);
229
+ });
230
+ }));
231
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.DragOver, () => {
232
+ var _dragManagerService$c;
233
+ return (_dragManagerService$c = dragManagerService.currentCell$) === null || _dragManagerService$c === void 0 ? void 0 : _dragManagerService$c.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
234
+ const baseParams = this.getSheetTarget(cell.location.unitId, cell.location.subUnitId);
235
+ if (!baseParams) return;
236
+ const eventParams = {
237
+ ...baseParams,
238
+ ...cell,
239
+ row: cell.location.row,
240
+ column: cell.location.col
241
+ };
242
+ this.fireEvent(this.Event.DragOver, eventParams);
243
+ });
244
+ }));
245
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.Drop, () => {
246
+ var _dragManagerService$e;
247
+ return (_dragManagerService$e = dragManagerService.endCell$) === null || _dragManagerService$e === void 0 ? void 0 : _dragManagerService$e.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
248
+ const baseParams = this.getSheetTarget(cell.location.unitId, cell.location.subUnitId);
249
+ if (!baseParams) return;
250
+ const eventParams = {
251
+ ...baseParams,
252
+ ...cell,
253
+ row: cell.location.row,
254
+ column: cell.location.col
255
+ };
256
+ this.fireEvent(this.Event.Drop, eventParams);
257
+ });
258
+ }));
259
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.RowHeaderClick, () => {
260
+ var _hoverManagerService$6;
261
+ return (_hoverManagerService$6 = hoverManagerService.currentRowHeaderClick$) === null || _hoverManagerService$6 === void 0 ? void 0 : _hoverManagerService$6.pipe((0, rxjs.filter)((header) => !!header)).subscribe((header) => {
262
+ const baseParams = this.getSheetTarget(header.unitId, header.subUnitId);
263
+ if (!baseParams) return;
264
+ const eventParams = {
265
+ ...baseParams,
266
+ row: header.index
267
+ };
268
+ this.fireEvent(this.Event.RowHeaderClick, eventParams);
269
+ });
270
+ }));
271
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.RowHeaderPointerDown, () => {
272
+ var _hoverManagerService$7;
273
+ return (_hoverManagerService$7 = hoverManagerService.currentRowHeaderPointerDown$) === null || _hoverManagerService$7 === void 0 ? void 0 : _hoverManagerService$7.pipe((0, rxjs.filter)((header) => !!header)).subscribe((header) => {
274
+ const baseParams = this.getSheetTarget(header.unitId, header.subUnitId);
275
+ if (!baseParams) return;
276
+ const eventParams = {
277
+ ...baseParams,
278
+ row: header.index
279
+ };
280
+ this.fireEvent(this.Event.RowHeaderPointerDown, eventParams);
281
+ });
282
+ }));
283
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.RowHeaderPointerUp, () => {
284
+ var _hoverManagerService$8;
285
+ return (_hoverManagerService$8 = hoverManagerService.currentRowHeaderPointerUp$) === null || _hoverManagerService$8 === void 0 ? void 0 : _hoverManagerService$8.pipe((0, rxjs.filter)((header) => !!header)).subscribe((header) => {
286
+ const baseParams = this.getSheetTarget(header.unitId, header.subUnitId);
287
+ if (!baseParams) return;
288
+ const eventParams = {
289
+ ...baseParams,
290
+ row: header.index
291
+ };
292
+ this.fireEvent(this.Event.RowHeaderPointerUp, eventParams);
293
+ });
294
+ }));
295
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.RowHeaderHover, () => {
296
+ var _hoverManagerService$9;
297
+ return (_hoverManagerService$9 = hoverManagerService.currentHoveredRowHeader$) === null || _hoverManagerService$9 === void 0 ? void 0 : _hoverManagerService$9.pipe((0, rxjs.filter)((header) => !!header)).subscribe((header) => {
298
+ const baseParams = this.getSheetTarget(header.unitId, header.subUnitId);
299
+ if (!baseParams) return;
300
+ const eventParams = {
301
+ ...baseParams,
302
+ row: header.index
303
+ };
304
+ this.fireEvent(this.Event.RowHeaderHover, eventParams);
305
+ });
306
+ }));
307
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.ColumnHeaderClick, () => {
308
+ var _hoverManagerService$10;
309
+ return (_hoverManagerService$10 = hoverManagerService.currentColHeaderClick$) === null || _hoverManagerService$10 === void 0 ? void 0 : _hoverManagerService$10.pipe((0, rxjs.filter)((header) => !!header)).subscribe((header) => {
310
+ const baseParams = this.getSheetTarget(header.unitId, header.subUnitId);
311
+ if (!baseParams) return;
312
+ const eventParams = {
313
+ ...baseParams,
314
+ column: header.index
315
+ };
316
+ this.fireEvent(this.Event.ColumnHeaderClick, eventParams);
317
+ });
318
+ }));
319
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.ColumnHeaderPointerDown, () => {
320
+ var _hoverManagerService$11;
321
+ return (_hoverManagerService$11 = hoverManagerService.currentColHeaderPointerDown$) === null || _hoverManagerService$11 === void 0 ? void 0 : _hoverManagerService$11.pipe((0, rxjs.filter)((header) => !!header)).subscribe((header) => {
322
+ const baseParams = this.getSheetTarget(header.unitId, header.subUnitId);
323
+ if (!baseParams) return;
324
+ const eventParams = {
325
+ ...baseParams,
326
+ column: header.index
327
+ };
328
+ this.fireEvent(this.Event.ColumnHeaderPointerDown, eventParams);
329
+ });
330
+ }));
331
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.ColumnHeaderPointerUp, () => {
332
+ var _hoverManagerService$12;
333
+ return (_hoverManagerService$12 = hoverManagerService.currentColHeaderPointerUp$) === null || _hoverManagerService$12 === void 0 ? void 0 : _hoverManagerService$12.pipe((0, rxjs.filter)((header) => !!header)).subscribe((header) => {
334
+ const baseParams = this.getSheetTarget(header.unitId, header.subUnitId);
335
+ if (!baseParams) return;
336
+ const eventParams = {
337
+ ...baseParams,
338
+ column: header.index
339
+ };
340
+ this.fireEvent(this.Event.ColumnHeaderPointerUp, eventParams);
341
+ });
342
+ }));
343
+ lifecycle$Disposable.add(this.registerEventHandler(this.Event.ColumnHeaderHover, () => {
344
+ var _hoverManagerService$13;
345
+ return (_hoverManagerService$13 = hoverManagerService.currentHoveredColHeader$) === null || _hoverManagerService$13 === void 0 ? void 0 : _hoverManagerService$13.pipe((0, rxjs.filter)((header) => !!header)).subscribe((header) => {
346
+ const baseParams = this.getSheetTarget(header.unitId, header.subUnitId);
347
+ if (!baseParams) return;
348
+ const eventParams = {
349
+ ...baseParams,
350
+ column: header.index
351
+ };
352
+ this.fireEvent(this.Event.ColumnHeaderHover, eventParams);
353
+ });
354
+ }));
355
+ this.disposeWithMe(lifecycle$Disposable);
356
+ }));
357
+ let sheetRenderUnit;
358
+ const combined$ = (0, rxjs.combineLatest)([renderManagerService.created$, lifeCycleService.lifecycle$]);
359
+ const combined$Disposable = new _univerjs_core.DisposableCollection();
360
+ this.disposeWithMe(combined$.subscribe(([created, lifecycle]) => {
361
+ if (created.type === _univerjs_core.UniverInstanceType.UNIVER_SHEET) sheetRenderUnit = created;
362
+ if (lifecycle <= _univerjs_core.LifecycleStages.Rendered) return;
363
+ if (!sheetRenderUnit) return;
364
+ const workbook = this.getWorkbook(sheetRenderUnit.unitId);
365
+ if (!workbook) return;
366
+ combined$Disposable.dispose();
367
+ const scrollManagerService = sheetRenderUnit.with(_univerjs_sheets_ui.SheetScrollManagerService);
368
+ const selectionService = sheetRenderUnit.with(_univerjs_sheets.SheetsSelectionsService);
369
+ combined$Disposable.add(this.registerEventHandler(this.Event.Scroll, () => scrollManagerService.validViewportScrollInfo$.subscribe((params) => {
370
+ if (!params) return;
371
+ const eventParams = {
372
+ workbook,
373
+ worksheet: workbook.getActiveSheet(),
374
+ ...params
375
+ };
376
+ this.fireEvent(this.Event.Scroll, eventParams);
377
+ })));
378
+ combined$Disposable.add(this.registerEventHandler(this.Event.SelectionMoveStart, () => selectionService.selectionMoveStart$.subscribe((selections) => {
379
+ var _selections$map;
380
+ const eventParams = {
381
+ workbook,
382
+ worksheet: workbook.getActiveSheet(),
383
+ selections: (_selections$map = selections === null || selections === void 0 ? void 0 : selections.map((s) => s.range)) !== null && _selections$map !== void 0 ? _selections$map : []
384
+ };
385
+ this.fireEvent(this.Event.SelectionMoveStart, eventParams);
386
+ })));
387
+ combined$Disposable.add(this.registerEventHandler(this.Event.SelectionMoving, () => selectionService.selectionMoving$.subscribe((selections) => {
388
+ var _selections$map2;
389
+ const eventParams = {
390
+ workbook,
391
+ worksheet: workbook.getActiveSheet(),
392
+ selections: (_selections$map2 = selections === null || selections === void 0 ? void 0 : selections.map((s) => s.range)) !== null && _selections$map2 !== void 0 ? _selections$map2 : []
393
+ };
394
+ this.fireEvent(this.Event.SelectionMoving, eventParams);
395
+ })));
396
+ combined$Disposable.add(this.registerEventHandler(this.Event.SelectionMoveEnd, () => selectionService.selectionMoveEnd$.subscribe((selections) => {
397
+ var _selections$map3;
398
+ const eventParams = {
399
+ workbook,
400
+ worksheet: workbook.getActiveSheet(),
401
+ selections: (_selections$map3 = selections === null || selections === void 0 ? void 0 : selections.map((s) => s.range)) !== null && _selections$map3 !== void 0 ? _selections$map3 : []
402
+ };
403
+ this.fireEvent(this.Event.SelectionMoveEnd, eventParams);
404
+ })));
405
+ combined$Disposable.add(this.registerEventHandler(this.Event.SelectionChanged, () => selectionService.selectionChanged$.subscribe((selections) => {
406
+ var _selections$map4;
407
+ const eventParams = {
408
+ workbook,
409
+ worksheet: workbook.getActiveSheet(),
410
+ selections: (_selections$map4 = selections === null || selections === void 0 ? void 0 : selections.map((s) => s.range)) !== null && _selections$map4 !== void 0 ? _selections$map4 : []
411
+ };
412
+ this.fireEvent(this.Event.SelectionChanged, eventParams);
413
+ })));
414
+ sheetRenderUnit = null;
415
+ this.disposeWithMe(combined$Disposable);
416
+ }));
417
+ }
418
+ /**
419
+ * @ignore
420
+ */
421
+ _initialize(injector) {
422
+ this._initSheetUIEvent(injector);
423
+ this._initObserverListener(injector);
424
+ const commandService = injector.get(_univerjs_core.ICommandService);
425
+ this.disposeWithMe(this.registerEventHandler(this.Event.BeforeClipboardChange, () => commandService.beforeCommandExecuted((commandInfo) => {
426
+ switch (commandInfo.id) {
427
+ case _univerjs_ui.CopyCommand.id:
428
+ case _univerjs_ui.CutCommand.id:
429
+ this._beforeClipboardChange();
430
+ break;
431
+ }
432
+ })));
433
+ this.disposeWithMe(this.registerEventHandler(this.Event.ClipboardChanged, () => commandService.onCommandExecuted((commandInfo) => {
434
+ switch (commandInfo.id) {
435
+ case _univerjs_ui.CopyCommand.id:
436
+ case _univerjs_ui.CutCommand.id:
437
+ this._clipboardChanged();
438
+ break;
439
+ }
440
+ })));
441
+ this.disposeWithMe(this.registerEventHandler(this.Event.BeforeClipboardPaste, () => commandService.beforeCommandExecuted((commandInfo) => {
442
+ switch (commandInfo.id) {
443
+ case _univerjs_sheets_ui.SheetPasteShortKeyCommand.id:
444
+ this._beforeClipboardPaste(commandInfo.params);
445
+ break;
446
+ case _univerjs_ui.PasteCommand.id:
447
+ this._beforeClipboardPasteAsync();
448
+ break;
449
+ }
450
+ })));
451
+ this.disposeWithMe(this.registerEventHandler(this.Event.ClipboardPasted, () => commandService.onCommandExecuted((commandInfo) => {
452
+ switch (commandInfo.id) {
453
+ case _univerjs_sheets_ui.SheetPasteShortKeyCommand.id:
454
+ this._clipboardPaste(commandInfo.params);
455
+ break;
456
+ case _univerjs_ui.PasteCommand.id:
457
+ this._clipboardPasteAsync();
458
+ break;
459
+ }
460
+ })));
461
+ this.disposeWithMe(this.registerEventHandler(this.Event.SheetSkeletonChanged, () => commandService.onCommandExecuted((commandInfo) => {
462
+ if (_univerjs_sheets.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(commandInfo.id) > -1) {
463
+ const sheet = this.getActiveSheet();
464
+ if (!sheet) return;
465
+ const ranges = (0, _univerjs_sheets.getSkeletonChangedEffectedRange)(commandInfo, sheet.worksheet.getMaxColumns()).map((range) => {
466
+ var _this$getWorkbook;
467
+ return (_this$getWorkbook = this.getWorkbook(range.unitId)) === null || _this$getWorkbook === void 0 || (_this$getWorkbook = _this$getWorkbook.getSheetBySheetId(range.subUnitId)) === null || _this$getWorkbook === void 0 ? void 0 : _this$getWorkbook.getRange(range.range);
468
+ }).filter(Boolean);
469
+ if (!ranges.length) return;
470
+ const eventParams = {
471
+ workbook: sheet.workbook,
472
+ worksheet: sheet.worksheet,
473
+ payload: commandInfo,
474
+ skeleton: sheet.worksheet.getSkeleton(),
475
+ effectedRanges: ranges
476
+ };
477
+ this.fireEvent(this.Event.SheetSkeletonChanged, eventParams);
478
+ }
479
+ })));
480
+ }
481
+ _generateClipboardCopyParam() {
482
+ const workbook = this.getActiveWorkbook();
483
+ const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
484
+ const range = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveRange();
485
+ if (!workbook || !worksheet || !range) return;
486
+ const content = this._injector.get(_univerjs_sheets_ui.ISheetClipboardService).generateCopyContent(workbook.getId(), worksheet.getSheetId(), range.getRange());
487
+ if (!content) return;
488
+ const { html, plain } = content;
489
+ return {
490
+ workbook,
491
+ worksheet,
492
+ text: plain,
493
+ html,
494
+ fromSheet: worksheet,
495
+ fromRange: range
496
+ };
497
+ }
498
+ _beforeClipboardChange() {
499
+ const eventParams = this._generateClipboardCopyParam();
500
+ if (!eventParams) return;
501
+ this.fireEvent(this.Event.BeforeClipboardChange, eventParams);
502
+ if (eventParams.cancel) throw new _univerjs_core.CanceledError();
503
+ }
504
+ _clipboardChanged() {
505
+ const eventParams = this._generateClipboardCopyParam();
506
+ if (!eventParams) return;
507
+ this.fireEvent(this.Event.ClipboardChanged, eventParams);
508
+ }
509
+ _generateClipboardPasteParam(params) {
510
+ if (!params) return;
511
+ const { htmlContent, textContent } = params;
512
+ const workbook = this.getActiveWorkbook();
513
+ const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
514
+ if (!workbook || !worksheet) return;
515
+ return {
516
+ workbook,
517
+ worksheet,
518
+ text: textContent,
519
+ html: htmlContent
520
+ };
521
+ }
522
+ async _generateClipboardPasteParamAsync() {
523
+ const workbook = this.getActiveWorkbook();
524
+ const worksheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
525
+ if (!workbook || !worksheet) return;
526
+ const item = (await this._injector.get(_univerjs_ui.IClipboardInterfaceService).read())[0];
527
+ let eventParams;
528
+ if (item) {
529
+ const types = item.types;
530
+ eventParams = {
531
+ workbook,
532
+ worksheet,
533
+ text: types.indexOf(_univerjs_ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE) !== -1 ? await item.getType(_univerjs_ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then((blob) => blob && blob.text()) : "",
534
+ html: types.indexOf(_univerjs_ui.HTML_CLIPBOARD_MIME_TYPE) !== -1 ? await item.getType(_univerjs_ui.HTML_CLIPBOARD_MIME_TYPE).then((blob) => blob && blob.text()) : ""
535
+ };
536
+ }
537
+ return eventParams;
538
+ }
539
+ _beforeClipboardPaste(params) {
540
+ const eventParams = this._generateClipboardPasteParam(params);
541
+ if (!eventParams) return;
542
+ this.fireEvent(this.Event.BeforeClipboardPaste, eventParams);
543
+ if (eventParams.cancel) throw new _univerjs_core.CanceledError();
544
+ }
545
+ _clipboardPaste(params) {
546
+ const eventParams = this._generateClipboardPasteParam(params);
547
+ if (!eventParams) return;
548
+ this.fireEvent(this.Event.ClipboardPasted, eventParams);
549
+ if (eventParams.cancel) throw new _univerjs_core.CanceledError();
550
+ }
551
+ async _beforeClipboardPasteAsync() {
552
+ if (!(0, _univerjs_ui.supportClipboardAPI)()) {
553
+ this._injector.get(_univerjs_core.ILogService).warn("[Facade]: The navigator object only supports the browser environment");
554
+ return;
555
+ }
556
+ const eventParams = await this._generateClipboardPasteParamAsync();
557
+ if (!eventParams) return;
558
+ this.fireEvent(this.Event.BeforeClipboardPaste, eventParams);
559
+ if (eventParams.cancel) throw new _univerjs_core.CanceledError();
560
+ }
561
+ async _clipboardPasteAsync() {
562
+ if (!(0, _univerjs_ui.supportClipboardAPI)()) {
563
+ this._injector.get(_univerjs_core.ILogService).warn("[Facade]: The navigator object only supports the browser environment");
564
+ return;
565
+ }
566
+ const eventParams = await this._generateClipboardPasteParamAsync();
567
+ if (!eventParams) return;
568
+ this.fireEvent(this.Event.ClipboardPasted, eventParams);
569
+ if (eventParams.cancel) throw new _univerjs_core.CanceledError();
570
+ }
571
+ customizeColumnHeader(cfg) {
572
+ var _cfg$headerStyle;
573
+ const wb = this.getActiveWorkbook();
574
+ if (!wb) {
575
+ console.error("WorkBook not exist");
576
+ return;
577
+ }
578
+ const unitId = wb === null || wb === void 0 ? void 0 : wb.getId();
579
+ const renderManagerService = this._injector.get(_univerjs_engine_render.IRenderManagerService);
580
+ const activeSheet = wb.getActiveSheet();
581
+ const subUnitId = activeSheet.getSheetId();
582
+ const render = renderManagerService.getRenderById(unitId);
583
+ if (render && ((_cfg$headerStyle = cfg.headerStyle) === null || _cfg$headerStyle === void 0 ? void 0 : _cfg$headerStyle.size)) {
584
+ var _cfg$headerStyle2;
585
+ render.with(_univerjs_sheets_ui.SheetSkeletonManagerService).setColumnHeaderSize(render, subUnitId, (_cfg$headerStyle2 = cfg.headerStyle) === null || _cfg$headerStyle2 === void 0 ? void 0 : _cfg$headerStyle2.size);
586
+ activeSheet === null || activeSheet === void 0 || activeSheet.refreshCanvas();
587
+ }
588
+ this._getSheetRenderComponent(unitId, _univerjs_sheets_ui.SHEET_VIEW_KEY.COLUMN).setCustomHeader(cfg);
589
+ activeSheet === null || activeSheet === void 0 || activeSheet.refreshCanvas();
590
+ }
591
+ customizeRowHeader(cfg) {
592
+ const wb = this.getActiveWorkbook();
593
+ if (!wb) {
594
+ console.error("WorkBook not exist");
595
+ return;
596
+ }
597
+ const unitId = wb === null || wb === void 0 ? void 0 : wb.getId();
598
+ this._getSheetRenderComponent(unitId, _univerjs_sheets_ui.SHEET_VIEW_KEY.ROW).setCustomHeader(cfg);
599
+ }
600
+ registerSheetRowHeaderExtension(unitId, ...extensions) {
601
+ const sheetComponent = this._getSheetRenderComponent(unitId, _univerjs_sheets_ui.SHEET_VIEW_KEY.ROW);
602
+ const registerDisposable = sheetComponent.register(...extensions);
603
+ return (0, _univerjs_core.toDisposable)(() => {
604
+ registerDisposable.dispose();
605
+ sheetComponent.makeDirty(true);
606
+ });
607
+ }
608
+ registerSheetColumnHeaderExtension(unitId, ...extensions) {
609
+ const sheetComponent = this._getSheetRenderComponent(unitId, _univerjs_sheets_ui.SHEET_VIEW_KEY.COLUMN);
610
+ const registerDisposable = sheetComponent.register(...extensions);
611
+ return (0, _univerjs_core.toDisposable)(() => {
612
+ registerDisposable.dispose();
613
+ sheetComponent.makeDirty(true);
614
+ });
615
+ }
616
+ registerSheetMainExtension(unitId, ...extensions) {
617
+ const sheetComponent = this._getSheetRenderComponent(unitId, _univerjs_sheets_ui.SHEET_VIEW_KEY.MAIN);
618
+ const registerDisposable = sheetComponent.register(...extensions);
619
+ return (0, _univerjs_core.toDisposable)(() => {
620
+ registerDisposable.dispose();
621
+ sheetComponent.makeDirty(true);
622
+ });
623
+ }
624
+ /**
625
+ * Get sheet render component from render by unitId and view key.
626
+ * @private
627
+ * @param {string} unitId The unit id of the spreadsheet.
628
+ * @param {SHEET_VIEW_KEY} viewKey The view key of the spreadsheet.
629
+ * @returns {Nullable<RenderComponentType>} The render component.
630
+ */
631
+ _getSheetRenderComponent(unitId, viewKey) {
632
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
633
+ if (!render) throw new Error(`Render Unit with unitId ${unitId} not found`);
634
+ const { components } = render;
635
+ const renderComponent = components.get(viewKey);
636
+ if (!renderComponent) throw new Error("Render component not found");
637
+ return renderComponent;
638
+ }
639
+ /**
640
+ * Get sheet hooks.
641
+ * @returns {FSheetHooks} FSheetHooks instance
642
+ */
643
+ getSheetHooks() {
644
+ return this._injector.createInstance(_univerjs_sheets_facade.FSheetHooks);
645
+ }
646
+ pasteIntoSheet(htmlContent, textContent, files) {
647
+ return this._commandService.executeCommand(_univerjs_sheets_ui.SheetPasteShortKeyCommand.id, {
648
+ htmlContent,
649
+ textContent,
650
+ files
651
+ });
652
+ }
653
+ setProtectedRangeShadowStrategy(strategy) {
654
+ this._injector.get(_univerjs_sheets_ui.SheetPermissionRenderManagerService).setProtectedRangeShadowStrategy(strategy);
655
+ }
656
+ getProtectedRangeShadowStrategy() {
657
+ return this._injector.get(_univerjs_sheets_ui.SheetPermissionRenderManagerService).getProtectedRangeShadowStrategy();
658
+ }
659
+ getProtectedRangeShadowStrategy$() {
660
+ return this._injector.get(_univerjs_sheets_ui.SheetPermissionRenderManagerService).getProtectedRangeShadowStrategy$();
661
+ }
662
+ setPermissionDialogVisible(visible) {
663
+ this._injector.get(_univerjs_core.IPermissionService).setShowComponents(visible);
664
+ }
665
+ };
666
+ _univerjs_core_facade.FUniver.extend(FUniverSheetsUIMixin);
667
+
668
+ //#endregion
669
+ //#region src/facade/f-workbook.ts
670
+ var FWorkbookSheetsUIMixin = class extends _univerjs_sheets_facade.FWorkbook {
671
+ openSiderbar(params) {
672
+ this._logDeprecation("openSiderbar");
673
+ return this._injector.get(_univerjs_ui.ISidebarService).open(params);
674
+ }
675
+ openDialog(dialog) {
676
+ this._logDeprecation("openDialog");
677
+ const disposable = this._injector.get(_univerjs_ui.IDialogService).open({
678
+ ...dialog,
679
+ onClose: () => {
680
+ disposable.dispose();
681
+ }
682
+ });
683
+ return disposable;
684
+ }
685
+ customizeColumnHeader(cfg) {
686
+ const unitId = this._workbook.getUnitId();
687
+ this._getSheetRenderComponent(unitId, _univerjs_sheets_ui.SHEET_VIEW_KEY.COLUMN).setCustomHeader(cfg);
688
+ }
689
+ customizeRowHeader(cfg) {
690
+ const unitId = this._workbook.getUnitId();
691
+ this._getSheetRenderComponent(unitId, _univerjs_sheets_ui.SHEET_VIEW_KEY.ROW).setCustomHeader(cfg);
692
+ }
693
+ /**
694
+ * Get sheet render component from render by unitId and view key.
695
+ * @private
696
+ * @param {string} unitId The unit id of the spreadsheet.
697
+ * @param {SHEET_VIEW_KEY} viewKey The view key of the spreadsheet.
698
+ * @returns {Nullable<RenderComponentType>} The render component.
699
+ */
700
+ _getSheetRenderComponent(unitId, viewKey) {
701
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
702
+ if (!render) throw new Error(`Render Unit with unitId ${unitId} not found`);
703
+ const { components } = render;
704
+ const renderComponent = components.get(viewKey);
705
+ if (!renderComponent) throw new Error("Render component not found");
706
+ return renderComponent;
707
+ }
708
+ _logDeprecation(name) {
709
+ this._injector.get(_univerjs_core.ILogService).warn("[FWorkbook]", `${name} is deprecated. Please use the function of the same name on "FUniver".`);
710
+ }
711
+ onCellClick(callback) {
712
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.HoverManagerService).currentClickedCell$.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
713
+ callback(cell);
714
+ }));
715
+ }
716
+ onCellHover(callback) {
717
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.HoverManagerService).currentRichText$.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe(callback));
718
+ }
719
+ onCellPointerDown(callback) {
720
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.HoverManagerService).currentPointerDownCell$.subscribe(callback));
721
+ }
722
+ onCellPointerUp(callback) {
723
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.HoverManagerService).currentPointerUpCell$.subscribe(callback));
724
+ }
725
+ onCellPointerMove(callback) {
726
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.HoverManagerService).currentCellPosWithEvent$.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
727
+ callback(cell, cell.event);
728
+ }));
729
+ }
730
+ onDragOver(callback) {
731
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.DragManagerService).currentCell$.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
732
+ callback(cell);
733
+ }));
734
+ }
735
+ onDrop(callback) {
736
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.DragManagerService).endCell$.pipe((0, rxjs.filter)((cell) => !!cell)).subscribe((cell) => {
737
+ callback(cell);
738
+ }));
739
+ }
740
+ startEditing() {
741
+ const commandService = this._injector.get(_univerjs_core.ICommandService);
742
+ if (this._injector.get(_univerjs_sheets_ui.IEditorBridgeService).isVisible().visible) return true;
743
+ return commandService.syncExecuteCommand(_univerjs_sheets_ui.SetCellEditVisibleOperation.id, {
744
+ eventType: _univerjs_engine_render.DeviceInputEventType.Dblclick,
745
+ unitId: this._workbook.getUnitId(),
746
+ visible: true
747
+ });
748
+ }
749
+ async endEditing(save) {
750
+ const commandService = this._injector.get(_univerjs_core.ICommandService);
751
+ if (this._injector.get(_univerjs_sheets_ui.IEditorBridgeService).isVisible().visible) commandService.syncExecuteCommand(_univerjs_sheets_ui.SetCellEditVisibleOperation.id, {
752
+ eventType: _univerjs_engine_render.DeviceInputEventType.Keyboard,
753
+ keycode: save ? _univerjs_ui.KeyCode.ENTER : _univerjs_ui.KeyCode.ESC,
754
+ visible: false,
755
+ unitId: this._workbook.getUnitId()
756
+ });
757
+ await (0, _univerjs_core.awaitTime)(0);
758
+ return true;
759
+ }
760
+ endEditingAsync(save = true) {
761
+ return this.endEditing(save);
762
+ }
763
+ abortEditingAsync() {
764
+ return this.endEditingAsync(false);
765
+ }
766
+ isCellEditing() {
767
+ return this._injector.get(_univerjs_sheets_ui.IEditorBridgeService).isVisible().visible;
768
+ }
769
+ /**
770
+ * Get scroll state of specified sheet.
771
+ * @param {string} sheetId - sheet id
772
+ * @returns {IScrollState} scroll state
773
+ * @example
774
+ * ``` ts
775
+ * univerAPI.getActiveWorkbook().getScrollStateBySheetId($sheetId)
776
+ * ```
777
+ */
778
+ getScrollStateBySheetId(sheetId) {
779
+ const unitId = this._workbook.getUnitId();
780
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
781
+ if (!render) return null;
782
+ return render.with(_univerjs_sheets_ui.SheetScrollManagerService).getScrollStateByParam({
783
+ unitId,
784
+ sheetId
785
+ });
786
+ }
787
+ disableSelection() {
788
+ const unitId = this._workbook.getUnitId();
789
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
790
+ if (render) render.with(_univerjs_sheets_ui.ISheetSelectionRenderService).disableSelection();
791
+ return this;
792
+ }
793
+ enableSelection() {
794
+ const unitId = this._workbook.getUnitId();
795
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
796
+ if (render) render.with(_univerjs_sheets_ui.ISheetSelectionRenderService).enableSelection();
797
+ return this;
798
+ }
799
+ transparentSelection() {
800
+ const unitId = this._workbook.getUnitId();
801
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
802
+ if (render) render.with(_univerjs_sheets_ui.ISheetSelectionRenderService).transparentSelection();
803
+ return this;
804
+ }
805
+ showSelection() {
806
+ const unitId = this._workbook.getUnitId();
807
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
808
+ if (render) render.with(_univerjs_sheets_ui.ISheetSelectionRenderService).showSelection();
809
+ return this;
810
+ }
811
+ };
812
+ _univerjs_sheets_facade.FWorkbook.extend(FWorkbookSheetsUIMixin);
813
+
814
+ //#endregion
815
+ //#region src/facade/f-worksheet.ts
816
+ var FWorksheetUIMixin = class extends _univerjs_sheets_facade.FWorksheet {
817
+ refreshCanvas() {
818
+ const renderManagerService = this._injector.get(_univerjs_engine_render.IRenderManagerService);
819
+ const unitId = this._fWorkbook.id;
820
+ const render = renderManagerService.getRenderById(unitId);
821
+ if (!render) throw new Error(`Render Unit with unitId ${unitId} not found`);
822
+ render.with(_univerjs_sheets_ui.SheetSkeletonManagerService).reCalculate();
823
+ render.components.forEach((component) => {
824
+ var _component$makeDirty;
825
+ (_component$makeDirty = component.makeDirty) === null || _component$makeDirty === void 0 || _component$makeDirty.call(component);
826
+ });
827
+ return this;
828
+ }
829
+ highlightRanges(ranges, style, primary) {
830
+ const markSelectionService = this._injector.get(_univerjs_sheets_ui.IMarkSelectionService);
831
+ const ids = [];
832
+ for (const range of ranges) {
833
+ const iRange = range.getRange();
834
+ const id = markSelectionService.addShapeWithNoFresh({
835
+ range: iRange,
836
+ style,
837
+ primary
838
+ });
839
+ if (id) ids.push(id);
840
+ }
841
+ markSelectionService.refreshShapes();
842
+ if (ids.length === 0) throw new Error("Failed to highlight current range");
843
+ return (0, _univerjs_core.toDisposable)(() => {
844
+ ids.forEach((id) => {
845
+ markSelectionService.removeShape(id);
846
+ });
847
+ });
848
+ }
849
+ zoom(zoomRatio) {
850
+ const commandService = this._injector.get(_univerjs_core.ICommandService);
851
+ const _zoomRatio = Math.min(Math.max(zoomRatio, .1), 4);
852
+ commandService.executeCommand(_univerjs_sheets_ui.SetZoomRatioCommand.id, {
853
+ unitId: this._workbook.getUnitId(),
854
+ subUnitId: this._worksheet.getSheetId(),
855
+ zoomRatio: _zoomRatio
856
+ });
857
+ return this;
858
+ }
859
+ getZoom() {
860
+ return this._worksheet.getZoomRatio();
861
+ }
862
+ getVisibleRange() {
863
+ const unitId = this._workbook.getUnitId();
864
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
865
+ if (!render) return null;
866
+ const sk = render.with(_univerjs_sheets_ui.SheetSkeletonManagerService).getCurrentSkeleton();
867
+ if (!sk) return null;
868
+ return sk.getVisibleRangeByViewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN);
869
+ }
870
+ getVisibleRangesOfAllViewports() {
871
+ const unitId = this._workbook.getUnitId();
872
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
873
+ if (!render) return null;
874
+ const sk = render.with(_univerjs_sheets_ui.SheetSkeletonManagerService).getCurrentSkeleton();
875
+ if (!sk) return null;
876
+ return sk.getVisibleRanges();
877
+ }
878
+ scrollToCell(row, column, duration) {
879
+ const unitId = this._workbook.getUnitId();
880
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
881
+ if (render) (render === null || render === void 0 ? void 0 : render.with(_univerjs_sheets_ui.SheetsScrollRenderController)).scrollToCell(row, column, duration);
882
+ return this;
883
+ }
884
+ getScrollState() {
885
+ const emptyScrollState = {
886
+ offsetX: 0,
887
+ offsetY: 0,
888
+ sheetViewStartColumn: 0,
889
+ sheetViewStartRow: 0
890
+ };
891
+ const unitId = this._workbook.getUnitId();
892
+ const sheetId = this._worksheet.getSheetId();
893
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
894
+ if (!render) return emptyScrollState;
895
+ return render.with(_univerjs_sheets_ui.SheetScrollManagerService).getScrollStateByParam({
896
+ unitId,
897
+ sheetId
898
+ }) || emptyScrollState;
899
+ }
900
+ onScroll(callback) {
901
+ var _renderManagerService;
902
+ const unitId = this._workbook.getUnitId();
903
+ const scrollManagerService = (_renderManagerService = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId)) === null || _renderManagerService === void 0 ? void 0 : _renderManagerService.with(_univerjs_sheets_ui.SheetScrollManagerService);
904
+ if (scrollManagerService) return (0, _univerjs_core.toDisposable)(scrollManagerService.validViewportScrollInfo$.subscribe((params) => {
905
+ callback(params);
906
+ }));
907
+ return (0, _univerjs_core.toDisposable)(() => {});
908
+ }
909
+ getSkeleton() {
910
+ var _this$_injector$get$g;
911
+ const service = (_this$_injector$get$g = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(this._workbook.getUnitId())) === null || _this$_injector$get$g === void 0 ? void 0 : _this$_injector$get$g.with(_univerjs_sheets_ui.SheetSkeletonManagerService);
912
+ return service === null || service === void 0 ? void 0 : service.getSkeleton(this._worksheet.getSheetId());
913
+ }
914
+ autoResizeColumn(columnPosition) {
915
+ return this.autoResizeColumns(columnPosition, 1);
916
+ }
917
+ autoResizeColumns(startColumn, numColumns) {
918
+ const unitId = this._workbook.getUnitId();
919
+ const subUnitId = this._worksheet.getSheetId();
920
+ const ranges = [{
921
+ startColumn,
922
+ endColumn: startColumn + numColumns - 1,
923
+ startRow: 0,
924
+ endRow: this._worksheet.getRowCount() - 1
925
+ }];
926
+ this._commandService.syncExecuteCommand(_univerjs_sheets_ui.SetWorksheetColAutoWidthCommand.id, {
927
+ unitId,
928
+ subUnitId,
929
+ ranges
930
+ });
931
+ return this;
932
+ }
933
+ setColumnAutoWidth(columnPosition, numColumn) {
934
+ return this.autoResizeColumns(columnPosition, numColumn);
935
+ }
936
+ autoResizeRows(startRow, numRows) {
937
+ const unitId = this._workbook.getUnitId();
938
+ const subUnitId = this._worksheet.getSheetId();
939
+ const ranges = [{
940
+ startRow,
941
+ endRow: startRow + numRows - 1,
942
+ startColumn: 0,
943
+ endColumn: this._worksheet.getColumnCount() - 1
944
+ }];
945
+ this._commandService.syncExecuteCommand(_univerjs_sheets.SetWorksheetRowIsAutoHeightCommand.id, {
946
+ unitId,
947
+ subUnitId,
948
+ ranges
949
+ });
950
+ return this;
951
+ }
952
+ customizeColumnHeader(cfg) {
953
+ var _cfg$headerStyle;
954
+ const unitId = this._workbook.getUnitId();
955
+ const subUnitId = this._worksheet.getSheetId();
956
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
957
+ if (render && ((_cfg$headerStyle = cfg.headerStyle) === null || _cfg$headerStyle === void 0 ? void 0 : _cfg$headerStyle.size)) {
958
+ var _cfg$headerStyle2;
959
+ render.with(_univerjs_sheets_ui.SheetSkeletonManagerService).setColumnHeaderSize(render, subUnitId, (_cfg$headerStyle2 = cfg.headerStyle) === null || _cfg$headerStyle2 === void 0 ? void 0 : _cfg$headerStyle2.size);
960
+ }
961
+ this._getSheetRenderComponent(unitId, _univerjs_sheets_ui.SHEET_VIEW_KEY.COLUMN).setCustomHeader(cfg, subUnitId);
962
+ }
963
+ customizeRowHeader(cfg) {
964
+ var _cfg$headerStyle3;
965
+ const unitId = this._workbook.getUnitId();
966
+ const subUnitId = this._worksheet.getSheetId();
967
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
968
+ if (render && ((_cfg$headerStyle3 = cfg.headerStyle) === null || _cfg$headerStyle3 === void 0 ? void 0 : _cfg$headerStyle3.size)) {
969
+ var _cfg$headerStyle4;
970
+ render.with(_univerjs_sheets_ui.SheetSkeletonManagerService).setRowHeaderSize(render, subUnitId, (_cfg$headerStyle4 = cfg.headerStyle) === null || _cfg$headerStyle4 === void 0 ? void 0 : _cfg$headerStyle4.size);
971
+ }
972
+ this._getSheetRenderComponent(unitId, _univerjs_sheets_ui.SHEET_VIEW_KEY.ROW).setCustomHeader(cfg, subUnitId);
973
+ }
974
+ setColumnHeaderHeight(height) {
975
+ const unitId = this._workbook.getUnitId();
976
+ const subUnitId = this._worksheet.getSheetId();
977
+ this._commandService.executeCommand(_univerjs_sheets_ui.SetColumnHeaderHeightCommand.id, {
978
+ unitId,
979
+ subUnitId,
980
+ size: height
981
+ });
982
+ return this;
983
+ }
984
+ setRowHeaderWidth(width) {
985
+ const unitId = this._workbook.getUnitId();
986
+ const subUnitId = this._worksheet.getSheetId();
987
+ this._commandService.executeCommand(_univerjs_sheets_ui.SetRowHeaderWidthCommand.id, {
988
+ unitId,
989
+ subUnitId,
990
+ size: width
991
+ });
992
+ return this;
993
+ }
994
+ /**
995
+ * Get sheet render component from render by unitId and view key.
996
+ * @private
997
+ * @param {string} unitId The unit id of the spreadsheet.
998
+ * @param {SHEET_VIEW_KEY} viewKey The view key of the spreadsheet.
999
+ * @returns {Nullable<RenderComponentType>} The render component.
1000
+ */
1001
+ _getSheetRenderComponent(unitId, viewKey) {
1002
+ const render = this._injector.get(_univerjs_engine_render.IRenderManagerService).getRenderById(unitId);
1003
+ if (!render) throw new Error(`Render Unit with unitId ${unitId} not found`);
1004
+ const { components } = render;
1005
+ const renderComponent = components.get(viewKey);
1006
+ if (!renderComponent) throw new Error("Render component not found");
1007
+ return renderComponent;
1008
+ }
1009
+ };
1010
+ _univerjs_sheets_facade.FWorksheet.extend(FWorksheetUIMixin);
1011
+
1012
+ //#endregion
1013
+ //#region src/facade/f-workbook-permission.ts
1014
+ /**
1015
+ * Copyright 2023-present DreamNum Co., Ltd.
1016
+ *
1017
+ * Licensed under the Apache License, Version 2.0 (the "License");
1018
+ * you may not use this file except in compliance with the License.
1019
+ * You may obtain a copy of the License at
1020
+ *
1021
+ * http://www.apache.org/licenses/LICENSE-2.0
1022
+ *
1023
+ * Unless required by applicable law or agreed to in writing, software
1024
+ * distributed under the License is distributed on an "AS IS" BASIS,
1025
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1026
+ * See the License for the specific language governing permissions and
1027
+ * limitations under the License.
1028
+ */
1029
+ var FWorkbookPermissionSheetsUIMixin = class extends _univerjs_sheets_facade.FWorkbookPermission {
1030
+ setPermissionDialogVisible(visible) {
1031
+ this._permissionService.setShowComponents(visible);
1032
+ }
1033
+ };
1034
+ _univerjs_sheets_facade.FWorkbookPermission.extend(FWorkbookPermissionSheetsUIMixin);
1035
+
1036
+ //#endregion
1037
+ //#region src/facade/f-sheet-hooks.ts
1038
+ var FSheetHooksUIMixin = class extends _univerjs_sheets_facade.FSheetHooks {
1039
+ onCellPointerMove(callback) {
1040
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.HoverManagerService).currentPosition$.subscribe(callback));
1041
+ }
1042
+ onCellPointerOver(callback) {
1043
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.HoverManagerService).currentCell$.subscribe(callback));
1044
+ }
1045
+ onCellDragOver(callback) {
1046
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.DragManagerService).currentCell$.subscribe(callback));
1047
+ }
1048
+ onCellDrop(callback) {
1049
+ return (0, _univerjs_core.toDisposable)(this._injector.get(_univerjs_sheets_ui.DragManagerService).endCell$.subscribe(callback));
1050
+ }
1051
+ onCellRender(customRender, effect = _univerjs_core.InterceptorEffectEnum.Style, priority = _univerjs_sheets.InterceptCellContentPriority.DATA_VALIDATION) {
1052
+ return this._injector.get(_univerjs_sheets.SheetInterceptorService).intercept(_univerjs_sheets.INTERCEPTOR_POINT.CELL_CONTENT, {
1053
+ effect,
1054
+ handler: (cell, pos, next) => {
1055
+ if (!cell) return next(cell);
1056
+ if (!cell.customRender && customRender) cell.customRender = [...customRender];
1057
+ return next(cell);
1058
+ },
1059
+ priority
1060
+ });
1061
+ }
1062
+ onBeforeCellEdit(callback) {
1063
+ return this._injector.get(_univerjs_core.ICommandService).beforeCommandExecuted((command) => {
1064
+ const params = command.params;
1065
+ if (command.id === _univerjs_sheets_ui.SetCellEditVisibleOperation.id && params.visible) callback(params);
1066
+ });
1067
+ }
1068
+ onAfterCellEdit(callback) {
1069
+ return this._injector.get(_univerjs_core.ICommandService).onCommandExecuted((command) => {
1070
+ const params = command.params;
1071
+ if (command.id === _univerjs_sheets_ui.SetCellEditVisibleOperation.id && !params.visible) callback(params);
1072
+ });
1073
+ }
1074
+ };
1075
+ _univerjs_sheets_facade.FSheetHooks.extend(FSheetHooksUIMixin);
1076
+
1077
+ //#endregion
1078
+ //#region src/facade/f-event.ts
1079
+ var FSheetsUIEventNameMixin = class extends _univerjs_core_facade.FEventName {
1080
+ get BeforeClipboardChange() {
1081
+ return "BeforeClipboardChange";
1082
+ }
1083
+ get ClipboardChanged() {
1084
+ return "ClipboardChanged";
1085
+ }
1086
+ get BeforeClipboardPaste() {
1087
+ return "BeforeClipboardPaste";
1088
+ }
1089
+ get ClipboardPasted() {
1090
+ return "ClipboardPasted";
1091
+ }
1092
+ get BeforeSheetEditStart() {
1093
+ return "BeforeSheetEditStart";
1094
+ }
1095
+ get SheetEditStarted() {
1096
+ return "SheetEditStarted";
1097
+ }
1098
+ get SheetEditChanging() {
1099
+ return "SheetEditChanging";
1100
+ }
1101
+ get BeforeSheetEditEnd() {
1102
+ return "BeforeSheetEditEnd";
1103
+ }
1104
+ get SheetEditEnded() {
1105
+ return "SheetEditEnded";
1106
+ }
1107
+ get CellClicked() {
1108
+ return "CellClicked";
1109
+ }
1110
+ get CellHover() {
1111
+ return "CellHover";
1112
+ }
1113
+ get CellPointerDown() {
1114
+ return "CellPointerDown";
1115
+ }
1116
+ get CellPointerUp() {
1117
+ return "CellPointerUp";
1118
+ }
1119
+ get CellPointerMove() {
1120
+ return "CellPointerMove";
1121
+ }
1122
+ get DragOver() {
1123
+ return "DragOver";
1124
+ }
1125
+ get Drop() {
1126
+ return "Drop";
1127
+ }
1128
+ get Scroll() {
1129
+ return "Scroll";
1130
+ }
1131
+ get SelectionMoveStart() {
1132
+ return "SelectionMoveStart";
1133
+ }
1134
+ get SelectionChanged() {
1135
+ return "SelectionChanged";
1136
+ }
1137
+ get SelectionMoving() {
1138
+ return "SelectionMoving";
1139
+ }
1140
+ get SelectionMoveEnd() {
1141
+ return "SelectionMoveEnd";
1142
+ }
1143
+ get RowHeaderClick() {
1144
+ return "RowHeaderClick";
1145
+ }
1146
+ get RowHeaderPointerDown() {
1147
+ return "RowHeaderPointerDown";
1148
+ }
1149
+ get RowHeaderPointerUp() {
1150
+ return "RowHeaderPointerUp";
1151
+ }
1152
+ get RowHeaderHover() {
1153
+ return "RowHeaderHover";
1154
+ }
1155
+ get ColumnHeaderClick() {
1156
+ return "ColumnHeaderClick";
1157
+ }
1158
+ get ColumnHeaderPointerDown() {
1159
+ return "ColumnHeaderPointerDown";
1160
+ }
1161
+ get ColumnHeaderPointerUp() {
1162
+ return "ColumnHeaderPointerUp";
1163
+ }
1164
+ get ColumnHeaderHover() {
1165
+ return "ColumnHeaderHover";
1166
+ }
1167
+ get SheetSkeletonChanged() {
1168
+ return "SheetSkeletonChanged";
1169
+ }
1170
+ get BeforeSheetZoomChange() {
1171
+ return "BeforeSheetZoomChange";
1172
+ }
1173
+ get SheetZoomChanged() {
1174
+ return "SheetZoomChanged";
1175
+ }
1176
+ };
1177
+ _univerjs_core_facade.FEventName.extend(FSheetsUIEventNameMixin);
1178
+
1179
+ //#endregion
1180
+ //#region src/facade/f-enum.ts
1181
+ /**
1182
+ * Copyright 2023-present DreamNum Co., Ltd.
1183
+ *
1184
+ * Licensed under the Apache License, Version 2.0 (the "License");
1185
+ * you may not use this file except in compliance with the License.
1186
+ * You may obtain a copy of the License at
1187
+ *
1188
+ * http://www.apache.org/licenses/LICENSE-2.0
1189
+ *
1190
+ * Unless required by applicable law or agreed to in writing, software
1191
+ * distributed under the License is distributed on an "AS IS" BASIS,
1192
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1193
+ * See the License for the specific language governing permissions and
1194
+ * limitations under the License.
1195
+ */
1196
+ var FSheetsUIEnumMixin = class extends _univerjs_core_facade.FEnum {
1197
+ get SHEET_VIEWPORT_KEY() {
1198
+ return _univerjs_engine_render.SHEET_VIEWPORT_KEY;
1199
+ }
1200
+ };
1201
+ _univerjs_core_facade.FEnum.extend(FSheetsUIEnumMixin);
1202
+
1203
+ //#endregion
1204
+ //#region src/facade/f-range.ts
1205
+ var FRangeSheetsUIMixin = class extends _univerjs_sheets_facade.FRange {
1206
+ getCell() {
1207
+ var _render$with$getSkele;
1208
+ const renderManagerService = this._injector.get(_univerjs_engine_render.IRenderManagerService);
1209
+ const logService = this._injector.get(_univerjs_core.ILogService);
1210
+ const unitId = this._workbook.getUnitId();
1211
+ const subUnitId = this._worksheet.getSheetId();
1212
+ const render = renderManagerService.getRenderById(unitId);
1213
+ const skeleton = render === null || render === void 0 || (_render$with$getSkele = render.with(_univerjs_sheets_ui.SheetSkeletonManagerService).getSkeletonParam(subUnitId)) === null || _render$with$getSkele === void 0 ? void 0 : _render$with$getSkele.skeleton;
1214
+ if (!skeleton) {
1215
+ logService.error("[Facade]: `FRange.getCell` can only be called in current worksheet");
1216
+ throw new Error("`FRange.getCell` can only be called in current worksheet");
1217
+ }
1218
+ return skeleton.getCellWithCoordByIndex(this._range.startRow, this._range.startColumn);
1219
+ }
1220
+ getCellRect() {
1221
+ const { startX: x, startY: y, endX: x2, endY: y2 } = this.getCell();
1222
+ const data = {
1223
+ x,
1224
+ y,
1225
+ width: x2 - x,
1226
+ height: y2 - y,
1227
+ top: y,
1228
+ left: x,
1229
+ bottom: y2,
1230
+ right: x2
1231
+ };
1232
+ return {
1233
+ ...data,
1234
+ toJSON: () => JSON.stringify(data)
1235
+ };
1236
+ }
1237
+ generateHTML() {
1238
+ var _copyContent$html;
1239
+ const copyContent = this._injector.get(_univerjs_sheets_ui.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(), this._worksheet.getSheetId(), this._range);
1240
+ return (_copyContent$html = copyContent === null || copyContent === void 0 ? void 0 : copyContent.html) !== null && _copyContent$html !== void 0 ? _copyContent$html : "";
1241
+ }
1242
+ attachPopup(popup) {
1243
+ var _popup$direction, _popup$extraProps, _popup$offset;
1244
+ popup.direction = (_popup$direction = popup.direction) !== null && _popup$direction !== void 0 ? _popup$direction : "horizontal";
1245
+ popup.extraProps = (_popup$extraProps = popup.extraProps) !== null && _popup$extraProps !== void 0 ? _popup$extraProps : {};
1246
+ popup.offset = (_popup$offset = popup.offset) !== null && _popup$offset !== void 0 ? _popup$offset : [0, 0];
1247
+ const { key, disposableCollection } = transformComponentKey(popup, this._injector.get(_univerjs_ui.ComponentManager));
1248
+ const disposePopup = this._injector.get(_univerjs_sheets_ui.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow, this._range.startColumn, {
1249
+ ...popup,
1250
+ componentKey: key
1251
+ }, this.getUnitId(), this._worksheet.getSheetId());
1252
+ if (disposePopup) {
1253
+ disposableCollection.add(disposePopup);
1254
+ return disposableCollection;
1255
+ }
1256
+ disposableCollection.dispose();
1257
+ return null;
1258
+ }
1259
+ attachAlertPopup(alert) {
1260
+ const cellAlertService = this._injector.get(_univerjs_sheets_ui.CellAlertManagerService);
1261
+ const location = {
1262
+ workbook: this._workbook,
1263
+ worksheet: this._worksheet,
1264
+ row: this._range.startRow,
1265
+ col: this._range.startColumn,
1266
+ unitId: this.getUnitId(),
1267
+ subUnitId: this._worksheet.getSheetId()
1268
+ };
1269
+ cellAlertService.showAlert({
1270
+ ...alert,
1271
+ location
1272
+ });
1273
+ return { dispose: () => {
1274
+ cellAlertService.removeAlert(alert.key);
1275
+ } };
1276
+ }
1277
+ /**
1278
+ * attachDOMPopup
1279
+ * @param popup
1280
+ * @returns {IDisposable} disposable
1281
+ let sheet = univerAPI.getActiveWorkbook().getActiveSheet();
1282
+ let range = sheet.getRange(2, 2, 3, 3);
1283
+ univerAPI.getActiveWorkbook().setActiveRange(range);
1284
+ let disposable = range.attachDOMPopup({
1285
+ componentKey: 'univer.sheet.single-dom-popup',
1286
+ extraProps: { alert: { type: 0, title: 'This is an Info', message: 'This is an info message' } },
1287
+ });
1288
+ */
1289
+ attachRangePopup(popup) {
1290
+ var _popup$direction2, _popup$extraProps2, _popup$offset2;
1291
+ popup.direction = (_popup$direction2 = popup.direction) !== null && _popup$direction2 !== void 0 ? _popup$direction2 : "top-center";
1292
+ popup.extraProps = (_popup$extraProps2 = popup.extraProps) !== null && _popup$extraProps2 !== void 0 ? _popup$extraProps2 : {};
1293
+ popup.offset = (_popup$offset2 = popup.offset) !== null && _popup$offset2 !== void 0 ? _popup$offset2 : [0, 0];
1294
+ const { key, disposableCollection } = transformComponentKey(popup, this._injector.get(_univerjs_ui.ComponentManager));
1295
+ const disposePopup = this._injector.get(_univerjs_sheets_ui.SheetCanvasPopManagerService).attachRangePopup(this._range, {
1296
+ ...popup,
1297
+ componentKey: key
1298
+ }, this.getUnitId(), this._worksheet.getSheetId());
1299
+ if (disposePopup) {
1300
+ disposableCollection.add(disposePopup);
1301
+ return disposableCollection;
1302
+ }
1303
+ disposableCollection.dispose();
1304
+ return null;
1305
+ }
1306
+ highlight(style, primary) {
1307
+ const markSelectionService = this._injector.get(_univerjs_sheets_ui.IMarkSelectionService);
1308
+ const id = markSelectionService.addShape({
1309
+ range: this._range,
1310
+ style,
1311
+ primary
1312
+ });
1313
+ if (!id) throw new Error("Failed to highlight current range");
1314
+ return (0, _univerjs_core.toDisposable)(() => {
1315
+ markSelectionService.removeShape(id);
1316
+ });
1317
+ }
1318
+ showDropdown(param) {
1319
+ return this._injector.get(_univerjs_sheets_ui.ISheetCellDropdownManagerService).showDropdown(param);
1320
+ }
1321
+ };
1322
+ _univerjs_sheets_facade.FRange.extend(FRangeSheetsUIMixin);
1323
+ /**
1324
+ * Transform component key
1325
+ * @param {IFComponentKey} component - The component key to transform.
1326
+ * @param {ComponentManager} componentManager - The component manager to use for registration.
1327
+ * @returns {string} The transformed component key.
1328
+ */
1329
+ function transformComponentKey(component, componentManager) {
1330
+ const { componentKey, isVue3 } = component;
1331
+ let key;
1332
+ const disposableCollection = new _univerjs_core.DisposableCollection();
1333
+ if (typeof componentKey === "string") key = componentKey;
1334
+ else {
1335
+ key = `External_${(0, _univerjs_core.generateRandomId)(6)}`;
1336
+ disposableCollection.add(componentManager.register(key, componentKey, { framework: isVue3 ? "vue3" : "react" }));
1337
+ }
1338
+ return {
1339
+ key,
1340
+ disposableCollection
1341
+ };
1342
+ }
1343
+
1344
+ //#endregion
1345
+ exports.FSheetsUIEnumMixin = FSheetsUIEnumMixin;
1346
+ exports.transformComponentKey = transformComponentKey;