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