@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/es/index.js CHANGED
@@ -1,7 +1,2 @@
1
- import{CURSOR_TYPE as e,DRAWING_OBJECT_LAYER_INDEX as t,IRenderManagerService as n,ObjectType as r,RENDER_CLASS_TYPE as i,Rect as a,SHEET_VIEWPORT_KEY as o,getCurrentTypeOfRenderer as s,getGroupState as c,precisionTo as l,transformObjectOutOfGroup as u}from"@univerjs/engine-render";import{COPY_TYPE as d,EditingRenderController as f,HoverManagerService as p,IEditorBridgeService as m,ISheetClipboardService as h,ISheetSelectionRenderService as g,PREDEFINED_HOOK_NAME_PASTE as _,SetCellEditVisibleOperation as v,SetScrollOperation as y,SetZoomRatioOperation as b,SheetCanvasPopManagerService as x,SheetPrintInterceptorService as S,SheetSkeletonManagerService as C,attachRangeWithCoord as w,convertPositionSheetOverGridToAbsolute as T,getCurrentRangeDisable$ as E,useHighlightRange as D,virtualizeDiscreteRanges as ee}from"@univerjs/sheets-ui";import{ArrangeTypeEnum as O,BooleanNumber as te,BuildTextUtils as k,CommandType as A,DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY as j,DOCS_NORMAL_EDITOR_UNIT_ID_KEY as M,DOCS_ZEN_EDITOR_UNIT_ID_KEY as N,DependentOn as ne,Direction as P,Disposable as F,DisposableCollection as re,DrawingTypeEnum as I,FOCUSING_COMMON_DRAWINGS as ie,FOCUSING_FX_BAR_EDITOR as ae,FOCUSING_PANEL_EDITOR as oe,FOCUSING_SHAPE_TEXT_EDITOR as se,FOCUSING_SHEET as ce,ICommandService as L,IConfigService as le,IContextService as ue,IImageIoService as de,IPermissionService as fe,IURLImageService as pe,IUndoRedoService as me,IUniverInstanceService as he,ImageSourceType as ge,Inject as R,Injector as _e,InterceptorEffectEnum as ve,LifecycleService as ye,LifecycleStages as be,LocaleService as xe,ObjectMatrix as Se,ObjectRelativeFromH as Ce,ObjectRelativeFromV as we,PRINT_CHART_COMPONENT_KEY as Te,Plugin as Ee,PositionedObjectLayoutType as De,Rectangle as Oe,RxDisposable as ke,Tools as Ae,UniverInstanceType as z,UserManagerService as je,WrapTextType as Me,createDocumentModelWithStyle as Ne,createIdentifier as Pe,fromEventSubject as Fe,generateRandomId as Ie,merge as Le,registerDependencies as Re,sequenceExecute as ze,touchDependencies as Be}from"@univerjs/core";import{DrawingApplyType as B,ISheetDrawingService as V,SetDrawingApplyMutation as H,SheetDrawingAnchorType as U,UniverSheetsDrawingPlugin as Ve}from"@univerjs/sheets-drawing";import{COMMAND_LISTENER_SKELETON_CHANGE as He,DeleteRangeMoveLeftCommand as Ue,DeleteRangeMoveUpCommand as We,DeltaColumnWidthCommand as Ge,DeltaRowHeightCommand as Ke,IAutoFillService as qe,INTERCEPTOR_POINT as Je,InsertColCommand as Ye,InsertRangeMoveDownCommand as Xe,InsertRangeMoveRightCommand as Ze,InsertRowCommand as Qe,InterceptCellContentPriority as $e,MoveColsCommand as et,MoveRangeCommand as tt,MoveRowsCommand as nt,RangeProtectionPermissionEditPoint as rt,RemoveColCommand as it,RemoveRowCommand as at,SetColHiddenCommand as ot,SetColHiddenMutation as st,SetColVisibleMutation as ct,SetColWidthCommand as lt,SetFrozenMutation as ut,SetRangeValuesCommand as dt,SetRowHeightCommand as ft,SetRowHiddenCommand as pt,SetRowHiddenMutation as mt,SetRowVisibleMutation as ht,SetSelectionsOperation as gt,SetSpecificColsVisibleCommand as _t,SetSpecificRowsVisibleCommand as vt,SetWorksheetActiveOperation as yt,SetWorksheetColWidthMutation as bt,SetWorksheetRowAutoHeightMutation as xt,SetWorksheetRowHeightMutation as St,SetWorksheetRowIsAutoHeightMutation as Ct,SheetInterceptorService as wt,SheetsSelectionsService as Tt,WorkbookEditablePermission as Et,WorkbookViewPermission as Dt,WorksheetEditPermission as Ot,WorksheetViewPermission as kt,discreteRangeToRange as At,getSheetCommandTarget as W}from"@univerjs/sheets";import{Button as jt,Checkbox as Mt,CheckboxGroup as Nt,FormLayout as Pt,MessageType as Ft,Radio as It,RadioGroup as Lt,Select as Rt,clsx as zt,render as Bt,unmount as Vt}from"@univerjs/design";import{InnerPasteCommand as Ht,ReplaceSnapshotCommand as Ut,docDrawingPositionToTransform as Wt}from"@univerjs/docs-ui";import{DRAWING_IMAGE_ALLOW_IMAGE_LIST as Gt,DRAWING_IMAGE_ALLOW_SIZE as Kt,DRAWING_IMAGE_COUNT_LIMIT as qt,DRAWING_IMAGE_HEIGHT_LIMIT as Jt,DRAWING_IMAGE_WIDTH_LIMIT as Yt,IDrawingManagerService as G,IImageIoService as Xt,ImageSourceType as Zt,ImageUploadStatusType as Qt,SetDrawingSelectedOperation as $t,UniverDrawingPlugin as en,getDrawingShapeKeyByDrawingSearch as tn,getImageSize as nn}from"@univerjs/drawing";import{CanvasFloatDomService as rn,ComponentManager as an,ContextMenuGroup as on,ContextMenuPosition as sn,IClipboardInterfaceService as cn,IContextMenuService as ln,IDialogService as un,ILocalFileService as dn,IMenuManagerService as fn,IMessageService as pn,IShortcutService as mn,ISidebarService as hn,KeyCode as gn,MenuItemType as _n,PrintFloatDomSingle as vn,RibbonInsertGroup as yn,connectInjector as bn,getMenuHiddenObservable as xn,useDependency as Sn}from"@univerjs/ui";import{DocDrawingController as Cn,UniverDocsDrawingPlugin as wn}from"@univerjs/docs-drawing";import{COMPONENT_IMAGE_POPUP_MENU as Tn,DrawingCommonPanel as En,DrawingRenderService as Dn,ImageCropperObject as On,ImageResetSizeOperation as kn,OpenImageCropOperation as An,UniverDrawingUIPlugin as jn}from"@univerjs/drawing-ui";import{BehaviorSubject as Mn,EMPTY as Nn,Subject as Pn,combineLatest as Fn,distinctUntilChanged as In,filter as Ln,map as Rn,of as zn,switchMap as Bn,take as Vn,tap as Hn,throttleTime as Un}from"rxjs";import{useCallback as Wn,useEffect as Gn,useMemo as Kn,useState as qn}from"react";import{jsx as K,jsxs as Jn}from"react/jsx-runtime";function q(e,t,n){let{from:r,to:i,flipY:a=!1,flipX:o=!1,angle:s=0,skewX:c=0,skewY:l=0}=e,u=n.getCurrent();if(u==null)return;let{left:d,top:f,width:p,height:m}=T(u.unitId,u.sheetId,{from:r,to:i},n),h=n.getCurrentSkeleton(),g=h.rowHeaderWidth+h.columnTotalWidth,_=h.columnHeaderHeight+h.rowTotalHeight;return d+p>g&&(d=g-p),f+m>_&&(f=_-m),{flipY:a,flipX:o,angle:s,skewX:c,skewY:l,left:d,top:f,width:p,height:m}}function J(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:u=0,skewY:d=0}=e,f=t.getCellWithCoordByOffset(n,r);if(f==null)return;let p={column:f.actualColumn,columnOffset:l(n-f.startX,1),row:f.actualRow,rowOffset:l(r-f.startY,1)},m=t.getCellWithCoordByOffset(n+i,r+a);if(m!=null)return{flipY:o,flipX:s,angle:c,skewX:u,skewY:d,from:p,to:{column:m.actualColumn,columnOffset:l(n+i-m.startX,1),row:m.actualRow,rowOffset:l(r+a-m.startY,1)}}}function Y(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 J(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)}const X={id:`sheet.operation.clear-drawing-transformer`,type:A.MUTATION,handler:(e,t)=>{let r=e.get(n);return t.forEach(e=>{var t;(t=r.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},Yn={id:`sheet.command.remove-sheet-image`,type:A.COMMAND,handler:(e,t)=>{var n;let r=e.get(L),i=e.get(me),a=e.get(wt),o=e.get(V);if(!t)return!1;let{drawings:s}=t,c=[];s.forEach(e=>{let{unitId:t}=e;c.push(t)});let{unitId:l,subUnitId:u,undo:d,redo:f,objects:p}=o.getBatchRemoveOp(s),m=a.onCommandExecute({id:Yn.id,params:t}),h={id:H.id,params:{unitId:l,subUnitId:u,op:f,objects:p,type:B.REMOVE}},g={id:H.id,params:{unitId:l,subUnitId:u,op:d,objects:p,type:B.INSERT}};if(ze([...(n=m.preRedos)==null?[]:n,h,...m.redos],r)){var _,v;return i.pushUndoRedo({unitID:l,undoMutations:[...(_=m.preUndos)==null?[]:_,g,...m.undos,{id:X.id,params:c}],redoMutations:[...(v=m.preRedos)==null?[]:v,h,...m.redos,{id:X.id,params:c}]}),!0}return!1}},Xn={id:`sheet.command.delete-drawing`,type:A.COMMAND,handler:e=>{let t=e.get(L),n=e.get(V).getFocusDrawings();if(n.length===0)return!1;let r=n[0].unitId,i=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(Yn.id,{unitId:r,drawings:i})}};function Zn(e){let t=[];return e.forEach(e=>{let{parent:n,children:r}=e,{unitId:i,subUnitId:a,drawingId:o}=n,s=c(0,0,r.map(e=>e.transform||{})),l=r.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:o}}),u={unitId:i,subUnitId:a,drawingId:o,drawingType:I.DRAWING_GROUP,groupBaseBound:{...n.groupBaseBound},transform:s};t.push({parent:u,children:l})}),t}function Qn(e){let t=[];return e.forEach(e=>{let{parent:n,children:r}=e,{unitId:i,subUnitId:a,drawingId:o,transform:s={width:0,height:0}}=n;if(s==null)return;let c=r.map(e=>{let{transform:t}=e,{unitId:r,subUnitId:i,drawingId:a}=e;return{unitId:r,subUnitId:i,drawingId:a,transform:u(t||{},s,s.width||0,s.height||0,n.groupBaseBound),groupId:void 0}}),l={unitId:i,subUnitId:a,drawingId:o,drawingType:I.DRAWING_GROUP,transform:{left:0,top:0}};t.push({parent:l,children:c})}),t}function $n(e){var t;let n=new Map;(t=e.flatChildren)==null||t.forEach(e=>n.set(e.drawingId,Ie(10))),e.groups.forEach(e=>n.set(e.drawingId,Ie(10)));let r={};for(let[t,o]of Object.entries(e.nestedIdRecord)){var i,a;let e=(i=n.get(t))==null?t:i;r[e]={drawingId:e,children:(a=o.children)==null?void 0:a.map(e=>{var t;return(t=n.get(e))==null?e:t})}}let o=[],s=[];for(let t of e.groups){var c,l;let e=(c=n.get(t.drawingId))==null?t.drawingId:c,r=t.groupId?(l=n.get(t.groupId))==null?t.groupId:l:void 0;s.push(er(t,e,r))}for(let t of e.flatChildren||[]){var u,d;let e=(u=n.get(t.drawingId))==null?t.drawingId:u,r=t.groupId?(d=n.get(t.groupId))==null?t.groupId:d:void 0;o.push(er(t,e,r))}return{cloned:{nestedIdRecord:r,flatChildren:o,groups:s},idMap:n}}function er(e,t,n){let r={...e};return t&&(r.drawingId=t),n?r.groupId=n:delete r.groupId,JSON.parse(JSON.stringify(r))}const tr={id:`sheet.command.group-sheet-image`,type:A.COMMAND,handler:(e,t)=>{let n=e.get(L),r=e.get(me),i=e.get(V);if(!t)return!1;let a=[];t.forEach(({parent:e,children:t})=>{a.push(e.unitId),t.forEach(e=>{a.push(e.unitId)})});let{unitId:o,subUnitId:s,undo:c,redo:l,objects:u}=i.getGroupDrawingOp(t);return n.syncExecuteCommand(H.id,{op:l,unitId:o,subUnitId:s,objects:u,type:B.GROUP})?(r.pushUndoRedo({unitID:o,undoMutations:[{id:H.id,params:{op:c,unitId:o,subUnitId:s,objects:Qn(u),type:B.UNGROUP}},{id:X.id,params:a}],redoMutations:[{id:H.id,params:{op:l,unitId:o,subUnitId:s,objects:u,type:B.GROUP}},{id:X.id,params:a}]}),!0):!1}},nr={id:`sheet.command.insert-sheet-image`,type:A.COMMAND,handler:(e,t)=>{var n;let r=e.get(L),i=e.get(me),a=e.get(V),o=e.get(wt);if(!t)return!1;let s=t.drawings,c=s.map(e=>e.unitId),{unitId:l,subUnitId:u,undo:d,redo:f,objects:p}=a.getBatchAddOp(s),m=o.onCommandExecute({id:nr.id,params:t}),h={id:H.id,params:{op:f,unitId:l,subUnitId:u,objects:p,type:B.INSERT}},g={id:H.id,params:{op:d,unitId:l,subUnitId:u,objects:p,type:B.REMOVE}};if(ze([...(n=m.preRedos)==null?[]:n,h,...m.redos],r)){var _,v;return i.pushUndoRedo({unitID:l,undoMutations:[...(_=m.preUndos)==null?[]:_,g,...m.undos,{id:X.id,params:c}],redoMutations:[...(v=m.preRedos)==null?[]:v,h,...m.redos,{id:X.id,params:c}]}),!0}return!1}},rr={id:`sheet.command.set-drawing-arrange`,type:A.COMMAND,handler:(e,t)=>{let n=e.get(L),r=e.get(me);if(!t)return!1;let i=e.get(V),{unitId:a,subUnitId:o,drawingIds:s,arrangeType:c}=t,l={unitId:a,subUnitId:o,drawingIds:s},u;if(c===O.forward?u=i.getForwardDrawingsOp(l):c===O.backward?u=i.getBackwardDrawingOp(l):c===O.front?u=i.getFrontDrawingsOp(l):c===O.back&&(u=i.getBackDrawingsOp(l)),u==null)return!1;let{objects:d,redo:f,undo:p}=u;return n.syncExecuteCommand(H.id,{op:f,unitId:a,subUnitId:o,objects:d,type:B.ARRANGE})?(r.pushUndoRedo({unitID:a,undoMutations:[{id:H.id,params:{op:p,unitId:a,subUnitId:o,objects:d,type:B.ARRANGE}}],redoMutations:[{id:H.id,params:{op:f,unitId:a,subUnitId:o,objects:d,type:B.ARRANGE}}]}),!0):!1}},ir={id:`sheet.command.set-sheet-image`,type:A.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(L),a=e.get(me),o=e.get(V),s=e.get(wt);if(!t)return!1;let{drawings:c}=t,{unitId:l,subUnitId:u,undo:d,redo:f,objects:p}=o.getBatchUpdateOp(c),m=s.onCommandExecute({id:ir.id,params:t}),h=[...(n=m.preRedos)==null?[]:n,{id:H.id,params:{unitId:l,subUnitId:u,op:f,objects:p,type:B.UPDATE}},...m.redos,{id:X.id,params:[l]}],g=[...(r=m.preUndos)==null?[]:r,{id:H.id,params:{unitId:l,subUnitId:u,op:d,objects:p,type:B.UPDATE}},...m.undos,{id:X.id,params:[l]}];return ze(h,i)?(a.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:h}),!0):!1}},ar={id:`sheet.command.ungroup-sheet-image`,type:A.COMMAND,handler:(e,t)=>{let n=e.get(L),r=e.get(me),i=e.get(V);if(!t)return!1;let a=[];t.forEach(({parent:e,children:t})=>{a.push(e.unitId),t.forEach(e=>{a.push(e.unitId)})});let{unitId:o,subUnitId:s,undo:c,redo:l,objects:u}=i.getUngroupDrawingOp(t);return n.syncExecuteCommand(H.id,{op:l,unitId:o,subUnitId:s,objects:u,type:B.UNGROUP})?(r.pushUndoRedo({unitID:o,undoMutations:[{id:H.id,params:{op:c,unitId:o,subUnitId:s,objects:Zn(u),type:B.GROUP}},{id:X.id,params:a}],redoMutations:[{id:H.id,params:{op:l,unitId:o,subUnitId:s,objects:u,type:B.UNGROUP}},{id:X.id,params:a}]}),!0):!1}};function or(e){"@babel/helpers - typeof";return or=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},or(e)}function sr(e,t){if(or(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(or(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function cr(e){var t=sr(e,`string`);return or(t)==`symbol`?t:t+``}function Z(e,t,n){return(t=cr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Q(e,t){return function(n,r){t(n,r,e)}}function $(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 lr(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 ur(e,t,r,i,a){var o;let{rotatedHeight:s,rotatedWidth:c}=lr(r,i,a),l=e.get(n).getRenderById(t.unitId);if(!l)return!1;let u=(o=l.with(C).getSkeletonParam(t.subUnitId))==null?void 0:o.skeleton;if(u==null)return!1;let d=u.getCellByIndex(t.row,t.col),f=d.mergeInfo.endX-d.mergeInfo.startX-2,p=d.mergeInfo.endY-d.mergeInfo.startY-2,m=c/s,h=Math.ceil(Math.min(f,p*m))/c,g=!h||Number.isNaN(h)?.001:h;return{width:r*g,height:i*g}}let dr=class extends F{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,Z(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:Gt.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>qt?(this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(qt))}),!1):t===0?!1:(e.forEach(async e=>await this.insertFloatImageByFile(e)),!0)}async insertCellImage(){let e=(await this._fileOpenerService.openFile({multiple:!1,accept:Gt.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===Qt.ERROR_EXCEED_SIZE?this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(Kt/(1024*1024)))}):t===Qt.ERROR_IMAGE_TYPE?this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===Qt.ERROR_IMAGE&&this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(n==null)return;let{unitId:r,subUnitId:i}=this._getUnitInfo(),{imageId:a,imageSourceType:o,source:s,base64Cache:c}=n,{width:l,height:u,image:d}=await nn(c||``),{width:f,height:p}=this._context.scene;this._imageIoService.addImageSourceCache(s,o,d);let m=1;if(l>Yt||u>Jt){let e=Yt/l,t=Jt/u;m=Math.max(e,t)}let h=this._getImagePosition(l*m,u*m,f,p);if(h==null)return;let g=q(h,this._selectionRenderService,this._skeletonManagerService),_={unitId:r,subUnitId:i,drawingId:a,drawingType:I.DRAWING_IMAGE,imageSourceType:o,source:s,transform:g,sheetTransform:h,axisAlignSheetTransform:(t=Y(g,this._selectionRenderService))==null?h:t};return this._commandService.executeCommand(nr.id,{unitId:r,drawings:[_]})}async _insertCellImage(e,t){let n;try{n=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===Qt.ERROR_EXCEED_SIZE?this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(Kt/(1024*1024)))}):t===Qt.ERROR_IMAGE_TYPE?this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===Qt.ERROR_IMAGE&&this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(n==null)return!1;let{imageId:r,imageSourceType:i,source:a,base64Cache:o}=n,{width:s,height:c,image:l}=await nn(o||``);this._imageIoService.addImageSourceCache(a,i,l);let u=this._workbookSelections.getCurrentLastSelection();if(!u)return!1;let d=u.primary.actualRow,f=u.primary.actualColumn;u.primary.isMerged&&(d=u.primary.startRow,f=u.primary.startColumn);let p=Ne(``,{}),m=ur(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:d,col:f},s,c,0);if(!m)return!1;let h={size:{width:m.width,height:m.height},positionH:{relativeFrom:Ce.PAGE,posOffset:0},positionV:{relativeFrom:we.PARAGRAPH,posOffset:0},angle:0},g={unitId:p.getUnitId(),subUnitId:p.getUnitId(),drawingId:r,drawingType:I.DRAWING_IMAGE,imageSourceType:i,source:a,transform:Wt(h),docTransform:h,behindDoc:te.FALSE,title:``,description:``,layoutType:De.INLINE,wrapText:Me.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},_=k.drawing.add({documentDataModel:p,drawings:[g],selection:{collapsed:!0,startOffset:0,endOffset:0}});if(_){var v,y;return p.apply(_),this._commandService.syncExecuteCommand(dt.id,{value:{[(v=t==null?void 0:t.row)==null?d:v]:{[(y=t==null?void 0:t.col)==null?f:y]:{p:p.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:r,height:i,image:a}=await nn(n||``);this._imageIoService.addImageSourceCache(e,ge.URL,a);let o=this._workbookSelections.getCurrentLastSelection();if(!o)return!1;let s=Ne(``,{}),c=ur(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:o.primary.actualRow,col:o.primary.actualColumn},r,i,0);if(!c)return!1;let l={size:{width:c.width,height:c.height},positionH:{relativeFrom:Ce.PAGE,posOffset:0},positionV:{relativeFrom:we.PARAGRAPH,posOffset:0},angle:0},u={unitId:s.getUnitId(),subUnitId:s.getUnitId(),drawingId:Ie(),drawingType:I.DRAWING_IMAGE,imageSourceType:ge.URL,source:e,transform:Wt(l),docTransform:l,behindDoc:te.FALSE,title:``,description:``,layoutType:De.INLINE,wrapText:Me.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},d=k.drawing.add({documentDataModel:s,drawings:[u],selection:{collapsed:!0,startOffset:0,endOffset:0}});if(d){var f,p;return s.apply(d),this._commandService.syncExecuteCommand(dt.id,{value:{[(f=t==null?void 0:t.row)==null?o.primary.actualRow:f]:{[(p=t==null?void 0:t.col)==null?o.primary.actualColumn:p]:{p:s.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,n,r){let i=this._workbookSelections.getCurrentSelections(),a={startRow:0,endRow:0,startColumn:0,endColumn:0};i&&i.length>0&&(a=i[i.length-1].range);let o=w(this._skeletonManagerService.getCurrent().skeleton,a);if(o==null)return;let{startColumn:s,startRow:c,startX:l,startY:u}=o,d=!1;if(l+e>n&&(l=n-e,l<0&&(l=0,e=n),d=!0),u+t>r&&(u=r-t,u<0&&(u=0,t=r),d=!0),d){let e=this._selectionRenderService.getCellWithCoordByOffset(l,u);if(e==null)return;l=e.startX,u=e.startY,s=e.actualColumn,c=e.actualRow}let f={column:s,columnOffset:0,row:c,rowOffset:0},p=this._selectionRenderService.getCellWithCoordByOffset(l+e,u+t);if(p!=null)return{from:f,to:{column:p.actualColumn,columnOffset:l+e-p.startX,row:p.actualRow,rowOffset:u+t-p.startY}}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(rr.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=J({...s.transform,...o},this._selectionRenderService),l=Y({...s.transform,...o},this._selectionRenderService);if(c==null||l==null)return;let u={...e,transform:{...s.transform,...o,...q(c,this._selectionRenderService,this._skeletonManagerService)},sheetTransform:{...c},axisAlignSheetTransform:{...l}};t.push(u)}),t.length>0&&this._commandService.executeCommand(ir.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=J({...s,...a},this._selectionRenderService),l=Y({...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(tr.id,t);let{unitId:n,subUnitId:r,drawingId:i}=e[0].parent;this._commandService.syncExecuteCommand($t.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(ar.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue(ie,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue(ie,!0),this._sheetDrawingService.focusDrawing(e))}))}};dr=$([Q(1,R(C)),Q(2,L),Q(3,g),Q(4,Xt),Q(5,dn),Q(6,V),Q(7,G),Q(8,ue),Q(9,pn),Q(10,R(xe)),Q(11,R(Tt)),Q(12,R(_e)),Q(13,pe)],dr);const fr={id:`sheet.command.insert-float-image`,type:A.COMMAND,handler:async(e,t)=>{var r;let i=e.get(he),a=e.get(n),o=(r=s(z.UNIVER_SHEET,i,a))==null?void 0:r.with(dr);if(!o)return!1;let c=t==null?void 0:t.files;if(c){let e=c.map(e=>o.insertFloatImageByFile(e));return(await Promise.all(e)).every(e=>e)}else{var l;return(l=o.insertFloatImage())==null?!1:l}}},pr={id:`sheet.command.insert-cell-image`,type:A.COMMAND,handler:e=>{var t,r;let i=e.get(he),a=e.get(n);return(t=(r=s(z.UNIVER_SHEET,i,a))==null?void 0:r.with(dr).insertCellImage())==null?!1:t}},mr={id:`sheet.command.move-drawing`,type:A.COMMAND,handler:(e,t)=>{let n=e.get(L),r=e.get(V),i=e.get(g),{direction:a}=t,o=r.getFocusDrawings();if(o.length===0)return!1;let s=o[0].unitId,c=o.map(e=>{let{transform:t}=e;if(t==null)return null;let n={...t},{left:r=0,top:o=0}=t;return a===P.UP?n.top=o-1:a===P.DOWN?n.top=o+1:a===P.LEFT?n.left=r-1:a===P.RIGHT&&(n.left=r+1),{...e,transform:n,sheetTransform:J(n,i),axisAlignSheetTransform:Y(n,i)}}).filter(e=>e!=null);return n.syncExecuteCommand(ir.id,{unitId:s,drawings:c})?(n.syncExecuteCommand(X.id,[s]),!0):!1}};let hr=function(e){return e.CELL_ADDRESS=`cellAddress`,e.COLUMN_VALUE=`columnValue`,e}({});const gr=Pe(`sheets-drawing-ui.batch-save-images.service`);function _r(e){let t=``,n=e;for(;n>=0;)t=String.fromCharCode(n%26+65)+t,n=Math.floor(n/26)-1;return t}function vr(e,t){return`${_r(t)}${e+1}`}function yr(e){let t=vr(e.startRow,e.startColumn),n=vr(e.endRow,e.endColumn);return t===n?t:`${t}:${n}`}function br(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 xr(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 Sr(e,t){if(t===ge.BASE64){let t=e.match(/^data:image\/(\w+);/);if(t)return t[1]===`jpeg`?`jpg`:t[1]}if(t===ge.URL){let t=e.match(/\.(\w+)(?:\?|$)/);if(t)return t[1].toLowerCase()}return`png`}async function Cr(e,t){if(t===ge.BASE64||t===ge.URL)return(await fetch(e)).blob();throw Error(`UUID image type requires additional handling`)}let wr=class extends F{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(z.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let r=t.getCellMatrix(),i=[];for(let e of n){let{startRow:t,endRow:n,startColumn:a,endColumn:o}=e.range;for(let e=t;e<=n;e++)for(let t=a;t<=o;t++){let n=r.getValue(e,t);if(br(n)){let r=xr(n);r&&i.push({row:e,col:t,cellAddress:vr(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return i}getCellImagesFromRanges(e,t,n){let r=this._univerInstanceService.getUnit(e,z.UNIVER_SHEET);if(!r)return[];let i=r.getSheetBySheetId(t);if(!i)return[];let a=i.getCellMatrix(),o=[];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=a.getValue(e,t);if(br(n)){let r=xr(n);r&&o.push({row:e,col:t,cellAddress:vr(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return o}getDataColumns(){let e=this._univerInstanceService.getCurrentUnitForType(z.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let r=t.getCellMatrix(),i=r.getDataRange(),a=1/0,o=-1/0,s=new Set;for(let e of n){a=Math.min(a,e.range.startRow),o=Math.max(o,e.range.endRow);for(let t=e.range.startColumn;t<=e.range.endColumn;t++)s.add(t)}let c=new Set;for(let e=i.startColumn;e<=i.endColumn;e++)if(!s.has(e))for(let t=a;t<=o;t++){let n=r.getValue(t,e);if(n){var l,u;if((l=n.v)!=null&&l.toString()||!((u=n.p)==null||(u=u.body)==null||(u=u.dataStream)==null)&&u.trim()){c.add(e);break}}}let d=[],f=Array.from(c).sort((e,t)=>e-t);for(let e of f)d.push({index:e,label:_r(e)});return d}getDataColumnsForRanges(e,t,n){let r=this._univerInstanceService.getUnit(e,z.UNIVER_SHEET);if(!r)return[];let i=r.getSheetBySheetId(t);if(!i)return[];let a=i.getCellMatrix(),o=a.getDataRange(),s=1/0,c=-1/0,l=new Set;for(let e of n){s=Math.min(s,e.startRow),c=Math.max(c,e.endRow);for(let t=e.startColumn;t<=e.endColumn;t++)l.add(t)}let u=new Set;for(let e=o.startColumn;e<=o.endColumn;e++)if(!l.has(e))for(let t=s;t<=c;t++){let n=a.getValue(t,e);if(n){var d,f;if((d=n.v)!=null&&d.toString()||!((f=n.p)==null||(f=f.body)==null||(f=f.dataStream)==null)&&f.trim()){u.add(e);break}}}let p=[],m=Array.from(u).sort((e,t)=>e-t);for(let e of m)p.push({index:e,label:_r(e)});return p}getSelectionRangeNotation(){let e=this._selectionService.getCurrentSelections();return!e||e.length===0?``:e.map(e=>yr(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(z.UNIVER_SHEET),r=Sr(e.source,e.imageSourceType),i=[];for(let r of t.fileNameParts)if(r===hr.CELL_ADDRESS)i.push(e.cellAddress);else if(r===hr.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 a,o;let e=((a=n.v)==null?void 0:a.toString())||((o=n.p)==null||(o=o.body)==null||(o=o.dataStream)==null?void 0:o.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&i.push(t)}}}}return i.length===0?`${e.cellAddress}.${r}`:`${i.join(`_`)}.${r}`}generateFileNameWithContext(e,t,n,r){let i=this._univerInstanceService.getUnit(n,z.UNIVER_SHEET),a=Sr(e.source,e.imageSourceType),o=[];for(let n of t.fileNameParts)if(n===hr.CELL_ADDRESS)o.push(e.cellAddress);else if(n===hr.COLUMN_VALUE&&t.columnIndex!==void 0){let n=i==null?void 0:i.getSheetBySheetId(r);if(n){let r=n.getCellMatrix().getValue(e.row,t.columnIndex);if(r){var s,c;let e=((s=r.v)==null?void 0:s.toString())||((c=r.p)==null||(c=c.body)==null||(c=c.dataStream)==null?void 0:c.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&o.push(t)}}}}return o.length===0?`${e.cellAddress}.${a}`:`${o.join(`_`)}.${a}`}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=Sr(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===ge.UUID?Cr(await this._imageIoService.getImage(e.source),ge.URL):e.imageSourceType===ge.URL?this._urlImageService.downloadImage(e.source):Cr(e.source,e.imageSourceType)}};wr=$([Q(0,he),Q(1,R(Tt)),Q(2,de),Q(3,pe)],wr);const Tr=`sheet.dialog.batch-save-images`,Er={id:`sheet.command.save-cell-images`,type:A.COMMAND,handler:async e=>{let t=e.get(un),n=e.get(gr),r=n.getCellImagesInSelection();if(r.length===1)try{return await n.downloadSingleImage(r[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let i=e.get(xe),a=n.getSelectionRangeNotation(),o=`${i.t(`sheetImage.save.title`)} (${a})`;return t.open({id:Tr,draggable:!0,width:360,title:{title:o},children:{label:Tr},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>t.close(Tr)}),!0}},Dr=`COMPONENT_SHEET_DRAWING_PANEL`,Or={id:`sidebar.operation.sheet-image`,type:A.COMMAND,handler:async(e,t)=>{let n=e.get(hn),r=e.get(xe),i=e.get(he),a=e.get(L);if(!W(i))return!1;switch(t.value){case`open`:n.open({header:{title:r.t(`sheetImage.panel.title`)},children:{label:Dr},onClose:()=>{a.syncExecuteCommand($t.id,[])},width:360});break;default:n.close();break}return!0}},kr={id:`sheet.operation.edit-sheet-image`,type:A.OPERATION,handler:(e,t)=>{let n=e.get(L);return t==null?!1:(n.syncExecuteCommand($t.id,[t]),n.executeCommand(Or.id,{value:`open`}),!0)}},Ar=[_.SPECIAL_PASTE_COL_WIDTH,_.SPECIAL_PASTE_VALUE,_.SPECIAL_PASTE_FORMAT,_.SPECIAL_PASTE_FORMULA];let jr=class extends F{constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetDrawingService=n,this._drawingManagerService=r,Z(this,`_featurePasteHooks`,[]),Z(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 r=n.find(e=>e.drawingType===I.DRAWING_GROUP);if(!r)return;let i=this._drawingManagerService.getDrawingsByGroupNested({unitId:r.unitId,subUnitId:r.subUnitId,drawingId:r.drawingId});i&&(this._copyInfo={unitId:r.unitId,subUnitId:r.subUnitId,groupNestedParam:i})},onPasteCells:(e,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{pasteType:i}=r;return Ar.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:n,subUnitId:r,range:i}=e,a=this._renderManagerService.getRenderById(n),o=a==null?void 0:a.with(C),s=a==null?void 0:a.with(g);if(!o||!s||!this._copyInfo)return{redos:[],undos:[]};let{groupNestedParam:c}=this._copyInfo,l=c.groups[c.groups.length-1],{cloned:u,idMap:d}=$n(c),f=u.groups[u.groups.length-1].drawingId,p=At(i),m=o.attachRangeWithCoord({startRow:p.startRow,endRow:p.endRow,startColumn:p.startColumn,endColumn:p.endColumn});if(!m)return{redos:[],undos:[]};let h={...l.transform,left:m.startX,top:m.startY},_=[...((t=u.flatChildren)==null?[]:t).map(e=>({...e,unitId:n,subUnitId:r})),...u.groups.map(e=>{var t,i;return e.drawingId===f?{...e,unitId:n,subUnitId:r,transform:h,sheetTransform:(t=J(h,s))==null?l.sheetTransform:t,axisAlignSheetTransform:(i=Y(h,s))==null?l.sheetTransform:i}:{...e,unitId:n,subUnitId:r}})],{undo:v,redo:y,objects:b}=this._sheetDrawingService.getBatchAddOp(_),x=[{id:H.id,params:{op:y,unitId:n,subUnitId:r,objects:b,type:B.INSERT}}],S=[{id:H.id,params:{op:v,unitId:n,subUnitId:r,objects:b,type:B.REMOVE}}],w=this._getGroupFeaturePasteMutations({fromUnitId:this._copyInfo.unitId,fromSubUnitId:this._copyInfo.subUnitId,toUnitId:n,toSubUnitId:r,idMap:d,cloned:u});return x.push(...w.redos),S.push(...w.undos),{redos:x,undos:S}}dispose(){this._copyInfo=null,this._featurePasteHooks.length=0,super.dispose()}};jr=$([Q(0,h),Q(1,n),Q(2,V),Q(3,G)],jr);const Mr=`sheet.menu.image`;function Nr(e){return{id:Mr,type:_n.SUBITEMS,icon:`AddImageIcon`,tooltip:`sheetImage.title`,hidden$:xn(e,z.UNIVER_SHEET),disabled$:E(e,{workbookTypes:[Et],worksheetTypes:[Ot],rangeTypes:[rt]})}}function Pr(e){return{id:fr.id,title:`sheetImage.upload.float`,type:_n.BUTTON,hidden$:xn(e,z.UNIVER_SHEET)}}function Fr(e){return{id:pr.id,title:`sheetImage.upload.cell`,type:_n.BUTTON,hidden$:xn(e,z.UNIVER_SHEET)}}var Ir=`@univerjs/sheets-drawing-ui`,Lr=`0.18.0`;const Rr=`sheets-drawing-ui.config`;Symbol(Rr);const zr={};let Br=class extends ke{constructor(e,t,n,r){super(),this._drawingManagerService=e,this._contextMenuService=t,this._renderManagerService=n,this._univerInstanceService=r,this._init()}_init(){this._univerInstanceService.getAllUnitsForType(z.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,sn.DRAWING)}}))}};Br=$([Q(0,G),Q(1,ln),Q(2,n),Q(3,he)],Br);let Vr=class extends F{constructor(e,t,n,r,i){super(),this._context=e,this._hoverManagerService=t,this._selectionsService=n,this._drawingRenderService=r,this._sheetSkeletonManagerService=i,Z(this,`_isSetCursor`,!1),this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe(Un(33)).subscribe(t=>{var n,r;let i=[];t!==null&&(i=this._selectionsService.getWorkbookSelections(this._context.unitId).getCurrentSelections()),i.length>0&&(t==null?void 0:t.unitId)===this._context.unitId&&t!=null&&t.drawing&&i.length===1&&((n=i[0].primary)==null?void 0:n.actualRow)===t.row&&((r=i[0].primary)==null?void 0:r.actualColumn)===t.col?(this._isSetCursor=!0,this._context.scene.setCursor(e.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}}))}};Vr=$([Q(1,R(p)),Q(2,R(Tt)),Q(3,R(Dn)),Q(4,R(C))],Vr);let Hr=class extends F{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=q(t.sheetTransform,this._sheetSelectionRenderService,this._sheetSkeletonManagerService))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};Hr=$([Q(1,V),Q(2,G),Q(3,R(g)),Q(4,R(C))],Hr);function Ur(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=ur(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 Wr=class extends F{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(M),this._docDrawingController.loadDrawingDataForUnit(M),this._drawingManagerService.initializeNotification(M)):this._drawingManagerService.removeDrawingDataForUnit(M)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{e.id===Ut.id&&e.params.unitId===N&&(this._drawingManagerService.removeDrawingDataForUnit(N),this._docDrawingController.loadDrawingDataForUnit(N),this._drawingManagerService.initializeNotification(N))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(Je.CELL_CONTENT,{effect:ve.Style,priority:$e.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},Ur(this._injector,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},e)),n(e)}}))}};Wr=$([Q(0,L),Q(1,R(wt)),Q(2,R(_e)),Q(3,G),Q(4,R(Cn)),Q(5,R(m))],Wr);let Gr=class extends F{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,r)=>{new Se(r).forValue((t,n,r)=>{Ur(this._injector,{unitId:e.unitId,subUnitId:e.subUnitId,row:t,col:n},r)})}}))}};Gr=$([Q(0,R(qe)),Q(1,R(_e))],Gr);const Kr=[M,j,N];let qr=class extends F{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 t;let n=Ne(``,{}),r=(t=s(z.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService))==null?void 0:t.with(f),i=k.drawing.add({documentDataModel:n,drawings:[e],selection:{collapsed:!0,startOffset:0,endOffset:0}});i&&(n.apply(i),r&&r.submitCellData(n))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Ht.id){var t;let{doc:r}=e.params,i=this._univerInstanceService.getCurrentUnitOfType(z.UNIVER_DOC);if(i==null||!Object.keys((t=r.drawings)==null?{}:t).length)return;let a=i.getUnitId();if(Kr.includes(a)){if(a!==N){var n;let e=()=>{this._dialogService.close(`sheet-cell-image-copy-paste`),this._commandService.syncExecuteCommand(v.id,{visible:!1})};((n=i.getBody())==null?void 0:n.dataStream)===`\r
2
- `?(this._commandService.syncExecuteCommand(v.id,{visible:!1}),this._setCellImage(Object.values(r.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(r.drawings)[0])},onCancel:e})}throw Error(`Sheet cell image copy paste is not supported in this unit`)}}}))}};qr=$([Q(0,L),Q(1,he),Q(2,un),Q(3,n),Q(4,R(xe))],qr);const Jr=`image/png`;function Yr(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:Jr})}function Xr(e){let t=new ClipboardItem({[Jr]:Yr(e)});navigator.clipboard.write([t]).catch(e=>{console.error(`Could not copy image using clipboard API: `,e)})}function Zr(){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()}}const Qr=[_.SPECIAL_PASTE_COL_WIDTH,_.SPECIAL_PASTE_VALUE,_.SPECIAL_PASTE_FORMAT,_.SPECIAL_PASTE_FORMULA];let $r=class extends F{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._drawingService=n,this._clipboardInterfaceService=r,this._commandService=i,Z(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._drawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_IMAGE_UI_PLUGIN`,onBeforeCopy:(e,t,n,r)=>{this._copyInfo=null;let i=this._focusedDrawings;if(i.length>0){let[t]=i;if(t.drawingType!==I.DRAWING_IMAGE)return;if(r===d.CUT){let n={unitId:e,drawings:[t]};this._commandService.executeCommand(Yn.id,n)}setTimeout(()=>{let e=Zr();t.drawingType===I.DRAWING_IMAGE&&t.imageSourceType===Zt.BASE64?Xr(t.source):this._clipboardInterfaceService.writeText(``),e()},200),this._copyInfo={unitId:t.unitId,subUnitId:t.subUnitId,drawings:[t]}}else this._copyInfo=this._createDrawingsCopyInfoByRange(e,t,n)},onPasteCells:(e,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{copyType:i=d.COPY,pasteType:a}=r,{range:o}=e||{},{range:s,unitId:c,subUnitId:l}=t;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({pasteType:a,unitId:c,subUnitId:l,pasteRange:s},{copyRange:o,copyType:i}):this._generateSingleDrawingPasteMutations({pasteTo:t,pasteType:a},d.COPY)},onPastePlainText:(e,t)=>({undos:[],redos:[]}),onPasteUnrecognized:e=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:_.DEFAULT_PASTE},d.COPY):{undos:[],redos:[]},onPasteFiles:(e,t)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:_.DEFAULT_PASTE},d.COPY);{let e=t.filter(e=>e.type.includes(`image`));if(e.length)return{undos:[],redos:[{id:fr.id,params:{files:e}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(e,t,n){var r;let i=(r=this._renderManagerService.getRenderById(e))==null?void 0:r.with(C);if(!i)return;let a=i.attachRangeWithCoord(n);if(!a)return;let{startX:o,endX:s,startY:c,endY:l}=a,u=this._drawingService.getDrawingData(e,t),d=this._focusedDrawings.slice();if(Object.keys(u).forEach(e=>{let t=u[e];if(t.drawingType!==I.DRAWING_IMAGE)return;let{transform:n}=t;if(t.anchorType!==U.Both||!n)return;let{left:r=0,top:i=0,width:a=0,height:f=0}=n,{drawingStartX:p,drawingEndX:m,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+a,drawingStartY:i,drawingEndY:i+f};o<=p&&m<=s&&c<=h&&g<=l&&d.push(t)}),d.length)return{copyRange:n,drawings:d,unitId:e,subUnitId:t}}_generateSingleDrawingPasteMutations(e,t){let{pasteType:n,pasteTo:r}=e;if(Qr.includes(n))return{redos:[],undos:[]};let{unitId:i,subUnitId:a,range:o}=r,s=this._renderManagerService.getRenderById(i),c=s==null?void 0:s.with(C),l=s==null?void 0:s.with(g),u=this._copyInfo;if(!c||!l)return{redos:[],undos:[]};let{drawings:f}=u,p=At(o);return this._generateMutations(f,{unitId:i,subUnitId:a,isCut:t===d.CUT,getTransform:(e,t)=>{var n,r;let i=c.attachRangeWithCoord({startRow:p.startRow,endRow:p.endRow,startColumn:p.startColumn,endColumn:p.endColumn}),a={...e,left:i==null?void 0:i.startX,top:i==null?void 0:i.startY};return{transform:a,sheetTransform:(n=J(a,l))==null?t:n,axisAlignSheetTransform:(r=Y(a,l))==null?t:r}}})}_generateMutations(e,t){let{unitId:n,subUnitId:r,getTransform:i,isCut:a}=t,o=[],s=[],{_drawingService:c}=this;return e.forEach(e=>{let{transform:t,sheetTransform:l}=e;if(!t)return;let u=i(t,l),d={...e,unitId:n,subUnitId:r,drawingId:a?e.drawingId:Ie(),transform:u.transform,sheetTransform:u.sheetTransform,axisAlignSheetTransform:u.axisAlignSheetTransform};if(a){let{undo:e,redo:t,objects:i}=c.getBatchUpdateOp([d]);o.push({id:H.id,params:{unitId:n,subUnitId:r,type:B.UPDATE,op:t,objects:i}}),s.push({id:H.id,params:{unitId:n,subUnitId:r,type:B.UPDATE,op:e,objects:i}})}else{let{undo:e,redo:t,objects:i}=c.getBatchAddOp([d]);o.push({id:H.id,params:{op:t,unitId:n,subUnitId:r,objects:i,type:B.INSERT}}),s.push({id:H.id,params:{op:e,unitId:n,subUnitId:r,objects:i,type:B.REMOVE}})}}),{redos:o,undos:s}}_generateRangeDrawingsPasteMutations(e,t){var n;let{unitId:r,subUnitId:i,pasteType:a,pasteRange:o}=e,{copyRange:s,copyType:c}=t;if(Qr.includes(a))return{redos:[],undos:[]};let l=(n=this._renderManagerService.getRenderById(r))==null?void 0:n.with(C);if(!l||!this._copyInfo)return{redos:[],undos:[]};let{drawings:u}=this._copyInfo;if(!s)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:r,subUnitId:i,range:At(o)},pasteType:a},c);let{ranges:[f,p],mapFunc:m}=ee([s,o]),{row:h,col:_}=m(f.startRow,f.startColumn),{row:v,col:y}=m(p.startRow,p.startColumn),b=l.attachRangeWithCoord({startRow:h,endRow:h,startColumn:_,endColumn:_}),x=l.attachRangeWithCoord({startRow:v,endRow:v,startColumn:y,endColumn:y});if(!b||!x||!this._copyInfo)return{redos:[],undos:[]};let S=x.startX-b.startX,w=x.startY-b.startY,T=v-h,E=y-_;return this._generateMutations(u,{unitId:r,subUnitId:i,getTransform:(e,t)=>{var n,i,a;let o={...e,left:((n=e==null?void 0:e.left)==null?0:n)+S,top:((i=e==null?void 0:e.top)==null?0:i)+w},s=this._renderManagerService.getRenderById(r),c=s==null?void 0:s.with(g);return c?{transform:o,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:(a=Y(o,c))==null?t:a}:{transform:o,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:c===d.CUT})}};$r=$([Q(0,h),Q(1,n),Q(2,G),Q(3,cn),Q(4,L)],$r);let ei=class extends F{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$(z.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=Fn([e,t]);this.disposeWithMe(n.pipe(Bn(([e,t])=>e?e.activeSheet$.pipe(Hn(t=>{if(!t){this._drawingManagerService.setDrawingVisible(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new Dt(n).id,new kt(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(e,t)})):(this._drawingManagerService.setDrawingVisible(!1),Nn))).subscribe())}_handleDrawingVisibilityFalse(e,t){this._drawingManagerService.setDrawingVisible(!1);let n=e.getUnitId(),r=t.getSheetId(),a=this._drawingManagerService.getDrawingData(n,r),o=Object.values(a),s=this._renderManagerService.getRenderById(n),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===i.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.removeObject(e)})}_initDrawingEditable(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(z.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=Fn([e,t]);this.disposeWithMe(n.pipe(Bn(([e,t])=>e?e.activeSheet$.pipe(Hn(t=>{if(!t){this._drawingManagerService.setDrawingEditable(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new Et(n).id,new Ot(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingEditable(!0):this._handleDrawingEditableFalse(e,t)})):(this._drawingManagerService.setDrawingEditable(!1),Nn))).subscribe())}_handleDrawingEditableFalse(e,t){this._drawingManagerService.setDrawingEditable(!1);let n=e.getUnitId(),r=t.getSheetId(),a=this._drawingManagerService.getDrawingData(n,r),o=Object.values(a),s=this._renderManagerService.getRenderById(n),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===i.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.detachTransformerFrom(e)})}_initViewPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(z.UNIVER_SHEET),t=this._userManagerService.currentUser$;this.disposeWithMe(Fn([e,t]).pipe(Bn(([e,t])=>e?e.activeSheet$.pipe(Bn(t=>{if(!t)return Nn;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(!a)return Nn;let o=a.getTransformerByCreate();return this._permissionService.composePermission$([new Dt(n).id,new kt(n,r).id]).pipe(Rn(e=>e.every(e=>e.value)),In()).pipe(Rn(e=>({permission:e,scene:a,transformer:o,unitId:n,subUnitId:r})))})):Nn)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:r,subUnitId:a})=>{this._drawingManagerService.setDrawingVisible(e);let o=t.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(r,a),c=Object.values(s);e?this._drawingManagerService.addNotification(c):(o.forEach(e=>{e.classType===i.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&t.removeObject(e)}),n.clearSelectedObjects())},complete:()=>{this._drawingManagerService.setDrawingVisible(!0);let e=this._univerInstanceService.getCurrentUnitForType(z.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet(),n=e==null?void 0:e.getUnitId(),r=t==null?void 0:t.getSheetId();if(!n||!r)return;let i=this._drawingManagerService.getDrawingData(n,r),a=Object.values(i);this._drawingManagerService.addNotification(a)}}))}_initEditPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(z.UNIVER_SHEET),t=this._userManagerService.currentUser$;this.disposeWithMe(Fn([e,t]).pipe(Bn(([e,t])=>e?e.activeSheet$.pipe(Bn(t=>{if(!t)return Nn;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(!a)return Nn;let o=a.getTransformerByCreate();return this._permissionService.composePermission$([new Et(n).id,new Ot(n,r).id]).pipe(Rn(e=>e.every(e=>e.value)),In()).pipe(Rn(e=>({permission:e,scene:a,transformer:o,unitId:n,subUnitId:r})))})):Nn)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:r,subUnitId:a})=>{this._drawingManagerService.setDrawingEditable(e);let o=t.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(r,a),c=Object.values(s);e?(o.forEach(e=>{e.classType===i.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&t.attachTransformerTo(e)}),this._drawingManagerService.addNotification(c)):(o.forEach(e=>{e.classType===i.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&t.detachTransformerFrom(e)}),n.clearSelectedObjects())},complete:()=>{let e=this._univerInstanceService.getCurrentUnitForType(z.UNIVER_SHEET);if(!e)return;let t=e.getUnitId(),n=e.getActiveSheet();if(!n)return;let r=n.getSheetId(),a=this._renderManagerService.getRenderById(t),o=a==null?void 0:a.scene;if(!o)return;let s=this._drawingManagerService.getDrawingData(t,r),c=Object.values(s);this._drawingManagerService.setDrawingEditable(!0),o.getAllObjectsByOrder().forEach(e=>{e.classType===i.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&o.detachTransformerFrom(e)})}}))}};ei=$([Q(0,G),Q(1,n),Q(2,fe),Q(3,he),Q(4,R(je))],ei);var ti=function(e){return e.ALL=`ALL`,e.HORIZONTAL=`HORIZONTAL`,e.VERTICAL=`VERTICAL`,e}(ti||{});const ni=`univer-sheet-float-dom-`;function ri(e,t,n,r,i,a=!1){let{scaleX:s,scaleY:c}=t.getAncestorScale(),l=t.getViewport(o.VIEW_MAIN),{startColumn:u,startRow:d,xSplit:f,ySplit:p}=r.getFreeze(),m={left:!0,top:!0};if(!l)return{...e,absolute:m};let{left:h,right:g,top:_,bottom:v}=e,{top:y,left:b,viewportScrollX:x,viewportScrollY:S}=l,{boundsOfViewArea:C,scrollDirectionResponse:w}=i||{},{rowHeaderWidth:T,columnHeaderHeight:E}=n,D={top:a?0:E,left:a?0:T};C&&(Ae.isDefine(D.top)&&(D.top=C.top),Ae.isDefine(D.left)&&(D.left=C.left)),w===ti.HORIZONTAL&&(S=0),w===ti.VERTICAL&&(x=0);let ee=0,O=0,te=n.rowStartY(d-p)+E,k=n.colStartX(u-f)+T,A=n.rowStartY(d)+E,j=n.colStartX(u)+T;if(f===0)m.left=!1,ee=(h-x)*s,O=(g-x)*s;else{let e=h-(k-T),t=g-(k-T);g<j?(ee=e*s,O=t*s):h<=j&&g>=j?(ee=e*s,O=Math.max(b,(g-x)*s)):h>j&&(m.left=!1,ee=Math.max((h-x)*s,b),O=Math.max((g-x)*s,b))}let M=0,N=0;if(p===0)m.top=!1,M=(_-S)*c,N=(v-S)*c;else{let e=_-(te-E),t=v-(te-E);v<A?(M=e*c,N=t*c):_<=A&&v>=A?(M=e*c,N=Math.max(y,(v-S)*c)):_>A&&(m.top=!1,M=Math.max((_-S)*c,y),N=Math.max((v-S)*c,y))}return ee=Math.max(ee,D.left),M=Math.max(M,D.top),O=Math.max(O,D.left),N=Math.max(N,D.top),{left:ee,right:O,top:M,bottom:N,absolute:m}}const ii=(e,t,n,r,i)=>{let{left:a,top:o,width:s,height:c,angle:l}=e,u=ri({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}};let ai=class extends F{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,Z(this,`_domLayerInfoMap`,new Map),Z(this,`_transformChange$`,new Pn),Z(this,`transformChange$`,this._transformChange$.asObservable()),Z(this,`_add$`,new Pn),Z(this,`add$`,this._add$.asObservable()),Z(this,`_remove$`,new Pn),Z(this,`remove$`,this._remove$.asObservable()),this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe(Ln(e=>e===be.Rendered),Vn(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 n;let{unitId:i,subUnitId:o,drawingId:s}=e,c=W(this._univerInstanceService,{unitId:i,subUnitId:o}),l=this._drawingManagerService.getDrawingByParam(e),u=this._univerInstanceService.getUnit(i,z.UNIVER_SHEET);if(!u)return;let d=u.getActiveSheet().getSheetId();if(!l||!c)return;let f=(n=this._renderManagerService.getRenderById(i))==null?void 0:n.with(C).getSkeletonParam(o);if(!f)return;let{transform:p,drawingType:m,data:h}=l;if(m!==I.DRAWING_DOM&&m!==I.DRAWING_CHART)return;let g=this._getSceneAndTransformerByDrawingSearch(i);if(g==null)return;let{scene:_,canvas:v}=g;if(p==null)return!0;if(d!==o)return;let{left:y,top:b,width:x,height:S,angle:w,flipX:T,flipY:E,skewX:D,skewY:ee}=p,O=tn({unitId:i,subUnitId:o,drawingId:s}),te=_.getObject(O);if(te!=null){te.transformByState({left:y,top:b,width:x,height:S,angle:w,flipX:T,flipY:E,skewX:D,skewY:ee});return}let k={left:y,top:b,width:x,height:S,zIndex:this._drawingManagerService.getDrawingOrder(i,o).length-1},A=m===I.DRAWING_CHART;k.rotateEnabled=!1,A&&(k.fill=h?h.backgroundColor:`white`,h&&h.border&&(k.stroke=h.border),k.paintFirst=`stroke`,k.strokeWidth=1,k.borderEnabled=!1,k.radius=8);let j=new a(O,k);A&&j.setObjectType(r.CHART),_.addObject(j,t),l.allowTransform!==!1&&_.attachTransformerTo(j);let M=new re,N=new Mn(ii(j,g.renderUnit.scene,f.skeleton,c.worksheet)),ne=`${ni}${Ie(6)}`,P={dispose:M,rect:j,position$:N,unitId:i,subUnitId:o,id:s,domId:ne};this._canvasFloatDomService.addFloatDom({position$:N,id:s,domId:ne,componentKey:l.componentKey,onPointerDown:e=>{v.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{v.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{v.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{v.dispatchEvent(new WheelEvent(e.type,e))},data:h,unitId:i});let F=j.onTransformChange$.subscribeEvent(()=>{let e=ii(j,g.renderUnit.scene,f.skeleton,c.worksheet);N.next(e)});M.add(()=>{this._canvasFloatDomService.removeFloatDom(s)}),F&&M.add(F),this._domLayerInfoMap.set(s,P)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=tn({unitId:t,subUnitId:n,drawingId:r}),a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{transformer:o,scene:s}=a,c=s.getObject(i);if(c!=null&&c.oKey){var l;o.clearControlByIds([c==null?void 0:c.oKey]),(l=s.getTransformer())==null||l.clearSelectedObjects()}})}))}_scrollUpdateListener(){let e=(e,t)=>{var n;let r=this._getSceneAndTransformerByDrawingSearch(e),i=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),a=W(this._univerInstanceService,{unitId:e,subUnitId:t}),o=(n=this._renderManagerService.getRenderById(e))==null?void 0:n.with(C).getSkeletonParam(t);!r||!a||!o||i.forEach(e=>{let t=this._domLayerInfoMap.get(e);if(t){let e=ii(t.rect,r.renderUnit.scene,o.skeleton,a.worksheet,t);t.position$.next(e)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(z.UNIVER_SHEET).pipe(Bn(e=>e?e.activeSheet$:zn(null)),Rn(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t,subUnitId:e.getSheetId()}:null}),Bn(e=>e?Fe(e.render.scene.getViewport(o.VIEW_MAIN).onScrollAfter$).pipe(Rn(()=>({unitId:e.unitId,subUnitId:e.subUnitId}))):zn(null))).subscribe(t=>{if(!t)return;let{unitId:n,subUnitId:r}=t;e(n,r)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===b.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===ut.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}else if(t.id===gt.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}}))}updateFloatDomProps(e,t,n,r){let i=this._domLayerInfoMap.get(n),o=this._getSceneAndTransformerByDrawingSearch(e);if(i&&o){let{scene:i}=o,s=tn({unitId:e,subUnitId:t,drawingId:n}),c=i.getObject(s);c&&c instanceof a&&c.setProps(r)}}_getPosition(e,t){var n;let{startX:r,endX:i,startY:a,endY:o}=e,s=(n=this._renderManagerService.getRenderById(t))==null?void 0:n.with(g);if(s==null)return;let c=s.getCellWithCoordByOffset(r,a);if(c==null)return;let l={column:c.actualColumn,columnOffset:r-c.startX,row:c.actualRow,rowOffset:a-c.startY},u=s.getCellWithCoordByOffset(i,o);if(u!=null)return{from:l,to:{column:u.actualColumn,columnOffset:i-u.startX,row:u.actualRow,rowOffset:o-u.startY}}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);if(!t||t.drawingType!==I.DRAWING_DOM&&t.drawingType!==I.DRAWING_CHART)return;let n={...t.transform};this._transformChange$.next({id:e.drawingId,value:n}),this._canvasFloatDomService.updateFloatDom(e.drawingId,{...t});let r=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(r&&t.drawingType!==I.DRAWING_CHART){let{scene:n}=r,i=this._domLayerInfoMap.get(e.drawingId);i!=null&&i.rect&&(t.allowTransform===!1?n.detachTransformerFrom(i.rect):n.attachTransformerTo(i.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}addFloatDomToPosition(e,t){let n=W(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!n)throw Error(`cannot find current target!`);let{unitId:r,subUnitId:i}=n,{initPosition:a,componentKey:o,data:s,allowTransform:c=!0}=e,l=t==null?Ie():t,u=this._getPosition(a,r);if(u==null)return;let d={unitId:r,subUnitId:i,drawingId:l,drawingType:e.type||I.DRAWING_DOM,componentKey:o,sheetTransform:u,transform:{left:a.startX,top:a.startY,width:a.endX-a.startX,height:a.endY-a.startY},axisAlignSheetTransform:u,data:s,allowTransform:c};return this._commandService.executeCommand(nr.id,{unitId:r,drawings:[d]}),this._add$.next({unitId:r,subUnitId:i,id:l}),{id:l,dispose:()=>{this._removeDom(l,!0)}}}_removeDom(e,t=!1){let n=this._domLayerInfoMap.get(e);if(!n)return;let{unitId:r,subUnitId:i}=n;this._domLayerInfoMap.delete(e),n.dispose.dispose();let a=this._getSceneAndTransformerByDrawingSearch(r);if(a&&a.scene.removeObject(n.rect),t){let t=this._drawingManagerService.getDrawingByParam({unitId:r,subUnitId:i,drawingId:e});if(!t)return;let{redo:n,objects:a}=this._sheetDrawingService.getBatchRemoveOp([t]);this._commandService.syncExecuteCommand(H.id,{unitId:r,subUnitId:i,op:n,objects:a,type:B.REMOVE})}}addFloatDomToRange(e,n,i,o){var s;let c=W(this._univerInstanceService,{unitId:n.unitId,subUnitId:n.subUnitId});if(!c)throw Error(`cannot find current target!`);let{unitId:l,subUnitId:u}=c,d=this._getSceneAndTransformerByDrawingSearch(l);if(!d)return;let f=this._renderManagerService.getRenderById(l);if(!f)return;let p=(s=this._renderManagerService.getRenderById(l))==null?void 0:s.with(C).getWorksheetSkeleton(u);if(!p)return;let{componentKey:m,data:h,allowTransform:g=!0}=n,_=o==null?Ie():o,{position:v,position$:y}=this._createRangePositionObserver(e,f,p.skeleton),b=this._getPosition(v,l);if(b==null)return;let{scaleX:x}=d.scene.getAncestorScale(),S=si(v,i,x),w={unitId:l,subUnitId:u,drawingId:_,drawingType:n.type||I.DRAWING_DOM,componentKey:m,sheetTransform:b,axisAlignSheetTransform:b,transform:{left:S.startX,top:S.startY,width:S.width,height:S.height},data:h,allowTransform:g};{var T,E;let{unitId:e,subUnitId:o,drawingId:s}=w,c=W(this._univerInstanceService,{unitId:e,subUnitId:o}),l=w,u=this._univerInstanceService.getUnit(e,z.UNIVER_SHEET);if(!u)return;let d=u.getActiveSheet().getSheetId();if(!l||!c)return;let f=(T=this._renderManagerService.getRenderById(e))==null?void 0:T.with(C);if(!f)return;let p=f.getWorksheetSkeleton(o);if(!p)return;let{transform:m,drawingType:h,data:g}=l;if(h!==I.DRAWING_DOM&&h!==I.DRAWING_CHART)return;let b=this._getSceneAndTransformerByDrawingSearch(e);if(b==null)return;let{scene:x,canvas:S}=b;if(m==null||d!==o)return;let{left:D,top:ee,width:O,height:te,angle:k,flipX:A,flipY:j,skewX:M,skewY:N}=m,ne=tn({unitId:e,subUnitId:o,drawingId:s}),P=x.getObject(ne);if(P!=null){P.transformByState({left:D,top:ee,width:O,height:te,angle:k,flipX:A,flipY:j,skewX:M,skewY:N});return}let F={left:D,top:ee,width:O,height:te,zIndex:this._drawingManagerService.getDrawingOrder(e,o).length-1},ie=h===I.DRAWING_CHART;ie&&(F.fill=g?g.backgroundColor:`white`,F.rotateEnabled=!1,g&&g.border&&(F.stroke=g.border),F.paintFirst=`stroke`,F.strokeWidth=1,F.borderEnabled=!1,F.radius=8);let ae=new a(ne,F);ie&&ae.setObjectType(r.CHART),x.addObject(ae,t),l.allowTransform!==!1&&x.attachTransformerTo(ae);let oe=new re,se=x.getMainViewport(),{rowHeaderWidth:ce,columnHeaderHeight:L}=p.skeleton,le={dispose:oe,rect:ae,boundsOfViewArea:{top:L,left:ce,bottom:se.bottom,right:se.right},domAnchor:i,unitId:e,subUnitId:o},ue=new Mn(ii(ae,b.renderUnit.scene,p.skeleton,c.worksheet,le));le.position$=ue;let de={position$:ue,id:s,componentKey:l.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{S.dispatchEvent(new WheelEvent(e.type,e))},data:g,unitId:e};n.eventPassThrough&&(de={...de,onPointerDown:e=>{S.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{S.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{S.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(de),this.disposeWithMe(y.subscribe(t=>{var n,r,l,u;let d=si({rotate:0,startX:t.startX,startY:t.startY,endX:t.endX,endY:t.endY,width:(n=i.width)==null?t.width:n,height:(r=i.height)==null?t.height:r,absolute:{left:v.absolute.left,top:v.absolute.top}},i),f=ii(new a(tn({unitId:e,subUnitId:o,drawingId:s}),{left:d.startX,top:d.startY,width:(l=i.width)==null?t.width:l,height:(u=i.height)==null?t.height:u,zIndex:this._drawingManagerService.getDrawingOrder(e,o).length-1}),b.renderUnit.scene,p.skeleton,c.worksheet,le);ue.next(f)}));let fe=(E=this._renderManagerService.getRenderById(e))==null?void 0:E.with(C),pe=fe==null?void 0:fe.currentSkeleton$.subscribe(e=>{e&&p.sheetId!==e.sheetId&&this._removeDom(_,!0)});pe&&oe.add(pe);let me=ae.onTransformChange$.subscribeEvent(()=>{let e=ii(ae,b.renderUnit.scene,p.skeleton,c.worksheet,le);ue.next(e)});oe.add(()=>{this._canvasFloatDomService.removeFloatDom(s)}),me&&oe.add(me),this._domLayerInfoMap.set(s,le)}return{id:_,dispose:()=>{this._removeDom(_,!0)}}}addFloatDomToColumnHeader(e,n,r,i){var o;let s=W(this._univerInstanceService,{unitId:n.unitId,subUnitId:n.subUnitId});if(!s)throw Error(`cannot find current target!`);let{unitId:c,subUnitId:l}=s;if(!this._getSceneAndTransformerByDrawingSearch(c))return;let u=this._renderManagerService.getRenderById(c);if(!u)return;let d=(o=this._renderManagerService.getRenderById(c))==null?void 0:o.with(C).getWorksheetSkeleton(l);if(!d)return;let{componentKey:f,data:p,allowTransform:m=!0}=n,h=i==null?Ie():i,{position:g,position$:_}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:e,endColumn:e},u,d.skeleton),v=g;v.startY=0;let y=this._getPosition(g,c);if(y==null)return;let b={unitId:c,subUnitId:l,drawingId:h,drawingType:n.type||I.DRAWING_DOM,componentKey:f,sheetTransform:y,axisAlignSheetTransform:y,transform:{left:v.startX,top:v.startY,width:v.width,height:v.height},data:p,allowTransform:m};{var x,S;let{unitId:e,subUnitId:i,drawingId:o}=b,s=W(this._univerInstanceService,{unitId:e,subUnitId:i}),c=b,l=this._univerInstanceService.getUnit(e,z.UNIVER_SHEET);if(!l)return;let u=l.getActiveSheet().getSheetId();if(!c||!s)return;let f=(x=this._renderManagerService.getRenderById(e))==null?void 0:x.with(C);if(!f)return;let p=f.getWorksheetSkeleton(i);if(!p)return;let{transform:m,data:y}=c,w=this._getSceneAndTransformerByDrawingSearch(e);if(w==null)return;let{scene:T,canvas:E}=w;if(m==null||u!==i)return;let{left:D,top:ee,width:O,height:te,angle:k,flipX:A,flipY:j,skewX:M,skewY:N}=m,ne=tn({unitId:e,subUnitId:i,drawingId:o}),P=T.getObject(ne);if(P!=null){P.transformByState({left:D,top:ee,width:O,height:te,angle:k,flipX:A,flipY:j,skewX:M,skewY:N});return}let F=si({rotate:0,startX:v.startX,startY:0,endX:g.endX,endY:g.endY,width:r.width,height:r.height,absolute:{left:g.absolute.left,top:g.absolute.top}},r),I=new a(ne,{left:F.startX,top:F.startY,width:F.width,height:F.height,zIndex:this._drawingManagerService.getDrawingOrder(e,i).length-1});T.addObject(I,t),c.allowTransform!==!1&&T.attachTransformerTo(I);let ie=new re,ae=T.getMainViewport(),oe={dispose:ie,rect:I,unitId:e,subUnitId:i,boundsOfViewArea:{top:0,left:ae.left,bottom:ae.bottom,right:ae.right},domAnchor:r,scrollDirectionResponse:ti.HORIZONTAL},se=new Mn(ii(I,w.renderUnit.scene,p.skeleton,s.worksheet,oe));oe.position$=se;let ce={position$:se,id:o,componentKey:c.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{E.dispatchEvent(new WheelEvent(e.type,e))},data:y,unitId:e};n.eventPassThrough&&(ce={...ce,onPointerDown:e=>{E.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{E.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{E.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(ce);let L=I.onTransformChange$.subscribeEvent(()=>{let e=ii(I,w.renderUnit.scene,p.skeleton,s.worksheet,oe);se.next(e)});this.disposeWithMe(_.subscribe(t=>{let n=si({rotate:0,startX:t.startX,startY:0,endX:t.endX,endY:t.endY,width:r.width,height:r.height,absolute:{left:g.absolute.left,top:g.absolute.top}},r),c=ii(new a(tn({unitId:e,subUnitId:i,drawingId:o}),{left:n.startX,top:0,width:r.width,height:r.height,zIndex:this._drawingManagerService.getDrawingOrder(e,i).length-1}),w.renderUnit.scene,p.skeleton,s.worksheet,oe);se.next(c)}));let le=(S=this._renderManagerService.getRenderById(e))==null?void 0:S.with(C);le==null||le.currentSkeleton$.subscribe(e=>{e&&d.sheetId!==e.sheetId&&this._removeDom(h,!0)}),ie.add(()=>{this._canvasFloatDomService.removeFloatDom(o)}),L&&ie.add(L),this._domLayerInfoMap.set(o,oe)}return{id:h,dispose:()=>{this._removeDom(h,!0)}}}_createRangePositionObserver(e,t,n){let{startRow:r,startColumn:i}=e,a=oi(r,i,n),o=new Mn(a),s=oi(e.endRow,e.endColumn,n),c=new Mn(s),l=()=>{let t=oi(r,i,n),a=oi(e.endRow,e.endColumn,n);o.next(t),c.next(a)},u=new re;return u.add(t.engine.clientRect$.subscribe(()=>l())),u.add(this._commandService.onCommandExecuted(e=>{if(e.id===xt.id&&e.params.rowsAutoHeightInfo.findIndex(e=>e.row===r)>-1){l();return}(He.indexOf(e.id)>-1||e.id===y.id||e.id===b.id)&&l()})),{position$:o.pipe(Rn(t=>{let r=oi(e.endRow,e.endColumn,n);return{rotate:0,width:r.right-t.left,height:r.bottom-t.top,absolute:{left:!0,top:!0},startX:t.left,startY:t.top,endX:r.right,endY:r.bottom}})),position:{rotate:0,width:s.right-a.left,height:s.bottom-a.top,absolute:{left:!0,top:!0},startX:a.left,startY:a.top,endX:s.right,endY:s.bottom},updateRowCol:(e,t)=>{r=e,i=t,l()},topLeftPos$:o,rightBottomPos$:c,disposable:u}}};ai=$([Q(0,R(n)),Q(1,he),Q(2,R(L)),Q(3,G),Q(4,R(rn)),Q(5,V),Q(6,R(ye))],ai);function oi(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 si(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=ci(t.marginX,o*n);u=e.endX-r-c}else u=e.startX+ci(t.marginX,o);if(t.verticalOffsetAlign===`bottom`){let r=ci(t.marginY,s*n);d=e.endY-r-l}else d=e.startY+ci(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 ci(e,t){return e===void 0?0:typeof e==`number`?e:t*Number.parseFloat(e)/100}const li=e=>{let{floatDomInfos:t,scene:n,skeleton:r,worksheet:i}=e;return K(`div`,{style:{position:`absolute`,top:0,left:0},children:Kn(()=>t.map(e=>{let{width:t,height:a,angle:o,left:s,top:c}=e.transform,l=ri({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(),f={startX:l.left,endX:l.right,startY:l.top,endY:l.bottom,rotate:o,width:t*u,height:a*d,absolute:l.absolute},p={position$:new Mn(f),position:f,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,p]}),[t,n,r,i]).map(([e,t])=>K(vn,{layer:t,id:e,position:t.position},e))})};let ui=class extends F{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:r,scene:i,subUnitId:a}=t,o=this._drawingManagerService.getDrawingDataForUnit(r),s=o==null?void 0:o[a];return s&&s.order.forEach(e=>{let t=s.data[e];t.drawingType!==I.DRAWING_CHART&&t.drawingType!==I.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,i)}),n()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._renderManagerService.getRenderById(r);if(!a)return n(e);let o=a.with(C).getSkeletonParam(i);if(!o)return n(e);let s=this._drawingManagerService.getDrawingDataForUnit(r),c=s==null?void 0:s[t.subUnitId];if(!c)return n(e);let{scaleX:l,scaleY:u}=a.scene,d=e?{...e}:{startColumn:0,endColumn:0,endRow:0,startRow:0},f=c.order.map(e=>c.data[e]);return f.length?(f.forEach(e=>{if(!e.groupId&&e.transform&&Ae.isDefine(e.transform.left)&&Ae.isDefine(e.transform.top)&&Ae.isDefine(e.transform.width)&&Ae.isDefine(e.transform.height)){let t=o.skeleton.getCellIndexByOffset(e.transform.left,e.transform.top,l,u,{x:0,y:0}),n=o.skeleton.getCellIndexByOffset(e.transform.left+e.transform.width,e.transform.top+e.transform.height,l,u,{x:0,y:0});t.column<d.startColumn&&(d.startColumn=t.column),t.row<d.startRow&&(d.startRow=t.row),d.endRow<n.row&&(d.endRow=n.row),d.endColumn<n.column&&(d.endColumn=n.column)}}),n(d)):n(e)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._drawingManagerService.getDrawingDataForUnit(r),o=a==null?void 0:a[i];if(o){let r=o.order.map(e=>{let t=o.data[e];if(t.drawingType===I.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(Te)};if(t.drawingType===I.DRAWING_DOM){let e=this._sheetPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return Bt(K(bn(li,this._injector),{floatDomInfos:r,scene:t.scene,skeleton:t.skeleton,worksheet:t.worksheet}),t.root),e==null||e.add(()=>{Vt(t.root)}),n(e)}}}))}};ui=$([Q(0,R(S)),Q(1,R(Dn)),Q(2,G),Q(3,n),Q(4,R(ai)),Q(5,R(an)),Q(6,R(_e))],ui);var di=function(e){return e[e.deleteLeft=0]=`deleteLeft`,e[e.deleteUp=1]=`deleteUp`,e[e.insertDown=2]=`insertDown`,e[e.insertRight=3]=`insertRight`,e}(di||{});const fi=[Qe.id,Ye.id,at.id,it.id,Ue.id,We.id,Xe.id,Ze.id,Ke.id,ft.id,Ge.id,lt.id,pt.id,vt.id,_t.id,ot.id,et.id,nt.id,tt.id],pi=[ht.id,mt.id,ct.id,st.id,St.id,xt.id,Ct.id,bt.id];let mi=class extends F{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(!fi.includes(e.id)||e.params==null)return{redos:[],undos:[]};let t=e.id;if(t===Qe.id)return this._moveRowInterceptor(e.params,`insert`);if([et.id,nt.id,tt.id].includes(t))return this._moveRangeInterceptor(e.params);if(t===Ye.id)return this._moveColInterceptor(e.params,`insert`);if(t===at.id)return this._moveRowInterceptor(e.params,`remove`);if(t===it.id)return this._moveColInterceptor(e.params,`remove`);if(t===Ue.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,di.deleteLeft)}else if(t===We.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,di.deleteUp)}else if(t===Xe.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,di.insertDown)}else if(t===Ze.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,di.insertRight)}else if(t===pt.id||t===vt.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForRowVisible(t,n,r)}else if(t===_t.id||t===ot.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForColVisible(t,n,r)}else if(t===Ke.id||t===ft.id||t===Ge.id||t===lt.id){let{unitId:n,subUnitId:r,ranges:i}=e.params,a=t===Ke.id||t===ft.id;return this._getDrawingUndoForRowAndColSize(n,r,i,a)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(e,t){let n=W(this._univerInstanceService);if(n==null)return{redos:[],undos:[]};let r=n.unitId,i=n.subUnitId,a=[],o=[],s=this._sheetDrawingService.getDrawingData(r,i),c=[],l=[];if(Object.keys(s).forEach(n=>{let r=s[n],{updateDrawings:i,deleteDrawings:a}=this._getUpdateOrDeleteDrawings(e,t,r);c.push(...i),l.push(...a)}),c.length===0&&l.length===0)return{redos:[],undos:[]};if(c.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(c);a.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:B.UPDATE}}),o.push({id:H.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:B.UPDATE}})}if(l.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(l),t=e.undo,n=e.redo,s=e.objects;a.push({id:H.id,params:{unitId:r,subUnitId:i,op:n,objects:s,type:B.REMOVE}}),o.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:s,type:B.INSERT}})}return a.push({id:X.id,params:[r]}),o.push({id:X.id,params:[r]}),{redos:a,undos:o}}_getUpdateOrDeleteDrawings(e,t,n){let r=[],i=[],{sheetTransform:a,anchorType:o=U.Position,transform:s,unitId:c,subUnitId:l,drawingId:u}=n,{from:d,to:f}=a,{row:p,column:m}=d,{row:h,column:g}=f;if(a==null||s==null)return{updateDrawings:r,deleteDrawings:i};let{startRow:_,endRow:v,startColumn:y,endColumn:b}=e,x=null,S=null,C;if(t===di.deleteLeft&&p>=_&&h<=v)if(m>=y&&g<=b)i.push({unitId:c,subUnitId:l,drawingId:u});else{var w;let e=this._shrinkCol(a,s,y,b,o);x=e==null?void 0:e.newSheetTransform,S=e==null?void 0:e.newTransform,C=(w=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:w}else if(t===di.deleteUp&&m>=y&&g<=b)if(p>=_&&h<=v)i.push({unitId:c,subUnitId:l,drawingId:u});else{var T;let e=this._shrinkRow(a,s,_,v,o);x=e==null?void 0:e.newSheetTransform,S=e==null?void 0:e.newTransform,C=(T=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:T}else if(t===di.insertDown){var E;let e=this._expandRow(a,s,_,v,o);x=e==null?void 0:e.newSheetTransform,S=e==null?void 0:e.newTransform,C=(E=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:E}else if(t===di.insertRight){var D;let e=this._expandCol(a,s,y,b,o);x=e==null?void 0:e.newSheetTransform,S=e==null?void 0:e.newTransform,C=(D=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:D}if(x!=null&&S!=null){let e=q(x,this._selectionRenderService,this._skeletonManagerService);r.push({...n,sheetTransform:x,transform:e,axisAlignSheetTransform:C})}return{updateDrawings:r,deleteDrawings:i}}_remainDrawingSize(e,t,n){let r=J({...e},this._selectionRenderService);if(r!=null){let i=Y({...e},this._selectionRenderService);t.push({...n,sheetTransform:r,axisAlignSheetTransform:i})}}_getDrawingUndoForColVisible(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),i=[],a=[];if(Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:o,transform:s,anchorType:c=U.Position}=t;if(c===U.None)this._remainDrawingSize(s,i,t);else{let{from:e,to:r}=o,{row:l,column:u}=e,{row:d,column:f}=r;for(let o=0;o<n.length;o++){let{startRow:l,endRow:d,startColumn:p,endColumn:m}=n[o];if(f<p)continue;if(c===U.Position){let n=null,a=null;if(u>=p&&u<=m){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:u,endColumn:m,startRow:e.row,endRow:r.row});if(t==null)return;a={...s,left:t.startX}}if(a!=null){n=J(a,this._selectionRenderService);let e=Y(a,this._selectionRenderService);if(n!=null&&a!=null){i.push({...t,sheetTransform:n,transform:a,axisAlignSheetTransform:e});break}}this._remainDrawingSize(s,i,t);continue}if(u>=p&&f<=m)continue;let h=null,g=null;if(u>=p&&u<=m){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:u,endColumn:m,startRow:e.row,endRow:r.row});if(t==null)return;g={...s,left:(t==null?void 0:t.startX)||0,width:((s==null?void 0:s.width)||0)-t.endX+t.startX}}else if(f>=p&&f<=m){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:p,endColumn:f,startRow:e.row,endRow:r.row});if(t==null)return;g={...s,left:t.startX-((s==null?void 0:s.width)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:p,endColumn:m,startRow:e.row,endRow:r.row});if(n==null)return;if(g={...s,width:((s==null?void 0:s.width)||0)-n.endX+n.startX},h=J(g,this._selectionRenderService),h!=null&&g!=null){let e=Y(g,this._selectionRenderService);a.push({...t,sheetTransform:h,transform:g,axisAlignSheetTransform:e});break}}if(g!=null&&(h=J(g,this._selectionRenderService)),g!=null&&h!=null){let e=Y(g,this._selectionRenderService);i.push({...t,sheetTransform:h,transform:g,axisAlignSheetTransform:e});break}else this._remainDrawingSize(s,i,t)}}}),i.length===0&&a.length===0)return{redos:[],undos:[]};let{redos:o,undos:s}=this._createUndoAndRedoMutation(e,t,i),c=[],l=[];if(a.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,a);c.push(...n),l.push(...r)}return{redos:o,undos:s,preRedos:c,preUndos:l}}_createUndoAndRedoMutation(e,t,n){let{undo:r,redo:i,objects:a}=this._sheetDrawingService.getBatchUpdateOp(n);return{redos:[{id:H.id,params:{unitId:e,subUnitId:t,op:i,objects:a,type:B.UPDATE}},{id:X.id,params:[e]}],undos:[{id:H.id,params:{unitId:e,subUnitId:t,op:r,objects:a,type:B.UPDATE}},{id:X.id,params:[e]}]}}_getDrawingUndoForRowVisible(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),i=[],a=[];if(Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:o,transform:s,anchorType:c=U.Position}=t;if(c===U.None)this._remainDrawingSize(s,i,t);else{let{from:e,to:r}=o,{row:l,column:u}=e,{row:d,column:f}=r;for(let o=0;o<n.length;o++){let{startRow:u,endRow:f,startColumn:p,endColumn:m}=n[o];if(d<u)continue;if(c===U.Position){let n=null,a=null;if(l>=u&&l<=f){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:l,endRow:f});if(t==null)return;a={...s,top:t.startY}}if(a!=null){n=J(a,this._selectionRenderService);let e=Y(a,this._selectionRenderService);if(n!=null&&a!=null){i.push({...t,sheetTransform:n,transform:a,axisAlignSheetTransform:e});break}}this._remainDrawingSize(s,i,t);continue}if(l>=u&&d<=f)continue;let h=null,g=null;if(l>=u&&l<=f){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:l,endRow:f});if(t==null)return;g={...s,top:(t==null?void 0:t.startY)||0,height:((s==null?void 0:s.height)||0)-t.endY+t.startY}}else if(d>=u&&d<=f){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:u,endRow:d});if(t==null)return;g={...s,top:t.startY-((s==null?void 0:s.height)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:u,endRow:f});if(n==null)return;if(g={...s,height:((s==null?void 0:s.height)||0)-n.endY+n.startY},h=J(g,this._selectionRenderService),h!=null&&g!=null){let e=Y(g,this._selectionRenderService);a.push({...t,sheetTransform:h,transform:g,axisAlignSheetTransform:e});break}}if(g!=null&&(h=J(g,this._selectionRenderService)),g!=null&&h!=null){let e=Y(g,this._selectionRenderService);i.push({...t,sheetTransform:h,transform:g,axisAlignSheetTransform:e});break}else this._remainDrawingSize(s,i,t)}}}),i.length===0&&a.length===0)return{redos:[],undos:[]};let{redos:o,undos:s}=this._createUndoAndRedoMutation(e,t,i),c=[],l=[];if(a.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,a);c.push(...n),l.push(...r)}return{redos:o,undos:s,preRedos:c,preUndos:l}}_getDrawingUndoForRowAndColSize(e,t,n,r){let i=this._drawingManagerService.getDrawingData(e,t),a=[];return Object.keys(i).forEach(e=>{let t=i[e],{sheetTransform:r,transform:o,anchorType:s=U.Position}=t;if(s===U.None)this._remainDrawingSize(o,a,t);else{let{from:e,to:i}=r,{row:c,column:l}=e,{row:u,column:d}=i;for(let e=0;e<n.length;e++){let{startRow:i,endRow:f,startColumn:p,endColumn:m}=n[e];if(u<i||d<p)continue;if(s===U.Position&&(c<=i&&u>=f||l<=p&&d>=m)){this._remainDrawingSize(o,a,t);continue}let h=q({...r},this._selectionRenderService,this._skeletonManagerService);if(h!=null){a.push({...t,transform:h});break}}}}),a.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,a)}_getUnitIdAndSubUnitId(e,t){let n,r;if(t===`insert`)n=e.unitId,r=e.subUnitId;else{let e=W(this._univerInstanceService);if(e==null)return;n=e.unitId,r=e.subUnitId}return{unitId:n,subUnitId:r}}_moveRangeInterceptor(e){var t;let{toRange:n,fromRange:r}=e,i=W(this._univerInstanceService);if(!i)return{redos:[],undos:[]};let{unitId:a,subUnitId:o}=i,s=(t=this._renderManagerService.getRenderById(a))==null||(t=t.with(C))==null?void 0:t.getCurrentSkeleton();if(!s)return{redos:[],undos:[]};let c=w(s,r);if(!c)return{redos:[],undos:[]};let{startX:l,endX:u,startY:d,endY:f}=c,p=this._sheetDrawingService.getDrawingData(a,o),m=[];Object.keys(p).forEach(e=>{let t=p[e];if(t.anchorType!==U.Both)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:i=0,width:a=0,height:o=0}=n,{drawingStartX:s,drawingEndX:c,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+a,drawingStartY:i,drawingEndY:i+o};l<=s&&c<=u&&d<=h&&g<=f&&m.push(t)});let h=[],g=[],_=n.startRow-r.startRow,v=n.startColumn-r.startColumn,y=m.map(e=>{let t=e.sheetTransform,n={to:{...t.to,row:t.to.row+_,column:t.to.column+v},from:{...t.from,row:t.from.row+_,column:t.from.column+v}},r=q(n,this._selectionRenderService,this._skeletonManagerService);return{unitId:a,subUnitId:o,drawingId:e.drawingId,transform:r,sheetTransform:n}});if(y.length){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(y);h.push({id:H.id,params:{unitId:a,subUnitId:o,op:t,objects:n,type:B.UPDATE}}),g.push({id:H.id,params:{unitId:a,subUnitId:o,op:e,objects:n,type:B.UPDATE}})}return{redos:h,undos:g}}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,{range:a}=e,o=a.startRow,s=a.endRow,c=[],l=[],u=this._sheetDrawingService.getDrawingData(r,i),d=[],f=[];if(Object.keys(u).forEach(e=>{let{sheetTransform:n,transform:a,anchorType:c=U.Position}=u[e];if(n==null||a==null)return;let l,p,m;if(t===`insert`){var h;let e=this._expandRow(n,a,o,s,c);l=e==null?void 0:e.newSheetTransform,p=e==null?void 0:e.newTransform,m=(h=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:h}else{let{from:t,to:u}=n,{row:d}=t,{row:h}=u;if(c===U.Both&&d>=o&&h<=s)f.push({unitId:r,subUnitId:i,drawingId:e});else{var g;let e=this._shrinkRow(n,a,o,s,c);l=e==null?void 0:e.newSheetTransform,p=e==null?void 0:e.newTransform,m=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}}if(!l||!p)return;let _={unitId:r,subUnitId:i,drawingId:e,transform:p,sheetTransform:l,axisAlignSheetTransform:m};d.push(_)}),d.length===0&&f.length===0)return{redos:[],undos:[]};if(d.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(d);c.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:B.UPDATE}}),l.push({id:H.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:B.UPDATE}})}if(f.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(f),t=e.undo,n=e.redo,a=e.objects;c.push({id:H.id,params:{unitId:r,subUnitId:i,op:n,objects:a,type:B.REMOVE}}),l.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:a,type:B.INSERT}})}return c.push({id:X.id,params:[r]}),l.push({id:X.id,params:[r]}),{redos:c,undos:l}}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,{range:a}=e,o=a.startColumn,s=a.endColumn,c=[],l=[],u=this._sheetDrawingService.getDrawingData(r,i),d=[],f=[];if(Object.keys(u).forEach(e=>{let{sheetTransform:n,transform:a,anchorType:c=U.Position}=u[e];if(n==null||a==null)return;let l,p,m;if(t===`insert`){var h;let e=this._expandCol(n,a,o,s,c);l=e==null?void 0:e.newSheetTransform,p=e==null?void 0:e.newTransform,m=(h=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:h}else{let{from:t,to:u}=n,{column:d}=t,{column:h}=u;if(c===U.Both&&d>=o&&h<=s)f.push({unitId:r,subUnitId:i,drawingId:e});else{var g;let e=this._shrinkCol(n,a,o,s,c);l=e==null?void 0:e.newSheetTransform,p=e==null?void 0:e.newTransform,m=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}}if(!l||!p)return;let _={unitId:r,subUnitId:i,drawingId:e,transform:p,sheetTransform:l,axisAlignSheetTransform:m};d.push(_)}),d.length===0&&f.length===0)return{redos:[],undos:[]};if(d.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(d);c.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:B.UPDATE}}),l.push({id:H.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:B.UPDATE}})}if(f.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(f),t=e.undo,n=e.redo,a=e.objects;c.push({id:H.id,params:{unitId:r,subUnitId:i,op:n,objects:a,type:B.REMOVE}}),l.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:a,type:B.INSERT}})}return c.push({id:X.id,params:[r]}),l.push({id:X.id,params:[r]}),{redos:c,undos:l}}_expandCol(e,t,n,r,i=U.Position){let a=r-n+1,{from:o,to:s}=e,{column:c}=o,{column:l}=s;if(i===U.None)return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};let u=null,d=null,f=null;if(c>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:r,startRow:o.row,endRow:s.row});if(e==null)return;d={...t,left:(t.left||0)+e.endX-e.startX},u=J(d,this._selectionRenderService),f=Y(d,this._selectionRenderService)}else if(l>=r)if(i===U.Both)u={from:{...o},to:{...s,column:l+a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:f}:null}_shrinkCol(e,t,n,r,i=U.Position){let a=r-n+1,{from:o,to:s}=e,{column:c}=o,{column:l}=s;if(i===U.None)return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};let u=null,d=null,f=null;if(c>r)u={from:{...o,column:c-a},to:{...s,column:l-a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else if(c>=n&&l<=r)return null;else if(c<n&&l>r)if(i===U.Both)u={from:{...o},to:{...s,column:l-a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};else if(c>=n&&c<=r){if(c===n)d={...t,left:(t.left||0)-e.from.columnOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:c-1,startRow:o.row,endRow:s.row});if(r==null)return;d={...t,left:(t.left||0)-r.endX+r.startX-e.from.columnOffset}}u=J(d,this._selectionRenderService),f=Y(d,this._selectionRenderService)}else if(l>=n&&l<=r&&i===U.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n-1,endColumn:n-1,startRow:o.row,endRow:s.row});if(e==null)return;u={from:{...o},to:{...s,column:n-1,columnOffset:e.endX-e.startX}},d=q(u,this._selectionRenderService,this._skeletonManagerService)}return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:f}:null}_expandRow(e,t,n,r,i=U.Position){let a=r-n+1,{from:o,to:s}=e,{row:c}=o,{row:l}=s;if(i===U.None)return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};let u=null,d=null,f=null;if(c>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:r,startColumn:o.column,endColumn:s.column});if(e==null)return;d={...t,top:(t.top||0)+e.endY-e.startY},u=J(d,this._selectionRenderService),f=Y(d,this._selectionRenderService)}else if(l>=r)if(i===U.Both)u={from:{...o},to:{...s,row:l+a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:f}:null}_shrinkRow(e,t,n,r,i=U.Position){let a=r-n+1,{from:o,to:s}=e,{row:c}=o,{row:l}=s;if(i===U.None)return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};let u=null,d=null,f=null;if(c>r)u={from:{...o,row:c-a},to:{...s,row:l-a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else if(c>=n&&l<=r)return null;else if(c<n&&l>r)if(i===U.Both)u={from:{...o},to:{...s,row:l-a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};else if(c>=n&&c<=r){if(c===n)d={...t,top:(t.top||0)-e.from.rowOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:c-1,startColumn:o.column,endColumn:s.column});if(r==null)return;d={...t,top:(t.top||0)-r.endY+r.startY-e.from.rowOffset}}u=J(d,this._selectionRenderService),f=Y(d,this._selectionRenderService)}else if(l>=n&&l<=r&&i===U.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:o.column,endColumn:o.column,startRow:n-1,endRow:n-1});if(e==null)return;u={from:{...o},to:{...s,row:n-1,rowOffset:e.endY-e.startY}},d=q(u,this._selectionRenderService,this._skeletonManagerService)}return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:f}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===yt.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=q(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=>{pi.includes(e.id)&&requestIdleCallback(()=>{let t=e.params,n=W(this._univerInstanceService,t);if(!n)return;let{unitId:r,subUnitId:i,worksheet:a}=n,o=[];`ranges`in t?o=t.ranges:`rowsAutoHeightInfo`in t&&(o=t.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:a.getColumnCount()-1}))),this._refreshDrawingTransform(r,i,o)})}))}_refreshDrawingTransform(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),i=[];Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:a,transform:o,anchorType:s=U.Position}=t;if(s===U.None)return!0;let{from:c,to:l}=a,{row:u,column:d}=c,{row:f,column:p}=l;for(let e=0;e<n.length;e++){let{startRow:r,endRow:c,startColumn:l,endColumn:m}=n[e];if(Oe.intersects({startRow:r,endRow:c,startColumn:l,endColumn:m},{startRow:u,endRow:f,startColumn:d,endColumn:p})||u>c||d>m){let e=s===U.Position,n=q(a,this._selectionRenderService,this._skeletonManagerService);i.push({...t,transform:{...n,width:e?o==null?void 0:o.width:n==null?void 0:n.width,height:e?o==null?void 0:o.height:n==null?void 0:n.height}});break}}}),i.length!==0&&(this._sheetDrawingService.refreshTransform(i),this._drawingManagerService.refreshTransform(i),this._commandService.syncExecuteCommand(X.id,[e]))}};mi=$([Q(1,n),Q(2,L),Q(3,g),Q(4,R(C)),Q(5,R(wt)),Q(6,V),Q(7,G),Q(8,he)],mi);const hi={id:`sheet.command.toggle-flip-drawings`,type:A.COMMAND,handler:(e,t)=>{let r=e.get(L),i=e.get(me),a=e.get(V),o=e.get(n);if(!t)return!1;let{drawings:s}=t,c=t.flipH,l=t.flipV,u=[],d=[];for(let t of s){let{unitId:n,subUnitId:r,drawingId:i}=t;u.push(n);let s=a.getDrawingData(n,r),f=s==null?void 0:s[i];if(!f)continue;let p={...f.transform};c&&(p.flipX=!p.flipX),l&&(p.flipY=!p.flipY);let m=o.getRenderById(n),h=m==null?void 0:m.with(g);if(!h)continue;let _=J(p,h),v=Y(p,h),y={unitId:n,subUnitId:r,drawingType:f.drawingType,drawingId:i,transform:p,sheetTransform:_,axisAlignSheetTransform:v};if(f.drawingType===I.DRAWING_IMAGE){let t=gi(e,n);if(t){let e=tn({unitId:n,subUnitId:r,drawingId:i}),a=t.getObject(e);if(a){let e=a.srcRect;if(e){let t,{left:n=0,top:r=0,right:i=0,bottom:a=0}=e;if(c){let e=n+(i-n)/2;t={left:e-(i-n)/2,top:r,right:e+(i-n)/2,bottom:a}}if(l){let e=r+(a-r)/2;t={left:n,top:e-(a-r)/2,right:i,bottom:e+(a-r)/2}}t&&(y.srcRect=t)}}}}d.push(y)}if(d.length===0)return!1;let{unitId:f,subUnitId:p,undo:m,redo:h,objects:_}=a.getBatchUpdateOp(d),v={id:H.id,params:{unitId:f,subUnitId:p,op:h,objects:_,type:B.UPDATE}},y={id:H.id,params:{unitId:f,subUnitId:p,op:m,objects:_,type:B.UPDATE}};return ze([v],r)?(i.pushUndoRedo({unitID:f,undoMutations:[y,{id:X.id,params:u}],redoMutations:[v,{id:X.id,params:u}]}),!0):!1}};function gi(e,t){let r=e.get(n).getRenderById(t);return r?r.scene:null}function _i(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 vi(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(_i(r.getValue(e,t)))return!0;return!1}function yi(){return`showDirectoryPicker`in window}function bi(e){let t=e.get(he),n=e.get(Tt),r=Fn([xn(e,z.UNIVER_SHEET),t.getCurrentTypeOfUnit$(z.UNIVER_SHEET).pipe(Bn(e=>e?n.selectionMoveEnd$.pipe(Rn(()=>{if(!yi())return!0;let t=n.getCurrentSelections();if(!t||t.length===0)return!0;for(let n of t)if(vi(e,n.range))return!1;return!0})):zn(!0)))]).pipe(Rn(([e,t])=>e||t));return{id:Er.id,type:_n.BUTTON,icon:`DownloadImageIcon`,title:`sheetImage.save.menuLabel`,hidden$:r}}const xi={[yn.MEDIA]:{[Mr]:{order:0,menuItemFactory:Nr,[fr.id]:{order:0,menuItemFactory:Pr},[pr.id]:{order:1,menuItemFactory:Fr}}},[sn.MAIN_AREA]:{[on.OTHERS]:{[Er.id]:{order:10,menuItemFactory:bi}}},[sn.COL_HEADER]:{[on.OTHERS]:{[Er.id]:{order:10,menuItemFactory:bi}}},[sn.ROW_HEADER]:{[on.OTHERS]:{[Er.id]:{order:10,menuItemFactory:bi}}}};function Si(){let e=Sn(xe),t=Sn(un),n=Sn(gr),[r,i]=qn([hr.CELL_ADDRESS]),[a,o]=qn(!1),[s,c]=qn(null),l=Kn(()=>n.getCellImagesInSelection(),[n]),u=Kn(()=>n.getDataColumns(),[n]),d=Kn(()=>n.getSelectionRowRange(),[n]),f=u.length>0,p=Kn(()=>u.map(e=>({label:e.label,value:String(e.index)})),[u]),[m,h]=qn(()=>p.length>0?p[0].value:`0`);D(Kn(()=>{if(!r.includes(hr.COLUMN_VALUE)||!d)return[];let e=Number(m);return[{startRow:d.startRow,endRow:d.endRow,startColumn:e,endColumn:e}]},[r,m,d]));let g=Wn(e=>{e.length!==0&&i(e)},[]),_=Wn(e=>{h(String(e))},[]),v=Wn(()=>{t.close(Tr)},[t]),y=Wn(async()=>{if(l.length!==0){o(!0),c(null);try{await n.saveImages(l,{fileNameParts:r,columnIndex:r.includes(hr.COLUMN_VALUE)?Number(m):void 0}),t.close(Tr)}catch(t){console.error(`Failed to save images:`,t),c(e.t(`sheetImage.save.error`))}finally{o(!1)}}},[n,l,r,m,t,e]),b=r.includes(hr.COLUMN_VALUE);return Jn(`div`,{className:`univer-flex univer-flex-col`,children:[K(Pt,{label:e.t(`sheetImage.save.imageCount`),children:K(`div`,{className:`univer-text-sm univer-text-gray-600`,children:l.length})}),K(Pt,{label:e.t(`sheetImage.save.fileNameConfig`),children:Jn(Nt,{value:r,onChange:g,direction:`vertical`,children:[K(Mt,{value:hr.CELL_ADDRESS,disabled:!f,children:e.t(`sheetImage.save.useRowCol`)}),f&&K(Mt,{value:hr.COLUMN_VALUE,children:e.t(`sheetImage.save.useColumnValue`)})]})}),b&&K(Pt,{label:e.t(`sheetImage.save.selectColumn`),children:K(Rt,{value:m,options:p,onChange:_})}),s&&K(`div`,{className:`univer-text-xs univer-text-red-500`,children:s}),Jn(`div`,{className:`
3
- univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3
4
- `,children:[K(jt,{onClick:v,disabled:a,children:e.t(`sheetImage.save.cancel`)}),K(jt,{variant:`primary`,onClick:y,disabled:a||l.length===0,children:a?e.t(`sheetImage.save.saving`):e.t(`sheetImage.save.confirm`)})]})]})}const Ci=e=>{var t;let r=Sn(L),i=Sn(xe),a=Sn(G),o=Sn(n),{drawings:s}=e,c=s[0];if(c==null)return;let{unitId:l}=c,u=o.getRenderById(l),d=u==null?void 0:u.scene;if(d==null)return;let f=d.getTransformerByCreate(),[p,m]=qn(!0),[h,g]=qn((t=c.anchorType)==null?U.Position:t);function _(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}Gn(()=>{let e=f.clearControl$.subscribe(e=>{e===!0&&m(!1)}),t=f.changeStart$.subscribe(e=>{let{objects:t}=e,n=_(t,a);if(n.length===0)m(!1);else if(n.length>=1){var r;m(!0),g(((r=n[0])==null?void 0:r.anchorType)||U.Position)}});return()=>{t.unsubscribe(),e.unsubscribe()}},[]);function v(e){g(e);let t=a.getFocusDrawings();if(t.length===0)return;let n=t.map(t=>({unitId:t.unitId,subUnitId:t.subUnitId,drawingId:t.drawingId,anchorType:e}));r.executeCommand(ir.id,{unitId:t[0].unitId,drawings:n})}return Jn(`div`,{className:zt(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!p}),children:[K(`header`,{className:`
5
- univer-text-gray-600
6
- dark:!univer-text-gray-200
7
- `,children:K(`div`,{children:i.t(`drawing-anchor.title`)})}),K(`div`,{children:Jn(Lt,{value:h,onChange:v,direction:`vertical`,children:[K(It,{value:U.Both,children:i.t(`drawing-anchor.both`)}),K(It,{value:U.Position,children:i.t(`drawing-anchor.position`)}),K(It,{value:U.None,children:i.t(`drawing-anchor.none`)})]})})]})},wi=()=>{let e=Sn(G),[t,n]=qn(e.getFocusDrawings());return Gn(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&Jn(`div`,{className:`univer-text-sm`,children:[K(En,{drawings:t}),K(Ci,{drawings:t})]})};function Ti(e){return e.getContextValue(ce)&&!e.getContextValue(ae)&&!e.getContextValue(oe)&&e.getContextValue(ie)&&!e.getContextValue(se)}const Ei={id:mr.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:gn.ARROW_DOWN,priority:100,preconditions:Ti,staticParameters:{direction:P.DOWN}},Di={id:mr.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:gn.ARROW_UP,priority:100,preconditions:Ti,staticParameters:{direction:P.UP}},Oi={id:mr.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:gn.ARROW_LEFT,priority:100,preconditions:Ti,staticParameters:{direction:P.LEFT}},ki={id:mr.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:gn.ARROW_RIGHT,priority:100,preconditions:Ti,staticParameters:{direction:P.RIGHT}},Ai={id:Xn.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,priority:100,preconditions:Ti,binding:gn.DELETE,mac:gn.BACKSPACE};let ji=class extends F{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(Dr,wi)),this.disposeWithMe(e.register(Tr,Si))}_initMenus(){this._menuManagerService.mergeMenu(xi)}_initCommands(){[fr,pr,nr,Yn,ir,Or,X,kr,tr,ar,mr,Xn,rr,Er,hi].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[Ei,Di,Oi,ki,Ai].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};ji=$([Q(0,R(an)),Q(1,fn),Q(2,L),Q(3,mn),Q(4,G),Q(5,R(Tt))],ji);let Mi=class extends ke{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,Z(this,`_initImagePopupMenu`,new Set),this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(z.UNIVER_SHEET).subscribe(e=>this._create(e)),this._univerInstanceService.getTypeOfUnitDisposed$(z.UNIVER_SHEET).subscribe(e=>this._dispose(e)),this._univerInstanceService.getAllUnitsForType(z.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:Ft.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 On)return!0;return!1}_popupMenuListener(e){var t;let n=(t=this._renderManagerService.getRenderById(e))==null?void 0:t.scene;if(!n)return;let r=n.getTransformerByCreate();if(!r)return;let i;this.disposeWithMe(r.createControl$.subscribe(()=>{if(this._contextService.setContextValue(ie,!0),this._hasCropObject(n))return;let e=r.getSelectedObjectMap();if(e.size>1){i==null||i.dispose();return}let t=e.values().next().value;if(!t)return;let a=t.oKey,o=this._drawingManagerService.getDrawingOKey(a);if(!o)return;let{unitId:s,subUnitId:c,drawingId:l,drawingType:u}=o,d=o.data;if(d&&d.disablePopup)return;i==null||i.dispose();let f=this._canvasPopManagerService.getFeatureMenu(s,c,l,u);i=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(t,{componentKey:Tn,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:f||this._getImageMenuItems(s,c,l,u)}}))})),this.disposeWithMe(r.clearControl$.subscribe(()=>{i==null||i.dispose(),this._contextService.setContextValue(ie,!1),this._commandService.syncExecuteCommand($t.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(e=>{e[ie]===!1&&(i==null||i.dispose())})),this.disposeWithMe(r.changing$.subscribe(()=>{i==null||i.dispose()}))}_getImageMenuItems(e,t,n,r){return[{label:`image-popup.edit`,index:0,commandId:kr.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:r===I.DRAWING_DOM},{label:`image-popup.delete`,index:1,commandId:Yn.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:An.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:r===I.DRAWING_DOM},{label:`image-popup.flipH`,index:2,commandId:hi.id,commandParams:{unitId:e,flipH:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:r===I.DRAWING_DOM},{label:`image-popup.flipV`,index:2,commandId:hi.id,commandParams:{unitId:e,flipV:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:r===I.DRAWING_DOM},{label:`image-popup.reset`,index:3,commandId:kn.id,commandParams:[{unitId:e,subUnitId:t,drawingId:n}],disable:r===I.DRAWING_DOM}]}};Mi=$([Q(0,R(_e)),Q(1,R(xe)),Q(2,G),Q(3,R(x)),Q(4,n),Q(5,he),Q(6,pn),Q(7,ue),Q(8,de),Q(9,L)],Mi);let Ni=class extends Ee{constructor(e=zr,t,n,r){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=r;let{menu:i,...a}=Le({},zr,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(Rr,a)}onStarting(){Re(this._injector,[[ai],[ji],[Mi],[ui],[ei],[$r],[jr],[Wr],[Gr],[qr],[gr,{useClass:wr}],[Br]]),Be(this._injector,[[ai]])}onReady(){Be(this._injector,[[$r],[qr],[jr]])}onRendered(){this._registerRenderModules(),Be(this._injector,[[ei],[ui],[ji],[Wr],[Gr]])}onSteady(){this._injector.get(Mi),this._injector.get(Br)}_registerRenderModules(){[[dr],[mi],[Hr],[Vr]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(z.UNIVER_SHEET,e))})}};Z(Ni,`type`,z.UNIVER_SHEET),Z(Ni,`pluginName`,`SHEET_IMAGE_UI_PLUGIN`),Z(Ni,`packageName`,Ir),Z(Ni,`version`,Lr),Ni=$([ne(en,wn,jn,Ve),Q(1,R(_e)),Q(2,n),Q(3,le)],Ni);export{wr as BatchSaveImagesService,X as ClearSheetDrawingTransformerOperation,Xn as DeleteDrawingsCommand,kr as EditSheetDrawingOperation,hr as FileNamePart,tr as GroupSheetDrawingCommand,gr as IBatchSaveImagesService,fr as InsertFloatImageCommand,nr as InsertSheetDrawingCommand,mr as MoveDrawingsCommand,Yn as RemoveSheetDrawingCommand,Mr as SHEETS_IMAGE_MENU_ID,ni as SHEET_FLOAT_DOM_PREFIX,Er as SaveCellImagesCommand,rr as SetDrawingArrangeCommand,ir as SetSheetDrawingCommand,ai as SheetCanvasFloatDomManagerService,Ci as SheetDrawingAnchor,dr as SheetDrawingUpdateController,jr as SheetsDrawingGroupCopyPasteController,Or as SidebarSheetDrawingOperation,ar as UngroupSheetDrawingCommand,Ni as UniverSheetsDrawingUIPlugin,ii as calcSheetFloatDomPosition,q as drawingPositionToTransform,Y as transformToAxisAlignPosition,J as transformToDrawingPosition};
1
+ import{CURSOR_TYPE as e,DRAWING_OBJECT_LAYER_INDEX as t,IRenderManagerService as n,ObjectType as r,RENDER_CLASS_TYPE as i,Rect as a,SHEET_VIEWPORT_KEY as o,getCurrentTypeOfRenderer as s,getGroupState as c,precisionTo as l,transformObjectOutOfGroup as u}from"@univerjs/engine-render";import{COPY_TYPE as d,EditingRenderController as f,HoverManagerService as p,IEditorBridgeService as m,ISheetClipboardService as h,ISheetSelectionRenderService as g,PREDEFINED_HOOK_NAME_PASTE as _,SetCellEditVisibleOperation as v,SetScrollOperation as y,SetZoomRatioOperation as b,SheetCanvasPopManagerService as x,SheetPrintInterceptorService as S,SheetSkeletonManagerService as C,attachRangeWithCoord as w,convertPositionSheetOverGridToAbsolute as T,getCurrentRangeDisable$ as E,useHighlightRange as D,virtualizeDiscreteRanges as ee}from"@univerjs/sheets-ui";import{ArrangeTypeEnum as O,BooleanNumber as te,BuildTextUtils as k,CommandType as A,DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY as j,DOCS_NORMAL_EDITOR_UNIT_ID_KEY as M,DOCS_ZEN_EDITOR_UNIT_ID_KEY as N,DependentOn as ne,Direction as P,Disposable as F,DisposableCollection as re,DrawingTypeEnum as I,FOCUSING_COMMON_DRAWINGS as ie,FOCUSING_FX_BAR_EDITOR as ae,FOCUSING_PANEL_EDITOR as oe,FOCUSING_SHAPE_TEXT_EDITOR as se,FOCUSING_SHEET as ce,ICommandService as L,IConfigService as le,IContextService as ue,IImageIoService as de,IPermissionService as fe,IURLImageService as pe,IUndoRedoService as me,IUniverInstanceService as he,ImageSourceType as ge,Inject as R,Injector as _e,InterceptorEffectEnum as ve,LifecycleService as ye,LifecycleStages as be,LocaleService as xe,ObjectMatrix as Se,ObjectRelativeFromH as Ce,ObjectRelativeFromV as we,PRINT_CHART_COMPONENT_KEY as Te,Plugin as Ee,PositionedObjectLayoutType as De,Rectangle as Oe,RxDisposable as ke,Tools as Ae,UniverInstanceType as z,UserManagerService as je,WrapTextType as Me,createDocumentModelWithStyle as Ne,createIdentifier as Pe,fromEventSubject as Fe,generateRandomId as Ie,merge as Le,registerDependencies as Re,sequenceExecute as ze,touchDependencies as Be}from"@univerjs/core";import{DrawingApplyType as B,ISheetDrawingService as V,SetDrawingApplyMutation as H,SheetDrawingAnchorType as U,UniverSheetsDrawingPlugin as Ve}from"@univerjs/sheets-drawing";import{COMMAND_LISTENER_SKELETON_CHANGE as He,DeleteRangeMoveLeftCommand as Ue,DeleteRangeMoveUpCommand as We,DeltaColumnWidthCommand as Ge,DeltaRowHeightCommand as Ke,IAutoFillService as qe,INTERCEPTOR_POINT as Je,InsertColCommand as Ye,InsertRangeMoveDownCommand as Xe,InsertRangeMoveRightCommand as Ze,InsertRowCommand as Qe,InterceptCellContentPriority as $e,MoveColsCommand as et,MoveRangeCommand as tt,MoveRowsCommand as nt,RangeProtectionPermissionEditPoint as rt,RemoveColCommand as it,RemoveRowCommand as at,SetColHiddenCommand as ot,SetColHiddenMutation as st,SetColVisibleMutation as ct,SetColWidthCommand as lt,SetFrozenMutation as ut,SetRangeValuesCommand as dt,SetRowHeightCommand as ft,SetRowHiddenCommand as pt,SetRowHiddenMutation as mt,SetRowVisibleMutation as ht,SetSelectionsOperation as gt,SetSpecificColsVisibleCommand as _t,SetSpecificRowsVisibleCommand as vt,SetWorksheetActiveOperation as yt,SetWorksheetColWidthMutation as bt,SetWorksheetRowAutoHeightMutation as xt,SetWorksheetRowHeightMutation as St,SetWorksheetRowIsAutoHeightMutation as Ct,SheetInterceptorService as wt,SheetsSelectionsService as Tt,WorkbookEditablePermission as Et,WorkbookViewPermission as Dt,WorksheetEditPermission as Ot,WorksheetViewPermission as kt,discreteRangeToRange as At,getSheetCommandTarget as W}from"@univerjs/sheets";import{Button as jt,Checkbox as Mt,CheckboxGroup as Nt,FormLayout as Pt,MessageType as Ft,Radio as It,RadioGroup as Lt,Select as Rt,clsx as zt,render as Bt,unmount as Vt}from"@univerjs/design";import{InnerPasteCommand as Ht,ReplaceSnapshotCommand as Ut,docDrawingPositionToTransform as Wt}from"@univerjs/docs-ui";import{DRAWING_IMAGE_ALLOW_IMAGE_LIST as Gt,DRAWING_IMAGE_ALLOW_SIZE as Kt,DRAWING_IMAGE_COUNT_LIMIT as qt,DRAWING_IMAGE_HEIGHT_LIMIT as Jt,DRAWING_IMAGE_WIDTH_LIMIT as Yt,IDrawingManagerService as G,IImageIoService as Xt,ImageSourceType as Zt,ImageUploadStatusType as Qt,SetDrawingSelectedOperation as $t,UniverDrawingPlugin as en,getDrawingShapeKeyByDrawingSearch as tn,getImageSize as nn}from"@univerjs/drawing";import{CanvasFloatDomService as rn,ComponentManager as an,ContextMenuGroup as on,ContextMenuPosition as sn,IClipboardInterfaceService as cn,IContextMenuService as ln,IDialogService as un,ILocalFileService as dn,IMenuManagerService as fn,IMessageService as pn,IShortcutService as mn,ISidebarService as hn,KeyCode as gn,MenuItemType as _n,PrintFloatDomSingle as vn,RibbonInsertGroup as yn,connectInjector as bn,getMenuHiddenObservable as xn,useDependency as Sn}from"@univerjs/ui";import{DocDrawingController as Cn,UniverDocsDrawingPlugin as wn}from"@univerjs/docs-drawing";import{COMPONENT_IMAGE_POPUP_MENU as Tn,DrawingCommonPanel as En,DrawingRenderService as Dn,ImageCropperObject as On,ImageResetSizeOperation as kn,OpenImageCropOperation as An,UniverDrawingUIPlugin as jn}from"@univerjs/drawing-ui";import{BehaviorSubject as Mn,EMPTY as Nn,Subject as Pn,combineLatest as Fn,distinctUntilChanged as In,filter as Ln,map as Rn,of as zn,switchMap as Bn,take as Vn,tap as Hn,throttleTime as Un}from"rxjs";import{useCallback as Wn,useEffect as Gn,useMemo as Kn,useState as qn}from"react";import{jsx as K,jsxs as Jn}from"react/jsx-runtime";function q(e,t,n){let{from:r,to:i,flipY:a=!1,flipX:o=!1,angle:s=0,skewX:c=0,skewY:l=0}=e,u=n.getCurrent();if(u==null)return;let{left:d,top:f,width:p,height:m}=T(u.unitId,u.sheetId,{from:r,to:i},n),h=n.getCurrentSkeleton(),g=h.rowHeaderWidth+h.columnTotalWidth,_=h.columnHeaderHeight+h.rowTotalHeight;return d+p>g&&(d=g-p),f+m>_&&(f=_-m),{flipY:a,flipX:o,angle:s,skewX:c,skewY:l,left:d,top:f,width:p,height:m}}function J(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:u=0,skewY:d=0}=e,f=t.getCellWithCoordByOffset(n,r);if(f==null)return;let p={column:f.actualColumn,columnOffset:l(n-f.startX,1),row:f.actualRow,rowOffset:l(r-f.startY,1)},m=t.getCellWithCoordByOffset(n+i,r+a);if(m!=null)return{flipY:o,flipX:s,angle:c,skewX:u,skewY:d,from:p,to:{column:m.actualColumn,columnOffset:l(n+i-m.startX,1),row:m.actualRow,rowOffset:l(r+a-m.startY,1)}}}function Y(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 J(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)}const X={id:`sheet.operation.clear-drawing-transformer`,type:A.MUTATION,handler:(e,t)=>{let r=e.get(n);return t.forEach(e=>{var t;(t=r.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},Yn={id:`sheet.command.remove-sheet-image`,type:A.COMMAND,handler:(e,t)=>{var n;let r=e.get(L),i=e.get(me),a=e.get(wt),o=e.get(V);if(!t)return!1;let{drawings:s}=t,c=[];s.forEach(e=>{let{unitId:t}=e;c.push(t)});let{unitId:l,subUnitId:u,undo:d,redo:f,objects:p}=o.getBatchRemoveOp(s),m=a.onCommandExecute({id:Yn.id,params:t}),h={id:H.id,params:{unitId:l,subUnitId:u,op:f,objects:p,type:B.REMOVE}},g={id:H.id,params:{unitId:l,subUnitId:u,op:d,objects:p,type:B.INSERT}};if(ze([...(n=m.preRedos)==null?[]:n,h,...m.redos],r)){var _,v;return i.pushUndoRedo({unitID:l,undoMutations:[...(_=m.preUndos)==null?[]:_,g,...m.undos,{id:X.id,params:c}],redoMutations:[...(v=m.preRedos)==null?[]:v,h,...m.redos,{id:X.id,params:c}]}),!0}return!1}},Xn={id:`sheet.command.delete-drawing`,type:A.COMMAND,handler:e=>{let t=e.get(L),n=e.get(V).getFocusDrawings();if(n.length===0)return!1;let r=n[0].unitId,i=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(Yn.id,{unitId:r,drawings:i})}};function Zn(e){let t=[];return e.forEach(e=>{let{parent:n,children:r}=e,{unitId:i,subUnitId:a,drawingId:o}=n,s=c(0,0,r.map(e=>e.transform||{})),l=r.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:o}}),u={unitId:i,subUnitId:a,drawingId:o,drawingType:I.DRAWING_GROUP,groupBaseBound:{...n.groupBaseBound},transform:s};t.push({parent:u,children:l})}),t}function Qn(e){let t=[];return e.forEach(e=>{let{parent:n,children:r}=e,{unitId:i,subUnitId:a,drawingId:o,transform:s={width:0,height:0}}=n;if(s==null)return;let c=r.map(e=>{let{transform:t}=e,{unitId:r,subUnitId:i,drawingId:a}=e;return{unitId:r,subUnitId:i,drawingId:a,transform:u(t||{},s,s.width||0,s.height||0,n.groupBaseBound),groupId:void 0}}),l={unitId:i,subUnitId:a,drawingId:o,drawingType:I.DRAWING_GROUP,transform:{left:0,top:0}};t.push({parent:l,children:c})}),t}function $n(e){var t;let n=new Map;(t=e.flatChildren)==null||t.forEach(e=>n.set(e.drawingId,Ie(10))),e.groups.forEach(e=>n.set(e.drawingId,Ie(10)));let r={};for(let[t,o]of Object.entries(e.nestedIdRecord)){var i,a;let e=(i=n.get(t))==null?t:i;r[e]={drawingId:e,children:(a=o.children)==null?void 0:a.map(e=>{var t;return(t=n.get(e))==null?e:t})}}let o=[],s=[];for(let t of e.groups){var c,l;let e=(c=n.get(t.drawingId))==null?t.drawingId:c,r=t.groupId?(l=n.get(t.groupId))==null?t.groupId:l:void 0;s.push(er(t,e,r))}for(let t of e.flatChildren||[]){var u,d;let e=(u=n.get(t.drawingId))==null?t.drawingId:u,r=t.groupId?(d=n.get(t.groupId))==null?t.groupId:d:void 0;o.push(er(t,e,r))}return{cloned:{nestedIdRecord:r,flatChildren:o,groups:s},idMap:n}}function er(e,t,n){let r={...e};return t&&(r.drawingId=t),n?r.groupId=n:delete r.groupId,JSON.parse(JSON.stringify(r))}const tr={id:`sheet.command.group-sheet-image`,type:A.COMMAND,handler:(e,t)=>{let n=e.get(L),r=e.get(me),i=e.get(V);if(!t)return!1;let a=[];t.forEach(({parent:e,children:t})=>{a.push(e.unitId),t.forEach(e=>{a.push(e.unitId)})});let{unitId:o,subUnitId:s,undo:c,redo:l,objects:u}=i.getGroupDrawingOp(t);return n.syncExecuteCommand(H.id,{op:l,unitId:o,subUnitId:s,objects:u,type:B.GROUP})?(r.pushUndoRedo({unitID:o,undoMutations:[{id:H.id,params:{op:c,unitId:o,subUnitId:s,objects:Qn(u),type:B.UNGROUP}},{id:X.id,params:a}],redoMutations:[{id:H.id,params:{op:l,unitId:o,subUnitId:s,objects:u,type:B.GROUP}},{id:X.id,params:a}]}),!0):!1}},nr={id:`sheet.command.insert-sheet-image`,type:A.COMMAND,handler:(e,t)=>{var n;let r=e.get(L),i=e.get(me),a=e.get(V),o=e.get(wt);if(!t)return!1;let s=t.drawings,c=s.map(e=>e.unitId),{unitId:l,subUnitId:u,undo:d,redo:f,objects:p}=a.getBatchAddOp(s),m=o.onCommandExecute({id:nr.id,params:t}),h={id:H.id,params:{op:f,unitId:l,subUnitId:u,objects:p,type:B.INSERT}},g={id:H.id,params:{op:d,unitId:l,subUnitId:u,objects:p,type:B.REMOVE}};if(ze([...(n=m.preRedos)==null?[]:n,h,...m.redos],r)){var _,v;return i.pushUndoRedo({unitID:l,undoMutations:[...(_=m.preUndos)==null?[]:_,g,...m.undos,{id:X.id,params:c}],redoMutations:[...(v=m.preRedos)==null?[]:v,h,...m.redos,{id:X.id,params:c}]}),!0}return!1}},rr={id:`sheet.command.set-drawing-arrange`,type:A.COMMAND,handler:(e,t)=>{let n=e.get(L),r=e.get(me);if(!t)return!1;let i=e.get(V),{unitId:a,subUnitId:o,drawingIds:s,arrangeType:c}=t,l={unitId:a,subUnitId:o,drawingIds:s},u;if(c===O.forward?u=i.getForwardDrawingsOp(l):c===O.backward?u=i.getBackwardDrawingOp(l):c===O.front?u=i.getFrontDrawingsOp(l):c===O.back&&(u=i.getBackDrawingsOp(l)),u==null)return!1;let{objects:d,redo:f,undo:p}=u;return n.syncExecuteCommand(H.id,{op:f,unitId:a,subUnitId:o,objects:d,type:B.ARRANGE})?(r.pushUndoRedo({unitID:a,undoMutations:[{id:H.id,params:{op:p,unitId:a,subUnitId:o,objects:d,type:B.ARRANGE}}],redoMutations:[{id:H.id,params:{op:f,unitId:a,subUnitId:o,objects:d,type:B.ARRANGE}}]}),!0):!1}},ir={id:`sheet.command.set-sheet-image`,type:A.COMMAND,handler:(e,t)=>{var n,r;let i=e.get(L),a=e.get(me),o=e.get(V),s=e.get(wt);if(!t)return!1;let{drawings:c}=t,{unitId:l,subUnitId:u,undo:d,redo:f,objects:p}=o.getBatchUpdateOp(c),m=s.onCommandExecute({id:ir.id,params:t}),h=[...(n=m.preRedos)==null?[]:n,{id:H.id,params:{unitId:l,subUnitId:u,op:f,objects:p,type:B.UPDATE}},...m.redos,{id:X.id,params:[l]}],g=[...(r=m.preUndos)==null?[]:r,{id:H.id,params:{unitId:l,subUnitId:u,op:d,objects:p,type:B.UPDATE}},...m.undos,{id:X.id,params:[l]}];return ze(h,i)?(a.pushUndoRedo({unitID:l,undoMutations:g,redoMutations:h}),!0):!1}},ar={id:`sheet.command.ungroup-sheet-image`,type:A.COMMAND,handler:(e,t)=>{let n=e.get(L),r=e.get(me),i=e.get(V);if(!t)return!1;let a=[];t.forEach(({parent:e,children:t})=>{a.push(e.unitId),t.forEach(e=>{a.push(e.unitId)})});let{unitId:o,subUnitId:s,undo:c,redo:l,objects:u}=i.getUngroupDrawingOp(t);return n.syncExecuteCommand(H.id,{op:l,unitId:o,subUnitId:s,objects:u,type:B.UNGROUP})?(r.pushUndoRedo({unitID:o,undoMutations:[{id:H.id,params:{op:c,unitId:o,subUnitId:s,objects:Zn(u),type:B.GROUP}},{id:X.id,params:a}],redoMutations:[{id:H.id,params:{op:l,unitId:o,subUnitId:s,objects:u,type:B.UNGROUP}},{id:X.id,params:a}]}),!0):!1}};function or(e){"@babel/helpers - typeof";return or=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},or(e)}function sr(e,t){if(or(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(or(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function cr(e){var t=sr(e,`string`);return or(t)==`symbol`?t:t+``}function Z(e,t,n){return(t=cr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Q(e,t){return function(n,r){t(n,r,e)}}function $(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 lr(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 ur(e,t,r,i,a){var o;let{rotatedHeight:s,rotatedWidth:c}=lr(r,i,a),l=e.get(n).getRenderById(t.unitId);if(!l)return!1;let u=(o=l.with(C).getSkeletonParam(t.subUnitId))==null?void 0:o.skeleton;if(u==null)return!1;let d=u.getCellByIndex(t.row,t.col),f=d.mergeInfo.endX-d.mergeInfo.startX-2,p=d.mergeInfo.endY-d.mergeInfo.startY-2,m=c/s,h=Math.ceil(Math.min(f,p*m))/c,g=!h||Number.isNaN(h)?.001:h;return{width:r*g,height:i*g}}let dr=class extends F{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,Z(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:Gt.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>qt?(this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(qt))}),!1):t===0?!1:(e.forEach(async e=>await this.insertFloatImageByFile(e)),!0)}async insertCellImage(){let e=(await this._fileOpenerService.openFile({multiple:!1,accept:Gt.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===Qt.ERROR_EXCEED_SIZE?this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(Kt/(1024*1024)))}):t===Qt.ERROR_IMAGE_TYPE?this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===Qt.ERROR_IMAGE&&this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(n==null)return;let{unitId:r,subUnitId:i}=this._getUnitInfo(),{imageId:a,imageSourceType:o,source:s,base64Cache:c}=n,{width:l,height:u,image:d}=await nn(c||``),{width:f,height:p}=this._context.scene;this._imageIoService.addImageSourceCache(s,o,d);let m=1;if(l>Yt||u>Jt){let e=Yt/l,t=Jt/u;m=Math.max(e,t)}let h=this._getImagePosition(l*m,u*m,f,p);if(h==null)return;let g=q(h,this._selectionRenderService,this._skeletonManagerService),_={unitId:r,subUnitId:i,drawingId:a,drawingType:I.DRAWING_IMAGE,imageSourceType:o,source:s,transform:g,sheetTransform:h,axisAlignSheetTransform:(t=Y(g,this._selectionRenderService))==null?h:t};return this._commandService.executeCommand(nr.id,{unitId:r,drawings:[_]})}async _insertCellImage(e,t){let n;try{n=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===Qt.ERROR_EXCEED_SIZE?this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(Kt/(1024*1024)))}):t===Qt.ERROR_IMAGE_TYPE?this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===Qt.ERROR_IMAGE&&this._messageService.show({type:Ft.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(n==null)return!1;let{imageId:r,imageSourceType:i,source:a,base64Cache:o}=n,{width:s,height:c,image:l}=await nn(o||``);this._imageIoService.addImageSourceCache(a,i,l);let u=this._workbookSelections.getCurrentLastSelection();if(!u)return!1;let d=u.primary.actualRow,f=u.primary.actualColumn;u.primary.isMerged&&(d=u.primary.startRow,f=u.primary.startColumn);let p=Ne(``,{}),m=ur(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:d,col:f},s,c,0);if(!m)return!1;let h={size:{width:m.width,height:m.height},positionH:{relativeFrom:Ce.PAGE,posOffset:0},positionV:{relativeFrom:we.PARAGRAPH,posOffset:0},angle:0},g={unitId:p.getUnitId(),subUnitId:p.getUnitId(),drawingId:r,drawingType:I.DRAWING_IMAGE,imageSourceType:i,source:a,transform:Wt(h),docTransform:h,behindDoc:te.FALSE,title:``,description:``,layoutType:De.INLINE,wrapText:Me.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},_=k.drawing.add({documentDataModel:p,drawings:[g],selection:{collapsed:!0,startOffset:0,endOffset:0}});if(_){var v,y;return p.apply(_),this._commandService.syncExecuteCommand(dt.id,{value:{[(v=t==null?void 0:t.row)==null?d:v]:{[(y=t==null?void 0:t.col)==null?f:y]:{p:p.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:r,height:i,image:a}=await nn(n||``);this._imageIoService.addImageSourceCache(e,ge.URL,a);let o=this._workbookSelections.getCurrentLastSelection();if(!o)return!1;let s=Ne(``,{}),c=ur(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:o.primary.actualRow,col:o.primary.actualColumn},r,i,0);if(!c)return!1;let l={size:{width:c.width,height:c.height},positionH:{relativeFrom:Ce.PAGE,posOffset:0},positionV:{relativeFrom:we.PARAGRAPH,posOffset:0},angle:0},u={unitId:s.getUnitId(),subUnitId:s.getUnitId(),drawingId:Ie(),drawingType:I.DRAWING_IMAGE,imageSourceType:ge.URL,source:e,transform:Wt(l),docTransform:l,behindDoc:te.FALSE,title:``,description:``,layoutType:De.INLINE,wrapText:Me.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},d=k.drawing.add({documentDataModel:s,drawings:[u],selection:{collapsed:!0,startOffset:0,endOffset:0}});if(d){var f,p;return s.apply(d),this._commandService.syncExecuteCommand(dt.id,{value:{[(f=t==null?void 0:t.row)==null?o.primary.actualRow:f]:{[(p=t==null?void 0:t.col)==null?o.primary.actualColumn:p]:{p:s.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,n,r){let i=this._workbookSelections.getCurrentSelections(),a={startRow:0,endRow:0,startColumn:0,endColumn:0};i&&i.length>0&&(a=i[i.length-1].range);let o=w(this._skeletonManagerService.getCurrent().skeleton,a);if(o==null)return;let{startColumn:s,startRow:c,startX:l,startY:u}=o,d=!1;if(l+e>n&&(l=n-e,l<0&&(l=0,e=n),d=!0),u+t>r&&(u=r-t,u<0&&(u=0,t=r),d=!0),d){let e=this._selectionRenderService.getCellWithCoordByOffset(l,u);if(e==null)return;l=e.startX,u=e.startY,s=e.actualColumn,c=e.actualRow}let f={column:s,columnOffset:0,row:c,rowOffset:0},p=this._selectionRenderService.getCellWithCoordByOffset(l+e,u+t);if(p!=null)return{from:f,to:{column:p.actualColumn,columnOffset:l+e-p.startX,row:p.actualRow,rowOffset:u+t-p.startY}}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(rr.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=J({...s.transform,...o},this._selectionRenderService),l=Y({...s.transform,...o},this._selectionRenderService);if(c==null||l==null)return;let u={...e,transform:{...s.transform,...o,...q(c,this._selectionRenderService,this._skeletonManagerService)},sheetTransform:{...c},axisAlignSheetTransform:{...l}};t.push(u)}),t.length>0&&this._commandService.executeCommand(ir.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=J({...s,...a},this._selectionRenderService),l=Y({...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(tr.id,t);let{unitId:n,subUnitId:r,drawingId:i}=e[0].parent;this._commandService.syncExecuteCommand($t.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(ar.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue(ie,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue(ie,!0),this._sheetDrawingService.focusDrawing(e))}))}};dr=$([Q(1,R(C)),Q(2,L),Q(3,g),Q(4,Xt),Q(5,dn),Q(6,V),Q(7,G),Q(8,ue),Q(9,pn),Q(10,R(xe)),Q(11,R(Tt)),Q(12,R(_e)),Q(13,pe)],dr);const fr={id:`sheet.command.insert-float-image`,type:A.COMMAND,handler:async(e,t)=>{var r;let i=e.get(he),a=e.get(n),o=(r=s(z.UNIVER_SHEET,i,a))==null?void 0:r.with(dr);if(!o)return!1;let c=t==null?void 0:t.files;if(c){let e=c.map(e=>o.insertFloatImageByFile(e));return(await Promise.all(e)).every(e=>e)}else{var l;return(l=o.insertFloatImage())==null?!1:l}}},pr={id:`sheet.command.insert-cell-image`,type:A.COMMAND,handler:e=>{var t,r;let i=e.get(he),a=e.get(n);return(t=(r=s(z.UNIVER_SHEET,i,a))==null?void 0:r.with(dr).insertCellImage())==null?!1:t}},mr={id:`sheet.command.move-drawing`,type:A.COMMAND,handler:(e,t)=>{let n=e.get(L),r=e.get(V),i=e.get(g),{direction:a}=t,o=r.getFocusDrawings();if(o.length===0)return!1;let s=o[0].unitId,c=o.map(e=>{let{transform:t}=e;if(t==null)return null;let n={...t},{left:r=0,top:o=0}=t;return a===P.UP?n.top=o-1:a===P.DOWN?n.top=o+1:a===P.LEFT?n.left=r-1:a===P.RIGHT&&(n.left=r+1),{...e,transform:n,sheetTransform:J(n,i),axisAlignSheetTransform:Y(n,i)}}).filter(e=>e!=null);return n.syncExecuteCommand(ir.id,{unitId:s,drawings:c})?(n.syncExecuteCommand(X.id,[s]),!0):!1}};let hr=function(e){return e.CELL_ADDRESS=`cellAddress`,e.COLUMN_VALUE=`columnValue`,e}({});const gr=Pe(`sheets-drawing-ui.batch-save-images.service`);function _r(e){let t=``,n=e;for(;n>=0;)t=String.fromCharCode(n%26+65)+t,n=Math.floor(n/26)-1;return t}function vr(e,t){return`${_r(t)}${e+1}`}function yr(e){let t=vr(e.startRow,e.startColumn),n=vr(e.endRow,e.endColumn);return t===n?t:`${t}:${n}`}function br(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 xr(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 Sr(e,t){if(t===ge.BASE64){let t=e.match(/^data:image\/(\w+);/);if(t)return t[1]===`jpeg`?`jpg`:t[1]}if(t===ge.URL){let t=e.match(/\.(\w+)(?:\?|$)/);if(t)return t[1].toLowerCase()}return`png`}async function Cr(e,t){if(t===ge.BASE64||t===ge.URL)return(await fetch(e)).blob();throw Error(`UUID image type requires additional handling`)}let wr=class extends F{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(z.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let r=t.getCellMatrix(),i=[];for(let e of n){let{startRow:t,endRow:n,startColumn:a,endColumn:o}=e.range;for(let e=t;e<=n;e++)for(let t=a;t<=o;t++){let n=r.getValue(e,t);if(br(n)){let r=xr(n);r&&i.push({row:e,col:t,cellAddress:vr(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return i}getCellImagesFromRanges(e,t,n){let r=this._univerInstanceService.getUnit(e,z.UNIVER_SHEET);if(!r)return[];let i=r.getSheetBySheetId(t);if(!i)return[];let a=i.getCellMatrix(),o=[];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=a.getValue(e,t);if(br(n)){let r=xr(n);r&&o.push({row:e,col:t,cellAddress:vr(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return o}getDataColumns(){let e=this._univerInstanceService.getCurrentUnitForType(z.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let r=t.getCellMatrix(),i=r.getDataRange(),a=1/0,o=-1/0,s=new Set;for(let e of n){a=Math.min(a,e.range.startRow),o=Math.max(o,e.range.endRow);for(let t=e.range.startColumn;t<=e.range.endColumn;t++)s.add(t)}let c=new Set;for(let e=i.startColumn;e<=i.endColumn;e++)if(!s.has(e))for(let t=a;t<=o;t++){let n=r.getValue(t,e);if(n){var l,u;if((l=n.v)!=null&&l.toString()||!((u=n.p)==null||(u=u.body)==null||(u=u.dataStream)==null)&&u.trim()){c.add(e);break}}}let d=[],f=Array.from(c).sort((e,t)=>e-t);for(let e of f)d.push({index:e,label:_r(e)});return d}getDataColumnsForRanges(e,t,n){let r=this._univerInstanceService.getUnit(e,z.UNIVER_SHEET);if(!r)return[];let i=r.getSheetBySheetId(t);if(!i)return[];let a=i.getCellMatrix(),o=a.getDataRange(),s=1/0,c=-1/0,l=new Set;for(let e of n){s=Math.min(s,e.startRow),c=Math.max(c,e.endRow);for(let t=e.startColumn;t<=e.endColumn;t++)l.add(t)}let u=new Set;for(let e=o.startColumn;e<=o.endColumn;e++)if(!l.has(e))for(let t=s;t<=c;t++){let n=a.getValue(t,e);if(n){var d,f;if((d=n.v)!=null&&d.toString()||!((f=n.p)==null||(f=f.body)==null||(f=f.dataStream)==null)&&f.trim()){u.add(e);break}}}let p=[],m=Array.from(u).sort((e,t)=>e-t);for(let e of m)p.push({index:e,label:_r(e)});return p}getSelectionRangeNotation(){let e=this._selectionService.getCurrentSelections();return!e||e.length===0?``:e.map(e=>yr(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(z.UNIVER_SHEET),r=Sr(e.source,e.imageSourceType),i=[];for(let r of t.fileNameParts)if(r===hr.CELL_ADDRESS)i.push(e.cellAddress);else if(r===hr.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 a,o;let e=((a=n.v)==null?void 0:a.toString())||((o=n.p)==null||(o=o.body)==null||(o=o.dataStream)==null?void 0:o.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&i.push(t)}}}}return i.length===0?`${e.cellAddress}.${r}`:`${i.join(`_`)}.${r}`}generateFileNameWithContext(e,t,n,r){let i=this._univerInstanceService.getUnit(n,z.UNIVER_SHEET),a=Sr(e.source,e.imageSourceType),o=[];for(let n of t.fileNameParts)if(n===hr.CELL_ADDRESS)o.push(e.cellAddress);else if(n===hr.COLUMN_VALUE&&t.columnIndex!==void 0){let n=i==null?void 0:i.getSheetBySheetId(r);if(n){let r=n.getCellMatrix().getValue(e.row,t.columnIndex);if(r){var s,c;let e=((s=r.v)==null?void 0:s.toString())||((c=r.p)==null||(c=c.body)==null||(c=c.dataStream)==null?void 0:c.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&o.push(t)}}}}return o.length===0?`${e.cellAddress}.${a}`:`${o.join(`_`)}.${a}`}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=Sr(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===ge.UUID?Cr(await this._imageIoService.getImage(e.source),ge.URL):e.imageSourceType===ge.URL?this._urlImageService.downloadImage(e.source):Cr(e.source,e.imageSourceType)}};wr=$([Q(0,he),Q(1,R(Tt)),Q(2,de),Q(3,pe)],wr);const Tr=`sheet.dialog.batch-save-images`,Er={id:`sheet.command.save-cell-images`,type:A.COMMAND,handler:async e=>{let t=e.get(un),n=e.get(gr),r=n.getCellImagesInSelection();if(r.length===1)try{return await n.downloadSingleImage(r[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let i=e.get(xe),a=n.getSelectionRangeNotation(),o=`${i.t(`sheetImage.save.title`)} (${a})`;return t.open({id:Tr,draggable:!0,width:360,title:{title:o},children:{label:Tr},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>t.close(Tr)}),!0}},Dr=`COMPONENT_SHEET_DRAWING_PANEL`,Or={id:`sidebar.operation.sheet-image`,type:A.COMMAND,handler:async(e,t)=>{let n=e.get(hn),r=e.get(xe),i=e.get(he),a=e.get(L);if(!W(i))return!1;switch(t.value){case`open`:n.open({header:{title:r.t(`sheetImage.panel.title`)},children:{label:Dr},onClose:()=>{a.syncExecuteCommand($t.id,[])},width:360});break;default:n.close();break}return!0}},kr={id:`sheet.operation.edit-sheet-image`,type:A.OPERATION,handler:(e,t)=>{let n=e.get(L);return t==null?!1:(n.syncExecuteCommand($t.id,[t]),n.executeCommand(Or.id,{value:`open`}),!0)}},Ar=[_.SPECIAL_PASTE_COL_WIDTH,_.SPECIAL_PASTE_VALUE,_.SPECIAL_PASTE_FORMAT,_.SPECIAL_PASTE_FORMULA];let jr=class extends F{constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetDrawingService=n,this._drawingManagerService=r,Z(this,`_featurePasteHooks`,[]),Z(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 r=n.find(e=>e.drawingType===I.DRAWING_GROUP);if(!r)return;let i=this._drawingManagerService.getDrawingsByGroupNested({unitId:r.unitId,subUnitId:r.subUnitId,drawingId:r.drawingId});i&&(this._copyInfo={unitId:r.unitId,subUnitId:r.subUnitId,groupNestedParam:i})},onPasteCells:(e,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{pasteType:i}=r;return Ar.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:n,subUnitId:r,range:i}=e,a=this._renderManagerService.getRenderById(n),o=a==null?void 0:a.with(C),s=a==null?void 0:a.with(g);if(!o||!s||!this._copyInfo)return{redos:[],undos:[]};let{groupNestedParam:c}=this._copyInfo,l=c.groups[c.groups.length-1],{cloned:u,idMap:d}=$n(c),f=u.groups[u.groups.length-1].drawingId,p=At(i),m=o.attachRangeWithCoord({startRow:p.startRow,endRow:p.endRow,startColumn:p.startColumn,endColumn:p.endColumn});if(!m)return{redos:[],undos:[]};let h={...l.transform,left:m.startX,top:m.startY},_=[...((t=u.flatChildren)==null?[]:t).map(e=>({...e,unitId:n,subUnitId:r})),...u.groups.map(e=>{var t,i;return e.drawingId===f?{...e,unitId:n,subUnitId:r,transform:h,sheetTransform:(t=J(h,s))==null?l.sheetTransform:t,axisAlignSheetTransform:(i=Y(h,s))==null?l.sheetTransform:i}:{...e,unitId:n,subUnitId:r}})],{undo:v,redo:y,objects:b}=this._sheetDrawingService.getBatchAddOp(_),x=[{id:H.id,params:{op:y,unitId:n,subUnitId:r,objects:b,type:B.INSERT}}],S=[{id:H.id,params:{op:v,unitId:n,subUnitId:r,objects:b,type:B.REMOVE}}],w=this._getGroupFeaturePasteMutations({fromUnitId:this._copyInfo.unitId,fromSubUnitId:this._copyInfo.subUnitId,toUnitId:n,toSubUnitId:r,idMap:d,cloned:u});return x.push(...w.redos),S.push(...w.undos),{redos:x,undos:S}}dispose(){this._copyInfo=null,this._featurePasteHooks.length=0,super.dispose()}};jr=$([Q(0,h),Q(1,n),Q(2,V),Q(3,G)],jr);const Mr=`sheet.menu.image`;function Nr(e){return{id:Mr,type:_n.SUBITEMS,icon:`AddImageIcon`,tooltip:`sheetImage.title`,hidden$:xn(e,z.UNIVER_SHEET),disabled$:E(e,{workbookTypes:[Et],worksheetTypes:[Ot],rangeTypes:[rt]})}}function Pr(e){return{id:fr.id,title:`sheetImage.upload.float`,type:_n.BUTTON,hidden$:xn(e,z.UNIVER_SHEET)}}function Fr(e){return{id:pr.id,title:`sheetImage.upload.cell`,type:_n.BUTTON,hidden$:xn(e,z.UNIVER_SHEET)}}var Ir=`@univerjs/sheets-drawing-ui`,Lr=`0.19.0`;const Rr=`sheets-drawing-ui.config`;Symbol(Rr);const zr={};let Br=class extends ke{constructor(e,t,n,r){super(),this._drawingManagerService=e,this._contextMenuService=t,this._renderManagerService=n,this._univerInstanceService=r,this._init()}_init(){this._univerInstanceService.getAllUnitsForType(z.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,sn.DRAWING)}}))}};Br=$([Q(0,G),Q(1,ln),Q(2,n),Q(3,he)],Br);let Vr=class extends F{constructor(e,t,n,r,i){super(),this._context=e,this._hoverManagerService=t,this._selectionsService=n,this._drawingRenderService=r,this._sheetSkeletonManagerService=i,Z(this,`_isSetCursor`,!1),this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe(Un(33)).subscribe(t=>{var n,r;let i=[];t!==null&&(i=this._selectionsService.getWorkbookSelections(this._context.unitId).getCurrentSelections()),i.length>0&&(t==null?void 0:t.unitId)===this._context.unitId&&t!=null&&t.drawing&&i.length===1&&((n=i[0].primary)==null?void 0:n.actualRow)===t.row&&((r=i[0].primary)==null?void 0:r.actualColumn)===t.col?(this._isSetCursor=!0,this._context.scene.setCursor(e.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}}))}};Vr=$([Q(1,R(p)),Q(2,R(Tt)),Q(3,R(Dn)),Q(4,R(C))],Vr);let Hr=class extends F{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=q(t.sheetTransform,this._sheetSelectionRenderService,this._sheetSkeletonManagerService))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};Hr=$([Q(1,V),Q(2,G),Q(3,R(g)),Q(4,R(C))],Hr);function Ur(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=ur(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 Wr=class extends F{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(M),this._docDrawingController.loadDrawingDataForUnit(M),this._drawingManagerService.initializeNotification(M)):this._drawingManagerService.removeDrawingDataForUnit(M)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{e.id===Ut.id&&e.params.unitId===N&&(this._drawingManagerService.removeDrawingDataForUnit(N),this._docDrawingController.loadDrawingDataForUnit(N),this._drawingManagerService.initializeNotification(N))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(Je.CELL_CONTENT,{effect:ve.Style,priority:$e.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},Ur(this._injector,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},e)),n(e)}}))}};Wr=$([Q(0,L),Q(1,R(wt)),Q(2,R(_e)),Q(3,G),Q(4,R(Cn)),Q(5,R(m))],Wr);let Gr=class extends F{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,r)=>{new Se(r).forValue((t,n,r)=>{Ur(this._injector,{unitId:e.unitId,subUnitId:e.subUnitId,row:t,col:n},r)})}}))}};Gr=$([Q(0,R(qe)),Q(1,R(_e))],Gr);const Kr=[M,j,N];let qr=class extends F{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 t;let n=Ne(``,{}),r=(t=s(z.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService))==null?void 0:t.with(f),i=k.drawing.add({documentDataModel:n,drawings:[e],selection:{collapsed:!0,startOffset:0,endOffset:0}});i&&(n.apply(i),r&&r.submitCellData(n))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===Ht.id){var t;let{doc:r}=e.params,i=this._univerInstanceService.getCurrentUnitOfType(z.UNIVER_DOC);if(i==null||!Object.keys((t=r.drawings)==null?{}:t).length)return;let a=i.getUnitId();if(Kr.includes(a)){if(a!==N){var n;let e=()=>{this._dialogService.close(`sheet-cell-image-copy-paste`),this._commandService.syncExecuteCommand(v.id,{visible:!1})};((n=i.getBody())==null?void 0:n.dataStream)===`\r
2
+ `?(this._commandService.syncExecuteCommand(v.id,{visible:!1}),this._setCellImage(Object.values(r.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(r.drawings)[0])},onCancel:e})}throw Error(`Sheet cell image copy paste is not supported in this unit`)}}}))}};qr=$([Q(0,L),Q(1,he),Q(2,un),Q(3,n),Q(4,R(xe))],qr);const Jr=`image/png`;function Yr(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:Jr})}function Xr(e){let t=new ClipboardItem({[Jr]:Yr(e)});navigator.clipboard.write([t]).catch(e=>{console.error(`Could not copy image using clipboard API: `,e)})}function Zr(){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()}}const Qr=[_.SPECIAL_PASTE_COL_WIDTH,_.SPECIAL_PASTE_VALUE,_.SPECIAL_PASTE_FORMAT,_.SPECIAL_PASTE_FORMULA];let $r=class extends F{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._drawingService=n,this._clipboardInterfaceService=r,this._commandService=i,Z(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._drawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_IMAGE_UI_PLUGIN`,onBeforeCopy:(e,t,n,r)=>{this._copyInfo=null;let i=this._focusedDrawings;if(i.length>0){let[t]=i;if(t.drawingType!==I.DRAWING_IMAGE)return;if(r===d.CUT){let n={unitId:e,drawings:[t]};this._commandService.executeCommand(Yn.id,n)}setTimeout(()=>{let e=Zr();t.drawingType===I.DRAWING_IMAGE&&t.imageSourceType===Zt.BASE64?Xr(t.source):this._clipboardInterfaceService.writeText(``),e()},200),this._copyInfo={unitId:t.unitId,subUnitId:t.subUnitId,drawings:[t]}}else this._copyInfo=this._createDrawingsCopyInfoByRange(e,t,n)},onPasteCells:(e,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{copyType:i=d.COPY,pasteType:a}=r,{range:o}=e||{},{range:s,unitId:c,subUnitId:l}=t;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({pasteType:a,unitId:c,subUnitId:l,pasteRange:s},{copyRange:o,copyType:i}):this._generateSingleDrawingPasteMutations({pasteTo:t,pasteType:a},d.COPY)},onPastePlainText:(e,t)=>({undos:[],redos:[]}),onPasteUnrecognized:e=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:_.DEFAULT_PASTE},d.COPY):{undos:[],redos:[]},onPasteFiles:(e,t)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:_.DEFAULT_PASTE},d.COPY);{let e=t.filter(e=>e.type.includes(`image`));if(e.length)return{undos:[],redos:[{id:fr.id,params:{files:e}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(e,t,n){var r;let i=(r=this._renderManagerService.getRenderById(e))==null?void 0:r.with(C);if(!i)return;let a=i.attachRangeWithCoord(n);if(!a)return;let{startX:o,endX:s,startY:c,endY:l}=a,u=this._drawingService.getDrawingData(e,t),d=this._focusedDrawings.slice();if(Object.keys(u).forEach(e=>{let t=u[e];if(t.drawingType!==I.DRAWING_IMAGE)return;let{transform:n}=t;if(t.anchorType!==U.Both||!n)return;let{left:r=0,top:i=0,width:a=0,height:f=0}=n,{drawingStartX:p,drawingEndX:m,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+a,drawingStartY:i,drawingEndY:i+f};o<=p&&m<=s&&c<=h&&g<=l&&d.push(t)}),d.length)return{copyRange:n,drawings:d,unitId:e,subUnitId:t}}_generateSingleDrawingPasteMutations(e,t){let{pasteType:n,pasteTo:r}=e;if(Qr.includes(n))return{redos:[],undos:[]};let{unitId:i,subUnitId:a,range:o}=r,s=this._renderManagerService.getRenderById(i),c=s==null?void 0:s.with(C),l=s==null?void 0:s.with(g),u=this._copyInfo;if(!c||!l)return{redos:[],undos:[]};let{drawings:f}=u,p=At(o);return this._generateMutations(f,{unitId:i,subUnitId:a,isCut:t===d.CUT,getTransform:(e,t)=>{var n,r;let i=c.attachRangeWithCoord({startRow:p.startRow,endRow:p.endRow,startColumn:p.startColumn,endColumn:p.endColumn}),a={...e,left:i==null?void 0:i.startX,top:i==null?void 0:i.startY};return{transform:a,sheetTransform:(n=J(a,l))==null?t:n,axisAlignSheetTransform:(r=Y(a,l))==null?t:r}}})}_generateMutations(e,t){let{unitId:n,subUnitId:r,getTransform:i,isCut:a}=t,o=[],s=[],{_drawingService:c}=this;return e.forEach(e=>{let{transform:t,sheetTransform:l}=e;if(!t)return;let u=i(t,l),d={...e,unitId:n,subUnitId:r,drawingId:a?e.drawingId:Ie(),transform:u.transform,sheetTransform:u.sheetTransform,axisAlignSheetTransform:u.axisAlignSheetTransform};if(a){let{undo:e,redo:t,objects:i}=c.getBatchUpdateOp([d]);o.push({id:H.id,params:{unitId:n,subUnitId:r,type:B.UPDATE,op:t,objects:i}}),s.push({id:H.id,params:{unitId:n,subUnitId:r,type:B.UPDATE,op:e,objects:i}})}else{let{undo:e,redo:t,objects:i}=c.getBatchAddOp([d]);o.push({id:H.id,params:{op:t,unitId:n,subUnitId:r,objects:i,type:B.INSERT}}),s.push({id:H.id,params:{op:e,unitId:n,subUnitId:r,objects:i,type:B.REMOVE}})}}),{redos:o,undos:s}}_generateRangeDrawingsPasteMutations(e,t){var n;let{unitId:r,subUnitId:i,pasteType:a,pasteRange:o}=e,{copyRange:s,copyType:c}=t;if(Qr.includes(a))return{redos:[],undos:[]};let l=(n=this._renderManagerService.getRenderById(r))==null?void 0:n.with(C);if(!l||!this._copyInfo)return{redos:[],undos:[]};let{drawings:u}=this._copyInfo;if(!s)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:r,subUnitId:i,range:At(o)},pasteType:a},c);let{ranges:[f,p],mapFunc:m}=ee([s,o]),{row:h,col:_}=m(f.startRow,f.startColumn),{row:v,col:y}=m(p.startRow,p.startColumn),b=l.attachRangeWithCoord({startRow:h,endRow:h,startColumn:_,endColumn:_}),x=l.attachRangeWithCoord({startRow:v,endRow:v,startColumn:y,endColumn:y});if(!b||!x||!this._copyInfo)return{redos:[],undos:[]};let S=x.startX-b.startX,w=x.startY-b.startY,T=v-h,E=y-_;return this._generateMutations(u,{unitId:r,subUnitId:i,getTransform:(e,t)=>{var n,i,a;let o={...e,left:((n=e==null?void 0:e.left)==null?0:n)+S,top:((i=e==null?void 0:e.top)==null?0:i)+w},s=this._renderManagerService.getRenderById(r),c=s==null?void 0:s.with(g);return c?{transform:o,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:(a=Y(o,c))==null?t:a}:{transform:o,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:c===d.CUT})}};$r=$([Q(0,h),Q(1,n),Q(2,G),Q(3,cn),Q(4,L)],$r);let ei=class extends F{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$(z.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=Fn([e,t]);this.disposeWithMe(n.pipe(Bn(([e,t])=>e?e.activeSheet$.pipe(Hn(t=>{if(!t){this._drawingManagerService.setDrawingVisible(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new Dt(n).id,new kt(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(e,t)})):(this._drawingManagerService.setDrawingVisible(!1),Nn))).subscribe())}_handleDrawingVisibilityFalse(e,t){this._drawingManagerService.setDrawingVisible(!1);let n=e.getUnitId(),r=t.getSheetId(),a=this._drawingManagerService.getDrawingData(n,r),o=Object.values(a),s=this._renderManagerService.getRenderById(n),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===i.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.removeObject(e)})}_initDrawingEditable(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(z.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=Fn([e,t]);this.disposeWithMe(n.pipe(Bn(([e,t])=>e?e.activeSheet$.pipe(Hn(t=>{if(!t){this._drawingManagerService.setDrawingEditable(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new Et(n).id,new Ot(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingEditable(!0):this._handleDrawingEditableFalse(e,t)})):(this._drawingManagerService.setDrawingEditable(!1),Nn))).subscribe())}_handleDrawingEditableFalse(e,t){this._drawingManagerService.setDrawingEditable(!1);let n=e.getUnitId(),r=t.getSheetId(),a=this._drawingManagerService.getDrawingData(n,r),o=Object.values(a),s=this._renderManagerService.getRenderById(n),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===i.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.detachTransformerFrom(e)})}_initViewPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(z.UNIVER_SHEET),t=this._userManagerService.currentUser$;this.disposeWithMe(Fn([e,t]).pipe(Bn(([e,t])=>e?e.activeSheet$.pipe(Bn(t=>{if(!t)return Nn;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(!a)return Nn;let o=a.getTransformerByCreate();return this._permissionService.composePermission$([new Dt(n).id,new kt(n,r).id]).pipe(Rn(e=>e.every(e=>e.value)),In()).pipe(Rn(e=>({permission:e,scene:a,transformer:o,unitId:n,subUnitId:r})))})):Nn)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:r,subUnitId:a})=>{this._drawingManagerService.setDrawingVisible(e);let o=t.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(r,a),c=Object.values(s);e?this._drawingManagerService.addNotification(c):(o.forEach(e=>{e.classType===i.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&t.removeObject(e)}),n.clearSelectedObjects())},complete:()=>{this._drawingManagerService.setDrawingVisible(!0);let e=this._univerInstanceService.getCurrentUnitForType(z.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet(),n=e==null?void 0:e.getUnitId(),r=t==null?void 0:t.getSheetId();if(!n||!r)return;let i=this._drawingManagerService.getDrawingData(n,r),a=Object.values(i);this._drawingManagerService.addNotification(a)}}))}_initEditPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(z.UNIVER_SHEET),t=this._userManagerService.currentUser$;this.disposeWithMe(Fn([e,t]).pipe(Bn(([e,t])=>e?e.activeSheet$.pipe(Bn(t=>{if(!t)return Nn;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(!a)return Nn;let o=a.getTransformerByCreate();return this._permissionService.composePermission$([new Et(n).id,new Ot(n,r).id]).pipe(Rn(e=>e.every(e=>e.value)),In()).pipe(Rn(e=>({permission:e,scene:a,transformer:o,unitId:n,subUnitId:r})))})):Nn)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:r,subUnitId:a})=>{this._drawingManagerService.setDrawingEditable(e);let o=t.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(r,a),c=Object.values(s);e?(o.forEach(e=>{e.classType===i.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&t.attachTransformerTo(e)}),this._drawingManagerService.addNotification(c)):(o.forEach(e=>{e.classType===i.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&t.detachTransformerFrom(e)}),n.clearSelectedObjects())},complete:()=>{let e=this._univerInstanceService.getCurrentUnitForType(z.UNIVER_SHEET);if(!e)return;let t=e.getUnitId(),n=e.getActiveSheet();if(!n)return;let r=n.getSheetId(),a=this._renderManagerService.getRenderById(t),o=a==null?void 0:a.scene;if(!o)return;let s=this._drawingManagerService.getDrawingData(t,r),c=Object.values(s);this._drawingManagerService.setDrawingEditable(!0),o.getAllObjectsByOrder().forEach(e=>{e.classType===i.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&o.detachTransformerFrom(e)})}}))}};ei=$([Q(0,G),Q(1,n),Q(2,fe),Q(3,he),Q(4,R(je))],ei);var ti=function(e){return e.ALL=`ALL`,e.HORIZONTAL=`HORIZONTAL`,e.VERTICAL=`VERTICAL`,e}(ti||{});const ni=`univer-sheet-float-dom-`;function ri(e,t,n,r,i,a=!1){let{scaleX:s,scaleY:c}=t.getAncestorScale(),l=t.getViewport(o.VIEW_MAIN),{startColumn:u,startRow:d,xSplit:f,ySplit:p}=r.getFreeze(),m={left:!0,top:!0};if(!l)return{...e,absolute:m};let{left:h,right:g,top:_,bottom:v}=e,{top:y,left:b,viewportScrollX:x,viewportScrollY:S}=l,{boundsOfViewArea:C,scrollDirectionResponse:w}=i||{},{rowHeaderWidth:T,columnHeaderHeight:E}=n,D={top:a?0:E,left:a?0:T};C&&(Ae.isDefine(D.top)&&(D.top=C.top),Ae.isDefine(D.left)&&(D.left=C.left)),w===ti.HORIZONTAL&&(S=0),w===ti.VERTICAL&&(x=0);let ee=0,O=0,te=n.rowStartY(d-p)+E,k=n.colStartX(u-f)+T,A=n.rowStartY(d)+E,j=n.colStartX(u)+T;if(f===0)m.left=!1,ee=(h-x)*s,O=(g-x)*s;else{let e=h-(k-T),t=g-(k-T);g<j?(ee=e*s,O=t*s):h<=j&&g>=j?(ee=e*s,O=Math.max(b,(g-x)*s)):h>j&&(m.left=!1,ee=Math.max((h-x)*s,b),O=Math.max((g-x)*s,b))}let M=0,N=0;if(p===0)m.top=!1,M=(_-S)*c,N=(v-S)*c;else{let e=_-(te-E),t=v-(te-E);v<A?(M=e*c,N=t*c):_<=A&&v>=A?(M=e*c,N=Math.max(y,(v-S)*c)):_>A&&(m.top=!1,M=Math.max((_-S)*c,y),N=Math.max((v-S)*c,y))}return ee=Math.max(ee,D.left),M=Math.max(M,D.top),O=Math.max(O,D.left),N=Math.max(N,D.top),{left:ee,right:O,top:M,bottom:N,absolute:m}}const ii=(e,t,n,r,i)=>{let{left:a,top:o,width:s,height:c,angle:l}=e,u=ri({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}};let ai=class extends F{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,Z(this,`_domLayerInfoMap`,new Map),Z(this,`_transformChange$`,new Pn),Z(this,`transformChange$`,this._transformChange$.asObservable()),Z(this,`_add$`,new Pn),Z(this,`add$`,this._add$.asObservable()),Z(this,`_remove$`,new Pn),Z(this,`remove$`,this._remove$.asObservable()),this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe(Ln(e=>e===be.Rendered),Vn(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 n;let{unitId:i,subUnitId:o,drawingId:s}=e,c=W(this._univerInstanceService,{unitId:i,subUnitId:o}),l=this._drawingManagerService.getDrawingByParam(e),u=this._univerInstanceService.getUnit(i,z.UNIVER_SHEET);if(!u)return;let d=u.getActiveSheet().getSheetId();if(!l||!c)return;let f=(n=this._renderManagerService.getRenderById(i))==null?void 0:n.with(C).getSkeletonParam(o);if(!f)return;let{transform:p,drawingType:m,data:h}=l;if(m!==I.DRAWING_DOM&&m!==I.DRAWING_CHART)return;let g=this._getSceneAndTransformerByDrawingSearch(i);if(g==null)return;let{scene:_,canvas:v}=g;if(p==null)return!0;if(d!==o)return;let{left:y,top:b,width:x,height:S,angle:w,flipX:T,flipY:E,skewX:D,skewY:ee}=p,O=tn({unitId:i,subUnitId:o,drawingId:s}),te=_.getObject(O);if(te!=null){te.transformByState({left:y,top:b,width:x,height:S,angle:w,flipX:T,flipY:E,skewX:D,skewY:ee});return}let k={left:y,top:b,width:x,height:S,zIndex:this._drawingManagerService.getDrawingOrder(i,o).length-1},A=m===I.DRAWING_CHART;k.rotateEnabled=!1,A&&(k.fill=h?h.backgroundColor:`white`,h&&h.border&&(k.stroke=h.border),k.paintFirst=`stroke`,k.strokeWidth=1,k.borderEnabled=!1,k.radius=8);let j=new a(O,k);A&&j.setObjectType(r.CHART),_.addObject(j,t),l.allowTransform!==!1&&_.attachTransformerTo(j);let M=new re,N=new Mn(ii(j,g.renderUnit.scene,f.skeleton,c.worksheet)),ne=`${ni}${Ie(6)}`,P={dispose:M,rect:j,position$:N,unitId:i,subUnitId:o,id:s,domId:ne};this._canvasFloatDomService.addFloatDom({position$:N,id:s,domId:ne,componentKey:l.componentKey,onPointerDown:e=>{v.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{v.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{v.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{v.dispatchEvent(new WheelEvent(e.type,e))},data:h,unitId:i});let F=j.onTransformChange$.subscribeEvent(()=>{let e=ii(j,g.renderUnit.scene,f.skeleton,c.worksheet);N.next(e)});M.add(()=>{this._canvasFloatDomService.removeFloatDom(s)}),F&&M.add(F),this._domLayerInfoMap.set(s,P)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=tn({unitId:t,subUnitId:n,drawingId:r}),a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{transformer:o,scene:s}=a,c=s.getObject(i);if(c!=null&&c.oKey){var l;o.clearControlByIds([c==null?void 0:c.oKey]),(l=s.getTransformer())==null||l.clearSelectedObjects()}})}))}_scrollUpdateListener(){let e=(e,t)=>{var n;let r=this._getSceneAndTransformerByDrawingSearch(e),i=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),a=W(this._univerInstanceService,{unitId:e,subUnitId:t}),o=(n=this._renderManagerService.getRenderById(e))==null?void 0:n.with(C).getSkeletonParam(t);!r||!a||!o||i.forEach(e=>{let t=this._domLayerInfoMap.get(e);if(t){let e=ii(t.rect,r.renderUnit.scene,o.skeleton,a.worksheet,t);t.position$.next(e)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(z.UNIVER_SHEET).pipe(Bn(e=>e?e.activeSheet$:zn(null)),Rn(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t,subUnitId:e.getSheetId()}:null}),Bn(e=>e?Fe(e.render.scene.getViewport(o.VIEW_MAIN).onScrollAfter$).pipe(Rn(()=>({unitId:e.unitId,subUnitId:e.subUnitId}))):zn(null))).subscribe(t=>{if(!t)return;let{unitId:n,subUnitId:r}=t;e(n,r)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===b.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===ut.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}else if(t.id===gt.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}}))}updateFloatDomProps(e,t,n,r){let i=this._domLayerInfoMap.get(n),o=this._getSceneAndTransformerByDrawingSearch(e);if(i&&o){let{scene:i}=o,s=tn({unitId:e,subUnitId:t,drawingId:n}),c=i.getObject(s);c&&c instanceof a&&c.setProps(r)}}_getPosition(e,t){var n;let{startX:r,endX:i,startY:a,endY:o}=e,s=(n=this._renderManagerService.getRenderById(t))==null?void 0:n.with(g);if(s==null)return;let c=s.getCellWithCoordByOffset(r,a);if(c==null)return;let l={column:c.actualColumn,columnOffset:r-c.startX,row:c.actualRow,rowOffset:a-c.startY},u=s.getCellWithCoordByOffset(i,o);if(u!=null)return{from:l,to:{column:u.actualColumn,columnOffset:i-u.startX,row:u.actualRow,rowOffset:o-u.startY}}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);if(!t||t.drawingType!==I.DRAWING_DOM&&t.drawingType!==I.DRAWING_CHART)return;let n={...t.transform};this._transformChange$.next({id:e.drawingId,value:n}),this._canvasFloatDomService.updateFloatDom(e.drawingId,{...t});let r=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(r&&t.drawingType!==I.DRAWING_CHART){let{scene:n}=r,i=this._domLayerInfoMap.get(e.drawingId);i!=null&&i.rect&&(t.allowTransform===!1?n.detachTransformerFrom(i.rect):n.attachTransformerTo(i.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}addFloatDomToPosition(e,t){let n=W(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!n)throw Error(`cannot find current target!`);let{unitId:r,subUnitId:i}=n,{initPosition:a,componentKey:o,data:s,allowTransform:c=!0}=e,l=t==null?Ie():t,u=this._getPosition(a,r);if(u==null)return;let d={unitId:r,subUnitId:i,drawingId:l,drawingType:e.type||I.DRAWING_DOM,componentKey:o,sheetTransform:u,transform:{left:a.startX,top:a.startY,width:a.endX-a.startX,height:a.endY-a.startY},axisAlignSheetTransform:u,data:s,allowTransform:c};return this._commandService.executeCommand(nr.id,{unitId:r,drawings:[d]}),this._add$.next({unitId:r,subUnitId:i,id:l}),{id:l,dispose:()=>{this._removeDom(l,!0)}}}_removeDom(e,t=!1){let n=this._domLayerInfoMap.get(e);if(!n)return;let{unitId:r,subUnitId:i}=n;this._domLayerInfoMap.delete(e),n.dispose.dispose();let a=this._getSceneAndTransformerByDrawingSearch(r);if(a&&a.scene.removeObject(n.rect),t){let t=this._drawingManagerService.getDrawingByParam({unitId:r,subUnitId:i,drawingId:e});if(!t)return;let{redo:n,objects:a}=this._sheetDrawingService.getBatchRemoveOp([t]);this._commandService.syncExecuteCommand(H.id,{unitId:r,subUnitId:i,op:n,objects:a,type:B.REMOVE})}}addFloatDomToRange(e,n,i,o){var s;let c=W(this._univerInstanceService,{unitId:n.unitId,subUnitId:n.subUnitId});if(!c)throw Error(`cannot find current target!`);let{unitId:l,subUnitId:u}=c,d=this._getSceneAndTransformerByDrawingSearch(l);if(!d)return;let f=this._renderManagerService.getRenderById(l);if(!f)return;let p=(s=this._renderManagerService.getRenderById(l))==null?void 0:s.with(C).getWorksheetSkeleton(u);if(!p)return;let{componentKey:m,data:h,allowTransform:g=!0}=n,_=o==null?Ie():o,{position:v,position$:y}=this._createRangePositionObserver(e,f,p.skeleton),b=this._getPosition(v,l);if(b==null)return;let{scaleX:x}=d.scene.getAncestorScale(),S=si(v,i,x),w={unitId:l,subUnitId:u,drawingId:_,drawingType:n.type||I.DRAWING_DOM,componentKey:m,sheetTransform:b,axisAlignSheetTransform:b,transform:{left:S.startX,top:S.startY,width:S.width,height:S.height},data:h,allowTransform:g};{var T,E;let{unitId:e,subUnitId:o,drawingId:s}=w,c=W(this._univerInstanceService,{unitId:e,subUnitId:o}),l=w,u=this._univerInstanceService.getUnit(e,z.UNIVER_SHEET);if(!u)return;let d=u.getActiveSheet().getSheetId();if(!l||!c)return;let f=(T=this._renderManagerService.getRenderById(e))==null?void 0:T.with(C);if(!f)return;let p=f.getWorksheetSkeleton(o);if(!p)return;let{transform:m,drawingType:h,data:g}=l;if(h!==I.DRAWING_DOM&&h!==I.DRAWING_CHART)return;let b=this._getSceneAndTransformerByDrawingSearch(e);if(b==null)return;let{scene:x,canvas:S}=b;if(m==null||d!==o)return;let{left:D,top:ee,width:O,height:te,angle:k,flipX:A,flipY:j,skewX:M,skewY:N}=m,ne=tn({unitId:e,subUnitId:o,drawingId:s}),P=x.getObject(ne);if(P!=null){P.transformByState({left:D,top:ee,width:O,height:te,angle:k,flipX:A,flipY:j,skewX:M,skewY:N});return}let F={left:D,top:ee,width:O,height:te,zIndex:this._drawingManagerService.getDrawingOrder(e,o).length-1},ie=h===I.DRAWING_CHART;ie&&(F.fill=g?g.backgroundColor:`white`,F.rotateEnabled=!1,g&&g.border&&(F.stroke=g.border),F.paintFirst=`stroke`,F.strokeWidth=1,F.borderEnabled=!1,F.radius=8);let ae=new a(ne,F);ie&&ae.setObjectType(r.CHART),x.addObject(ae,t),l.allowTransform!==!1&&x.attachTransformerTo(ae);let oe=new re,se=x.getMainViewport(),{rowHeaderWidth:ce,columnHeaderHeight:L}=p.skeleton,le={dispose:oe,rect:ae,boundsOfViewArea:{top:L,left:ce,bottom:se.bottom,right:se.right},domAnchor:i,unitId:e,subUnitId:o},ue=new Mn(ii(ae,b.renderUnit.scene,p.skeleton,c.worksheet,le));le.position$=ue;let de={position$:ue,id:s,componentKey:l.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{S.dispatchEvent(new WheelEvent(e.type,e))},data:g,unitId:e};n.eventPassThrough&&(de={...de,onPointerDown:e=>{S.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{S.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{S.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(de),this.disposeWithMe(y.subscribe(t=>{var n,r,l,u;let d=si({rotate:0,startX:t.startX,startY:t.startY,endX:t.endX,endY:t.endY,width:(n=i.width)==null?t.width:n,height:(r=i.height)==null?t.height:r,absolute:{left:v.absolute.left,top:v.absolute.top}},i),f=ii(new a(tn({unitId:e,subUnitId:o,drawingId:s}),{left:d.startX,top:d.startY,width:(l=i.width)==null?t.width:l,height:(u=i.height)==null?t.height:u,zIndex:this._drawingManagerService.getDrawingOrder(e,o).length-1}),b.renderUnit.scene,p.skeleton,c.worksheet,le);ue.next(f)}));let fe=(E=this._renderManagerService.getRenderById(e))==null?void 0:E.with(C),pe=fe==null?void 0:fe.currentSkeleton$.subscribe(e=>{e&&p.sheetId!==e.sheetId&&this._removeDom(_,!0)});pe&&oe.add(pe);let me=ae.onTransformChange$.subscribeEvent(()=>{let e=ii(ae,b.renderUnit.scene,p.skeleton,c.worksheet,le);ue.next(e)});oe.add(()=>{this._canvasFloatDomService.removeFloatDom(s)}),me&&oe.add(me),this._domLayerInfoMap.set(s,le)}return{id:_,dispose:()=>{this._removeDom(_,!0)}}}addFloatDomToColumnHeader(e,n,r,i){var o;let s=W(this._univerInstanceService,{unitId:n.unitId,subUnitId:n.subUnitId});if(!s)throw Error(`cannot find current target!`);let{unitId:c,subUnitId:l}=s;if(!this._getSceneAndTransformerByDrawingSearch(c))return;let u=this._renderManagerService.getRenderById(c);if(!u)return;let d=(o=this._renderManagerService.getRenderById(c))==null?void 0:o.with(C).getWorksheetSkeleton(l);if(!d)return;let{componentKey:f,data:p,allowTransform:m=!0}=n,h=i==null?Ie():i,{position:g,position$:_}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:e,endColumn:e},u,d.skeleton),v=g;v.startY=0;let y=this._getPosition(g,c);if(y==null)return;let b={unitId:c,subUnitId:l,drawingId:h,drawingType:n.type||I.DRAWING_DOM,componentKey:f,sheetTransform:y,axisAlignSheetTransform:y,transform:{left:v.startX,top:v.startY,width:v.width,height:v.height},data:p,allowTransform:m};{var x,S;let{unitId:e,subUnitId:i,drawingId:o}=b,s=W(this._univerInstanceService,{unitId:e,subUnitId:i}),c=b,l=this._univerInstanceService.getUnit(e,z.UNIVER_SHEET);if(!l)return;let u=l.getActiveSheet().getSheetId();if(!c||!s)return;let f=(x=this._renderManagerService.getRenderById(e))==null?void 0:x.with(C);if(!f)return;let p=f.getWorksheetSkeleton(i);if(!p)return;let{transform:m,data:y}=c,w=this._getSceneAndTransformerByDrawingSearch(e);if(w==null)return;let{scene:T,canvas:E}=w;if(m==null||u!==i)return;let{left:D,top:ee,width:O,height:te,angle:k,flipX:A,flipY:j,skewX:M,skewY:N}=m,ne=tn({unitId:e,subUnitId:i,drawingId:o}),P=T.getObject(ne);if(P!=null){P.transformByState({left:D,top:ee,width:O,height:te,angle:k,flipX:A,flipY:j,skewX:M,skewY:N});return}let F=si({rotate:0,startX:v.startX,startY:0,endX:g.endX,endY:g.endY,width:r.width,height:r.height,absolute:{left:g.absolute.left,top:g.absolute.top}},r),I=new a(ne,{left:F.startX,top:F.startY,width:F.width,height:F.height,zIndex:this._drawingManagerService.getDrawingOrder(e,i).length-1});T.addObject(I,t),c.allowTransform!==!1&&T.attachTransformerTo(I);let ie=new re,ae=T.getMainViewport(),oe={dispose:ie,rect:I,unitId:e,subUnitId:i,boundsOfViewArea:{top:0,left:ae.left,bottom:ae.bottom,right:ae.right},domAnchor:r,scrollDirectionResponse:ti.HORIZONTAL},se=new Mn(ii(I,w.renderUnit.scene,p.skeleton,s.worksheet,oe));oe.position$=se;let ce={position$:se,id:o,componentKey:c.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{E.dispatchEvent(new WheelEvent(e.type,e))},data:y,unitId:e};n.eventPassThrough&&(ce={...ce,onPointerDown:e=>{E.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{E.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{E.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(ce);let L=I.onTransformChange$.subscribeEvent(()=>{let e=ii(I,w.renderUnit.scene,p.skeleton,s.worksheet,oe);se.next(e)});this.disposeWithMe(_.subscribe(t=>{let n=si({rotate:0,startX:t.startX,startY:0,endX:t.endX,endY:t.endY,width:r.width,height:r.height,absolute:{left:g.absolute.left,top:g.absolute.top}},r),c=ii(new a(tn({unitId:e,subUnitId:i,drawingId:o}),{left:n.startX,top:0,width:r.width,height:r.height,zIndex:this._drawingManagerService.getDrawingOrder(e,i).length-1}),w.renderUnit.scene,p.skeleton,s.worksheet,oe);se.next(c)}));let le=(S=this._renderManagerService.getRenderById(e))==null?void 0:S.with(C);le==null||le.currentSkeleton$.subscribe(e=>{e&&d.sheetId!==e.sheetId&&this._removeDom(h,!0)}),ie.add(()=>{this._canvasFloatDomService.removeFloatDom(o)}),L&&ie.add(L),this._domLayerInfoMap.set(o,oe)}return{id:h,dispose:()=>{this._removeDom(h,!0)}}}_createRangePositionObserver(e,t,n){let{startRow:r,startColumn:i}=e,a=oi(r,i,n),o=new Mn(a),s=oi(e.endRow,e.endColumn,n),c=new Mn(s),l=()=>{let t=oi(r,i,n),a=oi(e.endRow,e.endColumn,n);o.next(t),c.next(a)},u=new re;return u.add(t.engine.clientRect$.subscribe(()=>l())),u.add(this._commandService.onCommandExecuted(e=>{if(e.id===xt.id&&e.params.rowsAutoHeightInfo.findIndex(e=>e.row===r)>-1){l();return}(He.indexOf(e.id)>-1||e.id===y.id||e.id===b.id)&&l()})),{position$:o.pipe(Rn(t=>{let r=oi(e.endRow,e.endColumn,n);return{rotate:0,width:r.right-t.left,height:r.bottom-t.top,absolute:{left:!0,top:!0},startX:t.left,startY:t.top,endX:r.right,endY:r.bottom}})),position:{rotate:0,width:s.right-a.left,height:s.bottom-a.top,absolute:{left:!0,top:!0},startX:a.left,startY:a.top,endX:s.right,endY:s.bottom},updateRowCol:(e,t)=>{r=e,i=t,l()},topLeftPos$:o,rightBottomPos$:c,disposable:u}}};ai=$([Q(0,R(n)),Q(1,he),Q(2,R(L)),Q(3,G),Q(4,R(rn)),Q(5,V),Q(6,R(ye))],ai);function oi(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 si(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=ci(t.marginX,o*n);u=e.endX-r-c}else u=e.startX+ci(t.marginX,o);if(t.verticalOffsetAlign===`bottom`){let r=ci(t.marginY,s*n);d=e.endY-r-l}else d=e.startY+ci(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 ci(e,t){return e===void 0?0:typeof e==`number`?e:t*Number.parseFloat(e)/100}const li=e=>{let{floatDomInfos:t,scene:n,skeleton:r,worksheet:i}=e;return K(`div`,{style:{position:`absolute`,top:0,left:0},children:Kn(()=>t.map(e=>{let{width:t,height:a,angle:o,left:s,top:c}=e.transform,l=ri({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(),f={startX:l.left,endX:l.right,startY:l.top,endY:l.bottom,rotate:o,width:t*u,height:a*d,absolute:l.absolute},p={position$:new Mn(f),position:f,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,p]}),[t,n,r,i]).map(([e,t])=>K(vn,{layer:t,id:e,position:t.position},e))})};let ui=class extends F{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:r,scene:i,subUnitId:a}=t,o=this._drawingManagerService.getDrawingDataForUnit(r),s=o==null?void 0:o[a];return s&&s.order.forEach(e=>{let t=s.data[e];t.drawingType!==I.DRAWING_CHART&&t.drawingType!==I.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,i)}),n()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._renderManagerService.getRenderById(r);if(!a)return n(e);let o=a.with(C).getSkeletonParam(i);if(!o)return n(e);let s=this._drawingManagerService.getDrawingDataForUnit(r),c=s==null?void 0:s[t.subUnitId];if(!c)return n(e);let{scaleX:l,scaleY:u}=a.scene,d=e?{...e}:{startColumn:0,endColumn:0,endRow:0,startRow:0},f=c.order.map(e=>c.data[e]);return f.length?(f.forEach(e=>{if(!e.groupId&&e.transform&&Ae.isDefine(e.transform.left)&&Ae.isDefine(e.transform.top)&&Ae.isDefine(e.transform.width)&&Ae.isDefine(e.transform.height)){let t=o.skeleton.getCellIndexByOffset(e.transform.left,e.transform.top,l,u,{x:0,y:0}),n=o.skeleton.getCellIndexByOffset(e.transform.left+e.transform.width,e.transform.top+e.transform.height,l,u,{x:0,y:0});t.column<d.startColumn&&(d.startColumn=t.column),t.row<d.startRow&&(d.startRow=t.row),d.endRow<n.row&&(d.endRow=n.row),d.endColumn<n.column&&(d.endColumn=n.column)}}),n(d)):n(e)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,n)=>{let{unitId:r,subUnitId:i}=t,a=this._drawingManagerService.getDrawingDataForUnit(r),o=a==null?void 0:a[i];if(o){let r=o.order.map(e=>{let t=o.data[e];if(t.drawingType===I.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(Te)};if(t.drawingType===I.DRAWING_DOM){let e=this._sheetPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return Bt(K(bn(li,this._injector),{floatDomInfos:r,scene:t.scene,skeleton:t.skeleton,worksheet:t.worksheet}),t.root),e==null||e.add(()=>{Vt(t.root)}),n(e)}}}))}};ui=$([Q(0,R(S)),Q(1,R(Dn)),Q(2,G),Q(3,n),Q(4,R(ai)),Q(5,R(an)),Q(6,R(_e))],ui);var di=function(e){return e[e.deleteLeft=0]=`deleteLeft`,e[e.deleteUp=1]=`deleteUp`,e[e.insertDown=2]=`insertDown`,e[e.insertRight=3]=`insertRight`,e}(di||{});const fi=[Qe.id,Ye.id,at.id,it.id,Ue.id,We.id,Xe.id,Ze.id,Ke.id,ft.id,Ge.id,lt.id,pt.id,vt.id,_t.id,ot.id,et.id,nt.id,tt.id],pi=[ht.id,mt.id,ct.id,st.id,St.id,xt.id,Ct.id,bt.id];let mi=class extends F{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(!fi.includes(e.id)||e.params==null)return{redos:[],undos:[]};let t=e.id;if(t===Qe.id)return this._moveRowInterceptor(e.params,`insert`);if([et.id,nt.id,tt.id].includes(t))return this._moveRangeInterceptor(e.params);if(t===Ye.id)return this._moveColInterceptor(e.params,`insert`);if(t===at.id)return this._moveRowInterceptor(e.params,`remove`);if(t===it.id)return this._moveColInterceptor(e.params,`remove`);if(t===Ue.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,di.deleteLeft)}else if(t===We.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,di.deleteUp)}else if(t===Xe.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,di.insertDown)}else if(t===Ze.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,di.insertRight)}else if(t===pt.id||t===vt.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForRowVisible(t,n,r)}else if(t===_t.id||t===ot.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForColVisible(t,n,r)}else if(t===Ke.id||t===ft.id||t===Ge.id||t===lt.id){let{unitId:n,subUnitId:r,ranges:i}=e.params,a=t===Ke.id||t===ft.id;return this._getDrawingUndoForRowAndColSize(n,r,i,a)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(e,t){let n=W(this._univerInstanceService);if(n==null)return{redos:[],undos:[]};let r=n.unitId,i=n.subUnitId,a=[],o=[],s=this._sheetDrawingService.getDrawingData(r,i),c=[],l=[];if(Object.keys(s).forEach(n=>{let r=s[n],{updateDrawings:i,deleteDrawings:a}=this._getUpdateOrDeleteDrawings(e,t,r);c.push(...i),l.push(...a)}),c.length===0&&l.length===0)return{redos:[],undos:[]};if(c.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(c);a.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:B.UPDATE}}),o.push({id:H.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:B.UPDATE}})}if(l.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(l),t=e.undo,n=e.redo,s=e.objects;a.push({id:H.id,params:{unitId:r,subUnitId:i,op:n,objects:s,type:B.REMOVE}}),o.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:s,type:B.INSERT}})}return a.push({id:X.id,params:[r]}),o.push({id:X.id,params:[r]}),{redos:a,undos:o}}_getUpdateOrDeleteDrawings(e,t,n){let r=[],i=[],{sheetTransform:a,anchorType:o=U.Position,transform:s,unitId:c,subUnitId:l,drawingId:u}=n,{from:d,to:f}=a,{row:p,column:m}=d,{row:h,column:g}=f;if(a==null||s==null)return{updateDrawings:r,deleteDrawings:i};let{startRow:_,endRow:v,startColumn:y,endColumn:b}=e,x=null,S=null,C;if(t===di.deleteLeft&&p>=_&&h<=v)if(m>=y&&g<=b)i.push({unitId:c,subUnitId:l,drawingId:u});else{var w;let e=this._shrinkCol(a,s,y,b,o);x=e==null?void 0:e.newSheetTransform,S=e==null?void 0:e.newTransform,C=(w=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:w}else if(t===di.deleteUp&&m>=y&&g<=b)if(p>=_&&h<=v)i.push({unitId:c,subUnitId:l,drawingId:u});else{var T;let e=this._shrinkRow(a,s,_,v,o);x=e==null?void 0:e.newSheetTransform,S=e==null?void 0:e.newTransform,C=(T=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:T}else if(t===di.insertDown){var E;let e=this._expandRow(a,s,_,v,o);x=e==null?void 0:e.newSheetTransform,S=e==null?void 0:e.newTransform,C=(E=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:E}else if(t===di.insertRight){var D;let e=this._expandCol(a,s,y,b,o);x=e==null?void 0:e.newSheetTransform,S=e==null?void 0:e.newTransform,C=(D=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:D}if(x!=null&&S!=null){let e=q(x,this._selectionRenderService,this._skeletonManagerService);r.push({...n,sheetTransform:x,transform:e,axisAlignSheetTransform:C})}return{updateDrawings:r,deleteDrawings:i}}_remainDrawingSize(e,t,n){let r=J({...e},this._selectionRenderService);if(r!=null){let i=Y({...e},this._selectionRenderService);t.push({...n,sheetTransform:r,axisAlignSheetTransform:i})}}_getDrawingUndoForColVisible(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),i=[],a=[];if(Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:o,transform:s,anchorType:c=U.Position}=t;if(c===U.None)this._remainDrawingSize(s,i,t);else{let{from:e,to:r}=o,{row:l,column:u}=e,{row:d,column:f}=r;for(let o=0;o<n.length;o++){let{startRow:l,endRow:d,startColumn:p,endColumn:m}=n[o];if(f<p)continue;if(c===U.Position){let n=null,a=null;if(u>=p&&u<=m){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:u,endColumn:m,startRow:e.row,endRow:r.row});if(t==null)return;a={...s,left:t.startX}}if(a!=null){n=J(a,this._selectionRenderService);let e=Y(a,this._selectionRenderService);if(n!=null&&a!=null){i.push({...t,sheetTransform:n,transform:a,axisAlignSheetTransform:e});break}}this._remainDrawingSize(s,i,t);continue}if(u>=p&&f<=m)continue;let h=null,g=null;if(u>=p&&u<=m){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:u,endColumn:m,startRow:e.row,endRow:r.row});if(t==null)return;g={...s,left:(t==null?void 0:t.startX)||0,width:((s==null?void 0:s.width)||0)-t.endX+t.startX}}else if(f>=p&&f<=m){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:p,endColumn:f,startRow:e.row,endRow:r.row});if(t==null)return;g={...s,left:t.startX-((s==null?void 0:s.width)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:p,endColumn:m,startRow:e.row,endRow:r.row});if(n==null)return;if(g={...s,width:((s==null?void 0:s.width)||0)-n.endX+n.startX},h=J(g,this._selectionRenderService),h!=null&&g!=null){let e=Y(g,this._selectionRenderService);a.push({...t,sheetTransform:h,transform:g,axisAlignSheetTransform:e});break}}if(g!=null&&(h=J(g,this._selectionRenderService)),g!=null&&h!=null){let e=Y(g,this._selectionRenderService);i.push({...t,sheetTransform:h,transform:g,axisAlignSheetTransform:e});break}else this._remainDrawingSize(s,i,t)}}}),i.length===0&&a.length===0)return{redos:[],undos:[]};let{redos:o,undos:s}=this._createUndoAndRedoMutation(e,t,i),c=[],l=[];if(a.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,a);c.push(...n),l.push(...r)}return{redos:o,undos:s,preRedos:c,preUndos:l}}_createUndoAndRedoMutation(e,t,n){let{undo:r,redo:i,objects:a}=this._sheetDrawingService.getBatchUpdateOp(n);return{redos:[{id:H.id,params:{unitId:e,subUnitId:t,op:i,objects:a,type:B.UPDATE}},{id:X.id,params:[e]}],undos:[{id:H.id,params:{unitId:e,subUnitId:t,op:r,objects:a,type:B.UPDATE}},{id:X.id,params:[e]}]}}_getDrawingUndoForRowVisible(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),i=[],a=[];if(Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:o,transform:s,anchorType:c=U.Position}=t;if(c===U.None)this._remainDrawingSize(s,i,t);else{let{from:e,to:r}=o,{row:l,column:u}=e,{row:d,column:f}=r;for(let o=0;o<n.length;o++){let{startRow:u,endRow:f,startColumn:p,endColumn:m}=n[o];if(d<u)continue;if(c===U.Position){let n=null,a=null;if(l>=u&&l<=f){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:l,endRow:f});if(t==null)return;a={...s,top:t.startY}}if(a!=null){n=J(a,this._selectionRenderService);let e=Y(a,this._selectionRenderService);if(n!=null&&a!=null){i.push({...t,sheetTransform:n,transform:a,axisAlignSheetTransform:e});break}}this._remainDrawingSize(s,i,t);continue}if(l>=u&&d<=f)continue;let h=null,g=null;if(l>=u&&l<=f){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:l,endRow:f});if(t==null)return;g={...s,top:(t==null?void 0:t.startY)||0,height:((s==null?void 0:s.height)||0)-t.endY+t.startY}}else if(d>=u&&d<=f){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:u,endRow:d});if(t==null)return;g={...s,top:t.startY-((s==null?void 0:s.height)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:u,endRow:f});if(n==null)return;if(g={...s,height:((s==null?void 0:s.height)||0)-n.endY+n.startY},h=J(g,this._selectionRenderService),h!=null&&g!=null){let e=Y(g,this._selectionRenderService);a.push({...t,sheetTransform:h,transform:g,axisAlignSheetTransform:e});break}}if(g!=null&&(h=J(g,this._selectionRenderService)),g!=null&&h!=null){let e=Y(g,this._selectionRenderService);i.push({...t,sheetTransform:h,transform:g,axisAlignSheetTransform:e});break}else this._remainDrawingSize(s,i,t)}}}),i.length===0&&a.length===0)return{redos:[],undos:[]};let{redos:o,undos:s}=this._createUndoAndRedoMutation(e,t,i),c=[],l=[];if(a.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,a);c.push(...n),l.push(...r)}return{redos:o,undos:s,preRedos:c,preUndos:l}}_getDrawingUndoForRowAndColSize(e,t,n,r){let i=this._drawingManagerService.getDrawingData(e,t),a=[];return Object.keys(i).forEach(e=>{let t=i[e],{sheetTransform:r,transform:o,anchorType:s=U.Position}=t;if(s===U.None)this._remainDrawingSize(o,a,t);else{let{from:e,to:i}=r,{row:c,column:l}=e,{row:u,column:d}=i;for(let e=0;e<n.length;e++){let{startRow:i,endRow:f,startColumn:p,endColumn:m}=n[e];if(u<i||d<p)continue;if(s===U.Position&&(c<=i&&u>=f||l<=p&&d>=m)){this._remainDrawingSize(o,a,t);continue}let h=q({...r},this._selectionRenderService,this._skeletonManagerService);if(h!=null){a.push({...t,transform:h});break}}}}),a.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,a)}_getUnitIdAndSubUnitId(e,t){let n,r;if(t===`insert`)n=e.unitId,r=e.subUnitId;else{let e=W(this._univerInstanceService);if(e==null)return;n=e.unitId,r=e.subUnitId}return{unitId:n,subUnitId:r}}_moveRangeInterceptor(e){var t;let{toRange:n,fromRange:r}=e,i=W(this._univerInstanceService);if(!i)return{redos:[],undos:[]};let{unitId:a,subUnitId:o}=i,s=(t=this._renderManagerService.getRenderById(a))==null||(t=t.with(C))==null?void 0:t.getCurrentSkeleton();if(!s)return{redos:[],undos:[]};let c=w(s,r);if(!c)return{redos:[],undos:[]};let{startX:l,endX:u,startY:d,endY:f}=c,p=this._sheetDrawingService.getDrawingData(a,o),m=[];Object.keys(p).forEach(e=>{let t=p[e];if(t.anchorType!==U.Both)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:i=0,width:a=0,height:o=0}=n,{drawingStartX:s,drawingEndX:c,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+a,drawingStartY:i,drawingEndY:i+o};l<=s&&c<=u&&d<=h&&g<=f&&m.push(t)});let h=[],g=[],_=n.startRow-r.startRow,v=n.startColumn-r.startColumn,y=m.map(e=>{let t=e.sheetTransform,n={to:{...t.to,row:t.to.row+_,column:t.to.column+v},from:{...t.from,row:t.from.row+_,column:t.from.column+v}},r=q(n,this._selectionRenderService,this._skeletonManagerService);return{unitId:a,subUnitId:o,drawingId:e.drawingId,transform:r,sheetTransform:n}});if(y.length){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(y);h.push({id:H.id,params:{unitId:a,subUnitId:o,op:t,objects:n,type:B.UPDATE}}),g.push({id:H.id,params:{unitId:a,subUnitId:o,op:e,objects:n,type:B.UPDATE}})}return{redos:h,undos:g}}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,{range:a}=e,o=a.startRow,s=a.endRow,c=[],l=[],u=this._sheetDrawingService.getDrawingData(r,i),d=[],f=[];if(Object.keys(u).forEach(e=>{let{sheetTransform:n,transform:a,anchorType:c=U.Position}=u[e];if(n==null||a==null)return;let l,p,m;if(t===`insert`){var h;let e=this._expandRow(n,a,o,s,c);l=e==null?void 0:e.newSheetTransform,p=e==null?void 0:e.newTransform,m=(h=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:h}else{let{from:t,to:u}=n,{row:d}=t,{row:h}=u;if(c===U.Both&&d>=o&&h<=s)f.push({unitId:r,subUnitId:i,drawingId:e});else{var g;let e=this._shrinkRow(n,a,o,s,c);l=e==null?void 0:e.newSheetTransform,p=e==null?void 0:e.newTransform,m=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}}if(!l||!p)return;let _={unitId:r,subUnitId:i,drawingId:e,transform:p,sheetTransform:l,axisAlignSheetTransform:m};d.push(_)}),d.length===0&&f.length===0)return{redos:[],undos:[]};if(d.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(d);c.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:B.UPDATE}}),l.push({id:H.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:B.UPDATE}})}if(f.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(f),t=e.undo,n=e.redo,a=e.objects;c.push({id:H.id,params:{unitId:r,subUnitId:i,op:n,objects:a,type:B.REMOVE}}),l.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:a,type:B.INSERT}})}return c.push({id:X.id,params:[r]}),l.push({id:X.id,params:[r]}),{redos:c,undos:l}}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,{range:a}=e,o=a.startColumn,s=a.endColumn,c=[],l=[],u=this._sheetDrawingService.getDrawingData(r,i),d=[],f=[];if(Object.keys(u).forEach(e=>{let{sheetTransform:n,transform:a,anchorType:c=U.Position}=u[e];if(n==null||a==null)return;let l,p,m;if(t===`insert`){var h;let e=this._expandCol(n,a,o,s,c);l=e==null?void 0:e.newSheetTransform,p=e==null?void 0:e.newTransform,m=(h=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:h}else{let{from:t,to:u}=n,{column:d}=t,{column:h}=u;if(c===U.Both&&d>=o&&h<=s)f.push({unitId:r,subUnitId:i,drawingId:e});else{var g;let e=this._shrinkCol(n,a,o,s,c);l=e==null?void 0:e.newSheetTransform,p=e==null?void 0:e.newTransform,m=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}}if(!l||!p)return;let _={unitId:r,subUnitId:i,drawingId:e,transform:p,sheetTransform:l,axisAlignSheetTransform:m};d.push(_)}),d.length===0&&f.length===0)return{redos:[],undos:[]};if(d.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(d);c.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:n,type:B.UPDATE}}),l.push({id:H.id,params:{unitId:r,subUnitId:i,op:e,objects:n,type:B.UPDATE}})}if(f.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(f),t=e.undo,n=e.redo,a=e.objects;c.push({id:H.id,params:{unitId:r,subUnitId:i,op:n,objects:a,type:B.REMOVE}}),l.push({id:H.id,params:{unitId:r,subUnitId:i,op:t,objects:a,type:B.INSERT}})}return c.push({id:X.id,params:[r]}),l.push({id:X.id,params:[r]}),{redos:c,undos:l}}_expandCol(e,t,n,r,i=U.Position){let a=r-n+1,{from:o,to:s}=e,{column:c}=o,{column:l}=s;if(i===U.None)return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};let u=null,d=null,f=null;if(c>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:r,startRow:o.row,endRow:s.row});if(e==null)return;d={...t,left:(t.left||0)+e.endX-e.startX},u=J(d,this._selectionRenderService),f=Y(d,this._selectionRenderService)}else if(l>=r)if(i===U.Both)u={from:{...o},to:{...s,column:l+a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:f}:null}_shrinkCol(e,t,n,r,i=U.Position){let a=r-n+1,{from:o,to:s}=e,{column:c}=o,{column:l}=s;if(i===U.None)return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};let u=null,d=null,f=null;if(c>r)u={from:{...o,column:c-a},to:{...s,column:l-a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else if(c>=n&&l<=r)return null;else if(c<n&&l>r)if(i===U.Both)u={from:{...o},to:{...s,column:l-a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};else if(c>=n&&c<=r){if(c===n)d={...t,left:(t.left||0)-e.from.columnOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:c-1,startRow:o.row,endRow:s.row});if(r==null)return;d={...t,left:(t.left||0)-r.endX+r.startX-e.from.columnOffset}}u=J(d,this._selectionRenderService),f=Y(d,this._selectionRenderService)}else if(l>=n&&l<=r&&i===U.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n-1,endColumn:n-1,startRow:o.row,endRow:s.row});if(e==null)return;u={from:{...o},to:{...s,column:n-1,columnOffset:e.endX-e.startX}},d=q(u,this._selectionRenderService,this._skeletonManagerService)}return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:f}:null}_expandRow(e,t,n,r,i=U.Position){let a=r-n+1,{from:o,to:s}=e,{row:c}=o,{row:l}=s;if(i===U.None)return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};let u=null,d=null,f=null;if(c>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:r,startColumn:o.column,endColumn:s.column});if(e==null)return;d={...t,top:(t.top||0)+e.endY-e.startY},u=J(d,this._selectionRenderService),f=Y(d,this._selectionRenderService)}else if(l>=r)if(i===U.Both)u={from:{...o},to:{...s,row:l+a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:f}:null}_shrinkRow(e,t,n,r,i=U.Position){let a=r-n+1,{from:o,to:s}=e,{row:c}=o,{row:l}=s;if(i===U.None)return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};let u=null,d=null,f=null;if(c>r)u={from:{...o,row:c-a},to:{...s,row:l-a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else if(c>=n&&l<=r)return null;else if(c<n&&l>r)if(i===U.Both)u={from:{...o},to:{...s,row:l-a}},d=q(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:J({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:Y({...t},this._selectionRenderService)};else if(c>=n&&c<=r){if(c===n)d={...t,top:(t.top||0)-e.from.rowOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:c-1,startColumn:o.column,endColumn:s.column});if(r==null)return;d={...t,top:(t.top||0)-r.endY+r.startY-e.from.rowOffset}}u=J(d,this._selectionRenderService),f=Y(d,this._selectionRenderService)}else if(l>=n&&l<=r&&i===U.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:o.column,endColumn:o.column,startRow:n-1,endRow:n-1});if(e==null)return;u={from:{...o},to:{...s,row:n-1,rowOffset:e.endY-e.startY}},d=q(u,this._selectionRenderService,this._skeletonManagerService)}return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:f}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===yt.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=q(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=>{pi.includes(e.id)&&requestIdleCallback(()=>{let t=e.params,n=W(this._univerInstanceService,t);if(!n)return;let{unitId:r,subUnitId:i,worksheet:a}=n,o=[];`ranges`in t?o=t.ranges:`rowsAutoHeightInfo`in t&&(o=t.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:a.getColumnCount()-1}))),this._refreshDrawingTransform(r,i,o)})}))}_refreshDrawingTransform(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),i=[];Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:a,transform:o,anchorType:s=U.Position}=t;if(s===U.None)return!0;let{from:c,to:l}=a,{row:u,column:d}=c,{row:f,column:p}=l;for(let e=0;e<n.length;e++){let{startRow:r,endRow:c,startColumn:l,endColumn:m}=n[e];if(Oe.intersects({startRow:r,endRow:c,startColumn:l,endColumn:m},{startRow:u,endRow:f,startColumn:d,endColumn:p})||u>c||d>m){let e=s===U.Position,n=q(a,this._selectionRenderService,this._skeletonManagerService);i.push({...t,transform:{...n,width:e?o==null?void 0:o.width:n==null?void 0:n.width,height:e?o==null?void 0:o.height:n==null?void 0:n.height}});break}}}),i.length!==0&&(this._sheetDrawingService.refreshTransform(i),this._drawingManagerService.refreshTransform(i),this._commandService.syncExecuteCommand(X.id,[e]))}};mi=$([Q(1,n),Q(2,L),Q(3,g),Q(4,R(C)),Q(5,R(wt)),Q(6,V),Q(7,G),Q(8,he)],mi);const hi={id:`sheet.command.toggle-flip-drawings`,type:A.COMMAND,handler:(e,t)=>{let r=e.get(L),i=e.get(me),a=e.get(V),o=e.get(n);if(!t)return!1;let{drawings:s}=t,c=t.flipH,l=t.flipV,u=[],d=[];for(let t of s){let{unitId:n,subUnitId:r,drawingId:i}=t;u.push(n);let s=a.getDrawingData(n,r),f=s==null?void 0:s[i];if(!f)continue;let p={...f.transform};c&&(p.flipX=!p.flipX),l&&(p.flipY=!p.flipY);let m=o.getRenderById(n),h=m==null?void 0:m.with(g);if(!h)continue;let _=J(p,h),v=Y(p,h),y={unitId:n,subUnitId:r,drawingType:f.drawingType,drawingId:i,transform:p,sheetTransform:_,axisAlignSheetTransform:v};if(f.drawingType===I.DRAWING_IMAGE){let t=gi(e,n);if(t){let e=tn({unitId:n,subUnitId:r,drawingId:i}),a=t.getObject(e);if(a){let e=a.srcRect;if(e){let t,{left:n=0,top:r=0,right:i=0,bottom:a=0}=e;if(c){let e=n+(i-n)/2;t={left:e-(i-n)/2,top:r,right:e+(i-n)/2,bottom:a}}if(l){let e=r+(a-r)/2;t={left:n,top:e-(a-r)/2,right:i,bottom:e+(a-r)/2}}t&&(y.srcRect=t)}}}}d.push(y)}if(d.length===0)return!1;let{unitId:f,subUnitId:p,undo:m,redo:h,objects:_}=a.getBatchUpdateOp(d),v={id:H.id,params:{unitId:f,subUnitId:p,op:h,objects:_,type:B.UPDATE}},y={id:H.id,params:{unitId:f,subUnitId:p,op:m,objects:_,type:B.UPDATE}};return ze([v],r)?(i.pushUndoRedo({unitID:f,undoMutations:[y,{id:X.id,params:u}],redoMutations:[v,{id:X.id,params:u}]}),!0):!1}};function gi(e,t){let r=e.get(n).getRenderById(t);return r?r.scene:null}function _i(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 vi(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(_i(r.getValue(e,t)))return!0;return!1}function yi(){return`showDirectoryPicker`in window}function bi(e){let t=e.get(he),n=e.get(Tt),r=Fn([xn(e,z.UNIVER_SHEET),t.getCurrentTypeOfUnit$(z.UNIVER_SHEET).pipe(Bn(e=>e?n.selectionMoveEnd$.pipe(Rn(()=>{if(!yi())return!0;let t=n.getCurrentSelections();if(!t||t.length===0)return!0;for(let n of t)if(vi(e,n.range))return!1;return!0})):zn(!0)))]).pipe(Rn(([e,t])=>e||t));return{id:Er.id,type:_n.BUTTON,icon:`DownloadImageIcon`,title:`sheetImage.save.menuLabel`,hidden$:r}}const xi={[yn.MEDIA]:{[Mr]:{order:0,menuItemFactory:Nr,[fr.id]:{order:0,menuItemFactory:Pr},[pr.id]:{order:1,menuItemFactory:Fr}}},[sn.MAIN_AREA]:{[on.OTHERS]:{[Er.id]:{order:10,menuItemFactory:bi}}},[sn.COL_HEADER]:{[on.OTHERS]:{[Er.id]:{order:10,menuItemFactory:bi}}},[sn.ROW_HEADER]:{[on.OTHERS]:{[Er.id]:{order:10,menuItemFactory:bi}}}};function Si(){let e=Sn(xe),t=Sn(un),n=Sn(gr),[r,i]=qn([hr.CELL_ADDRESS]),[a,o]=qn(!1),[s,c]=qn(null),l=Kn(()=>n.getCellImagesInSelection(),[n]),u=Kn(()=>n.getDataColumns(),[n]),d=Kn(()=>n.getSelectionRowRange(),[n]),f=u.length>0,p=Kn(()=>u.map(e=>({label:e.label,value:String(e.index)})),[u]),[m,h]=qn(()=>p.length>0?p[0].value:`0`);D(Kn(()=>{if(!r.includes(hr.COLUMN_VALUE)||!d)return[];let e=Number(m);return[{startRow:d.startRow,endRow:d.endRow,startColumn:e,endColumn:e}]},[r,m,d]));let g=Wn(e=>{e.length!==0&&i(e)},[]),_=Wn(e=>{h(String(e))},[]),v=Wn(()=>{t.close(Tr)},[t]),y=Wn(async()=>{if(l.length!==0){o(!0),c(null);try{await n.saveImages(l,{fileNameParts:r,columnIndex:r.includes(hr.COLUMN_VALUE)?Number(m):void 0}),t.close(Tr)}catch(t){console.error(`Failed to save images:`,t),c(e.t(`sheetImage.save.error`))}finally{o(!1)}}},[n,l,r,m,t,e]),b=r.includes(hr.COLUMN_VALUE);return Jn(`div`,{className:`univer-flex univer-flex-col`,children:[K(Pt,{label:e.t(`sheetImage.save.imageCount`),children:K(`div`,{className:`univer-text-sm univer-text-gray-600`,children:l.length})}),K(Pt,{label:e.t(`sheetImage.save.fileNameConfig`),children:Jn(Nt,{value:r,onChange:g,direction:`vertical`,children:[K(Mt,{value:hr.CELL_ADDRESS,disabled:!f,children:e.t(`sheetImage.save.useRowCol`)}),f&&K(Mt,{value:hr.COLUMN_VALUE,children:e.t(`sheetImage.save.useColumnValue`)})]})}),b&&K(Pt,{label:e.t(`sheetImage.save.selectColumn`),children:K(Rt,{value:m,options:p,onChange:_})}),s&&K(`div`,{className:`univer-text-xs univer-text-red-500`,children:s}),Jn(`div`,{className:`univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3`,children:[K(jt,{onClick:v,disabled:a,children:e.t(`sheetImage.save.cancel`)}),K(jt,{variant:`primary`,onClick:y,disabled:a||l.length===0,children:a?e.t(`sheetImage.save.saving`):e.t(`sheetImage.save.confirm`)})]})]})}const Ci=e=>{var t;let r=Sn(L),i=Sn(xe),a=Sn(G),o=Sn(n),{drawings:s}=e,c=s[0];if(c==null)return;let{unitId:l}=c,u=o.getRenderById(l),d=u==null?void 0:u.scene;if(d==null)return;let f=d.getTransformerByCreate(),[p,m]=qn(!0),[h,g]=qn((t=c.anchorType)==null?U.Position:t);function _(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}Gn(()=>{let e=f.clearControl$.subscribe(e=>{e===!0&&m(!1)}),t=f.changeStart$.subscribe(e=>{let{objects:t}=e,n=_(t,a);if(n.length===0)m(!1);else if(n.length>=1){var r;m(!0),g(((r=n[0])==null?void 0:r.anchorType)||U.Position)}});return()=>{t.unsubscribe(),e.unsubscribe()}},[]);function v(e){g(e);let t=a.getFocusDrawings();if(t.length===0)return;let n=t.map(t=>({unitId:t.unitId,subUnitId:t.subUnitId,drawingId:t.drawingId,anchorType:e}));r.executeCommand(ir.id,{unitId:t[0].unitId,drawings:n})}return Jn(`div`,{className:zt(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!p}),children:[K(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:K(`div`,{children:i.t(`drawing-anchor.title`)})}),K(`div`,{children:Jn(Lt,{value:h,onChange:v,direction:`vertical`,children:[K(It,{value:U.Both,children:i.t(`drawing-anchor.both`)}),K(It,{value:U.Position,children:i.t(`drawing-anchor.position`)}),K(It,{value:U.None,children:i.t(`drawing-anchor.none`)})]})})]})},wi=()=>{let e=Sn(G),[t,n]=qn(e.getFocusDrawings());return Gn(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&Jn(`div`,{className:`univer-text-sm`,children:[K(En,{drawings:t}),K(Ci,{drawings:t})]})};function Ti(e){return e.getContextValue(ce)&&!e.getContextValue(ae)&&!e.getContextValue(oe)&&e.getContextValue(ie)&&!e.getContextValue(se)}const Ei={id:mr.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:gn.ARROW_DOWN,priority:100,preconditions:Ti,staticParameters:{direction:P.DOWN}},Di={id:mr.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:gn.ARROW_UP,priority:100,preconditions:Ti,staticParameters:{direction:P.UP}},Oi={id:mr.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:gn.ARROW_LEFT,priority:100,preconditions:Ti,staticParameters:{direction:P.LEFT}},ki={id:mr.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:gn.ARROW_RIGHT,priority:100,preconditions:Ti,staticParameters:{direction:P.RIGHT}},Ai={id:Xn.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,priority:100,preconditions:Ti,binding:gn.DELETE,mac:gn.BACKSPACE};let ji=class extends F{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(Dr,wi)),this.disposeWithMe(e.register(Tr,Si))}_initMenus(){this._menuManagerService.mergeMenu(xi)}_initCommands(){[fr,pr,nr,Yn,ir,Or,X,kr,tr,ar,mr,Xn,rr,Er,hi].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[Ei,Di,Oi,ki,Ai].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};ji=$([Q(0,R(an)),Q(1,fn),Q(2,L),Q(3,mn),Q(4,G),Q(5,R(Tt))],ji);let Mi=class extends ke{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,Z(this,`_initImagePopupMenu`,new Set),this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(z.UNIVER_SHEET).subscribe(e=>this._create(e)),this._univerInstanceService.getTypeOfUnitDisposed$(z.UNIVER_SHEET).subscribe(e=>this._dispose(e)),this._univerInstanceService.getAllUnitsForType(z.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:Ft.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 On)return!0;return!1}_popupMenuListener(e){var t;let n=(t=this._renderManagerService.getRenderById(e))==null?void 0:t.scene;if(!n)return;let r=n.getTransformerByCreate();if(!r)return;let i;this.disposeWithMe(r.createControl$.subscribe(()=>{if(this._contextService.setContextValue(ie,!0),this._hasCropObject(n))return;let e=r.getSelectedObjectMap();if(e.size>1){i==null||i.dispose();return}let t=e.values().next().value;if(!t)return;let a=t.oKey,o=this._drawingManagerService.getDrawingOKey(a);if(!o)return;let{unitId:s,subUnitId:c,drawingId:l,drawingType:u}=o,d=o.data;if(d&&d.disablePopup)return;i==null||i.dispose();let f=this._canvasPopManagerService.getFeatureMenu(s,c,l,u);i=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(t,{componentKey:Tn,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:f||this._getImageMenuItems(s,c,l,u)}}))})),this.disposeWithMe(r.clearControl$.subscribe(()=>{i==null||i.dispose(),this._contextService.setContextValue(ie,!1),this._commandService.syncExecuteCommand($t.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(e=>{e[ie]===!1&&(i==null||i.dispose())})),this.disposeWithMe(r.changing$.subscribe(()=>{i==null||i.dispose()}))}_getImageMenuItems(e,t,n,r){return[{label:`image-popup.edit`,index:0,commandId:kr.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:r===I.DRAWING_DOM},{label:`image-popup.delete`,index:1,commandId:Yn.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:An.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:r===I.DRAWING_DOM},{label:`image-popup.flipH`,index:2,commandId:hi.id,commandParams:{unitId:e,flipH:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:r===I.DRAWING_DOM},{label:`image-popup.flipV`,index:2,commandId:hi.id,commandParams:{unitId:e,flipV:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:r===I.DRAWING_DOM},{label:`image-popup.reset`,index:3,commandId:kn.id,commandParams:[{unitId:e,subUnitId:t,drawingId:n}],disable:r===I.DRAWING_DOM}]}};Mi=$([Q(0,R(_e)),Q(1,R(xe)),Q(2,G),Q(3,R(x)),Q(4,n),Q(5,he),Q(6,pn),Q(7,ue),Q(8,de),Q(9,L)],Mi);let Ni=class extends Ee{constructor(e=zr,t,n,r){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=r;let{menu:i,...a}=Le({},zr,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(Rr,a)}onStarting(){Re(this._injector,[[ai],[ji],[Mi],[ui],[ei],[$r],[jr],[Wr],[Gr],[qr],[gr,{useClass:wr}],[Br]]),Be(this._injector,[[ai]])}onReady(){Be(this._injector,[[$r],[qr],[jr]])}onRendered(){this._registerRenderModules(),Be(this._injector,[[ei],[ui],[ji],[Wr],[Gr]])}onSteady(){this._injector.get(Mi),this._injector.get(Br)}_registerRenderModules(){[[dr],[mi],[Hr],[Vr]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(z.UNIVER_SHEET,e))})}};Z(Ni,`type`,z.UNIVER_SHEET),Z(Ni,`pluginName`,`SHEET_IMAGE_UI_PLUGIN`),Z(Ni,`packageName`,Ir),Z(Ni,`version`,Lr),Ni=$([ne(en,wn,jn,Ve),Q(1,R(_e)),Q(2,n),Q(3,le)],Ni);export{wr as BatchSaveImagesService,X as ClearSheetDrawingTransformerOperation,Xn as DeleteDrawingsCommand,kr as EditSheetDrawingOperation,hr as FileNamePart,tr as GroupSheetDrawingCommand,gr as IBatchSaveImagesService,fr as InsertFloatImageCommand,nr as InsertSheetDrawingCommand,mr as MoveDrawingsCommand,Yn as RemoveSheetDrawingCommand,Mr as SHEETS_IMAGE_MENU_ID,ni as SHEET_FLOAT_DOM_PREFIX,Er as SaveCellImagesCommand,rr as SetDrawingArrangeCommand,ir as SetSheetDrawingCommand,ai as SheetCanvasFloatDomManagerService,Ci as SheetDrawingAnchor,dr as SheetDrawingUpdateController,jr as SheetsDrawingGroupCopyPasteController,Or as SidebarSheetDrawingOperation,ar as UngroupSheetDrawingCommand,Ni as UniverSheetsDrawingUIPlugin,ii as calcSheetFloatDomPosition,q as drawingPositionToTransform,Y as transformToAxisAlignPosition,J as transformToDrawingPosition};