@univerjs/docs-drawing-ui 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +1 -1
- package/lib/es/index.js +1 -1
- package/lib/index.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +13 -13
package/lib/cjs/index.js
CHANGED
package/lib/es/index.js
CHANGED
package/lib/index.js
CHANGED
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-ui"),require("@univerjs/engine-render"),require("@univerjs/docs"),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-ui`,`@univerjs/engine-render`,`@univerjs/docs`,`@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.UniverDocsUi,e.UniverEngineRender,e.UniverDocs,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.delete-drawing`,type:t.CommandType.COMMAND,handler:async e=>{var a;let o=e.get(t.ICommandService),s=e.get(n.IDocDrawingService).getFocusDrawings();if(s.length===0)return!1;let{unitId:c}=s[0],l=(a=e.get(i.IRenderManagerService).getRenderUnitById(c))==null?void 0:a.with(r.DocSelectionRenderService);l==null||l.focus();let u=s.map(e=>{let{unitId:t,subUnitId:n,drawingId:r,drawingType:i}=e;return{unitId:t,subUnitId:n,drawingId:r,drawingType:i}}),d=await o.executeCommand(n.RemoveDocDrawingCommand.id,{unitId:c,drawings:u});return d&&(l==null||l.focus()),d}};function m(e,t){let n=e.getSnapshot(),r=[[``,n.body],...Object.entries(n.headers??{}).map(([e,t])=>[e,t.body]),...Object.entries(n.footers??{}).map(([e,t])=>[e,t.body]),...Object.entries(n.notes??{}).map(([e,t])=>[e,t.body])];for(let[e,n]of r){var i;let r=n==null||(i=n.customBlocks)==null?void 0:i.find(e=>e.blockId===t);if(r)return{segmentId:e,index:r.startIndex}}}function h(e,t,n){let{positionH:r,positionV:i}=t.docTransform;return{size:{width:e.width??0,height:e.height??0},positionH:{relativeFrom:r.relativeFrom,posOffset:(r.posOffset??0)+(e.left??0)-(n.left??0)},positionV:{relativeFrom:i.relativeFrom,posOffset:(i.posOffset??0)+(e.top??0)-(n.top??0)},angle:e.angle??0,flipX:e.flipX,flipY:e.flipY}}function g({parent:e,children:n},r,i,{changes:a,replacements:o}){let s=i[0],c=r[e.drawingId],l=new Set(n.map(e=>e.drawingId));if(!c||c.groupId||c.drawingType!==t.DrawingTypeEnum.DRAWING_GROUP||Object.values(r).some(t=>t.groupId===e.drawingId&&!l.has(t.drawingId)))return!1;o.set(s.index,n.map(e=>e.drawingId)),a.set(e.drawingId,void 0);for(let i of n){if(!i.transform||r[i.drawingId].groupId!==e.drawingId)return!1;let n={...r[i.drawingId]};delete n.groupId,n.layoutType=t.PositionedObjectLayoutType.WRAP_NONE,n.behindDoc=c.behindDoc,n.docTransform=h(i.transform,c,e.transform),a.set(i.drawingId,n)}return!0}function _({parent:e,children:n},r,i,{changes:a,replacements:o}){if(n.length<2||r[e.drawingId]||n.some(e=>r[e.drawingId].groupId||!e.transform))return!1;let s=Math.min(...i.map(e=>e.index)),c=n[i.findIndex(e=>e.index===s)],l=r[c.drawingId],u=e.transform,d={...e,drawingType:t.DrawingTypeEnum.DRAWING_GROUP,layoutType:l.layoutType,behindDoc:l.behindDoc,layoutInCell:l.layoutInCell,allowOverlap:l.allowOverlap,wrapText:l.wrapText,distL:l.distL,distR:l.distR,distT:l.distT,distB:l.distB,docTransform:h(u,l,c.transform),groupBaseBound:{left:0,top:0,width:u.width??0,height:u.height??0}};a.set(e.drawingId,d);for(let c=0;c<n.length;c++){let l=n[c];o.set(i[c].index,i[c].index===s?[e.drawingId]:[]);let f=h(l.transform,d,u);f.positionH={relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:(l.transform.left??0)-(u.left??0)},f.positionV={relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:(l.transform.top??0)-(u.top??0)},a.set(l.drawingId,{...r[l.drawingId],groupId:e.drawingId,docTransform:f})}return!0}function v(e,n,r){let i=t.JSONX.getInstance(),a=[];for(let[t,o]of r){let r=e[t],s=[...n,`drawings`,t];if(!o)a.push(i.removeOp(s,r));else if(!r)a.push(i.insertOp(s,o));else for(let e of[`groupId`,`docTransform`,`layoutType`,`behindDoc`])o[e]!==r[e]&&(o[e]===void 0?a.push(i.removeOp([...s,e],r[e])):r[e]===void 0?a.push(i.insertOp([...s,e],o[e])):a.push(i.replaceOp([...s,e],r[e],o[e])))}return a}function y(e,r,i,a,{changes:o,replacements:s}){var c,l;let u=e.getSnapshot(),{drawings:d}=(0,n.collectDocDrawings)(u),f=((c=u.notes)==null?void 0:c[r])??u,p=(l=u.notes)!=null&&l[r]?[`notes`,r]:[],m=new t.TextX,h=0;for(let[e,n]of[...s].sort(([e],[t])=>e-t))e>h&&m.push({t:t.TextXActionType.RETAIN,len:e-h}),m.push({t:t.TextXActionType.DELETE,len:1}),n.length>0&&m.push({t:t.TextXActionType.INSERT,len:n.length,body:{dataStream:`\b`.repeat(n.length),customBlocks:n.map((e,t)=>({blockId:e,startIndex:t}))}}),h=e+1;let g=t.JSONX.getInstance(),_=[g.editOp(m.serialize(),(0,t.getRichTextEditPath)(e,r))];_.push(...v(d,p,o));let y=f.drawingsOrder??Object.keys(f.drawings??{}),b=y.filter(e=>!o.has(e)||o.get(e));for(let{parent:e,children:t}of i)a||b.splice(Math.max(0,b.indexOf(t[0].drawingId)),0,e.drawingId);return _.push(f.drawingsOrder?g.replaceOp([...p,`drawingsOrder`],y,b):g.insertOp([...p,`drawingsOrder`],b)),_}function b(e,r,i){if(!(r!=null&&r.length))return!1;let o=r[0].parent.unitId,s=e.get(t.IUniverInstanceService).getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!s||r.some(({parent:e,children:t})=>e.unitId!==o||t.some(e=>e.unitId!==o)))return!1;let c=s.getSnapshot(),{drawings:l}=(0,n.collectDocDrawings)(c),u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f;for(let{parent:e,children:t}of r){let n=(i?[e]:t).map(({drawingId:e})=>m(s,e));if(!t.length||n.some(e=>!e)||!e.transform)return!1;let r=n[0];if(f??=r.segmentId,n.some(e=>e.segmentId!==f)||t.some(e=>!l[e.drawingId]||u.has(e.drawingId))||!(i?g({parent:e,children:t},l,n,{changes:u,replacements:d}):_({parent:e,children:t},l,n,{changes:u,replacements:d})))return!1}let p=y(s,f,r,i,{changes:u,replacements:d});return!!e.get(t.ICommandService).syncExecuteCommand(a.RichTextEditingMutation.id,{unitId:o,segmentId:f,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:[]})}let x={id:`doc.command.group-doc-image`,type:t.CommandType.COMMAND,handler:(e,t)=>b(e,t,!1)},S={id:`doc.command.ungroup-doc-image`,type:t.CommandType.COMMAND,handler:(e,t)=>b(e,t,!0)};function C(e){"@babel/helpers - typeof";return C=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},C(e)}function w(e,t){if(C(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(C(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function T(e){var t=w(e,`string`);return C(t)==`symbol`?t:t+``}function E(e,t,n){return(t=T(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var D=class{constructor(){E(this,`_refreshDrawings$`,new l.BehaviorSubject(null)),E(this,`refreshDrawings$`,this._refreshDrawings$.asObservable())}refreshDrawings(e){this._refreshDrawings$.next(e)}};function O(e,t){let n=[{segmentId:``,body:e.body},...Object.entries(e.headers??{}).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(e.footers??{}).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(e.notes??{}).map(([e,t])=>({segmentId:e,body:t.body}))];for(let{segmentId:e,body:i}of n){var r;let n=i==null||(r=i.customBlocks)==null?void 0:r.find(e=>e.blockId===t);if(n)return{offset:n.startIndex,segmentId:e}}return null}function k(e,r){return r.flatMap(r=>{var i;let a=O(e,r);if(!a)return[];let o=(i=(0,n.findDocDrawing)(e,r))==null?void 0:i.drawing,s=o&&o.layoutType!==t.PositionedObjectLayoutType.INLINE;return[{startOffset:a.offset,endOffset:a.offset+1,segmentId:a.segmentId,...s?{style:{fill:`transparent`,stroke:`transparent`,strokeActive:`transparent`,strokeWidth:1}}:{}}]})}function A(e,n,r){let{drawingId:i,transform:a}=e;if((n==null?void 0:n.drawingType)!==t.DrawingTypeEnum.DRAWING_IMAGE||(r==null?void 0:r.transform)==null)return[];let o=[`prstGeom`,`adjustValues`].filter(t=>Object.prototype.hasOwnProperty.call(e,t)).map(t=>({drawingId:i,key:t,value:e[t]??null}));if(a==null||e.srcRect===void 0)return o;let s={...r.transform,...a};if(o.push({drawingId:i,key:`srcRect`,value:e.srcRect}),s.width!=null&&s.height!=null&&o.push({drawingId:i,key:`size`,value:{width:s.width,height:s.height}}),n.layoutType===t.PositionedObjectLayoutType.INLINE||r.isMultiTransform===t.BooleanNumber.TRUE)return o;let c=(s.left??0)-(r.transform.left??0),l=(s.top??0)-(r.transform.top??0),{positionH:u,positionV:d}=n.docTransform;return c!==0&&u.posOffset!=null&&o.push({drawingId:i,key:`positionH`,value:{relativeFrom:u.relativeFrom,posOffset:u.posOffset+c}}),l!==0&&d.posOffset!=null&&o.push({drawingId:i,key:`positionV`,value:{relativeFrom:d.relativeFrom,posOffset:d.posOffset+l}}),o}function j(e){if(!Array.isArray(e)||e.length===0)return null;let n=/* @__PURE__ */ new Set,r=!1,i=!1;try{let a=t.JSON1.type.readCursor(e);a.traverse(null,()=>{r=!0;let e=a.getPath(),t=String(e[0]),o=t===`notes`?2:0;if(e[o]===`drawings`){let t=e[o+1];typeof t==`string`&&t.length>0?n.add(t):i=!0}else(e[o]===`drawingsOrder`||t===`notes`&&e.length<=2||e.includes(`customBlocks`))&&(i=!0)})}catch{return null}return!r||i?null:n}function M(e,t){return function(n,r){t(n,r,e)}}function N(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 P=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){super(),this._context=e,this._commandService=t,this._docSelectionManagerService=n,this._renderManagerSrv=r,this._imageIoService=i,this._docDrawingService=a,this._drawingManagerService=o,this._permissionService=s,this._contextService=c,this._messageService=l,this._localeService=u,this._docSelectionRenderService=d,this._docRefreshDrawingsService=f,this._fileOpenerService=p,E(this,`_editableTransformerConfigs`,/* @__PURE__ */ new WeakMap),E(this,`_editableEventedStates`,/* @__PURE__ */ new WeakMap),E(this,`_editStatusUpdateScheduled`,!1),E(this,`_pendingEditStatusDrawingIds`,void 0),E(this,`_lastEditStatusContextKey`,null),this._updateOrderListener(),this._updateImageCropListener(),this._groupDrawingListener(),this._focusDrawingListener(),this._transformDrawingListener(),this._editAreaChangeListener();let m=e=>{let t=e.filter(e=>{var t;return e.unitId===((t=this._context)==null?void 0:t.unitId)});if(t.length>0){let e=t.map(e=>e.drawingId).filter(e=>typeof e==`string`&&e.length>0);this._scheduleDrawingsEditStatusUpdate(e.length===t.length?new Set(e):void 0)}};this.disposeWithMe(this._drawingManagerService.add$.subscribe(m)),this.disposeWithMe(this._drawingManagerService.update$.subscribe(m)),this.disposeWithMe(this._permissionService.permissionPointUpdate$.subscribe(()=>{this._updateDrawingsEditStatus(void 0,!0)}))}dispose(){super.dispose(),delete this._context}async insertDocImage(){let e=this._getCurrentImageInsertPosition(),t=this._getCurrentImageInsertTextRange();if(!this._canInsertDocImage(t))return!1;let n=await this._fileOpenerService.openFile({multiple:!0,accept:s.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)});if(this._disposed||!this._canInsertDocImage(t))return!1;let r=n.length;return r>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):r!==0&&await this._insertFloatImages(n,e,t)}async _insertFloatImages(e,r,i){let c=[];try{c=await Promise.all(e.map(e=>this._imageIoService.saveImage(e)))}catch(e){let n=e.message,r=``;switch(n){case t.ImageUploadStatusType.ERROR_EXCEED_SIZE:r=this._localeService.t(`docs-drawing-ui.update-status.exceedMaxSize`,String((0,s.getDrawingImageAllowSize)()/1048576));break;case t.ImageUploadStatusType.ERROR_IMAGE_TYPE:r=this._localeService.t(`docs-drawing-ui.update-status.invalidImageType`);break;case t.ImageUploadStatusType.ERROR_IMAGE:r=this._localeService.t(`docs-drawing-ui.update-status.invalidImage`)}this._messageService.show({type:o.MessageType.Error,content:r})}if(this._disposed||c.length===0||!this._canInsertDocImage(i))return!1;let{unitId:l}=this._context,u=[];for(let e of c){if(e==null)continue;let{imageId:n,imageSourceType:o,source:c,base64Cache:d}=e,{width:f,height:p,image:m}=await(0,s.getImageSize)(d||``);if(this._disposed||!this._canInsertDocImage(i))return!1;this._imageIoService.addImageSourceCache(n,o,m);let h=1;if(f>s.DRAWING_IMAGE_WIDTH_LIMIT||p>s.DRAWING_IMAGE_HEIGHT_LIMIT){let e=s.DRAWING_IMAGE_WIDTH_LIMIT/f,t=s.DRAWING_IMAGE_HEIGHT_LIMIT/p;h=Math.min(e,t)}let g=r??this._getCurrentImageInsertPosition(),_=this._getImagePosition(f*h,p*h,g);if(_==null)return!1;let v=(0,a.docDrawingPositionToTransform)(_);v!=null&&g!=null&&(v.top=g.top);let y={unitId:l,subUnitId:l,drawingId:n,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:o,source:c,transform:v,docTransform:_,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()&&(y.isMultiTransform=t.BooleanNumber.TRUE,y.transforms=y.transform?[y.transform]:null),u.push(y)}return await this._commandService.executeCommand(n.InsertDocDrawingCommand.id,{unitId:l,drawings:u,textRange:i??void 0})}_isInsertInHeaderFooter(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderUnitById(t))==null?void 0:e.with(a.DocSkeletonManagerService).getViewModel(),r=n==null?void 0:n.getEditArea();return r===i.DocumentEditArea.HEADER||r===i.DocumentEditArea.FOOTER}_getImagePosition(e,t,n){let r=n??this._getCurrentImageInsertPosition()??{left:0,top:0};return(0,a.buildDocTransform)(e,t,{left:r.left})}_getCurrentImageInsertPosition(){var e;let t=(e=this._docSelectionRenderService.getActiveTextRange())==null?void 0:e.getAbsolutePosition();return t==null?null:{left:t.left,top:t.top}}_getCurrentImageInsertTextRange(){return this._docSelectionRenderService.getAllTextRanges().find(e=>e.isActive)??this._docSelectionManagerService.getActiveTextRange()}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:r,drawingIds:i,arrangeType:a}=e;this._commandService.executeCommand(n.SetDocDrawingArrangeCommand.id,{unitId:t,subUnitId:r,drawingIds:i,arrangeType:a})}))}_updateImageCropListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{let t=e.flatMap(e=>this._getImageCropUpdates(e));if(t.length>0){let{unitId:e}=this._context;this._commandService.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:e,subUnitId:e,drawings:t})}}))}_getImageCropUpdates(e){let{unitId:t,subUnitId:n,drawingId:r}=e;return[t,n].some(e=>e!==this._context.unitId)?[]:A(e,this._getDocDrawing(r),this._drawingManagerService.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})??void 0)}_getDocDrawing(e){var t;return(t=(0,n.findDocDrawing)(this._context.unit.getSnapshot(),e))==null?void 0:t.drawing}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{this._commandService.executeCommand(x.id,e)})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{this._commandService.executeCommand(S.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}}_getTransformerInteractionOptions(){return{moveOnlyWhenSelected:!1}}_isDocumentInteractionFocusing(e){return this._docSelectionRenderService.isFocusing||this._drawingManagerService.getFocusDrawings().some(t=>t.unitId===e)}_transformDrawingListener(){let e=this._getCurrentSceneAndTransformer();if(e&&e.transformer)e.transformer.resetProps(this._getTransformerInteractionOptions()),this.disposeWithMe(e.transformer.changeEnd$.pipe((0,l.debounceTime)(30)).subscribe(()=>{this._docSelectionManagerService.refreshSelection()}));else throw Error(`transformer is not init`)}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{let{transformer:n,docsLeft:r,docsTop:i}=this._getCurrentSceneAndTransformer()??{};if(e==null||e.length===0)this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._docDrawingService.focusDrawing([]),n&&n.resetProps({zeroTop:0,zeroLeft:0});else{this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!0),this._docDrawingService.focusDrawing(e),this._setDrawingSelections(e);let o=this._docSelectionRenderService.getSegment(),s=(0,a.getDocumentDrawingSegmentId)(this._context.unit,e[0].drawingId);o!==s&&this._docSelectionRenderService.setSegment(s),n&&n.resetProps({zeroTop:i,zeroLeft:r})}this._updateDrawingsEditStatus()}))}_updateDrawingsEditStatus(e,r=!1){var o;if(!this._context)return;let{unit:s,scene:c,unitId:l}=this._context,u=(o=this._renderManagerSrv.getRenderUnitById(l))==null?void 0:o.with(a.DocSkeletonManagerService).getViewModel();if(u==null||s==null)return;let d=s.getSnapshot(),{drawings:f}=(0,n.collectDocDrawings)(d),p=u.getEditArea()===i.DocumentEditArea.BODY,m=this._isDocumentInteractionFocusing(l),h=`${u.getEditArea()}:${m}`,g=e!=null&&h===this._lastEditStatusContextKey?e:void 0;if(g==null){if(!r&&h===this._lastEditStatusContextKey)return;this._lastEditStatusContextKey=h}let _=/* @__PURE__ */ new Set,v=this._indexDrawingShapes(c.getAllObjects(),l);for(let e of Object.keys(f)){let n=f[e];if(g!=null&&!g.has(n.drawingId))continue;let r=(0,a.getDocumentDrawingSegmentId)(s,n.drawingId),i=(0,a.canEditDocumentTargets)(this._permissionService,l,[...(0,a.getDocumentEntityParentPermissionObjectIds)(s,r,`drawing`,n.drawingId),(0,a.getDocumentEntityPermissionObjectId)(r,`drawing`,n.drawingId)]);this._recordReadOnlyDrawing(_,n.drawingId,i);let o=v.get(n.drawingId)??[];if(o.length)for(let e of o){c.detachTransformerFrom(e),this._setTransformerEditable(e,i);try{let r=m&&n.isMultiTransform!==t.BooleanNumber.TRUE;e.setOpacity(r?.5:1)}catch{}if((m||this._context.isMainScene)&&(p&&n.isMultiTransform!==t.BooleanNumber.TRUE||!p&&n.isMultiTransform===t.BooleanNumber.TRUE)){this._attachTransformerIfEditable(e,i,n.allowTransform);try{e.setOpacity(1)}catch{}}}}this._clearReadOnlyDrawingFocus(l,_)}_indexDrawingShapes(e,t){let n=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:t,drawingId:``}),r=/* @__PURE__ */ new Map;for(let t of e){if(!t.oKey.startsWith(n))continue;let e=t.oKey.slice(n.length).split(`#-#`,1)[0];if(!e)continue;let i=r.get(e)??[];i.push(t),r.set(e,i)}return r}_recordReadOnlyDrawing(e,t,n){n||e.add(t)}_attachTransformerIfEditable(e,t,n){t&&n!==!1&&this._context.scene.attachTransformerTo(e)}_clearReadOnlyDrawingFocus(e,t){if(t.size===0)return;let n=this._drawingManagerService.getFocusDrawings(),r=n.filter(n=>n.unitId!==e||!t.has(n.drawingId));r.length!==n.length&&this._drawingManagerService.focusDrawing(r)}_setTransformerEditable(e,t){var n;if(t){let t=this._editableTransformerConfigs.get(e);t&&(e.transformerConfig=t,this._editableTransformerConfigs.delete(e));let n=this._editableEventedStates.get(e);n!==void 0&&(e.evented=n,this._editableEventedStates.delete(e))}else this._editableTransformerConfigs.has(e)||this._editableTransformerConfigs.set(e,e.transformerConfig),this._editableEventedStates.has(e)||this._editableEventedStates.set(e,e.evented),e.evented=!1,(n=this._context.scene.getTransformer())==null||n.clearControlByIds([e.oKey]),e.transformerConfig={...e.transformerConfig,moveEnabled:!1,resizeEnabled:!1,rotateEnabled:!1}}_scheduleDrawingsEditStatusUpdate(e){e==null?(this._pendingEditStatusDrawingIds=null,this._lastEditStatusContextKey=null):this._pendingEditStatusDrawingIds!==null&&(this._pendingEditStatusDrawingIds??=/* @__PURE__ */ new Set,e.forEach(e=>{var t;return(t=this._pendingEditStatusDrawingIds)==null?void 0:t.add(e)})),!this._editStatusUpdateScheduled&&(this._editStatusUpdateScheduled=!0,queueMicrotask(()=>{if(this._editStatusUpdateScheduled=!1,!this._disposed){let e=this._pendingEditStatusDrawingIds;this._pendingEditStatusDrawingIds=void 0,this._updateDrawingsEditStatus(e??void 0)}}))}_canInsertDocImage(e){let{unit:t,unitId:n}=this._context,r=(e==null?void 0:e.startOffset)==null||e.endOffset==null?[]:(0,a.getDocumentEditTargetObjectIds)(t,e.segmentId??``,e);return(0,a.canEditDocumentTargets)(this._permissionService,n,r)}_editAreaChangeListener(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderUnitById(t))==null?void 0:e.with(a.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(void 0,!0)})})),this.disposeWithMe(this._commandService.onCommandExecuted(async e=>{if(e.id!==a.RichTextEditingMutation.id)return;let t=e.params;if(t!=null&&t.unitId&&t.unitId!==this._context.unitId)return;let n=j((t==null?void 0:t.actions)??null);(n==null?void 0:n.size)!==0&&this._scheduleDrawingsEditStatusUpdate(n??void 0)})))}_setDrawingSelections(e){let{unit:t}=this._context,n=k(t.getSnapshot(),e.map(({drawingId:e})=>e));this._docSelectionManagerService.replaceDocRanges(n)}};P=N([M(1,t.ICommandService),M(2,(0,t.Inject)(a.DocSelectionManagerService)),M(3,i.IRenderManagerService),M(4,t.IImageIoService),M(5,n.IDocDrawingService),M(6,s.IDrawingManagerService),M(7,t.IPermissionService),M(8,t.IContextService),M(9,c.IMessageService),M(10,(0,t.Inject)(t.LocaleService)),M(11,(0,t.Inject)(r.DocSelectionRenderService)),M(12,(0,t.Inject)(D)),M(13,c.ILocalFileService)],P);let F={id:`doc.command.insert-float-image`,type:t.CommandType.COMMAND,handler:e=>{var n;let r=e.get(t.IUniverInstanceService),a=e.get(i.IRenderManagerService);return((n=(0,i.getCurrentTypeOfRenderer)(t.UniverInstanceType.UNIVER_DOC,r,a))==null?void 0:n.with(P).insertDocImage())??!1}},I=`#3A60F7`,L=`#1D3EA6`;function ee(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="${I}" stroke="${L}" stroke-width="4" />`:`<rect x="4" y="4" width="${t-8}" height="${n-8}" rx="14" fill="${I}" stroke="${L}" stroke-width="4" />`}</svg>`;return`data:image/svg+xml;utf8,${encodeURIComponent(r)}`}function te(e,r,i,o){return{id:o,type:t.CommandType.COMMAND,handler:async o=>{var s;let c=o.get(t.ICommandService),l=(s=o.get(t.IUniverInstanceService).getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC))==null?void 0:s.getUnitId();if(!l)return!1;let u=(0,a.buildDocTransform)(r,i);return c.executeCommand(n.InsertDocDrawingCommand.id,{unitId:l,drawings:[{unitId:l,subUnitId:l,drawingId:(0,t.generateRandomId)(6),drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:t.ImageSourceType.BASE64,source:ee(e,r,i),transform:(0,a.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 R=te(`rectangle`,144,96,`doc.command.insert-float-shape.rectangle`),z=te(`ellipse`,112,112,`doc.command.insert-float-shape.ellipse`);function B(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=B(n,t,n.marginTop,n.marginLeft);if(e)return e}return null}function V(e,n,r){let{skeDrawing:i,pageMarginTop:a,pageMarginLeft:o}=e,s=i.aLeft,c=i.aTop;return n.relativeFrom===t.ObjectRelativeFromH.MARGIN?s-=o:n.relativeFrom===t.ObjectRelativeFromH.COLUMN&&(s-=i.columnLeft),r.relativeFrom===t.ObjectRelativeFromV.PAGE?c+=a:r.relativeFrom===t.ObjectRelativeFromV.LINE?c-=i.lineTop:r.relativeFrom===t.ObjectRelativeFromV.PARAGRAPH&&(c-=i.blockAnchorTop),{horizontal:s,vertical:c}}let H={id:`doc.command.move-drawing`,type:t.CommandType.COMMAND,handler:(e,r)=>{var o;let s=e.get(t.ICommandService),c=e.get(n.IDocDrawingService),l=e.get(t.IUniverInstanceService),u=e.get(i.IRenderManagerService),{direction:d}=r,f=c.getFocusDrawings();if(f.length===0)return!1;let p=f[0].unitId,m=u.getRenderUnitById(p),h=m==null?void 0:m.scene;if(h==null)return!1;let g=h.getTransformerByCreate(),_=m==null||(o=m.with(a.DocSkeletonManagerService).getSkeleton())==null?void 0:o.getSkeletonData(),v=l.getUnit(p,t.UniverInstanceType.UNIVER_DOC),y=f.map(e=>{var n;let{drawingId:r}=e,i=v==null||(n=v.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=_==null?{anchor:null,previewOnly:!1}:ne(_,r);if(s.previewOnly)return null;let{anchor:c}=s,l=c==null?{horizontal:a.posOffset??0,vertical:o.posOffset??0}:V(c,a,o),u={...a.relativeFrom==null?{}:{relativeFrom:a.relativeFrom},posOffset:l.horizontal},f={...o.relativeFrom==null?{}:{relativeFrom:o.relativeFrom},posOffset:l.vertical};return d===t.Direction.UP?f.posOffset=(f.posOffset??0)-2:d===t.Direction.DOWN?f.posOffset=(f.posOffset??0)+2:d===t.Direction.LEFT?u.posOffset=(u.posOffset??0)-2:d===t.Direction.RIGHT&&(u.posOffset=(u.posOffset??0)+2),{drawingId:r,key:d===t.Direction.UP||d===t.Direction.DOWN?`positionV`:`positionH`,value:d===t.Direction.UP||d===t.Direction.DOWN?f:u}}).filter(e=>e!=null);if(y.length===0)return!1;let b=s.syncExecuteCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:p,subUnitId:p,drawings:y});return g.refreshControls(),!!b}};function ne(e,t){let n=!1;for(let a of e.pages){var r,i;let o=B(a,t,a.marginTop,a.marginLeft),s=a.headerId==null||(r=e.skeHeaders.get(a.headerId))==null?void 0:r.get(a.headerLayoutKey??a.pageWidth),c=s==null?null:B(s,t,s.marginTop,a.marginLeft),l=a.footerId==null||(i=e.skeFooters.get(a.footerId))==null?void 0:i.get(a.footerLayoutKey??a.pageWidth),u=l==null?0:a.pageHeight-a.marginBottom+l.marginTop,d=l==null?null:B(l,t,u,a.marginLeft),f=o??c??d;if(f!=null){if(!a.isLayoutPlaceholder&&!a.isMaterializationPlaceholder)return{anchor:f,previewOnly:!1};n=!0}}return{anchor:null,previewOnly:n}}let U={id:`doc.operation.clear-drawing-transformer`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(i.IRenderManagerService);return t.forEach(e=>{var t;(t=n.getRenderUnitById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},W=`COMPONENT_DOC_DRAWING_PANEL`,G={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:W},onClose:()=>{a.focusDrawing(null)},width:360});break;default:r.close()}return!0}},K={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&&(r.focusDrawing([n]),i.executeCommand(G.id,{value:`open`}),!0)}};function re(e,t,n=1,i=0){let{top:a,left:o,bottom:s,right:c}=e,l=c-o,u=s-a,{viewportScrollX:d,viewportScrollY:f}=t.getViewport(r.VIEWPORT_KEY.VIEW_MAIN),{scaleX:p,scaleY:m}=t.getAncestorScale();return{startX:(o-d)*p,startY:(a-f)*m,endX:(o+l-d)*p,endY:(a+u-f)*m,width:l*p,height:u*m,rotate:i,absolute:{left:!1,top:!1},opacity:n??1}}function q(e,t){let{top:n,left:r,width:i,height:a,angle:o,opacity:s}=e;return re({top:n,left:r,bottom:n+a,right:r+i},t.scene,s,o)}function ie(e,t){let n=ae(t.customBlockRenderViewport);return n?{...e,customBlockRenderViewport:n}:e}function ae(e){let t={};oe(e==null?void 0:e.bleedLeft)&&(t.bleedLeft=e.bleedLeft),J(e==null?void 0:e.bleedWidth)&&(t.bleedWidth=e.bleedWidth),J(e==null?void 0:e.contentHeight)&&(t.contentHeight=e.contentHeight),J(e==null?void 0:e.contentWidth)&&(t.contentWidth=e.contentWidth),J(e==null?void 0:e.height)&&(t.height=e.height),J(e==null?void 0:e.pageContentWidth)&&(t.pageContentWidth=e.pageContentWidth);let n=e==null?void 0:e.viewScale;return J(n)&&(t.viewScale=n),J(e==null?void 0:e.viewportHeight)&&(t.viewportHeight=e.viewportHeight),Object.keys(t).length?t:void 0}function J(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function oe(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0}let Y=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._renderManagerService=e,this._drawingManagerService=t,this._drawingRenderService=n,this._canvasFloatDomService=r,this._univerInstanceService=i,this._commandService=a,this._docRefreshDrawingsService=o,E(this,`_domLayerInfoMap`,/* @__PURE__ */ new Map),E(this,`_pendingRuntimeGeometry`,/* @__PURE__ */ new Map),E(this,`_pendingRuntimeGeometryInsert`,/* @__PURE__ */ new Map),E(this,`_pendingRuntimeGeometryRefresh`,/* @__PURE__ */ new Map),this._initialize()}dispose(){this._pendingRuntimeGeometry.clear(),this._pendingRuntimeGeometryInsert.clear();for(let e of this._pendingRuntimeGeometryRefresh.values())e.dispose();this._pendingRuntimeGeometryRefresh.clear(),super.dispose()}_initialize(){this._renderLifecycleListener(),this._drawingAddRemoveListener(),this._drawingRuntimePropsListener(),this._initScrollAndZoomEvent()}_renderLifecycleListener(){this.disposeWithMe(this._renderManagerService.disposed$.subscribe(e=>{this._disposePendingRuntimeGeometryRefresh(e)})),this.disposeWithMe(this._renderManagerService.created$.subscribe(e=>{this._hasPendingRuntimeGeometryForUnit(e.unitId)&&this._refreshDrawingsFromCurrentLayout(e.unitId)}))}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderUnitById(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=>{let n=[],r=/* @__PURE__ */ new Set;for(let i of e)if(ce(this._drawingManagerService.getDrawingByParam(i))&&this._univerInstanceService.getUnit(i.unitId,t.UniverInstanceType.UNIVER_DOC)!=null){if(this._pendingRuntimeGeometryInsert.has(i.drawingId))continue;this._pendingRuntimeGeometryInsert.set(i.drawingId,i),r.add(i.unitId),this._pendingRuntimeGeometry.has(i.drawingId)&&n.push(i)}else n.push(i);this._insertRects(n);for(let e of r)this._refreshDrawingsFromCurrentLayout(e)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}_refreshDrawingsFromCurrentLayout(e){let n=this._renderManagerService.getRenderUnitById(e);if(n==null||n.type!==t.UniverInstanceType.UNIVER_DOC||n.isDisposed())return;let r=n.with(a.DocSkeletonManagerService).getSkeleton();if(r!=null){if(!this._pendingRuntimeGeometryRefresh.has(e)){let n=r.dirty$.subscribe(()=>{this._hasPendingRuntimeGeometryForUnit(e)?this._docRefreshDrawingsService.refreshDrawings(r):this._disposePendingRuntimeGeometryRefresh(e)});this._pendingRuntimeGeometryRefresh.set(e,(0,t.toDisposable)(()=>n.unsubscribe()))}this._docRefreshDrawingsService.refreshDrawings(r)}}_hasPendingRuntimeGeometryForUnit(e){for(let t of this._pendingRuntimeGeometryInsert.values())if(t.unitId===e)return!0;return!1}_disposePendingRuntimeGeometryRefresh(e){var t;(t=this._pendingRuntimeGeometryRefresh.get(e))==null||t.dispose(),this._pendingRuntimeGeometryRefresh.delete(e)}_insertRects(e){for(let i of e){let{unitId:e}=i;if(!this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC))continue;let a=this._getSceneAndTransformerByDrawingSearch(e);if(a==null)continue;let o=this._drawingManagerService.getDrawingByParam(i);if(o==null)continue;let s=ce(o),c=this._pendingRuntimeGeometry.get(i.drawingId);if(s&&(c==null||this._pendingRuntimeGeometryInsert.get(i.drawingId)!==i))continue;let u=this._drawingRenderService.renderFloatDom(o,a.scene);if(u!=null&&u.length!==0){for(let i of u){var n;let u=c??o,d=ae(u.customBlockRenderViewport);X(i,u,d,void 0,s);let f=d||s?ue(i):void 0;this._addHoverForRect(i);let p=new t.DisposableCollection,m=q(i,a.renderUnit),h=new l.BehaviorSubject(m),g=a.canvas,_=o.data,v={dispose:p,preserveRuntimeGeometry:s,rect:i,runtimeTransform:f,runtimeViewport:d,position$:h,unitId:e};this._canvasFloatDomService.addFloatDom({position$:h,id:o.drawingId,componentKey:o.componentKey,contentBox:le(o)?{contentInset:0,wrapperInset:0}:void 0,eventPassThrough:!s&&void 0,preserveOnFocusChange:s,onPointerDown:e=>{g.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{g.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{g.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{g.dispatchEvent(new WheelEvent(e.type,e))},data:_,props:ie(void 0,o),unitId:e});let y=i.onTransformChange$.subscribeEvent(()=>{let e=q(i,a.renderUnit);h.next(e)}),b=de((n=a.scene.getViewport(r.VIEWPORT_KEY.VIEW_MAIN))==null?void 0:n.onScrollAfter$,()=>h.next(q(i,a.renderUnit)));p.add(()=>{this._canvasFloatDomService.removeFloatDom(o.drawingId)}),y&&p.add(y),b&&p.add(b),this._domLayerInfoMap.set(o.drawingId,v)}this._pendingRuntimeGeometry.delete(i.drawingId),this._pendingRuntimeGeometryInsert.delete(i.drawingId),this._hasPendingRuntimeGeometryForUnit(e)||this._disposePendingRuntimeGeometryRefresh(e)}}}_drawingRuntimePropsListener(){this.disposeWithMe(this._drawingManagerService.refreshTransform$.subscribe(e=>{e.forEach(e=>{var t;let n=this._domLayerInfoMap.get(e.drawingId);if(!n){let t=this._pendingRuntimeGeometryInsert.get(e.drawingId),n=this._drawingManagerService.getDrawingByParam(e);if(t!=null||ce(n)){if(e.hidden===!0)return;this._pendingRuntimeGeometry.set(e.drawingId,e),t!=null&&this._insertRects([t])}return}if(n.unitId!==e.unitId||n.preserveRuntimeGeometry&&e.hidden===!0)return;let r=e,i=ae(r.customBlockRenderViewport);if(i&&(n.runtimeViewport=i),X(n.rect,r,n.runtimeViewport,n.runtimeTransform,n.preserveRuntimeGeometry)){(i||n.preserveRuntimeGeometry)&&(n.runtimeTransform=ue(n.rect));let e=this._getSceneAndTransformerByDrawingSearch(n.unitId);e&&n.position$.next(q(n.rect,e.renderUnit))}let a=(t=this._canvasFloatDomService.domLayers.find(([t])=>t===e.drawingId))==null?void 0:t[1].props;this._canvasFloatDomService.updateFloatDom(e.drawingId,{props:ie(a,e)})})}))}_addHoverForRect(e){this.disposeWithMe((0,t.toDisposable)(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=i.CURSOR_TYPE.GRAB}))),this.disposeWithMe((0,t.toDisposable)(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=i.CURSOR_TYPE.DEFAULT})))}_removeDom(e){var t;let n=(t=this._pendingRuntimeGeometryInsert.get(e))==null?void 0:t.unitId;this._pendingRuntimeGeometry.delete(e),this._pendingRuntimeGeometryInsert.delete(e),n!=null&&!this._hasPendingRuntimeGeometryForUnit(n)&&this._disposePendingRuntimeGeometryRefresh(n);let r=this._domLayerInfoMap.get(e);if(!r)return;let{unitId:i}=r;this._domLayerInfoMap.delete(e),r.dispose.dispose();let a=this._getSceneAndTransformerByDrawingSearch(i);a&&a.scene.removeObject(r.rect)}_initScrollAndZoomEvent(){let e=e=>{let t=this._getSceneAndTransformerByDrawingSearch(e);t&&this._domLayerInfoMap.forEach(n=>{if(n.unitId!==e)return;let r=q(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.getRenderUnitById(t);return n?{render:n,unitId:t}:null}),(0,l.switchMap)(e=>e?(0,t.fromEventSubject)(e.render.scene.getViewport(r.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===r.SetDocZoomRatioOperation.id){let{unitId:n}=t.params;globalThis.queueMicrotask(()=>{this._disposed||e(n)})}}))}insertFloatDom(e,r){var i;let o=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(!o)return!1;let s=this._getSceneAndTransformerByDrawingSearch(o.getUnitId());if(!s)return!1;let c=(i=s.renderUnit.with(a.DocSkeletonManagerService).getSkeleton().getSkeletonData())==null?void 0:i.pages[0];if(!c)return!1;let{pageWidth:l,marginLeft:u,marginRight:d}=c,f=l-u-d,p={size:{width:r.width??f,height:r.height},positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0},angle:0},m=r.drawingId??(0,t.generateRandomId)(),h={unitId:o.getUnitId(),drawings:[{drawingId:m,drawingType:t.DrawingTypeEnum.DRAWING_DOM,subUnitId:o.getUnitId(),unitId:o.getUnitId(),...e,title:``,description:``,docTransform:p,layoutType:t.PositionedObjectLayoutType.INLINE,transform:(0,a.docDrawingPositionToTransform)(p)}]};return this._commandService.syncExecuteCommand(n.InsertDocDrawingCommand.id,h),m}};Y=N([M(0,i.IRenderManagerService),M(1,s.IDrawingManagerService),M(2,(0,t.Inject)(u.DrawingRenderService)),M(3,(0,t.Inject)(c.CanvasFloatDomService)),M(4,t.IUniverInstanceService),M(5,t.ICommandService),M(6,(0,t.Inject)(D))],Y);function X(e,t,n,r,i){let a=se(t,e,n,r,i);return a?(e.transformByState(a),!0):!1}function se(e,t,n,r,i){var a;let o=e.transform??((a=e.transforms)==null?void 0:a[0]),s=e.customBlockRenderViewport??n;if(!e.customBlockRenderViewport&&i&&r&&o)return{...o,width:r.width??o.width,height:r.height??o.height};if(!o){let e=(s==null?void 0:s.height)??(s==null?void 0:s.contentHeight);return J(e)?{left:t.left,top:t.top,width:t.width,height:e,angle:t.angle}:void 0}let c=(s==null?void 0:s.height)??(s==null?void 0:s.contentHeight);return J(c)?{...o,height:c}:o}function ce(e){if(typeof e!=`object`||!e||!(`data`in e))return!1;let t=e.data;if(!t||typeof t!=`object`)return!1;let n=t;return n.version===1&&typeof n.embedId==`string`&&typeof n.hostAnchorId==`string`}function le(e){if(!ce(e))return!1;let t=e.data;return!!t&&typeof t==`object`&&`childType`in t&&typeof t.childType==`number`&&(0,a.isSheetLikeDocsCustomBlockChildType)(t.childType)}function ue(e){return{angle:e.angle,height:e.height,left:e.left,top:e.top,width:e.width}}function de(e,n){if(!e||typeof e!=`object`)return;let r=e;if(typeof r.subscribeEvent==`function`)return r.subscribeEvent(n);let i=e;if(typeof i.subscribe==`function`){let e=i.subscribe(n);return(0,t.toDisposable)(()=>{var t;return(t=e.unsubscribe)==null?void 0:t.call(e)})}}let fe=`doc.menu.image`,Z=F.id,pe=e=>{let n=e.get(a.DocSelectionManagerService),r=e.get(t.IUniverInstanceService);return new l.Observable(e=>{let i=n.textSelection$.subscribe(()=>{let i=n.getActiveTextRange();if(i){var a;let{segmentId:n,startOffset:o,endOffset:s}=i,c=r.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC),l=c==null||(a=c.getSelfOrHeaderFooterModel(n))==null||(a=a.getBody())==null?void 0:a.tables;if(l&&l.length&&l.some(e=>{let{startIndex:t,endIndex:n}=e;return o>=t&&o<n||s>=t&&s<n})){e.next(!0);return}}else{e.next(!0);return}e.next(!1)});return()=>i.unsubscribe()})};function me(e){return{id:fe,commandId:Z,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,tooltip:`docs-drawing-ui.title`,disabled$:pe(e),hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function he(e){return{id:Z,title:`docs-drawing-ui.upload.float`,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function ge(e){return{id:`${Z}.below`,commandId:Z,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 _e=`doc.command.menu-insert-shape`,ve=`doc.command.menu-insert-shape.below`;function ye(e){return{id:_e,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 be(e){return{id:ve,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 xe(e){return{id:R.id,title:`docs-drawing-ui.shape.insert.rectangle`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function Se(e){return{id:z.id,title:`docs-drawing-ui.shape.insert.ellipse`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function Ce(e){return{id:`${R.id}.below`,commandId:R.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 we(e){return{id:`${z.id}.below`,commandId:z.id,title:`docs-drawing-ui.shape.insert.ellipse`,type:c.MenuItemType.BUTTON,params:{paragraphMenuPlacement:`below`},hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}let Te={[c.RibbonInsertGroup.MEDIA]:{[fe]:{order:0,gridLayout:{row:1,column:4},menuItemFactory:me}},[c.ContextMenuPosition.PARAGRAPH]:{[c.ContextMenuGroup.LAYOUT]:{[r.INSERT_BELLOW_MENU_ID]:{[Z]:{order:5,menuItemFactory:he}}},[r.EMPTY_PARAGRAPH_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[Z]:{order:5,menuItemFactory:he}}},[r.DOC_CONTENT_INSERT_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[Z]:{order:5,menuItemFactory:he}}},[r.DOC_PARAGRAPH_T_INSERT_MENU_ID]:{insert:{[Z]:{order:1,menuItemFactory:he},[_e]:{order:2,menuItemFactory:ye}}},[r.DOC_PARAGRAPH_T_INSERT_BELOW_MENU_ID]:{insert:{[`${Z}.below`]:{order:1,menuItemFactory:ge},[ve]:{order:2,menuItemFactory:be}}},[_e]:{shapes:{order:0,[R.id]:{order:0,menuItemFactory:xe},[z.id]:{order:1,menuItemFactory:Se}}},[ve]:{shapes:{order:0,[`${R.id}.below`]:{order:0,menuItemFactory:Ce},[`${z.id}.below`]:{order:1,menuItemFactory:we}}}}};var Ee=`@univerjs/docs-drawing-ui`,De=`1.1.0`;let Oe=`docs-drawing-ui.config`,ke=`DOC_DRAWING_UI_PLUGIN`,Ae={};function je(e,n){let r=e[n.drawingId];r==null?e[n.drawingId]=n:(n.selectable&&!r.selectable&&(r.selectable=!0,r.transform=n.transform),n.isMultiTransform===t.BooleanNumber.TRUE&&r.transforms.push(n.transform))}function Me(e,t){return e===t||JSON.stringify(e)===JSON.stringify(t)}function Ne(e,t){return!e||t.customBlockRenderViewport!=null||!Me(e.transform,t.transform)||!Me(e.transforms,t.transforms)||e.isMultiTransform!==t.isMultiTransform||e.hidden!==t.hidden||e.behindText!==t.behindText||e.selectable!==t.selectable}function Pe(e,n,r){return e.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&(n==null?void 0:n.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE?n:r?{...e,docTransform:{...e.docTransform,size:r}}:e}var Fe=class{constructor(){E(this,`_generation`,-1),E(this,`_publishedPageCount`,0),E(this,`_drawingOccurrenceCount`,0)}reset(){this._generation=-1,this._publishedPageCount=0,this._drawingOccurrenceCount=0}shouldRefresh(e,t){if(!t.didPublish&&!t.complete)return!1;let n=t.generation!==this._generation;n&&(this._generation=t.generation,this._publishedPageCount=0,this._drawingOccurrenceCount=0);let r=e.getSkeletonData();if(r==null)return!1;let i=this._publishedPageCount,a=Math.min(t.publishedPageCount,r.pages.length);this._publishedPageCount=Math.max(i,a);let o=Ke(r,a),s=!(n&&t.reason===`edit`)&&o!==this._drawingOccurrenceCount;return this._drawingOccurrenceCount=o,t.complete||t.didPublishAnchor||s?!0:n&&t.reason===`edit`?!1:qe(r,i,a)}};function Ie(e){let{docsLeft:n,docsTop:r,pageOffsetLeft:a,pageOffsetTop:o,clipOffsetLeft:s=0,clipOffsetTop:c=0,page:l}=e;if(l.type===i.DocumentSkeletonPageType.CELL&&e.drawingLayoutType===t.PositionedObjectLayoutType.WRAP_NONE&&e.overflowClipBounds!=null)return e.overflowClipBounds;let{pageWidth:u,pageHeight:d}=l;if(!Number.isFinite(u)||!Number.isFinite(d)||u<=0||d<=0)return;let f=l.type===i.DocumentSkeletonPageType.CELL?l.marginLeft??0:0,p=l.type===i.DocumentSkeletonPageType.CELL?l.marginTop??0:0;return{left:n+a+s-f,top:r+o+c-p,width:u,height:d}}function Le(e){let{drawing:t,hostPage:n,page:r}=e;if(n&&(r.type===i.DocumentSkeletonPageType.HEADER||r.type===i.DocumentSkeletonPageType.FOOTER))return n;if(n==null||t.behindText!==!0||t.transform==null)return r;let{width:a,height:o}=t.transform;if(a==null||o==null)return r;if(a>r.pageWidth||o>r.pageHeight)return n;let s=a/n.pageWidth,c=o/n.pageHeight;return s>=.8&&c>=.8?n:r}function Re(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.align==null?r.posOffset==null?r.percent?r.percent*n.pageWidth:0:r.posOffset:0}function ze(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.align==null?r.posOffset==null?r.percent?r.percent*n.pageHeight:0:r.posOffset:0}function Be(e){let{page:n,clipPage:r,hostPage:a}=e;if(e.drawingLayoutType!==t.PositionedObjectLayoutType.INLINE){if(a!=null&&a===r)return a;if(a==null&&n===r&&n.type!==i.DocumentSkeletonPageType.CELL)return n}}function Ve(e){let{drawingOrigin:n,hostPage:r}=e;return r!=null||n.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&n.behindDoc===t.BooleanNumber.TRUE}function He(e,t,n,r){let a=(0,i.getTableIdAndSliceIndex)(t.tableId).tableId,o=(0,i.getDocsTableRenderViewport)(e,a),s=Ue(o)?o.scrollLeft:0;return{left:t.left+r.left-s+r.marginLeft,top:t.top+n.top+r.marginTop}}function Ue(e){return e!=null&&(e.leadingInsetLeft??0)+e.contentWidth+(e.trailingInsetRight??0)>e.viewportWidth}function We(e){var t,n,r;if(e.skeDrawings.size>0||(t=e.notes)!=null&&t.some(e=>We(e.page)))return!0;let i=!1;return(n=e.skeTables)==null||n.forEach(e=>{e.rows.forEach(e=>{e.cells.forEach(e=>{We(e)&&(i=!0)})})}),(r=e.skeColumnGroups)==null||r.forEach(e=>{e.columns.forEach(e=>{We(e.page)&&(i=!0)})}),i}function Ge(e){var t,n,r;let i=e.skeDrawings.size;return(t=e.notes)==null||t.forEach(e=>{i+=Ge(e.page)}),(n=e.skeTables)==null||n.forEach(e=>{e.rows.forEach(e=>{e.cells.forEach(e=>{i+=Ge(e)})})}),(r=e.skeColumnGroups)==null||r.forEach(e=>{e.columns.forEach(e=>{i+=Ge(e.page)})}),i}function Ke(e,t){let n=0;for(let a=0;a<t;a++){var r,i;let t=e.pages[a];n+=Ge(t);let o=t.headerId==null||(r=e.skeHeaders.get(t.headerId))==null?void 0:r.get(t.headerLayoutKey??t.pageWidth);o!=null&&(n+=Ge(o));let s=t.footerId==null||(i=e.skeFooters.get(t.footerId))==null?void 0:i.get(t.footerLayoutKey??t.pageWidth);s!=null&&(n+=Ge(s))}return n}function qe(e,t,n){for(let a=t;a<n;a++){var r,i;let t=e.pages[a];if(We(t))return!0;let n=t.headerId==null||(r=e.skeHeaders.get(t.headerId))==null?void 0:r.get(t.headerLayoutKey??t.pageWidth);if(n!=null&&We(n))return!0;let o=t.footerId==null||(i=e.skeFooters.get(t.footerId))==null?void 0:i.get(t.footerLayoutKey??t.pageWidth);if(o!=null&&We(o))return!0}return!1}let Je=class extends t.Disposable{constructor(e,n,r,a,o,s,c,l){super(),this._context=e,this._docSkeletonManagerService=n,this._commandService=r,this._editorService=a,this._drawingManagerService=o,this._docRefreshDrawingsService=s,this._univerInstanceService=c,this._lifecycleService=l,E(this,`_liquid`,new i.Liquid),E(this,`_changesetDrawingRefreshScheduled`,!1),E(this,`_pendingMultiDrawingSelection`,/* @__PURE__ */ new Set),E(this,`_pendingMultiDrawingSelectionSubscription`,void 0),E(this,`_publicationTracker`,new Fe),this._initialize(),this._commandExecutedListener(),this.disposeWithMe((0,t.toDisposable)(()=>this._clearPendingMultiDrawingSelection()))}_initialize(){this._initialRenderRefresh(),this._drawingInitializeListener(),this._initTransformRefresh()}_initialRenderRefresh(){this.disposeWithMe(this._docSkeletonManagerService.currentSkeleton$.pipe((0,l.switchMap)(e=>{if(this._publicationTracker.reset(),e==null)return l.EMPTY;this._refreshDrawing(e);let n=(0,l.animationFrames)().pipe((0,l.startWith)(null),(0,l.map)(()=>this._context.mainComponent),(0,l.filter)(e=>e instanceof i.Documents&&e.left>-1e4&&e.top>-1e4),(0,l.take)(1),(0,l.switchMap)(n=>(0,t.fromEventSubject)(n.onTransformChange$).pipe((0,l.filter)(e=>e.type===i.TRANSFORM_CHANGE_OBSERVABLE_TYPE.translate&&`left`in e.value&&`left`in e.preValue&&(e.value.left!==e.preValue.left||e.value.top!==e.preValue.top)),(0,l.map)(()=>({documentSkeleton:e,progress:null})),(0,l.startWith)({documentSkeleton:e,progress:null}))));return(0,l.merge)(e.layoutProgress$.pipe((0,l.map)(t=>({documentSkeleton:e,progress:t}))),e.layoutPageMaterialized$.pipe((0,l.map)(()=>({documentSkeleton:e,progress:null}))),n)})).subscribe(({documentSkeleton:e,progress:t})=>{(t==null||this._publicationTracker.shouldRefresh(e,t))&&this._refreshDrawing(e)})),this.disposeWithMe(this._docRefreshDrawingsService.refreshDrawings$.subscribe(e=>{e!=null&&this._refreshDrawing(e)}))}_commandExecutedListener(){let e=[a.RichTextEditingMutation.id,r.SetDocZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted((t,n)=>{if(e.includes(t.id)){let e=t.params,{unitId:r}=e,{unitId:i}=this._context;if(r!==i)return;let o=t.id===a.RichTextEditingMutation.id?j(e.actions):null;if((o==null?void 0:o.size)===0)return;if(t.id===a.RichTextEditingMutation.id&&n!=null&&n.fromChangeset){this._scheduleChangesetDrawingRefresh();return}this._refreshCurrentDrawing(o??void 0,t.id===a.RichTextEditingMutation.id)}}))}_scheduleChangesetDrawingRefresh(){this._changesetDrawingRefreshScheduled||(this._changesetDrawingRefreshScheduled=!0,queueMicrotask(()=>{queueMicrotask(()=>{this._changesetDrawingRefreshScheduled=!1,!this._disposed&&this._refreshCurrentDrawing(void 0,!0)})}))}_refreshCurrentDrawing(e,t=!1){let n=this._docSkeletonManagerService.getSkeleton();if(n==null)return;let{unitId:r,mainComponent:i}=this._context;this._editorService.isEditor(r)?i==null||i.makeDirty():this._refreshDrawing(n,e,t)}_initTransformRefresh(){this.disposeWithMe((0,l.merge)((0,t.fromEventSubject)(this._context.engine.onTransformChange$).pipe((0,l.filter)(e=>e.type===i.TRANSFORM_CHANGE_OBSERVABLE_TYPE.resize)),(0,t.fromEventSubject)(this._context.scene.onTransformChange$).pipe((0,l.filter)(e=>e.type===i.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale))).pipe((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,n,r=!1){let i=e==null?void 0:e.getSkeletonData(),{mainComponent:a,unitId:o}=this._context,s=a;if(!i)return;let{left:c,top:l,pageLayoutType:u,pageMarginLeft:d,pageMarginTop:f}=s;if(c<=-1e4||l<=-1e4)return;let{pages:p,skeHeaders:m,skeFooters:h}=i,g={};this._liquid.reset();for(let e=0,t=p.length;e<t;e++){let t=p[e];this._collectPublishedPageDrawingPositions(o,t,m,h,c,l,g),this._liquid.translatePage(t,u,d,f)}let _=this._includeGroupChildren(n),v=Object.values(g).filter(e=>_==null||_.has(e.drawingId));for(let e of v)e.hidden=!1;let y=this._getStaleNonMultiDrawings(o,g,_),b=v.filter(e=>!e.isMultiTransform).concat(y).filter(e=>Ne(this._drawingManagerService.getDrawingByParam({unitId:o,subUnitId:o,drawingId:e.drawingId}),e));b.length>0&&this._drawingManagerService.refreshTransform(b);let x=_!=null&&[..._].some(e=>{var n,r;return((n=g[e])==null?void 0:n.isMultiTransform)===t.BooleanNumber.TRUE||((r=this._drawingManagerService.getDrawingByParam({unitId:o,subUnitId:o,drawingId:e}))==null?void 0:r.isMultiTransform)===t.BooleanNumber.TRUE});if(_==null||x){let e=Object.values(g).filter(e=>e.isMultiTransform);this._handleMultiDrawingsTransform(e,r)}}_includeGroupChildren(e){if(e==null)return;let t=new Set(e),{drawings:r}=(0,n.collectDocDrawings)(this._context.unit.getSnapshot()),i=-1;for(;i!==t.size;){i=t.size;for(let e of Object.values(r))e.groupId&&t.has(e.groupId)&&t.add(e.drawingId)}return t}_collectPublishedPageDrawingPositions(e,t,n,r,i,a,o){var s,c;let l=!t.isLayoutPlaceholder&&!t.isMaterializationPlaceholder,{headerId:u,footerId:d,pageWidth:f}=t,p=u?(s=n.get(u))==null?void 0:s.get(t.headerLayoutKey??f):void 0;p!=null&&this._collectSegmentDrawingPositions(e,p,i,a,o,p.marginTop,t.marginLeft,t,l);let m=d?(c=r.get(d))==null?void 0:c.get(t.footerLayoutKey??f):void 0;if(m!=null){let n=t.pageHeight-m.height-m.marginBottom;this._collectSegmentDrawingPositions(e,m,i,a,o,n,t.marginLeft,t,l)}this._collectSegmentDrawingPositions(e,t,i,a,o,t.marginTop,t.marginLeft,void 0,l);for(let n of t.notes??[])this._collectSegmentDrawingPositions(e,n.page,i,a,o,n.top,n.left,void 0,l,{top:n.top,left:n.left})}_collectSegmentDrawingPositions(e,t,n,r,i,a,o,s,c,l){let u=Ie({docsLeft:n,docsTop:r,pageOffsetLeft:this._liquid.x,pageOffsetTop:this._liquid.y,page:s??t});this._calculateDrawingPosition(e,t,n,r,i,a,o,s,c,l,u),this._calculateTableCellDrawingPositions(e,t,n,r,i,a,o,c,u),this._calculateColumnGroupDrawingPositions(e,t,n,r,i,a,o,c,u)}_getStaleNonMultiDrawings(e,n,r){let i=this._drawingManagerService.getDrawingData(e,e)??{};return Object.values(i).filter(e=>e.isMultiTransform!==t.BooleanNumber.TRUE).filter(e=>r==null||r.has(e.drawingId)).filter(e=>n[e.drawingId]==null).map(n=>({unitId:e,subUnitId:e,drawingId:n.drawingId,behindText:!1,hidden:!0,selectable:!0,transform:n.transform,transforms:n.transforms??[],isMultiTransform:n.isMultiTransform??t.BooleanNumber.FALSE}))}_handleMultiDrawingsTransform(e,n=!1){let{scene:r,unitId:i}=this._context,a=e.filter(e=>n||Ne(this._drawingManagerService.getDrawingByParam(e)??void 0,e)),o=new Set(e.map(e=>e.drawingId)),c=Object.values(this._drawingManagerService.getDrawingData(i,i)).filter(e=>e.isMultiTransform===t.BooleanNumber.TRUE&&(n||!o.has(e.drawingId)&&e.hidden!==!0));if(a.length===0&&c.length===0)return;let l=r.getTransformer(),u=n?[.../* @__PURE__ */ new Set([...this._pendingMultiDrawingSelection,...(l==null?void 0:l.getSelectedObjectMap().keys())??[]])]:[];if(n&&this._clearPendingMultiDrawingSelection(),a.forEach(e=>{var t,n;let i=this._drawingManagerService.getDrawingByParam(e);if(i!=null){for(let o=((t=e.transforms)==null?void 0:t.length)??0;o<(((n=i.transforms)==null?void 0:n.length)??0);o++){var a;let e=(0,s.getDrawingShapeKeyByDrawingSearch)(i,o);l==null||l.clearControlByIds([e]),(a=r.getObjectIncludeInGroup(e))==null||a.dispose()}Object.assign(i,e)}}),c.length>0){this._drawingManagerService.removeNotification(c);for(let e of c)o.has(e.drawingId)||(e.hidden=!0)}a.length>0&&(n?this._drawingManagerService.addNotification(a):this._drawingManagerService.refreshTransform(a)),n?this._restoreMultiDrawingSelection(u):this._pendingMultiDrawingSelection.size>0?this._restoreMultiDrawingSelection([...this._pendingMultiDrawingSelection]):l==null||l.refreshControls()}_clearPendingMultiDrawingSelection(){var e;(e=this._pendingMultiDrawingSelectionSubscription)==null||e.dispose(),this._pendingMultiDrawingSelectionSubscription=void 0,this._pendingMultiDrawingSelection.clear()}_restoreMultiDrawingSelection(e){this._clearPendingMultiDrawingSelection();let{scene:n,unitId:r}=this._context,i=n.getTransformer();if(!i||this._disposed)return;let a=new Set(Object.values(this._drawingManagerService.getDrawingData(r,r)).filter(e=>e.isMultiTransform===t.BooleanNumber.TRUE&&e.hidden!==!0&&e.selectable!==!1).flatMap(e=>(e.transforms??[]).map((t,n)=>(0,s.getDrawingShapeKeyByDrawingSearch)(e,n))));for(let t of e){let e=n.getObjectIncludeInGroup(t);e!=null&&e.visible&&e.evented?i.setSelectedControl(e):!e&&a.has(t)&&this._pendingMultiDrawingSelection.add(t)}if(i.refreshControls(),this._pendingMultiDrawingSelection.size===0)return;let o=new l.Subscription;this._pendingMultiDrawingSelectionSubscription=this.disposeWithMe(o);let c=/* @__PURE__ */ new Set([...e,...i.getSelectedObjectMap().keys()]),u=this._includeGroupChildren(new Set([...this._pendingMultiDrawingSelection].flatMap(e=>{let t=this._drawingManagerService.getDrawingOKey(e);return t?[t.drawingId]:[]})));o.add(this._drawingManagerService.refreshTransform$.subscribe(e=>{e.some(e=>e.unitId===r&&(u==null?void 0:u.has(e.drawingId)))&&this._restoreMultiDrawingSelection([...this._pendingMultiDrawingSelection])})),o.add(this._drawingManagerService.remove$.subscribe(e=>{let t=e.map(e=>(0,s.getDrawingShapeKeyByDrawingSearch)(e)),n=[...this._pendingMultiDrawingSelection].filter(e=>!t.some(t=>e===t||e.startsWith(`${t}#-#`)));n.length!==this._pendingMultiDrawingSelection.size&&this._restoreMultiDrawingSelection(n)})),o.add((0,l.merge)(i.clearControl$,i.changeStart$).subscribe(()=>{this._clearPendingMultiDrawingSelection()})),o.add(i.createControl$.subscribe(()=>{[...i.getSelectedObjectMap().keys()].some(e=>!c.has(e))&&this._clearPendingMultiDrawingSelection()}))}_calculateDrawingPosition(e,t,n,r,i,a,o,s,c=!0,l,u){let{skeDrawings:d}=t,f=this._liquid.x,p=this._liquid.y;this._liquid.translatePagePadding({marginTop:a,marginLeft:o});let m={unitId:e,page:t,docsLeft:n,docsTop:r,pageOffsetLeft:f,pageOffsetTop:p,updateDrawingMap:i,hostPage:s,selectable:c,clipOffset:l,overflowClipBounds:u};d.forEach(e=>this._collectDrawingPosition(e,m)),this._liquid.restorePagePadding({marginTop:a,marginLeft:o})}_collectDrawingPosition(e,n){var r,i;let{aLeft:a,aTop:o,angle:s,drawingId:c,drawingOrigin:l,height:u,width:d}=e,f=Pe(l,(r=this._context.unit)==null||(i=r.getSnapshot)==null||(i=i.call(r).drawings)==null?void 0:i[c],e.customBlockRenderViewport?{width:d,height:u}:void 0),{angle:p=s,size:m}=f.docTransform,h=(m==null?void 0:m.height)??u,g=(m==null?void 0:m.width)??d,{left:_,top:v}=n.clipOffset??{},y=Ve({drawingOrigin:f,hostPage:n.hostPage}),{isMultiTransform:b=t.BooleanNumber.FALSE}=f,x=Le({drawing:{behindText:y,transform:{width:g,height:h}},hostPage:n.hostPage,page:n.page}),S=Ie({docsLeft:n.docsLeft,docsTop:n.docsTop,pageOffsetLeft:n.pageOffsetLeft,pageOffsetTop:n.pageOffsetTop,clipOffsetLeft:_,clipOffsetTop:v,page:x,drawingLayoutType:f.layoutType,overflowClipBounds:n.overflowClipBounds}),C=Be({page:n.page,clipPage:x,hostPage:n.hostPage,drawingLayoutType:f.layoutType}),w=C==null?void 0:Re({hostPage:C,positionH:f.docTransform.positionH,width:g}),T=C==null?void 0:ze({hostPage:C,positionV:f.docTransform.positionV,height:h}),E={left:(w??a)+n.docsLeft+(w==null?this._liquid.x:n.pageOffsetLeft),top:(T??o)+n.docsTop+(T==null?this._liquid.y:n.pageOffsetTop),width:g,height:h,angle:p,flipX:f.docTransform.flipX,flipY:f.docTransform.flipY,clipBounds:S};je(n.updateDrawingMap,{unitId:n.unitId,subUnitId:n.unitId,drawingId:c,behindText:y,selectable:n.selectable,transform:E,transforms:[E],customBlockRenderViewport:e.customBlockRenderViewport,isMultiTransform:b}),f.drawingType===t.DrawingTypeEnum.DRAWING_GROUP&&this._collectGroupChildren(c,n,y,b,/* @__PURE__ */ new Set([c]))}_collectGroupChildren(e,t,r,i,a){let{drawings:o}=(0,n.collectDocDrawings)(this._context.unit.getSnapshot());for(let n of Object.values(o)){if(n.groupId!==e||a.has(n.drawingId))continue;a.add(n.drawingId);let{size:o,positionH:s,positionV:c,angle:l,flipX:u,flipY:d}=n.docTransform,f={left:s.posOffset??0,top:c.posOffset??0,width:o.width,height:o.height,angle:l,flipX:u,flipY:d};je(t.updateDrawingMap,{unitId:t.unitId,subUnitId:t.unitId,drawingId:n.drawingId,behindText:r,selectable:t.selectable,transform:f,transforms:[f],isMultiTransform:i}),this._collectGroupChildren(n.drawingId,t,r,i,a)}}_calculateTableCellDrawingPositions(e,t,n,r,i,a,o,s,c){var l;(l=t.skeTables)==null||l.forEach(t=>{t.rows.forEach(l=>{l.cells.forEach(u=>{var d,f,p;if((((d=u.skeDrawings)==null?void 0:d.size)??0)===0&&(((f=u.skeTables)==null?void 0:f.size)??0)===0&&(((p=u.skeColumnGroups)==null?void 0:p.size)??0)===0)return;let m=He(e,t,l,u),h=a+m.top,g=o+m.left;this._calculateDrawingPosition(e,u,n,r,i,h,g,void 0,s,{left:g,top:h},c),this._calculateTableCellDrawingPositions(e,u,n,r,i,h,g,s,c),this._calculateColumnGroupDrawingPositions(e,u,n,r,i,h,g,s,c)})})})}_calculateColumnGroupDrawingPositions(e,t,n,r,i,a,o,s,c){var l;(l=t.skeColumnGroups)==null||l.forEach(t=>{t.columns.forEach(l=>{let u=l.page,d=a+t.top+l.top+u.marginTop,f=o+t.left+l.left+u.marginLeft,p={left:f,top:d};this._calculateDrawingPosition(e,u,n,r,i,d,f,void 0,s,p,c),this._calculateTableCellDrawingPositions(e,u,n,r,i,d,f,s,c),this._calculateColumnGroupDrawingPositions(e,u,n,r,i,d,f,s,c)})})}_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))}};Je=N([M(1,(0,t.Inject)(a.DocSkeletonManagerService)),M(2,t.ICommandService),M(3,r.IEditorService),M(4,s.IDrawingManagerService),M(5,(0,t.Inject)(D)),M(6,t.IUniverInstanceService),M(7,(0,t.Inject)(t.LifecycleService))],Je);function Ye(e,t,n,r,a){function o(n,r,i,s){var c;let l=n.skeDrawings.get(t),u=l&&a?{...l,drawingOrigin:a}:l;if(u)return{skeDrawing:u,page:n,hostPage:s,pageMarginLeft:r,pageMarginTop:i};for(let t of n.skeTables.values())for(let n of t.rows)for(let a of n.cells){let s=He(e,t,n,a),c=o(a,r+s.left,i+s.top);if(c)return c}for(let e of((c=n.skeColumnGroups)==null?void 0:c.values())??[])for(let t of e.columns){let n=o(t.page,r+e.left+t.left+t.page.marginLeft,i+e.top+t.top+t.page.marginTop);if(n)return n}return null}for(let e of n.pages){let{headerId:t,footerId:a,marginLeft:l,marginTop:u,pageWidth:d,pageHeight:f}=e,p=null;if(r===i.DocumentEditArea.HEADER){var s;let r=(s=n.skeHeaders.get(t))==null?void 0:s.get(e.headerLayoutKey??d);r&&(p=o(r,l,r.marginTop,e))}else if(r===i.DocumentEditArea.FOOTER){var c;let t=(c=n.skeFooters.get(a))==null?void 0:c.get(e.footerLayoutKey??d);t&&(p=o(t,l,f-t.height-t.marginBottom,e))}else if(p=o(e,l,u),!p){for(let t of e.notes??[])if(p=o(t.page,t.left,t.top),p)break}if(p)return p}return null}function Xe(e,n){let{skeDrawing:r,page:i}=e,a=r.isPageBreak?0:r.columnLeft;return(r.blockAnchorLeft??0)>0&&n!==t.ObjectRelativeFromV.LINE&&(a+=r.blockAnchorLeft-(r.isPageBreak?0:r.columnLeft||i.marginLeft),r.normalizeTraditionalColumnAnchor&&n===t.ObjectRelativeFromV.PARAGRAPH&&(a-=i.marginLeft)),a}function Ze(e,r,a,o,s){var c;let l=e.skeDrawing.drawingOrigin,u=r.positionV.relativeFrom;if(l.layoutType!==t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM&&l.layoutType!==t.PositionedObjectLayoutType.WRAP_SQUARE||u!==t.ObjectRelativeFromV.PARAGRAPH&&u!==t.ObjectRelativeFromV.LINE||l.docTransform.positionV.relativeFrom===u)return r;let d=new t.DocumentDataModel(t.Tools.deepClone(a)),f=(c=(0,n.findDocDrawing)(d.getSnapshot(),l.drawingId))==null?void 0:c.drawing;if(!f)return d.dispose(),null;let p=new i.DocumentViewModel(d),m=i.DocumentSkeleton.create(p,o),h={...r,positionV:{relativeFrom:u,posOffset:0}},g=e.skeDrawing.aTop+e.pageMarginTop,_;try{for(let e=0;e<8;e++){f.docTransform=h,m.makeDirty(!0),m.calculate();let e=Ye(a.id,l.drawingId,m.getSkeletonData(),s,f);if(!e)return null;let t=g-e.skeDrawing.aTop-e.pageMarginTop;if(Math.abs(t)<.01)return h;let n=h.positionV.posOffset??0,r=_&&Math.abs(_.delta-t)>.01?n-t*(n-_.offset)/(t-_.delta):n+t;_={offset:n,delta:t},h={...h,positionV:{relativeFrom:u,posOffset:r}}}return null}finally{m.dispose(),p.dispose(),d.dispose()}}function Qe(e,n,r=e.skeDrawing.drawingOrigin.docTransform.positionH.relativeFrom,i=e.skeDrawing.drawingOrigin.docTransform.positionV.relativeFrom,a){let{skeDrawing:o,page:s,hostPage:c,pageMarginLeft:l,pageMarginTop:u}=e,{drawingOrigin:d,width:f,height:p,aLeft:m,aTop:h}=o,{positionH:g,positionV:_}=d.docTransform,v=Be({page:s,clipPage:Le({drawing:{behindText:Ve({drawingOrigin:d,hostPage:c}),transform:{width:f,height:p}},page:s,hostPage:c}),hostPage:c}),y=d.layoutType!==t.PositionedObjectLayoutType.INLINE&&v!=null,b=n!==t.PositionedObjectLayoutType.INLINE&&v!=null,x=d.layoutType===t.PositionedObjectLayoutType.INLINE,S={...d.docTransform},C=r===t.ObjectRelativeFromH.COLUMN&&(o.blockAnchorLeft??0)>0&&i!==_.relativeFrom;if(a!=null&&a.left||x||C||r!==g.relativeFrom||g.relativeFrom===t.ObjectRelativeFromH.PAGE&&y!==b){let n=(y?Re({hostPage:v,positionH:g,width:f}):void 0)??m+l,c={[t.ObjectRelativeFromH.PAGE]:b?0:l-(o.pageAnchorLeft??0),[t.ObjectRelativeFromH.MARGIN]:l+s.marginLeft-(o.pageAnchorLeft??0),[t.ObjectRelativeFromH.COLUMN]:l+Xe(e,i)};S.positionH={relativeFrom:r,posOffset:n+((a==null?void 0:a.left)??0)-(c[r]??l)}}if(a!=null&&a.top||x||i!==_.relativeFrom||_.relativeFrom===t.ObjectRelativeFromV.PAGE&&y!==b){let e=(y?ze({hostPage:v,positionV:_,height:p}):void 0)??h+u,n={[t.ObjectRelativeFromV.PAGE]:b?0:u-s.marginTop,[t.ObjectRelativeFromV.LINE]:u+o.lineTop,[t.ObjectRelativeFromV.PARAGRAPH]:u+(o.isPageBreak?0:o.blockAnchorTop)};S.positionV={relativeFrom:i,posOffset:e+((a==null?void 0:a.top)??0)-(n[i]??u)}}return S}function $e(e){if(t.JSONX.isNoop(e))return null;let n=[],r=t.JSON1.type.readCursor(e);return r.traverse(null,()=>{let e=r.getPath();if(e.length!==2||e[0]!==`drawings`||typeof e[1]!=`string`)return;let t=r.getComponent();(t==null?void 0:t.r)!==void 0&&n.push({type:`remove`,drawingId:e[1]}),(t==null?void 0:t.i)!==void 0&&n.push({type:`add`,drawingId:e[1],drawing:t.i})}),n.length?n:null}function et(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}function tt(e,n=/* @__PURE__ */ new Set){if(t.JSONX.isNoop(e)||!Array.isArray(e))return n;if(e[0]===`drawings`){let t=e[1];return typeof t==`string`?(n.add(t),n):(e.slice(1).forEach(e=>{Array.isArray(e)&&typeof e[0]==`string`&&n.add(e[0])}),n)}return e.forEach(e=>{Array.isArray(e)&&tt(e,n)}),n}let nt=class extends t.Disposable{constructor(e,t,n,r,i,a){super(),this._univerInstanceService=e,this._commandService=t,this._drawingManagerService=n,this._docDrawingService=r,this._renderManagerService=i,this._docRefreshDrawingsService=a,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id!==a.RichTextEditingMutation.id)return;let{unitId:t,actions:n,isSync:r,syncer:i}=e.params,o=$e(n);if(o!=null)for(let{type:e,drawingId:n,drawing:a}of o)r&&(a==null?void 0:a.unitId)===i||(e===`add`?this._addDrawings(t,[a]):this._removeDrawings(t,[n]))})),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===n.UpdateDocDrawingWrappingStyleCommand.id&&this._preserveWrappingStylePosition(e.params)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==a.RichTextEditingMutation.id)return;let{unitId:n,actions:r}=e.params,i=!1;if(!t.JSONX.isNoop(r)){let e=t.JSON1.type.readCursor(r);e.traverse(null,()=>{i||=e.getPath()[0]===`notes`})}i&&this._syncNoteDrawings(n),et(r).length>0&&this._updateDrawingsOrder(n);let o=[...tt(r)];o.length>0&&this._syncDrawingDataFromSnapshot(n,o)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==n.UpdateDrawingDocTransformCommand.id&&e.id!==n.UpdateDocDrawingWrappingStyleCommand.id)return;let{unitId:t}=e.params,r=this._renderManagerService.getRenderUnitById(t),i=r==null?void 0:r.scene;r!=null&&i!=null&&(e.id===n.UpdateDocDrawingWrappingStyleCommand.id&&this._docRefreshDrawingsService.refreshDrawings(r.with(a.DocSkeletonManagerService).getSkeleton()),i.getTransformerByCreate().refreshControls())})),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.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC))==null?void 0:n.getUnitId(),i=this._drawingManagerService.getFocusDrawings();if(r==null||i.length===0)return;let o=this._renderManagerService.getRenderUnitById(r),s=o==null?void 0:o.scene;if(o==null||s==null)return!1;this._docRefreshDrawingsService.refreshDrawings(o.with(a.DocSkeletonManagerService).getSkeleton()),s.getTransformerByCreate().refreshControls()}))}_preserveWrappingStylePosition(e){if(e.wrappingStyle===n.TextWrappingStyle.INLINE)return;let{unitId:r}=e,i=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_DOC),o=this._renderManagerService.getRenderUnitById(r),s=o==null?void 0:o.with(a.DocSkeletonManagerService),c=s==null?void 0:s.getSkeleton().getSkeletonData(),l=s==null?void 0:s.getViewModel();if(!i||!c||!l)return;let u=l.getEditArea(),d=(0,n.collectDocDrawings)(i.getSnapshot()).drawings;e.drawings=e.drawings.map(i=>{let a=d[i.drawingId];if(!a)return i;let o=Ye(r,i.drawingId,c,u,a);if(!o)return i;let s=Qe(o,n.WRAPPING_STYLE_TO_LAYOUT_TYPE[e.wrappingStyle]);for(let e of[`positionH`,`positionV`]){var l;let n=(l=i.docTransform)==null?void 0:l[e];n&&!t.Tools.diffValue(n,a.docTransform[e])&&Object.assign(s,{[e]:n})}return{...a,...i,docTransform:{...s,...i.docTransform,positionH:s.positionH,positionV:s.positionV}}})}_addDrawings(e,t){let n=this._drawingManagerService,r=this._docDrawingService,{subUnitId:i,redo:a,objects:o}=this._docDrawingService.getBatchAddOp(t.map(t=>({...t,unitId:e,subUnitId:e})));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,i=t.filter(t=>r.getDrawingByParam({unitId:e,subUnitId:e,drawingId:t}));if(i.length===0)return;let{subUnitId:a,redo:o,objects:s}=this._docDrawingService.getBatchRemoveOp(i.map(t=>({unitId:e,subUnitId:e,drawingId:t})));n.applyJson1(e,a,o),r.applyJson1(e,a,o),n.removeNotification(s),r.removeNotification(s)}_updateDrawingsOrder(e){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(r==null)return;let{drawings:i,drawingsOrder:a}=(0,n.collectDocDrawings)(r.getSnapshot());if(a==null)return;let o=(0,n.getDocDrawingRenderOrder)(a,i),s=this._drawingManagerService,c=this._docDrawingService;s.setDrawingOrder(e,e,o),c.setDrawingOrder(e,e,a);let l={unitId:e,subUnitId:e,drawingIds:o};s.orderNotification(l),c.orderNotification({unitId:e,subUnitId:e,drawingIds:a})}_syncNoteDrawings(e){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!r)return;let{drawings:i}=(0,n.collectDocDrawings)(r.getSnapshot()),a=this._docDrawingService.getDrawingData(e,e)??{},o=Object.keys(i).filter(e=>!a[e]),s=Object.keys(a).filter(e=>!i[e]),c=Object.keys(i).filter(e=>i[e]!==a[e]);o.length>0&&this._addDrawings(e,o.map(t=>({...i[t],unitId:e,subUnitId:e}))),s.length>0&&this._removeDrawings(e,s),c.length>0&&this._syncDrawingDataFromSnapshot(e,c)}_syncDrawingDataFromSnapshot(e,r){let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(i==null)return;let{drawings:a,drawingsOrder:o}=(0,n.collectDocDrawings)(i.getSnapshot()),s=Object.fromEntries(Object.entries(a).map(([t,n])=>[t,{...n,unitId:e,subUnitId:e}])),c=this._docDrawingService.getDrawingData(e,e),l=this._drawingManagerService.getDrawingData(e,e),u=Object.keys(s).filter(e=>!l[e]),d=[.../* @__PURE__ */ new Set([...r,...u])],f=o!==this._docDrawingService.getDrawingOrder(e,e)||d.some(e=>{let n=c[e],r=s[e];return((n==null?void 0:n.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&n.behindDoc===t.BooleanNumber.TRUE)!=((r==null?void 0:r.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&r.behindDoc===t.BooleanNumber.TRUE)}),p=d.some(e=>{var t,n;return((t=c[e])==null?void 0:t.groupId)!==((n=s[e])==null?void 0:n.groupId)});p&&this._drawingManagerService.removeNotification(Object.values(this._drawingManagerService.getDrawingData(e,e)));let m={...this._drawingManagerService.getDrawingData(e,e)};for(let e of d){let t=s[e];if(t){var h;m[e]={...t,transform:((h=m[e])==null?void 0:h.transform)??t.transform}}else delete m[e]}this._docDrawingService.setDrawingData(e,e,s),this._drawingManagerService.setDrawingData(e,e,m),f&&(this._docDrawingService.setDrawingOrder(e,e,o),this._drawingManagerService.setDrawingOrder(e,e,(0,n.getDocDrawingRenderOrder)(o,a)));let g=d.filter(e=>s[e]!=null).map(t=>({unitId:e,subUnitId:e,drawingId:t}));g.length!==0&&(p&&this._drawingManagerService.addNotification(Object.values(m)),this._docDrawingService.updateNotification(g),this._drawingManagerService.updateNotification(g))}};nt=N([M(0,t.IUniverInstanceService),M(1,t.ICommandService),M(2,s.IDrawingManagerService),M(3,n.IDocDrawingService),M(4,i.IRenderManagerService),M(5,(0,t.Inject)(D))],nt);let rt=e=>{let{floatDomInfos:t,scene:n,offset:r,bound:i}=e,a=i.right-i.left,o=i.bottom-i.top,s=(0,d.useMemo)(()=>t.map(e=>{let{width:t=0,height:r=0,left:i=0,top:a=0}=e.transform,o=re({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]);return/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-absolute univer-left-0 univer-top-0`,children:s.map(([e,t])=>/* @__PURE__ */ (0,f.jsx)(c.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})};function it(e,t,n){let r=(0,c.connectInjector)(rt,n);return(0,o.render)(/* @__PURE__ */ (0,f.jsx)(r,{...e}),t),()=>(0,o.unmount)(t)}let at=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,skeleton:o,pageIndex:s}=n,c=this._drawingManagerService.getDrawingDataForUnit(i),l=c==null?void 0:c[i],u=this._docPrintInterceptorService.getPageDrawingIds(o,s);return l&&l.order.forEach(e=>{if(u&&!u.has(e))return;let n=l.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,skeleton:a,pageIndex:o}=n,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[i],l=this._docPrintInterceptorService.getPageDrawingIds(a,o);if(c){let a=it({unitId:i,floatDomInfos:c.order.filter(e=>!l||l.has(e)).map(e=>{let n=c.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)}}}))}};at=N([M(0,(0,t.Inject)(r.DocPrintInterceptorService)),M(1,(0,t.Inject)(u.DrawingRenderService)),M(2,s.IDrawingManagerService),M(3,(0,t.Inject)(c.ComponentManager)),M(4,(0,t.Inject)(t.Injector))],at);function ot(e,n,r,i,a,o,s){var c,l,u;let d=new t.TextX,f=t.JSONX.getInstance(),p=[],m=(c=o.getSelfOrHeaderFooterModel(n))==null?void 0:c.getBody(),h=(l=o.getSelfOrHeaderFooterModel(e))==null?void 0:l.getBody();if(m==null||h==null)return;let g=(u=m.customBlocks)==null||(u=u.find(e=>e.blockId===a))==null?void 0:u.startIndex;if(g!=null){if(i=Math.min(h.dataStream.length-2,i),e===n){if(i<g?(i>0&&d.push({t:t.TextXActionType.RETAIN,len:i}),d.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1}),d.push({t:t.TextXActionType.RETAIN,len:g-i}),d.push({t:t.TextXActionType.DELETE,len:1})):(g>0&&d.push({t:t.TextXActionType.RETAIN,len:g}),d.push({t:t.TextXActionType.DELETE,len:1}),i-g-1>0&&d.push({t:t.TextXActionType.RETAIN,len:i-g-1}),d.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1})),i!==g){let e=(0,t.getRichTextEditPath)(o,n),r=f.editOp(d.serialize(),e);p.push(r)}}else{g>0&&d.push({t:t.TextXActionType.RETAIN,len:g}),d.push({t:t.TextXActionType.DELETE,len:1});let c=(0,t.getRichTextEditPath)(o,n),l=f.editOp(d.serialize(),c);p.push(l),d.empty(),i>0&&d.push({t:t.TextXActionType.RETAIN,len:i}),d.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1}),c=(0,t.getRichTextEditPath)(o,e),l=f.editOp(d.serialize(),c),p.push(l),s.setSegment(e),s.setSegmentPage(r)}return p}}let st={id:`doc.command.update-doc-drawing-distance`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUniverInstanceService),{drawings:o,dist:s,unitId:c}=n,l=i.getUnit(c,t.UniverInstanceType.UNIVER_DOC);if(l==null)return!1;let u=t.JSONX.getInstance(),d=[],{drawings:f={}}=l.getSnapshot();for(let e of o){let{drawingId:t}=e;for(let[e,n]of Object.entries(s)){let r=f[t][e];if(r!==n){let i=u.replaceOp([`drawings`,t,e],r,n);d.push(i)}}}let p={id:a.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};return p.params.actions=d.reduce((e,n)=>t.JSONX.compose(e,n),null),!!r.syncExecuteCommand(p.id,p.params)}},ct={id:`doc.command.update-doc-drawing-wrap-text`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUniverInstanceService),{drawings:o,wrapText:s,unitId:c}=n,l=i.getUnit(c,t.UniverInstanceType.UNIVER_DOC);if(l==null)return!1;let u=t.JSONX.getInstance(),d=[],{drawings:f={}}=l.getSnapshot();for(let e of o){let{drawingId:t}=e,n=f[t].wrapText;if(n!==s){let e=u.replaceOp([`drawings`,t,`wrapText`],n,s);d.push(e)}}let p={id:a.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};return p.params.actions=d.reduce((e,n)=>t.JSONX.compose(e,n),null),!!r.syncExecuteCommand(p.id,p.params)}},lt={id:`doc.command.move-inline-drawing`,type:t.CommandType.COMMAND,handler:(e,n)=>{var o;if(n==null)return!1;let{drawing:s,unitId:c,offset:l,segmentId:u,segmentPage:d,needRefreshDrawings:f}=n,p=e.get(i.IRenderManagerService),m=(o=p.getRenderUnitById(c))==null?void 0:o.with(r.DocSelectionRenderService),h=e.get(D),g=p.getRenderUnitById(c),_=g==null?void 0:g.scene,v=g==null?void 0:g.with(a.DocSkeletonManagerService).getSkeleton();if(_==null||m==null)return!1;let y=_.getTransformerByCreate(),b=e.get(t.ICommandService),x=e.get(t.IUniverInstanceService).getUnit(c,t.UniverInstanceType.UNIVER_DOC);if(x==null)return!1;if(f)return h.refreshDrawings(v),y.refreshControls(),!0;let S=[],{drawingId:C}=s,w=ot(u,m.getSegment()??``,d,l,C,x,m);if(w==null||w.length===0)return h.refreshDrawings(v),y.refreshControls(),!1;S.push(...w);let T={id:a.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};T.params.actions=S.reduce((e,n)=>t.JSONX.compose(e,n),null);let E=b.syncExecuteCommand(T.id,T.params);return y.refreshControls(),!!E}},ut={id:`doc.command.transform-non-inline-drawing`,type:t.CommandType.COMMAND,handler:(e,n)=>{var o;if(n==null)return!1;let{drawing:s,unitId:c,offset:l,docTransform:u,segmentId:d,segmentPage:f}=n,p=e.get(i.IRenderManagerService),m=(o=p.getRenderUnitById(c))==null?void 0:o.with(r.DocSelectionRenderService),h=p.getRenderUnitById(c),g=h==null?void 0:h.scene;if(h==null||g==null||m==null)return!1;let _=g.getTransformerByCreate(),v=e.get(t.ICommandService),y=e.get(t.IUniverInstanceService).getUnit(c,t.UniverInstanceType.UNIVER_DOC);if(y==null)return!1;let b=[],{drawingId:x}=s,S=ot(d,m.getSegment()??``,f,l,x,y,m);if(S==null)return!1;S.length>0&&b.push(...S);let C=t.JSONX.getInstance(),{drawings:w={}}=y.getSnapshot(),{positionH:T,positionV:E,size:O,angle:k}=w[x].docTransform;if(!t.Tools.diffValue(T,u.positionH)){let e=C.replaceOp([`drawings`,x,`docTransform`,`positionH`],T,u.positionH);b.push(e)}if(!t.Tools.diffValue(E,u.positionV)){let e=C.replaceOp([`drawings`,x,`docTransform`,`positionV`],E,u.positionV);b.push(e)}if(!t.Tools.diffValue(O,u.size)){let e=C.replaceOp([`drawings`,x,`docTransform`,`size`],O,u.size);b.push(e)}if(!t.Tools.diffValue(k,u.angle)){let e=C.replaceOp([`drawings`,x,`docTransform`,`angle`],k,u.angle);b.push(e)}let A={id:a.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null,debounce:!0}};A.params.actions=b.reduce((e,n)=>t.JSONX.compose(e,n),null);let j=v.syncExecuteCommand(A.id,A.params),M=h.with(a.DocSkeletonManagerService).getSkeleton();return e.get(D).refreshDrawings(M),_.refreshControls(),!!j}};function dt(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:He(e,i,r,t),row:r,table:i}}function ft(e){let{drawing:n,height:r,hostPage:i,page:a,width:o}=e;return n.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&Be({page:a,clipPage:Le({drawing:{behindText:Ve({drawingOrigin:n,hostPage:i}),transform:{width:o,height:r}},hostPage:i,page:a}),hostPage:i})!=null}let pt=class extends t.Disposable{constructor(e,t,n,r){super(),this._commandService=e,this._univerInstanceService=t,this._drawingManagerService=n,this._renderManagerService=r,E(this,`_liquid`,new i.Liquid),E(this,`_listenerOnImageMap`,/* @__PURE__ */ new Map),E(this,`_transformerCache`,/* @__PURE__ */ new Map),E(this,`_anchorShape`,void 0),this._init()}dispose(){var e;for(let e of this._listenerOnImageMap.values())e.dispose();this._listenerOnImageMap.clear(),this._transformerCache.clear(),(e=this._anchorShape)==null||e.dispose(),this._anchorShape=null,super.dispose()}_init(){this.disposeWithMe(this._renderManagerService.disposed$.subscribe(e=>{var t;(t=this._listenerOnImageMap.get(e))==null||t.dispose(),this._listenerOnImageMap.delete(e)})),this._listenDrawingFocus()}_listenDrawingFocus(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{if(e.length!==0)for(let t of e){let{unitId:e}=t;if(!this._listenerOnImageMap.has(e)){let t=this._listenTransformerChange(e);t&&this._listenerOnImageMap.set(e,t)}}}))}_listenTransformerChange(e){let r=this._getSceneAndTransformerByDrawingSearch(e),i=r==null?void 0:r.transformer;if(i==null)return;let a=new t.DisposableCollection;return a.add((0,t.toDisposable)(()=>{for(let[t,n]of this._transformerCache)n.drawing.unitId===e&&this._transformerCache.delete(t);this._anchorShape&&this._anchorShape.getScene()===(r==null?void 0:r.scene)&&(this._anchorShape.dispose(),this._anchorShape=null)})),a.add((0,t.toDisposable)(i.changeStart$.subscribe(e=>{this._transformerCache.clear();let{objects:r}=e;for(let e of r.values()){var i;let{oKey:r,width:a,height:o,left:s,top:c,angle:l}=e,u=this._drawingManagerService.getDrawingOKey(r);if(u==null)continue;let d=this._univerInstanceService.getUnit(u.unitId,t.UniverInstanceType.UNIVER_DOC),f=d?(i=(0,n.findDocDrawing)(d.getSnapshot(),u.drawingId))==null?void 0:i.drawing:void 0;if((f==null?void 0:f.layoutType)===t.PositionedObjectLayoutType.INLINE)try{e.setOpacity(.2)}catch{}f!=null&&this._transformerCache.set(u.drawingId,{drawing:f,top:c,left:s,width:a,height:o,angle:l})}}))),a.add((0,t.toDisposable)(i.changeStart$.pipe((0,l.switchMap)(()=>i.changing$.pipe((0,l.filter)(({objects:e})=>e.size>1),(0,l.throttleTime)(50,void 0,{leading:!0,trailing:!0}),(0,l.takeUntil)(i.changeEnd$)))).subscribe(({objects:e})=>this._updateMultipleDrawingDocTransform(e)))),a.add((0,t.toDisposable)(i.changing$.subscribe(e=>{let{objects:n,offsetX:r,offsetY:i}=e;if(n.size===1){let e=this._transformerCache.values().next().value,{width:a,height:o,top:s,left:c,angle:l}=n.values().next().value;if(e&&a===e.width&&o===e.height&&s===e.top&&c===e.left&&l===e.angle)return;e&&e.drawing.layoutType===t.PositionedObjectLayoutType.INLINE&&r!=null&&i!=null&&this._updateInlineDrawingAnchor(e.drawing,r,i)}}))),a.add((0,t.toDisposable)(i.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()}))),a}_updateMultipleDrawingDocTransform(e){if(e.size<1)return;let t=[],r,i;for(let n of e.values()){let{oKey:e,left:s,top:c,angle:l}=n,{width:u,height:d}=n,f=this._drawingManagerService.getDrawingOKey(e);if(f==null)continue;r??=f.unitId,i??=f.subUnitId;let p=this._transformerCache.get(f.drawingId);if(p==null)continue;let{drawing:m,top:h,left:g,width:_,height:v,angle:y}=p,{width:b,height:x}=this._getPageContentSize(m);if(u=Math.min(u,b),d=Math.min(d,x),(_!==u||v!==d)&&t.push({drawingId:f.drawingId,key:`size`,value:{width:u,height:d}}),y!==l&&t.push({drawingId:f.drawingId,key:`angle`,value:l}),h!==c||g!==s){let e=c-h,n=s-g,{positionH:i,positionV:l}=m.docTransform,u,d=i.posOffset!=null&&i.align==null,p=l.posOffset!=null&&l.align==null;if(!d||!p){var o;let t=(o=this._renderManagerService.getRenderUnitById(r))==null?void 0:o.with(a.DocSkeletonManagerService),i=t==null?void 0:t.getSkeleton().getSkeletonData(),s=t==null?void 0:t.getViewModel(),c=i&&s?Ye(r,f.drawingId,i,s.getEditArea(),m):null;c&&(u=Qe(c,m.layoutType,void 0,void 0,{left:n,top:e}))}let _=p?l.posOffset+e:u==null?void 0:u.positionV.posOffset,v=d?i.posOffset+n:u==null?void 0:u.positionH.posOffset;e!==0&&_!=null&&t.push({drawingId:f.drawingId,key:`positionV`,value:{relativeFrom:l.relativeFrom,posOffset:_}}),n!==0&&v!=null&&t.push({drawingId:f.drawingId,key:`positionH`,value:{relativeFrom:i.relativeFrom,posOffset:v}})}}t.length>0&&r&&i&&this._commandService.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:r,subUnitId:i,drawings:t})}_updateInlineDrawingAnchor(e,t,n){if(this._transformerCache.size!==1)return;let{contentBoxPointGroup:r}=this._getInlineDrawingAnchor(e,t,n)??{};r!=null&&this._createOrUpdateInlineAnchor(e.unitId,r)}_getInlineDrawingAnchor(e,t,n){var o;let s=this._renderManagerService.getRenderUnitById(e.unitId),c=s==null?void 0:s.with(a.DocSkeletonManagerService).getSkeleton();if(s==null)return;let{mainComponent:l,scene:u}=s,d=l,f=u.getViewports()[0],{pageLayoutType:p=i.PageLayoutType.VERTICAL,pageMarginLeft:m,pageMarginTop:h}=d.getOffsetConfig(),g=null,_=!1,v=-1,y=``,b=this._getTransformCoordForDocumentOffset(d,f,t,n);if(b==null)return;let x=(o=this._renderManagerService.getRenderUnitById(e.unitId))==null?void 0:o.with(r.DocSelectionRenderService);if(x==null)return;let S=c==null?void 0:c.findNodeByCoord(b,p,m,h,{strict:!1,segmentId:x.getSegment(),segmentPage:x.getSegmentPage()});if(S){let{node:e,ratioX:t,segmentPage:n,segmentId:r}=S;_=t<.5,g=e,v=n,y=r}if(g==null)return;let C=c==null?void 0:c.findPositionByGlyph(g,v),w=(0,r.neoGetDocObject)(s);if(C==null||c==null)return;let T={...C,isBack:_},E=w.document.getOffsetConfig(),{cursorList:D,contentBoxPointGroup:O}=new r.NodePositionConvertToCursor(E,c).getRangePointData(T,T),{startOffset:k}=(0,r.getOneTextSelectionRange)(D)??{};if(k!=null)return{offset:k,contentBoxPointGroup:O,segmentId:y,segmentPage:v}}_getDrawingAnchor(e,n){var o,s,c,l;let u=this._renderManagerService.getRenderUnitById(e.unitId),d=u==null?void 0:u.with(a.DocSkeletonManagerService).getSkeleton(),f=d==null?void 0:d.getSkeletonData();if(f==null||u==null)return;let{pages:p,skeHeaders:m,skeFooters:h}=f,{mainComponent:g,scene:_}=u,v=g,y=_.getViewports()[0],{pageLayoutType:b=i.PageLayoutType.VERTICAL,pageMarginLeft:x,pageMarginTop:S,docsLeft:C,docsTop:w}=v.getOffsetConfig(),{left:T,top:E,angle:D}=n,{width:O,height:k}=n,{positionV:A,positionH:j}=e.docTransform,{width:M,height:N}=this._getPageContentSize(e);O=Math.min(O,M),k=Math.min(k,N);let P=null,F=``,I=-1,L={...e.docTransform,size:{width:O,height:k},angle:D},{x:ee,y:te}=_.getViewportScrollXY(y),R=this._getTransformCoordForDocumentOffset(v,y,T-ee,E-te);if(R==null)return;let z=(o=this._renderManagerService.getRenderUnitById(e.unitId))==null?void 0:o.with(r.DocSelectionRenderService);if(z==null)return;let B=d==null?void 0:d.findNodeByCoord(R,b,x,S,{strict:!1,segmentId:z.getSegment(),segmentPage:z.getSegmentPage()});if(B){let{node:e,segmentPage:t,segmentId:n}=B;P=e,I=t,F=n}if(P==null)return;let V=(s=P.parent)==null?void 0:s.parent,H=V==null?void 0:V.parent,ne=(H==null||(c=H.parent)==null?void 0:c.top)??0,U=(H==null?void 0:H.lines.find(e=>e.paragraphIndex===(V==null?void 0:V.paragraphIndex)&&e.paragraphStart))??(H==null?void 0:H.lines[0]),W=H==null||(l=H.parent)==null?void 0:l.parent;if(V==null||H==null||U==null||W==null)return;this._liquid.reset();let G=W.type===i.DocumentSkeletonPageType.CELL?dt(e.unitId,W):null,K=(G==null?void 0:G.hostPage)??W,re=K.type,q=(W.type===i.DocumentSkeletonPageType.HEADER||W.type===i.DocumentSkeletonPageType.FOOTER)&&I>-1?p[I]:void 0,ie=ft({drawing:e,height:n.height,hostPage:q,page:W,width:n.width}),ae=this._liquid.x,J=this._liquid.y;for(let e of p){let{headerId:t,footerId:n,pageHeight:r,pageWidth:a,marginLeft:o,marginBottom:s}=e,c=p.indexOf(e);if(I>-1&&c===I){switch(ae=this._liquid.x,J=this._liquid.y,re){case i.DocumentSkeletonPageType.HEADER:{var oe;let n=(oe=m.get(t))==null?void 0:oe.get(e.headerLayoutKey??a);if(n)this._liquid.translatePagePadding({marginTop:n.marginTop,marginLeft:o});else throw Error(`header skeleton not found`);break}case i.DocumentSkeletonPageType.FOOTER:{var Y;let t=(Y=h.get(n))==null?void 0:Y.get(e.footerLayoutKey??a);if(t)this._liquid.translatePagePadding({marginTop:r-s+t.marginTop,marginLeft:o});else throw Error(`footer skeleton not found`);break}default:this._liquid.translatePagePadding(e)}break}if(e===K&&(ae=this._liquid.x,J=this._liquid.y),this._liquid.translatePagePadding(e),e===K)break;this._liquid.restorePagePadding(e),this._liquid.translatePage(e,b,x,S)}if(G&&this._liquid.translate(G.offset.left,G.offset.top),A.relativeFrom===t.ObjectRelativeFromV.LINE)P=V.divides[0].glyphGroup[0];else{var X;P=((X=U.divides)==null||(X=X[0])==null||(X=X.glyphGroup)==null?void 0:X[0])??P}switch(L.positionH={relativeFrom:j.relativeFrom,posOffset:T-this._liquid.x-C},j.relativeFrom){case t.ObjectRelativeFromH.PAGE:ie&&(L.positionH.posOffset=T-ae-C);break;case t.ObjectRelativeFromH.MARGIN:L.positionH.posOffset=T-this._liquid.x-C-W.marginLeft;break;case t.ObjectRelativeFromH.COLUMN:L.positionH.posOffset=T-this._liquid.x-C-H.left}switch(L.positionV={relativeFrom:A.relativeFrom,posOffset:E-this._liquid.y-w},A.relativeFrom){case t.ObjectRelativeFromV.PAGE:L.positionV.posOffset=ie?E-J-w:E-this._liquid.y-w+W.marginTop;break;case t.ObjectRelativeFromV.LINE:L.positionV.posOffset=E-this._liquid.y-w-ne-V.top;break;case t.ObjectRelativeFromV.PARAGRAPH:L.positionV.posOffset=E-this._liquid.y-w-ne-U.top}if(P==null)return;let se=d==null?void 0:d.findPositionByGlyph(P,I),ce=(0,r.neoGetDocObject)(u);if(se==null||d==null)return;let le={...se,isBack:!0},ue=ce.document.getOffsetConfig(),{cursorList:de}=new r.NodePositionConvertToCursor(ue,d).getRangePointData(le,le),{startOffset:fe}=(0,r.getOneTextSelectionRange)(de)??{};if(fe!=null)return{offset:fe,docTransform:L,segmentId:F,segmentPage:I}}_updateDrawingSize(e,t){let r=[],{drawing:i,width:a,height:o,angle:s}=e,{unitId:c,subUnitId:l}=i,{width:u,height:d,angle:f}=t,{width:p,height:m}=this._getPageContentSize(i);u=Math.min(p,u),d=Math.min(m,d),(u!==a||d!==o)&&r.push({drawingId:i.drawingId,key:`size`,value:{width:u,height:d}}),f!==s&&r.push({drawingId:i.drawingId,key:`angle`,value:f}),r.length>0&&c&&l&&this._commandService.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:c,subUnitId:l,drawings:r})}_moveInlineDrawing(e,t,n){let{offset:r,segmentId:i,segmentPage:a}=this._getInlineDrawingAnchor(e,t,n)??{};return this._commandService.executeCommand(lt.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:r,segmentId:i,segmentPage:a,needRefreshDrawings:r==null})}_limitDrawingInPage(e,n){let r=this._renderManagerService.getRenderUnitById(e.unitId),{left:i,top:o,width:s,height:c,angle:l}=n,u=r==null?void 0:r.with(a.DocSkeletonManagerService).getSkeleton(),d=u==null?void 0:u.getSkeletonData(),{pages:f}=d??{};if(d==null||r==null||f==null)return{left:i,top:o,width:s,height:c,angle:l};let{mainComponent:p}=r,{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:i,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{offset:a,docTransform:o,segmentId:s,segmentPage:c}=this._getDrawingAnchor(e,i)??{};return a==null||o==null?this._updateMultipleDrawingDocTransform(/* @__PURE__ */ new Map([[e.drawingId,n]])):this._commandService.executeCommand(ut.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:a,docTransform:o,segmentId:s,segmentPage:c})}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderUnitById(e),n=t==null?void 0:t.scene;if(n!=null)return{scene:n,transformer:n.getTransformerByCreate()}}_getTransformCoordForDocumentOffset(e,t,n,r){let{documentTransform:a}=e.getOffsetConfig(),o=t.transformVector2SceneCoord(i.Vector2.FromArray([n,r]));if(o)return a.clone().invert().applyPoint(o)}_createOrUpdateInlineAnchor(e,n){let a=this._renderManagerService.getRenderUnitById(e);if(a==null)return;let{mainComponent:o,scene:s}=a,{docsLeft:c,docsTop:l}=o.getOffsetConfig(),{left:u,top:d,height:f}=(0,r.getAnchorBounding)(n),p=u+c,m=d+l;if(this._anchorShape){this._anchorShape.transformByState({left:p,top:m,height:f}),this._anchorShape.show();return}let h=new i.Rect(`__InlineDrawingAnchor__`+(0,t.generateRandomId)(6),{left:p,top:m,height:f,strokeWidth:2,stroke:(0,i.getColor)(t.COLORS.darkgray,1),evented:!1});this._anchorShape=h,s.addObject(h,r.TEXT_RANGE_LAYER_INDEX)}_getPageContentSize(e){let t=this._renderManagerService.getRenderUnitById(e.unitId),n=t==null?void 0:t.with(a.DocSkeletonManagerService).getSkeleton(),r=n==null?void 0:n.getSkeletonData();if(r==null||t==null)return{width:500,height:500};let{pages:i}=r,o=null;for(let t of i){if(t.isLayoutPlaceholder||t.isMaterializationPlaceholder)continue;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)}}return{width:500,height:500}}};pt=N([M(0,t.ICommandService),M(1,t.IUniverInstanceService),M(2,s.IDrawingManagerService),M(3,i.IRenderManagerService)],pt);function mt({ref:e,...t}){let{preserveStrokeWidth:n,icon:r,id:i,className:a,extend:o,...s}=t,c=`univerjs-icon univerjs-icon-${i} ${a||``}`.trim(),l=`_${(0,d.useId)()}`,u=(0,d.useRef)(null);return(0,d.useImperativeHandle)(e,()=>u.current),(0,d.useLayoutEffect)(()=>{if(n&&u.current&&u.current.localName===r.tag)return vt(u.current)},[n,r]),ht(r,`${i}`,{defIds:r.defIds,idSuffix:l},{ref:u,className:c,...s},o)}function ht(e,t,n,r,i){return(0,d.createElement)(e.tag,{key:t,...gt(e,n,i),...r},(_t(e,n).children||[]).map((r,a)=>ht(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function gt(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),n!=null&&n.colorChannel1&&r.stroke===`colorChannel1`&&(r.stroke=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0||(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))})),r}function _t(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function vt(e){let t=e.viewBox.baseVal,n=Math.max(t.width,t.height);if(!Number.isFinite(n)||n<=0||t.width<=0||t.height<=0)return()=>void 0;let r=16/n,i=Array.from(e.querySelectorAll(`circle, ellipse, line, path, polygon, polyline, rect, text, textPath, tspan, use`)).flatMap(e=>{let t=getComputedStyle(e),n=Number.parseFloat(t.strokeWidth);return t.stroke===`none`||Number.parseFloat(t.strokeOpacity)===0||t.vectorEffect===`non-scaling-stroke`||!Number.isFinite(n)||n<=0?[]:[{element:e,hadStyleAttribute:e.hasAttribute(`style`),originalStrokeWidth:n,strokeWidth:yt(e.style,`stroke-width`)}]}).map(e=>({appliedStrokeWidth:null,element:e.element,hadStyleAttribute:e.hadStyleAttribute,isReleased:!1,originalStrokeWidth:e.originalStrokeWidth,strokeWidth:e.strokeWidth}));if(i.length===0)return()=>void 0;let a=(e,n)=>{if(t.width<=0||t.height<=0||e<=0||n<=0)return;let a=Math.min(e/t.width,n/t.height);!Number.isFinite(a)||a<=0||i.forEach(e=>{if(e.isReleased)return;if(e.appliedStrokeWidth!==null&&(e.element.style.getPropertyValue(`stroke-width`)!==e.appliedStrokeWidth||e.element.style.getPropertyPriority(`stroke-width`)!==e.strokeWidth.priority)){e.appliedStrokeWidth=null,e.isReleased=!0;return}let t=e.originalStrokeWidth*r/a,n=`${Number(t.toFixed(12))}px`;e.element.style.setProperty(`stroke-width`,n,e.strokeWidth.priority),e.appliedStrokeWidth=n})},o=e.getBoundingClientRect();a(o.width,o.height);let s=typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{if(t.some(t=>t.target===e)){let t=e.getBoundingClientRect();a(t.width,t.height)}});return s==null||s.observe(e),()=>{s==null||s.disconnect(),i.forEach(e=>{e.appliedStrokeWidth!==null&&(bt(e.element.style,`stroke-width`,e.appliedStrokeWidth,e.strokeWidth.priority,e.strokeWidth),!e.hadStyleAttribute&&e.element.style.length===0&&e.element.removeAttribute(`style`))})}}function yt(e,t){return{priority:e.getPropertyPriority(t),value:e.getPropertyValue(t)}}function bt(e,t,n,r,i){e.getPropertyValue(t)===n&&e.getPropertyPriority(t)===r&&(i.value?e.setProperty(t,i.value,i.priority):e.removeProperty(t))}mt.displayName=`UniverIcon`;let xt={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},St=(0,d.forwardRef)(function(e,t){return(0,d.createElement)(mt,Object.assign({},e,{id:`check-mark-icon`,ref:t,icon:xt}))});St.displayName=`CheckMarkIcon`;function Ct(e){let o=(0,c.useDependency)(t.ICommandService),l=(0,c.useDependency)(t.LocaleService),u=(0,c.useDependency)(s.IDrawingManagerService),f=(0,c.useDependency)(i.IRenderManagerService),p=(0,c.useDependency)(t.IUniverInstanceService),{drawings:m}=e,{unitId:h}=m[0],g=p.getUnit(h,t.UniverInstanceType.UNIVER_DOC),_=g==null?void 0:g.getSnapshot().documentStyle.documentFlavor,v=f.getRenderUnitById(h),y=v.scene.getTransformerByCreate(),b=[{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)}],x=[{label:l.t(`docs-drawing-ui.image-position.line`),value:String(t.ObjectRelativeFromV.LINE),disabled:_===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.page`),value:String(t.ObjectRelativeFromV.PAGE),disabled:_===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.margin`),value:String(t.ObjectRelativeFromV.MARGIN),disabled:_===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.paragraph`),value:String(t.ObjectRelativeFromV.PARAGRAPH)}],[S,C]=(0,d.useState)(!0),[w,T]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0}),[E,D]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0}),[O,k]=(0,d.useState)(!0),[A,j]=(0,d.useState)(!0);function M(e,t,i){var a;let s=u.getFocusDrawings();if(s.length===0)return;let c=s.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));o.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:s[0].unitId,subUnitId:s[0].subUnitId,drawings:c.flatMap(n=>[{drawingId:n.drawingId,key:e,value:t},...i?[{drawingId:n.drawingId,key:`positionH`,value:i}]:[]])});let l=(a=f.getRenderUnitById(h))==null?void 0:a.with(r.DocSelectionRenderService);l&&l.blur(),y.refreshControls()}function N(){var e,t;let r=u.getFocusDrawings()[0];if(!r)return null;let i=(e=f.getRenderUnitById(r.unitId))==null?void 0:e.with(a.DocSkeletonManagerService),o=i==null?void 0:i.getSkeleton().getSkeletonData(),s=i==null?void 0:i.getViewModel(),c=g==null?void 0:g.getSnapshot();return o&&s?Ye(r.unitId,r.drawingId,o,s.getEditArea(),c&&((t=(0,n.findDocDrawing)(c,r.drawingId))==null?void 0:t.drawing)):null}function P(e){let n=[t.ObjectRelativeFromH.COLUMN,t.ObjectRelativeFromH.PAGE,t.ObjectRelativeFromH.MARGIN].find(t=>String(t)===e);if(n==null||w.relativeFrom===n)return;let r=N();r&&M(`positionH`,Qe(r,r.skeDrawing.drawingOrigin.layoutType,n).positionH)}function F(e){let n=[t.ObjectRelativeFromV.LINE,t.ObjectRelativeFromV.PAGE,t.ObjectRelativeFromV.MARGIN,t.ObjectRelativeFromV.PARAGRAPH].find(t=>String(t)===e);if(n==null||E.relativeFrom===n)return;let r=N();if(!r)return;let i=Qe(r,r.skeDrawing.drawingOrigin.layoutType,void 0,n),o=g?Ze(r,i,g.getSnapshot(),l,v.with(a.DocSkeletonManagerService).getViewModel().getEditArea()):i;o&&M(`positionV`,o.positionV,o.positionH)}function I(e){F(String(e?t.ObjectRelativeFromV.PARAGRAPH:t.ObjectRelativeFromV.PAGE))}return(0,d.useEffect)(()=>{function e(e){var r;let i=g==null?void 0:g.getSnapshot(),a=i&&((r=(0,n.findDocDrawing)(i,e.drawingId))==null?void 0:r.drawing);if(a==null)return;let{layoutType:o}=a,{positionH:s,positionV:c}=a.docTransform;T(s),D(c),C(o===t.PositionedObjectLayoutType.INLINE),k(c.relativeFrom===t.ObjectRelativeFromV.PARAGRAPH||c.relativeFrom===t.ObjectRelativeFromV.LINE)}function r(){let t=u.getFocusDrawings();t.length!==0&&e(t[0])}r();let i=u.focus$.subscribe(t=>{t.length===0?j(!1):(j(!0),e(t[0]))}),s=o.onCommandExecuted(async e=>{e.id===a.RichTextEditingMutation.id&&r()});return()=>{i.unsubscribe(),s.dispose()}},[o,g,u]),{localeService:l,showPanel:A,disabled:S,hPosition:w,vPosition:E,followTextMove:O,documentFlavor:_,HORIZONTAL_RELATIVE_FROM:b,VERTICAL_RELATIVE_FROM:x,handlePositionChange:M,handleHorizontalRelativeFromChange:P,handleVerticalRelativeFromChange:F,handleFollowTextMoveCheck:I,MIN_OFFSET:-1e3,MAX_OFFSET:1e3}}function wt(e){let n=(0,c.useDependency)(t.LocaleService),r=[{title:`docs-drawing-ui.image-position.horizontal`,reference:`docs-drawing-ui.image-position.toTheRightOf`,position:e.hPosition,options:e.horizontalOptions,onOffsetChange:e.onHorizontalOffsetChange,onReferenceChange:e.onHorizontalReferenceChange},{title:`docs-drawing-ui.image-position.vertical`,reference:`docs-drawing-ui.image-position.bellow`,position:e.vPosition,options:e.verticalOptions,onOffsetChange:e.onVerticalOffsetChange,onReferenceChange:e.onVerticalReferenceChange}];return/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-grid univer-gap-5`,children:[r.map(t=>/* @__PURE__ */ (0,f.jsxs)(`section`,{className:`univer-grid univer-gap-3`,children:[/* @__PURE__ */ (0,f.jsx)(`h3`,{className:`univer-m-0 univer-text-sm univer-font-medium`,children:n.t(t.title)}),/* @__PURE__ */ (0,f.jsxs)(`label`,{className:`univer-grid univer-gap-2 univer-text-sm`,children:[n.t(`docs-drawing-ui.image-position.absolutePosition`),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{disabled:e.disabled,className:`univer-h-12 univer-w-full`,inputClassName:`[&_input]:!univer-h-12 [&_input]:!univer-text-base`,controls:!1,min:e.minOffset,max:e.maxOffset,precision:1,value:t.position.posOffset??0,onChange:e=>{e!=null&&t.onOffsetChange(e)}})]}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2`,role:`group`,"aria-label":n.t(t.reference),children:t.options.map(n=>/* @__PURE__ */ (0,f.jsx)(o.MobileActionRow,{title:n.label,variant:`subtle`,disabled:e.disabled||n.disabled,"aria-pressed":String(t.position.relativeFrom)===n.value,className:`univer-px-3 univer-text-center univer-text-sm aria-pressed:!univer-bg-primary-50 aria-pressed:!univer-text-primary-600`,onClick:()=>t.onReferenceChange(n.value)},n.value))})]},t.title)),/* @__PURE__ */ (0,f.jsx)(o.MobileActionRow,{role:`switch`,title:n.t(`docs-drawing-ui.image-position.moveObjectWithText`),variant:`subtle`,"aria-checked":e.followTextMove,disabled:e.disabled||e.disableFollowTextMove,trailing:e.followTextMove?/* @__PURE__ */ (0,f.jsx)(St,{className:`univer-text-primary-600`}):void 0,onClick:()=>e.onFollowTextMoveChange(!e.followTextMove)})]})}function Tt(e){var t;let n=(0,c.useDependency)(i.IRenderManagerService),r=e.drawings[0];return r&&(t=n.getRenderUnitById(r.unitId))!=null&&t.scene?/* @__PURE__ */ (0,f.jsx)(Et,{...e}):null}function Et(e){let{showPanel:n,disabled:r,hPosition:i,vPosition:a,followTextMove:o,documentFlavor:s,HORIZONTAL_RELATIVE_FROM:c,VERTICAL_RELATIVE_FROM:l,handlePositionChange:u,handleHorizontalRelativeFromChange:d,handleVerticalRelativeFromChange:p,handleFollowTextMoveCheck:m,MIN_OFFSET:h,MAX_OFFSET:g}=Ct(e);return n?/* @__PURE__ */ (0,f.jsx)(wt,{disabled:r,followTextMove:o,disableFollowTextMove:s===t.DocumentFlavor.MODERN,hPosition:i,vPosition:a,horizontalOptions:c,verticalOptions:l,minOffset:h,maxOffset:g,onHorizontalOffsetChange:e=>u(`positionH`,{...i,posOffset:e}),onVerticalOffsetChange:e=>u(`positionV`,{...a,posOffset:e}),onHorizontalReferenceChange:d,onVerticalReferenceChange:p,onFollowTextMoveChange:m}):null}function Dt(e){let r=(0,c.useDependency)(t.ICommandService),i=(0,c.useDependency)(t.LocaleService),o=(0,c.useDependency)(s.IDrawingManagerService),l=(0,c.useDependency)(t.IUniverInstanceService),{drawings:u}=e,{unitId:f}=u[0],p=l.getUnit(f,t.UniverInstanceType.UNIVER_DOC),[m,h]=(0,d.useState)(!0),[g,_]=(0,d.useState)(!0),[v,y]=(0,d.useState)(!0),[b,x]=(0,d.useState)(n.TextWrappingStyle.INLINE),[S,C]=(0,d.useState)(t.WrapTextType.BOTH_SIDES),[w,T]=(0,d.useState)({distT:0,distL:0,distB:0,distR:0}),[E,D]=(0,d.useState)(!0);function O(e){let t=Object.values(n.TextWrappingStyle).find(t=>t===e);if(t==null)return;let i=o.getFocusDrawings();if(i.length===0)return;let{unitId:a,subUnitId:s}=i[0],c=i.map(({unitId:e,subUnitId:t,drawingId:n})=>({unitId:e,subUnitId:t,drawingId:n}));r.executeCommand(n.UpdateDocDrawingWrappingStyleCommand.id,{unitId:a,subUnitId:s,drawings:c,wrappingStyle:t})}function k(e){let n=[t.WrapTextType.BOTH_SIDES,t.WrapTextType.LEFT,t.WrapTextType.RIGHT].find(t=>String(t)===String(e));if(n==null)return;let i=o.getFocusDrawings();if(i.length===0)return;let a=i.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));r.executeCommand(ct.id,{unitId:i[0].unitId,subUnitId:i[0].subUnitId,drawings:a,wrapText:n})}function A(e,t){if(e==null)return;let n=o.getFocusDrawings();if(n.length===0)return;let i=n.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));r.executeCommand(st.id,{unitId:n[0].unitId,subUnitId:n[0].subUnitId,drawings:i,dist:{[t]:e}})}return(0,d.useEffect)(()=>{function e(){let e=o.getFocusDrawings();e.length!==0&&i(e[0])}function i(e){var r;let i=p==null||(r=p.getSnapshot())==null||(r=r.drawings)==null?void 0:r[e.drawingId];if(i==null)return;let{distT:a=0,distL:o=0,distB:s=0,distR:c=0,layoutType:l=t.PositionedObjectLayoutType.INLINE,behindDoc:u=t.BooleanNumber.FALSE,wrapText:d=t.WrapTextType.BOTH_SIDES}=i;if(T({distT:a,distL:o,distB:s,distR:c}),C(d),h(l!==t.PositionedObjectLayoutType.WRAP_SQUARE),l===t.PositionedObjectLayoutType.WRAP_NONE||l===t.PositionedObjectLayoutType.INLINE?_(!0):_(!1),l===t.PositionedObjectLayoutType.WRAP_NONE||l===t.PositionedObjectLayoutType.INLINE||l===t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM?y(!0):y(!1),l===t.PositionedObjectLayoutType.WRAP_NONE)u===t.BooleanNumber.TRUE?x(n.TextWrappingStyle.BEHIND_TEXT):x(n.TextWrappingStyle.IN_FRONT_OF_TEXT);else switch(l){case t.PositionedObjectLayoutType.INLINE:x(n.TextWrappingStyle.INLINE);break;case t.PositionedObjectLayoutType.WRAP_SQUARE:x(n.TextWrappingStyle.WRAP_SQUARE);break;case t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM:x(n.TextWrappingStyle.WRAP_TOP_AND_BOTTOM);break;default:throw Error(`Unsupported layout type: ${l}`)}}e();let s=o.focus$.subscribe(e=>{e.length===0?D(!1):(D(!0),i(e[0]))}),c=r.onCommandExecuted(async t=>{t.id===a.RichTextEditingMutation.id&&e()});return()=>{s.unsubscribe(),c.dispose()}},[r,p,o]),{localeService:i,showPanel:E,wrappingStyle:b,wrapText:S,distToText:w,disableWrapText:m,disableDistTB:g,disableDistLR:v,handleWrappingStyleChange:O,handleWrapTextChange:k,handleDistToTextChange:A,MIN_MARGIN:0,MAX_MARGIN:100}}let Ot=[{value:n.TextWrappingStyle.INLINE,label:`docs-drawing-ui.image-text-wrap.inline`},{value:n.TextWrappingStyle.WRAP_SQUARE,label:`docs-drawing-ui.image-text-wrap.square`},{value:n.TextWrappingStyle.WRAP_TOP_AND_BOTTOM,label:`docs-drawing-ui.image-text-wrap.topAndBottom`},{value:n.TextWrappingStyle.BEHIND_TEXT,label:`docs-drawing-ui.image-text-wrap.behindText`},{value:n.TextWrappingStyle.IN_FRONT_OF_TEXT,label:`docs-drawing-ui.image-text-wrap.inFrontText`}],kt=[{value:t.WrapTextType.BOTH_SIDES,label:`docs-drawing-ui.image-text-wrap.bothSide`},{value:t.WrapTextType.LEFT,label:`docs-drawing-ui.image-text-wrap.leftOnly`},{value:t.WrapTextType.RIGHT,label:`docs-drawing-ui.image-text-wrap.rightOnly`}],At=[{key:`distT`,label:`docs-drawing-ui.image-text-wrap.top`},{key:`distB`,label:`docs-drawing-ui.image-text-wrap.bottom`},{key:`distL`,label:`docs-drawing-ui.image-text-wrap.left`},{key:`distR`,label:`docs-drawing-ui.image-text-wrap.right`}];function jt(e){let n=(0,c.useDependency)(t.LocaleService);return/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-flex univer-flex-col univer-gap-5`,children:[/* @__PURE__ */ (0,f.jsx)(`div`,{role:`group`,"aria-label":n.t(`docs-drawing-ui.image-text-wrap.wrappingStyle`),className:`univer-grid univer-gap-2`,children:Ot.map(t=>/* @__PURE__ */ (0,f.jsx)(o.MobileActionRow,{title:n.t(t.label),variant:`subtle`,"aria-pressed":e.wrappingStyle===t.value,className:`aria-pressed:!univer-bg-primary-50 aria-pressed:!univer-text-primary-600`,trailing:e.wrappingStyle===t.value?/* @__PURE__ */ (0,f.jsx)(St,{}):void 0,onClick:()=>e.onStyleChange(t.value)},t.value))}),!e.disableWrapText&&/* @__PURE__ */ (0,f.jsxs)(`section`,{className:`univer-grid univer-gap-2`,children:[/* @__PURE__ */ (0,f.jsx)(`h3`,{className:`univer-m-0 univer-text-sm univer-font-medium`,children:n.t(`docs-drawing-ui.image-text-wrap.wrapText`)}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-3 univer-gap-2`,children:kt.map(t=>/* @__PURE__ */ (0,f.jsx)(o.MobileActionRow,{title:n.t(t.label),variant:`subtle`,"aria-pressed":e.wrapText===t.value,className:`univer-px-2 univer-text-center univer-text-sm aria-pressed:!univer-bg-primary-50 aria-pressed:!univer-text-primary-600`,onClick:()=>e.onWrapTextChange(t.value)},t.value))})]}),(!e.disableDistTB||!e.disableDistLR)&&/* @__PURE__ */ (0,f.jsxs)(`section`,{className:`univer-grid univer-gap-3`,children:[/* @__PURE__ */ (0,f.jsx)(`h3`,{className:`univer-m-0 univer-text-sm univer-font-medium`,children:n.t(`docs-drawing-ui.image-text-wrap.distanceFromText`)}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-3`,children:At.filter(({key:t})=>t===`distT`||t===`distB`?!e.disableDistTB:!e.disableDistLR).map(({key:t,label:r})=>/* @__PURE__ */ (0,f.jsxs)(`label`,{className:`univer-grid univer-gap-2 univer-text-sm`,children:[n.t(r),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{className:`univer-h-12 univer-w-full`,inputClassName:`[&_input]:!univer-h-12 [&_input]:!univer-text-base`,controls:!1,min:e.minMargin,max:e.maxMargin,precision:1,value:e.distToText[t]??0,onChange:n=>e.onDistanceChange(n,t)})]},t))})]})]})}function Mt(e){var t;let n=(0,c.useDependency)(i.IRenderManagerService),r=e.drawings[0];return r&&(t=n.getRenderUnitById(r.unitId))!=null&&t.scene?/* @__PURE__ */ (0,f.jsx)(Nt,{...e}):null}function Nt(e){let{showPanel:t,wrappingStyle:n,wrapText:r,distToText:i,disableWrapText:a,disableDistTB:o,disableDistLR:s,handleWrappingStyleChange:c,handleWrapTextChange:l,handleDistToTextChange:u,MIN_MARGIN:d,MAX_MARGIN:p}=Dt(e);return t?/* @__PURE__ */ (0,f.jsx)(jt,{wrappingStyle:n,wrapText:r,distToText:i,minMargin:d,maxMargin:p,disableWrapText:a,disableDistTB:o,disableDistLR:s,onStyleChange:c,onWrapTextChange:l,onDistanceChange:u}):null}let Pt=[{value:`image`,label:`docs-drawing-ui.title`},{value:`wrap`,label:`docs-drawing-ui.image-text-wrap.title`},{value:`position`,label:`docs-drawing-ui.image-position.title`}];function Ft(){let e=(0,c.useDependency)(s.IDrawingManagerService),n=(0,c.useObservable)(e.focus$,e.getFocusDrawings())??[],r=(0,c.useDependency)(t.LocaleService),i=(0,c.useDependency)(t.ICommandService),[a,l]=(0,d.useState)(`image`);return/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-flex univer-min-w-0 univer-flex-col univer-gap-4 univer-pb-2`,children:[/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-3 univer-gap-2`,role:`group`,children:Pt.map(e=>/* @__PURE__ */ (0,f.jsx)(o.MobileActionRow,{"aria-pressed":a===e.value,title:r.t(e.label),variant:`subtle`,className:`univer-min-w-0 univer-px-2 univer-text-center univer-text-sm aria-pressed:!univer-bg-primary-50 aria-pressed:!univer-text-primary-600`,onClick:()=>l(e.value)},e.value))}),/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[a===`image`&&/* @__PURE__ */ (0,f.jsx)(u.DrawingCommonPanel,{drawings:n,hasAlign:!1,hasCropper:!0,hasGroup:!1,hasTransform:!1,onCropStart:()=>i.executeCommand(G.id,{value:`close`})}),a===`wrap`&&/* @__PURE__ */ (0,f.jsx)(Mt,{drawings:n}),a===`position`&&/* @__PURE__ */ (0,f.jsx)(Tt,{drawings:n})]})]})}let It=class extends t.Disposable{constructor(e){super(),this.disposeWithMe(e.register(W,Ft))}};It=N([M(0,(0,t.Inject)(c.ComponentManager))],It);let Lt={id:G.id,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`:{let e={layout:`canvas`,header:{title:i.t(`docs-drawing-ui.panel.title`)},children:{label:W},onClose:()=>{a.focusDrawing(null)},width:360};r.open(e);break}default:r.close()}return!0}};var Rt=class{constructor(){E(this,`_adapters`,[])}registerAdapter(e){return this._adapters.push(e),(0,t.toDisposable)(()=>{let t=this._adapters.indexOf(e);t>=0&&this._adapters.splice(t,1)})}getItems(e){for(let t of this._adapters){let n=t.getItems(e);if(n)return[...n].sort((e,t)=>e.index-t.index)}return null}};let zt=class extends t.RxDisposable{constructor(e,t,n,r,i,a,o,s,c,l,u){super(),this._drawingManagerService=e,this._canvasPopManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._contextService=i,this._drawingAdapterService=a,this._docDrawingService=o,this._floatingToolbarAdapterService=s,this._commandService=c,this._menuManagerService=l,this._permissionService=u,E(this,`_initImagePopupMenu`,/* @__PURE__ */ new Set),E(this,`_embeddedRenderUnits`,/* @__PURE__ */ new Set),E(this,`_popupMenuListeners`,/* @__PURE__ */ new Map),E(this,`_disposePopupsByUnit`,/* @__PURE__ */ new Map),E(this,`_popupTargetsByUnit`,/* @__PURE__ */ new Map),E(this,`_isDrawingPanelOpen`,!1),this._init()}_init(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{let t=[...this._popupTargetsByUnit.values()].some(t=>{let n=this._docDrawingService.getDrawingByParam(t),r=n&&this._drawingAdapterService.getEditDrawingCommandInfo({...t,drawing:n});return(r==null?void 0:r.commandId)===e.id});if((e.id===K.id||t)&&this._clearPopups(void 0,!0),e.id===Lt.id){let t=e.params;this._isDrawingPanelOpen=(t==null?void 0:t.value)===`open`,this._isDrawingPanelOpen&&this._clearPopups(void 0,!0)}})),this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e.length===0&&(this._isDrawingPanelOpen=!1)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{for(let n of e)for(let[e,r]of this._popupTargetsByUnit)if(r.unitId===n.unitId&&r.subUnitId===n.subUnitId&&r.drawingId===n.drawingId){var t;this._clearPopups(e,!0),(t=this._renderManagerService.getRenderUnitById(e))==null||t.scene.getTransformerByCreate().clearSelectedObjects()}})),this.disposeWithMe(this._permissionService.permissionPointUpdate$.subscribe(()=>{for(let[e,t]of this._popupTargetsByUnit)this._canEditDrawing(t.unitId,t.drawingId)||this._clearPopups(e,!0)})),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.disposeWithMe(this._renderManagerService.created$.pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>{e.type!==t.UniverInstanceType.UNIVER_DOC||e.isMainScene||(this._embeddedRenderUnits.add(e.unitId),this._create(this._univerInstanceService.getUnit(e.unitId,t.UniverInstanceType.UNIVER_DOC)))})),this.disposeWithMe(this._renderManagerService.disposed$.pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>{this._embeddedRenderUnits.delete(e)&&this._disposePopupMenuListener(e)})),this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_DOC).forEach(e=>this._create(e))}_dispose(e){let t=e.getUnitId();this._clearPopups(t,!0),this._disposePopupMenuListener(t),this._renderManagerService.removeRender(t)}_clearPopups(e,t=!1){if(e==null){[...this._disposePopupsByUnit.keys()].forEach(e=>this._clearPopups(e,t));return}let n=this._disposePopupsByUnit.get(e);if(n){for(let e=n.length-1;e>=0;--e){let r=n[e];(t||r.canDispose())&&(r.dispose(),n.splice(e,1))}n.length===0&&(this._disposePopupsByUnit.delete(e),this._popupTargetsByUnit.delete(e))}}_getDisposePopups(e){let t=this._disposePopupsByUnit.get(e);if(t)return t;let n=[];return this._disposePopupsByUnit.set(e,n),n}_create(e){if(!e)return;let n=e.getUnitId();if(!(0,t.isInternalEditorID)(n)&&this._renderManagerService.has(n)&&!this._initImagePopupMenu.has(n)){let e=this._popupMenuListener(n);e&&(this._popupMenuListeners.set(n,e),this._initImagePopupMenu.add(n))}}_disposePopupMenuListener(e){var t;(t=this._popupMenuListeners.get(e))==null||t.dispose(),this._popupMenuListeners.delete(e),this._initImagePopupMenu.delete(e),this._clearPopups(e,!0)}_hasCropObject(e){let t=e.getAllObjects();for(let e of t)if(e instanceof u.ImageCropperObject)return!0;return!1}_handleClearControl(e,n,r){this._clearPopups(e,r),queueMicrotask(()=>{n.getSelectedObjectMap().size>0||(this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._drawingManagerService.focusDrawing(null))})}_registerDrawingPopup(e,t,n){this.disposeWithMe(t),this._getDisposePopups(e).push(t),this._popupTargetsByUnit.set(e,n),this._drawingManagerService.getFocusDrawings().find(e=>e.unitId===n.unitId&&e.subUnitId===n.subUnitId&&e.drawingId===n.drawingId)||this._drawingManagerService.focusDrawing([n])}_isSamePopupTarget(e,t){return(e==null?void 0:e.unitId)===t.unitId&&e.subUnitId===t.subUnitId&&e.drawingId===t.drawingId}_popupMenuListener(e){var i;let a=(i=this._renderManagerService.getRenderUnitById(e))==null?void 0:i.scene;if(!a)return;let o=a.getTransformerByCreate(),s=[o.createControl$.subscribe(()=>{if(this._hasCropObject(a)){this._clearPopups(e,!0);return}let i=o.getSelectedObjectMap();if(this._isDrawingPanelOpen||i.size>1){this._clearPopups(e,this._isDrawingPanelOpen);return}let s=i.values().next().value;if(!s){this._clearPopups(e);return}let c=this._drawingManagerService.getDrawingOKey(s.oKey);if(!c||c.drawingType===t.DrawingTypeEnum.DRAWING_DOM||c.drawingType===t.DrawingTypeEnum.DRAWING_SHAPE){this._clearPopups(e);return}let{unitId:l,subUnitId:d,drawingId:f,drawingType:p}=c;if(!this._canEditDrawing(l,f)){this._clearPopups(e,!0);return}let m=this._disposePopupsByUnit.get(e),h=this._popupTargetsByUnit.get(e),g={unitId:l,subUnitId:d,drawingId:f};if(this._isSamePopupTarget(h,g)&&m&&m.length>0)return;this._clearPopups(e,h!=null);let _=p===t.DrawingTypeEnum.DRAWING_IMAGE,v=p===t.DrawingTypeEnum.DRAWING_CHART,y=this._canvasPopManagerService.attachPopupToObject(s,{componentKey:_||v?u.COMPONENT_MOBILE_IMAGE_POPUP_MENU:r.MOBILE_DOC_ELEMENT_MENU,requiresStableLayout:!1,direction:_||v?`top-center`:`horizontal`,offset:_||v?[0,8]:[2,0],extraProps:{onClose:()=>this._clearPopups(e,!0),onEdit:()=>{let t=this._docDrawingService.getDrawingByParam(c),n=t&&this._drawingAdapterService.getEditDrawingCommandInfo({unitId:l,subUnitId:d,drawing:t});return this._clearPopups(e,!0),this._commandService.executeCommand((n==null?void 0:n.commandId)??K.id,(n==null?void 0:n.commandParams)??{unitId:l,subUnitId:d,drawingId:f})},onDelete:()=>(this._clearPopups(e,!0),this._commandService.executeCommand(n.RemoveDocDrawingCommand.id,{unitId:l,drawings:[{unitId:l,subUnitId:d,drawingId:f}]})),menuItems:this._getDrawingPopupMenuItems(l,d,f,p),variant:_?`doc-floating-toolbar`:v?`doc-chart-floating-toolbar`:void 0,unitId:l,subUnitId:d,drawingId:f}},l);this._registerDrawingPopup(e,y,{unitId:l,subUnitId:d,drawingId:f})}),o.clearControl$.subscribe(t=>this._handleClearControl(e,o,t)),o.changing$.subscribe(()=>{this._clearPopups(e,!0)})],c=(0,t.toDisposable)(()=>s.forEach(e=>e.unsubscribe()));return this.disposeWithMe(c),c}_canEditDrawing(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!r)return!1;let i=(0,a.getDocumentDrawingSegmentId)(r,n);return(0,a.canEditDocumentTargets)(this._permissionService,e,[...(0,a.getDocumentEntityParentPermissionObjectIds)(r,i,`drawing`,n),(0,a.getDocumentEntityPermissionObjectId)(i,`drawing`,n)])}_getDrawingPopupMenuItems(e,r,i,a){let o=this._docDrawingService.getDrawingByParam({unitId:e,subUnitId:r,drawingId:i}),s=o?this._floatingToolbarAdapterService.getItems({unitId:e,subUnitId:r,drawing:o}):null,c=o?this._drawingAdapterService.getEditDrawingCommandInfo({unitId:e,subUnitId:r,drawing:o}):null,l=[{label:(c==null?void 0:c.label)??`docs-drawing-ui.image-popup.edit`,index:0,commandId:(c==null?void 0:c.commandId)??K.id,commandParams:(c==null?void 0:c.commandParams)??{unitId:e,subUnitId:r,drawingId:i},disable:(c==null?void 0:c.disable)??a===t.DrawingTypeEnum.DRAWING_DOM,hideOnClick:!0,icon:`DrawingEditIcon`},{label:`docs-drawing-ui.image-popup.crop`,index:1,commandId:u.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:r,drawingId:i},disable:a===t.DrawingTypeEnum.DRAWING_DOM,icon:`DrawingCropIcon`},{label:`docs-drawing-ui.image-popup.delete`,index:2,commandId:n.RemoveDocDrawingCommand.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:r,drawingId:i}]},disable:!1,icon:`DrawingDeleteIcon`},{label:`docs-drawing-ui.image-popup.reset`,index:3,commandId:u.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:r,drawingId:i}],disable:!0}];return a===t.DrawingTypeEnum.DRAWING_IMAGE?l.slice(0,3):a===t.DrawingTypeEnum.DRAWING_CHART?[{...l[0],label:`docs-drawing-ui.image-popup.edit`},l[2]]:[...s??l,...this._getFloatingObjectMenuItems()]}_getFloatingObjectMenuItems(){return this._menuManagerService.getFlatMenuByPositionKey(c.FloatingObjectToolbarPosition.DOC).flatMap(({item:e},t)=>!e||e.type!==c.MenuItemType.BUTTON||!e.title||typeof e.icon!=`string`?[]:[{type:`button`,label:e.title,index:100+t,commandId:e.commandId??e.id,commandParams:typeof e.params==`function`?e.params():e.params,disable:!1,icon:e.icon}])}};zt=N([M(0,s.IDrawingManagerService),M(1,(0,t.Inject)(r.DocCanvasPopManagerService)),M(2,i.IRenderManagerService),M(3,t.IUniverInstanceService),M(4,t.IContextService),M(5,n.IDocDrawingAdapterService),M(6,n.IDocDrawingService),M(7,(0,t.Inject)(Rt)),M(8,t.ICommandService),M(9,c.IMenuManagerService),M(10,t.IPermissionService)],zt);let Bt=class extends t.Disposable{constructor(e,t){super(),this._menuManagerService=e,this._commandService=t,this._initCommands(),this._initMenus()}_initCommands(){[F,R,z,st,ct,lt,ut,Lt,U,K,x,S,H,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initMenus(){this._menuManagerService.mergeMenu(Te)}};Bt=N([M(0,c.IMenuManagerService),M(1,t.ICommandService)],Bt);var Vt=class extends P{_getTransformerInteractionOptions(){return{moveOnlyWhenSelected:!0}}_isDocumentInteractionFocusing(e){return!0}};let Q=class extends t.Plugin{constructor(e=Ae,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{...a}=(0,t.merge)({},Ae,this._config);this._configService.setConfig(Oe,a)}onStarting(){[[It],[Bt],[zt],[pt],[nt],[D],[Rt],[Y],[at]].forEach(e=>this._injector.add(e)),this._injector.get(It)}onReady(){[[P,{useClass:Vt}],[Je]].forEach(e=>this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)),this._injector.get(nt),this._injector.get(Bt),this._injector.get(pt),this._injector.get(at)}onRendered(){this._injector.get(zt),this._injector.get(Y)}};E(Q,`type`,t.UniverInstanceType.UNIVER_DOC),E(Q,`pluginName`,ke),E(Q,`packageName`,Ee),E(Q,`version`,De),Q=N([(0,t.DependentOn)(a.UniverDocsPlugin,s.UniverDrawingPlugin,i.UniverRenderEnginePlugin,n.UniverDocsDrawingPlugin,r.UniverDocsMobileUIPlugin,u.UniverDrawingMobileUIPlugin),M(1,(0,t.Inject)(t.Injector)),M(2,i.IRenderManagerService),M(3,t.IConfigService)],Q);let Ht=e=>{var t;let n=(0,c.useDependency)(i.IRenderManagerService),r=e.drawings[0],a=r?(t=n.getRenderUnitById(r.unitId))==null?void 0:t.scene:void 0;return r&&a?/* @__PURE__ */ (0,f.jsx)(Ut,{...e}):null};function Ut(e){let{localeService:t,showPanel:n,disabled:r,hPosition:i,vPosition:a,followTextMove:s,HORIZONTAL_RELATIVE_FROM:c,VERTICAL_RELATIVE_FROM:l,handlePositionChange:u,handleHorizontalRelativeFromChange:d,handleVerticalRelativeFromChange:p,handleFollowTextMoveCheck:m,MIN_OFFSET:h,MAX_OFFSET:g}=Ct(e);return/* @__PURE__ */ (0,f.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!n}),children:[/* @__PURE__ */ (0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.title`)})}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.horizontal`)})}),/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.absolutePosition`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:h,max:g,precision:1,disabled:r,value:i.posOffset,onChange:e=>{e!=null&&u(`positionH`,{relativeFrom:i.relativeFrom,posOffset:e})}})]}),/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.toTheRightOf`)}),/* @__PURE__ */ (0,f.jsx)(o.Select,{value:String(i.relativeFrom),disabled:r,options:c,onChange:d})]})]}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.vertical`)})}),/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.absolutePosition`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:h,max:g,precision:1,disabled:r,value:a.posOffset,onChange:e=>{e!=null&&u(`positionV`,{relativeFrom:a.relativeFrom,posOffset:e})}})]}),/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.bellow`)}),/* @__PURE__ */ (0,f.jsx)(o.Select,{disabled:r,value:String(a.relativeFrom),options:l,onChange:p})]})]}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.options`)})}),/* @__PURE__ */ (0,f.jsx)(`div`,{children:/* @__PURE__ */ (0,f.jsx)(o.Checkbox,{disabled:r,checked:s,onChange:m,children:t.t(`docs-drawing-ui.image-position.moveObjectWithText`)})})]})}let Wt=e=>{var t;let n=(0,c.useDependency)(i.IRenderManagerService),r=e.drawings[0],a=r?(t=n.getRenderUnitById(r.unitId))==null?void 0:t.scene:void 0;return r&&a?/* @__PURE__ */ (0,f.jsx)(Gt,{...e}):null};function Gt(e){let{localeService:r,showPanel:i,wrappingStyle:a,wrapText:s,distToText:c,disableWrapText:l,disableDistTB:u,disableDistLR:d,handleWrappingStyleChange:p,handleWrapTextChange:m,handleDistToTextChange:h,MIN_MARGIN:g,MAX_MARGIN:_}=Dt(e);return/* @__PURE__ */ (0,f.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!i}),children:[/* @__PURE__ */ (0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.title`)})}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.wrappingStyle`)})}),/* @__PURE__ */ (0,f.jsx)(`div`,{children:/* @__PURE__ */ (0,f.jsxs)(o.RadioGroup,{value:a,onChange:p,direction:`vertical`,children:[/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.INLINE,children:r.t(`docs-drawing-ui.image-text-wrap.inline`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.WRAP_SQUARE,children:r.t(`docs-drawing-ui.image-text-wrap.square`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.WRAP_TOP_AND_BOTTOM,children:r.t(`docs-drawing-ui.image-text-wrap.topAndBottom`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.BEHIND_TEXT,children:r.t(`docs-drawing-ui.image-text-wrap.behindText`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.IN_FRONT_OF_TEXT,children:r.t(`docs-drawing-ui.image-text-wrap.inFrontText`)})]})}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.wrapText`)})}),/* @__PURE__ */ (0,f.jsx)(`div`,{children:/* @__PURE__ */ (0,f.jsxs)(o.RadioGroup,{disabled:l,value:String(s),onChange:m,direction:`horizontal`,children:[/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:String(t.WrapTextType.BOTH_SIDES),children:r.t(`docs-drawing-ui.image-text-wrap.bothSide`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:String(t.WrapTextType.LEFT),children:r.t(`docs-drawing-ui.image-text-wrap.leftOnly`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:String(t.WrapTextType.RIGHT),children:r.t(`docs-drawing-ui.image-text-wrap.rightOnly`)})]})}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.distanceFromText`)})}),/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.top`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:u,precision:1,value:c.distT,onChange:e=>{h(e,`distT`)}})]}),/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.left`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:d,precision:1,value:c.distL,onChange:e=>{h(e,`distL`)}})]})]}),/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.bottom`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:u,precision:1,value:c.distB,onChange:e=>{h(e,`distB`)}})]}),/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.right`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:d,precision:1,value:c.distR,onChange:e=>{h(e,`distR`)}})]})]})]})}let Kt=()=>{let e=(0,c.useDependency)(s.IDrawingManagerService),t=(0,c.useObservable)(()=>e.focus$,e.getFocusDrawings(),!1,[e]);return!!(t!=null&&t.length)&&/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-text-sm`,children:[/* @__PURE__ */ (0,f.jsx)(u.DrawingCommonPanel,{drawings:t,hasAlign:!1,hasCropper:!0,hasGroup:!1,hasTransform:!1}),/* @__PURE__ */ (0,f.jsx)(Wt,{drawings:t}),/* @__PURE__ */ (0,f.jsx)(Ht,{drawings:t})]})},qt=class extends t.Disposable{constructor(e){super(),this._componentManager=e,this._registerComponents()}_registerComponents(){this.disposeWithMe(this._componentManager.register(W,Kt))}};qt=N([M(0,(0,t.Inject)(c.ComponentManager))],qt);let Jt=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._skeletonManager=n,this._selectionRender=r,this._themeService=i,E(this,`_stroke`,``),E(this,`_focused`,[]),E(this,`_markers`,/* @__PURE__ */ new Map),this.disposeWithMe(t.focus$.subscribe(e=>{this._focused=(e??[]).filter(e=>e.unitId===this._context.unitId),this._updateMarkers()})),this.disposeWithMe(this._context.scene.beforeRender$.subscribe(()=>this._updateMarkers())),this.disposeWithMe(this._themeService.currentTheme$.subscribe(()=>{this._stroke=this._themeService.getColorFromTheme(`gray.500`),this._updateMarkers()})),this.disposeWithMe({dispose:()=>{this._markers.forEach(e=>e.dispose()),this._markers.clear()}})}_updateMarkers(){let{scene:e,unit:a,mainComponent:o}=this._context,s=a.getSnapshot(),c=this._skeletonManager.getSkeleton(),l=/* @__PURE__ */ new Set,u=o;if(c&&u){let a=u.getOffsetConfig(),o=new r.NodePositionConvertToCursor(a,c),h=e.getAncestorScale();for(let{drawingId:u}of this._focused){var d,f,p,m;let g=(d=(0,n.findDocDrawing)(s,u))==null?void 0:d.drawing,_=O(s,u);if(!g||g.layoutType===t.PositionedObjectLayoutType.INLINE||!_||_.segmentId!==this._selectionRender.getSegment())continue;let v=c.findNodePositionByCharIndex(_.offset,!0,_.segmentId,this._selectionRender.getSegmentPage()),y=c.findGlyphByPosition(v),b=y==null||(f=y.parent)==null?void 0:f.parent,x=(b==null||(p=b.parent)==null?void 0:p.lines.find(e=>e.paragraphIndex===b.paragraphIndex&&e.paragraphStart))??b,S=x==null||(m=x.divides[0])==null?void 0:m.glyphGroup[0],C=S&&c.findPositionByGlyph(S,this._selectionRender.getSegmentPage());if(!C)continue;let w={...C,isBack:!0},{contentBoxPointGroup:T}=o.getRangePointData(w,w);if(!T.length)continue;let E=(0,r.getAnchorBounding)(T),D=a.docsLeft+E.left-22/h.scaleX,k=a.docsTop+E.top,A=this._markers.get(u),j=this._stroke;A||(A=new i.Path(`__DocDrawingAnchor__${u}`,{data:`M 8 4 C 9.104 4 10 3.104 10 2 C 10 0.896 9.104 0 8 0 C 6.896 0 6 0.896 6 2 C 6 3.104 6.896 4 8 4 Z M 8 4 L 8 16 M 5 7.2 L 11 7.2 M 1 9.5 L 1 10.5 C 1 13.5 4.25 16 8 16 C 11.75 16 15 13.5 15 10.5 L 15 9.5 M 1 9.5 L 3.25 11 M 15 9.5 L 12.75 11`,width:14,height:16,stroke:j,strokeWidth:1.25,strokeLineCap:`round`,strokeLineJoin:`round`,evented:!1,debounceParentDirty:!1}),this._markers.set(u,A),e.addObject(A,r.TEXT_RANGE_LAYER_INDEX)),(A.left!==D||A.top!==k||A.scaleX!==1/h.scaleX||A.scaleY!==1/h.scaleY)&&A.transformByState({left:D,top:k,scaleX:1/h.scaleX,scaleY:1/h.scaleY}),A.stroke!==j&&A.setProps({stroke:j}),l.add(u)}}for(let[e,t]of this._markers)l.has(e)||(t.dispose(),this._markers.delete(e))}};Jt=N([M(1,s.IDrawingManagerService),M(2,(0,t.Inject)(a.DocSkeletonManagerService)),M(3,(0,t.Inject)(r.DocSelectionRenderService)),M(4,(0,t.Inject)(t.ThemeService))],Jt);function Yt(e){return e.getContextValue(t.FOCUSING_DOC)&&e.getContextValue(t.FOCUSING_UNIVER_EDITOR)&&e.getContextValue(t.FOCUSING_COMMON_DRAWINGS)}let Xt={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:Yt,staticParameters:{direction:t.Direction.DOWN}},Zt={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:Yt,staticParameters:{direction:t.Direction.UP}},Qt={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:Yt,staticParameters:{direction:t.Direction.LEFT}},$t={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:Yt,staticParameters:{direction:t.Direction.RIGHT}},en={id:p.id,description:`docs-drawing-ui.shortcut.drawing-delete`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,preconditions:Yt,binding:c.KeyCode.DELETE,mac:c.KeyCode.BACKSPACE},tn=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(Te)}_initCommands(){[F,R,z,st,ct,lt,ut,G,U,K,x,S,H,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[Xt,Zt,Qt,$t,en].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};tn=N([M(0,c.IMenuManagerService),M(1,t.ICommandService),M(2,c.IShortcutService)],tn);let nn=class extends t.RxDisposable{constructor(e,t,n,r,i,a,o,s,c,l,u,d){super(),this._drawingManagerService=e,this._canvasPopManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._contextService=i,this._drawingAdapterService=a,this._docDrawingService=o,this._floatingToolbarAdapterService=s,this._commandService=c,this._menuManagerService=l,this._permissionService=u,this._contextMenuService=d,E(this,`_initImagePopupMenu`,/* @__PURE__ */ new Set),E(this,`_embeddedRenderUnits`,/* @__PURE__ */ new Set),E(this,`_popupMenuListeners`,/* @__PURE__ */ new Map),E(this,`_disposePopupsByUnit`,/* @__PURE__ */ new Map),E(this,`_popupTargetsByUnit`,/* @__PURE__ */ new Map),E(this,`_isDrawingPanelOpen`,!1),this._init()}_init(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{let t=[...this._popupTargetsByUnit.values()].some(t=>{let n=this._docDrawingService.getDrawingByParam(t),r=n&&this._drawingAdapterService.getEditDrawingCommandInfo({...t,drawing:n});return(r==null?void 0:r.commandId)===e.id});if((e.id===K.id||t)&&this._clearPopups(void 0,!0),e.id===G.id){let t=e.params;this._isDrawingPanelOpen=(t==null?void 0:t.value)===`open`,this._isDrawingPanelOpen&&this._clearPopups(void 0,!0)}})),this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e.length===0&&(this._isDrawingPanelOpen=!1)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{for(let n of e)for(let[e,r]of this._popupTargetsByUnit)if(r.unitId===n.unitId&&r.subUnitId===n.subUnitId&&r.drawingId===n.drawingId){var t;this._clearPopups(e,!0),(t=this._renderManagerService.getRenderUnitById(e))==null||t.scene.getTransformerByCreate().clearSelectedObjects()}})),this.disposeWithMe(this._permissionService.permissionPointUpdate$.subscribe(()=>{for(let[e,t]of this._popupTargetsByUnit)this._canEditDrawing(t.unitId,t.drawingId)||this._clearPopups(e,!0)})),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.disposeWithMe(this._renderManagerService.created$.pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>{e.type!==t.UniverInstanceType.UNIVER_DOC||e.isMainScene||(this._embeddedRenderUnits.add(e.unitId),this._create(this._univerInstanceService.getUnit(e.unitId,t.UniverInstanceType.UNIVER_DOC)))})),this.disposeWithMe(this._renderManagerService.disposed$.pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>{this._embeddedRenderUnits.delete(e)&&this._disposePopupMenuListener(e)})),this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_DOC).forEach(e=>this._create(e))}_dispose(e){let t=e.getUnitId();this._clearPopups(t,!0),this._disposePopupMenuListener(t),this._renderManagerService.removeRender(t)}_clearPopups(e,t=!1){if(e==null){[...this._disposePopupsByUnit.keys()].forEach(e=>this._clearPopups(e,t));return}let n=this._disposePopupsByUnit.get(e);if(n){for(let e=n.length-1;e>=0;--e){let r=n[e];(t||r.canDispose())&&(r.dispose(),n.splice(e,1))}n.length===0&&(this._disposePopupsByUnit.delete(e),this._popupTargetsByUnit.delete(e))}}_getDisposePopups(e){let t=this._disposePopupsByUnit.get(e);if(t)return t;let n=[];return this._disposePopupsByUnit.set(e,n),n}_create(e){if(!e)return;let n=e.getUnitId();if(!(0,t.isInternalEditorID)(n)&&this._renderManagerService.has(n)&&!this._initImagePopupMenu.has(n)){let e=this._popupMenuListener(n);e&&(this._popupMenuListeners.set(n,e),this._initImagePopupMenu.add(n))}}_disposePopupMenuListener(e){var t;(t=this._popupMenuListeners.get(e))==null||t.dispose(),this._popupMenuListeners.delete(e),this._initImagePopupMenu.delete(e),this._clearPopups(e,!0)}_hasCropObject(e){let t=e.getAllObjects();for(let e of t)if(e instanceof u.ImageCropperObject)return!0;return!1}_handleClearControl(e,n,r){this._clearPopups(e,r),queueMicrotask(()=>{n.getSelectedObjectMap().size>0||(this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._drawingManagerService.focusDrawing(null))})}_registerDrawingPopup(e,t,n){this.disposeWithMe(t),this._getDisposePopups(e).push(t),this._popupTargetsByUnit.set(e,n),this._drawingManagerService.getFocusDrawings().find(e=>e.unitId===n.unitId&&e.subUnitId===n.subUnitId&&e.drawingId===n.drawingId)||this._drawingManagerService.focusDrawing([n])}_isSamePopupTarget(e,t){return(e==null?void 0:e.unitId)===t.unitId&&e.subUnitId===t.subUnitId&&e.drawingId===t.drawingId}_popupMenuListener(e){var n;let r=(n=this._renderManagerService.getRenderUnitById(e))==null?void 0:n.scene;if(!r)return;let i=r.getTransformerByCreate(),a=[i.changeEnd$.subscribe(({event:e})=>{var n;if(e.button!==2)return;let r=[...i.getSelectedObjectMap().values()].map(e=>this._drawingManagerService.getDrawingOKey(e.oKey));r.length===0||r.length===1&&((n=r[0])==null?void 0:n.drawingType)!==t.DrawingTypeEnum.DRAWING_GROUP||r.some(e=>!e||!this._canEditDrawing(e.unitId,e.drawingId))||this._contextMenuService.triggerContextMenu(e,c.ContextMenuPosition.DRAWING)}),i.createControl$.subscribe(()=>{if(this._hasCropObject(r)){this._clearPopups(e,!0);return}let n=i.getSelectedObjectMap();if(this._isDrawingPanelOpen||n.size>1){this._clearPopups(e,this._isDrawingPanelOpen);return}let a=n.values().next().value;if(!a){this._clearPopups(e);return}let o=this._drawingManagerService.getDrawingOKey(a.oKey);if(!o||o.drawingType===t.DrawingTypeEnum.DRAWING_DOM||o.drawingType===t.DrawingTypeEnum.DRAWING_SHAPE){this._clearPopups(e);return}let{unitId:s,subUnitId:c,drawingId:l,drawingType:d}=o;if(!this._canEditDrawing(s,l)){this._clearPopups(e,!0);return}let f=this._disposePopupsByUnit.get(e),p=this._popupTargetsByUnit.get(e),m={unitId:s,subUnitId:c,drawingId:l};if(this._isSamePopupTarget(p,m)&&f&&f.length>0)return;this._clearPopups(e,p!=null);let h=d===t.DrawingTypeEnum.DRAWING_IMAGE,g=d===t.DrawingTypeEnum.DRAWING_CHART,_=this._canvasPopManagerService.attachPopupToObject(a,{componentKey:u.COMPONENT_IMAGE_POPUP_MENU,requiresStableLayout:!1,direction:h||g?`top-center`:`horizontal`,offset:h||g?[0,8]:[2,0],extraProps:{menuItems:this._getDrawingPopupMenuItems(s,c,l,d),variant:h?`doc-floating-toolbar`:g?`doc-chart-floating-toolbar`:void 0,unitId:s,subUnitId:c,drawingId:l}},s);this._registerDrawingPopup(e,_,{unitId:s,subUnitId:c,drawingId:l})}),i.clearControl$.subscribe(t=>this._handleClearControl(e,i,t)),i.changing$.subscribe(()=>{this._clearPopups(e,!0)})],o=(0,t.toDisposable)(()=>a.forEach(e=>e.unsubscribe()));return this.disposeWithMe(o),o}_canEditDrawing(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!r)return!1;let i=(0,a.getDocumentDrawingSegmentId)(r,n);return(0,a.canEditDocumentTargets)(this._permissionService,e,[...(0,a.getDocumentEntityParentPermissionObjectIds)(r,i,`drawing`,n),(0,a.getDocumentEntityPermissionObjectId)(i,`drawing`,n)])}_getDrawingPopupMenuItems(e,r,i,a){let o=this._docDrawingService.getDrawingByParam({unitId:e,subUnitId:r,drawingId:i}),s=o?this._floatingToolbarAdapterService.getItems({unitId:e,subUnitId:r,drawing:o}):null,c=o?this._drawingAdapterService.getEditDrawingCommandInfo({unitId:e,subUnitId:r,drawing:o}):null,l=[{label:(c==null?void 0:c.label)??`docs-drawing-ui.image-popup.edit`,index:0,commandId:(c==null?void 0:c.commandId)??K.id,commandParams:(c==null?void 0:c.commandParams)??{unitId:e,subUnitId:r,drawingId:i},disable:(c==null?void 0:c.disable)??a===t.DrawingTypeEnum.DRAWING_DOM,hideOnClick:!0,icon:`DrawingEditIcon`},{label:`docs-drawing-ui.image-popup.crop`,index:1,commandId:u.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:r,drawingId:i},disable:a===t.DrawingTypeEnum.DRAWING_DOM,icon:`DrawingCropIcon`},{label:`docs-drawing-ui.image-popup.delete`,index:2,commandId:n.RemoveDocDrawingCommand.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:r,drawingId:i}]},disable:!1,icon:`DrawingDeleteIcon`},{label:`docs-drawing-ui.image-popup.reset`,index:3,commandId:u.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:r,drawingId:i}],disable:!0}];return[...s??l,...this._getFloatingObjectMenuItems()]}_getFloatingObjectMenuItems(){return this._menuManagerService.getFlatMenuByPositionKey(c.FloatingObjectToolbarPosition.DOC).flatMap(({item:e},t)=>!e||e.type!==c.MenuItemType.BUTTON||!e.title||typeof e.icon!=`string`?[]:[{type:`button`,label:e.title,index:100+t,commandId:e.commandId??e.id,commandParams:typeof e.params==`function`?e.params():e.params,disable:!1,icon:e.icon}])}};nn=N([M(0,s.IDrawingManagerService),M(1,(0,t.Inject)(r.DocCanvasPopManagerService)),M(2,i.IRenderManagerService),M(3,t.IUniverInstanceService),M(4,t.IContextService),M(5,n.IDocDrawingAdapterService),M(6,n.IDocDrawingService),M(7,(0,t.Inject)(Rt)),M(8,t.ICommandService),M(9,c.IMenuManagerService),M(10,t.IPermissionService),M(11,c.IContextMenuService)],nn);let $=class extends t.Plugin{constructor(e=Ae,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{...a}=(0,t.merge)({},Ae,this._config);this._configService.setConfig(Oe,a)}onStarting(){[[qt],[tn],[nn],[pt],[nt],[D],[Rt],[Y],[at]].forEach(e=>this._injector.add(e)),this._injector.get(qt)}onReady(){[[P],[Je],[Jt]].forEach(e=>this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)),this._injector.get(nt),this._injector.get(tn),this._injector.get(pt),this._injector.get(at)}onRendered(){this._injector.get(nn),this._injector.get(Y)}};E($,`type`,t.UniverInstanceType.UNIVER_DOC),E($,`pluginName`,ke),E($,`packageName`,Ee),E($,`version`,De),$=N([(0,t.DependentOn)(a.UniverDocsPlugin,s.UniverDrawingPlugin,i.UniverRenderEnginePlugin,n.UniverDocsDrawingPlugin,r.UniverDocsUIPlugin,u.UniverDrawingUIPlugin),M(1,(0,t.Inject)(t.Injector)),M(2,i.IRenderManagerService),M(3,t.IConfigService)],$),e.ClearDocDrawingTransformerOperation=U,e.DOCS_IMAGE_MENU_ID=fe,e.DOCS_SHAPE_BELOW_MENU_ID=ve,e.DOCS_SHAPE_MENU_ID=_e,e.DeleteDocDrawingsCommand=p,e.DocDrawingFloatingToolbarAdapterService=Rt,e.DocDrawingPosition=Ht,e.DocDrawingTextWrap=Wt,Object.defineProperty(e,"DocFloatDomController",{enumerable:!0,get:function(){return Y}}),e.DocsDrawingUIMenuSchema=Te,e.EditDocDrawingOperation=K,e.GroupDocDrawingCommand=x,e.InsertDocEllipseShapeCommand=z,e.InsertDocImageCommand=F,e.InsertDocRectangleShapeCommand=R,e.MobileDocDrawingPosition=Tt,e.MobileDocDrawingTextWrap=Mt,e.MoveDocDrawingsCommand=H,e.SidebarDocDrawingOperation=G,e.UngroupDocDrawingCommand=S,Object.defineProperty(e,"UniverDocsDrawingMobileUIPlugin",{enumerable:!0,get:function(){return Q}}),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-ui"),require("@univerjs/engine-render"),require("@univerjs/docs"),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-ui`,`@univerjs/engine-render`,`@univerjs/docs`,`@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.UniverDocsUi,e.UniverEngineRender,e.UniverDocs,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.delete-drawing`,type:t.CommandType.COMMAND,handler:async e=>{var a;let o=e.get(t.ICommandService),s=e.get(n.IDocDrawingService).getFocusDrawings();if(s.length===0)return!1;let{unitId:c}=s[0],l=(a=e.get(i.IRenderManagerService).getRenderUnitById(c))==null?void 0:a.with(r.DocSelectionRenderService);l==null||l.focus();let u=s.map(e=>{let{unitId:t,subUnitId:n,drawingId:r,drawingType:i}=e;return{unitId:t,subUnitId:n,drawingId:r,drawingType:i}}),d=await o.executeCommand(n.RemoveDocDrawingCommand.id,{unitId:c,drawings:u});return d&&(l==null||l.focus()),d}};function m(e,t){let n=e.getSnapshot(),r=[[``,n.body],...Object.entries(n.headers??{}).map(([e,t])=>[e,t.body]),...Object.entries(n.footers??{}).map(([e,t])=>[e,t.body]),...Object.entries(n.notes??{}).map(([e,t])=>[e,t.body])];for(let[e,n]of r){var i;let r=n==null||(i=n.customBlocks)==null?void 0:i.find(e=>e.blockId===t);if(r)return{segmentId:e,index:r.startIndex}}}function h(e,t,n){let{positionH:r,positionV:i}=t.docTransform;return{size:{width:e.width??0,height:e.height??0},positionH:{relativeFrom:r.relativeFrom,posOffset:(r.posOffset??0)+(e.left??0)-(n.left??0)},positionV:{relativeFrom:i.relativeFrom,posOffset:(i.posOffset??0)+(e.top??0)-(n.top??0)},angle:e.angle??0,flipX:e.flipX,flipY:e.flipY}}function g({parent:e,children:n},r,i,{changes:a,replacements:o}){let s=i[0],c=r[e.drawingId],l=new Set(n.map(e=>e.drawingId));if(!c||c.groupId||c.drawingType!==t.DrawingTypeEnum.DRAWING_GROUP||Object.values(r).some(t=>t.groupId===e.drawingId&&!l.has(t.drawingId)))return!1;o.set(s.index,n.map(e=>e.drawingId)),a.set(e.drawingId,void 0);for(let i of n){if(!i.transform||r[i.drawingId].groupId!==e.drawingId)return!1;let n={...r[i.drawingId]};delete n.groupId,n.layoutType=t.PositionedObjectLayoutType.WRAP_NONE,n.behindDoc=c.behindDoc,n.docTransform=h(i.transform,c,e.transform),a.set(i.drawingId,n)}return!0}function _({parent:e,children:n},r,i,{changes:a,replacements:o}){if(n.length<2||r[e.drawingId]||n.some(e=>r[e.drawingId].groupId||!e.transform))return!1;let s=Math.min(...i.map(e=>e.index)),c=n[i.findIndex(e=>e.index===s)],l=r[c.drawingId],u=e.transform,d={...e,drawingType:t.DrawingTypeEnum.DRAWING_GROUP,layoutType:l.layoutType,behindDoc:l.behindDoc,layoutInCell:l.layoutInCell,allowOverlap:l.allowOverlap,wrapText:l.wrapText,distL:l.distL,distR:l.distR,distT:l.distT,distB:l.distB,docTransform:h(u,l,c.transform),groupBaseBound:{left:0,top:0,width:u.width??0,height:u.height??0}};a.set(e.drawingId,d);for(let c=0;c<n.length;c++){let l=n[c];o.set(i[c].index,i[c].index===s?[e.drawingId]:[]);let f=h(l.transform,d,u);f.positionH={relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:(l.transform.left??0)-(u.left??0)},f.positionV={relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:(l.transform.top??0)-(u.top??0)},a.set(l.drawingId,{...r[l.drawingId],groupId:e.drawingId,docTransform:f})}return!0}function v(e,n,r){let i=t.JSONX.getInstance(),a=[];for(let[t,o]of r){let r=e[t],s=[...n,`drawings`,t];if(!o)a.push(i.removeOp(s,r));else if(!r)a.push(i.insertOp(s,o));else for(let e of[`groupId`,`docTransform`,`layoutType`,`behindDoc`])o[e]!==r[e]&&(o[e]===void 0?a.push(i.removeOp([...s,e],r[e])):r[e]===void 0?a.push(i.insertOp([...s,e],o[e])):a.push(i.replaceOp([...s,e],r[e],o[e])))}return a}function y(e,r,i,a,{changes:o,replacements:s}){var c,l;let u=e.getSnapshot(),{drawings:d}=(0,n.collectDocDrawings)(u),f=((c=u.notes)==null?void 0:c[r])??u,p=(l=u.notes)!=null&&l[r]?[`notes`,r]:[],m=new t.TextX,h=0;for(let[e,n]of[...s].sort(([e],[t])=>e-t))e>h&&m.push({t:t.TextXActionType.RETAIN,len:e-h}),m.push({t:t.TextXActionType.DELETE,len:1}),n.length>0&&m.push({t:t.TextXActionType.INSERT,len:n.length,body:{dataStream:`\b`.repeat(n.length),customBlocks:n.map((e,t)=>({blockId:e,startIndex:t}))}}),h=e+1;let g=t.JSONX.getInstance(),_=[g.editOp(m.serialize(),(0,t.getRichTextEditPath)(e,r))];_.push(...v(d,p,o));let y=f.drawingsOrder??Object.keys(f.drawings??{}),b=y.filter(e=>!o.has(e)||o.get(e));for(let{parent:e,children:t}of i)a||b.splice(Math.max(0,b.indexOf(t[0].drawingId)),0,e.drawingId);return _.push(f.drawingsOrder?g.replaceOp([...p,`drawingsOrder`],y,b):g.insertOp([...p,`drawingsOrder`],b)),_}function b(e,r,i){if(!(r!=null&&r.length))return!1;let o=r[0].parent.unitId,s=e.get(t.IUniverInstanceService).getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!s||r.some(({parent:e,children:t})=>e.unitId!==o||t.some(e=>e.unitId!==o)))return!1;let c=s.getSnapshot(),{drawings:l}=(0,n.collectDocDrawings)(c),u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f;for(let{parent:e,children:t}of r){let n=(i?[e]:t).map(({drawingId:e})=>m(s,e));if(!t.length||n.some(e=>!e)||!e.transform)return!1;let r=n[0];if(f??=r.segmentId,n.some(e=>e.segmentId!==f)||t.some(e=>!l[e.drawingId]||u.has(e.drawingId))||!(i?g({parent:e,children:t},l,n,{changes:u,replacements:d}):_({parent:e,children:t},l,n,{changes:u,replacements:d})))return!1}let p=y(s,f,r,i,{changes:u,replacements:d});return!!e.get(t.ICommandService).syncExecuteCommand(a.RichTextEditingMutation.id,{unitId:o,segmentId:f,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:[]})}let x={id:`doc.command.group-doc-image`,type:t.CommandType.COMMAND,handler:(e,t)=>b(e,t,!1)},S={id:`doc.command.ungroup-doc-image`,type:t.CommandType.COMMAND,handler:(e,t)=>b(e,t,!0)};function C(e){"@babel/helpers - typeof";return C=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},C(e)}function w(e,t){if(C(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(C(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function T(e){var t=w(e,`string`);return C(t)==`symbol`?t:t+``}function E(e,t,n){return(t=T(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var D=class{constructor(){E(this,`_refreshDrawings$`,new l.BehaviorSubject(null)),E(this,`refreshDrawings$`,this._refreshDrawings$.asObservable())}refreshDrawings(e){this._refreshDrawings$.next(e)}};function O(e,t){let n=[{segmentId:``,body:e.body},...Object.entries(e.headers??{}).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(e.footers??{}).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(e.notes??{}).map(([e,t])=>({segmentId:e,body:t.body}))];for(let{segmentId:e,body:i}of n){var r;let n=i==null||(r=i.customBlocks)==null?void 0:r.find(e=>e.blockId===t);if(n)return{offset:n.startIndex,segmentId:e}}return null}function k(e,r){return r.flatMap(r=>{var i;let a=O(e,r);if(!a)return[];let o=(i=(0,n.findDocDrawing)(e,r))==null?void 0:i.drawing,s=o&&o.layoutType!==t.PositionedObjectLayoutType.INLINE;return[{startOffset:a.offset,endOffset:a.offset+1,segmentId:a.segmentId,...s?{style:{fill:`transparent`,stroke:`transparent`,strokeActive:`transparent`,strokeWidth:1}}:{}}]})}function A(e,n,r){let{drawingId:i,transform:a}=e;if((n==null?void 0:n.drawingType)!==t.DrawingTypeEnum.DRAWING_IMAGE||(r==null?void 0:r.transform)==null)return[];let o=[`prstGeom`,`adjustValues`].filter(t=>Object.prototype.hasOwnProperty.call(e,t)).map(t=>({drawingId:i,key:t,value:e[t]??null}));if(a==null||e.srcRect===void 0)return o;let s={...r.transform,...a};if(o.push({drawingId:i,key:`srcRect`,value:e.srcRect}),s.width!=null&&s.height!=null&&o.push({drawingId:i,key:`size`,value:{width:s.width,height:s.height}}),n.layoutType===t.PositionedObjectLayoutType.INLINE||r.isMultiTransform===t.BooleanNumber.TRUE)return o;let c=(s.left??0)-(r.transform.left??0),l=(s.top??0)-(r.transform.top??0),{positionH:u,positionV:d}=n.docTransform;return c!==0&&u.posOffset!=null&&o.push({drawingId:i,key:`positionH`,value:{relativeFrom:u.relativeFrom,posOffset:u.posOffset+c}}),l!==0&&d.posOffset!=null&&o.push({drawingId:i,key:`positionV`,value:{relativeFrom:d.relativeFrom,posOffset:d.posOffset+l}}),o}function j(e){if(!Array.isArray(e)||e.length===0)return null;let n=/* @__PURE__ */ new Set,r=!1,i=!1;try{let a=t.JSON1.type.readCursor(e);a.traverse(null,()=>{r=!0;let e=a.getPath(),t=String(e[0]),o=t===`notes`?2:0;if(e[o]===`drawings`){let t=e[o+1];typeof t==`string`&&t.length>0?n.add(t):i=!0}else(e[o]===`drawingsOrder`||t===`notes`&&e.length<=2||e.includes(`customBlocks`))&&(i=!0)})}catch{return null}return!r||i?null:n}function M(e,t){return function(n,r){t(n,r,e)}}function N(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 P=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){super(),this._context=e,this._commandService=t,this._docSelectionManagerService=n,this._renderManagerSrv=r,this._imageIoService=i,this._docDrawingService=a,this._drawingManagerService=o,this._permissionService=s,this._contextService=c,this._messageService=l,this._localeService=u,this._docSelectionRenderService=d,this._docRefreshDrawingsService=f,this._fileOpenerService=p,E(this,`_editableTransformerConfigs`,/* @__PURE__ */ new WeakMap),E(this,`_editableEventedStates`,/* @__PURE__ */ new WeakMap),E(this,`_editStatusUpdateScheduled`,!1),E(this,`_pendingEditStatusDrawingIds`,void 0),E(this,`_lastEditStatusContextKey`,null),this._updateOrderListener(),this._updateImageCropListener(),this._groupDrawingListener(),this._focusDrawingListener(),this._transformDrawingListener(),this._editAreaChangeListener();let m=e=>{let t=e.filter(e=>{var t;return e.unitId===((t=this._context)==null?void 0:t.unitId)});if(t.length>0){let e=t.map(e=>e.drawingId).filter(e=>typeof e==`string`&&e.length>0);this._scheduleDrawingsEditStatusUpdate(e.length===t.length?new Set(e):void 0)}};this.disposeWithMe(this._drawingManagerService.add$.subscribe(m)),this.disposeWithMe(this._drawingManagerService.update$.subscribe(m)),this.disposeWithMe(this._permissionService.permissionPointUpdate$.subscribe(()=>{this._updateDrawingsEditStatus(void 0,!0)}))}dispose(){super.dispose(),delete this._context}async insertDocImage(){let e=this._getCurrentImageInsertPosition(),t=this._getCurrentImageInsertTextRange();if(!this._canInsertDocImage(t))return!1;let n=await this._fileOpenerService.openFile({multiple:!0,accept:s.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)});if(this._disposed||!this._canInsertDocImage(t))return!1;let r=n.length;return r>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):r!==0&&await this._insertFloatImages(n,e,t)}async _insertFloatImages(e,r,i){let c=[];try{c=await Promise.all(e.map(e=>this._imageIoService.saveImage(e)))}catch(e){let n=e.message,r=``;switch(n){case t.ImageUploadStatusType.ERROR_EXCEED_SIZE:r=this._localeService.t(`docs-drawing-ui.update-status.exceedMaxSize`,String((0,s.getDrawingImageAllowSize)()/1048576));break;case t.ImageUploadStatusType.ERROR_IMAGE_TYPE:r=this._localeService.t(`docs-drawing-ui.update-status.invalidImageType`);break;case t.ImageUploadStatusType.ERROR_IMAGE:r=this._localeService.t(`docs-drawing-ui.update-status.invalidImage`)}this._messageService.show({type:o.MessageType.Error,content:r})}if(this._disposed||c.length===0||!this._canInsertDocImage(i))return!1;let{unitId:l}=this._context,u=[];for(let e of c){if(e==null)continue;let{imageId:n,imageSourceType:o,source:c,base64Cache:d}=e,{width:f,height:p,image:m}=await(0,s.getImageSize)(d||``);if(this._disposed||!this._canInsertDocImage(i))return!1;this._imageIoService.addImageSourceCache(n,o,m);let h=1;if(f>s.DRAWING_IMAGE_WIDTH_LIMIT||p>s.DRAWING_IMAGE_HEIGHT_LIMIT){let e=s.DRAWING_IMAGE_WIDTH_LIMIT/f,t=s.DRAWING_IMAGE_HEIGHT_LIMIT/p;h=Math.min(e,t)}let g=r??this._getCurrentImageInsertPosition(),_=this._getImagePosition(f*h,p*h,g);if(_==null)return!1;let v=(0,a.docDrawingPositionToTransform)(_);v!=null&&g!=null&&(v.top=g.top);let y={unitId:l,subUnitId:l,drawingId:n,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:o,source:c,transform:v,docTransform:_,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()&&(y.isMultiTransform=t.BooleanNumber.TRUE,y.transforms=y.transform?[y.transform]:null),u.push(y)}return await this._commandService.executeCommand(n.InsertDocDrawingCommand.id,{unitId:l,drawings:u,textRange:i??void 0})}_isInsertInHeaderFooter(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderUnitById(t))==null?void 0:e.with(a.DocSkeletonManagerService).getViewModel(),r=n==null?void 0:n.getEditArea();return r===i.DocumentEditArea.HEADER||r===i.DocumentEditArea.FOOTER}_getImagePosition(e,t,n){let r=n??this._getCurrentImageInsertPosition()??{left:0,top:0};return(0,a.buildDocTransform)(e,t,{left:r.left})}_getCurrentImageInsertPosition(){var e;let t=(e=this._docSelectionRenderService.getActiveTextRange())==null?void 0:e.getAbsolutePosition();return t==null?null:{left:t.left,top:t.top}}_getCurrentImageInsertTextRange(){return this._docSelectionRenderService.getAllTextRanges().find(e=>e.isActive)??this._docSelectionManagerService.getActiveTextRange()}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:r,drawingIds:i,arrangeType:a}=e;this._commandService.executeCommand(n.SetDocDrawingArrangeCommand.id,{unitId:t,subUnitId:r,drawingIds:i,arrangeType:a})}))}_updateImageCropListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{let t=e.flatMap(e=>this._getImageCropUpdates(e));if(t.length>0){let{unitId:e}=this._context;this._commandService.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:e,subUnitId:e,drawings:t})}}))}_getImageCropUpdates(e){let{unitId:t,subUnitId:n,drawingId:r}=e;return[t,n].some(e=>e!==this._context.unitId)?[]:A(e,this._getDocDrawing(r),this._drawingManagerService.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})??void 0)}_getDocDrawing(e){var t;return(t=(0,n.findDocDrawing)(this._context.unit.getSnapshot(),e))==null?void 0:t.drawing}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{this._commandService.executeCommand(x.id,e)})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{this._commandService.executeCommand(S.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}}_getTransformerInteractionOptions(){return{moveOnlyWhenSelected:!1}}_isDocumentInteractionFocusing(e){return this._docSelectionRenderService.isFocusing||this._drawingManagerService.getFocusDrawings().some(t=>t.unitId===e)}_transformDrawingListener(){let e=this._getCurrentSceneAndTransformer();if(e&&e.transformer)e.transformer.resetProps(this._getTransformerInteractionOptions()),this.disposeWithMe(e.transformer.changeEnd$.pipe((0,l.debounceTime)(30)).subscribe(()=>{this._docSelectionManagerService.refreshSelection()}));else throw Error(`transformer is not init`)}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{let{transformer:n,docsLeft:r,docsTop:i}=this._getCurrentSceneAndTransformer()??{};if(e==null||e.length===0)this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._docDrawingService.focusDrawing([]),n&&n.resetProps({zeroTop:0,zeroLeft:0});else{this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!0),this._docDrawingService.focusDrawing(e),this._setDrawingSelections(e);let o=this._docSelectionRenderService.getSegment(),s=(0,a.getDocumentDrawingSegmentId)(this._context.unit,e[0].drawingId);o!==s&&this._docSelectionRenderService.setSegment(s),n&&n.resetProps({zeroTop:i,zeroLeft:r})}this._updateDrawingsEditStatus()}))}_updateDrawingsEditStatus(e,r=!1){var o;if(!this._context)return;let{unit:s,scene:c,unitId:l}=this._context,u=(o=this._renderManagerSrv.getRenderUnitById(l))==null?void 0:o.with(a.DocSkeletonManagerService).getViewModel();if(u==null||s==null)return;let d=s.getSnapshot(),{drawings:f}=(0,n.collectDocDrawings)(d),p=u.getEditArea()===i.DocumentEditArea.BODY,m=this._isDocumentInteractionFocusing(l),h=`${u.getEditArea()}:${m}`,g=e!=null&&h===this._lastEditStatusContextKey?e:void 0;if(g==null){if(!r&&h===this._lastEditStatusContextKey)return;this._lastEditStatusContextKey=h}let _=/* @__PURE__ */ new Set,v=this._indexDrawingShapes(c.getAllObjects(),l);for(let e of Object.keys(f)){let n=f[e];if(g!=null&&!g.has(n.drawingId))continue;let r=(0,a.getDocumentDrawingSegmentId)(s,n.drawingId),i=(0,a.canEditDocumentTargets)(this._permissionService,l,[...(0,a.getDocumentEntityParentPermissionObjectIds)(s,r,`drawing`,n.drawingId),(0,a.getDocumentEntityPermissionObjectId)(r,`drawing`,n.drawingId)]);this._recordReadOnlyDrawing(_,n.drawingId,i);let o=v.get(n.drawingId)??[];if(o.length)for(let e of o){c.detachTransformerFrom(e),this._setTransformerEditable(e,i);try{let r=m&&n.isMultiTransform!==t.BooleanNumber.TRUE;e.setOpacity(r?.5:1)}catch{}if((m||this._context.isMainScene)&&(p&&n.isMultiTransform!==t.BooleanNumber.TRUE||!p&&n.isMultiTransform===t.BooleanNumber.TRUE)){this._attachTransformerIfEditable(e,i,n.allowTransform);try{e.setOpacity(1)}catch{}}}}this._clearReadOnlyDrawingFocus(l,_)}_indexDrawingShapes(e,t){let n=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:t,drawingId:``}),r=/* @__PURE__ */ new Map;for(let t of e){if(!t.oKey.startsWith(n))continue;let e=t.oKey.slice(n.length).split(`#-#`,1)[0];if(!e)continue;let i=r.get(e)??[];i.push(t),r.set(e,i)}return r}_recordReadOnlyDrawing(e,t,n){n||e.add(t)}_attachTransformerIfEditable(e,t,n){t&&n!==!1&&this._context.scene.attachTransformerTo(e)}_clearReadOnlyDrawingFocus(e,t){if(t.size===0)return;let n=this._drawingManagerService.getFocusDrawings(),r=n.filter(n=>n.unitId!==e||!t.has(n.drawingId));r.length!==n.length&&this._drawingManagerService.focusDrawing(r)}_setTransformerEditable(e,t){var n;if(t){let t=this._editableTransformerConfigs.get(e);t&&(e.transformerConfig=t,this._editableTransformerConfigs.delete(e));let n=this._editableEventedStates.get(e);n!==void 0&&(e.evented=n,this._editableEventedStates.delete(e))}else this._editableTransformerConfigs.has(e)||this._editableTransformerConfigs.set(e,e.transformerConfig),this._editableEventedStates.has(e)||this._editableEventedStates.set(e,e.evented),e.evented=!1,(n=this._context.scene.getTransformer())==null||n.clearControlByIds([e.oKey]),e.transformerConfig={...e.transformerConfig,moveEnabled:!1,resizeEnabled:!1,rotateEnabled:!1}}_scheduleDrawingsEditStatusUpdate(e){e==null?(this._pendingEditStatusDrawingIds=null,this._lastEditStatusContextKey=null):this._pendingEditStatusDrawingIds!==null&&(this._pendingEditStatusDrawingIds??=/* @__PURE__ */ new Set,e.forEach(e=>{var t;return(t=this._pendingEditStatusDrawingIds)==null?void 0:t.add(e)})),!this._editStatusUpdateScheduled&&(this._editStatusUpdateScheduled=!0,queueMicrotask(()=>{if(this._editStatusUpdateScheduled=!1,!this._disposed){let e=this._pendingEditStatusDrawingIds;this._pendingEditStatusDrawingIds=void 0,this._updateDrawingsEditStatus(e??void 0)}}))}_canInsertDocImage(e){let{unit:t,unitId:n}=this._context,r=(e==null?void 0:e.startOffset)==null||e.endOffset==null?[]:(0,a.getDocumentEditTargetObjectIds)(t,e.segmentId??``,e);return(0,a.canEditDocumentTargets)(this._permissionService,n,r)}_editAreaChangeListener(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderUnitById(t))==null?void 0:e.with(a.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(void 0,!0)})})),this.disposeWithMe(this._commandService.onCommandExecuted(async e=>{if(e.id!==a.RichTextEditingMutation.id)return;let t=e.params;if(t!=null&&t.unitId&&t.unitId!==this._context.unitId)return;let n=j((t==null?void 0:t.actions)??null);(n==null?void 0:n.size)!==0&&this._scheduleDrawingsEditStatusUpdate(n??void 0)})))}_setDrawingSelections(e){let{unit:t}=this._context,n=k(t.getSnapshot(),e.map(({drawingId:e})=>e));this._docSelectionManagerService.replaceDocRanges(n)}};P=N([M(1,t.ICommandService),M(2,(0,t.Inject)(a.DocSelectionManagerService)),M(3,i.IRenderManagerService),M(4,t.IImageIoService),M(5,n.IDocDrawingService),M(6,s.IDrawingManagerService),M(7,t.IPermissionService),M(8,t.IContextService),M(9,c.IMessageService),M(10,(0,t.Inject)(t.LocaleService)),M(11,(0,t.Inject)(r.DocSelectionRenderService)),M(12,(0,t.Inject)(D)),M(13,c.ILocalFileService)],P);let F={id:`doc.command.insert-float-image`,type:t.CommandType.COMMAND,handler:e=>{var n;let r=e.get(t.IUniverInstanceService),a=e.get(i.IRenderManagerService);return((n=(0,i.getCurrentTypeOfRenderer)(t.UniverInstanceType.UNIVER_DOC,r,a))==null?void 0:n.with(P).insertDocImage())??!1}},I=`#3A60F7`,L=`#1D3EA6`;function ee(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="${I}" stroke="${L}" stroke-width="4" />`:`<rect x="4" y="4" width="${t-8}" height="${n-8}" rx="14" fill="${I}" stroke="${L}" stroke-width="4" />`}</svg>`;return`data:image/svg+xml;utf8,${encodeURIComponent(r)}`}function te(e,r,i,o){return{id:o,type:t.CommandType.COMMAND,handler:async o=>{var s;let c=o.get(t.ICommandService),l=(s=o.get(t.IUniverInstanceService).getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC))==null?void 0:s.getUnitId();if(!l)return!1;let u=(0,a.buildDocTransform)(r,i);return c.executeCommand(n.InsertDocDrawingCommand.id,{unitId:l,drawings:[{unitId:l,subUnitId:l,drawingId:(0,t.generateRandomId)(6),drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:t.ImageSourceType.BASE64,source:ee(e,r,i),transform:(0,a.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 R=te(`rectangle`,144,96,`doc.command.insert-float-shape.rectangle`),z=te(`ellipse`,112,112,`doc.command.insert-float-shape.ellipse`);function B(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=B(n,t,n.marginTop,n.marginLeft);if(e)return e}return null}function V(e,n,r){let{skeDrawing:i,pageMarginTop:a,pageMarginLeft:o}=e,s=i.aLeft,c=i.aTop;return n.relativeFrom===t.ObjectRelativeFromH.MARGIN?s-=o:n.relativeFrom===t.ObjectRelativeFromH.COLUMN&&(s-=i.columnLeft),r.relativeFrom===t.ObjectRelativeFromV.PAGE?c+=a:r.relativeFrom===t.ObjectRelativeFromV.LINE?c-=i.lineTop:r.relativeFrom===t.ObjectRelativeFromV.PARAGRAPH&&(c-=i.blockAnchorTop),{horizontal:s,vertical:c}}let H={id:`doc.command.move-drawing`,type:t.CommandType.COMMAND,handler:(e,r)=>{var o;let s=e.get(t.ICommandService),c=e.get(n.IDocDrawingService),l=e.get(t.IUniverInstanceService),u=e.get(i.IRenderManagerService),{direction:d}=r,f=c.getFocusDrawings();if(f.length===0)return!1;let p=f[0].unitId,m=u.getRenderUnitById(p),h=m==null?void 0:m.scene;if(h==null)return!1;let g=h.getTransformerByCreate(),_=m==null||(o=m.with(a.DocSkeletonManagerService).getSkeleton())==null?void 0:o.getSkeletonData(),v=l.getUnit(p,t.UniverInstanceType.UNIVER_DOC),y=f.map(e=>{var n;let{drawingId:r}=e,i=v==null||(n=v.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=_==null?{anchor:null,previewOnly:!1}:ne(_,r);if(s.previewOnly)return null;let{anchor:c}=s,l=c==null?{horizontal:a.posOffset??0,vertical:o.posOffset??0}:V(c,a,o),u={...a.relativeFrom==null?{}:{relativeFrom:a.relativeFrom},posOffset:l.horizontal},f={...o.relativeFrom==null?{}:{relativeFrom:o.relativeFrom},posOffset:l.vertical};return d===t.Direction.UP?f.posOffset=(f.posOffset??0)-2:d===t.Direction.DOWN?f.posOffset=(f.posOffset??0)+2:d===t.Direction.LEFT?u.posOffset=(u.posOffset??0)-2:d===t.Direction.RIGHT&&(u.posOffset=(u.posOffset??0)+2),{drawingId:r,key:d===t.Direction.UP||d===t.Direction.DOWN?`positionV`:`positionH`,value:d===t.Direction.UP||d===t.Direction.DOWN?f:u}}).filter(e=>e!=null);if(y.length===0)return!1;let b=s.syncExecuteCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:p,subUnitId:p,drawings:y});return g.refreshControls(),!!b}};function ne(e,t){let n=!1;for(let a of e.pages){var r,i;let o=B(a,t,a.marginTop,a.marginLeft),s=a.headerId==null||(r=e.skeHeaders.get(a.headerId))==null?void 0:r.get(a.headerLayoutKey??a.pageWidth),c=s==null?null:B(s,t,s.marginTop,a.marginLeft),l=a.footerId==null||(i=e.skeFooters.get(a.footerId))==null?void 0:i.get(a.footerLayoutKey??a.pageWidth),u=l==null?0:a.pageHeight-a.marginBottom+l.marginTop,d=l==null?null:B(l,t,u,a.marginLeft),f=o??c??d;if(f!=null){if(!a.isLayoutPlaceholder&&!a.isMaterializationPlaceholder)return{anchor:f,previewOnly:!1};n=!0}}return{anchor:null,previewOnly:n}}let U={id:`doc.operation.clear-drawing-transformer`,type:t.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(i.IRenderManagerService);return t.forEach(e=>{var t;(t=n.getRenderUnitById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},W=`COMPONENT_DOC_DRAWING_PANEL`,G={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:W},onClose:()=>{a.focusDrawing(null)},width:360});break;default:r.close()}return!0}},K={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&&(r.focusDrawing([n]),i.executeCommand(G.id,{value:`open`}),!0)}};function re(e,t,n=1,i=0){let{top:a,left:o,bottom:s,right:c}=e,l=c-o,u=s-a,{viewportScrollX:d,viewportScrollY:f}=t.getViewport(r.VIEWPORT_KEY.VIEW_MAIN),{scaleX:p,scaleY:m}=t.getAncestorScale();return{startX:(o-d)*p,startY:(a-f)*m,endX:(o+l-d)*p,endY:(a+u-f)*m,width:l*p,height:u*m,rotate:i,absolute:{left:!1,top:!1},opacity:n??1}}function q(e,t){let{top:n,left:r,width:i,height:a,angle:o,opacity:s}=e;return re({top:n,left:r,bottom:n+a,right:r+i},t.scene,s,o)}function ie(e,t){let n=ae(t.customBlockRenderViewport);return n?{...e,customBlockRenderViewport:n}:e}function ae(e){let t={};oe(e==null?void 0:e.bleedLeft)&&(t.bleedLeft=e.bleedLeft),J(e==null?void 0:e.bleedWidth)&&(t.bleedWidth=e.bleedWidth),J(e==null?void 0:e.contentHeight)&&(t.contentHeight=e.contentHeight),J(e==null?void 0:e.contentWidth)&&(t.contentWidth=e.contentWidth),J(e==null?void 0:e.height)&&(t.height=e.height),J(e==null?void 0:e.pageContentWidth)&&(t.pageContentWidth=e.pageContentWidth);let n=e==null?void 0:e.viewScale;return J(n)&&(t.viewScale=n),J(e==null?void 0:e.viewportHeight)&&(t.viewportHeight=e.viewportHeight),Object.keys(t).length?t:void 0}function J(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function oe(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0}let Y=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._renderManagerService=e,this._drawingManagerService=t,this._drawingRenderService=n,this._canvasFloatDomService=r,this._univerInstanceService=i,this._commandService=a,this._docRefreshDrawingsService=o,E(this,`_domLayerInfoMap`,/* @__PURE__ */ new Map),E(this,`_pendingRuntimeGeometry`,/* @__PURE__ */ new Map),E(this,`_pendingRuntimeGeometryInsert`,/* @__PURE__ */ new Map),E(this,`_pendingRuntimeGeometryRefresh`,/* @__PURE__ */ new Map),this._initialize()}dispose(){this._pendingRuntimeGeometry.clear(),this._pendingRuntimeGeometryInsert.clear();for(let e of this._pendingRuntimeGeometryRefresh.values())e.dispose();this._pendingRuntimeGeometryRefresh.clear(),super.dispose()}_initialize(){this._renderLifecycleListener(),this._drawingAddRemoveListener(),this._drawingRuntimePropsListener(),this._initScrollAndZoomEvent()}_renderLifecycleListener(){this.disposeWithMe(this._renderManagerService.disposed$.subscribe(e=>{this._disposePendingRuntimeGeometryRefresh(e)})),this.disposeWithMe(this._renderManagerService.created$.subscribe(e=>{this._hasPendingRuntimeGeometryForUnit(e.unitId)&&this._refreshDrawingsFromCurrentLayout(e.unitId)}))}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderUnitById(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=>{let n=[],r=/* @__PURE__ */ new Set;for(let i of e)if(ce(this._drawingManagerService.getDrawingByParam(i))&&this._univerInstanceService.getUnit(i.unitId,t.UniverInstanceType.UNIVER_DOC)!=null){if(this._pendingRuntimeGeometryInsert.has(i.drawingId))continue;this._pendingRuntimeGeometryInsert.set(i.drawingId,i),r.add(i.unitId),this._pendingRuntimeGeometry.has(i.drawingId)&&n.push(i)}else n.push(i);this._insertRects(n);for(let e of r)this._refreshDrawingsFromCurrentLayout(e)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}_refreshDrawingsFromCurrentLayout(e){let n=this._renderManagerService.getRenderUnitById(e);if(n==null||n.type!==t.UniverInstanceType.UNIVER_DOC||n.isDisposed())return;let r=n.with(a.DocSkeletonManagerService).getSkeleton();if(r!=null){if(!this._pendingRuntimeGeometryRefresh.has(e)){let n=r.dirty$.subscribe(()=>{this._hasPendingRuntimeGeometryForUnit(e)?this._docRefreshDrawingsService.refreshDrawings(r):this._disposePendingRuntimeGeometryRefresh(e)});this._pendingRuntimeGeometryRefresh.set(e,(0,t.toDisposable)(()=>n.unsubscribe()))}this._docRefreshDrawingsService.refreshDrawings(r)}}_hasPendingRuntimeGeometryForUnit(e){for(let t of this._pendingRuntimeGeometryInsert.values())if(t.unitId===e)return!0;return!1}_disposePendingRuntimeGeometryRefresh(e){var t;(t=this._pendingRuntimeGeometryRefresh.get(e))==null||t.dispose(),this._pendingRuntimeGeometryRefresh.delete(e)}_insertRects(e){for(let i of e){let{unitId:e}=i;if(!this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC))continue;let a=this._getSceneAndTransformerByDrawingSearch(e);if(a==null)continue;let o=this._drawingManagerService.getDrawingByParam(i);if(o==null)continue;let s=ce(o),c=this._pendingRuntimeGeometry.get(i.drawingId);if(s&&(c==null||this._pendingRuntimeGeometryInsert.get(i.drawingId)!==i))continue;let u=this._drawingRenderService.renderFloatDom(o,a.scene);if(u!=null&&u.length!==0){for(let i of u){var n;let u=c??o,d=ae(u.customBlockRenderViewport);X(i,u,d,void 0,s);let f=d||s?ue(i):void 0;this._addHoverForRect(i);let p=new t.DisposableCollection,m=q(i,a.renderUnit),h=new l.BehaviorSubject(m),g=a.canvas,_=o.data,v={dispose:p,preserveRuntimeGeometry:s,rect:i,runtimeTransform:f,runtimeViewport:d,position$:h,unitId:e};this._canvasFloatDomService.addFloatDom({position$:h,id:o.drawingId,componentKey:o.componentKey,contentBox:le(o)?{contentInset:0,wrapperInset:0}:void 0,eventPassThrough:!s&&void 0,preserveOnFocusChange:s,onPointerDown:e=>{g.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{g.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{g.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{g.dispatchEvent(new WheelEvent(e.type,e))},data:_,props:ie(void 0,o),unitId:e});let y=i.onTransformChange$.subscribeEvent(()=>{let e=q(i,a.renderUnit);h.next(e)}),b=de((n=a.scene.getViewport(r.VIEWPORT_KEY.VIEW_MAIN))==null?void 0:n.onScrollAfter$,()=>h.next(q(i,a.renderUnit)));p.add(()=>{this._canvasFloatDomService.removeFloatDom(o.drawingId)}),y&&p.add(y),b&&p.add(b),this._domLayerInfoMap.set(o.drawingId,v)}this._pendingRuntimeGeometry.delete(i.drawingId),this._pendingRuntimeGeometryInsert.delete(i.drawingId),this._hasPendingRuntimeGeometryForUnit(e)||this._disposePendingRuntimeGeometryRefresh(e)}}}_drawingRuntimePropsListener(){this.disposeWithMe(this._drawingManagerService.refreshTransform$.subscribe(e=>{e.forEach(e=>{var t;let n=this._domLayerInfoMap.get(e.drawingId);if(!n){let t=this._pendingRuntimeGeometryInsert.get(e.drawingId),n=this._drawingManagerService.getDrawingByParam(e);if(t!=null||ce(n)){if(e.hidden===!0)return;this._pendingRuntimeGeometry.set(e.drawingId,e),t!=null&&this._insertRects([t])}return}if(n.unitId!==e.unitId||n.preserveRuntimeGeometry&&e.hidden===!0)return;let r=e,i=ae(r.customBlockRenderViewport);if(i&&(n.runtimeViewport=i),X(n.rect,r,n.runtimeViewport,n.runtimeTransform,n.preserveRuntimeGeometry)){(i||n.preserveRuntimeGeometry)&&(n.runtimeTransform=ue(n.rect));let e=this._getSceneAndTransformerByDrawingSearch(n.unitId);e&&n.position$.next(q(n.rect,e.renderUnit))}let a=(t=this._canvasFloatDomService.domLayers.find(([t])=>t===e.drawingId))==null?void 0:t[1].props;this._canvasFloatDomService.updateFloatDom(e.drawingId,{props:ie(a,e)})})}))}_addHoverForRect(e){this.disposeWithMe((0,t.toDisposable)(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=i.CURSOR_TYPE.GRAB}))),this.disposeWithMe((0,t.toDisposable)(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=i.CURSOR_TYPE.DEFAULT})))}_removeDom(e){var t;let n=(t=this._pendingRuntimeGeometryInsert.get(e))==null?void 0:t.unitId;this._pendingRuntimeGeometry.delete(e),this._pendingRuntimeGeometryInsert.delete(e),n!=null&&!this._hasPendingRuntimeGeometryForUnit(n)&&this._disposePendingRuntimeGeometryRefresh(n);let r=this._domLayerInfoMap.get(e);if(!r)return;let{unitId:i}=r;this._domLayerInfoMap.delete(e),r.dispose.dispose();let a=this._getSceneAndTransformerByDrawingSearch(i);a&&a.scene.removeObject(r.rect)}_initScrollAndZoomEvent(){let e=e=>{let t=this._getSceneAndTransformerByDrawingSearch(e);t&&this._domLayerInfoMap.forEach(n=>{if(n.unitId!==e)return;let r=q(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.getRenderUnitById(t);return n?{render:n,unitId:t}:null}),(0,l.switchMap)(e=>e?(0,t.fromEventSubject)(e.render.scene.getViewport(r.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===r.SetDocZoomRatioOperation.id){let{unitId:n}=t.params;globalThis.queueMicrotask(()=>{this._disposed||e(n)})}}))}insertFloatDom(e,r){var i;let o=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(!o)return!1;let s=this._getSceneAndTransformerByDrawingSearch(o.getUnitId());if(!s)return!1;let c=(i=s.renderUnit.with(a.DocSkeletonManagerService).getSkeleton().getSkeletonData())==null?void 0:i.pages[0];if(!c)return!1;let{pageWidth:l,marginLeft:u,marginRight:d}=c,f=l-u-d,p={size:{width:r.width??f,height:r.height},positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0},angle:0},m=r.drawingId??(0,t.generateRandomId)(),h={unitId:o.getUnitId(),drawings:[{drawingId:m,drawingType:t.DrawingTypeEnum.DRAWING_DOM,subUnitId:o.getUnitId(),unitId:o.getUnitId(),...e,title:``,description:``,docTransform:p,layoutType:t.PositionedObjectLayoutType.INLINE,transform:(0,a.docDrawingPositionToTransform)(p)}]};return this._commandService.syncExecuteCommand(n.InsertDocDrawingCommand.id,h),m}};Y=N([M(0,i.IRenderManagerService),M(1,s.IDrawingManagerService),M(2,(0,t.Inject)(u.DrawingRenderService)),M(3,(0,t.Inject)(c.CanvasFloatDomService)),M(4,t.IUniverInstanceService),M(5,t.ICommandService),M(6,(0,t.Inject)(D))],Y);function X(e,t,n,r,i){let a=se(t,e,n,r,i);return a?(e.transformByState(a),!0):!1}function se(e,t,n,r,i){var a;let o=e.transform??((a=e.transforms)==null?void 0:a[0]),s=e.customBlockRenderViewport??n;if(!e.customBlockRenderViewport&&i&&r&&o)return{...o,width:r.width??o.width,height:r.height??o.height};if(!o){let e=(s==null?void 0:s.height)??(s==null?void 0:s.contentHeight);return J(e)?{left:t.left,top:t.top,width:t.width,height:e,angle:t.angle}:void 0}let c=(s==null?void 0:s.height)??(s==null?void 0:s.contentHeight);return J(c)?{...o,height:c}:o}function ce(e){if(typeof e!=`object`||!e||!(`data`in e))return!1;let t=e.data;if(!t||typeof t!=`object`)return!1;let n=t;return n.version===1&&typeof n.embedId==`string`&&typeof n.hostAnchorId==`string`}function le(e){if(!ce(e))return!1;let t=e.data;return!!t&&typeof t==`object`&&`childType`in t&&typeof t.childType==`number`&&(0,a.isSheetLikeDocsCustomBlockChildType)(t.childType)}function ue(e){return{angle:e.angle,height:e.height,left:e.left,top:e.top,width:e.width}}function de(e,n){if(!e||typeof e!=`object`)return;let r=e;if(typeof r.subscribeEvent==`function`)return r.subscribeEvent(n);let i=e;if(typeof i.subscribe==`function`){let e=i.subscribe(n);return(0,t.toDisposable)(()=>{var t;return(t=e.unsubscribe)==null?void 0:t.call(e)})}}let fe=`doc.menu.image`,Z=F.id,pe=e=>{let n=e.get(a.DocSelectionManagerService),r=e.get(t.IUniverInstanceService);return new l.Observable(e=>{let i=n.textSelection$.subscribe(()=>{let i=n.getActiveTextRange();if(i){var a;let{segmentId:n,startOffset:o,endOffset:s}=i,c=r.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC),l=c==null||(a=c.getSelfOrHeaderFooterModel(n))==null||(a=a.getBody())==null?void 0:a.tables;if(l&&l.length&&l.some(e=>{let{startIndex:t,endIndex:n}=e;return o>=t&&o<n||s>=t&&s<n})){e.next(!0);return}}else{e.next(!0);return}e.next(!1)});return()=>i.unsubscribe()})};function me(e){return{id:fe,commandId:Z,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,tooltip:`docs-drawing-ui.title`,disabled$:pe(e),hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function he(e){return{id:Z,title:`docs-drawing-ui.upload.float`,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function ge(e){return{id:`${Z}.below`,commandId:Z,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 _e=`doc.command.menu-insert-shape`,ve=`doc.command.menu-insert-shape.below`;function ye(e){return{id:_e,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 be(e){return{id:ve,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 xe(e){return{id:R.id,title:`docs-drawing-ui.shape.insert.rectangle`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function Se(e){return{id:z.id,title:`docs-drawing-ui.shape.insert.ellipse`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function Ce(e){return{id:`${R.id}.below`,commandId:R.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 we(e){return{id:`${z.id}.below`,commandId:z.id,title:`docs-drawing-ui.shape.insert.ellipse`,type:c.MenuItemType.BUTTON,params:{paragraphMenuPlacement:`below`},hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}let Te={[c.RibbonInsertGroup.MEDIA]:{[fe]:{order:0,gridLayout:{row:1,column:4},menuItemFactory:me}},[c.ContextMenuPosition.PARAGRAPH]:{[c.ContextMenuGroup.LAYOUT]:{[r.INSERT_BELLOW_MENU_ID]:{[Z]:{order:5,menuItemFactory:he}}},[r.EMPTY_PARAGRAPH_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[Z]:{order:5,menuItemFactory:he}}},[r.DOC_CONTENT_INSERT_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[Z]:{order:5,menuItemFactory:he}}},[r.DOC_PARAGRAPH_T_INSERT_MENU_ID]:{insert:{[Z]:{order:1,menuItemFactory:he},[_e]:{order:2,menuItemFactory:ye}}},[r.DOC_PARAGRAPH_T_INSERT_BELOW_MENU_ID]:{insert:{[`${Z}.below`]:{order:1,menuItemFactory:ge},[ve]:{order:2,menuItemFactory:be}}},[_e]:{shapes:{order:0,[R.id]:{order:0,menuItemFactory:xe},[z.id]:{order:1,menuItemFactory:Se}}},[ve]:{shapes:{order:0,[`${R.id}.below`]:{order:0,menuItemFactory:Ce},[`${z.id}.below`]:{order:1,menuItemFactory:we}}}}};var Ee=`@univerjs/docs-drawing-ui`,De=`1.2.0`;let Oe=`docs-drawing-ui.config`,ke=`DOC_DRAWING_UI_PLUGIN`,Ae={};function je(e,n){let r=e[n.drawingId];r==null?e[n.drawingId]=n:(n.selectable&&!r.selectable&&(r.selectable=!0,r.transform=n.transform),n.isMultiTransform===t.BooleanNumber.TRUE&&r.transforms.push(n.transform))}function Me(e,t){return e===t||JSON.stringify(e)===JSON.stringify(t)}function Ne(e,t){return!e||t.customBlockRenderViewport!=null||!Me(e.transform,t.transform)||!Me(e.transforms,t.transforms)||e.isMultiTransform!==t.isMultiTransform||e.hidden!==t.hidden||e.behindText!==t.behindText||e.selectable!==t.selectable}function Pe(e,n,r){return e.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&(n==null?void 0:n.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE?n:r?{...e,docTransform:{...e.docTransform,size:r}}:e}var Fe=class{constructor(){E(this,`_generation`,-1),E(this,`_publishedPageCount`,0),E(this,`_drawingOccurrenceCount`,0)}reset(){this._generation=-1,this._publishedPageCount=0,this._drawingOccurrenceCount=0}shouldRefresh(e,t){if(!t.didPublish&&!t.complete)return!1;let n=t.generation!==this._generation;n&&(this._generation=t.generation,this._publishedPageCount=0,this._drawingOccurrenceCount=0);let r=e.getSkeletonData();if(r==null)return!1;let i=this._publishedPageCount,a=Math.min(t.publishedPageCount,r.pages.length);this._publishedPageCount=Math.max(i,a);let o=Ke(r,a),s=!(n&&t.reason===`edit`)&&o!==this._drawingOccurrenceCount;return this._drawingOccurrenceCount=o,t.complete||t.didPublishAnchor||s?!0:n&&t.reason===`edit`?!1:qe(r,i,a)}};function Ie(e){let{docsLeft:n,docsTop:r,pageOffsetLeft:a,pageOffsetTop:o,clipOffsetLeft:s=0,clipOffsetTop:c=0,page:l}=e;if(l.type===i.DocumentSkeletonPageType.CELL&&e.drawingLayoutType===t.PositionedObjectLayoutType.WRAP_NONE&&e.overflowClipBounds!=null)return e.overflowClipBounds;let{pageWidth:u,pageHeight:d}=l;if(!Number.isFinite(u)||!Number.isFinite(d)||u<=0||d<=0)return;let f=l.type===i.DocumentSkeletonPageType.CELL?l.marginLeft??0:0,p=l.type===i.DocumentSkeletonPageType.CELL?l.marginTop??0:0;return{left:n+a+s-f,top:r+o+c-p,width:u,height:d}}function Le(e){let{drawing:t,hostPage:n,page:r}=e;if(n&&(r.type===i.DocumentSkeletonPageType.HEADER||r.type===i.DocumentSkeletonPageType.FOOTER))return n;if(n==null||t.behindText!==!0||t.transform==null)return r;let{width:a,height:o}=t.transform;if(a==null||o==null)return r;if(a>r.pageWidth||o>r.pageHeight)return n;let s=a/n.pageWidth,c=o/n.pageHeight;return s>=.8&&c>=.8?n:r}function Re(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.align==null?r.posOffset==null?r.percent?r.percent*n.pageWidth:0:r.posOffset:0}function ze(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.align==null?r.posOffset==null?r.percent?r.percent*n.pageHeight:0:r.posOffset:0}function Be(e){let{page:n,clipPage:r,hostPage:a}=e;if(e.drawingLayoutType!==t.PositionedObjectLayoutType.INLINE){if(a!=null&&a===r)return a;if(a==null&&n===r&&n.type!==i.DocumentSkeletonPageType.CELL)return n}}function Ve(e){let{drawingOrigin:n,hostPage:r}=e;return r!=null||n.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&n.behindDoc===t.BooleanNumber.TRUE}function He(e,t,n,r){let a=(0,i.getTableIdAndSliceIndex)(t.tableId).tableId,o=(0,i.getDocsTableRenderViewport)(e,a),s=Ue(o)?o.scrollLeft:0;return{left:t.left+r.left-s+r.marginLeft,top:t.top+n.top+r.marginTop}}function Ue(e){return e!=null&&(e.leadingInsetLeft??0)+e.contentWidth+(e.trailingInsetRight??0)>e.viewportWidth}function We(e){var t,n,r;if(e.skeDrawings.size>0||(t=e.notes)!=null&&t.some(e=>We(e.page)))return!0;let i=!1;return(n=e.skeTables)==null||n.forEach(e=>{e.rows.forEach(e=>{e.cells.forEach(e=>{We(e)&&(i=!0)})})}),(r=e.skeColumnGroups)==null||r.forEach(e=>{e.columns.forEach(e=>{We(e.page)&&(i=!0)})}),i}function Ge(e){var t,n,r;let i=e.skeDrawings.size;return(t=e.notes)==null||t.forEach(e=>{i+=Ge(e.page)}),(n=e.skeTables)==null||n.forEach(e=>{e.rows.forEach(e=>{e.cells.forEach(e=>{i+=Ge(e)})})}),(r=e.skeColumnGroups)==null||r.forEach(e=>{e.columns.forEach(e=>{i+=Ge(e.page)})}),i}function Ke(e,t){let n=0;for(let a=0;a<t;a++){var r,i;let t=e.pages[a];n+=Ge(t);let o=t.headerId==null||(r=e.skeHeaders.get(t.headerId))==null?void 0:r.get(t.headerLayoutKey??t.pageWidth);o!=null&&(n+=Ge(o));let s=t.footerId==null||(i=e.skeFooters.get(t.footerId))==null?void 0:i.get(t.footerLayoutKey??t.pageWidth);s!=null&&(n+=Ge(s))}return n}function qe(e,t,n){for(let a=t;a<n;a++){var r,i;let t=e.pages[a];if(We(t))return!0;let n=t.headerId==null||(r=e.skeHeaders.get(t.headerId))==null?void 0:r.get(t.headerLayoutKey??t.pageWidth);if(n!=null&&We(n))return!0;let o=t.footerId==null||(i=e.skeFooters.get(t.footerId))==null?void 0:i.get(t.footerLayoutKey??t.pageWidth);if(o!=null&&We(o))return!0}return!1}let Je=class extends t.Disposable{constructor(e,n,r,a,o,s,c,l){super(),this._context=e,this._docSkeletonManagerService=n,this._commandService=r,this._editorService=a,this._drawingManagerService=o,this._docRefreshDrawingsService=s,this._univerInstanceService=c,this._lifecycleService=l,E(this,`_liquid`,new i.Liquid),E(this,`_changesetDrawingRefreshScheduled`,!1),E(this,`_pendingMultiDrawingSelection`,/* @__PURE__ */ new Set),E(this,`_pendingMultiDrawingSelectionSubscription`,void 0),E(this,`_publicationTracker`,new Fe),this._initialize(),this._commandExecutedListener(),this.disposeWithMe((0,t.toDisposable)(()=>this._clearPendingMultiDrawingSelection()))}_initialize(){this._initialRenderRefresh(),this._drawingInitializeListener(),this._initTransformRefresh()}_initialRenderRefresh(){this.disposeWithMe(this._docSkeletonManagerService.currentSkeleton$.pipe((0,l.switchMap)(e=>{if(this._publicationTracker.reset(),e==null)return l.EMPTY;this._refreshDrawing(e);let n=(0,l.animationFrames)().pipe((0,l.startWith)(null),(0,l.map)(()=>this._context.mainComponent),(0,l.filter)(e=>e instanceof i.Documents&&e.left>-1e4&&e.top>-1e4),(0,l.take)(1),(0,l.switchMap)(n=>(0,t.fromEventSubject)(n.onTransformChange$).pipe((0,l.filter)(e=>e.type===i.TRANSFORM_CHANGE_OBSERVABLE_TYPE.translate&&`left`in e.value&&`left`in e.preValue&&(e.value.left!==e.preValue.left||e.value.top!==e.preValue.top)),(0,l.map)(()=>({documentSkeleton:e,progress:null})),(0,l.startWith)({documentSkeleton:e,progress:null}))));return(0,l.merge)(e.layoutProgress$.pipe((0,l.map)(t=>({documentSkeleton:e,progress:t}))),e.layoutPageMaterialized$.pipe((0,l.map)(()=>({documentSkeleton:e,progress:null}))),n)})).subscribe(({documentSkeleton:e,progress:t})=>{(t==null||this._publicationTracker.shouldRefresh(e,t))&&this._refreshDrawing(e)})),this.disposeWithMe(this._docRefreshDrawingsService.refreshDrawings$.subscribe(e=>{e!=null&&this._refreshDrawing(e)}))}_commandExecutedListener(){let e=[a.RichTextEditingMutation.id,r.SetDocZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted((t,n)=>{if(e.includes(t.id)){let e=t.params,{unitId:r}=e,{unitId:i}=this._context;if(r!==i)return;let o=t.id===a.RichTextEditingMutation.id?j(e.actions):null;if((o==null?void 0:o.size)===0)return;if(t.id===a.RichTextEditingMutation.id&&n!=null&&n.fromChangeset){this._scheduleChangesetDrawingRefresh();return}this._refreshCurrentDrawing(o??void 0,t.id===a.RichTextEditingMutation.id)}}))}_scheduleChangesetDrawingRefresh(){this._changesetDrawingRefreshScheduled||(this._changesetDrawingRefreshScheduled=!0,queueMicrotask(()=>{queueMicrotask(()=>{this._changesetDrawingRefreshScheduled=!1,!this._disposed&&this._refreshCurrentDrawing(void 0,!0)})}))}_refreshCurrentDrawing(e,t=!1){let n=this._docSkeletonManagerService.getSkeleton();if(n==null)return;let{unitId:r,mainComponent:i}=this._context;this._editorService.isEditor(r)?i==null||i.makeDirty():this._refreshDrawing(n,e,t)}_initTransformRefresh(){this.disposeWithMe((0,l.merge)((0,t.fromEventSubject)(this._context.engine.onTransformChange$).pipe((0,l.filter)(e=>e.type===i.TRANSFORM_CHANGE_OBSERVABLE_TYPE.resize)),(0,t.fromEventSubject)(this._context.scene.onTransformChange$).pipe((0,l.filter)(e=>e.type===i.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale))).pipe((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,n,r=!1){let i=e==null?void 0:e.getSkeletonData(),{mainComponent:a,unitId:o}=this._context,s=a;if(!i)return;let{left:c,top:l,pageLayoutType:u,pageMarginLeft:d,pageMarginTop:f}=s;if(c<=-1e4||l<=-1e4)return;let{pages:p,skeHeaders:m,skeFooters:h}=i,g={};this._liquid.reset();for(let e=0,t=p.length;e<t;e++){let t=p[e];this._collectPublishedPageDrawingPositions(o,t,m,h,c,l,g),this._liquid.translatePage(t,u,d,f)}let _=this._includeGroupChildren(n),v=Object.values(g).filter(e=>_==null||_.has(e.drawingId));for(let e of v)e.hidden=!1;let y=this._getStaleNonMultiDrawings(o,g,_),b=v.filter(e=>!e.isMultiTransform).concat(y).filter(e=>Ne(this._drawingManagerService.getDrawingByParam({unitId:o,subUnitId:o,drawingId:e.drawingId}),e));b.length>0&&this._drawingManagerService.refreshTransform(b);let x=_!=null&&[..._].some(e=>{var n,r;return((n=g[e])==null?void 0:n.isMultiTransform)===t.BooleanNumber.TRUE||((r=this._drawingManagerService.getDrawingByParam({unitId:o,subUnitId:o,drawingId:e}))==null?void 0:r.isMultiTransform)===t.BooleanNumber.TRUE});if(_==null||x){let e=Object.values(g).filter(e=>e.isMultiTransform);this._handleMultiDrawingsTransform(e,r)}}_includeGroupChildren(e){if(e==null)return;let t=new Set(e),{drawings:r}=(0,n.collectDocDrawings)(this._context.unit.getSnapshot()),i=-1;for(;i!==t.size;){i=t.size;for(let e of Object.values(r))e.groupId&&t.has(e.groupId)&&t.add(e.drawingId)}return t}_collectPublishedPageDrawingPositions(e,t,n,r,i,a,o){var s,c;let l=!t.isLayoutPlaceholder&&!t.isMaterializationPlaceholder,{headerId:u,footerId:d,pageWidth:f}=t,p=u?(s=n.get(u))==null?void 0:s.get(t.headerLayoutKey??f):void 0;p!=null&&this._collectSegmentDrawingPositions(e,p,i,a,o,p.marginTop,t.marginLeft,t,l);let m=d?(c=r.get(d))==null?void 0:c.get(t.footerLayoutKey??f):void 0;if(m!=null){let n=t.pageHeight-m.height-m.marginBottom;this._collectSegmentDrawingPositions(e,m,i,a,o,n,t.marginLeft,t,l)}this._collectSegmentDrawingPositions(e,t,i,a,o,t.marginTop,t.marginLeft,void 0,l);for(let n of t.notes??[])this._collectSegmentDrawingPositions(e,n.page,i,a,o,n.top,n.left,void 0,l,{top:n.top,left:n.left})}_collectSegmentDrawingPositions(e,t,n,r,i,a,o,s,c,l){let u=Ie({docsLeft:n,docsTop:r,pageOffsetLeft:this._liquid.x,pageOffsetTop:this._liquid.y,page:s??t});this._calculateDrawingPosition(e,t,n,r,i,a,o,s,c,l,u),this._calculateTableCellDrawingPositions(e,t,n,r,i,a,o,c,u),this._calculateColumnGroupDrawingPositions(e,t,n,r,i,a,o,c,u)}_getStaleNonMultiDrawings(e,n,r){let i=this._drawingManagerService.getDrawingData(e,e)??{};return Object.values(i).filter(e=>e.isMultiTransform!==t.BooleanNumber.TRUE).filter(e=>r==null||r.has(e.drawingId)).filter(e=>n[e.drawingId]==null).map(n=>({unitId:e,subUnitId:e,drawingId:n.drawingId,behindText:!1,hidden:!0,selectable:!0,transform:n.transform,transforms:n.transforms??[],isMultiTransform:n.isMultiTransform??t.BooleanNumber.FALSE}))}_handleMultiDrawingsTransform(e,n=!1){let{scene:r,unitId:i}=this._context,a=e.filter(e=>n||Ne(this._drawingManagerService.getDrawingByParam(e)??void 0,e)),o=new Set(e.map(e=>e.drawingId)),c=Object.values(this._drawingManagerService.getDrawingData(i,i)).filter(e=>e.isMultiTransform===t.BooleanNumber.TRUE&&(n||!o.has(e.drawingId)&&e.hidden!==!0));if(a.length===0&&c.length===0)return;let l=r.getTransformer(),u=n?[.../* @__PURE__ */ new Set([...this._pendingMultiDrawingSelection,...(l==null?void 0:l.getSelectedObjectMap().keys())??[]])]:[];if(n&&this._clearPendingMultiDrawingSelection(),a.forEach(e=>{var t,n;let i=this._drawingManagerService.getDrawingByParam(e);if(i!=null){for(let o=((t=e.transforms)==null?void 0:t.length)??0;o<(((n=i.transforms)==null?void 0:n.length)??0);o++){var a;let e=(0,s.getDrawingShapeKeyByDrawingSearch)(i,o);l==null||l.clearControlByIds([e]),(a=r.getObjectIncludeInGroup(e))==null||a.dispose()}Object.assign(i,e)}}),c.length>0){this._drawingManagerService.removeNotification(c);for(let e of c)o.has(e.drawingId)||(e.hidden=!0)}a.length>0&&(n?this._drawingManagerService.addNotification(a):this._drawingManagerService.refreshTransform(a)),n?this._restoreMultiDrawingSelection(u):this._pendingMultiDrawingSelection.size>0?this._restoreMultiDrawingSelection([...this._pendingMultiDrawingSelection]):l==null||l.refreshControls()}_clearPendingMultiDrawingSelection(){var e;(e=this._pendingMultiDrawingSelectionSubscription)==null||e.dispose(),this._pendingMultiDrawingSelectionSubscription=void 0,this._pendingMultiDrawingSelection.clear()}_restoreMultiDrawingSelection(e){this._clearPendingMultiDrawingSelection();let{scene:n,unitId:r}=this._context,i=n.getTransformer();if(!i||this._disposed)return;let a=new Set(Object.values(this._drawingManagerService.getDrawingData(r,r)).filter(e=>e.isMultiTransform===t.BooleanNumber.TRUE&&e.hidden!==!0&&e.selectable!==!1).flatMap(e=>(e.transforms??[]).map((t,n)=>(0,s.getDrawingShapeKeyByDrawingSearch)(e,n))));for(let t of e){let e=n.getObjectIncludeInGroup(t);e!=null&&e.visible&&e.evented?i.setSelectedControl(e):!e&&a.has(t)&&this._pendingMultiDrawingSelection.add(t)}if(i.refreshControls(),this._pendingMultiDrawingSelection.size===0)return;let o=new l.Subscription;this._pendingMultiDrawingSelectionSubscription=this.disposeWithMe(o);let c=/* @__PURE__ */ new Set([...e,...i.getSelectedObjectMap().keys()]),u=this._includeGroupChildren(new Set([...this._pendingMultiDrawingSelection].flatMap(e=>{let t=this._drawingManagerService.getDrawingOKey(e);return t?[t.drawingId]:[]})));o.add(this._drawingManagerService.refreshTransform$.subscribe(e=>{e.some(e=>e.unitId===r&&(u==null?void 0:u.has(e.drawingId)))&&this._restoreMultiDrawingSelection([...this._pendingMultiDrawingSelection])})),o.add(this._drawingManagerService.remove$.subscribe(e=>{let t=e.map(e=>(0,s.getDrawingShapeKeyByDrawingSearch)(e)),n=[...this._pendingMultiDrawingSelection].filter(e=>!t.some(t=>e===t||e.startsWith(`${t}#-#`)));n.length!==this._pendingMultiDrawingSelection.size&&this._restoreMultiDrawingSelection(n)})),o.add((0,l.merge)(i.clearControl$,i.changeStart$).subscribe(()=>{this._clearPendingMultiDrawingSelection()})),o.add(i.createControl$.subscribe(()=>{[...i.getSelectedObjectMap().keys()].some(e=>!c.has(e))&&this._clearPendingMultiDrawingSelection()}))}_calculateDrawingPosition(e,t,n,r,i,a,o,s,c=!0,l,u){let{skeDrawings:d}=t,f=this._liquid.x,p=this._liquid.y;this._liquid.translatePagePadding({marginTop:a,marginLeft:o});let m={unitId:e,page:t,docsLeft:n,docsTop:r,pageOffsetLeft:f,pageOffsetTop:p,updateDrawingMap:i,hostPage:s,selectable:c,clipOffset:l,overflowClipBounds:u};d.forEach(e=>this._collectDrawingPosition(e,m)),this._liquid.restorePagePadding({marginTop:a,marginLeft:o})}_collectDrawingPosition(e,n){var r,i;let{aLeft:a,aTop:o,angle:s,drawingId:c,drawingOrigin:l,height:u,width:d}=e,f=Pe(l,(r=this._context.unit)==null||(i=r.getSnapshot)==null||(i=i.call(r).drawings)==null?void 0:i[c],e.customBlockRenderViewport?{width:d,height:u}:void 0),{angle:p=s,size:m}=f.docTransform,h=(m==null?void 0:m.height)??u,g=(m==null?void 0:m.width)??d,{left:_,top:v}=n.clipOffset??{},y=Ve({drawingOrigin:f,hostPage:n.hostPage}),{isMultiTransform:b=t.BooleanNumber.FALSE}=f,x=Le({drawing:{behindText:y,transform:{width:g,height:h}},hostPage:n.hostPage,page:n.page}),S=Ie({docsLeft:n.docsLeft,docsTop:n.docsTop,pageOffsetLeft:n.pageOffsetLeft,pageOffsetTop:n.pageOffsetTop,clipOffsetLeft:_,clipOffsetTop:v,page:x,drawingLayoutType:f.layoutType,overflowClipBounds:n.overflowClipBounds}),C=Be({page:n.page,clipPage:x,hostPage:n.hostPage,drawingLayoutType:f.layoutType}),w=C==null?void 0:Re({hostPage:C,positionH:f.docTransform.positionH,width:g}),T=C==null?void 0:ze({hostPage:C,positionV:f.docTransform.positionV,height:h}),E={left:(w??a)+n.docsLeft+(w==null?this._liquid.x:n.pageOffsetLeft),top:(T??o)+n.docsTop+(T==null?this._liquid.y:n.pageOffsetTop),width:g,height:h,angle:p,flipX:f.docTransform.flipX,flipY:f.docTransform.flipY,clipBounds:S};je(n.updateDrawingMap,{unitId:n.unitId,subUnitId:n.unitId,drawingId:c,behindText:y,selectable:n.selectable,transform:E,transforms:[E],customBlockRenderViewport:e.customBlockRenderViewport,isMultiTransform:b}),f.drawingType===t.DrawingTypeEnum.DRAWING_GROUP&&this._collectGroupChildren(c,n,y,b,/* @__PURE__ */ new Set([c]))}_collectGroupChildren(e,t,r,i,a){let{drawings:o}=(0,n.collectDocDrawings)(this._context.unit.getSnapshot());for(let n of Object.values(o)){if(n.groupId!==e||a.has(n.drawingId))continue;a.add(n.drawingId);let{size:o,positionH:s,positionV:c,angle:l,flipX:u,flipY:d}=n.docTransform,f={left:s.posOffset??0,top:c.posOffset??0,width:o.width,height:o.height,angle:l,flipX:u,flipY:d};je(t.updateDrawingMap,{unitId:t.unitId,subUnitId:t.unitId,drawingId:n.drawingId,behindText:r,selectable:t.selectable,transform:f,transforms:[f],isMultiTransform:i}),this._collectGroupChildren(n.drawingId,t,r,i,a)}}_calculateTableCellDrawingPositions(e,t,n,r,i,a,o,s,c){var l;(l=t.skeTables)==null||l.forEach(t=>{t.rows.forEach(l=>{l.cells.forEach(u=>{var d,f,p;if((((d=u.skeDrawings)==null?void 0:d.size)??0)===0&&(((f=u.skeTables)==null?void 0:f.size)??0)===0&&(((p=u.skeColumnGroups)==null?void 0:p.size)??0)===0)return;let m=He(e,t,l,u),h=a+m.top,g=o+m.left;this._calculateDrawingPosition(e,u,n,r,i,h,g,void 0,s,{left:g,top:h},c),this._calculateTableCellDrawingPositions(e,u,n,r,i,h,g,s,c),this._calculateColumnGroupDrawingPositions(e,u,n,r,i,h,g,s,c)})})})}_calculateColumnGroupDrawingPositions(e,t,n,r,i,a,o,s,c){var l;(l=t.skeColumnGroups)==null||l.forEach(t=>{t.columns.forEach(l=>{let u=l.page,d=a+t.top+l.top+u.marginTop,f=o+t.left+l.left+u.marginLeft,p={left:f,top:d};this._calculateDrawingPosition(e,u,n,r,i,d,f,void 0,s,p,c),this._calculateTableCellDrawingPositions(e,u,n,r,i,d,f,s,c),this._calculateColumnGroupDrawingPositions(e,u,n,r,i,d,f,s,c)})})}_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))}};Je=N([M(1,(0,t.Inject)(a.DocSkeletonManagerService)),M(2,t.ICommandService),M(3,r.IEditorService),M(4,s.IDrawingManagerService),M(5,(0,t.Inject)(D)),M(6,t.IUniverInstanceService),M(7,(0,t.Inject)(t.LifecycleService))],Je);function Ye(e,t,n,r,a){function o(n,r,i,s){var c;let l=n.skeDrawings.get(t),u=l&&a?{...l,drawingOrigin:a}:l;if(u)return{skeDrawing:u,page:n,hostPage:s,pageMarginLeft:r,pageMarginTop:i};for(let t of n.skeTables.values())for(let n of t.rows)for(let a of n.cells){let s=He(e,t,n,a),c=o(a,r+s.left,i+s.top);if(c)return c}for(let e of((c=n.skeColumnGroups)==null?void 0:c.values())??[])for(let t of e.columns){let n=o(t.page,r+e.left+t.left+t.page.marginLeft,i+e.top+t.top+t.page.marginTop);if(n)return n}return null}for(let e of n.pages){let{headerId:t,footerId:a,marginLeft:l,marginTop:u,pageWidth:d,pageHeight:f}=e,p=null;if(r===i.DocumentEditArea.HEADER){var s;let r=(s=n.skeHeaders.get(t))==null?void 0:s.get(e.headerLayoutKey??d);r&&(p=o(r,l,r.marginTop,e))}else if(r===i.DocumentEditArea.FOOTER){var c;let t=(c=n.skeFooters.get(a))==null?void 0:c.get(e.footerLayoutKey??d);t&&(p=o(t,l,f-t.height-t.marginBottom,e))}else if(p=o(e,l,u),!p){for(let t of e.notes??[])if(p=o(t.page,t.left,t.top),p)break}if(p)return p}return null}function Xe(e,n){let{skeDrawing:r,page:i}=e,a=r.isPageBreak?0:r.columnLeft;return(r.blockAnchorLeft??0)>0&&n!==t.ObjectRelativeFromV.LINE&&(a+=r.blockAnchorLeft-(r.isPageBreak?0:r.columnLeft||i.marginLeft),r.normalizeTraditionalColumnAnchor&&n===t.ObjectRelativeFromV.PARAGRAPH&&(a-=i.marginLeft)),a}function Ze(e,r,a,o,s){var c;let l=e.skeDrawing.drawingOrigin,u=r.positionV.relativeFrom;if(l.layoutType!==t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM&&l.layoutType!==t.PositionedObjectLayoutType.WRAP_SQUARE||u!==t.ObjectRelativeFromV.PARAGRAPH&&u!==t.ObjectRelativeFromV.LINE||l.docTransform.positionV.relativeFrom===u)return r;let d=new t.DocumentDataModel(t.Tools.deepClone(a)),f=(c=(0,n.findDocDrawing)(d.getSnapshot(),l.drawingId))==null?void 0:c.drawing;if(!f)return d.dispose(),null;let p=new i.DocumentViewModel(d),m=i.DocumentSkeleton.create(p,o),h={...r,positionV:{relativeFrom:u,posOffset:0}},g=e.skeDrawing.aTop+e.pageMarginTop,_;try{for(let e=0;e<8;e++){f.docTransform=h,m.makeDirty(!0),m.calculate();let e=Ye(a.id,l.drawingId,m.getSkeletonData(),s,f);if(!e)return null;let t=g-e.skeDrawing.aTop-e.pageMarginTop;if(Math.abs(t)<.01)return h;let n=h.positionV.posOffset??0,r=_&&Math.abs(_.delta-t)>.01?n-t*(n-_.offset)/(t-_.delta):n+t;_={offset:n,delta:t},h={...h,positionV:{relativeFrom:u,posOffset:r}}}return null}finally{m.dispose(),p.dispose(),d.dispose()}}function Qe(e,n,r=e.skeDrawing.drawingOrigin.docTransform.positionH.relativeFrom,i=e.skeDrawing.drawingOrigin.docTransform.positionV.relativeFrom,a){let{skeDrawing:o,page:s,hostPage:c,pageMarginLeft:l,pageMarginTop:u}=e,{drawingOrigin:d,width:f,height:p,aLeft:m,aTop:h}=o,{positionH:g,positionV:_}=d.docTransform,v=Be({page:s,clipPage:Le({drawing:{behindText:Ve({drawingOrigin:d,hostPage:c}),transform:{width:f,height:p}},page:s,hostPage:c}),hostPage:c}),y=d.layoutType!==t.PositionedObjectLayoutType.INLINE&&v!=null,b=n!==t.PositionedObjectLayoutType.INLINE&&v!=null,x=d.layoutType===t.PositionedObjectLayoutType.INLINE,S={...d.docTransform},C=r===t.ObjectRelativeFromH.COLUMN&&(o.blockAnchorLeft??0)>0&&i!==_.relativeFrom;if(a!=null&&a.left||x||C||r!==g.relativeFrom||g.relativeFrom===t.ObjectRelativeFromH.PAGE&&y!==b){let n=(y?Re({hostPage:v,positionH:g,width:f}):void 0)??m+l,c={[t.ObjectRelativeFromH.PAGE]:b?0:l-(o.pageAnchorLeft??0),[t.ObjectRelativeFromH.MARGIN]:l+s.marginLeft-(o.pageAnchorLeft??0),[t.ObjectRelativeFromH.COLUMN]:l+Xe(e,i)};S.positionH={relativeFrom:r,posOffset:n+((a==null?void 0:a.left)??0)-(c[r]??l)}}if(a!=null&&a.top||x||i!==_.relativeFrom||_.relativeFrom===t.ObjectRelativeFromV.PAGE&&y!==b){let e=(y?ze({hostPage:v,positionV:_,height:p}):void 0)??h+u,n={[t.ObjectRelativeFromV.PAGE]:b?0:u-s.marginTop,[t.ObjectRelativeFromV.LINE]:u+o.lineTop,[t.ObjectRelativeFromV.PARAGRAPH]:u+(o.isPageBreak?0:o.blockAnchorTop)};S.positionV={relativeFrom:i,posOffset:e+((a==null?void 0:a.top)??0)-(n[i]??u)}}return S}function $e(e){if(t.JSONX.isNoop(e))return null;let n=[],r=t.JSON1.type.readCursor(e);return r.traverse(null,()=>{let e=r.getPath();if(e.length!==2||e[0]!==`drawings`||typeof e[1]!=`string`)return;let t=r.getComponent();(t==null?void 0:t.r)!==void 0&&n.push({type:`remove`,drawingId:e[1]}),(t==null?void 0:t.i)!==void 0&&n.push({type:`add`,drawingId:e[1],drawing:t.i})}),n.length?n:null}function et(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}function tt(e,n=/* @__PURE__ */ new Set){if(t.JSONX.isNoop(e)||!Array.isArray(e))return n;if(e[0]===`drawings`){let t=e[1];return typeof t==`string`?(n.add(t),n):(e.slice(1).forEach(e=>{Array.isArray(e)&&typeof e[0]==`string`&&n.add(e[0])}),n)}return e.forEach(e=>{Array.isArray(e)&&tt(e,n)}),n}let nt=class extends t.Disposable{constructor(e,t,n,r,i,a){super(),this._univerInstanceService=e,this._commandService=t,this._drawingManagerService=n,this._docDrawingService=r,this._renderManagerService=i,this._docRefreshDrawingsService=a,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id!==a.RichTextEditingMutation.id)return;let{unitId:t,actions:n,isSync:r,syncer:i}=e.params,o=$e(n);if(o!=null)for(let{type:e,drawingId:n,drawing:a}of o)r&&(a==null?void 0:a.unitId)===i||(e===`add`?this._addDrawings(t,[a]):this._removeDrawings(t,[n]))})),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{e.id===n.UpdateDocDrawingWrappingStyleCommand.id&&this._preserveWrappingStylePosition(e.params)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==a.RichTextEditingMutation.id)return;let{unitId:n,actions:r}=e.params,i=!1;if(!t.JSONX.isNoop(r)){let e=t.JSON1.type.readCursor(r);e.traverse(null,()=>{i||=e.getPath()[0]===`notes`})}i&&this._syncNoteDrawings(n),et(r).length>0&&this._updateDrawingsOrder(n);let o=[...tt(r)];o.length>0&&this._syncDrawingDataFromSnapshot(n,o)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==n.UpdateDrawingDocTransformCommand.id&&e.id!==n.UpdateDocDrawingWrappingStyleCommand.id)return;let{unitId:t}=e.params,r=this._renderManagerService.getRenderUnitById(t),i=r==null?void 0:r.scene;r!=null&&i!=null&&(e.id===n.UpdateDocDrawingWrappingStyleCommand.id&&this._docRefreshDrawingsService.refreshDrawings(r.with(a.DocSkeletonManagerService).getSkeleton()),i.getTransformerByCreate().refreshControls())})),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.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC))==null?void 0:n.getUnitId(),i=this._drawingManagerService.getFocusDrawings();if(r==null||i.length===0)return;let o=this._renderManagerService.getRenderUnitById(r),s=o==null?void 0:o.scene;if(o==null||s==null)return!1;this._docRefreshDrawingsService.refreshDrawings(o.with(a.DocSkeletonManagerService).getSkeleton()),s.getTransformerByCreate().refreshControls()}))}_preserveWrappingStylePosition(e){if(e.wrappingStyle===n.TextWrappingStyle.INLINE)return;let{unitId:r}=e,i=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_DOC),o=this._renderManagerService.getRenderUnitById(r),s=o==null?void 0:o.with(a.DocSkeletonManagerService),c=s==null?void 0:s.getSkeleton().getSkeletonData(),l=s==null?void 0:s.getViewModel();if(!i||!c||!l)return;let u=l.getEditArea(),d=(0,n.collectDocDrawings)(i.getSnapshot()).drawings;e.drawings=e.drawings.map(i=>{let a=d[i.drawingId];if(!a)return i;let o=Ye(r,i.drawingId,c,u,a);if(!o)return i;let s=Qe(o,n.WRAPPING_STYLE_TO_LAYOUT_TYPE[e.wrappingStyle]);for(let e of[`positionH`,`positionV`]){var l;let n=(l=i.docTransform)==null?void 0:l[e];n&&!t.Tools.diffValue(n,a.docTransform[e])&&Object.assign(s,{[e]:n})}return{...a,...i,docTransform:{...s,...i.docTransform,positionH:s.positionH,positionV:s.positionV}}})}_addDrawings(e,t){let n=this._drawingManagerService,r=this._docDrawingService,{subUnitId:i,redo:a,objects:o}=this._docDrawingService.getBatchAddOp(t.map(t=>({...t,unitId:e,subUnitId:e})));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,i=t.filter(t=>r.getDrawingByParam({unitId:e,subUnitId:e,drawingId:t}));if(i.length===0)return;let{subUnitId:a,redo:o,objects:s}=this._docDrawingService.getBatchRemoveOp(i.map(t=>({unitId:e,subUnitId:e,drawingId:t})));n.applyJson1(e,a,o),r.applyJson1(e,a,o),n.removeNotification(s),r.removeNotification(s)}_updateDrawingsOrder(e){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(r==null)return;let{drawings:i,drawingsOrder:a}=(0,n.collectDocDrawings)(r.getSnapshot());if(a==null)return;let o=(0,n.getDocDrawingRenderOrder)(a,i),s=this._drawingManagerService,c=this._docDrawingService;s.setDrawingOrder(e,e,o),c.setDrawingOrder(e,e,a);let l={unitId:e,subUnitId:e,drawingIds:o};s.orderNotification(l),c.orderNotification({unitId:e,subUnitId:e,drawingIds:a})}_syncNoteDrawings(e){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!r)return;let{drawings:i}=(0,n.collectDocDrawings)(r.getSnapshot()),a=this._docDrawingService.getDrawingData(e,e)??{},o=Object.keys(i).filter(e=>!a[e]),s=Object.keys(a).filter(e=>!i[e]),c=Object.keys(i).filter(e=>i[e]!==a[e]);o.length>0&&this._addDrawings(e,o.map(t=>({...i[t],unitId:e,subUnitId:e}))),s.length>0&&this._removeDrawings(e,s),c.length>0&&this._syncDrawingDataFromSnapshot(e,c)}_syncDrawingDataFromSnapshot(e,r){let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(i==null)return;let{drawings:a,drawingsOrder:o}=(0,n.collectDocDrawings)(i.getSnapshot()),s=Object.fromEntries(Object.entries(a).map(([t,n])=>[t,{...n,unitId:e,subUnitId:e}])),c=this._docDrawingService.getDrawingData(e,e),l=this._drawingManagerService.getDrawingData(e,e),u=Object.keys(s).filter(e=>!l[e]),d=[.../* @__PURE__ */ new Set([...r,...u])],f=o!==this._docDrawingService.getDrawingOrder(e,e)||d.some(e=>{let n=c[e],r=s[e];return((n==null?void 0:n.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&n.behindDoc===t.BooleanNumber.TRUE)!=((r==null?void 0:r.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&r.behindDoc===t.BooleanNumber.TRUE)}),p=d.some(e=>{var t,n;return((t=c[e])==null?void 0:t.groupId)!==((n=s[e])==null?void 0:n.groupId)});p&&this._drawingManagerService.removeNotification(Object.values(this._drawingManagerService.getDrawingData(e,e)));let m={...this._drawingManagerService.getDrawingData(e,e)};for(let e of d){let t=s[e];if(t){var h;m[e]={...t,transform:((h=m[e])==null?void 0:h.transform)??t.transform}}else delete m[e]}this._docDrawingService.setDrawingData(e,e,s),this._drawingManagerService.setDrawingData(e,e,m),f&&(this._docDrawingService.setDrawingOrder(e,e,o),this._drawingManagerService.setDrawingOrder(e,e,(0,n.getDocDrawingRenderOrder)(o,a)));let g=d.filter(e=>s[e]!=null).map(t=>({unitId:e,subUnitId:e,drawingId:t}));g.length!==0&&(p&&this._drawingManagerService.addNotification(Object.values(m)),this._docDrawingService.updateNotification(g),this._drawingManagerService.updateNotification(g))}};nt=N([M(0,t.IUniverInstanceService),M(1,t.ICommandService),M(2,s.IDrawingManagerService),M(3,n.IDocDrawingService),M(4,i.IRenderManagerService),M(5,(0,t.Inject)(D))],nt);let rt=e=>{let{floatDomInfos:t,scene:n,offset:r,bound:i}=e,a=i.right-i.left,o=i.bottom-i.top,s=(0,d.useMemo)(()=>t.map(e=>{let{width:t=0,height:r=0,left:i=0,top:a=0}=e.transform,o=re({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]);return/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-absolute univer-left-0 univer-top-0`,children:s.map(([e,t])=>/* @__PURE__ */ (0,f.jsx)(c.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})};function it(e,t,n){let r=(0,c.connectInjector)(rt,n);return(0,o.render)(/* @__PURE__ */ (0,f.jsx)(r,{...e}),t),()=>(0,o.unmount)(t)}let at=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,skeleton:o,pageIndex:s}=n,c=this._drawingManagerService.getDrawingDataForUnit(i),l=c==null?void 0:c[i],u=this._docPrintInterceptorService.getPageDrawingIds(o,s);return l&&l.order.forEach(e=>{if(u&&!u.has(e))return;let n=l.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,skeleton:a,pageIndex:o}=n,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[i],l=this._docPrintInterceptorService.getPageDrawingIds(a,o);if(c){let a=it({unitId:i,floatDomInfos:c.order.filter(e=>!l||l.has(e)).map(e=>{let n=c.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)}}}))}};at=N([M(0,(0,t.Inject)(r.DocPrintInterceptorService)),M(1,(0,t.Inject)(u.DrawingRenderService)),M(2,s.IDrawingManagerService),M(3,(0,t.Inject)(c.ComponentManager)),M(4,(0,t.Inject)(t.Injector))],at);function ot(e,n,r,i,a,o,s){var c,l,u;let d=new t.TextX,f=t.JSONX.getInstance(),p=[],m=(c=o.getSelfOrHeaderFooterModel(n))==null?void 0:c.getBody(),h=(l=o.getSelfOrHeaderFooterModel(e))==null?void 0:l.getBody();if(m==null||h==null)return;let g=(u=m.customBlocks)==null||(u=u.find(e=>e.blockId===a))==null?void 0:u.startIndex;if(g!=null){if(i=Math.min(h.dataStream.length-2,i),e===n){if(i<g?(i>0&&d.push({t:t.TextXActionType.RETAIN,len:i}),d.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1}),d.push({t:t.TextXActionType.RETAIN,len:g-i}),d.push({t:t.TextXActionType.DELETE,len:1})):(g>0&&d.push({t:t.TextXActionType.RETAIN,len:g}),d.push({t:t.TextXActionType.DELETE,len:1}),i-g-1>0&&d.push({t:t.TextXActionType.RETAIN,len:i-g-1}),d.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1})),i!==g){let e=(0,t.getRichTextEditPath)(o,n),r=f.editOp(d.serialize(),e);p.push(r)}}else{g>0&&d.push({t:t.TextXActionType.RETAIN,len:g}),d.push({t:t.TextXActionType.DELETE,len:1});let c=(0,t.getRichTextEditPath)(o,n),l=f.editOp(d.serialize(),c);p.push(l),d.empty(),i>0&&d.push({t:t.TextXActionType.RETAIN,len:i}),d.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:a}]},len:1}),c=(0,t.getRichTextEditPath)(o,e),l=f.editOp(d.serialize(),c),p.push(l),s.setSegment(e),s.setSegmentPage(r)}return p}}let st={id:`doc.command.update-doc-drawing-distance`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUniverInstanceService),{drawings:o,dist:s,unitId:c}=n,l=i.getUnit(c,t.UniverInstanceType.UNIVER_DOC);if(l==null)return!1;let u=t.JSONX.getInstance(),d=[],{drawings:f={}}=l.getSnapshot();for(let e of o){let{drawingId:t}=e;for(let[e,n]of Object.entries(s)){let r=f[t][e];if(r!==n){let i=u.replaceOp([`drawings`,t,e],r,n);d.push(i)}}}let p={id:a.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};return p.params.actions=d.reduce((e,n)=>t.JSONX.compose(e,n),null),!!r.syncExecuteCommand(p.id,p.params)}},ct={id:`doc.command.update-doc-drawing-wrap-text`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(n==null)return!1;let r=e.get(t.ICommandService),i=e.get(t.IUniverInstanceService),{drawings:o,wrapText:s,unitId:c}=n,l=i.getUnit(c,t.UniverInstanceType.UNIVER_DOC);if(l==null)return!1;let u=t.JSONX.getInstance(),d=[],{drawings:f={}}=l.getSnapshot();for(let e of o){let{drawingId:t}=e,n=f[t].wrapText;if(n!==s){let e=u.replaceOp([`drawings`,t,`wrapText`],n,s);d.push(e)}}let p={id:a.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};return p.params.actions=d.reduce((e,n)=>t.JSONX.compose(e,n),null),!!r.syncExecuteCommand(p.id,p.params)}},lt={id:`doc.command.move-inline-drawing`,type:t.CommandType.COMMAND,handler:(e,n)=>{var o;if(n==null)return!1;let{drawing:s,unitId:c,offset:l,segmentId:u,segmentPage:d,needRefreshDrawings:f}=n,p=e.get(i.IRenderManagerService),m=(o=p.getRenderUnitById(c))==null?void 0:o.with(r.DocSelectionRenderService),h=e.get(D),g=p.getRenderUnitById(c),_=g==null?void 0:g.scene,v=g==null?void 0:g.with(a.DocSkeletonManagerService).getSkeleton();if(_==null||m==null)return!1;let y=_.getTransformerByCreate(),b=e.get(t.ICommandService),x=e.get(t.IUniverInstanceService).getUnit(c,t.UniverInstanceType.UNIVER_DOC);if(x==null)return!1;if(f)return h.refreshDrawings(v),y.refreshControls(),!0;let S=[],{drawingId:C}=s,w=ot(u,m.getSegment()??``,d,l,C,x,m);if(w==null||w.length===0)return h.refreshDrawings(v),y.refreshControls(),!1;S.push(...w);let T={id:a.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};T.params.actions=S.reduce((e,n)=>t.JSONX.compose(e,n),null);let E=b.syncExecuteCommand(T.id,T.params);return y.refreshControls(),!!E}},ut={id:`doc.command.transform-non-inline-drawing`,type:t.CommandType.COMMAND,handler:(e,n)=>{var o;if(n==null)return!1;let{drawing:s,unitId:c,offset:l,docTransform:u,segmentId:d,segmentPage:f}=n,p=e.get(i.IRenderManagerService),m=(o=p.getRenderUnitById(c))==null?void 0:o.with(r.DocSelectionRenderService),h=p.getRenderUnitById(c),g=h==null?void 0:h.scene;if(h==null||g==null||m==null)return!1;let _=g.getTransformerByCreate(),v=e.get(t.ICommandService),y=e.get(t.IUniverInstanceService).getUnit(c,t.UniverInstanceType.UNIVER_DOC);if(y==null)return!1;let b=[],{drawingId:x}=s,S=ot(d,m.getSegment()??``,f,l,x,y,m);if(S==null)return!1;S.length>0&&b.push(...S);let C=t.JSONX.getInstance(),{drawings:w={}}=y.getSnapshot(),{positionH:T,positionV:E,size:O,angle:k}=w[x].docTransform;if(!t.Tools.diffValue(T,u.positionH)){let e=C.replaceOp([`drawings`,x,`docTransform`,`positionH`],T,u.positionH);b.push(e)}if(!t.Tools.diffValue(E,u.positionV)){let e=C.replaceOp([`drawings`,x,`docTransform`,`positionV`],E,u.positionV);b.push(e)}if(!t.Tools.diffValue(O,u.size)){let e=C.replaceOp([`drawings`,x,`docTransform`,`size`],O,u.size);b.push(e)}if(!t.Tools.diffValue(k,u.angle)){let e=C.replaceOp([`drawings`,x,`docTransform`,`angle`],k,u.angle);b.push(e)}let A={id:a.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null,debounce:!0}};A.params.actions=b.reduce((e,n)=>t.JSONX.compose(e,n),null);let j=v.syncExecuteCommand(A.id,A.params),M=h.with(a.DocSkeletonManagerService).getSkeleton();return e.get(D).refreshDrawings(M),_.refreshControls(),!!j}};function dt(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:He(e,i,r,t),row:r,table:i}}function ft(e){let{drawing:n,height:r,hostPage:i,page:a,width:o}=e;return n.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&Be({page:a,clipPage:Le({drawing:{behindText:Ve({drawingOrigin:n,hostPage:i}),transform:{width:o,height:r}},hostPage:i,page:a}),hostPage:i})!=null}let pt=class extends t.Disposable{constructor(e,t,n,r){super(),this._commandService=e,this._univerInstanceService=t,this._drawingManagerService=n,this._renderManagerService=r,E(this,`_liquid`,new i.Liquid),E(this,`_listenerOnImageMap`,/* @__PURE__ */ new Map),E(this,`_transformerCache`,/* @__PURE__ */ new Map),E(this,`_anchorShape`,void 0),this._init()}dispose(){var e;for(let e of this._listenerOnImageMap.values())e.dispose();this._listenerOnImageMap.clear(),this._transformerCache.clear(),(e=this._anchorShape)==null||e.dispose(),this._anchorShape=null,super.dispose()}_init(){this.disposeWithMe(this._renderManagerService.disposed$.subscribe(e=>{var t;(t=this._listenerOnImageMap.get(e))==null||t.dispose(),this._listenerOnImageMap.delete(e)})),this._listenDrawingFocus()}_listenDrawingFocus(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{if(e.length!==0)for(let t of e){let{unitId:e}=t;if(!this._listenerOnImageMap.has(e)){let t=this._listenTransformerChange(e);t&&this._listenerOnImageMap.set(e,t)}}}))}_listenTransformerChange(e){let r=this._getSceneAndTransformerByDrawingSearch(e),i=r==null?void 0:r.transformer;if(i==null)return;let a=new t.DisposableCollection;return a.add((0,t.toDisposable)(()=>{for(let[t,n]of this._transformerCache)n.drawing.unitId===e&&this._transformerCache.delete(t);this._anchorShape&&this._anchorShape.getScene()===(r==null?void 0:r.scene)&&(this._anchorShape.dispose(),this._anchorShape=null)})),a.add((0,t.toDisposable)(i.changeStart$.subscribe(e=>{this._transformerCache.clear();let{objects:r}=e;for(let e of r.values()){var i;let{oKey:r,width:a,height:o,left:s,top:c,angle:l}=e,u=this._drawingManagerService.getDrawingOKey(r);if(u==null)continue;let d=this._univerInstanceService.getUnit(u.unitId,t.UniverInstanceType.UNIVER_DOC),f=d?(i=(0,n.findDocDrawing)(d.getSnapshot(),u.drawingId))==null?void 0:i.drawing:void 0;if((f==null?void 0:f.layoutType)===t.PositionedObjectLayoutType.INLINE)try{e.setOpacity(.2)}catch{}f!=null&&this._transformerCache.set(u.drawingId,{drawing:f,top:c,left:s,width:a,height:o,angle:l})}}))),a.add((0,t.toDisposable)(i.changeStart$.pipe((0,l.switchMap)(()=>i.changing$.pipe((0,l.filter)(({objects:e})=>e.size>1),(0,l.throttleTime)(50,void 0,{leading:!0,trailing:!0}),(0,l.takeUntil)(i.changeEnd$)))).subscribe(({objects:e})=>this._updateMultipleDrawingDocTransform(e)))),a.add((0,t.toDisposable)(i.changing$.subscribe(e=>{let{objects:n,offsetX:r,offsetY:i}=e;if(n.size===1){let e=this._transformerCache.values().next().value,{width:a,height:o,top:s,left:c,angle:l}=n.values().next().value;if(e&&a===e.width&&o===e.height&&s===e.top&&c===e.left&&l===e.angle)return;e&&e.drawing.layoutType===t.PositionedObjectLayoutType.INLINE&&r!=null&&i!=null&&this._updateInlineDrawingAnchor(e.drawing,r,i)}}))),a.add((0,t.toDisposable)(i.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()}))),a}_updateMultipleDrawingDocTransform(e){if(e.size<1)return;let t=[],r,i;for(let n of e.values()){let{oKey:e,left:s,top:c,angle:l}=n,{width:u,height:d}=n,f=this._drawingManagerService.getDrawingOKey(e);if(f==null)continue;r??=f.unitId,i??=f.subUnitId;let p=this._transformerCache.get(f.drawingId);if(p==null)continue;let{drawing:m,top:h,left:g,width:_,height:v,angle:y}=p,{width:b,height:x}=this._getPageContentSize(m);if(u=Math.min(u,b),d=Math.min(d,x),(_!==u||v!==d)&&t.push({drawingId:f.drawingId,key:`size`,value:{width:u,height:d}}),y!==l&&t.push({drawingId:f.drawingId,key:`angle`,value:l}),h!==c||g!==s){let e=c-h,n=s-g,{positionH:i,positionV:l}=m.docTransform,u,d=i.posOffset!=null&&i.align==null,p=l.posOffset!=null&&l.align==null;if(!d||!p){var o;let t=(o=this._renderManagerService.getRenderUnitById(r))==null?void 0:o.with(a.DocSkeletonManagerService),i=t==null?void 0:t.getSkeleton().getSkeletonData(),s=t==null?void 0:t.getViewModel(),c=i&&s?Ye(r,f.drawingId,i,s.getEditArea(),m):null;c&&(u=Qe(c,m.layoutType,void 0,void 0,{left:n,top:e}))}let _=p?l.posOffset+e:u==null?void 0:u.positionV.posOffset,v=d?i.posOffset+n:u==null?void 0:u.positionH.posOffset;e!==0&&_!=null&&t.push({drawingId:f.drawingId,key:`positionV`,value:{relativeFrom:l.relativeFrom,posOffset:_}}),n!==0&&v!=null&&t.push({drawingId:f.drawingId,key:`positionH`,value:{relativeFrom:i.relativeFrom,posOffset:v}})}}t.length>0&&r&&i&&this._commandService.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:r,subUnitId:i,drawings:t})}_updateInlineDrawingAnchor(e,t,n){if(this._transformerCache.size!==1)return;let{contentBoxPointGroup:r}=this._getInlineDrawingAnchor(e,t,n)??{};r!=null&&this._createOrUpdateInlineAnchor(e.unitId,r)}_getInlineDrawingAnchor(e,t,n){var o;let s=this._renderManagerService.getRenderUnitById(e.unitId),c=s==null?void 0:s.with(a.DocSkeletonManagerService).getSkeleton();if(s==null)return;let{mainComponent:l,scene:u}=s,d=l,f=u.getViewports()[0],{pageLayoutType:p=i.PageLayoutType.VERTICAL,pageMarginLeft:m,pageMarginTop:h}=d.getOffsetConfig(),g=null,_=!1,v=-1,y=``,b=this._getTransformCoordForDocumentOffset(d,f,t,n);if(b==null)return;let x=(o=this._renderManagerService.getRenderUnitById(e.unitId))==null?void 0:o.with(r.DocSelectionRenderService);if(x==null)return;let S=c==null?void 0:c.findNodeByCoord(b,p,m,h,{strict:!1,segmentId:x.getSegment(),segmentPage:x.getSegmentPage()});if(S){let{node:e,ratioX:t,segmentPage:n,segmentId:r}=S;_=t<.5,g=e,v=n,y=r}if(g==null)return;let C=c==null?void 0:c.findPositionByGlyph(g,v),w=(0,r.neoGetDocObject)(s);if(C==null||c==null)return;let T={...C,isBack:_},E=w.document.getOffsetConfig(),{cursorList:D,contentBoxPointGroup:O}=new r.NodePositionConvertToCursor(E,c).getRangePointData(T,T),{startOffset:k}=(0,r.getOneTextSelectionRange)(D)??{};if(k!=null)return{offset:k,contentBoxPointGroup:O,segmentId:y,segmentPage:v}}_getDrawingAnchor(e,n){var o,s,c,l;let u=this._renderManagerService.getRenderUnitById(e.unitId),d=u==null?void 0:u.with(a.DocSkeletonManagerService).getSkeleton(),f=d==null?void 0:d.getSkeletonData();if(f==null||u==null)return;let{pages:p,skeHeaders:m,skeFooters:h}=f,{mainComponent:g,scene:_}=u,v=g,y=_.getViewports()[0],{pageLayoutType:b=i.PageLayoutType.VERTICAL,pageMarginLeft:x,pageMarginTop:S,docsLeft:C,docsTop:w}=v.getOffsetConfig(),{left:T,top:E,angle:D}=n,{width:O,height:k}=n,{positionV:A,positionH:j}=e.docTransform,{width:M,height:N}=this._getPageContentSize(e);O=Math.min(O,M),k=Math.min(k,N);let P=null,F=``,I=-1,L={...e.docTransform,size:{width:O,height:k},angle:D},{x:ee,y:te}=_.getViewportScrollXY(y),R=this._getTransformCoordForDocumentOffset(v,y,T-ee,E-te);if(R==null)return;let z=(o=this._renderManagerService.getRenderUnitById(e.unitId))==null?void 0:o.with(r.DocSelectionRenderService);if(z==null)return;let B=d==null?void 0:d.findNodeByCoord(R,b,x,S,{strict:!1,segmentId:z.getSegment(),segmentPage:z.getSegmentPage()});if(B){let{node:e,segmentPage:t,segmentId:n}=B;P=e,I=t,F=n}if(P==null)return;let V=(s=P.parent)==null?void 0:s.parent,H=V==null?void 0:V.parent,ne=(H==null||(c=H.parent)==null?void 0:c.top)??0,U=(H==null?void 0:H.lines.find(e=>e.paragraphIndex===(V==null?void 0:V.paragraphIndex)&&e.paragraphStart))??(H==null?void 0:H.lines[0]),W=H==null||(l=H.parent)==null?void 0:l.parent;if(V==null||H==null||U==null||W==null)return;this._liquid.reset();let G=W.type===i.DocumentSkeletonPageType.CELL?dt(e.unitId,W):null,K=(G==null?void 0:G.hostPage)??W,re=K.type,q=(W.type===i.DocumentSkeletonPageType.HEADER||W.type===i.DocumentSkeletonPageType.FOOTER)&&I>-1?p[I]:void 0,ie=ft({drawing:e,height:n.height,hostPage:q,page:W,width:n.width}),ae=this._liquid.x,J=this._liquid.y;for(let e of p){let{headerId:t,footerId:n,pageHeight:r,pageWidth:a,marginLeft:o,marginBottom:s}=e,c=p.indexOf(e);if(I>-1&&c===I){switch(ae=this._liquid.x,J=this._liquid.y,re){case i.DocumentSkeletonPageType.HEADER:{var oe;let n=(oe=m.get(t))==null?void 0:oe.get(e.headerLayoutKey??a);if(n)this._liquid.translatePagePadding({marginTop:n.marginTop,marginLeft:o});else throw Error(`header skeleton not found`);break}case i.DocumentSkeletonPageType.FOOTER:{var Y;let t=(Y=h.get(n))==null?void 0:Y.get(e.footerLayoutKey??a);if(t)this._liquid.translatePagePadding({marginTop:r-s+t.marginTop,marginLeft:o});else throw Error(`footer skeleton not found`);break}default:this._liquid.translatePagePadding(e)}break}if(e===K&&(ae=this._liquid.x,J=this._liquid.y),this._liquid.translatePagePadding(e),e===K)break;this._liquid.restorePagePadding(e),this._liquid.translatePage(e,b,x,S)}if(G&&this._liquid.translate(G.offset.left,G.offset.top),A.relativeFrom===t.ObjectRelativeFromV.LINE)P=V.divides[0].glyphGroup[0];else{var X;P=((X=U.divides)==null||(X=X[0])==null||(X=X.glyphGroup)==null?void 0:X[0])??P}switch(L.positionH={relativeFrom:j.relativeFrom,posOffset:T-this._liquid.x-C},j.relativeFrom){case t.ObjectRelativeFromH.PAGE:ie&&(L.positionH.posOffset=T-ae-C);break;case t.ObjectRelativeFromH.MARGIN:L.positionH.posOffset=T-this._liquid.x-C-W.marginLeft;break;case t.ObjectRelativeFromH.COLUMN:L.positionH.posOffset=T-this._liquid.x-C-H.left}switch(L.positionV={relativeFrom:A.relativeFrom,posOffset:E-this._liquid.y-w},A.relativeFrom){case t.ObjectRelativeFromV.PAGE:L.positionV.posOffset=ie?E-J-w:E-this._liquid.y-w+W.marginTop;break;case t.ObjectRelativeFromV.LINE:L.positionV.posOffset=E-this._liquid.y-w-ne-V.top;break;case t.ObjectRelativeFromV.PARAGRAPH:L.positionV.posOffset=E-this._liquid.y-w-ne-U.top}if(P==null)return;let se=d==null?void 0:d.findPositionByGlyph(P,I),ce=(0,r.neoGetDocObject)(u);if(se==null||d==null)return;let le={...se,isBack:!0},ue=ce.document.getOffsetConfig(),{cursorList:de}=new r.NodePositionConvertToCursor(ue,d).getRangePointData(le,le),{startOffset:fe}=(0,r.getOneTextSelectionRange)(de)??{};if(fe!=null)return{offset:fe,docTransform:L,segmentId:F,segmentPage:I}}_updateDrawingSize(e,t){let r=[],{drawing:i,width:a,height:o,angle:s}=e,{unitId:c,subUnitId:l}=i,{width:u,height:d,angle:f}=t,{width:p,height:m}=this._getPageContentSize(i);u=Math.min(p,u),d=Math.min(m,d),(u!==a||d!==o)&&r.push({drawingId:i.drawingId,key:`size`,value:{width:u,height:d}}),f!==s&&r.push({drawingId:i.drawingId,key:`angle`,value:f}),r.length>0&&c&&l&&this._commandService.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:c,subUnitId:l,drawings:r})}_moveInlineDrawing(e,t,n){let{offset:r,segmentId:i,segmentPage:a}=this._getInlineDrawingAnchor(e,t,n)??{};return this._commandService.executeCommand(lt.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:r,segmentId:i,segmentPage:a,needRefreshDrawings:r==null})}_limitDrawingInPage(e,n){let r=this._renderManagerService.getRenderUnitById(e.unitId),{left:i,top:o,width:s,height:c,angle:l}=n,u=r==null?void 0:r.with(a.DocSkeletonManagerService).getSkeleton(),d=u==null?void 0:u.getSkeletonData(),{pages:f}=d??{};if(d==null||r==null||f==null)return{left:i,top:o,width:s,height:c,angle:l};let{mainComponent:p}=r,{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:i,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{offset:a,docTransform:o,segmentId:s,segmentPage:c}=this._getDrawingAnchor(e,i)??{};return a==null||o==null?this._updateMultipleDrawingDocTransform(/* @__PURE__ */ new Map([[e.drawingId,n]])):this._commandService.executeCommand(ut.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:a,docTransform:o,segmentId:s,segmentPage:c})}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderUnitById(e),n=t==null?void 0:t.scene;if(n!=null)return{scene:n,transformer:n.getTransformerByCreate()}}_getTransformCoordForDocumentOffset(e,t,n,r){let{documentTransform:a}=e.getOffsetConfig(),o=t.transformVector2SceneCoord(i.Vector2.FromArray([n,r]));if(o)return a.clone().invert().applyPoint(o)}_createOrUpdateInlineAnchor(e,n){let a=this._renderManagerService.getRenderUnitById(e);if(a==null)return;let{mainComponent:o,scene:s}=a,{docsLeft:c,docsTop:l}=o.getOffsetConfig(),{left:u,top:d,height:f}=(0,r.getAnchorBounding)(n),p=u+c,m=d+l;if(this._anchorShape){this._anchorShape.transformByState({left:p,top:m,height:f}),this._anchorShape.show();return}let h=new i.Rect(`__InlineDrawingAnchor__`+(0,t.generateRandomId)(6),{left:p,top:m,height:f,strokeWidth:2,stroke:(0,i.getColor)(t.COLORS.darkgray,1),evented:!1});this._anchorShape=h,s.addObject(h,r.TEXT_RANGE_LAYER_INDEX)}_getPageContentSize(e){let t=this._renderManagerService.getRenderUnitById(e.unitId),n=t==null?void 0:t.with(a.DocSkeletonManagerService).getSkeleton(),r=n==null?void 0:n.getSkeletonData();if(r==null||t==null)return{width:500,height:500};let{pages:i}=r,o=null;for(let t of i){if(t.isLayoutPlaceholder||t.isMaterializationPlaceholder)continue;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)}}return{width:500,height:500}}};pt=N([M(0,t.ICommandService),M(1,t.IUniverInstanceService),M(2,s.IDrawingManagerService),M(3,i.IRenderManagerService)],pt);function mt({ref:e,...t}){let{preserveStrokeWidth:n,icon:r,id:i,className:a,extend:o,...s}=t,c=`univerjs-icon univerjs-icon-${i} ${a||``}`.trim(),l=`_${(0,d.useId)()}`,u=(0,d.useRef)(null);return(0,d.useImperativeHandle)(e,()=>u.current),(0,d.useLayoutEffect)(()=>{if(n&&u.current&&u.current.localName===r.tag)return vt(u.current)},[n,r]),ht(r,`${i}`,{defIds:r.defIds,idSuffix:l},{ref:u,className:c,...s},o)}function ht(e,t,n,r,i){return(0,d.createElement)(e.tag,{key:t,...gt(e,n,i),...r},(_t(e,n).children||[]).map((r,a)=>ht(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function gt(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),n!=null&&n.colorChannel1&&r.stroke===`colorChannel1`&&(r.stroke=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0||(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))})),r}function _t(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function vt(e){let t=e.viewBox.baseVal,n=Math.max(t.width,t.height);if(!Number.isFinite(n)||n<=0||t.width<=0||t.height<=0)return()=>void 0;let r=16/n,i=Array.from(e.querySelectorAll(`circle, ellipse, line, path, polygon, polyline, rect, text, textPath, tspan, use`)).flatMap(e=>{let t=getComputedStyle(e),n=Number.parseFloat(t.strokeWidth);return t.stroke===`none`||Number.parseFloat(t.strokeOpacity)===0||t.vectorEffect===`non-scaling-stroke`||!Number.isFinite(n)||n<=0?[]:[{element:e,hadStyleAttribute:e.hasAttribute(`style`),originalStrokeWidth:n,strokeWidth:yt(e.style,`stroke-width`)}]}).map(e=>({appliedStrokeWidth:null,element:e.element,hadStyleAttribute:e.hadStyleAttribute,isReleased:!1,originalStrokeWidth:e.originalStrokeWidth,strokeWidth:e.strokeWidth}));if(i.length===0)return()=>void 0;let a=(e,n)=>{if(t.width<=0||t.height<=0||e<=0||n<=0)return;let a=Math.min(e/t.width,n/t.height);!Number.isFinite(a)||a<=0||i.forEach(e=>{if(e.isReleased)return;if(e.appliedStrokeWidth!==null&&(e.element.style.getPropertyValue(`stroke-width`)!==e.appliedStrokeWidth||e.element.style.getPropertyPriority(`stroke-width`)!==e.strokeWidth.priority)){e.appliedStrokeWidth=null,e.isReleased=!0;return}let t=e.originalStrokeWidth*r/a,n=`${Number(t.toFixed(12))}px`;e.element.style.setProperty(`stroke-width`,n,e.strokeWidth.priority),e.appliedStrokeWidth=n})},o=e.getBoundingClientRect();a(o.width,o.height);let s=typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{if(t.some(t=>t.target===e)){let t=e.getBoundingClientRect();a(t.width,t.height)}});return s==null||s.observe(e),()=>{s==null||s.disconnect(),i.forEach(e=>{e.appliedStrokeWidth!==null&&(bt(e.element.style,`stroke-width`,e.appliedStrokeWidth,e.strokeWidth.priority,e.strokeWidth),!e.hadStyleAttribute&&e.element.style.length===0&&e.element.removeAttribute(`style`))})}}function yt(e,t){return{priority:e.getPropertyPriority(t),value:e.getPropertyValue(t)}}function bt(e,t,n,r,i){e.getPropertyValue(t)===n&&e.getPropertyPriority(t)===r&&(i.value?e.setProperty(t,i.value,i.priority):e.removeProperty(t))}mt.displayName=`UniverIcon`;let xt={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},St=(0,d.forwardRef)(function(e,t){return(0,d.createElement)(mt,Object.assign({},e,{id:`check-mark-icon`,ref:t,icon:xt}))});St.displayName=`CheckMarkIcon`;function Ct(e){let o=(0,c.useDependency)(t.ICommandService),l=(0,c.useDependency)(t.LocaleService),u=(0,c.useDependency)(s.IDrawingManagerService),f=(0,c.useDependency)(i.IRenderManagerService),p=(0,c.useDependency)(t.IUniverInstanceService),{drawings:m}=e,{unitId:h}=m[0],g=p.getUnit(h,t.UniverInstanceType.UNIVER_DOC),_=g==null?void 0:g.getSnapshot().documentStyle.documentFlavor,v=f.getRenderUnitById(h),y=v.scene.getTransformerByCreate(),b=[{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)}],x=[{label:l.t(`docs-drawing-ui.image-position.line`),value:String(t.ObjectRelativeFromV.LINE),disabled:_===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.page`),value:String(t.ObjectRelativeFromV.PAGE),disabled:_===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.margin`),value:String(t.ObjectRelativeFromV.MARGIN),disabled:_===t.DocumentFlavor.MODERN},{label:l.t(`docs-drawing-ui.image-position.paragraph`),value:String(t.ObjectRelativeFromV.PARAGRAPH)}],[S,C]=(0,d.useState)(!0),[w,T]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0}),[E,D]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0}),[O,k]=(0,d.useState)(!0),[A,j]=(0,d.useState)(!0);function M(e,t,i){var a;let s=u.getFocusDrawings();if(s.length===0)return;let c=s.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));o.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:s[0].unitId,subUnitId:s[0].subUnitId,drawings:c.flatMap(n=>[{drawingId:n.drawingId,key:e,value:t},...i?[{drawingId:n.drawingId,key:`positionH`,value:i}]:[]])});let l=(a=f.getRenderUnitById(h))==null?void 0:a.with(r.DocSelectionRenderService);l&&l.blur(),y.refreshControls()}function N(){var e,t;let r=u.getFocusDrawings()[0];if(!r)return null;let i=(e=f.getRenderUnitById(r.unitId))==null?void 0:e.with(a.DocSkeletonManagerService),o=i==null?void 0:i.getSkeleton().getSkeletonData(),s=i==null?void 0:i.getViewModel(),c=g==null?void 0:g.getSnapshot();return o&&s?Ye(r.unitId,r.drawingId,o,s.getEditArea(),c&&((t=(0,n.findDocDrawing)(c,r.drawingId))==null?void 0:t.drawing)):null}function P(e){let n=[t.ObjectRelativeFromH.COLUMN,t.ObjectRelativeFromH.PAGE,t.ObjectRelativeFromH.MARGIN].find(t=>String(t)===e);if(n==null||w.relativeFrom===n)return;let r=N();r&&M(`positionH`,Qe(r,r.skeDrawing.drawingOrigin.layoutType,n).positionH)}function F(e){let n=[t.ObjectRelativeFromV.LINE,t.ObjectRelativeFromV.PAGE,t.ObjectRelativeFromV.MARGIN,t.ObjectRelativeFromV.PARAGRAPH].find(t=>String(t)===e);if(n==null||E.relativeFrom===n)return;let r=N();if(!r)return;let i=Qe(r,r.skeDrawing.drawingOrigin.layoutType,void 0,n),o=g?Ze(r,i,g.getSnapshot(),l,v.with(a.DocSkeletonManagerService).getViewModel().getEditArea()):i;o&&M(`positionV`,o.positionV,o.positionH)}function I(e){F(String(e?t.ObjectRelativeFromV.PARAGRAPH:t.ObjectRelativeFromV.PAGE))}return(0,d.useEffect)(()=>{function e(e){var r;let i=g==null?void 0:g.getSnapshot(),a=i&&((r=(0,n.findDocDrawing)(i,e.drawingId))==null?void 0:r.drawing);if(a==null)return;let{layoutType:o}=a,{positionH:s,positionV:c}=a.docTransform;T(s),D(c),C(o===t.PositionedObjectLayoutType.INLINE),k(c.relativeFrom===t.ObjectRelativeFromV.PARAGRAPH||c.relativeFrom===t.ObjectRelativeFromV.LINE)}function r(){let t=u.getFocusDrawings();t.length!==0&&e(t[0])}r();let i=u.focus$.subscribe(t=>{t.length===0?j(!1):(j(!0),e(t[0]))}),s=o.onCommandExecuted(async e=>{e.id===a.RichTextEditingMutation.id&&r()});return()=>{i.unsubscribe(),s.dispose()}},[o,g,u]),{localeService:l,showPanel:A,disabled:S,hPosition:w,vPosition:E,followTextMove:O,documentFlavor:_,HORIZONTAL_RELATIVE_FROM:b,VERTICAL_RELATIVE_FROM:x,handlePositionChange:M,handleHorizontalRelativeFromChange:P,handleVerticalRelativeFromChange:F,handleFollowTextMoveCheck:I,MIN_OFFSET:-1e3,MAX_OFFSET:1e3}}function wt(e){let n=(0,c.useDependency)(t.LocaleService),r=[{title:`docs-drawing-ui.image-position.horizontal`,reference:`docs-drawing-ui.image-position.toTheRightOf`,position:e.hPosition,options:e.horizontalOptions,onOffsetChange:e.onHorizontalOffsetChange,onReferenceChange:e.onHorizontalReferenceChange},{title:`docs-drawing-ui.image-position.vertical`,reference:`docs-drawing-ui.image-position.bellow`,position:e.vPosition,options:e.verticalOptions,onOffsetChange:e.onVerticalOffsetChange,onReferenceChange:e.onVerticalReferenceChange}];return/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-grid univer-gap-5`,children:[r.map(t=>/* @__PURE__ */ (0,f.jsxs)(`section`,{className:`univer-grid univer-gap-3`,children:[/* @__PURE__ */ (0,f.jsx)(`h3`,{className:`univer-m-0 univer-text-sm univer-font-medium`,children:n.t(t.title)}),/* @__PURE__ */ (0,f.jsxs)(`label`,{className:`univer-grid univer-gap-2 univer-text-sm`,children:[n.t(`docs-drawing-ui.image-position.absolutePosition`),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{disabled:e.disabled,className:`univer-h-12 univer-w-full`,inputClassName:`[&_input]:!univer-h-12 [&_input]:!univer-text-base`,controls:!1,min:e.minOffset,max:e.maxOffset,precision:1,value:t.position.posOffset??0,onChange:e=>{e!=null&&t.onOffsetChange(e)}})]}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2`,role:`group`,"aria-label":n.t(t.reference),children:t.options.map(n=>/* @__PURE__ */ (0,f.jsx)(o.MobileActionRow,{title:n.label,variant:`subtle`,disabled:e.disabled||n.disabled,"aria-pressed":String(t.position.relativeFrom)===n.value,className:`univer-px-3 univer-text-center univer-text-sm aria-pressed:!univer-bg-primary-50 aria-pressed:!univer-text-primary-600`,onClick:()=>t.onReferenceChange(n.value)},n.value))})]},t.title)),/* @__PURE__ */ (0,f.jsx)(o.MobileActionRow,{role:`switch`,title:n.t(`docs-drawing-ui.image-position.moveObjectWithText`),variant:`subtle`,"aria-checked":e.followTextMove,disabled:e.disabled||e.disableFollowTextMove,trailing:e.followTextMove?/* @__PURE__ */ (0,f.jsx)(St,{className:`univer-text-primary-600`}):void 0,onClick:()=>e.onFollowTextMoveChange(!e.followTextMove)})]})}function Tt(e){var t;let n=(0,c.useDependency)(i.IRenderManagerService),r=e.drawings[0];return r&&(t=n.getRenderUnitById(r.unitId))!=null&&t.scene?/* @__PURE__ */ (0,f.jsx)(Et,{...e}):null}function Et(e){let{showPanel:n,disabled:r,hPosition:i,vPosition:a,followTextMove:o,documentFlavor:s,HORIZONTAL_RELATIVE_FROM:c,VERTICAL_RELATIVE_FROM:l,handlePositionChange:u,handleHorizontalRelativeFromChange:d,handleVerticalRelativeFromChange:p,handleFollowTextMoveCheck:m,MIN_OFFSET:h,MAX_OFFSET:g}=Ct(e);return n?/* @__PURE__ */ (0,f.jsx)(wt,{disabled:r,followTextMove:o,disableFollowTextMove:s===t.DocumentFlavor.MODERN,hPosition:i,vPosition:a,horizontalOptions:c,verticalOptions:l,minOffset:h,maxOffset:g,onHorizontalOffsetChange:e=>u(`positionH`,{...i,posOffset:e}),onVerticalOffsetChange:e=>u(`positionV`,{...a,posOffset:e}),onHorizontalReferenceChange:d,onVerticalReferenceChange:p,onFollowTextMoveChange:m}):null}function Dt(e){let r=(0,c.useDependency)(t.ICommandService),i=(0,c.useDependency)(t.LocaleService),o=(0,c.useDependency)(s.IDrawingManagerService),l=(0,c.useDependency)(t.IUniverInstanceService),{drawings:u}=e,{unitId:f}=u[0],p=l.getUnit(f,t.UniverInstanceType.UNIVER_DOC),[m,h]=(0,d.useState)(!0),[g,_]=(0,d.useState)(!0),[v,y]=(0,d.useState)(!0),[b,x]=(0,d.useState)(n.TextWrappingStyle.INLINE),[S,C]=(0,d.useState)(t.WrapTextType.BOTH_SIDES),[w,T]=(0,d.useState)({distT:0,distL:0,distB:0,distR:0}),[E,D]=(0,d.useState)(!0);function O(e){let t=Object.values(n.TextWrappingStyle).find(t=>t===e);if(t==null)return;let i=o.getFocusDrawings();if(i.length===0)return;let{unitId:a,subUnitId:s}=i[0],c=i.map(({unitId:e,subUnitId:t,drawingId:n})=>({unitId:e,subUnitId:t,drawingId:n}));r.executeCommand(n.UpdateDocDrawingWrappingStyleCommand.id,{unitId:a,subUnitId:s,drawings:c,wrappingStyle:t})}function k(e){let n=[t.WrapTextType.BOTH_SIDES,t.WrapTextType.LEFT,t.WrapTextType.RIGHT].find(t=>String(t)===String(e));if(n==null)return;let i=o.getFocusDrawings();if(i.length===0)return;let a=i.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));r.executeCommand(ct.id,{unitId:i[0].unitId,subUnitId:i[0].subUnitId,drawings:a,wrapText:n})}function A(e,t){if(e==null)return;let n=o.getFocusDrawings();if(n.length===0)return;let i=n.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));r.executeCommand(st.id,{unitId:n[0].unitId,subUnitId:n[0].subUnitId,drawings:i,dist:{[t]:e}})}return(0,d.useEffect)(()=>{function e(){let e=o.getFocusDrawings();e.length!==0&&i(e[0])}function i(e){var r;let i=p==null||(r=p.getSnapshot())==null||(r=r.drawings)==null?void 0:r[e.drawingId];if(i==null)return;let{distT:a=0,distL:o=0,distB:s=0,distR:c=0,layoutType:l=t.PositionedObjectLayoutType.INLINE,behindDoc:u=t.BooleanNumber.FALSE,wrapText:d=t.WrapTextType.BOTH_SIDES}=i;if(T({distT:a,distL:o,distB:s,distR:c}),C(d),h(l!==t.PositionedObjectLayoutType.WRAP_SQUARE),l===t.PositionedObjectLayoutType.WRAP_NONE||l===t.PositionedObjectLayoutType.INLINE?_(!0):_(!1),l===t.PositionedObjectLayoutType.WRAP_NONE||l===t.PositionedObjectLayoutType.INLINE||l===t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM?y(!0):y(!1),l===t.PositionedObjectLayoutType.WRAP_NONE)u===t.BooleanNumber.TRUE?x(n.TextWrappingStyle.BEHIND_TEXT):x(n.TextWrappingStyle.IN_FRONT_OF_TEXT);else switch(l){case t.PositionedObjectLayoutType.INLINE:x(n.TextWrappingStyle.INLINE);break;case t.PositionedObjectLayoutType.WRAP_SQUARE:x(n.TextWrappingStyle.WRAP_SQUARE);break;case t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM:x(n.TextWrappingStyle.WRAP_TOP_AND_BOTTOM);break;default:throw Error(`Unsupported layout type: ${l}`)}}e();let s=o.focus$.subscribe(e=>{e.length===0?D(!1):(D(!0),i(e[0]))}),c=r.onCommandExecuted(async t=>{t.id===a.RichTextEditingMutation.id&&e()});return()=>{s.unsubscribe(),c.dispose()}},[r,p,o]),{localeService:i,showPanel:E,wrappingStyle:b,wrapText:S,distToText:w,disableWrapText:m,disableDistTB:g,disableDistLR:v,handleWrappingStyleChange:O,handleWrapTextChange:k,handleDistToTextChange:A,MIN_MARGIN:0,MAX_MARGIN:100}}let Ot=[{value:n.TextWrappingStyle.INLINE,label:`docs-drawing-ui.image-text-wrap.inline`},{value:n.TextWrappingStyle.WRAP_SQUARE,label:`docs-drawing-ui.image-text-wrap.square`},{value:n.TextWrappingStyle.WRAP_TOP_AND_BOTTOM,label:`docs-drawing-ui.image-text-wrap.topAndBottom`},{value:n.TextWrappingStyle.BEHIND_TEXT,label:`docs-drawing-ui.image-text-wrap.behindText`},{value:n.TextWrappingStyle.IN_FRONT_OF_TEXT,label:`docs-drawing-ui.image-text-wrap.inFrontText`}],kt=[{value:t.WrapTextType.BOTH_SIDES,label:`docs-drawing-ui.image-text-wrap.bothSide`},{value:t.WrapTextType.LEFT,label:`docs-drawing-ui.image-text-wrap.leftOnly`},{value:t.WrapTextType.RIGHT,label:`docs-drawing-ui.image-text-wrap.rightOnly`}],At=[{key:`distT`,label:`docs-drawing-ui.image-text-wrap.top`},{key:`distB`,label:`docs-drawing-ui.image-text-wrap.bottom`},{key:`distL`,label:`docs-drawing-ui.image-text-wrap.left`},{key:`distR`,label:`docs-drawing-ui.image-text-wrap.right`}];function jt(e){let n=(0,c.useDependency)(t.LocaleService);return/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-flex univer-flex-col univer-gap-5`,children:[/* @__PURE__ */ (0,f.jsx)(`div`,{role:`group`,"aria-label":n.t(`docs-drawing-ui.image-text-wrap.wrappingStyle`),className:`univer-grid univer-gap-2`,children:Ot.map(t=>/* @__PURE__ */ (0,f.jsx)(o.MobileActionRow,{title:n.t(t.label),variant:`subtle`,"aria-pressed":e.wrappingStyle===t.value,className:`aria-pressed:!univer-bg-primary-50 aria-pressed:!univer-text-primary-600`,trailing:e.wrappingStyle===t.value?/* @__PURE__ */ (0,f.jsx)(St,{}):void 0,onClick:()=>e.onStyleChange(t.value)},t.value))}),!e.disableWrapText&&/* @__PURE__ */ (0,f.jsxs)(`section`,{className:`univer-grid univer-gap-2`,children:[/* @__PURE__ */ (0,f.jsx)(`h3`,{className:`univer-m-0 univer-text-sm univer-font-medium`,children:n.t(`docs-drawing-ui.image-text-wrap.wrapText`)}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-3 univer-gap-2`,children:kt.map(t=>/* @__PURE__ */ (0,f.jsx)(o.MobileActionRow,{title:n.t(t.label),variant:`subtle`,"aria-pressed":e.wrapText===t.value,className:`univer-px-2 univer-text-center univer-text-sm aria-pressed:!univer-bg-primary-50 aria-pressed:!univer-text-primary-600`,onClick:()=>e.onWrapTextChange(t.value)},t.value))})]}),(!e.disableDistTB||!e.disableDistLR)&&/* @__PURE__ */ (0,f.jsxs)(`section`,{className:`univer-grid univer-gap-3`,children:[/* @__PURE__ */ (0,f.jsx)(`h3`,{className:`univer-m-0 univer-text-sm univer-font-medium`,children:n.t(`docs-drawing-ui.image-text-wrap.distanceFromText`)}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-3`,children:At.filter(({key:t})=>t===`distT`||t===`distB`?!e.disableDistTB:!e.disableDistLR).map(({key:t,label:r})=>/* @__PURE__ */ (0,f.jsxs)(`label`,{className:`univer-grid univer-gap-2 univer-text-sm`,children:[n.t(r),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{className:`univer-h-12 univer-w-full`,inputClassName:`[&_input]:!univer-h-12 [&_input]:!univer-text-base`,controls:!1,min:e.minMargin,max:e.maxMargin,precision:1,value:e.distToText[t]??0,onChange:n=>e.onDistanceChange(n,t)})]},t))})]})]})}function Mt(e){var t;let n=(0,c.useDependency)(i.IRenderManagerService),r=e.drawings[0];return r&&(t=n.getRenderUnitById(r.unitId))!=null&&t.scene?/* @__PURE__ */ (0,f.jsx)(Nt,{...e}):null}function Nt(e){let{showPanel:t,wrappingStyle:n,wrapText:r,distToText:i,disableWrapText:a,disableDistTB:o,disableDistLR:s,handleWrappingStyleChange:c,handleWrapTextChange:l,handleDistToTextChange:u,MIN_MARGIN:d,MAX_MARGIN:p}=Dt(e);return t?/* @__PURE__ */ (0,f.jsx)(jt,{wrappingStyle:n,wrapText:r,distToText:i,minMargin:d,maxMargin:p,disableWrapText:a,disableDistTB:o,disableDistLR:s,onStyleChange:c,onWrapTextChange:l,onDistanceChange:u}):null}let Pt=[{value:`image`,label:`docs-drawing-ui.title`},{value:`wrap`,label:`docs-drawing-ui.image-text-wrap.title`},{value:`position`,label:`docs-drawing-ui.image-position.title`}];function Ft(){let e=(0,c.useDependency)(s.IDrawingManagerService),n=(0,c.useObservable)(e.focus$,e.getFocusDrawings())??[],r=(0,c.useDependency)(t.LocaleService),i=(0,c.useDependency)(t.ICommandService),[a,l]=(0,d.useState)(`image`);return/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-flex univer-min-w-0 univer-flex-col univer-gap-4 univer-pb-2`,children:[/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-3 univer-gap-2`,role:`group`,children:Pt.map(e=>/* @__PURE__ */ (0,f.jsx)(o.MobileActionRow,{"aria-pressed":a===e.value,title:r.t(e.label),variant:`subtle`,className:`univer-min-w-0 univer-px-2 univer-text-center univer-text-sm aria-pressed:!univer-bg-primary-50 aria-pressed:!univer-text-primary-600`,onClick:()=>l(e.value)},e.value))}),/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[a===`image`&&/* @__PURE__ */ (0,f.jsx)(u.DrawingCommonPanel,{drawings:n,hasAlign:!1,hasCropper:!0,hasGroup:!1,hasTransform:!1,onCropStart:()=>i.executeCommand(G.id,{value:`close`})}),a===`wrap`&&/* @__PURE__ */ (0,f.jsx)(Mt,{drawings:n}),a===`position`&&/* @__PURE__ */ (0,f.jsx)(Tt,{drawings:n})]})]})}let It=class extends t.Disposable{constructor(e){super(),this.disposeWithMe(e.register(W,Ft))}};It=N([M(0,(0,t.Inject)(c.ComponentManager))],It);let Lt={id:G.id,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`:{let e={layout:`canvas`,header:{title:i.t(`docs-drawing-ui.panel.title`)},children:{label:W},onClose:()=>{a.focusDrawing(null)},width:360};r.open(e);break}default:r.close()}return!0}};var Rt=class{constructor(){E(this,`_adapters`,[])}registerAdapter(e){return this._adapters.push(e),(0,t.toDisposable)(()=>{let t=this._adapters.indexOf(e);t>=0&&this._adapters.splice(t,1)})}getItems(e){for(let t of this._adapters){let n=t.getItems(e);if(n)return[...n].sort((e,t)=>e.index-t.index)}return null}};let zt=class extends t.RxDisposable{constructor(e,t,n,r,i,a,o,s,c,l,u){super(),this._drawingManagerService=e,this._canvasPopManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._contextService=i,this._drawingAdapterService=a,this._docDrawingService=o,this._floatingToolbarAdapterService=s,this._commandService=c,this._menuManagerService=l,this._permissionService=u,E(this,`_initImagePopupMenu`,/* @__PURE__ */ new Set),E(this,`_embeddedRenderUnits`,/* @__PURE__ */ new Set),E(this,`_popupMenuListeners`,/* @__PURE__ */ new Map),E(this,`_disposePopupsByUnit`,/* @__PURE__ */ new Map),E(this,`_popupTargetsByUnit`,/* @__PURE__ */ new Map),E(this,`_isDrawingPanelOpen`,!1),this._init()}_init(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{let t=[...this._popupTargetsByUnit.values()].some(t=>{let n=this._docDrawingService.getDrawingByParam(t),r=n&&this._drawingAdapterService.getEditDrawingCommandInfo({...t,drawing:n});return(r==null?void 0:r.commandId)===e.id});if((e.id===K.id||t)&&this._clearPopups(void 0,!0),e.id===Lt.id){let t=e.params;this._isDrawingPanelOpen=(t==null?void 0:t.value)===`open`,this._isDrawingPanelOpen&&this._clearPopups(void 0,!0)}})),this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e.length===0&&(this._isDrawingPanelOpen=!1)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{for(let n of e)for(let[e,r]of this._popupTargetsByUnit)if(r.unitId===n.unitId&&r.subUnitId===n.subUnitId&&r.drawingId===n.drawingId){var t;this._clearPopups(e,!0),(t=this._renderManagerService.getRenderUnitById(e))==null||t.scene.getTransformerByCreate().clearSelectedObjects()}})),this.disposeWithMe(this._permissionService.permissionPointUpdate$.subscribe(()=>{for(let[e,t]of this._popupTargetsByUnit)this._canEditDrawing(t.unitId,t.drawingId)||this._clearPopups(e,!0)})),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.disposeWithMe(this._renderManagerService.created$.pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>{e.type!==t.UniverInstanceType.UNIVER_DOC||e.isMainScene||(this._embeddedRenderUnits.add(e.unitId),this._create(this._univerInstanceService.getUnit(e.unitId,t.UniverInstanceType.UNIVER_DOC)))})),this.disposeWithMe(this._renderManagerService.disposed$.pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>{this._embeddedRenderUnits.delete(e)&&this._disposePopupMenuListener(e)})),this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_DOC).forEach(e=>this._create(e))}_dispose(e){let t=e.getUnitId();this._clearPopups(t,!0),this._disposePopupMenuListener(t),this._renderManagerService.removeRender(t)}_clearPopups(e,t=!1){if(e==null){[...this._disposePopupsByUnit.keys()].forEach(e=>this._clearPopups(e,t));return}let n=this._disposePopupsByUnit.get(e);if(n){for(let e=n.length-1;e>=0;--e){let r=n[e];(t||r.canDispose())&&(r.dispose(),n.splice(e,1))}n.length===0&&(this._disposePopupsByUnit.delete(e),this._popupTargetsByUnit.delete(e))}}_getDisposePopups(e){let t=this._disposePopupsByUnit.get(e);if(t)return t;let n=[];return this._disposePopupsByUnit.set(e,n),n}_create(e){if(!e)return;let n=e.getUnitId();if(!(0,t.isInternalEditorID)(n)&&this._renderManagerService.has(n)&&!this._initImagePopupMenu.has(n)){let e=this._popupMenuListener(n);e&&(this._popupMenuListeners.set(n,e),this._initImagePopupMenu.add(n))}}_disposePopupMenuListener(e){var t;(t=this._popupMenuListeners.get(e))==null||t.dispose(),this._popupMenuListeners.delete(e),this._initImagePopupMenu.delete(e),this._clearPopups(e,!0)}_hasCropObject(e){let t=e.getAllObjects();for(let e of t)if(e instanceof u.ImageCropperObject)return!0;return!1}_handleClearControl(e,n,r){this._clearPopups(e,r),queueMicrotask(()=>{n.getSelectedObjectMap().size>0||(this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._drawingManagerService.focusDrawing(null))})}_registerDrawingPopup(e,t,n){this.disposeWithMe(t),this._getDisposePopups(e).push(t),this._popupTargetsByUnit.set(e,n),this._drawingManagerService.getFocusDrawings().find(e=>e.unitId===n.unitId&&e.subUnitId===n.subUnitId&&e.drawingId===n.drawingId)||this._drawingManagerService.focusDrawing([n])}_isSamePopupTarget(e,t){return(e==null?void 0:e.unitId)===t.unitId&&e.subUnitId===t.subUnitId&&e.drawingId===t.drawingId}_popupMenuListener(e){var i;let a=(i=this._renderManagerService.getRenderUnitById(e))==null?void 0:i.scene;if(!a)return;let o=a.getTransformerByCreate(),s=[o.createControl$.subscribe(()=>{if(this._hasCropObject(a)){this._clearPopups(e,!0);return}let i=o.getSelectedObjectMap();if(this._isDrawingPanelOpen||i.size>1){this._clearPopups(e,this._isDrawingPanelOpen);return}let s=i.values().next().value;if(!s){this._clearPopups(e);return}let c=this._drawingManagerService.getDrawingOKey(s.oKey);if(!c||c.drawingType===t.DrawingTypeEnum.DRAWING_DOM||c.drawingType===t.DrawingTypeEnum.DRAWING_SHAPE){this._clearPopups(e);return}let{unitId:l,subUnitId:d,drawingId:f,drawingType:p}=c;if(!this._canEditDrawing(l,f)){this._clearPopups(e,!0);return}let m=this._disposePopupsByUnit.get(e),h=this._popupTargetsByUnit.get(e),g={unitId:l,subUnitId:d,drawingId:f};if(this._isSamePopupTarget(h,g)&&m&&m.length>0)return;this._clearPopups(e,h!=null);let _=p===t.DrawingTypeEnum.DRAWING_IMAGE,v=p===t.DrawingTypeEnum.DRAWING_CHART,y=this._canvasPopManagerService.attachPopupToObject(s,{componentKey:_||v?u.COMPONENT_MOBILE_IMAGE_POPUP_MENU:r.MOBILE_DOC_ELEMENT_MENU,requiresStableLayout:!1,direction:_||v?`top-center`:`horizontal`,offset:_||v?[0,8]:[2,0],extraProps:{onClose:()=>this._clearPopups(e,!0),onEdit:()=>{let t=this._docDrawingService.getDrawingByParam(c),n=t&&this._drawingAdapterService.getEditDrawingCommandInfo({unitId:l,subUnitId:d,drawing:t});return this._clearPopups(e,!0),this._commandService.executeCommand((n==null?void 0:n.commandId)??K.id,(n==null?void 0:n.commandParams)??{unitId:l,subUnitId:d,drawingId:f})},onDelete:()=>(this._clearPopups(e,!0),this._commandService.executeCommand(n.RemoveDocDrawingCommand.id,{unitId:l,drawings:[{unitId:l,subUnitId:d,drawingId:f}]})),menuItems:this._getDrawingPopupMenuItems(l,d,f,p),variant:_?`doc-floating-toolbar`:v?`doc-chart-floating-toolbar`:void 0,unitId:l,subUnitId:d,drawingId:f}},l);this._registerDrawingPopup(e,y,{unitId:l,subUnitId:d,drawingId:f})}),o.clearControl$.subscribe(t=>this._handleClearControl(e,o,t)),o.changing$.subscribe(()=>{this._clearPopups(e,!0)})],c=(0,t.toDisposable)(()=>s.forEach(e=>e.unsubscribe()));return this.disposeWithMe(c),c}_canEditDrawing(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!r)return!1;let i=(0,a.getDocumentDrawingSegmentId)(r,n);return(0,a.canEditDocumentTargets)(this._permissionService,e,[...(0,a.getDocumentEntityParentPermissionObjectIds)(r,i,`drawing`,n),(0,a.getDocumentEntityPermissionObjectId)(i,`drawing`,n)])}_getDrawingPopupMenuItems(e,r,i,a){let o=this._docDrawingService.getDrawingByParam({unitId:e,subUnitId:r,drawingId:i}),s=o?this._floatingToolbarAdapterService.getItems({unitId:e,subUnitId:r,drawing:o}):null,c=o?this._drawingAdapterService.getEditDrawingCommandInfo({unitId:e,subUnitId:r,drawing:o}):null,l=[{label:(c==null?void 0:c.label)??`docs-drawing-ui.image-popup.edit`,index:0,commandId:(c==null?void 0:c.commandId)??K.id,commandParams:(c==null?void 0:c.commandParams)??{unitId:e,subUnitId:r,drawingId:i},disable:(c==null?void 0:c.disable)??a===t.DrawingTypeEnum.DRAWING_DOM,hideOnClick:!0,icon:`DrawingEditIcon`},{label:`docs-drawing-ui.image-popup.crop`,index:1,commandId:u.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:r,drawingId:i},disable:a===t.DrawingTypeEnum.DRAWING_DOM,icon:`DrawingCropIcon`},{label:`docs-drawing-ui.image-popup.delete`,index:2,commandId:n.RemoveDocDrawingCommand.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:r,drawingId:i}]},disable:!1,icon:`DrawingDeleteIcon`},{label:`docs-drawing-ui.image-popup.reset`,index:3,commandId:u.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:r,drawingId:i}],disable:!0}];return a===t.DrawingTypeEnum.DRAWING_IMAGE?l.slice(0,3):a===t.DrawingTypeEnum.DRAWING_CHART?[{...l[0],label:`docs-drawing-ui.image-popup.edit`},l[2]]:[...s??l,...this._getFloatingObjectMenuItems()]}_getFloatingObjectMenuItems(){return this._menuManagerService.getFlatMenuByPositionKey(c.FloatingObjectToolbarPosition.DOC).flatMap(({item:e},t)=>!e||e.type!==c.MenuItemType.BUTTON||!e.title||typeof e.icon!=`string`?[]:[{type:`button`,label:e.title,index:100+t,commandId:e.commandId??e.id,commandParams:typeof e.params==`function`?e.params():e.params,disable:!1,icon:e.icon}])}};zt=N([M(0,s.IDrawingManagerService),M(1,(0,t.Inject)(r.DocCanvasPopManagerService)),M(2,i.IRenderManagerService),M(3,t.IUniverInstanceService),M(4,t.IContextService),M(5,n.IDocDrawingAdapterService),M(6,n.IDocDrawingService),M(7,(0,t.Inject)(Rt)),M(8,t.ICommandService),M(9,c.IMenuManagerService),M(10,t.IPermissionService)],zt);let Bt=class extends t.Disposable{constructor(e,t){super(),this._menuManagerService=e,this._commandService=t,this._initCommands(),this._initMenus()}_initCommands(){[F,R,z,st,ct,lt,ut,Lt,U,K,x,S,H,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initMenus(){this._menuManagerService.mergeMenu(Te)}};Bt=N([M(0,c.IMenuManagerService),M(1,t.ICommandService)],Bt);var Vt=class extends P{_getTransformerInteractionOptions(){return{moveOnlyWhenSelected:!0}}_isDocumentInteractionFocusing(e){return!0}};let Q=class extends t.Plugin{constructor(e=Ae,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{...a}=(0,t.merge)({},Ae,this._config);this._configService.setConfig(Oe,a)}onStarting(){[[It],[Bt],[zt],[pt],[nt],[D],[Rt],[Y],[at]].forEach(e=>this._injector.add(e)),this._injector.get(It)}onReady(){[[P,{useClass:Vt}],[Je]].forEach(e=>this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)),this._injector.get(nt),this._injector.get(Bt),this._injector.get(pt),this._injector.get(at)}onRendered(){this._injector.get(zt),this._injector.get(Y)}};E(Q,`type`,t.UniverInstanceType.UNIVER_DOC),E(Q,`pluginName`,ke),E(Q,`packageName`,Ee),E(Q,`version`,De),Q=N([(0,t.DependentOn)(a.UniverDocsPlugin,s.UniverDrawingPlugin,i.UniverRenderEnginePlugin,n.UniverDocsDrawingPlugin,r.UniverDocsMobileUIPlugin,u.UniverDrawingMobileUIPlugin),M(1,(0,t.Inject)(t.Injector)),M(2,i.IRenderManagerService),M(3,t.IConfigService)],Q);let Ht=e=>{var t;let n=(0,c.useDependency)(i.IRenderManagerService),r=e.drawings[0],a=r?(t=n.getRenderUnitById(r.unitId))==null?void 0:t.scene:void 0;return r&&a?/* @__PURE__ */ (0,f.jsx)(Ut,{...e}):null};function Ut(e){let{localeService:t,showPanel:n,disabled:r,hPosition:i,vPosition:a,followTextMove:s,HORIZONTAL_RELATIVE_FROM:c,VERTICAL_RELATIVE_FROM:l,handlePositionChange:u,handleHorizontalRelativeFromChange:d,handleVerticalRelativeFromChange:p,handleFollowTextMoveCheck:m,MIN_OFFSET:h,MAX_OFFSET:g}=Ct(e);return/* @__PURE__ */ (0,f.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!n}),children:[/* @__PURE__ */ (0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.title`)})}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.horizontal`)})}),/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.absolutePosition`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:h,max:g,precision:1,disabled:r,value:i.posOffset,onChange:e=>{e!=null&&u(`positionH`,{relativeFrom:i.relativeFrom,posOffset:e})}})]}),/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.toTheRightOf`)}),/* @__PURE__ */ (0,f.jsx)(o.Select,{value:String(i.relativeFrom),disabled:r,options:c,onChange:d})]})]}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.vertical`)})}),/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.absolutePosition`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:h,max:g,precision:1,disabled:r,value:a.posOffset,onChange:e=>{e!=null&&u(`positionV`,{relativeFrom:a.relativeFrom,posOffset:e})}})]}),/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.bellow`)}),/* @__PURE__ */ (0,f.jsx)(o.Select,{disabled:r,value:String(a.relativeFrom),options:l,onChange:p})]})]}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.options`)})}),/* @__PURE__ */ (0,f.jsx)(`div`,{children:/* @__PURE__ */ (0,f.jsx)(o.Checkbox,{disabled:r,checked:s,onChange:m,children:t.t(`docs-drawing-ui.image-position.moveObjectWithText`)})})]})}let Wt=e=>{var t;let n=(0,c.useDependency)(i.IRenderManagerService),r=e.drawings[0],a=r?(t=n.getRenderUnitById(r.unitId))==null?void 0:t.scene:void 0;return r&&a?/* @__PURE__ */ (0,f.jsx)(Gt,{...e}):null};function Gt(e){let{localeService:r,showPanel:i,wrappingStyle:a,wrapText:s,distToText:c,disableWrapText:l,disableDistTB:u,disableDistLR:d,handleWrappingStyleChange:p,handleWrapTextChange:m,handleDistToTextChange:h,MIN_MARGIN:g,MAX_MARGIN:_}=Dt(e);return/* @__PURE__ */ (0,f.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!i}),children:[/* @__PURE__ */ (0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.title`)})}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.wrappingStyle`)})}),/* @__PURE__ */ (0,f.jsx)(`div`,{children:/* @__PURE__ */ (0,f.jsxs)(o.RadioGroup,{value:a,onChange:p,direction:`vertical`,children:[/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.INLINE,children:r.t(`docs-drawing-ui.image-text-wrap.inline`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.WRAP_SQUARE,children:r.t(`docs-drawing-ui.image-text-wrap.square`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.WRAP_TOP_AND_BOTTOM,children:r.t(`docs-drawing-ui.image-text-wrap.topAndBottom`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.BEHIND_TEXT,children:r.t(`docs-drawing-ui.image-text-wrap.behindText`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.IN_FRONT_OF_TEXT,children:r.t(`docs-drawing-ui.image-text-wrap.inFrontText`)})]})}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.wrapText`)})}),/* @__PURE__ */ (0,f.jsx)(`div`,{children:/* @__PURE__ */ (0,f.jsxs)(o.RadioGroup,{disabled:l,value:String(s),onChange:m,direction:`horizontal`,children:[/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:String(t.WrapTextType.BOTH_SIDES),children:r.t(`docs-drawing-ui.image-text-wrap.bothSide`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:String(t.WrapTextType.LEFT),children:r.t(`docs-drawing-ui.image-text-wrap.leftOnly`)}),/* @__PURE__ */ (0,f.jsx)(o.Radio,{value:String(t.WrapTextType.RIGHT),children:r.t(`docs-drawing-ui.image-text-wrap.rightOnly`)})]})}),/* @__PURE__ */ (0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:/* @__PURE__ */ (0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.distanceFromText`)})}),/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.top`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:u,precision:1,value:c.distT,onChange:e=>{h(e,`distT`)}})]}),/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.left`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:d,precision:1,value:c.distL,onChange:e=>{h(e,`distL`)}})]})]}),/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.bottom`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:u,precision:1,value:c.distB,onChange:e=>{h(e,`distB`)}})]}),/* @__PURE__ */ (0,f.jsxs)(`div`,{children:[/* @__PURE__ */ (0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.right`)}),/* @__PURE__ */ (0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:d,precision:1,value:c.distR,onChange:e=>{h(e,`distR`)}})]})]})]})}let Kt=()=>{let e=(0,c.useDependency)(s.IDrawingManagerService),t=(0,c.useObservable)(()=>e.focus$,e.getFocusDrawings(),!1,[e]);return!!(t!=null&&t.length)&&/* @__PURE__ */ (0,f.jsxs)(`div`,{className:`univer-text-sm`,children:[/* @__PURE__ */ (0,f.jsx)(u.DrawingCommonPanel,{drawings:t,hasAlign:!1,hasCropper:!0,hasGroup:!1,hasTransform:!1}),/* @__PURE__ */ (0,f.jsx)(Wt,{drawings:t}),/* @__PURE__ */ (0,f.jsx)(Ht,{drawings:t})]})},qt=class extends t.Disposable{constructor(e){super(),this._componentManager=e,this._registerComponents()}_registerComponents(){this.disposeWithMe(this._componentManager.register(W,Kt))}};qt=N([M(0,(0,t.Inject)(c.ComponentManager))],qt);let Jt=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._skeletonManager=n,this._selectionRender=r,this._themeService=i,E(this,`_stroke`,``),E(this,`_focused`,[]),E(this,`_markers`,/* @__PURE__ */ new Map),this.disposeWithMe(t.focus$.subscribe(e=>{this._focused=(e??[]).filter(e=>e.unitId===this._context.unitId),this._updateMarkers()})),this.disposeWithMe(this._context.scene.beforeRender$.subscribe(()=>this._updateMarkers())),this.disposeWithMe(this._themeService.currentTheme$.subscribe(()=>{this._stroke=this._themeService.getColorFromTheme(`gray.500`),this._updateMarkers()})),this.disposeWithMe({dispose:()=>{this._markers.forEach(e=>e.dispose()),this._markers.clear()}})}_updateMarkers(){let{scene:e,unit:a,mainComponent:o}=this._context,s=a.getSnapshot(),c=this._skeletonManager.getSkeleton(),l=/* @__PURE__ */ new Set,u=o;if(c&&u){let a=u.getOffsetConfig(),o=new r.NodePositionConvertToCursor(a,c),h=e.getAncestorScale();for(let{drawingId:u}of this._focused){var d,f,p,m;let g=(d=(0,n.findDocDrawing)(s,u))==null?void 0:d.drawing,_=O(s,u);if(!g||g.layoutType===t.PositionedObjectLayoutType.INLINE||!_||_.segmentId!==this._selectionRender.getSegment())continue;let v=c.findNodePositionByCharIndex(_.offset,!0,_.segmentId,this._selectionRender.getSegmentPage()),y=c.findGlyphByPosition(v),b=y==null||(f=y.parent)==null?void 0:f.parent,x=(b==null||(p=b.parent)==null?void 0:p.lines.find(e=>e.paragraphIndex===b.paragraphIndex&&e.paragraphStart))??b,S=x==null||(m=x.divides[0])==null?void 0:m.glyphGroup[0],C=S&&c.findPositionByGlyph(S,this._selectionRender.getSegmentPage());if(!C)continue;let w={...C,isBack:!0},{contentBoxPointGroup:T}=o.getRangePointData(w,w);if(!T.length)continue;let E=(0,r.getAnchorBounding)(T),D=a.docsLeft+E.left-22/h.scaleX,k=a.docsTop+E.top,A=this._markers.get(u),j=this._stroke;A||(A=new i.Path(`__DocDrawingAnchor__${u}`,{data:`M 8 4 C 9.104 4 10 3.104 10 2 C 10 0.896 9.104 0 8 0 C 6.896 0 6 0.896 6 2 C 6 3.104 6.896 4 8 4 Z M 8 4 L 8 16 M 5 7.2 L 11 7.2 M 1 9.5 L 1 10.5 C 1 13.5 4.25 16 8 16 C 11.75 16 15 13.5 15 10.5 L 15 9.5 M 1 9.5 L 3.25 11 M 15 9.5 L 12.75 11`,width:14,height:16,stroke:j,strokeWidth:1.25,strokeLineCap:`round`,strokeLineJoin:`round`,evented:!1,debounceParentDirty:!1}),this._markers.set(u,A),e.addObject(A,r.TEXT_RANGE_LAYER_INDEX)),(A.left!==D||A.top!==k||A.scaleX!==1/h.scaleX||A.scaleY!==1/h.scaleY)&&A.transformByState({left:D,top:k,scaleX:1/h.scaleX,scaleY:1/h.scaleY}),A.stroke!==j&&A.setProps({stroke:j}),l.add(u)}}for(let[e,t]of this._markers)l.has(e)||(t.dispose(),this._markers.delete(e))}};Jt=N([M(1,s.IDrawingManagerService),M(2,(0,t.Inject)(a.DocSkeletonManagerService)),M(3,(0,t.Inject)(r.DocSelectionRenderService)),M(4,(0,t.Inject)(t.ThemeService))],Jt);function Yt(e){return e.getContextValue(t.FOCUSING_DOC)&&e.getContextValue(t.FOCUSING_UNIVER_EDITOR)&&e.getContextValue(t.FOCUSING_COMMON_DRAWINGS)}let Xt={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:Yt,staticParameters:{direction:t.Direction.DOWN}},Zt={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:Yt,staticParameters:{direction:t.Direction.UP}},Qt={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:Yt,staticParameters:{direction:t.Direction.LEFT}},$t={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:Yt,staticParameters:{direction:t.Direction.RIGHT}},en={id:p.id,description:`docs-drawing-ui.shortcut.drawing-delete`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,preconditions:Yt,binding:c.KeyCode.DELETE,mac:c.KeyCode.BACKSPACE},tn=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(Te)}_initCommands(){[F,R,z,st,ct,lt,ut,G,U,K,x,S,H,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[Xt,Zt,Qt,$t,en].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};tn=N([M(0,c.IMenuManagerService),M(1,t.ICommandService),M(2,c.IShortcutService)],tn);let nn=class extends t.RxDisposable{constructor(e,t,n,r,i,a,o,s,c,l,u,d){super(),this._drawingManagerService=e,this._canvasPopManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._contextService=i,this._drawingAdapterService=a,this._docDrawingService=o,this._floatingToolbarAdapterService=s,this._commandService=c,this._menuManagerService=l,this._permissionService=u,this._contextMenuService=d,E(this,`_initImagePopupMenu`,/* @__PURE__ */ new Set),E(this,`_embeddedRenderUnits`,/* @__PURE__ */ new Set),E(this,`_popupMenuListeners`,/* @__PURE__ */ new Map),E(this,`_disposePopupsByUnit`,/* @__PURE__ */ new Map),E(this,`_popupTargetsByUnit`,/* @__PURE__ */ new Map),E(this,`_isDrawingPanelOpen`,!1),this._init()}_init(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{let t=[...this._popupTargetsByUnit.values()].some(t=>{let n=this._docDrawingService.getDrawingByParam(t),r=n&&this._drawingAdapterService.getEditDrawingCommandInfo({...t,drawing:n});return(r==null?void 0:r.commandId)===e.id});if((e.id===K.id||t)&&this._clearPopups(void 0,!0),e.id===G.id){let t=e.params;this._isDrawingPanelOpen=(t==null?void 0:t.value)===`open`,this._isDrawingPanelOpen&&this._clearPopups(void 0,!0)}})),this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e.length===0&&(this._isDrawingPanelOpen=!1)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{for(let n of e)for(let[e,r]of this._popupTargetsByUnit)if(r.unitId===n.unitId&&r.subUnitId===n.subUnitId&&r.drawingId===n.drawingId){var t;this._clearPopups(e,!0),(t=this._renderManagerService.getRenderUnitById(e))==null||t.scene.getTransformerByCreate().clearSelectedObjects()}})),this.disposeWithMe(this._permissionService.permissionPointUpdate$.subscribe(()=>{for(let[e,t]of this._popupTargetsByUnit)this._canEditDrawing(t.unitId,t.drawingId)||this._clearPopups(e,!0)})),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.disposeWithMe(this._renderManagerService.created$.pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>{e.type!==t.UniverInstanceType.UNIVER_DOC||e.isMainScene||(this._embeddedRenderUnits.add(e.unitId),this._create(this._univerInstanceService.getUnit(e.unitId,t.UniverInstanceType.UNIVER_DOC)))})),this.disposeWithMe(this._renderManagerService.disposed$.pipe((0,l.takeUntil)(this.dispose$)).subscribe(e=>{this._embeddedRenderUnits.delete(e)&&this._disposePopupMenuListener(e)})),this._univerInstanceService.getAllUnitsForType(t.UniverInstanceType.UNIVER_DOC).forEach(e=>this._create(e))}_dispose(e){let t=e.getUnitId();this._clearPopups(t,!0),this._disposePopupMenuListener(t),this._renderManagerService.removeRender(t)}_clearPopups(e,t=!1){if(e==null){[...this._disposePopupsByUnit.keys()].forEach(e=>this._clearPopups(e,t));return}let n=this._disposePopupsByUnit.get(e);if(n){for(let e=n.length-1;e>=0;--e){let r=n[e];(t||r.canDispose())&&(r.dispose(),n.splice(e,1))}n.length===0&&(this._disposePopupsByUnit.delete(e),this._popupTargetsByUnit.delete(e))}}_getDisposePopups(e){let t=this._disposePopupsByUnit.get(e);if(t)return t;let n=[];return this._disposePopupsByUnit.set(e,n),n}_create(e){if(!e)return;let n=e.getUnitId();if(!(0,t.isInternalEditorID)(n)&&this._renderManagerService.has(n)&&!this._initImagePopupMenu.has(n)){let e=this._popupMenuListener(n);e&&(this._popupMenuListeners.set(n,e),this._initImagePopupMenu.add(n))}}_disposePopupMenuListener(e){var t;(t=this._popupMenuListeners.get(e))==null||t.dispose(),this._popupMenuListeners.delete(e),this._initImagePopupMenu.delete(e),this._clearPopups(e,!0)}_hasCropObject(e){let t=e.getAllObjects();for(let e of t)if(e instanceof u.ImageCropperObject)return!0;return!1}_handleClearControl(e,n,r){this._clearPopups(e,r),queueMicrotask(()=>{n.getSelectedObjectMap().size>0||(this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._drawingManagerService.focusDrawing(null))})}_registerDrawingPopup(e,t,n){this.disposeWithMe(t),this._getDisposePopups(e).push(t),this._popupTargetsByUnit.set(e,n),this._drawingManagerService.getFocusDrawings().find(e=>e.unitId===n.unitId&&e.subUnitId===n.subUnitId&&e.drawingId===n.drawingId)||this._drawingManagerService.focusDrawing([n])}_isSamePopupTarget(e,t){return(e==null?void 0:e.unitId)===t.unitId&&e.subUnitId===t.subUnitId&&e.drawingId===t.drawingId}_popupMenuListener(e){var n;let r=(n=this._renderManagerService.getRenderUnitById(e))==null?void 0:n.scene;if(!r)return;let i=r.getTransformerByCreate(),a=[i.changeEnd$.subscribe(({event:e})=>{var n;if(e.button!==2)return;let r=[...i.getSelectedObjectMap().values()].map(e=>this._drawingManagerService.getDrawingOKey(e.oKey));r.length===0||r.length===1&&((n=r[0])==null?void 0:n.drawingType)!==t.DrawingTypeEnum.DRAWING_GROUP||r.some(e=>!e||!this._canEditDrawing(e.unitId,e.drawingId))||this._contextMenuService.triggerContextMenu(e,c.ContextMenuPosition.DRAWING)}),i.createControl$.subscribe(()=>{if(this._hasCropObject(r)){this._clearPopups(e,!0);return}let n=i.getSelectedObjectMap();if(this._isDrawingPanelOpen||n.size>1){this._clearPopups(e,this._isDrawingPanelOpen);return}let a=n.values().next().value;if(!a){this._clearPopups(e);return}let o=this._drawingManagerService.getDrawingOKey(a.oKey);if(!o||o.drawingType===t.DrawingTypeEnum.DRAWING_DOM||o.drawingType===t.DrawingTypeEnum.DRAWING_SHAPE){this._clearPopups(e);return}let{unitId:s,subUnitId:c,drawingId:l,drawingType:d}=o;if(!this._canEditDrawing(s,l)){this._clearPopups(e,!0);return}let f=this._disposePopupsByUnit.get(e),p=this._popupTargetsByUnit.get(e),m={unitId:s,subUnitId:c,drawingId:l};if(this._isSamePopupTarget(p,m)&&f&&f.length>0)return;this._clearPopups(e,p!=null);let h=d===t.DrawingTypeEnum.DRAWING_IMAGE,g=d===t.DrawingTypeEnum.DRAWING_CHART,_=this._canvasPopManagerService.attachPopupToObject(a,{componentKey:u.COMPONENT_IMAGE_POPUP_MENU,requiresStableLayout:!1,direction:h||g?`top-center`:`horizontal`,offset:h||g?[0,8]:[2,0],extraProps:{menuItems:this._getDrawingPopupMenuItems(s,c,l,d),variant:h?`doc-floating-toolbar`:g?`doc-chart-floating-toolbar`:void 0,unitId:s,subUnitId:c,drawingId:l}},s);this._registerDrawingPopup(e,_,{unitId:s,subUnitId:c,drawingId:l})}),i.clearControl$.subscribe(t=>this._handleClearControl(e,i,t)),i.changing$.subscribe(()=>{this._clearPopups(e,!0)})],o=(0,t.toDisposable)(()=>a.forEach(e=>e.unsubscribe()));return this.disposeWithMe(o),o}_canEditDrawing(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!r)return!1;let i=(0,a.getDocumentDrawingSegmentId)(r,n);return(0,a.canEditDocumentTargets)(this._permissionService,e,[...(0,a.getDocumentEntityParentPermissionObjectIds)(r,i,`drawing`,n),(0,a.getDocumentEntityPermissionObjectId)(i,`drawing`,n)])}_getDrawingPopupMenuItems(e,r,i,a){let o=this._docDrawingService.getDrawingByParam({unitId:e,subUnitId:r,drawingId:i}),s=o?this._floatingToolbarAdapterService.getItems({unitId:e,subUnitId:r,drawing:o}):null,c=o?this._drawingAdapterService.getEditDrawingCommandInfo({unitId:e,subUnitId:r,drawing:o}):null,l=[{label:(c==null?void 0:c.label)??`docs-drawing-ui.image-popup.edit`,index:0,commandId:(c==null?void 0:c.commandId)??K.id,commandParams:(c==null?void 0:c.commandParams)??{unitId:e,subUnitId:r,drawingId:i},disable:(c==null?void 0:c.disable)??a===t.DrawingTypeEnum.DRAWING_DOM,hideOnClick:!0,icon:`DrawingEditIcon`},{label:`docs-drawing-ui.image-popup.crop`,index:1,commandId:u.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:r,drawingId:i},disable:a===t.DrawingTypeEnum.DRAWING_DOM,icon:`DrawingCropIcon`},{label:`docs-drawing-ui.image-popup.delete`,index:2,commandId:n.RemoveDocDrawingCommand.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:r,drawingId:i}]},disable:!1,icon:`DrawingDeleteIcon`},{label:`docs-drawing-ui.image-popup.reset`,index:3,commandId:u.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:r,drawingId:i}],disable:!0}];return[...s??l,...this._getFloatingObjectMenuItems()]}_getFloatingObjectMenuItems(){return this._menuManagerService.getFlatMenuByPositionKey(c.FloatingObjectToolbarPosition.DOC).flatMap(({item:e},t)=>!e||e.type!==c.MenuItemType.BUTTON||!e.title||typeof e.icon!=`string`?[]:[{type:`button`,label:e.title,index:100+t,commandId:e.commandId??e.id,commandParams:typeof e.params==`function`?e.params():e.params,disable:!1,icon:e.icon}])}};nn=N([M(0,s.IDrawingManagerService),M(1,(0,t.Inject)(r.DocCanvasPopManagerService)),M(2,i.IRenderManagerService),M(3,t.IUniverInstanceService),M(4,t.IContextService),M(5,n.IDocDrawingAdapterService),M(6,n.IDocDrawingService),M(7,(0,t.Inject)(Rt)),M(8,t.ICommandService),M(9,c.IMenuManagerService),M(10,t.IPermissionService),M(11,c.IContextMenuService)],nn);let $=class extends t.Plugin{constructor(e=Ae,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{...a}=(0,t.merge)({},Ae,this._config);this._configService.setConfig(Oe,a)}onStarting(){[[qt],[tn],[nn],[pt],[nt],[D],[Rt],[Y],[at]].forEach(e=>this._injector.add(e)),this._injector.get(qt)}onReady(){[[P],[Je],[Jt]].forEach(e=>this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)),this._injector.get(nt),this._injector.get(tn),this._injector.get(pt),this._injector.get(at)}onRendered(){this._injector.get(nn),this._injector.get(Y)}};E($,`type`,t.UniverInstanceType.UNIVER_DOC),E($,`pluginName`,ke),E($,`packageName`,Ee),E($,`version`,De),$=N([(0,t.DependentOn)(a.UniverDocsPlugin,s.UniverDrawingPlugin,i.UniverRenderEnginePlugin,n.UniverDocsDrawingPlugin,r.UniverDocsUIPlugin,u.UniverDrawingUIPlugin),M(1,(0,t.Inject)(t.Injector)),M(2,i.IRenderManagerService),M(3,t.IConfigService)],$),e.ClearDocDrawingTransformerOperation=U,e.DOCS_IMAGE_MENU_ID=fe,e.DOCS_SHAPE_BELOW_MENU_ID=ve,e.DOCS_SHAPE_MENU_ID=_e,e.DeleteDocDrawingsCommand=p,e.DocDrawingFloatingToolbarAdapterService=Rt,e.DocDrawingPosition=Ht,e.DocDrawingTextWrap=Wt,Object.defineProperty(e,"DocFloatDomController",{enumerable:!0,get:function(){return Y}}),e.DocsDrawingUIMenuSchema=Te,e.EditDocDrawingOperation=K,e.GroupDocDrawingCommand=x,e.InsertDocEllipseShapeCommand=z,e.InsertDocImageCommand=F,e.InsertDocRectangleShapeCommand=R,e.MobileDocDrawingPosition=Tt,e.MobileDocDrawingTextWrap=Mt,e.MoveDocDrawingsCommand=H,e.SidebarDocDrawingOperation=G,e.UngroupDocDrawingCommand=S,Object.defineProperty(e,"UniverDocsDrawingMobileUIPlugin",{enumerable:!0,get:function(){return Q}}),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.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Drawing UI integration for Univer Docs.",
|
|
6
6
|
"author": "DreamNum Co., Ltd. <developer@univer.ai>",
|
|
@@ -58,24 +58,24 @@
|
|
|
58
58
|
"rxjs": ">=7.0.0"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@univerjs/core": "1.
|
|
62
|
-
"@univerjs/design": "1.
|
|
63
|
-
"@univerjs/docs": "1.
|
|
64
|
-
"@univerjs/docs-drawing": "1.
|
|
65
|
-
"@univerjs/docs-ui": "1.
|
|
66
|
-
"@univerjs/drawing": "1.
|
|
67
|
-
"@univerjs/drawing-ui": "1.
|
|
68
|
-
"@univerjs/engine-render": "1.
|
|
61
|
+
"@univerjs/core": "1.2.0",
|
|
62
|
+
"@univerjs/design": "1.2.0",
|
|
63
|
+
"@univerjs/docs": "1.2.0",
|
|
64
|
+
"@univerjs/docs-drawing": "1.2.0",
|
|
65
|
+
"@univerjs/docs-ui": "1.2.0",
|
|
66
|
+
"@univerjs/drawing": "1.2.0",
|
|
67
|
+
"@univerjs/drawing-ui": "1.2.0",
|
|
68
|
+
"@univerjs/engine-render": "1.2.0",
|
|
69
69
|
"@univerjs/icons": "1.46.0",
|
|
70
|
-
"@univerjs/ui": "1.
|
|
70
|
+
"@univerjs/ui": "1.2.0"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@testing-library/react": "^16.3.3",
|
|
74
|
-
"@univerjs-infra/shared": "1.
|
|
75
|
-
"@univerjs/protocol": "1.
|
|
74
|
+
"@univerjs-infra/shared": "1.2.0",
|
|
75
|
+
"@univerjs/protocol": "1.2.0",
|
|
76
76
|
"postcss": "^8.5.29",
|
|
77
77
|
"react": "18.3.1",
|
|
78
|
-
"rxjs": "
|
|
78
|
+
"rxjs": "7.8.2",
|
|
79
79
|
"tailwindcss": "3.4.18",
|
|
80
80
|
"typescript": "^6.0.3",
|
|
81
81
|
"vitest": "^5.0.4"
|