@univerjs/docs-drawing-ui 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- import{ArrangeTypeEnum as e,BooleanNumber as t,BuildTextUtils as n,COLORS as r,CommandType as i,DOCS_ZEN_EDITOR_UNIT_ID_KEY as a,DOC_DRAWING_PRINTING_COMPONENT_KEY as o,DependentOn as s,Direction as c,Disposable as l,DisposableCollection as u,DocumentFlavor as d,DrawingTypeEnum as f,FOCUSING_COMMON_DRAWINGS as p,FOCUSING_DOC as m,FOCUSING_UNIVER_EDITOR as h,ICommandService as g,IConfigService as _,IContextService as v,IUniverInstanceService as y,Inject as b,Injector as x,JSONX as S,LifecycleService as C,LifecycleStages as w,LocaleService as T,MemoryCursor as E,ObjectRelativeFromH as D,ObjectRelativeFromV as O,Plugin as k,PositionedObjectLayoutType as A,RedoCommand as ee,RxDisposable as j,TextX as M,TextXActionType as N,Tools as P,UndoCommand as F,UniverInstanceType as I,WrapTextType as te,fromEventSubject as ne,generateRandomId as re,isInternalEditorID as ie,merge as L,throttle as R,toDisposable as ae}from"@univerjs/core";import{IDocDrawingService as z,UniverDocsDrawingPlugin as oe}from"@univerjs/docs-drawing";import{DocSelectionManagerService as se,DocSkeletonManagerService as B,RichTextEditingMutation as V}from"@univerjs/docs";import{DocCanvasPopManagerService as ce,DocPrintInterceptorService as le,DocSelectionRenderService as H,IEditorService as ue,NodePositionConvertToCursor as de,SetDocZoomRatioOperation as fe,TEXT_RANGE_LAYER_INDEX as pe,VIEWPORT_KEY as me,docDrawingPositionToTransform as he,getAnchorBounding as ge,getCustomBlockIdsInSelections as _e,getDocObject as ve,getOneTextSelectionRange as ye,getRichTextEditPath as be}from"@univerjs/docs-ui";import{CURSOR_TYPE as xe,DocumentEditArea as Se,DocumentSkeletonPageType as Ce,IRenderManagerService as U,Liquid as we,PageLayoutType as Te,Rect as Ee,TRANSFORM_CHANGE_OBSERVABLE_TYPE as De,Vector2 as Oe,getColor as ke,getCurrentTypeOfRenderer as Ae}from"@univerjs/engine-render";import{Checkbox as je,InputNumber as Me,MessageType as Ne,Radio as W,RadioGroup as Pe,Select as Fe,clsx as Ie,render as Le,unmount as Re}from"@univerjs/design";import{DRAWING_IMAGE_ALLOW_IMAGE_LIST as ze,DRAWING_IMAGE_ALLOW_SIZE as Be,DRAWING_IMAGE_COUNT_LIMIT as Ve,DRAWING_IMAGE_HEIGHT_LIMIT as He,DRAWING_IMAGE_WIDTH_LIMIT as Ue,IDrawingManagerService as G,IImageIoService as We,ImageUploadStatusType as Ge,UniverDrawingPlugin as Ke,getDrawingShapeKeyByDrawingSearch as qe,getImageSize as Je}from"@univerjs/drawing";import{CanvasFloatDomService as Ye,ComponentManager as Xe,ILocalFileService as Ze,IMenuManagerService as Qe,IMessageService as $e,IShortcutService as et,ISidebarService as tt,KeyCode as nt,MenuItemType as rt,PrintFloatDomSingle as it,RibbonInsertGroup as at,UniverUIPlugin as ot,connectInjector as st,getMenuHiddenObservable as ct,useDependency as K}from"@univerjs/ui";import{BehaviorSubject as lt,Observable as ut,debounceTime as dt,filter as ft,map as pt,of as mt,switchMap as ht,takeUntil as gt}from"rxjs";import{COMPONENT_IMAGE_POPUP_MENU as _t,DrawingCommonPanel as vt,DrawingRenderService as yt,ImageCropperObject as bt,ImageResetSizeOperation as xt,OpenImageCropOperation as St,UniverDrawingUIPlugin as Ct}from"@univerjs/drawing-ui";import{useEffect as wt,useMemo as Tt,useState as q}from"react";import{jsx as J,jsxs as Y}from"react/jsx-runtime";const Et={id:`doc.command.remove-doc-image`,type:i.COMMAND,handler:(e,t)=>{var n,r,i;let a=e.get(g),o=e.get(y),s=e.get(U),c=o.getCurrentUniverDocInstance();if(t==null||c==null)return!1;let l=s.getRenderById(t.unitId).with(H),{drawings:u}=t,d=(n=l.getSegment())==null?``:n,f=new M,p=S.getInstance(),m=(r=(i=c.getSelfOrHeaderFooterModel(d).getBody())==null?void 0:i.customBlocks)==null?[]:r,h=u.map(e=>m.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1),_=u[0].unitId,v=new E;v.reset();let b=h[0].startIndex,x=[{startOffset:b,endOffset:b}],C={id:V.id,params:{unitId:_,actions:[],textRanges:x}},w=[];for(let e of h){let{startIndex:t}=e;t>v.cursor&&f.push({t:N.RETAIN,len:t-v.cursor}),f.push({t:N.DELETE,len:1}),v.moveCursorTo(t+1)}let T=be(c,d);w.push(p.editOp(f.serialize(),T));for(let e of h){var D;let{blockId:t}=e,n=((D=c.getDrawings())==null?{}:D)[t],r=c.getDrawingsOrder().indexOf(t),i=p.removeOp([`drawings`,t],n),a=p.removeOp([`drawingsOrder`,r],t);w.push(i),w.push(a)}return C.params.actions=w.reduce((e,t)=>S.compose(e,t),null),!!a.syncExecuteCommand(C.id,C.params)}},Dt={id:`doc.command.delete-drawing`,type:i.COMMAND,handler:e=>{let t=e.get(g),n=e.get(z).getFocusDrawings();if(n.length===0)return!1;let{unitId:r}=n[0],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(Et.id,{unitId:r,drawings:i})}},Ot={id:`doc.command.group-doc-image`,type:i.COMMAND,handler:(e,t)=>!1},kt={id:`doc.command.insert-doc-image`,type:i.COMMAND,handler:(e,t)=>{var r,i;if(t==null)return!1;let a=e.get(g),o=e.get(se),s=e.get(y),c=o.getActiveTextRange(),l=s.getCurrentUniverDocInstance();if(c==null||l==null)return!1;let u=l.getUnitId(),{drawings:d}=t,{collapsed:f,startOffset:p,segmentId:m}=c,h=l.getSelfOrHeaderFooterModel(m).getBody();if(h==null)return!1;let _=new M,v=S.getInstance(),b=[],x=(r=(i=l.getSnapshot().drawingsOrder)==null?void 0:i.length)==null?0:r,C=0;if(f)p>0&&_.push({t:N.RETAIN,len:p});else{var w,T;let e=n.selection.delete([c],h,0,null,!1);_.push(...e);let t=_e(h,[c]),r=(w=l.getDrawings())==null?{}:w,i=(T=l.getDrawingsOrder())==null?[]:T,a=t.sort((e,t)=>i.indexOf(e)>i.indexOf(t)?-1:i.indexOf(e)<i.indexOf(t)?1:0);if(a.length>0)for(let e of a){let t=r[e],n=i.indexOf(e);if(t==null||n<0)continue;let a=v.removeOp([`drawings`,e],t),o=v.removeOp([`drawingsOrder`,n],e);b.push(a),b.push(o),C++}}_.push({t:N.INSERT,body:{dataStream:`\b`.repeat(d.length),customBlocks:d.map((e,t)=>({startIndex:t,blockId:e.drawingId}))},len:d.length});let E=be(l,m),D=v.editOp(_.serialize(),E);b.push(D);for(let e of d){let{drawingId:t}=e,n=v.insertOp([`drawings`,t],e),r=v.insertOp([`drawingsOrder`,x-C],t);b.push(n),b.push(r)}let O={id:V.id,params:{unitId:u,actions:[],textRanges:[]}};return O.params.actions=b.reduce((e,t)=>S.compose(e,t),null),!!a.syncExecuteCommand(O.id,O.params)}},At={id:`doc.command.set-drawing-arrange`,type:i.COMMAND,handler:(t,n)=>{let r=t.get(g),i=t.get(z);if(n==null)return!1;let{unitId:a,subUnitId:o,drawingIds:s,arrangeType:c}=n,l={unitId:a,subUnitId:o,drawingIds:s},u;if(c===e.forward?u=i.getForwardDrawingsOp(l):c===e.backward?u=i.getBackwardDrawingOp(l):c===e.front?u=i.getFrontDrawingsOp(l):c===e.back&&(u=i.getBackDrawingsOp(l)),u==null)return!1;let{redo:d}=u;if(d==null)return!1;let f=[],p=P.deepClone(d);p=p.slice(3),p.unshift(`drawingsOrder`),f.push(p);let m={id:V.id,params:{unitId:a,actions:[],textRanges:null}};return m.params.actions=f.reduce((e,t)=>S.compose(e,t),null),!!r.syncExecuteCommand(m.id,m.params)}},jt={id:`doc.command.ungroup-doc-image`,type:i.COMMAND,handler:(e,t)=>{let n=e.get(z);if(!t)return!1;let r=[];t.forEach(({parent:e,children:t})=>{r.push(e.unitId),t.forEach(e=>{r.push(e.unitId)})});let{unitId:i,subUnitId:a,undo:o,redo:s,objects:c}=n.getUngroupDrawingOp(t);return!1}};function Mt(e){"@babel/helpers - typeof";return Mt=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},Mt(e)}function Nt(e,t){if(Mt(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Mt(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Pt(e){var t=Nt(e,`string`);return Mt(t)==`symbol`?t:t+``}function X(e,t,n){return(t=Pt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ft=class{constructor(){X(this,`_refreshDrawings$`,new lt(null)),X(this,`refreshDrawings$`,this._refreshDrawings$.asObservable())}refreshDrawings(e){this._refreshDrawings$.next(e)}};function Z(e,t){return function(n,r){t(n,r,e)}}function Q(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}let It=class extends l{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){super(),this._context=e,this._commandService=t,this._docSelectionManagerService=n,this._renderManagerSrv=r,this._imageIoService=i,this._docDrawingService=a,this._drawingManagerService=o,this._contextService=s,this._messageService=c,this._localeService=l,this._docSelectionRenderService=u,this._docRefreshDrawingsService=d,this._fileOpenerService=f,this._updateOrderListener(),this._groupDrawingListener(),this._focusDrawingListener(),this._transformDrawingListener(),this._editAreaChangeListener()}dispose(){super.dispose(),delete this._context}async insertDocImage(){let e=await this._fileOpenerService.openFile({multiple:!0,accept:ze.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>Ve?(this._messageService.show({type:Ne.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(Ve))}),!1):t===0?!1:(await this._insertFloatImages(e),!0)}async _insertFloatImages(e){let n=[];try{n=await Promise.all(e.map(e=>this._imageIoService.saveImage(e)))}catch(e){let t=e.message,n=``;switch(t){case Ge.ERROR_EXCEED_SIZE:n=this._localeService.t(`update-status.exceedMaxSize`,String(Be/(1024*1024)));break;case Ge.ERROR_IMAGE_TYPE:n=this._localeService.t(`update-status.invalidImageType`);break;case Ge.ERROR_IMAGE:n=this._localeService.t(`update-status.invalidImage`);break;default:break}this._messageService.show({type:Ne.Error,content:n})}if(n.length===0)return;let{unitId:r}=this._context,i=[];for(let e of n){if(e==null)continue;let{imageId:n,imageSourceType:a,source:o,base64Cache:s}=e,{width:c,height:l,image:u}=await Je(s||``);this._imageIoService.addImageSourceCache(n,a,u);let d=1;if(c>Ue||l>He){let e=Ue/c,t=He/l;d=Math.min(e,t)}let p=this._getImagePosition(c*d,l*d);if(p==null)return;let m={unitId:r,subUnitId:r,drawingId:n,drawingType:f.DRAWING_IMAGE,imageSourceType:a,source:o,transform:he(p),docTransform:p,behindDoc:t.FALSE,title:``,description:``,layoutType:A.INLINE,wrapText:te.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};this._isInsertInHeaderFooter()&&(m.isMultiTransform=t.TRUE,m.transforms=m.transform?[m.transform]:null),i.push(m)}this._commandService.executeCommand(kt.id,{unitId:r,drawings:i})}_isInsertInHeaderFooter(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderById(t))==null?void 0:e.with(B).getViewModel(),r=n==null?void 0:n.getEditArea();return r===Se.HEADER||r===Se.FOOTER}_getImagePosition(e,t){let n=this._docSelectionRenderService.getActiveTextRange(),r=(n==null?void 0:n.getAbsolutePosition())||{left:0,top:0};return{size:{width:e,height:t},positionH:{relativeFrom:D.PAGE,posOffset:r.left},positionV:{relativeFrom:O.PARAGRAPH,posOffset:0},angle:0}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(At.id,{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i})}))}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{this._commandService.executeCommand(Ot.id,e)})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{this._commandService.executeCommand(jt.id,e)}))}_getCurrentSceneAndTransformer(){let{scene:e,mainComponent:t}=this._context;if(e==null||t==null)return;let n=e.getTransformerByCreate(),{docsLeft:r,docsTop:i}=t.getOffsetConfig();return{scene:e,transformer:n,docsLeft:r,docsTop:i}}_transformDrawingListener(){let e=this._getCurrentSceneAndTransformer();if(e&&e.transformer)this.disposeWithMe(e.transformer.changeEnd$.pipe(dt(30)).subscribe(e=>{this._docSelectionManagerService.refreshSelection()}));else throw Error(`transformer is not init`)}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{var t;let{transformer:n,docsLeft:r,docsTop:i}=(t=this._getCurrentSceneAndTransformer())==null?{}:t;if(e==null||e.length===0)this._contextService.setContextValue(p,!1),this._docDrawingService.focusDrawing([]),n&&n.resetProps({zeroTop:0,zeroLeft:0});else{this._contextService.setContextValue(p,!0),this._docDrawingService.focusDrawing(e),this._setDrawingSelections(e);let t=this._docSelectionRenderService.getSegment(),a=this._findSegmentIdByDrawingId(e[0].drawingId);t!==a&&this._docSelectionRenderService.setSegment(a),n&&n.resetProps({zeroTop:i,zeroLeft:r})}}))}_findSegmentIdByDrawingId(e){var t;let{unit:n}=this._context,{body:r,headers:i={},footers:a={}}=n.getSnapshot();if(((t=r==null?void 0:r.customBlocks)==null?[]:t).some(t=>t.blockId===e))return``;for(let t of Object.keys(i)){var o;if((o=i[t].body.customBlocks)!=null&&o.some(t=>t.blockId===e))return t}for(let t of Object.keys(a)){var s;if((s=a[t].body.customBlocks)!=null&&s.some(t=>t.blockId===e))return t}return``}_updateDrawingsEditStatus(){var e;if(!this._context)return;let{unit:n,scene:r,unitId:i}=this._context,a=(e=this._renderManagerSrv.getRenderById(i))==null?void 0:e.with(B).getViewModel();if(a==null||n==null)return;let{drawings:o={}}=n.getSnapshot(),s=a.getEditArea()===Se.BODY;for(let e of Object.keys(o)){let n=o[e],a=qe({unitId:i,drawingId:n.drawingId,subUnitId:i}),c=r.fuzzyMathObjects(a,!0);if(c.length)for(let e of c){r.detachTransformerFrom(e);try{e.setOpacity(.5)}catch{}if(s&&n.isMultiTransform!==t.TRUE||!s&&n.isMultiTransform===t.TRUE){n.allowTransform!==!1&&r.attachTransformerTo(e);try{e.setOpacity(1)}catch{}}}}}_editAreaChangeListener(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderById(t))==null?void 0:e.with(B).getViewModel();n!=null&&(this._updateDrawingsEditStatus(),this.disposeWithMe(n.editAreaChange$.subscribe(()=>{this._updateDrawingsEditStatus()})),this.disposeWithMe(this._docRefreshDrawingsService.refreshDrawings$.subscribe(e=>{e!=null&&queueMicrotask(()=>{this._updateDrawingsEditStatus()})})),this.disposeWithMe(this._commandService.onCommandExecuted(async e=>{e.id===V.id&&queueMicrotask(()=>{this._updateDrawingsEditStatus()})})))}_setDrawingSelections(e){var t,n;let{unit:r}=this._context,i=(t=(n=r.getSnapshot().body)==null?void 0:n.customBlocks)==null?[]:t,a=e.map(e=>{let t=e.drawingId,n=i.find(e=>e.blockId===t);return n?n.startIndex:null}).filter(e=>e!==null).map(e=>({startOffset:e,endOffset:e+1}));this._docSelectionManagerService.replaceDocRanges(a)}};It=Q([Z(1,g),Z(2,b(se)),Z(3,U),Z(4,We),Z(5,z),Z(6,G),Z(7,v),Z(8,$e),Z(9,b(T)),Z(10,b(H)),Z(11,b(Ft)),Z(12,Ze)],It);const Lt={id:`doc.command.insert-float-image`,type:i.COMMAND,handler:e=>{var t,n;let r=e.get(y),i=e.get(U);return(t=(n=Ae(I.UNIVER_DOC,r,i))==null?void 0:n.with(It).insertDocImage())==null?!1:t}};let $=function(e){return e.INLINE=`inline`,e.BEHIND_TEXT=`behindText`,e.IN_FRONT_OF_TEXT=`inFrontOfText`,e.WRAP_SQUARE=`wrapSquare`,e.WRAP_TOP_AND_BOTTOM=`wrapTopAndBottom`,e}({});const Rt={[$.INLINE]:A.INLINE,[$.WRAP_SQUARE]:A.WRAP_SQUARE,[$.WRAP_TOP_AND_BOTTOM]:A.WRAP_TOP_AND_BOTTOM,[$.IN_FRONT_OF_TEXT]:A.WRAP_NONE,[$.BEHIND_TEXT]:A.WRAP_NONE};function zt(e,t,n,r,i,a,o){var s;let c=new M,l=S.getInstance(),u=[],d=a.getSelfOrHeaderFooterModel(t).getBody(),f=a.getSelfOrHeaderFooterModel(e).getBody();if(d==null||f==null)return;let p=(s=d.customBlocks)==null||(s=s.find(e=>e.blockId===i))==null?void 0:s.startIndex;if(p!=null){if(r=Math.min(f.dataStream.length-2,r),e===t){if(r<p?(r>0&&c.push({t:N.RETAIN,len:r}),c.push({t:N.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:i}]},len:1}),c.push({t:N.RETAIN,len:p-r}),c.push({t:N.DELETE,len:1})):(p>0&&c.push({t:N.RETAIN,len:p}),c.push({t:N.DELETE,len:1}),r-p-1>0&&c.push({t:N.RETAIN,len:r-p-1}),c.push({t:N.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:i}]},len:1})),r!==p){let e=be(a,t),n=l.editOp(c.serialize(),e);u.push(n)}}else{p>0&&c.push({t:N.RETAIN,len:p}),c.push({t:N.DELETE,len:1});let s=be(a,t),d=l.editOp(c.serialize(),s);u.push(d),c.empty(),r>0&&c.push({t:N.RETAIN,len:r}),c.push({t:N.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:i}]},len:1}),s=be(a,e),d=l.editOp(c.serialize(),s),u.push(d),o.setSegment(e),o.setSegmentPage(n)}return u}}const Bt={id:`doc.command.update-doc-drawing-wrapping-style`,type:i.COMMAND,handler:(e,n)=>{if(n==null)return!1;let{drawings:r,wrappingStyle:i,unitId:a}=n,o=e.get(g),s=e.get(y),c=e.get(U).getRenderById(a),l=c==null?void 0:c.with(B).getSkeleton().getSkeletonData(),u=c==null?void 0:c.with(B).getViewModel(),d=c==null?void 0:c.scene,f=s.getCurrentUniverDocInstance();if(f==null||l==null||d==null||u==null)return!1;let p=u.getEditArea(),m=d.getTransformerByCreate(),{pages:h,skeHeaders:_,skeFooters:v}=l,b=S.getInstance(),x=[],{drawings:C={}}=f.getSnapshot();for(let e of r){let{drawingId:n}=e,r=C[n].layoutType,a=Rt[i];if(r!==a){let e=b.replaceOp([`drawings`,n,`layoutType`],r,a);x.push(e)}if(i===$.BEHIND_TEXT||i===$.IN_FRONT_OF_TEXT){let e=C[n].behindDoc,r=i===$.BEHIND_TEXT?t.TRUE:t.FALSE;if(e!==r){let t=b.replaceOp([`drawings`,n,`behindDoc`],e,r);x.push(t)}}if(i===$.INLINE)continue;let o=null,s=0,c=0;for(let e of h){let{headerId:t,footerId:r,marginTop:i,marginLeft:a,marginBottom:l,pageWidth:u,pageHeight:d}=e;switch(p){case Se.HEADER:{var w;let e=(w=_.get(t))==null?void 0:w.get(u);e!=null&&e.skeDrawings.has(n)&&(o=e.skeDrawings.get(n),s=e.marginTop,c=a);break}case Se.FOOTER:{var T;let e=(T=v.get(r))==null?void 0:T.get(u);e!=null&&e.skeDrawings.has(n)&&(o=e.skeDrawings.get(n),s=d-l+e.marginTop,c=a);break}case Se.BODY:e.skeDrawings.has(n)&&(o=e.skeDrawings.get(n),s=i,c=a);break}if(o!=null)break}if(o!=null){let{aTop:e,aLeft:t}=o,r=C[n].docTransform.positionH,i=t;r.relativeFrom===D.MARGIN?i-=c:r.relativeFrom===D.COLUMN&&(i-=o.columnLeft);let a={relativeFrom:r.relativeFrom,posOffset:i};if(r.posOffset!==a.posOffset){let e=b.replaceOp([`drawings`,n,`docTransform`,`positionH`],r,a);x.push(e)}let l=C[n].docTransform.positionV,u=e;l.relativeFrom===O.PAGE?u+=s:l.relativeFrom===O.LINE?u-=o.lineTop:l.relativeFrom===O.PARAGRAPH&&(u-=o.blockAnchorTop);let d={relativeFrom:l.relativeFrom,posOffset:u};if(l.posOffset!==d.posOffset){let e=b.replaceOp([`drawings`,n,`docTransform`,`positionV`],l,d);x.push(e)}}}let E={id:V.id,params:{unitId:a,actions:[],textRanges:null}};E.params.actions=x.reduce((e,t)=>S.compose(e,t),null);let k=o.syncExecuteCommand(E.id,E.params);return m.refreshControls(),!!k}},Vt={id:`doc.command.update-doc-drawing-distance`,type:i.COMMAND,handler:(e,t)=>{if(t==null)return!1;let n=e.get(g),r=e.get(y).getCurrentUniverDocInstance();if(r==null)return!1;let{drawings:i,dist:a,unitId:o}=t,s=S.getInstance(),c=[],{drawings:l={}}=r.getSnapshot();for(let e of i){let{drawingId:t}=e;for(let[e,n]of Object.entries(a)){let r=l[t][e];if(r!==n){let i=s.replaceOp([`drawings`,t,e],r,n);c.push(i)}}}let u={id:V.id,params:{unitId:o,actions:[],textRanges:null}};return u.params.actions=c.reduce((e,t)=>S.compose(e,t),null),!!n.syncExecuteCommand(u.id,u.params)}},Ht={id:`doc.command.update-doc-drawing-wrap-text`,type:i.COMMAND,handler:(e,t)=>{if(t==null)return!1;let n=e.get(g),r=e.get(y).getCurrentUniverDocInstance();if(r==null)return!1;let{drawings:i,wrapText:a,unitId:o}=t,s=S.getInstance(),c=[],{drawings:l={}}=r.getSnapshot();for(let e of i){let{drawingId:t}=e,n=l[t].wrapText;if(n!==a){let e=s.replaceOp([`drawings`,t,`wrapText`],n,a);c.push(e)}}let u={id:V.id,params:{unitId:o,actions:[],textRanges:null}};return u.params.actions=c.reduce((e,t)=>S.compose(e,t),null),!!n.syncExecuteCommand(u.id,u.params)}},Ut={id:`doc.command.update-drawing-doc-transform`,type:i.COMMAND,handler:(e,t)=>{if(t==null)return!1;let n=e.get(g),r=e.get(y),i=e.get(U).getRenderById(t.unitId),a=i==null?void 0:i.scene;if(a==null)return!1;let o=a.getTransformerByCreate(),s=r.getCurrentUniverDocInstance();if(s==null)return!1;let{drawings:c,unitId:l}=t,u=S.getInstance(),d=[],{drawings:f={}}=s.getSnapshot();for(let e of c){let{drawingId:t,key:n,value:r}=e,i=f[t].docTransform[n];if(!P.diffValue(i,r)){let e=u.replaceOp([`drawings`,t,`docTransform`,n],i,r);d.push(e)}}let p={id:V.id,params:{unitId:l,actions:[],textRanges:null,debounce:!0}};p.params.actions=d.reduce((e,t)=>S.compose(e,t),null);let m=n.syncExecuteCommand(p.id,p.params);return o.refreshControls(),!!m}},Wt={id:`doc.command.move-inline-drawing`,type:i.COMMAND,handler:(e,t)=>{var n,r;if(t==null)return!1;let i=e.get(U),a=(n=i.getRenderById(t.unitId))==null?void 0:n.with(H),o=e.get(Ft),s=i.getRenderById(t.unitId),c=s==null?void 0:s.scene,l=s==null?void 0:s.with(B).getSkeleton();if(c==null||a==null)return!1;let u=c.getTransformerByCreate(),d=e.get(g),f=e.get(y).getCurrentUniverDocInstance();if(f==null)return!1;let{drawing:p,unitId:m,offset:h,segmentId:_,segmentPage:v,needRefreshDrawings:b}=t;if(b)return o.refreshDrawings(l),u.refreshControls(),!0;let x=[],{drawingId:C}=p,w=zt(_,(r=a.getSegment())==null?``:r,v,h,C,f,a);if(w==null||w.length===0)return o.refreshDrawings(l),u.refreshControls(),!1;x.push(...w);let T={id:V.id,params:{unitId:m,actions:[],textRanges:null}};T.params.actions=x.reduce((e,t)=>S.compose(e,t),null);let E=d.syncExecuteCommand(T.id,T.params);return u.refreshControls(),!!E}},Gt={id:`doc.command.transform-non-inline-drawing`,type:i.COMMAND,handler:(e,t)=>{var n,r;if(t==null)return!1;let i=e.get(U),a=(n=i.getRenderById(t.unitId))==null?void 0:n.with(H),o=i.getRenderById(t.unitId),s=o==null?void 0:o.scene;if(s==null||a==null)return!1;let c=s.getTransformerByCreate(),l=e.get(g),u=e.get(y).getCurrentUniverDocInstance();if(u==null)return!1;let{drawing:d,unitId:f,offset:p,docTransform:m,segmentId:h,segmentPage:_}=t,v=[],{drawingId:b}=d,x=zt(h,(r=a.getSegment())==null?``:r,_,p,b,u,a);if(x==null)return!1;x.length>0&&v.push(...x);let C=S.getInstance(),{drawings:w={}}=u.getSnapshot(),{positionH:T,positionV:E,size:D,angle:O}=w[b].docTransform;if(!P.diffValue(T,m.positionH)){let e=C.replaceOp([`drawings`,b,`docTransform`,`positionH`],T,m.positionH);v.push(e)}if(!P.diffValue(E,m.positionV)){let e=C.replaceOp([`drawings`,b,`docTransform`,`positionV`],E,m.positionV);v.push(e)}if(!P.diffValue(D,m.size)){let e=C.replaceOp([`drawings`,b,`docTransform`,`size`],D,m.size);v.push(e)}if(!P.diffValue(O,m.angle)){let e=C.replaceOp([`drawings`,b,`docTransform`,`angle`],O,m.angle);v.push(e)}let k={id:V.id,params:{unitId:f,actions:[],textRanges:null,debounce:!0}};k.params.actions=v.reduce((e,t)=>S.compose(e,t),null);let A=l.syncExecuteCommand(k.id,k.params);return c.refreshControls(),!!A}},Kt={id:`doc.command.move-drawing`,type:i.COMMAND,handler:(e,t)=>{let n=e.get(g),r=e.get(z),i=e.get(y),a=e.get(U),{direction:o}=t,s=r.getFocusDrawings();if(s.length===0)return!1;let l=s[0].unitId,u=a.getRenderById(l),d=u==null?void 0:u.scene;if(d==null)return!1;let f=d.getTransformerByCreate(),p=i.getUniverDocInstance(l),m=s.map(e=>{var t;let{drawingId:n}=e,r=p==null||(t=p.getSnapshot().drawings)==null?void 0:t[n];if(r==null||r.layoutType===A.INLINE)return null;let{positionH:i,positionV:a}=r.docTransform,s={...i},l={...a};if(o===c.UP){var u;l.posOffset=((u=l.posOffset)==null?0:u)-2}else if(o===c.DOWN){var d;l.posOffset=((d=l.posOffset)==null?0:d)+2}else if(o===c.LEFT){var f;s.posOffset=((f=s.posOffset)==null?0:f)-2}else if(o===c.RIGHT){var m;s.posOffset=((m=s.posOffset)==null?0:m)+2}return{drawingId:n,key:o===c.UP||o===c.DOWN?`positionV`:`positionH`,value:o===c.UP||o===c.DOWN?l:s}}).filter(e=>e!=null);if(m.length===0)return!1;let h=n.syncExecuteCommand(Ut.id,{unitId:l,subUnitId:l,drawings:m});return f.refreshControls(),!!h}},qt={id:`doc.operation.clear-drawing-transformer`,type:i.MUTATION,handler:(e,t)=>{let n=e.get(U);return t.forEach(e=>{var t;(t=n.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},Jt=`COMPONENT_DOC_DRAWING_PANEL`,Yt={id:`sidebar.operation.doc-image`,type:i.COMMAND,handler:async(e,t)=>{let n=e.get(tt),r=e.get(T),i=e.get(G);switch(t.value){case`open`:n.open({header:{title:r.t(`docImage.panel.title`)},children:{label:Jt},onClose:()=>{i.focusDrawing(null)},width:360});break;default:n.close();break}return!0}},Xt={id:`doc.operation.edit-doc-image`,type:i.OPERATION,handler:(e,t)=>{let n=e.get(G),r=e.get(g);return t==null?!1:(n.focusDrawing([t]),r.executeCommand(Yt.id,{value:`open`}),!0)}};function Zt(e,t,n=1,r=0){let{top:i,left:a,bottom:o,right:s}=e,c=s-a,l=o-i,{viewportScrollX:u,viewportScrollY:d}=t.getViewport(me.VIEW_MAIN),{scaleX:f,scaleY:p}=t.getAncestorScale();return{startX:(a-u)*f,startY:(i-d)*p,endX:(a+c-u)*f,endY:(i+l-d)*p,width:c*f,height:l*p,rotate:r,absolute:{left:!1,top:!1},opacity:n==null?1:n}}function Qt(e,t){let{top:n,left:r,width:i,height:a,angle:o,opacity:s}=e;return Zt({top:n,left:r,bottom:n+a,right:r+i},t.scene,s,o)}let $t=class extends l{constructor(e,t,n,r,i,a){super(),this._renderManagerService=e,this._drawingManagerService=t,this._drawingRenderService=n,this._canvasFloatDomService=r,this._univerInstanceService=i,this._commandService=a,X(this,`_domLayerInfoMap`,new Map),this._initialize()}dispose(){super.dispose()}_initialize(){this._drawingAddRemoveListener(),this._initScrollAndZoomEvent()}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e);if(t==null)return null;let n=t.scene;return{scene:n,transformer:n.getTransformerByCreate(),renderUnit:t,canvas:t.engine.getCanvasElement()}}_drawingAddRemoveListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{this._insertRects(e)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}_insertRects(e){e.forEach(async e=>{let{unitId:t}=e;if(!this._univerInstanceService.getUnit(t,I.UNIVER_DOC))return;let n=this._getSceneAndTransformerByDrawingSearch(t);if(n==null)return;let r=this._drawingManagerService.getDrawingByParam(e);if(r==null)return;let i=await this._drawingRenderService.renderFloatDom(r,n.scene);if(!(i==null||i.length===0))for(let e of i){this._addHoverForRect(e);let i=new u,a=new lt(Qt(e,n.renderUnit)),o=n.canvas,s=r.data,c={dispose:i,rect:e,position$:a,unitId:t};this._canvasFloatDomService.addFloatDom({position$:a,id:r.drawingId,componentKey:r.componentKey,onPointerDown:e=>{o.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{o.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{o.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{o.dispatchEvent(new WheelEvent(e.type,e))},data:s,unitId:t});let l=e.onTransformChange$.subscribeEvent(()=>{let t=Qt(e,n.renderUnit);a.next(t)});i.add(()=>{this._canvasFloatDomService.removeFloatDom(r.drawingId)}),l&&i.add(l),this._domLayerInfoMap.set(r.drawingId,c)}})}_addHoverForRect(e){this.disposeWithMe(ae(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=xe.GRAB}))),this.disposeWithMe(ae(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=xe.DEFAULT})))}_removeDom(e){let t=this._domLayerInfoMap.get(e);if(!t)return;let{unitId:n}=t;this._domLayerInfoMap.delete(e),t.dispose.dispose();let r=this._getSceneAndTransformerByDrawingSearch(n);r&&r.scene.removeObject(t.rect)}_initScrollAndZoomEvent(){let e=e=>{let t=this._getSceneAndTransformerByDrawingSearch(e);t&&this._domLayerInfoMap.forEach(n=>{if(n.unitId!==e)return;let r=Qt(n.rect,t.renderUnit);n.position$.next(r)})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(I.UNIVER_DOC).pipe(pt(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t}:null}),ht(e=>e?ne(e.render.scene.getViewport(me.VIEW_MAIN).onScrollAfter$).pipe(pt(()=>({unitId:e.unitId}))):mt(null))).subscribe(t=>{if(!t)return;let{unitId:n}=t;e(n)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===fe.id){let{unitId:n}=t.params;e(n)}}))}insertFloatDom(e,t){var n,r,i;let a=this._univerInstanceService.getCurrentUnitOfType(I.UNIVER_DOC);if(!a)return!1;let o=this._getSceneAndTransformerByDrawingSearch(a.getUnitId());if(!o)return!1;let s=(n=o.renderUnit.with(B).getSkeleton().getSkeletonData())==null?void 0:n.pages[0];if(!s)return!1;let{pageWidth:c,marginLeft:l,marginRight:u}=s,d=c-l-u,p={size:{width:(r=t.width)==null?d:r,height:t.height},positionH:{relativeFrom:D.PAGE,posOffset:0},positionV:{relativeFrom:O.PAGE,posOffset:0},angle:0},m=(i=t.drawingId)==null?re():i,h={unitId:a.getUnitId(),drawings:[{drawingId:m,drawingType:f.DRAWING_DOM,subUnitId:a.getUnitId(),unitId:a.getUnitId(),...e,title:``,description:``,docTransform:p,layoutType:A.INLINE,transform:he(p)}]};return this._commandService.syncExecuteCommand(kt.id,h),m}};$t=Q([Z(0,U),Z(1,G),Z(2,b(yt)),Z(3,b(Ye)),Z(4,y),Z(5,g)],$t);const en=`doc.menu.image`,tn=Lt.id,nn=e=>{let t=e.get(se),n=e.get(y);return new ut(e=>{let r=t.textSelection$.subscribe(()=>{let r=t.getActiveTextRange();if(r){var i;let{segmentId:t,startOffset:a,endOffset:o}=r,s=n.getCurrentUniverDocInstance(),c=s==null||(i=s.getSelfOrHeaderFooterModel(t).getBody())==null?void 0:i.tables;if(c&&c.length&&c.some(e=>{let{startIndex:t,endIndex:n}=e;return a>=t&&a<n||o>=t&&o<n})){e.next(!0);return}}else{e.next(!0);return}e.next(!1)});return()=>r.unsubscribe()})};function rn(e){return{id:en,type:rt.SUBITEMS,icon:`AddImageIcon`,tooltip:`docImage.title`,disabled$:nn(e),hidden$:ct(e,I.UNIVER_DOC,void 0,a)}}function an(e){return{id:tn,title:`docImage.upload.float`,type:rt.BUTTON,hidden$:ct(e,I.UNIVER_DOC,void 0,a)}}var on=`@univerjs/docs-drawing-ui`,sn=`0.19.0`;const cn=`docs-drawing-ui.config`;Symbol(cn);const ln={};function un(e){if(S.isNoop(e)||!Array.isArray(e))return null;let t=e.find(e=>Array.isArray(e)&&(e==null?void 0:e[0])===`drawings`);if(t==null||!Array.isArray(t)||t.length<3||typeof t[1]==`string`&&typeof t[2]!=`object`||Array.isArray(t[1])&&typeof t[1][1]!=`object`)return null;let n=[];if(Array.isArray(t==null?void 0:t[1])){for(let e of t)if(Array.isArray(e)){var r,i;n.push({type:!(e==null||(r=e[1])==null)&&r.i?`add`:`remove`,drawingId:e==null?void 0:e[0],drawing:e==null||(i=e[1])==null?void 0:i.i})}}else{var a,o;n.push({type:(a=t[2])!=null&&a.i?`add`:`remove`,drawingId:t[1],drawing:(o=t[2])==null?void 0:o.i})}return n}function dn(e){if(!Array.isArray(e)||e.length<3||e[0]!==`drawingsOrder`)return[];let t=[];for(let n=1;n<e.length;n++){let r=e[n];if(Array.isArray(r)&&typeof r[0]==`number`&&typeof r[1]==`object`)t.push(r[0]);else{t.length=0;break}}return t}let fn=class extends l{constructor(e,t,n,r,i){super(),this._univerInstanceService=e,this._commandService=t,this._drawingManagerService=n,this._docDrawingService=r,this._renderManagerService=i,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id!==V.id)return;let{unitId:t,actions:n}=e.params,r=un(n);if(r!=null)for(let{type:e,drawingId:n,drawing:i}of r)e===`add`?this._addDrawings(t,[i]):this._removeDrawings(t,[n])})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==V.id)return;let{unitId:t,actions:n}=e.params;dn(n).length>0&&this._updateDrawingsOrder(t)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var t;if(e.id!==F.id&&e.id!==ee.id)return;let n=(t=this._univerInstanceService.getCurrentUniverDocInstance())==null?void 0:t.getUnitId(),r=this._drawingManagerService.getFocusDrawings();if(n==null||r.length===0)return;let i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(a==null)return!1;a.getTransformerByCreate().refreshControls()}))}_addDrawings(e,t){let n=this._drawingManagerService,r=this._docDrawingService,{subUnitId:i,redo:a,objects:o}=this._docDrawingService.getBatchAddOp(t);n.applyJson1(e,i,a),r.applyJson1(e,i,a),n.addNotification(o),r.addNotification(o)}_removeDrawings(e,t){let n=this._drawingManagerService,r=this._docDrawingService,{subUnitId:i,redo:a,objects:o}=this._docDrawingService.getBatchRemoveOp(t.map(t=>({unitId:e,subUnitId:e,drawingId:t})));n.applyJson1(e,i,a),r.applyJson1(e,i,a),n.removeNotification(o),r.removeNotification(o)}_updateDrawingsOrder(e){let t=this._univerInstanceService.getUniverDocInstance(e);if(t==null)return;let n=t.getSnapshot().drawingsOrder;if(n==null)return;let r=this._drawingManagerService,i=this._docDrawingService;r.setDrawingOrder(e,e,n),i.setDrawingOrder(e,e,n);let a={unitId:e,subUnitId:e,drawingIds:n};r.orderNotification(a),i.orderNotification(a)}};fn=Q([Z(0,y),Z(1,g),Z(2,G),Z(3,z),Z(4,U)],fn);const pn=e=>{let{floatDomInfos:t,scene:n,offset:r,bound:i}=e,a=i.right-i.left,o=i.bottom-i.top;return J(`div`,{className:`univer-absolute univer-left-0 univer-top-0`,children:Tt(()=>t.map(e=>{let{width:t=0,height:r=0,left:i=0,top:a=0}=e.transform,o=Zt({left:i,right:i+t,top:a,bottom:a+r},n),s={position$:new lt(o),position:o,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,s]}).filter(([e,t])=>!(t.position.endX<0||t.position.endY<0||t.position.startX>a||t.position.startY>o)),[t,n,r,a,o]).map(([e,t])=>J(it,{layer:t,id:e,position:t.position},e))})};let mn=class extends l{constructor(e,t,n,r,i){super(),this._docPrintInterceptorService=e,this._drawingRenderService=t,this._drawingManagerService=n,this._componetManager=r,this._injector=i,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._docPrintInterceptorService.interceptor.intercept(this._docPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(e,t,n)=>{let{unitId:r,scene:i}=t,a=this._drawingManagerService.getDrawingDataForUnit(r),o=a==null?void 0:a[r];return o&&o.order.forEach(e=>{let t=o.data[e];t.drawingType!==f.DRAWING_CHART&&t.drawingType!==f.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,i)}),n()}}))}_initPrintingDom(){this.disposeWithMe(this._docPrintInterceptorService.interceptor.intercept(this._docPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,n)=>{let{unitId:r}=t,i=this._drawingManagerService.getDrawingDataForUnit(r),a=i==null?void 0:i[r];if(a){let i=a.order.map(e=>{let t=a.data[e];if(t.drawingType===f.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(o)};if(t.drawingType===f.DRAWING_DOM){let e=this._docPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return Le(J(st(pn,this._injector),{unitId:r,floatDomInfos:i,scene:t.scene,skeleton:t.skeleton,offset:t.offset,bound:t.bound}),t.root),e==null||e.add(()=>{Re(t.root)}),n(e)}}}))}};mn=Q([Z(0,b(le)),Z(1,b(yt)),Z(2,G),Z(3,b(Xe)),Z(4,b(x))],mn);function hn(e){let{path:t}=e;return t.some(e=>e===`cells`)}let gn=class extends l{constructor(e,t,n,r){super(),this._commandService=e,this._univerInstanceService=t,this._drawingManagerService=n,this._renderManagerService=r,X(this,`_liquid`,new we),X(this,`_listenerOnImageMap`,new Set),X(this,`_transformerCache`,new Map),X(this,`_anchorShape`,void 0),this._init()}_init(){this._listenDrawingFocus()}_listenDrawingFocus(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{if(e.length!==0)for(let t of e){let{unitId:e}=t;this._listenerOnImageMap.has(e)||(this._listenTransformerChange(e),this._listenerOnImageMap.add(e))}}))}_listenTransformerChange(e){var t;let n=(t=this._getSceneAndTransformerByDrawingSearch(e))==null?void 0:t.transformer;if(n==null)return;this.disposeWithMe(ae(n.changeStart$.subscribe(e=>{this._transformerCache.clear();let{objects:t}=e;for(let e of t.values()){var n;let{oKey:t,width:r,height:i,left:a,top:o,angle:s}=e,c=this._drawingManagerService.getDrawingOKey(t);if(c==null)continue;let l=this._univerInstanceService.getUniverDocInstance(c.unitId),u=l==null||(n=l.getSnapshot().drawings)==null?void 0:n[c.drawingId];if((u==null?void 0:u.layoutType)===A.INLINE)try{e.setOpacity(.2)}catch{}u!=null&&this._transformerCache.set(c.drawingId,{drawing:u,top:o,left:a,width:r,height:i,angle:s})}})));let r=R(this._updateMultipleDrawingDocTransform.bind(this),50);R(this._nonInlineDrawingTransform.bind(this),50),this.disposeWithMe(ae(n.changing$.subscribe(e=>{let{objects:t,offsetX:n,offsetY:i}=e;if(t.size>1)r(t);else if(t.size===1){let e=this._transformerCache.values().next().value,{width:r,height:a,top:o,left:s,angle:c}=t.values().next().value;if(e&&r===e.width&&a===e.height&&o===e.top&&s===e.left&&c===e.angle)return;e&&(e.drawing.layoutType,A.INLINE),e&&e.drawing.layoutType===A.INLINE&&n!=null&&i!=null&&this._updateInlineDrawingAnchor(e.drawing,n,i)}}))),this.disposeWithMe(ae(n.changeEnd$.subscribe(e=>{let{objects:t,offsetX:n,offsetY:r}=e;for(let e of t.values()){let t=this._drawingManagerService.getDrawingOKey(e.oKey);if(t==null)continue;let n=this._transformerCache.get(t==null?void 0:t.drawingId);if((n==null?void 0:n.drawing.layoutType)===A.INLINE)try{e.setOpacity(1)}catch{}}if(this._anchorShape&&this._anchorShape.hide(),t.size>1)this._updateMultipleDrawingDocTransform(t);else if(t.size===1){let e=this._transformerCache.values().next().value,i=t.values().next().value,{width:a,height:o,top:s,left:c,angle:l}=i;if(e&&a===e.width&&o===e.height&&s===e.top&&c===e.left&&l===e.angle)return;e&&e.drawing.layoutType===A.INLINE?a!==e.width||o!==e.height||l!==e.angle?this._updateDrawingSize(e,i):n!=null&&r!=null&&this._moveInlineDrawing(e.drawing,n,r):e&&this._nonInlineDrawingTransform(e.drawing,i)}this._transformerCache.clear()})))}_updateMultipleDrawingDocTransform(e){if(e.size<1)return;let t=[],n,r;for(let i of e.values()){let{oKey:e,left:a,top:o,angle:s}=i,{width:c,height:l}=i,u=this._drawingManagerService.getDrawingOKey(e);if(u==null)continue;n==null&&(n=u.unitId),r==null&&(r=u.subUnitId);let d=this._transformerCache.get(u.drawingId);if(d==null)continue;let{drawing:f,top:p,left:m,width:h,height:g,angle:_}=d,{width:v,height:y}=this._getPageContentSize(f);if(c=Math.min(c,v),l=Math.min(l,y),(h!==c||g!==l)&&t.push({drawingId:u.drawingId,key:`size`,value:{width:c,height:l}}),_!==s&&t.push({drawingId:u.drawingId,key:`angle`,value:s}),p!==o||m!==a){let e=o-p,n=a-m;e!==0&&t.push({drawingId:u.drawingId,key:`positionV`,value:{relativeFrom:f.docTransform.positionV.relativeFrom,posOffset:f.docTransform.positionV.posOffset+e}}),n!==0&&t.push({drawingId:u.drawingId,key:`positionH`,value:{relativeFrom:f.docTransform.positionH.relativeFrom,posOffset:f.docTransform.positionH.posOffset+n}})}}t.length>0&&n&&r&&this._commandService.executeCommand(Ut.id,{unitId:n,subUnitId:r,drawings:t})}_updateDrawingAnchor(e){if(this._transformerCache.size!==1)return;let t=this._transformerCache.values().next().value,n=e.values().next().value;this._getDrawingAnchor(t.drawing,n)}_updateInlineDrawingAnchor(e,t,n){var r;if(this._transformerCache.size!==1)return;let{contentBoxPointGroup:i}=(r=this._getInlineDrawingAnchor(e,t,n))==null?{}:r;i!=null&&this._createOrUpdateInlineAnchor(e.unitId,i)}_getInlineDrawingAnchor(e,t,n){var r,i;let a=this._renderManagerService.getRenderById(e.unitId),o=a==null?void 0:a.with(B).getSkeleton();if(a==null)return;let{mainComponent:s,scene:c}=a,l=s,u=c.getViewports()[0],{pageLayoutType:d=Te.VERTICAL,pageMarginLeft:f,pageMarginTop:p}=l.getOffsetConfig(),m=null,h=!1,g=-1,_=``,v=this._getTransformCoordForDocumentOffset(l,u,t,n);if(v==null)return;let y=(r=this._renderManagerService.getRenderById(e.unitId))==null?void 0:r.with(H);if(y==null)return;let b=o==null?void 0:o.findNodeByCoord(v,d,f,p,{strict:!1,segmentId:y.getSegment(),segmentPage:y.getSegmentPage()});if(b){let{node:e,ratioX:t,segmentPage:n,segmentId:r}=b;h=t<.5,m=e,g=n,_=r}if(m==null)return;let x=o==null?void 0:o.findPositionByGlyph(m,g),S=this._getDocObject();if(x==null||o==null||S==null||hn(x))return;let C={...x,isBack:h},{cursorList:w,contentBoxPointGroup:T}=new de(S.document.getOffsetConfig(),o).getRangePointData(C,C),{startOffset:E}=(i=ye(w))==null?{}:i;if(E!=null)return{offset:E,contentBoxPointGroup:T,segmentId:_,segmentPage:g}}_getDrawingAnchor(e,t){var n,r,i,a,o;let s=this._renderManagerService.getRenderById(e.unitId),c=s==null?void 0:s.with(B).getSkeleton(),l=c==null?void 0:c.getSkeletonData();if(l==null||s==null)return;let{pages:u,skeHeaders:d,skeFooters:f}=l,{mainComponent:p,scene:m}=s,h=p,g=m.getViewports()[0],{pageLayoutType:_=Te.VERTICAL,pageMarginLeft:v,pageMarginTop:y,docsLeft:b,docsTop:x}=h.getOffsetConfig(),{left:S,top:C,angle:w}=t,{width:T,height:E}=t,{positionV:k,positionH:A}=e.docTransform,{width:ee,height:j}=this._getPageContentSize(e);T=Math.min(T,ee),E=Math.min(E,j);let M=null,N=``,P=-1,F={...e.docTransform,size:{width:T,height:E},angle:w},{x:I,y:te}=m.getViewportScrollXY(g),ne=this._getTransformCoordForDocumentOffset(h,g,S-I,C-te);if(ne==null)return;let re=(n=this._renderManagerService.getRenderById(e.unitId))==null?void 0:n.with(H);if(re==null)return;let ie=c==null?void 0:c.findNodeByCoord(ne,_,v,y,{strict:!1,segmentId:re.getSegment(),segmentPage:re.getSegmentPage()});if(ie){let{node:e,segmentPage:t,segmentId:n}=ie;M=e,P=t,N=n}if(M==null)return;let L=(r=M.parent)==null?void 0:r.parent,R=L==null?void 0:L.parent,ae=(i=R==null?void 0:R.lines.find(e=>e.paragraphIndex===(L==null?void 0:L.paragraphIndex)&&e.paragraphStart))==null?R==null?void 0:R.lines[0]:i,z=R==null||(a=R.parent)==null?void 0:a.parent;if(L==null||R==null||ae==null||z==null)return;this._liquid.reset();let oe=z.type;for(let e of u){let{headerId:t,footerId:n,pageHeight:r,pageWidth:i,marginLeft:a,marginBottom:o}=e,s=u.indexOf(e);if(P>-1&&s===P){switch(oe){case Ce.HEADER:{var se;let e=(se=d.get(t))==null?void 0:se.get(i);if(e)this._liquid.translatePagePadding({marginTop:e.marginTop,marginLeft:a});else throw Error(`header skeleton not found`);break}case Ce.FOOTER:{var V;let e=(V=f.get(n))==null?void 0:V.get(i);if(e)this._liquid.translatePagePadding({marginTop:r-o+e.marginTop,marginLeft:a});else throw Error(`footer skeleton not found`);break}}break}if(this._liquid.translatePagePadding(e),e===z)break;this._liquid.restorePagePadding(e),this._liquid.translatePage(e,_,v,y)}if(k.relativeFrom===O.LINE)M=L.divides[0].glyphGroup[0];else{var ce,le;M=(ce=(le=ae.divides)==null||(le=le[0])==null||(le=le.glyphGroup)==null?void 0:le[0])==null?M:ce}switch(F.positionH={relativeFrom:A.relativeFrom,posOffset:S-this._liquid.x-b},A.relativeFrom){case D.MARGIN:F.positionH.posOffset=S-this._liquid.x-b-z.marginLeft;break;case D.COLUMN:F.positionH.posOffset=S-this._liquid.x-b-R.left;break}switch(F.positionV={relativeFrom:k.relativeFrom,posOffset:C-this._liquid.y-x},k.relativeFrom){case O.PAGE:F.positionV.posOffset=C-this._liquid.y-x-z.marginTop;break;case O.LINE:F.positionV.posOffset=C-this._liquid.y-x-L.top;break;case O.PARAGRAPH:F.positionV.posOffset=C-this._liquid.y-x-ae.top;break}if(M==null)return;let ue=c==null?void 0:c.findPositionByGlyph(M,P),fe=this._getDocObject();if(ue==null||c==null||fe==null||hn(ue))return;let pe={...ue,isBack:!1},{cursorList:me}=new de(fe.document.getOffsetConfig(),c).getRangePointData(pe,pe),{startOffset:he}=(o=ye(me))==null?{}:o;if(he!=null)return{offset:he,docTransform:F,segmentId:N,segmentPage:P}}_updateDrawingSize(e,t){let n=[],{drawing:r,width:i,height:a,angle:o}=e,{unitId:s,subUnitId:c}=r,{width:l,height:u,angle:d}=t,{width:f,height:p}=this._getPageContentSize(r);l=Math.min(f,l),u=Math.min(p,u),(l!==i||u!==a)&&n.push({drawingId:r.drawingId,key:`size`,value:{width:l,height:u}}),d!==o&&n.push({drawingId:r.drawingId,key:`angle`,value:d}),n.length>0&&s&&c&&this._commandService.executeCommand(Ut.id,{unitId:s,subUnitId:c,drawings:n})}_moveInlineDrawing(e,t,n){let r=this._getInlineDrawingAnchor(e,t,n),{offset:i,segmentId:a,segmentPage:o}=r==null?{}:r;return this._commandService.executeCommand(Wt.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:i,segmentId:a,segmentPage:o,needRefreshDrawings:i==null})}_limitDrawingInPage(e,t){let n=this._renderManagerService.getRenderById(e.unitId),{left:r,top:i,width:a,height:o,angle:s}=t,c=n==null?void 0:n.with(B).getSkeleton(),l=c==null?void 0:c.getSkeletonData(),{pages:u}=l==null?{}:l;if(l==null||n==null||u==null)return{left:r,top:i,width:a,height:o,angle:s};let{mainComponent:d}=n,{top:f,pageLayoutType:p,pageMarginLeft:m,pageMarginTop:h}=d,g=i;this._liquid.reset();for(let e of u){let{marginBottom:t,pageHeight:n}=e,r=u[u.indexOf(e)+1];r!=null&&(P.hasIntersectionBetweenTwoRanges(i,i+o,this._liquid.y+f+n-t,this._liquid.y+f+n+h+r.marginTop)&&(g=i+o/2<this._liquid.y+f+n+h/2?Math.min(i,this._liquid.y+f+n-t-o):Math.max(i,this._liquid.y+f+n+h+r.marginTop)),this._liquid.translatePage(e,p,m,h))}return{left:r,top:g,width:a,height:o,angle:s}}_nonInlineDrawingTransform(e,n,r=!1){let i=e.isMultiTransform===t.TRUE?n:this._limitDrawingInPage(e,n);if(r&&i.top!==n.top)return;let a=this._getDrawingAnchor(e,i),{offset:o,docTransform:s,segmentId:c,segmentPage:l}=a==null?{}:a;return o==null||s==null?this._updateMultipleDrawingDocTransform(new Map([[e.drawingId,n]])):this._commandService.executeCommand(Gt.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:o,docTransform:s,segmentId:c,segmentPage:l})}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;if(n!=null)return{scene:n,transformer:n.getTransformerByCreate()}}_getTransformCoordForDocumentOffset(e,t,n,r){let{documentTransform:i}=e.getOffsetConfig(),a=t.transformVector2SceneCoord(Oe.FromArray([n,r]));if(a)return i.clone().invert().applyPoint(a)}_createOrUpdateInlineAnchor(e,t){let n=this._renderManagerService.getRenderById(e);if(n==null)return;let{mainComponent:i,scene:a}=n,{docsLeft:o,docsTop:s}=i.getOffsetConfig(),{left:c,top:l,height:u}=ge(t),d=c+o,f=l+s;if(this._anchorShape){this._anchorShape.transformByState({left:d,top:f,height:u}),this._anchorShape.show();return}let p=new Ee(`__InlineDrawingAnchor__`+re(6),{left:d,top:f,height:u,strokeWidth:2,stroke:ke(r.darkgray,1),evented:!1});this._anchorShape=p,a.addObject(p,pe)}_getDocObject(){return ve(this._univerInstanceService,this._renderManagerService)}_getPageContentSize(e){let t=this._renderManagerService.getRenderById(e.unitId),n=t==null?void 0:t.with(B).getSkeleton(),r=n==null?void 0:n.getSkeletonData();if(r==null||t==null)return{width:500,height:500};let{pages:i}=r,a=null;for(let t of i){let{skeDrawings:n}=t;if(n.has(e.drawingId)){a=t;break}}if(a){let{pageWidth:e,pageHeight:t,marginLeft:n,marginBottom:r,marginRight:i,marginTop:o}=a;return{width:Math.max(500,e-n-i),height:Math.max(500,t-o-r)}}else return{width:500,height:500}}};gn=Q([Z(0,g),Z(1,y),Z(2,G),Z(3,U)],gn);const _n={[at.MEDIA]:{[en]:{order:0,menuItemFactory:rn,[tn]:{order:0,menuItemFactory:an}}}},vn=-1e3,yn=1e3,bn=e=>{let t=K(g),n=K(T),r=K(G),i=K(U),a=K(y),{drawings:o}=e,s=o[0];if(s==null)return;let{unitId:c}=s,l=a.getUniverDocInstance(c),u=l==null?void 0:l.getSnapshot().documentStyle.documentFlavor,f=i.getRenderById(c),p=f==null?void 0:f.scene;if(p==null)return;let m=p.getTransformerByCreate(),h=[{label:n.t(`image-position.column`),value:String(D.COLUMN)},{label:n.t(`image-position.page`),value:String(D.PAGE)},{label:n.t(`image-position.margin`),value:String(D.MARGIN)}],_=[{label:n.t(`image-position.line`),value:String(O.LINE),disabled:u===d.MODERN},{label:n.t(`image-position.page`),value:String(O.PAGE),disabled:u===d.MODERN},{label:n.t(`image-position.margin`),value:String(O.MARGIN),disabled:u===d.MODERN},{label:n.t(`image-position.paragraph`),value:String(O.PARAGRAPH)}],[v,b]=q(!0),[x,S]=q({relativeFrom:D.PAGE,posOffset:0}),[C,w]=q({relativeFrom:O.PAGE,posOffset:0}),[E,k]=q(!0),[ee,j]=q(!0);function M(e,n){var a;e===`positionH`?S(n):w(n);let o=r.getFocusDrawings();if(o.length===0)return;let s=o.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));t.executeCommand(Ut.id,{unitId:o[0].unitId,subUnitId:o[0].unitId,drawings:s.map(t=>({drawingId:t.drawingId,key:e,value:n}))});let l=(a=i.getRenderById(c))==null?void 0:a.with(H);l&&l.blur(),m.refreshControls()}function N(e){var t;let n=x.relativeFrom,a=x.posOffset,o=Number(e);if(n===o)return;let s=r.getFocusDrawings();if(s.length===0)return;let c=s[0].drawingId,l=s[0].unitId,u=null,d=0,f=(t=i.getRenderById(l))==null?void 0:t.with(B).getSkeleton(),p=f==null?void 0:f.getSkeletonData();if(p==null)return;let{pages:m,skeHeaders:h,skeFooters:g}=p;for(let e of m){var _,v;let{marginLeft:t,skeDrawings:n,headerId:r,footerId:i,pageWidth:a}=e;if(n.has(c)){u=n.get(c),d=t;break}let o=(_=h.get(r))==null?void 0:_.get(a);if(o!=null&&o.skeDrawings.has(c)){u=o==null?void 0:o.skeDrawings.get(c),d=t;break}let s=(v=g.get(i))==null?void 0:v.get(a);if(s!=null&&s.skeDrawings.has(c)){u=s==null?void 0:s.skeDrawings.get(c),d=t;break}}if(u==null)return;let y=0;n===D.COLUMN?y-=u.columnLeft:n===D.MARGIN&&(y-=d),o===D.COLUMN?y+=u.columnLeft:o===D.MARGIN?y+=d:D.PAGE,M(`positionH`,{relativeFrom:o,posOffset:(a==null?0:a)-y})}function P(e){var t,n,o,s,c;let l=C.relativeFrom,u=C.posOffset,d=Number(e);if(l===d)return;let f=r.getFocusDrawings();if(f.length===0)return;let{drawingId:p,unitId:m}=f[0],h=a.getUniverDocInstance(m),g=(t=i.getRenderById(m))==null?void 0:t.with(B).getSkeleton(),_=(n=i.getRenderById(m))==null?void 0:n.with(H),v=_==null?void 0:_.getSegment(),y=_==null?void 0:_.getSegmentPage(),b=h==null||(o=h.getSelfOrHeaderFooterModel(v).getBody())==null||(o=o.customBlocks)==null?void 0:o.find(e=>e.blockId===p);if(b==null||g==null||_==null)return;let{startIndex:x}=b,S=g.findNodeByCharIndex(x,v,y),w=S==null||(s=S.parent)==null?void 0:s.parent,T=w==null?void 0:w.parent,E=T==null?void 0:T.lines.find(e=>e.paragraphIndex===(w==null?void 0:w.paragraphIndex)&&e.paragraphStart),D=T==null||(c=T.parent)==null?void 0:c.parent;if(S==null||w==null||E==null||T==null||D==null)return;let k=0;l===O.PARAGRAPH?k-=E.top:l===O.LINE?k-=w.top:l===O.PAGE&&(k+=D.marginTop),d===O.PARAGRAPH?k+=E.top:d===O.LINE?k+=w.top:d===O.PAGE&&(k-=D.marginTop),M(`positionV`,{relativeFrom:d,posOffset:(u==null?0:u)-k})}function F(e){var t;let n=l==null?void 0:l.getSnapshot(),r=n==null||(t=n.drawings)==null?void 0:t[e.drawingId];if(r==null)return;let{layoutType:i}=r,{positionH:a,positionV:o}=r.docTransform;S(a),w(o),b(i===A.INLINE),k(o.relativeFrom===O.PARAGRAPH||o.relativeFrom===O.LINE)}function I(){let e=r.getFocusDrawings();e.length!==0&&F(e[0])}function te(e){k(e),P(e?String(O.PARAGRAPH):String(O.PAGE))}return wt(()=>{I();let e=r.focus$.subscribe(e=>{if(e.length===0){j(!1);return}j(!0),F(e[0])}),n=t.onCommandExecuted(async e=>{e.id===V.id&&I()});return()=>{e.unsubscribe(),n.dispose()}},[]),Y(`div`,{className:Ie(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!ee}),children:[J(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:n.t(`image-position.title`)})}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:n.t(`image-position.horizontal`)})}),Y(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[Y(`div`,{children:[J(`span`,{children:n.t(`image-position.absolutePosition`)}),J(Me,{min:vn,max:yn,precision:1,disabled:v,value:x.posOffset,onChange:e=>{M(`positionH`,{relativeFrom:x.relativeFrom,posOffset:e})}})]}),Y(`div`,{children:[J(`span`,{children:n.t(`image-position.toTheRightOf`)}),J(Fe,{value:String(x.relativeFrom),disabled:v,options:h,onChange:N})]})]}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:n.t(`image-position.vertical`)})}),Y(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[Y(`div`,{children:[J(`span`,{children:n.t(`image-position.absolutePosition`)}),J(Me,{min:vn,max:yn,precision:1,disabled:v,value:C.posOffset,onChange:e=>{M(`positionV`,{relativeFrom:C.relativeFrom,posOffset:e})}})]}),Y(`div`,{children:[J(`span`,{children:n.t(`image-position.bellow`)}),J(Fe,{disabled:v,value:String(C.relativeFrom),options:_,onChange:P})]})]}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:n.t(`image-position.options`)})}),J(`div`,{children:J(je,{disabled:v,checked:E,onChange:te,children:n.t(`image-position.moveObjectWithText`)})})]})},xn=e=>{let n=K(g),r=K(T),i=K(G),a=K(U),o=K(y),{drawings:s}=e,c=s[0];if(c==null)return null;let{unitId:l}=c,u=o.getUniverDocInstance(l),d=a.getRenderById(l);if((d==null?void 0:d.scene)==null)return null;let[f,p]=q(!0),[m,h]=q(!0),[_,v]=q(!0),[b,x]=q($.INLINE),[S,C]=q(``),[w,E]=q({distT:0,distL:0,distB:0,distR:0}),[D,O]=q(!0);function k(e){x(e);let t=i.getFocusDrawings();if(t.length===0)return;let{unitId:r,subUnitId:a}=t[0],o=t.map(({unitId:e,subUnitId:t,drawingId:n})=>({unitId:e,subUnitId:t,drawingId:n}));n.executeCommand(Bt.id,{unitId:r,subUnitId:a,drawings:o,wrappingStyle:e})}function ee(e){C(e);let t=i.getFocusDrawings();if(t.length===0)return;let r=t.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(Ht.id,{unitId:t[0].unitId,subUnitId:t[0].unitId,drawings:r,wrapText:e})}function j(e,t){if(e==null)return;E({...w,[t]:e});let r=i.getFocusDrawings();if(r.length===0)return;let a=r.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(Vt.id,{unitId:r[0].unitId,subUnitId:r[0].unitId,drawings:a,dist:{[t]:e}})}function M(){let e=i.getFocusDrawings();e.length!==0&&N(e[0])}function N(e){var n;let r=u==null||(n=u.getSnapshot())==null||(n=n.drawings)==null?void 0:n[e.drawingId];if(r==null)return;let{distT:i=0,distL:a=0,distB:o=0,distR:s=0,layoutType:c=A.INLINE,behindDoc:l=t.FALSE,wrapText:d=te.BOTH_SIDES}=r;if(E({distT:i,distL:a,distB:o,distR:s}),C(d),p(c!==A.WRAP_SQUARE),c===A.WRAP_NONE||c===A.INLINE?h(!0):h(!1),c===A.WRAP_NONE||c===A.INLINE||c===A.WRAP_TOP_AND_BOTTOM?v(!0):v(!1),c===A.WRAP_NONE)l===t.TRUE?x($.BEHIND_TEXT):x($.IN_FRONT_OF_TEXT);else switch(c){case A.INLINE:x($.INLINE);break;case A.WRAP_SQUARE:x($.WRAP_SQUARE);break;case A.WRAP_TOP_AND_BOTTOM:x($.WRAP_TOP_AND_BOTTOM);break;default:throw Error(`Unsupported layout type: ${c}`)}}return wt(()=>{M();let e=i.focus$.subscribe(e=>{if(e.length===0){O(!1);return}O(!0),N(e[0])}),t=n.onCommandExecuted(async e=>{e.id===V.id&&M()});return()=>{e.unsubscribe(),t.dispose()}},[]),Y(`div`,{className:Ie(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!D}),children:[J(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:r.t(`image-text-wrap.title`)})}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:r.t(`image-text-wrap.wrappingStyle`)})}),J(`div`,{children:Y(Pe,{value:b,onChange:k,direction:`vertical`,children:[J(W,{value:$.INLINE,children:r.t(`image-text-wrap.inline`)}),J(W,{value:$.WRAP_SQUARE,children:r.t(`image-text-wrap.square`)}),J(W,{value:$.WRAP_TOP_AND_BOTTOM,children:r.t(`image-text-wrap.topAndBottom`)}),J(W,{value:$.BEHIND_TEXT,children:r.t(`image-text-wrap.behindText`)}),J(W,{value:$.IN_FRONT_OF_TEXT,children:r.t(`image-text-wrap.inFrontText`)})]})}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:r.t(`image-text-wrap.wrapText`)})}),J(`div`,{children:Y(Pe,{disabled:f,value:S,onChange:ee,direction:`horizontal`,children:[J(W,{value:te.BOTH_SIDES,children:r.t(`image-text-wrap.bothSide`)}),J(W,{value:te.LEFT,children:r.t(`image-text-wrap.leftOnly`)}),J(W,{value:te.RIGHT,children:r.t(`image-text-wrap.rightOnly`)})]})}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:r.t(`image-text-wrap.distanceFromText`)})}),Y(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.top`)}),J(Me,{min:0,max:100,disabled:m,precision:1,value:w.distT,onChange:e=>{j(e,`distT`)}})]}),Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.left`)}),J(Me,{min:0,max:100,disabled:_,precision:1,value:w.distL,onChange:e=>{j(e,`distL`)}})]})]}),Y(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.bottom`)}),J(Me,{min:0,max:100,disabled:m,precision:1,value:w.distB,onChange:e=>{j(e,`distB`)}})]}),Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.right`)}),J(Me,{min:0,max:100,disabled:_,precision:1,value:w.distR,onChange:e=>{j(e,`distR`)}})]})]})]})},Sn=()=>{let e=K(G),[t,n]=q(e.getFocusDrawings());return wt(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&Y(`div`,{className:`univer-text-sm`,children:[J(vt,{drawings:t,hasAlign:!1,hasCropper:!1,hasGroup:!1,hasTransform:!1}),J(xn,{drawings:t}),J(bn,{drawings:t})]})};function Cn(e){return e.getContextValue(m)&&e.getContextValue(h)&&e.getContextValue(p)}const wn={id:Kt.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:nt.ARROW_DOWN,priority:100,preconditions:Cn,staticParameters:{direction:c.DOWN}},Tn={id:Kt.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:nt.ARROW_UP,priority:100,preconditions:Cn,staticParameters:{direction:c.UP}},En={id:Kt.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:nt.ARROW_LEFT,priority:100,preconditions:Cn,staticParameters:{direction:c.LEFT}},Dn={id:Kt.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:nt.ARROW_RIGHT,priority:100,preconditions:Cn,staticParameters:{direction:c.RIGHT}},On={id:Dt.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,preconditions:Cn,binding:nt.DELETE,mac:nt.BACKSPACE};let kn=class extends l{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(Jt,Sn))}_initMenus(){this._menuManagerService.mergeMenu(_n)}_initCommands(){[Lt,kt,Bt,Vt,Ht,Ut,Wt,Gt,Et,Yt,qt,Xt,Ot,jt,Kt,Dt,At].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[wn,Tn,En,Dn,On].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};kn=Q([Z(0,b(Xe)),Z(1,Qe),Z(2,g),Z(3,et)],kn);let An=class extends l{constructor(e,t,n,r,i,a,o,s){super(),this._context=e,this._docSkeletonManagerService=t,this._commandService=n,this._editorService=r,this._drawingManagerService=i,this._docRefreshDrawingsService=a,this._univerInstanceService=o,this._lifecycleService=s,X(this,`_liquid`,new we),this._initialize(),this._commandExecutedListener()}_initialize(){this._initialRenderRefresh(),this._drawingInitializeListener(),this._initResize()}_initialRenderRefresh(){this.disposeWithMe(this._docSkeletonManagerService.currentSkeleton$.subscribe(e=>{e!=null&&this._refreshDrawing(e)})),this.disposeWithMe(this._docRefreshDrawingsService.refreshDrawings$.subscribe(e=>{e!=null&&this._refreshDrawing(e)}))}_commandExecutedListener(){let e=[V.id,fe.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(e.includes(t.id)){let{unitId:e}=t.params,{unitId:n,mainComponent:r}=this._context;if(e!==n)return;let i=this._docSkeletonManagerService.getSkeleton();if(i==null)return;if(this._editorService.isEditor(n)&&n!==a){r==null||r.makeDirty();return}this._refreshDrawing(i)}}))}_initResize(){this.disposeWithMe(ne(this._context.engine.onTransformChange$).pipe(ft(e=>e.type===De.resize),dt(16)).subscribe(()=>{var e;let t=this._docSkeletonManagerService.getSkeleton(),{scene:n}=this._context;(e=n.getTransformer())==null||e.refreshControls(),this._refreshDrawing(t)}))}_refreshDrawing(e){let t=e==null?void 0:e.getSkeletonData(),{mainComponent:n,unitId:r}=this._context,i=n;if(!t)return;let{left:a,top:o,pageLayoutType:s,pageMarginLeft:c,pageMarginTop:l}=i,{pages:u,skeHeaders:d,skeFooters:f}=t,p={};this._liquid.reset();for(let e=0,t=u.length;e<t;e++){let t=u[e],{headerId:n,footerId:i,pageWidth:g}=t;if(n){var m;let e=(m=d.get(n))==null?void 0:m.get(g);e&&this._calculateDrawingPosition(r,e,a,o,p,e.marginTop,t.marginLeft)}if(i){var h;let e=(h=f.get(i))==null?void 0:h.get(g);e&&this._calculateDrawingPosition(r,e,a,o,p,t.pageHeight-t.marginBottom+e.marginTop,t.marginLeft)}this._calculateDrawingPosition(r,t,a,o,p,t.marginTop,t.marginLeft),this._liquid.translatePage(t,s,c,l)}let g=Object.values(p),_=g.filter(e=>!e.isMultiTransform),v=g.filter(e=>e.isMultiTransform);_.length>0&&this._drawingManagerService.refreshTransform(_),this._handleMultiDrawingsTransform(v)}_handleMultiDrawingsTransform(e){let{scene:n,unitId:r}=this._context,i=n.getTransformerByCreate();e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);t!=null&&(t.transform=e.transform,t.transforms=e.transforms,t.isMultiTransform=e.isMultiTransform)});let a=[...i.getSelectedObjectMap().keys()],o=Object.values(this._drawingManagerService.getDrawingData(r,r)).filter(e=>e.isMultiTransform===t.TRUE);this._drawingManagerService.removeNotification(o),e.length>0&&this._drawingManagerService.addNotification(e);for(let e of a){let t=n.getObject(e);t&&i.setSelectedControl(t)}}_calculateDrawingPosition(e,n,r,i,a,o,s){let{skeDrawings:c}=n;this._liquid.translatePagePadding({marginTop:o,marginLeft:s}),c.forEach(n=>{let{aLeft:o,aTop:s,height:c,width:l,angle:u,drawingId:d,drawingOrigin:f}=n,p=f.layoutType===A.WRAP_NONE&&f.behindDoc===t.TRUE,{isMultiTransform:m=t.FALSE}=f,h={left:o+r+this._liquid.x,top:s+i+this._liquid.y,width:l,height:c,angle:u};a[d]==null?a[d]={unitId:e,subUnitId:e,drawingId:d,behindText:p,transform:h,transforms:[h],isMultiTransform:m}:m===t.TRUE&&a[d].transforms.push(h)}),this._liquid.restorePagePadding({marginTop:o,marginLeft:s})}_drawingInitializeListener(){let e=()=>{let e=this._docSkeletonManagerService.getSkeleton();e!=null&&(this._refreshDrawing(e),this._drawingManagerService.initializeNotification(this._context.unitId))};this._lifecycleService.stage>=w.Rendered?this._docSkeletonManagerService.getSkeleton()?e():setTimeout(e,500):this.disposeWithMe(this._lifecycleService.lifecycle$.pipe(ft(e=>e===w.Rendered)).subscribe(e))}};An=Q([Z(1,b(B)),Z(2,g),Z(3,ue),Z(4,G),Z(5,b(Ft)),Z(6,y),Z(7,b(C))],An);let jn=class extends j{constructor(e,t,n,r,i){super(),this._drawingManagerService=e,this._canvasPopManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._contextService=i,X(this,`_initImagePopupMenu`,new Set),X(this,`_disposePopups`,[]),this._init()}_init(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(I.UNIVER_DOC).pipe(gt(this.dispose$)).subscribe(e=>this._create(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(I.UNIVER_DOC).pipe(gt(this.dispose$)).subscribe(e=>this._dispose(e))),this._univerInstanceService.getAllUnitsForType(I.UNIVER_DOC).forEach(e=>this._create(e))}_dispose(e){let t=e.getUnitId();this._disposePopups.length&&(this._disposePopups.forEach(e=>e.dispose()),this._disposePopups.length=0),this._renderManagerService.removeRender(t)}_create(e){if(!e)return;let t=e.getUnitId();ie(t)||this._renderManagerService.has(t)&&!this._initImagePopupMenu.has(t)&&(this._popupMenuListener(t),this._initImagePopupMenu.add(t))}_hasCropObject(e){let t=e.getAllObjects();for(let e of t)if(e instanceof bt)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._disposePopups;this.disposeWithMe(r.createControl$.subscribe(()=>{if(this._hasCropObject(n))return;let e=r.getSelectedObjectMap();if(i.forEach(e=>e.dispose()),i.length=0,e.size>1)return;let t=e.values().next().value;if(!t)return;let a=t.oKey,o=this._drawingManagerService.getDrawingOKey(a);if(!o||o.drawingType===f.DRAWING_DOM)return;let{unitId:s,subUnitId:c,drawingId:l,drawingType:u}=o,d=this._canvasPopManagerService.attachPopupToObject(t,{componentKey:_t,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:this._getImageMenuItems(s,c,l,u)}},s);i.push(this.disposeWithMe(d)),!this._drawingManagerService.getFocusDrawings().find(e=>e.unitId===s&&e.subUnitId===c&&e.drawingId===l)&&this._drawingManagerService.focusDrawing([{unitId:s,subUnitId:c,drawingId:l}])})),this.disposeWithMe(r.clearControl$.subscribe(()=>{i.forEach(e=>e.dispose()),i.length=0,this._contextService.setContextValue(p,!1),this._drawingManagerService.focusDrawing(null)})),this.disposeWithMe(r.changing$.subscribe(()=>{i.forEach(e=>e.dispose()),i.length=0})),this.disposeWithMe(r.changeStart$.subscribe(()=>{i.forEach(e=>e.dispose()),i.length=0}))}_getImageMenuItems(e,t,n,r){return[{label:`image-popup.edit`,index:0,commandId:Xt.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:!0},{label:`image-popup.delete`,index:1,commandId:Et.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:St.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:!0},{label:`image-popup.reset`,index:3,commandId:xt.id,commandParams:[{unitId:e,subUnitId:t,drawingId:n}],disable:!0}]}};jn=Q([Z(0,G),Z(1,b(ce)),Z(2,U),Z(3,y),Z(4,v)],jn);let Mn=class extends k{constructor(e=ln,t,n,r){super(),this._config=e,this._injector=t,this._renderManagerSrv=n,this._configService=r;let{...i}=L({},ln,this._config);this._configService.setConfig(cn,i)}onStarting(){[[kn],[jn],[gn],[fn],[Ft],[$t],[mn]].forEach(e=>this._injector.add(e))}onReady(){[[It],[An]].forEach(e=>this._renderManagerSrv.registerRenderModule(I.UNIVER_DOC,e)),this._injector.get(fn),this._injector.get(kn),this._injector.get(gn),this._injector.get(mn)}onRendered(){this._injector.get(jn),this._injector.get($t)}};X(Mn,`type`,I.UNIVER_DOC),X(Mn,`pluginName`,`DOC_DRAWING_UI_PLUGIN`),X(Mn,`packageName`,on),X(Mn,`version`,sn),Mn=Q([s(Ct,Ke,oe,ot),Z(1,b(x)),Z(2,U),Z(3,_)],Mn);export{qt as ClearDocDrawingTransformerOperation,en as DOCS_IMAGE_MENU_ID,Dt as DeleteDocDrawingsCommand,$t as DocFloatDomController,Xt as EditDocDrawingOperation,Ot as GroupDocDrawingCommand,kt as InsertDocDrawingCommand,Lt as InsertDocImageCommand,Kt as MoveDocDrawingsCommand,Et as RemoveDocDrawingCommand,At as SetDocDrawingArrangeCommand,Yt as SidebarDocDrawingOperation,jt as UngroupDocDrawingCommand,Mn as UniverDocsDrawingUIPlugin};
1
+ import{ArrangeTypeEnum as e,BooleanNumber as t,BuildTextUtils as n,COLORS as r,CommandType as i,DOCS_ZEN_EDITOR_UNIT_ID_KEY as a,DOC_DRAWING_PRINTING_COMPONENT_KEY as o,DependentOn as s,Direction as c,Disposable as l,DisposableCollection as u,DocumentFlavor as d,DrawingTypeEnum as f,FOCUSING_COMMON_DRAWINGS as p,FOCUSING_DOC as m,FOCUSING_UNIVER_EDITOR as h,ICommandService as g,IConfigService as _,IContextService as v,IUniverInstanceService as y,Inject as b,Injector as x,JSONX as S,LifecycleService as C,LifecycleStages as w,LocaleService as T,MemoryCursor as E,ObjectRelativeFromH as D,ObjectRelativeFromV as O,Plugin as k,PositionedObjectLayoutType as A,RedoCommand as ee,RxDisposable as j,TextX as M,TextXActionType as N,Tools as P,UndoCommand as F,UniverInstanceType as I,WrapTextType as te,fromEventSubject as ne,generateRandomId as re,isInternalEditorID as ie,merge as L,throttle as R,toDisposable as ae}from"@univerjs/core";import{IDocDrawingService as z,UniverDocsDrawingPlugin as oe}from"@univerjs/docs-drawing";import{DocSelectionManagerService as se,DocSkeletonManagerService as B,RichTextEditingMutation as V}from"@univerjs/docs";import{DocCanvasPopManagerService as ce,DocPrintInterceptorService as le,DocSelectionRenderService as H,IEditorService as ue,NodePositionConvertToCursor as de,SetDocZoomRatioOperation as fe,TEXT_RANGE_LAYER_INDEX as pe,VIEWPORT_KEY as me,docDrawingPositionToTransform as he,getAnchorBounding as ge,getCustomBlockIdsInSelections as _e,getDocObject as ve,getOneTextSelectionRange as ye,getRichTextEditPath as be}from"@univerjs/docs-ui";import{CURSOR_TYPE as xe,DocumentEditArea as Se,DocumentSkeletonPageType as Ce,IRenderManagerService as U,Liquid as we,PageLayoutType as Te,Rect as Ee,TRANSFORM_CHANGE_OBSERVABLE_TYPE as De,Vector2 as Oe,getColor as ke,getCurrentTypeOfRenderer as Ae}from"@univerjs/engine-render";import{Checkbox as je,InputNumber as Me,MessageType as Ne,Radio as W,RadioGroup as Pe,Select as Fe,clsx as Ie,render as Le,unmount as Re}from"@univerjs/design";import{DRAWING_IMAGE_ALLOW_IMAGE_LIST as ze,DRAWING_IMAGE_ALLOW_SIZE as Be,DRAWING_IMAGE_COUNT_LIMIT as Ve,DRAWING_IMAGE_HEIGHT_LIMIT as He,DRAWING_IMAGE_WIDTH_LIMIT as Ue,IDrawingManagerService as G,IImageIoService as We,ImageUploadStatusType as Ge,UniverDrawingPlugin as Ke,getDrawingShapeKeyByDrawingSearch as qe,getImageSize as Je}from"@univerjs/drawing";import{CanvasFloatDomService as Ye,ComponentManager as Xe,ILocalFileService as Ze,IMenuManagerService as Qe,IMessageService as $e,IShortcutService as et,ISidebarService as tt,KeyCode as nt,MenuItemType as rt,PrintFloatDomSingle as it,RibbonInsertGroup as at,UniverUIPlugin as ot,connectInjector as st,getMenuHiddenObservable as ct,useDependency as K}from"@univerjs/ui";import{BehaviorSubject as lt,Observable as ut,debounceTime as dt,filter as ft,map as pt,of as mt,switchMap as ht,takeUntil as gt}from"rxjs";import{COMPONENT_IMAGE_POPUP_MENU as _t,DrawingCommonPanel as vt,DrawingRenderService as yt,ImageCropperObject as bt,ImageResetSizeOperation as xt,OpenImageCropOperation as St,UniverDrawingUIPlugin as Ct}from"@univerjs/drawing-ui";import{useEffect as wt,useMemo as Tt,useState as q}from"react";import{jsx as J,jsxs as Y}from"react/jsx-runtime";const Et={id:`doc.command.remove-doc-image`,type:i.COMMAND,handler:(e,t)=>{var n,r,i;let a=e.get(g),o=e.get(y),s=e.get(U),c=o.getCurrentUniverDocInstance();if(t==null||c==null)return!1;let l=s.getRenderById(t.unitId).with(H),{drawings:u}=t,d=(n=l.getSegment())==null?``:n,f=new M,p=S.getInstance(),m=(r=(i=c.getSelfOrHeaderFooterModel(d).getBody())==null?void 0:i.customBlocks)==null?[]:r,h=u.map(e=>m.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1),_=u[0].unitId,v=new E;v.reset();let b=h[0].startIndex,x=[{startOffset:b,endOffset:b}],C={id:V.id,params:{unitId:_,actions:[],textRanges:x}},w=[];for(let e of h){let{startIndex:t}=e;t>v.cursor&&f.push({t:N.RETAIN,len:t-v.cursor}),f.push({t:N.DELETE,len:1}),v.moveCursorTo(t+1)}let T=be(c,d);w.push(p.editOp(f.serialize(),T));for(let e of h){var D;let{blockId:t}=e,n=((D=c.getDrawings())==null?{}:D)[t],r=c.getDrawingsOrder().indexOf(t),i=p.removeOp([`drawings`,t],n),a=p.removeOp([`drawingsOrder`,r],t);w.push(i),w.push(a)}return C.params.actions=w.reduce((e,t)=>S.compose(e,t),null),!!a.syncExecuteCommand(C.id,C.params)}},Dt={id:`doc.command.delete-drawing`,type:i.COMMAND,handler:e=>{let t=e.get(g),n=e.get(z).getFocusDrawings();if(n.length===0)return!1;let{unitId:r}=n[0],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(Et.id,{unitId:r,drawings:i})}},Ot={id:`doc.command.group-doc-image`,type:i.COMMAND,handler:(e,t)=>!1},kt={id:`doc.command.insert-doc-image`,type:i.COMMAND,handler:(e,t)=>{var r,i;if(t==null)return!1;let a=e.get(g),o=e.get(se),s=e.get(y),c=o.getActiveTextRange(),l=s.getCurrentUniverDocInstance();if(c==null||l==null)return!1;let u=l.getUnitId(),{drawings:d}=t,{collapsed:f,startOffset:p,segmentId:m}=c,h=l.getSelfOrHeaderFooterModel(m).getBody();if(h==null)return!1;let _=new M,v=S.getInstance(),b=[],x=(r=(i=l.getSnapshot().drawingsOrder)==null?void 0:i.length)==null?0:r,C=0;if(f)p>0&&_.push({t:N.RETAIN,len:p});else{var w,T;let e=n.selection.delete([c],h,0,null,!1);_.push(...e);let t=_e(h,[c]),r=(w=l.getDrawings())==null?{}:w,i=(T=l.getDrawingsOrder())==null?[]:T,a=t.sort((e,t)=>i.indexOf(e)>i.indexOf(t)?-1:i.indexOf(e)<i.indexOf(t)?1:0);if(a.length>0)for(let e of a){let t=r[e],n=i.indexOf(e);if(t==null||n<0)continue;let a=v.removeOp([`drawings`,e],t),o=v.removeOp([`drawingsOrder`,n],e);b.push(a),b.push(o),C++}}_.push({t:N.INSERT,body:{dataStream:`\b`.repeat(d.length),customBlocks:d.map((e,t)=>({startIndex:t,blockId:e.drawingId}))},len:d.length});let E=be(l,m),D=v.editOp(_.serialize(),E);b.push(D);for(let e of d){let{drawingId:t}=e,n=v.insertOp([`drawings`,t],e),r=v.insertOp([`drawingsOrder`,x-C],t);b.push(n),b.push(r)}let O={id:V.id,params:{unitId:u,actions:[],textRanges:[]}};return O.params.actions=b.reduce((e,t)=>S.compose(e,t),null),!!a.syncExecuteCommand(O.id,O.params)}},At={id:`doc.command.set-drawing-arrange`,type:i.COMMAND,handler:(t,n)=>{let r=t.get(g),i=t.get(z);if(n==null)return!1;let{unitId:a,subUnitId:o,drawingIds:s,arrangeType:c}=n,l={unitId:a,subUnitId:o,drawingIds:s},u;if(c===e.forward?u=i.getForwardDrawingsOp(l):c===e.backward?u=i.getBackwardDrawingOp(l):c===e.front?u=i.getFrontDrawingsOp(l):c===e.back&&(u=i.getBackDrawingsOp(l)),u==null)return!1;let{redo:d}=u;if(d==null)return!1;let f=[],p=P.deepClone(d);p=p.slice(3),p.unshift(`drawingsOrder`),f.push(p);let m={id:V.id,params:{unitId:a,actions:[],textRanges:null}};return m.params.actions=f.reduce((e,t)=>S.compose(e,t),null),!!r.syncExecuteCommand(m.id,m.params)}},jt={id:`doc.command.ungroup-doc-image`,type:i.COMMAND,handler:(e,t)=>{let n=e.get(z);if(!t)return!1;let r=[];t.forEach(({parent:e,children:t})=>{r.push(e.unitId),t.forEach(e=>{r.push(e.unitId)})});let{unitId:i,subUnitId:a,undo:o,redo:s,objects:c}=n.getUngroupDrawingOp(t);return!1}};function Mt(e){"@babel/helpers - typeof";return Mt=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},Mt(e)}function Nt(e,t){if(Mt(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Mt(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Pt(e){var t=Nt(e,`string`);return Mt(t)==`symbol`?t:t+``}function X(e,t,n){return(t=Pt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ft=class{constructor(){X(this,`_refreshDrawings$`,new lt(null)),X(this,`refreshDrawings$`,this._refreshDrawings$.asObservable())}refreshDrawings(e){this._refreshDrawings$.next(e)}};function Z(e,t){return function(n,r){t(n,r,e)}}function Q(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}let It=class extends l{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){super(),this._context=e,this._commandService=t,this._docSelectionManagerService=n,this._renderManagerSrv=r,this._imageIoService=i,this._docDrawingService=a,this._drawingManagerService=o,this._contextService=s,this._messageService=c,this._localeService=l,this._docSelectionRenderService=u,this._docRefreshDrawingsService=d,this._fileOpenerService=f,this._updateOrderListener(),this._groupDrawingListener(),this._focusDrawingListener(),this._transformDrawingListener(),this._editAreaChangeListener()}dispose(){super.dispose(),delete this._context}async insertDocImage(){let e=await this._fileOpenerService.openFile({multiple:!0,accept:ze.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>Ve?(this._messageService.show({type:Ne.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(Ve))}),!1):t===0?!1:(await this._insertFloatImages(e),!0)}async _insertFloatImages(e){let n=[];try{n=await Promise.all(e.map(e=>this._imageIoService.saveImage(e)))}catch(e){let t=e.message,n=``;switch(t){case Ge.ERROR_EXCEED_SIZE:n=this._localeService.t(`update-status.exceedMaxSize`,String(Be/(1024*1024)));break;case Ge.ERROR_IMAGE_TYPE:n=this._localeService.t(`update-status.invalidImageType`);break;case Ge.ERROR_IMAGE:n=this._localeService.t(`update-status.invalidImage`);break;default:break}this._messageService.show({type:Ne.Error,content:n})}if(n.length===0)return;let{unitId:r}=this._context,i=[];for(let e of n){if(e==null)continue;let{imageId:n,imageSourceType:a,source:o,base64Cache:s}=e,{width:c,height:l,image:u}=await Je(s||``);this._imageIoService.addImageSourceCache(n,a,u);let d=1;if(c>Ue||l>He){let e=Ue/c,t=He/l;d=Math.min(e,t)}let p=this._getImagePosition(c*d,l*d);if(p==null)return;let m={unitId:r,subUnitId:r,drawingId:n,drawingType:f.DRAWING_IMAGE,imageSourceType:a,source:o,transform:he(p),docTransform:p,behindDoc:t.FALSE,title:``,description:``,layoutType:A.INLINE,wrapText:te.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};this._isInsertInHeaderFooter()&&(m.isMultiTransform=t.TRUE,m.transforms=m.transform?[m.transform]:null),i.push(m)}this._commandService.executeCommand(kt.id,{unitId:r,drawings:i})}_isInsertInHeaderFooter(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderById(t))==null?void 0:e.with(B).getViewModel(),r=n==null?void 0:n.getEditArea();return r===Se.HEADER||r===Se.FOOTER}_getImagePosition(e,t){let n=this._docSelectionRenderService.getActiveTextRange(),r=(n==null?void 0:n.getAbsolutePosition())||{left:0,top:0};return{size:{width:e,height:t},positionH:{relativeFrom:D.PAGE,posOffset:r.left},positionV:{relativeFrom:O.PARAGRAPH,posOffset:0},angle:0}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(At.id,{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i})}))}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{this._commandService.executeCommand(Ot.id,e)})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{this._commandService.executeCommand(jt.id,e)}))}_getCurrentSceneAndTransformer(){let{scene:e,mainComponent:t}=this._context;if(e==null||t==null)return;let n=e.getTransformerByCreate(),{docsLeft:r,docsTop:i}=t.getOffsetConfig();return{scene:e,transformer:n,docsLeft:r,docsTop:i}}_transformDrawingListener(){let e=this._getCurrentSceneAndTransformer();if(e&&e.transformer)this.disposeWithMe(e.transformer.changeEnd$.pipe(dt(30)).subscribe(e=>{this._docSelectionManagerService.refreshSelection()}));else throw Error(`transformer is not init`)}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{var t;let{transformer:n,docsLeft:r,docsTop:i}=(t=this._getCurrentSceneAndTransformer())==null?{}:t;if(e==null||e.length===0)this._contextService.setContextValue(p,!1),this._docDrawingService.focusDrawing([]),n&&n.resetProps({zeroTop:0,zeroLeft:0});else{this._contextService.setContextValue(p,!0),this._docDrawingService.focusDrawing(e),this._setDrawingSelections(e);let t=this._docSelectionRenderService.getSegment(),a=this._findSegmentIdByDrawingId(e[0].drawingId);t!==a&&this._docSelectionRenderService.setSegment(a),n&&n.resetProps({zeroTop:i,zeroLeft:r})}}))}_findSegmentIdByDrawingId(e){var t;let{unit:n}=this._context,{body:r,headers:i={},footers:a={}}=n.getSnapshot();if(((t=r==null?void 0:r.customBlocks)==null?[]:t).some(t=>t.blockId===e))return``;for(let t of Object.keys(i)){var o;if((o=i[t].body.customBlocks)!=null&&o.some(t=>t.blockId===e))return t}for(let t of Object.keys(a)){var s;if((s=a[t].body.customBlocks)!=null&&s.some(t=>t.blockId===e))return t}return``}_updateDrawingsEditStatus(){var e;if(!this._context)return;let{unit:n,scene:r,unitId:i}=this._context,a=(e=this._renderManagerSrv.getRenderById(i))==null?void 0:e.with(B).getViewModel();if(a==null||n==null)return;let{drawings:o={}}=n.getSnapshot(),s=a.getEditArea()===Se.BODY;for(let e of Object.keys(o)){let n=o[e],a=qe({unitId:i,drawingId:n.drawingId,subUnitId:i}),c=r.fuzzyMathObjects(a,!0);if(c.length)for(let e of c){r.detachTransformerFrom(e);try{e.setOpacity(.5)}catch{}if(s&&n.isMultiTransform!==t.TRUE||!s&&n.isMultiTransform===t.TRUE){n.allowTransform!==!1&&r.attachTransformerTo(e);try{e.setOpacity(1)}catch{}}}}}_editAreaChangeListener(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderById(t))==null?void 0:e.with(B).getViewModel();n!=null&&(this._updateDrawingsEditStatus(),this.disposeWithMe(n.editAreaChange$.subscribe(()=>{this._updateDrawingsEditStatus()})),this.disposeWithMe(this._docRefreshDrawingsService.refreshDrawings$.subscribe(e=>{e!=null&&queueMicrotask(()=>{this._updateDrawingsEditStatus()})})),this.disposeWithMe(this._commandService.onCommandExecuted(async e=>{e.id===V.id&&queueMicrotask(()=>{this._updateDrawingsEditStatus()})})))}_setDrawingSelections(e){var t,n;let{unit:r}=this._context,i=(t=(n=r.getSnapshot().body)==null?void 0:n.customBlocks)==null?[]:t,a=e.map(e=>{let t=e.drawingId,n=i.find(e=>e.blockId===t);return n?n.startIndex:null}).filter(e=>e!==null).map(e=>({startOffset:e,endOffset:e+1}));this._docSelectionManagerService.replaceDocRanges(a)}};It=Q([Z(1,g),Z(2,b(se)),Z(3,U),Z(4,We),Z(5,z),Z(6,G),Z(7,v),Z(8,$e),Z(9,b(T)),Z(10,b(H)),Z(11,b(Ft)),Z(12,Ze)],It);const Lt={id:`doc.command.insert-float-image`,type:i.COMMAND,handler:e=>{var t,n;let r=e.get(y),i=e.get(U);return(t=(n=Ae(I.UNIVER_DOC,r,i))==null?void 0:n.with(It).insertDocImage())==null?!1:t}};let $=function(e){return e.INLINE=`inline`,e.BEHIND_TEXT=`behindText`,e.IN_FRONT_OF_TEXT=`inFrontOfText`,e.WRAP_SQUARE=`wrapSquare`,e.WRAP_TOP_AND_BOTTOM=`wrapTopAndBottom`,e}({});const Rt={[$.INLINE]:A.INLINE,[$.WRAP_SQUARE]:A.WRAP_SQUARE,[$.WRAP_TOP_AND_BOTTOM]:A.WRAP_TOP_AND_BOTTOM,[$.IN_FRONT_OF_TEXT]:A.WRAP_NONE,[$.BEHIND_TEXT]:A.WRAP_NONE};function zt(e,t,n,r,i,a,o){var s;let c=new M,l=S.getInstance(),u=[],d=a.getSelfOrHeaderFooterModel(t).getBody(),f=a.getSelfOrHeaderFooterModel(e).getBody();if(d==null||f==null)return;let p=(s=d.customBlocks)==null||(s=s.find(e=>e.blockId===i))==null?void 0:s.startIndex;if(p!=null){if(r=Math.min(f.dataStream.length-2,r),e===t){if(r<p?(r>0&&c.push({t:N.RETAIN,len:r}),c.push({t:N.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:i}]},len:1}),c.push({t:N.RETAIN,len:p-r}),c.push({t:N.DELETE,len:1})):(p>0&&c.push({t:N.RETAIN,len:p}),c.push({t:N.DELETE,len:1}),r-p-1>0&&c.push({t:N.RETAIN,len:r-p-1}),c.push({t:N.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:i}]},len:1})),r!==p){let e=be(a,t),n=l.editOp(c.serialize(),e);u.push(n)}}else{p>0&&c.push({t:N.RETAIN,len:p}),c.push({t:N.DELETE,len:1});let s=be(a,t),d=l.editOp(c.serialize(),s);u.push(d),c.empty(),r>0&&c.push({t:N.RETAIN,len:r}),c.push({t:N.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:i}]},len:1}),s=be(a,e),d=l.editOp(c.serialize(),s),u.push(d),o.setSegment(e),o.setSegmentPage(n)}return u}}const Bt={id:`doc.command.update-doc-drawing-wrapping-style`,type:i.COMMAND,handler:(e,n)=>{if(n==null)return!1;let{drawings:r,wrappingStyle:i,unitId:a}=n,o=e.get(g),s=e.get(y),c=e.get(U).getRenderById(a),l=c==null?void 0:c.with(B).getSkeleton().getSkeletonData(),u=c==null?void 0:c.with(B).getViewModel(),d=c==null?void 0:c.scene,f=s.getCurrentUniverDocInstance();if(f==null||l==null||d==null||u==null)return!1;let p=u.getEditArea(),m=d.getTransformerByCreate(),{pages:h,skeHeaders:_,skeFooters:v}=l,b=S.getInstance(),x=[],{drawings:C={}}=f.getSnapshot();for(let e of r){let{drawingId:n}=e,r=C[n].layoutType,a=Rt[i];if(r!==a){let e=b.replaceOp([`drawings`,n,`layoutType`],r,a);x.push(e)}if(i===$.BEHIND_TEXT||i===$.IN_FRONT_OF_TEXT){let e=C[n].behindDoc,r=i===$.BEHIND_TEXT?t.TRUE:t.FALSE;if(e!==r){let t=b.replaceOp([`drawings`,n,`behindDoc`],e,r);x.push(t)}}if(i===$.INLINE)continue;let o=null,s=0,c=0;for(let e of h){let{headerId:t,footerId:r,marginTop:i,marginLeft:a,marginBottom:l,pageWidth:u,pageHeight:d}=e;switch(p){case Se.HEADER:{var w;let e=(w=_.get(t))==null?void 0:w.get(u);e!=null&&e.skeDrawings.has(n)&&(o=e.skeDrawings.get(n),s=e.marginTop,c=a);break}case Se.FOOTER:{var T;let e=(T=v.get(r))==null?void 0:T.get(u);e!=null&&e.skeDrawings.has(n)&&(o=e.skeDrawings.get(n),s=d-l+e.marginTop,c=a);break}case Se.BODY:e.skeDrawings.has(n)&&(o=e.skeDrawings.get(n),s=i,c=a);break}if(o!=null)break}if(o!=null){let{aTop:e,aLeft:t}=o,r=C[n].docTransform.positionH,i=t;r.relativeFrom===D.MARGIN?i-=c:r.relativeFrom===D.COLUMN&&(i-=o.columnLeft);let a={relativeFrom:r.relativeFrom,posOffset:i};if(r.posOffset!==a.posOffset){let e=b.replaceOp([`drawings`,n,`docTransform`,`positionH`],r,a);x.push(e)}let l=C[n].docTransform.positionV,u=e;l.relativeFrom===O.PAGE?u+=s:l.relativeFrom===O.LINE?u-=o.lineTop:l.relativeFrom===O.PARAGRAPH&&(u-=o.blockAnchorTop);let d={relativeFrom:l.relativeFrom,posOffset:u};if(l.posOffset!==d.posOffset){let e=b.replaceOp([`drawings`,n,`docTransform`,`positionV`],l,d);x.push(e)}}}let E={id:V.id,params:{unitId:a,actions:[],textRanges:null}};E.params.actions=x.reduce((e,t)=>S.compose(e,t),null);let k=o.syncExecuteCommand(E.id,E.params);return m.refreshControls(),!!k}},Vt={id:`doc.command.update-doc-drawing-distance`,type:i.COMMAND,handler:(e,t)=>{if(t==null)return!1;let n=e.get(g),r=e.get(y).getCurrentUniverDocInstance();if(r==null)return!1;let{drawings:i,dist:a,unitId:o}=t,s=S.getInstance(),c=[],{drawings:l={}}=r.getSnapshot();for(let e of i){let{drawingId:t}=e;for(let[e,n]of Object.entries(a)){let r=l[t][e];if(r!==n){let i=s.replaceOp([`drawings`,t,e],r,n);c.push(i)}}}let u={id:V.id,params:{unitId:o,actions:[],textRanges:null}};return u.params.actions=c.reduce((e,t)=>S.compose(e,t),null),!!n.syncExecuteCommand(u.id,u.params)}},Ht={id:`doc.command.update-doc-drawing-wrap-text`,type:i.COMMAND,handler:(e,t)=>{if(t==null)return!1;let n=e.get(g),r=e.get(y).getCurrentUniverDocInstance();if(r==null)return!1;let{drawings:i,wrapText:a,unitId:o}=t,s=S.getInstance(),c=[],{drawings:l={}}=r.getSnapshot();for(let e of i){let{drawingId:t}=e,n=l[t].wrapText;if(n!==a){let e=s.replaceOp([`drawings`,t,`wrapText`],n,a);c.push(e)}}let u={id:V.id,params:{unitId:o,actions:[],textRanges:null}};return u.params.actions=c.reduce((e,t)=>S.compose(e,t),null),!!n.syncExecuteCommand(u.id,u.params)}},Ut={id:`doc.command.update-drawing-doc-transform`,type:i.COMMAND,handler:(e,t)=>{if(t==null)return!1;let n=e.get(g),r=e.get(y),i=e.get(U).getRenderById(t.unitId),a=i==null?void 0:i.scene;if(a==null)return!1;let o=a.getTransformerByCreate(),s=r.getCurrentUniverDocInstance();if(s==null)return!1;let{drawings:c,unitId:l}=t,u=S.getInstance(),d=[],{drawings:f={}}=s.getSnapshot();for(let e of c){let{drawingId:t,key:n,value:r}=e,i=f[t].docTransform[n];if(!P.diffValue(i,r)){let e=u.replaceOp([`drawings`,t,`docTransform`,n],i,r);d.push(e)}}let p={id:V.id,params:{unitId:l,actions:[],textRanges:null,debounce:!0}};p.params.actions=d.reduce((e,t)=>S.compose(e,t),null);let m=n.syncExecuteCommand(p.id,p.params);return o.refreshControls(),!!m}},Wt={id:`doc.command.move-inline-drawing`,type:i.COMMAND,handler:(e,t)=>{var n,r;if(t==null)return!1;let i=e.get(U),a=(n=i.getRenderById(t.unitId))==null?void 0:n.with(H),o=e.get(Ft),s=i.getRenderById(t.unitId),c=s==null?void 0:s.scene,l=s==null?void 0:s.with(B).getSkeleton();if(c==null||a==null)return!1;let u=c.getTransformerByCreate(),d=e.get(g),f=e.get(y).getCurrentUniverDocInstance();if(f==null)return!1;let{drawing:p,unitId:m,offset:h,segmentId:_,segmentPage:v,needRefreshDrawings:b}=t;if(b)return o.refreshDrawings(l),u.refreshControls(),!0;let x=[],{drawingId:C}=p,w=zt(_,(r=a.getSegment())==null?``:r,v,h,C,f,a);if(w==null||w.length===0)return o.refreshDrawings(l),u.refreshControls(),!1;x.push(...w);let T={id:V.id,params:{unitId:m,actions:[],textRanges:null}};T.params.actions=x.reduce((e,t)=>S.compose(e,t),null);let E=d.syncExecuteCommand(T.id,T.params);return u.refreshControls(),!!E}},Gt={id:`doc.command.transform-non-inline-drawing`,type:i.COMMAND,handler:(e,t)=>{var n,r;if(t==null)return!1;let i=e.get(U),a=(n=i.getRenderById(t.unitId))==null?void 0:n.with(H),o=i.getRenderById(t.unitId),s=o==null?void 0:o.scene;if(s==null||a==null)return!1;let c=s.getTransformerByCreate(),l=e.get(g),u=e.get(y).getCurrentUniverDocInstance();if(u==null)return!1;let{drawing:d,unitId:f,offset:p,docTransform:m,segmentId:h,segmentPage:_}=t,v=[],{drawingId:b}=d,x=zt(h,(r=a.getSegment())==null?``:r,_,p,b,u,a);if(x==null)return!1;x.length>0&&v.push(...x);let C=S.getInstance(),{drawings:w={}}=u.getSnapshot(),{positionH:T,positionV:E,size:D,angle:O}=w[b].docTransform;if(!P.diffValue(T,m.positionH)){let e=C.replaceOp([`drawings`,b,`docTransform`,`positionH`],T,m.positionH);v.push(e)}if(!P.diffValue(E,m.positionV)){let e=C.replaceOp([`drawings`,b,`docTransform`,`positionV`],E,m.positionV);v.push(e)}if(!P.diffValue(D,m.size)){let e=C.replaceOp([`drawings`,b,`docTransform`,`size`],D,m.size);v.push(e)}if(!P.diffValue(O,m.angle)){let e=C.replaceOp([`drawings`,b,`docTransform`,`angle`],O,m.angle);v.push(e)}let k={id:V.id,params:{unitId:f,actions:[],textRanges:null,debounce:!0}};k.params.actions=v.reduce((e,t)=>S.compose(e,t),null);let A=l.syncExecuteCommand(k.id,k.params);return c.refreshControls(),!!A}},Kt={id:`doc.command.move-drawing`,type:i.COMMAND,handler:(e,t)=>{let n=e.get(g),r=e.get(z),i=e.get(y),a=e.get(U),{direction:o}=t,s=r.getFocusDrawings();if(s.length===0)return!1;let l=s[0].unitId,u=a.getRenderById(l),d=u==null?void 0:u.scene;if(d==null)return!1;let f=d.getTransformerByCreate(),p=i.getUniverDocInstance(l),m=s.map(e=>{var t;let{drawingId:n}=e,r=p==null||(t=p.getSnapshot().drawings)==null?void 0:t[n];if(r==null||r.layoutType===A.INLINE)return null;let{positionH:i,positionV:a}=r.docTransform,s={...i},l={...a};if(o===c.UP){var u;l.posOffset=((u=l.posOffset)==null?0:u)-2}else if(o===c.DOWN){var d;l.posOffset=((d=l.posOffset)==null?0:d)+2}else if(o===c.LEFT){var f;s.posOffset=((f=s.posOffset)==null?0:f)-2}else if(o===c.RIGHT){var m;s.posOffset=((m=s.posOffset)==null?0:m)+2}return{drawingId:n,key:o===c.UP||o===c.DOWN?`positionV`:`positionH`,value:o===c.UP||o===c.DOWN?l:s}}).filter(e=>e!=null);if(m.length===0)return!1;let h=n.syncExecuteCommand(Ut.id,{unitId:l,subUnitId:l,drawings:m});return f.refreshControls(),!!h}},qt={id:`doc.operation.clear-drawing-transformer`,type:i.MUTATION,handler:(e,t)=>{let n=e.get(U);return t.forEach(e=>{var t;(t=n.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},Jt=`COMPONENT_DOC_DRAWING_PANEL`,Yt={id:`sidebar.operation.doc-image`,type:i.COMMAND,handler:async(e,t)=>{let n=e.get(tt),r=e.get(T),i=e.get(G);switch(t.value){case`open`:n.open({header:{title:r.t(`docImage.panel.title`)},children:{label:Jt},onClose:()=>{i.focusDrawing(null)},width:360});break;default:n.close();break}return!0}},Xt={id:`doc.operation.edit-doc-image`,type:i.OPERATION,handler:(e,t)=>{let n=e.get(G),r=e.get(g);return t==null?!1:(n.focusDrawing([t]),r.executeCommand(Yt.id,{value:`open`}),!0)}};function Zt(e,t,n=1,r=0){let{top:i,left:a,bottom:o,right:s}=e,c=s-a,l=o-i,{viewportScrollX:u,viewportScrollY:d}=t.getViewport(me.VIEW_MAIN),{scaleX:f,scaleY:p}=t.getAncestorScale();return{startX:(a-u)*f,startY:(i-d)*p,endX:(a+c-u)*f,endY:(i+l-d)*p,width:c*f,height:l*p,rotate:r,absolute:{left:!1,top:!1},opacity:n==null?1:n}}function Qt(e,t){let{top:n,left:r,width:i,height:a,angle:o,opacity:s}=e;return Zt({top:n,left:r,bottom:n+a,right:r+i},t.scene,s,o)}let $t=class extends l{constructor(e,t,n,r,i,a){super(),this._renderManagerService=e,this._drawingManagerService=t,this._drawingRenderService=n,this._canvasFloatDomService=r,this._univerInstanceService=i,this._commandService=a,X(this,`_domLayerInfoMap`,new Map),this._initialize()}dispose(){super.dispose()}_initialize(){this._drawingAddRemoveListener(),this._initScrollAndZoomEvent()}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e);if(t==null)return null;let n=t.scene;return{scene:n,transformer:n.getTransformerByCreate(),renderUnit:t,canvas:t.engine.getCanvasElement()}}_drawingAddRemoveListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{this._insertRects(e)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}_insertRects(e){e.forEach(async e=>{let{unitId:t}=e;if(!this._univerInstanceService.getUnit(t,I.UNIVER_DOC))return;let n=this._getSceneAndTransformerByDrawingSearch(t);if(n==null)return;let r=this._drawingManagerService.getDrawingByParam(e);if(r==null)return;let i=await this._drawingRenderService.renderFloatDom(r,n.scene);if(!(i==null||i.length===0))for(let e of i){this._addHoverForRect(e);let i=new u,a=new lt(Qt(e,n.renderUnit)),o=n.canvas,s=r.data,c={dispose:i,rect:e,position$:a,unitId:t};this._canvasFloatDomService.addFloatDom({position$:a,id:r.drawingId,componentKey:r.componentKey,onPointerDown:e=>{o.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{o.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{o.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{o.dispatchEvent(new WheelEvent(e.type,e))},data:s,unitId:t});let l=e.onTransformChange$.subscribeEvent(()=>{let t=Qt(e,n.renderUnit);a.next(t)});i.add(()=>{this._canvasFloatDomService.removeFloatDom(r.drawingId)}),l&&i.add(l),this._domLayerInfoMap.set(r.drawingId,c)}})}_addHoverForRect(e){this.disposeWithMe(ae(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=xe.GRAB}))),this.disposeWithMe(ae(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=xe.DEFAULT})))}_removeDom(e){let t=this._domLayerInfoMap.get(e);if(!t)return;let{unitId:n}=t;this._domLayerInfoMap.delete(e),t.dispose.dispose();let r=this._getSceneAndTransformerByDrawingSearch(n);r&&r.scene.removeObject(t.rect)}_initScrollAndZoomEvent(){let e=e=>{let t=this._getSceneAndTransformerByDrawingSearch(e);t&&this._domLayerInfoMap.forEach(n=>{if(n.unitId!==e)return;let r=Qt(n.rect,t.renderUnit);n.position$.next(r)})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(I.UNIVER_DOC).pipe(pt(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t}:null}),ht(e=>e?ne(e.render.scene.getViewport(me.VIEW_MAIN).onScrollAfter$).pipe(pt(()=>({unitId:e.unitId}))):mt(null))).subscribe(t=>{if(!t)return;let{unitId:n}=t;e(n)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===fe.id){let{unitId:n}=t.params;e(n)}}))}insertFloatDom(e,t){var n,r,i;let a=this._univerInstanceService.getCurrentUnitOfType(I.UNIVER_DOC);if(!a)return!1;let o=this._getSceneAndTransformerByDrawingSearch(a.getUnitId());if(!o)return!1;let s=(n=o.renderUnit.with(B).getSkeleton().getSkeletonData())==null?void 0:n.pages[0];if(!s)return!1;let{pageWidth:c,marginLeft:l,marginRight:u}=s,d=c-l-u,p={size:{width:(r=t.width)==null?d:r,height:t.height},positionH:{relativeFrom:D.PAGE,posOffset:0},positionV:{relativeFrom:O.PAGE,posOffset:0},angle:0},m=(i=t.drawingId)==null?re():i,h={unitId:a.getUnitId(),drawings:[{drawingId:m,drawingType:f.DRAWING_DOM,subUnitId:a.getUnitId(),unitId:a.getUnitId(),...e,title:``,description:``,docTransform:p,layoutType:A.INLINE,transform:he(p)}]};return this._commandService.syncExecuteCommand(kt.id,h),m}};$t=Q([Z(0,U),Z(1,G),Z(2,b(yt)),Z(3,b(Ye)),Z(4,y),Z(5,g)],$t);const en=`doc.menu.image`,tn=Lt.id,nn=e=>{let t=e.get(se),n=e.get(y);return new ut(e=>{let r=t.textSelection$.subscribe(()=>{let r=t.getActiveTextRange();if(r){var i;let{segmentId:t,startOffset:a,endOffset:o}=r,s=n.getCurrentUniverDocInstance(),c=s==null||(i=s.getSelfOrHeaderFooterModel(t).getBody())==null?void 0:i.tables;if(c&&c.length&&c.some(e=>{let{startIndex:t,endIndex:n}=e;return a>=t&&a<n||o>=t&&o<n})){e.next(!0);return}}else{e.next(!0);return}e.next(!1)});return()=>r.unsubscribe()})};function rn(e){return{id:en,type:rt.SUBITEMS,icon:`AddImageIcon`,tooltip:`docImage.title`,disabled$:nn(e),hidden$:ct(e,I.UNIVER_DOC,void 0,a)}}function an(e){return{id:tn,title:`docImage.upload.float`,type:rt.BUTTON,hidden$:ct(e,I.UNIVER_DOC,void 0,a)}}var on=`@univerjs/docs-drawing-ui`,sn=`0.20.0`;const cn=`docs-drawing-ui.config`;Symbol(cn);const ln={};function un(e){if(S.isNoop(e)||!Array.isArray(e))return null;let t=e.find(e=>Array.isArray(e)&&(e==null?void 0:e[0])===`drawings`);if(t==null||!Array.isArray(t)||t.length<3||typeof t[1]==`string`&&typeof t[2]!=`object`||Array.isArray(t[1])&&typeof t[1][1]!=`object`)return null;let n=[];if(Array.isArray(t==null?void 0:t[1])){for(let e of t)if(Array.isArray(e)){var r,i;n.push({type:!(e==null||(r=e[1])==null)&&r.i?`add`:`remove`,drawingId:e==null?void 0:e[0],drawing:e==null||(i=e[1])==null?void 0:i.i})}}else{var a,o;n.push({type:(a=t[2])!=null&&a.i?`add`:`remove`,drawingId:t[1],drawing:(o=t[2])==null?void 0:o.i})}return n}function dn(e){if(!Array.isArray(e)||e.length<3||e[0]!==`drawingsOrder`)return[];let t=[];for(let n=1;n<e.length;n++){let r=e[n];if(Array.isArray(r)&&typeof r[0]==`number`&&typeof r[1]==`object`)t.push(r[0]);else{t.length=0;break}}return t}let fn=class extends l{constructor(e,t,n,r,i){super(),this._univerInstanceService=e,this._commandService=t,this._drawingManagerService=n,this._docDrawingService=r,this._renderManagerService=i,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id!==V.id)return;let{unitId:t,actions:n}=e.params,r=un(n);if(r!=null)for(let{type:e,drawingId:n,drawing:i}of r)e===`add`?this._addDrawings(t,[i]):this._removeDrawings(t,[n])})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==V.id)return;let{unitId:t,actions:n}=e.params;dn(n).length>0&&this._updateDrawingsOrder(t)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var t;if(e.id!==F.id&&e.id!==ee.id)return;let n=(t=this._univerInstanceService.getCurrentUniverDocInstance())==null?void 0:t.getUnitId(),r=this._drawingManagerService.getFocusDrawings();if(n==null||r.length===0)return;let i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(a==null)return!1;a.getTransformerByCreate().refreshControls()}))}_addDrawings(e,t){let n=this._drawingManagerService,r=this._docDrawingService,{subUnitId:i,redo:a,objects:o}=this._docDrawingService.getBatchAddOp(t);n.applyJson1(e,i,a),r.applyJson1(e,i,a),n.addNotification(o),r.addNotification(o)}_removeDrawings(e,t){let n=this._drawingManagerService,r=this._docDrawingService,{subUnitId:i,redo:a,objects:o}=this._docDrawingService.getBatchRemoveOp(t.map(t=>({unitId:e,subUnitId:e,drawingId:t})));n.applyJson1(e,i,a),r.applyJson1(e,i,a),n.removeNotification(o),r.removeNotification(o)}_updateDrawingsOrder(e){let t=this._univerInstanceService.getUniverDocInstance(e);if(t==null)return;let n=t.getSnapshot().drawingsOrder;if(n==null)return;let r=this._drawingManagerService,i=this._docDrawingService;r.setDrawingOrder(e,e,n),i.setDrawingOrder(e,e,n);let a={unitId:e,subUnitId:e,drawingIds:n};r.orderNotification(a),i.orderNotification(a)}};fn=Q([Z(0,y),Z(1,g),Z(2,G),Z(3,z),Z(4,U)],fn);const pn=e=>{let{floatDomInfos:t,scene:n,offset:r,bound:i}=e,a=i.right-i.left,o=i.bottom-i.top;return J(`div`,{className:`univer-absolute univer-left-0 univer-top-0`,children:Tt(()=>t.map(e=>{let{width:t=0,height:r=0,left:i=0,top:a=0}=e.transform,o=Zt({left:i,right:i+t,top:a,bottom:a+r},n),s={position$:new lt(o),position:o,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,s]}).filter(([e,t])=>!(t.position.endX<0||t.position.endY<0||t.position.startX>a||t.position.startY>o)),[t,n,r,a,o]).map(([e,t])=>J(it,{layer:t,id:e,position:t.position},e))})};let mn=class extends l{constructor(e,t,n,r,i){super(),this._docPrintInterceptorService=e,this._drawingRenderService=t,this._drawingManagerService=n,this._componetManager=r,this._injector=i,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._docPrintInterceptorService.interceptor.intercept(this._docPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(e,t,n)=>{let{unitId:r,scene:i}=t,a=this._drawingManagerService.getDrawingDataForUnit(r),o=a==null?void 0:a[r];return o&&o.order.forEach(e=>{let t=o.data[e];t.drawingType!==f.DRAWING_CHART&&t.drawingType!==f.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,i)}),n()}}))}_initPrintingDom(){this.disposeWithMe(this._docPrintInterceptorService.interceptor.intercept(this._docPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,n)=>{let{unitId:r}=t,i=this._drawingManagerService.getDrawingDataForUnit(r),a=i==null?void 0:i[r];if(a){let i=a.order.map(e=>{let t=a.data[e];if(t.drawingType===f.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(o)};if(t.drawingType===f.DRAWING_DOM){let e=this._docPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return Le(J(st(pn,this._injector),{unitId:r,floatDomInfos:i,scene:t.scene,skeleton:t.skeleton,offset:t.offset,bound:t.bound}),t.root),e==null||e.add(()=>{Re(t.root)}),n(e)}}}))}};mn=Q([Z(0,b(le)),Z(1,b(yt)),Z(2,G),Z(3,b(Xe)),Z(4,b(x))],mn);function hn(e){let{path:t}=e;return t.some(e=>e===`cells`)}let gn=class extends l{constructor(e,t,n,r){super(),this._commandService=e,this._univerInstanceService=t,this._drawingManagerService=n,this._renderManagerService=r,X(this,`_liquid`,new we),X(this,`_listenerOnImageMap`,new Set),X(this,`_transformerCache`,new Map),X(this,`_anchorShape`,void 0),this._init()}_init(){this._listenDrawingFocus()}_listenDrawingFocus(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{if(e.length!==0)for(let t of e){let{unitId:e}=t;this._listenerOnImageMap.has(e)||(this._listenTransformerChange(e),this._listenerOnImageMap.add(e))}}))}_listenTransformerChange(e){var t;let n=(t=this._getSceneAndTransformerByDrawingSearch(e))==null?void 0:t.transformer;if(n==null)return;this.disposeWithMe(ae(n.changeStart$.subscribe(e=>{this._transformerCache.clear();let{objects:t}=e;for(let e of t.values()){var n;let{oKey:t,width:r,height:i,left:a,top:o,angle:s}=e,c=this._drawingManagerService.getDrawingOKey(t);if(c==null)continue;let l=this._univerInstanceService.getUniverDocInstance(c.unitId),u=l==null||(n=l.getSnapshot().drawings)==null?void 0:n[c.drawingId];if((u==null?void 0:u.layoutType)===A.INLINE)try{e.setOpacity(.2)}catch{}u!=null&&this._transformerCache.set(c.drawingId,{drawing:u,top:o,left:a,width:r,height:i,angle:s})}})));let r=R(this._updateMultipleDrawingDocTransform.bind(this),50);R(this._nonInlineDrawingTransform.bind(this),50),this.disposeWithMe(ae(n.changing$.subscribe(e=>{let{objects:t,offsetX:n,offsetY:i}=e;if(t.size>1)r(t);else if(t.size===1){let e=this._transformerCache.values().next().value,{width:r,height:a,top:o,left:s,angle:c}=t.values().next().value;if(e&&r===e.width&&a===e.height&&o===e.top&&s===e.left&&c===e.angle)return;e&&(e.drawing.layoutType,A.INLINE),e&&e.drawing.layoutType===A.INLINE&&n!=null&&i!=null&&this._updateInlineDrawingAnchor(e.drawing,n,i)}}))),this.disposeWithMe(ae(n.changeEnd$.subscribe(e=>{let{objects:t,offsetX:n,offsetY:r}=e;for(let e of t.values()){let t=this._drawingManagerService.getDrawingOKey(e.oKey);if(t==null)continue;let n=this._transformerCache.get(t==null?void 0:t.drawingId);if((n==null?void 0:n.drawing.layoutType)===A.INLINE)try{e.setOpacity(1)}catch{}}if(this._anchorShape&&this._anchorShape.hide(),t.size>1)this._updateMultipleDrawingDocTransform(t);else if(t.size===1){let e=this._transformerCache.values().next().value,i=t.values().next().value,{width:a,height:o,top:s,left:c,angle:l}=i;if(e&&a===e.width&&o===e.height&&s===e.top&&c===e.left&&l===e.angle)return;e&&e.drawing.layoutType===A.INLINE?a!==e.width||o!==e.height||l!==e.angle?this._updateDrawingSize(e,i):n!=null&&r!=null&&this._moveInlineDrawing(e.drawing,n,r):e&&this._nonInlineDrawingTransform(e.drawing,i)}this._transformerCache.clear()})))}_updateMultipleDrawingDocTransform(e){if(e.size<1)return;let t=[],n,r;for(let i of e.values()){let{oKey:e,left:a,top:o,angle:s}=i,{width:c,height:l}=i,u=this._drawingManagerService.getDrawingOKey(e);if(u==null)continue;n==null&&(n=u.unitId),r==null&&(r=u.subUnitId);let d=this._transformerCache.get(u.drawingId);if(d==null)continue;let{drawing:f,top:p,left:m,width:h,height:g,angle:_}=d,{width:v,height:y}=this._getPageContentSize(f);if(c=Math.min(c,v),l=Math.min(l,y),(h!==c||g!==l)&&t.push({drawingId:u.drawingId,key:`size`,value:{width:c,height:l}}),_!==s&&t.push({drawingId:u.drawingId,key:`angle`,value:s}),p!==o||m!==a){let e=o-p,n=a-m;e!==0&&t.push({drawingId:u.drawingId,key:`positionV`,value:{relativeFrom:f.docTransform.positionV.relativeFrom,posOffset:f.docTransform.positionV.posOffset+e}}),n!==0&&t.push({drawingId:u.drawingId,key:`positionH`,value:{relativeFrom:f.docTransform.positionH.relativeFrom,posOffset:f.docTransform.positionH.posOffset+n}})}}t.length>0&&n&&r&&this._commandService.executeCommand(Ut.id,{unitId:n,subUnitId:r,drawings:t})}_updateDrawingAnchor(e){if(this._transformerCache.size!==1)return;let t=this._transformerCache.values().next().value,n=e.values().next().value;this._getDrawingAnchor(t.drawing,n)}_updateInlineDrawingAnchor(e,t,n){var r;if(this._transformerCache.size!==1)return;let{contentBoxPointGroup:i}=(r=this._getInlineDrawingAnchor(e,t,n))==null?{}:r;i!=null&&this._createOrUpdateInlineAnchor(e.unitId,i)}_getInlineDrawingAnchor(e,t,n){var r,i;let a=this._renderManagerService.getRenderById(e.unitId),o=a==null?void 0:a.with(B).getSkeleton();if(a==null)return;let{mainComponent:s,scene:c}=a,l=s,u=c.getViewports()[0],{pageLayoutType:d=Te.VERTICAL,pageMarginLeft:f,pageMarginTop:p}=l.getOffsetConfig(),m=null,h=!1,g=-1,_=``,v=this._getTransformCoordForDocumentOffset(l,u,t,n);if(v==null)return;let y=(r=this._renderManagerService.getRenderById(e.unitId))==null?void 0:r.with(H);if(y==null)return;let b=o==null?void 0:o.findNodeByCoord(v,d,f,p,{strict:!1,segmentId:y.getSegment(),segmentPage:y.getSegmentPage()});if(b){let{node:e,ratioX:t,segmentPage:n,segmentId:r}=b;h=t<.5,m=e,g=n,_=r}if(m==null)return;let x=o==null?void 0:o.findPositionByGlyph(m,g),S=this._getDocObject();if(x==null||o==null||S==null||hn(x))return;let C={...x,isBack:h},{cursorList:w,contentBoxPointGroup:T}=new de(S.document.getOffsetConfig(),o).getRangePointData(C,C),{startOffset:E}=(i=ye(w))==null?{}:i;if(E!=null)return{offset:E,contentBoxPointGroup:T,segmentId:_,segmentPage:g}}_getDrawingAnchor(e,t){var n,r,i,a,o;let s=this._renderManagerService.getRenderById(e.unitId),c=s==null?void 0:s.with(B).getSkeleton(),l=c==null?void 0:c.getSkeletonData();if(l==null||s==null)return;let{pages:u,skeHeaders:d,skeFooters:f}=l,{mainComponent:p,scene:m}=s,h=p,g=m.getViewports()[0],{pageLayoutType:_=Te.VERTICAL,pageMarginLeft:v,pageMarginTop:y,docsLeft:b,docsTop:x}=h.getOffsetConfig(),{left:S,top:C,angle:w}=t,{width:T,height:E}=t,{positionV:k,positionH:A}=e.docTransform,{width:ee,height:j}=this._getPageContentSize(e);T=Math.min(T,ee),E=Math.min(E,j);let M=null,N=``,P=-1,F={...e.docTransform,size:{width:T,height:E},angle:w},{x:I,y:te}=m.getViewportScrollXY(g),ne=this._getTransformCoordForDocumentOffset(h,g,S-I,C-te);if(ne==null)return;let re=(n=this._renderManagerService.getRenderById(e.unitId))==null?void 0:n.with(H);if(re==null)return;let ie=c==null?void 0:c.findNodeByCoord(ne,_,v,y,{strict:!1,segmentId:re.getSegment(),segmentPage:re.getSegmentPage()});if(ie){let{node:e,segmentPage:t,segmentId:n}=ie;M=e,P=t,N=n}if(M==null)return;let L=(r=M.parent)==null?void 0:r.parent,R=L==null?void 0:L.parent,ae=(i=R==null?void 0:R.lines.find(e=>e.paragraphIndex===(L==null?void 0:L.paragraphIndex)&&e.paragraphStart))==null?R==null?void 0:R.lines[0]:i,z=R==null||(a=R.parent)==null?void 0:a.parent;if(L==null||R==null||ae==null||z==null)return;this._liquid.reset();let oe=z.type;for(let e of u){let{headerId:t,footerId:n,pageHeight:r,pageWidth:i,marginLeft:a,marginBottom:o}=e,s=u.indexOf(e);if(P>-1&&s===P){switch(oe){case Ce.HEADER:{var se;let e=(se=d.get(t))==null?void 0:se.get(i);if(e)this._liquid.translatePagePadding({marginTop:e.marginTop,marginLeft:a});else throw Error(`header skeleton not found`);break}case Ce.FOOTER:{var V;let e=(V=f.get(n))==null?void 0:V.get(i);if(e)this._liquid.translatePagePadding({marginTop:r-o+e.marginTop,marginLeft:a});else throw Error(`footer skeleton not found`);break}}break}if(this._liquid.translatePagePadding(e),e===z)break;this._liquid.restorePagePadding(e),this._liquid.translatePage(e,_,v,y)}if(k.relativeFrom===O.LINE)M=L.divides[0].glyphGroup[0];else{var ce,le;M=(ce=(le=ae.divides)==null||(le=le[0])==null||(le=le.glyphGroup)==null?void 0:le[0])==null?M:ce}switch(F.positionH={relativeFrom:A.relativeFrom,posOffset:S-this._liquid.x-b},A.relativeFrom){case D.MARGIN:F.positionH.posOffset=S-this._liquid.x-b-z.marginLeft;break;case D.COLUMN:F.positionH.posOffset=S-this._liquid.x-b-R.left;break}switch(F.positionV={relativeFrom:k.relativeFrom,posOffset:C-this._liquid.y-x},k.relativeFrom){case O.PAGE:F.positionV.posOffset=C-this._liquid.y-x-z.marginTop;break;case O.LINE:F.positionV.posOffset=C-this._liquid.y-x-L.top;break;case O.PARAGRAPH:F.positionV.posOffset=C-this._liquid.y-x-ae.top;break}if(M==null)return;let ue=c==null?void 0:c.findPositionByGlyph(M,P),fe=this._getDocObject();if(ue==null||c==null||fe==null||hn(ue))return;let pe={...ue,isBack:!1},{cursorList:me}=new de(fe.document.getOffsetConfig(),c).getRangePointData(pe,pe),{startOffset:he}=(o=ye(me))==null?{}:o;if(he!=null)return{offset:he,docTransform:F,segmentId:N,segmentPage:P}}_updateDrawingSize(e,t){let n=[],{drawing:r,width:i,height:a,angle:o}=e,{unitId:s,subUnitId:c}=r,{width:l,height:u,angle:d}=t,{width:f,height:p}=this._getPageContentSize(r);l=Math.min(f,l),u=Math.min(p,u),(l!==i||u!==a)&&n.push({drawingId:r.drawingId,key:`size`,value:{width:l,height:u}}),d!==o&&n.push({drawingId:r.drawingId,key:`angle`,value:d}),n.length>0&&s&&c&&this._commandService.executeCommand(Ut.id,{unitId:s,subUnitId:c,drawings:n})}_moveInlineDrawing(e,t,n){let r=this._getInlineDrawingAnchor(e,t,n),{offset:i,segmentId:a,segmentPage:o}=r==null?{}:r;return this._commandService.executeCommand(Wt.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:i,segmentId:a,segmentPage:o,needRefreshDrawings:i==null})}_limitDrawingInPage(e,t){let n=this._renderManagerService.getRenderById(e.unitId),{left:r,top:i,width:a,height:o,angle:s}=t,c=n==null?void 0:n.with(B).getSkeleton(),l=c==null?void 0:c.getSkeletonData(),{pages:u}=l==null?{}:l;if(l==null||n==null||u==null)return{left:r,top:i,width:a,height:o,angle:s};let{mainComponent:d}=n,{top:f,pageLayoutType:p,pageMarginLeft:m,pageMarginTop:h}=d,g=i;this._liquid.reset();for(let e of u){let{marginBottom:t,pageHeight:n}=e,r=u[u.indexOf(e)+1];r!=null&&(P.hasIntersectionBetweenTwoRanges(i,i+o,this._liquid.y+f+n-t,this._liquid.y+f+n+h+r.marginTop)&&(g=i+o/2<this._liquid.y+f+n+h/2?Math.min(i,this._liquid.y+f+n-t-o):Math.max(i,this._liquid.y+f+n+h+r.marginTop)),this._liquid.translatePage(e,p,m,h))}return{left:r,top:g,width:a,height:o,angle:s}}_nonInlineDrawingTransform(e,n,r=!1){let i=e.isMultiTransform===t.TRUE?n:this._limitDrawingInPage(e,n);if(r&&i.top!==n.top)return;let a=this._getDrawingAnchor(e,i),{offset:o,docTransform:s,segmentId:c,segmentPage:l}=a==null?{}:a;return o==null||s==null?this._updateMultipleDrawingDocTransform(new Map([[e.drawingId,n]])):this._commandService.executeCommand(Gt.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:o,docTransform:s,segmentId:c,segmentPage:l})}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;if(n!=null)return{scene:n,transformer:n.getTransformerByCreate()}}_getTransformCoordForDocumentOffset(e,t,n,r){let{documentTransform:i}=e.getOffsetConfig(),a=t.transformVector2SceneCoord(Oe.FromArray([n,r]));if(a)return i.clone().invert().applyPoint(a)}_createOrUpdateInlineAnchor(e,t){let n=this._renderManagerService.getRenderById(e);if(n==null)return;let{mainComponent:i,scene:a}=n,{docsLeft:o,docsTop:s}=i.getOffsetConfig(),{left:c,top:l,height:u}=ge(t),d=c+o,f=l+s;if(this._anchorShape){this._anchorShape.transformByState({left:d,top:f,height:u}),this._anchorShape.show();return}let p=new Ee(`__InlineDrawingAnchor__`+re(6),{left:d,top:f,height:u,strokeWidth:2,stroke:ke(r.darkgray,1),evented:!1});this._anchorShape=p,a.addObject(p,pe)}_getDocObject(){return ve(this._univerInstanceService,this._renderManagerService)}_getPageContentSize(e){let t=this._renderManagerService.getRenderById(e.unitId),n=t==null?void 0:t.with(B).getSkeleton(),r=n==null?void 0:n.getSkeletonData();if(r==null||t==null)return{width:500,height:500};let{pages:i}=r,a=null;for(let t of i){let{skeDrawings:n}=t;if(n.has(e.drawingId)){a=t;break}}if(a){let{pageWidth:e,pageHeight:t,marginLeft:n,marginBottom:r,marginRight:i,marginTop:o}=a;return{width:Math.max(500,e-n-i),height:Math.max(500,t-o-r)}}else return{width:500,height:500}}};gn=Q([Z(0,g),Z(1,y),Z(2,G),Z(3,U)],gn);const _n={[at.MEDIA]:{[en]:{order:0,menuItemFactory:rn,[tn]:{order:0,menuItemFactory:an}}}},vn=-1e3,yn=1e3,bn=e=>{let t=K(g),n=K(T),r=K(G),i=K(U),a=K(y),{drawings:o}=e,s=o[0];if(s==null)return;let{unitId:c}=s,l=a.getUniverDocInstance(c),u=l==null?void 0:l.getSnapshot().documentStyle.documentFlavor,f=i.getRenderById(c),p=f==null?void 0:f.scene;if(p==null)return;let m=p.getTransformerByCreate(),h=[{label:n.t(`image-position.column`),value:String(D.COLUMN)},{label:n.t(`image-position.page`),value:String(D.PAGE)},{label:n.t(`image-position.margin`),value:String(D.MARGIN)}],_=[{label:n.t(`image-position.line`),value:String(O.LINE),disabled:u===d.MODERN},{label:n.t(`image-position.page`),value:String(O.PAGE),disabled:u===d.MODERN},{label:n.t(`image-position.margin`),value:String(O.MARGIN),disabled:u===d.MODERN},{label:n.t(`image-position.paragraph`),value:String(O.PARAGRAPH)}],[v,b]=q(!0),[x,S]=q({relativeFrom:D.PAGE,posOffset:0}),[C,w]=q({relativeFrom:O.PAGE,posOffset:0}),[E,k]=q(!0),[ee,j]=q(!0);function M(e,n){var a;e===`positionH`?S(n):w(n);let o=r.getFocusDrawings();if(o.length===0)return;let s=o.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));t.executeCommand(Ut.id,{unitId:o[0].unitId,subUnitId:o[0].unitId,drawings:s.map(t=>({drawingId:t.drawingId,key:e,value:n}))});let l=(a=i.getRenderById(c))==null?void 0:a.with(H);l&&l.blur(),m.refreshControls()}function N(e){var t;let n=x.relativeFrom,a=x.posOffset,o=Number(e);if(n===o)return;let s=r.getFocusDrawings();if(s.length===0)return;let c=s[0].drawingId,l=s[0].unitId,u=null,d=0,f=(t=i.getRenderById(l))==null?void 0:t.with(B).getSkeleton(),p=f==null?void 0:f.getSkeletonData();if(p==null)return;let{pages:m,skeHeaders:h,skeFooters:g}=p;for(let e of m){var _,v;let{marginLeft:t,skeDrawings:n,headerId:r,footerId:i,pageWidth:a}=e;if(n.has(c)){u=n.get(c),d=t;break}let o=(_=h.get(r))==null?void 0:_.get(a);if(o!=null&&o.skeDrawings.has(c)){u=o==null?void 0:o.skeDrawings.get(c),d=t;break}let s=(v=g.get(i))==null?void 0:v.get(a);if(s!=null&&s.skeDrawings.has(c)){u=s==null?void 0:s.skeDrawings.get(c),d=t;break}}if(u==null)return;let y=0;n===D.COLUMN?y-=u.columnLeft:n===D.MARGIN&&(y-=d),o===D.COLUMN?y+=u.columnLeft:o===D.MARGIN?y+=d:D.PAGE,M(`positionH`,{relativeFrom:o,posOffset:(a==null?0:a)-y})}function P(e){var t,n,o,s,c;let l=C.relativeFrom,u=C.posOffset,d=Number(e);if(l===d)return;let f=r.getFocusDrawings();if(f.length===0)return;let{drawingId:p,unitId:m}=f[0],h=a.getUniverDocInstance(m),g=(t=i.getRenderById(m))==null?void 0:t.with(B).getSkeleton(),_=(n=i.getRenderById(m))==null?void 0:n.with(H),v=_==null?void 0:_.getSegment(),y=_==null?void 0:_.getSegmentPage(),b=h==null||(o=h.getSelfOrHeaderFooterModel(v).getBody())==null||(o=o.customBlocks)==null?void 0:o.find(e=>e.blockId===p);if(b==null||g==null||_==null)return;let{startIndex:x}=b,S=g.findNodeByCharIndex(x,v,y),w=S==null||(s=S.parent)==null?void 0:s.parent,T=w==null?void 0:w.parent,E=T==null?void 0:T.lines.find(e=>e.paragraphIndex===(w==null?void 0:w.paragraphIndex)&&e.paragraphStart),D=T==null||(c=T.parent)==null?void 0:c.parent;if(S==null||w==null||E==null||T==null||D==null)return;let k=0;l===O.PARAGRAPH?k-=E.top:l===O.LINE?k-=w.top:l===O.PAGE&&(k+=D.marginTop),d===O.PARAGRAPH?k+=E.top:d===O.LINE?k+=w.top:d===O.PAGE&&(k-=D.marginTop),M(`positionV`,{relativeFrom:d,posOffset:(u==null?0:u)-k})}function F(e){var t;let n=l==null?void 0:l.getSnapshot(),r=n==null||(t=n.drawings)==null?void 0:t[e.drawingId];if(r==null)return;let{layoutType:i}=r,{positionH:a,positionV:o}=r.docTransform;S(a),w(o),b(i===A.INLINE),k(o.relativeFrom===O.PARAGRAPH||o.relativeFrom===O.LINE)}function I(){let e=r.getFocusDrawings();e.length!==0&&F(e[0])}function te(e){k(e),P(e?String(O.PARAGRAPH):String(O.PAGE))}return wt(()=>{I();let e=r.focus$.subscribe(e=>{if(e.length===0){j(!1);return}j(!0),F(e[0])}),n=t.onCommandExecuted(async e=>{e.id===V.id&&I()});return()=>{e.unsubscribe(),n.dispose()}},[]),Y(`div`,{className:Ie(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!ee}),children:[J(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:n.t(`image-position.title`)})}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:n.t(`image-position.horizontal`)})}),Y(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[Y(`div`,{children:[J(`span`,{children:n.t(`image-position.absolutePosition`)}),J(Me,{min:vn,max:yn,precision:1,disabled:v,value:x.posOffset,onChange:e=>{M(`positionH`,{relativeFrom:x.relativeFrom,posOffset:e})}})]}),Y(`div`,{children:[J(`span`,{children:n.t(`image-position.toTheRightOf`)}),J(Fe,{value:String(x.relativeFrom),disabled:v,options:h,onChange:N})]})]}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:n.t(`image-position.vertical`)})}),Y(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[Y(`div`,{children:[J(`span`,{children:n.t(`image-position.absolutePosition`)}),J(Me,{min:vn,max:yn,precision:1,disabled:v,value:C.posOffset,onChange:e=>{M(`positionV`,{relativeFrom:C.relativeFrom,posOffset:e})}})]}),Y(`div`,{children:[J(`span`,{children:n.t(`image-position.bellow`)}),J(Fe,{disabled:v,value:String(C.relativeFrom),options:_,onChange:P})]})]}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:n.t(`image-position.options`)})}),J(`div`,{children:J(je,{disabled:v,checked:E,onChange:te,children:n.t(`image-position.moveObjectWithText`)})})]})},xn=e=>{let n=K(g),r=K(T),i=K(G),a=K(U),o=K(y),{drawings:s}=e,c=s[0];if(c==null)return null;let{unitId:l}=c,u=o.getUniverDocInstance(l),d=a.getRenderById(l);if((d==null?void 0:d.scene)==null)return null;let[f,p]=q(!0),[m,h]=q(!0),[_,v]=q(!0),[b,x]=q($.INLINE),[S,C]=q(``),[w,E]=q({distT:0,distL:0,distB:0,distR:0}),[D,O]=q(!0);function k(e){x(e);let t=i.getFocusDrawings();if(t.length===0)return;let{unitId:r,subUnitId:a}=t[0],o=t.map(({unitId:e,subUnitId:t,drawingId:n})=>({unitId:e,subUnitId:t,drawingId:n}));n.executeCommand(Bt.id,{unitId:r,subUnitId:a,drawings:o,wrappingStyle:e})}function ee(e){C(e);let t=i.getFocusDrawings();if(t.length===0)return;let r=t.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(Ht.id,{unitId:t[0].unitId,subUnitId:t[0].unitId,drawings:r,wrapText:e})}function j(e,t){if(e==null)return;E({...w,[t]:e});let r=i.getFocusDrawings();if(r.length===0)return;let a=r.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(Vt.id,{unitId:r[0].unitId,subUnitId:r[0].unitId,drawings:a,dist:{[t]:e}})}function M(){let e=i.getFocusDrawings();e.length!==0&&N(e[0])}function N(e){var n;let r=u==null||(n=u.getSnapshot())==null||(n=n.drawings)==null?void 0:n[e.drawingId];if(r==null)return;let{distT:i=0,distL:a=0,distB:o=0,distR:s=0,layoutType:c=A.INLINE,behindDoc:l=t.FALSE,wrapText:d=te.BOTH_SIDES}=r;if(E({distT:i,distL:a,distB:o,distR:s}),C(d),p(c!==A.WRAP_SQUARE),c===A.WRAP_NONE||c===A.INLINE?h(!0):h(!1),c===A.WRAP_NONE||c===A.INLINE||c===A.WRAP_TOP_AND_BOTTOM?v(!0):v(!1),c===A.WRAP_NONE)l===t.TRUE?x($.BEHIND_TEXT):x($.IN_FRONT_OF_TEXT);else switch(c){case A.INLINE:x($.INLINE);break;case A.WRAP_SQUARE:x($.WRAP_SQUARE);break;case A.WRAP_TOP_AND_BOTTOM:x($.WRAP_TOP_AND_BOTTOM);break;default:throw Error(`Unsupported layout type: ${c}`)}}return wt(()=>{M();let e=i.focus$.subscribe(e=>{if(e.length===0){O(!1);return}O(!0),N(e[0])}),t=n.onCommandExecuted(async e=>{e.id===V.id&&M()});return()=>{e.unsubscribe(),t.dispose()}},[]),Y(`div`,{className:Ie(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!D}),children:[J(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:r.t(`image-text-wrap.title`)})}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:r.t(`image-text-wrap.wrappingStyle`)})}),J(`div`,{children:Y(Pe,{value:b,onChange:k,direction:`vertical`,children:[J(W,{value:$.INLINE,children:r.t(`image-text-wrap.inline`)}),J(W,{value:$.WRAP_SQUARE,children:r.t(`image-text-wrap.square`)}),J(W,{value:$.WRAP_TOP_AND_BOTTOM,children:r.t(`image-text-wrap.topAndBottom`)}),J(W,{value:$.BEHIND_TEXT,children:r.t(`image-text-wrap.behindText`)}),J(W,{value:$.IN_FRONT_OF_TEXT,children:r.t(`image-text-wrap.inFrontText`)})]})}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:r.t(`image-text-wrap.wrapText`)})}),J(`div`,{children:Y(Pe,{disabled:f,value:S,onChange:ee,direction:`horizontal`,children:[J(W,{value:te.BOTH_SIDES,children:r.t(`image-text-wrap.bothSide`)}),J(W,{value:te.LEFT,children:r.t(`image-text-wrap.leftOnly`)}),J(W,{value:te.RIGHT,children:r.t(`image-text-wrap.rightOnly`)})]})}),J(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:J(`div`,{children:r.t(`image-text-wrap.distanceFromText`)})}),Y(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.top`)}),J(Me,{min:0,max:100,disabled:m,precision:1,value:w.distT,onChange:e=>{j(e,`distT`)}})]}),Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.left`)}),J(Me,{min:0,max:100,disabled:_,precision:1,value:w.distL,onChange:e=>{j(e,`distL`)}})]})]}),Y(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.bottom`)}),J(Me,{min:0,max:100,disabled:m,precision:1,value:w.distB,onChange:e=>{j(e,`distB`)}})]}),Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.right`)}),J(Me,{min:0,max:100,disabled:_,precision:1,value:w.distR,onChange:e=>{j(e,`distR`)}})]})]})]})},Sn=()=>{let e=K(G),[t,n]=q(e.getFocusDrawings());return wt(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&Y(`div`,{className:`univer-text-sm`,children:[J(vt,{drawings:t,hasAlign:!1,hasCropper:!1,hasGroup:!1,hasTransform:!1}),J(xn,{drawings:t}),J(bn,{drawings:t})]})};function Cn(e){return e.getContextValue(m)&&e.getContextValue(h)&&e.getContextValue(p)}const wn={id:Kt.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:nt.ARROW_DOWN,priority:100,preconditions:Cn,staticParameters:{direction:c.DOWN}},Tn={id:Kt.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:nt.ARROW_UP,priority:100,preconditions:Cn,staticParameters:{direction:c.UP}},En={id:Kt.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:nt.ARROW_LEFT,priority:100,preconditions:Cn,staticParameters:{direction:c.LEFT}},Dn={id:Kt.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:nt.ARROW_RIGHT,priority:100,preconditions:Cn,staticParameters:{direction:c.RIGHT}},On={id:Dt.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,preconditions:Cn,binding:nt.DELETE,mac:nt.BACKSPACE};let kn=class extends l{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(Jt,Sn))}_initMenus(){this._menuManagerService.mergeMenu(_n)}_initCommands(){[Lt,kt,Bt,Vt,Ht,Ut,Wt,Gt,Et,Yt,qt,Xt,Ot,jt,Kt,Dt,At].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[wn,Tn,En,Dn,On].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};kn=Q([Z(0,b(Xe)),Z(1,Qe),Z(2,g),Z(3,et)],kn);let An=class extends l{constructor(e,t,n,r,i,a,o,s){super(),this._context=e,this._docSkeletonManagerService=t,this._commandService=n,this._editorService=r,this._drawingManagerService=i,this._docRefreshDrawingsService=a,this._univerInstanceService=o,this._lifecycleService=s,X(this,`_liquid`,new we),this._initialize(),this._commandExecutedListener()}_initialize(){this._initialRenderRefresh(),this._drawingInitializeListener(),this._initResize()}_initialRenderRefresh(){this.disposeWithMe(this._docSkeletonManagerService.currentSkeleton$.subscribe(e=>{e!=null&&this._refreshDrawing(e)})),this.disposeWithMe(this._docRefreshDrawingsService.refreshDrawings$.subscribe(e=>{e!=null&&this._refreshDrawing(e)}))}_commandExecutedListener(){let e=[V.id,fe.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(e.includes(t.id)){let{unitId:e}=t.params,{unitId:n,mainComponent:r}=this._context;if(e!==n)return;let i=this._docSkeletonManagerService.getSkeleton();if(i==null)return;if(this._editorService.isEditor(n)&&n!==a){r==null||r.makeDirty();return}this._refreshDrawing(i)}}))}_initResize(){this.disposeWithMe(ne(this._context.engine.onTransformChange$).pipe(ft(e=>e.type===De.resize),dt(16)).subscribe(()=>{var e;let t=this._docSkeletonManagerService.getSkeleton(),{scene:n}=this._context;(e=n.getTransformer())==null||e.refreshControls(),this._refreshDrawing(t)}))}_refreshDrawing(e){let t=e==null?void 0:e.getSkeletonData(),{mainComponent:n,unitId:r}=this._context,i=n;if(!t)return;let{left:a,top:o,pageLayoutType:s,pageMarginLeft:c,pageMarginTop:l}=i,{pages:u,skeHeaders:d,skeFooters:f}=t,p={};this._liquid.reset();for(let e=0,t=u.length;e<t;e++){let t=u[e],{headerId:n,footerId:i,pageWidth:g}=t;if(n){var m;let e=(m=d.get(n))==null?void 0:m.get(g);e&&this._calculateDrawingPosition(r,e,a,o,p,e.marginTop,t.marginLeft)}if(i){var h;let e=(h=f.get(i))==null?void 0:h.get(g);e&&this._calculateDrawingPosition(r,e,a,o,p,t.pageHeight-t.marginBottom+e.marginTop,t.marginLeft)}this._calculateDrawingPosition(r,t,a,o,p,t.marginTop,t.marginLeft),this._liquid.translatePage(t,s,c,l)}let g=Object.values(p),_=g.filter(e=>!e.isMultiTransform),v=g.filter(e=>e.isMultiTransform);_.length>0&&this._drawingManagerService.refreshTransform(_),this._handleMultiDrawingsTransform(v)}_handleMultiDrawingsTransform(e){let{scene:n,unitId:r}=this._context,i=n.getTransformerByCreate();e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);t!=null&&(t.transform=e.transform,t.transforms=e.transforms,t.isMultiTransform=e.isMultiTransform)});let a=[...i.getSelectedObjectMap().keys()],o=Object.values(this._drawingManagerService.getDrawingData(r,r)).filter(e=>e.isMultiTransform===t.TRUE);this._drawingManagerService.removeNotification(o),e.length>0&&this._drawingManagerService.addNotification(e);for(let e of a){let t=n.getObject(e);t&&i.setSelectedControl(t)}}_calculateDrawingPosition(e,n,r,i,a,o,s){let{skeDrawings:c}=n;this._liquid.translatePagePadding({marginTop:o,marginLeft:s}),c.forEach(n=>{let{aLeft:o,aTop:s,height:c,width:l,angle:u,drawingId:d,drawingOrigin:f}=n,p=f.layoutType===A.WRAP_NONE&&f.behindDoc===t.TRUE,{isMultiTransform:m=t.FALSE}=f,h={left:o+r+this._liquid.x,top:s+i+this._liquid.y,width:l,height:c,angle:u};a[d]==null?a[d]={unitId:e,subUnitId:e,drawingId:d,behindText:p,transform:h,transforms:[h],isMultiTransform:m}:m===t.TRUE&&a[d].transforms.push(h)}),this._liquid.restorePagePadding({marginTop:o,marginLeft:s})}_drawingInitializeListener(){let e=()=>{let e=this._docSkeletonManagerService.getSkeleton();e!=null&&(this._refreshDrawing(e),this._drawingManagerService.initializeNotification(this._context.unitId))};this._lifecycleService.stage>=w.Rendered?this._docSkeletonManagerService.getSkeleton()?e():setTimeout(e,500):this.disposeWithMe(this._lifecycleService.lifecycle$.pipe(ft(e=>e===w.Rendered)).subscribe(e))}};An=Q([Z(1,b(B)),Z(2,g),Z(3,ue),Z(4,G),Z(5,b(Ft)),Z(6,y),Z(7,b(C))],An);let jn=class extends j{constructor(e,t,n,r,i){super(),this._drawingManagerService=e,this._canvasPopManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._contextService=i,X(this,`_initImagePopupMenu`,new Set),X(this,`_disposePopups`,[]),this._init()}_init(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(I.UNIVER_DOC).pipe(gt(this.dispose$)).subscribe(e=>this._create(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(I.UNIVER_DOC).pipe(gt(this.dispose$)).subscribe(e=>this._dispose(e))),this._univerInstanceService.getAllUnitsForType(I.UNIVER_DOC).forEach(e=>this._create(e))}_dispose(e){let t=e.getUnitId();this._disposePopups.length&&(this._disposePopups.forEach(e=>e.dispose()),this._disposePopups.length=0),this._renderManagerService.removeRender(t)}_create(e){if(!e)return;let t=e.getUnitId();ie(t)||this._renderManagerService.has(t)&&!this._initImagePopupMenu.has(t)&&(this._popupMenuListener(t),this._initImagePopupMenu.add(t))}_hasCropObject(e){let t=e.getAllObjects();for(let e of t)if(e instanceof bt)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._disposePopups;this.disposeWithMe(r.createControl$.subscribe(()=>{if(this._hasCropObject(n))return;let e=r.getSelectedObjectMap();if(i.forEach(e=>e.dispose()),i.length=0,e.size>1)return;let t=e.values().next().value;if(!t)return;let a=t.oKey,o=this._drawingManagerService.getDrawingOKey(a);if(!o||o.drawingType===f.DRAWING_DOM)return;let{unitId:s,subUnitId:c,drawingId:l,drawingType:u}=o,d=this._canvasPopManagerService.attachPopupToObject(t,{componentKey:_t,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:this._getImageMenuItems(s,c,l,u)}},s);i.push(this.disposeWithMe(d)),!this._drawingManagerService.getFocusDrawings().find(e=>e.unitId===s&&e.subUnitId===c&&e.drawingId===l)&&this._drawingManagerService.focusDrawing([{unitId:s,subUnitId:c,drawingId:l}])})),this.disposeWithMe(r.clearControl$.subscribe(()=>{i.forEach(e=>e.dispose()),i.length=0,this._contextService.setContextValue(p,!1),this._drawingManagerService.focusDrawing(null)})),this.disposeWithMe(r.changing$.subscribe(()=>{i.forEach(e=>e.dispose()),i.length=0})),this.disposeWithMe(r.changeStart$.subscribe(()=>{i.forEach(e=>e.dispose()),i.length=0}))}_getImageMenuItems(e,t,n,r){return[{label:`image-popup.edit`,index:0,commandId:Xt.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:!0},{label:`image-popup.delete`,index:1,commandId:Et.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:St.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:!0},{label:`image-popup.reset`,index:3,commandId:xt.id,commandParams:[{unitId:e,subUnitId:t,drawingId:n}],disable:!0}]}};jn=Q([Z(0,G),Z(1,b(ce)),Z(2,U),Z(3,y),Z(4,v)],jn);let Mn=class extends k{constructor(e=ln,t,n,r){super(),this._config=e,this._injector=t,this._renderManagerSrv=n,this._configService=r;let{...i}=L({},ln,this._config);this._configService.setConfig(cn,i)}onStarting(){[[kn],[jn],[gn],[fn],[Ft],[$t],[mn]].forEach(e=>this._injector.add(e))}onReady(){[[It],[An]].forEach(e=>this._renderManagerSrv.registerRenderModule(I.UNIVER_DOC,e)),this._injector.get(fn),this._injector.get(kn),this._injector.get(gn),this._injector.get(mn)}onRendered(){this._injector.get(jn),this._injector.get($t)}};X(Mn,`type`,I.UNIVER_DOC),X(Mn,`pluginName`,`DOC_DRAWING_UI_PLUGIN`),X(Mn,`packageName`,on),X(Mn,`version`,sn),Mn=Q([s(Ct,Ke,oe,ot),Z(1,b(x)),Z(2,U),Z(3,_)],Mn);export{qt as ClearDocDrawingTransformerOperation,en as DOCS_IMAGE_MENU_ID,Dt as DeleteDocDrawingsCommand,$t as DocFloatDomController,Xt as EditDocDrawingOperation,Ot as GroupDocDrawingCommand,kt as InsertDocDrawingCommand,Lt as InsertDocImageCommand,Kt as MoveDocDrawingsCommand,Et as RemoveDocDrawingCommand,At as SetDocDrawingArrangeCommand,Yt as SidebarDocDrawingOperation,jt as UngroupDocDrawingCommand,Mn as UniverDocsDrawingUIPlugin};