@univerjs/sheets-drawing-ui 0.18.0 → 0.19.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/index.js +2 -7
- package/lib/es/index.js +2 -7
- package/lib/index.js +2 -7
- package/lib/umd/index.js +2 -7
- package/package.json +15 -15
package/lib/umd/index.js
CHANGED
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/engine-render`),require(`@univerjs/sheets-ui`),require(`@univerjs/core`),require(`@univerjs/sheets-drawing`),require(`@univerjs/sheets`),require(`@univerjs/design`),require(`@univerjs/docs-ui`),require(`@univerjs/drawing`),require(`@univerjs/ui`),require(`@univerjs/docs-drawing`),require(`@univerjs/drawing-ui`),require(`rxjs`),require(`react`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/engine-render`,`@univerjs/sheets-ui`,`@univerjs/core`,`@univerjs/sheets-drawing`,`@univerjs/sheets`,`@univerjs/design`,`@univerjs/docs-ui`,`@univerjs/drawing`,`@univerjs/ui`,`@univerjs/docs-drawing`,`@univerjs/drawing-ui`,`rxjs`,`react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawingUi={},e.UniverEngineRender,e.UniverSheetsUi,e.UniverCore,e.UniverSheetsDrawing,e.UniverSheets,e.UniverDesign,e.UniverDocsUi,e.UniverDrawing,e.UniverUi,e.UniverDocsDrawing,e.UniverDrawingUi,e.rxjs,e.React,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function h(e,t,r){let{from:i,to:a,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e,d=r.getCurrent();if(d==null)return;let{left:f,top:p,width:m,height:h}=(0,n.convertPositionSheetOverGridToAbsolute)(d.unitId,d.sheetId,{from:i,to:a},r),g=r.getCurrentSkeleton(),_=g.rowHeaderWidth+g.columnTotalWidth,v=g.columnHeaderHeight+g.rowTotalHeight;return f+m>_&&(f=_-m),p+h>v&&(p=v-h),{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,left:f,top:p,width:m,height:h}}function g(e,n){let{left:r=0,top:i=0,width:a=0,height:o=0,flipY:s=!1,flipX:c=!1,angle:l=0,skewX:u=0,skewY:d=0}=e,f=n.getCellWithCoordByOffset(r,i);if(f==null)return;let p={column:f.actualColumn,columnOffset:(0,t.precisionTo)(r-f.startX,1),row:f.actualRow,rowOffset:(0,t.precisionTo)(i-f.startY,1)},m=n.getCellWithCoordByOffset(r+a,i+o);if(m!=null)return{flipY:s,flipX:c,angle:l,skewX:u,skewY:d,from:p,to:{column:m.actualColumn,columnOffset:(0,t.precisionTo)(r+a-m.startX,1),row:m.actualRow,rowOffset:(0,t.precisionTo)(i+o-m.startY,1)}}}function _(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:o=0}=e,s=(o%360+360)%360;return g(s>=45&&s<135||s>=225&&s<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}let v={id:`sheet.operation.clear-drawing-transformer`,type:r.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IRenderManagerService);return n.forEach(e=>{var t;(t=r.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},y={id:`sheet.command.remove-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{var n;let o=e.get(r.ICommandService),s=e.get(r.IUndoRedoService),c=e.get(a.SheetInterceptorService),l=e.get(i.ISheetDrawingService);if(!t)return!1;let{drawings:u}=t,d=[];u.forEach(e=>{let{unitId:t}=e;d.push(t)});let{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=l.getBatchRemoveOp(u),_=c.onCommandExecute({id:y.id,params:t}),b={id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:h,objects:g,type:i.DrawingApplyType.REMOVE}},x={id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:m,objects:g,type:i.DrawingApplyType.INSERT}};if((0,r.sequenceExecute)([...(n=_.preRedos)==null?[]:n,b,..._.redos],o)){var S,C;return s.pushUndoRedo({unitID:f,undoMutations:[...(S=_.preUndos)==null?[]:S,x,..._.undos,{id:v.id,params:d}],redoMutations:[...(C=_.preRedos)==null?[]:C,b,..._.redos,{id:v.id,params:d}]}),!0}return!1}},b={id:`sheet.command.delete-drawing`,type:r.CommandType.COMMAND,handler:e=>{let t=e.get(r.ICommandService),n=e.get(i.ISheetDrawingService).getFocusDrawings();if(n.length===0)return!1;let a=n[0].unitId,o=n.map(e=>{let{unitId:t,subUnitId:n,drawingId:r,drawingType:i}=e;return{unitId:t,subUnitId:n,drawingId:r,drawingType:i}});return t.executeCommand(y.id,{unitId:a,drawings:o})}};function x(e){let n=[];return e.forEach(e=>{let{parent:i,children:a}=e,{unitId:o,subUnitId:s,drawingId:c}=i,l=(0,t.getGroupState)(0,0,a.map(e=>e.transform||{})),u=a.map(e=>{let t=e.transform||{left:0,top:0},{unitId:n,subUnitId:r,drawingId:i}=e;return{unitId:n,subUnitId:r,drawingId:i,transform:{...t,left:t.left,top:t.top},groupId:c}}),d={unitId:o,subUnitId:s,drawingId:c,drawingType:r.DrawingTypeEnum.DRAWING_GROUP,groupBaseBound:{...i.groupBaseBound},transform:l};n.push({parent:d,children:u})}),n}function S(e){let n=[];return e.forEach(e=>{let{parent:i,children:a}=e,{unitId:o,subUnitId:s,drawingId:c,transform:l={width:0,height:0}}=i;if(l==null)return;let u=a.map(e=>{let{transform:n}=e,{unitId:r,subUnitId:a,drawingId:o}=e;return{unitId:r,subUnitId:a,drawingId:o,transform:(0,t.transformObjectOutOfGroup)(n||{},l,l.width||0,l.height||0,i.groupBaseBound),groupId:void 0}}),d={unitId:o,subUnitId:s,drawingId:c,drawingType:r.DrawingTypeEnum.DRAWING_GROUP,transform:{left:0,top:0}};n.push({parent:d,children:u})}),n}function C(e){var t;let n=new Map;(t=e.flatChildren)==null||t.forEach(e=>n.set(e.drawingId,(0,r.generateRandomId)(10))),e.groups.forEach(e=>n.set(e.drawingId,(0,r.generateRandomId)(10)));let i={};for(let[t,r]of Object.entries(e.nestedIdRecord)){var a,o;let e=(a=n.get(t))==null?t:a;i[e]={drawingId:e,children:(o=r.children)==null?void 0:o.map(e=>{var t;return(t=n.get(e))==null?e:t})}}let s=[],c=[];for(let t of e.groups){var l,u;let e=(l=n.get(t.drawingId))==null?t.drawingId:l,r=t.groupId?(u=n.get(t.groupId))==null?t.groupId:u:void 0;c.push(w(t,e,r))}for(let t of e.flatChildren||[]){var d,f;let e=(d=n.get(t.drawingId))==null?t.drawingId:d,r=t.groupId?(f=n.get(t.groupId))==null?t.groupId:f:void 0;s.push(w(t,e,r))}return{cloned:{nestedIdRecord:i,flatChildren:s,groups:c},idMap:n}}function w(e,t,n){let r={...e};return t&&(r.drawingId=t),n?r.groupId=n:delete r.groupId,JSON.parse(JSON.stringify(r))}let T={id:`sheet.command.group-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{let n=e.get(r.ICommandService),a=e.get(r.IUndoRedoService),o=e.get(i.ISheetDrawingService);if(!t)return!1;let s=[];t.forEach(({parent:e,children:t})=>{s.push(e.unitId),t.forEach(e=>{s.push(e.unitId)})});let{unitId:c,subUnitId:l,undo:u,redo:d,objects:f}=o.getGroupDrawingOp(t);return n.syncExecuteCommand(i.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.GROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:S(f),type:i.DrawingApplyType.UNGROUP}},{id:v.id,params:s}],redoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.GROUP}},{id:v.id,params:s}]}),!0):!1}},E={id:`sheet.command.insert-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{var n;let o=e.get(r.ICommandService),s=e.get(r.IUndoRedoService),c=e.get(i.ISheetDrawingService),l=e.get(a.SheetInterceptorService);if(!t)return!1;let u=t.drawings,d=u.map(e=>e.unitId),{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=c.getBatchAddOp(u),_=l.onCommandExecute({id:E.id,params:t}),y={id:i.SetDrawingApplyMutation.id,params:{op:h,unitId:f,subUnitId:p,objects:g,type:i.DrawingApplyType.INSERT}},b={id:i.SetDrawingApplyMutation.id,params:{op:m,unitId:f,subUnitId:p,objects:g,type:i.DrawingApplyType.REMOVE}};if((0,r.sequenceExecute)([...(n=_.preRedos)==null?[]:n,y,..._.redos],o)){var x,S;return s.pushUndoRedo({unitID:f,undoMutations:[...(x=_.preUndos)==null?[]:x,b,..._.undos,{id:v.id,params:d}],redoMutations:[...(S=_.preRedos)==null?[]:S,y,..._.redos,{id:v.id,params:d}]}),!0}return!1}},D={id:`sheet.command.set-drawing-arrange`,type:r.CommandType.COMMAND,handler:(e,t)=>{let n=e.get(r.ICommandService),a=e.get(r.IUndoRedoService);if(!t)return!1;let o=e.get(i.ISheetDrawingService),{unitId:s,subUnitId:c,drawingIds:l,arrangeType:u}=t,d={unitId:s,subUnitId:c,drawingIds:l},f;if(u===r.ArrangeTypeEnum.forward?f=o.getForwardDrawingsOp(d):u===r.ArrangeTypeEnum.backward?f=o.getBackwardDrawingOp(d):u===r.ArrangeTypeEnum.front?f=o.getFrontDrawingsOp(d):u===r.ArrangeTypeEnum.back&&(f=o.getBackDrawingsOp(d)),f==null)return!1;let{objects:p,redo:m,undo:h}=f;return n.syncExecuteCommand(i.SetDrawingApplyMutation.id,{op:m,unitId:s,subUnitId:c,objects:p,type:i.DrawingApplyType.ARRANGE})?(a.pushUndoRedo({unitID:s,undoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:h,unitId:s,subUnitId:c,objects:p,type:i.DrawingApplyType.ARRANGE}}],redoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:m,unitId:s,subUnitId:c,objects:p,type:i.DrawingApplyType.ARRANGE}}]}),!0):!1}},O={id:`sheet.command.set-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{var n,o;let s=e.get(r.ICommandService),c=e.get(r.IUndoRedoService),l=e.get(i.ISheetDrawingService),u=e.get(a.SheetInterceptorService);if(!t)return!1;let{drawings:d}=t,{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=l.getBatchUpdateOp(d),_=u.onCommandExecute({id:O.id,params:t}),y=[...(n=_.preRedos)==null?[]:n,{id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:h,objects:g,type:i.DrawingApplyType.UPDATE}},..._.redos,{id:v.id,params:[f]}],b=[...(o=_.preUndos)==null?[]:o,{id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:m,objects:g,type:i.DrawingApplyType.UPDATE}},..._.undos,{id:v.id,params:[f]}];return(0,r.sequenceExecute)(y,s)?(c.pushUndoRedo({unitID:f,undoMutations:b,redoMutations:y}),!0):!1}},k={id:`sheet.command.ungroup-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{let n=e.get(r.ICommandService),a=e.get(r.IUndoRedoService),o=e.get(i.ISheetDrawingService);if(!t)return!1;let s=[];t.forEach(({parent:e,children:t})=>{s.push(e.unitId),t.forEach(e=>{s.push(e.unitId)})});let{unitId:c,subUnitId:l,undo:u,redo:d,objects:f}=o.getUngroupDrawingOp(t);return n.syncExecuteCommand(i.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.UNGROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:x(f),type:i.DrawingApplyType.GROUP}},{id:v.id,params:s}],redoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.UNGROUP}},{id:v.id,params:s}]}),!0):!1}};function A(e){"@babel/helpers - typeof";return A=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},A(e)}function j(e,t){if(A(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(A(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function M(e){var t=j(e,`string`);return A(t)==`symbol`?t:t+``}function N(e,t,n){return(t=M(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(e,t){return function(n,r){t(n,r,e)}}function F(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 I(e,t,n){let r=n*Math.PI/180;return{rotatedWidth:Math.abs(e*Math.cos(r))+Math.abs(t*Math.sin(r)),rotatedHeight:Math.abs(e*Math.sin(r))+Math.abs(t*Math.cos(r))}}function L(e,r,i,a,o){var s;let{rotatedHeight:c,rotatedWidth:l}=I(i,a,o),u=e.get(t.IRenderManagerService).getRenderById(r.unitId);if(!u)return!1;let d=(s=u.with(n.SheetSkeletonManagerService).getSkeletonParam(r.subUnitId))==null?void 0:s.skeleton;if(d==null)return!1;let f=d.getCellByIndex(r.row,r.col),p=f.mergeInfo.endX-f.mergeInfo.startX-2,m=f.mergeInfo.endY-f.mergeInfo.startY-2,h=l/c,g=Math.ceil(Math.min(p,m*h))/l,_=!g||Number.isNaN(g)?.001:g;return{width:i*_,height:a*_}}let R=class extends r.Disposable{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){super(),this._context=e,this._skeletonManagerService=t,this._commandService=n,this._selectionRenderService=r,this._imageIoService=i,this._fileOpenerService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._contextService=c,this._messageService=l,this._localeService=u,this._injector=f,this._urlImageService=p,N(this,`_workbookSelections`,void 0),this._workbookSelections=d.getWorkbookSelections(this._context.unitId),this._updateDrawingListener(),this._updateOrderListener(),this._groupDrawingListener(),this._focusDrawingListener()}async insertFloatImage(){let e=await this._fileOpenerService.openFile({multiple:!0,accept:c.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>c.DRAWING_IMAGE_COUNT_LIMIT?(this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(c.DRAWING_IMAGE_COUNT_LIMIT))}),!1):t===0?!1:(e.forEach(async e=>await this.insertFloatImageByFile(e)),!0)}async insertCellImage(){let e=(await this._fileOpenerService.openFile({multiple:!1,accept:c.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}))[0];return e?(await this._insertCellImage(e),!0):!1}insertCellImageByFile(e,t){return this._insertCellImage(e,t)}async insertFloatImageByFile(e){var t;let n;try{n=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===c.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(c.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===c.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===c.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(n==null)return;let{unitId:i,subUnitId:a}=this._getUnitInfo(),{imageId:s,imageSourceType:l,source:u,base64Cache:d}=n,{width:f,height:p,image:m}=await(0,c.getImageSize)(d||``),{width:g,height:v}=this._context.scene;this._imageIoService.addImageSourceCache(u,l,m);let y=1;if(f>c.DRAWING_IMAGE_WIDTH_LIMIT||p>c.DRAWING_IMAGE_HEIGHT_LIMIT){let e=c.DRAWING_IMAGE_WIDTH_LIMIT/f,t=c.DRAWING_IMAGE_HEIGHT_LIMIT/p;y=Math.max(e,t)}let b=this._getImagePosition(f*y,p*y,g,v);if(b==null)return;let x=h(b,this._selectionRenderService,this._skeletonManagerService),S={unitId:i,subUnitId:a,drawingId:s,drawingType:r.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l,source:u,transform:x,sheetTransform:b,axisAlignSheetTransform:(t=_(x,this._selectionRenderService))==null?b:t};return this._commandService.executeCommand(E.id,{unitId:i,drawings:[S]})}async _insertCellImage(e,t){let n;try{n=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===c.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(c.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===c.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===c.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(n==null)return!1;let{imageId:i,imageSourceType:l,source:u,base64Cache:d}=n,{width:f,height:p,image:m}=await(0,c.getImageSize)(d||``);this._imageIoService.addImageSourceCache(u,l,m);let h=this._workbookSelections.getCurrentLastSelection();if(!h)return!1;let g=h.primary.actualRow,_=h.primary.actualColumn;h.primary.isMerged&&(g=h.primary.startRow,_=h.primary.startColumn);let v=(0,r.createDocumentModelWithStyle)(``,{}),y=L(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:g,col:_},f,p,0);if(!y)return!1;let b={size:{width:y.width,height:y.height},positionH:{relativeFrom:r.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:r.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},x={unitId:v.getUnitId(),subUnitId:v.getUnitId(),drawingId:i,drawingType:r.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l,source:u,transform:(0,s.docDrawingPositionToTransform)(b),docTransform:b,behindDoc:r.BooleanNumber.FALSE,title:``,description:``,layoutType:r.PositionedObjectLayoutType.INLINE,wrapText:r.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},S=r.BuildTextUtils.drawing.add({documentDataModel:v,drawings:[x],selection:{collapsed:!0,startOffset:0,endOffset:0}});if(S){var C,w;return v.apply(S),this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{value:{[(C=t==null?void 0:t.row)==null?g:C]:{[(w=t==null?void 0:t.col)==null?_:w]:{p:v.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})}return!1}async insertCellImageByUrl(e,t){let n=e;try{n=await this._urlImageService.getImage(e)}catch(t){console.error(`Failed to get image from URLImageService: ${e}`,t)}let{width:i,height:o,image:l}=await(0,c.getImageSize)(n||``);this._imageIoService.addImageSourceCache(e,r.ImageSourceType.URL,l);let u=this._workbookSelections.getCurrentLastSelection();if(!u)return!1;let d=(0,r.createDocumentModelWithStyle)(``,{}),f=L(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:u.primary.actualRow,col:u.primary.actualColumn},i,o,0);if(!f)return!1;let p={size:{width:f.width,height:f.height},positionH:{relativeFrom:r.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:r.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},m={unitId:d.getUnitId(),subUnitId:d.getUnitId(),drawingId:(0,r.generateRandomId)(),drawingType:r.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:r.ImageSourceType.URL,source:e,transform:(0,s.docDrawingPositionToTransform)(p),docTransform:p,behindDoc:r.BooleanNumber.FALSE,title:``,description:``,layoutType:r.PositionedObjectLayoutType.INLINE,wrapText:r.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},h=r.BuildTextUtils.drawing.add({documentDataModel:d,drawings:[m],selection:{collapsed:!0,startOffset:0,endOffset:0}});if(h){var g,_;return d.apply(h),this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{value:{[(g=t==null?void 0:t.row)==null?u.primary.actualRow:g]:{[(_=t==null?void 0:t.col)==null?u.primary.actualColumn:_]:{p:d.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})}return!1}_getUnitInfo(){let e=this._context.unit,t=e.getActiveSheet();return{unitId:e.getUnitId(),subUnitId:t.getSheetId()}}_getImagePosition(e,t,r,i){let a=this._workbookSelections.getCurrentSelections(),o={startRow:0,endRow:0,startColumn:0,endColumn:0};a&&a.length>0&&(o=a[a.length-1].range);let s=(0,n.attachRangeWithCoord)(this._skeletonManagerService.getCurrent().skeleton,o);if(s==null)return;let{startColumn:c,startRow:l,startX:u,startY:d}=s,f=!1;if(u+e>r&&(u=r-e,u<0&&(u=0,e=r),f=!0),d+t>i&&(d=i-t,d<0&&(d=0,t=i),f=!0),f){let e=this._selectionRenderService.getCellWithCoordByOffset(u,d);if(e==null)return;u=e.startX,d=e.startY,c=e.actualColumn,l=e.actualRow}let p={column:c,columnOffset:0,row:l,rowOffset:0},m=this._selectionRenderService.getCellWithCoordByOffset(u+e,d+t);if(m!=null)return{from:p,to:{column:m.actualColumn,columnOffset:u+e-m.startX,row:m.actualRow,rowOffset:d+t-m.startY}}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(D.id,{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i})}))}_updateDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{let t=[];e.length!==0&&(e.forEach(e=>{let{unitId:n,subUnitId:r,drawingId:i,drawingType:a,transform:o}=e;if(o==null)return;let s=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:r,drawingId:i});if(s==null||s.unitId!==this._context.unitId)return;let c=g({...s.transform,...o},this._selectionRenderService),l=_({...s.transform,...o},this._selectionRenderService);if(c==null||l==null)return;let u={...e,transform:{...s.transform,...o,...h(c,this._selectionRenderService,this._skeletonManagerService)},sheetTransform:{...c},axisAlignSheetTransform:{...l}};t.push(u)}),t.length>0&&this._commandService.executeCommand(O.id,{unitId:e[0].unitId,drawings:t}))}))}_getSheetTransformByParam(e,t){let{unitId:n,subUnitId:r,drawingId:i,transform:a}=e;if(a==null)return null;let o=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:r,drawingId:i}),s=o==null?void 0:o.transform;if(t&&(s={}),!t&&(o==null||o.unitId!==this._context.unitId))return null;let c=g({...s,...a},this._selectionRenderService),l=_({...s,...a},this._selectionRenderService);return c==null||l==null?null:{sheetTransform:c,axisAlignSheetTransform:l}}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{let t=[];for(let n of e){let e=this._getSheetTransformByParam(n.parent,!0),r=[];for(let e of n.children){let t=this._getSheetTransformByParam(e,!1);t!=null&&r.push({...e,sheetTransform:t.sheetTransform,axisAlignSheetTransform:t.axisAlignSheetTransform})}let i={parent:{...n.parent,sheetTransform:e==null?void 0:e.sheetTransform,axisAlignSheetTransform:e==null?void 0:e.axisAlignSheetTransform},children:r};t.push(i)}if(t.length>0){this._commandService.executeCommand(T.id,t);let{unitId:n,subUnitId:r,drawingId:i}=e[0].parent;this._commandService.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[{unitId:n,subUnitId:r,drawingId:i}])}})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{let t=[];for(let n of e){let{children:e}=n,r=[];for(let t of e){let e=this._getSheetTransformByParam(t,!1);e!=null&&r.push({...t,sheetTransform:e.sheetTransform,axisAlignSheetTransform:e.axisAlignSheetTransform})}t.push({...n,children:r})}this._commandService.executeCommand(k.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!0),this._sheetDrawingService.focusDrawing(e))}))}};R=F([P(1,(0,r.Inject)(n.SheetSkeletonManagerService)),P(2,r.ICommandService),P(3,n.ISheetSelectionRenderService),P(4,c.IImageIoService),P(5,l.ILocalFileService),P(6,i.ISheetDrawingService),P(7,c.IDrawingManagerService),P(8,r.IContextService),P(9,l.IMessageService),P(10,(0,r.Inject)(r.LocaleService)),P(11,(0,r.Inject)(a.SheetsSelectionsService)),P(12,(0,r.Inject)(r.Injector)),P(13,r.IURLImageService)],R);let z={id:`sheet.command.insert-float-image`,type:r.CommandType.COMMAND,handler:async(e,n)=>{var i;let a=e.get(r.IUniverInstanceService),o=e.get(t.IRenderManagerService),s=(i=(0,t.getCurrentTypeOfRenderer)(r.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(R);if(!s)return!1;let c=n==null?void 0:n.files;if(c){let e=c.map(e=>s.insertFloatImageByFile(e));return(await Promise.all(e)).every(e=>e)}else{var l;return(l=s.insertFloatImage())==null?!1:l}}},B={id:`sheet.command.insert-cell-image`,type:r.CommandType.COMMAND,handler:e=>{var n,i;let a=e.get(r.IUniverInstanceService),o=e.get(t.IRenderManagerService);return(n=(i=(0,t.getCurrentTypeOfRenderer)(r.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(R).insertCellImage())==null?!1:n}},V={id:`sheet.command.move-drawing`,type:r.CommandType.COMMAND,handler:(e,t)=>{let a=e.get(r.ICommandService),o=e.get(i.ISheetDrawingService),s=e.get(n.ISheetSelectionRenderService),{direction:c}=t,l=o.getFocusDrawings();if(l.length===0)return!1;let u=l[0].unitId,d=l.map(e=>{let{transform:t}=e;if(t==null)return null;let n={...t},{left:i=0,top:a=0}=t;return c===r.Direction.UP?n.top=a-1:c===r.Direction.DOWN?n.top=a+1:c===r.Direction.LEFT?n.left=i-1:c===r.Direction.RIGHT&&(n.left=i+1),{...e,transform:n,sheetTransform:g(n,s),axisAlignSheetTransform:_(n,s)}}).filter(e=>e!=null);return a.syncExecuteCommand(O.id,{unitId:u,drawings:d})?(a.syncExecuteCommand(v.id,[u]),!0):!1}},H=function(e){return e.CELL_ADDRESS=`cellAddress`,e.COLUMN_VALUE=`columnValue`,e}({}),U=(0,r.createIdentifier)(`sheets-drawing-ui.batch-save-images.service`);function W(e){let t=``,n=e;for(;n>=0;)t=String.fromCharCode(n%26+65)+t,n=Math.floor(n/26)-1;return t}function G(e,t){return`${W(t)}${e+1}`}function ee(e){let t=G(e.startRow,e.startColumn),n=G(e.endRow,e.endColumn);return t===n?t:`${t}:${n}`}function K(e){var t,n;return!!(!(e==null||(t=e.p)==null||(t=t.drawingsOrder)==null)&&t.length&&(e==null||(n=e.p)==null||(n=n.drawingsOrder)==null?void 0:n.length)>0)}function q(e){var t,n;if(!(!((t=e.p)==null||(t=t.drawingsOrder)==null)&&t.length)||!((n=e.p)!=null&&n.drawings))return null;let r=e.p.drawingsOrder[0],i=e.p.drawings[r];return!i||!(`source`in i)||!(`imageSourceType`in i)?null:i}function J(e,t){if(t===r.ImageSourceType.BASE64){let t=e.match(/^data:image\/(\w+);/);if(t)return t[1]===`jpeg`?`jpg`:t[1]}if(t===r.ImageSourceType.URL){let t=e.match(/\.(\w+)(?:\?|$)/);if(t)return t[1].toLowerCase()}return`png`}async function te(e,t){if(t===r.ImageSourceType.BASE64||t===r.ImageSourceType.URL)return(await fetch(e)).blob();throw Error(`UUID image type requires additional handling`)}let Y=class extends r.Disposable{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._selectionService=t,this._imageIoService=n,this._urlImageService=r}registerURLImageDownloader(e){return this._urlImageService.registerURLImageDownloader(e)}getCellImagesInSelection(){let e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let i=t.getCellMatrix(),a=[];for(let e of n){let{startRow:t,endRow:n,startColumn:r,endColumn:o}=e.range;for(let e=t;e<=n;e++)for(let t=r;t<=o;t++){let n=i.getValue(e,t);if(K(n)){let r=q(n);r&&a.push({row:e,col:t,cellAddress:G(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return a}getCellImagesFromRanges(e,t,n){let i=this._univerInstanceService.getUnit(e,r.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(t);if(!a)return[];let o=a.getCellMatrix(),s=[];for(let e of n){let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;for(let e=t;e<=n;e++)for(let t=r;t<=i;t++){let n=o.getValue(e,t);if(K(n)){let r=q(n);r&&s.push({row:e,col:t,cellAddress:G(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return s}getDataColumns(){let e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let i=t.getCellMatrix(),a=i.getDataRange(),o=1/0,s=-1/0,c=new Set;for(let e of n){o=Math.min(o,e.range.startRow),s=Math.max(s,e.range.endRow);for(let t=e.range.startColumn;t<=e.range.endColumn;t++)c.add(t)}let l=new Set;for(let e=a.startColumn;e<=a.endColumn;e++)if(!c.has(e))for(let t=o;t<=s;t++){let n=i.getValue(t,e);if(n){var u,d;if((u=n.v)!=null&&u.toString()||!((d=n.p)==null||(d=d.body)==null||(d=d.dataStream)==null)&&d.trim()){l.add(e);break}}}let f=[],p=Array.from(l).sort((e,t)=>e-t);for(let e of p)f.push({index:e,label:W(e)});return f}getDataColumnsForRanges(e,t,n){let i=this._univerInstanceService.getUnit(e,r.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(t);if(!a)return[];let o=a.getCellMatrix(),s=o.getDataRange(),c=1/0,l=-1/0,u=new Set;for(let e of n){c=Math.min(c,e.startRow),l=Math.max(l,e.endRow);for(let t=e.startColumn;t<=e.endColumn;t++)u.add(t)}let d=new Set;for(let e=s.startColumn;e<=s.endColumn;e++)if(!u.has(e))for(let t=c;t<=l;t++){let n=o.getValue(t,e);if(n){var f,p;if((f=n.v)!=null&&f.toString()||!((p=n.p)==null||(p=p.body)==null||(p=p.dataStream)==null)&&p.trim()){d.add(e);break}}}let m=[],h=Array.from(d).sort((e,t)=>e-t);for(let e of h)m.push({index:e,label:W(e)});return m}getSelectionRangeNotation(){let e=this._selectionService.getCurrentSelections();return!e||e.length===0?``:e.map(e=>ee(e.range)).join(`, `)}getSelectionRowRange(){let e=this._selectionService.getCurrentSelections();if(!e||e.length===0)return null;let t=1/0,n=-1/0;for(let r of e)t=Math.min(t,r.range.startRow),n=Math.max(n,r.range.endRow);return{startRow:t,endRow:n}}getSelectionColumnIndices(){let e=this._selectionService.getCurrentSelections();if(!e||e.length===0)return new Set;let t=new Set;for(let n of e)for(let e=n.range.startColumn;e<=n.range.endColumn;e++)t.add(e);return t}generateFileName(e,t){let n=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET),i=J(e.source,e.imageSourceType),a=[];for(let r of t.fileNameParts)if(r===H.CELL_ADDRESS)a.push(e.cellAddress);else if(r===H.COLUMN_VALUE&&t.columnIndex!==void 0){let r=n==null?void 0:n.getActiveSheet();if(r){let n=r.getCellMatrix().getValue(e.row,t.columnIndex);if(n){var o,s;let e=((o=n.v)==null?void 0:o.toString())||((s=n.p)==null||(s=s.body)==null||(s=s.dataStream)==null?void 0:s.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&a.push(t)}}}}return a.length===0?`${e.cellAddress}.${i}`:`${a.join(`_`)}.${i}`}generateFileNameWithContext(e,t,n,i){let a=this._univerInstanceService.getUnit(n,r.UniverInstanceType.UNIVER_SHEET),o=J(e.source,e.imageSourceType),s=[];for(let n of t.fileNameParts)if(n===H.CELL_ADDRESS)s.push(e.cellAddress);else if(n===H.COLUMN_VALUE&&t.columnIndex!==void 0){let n=a==null?void 0:a.getSheetBySheetId(i);if(n){let r=n.getCellMatrix().getValue(e.row,t.columnIndex);if(r){var c,l;let e=((c=r.v)==null?void 0:c.toString())||((l=r.p)==null||(l=l.body)==null||(l=l.dataStream)==null?void 0:l.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&s.push(t)}}}}return s.length===0?`${e.cellAddress}.${o}`:`${s.join(`_`)}.${o}`}async saveImages(e,t){let n=await window.showDirectoryPicker({mode:`readwrite`}),r=new Map;for(let a of e){var i;let e=this.generateFileName(a,t),o=e.replace(/\.\w+$/,``),s=((i=e.match(/\.\w+$/))==null?void 0:i[0])||`.png`,c=r.get(o)||0;c>0&&(e=`${o}_${c}${s}`),r.set(o,c+1);try{let t=await this._getImageBlob(a),r=await(await n.getFileHandle(e,{create:!0})).createWritable();await r.write(t),await r.close()}catch(t){throw console.error(`Failed to save image ${e}:`,t),t}}}async saveImagesWithContext(e,t,n,r){let i=await window.showDirectoryPicker({mode:`readwrite`}),a=new Map;for(let s of e){var o;let e=this.generateFileNameWithContext(s,t,n,r),c=e.replace(/\.\w+$/,``),l=((o=e.match(/\.\w+$/))==null?void 0:o[0])||`.png`,u=a.get(c)||0;u>0&&(e=`${c}_${u}${l}`),a.set(c,u+1);try{let t=await this._getImageBlob(s),n=await(await i.getFileHandle(e,{create:!0})).createWritable();await n.write(t),await n.close()}catch(t){throw console.error(`Failed to save image ${e}:`,t),t}}}async downloadSingleImage(e){let t=J(e.source,e.imageSourceType),n=`${e.cellAddress}.${t}`;try{let t=await this._getImageBlob(e),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=n,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}catch(e){throw console.error(`Failed to download image ${n}:`,e),e}}async _getImageBlob(e){return e.imageSourceType===r.ImageSourceType.UUID?te(await this._imageIoService.getImage(e.source),r.ImageSourceType.URL):e.imageSourceType===r.ImageSourceType.URL?this._urlImageService.downloadImage(e.source):te(e.source,e.imageSourceType)}};Y=F([P(0,r.IUniverInstanceService),P(1,(0,r.Inject)(a.SheetsSelectionsService)),P(2,r.IImageIoService),P(3,r.IURLImageService)],Y);let X=`sheet.dialog.batch-save-images`,ne={id:`sheet.command.save-cell-images`,type:r.CommandType.COMMAND,handler:async e=>{let t=e.get(l.IDialogService),n=e.get(U),i=n.getCellImagesInSelection();if(i.length===1)try{return await n.downloadSingleImage(i[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let a=e.get(r.LocaleService),o=n.getSelectionRangeNotation(),s=`${a.t(`sheetImage.save.title`)} (${o})`;return t.open({id:X,draggable:!0,width:360,title:{title:s},children:{label:X},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>t.close(X)}),!0}},re=`COMPONENT_SHEET_DRAWING_PANEL`,ie={id:`sidebar.operation.sheet-image`,type:r.CommandType.COMMAND,handler:async(e,t)=>{let n=e.get(l.ISidebarService),i=e.get(r.LocaleService),o=e.get(r.IUniverInstanceService),s=e.get(r.ICommandService);if(!(0,a.getSheetCommandTarget)(o))return!1;switch(t.value){case`open`:n.open({header:{title:i.t(`sheetImage.panel.title`)},children:{label:re},onClose:()=>{s.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[])},width:360});break;default:n.close();break}return!0}},ae={id:`sheet.operation.edit-sheet-image`,type:r.CommandType.OPERATION,handler:(e,t)=>{let n=e.get(r.ICommandService);return t==null?!1:(n.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[t]),n.executeCommand(ie.id,{value:`open`}),!0)}},oe=[n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA],se=class extends r.Disposable{constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetDrawingService=n,this._drawingManagerService=r,N(this,`_featurePasteHooks`,[]),N(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._sheetDrawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_DRAWING_GROUP`,onBeforeCopy:(e,t)=>{this._copyInfo=null;let n=this._focusedDrawings;if(n.length===0)return;let i=n.find(e=>e.drawingType===r.DrawingTypeEnum.DRAWING_GROUP);if(!i)return;let a=this._drawingManagerService.getDrawingsByGroupNested({unitId:i.unitId,subUnitId:i.subUnitId,drawingId:i.drawingId});a&&(this._copyInfo={unitId:i.unitId,subUnitId:i.subUnitId,groupNestedParam:a})},onPasteCells:(e,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{pasteType:i}=r;return oe.includes(i)?{redos:[],undos:[]}:this._generateGroupPasteMutations(t)},onPasteUnrecognized:e=>this._copyInfo?this._generateGroupPasteMutations(e):{redos:[],undos:[]}})}registerFeaturePasteHook(e){this._featurePasteHooks.push(e)}_getGroupFeaturePasteMutations(e){let t=[],n=[];for(let r of this._featurePasteHooks){let i=r(e);t.push(...i.redos),n.push(...i.undos)}return{redos:t,undos:n}}_generateGroupPasteMutations(e){var t;let{unitId:r,subUnitId:o,range:s}=e,c=this._renderManagerService.getRenderById(r),l=c==null?void 0:c.with(n.SheetSkeletonManagerService),u=c==null?void 0:c.with(n.ISheetSelectionRenderService);if(!l||!u||!this._copyInfo)return{redos:[],undos:[]};let{groupNestedParam:d}=this._copyInfo,f=d.groups[d.groups.length-1],{cloned:p,idMap:m}=C(d),h=p.groups[p.groups.length-1].drawingId,v=(0,a.discreteRangeToRange)(s),y=l.attachRangeWithCoord({startRow:v.startRow,endRow:v.endRow,startColumn:v.startColumn,endColumn:v.endColumn});if(!y)return{redos:[],undos:[]};let b={...f.transform,left:y.startX,top:y.startY},x=[...((t=p.flatChildren)==null?[]:t).map(e=>({...e,unitId:r,subUnitId:o})),...p.groups.map(e=>{var t,n;return e.drawingId===h?{...e,unitId:r,subUnitId:o,transform:b,sheetTransform:(t=g(b,u))==null?f.sheetTransform:t,axisAlignSheetTransform:(n=_(b,u))==null?f.sheetTransform:n}:{...e,unitId:r,subUnitId:o}})],{undo:S,redo:w,objects:T}=this._sheetDrawingService.getBatchAddOp(x),E=[{id:i.SetDrawingApplyMutation.id,params:{op:w,unitId:r,subUnitId:o,objects:T,type:i.DrawingApplyType.INSERT}}],D=[{id:i.SetDrawingApplyMutation.id,params:{op:S,unitId:r,subUnitId:o,objects:T,type:i.DrawingApplyType.REMOVE}}],O=this._getGroupFeaturePasteMutations({fromUnitId:this._copyInfo.unitId,fromSubUnitId:this._copyInfo.subUnitId,toUnitId:r,toSubUnitId:o,idMap:m,cloned:p});return E.push(...O.redos),D.push(...O.undos),{redos:E,undos:D}}dispose(){this._copyInfo=null,this._featurePasteHooks.length=0,super.dispose()}};se=F([P(0,n.ISheetClipboardService),P(1,t.IRenderManagerService),P(2,i.ISheetDrawingService),P(3,c.IDrawingManagerService)],se);let ce=`sheet.menu.image`;function le(e){return{id:ce,type:l.MenuItemType.SUBITEMS,icon:`AddImageIcon`,tooltip:`sheetImage.title`,hidden$:(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET),disabled$:(0,n.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}}function ue(e){return{id:z.id,title:`sheetImage.upload.float`,type:l.MenuItemType.BUTTON,hidden$:(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET)}}function de(e){return{id:B.id,title:`sheetImage.upload.cell`,type:l.MenuItemType.BUTTON,hidden$:(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET)}}var fe=`@univerjs/sheets-drawing-ui`,pe=`0.18.0`;let me=`sheets-drawing-ui.config`;Symbol(me);let he={},ge=class extends r.RxDisposable{constructor(e,t,n,r){super(),this._drawingManagerService=e,this._contextMenuService=t,this._renderManagerService=n,this._univerInstanceService=r,this._init()}_init(){this._univerInstanceService.getAllUnitsForType(r.UniverInstanceType.UNIVER_SHEET).forEach(e=>this._contextMenuListener(e))}_contextMenuListener(e){var t;if(!e)return;let n=(t=this._renderManagerService.getRenderById(e.getUnitId()))==null?void 0:t.scene;if(!n)return;let r=n.getTransformerByCreate();r&&this.disposeWithMe(r.changeEnd$.subscribe(e=>{let{event:t}=e;if(t.button!==2)return;let n=r.getSelectedObjectMap();if(n.size!==0){for(let e of n.values()){let t=e.oKey;if(!this._drawingManagerService.getDrawingOKey(t))return}this._contextMenuService.triggerContextMenu(t,l.ContextMenuPosition.DRAWING)}}))}};ge=F([P(0,c.IDrawingManagerService),P(1,l.IContextMenuService),P(2,t.IRenderManagerService),P(3,r.IUniverInstanceService)],ge);let _e=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._hoverManagerService=t,this._selectionsService=n,this._drawingRenderService=r,this._sheetSkeletonManagerService=i,N(this,`_isSetCursor`,!1),this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe((0,f.throttleTime)(33)).subscribe(e=>{var n,r;let i=[];e!==null&&(i=this._selectionsService.getWorkbookSelections(this._context.unitId).getCurrentSelections()),i.length>0&&(e==null?void 0:e.unitId)===this._context.unitId&&e!=null&&e.drawing&&i.length===1&&((n=i[0].primary)==null?void 0:n.actualRow)===e.row&&((r=i[0].primary)==null?void 0:r.actualColumn)===e.col?(this._isSetCursor=!0,this._context.scene.setCursor(t.CURSOR_TYPE.ZOOM_IN)):this._isSetCursor&&(this._isSetCursor=!1,this._context.scene.resetCursor())}))}_initImageClick(){this.disposeWithMe(this._hoverManagerService.currentClickedCell$.subscribe(e=>{if(e!=null&&e.drawing&&this._isSetCursor){var t;let n=e.drawing.drawing.drawingOrigin,r=(t=this._sheetSkeletonManagerService.getCurrentSkeleton())==null?void 0:t.imageCacheMap.getImage(n.imageSourceType,n.source);if(!r)return;this._drawingRenderService.previewImage(`preview-cell-image`,r.src,r.width,r.height),this._context.scene.resetCursor(),this._isSetCursor=!1}}))}};_e=F([P(1,(0,r.Inject)(n.HoverManagerService)),P(2,(0,r.Inject)(a.SheetsSelectionsService)),P(3,(0,r.Inject)(d.DrawingRenderService)),P(4,(0,r.Inject)(n.SheetSkeletonManagerService))],_e);let ve=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._sheetDrawingService=t,this._drawingManagerService=n,this._sheetSelectionRenderService=r,this._sheetSkeletonManagerService=i,this._init()}_init(){this._drawingInitializeListener()}_drawingInitializeListener(){this._sheetDrawingService.initializeNotification(this._context.unitId);let e=this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId);for(let t in e){let n=e[t];for(let e in n.data){let t=n.data[e];t.sheetTransform&&(t.transform=h(t.sheetTransform,this._sheetSelectionRenderService,this._sheetSkeletonManagerService))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};ve=F([P(1,i.ISheetDrawingService),P(2,c.IDrawingManagerService),P(3,(0,r.Inject)(n.ISheetSelectionRenderService)),P(4,(0,r.Inject)(n.SheetSkeletonManagerService))],ve);function ye(e,t,n){var r,i;if((n==null||(r=n.p)==null||(r=r.body)==null?void 0:r.dataStream.length)===3&&((i=n.p)==null||(i=i.drawingsOrder)==null?void 0:i.length)===1){let r=n.p.drawings[n.p.drawingsOrder[0]],i=L(e,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},r.docTransform.size.width,r.docTransform.size.height,r.docTransform.angle);if(i)return r.transform.width=i.width,r.transform.height=i.height,r.docTransform.size.width=i.width,r.docTransform.size.height=i.height,r.transform.left=0,r.transform.top=0,r.docTransform.positionH.posOffset=0,r.docTransform.positionV.posOffset=0,n.p.documentStyle.pageSize.width=1/0,n.p.documentStyle.pageSize.height=1/0,!0}return!1}let be=class extends r.Disposable{constructor(e,t,n,r,i,a){super(),this._commandService=e,this._sheetInterceptorService=t,this._injector=n,this._drawingManagerService=r,this._docDrawingController=i,this._editorBridgeService=a,this._handleInitEditor(),this._initCellContentInterceptor()}_handleInitEditor(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(e=>{e.visible?e.visible&&(this._drawingManagerService.removeDrawingDataForUnit(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)):this._drawingManagerService.removeDrawingDataForUnit(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{e.id===s.ReplaceSnapshotCommand.id&&e.params.unitId===r.DOCS_ZEN_EDITOR_UNIT_ID_KEY&&(this._drawingManagerService.removeDrawingDataForUnit(r.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(r.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(r.DOCS_ZEN_EDITOR_UNIT_ID_KEY))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(a.INTERCEPTOR_POINT.CELL_CONTENT,{effect:r.InterceptorEffectEnum.Style,priority:a.InterceptCellContentPriority.CELL_IMAGE,handler:(e,t,n)=>{var r;return e!=null&&e.p&&(r=e.p.drawingsOrder)!=null&&r.length&&(e===t.rawData&&(e={...t.rawData}),e.interceptorStyle||(e.interceptorStyle={}),e.interceptorStyle.tr={a:0},ye(this._injector,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},e)),n(e)}}))}};be=F([P(0,r.ICommandService),P(1,(0,r.Inject)(a.SheetInterceptorService)),P(2,(0,r.Inject)(r.Injector)),P(3,c.IDrawingManagerService),P(4,(0,r.Inject)(u.DocDrawingController)),P(5,(0,r.Inject)(n.IEditorBridgeService))],be);let xe=class extends r.Disposable{constructor(e,t){super(),this._autoFillService=e,this._injector=t,this._initAutoFillHooks()}_initAutoFillHooks(){this.disposeWithMe(this._autoFillService.addHook({id:`sheet-cell-image-autofill`,onBeforeSubmit:(e,t,n,i)=>{new r.ObjectMatrix(i).forValue((t,n,r)=>{ye(this._injector,{unitId:e.unitId,subUnitId:e.subUnitId,row:t,col:n},r)})}}))}};xe=F([P(0,(0,r.Inject)(a.IAutoFillService)),P(1,(0,r.Inject)(r.Injector))],xe);let Se=[r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,r.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,r.DOCS_ZEN_EDITOR_UNIT_ID_KEY],Ce=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._commandService=e,this._univerInstanceService=t,this._dialogService=n,this._renderManagerService=r,this._localeService=i,this._initDocImageCopyPasteHooks()}_setCellImage(e){var i;let a=(0,r.createDocumentModelWithStyle)(``,{}),o=(i=(0,t.getCurrentTypeOfRenderer)(r.UniverInstanceType.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService))==null?void 0:i.with(n.EditingRenderController),s=r.BuildTextUtils.drawing.add({documentDataModel:a,drawings:[e],selection:{collapsed:!0,startOffset:0,endOffset:0}});s&&(a.apply(s),o&&o.submitCellData(a))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===s.InnerPasteCommand.id){var t;let{doc:a}=e.params,o=this._univerInstanceService.getCurrentUnitOfType(r.UniverInstanceType.UNIVER_DOC);if(o==null||!Object.keys((t=a.drawings)==null?{}:t).length)return;let s=o.getUnitId();if(Se.includes(s)){if(s!==r.DOCS_ZEN_EDITOR_UNIT_ID_KEY){var i;let e=()=>{this._dialogService.close(`sheet-cell-image-copy-paste`),this._commandService.syncExecuteCommand(n.SetCellEditVisibleOperation.id,{visible:!1})};((i=o.getBody())==null?void 0:i.dataStream)===`\r
|
|
2
|
-
`?(this._commandService.syncExecuteCommand(n.SetCellEditVisibleOperation.id,{visible:!1}),this._setCellImage(Object.values(a.drawings)[0])):this._dialogService.open({id:`sheet-cell-image-copy-paste`,title:{label:this._localeService.t(`cell-image.pasteTitle`)},children:{label:this._localeService.t(`cell-image.pasteContent`)},width:320,destroyOnClose:!0,onClose:e,showOk:!0,showCancel:!0,onOk:()=>{e(),this._setCellImage(Object.values(a.drawings)[0])},onCancel:e})}throw Error(`Sheet cell image copy paste is not supported in this unit`)}}}))}};Ce=F([P(0,r.ICommandService),P(1,r.IUniverInstanceService),P(2,l.IDialogService),P(3,t.IRenderManagerService),P(4,(0,r.Inject)(r.LocaleService))],Ce);let we=`image/png`;function Te(e){let t=e.split(`,`),n=atob(t[1]),r=n.length,i=new Uint8Array(r);for(let e=0;e<r;e++)i[e]=n.charCodeAt(e);return new Blob([i],{type:we})}function Ee(e){let t=new ClipboardItem({[we]:Te(e)});navigator.clipboard.write([t]).catch(e=>{console.error(`Could not copy image using clipboard API: `,e)})}function De(){function e(){let e=document.createElement(`input`);return e.style.position=`absolute`,e.style.height=`1px`,e.style.width=`1px`,e.style.opacity=`0`,e}let t=document.activeElement,n=e();return document.body.appendChild(n),n.focus(),()=>{n.blur(),document.body.removeChild(n),t instanceof HTMLElement&&t.focus()}}let Oe=[n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA],ke=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._drawingService=n,this._clipboardInterfaceService=r,this._commandService=i,N(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._drawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_IMAGE_UI_PLUGIN`,onBeforeCopy:(e,t,i,a)=>{this._copyInfo=null;let o=this._focusedDrawings;if(o.length>0){let[t]=o;if(t.drawingType!==r.DrawingTypeEnum.DRAWING_IMAGE)return;if(a===n.COPY_TYPE.CUT){let n={unitId:e,drawings:[t]};this._commandService.executeCommand(y.id,n)}setTimeout(()=>{let e=De();t.drawingType===r.DrawingTypeEnum.DRAWING_IMAGE&&t.imageSourceType===c.ImageSourceType.BASE64?Ee(t.source):this._clipboardInterfaceService.writeText(``),e()},200),this._copyInfo={unitId:t.unitId,subUnitId:t.subUnitId,drawings:[t]}}else this._copyInfo=this._createDrawingsCopyInfoByRange(e,t,i)},onPasteCells:(e,t,r,i)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{copyType:a=n.COPY_TYPE.COPY,pasteType:o}=i,{range:s}=e||{},{range:c,unitId:l,subUnitId:u}=t;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({pasteType:o,unitId:l,subUnitId:u,pasteRange:c},{copyRange:s,copyType:a}):this._generateSingleDrawingPasteMutations({pasteTo:t,pasteType:o},n.COPY_TYPE.COPY)},onPastePlainText:(e,t)=>({undos:[],redos:[]}),onPasteUnrecognized:e=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:n.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},n.COPY_TYPE.COPY):{undos:[],redos:[]},onPasteFiles:(e,t)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:n.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},n.COPY_TYPE.COPY);{let e=t.filter(e=>e.type.includes(`image`));if(e.length)return{undos:[],redos:[{id:z.id,params:{files:e}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(e,t,a){var o;let s=(o=this._renderManagerService.getRenderById(e))==null?void 0:o.with(n.SheetSkeletonManagerService);if(!s)return;let c=s.attachRangeWithCoord(a);if(!c)return;let{startX:l,endX:u,startY:d,endY:f}=c,p=this._drawingService.getDrawingData(e,t),m=this._focusedDrawings.slice();if(Object.keys(p).forEach(e=>{let t=p[e];if(t.drawingType!==r.DrawingTypeEnum.DRAWING_IMAGE)return;let{transform:n}=t;if(t.anchorType!==i.SheetDrawingAnchorType.Both||!n)return;let{left:a=0,top:o=0,width:s=0,height:c=0}=n,{drawingStartX:h,drawingEndX:g,drawingStartY:_,drawingEndY:v}={drawingStartX:a,drawingEndX:a+s,drawingStartY:o,drawingEndY:o+c};l<=h&&g<=u&&d<=_&&v<=f&&m.push(t)}),m.length)return{copyRange:a,drawings:m,unitId:e,subUnitId:t}}_generateSingleDrawingPasteMutations(e,t){let{pasteType:r,pasteTo:i}=e;if(Oe.includes(r))return{redos:[],undos:[]};let{unitId:o,subUnitId:s,range:c}=i,l=this._renderManagerService.getRenderById(o),u=l==null?void 0:l.with(n.SheetSkeletonManagerService),d=l==null?void 0:l.with(n.ISheetSelectionRenderService),f=this._copyInfo;if(!u||!d)return{redos:[],undos:[]};let{drawings:p}=f,m=(0,a.discreteRangeToRange)(c);return this._generateMutations(p,{unitId:o,subUnitId:s,isCut:t===n.COPY_TYPE.CUT,getTransform:(e,t)=>{var n,r;let i=u.attachRangeWithCoord({startRow:m.startRow,endRow:m.endRow,startColumn:m.startColumn,endColumn:m.endColumn}),a={...e,left:i==null?void 0:i.startX,top:i==null?void 0:i.startY};return{transform:a,sheetTransform:(n=g(a,d))==null?t:n,axisAlignSheetTransform:(r=_(a,d))==null?t:r}}})}_generateMutations(e,t){let{unitId:n,subUnitId:a,getTransform:o,isCut:s}=t,c=[],l=[],{_drawingService:u}=this;return e.forEach(e=>{let{transform:t,sheetTransform:d}=e;if(!t)return;let f=o(t,d),p={...e,unitId:n,subUnitId:a,drawingId:s?e.drawingId:(0,r.generateRandomId)(),transform:f.transform,sheetTransform:f.sheetTransform,axisAlignSheetTransform:f.axisAlignSheetTransform};if(s){let{undo:e,redo:t,objects:r}=u.getBatchUpdateOp([p]);c.push({id:i.SetDrawingApplyMutation.id,params:{unitId:n,subUnitId:a,type:i.DrawingApplyType.UPDATE,op:t,objects:r}}),l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:n,subUnitId:a,type:i.DrawingApplyType.UPDATE,op:e,objects:r}})}else{let{undo:e,redo:t,objects:r}=u.getBatchAddOp([p]);c.push({id:i.SetDrawingApplyMutation.id,params:{op:t,unitId:n,subUnitId:a,objects:r,type:i.DrawingApplyType.INSERT}}),l.push({id:i.SetDrawingApplyMutation.id,params:{op:e,unitId:n,subUnitId:a,objects:r,type:i.DrawingApplyType.REMOVE}})}}),{redos:c,undos:l}}_generateRangeDrawingsPasteMutations(e,t){var r;let{unitId:i,subUnitId:o,pasteType:s,pasteRange:c}=e,{copyRange:l,copyType:u}=t;if(Oe.includes(s))return{redos:[],undos:[]};let d=(r=this._renderManagerService.getRenderById(i))==null?void 0:r.with(n.SheetSkeletonManagerService);if(!d||!this._copyInfo)return{redos:[],undos:[]};let{drawings:f}=this._copyInfo;if(!l)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:i,subUnitId:o,range:(0,a.discreteRangeToRange)(c)},pasteType:s},u);let{ranges:[p,m],mapFunc:h}=(0,n.virtualizeDiscreteRanges)([l,c]),{row:g,col:v}=h(p.startRow,p.startColumn),{row:y,col:b}=h(m.startRow,m.startColumn),x=d.attachRangeWithCoord({startRow:g,endRow:g,startColumn:v,endColumn:v}),S=d.attachRangeWithCoord({startRow:y,endRow:y,startColumn:b,endColumn:b});if(!x||!S||!this._copyInfo)return{redos:[],undos:[]};let C=S.startX-x.startX,w=S.startY-x.startY,T=y-g,E=b-v;return this._generateMutations(f,{unitId:i,subUnitId:o,getTransform:(e,t)=>{var r,a,o;let s={...e,left:((r=e==null?void 0:e.left)==null?0:r)+C,top:((a=e==null?void 0:e.top)==null?0:a)+w},c=this._renderManagerService.getRenderById(i),l=c==null?void 0:c.with(n.ISheetSelectionRenderService);return l?{transform:s,sheetTransform:{...t,to:{...t.to,row:t.to.row+T,column:t.to.column+E},from:{...t.from,row:t.from.row+T,column:t.from.column+E}},axisAlignSheetTransform:(o=_(s,l))==null?t:o}:{transform:s,sheetTransform:{...t,to:{...t.to,row:t.to.row+T,column:t.to.column+E},from:{...t.from,row:t.from.row+T,column:t.from.column+E}},axisAlignSheetTransform:{...t,to:{...t.to,row:t.to.row+T,column:t.to.column+E},from:{...t.from,row:t.from.row+T,column:t.from.column+E}}}},isCut:u===n.COPY_TYPE.CUT})}};ke=F([P(0,n.ISheetClipboardService),P(1,t.IRenderManagerService),P(2,c.IDrawingManagerService),P(3,l.IClipboardInterfaceService),P(4,r.ICommandService)],ke);let Ae=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._drawingManagerService=e,this._renderManagerService=t,this._permissionService=n,this._univerInstanceService=r,this._userManagerService=i,this._initDrawingVisible(),this._initDrawingEditable(),this._initViewPermissionChange(),this._initEditPermissionChange()}_initDrawingVisible(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=(0,f.combineLatest)([e,t]);this.disposeWithMe(n.pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.tap)(t=>{if(!t){this._drawingManagerService.setDrawingVisible(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new a.WorkbookViewPermission(n).id,new a.WorksheetViewPermission(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(e,t)})):(this._drawingManagerService.setDrawingVisible(!1),f.EMPTY))).subscribe())}_handleDrawingVisibilityFalse(e,n){this._drawingManagerService.setDrawingVisible(!1);let r=e.getUnitId(),i=n.getSheetId(),a=this._drawingManagerService.getDrawingData(r,i),o=Object.values(a),s=this._renderManagerService.getRenderById(r),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.removeObject(e)})}_initDrawingEditable(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=(0,f.combineLatest)([e,t]);this.disposeWithMe(n.pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.tap)(t=>{if(!t){this._drawingManagerService.setDrawingEditable(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new a.WorkbookEditablePermission(n).id,new a.WorksheetEditPermission(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingEditable(!0):this._handleDrawingEditableFalse(e,t)})):(this._drawingManagerService.setDrawingEditable(!1),f.EMPTY))).subscribe())}_handleDrawingEditableFalse(e,n){this._drawingManagerService.setDrawingEditable(!1);let r=e.getUnitId(),i=n.getSheetId(),a=this._drawingManagerService.getDrawingData(r,i),o=Object.values(a),s=this._renderManagerService.getRenderById(r),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.detachTransformerFrom(e)})}_initViewPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$;this.disposeWithMe((0,f.combineLatest)([e,n]).pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.switchMap)(t=>{if(!t)return f.EMPTY;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),o=i==null?void 0:i.scene;if(!o)return f.EMPTY;let s=o.getTransformerByCreate();return this._permissionService.composePermission$([new a.WorkbookViewPermission(n).id,new a.WorksheetViewPermission(n,r).id]).pipe((0,f.map)(e=>e.every(e=>e.value)),(0,f.distinctUntilChanged)()).pipe((0,f.map)(e=>({permission:e,scene:o,transformer:s,unitId:n,subUnitId:r})))})):f.EMPTY)).subscribe({next:({permission:e,scene:n,transformer:r,unitId:i,subUnitId:a})=>{this._drawingManagerService.setDrawingVisible(e);let o=n.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(i,a),c=Object.values(s);e?this._drawingManagerService.addNotification(c):(o.forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&n.removeObject(e)}),r.clearSelectedObjects())},complete:()=>{this._drawingManagerService.setDrawingVisible(!0);let e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet(),n=e==null?void 0:e.getUnitId(),i=t==null?void 0:t.getSheetId();if(!n||!i)return;let a=this._drawingManagerService.getDrawingData(n,i),o=Object.values(a);this._drawingManagerService.addNotification(o)}}))}_initEditPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$;this.disposeWithMe((0,f.combineLatest)([e,n]).pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.switchMap)(t=>{if(!t)return f.EMPTY;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),o=i==null?void 0:i.scene;if(!o)return f.EMPTY;let s=o.getTransformerByCreate();return this._permissionService.composePermission$([new a.WorkbookEditablePermission(n).id,new a.WorksheetEditPermission(n,r).id]).pipe((0,f.map)(e=>e.every(e=>e.value)),(0,f.distinctUntilChanged)()).pipe((0,f.map)(e=>({permission:e,scene:o,transformer:s,unitId:n,subUnitId:r})))})):f.EMPTY)).subscribe({next:({permission:e,scene:n,transformer:r,unitId:i,subUnitId:a})=>{this._drawingManagerService.setDrawingEditable(e);let o=n.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(i,a),c=Object.values(s);e?(o.forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&n.attachTransformerTo(e)}),this._drawingManagerService.addNotification(c)):(o.forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&n.detachTransformerFrom(e)}),r.clearSelectedObjects())},complete:()=>{let e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!e)return;let n=e.getUnitId(),i=e.getActiveSheet();if(!i)return;let a=i.getSheetId(),o=this._renderManagerService.getRenderById(n),s=o==null?void 0:o.scene;if(!s)return;let c=this._drawingManagerService.getDrawingData(n,a),l=Object.values(c);this._drawingManagerService.setDrawingEditable(!0),s.getAllObjectsByOrder().forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&l.some(t=>e.oKey.includes(t.drawingId))&&s.detachTransformerFrom(e)})}}))}};Ae=F([P(0,c.IDrawingManagerService),P(1,t.IRenderManagerService),P(2,r.IPermissionService),P(3,r.IUniverInstanceService),P(4,(0,r.Inject)(r.UserManagerService))],Ae);var je=function(e){return e.ALL=`ALL`,e.HORIZONTAL=`HORIZONTAL`,e.VERTICAL=`VERTICAL`,e}(je||{});let Me=`univer-sheet-float-dom-`;function Ne(e,n,i,a,o,s=!1){let{scaleX:c,scaleY:l}=n.getAncestorScale(),u=n.getViewport(t.SHEET_VIEWPORT_KEY.VIEW_MAIN),{startColumn:d,startRow:f,xSplit:p,ySplit:m}=a.getFreeze(),h={left:!0,top:!0};if(!u)return{...e,absolute:h};let{left:g,right:_,top:v,bottom:y}=e,{top:b,left:x,viewportScrollX:S,viewportScrollY:C}=u,{boundsOfViewArea:w,scrollDirectionResponse:T}=o||{},{rowHeaderWidth:E,columnHeaderHeight:D}=i,O={top:s?0:D,left:s?0:E};w&&(r.Tools.isDefine(O.top)&&(O.top=w.top),r.Tools.isDefine(O.left)&&(O.left=w.left)),T===je.HORIZONTAL&&(C=0),T===je.VERTICAL&&(S=0);let k=0,A=0,j=i.rowStartY(f-m)+D,M=i.colStartX(d-p)+E,N=i.rowStartY(f)+D,P=i.colStartX(d)+E;if(p===0)h.left=!1,k=(g-S)*c,A=(_-S)*c;else{let e=g-(M-E),t=_-(M-E);_<P?(k=e*c,A=t*c):g<=P&&_>=P?(k=e*c,A=Math.max(x,(_-S)*c)):g>P&&(h.left=!1,k=Math.max((g-S)*c,x),A=Math.max((_-S)*c,x))}let F=0,I=0;if(m===0)h.top=!1,F=(v-C)*l,I=(y-C)*l;else{let e=v-(j-D),t=y-(j-D);y<N?(F=e*l,I=t*l):v<=N&&y>=N?(F=e*l,I=Math.max(b,(y-C)*l)):v>N&&(h.top=!1,F=Math.max((v-C)*l,b),I=Math.max((y-C)*l,b))}return k=Math.max(k,O.left),F=Math.max(F,O.top),A=Math.max(A,O.left),I=Math.max(I,O.top),{left:k,right:A,top:F,bottom:I,absolute:h}}let Z=(e,t,n,r,i)=>{let{left:a,top:o,width:s,height:c,angle:l}=e,u=Ne({left:a,right:a+s,top:o,bottom:o+c},t,n,r,i),{scaleX:d,scaleY:f}=t.getAncestorScale();return{startX:u.left,endX:u.right,startY:u.top,endY:u.bottom,rotate:l,width:s*d,height:c*f,absolute:u.absolute}},Pe=class extends r.Disposable{constructor(e,t,n,r,i,a,o){super(),this._renderManagerService=e,this._univerInstanceService=t,this._commandService=n,this._drawingManagerService=r,this._canvasFloatDomService=i,this._sheetDrawingService=a,this._lifecycleService=o,N(this,`_domLayerInfoMap`,new Map),N(this,`_transformChange$`,new f.Subject),N(this,`transformChange$`,this._transformChange$.asObservable()),N(this,`_add$`,new f.Subject),N(this,`add$`,this._add$.asObservable()),N(this,`_remove$`,new f.Subject),N(this,`remove$`,this._remove$.asObservable()),this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe((0,f.filter)(e=>e===r.LifecycleStages.Rendered),(0,f.take)(1)).subscribe(()=>{this._scrollUpdateListener()})}getFloatDomInfo(e){return this._domLayerInfoMap.get(e)}getFloatDomsBySubUnitId(e,t){return Array.from(this._domLayerInfoMap.values()).filter(n=>n.subUnitId===t&&n.unitId===e)}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;return t==null||n==null?null:{scene:n,transformer:n.getTransformerByCreate(),renderUnit:t,canvas:t.engine.getCanvasElement()}}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{e.forEach(e=>{var i;let{unitId:o,subUnitId:s,drawingId:l}=e,u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:o,subUnitId:s}),d=this._drawingManagerService.getDrawingByParam(e),p=this._univerInstanceService.getUnit(o,r.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let h=(i=this._renderManagerService.getRenderById(o))==null?void 0:i.with(n.SheetSkeletonManagerService).getSkeletonParam(s);if(!h)return;let{transform:g,drawingType:_,data:v}=d;if(_!==r.DrawingTypeEnum.DRAWING_DOM&&_!==r.DrawingTypeEnum.DRAWING_CHART)return;let y=this._getSceneAndTransformerByDrawingSearch(o);if(y==null)return;let{scene:b,canvas:x}=y;if(g==null)return!0;if(m!==s)return;let{left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A}=g,j=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:o,subUnitId:s,drawingId:l}),M=b.getObject(j);if(M!=null){M.transformByState({left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A});return}let N={left:S,top:C,width:w,height:T,zIndex:this._drawingManagerService.getDrawingOrder(o,s).length-1},P=_===r.DrawingTypeEnum.DRAWING_CHART;N.rotateEnabled=!1,P&&(N.fill=v?v.backgroundColor:`white`,v&&v.border&&(N.stroke=v.border),N.paintFirst=`stroke`,N.strokeWidth=1,N.borderEnabled=!1,N.radius=8);let F=new t.Rect(j,N);P&&F.setObjectType(t.ObjectType.CHART),b.addObject(F,t.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&b.attachTransformerTo(F);let I=new r.DisposableCollection,L=new f.BehaviorSubject(Z(F,y.renderUnit.scene,h.skeleton,u.worksheet)),R=`${Me}${(0,r.generateRandomId)(6)}`,z={dispose:I,rect:F,position$:L,unitId:o,subUnitId:s,id:l,domId:R};this._canvasFloatDomService.addFloatDom({position$:L,id:l,domId:R,componentKey:d.componentKey,onPointerDown:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{x.dispatchEvent(new WheelEvent(e.type,e))},data:v,unitId:o});let B=F.onTransformChange$.subscribeEvent(()=>{let e=Z(F,y.renderUnit.scene,h.skeleton,u.worksheet);L.next(e)});I.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),B&&I.add(B),this._domLayerInfoMap.set(l,z)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:n,drawingId:r}),a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{transformer:o,scene:s}=a,l=s.getObject(i);if(l!=null&&l.oKey){var u;o.clearControlByIds([l==null?void 0:l.oKey]),(u=s.getTransformer())==null||u.clearSelectedObjects()}})}))}_scrollUpdateListener(){let e=(e,t)=>{var r;let i=this._getSceneAndTransformerByDrawingSearch(e),o=Array.from(this._domLayerInfoMap.keys()).map(e=>({id:e,...this._domLayerInfoMap.get(e)})).filter(n=>n.subUnitId===t&&n.unitId===e).map(e=>e.id),s=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:t}),c=(r=this._renderManagerService.getRenderById(e))==null?void 0:r.with(n.SheetSkeletonManagerService).getSkeletonParam(t);!i||!s||!c||o.forEach(e=>{let t=this._domLayerInfoMap.get(e);if(t){let e=Z(t.rect,i.renderUnit.scene,c.skeleton,s.worksheet,t);t.position$.next(e)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET).pipe((0,f.switchMap)(e=>e?e.activeSheet$:(0,f.of)(null)),(0,f.map)(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t,subUnitId:e.getSheetId()}:null}),(0,f.switchMap)(e=>e?(0,r.fromEventSubject)(e.render.scene.getViewport(t.SHEET_VIEWPORT_KEY.VIEW_MAIN).onScrollAfter$).pipe((0,f.map)(()=>({unitId:e.unitId,subUnitId:e.subUnitId}))):(0,f.of)(null))).subscribe(t=>{if(!t)return;let{unitId:n,subUnitId:r}=t;e(n,r)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===n.SetZoomRatioOperation.id){let{unitId:n}=t.params;Array.from(this._domLayerInfoMap.values()).filter(e=>e.unitId===n).map(e=>e.subUnitId).forEach(t=>{e(n,t)})}else if(t.id===a.SetFrozenMutation.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}else if(t.id===a.SetSelectionsOperation.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}}))}updateFloatDomProps(e,n,r,i){let a=this._domLayerInfoMap.get(r),o=this._getSceneAndTransformerByDrawingSearch(e);if(a&&o){let{scene:a}=o,s=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:n,drawingId:r}),l=a.getObject(s);l&&l instanceof t.Rect&&l.setProps(i)}}_getPosition(e,t){var r;let{startX:i,endX:a,startY:o,endY:s}=e,c=(r=this._renderManagerService.getRenderById(t))==null?void 0:r.with(n.ISheetSelectionRenderService);if(c==null)return;let l=c.getCellWithCoordByOffset(i,o);if(l==null)return;let u={column:l.actualColumn,columnOffset:i-l.startX,row:l.actualRow,rowOffset:o-l.startY},d=c.getCellWithCoordByOffset(a,s);if(d!=null)return{from:u,to:{column:d.actualColumn,columnOffset:a-d.startX,row:d.actualRow,rowOffset:s-d.startY}}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);if(!t||t.drawingType!==r.DrawingTypeEnum.DRAWING_DOM&&t.drawingType!==r.DrawingTypeEnum.DRAWING_CHART)return;let n={...t.transform};this._transformChange$.next({id:e.drawingId,value:n}),this._canvasFloatDomService.updateFloatDom(e.drawingId,{...t});let i=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(i&&t.drawingType!==r.DrawingTypeEnum.DRAWING_CHART){let{scene:n}=i,r=this._domLayerInfoMap.get(e.drawingId);r!=null&&r.rect&&(t.allowTransform===!1?n.detachTransformerFrom(r.rect):n.attachTransformerTo(r.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}addFloatDomToPosition(e,t){let n=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!n)throw Error(`cannot find current target!`);let{unitId:i,subUnitId:o}=n,{initPosition:s,componentKey:c,data:l,allowTransform:u=!0}=e,d=t==null?(0,r.generateRandomId)():t,f=this._getPosition(s,i);if(f==null)return;let p={unitId:i,subUnitId:o,drawingId:d,drawingType:e.type||r.DrawingTypeEnum.DRAWING_DOM,componentKey:c,sheetTransform:f,transform:{left:s.startX,top:s.startY,width:s.endX-s.startX,height:s.endY-s.startY},axisAlignSheetTransform:f,data:l,allowTransform:u};return this._commandService.executeCommand(E.id,{unitId:i,drawings:[p]}),this._add$.next({unitId:i,subUnitId:o,id:d}),{id:d,dispose:()=>{this._removeDom(d,!0)}}}_removeDom(e,t=!1){let n=this._domLayerInfoMap.get(e);if(!n)return;let{unitId:r,subUnitId:a}=n;this._domLayerInfoMap.delete(e),n.dispose.dispose();let o=this._getSceneAndTransformerByDrawingSearch(r);if(o&&o.scene.removeObject(n.rect),t){let t=this._drawingManagerService.getDrawingByParam({unitId:r,subUnitId:a,drawingId:e});if(!t)return;let{redo:n,objects:o}=this._sheetDrawingService.getBatchRemoveOp([t]);this._commandService.syncExecuteCommand(i.SetDrawingApplyMutation.id,{unitId:r,subUnitId:a,op:n,objects:o,type:i.DrawingApplyType.REMOVE})}}addFloatDomToRange(e,i,o,s){var l;let u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:i.unitId,subUnitId:i.subUnitId});if(!u)throw Error(`cannot find current target!`);let{unitId:d,subUnitId:p}=u,m=this._getSceneAndTransformerByDrawingSearch(d);if(!m)return;let h=this._renderManagerService.getRenderById(d);if(!h)return;let g=(l=this._renderManagerService.getRenderById(d))==null?void 0:l.with(n.SheetSkeletonManagerService).getWorksheetSkeleton(p);if(!g)return;let{componentKey:_,data:v,allowTransform:y=!0}=i,b=s==null?(0,r.generateRandomId)():s,{position:x,position$:S}=this._createRangePositionObserver(e,h,g.skeleton),C=this._getPosition(x,d);if(C==null)return;let{scaleX:w}=m.scene.getAncestorScale(),T=Ie(x,o,w),E={unitId:d,subUnitId:p,drawingId:b,drawingType:i.type||r.DrawingTypeEnum.DRAWING_DOM,componentKey:_,sheetTransform:C,axisAlignSheetTransform:C,transform:{left:T.startX,top:T.startY,width:T.width,height:T.height},data:v,allowTransform:y};{var D,O;let{unitId:e,subUnitId:s,drawingId:l}=E,u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:s}),d=E,p=this._univerInstanceService.getUnit(e,r.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let h=(D=this._renderManagerService.getRenderById(e))==null?void 0:D.with(n.SheetSkeletonManagerService);if(!h)return;let g=h.getWorksheetSkeleton(s);if(!g)return;let{transform:_,drawingType:v,data:y}=d;if(v!==r.DrawingTypeEnum.DRAWING_DOM&&v!==r.DrawingTypeEnum.DRAWING_CHART)return;let C=this._getSceneAndTransformerByDrawingSearch(e);if(C==null)return;let{scene:w,canvas:T}=C;if(_==null||m!==s)return;let{left:k,top:A,width:j,height:M,angle:N,flipX:P,flipY:F,skewX:I,skewY:L}=_,R=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,drawingId:l}),z=w.getObject(R);if(z!=null){z.transformByState({left:k,top:A,width:j,height:M,angle:N,flipX:P,flipY:F,skewX:I,skewY:L});return}let B={left:k,top:A,width:j,height:M,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1},V=v===r.DrawingTypeEnum.DRAWING_CHART;V&&(B.fill=y?y.backgroundColor:`white`,B.rotateEnabled=!1,y&&y.border&&(B.stroke=y.border),B.paintFirst=`stroke`,B.strokeWidth=1,B.borderEnabled=!1,B.radius=8);let H=new t.Rect(R,B);V&&H.setObjectType(t.ObjectType.CHART),w.addObject(H,t.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&w.attachTransformerTo(H);let U=new r.DisposableCollection,W=w.getMainViewport(),{rowHeaderWidth:G,columnHeaderHeight:ee}=g.skeleton,K={dispose:U,rect:H,boundsOfViewArea:{top:ee,left:G,bottom:W.bottom,right:W.right},domAnchor:o,unitId:e,subUnitId:s},q=new f.BehaviorSubject(Z(H,C.renderUnit.scene,g.skeleton,u.worksheet,K));K.position$=q;let J={position$:q,id:l,componentKey:d.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{T.dispatchEvent(new WheelEvent(e.type,e))},data:y,unitId:e};i.eventPassThrough&&(J={...J,onPointerDown:e=>{T.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{T.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{T.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(J),this.disposeWithMe(S.subscribe(n=>{var r,i,a,d;let f=Ie({rotate:0,startX:n.startX,startY:n.startY,endX:n.endX,endY:n.endY,width:(r=o.width)==null?n.width:r,height:(i=o.height)==null?n.height:i,absolute:{left:x.absolute.left,top:x.absolute.top}},o),p=Z(new t.Rect((0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,drawingId:l}),{left:f.startX,top:f.startY,width:(a=o.width)==null?n.width:a,height:(d=o.height)==null?n.height:d,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1}),C.renderUnit.scene,g.skeleton,u.worksheet,K);q.next(p)}));let te=(O=this._renderManagerService.getRenderById(e))==null?void 0:O.with(n.SheetSkeletonManagerService),Y=te==null?void 0:te.currentSkeleton$.subscribe(e=>{e&&g.sheetId!==e.sheetId&&this._removeDom(b,!0)});Y&&U.add(Y);let X=H.onTransformChange$.subscribeEvent(()=>{let e=Z(H,C.renderUnit.scene,g.skeleton,u.worksheet,K);q.next(e)});U.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),X&&U.add(X),this._domLayerInfoMap.set(l,K)}return{id:b,dispose:()=>{this._removeDom(b,!0)}}}addFloatDomToColumnHeader(e,i,o,s){var l;let u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:i.unitId,subUnitId:i.subUnitId});if(!u)throw Error(`cannot find current target!`);let{unitId:d,subUnitId:p}=u;if(!this._getSceneAndTransformerByDrawingSearch(d))return;let m=this._renderManagerService.getRenderById(d);if(!m)return;let h=(l=this._renderManagerService.getRenderById(d))==null?void 0:l.with(n.SheetSkeletonManagerService).getWorksheetSkeleton(p);if(!h)return;let{componentKey:g,data:_,allowTransform:v=!0}=i,y=s==null?(0,r.generateRandomId)():s,{position:b,position$:x}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:e,endColumn:e},m,h.skeleton),S=b;S.startY=0;let C=this._getPosition(b,d);if(C==null)return;let w={unitId:d,subUnitId:p,drawingId:y,drawingType:i.type||r.DrawingTypeEnum.DRAWING_DOM,componentKey:g,sheetTransform:C,axisAlignSheetTransform:C,transform:{left:S.startX,top:S.startY,width:S.width,height:S.height},data:_,allowTransform:v};{var T,E;let{unitId:e,subUnitId:s,drawingId:l}=w,u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:s}),d=w,p=this._univerInstanceService.getUnit(e,r.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let g=(T=this._renderManagerService.getRenderById(e))==null?void 0:T.with(n.SheetSkeletonManagerService);if(!g)return;let _=g.getWorksheetSkeleton(s);if(!_)return;let{transform:v,data:C}=d,D=this._getSceneAndTransformerByDrawingSearch(e);if(D==null)return;let{scene:O,canvas:k}=D;if(v==null||m!==s)return;let{left:A,top:j,width:M,height:N,angle:P,flipX:F,flipY:I,skewX:L,skewY:R}=v,z=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,drawingId:l}),B=O.getObject(z);if(B!=null){B.transformByState({left:A,top:j,width:M,height:N,angle:P,flipX:F,flipY:I,skewX:L,skewY:R});return}let V=Ie({rotate:0,startX:S.startX,startY:0,endX:b.endX,endY:b.endY,width:o.width,height:o.height,absolute:{left:b.absolute.left,top:b.absolute.top}},o),H=new t.Rect(z,{left:V.startX,top:V.startY,width:V.width,height:V.height,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1});O.addObject(H,t.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&O.attachTransformerTo(H);let U=new r.DisposableCollection,W=O.getMainViewport(),G={dispose:U,rect:H,unitId:e,subUnitId:s,boundsOfViewArea:{top:0,left:W.left,bottom:W.bottom,right:W.right},domAnchor:o,scrollDirectionResponse:je.HORIZONTAL},ee=new f.BehaviorSubject(Z(H,D.renderUnit.scene,_.skeleton,u.worksheet,G));G.position$=ee;let K={position$:ee,id:l,componentKey:d.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{k.dispatchEvent(new WheelEvent(e.type,e))},data:C,unitId:e};i.eventPassThrough&&(K={...K,onPointerDown:e=>{k.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{k.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{k.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(K);let q=H.onTransformChange$.subscribeEvent(()=>{let e=Z(H,D.renderUnit.scene,_.skeleton,u.worksheet,G);ee.next(e)});this.disposeWithMe(x.subscribe(n=>{let r=Ie({rotate:0,startX:n.startX,startY:0,endX:n.endX,endY:n.endY,width:o.width,height:o.height,absolute:{left:b.absolute.left,top:b.absolute.top}},o),i=Z(new t.Rect((0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,drawingId:l}),{left:r.startX,top:0,width:o.width,height:o.height,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1}),D.renderUnit.scene,_.skeleton,u.worksheet,G);ee.next(i)}));let J=(E=this._renderManagerService.getRenderById(e))==null?void 0:E.with(n.SheetSkeletonManagerService);J==null||J.currentSkeleton$.subscribe(e=>{e&&h.sheetId!==e.sheetId&&this._removeDom(y,!0)}),U.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),q&&U.add(q),this._domLayerInfoMap.set(l,G)}return{id:y,dispose:()=>{this._removeDom(y,!0)}}}_createRangePositionObserver(e,t,i){let{startRow:o,startColumn:s}=e,c=Fe(o,s,i),l=new f.BehaviorSubject(c),u=Fe(e.endRow,e.endColumn,i),d=new f.BehaviorSubject(u),p=()=>{let t=Fe(o,s,i),n=Fe(e.endRow,e.endColumn,i);l.next(t),d.next(n)},m=new r.DisposableCollection;return m.add(t.engine.clientRect$.subscribe(()=>p())),m.add(this._commandService.onCommandExecuted(e=>{if(e.id===a.SetWorksheetRowAutoHeightMutation.id&&e.params.rowsAutoHeightInfo.findIndex(e=>e.row===o)>-1){p();return}(a.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(e.id)>-1||e.id===n.SetScrollOperation.id||e.id===n.SetZoomRatioOperation.id)&&p()})),{position$:l.pipe((0,f.map)(t=>{let n=Fe(e.endRow,e.endColumn,i);return{rotate:0,width:n.right-t.left,height:n.bottom-t.top,absolute:{left:!0,top:!0},startX:t.left,startY:t.top,endX:n.right,endY:n.bottom}})),position:{rotate:0,width:u.right-c.left,height:u.bottom-c.top,absolute:{left:!0,top:!0},startX:c.left,startY:c.top,endX:u.right,endY:u.bottom},updateRowCol:(e,t)=>{o=e,s=t,p()},topLeftPos$:l,rightBottomPos$:d,disposable:m}}};Pe=F([P(0,(0,r.Inject)(t.IRenderManagerService)),P(1,r.IUniverInstanceService),P(2,(0,r.Inject)(r.ICommandService)),P(3,c.IDrawingManagerService),P(4,(0,r.Inject)(l.CanvasFloatDomService)),P(5,i.ISheetDrawingService),P(6,(0,r.Inject)(r.LifecycleService))],Pe);function Fe(e,t,n){let r=n.getCellWithCoordByIndex(e,t),i=r.isMergedMainCell?r.mergeInfo:r;return{left:i.startX,right:i.endX,top:i.startY,bottom:i.endY}}function Ie(e,t,n){var r,i,a;n=(r=n)==null?1:r;let o=e.endX-e.startX,s=e.endY-e.startY,c=(i=t==null?void 0:t.width)==null?o:i,l=(a=t==null?void 0:t.height)==null?s:a,u=0,d=0;if(t){if(t.horizonOffsetAlign===`right`){let r=Le(t.marginX,o*n);u=e.endX-r-c}else u=e.startX+Le(t.marginX,o);if(t.verticalOffsetAlign===`bottom`){let r=Le(t.marginY,s*n);d=e.endY-r-l}else d=e.startY+Le(t.marginY,s)}return{rotate:0,startX:u,startY:d,endX:e.endX,endY:e.endY,width:c,height:l,absolute:{left:e.absolute.left,top:e.absolute.top}}}function Le(e,t){return e===void 0?0:typeof e==`number`?e:t*Number.parseFloat(e)/100}let Re=e=>{let{floatDomInfos:t,scene:n,skeleton:r,worksheet:i}=e;return(0,m.jsx)(`div`,{style:{position:`absolute`,top:0,left:0},children:(0,p.useMemo)(()=>t.map(e=>{let{width:t,height:a,angle:o,left:s,top:c}=e.transform,l=Ne({left:s==null?0:s,right:(s==null?0:s)+(t==null?0:t),top:c==null?0:c,bottom:(c==null?0:c)+(a==null?0:a)},n,r,i,void 0,!0),{scaleX:u,scaleY:d}=n.getAncestorScale(),p={startX:l.left,endX:l.right,startY:l.top,endY:l.bottom,rotate:o,width:t*u,height:a*d,absolute:l.absolute},m={position$:new f.BehaviorSubject(p),position:p,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,m]}),[t,n,r,i]).map(([e,t])=>(0,m.jsx)(l.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})},ze=class extends r.Disposable{constructor(e,t,n,r,i,a,o){super(),this._sheetPrintInterceptorService=e,this._drawingRenderService=t,this._drawingManagerService=n,this._renderManagerService=r,this._canvasFloatDomManagerService=i,this._componetManager=a,this._injector=o,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(e,t,n)=>{let{unitId:i,scene:a,subUnitId:o}=t,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[o];return c&&c.order.forEach(e=>{let t=c.data[e];t.drawingType!==r.DrawingTypeEnum.DRAWING_CHART&&t.drawingType!==r.DrawingTypeEnum.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,a)}),n()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(e,t,i)=>{let{unitId:a,subUnitId:o}=t,s=this._renderManagerService.getRenderById(a);if(!s)return i(e);let c=s.with(n.SheetSkeletonManagerService).getSkeletonParam(o);if(!c)return i(e);let l=this._drawingManagerService.getDrawingDataForUnit(a),u=l==null?void 0:l[t.subUnitId];if(!u)return i(e);let{scaleX:d,scaleY:f}=s.scene,p=e?{...e}:{startColumn:0,endColumn:0,endRow:0,startRow:0},m=u.order.map(e=>u.data[e]);return m.length?(m.forEach(e=>{if(!e.groupId&&e.transform&&r.Tools.isDefine(e.transform.left)&&r.Tools.isDefine(e.transform.top)&&r.Tools.isDefine(e.transform.width)&&r.Tools.isDefine(e.transform.height)){let t=c.skeleton.getCellIndexByOffset(e.transform.left,e.transform.top,d,f,{x:0,y:0}),n=c.skeleton.getCellIndexByOffset(e.transform.left+e.transform.width,e.transform.top+e.transform.height,d,f,{x:0,y:0});t.column<p.startColumn&&(p.startColumn=t.column),t.row<p.startRow&&(p.startRow=t.row),p.endRow<n.row&&(p.endRow=n.row),p.endColumn<n.column&&(p.endColumn=n.column)}}),i(p)):i(e)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,n)=>{let{unitId:i,subUnitId:a}=t,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[a];if(c){let i=c.order.map(e=>{let t=c.data[e];if(t.drawingType===r.DrawingTypeEnum.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(r.PRINT_CHART_COMPONENT_KEY)};if(t.drawingType===r.DrawingTypeEnum.DRAWING_DOM){let e=this._sheetPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return(0,o.render)((0,m.jsx)((0,l.connectInjector)(Re,this._injector),{floatDomInfos:i,scene:t.scene,skeleton:t.skeleton,worksheet:t.worksheet}),t.root),e==null||e.add(()=>{(0,o.unmount)(t.root)}),n(e)}}}))}};ze=F([P(0,(0,r.Inject)(n.SheetPrintInterceptorService)),P(1,(0,r.Inject)(d.DrawingRenderService)),P(2,c.IDrawingManagerService),P(3,t.IRenderManagerService),P(4,(0,r.Inject)(Pe)),P(5,(0,r.Inject)(l.ComponentManager)),P(6,(0,r.Inject)(r.Injector))],ze);var Q=function(e){return e[e.deleteLeft=0]=`deleteLeft`,e[e.deleteUp=1]=`deleteUp`,e[e.insertDown=2]=`insertDown`,e[e.insertRight=3]=`insertRight`,e}(Q||{});let Be=[a.InsertRowCommand.id,a.InsertColCommand.id,a.RemoveRowCommand.id,a.RemoveColCommand.id,a.DeleteRangeMoveLeftCommand.id,a.DeleteRangeMoveUpCommand.id,a.InsertRangeMoveDownCommand.id,a.InsertRangeMoveRightCommand.id,a.DeltaRowHeightCommand.id,a.SetRowHeightCommand.id,a.DeltaColumnWidthCommand.id,a.SetColWidthCommand.id,a.SetRowHiddenCommand.id,a.SetSpecificRowsVisibleCommand.id,a.SetSpecificColsVisibleCommand.id,a.SetColHiddenCommand.id,a.MoveColsCommand.id,a.MoveRowsCommand.id,a.MoveRangeCommand.id],Ve=[a.SetRowVisibleMutation.id,a.SetRowHiddenMutation.id,a.SetColVisibleMutation.id,a.SetColHiddenMutation.id,a.SetWorksheetRowHeightMutation.id,a.SetWorksheetRowAutoHeightMutation.id,a.SetWorksheetRowIsAutoHeightMutation.id,a.SetWorksheetColWidthMutation.id],He=class extends r.Disposable{constructor(e,t,n,r,i,a,o,s,c){super(),this._context=e,this._renderManagerService=t,this._commandService=n,this._selectionRenderService=r,this._skeletonManagerService=i,this._sheetInterceptorService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._univerInstanceService=c,this._sheetInterceptorListener(),this._commandListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{if(!Be.includes(e.id)||e.params==null)return{redos:[],undos:[]};let t=e.id;if(t===a.InsertRowCommand.id)return this._moveRowInterceptor(e.params,`insert`);if([a.MoveColsCommand.id,a.MoveRowsCommand.id,a.MoveRangeCommand.id].includes(t))return this._moveRangeInterceptor(e.params);if(t===a.InsertColCommand.id)return this._moveColInterceptor(e.params,`insert`);if(t===a.RemoveRowCommand.id)return this._moveRowInterceptor(e.params,`remove`);if(t===a.RemoveColCommand.id)return this._moveColInterceptor(e.params,`remove`);if(t===a.DeleteRangeMoveLeftCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.deleteLeft)}else if(t===a.DeleteRangeMoveUpCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.deleteUp)}else if(t===a.InsertRangeMoveDownCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.insertDown)}else if(t===a.InsertRangeMoveRightCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.insertRight)}else if(t===a.SetRowHiddenCommand.id||t===a.SetSpecificRowsVisibleCommand.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForRowVisible(t,n,r)}else if(t===a.SetSpecificColsVisibleCommand.id||t===a.SetColHiddenCommand.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForColVisible(t,n,r)}else if(t===a.DeltaRowHeightCommand.id||t===a.SetRowHeightCommand.id||t===a.DeltaColumnWidthCommand.id||t===a.SetColWidthCommand.id){let{unitId:n,subUnitId:r,ranges:i}=e.params,o=t===a.DeltaRowHeightCommand.id||t===a.SetRowHeightCommand.id;return this._getDrawingUndoForRowAndColSize(n,r,i,o)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(e,t){let n=(0,a.getSheetCommandTarget)(this._univerInstanceService);if(n==null)return{redos:[],undos:[]};let r=n.unitId,o=n.subUnitId,s=[],c=[],l=this._sheetDrawingService.getDrawingData(r,o),u=[],d=[];if(Object.keys(l).forEach(n=>{let r=l[n],{updateDrawings:i,deleteDrawings:a}=this._getUpdateOrDeleteDrawings(e,t,r);u.push(...i),d.push(...a)}),u.length===0&&d.length===0)return{redos:[],undos:[]};if(u.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(u);s.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),c.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}if(d.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(d),t=e.undo,n=e.redo,a=e.objects;s.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:n,objects:a,type:i.DrawingApplyType.REMOVE}}),c.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:t,objects:a,type:i.DrawingApplyType.INSERT}})}return s.push({id:v.id,params:[r]}),c.push({id:v.id,params:[r]}),{redos:s,undos:c}}_getUpdateOrDeleteDrawings(e,t,n){let r=[],a=[],{sheetTransform:o,anchorType:s=i.SheetDrawingAnchorType.Position,transform:c,unitId:l,subUnitId:u,drawingId:d}=n,{from:f,to:p}=o,{row:m,column:g}=f,{row:_,column:v}=p;if(o==null||c==null)return{updateDrawings:r,deleteDrawings:a};let{startRow:y,endRow:b,startColumn:x,endColumn:S}=e,C=null,w=null,T;if(t===Q.deleteLeft&&m>=y&&_<=b)if(g>=x&&v<=S)a.push({unitId:l,subUnitId:u,drawingId:d});else{var E;let e=this._shrinkCol(o,c,x,S,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(E=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:E}else if(t===Q.deleteUp&&g>=x&&v<=S)if(m>=y&&_<=b)a.push({unitId:l,subUnitId:u,drawingId:d});else{var D;let e=this._shrinkRow(o,c,y,b,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(D=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:D}else if(t===Q.insertDown){var O;let e=this._expandRow(o,c,y,b,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(O=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:O}else if(t===Q.insertRight){var k;let e=this._expandCol(o,c,x,S,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(k=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:k}if(C!=null&&w!=null){let e=h(C,this._selectionRenderService,this._skeletonManagerService);r.push({...n,sheetTransform:C,transform:e,axisAlignSheetTransform:T})}return{updateDrawings:r,deleteDrawings:a}}_remainDrawingSize(e,t,n){let r=g({...e},this._selectionRenderService);if(r!=null){let i=_({...e},this._selectionRenderService);t.push({...n,sheetTransform:r,axisAlignSheetTransform:i})}}_getDrawingUndoForColVisible(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:s,transform:c,anchorType:l=i.SheetDrawingAnchorType.Position}=t;if(l===i.SheetDrawingAnchorType.None)this._remainDrawingSize(c,a,t);else{let{from:e,to:r}=s,{row:u,column:d}=e,{row:f,column:p}=r;for(let s=0;s<n.length;s++){let{startRow:u,endRow:f,startColumn:m,endColumn:h}=n[s];if(p<m)continue;if(l===i.SheetDrawingAnchorType.Position){let n=null,i=null;if(d>=m&&d<=h){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:d,endColumn:h,startRow:e.row,endRow:r.row});if(t==null)return;i={...c,left:t.startX}}if(i!=null){n=g(i,this._selectionRenderService);let e=_(i,this._selectionRenderService);if(n!=null&&i!=null){a.push({...t,sheetTransform:n,transform:i,axisAlignSheetTransform:e});break}}this._remainDrawingSize(c,a,t);continue}if(d>=m&&p<=h)continue;let v=null,y=null;if(d>=m&&d<=h){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:d,endColumn:h,startRow:e.row,endRow:r.row});if(t==null)return;y={...c,left:(t==null?void 0:t.startX)||0,width:((c==null?void 0:c.width)||0)-t.endX+t.startX}}else if(p>=m&&p<=h){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:m,endColumn:p,startRow:e.row,endRow:r.row});if(t==null)return;y={...c,left:t.startX-((c==null?void 0:c.width)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:m,endColumn:h,startRow:e.row,endRow:r.row});if(n==null)return;if(y={...c,width:((c==null?void 0:c.width)||0)-n.endX+n.startX},v=g(y,this._selectionRenderService),v!=null&&y!=null){let e=_(y,this._selectionRenderService);o.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}}if(y!=null&&(v=g(y,this._selectionRenderService)),y!=null&&v!=null){let e=_(y,this._selectionRenderService);a.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}else this._remainDrawingSize(c,a,t)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_createUndoAndRedoMutation(e,t,n){let{undo:r,redo:a,objects:o}=this._sheetDrawingService.getBatchUpdateOp(n);return{redos:[{id:i.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:a,objects:o,type:i.DrawingApplyType.UPDATE}},{id:v.id,params:[e]}],undos:[{id:i.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:r,objects:o,type:i.DrawingApplyType.UPDATE}},{id:v.id,params:[e]}]}}_getDrawingUndoForRowVisible(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:s,transform:c,anchorType:l=i.SheetDrawingAnchorType.Position}=t;if(l===i.SheetDrawingAnchorType.None)this._remainDrawingSize(c,a,t);else{let{from:e,to:r}=s,{row:u,column:d}=e,{row:f,column:p}=r;for(let s=0;s<n.length;s++){let{startRow:d,endRow:p,startColumn:m,endColumn:h}=n[s];if(f<d)continue;if(l===i.SheetDrawingAnchorType.Position){let n=null,i=null;if(u>=d&&u<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:u,endRow:p});if(t==null)return;i={...c,top:t.startY}}if(i!=null){n=g(i,this._selectionRenderService);let e=_(i,this._selectionRenderService);if(n!=null&&i!=null){a.push({...t,sheetTransform:n,transform:i,axisAlignSheetTransform:e});break}}this._remainDrawingSize(c,a,t);continue}if(u>=d&&f<=p)continue;let v=null,y=null;if(u>=d&&u<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:u,endRow:p});if(t==null)return;y={...c,top:(t==null?void 0:t.startY)||0,height:((c==null?void 0:c.height)||0)-t.endY+t.startY}}else if(f>=d&&f<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:d,endRow:f});if(t==null)return;y={...c,top:t.startY-((c==null?void 0:c.height)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:d,endRow:p});if(n==null)return;if(y={...c,height:((c==null?void 0:c.height)||0)-n.endY+n.startY},v=g(y,this._selectionRenderService),v!=null&&y!=null){let e=_(y,this._selectionRenderService);o.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}}if(y!=null&&(v=g(y,this._selectionRenderService)),y!=null&&v!=null){let e=_(y,this._selectionRenderService);a.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}else this._remainDrawingSize(c,a,t)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_getDrawingUndoForRowAndColSize(e,t,n,r){let a=this._drawingManagerService.getDrawingData(e,t),o=[];return Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:r,transform:s,anchorType:c=i.SheetDrawingAnchorType.Position}=t;if(c===i.SheetDrawingAnchorType.None)this._remainDrawingSize(s,o,t);else{let{from:e,to:a}=r,{row:l,column:u}=e,{row:d,column:f}=a;for(let e=0;e<n.length;e++){let{startRow:a,endRow:p,startColumn:m,endColumn:g}=n[e];if(d<a||f<m)continue;if(c===i.SheetDrawingAnchorType.Position&&(l<=a&&d>=p||u<=m&&f>=g)){this._remainDrawingSize(s,o,t);continue}let _=h({...r},this._selectionRenderService,this._skeletonManagerService);if(_!=null){o.push({...t,transform:_});break}}}}),o.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,o)}_getUnitIdAndSubUnitId(e,t){let n,r;if(t===`insert`)n=e.unitId,r=e.subUnitId;else{let e=(0,a.getSheetCommandTarget)(this._univerInstanceService);if(e==null)return;n=e.unitId,r=e.subUnitId}return{unitId:n,subUnitId:r}}_moveRangeInterceptor(e){var t;let{toRange:r,fromRange:o}=e,s=(0,a.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{redos:[],undos:[]};let{unitId:c,subUnitId:l}=s,u=(t=this._renderManagerService.getRenderById(c))==null||(t=t.with(n.SheetSkeletonManagerService))==null?void 0:t.getCurrentSkeleton();if(!u)return{redos:[],undos:[]};let d=(0,n.attachRangeWithCoord)(u,o);if(!d)return{redos:[],undos:[]};let{startX:f,endX:p,startY:m,endY:g}=d,_=this._sheetDrawingService.getDrawingData(c,l),v=[];Object.keys(_).forEach(e=>{let t=_[e];if(t.anchorType!==i.SheetDrawingAnchorType.Both)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:a=0,width:o=0,height:s=0}=n,{drawingStartX:c,drawingEndX:l,drawingStartY:u,drawingEndY:d}={drawingStartX:r,drawingEndX:r+o,drawingStartY:a,drawingEndY:a+s};f<=c&&l<=p&&m<=u&&d<=g&&v.push(t)});let y=[],b=[],x=r.startRow-o.startRow,S=r.startColumn-o.startColumn,C=v.map(e=>{let t=e.sheetTransform,n={to:{...t.to,row:t.to.row+x,column:t.to.column+S},from:{...t.from,row:t.from.row+x,column:t.from.column+S}},r=h(n,this._selectionRenderService,this._skeletonManagerService);return{unitId:c,subUnitId:l,drawingId:e.drawingId,transform:r,sheetTransform:n}});if(C.length){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(C);y.push({id:i.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:l,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),b.push({id:i.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:l,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}return{redos:y,undos:b}}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:r,subUnitId:a}=n,{range:o}=e,s=o.startRow,c=o.endRow,l=[],u=[],d=this._sheetDrawingService.getDrawingData(r,a),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=i.SheetDrawingAnchorType.Position}=d[e];if(n==null||o==null)return;let u,m,h;if(t===`insert`){var g;let e=this._expandRow(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}else{let{from:t,to:d}=n,{row:f}=t,{row:g}=d;if(l===i.SheetDrawingAnchorType.Both&&f>=s&&g<=c)p.push({unitId:r,subUnitId:a,drawingId:e});else{var _;let e=this._shrinkRow(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}}if(!u||!m)return;let v={unitId:r,subUnitId:a,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(v)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,o=e.objects;l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:n,objects:o,type:i.DrawingApplyType.REMOVE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:o,type:i.DrawingApplyType.INSERT}})}return l.push({id:v.id,params:[r]}),u.push({id:v.id,params:[r]}),{redos:l,undos:u}}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:r,subUnitId:a}=n,{range:o}=e,s=o.startColumn,c=o.endColumn,l=[],u=[],d=this._sheetDrawingService.getDrawingData(r,a),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=i.SheetDrawingAnchorType.Position}=d[e];if(n==null||o==null)return;let u,m,h;if(t===`insert`){var g;let e=this._expandCol(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}else{let{from:t,to:d}=n,{column:f}=t,{column:g}=d;if(l===i.SheetDrawingAnchorType.Both&&f>=s&&g<=c)p.push({unitId:r,subUnitId:a,drawingId:e});else{var _;let e=this._shrinkCol(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}}if(!u||!m)return;let v={unitId:r,subUnitId:a,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(v)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,o=e.objects;l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:n,objects:o,type:i.DrawingApplyType.REMOVE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:o,type:i.DrawingApplyType.INSERT}})}return l.push({id:v.id,params:[r]}),u.push({id:v.id,params:[r]}),{redos:l,undos:u}}_expandCol(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{column:l}=s,{column:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:r,startRow:s.row,endRow:c.row});if(e==null)return;f={...t,left:(t.left||0)+e.endX-e.startX},d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,column:u+o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_shrinkCol(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{column:l}=s,{column:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>r)d={from:{...s,column:l-o},to:{...c,column:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else if(l>=n&&u<=r)return null;else if(l<n&&u>r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,column:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};else if(l>=n&&l<=r){if(l===n)f={...t,left:(t.left||0)-e.from.columnOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:l-1,startRow:s.row,endRow:c.row});if(r==null)return;f={...t,left:(t.left||0)-r.endX+r.startX-e.from.columnOffset}}d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=n&&u<=r&&a===i.SheetDrawingAnchorType.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n-1,endColumn:n-1,startRow:s.row,endRow:c.row});if(e==null)return;d={from:{...s},to:{...c,column:n-1,columnOffset:e.endX-e.startX}},f=h(d,this._selectionRenderService,this._skeletonManagerService)}return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_expandRow(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{row:l}=s,{row:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:r,startColumn:s.column,endColumn:c.column});if(e==null)return;f={...t,top:(t.top||0)+e.endY-e.startY},d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,row:u+o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_shrinkRow(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{row:l}=s,{row:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>r)d={from:{...s,row:l-o},to:{...c,row:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else if(l>=n&&u<=r)return null;else if(l<n&&u>r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,row:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};else if(l>=n&&l<=r){if(l===n)f={...t,top:(t.top||0)-e.from.rowOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:l-1,startColumn:s.column,endColumn:c.column});if(r==null)return;f={...t,top:(t.top||0)-r.endY+r.startY-e.from.rowOffset}}d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=n&&u<=r&&a===i.SheetDrawingAnchorType.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:s.column,endColumn:s.column,startRow:n-1,endRow:n-1});if(e==null)return;d={from:{...s},to:{...c,row:n-1,rowOffset:e.endY-e.startY}},f=h(d,this._selectionRenderService,this._skeletonManagerService)}return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===a.SetWorksheetActiveOperation.id){let{unitId:t,subUnitId:n}=e.params;this._updateDrawings(t,n)}})),this.disposeWithMe(this._context.activated$.subscribe(e=>{let{unit:t,unitId:n}=this._context;if(e){let e=t.getActiveSheet().getSheetId();this._updateDrawings(n,e)}else this._clearDrawings(n)}))}_clearDrawings(e){setTimeout(()=>{let t=this._drawingManagerService.drawingManagerData,n=[];Object.keys(t).forEach(r=>{let i=t[r];i!=null&&Object.keys(i).forEach(t=>{let a=i[t].data;a!=null&&Object.keys(a).forEach(t=>{r===e&&n.push(a[t])})})}),this._sheetDrawingService.removeNotification(n),this._drawingManagerService.removeNotification(n)})}_updateDrawings(e,t){setTimeout(()=>{let n=this._drawingManagerService.drawingManagerData,r=[],i=[];Object.keys(n).forEach(a=>{let o=n[a];o!=null&&Object.keys(o).forEach(n=>{let s=o[n].data;s!=null&&Object.keys(s).forEach(o=>{if(a===e&&n===t){let e=s[o];e.sheetTransform&&(e.transform=h(e.sheetTransform,this._selectionRenderService,this._skeletonManagerService)),r.push(s[o])}else i.push(s[o])})})}),this._sheetDrawingService.removeNotification(i),this._sheetDrawingService.addNotification(r),this._drawingManagerService.removeNotification(i),this._drawingManagerService.addNotification(r)},0)}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{Ve.includes(e.id)&&requestIdleCallback(()=>{let t=e.params,n=(0,a.getSheetCommandTarget)(this._univerInstanceService,t);if(!n)return;let{unitId:r,subUnitId:i,worksheet:o}=n,s=[];`ranges`in t?s=t.ranges:`rowsAutoHeightInfo`in t&&(s=t.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:o.getColumnCount()-1}))),this._refreshDrawingTransform(r,i,s)})}))}_refreshDrawingTransform(e,t,n){let a=this._drawingManagerService.getDrawingData(e,t),o=[];Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:s,transform:c,anchorType:l=i.SheetDrawingAnchorType.Position}=t;if(l===i.SheetDrawingAnchorType.None)return!0;let{from:u,to:d}=s,{row:f,column:p}=u,{row:m,column:g}=d;for(let e=0;e<n.length;e++){let{startRow:a,endRow:u,startColumn:d,endColumn:_}=n[e];if(r.Rectangle.intersects({startRow:a,endRow:u,startColumn:d,endColumn:_},{startRow:f,endRow:m,startColumn:p,endColumn:g})||f>u||p>_){let e=l===i.SheetDrawingAnchorType.Position,n=h(s,this._selectionRenderService,this._skeletonManagerService);o.push({...t,transform:{...n,width:e?c==null?void 0:c.width:n==null?void 0:n.width,height:e?c==null?void 0:c.height:n==null?void 0:n.height}});break}}}),o.length!==0&&(this._sheetDrawingService.refreshTransform(o),this._drawingManagerService.refreshTransform(o),this._commandService.syncExecuteCommand(v.id,[e]))}};He=F([P(1,t.IRenderManagerService),P(2,r.ICommandService),P(3,n.ISheetSelectionRenderService),P(4,(0,r.Inject)(n.SheetSkeletonManagerService)),P(5,(0,r.Inject)(a.SheetInterceptorService)),P(6,i.ISheetDrawingService),P(7,c.IDrawingManagerService),P(8,r.IUniverInstanceService)],He);let Ue={id:`sheet.command.toggle-flip-drawings`,type:r.CommandType.COMMAND,handler:(e,a)=>{let o=e.get(r.ICommandService),s=e.get(r.IUndoRedoService),l=e.get(i.ISheetDrawingService),u=e.get(t.IRenderManagerService);if(!a)return!1;let{drawings:d}=a,f=a.flipH,p=a.flipV,m=[],h=[];for(let t of d){let{unitId:i,subUnitId:a,drawingId:o}=t;m.push(i);let s=l.getDrawingData(i,a),d=s==null?void 0:s[o];if(!d)continue;let v={...d.transform};f&&(v.flipX=!v.flipX),p&&(v.flipY=!v.flipY);let y=u.getRenderById(i),b=y==null?void 0:y.with(n.ISheetSelectionRenderService);if(!b)continue;let x=g(v,b),S=_(v,b),C={unitId:i,subUnitId:a,drawingType:d.drawingType,drawingId:o,transform:v,sheetTransform:x,axisAlignSheetTransform:S};if(d.drawingType===r.DrawingTypeEnum.DRAWING_IMAGE){let t=We(e,i);if(t){let e=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:i,subUnitId:a,drawingId:o}),n=t.getObject(e);if(n){let e=n.srcRect;if(e){let t,{left:n=0,top:r=0,right:i=0,bottom:a=0}=e;if(f){let e=n+(i-n)/2;t={left:e-(i-n)/2,top:r,right:e+(i-n)/2,bottom:a}}if(p){let e=r+(a-r)/2;t={left:n,top:e-(a-r)/2,right:i,bottom:e+(a-r)/2}}t&&(C.srcRect=t)}}}}h.push(C)}if(h.length===0)return!1;let{unitId:y,subUnitId:b,undo:x,redo:S,objects:C}=l.getBatchUpdateOp(h),w={id:i.SetDrawingApplyMutation.id,params:{unitId:y,subUnitId:b,op:S,objects:C,type:i.DrawingApplyType.UPDATE}},T={id:i.SetDrawingApplyMutation.id,params:{unitId:y,subUnitId:b,op:x,objects:C,type:i.DrawingApplyType.UPDATE}};return(0,r.sequenceExecute)([w],o)?(s.pushUndoRedo({unitID:y,undoMutations:[T,{id:v.id,params:m}],redoMutations:[w,{id:v.id,params:m}]}),!0):!1}};function We(e,n){let r=e.get(t.IRenderManagerService).getRenderById(n);return r?r.scene:null}function Ge(e){var t,n;return!!(!(e==null||(t=e.p)==null||(t=t.drawingsOrder)==null)&&t.length&&(e==null||(n=e.p)==null||(n=n.drawingsOrder)==null?void 0:n.length)>0)}function Ke(e,t){let n=e.getActiveSheet();if(!n)return!1;let r=n.getCellMatrix(),{startRow:i,endRow:a,startColumn:o,endColumn:s}=t;for(let e=i;e<=a;e++)for(let t=o;t<=s;t++)if(Ge(r.getValue(e,t)))return!0;return!1}function qe(){return`showDirectoryPicker`in window}function Je(e){let t=e.get(r.IUniverInstanceService),n=e.get(a.SheetsSelectionsService),i=(0,f.combineLatest)([(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET),t.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET).pipe((0,f.switchMap)(e=>e?n.selectionMoveEnd$.pipe((0,f.map)(()=>{if(!qe())return!0;let t=n.getCurrentSelections();if(!t||t.length===0)return!0;for(let n of t)if(Ke(e,n.range))return!1;return!0})):(0,f.of)(!0)))]).pipe((0,f.map)(([e,t])=>e||t));return{id:ne.id,type:l.MenuItemType.BUTTON,icon:`DownloadImageIcon`,title:`sheetImage.save.menuLabel`,hidden$:i}}let Ye={[l.RibbonInsertGroup.MEDIA]:{[ce]:{order:0,menuItemFactory:le,[z.id]:{order:0,menuItemFactory:ue},[B.id]:{order:1,menuItemFactory:de}}},[l.ContextMenuPosition.MAIN_AREA]:{[l.ContextMenuGroup.OTHERS]:{[ne.id]:{order:10,menuItemFactory:Je}}},[l.ContextMenuPosition.COL_HEADER]:{[l.ContextMenuGroup.OTHERS]:{[ne.id]:{order:10,menuItemFactory:Je}}},[l.ContextMenuPosition.ROW_HEADER]:{[l.ContextMenuGroup.OTHERS]:{[ne.id]:{order:10,menuItemFactory:Je}}}};function Xe(){let e=(0,l.useDependency)(r.LocaleService),t=(0,l.useDependency)(l.IDialogService),i=(0,l.useDependency)(U),[a,s]=(0,p.useState)([H.CELL_ADDRESS]),[c,u]=(0,p.useState)(!1),[d,f]=(0,p.useState)(null),h=(0,p.useMemo)(()=>i.getCellImagesInSelection(),[i]),g=(0,p.useMemo)(()=>i.getDataColumns(),[i]),_=(0,p.useMemo)(()=>i.getSelectionRowRange(),[i]),v=g.length>0,y=(0,p.useMemo)(()=>g.map(e=>({label:e.label,value:String(e.index)})),[g]),[b,x]=(0,p.useState)(()=>y.length>0?y[0].value:`0`);(0,n.useHighlightRange)((0,p.useMemo)(()=>{if(!a.includes(H.COLUMN_VALUE)||!_)return[];let e=Number(b);return[{startRow:_.startRow,endRow:_.endRow,startColumn:e,endColumn:e}]},[a,b,_]));let S=(0,p.useCallback)(e=>{e.length!==0&&s(e)},[]),C=(0,p.useCallback)(e=>{x(String(e))},[]),w=(0,p.useCallback)(()=>{t.close(X)},[t]),T=(0,p.useCallback)(async()=>{if(h.length!==0){u(!0),f(null);try{await i.saveImages(h,{fileNameParts:a,columnIndex:a.includes(H.COLUMN_VALUE)?Number(b):void 0}),t.close(X)}catch(t){console.error(`Failed to save images:`,t),f(e.t(`sheetImage.save.error`))}finally{u(!1)}}},[i,h,a,b,t,e]),E=a.includes(H.COLUMN_VALUE);return(0,m.jsxs)(`div`,{className:`univer-flex univer-flex-col`,children:[(0,m.jsx)(o.FormLayout,{label:e.t(`sheetImage.save.imageCount`),children:(0,m.jsx)(`div`,{className:`univer-text-sm univer-text-gray-600`,children:h.length})}),(0,m.jsx)(o.FormLayout,{label:e.t(`sheetImage.save.fileNameConfig`),children:(0,m.jsxs)(o.CheckboxGroup,{value:a,onChange:S,direction:`vertical`,children:[(0,m.jsx)(o.Checkbox,{value:H.CELL_ADDRESS,disabled:!v,children:e.t(`sheetImage.save.useRowCol`)}),v&&(0,m.jsx)(o.Checkbox,{value:H.COLUMN_VALUE,children:e.t(`sheetImage.save.useColumnValue`)})]})}),E&&(0,m.jsx)(o.FormLayout,{label:e.t(`sheetImage.save.selectColumn`),children:(0,m.jsx)(o.Select,{value:b,options:y,onChange:C})}),d&&(0,m.jsx)(`div`,{className:`univer-text-xs univer-text-red-500`,children:d}),(0,m.jsxs)(`div`,{className:`
|
|
3
|
-
univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3
|
|
4
|
-
`,children:[(0,m.jsx)(o.Button,{onClick:w,disabled:c,children:e.t(`sheetImage.save.cancel`)}),(0,m.jsx)(o.Button,{variant:`primary`,onClick:T,disabled:c||h.length===0,children:c?e.t(`sheetImage.save.saving`):e.t(`sheetImage.save.confirm`)})]})]})}let Ze=e=>{var n;let a=(0,l.useDependency)(r.ICommandService),s=(0,l.useDependency)(r.LocaleService),u=(0,l.useDependency)(c.IDrawingManagerService),d=(0,l.useDependency)(t.IRenderManagerService),{drawings:f}=e,h=f[0];if(h==null)return;let{unitId:g}=h,_=d.getRenderById(g),v=_==null?void 0:_.scene;if(v==null)return;let y=v.getTransformerByCreate(),[b,x]=(0,p.useState)(!0),[S,C]=(0,p.useState)((n=h.anchorType)==null?i.SheetDrawingAnchorType.Position:n);function w(e,t){let n=[];return e.forEach(e=>{let{oKey:r}=e,i=t.getDrawingOKey(r);if(i==null)return n.push(null),!0;let{unitId:a,subUnitId:o,drawingId:s,drawingType:c,anchorType:l,sheetTransform:u,axisAlignSheetTransform:d}=i;n.push({unitId:a,subUnitId:o,drawingId:s,anchorType:l,sheetTransform:u,drawingType:c,axisAlignSheetTransform:d})}),n}(0,p.useEffect)(()=>{let e=y.clearControl$.subscribe(e=>{e===!0&&x(!1)}),t=y.changeStart$.subscribe(e=>{let{objects:t}=e,n=w(t,u);if(n.length===0)x(!1);else if(n.length>=1){var r;x(!0),C(((r=n[0])==null?void 0:r.anchorType)||i.SheetDrawingAnchorType.Position)}});return()=>{t.unsubscribe(),e.unsubscribe()}},[]);function T(e){C(e);let t=u.getFocusDrawings();if(t.length===0)return;let n=t.map(t=>({unitId:t.unitId,subUnitId:t.subUnitId,drawingId:t.drawingId,anchorType:e}));a.executeCommand(O.id,{unitId:t[0].unitId,drawings:n})}return(0,m.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!b}),children:[(0,m.jsx)(`header`,{className:`
|
|
5
|
-
univer-text-gray-600
|
|
6
|
-
dark:!univer-text-gray-200
|
|
7
|
-
`,children:(0,m.jsx)(`div`,{children:s.t(`drawing-anchor.title`)})}),(0,m.jsx)(`div`,{children:(0,m.jsxs)(o.RadioGroup,{value:S,onChange:T,direction:`vertical`,children:[(0,m.jsx)(o.Radio,{value:i.SheetDrawingAnchorType.Both,children:s.t(`drawing-anchor.both`)}),(0,m.jsx)(o.Radio,{value:i.SheetDrawingAnchorType.Position,children:s.t(`drawing-anchor.position`)}),(0,m.jsx)(o.Radio,{value:i.SheetDrawingAnchorType.None,children:s.t(`drawing-anchor.none`)})]})})]})},Qe=()=>{let e=(0,l.useDependency)(c.IDrawingManagerService),[t,n]=(0,p.useState)(e.getFocusDrawings());return(0,p.useEffect)(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&(0,m.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,m.jsx)(d.DrawingCommonPanel,{drawings:t}),(0,m.jsx)(Ze,{drawings:t})]})};function $e(e){return e.getContextValue(r.FOCUSING_SHEET)&&!e.getContextValue(r.FOCUSING_FX_BAR_EDITOR)&&!e.getContextValue(r.FOCUSING_PANEL_EDITOR)&&e.getContextValue(r.FOCUSING_COMMON_DRAWINGS)&&!e.getContextValue(r.FOCUSING_SHAPE_TEXT_EDITOR)}let et={id:V.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_DOWN,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.DOWN}},tt={id:V.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_UP,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.UP}},nt={id:V.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_LEFT,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.LEFT}},rt={id:V.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_RIGHT,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.RIGHT}},it={id:b.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,priority:100,preconditions:$e,binding:l.KeyCode.DELETE,mac:l.KeyCode.BACKSPACE},at=class extends r.Disposable{constructor(e,t,n,r,i,a){super(),this._componentManager=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._drawingManagerService=i,this._sheetsSelectionsService=a,this._init()}_initCustomComponents(){let e=this._componentManager;this.disposeWithMe(e.register(re,Qe)),this.disposeWithMe(e.register(X,Xe))}_initMenus(){this._menuManagerService.mergeMenu(Ye)}_initCommands(){[z,B,E,y,O,ie,v,ae,T,k,V,b,D,ne,Ue].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[et,tt,nt,rt,it].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};at=F([P(0,(0,r.Inject)(l.ComponentManager)),P(1,l.IMenuManagerService),P(2,r.ICommandService),P(3,l.IShortcutService),P(4,c.IDrawingManagerService),P(5,(0,r.Inject)(a.SheetsSelectionsService))],at);let ot=class extends r.RxDisposable{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._injector=e,this._localeService=t,this._drawingManagerService=n,this._canvasPopManagerService=r,this._renderManagerService=i,this._univerInstanceService=a,this._messageService=o,this._contextService=s,this._ioService=c,this._commandService=l,N(this,`_initImagePopupMenu`,new Set),this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._create(e)),this._univerInstanceService.getTypeOfUnitDisposed$(r.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._dispose(e)),this._univerInstanceService.getAllUnitsForType(r.UniverInstanceType.UNIVER_SHEET).forEach(e=>this._create(e)),this._setupLoadingStatus()}_setupLoadingStatus(){let e;this.disposeWithMe(this._ioService.change$.subscribe(t=>{t>0&&!e?e=this._messageService.show({id:`image-upload-loading`,type:o.MessageType.Loading,content:`${this._localeService.t(`uploadLoading.loading`)}: ${t}`,duration:0}):t===0&&(e==null||e.dispose(),e=void 0)}))}_dispose(e){super.dispose();let t=e.getUnitId();this._renderManagerService.removeRender(t),this._initImagePopupMenu.delete(t)}_create(e){if(!e)return;let t=e.getUnitId();this._renderManagerService.has(t)&&!this._initImagePopupMenu.has(t)&&(this._popupMenuListener(t),this._initImagePopupMenu.add(t))}_hasCropObject(e){let t=e.getAllObjectsByOrder();for(let e of t)if(e instanceof d.ImageCropperObject)return!0;return!1}_popupMenuListener(e){var t;let n=(t=this._renderManagerService.getRenderById(e))==null?void 0:t.scene;if(!n)return;let i=n.getTransformerByCreate();if(!i)return;let a;this.disposeWithMe(i.createControl$.subscribe(()=>{if(this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!0),this._hasCropObject(n))return;let e=i.getSelectedObjectMap();if(e.size>1){a==null||a.dispose();return}let t=e.values().next().value;if(!t)return;let o=t.oKey,s=this._drawingManagerService.getDrawingOKey(o);if(!s)return;let{unitId:c,subUnitId:l,drawingId:u,drawingType:f}=s,p=s.data;if(p&&p.disablePopup)return;a==null||a.dispose();let m=this._canvasPopManagerService.getFeatureMenu(c,l,u,f);a=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(t,{componentKey:d.COMPONENT_IMAGE_POPUP_MENU,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:m||this._getImageMenuItems(c,l,u,f)}}))})),this.disposeWithMe(i.clearControl$.subscribe(()=>{a==null||a.dispose(),this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!1),this._commandService.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(e=>{e[r.FOCUSING_COMMON_DRAWINGS]===!1&&(a==null||a.dispose())})),this.disposeWithMe(i.changing$.subscribe(()=>{a==null||a.dispose()}))}_getImageMenuItems(e,t,n,i){return[{label:`image-popup.edit`,index:0,commandId:ae.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.delete`,index:1,commandId:y.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:d.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipH`,index:2,commandId:Ue.id,commandParams:{unitId:e,flipH:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipV`,index:2,commandId:Ue.id,commandParams:{unitId:e,flipV:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.reset`,index:3,commandId:d.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:t,drawingId:n}],disable:i===r.DrawingTypeEnum.DRAWING_DOM}]}};ot=F([P(0,(0,r.Inject)(r.Injector)),P(1,(0,r.Inject)(r.LocaleService)),P(2,c.IDrawingManagerService),P(3,(0,r.Inject)(n.SheetCanvasPopManagerService)),P(4,t.IRenderManagerService),P(5,r.IUniverInstanceService),P(6,l.IMessageService),P(7,r.IContextService),P(8,r.IImageIoService),P(9,r.ICommandService)],ot);let $=class extends r.Plugin{constructor(e=he,t,n,i){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=i;let{menu:a,...o}=(0,r.merge)({},he,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(me,o)}onStarting(){(0,r.registerDependencies)(this._injector,[[Pe],[at],[ot],[ze],[Ae],[ke],[se],[be],[xe],[Ce],[U,{useClass:Y}],[ge]]),(0,r.touchDependencies)(this._injector,[[Pe]])}onReady(){(0,r.touchDependencies)(this._injector,[[ke],[Ce],[se]])}onRendered(){this._registerRenderModules(),(0,r.touchDependencies)(this._injector,[[Ae],[ze],[at],[be],[xe]])}onSteady(){this._injector.get(ot),this._injector.get(ge)}_registerRenderModules(){[[R],[He],[ve],[_e]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(r.UniverInstanceType.UNIVER_SHEET,e))})}};N($,`type`,r.UniverInstanceType.UNIVER_SHEET),N($,`pluginName`,`SHEET_IMAGE_UI_PLUGIN`),N($,`packageName`,fe),N($,`version`,pe),$=F([(0,r.DependentOn)(c.UniverDrawingPlugin,u.UniverDocsDrawingPlugin,d.UniverDrawingUIPlugin,i.UniverSheetsDrawingPlugin),P(1,(0,r.Inject)(r.Injector)),P(2,t.IRenderManagerService),P(3,r.IConfigService)],$),Object.defineProperty(e,`BatchSaveImagesService`,{enumerable:!0,get:function(){return Y}}),e.ClearSheetDrawingTransformerOperation=v,e.DeleteDrawingsCommand=b,e.EditSheetDrawingOperation=ae,e.FileNamePart=H,e.GroupSheetDrawingCommand=T,e.IBatchSaveImagesService=U,e.InsertFloatImageCommand=z,e.InsertSheetDrawingCommand=E,e.MoveDrawingsCommand=V,e.RemoveSheetDrawingCommand=y,e.SHEETS_IMAGE_MENU_ID=ce,e.SHEET_FLOAT_DOM_PREFIX=Me,e.SaveCellImagesCommand=ne,e.SetDrawingArrangeCommand=D,e.SetSheetDrawingCommand=O,Object.defineProperty(e,`SheetCanvasFloatDomManagerService`,{enumerable:!0,get:function(){return Pe}}),e.SheetDrawingAnchor=Ze,Object.defineProperty(e,`SheetDrawingUpdateController`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(e,`SheetsDrawingGroupCopyPasteController`,{enumerable:!0,get:function(){return se}}),e.SidebarSheetDrawingOperation=ie,e.UngroupSheetDrawingCommand=k,Object.defineProperty(e,`UniverSheetsDrawingUIPlugin`,{enumerable:!0,get:function(){return $}}),e.calcSheetFloatDomPosition=Z,e.drawingPositionToTransform=h,e.transformToAxisAlignPosition=_,e.transformToDrawingPosition=g});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/engine-render`),require(`@univerjs/sheets-ui`),require(`@univerjs/core`),require(`@univerjs/sheets-drawing`),require(`@univerjs/sheets`),require(`@univerjs/design`),require(`@univerjs/docs-ui`),require(`@univerjs/drawing`),require(`@univerjs/ui`),require(`@univerjs/docs-drawing`),require(`@univerjs/drawing-ui`),require(`rxjs`),require(`react`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/engine-render`,`@univerjs/sheets-ui`,`@univerjs/core`,`@univerjs/sheets-drawing`,`@univerjs/sheets`,`@univerjs/design`,`@univerjs/docs-ui`,`@univerjs/drawing`,`@univerjs/ui`,`@univerjs/docs-drawing`,`@univerjs/drawing-ui`,`rxjs`,`react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawingUi={},e.UniverEngineRender,e.UniverSheetsUi,e.UniverCore,e.UniverSheetsDrawing,e.UniverSheets,e.UniverDesign,e.UniverDocsUi,e.UniverDrawing,e.UniverUi,e.UniverDocsDrawing,e.UniverDrawingUi,e.rxjs,e.React,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function h(e,t,r){let{from:i,to:a,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e,d=r.getCurrent();if(d==null)return;let{left:f,top:p,width:m,height:h}=(0,n.convertPositionSheetOverGridToAbsolute)(d.unitId,d.sheetId,{from:i,to:a},r),g=r.getCurrentSkeleton(),_=g.rowHeaderWidth+g.columnTotalWidth,v=g.columnHeaderHeight+g.rowTotalHeight;return f+m>_&&(f=_-m),p+h>v&&(p=v-h),{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,left:f,top:p,width:m,height:h}}function g(e,n){let{left:r=0,top:i=0,width:a=0,height:o=0,flipY:s=!1,flipX:c=!1,angle:l=0,skewX:u=0,skewY:d=0}=e,f=n.getCellWithCoordByOffset(r,i);if(f==null)return;let p={column:f.actualColumn,columnOffset:(0,t.precisionTo)(r-f.startX,1),row:f.actualRow,rowOffset:(0,t.precisionTo)(i-f.startY,1)},m=n.getCellWithCoordByOffset(r+a,i+o);if(m!=null)return{flipY:s,flipX:c,angle:l,skewX:u,skewY:d,from:p,to:{column:m.actualColumn,columnOffset:(0,t.precisionTo)(r+a-m.startX,1),row:m.actualRow,rowOffset:(0,t.precisionTo)(i+o-m.startY,1)}}}function _(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:o=0}=e,s=(o%360+360)%360;return g(s>=45&&s<135||s>=225&&s<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}let v={id:`sheet.operation.clear-drawing-transformer`,type:r.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IRenderManagerService);return n.forEach(e=>{var t;(t=r.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},y={id:`sheet.command.remove-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{var n;let o=e.get(r.ICommandService),s=e.get(r.IUndoRedoService),c=e.get(a.SheetInterceptorService),l=e.get(i.ISheetDrawingService);if(!t)return!1;let{drawings:u}=t,d=[];u.forEach(e=>{let{unitId:t}=e;d.push(t)});let{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=l.getBatchRemoveOp(u),_=c.onCommandExecute({id:y.id,params:t}),b={id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:h,objects:g,type:i.DrawingApplyType.REMOVE}},x={id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:m,objects:g,type:i.DrawingApplyType.INSERT}};if((0,r.sequenceExecute)([...(n=_.preRedos)==null?[]:n,b,..._.redos],o)){var S,C;return s.pushUndoRedo({unitID:f,undoMutations:[...(S=_.preUndos)==null?[]:S,x,..._.undos,{id:v.id,params:d}],redoMutations:[...(C=_.preRedos)==null?[]:C,b,..._.redos,{id:v.id,params:d}]}),!0}return!1}},b={id:`sheet.command.delete-drawing`,type:r.CommandType.COMMAND,handler:e=>{let t=e.get(r.ICommandService),n=e.get(i.ISheetDrawingService).getFocusDrawings();if(n.length===0)return!1;let a=n[0].unitId,o=n.map(e=>{let{unitId:t,subUnitId:n,drawingId:r,drawingType:i}=e;return{unitId:t,subUnitId:n,drawingId:r,drawingType:i}});return t.executeCommand(y.id,{unitId:a,drawings:o})}};function x(e){let n=[];return e.forEach(e=>{let{parent:i,children:a}=e,{unitId:o,subUnitId:s,drawingId:c}=i,l=(0,t.getGroupState)(0,0,a.map(e=>e.transform||{})),u=a.map(e=>{let t=e.transform||{left:0,top:0},{unitId:n,subUnitId:r,drawingId:i}=e;return{unitId:n,subUnitId:r,drawingId:i,transform:{...t,left:t.left,top:t.top},groupId:c}}),d={unitId:o,subUnitId:s,drawingId:c,drawingType:r.DrawingTypeEnum.DRAWING_GROUP,groupBaseBound:{...i.groupBaseBound},transform:l};n.push({parent:d,children:u})}),n}function S(e){let n=[];return e.forEach(e=>{let{parent:i,children:a}=e,{unitId:o,subUnitId:s,drawingId:c,transform:l={width:0,height:0}}=i;if(l==null)return;let u=a.map(e=>{let{transform:n}=e,{unitId:r,subUnitId:a,drawingId:o}=e;return{unitId:r,subUnitId:a,drawingId:o,transform:(0,t.transformObjectOutOfGroup)(n||{},l,l.width||0,l.height||0,i.groupBaseBound),groupId:void 0}}),d={unitId:o,subUnitId:s,drawingId:c,drawingType:r.DrawingTypeEnum.DRAWING_GROUP,transform:{left:0,top:0}};n.push({parent:d,children:u})}),n}function C(e){var t;let n=new Map;(t=e.flatChildren)==null||t.forEach(e=>n.set(e.drawingId,(0,r.generateRandomId)(10))),e.groups.forEach(e=>n.set(e.drawingId,(0,r.generateRandomId)(10)));let i={};for(let[t,r]of Object.entries(e.nestedIdRecord)){var a,o;let e=(a=n.get(t))==null?t:a;i[e]={drawingId:e,children:(o=r.children)==null?void 0:o.map(e=>{var t;return(t=n.get(e))==null?e:t})}}let s=[],c=[];for(let t of e.groups){var l,u;let e=(l=n.get(t.drawingId))==null?t.drawingId:l,r=t.groupId?(u=n.get(t.groupId))==null?t.groupId:u:void 0;c.push(w(t,e,r))}for(let t of e.flatChildren||[]){var d,f;let e=(d=n.get(t.drawingId))==null?t.drawingId:d,r=t.groupId?(f=n.get(t.groupId))==null?t.groupId:f:void 0;s.push(w(t,e,r))}return{cloned:{nestedIdRecord:i,flatChildren:s,groups:c},idMap:n}}function w(e,t,n){let r={...e};return t&&(r.drawingId=t),n?r.groupId=n:delete r.groupId,JSON.parse(JSON.stringify(r))}let T={id:`sheet.command.group-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{let n=e.get(r.ICommandService),a=e.get(r.IUndoRedoService),o=e.get(i.ISheetDrawingService);if(!t)return!1;let s=[];t.forEach(({parent:e,children:t})=>{s.push(e.unitId),t.forEach(e=>{s.push(e.unitId)})});let{unitId:c,subUnitId:l,undo:u,redo:d,objects:f}=o.getGroupDrawingOp(t);return n.syncExecuteCommand(i.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.GROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:S(f),type:i.DrawingApplyType.UNGROUP}},{id:v.id,params:s}],redoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.GROUP}},{id:v.id,params:s}]}),!0):!1}},E={id:`sheet.command.insert-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{var n;let o=e.get(r.ICommandService),s=e.get(r.IUndoRedoService),c=e.get(i.ISheetDrawingService),l=e.get(a.SheetInterceptorService);if(!t)return!1;let u=t.drawings,d=u.map(e=>e.unitId),{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=c.getBatchAddOp(u),_=l.onCommandExecute({id:E.id,params:t}),y={id:i.SetDrawingApplyMutation.id,params:{op:h,unitId:f,subUnitId:p,objects:g,type:i.DrawingApplyType.INSERT}},b={id:i.SetDrawingApplyMutation.id,params:{op:m,unitId:f,subUnitId:p,objects:g,type:i.DrawingApplyType.REMOVE}};if((0,r.sequenceExecute)([...(n=_.preRedos)==null?[]:n,y,..._.redos],o)){var x,S;return s.pushUndoRedo({unitID:f,undoMutations:[...(x=_.preUndos)==null?[]:x,b,..._.undos,{id:v.id,params:d}],redoMutations:[...(S=_.preRedos)==null?[]:S,y,..._.redos,{id:v.id,params:d}]}),!0}return!1}},D={id:`sheet.command.set-drawing-arrange`,type:r.CommandType.COMMAND,handler:(e,t)=>{let n=e.get(r.ICommandService),a=e.get(r.IUndoRedoService);if(!t)return!1;let o=e.get(i.ISheetDrawingService),{unitId:s,subUnitId:c,drawingIds:l,arrangeType:u}=t,d={unitId:s,subUnitId:c,drawingIds:l},f;if(u===r.ArrangeTypeEnum.forward?f=o.getForwardDrawingsOp(d):u===r.ArrangeTypeEnum.backward?f=o.getBackwardDrawingOp(d):u===r.ArrangeTypeEnum.front?f=o.getFrontDrawingsOp(d):u===r.ArrangeTypeEnum.back&&(f=o.getBackDrawingsOp(d)),f==null)return!1;let{objects:p,redo:m,undo:h}=f;return n.syncExecuteCommand(i.SetDrawingApplyMutation.id,{op:m,unitId:s,subUnitId:c,objects:p,type:i.DrawingApplyType.ARRANGE})?(a.pushUndoRedo({unitID:s,undoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:h,unitId:s,subUnitId:c,objects:p,type:i.DrawingApplyType.ARRANGE}}],redoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:m,unitId:s,subUnitId:c,objects:p,type:i.DrawingApplyType.ARRANGE}}]}),!0):!1}},O={id:`sheet.command.set-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{var n,o;let s=e.get(r.ICommandService),c=e.get(r.IUndoRedoService),l=e.get(i.ISheetDrawingService),u=e.get(a.SheetInterceptorService);if(!t)return!1;let{drawings:d}=t,{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=l.getBatchUpdateOp(d),_=u.onCommandExecute({id:O.id,params:t}),y=[...(n=_.preRedos)==null?[]:n,{id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:h,objects:g,type:i.DrawingApplyType.UPDATE}},..._.redos,{id:v.id,params:[f]}],b=[...(o=_.preUndos)==null?[]:o,{id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:m,objects:g,type:i.DrawingApplyType.UPDATE}},..._.undos,{id:v.id,params:[f]}];return(0,r.sequenceExecute)(y,s)?(c.pushUndoRedo({unitID:f,undoMutations:b,redoMutations:y}),!0):!1}},k={id:`sheet.command.ungroup-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{let n=e.get(r.ICommandService),a=e.get(r.IUndoRedoService),o=e.get(i.ISheetDrawingService);if(!t)return!1;let s=[];t.forEach(({parent:e,children:t})=>{s.push(e.unitId),t.forEach(e=>{s.push(e.unitId)})});let{unitId:c,subUnitId:l,undo:u,redo:d,objects:f}=o.getUngroupDrawingOp(t);return n.syncExecuteCommand(i.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.UNGROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:x(f),type:i.DrawingApplyType.GROUP}},{id:v.id,params:s}],redoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.UNGROUP}},{id:v.id,params:s}]}),!0):!1}};function A(e){"@babel/helpers - typeof";return A=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},A(e)}function j(e,t){if(A(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(A(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function M(e){var t=j(e,`string`);return A(t)==`symbol`?t:t+``}function N(e,t,n){return(t=M(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(e,t){return function(n,r){t(n,r,e)}}function F(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 I(e,t,n){let r=n*Math.PI/180;return{rotatedWidth:Math.abs(e*Math.cos(r))+Math.abs(t*Math.sin(r)),rotatedHeight:Math.abs(e*Math.sin(r))+Math.abs(t*Math.cos(r))}}function L(e,r,i,a,o){var s;let{rotatedHeight:c,rotatedWidth:l}=I(i,a,o),u=e.get(t.IRenderManagerService).getRenderById(r.unitId);if(!u)return!1;let d=(s=u.with(n.SheetSkeletonManagerService).getSkeletonParam(r.subUnitId))==null?void 0:s.skeleton;if(d==null)return!1;let f=d.getCellByIndex(r.row,r.col),p=f.mergeInfo.endX-f.mergeInfo.startX-2,m=f.mergeInfo.endY-f.mergeInfo.startY-2,h=l/c,g=Math.ceil(Math.min(p,m*h))/l,_=!g||Number.isNaN(g)?.001:g;return{width:i*_,height:a*_}}let R=class extends r.Disposable{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){super(),this._context=e,this._skeletonManagerService=t,this._commandService=n,this._selectionRenderService=r,this._imageIoService=i,this._fileOpenerService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._contextService=c,this._messageService=l,this._localeService=u,this._injector=f,this._urlImageService=p,N(this,`_workbookSelections`,void 0),this._workbookSelections=d.getWorkbookSelections(this._context.unitId),this._updateDrawingListener(),this._updateOrderListener(),this._groupDrawingListener(),this._focusDrawingListener()}async insertFloatImage(){let e=await this._fileOpenerService.openFile({multiple:!0,accept:c.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>c.DRAWING_IMAGE_COUNT_LIMIT?(this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(c.DRAWING_IMAGE_COUNT_LIMIT))}),!1):t===0?!1:(e.forEach(async e=>await this.insertFloatImageByFile(e)),!0)}async insertCellImage(){let e=(await this._fileOpenerService.openFile({multiple:!1,accept:c.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}))[0];return e?(await this._insertCellImage(e),!0):!1}insertCellImageByFile(e,t){return this._insertCellImage(e,t)}async insertFloatImageByFile(e){var t;let n;try{n=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===c.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(c.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===c.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===c.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(n==null)return;let{unitId:i,subUnitId:a}=this._getUnitInfo(),{imageId:s,imageSourceType:l,source:u,base64Cache:d}=n,{width:f,height:p,image:m}=await(0,c.getImageSize)(d||``),{width:g,height:v}=this._context.scene;this._imageIoService.addImageSourceCache(u,l,m);let y=1;if(f>c.DRAWING_IMAGE_WIDTH_LIMIT||p>c.DRAWING_IMAGE_HEIGHT_LIMIT){let e=c.DRAWING_IMAGE_WIDTH_LIMIT/f,t=c.DRAWING_IMAGE_HEIGHT_LIMIT/p;y=Math.max(e,t)}let b=this._getImagePosition(f*y,p*y,g,v);if(b==null)return;let x=h(b,this._selectionRenderService,this._skeletonManagerService),S={unitId:i,subUnitId:a,drawingId:s,drawingType:r.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l,source:u,transform:x,sheetTransform:b,axisAlignSheetTransform:(t=_(x,this._selectionRenderService))==null?b:t};return this._commandService.executeCommand(E.id,{unitId:i,drawings:[S]})}async _insertCellImage(e,t){let n;try{n=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===c.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(c.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===c.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===c.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(n==null)return!1;let{imageId:i,imageSourceType:l,source:u,base64Cache:d}=n,{width:f,height:p,image:m}=await(0,c.getImageSize)(d||``);this._imageIoService.addImageSourceCache(u,l,m);let h=this._workbookSelections.getCurrentLastSelection();if(!h)return!1;let g=h.primary.actualRow,_=h.primary.actualColumn;h.primary.isMerged&&(g=h.primary.startRow,_=h.primary.startColumn);let v=(0,r.createDocumentModelWithStyle)(``,{}),y=L(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:g,col:_},f,p,0);if(!y)return!1;let b={size:{width:y.width,height:y.height},positionH:{relativeFrom:r.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:r.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},x={unitId:v.getUnitId(),subUnitId:v.getUnitId(),drawingId:i,drawingType:r.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l,source:u,transform:(0,s.docDrawingPositionToTransform)(b),docTransform:b,behindDoc:r.BooleanNumber.FALSE,title:``,description:``,layoutType:r.PositionedObjectLayoutType.INLINE,wrapText:r.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},S=r.BuildTextUtils.drawing.add({documentDataModel:v,drawings:[x],selection:{collapsed:!0,startOffset:0,endOffset:0}});if(S){var C,w;return v.apply(S),this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{value:{[(C=t==null?void 0:t.row)==null?g:C]:{[(w=t==null?void 0:t.col)==null?_:w]:{p:v.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})}return!1}async insertCellImageByUrl(e,t){let n=e;try{n=await this._urlImageService.getImage(e)}catch(t){console.error(`Failed to get image from URLImageService: ${e}`,t)}let{width:i,height:o,image:l}=await(0,c.getImageSize)(n||``);this._imageIoService.addImageSourceCache(e,r.ImageSourceType.URL,l);let u=this._workbookSelections.getCurrentLastSelection();if(!u)return!1;let d=(0,r.createDocumentModelWithStyle)(``,{}),f=L(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:u.primary.actualRow,col:u.primary.actualColumn},i,o,0);if(!f)return!1;let p={size:{width:f.width,height:f.height},positionH:{relativeFrom:r.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:r.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},m={unitId:d.getUnitId(),subUnitId:d.getUnitId(),drawingId:(0,r.generateRandomId)(),drawingType:r.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:r.ImageSourceType.URL,source:e,transform:(0,s.docDrawingPositionToTransform)(p),docTransform:p,behindDoc:r.BooleanNumber.FALSE,title:``,description:``,layoutType:r.PositionedObjectLayoutType.INLINE,wrapText:r.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},h=r.BuildTextUtils.drawing.add({documentDataModel:d,drawings:[m],selection:{collapsed:!0,startOffset:0,endOffset:0}});if(h){var g,_;return d.apply(h),this._commandService.syncExecuteCommand(a.SetRangeValuesCommand.id,{value:{[(g=t==null?void 0:t.row)==null?u.primary.actualRow:g]:{[(_=t==null?void 0:t.col)==null?u.primary.actualColumn:_]:{p:d.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})}return!1}_getUnitInfo(){let e=this._context.unit,t=e.getActiveSheet();return{unitId:e.getUnitId(),subUnitId:t.getSheetId()}}_getImagePosition(e,t,r,i){let a=this._workbookSelections.getCurrentSelections(),o={startRow:0,endRow:0,startColumn:0,endColumn:0};a&&a.length>0&&(o=a[a.length-1].range);let s=(0,n.attachRangeWithCoord)(this._skeletonManagerService.getCurrent().skeleton,o);if(s==null)return;let{startColumn:c,startRow:l,startX:u,startY:d}=s,f=!1;if(u+e>r&&(u=r-e,u<0&&(u=0,e=r),f=!0),d+t>i&&(d=i-t,d<0&&(d=0,t=i),f=!0),f){let e=this._selectionRenderService.getCellWithCoordByOffset(u,d);if(e==null)return;u=e.startX,d=e.startY,c=e.actualColumn,l=e.actualRow}let p={column:c,columnOffset:0,row:l,rowOffset:0},m=this._selectionRenderService.getCellWithCoordByOffset(u+e,d+t);if(m!=null)return{from:p,to:{column:m.actualColumn,columnOffset:u+e-m.startX,row:m.actualRow,rowOffset:d+t-m.startY}}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(D.id,{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i})}))}_updateDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{let t=[];e.length!==0&&(e.forEach(e=>{let{unitId:n,subUnitId:r,drawingId:i,drawingType:a,transform:o}=e;if(o==null)return;let s=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:r,drawingId:i});if(s==null||s.unitId!==this._context.unitId)return;let c=g({...s.transform,...o},this._selectionRenderService),l=_({...s.transform,...o},this._selectionRenderService);if(c==null||l==null)return;let u={...e,transform:{...s.transform,...o,...h(c,this._selectionRenderService,this._skeletonManagerService)},sheetTransform:{...c},axisAlignSheetTransform:{...l}};t.push(u)}),t.length>0&&this._commandService.executeCommand(O.id,{unitId:e[0].unitId,drawings:t}))}))}_getSheetTransformByParam(e,t){let{unitId:n,subUnitId:r,drawingId:i,transform:a}=e;if(a==null)return null;let o=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:r,drawingId:i}),s=o==null?void 0:o.transform;if(t&&(s={}),!t&&(o==null||o.unitId!==this._context.unitId))return null;let c=g({...s,...a},this._selectionRenderService),l=_({...s,...a},this._selectionRenderService);return c==null||l==null?null:{sheetTransform:c,axisAlignSheetTransform:l}}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{let t=[];for(let n of e){let e=this._getSheetTransformByParam(n.parent,!0),r=[];for(let e of n.children){let t=this._getSheetTransformByParam(e,!1);t!=null&&r.push({...e,sheetTransform:t.sheetTransform,axisAlignSheetTransform:t.axisAlignSheetTransform})}let i={parent:{...n.parent,sheetTransform:e==null?void 0:e.sheetTransform,axisAlignSheetTransform:e==null?void 0:e.axisAlignSheetTransform},children:r};t.push(i)}if(t.length>0){this._commandService.executeCommand(T.id,t);let{unitId:n,subUnitId:r,drawingId:i}=e[0].parent;this._commandService.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[{unitId:n,subUnitId:r,drawingId:i}])}})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{let t=[];for(let n of e){let{children:e}=n,r=[];for(let t of e){let e=this._getSheetTransformByParam(t,!1);e!=null&&r.push({...t,sheetTransform:e.sheetTransform,axisAlignSheetTransform:e.axisAlignSheetTransform})}t.push({...n,children:r})}this._commandService.executeCommand(k.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!0),this._sheetDrawingService.focusDrawing(e))}))}};R=F([P(1,(0,r.Inject)(n.SheetSkeletonManagerService)),P(2,r.ICommandService),P(3,n.ISheetSelectionRenderService),P(4,c.IImageIoService),P(5,l.ILocalFileService),P(6,i.ISheetDrawingService),P(7,c.IDrawingManagerService),P(8,r.IContextService),P(9,l.IMessageService),P(10,(0,r.Inject)(r.LocaleService)),P(11,(0,r.Inject)(a.SheetsSelectionsService)),P(12,(0,r.Inject)(r.Injector)),P(13,r.IURLImageService)],R);let z={id:`sheet.command.insert-float-image`,type:r.CommandType.COMMAND,handler:async(e,n)=>{var i;let a=e.get(r.IUniverInstanceService),o=e.get(t.IRenderManagerService),s=(i=(0,t.getCurrentTypeOfRenderer)(r.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(R);if(!s)return!1;let c=n==null?void 0:n.files;if(c){let e=c.map(e=>s.insertFloatImageByFile(e));return(await Promise.all(e)).every(e=>e)}else{var l;return(l=s.insertFloatImage())==null?!1:l}}},B={id:`sheet.command.insert-cell-image`,type:r.CommandType.COMMAND,handler:e=>{var n,i;let a=e.get(r.IUniverInstanceService),o=e.get(t.IRenderManagerService);return(n=(i=(0,t.getCurrentTypeOfRenderer)(r.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(R).insertCellImage())==null?!1:n}},V={id:`sheet.command.move-drawing`,type:r.CommandType.COMMAND,handler:(e,t)=>{let a=e.get(r.ICommandService),o=e.get(i.ISheetDrawingService),s=e.get(n.ISheetSelectionRenderService),{direction:c}=t,l=o.getFocusDrawings();if(l.length===0)return!1;let u=l[0].unitId,d=l.map(e=>{let{transform:t}=e;if(t==null)return null;let n={...t},{left:i=0,top:a=0}=t;return c===r.Direction.UP?n.top=a-1:c===r.Direction.DOWN?n.top=a+1:c===r.Direction.LEFT?n.left=i-1:c===r.Direction.RIGHT&&(n.left=i+1),{...e,transform:n,sheetTransform:g(n,s),axisAlignSheetTransform:_(n,s)}}).filter(e=>e!=null);return a.syncExecuteCommand(O.id,{unitId:u,drawings:d})?(a.syncExecuteCommand(v.id,[u]),!0):!1}},H=function(e){return e.CELL_ADDRESS=`cellAddress`,e.COLUMN_VALUE=`columnValue`,e}({}),U=(0,r.createIdentifier)(`sheets-drawing-ui.batch-save-images.service`);function W(e){let t=``,n=e;for(;n>=0;)t=String.fromCharCode(n%26+65)+t,n=Math.floor(n/26)-1;return t}function G(e,t){return`${W(t)}${e+1}`}function ee(e){let t=G(e.startRow,e.startColumn),n=G(e.endRow,e.endColumn);return t===n?t:`${t}:${n}`}function K(e){var t,n;return!!(!(e==null||(t=e.p)==null||(t=t.drawingsOrder)==null)&&t.length&&(e==null||(n=e.p)==null||(n=n.drawingsOrder)==null?void 0:n.length)>0)}function q(e){var t,n;if(!(!((t=e.p)==null||(t=t.drawingsOrder)==null)&&t.length)||!((n=e.p)!=null&&n.drawings))return null;let r=e.p.drawingsOrder[0],i=e.p.drawings[r];return!i||!(`source`in i)||!(`imageSourceType`in i)?null:i}function J(e,t){if(t===r.ImageSourceType.BASE64){let t=e.match(/^data:image\/(\w+);/);if(t)return t[1]===`jpeg`?`jpg`:t[1]}if(t===r.ImageSourceType.URL){let t=e.match(/\.(\w+)(?:\?|$)/);if(t)return t[1].toLowerCase()}return`png`}async function te(e,t){if(t===r.ImageSourceType.BASE64||t===r.ImageSourceType.URL)return(await fetch(e)).blob();throw Error(`UUID image type requires additional handling`)}let Y=class extends r.Disposable{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._selectionService=t,this._imageIoService=n,this._urlImageService=r}registerURLImageDownloader(e){return this._urlImageService.registerURLImageDownloader(e)}getCellImagesInSelection(){let e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let i=t.getCellMatrix(),a=[];for(let e of n){let{startRow:t,endRow:n,startColumn:r,endColumn:o}=e.range;for(let e=t;e<=n;e++)for(let t=r;t<=o;t++){let n=i.getValue(e,t);if(K(n)){let r=q(n);r&&a.push({row:e,col:t,cellAddress:G(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return a}getCellImagesFromRanges(e,t,n){let i=this._univerInstanceService.getUnit(e,r.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(t);if(!a)return[];let o=a.getCellMatrix(),s=[];for(let e of n){let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;for(let e=t;e<=n;e++)for(let t=r;t<=i;t++){let n=o.getValue(e,t);if(K(n)){let r=q(n);r&&s.push({row:e,col:t,cellAddress:G(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return s}getDataColumns(){let e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let i=t.getCellMatrix(),a=i.getDataRange(),o=1/0,s=-1/0,c=new Set;for(let e of n){o=Math.min(o,e.range.startRow),s=Math.max(s,e.range.endRow);for(let t=e.range.startColumn;t<=e.range.endColumn;t++)c.add(t)}let l=new Set;for(let e=a.startColumn;e<=a.endColumn;e++)if(!c.has(e))for(let t=o;t<=s;t++){let n=i.getValue(t,e);if(n){var u,d;if((u=n.v)!=null&&u.toString()||!((d=n.p)==null||(d=d.body)==null||(d=d.dataStream)==null)&&d.trim()){l.add(e);break}}}let f=[],p=Array.from(l).sort((e,t)=>e-t);for(let e of p)f.push({index:e,label:W(e)});return f}getDataColumnsForRanges(e,t,n){let i=this._univerInstanceService.getUnit(e,r.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(t);if(!a)return[];let o=a.getCellMatrix(),s=o.getDataRange(),c=1/0,l=-1/0,u=new Set;for(let e of n){c=Math.min(c,e.startRow),l=Math.max(l,e.endRow);for(let t=e.startColumn;t<=e.endColumn;t++)u.add(t)}let d=new Set;for(let e=s.startColumn;e<=s.endColumn;e++)if(!u.has(e))for(let t=c;t<=l;t++){let n=o.getValue(t,e);if(n){var f,p;if((f=n.v)!=null&&f.toString()||!((p=n.p)==null||(p=p.body)==null||(p=p.dataStream)==null)&&p.trim()){d.add(e);break}}}let m=[],h=Array.from(d).sort((e,t)=>e-t);for(let e of h)m.push({index:e,label:W(e)});return m}getSelectionRangeNotation(){let e=this._selectionService.getCurrentSelections();return!e||e.length===0?``:e.map(e=>ee(e.range)).join(`, `)}getSelectionRowRange(){let e=this._selectionService.getCurrentSelections();if(!e||e.length===0)return null;let t=1/0,n=-1/0;for(let r of e)t=Math.min(t,r.range.startRow),n=Math.max(n,r.range.endRow);return{startRow:t,endRow:n}}getSelectionColumnIndices(){let e=this._selectionService.getCurrentSelections();if(!e||e.length===0)return new Set;let t=new Set;for(let n of e)for(let e=n.range.startColumn;e<=n.range.endColumn;e++)t.add(e);return t}generateFileName(e,t){let n=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET),i=J(e.source,e.imageSourceType),a=[];for(let r of t.fileNameParts)if(r===H.CELL_ADDRESS)a.push(e.cellAddress);else if(r===H.COLUMN_VALUE&&t.columnIndex!==void 0){let r=n==null?void 0:n.getActiveSheet();if(r){let n=r.getCellMatrix().getValue(e.row,t.columnIndex);if(n){var o,s;let e=((o=n.v)==null?void 0:o.toString())||((s=n.p)==null||(s=s.body)==null||(s=s.dataStream)==null?void 0:s.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&a.push(t)}}}}return a.length===0?`${e.cellAddress}.${i}`:`${a.join(`_`)}.${i}`}generateFileNameWithContext(e,t,n,i){let a=this._univerInstanceService.getUnit(n,r.UniverInstanceType.UNIVER_SHEET),o=J(e.source,e.imageSourceType),s=[];for(let n of t.fileNameParts)if(n===H.CELL_ADDRESS)s.push(e.cellAddress);else if(n===H.COLUMN_VALUE&&t.columnIndex!==void 0){let n=a==null?void 0:a.getSheetBySheetId(i);if(n){let r=n.getCellMatrix().getValue(e.row,t.columnIndex);if(r){var c,l;let e=((c=r.v)==null?void 0:c.toString())||((l=r.p)==null||(l=l.body)==null||(l=l.dataStream)==null?void 0:l.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&s.push(t)}}}}return s.length===0?`${e.cellAddress}.${o}`:`${s.join(`_`)}.${o}`}async saveImages(e,t){let n=await window.showDirectoryPicker({mode:`readwrite`}),r=new Map;for(let a of e){var i;let e=this.generateFileName(a,t),o=e.replace(/\.\w+$/,``),s=((i=e.match(/\.\w+$/))==null?void 0:i[0])||`.png`,c=r.get(o)||0;c>0&&(e=`${o}_${c}${s}`),r.set(o,c+1);try{let t=await this._getImageBlob(a),r=await(await n.getFileHandle(e,{create:!0})).createWritable();await r.write(t),await r.close()}catch(t){throw console.error(`Failed to save image ${e}:`,t),t}}}async saveImagesWithContext(e,t,n,r){let i=await window.showDirectoryPicker({mode:`readwrite`}),a=new Map;for(let s of e){var o;let e=this.generateFileNameWithContext(s,t,n,r),c=e.replace(/\.\w+$/,``),l=((o=e.match(/\.\w+$/))==null?void 0:o[0])||`.png`,u=a.get(c)||0;u>0&&(e=`${c}_${u}${l}`),a.set(c,u+1);try{let t=await this._getImageBlob(s),n=await(await i.getFileHandle(e,{create:!0})).createWritable();await n.write(t),await n.close()}catch(t){throw console.error(`Failed to save image ${e}:`,t),t}}}async downloadSingleImage(e){let t=J(e.source,e.imageSourceType),n=`${e.cellAddress}.${t}`;try{let t=await this._getImageBlob(e),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=n,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}catch(e){throw console.error(`Failed to download image ${n}:`,e),e}}async _getImageBlob(e){return e.imageSourceType===r.ImageSourceType.UUID?te(await this._imageIoService.getImage(e.source),r.ImageSourceType.URL):e.imageSourceType===r.ImageSourceType.URL?this._urlImageService.downloadImage(e.source):te(e.source,e.imageSourceType)}};Y=F([P(0,r.IUniverInstanceService),P(1,(0,r.Inject)(a.SheetsSelectionsService)),P(2,r.IImageIoService),P(3,r.IURLImageService)],Y);let X=`sheet.dialog.batch-save-images`,ne={id:`sheet.command.save-cell-images`,type:r.CommandType.COMMAND,handler:async e=>{let t=e.get(l.IDialogService),n=e.get(U),i=n.getCellImagesInSelection();if(i.length===1)try{return await n.downloadSingleImage(i[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let a=e.get(r.LocaleService),o=n.getSelectionRangeNotation(),s=`${a.t(`sheetImage.save.title`)} (${o})`;return t.open({id:X,draggable:!0,width:360,title:{title:s},children:{label:X},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>t.close(X)}),!0}},re=`COMPONENT_SHEET_DRAWING_PANEL`,ie={id:`sidebar.operation.sheet-image`,type:r.CommandType.COMMAND,handler:async(e,t)=>{let n=e.get(l.ISidebarService),i=e.get(r.LocaleService),o=e.get(r.IUniverInstanceService),s=e.get(r.ICommandService);if(!(0,a.getSheetCommandTarget)(o))return!1;switch(t.value){case`open`:n.open({header:{title:i.t(`sheetImage.panel.title`)},children:{label:re},onClose:()=>{s.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[])},width:360});break;default:n.close();break}return!0}},ae={id:`sheet.operation.edit-sheet-image`,type:r.CommandType.OPERATION,handler:(e,t)=>{let n=e.get(r.ICommandService);return t==null?!1:(n.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[t]),n.executeCommand(ie.id,{value:`open`}),!0)}},oe=[n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA],se=class extends r.Disposable{constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetDrawingService=n,this._drawingManagerService=r,N(this,`_featurePasteHooks`,[]),N(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._sheetDrawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_DRAWING_GROUP`,onBeforeCopy:(e,t)=>{this._copyInfo=null;let n=this._focusedDrawings;if(n.length===0)return;let i=n.find(e=>e.drawingType===r.DrawingTypeEnum.DRAWING_GROUP);if(!i)return;let a=this._drawingManagerService.getDrawingsByGroupNested({unitId:i.unitId,subUnitId:i.subUnitId,drawingId:i.drawingId});a&&(this._copyInfo={unitId:i.unitId,subUnitId:i.subUnitId,groupNestedParam:a})},onPasteCells:(e,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{pasteType:i}=r;return oe.includes(i)?{redos:[],undos:[]}:this._generateGroupPasteMutations(t)},onPasteUnrecognized:e=>this._copyInfo?this._generateGroupPasteMutations(e):{redos:[],undos:[]}})}registerFeaturePasteHook(e){this._featurePasteHooks.push(e)}_getGroupFeaturePasteMutations(e){let t=[],n=[];for(let r of this._featurePasteHooks){let i=r(e);t.push(...i.redos),n.push(...i.undos)}return{redos:t,undos:n}}_generateGroupPasteMutations(e){var t;let{unitId:r,subUnitId:o,range:s}=e,c=this._renderManagerService.getRenderById(r),l=c==null?void 0:c.with(n.SheetSkeletonManagerService),u=c==null?void 0:c.with(n.ISheetSelectionRenderService);if(!l||!u||!this._copyInfo)return{redos:[],undos:[]};let{groupNestedParam:d}=this._copyInfo,f=d.groups[d.groups.length-1],{cloned:p,idMap:m}=C(d),h=p.groups[p.groups.length-1].drawingId,v=(0,a.discreteRangeToRange)(s),y=l.attachRangeWithCoord({startRow:v.startRow,endRow:v.endRow,startColumn:v.startColumn,endColumn:v.endColumn});if(!y)return{redos:[],undos:[]};let b={...f.transform,left:y.startX,top:y.startY},x=[...((t=p.flatChildren)==null?[]:t).map(e=>({...e,unitId:r,subUnitId:o})),...p.groups.map(e=>{var t,n;return e.drawingId===h?{...e,unitId:r,subUnitId:o,transform:b,sheetTransform:(t=g(b,u))==null?f.sheetTransform:t,axisAlignSheetTransform:(n=_(b,u))==null?f.sheetTransform:n}:{...e,unitId:r,subUnitId:o}})],{undo:S,redo:w,objects:T}=this._sheetDrawingService.getBatchAddOp(x),E=[{id:i.SetDrawingApplyMutation.id,params:{op:w,unitId:r,subUnitId:o,objects:T,type:i.DrawingApplyType.INSERT}}],D=[{id:i.SetDrawingApplyMutation.id,params:{op:S,unitId:r,subUnitId:o,objects:T,type:i.DrawingApplyType.REMOVE}}],O=this._getGroupFeaturePasteMutations({fromUnitId:this._copyInfo.unitId,fromSubUnitId:this._copyInfo.subUnitId,toUnitId:r,toSubUnitId:o,idMap:m,cloned:p});return E.push(...O.redos),D.push(...O.undos),{redos:E,undos:D}}dispose(){this._copyInfo=null,this._featurePasteHooks.length=0,super.dispose()}};se=F([P(0,n.ISheetClipboardService),P(1,t.IRenderManagerService),P(2,i.ISheetDrawingService),P(3,c.IDrawingManagerService)],se);let ce=`sheet.menu.image`;function le(e){return{id:ce,type:l.MenuItemType.SUBITEMS,icon:`AddImageIcon`,tooltip:`sheetImage.title`,hidden$:(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET),disabled$:(0,n.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}}function ue(e){return{id:z.id,title:`sheetImage.upload.float`,type:l.MenuItemType.BUTTON,hidden$:(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET)}}function de(e){return{id:B.id,title:`sheetImage.upload.cell`,type:l.MenuItemType.BUTTON,hidden$:(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET)}}var fe=`@univerjs/sheets-drawing-ui`,pe=`0.19.0`;let me=`sheets-drawing-ui.config`;Symbol(me);let he={},ge=class extends r.RxDisposable{constructor(e,t,n,r){super(),this._drawingManagerService=e,this._contextMenuService=t,this._renderManagerService=n,this._univerInstanceService=r,this._init()}_init(){this._univerInstanceService.getAllUnitsForType(r.UniverInstanceType.UNIVER_SHEET).forEach(e=>this._contextMenuListener(e))}_contextMenuListener(e){var t;if(!e)return;let n=(t=this._renderManagerService.getRenderById(e.getUnitId()))==null?void 0:t.scene;if(!n)return;let r=n.getTransformerByCreate();r&&this.disposeWithMe(r.changeEnd$.subscribe(e=>{let{event:t}=e;if(t.button!==2)return;let n=r.getSelectedObjectMap();if(n.size!==0){for(let e of n.values()){let t=e.oKey;if(!this._drawingManagerService.getDrawingOKey(t))return}this._contextMenuService.triggerContextMenu(t,l.ContextMenuPosition.DRAWING)}}))}};ge=F([P(0,c.IDrawingManagerService),P(1,l.IContextMenuService),P(2,t.IRenderManagerService),P(3,r.IUniverInstanceService)],ge);let _e=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._hoverManagerService=t,this._selectionsService=n,this._drawingRenderService=r,this._sheetSkeletonManagerService=i,N(this,`_isSetCursor`,!1),this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe((0,f.throttleTime)(33)).subscribe(e=>{var n,r;let i=[];e!==null&&(i=this._selectionsService.getWorkbookSelections(this._context.unitId).getCurrentSelections()),i.length>0&&(e==null?void 0:e.unitId)===this._context.unitId&&e!=null&&e.drawing&&i.length===1&&((n=i[0].primary)==null?void 0:n.actualRow)===e.row&&((r=i[0].primary)==null?void 0:r.actualColumn)===e.col?(this._isSetCursor=!0,this._context.scene.setCursor(t.CURSOR_TYPE.ZOOM_IN)):this._isSetCursor&&(this._isSetCursor=!1,this._context.scene.resetCursor())}))}_initImageClick(){this.disposeWithMe(this._hoverManagerService.currentClickedCell$.subscribe(e=>{if(e!=null&&e.drawing&&this._isSetCursor){var t;let n=e.drawing.drawing.drawingOrigin,r=(t=this._sheetSkeletonManagerService.getCurrentSkeleton())==null?void 0:t.imageCacheMap.getImage(n.imageSourceType,n.source);if(!r)return;this._drawingRenderService.previewImage(`preview-cell-image`,r.src,r.width,r.height),this._context.scene.resetCursor(),this._isSetCursor=!1}}))}};_e=F([P(1,(0,r.Inject)(n.HoverManagerService)),P(2,(0,r.Inject)(a.SheetsSelectionsService)),P(3,(0,r.Inject)(d.DrawingRenderService)),P(4,(0,r.Inject)(n.SheetSkeletonManagerService))],_e);let ve=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._sheetDrawingService=t,this._drawingManagerService=n,this._sheetSelectionRenderService=r,this._sheetSkeletonManagerService=i,this._init()}_init(){this._drawingInitializeListener()}_drawingInitializeListener(){this._sheetDrawingService.initializeNotification(this._context.unitId);let e=this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId);for(let t in e){let n=e[t];for(let e in n.data){let t=n.data[e];t.sheetTransform&&(t.transform=h(t.sheetTransform,this._sheetSelectionRenderService,this._sheetSkeletonManagerService))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};ve=F([P(1,i.ISheetDrawingService),P(2,c.IDrawingManagerService),P(3,(0,r.Inject)(n.ISheetSelectionRenderService)),P(4,(0,r.Inject)(n.SheetSkeletonManagerService))],ve);function ye(e,t,n){var r,i;if((n==null||(r=n.p)==null||(r=r.body)==null?void 0:r.dataStream.length)===3&&((i=n.p)==null||(i=i.drawingsOrder)==null?void 0:i.length)===1){let r=n.p.drawings[n.p.drawingsOrder[0]],i=L(e,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},r.docTransform.size.width,r.docTransform.size.height,r.docTransform.angle);if(i)return r.transform.width=i.width,r.transform.height=i.height,r.docTransform.size.width=i.width,r.docTransform.size.height=i.height,r.transform.left=0,r.transform.top=0,r.docTransform.positionH.posOffset=0,r.docTransform.positionV.posOffset=0,n.p.documentStyle.pageSize.width=1/0,n.p.documentStyle.pageSize.height=1/0,!0}return!1}let be=class extends r.Disposable{constructor(e,t,n,r,i,a){super(),this._commandService=e,this._sheetInterceptorService=t,this._injector=n,this._drawingManagerService=r,this._docDrawingController=i,this._editorBridgeService=a,this._handleInitEditor(),this._initCellContentInterceptor()}_handleInitEditor(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(e=>{e.visible?e.visible&&(this._drawingManagerService.removeDrawingDataForUnit(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)):this._drawingManagerService.removeDrawingDataForUnit(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{e.id===s.ReplaceSnapshotCommand.id&&e.params.unitId===r.DOCS_ZEN_EDITOR_UNIT_ID_KEY&&(this._drawingManagerService.removeDrawingDataForUnit(r.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(r.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(r.DOCS_ZEN_EDITOR_UNIT_ID_KEY))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(a.INTERCEPTOR_POINT.CELL_CONTENT,{effect:r.InterceptorEffectEnum.Style,priority:a.InterceptCellContentPriority.CELL_IMAGE,handler:(e,t,n)=>{var r;return e!=null&&e.p&&(r=e.p.drawingsOrder)!=null&&r.length&&(e===t.rawData&&(e={...t.rawData}),e.interceptorStyle||(e.interceptorStyle={}),e.interceptorStyle.tr={a:0},ye(this._injector,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},e)),n(e)}}))}};be=F([P(0,r.ICommandService),P(1,(0,r.Inject)(a.SheetInterceptorService)),P(2,(0,r.Inject)(r.Injector)),P(3,c.IDrawingManagerService),P(4,(0,r.Inject)(u.DocDrawingController)),P(5,(0,r.Inject)(n.IEditorBridgeService))],be);let xe=class extends r.Disposable{constructor(e,t){super(),this._autoFillService=e,this._injector=t,this._initAutoFillHooks()}_initAutoFillHooks(){this.disposeWithMe(this._autoFillService.addHook({id:`sheet-cell-image-autofill`,onBeforeSubmit:(e,t,n,i)=>{new r.ObjectMatrix(i).forValue((t,n,r)=>{ye(this._injector,{unitId:e.unitId,subUnitId:e.subUnitId,row:t,col:n},r)})}}))}};xe=F([P(0,(0,r.Inject)(a.IAutoFillService)),P(1,(0,r.Inject)(r.Injector))],xe);let Se=[r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,r.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,r.DOCS_ZEN_EDITOR_UNIT_ID_KEY],Ce=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._commandService=e,this._univerInstanceService=t,this._dialogService=n,this._renderManagerService=r,this._localeService=i,this._initDocImageCopyPasteHooks()}_setCellImage(e){var i;let a=(0,r.createDocumentModelWithStyle)(``,{}),o=(i=(0,t.getCurrentTypeOfRenderer)(r.UniverInstanceType.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService))==null?void 0:i.with(n.EditingRenderController),s=r.BuildTextUtils.drawing.add({documentDataModel:a,drawings:[e],selection:{collapsed:!0,startOffset:0,endOffset:0}});s&&(a.apply(s),o&&o.submitCellData(a))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===s.InnerPasteCommand.id){var t;let{doc:a}=e.params,o=this._univerInstanceService.getCurrentUnitOfType(r.UniverInstanceType.UNIVER_DOC);if(o==null||!Object.keys((t=a.drawings)==null?{}:t).length)return;let s=o.getUnitId();if(Se.includes(s)){if(s!==r.DOCS_ZEN_EDITOR_UNIT_ID_KEY){var i;let e=()=>{this._dialogService.close(`sheet-cell-image-copy-paste`),this._commandService.syncExecuteCommand(n.SetCellEditVisibleOperation.id,{visible:!1})};((i=o.getBody())==null?void 0:i.dataStream)===`\r
|
|
2
|
+
`?(this._commandService.syncExecuteCommand(n.SetCellEditVisibleOperation.id,{visible:!1}),this._setCellImage(Object.values(a.drawings)[0])):this._dialogService.open({id:`sheet-cell-image-copy-paste`,title:{label:this._localeService.t(`cell-image.pasteTitle`)},children:{label:this._localeService.t(`cell-image.pasteContent`)},width:320,destroyOnClose:!0,onClose:e,showOk:!0,showCancel:!0,onOk:()=>{e(),this._setCellImage(Object.values(a.drawings)[0])},onCancel:e})}throw Error(`Sheet cell image copy paste is not supported in this unit`)}}}))}};Ce=F([P(0,r.ICommandService),P(1,r.IUniverInstanceService),P(2,l.IDialogService),P(3,t.IRenderManagerService),P(4,(0,r.Inject)(r.LocaleService))],Ce);let we=`image/png`;function Te(e){let t=e.split(`,`),n=atob(t[1]),r=n.length,i=new Uint8Array(r);for(let e=0;e<r;e++)i[e]=n.charCodeAt(e);return new Blob([i],{type:we})}function Ee(e){let t=new ClipboardItem({[we]:Te(e)});navigator.clipboard.write([t]).catch(e=>{console.error(`Could not copy image using clipboard API: `,e)})}function De(){function e(){let e=document.createElement(`input`);return e.style.position=`absolute`,e.style.height=`1px`,e.style.width=`1px`,e.style.opacity=`0`,e}let t=document.activeElement,n=e();return document.body.appendChild(n),n.focus(),()=>{n.blur(),document.body.removeChild(n),t instanceof HTMLElement&&t.focus()}}let Oe=[n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA],ke=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._drawingService=n,this._clipboardInterfaceService=r,this._commandService=i,N(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._drawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_IMAGE_UI_PLUGIN`,onBeforeCopy:(e,t,i,a)=>{this._copyInfo=null;let o=this._focusedDrawings;if(o.length>0){let[t]=o;if(t.drawingType!==r.DrawingTypeEnum.DRAWING_IMAGE)return;if(a===n.COPY_TYPE.CUT){let n={unitId:e,drawings:[t]};this._commandService.executeCommand(y.id,n)}setTimeout(()=>{let e=De();t.drawingType===r.DrawingTypeEnum.DRAWING_IMAGE&&t.imageSourceType===c.ImageSourceType.BASE64?Ee(t.source):this._clipboardInterfaceService.writeText(``),e()},200),this._copyInfo={unitId:t.unitId,subUnitId:t.subUnitId,drawings:[t]}}else this._copyInfo=this._createDrawingsCopyInfoByRange(e,t,i)},onPasteCells:(e,t,r,i)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{copyType:a=n.COPY_TYPE.COPY,pasteType:o}=i,{range:s}=e||{},{range:c,unitId:l,subUnitId:u}=t;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({pasteType:o,unitId:l,subUnitId:u,pasteRange:c},{copyRange:s,copyType:a}):this._generateSingleDrawingPasteMutations({pasteTo:t,pasteType:o},n.COPY_TYPE.COPY)},onPastePlainText:(e,t)=>({undos:[],redos:[]}),onPasteUnrecognized:e=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:n.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},n.COPY_TYPE.COPY):{undos:[],redos:[]},onPasteFiles:(e,t)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:n.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},n.COPY_TYPE.COPY);{let e=t.filter(e=>e.type.includes(`image`));if(e.length)return{undos:[],redos:[{id:z.id,params:{files:e}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(e,t,a){var o;let s=(o=this._renderManagerService.getRenderById(e))==null?void 0:o.with(n.SheetSkeletonManagerService);if(!s)return;let c=s.attachRangeWithCoord(a);if(!c)return;let{startX:l,endX:u,startY:d,endY:f}=c,p=this._drawingService.getDrawingData(e,t),m=this._focusedDrawings.slice();if(Object.keys(p).forEach(e=>{let t=p[e];if(t.drawingType!==r.DrawingTypeEnum.DRAWING_IMAGE)return;let{transform:n}=t;if(t.anchorType!==i.SheetDrawingAnchorType.Both||!n)return;let{left:a=0,top:o=0,width:s=0,height:c=0}=n,{drawingStartX:h,drawingEndX:g,drawingStartY:_,drawingEndY:v}={drawingStartX:a,drawingEndX:a+s,drawingStartY:o,drawingEndY:o+c};l<=h&&g<=u&&d<=_&&v<=f&&m.push(t)}),m.length)return{copyRange:a,drawings:m,unitId:e,subUnitId:t}}_generateSingleDrawingPasteMutations(e,t){let{pasteType:r,pasteTo:i}=e;if(Oe.includes(r))return{redos:[],undos:[]};let{unitId:o,subUnitId:s,range:c}=i,l=this._renderManagerService.getRenderById(o),u=l==null?void 0:l.with(n.SheetSkeletonManagerService),d=l==null?void 0:l.with(n.ISheetSelectionRenderService),f=this._copyInfo;if(!u||!d)return{redos:[],undos:[]};let{drawings:p}=f,m=(0,a.discreteRangeToRange)(c);return this._generateMutations(p,{unitId:o,subUnitId:s,isCut:t===n.COPY_TYPE.CUT,getTransform:(e,t)=>{var n,r;let i=u.attachRangeWithCoord({startRow:m.startRow,endRow:m.endRow,startColumn:m.startColumn,endColumn:m.endColumn}),a={...e,left:i==null?void 0:i.startX,top:i==null?void 0:i.startY};return{transform:a,sheetTransform:(n=g(a,d))==null?t:n,axisAlignSheetTransform:(r=_(a,d))==null?t:r}}})}_generateMutations(e,t){let{unitId:n,subUnitId:a,getTransform:o,isCut:s}=t,c=[],l=[],{_drawingService:u}=this;return e.forEach(e=>{let{transform:t,sheetTransform:d}=e;if(!t)return;let f=o(t,d),p={...e,unitId:n,subUnitId:a,drawingId:s?e.drawingId:(0,r.generateRandomId)(),transform:f.transform,sheetTransform:f.sheetTransform,axisAlignSheetTransform:f.axisAlignSheetTransform};if(s){let{undo:e,redo:t,objects:r}=u.getBatchUpdateOp([p]);c.push({id:i.SetDrawingApplyMutation.id,params:{unitId:n,subUnitId:a,type:i.DrawingApplyType.UPDATE,op:t,objects:r}}),l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:n,subUnitId:a,type:i.DrawingApplyType.UPDATE,op:e,objects:r}})}else{let{undo:e,redo:t,objects:r}=u.getBatchAddOp([p]);c.push({id:i.SetDrawingApplyMutation.id,params:{op:t,unitId:n,subUnitId:a,objects:r,type:i.DrawingApplyType.INSERT}}),l.push({id:i.SetDrawingApplyMutation.id,params:{op:e,unitId:n,subUnitId:a,objects:r,type:i.DrawingApplyType.REMOVE}})}}),{redos:c,undos:l}}_generateRangeDrawingsPasteMutations(e,t){var r;let{unitId:i,subUnitId:o,pasteType:s,pasteRange:c}=e,{copyRange:l,copyType:u}=t;if(Oe.includes(s))return{redos:[],undos:[]};let d=(r=this._renderManagerService.getRenderById(i))==null?void 0:r.with(n.SheetSkeletonManagerService);if(!d||!this._copyInfo)return{redos:[],undos:[]};let{drawings:f}=this._copyInfo;if(!l)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:i,subUnitId:o,range:(0,a.discreteRangeToRange)(c)},pasteType:s},u);let{ranges:[p,m],mapFunc:h}=(0,n.virtualizeDiscreteRanges)([l,c]),{row:g,col:v}=h(p.startRow,p.startColumn),{row:y,col:b}=h(m.startRow,m.startColumn),x=d.attachRangeWithCoord({startRow:g,endRow:g,startColumn:v,endColumn:v}),S=d.attachRangeWithCoord({startRow:y,endRow:y,startColumn:b,endColumn:b});if(!x||!S||!this._copyInfo)return{redos:[],undos:[]};let C=S.startX-x.startX,w=S.startY-x.startY,T=y-g,E=b-v;return this._generateMutations(f,{unitId:i,subUnitId:o,getTransform:(e,t)=>{var r,a,o;let s={...e,left:((r=e==null?void 0:e.left)==null?0:r)+C,top:((a=e==null?void 0:e.top)==null?0:a)+w},c=this._renderManagerService.getRenderById(i),l=c==null?void 0:c.with(n.ISheetSelectionRenderService);return l?{transform:s,sheetTransform:{...t,to:{...t.to,row:t.to.row+T,column:t.to.column+E},from:{...t.from,row:t.from.row+T,column:t.from.column+E}},axisAlignSheetTransform:(o=_(s,l))==null?t:o}:{transform:s,sheetTransform:{...t,to:{...t.to,row:t.to.row+T,column:t.to.column+E},from:{...t.from,row:t.from.row+T,column:t.from.column+E}},axisAlignSheetTransform:{...t,to:{...t.to,row:t.to.row+T,column:t.to.column+E},from:{...t.from,row:t.from.row+T,column:t.from.column+E}}}},isCut:u===n.COPY_TYPE.CUT})}};ke=F([P(0,n.ISheetClipboardService),P(1,t.IRenderManagerService),P(2,c.IDrawingManagerService),P(3,l.IClipboardInterfaceService),P(4,r.ICommandService)],ke);let Ae=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._drawingManagerService=e,this._renderManagerService=t,this._permissionService=n,this._univerInstanceService=r,this._userManagerService=i,this._initDrawingVisible(),this._initDrawingEditable(),this._initViewPermissionChange(),this._initEditPermissionChange()}_initDrawingVisible(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=(0,f.combineLatest)([e,t]);this.disposeWithMe(n.pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.tap)(t=>{if(!t){this._drawingManagerService.setDrawingVisible(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new a.WorkbookViewPermission(n).id,new a.WorksheetViewPermission(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(e,t)})):(this._drawingManagerService.setDrawingVisible(!1),f.EMPTY))).subscribe())}_handleDrawingVisibilityFalse(e,n){this._drawingManagerService.setDrawingVisible(!1);let r=e.getUnitId(),i=n.getSheetId(),a=this._drawingManagerService.getDrawingData(r,i),o=Object.values(a),s=this._renderManagerService.getRenderById(r),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.removeObject(e)})}_initDrawingEditable(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=(0,f.combineLatest)([e,t]);this.disposeWithMe(n.pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.tap)(t=>{if(!t){this._drawingManagerService.setDrawingEditable(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new a.WorkbookEditablePermission(n).id,new a.WorksheetEditPermission(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingEditable(!0):this._handleDrawingEditableFalse(e,t)})):(this._drawingManagerService.setDrawingEditable(!1),f.EMPTY))).subscribe())}_handleDrawingEditableFalse(e,n){this._drawingManagerService.setDrawingEditable(!1);let r=e.getUnitId(),i=n.getSheetId(),a=this._drawingManagerService.getDrawingData(r,i),o=Object.values(a),s=this._renderManagerService.getRenderById(r),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.detachTransformerFrom(e)})}_initViewPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$;this.disposeWithMe((0,f.combineLatest)([e,n]).pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.switchMap)(t=>{if(!t)return f.EMPTY;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),o=i==null?void 0:i.scene;if(!o)return f.EMPTY;let s=o.getTransformerByCreate();return this._permissionService.composePermission$([new a.WorkbookViewPermission(n).id,new a.WorksheetViewPermission(n,r).id]).pipe((0,f.map)(e=>e.every(e=>e.value)),(0,f.distinctUntilChanged)()).pipe((0,f.map)(e=>({permission:e,scene:o,transformer:s,unitId:n,subUnitId:r})))})):f.EMPTY)).subscribe({next:({permission:e,scene:n,transformer:r,unitId:i,subUnitId:a})=>{this._drawingManagerService.setDrawingVisible(e);let o=n.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(i,a),c=Object.values(s);e?this._drawingManagerService.addNotification(c):(o.forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&n.removeObject(e)}),r.clearSelectedObjects())},complete:()=>{this._drawingManagerService.setDrawingVisible(!0);let e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet(),n=e==null?void 0:e.getUnitId(),i=t==null?void 0:t.getSheetId();if(!n||!i)return;let a=this._drawingManagerService.getDrawingData(n,i),o=Object.values(a);this._drawingManagerService.addNotification(o)}}))}_initEditPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$;this.disposeWithMe((0,f.combineLatest)([e,n]).pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.switchMap)(t=>{if(!t)return f.EMPTY;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),o=i==null?void 0:i.scene;if(!o)return f.EMPTY;let s=o.getTransformerByCreate();return this._permissionService.composePermission$([new a.WorkbookEditablePermission(n).id,new a.WorksheetEditPermission(n,r).id]).pipe((0,f.map)(e=>e.every(e=>e.value)),(0,f.distinctUntilChanged)()).pipe((0,f.map)(e=>({permission:e,scene:o,transformer:s,unitId:n,subUnitId:r})))})):f.EMPTY)).subscribe({next:({permission:e,scene:n,transformer:r,unitId:i,subUnitId:a})=>{this._drawingManagerService.setDrawingEditable(e);let o=n.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(i,a),c=Object.values(s);e?(o.forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&n.attachTransformerTo(e)}),this._drawingManagerService.addNotification(c)):(o.forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&n.detachTransformerFrom(e)}),r.clearSelectedObjects())},complete:()=>{let e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!e)return;let n=e.getUnitId(),i=e.getActiveSheet();if(!i)return;let a=i.getSheetId(),o=this._renderManagerService.getRenderById(n),s=o==null?void 0:o.scene;if(!s)return;let c=this._drawingManagerService.getDrawingData(n,a),l=Object.values(c);this._drawingManagerService.setDrawingEditable(!0),s.getAllObjectsByOrder().forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&l.some(t=>e.oKey.includes(t.drawingId))&&s.detachTransformerFrom(e)})}}))}};Ae=F([P(0,c.IDrawingManagerService),P(1,t.IRenderManagerService),P(2,r.IPermissionService),P(3,r.IUniverInstanceService),P(4,(0,r.Inject)(r.UserManagerService))],Ae);var je=function(e){return e.ALL=`ALL`,e.HORIZONTAL=`HORIZONTAL`,e.VERTICAL=`VERTICAL`,e}(je||{});let Me=`univer-sheet-float-dom-`;function Ne(e,n,i,a,o,s=!1){let{scaleX:c,scaleY:l}=n.getAncestorScale(),u=n.getViewport(t.SHEET_VIEWPORT_KEY.VIEW_MAIN),{startColumn:d,startRow:f,xSplit:p,ySplit:m}=a.getFreeze(),h={left:!0,top:!0};if(!u)return{...e,absolute:h};let{left:g,right:_,top:v,bottom:y}=e,{top:b,left:x,viewportScrollX:S,viewportScrollY:C}=u,{boundsOfViewArea:w,scrollDirectionResponse:T}=o||{},{rowHeaderWidth:E,columnHeaderHeight:D}=i,O={top:s?0:D,left:s?0:E};w&&(r.Tools.isDefine(O.top)&&(O.top=w.top),r.Tools.isDefine(O.left)&&(O.left=w.left)),T===je.HORIZONTAL&&(C=0),T===je.VERTICAL&&(S=0);let k=0,A=0,j=i.rowStartY(f-m)+D,M=i.colStartX(d-p)+E,N=i.rowStartY(f)+D,P=i.colStartX(d)+E;if(p===0)h.left=!1,k=(g-S)*c,A=(_-S)*c;else{let e=g-(M-E),t=_-(M-E);_<P?(k=e*c,A=t*c):g<=P&&_>=P?(k=e*c,A=Math.max(x,(_-S)*c)):g>P&&(h.left=!1,k=Math.max((g-S)*c,x),A=Math.max((_-S)*c,x))}let F=0,I=0;if(m===0)h.top=!1,F=(v-C)*l,I=(y-C)*l;else{let e=v-(j-D),t=y-(j-D);y<N?(F=e*l,I=t*l):v<=N&&y>=N?(F=e*l,I=Math.max(b,(y-C)*l)):v>N&&(h.top=!1,F=Math.max((v-C)*l,b),I=Math.max((y-C)*l,b))}return k=Math.max(k,O.left),F=Math.max(F,O.top),A=Math.max(A,O.left),I=Math.max(I,O.top),{left:k,right:A,top:F,bottom:I,absolute:h}}let Z=(e,t,n,r,i)=>{let{left:a,top:o,width:s,height:c,angle:l}=e,u=Ne({left:a,right:a+s,top:o,bottom:o+c},t,n,r,i),{scaleX:d,scaleY:f}=t.getAncestorScale();return{startX:u.left,endX:u.right,startY:u.top,endY:u.bottom,rotate:l,width:s*d,height:c*f,absolute:u.absolute}},Pe=class extends r.Disposable{constructor(e,t,n,r,i,a,o){super(),this._renderManagerService=e,this._univerInstanceService=t,this._commandService=n,this._drawingManagerService=r,this._canvasFloatDomService=i,this._sheetDrawingService=a,this._lifecycleService=o,N(this,`_domLayerInfoMap`,new Map),N(this,`_transformChange$`,new f.Subject),N(this,`transformChange$`,this._transformChange$.asObservable()),N(this,`_add$`,new f.Subject),N(this,`add$`,this._add$.asObservable()),N(this,`_remove$`,new f.Subject),N(this,`remove$`,this._remove$.asObservable()),this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe((0,f.filter)(e=>e===r.LifecycleStages.Rendered),(0,f.take)(1)).subscribe(()=>{this._scrollUpdateListener()})}getFloatDomInfo(e){return this._domLayerInfoMap.get(e)}getFloatDomsBySubUnitId(e,t){return Array.from(this._domLayerInfoMap.values()).filter(n=>n.subUnitId===t&&n.unitId===e)}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;return t==null||n==null?null:{scene:n,transformer:n.getTransformerByCreate(),renderUnit:t,canvas:t.engine.getCanvasElement()}}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{e.forEach(e=>{var i;let{unitId:o,subUnitId:s,drawingId:l}=e,u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:o,subUnitId:s}),d=this._drawingManagerService.getDrawingByParam(e),p=this._univerInstanceService.getUnit(o,r.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let h=(i=this._renderManagerService.getRenderById(o))==null?void 0:i.with(n.SheetSkeletonManagerService).getSkeletonParam(s);if(!h)return;let{transform:g,drawingType:_,data:v}=d;if(_!==r.DrawingTypeEnum.DRAWING_DOM&&_!==r.DrawingTypeEnum.DRAWING_CHART)return;let y=this._getSceneAndTransformerByDrawingSearch(o);if(y==null)return;let{scene:b,canvas:x}=y;if(g==null)return!0;if(m!==s)return;let{left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A}=g,j=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:o,subUnitId:s,drawingId:l}),M=b.getObject(j);if(M!=null){M.transformByState({left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A});return}let N={left:S,top:C,width:w,height:T,zIndex:this._drawingManagerService.getDrawingOrder(o,s).length-1},P=_===r.DrawingTypeEnum.DRAWING_CHART;N.rotateEnabled=!1,P&&(N.fill=v?v.backgroundColor:`white`,v&&v.border&&(N.stroke=v.border),N.paintFirst=`stroke`,N.strokeWidth=1,N.borderEnabled=!1,N.radius=8);let F=new t.Rect(j,N);P&&F.setObjectType(t.ObjectType.CHART),b.addObject(F,t.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&b.attachTransformerTo(F);let I=new r.DisposableCollection,L=new f.BehaviorSubject(Z(F,y.renderUnit.scene,h.skeleton,u.worksheet)),R=`${Me}${(0,r.generateRandomId)(6)}`,z={dispose:I,rect:F,position$:L,unitId:o,subUnitId:s,id:l,domId:R};this._canvasFloatDomService.addFloatDom({position$:L,id:l,domId:R,componentKey:d.componentKey,onPointerDown:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{x.dispatchEvent(new WheelEvent(e.type,e))},data:v,unitId:o});let B=F.onTransformChange$.subscribeEvent(()=>{let e=Z(F,y.renderUnit.scene,h.skeleton,u.worksheet);L.next(e)});I.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),B&&I.add(B),this._domLayerInfoMap.set(l,z)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:n,drawingId:r}),a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{transformer:o,scene:s}=a,l=s.getObject(i);if(l!=null&&l.oKey){var u;o.clearControlByIds([l==null?void 0:l.oKey]),(u=s.getTransformer())==null||u.clearSelectedObjects()}})}))}_scrollUpdateListener(){let e=(e,t)=>{var r;let i=this._getSceneAndTransformerByDrawingSearch(e),o=Array.from(this._domLayerInfoMap.keys()).map(e=>({id:e,...this._domLayerInfoMap.get(e)})).filter(n=>n.subUnitId===t&&n.unitId===e).map(e=>e.id),s=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:t}),c=(r=this._renderManagerService.getRenderById(e))==null?void 0:r.with(n.SheetSkeletonManagerService).getSkeletonParam(t);!i||!s||!c||o.forEach(e=>{let t=this._domLayerInfoMap.get(e);if(t){let e=Z(t.rect,i.renderUnit.scene,c.skeleton,s.worksheet,t);t.position$.next(e)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET).pipe((0,f.switchMap)(e=>e?e.activeSheet$:(0,f.of)(null)),(0,f.map)(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t,subUnitId:e.getSheetId()}:null}),(0,f.switchMap)(e=>e?(0,r.fromEventSubject)(e.render.scene.getViewport(t.SHEET_VIEWPORT_KEY.VIEW_MAIN).onScrollAfter$).pipe((0,f.map)(()=>({unitId:e.unitId,subUnitId:e.subUnitId}))):(0,f.of)(null))).subscribe(t=>{if(!t)return;let{unitId:n,subUnitId:r}=t;e(n,r)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===n.SetZoomRatioOperation.id){let{unitId:n}=t.params;Array.from(this._domLayerInfoMap.values()).filter(e=>e.unitId===n).map(e=>e.subUnitId).forEach(t=>{e(n,t)})}else if(t.id===a.SetFrozenMutation.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}else if(t.id===a.SetSelectionsOperation.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}}))}updateFloatDomProps(e,n,r,i){let a=this._domLayerInfoMap.get(r),o=this._getSceneAndTransformerByDrawingSearch(e);if(a&&o){let{scene:a}=o,s=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:n,drawingId:r}),l=a.getObject(s);l&&l instanceof t.Rect&&l.setProps(i)}}_getPosition(e,t){var r;let{startX:i,endX:a,startY:o,endY:s}=e,c=(r=this._renderManagerService.getRenderById(t))==null?void 0:r.with(n.ISheetSelectionRenderService);if(c==null)return;let l=c.getCellWithCoordByOffset(i,o);if(l==null)return;let u={column:l.actualColumn,columnOffset:i-l.startX,row:l.actualRow,rowOffset:o-l.startY},d=c.getCellWithCoordByOffset(a,s);if(d!=null)return{from:u,to:{column:d.actualColumn,columnOffset:a-d.startX,row:d.actualRow,rowOffset:s-d.startY}}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);if(!t||t.drawingType!==r.DrawingTypeEnum.DRAWING_DOM&&t.drawingType!==r.DrawingTypeEnum.DRAWING_CHART)return;let n={...t.transform};this._transformChange$.next({id:e.drawingId,value:n}),this._canvasFloatDomService.updateFloatDom(e.drawingId,{...t});let i=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(i&&t.drawingType!==r.DrawingTypeEnum.DRAWING_CHART){let{scene:n}=i,r=this._domLayerInfoMap.get(e.drawingId);r!=null&&r.rect&&(t.allowTransform===!1?n.detachTransformerFrom(r.rect):n.attachTransformerTo(r.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}addFloatDomToPosition(e,t){let n=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!n)throw Error(`cannot find current target!`);let{unitId:i,subUnitId:o}=n,{initPosition:s,componentKey:c,data:l,allowTransform:u=!0}=e,d=t==null?(0,r.generateRandomId)():t,f=this._getPosition(s,i);if(f==null)return;let p={unitId:i,subUnitId:o,drawingId:d,drawingType:e.type||r.DrawingTypeEnum.DRAWING_DOM,componentKey:c,sheetTransform:f,transform:{left:s.startX,top:s.startY,width:s.endX-s.startX,height:s.endY-s.startY},axisAlignSheetTransform:f,data:l,allowTransform:u};return this._commandService.executeCommand(E.id,{unitId:i,drawings:[p]}),this._add$.next({unitId:i,subUnitId:o,id:d}),{id:d,dispose:()=>{this._removeDom(d,!0)}}}_removeDom(e,t=!1){let n=this._domLayerInfoMap.get(e);if(!n)return;let{unitId:r,subUnitId:a}=n;this._domLayerInfoMap.delete(e),n.dispose.dispose();let o=this._getSceneAndTransformerByDrawingSearch(r);if(o&&o.scene.removeObject(n.rect),t){let t=this._drawingManagerService.getDrawingByParam({unitId:r,subUnitId:a,drawingId:e});if(!t)return;let{redo:n,objects:o}=this._sheetDrawingService.getBatchRemoveOp([t]);this._commandService.syncExecuteCommand(i.SetDrawingApplyMutation.id,{unitId:r,subUnitId:a,op:n,objects:o,type:i.DrawingApplyType.REMOVE})}}addFloatDomToRange(e,i,o,s){var l;let u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:i.unitId,subUnitId:i.subUnitId});if(!u)throw Error(`cannot find current target!`);let{unitId:d,subUnitId:p}=u,m=this._getSceneAndTransformerByDrawingSearch(d);if(!m)return;let h=this._renderManagerService.getRenderById(d);if(!h)return;let g=(l=this._renderManagerService.getRenderById(d))==null?void 0:l.with(n.SheetSkeletonManagerService).getWorksheetSkeleton(p);if(!g)return;let{componentKey:_,data:v,allowTransform:y=!0}=i,b=s==null?(0,r.generateRandomId)():s,{position:x,position$:S}=this._createRangePositionObserver(e,h,g.skeleton),C=this._getPosition(x,d);if(C==null)return;let{scaleX:w}=m.scene.getAncestorScale(),T=Ie(x,o,w),E={unitId:d,subUnitId:p,drawingId:b,drawingType:i.type||r.DrawingTypeEnum.DRAWING_DOM,componentKey:_,sheetTransform:C,axisAlignSheetTransform:C,transform:{left:T.startX,top:T.startY,width:T.width,height:T.height},data:v,allowTransform:y};{var D,O;let{unitId:e,subUnitId:s,drawingId:l}=E,u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:s}),d=E,p=this._univerInstanceService.getUnit(e,r.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let h=(D=this._renderManagerService.getRenderById(e))==null?void 0:D.with(n.SheetSkeletonManagerService);if(!h)return;let g=h.getWorksheetSkeleton(s);if(!g)return;let{transform:_,drawingType:v,data:y}=d;if(v!==r.DrawingTypeEnum.DRAWING_DOM&&v!==r.DrawingTypeEnum.DRAWING_CHART)return;let C=this._getSceneAndTransformerByDrawingSearch(e);if(C==null)return;let{scene:w,canvas:T}=C;if(_==null||m!==s)return;let{left:k,top:A,width:j,height:M,angle:N,flipX:P,flipY:F,skewX:I,skewY:L}=_,R=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,drawingId:l}),z=w.getObject(R);if(z!=null){z.transformByState({left:k,top:A,width:j,height:M,angle:N,flipX:P,flipY:F,skewX:I,skewY:L});return}let B={left:k,top:A,width:j,height:M,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1},V=v===r.DrawingTypeEnum.DRAWING_CHART;V&&(B.fill=y?y.backgroundColor:`white`,B.rotateEnabled=!1,y&&y.border&&(B.stroke=y.border),B.paintFirst=`stroke`,B.strokeWidth=1,B.borderEnabled=!1,B.radius=8);let H=new t.Rect(R,B);V&&H.setObjectType(t.ObjectType.CHART),w.addObject(H,t.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&w.attachTransformerTo(H);let U=new r.DisposableCollection,W=w.getMainViewport(),{rowHeaderWidth:G,columnHeaderHeight:ee}=g.skeleton,K={dispose:U,rect:H,boundsOfViewArea:{top:ee,left:G,bottom:W.bottom,right:W.right},domAnchor:o,unitId:e,subUnitId:s},q=new f.BehaviorSubject(Z(H,C.renderUnit.scene,g.skeleton,u.worksheet,K));K.position$=q;let J={position$:q,id:l,componentKey:d.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{T.dispatchEvent(new WheelEvent(e.type,e))},data:y,unitId:e};i.eventPassThrough&&(J={...J,onPointerDown:e=>{T.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{T.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{T.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(J),this.disposeWithMe(S.subscribe(n=>{var r,i,a,d;let f=Ie({rotate:0,startX:n.startX,startY:n.startY,endX:n.endX,endY:n.endY,width:(r=o.width)==null?n.width:r,height:(i=o.height)==null?n.height:i,absolute:{left:x.absolute.left,top:x.absolute.top}},o),p=Z(new t.Rect((0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,drawingId:l}),{left:f.startX,top:f.startY,width:(a=o.width)==null?n.width:a,height:(d=o.height)==null?n.height:d,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1}),C.renderUnit.scene,g.skeleton,u.worksheet,K);q.next(p)}));let te=(O=this._renderManagerService.getRenderById(e))==null?void 0:O.with(n.SheetSkeletonManagerService),Y=te==null?void 0:te.currentSkeleton$.subscribe(e=>{e&&g.sheetId!==e.sheetId&&this._removeDom(b,!0)});Y&&U.add(Y);let X=H.onTransformChange$.subscribeEvent(()=>{let e=Z(H,C.renderUnit.scene,g.skeleton,u.worksheet,K);q.next(e)});U.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),X&&U.add(X),this._domLayerInfoMap.set(l,K)}return{id:b,dispose:()=>{this._removeDom(b,!0)}}}addFloatDomToColumnHeader(e,i,o,s){var l;let u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:i.unitId,subUnitId:i.subUnitId});if(!u)throw Error(`cannot find current target!`);let{unitId:d,subUnitId:p}=u;if(!this._getSceneAndTransformerByDrawingSearch(d))return;let m=this._renderManagerService.getRenderById(d);if(!m)return;let h=(l=this._renderManagerService.getRenderById(d))==null?void 0:l.with(n.SheetSkeletonManagerService).getWorksheetSkeleton(p);if(!h)return;let{componentKey:g,data:_,allowTransform:v=!0}=i,y=s==null?(0,r.generateRandomId)():s,{position:b,position$:x}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:e,endColumn:e},m,h.skeleton),S=b;S.startY=0;let C=this._getPosition(b,d);if(C==null)return;let w={unitId:d,subUnitId:p,drawingId:y,drawingType:i.type||r.DrawingTypeEnum.DRAWING_DOM,componentKey:g,sheetTransform:C,axisAlignSheetTransform:C,transform:{left:S.startX,top:S.startY,width:S.width,height:S.height},data:_,allowTransform:v};{var T,E;let{unitId:e,subUnitId:s,drawingId:l}=w,u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:s}),d=w,p=this._univerInstanceService.getUnit(e,r.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let g=(T=this._renderManagerService.getRenderById(e))==null?void 0:T.with(n.SheetSkeletonManagerService);if(!g)return;let _=g.getWorksheetSkeleton(s);if(!_)return;let{transform:v,data:C}=d,D=this._getSceneAndTransformerByDrawingSearch(e);if(D==null)return;let{scene:O,canvas:k}=D;if(v==null||m!==s)return;let{left:A,top:j,width:M,height:N,angle:P,flipX:F,flipY:I,skewX:L,skewY:R}=v,z=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,drawingId:l}),B=O.getObject(z);if(B!=null){B.transformByState({left:A,top:j,width:M,height:N,angle:P,flipX:F,flipY:I,skewX:L,skewY:R});return}let V=Ie({rotate:0,startX:S.startX,startY:0,endX:b.endX,endY:b.endY,width:o.width,height:o.height,absolute:{left:b.absolute.left,top:b.absolute.top}},o),H=new t.Rect(z,{left:V.startX,top:V.startY,width:V.width,height:V.height,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1});O.addObject(H,t.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&O.attachTransformerTo(H);let U=new r.DisposableCollection,W=O.getMainViewport(),G={dispose:U,rect:H,unitId:e,subUnitId:s,boundsOfViewArea:{top:0,left:W.left,bottom:W.bottom,right:W.right},domAnchor:o,scrollDirectionResponse:je.HORIZONTAL},ee=new f.BehaviorSubject(Z(H,D.renderUnit.scene,_.skeleton,u.worksheet,G));G.position$=ee;let K={position$:ee,id:l,componentKey:d.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{k.dispatchEvent(new WheelEvent(e.type,e))},data:C,unitId:e};i.eventPassThrough&&(K={...K,onPointerDown:e=>{k.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{k.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{k.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(K);let q=H.onTransformChange$.subscribeEvent(()=>{let e=Z(H,D.renderUnit.scene,_.skeleton,u.worksheet,G);ee.next(e)});this.disposeWithMe(x.subscribe(n=>{let r=Ie({rotate:0,startX:n.startX,startY:0,endX:n.endX,endY:n.endY,width:o.width,height:o.height,absolute:{left:b.absolute.left,top:b.absolute.top}},o),i=Z(new t.Rect((0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,drawingId:l}),{left:r.startX,top:0,width:o.width,height:o.height,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1}),D.renderUnit.scene,_.skeleton,u.worksheet,G);ee.next(i)}));let J=(E=this._renderManagerService.getRenderById(e))==null?void 0:E.with(n.SheetSkeletonManagerService);J==null||J.currentSkeleton$.subscribe(e=>{e&&h.sheetId!==e.sheetId&&this._removeDom(y,!0)}),U.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),q&&U.add(q),this._domLayerInfoMap.set(l,G)}return{id:y,dispose:()=>{this._removeDom(y,!0)}}}_createRangePositionObserver(e,t,i){let{startRow:o,startColumn:s}=e,c=Fe(o,s,i),l=new f.BehaviorSubject(c),u=Fe(e.endRow,e.endColumn,i),d=new f.BehaviorSubject(u),p=()=>{let t=Fe(o,s,i),n=Fe(e.endRow,e.endColumn,i);l.next(t),d.next(n)},m=new r.DisposableCollection;return m.add(t.engine.clientRect$.subscribe(()=>p())),m.add(this._commandService.onCommandExecuted(e=>{if(e.id===a.SetWorksheetRowAutoHeightMutation.id&&e.params.rowsAutoHeightInfo.findIndex(e=>e.row===o)>-1){p();return}(a.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(e.id)>-1||e.id===n.SetScrollOperation.id||e.id===n.SetZoomRatioOperation.id)&&p()})),{position$:l.pipe((0,f.map)(t=>{let n=Fe(e.endRow,e.endColumn,i);return{rotate:0,width:n.right-t.left,height:n.bottom-t.top,absolute:{left:!0,top:!0},startX:t.left,startY:t.top,endX:n.right,endY:n.bottom}})),position:{rotate:0,width:u.right-c.left,height:u.bottom-c.top,absolute:{left:!0,top:!0},startX:c.left,startY:c.top,endX:u.right,endY:u.bottom},updateRowCol:(e,t)=>{o=e,s=t,p()},topLeftPos$:l,rightBottomPos$:d,disposable:m}}};Pe=F([P(0,(0,r.Inject)(t.IRenderManagerService)),P(1,r.IUniverInstanceService),P(2,(0,r.Inject)(r.ICommandService)),P(3,c.IDrawingManagerService),P(4,(0,r.Inject)(l.CanvasFloatDomService)),P(5,i.ISheetDrawingService),P(6,(0,r.Inject)(r.LifecycleService))],Pe);function Fe(e,t,n){let r=n.getCellWithCoordByIndex(e,t),i=r.isMergedMainCell?r.mergeInfo:r;return{left:i.startX,right:i.endX,top:i.startY,bottom:i.endY}}function Ie(e,t,n){var r,i,a;n=(r=n)==null?1:r;let o=e.endX-e.startX,s=e.endY-e.startY,c=(i=t==null?void 0:t.width)==null?o:i,l=(a=t==null?void 0:t.height)==null?s:a,u=0,d=0;if(t){if(t.horizonOffsetAlign===`right`){let r=Le(t.marginX,o*n);u=e.endX-r-c}else u=e.startX+Le(t.marginX,o);if(t.verticalOffsetAlign===`bottom`){let r=Le(t.marginY,s*n);d=e.endY-r-l}else d=e.startY+Le(t.marginY,s)}return{rotate:0,startX:u,startY:d,endX:e.endX,endY:e.endY,width:c,height:l,absolute:{left:e.absolute.left,top:e.absolute.top}}}function Le(e,t){return e===void 0?0:typeof e==`number`?e:t*Number.parseFloat(e)/100}let Re=e=>{let{floatDomInfos:t,scene:n,skeleton:r,worksheet:i}=e;return(0,m.jsx)(`div`,{style:{position:`absolute`,top:0,left:0},children:(0,p.useMemo)(()=>t.map(e=>{let{width:t,height:a,angle:o,left:s,top:c}=e.transform,l=Ne({left:s==null?0:s,right:(s==null?0:s)+(t==null?0:t),top:c==null?0:c,bottom:(c==null?0:c)+(a==null?0:a)},n,r,i,void 0,!0),{scaleX:u,scaleY:d}=n.getAncestorScale(),p={startX:l.left,endX:l.right,startY:l.top,endY:l.bottom,rotate:o,width:t*u,height:a*d,absolute:l.absolute},m={position$:new f.BehaviorSubject(p),position:p,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,m]}),[t,n,r,i]).map(([e,t])=>(0,m.jsx)(l.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})},ze=class extends r.Disposable{constructor(e,t,n,r,i,a,o){super(),this._sheetPrintInterceptorService=e,this._drawingRenderService=t,this._drawingManagerService=n,this._renderManagerService=r,this._canvasFloatDomManagerService=i,this._componetManager=a,this._injector=o,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(e,t,n)=>{let{unitId:i,scene:a,subUnitId:o}=t,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[o];return c&&c.order.forEach(e=>{let t=c.data[e];t.drawingType!==r.DrawingTypeEnum.DRAWING_CHART&&t.drawingType!==r.DrawingTypeEnum.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,a)}),n()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(e,t,i)=>{let{unitId:a,subUnitId:o}=t,s=this._renderManagerService.getRenderById(a);if(!s)return i(e);let c=s.with(n.SheetSkeletonManagerService).getSkeletonParam(o);if(!c)return i(e);let l=this._drawingManagerService.getDrawingDataForUnit(a),u=l==null?void 0:l[t.subUnitId];if(!u)return i(e);let{scaleX:d,scaleY:f}=s.scene,p=e?{...e}:{startColumn:0,endColumn:0,endRow:0,startRow:0},m=u.order.map(e=>u.data[e]);return m.length?(m.forEach(e=>{if(!e.groupId&&e.transform&&r.Tools.isDefine(e.transform.left)&&r.Tools.isDefine(e.transform.top)&&r.Tools.isDefine(e.transform.width)&&r.Tools.isDefine(e.transform.height)){let t=c.skeleton.getCellIndexByOffset(e.transform.left,e.transform.top,d,f,{x:0,y:0}),n=c.skeleton.getCellIndexByOffset(e.transform.left+e.transform.width,e.transform.top+e.transform.height,d,f,{x:0,y:0});t.column<p.startColumn&&(p.startColumn=t.column),t.row<p.startRow&&(p.startRow=t.row),p.endRow<n.row&&(p.endRow=n.row),p.endColumn<n.column&&(p.endColumn=n.column)}}),i(p)):i(e)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,n)=>{let{unitId:i,subUnitId:a}=t,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[a];if(c){let i=c.order.map(e=>{let t=c.data[e];if(t.drawingType===r.DrawingTypeEnum.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(r.PRINT_CHART_COMPONENT_KEY)};if(t.drawingType===r.DrawingTypeEnum.DRAWING_DOM){let e=this._sheetPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return(0,o.render)((0,m.jsx)((0,l.connectInjector)(Re,this._injector),{floatDomInfos:i,scene:t.scene,skeleton:t.skeleton,worksheet:t.worksheet}),t.root),e==null||e.add(()=>{(0,o.unmount)(t.root)}),n(e)}}}))}};ze=F([P(0,(0,r.Inject)(n.SheetPrintInterceptorService)),P(1,(0,r.Inject)(d.DrawingRenderService)),P(2,c.IDrawingManagerService),P(3,t.IRenderManagerService),P(4,(0,r.Inject)(Pe)),P(5,(0,r.Inject)(l.ComponentManager)),P(6,(0,r.Inject)(r.Injector))],ze);var Q=function(e){return e[e.deleteLeft=0]=`deleteLeft`,e[e.deleteUp=1]=`deleteUp`,e[e.insertDown=2]=`insertDown`,e[e.insertRight=3]=`insertRight`,e}(Q||{});let Be=[a.InsertRowCommand.id,a.InsertColCommand.id,a.RemoveRowCommand.id,a.RemoveColCommand.id,a.DeleteRangeMoveLeftCommand.id,a.DeleteRangeMoveUpCommand.id,a.InsertRangeMoveDownCommand.id,a.InsertRangeMoveRightCommand.id,a.DeltaRowHeightCommand.id,a.SetRowHeightCommand.id,a.DeltaColumnWidthCommand.id,a.SetColWidthCommand.id,a.SetRowHiddenCommand.id,a.SetSpecificRowsVisibleCommand.id,a.SetSpecificColsVisibleCommand.id,a.SetColHiddenCommand.id,a.MoveColsCommand.id,a.MoveRowsCommand.id,a.MoveRangeCommand.id],Ve=[a.SetRowVisibleMutation.id,a.SetRowHiddenMutation.id,a.SetColVisibleMutation.id,a.SetColHiddenMutation.id,a.SetWorksheetRowHeightMutation.id,a.SetWorksheetRowAutoHeightMutation.id,a.SetWorksheetRowIsAutoHeightMutation.id,a.SetWorksheetColWidthMutation.id],He=class extends r.Disposable{constructor(e,t,n,r,i,a,o,s,c){super(),this._context=e,this._renderManagerService=t,this._commandService=n,this._selectionRenderService=r,this._skeletonManagerService=i,this._sheetInterceptorService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._univerInstanceService=c,this._sheetInterceptorListener(),this._commandListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{if(!Be.includes(e.id)||e.params==null)return{redos:[],undos:[]};let t=e.id;if(t===a.InsertRowCommand.id)return this._moveRowInterceptor(e.params,`insert`);if([a.MoveColsCommand.id,a.MoveRowsCommand.id,a.MoveRangeCommand.id].includes(t))return this._moveRangeInterceptor(e.params);if(t===a.InsertColCommand.id)return this._moveColInterceptor(e.params,`insert`);if(t===a.RemoveRowCommand.id)return this._moveRowInterceptor(e.params,`remove`);if(t===a.RemoveColCommand.id)return this._moveColInterceptor(e.params,`remove`);if(t===a.DeleteRangeMoveLeftCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.deleteLeft)}else if(t===a.DeleteRangeMoveUpCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.deleteUp)}else if(t===a.InsertRangeMoveDownCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.insertDown)}else if(t===a.InsertRangeMoveRightCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.insertRight)}else if(t===a.SetRowHiddenCommand.id||t===a.SetSpecificRowsVisibleCommand.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForRowVisible(t,n,r)}else if(t===a.SetSpecificColsVisibleCommand.id||t===a.SetColHiddenCommand.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForColVisible(t,n,r)}else if(t===a.DeltaRowHeightCommand.id||t===a.SetRowHeightCommand.id||t===a.DeltaColumnWidthCommand.id||t===a.SetColWidthCommand.id){let{unitId:n,subUnitId:r,ranges:i}=e.params,o=t===a.DeltaRowHeightCommand.id||t===a.SetRowHeightCommand.id;return this._getDrawingUndoForRowAndColSize(n,r,i,o)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(e,t){let n=(0,a.getSheetCommandTarget)(this._univerInstanceService);if(n==null)return{redos:[],undos:[]};let r=n.unitId,o=n.subUnitId,s=[],c=[],l=this._sheetDrawingService.getDrawingData(r,o),u=[],d=[];if(Object.keys(l).forEach(n=>{let r=l[n],{updateDrawings:i,deleteDrawings:a}=this._getUpdateOrDeleteDrawings(e,t,r);u.push(...i),d.push(...a)}),u.length===0&&d.length===0)return{redos:[],undos:[]};if(u.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(u);s.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),c.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}if(d.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(d),t=e.undo,n=e.redo,a=e.objects;s.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:n,objects:a,type:i.DrawingApplyType.REMOVE}}),c.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:t,objects:a,type:i.DrawingApplyType.INSERT}})}return s.push({id:v.id,params:[r]}),c.push({id:v.id,params:[r]}),{redos:s,undos:c}}_getUpdateOrDeleteDrawings(e,t,n){let r=[],a=[],{sheetTransform:o,anchorType:s=i.SheetDrawingAnchorType.Position,transform:c,unitId:l,subUnitId:u,drawingId:d}=n,{from:f,to:p}=o,{row:m,column:g}=f,{row:_,column:v}=p;if(o==null||c==null)return{updateDrawings:r,deleteDrawings:a};let{startRow:y,endRow:b,startColumn:x,endColumn:S}=e,C=null,w=null,T;if(t===Q.deleteLeft&&m>=y&&_<=b)if(g>=x&&v<=S)a.push({unitId:l,subUnitId:u,drawingId:d});else{var E;let e=this._shrinkCol(o,c,x,S,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(E=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:E}else if(t===Q.deleteUp&&g>=x&&v<=S)if(m>=y&&_<=b)a.push({unitId:l,subUnitId:u,drawingId:d});else{var D;let e=this._shrinkRow(o,c,y,b,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(D=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:D}else if(t===Q.insertDown){var O;let e=this._expandRow(o,c,y,b,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(O=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:O}else if(t===Q.insertRight){var k;let e=this._expandCol(o,c,x,S,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(k=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:k}if(C!=null&&w!=null){let e=h(C,this._selectionRenderService,this._skeletonManagerService);r.push({...n,sheetTransform:C,transform:e,axisAlignSheetTransform:T})}return{updateDrawings:r,deleteDrawings:a}}_remainDrawingSize(e,t,n){let r=g({...e},this._selectionRenderService);if(r!=null){let i=_({...e},this._selectionRenderService);t.push({...n,sheetTransform:r,axisAlignSheetTransform:i})}}_getDrawingUndoForColVisible(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:s,transform:c,anchorType:l=i.SheetDrawingAnchorType.Position}=t;if(l===i.SheetDrawingAnchorType.None)this._remainDrawingSize(c,a,t);else{let{from:e,to:r}=s,{row:u,column:d}=e,{row:f,column:p}=r;for(let s=0;s<n.length;s++){let{startRow:u,endRow:f,startColumn:m,endColumn:h}=n[s];if(p<m)continue;if(l===i.SheetDrawingAnchorType.Position){let n=null,i=null;if(d>=m&&d<=h){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:d,endColumn:h,startRow:e.row,endRow:r.row});if(t==null)return;i={...c,left:t.startX}}if(i!=null){n=g(i,this._selectionRenderService);let e=_(i,this._selectionRenderService);if(n!=null&&i!=null){a.push({...t,sheetTransform:n,transform:i,axisAlignSheetTransform:e});break}}this._remainDrawingSize(c,a,t);continue}if(d>=m&&p<=h)continue;let v=null,y=null;if(d>=m&&d<=h){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:d,endColumn:h,startRow:e.row,endRow:r.row});if(t==null)return;y={...c,left:(t==null?void 0:t.startX)||0,width:((c==null?void 0:c.width)||0)-t.endX+t.startX}}else if(p>=m&&p<=h){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:m,endColumn:p,startRow:e.row,endRow:r.row});if(t==null)return;y={...c,left:t.startX-((c==null?void 0:c.width)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:m,endColumn:h,startRow:e.row,endRow:r.row});if(n==null)return;if(y={...c,width:((c==null?void 0:c.width)||0)-n.endX+n.startX},v=g(y,this._selectionRenderService),v!=null&&y!=null){let e=_(y,this._selectionRenderService);o.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}}if(y!=null&&(v=g(y,this._selectionRenderService)),y!=null&&v!=null){let e=_(y,this._selectionRenderService);a.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}else this._remainDrawingSize(c,a,t)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_createUndoAndRedoMutation(e,t,n){let{undo:r,redo:a,objects:o}=this._sheetDrawingService.getBatchUpdateOp(n);return{redos:[{id:i.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:a,objects:o,type:i.DrawingApplyType.UPDATE}},{id:v.id,params:[e]}],undos:[{id:i.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:r,objects:o,type:i.DrawingApplyType.UPDATE}},{id:v.id,params:[e]}]}}_getDrawingUndoForRowVisible(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:s,transform:c,anchorType:l=i.SheetDrawingAnchorType.Position}=t;if(l===i.SheetDrawingAnchorType.None)this._remainDrawingSize(c,a,t);else{let{from:e,to:r}=s,{row:u,column:d}=e,{row:f,column:p}=r;for(let s=0;s<n.length;s++){let{startRow:d,endRow:p,startColumn:m,endColumn:h}=n[s];if(f<d)continue;if(l===i.SheetDrawingAnchorType.Position){let n=null,i=null;if(u>=d&&u<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:u,endRow:p});if(t==null)return;i={...c,top:t.startY}}if(i!=null){n=g(i,this._selectionRenderService);let e=_(i,this._selectionRenderService);if(n!=null&&i!=null){a.push({...t,sheetTransform:n,transform:i,axisAlignSheetTransform:e});break}}this._remainDrawingSize(c,a,t);continue}if(u>=d&&f<=p)continue;let v=null,y=null;if(u>=d&&u<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:u,endRow:p});if(t==null)return;y={...c,top:(t==null?void 0:t.startY)||0,height:((c==null?void 0:c.height)||0)-t.endY+t.startY}}else if(f>=d&&f<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:d,endRow:f});if(t==null)return;y={...c,top:t.startY-((c==null?void 0:c.height)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:d,endRow:p});if(n==null)return;if(y={...c,height:((c==null?void 0:c.height)||0)-n.endY+n.startY},v=g(y,this._selectionRenderService),v!=null&&y!=null){let e=_(y,this._selectionRenderService);o.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}}if(y!=null&&(v=g(y,this._selectionRenderService)),y!=null&&v!=null){let e=_(y,this._selectionRenderService);a.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}else this._remainDrawingSize(c,a,t)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_getDrawingUndoForRowAndColSize(e,t,n,r){let a=this._drawingManagerService.getDrawingData(e,t),o=[];return Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:r,transform:s,anchorType:c=i.SheetDrawingAnchorType.Position}=t;if(c===i.SheetDrawingAnchorType.None)this._remainDrawingSize(s,o,t);else{let{from:e,to:a}=r,{row:l,column:u}=e,{row:d,column:f}=a;for(let e=0;e<n.length;e++){let{startRow:a,endRow:p,startColumn:m,endColumn:g}=n[e];if(d<a||f<m)continue;if(c===i.SheetDrawingAnchorType.Position&&(l<=a&&d>=p||u<=m&&f>=g)){this._remainDrawingSize(s,o,t);continue}let _=h({...r},this._selectionRenderService,this._skeletonManagerService);if(_!=null){o.push({...t,transform:_});break}}}}),o.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,o)}_getUnitIdAndSubUnitId(e,t){let n,r;if(t===`insert`)n=e.unitId,r=e.subUnitId;else{let e=(0,a.getSheetCommandTarget)(this._univerInstanceService);if(e==null)return;n=e.unitId,r=e.subUnitId}return{unitId:n,subUnitId:r}}_moveRangeInterceptor(e){var t;let{toRange:r,fromRange:o}=e,s=(0,a.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{redos:[],undos:[]};let{unitId:c,subUnitId:l}=s,u=(t=this._renderManagerService.getRenderById(c))==null||(t=t.with(n.SheetSkeletonManagerService))==null?void 0:t.getCurrentSkeleton();if(!u)return{redos:[],undos:[]};let d=(0,n.attachRangeWithCoord)(u,o);if(!d)return{redos:[],undos:[]};let{startX:f,endX:p,startY:m,endY:g}=d,_=this._sheetDrawingService.getDrawingData(c,l),v=[];Object.keys(_).forEach(e=>{let t=_[e];if(t.anchorType!==i.SheetDrawingAnchorType.Both)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:a=0,width:o=0,height:s=0}=n,{drawingStartX:c,drawingEndX:l,drawingStartY:u,drawingEndY:d}={drawingStartX:r,drawingEndX:r+o,drawingStartY:a,drawingEndY:a+s};f<=c&&l<=p&&m<=u&&d<=g&&v.push(t)});let y=[],b=[],x=r.startRow-o.startRow,S=r.startColumn-o.startColumn,C=v.map(e=>{let t=e.sheetTransform,n={to:{...t.to,row:t.to.row+x,column:t.to.column+S},from:{...t.from,row:t.from.row+x,column:t.from.column+S}},r=h(n,this._selectionRenderService,this._skeletonManagerService);return{unitId:c,subUnitId:l,drawingId:e.drawingId,transform:r,sheetTransform:n}});if(C.length){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(C);y.push({id:i.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:l,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),b.push({id:i.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:l,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}return{redos:y,undos:b}}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:r,subUnitId:a}=n,{range:o}=e,s=o.startRow,c=o.endRow,l=[],u=[],d=this._sheetDrawingService.getDrawingData(r,a),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=i.SheetDrawingAnchorType.Position}=d[e];if(n==null||o==null)return;let u,m,h;if(t===`insert`){var g;let e=this._expandRow(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}else{let{from:t,to:d}=n,{row:f}=t,{row:g}=d;if(l===i.SheetDrawingAnchorType.Both&&f>=s&&g<=c)p.push({unitId:r,subUnitId:a,drawingId:e});else{var _;let e=this._shrinkRow(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}}if(!u||!m)return;let v={unitId:r,subUnitId:a,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(v)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,o=e.objects;l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:n,objects:o,type:i.DrawingApplyType.REMOVE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:o,type:i.DrawingApplyType.INSERT}})}return l.push({id:v.id,params:[r]}),u.push({id:v.id,params:[r]}),{redos:l,undos:u}}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:r,subUnitId:a}=n,{range:o}=e,s=o.startColumn,c=o.endColumn,l=[],u=[],d=this._sheetDrawingService.getDrawingData(r,a),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=i.SheetDrawingAnchorType.Position}=d[e];if(n==null||o==null)return;let u,m,h;if(t===`insert`){var g;let e=this._expandCol(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}else{let{from:t,to:d}=n,{column:f}=t,{column:g}=d;if(l===i.SheetDrawingAnchorType.Both&&f>=s&&g<=c)p.push({unitId:r,subUnitId:a,drawingId:e});else{var _;let e=this._shrinkCol(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}}if(!u||!m)return;let v={unitId:r,subUnitId:a,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(v)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,o=e.objects;l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:n,objects:o,type:i.DrawingApplyType.REMOVE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:o,type:i.DrawingApplyType.INSERT}})}return l.push({id:v.id,params:[r]}),u.push({id:v.id,params:[r]}),{redos:l,undos:u}}_expandCol(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{column:l}=s,{column:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:r,startRow:s.row,endRow:c.row});if(e==null)return;f={...t,left:(t.left||0)+e.endX-e.startX},d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,column:u+o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_shrinkCol(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{column:l}=s,{column:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>r)d={from:{...s,column:l-o},to:{...c,column:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else if(l>=n&&u<=r)return null;else if(l<n&&u>r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,column:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};else if(l>=n&&l<=r){if(l===n)f={...t,left:(t.left||0)-e.from.columnOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:l-1,startRow:s.row,endRow:c.row});if(r==null)return;f={...t,left:(t.left||0)-r.endX+r.startX-e.from.columnOffset}}d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=n&&u<=r&&a===i.SheetDrawingAnchorType.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n-1,endColumn:n-1,startRow:s.row,endRow:c.row});if(e==null)return;d={from:{...s},to:{...c,column:n-1,columnOffset:e.endX-e.startX}},f=h(d,this._selectionRenderService,this._skeletonManagerService)}return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_expandRow(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{row:l}=s,{row:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:r,startColumn:s.column,endColumn:c.column});if(e==null)return;f={...t,top:(t.top||0)+e.endY-e.startY},d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,row:u+o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_shrinkRow(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{row:l}=s,{row:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>r)d={from:{...s,row:l-o},to:{...c,row:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else if(l>=n&&u<=r)return null;else if(l<n&&u>r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,row:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};else if(l>=n&&l<=r){if(l===n)f={...t,top:(t.top||0)-e.from.rowOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:l-1,startColumn:s.column,endColumn:c.column});if(r==null)return;f={...t,top:(t.top||0)-r.endY+r.startY-e.from.rowOffset}}d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=n&&u<=r&&a===i.SheetDrawingAnchorType.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:s.column,endColumn:s.column,startRow:n-1,endRow:n-1});if(e==null)return;d={from:{...s},to:{...c,row:n-1,rowOffset:e.endY-e.startY}},f=h(d,this._selectionRenderService,this._skeletonManagerService)}return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===a.SetWorksheetActiveOperation.id){let{unitId:t,subUnitId:n}=e.params;this._updateDrawings(t,n)}})),this.disposeWithMe(this._context.activated$.subscribe(e=>{let{unit:t,unitId:n}=this._context;if(e){let e=t.getActiveSheet().getSheetId();this._updateDrawings(n,e)}else this._clearDrawings(n)}))}_clearDrawings(e){setTimeout(()=>{let t=this._drawingManagerService.drawingManagerData,n=[];Object.keys(t).forEach(r=>{let i=t[r];i!=null&&Object.keys(i).forEach(t=>{let a=i[t].data;a!=null&&Object.keys(a).forEach(t=>{r===e&&n.push(a[t])})})}),this._sheetDrawingService.removeNotification(n),this._drawingManagerService.removeNotification(n)})}_updateDrawings(e,t){setTimeout(()=>{let n=this._drawingManagerService.drawingManagerData,r=[],i=[];Object.keys(n).forEach(a=>{let o=n[a];o!=null&&Object.keys(o).forEach(n=>{let s=o[n].data;s!=null&&Object.keys(s).forEach(o=>{if(a===e&&n===t){let e=s[o];e.sheetTransform&&(e.transform=h(e.sheetTransform,this._selectionRenderService,this._skeletonManagerService)),r.push(s[o])}else i.push(s[o])})})}),this._sheetDrawingService.removeNotification(i),this._sheetDrawingService.addNotification(r),this._drawingManagerService.removeNotification(i),this._drawingManagerService.addNotification(r)},0)}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{Ve.includes(e.id)&&requestIdleCallback(()=>{let t=e.params,n=(0,a.getSheetCommandTarget)(this._univerInstanceService,t);if(!n)return;let{unitId:r,subUnitId:i,worksheet:o}=n,s=[];`ranges`in t?s=t.ranges:`rowsAutoHeightInfo`in t&&(s=t.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:o.getColumnCount()-1}))),this._refreshDrawingTransform(r,i,s)})}))}_refreshDrawingTransform(e,t,n){let a=this._drawingManagerService.getDrawingData(e,t),o=[];Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:s,transform:c,anchorType:l=i.SheetDrawingAnchorType.Position}=t;if(l===i.SheetDrawingAnchorType.None)return!0;let{from:u,to:d}=s,{row:f,column:p}=u,{row:m,column:g}=d;for(let e=0;e<n.length;e++){let{startRow:a,endRow:u,startColumn:d,endColumn:_}=n[e];if(r.Rectangle.intersects({startRow:a,endRow:u,startColumn:d,endColumn:_},{startRow:f,endRow:m,startColumn:p,endColumn:g})||f>u||p>_){let e=l===i.SheetDrawingAnchorType.Position,n=h(s,this._selectionRenderService,this._skeletonManagerService);o.push({...t,transform:{...n,width:e?c==null?void 0:c.width:n==null?void 0:n.width,height:e?c==null?void 0:c.height:n==null?void 0:n.height}});break}}}),o.length!==0&&(this._sheetDrawingService.refreshTransform(o),this._drawingManagerService.refreshTransform(o),this._commandService.syncExecuteCommand(v.id,[e]))}};He=F([P(1,t.IRenderManagerService),P(2,r.ICommandService),P(3,n.ISheetSelectionRenderService),P(4,(0,r.Inject)(n.SheetSkeletonManagerService)),P(5,(0,r.Inject)(a.SheetInterceptorService)),P(6,i.ISheetDrawingService),P(7,c.IDrawingManagerService),P(8,r.IUniverInstanceService)],He);let Ue={id:`sheet.command.toggle-flip-drawings`,type:r.CommandType.COMMAND,handler:(e,a)=>{let o=e.get(r.ICommandService),s=e.get(r.IUndoRedoService),l=e.get(i.ISheetDrawingService),u=e.get(t.IRenderManagerService);if(!a)return!1;let{drawings:d}=a,f=a.flipH,p=a.flipV,m=[],h=[];for(let t of d){let{unitId:i,subUnitId:a,drawingId:o}=t;m.push(i);let s=l.getDrawingData(i,a),d=s==null?void 0:s[o];if(!d)continue;let v={...d.transform};f&&(v.flipX=!v.flipX),p&&(v.flipY=!v.flipY);let y=u.getRenderById(i),b=y==null?void 0:y.with(n.ISheetSelectionRenderService);if(!b)continue;let x=g(v,b),S=_(v,b),C={unitId:i,subUnitId:a,drawingType:d.drawingType,drawingId:o,transform:v,sheetTransform:x,axisAlignSheetTransform:S};if(d.drawingType===r.DrawingTypeEnum.DRAWING_IMAGE){let t=We(e,i);if(t){let e=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:i,subUnitId:a,drawingId:o}),n=t.getObject(e);if(n){let e=n.srcRect;if(e){let t,{left:n=0,top:r=0,right:i=0,bottom:a=0}=e;if(f){let e=n+(i-n)/2;t={left:e-(i-n)/2,top:r,right:e+(i-n)/2,bottom:a}}if(p){let e=r+(a-r)/2;t={left:n,top:e-(a-r)/2,right:i,bottom:e+(a-r)/2}}t&&(C.srcRect=t)}}}}h.push(C)}if(h.length===0)return!1;let{unitId:y,subUnitId:b,undo:x,redo:S,objects:C}=l.getBatchUpdateOp(h),w={id:i.SetDrawingApplyMutation.id,params:{unitId:y,subUnitId:b,op:S,objects:C,type:i.DrawingApplyType.UPDATE}},T={id:i.SetDrawingApplyMutation.id,params:{unitId:y,subUnitId:b,op:x,objects:C,type:i.DrawingApplyType.UPDATE}};return(0,r.sequenceExecute)([w],o)?(s.pushUndoRedo({unitID:y,undoMutations:[T,{id:v.id,params:m}],redoMutations:[w,{id:v.id,params:m}]}),!0):!1}};function We(e,n){let r=e.get(t.IRenderManagerService).getRenderById(n);return r?r.scene:null}function Ge(e){var t,n;return!!(!(e==null||(t=e.p)==null||(t=t.drawingsOrder)==null)&&t.length&&(e==null||(n=e.p)==null||(n=n.drawingsOrder)==null?void 0:n.length)>0)}function Ke(e,t){let n=e.getActiveSheet();if(!n)return!1;let r=n.getCellMatrix(),{startRow:i,endRow:a,startColumn:o,endColumn:s}=t;for(let e=i;e<=a;e++)for(let t=o;t<=s;t++)if(Ge(r.getValue(e,t)))return!0;return!1}function qe(){return`showDirectoryPicker`in window}function Je(e){let t=e.get(r.IUniverInstanceService),n=e.get(a.SheetsSelectionsService),i=(0,f.combineLatest)([(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET),t.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET).pipe((0,f.switchMap)(e=>e?n.selectionMoveEnd$.pipe((0,f.map)(()=>{if(!qe())return!0;let t=n.getCurrentSelections();if(!t||t.length===0)return!0;for(let n of t)if(Ke(e,n.range))return!1;return!0})):(0,f.of)(!0)))]).pipe((0,f.map)(([e,t])=>e||t));return{id:ne.id,type:l.MenuItemType.BUTTON,icon:`DownloadImageIcon`,title:`sheetImage.save.menuLabel`,hidden$:i}}let Ye={[l.RibbonInsertGroup.MEDIA]:{[ce]:{order:0,menuItemFactory:le,[z.id]:{order:0,menuItemFactory:ue},[B.id]:{order:1,menuItemFactory:de}}},[l.ContextMenuPosition.MAIN_AREA]:{[l.ContextMenuGroup.OTHERS]:{[ne.id]:{order:10,menuItemFactory:Je}}},[l.ContextMenuPosition.COL_HEADER]:{[l.ContextMenuGroup.OTHERS]:{[ne.id]:{order:10,menuItemFactory:Je}}},[l.ContextMenuPosition.ROW_HEADER]:{[l.ContextMenuGroup.OTHERS]:{[ne.id]:{order:10,menuItemFactory:Je}}}};function Xe(){let e=(0,l.useDependency)(r.LocaleService),t=(0,l.useDependency)(l.IDialogService),i=(0,l.useDependency)(U),[a,s]=(0,p.useState)([H.CELL_ADDRESS]),[c,u]=(0,p.useState)(!1),[d,f]=(0,p.useState)(null),h=(0,p.useMemo)(()=>i.getCellImagesInSelection(),[i]),g=(0,p.useMemo)(()=>i.getDataColumns(),[i]),_=(0,p.useMemo)(()=>i.getSelectionRowRange(),[i]),v=g.length>0,y=(0,p.useMemo)(()=>g.map(e=>({label:e.label,value:String(e.index)})),[g]),[b,x]=(0,p.useState)(()=>y.length>0?y[0].value:`0`);(0,n.useHighlightRange)((0,p.useMemo)(()=>{if(!a.includes(H.COLUMN_VALUE)||!_)return[];let e=Number(b);return[{startRow:_.startRow,endRow:_.endRow,startColumn:e,endColumn:e}]},[a,b,_]));let S=(0,p.useCallback)(e=>{e.length!==0&&s(e)},[]),C=(0,p.useCallback)(e=>{x(String(e))},[]),w=(0,p.useCallback)(()=>{t.close(X)},[t]),T=(0,p.useCallback)(async()=>{if(h.length!==0){u(!0),f(null);try{await i.saveImages(h,{fileNameParts:a,columnIndex:a.includes(H.COLUMN_VALUE)?Number(b):void 0}),t.close(X)}catch(t){console.error(`Failed to save images:`,t),f(e.t(`sheetImage.save.error`))}finally{u(!1)}}},[i,h,a,b,t,e]),E=a.includes(H.COLUMN_VALUE);return(0,m.jsxs)(`div`,{className:`univer-flex univer-flex-col`,children:[(0,m.jsx)(o.FormLayout,{label:e.t(`sheetImage.save.imageCount`),children:(0,m.jsx)(`div`,{className:`univer-text-sm univer-text-gray-600`,children:h.length})}),(0,m.jsx)(o.FormLayout,{label:e.t(`sheetImage.save.fileNameConfig`),children:(0,m.jsxs)(o.CheckboxGroup,{value:a,onChange:S,direction:`vertical`,children:[(0,m.jsx)(o.Checkbox,{value:H.CELL_ADDRESS,disabled:!v,children:e.t(`sheetImage.save.useRowCol`)}),v&&(0,m.jsx)(o.Checkbox,{value:H.COLUMN_VALUE,children:e.t(`sheetImage.save.useColumnValue`)})]})}),E&&(0,m.jsx)(o.FormLayout,{label:e.t(`sheetImage.save.selectColumn`),children:(0,m.jsx)(o.Select,{value:b,options:y,onChange:C})}),d&&(0,m.jsx)(`div`,{className:`univer-text-xs univer-text-red-500`,children:d}),(0,m.jsxs)(`div`,{className:`univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3`,children:[(0,m.jsx)(o.Button,{onClick:w,disabled:c,children:e.t(`sheetImage.save.cancel`)}),(0,m.jsx)(o.Button,{variant:`primary`,onClick:T,disabled:c||h.length===0,children:c?e.t(`sheetImage.save.saving`):e.t(`sheetImage.save.confirm`)})]})]})}let Ze=e=>{var n;let a=(0,l.useDependency)(r.ICommandService),s=(0,l.useDependency)(r.LocaleService),u=(0,l.useDependency)(c.IDrawingManagerService),d=(0,l.useDependency)(t.IRenderManagerService),{drawings:f}=e,h=f[0];if(h==null)return;let{unitId:g}=h,_=d.getRenderById(g),v=_==null?void 0:_.scene;if(v==null)return;let y=v.getTransformerByCreate(),[b,x]=(0,p.useState)(!0),[S,C]=(0,p.useState)((n=h.anchorType)==null?i.SheetDrawingAnchorType.Position:n);function w(e,t){let n=[];return e.forEach(e=>{let{oKey:r}=e,i=t.getDrawingOKey(r);if(i==null)return n.push(null),!0;let{unitId:a,subUnitId:o,drawingId:s,drawingType:c,anchorType:l,sheetTransform:u,axisAlignSheetTransform:d}=i;n.push({unitId:a,subUnitId:o,drawingId:s,anchorType:l,sheetTransform:u,drawingType:c,axisAlignSheetTransform:d})}),n}(0,p.useEffect)(()=>{let e=y.clearControl$.subscribe(e=>{e===!0&&x(!1)}),t=y.changeStart$.subscribe(e=>{let{objects:t}=e,n=w(t,u);if(n.length===0)x(!1);else if(n.length>=1){var r;x(!0),C(((r=n[0])==null?void 0:r.anchorType)||i.SheetDrawingAnchorType.Position)}});return()=>{t.unsubscribe(),e.unsubscribe()}},[]);function T(e){C(e);let t=u.getFocusDrawings();if(t.length===0)return;let n=t.map(t=>({unitId:t.unitId,subUnitId:t.subUnitId,drawingId:t.drawingId,anchorType:e}));a.executeCommand(O.id,{unitId:t[0].unitId,drawings:n})}return(0,m.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!b}),children:[(0,m.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,m.jsx)(`div`,{children:s.t(`drawing-anchor.title`)})}),(0,m.jsx)(`div`,{children:(0,m.jsxs)(o.RadioGroup,{value:S,onChange:T,direction:`vertical`,children:[(0,m.jsx)(o.Radio,{value:i.SheetDrawingAnchorType.Both,children:s.t(`drawing-anchor.both`)}),(0,m.jsx)(o.Radio,{value:i.SheetDrawingAnchorType.Position,children:s.t(`drawing-anchor.position`)}),(0,m.jsx)(o.Radio,{value:i.SheetDrawingAnchorType.None,children:s.t(`drawing-anchor.none`)})]})})]})},Qe=()=>{let e=(0,l.useDependency)(c.IDrawingManagerService),[t,n]=(0,p.useState)(e.getFocusDrawings());return(0,p.useEffect)(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&(0,m.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,m.jsx)(d.DrawingCommonPanel,{drawings:t}),(0,m.jsx)(Ze,{drawings:t})]})};function $e(e){return e.getContextValue(r.FOCUSING_SHEET)&&!e.getContextValue(r.FOCUSING_FX_BAR_EDITOR)&&!e.getContextValue(r.FOCUSING_PANEL_EDITOR)&&e.getContextValue(r.FOCUSING_COMMON_DRAWINGS)&&!e.getContextValue(r.FOCUSING_SHAPE_TEXT_EDITOR)}let et={id:V.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_DOWN,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.DOWN}},tt={id:V.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_UP,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.UP}},nt={id:V.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_LEFT,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.LEFT}},rt={id:V.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_RIGHT,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.RIGHT}},it={id:b.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,priority:100,preconditions:$e,binding:l.KeyCode.DELETE,mac:l.KeyCode.BACKSPACE},at=class extends r.Disposable{constructor(e,t,n,r,i,a){super(),this._componentManager=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._drawingManagerService=i,this._sheetsSelectionsService=a,this._init()}_initCustomComponents(){let e=this._componentManager;this.disposeWithMe(e.register(re,Qe)),this.disposeWithMe(e.register(X,Xe))}_initMenus(){this._menuManagerService.mergeMenu(Ye)}_initCommands(){[z,B,E,y,O,ie,v,ae,T,k,V,b,D,ne,Ue].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[et,tt,nt,rt,it].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};at=F([P(0,(0,r.Inject)(l.ComponentManager)),P(1,l.IMenuManagerService),P(2,r.ICommandService),P(3,l.IShortcutService),P(4,c.IDrawingManagerService),P(5,(0,r.Inject)(a.SheetsSelectionsService))],at);let ot=class extends r.RxDisposable{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._injector=e,this._localeService=t,this._drawingManagerService=n,this._canvasPopManagerService=r,this._renderManagerService=i,this._univerInstanceService=a,this._messageService=o,this._contextService=s,this._ioService=c,this._commandService=l,N(this,`_initImagePopupMenu`,new Set),this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._create(e)),this._univerInstanceService.getTypeOfUnitDisposed$(r.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._dispose(e)),this._univerInstanceService.getAllUnitsForType(r.UniverInstanceType.UNIVER_SHEET).forEach(e=>this._create(e)),this._setupLoadingStatus()}_setupLoadingStatus(){let e;this.disposeWithMe(this._ioService.change$.subscribe(t=>{t>0&&!e?e=this._messageService.show({id:`image-upload-loading`,type:o.MessageType.Loading,content:`${this._localeService.t(`uploadLoading.loading`)}: ${t}`,duration:0}):t===0&&(e==null||e.dispose(),e=void 0)}))}_dispose(e){super.dispose();let t=e.getUnitId();this._renderManagerService.removeRender(t),this._initImagePopupMenu.delete(t)}_create(e){if(!e)return;let t=e.getUnitId();this._renderManagerService.has(t)&&!this._initImagePopupMenu.has(t)&&(this._popupMenuListener(t),this._initImagePopupMenu.add(t))}_hasCropObject(e){let t=e.getAllObjectsByOrder();for(let e of t)if(e instanceof d.ImageCropperObject)return!0;return!1}_popupMenuListener(e){var t;let n=(t=this._renderManagerService.getRenderById(e))==null?void 0:t.scene;if(!n)return;let i=n.getTransformerByCreate();if(!i)return;let a;this.disposeWithMe(i.createControl$.subscribe(()=>{if(this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!0),this._hasCropObject(n))return;let e=i.getSelectedObjectMap();if(e.size>1){a==null||a.dispose();return}let t=e.values().next().value;if(!t)return;let o=t.oKey,s=this._drawingManagerService.getDrawingOKey(o);if(!s)return;let{unitId:c,subUnitId:l,drawingId:u,drawingType:f}=s,p=s.data;if(p&&p.disablePopup)return;a==null||a.dispose();let m=this._canvasPopManagerService.getFeatureMenu(c,l,u,f);a=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(t,{componentKey:d.COMPONENT_IMAGE_POPUP_MENU,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:m||this._getImageMenuItems(c,l,u,f)}}))})),this.disposeWithMe(i.clearControl$.subscribe(()=>{a==null||a.dispose(),this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!1),this._commandService.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(e=>{e[r.FOCUSING_COMMON_DRAWINGS]===!1&&(a==null||a.dispose())})),this.disposeWithMe(i.changing$.subscribe(()=>{a==null||a.dispose()}))}_getImageMenuItems(e,t,n,i){return[{label:`image-popup.edit`,index:0,commandId:ae.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.delete`,index:1,commandId:y.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:d.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipH`,index:2,commandId:Ue.id,commandParams:{unitId:e,flipH:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipV`,index:2,commandId:Ue.id,commandParams:{unitId:e,flipV:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.reset`,index:3,commandId:d.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:t,drawingId:n}],disable:i===r.DrawingTypeEnum.DRAWING_DOM}]}};ot=F([P(0,(0,r.Inject)(r.Injector)),P(1,(0,r.Inject)(r.LocaleService)),P(2,c.IDrawingManagerService),P(3,(0,r.Inject)(n.SheetCanvasPopManagerService)),P(4,t.IRenderManagerService),P(5,r.IUniverInstanceService),P(6,l.IMessageService),P(7,r.IContextService),P(8,r.IImageIoService),P(9,r.ICommandService)],ot);let $=class extends r.Plugin{constructor(e=he,t,n,i){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=i;let{menu:a,...o}=(0,r.merge)({},he,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(me,o)}onStarting(){(0,r.registerDependencies)(this._injector,[[Pe],[at],[ot],[ze],[Ae],[ke],[se],[be],[xe],[Ce],[U,{useClass:Y}],[ge]]),(0,r.touchDependencies)(this._injector,[[Pe]])}onReady(){(0,r.touchDependencies)(this._injector,[[ke],[Ce],[se]])}onRendered(){this._registerRenderModules(),(0,r.touchDependencies)(this._injector,[[Ae],[ze],[at],[be],[xe]])}onSteady(){this._injector.get(ot),this._injector.get(ge)}_registerRenderModules(){[[R],[He],[ve],[_e]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(r.UniverInstanceType.UNIVER_SHEET,e))})}};N($,`type`,r.UniverInstanceType.UNIVER_SHEET),N($,`pluginName`,`SHEET_IMAGE_UI_PLUGIN`),N($,`packageName`,fe),N($,`version`,pe),$=F([(0,r.DependentOn)(c.UniverDrawingPlugin,u.UniverDocsDrawingPlugin,d.UniverDrawingUIPlugin,i.UniverSheetsDrawingPlugin),P(1,(0,r.Inject)(r.Injector)),P(2,t.IRenderManagerService),P(3,r.IConfigService)],$),Object.defineProperty(e,`BatchSaveImagesService`,{enumerable:!0,get:function(){return Y}}),e.ClearSheetDrawingTransformerOperation=v,e.DeleteDrawingsCommand=b,e.EditSheetDrawingOperation=ae,e.FileNamePart=H,e.GroupSheetDrawingCommand=T,e.IBatchSaveImagesService=U,e.InsertFloatImageCommand=z,e.InsertSheetDrawingCommand=E,e.MoveDrawingsCommand=V,e.RemoveSheetDrawingCommand=y,e.SHEETS_IMAGE_MENU_ID=ce,e.SHEET_FLOAT_DOM_PREFIX=Me,e.SaveCellImagesCommand=ne,e.SetDrawingArrangeCommand=D,e.SetSheetDrawingCommand=O,Object.defineProperty(e,`SheetCanvasFloatDomManagerService`,{enumerable:!0,get:function(){return Pe}}),e.SheetDrawingAnchor=Ze,Object.defineProperty(e,`SheetDrawingUpdateController`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(e,`SheetsDrawingGroupCopyPasteController`,{enumerable:!0,get:function(){return se}}),e.SidebarSheetDrawingOperation=ie,e.UngroupSheetDrawingCommand=k,Object.defineProperty(e,`UniverSheetsDrawingUIPlugin`,{enumerable:!0,get:function(){return $}}),e.calcSheetFloatDomPosition=Z,e.drawingPositionToTransform=h,e.transformToAxisAlignPosition=_,e.transformToDrawingPosition=g});
|