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