@univerjs/docs-drawing-ui 1.0.0-rc.0 → 1.0.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.
Files changed (53) hide show
  1. package/lib/cjs/index.js +3281 -2066
  2. package/lib/cjs/locale/ar-SA.js +0 -1
  3. package/lib/cjs/locale/ca-ES.js +0 -1
  4. package/lib/cjs/locale/de-DE.js +0 -1
  5. package/lib/cjs/locale/en-US.js +0 -1
  6. package/lib/cjs/locale/es-ES.js +0 -1
  7. package/lib/cjs/locale/fa-IR.js +0 -1
  8. package/lib/cjs/locale/fr-FR.js +0 -1
  9. package/lib/cjs/locale/id-ID.js +0 -1
  10. package/lib/cjs/locale/it-IT.js +0 -1
  11. package/lib/cjs/locale/ja-JP.js +0 -1
  12. package/lib/cjs/locale/ko-KR.js +0 -1
  13. package/lib/cjs/locale/pl-PL.js +0 -1
  14. package/lib/cjs/locale/pt-BR.js +0 -1
  15. package/lib/cjs/locale/ru-RU.js +0 -1
  16. package/lib/cjs/locale/sk-SK.js +0 -1
  17. package/lib/cjs/locale/vi-VN.js +0 -1
  18. package/lib/cjs/locale/zh-CN.js +0 -1
  19. package/lib/cjs/locale/zh-HK.js +0 -1
  20. package/lib/cjs/locale/zh-TW.js +0 -1
  21. package/lib/es/index.js +3278 -2071
  22. package/lib/index.css +83 -0
  23. package/lib/index.js +3278 -2071
  24. package/lib/types/commands/commands/doc-drawing-group.d.ts +19 -0
  25. package/lib/types/commands/commands/group-doc-drawing.command.d.ts +2 -4
  26. package/lib/types/commands/commands/insert-doc-drawing.command.d.ts +20 -0
  27. package/lib/types/commands/commands/interfaces.d.ts +35 -0
  28. package/lib/types/commands/commands/remove-doc-drawing.command.d.ts +20 -0
  29. package/lib/types/commands/commands/set-drawing-arrange.command.d.ts +25 -0
  30. package/lib/types/commands/commands/ungroup-doc-drawing.command.d.ts +2 -4
  31. package/lib/types/commands/operations/mobile/open-drawing-panel.operation.d.ts +17 -0
  32. package/lib/types/config/config.d.ts +1 -0
  33. package/lib/types/controllers/doc-drawing.controller.d.ts +29 -0
  34. package/lib/types/controllers/mobile/components.controller.d.ts +20 -0
  35. package/lib/types/controllers/mobile/drawing-popup-menu.controller.d.ts +56 -0
  36. package/lib/types/controllers/mobile/ui.controller.d.ts +24 -0
  37. package/lib/types/controllers/render-controllers/doc-drawing-crop.d.ts +2 -1
  38. package/lib/types/controllers/render-controllers/doc-drawing-transform-update.controller.d.ts +12 -4
  39. package/lib/types/controllers/render-controllers/doc-drawing-update.render-controller.d.ts +3 -1
  40. package/lib/types/controllers/render-controllers/mobile/doc-drawing-update.render-controller.d.ts +22 -0
  41. package/lib/types/index.d.ts +3 -0
  42. package/lib/types/menu/drawing-popup-menu.controller.d.ts +5 -3
  43. package/lib/types/mobile-plugin.d.ts +32 -0
  44. package/lib/types/services/doc-drawing-floating-toolbar-adapter.service.d.ts +2 -1
  45. package/lib/types/views/doc-image-panel/MobileDocDrawingPanel.d.ts +16 -0
  46. package/lib/types/views/doc-image-panel/MobileDocDrawingPosition.d.ts +17 -0
  47. package/lib/types/views/doc-image-panel/MobileDocDrawingTextWrap.d.ts +17 -0
  48. package/lib/types/views/doc-image-panel/component-name.d.ts +1 -0
  49. package/lib/types/views/doc-image-panel/use-doc-drawing-position.d.ts +46 -0
  50. package/lib/types/views/doc-image-panel/use-doc-drawing-text-wrap.d.ts +41 -0
  51. package/lib/types/views/printing-float-dom/index.d.ts +29 -0
  52. package/lib/umd/index.js +1 -1
  53. package/package.json +16 -15
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/design"),require("@univerjs/docs"),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/design`,`@univerjs/docs`,`@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.UniverDesign,e.UniverDocs,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}},m={id:`doc.command.group-doc-image`,type:t.CommandType.COMMAND,handler:(e,t)=>!1},h={id:`doc.command.ungroup-doc-image`,type:t.CommandType.COMMAND,handler:(e,t)=>{let r=e.get(n.IDocDrawingService);if(!t)return!1;let i=[];t.forEach(({parent:e,children:t})=>{i.push(e.unitId),t.forEach(e=>{i.push(e.unitId)})});let{unitId:a,subUnitId:o,undo:s,redo:c,objects:l}=r.getUngroupDrawingOp(t);return!1}};function g(e){"@babel/helpers - typeof";return g=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},g(e)}function _(e,t){if(g(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(g(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function v(e){var t=_(e,`string`);return g(t)==`symbol`?t:t+``}function y(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=class{constructor(){y(this,`_refreshDrawings$`,new l.BehaviorSubject(null)),y(this,`refreshDrawings$`,this._refreshDrawings$.asObservable())}refreshDrawings(e){this._refreshDrawings$.next(e)}};function x(e,n,r){let{drawingId:i,transform:a}=e;if(a==null||e.srcRect===void 0||(n==null?void 0:n.drawingType)!==t.DrawingTypeEnum.DRAWING_IMAGE||(r==null?void 0:r.transform)==null)return[];let o={...r.transform,...a},s=[{drawingId:i,key:`srcRect`,value:e.srcRect}];if(o.width!=null&&o.height!=null&&s.push({drawingId:i,key:`size`,value:{width:o.width,height:o.height}}),n.layoutType===t.PositionedObjectLayoutType.INLINE||r.isMultiTransform===t.BooleanNumber.TRUE)return s;let c=(o.left??0)-(r.transform.left??0),l=(o.top??0)-(r.transform.top??0),{positionH:u,positionV:d}=n.docTransform;return c!==0&&u.posOffset!=null&&s.push({drawingId:i,key:`positionH`,value:{relativeFrom:u.relativeFrom,posOffset:u.posOffset+c}}),l!==0&&d.posOffset!=null&&s.push({drawingId:i,key:`positionV`,value:{relativeFrom:d.relativeFrom,posOffset:d.posOffset+l}}),s}function S(e){if(!Array.isArray(e)||e.length===0)return null;let n=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 C(e,t){return function(n,r){t(n,r,e)}}function w(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let T=class extends 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,y(this,`_editableTransformerConfigs`,new WeakMap),y(this,`_editableEventedStates`,new WeakMap),y(this,`_editStatusUpdateScheduled`,!1),y(this,`_pendingEditStatusDrawingIds`,void 0),y(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:a.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)()/(1024*1024)));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`);break;default:break}this._messageService.show({type:a.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:a,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,a,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,o.docDrawingPositionToTransform)(_);v!=null&&g!=null&&(v.top=g.top);let y={unitId:l,subUnitId:l,drawingId:n,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:a,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(o.DocSkeletonManagerService).getViewModel(),r=n==null?void 0:n.getEditArea();return r===i.DocumentEditArea.HEADER||r===i.DocumentEditArea.FOOTER}_getImagePosition(e,t,n){return(0,o.buildDocTransform)(e,t,{left:(n??this._getCurrentImageInsertPosition()??{left:0,top:0}).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)?[]:x(e,this._getDocDrawing(r),this._drawingManagerService.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r}))}_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(m.id,e)})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{this._commandService.executeCommand(h.id,e)}))}_getCurrentSceneAndTransformer(){let{scene:e,mainComponent:t}=this._context;if(e==null||t==null)return;let n=e.getTransformerByCreate(),{docsLeft:r,docsTop:i}=t.getOffsetConfig();return{scene:e,transformer:n,docsLeft:r,docsTop:i}}_transformDrawingListener(){let e=this._getCurrentSceneAndTransformer();if(e&&e.transformer)this.disposeWithMe(e.transformer.changeEnd$.pipe((0,l.debounceTime)(30)).subscribe(()=>{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 a=this._docSelectionRenderService.getSegment(),s=(0,o.getDocumentDrawingSegmentId)(this._context.unit,e[0].drawingId);a!==s&&this._docSelectionRenderService.setSegment(s),n&&n.resetProps({zeroTop:i,zeroLeft:r})}this._updateDrawingsEditStatus()}))}_updateDrawingsEditStatus(e,r=!1){var a;if(!this._context)return;let{unit:s,scene:c,unitId:l}=this._context,u=(a=this._renderManagerSrv.getRenderUnitById(l))==null?void 0:a.with(o.DocSkeletonManagerService).getViewModel();if(u==null||s==null)return;let{drawings:d}=(0,n.collectDocDrawings)(s.getSnapshot()),f=u.getEditArea()===i.DocumentEditArea.BODY,p=this._docSelectionRenderService.isFocusing||this._drawingManagerService.getFocusDrawings().some(e=>e.unitId===l),m=`${u.getEditArea()}:${p}`,h=e!=null&&m===this._lastEditStatusContextKey?e:void 0;if(h==null){if(!r&&m===this._lastEditStatusContextKey)return;this._lastEditStatusContextKey=m}let g=new Set,_=this._indexDrawingShapes(c.getAllObjects(),l);for(let e of Object.keys(d)){let n=d[e];if(h!=null&&!h.has(n.drawingId))continue;let r=(0,o.getDocumentDrawingSegmentId)(s,n.drawingId),i=(0,o.canEditDocumentTargets)(this._permissionService,l,[...(0,o.getDocumentEntityParentPermissionObjectIds)(s,r,`drawing`,n.drawingId),(0,o.getDocumentEntityPermissionObjectId)(r,`drawing`,n.drawingId)]);this._recordReadOnlyDrawing(g,n.drawingId,i);let a=_.get(n.drawingId)??[];if(a.length)for(let e of a){c.detachTransformerFrom(e),this._setTransformerEditable(e,i);try{e.setOpacity(p?.5:1)}catch{}if(p&&(f&&n.isMultiTransform!==t.BooleanNumber.TRUE||!f&&n.isMultiTransform===t.BooleanNumber.TRUE)){this._attachTransformerIfEditable(e,i,n.allowTransform);try{e.setOpacity(1)}catch{}}}}this._clearReadOnlyDrawingFocus(l,g)}_indexDrawingShapes(e,t){let n=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:t,drawingId:``}),r=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));return}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??=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,o.getDocumentEditTargetObjectIds)(t,e.segmentId??``,e);return(0,o.canEditDocumentTargets)(this._permissionService,n,r)}_editAreaChangeListener(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderUnitById(t))==null?void 0:e.with(o.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!==o.RichTextEditingMutation.id)return;let t=e.params;if(t!=null&&t.unitId&&t.unitId!==this._context.unitId)return;let n=S((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=e.flatMap(e=>{var n,r;let i=(0,o.getDocumentDrawingSegmentId)(t,e.drawingId),a=(n=t.getSelfOrHeaderFooterModel(i))==null?void 0:n.getBody(),s=a==null||(r=a.customBlocks)==null?void 0:r.find(t=>t.blockId===e.drawingId);return s?[{startOffset:s.startIndex,endOffset:s.startIndex+1,segmentId:i}]:[]});this._docSelectionManagerService.replaceDocRanges(n)}};T=w([C(1,t.ICommandService),C(2,(0,t.Inject)(o.DocSelectionManagerService)),C(3,i.IRenderManagerService),C(4,t.IImageIoService),C(5,n.IDocDrawingService),C(6,s.IDrawingManagerService),C(7,t.IPermissionService),C(8,t.IContextService),C(9,c.IMessageService),C(10,(0,t.Inject)(t.LocaleService)),C(11,(0,t.Inject)(r.DocSelectionRenderService)),C(12,(0,t.Inject)(b)),C(13,c.ILocalFileService)],T);let E={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(T).insertDocImage())??!1}},D=`#3A60F7`,O=`#1D3EA6`;function k(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="${D}" stroke="${O}" stroke-width="4" />`:`<rect x="4" y="4" width="${t-8}" height="${n-8}" rx="14" fill="${D}" stroke="${O}" stroke-width="4" />`}</svg>`;return`data:image/svg+xml;utf8,${encodeURIComponent(r)}`}function A(e,r,i,a){return{id:a,type:t.CommandType.COMMAND,handler:async a=>{var s;let c=a.get(t.ICommandService),l=(s=a.get(t.IUniverInstanceService).getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC))==null?void 0:s.getUnitId();if(!l)return!1;let u=(0,o.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:k(e,r,i),transform:(0,o.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 j=A(`rectangle`,144,96,`doc.command.insert-float-shape.rectangle`),M=A(`ellipse`,112,112,`doc.command.insert-float-shape.ellipse`);function N(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=N(n,t,n.marginTop,n.marginLeft);if(e)return e}return null}function P(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 F={id:`doc.command.move-drawing`,type:t.CommandType.COMMAND,handler:(e,r)=>{var a;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||(a=m.with(o.DocSkeletonManagerService).getSkeleton())==null?void 0:a.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}:I(_,r);if(s.previewOnly)return null;let{anchor:c}=s,l=c==null?{horizontal:a.posOffset??0,vertical:o.posOffset??0}:P(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 I(e,t){let n=!1;for(let a of e.pages){var r,i;let o=N(a,t,a.marginTop,a.marginLeft),s=a.headerId==null||(r=e.skeHeaders.get(a.headerId))==null?void 0:r.get(a.pageWidth),c=s==null?null:N(s,t,s.marginTop,a.marginLeft),l=a.footerId==null||(i=e.skeFooters.get(a.footerId))==null?void 0:i.get(a.pageWidth),u=l==null?0:a.pageHeight-a.marginBottom+l.marginTop,d=l==null?null:N(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 L={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}},ee=`COMPONENT_DOC_DRAWING_PANEL`,te={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:ee},onClose:()=>{a.focusDrawing(null)},width:360});break;default:r.close();break}return!0}},R={id:`doc.operation.edit-doc-image`,type:t.CommandType.OPERATION,handler:(e,n)=>{let r=e.get(s.IDrawingManagerService),i=e.get(t.ICommandService);return n==null?!1:(r.focusDrawing([n]),i.executeCommand(te.id,{value:`open`}),!0)}};function z(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 B(e,t){let{top:n,left:r,width:i,height:a,angle:o,opacity:s}=e;return z({top:n,left:r,bottom:n+a,right:r+i},t.scene,s,o)}function V(e,t){let n=H(t.customBlockRenderViewport);return n?{...e,customBlockRenderViewport:n}:e}function H(e){let t={};ne(e==null?void 0:e.bleedLeft)&&(t.bleedLeft=e.bleedLeft),U(e==null?void 0:e.bleedWidth)&&(t.bleedWidth=e.bleedWidth),U(e==null?void 0:e.contentHeight)&&(t.contentHeight=e.contentHeight),U(e==null?void 0:e.contentWidth)&&(t.contentWidth=e.contentWidth),U(e==null?void 0:e.height)&&(t.height=e.height),U(e==null?void 0:e.pageContentWidth)&&(t.pageContentWidth=e.pageContentWidth);let n=e==null?void 0:e.viewScale;return U(n)&&(t.viewScale=n),U(e==null?void 0:e.viewportHeight)&&(t.viewportHeight=e.viewportHeight),Object.keys(t).length?t:void 0}function U(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function ne(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0}let W=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,y(this,`_domLayerInfoMap`,new Map),y(this,`_pendingRuntimeGeometry`,new Map),y(this,`_pendingRuntimeGeometryInsert`,new Map),y(this,`_pendingRuntimeGeometryRefresh`,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=new Set;for(let i of e)ie(this._drawingManagerService.getDrawingByParam(i))&&this._univerInstanceService.getUnit(i.unitId,t.UniverInstanceType.UNIVER_DOC)!=null?(this._pendingRuntimeGeometryInsert.set(i.drawingId,i),r.add(i.unitId),this._pendingRuntimeGeometry.has(i.drawingId)&&n.push(i)):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(o.DocSkeletonManagerService).getSkeleton();if(r!=null){if(!this._pendingRuntimeGeometryRefresh.has(e)){let n=r.dirty$.subscribe(()=>{if(!this._hasPendingRuntimeGeometryForUnit(e)){this._disposePendingRuntimeGeometryRefresh(e);return}this._docRefreshDrawingsService.refreshDrawings(r)});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=ie(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=H(u.customBlockRenderViewport);G(i,u,d,void 0,s);let f=d||s?oe(i):void 0;this._addHoverForRect(i);let p=new t.DisposableCollection,m=new l.BehaviorSubject(B(i,a.renderUnit)),h=a.canvas,g=o.data,_={dispose:p,preserveRuntimeGeometry:s,rect:i,runtimeTransform:f,runtimeViewport:d,position$:m,unitId:e};this._canvasFloatDomService.addFloatDom({position$:m,id:o.drawingId,componentKey:o.componentKey,contentBox:ae(o)?{contentInset:0,wrapperInset:0}:void 0,eventPassThrough:!s&&void 0,preserveOnFocusChange:s,onPointerDown:e=>{h.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{h.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{h.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{h.dispatchEvent(new WheelEvent(e.type,e))},data:g,props:V(void 0,o),unitId:e});let v=i.onTransformChange$.subscribeEvent(()=>{let e=B(i,a.renderUnit);m.next(e)}),y=se((n=a.scene.getViewport(r.VIEWPORT_KEY.VIEW_MAIN))==null?void 0:n.onScrollAfter$,()=>m.next(B(i,a.renderUnit)));p.add(()=>{this._canvasFloatDomService.removeFloatDom(o.drawingId)}),v&&p.add(v),y&&p.add(y),this._domLayerInfoMap.set(o.drawingId,_)}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||ie(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=H(r.customBlockRenderViewport);if(i&&(n.runtimeViewport=i),G(n.rect,r,n.runtimeViewport,n.runtimeTransform,n.preserveRuntimeGeometry)){(i||n.preserveRuntimeGeometry)&&(n.runtimeTransform=oe(n.rect));let e=this._getSceneAndTransformerByDrawingSearch(n.unitId);e&&n.position$.next(B(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:V(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=B(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 a=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(!a)return!1;let s=this._getSceneAndTransformerByDrawingSearch(a.getUnitId());if(!s)return!1;let c=(i=s.renderUnit.with(o.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:a.getUnitId(),drawings:[{drawingId:m,drawingType:t.DrawingTypeEnum.DRAWING_DOM,subUnitId:a.getUnitId(),unitId:a.getUnitId(),...e,title:``,description:``,docTransform:p,layoutType:t.PositionedObjectLayoutType.INLINE,transform:(0,o.docDrawingPositionToTransform)(p)}]};return this._commandService.syncExecuteCommand(n.InsertDocDrawingCommand.id,h),m}};W=w([C(0,i.IRenderManagerService),C(1,s.IDrawingManagerService),C(2,(0,t.Inject)(u.DrawingRenderService)),C(3,(0,t.Inject)(c.CanvasFloatDomService)),C(4,t.IUniverInstanceService),C(5,t.ICommandService),C(6,(0,t.Inject)(b))],W);function G(e,t,n,r,i){let a=re(t,e,n,r,i);return a?(e.transformByState(a),!0):!1}function re(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 U(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 U(c)?{...o,height:c}:o}function ie(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 ae(e){if(!ie(e))return!1;let t=e.data;return!!t&&typeof t==`object`&&`childType`in t&&typeof t.childType==`number`&&(0,o.isSheetLikeDocsCustomBlockChildType)(t.childType)}function oe(e){return{angle:e.angle,height:e.height,left:e.left,top:e.top,width:e.width}}function se(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 K=`doc.menu.image`,q=E.id,ce=e=>{let n=e.get(o.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 J(e){return{id:K,commandId:q,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,tooltip:`docs-drawing-ui.title`,disabled$:ce(e),hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function Y(e){return{id:q,title:`docs-drawing-ui.upload.float`,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function le(e){return{id:`${q}.below`,commandId:q,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 X=`doc.command.menu-insert-shape`,ue=`doc.command.menu-insert-shape.below`;function de(e){return{id:X,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 fe(e){return{id:ue,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 pe(e){return{id:j.id,title:`docs-drawing-ui.shape.insert.rectangle`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function me(e){return{id:M.id,title:`docs-drawing-ui.shape.insert.ellipse`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function he(e){return{id:`${j.id}.below`,commandId:j.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 ge(e){return{id:`${M.id}.below`,commandId:M.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 _e={[c.RibbonInsertGroup.MEDIA]:{[K]:{order:0,menuItemFactory:J}},[c.ContextMenuPosition.PARAGRAPH]:{[c.ContextMenuGroup.LAYOUT]:{[r.INSERT_BELLOW_MENU_ID]:{[q]:{order:5,menuItemFactory:Y}}},[r.EMPTY_PARAGRAPH_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[q]:{order:5,menuItemFactory:Y}}},[r.DOC_CONTENT_INSERT_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[q]:{order:5,menuItemFactory:Y}}},[r.DOC_PARAGRAPH_T_INSERT_MENU_ID]:{insert:{[q]:{order:1,menuItemFactory:Y},[X]:{order:2,menuItemFactory:de}}},[r.DOC_PARAGRAPH_T_INSERT_BELOW_MENU_ID]:{insert:{[`${q}.below`]:{order:1,menuItemFactory:le},[ue]:{order:2,menuItemFactory:fe}}},[X]:{shapes:{order:0,[j.id]:{order:0,menuItemFactory:pe},[M.id]:{order:1,menuItemFactory:me}}},[ue]:{shapes:{order:0,[`${j.id}.below`]:{order:0,menuItemFactory:he},[`${M.id}.below`]:{order:1,menuItemFactory:ge}}}}};var ve=`@univerjs/docs-drawing-ui`,ye=`1.0.0-rc.0`;let be={},xe=-1e3,Se=1e3,Ce=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?(0,f.jsx)(we,{...e}):null};function we(e){let l=(0,c.useDependency)(t.ICommandService),u=(0,c.useDependency)(t.LocaleService),p=(0,c.useDependency)(s.IDrawingManagerService),m=(0,c.useDependency)(i.IRenderManagerService),h=(0,c.useDependency)(t.IUniverInstanceService),{drawings:g}=e,{unitId:_}=g[0],v=h.getUnit(_,t.UniverInstanceType.UNIVER_DOC),y=v==null?void 0:v.getSnapshot().documentStyle.documentFlavor,b=m.getRenderUnitById(_).scene.getTransformerByCreate(),x=[{label:u.t(`docs-drawing-ui.image-position.column`),value:String(t.ObjectRelativeFromH.COLUMN)},{label:u.t(`docs-drawing-ui.image-position.page`),value:String(t.ObjectRelativeFromH.PAGE)},{label:u.t(`docs-drawing-ui.image-position.margin`),value:String(t.ObjectRelativeFromH.MARGIN)}],S=[{label:u.t(`docs-drawing-ui.image-position.line`),value:String(t.ObjectRelativeFromV.LINE),disabled:y===t.DocumentFlavor.MODERN},{label:u.t(`docs-drawing-ui.image-position.page`),value:String(t.ObjectRelativeFromV.PAGE),disabled:y===t.DocumentFlavor.MODERN},{label:u.t(`docs-drawing-ui.image-position.margin`),value:String(t.ObjectRelativeFromV.MARGIN),disabled:y===t.DocumentFlavor.MODERN},{label:u.t(`docs-drawing-ui.image-position.paragraph`),value:String(t.ObjectRelativeFromV.PARAGRAPH)}],[C,w]=(0,d.useState)(!0),[T,E]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0}),[D,O]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0}),[k,A]=(0,d.useState)(!0),[j,M]=(0,d.useState)(!0);function N(e,t){var i;e===`positionH`?E(t):O(t);let a=p.getFocusDrawings();if(a.length===0)return;let o=a.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));l.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:a[0].unitId,subUnitId:a[0].unitId,drawings:o.map(n=>({drawingId:n.drawingId,key:e,value:t}))});let s=(i=m.getRenderUnitById(_))==null?void 0:i.with(r.DocSelectionRenderService);s&&s.blur(),b.refreshControls()}function P(e){var n;let r=T.relativeFrom,i=T.posOffset,a=Number(e);if(r===a)return;let s=p.getFocusDrawings();if(s.length===0)return;let c=s[0].drawingId,l=s[0].unitId,u=null,d=0,f=(n=m.getRenderUnitById(l))==null?void 0:n.with(o.DocSkeletonManagerService).getSkeleton(),h=f==null?void 0:f.getSkeletonData();if(h==null)return;let{pages:g,skeHeaders:_,skeFooters:v}=h;for(let e of g){var y,b;let{marginLeft:t,skeDrawings:n,headerId:r,footerId:i,pageWidth:a}=e;if(n.has(c)){u=n.get(c),d=t;break}let o=(y=_.get(r))==null?void 0:y.get(a);if(o!=null&&o.skeDrawings.has(c)){u=o==null?void 0:o.skeDrawings.get(c),d=t;break}let s=(b=v.get(i))==null?void 0:b.get(a);if(s!=null&&s.skeDrawings.has(c)){u=s==null?void 0:s.skeDrawings.get(c),d=t;break}}if(u==null)return;let x=0;r===t.ObjectRelativeFromH.COLUMN?x-=u.columnLeft:r===t.ObjectRelativeFromH.MARGIN&&(x-=d),a===t.ObjectRelativeFromH.COLUMN?x+=u.columnLeft:a===t.ObjectRelativeFromH.MARGIN?x+=d:t.ObjectRelativeFromH.PAGE,N(`positionH`,{relativeFrom:a,posOffset:(i??0)-x})}function F(e){var n,i,a,s,c;let l=D.relativeFrom,u=D.posOffset,d=Number(e);if(l===d)return;let f=p.getFocusDrawings();if(f.length===0)return;let{drawingId:g,unitId:_}=f[0],v=h.getUnit(_,t.UniverInstanceType.UNIVER_DOC),y=(n=m.getRenderUnitById(_))==null?void 0:n.with(o.DocSkeletonManagerService).getSkeleton(),b=(i=m.getRenderUnitById(_))==null?void 0:i.with(r.DocSelectionRenderService),x=b==null?void 0:b.getSegment(),S=b==null?void 0:b.getSegmentPage(),C=v==null||(a=v.getSelfOrHeaderFooterModel(x))==null||(a=a.getBody())==null||(a=a.customBlocks)==null?void 0:a.find(e=>e.blockId===g);if(C==null||y==null||b==null)return;let{startIndex:w}=C,T=y.findNodeByCharIndex(w,x,S),E=T==null||(s=T.parent)==null?void 0:s.parent,O=E==null?void 0:E.parent,k=O==null?void 0:O.lines.find(e=>e.paragraphIndex===(E==null?void 0:E.paragraphIndex)&&e.paragraphStart),A=O==null||(c=O.parent)==null?void 0:c.parent;if(T==null||E==null||k==null||O==null||A==null)return;let j=0;l===t.ObjectRelativeFromV.PARAGRAPH?j-=k.top:l===t.ObjectRelativeFromV.LINE?j-=E.top:l===t.ObjectRelativeFromV.PAGE&&(j+=A.marginTop),d===t.ObjectRelativeFromV.PARAGRAPH?j+=k.top:d===t.ObjectRelativeFromV.LINE?j+=E.top:d===t.ObjectRelativeFromV.PAGE&&(j-=A.marginTop),N(`positionV`,{relativeFrom:d,posOffset:(u??0)-j})}function I(e){var n;let r=v==null?void 0:v.getSnapshot(),i=r==null||(n=r.drawings)==null?void 0:n[e.drawingId];if(i==null)return;let{layoutType:a}=i,{positionH:o,positionV:s}=i.docTransform;E(o),O(s),w(a===t.PositionedObjectLayoutType.INLINE),A(s.relativeFrom===t.ObjectRelativeFromV.PARAGRAPH||s.relativeFrom===t.ObjectRelativeFromV.LINE)}function L(){let e=p.getFocusDrawings();e.length!==0&&I(e[0])}function ee(e){A(e),F(String(e?t.ObjectRelativeFromV.PARAGRAPH:t.ObjectRelativeFromV.PAGE))}return(0,d.useEffect)(()=>{L();let e=p.focus$.subscribe(e=>{if(e.length===0){M(!1);return}M(!0),I(e[0])}),t=l.onCommandExecuted(async e=>{e.id===o.RichTextEditingMutation.id&&L()});return()=>{e.unsubscribe(),t.dispose()}},[]),(0,f.jsxs)(`div`,{className:(0,a.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!j}),children:[(0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:u.t(`docs-drawing-ui.image-position.title`)})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:u.t(`docs-drawing-ui.image-position.horizontal`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:u.t(`docs-drawing-ui.image-position.absolutePosition`)}),(0,f.jsx)(a.InputNumber,{min:xe,max:Se,precision:1,disabled:C,value:T.posOffset,onChange:e=>{N(`positionH`,{relativeFrom:T.relativeFrom,posOffset:e})}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:u.t(`docs-drawing-ui.image-position.toTheRightOf`)}),(0,f.jsx)(a.Select,{value:String(T.relativeFrom),disabled:C,options:x,onChange:P})]})]}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:u.t(`docs-drawing-ui.image-position.vertical`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:u.t(`docs-drawing-ui.image-position.absolutePosition`)}),(0,f.jsx)(a.InputNumber,{min:xe,max:Se,precision:1,disabled:C,value:D.posOffset,onChange:e=>{N(`positionV`,{relativeFrom:D.relativeFrom,posOffset:e})}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:u.t(`docs-drawing-ui.image-position.bellow`)}),(0,f.jsx)(a.Select,{disabled:C,value:String(D.relativeFrom),options:S,onChange:F})]})]}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:u.t(`docs-drawing-ui.image-position.options`)})}),(0,f.jsx)(`div`,{children:(0,f.jsx)(a.Checkbox,{disabled:C,checked:k,onChange:ee,children:u.t(`docs-drawing-ui.image-position.moveObjectWithText`)})})]})}function Te(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 Ee={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:a,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 a){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:o.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)}},De={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:a,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 a){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:o.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)}},Oe={id:`doc.command.move-inline-drawing`,type:t.CommandType.COMMAND,handler:(e,n)=>{var a;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=(a=p.getRenderUnitById(c))==null?void 0:a.with(r.DocSelectionRenderService),h=e.get(b),g=p.getRenderUnitById(c),_=g==null?void 0:g.scene,v=g==null?void 0:g.with(o.DocSkeletonManagerService).getSkeleton();if(_==null||m==null)return!1;let y=_.getTransformerByCreate(),x=e.get(t.ICommandService),S=e.get(t.IUniverInstanceService).getUnit(c,t.UniverInstanceType.UNIVER_DOC);if(S==null)return!1;if(f)return h.refreshDrawings(v),y.refreshControls(),!0;let C=[],{drawingId:w}=s,T=Te(u,m.getSegment()??``,d,l,w,S,m);if(T==null||T.length===0)return h.refreshDrawings(v),y.refreshControls(),!1;C.push(...T);let E={id:o.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null}};E.params.actions=C.reduce((e,n)=>t.JSONX.compose(e,n),null);let D=x.syncExecuteCommand(E.id,E.params);return y.refreshControls(),!!D}},ke={id:`doc.command.transform-non-inline-drawing`,type:t.CommandType.COMMAND,handler:(e,n)=>{var a;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=(a=p.getRenderUnitById(c))==null?void 0:a.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 x=[],{drawingId:S}=s,C=Te(d,m.getSegment()??``,f,l,S,y,m);if(C==null)return!1;C.length>0&&x.push(...C);let w=t.JSONX.getInstance(),{drawings:T={}}=y.getSnapshot(),{positionH:E,positionV:D,size:O,angle:k}=T[S].docTransform;if(!t.Tools.diffValue(E,u.positionH)){let e=w.replaceOp([`drawings`,S,`docTransform`,`positionH`],E,u.positionH);x.push(e)}if(!t.Tools.diffValue(D,u.positionV)){let e=w.replaceOp([`drawings`,S,`docTransform`,`positionV`],D,u.positionV);x.push(e)}if(!t.Tools.diffValue(O,u.size)){let e=w.replaceOp([`drawings`,S,`docTransform`,`size`],O,u.size);x.push(e)}if(!t.Tools.diffValue(k,u.angle)){let e=w.replaceOp([`drawings`,S,`docTransform`,`angle`],k,u.angle);x.push(e)}let A={id:o.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:null,debounce:!0}};A.params.actions=x.reduce((e,n)=>t.JSONX.compose(e,n),null);let j=v.syncExecuteCommand(A.id,A.params),M=h.with(o.DocSkeletonManagerService).getSkeleton();return e.get(b).refreshDrawings(M),_.refreshControls(),!!j}},Ae=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?(0,f.jsx)(je,{...e}):null};function je(e){let r=(0,c.useDependency)(t.ICommandService),i=(0,c.useDependency)(t.LocaleService),l=(0,c.useDependency)(s.IDrawingManagerService),u=(0,c.useDependency)(t.IUniverInstanceService),{drawings:p}=e,{unitId:m}=p[0],h=u.getUnit(m,t.UniverInstanceType.UNIVER_DOC),[g,_]=(0,d.useState)(!0),[v,y]=(0,d.useState)(!0),[b,x]=(0,d.useState)(!0),[S,C]=(0,d.useState)(n.TextWrappingStyle.INLINE),[w,T]=(0,d.useState)(``),[E,D]=(0,d.useState)({distT:0,distL:0,distB:0,distR:0}),[O,k]=(0,d.useState)(!0);function A(e){C(e);let t=l.getFocusDrawings();if(t.length===0)return;let{unitId:i,subUnitId:a}=t[0],o=t.map(({unitId:e,subUnitId:t,drawingId:n})=>({unitId:e,subUnitId:t,drawingId:n}));r.executeCommand(n.UpdateDocDrawingWrappingStyleCommand.id,{unitId:i,subUnitId:a,drawings:o,wrappingStyle:e})}function j(e){T(e);let t=l.getFocusDrawings();if(t.length===0)return;let n=t.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));r.executeCommand(De.id,{unitId:t[0].unitId,subUnitId:t[0].unitId,drawings:n,wrapText:e})}function M(e,t){if(e==null)return;let n={...E,[t]:e};D(n);let i=l.getFocusDrawings();if(i.length===0)return;let a=i.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));r.executeCommand(Ee.id,{unitId:i[0].unitId,subUnitId:i[0].unitId,drawings:a,dist:{[t]:e}})}function N(){let e=l.getFocusDrawings();e.length!==0&&P(e[0])}function P(e){var r;let i=h==null||(r=h.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(D({distT:a,distL:o,distB:s,distR:c}),T(d),_(l!==t.PositionedObjectLayoutType.WRAP_SQUARE),l===t.PositionedObjectLayoutType.WRAP_NONE||l===t.PositionedObjectLayoutType.INLINE?y(!0):y(!1),l===t.PositionedObjectLayoutType.WRAP_NONE||l===t.PositionedObjectLayoutType.INLINE||l===t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM?x(!0):x(!1),l===t.PositionedObjectLayoutType.WRAP_NONE)u===t.BooleanNumber.TRUE?C(n.TextWrappingStyle.BEHIND_TEXT):C(n.TextWrappingStyle.IN_FRONT_OF_TEXT);else switch(l){case t.PositionedObjectLayoutType.INLINE:C(n.TextWrappingStyle.INLINE);break;case t.PositionedObjectLayoutType.WRAP_SQUARE:C(n.TextWrappingStyle.WRAP_SQUARE);break;case t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM:C(n.TextWrappingStyle.WRAP_TOP_AND_BOTTOM);break;default:throw Error(`Unsupported layout type: ${l}`)}}return(0,d.useEffect)(()=>{N();let e=l.focus$.subscribe(e=>{if(e.length===0){k(!1);return}k(!0),P(e[0])}),t=r.onCommandExecuted(async e=>{e.id===o.RichTextEditingMutation.id&&N()});return()=>{e.unsubscribe(),t.dispose()}},[]),(0,f.jsxs)(`div`,{className:(0,a.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!O}),children:[(0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.title`)})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.wrappingStyle`)})}),(0,f.jsx)(`div`,{children:(0,f.jsxs)(a.RadioGroup,{value:S,onChange:A,direction:`vertical`,children:[(0,f.jsx)(a.Radio,{value:n.TextWrappingStyle.INLINE,children:i.t(`docs-drawing-ui.image-text-wrap.inline`)}),(0,f.jsx)(a.Radio,{value:n.TextWrappingStyle.WRAP_SQUARE,children:i.t(`docs-drawing-ui.image-text-wrap.square`)}),(0,f.jsx)(a.Radio,{value:n.TextWrappingStyle.WRAP_TOP_AND_BOTTOM,children:i.t(`docs-drawing-ui.image-text-wrap.topAndBottom`)}),(0,f.jsx)(a.Radio,{value:n.TextWrappingStyle.BEHIND_TEXT,children:i.t(`docs-drawing-ui.image-text-wrap.behindText`)}),(0,f.jsx)(a.Radio,{value:n.TextWrappingStyle.IN_FRONT_OF_TEXT,children:i.t(`docs-drawing-ui.image-text-wrap.inFrontText`)})]})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.wrapText`)})}),(0,f.jsx)(`div`,{children:(0,f.jsxs)(a.RadioGroup,{disabled:g,value:w,onChange:j,direction:`horizontal`,children:[(0,f.jsx)(a.Radio,{value:t.WrapTextType.BOTH_SIDES,children:i.t(`docs-drawing-ui.image-text-wrap.bothSide`)}),(0,f.jsx)(a.Radio,{value:t.WrapTextType.LEFT,children:i.t(`docs-drawing-ui.image-text-wrap.leftOnly`)}),(0,f.jsx)(a.Radio,{value:t.WrapTextType.RIGHT,children:i.t(`docs-drawing-ui.image-text-wrap.rightOnly`)})]})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:i.t(`docs-drawing-ui.image-text-wrap.distanceFromText`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.top`)}),(0,f.jsx)(a.InputNumber,{min:0,max:100,disabled:v,precision:1,value:E.distT,onChange:e=>{M(e,`distT`)}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.left`)}),(0,f.jsx)(a.InputNumber,{min:0,max:100,disabled:b,precision:1,value:E.distL,onChange:e=>{M(e,`distL`)}})]})]}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.bottom`)}),(0,f.jsx)(a.InputNumber,{min:0,max:100,disabled:v,precision:1,value:E.distB,onChange:e=>{M(e,`distB`)}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:i.t(`docs-drawing-ui.image-text-wrap.right`)}),(0,f.jsx)(a.InputNumber,{min:0,max:100,disabled:b,precision:1,value:E.distR,onChange:e=>{M(e,`distR`)}})]})]})]})}let Me=()=>{let e=(0,c.useDependency)(s.IDrawingManagerService),t=(0,c.useObservable)(()=>e.focus$,e.getFocusDrawings(),!1,[e]);return!!(t!=null&&t.length)&&(0,f.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,f.jsx)(u.DrawingCommonPanel,{drawings:t,hasAlign:!1,hasCropper:!0,hasGroup:!1,hasTransform:!1}),(0,f.jsx)(Ae,{drawings:t}),(0,f.jsx)(Ce,{drawings:t})]})},Ne=class extends t.Disposable{constructor(e){super(),this._componentManager=e,this._registerComponents()}_registerComponents(){this.disposeWithMe(this._componentManager.register(ee,Me))}};Ne=w([C(0,(0,t.Inject)(c.ComponentManager))],Ne);function Pe(e){if(t.JSONX.isNoop(e)||!Array.isArray(e))return null;let n=e.find(e=>Array.isArray(e)&&(e==null?void 0:e[0])===`drawings`);if(n==null||!Array.isArray(n)||n.length<3||typeof n[1]==`string`&&typeof n[2]!=`object`||Array.isArray(n[1])&&typeof n[1][1]!=`object`)return null;let r=[];if(Array.isArray(n==null?void 0:n[1])){for(let e of n)if(Array.isArray(e)){var i,a;r.push({type:e!=null&&(i=e[1])!=null&&i.i?`add`:`remove`,drawingId:e==null?void 0:e[0],drawing:e==null||(a=e[1])==null?void 0:a.i})}}else{var o,s;r.push({type:(o=n[2])!=null&&o.i?`add`:`remove`,drawingId:n[1],drawing:(s=n[2])==null?void 0:s.i})}return r}function Fe(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 Ie(e,n=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)&&Ie(e,n)}),n}let Le=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!==o.RichTextEditingMutation.id)return;let{unitId:t,actions:n,isSync:r,syncer:i}=e.params,a=Pe(n);if(a!=null)for(let{type:e,drawingId:n,drawing:o}of a)r&&(o==null?void 0:o.unitId)===i||(e===`add`?this._addDrawings(t,[o]):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!==o.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),Fe(r).length>0&&this._updateDrawingsOrder(n);let a=[...Ie(r)];a.length>0&&this._syncDrawingDataFromSnapshot(n,a)})),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(o.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 a=this._renderManagerService.getRenderUnitById(r),s=a==null?void 0:a.scene;if(a==null||s==null)return!1;this._docRefreshDrawingsService.refreshDrawings(a.with(o.DocSkeletonManagerService).getSkeleton()),s.getTransformerByCreate().refreshControls()}))}_preserveWrappingStylePosition(e){if(e.wrappingStyle===n.TextWrappingStyle.INLINE)return;let{unitId:r}=e,a=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_DOC),s=this._renderManagerService.getRenderUnitById(r),c=s==null?void 0:s.with(o.DocSkeletonManagerService),l=c==null?void 0:c.getSkeleton().getSkeletonData(),u=c==null?void 0:c.getViewModel();if(!a||!l||!u)return;let d=u.getEditArea(),{pages:f,skeHeaders:p,skeFooters:m}=l,h=a.getDrawings()??{};e.drawings=e.drawings.map(e=>{let t=h[e.drawingId];if(!t)return e;let n=null;for(let t of f){let{headerId:o,footerId:s,marginTop:c,marginLeft:l,marginBottom:u,pageWidth:f,pageHeight:h}=t;if(d===i.DocumentEditArea.HEADER){var r;let t=(r=p.get(o))==null?void 0:r.get(f);t&&(n=N(t,e.drawingId,t.marginTop,l))}else if(d===i.DocumentEditArea.FOOTER){var a;let t=(a=m.get(s))==null?void 0:a.get(f);t&&(n=N(t,e.drawingId,h-u+t.marginTop,l))}else n=N(t,e.drawingId,c,l);if(n)break}if(!n)return e;let o=t.docTransform.positionH,s=t.docTransform.positionV,{horizontal:c,vertical:l}=P(n,o,s);return{...t,...e,docTransform:{...t.docTransform,...e.docTransform,positionH:{relativeFrom:o.relativeFrom,posOffset:c},positionV:{relativeFrom:s.relativeFrom,posOffset:l}}}})}_addDrawings(e,t){let n=this._drawingManagerService,r=this._docDrawingService,{subUnitId:i,redo:a,objects:o}=this._docDrawingService.getBatchAddOp(t);n.applyJson1(e,i,a),r.applyJson1(e,i,a),n.addNotification(o),r.addNotification(o)}_removeDrawings(e,t){let n=this._drawingManagerService,r=this._docDrawingService,{subUnitId:i,redo:a,objects:o}=this._docDrawingService.getBatchRemoveOp(t.map(t=>({unitId:e,subUnitId:e,drawingId:t})));n.applyJson1(e,i,a),r.applyJson1(e,i,a),n.removeNotification(o),r.removeNotification(o)}_updateDrawingsOrder(e){let 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=a,c=this._docDrawingService.getDrawingData(e,e),l=o!==this._docDrawingService.getDrawingOrder(e,e)||r.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)}),u={...this._drawingManagerService.getDrawingData(e,e)};for(let e of r){let t=s[e];t?u[e]={...t}:delete u[e]}this._docDrawingService.setDrawingData(e,e,s),this._drawingManagerService.setDrawingData(e,e,u),l&&(this._docDrawingService.setDrawingOrder(e,e,o),this._drawingManagerService.setDrawingOrder(e,e,(0,n.getDocDrawingRenderOrder)(o,a)));let d=r.filter(e=>s[e]!=null).map(t=>({unitId:e,subUnitId:e,drawingId:t}));d.length!==0&&(this._docDrawingService.updateNotification(d),this._drawingManagerService.updateNotification(d))}};Le=w([C(0,t.IUniverInstanceService),C(1,t.ICommandService),C(2,s.IDrawingManagerService),C(3,n.IDocDrawingService),C(4,i.IRenderManagerService),C(5,(0,t.Inject)(b))],Le);let Re=e=>{let{floatDomInfos:t,scene:n,offset:r,bound:i}=e,a=i.right-i.left,o=i.bottom-i.top;return(0,f.jsx)(`div`,{className:`univer-absolute univer-left-0 univer-top-0`,children:(0,d.useMemo)(()=>t.map(e=>{let{width:t=0,height:r=0,left:i=0,top:a=0}=e.transform,o=z({left:i,right:i+t,top:a,bottom:a+r},n),s={position$:new l.BehaviorSubject(o),position:o,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,s]}).filter(([e,t])=>!(t.position.endX<0||t.position.endY<0||t.position.startX>a||t.position.startY>o)),[t,n,r,a,o]).map(([e,t])=>(0,f.jsx)(c.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})};function ze(e,t,n){return(0,a.render)((0,f.jsx)((0,c.connectInjector)(Re,n),{...e}),t),()=>(0,a.unmount)(t)}let Be=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=ze({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)}}}))}};Be=w([C(0,(0,t.Inject)(r.DocPrintInterceptorService)),C(1,(0,t.Inject)(u.DrawingRenderService)),C(2,s.IDrawingManagerService),C(3,(0,t.Inject)(c.ComponentManager)),C(4,(0,t.Inject)(t.Injector))],Be);function Ve(e,n){let r=e[n.drawingId];if(r==null){e[n.drawingId]=n;return}n.selectable&&!r.selectable&&(r.selectable=!0,r.transform=n.transform),n.isMultiTransform===t.BooleanNumber.TRUE&&r.transforms.push(n.transform)}function He(e,t){return e===t||JSON.stringify(e)===JSON.stringify(t)}function Ue(e,t){return!e||t.customBlockRenderViewport!=null||!He(e.transform,t.transform)||!He(e.transforms,t.transforms)||e.isMultiTransform!==t.isMultiTransform||e.hidden!==t.hidden||e.behindText!==t.behindText||e.selectable!==t.selectable}function We(e,n){return e.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&(n==null?void 0:n.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE?n:e}var Ge=class{constructor(){y(this,`_generation`,-1),y(this,`_publishedPageCount`,0),y(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=et(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:tt(r,i,a)}};function Ke(e){let{docsLeft:t,docsTop:n,pageOffsetLeft:r,pageOffsetTop:i,clipOffsetLeft:a=0,clipOffsetTop:o=0,page:s}=e,{pageWidth:c,pageHeight:l}=s;if(!(!Number.isFinite(c)||!Number.isFinite(l)||c<=0||l<=0))return{left:t+r+a,top:n+i+o,width:c,height:l}}function qe(e){let{drawing:t,hostPage:n,page:r}=e;if(n==null||t.behindText!==!0||t.transform==null)return r;let{width:i,height:a}=t.transform;if(i==null||a==null)return r;if(i>r.pageWidth||a>r.pageHeight)return n;let o=i/n.pageWidth,s=a/n.pageHeight;return o>=.8&&s>=.8?n:r}function Je(e){let{hostPage:n,positionH:r,width:i}=e;if(r.relativeFrom===t.ObjectRelativeFromH.PAGE)return r.align===t.AlignTypeH.RIGHT?n.pageWidth-i:r.align===t.AlignTypeH.CENTER?n.pageWidth/2-i/2:r.posOffset==null?0:r.posOffset}function Ye(e){let{hostPage:n,positionV:r,height:i}=e;if(r.relativeFrom===t.ObjectRelativeFromV.PAGE)return r.align===t.AlignTypeV.BOTTOM?n.pageHeight-i:r.align===t.AlignTypeV.CENTER?n.pageHeight/2-i/2:r.posOffset==null?0:r.posOffset}function Xe(e){let{page:t,clipPage:n,hostPage:r}=e;if(r!=null&&r===n)return r;if(r==null&&t===n)return t}function Ze(e){let{drawingOrigin:n,hostPage:r}=e;return r!=null||n.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&n.behindDoc===t.BooleanNumber.TRUE}function Qe(e,t,n,r){let a=(0,i.getTableIdAndSliceIndex)(t.tableId).tableId,o=(0,i.getDocsTableRenderViewport)(e,a),s=$e(o)?o.scrollLeft:0;return{left:t.left+r.left-s+r.marginLeft,top:t.top+n.top+r.marginTop}}function $e(e){return e!=null&&(e.leadingInsetLeft??0)+e.contentWidth+(e.trailingInsetRight??0)>e.viewportWidth}function Z(e){var t,n,r;if(e.skeDrawings.size>0||(t=e.notes)!=null&&t.some(e=>Z(e.page)))return!0;let i=!1;return(n=e.skeTables)==null||n.forEach(e=>{e.rows.forEach(e=>{e.cells.forEach(e=>{Z(e)&&(i=!0)})})}),(r=e.skeColumnGroups)==null||r.forEach(e=>{e.columns.forEach(e=>{Z(e.page)&&(i=!0)})}),i}function Q(e){var t,n,r;let i=e.skeDrawings.size;return(t=e.notes)==null||t.forEach(e=>{i+=Q(e.page)}),(n=e.skeTables)==null||n.forEach(e=>{e.rows.forEach(e=>{e.cells.forEach(e=>{i+=Q(e)})})}),(r=e.skeColumnGroups)==null||r.forEach(e=>{e.columns.forEach(e=>{i+=Q(e.page)})}),i}function et(e,t){let n=0;for(let a=0;a<t;a++){var r,i;let t=e.pages[a];n+=Q(t);let o=t.headerId==null||(r=e.skeHeaders.get(t.headerId))==null?void 0:r.get(t.pageWidth);o!=null&&(n+=Q(o));let s=t.footerId==null||(i=e.skeFooters.get(t.footerId))==null?void 0:i.get(t.pageWidth);s!=null&&(n+=Q(s))}return n}function tt(e,t,n){for(let a=t;a<n;a++){var r,i;let t=e.pages[a];if(Z(t))return!0;let n=t.headerId==null||(r=e.skeHeaders.get(t.headerId))==null?void 0:r.get(t.pageWidth);if(n!=null&&Z(n))return!0;let o=t.footerId==null||(i=e.skeFooters.get(t.footerId))==null?void 0:i.get(t.pageWidth);if(o!=null&&Z(o))return!0}return!1}let nt=class extends t.Disposable{constructor(e,t,n,r,a,o,s,c){super(),this._context=e,this._docSkeletonManagerService=t,this._commandService=n,this._editorService=r,this._drawingManagerService=a,this._docRefreshDrawingsService=o,this._univerInstanceService=s,this._lifecycleService=c,y(this,`_liquid`,new i.Liquid),y(this,`_changesetDrawingRefreshScheduled`,!1),y(this,`_publicationTracker`,new Ge),this._initialize(),this._commandExecutedListener()}_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}))),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=[o.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 a=t.id===o.RichTextEditingMutation.id?S(e.actions):null;if((a==null?void 0:a.size)===0)return;if(t.id===o.RichTextEditingMutation.id&&n!=null&&n.fromChangeset){this._scheduleChangesetDrawingRefresh();return}this._refreshCurrentDrawing(a??void 0)}}))}_scheduleChangesetDrawingRefresh(){this._changesetDrawingRefreshScheduled||(this._changesetDrawingRefreshScheduled=!0,queueMicrotask(()=>{queueMicrotask(()=>{this._changesetDrawingRefreshScheduled=!1,!this._disposed&&this._refreshCurrentDrawing()})}))}_refreshCurrentDrawing(e){let t=this._docSkeletonManagerService.getSkeleton();if(t==null)return;let{unitId:n,mainComponent:r}=this._context;if(this._editorService.isEditor(n)){r==null||r.makeDirty();return}this._refreshDrawing(t,e)}_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){let r=e==null?void 0:e.getSkeletonData(),{mainComponent:i,unitId:a}=this._context,o=i;if(!r)return;let{left:s,top:c,pageLayoutType:l,pageMarginLeft:u,pageMarginTop:d}=o;if(s<=-1e4||c<=-1e4)return;let{pages:f,skeHeaders:p,skeFooters:m}=r,h={};this._liquid.reset();for(let e=0,t=f.length;e<t;e++){let t=f[e];this._collectPublishedPageDrawingPositions(a,t,p,m,s,c,h),this._liquid.translatePage(t,l,u,d)}let g=Object.values(h).filter(e=>n==null||n.has(e.drawingId));for(let e of g)e.hidden=!1;let _=this._getStaleNonMultiDrawings(a,h,n),v=g.filter(e=>!e.isMultiTransform).concat(_).filter(e=>Ue(this._drawingManagerService.getDrawingByParam({unitId:a,subUnitId:a,drawingId:e.drawingId}),e));v.length>0&&this._drawingManagerService.refreshTransform(v);let y=n!=null&&[...n].some(e=>{var n,r;return((n=h[e])==null?void 0:n.isMultiTransform)===t.BooleanNumber.TRUE||((r=this._drawingManagerService.getDrawingByParam({unitId:a,subUnitId:a,drawingId:e}))==null?void 0:r.isMultiTransform)===t.BooleanNumber.TRUE});if(n==null||y){let e=Object.values(h).filter(e=>e.isMultiTransform);this._handleMultiDrawingsTransform(e)}}_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(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(f):void 0;if(m!=null){let n=t.pageHeight-t.marginBottom+m.marginTop;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){this._calculateDrawingPosition(e,t,n,r,i,a,o,s,c,l),this._calculateTableCellDrawingPositions(e,t,n,r,i,a,o,c),this._calculateColumnGroupDrawingPositions(e,t,n,r,i,a,o,c)}_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){let{scene:n,unitId:r}=this._context,i=n.getTransformerByCreate();e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);t!=null&&(t.transform=e.transform,t.transforms=e.transforms,t.isMultiTransform=e.isMultiTransform)});let a=[...i.getSelectedObjectMap().keys()],o=Object.values(this._drawingManagerService.getDrawingData(r,r)).filter(e=>e.isMultiTransform===t.BooleanNumber.TRUE);this._drawingManagerService.removeNotification(o),e.length>0&&this._drawingManagerService.addNotification(e);for(let e of a){let t=n.getObject(e);t&&i.setSelectedControl(t)}}_calculateDrawingPosition(e,t,n,r,i,a,o,s,c=!0,l){let{skeDrawings:u}=t,d=this._liquid.x,f=this._liquid.y;this._liquid.translatePagePadding({marginTop:a,marginLeft:o});let p={unitId:e,page:t,docsLeft:n,docsTop:r,pageOffsetLeft:d,pageOffsetTop:f,updateDrawingMap:i,hostPage:s,selectable:c,clipOffset:l};u.forEach(e=>this._collectDrawingPosition(e,p)),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=We(l,(r=this._context.unit)==null||(i=r.getSnapshot)==null||(i=i.call(r).drawings)==null?void 0:i[c]),{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=Ze({drawingOrigin:f,hostPage:n.hostPage}),{isMultiTransform:b=t.BooleanNumber.FALSE}=f,x=qe({drawing:{behindText:y,transform:{width:g,height:h}},hostPage:n.hostPage,page:n.page}),S=Ke({docsLeft:n.docsLeft,docsTop:n.docsTop,pageOffsetLeft:n.pageOffsetLeft,pageOffsetTop:n.pageOffsetTop,clipOffsetLeft:_,clipOffsetTop:v,page:x}),C=f.layoutType===t.PositionedObjectLayoutType.WRAP_NONE?Xe({page:n.page,clipPage:x,hostPage:n.hostPage}):void 0,w=C==null?void 0:Je({hostPage:C,positionH:f.docTransform.positionH,width:g}),T=C==null?void 0:Ye({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};Ve(n.updateDrawingMap,{unitId:n.unitId,subUnitId:n.unitId,drawingId:c,behindText:y,selectable:n.selectable,transform:E,transforms:[E],customBlockRenderViewport:e.customBlockRenderViewport,isMultiTransform:b})}_calculateTableCellDrawingPositions(e,t,n,r,i,a,o,s){var c;(c=t.skeTables)==null||c.forEach(t=>{t.rows.forEach(c=>{c.cells.forEach(l=>{var u,d,f;if((((u=l.skeDrawings)==null?void 0:u.size)??0)===0&&(((d=l.skeTables)==null?void 0:d.size)??0)===0&&(((f=l.skeColumnGroups)==null?void 0:f.size)??0)===0)return;let p=Qe(e,t,c,l),m=a+p.top,h=o+p.left;this._calculateDrawingPosition(e,l,n,r,i,m,h,void 0,s,{left:h,top:m}),this._calculateTableCellDrawingPositions(e,l,n,r,i,m,h,s),this._calculateColumnGroupDrawingPositions(e,l,n,r,i,m,h,s)})})})}_calculateColumnGroupDrawingPositions(e,t,n,r,i,a,o,s){var c;(c=t.skeColumnGroups)==null||c.forEach(t=>{t.columns.forEach(c=>{let l=c.page,u=a+t.top+c.top+l.marginTop,d=o+t.left+c.left+l.marginLeft,f={left:d,top:u};this._calculateDrawingPosition(e,l,n,r,i,u,d,void 0,s,f),this._calculateTableCellDrawingPositions(e,l,n,r,i,u,d,s),this._calculateColumnGroupDrawingPositions(e,l,n,r,i,u,d,s)})})}_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))}};nt=w([C(1,(0,t.Inject)(o.DocSkeletonManagerService)),C(2,t.ICommandService),C(3,r.IEditorService),C(4,s.IDrawingManagerService),C(5,(0,t.Inject)(b)),C(6,t.IUniverInstanceService),C(7,(0,t.Inject)(t.LifecycleService))],nt);function rt(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:Qe(e,i,r,t),row:r,table:i}}function it(e){let{drawing:n,height:r,hostPage:i,page:a,width:o}=e;return n.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&Xe({page:a,clipPage:qe({drawing:{behindText:Ze({drawingOrigin:n,hostPage:i}),transform:{width:o,height:r}},hostPage:i,page:a}),hostPage:i})!=null}let at=class extends t.Disposable{constructor(e,t,n,r){super(),this._commandService=e,this._univerInstanceService=t,this._drawingManagerService=n,this._renderManagerService=r,y(this,`_liquid`,new i.Liquid),y(this,`_listenerOnImageMap`,new Set),y(this,`_transformerCache`,new Map),y(this,`_anchorShape`,void 0),this._init()}_init(){this._listenDrawingFocus()}_listenDrawingFocus(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{if(e.length!==0)for(let t of e){let{unitId:e}=t;this._listenerOnImageMap.has(e)||(this._listenTransformerChange(e),this._listenerOnImageMap.add(e))}}))}_listenTransformerChange(e){var r;let i=(r=this._getSceneAndTransformerByDrawingSearch(e))==null?void 0:r.transformer;if(i==null)return;this.disposeWithMe((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})}})));let a=(0,t.throttle)(this._updateMultipleDrawingDocTransform.bind(this),50);this.disposeWithMe((0,t.toDisposable)(i.changing$.subscribe(e=>{let{objects:n,offsetX:r,offsetY:i}=e;if(n.size>1)a(n);else 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)}}))),this.disposeWithMe((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()})))}_updateMultipleDrawingDocTransform(e){if(e.size<1)return;let t=[],r,i;for(let n of e.values()){let{oKey:e,left:a,top:o,angle:s}=n,{width:c,height:l}=n,u=this._drawingManagerService.getDrawingOKey(e);if(u==null)continue;r??=u.unitId,i??=u.subUnitId;let d=this._transformerCache.get(u.drawingId);if(d==null)continue;let{drawing:f,top:p,left:m,width:h,height:g,angle:_}=d,{width:v,height:y}=this._getPageContentSize(f);if(c=Math.min(c,v),l=Math.min(l,y),(h!==c||g!==l)&&t.push({drawingId:u.drawingId,key:`size`,value:{width:c,height:l}}),_!==s&&t.push({drawingId:u.drawingId,key:`angle`,value:s}),p!==o||m!==a){let e=o-p,n=a-m;e!==0&&t.push({drawingId:u.drawingId,key:`positionV`,value:{relativeFrom:f.docTransform.positionV.relativeFrom,posOffset:f.docTransform.positionV.posOffset+e}}),n!==0&&t.push({drawingId:u.drawingId,key:`positionH`,value:{relativeFrom:f.docTransform.positionH.relativeFrom,posOffset:f.docTransform.positionH.posOffset+n}})}}t.length>0&&r&&i&&this._commandService.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:r,subUnitId:i,drawings:t})}_updateDrawingAnchor(e){if(this._transformerCache.size!==1)return;let t=this._transformerCache.values().next().value,n=e.values().next().value;this._getDrawingAnchor(t.drawing,n)}_updateInlineDrawingAnchor(e,t,n){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 a;let s=this._renderManagerService.getRenderUnitById(e.unitId),c=s==null?void 0:s.with(o.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=(a=this._renderManagerService.getRenderUnitById(e.unitId))==null?void 0:a.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:_},{cursorList:E,contentBoxPointGroup:D}=new r.NodePositionConvertToCursor(w.document.getOffsetConfig(),c).getRangePointData(T,T),{startOffset:O}=(0,r.getOneTextSelectionRange)(E)??{};if(O!=null)return{offset:O,contentBoxPointGroup:D,segmentId:y,segmentPage:v}}_getDrawingAnchor(e,n){var a,s,c,l;let u=this._renderManagerService.getRenderUnitById(e.unitId),d=u==null?void 0:u.with(o.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=(a=this._renderManagerService.getRenderUnitById(e.unitId))==null?void 0:a.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,U=(H==null||(c=H.parent)==null?void 0:c.top)??0,ne=(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||ne==null||W==null)return;this._liquid.reset();let G=W.type===i.DocumentSkeletonPageType.CELL?rt(e.unitId,W):null,re=(G==null?void 0:G.hostPage)??W,ie=re.type,ae=(W.type===i.DocumentSkeletonPageType.HEADER||W.type===i.DocumentSkeletonPageType.FOOTER)&&I>-1?p[I]:void 0,oe=it({drawing:e,height:n.height,hostPage:ae,page:W,width:n.width}),se=this._liquid.x,K=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(se=this._liquid.x,K=this._liquid.y,ie){case i.DocumentSkeletonPageType.HEADER:{var q;let e=(q=m.get(t))==null?void 0:q.get(a);if(e)this._liquid.translatePagePadding({marginTop:e.marginTop,marginLeft:o});else throw Error(`header skeleton not found`);break}case i.DocumentSkeletonPageType.FOOTER:{var ce;let e=(ce=h.get(n))==null?void 0:ce.get(a);if(e)this._liquid.translatePagePadding({marginTop:r-s+e.marginTop,marginLeft:o});else throw Error(`footer skeleton not found`);break}default:this._liquid.translatePagePadding(e);break}break}if(e===re&&(se=this._liquid.x,K=this._liquid.y),this._liquid.translatePagePadding(e),e===re)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 J;P=((J=ne.divides)==null||(J=J[0])==null||(J=J.glyphGroup)==null?void 0:J[0])??P}switch(L.positionH={relativeFrom:j.relativeFrom,posOffset:T-this._liquid.x-C},j.relativeFrom){case t.ObjectRelativeFromH.PAGE:oe&&(L.positionH.posOffset=T-se-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;break}switch(L.positionV={relativeFrom:A.relativeFrom,posOffset:E-this._liquid.y-w},A.relativeFrom){case t.ObjectRelativeFromV.PAGE:L.positionV.posOffset=oe?E-K-w:E-this._liquid.y-w+W.marginTop;break;case t.ObjectRelativeFromV.LINE:L.positionV.posOffset=E-this._liquid.y-w-U-V.top;break;case t.ObjectRelativeFromV.PARAGRAPH:L.positionV.posOffset=E-this._liquid.y-w-U-ne.top;break}if(P==null)return;let Y=d==null?void 0:d.findPositionByGlyph(P,I),le=(0,r.neoGetDocObject)(u);if(Y==null||d==null)return;let X={...Y,isBack:!0},{cursorList:ue}=new r.NodePositionConvertToCursor(le.document.getOffsetConfig(),d).getRangePointData(X,X),{startOffset:de}=(0,r.getOneTextSelectionRange)(ue)??{};if(de!=null)return{offset:de,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(Oe.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:a,width:s,height:c,angle:l}=n,u=r==null?void 0:r.with(o.DocSkeletonManagerService).getSkeleton(),d=u==null?void 0:u.getSkeletonData(),{pages:f}=d??{};if(d==null||r==null||f==null)return{left:i,top:a,width:s,height:c,angle:l};let{mainComponent:p}=r,{top:m,pageLayoutType:h,pageMarginLeft:g,pageMarginTop:_}=p,v=a;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(a,a+c,this._liquid.y+m+r-n,this._liquid.y+m+r+_+i.marginTop)&&(v=a+c/2<this._liquid.y+m+r+_/2?Math.min(a,this._liquid.y+m+r-n-c):Math.max(a,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(new Map([[e.drawingId,n]])):this._commandService.executeCommand(ke.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(o.DocSkeletonManagerService).getSkeleton(),r=n==null?void 0:n.getSkeletonData();if(r==null||t==null)return{width:500,height:500};let{pages:i}=r,a=null;for(let t of i){if(t.isLayoutPlaceholder||t.isMaterializationPlaceholder)continue;let{skeDrawings:n}=t;if(n.has(e.drawingId)){a=t;break}}if(a){let{pageWidth:e,pageHeight:t,marginLeft:n,marginBottom:r,marginRight:i,marginTop:o}=a;return{width:Math.max(500,e-n-i),height:Math.max(500,t-o-r)}}else return{width:500,height:500}}};at=w([C(0,t.ICommandService),C(1,t.IUniverInstanceService),C(2,s.IDrawingManagerService),C(3,i.IRenderManagerService)],at);function ot(e){return e.getContextValue(t.FOCUSING_DOC)&&e.getContextValue(t.FOCUSING_UNIVER_EDITOR)&&e.getContextValue(t.FOCUSING_COMMON_DRAWINGS)}let st={id:F.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:ot,staticParameters:{direction:t.Direction.DOWN}},ct={id:F.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:ot,staticParameters:{direction:t.Direction.UP}},lt={id:F.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:ot,staticParameters:{direction:t.Direction.LEFT}},ut={id:F.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:ot,staticParameters:{direction:t.Direction.RIGHT}},dt={id:p.id,description:`docs-drawing-ui.shortcut.drawing-delete`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,preconditions:ot,binding:c.KeyCode.DELETE,mac:c.KeyCode.BACKSPACE},ft=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(_e)}_initCommands(){[E,j,M,Ee,De,Oe,ke,te,L,R,m,h,F,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[st,ct,lt,ut,dt].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};ft=w([C(0,c.IMenuManagerService),C(1,t.ICommandService),C(2,c.IShortcutService)],ft);var pt=class{constructor(){y(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 mt=class extends t.RxDisposable{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._drawingManagerService=e,this._canvasPopManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._contextService=i,this._drawingAdapterService=a,this._floatingToolbarAdapterService=o,this._commandService=s,this._menuManagerService=c,this._permissionService=l,y(this,`_initImagePopupMenu`,new Set),y(this,`_embeddedRenderUnits`,new Set),y(this,`_popupMenuListeners`,new Map),y(this,`_disposePopupsByUnit`,new Map),y(this,`_popupTargetsByUnit`,new Map),y(this,`_isDrawingPanelOpen`,!1),this._init()}_init(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===R.id&&(this._isDrawingPanelOpen=!0,this._clearPopups(void 0,!0)),e.id===te.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._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.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,o.getDocumentDrawingSegmentId)(r,n);return(0,o.canEditDocumentTargets)(this._permissionService,e,[...(0,o.getDocumentEntityParentPermissionObjectIds)(r,i,`drawing`,n),(0,o.getDocumentEntityPermissionObjectId)(i,`drawing`,n)])}_getDrawingPopupMenuItems(e,r,i,a){let o=this._drawingManagerService.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)??R.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}])}};mt=w([C(0,s.IDrawingManagerService),C(1,(0,t.Inject)(r.DocCanvasPopManagerService)),C(2,i.IRenderManagerService),C(3,t.IUniverInstanceService),C(4,t.IContextService),C(5,n.IDocDrawingAdapterService),C(6,(0,t.Inject)(pt)),C(7,t.ICommandService),C(8,c.IMenuManagerService),C(9,t.IPermissionService)],mt);let $=class extends t.Plugin{constructor(e=be,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{...a}=(0,t.merge)({},be,this._config);this._configService.setConfig(`docs-drawing-ui.config`,a)}onStarting(){[[Ne],[ft],[mt],[at],[Le],[b],[pt],[W],[Be]].forEach(e=>this._injector.add(e)),this._injector.get(Ne)}onReady(){[[T],[nt]].forEach(e=>this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)),this._injector.get(Le),this._injector.get(ft),this._injector.get(at),this._injector.get(Be)}onRendered(){this._injector.get(mt),this._injector.get(W)}};y($,`type`,t.UniverInstanceType.UNIVER_DOC),y($,`pluginName`,`DOC_DRAWING_UI_PLUGIN`),y($,`packageName`,ve),y($,`version`,ye),$=w([(0,t.DependentOn)(o.UniverDocsPlugin,s.UniverDrawingPlugin,i.UniverRenderEnginePlugin,n.UniverDocsDrawingPlugin,r.UniverDocsUIPlugin,u.UniverDrawingUIPlugin),C(1,(0,t.Inject)(t.Injector)),C(2,i.IRenderManagerService),C(3,t.IConfigService)],$),e.ClearDocDrawingTransformerOperation=L,e.DOCS_IMAGE_MENU_ID=K,e.DOCS_SHAPE_BELOW_MENU_ID=ue,e.DOCS_SHAPE_MENU_ID=X,e.DeleteDocDrawingsCommand=p,e.DocDrawingFloatingToolbarAdapterService=pt,e.DocDrawingPosition=Ce,e.DocDrawingTextWrap=Ae,Object.defineProperty(e,"DocFloatDomController",{enumerable:!0,get:function(){return W}}),e.DocsDrawingUIMenuSchema=_e,e.EditDocDrawingOperation=R,e.GroupDocDrawingCommand=m,e.InsertDocEllipseShapeCommand=M,e.InsertDocImageCommand=E,e.InsertDocRectangleShapeCommand=j,e.MoveDocDrawingsCommand=F,e.SidebarDocDrawingOperation=te,e.UngroupDocDrawingCommand=h,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=new Map,d=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,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 k(e){if(!Array.isArray(e)||e.length===0)return null;let n=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 A(e,t){return function(n,r){t(n,r,e)}}function j(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 M=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`,new WeakMap),E(this,`_editableEventedStates`,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)?[]:O(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 _=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&&(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=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));return}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??=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=k((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=e.flatMap(e=>{var n,r;let i=(0,a.getDocumentDrawingSegmentId)(t,e.drawingId),o=(n=t.getSelfOrHeaderFooterModel(i))==null?void 0:n.getBody(),s=o==null||(r=o.customBlocks)==null?void 0:r.find(t=>t.blockId===e.drawingId);return s?[{startOffset:s.startIndex,endOffset:s.startIndex+1,segmentId:i}]:[]});this._docSelectionManagerService.replaceDocRanges(n)}};M=j([A(1,t.ICommandService),A(2,(0,t.Inject)(a.DocSelectionManagerService)),A(3,i.IRenderManagerService),A(4,t.IImageIoService),A(5,n.IDocDrawingService),A(6,s.IDrawingManagerService),A(7,t.IPermissionService),A(8,t.IContextService),A(9,c.IMessageService),A(10,(0,t.Inject)(t.LocaleService)),A(11,(0,t.Inject)(r.DocSelectionRenderService)),A(12,(0,t.Inject)(D)),A(13,c.ILocalFileService)],M);let N={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(M).insertDocImage())??!1}},P=`#3A60F7`,ee=`#1D3EA6`;function F(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="${P}" stroke="${ee}" stroke-width="4" />`:`<rect x="4" y="4" width="${t-8}" height="${n-8}" rx="14" fill="${P}" stroke="${ee}" stroke-width="4" />`}</svg>`;return`data:image/svg+xml;utf8,${encodeURIComponent(r)}`}function I(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:F(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 L=I(`rectangle`,144,96,`doc.command.insert-float-shape.rectangle`),R=I(`ellipse`,112,112,`doc.command.insert-float-shape.ellipse`);function z(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=z(n,t,n.marginTop,n.marginLeft);if(e)return e}return null}function te(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 B={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}:V(_,r);if(s.previewOnly)return null;let{anchor:c}=s,l=c==null?{horizontal:a.posOffset??0,vertical:o.posOffset??0}:te(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 V(e,t){let n=!1;for(let a of e.pages){var r,i;let o=z(a,t,a.marginTop,a.marginLeft),s=a.headerId==null||(r=e.skeHeaders.get(a.headerId))==null?void 0:r.get(a.pageWidth),c=s==null?null:z(s,t,s.marginTop,a.marginLeft),l=a.footerId==null||(i=e.skeFooters.get(a.footerId))==null?void 0:i.get(a.pageWidth),u=l==null?0:a.pageHeight-a.marginBottom+l.marginTop,d=l==null?null:z(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 H={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}},U=`COMPONENT_DOC_DRAWING_PANEL`,W={id:`sidebar.operation.doc-image`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=e.get(c.ISidebarService),i=e.get(t.LocaleService),a=e.get(s.IDrawingManagerService);switch(n.value){case`open`:r.open({header:{title:i.t(`docs-drawing-ui.panel.title`)},children:{label:U},onClose:()=>{a.focusDrawing(null)},width:360});break;default:r.close()}return!0}},G={id:`doc.operation.edit-doc-image`,type:t.CommandType.OPERATION,handler:(e,n)=>{let r=e.get(s.IDrawingManagerService),i=e.get(t.ICommandService);return n!=null&&(r.focusDrawing([n]),i.executeCommand(W.id,{value:`open`}),!0)}};function K(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 K({top:n,left:r,bottom:n+a,right:r+i},t.scene,s,o)}function ne(e,t){let n=re(t.customBlockRenderViewport);return n?{...e,customBlockRenderViewport:n}:e}function re(e){let t={};ie(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 ie(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`,new Map),E(this,`_pendingRuntimeGeometry`,new Map),E(this,`_pendingRuntimeGeometryInsert`,new Map),E(this,`_pendingRuntimeGeometryRefresh`,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=new Set;for(let i of e)if(X(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(()=>{if(!this._hasPendingRuntimeGeometryForUnit(e)){this._disposePendingRuntimeGeometryRefresh(e);return}this._docRefreshDrawingsService.refreshDrawings(r)});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=X(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=re(u.customBlockRenderViewport);ae(i,u,d,void 0,s);let f=d||s?ce(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:se(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:ne(void 0,o),unitId:e});let y=i.onTransformChange$.subscribeEvent(()=>{let e=q(i,a.renderUnit);h.next(e)}),b=le((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||X(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=re(r.customBlockRenderViewport);if(i&&(n.runtimeViewport=i),ae(n.rect,r,n.runtimeViewport,n.runtimeTransform,n.preserveRuntimeGeometry)){(i||n.preserveRuntimeGeometry)&&(n.runtimeTransform=ce(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:ne(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=j([A(0,i.IRenderManagerService),A(1,s.IDrawingManagerService),A(2,(0,t.Inject)(u.DrawingRenderService)),A(3,(0,t.Inject)(c.CanvasFloatDomService)),A(4,t.IUniverInstanceService),A(5,t.ICommandService),A(6,(0,t.Inject)(D))],Y);function ae(e,t,n,r,i){let a=oe(t,e,n,r,i);return a?(e.transformByState(a),!0):!1}function oe(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 X(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 se(e){if(!X(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 ce(e){return{angle:e.angle,height:e.height,left:e.left,top:e.top,width:e.width}}function le(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 ue=`doc.menu.image`,Z=N.id,de=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 fe(e){return{id:ue,commandId:Z,type:c.MenuItemType.BUTTON,icon:`AddImageIcon`,tooltip:`docs-drawing-ui.title`,disabled$:de(e),hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function pe(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 me(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 he=`doc.command.menu-insert-shape`,ge=`doc.command.menu-insert-shape.below`;function _e(e){return{id:he,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 ve(e){return{id:ge,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 ye(e){return{id:L.id,title:`docs-drawing-ui.shape.insert.rectangle`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function be(e){return{id:R.id,title:`docs-drawing-ui.shape.insert.ellipse`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_DOC)}}function xe(e){return{id:`${L.id}.below`,commandId:L.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 Se(e){return{id:`${R.id}.below`,commandId:R.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 Ce={[c.RibbonInsertGroup.MEDIA]:{[ue]:{order:0,gridLayout:{row:1,column:4},menuItemFactory:fe}},[c.ContextMenuPosition.PARAGRAPH]:{[c.ContextMenuGroup.LAYOUT]:{[r.INSERT_BELLOW_MENU_ID]:{[Z]:{order:5,menuItemFactory:pe}}},[r.EMPTY_PARAGRAPH_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[Z]:{order:5,menuItemFactory:pe}}},[r.DOC_CONTENT_INSERT_MENU_ID]:{[c.ContextMenuGroup.LAYOUT]:{[Z]:{order:5,menuItemFactory:pe}}},[r.DOC_PARAGRAPH_T_INSERT_MENU_ID]:{insert:{[Z]:{order:1,menuItemFactory:pe},[he]:{order:2,menuItemFactory:_e}}},[r.DOC_PARAGRAPH_T_INSERT_BELOW_MENU_ID]:{insert:{[`${Z}.below`]:{order:1,menuItemFactory:me},[ge]:{order:2,menuItemFactory:ve}}},[he]:{shapes:{order:0,[L.id]:{order:0,menuItemFactory:ye},[R.id]:{order:1,menuItemFactory:be}}},[ge]:{shapes:{order:0,[`${L.id}.below`]:{order:0,menuItemFactory:xe},[`${R.id}.below`]:{order:1,menuItemFactory:Se}}}}};var we=`@univerjs/docs-drawing-ui`,Te=`1.0.0`;let Ee=`docs-drawing-ui.config`,De=`DOC_DRAWING_UI_PLUGIN`,Oe={};function ke(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 Ae(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 je(e,n=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)&&je(e,n)}),n}let Me=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=ke(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),Ae(r).length>0&&this._updateDrawingsOrder(n);let o=[...je(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,o=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_DOC),s=this._renderManagerService.getRenderUnitById(r),c=s==null?void 0:s.with(a.DocSkeletonManagerService),l=c==null?void 0:c.getSkeleton().getSkeletonData(),u=c==null?void 0:c.getViewModel();if(!o||!l||!u)return;let d=u.getEditArea(),{pages:f,skeHeaders:p,skeFooters:m}=l,h=o.getDrawings()??{};e.drawings=e.drawings.map(e=>{let t=h[e.drawingId];if(!t)return e;let n=null;for(let t of f){let{headerId:o,footerId:s,marginTop:c,marginLeft:l,marginBottom:u,pageWidth:f,pageHeight:h}=t;if(d===i.DocumentEditArea.HEADER){var r;let t=(r=p.get(o))==null?void 0:r.get(f);t&&(n=z(t,e.drawingId,t.marginTop,l))}else if(d===i.DocumentEditArea.FOOTER){var a;let t=(a=m.get(s))==null?void 0:a.get(f);t&&(n=z(t,e.drawingId,h-u+t.marginTop,l))}else n=z(t,e.drawingId,c,l);if(n)break}if(!n)return e;let o=t.docTransform.positionH,s=t.docTransform.positionV,{horizontal:c,vertical:l}=te(n,o,s);return{...t,...e,docTransform:{...t.docTransform,...e.docTransform,positionH:{relativeFrom:o.relativeFrom,posOffset:c},positionV:{relativeFrom:s.relativeFrom,posOffset:l}}}})}_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=[...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];t?m[e]={...t}: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 h=d.filter(e=>s[e]!=null).map(t=>({unitId:e,subUnitId:e,drawingId:t}));h.length!==0&&(p&&this._drawingManagerService.addNotification(Object.values(m)),this._docDrawingService.updateNotification(h),this._drawingManagerService.updateNotification(h))}};Me=j([A(0,t.IUniverInstanceService),A(1,t.ICommandService),A(2,s.IDrawingManagerService),A(3,n.IDocDrawingService),A(4,i.IRenderManagerService),A(5,(0,t.Inject)(D))],Me);let Ne=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=K({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(0,f.jsx)(`div`,{className:`univer-absolute univer-left-0 univer-top-0`,children:s.map(([e,t])=>(0,f.jsx)(c.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})};function Pe(e,t,n){let r=(0,c.connectInjector)(Ne,n);return(0,o.render)((0,f.jsx)(r,{...e}),t),()=>(0,o.unmount)(t)}let Fe=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=Pe({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)}}}))}};Fe=j([A(0,(0,t.Inject)(r.DocPrintInterceptorService)),A(1,(0,t.Inject)(u.DrawingRenderService)),A(2,s.IDrawingManagerService),A(3,(0,t.Inject)(c.ComponentManager)),A(4,(0,t.Inject)(t.Injector))],Fe);function Ie(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 Le={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)}},Re={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)}},ze={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=Ie(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}},Be={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=Ie(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 Ve(e,n){let r=e[n.drawingId];if(r==null){e[n.drawingId]=n;return}n.selectable&&!r.selectable&&(r.selectable=!0,r.transform=n.transform),n.isMultiTransform===t.BooleanNumber.TRUE&&r.transforms.push(n.transform)}function He(e,t){return e===t||JSON.stringify(e)===JSON.stringify(t)}function Ue(e,t){return!e||t.customBlockRenderViewport!=null||!He(e.transform,t.transform)||!He(e.transforms,t.transforms)||e.isMultiTransform!==t.isMultiTransform||e.hidden!==t.hidden||e.behindText!==t.behindText||e.selectable!==t.selectable}function We(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 Ge=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=nt(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:rt(r,i,a)}};function Ke(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 qe(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 Je(e){let{hostPage:n,positionH:r,width:i}=e;if(r.relativeFrom===t.ObjectRelativeFromH.PAGE)return r.align===t.AlignTypeH.RIGHT?n.pageWidth-i:r.align===t.AlignTypeH.CENTER?n.pageWidth/2-i/2:r.posOffset==null?0:r.posOffset}function Ye(e){let{hostPage:n,positionV:r,height:i}=e;if(r.relativeFrom===t.ObjectRelativeFromV.PAGE)return r.align===t.AlignTypeV.BOTTOM?n.pageHeight-i:r.align===t.AlignTypeV.CENTER?n.pageHeight/2-i/2:r.posOffset==null?0:r.posOffset}function Xe(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 Ze(e){let{drawingOrigin:n,hostPage:r}=e;return r!=null||n.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&n.behindDoc===t.BooleanNumber.TRUE}function Qe(e,t,n,r){let a=(0,i.getTableIdAndSliceIndex)(t.tableId).tableId,o=(0,i.getDocsTableRenderViewport)(e,a),s=$e(o)?o.scrollLeft:0;return{left:t.left+r.left-s+r.marginLeft,top:t.top+n.top+r.marginTop}}function $e(e){return e!=null&&(e.leadingInsetLeft??0)+e.contentWidth+(e.trailingInsetRight??0)>e.viewportWidth}function et(e){var t,n,r;if(e.skeDrawings.size>0||(t=e.notes)!=null&&t.some(e=>et(e.page)))return!0;let i=!1;return(n=e.skeTables)==null||n.forEach(e=>{e.rows.forEach(e=>{e.cells.forEach(e=>{et(e)&&(i=!0)})})}),(r=e.skeColumnGroups)==null||r.forEach(e=>{e.columns.forEach(e=>{et(e.page)&&(i=!0)})}),i}function tt(e){var t,n,r;let i=e.skeDrawings.size;return(t=e.notes)==null||t.forEach(e=>{i+=tt(e.page)}),(n=e.skeTables)==null||n.forEach(e=>{e.rows.forEach(e=>{e.cells.forEach(e=>{i+=tt(e)})})}),(r=e.skeColumnGroups)==null||r.forEach(e=>{e.columns.forEach(e=>{i+=tt(e.page)})}),i}function nt(e,t){let n=0;for(let a=0;a<t;a++){var r,i;let t=e.pages[a];n+=tt(t);let o=t.headerId==null||(r=e.skeHeaders.get(t.headerId))==null?void 0:r.get(t.pageWidth);o!=null&&(n+=tt(o));let s=t.footerId==null||(i=e.skeFooters.get(t.footerId))==null?void 0:i.get(t.pageWidth);s!=null&&(n+=tt(s))}return n}function rt(e,t,n){for(let a=t;a<n;a++){var r,i;let t=e.pages[a];if(et(t))return!0;let n=t.headerId==null||(r=e.skeHeaders.get(t.headerId))==null?void 0:r.get(t.pageWidth);if(n!=null&&et(n))return!0;let o=t.footerId==null||(i=e.skeFooters.get(t.footerId))==null?void 0:i.get(t.pageWidth);if(o!=null&&et(o))return!0}return!1}let it=class extends t.Disposable{constructor(e,t,n,r,a,o,s,c){super(),this._context=e,this._docSkeletonManagerService=t,this._commandService=n,this._editorService=r,this._drawingManagerService=a,this._docRefreshDrawingsService=o,this._univerInstanceService=s,this._lifecycleService=c,E(this,`_liquid`,new i.Liquid),E(this,`_changesetDrawingRefreshScheduled`,!1),E(this,`_publicationTracker`,new Ge),this._initialize(),this._commandExecutedListener()}_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?k(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)}}))}_scheduleChangesetDrawingRefresh(){this._changesetDrawingRefreshScheduled||(this._changesetDrawingRefreshScheduled=!0,queueMicrotask(()=>{queueMicrotask(()=>{this._changesetDrawingRefreshScheduled=!1,!this._disposed&&this._refreshCurrentDrawing()})}))}_refreshCurrentDrawing(e){let t=this._docSkeletonManagerService.getSkeleton();if(t==null)return;let{unitId:n,mainComponent:r}=this._context;if(this._editorService.isEditor(n)){r==null||r.makeDirty();return}this._refreshDrawing(t,e)}_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){let r=e==null?void 0:e.getSkeletonData(),{mainComponent:i,unitId:a}=this._context,o=i;if(!r)return;let{left:s,top:c,pageLayoutType:l,pageMarginLeft:u,pageMarginTop:d}=o;if(s<=-1e4||c<=-1e4)return;let{pages:f,skeHeaders:p,skeFooters:m}=r,h={};this._liquid.reset();for(let e=0,t=f.length;e<t;e++){let t=f[e];this._collectPublishedPageDrawingPositions(a,t,p,m,s,c,h),this._liquid.translatePage(t,l,u,d)}let g=this._includeGroupChildren(n),_=Object.values(h).filter(e=>g==null||g.has(e.drawingId));for(let e of _)e.hidden=!1;let v=this._getStaleNonMultiDrawings(a,h,g),y=_.filter(e=>!e.isMultiTransform).concat(v).filter(e=>Ue(this._drawingManagerService.getDrawingByParam({unitId:a,subUnitId:a,drawingId:e.drawingId}),e));y.length>0&&this._drawingManagerService.refreshTransform(y);let b=g!=null&&[...g].some(e=>{var n,r;return((n=h[e])==null?void 0:n.isMultiTransform)===t.BooleanNumber.TRUE||((r=this._drawingManagerService.getDrawingByParam({unitId:a,subUnitId:a,drawingId:e}))==null?void 0:r.isMultiTransform)===t.BooleanNumber.TRUE});if(g==null||b){let e=Object.values(h).filter(e=>e.isMultiTransform);this._handleMultiDrawingsTransform(e)}}_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(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(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=Ke({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){let{scene:n,unitId:r}=this._context,i=n.getTransformerByCreate();e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);t!=null&&Object.assign(t,e)});let a=[...i.getSelectedObjectMap().keys()],o=Object.values(this._drawingManagerService.getDrawingData(r,r)).filter(e=>e.isMultiTransform===t.BooleanNumber.TRUE);this._drawingManagerService.removeNotification(o),e.length>0&&this._drawingManagerService.addNotification(e);for(let e of a){let t=n.getObject(e);t&&i.setSelectedControl(t)}}_calculateDrawingPosition(e,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=We(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=Ze({drawingOrigin:f,hostPage:n.hostPage}),{isMultiTransform:b=t.BooleanNumber.FALSE}=f,x=qe({drawing:{behindText:y,transform:{width:g,height:h}},hostPage:n.hostPage,page:n.page}),S=Ke({docsLeft:n.docsLeft,docsTop:n.docsTop,pageOffsetLeft:n.pageOffsetLeft,pageOffsetTop:n.pageOffsetTop,clipOffsetLeft:_,clipOffsetTop:v,page:x,drawingLayoutType:f.layoutType,overflowClipBounds:n.overflowClipBounds}),C=Xe({page:n.page,clipPage:x,hostPage:n.hostPage,drawingLayoutType:f.layoutType}),w=C==null?void 0:Je({hostPage:C,positionH:f.docTransform.positionH,width:g}),T=C==null?void 0:Ye({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};Ve(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,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};Ve(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=Qe(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))}};it=j([A(1,(0,t.Inject)(a.DocSkeletonManagerService)),A(2,t.ICommandService),A(3,r.IEditorService),A(4,s.IDrawingManagerService),A(5,(0,t.Inject)(D)),A(6,t.IUniverInstanceService),A(7,(0,t.Inject)(t.LifecycleService))],it);function at(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:Qe(e,i,r,t),row:r,table:i}}function ot(e){let{drawing:n,height:r,hostPage:i,page:a,width:o}=e;return n.layoutType===t.PositionedObjectLayoutType.WRAP_NONE&&Xe({page:a,clipPage:qe({drawing:{behindText:Ze({drawingOrigin:n,hostPage:i}),transform:{width:o,height:r}},hostPage:i,page:a}),hostPage:i})!=null}let st=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`,new Set),E(this,`_transformerCache`,new Map),E(this,`_anchorShape`,void 0),this._init()}_init(){this._listenDrawingFocus()}_listenDrawingFocus(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{if(e.length!==0)for(let t of e){let{unitId:e}=t;this._listenerOnImageMap.has(e)||(this._listenTransformerChange(e),this._listenerOnImageMap.add(e))}}))}_listenTransformerChange(e){var r;let i=(r=this._getSceneAndTransformerByDrawingSearch(e))==null?void 0:r.transformer;if(i==null)return;this.disposeWithMe((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})}})));let a=(0,t.throttle)(this._updateMultipleDrawingDocTransform.bind(this),50);this.disposeWithMe((0,t.toDisposable)(i.changing$.subscribe(e=>{let{objects:n,offsetX:r,offsetY:i}=e;if(n.size>1)a(n);else 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)}}))),this.disposeWithMe((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()})))}_updateMultipleDrawingDocTransform(e){if(e.size<1)return;let t=[],r,i;for(let n of e.values()){let{oKey:e,left:a,top:o,angle:s}=n,{width:c,height:l}=n,u=this._drawingManagerService.getDrawingOKey(e);if(u==null)continue;r??=u.unitId,i??=u.subUnitId;let d=this._transformerCache.get(u.drawingId);if(d==null)continue;let{drawing:f,top:p,left:m,width:h,height:g,angle:_}=d,{width:v,height:y}=this._getPageContentSize(f);if(c=Math.min(c,v),l=Math.min(l,y),(h!==c||g!==l)&&t.push({drawingId:u.drawingId,key:`size`,value:{width:c,height:l}}),_!==s&&t.push({drawingId:u.drawingId,key:`angle`,value:s}),p!==o||m!==a){let e=o-p,n=a-m;e!==0&&t.push({drawingId:u.drawingId,key:`positionV`,value:{relativeFrom:f.docTransform.positionV.relativeFrom,posOffset:f.docTransform.positionV.posOffset+e}}),n!==0&&t.push({drawingId:u.drawingId,key:`positionH`,value:{relativeFrom:f.docTransform.positionH.relativeFrom,posOffset:f.docTransform.positionH.posOffset+n}})}}t.length>0&&r&&i&&this._commandService.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:r,subUnitId:i,drawings:t})}_updateDrawingAnchor(e){if(this._transformerCache.size!==1)return;let t=this._transformerCache.values().next().value,n=e.values().next().value;this._getDrawingAnchor(t.drawing,n)}_updateInlineDrawingAnchor(e,t,n){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,ee=``,F=-1,I={...e.docTransform,size:{width:O,height:k},angle:D},{x:L,y:R}=_.getViewportScrollXY(y),z=this._getTransformCoordForDocumentOffset(v,y,T-L,E-R);if(z==null)return;let te=(o=this._renderManagerService.getRenderUnitById(e.unitId))==null?void 0:o.with(r.DocSelectionRenderService);if(te==null)return;let B=d==null?void 0:d.findNodeByCoord(z,b,x,S,{strict:!1,segmentId:te.getSegment(),segmentPage:te.getSegmentPage()});if(B){let{node:e,segmentPage:t,segmentId:n}=B;P=e,F=t,ee=n}if(P==null)return;let V=(s=P.parent)==null?void 0:s.parent,H=V==null?void 0:V.parent,U=(H==null||(c=H.parent)==null?void 0:c.top)??0,W=(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]),G=H==null||(l=H.parent)==null?void 0:l.parent;if(V==null||H==null||W==null||G==null)return;this._liquid.reset();let K=G.type===i.DocumentSkeletonPageType.CELL?at(e.unitId,G):null,q=(K==null?void 0:K.hostPage)??G,ne=q.type,re=(G.type===i.DocumentSkeletonPageType.HEADER||G.type===i.DocumentSkeletonPageType.FOOTER)&&F>-1?p[F]:void 0,J=ot({drawing:e,height:n.height,hostPage:re,page:G,width:n.width}),ie=this._liquid.x,Y=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(F>-1&&c===F){switch(ie=this._liquid.x,Y=this._liquid.y,ne){case i.DocumentSkeletonPageType.HEADER:{var ae;let e=(ae=m.get(t))==null?void 0:ae.get(a);if(e)this._liquid.translatePagePadding({marginTop:e.marginTop,marginLeft:o});else throw Error(`header skeleton not found`);break}case i.DocumentSkeletonPageType.FOOTER:{var oe;let e=(oe=h.get(n))==null?void 0:oe.get(a);if(e)this._liquid.translatePagePadding({marginTop:r-s+e.marginTop,marginLeft:o});else throw Error(`footer skeleton not found`);break}default:this._liquid.translatePagePadding(e)}break}if(e===q&&(ie=this._liquid.x,Y=this._liquid.y),this._liquid.translatePagePadding(e),e===q)break;this._liquid.restorePagePadding(e),this._liquid.translatePage(e,b,x,S)}if(K&&this._liquid.translate(K.offset.left,K.offset.top),A.relativeFrom===t.ObjectRelativeFromV.LINE)P=V.divides[0].glyphGroup[0];else{var X;P=((X=W.divides)==null||(X=X[0])==null||(X=X.glyphGroup)==null?void 0:X[0])??P}switch(I.positionH={relativeFrom:j.relativeFrom,posOffset:T-this._liquid.x-C},j.relativeFrom){case t.ObjectRelativeFromH.PAGE:J&&(I.positionH.posOffset=T-ie-C);break;case t.ObjectRelativeFromH.MARGIN:I.positionH.posOffset=T-this._liquid.x-C-G.marginLeft;break;case t.ObjectRelativeFromH.COLUMN:I.positionH.posOffset=T-this._liquid.x-C-H.left}switch(I.positionV={relativeFrom:A.relativeFrom,posOffset:E-this._liquid.y-w},A.relativeFrom){case t.ObjectRelativeFromV.PAGE:I.positionV.posOffset=J?E-Y-w:E-this._liquid.y-w+G.marginTop;break;case t.ObjectRelativeFromV.LINE:I.positionV.posOffset=E-this._liquid.y-w-U-V.top;break;case t.ObjectRelativeFromV.PARAGRAPH:I.positionV.posOffset=E-this._liquid.y-w-U-W.top}if(P==null)return;let se=d==null?void 0:d.findPositionByGlyph(P,F),ce=(0,r.neoGetDocObject)(u);if(se==null||d==null)return;let le={...se,isBack:!0},ue=ce.document.getOffsetConfig(),{cursorList:Z}=new r.NodePositionConvertToCursor(ue,d).getRangePointData(le,le),{startOffset:de}=(0,r.getOneTextSelectionRange)(Z)??{};if(de!=null)return{offset:de,docTransform:I,segmentId:ee,segmentPage:F}}_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(ze.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(new Map([[e.drawingId,n]])):this._commandService.executeCommand(Be.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}}};st=j([A(0,t.ICommandService),A(1,t.IUniverInstanceService),A(2,s.IDrawingManagerService),A(3,i.IRenderManagerService)],st);function ct({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 ft(u.current)},[n,r]),lt(r,`${i}`,{defIds:r.defIds,idSuffix:l},{ref:u,className:c,...s},o)}function lt(e,t,n,r,i){return(0,d.createElement)(e.tag,{key:t,...ut(e,n,i),...r},(dt(e,n).children||[]).map((r,a)=>lt(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function ut(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?r:(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 dt(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 ft(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:pt(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&&(mt(e.element.style,`stroke-width`,e.appliedStrokeWidth,e.strokeWidth.priority,e.strokeWidth),!e.hadStyleAttribute&&e.element.style.length===0&&e.element.removeAttribute(`style`))})}}function pt(e,t){return{priority:e.getPropertyPriority(t),value:e.getPropertyValue(t)}}function mt(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))}ct.displayName=`UniverIcon`;let ht={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`}}]},gt=(0,d.forwardRef)(function(e,t){return(0,d.createElement)(ct,Object.assign({},e,{id:`check-mark-icon`,ref:t,icon:ht}))});gt.displayName=`CheckMarkIcon`;function _t(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).scene.getTransformerByCreate(),y=[{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)}],b=[{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)}],[x,S]=(0,d.useState)(!0),[C,w]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0}),[T,E]=(0,d.useState)({relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0}),[D,O]=(0,d.useState)(!0),[k,A]=(0,d.useState)(!0);function j(e,t){var i;let a=u.getFocusDrawings();if(a.length===0)return;let s=a.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));o.executeCommand(n.UpdateDrawingDocTransformCommand.id,{unitId:a[0].unitId,subUnitId:a[0].subUnitId,drawings:s.map(n=>({drawingId:n.drawingId,key:e,value:t}))});let c=(i=f.getRenderUnitById(h))==null?void 0:i.with(r.DocSelectionRenderService);c&&c.blur(),v.refreshControls()}function M(e){var n;let r=C.relativeFrom,i=C.posOffset,o=[t.ObjectRelativeFromH.COLUMN,t.ObjectRelativeFromH.PAGE,t.ObjectRelativeFromH.MARGIN].find(t=>String(t)===e);if(o==null||r===o)return;let s=u.getFocusDrawings();if(s.length===0)return;let c=s[0].drawingId,l=s[0].unitId,d=null,p=0,m=(n=f.getRenderUnitById(l))==null?void 0:n.with(a.DocSkeletonManagerService).getSkeleton(),h=m==null?void 0:m.getSkeletonData();if(h==null)return;let{pages:g,skeHeaders:_,skeFooters:v}=h;for(let e of g){var y,b;let{marginLeft:t,skeDrawings:n,headerId:r,footerId:i,pageWidth:a}=e;if(n.has(c)){d=n.get(c),p=t;break}let o=(y=_.get(r))==null?void 0:y.get(a);if(o!=null&&o.skeDrawings.has(c)){d=o==null?void 0:o.skeDrawings.get(c),p=t;break}let s=(b=v.get(i))==null?void 0:b.get(a);if(s!=null&&s.skeDrawings.has(c)){d=s==null?void 0:s.skeDrawings.get(c),p=t;break}}if(d==null)return;let x=0;r===t.ObjectRelativeFromH.COLUMN?x-=d.columnLeft:r===t.ObjectRelativeFromH.MARGIN&&(x-=p),o===t.ObjectRelativeFromH.COLUMN?x+=d.columnLeft:o===t.ObjectRelativeFromH.MARGIN?x+=p:t.ObjectRelativeFromH.PAGE,j(`positionH`,{relativeFrom:o,posOffset:(i??0)-x})}function N(e){var n,i,o,s,c;let l=T.relativeFrom,d=T.posOffset,m=[t.ObjectRelativeFromV.LINE,t.ObjectRelativeFromV.PAGE,t.ObjectRelativeFromV.MARGIN,t.ObjectRelativeFromV.PARAGRAPH].find(t=>String(t)===e);if(m==null||l===m)return;let h=u.getFocusDrawings();if(h.length===0)return;let{drawingId:g,unitId:_}=h[0],v=p.getUnit(_,t.UniverInstanceType.UNIVER_DOC),y=(n=f.getRenderUnitById(_))==null?void 0:n.with(a.DocSkeletonManagerService).getSkeleton(),b=(i=f.getRenderUnitById(_))==null?void 0:i.with(r.DocSelectionRenderService),x=b==null?void 0:b.getSegment(),S=b==null?void 0:b.getSegmentPage(),C=v==null||(o=v.getSelfOrHeaderFooterModel(x))==null||(o=o.getBody())==null||(o=o.customBlocks)==null?void 0:o.find(e=>e.blockId===g);if(C==null||y==null||b==null)return;let{startIndex:w}=C,E=y.findNodeByCharIndex(w,x,S),D=E==null||(s=E.parent)==null?void 0:s.parent,O=D==null?void 0:D.parent,k=O==null?void 0:O.lines.find(e=>e.paragraphIndex===(D==null?void 0:D.paragraphIndex)&&e.paragraphStart),A=O==null||(c=O.parent)==null?void 0:c.parent;if(E==null||D==null||k==null||O==null||A==null)return;let M=0;l===t.ObjectRelativeFromV.PARAGRAPH?M-=k.top:l===t.ObjectRelativeFromV.LINE?M-=D.top:l===t.ObjectRelativeFromV.PAGE&&(M+=A.marginTop),m===t.ObjectRelativeFromV.PARAGRAPH?M+=k.top:m===t.ObjectRelativeFromV.LINE?M+=D.top:m===t.ObjectRelativeFromV.PAGE&&(M-=A.marginTop),j(`positionV`,{relativeFrom:m,posOffset:(d??0)-M})}function P(e){N(String(e?t.ObjectRelativeFromV.PARAGRAPH:t.ObjectRelativeFromV.PAGE))}return(0,d.useEffect)(()=>{function e(e){var n;let r=g==null?void 0:g.getSnapshot(),i=r==null||(n=r.drawings)==null?void 0:n[e.drawingId];if(i==null)return;let{layoutType:a}=i,{positionH:o,positionV:s}=i.docTransform;w(o),E(s),S(a===t.PositionedObjectLayoutType.INLINE),O(s.relativeFrom===t.ObjectRelativeFromV.PARAGRAPH||s.relativeFrom===t.ObjectRelativeFromV.LINE)}function n(){let t=u.getFocusDrawings();t.length!==0&&e(t[0])}n();let r=u.focus$.subscribe(t=>{if(t.length===0){A(!1);return}A(!0),e(t[0])}),i=o.onCommandExecuted(async e=>{e.id===a.RichTextEditingMutation.id&&n()});return()=>{r.unsubscribe(),i.dispose()}},[o,g,u]),{localeService:l,showPanel:k,disabled:x,hPosition:C,vPosition:T,followTextMove:D,documentFlavor:_,HORIZONTAL_RELATIVE_FROM:y,VERTICAL_RELATIVE_FROM:b,handlePositionChange:j,handleHorizontalRelativeFromChange:M,handleVerticalRelativeFromChange:N,handleFollowTextMoveCheck:P,MIN_OFFSET:-1e3,MAX_OFFSET:1e3}}function vt(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(0,f.jsxs)(`div`,{className:`univer-grid univer-gap-5`,children:[r.map(t=>(0,f.jsxs)(`section`,{className:`univer-grid univer-gap-3`,children:[(0,f.jsx)(`h3`,{className:`univer-m-0 univer-text-sm univer-font-medium`,children:n.t(t.title)}),(0,f.jsxs)(`label`,{className:`univer-grid univer-gap-2 univer-text-sm`,children:[n.t(`docs-drawing-ui.image-position.absolutePosition`),(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)}})]}),(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=>(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)),(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?(0,f.jsx)(gt,{className:`univer-text-primary-600`}):void 0,onClick:()=>e.onFollowTextMoveChange(!e.followTextMove)})]})}function yt(e){var t;let n=(0,c.useDependency)(i.IRenderManagerService),r=e.drawings[0];return r&&(t=n.getRenderUnitById(r.unitId))!=null&&t.scene?(0,f.jsx)(bt,{...e}):null}function bt(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}=_t(e);return n?(0,f.jsx)(vt,{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 xt(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(Re.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(Le.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=>{if(e.length===0){D(!1);return}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 St=[{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`}],Ct=[{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`}],wt=[{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 Tt(e){let n=(0,c.useDependency)(t.LocaleService);return(0,f.jsxs)(`div`,{className:`univer-flex univer-flex-col univer-gap-5`,children:[(0,f.jsx)(`div`,{role:`group`,"aria-label":n.t(`docs-drawing-ui.image-text-wrap.wrappingStyle`),className:`univer-grid univer-gap-2`,children:St.map(t=>(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?(0,f.jsx)(gt,{}):void 0,onClick:()=>e.onStyleChange(t.value)},t.value))}),!e.disableWrapText&&(0,f.jsxs)(`section`,{className:`univer-grid univer-gap-2`,children:[(0,f.jsx)(`h3`,{className:`univer-m-0 univer-text-sm univer-font-medium`,children:n.t(`docs-drawing-ui.image-text-wrap.wrapText`)}),(0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-3 univer-gap-2`,children:Ct.map(t=>(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)&&(0,f.jsxs)(`section`,{className:`univer-grid univer-gap-3`,children:[(0,f.jsx)(`h3`,{className:`univer-m-0 univer-text-sm univer-font-medium`,children:n.t(`docs-drawing-ui.image-text-wrap.distanceFromText`)}),(0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-3`,children:wt.filter(({key:t})=>t===`distT`||t===`distB`?!e.disableDistTB:!e.disableDistLR).map(({key:t,label:r})=>(0,f.jsxs)(`label`,{className:`univer-grid univer-gap-2 univer-text-sm`,children:[n.t(r),(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 Et(e){var t;let n=(0,c.useDependency)(i.IRenderManagerService),r=e.drawings[0];return r&&(t=n.getRenderUnitById(r.unitId))!=null&&t.scene?(0,f.jsx)(Dt,{...e}):null}function Dt(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}=xt(e);return t?(0,f.jsx)(Tt,{wrappingStyle:n,wrapText:r,distToText:i,minMargin:d,maxMargin:p,disableWrapText:a,disableDistTB:o,disableDistLR:s,onStyleChange:c,onWrapTextChange:l,onDistanceChange:u}):null}let Ot=[{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 kt(){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(0,f.jsxs)(`div`,{className:`univer-flex univer-min-w-0 univer-flex-col univer-gap-4 univer-pb-2`,children:[(0,f.jsx)(`div`,{className:`univer-grid univer-grid-cols-3 univer-gap-2`,role:`group`,children:Ot.map(e=>(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))}),(0,f.jsxs)(`div`,{children:[a===`image`&&(0,f.jsx)(u.DrawingCommonPanel,{drawings:n,hasAlign:!1,hasCropper:!0,hasGroup:!1,hasTransform:!1,onCropStart:()=>i.executeCommand(W.id,{value:`close`})}),a===`wrap`&&(0,f.jsx)(Et,{drawings:n}),a===`position`&&(0,f.jsx)(yt,{drawings:n})]})]})}let At=class extends t.Disposable{constructor(e){super(),this.disposeWithMe(e.register(U,kt))}};At=j([A(0,(0,t.Inject)(c.ComponentManager))],At);let jt={id:W.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:U},onClose:()=>{a.focusDrawing(null)},width:360};r.open(e);break}default:r.close()}return!0}};var Mt=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 Nt=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`,new Set),E(this,`_embeddedRenderUnits`,new Set),E(this,`_popupMenuListeners`,new Map),E(this,`_disposePopupsByUnit`,new Map),E(this,`_popupTargetsByUnit`,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===G.id||t)&&(this._isDrawingPanelOpen=!0,this._clearPopups(void 0,!0)),e.id===jt.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)??G.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)??G.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}])}};Nt=j([A(0,s.IDrawingManagerService),A(1,(0,t.Inject)(r.DocCanvasPopManagerService)),A(2,i.IRenderManagerService),A(3,t.IUniverInstanceService),A(4,t.IContextService),A(5,n.IDocDrawingAdapterService),A(6,n.IDocDrawingService),A(7,(0,t.Inject)(Mt)),A(8,t.ICommandService),A(9,c.IMenuManagerService),A(10,t.IPermissionService)],Nt);let Pt=class extends t.Disposable{constructor(e,t){super(),this._menuManagerService=e,this._commandService=t,this._initCommands(),this._initMenus()}_initCommands(){[N,L,R,Le,Re,ze,Be,jt,H,G,x,S,B,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initMenus(){this._menuManagerService.mergeMenu(Ce)}};Pt=j([A(0,c.IMenuManagerService),A(1,t.ICommandService)],Pt);var Ft=class extends M{_getTransformerInteractionOptions(){return{moveOnlyWhenSelected:!0}}_isDocumentInteractionFocusing(e){return!0}};let Q=class extends t.Plugin{constructor(e=Oe,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{...a}=(0,t.merge)({},Oe,this._config);this._configService.setConfig(Ee,a)}onStarting(){[[At],[Pt],[Nt],[st],[Me],[D],[Mt],[Y],[Fe]].forEach(e=>this._injector.add(e)),this._injector.get(At)}onReady(){[[M,{useClass:Ft}],[it]].forEach(e=>this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)),this._injector.get(Me),this._injector.get(Pt),this._injector.get(st),this._injector.get(Fe)}onRendered(){this._injector.get(Nt),this._injector.get(Y)}};E(Q,`type`,t.UniverInstanceType.UNIVER_DOC),E(Q,`pluginName`,De),E(Q,`packageName`,we),E(Q,`version`,Te),Q=j([(0,t.DependentOn)(a.UniverDocsPlugin,s.UniverDrawingPlugin,i.UniverRenderEnginePlugin,n.UniverDocsDrawingPlugin,r.UniverDocsMobileUIPlugin,u.UniverDrawingMobileUIPlugin),A(1,(0,t.Inject)(t.Injector)),A(2,i.IRenderManagerService),A(3,t.IConfigService)],Q);let It=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?(0,f.jsx)(Lt,{...e}):null};function Lt(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}=_t(e);return(0,f.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!n}),children:[(0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.title`)})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.horizontal`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.absolutePosition`)}),(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})}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.toTheRightOf`)}),(0,f.jsx)(o.Select,{value:String(i.relativeFrom),disabled:r,options:c,onChange:d})]})]}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.vertical`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.absolutePosition`)}),(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})}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:t.t(`docs-drawing-ui.image-position.bellow`)}),(0,f.jsx)(o.Select,{disabled:r,value:String(a.relativeFrom),options:l,onChange:p})]})]}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:t.t(`docs-drawing-ui.image-position.options`)})}),(0,f.jsx)(`div`,{children:(0,f.jsx)(o.Checkbox,{disabled:r,checked:s,onChange:m,children:t.t(`docs-drawing-ui.image-position.moveObjectWithText`)})})]})}let Rt=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?(0,f.jsx)(zt,{...e}):null};function zt(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:_}=xt(e);return(0,f.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!i}),children:[(0,f.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.title`)})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.wrappingStyle`)})}),(0,f.jsx)(`div`,{children:(0,f.jsxs)(o.RadioGroup,{value:a,onChange:p,direction:`vertical`,children:[(0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.INLINE,children:r.t(`docs-drawing-ui.image-text-wrap.inline`)}),(0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.WRAP_SQUARE,children:r.t(`docs-drawing-ui.image-text-wrap.square`)}),(0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.WRAP_TOP_AND_BOTTOM,children:r.t(`docs-drawing-ui.image-text-wrap.topAndBottom`)}),(0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.BEHIND_TEXT,children:r.t(`docs-drawing-ui.image-text-wrap.behindText`)}),(0,f.jsx)(o.Radio,{value:n.TextWrappingStyle.IN_FRONT_OF_TEXT,children:r.t(`docs-drawing-ui.image-text-wrap.inFrontText`)})]})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.wrapText`)})}),(0,f.jsx)(`div`,{children:(0,f.jsxs)(o.RadioGroup,{disabled:l,value:String(s),onChange:m,direction:`horizontal`,children:[(0,f.jsx)(o.Radio,{value:String(t.WrapTextType.BOTH_SIDES),children:r.t(`docs-drawing-ui.image-text-wrap.bothSide`)}),(0,f.jsx)(o.Radio,{value:String(t.WrapTextType.LEFT),children:r.t(`docs-drawing-ui.image-text-wrap.leftOnly`)}),(0,f.jsx)(o.Radio,{value:String(t.WrapTextType.RIGHT),children:r.t(`docs-drawing-ui.image-text-wrap.rightOnly`)})]})}),(0,f.jsx)(`div`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,f.jsx)(`div`,{children:r.t(`docs-drawing-ui.image-text-wrap.distanceFromText`)})}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.top`)}),(0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:u,precision:1,value:c.distT,onChange:e=>{h(e,`distT`)}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.left`)}),(0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:d,precision:1,value:c.distL,onChange:e=>{h(e,`distL`)}})]})]}),(0,f.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.bottom`)}),(0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:u,precision:1,value:c.distB,onChange:e=>{h(e,`distB`)}})]}),(0,f.jsxs)(`div`,{children:[(0,f.jsx)(`span`,{children:r.t(`docs-drawing-ui.image-text-wrap.right`)}),(0,f.jsx)(o.InputNumber,{min:g,max:_,disabled:d,precision:1,value:c.distR,onChange:e=>{h(e,`distR`)}})]})]})]})}let Bt=()=>{let e=(0,c.useDependency)(s.IDrawingManagerService),t=(0,c.useObservable)(()=>e.focus$,e.getFocusDrawings(),!1,[e]);return!!(t!=null&&t.length)&&(0,f.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,f.jsx)(u.DrawingCommonPanel,{drawings:t,hasAlign:!1,hasCropper:!0,hasGroup:!1,hasTransform:!1}),(0,f.jsx)(Rt,{drawings:t}),(0,f.jsx)(It,{drawings:t})]})},Vt=class extends t.Disposable{constructor(e){super(),this._componentManager=e,this._registerComponents()}_registerComponents(){this.disposeWithMe(this._componentManager.register(U,Bt))}};Vt=j([A(0,(0,t.Inject)(c.ComponentManager))],Vt);function Ht(e){return e.getContextValue(t.FOCUSING_DOC)&&e.getContextValue(t.FOCUSING_UNIVER_EDITOR)&&e.getContextValue(t.FOCUSING_COMMON_DRAWINGS)}let Ut={id:B.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:Ht,staticParameters:{direction:t.Direction.DOWN}},Wt={id:B.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:Ht,staticParameters:{direction:t.Direction.UP}},Gt={id:B.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:Ht,staticParameters:{direction:t.Direction.LEFT}},Kt={id:B.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:Ht,staticParameters:{direction:t.Direction.RIGHT}},qt={id:p.id,description:`docs-drawing-ui.shortcut.drawing-delete`,group:`4_drawing-view`,groupTitle:`docs-drawing-ui.shortcut.drawing-view`,preconditions:Ht,binding:c.KeyCode.DELETE,mac:c.KeyCode.BACKSPACE},Jt=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(Ce)}_initCommands(){[N,L,R,Le,Re,ze,Be,W,H,G,x,S,B,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[Ut,Wt,Gt,Kt,qt].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};Jt=j([A(0,c.IMenuManagerService),A(1,t.ICommandService),A(2,c.IShortcutService)],Jt);let Yt=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`,new Set),E(this,`_embeddedRenderUnits`,new Set),E(this,`_popupMenuListeners`,new Map),E(this,`_disposePopupsByUnit`,new Map),E(this,`_popupTargetsByUnit`,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===G.id||t)&&(this._isDrawingPanelOpen=!0,this._clearPopups(void 0,!0)),e.id===W.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)??G.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}])}};Yt=j([A(0,s.IDrawingManagerService),A(1,(0,t.Inject)(r.DocCanvasPopManagerService)),A(2,i.IRenderManagerService),A(3,t.IUniverInstanceService),A(4,t.IContextService),A(5,n.IDocDrawingAdapterService),A(6,n.IDocDrawingService),A(7,(0,t.Inject)(Mt)),A(8,t.ICommandService),A(9,c.IMenuManagerService),A(10,t.IPermissionService),A(11,c.IContextMenuService)],Yt);let $=class extends t.Plugin{constructor(e=Oe,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerSrv=r,this._configService=i;let{...a}=(0,t.merge)({},Oe,this._config);this._configService.setConfig(Ee,a)}onStarting(){[[Vt],[Jt],[Yt],[st],[Me],[D],[Mt],[Y],[Fe]].forEach(e=>this._injector.add(e)),this._injector.get(Vt)}onReady(){[[M],[it]].forEach(e=>this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)),this._injector.get(Me),this._injector.get(Jt),this._injector.get(st),this._injector.get(Fe)}onRendered(){this._injector.get(Yt),this._injector.get(Y)}};E($,`type`,t.UniverInstanceType.UNIVER_DOC),E($,`pluginName`,De),E($,`packageName`,we),E($,`version`,Te),$=j([(0,t.DependentOn)(a.UniverDocsPlugin,s.UniverDrawingPlugin,i.UniverRenderEnginePlugin,n.UniverDocsDrawingPlugin,r.UniverDocsUIPlugin,u.UniverDrawingUIPlugin),A(1,(0,t.Inject)(t.Injector)),A(2,i.IRenderManagerService),A(3,t.IConfigService)],$),e.ClearDocDrawingTransformerOperation=H,e.DOCS_IMAGE_MENU_ID=ue,e.DOCS_SHAPE_BELOW_MENU_ID=ge,e.DOCS_SHAPE_MENU_ID=he,e.DeleteDocDrawingsCommand=p,e.DocDrawingFloatingToolbarAdapterService=Mt,e.DocDrawingPosition=It,e.DocDrawingTextWrap=Rt,Object.defineProperty(e,"DocFloatDomController",{enumerable:!0,get:function(){return Y}}),e.DocsDrawingUIMenuSchema=Ce,e.EditDocDrawingOperation=G,e.GroupDocDrawingCommand=x,e.InsertDocEllipseShapeCommand=R,e.InsertDocImageCommand=N,e.InsertDocRectangleShapeCommand=L,e.MobileDocDrawingPosition=yt,e.MobileDocDrawingTextWrap=Et,e.MoveDocDrawingsCommand=B,e.SidebarDocDrawingOperation=W,e.UngroupDocDrawingCommand=S,Object.defineProperty(e,"UniverDocsDrawingMobileUIPlugin",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(e,"UniverDocsDrawingUIPlugin",{enumerable:!0,get:function(){return $}})});