@univerjs/sheets-ui 0.5.3 → 0.5.4

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 (40) hide show
  1. package/lib/cjs/facade.js +1 -1
  2. package/lib/cjs/index.js +30 -28
  3. package/lib/es/facade.js +490 -117
  4. package/lib/es/index.js +10728 -11062
  5. package/lib/index.css +1 -1
  6. package/lib/types/commands/commands/clipboard.command.d.ts +1 -0
  7. package/lib/types/components/hook.d.ts +2 -0
  8. package/lib/types/controllers/clipboard/clipboard.controller.d.ts +4 -2
  9. package/lib/types/controllers/clipboard/const.d.ts +16 -0
  10. package/lib/types/controllers/clipboard/utils.d.ts +63 -0
  11. package/lib/types/controllers/config.schema.d.ts +3 -0
  12. package/lib/types/controllers/force-string-alert-render.controller.d.ts +5 -1
  13. package/lib/types/controllers/permission/sheet-permission-check-ui.controller.d.ts +24 -0
  14. package/lib/types/controllers/permission/sheet-permission-interceptor-canvas-render.controller.d.ts +0 -1
  15. package/lib/types/controllers/permission/sheet-permission-interceptor-clipboard.controller.d.ts +3 -4
  16. package/lib/types/controllers/permission/sheet-permission-interceptor-formula-render.controller.d.ts +0 -1
  17. package/lib/types/controllers/render-controllers/scroll.render-controller.d.ts +7 -4
  18. package/lib/types/facade/f-event.d.ts +389 -0
  19. package/lib/types/facade/f-permission.d.ts +4 -1
  20. package/lib/types/facade/f-range.d.ts +48 -5
  21. package/lib/types/facade/f-sheet-hooks.d.ts +50 -12
  22. package/lib/types/facade/f-univer.d.ts +15 -16
  23. package/lib/types/facade/f-workbook.d.ts +43 -28
  24. package/lib/types/facade/f-worksheet.d.ts +24 -11
  25. package/lib/types/facade/index.d.ts +3 -1
  26. package/lib/types/index.d.ts +13 -14
  27. package/lib/types/services/clipboard/clipboard.service.d.ts +25 -10
  28. package/lib/types/services/clipboard/type.d.ts +18 -2
  29. package/lib/types/services/hover-manager.service.d.ts +6 -0
  30. package/lib/types/services/scroll-manager.service.d.ts +10 -2
  31. package/lib/types/services/selection/base-selection-render.service.d.ts +3 -3
  32. package/lib/types/services/selection/selection-render.service.d.ts +4 -0
  33. package/lib/types/views/cell-alert/CellAlertPopup.d.ts +6 -1
  34. package/lib/types/views/clipboard/ClipboardPopupMenu.d.ts +2 -0
  35. package/lib/umd/facade.js +1 -1
  36. package/lib/umd/index.js +28 -26
  37. package/package.json +15 -14
  38. package/lib/types/controllers/permission/sheet-permission-init.controller.d.ts +0 -26
  39. package/lib/types/controllers/permission/sheet-permission-interceptor-base.controller.d.ts +0 -36
  40. package/lib/types/controllers/permission/sheet-permission-view-model.controller.d.ts +0 -11
package/lib/cjs/facade.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@univerjs/core"),c=require("@univerjs/engine-render"),o=require("@univerjs/sheets-ui"),d=require("@univerjs/sheets/facade"),g=require("@univerjs/ui"),u=require("rxjs"),v=require("@univerjs/sheets");class p extends i.FUniver{customizeColumnHeader(e){const t=this.getActiveWorkbook();if(!t){console.error("WorkBook not exist");return}const r=t==null?void 0:t.getId();this._getSheetRenderComponent(r,o.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){const t=this.getActiveWorkbook();if(!t){console.error("WorkBook not exist");return}const r=t==null?void 0:t.getId();this._getSheetRenderComponent(r,o.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...t){const r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.ROW),n=r.register(...t);return i.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...t){const r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.COLUMN),n=r.register(...t);return i.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}registerSheetMainExtension(e,...t){const r=this._getSheetRenderComponent(e,o.SHEET_VIEW_KEY.MAIN),n=r.register(...t);return i.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}_getSheetRenderComponent(e,t){const n=this._injector.get(c.IRenderManagerService).getRenderById(e);if(!n)throw new Error(`Render Unit with unitId ${e} not found`);const{components:s}=n,a=s.get(t);if(!a)throw new Error("Render component not found");return a}getSheetHooks(){return this._injector.createInstance(d.FSheetHooks)}}i.FUniver.extend(p);class C extends d.FWorkbook{openSiderbar(e){return this._logDeprecation("openSiderbar"),this._injector.get(g.ISidebarService).open(e)}openDialog(e){this._logDeprecation("openDialog");const r=this._injector.get(g.IDialogService).open({...e,onClose:()=>{r.dispose()}});return r}_logDeprecation(e){this._injector.get(i.ILogService).warn("[FWorkbook]",`${e} is deprecated. Please use the function of the same name on "FUniver".`)}onCellClick(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentClickedCell$.pipe(u.filter(r=>!!r)).subscribe(e))}onCellHover(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentRichText$.pipe(u.filter(r=>!!r)).subscribe(e))}onCellPointerDown(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentPointerUpCell$.subscribe(e))}onPointerMove(e){const t=this._injector.get(o.HoverManagerService);return i.toDisposable(t.currentCellPosWithEvent$.pipe(u.filter(r=>!!r)).subscribe(r=>{e(r,r.event.buttons)}))}startEditing(){return this._injector.get(i.ICommandService).syncExecuteCommand(o.SetCellEditVisibleOperation.id,{eventType:c.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){return this._injector.get(i.ICommandService).syncExecuteCommand(o.SetCellEditVisibleOperation.id,{eventType:c.DeviceInputEventType.Keyboard,keycode:e?g.KeyCode.ENTER:g.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await i.awaitTime(0),!0}endEditingAsync(e=!0){return this.endEditing(e)}getScrollStateBySheetId(e){const t=this._workbook.getUnitId(),n=this._injector.get(c.IRenderManagerService).getRenderById(t);return n?n.with(o.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:e}):null}disableSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(c.IRenderManagerService).getRenderById(e);r&&r.with(o.ISheetSelectionRenderService).disableSelection()}enableSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(c.IRenderManagerService).getRenderById(e);r&&r.with(o.ISheetSelectionRenderService).enableSelection()}transparentSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(c.IRenderManagerService).getRenderById(e);r&&r.with(o.ISheetSelectionRenderService).transparentSelection()}showSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(c.IRenderManagerService).getRenderById(e);r&&r.with(o.ISheetSelectionRenderService).showSelection()}}d.FWorkbook.extend(C);class b extends d.FWorksheet{refreshCanvas(){const e=this._injector.get(c.IRenderManagerService),t=this._fWorkbook.id,r=e.getRenderById(t);if(!r)throw new Error(`Render Unit with unitId ${t} not found`);r.with(o.SheetSkeletonManagerService).reCalculate();const n=r.mainComponent;if(!n)throw new Error("Main component not found");n.makeDirty()}zoom(e){return this._injector.get(i.ICommandService).syncExecuteCommand(o.ChangeZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:e}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const e=this._workbook.getUnitId(),r=this._injector.get(c.IRenderManagerService).getRenderById(e);let n={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!r)return n;const a=r.with(o.SheetSkeletonManagerService).getCurrentSkeleton();if(!a)return n;const h=a==null?void 0:a.getVisibleRanges();if(!h)return n;n=a.getVisibleRangeByViewport(c.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[I,S]of h)c.sheetContentViewportKeys.indexOf(I)!==-1&&(n.startColumn=Math.min(n.startColumn,S.startColumn),n.startRow=Math.min(n.startRow,S.startRow),n.endColumn=Math.max(n.endColumn,S.endColumn),n.endRow=Math.max(n.endRow,S.endRow));return n}scrollToCell(e,t){const r=this._workbook.getUnitId(),s=this._injector.get(c.IRenderManagerService).getRenderById(r);s&&(s==null?void 0:s.with(o.SheetsScrollRenderController)).scrollToCell(e,t)}getScrollState(){const e=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),n=this._injector.get(c.IRenderManagerService).getRenderById(e);return n?n.with(o.SheetScrollManagerService).getScrollStateByParam({unitId:e,sheetId:t}):null}onScroll(e){var s;const t=this._workbook.getUnitId(),n=(s=this._injector.get(c.IRenderManagerService).getRenderById(t))==null?void 0:s.with(o.SheetScrollManagerService);if(n){const a=n.validViewportScrollInfo$.subscribe(h=>{e(h)});return i.toDisposable(a)}return i.toDisposable(()=>{})}}d.FWorksheet.extend(b);class _ extends d.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}d.FPermission.extend(_);class k extends d.FSheetHooks{onCellPointerMove(e){return i.toDisposable(this._injector.get(o.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return i.toDisposable(this._injector.get(o.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return i.toDisposable(this._injector.get(o.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return i.toDisposable(this._injector.get(o.DragManagerService).endCell$.subscribe(e))}onCellRender(e,t=i.InterceptorEffectEnum.Style,r=v.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(v.SheetInterceptorService).intercept(v.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t,handler:(n,s,a)=>a({...n,customRender:[...(n==null?void 0:n.customRender)||[],...e||[]]}),priority:r})}onBeforeCellEdit(e){return this._injector.get(i.ICommandService).beforeCommandExecuted(t=>{const r=t.params;t.id===o.SetCellEditVisibleOperation.id&&r.visible&&e(r)})}onAfterCellEdit(e){return this._injector.get(i.ICommandService).onCommandExecuted(t=>{const r=t.params;t.id===o.SetCellEditVisibleOperation.id&&!r.visible&&e(r)})}}d.FSheetHooks.extend(k);class M extends d.FRange{getCell(){const e=this._injector.get(c.IRenderManagerService),t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return e.getRenderById(t).with(o.SheetSkeletonManagerService).getWorksheetSkeleton(r).skeleton.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:e,startY:t,endX:r,endY:n}=this.getCell(),s={x:e,y:t,width:r-e,height:n-t,top:t,left:e,bottom:n,right:r};return{...s,toJSON:()=>JSON.stringify(s)}}generateHTML(){var t;const e=this._injector.get(o.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(t=e==null?void 0:e.html)!=null?t:""}attachPopup(e){const{key:t,disposableCollection:r}=m(e,this._injector.get(g.ComponentManager)),s=this._injector.get(o.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:t},this.getUnitId(),this._worksheet.getSheetId());return s?(r.add(s),r):(r.dispose(),null)}attachAlertPopup(e){const t=this._injector.get(o.CellAlertManagerService),r={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:r}),{dispose:()=>{t.removeAlert(e.key)}}}highlight(e,t){const r=this._injector.get(o.IMarkSelectionService),n=r.addShape({range:this._range,style:e,primary:t});if(!n)throw new Error("Failed to highlight current range");return i.toDisposable(()=>{r.removeShape(n)})}}d.FRange.extend(M);function m(l,e){const{componentKey:t,isVue3:r}=l;let n;const s=new i.DisposableCollection;return typeof t=="string"?n=t:(n=`External_${i.generateRandomId(6)}`,s.add(e.register(n,t,{framework:r?"vue3":"react"}))),{key:n,disposableCollection:s}}exports.transformComponentKey=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),w=require("@univerjs/docs"),d=require("@univerjs/engine-render"),s=require("@univerjs/sheets-ui"),C=require("@univerjs/sheets/facade"),l=require("@univerjs/ui"),f=require("rxjs"),_=require("@univerjs/sheets");class k extends o.FUniver{_initSheetUIEvent(e){const t=e.get(o.ICommandService);this.disposeWithMe(t.beforeCommandExecuted(r=>{if(r.id===s.SetCellEditVisibleOperation.id){if(!this._eventListend(this.Event.BeforeSheetEditStart)&&!this._eventListend(this.Event.BeforeSheetEditEnd))return;const n=this.getCommandSheetTarget(r);if(!n)return;const{workbook:i,worksheet:a}=n,c=e.get(s.IEditorBridgeService),h=e.get(o.IUniverInstanceService),v=r.params,{visible:g,keycode:b,eventType:p}=v,u=c.getEditLocation();if(g){const E={row:u.row,column:u.column,eventType:p,keycode:b,workbook:i,worksheet:a,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,E),E.cancel)throw new o.CanceledError}else{const E={row:u.row,column:u.column,eventType:p,keycode:b,workbook:i,worksheet:a,isZenEditor:!1,value:o.RichTextValue.create(h.getUnit(o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:b!==l.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,E),E.cancel)throw new o.CanceledError}}})),this.disposeWithMe(t.onCommandExecuted(r=>{if(r.id===s.SetCellEditVisibleOperation.id){if(!this._eventListend(this.Event.SheetEditStarted)&&!this._eventListend(this.Event.SheetEditEnded))return;const n=this.getCommandSheetTarget(r);if(!n)return;const{workbook:i,worksheet:a}=n,c=e.get(s.IEditorBridgeService),h=r.params,{visible:v,keycode:g,eventType:b}=h,p=c.getEditLocation();if(v){const u={row:p.row,column:p.column,eventType:b,keycode:g,workbook:i,worksheet:a,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,u)}else{const u={row:p.row,column:p.column,eventType:b,keycode:g,workbook:i,worksheet:a,isZenEditor:!1,isConfirm:g!==l.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,u)}}if(r.id===w.RichTextEditingMutation.id){if(!this._eventListend(this.Event.SheetEditChanging))return;const n=this.getCommandSheetTarget(r);if(!n)return;const{workbook:i,worksheet:a}=n,c=e.get(s.IEditorBridgeService),h=e.get(o.IUniverInstanceService),v=r.params;if(!c.isVisible().visible)return;const{unitId:g}=v;if(g===o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const{row:b,column:p}=c.getEditLocation(),u={workbook:i,worksheet:a,row:b,column:p,value:o.RichTextValue.create(h.getUnit(o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,u)}}}))}_initialize(e){this._initSheetUIEvent(e);const t=e.get(o.ICommandService);this.disposeWithMe(t.beforeCommandExecuted(r=>{switch(r.id){case l.CopyCommand.id:case l.CutCommand.id:this._beforeClipboardChange();break;case s.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(r.params);break}})),this.disposeWithMe(t.onCommandExecuted(r=>{switch(r.id){case l.CopyCommand.id:case l.CutCommand.id:this._clipboardChanged();break;case s.SheetPasteShortKeyCommand.id:this._clipboardPaste();break;case l.PasteCommand.id:this._clipboardPasteAsync();break}})),this.disposeWithMe(t.beforeCommandExecuted(async r=>{switch(r.id){case l.PasteCommand.id:await this._beforeClipboardPasteAsync();break}}))}_generateClipboardCopyParam(){const e=this.getActiveWorkbook(),t=e==null?void 0:e.getActiveSheet(),r=e==null?void 0:e.getActiveRange();if(!e||!t||!r)return;const i=this._injector.get(s.ISheetClipboardService).generateCopyContent(e.getId(),t.getSheetId(),r.getRange());if(!i)return;const{html:a,plain:c}=i;return{workbook:e,worksheet:t,text:c,html:a,fromSheet:t,fromRange:r}}_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:t,textContent:r}=e,n=this.getActiveWorkbook(),i=n==null?void 0:n.getActiveSheet();return!n||!i?void 0:{workbook:n,worksheet:i,text:r,html:t}}async _generateClipboardPasteParamAsync(){const e=this.getActiveWorkbook(),t=e==null?void 0:e.getActiveSheet();if(!e||!t)return;const i=(await this._injector.get(l.IClipboardInterfaceService).read())[0];let a;if(i){const c=i.types,h=c.indexOf(l.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await i.getType(l.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(g=>g&&g.text()):"",v=c.indexOf(l.HTML_CLIPBOARD_MIME_TYPE)!==-1?await i.getType(l.HTML_CLIPBOARD_MIME_TYPE).then(g=>g&&g.text()):"";a={workbook:e,worksheet:t,text:h,html:v}}return a}_beforeClipboardPaste(e){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;const t=this._generateClipboardPasteParam(e);if(t&&(this.fireEvent(this.Event.BeforeClipboardPaste,t),t.cancel))throw new Error("Before clipboard paste is canceled")}_clipboardPaste(e){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;const t=this._generateClipboardPasteParam(e);if(t&&(this.fireEvent(this.Event.BeforeClipboardPaste,t),t.cancel))throw new Error("Clipboard pasted is canceled")}async _beforeClipboardPasteAsync(){if(!this.hasEventCallback(this.Event.BeforeClipboardPaste))return;if(!l.supportClipboardAPI()){this._injector.get(o.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(!l.supportClipboardAPI()){this._injector.get(o.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 t=this.getActiveWorkbook();if(!t){console.error("WorkBook not exist");return}const r=t==null?void 0:t.getId();this._getSheetRenderComponent(r,s.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){const t=this.getActiveWorkbook();if(!t){console.error("WorkBook not exist");return}const r=t==null?void 0:t.getId();this._getSheetRenderComponent(r,s.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...t){const r=this._getSheetRenderComponent(e,s.SHEET_VIEW_KEY.ROW),n=r.register(...t);return o.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...t){const r=this._getSheetRenderComponent(e,s.SHEET_VIEW_KEY.COLUMN),n=r.register(...t);return o.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}registerSheetMainExtension(e,...t){const r=this._getSheetRenderComponent(e,s.SHEET_VIEW_KEY.MAIN),n=r.register(...t);return o.toDisposable(()=>{n.dispose(),r.makeDirty(!0)})}_getSheetRenderComponent(e,t){const n=this._injector.get(d.IRenderManagerService).getRenderById(e);if(!n)throw new Error(`Render Unit with unitId ${e} not found`);const{components:i}=n,a=i.get(t);if(!a)throw new Error("Render component not found");return a}getSheetHooks(){return this._injector.createInstance(C.FSheetHooks)}}o.FUniver.extend(k);const S={CellClicked:"CellClicked",CellPointerDown:"CellPointerDown",CellPointerUp:"CellPointerUp",CellPointerMove:"CellPointerMove",CellHover:"CellHover",DragOver:"DragOver",Drop:"Drop"};class P extends o.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 S.CellClicked}get CellHover(){return S.CellHover}get CellPointerDown(){return S.CellPointerDown}get CellPointerUp(){return S.CellPointerUp}get CellPointerMove(){return S.CellPointerMove}get DragOver(){return"DragOver"}get Drop(){return"Drop"}}o.FEventName.extend(P);class M extends C.FWorkbook{openSiderbar(e){return this._logDeprecation("openSiderbar"),this._injector.get(l.ISidebarService).open(e)}openDialog(e){this._logDeprecation("openDialog");const r=this._injector.get(l.IDialogService).open({...e,onClose:()=>{r.dispose()}});return r}_logDeprecation(e){this._injector.get(o.ILogService).warn("[FWorkbook]",`${e} is deprecated. Please use the function of the same name on "FUniver".`)}addUIEvent(e,t){const r=this.getActiveSheet(),n={workbook:this,worksheet:r};switch(e){case S.CellClicked:this.onCellClick(i=>{this.fireEvent(this.Event.CellClicked,{row:i.location.row,column:i.location.col,...n})});break;case S.CellPointerDown:this.onCellPointerDown(i=>{this.fireEvent(this.Event.CellPointerDown,this.generateCellParams(i))});break;case S.CellPointerUp:this.onCellPointerUp(i=>{this.fireEvent(this.Event.CellPointerUp,this.generateCellParams(i))});break;case S.CellPointerMove:this.onCellPointerMove(i=>{this.fireEvent(this.Event.CellPointerMove,this.generateCellParams(i))});break;case S.CellHover:this.onCellHover(i=>{this.fireEvent(this.Event.CellHover,this.generateCellParams(i))});break;case S.DragOver:this.onDragOver(i=>{this.fireEvent(this.Event.DragOver,{row:i.location.row,column:i.location.col,...n})});break;case S.Drop:this.onDrop(i=>{this.fireEvent(this.Event.Drop,{row:i.location.row,column:i.location.col,...n})})}return o.toDisposable(()=>{})}generateCellParams(e){const t=this.getActiveSheet();return{row:e.row,column:e.col,workbook:this,worksheet:t}}onCellClick(e){const t=this._injector.get(s.HoverManagerService);return o.toDisposable(t.currentClickedCell$.pipe(f.filter(r=>!!r)).subscribe(r=>{e(r)}))}onCellHover(e){const t=this._injector.get(s.HoverManagerService);return o.toDisposable(t.currentRichText$.pipe(f.filter(r=>!!r)).subscribe(e))}onCellPointerDown(e){const t=this._injector.get(s.HoverManagerService);return o.toDisposable(t.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const t=this._injector.get(s.HoverManagerService);return o.toDisposable(t.currentPointerUpCell$.subscribe(e))}onCellPointerMove(e){const t=this._injector.get(s.HoverManagerService);return o.toDisposable(t.currentCellPosWithEvent$.pipe(f.filter(r=>!!r)).subscribe(r=>{e(r,r.event)}))}onDragOver(e){const t=this._injector.get(s.DragManagerService);return o.toDisposable(t.currentCell$.pipe(f.filter(r=>!!r)).subscribe(r=>{e(r)}))}onDrop(e){const t=this._injector.get(s.DragManagerService);return o.toDisposable(t.endCell$.pipe(f.filter(r=>!!r)).subscribe(r=>{e(r)}))}startEditing(){return this._injector.get(o.ICommandService).syncExecuteCommand(s.SetCellEditVisibleOperation.id,{eventType:d.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){return this._injector.get(o.ICommandService).syncExecuteCommand(s.SetCellEditVisibleOperation.id,{eventType:d.DeviceInputEventType.Keyboard,keycode:e?l.KeyCode.ENTER:l.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await o.awaitTime(0),!0}endEditingAsync(e=!0){return this.endEditing(e)}getScrollStateBySheetId(e){const t=this._workbook.getUnitId(),n=this._injector.get(d.IRenderManagerService).getRenderById(t);return n?n.with(s.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:e}):null}disableSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(s.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(s.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(s.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);return r&&r.with(s.ISheetSelectionRenderService).showSelection(),this}}C.FWorkbook.extend(M);class R extends C.FWorksheet{refreshCanvas(){const e=this._injector.get(d.IRenderManagerService),t=this._fWorkbook.id,r=e.getRenderById(t);if(!r)throw new Error(`Render Unit with unitId ${t} not found`);r.with(s.SheetSkeletonManagerService).reCalculate();const n=r.mainComponent;if(!n)throw new Error("Main component not found");return n.makeDirty(),this}zoom(e){return this._injector.get(o.ICommandService).syncExecuteCommand(s.ChangeZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:e}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const e=this._workbook.getUnitId(),r=this._injector.get(d.IRenderManagerService).getRenderById(e);let n={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!r)return n;const a=r.with(s.SheetSkeletonManagerService).getCurrentSkeleton();if(!a)return n;const c=a==null?void 0:a.getVisibleRanges();if(!c)return n;n=a.getVisibleRangeByViewport(d.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[h,v]of c)d.sheetContentViewportKeys.indexOf(h)!==-1&&(n.startColumn=Math.min(n.startColumn,v.startColumn),n.startRow=Math.min(n.startRow,v.startRow),n.endColumn=Math.max(n.endColumn,v.endColumn),n.endRow=Math.max(n.endRow,v.endRow));return n}scrollToCell(e,t){const r=this._workbook.getUnitId(),i=this._injector.get(d.IRenderManagerService).getRenderById(r);return i&&(i==null?void 0:i.with(s.SheetsScrollRenderController)).scrollToCell(e,t),this}getScrollState(){const e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},t=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),i=this._injector.get(d.IRenderManagerService).getRenderById(t);return i&&i.with(s.SheetScrollManagerService).getScrollStateByParam({unitId:t,sheetId:r})||e}onScroll(e){var i;const t=this._workbook.getUnitId(),n=(i=this._injector.get(d.IRenderManagerService).getRenderById(t))==null?void 0:i.with(s.SheetScrollManagerService);if(n){const a=n.validViewportScrollInfo$.subscribe(c=>{e(c)});return o.toDisposable(a)}return o.toDisposable(()=>{})}}C.FWorksheet.extend(R);class y extends C.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}C.FPermission.extend(y);class D extends C.FSheetHooks{onCellPointerMove(e){return o.toDisposable(this._injector.get(s.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return o.toDisposable(this._injector.get(s.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return o.toDisposable(this._injector.get(s.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return o.toDisposable(this._injector.get(s.DragManagerService).endCell$.subscribe(e))}onCellRender(e,t=o.InterceptorEffectEnum.Style,r=_.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(_.SheetInterceptorService).intercept(_.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t,handler:(n,i,a)=>a({...n,customRender:[...(n==null?void 0:n.customRender)||[],...e||[]]}),priority:r})}onBeforeCellEdit(e){return this._injector.get(o.ICommandService).beforeCommandExecuted(t=>{const r=t.params;t.id===s.SetCellEditVisibleOperation.id&&r.visible&&e(r)})}onAfterCellEdit(e){return this._injector.get(o.ICommandService).onCommandExecuted(t=>{const r=t.params;t.id===s.SetCellEditVisibleOperation.id&&!r.visible&&e(r)})}}C.FSheetHooks.extend(D);class x extends C.FRange{getCell(){const e=this._injector.get(d.IRenderManagerService),t=this._workbook.getUnitId(),r=this._worksheet.getSheetId();return e.getRenderById(t).with(s.SheetSkeletonManagerService).getWorksheetSkeleton(r).skeleton.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:e,startY:t,endX:r,endY:n}=this.getCell(),i={x:e,y:t,width:r-e,height:n-t,top:t,left:e,bottom:n,right:r};return{...i,toJSON:()=>JSON.stringify(i)}}generateHTML(){var t;const e=this._injector.get(s.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(t=e==null?void 0:e.html)!=null?t:""}attachPopup(e){var a,c,h;e.direction=(a=e.direction)!=null?a:"horizontal",e.extraProps=(c=e.extraProps)!=null?c:{},e.offset=(h=e.offset)!=null?h:[0,0];const{key:t,disposableCollection:r}=I(e,this._injector.get(l.ComponentManager)),i=this._injector.get(s.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:t},this.getUnitId(),this._worksheet.getSheetId());return i?(r.add(i),r):(r.dispose(),null)}attachAlertPopup(e){const t=this._injector.get(s.CellAlertManagerService),r={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:r}),{dispose:()=>{t.removeAlert(e.key)}}}highlight(e,t){const r=this._injector.get(s.IMarkSelectionService),n=r.addShape({range:this._range,style:e,primary:t});if(!n)throw new Error("Failed to highlight current range");return o.toDisposable(()=>{r.removeShape(n)})}}C.FRange.extend(x);function I(m,e){const{componentKey:t,isVue3:r}=m;let n;const i=new o.DisposableCollection;return typeof t=="string"?n=t:(n=`External_${o.generateRandomId(6)}`,i.add(e.register(n,t,{framework:r?"vue3":"react"}))),{key:n,disposableCollection:i}}exports.transformComponentKey=I;