facade.js 15 KB

1
  1. "use strict";var B=Object.defineProperty;var j=(i,t,e)=>t in i?B(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var y=(i,t,e)=>j(i,typeof t!="symbol"?t+"":t,e);const o=require("@univerjs/core"),I=require("@univerjs/drawing"),E=require("@univerjs/engine-render"),c=require("@univerjs/sheets-drawing-ui"),v=require("@univerjs/sheets-ui"),l=require("@univerjs/sheets-drawing"),p=require("@univerjs/sheets-ui/facade"),G=require("@univerjs/sheets/facade"),D=require("@univerjs/ui");var A=Object.defineProperty,F=Object.getOwnPropertyDescriptor,R=(i,t,e,r)=>{for(var n=r>1?void 0:r?F(t,e):t,s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=(r?a(t,e,n):a(n))||n);return r&&n&&A(t,e,n),n},C=(i,t)=>(e,r)=>t(e,r,i);function M(i,t){const{from:e,to:r,flipY:n=!1,flipX:s=!1,angle:a=0,skewX:d=0,skewY:g=0}=i.sheetTransform,{column:u,columnOffset:m,row:w,rowOffset:S}=e,_=v.convertPositionSheetOverGridToAbsolute(i.unitId,i.subUnitId,{from:e,to:r},t),{left:k,top:O,width:b,height:T}=_;return{...i,column:u,columnOffset:m,row:w,rowOffset:S,width:b,height:T,flipY:n,flipX:s,angle:a,skewX:d,skewY:g}}function U(i,t,e){const{column:r,columnOffset:n,row:s,rowOffset:a,flipY:d=!1,flipX:g=!1,angle:u=0,skewX:m=0,skewY:w=0,width:S,height:_}=i,k=v.convertPositionCellToSheetOverGrid(i.unitId,i.subUnitId,{column:r,columnOffset:n,row:s,rowOffset:a},S,_,t,e),{sheetTransform:O,transform:b}=k;return{...i,sheetTransform:{...O,flipY:d,flipX:g,angle:u,skewX:m,skewY:w},transform:{...b,flipY:d,flipX:g,angle:u,skewX:m,skewY:w}}}let f=class{constructor(i,t,e){y(this,"_image");this._injector=e,this._image={drawingId:o.generateRandomId(6),drawingType:o.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:o.ImageSourceType.BASE64,source:"",unitId:i,subUnitId:t,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0}}setImage(i){const e=this._injector.get(E.IRenderManagerService).getRenderById(i.unitId);if(!e)throw new Error(`Render Unit with unitId ${i.unitId} not found`);const r=e.with(v.SheetSkeletonManagerService);return i.sheetTransform==null&&(i.sheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),this._image=M(i,r),this}setSource(i,t){const e=t!=null?t:o.ImageSourceType.URL;return this._image.source=i,this._image.imageSourceType=e,this}getsource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(i){return this._image.column=i,this}setRow(i){return this._image.row=i,this}setColumnOffset(i){return this._image.columnOffset=i,this}setRowOffset(i){return this._image.rowOffset=i,this}setWidth(i){return this._image.width=i,this}setHeight(i){return this._image.height=i,this}setAnchorType(i){return this._image.anchorType=i,this}setCropTop(i){return this._initializeSrcRect(),this._image.srcRect.top=i,this}setCropLeft(i){return this._initializeSrcRect(),this._image.srcRect.left=i,this}setCropBottom(i){return this._initializeSrcRect(),this._image.srcRect.bottom=i,this}setCropRight(i){return this._initializeSrcRect(),this._image.srcRect.right=i,this}_initializeSrcRect(){this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(i){return this._image.angle=i,this}setUnitId(i){return this._image.unitId=i,this}setSubUnitId(i){return this._image.subUnitId=i,this}async buildAsync(){const t=this._injector.get(E.IRenderManagerService).getRenderById(this._image.unitId);if(!t)throw new Error(`Render Unit with unitId ${this._image.unitId} not found`);const e=t.with(v.ISheetSelectionRenderService),r=t.with(v.SheetSkeletonManagerService);if(this._image.width===0||this._image.height===0){const n=await I.getImageSize(this._image.source),s=n.width,a=n.height;this._image.width===0&&(this._image.width=s),this._image.height===0&&(this._image.height=a)}return U(this._image,e,r)}};f=R([C(2,o.Inject(o.Injector))],f);let h=class extends o.FBase{constructor(i,t,e){super(),this._image=i,this._commandService=t,this._injector=e}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(c.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){const i=this._injector.createInstance(f);return i.setImage(this._image),i}setSource(i,t){const e=t!=null?t:o.ImageSourceType.URL;return this._image.source=i,this._image.imageSourceType=e,this._commandService.syncExecuteCommand(c.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(i,t,e,r){const n=this.toBuilder();n.setColumn(t),n.setRow(i),e!=null&&n.setRowOffset(e),r!=null&&n.setColumnOffset(r);const s=await n.buildAsync();return this._commandService.syncExecuteCommand(c.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[s]})}async setSizeAsync(i,t){const e=this.toBuilder();e.setWidth(i),e.setHeight(t);const r=await e.buildAsync();return this._commandService.syncExecuteCommand(c.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[r]})}setCrop(i,t,e,r){return this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0}),i!=null&&(this._image.srcRect.top=i),t!=null&&(this._image.srcRect.left=t),e!=null&&(this._image.srcRect.bottom=e),r!=null&&(this._image.srcRect.right=r),this._commandService.syncExecuteCommand(c.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(i){return this._image.sheetTransform.angle=i,this._commandService.syncExecuteCommand(c.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(c.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(c.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(c.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(c.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.front})}};h=R([C(1,o.ICommandService),C(2,o.Inject(o.Injector))],h);class x extends G.FWorksheet{addFloatDomToPosition(t,e){const r=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),{key:s,disposableCollection:a}=p.transformComponentKey(t,this._injector.get(D.ComponentManager)),g=this._injector.get(c.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...t,componentKey:s,unitId:r,subUnitId:n},e);return g?(a.add(g.dispose),{id:g.id,dispose:()=>{a.dispose(),g.dispose()}}):(a.dispose(),null)}addFloatDomToRange(t,e,r,n){const s=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:d,disposableCollection:g}=p.transformComponentKey(e,this._injector.get(D.ComponentManager)),m=this._injector.get(c.SheetCanvasFloatDomManagerService).addFloatDomToRange(t.getRange(),{...e,componentKey:d,unitId:s,subUnitId:a},r,n);return m?(g.add(m.dispose),{id:m.id,dispose:()=>{g.dispose(),m.dispose()}}):(g.dispose(),null)}addFloatDomToColumnHeader(t,e,r,n){const s=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:d,disposableCollection:g}=p.transformComponentKey(e,this._injector.get(D.ComponentManager)),m=this._injector.get(c.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(t,{...e,componentKey:d,unitId:s,subUnitId:a},r,n);return m?(g.add(m.dispose),{id:m.id,dispose:()=>{g.dispose(),m.dispose()}}):(g.dispose(),null)}async insertImage(t,e,r,n,s){const a=this.newOverGridImage();if(typeof t=="string")a.setSource(t);else{const u=await t.getBlob().getDataAsString();a.setSource(u,o.ImageSourceType.BASE64)}e!==void 0?a.setColumn(e):a.setColumn(0),r!==void 0?a.setRow(r):a.setRow(0),n!==void 0?a.setColumnOffset(n):a.setColumnOffset(0),s!==void 0?a.setRowOffset(s):a.setRowOffset(0);const d=await a.buildAsync();return this._commandService.syncExecuteCommand(c.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[d]})}insertImages(t){const e=t.map(r=>(r.unitId=this._fWorkbook.getId(),r.subUnitId=this.getSheetId(),r));return this._commandService.syncExecuteCommand(c.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:e}),this}deleteImages(t){const e=t.map(r=>({unitId:this._fWorkbook.getId(),drawingId:r.getId(),subUnitId:this.getSheetId(),drawingType:r.getType()}));return this._commandService.syncExecuteCommand(c.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:e}),this}getImages(){const e=this._injector.get(l.ISheetDrawingService).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),r=[];for(const n in e){const s=e[n];s.drawingType===o.DrawingTypeEnum.DRAWING_IMAGE&&r.push(this._injector.createInstance(h,s))}return r}getImageById(t){const r=this._injector.get(l.ISheetDrawingService).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:t});return r&&r.drawingType===o.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(h,r):null}getActiveImages(){const e=this._injector.get(l.ISheetDrawingService).getFocusDrawings(),r=[];for(const n in e){const s=e[n];r.push(this._injector.createInstance(h,s))}return r}updateImages(t){return this._commandService.syncExecuteCommand(c.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}onImageInserted(t){const e=this._injector.get(l.ISheetDrawingService);return o.toDisposable(e.add$.subscribe(r=>{const n=r.map(s=>this._injector.createInstance(h,e.getDrawingByParam(s)));t(n)}))}onImageDeleted(t){const e=this._injector.get(l.ISheetDrawingService);return o.toDisposable(e.remove$.subscribe(r=>{const n=r.map(s=>this._injector.createInstance(h,e.getDrawingByParam(s)));t(n)}))}onImageChanged(t){const e=this._injector.get(l.ISheetDrawingService);return o.toDisposable(e.update$.subscribe(r=>{const n=r.map(s=>this._injector.createInstance(h,e.getDrawingByParam(s)));t(n)}))}newOverGridImage(){const t=this._fWorkbook.getId(),e=this.getSheetId();return this._injector.createInstance(f,t,e)}}G.FWorksheet.extend(x);class P extends o.FEnum{get DrawingType(){return o.DrawingTypeEnum}get ImageSourceType(){return o.ImageSourceType}get SheetDrawingAnchorType(){return l.SheetDrawingAnchorType}}o.FEnum.extend(P);class W extends o.FEventName{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"}}o.FEventName.extend(W);class q extends o.FUniver{_initialize(t){const e=t.get(o.ICommandService);this.disposeWithMe(e.beforeCommandExecuted(r=>{switch(r.id){case c.InsertSheetDrawingCommand.id:this._beforeOverGridImageInsert(r.params);break;case c.RemoveSheetDrawingCommand.id:this._beforeOverGridImageRemove(r.params);break;case c.SetSheetDrawingCommand.id:this._beforeOverGridImageChange(r.params);break;case I.SetDrawingSelectedOperation.id:this._beforeOverGridImageSelect(r.params);break}})),this.disposeWithMe(e.onCommandExecuted(r=>{switch(r.id){case c.InsertSheetDrawingCommand.id:this._overGridImageInserted(r.params);break;case c.RemoveSheetDrawingCommand.id:this._overGridImageRemoved(r.params);break;case c.SetSheetDrawingCommand.id:this._overGridImageChanged(r.params);break;case I.SetDrawingSelectedOperation.id:this._overGridImageSelected(r.params);break}}))}_beforeOverGridImageInsert(t){if(!this.hasEventCallback(this.Event.BeforeOverGridImageInsert))return;const e=this.getActiveWorkbook();if(e==null||t==null)return;const{drawings:r}=t,n={workbook:e,insertImageParams:r};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,n),n.cancel)throw new Error("Canceled by BeforeOverGridImageInsert event")}_overGridImageInserted(t){if(!this.hasEventCallback(this.Event.OverGridImageInserted))return;const e=this.getActiveWorkbook();if(e==null||t==null)return;const{drawings:r}=t;this.fireEvent(this.Event.OverGridImageInserted,{workbook:e,images:this._createFOverGridImage(r)})}_beforeOverGridImageRemove(t){if(!this.hasEventCallback(this.Event.BeforeOverGridImageRemove))return;const e=this.getActiveWorkbook();if(e==null||t==null)return;const{drawings:r}=t,n=this._injector.get(I.IDrawingManagerService),s=r.map(d=>n.getDrawingByParam(d)),a={workbook:e,images:this._createFOverGridImage(s)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,a),a.cancel)throw new Error("Canceled by BeforeOverGridImageRemove event")}_overGridImageRemoved(t){if(!this.hasEventCallback(this.Event.OverGridImageRemoved))return;const e=this.getActiveWorkbook();if(e==null||t==null)return;const{drawings:r}=t;this.fireEvent(this.Event.OverGridImageRemoved,{workbook:e,removeImageParams:r})}_beforeOverGridImageChange(t){if(!this.hasEventCallback(this.Event.BeforeOverGridImageChange))return;const e=this.getActiveWorkbook();if(e==null||t==null)return;const{drawings:r}=t,n=this._injector.get(I.IDrawingManagerService),s=[];r.forEach(d=>{const g=n.getDrawingByParam(d);g!=null&&s.push({changeParam:d,image:this._injector.createInstance(h,g)})});const a={workbook:e,images:s};if(this.fireEvent(this.Event.BeforeOverGridImageChange,a),a.cancel)throw n.updateNotification(r),new Error("Canceled by BeforeOverGridImageChange event")}_overGridImageChanged(t){if(!this.hasEventCallback(this.Event.OverGridImageChanged))return;const e=this.getActiveWorkbook();if(e==null||t==null)return;const{drawings:r}=t,n=this._injector.get(I.IDrawingManagerService),s=r.map(a=>this._injector.createInstance(h,n.getDrawingByParam(a)));this.fireEvent(this.Event.OverGridImageChanged,{workbook:e,images:s})}_beforeOverGridImageSelect(t){if(!this.hasEventCallback(this.Event.BeforeOverGridImageSelect))return;const e=this._injector.get(I.IDrawingManagerService),r=this.getActiveWorkbook();if(r==null)return;const n=e.getFocusDrawings(),s=t.map(d=>e.getDrawingByParam(d)),a={workbook:r,selectedImages:this._createFOverGridImage(s),oldSelectedImages:this._createFOverGridImage(n)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,a),a.cancel)throw new Error("Canceled by BeforeOverGridImageSelect event")}_overGridImageSelected(t){if(!this.hasEventCallback(this.Event.OverGridImageSelected))return;const e=this.getActiveWorkbook(),r=this._injector.get(I.IDrawingManagerService);if(e==null)return;const n=t.map(s=>r.getDrawingByParam(s));this.fireEvent(this.Event.OverGridImageSelected,{workbook:e,selectedImages:this._createFOverGridImage(n)})}_createFOverGridImage(t){return t.map(e=>this._injector.createInstance(h,e))}}o.FUniver.extend(q);