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