(function(f,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("@univerjs/sheets-ui"),require("@univerjs/sheets/facade"),require("@univerjs/ui"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/docs","@univerjs/engine-render","@univerjs/sheets","@univerjs/sheets-ui","@univerjs/sheets/facade","@univerjs/ui","rxjs"],s):(f=typeof globalThis<"u"?globalThis:f||self,s(f.UniverSheetsUiFacade={},f.UniverCore,f.UniverDocs,f.UniverEngineRender,f.UniverSheets,f.UniverSheetsUi,f.UniverSheetsFacade,f.UniverUi,f.rxjs))})(this,function(f,s,F,E,R,c,I,u,S){"use strict";class N extends s.FUniver{_initSheetUIEvent(e){const r=e.get(s.ICommandService);this.disposeWithMe(r.beforeCommandExecuted(t=>{if(t.id===c.SetCellEditVisibleOperation.id){if(!this._eventListend(this.Event.BeforeSheetEditStart)&&!this._eventListend(this.Event.BeforeSheetEditEnd))return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:a}=i,l=e.get(c.IEditorBridgeService),C=e.get(s.IUniverInstanceService),m=t.params,{visible:v,keycode:g,eventType:b}=m,h=l.getEditLocation();if(v){const _={row:h.row,column:h.column,eventType:b,keycode:g,workbook:o,worksheet:a,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,_),_.cancel)throw new s.CanceledError}else{const _={row:h.row,column:h.column,eventType:b,keycode:g,workbook:o,worksheet:a,isZenEditor:!1,value:s.RichTextValue.create(C.getUnit(s.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:g!==u.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,_),_.cancel)throw new s.CanceledError}}if(t.id===c.SetZoomRatioCommand.id){if(!this._eventListend(this.Event.BeforeSheetZoomChange))return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:a}=i;this.fireEvent(this.Event.BeforeSheetZoomChange,{zoom:t.params.zoomRatio,workbook:o,worksheet:a})}})),this.disposeWithMe(r.onCommandExecuted(t=>{if(t.id===c.SetCellEditVisibleOperation.id){if(!this._eventListend(this.Event.SheetEditStarted)&&!this._eventListend(this.Event.SheetEditEnded))return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:a}=i,l=e.get(c.IEditorBridgeService),C=t.params,{visible:m,keycode:v,eventType:g}=C,b=l.getEditLocation();if(m){const h={row:b.row,column:b.column,eventType:g,keycode:v,workbook:o,worksheet:a,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,h)}else{const h={row:b.row,column:b.column,eventType:g,keycode:v,workbook:o,worksheet:a,isZenEditor:!1,isConfirm:v!==u.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,h)}}if(t.id===F.RichTextEditingMutation.id){if(!this._eventListend(this.Event.SheetEditChanging))return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:a}=i,l=e.get(c.IEditorBridgeService),C=e.get(s.IUniverInstanceService),m=t.params;if(!l.isVisible().visible)return;const{unitId:v}=m;if(v===s.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const{row:g,column:b}=l.getEditLocation(),h={workbook:o,worksheet:a,row:g,column:b,value:s.RichTextValue.create(C.getUnit(s.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,h)}}if(t.id===c.SetZoomRatioCommand.id){if(!this._eventListend(this.Event.SheetZoomChanged))return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:a}=i;this.fireEvent(this.Event.SheetZoomChanged,{zoom:a.getZoom(),workbook:o,worksheet:a})}})),this._initObserverListener(e)}_initObserverListener(e){const t=e.get(s.IUniverInstanceService).getFocusedUnit(),i=t==null?void 0:t.getUnitId(),o=e.get(E.IRenderManagerService);if(i){const v=e.get(s.LifecycleService),g=new s.DisposableCollection;this.disposeWithMe(v.lifecycle$.subscribe(b=>{var M,D,p,w,k,T,L,B,x,A,O,U,W,$,j;if(b!!n)).subscribe(n=>{if(!this._eventListend(this.Event.CellClicked))return;const d=this.getSheetTarget(n.location.unitId,n.location.subUnitId);d&&this.fireEvent(this.Event.CellClicked,{...d,...n,row:n.location.row,column:n.location.col})})),g.add((D=h.currentRichText$)==null?void 0:D.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.CellHover))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.CellHover,{...d,...n,row:n.row,column:n.col})})),g.add((p=h.currentPointerDownCell$)==null?void 0:p.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.CellPointerDown))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.CellPointerDown,{...d,...n,row:n.row,column:n.col})})),g.add((w=h.currentPointerUpCell$)==null?void 0:w.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.CellPointerUp))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.CellPointerUp,{...d,...n,row:n.row,column:n.col})})),g.add((k=h.currentCellPosWithEvent$)==null?void 0:k.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.CellPointerMove))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.CellPointerMove,{...d,...n,row:n.row,column:n.col})})),g.add((T=_.currentCell$)==null?void 0:T.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.DragOver))return;const d=this.getSheetTarget(n.location.unitId,n.location.subUnitId);d&&this.fireEvent(this.Event.DragOver,{...d,...n,row:n.location.row,column:n.location.col})})),g.add((L=_.endCell$)==null?void 0:L.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.Drop))return;const d=this.getSheetTarget(n.location.unitId,n.location.subUnitId);d&&this.fireEvent(this.Event.Drop,{...d,...n,row:n.location.row,column:n.location.col})})),g.add((B=h.currentRowHeaderClick$)==null?void 0:B.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.RowHeaderClick))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.RowHeaderClick,{...d,row:n.index})})),g.add((x=h.currentRowHeaderPointerDown$)==null?void 0:x.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.RowHeaderPointerDown))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.RowHeaderPointerDown,{...d,row:n.index})})),g.add((A=h.currentRowHeaderPointerUp$)==null?void 0:A.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.RowHeaderPointerUp))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.RowHeaderPointerUp,{...d,row:n.index})})),g.add((O=h.currentHoveredRowHeader$)==null?void 0:O.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.RowHeaderHover))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.RowHeaderHover,{...d,row:n.index})})),g.add((U=h.currentColHeaderClick$)==null?void 0:U.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.ColumnHeaderClick))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.ColumnHeaderClick,{...d,column:n.index})})),g.add((W=h.currentColHeaderPointerDown$)==null?void 0:W.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.ColumnHeaderPointerDown))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.ColumnHeaderPointerDown,{...d,column:n.index})})),g.add(($=h.currentColHeaderPointerUp$)==null?void 0:$.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.ColumnHeaderPointerUp))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.ColumnHeaderPointerUp,{...d,column:n.index})})),g.add((j=h.currentHoveredColHeader$)==null?void 0:j.pipe(S.filter(n=>!!n)).subscribe(n=>{if(!this._eventListend(this.Event.ColumnHeaderHover))return;const d=this.getSheetTarget(n.unitId,n.subUnitId);d&&this.fireEvent(this.Event.ColumnHeaderHover,{...d,column:n.index})})))})),this.disposeWithMe(g)}const a=new Map;let l;const C=e.get(s.LifecycleService),m=S.combineLatest([o.created$,C.lifecycle$]);this.disposeWithMe(m.subscribe(([v,g])=>{var D;if(v.type===s.UniverInstanceType.UNIVER_SHEET&&(l=v),g<=s.LifecycleStages.Rendered)return;const b=new s.DisposableCollection;if(!l)return;const h=this.getWorkbook(l.unitId);if(!h)return;a.get(l.unitId)&&((D=a.get(l.unitId))==null||D.dispose()),a.set(l.unitId,b);const _=l.with(c.SheetScrollManagerService);b.add(_.validViewportScrollInfo$.subscribe(p=>{p&&this._eventListend(this.Event.Scroll)&&this.fireEvent(this.Event.Scroll,{workbook:h,worksheet:h.getActiveSheet(),...p})}));const M=l.with(R.SheetsSelectionsService);b.add(M.selectionMoveStart$.subscribe(p=>{var w;this._eventListend(this.Event.SelectionMoveStart)&&this.fireEvent(this.Event.SelectionMoveStart,{workbook:h,worksheet:h.getActiveSheet(),selections:(w=p==null?void 0:p.map(k=>k.range))!=null?w:[]})})),b.add(M.selectionMoving$.subscribe(p=>{var w;this._eventListend(this.Event.SelectionMoving)&&this.fireEvent(this.Event.SelectionMoving,{workbook:h,worksheet:h.getActiveSheet(),selections:(w=p==null?void 0:p.map(k=>k.range))!=null?w:[]})})),b.add(M.selectionMoveEnd$.subscribe(p=>{var w;this._eventListend(this.Event.SelectionMoveEnd)&&this.fireEvent(this.Event.SelectionMoveEnd,{workbook:h,worksheet:h.getActiveSheet(),selections:(w=p==null?void 0:p.map(k=>k.range))!=null?w:[]})})),b.add(M.selectionChanged$.subscribe(p=>{var w;this._eventListend(this.Event.SelectionChanged)&&this.fireEvent(this.Event.SelectionChanged,{workbook:h,worksheet:h.getActiveSheet(),selections:(w=p==null?void 0:p.map(k=>k.range))!=null?w:[]})})),l=null,this.disposeWithMe(b)})),this.disposeWithMe(o.disposed$.subscribe(v=>{var g;(g=a.get(v))==null||g.dispose(),a.delete(v)})),this.disposeWithMe(()=>{a.forEach(v=>{v.dispose()})})}_initialize(e){this._initSheetUIEvent(e);const r=e.get(s.ICommandService);this.disposeWithMe(r.beforeCommandExecuted(t=>{switch(t.id){case u.CopyCommand.id:case u.CutCommand.id:this._beforeClipboardChange();break;case c.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(t.params);break}})),this.disposeWithMe(r.onCommandExecuted(t=>{if(R.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(t.id)>-1){if(!this._eventListend(this.Event.SheetSkeletonChanged))return;const i=this.getActiveSheet();if(!i)return;const o=R.getSkeletonChangedEffectedRange(t).map(a=>{var l,C;return(C=(l=this.getWorkbook(a.unitId))==null?void 0:l.getSheetBySheetId(a.subUnitId))==null?void 0:C.getRange(a.range)}).filter(Boolean);if(!o.length)return;this.fireEvent(this.Event.SheetSkeletonChanged,{workbook:i.workbook,worksheet:i.worksheet,payload:t,skeleton:i.worksheet.getSkeleton(),effectedRanges:o});return}switch(t.id){case u.CopyCommand.id:case u.CutCommand.id:this._clipboardChanged();break;case c.SheetPasteShortKeyCommand.id:this._clipboardPaste();break;case u.PasteCommand.id:this._clipboardPasteAsync();break}})),this.disposeWithMe(r.beforeCommandExecuted(async t=>{switch(t.id){case u.PasteCommand.id:await this._beforeClipboardPasteAsync();break}}))}_generateClipboardCopyParam(){const e=this.getActiveWorkbook(),r=e==null?void 0:e.getActiveSheet(),t=e==null?void 0:e.getActiveRange();if(!e||!r||!t)return;const o=this._injector.get(c.ISheetClipboardService).generateCopyContent(e.getId(),r.getSheetId(),t.getRange());if(!o)return;const{html:a,plain:l}=o;return{workbook:e,worksheet:r,text:l,html:a,fromSheet:r,fromRange:t}}_beforeClipboardChange(){if(!this.hasEventCallback(this.Event.BeforeClipboardChange))return;const e=this._generateClipboardCopyParam();if(e&&(this.fireEvent(this.Event.BeforeClipboardChange,e),e.cancel))throw new Error("Before clipboard change is canceled")}_clipboardChanged(){if(!this.hasEventCallback(this.Event.ClipboardChanged))return;const e=this._generateClipboardCopyParam();if(e&&(this.fireEvent(this.Event.ClipboardChanged,e),e.cancel))throw new Error("Clipboard changed is canceled")}_generateClipboardPasteParam(e){if(!e)return;const{htmlContent:r,textContent:t}=e,i=this.getActiveWorkbook(),o=i==null?void 0:i.getActiveSheet();return!i||!o?void 0:{workbook:i,worksheet:o,text:t,html:r}}async _generateClipboardPasteParamAsync(){const e=this.getActiveWorkbook(),r=e==null?void 0:e.getActiveSheet();if(!e||!r)return;const o=(await this._injector.get(u.IClipboardInterfaceService).read())[0];let a;if(o){const l=o.types,C=l.indexOf(u.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await o.getType(u.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(v=>v&&v.text()):"",m=l.indexOf(u.HTML_CLIPBOARD_MIME_TYPE)!==-1?await o.getType(u.HTML_CLIPBOARD_MIME_TYPE).then(v=>v&&v.text()):"";a={workbook:e,worksheet:r,text:C,html:m}}return a}_beforeClipboardPaste(e){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;const r=this._generateClipboardPasteParam(e);if(r&&(this.fireEvent(this.Event.BeforeClipboardPaste,r),r.cancel))throw new Error("Before clipboard paste is canceled")}_clipboardPaste(e){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;const r=this._generateClipboardPasteParam(e);if(r&&(this.fireEvent(this.Event.BeforeClipboardPaste,r),r.cancel))throw new Error("Clipboard pasted is canceled")}async _beforeClipboardPasteAsync(){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;if(!u.supportClipboardAPI()){this._injector.get(s.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.BeforeClipboardPaste,e),e.cancel))throw new Error("Before clipboard paste is canceled")}async _clipboardPasteAsync(){if(!this.hasEventCallback(this.Event.ClipboardPasted))return;if(!u.supportClipboardAPI()){this._injector.get(s.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.ClipboardPasted,e),e.cancel))throw new Error("Clipboard pasted is canceled")}customizeColumnHeader(e){const r=this.getActiveWorkbook();if(!r){console.error("WorkBook not exist");return}const t=r==null?void 0:r.getId();this._getSheetRenderComponent(t,c.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){const r=this.getActiveWorkbook();if(!r){console.error("WorkBook not exist");return}const t=r==null?void 0:r.getId();this._getSheetRenderComponent(t,c.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,c.SHEET_VIEW_KEY.ROW),i=t.register(...r);return s.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,c.SHEET_VIEW_KEY.COLUMN),i=t.register(...r);return s.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetMainExtension(e,...r){const t=this._getSheetRenderComponent(e,c.SHEET_VIEW_KEY.MAIN),i=t.register(...r);return s.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}_getSheetRenderComponent(e,r){const i=this._injector.get(E.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,a=o.get(r);if(!a)throw new Error("Render component not found");return a}getSheetHooks(){return this._injector.createInstance(I.FSheetHooks)}}s.FUniver.extend(N);class V extends I.FWorkbook{openSiderbar(e){return this._logDeprecation("openSiderbar"),this._injector.get(u.ISidebarService).open(e)}openDialog(e){this._logDeprecation("openDialog");const t=this._injector.get(u.IDialogService).open({...e,onClose:()=>{t.dispose()}});return t}_logDeprecation(e){this._injector.get(s.ILogService).warn("[FWorkbook]",`${e} is deprecated. Please use the function of the same name on "FUniver".`)}generateCellParams(e){const r=this.getActiveSheet();return{row:e.row,column:e.col,workbook:this,worksheet:r}}onCellClick(e){const r=this._injector.get(c.HoverManagerService);return s.toDisposable(r.currentClickedCell$.pipe(S.filter(t=>!!t)).subscribe(t=>{e(t)}))}onCellHover(e){const r=this._injector.get(c.HoverManagerService);return s.toDisposable(r.currentRichText$.pipe(S.filter(t=>!!t)).subscribe(e))}onCellPointerDown(e){const r=this._injector.get(c.HoverManagerService);return s.toDisposable(r.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const r=this._injector.get(c.HoverManagerService);return s.toDisposable(r.currentPointerUpCell$.subscribe(e))}onCellPointerMove(e){const r=this._injector.get(c.HoverManagerService);return s.toDisposable(r.currentCellPosWithEvent$.pipe(S.filter(t=>!!t)).subscribe(t=>{e(t,t.event)}))}onDragOver(e){const r=this._injector.get(c.DragManagerService);return s.toDisposable(r.currentCell$.pipe(S.filter(t=>!!t)).subscribe(t=>{e(t)}))}onDrop(e){const r=this._injector.get(c.DragManagerService);return s.toDisposable(r.endCell$.pipe(S.filter(t=>!!t)).subscribe(t=>{e(t)}))}startEditing(){return this._injector.get(s.ICommandService).syncExecuteCommand(c.SetCellEditVisibleOperation.id,{eventType:E.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){return this._injector.get(s.ICommandService).syncExecuteCommand(c.SetCellEditVisibleOperation.id,{eventType:E.DeviceInputEventType.Keyboard,keycode:e?u.KeyCode.ENTER:u.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await s.awaitTime(0),!0}endEditingAsync(e=!0){return this.endEditing(e)}getScrollStateBySheetId(e){const r=this._workbook.getUnitId(),i=this._injector.get(E.IRenderManagerService).getRenderById(r);return i?i.with(c.SheetScrollManagerService).getScrollStateByParam({unitId:r,sheetId:e}):null}disableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(E.IRenderManagerService).getRenderById(e);return t&&t.with(c.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(E.IRenderManagerService).getRenderById(e);return t&&t.with(c.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(E.IRenderManagerService).getRenderById(e);return t&&t.with(c.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(E.IRenderManagerService).getRenderById(e);return t&&t.with(c.ISheetSelectionRenderService).showSelection(),this}}I.FWorkbook.extend(V);class K extends I.FWorksheet{refreshCanvas(){const e=this._injector.get(E.IRenderManagerService),r=this._fWorkbook.id,t=e.getRenderById(r);if(!t)throw new Error(`Render Unit with unitId ${r} not found`);t.with(c.SheetSkeletonManagerService).reCalculate();const i=t.mainComponent;if(!i)throw new Error("Main component not found");return i.makeDirty(),this}zoom(e){return this._injector.get(s.ICommandService).syncExecuteCommand(c.ChangeZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:e}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const e=this._workbook.getUnitId(),t=this._injector.get(E.IRenderManagerService).getRenderById(e);let i={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!t)return i;const a=t.with(c.SheetSkeletonManagerService).getCurrentSkeleton();if(!a)return i;const l=a==null?void 0:a.getVisibleRanges();if(!l)return i;i=a.getVisibleRangeByViewport(E.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[C,m]of l)E.sheetContentViewportKeys.indexOf(C)!==-1&&(i.startColumn=Math.min(i.startColumn,m.startColumn),i.startRow=Math.min(i.startRow,m.startRow),i.endColumn=Math.max(i.endColumn,m.endColumn),i.endRow=Math.max(i.endRow,m.endRow));return i}scrollToCell(e,r){const t=this._workbook.getUnitId(),o=this._injector.get(E.IRenderManagerService).getRenderById(t);return o&&(o==null?void 0:o.with(c.SheetsScrollRenderController)).scrollToCell(e,r),this}getScrollState(){const e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(E.IRenderManagerService).getRenderById(r);return o&&o.with(c.SheetScrollManagerService).getScrollStateByParam({unitId:r,sheetId:t})||e}onScroll(e){var o;const r=this._workbook.getUnitId(),i=(o=this._injector.get(E.IRenderManagerService).getRenderById(r))==null?void 0:o.with(c.SheetScrollManagerService);if(i){const a=i.validViewportScrollInfo$.subscribe(l=>{e(l)});return s.toDisposable(a)}return s.toDisposable(()=>{})}getSkeleton(){var r,t;const e=(r=this._injector.get(E.IRenderManagerService).getRenderById(this._workbook.getUnitId()))==null?void 0:r.with(c.SheetSkeletonManagerService);return(t=e==null?void 0:e.getWorksheetSkeleton(this._worksheet.getSheetId()))==null?void 0:t.skeleton}setColumnAutoWidth(e,r){const t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startColumn:e,endColumn:e+r-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(c.SetWorksheetColAutoWidthCommand.id,{unitId:t,subUnitId:i,ranges:o}),this}}I.FWorksheet.extend(K);class Y extends I.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}I.FPermission.extend(Y);class Z extends I.FSheetHooks{onCellPointerMove(e){return s.toDisposable(this._injector.get(c.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return s.toDisposable(this._injector.get(c.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return s.toDisposable(this._injector.get(c.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return s.toDisposable(this._injector.get(c.DragManagerService).endCell$.subscribe(e))}onCellRender(e,r=s.InterceptorEffectEnum.Style,t=R.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(R.SheetInterceptorService).intercept(R.INTERCEPTOR_POINT.CELL_CONTENT,{effect:r,handler:(i,o,a)=>a({...i,customRender:[...(i==null?void 0:i.customRender)||[],...e||[]]}),priority:t})}onBeforeCellEdit(e){return this._injector.get(s.ICommandService).beforeCommandExecuted(r=>{const t=r.params;r.id===c.SetCellEditVisibleOperation.id&&t.visible&&e(t)})}onAfterCellEdit(e){return this._injector.get(s.ICommandService).onCommandExecuted(r=>{const t=r.params;r.id===c.SetCellEditVisibleOperation.id&&!t.visible&&e(t)})}}I.FSheetHooks.extend(Z);const y={CellClicked:"CellClicked",CellPointerDown:"CellPointerDown",CellPointerUp:"CellPointerUp",CellPointerMove:"CellPointerMove",CellHover:"CellHover",DragOver:"DragOver",Drop:"Drop",Scroll:"Scroll",SelectionMoveStart:"SelectionMoveStart",SelectionMoving:"SelectionMoving",SelectionMoveEnd:"SelectionMoveEnd",SelectionChanged:"SelectionChanged"};class z extends s.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 y.CellClicked}get CellHover(){return y.CellHover}get CellPointerDown(){return y.CellPointerDown}get CellPointerUp(){return y.CellPointerUp}get CellPointerMove(){return y.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"}}s.FEventName.extend(z);class q extends I.FRange{getCell(){var l;const e=this._injector.get(E.IRenderManagerService),r=this._injector.get(s.ILogService),t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=e.getRenderById(t),a=(l=o==null?void 0:o.with(c.SheetSkeletonManagerService).getWorksheetSkeleton(i))==null?void 0:l.skeleton;if(!a)throw r.error("[Facade]: `FRange.getCell` can only be called in current worksheet"),new Error("`FRange.getCell` can only be called in current worksheet");return a.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:e,startY:r,endX:t,endY:i}=this.getCell(),o={x:e,y:r,width:t-e,height:i-r,top:r,left:e,bottom:i,right:t};return{...o,toJSON:()=>JSON.stringify(o)}}generateHTML(){var r;const e=this._injector.get(c.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(r=e==null?void 0:e.html)!=null?r:""}attachPopup(e){var a,l,C;e.direction=(a=e.direction)!=null?a:"horizontal",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(C=e.offset)!=null?C:[0,0];const{key:r,disposableCollection:t}=H(e,this._injector.get(u.ComponentManager)),o=this._injector.get(c.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:r},this.getUnitId(),this._worksheet.getSheetId());return o?(t.add(o),t):(t.dispose(),null)}attachAlertPopup(e){const r=this._injector.get(c.CellAlertManagerService),t={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return r.showAlert({...e,location:t}),{dispose:()=>{r.removeAlert(e.key)}}}attachRangePopup(e){var a,l,C;e.direction=(a=e.direction)!=null?a:"horizontal",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(C=e.offset)!=null?C:[0,0];const{key:r,disposableCollection:t}=H(e,this._injector.get(u.ComponentManager)),o=this._injector.get(c.SheetCanvasPopManagerService).attachRangePopup(this._range,{...e,componentKey:r},this.getUnitId(),this._worksheet.getSheetId());return o?(t.add(o),t):(t.dispose(),null)}highlight(e,r){const t=this._injector.get(c.IMarkSelectionService),i=t.addShape({range:this._range,style:e,primary:r});if(!i)throw new Error("Failed to highlight current range");return s.toDisposable(()=>{t.removeShape(i)})}}I.FRange.extend(q);function H(P,e){const{componentKey:r,isVue3:t}=P;let i;const o=new s.DisposableCollection;return typeof r=="string"?i=r:(i=`External_${s.generateRandomId(6)}`,o.add(e.register(i,r,{framework:t?"vue3":"react"}))),{key:i,disposableCollection:o}}f.transformComponentKey=H,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});