@univerjs/sheets-drawing-ui 0.15.0-insiders.20260107-3441c7a → 0.15.0-insiders.20260108-47c73e3

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.
package/lib/cjs/facade.js CHANGED
@@ -1 +1 @@
1
- "use strict";var B=Object.defineProperty;var U=(a,t,r)=>t in a?B(a,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[t]=r;var T=(a,t,r)=>U(a,typeof t!="symbol"?t+"":t,r);const h=require("@univerjs/core"),p=require("@univerjs/core/facade"),I=require("@univerjs/drawing"),C=require("@univerjs/engine-render"),d=require("@univerjs/sheets-drawing-ui"),_=require("@univerjs/sheets-ui"),v=require("@univerjs/sheets-drawing"),R=require("@univerjs/sheets-ui/facade"),k=require("@univerjs/sheets/facade"),F=require("@univerjs/ui");var M=Object.getOwnPropertyDescriptor,A=(a,t,r,e)=>{for(var n=e>1?void 0:e?M(t,r):t,i=a.length-1,o;i>=0;i--)(o=a[i])&&(n=o(n)||n);return n},O=(a,t)=>(r,e)=>t(r,e,a);function G(a,t){const{from:r,to:e,flipY:n=!1,flipX:i=!1,angle:o=0,skewX:s=0,skewY:c=0}=a.sheetTransform,{column:m,columnOffset:g,row:l,rowOffset:u}=r,D=_.convertPositionSheetOverGridToAbsolute(a.unitId,a.subUnitId,{from:r,to:e},t),{width:w,height:f}=D;return{...a,column:m,columnOffset:g,row:l,rowOffset:u,width:w,height:f,flipY:n,flipX:i,angle:o,skewX:s,skewY:c}}function x(a,t,r){const{column:e,columnOffset:n,row:i,rowOffset:o,flipY:s=!1,flipX:c=!1,angle:m=0,skewX:g=0,skewY:l=0,width:u,height:D}=a,w=_.convertPositionCellToSheetOverGrid(a.unitId,a.subUnitId,{column:e,columnOffset:n,row:i,rowOffset:o},u,D,t,r),{sheetTransform:f,transform:b}=w;return{...a,sheetTransform:{...f,flipY:s,flipX:c,angle:m,skewX:g,skewY:l},transform:{...b,flipY:s,flipX:c,angle:m,skewX:g,skewY:l}}}let y=class{constructor(a,t,r){T(this,"_image");this._injector=r,this._image={drawingId:h.generateRandomId(6),drawingType:h.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:h.ImageSourceType.BASE64,source:"",unitId:a,subUnitId:t,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0}}setImage(a){const r=this._injector.get(C.IRenderManagerService).getRenderById(a.unitId);if(!r)throw new Error(`Render Unit with unitId ${a.unitId} not found`);const e=r.with(_.SheetSkeletonManagerService);return a.sheetTransform==null&&(a.sheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),this._image=G(a,e),this}setSource(a,t){const r=t!=null?t:h.ImageSourceType.URL;return this._image.source=a,this._image.imageSourceType=r,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(a){return this._image.column=a,this}setRow(a){return this._image.row=a,this}setColumnOffset(a){return this._image.columnOffset=a,this}setRowOffset(a){return this._image.rowOffset=a,this}setWidth(a){return this._image.width=a,this}setHeight(a){return this._image.height=a,this}setAnchorType(a){return this._image.anchorType=a,this}setCropTop(a){return this._initializeSrcRect(),this._image.srcRect.top=a,this}setCropLeft(a){return this._initializeSrcRect(),this._image.srcRect.left=a,this}setCropBottom(a){return this._initializeSrcRect(),this._image.srcRect.bottom=a,this}setCropRight(a){return this._initializeSrcRect(),this._image.srcRect.right=a,this}_initializeSrcRect(){this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(a){return this._image.angle=a,this}setUnitId(a){return this._image.unitId=a,this}setSubUnitId(a){return this._image.subUnitId=a,this}async buildAsync(){const t=this._injector.get(C.IRenderManagerService).getRenderById(this._image.unitId);if(!t)throw new Error(`Render Unit with unitId ${this._image.unitId} not found`);const r=t.with(_.ISheetSelectionRenderService),e=t.with(_.SheetSkeletonManagerService);if(this._image.width===0||this._image.height===0){const n=await I.getImageSize(this._image.source),i=n.width,o=n.height;this._image.width===0&&(this._image.width=i),this._image.height===0&&(this._image.height=o)}return x(this._image,r,e)}};y=A([O(2,h.Inject(h.Injector))],y);let S=class extends p.FBase{constructor(a,t,r){super(),this._image=a,this._commandService=t,this._injector=r}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(d.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){const a=this._injector.createInstance(y);return a.setImage(this._image),a}setSource(a,t){const r=t!=null?t:h.ImageSourceType.URL;return this._image.source=a,this._image.imageSourceType=r,this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(a,t,r,e){const n=this.toBuilder();n.setColumn(t),n.setRow(a),r!=null&&n.setRowOffset(r),e!=null&&n.setColumnOffset(e);const i=await n.buildAsync();return this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[i]})}async setSizeAsync(a,t){const r=this.toBuilder();r.setWidth(a),r.setHeight(t);const e=await r.buildAsync();return this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[e]})}setCrop(a,t,r,e){return this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0}),a!=null&&(this._image.srcRect.top=a),t!=null&&(this._image.srcRect.left=t),r!=null&&(this._image.srcRect.bottom=r),e!=null&&(this._image.srcRect.right=e),this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(a){return this._image.sheetTransform.angle=a,this._image.transform&&(this._image.transform.angle=a),this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(d.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:h.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(d.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:h.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(d.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:h.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(d.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:h.ArrangeTypeEnum.front})}};S=A([O(1,h.ICommandService),O(2,h.Inject(h.Injector))],S);class P extends k.FWorksheet{getFloatDomById(t){const e=this._injector.get(d.SheetCanvasFloatDomManagerService).getFloatDomInfo(t);if(!e)return null;const{unitId:n,subUnitId:i}=e,{rect:o}=e,s=o.getState(),{left:c=0,top:m=0,width:g=0,height:l=0,flipX:u=!1,flipY:D=!1,angle:w=0,skewX:f=0,skewY:b=0}=s,E=this._injector.get(v.ISheetDrawingService).getDrawingByParam({drawingId:e.id,unitId:n,subUnitId:i});return E?{position:{left:c,top:m,width:g,height:l,flipX:u,flipY:D,angle:w,skewX:f,skewY:b},componentKey:E.componentKey,allowTransform:E.allowTransform,data:E.data,id:e.id}:null}getAllFloatDoms(){const t=this._injector.get(d.SheetCanvasFloatDomManagerService),r=this._workbook.getUnitId(),e=this._worksheet.getSheetId();return Array.from(t.getFloatDomsBySubUnitId(r,e).values()).map(n=>{const{rect:i}=n,o=this._injector.get(v.ISheetDrawingService).getDrawingByParam({drawingId:n.id,unitId:r,subUnitId:e}),{left:s,top:c,width:m,height:g,flipX:l,flipY:u,angle:D,skewX:w,skewY:f}=i.getState();return{position:{left:s,top:c,width:m,height:g,flipX:l,flipY:u,angle:D,skewX:w,skewY:f},componentKey:o.componentKey,allowTransform:o.allowTransform,data:o.data,id:n.id}})}updateFloatDom(t,r){var w,f;const n=this._injector.get(d.SheetCanvasFloatDomManagerService).getFloatDomInfo(t);if(!n)return this;const{unitId:i,subUnitId:o}=n,s=this._injector.get(v.ISheetDrawingService).getDrawingByParam({unitId:i,subUnitId:o,drawingId:t}),c=this._injector.get(C.IRenderManagerService);if(!c.getRenderById(i))return this;if(!this.getSkeleton())return this;const l=(w=c.getRenderById(this.getWorkbook().getUnitId()))==null?void 0:w.with(_.ISheetSelectionRenderService);if(!l)return this;const u={...s,componentKey:r.componentKey||s.componentKey,allowTransform:r.allowTransform!==void 0?r.allowTransform:s.allowTransform,data:r.data||s.data,sheetTransform:r.position&&(f=d.transformToDrawingPosition(r.position,l))!=null?f:s.sheetTransform,transform:{...s.transform,...r.position}};if(!this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:i,subUnitId:o,drawings:[u]}))throw new Error("updateFloatDom failed");return this}batchUpdateFloatDoms(t){var o;const r=this._injector.get(d.SheetCanvasFloatDomManagerService),e=this._injector.get(v.ISheetDrawingService),n=this._injector.get(C.IRenderManagerService),i=[];for(const s of t){const c=r.getFloatDomInfo(s.id);if(!c)continue;const{unitId:m,subUnitId:g}=c,l=e.getDrawingByParam({unitId:m,subUnitId:g,drawingId:s.id});if(!l)continue;const u=n.getRenderById(m);if(!u||!this.getSkeleton())continue;const w=u.with(_.ISheetSelectionRenderService);if(!w)return this;const f={...l,componentKey:s.config.componentKey||l.componentKey,allowTransform:s.config.allowTransform!==void 0?s.config.allowTransform:l.allowTransform,data:s.config.data||l.data,sheetTransform:s.config.position&&(o=d.transformToDrawingPosition(s.config.position,w))!=null?o:l.sheetTransform,transform:{...l.transform,...s.config.position}};i.push(f)}if(i.length>0){const s=this._workbook.getUnitId(),c=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:s,subUnitId:c,drawings:i}))throw new Error("batchUpdateFloatDoms failed")}return this}removeFloatDom(t){const e=this._injector.get(d.SheetCanvasFloatDomManagerService).getFloatDomInfo(t);if(!e)return this;const{unitId:n,subUnitId:i}=e,s=this._injector.get(v.ISheetDrawingService).getDrawingByParam({unitId:n,subUnitId:i,drawingId:t});if(!s)return this;if(!this._commandService.syncExecuteCommand(d.RemoveSheetDrawingCommand.id,{unitId:n,drawings:[s]}))throw new Error("removeFloatDom failed");return this}addFloatDomToPosition(t,r){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),{key:i,disposableCollection:o}=R.transformComponentKey(t,this._injector.get(F.ComponentManager)),c=this._injector.get(d.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...t,componentKey:i,unitId:e,subUnitId:n},r);return c?(o.add(c.dispose),{id:c.id,dispose:()=>{o.dispose(),c.dispose()}}):(o.dispose(),null)}addFloatDomToRange(t,r,e,n){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:s,disposableCollection:c}=R.transformComponentKey(r,this._injector.get(F.ComponentManager)),g=this._injector.get(d.SheetCanvasFloatDomManagerService).addFloatDomToRange(t.getRange(),{...r,componentKey:s,unitId:i,subUnitId:o},e,n);return g?(c.add(g.dispose),{id:g.id,dispose:()=>{c.dispose(),g.dispose()}}):(c.dispose(),null)}addFloatDomToColumnHeader(t,r,e,n){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:s,disposableCollection:c}=R.transformComponentKey(r,this._injector.get(F.ComponentManager)),g=this._injector.get(d.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(t,{...r,componentKey:s,unitId:i,subUnitId:o},e,n);return g?(c.add(g.dispose),{id:g.id,dispose:()=>{c.dispose(),g.dispose()}}):(c.dispose(),null)}async insertImage(t,r,e,n,i){const o=this.newOverGridImage();if(typeof t=="string")o.setSource(t);else{const m=await t.getBlob().getDataAsString();o.setSource(m,h.ImageSourceType.BASE64)}r!==void 0?o.setColumn(r):o.setColumn(0),e!==void 0?o.setRow(e):o.setRow(0),n!==void 0?o.setColumnOffset(n):o.setColumnOffset(0),i!==void 0?o.setRowOffset(i):o.setRowOffset(0);const s=await o.buildAsync();return this._commandService.syncExecuteCommand(d.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[s]})}insertImages(t){const r=t.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(d.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:r}),this}deleteImages(t){const r=t.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(d.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:r}),this}getImages(){const r=this._injector.get(v.ISheetDrawingService).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),e=[];for(const n in r){const i=r[n];i.drawingType===h.DrawingTypeEnum.DRAWING_IMAGE&&e.push(this._injector.createInstance(S,i))}return e}getImageById(t){const e=this._injector.get(v.ISheetDrawingService).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:t});return e&&e.drawingType===h.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(S,e):null}getActiveImages(){const r=this._injector.get(v.ISheetDrawingService).getFocusDrawings(),e=[];for(const n in r){const i=r[n];e.push(this._injector.createInstance(S,i))}return e}updateImages(t){return this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}onImageInserted(t){const r=this._injector.get(v.ISheetDrawingService);return h.toDisposable(r.add$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(S,r.getDrawingByParam(i)));t(n)}))}onImageDeleted(t){const r=this._injector.get(v.ISheetDrawingService);return h.toDisposable(r.remove$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(S,r.getDrawingByParam(i)));t(n)}))}onImageChanged(t){const r=this._injector.get(v.ISheetDrawingService);return h.toDisposable(r.update$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(S,r.getDrawingByParam(i)));t(n)}))}newOverGridImage(){const t=this._fWorkbook.getId(),r=this.getSheetId();return this._injector.createInstance(y,t,r)}async saveCellImagesAsync(t,r){var l;const e=this._injector.get(d.IBatchSaveImagesService),n=this._fWorkbook.getId(),i=this.getSheetId(),o=r?r.map(u=>u.getRange()):[this._worksheet.getCellMatrix().getDataRange()],s=e.getCellImagesFromRanges(n,i,o);if(s.length===0)return!1;if(s.length===1)try{return await e.downloadSingleImage(s[0]),!0}catch(u){return console.error("Failed to download image:",u),!1}const c=[],m=(l=t==null?void 0:t.useCellAddress)!=null?l:!0,g=t==null?void 0:t.useColumnIndex;m&&c.push(d.FileNamePart.CELL_ADDRESS),g!==void 0&&c.push(d.FileNamePart.COLUMN_VALUE),c.length===0&&c.push(d.FileNamePart.CELL_ADDRESS);try{return await e.saveImagesWithContext(s,{fileNameParts:c,columnIndex:g},n,i),!0}catch(u){return console.error("Failed to save images:",u),!1}}}k.FWorksheet.extend(P);class W extends p.FEnum{get DrawingType(){return h.DrawingTypeEnum}get ImageSourceType(){return h.ImageSourceType}get SheetDrawingAnchorType(){return v.SheetDrawingAnchorType}}p.FEnum.extend(W);class j extends p.FEventName{get BeforeFloatDomAdd(){return"BeforeFloatDomAdd"}get FloatDomAdded(){return"FloatDomAdded"}get BeforeFloatDomUpdate(){return"BeforeFloatDomUpdate"}get FloatDomUpdated(){return"FloatDomUpdated"}get BeforeFloatDomDelete(){return"BeforeFloatDomDelete"}get FloatDomDeleted(){return"FloatDomDeleted"}get BeforeOverGridImageChange(){return"BeforeOverGridImageChange"}get OverGridImageChanged(){return"OverGridImageChanged"}get BeforeOverGridImageInsert(){return"BeforeOverGridImageInsert"}get OverGridImageInserted(){return"OverGridImageInserted"}get BeforeOverGridImageRemove(){return"BeforeOverGridImageRemove"}get OverGridImageRemoved(){return"OverGridImageRemoved"}get BeforeOverGridImageSelect(){return"BeforeOverGridImageSelect"}get OverGridImageSelected(){return"OverGridImageSelected"}}p.FEventName.extend(j);class N extends p.FUniver{_initialize(t){const r=t.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,s=o.filter(m=>m.drawingType===h.DrawingTypeEnum.DRAWING_DOM);if(s.length===0)return;const c={workbook:i,drawings:s};if(this.fireEvent(this.Event.BeforeFloatDomAdd,c),c.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.FloatDomAdded,()=>r.onCommandExecuted(e=>{if(e.id!==d.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,s=o.filter(c=>c.drawingType===h.DrawingTypeEnum.DRAWING_DOM);s.length!==0&&this.fireEvent(this.Event.FloatDomAdded,{workbook:i,drawings:s})})),this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,s={workbook:i,insertImageParams:o};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,s),s.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const o=t.get(I.IDrawingManagerService),{drawings:s}=n,c=s.map(g=>o.getDrawingByParam(g)),m={workbook:i,images:this._createFOverGridImage(c)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,m),m.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,s=t.get(I.IDrawingManagerService),c=[];o.forEach(g=>{const l=s.getDrawingByParam(g);l!=null&&c.push({changeParam:g,image:this._injector.createInstance(S,l)})});const m={workbook:i,images:c};if(this.fireEvent(this.Event.BeforeOverGridImageChange,m),m.cancel)throw s.updateNotification(o),new h.CanceledError})),this.registerEventHandler(this.Event.BeforeFloatDomUpdate,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,s=t.get(I.IDrawingManagerService),c=[];if(o.forEach(g=>{const l=s.getDrawingByParam(g);(l==null?void 0:l.drawingType)===h.DrawingTypeEnum.DRAWING_DOM&&c.push(l)}),c.length===0)return;const m={workbook:i,drawings:c};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,m),m.cancel)throw s.updateNotification(o),new h.CanceledError})),this.registerEventHandler(this.Event.FloatDomUpdated,()=>r.onCommandExecuted(e=>{if(e.id!==d.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,s=t.get(I.IDrawingManagerService),c=[];o.forEach(m=>{const g=s.getDrawingByParam(m);(g==null?void 0:g.drawingType)===h.DrawingTypeEnum.DRAWING_DOM&&c.push(g)}),c.length!==0&&this.fireEvent(this.Event.FloatDomUpdated,{workbook:i,drawings:c})})),this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const o=t.get(I.IDrawingManagerService),{drawings:s}=n,c=s.map(g=>o.getDrawingByParam(g)).filter(g=>(g==null?void 0:g.drawingType)===h.DrawingTypeEnum.DRAWING_DOM);if(c.length===0)return;const m={workbook:i,drawings:c};if(this.fireEvent(this.Event.BeforeFloatDomDelete,m),m.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.FloatDomDeleted,()=>r.onCommandExecuted(e=>{if(e.id!==d.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n;this.fireEvent(this.Event.FloatDomDeleted,{workbook:i,drawings:o.filter(s=>s.drawingType===h.DrawingTypeEnum.DRAWING_DOM).map(s=>s.drawingId)})})),this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>r.beforeCommandExecuted(e=>{if(e.id!==I.SetDrawingSelectedOperation.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null)return;const o=t.get(I.IDrawingManagerService),s=o.getFocusDrawings(),c=n.map(g=>o.getDrawingByParam(g)),m={workbook:i,selectedImages:this._createFOverGridImage(c),oldSelectedImages:this._createFOverGridImage(s)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,m),m.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.OverGridImageInserted,()=>r.onCommandExecuted(e=>{if(e.id!==d.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n;this.fireEvent(this.Event.OverGridImageInserted,{workbook:i,images:this._createFOverGridImage(o)})})),this.registerEventHandler(this.Event.OverGridImageRemoved,()=>r.onCommandExecuted(e=>{if(e.id!==d.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n;this.fireEvent(this.Event.OverGridImageRemoved,{workbook:i,removeImageParams:o})})),this.registerEventHandler(this.Event.OverGridImageChanged,()=>r.onCommandExecuted(e=>{if(e.id!==d.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,s=t.get(I.IDrawingManagerService),c=o.map(m=>this._injector.createInstance(S,s.getDrawingByParam(m)));this.fireEvent(this.Event.OverGridImageChanged,{workbook:i,images:c})})),this.registerEventHandler(this.Event.OverGridImageSelected,()=>r.onCommandExecuted(e=>{if(e.id!==I.SetDrawingSelectedOperation.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null)return;const o=t.get(I.IDrawingManagerService),s=n.map(c=>o.getDrawingByParam(c));this.fireEvent(this.Event.OverGridImageSelected,{workbook:i,selectedImages:this._createFOverGridImage(s)})}))}_createFOverGridImage(t){return t.map(r=>this._injector.createInstance(S,r))}}p.FUniver.extend(N);class H extends k.FRange{async insertCellImageAsync(t){var i;const r=this._injector.get(C.IRenderManagerService),e=(i=C.getCurrentTypeOfRenderer(h.UniverInstanceType.UNIVER_SHEET,this._injector.get(h.IUniverInstanceService),r))==null?void 0:i.with(d.SheetDrawingUpdateController);if(!e)return!1;const n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof t=="string"?e.insertCellImageByUrl(t,n):e.insertCellImageByFile(t,n)}async saveCellImagesAsync(t){var g;const r=this._injector.get(d.IBatchSaveImagesService),e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this.getRange(),o=r.getCellImagesFromRanges(e,n,[i]);if(o.length===0)return!1;if(o.length===1)try{return await r.downloadSingleImage(o[0]),!0}catch(l){return console.error("Failed to download image:",l),!1}const s=[],c=(g=t==null?void 0:t.useCellAddress)!=null?g:!0,m=t==null?void 0:t.useColumnIndex;c&&s.push(d.FileNamePart.CELL_ADDRESS),m!==void 0&&s.push(d.FileNamePart.COLUMN_VALUE),s.length===0&&s.push(d.FileNamePart.CELL_ADDRESS);try{return await r.saveImagesWithContext(o,{fileNameParts:s,columnIndex:m},e,n),!0}catch(l){return console.error("Failed to save images:",l),!1}}}k.FRange.extend(H);
1
+ "use strict";var U=Object.defineProperty;var B=(a,t,r)=>t in a?U(a,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[t]=r;var T=(a,t,r)=>B(a,typeof t!="symbol"?t+"":t,r);const h=require("@univerjs/core"),p=require("@univerjs/core/facade"),I=require("@univerjs/drawing"),C=require("@univerjs/engine-render"),d=require("@univerjs/sheets-drawing-ui"),_=require("@univerjs/sheets-ui"),v=require("@univerjs/sheets-drawing"),R=require("@univerjs/sheets-ui/facade"),k=require("@univerjs/sheets/facade"),F=require("@univerjs/ui");var M=Object.getOwnPropertyDescriptor,A=(a,t,r,e)=>{for(var n=e>1?void 0:e?M(t,r):t,i=a.length-1,s;i>=0;i--)(s=a[i])&&(n=s(n)||n);return n},O=(a,t)=>(r,e)=>t(r,e,a);function G(a,t){const{from:r,to:e,flipY:n=!1,flipX:i=!1,angle:s=0,skewX:o=0,skewY:c=0}=a.sheetTransform,{column:m,columnOffset:g,row:l,rowOffset:u}=r,D=_.convertPositionSheetOverGridToAbsolute(a.unitId,a.subUnitId,{from:r,to:e},t),{width:w,height:f}=D;return{...a,column:m,columnOffset:g,row:l,rowOffset:u,width:w,height:f,flipY:n,flipX:i,angle:s,skewX:o,skewY:c}}function x(a,t,r){const{column:e,columnOffset:n,row:i,rowOffset:s,flipY:o=!1,flipX:c=!1,angle:m=0,skewX:g=0,skewY:l=0,width:u,height:D}=a,w=_.convertPositionCellToSheetOverGrid(a.unitId,a.subUnitId,{column:e,columnOffset:n,row:i,rowOffset:s},u,D,t,r),{sheetTransform:f,transform:b}=w;return{...a,sheetTransform:{...f,flipY:o,flipX:c,angle:m,skewX:g,skewY:l},transform:{...b,flipY:o,flipX:c,angle:m,skewX:g,skewY:l}}}let y=class{constructor(a,t,r){T(this,"_image");this._injector=r,this._image={drawingId:h.generateRandomId(6),drawingType:h.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:h.ImageSourceType.BASE64,source:"",unitId:a,subUnitId:t,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0}}setImage(a){const r=this._injector.get(C.IRenderManagerService).getRenderById(a.unitId);if(!r)throw new Error(`Render Unit with unitId ${a.unitId} not found`);const e=r.with(_.SheetSkeletonManagerService);return a.sheetTransform==null&&(a.sheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),this._image=G(a,e),this}setSource(a,t){const r=t!=null?t:h.ImageSourceType.URL;return this._image.source=a,this._image.imageSourceType=r,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(a){return this._image.column=a,this}setRow(a){return this._image.row=a,this}setColumnOffset(a){return this._image.columnOffset=a,this}setRowOffset(a){return this._image.rowOffset=a,this}setWidth(a){return this._image.width=a,this}setHeight(a){return this._image.height=a,this}setAnchorType(a){return this._image.anchorType=a,this}setCropTop(a){return this._initializeSrcRect(),this._image.srcRect.top=a,this}setCropLeft(a){return this._initializeSrcRect(),this._image.srcRect.left=a,this}setCropBottom(a){return this._initializeSrcRect(),this._image.srcRect.bottom=a,this}setCropRight(a){return this._initializeSrcRect(),this._image.srcRect.right=a,this}_initializeSrcRect(){this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(a){return this._image.angle=a,this}setUnitId(a){return this._image.unitId=a,this}setSubUnitId(a){return this._image.subUnitId=a,this}async buildAsync(){const t=this._injector.get(C.IRenderManagerService).getRenderById(this._image.unitId);if(!t)throw new Error(`Render Unit with unitId ${this._image.unitId} not found`);const r=t.with(_.ISheetSelectionRenderService),e=t.with(_.SheetSkeletonManagerService);if(this._image.width===0||this._image.height===0){const n=await I.getImageSize(this._image.source),i=n.width,s=n.height;this._image.width===0&&(this._image.width=i),this._image.height===0&&(this._image.height=s)}return x(this._image,r,e)}};y=A([O(2,h.Inject(h.Injector))],y);let S=class extends p.FBase{constructor(a,t,r){super(),this._image=a,this._commandService=t,this._injector=r}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(d.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){const a=this._injector.createInstance(y);return a.setImage(this._image),a}setSource(a,t){const r=t!=null?t:h.ImageSourceType.URL;return this._image.source=a,this._image.imageSourceType=r,this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(a,t,r,e){const n=this.toBuilder();n.setColumn(t),n.setRow(a),r!=null&&n.setRowOffset(r),e!=null&&n.setColumnOffset(e);const i=await n.buildAsync();return this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[i]})}async setSizeAsync(a,t){const r=this.toBuilder();r.setWidth(a),r.setHeight(t);const e=await r.buildAsync();return this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[e]})}setCrop(a,t,r,e){return this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0}),a!=null&&(this._image.srcRect.top=a),t!=null&&(this._image.srcRect.left=t),r!=null&&(this._image.srcRect.bottom=r),e!=null&&(this._image.srcRect.right=e),this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(a){return this._image.sheetTransform.angle=a,this._image.transform&&(this._image.transform.angle=a),this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(d.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:h.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(d.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:h.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(d.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:h.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(d.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:h.ArrangeTypeEnum.front})}};S=A([O(1,h.ICommandService),O(2,h.Inject(h.Injector))],S);class P extends k.FWorksheet{getFloatDomById(t){const e=this._injector.get(d.SheetCanvasFloatDomManagerService).getFloatDomInfo(t);if(!e)return null;const{unitId:n,subUnitId:i}=e,{rect:s}=e,o=s.getState(),{left:c=0,top:m=0,width:g=0,height:l=0,flipX:u=!1,flipY:D=!1,angle:w=0,skewX:f=0,skewY:b=0}=o,E=this._injector.get(v.ISheetDrawingService).getDrawingByParam({drawingId:e.id,unitId:n,subUnitId:i});return E?{position:{left:c,top:m,width:g,height:l,flipX:u,flipY:D,angle:w,skewX:f,skewY:b},componentKey:E.componentKey,allowTransform:E.allowTransform,data:E.data,id:e.id}:null}getAllFloatDoms(){const t=this._injector.get(d.SheetCanvasFloatDomManagerService),r=this._workbook.getUnitId(),e=this._worksheet.getSheetId();return Array.from(t.getFloatDomsBySubUnitId(r,e).values()).map(n=>{const{rect:i}=n,s=this._injector.get(v.ISheetDrawingService).getDrawingByParam({drawingId:n.id,unitId:r,subUnitId:e}),{left:o,top:c,width:m,height:g,flipX:l,flipY:u,angle:D,skewX:w,skewY:f}=i.getState();return{position:{left:o,top:c,width:m,height:g,flipX:l,flipY:u,angle:D,skewX:w,skewY:f},componentKey:s.componentKey,allowTransform:s.allowTransform,data:s.data,id:n.id}})}updateFloatDom(t,r){var w,f;const n=this._injector.get(d.SheetCanvasFloatDomManagerService).getFloatDomInfo(t);if(!n)return this;const{unitId:i,subUnitId:s}=n,o=this._injector.get(v.ISheetDrawingService).getDrawingByParam({unitId:i,subUnitId:s,drawingId:t}),c=this._injector.get(C.IRenderManagerService);if(!c.getRenderById(i))return this;if(!this.getSkeleton())return this;const l=(w=c.getRenderById(this.getWorkbook().getUnitId()))==null?void 0:w.with(_.ISheetSelectionRenderService);if(!l)return this;const u={...o,componentKey:r.componentKey||o.componentKey,allowTransform:r.allowTransform!==void 0?r.allowTransform:o.allowTransform,data:r.data||o.data,sheetTransform:r.position&&(f=d.transformToDrawingPosition(r.position,l))!=null?f:o.sheetTransform,transform:{...o.transform,...r.position}};if(!this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:i,subUnitId:s,drawings:[u]}))throw new Error("updateFloatDom failed");return this}batchUpdateFloatDoms(t){var s;const r=this._injector.get(d.SheetCanvasFloatDomManagerService),e=this._injector.get(v.ISheetDrawingService),n=this._injector.get(C.IRenderManagerService),i=[];for(const o of t){const c=r.getFloatDomInfo(o.id);if(!c)continue;const{unitId:m,subUnitId:g}=c,l=e.getDrawingByParam({unitId:m,subUnitId:g,drawingId:o.id});if(!l)continue;const u=n.getRenderById(m);if(!u||!this.getSkeleton())continue;const w=u.with(_.ISheetSelectionRenderService);if(!w)return this;const f={...l,componentKey:o.config.componentKey||l.componentKey,allowTransform:o.config.allowTransform!==void 0?o.config.allowTransform:l.allowTransform,data:o.config.data||l.data,sheetTransform:o.config.position&&(s=d.transformToDrawingPosition(o.config.position,w))!=null?s:l.sheetTransform,transform:{...l.transform,...o.config.position}};i.push(f)}if(i.length>0){const o=this._workbook.getUnitId(),c=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:o,subUnitId:c,drawings:i}))throw new Error("batchUpdateFloatDoms failed")}return this}removeFloatDom(t){const e=this._injector.get(d.SheetCanvasFloatDomManagerService).getFloatDomInfo(t);if(!e)return this;const{unitId:n,subUnitId:i}=e,o=this._injector.get(v.ISheetDrawingService).getDrawingByParam({unitId:n,subUnitId:i,drawingId:t});if(!o)return this;if(!this._commandService.syncExecuteCommand(d.RemoveSheetDrawingCommand.id,{unitId:n,drawings:[o]}))throw new Error("removeFloatDom failed");return this}addFloatDomToPosition(t,r){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),{key:i,disposableCollection:s}=R.transformComponentKey(t,this._injector.get(F.ComponentManager)),c=this._injector.get(d.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...t,componentKey:i,unitId:e,subUnitId:n},r);return c?(s.add(c.dispose),{id:c.id,dispose:()=>{s.dispose(),c.dispose()}}):(s.dispose(),null)}addFloatDomToRange(t,r,e,n){const i=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),{key:o,disposableCollection:c}=R.transformComponentKey(r,this._injector.get(F.ComponentManager)),g=this._injector.get(d.SheetCanvasFloatDomManagerService).addFloatDomToRange(t.getRange(),{...r,componentKey:o,unitId:i,subUnitId:s},e,n);return g?(c.add(g.dispose),{id:g.id,dispose:()=>{c.dispose(),g.dispose()}}):(c.dispose(),null)}addFloatDomToColumnHeader(t,r,e,n){const i=this._workbook.getUnitId(),s=this._worksheet.getSheetId(),{key:o,disposableCollection:c}=R.transformComponentKey(r,this._injector.get(F.ComponentManager)),g=this._injector.get(d.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(t,{...r,componentKey:o,unitId:i,subUnitId:s},e,n);return g?(c.add(g.dispose),{id:g.id,dispose:()=>{c.dispose(),g.dispose()}}):(c.dispose(),null)}async insertImage(t,r,e,n,i){const s=this.newOverGridImage();if(typeof t=="string")s.setSource(t);else{const m=await t.getBlob().getDataAsString();s.setSource(m,h.ImageSourceType.BASE64)}r!==void 0?s.setColumn(r):s.setColumn(0),e!==void 0?s.setRow(e):s.setRow(0),n!==void 0?s.setColumnOffset(n):s.setColumnOffset(0),i!==void 0?s.setRowOffset(i):s.setRowOffset(0);const o=await s.buildAsync();return this._commandService.syncExecuteCommand(d.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[o]})}insertImages(t){const r=t.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(d.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:r}),this}deleteImages(t){const r=t.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(d.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:r}),this}getImages(){const r=this._injector.get(v.ISheetDrawingService).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),e=[];for(const n in r){const i=r[n];i.drawingType===h.DrawingTypeEnum.DRAWING_IMAGE&&e.push(this._injector.createInstance(S,i))}return e}getImageById(t){const e=this._injector.get(v.ISheetDrawingService).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:t});return e&&e.drawingType===h.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(S,e):null}getActiveImages(){const r=this._injector.get(v.ISheetDrawingService).getFocusDrawings(),e=[];for(const n in r){const i=r[n];e.push(this._injector.createInstance(S,i))}return e}updateImages(t){return this._commandService.syncExecuteCommand(d.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}onImageInserted(t){const r=this._injector.get(v.ISheetDrawingService);return h.toDisposable(r.add$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(S,r.getDrawingByParam(i)));t(n)}))}onImageDeleted(t){const r=this._injector.get(v.ISheetDrawingService);return h.toDisposable(r.remove$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(S,r.getDrawingByParam(i)));t(n)}))}onImageChanged(t){const r=this._injector.get(v.ISheetDrawingService);return h.toDisposable(r.update$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(S,r.getDrawingByParam(i)));t(n)}))}newOverGridImage(){const t=this._fWorkbook.getId(),r=this.getSheetId();return this._injector.createInstance(y,t,r)}async saveCellImagesAsync(t,r){var l;const e=this._injector.get(d.IBatchSaveImagesService),n=this._fWorkbook.getId(),i=this.getSheetId(),s=r?r.map(u=>u.getRange()):[this._worksheet.getCellMatrix().getDataRange()],o=e.getCellImagesFromRanges(n,i,s);if(o.length===0)return!1;if(o.length===1)try{return await e.downloadSingleImage(o[0]),!0}catch(u){return console.error("Failed to download image:",u),!1}const c=[],m=(l=t==null?void 0:t.useCellAddress)!=null?l:!0,g=t==null?void 0:t.useColumnIndex;m&&c.push(d.FileNamePart.CELL_ADDRESS),g!==void 0&&c.push(d.FileNamePart.COLUMN_VALUE),c.length===0&&c.push(d.FileNamePart.CELL_ADDRESS);try{return await e.saveImagesWithContext(o,{fileNameParts:c,columnIndex:g},n,i),!0}catch(u){return console.error("Failed to save images:",u),!1}}}k.FWorksheet.extend(P);class j extends p.FEnum{get DrawingType(){return h.DrawingTypeEnum}get ImageSourceType(){return h.ImageSourceType}get SheetDrawingAnchorType(){return v.SheetDrawingAnchorType}}p.FEnum.extend(j);class W extends p.FEventName{get BeforeFloatDomAdd(){return"BeforeFloatDomAdd"}get FloatDomAdded(){return"FloatDomAdded"}get BeforeFloatDomUpdate(){return"BeforeFloatDomUpdate"}get FloatDomUpdated(){return"FloatDomUpdated"}get BeforeFloatDomDelete(){return"BeforeFloatDomDelete"}get FloatDomDeleted(){return"FloatDomDeleted"}get BeforeOverGridImageChange(){return"BeforeOverGridImageChange"}get OverGridImageChanged(){return"OverGridImageChanged"}get BeforeOverGridImageInsert(){return"BeforeOverGridImageInsert"}get OverGridImageInserted(){return"OverGridImageInserted"}get BeforeOverGridImageRemove(){return"BeforeOverGridImageRemove"}get OverGridImageRemoved(){return"OverGridImageRemoved"}get BeforeOverGridImageSelect(){return"BeforeOverGridImageSelect"}get OverGridImageSelected(){return"OverGridImageSelected"}}p.FEventName.extend(W);class N extends p.FUniver{_initialize(t){const r=t.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:s}=n,o=s.filter(m=>m.drawingType===h.DrawingTypeEnum.DRAWING_DOM);if(o.length===0)return;const c={workbook:i,drawings:o};if(this.fireEvent(this.Event.BeforeFloatDomAdd,c),c.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.FloatDomAdded,()=>r.onCommandExecuted(e=>{if(e.id!==d.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:s}=n,o=s.filter(c=>c.drawingType===h.DrawingTypeEnum.DRAWING_DOM);o.length!==0&&this.fireEvent(this.Event.FloatDomAdded,{workbook:i,drawings:o})})),this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:s}=n,o={workbook:i,insertImageParams:s};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,o),o.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const s=t.get(I.IDrawingManagerService),{drawings:o}=n,c=o.map(g=>s.getDrawingByParam(g)),m={workbook:i,images:this._createFOverGridImage(c)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,m),m.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:s}=n,o=t.get(I.IDrawingManagerService),c=[];s.forEach(g=>{const l=o.getDrawingByParam(g);l!=null&&c.push({changeParam:g,image:this._injector.createInstance(S,l)})});const m={workbook:i,images:c};if(this.fireEvent(this.Event.BeforeOverGridImageChange,m),m.cancel)throw o.updateNotification(s),new h.CanceledError})),this.registerEventHandler(this.Event.BeforeFloatDomUpdate,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:s}=n,o=t.get(I.IDrawingManagerService),c=[];if(s.forEach(g=>{const l=o.getDrawingByParam(g);(l==null?void 0:l.drawingType)===h.DrawingTypeEnum.DRAWING_DOM&&c.push(l)}),c.length===0)return;const m={workbook:i,drawings:c};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,m),m.cancel)throw o.updateNotification(s),new h.CanceledError})),this.registerEventHandler(this.Event.FloatDomUpdated,()=>r.onCommandExecuted(e=>{if(e.id!==d.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:s}=n,o=t.get(I.IDrawingManagerService),c=[];s.forEach(m=>{const g=o.getDrawingByParam(m);(g==null?void 0:g.drawingType)===h.DrawingTypeEnum.DRAWING_DOM&&c.push(g)}),c.length!==0&&this.fireEvent(this.Event.FloatDomUpdated,{workbook:i,drawings:c})})),this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>r.beforeCommandExecuted(e=>{if(e.id!==d.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const s=t.get(I.IDrawingManagerService),{drawings:o}=n,c=o.map(g=>s.getDrawingByParam(g)).filter(g=>(g==null?void 0:g.drawingType)===h.DrawingTypeEnum.DRAWING_DOM);if(c.length===0)return;const m={workbook:i,drawings:c};if(this.fireEvent(this.Event.BeforeFloatDomDelete,m),m.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.FloatDomDeleted,()=>r.onCommandExecuted(e=>{if(e.id!==d.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:s}=n;this.fireEvent(this.Event.FloatDomDeleted,{workbook:i,drawings:s.filter(o=>o.drawingType===h.DrawingTypeEnum.DRAWING_DOM).map(o=>o.drawingId)})})),this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>r.beforeCommandExecuted(e=>{if(e.id!==I.SetDrawingSelectedOperation.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null)return;const s=t.get(I.IDrawingManagerService),o=s.getFocusDrawings(),c=n.map(g=>s.getDrawingByParam(g)),m={workbook:i,selectedImages:this._createFOverGridImage(c),oldSelectedImages:this._createFOverGridImage(o)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,m),m.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.OverGridImageInserted,()=>r.onCommandExecuted(e=>{if(e.id!==d.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:s}=n;this.fireEvent(this.Event.OverGridImageInserted,{workbook:i,images:this._createFOverGridImage(s)})})),this.registerEventHandler(this.Event.OverGridImageRemoved,()=>r.onCommandExecuted(e=>{if(e.id!==d.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:s}=n;this.fireEvent(this.Event.OverGridImageRemoved,{workbook:i,removeImageParams:s})})),this.registerEventHandler(this.Event.OverGridImageChanged,()=>r.onCommandExecuted(e=>{if(e.id!==d.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:s}=n,o=t.get(I.IDrawingManagerService),c=s.map(m=>this._injector.createInstance(S,o.getDrawingByParam(m)));this.fireEvent(this.Event.OverGridImageChanged,{workbook:i,images:c})})),this.registerEventHandler(this.Event.OverGridImageSelected,()=>r.onCommandExecuted(e=>{if(e.id!==I.SetDrawingSelectedOperation.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null)return;const s=t.get(I.IDrawingManagerService),o=n.map(c=>s.getDrawingByParam(c));this.fireEvent(this.Event.OverGridImageSelected,{workbook:i,selectedImages:this._createFOverGridImage(o)})}))}_createFOverGridImage(t){return t.map(r=>this._injector.createInstance(S,r))}registerURLImageDownloader(t){return this._injector.get(h.IURLImageService).registerURLImageDownloader(t)}}p.FUniver.extend(N);class H extends k.FRange{async insertCellImageAsync(t){var i;const r=this._injector.get(C.IRenderManagerService),e=(i=C.getCurrentTypeOfRenderer(h.UniverInstanceType.UNIVER_SHEET,this._injector.get(h.IUniverInstanceService),r))==null?void 0:i.with(d.SheetDrawingUpdateController);if(!e)return!1;const n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof t=="string"?e.insertCellImageByUrl(t,n):e.insertCellImageByFile(t,n)}async saveCellImagesAsync(t){var g;const r=this._injector.get(d.IBatchSaveImagesService),e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this.getRange(),s=r.getCellImagesFromRanges(e,n,[i]);if(s.length===0)return!1;if(s.length===1)try{return await r.downloadSingleImage(s[0]),!0}catch(l){return console.error("Failed to download image:",l),!1}const o=[],c=(g=t==null?void 0:t.useCellAddress)!=null?g:!0,m=t==null?void 0:t.useColumnIndex;c&&o.push(d.FileNamePart.CELL_ADDRESS),m!==void 0&&o.push(d.FileNamePart.COLUMN_VALUE),o.length===0&&o.push(d.FileNamePart.CELL_ADDRESS);try{return await r.saveImagesWithContext(s,{fileNameParts:o,columnIndex:m},e,n),!0}catch(l){return console.error("Failed to save images:",l),!1}}}k.FRange.extend(H);