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