@univerjs/sheets-drawing-ui 0.15.0-insiders.20260106-79b11f9 → 0.15.0-insiders.20260107-3d1cfdf
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 +1 -1
- package/lib/cjs/index.js +2 -2
- package/lib/es/facade.js +65 -44
- package/lib/es/index.js +874 -860
- package/lib/facade.js +65 -44
- package/lib/index.js +874 -860
- package/lib/types/facade/f-univer.d.ts +20 -1
- package/lib/types/services/batch-save-images.service.d.ts +12 -1
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +2 -2
- package/package.json +12 -12
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Injector } from '@univerjs/core';
|
|
1
|
+
import { IDisposable, Injector } from '@univerjs/core';
|
|
2
2
|
import { FUniver } from '@univerjs/core/facade';
|
|
3
3
|
/**
|
|
4
4
|
* @ignore
|
|
@@ -9,4 +9,23 @@ export declare class FUniverDrawingMixin extends FUniver {
|
|
|
9
9
|
*/
|
|
10
10
|
_initialize(injector: Injector): void;
|
|
11
11
|
private _createFOverGridImage;
|
|
12
|
+
/**
|
|
13
|
+
* Register a custom image downloader for URL images
|
|
14
|
+
* @param downloader The downloader function that takes a URL and returns a base64 string
|
|
15
|
+
* @returns A disposable object to unregister the downloader
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const disposable = univerAPI.registerURLImageDownloader(async (url) => {
|
|
19
|
+
* const response = await fetch(url);
|
|
20
|
+
* const blob = await response.blob();
|
|
21
|
+
* const base64 = await new Promise<string>((resolve) => {
|
|
22
|
+
* const reader = new FileReader();
|
|
23
|
+
* reader.onloadend = () => resolve(reader.result as string);
|
|
24
|
+
* reader.readAsDataURL(blob);
|
|
25
|
+
* });
|
|
26
|
+
* return base64;
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
registerURLImageDownloader(downloader: (url: string) => Promise<string>): IDisposable;
|
|
12
31
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IRange, Disposable, IImageIoService, ImageSourceType, IUniverInstanceService } from '@univerjs/core';
|
|
1
|
+
import { IDisposable, IRange, Disposable, IImageIoService, ImageSourceType, IUniverInstanceService } from '@univerjs/core';
|
|
2
2
|
import { SheetsSelectionsService } from '@univerjs/sheets';
|
|
3
3
|
declare global {
|
|
4
4
|
interface Window {
|
|
@@ -112,17 +112,28 @@ export interface IBatchSaveImagesService {
|
|
|
112
112
|
startRow: number;
|
|
113
113
|
endRow: number;
|
|
114
114
|
} | null;
|
|
115
|
+
/**
|
|
116
|
+
* Get all column indices that are within the current selection
|
|
117
|
+
*/
|
|
115
118
|
/**
|
|
116
119
|
* Get all column indices that are within the current selection
|
|
117
120
|
*/
|
|
118
121
|
getSelectionColumnIndices(): Set<number>;
|
|
122
|
+
/**
|
|
123
|
+
* Register a custom image downloader for URL images
|
|
124
|
+
* @param downloader The downloader function that takes a URL and returns a base64 string
|
|
125
|
+
* @returns A disposable object to unregister the downloader
|
|
126
|
+
*/
|
|
127
|
+
registerURLImageDownloader(downloader: (url: string) => Promise<string>): IDisposable;
|
|
119
128
|
}
|
|
120
129
|
export declare const IBatchSaveImagesService: import('@wendellhu/redi').IdentifierDecorator<IBatchSaveImagesService>;
|
|
121
130
|
export declare class BatchSaveImagesService extends Disposable implements IBatchSaveImagesService {
|
|
122
131
|
private readonly _univerInstanceService;
|
|
123
132
|
private readonly _selectionService;
|
|
124
133
|
private readonly _imageIoService;
|
|
134
|
+
private _urlImageDownloader;
|
|
125
135
|
constructor(_univerInstanceService: IUniverInstanceService, _selectionService: SheetsSelectionsService, _imageIoService: IImageIoService);
|
|
136
|
+
registerURLImageDownloader(downloader: (url: string) => Promise<string>): IDisposable;
|
|
126
137
|
getCellImagesInSelection(): ICellImageInfo[];
|
|
127
138
|
getCellImagesFromRanges(unitId: string, subUnitId: string, ranges: IRange[]): ICellImageInfo[];
|
|
128
139
|
getDataColumns(): Array<{
|
package/lib/umd/facade.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(c,l){typeof exports=="object"&&typeof module<"u"?l(require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/drawing"),require("@univerjs/engine-render"),require("@univerjs/sheets-drawing-ui"),require("@univerjs/sheets-ui"),require("@univerjs/sheets-drawing"),require("@univerjs/sheets-ui/facade"),require("@univerjs/sheets/facade"),require("@univerjs/ui")):typeof define=="function"&&define.amd?define(["@univerjs/core","@univerjs/core/facade","@univerjs/drawing","@univerjs/engine-render","@univerjs/sheets-drawing-ui","@univerjs/sheets-ui","@univerjs/sheets-drawing","@univerjs/sheets-ui/facade","@univerjs/sheets/facade","@univerjs/ui"],l):(c=typeof globalThis<"u"?globalThis:c||self,l(c.UniverCore,c.UniverCoreFacade,c.UniverDrawing,c.UniverEngineRender,c.UniverSheetsDrawingUi,c.UniverSheetsUi,c.UniverSheetsDrawing,c.UniverSheetsUiFacade,c.UniverSheetsFacade,c.UniverUi))})(this,(function(c,l,f,C,m,D,w,b,E,F){"use strict";var N=Object.defineProperty;var H=(c,l,f)=>l in c?N(c,l,{enumerable:!0,configurable:!0,writable:!0,value:f}):c[l]=f;var A=(c,l,f)=>H(c,typeof l!="symbol"?l+"":l,f);var B=Object.getOwnPropertyDescriptor,T=(s,r,t,e)=>{for(var n=e>1?void 0:e?B(r,t):r,i=s.length-1,o;i>=0;i--)(o=s[i])&&(n=o(n)||n);return n},R=(s,r)=>(t,e)=>r(t,e,s);function j(s,r){const{from:t,to:e,flipY:n=!1,flipX:i=!1,angle:o=0,skewX:a=0,skewY:d=0}=s.sheetTransform,{column:u,columnOffset:g,row:h,rowOffset:v}=t,p=D.convertPositionSheetOverGridToAbsolute(s.unitId,s.subUnitId,{from:t,to:e},r),{width:I,height:S}=p;return{...s,column:u,columnOffset:g,row:h,rowOffset:v,width:I,height:S,flipY:n,flipX:i,angle:o,skewX:a,skewY:d}}function M(s,r,t){const{column:e,columnOffset:n,row:i,rowOffset:o,flipY:a=!1,flipX:d=!1,angle:u=0,skewX:g=0,skewY:h=0,width:v,height:p}=s,I=D.convertPositionCellToSheetOverGrid(s.unitId,s.subUnitId,{column:e,columnOffset:n,row:i,rowOffset:o},v,p,r,t),{sheetTransform:S,transform:O}=I;return{...s,sheetTransform:{...S,flipY:a,flipX:d,angle:u,skewX:g,skewY:h},transform:{...O,flipY:a,flipX:d,angle:u,skewX:g,skewY:h}}}let y=class{constructor(s,r,t){A(this,"_image");this._injector=t,this._image={drawingId:c.generateRandomId(6),drawingType:c.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:c.ImageSourceType.BASE64,source:"",unitId:s,subUnitId:r,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0}}setImage(s){const t=this._injector.get(C.IRenderManagerService).getRenderById(s.unitId);if(!t)throw new Error(`Render Unit with unitId ${s.unitId} not found`);const e=t.with(D.SheetSkeletonManagerService);return s.sheetTransform==null&&(s.sheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),this._image=j(s,e),this}setSource(s,r){const t=r!=null?r:c.ImageSourceType.URL;return this._image.source=s,this._image.imageSourceType=t,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(s){return this._image.column=s,this}setRow(s){return this._image.row=s,this}setColumnOffset(s){return this._image.columnOffset=s,this}setRowOffset(s){return this._image.rowOffset=s,this}setWidth(s){return this._image.width=s,this}setHeight(s){return this._image.height=s,this}setAnchorType(s){return this._image.anchorType=s,this}setCropTop(s){return this._initializeSrcRect(),this._image.srcRect.top=s,this}setCropLeft(s){return this._initializeSrcRect(),this._image.srcRect.left=s,this}setCropBottom(s){return this._initializeSrcRect(),this._image.srcRect.bottom=s,this}setCropRight(s){return this._initializeSrcRect(),this._image.srcRect.right=s,this}_initializeSrcRect(){this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(s){return this._image.angle=s,this}setUnitId(s){return this._image.unitId=s,this}setSubUnitId(s){return this._image.subUnitId=s,this}async buildAsync(){const r=this._injector.get(C.IRenderManagerService).getRenderById(this._image.unitId);if(!r)throw new Error(`Render Unit with unitId ${this._image.unitId} not found`);const t=r.with(D.ISheetSelectionRenderService),e=r.with(D.SheetSkeletonManagerService);if(this._image.width===0||this._image.height===0){const n=await f.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 M(this._image,t,e)}};y=T([R(2,c.Inject(c.Injector))],y);let _=class extends l.FBase{constructor(s,r,t){super(),this._image=s,this._commandService=r,this._injector=t}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(m.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){const s=this._injector.createInstance(y);return s.setImage(this._image),s}setSource(s,r){const t=r!=null?r:c.ImageSourceType.URL;return this._image.source=s,this._image.imageSourceType=t,this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(s,r,t,e){const n=this.toBuilder();n.setColumn(r),n.setRow(s),t!=null&&n.setRowOffset(t),e!=null&&n.setColumnOffset(e);const i=await n.buildAsync();return this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[i]})}async setSizeAsync(s,r){const t=this.toBuilder();t.setWidth(s),t.setHeight(r);const e=await t.buildAsync();return this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[e]})}setCrop(s,r,t,e){return this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0}),s!=null&&(this._image.srcRect.top=s),r!=null&&(this._image.srcRect.left=r),t!=null&&(this._image.srcRect.bottom=t),e!=null&&(this._image.srcRect.right=e),this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(s){return this._image.sheetTransform.angle=s,this._image.transform&&(this._image.transform.angle=s),this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.front})}};_=T([R(1,c.ICommandService),R(2,c.Inject(c.Injector))],_);class x extends E.FWorksheet{getFloatDomById(r){const e=this._injector.get(m.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!e)return null;const{unitId:n,subUnitId:i}=e,{rect:o}=e,a=o.getState(),{left:d=0,top:u=0,width:g=0,height:h=0,flipX:v=!1,flipY:p=!1,angle:I=0,skewX:S=0,skewY:O=0}=a,k=this._injector.get(w.ISheetDrawingService).getDrawingByParam({drawingId:e.id,unitId:n,subUnitId:i});return k?{position:{left:d,top:u,width:g,height:h,flipX:v,flipY:p,angle:I,skewX:S,skewY:O},componentKey:k.componentKey,allowTransform:k.allowTransform,data:k.data,id:e.id}:null}getAllFloatDoms(){const r=this._injector.get(m.SheetCanvasFloatDomManagerService),t=this._workbook.getUnitId(),e=this._worksheet.getSheetId();return Array.from(r.getFloatDomsBySubUnitId(t,e).values()).map(n=>{const{rect:i}=n,o=this._injector.get(w.ISheetDrawingService).getDrawingByParam({drawingId:n.id,unitId:t,subUnitId:e}),{left:a,top:d,width:u,height:g,flipX:h,flipY:v,angle:p,skewX:I,skewY:S}=i.getState();return{position:{left:a,top:d,width:u,height:g,flipX:h,flipY:v,angle:p,skewX:I,skewY:S},componentKey:o.componentKey,allowTransform:o.allowTransform,data:o.data,id:n.id}})}updateFloatDom(r,t){var I,S;const n=this._injector.get(m.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!n)return this;const{unitId:i,subUnitId:o}=n,a=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:i,subUnitId:o,drawingId:r}),d=this._injector.get(C.IRenderManagerService);if(!d.getRenderById(i))return this;if(!this.getSkeleton())return this;const h=(I=d.getRenderById(this.getWorkbook().getUnitId()))==null?void 0:I.with(D.ISheetSelectionRenderService);if(!h)return this;const v={...a,componentKey:t.componentKey||a.componentKey,allowTransform:t.allowTransform!==void 0?t.allowTransform:a.allowTransform,data:t.data||a.data,sheetTransform:t.position&&(S=m.transformToDrawingPosition(t.position,h))!=null?S:a.sheetTransform,transform:{...a.transform,...t.position}};if(!this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:i,subUnitId:o,drawings:[v]}))throw new Error("updateFloatDom failed");return this}batchUpdateFloatDoms(r){var o;const t=this._injector.get(m.SheetCanvasFloatDomManagerService),e=this._injector.get(w.ISheetDrawingService),n=this._injector.get(C.IRenderManagerService),i=[];for(const a of r){const d=t.getFloatDomInfo(a.id);if(!d)continue;const{unitId:u,subUnitId:g}=d,h=e.getDrawingByParam({unitId:u,subUnitId:g,drawingId:a.id});if(!h)continue;const v=n.getRenderById(u);if(!v||!this.getSkeleton())continue;const I=v.with(D.ISheetSelectionRenderService);if(!I)return this;const S={...h,componentKey:a.config.componentKey||h.componentKey,allowTransform:a.config.allowTransform!==void 0?a.config.allowTransform:h.allowTransform,data:a.config.data||h.data,sheetTransform:a.config.position&&(o=m.transformToDrawingPosition(a.config.position,I))!=null?o:h.sheetTransform,transform:{...h.transform,...a.config.position}};i.push(S)}if(i.length>0){const a=this._workbook.getUnitId(),d=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:a,subUnitId:d,drawings:i}))throw new Error("batchUpdateFloatDoms failed")}return this}removeFloatDom(r){const e=this._injector.get(m.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!e)return this;const{unitId:n,subUnitId:i}=e,a=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:n,subUnitId:i,drawingId:r});if(!a)return this;if(!this._commandService.syncExecuteCommand(m.RemoveSheetDrawingCommand.id,{unitId:n,drawings:[a]}))throw new Error("removeFloatDom failed");return this}addFloatDomToPosition(r,t){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),{key:i,disposableCollection:o}=b.transformComponentKey(r,this._injector.get(F.ComponentManager)),d=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...r,componentKey:i,unitId:e,subUnitId:n},t);return d?(o.add(d.dispose),{id:d.id,dispose:()=>{o.dispose(),d.dispose()}}):(o.dispose(),null)}addFloatDomToRange(r,t,e,n){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:a,disposableCollection:d}=b.transformComponentKey(t,this._injector.get(F.ComponentManager)),g=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToRange(r.getRange(),{...t,componentKey:a,unitId:i,subUnitId:o},e,n);return g?(d.add(g.dispose),{id:g.id,dispose:()=>{d.dispose(),g.dispose()}}):(d.dispose(),null)}addFloatDomToColumnHeader(r,t,e,n){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:a,disposableCollection:d}=b.transformComponentKey(t,this._injector.get(F.ComponentManager)),g=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(r,{...t,componentKey:a,unitId:i,subUnitId:o},e,n);return g?(d.add(g.dispose),{id:g.id,dispose:()=>{d.dispose(),g.dispose()}}):(d.dispose(),null)}async insertImage(r,t,e,n,i){const o=this.newOverGridImage();if(typeof r=="string")o.setSource(r);else{const u=await r.getBlob().getDataAsString();o.setSource(u,c.ImageSourceType.BASE64)}t!==void 0?o.setColumn(t):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 a=await o.buildAsync();return this._commandService.syncExecuteCommand(m.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[a]})}insertImages(r){const t=r.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(m.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}deleteImages(r){const t=r.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(m.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}getImages(){const t=this._injector.get(w.ISheetDrawingService).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),e=[];for(const n in t){const i=t[n];i.drawingType===c.DrawingTypeEnum.DRAWING_IMAGE&&e.push(this._injector.createInstance(_,i))}return e}getImageById(r){const e=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:r});return e&&e.drawingType===c.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(_,e):null}getActiveImages(){const t=this._injector.get(w.ISheetDrawingService).getFocusDrawings(),e=[];for(const n in t){const i=t[n];e.push(this._injector.createInstance(_,i))}return e}updateImages(r){return this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:r}),this}onImageInserted(r){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.add$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(_,t.getDrawingByParam(i)));r(n)}))}onImageDeleted(r){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.remove$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(_,t.getDrawingByParam(i)));r(n)}))}onImageChanged(r){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.update$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(_,t.getDrawingByParam(i)));r(n)}))}newOverGridImage(){const r=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(y,r,t)}async saveCellImagesAsync(r,t){var h;const e=this._injector.get(m.IBatchSaveImagesService),n=this._fWorkbook.getId(),i=this.getSheetId(),o=t?t.map(v=>v.getRange()):[this._worksheet.getCellMatrix().getDataRange()],a=e.getCellImagesFromRanges(n,i,o);if(a.length===0)return!1;if(a.length===1)try{return await e.downloadSingleImage(a[0]),!0}catch(v){return console.error("Failed to download image:",v),!1}const d=[],u=(h=r==null?void 0:r.useCellAddress)!=null?h:!0,g=r==null?void 0:r.useColumnIndex;u&&d.push(m.FileNamePart.CELL_ADDRESS),g!==void 0&&d.push(m.FileNamePart.COLUMN_VALUE),d.length===0&&d.push(m.FileNamePart.CELL_ADDRESS);try{return await e.saveImagesWithContext(a,{fileNameParts:d,columnIndex:g},n,i),!0}catch(v){return console.error("Failed to save images:",v),!1}}}E.FWorksheet.extend(x);class G extends l.FEnum{get DrawingType(){return c.DrawingTypeEnum}get ImageSourceType(){return c.ImageSourceType}get SheetDrawingAnchorType(){return w.SheetDrawingAnchorType}}l.FEnum.extend(G);class P extends l.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"}}l.FEventName.extend(P);class W extends l.FUniver{_initialize(r){const t=r.get(c.ICommandService);this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=o.filter(u=>u.drawingType===c.DrawingTypeEnum.DRAWING_DOM);if(a.length===0)return;const d={workbook:i,drawings:a};if(this.fireEvent(this.Event.BeforeFloatDomAdd,d),d.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.FloatDomAdded,()=>t.onCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=o.filter(d=>d.drawingType===c.DrawingTypeEnum.DRAWING_DOM);a.length!==0&&this.fireEvent(this.Event.FloatDomAdded,{workbook:i,drawings:a})})),this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a={workbook:i,insertImageParams:o};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,a),a.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const o=r.get(f.IDrawingManagerService),{drawings:a}=n,d=a.map(g=>o.getDrawingByParam(g)),u={workbook:i,images:this._createFOverGridImage(d)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,u),u.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=r.get(f.IDrawingManagerService),d=[];o.forEach(g=>{const h=a.getDrawingByParam(g);h!=null&&d.push({changeParam:g,image:this._injector.createInstance(_,h)})});const u={workbook:i,images:d};if(this.fireEvent(this.Event.BeforeOverGridImageChange,u),u.cancel)throw a.updateNotification(o),new c.CanceledError})),this.registerEventHandler(this.Event.BeforeFloatDomUpdate,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=r.get(f.IDrawingManagerService),d=[];if(o.forEach(g=>{const h=a.getDrawingByParam(g);(h==null?void 0:h.drawingType)===c.DrawingTypeEnum.DRAWING_DOM&&d.push(h)}),d.length===0)return;const u={workbook:i,drawings:d};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,u),u.cancel)throw a.updateNotification(o),new c.CanceledError})),this.registerEventHandler(this.Event.FloatDomUpdated,()=>t.onCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=r.get(f.IDrawingManagerService),d=[];o.forEach(u=>{const g=a.getDrawingByParam(u);(g==null?void 0:g.drawingType)===c.DrawingTypeEnum.DRAWING_DOM&&d.push(g)}),d.length!==0&&this.fireEvent(this.Event.FloatDomUpdated,{workbook:i,drawings:d})})),this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const o=r.get(f.IDrawingManagerService),{drawings:a}=n,d=a.map(g=>o.getDrawingByParam(g)).filter(g=>(g==null?void 0:g.drawingType)===c.DrawingTypeEnum.DRAWING_DOM);if(d.length===0)return;const u={workbook:i,drawings:d};if(this.fireEvent(this.Event.BeforeFloatDomDelete,u),u.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.FloatDomDeleted,()=>t.onCommandExecuted(e=>{if(e.id!==m.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(a=>a.drawingType===c.DrawingTypeEnum.DRAWING_DOM).map(a=>a.drawingId)})})),this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>t.beforeCommandExecuted(e=>{if(e.id!==f.SetDrawingSelectedOperation.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null)return;const o=r.get(f.IDrawingManagerService),a=o.getFocusDrawings(),d=n.map(g=>o.getDrawingByParam(g)),u={workbook:i,selectedImages:this._createFOverGridImage(d),oldSelectedImages:this._createFOverGridImage(a)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,u),u.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.OverGridImageInserted,()=>t.onCommandExecuted(e=>{if(e.id!==m.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,()=>t.onCommandExecuted(e=>{if(e.id!==m.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,()=>t.onCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=r.get(f.IDrawingManagerService),d=o.map(u=>this._injector.createInstance(_,a.getDrawingByParam(u)));this.fireEvent(this.Event.OverGridImageChanged,{workbook:i,images:d})})),this.registerEventHandler(this.Event.OverGridImageSelected,()=>t.onCommandExecuted(e=>{if(e.id!==f.SetDrawingSelectedOperation.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null)return;const o=r.get(f.IDrawingManagerService),a=n.map(d=>o.getDrawingByParam(d));this.fireEvent(this.Event.OverGridImageSelected,{workbook:i,selectedImages:this._createFOverGridImage(a)})}))}_createFOverGridImage(r){return r.map(t=>this._injector.createInstance(_,t))}}l.FUniver.extend(W);class U extends E.FRange{async insertCellImageAsync(r){var i;const t=this._injector.get(C.IRenderManagerService),e=(i=C.getCurrentTypeOfRenderer(c.UniverInstanceType.UNIVER_SHEET,this._injector.get(c.IUniverInstanceService),t))==null?void 0:i.with(m.SheetDrawingUpdateController);if(!e)return!1;const n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof r=="string"?e.insertCellImageByUrl(r,n):e.insertCellImageByFile(r,n)}async saveCellImagesAsync(r){var g;const t=this._injector.get(m.IBatchSaveImagesService),e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this.getRange(),o=t.getCellImagesFromRanges(e,n,[i]);if(o.length===0)return!1;if(o.length===1)try{return await t.downloadSingleImage(o[0]),!0}catch(h){return console.error("Failed to download image:",h),!1}const a=[],d=(g=r==null?void 0:r.useCellAddress)!=null?g:!0,u=r==null?void 0:r.useColumnIndex;d&&a.push(m.FileNamePart.CELL_ADDRESS),u!==void 0&&a.push(m.FileNamePart.COLUMN_VALUE),a.length===0&&a.push(m.FileNamePart.CELL_ADDRESS);try{return await t.saveImagesWithContext(o,{fileNameParts:a,columnIndex:u},e,n),!0}catch(h){return console.error("Failed to save images:",h),!1}}}E.FRange.extend(U)}));
|
|
1
|
+
(function(c,l){typeof exports=="object"&&typeof module<"u"?l(require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/drawing"),require("@univerjs/engine-render"),require("@univerjs/sheets-drawing-ui"),require("@univerjs/sheets-ui"),require("@univerjs/sheets-drawing"),require("@univerjs/sheets-ui/facade"),require("@univerjs/sheets/facade"),require("@univerjs/ui")):typeof define=="function"&&define.amd?define(["@univerjs/core","@univerjs/core/facade","@univerjs/drawing","@univerjs/engine-render","@univerjs/sheets-drawing-ui","@univerjs/sheets-ui","@univerjs/sheets-drawing","@univerjs/sheets-ui/facade","@univerjs/sheets/facade","@univerjs/ui"],l):(c=typeof globalThis<"u"?globalThis:c||self,l(c.UniverCore,c.UniverCoreFacade,c.UniverDrawing,c.UniverEngineRender,c.UniverSheetsDrawingUi,c.UniverSheetsUi,c.UniverSheetsDrawing,c.UniverSheetsUiFacade,c.UniverSheetsFacade,c.UniverUi))})(this,(function(c,l,f,C,m,D,w,b,E,F){"use strict";var N=Object.defineProperty;var H=(c,l,f)=>l in c?N(c,l,{enumerable:!0,configurable:!0,writable:!0,value:f}):c[l]=f;var A=(c,l,f)=>H(c,typeof l!="symbol"?l+"":l,f);var B=Object.getOwnPropertyDescriptor,T=(s,r,t,e)=>{for(var n=e>1?void 0:e?B(r,t):r,i=s.length-1,o;i>=0;i--)(o=s[i])&&(n=o(n)||n);return n},R=(s,r)=>(t,e)=>r(t,e,s);function j(s,r){const{from:t,to:e,flipY:n=!1,flipX:i=!1,angle:o=0,skewX:a=0,skewY:d=0}=s.sheetTransform,{column:u,columnOffset:g,row:h,rowOffset:v}=t,p=D.convertPositionSheetOverGridToAbsolute(s.unitId,s.subUnitId,{from:t,to:e},r),{width:I,height:S}=p;return{...s,column:u,columnOffset:g,row:h,rowOffset:v,width:I,height:S,flipY:n,flipX:i,angle:o,skewX:a,skewY:d}}function M(s,r,t){const{column:e,columnOffset:n,row:i,rowOffset:o,flipY:a=!1,flipX:d=!1,angle:u=0,skewX:g=0,skewY:h=0,width:v,height:p}=s,I=D.convertPositionCellToSheetOverGrid(s.unitId,s.subUnitId,{column:e,columnOffset:n,row:i,rowOffset:o},v,p,r,t),{sheetTransform:S,transform:O}=I;return{...s,sheetTransform:{...S,flipY:a,flipX:d,angle:u,skewX:g,skewY:h},transform:{...O,flipY:a,flipX:d,angle:u,skewX:g,skewY:h}}}let y=class{constructor(s,r,t){A(this,"_image");this._injector=t,this._image={drawingId:c.generateRandomId(6),drawingType:c.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:c.ImageSourceType.BASE64,source:"",unitId:s,subUnitId:r,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0}}setImage(s){const t=this._injector.get(C.IRenderManagerService).getRenderById(s.unitId);if(!t)throw new Error(`Render Unit with unitId ${s.unitId} not found`);const e=t.with(D.SheetSkeletonManagerService);return s.sheetTransform==null&&(s.sheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),this._image=j(s,e),this}setSource(s,r){const t=r!=null?r:c.ImageSourceType.URL;return this._image.source=s,this._image.imageSourceType=t,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(s){return this._image.column=s,this}setRow(s){return this._image.row=s,this}setColumnOffset(s){return this._image.columnOffset=s,this}setRowOffset(s){return this._image.rowOffset=s,this}setWidth(s){return this._image.width=s,this}setHeight(s){return this._image.height=s,this}setAnchorType(s){return this._image.anchorType=s,this}setCropTop(s){return this._initializeSrcRect(),this._image.srcRect.top=s,this}setCropLeft(s){return this._initializeSrcRect(),this._image.srcRect.left=s,this}setCropBottom(s){return this._initializeSrcRect(),this._image.srcRect.bottom=s,this}setCropRight(s){return this._initializeSrcRect(),this._image.srcRect.right=s,this}_initializeSrcRect(){this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(s){return this._image.angle=s,this}setUnitId(s){return this._image.unitId=s,this}setSubUnitId(s){return this._image.subUnitId=s,this}async buildAsync(){const r=this._injector.get(C.IRenderManagerService).getRenderById(this._image.unitId);if(!r)throw new Error(`Render Unit with unitId ${this._image.unitId} not found`);const t=r.with(D.ISheetSelectionRenderService),e=r.with(D.SheetSkeletonManagerService);if(this._image.width===0||this._image.height===0){const n=await f.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 M(this._image,t,e)}};y=T([R(2,c.Inject(c.Injector))],y);let _=class extends l.FBase{constructor(s,r,t){super(),this._image=s,this._commandService=r,this._injector=t}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(m.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){const s=this._injector.createInstance(y);return s.setImage(this._image),s}setSource(s,r){const t=r!=null?r:c.ImageSourceType.URL;return this._image.source=s,this._image.imageSourceType=t,this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(s,r,t,e){const n=this.toBuilder();n.setColumn(r),n.setRow(s),t!=null&&n.setRowOffset(t),e!=null&&n.setColumnOffset(e);const i=await n.buildAsync();return this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[i]})}async setSizeAsync(s,r){const t=this.toBuilder();t.setWidth(s),t.setHeight(r);const e=await t.buildAsync();return this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[e]})}setCrop(s,r,t,e){return this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0}),s!=null&&(this._image.srcRect.top=s),r!=null&&(this._image.srcRect.left=r),t!=null&&(this._image.srcRect.bottom=t),e!=null&&(this._image.srcRect.right=e),this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(s){return this._image.sheetTransform.angle=s,this._image.transform&&(this._image.transform.angle=s),this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.front})}};_=T([R(1,c.ICommandService),R(2,c.Inject(c.Injector))],_);class x extends E.FWorksheet{getFloatDomById(r){const e=this._injector.get(m.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!e)return null;const{unitId:n,subUnitId:i}=e,{rect:o}=e,a=o.getState(),{left:d=0,top:u=0,width:g=0,height:h=0,flipX:v=!1,flipY:p=!1,angle:I=0,skewX:S=0,skewY:O=0}=a,k=this._injector.get(w.ISheetDrawingService).getDrawingByParam({drawingId:e.id,unitId:n,subUnitId:i});return k?{position:{left:d,top:u,width:g,height:h,flipX:v,flipY:p,angle:I,skewX:S,skewY:O},componentKey:k.componentKey,allowTransform:k.allowTransform,data:k.data,id:e.id}:null}getAllFloatDoms(){const r=this._injector.get(m.SheetCanvasFloatDomManagerService),t=this._workbook.getUnitId(),e=this._worksheet.getSheetId();return Array.from(r.getFloatDomsBySubUnitId(t,e).values()).map(n=>{const{rect:i}=n,o=this._injector.get(w.ISheetDrawingService).getDrawingByParam({drawingId:n.id,unitId:t,subUnitId:e}),{left:a,top:d,width:u,height:g,flipX:h,flipY:v,angle:p,skewX:I,skewY:S}=i.getState();return{position:{left:a,top:d,width:u,height:g,flipX:h,flipY:v,angle:p,skewX:I,skewY:S},componentKey:o.componentKey,allowTransform:o.allowTransform,data:o.data,id:n.id}})}updateFloatDom(r,t){var I,S;const n=this._injector.get(m.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!n)return this;const{unitId:i,subUnitId:o}=n,a=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:i,subUnitId:o,drawingId:r}),d=this._injector.get(C.IRenderManagerService);if(!d.getRenderById(i))return this;if(!this.getSkeleton())return this;const h=(I=d.getRenderById(this.getWorkbook().getUnitId()))==null?void 0:I.with(D.ISheetSelectionRenderService);if(!h)return this;const v={...a,componentKey:t.componentKey||a.componentKey,allowTransform:t.allowTransform!==void 0?t.allowTransform:a.allowTransform,data:t.data||a.data,sheetTransform:t.position&&(S=m.transformToDrawingPosition(t.position,h))!=null?S:a.sheetTransform,transform:{...a.transform,...t.position}};if(!this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:i,subUnitId:o,drawings:[v]}))throw new Error("updateFloatDom failed");return this}batchUpdateFloatDoms(r){var o;const t=this._injector.get(m.SheetCanvasFloatDomManagerService),e=this._injector.get(w.ISheetDrawingService),n=this._injector.get(C.IRenderManagerService),i=[];for(const a of r){const d=t.getFloatDomInfo(a.id);if(!d)continue;const{unitId:u,subUnitId:g}=d,h=e.getDrawingByParam({unitId:u,subUnitId:g,drawingId:a.id});if(!h)continue;const v=n.getRenderById(u);if(!v||!this.getSkeleton())continue;const I=v.with(D.ISheetSelectionRenderService);if(!I)return this;const S={...h,componentKey:a.config.componentKey||h.componentKey,allowTransform:a.config.allowTransform!==void 0?a.config.allowTransform:h.allowTransform,data:a.config.data||h.data,sheetTransform:a.config.position&&(o=m.transformToDrawingPosition(a.config.position,I))!=null?o:h.sheetTransform,transform:{...h.transform,...a.config.position}};i.push(S)}if(i.length>0){const a=this._workbook.getUnitId(),d=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:a,subUnitId:d,drawings:i}))throw new Error("batchUpdateFloatDoms failed")}return this}removeFloatDom(r){const e=this._injector.get(m.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!e)return this;const{unitId:n,subUnitId:i}=e,a=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:n,subUnitId:i,drawingId:r});if(!a)return this;if(!this._commandService.syncExecuteCommand(m.RemoveSheetDrawingCommand.id,{unitId:n,drawings:[a]}))throw new Error("removeFloatDom failed");return this}addFloatDomToPosition(r,t){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),{key:i,disposableCollection:o}=b.transformComponentKey(r,this._injector.get(F.ComponentManager)),d=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...r,componentKey:i,unitId:e,subUnitId:n},t);return d?(o.add(d.dispose),{id:d.id,dispose:()=>{o.dispose(),d.dispose()}}):(o.dispose(),null)}addFloatDomToRange(r,t,e,n){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:a,disposableCollection:d}=b.transformComponentKey(t,this._injector.get(F.ComponentManager)),g=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToRange(r.getRange(),{...t,componentKey:a,unitId:i,subUnitId:o},e,n);return g?(d.add(g.dispose),{id:g.id,dispose:()=>{d.dispose(),g.dispose()}}):(d.dispose(),null)}addFloatDomToColumnHeader(r,t,e,n){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:a,disposableCollection:d}=b.transformComponentKey(t,this._injector.get(F.ComponentManager)),g=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(r,{...t,componentKey:a,unitId:i,subUnitId:o},e,n);return g?(d.add(g.dispose),{id:g.id,dispose:()=>{d.dispose(),g.dispose()}}):(d.dispose(),null)}async insertImage(r,t,e,n,i){const o=this.newOverGridImage();if(typeof r=="string")o.setSource(r);else{const u=await r.getBlob().getDataAsString();o.setSource(u,c.ImageSourceType.BASE64)}t!==void 0?o.setColumn(t):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 a=await o.buildAsync();return this._commandService.syncExecuteCommand(m.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[a]})}insertImages(r){const t=r.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(m.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}deleteImages(r){const t=r.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(m.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}getImages(){const t=this._injector.get(w.ISheetDrawingService).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),e=[];for(const n in t){const i=t[n];i.drawingType===c.DrawingTypeEnum.DRAWING_IMAGE&&e.push(this._injector.createInstance(_,i))}return e}getImageById(r){const e=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:r});return e&&e.drawingType===c.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(_,e):null}getActiveImages(){const t=this._injector.get(w.ISheetDrawingService).getFocusDrawings(),e=[];for(const n in t){const i=t[n];e.push(this._injector.createInstance(_,i))}return e}updateImages(r){return this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:r}),this}onImageInserted(r){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.add$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(_,t.getDrawingByParam(i)));r(n)}))}onImageDeleted(r){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.remove$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(_,t.getDrawingByParam(i)));r(n)}))}onImageChanged(r){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.update$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(_,t.getDrawingByParam(i)));r(n)}))}newOverGridImage(){const r=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(y,r,t)}async saveCellImagesAsync(r,t){var h;const e=this._injector.get(m.IBatchSaveImagesService),n=this._fWorkbook.getId(),i=this.getSheetId(),o=t?t.map(v=>v.getRange()):[this._worksheet.getCellMatrix().getDataRange()],a=e.getCellImagesFromRanges(n,i,o);if(a.length===0)return!1;if(a.length===1)try{return await e.downloadSingleImage(a[0]),!0}catch(v){return console.error("Failed to download image:",v),!1}const d=[],u=(h=r==null?void 0:r.useCellAddress)!=null?h:!0,g=r==null?void 0:r.useColumnIndex;u&&d.push(m.FileNamePart.CELL_ADDRESS),g!==void 0&&d.push(m.FileNamePart.COLUMN_VALUE),d.length===0&&d.push(m.FileNamePart.CELL_ADDRESS);try{return await e.saveImagesWithContext(a,{fileNameParts:d,columnIndex:g},n,i),!0}catch(v){return console.error("Failed to save images:",v),!1}}}E.FWorksheet.extend(x);class G extends l.FEnum{get DrawingType(){return c.DrawingTypeEnum}get ImageSourceType(){return c.ImageSourceType}get SheetDrawingAnchorType(){return w.SheetDrawingAnchorType}}l.FEnum.extend(G);class P extends l.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"}}l.FEventName.extend(P);class W extends l.FUniver{_initialize(r){const t=r.get(c.ICommandService);this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=o.filter(u=>u.drawingType===c.DrawingTypeEnum.DRAWING_DOM);if(a.length===0)return;const d={workbook:i,drawings:a};if(this.fireEvent(this.Event.BeforeFloatDomAdd,d),d.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.FloatDomAdded,()=>t.onCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=o.filter(d=>d.drawingType===c.DrawingTypeEnum.DRAWING_DOM);a.length!==0&&this.fireEvent(this.Event.FloatDomAdded,{workbook:i,drawings:a})})),this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a={workbook:i,insertImageParams:o};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,a),a.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const o=r.get(f.IDrawingManagerService),{drawings:a}=n,d=a.map(g=>o.getDrawingByParam(g)),u={workbook:i,images:this._createFOverGridImage(d)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,u),u.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=r.get(f.IDrawingManagerService),d=[];o.forEach(g=>{const h=a.getDrawingByParam(g);h!=null&&d.push({changeParam:g,image:this._injector.createInstance(_,h)})});const u={workbook:i,images:d};if(this.fireEvent(this.Event.BeforeOverGridImageChange,u),u.cancel)throw a.updateNotification(o),new c.CanceledError})),this.registerEventHandler(this.Event.BeforeFloatDomUpdate,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=r.get(f.IDrawingManagerService),d=[];if(o.forEach(g=>{const h=a.getDrawingByParam(g);(h==null?void 0:h.drawingType)===c.DrawingTypeEnum.DRAWING_DOM&&d.push(h)}),d.length===0)return;const u={workbook:i,drawings:d};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,u),u.cancel)throw a.updateNotification(o),new c.CanceledError})),this.registerEventHandler(this.Event.FloatDomUpdated,()=>t.onCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=r.get(f.IDrawingManagerService),d=[];o.forEach(u=>{const g=a.getDrawingByParam(u);(g==null?void 0:g.drawingType)===c.DrawingTypeEnum.DRAWING_DOM&&d.push(g)}),d.length!==0&&this.fireEvent(this.Event.FloatDomUpdated,{workbook:i,drawings:d})})),this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const o=r.get(f.IDrawingManagerService),{drawings:a}=n,d=a.map(g=>o.getDrawingByParam(g)).filter(g=>(g==null?void 0:g.drawingType)===c.DrawingTypeEnum.DRAWING_DOM);if(d.length===0)return;const u={workbook:i,drawings:d};if(this.fireEvent(this.Event.BeforeFloatDomDelete,u),u.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.FloatDomDeleted,()=>t.onCommandExecuted(e=>{if(e.id!==m.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(a=>a.drawingType===c.DrawingTypeEnum.DRAWING_DOM).map(a=>a.drawingId)})})),this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>t.beforeCommandExecuted(e=>{if(e.id!==f.SetDrawingSelectedOperation.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null)return;const o=r.get(f.IDrawingManagerService),a=o.getFocusDrawings(),d=n.map(g=>o.getDrawingByParam(g)),u={workbook:i,selectedImages:this._createFOverGridImage(d),oldSelectedImages:this._createFOverGridImage(a)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,u),u.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.OverGridImageInserted,()=>t.onCommandExecuted(e=>{if(e.id!==m.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,()=>t.onCommandExecuted(e=>{if(e.id!==m.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,()=>t.onCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,a=r.get(f.IDrawingManagerService),d=o.map(u=>this._injector.createInstance(_,a.getDrawingByParam(u)));this.fireEvent(this.Event.OverGridImageChanged,{workbook:i,images:d})})),this.registerEventHandler(this.Event.OverGridImageSelected,()=>t.onCommandExecuted(e=>{if(e.id!==f.SetDrawingSelectedOperation.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null)return;const o=r.get(f.IDrawingManagerService),a=n.map(d=>o.getDrawingByParam(d));this.fireEvent(this.Event.OverGridImageSelected,{workbook:i,selectedImages:this._createFOverGridImage(a)})}))}_createFOverGridImage(r){return r.map(t=>this._injector.createInstance(_,t))}registerURLImageDownloader(r){return this._injector.get(m.IBatchSaveImagesService).registerURLImageDownloader(r)}}l.FUniver.extend(W);class U extends E.FRange{async insertCellImageAsync(r){var i;const t=this._injector.get(C.IRenderManagerService),e=(i=C.getCurrentTypeOfRenderer(c.UniverInstanceType.UNIVER_SHEET,this._injector.get(c.IUniverInstanceService),t))==null?void 0:i.with(m.SheetDrawingUpdateController);if(!e)return!1;const n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof r=="string"?e.insertCellImageByUrl(r,n):e.insertCellImageByFile(r,n)}async saveCellImagesAsync(r){var g;const t=this._injector.get(m.IBatchSaveImagesService),e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this.getRange(),o=t.getCellImagesFromRanges(e,n,[i]);if(o.length===0)return!1;if(o.length===1)try{return await t.downloadSingleImage(o[0]),!0}catch(h){return console.error("Failed to download image:",h),!1}const a=[],d=(g=r==null?void 0:r.useCellAddress)!=null?g:!0,u=r==null?void 0:r.useColumnIndex;d&&a.push(m.FileNamePart.CELL_ADDRESS),u!==void 0&&a.push(m.FileNamePart.COLUMN_VALUE),a.length===0&&a.push(m.FileNamePart.CELL_ADDRESS);try{return await t.saveImagesWithContext(o,{fileNameParts:a,columnIndex:u},e,n),!0}catch(h){return console.error("Failed to save images:",h),!1}}}E.FRange.extend(U)}));
|