@univerjs/docs-drawing-ui 1.0.0-alpha.0 → 1.0.0-alpha.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 CHANGED
@@ -1785,7 +1785,7 @@ function InsertEllipseShapeBelowMenuFactory(accessor) {
1785
1785
  //#endregion
1786
1786
  //#region package.json
1787
1787
  var name = "@univerjs/docs-drawing-ui";
1788
- var version = "1.0.0-alpha.0";
1788
+ var version = "1.0.0-alpha.1";
1789
1789
 
1790
1790
  //#endregion
1791
1791
  //#region src/config/config.ts
@@ -2895,7 +2895,7 @@ let DocDrawingTransformUpdateController = class DocDrawingTransformUpdateControl
2895
2895
  clipOffsetTop: clipOffset === null || clipOffset === void 0 ? void 0 : clipOffset.top,
2896
2896
  page: clipPage
2897
2897
  });
2898
- const pageRelativeAnchorPage = getDocsPageRelativeDrawingAnchorPage({
2898
+ const pageRelativeAnchorPage = drawingOrigin.layoutType === _univerjs_core.PositionedObjectLayoutType.INLINE ? void 0 : getDocsPageRelativeDrawingAnchorPage({
2899
2899
  page,
2900
2900
  clipPage,
2901
2901
  hostPage
package/lib/es/index.js CHANGED
@@ -1784,7 +1784,7 @@ function InsertEllipseShapeBelowMenuFactory(accessor) {
1784
1784
  //#endregion
1785
1785
  //#region package.json
1786
1786
  var name = "@univerjs/docs-drawing-ui";
1787
- var version = "1.0.0-alpha.0";
1787
+ var version = "1.0.0-alpha.1";
1788
1788
 
1789
1789
  //#endregion
1790
1790
  //#region src/config/config.ts
@@ -2894,7 +2894,7 @@ let DocDrawingTransformUpdateController = class DocDrawingTransformUpdateControl
2894
2894
  clipOffsetTop: clipOffset === null || clipOffset === void 0 ? void 0 : clipOffset.top,
2895
2895
  page: clipPage
2896
2896
  });
2897
- const pageRelativeAnchorPage = getDocsPageRelativeDrawingAnchorPage({
2897
+ const pageRelativeAnchorPage = drawingOrigin.layoutType === PositionedObjectLayoutType.INLINE ? void 0 : getDocsPageRelativeDrawingAnchorPage({
2898
2898
  page,
2899
2899
  clipPage,
2900
2900
  hostPage
package/lib/index.js CHANGED
@@ -1784,7 +1784,7 @@ function InsertEllipseShapeBelowMenuFactory(accessor) {
1784
1784
  //#endregion
1785
1785
  //#region package.json
1786
1786
  var name = "@univerjs/docs-drawing-ui";
1787
- var version = "1.0.0-alpha.0";
1787
+ var version = "1.0.0-alpha.1";
1788
1788
 
1789
1789
  //#endregion
1790
1790
  //#region src/config/config.ts
@@ -2894,7 +2894,7 @@ let DocDrawingTransformUpdateController = class DocDrawingTransformUpdateControl
2894
2894
  clipOffsetTop: clipOffset === null || clipOffset === void 0 ? void 0 : clipOffset.top,
2895
2895
  page: clipPage
2896
2896
  });
2897
- const pageRelativeAnchorPage = getDocsPageRelativeDrawingAnchorPage({
2897
+ const pageRelativeAnchorPage = drawingOrigin.layoutType === PositionedObjectLayoutType.INLINE ? void 0 : getDocsPageRelativeDrawingAnchorPage({
2898
2898
  page,
2899
2899
  clipPage,
2900
2900
  hostPage
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs-drawing"),require("@univerjs/docs"),require("@univerjs/docs-ui"),require("@univerjs/engine-render"),require("@univerjs/design"),require("@univerjs/drawing"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/drawing-ui"),require("react"),require("react/jsx-runtime")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs-drawing`,`@univerjs/docs`,`@univerjs/docs-ui`,`@univerjs/engine-render`,`@univerjs/design`,`@univerjs/drawing`,`@univerjs/ui`,`rxjs`,`@univerjs/drawing-ui`,`react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawingUi={},e.UniverCore,e.UniverDocsDrawing,e.UniverDocs,e.UniverDocsUi,e.UniverEngineRender,e.UniverDesign,e.UniverDrawing,e.UniverUi,e.rxjs,e.UniverDrawingUi,e.React,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let p={id:`doc.command.remove-doc-image`,type:t.CommandType.COMMAND,handler:(e,n)=>{var o,s,c;let l=e.get(t.ICommandService),u=e.get(t.IUniverInstanceService),d=e.get(a.IRenderManagerService),f=u.getCurrentUniverDocInstance();if(n==null||f==null)return!1;let p=d.getRenderById(n.unitId).with(i.DocSelectionRenderService),{drawings:m}=n,h=(o=p.getSegment())==null?``:o,g=new t.TextX,_=t.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 t.MemoryCursor;x.reset();let S=y[0].startIndex,C=[{startOffset:S,endOffset:S}],w={id:r.RichTextEditingMutation.id,params:{unitId:b,actions:[],textRanges:C}},T=[];for(let e of y){let{startIndex:n}=e;n>x.cursor&&g.push({t:t.TextXActionType.RETAIN,len:n-x.cursor}),g.push({t:t.TextXActionType.DELETE,len:1}),x.moveCursorTo(n+1)}let E=(0,t.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((e,n)=>t.JSONX.compose(e,n),null),!!l.syncExecuteCommand(w.id,w.params)}},m={id:`doc.command.delete-drawing`,type:t.CommandType.COMMAND,handler:e=>{let r=e.get(t.ICommandService),i=e.get(n.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(p.id,{unitId:a,drawings:o})}},h={id:`doc.command.group-doc-image`,type:t.CommandType.COMMAND,handler:(e,t)=>!1},g={id:`doc.command.insert-doc-image`,type:t.CommandType.COMMAND,handler:(e,n)=>{var a,o,s,c;if(n==null)return!1;let l=e.get(t.ICommandService),u=e.get(r.DocSelectionManagerService),d=e.get(t.IUniverInstanceService),f=u.getActiveTextRange(),p=d.getCurrentUniverDocInstance();if(p==null)return!1;let m=p.getUnitId(),h=_(e,m),g=h?{...f,startOffset:h.startOffset,endOffset:h.endOffset,collapsed:h.startOffset===h.endOffset,segmentId:(a=(o=h.segmentId)==null?f==null?void 0:f.segmentId:o)==null?``:a}:f;if(g==null)return!1;let{drawings:v}=n,{collapsed:y,startOffset:b,segmentId:x=``}=g,S=p.getSelfOrHeaderFooterModel(x).getBody();if(S==null)return!1;let C=new t.TextX,w=t.JSONX.getInstance(),T=[],E=(s=(c=p.getSnapshot().drawingsOrder)==null?void 0:c.length)==null?0:s,D=0;if(y)b>0&&C.push({t:t.TextXActionType.RETAIN,len:b});else{var O,k;let e=t.BuildTextUtils.selection.delete([g],S,0,null,!1);C.push(...e);let n=(0,i.getCustomBlockIdsInSelections)(S,[g]),r=(O=p.getDrawings())==null?{}:O,a=(k=p.getDrawingsOrder())==null?[]:k,o=n.sort((e,t)=>a.indexOf(e)>a.indexOf(t)?-1:+(a.indexOf(e)<a.indexOf(t)));if(o.length>0)for(let e of o){let t=r[e],n=a.indexOf(e);if(t==null||n<0)continue;let i=w.removeOp([`drawings`,e],t),o=w.removeOp([`drawingsOrder`,n],e);T.push(i),T.push(o),D++}}C.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`.repeat(v.length),customBlocks:v.map((e,t)=>({startIndex:t,blockId:e.drawingId}))},len:v.length});let A=(0,t.getRichTextEditPath)(p,x),j=w.editOp(C.serialize(),A);T.push(j);for(let e of v){let{drawingId:t}=e,n=w.insertOp([`drawings`,t],e),r=w.insertOp([`drawingsOrder`,E-D],t);T.push(n),T.push(r)}let M={id:r.RichTextEditingMutation.id,params:{unitId:m,actions:[],textRanges:[]}};return M.params.actions=T.reduce((e,n)=>t.JSONX.compose(e,n),null),!!l.syncExecuteCommand(M.id,M.params)}};function _(e,t){try{let n=e.get(r.DocContentInsertService).consumeInsertRange(t);return n==null?null:{startOffset:n.startOffset,endOffset:n.endOffset,collapsed:n.startOffset===n.endOffset,segmentId:n.segmentId}}catch{return null}}let v={id:`doc.command.set-drawing-arrange`,type:t.CommandType.COMMAND,handler:(e,i)=>{let a=e.get(t.ICommandService),o=e.get(n.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===t.ArrangeTypeEnum.forward?f=o.getForwardDrawingsOp(d):u===t.ArrangeTypeEnum.backward?f=o.getBackwardDrawingOp(d):u===t.ArrangeTypeEnum.front?f=o.getFrontDrawingsOp(d):u===t.ArrangeTypeEnum.back&&(f=o.getBackDrawingsOp(d)),f==null)return!1;let{redo:p}=f;if(p==null)return!1;let m=[],h=t.Tools.deepClone(p);h=h.slice(3),h.unshift(`drawingsOrder`),m.push(h);let g={id:r.RichTextEditingMutation.id,params:{unitId:s,actions:[],textRanges:null}};return g.params.actions=m.reduce((e,n)=>t.JSONX.compose(e,n),null),!!a.syncExecuteCommand(g.id,g.params)}},y={id:`doc.command.ungroup-doc-image`,type:t.CommandType.COMMAND,handler:(e,t)=>{let r=e.get(n.IDocDrawingService);if(!t)return!1;let i=[];t.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(t);return!1}};function b(e){"@babel/helpers - typeof";return b=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},b(e)}function x(e,t){if(b(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(b(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function S(e){var t=x(e,`string`);return b(t)==`symbol`?t:t+``}function C(e,t,n){return(t=S(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var w=class{constructor(){C(this,`_refreshDrawings$`,new l.BehaviorSubject(null)),C(this,`refreshDrawings$`,this._refreshDrawings$.asObservable())}refreshDrawings(e){this._refreshDrawings$.next(e)}};function T(e,t){return function(n,r){t(n,r,e)}}function E(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 D=class extends t.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=this._getCurrentImageInsertPosition(),t=await this._fileOpenerService.openFile({multiple:!0,accept:s.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),n=t.length;return n>s.DRAWING_IMAGE_COUNT_LIMIT?(this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`docs-drawing-ui.update-status.exceedMaxCount`,String(s.DRAWING_IMAGE_COUNT_LIMIT))}),!1):n===0?!1:(await this._insertFloatImages(t,e),!0)}async _insertFloatImages(e,n){let r=[];try{r=await Promise.all(e.map(e=>this._imageIoService.saveImage(e)))}catch(e){let t=e.message,n=``;switch(t){case s.ImageUploadStatusType.ERROR_EXCEED_SIZE:n=this._localeService.t(`docs-drawing-ui.update-status.exceedMaxSize`,String((0,s.getDrawingImageAllowSize)()/(1024*1024)));break;case s.ImageUploadStatusType.ERROR_IMAGE_TYPE:n=this._localeService.t(`docs-drawing-ui.update-status.invalidImageType`);break;case s.ImageUploadStatusType.ERROR_IMAGE:n=this._localeService.t(`docs-drawing-ui.update-status.invalidImage`);break;default:break}this._messageService.show({type:o.MessageType.Error,content:n})}if(r.length===0)return;let{unitId:a}=this._context,c=[];for(let e of r){if(e==null)continue;let{imageId:r,imageSourceType:o,source:l,base64Cache:u}=e,{width:d,height:f,image:p}=await(0,s.getImageSize)(u||``);this._imageIoService.addImageSourceCache(r,o,p);let m=1;if(d>s.DRAWING_IMAGE_WIDTH_LIMIT||f>s.DRAWING_IMAGE_HEIGHT_LIMIT){let e=s.DRAWING_IMAGE_WIDTH_LIMIT/d,t=s.DRAWING_IMAGE_HEIGHT_LIMIT/f;m=Math.min(e,t)}let h=n==null?this._getCurrentImageInsertPosition():n,g=this._getImagePosition(d*m,f*m,h);if(g==null)return;let _=(0,i.docDrawingPositionToTransform)(g);_!=null&&h!=null&&(_.top=h.top);let v={unitId:a,subUnitId:a,drawingId:r,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:o,source:l,transform:_,docTransform:g,behindDoc:t.BooleanNumber.FALSE,title:``,description:``,layoutType:t.PositionedObjectLayoutType.INLINE,wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};this._isInsertInHeaderFooter()&&(v.isMultiTransform=t.BooleanNumber.TRUE,v.transforms=v.transform?[v.transform]:null),c.push(v)}this._commandService.executeCommand(g.id,{unitId:a,drawings:c})}_isInsertInHeaderFooter(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderById(t))==null?void 0:e.with(r.DocSkeletonManagerService).getViewModel(),i=n==null?void 0:n.getEditArea();return i===a.DocumentEditArea.HEADER||i===a.DocumentEditArea.FOOTER}_getImagePosition(e,n,r){var i;let a=(i=r==null?this._getCurrentImageInsertPosition():r)==null?{left:0,top:0}:i;return{size:{width:e,height:n},positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:a.left},positionV:{relativeFrom:t.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0}}_getCurrentImageInsertPosition(){var e;let t=(e=this._docSelectionRenderService.getActiveTextRange())==null?void 0:e.getAbsolutePosition();return t==null?null:{left:t.left,top:t.top}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(v.id,{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i})}))}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{this._commandService.executeCommand(h.id,e)})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{this._commandService.executeCommand(y.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,l.debounceTime)(30)).subscribe(e=>{this._docSelectionManagerService.refreshSelection()}));else throw Error(`transformer is not init`)}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{var n;let{transformer:r,docsLeft:i,docsTop:a}=(n=this._getCurrentSceneAndTransformer())==null?{}:n;if(e==null||e.length===0)this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._docDrawingService.focusDrawing([]),r&&r.resetProps({zeroTop:0,zeroLeft:0});else{this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!0),this._docDrawingService.focusDrawing(e),this._setDrawingSelections(e);let n=this._docSelectionRenderService.getSegment(),o=this._findSegmentIdByDrawingId(e[0].drawingId);n!==o&&this._docSelectionRenderService.setSegment(o),r&&r.resetProps({zeroTop:a,zeroLeft:i})}this._updateDrawingsEditStatus()}))}_findSegmentIdByDrawingId(e){var t;let{unit:n}=this._context,{body:r,headers:i={},footers:a={}}=n.getSnapshot();if(((t=r==null?void 0:r.customBlocks)==null?[]:t).some(t=>t.blockId===e))return``;for(let t of Object.keys(i)){var o;if((o=i[t].body.customBlocks)!=null&&o.some(t=>t.blockId===e))return t}for(let t of Object.keys(a)){var s;if((s=a[t].body.customBlocks)!=null&&s.some(t=>t.blockId===e))return t}return``}_updateDrawingsEditStatus(){var e;if(!this._context)return;let{unit:n,scene:i,unitId:o}=this._context,c=(e=this._renderManagerSrv.getRenderById(o))==null?void 0:e.with(r.DocSkeletonManagerService).getViewModel();if(c==null||n==null)return;let{drawings:l={}}=n.getSnapshot(),u=c.getEditArea()===a.DocumentEditArea.BODY,d=this._docSelectionRenderService.isFocusing;for(let e of Object.keys(l)){let n=l[e],r=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:o,drawingId:n.drawingId,subUnitId:o}),a=i.fuzzyMathObjects(r,!0);if(a.length)for(let e of a){i.detachTransformerFrom(e);try{e.setOpacity(d?.5:1)}catch{}if(d&&(u&&n.isMultiTransform!==t.BooleanNumber.TRUE||!u&&n.isMultiTransform===t.BooleanNumber.TRUE)){n.allowTransform!==!1&&i.attachTransformerTo(e);try{e.setOpacity(1)}catch{}}}}}_editAreaChangeListener(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderById(t))==null?void 0:e.with(r.DocSkeletonManagerService).getViewModel();n!=null&&(this._updateDrawingsEditStatus(),this.disposeWithMe(n.editAreaChange$.subscribe(()=>{this._updateDrawingsEditStatus()})),this.disposeWithMe(this._docSelectionRenderService.onFocus$.subscribe(()=>{this._updateDrawingsEditStatus()})),this.disposeWithMe(this._docSelectionRenderService.onBlur$.subscribe(()=>{this._updateDrawingsEditStatus()})),this.disposeWithMe(this._docRefreshDrawingsService.refreshDrawings$.subscribe(e=>{e!=null&&queueMicrotask(()=>{this._updateDrawingsEditStatus()})})),this.disposeWithMe(this._commandService.onCommandExecuted(async e=>{e.id===r.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)}};D=E([T(1,t.ICommandService),T(2,(0,t.Inject)(r.DocSelectionManagerService)),T(3,a.IRenderManagerService),T(4,s.IImageIoService),T(5,n.IDocDrawingService),T(6,s.IDrawingManagerService),T(7,t.IContextService),T(8,c.IMessageService),T(9,(0,t.Inject)(t.LocaleService)),T(10,(0,t.Inject)(i.DocSelectionRenderService)),T(11,(0,t.Inject)(w)),T(12,c.ILocalFileService)],D);let O={id:`doc.command.insert-float-image`,type:t.CommandType.COMMAND,handler:e=>{var n,r;let i=e.get(t.IUniverInstanceService),o=e.get(a.IRenderManagerService);return(n=(r=(0,a.getCurrentTypeOfRenderer)(t.UniverInstanceType.UNIVER_DOC,i,o))==null?void 0:r.with(D).insertDocImage())==null?!1:n}},k=`#3A60F7`,A=`#1D3EA6`;function j(e,t,n){let r=`<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${n}" viewBox="0 0 ${t} ${n}" fill="none">${e===`ellipse`?`<ellipse cx="${t/2}" cy="${n/2}" rx="${(t-8)/2}" ry="${(n-8)/2}" fill="${k}" stroke="${A}" stroke-width="4" />`:`<rect x="4" y="4" width="${t-8}" height="${n-8}" rx="14" fill="${k}" stroke="${A}" stroke-width="4" />`}</svg>`;return`data:image/svg+xml;utf8,${encodeURIComponent(r)}`}function M(e,n){return{size:{width:e,height:n},positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0}}function N(e,n,r,a){return{id:a,type:t.CommandType.COMMAND,handler:async a=>{var o;let c=a.get(t.ICommandService),l=(o=a.get(t.IUniverInstanceService).getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC))==null?void 0:o.getUnitId();if(!l)return!1;let u=M(n,r);return c.executeCommand(g.id,{unitId:l,drawings:[{unitId:l,subUnitId:l,drawingId:(0,t.generateRandomId)(6),drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:s.ImageSourceType.BASE64,source:j(e,n,r),transform:(0,i.docDrawingPositionToTransform)(u),docTransform:u,behindDoc:t.BooleanNumber.FALSE,title:``,description:``,layoutType:t.PositionedObjectLayoutType.INLINE,wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0}]})}}}let P=N(`rectangle`,144,96,`doc.command.insert-float-shape.rectangle`),F=N(`ellipse`,112,112,`doc.command.insert-float-shape.ellipse`),I={inline:t.PositionedObjectLayoutType.INLINE,wrapSquare:t.PositionedObjectLayoutType.WRAP_SQUARE,wrapTopAndBottom:t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM,inFrontOfText:t.PositionedObjectLayoutType.WRAP_NONE,behindText:t.PositionedObjectLayoutType.WRAP_NONE};function L(e,t,n,r){let i=e.skeDrawings.get(t);if(i)return{skeDrawing:i,pageMarginTop:n,pageMarginLeft:r};for(let n of e.skeTables.values())for(let e of n.rows)for(let n of e.cells){let e=L(n,t,n.marginTop,n.marginLeft);if(e)return e}return null}function R(e,n,r,i,a,o,s){var c;let l=new t.TextX,u=t.JSONX.getInstance(),d=[],f=o.getSelfOrHeaderFooterModel(n).getBody(),p=o.getSelfOrHeaderFooterModel(e).getBody();if(f==null||p==null)return;let m=(c=f.customBlocks)==null||(c=c.find(e=>e.blockId===a))==null?void 0:c.startIndex;if(m!=null){if(i=Math.min(p.dataStream.length-2,i),e===n){if(i<m?(i>0&&l.push({t:t.TextXActionType.RETAIN,len:i}),l.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1}),l.push({t:t.TextXActionType.RETAIN,len:m-i}),l.push({t:t.TextXActionType.DELETE,len:1})):(m>0&&l.push({t:t.TextXActionType.RETAIN,len:m}),l.push({t:t.TextXActionType.DELETE,len:1}),i-m-1>0&&l.push({t:t.TextXActionType.RETAIN,len:i-m-1}),l.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1})),i!==m){let e=(0,t.getRichTextEditPath)(o,n),r=u.editOp(l.serialize(),e);d.push(r)}}else{m>0&&l.push({t:t.TextXActionType.RETAIN,len:m}),l.push({t:t.TextXActionType.DELETE,len:1});let c=(0,t.getRichTextEditPath)(o,n),f=u.editOp(l.serialize(),c);d.push(f),l.empty(),i>0&&l.push({t:t.TextXActionType.RETAIN,len:i}),l.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1}),c=(0,t.getRichTextEditPath)(o,e),f=u.editOp(l.serialize(),c),d.push(f),s.setSegment(e),s.setSegmentPage(r)}return d}}let z={id:`doc.command.update-doc-drawing-wrapping-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let{drawings:i,wrappingStyle:o,unitId:s}=n,c=e.get(t.ICommandService),l=e.get(t.IUniverInstanceService),u=e.get(a.IRenderManagerService).getRenderById(s),d=u==null?void 0:u.with(r.DocSkeletonManagerService).getSkeleton().getSkeletonData(),f=u==null?void 0:u.with(r.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=t.JSONX.getInstance(),x=[],{drawings:S={}}=m.getSnapshot();for(let e of i){let{drawingId:n}=e,r=S[n].layoutType,i=I[o];if(r!==i){let e=b.replaceOp([`drawings`,n,`layoutType`],r,i);x.push(e)}if(o===`behindText`||o===`inFrontOfText`){let e=S[n].behindDoc,r=o===`behindText`?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE;if(e!==r){let t=b.replaceOp([`drawings`,n,`behindDoc`],e,r);x.push(t)}}if(o===`inline`)continue;let s=null;for(let e of _){let{headerId:t,footerId:r,marginTop:i,marginLeft:o,marginBottom:c,pageWidth:l,pageHeight:u}=e;switch(h){case a.DocumentEditArea.HEADER:{var C;let e=(C=v.get(t))==null?void 0:C.get(l);e!=null&&(s=L(e,n,e.marginTop,o));break}case a.DocumentEditArea.FOOTER:{var w;let e=(w=y.get(r))==null?void 0:w.get(l);e!=null&&(s=L(e,n,u-c+e.marginTop,o));break}case a.DocumentEditArea.BODY:s=L(e,n,i,o);break}if(s!=null)break}if(s!=null){let{skeDrawing:e,pageMarginTop:r,pageMarginLeft:i}=s,{aTop:a,aLeft:o}=e,c=S[n].docTransform.positionH,l=o;c.relativeFrom===t.ObjectRelativeFromH.MARGIN?l-=i:c.relativeFrom===t.ObjectRelativeFromH.COLUMN&&(l-=e.columnLeft);let u={relativeFrom:c.relativeFrom,posOffset:l};if(c.posOffset!==u.posOffset){let e=b.replaceOp([`drawings`,n,`docTransform`,`positionH`],c,u);x.push(e)}let d=S[n].docTransform.positionV,f=a;d.relativeFrom===t.ObjectRelativeFromV.PAGE?f+=r:d.relativeFrom===t.ObjectRelativeFromV.LINE?f-=e.lineTop:d.relativeFrom===t.ObjectRelativeFromV.PARAGRAPH&&(f-=e.blockAnchorTop);let p={relativeFrom:d.relativeFrom,posOffset:f};if(d.posOffset!==p.posOffset){let e=b.replaceOp([`drawings`,n,`docTransform`,`positionV`],d,p);x.push(e)}}}let T={id:r.RichTextEditingMutation.id,params:{unitId:s,actions:[],textRanges:null}};T.params.actions=x.reduce((e,n)=>t.JSONX.compose(e,n),null);let E=c.syncExecuteCommand(T.id,T.params);return g.refreshControls(),!!E}},ee={id:`doc.command.update-doc-drawing-distance`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService).getCurrentUniverDocInstance();if(a==null)return!1;let{drawings:o,dist:s,unitId:c}=n,l=t.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:r.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};return f.params.actions=u.reduce((e,n)=>t.JSONX.compose(e,n),null),!!i.syncExecuteCommand(f.id,f.params)}},te={id:`doc.command.update-doc-drawing-wrap-text`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService).getCurrentUniverDocInstance();if(a==null)return!1;let{drawings:o,wrapText:s,unitId:c}=n,l=t.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:r.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};return f.params.actions=u.reduce((e,n)=>t.JSONX.compose(e,n),null),!!i.syncExecuteCommand(f.id,f.params)}},B={id:`doc.command.update-drawing-doc-transform`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let i=e.get(t.ICommandService),o=e.get(t.IUniverInstanceService),s=e.get(a.IRenderManagerService).getRenderById(n.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}=n,p=t.JSONX.getInstance(),m=[],{drawings:h={}}=u.getSnapshot();for(let e of d){let{drawingId:n,key:r,value:i}=e,a=h[n].docTransform[r];if(!t.Tools.diffValue(a,i)){let e=p.replaceOp([`drawings`,n,`docTransform`,r],a,i);m.push(e)}}let g={id:r.RichTextEditingMutation.id,params:{unitId:f,actions:[],textRanges:null,debounce:!0}};g.params.actions=m.reduce((e,n)=>t.JSONX.compose(e,n),null);let _=i.syncExecuteCommand(g.id,g.params);return l.refreshControls(),!!_}},V={id:`doc.command.move-inline-drawing`,type:t.CommandType.COMMAND,handler:(e,n)=>{var o,s;if(n==null)return!1;let c=e.get(a.IRenderManagerService),l=(o=c.getRenderById(n.unitId))==null?void 0:o.with(i.DocSelectionRenderService),u=e.get(w),d=c.getRenderById(n.unitId),f=d==null?void 0:d.scene,p=d==null?void 0:d.with(r.DocSkeletonManagerService).getSkeleton();if(f==null||l==null)return!1;let m=f.getTransformerByCreate(),h=e.get(t.ICommandService),g=e.get(t.IUniverInstanceService).getCurrentUniverDocInstance();if(g==null)return!1;let{drawing:_,unitId:v,offset:y,segmentId:b,segmentPage:x,needRefreshDrawings:S}=n;if(S)return u.refreshDrawings(p),m.refreshControls(),!0;let C=[],{drawingId:T}=_,E=R(b,(s=l.getSegment())==null?``:s,x,y,T,g,l);if(E==null||E.length===0)return u.refreshDrawings(p),m.refreshControls(),!1;C.push(...E);let D={id:r.RichTextEditingMutation.id,params:{unitId:v,actions:[],textRanges:null}};D.params.actions=C.reduce((e,n)=>t.JSONX.compose(e,n),null);let O=h.syncExecuteCommand(D.id,D.params);return m.refreshControls(),!!O}},ne={id:`doc.command.transform-non-inline-drawing`,type:t.CommandType.COMMAND,handler:(e,n)=>{var o,s;if(n==null)return!1;let c=e.get(a.IRenderManagerService),l=(o=c.getRenderById(n.unitId))==null?void 0:o.with(i.DocSelectionRenderService),u=c.getRenderById(n.unitId),d=u==null?void 0:u.scene;if(d==null||l==null)return!1;let f=d.getTransformerByCreate(),p=e.get(t.ICommandService),m=e.get(t.IUniverInstanceService).getCurrentUniverDocInstance();if(m==null)return!1;let{drawing:h,unitId:g,offset:_,docTransform:v,segmentId:y,segmentPage:b}=n,x=[],{drawingId:S}=h,C=R(y,(s=l.getSegment())==null?``:s,b,_,S,m,l);if(C==null)return!1;C.length>0&&x.push(...C);let w=t.JSONX.getInstance(),{drawings:T={}}=m.getSnapshot(),{positionH:E,positionV:D,size:O,angle:k}=T[S].docTransform;if(!t.Tools.diffValue(E,v.positionH)){let e=w.replaceOp([`drawings`,S,`docTransform`,`positionH`],E,v.positionH);x.push(e)}if(!t.Tools.diffValue(D,v.positionV)){let e=w.replaceOp([`drawings`,S,`docTransform`,`positionV`],D,v.positionV);x.push(e)}if(!t.Tools.diffValue(O,v.size)){let e=w.replaceOp([`drawings`,S,`docTransform`,`size`],O,v.size);x.push(e)}if(!t.Tools.diffValue(k,v.angle)){let e=w.replaceOp([`drawings`,S,`docTransform`,`angle`],k,v.angle);x.push(e)}let A={id:r.RichTextEditingMutation.id,params:{unitId:g,actions:[],textRanges:null,debounce:!0}};A.params.actions=x.reduce((e,n)=>t.JSONX.compose(e,n),null);let j=p.syncExecuteCommand(A.id,A.params);return f.refreshControls(),!!j}},H={id:`doc.command.move-drawing`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService),o=e.get(n.IDocDrawingService),s=e.get(t.IUniverInstanceService),c=e.get(a.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(e=>{var n;let{drawingId:r}=e,i=h==null||(n=h.getSnapshot().drawings)==null?void 0:n[r];if(i==null||i.layoutType===t.PositionedObjectLayoutType.INLINE)return null;let{positionH:a,positionV:o}=i.docTransform,s={...a},c={...o};if(l===t.Direction.UP){var u;c.posOffset=((u=c.posOffset)==null?0:u)-2}else if(l===t.Direction.DOWN){var d;c.posOffset=((d=c.posOffset)==null?0:d)+2}else if(l===t.Direction.LEFT){var f;s.posOffset=((f=s.posOffset)==null?0:f)-2}else if(l===t.Direction.RIGHT){var p;s.posOffset=((p=s.posOffset)==null?0:p)+2}return{drawingId:r,key:l===t.Direction.UP||l===t.Direction.DOWN?`positionV`:`positionH`,value:l===t.Direction.UP||l===t.Direction.DOWN?c:s}}).filter(e=>e!=null);if(g.length===0)return!1;let _=i.syncExecuteCommand(B.id,{unitId:d,subUnitId:d,drawings:g});return m.refreshControls(),!!_}},U={id:`doc.operation.clear-drawing-transformer`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(a.IRenderManagerService);return t.forEach(e=>{var t;(t=n.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},re=`COMPONENT_DOC_DRAWING_PANEL`,W={id:`sidebar.operation.doc-image`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=e.get(c.ISidebarService),i=e.get(t.LocaleService),a=e.get(s.IDrawingManagerService);switch(n.value){case`open`:r.open({header:{title:i.t(`docs-drawing-ui.panel.title`)},children:{label:re},onClose:()=>{a.focusDrawing(null)},width:360});break;default:r.close();break}return!0}},G={id:`doc.operation.edit-doc-image`,type:t.CommandType.OPERATION,handler:(e,n)=>{let r=e.get(s.IDrawingManagerService),i=e.get(t.ICommandService);return n==null?!1:(r.focusDrawing([n]),i.executeCommand(W.id,{value:`open`}),!0)}};function ie(e,t,n=1,r=0){let{top:a,left:o,bottom:s,right:c}=e,l=c-o,u=s-a,{viewportScrollX:d,viewportScrollY:f}=t.getViewport(i.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:r,absolute:{left:!1,top:!1},opacity:n==null?1:n}}function ae(e,t){let{top:n,left:r,width:i,height:a,angle:o,opacity:s}=e;return ie({top:n,left:r,bottom:n+a,right:r+i},t.scene,s,o)}let K=class extends t.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,C(this,`_domLayerInfoMap`,new Map),this._initialize()}dispose(){super.dispose()}_initialize(){this._drawingAddRemoveListener(),this._initScrollAndZoomEvent()}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e);if(t==null)return null;let n=t.scene;return{scene:n,transformer:n.getTransformerByCreate(),renderUnit:t,canvas:t.engine.getCanvasElement()}}_drawingAddRemoveListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{this._insertRects(e)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}_insertRects(e){e.forEach(async e=>{let{unitId:n}=e;if(!this._univerInstanceService.getUnit(n,t.UniverInstanceType.UNIVER_DOC))return;let r=this._getSceneAndTransformerByDrawingSearch(n);if(r==null)return;let i=this._drawingManagerService.getDrawingByParam(e);if(i==null)return;let a=await this._drawingRenderService.renderFloatDom(i,r.scene);if(!(a==null||a.length===0))for(let e of a){this._addHoverForRect(e);let a=new t.DisposableCollection,o=new l.BehaviorSubject(ae(e,r.renderUnit)),s=r.canvas,c=i.data,u={dispose:a,rect:e,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:c,unitId:n});let d=e.onTransformChange$.subscribeEvent(()=>{let t=ae(e,r.renderUnit);o.next(t)});a.add(()=>{this._canvasFloatDomService.removeFloatDom(i.drawingId)}),d&&a.add(d),this._domLayerInfoMap.set(i.drawingId,u)}})}_addHoverForRect(e){this.disposeWithMe((0,t.toDisposable)(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=a.CURSOR_TYPE.GRAB}))),this.disposeWithMe((0,t.toDisposable)(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=a.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 e=e=>{let t=this._getSceneAndTransformerByDrawingSearch(e);t&&this._domLayerInfoMap.forEach(n=>{if(n.unitId!==e)return;let r=ae(n.rect,t.renderUnit);n.position$.next(r)})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_DOC).pipe((0,l.map)(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t}:null}),(0,l.switchMap)(e=>e?(0,t.fromEventSubject)(e.render.scene.getViewport(i.VIEWPORT_KEY.VIEW_MAIN).onScrollAfter$).pipe((0,l.map)(()=>({unitId:e.unitId}))):(0,l.of)(null))).subscribe(t=>{if(!t)return;let{unitId:n}=t;e(n)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===i.SetDocZoomRatioOperation.id){let{unitId:n}=t.params;e(n)}}))}insertFloatDom(e,n){var a,o,s;let c=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=this._getSceneAndTransformerByDrawingSearch(c.getUnitId());if(!l)return!1;let u=(a=l.renderUnit.with(r.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,h={size:{width:(o=n.width)==null?m:o,height:n.height},positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0},angle:0},_=(s=n.drawingId)==null?(0,t.generateRandomId)():s,v={unitId:c.getUnitId(),drawings:[{drawingId:_,drawingType:t.DrawingTypeEnum.DRAWING_DOM,subUnitId:c.getUnitId(),unitId:c.getUnitId(),...e,title:``,description:``,docTransform:h,layoutType:t.PositionedObjectLayoutType.INLINE,transform:(0,i.docDrawingPositionToTransform)(h)}]};return this._commandService.syncExecuteCommand(g.id,v),_}};K=E([T(0,a.IRenderManagerService),T(1,s.IDrawingManagerService),T(2,(0,t.Inject)(u.DrawingRenderService)),T(3,(0,t.Inject)(c.CanvasFloatDomService)),T(4,t.IUniverInstanceService),T(5,t.ICommandService)],K);let q=`doc.menu.image`,J=O.id,Y=e=>{let n=e.get(r.DocSelectionManagerService),i=e.get(t.IUniverInstanceService);return new l.Observable(e=>{let t=n.textSelection$.subscribe(()=>{let t=n.getActiveTextRange();if(t){var r;let{segmentId:n,startOffset:a,endOffset:o}=t,s=i.getCurrentUniverDocInstance(),c=s==null||(r=s.getSelfOrHeaderFooterModel(n).getBody())==null?void 0:r.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 oe(e){return{id:q,type:c.MenuItemType.SUBITEMS,icon:`AddImageIcon`,tooltip:`docs-drawing-ui.title`,disabled$:Y(e),hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function X(e){return{id:J,title:`docs-drawing-ui.upload.float`,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function se(e){return{id:`${J}.below`,commandId:J,title:`docs-drawing-ui.upload.float`,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,params:{paragraphMenuPlacement:`below`},hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}let ce=`doc.command.menu-insert-shape`,Z=`doc.command.menu-insert-shape.below`;function le(e){return{id:ce,type:c.MenuItemType.SUBITEMS,icon:`ShapeIcon`,title:`docs-drawing-ui.shape.insert.title`,tooltip:`docs-drawing-ui.shape.insert.title`,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function ue(e){return{id:Z,type:c.MenuItemType.SUBITEMS,icon:`ShapeIcon`,title:`docs-drawing-ui.shape.insert.title`,tooltip:`docs-drawing-ui.shape.insert.title`,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function de(e){return{id:P.id,title:`docs-drawing-ui.shape.insert.rectangle`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function fe(e){return{id:F.id,title:`docs-drawing-ui.shape.insert.ellipse`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function pe(e){return{id:`${P.id}.below`,commandId:P.id,title:`docs-drawing-ui.shape.insert.rectangle`,type:c.MenuItemType.BUTTON,params:{paragraphMenuPlacement:`below`},hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function me(e){return{id:`${F.id}.below`,commandId:F.id,title:`docs-drawing-ui.shape.insert.ellipse`,type:c.MenuItemType.BUTTON,params:{paragraphMenuPlacement:`below`},hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}var he=`@univerjs/docs-drawing-ui`,ge=`1.0.0-alpha.0`;let _e={},ve=-1e3,ye=1e3,be=e=>{let n=(0,c.useDependency)(t.ICommandService),l=(0,c.useDependency)(t.LocaleService),u=(0,c.useDependency)(s.IDrawingManagerService),p=(0,c.useDependency)(a.IRenderManagerService),m=(0,c.useDependency)(t.IUniverInstanceService),{drawings:h}=e,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(`docs-drawing-ui.image-position.column`),value:String(t.ObjectRelativeFromH.COLUMN)},{label:l.t(`docs-drawing-ui.image-position.page`),value:String(t.ObjectRelativeFromH.PAGE)},{label:l.t(`docs-drawing-ui.image-position.margin`),value:String(t.ObjectRelativeFromH.MARGIN)}],w=[{label:l.t(`docs-drawing-ui.image-position.line`),value:String(t.ObjectRelativeFromV.LINE),disabled:y===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.page`),value:String(t.ObjectRelativeFromV.PAGE),disabled:y===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.margin`),value:String(t.ObjectRelativeFromV.MARGIN),disabled:y===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.paragraph`),value:String(t.ObjectRelativeFromV.PARAGRAPH)}],[T,E]=(0,d.useState)(!0),[D,O]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0}),[k,A]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0}),[j,M]=(0,d.useState)(!0),[N,P]=(0,d.useState)(!0);function F(e,t){var r;e===`positionH`?O(t):A(t);let a=u.getFocusDrawings();if(a.length===0)return;let o=a.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(B.id,{unitId:a[0].unitId,subUnitId:a[0].unitId,drawings:o.map(n=>({drawingId:n.drawingId,key:e,value:t}))});let s=(r=p.getRenderById(_))==null?void 0:r.with(i.DocSelectionRenderService);s&&s.blur(),S.refreshControls()}function I(e){var n;let i=D.relativeFrom,a=D.posOffset,o=Number(e);if(i===o)return;let s=u.getFocusDrawings();if(s.length===0)return;let c=s[0].drawingId,l=s[0].unitId,d=null,f=0,m=(n=p.getRenderById(l))==null?void 0:n.with(r.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)){d=n.get(c),f=t;break}let o=(y=_.get(r))==null?void 0:y.get(a);if(o!=null&&o.skeDrawings.has(c)){d=o==null?void 0:o.skeDrawings.get(c),f=t;break}let s=(b=v.get(i))==null?void 0:b.get(a);if(s!=null&&s.skeDrawings.has(c)){d=s==null?void 0:s.skeDrawings.get(c),f=t;break}}if(d==null)return;let x=0;i===t.ObjectRelativeFromH.COLUMN?x-=d.columnLeft:i===t.ObjectRelativeFromH.MARGIN&&(x-=f),o===t.ObjectRelativeFromH.COLUMN?x+=d.columnLeft:o===t.ObjectRelativeFromH.MARGIN?x+=f:t.ObjectRelativeFromH.PAGE,F(`positionH`,{relativeFrom:o,posOffset:(a==null?0:a)-x})}function L(e){var n,a,o,s,c;let l=k.relativeFrom,d=k.posOffset,f=Number(e);if(l===f)return;let h=u.getFocusDrawings();if(h.length===0)return;let{drawingId:g,unitId:_}=h[0],v=m.getUniverDocInstance(_),y=(n=p.getRenderById(_))==null?void 0:n.with(r.DocSkeletonManagerService).getSkeleton(),b=(a=p.getRenderById(_))==null?void 0:a.with(i.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===t.ObjectRelativeFromV.PARAGRAPH?j-=O.top:l===t.ObjectRelativeFromV.LINE?j-=E.top:l===t.ObjectRelativeFromV.PAGE&&(j+=A.marginTop),f===t.ObjectRelativeFromV.PARAGRAPH?j+=O.top:f===t.ObjectRelativeFromV.LINE?j+=E.top:f===t.ObjectRelativeFromV.PAGE&&(j-=A.marginTop),F(`positionV`,{relativeFrom:f,posOffset:(d==null?0:d)-j})}function R(e){var n;let r=v==null?void 0:v.getSnapshot(),i=r==null||(n=r.drawings)==null?void 0:n[e.drawingId];if(i==null)return;let{layoutType:a}=i,{positionH:o,positionV:s}=i.docTransform;O(o),A(s),E(a===t.PositionedObjectLayoutType.INLINE),M(s.relativeFrom===t.ObjectRelativeFromV.PARAGRAPH||s.relativeFrom===t.ObjectRelativeFromV.LINE)}function z(){let e=u.getFocusDrawings();e.length!==0&&R(e[0])}function ee(e){M(e),L(String(e?t.ObjectRelativeFromV.PARAGRAPH:t.ObjectRelativeFromV.PAGE))}return(0,d.useEffect)(()=>{z();let e=u.focus$.subscribe(e=>{if(e.length===0){P(!1);return}P(!0),R(e[0])}),t=n.onCommandExecuted(async e=>{e.id===r.RichTextEditingMutation.id&&z()});return()=>{e.unsubscribe(),t.dispose()}},[]),(0,f.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!N}),children:[(0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:l.t(`docs-drawing-ui.image-position.title`)})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:l.t(`docs-drawing-ui.image-position.horizontal`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:l.t(`docs-drawing-ui.image-position.absolutePosition`)}),(0,f.jsx)(o.InputNumber,{min:ve,max:ye,precision:1,disabled:T,value:D.posOffset,onChange:e=>{F(`positionH`,{relativeFrom:D.relativeFrom,posOffset:e})}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:l.t(`docs-drawing-ui.image-position.toTheRightOf`)}),(0,f.jsx)(o.Select,{value:String(D.relativeFrom),disabled:T,options:C,onChange:I})]})]}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:l.t(`docs-drawing-ui.image-position.vertical`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:l.t(`docs-drawing-ui.image-position.absolutePosition`)}),(0,f.jsx)(o.InputNumber,{min:ve,max:ye,precision:1,disabled:T,value:k.posOffset,onChange:e=>{F(`positionV`,{relativeFrom:k.relativeFrom,posOffset:e})}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:l.t(`docs-drawing-ui.image-position.bellow`)}),(0,f.jsx)(o.Select,{disabled:T,value:String(k.relativeFrom),options:w,onChange:L})]})]}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:l.t(`docs-drawing-ui.image-position.options`)})}),(0,f.jsx)(`div`,{children:(0,f.jsx)(o.Checkbox,{disabled:T,checked:j,onChange:ee,children:l.t(`docs-drawing-ui.image-position.moveObjectWithText`)})})]})},xe=e=>{let n=(0,c.useDependency)(t.ICommandService),i=(0,c.useDependency)(t.LocaleService),l=(0,c.useDependency)(s.IDrawingManagerService),u=(0,c.useDependency)(a.IRenderManagerService),p=(0,c.useDependency)(t.IUniverInstanceService),{drawings:m}=e,h=m[0];if(h==null)return null;let{unitId:g}=h,_=p.getUniverDocInstance(g),v=u.getRenderById(g);if((v==null?void 0:v.scene)==null)return null;let[y,b]=(0,d.useState)(!0),[x,S]=(0,d.useState)(!0),[C,w]=(0,d.useState)(!0),[T,E]=(0,d.useState)(`inline`),[D,O]=(0,d.useState)(``),[k,A]=(0,d.useState)({distT:0,distL:0,distB:0,distR:0}),[j,M]=(0,d.useState)(!0);function N(e){E(e);let t=l.getFocusDrawings();if(t.length===0)return;let{unitId:r,subUnitId:i}=t[0],a=t.map(({unitId:e,subUnitId:t,drawingId:n})=>({unitId:e,subUnitId:t,drawingId:n}));n.executeCommand(z.id,{unitId:r,subUnitId:i,drawings:a,wrappingStyle:e})}function P(e){O(e);let t=l.getFocusDrawings();if(t.length===0)return;let r=t.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(te.id,{unitId:t[0].unitId,subUnitId:t[0].unitId,drawings:r,wrapText:e})}function F(e,t){if(e==null)return;A({...k,[t]:e});let r=l.getFocusDrawings();if(r.length===0)return;let i=r.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(ee.id,{unitId:r[0].unitId,subUnitId:r[0].unitId,drawings:i,dist:{[t]:e}})}function I(){let e=l.getFocusDrawings();e.length!==0&&L(e[0])}function L(e){var n;let r=_==null||(n=_.getSnapshot())==null||(n=n.drawings)==null?void 0:n[e.drawingId];if(r==null)return;let{distT:i=0,distL:a=0,distB:o=0,distR:s=0,layoutType:c=t.PositionedObjectLayoutType.INLINE,behindDoc:l=t.BooleanNumber.FALSE,wrapText:u=t.WrapTextType.BOTH_SIDES}=r;if(A({distT:i,distL:a,distB:o,distR:s}),O(u),b(c!==t.PositionedObjectLayoutType.WRAP_SQUARE),c===t.PositionedObjectLayoutType.WRAP_NONE||c===t.PositionedObjectLayoutType.INLINE?S(!0):S(!1),c===t.PositionedObjectLayoutType.WRAP_NONE||c===t.PositionedObjectLayoutType.INLINE||c===t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM?w(!0):w(!1),c===t.PositionedObjectLayoutType.WRAP_NONE)l===t.BooleanNumber.TRUE?E(`behindText`):E(`inFrontOfText`);else switch(c){case t.PositionedObjectLayoutType.INLINE:E(`inline`);break;case t.PositionedObjectLayoutType.WRAP_SQUARE:E(`wrapSquare`);break;case t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM:E(`wrapTopAndBottom`);break;default:throw Error(`Unsupported layout type: ${c}`)}}return(0,d.useEffect)(()=>{I();let e=l.focus$.subscribe(e=>{if(e.length===0){M(!1);return}M(!0),L(e[0])}),t=n.onCommandExecuted(async e=>{e.id===r.RichTextEditingMutation.id&&I()});return()=>{e.unsubscribe(),t.dispose()}},[]),(0,f.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!j}),children:[(0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.title`)})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.wrappingStyle`)})}),(0,f.jsx)(`div`,{children:(0,f.jsxs)(o.RadioGroup,{value:T,onChange:N,direction:`vertical`,children:[(0,f.jsx)(o.Radio,{value:`inline`,children:i.t(`docs-drawing-ui.image-text-wrap.inline`)}),(0,f.jsx)(o.Radio,{value:`wrapSquare`,children:i.t(`docs-drawing-ui.image-text-wrap.square`)}),(0,f.jsx)(o.Radio,{value:`wrapTopAndBottom`,children:i.t(`docs-drawing-ui.image-text-wrap.topAndBottom`)}),(0,f.jsx)(o.Radio,{value:`behindText`,children:i.t(`docs-drawing-ui.image-text-wrap.behindText`)}),(0,f.jsx)(o.Radio,{value:`inFrontOfText`,children:i.t(`docs-drawing-ui.image-text-wrap.inFrontText`)})]})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.wrapText`)})}),(0,f.jsx)(`div`,{children:(0,f.jsxs)(o.RadioGroup,{disabled:y,value:D,onChange:P,direction:`horizontal`,children:[(0,f.jsx)(o.Radio,{value:t.WrapTextType.BOTH_SIDES,children:i.t(`docs-drawing-ui.image-text-wrap.bothSide`)}),(0,f.jsx)(o.Radio,{value:t.WrapTextType.LEFT,children:i.t(`docs-drawing-ui.image-text-wrap.leftOnly`)}),(0,f.jsx)(o.Radio,{value:t.WrapTextType.RIGHT,children:i.t(`docs-drawing-ui.image-text-wrap.rightOnly`)})]})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.distanceFromText`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.top`)}),(0,f.jsx)(o.InputNumber,{min:0,max:100,disabled:x,precision:1,value:k.distT,onChange:e=>{F(e,`distT`)}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.left`)}),(0,f.jsx)(o.InputNumber,{min:0,max:100,disabled:C,precision:1,value:k.distL,onChange:e=>{F(e,`distL`)}})]})]}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.bottom`)}),(0,f.jsx)(o.InputNumber,{min:0,max:100,disabled:x,precision:1,value:k.distB,onChange:e=>{F(e,`distB`)}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.right`)}),(0,f.jsx)(o.InputNumber,{min:0,max:100,disabled:C,precision:1,value:k.distR,onChange:e=>{F(e,`distR`)}})]})]})]})},Se=()=>{let e=(0,c.useDependency)(s.IDrawingManagerService),[t,n]=(0,d.useState)(e.getFocusDrawings());return(0,d.useEffect)(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&(0,f.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,f.jsx)(u.DrawingCommonPanel,{drawings:t,hasAlign:!1,hasCropper:!0,hasGroup:!1,hasTransform:!1}),(0,f.jsx)(xe,{drawings:t}),(0,f.jsx)(be,{drawings:t})]})},Ce=class extends t.Disposable{constructor(e){super(),this._componentManager=e,this._registerComponents()}_registerComponents(){this.disposeWithMe(this._componentManager.register(re,Se))}};Ce=E([T(0,(0,t.Inject)(c.ComponentManager))],Ce);function we(e){if(t.JSONX.isNoop(e)||!Array.isArray(e))return null;let n=e.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 Te(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 Ee=class extends t.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!==r.RichTextEditingMutation.id)return;let{unitId:t,actions:n,isSync:i,syncer:a}=e.params,o=we(n);if(o!=null)for(let{type:e,drawingId:n,drawing:r}of o)i&&(r==null?void 0:r.unitId)===a||(e===`add`?this._addDrawings(t,[r]):this._removeDrawings(t,[n]))})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==r.RichTextEditingMutation.id)return;let{unitId:t,actions:n}=e.params;Te(n).length>0&&this._updateDrawingsOrder(t)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var n;if(e.id!==t.UndoCommand.id&&e.id!==t.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{drawings:r,drawingsOrder:i}=t.getSnapshot();if(i==null)return;let a=(0,n.getDocDrawingRenderOrder)(i,r),o=this._drawingManagerService,s=this._docDrawingService;o.setDrawingOrder(e,e,a),s.setDrawingOrder(e,e,i);let c={unitId:e,subUnitId:e,drawingIds:a};o.orderNotification(c),s.orderNotification({unitId:e,subUnitId:e,drawingIds:i})}};Ee=E([T(0,t.IUniverInstanceService),T(1,t.ICommandService),T(2,s.IDrawingManagerService),T(3,n.IDocDrawingService),T(4,a.IRenderManagerService)],Ee);let De=e=>{let{floatDomInfos:t,scene:n,offset:r,bound:i}=e,a=i.right-i.left,o=i.bottom-i.top;return(0,f.jsx)(`div`,{className:`univer-absolute univer-left-0 univer-top-0`,children:(0,d.useMemo)(()=>t.map(e=>{let{width:t=0,height:r=0,left:i=0,top:a=0}=e.transform,o=ie({left:i,right:i+t,top:a,bottom:a+r},n),s={position$:new l.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,f.jsx)(c.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})};function Oe(e,t,n){return(0,o.render)((0,f.jsx)((0,c.connectInjector)(De,n),{...e}),t),()=>(0,o.unmount)(t)}let ke=class extends t.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:(e,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(e=>{let n=s.data[e];n.drawingType!==t.DrawingTypeEnum.DRAWING_CHART&&n.drawingType!==t.DrawingTypeEnum.DRAWING_DOM&&this._drawingRenderService.renderDrawing(n,a)}),r()}}))}_initPrintingDom(){this.disposeWithMe(this._docPrintInterceptorService.interceptor.intercept(this._docPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,n,r)=>{let{unitId:i}=n,a=this._drawingManagerService.getDrawingDataForUnit(i),o=a==null?void 0:a[i];if(o){let a=Oe({unitId:i,floatDomInfos:o.order.map(e=>{let n=o.data[e];if(n.drawingType===t.DrawingTypeEnum.DRAWING_CHART)return{...n,componentKey:this._componetManager.get(t.DOC_DRAWING_PRINTING_COMPONENT_KEY)};if(n.drawingType===t.DrawingTypeEnum.DRAWING_DOM){let e=this._docPrintInterceptorService.getPrintComponent(n.componentKey);return{...n,componentKey:this._componetManager.get(e||n.componentKey)}}return null}).filter(Boolean),scene:n.scene,skeleton:n.skeleton,offset:n.offset,bound:n.bound},n.root,this._injector);return e==null||e.add(()=>{a()}),r(e)}}}))}};ke=E([T(0,(0,t.Inject)(i.DocPrintInterceptorService)),T(1,(0,t.Inject)(u.DrawingRenderService)),T(2,s.IDrawingManagerService),T(3,(0,t.Inject)(c.ComponentManager)),T(4,(0,t.Inject)(t.Injector))],ke);function Ae(e){let{docsLeft:t,docsTop:n,pageOffsetLeft:r,pageOffsetTop:i,clipOffsetLeft:a=0,clipOffsetTop:o=0,page:s}=e,{pageWidth:c,pageHeight:l}=s;if(!(!Number.isFinite(c)||!Number.isFinite(l)||c<=0||l<=0))return{left:t+r+a,top:n+i+o,width:c,height:l}}function je(e){let{drawing:t,hostPage:n,page:r}=e;if(n==null||t.behindText!==!0||t.transform==null)return r;let{width:i,height:a}=t.transform;if(i==null||a==null)return r;if(i>r.pageWidth||a>r.pageHeight)return n;let o=i/n.pageWidth,s=a/n.pageHeight;return o>=.8&&s>=.8?n:r}function Me(e){let{hostPage:n,positionH:r,width:i}=e;if(r.relativeFrom===t.ObjectRelativeFromH.PAGE)return r.align===t.AlignTypeH.RIGHT?n.pageWidth-i:r.align===t.AlignTypeH.CENTER?n.pageWidth/2-i/2:r.posOffset==null?0:r.posOffset}function Ne(e){let{hostPage:n,positionV:r,height:i}=e;if(r.relativeFrom===t.ObjectRelativeFromV.PAGE)return r.align===t.AlignTypeV.BOTTOM?n.pageHeight-i:r.align===t.AlignTypeV.CENTER?n.pageHeight/2-i/2:r.posOffset==null?0:r.posOffset}function Pe(e){let{page:t,clipPage:n,hostPage:r}=e;if(r!=null&&r===n)return r;if(r==null&&t===n)return t}function Fe(e){let{drawingOrigin:n,hostPage:r}=e;return r==null?n.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&n.behindDoc===t.BooleanNumber.TRUE:!0}function Ie(e,t,n,r){let i=(0,a.getTableIdAndSliceIndex)(t.tableId).tableId,o=(0,a.getDocsTableRenderViewport)(e,i),s=Le(o)?o.scrollLeft:0;return{left:t.left+r.left-s+r.marginLeft,top:t.top+n.top+r.marginTop}}function Le(e){var t,n;return e!=null&&((t=e.leadingInsetLeft)==null?0:t)+e.contentWidth+((n=e.trailingInsetRight)==null?0:n)>e.viewportWidth}let Re=class extends t.Disposable{constructor(e,t,n,r,i,o,s,c){super(),this._context=e,this._docSkeletonManagerService=t,this._commandService=n,this._editorService=r,this._drawingManagerService=i,this._docRefreshDrawingsService=o,this._univerInstanceService=s,this._lifecycleService=c,C(this,`_liquid`,new a.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 e=[r.RichTextEditingMutation.id,i.SetDocZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(e.includes(t.id)){let{unitId:e}=t.params,{unitId:n,mainComponent:r}=this._context;if(e!==n)return;let i=this._docSkeletonManagerService.getSkeleton();if(i==null)return;if(this._editorService.isEditor(n)){r==null||r.makeDirty();return}this._refreshDrawing(i)}}))}_initResize(){this.disposeWithMe((0,t.fromEventSubject)(this._context.engine.onTransformChange$).pipe((0,l.filter)(e=>e.type===a.TRANSFORM_CHANGE_OBSERVABLE_TYPE.resize),(0,l.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;if(a<=-1e4||o<=-1e4)return;let{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,t),this._calculateTableCellDrawingPositions(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);if(e){let n=t.pageHeight-t.marginBottom+e.marginTop;this._calculateDrawingPosition(r,e,a,o,p,n,t.marginLeft,t),this._calculateTableCellDrawingPositions(r,e,a,o,p,n,t.marginLeft)}}this._calculateDrawingPosition(r,t,a,o,p,t.marginTop,t.marginLeft),this._calculateTableCellDrawingPositions(r,t,a,o,p,t.marginTop,t.marginLeft),this._liquid.translatePage(t,s,c,l)}let g=Object.values(p);for(let e of g)e.hidden=!1;let _=this._getStaleNonMultiDrawings(r,p),v=g.filter(e=>!e.isMultiTransform).concat(_),y=g.filter(e=>e.isMultiTransform);v.length>0&&this._drawingManagerService.refreshTransform(v),this._handleMultiDrawingsTransform(y)}_getStaleNonMultiDrawings(e,n){var r;let i=(r=this._drawingManagerService.getDrawingData(e,e))==null?{}:r;return Object.values(i).filter(e=>e.isMultiTransform!==t.BooleanNumber.TRUE).filter(e=>n[e.drawingId]==null).map(n=>{var r,i;return{unitId:e,subUnitId:e,drawingId:n.drawingId,behindText:!1,hidden:!0,transform:n.transform,transforms:(r=n.transforms)==null?[]:r,isMultiTransform:(i=n.isMultiTransform)==null?t.BooleanNumber.FALSE:i}})}_handleMultiDrawingsTransform(e){let{scene:n,unitId:r}=this._context,i=n.getTransformerByCreate();e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);t!=null&&(t.transform=e.transform,t.transforms=e.transforms,t.isMultiTransform=e.isMultiTransform)});let a=[...i.getSelectedObjectMap().keys()],o=Object.values(this._drawingManagerService.getDrawingData(r,r)).filter(e=>e.isMultiTransform===t.BooleanNumber.TRUE);this._drawingManagerService.removeNotification(o),e.length>0&&this._drawingManagerService.addNotification(e);for(let e of a){let t=n.getObject(e);t&&i.setSelectedControl(t)}}_calculateDrawingPosition(e,n,r,i,a,o,s,c,l){let{skeDrawings:u}=n,d=this._liquid.x,f=this._liquid.y;this._liquid.translatePagePadding({marginTop:o,marginLeft:s}),u.forEach(o=>{let{aLeft:s,aTop:u,height:p,width:m,angle:h,drawingId:g,drawingOrigin:_}=o,v=Fe({drawingOrigin:_,hostPage:c}),{isMultiTransform:y=t.BooleanNumber.FALSE}=_,b=je({drawing:{behindText:v,transform:{width:m,height:p}},hostPage:c,page:n}),x=Ae({docsLeft:r,docsTop:i,pageOffsetLeft:d,pageOffsetTop:f,clipOffsetLeft:l==null?void 0:l.left,clipOffsetTop:l==null?void 0:l.top,page:b}),S=Pe({page:n,clipPage:b,hostPage:c}),C=S==null?void 0:Me({hostPage:S,positionH:_.docTransform.positionH,width:m}),w=S==null?void 0:Ne({hostPage:S,positionV:_.docTransform.positionV,height:p}),T={left:(C==null?s:C)+r+(C==null?this._liquid.x:d),top:(w==null?u:w)+i+(w==null?this._liquid.y:f),width:m,height:p,angle:h,clipBounds:x};a[g]==null?a[g]={unitId:e,subUnitId:e,drawingId:g,behindText:v,transform:T,transforms:[T],isMultiTransform:y}:y===t.BooleanNumber.TRUE&&a[g].transforms.push(T)}),this._liquid.restorePagePadding({marginTop:o,marginLeft:s})}_calculateTableCellDrawingPositions(e,t,n,r,i,a,o){var s;(s=t.skeTables)==null||s.forEach(t=>{t.rows.forEach(s=>{s.cells.forEach(c=>{let l=Ie(e,t,s,c),u=a+l.top,d=o+l.left;this._calculateDrawingPosition(e,c,n,r,i,u,d,void 0,{left:d,top:u}),this._calculateTableCellDrawingPositions(e,c,n,r,i,u,d)})})})}_drawingInitializeListener(){let e=()=>{let e=this._docSkeletonManagerService.getSkeleton();e!=null&&(this._drawingManagerService.initializeNotification(this._context.unitId),this._refreshDrawing(e))};this._lifecycleService.stage>=t.LifecycleStages.Rendered?this._docSkeletonManagerService.getSkeleton()?e():setTimeout(e,500):this.disposeWithMe(this._lifecycleService.lifecycle$.pipe((0,l.filter)(e=>e===t.LifecycleStages.Rendered)).subscribe(e))}};Re=E([T(1,(0,t.Inject)(r.DocSkeletonManagerService)),T(2,t.ICommandService),T(3,i.IEditorService),T(4,s.IDrawingManagerService),T(5,(0,t.Inject)(w)),T(6,t.IUniverInstanceService),T(7,(0,t.Inject)(t.LifecycleService))],Re);function ze(e,t){var n;let r=t.parent,i=r==null?void 0:r.parent,a=i==null?void 0:i.parent;return!r||!i||!a||!((n=r.cells)!=null&&n.includes(t))?null:{cell:t,hostPage:a,offset:Ie(e,i,r,t),row:r,table:i}}let Be=class extends t.Disposable{constructor(e,t,n,r){super(),this._commandService=e,this._univerInstanceService=t,this._drawingManagerService=n,this._renderManagerService=r,C(this,`_liquid`,new a.Liquid),C(this,`_listenerOnImageMap`,new Set),C(this,`_transformerCache`,new Map),C(this,`_anchorShape`,void 0),this._init()}_init(){this._listenDrawingFocus()}_listenDrawingFocus(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{if(e.length!==0)for(let t of e){let{unitId:e}=t;this._listenerOnImageMap.has(e)||(this._listenTransformerChange(e),this._listenerOnImageMap.add(e))}}))}_listenTransformerChange(e){var n;let r=(n=this._getSceneAndTransformerByDrawingSearch(e))==null?void 0:n.transformer;if(r==null)return;this.disposeWithMe((0,t.toDisposable)(r.changeStart$.subscribe(e=>{this._transformerCache.clear();let{objects:n}=e;for(let e of n.values()){var r;let{oKey:n,width:i,height:a,left:o,top:s,angle:c}=e,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)===t.PositionedObjectLayoutType.INLINE)try{e.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,t.throttle)(this._updateMultipleDrawingDocTransform.bind(this),50);(0,t.throttle)(this._nonInlineDrawingTransform.bind(this),50),this.disposeWithMe((0,t.toDisposable)(r.changing$.subscribe(e=>{let{objects:n,offsetX:r,offsetY:a}=e;if(n.size>1)i(n);else if(n.size===1){let e=this._transformerCache.values().next().value,{width:i,height:o,top:s,left:c,angle:l}=n.values().next().value;if(e&&i===e.width&&o===e.height&&s===e.top&&c===e.left&&l===e.angle)return;e&&(e.drawing.layoutType,t.PositionedObjectLayoutType.INLINE),e&&e.drawing.layoutType===t.PositionedObjectLayoutType.INLINE&&r!=null&&a!=null&&this._updateInlineDrawingAnchor(e.drawing,r,a)}}))),this.disposeWithMe((0,t.toDisposable)(r.changeEnd$.subscribe(e=>{let{objects:n,offsetX:r,offsetY:i}=e;for(let e of n.values()){let n=this._drawingManagerService.getDrawingOKey(e.oKey);if(n==null)continue;let r=this._transformerCache.get(n==null?void 0:n.drawingId);if((r==null?void 0:r.drawing.layoutType)===t.PositionedObjectLayoutType.INLINE)try{e.setOpacity(1)}catch{}}if(this._anchorShape&&this._anchorShape.hide(),n.size>1)this._updateMultipleDrawingDocTransform(n);else if(n.size===1){let e=this._transformerCache.values().next().value,a=n.values().next().value,{width:o,height:s,top:c,left:l,angle:u}=a;if(e&&o===e.width&&s===e.height&&c===e.top&&l===e.left&&u===e.angle)return;e&&e.drawing.layoutType===t.PositionedObjectLayoutType.INLINE?o!==e.width||s!==e.height||u!==e.angle?this._updateDrawingSize(e,a):r!=null&&i!=null&&this._moveInlineDrawing(e.drawing,r,i):e&&this._nonInlineDrawingTransform(e.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(B.id,{unitId:n,subUnitId:r,drawings:t})}_updateDrawingAnchor(e){if(this._transformerCache.size!==1)return;let t=this._transformerCache.values().next().value,n=e.values().next().value;this._getDrawingAnchor(t.drawing,n)}_updateInlineDrawingAnchor(e,t,n){var r;if(this._transformerCache.size!==1)return;let{contentBoxPointGroup:i}=(r=this._getInlineDrawingAnchor(e,t,n))==null?{}:r;i!=null&&this._createOrUpdateInlineAnchor(e.unitId,i)}_getInlineDrawingAnchor(e,t,n){var o,s;let c=this._renderManagerService.getRenderById(e.unitId),l=c==null?void 0:c.with(r.DocSkeletonManagerService).getSkeleton();if(c==null)return;let{mainComponent:u,scene:d}=c,f=u,p=d.getViewports()[0],{pageLayoutType:m=a.PageLayoutType.VERTICAL,pageMarginLeft:h,pageMarginTop:g}=f.getOffsetConfig(),_=null,v=!1,y=-1,b=``,x=this._getTransformCoordForDocumentOffset(f,p,t,n);if(x==null)return;let S=(o=this._renderManagerService.getRenderById(e.unitId))==null?void 0:o.with(i.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)return;let E={...w,isBack:v},{cursorList:D,contentBoxPointGroup:O}=new i.NodePositionConvertToCursor(T.document.getOffsetConfig(),l).getRangePointData(E,E),{startOffset:k}=(s=(0,i.getOneTextSelectionRange)(D))==null?{}:s;if(k!=null)return{offset:k,contentBoxPointGroup:O,segmentId:b,segmentPage:y}}_getDrawingAnchor(e,n){var o,s,c,l,u,d;let f=this._renderManagerService.getRenderById(e.unitId),p=f==null?void 0:f.with(r.DocSkeletonManagerService).getSkeleton(),m=p==null?void 0:p.getSkeletonData();if(m==null||f==null)return;let{pages:h,skeHeaders:g,skeFooters:_}=m,{mainComponent:v,scene:y}=f,b=v,x=y.getViewports()[0],{pageLayoutType:S=a.PageLayoutType.VERTICAL,pageMarginLeft:C,pageMarginTop:w,docsLeft:T,docsTop:E}=b.getOffsetConfig(),{left:D,top:O,angle:k}=n,{width:A,height:j}=n,{positionV:M,positionH:N}=e.docTransform,{width:P,height:F}=this._getPageContentSize(e);A=Math.min(A,P),j=Math.min(j,F);let I=null,L=``,R=-1,z={...e.docTransform,size:{width:A,height:j},angle:k},{x:ee,y:te}=y.getViewportScrollXY(x),B=this._getTransformCoordForDocumentOffset(b,x,D-ee,O-te);if(B==null)return;let V=(o=this._renderManagerService.getRenderById(e.unitId))==null?void 0:o.with(i.DocSelectionRenderService);if(V==null)return;let ne=p==null?void 0:p.findNodeByCoord(B,S,C,w,{strict:!1,segmentId:V.getSegment(),segmentPage:V.getSegmentPage()});if(ne){let{node:e,segmentPage:t,segmentId:n}=ne;I=e,R=t,L=n}if(I==null)return;let H=(s=I.parent)==null?void 0:s.parent,U=H==null?void 0:H.parent,re=(c=U==null?void 0:U.lines.find(e=>e.paragraphIndex===(H==null?void 0:H.paragraphIndex)&&e.paragraphStart))==null?U==null?void 0:U.lines[0]:c,W=U==null||(l=U.parent)==null?void 0:l.parent;if(H==null||U==null||re==null||W==null)return;this._liquid.reset();let G=W.type===a.DocumentSkeletonPageType.CELL?ze(e.unitId,W):null,ie=(u=G==null?void 0:G.hostPage)==null?W:u,ae=ie.type;for(let e of h){let{headerId:t,footerId:n,pageHeight:r,pageWidth:i,marginLeft:o,marginBottom:s}=e,c=h.indexOf(e);if(R>-1&&c===R){switch(ae){case a.DocumentSkeletonPageType.HEADER:{var K;let e=(K=g.get(t))==null?void 0:K.get(i);if(e)this._liquid.translatePagePadding({marginTop:e.marginTop,marginLeft:o});else throw Error(`header skeleton not found`);break}case a.DocumentSkeletonPageType.FOOTER:{var q;let e=(q=_.get(n))==null?void 0:q.get(i);if(e)this._liquid.translatePagePadding({marginTop:r-s+e.marginTop,marginLeft:o});else throw Error(`footer skeleton not found`);break}default:this._liquid.translatePagePadding(e);break}break}if(this._liquid.translatePagePadding(e),e===ie)break;this._liquid.restorePagePadding(e),this._liquid.translatePage(e,S,C,w)}if(G&&this._liquid.translate(G.offset.left,G.offset.top),M.relativeFrom===t.ObjectRelativeFromV.LINE)I=H.divides[0].glyphGroup[0];else{var J,Y;I=(J=(Y=re.divides)==null||(Y=Y[0])==null||(Y=Y.glyphGroup)==null?void 0:Y[0])==null?I:J}switch(z.positionH={relativeFrom:N.relativeFrom,posOffset:D-this._liquid.x-T},N.relativeFrom){case t.ObjectRelativeFromH.MARGIN:z.positionH.posOffset=D-this._liquid.x-T-W.marginLeft;break;case t.ObjectRelativeFromH.COLUMN:z.positionH.posOffset=D-this._liquid.x-T-U.left;break}switch(z.positionV={relativeFrom:M.relativeFrom,posOffset:O-this._liquid.y-E},M.relativeFrom){case t.ObjectRelativeFromV.PAGE:z.positionV.posOffset=O-this._liquid.y-E-W.marginTop;break;case t.ObjectRelativeFromV.LINE:z.positionV.posOffset=O-this._liquid.y-E-H.top;break;case t.ObjectRelativeFromV.PARAGRAPH:z.positionV.posOffset=O-this._liquid.y-E-re.top;break}if(I==null)return;let oe=p==null?void 0:p.findPositionByGlyph(I,R),X=this._getDocObject();if(oe==null||p==null||X==null)return;let se={...oe,isBack:!1},{cursorList:ce}=new i.NodePositionConvertToCursor(X.document.getOffsetConfig(),p).getRangePointData(se,se),{startOffset:Z}=(d=(0,i.getOneTextSelectionRange)(ce))==null?{}:d;if(Z!=null)return{offset:Z,docTransform:z,segmentId:L,segmentPage:R}}_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(B.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(V.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:i,segmentId:a,segmentPage:o,needRefreshDrawings:i==null})}_limitDrawingInPage(e,n){let i=this._renderManagerService.getRenderById(e.unitId),{left:a,top:o,width:s,height:c,angle:l}=n,u=i==null?void 0:i.with(r.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 e of f){let{marginBottom:n,pageHeight:r}=e,i=f[f.indexOf(e)+1];i!=null&&(t.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(e,h,g,_))}return{left:a,top:v,width:s,height:c,angle:l}}_nonInlineDrawingTransform(e,n,r=!1){let i=e.isMultiTransform===t.BooleanNumber.TRUE?n:this._limitDrawingInPage(e,n);if(r&&i.top!==n.top)return;let a=this._getDrawingAnchor(e,i),{offset:o,docTransform:s,segmentId:c,segmentPage:l}=a==null?{}:a;return o==null||s==null?this._updateMultipleDrawingDocTransform(new Map([[e.drawingId,n]])):this._commandService.executeCommand(ne.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:o,docTransform:s,segmentId:c,segmentPage:l})}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;if(n!=null)return{scene:n,transformer:n.getTransformerByCreate()}}_getTransformCoordForDocumentOffset(e,t,n,r){let{documentTransform:i}=e.getOffsetConfig(),o=t.transformVector2SceneCoord(a.Vector2.FromArray([n,r]));if(o)return i.clone().invert().applyPoint(o)}_createOrUpdateInlineAnchor(e,n){let r=this._renderManagerService.getRenderById(e);if(r==null)return;let{mainComponent:o,scene:s}=r,{docsLeft:c,docsTop:l}=o.getOffsetConfig(),{left:u,top:d,height:f}=(0,i.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 a.Rect(`__InlineDrawingAnchor__`+(0,t.generateRandomId)(6),{left:p,top:m,height:f,strokeWidth:2,stroke:(0,a.getColor)(t.COLORS.darkgray,1),evented:!1});this._anchorShape=h,s.addObject(h,i.TEXT_RANGE_LAYER_INDEX)}_getDocObject(){return(0,i.getDocObject)(this._univerInstanceService,this._renderManagerService)}_getPageContentSize(e){let t=this._renderManagerService.getRenderById(e.unitId),n=t==null?void 0:t.with(r.DocSkeletonManagerService).getSkeleton(),i=n==null?void 0:n.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}}};Be=E([T(0,t.ICommandService),T(1,t.IUniverInstanceService),T(2,s.IDrawingManagerService),T(3,a.IRenderManagerService)],Be);let Ve={[c.RibbonInsertGroup.MEDIA]:{[q]:{order:0,menuItemFactory:oe,[J]:{order:0,menuItemFactory:X}}},[c.ContextMenuPosition.PARAGRAPH]:{[c.ContextMenuGroup.LAYOUT]:{[i.INSERT_BELLOW_MENU_ID]:{[J]:{order:5,menuItemFactory:X}}},[i.EMPTY_PARAGRAPH_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[J]:{order:5,menuItemFactory:X}}},[i.DOC_CONTENT_INSERT_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[J]:{order:5,menuItemFactory:X}}},[i.DOC_PARAGRAPH_T_INSERT_MENU_ID]:{insert:{[J]:{order:1,menuItemFactory:X},[ce]:{order:2,menuItemFactory:le}}},[i.DOC_PARAGRAPH_T_INSERT_BELOW_MENU_ID]:{insert:{[`${J}.below`]:{order:1,menuItemFactory:se},[Z]:{order:2,menuItemFactory:ue}}},[ce]:{shapes:{order:0,[P.id]:{order:0,menuItemFactory:de},[F.id]:{order:1,menuItemFactory:fe}}},[Z]:{shapes:{order:0,[`${P.id}.below`]:{order:0,menuItemFactory:pe},[`${F.id}.below`]:{order:1,menuItemFactory:me}}}}};function Q(e){return e.getContextValue(t.FOCUSING_DOC)&&e.getContextValue(t.FOCUSING_UNIVER_EDITOR)&&e.getContextValue(t.FOCUSING_COMMON_DRAWINGS)}let He={id:H.id,description:`docs-drawing-ui.shortcut.drawing-move-down`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,binding:c.KeyCode.ARROW_DOWN,priority:100,preconditions:Q,staticParameters:{direction:t.Direction.DOWN}},Ue={id:H.id,description:`docs-drawing-ui.shortcut.drawing-move-up`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,binding:c.KeyCode.ARROW_UP,priority:100,preconditions:Q,staticParameters:{direction:t.Direction.UP}},We={id:H.id,description:`docs-drawing-ui.shortcut.drawing-move-left`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,binding:c.KeyCode.ARROW_LEFT,priority:100,preconditions:Q,staticParameters:{direction:t.Direction.LEFT}},Ge={id:H.id,description:`docs-drawing-ui.shortcut.drawing-move-right`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,binding:c.KeyCode.ARROW_RIGHT,priority:100,preconditions:Q,staticParameters:{direction:t.Direction.RIGHT}},Ke={id:m.id,description:`docs-drawing-ui.shortcut.drawing-delete`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,preconditions:Q,binding:c.KeyCode.DELETE,mac:c.KeyCode.BACKSPACE},qe=class extends t.Disposable{constructor(e,t,n){super(),this._menuManagerService=e,this._commandService=t,this._shortcutService=n,this._init()}_initCustomComponents(){}_initMenus(){this._menuManagerService.mergeMenu(Ve)}_initCommands(){[O,P,F,g,z,ee,te,B,V,ne,p,W,U,G,h,y,H,m,v].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[He,Ue,We,Ge,Ke].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};qe=E([T(0,c.IMenuManagerService),T(1,t.ICommandService),T(2,c.IShortcutService)],qe);let Je=class extends t.RxDisposable{constructor(e,t,n,r,i,a){super(),this._drawingManagerService=e,this._canvasPopManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._contextService=i,this._commandService=a,C(this,`_initImagePopupMenu`,new Set),C(this,`_disposePopups`,[]),C(this,`_isDrawingPanelOpen`,!1),this._init()}_init(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===G.id&&(this._isDrawingPanelOpen=!0,this._clearPopups()),e.id===W.id){let t=e.params;this._isDrawingPanelOpen=(t==null?void 0:t.value)===`open`,this._isDrawingPanelOpen&&this._clearPopups()}})),this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e.length===0&&(this._isDrawingPanelOpen=!1)})),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_DOC).pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>this._create(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_DOC).pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>this._dispose(e))),this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_DOC).forEach(e=>this._create(e))}_dispose(e){let t=e.getUnitId();this._clearPopups(),this._renderManagerService.removeRender(t)}_clearPopups(){this._disposePopups.forEach(e=>e.dispose()),this._disposePopups.length=0}_create(e){if(!e)return;let n=e.getUnitId();(0,t.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 u.ImageCropperObject)return!0;return!1}_popupMenuListener(e){var n;let r=(n=this._renderManagerService.getRenderById(e))==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 e=i.getSelectedObjectMap();if(a.forEach(e=>e.dispose()),a.length=0,this._isDrawingPanelOpen||e.size>1)return;let n=e.values().next().value;if(!n)return;let o=n.oKey,s=this._drawingManagerService.getDrawingOKey(o);if(!s||s.drawingType===t.DrawingTypeEnum.DRAWING_DOM||s.drawingType===t.DrawingTypeEnum.DRAWING_SHAPE)return;let{unitId:c,subUnitId:l,drawingId:d,drawingType:f}=s,p=f===t.DrawingTypeEnum.DRAWING_IMAGE,m=this._canvasPopManagerService.attachPopupToObject(n,{componentKey:u.COMPONENT_IMAGE_POPUP_MENU,direction:p?`top-center`:`horizontal`,offset:p?[0,8]:[2,0],extraProps:{menuItems:this._getImageMenuItems(c,l,d,f),variant:p?`doc-floating-toolbar`:void 0,unitId:c,subUnitId:l,drawingId:d}},c);a.push(this.disposeWithMe(m)),!this._drawingManagerService.getFocusDrawings().find(e=>e.unitId===c&&e.subUnitId===l&&e.drawingId===d)&&this._drawingManagerService.focusDrawing([{unitId:c,subUnitId:l,drawingId:d}])})),this.disposeWithMe(i.clearControl$.subscribe(()=>{a.forEach(e=>e.dispose()),a.length=0,this._contextService.setContextValue(t.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,n,r,i){return[{label:`docs-drawing-ui.image-popup.edit`,index:0,commandId:G.id,commandParams:{unitId:e,subUnitId:n,drawingId:r},disable:i===t.DrawingTypeEnum.DRAWING_DOM},{label:`docs-drawing-ui.image-popup.delete`,index:1,commandId:p.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:n,drawingId:r}]},disable:!1},{label:`docs-drawing-ui.image-popup.crop`,index:2,commandId:u.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:n,drawingId:r},disable:i===t.DrawingTypeEnum.DRAWING_DOM},{label:`docs-drawing-ui.image-popup.reset`,index:3,commandId:u.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:n,drawingId:r}],disable:!0}]}};Je=E([T(0,s.IDrawingManagerService),T(1,(0,t.Inject)(i.DocCanvasPopManagerService)),T(2,a.IRenderManagerService),T(3,t.IUniverInstanceService),T(4,t.IContextService),T(5,t.ICommandService)],Je);let $=class extends t.Plugin{constructor(e=_e,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{...a}=(0,t.merge)({},_e,this._config);this._configService.setConfig(`docs-drawing-ui.config`,a)}onStarting(){[[Ce],[qe],[Je],[Be],[Ee],[w],[K],[ke]].forEach(e=>this._injector.add(e)),this._injector.get(Ce)}onReady(){[[D],[Re]].forEach(e=>this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)),this._injector.get(Ee),this._injector.get(qe),this._injector.get(Be),this._injector.get(ke)}onRendered(){this._injector.get(Je),this._injector.get(K)}};C($,`type`,t.UniverInstanceType.UNIVER_DOC),C($,`pluginName`,`DOC_DRAWING_UI_PLUGIN`),C($,`packageName`,he),C($,`version`,ge),$=E([(0,t.DependentOn)(u.UniverDrawingUIPlugin,s.UniverDrawingPlugin,n.UniverDocsDrawingPlugin,c.UniverUIPlugin),T(1,(0,t.Inject)(t.Injector)),T(2,a.IRenderManagerService),T(3,t.IConfigService)],$),e.ClearDocDrawingTransformerOperation=U,e.DOCS_IMAGE_MENU_ID=q,e.DOCS_SHAPE_BELOW_MENU_ID=Z,e.DOCS_SHAPE_MENU_ID=ce,e.DeleteDocDrawingsCommand=m,e.DocDrawingPosition=be,e.DocDrawingTextWrap=xe,Object.defineProperty(e,"DocFloatDomController",{enumerable:!0,get:function(){return K}}),e.EditDocDrawingOperation=G,e.GroupDocDrawingCommand=h,e.InsertDocDrawingCommand=g,e.InsertDocEllipseShapeCommand=F,e.InsertDocImageCommand=O,e.InsertDocRectangleShapeCommand=P,e.MoveDocDrawingsCommand=H,e.RemoveDocDrawingCommand=p,e.SetDocDrawingArrangeCommand=v,e.SidebarDocDrawingOperation=W,e.UngroupDocDrawingCommand=y,Object.defineProperty(e,"UniverDocsDrawingUIPlugin",{enumerable:!0,get:function(){return $}})});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs-drawing"),require("@univerjs/docs"),require("@univerjs/docs-ui"),require("@univerjs/engine-render"),require("@univerjs/design"),require("@univerjs/drawing"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/drawing-ui"),require("react"),require("react/jsx-runtime")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs-drawing`,`@univerjs/docs`,`@univerjs/docs-ui`,`@univerjs/engine-render`,`@univerjs/design`,`@univerjs/drawing`,`@univerjs/ui`,`rxjs`,`@univerjs/drawing-ui`,`react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawingUi={},e.UniverCore,e.UniverDocsDrawing,e.UniverDocs,e.UniverDocsUi,e.UniverEngineRender,e.UniverDesign,e.UniverDrawing,e.UniverUi,e.rxjs,e.UniverDrawingUi,e.React,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let p={id:`doc.command.remove-doc-image`,type:t.CommandType.COMMAND,handler:(e,n)=>{var o,s,c;let l=e.get(t.ICommandService),u=e.get(t.IUniverInstanceService),d=e.get(a.IRenderManagerService),f=u.getCurrentUniverDocInstance();if(n==null||f==null)return!1;let p=d.getRenderById(n.unitId).with(i.DocSelectionRenderService),{drawings:m}=n,h=(o=p.getSegment())==null?``:o,g=new t.TextX,_=t.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 t.MemoryCursor;x.reset();let S=y[0].startIndex,C=[{startOffset:S,endOffset:S}],w={id:r.RichTextEditingMutation.id,params:{unitId:b,actions:[],textRanges:C}},T=[];for(let e of y){let{startIndex:n}=e;n>x.cursor&&g.push({t:t.TextXActionType.RETAIN,len:n-x.cursor}),g.push({t:t.TextXActionType.DELETE,len:1}),x.moveCursorTo(n+1)}let E=(0,t.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((e,n)=>t.JSONX.compose(e,n),null),!!l.syncExecuteCommand(w.id,w.params)}},m={id:`doc.command.delete-drawing`,type:t.CommandType.COMMAND,handler:e=>{let r=e.get(t.ICommandService),i=e.get(n.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(p.id,{unitId:a,drawings:o})}},h={id:`doc.command.group-doc-image`,type:t.CommandType.COMMAND,handler:(e,t)=>!1},g={id:`doc.command.insert-doc-image`,type:t.CommandType.COMMAND,handler:(e,n)=>{var a,o,s,c;if(n==null)return!1;let l=e.get(t.ICommandService),u=e.get(r.DocSelectionManagerService),d=e.get(t.IUniverInstanceService),f=u.getActiveTextRange(),p=d.getCurrentUniverDocInstance();if(p==null)return!1;let m=p.getUnitId(),h=_(e,m),g=h?{...f,startOffset:h.startOffset,endOffset:h.endOffset,collapsed:h.startOffset===h.endOffset,segmentId:(a=(o=h.segmentId)==null?f==null?void 0:f.segmentId:o)==null?``:a}:f;if(g==null)return!1;let{drawings:v}=n,{collapsed:y,startOffset:b,segmentId:x=``}=g,S=p.getSelfOrHeaderFooterModel(x).getBody();if(S==null)return!1;let C=new t.TextX,w=t.JSONX.getInstance(),T=[],E=(s=(c=p.getSnapshot().drawingsOrder)==null?void 0:c.length)==null?0:s,D=0;if(y)b>0&&C.push({t:t.TextXActionType.RETAIN,len:b});else{var O,k;let e=t.BuildTextUtils.selection.delete([g],S,0,null,!1);C.push(...e);let n=(0,i.getCustomBlockIdsInSelections)(S,[g]),r=(O=p.getDrawings())==null?{}:O,a=(k=p.getDrawingsOrder())==null?[]:k,o=n.sort((e,t)=>a.indexOf(e)>a.indexOf(t)?-1:+(a.indexOf(e)<a.indexOf(t)));if(o.length>0)for(let e of o){let t=r[e],n=a.indexOf(e);if(t==null||n<0)continue;let i=w.removeOp([`drawings`,e],t),o=w.removeOp([`drawingsOrder`,n],e);T.push(i),T.push(o),D++}}C.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`.repeat(v.length),customBlocks:v.map((e,t)=>({startIndex:t,blockId:e.drawingId}))},len:v.length});let A=(0,t.getRichTextEditPath)(p,x),j=w.editOp(C.serialize(),A);T.push(j);for(let e of v){let{drawingId:t}=e,n=w.insertOp([`drawings`,t],e),r=w.insertOp([`drawingsOrder`,E-D],t);T.push(n),T.push(r)}let M={id:r.RichTextEditingMutation.id,params:{unitId:m,actions:[],textRanges:[]}};return M.params.actions=T.reduce((e,n)=>t.JSONX.compose(e,n),null),!!l.syncExecuteCommand(M.id,M.params)}};function _(e,t){try{let n=e.get(r.DocContentInsertService).consumeInsertRange(t);return n==null?null:{startOffset:n.startOffset,endOffset:n.endOffset,collapsed:n.startOffset===n.endOffset,segmentId:n.segmentId}}catch{return null}}let v={id:`doc.command.set-drawing-arrange`,type:t.CommandType.COMMAND,handler:(e,i)=>{let a=e.get(t.ICommandService),o=e.get(n.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===t.ArrangeTypeEnum.forward?f=o.getForwardDrawingsOp(d):u===t.ArrangeTypeEnum.backward?f=o.getBackwardDrawingOp(d):u===t.ArrangeTypeEnum.front?f=o.getFrontDrawingsOp(d):u===t.ArrangeTypeEnum.back&&(f=o.getBackDrawingsOp(d)),f==null)return!1;let{redo:p}=f;if(p==null)return!1;let m=[],h=t.Tools.deepClone(p);h=h.slice(3),h.unshift(`drawingsOrder`),m.push(h);let g={id:r.RichTextEditingMutation.id,params:{unitId:s,actions:[],textRanges:null}};return g.params.actions=m.reduce((e,n)=>t.JSONX.compose(e,n),null),!!a.syncExecuteCommand(g.id,g.params)}},y={id:`doc.command.ungroup-doc-image`,type:t.CommandType.COMMAND,handler:(e,t)=>{let r=e.get(n.IDocDrawingService);if(!t)return!1;let i=[];t.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(t);return!1}};function b(e){"@babel/helpers - typeof";return b=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},b(e)}function x(e,t){if(b(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(b(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function S(e){var t=x(e,`string`);return b(t)==`symbol`?t:t+``}function C(e,t,n){return(t=S(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var w=class{constructor(){C(this,`_refreshDrawings$`,new l.BehaviorSubject(null)),C(this,`refreshDrawings$`,this._refreshDrawings$.asObservable())}refreshDrawings(e){this._refreshDrawings$.next(e)}};function T(e,t){return function(n,r){t(n,r,e)}}function E(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 D=class extends t.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=this._getCurrentImageInsertPosition(),t=await this._fileOpenerService.openFile({multiple:!0,accept:s.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),n=t.length;return n>s.DRAWING_IMAGE_COUNT_LIMIT?(this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`docs-drawing-ui.update-status.exceedMaxCount`,String(s.DRAWING_IMAGE_COUNT_LIMIT))}),!1):n===0?!1:(await this._insertFloatImages(t,e),!0)}async _insertFloatImages(e,n){let r=[];try{r=await Promise.all(e.map(e=>this._imageIoService.saveImage(e)))}catch(e){let t=e.message,n=``;switch(t){case s.ImageUploadStatusType.ERROR_EXCEED_SIZE:n=this._localeService.t(`docs-drawing-ui.update-status.exceedMaxSize`,String((0,s.getDrawingImageAllowSize)()/(1024*1024)));break;case s.ImageUploadStatusType.ERROR_IMAGE_TYPE:n=this._localeService.t(`docs-drawing-ui.update-status.invalidImageType`);break;case s.ImageUploadStatusType.ERROR_IMAGE:n=this._localeService.t(`docs-drawing-ui.update-status.invalidImage`);break;default:break}this._messageService.show({type:o.MessageType.Error,content:n})}if(r.length===0)return;let{unitId:a}=this._context,c=[];for(let e of r){if(e==null)continue;let{imageId:r,imageSourceType:o,source:l,base64Cache:u}=e,{width:d,height:f,image:p}=await(0,s.getImageSize)(u||``);this._imageIoService.addImageSourceCache(r,o,p);let m=1;if(d>s.DRAWING_IMAGE_WIDTH_LIMIT||f>s.DRAWING_IMAGE_HEIGHT_LIMIT){let e=s.DRAWING_IMAGE_WIDTH_LIMIT/d,t=s.DRAWING_IMAGE_HEIGHT_LIMIT/f;m=Math.min(e,t)}let h=n==null?this._getCurrentImageInsertPosition():n,g=this._getImagePosition(d*m,f*m,h);if(g==null)return;let _=(0,i.docDrawingPositionToTransform)(g);_!=null&&h!=null&&(_.top=h.top);let v={unitId:a,subUnitId:a,drawingId:r,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:o,source:l,transform:_,docTransform:g,behindDoc:t.BooleanNumber.FALSE,title:``,description:``,layoutType:t.PositionedObjectLayoutType.INLINE,wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};this._isInsertInHeaderFooter()&&(v.isMultiTransform=t.BooleanNumber.TRUE,v.transforms=v.transform?[v.transform]:null),c.push(v)}this._commandService.executeCommand(g.id,{unitId:a,drawings:c})}_isInsertInHeaderFooter(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderById(t))==null?void 0:e.with(r.DocSkeletonManagerService).getViewModel(),i=n==null?void 0:n.getEditArea();return i===a.DocumentEditArea.HEADER||i===a.DocumentEditArea.FOOTER}_getImagePosition(e,n,r){var i;let a=(i=r==null?this._getCurrentImageInsertPosition():r)==null?{left:0,top:0}:i;return{size:{width:e,height:n},positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:a.left},positionV:{relativeFrom:t.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0}}_getCurrentImageInsertPosition(){var e;let t=(e=this._docSelectionRenderService.getActiveTextRange())==null?void 0:e.getAbsolutePosition();return t==null?null:{left:t.left,top:t.top}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(v.id,{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i})}))}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{this._commandService.executeCommand(h.id,e)})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{this._commandService.executeCommand(y.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,l.debounceTime)(30)).subscribe(e=>{this._docSelectionManagerService.refreshSelection()}));else throw Error(`transformer is not init`)}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{var n;let{transformer:r,docsLeft:i,docsTop:a}=(n=this._getCurrentSceneAndTransformer())==null?{}:n;if(e==null||e.length===0)this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._docDrawingService.focusDrawing([]),r&&r.resetProps({zeroTop:0,zeroLeft:0});else{this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!0),this._docDrawingService.focusDrawing(e),this._setDrawingSelections(e);let n=this._docSelectionRenderService.getSegment(),o=this._findSegmentIdByDrawingId(e[0].drawingId);n!==o&&this._docSelectionRenderService.setSegment(o),r&&r.resetProps({zeroTop:a,zeroLeft:i})}this._updateDrawingsEditStatus()}))}_findSegmentIdByDrawingId(e){var t;let{unit:n}=this._context,{body:r,headers:i={},footers:a={}}=n.getSnapshot();if(((t=r==null?void 0:r.customBlocks)==null?[]:t).some(t=>t.blockId===e))return``;for(let t of Object.keys(i)){var o;if((o=i[t].body.customBlocks)!=null&&o.some(t=>t.blockId===e))return t}for(let t of Object.keys(a)){var s;if((s=a[t].body.customBlocks)!=null&&s.some(t=>t.blockId===e))return t}return``}_updateDrawingsEditStatus(){var e;if(!this._context)return;let{unit:n,scene:i,unitId:o}=this._context,c=(e=this._renderManagerSrv.getRenderById(o))==null?void 0:e.with(r.DocSkeletonManagerService).getViewModel();if(c==null||n==null)return;let{drawings:l={}}=n.getSnapshot(),u=c.getEditArea()===a.DocumentEditArea.BODY,d=this._docSelectionRenderService.isFocusing;for(let e of Object.keys(l)){let n=l[e],r=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:o,drawingId:n.drawingId,subUnitId:o}),a=i.fuzzyMathObjects(r,!0);if(a.length)for(let e of a){i.detachTransformerFrom(e);try{e.setOpacity(d?.5:1)}catch{}if(d&&(u&&n.isMultiTransform!==t.BooleanNumber.TRUE||!u&&n.isMultiTransform===t.BooleanNumber.TRUE)){n.allowTransform!==!1&&i.attachTransformerTo(e);try{e.setOpacity(1)}catch{}}}}}_editAreaChangeListener(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderById(t))==null?void 0:e.with(r.DocSkeletonManagerService).getViewModel();n!=null&&(this._updateDrawingsEditStatus(),this.disposeWithMe(n.editAreaChange$.subscribe(()=>{this._updateDrawingsEditStatus()})),this.disposeWithMe(this._docSelectionRenderService.onFocus$.subscribe(()=>{this._updateDrawingsEditStatus()})),this.disposeWithMe(this._docSelectionRenderService.onBlur$.subscribe(()=>{this._updateDrawingsEditStatus()})),this.disposeWithMe(this._docRefreshDrawingsService.refreshDrawings$.subscribe(e=>{e!=null&&queueMicrotask(()=>{this._updateDrawingsEditStatus()})})),this.disposeWithMe(this._commandService.onCommandExecuted(async e=>{e.id===r.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)}};D=E([T(1,t.ICommandService),T(2,(0,t.Inject)(r.DocSelectionManagerService)),T(3,a.IRenderManagerService),T(4,s.IImageIoService),T(5,n.IDocDrawingService),T(6,s.IDrawingManagerService),T(7,t.IContextService),T(8,c.IMessageService),T(9,(0,t.Inject)(t.LocaleService)),T(10,(0,t.Inject)(i.DocSelectionRenderService)),T(11,(0,t.Inject)(w)),T(12,c.ILocalFileService)],D);let O={id:`doc.command.insert-float-image`,type:t.CommandType.COMMAND,handler:e=>{var n,r;let i=e.get(t.IUniverInstanceService),o=e.get(a.IRenderManagerService);return(n=(r=(0,a.getCurrentTypeOfRenderer)(t.UniverInstanceType.UNIVER_DOC,i,o))==null?void 0:r.with(D).insertDocImage())==null?!1:n}},k=`#3A60F7`,A=`#1D3EA6`;function j(e,t,n){let r=`<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${n}" viewBox="0 0 ${t} ${n}" fill="none">${e===`ellipse`?`<ellipse cx="${t/2}" cy="${n/2}" rx="${(t-8)/2}" ry="${(n-8)/2}" fill="${k}" stroke="${A}" stroke-width="4" />`:`<rect x="4" y="4" width="${t-8}" height="${n-8}" rx="14" fill="${k}" stroke="${A}" stroke-width="4" />`}</svg>`;return`data:image/svg+xml;utf8,${encodeURIComponent(r)}`}function M(e,n){return{size:{width:e,height:n},positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0}}function N(e,n,r,a){return{id:a,type:t.CommandType.COMMAND,handler:async a=>{var o;let c=a.get(t.ICommandService),l=(o=a.get(t.IUniverInstanceService).getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC))==null?void 0:o.getUnitId();if(!l)return!1;let u=M(n,r);return c.executeCommand(g.id,{unitId:l,drawings:[{unitId:l,subUnitId:l,drawingId:(0,t.generateRandomId)(6),drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:s.ImageSourceType.BASE64,source:j(e,n,r),transform:(0,i.docDrawingPositionToTransform)(u),docTransform:u,behindDoc:t.BooleanNumber.FALSE,title:``,description:``,layoutType:t.PositionedObjectLayoutType.INLINE,wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0}]})}}}let P=N(`rectangle`,144,96,`doc.command.insert-float-shape.rectangle`),F=N(`ellipse`,112,112,`doc.command.insert-float-shape.ellipse`),I={inline:t.PositionedObjectLayoutType.INLINE,wrapSquare:t.PositionedObjectLayoutType.WRAP_SQUARE,wrapTopAndBottom:t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM,inFrontOfText:t.PositionedObjectLayoutType.WRAP_NONE,behindText:t.PositionedObjectLayoutType.WRAP_NONE};function L(e,t,n,r){let i=e.skeDrawings.get(t);if(i)return{skeDrawing:i,pageMarginTop:n,pageMarginLeft:r};for(let n of e.skeTables.values())for(let e of n.rows)for(let n of e.cells){let e=L(n,t,n.marginTop,n.marginLeft);if(e)return e}return null}function R(e,n,r,i,a,o,s){var c;let l=new t.TextX,u=t.JSONX.getInstance(),d=[],f=o.getSelfOrHeaderFooterModel(n).getBody(),p=o.getSelfOrHeaderFooterModel(e).getBody();if(f==null||p==null)return;let m=(c=f.customBlocks)==null||(c=c.find(e=>e.blockId===a))==null?void 0:c.startIndex;if(m!=null){if(i=Math.min(p.dataStream.length-2,i),e===n){if(i<m?(i>0&&l.push({t:t.TextXActionType.RETAIN,len:i}),l.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1}),l.push({t:t.TextXActionType.RETAIN,len:m-i}),l.push({t:t.TextXActionType.DELETE,len:1})):(m>0&&l.push({t:t.TextXActionType.RETAIN,len:m}),l.push({t:t.TextXActionType.DELETE,len:1}),i-m-1>0&&l.push({t:t.TextXActionType.RETAIN,len:i-m-1}),l.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1})),i!==m){let e=(0,t.getRichTextEditPath)(o,n),r=u.editOp(l.serialize(),e);d.push(r)}}else{m>0&&l.push({t:t.TextXActionType.RETAIN,len:m}),l.push({t:t.TextXActionType.DELETE,len:1});let c=(0,t.getRichTextEditPath)(o,n),f=u.editOp(l.serialize(),c);d.push(f),l.empty(),i>0&&l.push({t:t.TextXActionType.RETAIN,len:i}),l.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1}),c=(0,t.getRichTextEditPath)(o,e),f=u.editOp(l.serialize(),c),d.push(f),s.setSegment(e),s.setSegmentPage(r)}return d}}let z={id:`doc.command.update-doc-drawing-wrapping-style`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let{drawings:i,wrappingStyle:o,unitId:s}=n,c=e.get(t.ICommandService),l=e.get(t.IUniverInstanceService),u=e.get(a.IRenderManagerService).getRenderById(s),d=u==null?void 0:u.with(r.DocSkeletonManagerService).getSkeleton().getSkeletonData(),f=u==null?void 0:u.with(r.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=t.JSONX.getInstance(),x=[],{drawings:S={}}=m.getSnapshot();for(let e of i){let{drawingId:n}=e,r=S[n].layoutType,i=I[o];if(r!==i){let e=b.replaceOp([`drawings`,n,`layoutType`],r,i);x.push(e)}if(o===`behindText`||o===`inFrontOfText`){let e=S[n].behindDoc,r=o===`behindText`?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE;if(e!==r){let t=b.replaceOp([`drawings`,n,`behindDoc`],e,r);x.push(t)}}if(o===`inline`)continue;let s=null;for(let e of _){let{headerId:t,footerId:r,marginTop:i,marginLeft:o,marginBottom:c,pageWidth:l,pageHeight:u}=e;switch(h){case a.DocumentEditArea.HEADER:{var C;let e=(C=v.get(t))==null?void 0:C.get(l);e!=null&&(s=L(e,n,e.marginTop,o));break}case a.DocumentEditArea.FOOTER:{var w;let e=(w=y.get(r))==null?void 0:w.get(l);e!=null&&(s=L(e,n,u-c+e.marginTop,o));break}case a.DocumentEditArea.BODY:s=L(e,n,i,o);break}if(s!=null)break}if(s!=null){let{skeDrawing:e,pageMarginTop:r,pageMarginLeft:i}=s,{aTop:a,aLeft:o}=e,c=S[n].docTransform.positionH,l=o;c.relativeFrom===t.ObjectRelativeFromH.MARGIN?l-=i:c.relativeFrom===t.ObjectRelativeFromH.COLUMN&&(l-=e.columnLeft);let u={relativeFrom:c.relativeFrom,posOffset:l};if(c.posOffset!==u.posOffset){let e=b.replaceOp([`drawings`,n,`docTransform`,`positionH`],c,u);x.push(e)}let d=S[n].docTransform.positionV,f=a;d.relativeFrom===t.ObjectRelativeFromV.PAGE?f+=r:d.relativeFrom===t.ObjectRelativeFromV.LINE?f-=e.lineTop:d.relativeFrom===t.ObjectRelativeFromV.PARAGRAPH&&(f-=e.blockAnchorTop);let p={relativeFrom:d.relativeFrom,posOffset:f};if(d.posOffset!==p.posOffset){let e=b.replaceOp([`drawings`,n,`docTransform`,`positionV`],d,p);x.push(e)}}}let T={id:r.RichTextEditingMutation.id,params:{unitId:s,actions:[],textRanges:null}};T.params.actions=x.reduce((e,n)=>t.JSONX.compose(e,n),null);let E=c.syncExecuteCommand(T.id,T.params);return g.refreshControls(),!!E}},ee={id:`doc.command.update-doc-drawing-distance`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService).getCurrentUniverDocInstance();if(a==null)return!1;let{drawings:o,dist:s,unitId:c}=n,l=t.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:r.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};return f.params.actions=u.reduce((e,n)=>t.JSONX.compose(e,n),null),!!i.syncExecuteCommand(f.id,f.params)}},te={id:`doc.command.update-doc-drawing-wrap-text`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService).getCurrentUniverDocInstance();if(a==null)return!1;let{drawings:o,wrapText:s,unitId:c}=n,l=t.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:r.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};return f.params.actions=u.reduce((e,n)=>t.JSONX.compose(e,n),null),!!i.syncExecuteCommand(f.id,f.params)}},B={id:`doc.command.update-drawing-doc-transform`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let i=e.get(t.ICommandService),o=e.get(t.IUniverInstanceService),s=e.get(a.IRenderManagerService).getRenderById(n.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}=n,p=t.JSONX.getInstance(),m=[],{drawings:h={}}=u.getSnapshot();for(let e of d){let{drawingId:n,key:r,value:i}=e,a=h[n].docTransform[r];if(!t.Tools.diffValue(a,i)){let e=p.replaceOp([`drawings`,n,`docTransform`,r],a,i);m.push(e)}}let g={id:r.RichTextEditingMutation.id,params:{unitId:f,actions:[],textRanges:null,debounce:!0}};g.params.actions=m.reduce((e,n)=>t.JSONX.compose(e,n),null);let _=i.syncExecuteCommand(g.id,g.params);return l.refreshControls(),!!_}},V={id:`doc.command.move-inline-drawing`,type:t.CommandType.COMMAND,handler:(e,n)=>{var o,s;if(n==null)return!1;let c=e.get(a.IRenderManagerService),l=(o=c.getRenderById(n.unitId))==null?void 0:o.with(i.DocSelectionRenderService),u=e.get(w),d=c.getRenderById(n.unitId),f=d==null?void 0:d.scene,p=d==null?void 0:d.with(r.DocSkeletonManagerService).getSkeleton();if(f==null||l==null)return!1;let m=f.getTransformerByCreate(),h=e.get(t.ICommandService),g=e.get(t.IUniverInstanceService).getCurrentUniverDocInstance();if(g==null)return!1;let{drawing:_,unitId:v,offset:y,segmentId:b,segmentPage:x,needRefreshDrawings:S}=n;if(S)return u.refreshDrawings(p),m.refreshControls(),!0;let C=[],{drawingId:T}=_,E=R(b,(s=l.getSegment())==null?``:s,x,y,T,g,l);if(E==null||E.length===0)return u.refreshDrawings(p),m.refreshControls(),!1;C.push(...E);let D={id:r.RichTextEditingMutation.id,params:{unitId:v,actions:[],textRanges:null}};D.params.actions=C.reduce((e,n)=>t.JSONX.compose(e,n),null);let O=h.syncExecuteCommand(D.id,D.params);return m.refreshControls(),!!O}},ne={id:`doc.command.transform-non-inline-drawing`,type:t.CommandType.COMMAND,handler:(e,n)=>{var o,s;if(n==null)return!1;let c=e.get(a.IRenderManagerService),l=(o=c.getRenderById(n.unitId))==null?void 0:o.with(i.DocSelectionRenderService),u=c.getRenderById(n.unitId),d=u==null?void 0:u.scene;if(d==null||l==null)return!1;let f=d.getTransformerByCreate(),p=e.get(t.ICommandService),m=e.get(t.IUniverInstanceService).getCurrentUniverDocInstance();if(m==null)return!1;let{drawing:h,unitId:g,offset:_,docTransform:v,segmentId:y,segmentPage:b}=n,x=[],{drawingId:S}=h,C=R(y,(s=l.getSegment())==null?``:s,b,_,S,m,l);if(C==null)return!1;C.length>0&&x.push(...C);let w=t.JSONX.getInstance(),{drawings:T={}}=m.getSnapshot(),{positionH:E,positionV:D,size:O,angle:k}=T[S].docTransform;if(!t.Tools.diffValue(E,v.positionH)){let e=w.replaceOp([`drawings`,S,`docTransform`,`positionH`],E,v.positionH);x.push(e)}if(!t.Tools.diffValue(D,v.positionV)){let e=w.replaceOp([`drawings`,S,`docTransform`,`positionV`],D,v.positionV);x.push(e)}if(!t.Tools.diffValue(O,v.size)){let e=w.replaceOp([`drawings`,S,`docTransform`,`size`],O,v.size);x.push(e)}if(!t.Tools.diffValue(k,v.angle)){let e=w.replaceOp([`drawings`,S,`docTransform`,`angle`],k,v.angle);x.push(e)}let A={id:r.RichTextEditingMutation.id,params:{unitId:g,actions:[],textRanges:null,debounce:!0}};A.params.actions=x.reduce((e,n)=>t.JSONX.compose(e,n),null);let j=p.syncExecuteCommand(A.id,A.params);return f.refreshControls(),!!j}},H={id:`doc.command.move-drawing`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService),o=e.get(n.IDocDrawingService),s=e.get(t.IUniverInstanceService),c=e.get(a.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(e=>{var n;let{drawingId:r}=e,i=h==null||(n=h.getSnapshot().drawings)==null?void 0:n[r];if(i==null||i.layoutType===t.PositionedObjectLayoutType.INLINE)return null;let{positionH:a,positionV:o}=i.docTransform,s={...a},c={...o};if(l===t.Direction.UP){var u;c.posOffset=((u=c.posOffset)==null?0:u)-2}else if(l===t.Direction.DOWN){var d;c.posOffset=((d=c.posOffset)==null?0:d)+2}else if(l===t.Direction.LEFT){var f;s.posOffset=((f=s.posOffset)==null?0:f)-2}else if(l===t.Direction.RIGHT){var p;s.posOffset=((p=s.posOffset)==null?0:p)+2}return{drawingId:r,key:l===t.Direction.UP||l===t.Direction.DOWN?`positionV`:`positionH`,value:l===t.Direction.UP||l===t.Direction.DOWN?c:s}}).filter(e=>e!=null);if(g.length===0)return!1;let _=i.syncExecuteCommand(B.id,{unitId:d,subUnitId:d,drawings:g});return m.refreshControls(),!!_}},U={id:`doc.operation.clear-drawing-transformer`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(a.IRenderManagerService);return t.forEach(e=>{var t;(t=n.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},re=`COMPONENT_DOC_DRAWING_PANEL`,W={id:`sidebar.operation.doc-image`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=e.get(c.ISidebarService),i=e.get(t.LocaleService),a=e.get(s.IDrawingManagerService);switch(n.value){case`open`:r.open({header:{title:i.t(`docs-drawing-ui.panel.title`)},children:{label:re},onClose:()=>{a.focusDrawing(null)},width:360});break;default:r.close();break}return!0}},G={id:`doc.operation.edit-doc-image`,type:t.CommandType.OPERATION,handler:(e,n)=>{let r=e.get(s.IDrawingManagerService),i=e.get(t.ICommandService);return n==null?!1:(r.focusDrawing([n]),i.executeCommand(W.id,{value:`open`}),!0)}};function ie(e,t,n=1,r=0){let{top:a,left:o,bottom:s,right:c}=e,l=c-o,u=s-a,{viewportScrollX:d,viewportScrollY:f}=t.getViewport(i.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:r,absolute:{left:!1,top:!1},opacity:n==null?1:n}}function ae(e,t){let{top:n,left:r,width:i,height:a,angle:o,opacity:s}=e;return ie({top:n,left:r,bottom:n+a,right:r+i},t.scene,s,o)}let K=class extends t.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,C(this,`_domLayerInfoMap`,new Map),this._initialize()}dispose(){super.dispose()}_initialize(){this._drawingAddRemoveListener(),this._initScrollAndZoomEvent()}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e);if(t==null)return null;let n=t.scene;return{scene:n,transformer:n.getTransformerByCreate(),renderUnit:t,canvas:t.engine.getCanvasElement()}}_drawingAddRemoveListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{this._insertRects(e)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}_insertRects(e){e.forEach(async e=>{let{unitId:n}=e;if(!this._univerInstanceService.getUnit(n,t.UniverInstanceType.UNIVER_DOC))return;let r=this._getSceneAndTransformerByDrawingSearch(n);if(r==null)return;let i=this._drawingManagerService.getDrawingByParam(e);if(i==null)return;let a=await this._drawingRenderService.renderFloatDom(i,r.scene);if(!(a==null||a.length===0))for(let e of a){this._addHoverForRect(e);let a=new t.DisposableCollection,o=new l.BehaviorSubject(ae(e,r.renderUnit)),s=r.canvas,c=i.data,u={dispose:a,rect:e,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:c,unitId:n});let d=e.onTransformChange$.subscribeEvent(()=>{let t=ae(e,r.renderUnit);o.next(t)});a.add(()=>{this._canvasFloatDomService.removeFloatDom(i.drawingId)}),d&&a.add(d),this._domLayerInfoMap.set(i.drawingId,u)}})}_addHoverForRect(e){this.disposeWithMe((0,t.toDisposable)(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=a.CURSOR_TYPE.GRAB}))),this.disposeWithMe((0,t.toDisposable)(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=a.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 e=e=>{let t=this._getSceneAndTransformerByDrawingSearch(e);t&&this._domLayerInfoMap.forEach(n=>{if(n.unitId!==e)return;let r=ae(n.rect,t.renderUnit);n.position$.next(r)})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_DOC).pipe((0,l.map)(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t}:null}),(0,l.switchMap)(e=>e?(0,t.fromEventSubject)(e.render.scene.getViewport(i.VIEWPORT_KEY.VIEW_MAIN).onScrollAfter$).pipe((0,l.map)(()=>({unitId:e.unitId}))):(0,l.of)(null))).subscribe(t=>{if(!t)return;let{unitId:n}=t;e(n)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===i.SetDocZoomRatioOperation.id){let{unitId:n}=t.params;e(n)}}))}insertFloatDom(e,n){var a,o,s;let c=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=this._getSceneAndTransformerByDrawingSearch(c.getUnitId());if(!l)return!1;let u=(a=l.renderUnit.with(r.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,h={size:{width:(o=n.width)==null?m:o,height:n.height},positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0},angle:0},_=(s=n.drawingId)==null?(0,t.generateRandomId)():s,v={unitId:c.getUnitId(),drawings:[{drawingId:_,drawingType:t.DrawingTypeEnum.DRAWING_DOM,subUnitId:c.getUnitId(),unitId:c.getUnitId(),...e,title:``,description:``,docTransform:h,layoutType:t.PositionedObjectLayoutType.INLINE,transform:(0,i.docDrawingPositionToTransform)(h)}]};return this._commandService.syncExecuteCommand(g.id,v),_}};K=E([T(0,a.IRenderManagerService),T(1,s.IDrawingManagerService),T(2,(0,t.Inject)(u.DrawingRenderService)),T(3,(0,t.Inject)(c.CanvasFloatDomService)),T(4,t.IUniverInstanceService),T(5,t.ICommandService)],K);let q=`doc.menu.image`,J=O.id,Y=e=>{let n=e.get(r.DocSelectionManagerService),i=e.get(t.IUniverInstanceService);return new l.Observable(e=>{let t=n.textSelection$.subscribe(()=>{let t=n.getActiveTextRange();if(t){var r;let{segmentId:n,startOffset:a,endOffset:o}=t,s=i.getCurrentUniverDocInstance(),c=s==null||(r=s.getSelfOrHeaderFooterModel(n).getBody())==null?void 0:r.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 oe(e){return{id:q,type:c.MenuItemType.SUBITEMS,icon:`AddImageIcon`,tooltip:`docs-drawing-ui.title`,disabled$:Y(e),hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function X(e){return{id:J,title:`docs-drawing-ui.upload.float`,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function se(e){return{id:`${J}.below`,commandId:J,title:`docs-drawing-ui.upload.float`,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,params:{paragraphMenuPlacement:`below`},hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}let ce=`doc.command.menu-insert-shape`,Z=`doc.command.menu-insert-shape.below`;function le(e){return{id:ce,type:c.MenuItemType.SUBITEMS,icon:`ShapeIcon`,title:`docs-drawing-ui.shape.insert.title`,tooltip:`docs-drawing-ui.shape.insert.title`,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function ue(e){return{id:Z,type:c.MenuItemType.SUBITEMS,icon:`ShapeIcon`,title:`docs-drawing-ui.shape.insert.title`,tooltip:`docs-drawing-ui.shape.insert.title`,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function de(e){return{id:P.id,title:`docs-drawing-ui.shape.insert.rectangle`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function fe(e){return{id:F.id,title:`docs-drawing-ui.shape.insert.ellipse`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function pe(e){return{id:`${P.id}.below`,commandId:P.id,title:`docs-drawing-ui.shape.insert.rectangle`,type:c.MenuItemType.BUTTON,params:{paragraphMenuPlacement:`below`},hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function me(e){return{id:`${F.id}.below`,commandId:F.id,title:`docs-drawing-ui.shape.insert.ellipse`,type:c.MenuItemType.BUTTON,params:{paragraphMenuPlacement:`below`},hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}var he=`@univerjs/docs-drawing-ui`,ge=`1.0.0-alpha.1`;let _e={},ve=-1e3,ye=1e3,be=e=>{let n=(0,c.useDependency)(t.ICommandService),l=(0,c.useDependency)(t.LocaleService),u=(0,c.useDependency)(s.IDrawingManagerService),p=(0,c.useDependency)(a.IRenderManagerService),m=(0,c.useDependency)(t.IUniverInstanceService),{drawings:h}=e,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(`docs-drawing-ui.image-position.column`),value:String(t.ObjectRelativeFromH.COLUMN)},{label:l.t(`docs-drawing-ui.image-position.page`),value:String(t.ObjectRelativeFromH.PAGE)},{label:l.t(`docs-drawing-ui.image-position.margin`),value:String(t.ObjectRelativeFromH.MARGIN)}],w=[{label:l.t(`docs-drawing-ui.image-position.line`),value:String(t.ObjectRelativeFromV.LINE),disabled:y===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.page`),value:String(t.ObjectRelativeFromV.PAGE),disabled:y===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.margin`),value:String(t.ObjectRelativeFromV.MARGIN),disabled:y===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.paragraph`),value:String(t.ObjectRelativeFromV.PARAGRAPH)}],[T,E]=(0,d.useState)(!0),[D,O]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0}),[k,A]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0}),[j,M]=(0,d.useState)(!0),[N,P]=(0,d.useState)(!0);function F(e,t){var r;e===`positionH`?O(t):A(t);let a=u.getFocusDrawings();if(a.length===0)return;let o=a.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(B.id,{unitId:a[0].unitId,subUnitId:a[0].unitId,drawings:o.map(n=>({drawingId:n.drawingId,key:e,value:t}))});let s=(r=p.getRenderById(_))==null?void 0:r.with(i.DocSelectionRenderService);s&&s.blur(),S.refreshControls()}function I(e){var n;let i=D.relativeFrom,a=D.posOffset,o=Number(e);if(i===o)return;let s=u.getFocusDrawings();if(s.length===0)return;let c=s[0].drawingId,l=s[0].unitId,d=null,f=0,m=(n=p.getRenderById(l))==null?void 0:n.with(r.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)){d=n.get(c),f=t;break}let o=(y=_.get(r))==null?void 0:y.get(a);if(o!=null&&o.skeDrawings.has(c)){d=o==null?void 0:o.skeDrawings.get(c),f=t;break}let s=(b=v.get(i))==null?void 0:b.get(a);if(s!=null&&s.skeDrawings.has(c)){d=s==null?void 0:s.skeDrawings.get(c),f=t;break}}if(d==null)return;let x=0;i===t.ObjectRelativeFromH.COLUMN?x-=d.columnLeft:i===t.ObjectRelativeFromH.MARGIN&&(x-=f),o===t.ObjectRelativeFromH.COLUMN?x+=d.columnLeft:o===t.ObjectRelativeFromH.MARGIN?x+=f:t.ObjectRelativeFromH.PAGE,F(`positionH`,{relativeFrom:o,posOffset:(a==null?0:a)-x})}function L(e){var n,a,o,s,c;let l=k.relativeFrom,d=k.posOffset,f=Number(e);if(l===f)return;let h=u.getFocusDrawings();if(h.length===0)return;let{drawingId:g,unitId:_}=h[0],v=m.getUniverDocInstance(_),y=(n=p.getRenderById(_))==null?void 0:n.with(r.DocSkeletonManagerService).getSkeleton(),b=(a=p.getRenderById(_))==null?void 0:a.with(i.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===t.ObjectRelativeFromV.PARAGRAPH?j-=O.top:l===t.ObjectRelativeFromV.LINE?j-=E.top:l===t.ObjectRelativeFromV.PAGE&&(j+=A.marginTop),f===t.ObjectRelativeFromV.PARAGRAPH?j+=O.top:f===t.ObjectRelativeFromV.LINE?j+=E.top:f===t.ObjectRelativeFromV.PAGE&&(j-=A.marginTop),F(`positionV`,{relativeFrom:f,posOffset:(d==null?0:d)-j})}function R(e){var n;let r=v==null?void 0:v.getSnapshot(),i=r==null||(n=r.drawings)==null?void 0:n[e.drawingId];if(i==null)return;let{layoutType:a}=i,{positionH:o,positionV:s}=i.docTransform;O(o),A(s),E(a===t.PositionedObjectLayoutType.INLINE),M(s.relativeFrom===t.ObjectRelativeFromV.PARAGRAPH||s.relativeFrom===t.ObjectRelativeFromV.LINE)}function z(){let e=u.getFocusDrawings();e.length!==0&&R(e[0])}function ee(e){M(e),L(String(e?t.ObjectRelativeFromV.PARAGRAPH:t.ObjectRelativeFromV.PAGE))}return(0,d.useEffect)(()=>{z();let e=u.focus$.subscribe(e=>{if(e.length===0){P(!1);return}P(!0),R(e[0])}),t=n.onCommandExecuted(async e=>{e.id===r.RichTextEditingMutation.id&&z()});return()=>{e.unsubscribe(),t.dispose()}},[]),(0,f.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!N}),children:[(0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:l.t(`docs-drawing-ui.image-position.title`)})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:l.t(`docs-drawing-ui.image-position.horizontal`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:l.t(`docs-drawing-ui.image-position.absolutePosition`)}),(0,f.jsx)(o.InputNumber,{min:ve,max:ye,precision:1,disabled:T,value:D.posOffset,onChange:e=>{F(`positionH`,{relativeFrom:D.relativeFrom,posOffset:e})}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:l.t(`docs-drawing-ui.image-position.toTheRightOf`)}),(0,f.jsx)(o.Select,{value:String(D.relativeFrom),disabled:T,options:C,onChange:I})]})]}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:l.t(`docs-drawing-ui.image-position.vertical`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:l.t(`docs-drawing-ui.image-position.absolutePosition`)}),(0,f.jsx)(o.InputNumber,{min:ve,max:ye,precision:1,disabled:T,value:k.posOffset,onChange:e=>{F(`positionV`,{relativeFrom:k.relativeFrom,posOffset:e})}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:l.t(`docs-drawing-ui.image-position.bellow`)}),(0,f.jsx)(o.Select,{disabled:T,value:String(k.relativeFrom),options:w,onChange:L})]})]}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:l.t(`docs-drawing-ui.image-position.options`)})}),(0,f.jsx)(`div`,{children:(0,f.jsx)(o.Checkbox,{disabled:T,checked:j,onChange:ee,children:l.t(`docs-drawing-ui.image-position.moveObjectWithText`)})})]})},xe=e=>{let n=(0,c.useDependency)(t.ICommandService),i=(0,c.useDependency)(t.LocaleService),l=(0,c.useDependency)(s.IDrawingManagerService),u=(0,c.useDependency)(a.IRenderManagerService),p=(0,c.useDependency)(t.IUniverInstanceService),{drawings:m}=e,h=m[0];if(h==null)return null;let{unitId:g}=h,_=p.getUniverDocInstance(g),v=u.getRenderById(g);if((v==null?void 0:v.scene)==null)return null;let[y,b]=(0,d.useState)(!0),[x,S]=(0,d.useState)(!0),[C,w]=(0,d.useState)(!0),[T,E]=(0,d.useState)(`inline`),[D,O]=(0,d.useState)(``),[k,A]=(0,d.useState)({distT:0,distL:0,distB:0,distR:0}),[j,M]=(0,d.useState)(!0);function N(e){E(e);let t=l.getFocusDrawings();if(t.length===0)return;let{unitId:r,subUnitId:i}=t[0],a=t.map(({unitId:e,subUnitId:t,drawingId:n})=>({unitId:e,subUnitId:t,drawingId:n}));n.executeCommand(z.id,{unitId:r,subUnitId:i,drawings:a,wrappingStyle:e})}function P(e){O(e);let t=l.getFocusDrawings();if(t.length===0)return;let r=t.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(te.id,{unitId:t[0].unitId,subUnitId:t[0].unitId,drawings:r,wrapText:e})}function F(e,t){if(e==null)return;A({...k,[t]:e});let r=l.getFocusDrawings();if(r.length===0)return;let i=r.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(ee.id,{unitId:r[0].unitId,subUnitId:r[0].unitId,drawings:i,dist:{[t]:e}})}function I(){let e=l.getFocusDrawings();e.length!==0&&L(e[0])}function L(e){var n;let r=_==null||(n=_.getSnapshot())==null||(n=n.drawings)==null?void 0:n[e.drawingId];if(r==null)return;let{distT:i=0,distL:a=0,distB:o=0,distR:s=0,layoutType:c=t.PositionedObjectLayoutType.INLINE,behindDoc:l=t.BooleanNumber.FALSE,wrapText:u=t.WrapTextType.BOTH_SIDES}=r;if(A({distT:i,distL:a,distB:o,distR:s}),O(u),b(c!==t.PositionedObjectLayoutType.WRAP_SQUARE),c===t.PositionedObjectLayoutType.WRAP_NONE||c===t.PositionedObjectLayoutType.INLINE?S(!0):S(!1),c===t.PositionedObjectLayoutType.WRAP_NONE||c===t.PositionedObjectLayoutType.INLINE||c===t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM?w(!0):w(!1),c===t.PositionedObjectLayoutType.WRAP_NONE)l===t.BooleanNumber.TRUE?E(`behindText`):E(`inFrontOfText`);else switch(c){case t.PositionedObjectLayoutType.INLINE:E(`inline`);break;case t.PositionedObjectLayoutType.WRAP_SQUARE:E(`wrapSquare`);break;case t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM:E(`wrapTopAndBottom`);break;default:throw Error(`Unsupported layout type: ${c}`)}}return(0,d.useEffect)(()=>{I();let e=l.focus$.subscribe(e=>{if(e.length===0){M(!1);return}M(!0),L(e[0])}),t=n.onCommandExecuted(async e=>{e.id===r.RichTextEditingMutation.id&&I()});return()=>{e.unsubscribe(),t.dispose()}},[]),(0,f.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!j}),children:[(0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.title`)})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.wrappingStyle`)})}),(0,f.jsx)(`div`,{children:(0,f.jsxs)(o.RadioGroup,{value:T,onChange:N,direction:`vertical`,children:[(0,f.jsx)(o.Radio,{value:`inline`,children:i.t(`docs-drawing-ui.image-text-wrap.inline`)}),(0,f.jsx)(o.Radio,{value:`wrapSquare`,children:i.t(`docs-drawing-ui.image-text-wrap.square`)}),(0,f.jsx)(o.Radio,{value:`wrapTopAndBottom`,children:i.t(`docs-drawing-ui.image-text-wrap.topAndBottom`)}),(0,f.jsx)(o.Radio,{value:`behindText`,children:i.t(`docs-drawing-ui.image-text-wrap.behindText`)}),(0,f.jsx)(o.Radio,{value:`inFrontOfText`,children:i.t(`docs-drawing-ui.image-text-wrap.inFrontText`)})]})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.wrapText`)})}),(0,f.jsx)(`div`,{children:(0,f.jsxs)(o.RadioGroup,{disabled:y,value:D,onChange:P,direction:`horizontal`,children:[(0,f.jsx)(o.Radio,{value:t.WrapTextType.BOTH_SIDES,children:i.t(`docs-drawing-ui.image-text-wrap.bothSide`)}),(0,f.jsx)(o.Radio,{value:t.WrapTextType.LEFT,children:i.t(`docs-drawing-ui.image-text-wrap.leftOnly`)}),(0,f.jsx)(o.Radio,{value:t.WrapTextType.RIGHT,children:i.t(`docs-drawing-ui.image-text-wrap.rightOnly`)})]})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.distanceFromText`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.top`)}),(0,f.jsx)(o.InputNumber,{min:0,max:100,disabled:x,precision:1,value:k.distT,onChange:e=>{F(e,`distT`)}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.left`)}),(0,f.jsx)(o.InputNumber,{min:0,max:100,disabled:C,precision:1,value:k.distL,onChange:e=>{F(e,`distL`)}})]})]}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.bottom`)}),(0,f.jsx)(o.InputNumber,{min:0,max:100,disabled:x,precision:1,value:k.distB,onChange:e=>{F(e,`distB`)}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.right`)}),(0,f.jsx)(o.InputNumber,{min:0,max:100,disabled:C,precision:1,value:k.distR,onChange:e=>{F(e,`distR`)}})]})]})]})},Se=()=>{let e=(0,c.useDependency)(s.IDrawingManagerService),[t,n]=(0,d.useState)(e.getFocusDrawings());return(0,d.useEffect)(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&(0,f.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,f.jsx)(u.DrawingCommonPanel,{drawings:t,hasAlign:!1,hasCropper:!0,hasGroup:!1,hasTransform:!1}),(0,f.jsx)(xe,{drawings:t}),(0,f.jsx)(be,{drawings:t})]})},Ce=class extends t.Disposable{constructor(e){super(),this._componentManager=e,this._registerComponents()}_registerComponents(){this.disposeWithMe(this._componentManager.register(re,Se))}};Ce=E([T(0,(0,t.Inject)(c.ComponentManager))],Ce);function we(e){if(t.JSONX.isNoop(e)||!Array.isArray(e))return null;let n=e.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 Te(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 Ee=class extends t.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!==r.RichTextEditingMutation.id)return;let{unitId:t,actions:n,isSync:i,syncer:a}=e.params,o=we(n);if(o!=null)for(let{type:e,drawingId:n,drawing:r}of o)i&&(r==null?void 0:r.unitId)===a||(e===`add`?this._addDrawings(t,[r]):this._removeDrawings(t,[n]))})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==r.RichTextEditingMutation.id)return;let{unitId:t,actions:n}=e.params;Te(n).length>0&&this._updateDrawingsOrder(t)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var n;if(e.id!==t.UndoCommand.id&&e.id!==t.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{drawings:r,drawingsOrder:i}=t.getSnapshot();if(i==null)return;let a=(0,n.getDocDrawingRenderOrder)(i,r),o=this._drawingManagerService,s=this._docDrawingService;o.setDrawingOrder(e,e,a),s.setDrawingOrder(e,e,i);let c={unitId:e,subUnitId:e,drawingIds:a};o.orderNotification(c),s.orderNotification({unitId:e,subUnitId:e,drawingIds:i})}};Ee=E([T(0,t.IUniverInstanceService),T(1,t.ICommandService),T(2,s.IDrawingManagerService),T(3,n.IDocDrawingService),T(4,a.IRenderManagerService)],Ee);let De=e=>{let{floatDomInfos:t,scene:n,offset:r,bound:i}=e,a=i.right-i.left,o=i.bottom-i.top;return(0,f.jsx)(`div`,{className:`univer-absolute univer-left-0 univer-top-0`,children:(0,d.useMemo)(()=>t.map(e=>{let{width:t=0,height:r=0,left:i=0,top:a=0}=e.transform,o=ie({left:i,right:i+t,top:a,bottom:a+r},n),s={position$:new l.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,f.jsx)(c.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})};function Oe(e,t,n){return(0,o.render)((0,f.jsx)((0,c.connectInjector)(De,n),{...e}),t),()=>(0,o.unmount)(t)}let ke=class extends t.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:(e,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(e=>{let n=s.data[e];n.drawingType!==t.DrawingTypeEnum.DRAWING_CHART&&n.drawingType!==t.DrawingTypeEnum.DRAWING_DOM&&this._drawingRenderService.renderDrawing(n,a)}),r()}}))}_initPrintingDom(){this.disposeWithMe(this._docPrintInterceptorService.interceptor.intercept(this._docPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,n,r)=>{let{unitId:i}=n,a=this._drawingManagerService.getDrawingDataForUnit(i),o=a==null?void 0:a[i];if(o){let a=Oe({unitId:i,floatDomInfos:o.order.map(e=>{let n=o.data[e];if(n.drawingType===t.DrawingTypeEnum.DRAWING_CHART)return{...n,componentKey:this._componetManager.get(t.DOC_DRAWING_PRINTING_COMPONENT_KEY)};if(n.drawingType===t.DrawingTypeEnum.DRAWING_DOM){let e=this._docPrintInterceptorService.getPrintComponent(n.componentKey);return{...n,componentKey:this._componetManager.get(e||n.componentKey)}}return null}).filter(Boolean),scene:n.scene,skeleton:n.skeleton,offset:n.offset,bound:n.bound},n.root,this._injector);return e==null||e.add(()=>{a()}),r(e)}}}))}};ke=E([T(0,(0,t.Inject)(i.DocPrintInterceptorService)),T(1,(0,t.Inject)(u.DrawingRenderService)),T(2,s.IDrawingManagerService),T(3,(0,t.Inject)(c.ComponentManager)),T(4,(0,t.Inject)(t.Injector))],ke);function Ae(e){let{docsLeft:t,docsTop:n,pageOffsetLeft:r,pageOffsetTop:i,clipOffsetLeft:a=0,clipOffsetTop:o=0,page:s}=e,{pageWidth:c,pageHeight:l}=s;if(!(!Number.isFinite(c)||!Number.isFinite(l)||c<=0||l<=0))return{left:t+r+a,top:n+i+o,width:c,height:l}}function je(e){let{drawing:t,hostPage:n,page:r}=e;if(n==null||t.behindText!==!0||t.transform==null)return r;let{width:i,height:a}=t.transform;if(i==null||a==null)return r;if(i>r.pageWidth||a>r.pageHeight)return n;let o=i/n.pageWidth,s=a/n.pageHeight;return o>=.8&&s>=.8?n:r}function Me(e){let{hostPage:n,positionH:r,width:i}=e;if(r.relativeFrom===t.ObjectRelativeFromH.PAGE)return r.align===t.AlignTypeH.RIGHT?n.pageWidth-i:r.align===t.AlignTypeH.CENTER?n.pageWidth/2-i/2:r.posOffset==null?0:r.posOffset}function Ne(e){let{hostPage:n,positionV:r,height:i}=e;if(r.relativeFrom===t.ObjectRelativeFromV.PAGE)return r.align===t.AlignTypeV.BOTTOM?n.pageHeight-i:r.align===t.AlignTypeV.CENTER?n.pageHeight/2-i/2:r.posOffset==null?0:r.posOffset}function Pe(e){let{page:t,clipPage:n,hostPage:r}=e;if(r!=null&&r===n)return r;if(r==null&&t===n)return t}function Fe(e){let{drawingOrigin:n,hostPage:r}=e;return r==null?n.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&n.behindDoc===t.BooleanNumber.TRUE:!0}function Ie(e,t,n,r){let i=(0,a.getTableIdAndSliceIndex)(t.tableId).tableId,o=(0,a.getDocsTableRenderViewport)(e,i),s=Le(o)?o.scrollLeft:0;return{left:t.left+r.left-s+r.marginLeft,top:t.top+n.top+r.marginTop}}function Le(e){var t,n;return e!=null&&((t=e.leadingInsetLeft)==null?0:t)+e.contentWidth+((n=e.trailingInsetRight)==null?0:n)>e.viewportWidth}let Re=class extends t.Disposable{constructor(e,t,n,r,i,o,s,c){super(),this._context=e,this._docSkeletonManagerService=t,this._commandService=n,this._editorService=r,this._drawingManagerService=i,this._docRefreshDrawingsService=o,this._univerInstanceService=s,this._lifecycleService=c,C(this,`_liquid`,new a.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 e=[r.RichTextEditingMutation.id,i.SetDocZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(e.includes(t.id)){let{unitId:e}=t.params,{unitId:n,mainComponent:r}=this._context;if(e!==n)return;let i=this._docSkeletonManagerService.getSkeleton();if(i==null)return;if(this._editorService.isEditor(n)){r==null||r.makeDirty();return}this._refreshDrawing(i)}}))}_initResize(){this.disposeWithMe((0,t.fromEventSubject)(this._context.engine.onTransformChange$).pipe((0,l.filter)(e=>e.type===a.TRANSFORM_CHANGE_OBSERVABLE_TYPE.resize),(0,l.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;if(a<=-1e4||o<=-1e4)return;let{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,t),this._calculateTableCellDrawingPositions(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);if(e){let n=t.pageHeight-t.marginBottom+e.marginTop;this._calculateDrawingPosition(r,e,a,o,p,n,t.marginLeft,t),this._calculateTableCellDrawingPositions(r,e,a,o,p,n,t.marginLeft)}}this._calculateDrawingPosition(r,t,a,o,p,t.marginTop,t.marginLeft),this._calculateTableCellDrawingPositions(r,t,a,o,p,t.marginTop,t.marginLeft),this._liquid.translatePage(t,s,c,l)}let g=Object.values(p);for(let e of g)e.hidden=!1;let _=this._getStaleNonMultiDrawings(r,p),v=g.filter(e=>!e.isMultiTransform).concat(_),y=g.filter(e=>e.isMultiTransform);v.length>0&&this._drawingManagerService.refreshTransform(v),this._handleMultiDrawingsTransform(y)}_getStaleNonMultiDrawings(e,n){var r;let i=(r=this._drawingManagerService.getDrawingData(e,e))==null?{}:r;return Object.values(i).filter(e=>e.isMultiTransform!==t.BooleanNumber.TRUE).filter(e=>n[e.drawingId]==null).map(n=>{var r,i;return{unitId:e,subUnitId:e,drawingId:n.drawingId,behindText:!1,hidden:!0,transform:n.transform,transforms:(r=n.transforms)==null?[]:r,isMultiTransform:(i=n.isMultiTransform)==null?t.BooleanNumber.FALSE:i}})}_handleMultiDrawingsTransform(e){let{scene:n,unitId:r}=this._context,i=n.getTransformerByCreate();e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);t!=null&&(t.transform=e.transform,t.transforms=e.transforms,t.isMultiTransform=e.isMultiTransform)});let a=[...i.getSelectedObjectMap().keys()],o=Object.values(this._drawingManagerService.getDrawingData(r,r)).filter(e=>e.isMultiTransform===t.BooleanNumber.TRUE);this._drawingManagerService.removeNotification(o),e.length>0&&this._drawingManagerService.addNotification(e);for(let e of a){let t=n.getObject(e);t&&i.setSelectedControl(t)}}_calculateDrawingPosition(e,n,r,i,a,o,s,c,l){let{skeDrawings:u}=n,d=this._liquid.x,f=this._liquid.y;this._liquid.translatePagePadding({marginTop:o,marginLeft:s}),u.forEach(o=>{let{aLeft:s,aTop:u,height:p,width:m,angle:h,drawingId:g,drawingOrigin:_}=o,v=Fe({drawingOrigin:_,hostPage:c}),{isMultiTransform:y=t.BooleanNumber.FALSE}=_,b=je({drawing:{behindText:v,transform:{width:m,height:p}},hostPage:c,page:n}),x=Ae({docsLeft:r,docsTop:i,pageOffsetLeft:d,pageOffsetTop:f,clipOffsetLeft:l==null?void 0:l.left,clipOffsetTop:l==null?void 0:l.top,page:b}),S=_.layoutType===t.PositionedObjectLayoutType.INLINE?void 0:Pe({page:n,clipPage:b,hostPage:c}),C=S==null?void 0:Me({hostPage:S,positionH:_.docTransform.positionH,width:m}),w=S==null?void 0:Ne({hostPage:S,positionV:_.docTransform.positionV,height:p}),T={left:(C==null?s:C)+r+(C==null?this._liquid.x:d),top:(w==null?u:w)+i+(w==null?this._liquid.y:f),width:m,height:p,angle:h,clipBounds:x};a[g]==null?a[g]={unitId:e,subUnitId:e,drawingId:g,behindText:v,transform:T,transforms:[T],isMultiTransform:y}:y===t.BooleanNumber.TRUE&&a[g].transforms.push(T)}),this._liquid.restorePagePadding({marginTop:o,marginLeft:s})}_calculateTableCellDrawingPositions(e,t,n,r,i,a,o){var s;(s=t.skeTables)==null||s.forEach(t=>{t.rows.forEach(s=>{s.cells.forEach(c=>{let l=Ie(e,t,s,c),u=a+l.top,d=o+l.left;this._calculateDrawingPosition(e,c,n,r,i,u,d,void 0,{left:d,top:u}),this._calculateTableCellDrawingPositions(e,c,n,r,i,u,d)})})})}_drawingInitializeListener(){let e=()=>{let e=this._docSkeletonManagerService.getSkeleton();e!=null&&(this._drawingManagerService.initializeNotification(this._context.unitId),this._refreshDrawing(e))};this._lifecycleService.stage>=t.LifecycleStages.Rendered?this._docSkeletonManagerService.getSkeleton()?e():setTimeout(e,500):this.disposeWithMe(this._lifecycleService.lifecycle$.pipe((0,l.filter)(e=>e===t.LifecycleStages.Rendered)).subscribe(e))}};Re=E([T(1,(0,t.Inject)(r.DocSkeletonManagerService)),T(2,t.ICommandService),T(3,i.IEditorService),T(4,s.IDrawingManagerService),T(5,(0,t.Inject)(w)),T(6,t.IUniverInstanceService),T(7,(0,t.Inject)(t.LifecycleService))],Re);function ze(e,t){var n;let r=t.parent,i=r==null?void 0:r.parent,a=i==null?void 0:i.parent;return!r||!i||!a||!((n=r.cells)!=null&&n.includes(t))?null:{cell:t,hostPage:a,offset:Ie(e,i,r,t),row:r,table:i}}let Be=class extends t.Disposable{constructor(e,t,n,r){super(),this._commandService=e,this._univerInstanceService=t,this._drawingManagerService=n,this._renderManagerService=r,C(this,`_liquid`,new a.Liquid),C(this,`_listenerOnImageMap`,new Set),C(this,`_transformerCache`,new Map),C(this,`_anchorShape`,void 0),this._init()}_init(){this._listenDrawingFocus()}_listenDrawingFocus(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{if(e.length!==0)for(let t of e){let{unitId:e}=t;this._listenerOnImageMap.has(e)||(this._listenTransformerChange(e),this._listenerOnImageMap.add(e))}}))}_listenTransformerChange(e){var n;let r=(n=this._getSceneAndTransformerByDrawingSearch(e))==null?void 0:n.transformer;if(r==null)return;this.disposeWithMe((0,t.toDisposable)(r.changeStart$.subscribe(e=>{this._transformerCache.clear();let{objects:n}=e;for(let e of n.values()){var r;let{oKey:n,width:i,height:a,left:o,top:s,angle:c}=e,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)===t.PositionedObjectLayoutType.INLINE)try{e.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,t.throttle)(this._updateMultipleDrawingDocTransform.bind(this),50);(0,t.throttle)(this._nonInlineDrawingTransform.bind(this),50),this.disposeWithMe((0,t.toDisposable)(r.changing$.subscribe(e=>{let{objects:n,offsetX:r,offsetY:a}=e;if(n.size>1)i(n);else if(n.size===1){let e=this._transformerCache.values().next().value,{width:i,height:o,top:s,left:c,angle:l}=n.values().next().value;if(e&&i===e.width&&o===e.height&&s===e.top&&c===e.left&&l===e.angle)return;e&&(e.drawing.layoutType,t.PositionedObjectLayoutType.INLINE),e&&e.drawing.layoutType===t.PositionedObjectLayoutType.INLINE&&r!=null&&a!=null&&this._updateInlineDrawingAnchor(e.drawing,r,a)}}))),this.disposeWithMe((0,t.toDisposable)(r.changeEnd$.subscribe(e=>{let{objects:n,offsetX:r,offsetY:i}=e;for(let e of n.values()){let n=this._drawingManagerService.getDrawingOKey(e.oKey);if(n==null)continue;let r=this._transformerCache.get(n==null?void 0:n.drawingId);if((r==null?void 0:r.drawing.layoutType)===t.PositionedObjectLayoutType.INLINE)try{e.setOpacity(1)}catch{}}if(this._anchorShape&&this._anchorShape.hide(),n.size>1)this._updateMultipleDrawingDocTransform(n);else if(n.size===1){let e=this._transformerCache.values().next().value,a=n.values().next().value,{width:o,height:s,top:c,left:l,angle:u}=a;if(e&&o===e.width&&s===e.height&&c===e.top&&l===e.left&&u===e.angle)return;e&&e.drawing.layoutType===t.PositionedObjectLayoutType.INLINE?o!==e.width||s!==e.height||u!==e.angle?this._updateDrawingSize(e,a):r!=null&&i!=null&&this._moveInlineDrawing(e.drawing,r,i):e&&this._nonInlineDrawingTransform(e.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(B.id,{unitId:n,subUnitId:r,drawings:t})}_updateDrawingAnchor(e){if(this._transformerCache.size!==1)return;let t=this._transformerCache.values().next().value,n=e.values().next().value;this._getDrawingAnchor(t.drawing,n)}_updateInlineDrawingAnchor(e,t,n){var r;if(this._transformerCache.size!==1)return;let{contentBoxPointGroup:i}=(r=this._getInlineDrawingAnchor(e,t,n))==null?{}:r;i!=null&&this._createOrUpdateInlineAnchor(e.unitId,i)}_getInlineDrawingAnchor(e,t,n){var o,s;let c=this._renderManagerService.getRenderById(e.unitId),l=c==null?void 0:c.with(r.DocSkeletonManagerService).getSkeleton();if(c==null)return;let{mainComponent:u,scene:d}=c,f=u,p=d.getViewports()[0],{pageLayoutType:m=a.PageLayoutType.VERTICAL,pageMarginLeft:h,pageMarginTop:g}=f.getOffsetConfig(),_=null,v=!1,y=-1,b=``,x=this._getTransformCoordForDocumentOffset(f,p,t,n);if(x==null)return;let S=(o=this._renderManagerService.getRenderById(e.unitId))==null?void 0:o.with(i.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)return;let E={...w,isBack:v},{cursorList:D,contentBoxPointGroup:O}=new i.NodePositionConvertToCursor(T.document.getOffsetConfig(),l).getRangePointData(E,E),{startOffset:k}=(s=(0,i.getOneTextSelectionRange)(D))==null?{}:s;if(k!=null)return{offset:k,contentBoxPointGroup:O,segmentId:b,segmentPage:y}}_getDrawingAnchor(e,n){var o,s,c,l,u,d;let f=this._renderManagerService.getRenderById(e.unitId),p=f==null?void 0:f.with(r.DocSkeletonManagerService).getSkeleton(),m=p==null?void 0:p.getSkeletonData();if(m==null||f==null)return;let{pages:h,skeHeaders:g,skeFooters:_}=m,{mainComponent:v,scene:y}=f,b=v,x=y.getViewports()[0],{pageLayoutType:S=a.PageLayoutType.VERTICAL,pageMarginLeft:C,pageMarginTop:w,docsLeft:T,docsTop:E}=b.getOffsetConfig(),{left:D,top:O,angle:k}=n,{width:A,height:j}=n,{positionV:M,positionH:N}=e.docTransform,{width:P,height:F}=this._getPageContentSize(e);A=Math.min(A,P),j=Math.min(j,F);let I=null,L=``,R=-1,z={...e.docTransform,size:{width:A,height:j},angle:k},{x:ee,y:te}=y.getViewportScrollXY(x),B=this._getTransformCoordForDocumentOffset(b,x,D-ee,O-te);if(B==null)return;let V=(o=this._renderManagerService.getRenderById(e.unitId))==null?void 0:o.with(i.DocSelectionRenderService);if(V==null)return;let ne=p==null?void 0:p.findNodeByCoord(B,S,C,w,{strict:!1,segmentId:V.getSegment(),segmentPage:V.getSegmentPage()});if(ne){let{node:e,segmentPage:t,segmentId:n}=ne;I=e,R=t,L=n}if(I==null)return;let H=(s=I.parent)==null?void 0:s.parent,U=H==null?void 0:H.parent,re=(c=U==null?void 0:U.lines.find(e=>e.paragraphIndex===(H==null?void 0:H.paragraphIndex)&&e.paragraphStart))==null?U==null?void 0:U.lines[0]:c,W=U==null||(l=U.parent)==null?void 0:l.parent;if(H==null||U==null||re==null||W==null)return;this._liquid.reset();let G=W.type===a.DocumentSkeletonPageType.CELL?ze(e.unitId,W):null,ie=(u=G==null?void 0:G.hostPage)==null?W:u,ae=ie.type;for(let e of h){let{headerId:t,footerId:n,pageHeight:r,pageWidth:i,marginLeft:o,marginBottom:s}=e,c=h.indexOf(e);if(R>-1&&c===R){switch(ae){case a.DocumentSkeletonPageType.HEADER:{var K;let e=(K=g.get(t))==null?void 0:K.get(i);if(e)this._liquid.translatePagePadding({marginTop:e.marginTop,marginLeft:o});else throw Error(`header skeleton not found`);break}case a.DocumentSkeletonPageType.FOOTER:{var q;let e=(q=_.get(n))==null?void 0:q.get(i);if(e)this._liquid.translatePagePadding({marginTop:r-s+e.marginTop,marginLeft:o});else throw Error(`footer skeleton not found`);break}default:this._liquid.translatePagePadding(e);break}break}if(this._liquid.translatePagePadding(e),e===ie)break;this._liquid.restorePagePadding(e),this._liquid.translatePage(e,S,C,w)}if(G&&this._liquid.translate(G.offset.left,G.offset.top),M.relativeFrom===t.ObjectRelativeFromV.LINE)I=H.divides[0].glyphGroup[0];else{var J,Y;I=(J=(Y=re.divides)==null||(Y=Y[0])==null||(Y=Y.glyphGroup)==null?void 0:Y[0])==null?I:J}switch(z.positionH={relativeFrom:N.relativeFrom,posOffset:D-this._liquid.x-T},N.relativeFrom){case t.ObjectRelativeFromH.MARGIN:z.positionH.posOffset=D-this._liquid.x-T-W.marginLeft;break;case t.ObjectRelativeFromH.COLUMN:z.positionH.posOffset=D-this._liquid.x-T-U.left;break}switch(z.positionV={relativeFrom:M.relativeFrom,posOffset:O-this._liquid.y-E},M.relativeFrom){case t.ObjectRelativeFromV.PAGE:z.positionV.posOffset=O-this._liquid.y-E-W.marginTop;break;case t.ObjectRelativeFromV.LINE:z.positionV.posOffset=O-this._liquid.y-E-H.top;break;case t.ObjectRelativeFromV.PARAGRAPH:z.positionV.posOffset=O-this._liquid.y-E-re.top;break}if(I==null)return;let oe=p==null?void 0:p.findPositionByGlyph(I,R),X=this._getDocObject();if(oe==null||p==null||X==null)return;let se={...oe,isBack:!1},{cursorList:ce}=new i.NodePositionConvertToCursor(X.document.getOffsetConfig(),p).getRangePointData(se,se),{startOffset:Z}=(d=(0,i.getOneTextSelectionRange)(ce))==null?{}:d;if(Z!=null)return{offset:Z,docTransform:z,segmentId:L,segmentPage:R}}_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(B.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(V.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:i,segmentId:a,segmentPage:o,needRefreshDrawings:i==null})}_limitDrawingInPage(e,n){let i=this._renderManagerService.getRenderById(e.unitId),{left:a,top:o,width:s,height:c,angle:l}=n,u=i==null?void 0:i.with(r.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 e of f){let{marginBottom:n,pageHeight:r}=e,i=f[f.indexOf(e)+1];i!=null&&(t.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(e,h,g,_))}return{left:a,top:v,width:s,height:c,angle:l}}_nonInlineDrawingTransform(e,n,r=!1){let i=e.isMultiTransform===t.BooleanNumber.TRUE?n:this._limitDrawingInPage(e,n);if(r&&i.top!==n.top)return;let a=this._getDrawingAnchor(e,i),{offset:o,docTransform:s,segmentId:c,segmentPage:l}=a==null?{}:a;return o==null||s==null?this._updateMultipleDrawingDocTransform(new Map([[e.drawingId,n]])):this._commandService.executeCommand(ne.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:o,docTransform:s,segmentId:c,segmentPage:l})}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;if(n!=null)return{scene:n,transformer:n.getTransformerByCreate()}}_getTransformCoordForDocumentOffset(e,t,n,r){let{documentTransform:i}=e.getOffsetConfig(),o=t.transformVector2SceneCoord(a.Vector2.FromArray([n,r]));if(o)return i.clone().invert().applyPoint(o)}_createOrUpdateInlineAnchor(e,n){let r=this._renderManagerService.getRenderById(e);if(r==null)return;let{mainComponent:o,scene:s}=r,{docsLeft:c,docsTop:l}=o.getOffsetConfig(),{left:u,top:d,height:f}=(0,i.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 a.Rect(`__InlineDrawingAnchor__`+(0,t.generateRandomId)(6),{left:p,top:m,height:f,strokeWidth:2,stroke:(0,a.getColor)(t.COLORS.darkgray,1),evented:!1});this._anchorShape=h,s.addObject(h,i.TEXT_RANGE_LAYER_INDEX)}_getDocObject(){return(0,i.getDocObject)(this._univerInstanceService,this._renderManagerService)}_getPageContentSize(e){let t=this._renderManagerService.getRenderById(e.unitId),n=t==null?void 0:t.with(r.DocSkeletonManagerService).getSkeleton(),i=n==null?void 0:n.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}}};Be=E([T(0,t.ICommandService),T(1,t.IUniverInstanceService),T(2,s.IDrawingManagerService),T(3,a.IRenderManagerService)],Be);let Ve={[c.RibbonInsertGroup.MEDIA]:{[q]:{order:0,menuItemFactory:oe,[J]:{order:0,menuItemFactory:X}}},[c.ContextMenuPosition.PARAGRAPH]:{[c.ContextMenuGroup.LAYOUT]:{[i.INSERT_BELLOW_MENU_ID]:{[J]:{order:5,menuItemFactory:X}}},[i.EMPTY_PARAGRAPH_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[J]:{order:5,menuItemFactory:X}}},[i.DOC_CONTENT_INSERT_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[J]:{order:5,menuItemFactory:X}}},[i.DOC_PARAGRAPH_T_INSERT_MENU_ID]:{insert:{[J]:{order:1,menuItemFactory:X},[ce]:{order:2,menuItemFactory:le}}},[i.DOC_PARAGRAPH_T_INSERT_BELOW_MENU_ID]:{insert:{[`${J}.below`]:{order:1,menuItemFactory:se},[Z]:{order:2,menuItemFactory:ue}}},[ce]:{shapes:{order:0,[P.id]:{order:0,menuItemFactory:de},[F.id]:{order:1,menuItemFactory:fe}}},[Z]:{shapes:{order:0,[`${P.id}.below`]:{order:0,menuItemFactory:pe},[`${F.id}.below`]:{order:1,menuItemFactory:me}}}}};function Q(e){return e.getContextValue(t.FOCUSING_DOC)&&e.getContextValue(t.FOCUSING_UNIVER_EDITOR)&&e.getContextValue(t.FOCUSING_COMMON_DRAWINGS)}let He={id:H.id,description:`docs-drawing-ui.shortcut.drawing-move-down`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,binding:c.KeyCode.ARROW_DOWN,priority:100,preconditions:Q,staticParameters:{direction:t.Direction.DOWN}},Ue={id:H.id,description:`docs-drawing-ui.shortcut.drawing-move-up`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,binding:c.KeyCode.ARROW_UP,priority:100,preconditions:Q,staticParameters:{direction:t.Direction.UP}},We={id:H.id,description:`docs-drawing-ui.shortcut.drawing-move-left`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,binding:c.KeyCode.ARROW_LEFT,priority:100,preconditions:Q,staticParameters:{direction:t.Direction.LEFT}},Ge={id:H.id,description:`docs-drawing-ui.shortcut.drawing-move-right`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,binding:c.KeyCode.ARROW_RIGHT,priority:100,preconditions:Q,staticParameters:{direction:t.Direction.RIGHT}},Ke={id:m.id,description:`docs-drawing-ui.shortcut.drawing-delete`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,preconditions:Q,binding:c.KeyCode.DELETE,mac:c.KeyCode.BACKSPACE},qe=class extends t.Disposable{constructor(e,t,n){super(),this._menuManagerService=e,this._commandService=t,this._shortcutService=n,this._init()}_initCustomComponents(){}_initMenus(){this._menuManagerService.mergeMenu(Ve)}_initCommands(){[O,P,F,g,z,ee,te,B,V,ne,p,W,U,G,h,y,H,m,v].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[He,Ue,We,Ge,Ke].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};qe=E([T(0,c.IMenuManagerService),T(1,t.ICommandService),T(2,c.IShortcutService)],qe);let Je=class extends t.RxDisposable{constructor(e,t,n,r,i,a){super(),this._drawingManagerService=e,this._canvasPopManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._contextService=i,this._commandService=a,C(this,`_initImagePopupMenu`,new Set),C(this,`_disposePopups`,[]),C(this,`_isDrawingPanelOpen`,!1),this._init()}_init(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===G.id&&(this._isDrawingPanelOpen=!0,this._clearPopups()),e.id===W.id){let t=e.params;this._isDrawingPanelOpen=(t==null?void 0:t.value)===`open`,this._isDrawingPanelOpen&&this._clearPopups()}})),this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e.length===0&&(this._isDrawingPanelOpen=!1)})),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_DOC).pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>this._create(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_DOC).pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>this._dispose(e))),this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_DOC).forEach(e=>this._create(e))}_dispose(e){let t=e.getUnitId();this._clearPopups(),this._renderManagerService.removeRender(t)}_clearPopups(){this._disposePopups.forEach(e=>e.dispose()),this._disposePopups.length=0}_create(e){if(!e)return;let n=e.getUnitId();(0,t.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 u.ImageCropperObject)return!0;return!1}_popupMenuListener(e){var n;let r=(n=this._renderManagerService.getRenderById(e))==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 e=i.getSelectedObjectMap();if(a.forEach(e=>e.dispose()),a.length=0,this._isDrawingPanelOpen||e.size>1)return;let n=e.values().next().value;if(!n)return;let o=n.oKey,s=this._drawingManagerService.getDrawingOKey(o);if(!s||s.drawingType===t.DrawingTypeEnum.DRAWING_DOM||s.drawingType===t.DrawingTypeEnum.DRAWING_SHAPE)return;let{unitId:c,subUnitId:l,drawingId:d,drawingType:f}=s,p=f===t.DrawingTypeEnum.DRAWING_IMAGE,m=this._canvasPopManagerService.attachPopupToObject(n,{componentKey:u.COMPONENT_IMAGE_POPUP_MENU,direction:p?`top-center`:`horizontal`,offset:p?[0,8]:[2,0],extraProps:{menuItems:this._getImageMenuItems(c,l,d,f),variant:p?`doc-floating-toolbar`:void 0,unitId:c,subUnitId:l,drawingId:d}},c);a.push(this.disposeWithMe(m)),!this._drawingManagerService.getFocusDrawings().find(e=>e.unitId===c&&e.subUnitId===l&&e.drawingId===d)&&this._drawingManagerService.focusDrawing([{unitId:c,subUnitId:l,drawingId:d}])})),this.disposeWithMe(i.clearControl$.subscribe(()=>{a.forEach(e=>e.dispose()),a.length=0,this._contextService.setContextValue(t.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,n,r,i){return[{label:`docs-drawing-ui.image-popup.edit`,index:0,commandId:G.id,commandParams:{unitId:e,subUnitId:n,drawingId:r},disable:i===t.DrawingTypeEnum.DRAWING_DOM},{label:`docs-drawing-ui.image-popup.delete`,index:1,commandId:p.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:n,drawingId:r}]},disable:!1},{label:`docs-drawing-ui.image-popup.crop`,index:2,commandId:u.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:n,drawingId:r},disable:i===t.DrawingTypeEnum.DRAWING_DOM},{label:`docs-drawing-ui.image-popup.reset`,index:3,commandId:u.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:n,drawingId:r}],disable:!0}]}};Je=E([T(0,s.IDrawingManagerService),T(1,(0,t.Inject)(i.DocCanvasPopManagerService)),T(2,a.IRenderManagerService),T(3,t.IUniverInstanceService),T(4,t.IContextService),T(5,t.ICommandService)],Je);let $=class extends t.Plugin{constructor(e=_e,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{...a}=(0,t.merge)({},_e,this._config);this._configService.setConfig(`docs-drawing-ui.config`,a)}onStarting(){[[Ce],[qe],[Je],[Be],[Ee],[w],[K],[ke]].forEach(e=>this._injector.add(e)),this._injector.get(Ce)}onReady(){[[D],[Re]].forEach(e=>this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)),this._injector.get(Ee),this._injector.get(qe),this._injector.get(Be),this._injector.get(ke)}onRendered(){this._injector.get(Je),this._injector.get(K)}};C($,`type`,t.UniverInstanceType.UNIVER_DOC),C($,`pluginName`,`DOC_DRAWING_UI_PLUGIN`),C($,`packageName`,he),C($,`version`,ge),$=E([(0,t.DependentOn)(u.UniverDrawingUIPlugin,s.UniverDrawingPlugin,n.UniverDocsDrawingPlugin,c.UniverUIPlugin),T(1,(0,t.Inject)(t.Injector)),T(2,a.IRenderManagerService),T(3,t.IConfigService)],$),e.ClearDocDrawingTransformerOperation=U,e.DOCS_IMAGE_MENU_ID=q,e.DOCS_SHAPE_BELOW_MENU_ID=Z,e.DOCS_SHAPE_MENU_ID=ce,e.DeleteDocDrawingsCommand=m,e.DocDrawingPosition=be,e.DocDrawingTextWrap=xe,Object.defineProperty(e,"DocFloatDomController",{enumerable:!0,get:function(){return K}}),e.EditDocDrawingOperation=G,e.GroupDocDrawingCommand=h,e.InsertDocDrawingCommand=g,e.InsertDocEllipseShapeCommand=F,e.InsertDocImageCommand=O,e.InsertDocRectangleShapeCommand=P,e.MoveDocDrawingsCommand=H,e.RemoveDocDrawingCommand=p,e.SetDocDrawingArrangeCommand=v,e.SidebarDocDrawingOperation=W,e.UngroupDocDrawingCommand=y,Object.defineProperty(e,"UniverDocsDrawingUIPlugin",{enumerable:!0,get:function(){return $}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/docs-drawing-ui",
3
- "version": "1.0.0-alpha.0",
3
+ "version": "1.0.0-alpha.1",
4
4
  "private": false,
5
5
  "description": "Drawing UI integration for Univer Docs.",
6
6
  "author": "DreamNum Co., Ltd. <developer@univer.ai>",
@@ -58,15 +58,15 @@
58
58
  "rxjs": ">=7.0.0"
59
59
  },
60
60
  "dependencies": {
61
- "@univerjs/design": "1.0.0-alpha.0",
62
- "@univerjs/core": "1.0.0-alpha.0",
63
- "@univerjs/docs": "1.0.0-alpha.0",
64
- "@univerjs/docs-drawing": "1.0.0-alpha.0",
65
- "@univerjs/docs-ui": "1.0.0-alpha.0",
66
- "@univerjs/drawing": "1.0.0-alpha.0",
67
- "@univerjs/drawing-ui": "1.0.0-alpha.0",
68
- "@univerjs/engine-render": "1.0.0-alpha.0",
69
- "@univerjs/ui": "1.0.0-alpha.0"
61
+ "@univerjs/core": "1.0.0-alpha.1",
62
+ "@univerjs/design": "1.0.0-alpha.1",
63
+ "@univerjs/docs": "1.0.0-alpha.1",
64
+ "@univerjs/docs-drawing": "1.0.0-alpha.1",
65
+ "@univerjs/docs-ui": "1.0.0-alpha.1",
66
+ "@univerjs/drawing": "1.0.0-alpha.1",
67
+ "@univerjs/engine-render": "1.0.0-alpha.1",
68
+ "@univerjs/drawing-ui": "1.0.0-alpha.1",
69
+ "@univerjs/ui": "1.0.0-alpha.1"
70
70
  },
71
71
  "devDependencies": {
72
72
  "@testing-library/react": "^16.3.2",
@@ -76,7 +76,7 @@
76
76
  "tailwindcss": "3.4.18",
77
77
  "typescript": "^6.0.3",
78
78
  "vitest": "^4.1.9",
79
- "@univerjs-infra/shared": "1.0.0-alpha.0"
79
+ "@univerjs-infra/shared": "1.0.0-alpha.1"
80
80
  },
81
81
  "scripts": {
82
82
  "test": "vitest run",