@univerjs/sheets-drawing-ui 0.17.0 → 0.18.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 (117) hide show
  1. package/lib/cjs/facade.js +1 -1
  2. package/lib/cjs/index.js +7 -2
  3. package/lib/cjs/locale/ca-ES.js +1 -1
  4. package/lib/cjs/locale/en-US.js +1 -1
  5. package/lib/cjs/locale/es-ES.js +1 -1
  6. package/lib/cjs/locale/fa-IR.js +1 -1
  7. package/lib/cjs/locale/fr-FR.js +1 -1
  8. package/lib/cjs/locale/ja-JP.js +1 -1
  9. package/lib/cjs/locale/ko-KR.js +1 -1
  10. package/lib/cjs/locale/ru-RU.js +1 -1
  11. package/lib/cjs/locale/sk-SK.js +1 -1
  12. package/lib/cjs/locale/vi-VN.js +1 -1
  13. package/lib/cjs/locale/zh-CN.js +1 -1
  14. package/lib/cjs/locale/zh-TW.js +1 -1
  15. package/lib/es/facade.js +1 -1389
  16. package/lib/es/index.js +7 -4388
  17. package/lib/es/locale/ca-ES.js +1 -54
  18. package/lib/es/locale/en-US.js +1 -54
  19. package/lib/es/locale/es-ES.js +1 -54
  20. package/lib/es/locale/fa-IR.js +1 -54
  21. package/lib/es/locale/fr-FR.js +1 -54
  22. package/lib/es/locale/ja-JP.js +1 -54
  23. package/lib/es/locale/ko-KR.js +1 -54
  24. package/lib/es/locale/ru-RU.js +1 -54
  25. package/lib/es/locale/sk-SK.js +1 -54
  26. package/lib/es/locale/vi-VN.js +1 -54
  27. package/lib/es/locale/zh-CN.js +1 -54
  28. package/lib/es/locale/zh-TW.js +1 -54
  29. package/lib/facade.js +1 -1389
  30. package/lib/index.css +66 -1
  31. package/lib/index.js +7 -4388
  32. package/lib/locale/ca-ES.js +1 -54
  33. package/lib/locale/en-US.js +1 -54
  34. package/lib/locale/es-ES.js +1 -54
  35. package/lib/locale/fa-IR.js +1 -54
  36. package/lib/locale/fr-FR.js +1 -54
  37. package/lib/locale/ja-JP.js +1 -54
  38. package/lib/locale/ko-KR.js +1 -54
  39. package/lib/locale/ru-RU.js +1 -54
  40. package/lib/locale/sk-SK.js +1 -54
  41. package/lib/locale/vi-VN.js +1 -54
  42. package/lib/locale/zh-CN.js +1 -54
  43. package/lib/locale/zh-TW.js +1 -54
  44. package/lib/types/basics/transform-position.d.ts +18 -3
  45. package/lib/types/commands/commands/delete-drawings.command.d.ts +16 -1
  46. package/lib/types/commands/commands/flip-drawings.command.d.ts +16 -1
  47. package/lib/types/commands/commands/group-sheet-drawing.command.d.ts +16 -1
  48. package/lib/types/commands/commands/insert-image.command.d.ts +16 -1
  49. package/lib/types/commands/commands/insert-sheet-drawing.command.d.ts +16 -1
  50. package/lib/types/commands/commands/interfaces.d.ts +17 -2
  51. package/lib/types/commands/commands/move-drawings.command.d.ts +17 -1
  52. package/lib/types/commands/commands/remove-sheet-drawing.command.d.ts +16 -1
  53. package/lib/types/commands/commands/save-cell-images.command.d.ts +16 -1
  54. package/lib/types/commands/commands/set-drawing-arrange.command.d.ts +18 -2
  55. package/lib/types/commands/commands/set-sheet-drawing.command.d.ts +16 -1
  56. package/lib/types/commands/commands/ungroup-sheet-drawing.command.d.ts +16 -1
  57. package/lib/types/commands/commands/utils.d.ts +23 -1
  58. package/lib/types/commands/operations/clear-drawing-transformer.operation.d.ts +16 -1
  59. package/lib/types/commands/operations/edit-sheet-drawing.operation.d.ts +16 -1
  60. package/lib/types/commands/operations/open-drawing-panel.operation.d.ts +16 -1
  61. package/lib/types/config/config.d.ts +17 -2
  62. package/lib/types/controllers/drawing-context-menu.controller.d.ts +28 -0
  63. package/lib/types/controllers/render-controllers/sheet-celll-image-hover.render-controller.d.ts +16 -1
  64. package/lib/types/controllers/render-controllers/sheet-drawing.render-controller.d.ts +16 -1
  65. package/lib/types/controllers/sheet-cell-image-autofill.controller.d.ts +15 -0
  66. package/lib/types/controllers/sheet-cell-image-copy-paste.controller.d.ts +15 -0
  67. package/lib/types/controllers/sheet-cell-image.controller.d.ts +19 -2
  68. package/lib/types/controllers/sheet-drawing-copy-paste.controller.d.ts +15 -0
  69. package/lib/types/controllers/sheet-drawing-group-copy-paste.controller.d.ts +54 -0
  70. package/lib/types/controllers/sheet-drawing-permission.controller.d.ts +15 -0
  71. package/lib/types/controllers/sheet-drawing-printing.controller.d.ts +15 -0
  72. package/lib/types/controllers/sheet-drawing-transform-affected.controller.d.ts +19 -2
  73. package/lib/types/controllers/sheet-drawing-update.controller.d.ts +20 -3
  74. package/lib/types/controllers/sheet-drawing.controller.d.ts +15 -0
  75. package/lib/types/controllers/shortcuts/drawing.shortcut.d.ts +18 -3
  76. package/lib/types/facade/f-enum.d.ts +15 -0
  77. package/lib/types/facade/f-event.d.ts +21 -5
  78. package/lib/types/facade/f-over-grid-image.d.ts +19 -3
  79. package/lib/types/facade/f-range.d.ts +15 -0
  80. package/lib/types/facade/f-univer.d.ts +16 -1
  81. package/lib/types/facade/f-worksheet.d.ts +23 -7
  82. package/lib/types/index.d.ts +1 -0
  83. package/lib/types/locale/ca-ES.d.ts +16 -1
  84. package/lib/types/locale/es-ES.d.ts +16 -1
  85. package/lib/types/locale/fa-IR.d.ts +16 -1
  86. package/lib/types/locale/fr-FR.d.ts +16 -1
  87. package/lib/types/locale/ja-JP.d.ts +16 -1
  88. package/lib/types/locale/ko-KR.d.ts +16 -1
  89. package/lib/types/locale/ru-RU.d.ts +16 -1
  90. package/lib/types/locale/sk-SK.d.ts +16 -1
  91. package/lib/types/locale/vi-VN.d.ts +16 -1
  92. package/lib/types/locale/zh-CN.d.ts +16 -1
  93. package/lib/types/locale/zh-TW.d.ts +16 -1
  94. package/lib/types/menu/drawing-popup-menu.controller.d.ts +17 -1
  95. package/lib/types/menu/image.menu.d.ts +17 -2
  96. package/lib/types/menu/save-images.menu.d.ts +17 -2
  97. package/lib/types/menu/schema.d.ts +16 -1
  98. package/lib/types/plugin.d.ts +16 -1
  99. package/lib/types/services/batch-save-images.service.d.ts +18 -2
  100. package/lib/types/services/canvas-float-dom-manager.service.d.ts +24 -6
  101. package/lib/types/views/printing-float-dom/index.d.ts +18 -3
  102. package/lib/types/views/sheet-image-panel/SheetDrawingAnchor.d.ts +16 -1
  103. package/lib/umd/facade.js +1 -1
  104. package/lib/umd/index.js +7 -2
  105. package/lib/umd/locale/ca-ES.js +1 -1
  106. package/lib/umd/locale/en-US.js +1 -1
  107. package/lib/umd/locale/es-ES.js +1 -1
  108. package/lib/umd/locale/fa-IR.js +1 -1
  109. package/lib/umd/locale/fr-FR.js +1 -1
  110. package/lib/umd/locale/ja-JP.js +1 -1
  111. package/lib/umd/locale/ko-KR.js +1 -1
  112. package/lib/umd/locale/ru-RU.js +1 -1
  113. package/lib/umd/locale/sk-SK.js +1 -1
  114. package/lib/umd/locale/vi-VN.js +1 -1
  115. package/lib/umd/locale/zh-CN.js +1 -1
  116. package/lib/umd/locale/zh-TW.js +1 -1
  117. package/package.json +17 -16
package/lib/cjs/index.js CHANGED
@@ -1,2 +1,7 @@
1
- "use strict";var Qt=Object.defineProperty;var en=(i,r,e)=>r in i?Qt(i,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[r]=e;var se=(i,r,e)=>en(i,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("@univerjs/engine-render"),P=require("@univerjs/sheets-ui"),l=require("@univerjs/core"),w=require("@univerjs/sheets-drawing"),D=require("@univerjs/sheets"),V=require("@univerjs/design"),et=require("@univerjs/docs-ui"),x=require("@univerjs/drawing"),k=require("@univerjs/ui"),$t=require("@univerjs/docs-drawing"),ve=require("@univerjs/drawing-ui"),N=require("rxjs"),G=require("react/jsx-runtime"),Q=require("react");function ee(i,r,e){const{from:t,to:n,flipY:s=!1,flipX:o=!1,angle:a=0,skewX:c=0,skewY:g=0}=i,u=e.getCurrent();if(u==null)return;const d=P.convertPositionSheetOverGridToAbsolute(u.unitId,u.sheetId,{from:t,to:n},e);let{left:m,top:h,width:p,height:S}=d;const f=e.getCurrentSkeleton(),v=f.rowHeaderWidth+f.columnTotalWidth,I=f.columnHeaderHeight+f.rowTotalHeight;return m+p>v&&(m=v-p),h+S>I&&(h=I-S),{flipY:s,flipX:o,angle:a,skewX:c,skewY:g,left:m,top:h,width:p,height:S}}function $(i,r){const{left:e=0,top:t=0,width:n=0,height:s=0,flipY:o=!1,flipX:a=!1,angle:c=0,skewX:g=0,skewY:u=0}=i,d=r.getCellWithCoordByOffset(e,t);if(d==null)return;const m={column:d.actualColumn,columnOffset:j.precisionTo(e-d.startX,1),row:d.actualRow,rowOffset:j.precisionTo(t-d.startY,1)},h=r.getCellWithCoordByOffset(e+n,t+s);if(h==null)return;const p={column:h.actualColumn,columnOffset:j.precisionTo(e+n-h.startX,1),row:h.actualRow,rowOffset:j.precisionTo(t+s-h.startY,1)};return{flipY:o,flipX:a,angle:c,skewX:g,skewY:u,from:m,to:p}}function Y(i,r){const{left:e=0,top:t=0,width:n=0,height:s=0,angle:o=0}=i,a=(o%360+360)%360;if(!(a>=45&&a<135||a>=225&&a<315))return $(i,r);const g={...i,left:e+n/2-s/2,top:t+s/2-n/2,width:s,height:n};return $(g,r)}const X={id:"sheet.operation.clear-drawing-transformer",type:l.CommandType.MUTATION,handler:(i,r)=>{const e=i.get(j.IRenderManagerService);return r.forEach(t=>{var n,s;(s=(n=e.getRenderById(t))==null?void 0:n.scene.getTransformer())==null||s.debounceRefreshControls()}),!0}},Oe={id:"sheet.command.remove-sheet-image",type:l.CommandType.COMMAND,handler:(i,r)=>{var I,T,O;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(D.SheetInterceptorService),s=i.get(w.ISheetDrawingService);if(!r)return!1;const{drawings:o}=r,a=[];o.forEach(C=>{const{unitId:y}=C;a.push(y)});const c=s.getBatchRemoveOp(o),{unitId:g,subUnitId:u,undo:d,redo:m,objects:h}=c,p=n.onCommandExecute({id:Oe.id,params:r}),S={id:w.SetDrawingApplyMutation.id,params:{unitId:g,subUnitId:u,op:m,objects:h,type:w.DrawingApplyType.REMOVE}},f={id:w.SetDrawingApplyMutation.id,params:{unitId:g,subUnitId:u,op:d,objects:h,type:w.DrawingApplyType.INSERT}};return l.sequenceExecute([...(I=p.preRedos)!=null?I:[],S,...p.redos],e)?(t.pushUndoRedo({unitID:g,undoMutations:[...(T=p.preUndos)!=null?T:[],f,...p.undos,{id:X.id,params:a}],redoMutations:[...(O=p.preRedos)!=null?O:[],S,...p.redos,{id:X.id,params:a}]}),!0):!1}},yt={id:"sheet.command.delete-drawing",type:l.CommandType.COMMAND,handler:i=>{const r=i.get(l.ICommandService),t=i.get(w.ISheetDrawingService).getFocusDrawings();if(t.length===0)return!1;const n=t[0].unitId,s=t.map(o=>{const{unitId:a,subUnitId:c,drawingId:g,drawingType:u}=o;return{unitId:a,subUnitId:c,drawingId:g,drawingType:u}});return r.executeCommand(Oe.id,{unitId:n,drawings:s})}};function tn(i){const r=[];return i.forEach(e=>{const{parent:t,children:n}=e,{unitId:s,subUnitId:o,drawingId:a}=t,c=j.getGroupState(0,0,n.map(d=>d.transform||{})),g=n.map(d=>{const m=d.transform||{left:0,top:0},{unitId:h,subUnitId:p,drawingId:S}=d;return{unitId:h,subUnitId:p,drawingId:S,transform:{...m,left:m.left,top:m.top},groupId:a}}),u={unitId:s,subUnitId:o,drawingId:a,drawingType:l.DrawingTypeEnum.DRAWING_GROUP,groupBaseBound:{...t.groupBaseBound},transform:c};r.push({parent:u,children:g})}),r}function nn(i){const r=[];return i.forEach(e=>{const{parent:t,children:n}=e,{unitId:s,subUnitId:o,drawingId:a,transform:c={width:0,height:0}}=t;if(c==null)return;const g=n.map(d=>{const{transform:m}=d,{unitId:h,subUnitId:p,drawingId:S}=d,f=j.transformObjectOutOfGroup(m||{},c,c.width||0,c.height||0,t.groupBaseBound);return{unitId:h,subUnitId:p,drawingId:S,transform:f,groupId:void 0}}),u={unitId:s,subUnitId:o,drawingId:a,drawingType:l.DrawingTypeEnum.DRAWING_GROUP,transform:{left:0,top:0}};r.push({parent:u,children:g})}),r}const Ct={id:"sheet.command.group-sheet-image",type:l.CommandType.COMMAND,handler:(i,r)=>{const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(w.ISheetDrawingService);if(!r)return!1;const s=[];r.forEach(({parent:h,children:p})=>{s.push(h.unitId),p.forEach(S=>{s.push(S.unitId)})});const o=n.getGroupDrawingOp(r),{unitId:a,subUnitId:c,undo:g,redo:u,objects:d}=o;return e.syncExecuteCommand(w.SetDrawingApplyMutation.id,{op:u,unitId:a,subUnitId:c,objects:d,type:w.DrawingApplyType.GROUP})?(t.pushUndoRedo({unitID:a,undoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:g,unitId:a,subUnitId:c,objects:nn(d),type:w.DrawingApplyType.UNGROUP}},{id:X.id,params:s}],redoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:u,unitId:a,subUnitId:c,objects:d,type:w.DrawingApplyType.GROUP}},{id:X.id,params:s}]}),!0):!1}},Fe={id:"sheet.command.insert-sheet-image",type:l.CommandType.COMMAND,handler:(i,r)=>{var I,T,O;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(w.ISheetDrawingService),s=i.get(D.SheetInterceptorService);if(!r)return!1;const o=r.drawings,a=o.map(C=>C.unitId),c=n.getBatchAddOp(o),{unitId:g,subUnitId:u,undo:d,redo:m,objects:h}=c,p=s.onCommandExecute({id:Fe.id,params:r}),S={id:w.SetDrawingApplyMutation.id,params:{op:m,unitId:g,subUnitId:u,objects:h,type:w.DrawingApplyType.INSERT}},f={id:w.SetDrawingApplyMutation.id,params:{op:d,unitId:g,subUnitId:u,objects:h,type:w.DrawingApplyType.REMOVE}};return l.sequenceExecute([...(I=p.preRedos)!=null?I:[],S,...p.redos],e)?(t.pushUndoRedo({unitID:g,undoMutations:[...(T=p.preUndos)!=null?T:[],f,...p.undos,{id:X.id,params:a}],redoMutations:[...(O=p.preRedos)!=null?O:[],S,...p.redos,{id:X.id,params:a}]}),!0):!1}},Tt={id:"sheet.command.set-drawing-arrange",type:l.CommandType.COMMAND,handler:(i,r)=>{const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService);if(!r)return!1;const n=i.get(w.ISheetDrawingService),{unitId:s,subUnitId:o,drawingIds:a,arrangeType:c}=r,g={unitId:s,subUnitId:o,drawingIds:a};let u;if(c===l.ArrangeTypeEnum.forward?u=n.getForwardDrawingsOp(g):c===l.ArrangeTypeEnum.backward?u=n.getBackwardDrawingOp(g):c===l.ArrangeTypeEnum.front?u=n.getFrontDrawingsOp(g):c===l.ArrangeTypeEnum.back&&(u=n.getBackDrawingsOp(g)),u==null)return!1;const{objects:d,redo:m,undo:h}=u;return e.syncExecuteCommand(w.SetDrawingApplyMutation.id,{op:m,unitId:s,subUnitId:o,objects:d,type:w.DrawingApplyType.ARRANGE})?(t.pushUndoRedo({unitID:s,undoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:h,unitId:s,subUnitId:o,objects:d,type:w.DrawingApplyType.ARRANGE}}],redoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:m,unitId:s,subUnitId:o,objects:d,type:w.DrawingApplyType.ARRANGE}}]}),!0):!1}},Ae={id:"sheet.command.set-sheet-image",type:l.CommandType.COMMAND,handler:(i,r)=>{var v,I;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(w.ISheetDrawingService),s=i.get(D.SheetInterceptorService);if(!r)return!1;const{drawings:o}=r,a=n.getBatchUpdateOp(o),{unitId:c,subUnitId:g,undo:u,redo:d,objects:m}=a,h=s.onCommandExecute({id:Ae.id,params:r}),p=[...(v=h.preRedos)!=null?v:[],{id:w.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:g,op:d,objects:m,type:w.DrawingApplyType.UPDATE}},...h.redos,{id:X.id,params:[c]}],S=[...(I=h.preUndos)!=null?I:[],{id:w.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:g,op:u,objects:m,type:w.DrawingApplyType.UPDATE}},...h.undos,{id:X.id,params:[c]}];return l.sequenceExecute(p,e)?(t.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:p}),!0):!1}},Rt={id:"sheet.command.ungroup-sheet-image",type:l.CommandType.COMMAND,handler:(i,r)=>{const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(w.ISheetDrawingService);if(!r)return!1;const s=[];r.forEach(({parent:h,children:p})=>{s.push(h.unitId),p.forEach(S=>{s.push(S.unitId)})});const o=n.getUngroupDrawingOp(r),{unitId:a,subUnitId:c,undo:g,redo:u,objects:d}=o;return e.syncExecuteCommand(w.SetDrawingApplyMutation.id,{op:u,unitId:a,subUnitId:c,objects:d,type:w.DrawingApplyType.UNGROUP})?(t.pushUndoRedo({unitID:a,undoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:g,unitId:a,subUnitId:c,objects:tn(d),type:w.DrawingApplyType.GROUP}},{id:X.id,params:s}],redoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:u,unitId:a,subUnitId:c,objects:d,type:w.DrawingApplyType.UNGROUP}},{id:X.id,params:s}]}),!0):!1}};var rn=Object.getOwnPropertyDescriptor,sn=(i,r,e,t)=>{for(var n=t>1?void 0:t?rn(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},re=(i,r)=>(e,t)=>r(e,t,i);function on(i,r,e){const t=e*Math.PI/180,n=Math.abs(i*Math.cos(t))+Math.abs(r*Math.sin(t)),s=Math.abs(i*Math.sin(t))+Math.abs(r*Math.cos(t));return{rotatedWidth:n,rotatedHeight:s}}function ft(i,r,e,t,n){var I;const{rotatedHeight:s,rotatedWidth:o}=on(e,t,n),c=i.get(j.IRenderManagerService).getRenderById(r.unitId);if(!c)return!1;const u=(I=c.with(P.SheetSkeletonManagerService).getSkeletonParam(r.subUnitId))==null?void 0:I.skeleton;if(u==null)return!1;const d=u.getCellByIndex(r.row,r.col),m=d.mergeInfo.endX-d.mergeInfo.startX-2,h=d.mergeInfo.endY-d.mergeInfo.startY-2,p=o/s,f=Math.ceil(Math.min(m,h*p))/o,v=!f||Number.isNaN(f)?.001:f;return{width:e*v,height:t*v}}exports.SheetDrawingUpdateController=class extends l.Disposable{constructor(e,t,n,s,o,a,c,g,u,d,m,h,p,S){super();se(this,"_workbookSelections");this._context=e,this._skeletonManagerService=t,this._commandService=n,this._selectionRenderService=s,this._imageIoService=o,this._fileOpenerService=a,this._sheetDrawingService=c,this._drawingManagerService=g,this._contextService=u,this._messageService=d,this._localeService=m,this._injector=p,this._urlImageService=S,this._workbookSelections=h.getWorkbookSelections(this._context.unitId),this._updateDrawingListener(),this._updateOrderListener(),this._groupDrawingListener(),this._focusDrawingListener()}async insertFloatImage(){const e=await this._fileOpenerService.openFile({multiple:!0,accept:x.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(n=>`.${n.replace("image/","")}`).join(",")}),t=e.length;return t>x.DRAWING_IMAGE_COUNT_LIMIT?(this._messageService.show({type:V.MessageType.Error,content:this._localeService.t("update-status.exceedMaxCount",String(x.DRAWING_IMAGE_COUNT_LIMIT))}),!1):t===0?!1:(e.forEach(async n=>await this.insertFloatImageByFile(n)),!0)}async insertCellImage(){const t=(await this._fileOpenerService.openFile({multiple:!1,accept:x.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(n=>`.${n.replace("image/","")}`).join(",")}))[0];return t?(await this._insertCellImage(t),!0):!1}insertCellImageByFile(e,t){return this._insertCellImage(e,t)}async insertFloatImageByFile(e){var O;let t;try{t=await this._imageIoService.saveImage(e)}catch(C){const y=C.message;y===x.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:V.MessageType.Error,content:this._localeService.t("update-status.exceedMaxSize",String(x.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):y===x.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:V.MessageType.Error,content:this._localeService.t("update-status.invalidImageType")}):y===x.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:V.MessageType.Error,content:this._localeService.t("update-status.invalidImage")})}if(t==null)return;const n=this._getUnitInfo(),{unitId:s,subUnitId:o}=n,{imageId:a,imageSourceType:c,source:g,base64Cache:u}=t,{width:d,height:m,image:h}=await x.getImageSize(u||""),{width:p,height:S}=this._context.scene;this._imageIoService.addImageSourceCache(g,c,h);let f=1;if(d>x.DRAWING_IMAGE_WIDTH_LIMIT||m>x.DRAWING_IMAGE_HEIGHT_LIMIT){const C=x.DRAWING_IMAGE_WIDTH_LIMIT/d,y=x.DRAWING_IMAGE_HEIGHT_LIMIT/m;f=Math.max(C,y)}const v=this._getImagePosition(d*f,m*f,p,S);if(v==null)return;const I=ee(v,this._selectionRenderService,this._skeletonManagerService),T={unitId:s,subUnitId:o,drawingId:a,drawingType:l.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:c,source:g,transform:I,sheetTransform:v,axisAlignSheetTransform:(O=Y(I,this._selectionRenderService))!=null?O:v};return this._commandService.executeCommand(Fe.id,{unitId:s,drawings:[T]})}async _insertCellImage(e,t){var O,C;let n;try{n=await this._imageIoService.saveImage(e)}catch(y){const R=y.message;R===x.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:V.MessageType.Error,content:this._localeService.t("update-status.exceedMaxSize",String(x.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):R===x.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:V.MessageType.Error,content:this._localeService.t("update-status.invalidImageType")}):R===x.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:V.MessageType.Error,content:this._localeService.t("update-status.invalidImage")})}if(n==null)return!1;const{imageId:s,imageSourceType:o,source:a,base64Cache:c}=n,{width:g,height:u,image:d}=await x.getImageSize(c||"");this._imageIoService.addImageSourceCache(a,o,d);const m=this._workbookSelections.getCurrentLastSelection();if(!m)return!1;let h=m.primary.actualRow,p=m.primary.actualColumn;m.primary.isMerged&&(h=m.primary.startRow,p=m.primary.startColumn);const S=l.createDocumentModelWithStyle("",{}),f=ft(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:h,col:p},g,u,0);if(!f)return!1;const v={size:{width:f.width,height:f.height},positionH:{relativeFrom:l.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:l.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},I={unitId:S.getUnitId(),subUnitId:S.getUnitId(),drawingId:s,drawingType:l.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:o,source:a,transform:et.docDrawingPositionToTransform(v),docTransform:v,behindDoc:l.BooleanNumber.FALSE,title:"",description:"",layoutType:l.PositionedObjectLayoutType.INLINE,wrapText:l.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},T=l.BuildTextUtils.drawing.add({documentDataModel:S,drawings:[I],selection:{collapsed:!0,startOffset:0,endOffset:0}});return T?(S.apply(T),this._commandService.syncExecuteCommand(D.SetRangeValuesCommand.id,{value:{[(O=t==null?void 0:t.row)!=null?O:h]:{[(C=t==null?void 0:t.col)!=null?C:p]:{p:S.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})):!1}async insertCellImageByUrl(e,t){var p,S;let n=e;try{n=await this._urlImageService.getImage(e)}catch(f){console.error(`Failed to get image from URLImageService: ${e}`,f)}const{width:s,height:o,image:a}=await x.getImageSize(n||"");this._imageIoService.addImageSourceCache(e,l.ImageSourceType.URL,a);const c=this._workbookSelections.getCurrentLastSelection();if(!c)return!1;const g=l.createDocumentModelWithStyle("",{}),u=ft(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:c.primary.actualRow,col:c.primary.actualColumn},s,o,0);if(!u)return!1;const d={size:{width:u.width,height:u.height},positionH:{relativeFrom:l.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:l.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},m={unitId:g.getUnitId(),subUnitId:g.getUnitId(),drawingId:l.generateRandomId(),drawingType:l.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l.ImageSourceType.URL,source:e,transform:et.docDrawingPositionToTransform(d),docTransform:d,behindDoc:l.BooleanNumber.FALSE,title:"",description:"",layoutType:l.PositionedObjectLayoutType.INLINE,wrapText:l.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},h=l.BuildTextUtils.drawing.add({documentDataModel:g,drawings:[m],selection:{collapsed:!0,startOffset:0,endOffset:0}});return h?(g.apply(h),this._commandService.syncExecuteCommand(D.SetRangeValuesCommand.id,{value:{[(p=t==null?void 0:t.row)!=null?p:c.primary.actualRow]:{[(S=t==null?void 0:t.col)!=null?S:c.primary.actualColumn]:{p:g.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})):!1}_getUnitInfo(){const e=this._context.unit,t=e.getActiveSheet(),n=e.getUnitId(),s=t.getSheetId();return{unitId:n,subUnitId:s}}_getImagePosition(e,t,n,s){const o=this._workbookSelections.getCurrentSelections();let a={startRow:0,endRow:0,startColumn:0,endColumn:0};o&&o.length>0&&(a=o[o.length-1].range);const c=P.attachRangeWithCoord(this._skeletonManagerService.getCurrent().skeleton,a);if(c==null)return;let{startColumn:g,startRow:u,startX:d,startY:m}=c,h=!1;if(d+e>n&&(d=n-e,d<0&&(d=0,e=n),h=!0),m+t>s&&(m=s-t,m<0&&(m=0,t=s),h=!0),h){const v=this._selectionRenderService.getCellWithCoordByOffset(d,m);if(v==null)return;d=v.startX,m=v.startY,g=v.actualColumn,u=v.actualRow}const p={column:g,columnOffset:0,row:u,rowOffset:0},S=this._selectionRenderService.getCellWithCoordByOffset(d+e,m+t);if(S==null)return;const f={column:S.actualColumn,columnOffset:d+e-S.startX,row:S.actualRow,rowOffset:m+t-S.startY};return{from:p,to:f}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{const{unitId:t,subUnitId:n,drawingIds:s,arrangeType:o}=e;this._commandService.executeCommand(Tt.id,{unitId:t,subUnitId:n,drawingIds:s,arrangeType:o})}))}_updateDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{const t=[];e.length!==0&&(e.forEach(n=>{const{unitId:s,subUnitId:o,drawingId:a,drawingType:c,transform:g}=n;if(g==null)return;const u=this._sheetDrawingService.getDrawingByParam({unitId:s,subUnitId:o,drawingId:a});if(u==null||u.unitId!==this._context.unitId)return;const d=$({...u.transform,...g},this._selectionRenderService),m=Y({...u.transform,...g},this._selectionRenderService);if(d==null||m==null)return;const h={...n,transform:{...u.transform,...g,...ee(d,this._selectionRenderService,this._skeletonManagerService)},sheetTransform:{...d},axisAlignSheetTransform:{...m}};t.push(h)}),t.length>0&&this._commandService.executeCommand(Ae.id,{unitId:e[0].unitId,drawings:t}))}))}_getSheetTransformByParam(e,t){const{unitId:n,subUnitId:s,drawingId:o,transform:a}=e;if(a==null)return null;const c=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:s,drawingId:o});let g=c==null?void 0:c.transform;if(t&&(g={}),!t&&(c==null||c.unitId!==this._context.unitId))return null;const u=$({...g,...a},this._selectionRenderService),d=Y({...g,...a},this._selectionRenderService);return u==null||d==null?null:{sheetTransform:u,axisAlignSheetTransform:d}}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{const t=[];for(const n of e){const s=this._getSheetTransformByParam(n.parent,!0),o=[];for(const c of n.children){const g=this._getSheetTransformByParam(c,!1);g!=null&&o.push({...c,sheetTransform:g.sheetTransform,axisAlignSheetTransform:g.axisAlignSheetTransform})}const a={parent:{...n.parent,sheetTransform:s==null?void 0:s.sheetTransform,axisAlignSheetTransform:s==null?void 0:s.axisAlignSheetTransform},children:o};t.push(a)}if(t.length>0){this._commandService.executeCommand(Ct.id,t);const{unitId:n,subUnitId:s,drawingId:o}=e[0].parent;this._commandService.syncExecuteCommand(x.SetDrawingSelectedOperation.id,[{unitId:n,subUnitId:s,drawingId:o}])}})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{const t=[];for(const n of e){const{children:s}=n,o=[];for(const a of s){const c=this._getSheetTransformByParam(a,!1);c!=null&&o.push({...a,sheetTransform:c.sheetTransform,axisAlignSheetTransform:c.axisAlignSheetTransform})}t.push({...n,children:o})}this._commandService.executeCommand(Rt.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue(l.FOCUSING_COMMON_DRAWINGS,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue(l.FOCUSING_COMMON_DRAWINGS,!0),this._sheetDrawingService.focusDrawing(e))}))}};exports.SheetDrawingUpdateController=sn([re(1,l.Inject(P.SheetSkeletonManagerService)),re(2,l.ICommandService),re(3,P.ISheetSelectionRenderService),re(4,x.IImageIoService),re(5,k.ILocalFileService),re(6,w.ISheetDrawingService),re(7,x.IDrawingManagerService),re(8,l.IContextService),re(9,k.IMessageService),re(10,l.Inject(l.LocaleService)),re(11,l.Inject(D.SheetsSelectionsService)),re(12,l.Inject(l.Injector)),re(13,l.IURLImageService)],exports.SheetDrawingUpdateController);const Le={id:"sheet.command.insert-float-image",type:l.CommandType.COMMAND,handler:async(i,r)=>{var o,a;const e=i.get(l.IUniverInstanceService),t=i.get(j.IRenderManagerService),n=(o=j.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET,e,t))==null?void 0:o.with(exports.SheetDrawingUpdateController);if(!n)return!1;const s=r==null?void 0:r.files;if(s){const c=s.map(g=>n.insertFloatImageByFile(g));return(await Promise.all(c)).every(g=>g)}else return(a=n.insertFloatImage())!=null?a:!1}},Mt={id:"sheet.command.insert-cell-image",type:l.CommandType.COMMAND,handler:i=>{var t,n;const r=i.get(l.IUniverInstanceService),e=i.get(j.IRenderManagerService);return(n=(t=j.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET,r,e))==null?void 0:t.with(exports.SheetDrawingUpdateController).insertCellImage())!=null?n:!1}},Ue={id:"sheet.command.move-drawing",type:l.CommandType.COMMAND,handler:(i,r)=>{const e=i.get(l.ICommandService),t=i.get(w.ISheetDrawingService),n=i.get(P.ISheetSelectionRenderService),{direction:s}=r,o=t.getFocusDrawings();if(o.length===0)return!1;const a=o[0].unitId,c=o.map(u=>{const{transform:d}=u;if(d==null)return null;const m={...d},{left:h=0,top:p=0}=d;return s===l.Direction.UP?m.top=p-1:s===l.Direction.DOWN?m.top=p+1:s===l.Direction.LEFT?m.left=h-1:s===l.Direction.RIGHT&&(m.left=h+1),{...u,transform:m,sheetTransform:$(m,n),axisAlignSheetTransform:Y(m,n)}}).filter(u=>u!=null);return e.syncExecuteCommand(Ae.id,{unitId:a,drawings:c})?(e.syncExecuteCommand(X.id,[a]),!0):!1}};var an=Object.getOwnPropertyDescriptor,cn=(i,r,e,t)=>{for(var n=t>1?void 0:t?an(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},ze=(i,r)=>(e,t)=>r(e,t,i),we=(i=>(i.CELL_ADDRESS="cellAddress",i.COLUMN_VALUE="columnValue",i))(we||{});const lt=l.createIdentifier("sheets-drawing-ui.batch-save-images.service");function wt(i){let r="",e=i;for(;e>=0;)r=String.fromCharCode(e%26+65)+r,e=Math.floor(e/26)-1;return r}function tt(i,r){return`${wt(r)}${i+1}`}function dn(i){const r=tt(i.startRow,i.startColumn),e=tt(i.endRow,i.endColumn);return r===e?r:`${r}:${e}`}function jt(i){var r,e,t,n;return!!((e=(r=i==null?void 0:i.p)==null?void 0:r.drawingsOrder)!=null&&e.length&&((n=(t=i==null?void 0:i.p)==null?void 0:t.drawingsOrder)==null?void 0:n.length)>0)}function kt(i){var t,n,s;if(!((n=(t=i.p)==null?void 0:t.drawingsOrder)!=null&&n.length)||!((s=i.p)!=null&&s.drawings))return null;const r=i.p.drawingsOrder[0],e=i.p.drawings[r];return!e||!("source"in e)||!("imageSourceType"in e)?null:e}function mt(i,r){if(r===l.ImageSourceType.BASE64){const e=i.match(/^data:image\/(\w+);/);if(e)return e[1]==="jpeg"?"jpg":e[1]}if(r===l.ImageSourceType.URL){const e=i.match(/\.(\w+)(?:\?|$)/);if(e)return e[1].toLowerCase()}return"png"}async function Bt(i,r){if(r===l.ImageSourceType.BASE64)return(await fetch(i)).blob();if(r===l.ImageSourceType.URL)return(await fetch(i)).blob();throw new Error("UUID image type requires additional handling")}exports.BatchSaveImagesService=class extends l.Disposable{constructor(r,e,t,n){super(),this._univerInstanceService=r,this._selectionService=e,this._imageIoService=t,this._urlImageService=n}registerURLImageDownloader(r){return this._urlImageService.registerURLImageDownloader(r)}getCellImagesInSelection(){const r=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!r)return[];const e=r.getActiveSheet();if(!e)return[];const t=this._selectionService.getCurrentSelections();if(!t||t.length===0)return[];const n=e.getCellMatrix(),s=[];for(const o of t){const{startRow:a,endRow:c,startColumn:g,endColumn:u}=o.range;for(let d=a;d<=c;d++)for(let m=g;m<=u;m++){const h=n.getValue(d,m);if(jt(h)){const p=kt(h);p&&s.push({row:d,col:m,cellAddress:tt(d,m),source:p.source,imageSourceType:p.imageSourceType,imageId:p.drawingId})}}}return s}getCellImagesFromRanges(r,e,t){const n=this._univerInstanceService.getUnit(r,l.UniverInstanceType.UNIVER_SHEET);if(!n)return[];const s=n.getSheetBySheetId(e);if(!s)return[];const o=s.getCellMatrix(),a=[];for(const c of t){const{startRow:g,endRow:u,startColumn:d,endColumn:m}=c;for(let h=g;h<=u;h++)for(let p=d;p<=m;p++){const S=o.getValue(h,p);if(jt(S)){const f=kt(S);f&&a.push({row:h,col:p,cellAddress:tt(h,p),source:f.source,imageSourceType:f.imageSourceType,imageId:f.drawingId})}}}return a}getDataColumns(){var m,h,p,S;const r=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!r)return[];const e=r.getActiveSheet();if(!e)return[];const t=this._selectionService.getCurrentSelections();if(!t||t.length===0)return[];const n=e.getCellMatrix(),s=n.getDataRange();let o=1/0,a=-1/0;const c=new Set;for(const f of t){o=Math.min(o,f.range.startRow),a=Math.max(a,f.range.endRow);for(let v=f.range.startColumn;v<=f.range.endColumn;v++)c.add(v)}const g=new Set;for(let f=s.startColumn;f<=s.endColumn;f++)if(!c.has(f))for(let v=o;v<=a;v++){const I=n.getValue(v,f);if(I&&(((m=I.v)==null?void 0:m.toString())||((S=(p=(h=I.p)==null?void 0:h.body)==null?void 0:p.dataStream)==null?void 0:S.trim())||"")){g.add(f);break}}const u=[],d=Array.from(g).sort((f,v)=>f-v);for(const f of d)u.push({index:f,label:wt(f)});return u}getDataColumnsForRanges(r,e,t){var p,S,f,v;const n=this._univerInstanceService.getUnit(r,l.UniverInstanceType.UNIVER_SHEET);if(!n)return[];const s=n.getSheetBySheetId(e);if(!s)return[];const o=s.getCellMatrix(),a=o.getDataRange();let c=1/0,g=-1/0;const u=new Set;for(const I of t){c=Math.min(c,I.startRow),g=Math.max(g,I.endRow);for(let T=I.startColumn;T<=I.endColumn;T++)u.add(T)}const d=new Set;for(let I=a.startColumn;I<=a.endColumn;I++)if(!u.has(I))for(let T=c;T<=g;T++){const O=o.getValue(T,I);if(O&&(((p=O.v)==null?void 0:p.toString())||((v=(f=(S=O.p)==null?void 0:S.body)==null?void 0:f.dataStream)==null?void 0:v.trim())||"")){d.add(I);break}}const m=[],h=Array.from(d).sort((I,T)=>I-T);for(const I of h)m.push({index:I,label:wt(I)});return m}getSelectionRangeNotation(){const r=this._selectionService.getCurrentSelections();return!r||r.length===0?"":r.map(e=>dn(e.range)).join(", ")}getSelectionRowRange(){const r=this._selectionService.getCurrentSelections();if(!r||r.length===0)return null;let e=1/0,t=-1/0;for(const n of r)e=Math.min(e,n.range.startRow),t=Math.max(t,n.range.endRow);return{startRow:e,endRow:t}}getSelectionColumnIndices(){const r=this._selectionService.getCurrentSelections();if(!r||r.length===0)return new Set;const e=new Set;for(const t of r)for(let n=t.range.startColumn;n<=t.range.endColumn;n++)e.add(n);return e}generateFileName(r,e){var o,a,c,g;const t=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),n=mt(r.source,r.imageSourceType),s=[];for(const u of e.fileNameParts)if(u==="cellAddress")s.push(r.cellAddress);else if(u==="columnValue"&&e.columnIndex!==void 0){const d=t==null?void 0:t.getActiveSheet();if(d){const h=d.getCellMatrix().getValue(r.row,e.columnIndex);if(h){const p=((o=h.v)==null?void 0:o.toString())||((g=(c=(a=h.p)==null?void 0:a.body)==null?void 0:c.dataStream)==null?void 0:g.trim())||"";if(p){const S=p.replace(/[<>:"/\\|?*]/g,"_").trim();S&&s.push(S)}}}}return s.length===0?`${r.cellAddress}.${n}`:`${s.join("_")}.${n}`}generateFileNameWithContext(r,e,t,n){var c,g,u,d;const s=this._univerInstanceService.getUnit(t,l.UniverInstanceType.UNIVER_SHEET),o=mt(r.source,r.imageSourceType),a=[];for(const m of e.fileNameParts)if(m==="cellAddress")a.push(r.cellAddress);else if(m==="columnValue"&&e.columnIndex!==void 0){const h=s==null?void 0:s.getSheetBySheetId(n);if(h){const S=h.getCellMatrix().getValue(r.row,e.columnIndex);if(S){const f=((c=S.v)==null?void 0:c.toString())||((d=(u=(g=S.p)==null?void 0:g.body)==null?void 0:u.dataStream)==null?void 0:d.trim())||"";if(f){const v=f.replace(/[<>:"/\\|?*]/g,"_").trim();v&&a.push(v)}}}}return a.length===0?`${r.cellAddress}.${o}`:`${a.join("_")}.${o}`}async saveImages(r,e){var s;const t=await window.showDirectoryPicker({mode:"readwrite"}),n=new Map;for(const o of r){let a=this.generateFileName(o,e);const c=a.replace(/\.\w+$/,""),g=((s=a.match(/\.\w+$/))==null?void 0:s[0])||".png",u=n.get(c)||0;u>0&&(a=`${c}_${u}${g}`),n.set(c,u+1);try{const d=await this._getImageBlob(o),h=await(await t.getFileHandle(a,{create:!0})).createWritable();await h.write(d),await h.close()}catch(d){throw console.error(`Failed to save image ${a}:`,d),d}}}async saveImagesWithContext(r,e,t,n){var a;const s=await window.showDirectoryPicker({mode:"readwrite"}),o=new Map;for(const c of r){let g=this.generateFileNameWithContext(c,e,t,n);const u=g.replace(/\.\w+$/,""),d=((a=g.match(/\.\w+$/))==null?void 0:a[0])||".png",m=o.get(u)||0;m>0&&(g=`${u}_${m}${d}`),o.set(u,m+1);try{const h=await this._getImageBlob(c),S=await(await s.getFileHandle(g,{create:!0})).createWritable();await S.write(h),await S.close()}catch(h){throw console.error(`Failed to save image ${g}:`,h),h}}}async downloadSingleImage(r){const e=mt(r.source,r.imageSourceType),t=`${r.cellAddress}.${e}`;try{const n=await this._getImageBlob(r),s=URL.createObjectURL(n),o=document.createElement("a");o.href=s,o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}catch(n){throw console.error(`Failed to download image ${t}:`,n),n}}async _getImageBlob(r){if(r.imageSourceType===l.ImageSourceType.UUID){const e=await this._imageIoService.getImage(r.source);return Bt(e,l.ImageSourceType.URL)}return r.imageSourceType===l.ImageSourceType.URL?this._urlImageService.downloadImage(r.source):Bt(r.source,r.imageSourceType)}};exports.BatchSaveImagesService=cn([ze(0,l.IUniverInstanceService),ze(1,l.Inject(D.SheetsSelectionsService)),ze(2,l.IImageIoService),ze(3,l.IURLImageService)],exports.BatchSaveImagesService);const be="sheet.dialog.batch-save-images",Ee={id:"sheet.command.save-cell-images",type:l.CommandType.COMMAND,handler:async i=>{const r=i.get(k.IDialogService),e=i.get(lt),t=e.getCellImagesInSelection();if(t.length===1)try{return await e.downloadSingleImage(t[0]),!0}catch(a){return console.error("Failed to download image:",a),!1}const n=i.get(l.LocaleService),s=e.getSelectionRangeNotation(),o=`${n.t("sheetImage.save.title")} (${s})`;return r.open({id:be,draggable:!0,width:360,title:{title:o},children:{label:be},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>r.close(be)}),!0}},Yt="COMPONENT_SHEET_DRAWING_PANEL",bt={id:"sidebar.operation.sheet-image",type:l.CommandType.COMMAND,handler:async(i,r)=>{const e=i.get(k.ISidebarService),t=i.get(l.LocaleService),n=i.get(l.IUniverInstanceService),s=i.get(l.ICommandService);return D.getSheetCommandTarget(n)?(r.value==="open"?e.open({header:{title:t.t("sheetImage.panel.title")},children:{label:Yt},onClose:()=>{s.syncExecuteCommand(x.SetDrawingSelectedOperation.id,[])},width:360}):e.close(),!0):!1}},Et={id:"sheet.operation.edit-sheet-image",type:l.CommandType.OPERATION,handler:(i,r)=>{const e=i.get(l.ICommandService);return r==null?!1:(e.syncExecuteCommand(x.SetDrawingSelectedOperation.id,[r]),e.executeCommand(bt.id,{value:"open"}),!0)}},Ot="sheet.menu.image";function ln(i){return{id:Ot,type:k.MenuItemType.SUBITEMS,icon:"AddImageIcon",tooltip:"sheetImage.title",hidden$:k.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(i,{workbookTypes:[D.WorkbookEditablePermission],worksheetTypes:[D.WorksheetEditPermission],rangeTypes:[D.RangeProtectionPermissionEditPoint]})}}function un(i){return{id:Le.id,title:"sheetImage.upload.float",type:k.MenuItemType.BUTTON,hidden$:k.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function gn(i){return{id:Mt.id,title:"sheetImage.upload.cell",type:k.MenuItemType.BUTTON,hidden$:k.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}const hn="@univerjs/sheets-drawing-ui",mn="0.17.0",Gt={name:hn,version:mn},pn="sheets-drawing-ui.config",Wt={};var Sn=Object.getOwnPropertyDescriptor,fn=(i,r,e,t)=>{for(var n=t>1?void 0:t?Sn(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},qe=(i,r)=>(e,t)=>r(e,t,i);let vt=class extends l.Disposable{constructor(r,e,t,n,s){super();se(this,"_isSetCursor",!1);this._context=r,this._hoverManagerService=e,this._selectionsService=t,this._drawingRenderService=n,this._sheetSkeletonManagerService=s,this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe(N.throttleTime(33)).subscribe(r=>{var t,n;let e=[];r!==null&&(e=this._selectionsService.getWorkbookSelections(this._context.unitId).getCurrentSelections()),e.length>0&&(r==null?void 0:r.unitId)===this._context.unitId&&(r!=null&&r.drawing)&&e.length===1&&((t=e[0].primary)==null?void 0:t.actualRow)===r.row&&((n=e[0].primary)==null?void 0:n.actualColumn)===r.col?(this._isSetCursor=!0,this._context.scene.setCursor(j.CURSOR_TYPE.ZOOM_IN)):this._isSetCursor&&(this._isSetCursor=!1,this._context.scene.resetCursor())}))}_initImageClick(){this.disposeWithMe(this._hoverManagerService.currentClickedCell$.subscribe(r=>{var e;if(r!=null&&r.drawing&&this._isSetCursor){const t=r.drawing.drawing.drawingOrigin,n=(e=this._sheetSkeletonManagerService.getCurrentSkeleton())==null?void 0:e.imageCacheMap.getImage(t.imageSourceType,t.source);if(!n)return;this._drawingRenderService.previewImage("preview-cell-image",n.src,n.width,n.height),this._context.scene.resetCursor(),this._isSetCursor=!1}}))}};vt=fn([qe(1,l.Inject(P.HoverManagerService)),qe(2,l.Inject(D.SheetsSelectionsService)),qe(3,l.Inject(ve.DrawingRenderService)),qe(4,l.Inject(P.SheetSkeletonManagerService))],vt);var wn=Object.getOwnPropertyDescriptor,vn=(i,r,e,t)=>{for(var n=t>1?void 0:t?wn(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},Ze=(i,r)=>(e,t)=>r(e,t,i);let _t=class extends l.Disposable{constructor(i,r,e,t,n){super(),this._context=i,this._sheetDrawingService=r,this._drawingManagerService=e,this._sheetSelectionRenderService=t,this._sheetSkeletonManagerService=n,this._init()}_init(){this._drawingInitializeListener()}_drawingInitializeListener(){this._sheetDrawingService.initializeNotification(this._context.unitId);const i=this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId);for(const r in i){const e=i[r];for(const t in e.data){const n=e.data[t];n.sheetTransform&&(n.transform=ee(n.sheetTransform,this._sheetSelectionRenderService,this._sheetSkeletonManagerService))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};_t=vn([Ze(1,w.ISheetDrawingService),Ze(2,x.IDrawingManagerService),Ze(3,l.Inject(P.ISheetSelectionRenderService)),Ze(4,l.Inject(P.SheetSkeletonManagerService))],_t);var _n=Object.getOwnPropertyDescriptor,In=(i,r,e,t)=>{for(var n=t>1?void 0:t?_n(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},Re=(i,r)=>(e,t)=>r(e,t,i);function Ht(i,r,e){var t,n,s,o;if(((n=(t=e==null?void 0:e.p)==null?void 0:t.body)==null?void 0:n.dataStream.length)===3&&((o=(s=e.p)==null?void 0:s.drawingsOrder)==null?void 0:o.length)===1){const a=e.p.drawings[e.p.drawingsOrder[0]],c=ft(i,{unitId:r.unitId,subUnitId:r.subUnitId,row:r.row,col:r.col},a.docTransform.size.width,a.docTransform.size.height,a.docTransform.angle);if(c)return a.transform.width=c.width,a.transform.height=c.height,a.docTransform.size.width=c.width,a.docTransform.size.height=c.height,a.transform.left=0,a.transform.top=0,a.docTransform.positionH.posOffset=0,a.docTransform.positionV.posOffset=0,e.p.documentStyle.pageSize.width=1/0,e.p.documentStyle.pageSize.height=1/0,!0}return!1}let nt=class extends l.Disposable{constructor(i,r,e,t,n,s){super(),this._commandService=i,this._sheetInterceptorService=r,this._injector=e,this._drawingManagerService=t,this._docDrawingController=n,this._editorBridgeService=s,this._handleInitEditor(),this._initCellContentInterceptor()}_handleInitEditor(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(i=>{i.visible?i.visible&&(this._drawingManagerService.removeDrawingDataForUnit(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)):this._drawingManagerService.removeDrawingDataForUnit(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)})),this.disposeWithMe(this._commandService.onCommandExecuted(i=>{i.id===et.ReplaceSnapshotCommand.id&&i.params.unitId===l.DOCS_ZEN_EDITOR_UNIT_ID_KEY&&(this._drawingManagerService.removeDrawingDataForUnit(l.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(l.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(l.DOCS_ZEN_EDITOR_UNIT_ID_KEY))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(D.INTERCEPTOR_POINT.CELL_CONTENT,{effect:l.InterceptorEffectEnum.Style,priority:D.InterceptCellContentPriority.CELL_IMAGE,handler:(i,r,e)=>{var t;return i!=null&&i.p&&((t=i.p.drawingsOrder)!=null&&t.length)&&(i===r.rawData&&(i={...r.rawData}),i.interceptorStyle||(i.interceptorStyle={}),i.interceptorStyle.tr={a:0},Ht(this._injector,{unitId:r.unitId,subUnitId:r.subUnitId,row:r.row,col:r.col},i)),e(i)}}))}};nt=In([Re(0,l.ICommandService),Re(1,l.Inject(D.SheetInterceptorService)),Re(2,l.Inject(l.Injector)),Re(3,x.IDrawingManagerService),Re(4,l.Inject($t.DocDrawingController)),Re(5,l.Inject(P.IEditorBridgeService))],nt);var Dn=Object.getOwnPropertyDescriptor,yn=(i,r,e,t)=>{for(var n=t>1?void 0:t?Dn(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},Ft=(i,r)=>(e,t)=>r(e,t,i);let rt=class extends l.Disposable{constructor(i,r){super(),this._autoFillService=i,this._injector=r,this._initAutoFillHooks()}_initAutoFillHooks(){this.disposeWithMe(this._autoFillService.addHook({id:"sheet-cell-image-autofill",onBeforeSubmit:(i,r,e,t)=>{new l.ObjectMatrix(t).forValue((n,s,o)=>{Ht(this._injector,{unitId:i.unitId,subUnitId:i.subUnitId,row:n,col:s},o)})}}))}};rt=yn([Ft(0,l.Inject(D.IAutoFillService)),Ft(1,l.Inject(l.Injector))],rt);var Cn=Object.getOwnPropertyDescriptor,Tn=(i,r,e,t)=>{for(var n=t>1?void 0:t?Cn(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},je=(i,r)=>(e,t)=>r(e,t,i);const Rn=[l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,l.DOCS_ZEN_EDITOR_UNIT_ID_KEY];let it=class extends l.Disposable{constructor(i,r,e,t,n){super(),this._commandService=i,this._univerInstanceService=r,this._dialogService=e,this._renderManagerService=t,this._localeService=n,this._initDocImageCopyPasteHooks()}_setCellImage(i){var n;const r=l.createDocumentModelWithStyle("",{}),e=(n=j.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService))==null?void 0:n.with(P.EditingRenderController),t=l.BuildTextUtils.drawing.add({documentDataModel:r,drawings:[i],selection:{collapsed:!0,startOffset:0,endOffset:0}});t&&(r.apply(t),e&&e.submitCellData(r))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(i=>{var r,e;if(i.id===et.InnerPasteCommand.id){const t=i.params,{doc:n}=t,s=this._univerInstanceService.getCurrentUnitOfType(l.UniverInstanceType.UNIVER_DOC);if(s==null||!Object.keys((r=n.drawings)!=null?r:{}).length)return;const o=s.getUnitId();if(Rn.includes(o)){if(o!==l.DOCS_ZEN_EDITOR_UNIT_ID_KEY){const a=()=>{this._dialogService.close("sheet-cell-image-copy-paste"),this._commandService.syncExecuteCommand(P.SetCellEditVisibleOperation.id,{visible:!1})};((e=s.getBody())==null?void 0:e.dataStream)===`\r
2
- `?(this._commandService.syncExecuteCommand(P.SetCellEditVisibleOperation.id,{visible:!1}),this._setCellImage(Object.values(n.drawings)[0])):this._dialogService.open({id:"sheet-cell-image-copy-paste",title:{label:this._localeService.t("cell-image.pasteTitle")},children:{label:this._localeService.t("cell-image.pasteContent")},width:320,destroyOnClose:!0,onClose:a,showOk:!0,showCancel:!0,onOk:()=>{a(),this._setCellImage(Object.values(n.drawings)[0])},onCancel:a})}throw new Error("Sheet cell image copy paste is not supported in this unit")}}}))}};it=Tn([je(0,l.ICommandService),je(1,l.IUniverInstanceService),je(2,k.IDialogService),je(3,j.IRenderManagerService),je(4,l.Inject(l.LocaleService))],it);var Mn=Object.getOwnPropertyDescriptor,bn=(i,r,e,t)=>{for(var n=t>1?void 0:t?Mn(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},ke=(i,r)=>(e,t)=>r(e,t,i);const Vt="image/png";function En(i){const r=i.split(","),e=atob(r[1]),t=e.length,n=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);return new Blob([n],{type:Vt})}function On(i){const r=new ClipboardItem({[Vt]:En(i)});navigator.clipboard.write([r]).catch(e=>{console.error("Could not copy image using clipboard API: ",e)})}function An(){function i(){const t=document.createElement("input");return t.style.position="absolute",t.style.height="1px",t.style.width="1px",t.style.opacity="0",t}const r=document.activeElement,e=i();return document.body.appendChild(e),e.focus(),()=>{e.blur(),document.body.removeChild(e),r instanceof HTMLElement&&r.focus()}}const Lt=[P.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,P.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,P.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,P.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA];let st=class extends l.Disposable{constructor(r,e,t,n,s){super();se(this,"_copyInfo");this._sheetClipboardService=r,this._renderManagerService=e,this._drawingService=t,this._clipboardInterfaceService=n,this._commandService=s,this._initCopyPaste()}get _focusedDrawings(){return this._drawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:"SHEET_IMAGE_UI_PLUGIN",onBeforeCopy:(r,e,t,n)=>{this._copyInfo=null;const s=this._focusedDrawings;if(s.length>0){const[o]=s;if(o.drawingType!==l.DrawingTypeEnum.DRAWING_IMAGE)return;if(n===P.COPY_TYPE.CUT){const c={unitId:r,drawings:[o]};this._commandService.executeCommand(Oe.id,c)}setTimeout(()=>{const c=An();o.drawingType===l.DrawingTypeEnum.DRAWING_IMAGE&&o.imageSourceType===x.ImageSourceType.BASE64?On(o.source):this._clipboardInterfaceService.writeText(""),c()},200);const a={unitId:o.unitId,subUnitId:o.subUnitId,drawings:[o]};this._copyInfo=a}else{const o=this._createDrawingsCopyInfoByRange(r,e,t);this._copyInfo=o}},onPasteCells:(r,e,t,n)=>{if(!this._copyInfo)return{redos:[],undos:[]};const{copyType:s=P.COPY_TYPE.COPY,pasteType:o}=n,{range:a}=r||{},{range:c,unitId:g,subUnitId:u}=e;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({pasteType:o,unitId:g,subUnitId:u,pasteRange:c},{copyRange:a,copyType:s}):this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:o},P.COPY_TYPE.COPY)},onPastePlainText:(r,e)=>({undos:[],redos:[]}),onPasteUnrecognized:r=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:r,pasteType:P.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},P.COPY_TYPE.COPY):{undos:[],redos:[]},onPasteFiles:(r,e)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:r,pasteType:P.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},P.COPY_TYPE.COPY);{const t=e.filter(n=>n.type.includes("image"));if(t.length)return{undos:[],redos:[{id:Le.id,params:{files:t}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(r,e,t){var m;const n=(m=this._renderManagerService.getRenderById(r))==null?void 0:m.with(P.SheetSkeletonManagerService);if(!n)return;const s=n.attachRangeWithCoord(t);if(!s)return;const{startX:o,endX:a,startY:c,endY:g}=s,u=this._drawingService.getDrawingData(r,e),d=this._focusedDrawings.slice();if(Object.keys(u).forEach(h=>{const p=u[h];if(p.drawingType!==l.DrawingTypeEnum.DRAWING_IMAGE)return;const{transform:S}=p;if(p.anchorType!==w.SheetDrawingAnchorType.Both||!S)return;const{left:f=0,top:v=0,width:I=0,height:T=0}=S,{drawingStartX:O,drawingEndX:C,drawingStartY:y,drawingEndY:R}={drawingStartX:f,drawingEndX:f+I,drawingStartY:v,drawingEndY:v+T};o<=O&&C<=a&&c<=y&&R<=g&&d.push(p)}),d.length)return{copyRange:t,drawings:d,unitId:r,subUnitId:e}}_generateSingleDrawingPasteMutations(r,e){const{pasteType:t,pasteTo:n}=r;if(Lt.includes(t))return{redos:[],undos:[]};const{unitId:s,subUnitId:o,range:a}=n,c=this._renderManagerService.getRenderById(s),g=c==null?void 0:c.with(P.SheetSkeletonManagerService),u=c==null?void 0:c.with(P.ISheetSelectionRenderService),d=this._copyInfo;if(!g||!u)return{redos:[],undos:[]};const{drawings:m}=d,h=D.discreteRangeToRange(a);return this._generateMutations(m,{unitId:s,subUnitId:o,isCut:e===P.COPY_TYPE.CUT,getTransform:(p,S)=>{var I,T;const f=g.attachRangeWithCoord({startRow:h.startRow,endRow:h.endRow,startColumn:h.startColumn,endColumn:h.endColumn}),v={...p,left:f==null?void 0:f.startX,top:f==null?void 0:f.startY};return{transform:v,sheetTransform:(I=$(v,u))!=null?I:S,axisAlignSheetTransform:(T=Y(v,u))!=null?T:S}}})}_generateMutations(r,e){const{unitId:t,subUnitId:n,getTransform:s,isCut:o}=e,a=[],c=[],{_drawingService:g}=this;return r.forEach(u=>{const{transform:d,sheetTransform:m}=u;if(!d)return;const h=s(d,m),p={...u,unitId:t,subUnitId:n,drawingId:o?u.drawingId:l.generateRandomId(),transform:h.transform,sheetTransform:h.sheetTransform,axisAlignSheetTransform:h.axisAlignSheetTransform};if(o){const{undo:S,redo:f,objects:v}=g.getBatchUpdateOp([p]);a.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,type:w.DrawingApplyType.UPDATE,op:f,objects:v}}),c.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,type:w.DrawingApplyType.UPDATE,op:S,objects:v}})}else{const{undo:S,redo:f,objects:v}=g.getBatchAddOp([p]);a.push({id:w.SetDrawingApplyMutation.id,params:{op:f,unitId:t,subUnitId:n,objects:v,type:w.DrawingApplyType.INSERT}}),c.push({id:w.SetDrawingApplyMutation.id,params:{op:S,unitId:t,subUnitId:n,objects:v,type:w.DrawingApplyType.REMOVE}})}}),{redos:a,undos:c}}_generateRangeDrawingsPasteMutations(r,e){var M;const{unitId:t,subUnitId:n,pasteType:s,pasteRange:o}=r,{copyRange:a,copyType:c}=e;if(Lt.includes(s))return{redos:[],undos:[]};const g=(M=this._renderManagerService.getRenderById(t))==null?void 0:M.with(P.SheetSkeletonManagerService);if(!g||!this._copyInfo)return{redos:[],undos:[]};const{drawings:u}=this._copyInfo;if(!a)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:t,subUnitId:n,range:D.discreteRangeToRange(o)},pasteType:s},c);const{ranges:[d,m],mapFunc:h}=P.virtualizeDiscreteRanges([a,o]),{row:p,col:S}=h(d.startRow,d.startColumn),{row:f,col:v}=h(m.startRow,m.startColumn),I=g.attachRangeWithCoord({startRow:p,endRow:p,startColumn:S,endColumn:S}),T=g.attachRangeWithCoord({startRow:f,endRow:f,startColumn:v,endColumn:v});if(!I||!T||!this._copyInfo)return{redos:[],undos:[]};const O=T.startX-I.startX,C=T.startY-I.startY,y=f-p,R=v-S;return this._generateMutations(u,{unitId:t,subUnitId:n,getTransform:(U,b)=>{var B,W,J;const A={...U,left:((B=U==null?void 0:U.left)!=null?B:0)+O,top:((W=U==null?void 0:U.top)!=null?W:0)+C},_=this._renderManagerService.getRenderById(t),E=_==null?void 0:_.with(P.ISheetSelectionRenderService);return E?{transform:A,sheetTransform:{...b,to:{...b.to,row:b.to.row+y,column:b.to.column+R},from:{...b.from,row:b.from.row+y,column:b.from.column+R}},axisAlignSheetTransform:(J=Y(A,E))!=null?J:b}:{transform:A,sheetTransform:{...b,to:{...b.to,row:b.to.row+y,column:b.to.column+R},from:{...b.from,row:b.from.row+y,column:b.from.column+R}},axisAlignSheetTransform:{...b,to:{...b.to,row:b.to.row+y,column:b.to.column+R},from:{...b.from,row:b.from.row+y,column:b.from.column+R}}}},isCut:c===P.COPY_TYPE.CUT})}};st=bn([ke(0,P.ISheetClipboardService),ke(1,j.IRenderManagerService),ke(2,x.IDrawingManagerService),ke(3,k.IClipboardInterfaceService),ke(4,l.ICommandService)],st);var Un=Object.getOwnPropertyDescriptor,Pn=(i,r,e,t)=>{for(var n=t>1?void 0:t?Un(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},Be=(i,r)=>(e,t)=>r(e,t,i);let ot=class extends l.Disposable{constructor(i,r,e,t,n){super(),this._drawingManagerService=i,this._renderManagerService=r,this._permissionService=e,this._univerInstanceService=t,this._userManagerService=n,this._initDrawingVisible(),this._initDrawingEditable(),this._initViewPermissionChange(),this._initEditPermissionChange()}_initDrawingVisible(){const i=this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),r=this._userManagerService.currentUser$,e=N.combineLatest([i,r]);this.disposeWithMe(e.pipe(N.switchMap(([t,n])=>t?t.activeSheet$.pipe(N.tap(s=>{if(!s){this._drawingManagerService.setDrawingVisible(!1);return}const o=t.getUnitId(),a=s.getSheetId();this._permissionService.composePermission([new D.WorkbookViewPermission(o).id,new D.WorksheetViewPermission(o,a).id]).every(g=>g.value)?this._drawingManagerService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(t,s)})):(this._drawingManagerService.setDrawingVisible(!1),N.EMPTY))).subscribe())}_handleDrawingVisibilityFalse(i,r){this._drawingManagerService.setDrawingVisible(!1);const e=i.getUnitId(),t=r.getSheetId(),n=this._drawingManagerService.getDrawingData(e,t),s=Object.values(n),o=this._renderManagerService.getRenderById(e),a=o==null?void 0:o.scene;if(!a)return;a.getAllObjectsByOrder().forEach(g=>{g.classType===j.RENDER_CLASS_TYPE.IMAGE&&s.some(u=>g.oKey.includes(u.drawingId))&&a.removeObject(g)})}_initDrawingEditable(){const i=this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),r=this._userManagerService.currentUser$,e=N.combineLatest([i,r]);this.disposeWithMe(e.pipe(N.switchMap(([t,n])=>t?t.activeSheet$.pipe(N.tap(s=>{if(!s){this._drawingManagerService.setDrawingEditable(!1);return}const o=t.getUnitId(),a=s.getSheetId();this._permissionService.composePermission([new D.WorkbookEditablePermission(o).id,new D.WorksheetEditPermission(o,a).id]).every(g=>g.value)?this._drawingManagerService.setDrawingEditable(!0):this._handleDrawingEditableFalse(t,s)})):(this._drawingManagerService.setDrawingEditable(!1),N.EMPTY))).subscribe())}_handleDrawingEditableFalse(i,r){this._drawingManagerService.setDrawingEditable(!1);const e=i.getUnitId(),t=r.getSheetId(),n=this._drawingManagerService.getDrawingData(e,t),s=Object.values(n),o=this._renderManagerService.getRenderById(e),a=o==null?void 0:o.scene;if(!a)return;a.getAllObjectsByOrder().forEach(g=>{g.classType===j.RENDER_CLASS_TYPE.IMAGE&&s.some(u=>g.oKey.includes(u.drawingId))&&a.detachTransformerFrom(g)})}_initViewPermissionChange(){const i=this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),r=this._userManagerService.currentUser$;this.disposeWithMe(N.combineLatest([i,r]).pipe(N.switchMap(([e,t])=>e?e.activeSheet$.pipe(N.switchMap(n=>{if(!n)return N.EMPTY;const s=e.getUnitId(),o=n.getSheetId(),a=this._renderManagerService.getRenderById(s),c=a==null?void 0:a.scene;if(!c)return N.EMPTY;const g=c.getTransformerByCreate();return this._permissionService.composePermission$([new D.WorkbookViewPermission(s).id,new D.WorksheetViewPermission(s,o).id]).pipe(N.map(d=>d.every(m=>m.value)),N.distinctUntilChanged()).pipe(N.map(d=>({permission:d,scene:c,transformer:g,unitId:s,subUnitId:o})))})):N.EMPTY)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:s,subUnitId:o})=>{this._drawingManagerService.setDrawingVisible(e);const a=t.getAllObjectsByOrder(),c=this._drawingManagerService.getDrawingData(s,o),g=Object.values(c);e?this._drawingManagerService.addNotification(g):(a.forEach(u=>{u.classType===j.RENDER_CLASS_TYPE.IMAGE&&g.some(d=>u.oKey.includes(d.drawingId))&&t.removeObject(u)}),n.clearSelectedObjects())},complete:()=>{this._drawingManagerService.setDrawingVisible(!0);const e=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet(),n=e==null?void 0:e.getUnitId(),s=t==null?void 0:t.getSheetId();if(!n||!s)return;const o=this._drawingManagerService.getDrawingData(n,s),a=Object.values(o);this._drawingManagerService.addNotification(a)}}))}_initEditPermissionChange(){const i=this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),r=this._userManagerService.currentUser$;this.disposeWithMe(N.combineLatest([i,r]).pipe(N.switchMap(([e,t])=>e?e.activeSheet$.pipe(N.switchMap(n=>{if(!n)return N.EMPTY;const s=e.getUnitId(),o=n.getSheetId(),a=this._renderManagerService.getRenderById(s),c=a==null?void 0:a.scene;if(!c)return N.EMPTY;const g=c.getTransformerByCreate();return this._permissionService.composePermission$([new D.WorkbookEditablePermission(s).id,new D.WorksheetEditPermission(s,o).id]).pipe(N.map(d=>d.every(m=>m.value)),N.distinctUntilChanged()).pipe(N.map(d=>({permission:d,scene:c,transformer:g,unitId:s,subUnitId:o})))})):N.EMPTY)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:s,subUnitId:o})=>{this._drawingManagerService.setDrawingEditable(e);const a=t.getAllObjectsByOrder(),c=this._drawingManagerService.getDrawingData(s,o),g=Object.values(c);e?(a.forEach(u=>{u.classType===j.RENDER_CLASS_TYPE.IMAGE&&g.some(d=>u.oKey.includes(d.drawingId))&&t.attachTransformerTo(u)}),this._drawingManagerService.addNotification(g)):(a.forEach(u=>{u.classType===j.RENDER_CLASS_TYPE.IMAGE&&g.some(d=>u.oKey.includes(d.drawingId))&&t.detachTransformerFrom(u)}),n.clearSelectedObjects())},complete:()=>{const e=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!e)return;const t=e.getUnitId(),n=e.getActiveSheet();if(!n)return;const s=n.getSheetId(),o=this._renderManagerService.getRenderById(t),a=o==null?void 0:o.scene;if(!a)return;const c=this._drawingManagerService.getDrawingData(t,s),g=Object.values(c);this._drawingManagerService.setDrawingEditable(!0),a.getAllObjectsByOrder().forEach(d=>{d.classType===j.RENDER_CLASS_TYPE.IMAGE&&g.some(m=>d.oKey.includes(m.drawingId))&&a.detachTransformerFrom(d)})}}))}};ot=Pn([Be(0,x.IDrawingManagerService),Be(1,j.IRenderManagerService),Be(2,l.IPermissionService),Be(3,l.IUniverInstanceService),Be(4,l.Inject(l.UserManagerService))],ot);var Nn=Object.getOwnPropertyDescriptor,xn=(i,r,e,t)=>{for(var n=t>1?void 0:t?Nn(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},_e=(i,r)=>(e,t)=>r(e,t,i);const Xt="univer-sheet-float-dom-";function Kt(i,r,e,t,n,s=!1){const{scaleX:o,scaleY:a}=r.getAncestorScale(),c=r.getViewport(j.SHEET_VIEWPORT_KEY.VIEW_MAIN),g=t.getFreeze(),{startColumn:u,startRow:d,xSplit:m,ySplit:h}=g,p={left:!0,top:!0};if(!c)return{...i,absolute:p};const{left:S,right:f,top:v,bottom:I}=i;let{top:T,left:O,viewportScrollX:C,viewportScrollY:y}=c;const{boundsOfViewArea:R,scrollDirectionResponse:M}=n||{},{rowHeaderWidth:U,columnHeaderHeight:b}=e,A={top:s?0:b,left:s?0:U};R&&(l.Tools.isDefine(A.top)&&(A.top=R.top),l.Tools.isDefine(A.left)&&(A.left=R.left)),M==="HORIZONTAL"&&(y=0),M==="VERTICAL"&&(C=0);let _=0,E=0;const B=e.rowStartY(d-h)+b,W=e.colStartX(u-m)+U,J=e.rowStartY(d)+b,te=e.colStartX(u)+U;if(m===0)p.left=!1,_=(S-C)*o,E=(f-C)*o;else{const H=S-(W-U),Z=f-(W-U);f<te?(_=H*o,E=Z*o):S<=te&&f>=te?(_=H*o,E=Math.max(O,(f-C)*o)):S>te&&(p.left=!1,_=Math.max((S-C)*o,O),E=Math.max((f-C)*o,O))}let K=0,z=0;if(h===0)p.top=!1,K=(v-y)*a,z=(I-y)*a;else{const H=v-(B-b),Z=I-(B-b);I<J?(K=H*a,z=Z*a):v<=J&&I>=J?(K=H*a,z=Math.max(T,(I-y)*a)):v>J&&(p.top=!1,K=Math.max((v-y)*a,T),z=Math.max((I-y)*a,T))}return _=Math.max(_,A.left),K=Math.max(K,A.top),E=Math.max(E,A.left),z=Math.max(z,A.top),{left:_,right:E,top:K,bottom:z,absolute:p}}const de=(i,r,e,t,n)=>{const{left:s,top:o,width:a,height:c,angle:g}=i,u={left:s,right:s+a,top:o,bottom:o+c},d=Kt(u,r,e,t,n),{scaleX:m,scaleY:h}=r.getAncestorScale();return{startX:d.left,endX:d.right,startY:d.top,endY:d.bottom,rotate:g,width:a*m,height:c*h,absolute:d.absolute}};exports.SheetCanvasFloatDomManagerService=class extends l.Disposable{constructor(e,t,n,s,o,a,c){super();se(this,"_domLayerInfoMap",new Map);se(this,"_transformChange$",new N.Subject);se(this,"transformChange$",this._transformChange$.asObservable());se(this,"_add$",new N.Subject);se(this,"add$",this._add$.asObservable());se(this,"_remove$",new N.Subject);se(this,"remove$",this._remove$.asObservable());this._renderManagerService=e,this._univerInstanceService=t,this._commandService=n,this._drawingManagerService=s,this._canvasFloatDomService=o,this._sheetDrawingService=a,this._lifecycleService=c,this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe(N.filter(e=>e===l.LifecycleStages.Rendered),N.take(1)).subscribe(()=>{this._scrollUpdateListener()})}getFloatDomInfo(e){return this._domLayerInfoMap.get(e)}getFloatDomsBySubUnitId(e,t){return Array.from(this._domLayerInfoMap.values()).filter(n=>n.subUnitId===t&&n.unitId===e)}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;const t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;if(t==null||n==null)return null;const s=n.getTransformerByCreate(),o=t.engine.getCanvasElement();return{scene:n,transformer:s,renderUnit:t,canvas:o}}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{e.forEach(t=>{var Z;const{unitId:n,subUnitId:s,drawingId:o}=t,a=D.getSheetCommandTarget(this._univerInstanceService,{unitId:n,subUnitId:s}),c=this._drawingManagerService.getDrawingByParam(t),g=this._univerInstanceService.getUnit(n,l.UniverInstanceType.UNIVER_SHEET);if(!g)return;const u=g.getActiveSheet().getSheetId();if(!c||!a)return;const d=(Z=this._renderManagerService.getRenderById(n))==null?void 0:Z.with(P.SheetSkeletonManagerService).getSkeletonParam(s);if(!d)return;const{transform:m,drawingType:h,data:p}=c;if(h!==l.DrawingTypeEnum.DRAWING_DOM&&h!==l.DrawingTypeEnum.DRAWING_CHART)return;const S=this._getSceneAndTransformerByDrawingSearch(n);if(S==null)return;const{scene:f,canvas:v}=S;if(m==null)return!0;if(u!==s)return;const{left:I,top:T,width:O,height:C,angle:y,flipX:R,flipY:M,skewX:U,skewY:b}=m,A=x.getDrawingShapeKeyByDrawingSearch({unitId:n,subUnitId:s,drawingId:o}),_=f.getObject(A);if(_!=null){_.transformByState({left:I,top:T,width:O,height:C,angle:y,flipX:R,flipY:M,skewX:U,skewY:b});return}const E={left:I,top:T,width:O,height:C,zIndex:this._drawingManagerService.getDrawingOrder(n,s).length-1},B=h===l.DrawingTypeEnum.DRAWING_CHART;if(E.rotateEnabled=!1,B){const F=p?p.backgroundColor:"white";E.fill=F,p&&p.border&&(E.stroke=p.border),E.paintFirst="stroke",E.strokeWidth=1,E.borderEnabled=!1,E.radius=8}const W=new j.Rect(A,E);B&&W.setObjectType(j.ObjectType.CHART),f.addObject(W,j.DRAWING_OBJECT_LAYER_INDEX),c.allowTransform!==!1&&f.attachTransformerTo(W);const J=new l.DisposableCollection,te=de(W,S.renderUnit.scene,d.skeleton,a.worksheet),K=new N.BehaviorSubject(te),z=`${Xt}${l.generateRandomId(6)}`,ne={dispose:J,rect:W,position$:K,unitId:n,subUnitId:s,id:o,domId:z};this._canvasFloatDomService.addFloatDom({position$:K,id:o,domId:z,componentKey:c.componentKey,onPointerDown:F=>{v.dispatchEvent(new PointerEvent(F.type,F))},onPointerMove:F=>{v.dispatchEvent(new PointerEvent(F.type,F))},onPointerUp:F=>{v.dispatchEvent(new PointerEvent(F.type,F))},onWheel:F=>{v.dispatchEvent(new WheelEvent(F.type,F))},data:p,unitId:n});const H=W.onTransformChange$.subscribeEvent(()=>{const F=de(W,S.renderUnit.scene,d.skeleton,a.worksheet);K.next(F)});J.add(()=>{this._canvasFloatDomService.removeFloatDom(o)}),H&&J.add(H),this._domLayerInfoMap.set(o,ne)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(t=>{var m;const{unitId:n,subUnitId:s,drawingId:o}=t,a=x.getDrawingShapeKeyByDrawingSearch({unitId:n,subUnitId:s,drawingId:o}),c=this._getSceneAndTransformerByDrawingSearch(n);if(c==null)return;const{transformer:g,scene:u}=c,d=u.getObject(a);d!=null&&d.oKey&&(g.clearControlByIds([d==null?void 0:d.oKey]),(m=u.getTransformer())==null||m.clearSelectedObjects())})}))}_scrollUpdateListener(){const e=(t,n)=>{var g;const s=this._getSceneAndTransformerByDrawingSearch(t),o=Array.from(this._domLayerInfoMap.keys()).map(u=>({id:u,...this._domLayerInfoMap.get(u)})).filter(u=>u.subUnitId===n&&u.unitId===t).map(u=>u.id),a=D.getSheetCommandTarget(this._univerInstanceService,{unitId:t,subUnitId:n}),c=(g=this._renderManagerService.getRenderById(t))==null?void 0:g.with(P.SheetSkeletonManagerService).getSkeletonParam(n);!s||!a||!c||o.forEach(u=>{const d=this._domLayerInfoMap.get(u);if(d){const m=de(d.rect,s.renderUnit.scene,c.skeleton,a.worksheet,d);d.position$.next(m)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).pipe(N.switchMap(t=>t?t.activeSheet$:N.of(null)),N.map(t=>{if(!t)return null;const n=t.getUnitId(),s=this._renderManagerService.getRenderById(n);return s?{render:s,unitId:n,subUnitId:t.getSheetId()}:null}),N.switchMap(t=>t?l.fromEventSubject(t.render.scene.getViewport(j.SHEET_VIEWPORT_KEY.VIEW_MAIN).onScrollAfter$).pipe(N.map(()=>({unitId:t.unitId,subUnitId:t.subUnitId}))):N.of(null))).subscribe(t=>{if(!t)return;const{unitId:n,subUnitId:s}=t;e(n,s)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===P.SetZoomRatioOperation.id){const n=t.params,{unitId:s}=n;Array.from(this._domLayerInfoMap.values()).filter(a=>a.unitId===s).map(a=>a.subUnitId).forEach(a=>{e(s,a)})}else if(t.id===D.SetFrozenMutation.id){const{unitId:n,subUnitId:s}=t.params;e(n,s)}else if(t.id===D.SetSelectionsOperation.id){const{unitId:n,subUnitId:s}=t.params;e(n,s)}}))}updateFloatDomProps(e,t,n,s){const o=this._domLayerInfoMap.get(n),a=this._getSceneAndTransformerByDrawingSearch(e);if(o&&a){const{scene:c}=a,g=x.getDrawingShapeKeyByDrawingSearch({unitId:e,subUnitId:t,drawingId:n}),u=c.getObject(g);u&&u instanceof j.Rect&&u.setProps(s)}}_getPosition(e,t){var h;const{startX:n,endX:s,startY:o,endY:a}=e,c=(h=this._renderManagerService.getRenderById(t))==null?void 0:h.with(P.ISheetSelectionRenderService);if(c==null)return;const g=c.getCellWithCoordByOffset(n,o);if(g==null)return;const u={column:g.actualColumn,columnOffset:n-g.startX,row:g.actualRow,rowOffset:o-g.startY},d=c.getCellWithCoordByOffset(s,a);if(d==null)return;const m={column:d.actualColumn,columnOffset:s-d.startX,row:d.actualRow,rowOffset:a-d.startY};return{from:u,to:m}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(t=>{const n=this._drawingManagerService.getDrawingByParam(t);if(!n||n.drawingType!==l.DrawingTypeEnum.DRAWING_DOM&&n.drawingType!==l.DrawingTypeEnum.DRAWING_CHART)return;const s={...n.transform};this._transformChange$.next({id:t.drawingId,value:s}),this._canvasFloatDomService.updateFloatDom(t.drawingId,{...n});const o=this._getSceneAndTransformerByDrawingSearch(t.unitId);if(o&&n.drawingType!==l.DrawingTypeEnum.DRAWING_CHART){const{scene:a}=o,c=this._domLayerInfoMap.get(t.drawingId);c!=null&&c.rect&&(n.allowTransform===!1?a.detachTransformerFrom(c.rect):a.attachTransformerTo(c.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(t=>{this._removeDom(t.drawingId)})}))}addFloatDomToPosition(e,t){const n=D.getSheetCommandTarget(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!n)throw new Error("cannot find current target!");const{unitId:s,subUnitId:o}=n,{initPosition:a,componentKey:c,data:g,allowTransform:u=!0}=e,d=t!=null?t:l.generateRandomId(),m=this._getPosition(a,s);if(m==null)return;const h={unitId:s,subUnitId:o,drawingId:d,drawingType:e.type||l.DrawingTypeEnum.DRAWING_DOM,componentKey:c,sheetTransform:m,transform:{left:a.startX,top:a.startY,width:a.endX-a.startX,height:a.endY-a.startY},axisAlignSheetTransform:m,data:g,allowTransform:u};return this._commandService.executeCommand(Fe.id,{unitId:s,drawings:[h]}),this._add$.next({unitId:s,subUnitId:o,id:d}),{id:d,dispose:()=>{this._removeDom(d,!0)}}}_removeDom(e,t=!1){const n=this._domLayerInfoMap.get(e);if(!n)return;const{unitId:s,subUnitId:o}=n;this._domLayerInfoMap.delete(e),n.dispose.dispose();const a=this._getSceneAndTransformerByDrawingSearch(s);if(a&&a.scene.removeObject(n.rect),t){const c=this._drawingManagerService.getDrawingByParam({unitId:s,subUnitId:o,drawingId:e});if(!c)return;const g=this._sheetDrawingService.getBatchRemoveOp([c]),{redo:u,objects:d}=g;this._commandService.syncExecuteCommand(w.SetDrawingApplyMutation.id,{unitId:s,subUnitId:o,op:u,objects:d,type:w.DrawingApplyType.REMOVE})}}addFloatDomToRange(e,t,n,s){var R,M,U;const o=D.getSheetCommandTarget(this._univerInstanceService,{unitId:t.unitId,subUnitId:t.subUnitId});if(!o)throw new Error("cannot find current target!");const{unitId:a,subUnitId:c}=o,g=this._getSceneAndTransformerByDrawingSearch(a);if(!g)return;const u=this._renderManagerService.getRenderById(a);if(!u)return;const d=(R=this._renderManagerService.getRenderById(a))==null?void 0:R.with(P.SheetSkeletonManagerService).getWorksheetSkeleton(c);if(!d)return;const{componentKey:m,data:h,allowTransform:p=!0}=t,S=s!=null?s:l.generateRandomId(),{position:f,position$:v}=this._createRangePositionObserver(e,u,d.skeleton);if(this._getPosition(f,a)==null)return;const T=g.scene,{scaleX:O}=T.getAncestorScale(),C=Je(f,n,O),y={unitId:a,subUnitId:c,drawingId:S,drawingType:t.type||l.DrawingTypeEnum.DRAWING_DOM,componentKey:m,transform:{left:C.startX,top:C.startY,width:C.width,height:C.height},data:h,allowTransform:p};{const{unitId:b,subUnitId:A,drawingId:_}=y,E=D.getSheetCommandTarget(this._univerInstanceService,{unitId:b,subUnitId:A}),B=y,W=this._univerInstanceService.getUnit(b,l.UniverInstanceType.UNIVER_SHEET);if(!W)return;const J=W.getActiveSheet().getSheetId();if(!B||!E)return;const te=(M=this._renderManagerService.getRenderById(b))==null?void 0:M.with(P.SheetSkeletonManagerService);if(!te)return;const K=te.getWorksheetSkeleton(A);if(!K)return;const{transform:z,drawingType:ne,data:H}=B;if(ne!==l.DrawingTypeEnum.DRAWING_DOM&&ne!==l.DrawingTypeEnum.DRAWING_CHART)return;const Z=this._getSceneAndTransformerByDrawingSearch(b);if(Z==null)return;const{scene:F,canvas:oe}=Z;if(z==null||J!==A)return;const{left:le,top:ae,width:pe,height:Se,angle:gt,flipX:ht,flipY:Ye,skewX:Ge,skewY:De}=z,He=x.getDrawingShapeKeyByDrawingSearch({unitId:b,subUnitId:A,drawingId:_}),ue=F.getObject(He);if(ue!=null){ue.transformByState({left:le,top:ae,width:pe,height:Se,angle:gt,flipX:ht,flipY:Ye,skewX:Ge,skewY:De});return}const ie={left:le,top:ae,width:pe,height:Se,zIndex:this._drawingManagerService.getDrawingOrder(b,A).length-1},ye=ne===l.DrawingTypeEnum.DRAWING_CHART;if(ye){const L=H?H.backgroundColor:"white";ie.fill=L,ie.rotateEnabled=!1,H&&H.border&&(ie.stroke=H.border),ie.paintFirst="stroke",ie.strokeWidth=1,ie.borderEnabled=!1,ie.radius=8}const ge=new j.Rect(He,ie);ye&&ge.setObjectType(j.ObjectType.CHART),F.addObject(ge,j.DRAWING_OBJECT_LAYER_INDEX),B.allowTransform!==!1&&F.attachTransformerTo(ge);const he=new l.DisposableCollection,Ve=F.getMainViewport(),{rowHeaderWidth:Ce,columnHeaderHeight:Pe}=K.skeleton,Xe={top:Pe,left:Ce,bottom:Ve.bottom,right:Ve.right},me={dispose:he,rect:ge,boundsOfViewArea:Xe,domAnchor:n,unitId:b,subUnitId:A},q=de(ge,Z.renderUnit.scene,K.skeleton,E.worksheet,me),Te=new N.BehaviorSubject(q);me.position$=Te;let Ne={position$:Te,id:_,componentKey:B.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:L=>{oe.dispatchEvent(new WheelEvent(L.type,L))},data:H,unitId:b};t.eventPassThrough&&(Ne={...Ne,onPointerDown:L=>{oe.dispatchEvent(new PointerEvent(L.type,L))},onPointerMove:L=>{oe.dispatchEvent(new PointerEvent(L.type,L))},onPointerUp:L=>{oe.dispatchEvent(new PointerEvent(L.type,L))}}),this._canvasFloatDomService.addFloatDom(Ne),this.disposeWithMe(v.subscribe(L=>{var Ut,Pt,Nt,xt;const At=Je({startX:L.startX,startY:L.startY,endX:L.endX,endY:L.endY,width:(Ut=n.width)!=null?Ut:L.width,height:(Pt=n.height)!=null?Pt:L.height,absolute:{left:f.absolute.left,top:f.absolute.top}},n),qt=x.getDrawingShapeKeyByDrawingSearch({unitId:b,subUnitId:A,drawingId:_}),Zt=new j.Rect(qt,{left:At.startX,top:At.startY,width:(Nt=n.width)!=null?Nt:L.width,height:(xt=n.height)!=null?xt:L.height,zIndex:this._drawingManagerService.getDrawingOrder(b,A).length-1}),Jt=de(Zt,Z.renderUnit.scene,K.skeleton,E.worksheet,me);Te.next(Jt)}));const xe=(U=this._renderManagerService.getRenderById(b))==null?void 0:U.with(P.SheetSkeletonManagerService);xe==null||xe.currentSkeleton$.subscribe(L=>{L&&K.sheetId!==L.sheetId&&this._removeDom(S,!0)});const Ke=ge.onTransformChange$.subscribeEvent(()=>{const L=de(ge,Z.renderUnit.scene,K.skeleton,E.worksheet,me);Te.next(L)});he.add(()=>{this._canvasFloatDomService.removeFloatDom(_)}),Ke&&he.add(Ke),this._domLayerInfoMap.set(_,me)}return{id:S,dispose:()=>{this._removeDom(S,!0)}}}addFloatDomToColumnHeader(e,t,n,s){var C,y,R;const o=D.getSheetCommandTarget(this._univerInstanceService,{unitId:t.unitId,subUnitId:t.subUnitId});if(!o)throw new Error("cannot find current target!");const{unitId:a,subUnitId:c}=o;if(!this._getSceneAndTransformerByDrawingSearch(a))return;const u=this._renderManagerService.getRenderById(a);if(!u)return;const d=(C=this._renderManagerService.getRenderById(a))==null?void 0:C.with(P.SheetSkeletonManagerService).getWorksheetSkeleton(c);if(!d)return;const{componentKey:m,data:h,allowTransform:p=!0}=t,S=s!=null?s:l.generateRandomId(),{position:f,position$:v}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:e,endColumn:e},u,d.skeleton),I=f;if(I.startY=0,this._getPosition(f,a)==null)return;const O={unitId:a,subUnitId:c,drawingId:S,drawingType:t.type||l.DrawingTypeEnum.DRAWING_DOM,componentKey:m,transform:{left:I.startX,top:I.startY,width:I.width,height:I.height},data:h,allowTransform:p};{const{unitId:M,subUnitId:U,drawingId:b}=O,A=D.getSheetCommandTarget(this._univerInstanceService,{unitId:M,subUnitId:U}),_=O,E=this._univerInstanceService.getUnit(M,l.UniverInstanceType.UNIVER_SHEET);if(!E)return;const B=E.getActiveSheet().getSheetId();if(!_||!A)return;const W=(y=this._renderManagerService.getRenderById(M))==null?void 0:y.with(P.SheetSkeletonManagerService);if(!W)return;const J=W.getWorksheetSkeleton(U);if(!J)return;const{transform:te,data:K}=_,z=this._getSceneAndTransformerByDrawingSearch(M);if(z==null)return;const{scene:ne,canvas:H}=z;if(te==null||B!==U)return;const{left:Z,top:F,width:oe,height:le,angle:ae,flipX:pe,flipY:Se,skewX:gt,skewY:ht}=te,Ye=x.getDrawingShapeKeyByDrawingSearch({unitId:M,subUnitId:U,drawingId:b}),Ge=ne.getObject(Ye);if(Ge!=null){Ge.transformByState({left:Z,top:F,width:oe,height:le,angle:ae,flipX:pe,flipY:Se,skewX:gt,skewY:ht});return}const De=Je({startX:I.startX,startY:0,endX:f.endX,endY:f.endY,width:n.width,height:n.height,absolute:{left:f.absolute.left,top:f.absolute.top}},n),He={left:De.startX,top:De.startY,width:De.width,height:De.height,zIndex:this._drawingManagerService.getDrawingOrder(M,U).length-1},ue=new j.Rect(Ye,He);ne.addObject(ue,j.DRAWING_OBJECT_LAYER_INDEX),_.allowTransform!==!1&&ne.attachTransformerTo(ue);const ie=new l.DisposableCollection,ye=ne.getMainViewport(),ge={top:0,left:ye.left,bottom:ye.bottom,right:ye.right},he={dispose:ie,rect:ue,unitId:M,subUnitId:U,boundsOfViewArea:ge,domAnchor:n,scrollDirectionResponse:"HORIZONTAL"},Ve=de(ue,z.renderUnit.scene,J.skeleton,A.worksheet,he),Ce=new N.BehaviorSubject(Ve);he.position$=Ce;let Pe={position$:Ce,id:b,componentKey:_.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:q=>{H.dispatchEvent(new WheelEvent(q.type,q))},data:K,unitId:M};t.eventPassThrough&&(Pe={...Pe,onPointerDown:q=>{H.dispatchEvent(new PointerEvent(q.type,q))},onPointerMove:q=>{H.dispatchEvent(new PointerEvent(q.type,q))},onPointerUp:q=>{H.dispatchEvent(new PointerEvent(q.type,q))}}),this._canvasFloatDomService.addFloatDom(Pe);const Xe=ue.onTransformChange$.subscribeEvent(()=>{const q=de(ue,z.renderUnit.scene,J.skeleton,A.worksheet,he);Ce.next(q)});this.disposeWithMe(v.subscribe(q=>{const Te=Je({startX:q.startX,startY:0,endX:q.endX,endY:q.endY,width:n.width,height:n.height,absolute:{left:f.absolute.left,top:f.absolute.top}},n),Ne=x.getDrawingShapeKeyByDrawingSearch({unitId:M,subUnitId:U,drawingId:b}),xe=new j.Rect(Ne,{left:Te.startX,top:0,width:n.width,height:n.height,zIndex:this._drawingManagerService.getDrawingOrder(M,U).length-1}),Ke=de(xe,z.renderUnit.scene,J.skeleton,A.worksheet,he);Ce.next(Ke)}));const me=(R=this._renderManagerService.getRenderById(M))==null?void 0:R.with(P.SheetSkeletonManagerService);me==null||me.currentSkeleton$.subscribe(q=>{q&&d.sheetId!==q.sheetId&&this._removeDom(S,!0)}),ie.add(()=>{this._canvasFloatDomService.removeFloatDom(b)}),Xe&&ie.add(Xe),this._domLayerInfoMap.set(b,he)}return{id:S,dispose:()=>{this._removeDom(S,!0)}}}_createRangePositionObserver(e,t,n){let{startRow:s,startColumn:o}=e;const a=We(s,o,n),c=new N.BehaviorSubject(a),g=We(e.endRow,e.endColumn,n),u=new N.BehaviorSubject(g),d=()=>{const v=We(s,o,n),I=We(e.endRow,e.endColumn,n);c.next(v),u.next(I)},m=new l.DisposableCollection;m.add(t.engine.clientRect$.subscribe(()=>d())),m.add(this._commandService.onCommandExecuted(v=>{if(v.id===D.SetWorksheetRowAutoHeightMutation.id&&v.params.rowsAutoHeightInfo.findIndex(T=>T.row===s)>-1){d();return}(D.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(v.id)>-1||v.id===P.SetScrollOperation.id||v.id===P.SetZoomRatioOperation.id)&&d()}));const h=(v,I)=>{s=v,o=I,d()},p=()=>({rotate:0,width:g.right-a.left,height:g.bottom-a.top,absolute:{left:!0,top:!0},startX:a.left,startY:a.top,endX:g.right,endY:g.bottom}),S=c.pipe(N.map(v=>{const I=We(e.endRow,e.endColumn,n);return{rotate:0,width:I.right-v.left,height:I.bottom-v.top,absolute:{left:!0,top:!0},startX:v.left,startY:v.top,endX:I.right,endY:I.bottom}})),f=p();return{position$:S,position:f,updateRowCol:h,topLeftPos$:c,rightBottomPos$:u,disposable:m}}};exports.SheetCanvasFloatDomManagerService=xn([_e(0,l.Inject(j.IRenderManagerService)),_e(1,l.IUniverInstanceService),_e(2,l.Inject(l.ICommandService)),_e(3,x.IDrawingManagerService),_e(4,l.Inject(k.CanvasFloatDomService)),_e(5,w.ISheetDrawingService),_e(6,l.Inject(l.LifecycleService))],exports.SheetCanvasFloatDomManagerService);function We(i,r,e){const t=e.getCellWithCoordByIndex(i,r),n=t.isMergedMainCell?t.mergeInfo:t;return{left:n.startX,right:n.endX,top:n.startY,bottom:n.endY}}function Je(i,r,e){var g,u;e=e!=null?e:1;const t=i.endX-i.startX,n=i.endY-i.startY,s=(g=r==null?void 0:r.width)!=null?g:t,o=(u=r==null?void 0:r.height)!=null?u:n;let a=0,c=0;if(r){if(r.horizonOffsetAlign==="right"){const d=Qe(r.marginX,t*e);a=i.endX-d-s}else a=i.startX+Qe(r.marginX,t);if(r.verticalOffsetAlign==="bottom"){const d=Qe(r.marginY,n*e);c=i.endY-d-o}else c=i.startY+Qe(r.marginY,n)}return{rotate:0,startX:a,startY:c,endX:i.endX,endY:i.endY,width:s,height:o,absolute:{left:i.absolute.left,top:i.absolute.top}}}function Qe(i,r){if(i===void 0)return 0;if(typeof i=="number")return i;const e=Number.parseFloat(i);return r*e/100}const jn=i=>{const{floatDomInfos:r,scene:e,skeleton:t,worksheet:n}=i,s=Q.useMemo(()=>r.map(o=>{const{width:a,height:c,angle:g,left:u,top:d}=o.transform,m=Kt({left:u!=null?u:0,right:(u!=null?u:0)+(a!=null?a:0),top:d!=null?d:0,bottom:(d!=null?d:0)+(c!=null?c:0)},e,t,n,void 0,!0),{scaleX:h,scaleY:p}=e.getAncestorScale(),S={startX:m.left,endX:m.right,startY:m.top,endY:m.bottom,rotate:g,width:a*h,height:c*p,absolute:m.absolute},f={position$:new N.BehaviorSubject(S),position:S,id:o.drawingId,componentKey:o.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:o.unitId,data:o.data};return[o.drawingId,f]}),[r,e,t,n]);return G.jsx("div",{style:{position:"absolute",top:0,left:0},children:s.map(([o,a])=>G.jsx(k.PrintFloatDomSingle,{layer:a,id:o,position:a.position},o))})};var kn=Object.getOwnPropertyDescriptor,Bn=(i,r,e,t)=>{for(var n=t>1?void 0:t?kn(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},Ie=(i,r)=>(e,t)=>r(e,t,i);let at=class extends l.Disposable{constructor(i,r,e,t,n,s,o){super(),this._sheetPrintInterceptorService=i,this._drawingRenderService=r,this._drawingManagerService=e,this._renderManagerService=t,this._canvasFloatDomManagerService=n,this._componetManager=s,this._injector=o,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(i,r,e)=>{const{unitId:t,scene:n,subUnitId:s}=r,o=this._drawingManagerService.getDrawingDataForUnit(t),a=o==null?void 0:o[s];return a&&a.order.forEach(c=>{const g=a.data[c];g.drawingType!==l.DrawingTypeEnum.DRAWING_CHART&&g.drawingType!==l.DrawingTypeEnum.DRAWING_DOM&&this._drawingRenderService.renderDrawing(g,n)}),e()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(i,r,e)=>{const{unitId:t,subUnitId:n}=r,s=this._renderManagerService.getRenderById(t);if(!s)return e(i);const o=s.with(P.SheetSkeletonManagerService).getSkeletonParam(n);if(!o)return e(i);const a=this._drawingManagerService.getDrawingDataForUnit(t),c=a==null?void 0:a[r.subUnitId];if(!c)return e(i);const{scaleX:g,scaleY:u}=s.scene,d=i?{...i}:{startColumn:0,endColumn:0,endRow:0,startRow:0},m=c.order.map(h=>c.data[h]);return m.length?(m.forEach(h=>{if(!h.groupId&&h.transform&&l.Tools.isDefine(h.transform.left)&&l.Tools.isDefine(h.transform.top)&&l.Tools.isDefine(h.transform.width)&&l.Tools.isDefine(h.transform.height)){const p=o.skeleton.getCellIndexByOffset(h.transform.left,h.transform.top,g,u,{x:0,y:0}),S=o.skeleton.getCellIndexByOffset(h.transform.left+h.transform.width,h.transform.top+h.transform.height,g,u,{x:0,y:0});p.column<d.startColumn&&(d.startColumn=p.column),p.row<d.startRow&&(d.startRow=p.row),d.endRow<S.row&&(d.endRow=S.row),d.endColumn<S.column&&(d.endColumn=S.column)}}),e(d)):e(i)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(i,r,e)=>{const{unitId:t,subUnitId:n}=r,s=this._drawingManagerService.getDrawingDataForUnit(t),o=s==null?void 0:s[n];if(o){const a=o.order.map(g=>{const u=o.data[g];if(u.drawingType===l.DrawingTypeEnum.DRAWING_CHART)return{...u,componentKey:this._componetManager.get(l.PRINT_CHART_COMPONENT_KEY)};if(u.drawingType===l.DrawingTypeEnum.DRAWING_DOM){const d=this._sheetPrintInterceptorService.getPrintComponent(u.componentKey);return{...u,componentKey:this._componetManager.get(d||u.componentKey)}}return null}).filter(Boolean),c=k.connectInjector(jn,this._injector);return V.render(G.jsx(c,{floatDomInfos:a,scene:r.scene,skeleton:r.skeleton,worksheet:r.worksheet}),r.root),i==null||i.add(()=>{V.unmount(r.root)}),e(i)}}}))}};at=Bn([Ie(0,l.Inject(P.SheetPrintInterceptorService)),Ie(1,l.Inject(ve.DrawingRenderService)),Ie(2,x.IDrawingManagerService),Ie(3,j.IRenderManagerService),Ie(4,l.Inject(exports.SheetCanvasFloatDomManagerService)),Ie(5,l.Inject(k.ComponentManager)),Ie(6,l.Inject(l.Injector))],at);var Wn=Object.getOwnPropertyDescriptor,Fn=(i,r,e,t)=>{for(var n=t>1?void 0:t?Wn(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},fe=(i,r)=>(e,t)=>r(e,t,i);const Ln=[D.InsertRowCommand.id,D.InsertColCommand.id,D.RemoveRowCommand.id,D.RemoveColCommand.id,D.DeleteRangeMoveLeftCommand.id,D.DeleteRangeMoveUpCommand.id,D.InsertRangeMoveDownCommand.id,D.InsertRangeMoveRightCommand.id,D.DeltaRowHeightCommand.id,D.SetRowHeightCommand.id,D.DeltaColumnWidthCommand.id,D.SetColWidthCommand.id,D.SetRowHiddenCommand.id,D.SetSpecificRowsVisibleCommand.id,D.SetSpecificColsVisibleCommand.id,D.SetColHiddenCommand.id,D.MoveColsCommand.id,D.MoveRowsCommand.id,D.MoveRangeCommand.id],$n=[D.SetRowVisibleMutation.id,D.SetRowHiddenMutation.id,D.SetColVisibleMutation.id,D.SetColHiddenMutation.id,D.SetWorksheetRowHeightMutation.id,D.SetWorksheetRowAutoHeightMutation.id,D.SetWorksheetRowIsAutoHeightMutation.id,D.SetWorksheetColWidthMutation.id];let It=class extends l.Disposable{constructor(i,r,e,t,n,s,o,a,c){super(),this._context=i,this._renderManagerService=r,this._commandService=e,this._selectionRenderService=t,this._skeletonManagerService=n,this._sheetInterceptorService=s,this._sheetDrawingService=o,this._drawingManagerService=a,this._univerInstanceService=c,this._sheetInterceptorListener(),this._commandListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:i=>{if(!Ln.includes(i.id))return{redos:[],undos:[]};if(i.params==null)return{redos:[],undos:[]};const r=i.id;if(r===D.InsertRowCommand.id)return this._moveRowInterceptor(i.params,"insert");if([D.MoveColsCommand.id,D.MoveRowsCommand.id,D.MoveRangeCommand.id].includes(r))return this._moveRangeInterceptor(i.params);if(r===D.InsertColCommand.id)return this._moveColInterceptor(i.params,"insert");if(r===D.RemoveRowCommand.id)return this._moveRowInterceptor(i.params,"remove");if(r===D.RemoveColCommand.id)return this._moveColInterceptor(i.params,"remove");if(r===D.DeleteRangeMoveLeftCommand.id){const{range:e}=i.params;return this._getRangeMoveUndo(e,0)}else if(r===D.DeleteRangeMoveUpCommand.id){const{range:e}=i.params;return this._getRangeMoveUndo(e,1)}else if(r===D.InsertRangeMoveDownCommand.id){const{range:e}=i.params;return this._getRangeMoveUndo(e,2)}else if(r===D.InsertRangeMoveRightCommand.id){const{range:e}=i.params;return this._getRangeMoveUndo(e,3)}else if(r===D.SetRowHiddenCommand.id||r===D.SetSpecificRowsVisibleCommand.id){const e=i.params,{unitId:t,subUnitId:n,ranges:s}=e;return this._getDrawingUndoForRowVisible(t,n,s)}else if(r===D.SetSpecificColsVisibleCommand.id||r===D.SetColHiddenCommand.id){const e=i.params,{unitId:t,subUnitId:n,ranges:s}=e;return this._getDrawingUndoForColVisible(t,n,s)}else if(r===D.DeltaRowHeightCommand.id||r===D.SetRowHeightCommand.id||r===D.DeltaColumnWidthCommand.id||r===D.SetColWidthCommand.id){const e=i.params,{unitId:t,subUnitId:n,ranges:s}=e,o=r===D.DeltaRowHeightCommand.id||r===D.SetRowHeightCommand.id;return this._getDrawingUndoForRowAndColSize(t,n,s,o)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(i,r){const e=D.getSheetCommandTarget(this._univerInstanceService);if(e==null)return{redos:[],undos:[]};const t=e.unitId,n=e.subUnitId,s=[],o=[],a=this._sheetDrawingService.getDrawingData(t,n),c=[],g=[];if(Object.keys(a).forEach(u=>{const d=a[u],{updateDrawings:m,deleteDrawings:h}=this._getUpdateOrDeleteDrawings(i,r,d);c.push(...m),g.push(...h)}),c.length===0&&g.length===0)return{redos:[],undos:[]};if(c.length>0){const u=this._sheetDrawingService.getBatchUpdateOp(c),{undo:d,redo:m,objects:h}=u;s.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:m,objects:h,type:w.DrawingApplyType.UPDATE}}),o.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:d,objects:h,type:w.DrawingApplyType.UPDATE}})}if(g.length>0){const u=this._sheetDrawingService.getBatchRemoveOp(g),d=u.undo,m=u.redo,h=u.objects;s.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:m,objects:h,type:w.DrawingApplyType.REMOVE}}),o.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:d,objects:h,type:w.DrawingApplyType.INSERT}})}return s.push({id:X.id,params:[t]}),o.push({id:X.id,params:[t]}),{redos:s,undos:o}}_getUpdateOrDeleteDrawings(i,r,e){var M,U,b,A;const t=[],n=[],{sheetTransform:s,anchorType:o=w.SheetDrawingAnchorType.Position,transform:a,unitId:c,subUnitId:g,drawingId:u}=e,{from:d,to:m}=s,{row:h,column:p}=d,{row:S,column:f}=m;if(s==null||a==null)return{updateDrawings:t,deleteDrawings:n};const{startRow:v,endRow:I,startColumn:T,endColumn:O}=i;let C=null,y=null,R;if(r===0&&h>=v&&S<=I)if(p>=T&&f<=O)n.push({unitId:c,subUnitId:g,drawingId:u});else{const _=this._shrinkCol(s,a,T,O,o);C=_==null?void 0:_.newSheetTransform,y=_==null?void 0:_.newTransform,R=(M=_==null?void 0:_.axisAlignSheetTransform)!=null?M:void 0}else if(r===1&&p>=T&&f<=O)if(h>=v&&S<=I)n.push({unitId:c,subUnitId:g,drawingId:u});else{const _=this._shrinkRow(s,a,v,I,o);C=_==null?void 0:_.newSheetTransform,y=_==null?void 0:_.newTransform,R=(U=_==null?void 0:_.axisAlignSheetTransform)!=null?U:void 0}else if(r===2){const _=this._expandRow(s,a,v,I,o);C=_==null?void 0:_.newSheetTransform,y=_==null?void 0:_.newTransform,R=(b=_==null?void 0:_.axisAlignSheetTransform)!=null?b:void 0}else if(r===3){const _=this._expandCol(s,a,T,O,o);C=_==null?void 0:_.newSheetTransform,y=_==null?void 0:_.newTransform,R=(A=_==null?void 0:_.axisAlignSheetTransform)!=null?A:void 0}if(C!=null&&y!=null){const _=ee(C,this._selectionRenderService,this._skeletonManagerService);t.push({...e,sheetTransform:C,transform:_,axisAlignSheetTransform:R})}return{updateDrawings:t,deleteDrawings:n}}_remainDrawingSize(i,r,e){const t=$({...i},this._selectionRenderService);if(t!=null){const n=Y({...i},this._selectionRenderService);r.push({...e,sheetTransform:t,axisAlignSheetTransform:n})}}_getDrawingUndoForColVisible(i,r,e){const t=this._drawingManagerService.getDrawingData(i,r),n=[],s=[];if(Object.keys(t).forEach(u=>{const d=t[u],{sheetTransform:m,transform:h,anchorType:p=w.SheetDrawingAnchorType.Position}=d;if(p===w.SheetDrawingAnchorType.None)this._remainDrawingSize(h,n,d);else{const{from:S,to:f}=m,{row:v,column:I}=S,{row:T,column:O}=f;for(let C=0;C<e.length;C++){const y=e[C],{startRow:R,endRow:M,startColumn:U,endColumn:b}=y;if(O<U)continue;if(p===w.SheetDrawingAnchorType.Position){let E=null,B=null;if(I>=U&&I<=b){const W=this._skeletonManagerService.attachRangeWithCoord({startColumn:I,endColumn:b,startRow:S.row,endRow:f.row});if(W==null)return;B={...h,left:W.startX}}if(B!=null){E=$(B,this._selectionRenderService);const W=Y(B,this._selectionRenderService);if(E!=null&&B!=null){n.push({...d,sheetTransform:E,transform:B,axisAlignSheetTransform:W});break}}this._remainDrawingSize(h,n,d);continue}if(I>=U&&O<=b)continue;let A=null,_=null;if(I>=U&&I<=b){const E=this._skeletonManagerService.attachRangeWithCoord({startColumn:I,endColumn:b,startRow:S.row,endRow:f.row});if(E==null)return;_={...h,left:(E==null?void 0:E.startX)||0,width:((h==null?void 0:h.width)||0)-E.endX+E.startX}}else if(O>=U&&O<=b){const E=this._skeletonManagerService.attachRangeWithCoord({startColumn:U,endColumn:O,startRow:S.row,endRow:f.row});if(E==null)return;_={...h,left:E.startX-((h==null?void 0:h.width)||0)}}else{const E=this._skeletonManagerService.attachRangeWithCoord({startColumn:U,endColumn:b,startRow:S.row,endRow:f.row});if(E==null)return;if(_={...h,width:((h==null?void 0:h.width)||0)-E.endX+E.startX},A=$(_,this._selectionRenderService),A!=null&&_!=null){const B=Y(_,this._selectionRenderService);s.push({...d,sheetTransform:A,transform:_,axisAlignSheetTransform:B});break}}if(_!=null&&(A=$(_,this._selectionRenderService)),_!=null&&A!=null){const E=Y(_,this._selectionRenderService);n.push({...d,sheetTransform:A,transform:_,axisAlignSheetTransform:E});break}else this._remainDrawingSize(h,n,d)}}}),n.length===0&&s.length===0)return{redos:[],undos:[]};const{redos:o,undos:a}=this._createUndoAndRedoMutation(i,r,n),c=[],g=[];if(s.length>0){const{redos:u,undos:d}=this._createUndoAndRedoMutation(i,r,s);c.push(...u),g.push(...d)}return{redos:o,undos:a,preRedos:c,preUndos:g}}_createUndoAndRedoMutation(i,r,e){const t=this._sheetDrawingService.getBatchUpdateOp(e),{undo:n,redo:s,objects:o}=t,a=[{id:w.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:r,op:s,objects:o,type:w.DrawingApplyType.UPDATE}},{id:X.id,params:[i]}],c=[{id:w.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:r,op:n,objects:o,type:w.DrawingApplyType.UPDATE}},{id:X.id,params:[i]}];return{redos:a,undos:c}}_getDrawingUndoForRowVisible(i,r,e){const t=this._drawingManagerService.getDrawingData(i,r),n=[],s=[];if(Object.keys(t).forEach(u=>{const d=t[u],{sheetTransform:m,transform:h,anchorType:p=w.SheetDrawingAnchorType.Position}=d;if(p===w.SheetDrawingAnchorType.None)this._remainDrawingSize(h,n,d);else{const{from:S,to:f}=m,{row:v,column:I}=S,{row:T,column:O}=f;for(let C=0;C<e.length;C++){const y=e[C],{startRow:R,endRow:M,startColumn:U,endColumn:b}=y;if(T<R)continue;if(p===w.SheetDrawingAnchorType.Position){let E=null,B=null;if(v>=R&&v<=M){const W=this._skeletonManagerService.attachRangeWithCoord({startColumn:S.column,endColumn:f.column,startRow:v,endRow:M});if(W==null)return;B={...h,top:W.startY}}if(B!=null){E=$(B,this._selectionRenderService);const W=Y(B,this._selectionRenderService);if(E!=null&&B!=null){n.push({...d,sheetTransform:E,transform:B,axisAlignSheetTransform:W});break}}this._remainDrawingSize(h,n,d);continue}if(v>=R&&T<=M)continue;let A=null,_=null;if(v>=R&&v<=M){const E=this._skeletonManagerService.attachRangeWithCoord({startColumn:S.column,endColumn:f.column,startRow:v,endRow:M});if(E==null)return;_={...h,top:(E==null?void 0:E.startY)||0,height:((h==null?void 0:h.height)||0)-E.endY+E.startY}}else if(T>=R&&T<=M){const E=this._skeletonManagerService.attachRangeWithCoord({startColumn:S.column,endColumn:f.column,startRow:R,endRow:T});if(E==null)return;_={...h,top:E.startY-((h==null?void 0:h.height)||0)}}else{const E=this._skeletonManagerService.attachRangeWithCoord({startColumn:S.column,endColumn:f.column,startRow:R,endRow:M});if(E==null)return;if(_={...h,height:((h==null?void 0:h.height)||0)-E.endY+E.startY},A=$(_,this._selectionRenderService),A!=null&&_!=null){const B=Y(_,this._selectionRenderService);s.push({...d,sheetTransform:A,transform:_,axisAlignSheetTransform:B});break}}if(_!=null&&(A=$(_,this._selectionRenderService)),_!=null&&A!=null){const E=Y(_,this._selectionRenderService);n.push({...d,sheetTransform:A,transform:_,axisAlignSheetTransform:E});break}else this._remainDrawingSize(h,n,d)}}}),n.length===0&&s.length===0)return{redos:[],undos:[]};const{redos:o,undos:a}=this._createUndoAndRedoMutation(i,r,n),c=[],g=[];if(s.length>0){const{redos:u,undos:d}=this._createUndoAndRedoMutation(i,r,s);c.push(...u),g.push(...d)}return{redos:o,undos:a,preRedos:c,preUndos:g}}_getDrawingUndoForRowAndColSize(i,r,e,t){const n=this._drawingManagerService.getDrawingData(i,r),s=[];return Object.keys(n).forEach(o=>{const a=n[o],{sheetTransform:c,transform:g,anchorType:u=w.SheetDrawingAnchorType.Position}=a;if(u===w.SheetDrawingAnchorType.None)this._remainDrawingSize(g,s,a);else{const{from:d,to:m}=c,{row:h,column:p}=d,{row:S,column:f}=m;for(let v=0;v<e.length;v++){const I=e[v],{startRow:T,endRow:O,startColumn:C,endColumn:y}=I;if(S<T||f<C)continue;if(u===w.SheetDrawingAnchorType.Position&&(h<=T&&S>=O||p<=C&&f>=y)){this._remainDrawingSize(g,s,a);continue}const R=ee({...c},this._selectionRenderService,this._skeletonManagerService);if(R!=null){s.push({...a,transform:R});break}}}}),s.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(i,r,s)}_getUnitIdAndSubUnitId(i,r){let e,t;if(r==="insert")e=i.unitId,t=i.subUnitId;else{const n=D.getSheetCommandTarget(this._univerInstanceService);if(n==null)return;e=n.unitId,t=n.subUnitId}return{unitId:e,subUnitId:t}}_moveRangeInterceptor(i){var T,O;const{toRange:r,fromRange:e}=i,t=D.getSheetCommandTarget(this._univerInstanceService);if(!t)return{redos:[],undos:[]};const{unitId:n,subUnitId:s}=t,o=(O=(T=this._renderManagerService.getRenderById(n))==null?void 0:T.with(P.SheetSkeletonManagerService))==null?void 0:O.getCurrentSkeleton();if(!o)return{redos:[],undos:[]};const a=P.attachRangeWithCoord(o,e);if(!a)return{redos:[],undos:[]};const{startX:c,endX:g,startY:u,endY:d}=a,m=this._sheetDrawingService.getDrawingData(n,s),h=[];Object.keys(m).forEach(C=>{const y=m[C];if(y.anchorType!==w.SheetDrawingAnchorType.Both)return;const{transform:R}=y;if(!R)return;const{left:M=0,top:U=0,width:b=0,height:A=0}=R,{drawingStartX:_,drawingEndX:E,drawingStartY:B,drawingEndY:W}={drawingStartX:M,drawingEndX:M+b,drawingStartY:U,drawingEndY:U+A};c<=_&&E<=g&&u<=B&&W<=d&&h.push(y)});const p=[],S=[],f=r.startRow-e.startRow,v=r.startColumn-e.startColumn,I=h.map(C=>{const y=C.sheetTransform,R={to:{...y.to,row:y.to.row+f,column:y.to.column+v},from:{...y.from,row:y.from.row+f,column:y.from.column+v}},M=ee(R,this._selectionRenderService,this._skeletonManagerService);return{unitId:n,subUnitId:s,drawingId:C.drawingId,transform:M,sheetTransform:R}});if(I.length){const C=this._sheetDrawingService.getBatchUpdateOp(I),{undo:y,redo:R,objects:M}=C;p.push({id:w.SetDrawingApplyMutation.id,params:{unitId:n,subUnitId:s,op:R,objects:M,type:w.DrawingApplyType.UPDATE}}),S.push({id:w.SetDrawingApplyMutation.id,params:{unitId:n,subUnitId:s,op:y,objects:M,type:w.DrawingApplyType.UPDATE}})}return{redos:p,undos:S}}_moveRowInterceptor(i,r){const e=this._getUnitIdAndSubUnitId(i,r);if(e==null)return{redos:[],undos:[]};const{unitId:t,subUnitId:n}=e,{range:s}=i,o=s.startRow,a=s.endRow,c=[],g=[],u=this._sheetDrawingService.getDrawingData(t,n),d=[],m=[];if(Object.keys(u).forEach(h=>{var y,R;const p=u[h],{sheetTransform:S,transform:f,anchorType:v=w.SheetDrawingAnchorType.Position}=p;if(S==null||f==null)return;let I,T,O;if(r==="insert"){const M=this._expandRow(S,f,o,a,v);I=M==null?void 0:M.newSheetTransform,T=M==null?void 0:M.newTransform,O=(y=M==null?void 0:M.axisAlignSheetTransform)!=null?y:void 0}else{const{from:M,to:U}=S,{row:b}=M,{row:A}=U;if(v===w.SheetDrawingAnchorType.Both&&b>=o&&A<=a)m.push({unitId:t,subUnitId:n,drawingId:h});else{const _=this._shrinkRow(S,f,o,a,v);I=_==null?void 0:_.newSheetTransform,T=_==null?void 0:_.newTransform,O=(R=_==null?void 0:_.axisAlignSheetTransform)!=null?R:void 0}}if(!I||!T)return;const C={unitId:t,subUnitId:n,drawingId:h,transform:T,sheetTransform:I,axisAlignSheetTransform:O};d.push(C)}),d.length===0&&m.length===0)return{redos:[],undos:[]};if(d.length>0){const h=this._sheetDrawingService.getBatchUpdateOp(d),{undo:p,redo:S,objects:f}=h;c.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:S,objects:f,type:w.DrawingApplyType.UPDATE}}),g.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:p,objects:f,type:w.DrawingApplyType.UPDATE}})}if(m.length>0){const h=this._sheetDrawingService.getBatchRemoveOp(m),p=h.undo,S=h.redo,f=h.objects;c.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:S,objects:f,type:w.DrawingApplyType.REMOVE}}),g.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:p,objects:f,type:w.DrawingApplyType.INSERT}})}return c.push({id:X.id,params:[t]}),g.push({id:X.id,params:[t]}),{redos:c,undos:g}}_moveColInterceptor(i,r){const e=this._getUnitIdAndSubUnitId(i,r);if(e==null)return{redos:[],undos:[]};const{unitId:t,subUnitId:n}=e,{range:s}=i,o=s.startColumn,a=s.endColumn,c=[],g=[],u=this._sheetDrawingService.getDrawingData(t,n),d=[],m=[];if(Object.keys(u).forEach(h=>{var y,R;const p=u[h],{sheetTransform:S,transform:f,anchorType:v=w.SheetDrawingAnchorType.Position}=p;if(S==null||f==null)return;let I,T,O;if(r==="insert"){const M=this._expandCol(S,f,o,a,v);I=M==null?void 0:M.newSheetTransform,T=M==null?void 0:M.newTransform,O=(y=M==null?void 0:M.axisAlignSheetTransform)!=null?y:void 0}else{const{from:M,to:U}=S,{column:b}=M,{column:A}=U;if(v===w.SheetDrawingAnchorType.Both&&b>=o&&A<=a)m.push({unitId:t,subUnitId:n,drawingId:h});else{const _=this._shrinkCol(S,f,o,a,v);I=_==null?void 0:_.newSheetTransform,T=_==null?void 0:_.newTransform,O=(R=_==null?void 0:_.axisAlignSheetTransform)!=null?R:void 0}}if(!I||!T)return;const C={unitId:t,subUnitId:n,drawingId:h,transform:T,sheetTransform:I,axisAlignSheetTransform:O};d.push(C)}),d.length===0&&m.length===0)return{redos:[],undos:[]};if(d.length>0){const h=this._sheetDrawingService.getBatchUpdateOp(d),{undo:p,redo:S,objects:f}=h;c.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:S,objects:f,type:w.DrawingApplyType.UPDATE}}),g.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:p,objects:f,type:w.DrawingApplyType.UPDATE}})}if(m.length>0){const h=this._sheetDrawingService.getBatchRemoveOp(m),p=h.undo,S=h.redo,f=h.objects;c.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:S,objects:f,type:w.DrawingApplyType.REMOVE}}),g.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:p,objects:f,type:w.DrawingApplyType.INSERT}})}return c.push({id:X.id,params:[t]}),g.push({id:X.id,params:[t]}),{redos:c,undos:g}}_expandCol(i,r,e,t,n=w.SheetDrawingAnchorType.Position){const s=t-e+1,{from:o,to:a}=i,{column:c}=o,{column:g}=a;if(n===w.SheetDrawingAnchorType.None)return{newSheetTransform:$({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:Y({...r},this._selectionRenderService)};let u=null,d=null,m=null;if(c>=e){const h=this._skeletonManagerService.attachRangeWithCoord({startColumn:e,endColumn:t,startRow:o.row,endRow:a.row});if(h==null)return;d={...r,left:(r.left||0)+h.endX-h.startX},u=$(d,this._selectionRenderService),m=Y(d,this._selectionRenderService)}else if(g>=t)if(n===w.SheetDrawingAnchorType.Both)u={from:{...o},to:{...a,column:g+s}},d=ee(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:$({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:Y({...r},this._selectionRenderService)};return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:m}:null}_shrinkCol(i,r,e,t,n=w.SheetDrawingAnchorType.Position){const s=t-e+1,{from:o,to:a}=i,{column:c}=o,{column:g}=a;if(n===w.SheetDrawingAnchorType.None)return{newSheetTransform:$({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:Y({...r},this._selectionRenderService)};let u=null,d=null,m=null;if(c>t)u={from:{...o,column:c-s},to:{...a,column:g-s}},d=ee(u,this._selectionRenderService,this._skeletonManagerService);else{if(c>=e&&g<=t)return null;if(c<e&&g>t)if(n===w.SheetDrawingAnchorType.Both)u={from:{...o},to:{...a,column:g-s}},d=ee(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:$({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:Y({...r},this._selectionRenderService)};else if(c>=e&&c<=t){if(c===e)d={...r,left:(r.left||0)-i.from.columnOffset};else{const h=this._skeletonManagerService.attachRangeWithCoord({startColumn:e,endColumn:c-1,startRow:o.row,endRow:a.row});if(h==null)return;d={...r,left:(r.left||0)-h.endX+h.startX-i.from.columnOffset}}u=$(d,this._selectionRenderService),m=Y(d,this._selectionRenderService)}else if(g>=e&&g<=t&&n===w.SheetDrawingAnchorType.Both){const h=this._skeletonManagerService.attachRangeWithCoord({startColumn:e-1,endColumn:e-1,startRow:o.row,endRow:a.row});if(h==null)return;u={from:{...o},to:{...a,column:e-1,columnOffset:h.endX-h.startX}},d=ee(u,this._selectionRenderService,this._skeletonManagerService)}}return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:m}:null}_expandRow(i,r,e,t,n=w.SheetDrawingAnchorType.Position){const s=t-e+1,{from:o,to:a}=i,{row:c}=o,{row:g}=a;if(n===w.SheetDrawingAnchorType.None)return{newSheetTransform:$({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:Y({...r},this._selectionRenderService)};let u=null,d=null,m=null;if(c>=e){const h=this._skeletonManagerService.attachRangeWithCoord({startRow:e,endRow:t,startColumn:o.column,endColumn:a.column});if(h==null)return;d={...r,top:(r.top||0)+h.endY-h.startY},u=$(d,this._selectionRenderService),m=Y(d,this._selectionRenderService)}else if(g>=t)if(n===w.SheetDrawingAnchorType.Both)u={from:{...o},to:{...a,row:g+s}},d=ee(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:$({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:Y({...r},this._selectionRenderService)};return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:m}:null}_shrinkRow(i,r,e,t,n=w.SheetDrawingAnchorType.Position){const s=t-e+1,{from:o,to:a}=i,{row:c}=o,{row:g}=a;if(n===w.SheetDrawingAnchorType.None)return{newSheetTransform:$({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:Y({...r},this._selectionRenderService)};let u=null,d=null,m=null;if(c>t)u={from:{...o,row:c-s},to:{...a,row:g-s}},d=ee(u,this._selectionRenderService,this._skeletonManagerService);else{if(c>=e&&g<=t)return null;if(c<e&&g>t)if(n===w.SheetDrawingAnchorType.Both)u={from:{...o},to:{...a,row:g-s}},d=ee(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:$({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:Y({...r},this._selectionRenderService)};else if(c>=e&&c<=t){if(c===e)d={...r,top:(r.top||0)-i.from.rowOffset};else{const h=this._skeletonManagerService.attachRangeWithCoord({startRow:e,endRow:c-1,startColumn:o.column,endColumn:a.column});if(h==null)return;d={...r,top:(r.top||0)-h.endY+h.startY-i.from.rowOffset}}u=$(d,this._selectionRenderService),m=Y(d,this._selectionRenderService)}else if(g>=e&&g<=t&&n===w.SheetDrawingAnchorType.Both){const h=this._skeletonManagerService.attachRangeWithCoord({startColumn:o.column,endColumn:o.column,startRow:e-1,endRow:e-1});if(h==null)return;u={from:{...o},to:{...a,row:e-1,rowOffset:h.endY-h.startY}},d=ee(u,this._selectionRenderService,this._skeletonManagerService)}}return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:m}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(i.id===D.SetWorksheetActiveOperation.id){const{unitId:r,subUnitId:e}=i.params;this._updateDrawings(r,e)}})),this.disposeWithMe(this._context.activated$.subscribe(i=>{const{unit:r,unitId:e}=this._context;if(i){const t=r.getActiveSheet().getSheetId();this._updateDrawings(e,t)}else this._clearDrawings(e)}))}_clearDrawings(i){setTimeout(()=>{const r=this._drawingManagerService.drawingManagerData,e=[];Object.keys(r).forEach(t=>{const n=r[t];n!=null&&Object.keys(n).forEach(s=>{const o=n[s].data;o!=null&&Object.keys(o).forEach(a=>{t===i&&e.push(o[a])})})}),this._sheetDrawingService.removeNotification(e),this._drawingManagerService.removeNotification(e)})}_updateDrawings(i,r){setTimeout(()=>{const e=this._drawingManagerService.drawingManagerData,t=[],n=[];Object.keys(e).forEach(s=>{const o=e[s];o!=null&&Object.keys(o).forEach(a=>{const c=o[a].data;c!=null&&Object.keys(c).forEach(g=>{if(s===i&&a===r){const u=c[g];u.sheetTransform&&(u.transform=ee(u.sheetTransform,this._selectionRenderService,this._skeletonManagerService)),t.push(c[g])}else n.push(c[g])})})}),this._sheetDrawingService.removeNotification(n),this._sheetDrawingService.addNotification(t),this._drawingManagerService.removeNotification(n),this._drawingManagerService.addNotification(t)},0)}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{$n.includes(i.id)&&requestIdleCallback(()=>{const r=i.params,e=D.getSheetCommandTarget(this._univerInstanceService,r);if(!e)return;const{unitId:t,subUnitId:n,worksheet:s}=e;let o=[];"ranges"in r?o=r.ranges:"rowsAutoHeightInfo"in r&&(o=r.rowsAutoHeightInfo.map(a=>({startRow:a.row,endRow:a.row,startColumn:0,endColumn:s.getColumnCount()-1}))),this._refreshDrawingTransform(t,n,o)})}))}_refreshDrawingTransform(i,r,e){const t=this._drawingManagerService.getDrawingData(i,r),n=[];Object.keys(t).forEach(s=>{const o=t[s],{sheetTransform:a,transform:c,anchorType:g=w.SheetDrawingAnchorType.Position}=o;if(g===w.SheetDrawingAnchorType.None)return!0;const{from:u,to:d}=a,{row:m,column:h}=u,{row:p,column:S}=d;for(let f=0;f<e.length;f++){const v=e[f],{startRow:I,endRow:T,startColumn:O,endColumn:C}=v;if(l.Rectangle.intersects({startRow:I,endRow:T,startColumn:O,endColumn:C},{startRow:m,endRow:p,startColumn:h,endColumn:S})||m>T||h>C){const y=g===w.SheetDrawingAnchorType.Position,R=ee(a,this._selectionRenderService,this._skeletonManagerService);n.push({...o,transform:{...R,width:y?c==null?void 0:c.width:R==null?void 0:R.width,height:y?c==null?void 0:c.height:R==null?void 0:R.height}});break}}}),n.length!==0&&(this._sheetDrawingService.refreshTransform(n),this._drawingManagerService.refreshTransform(n),this._commandService.syncExecuteCommand(X.id,[i]))}};It=Fn([fe(1,j.IRenderManagerService),fe(2,l.ICommandService),fe(3,P.ISheetSelectionRenderService),fe(4,l.Inject(P.SheetSkeletonManagerService)),fe(5,l.Inject(D.SheetInterceptorService)),fe(6,w.ISheetDrawingService),fe(7,x.IDrawingManagerService),fe(8,l.IUniverInstanceService)],It);const Dt={id:"sheet.command.toggle-flip-drawings",type:l.CommandType.COMMAND,handler:(i,r)=>{const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(w.ISheetDrawingService),s=i.get(j.IRenderManagerService);if(!r)return!1;const{drawings:o}=r,a=r.flipH,c=r.flipV,g=[],u=[];for(const O of o){const{unitId:C,subUnitId:y,drawingId:R}=O;g.push(C);const M=n.getDrawingData(C,y),U=M==null?void 0:M[R];if(!U)continue;const b={...U.transform};a&&(b.flipX=!b.flipX),c&&(b.flipY=!b.flipY);const A=s.getRenderById(C),_=A==null?void 0:A.with(P.ISheetSelectionRenderService);if(!_)continue;const E=$(b,_),B=Y(b,_),W={unitId:C,subUnitId:y,drawingType:U.drawingType,drawingId:R,transform:b,sheetTransform:E,axisAlignSheetTransform:B};if(U.drawingType===l.DrawingTypeEnum.DRAWING_IMAGE){const te=Yn(i,C);if(te){const K=x.getDrawingShapeKeyByDrawingSearch({unitId:C,subUnitId:y,drawingId:R}),z=te.getObject(K);if(z){const ne=z.srcRect;if(ne){let H;const{left:Z=0,top:F=0,right:oe=0,bottom:le=0}=ne;if(a){const ae=Z+(oe-Z)/2,pe=ae-(oe-Z)/2,Se=ae+(oe-Z)/2;H={left:pe,top:F,right:Se,bottom:le}}if(c){const ae=F+(le-F)/2,pe=ae-(le-F)/2,Se=ae+(le-F)/2;H={left:Z,top:pe,right:oe,bottom:Se}}H&&(W.srcRect=H)}}}}u.push(W)}if(u.length===0)return!1;const d=n.getBatchUpdateOp(u),{unitId:m,subUnitId:h,undo:p,redo:S,objects:f}=d,v={id:w.SetDrawingApplyMutation.id,params:{unitId:m,subUnitId:h,op:S,objects:f,type:w.DrawingApplyType.UPDATE}},I={id:w.SetDrawingApplyMutation.id,params:{unitId:m,subUnitId:h,op:p,objects:f,type:w.DrawingApplyType.UPDATE}};return l.sequenceExecute([v],e)?(t.pushUndoRedo({unitID:m,undoMutations:[I,{id:X.id,params:g}],redoMutations:[v,{id:X.id,params:g}]}),!0):!1}};function Yn(i,r){const t=i.get(j.IRenderManagerService).getRenderById(r);return t?t.scene:null}function Gn(i){var r,e,t,n;return!!((e=(r=i==null?void 0:i.p)==null?void 0:r.drawingsOrder)!=null&&e.length&&((n=(t=i==null?void 0:i.p)==null?void 0:t.drawingsOrder)==null?void 0:n.length)>0)}function Hn(i,r){const e=i.getActiveSheet();if(!e)return!1;const t=e.getCellMatrix(),{startRow:n,endRow:s,startColumn:o,endColumn:a}=r;for(let c=n;c<=s;c++)for(let g=o;g<=a;g++){const u=t.getValue(c,g);if(Gn(u))return!0}return!1}function Vn(){return"showDirectoryPicker"in window}function pt(i){const r=i.get(l.IUniverInstanceService),e=i.get(D.SheetsSelectionsService),t=N.combineLatest([k.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),r.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).pipe(N.switchMap(n=>n?e.selectionMoveEnd$.pipe(N.map(()=>{if(!Vn())return!0;const s=e.getCurrentSelections();if(!s||s.length===0)return!0;for(const o of s)if(Hn(n,o.range))return!1;return!0})):N.of(!0)))]).pipe(N.map(([n,s])=>n||s));return{id:Ee.id,type:k.MenuItemType.BUTTON,icon:"DownloadImageIcon",title:"sheetImage.save.menuLabel",hidden$:t}}const Xn={[k.RibbonInsertGroup.MEDIA]:{[Ot]:{order:0,menuItemFactory:ln,[Le.id]:{order:0,menuItemFactory:un},[Mt.id]:{order:1,menuItemFactory:gn}}},[k.ContextMenuPosition.MAIN_AREA]:{[k.ContextMenuGroup.OTHERS]:{[Ee.id]:{order:10,menuItemFactory:pt}}},[k.ContextMenuPosition.COL_HEADER]:{[k.ContextMenuGroup.OTHERS]:{[Ee.id]:{order:10,menuItemFactory:pt}}},[k.ContextMenuPosition.ROW_HEADER]:{[k.ContextMenuGroup.OTHERS]:{[Ee.id]:{order:10,menuItemFactory:pt}}}};function Kn(){const i=k.useDependency(l.LocaleService),r=k.useDependency(k.IDialogService),e=k.useDependency(lt),[t,n]=Q.useState([we.CELL_ADDRESS]),[s,o]=Q.useState(!1),[a,c]=Q.useState(null),g=Q.useMemo(()=>e.getCellImagesInSelection(),[e]),u=Q.useMemo(()=>e.getDataColumns(),[e]),d=Q.useMemo(()=>e.getSelectionRowRange(),[e]),m=u.length>0,h=Q.useMemo(()=>u.map(y=>({label:y.label,value:String(y.index)})),[u]),[p,S]=Q.useState(()=>h.length>0?h[0].value:"0"),f=Q.useMemo(()=>{if(!t.includes(we.COLUMN_VALUE)||!d)return[];const R=Number(p);return[{startRow:d.startRow,endRow:d.endRow,startColumn:R,endColumn:R}]},[t,p,d]);P.useHighlightRange(f);const v=Q.useCallback(y=>{y.length!==0&&n(y)},[]),I=Q.useCallback(y=>{S(String(y))},[]),T=Q.useCallback(()=>{r.close(be)},[r]),O=Q.useCallback(async()=>{if(g.length!==0){o(!0),c(null);try{await e.saveImages(g,{fileNameParts:t,columnIndex:t.includes(we.COLUMN_VALUE)?Number(p):void 0}),r.close(be)}catch(y){console.error("Failed to save images:",y),c(i.t("sheetImage.save.error"))}finally{o(!1)}}},[e,g,t,p,r,i]),C=t.includes(we.COLUMN_VALUE);return G.jsxs("div",{className:"univer-flex univer-flex-col",children:[G.jsx(V.FormLayout,{label:i.t("sheetImage.save.imageCount"),children:G.jsx("div",{className:"univer-text-sm univer-text-gray-600",children:g.length})}),G.jsx(V.FormLayout,{label:i.t("sheetImage.save.fileNameConfig"),children:G.jsxs(V.CheckboxGroup,{value:t,onChange:v,direction:"vertical",children:[G.jsx(V.Checkbox,{value:we.CELL_ADDRESS,disabled:!m,children:i.t("sheetImage.save.useRowCol")}),m&&G.jsx(V.Checkbox,{value:we.COLUMN_VALUE,children:i.t("sheetImage.save.useColumnValue")})]})}),C&&G.jsx(V.FormLayout,{label:i.t("sheetImage.save.selectColumn"),children:G.jsx(V.Select,{value:p,options:h,onChange:I})}),a&&G.jsx("div",{className:"univer-text-xs univer-text-red-500",children:a}),G.jsxs("div",{className:"univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3",children:[G.jsx(V.Button,{onClick:T,disabled:s,children:i.t("sheetImage.save.cancel")}),G.jsx(V.Button,{variant:"primary",onClick:O,disabled:s||g.length===0,children:s?i.t("sheetImage.save.saving"):i.t("sheetImage.save.confirm")})]})]})}const zt=i=>{var I;const r=k.useDependency(l.ICommandService),e=k.useDependency(l.LocaleService),t=k.useDependency(x.IDrawingManagerService),n=k.useDependency(j.IRenderManagerService),{drawings:s}=i,o=s[0];if(o==null)return;const{unitId:a}=o,c=n.getRenderById(a),g=c==null?void 0:c.scene;if(g==null)return;const u=g.getTransformerByCreate(),[d,m]=Q.useState(!0),h=(I=o.anchorType)!=null?I:w.SheetDrawingAnchorType.Position,[p,S]=Q.useState(h);function f(T,O){const C=[];return T.forEach(y=>{const{oKey:R}=y,M=O.getDrawingOKey(R);if(M==null)return C.push(null),!0;const{unitId:U,subUnitId:b,drawingId:A,drawingType:_,anchorType:E,sheetTransform:B,axisAlignSheetTransform:W}=M;C.push({unitId:U,subUnitId:b,drawingId:A,anchorType:E,sheetTransform:B,drawingType:_,axisAlignSheetTransform:W})}),C}Q.useEffect(()=>{const T=u.clearControl$.subscribe(C=>{C===!0&&m(!1)}),O=u.changeStart$.subscribe(C=>{var M;const{objects:y}=C,R=f(y,t);if(R.length===0)m(!1);else if(R.length>=1){m(!0);const U=((M=R[0])==null?void 0:M.anchorType)||w.SheetDrawingAnchorType.Position;S(U)}});return()=>{O.unsubscribe(),T.unsubscribe()}},[]);function v(T){S(T);const O=t.getFocusDrawings();if(O.length===0)return;const C=O.map(y=>({unitId:y.unitId,subUnitId:y.subUnitId,drawingId:y.drawingId,anchorType:T}));r.executeCommand(Ae.id,{unitId:O[0].unitId,drawings:C})}return G.jsxs("div",{className:V.clsx("univer-grid univer-gap-2 univer-py-2 univer-text-gray-400",{"univer-hidden":!d}),children:[G.jsx("header",{className:"univer-text-gray-600 dark:!univer-text-gray-200",children:G.jsx("div",{children:e.t("drawing-anchor.title")})}),G.jsx("div",{children:G.jsxs(V.RadioGroup,{value:p,onChange:v,direction:"vertical",children:[G.jsx(V.Radio,{value:w.SheetDrawingAnchorType.Both,children:e.t("drawing-anchor.both")}),G.jsx(V.Radio,{value:w.SheetDrawingAnchorType.Position,children:e.t("drawing-anchor.position")}),G.jsx(V.Radio,{value:w.SheetDrawingAnchorType.None,children:e.t("drawing-anchor.none")})]})})]})},zn=()=>{const i=k.useDependency(x.IDrawingManagerService),r=i.getFocusDrawings(),[e,t]=Q.useState(r);return Q.useEffect(()=>{const n=i.focus$.subscribe(s=>{t(s)});return()=>{n.unsubscribe()}},[]),!!(e!=null&&e.length)&&G.jsxs("div",{className:"univer-text-sm",children:[G.jsx(ve.DrawingCommonPanel,{drawings:e}),G.jsx(zt,{drawings:e})]})};function $e(i){return i.getContextValue(l.FOCUSING_SHEET)&&!i.getContextValue(l.FOCUSING_FX_BAR_EDITOR)&&!i.getContextValue(l.FOCUSING_PANEL_EDITOR)&&i.getContextValue(l.FOCUSING_COMMON_DRAWINGS)&&!i.getContextValue(l.FOCUSING_SHAPE_TEXT_EDITOR)}const qn={id:Ue.id,description:"shortcut.drawing-move-down",group:"4_drawing-view",binding:k.KeyCode.ARROW_DOWN,priority:100,preconditions:$e,staticParameters:{direction:l.Direction.DOWN}},Zn={id:Ue.id,description:"shortcut.drawing-move-up",group:"4_drawing-view",binding:k.KeyCode.ARROW_UP,priority:100,preconditions:$e,staticParameters:{direction:l.Direction.UP}},Jn={id:Ue.id,description:"shortcut.drawing-move-left",group:"4_drawing-view",binding:k.KeyCode.ARROW_LEFT,priority:100,preconditions:$e,staticParameters:{direction:l.Direction.LEFT}},Qn={id:Ue.id,description:"shortcut.drawing-move-right",group:"4_drawing-view",binding:k.KeyCode.ARROW_RIGHT,priority:100,preconditions:$e,staticParameters:{direction:l.Direction.RIGHT}},er={id:yt.id,description:"shortcut.drawing-delete",group:"4_drawing-view",priority:100,preconditions:$e,binding:k.KeyCode.DELETE,mac:k.KeyCode.BACKSPACE};var tr=Object.getOwnPropertyDescriptor,nr=(i,r,e,t)=>{for(var n=t>1?void 0:t?tr(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},Me=(i,r)=>(e,t)=>r(e,t,i);let ct=class extends l.Disposable{constructor(i,r,e,t,n,s){super(),this._componentManager=i,this._menuManagerService=r,this._commandService=e,this._shortcutService=t,this._drawingManagerService=n,this._sheetsSelectionsService=s,this._init()}_initCustomComponents(){const i=this._componentManager;this.disposeWithMe(i.register(Yt,zn)),this.disposeWithMe(i.register(be,Kn))}_initMenus(){this._menuManagerService.mergeMenu(Xn)}_initCommands(){[Le,Mt,Fe,Oe,Ae,bt,X,Et,Ct,Rt,Ue,yt,Tt,Ee,Dt].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i)))}_initShortcuts(){[qn,Zn,Jn,Qn,er].forEach(i=>{this.disposeWithMe(this._shortcutService.registerShortcut(i))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};ct=nr([Me(0,l.Inject(k.ComponentManager)),Me(1,k.IMenuManagerService),Me(2,l.ICommandService),Me(3,k.IShortcutService),Me(4,x.IDrawingManagerService),Me(5,l.Inject(D.SheetsSelectionsService))],ct);var rr=Object.getOwnPropertyDescriptor,ir=(i,r,e,t)=>{for(var n=t>1?void 0:t?rr(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},ce=(i,r)=>(e,t)=>r(e,t,i);let dt=class extends l.RxDisposable{constructor(r,e,t,n,s,o,a,c,g,u){super();se(this,"_initImagePopupMenu",new Set);this._injector=r,this._localeService=e,this._drawingManagerService=t,this._canvasPopManagerService=n,this._renderManagerService=s,this._univerInstanceService=o,this._messageService=a,this._contextService=c,this._ioService=g,this._commandService=u,this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).subscribe(r=>this._create(r)),this._univerInstanceService.getTypeOfUnitDisposed$(l.UniverInstanceType.UNIVER_SHEET).subscribe(r=>this._dispose(r)),this._univerInstanceService.getAllUnitsForType(l.UniverInstanceType.UNIVER_SHEET).forEach(r=>this._create(r)),this._setupLoadingStatus()}_setupLoadingStatus(){const r="image-upload-loading";let e;this.disposeWithMe(this._ioService.change$.subscribe(t=>{t>0&&!e?e=this._messageService.show({id:r,type:V.MessageType.Loading,content:`${this._localeService.t("uploadLoading.loading")}: ${t}`,duration:0}):t===0&&(e==null||e.dispose(),e=void 0)}))}_dispose(r){super.dispose();const e=r.getUnitId();this._renderManagerService.removeRender(e),this._initImagePopupMenu.delete(e)}_create(r){if(!r)return;const e=r.getUnitId();this._renderManagerService.has(e)&&!this._initImagePopupMenu.has(e)&&(this._popupMenuListener(e),this._initImagePopupMenu.add(e))}_hasCropObject(r){const e=r.getAllObjectsByOrder();for(const t of e)if(t instanceof ve.ImageCropperObject)return!0;return!1}_popupMenuListener(r){var s;const e=(s=this._renderManagerService.getRenderById(r))==null?void 0:s.scene;if(!e)return;const t=e.getTransformerByCreate();if(!t)return;let n;this.disposeWithMe(t.createControl$.subscribe(()=>{if(this._contextService.setContextValue(l.FOCUSING_COMMON_DRAWINGS,!0),this._hasCropObject(e))return;const o=t.getSelectedObjectMap();if(o.size>1){n==null||n.dispose();return}const a=o.values().next().value;if(!a)return;const c=a.oKey,g=this._drawingManagerService.getDrawingOKey(c);if(!g)return;const{unitId:u,subUnitId:d,drawingId:m,drawingType:h}=g,p=g.data;if(p&&p.disablePopup)return;n==null||n.dispose();const S=this._canvasPopManagerService.getFeatureMenu(u,d,m,h);n=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(a,{componentKey:ve.COMPONENT_IMAGE_POPUP_MENU,direction:"horizontal",offset:[2,0],extraProps:{menuItems:S||this._getImageMenuItems(u,d,m,h)}}))})),this.disposeWithMe(t.clearControl$.subscribe(()=>{n==null||n.dispose(),this._contextService.setContextValue(l.FOCUSING_COMMON_DRAWINGS,!1),this._commandService.syncExecuteCommand(x.SetDrawingSelectedOperation.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(o=>{o[l.FOCUSING_COMMON_DRAWINGS]===!1&&(n==null||n.dispose())})),this.disposeWithMe(t.changing$.subscribe(()=>{n==null||n.dispose()}))}_getImageMenuItems(r,e,t,n){return[{label:"image-popup.edit",index:0,commandId:Et.id,commandParams:{unitId:r,subUnitId:e,drawingId:t},disable:n===l.DrawingTypeEnum.DRAWING_DOM},{label:"image-popup.delete",index:1,commandId:Oe.id,commandParams:{unitId:r,drawings:[{unitId:r,subUnitId:e,drawingId:t}]},disable:!1},{label:"image-popup.crop",index:2,commandId:ve.OpenImageCropOperation.id,commandParams:{unitId:r,subUnitId:e,drawingId:t},disable:n===l.DrawingTypeEnum.DRAWING_DOM},{label:"image-popup.flipH",index:2,commandId:Dt.id,commandParams:{unitId:r,flipH:!0,drawings:[{unitId:r,subUnitId:e,drawingId:t}]},disable:n===l.DrawingTypeEnum.DRAWING_DOM},{label:"image-popup.flipV",index:2,commandId:Dt.id,commandParams:{unitId:r,flipV:!0,drawings:[{unitId:r,subUnitId:e,drawingId:t}]},disable:n===l.DrawingTypeEnum.DRAWING_DOM},{label:"image-popup.reset",index:3,commandId:ve.ImageResetSizeOperation.id,commandParams:[{unitId:r,subUnitId:e,drawingId:t}],disable:n===l.DrawingTypeEnum.DRAWING_DOM}]}};dt=ir([ce(0,l.Inject(l.Injector)),ce(1,l.Inject(l.LocaleService)),ce(2,x.IDrawingManagerService),ce(3,l.Inject(P.SheetCanvasPopManagerService)),ce(4,j.IRenderManagerService),ce(5,l.IUniverInstanceService),ce(6,k.IMessageService),ce(7,l.IContextService),ce(8,l.IImageIoService),ce(9,l.ICommandService)],dt);var sr=Object.defineProperty,or=Object.getOwnPropertyDescriptor,ar=(i,r,e)=>r in i?sr(i,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[r]=e,cr=(i,r,e,t)=>{for(var n=t>1?void 0:t?or(r,e):r,s=i.length-1,o;s>=0;s--)(o=i[s])&&(n=o(n)||n);return n},St=(i,r)=>(e,t)=>r(e,t,i),ut=(i,r,e)=>ar(i,typeof r!="symbol"?r+"":r,e);exports.UniverSheetsDrawingUIPlugin=class extends l.Plugin{constructor(r=Wt,e,t,n){super(),this._config=r,this._injector=e,this._renderManagerService=t,this._configService=n;const{menu:s,...o}=l.merge({},Wt,this._config);s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig(pn,o)}onStarting(){l.registerDependencies(this._injector,[[exports.SheetCanvasFloatDomManagerService],[ct],[dt],[at],[ot],[st],[nt],[rt],[it],[lt,{useClass:exports.BatchSaveImagesService}]]),l.touchDependencies(this._injector,[[exports.SheetCanvasFloatDomManagerService]])}onReady(){l.touchDependencies(this._injector,[[st],[it]])}onRendered(){this._registerRenderModules(),l.touchDependencies(this._injector,[[ot],[at],[ct],[nt],[rt]])}onSteady(){this._injector.get(dt)}_registerRenderModules(){[[exports.SheetDrawingUpdateController],[It],[_t],[vt]].forEach(r=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(l.UniverInstanceType.UNIVER_SHEET,r))})}};ut(exports.UniverSheetsDrawingUIPlugin,"type",l.UniverInstanceType.UNIVER_SHEET);ut(exports.UniverSheetsDrawingUIPlugin,"pluginName","SHEET_IMAGE_UI_PLUGIN");ut(exports.UniverSheetsDrawingUIPlugin,"packageName",Gt.name);ut(exports.UniverSheetsDrawingUIPlugin,"version",Gt.version);exports.UniverSheetsDrawingUIPlugin=cr([l.DependentOn(x.UniverDrawingPlugin,$t.UniverDocsDrawingPlugin,ve.UniverDrawingUIPlugin,w.UniverSheetsDrawingPlugin),St(1,l.Inject(l.Injector)),St(2,j.IRenderManagerService),St(3,l.IConfigService)],exports.UniverSheetsDrawingUIPlugin);exports.ClearSheetDrawingTransformerOperation=X;exports.DeleteDrawingsCommand=yt;exports.EditSheetDrawingOperation=Et;exports.FileNamePart=we;exports.GroupSheetDrawingCommand=Ct;exports.IBatchSaveImagesService=lt;exports.InsertFloatImageCommand=Le;exports.InsertSheetDrawingCommand=Fe;exports.MoveDrawingsCommand=Ue;exports.RemoveSheetDrawingCommand=Oe;exports.SHEETS_IMAGE_MENU_ID=Ot;exports.SHEET_FLOAT_DOM_PREFIX=Xt;exports.SaveCellImagesCommand=Ee;exports.SetDrawingArrangeCommand=Tt;exports.SetSheetDrawingCommand=Ae;exports.SheetDrawingAnchor=zt;exports.SidebarSheetDrawingOperation=bt;exports.UngroupSheetDrawingCommand=Rt;exports.calcSheetFloatDomPosition=de;exports.drawingPositionToTransform=ee;exports.transformToAxisAlignPosition=Y;exports.transformToDrawingPosition=$;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/engine-render`),t=require(`@univerjs/sheets-ui`),n=require(`@univerjs/core`),r=require(`@univerjs/sheets-drawing`),i=require(`@univerjs/sheets`),a=require(`@univerjs/design`),o=require(`@univerjs/docs-ui`),s=require(`@univerjs/drawing`),c=require(`@univerjs/ui`),l=require(`@univerjs/docs-drawing`),u=require(`@univerjs/drawing-ui`),d=require(`rxjs`),f=require(`react`),p=require(`react/jsx-runtime`);function m(e,n,r){let{from:i,to:a,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e,d=r.getCurrent();if(d==null)return;let{left:f,top:p,width:m,height:h}=(0,t.convertPositionSheetOverGridToAbsolute)(d.unitId,d.sheetId,{from:i,to:a},r),g=r.getCurrentSkeleton(),_=g.rowHeaderWidth+g.columnTotalWidth,v=g.columnHeaderHeight+g.rowTotalHeight;return f+m>_&&(f=_-m),p+h>v&&(p=v-h),{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,left:f,top:p,width:m,height:h}}function h(t,n){let{left:r=0,top:i=0,width:a=0,height:o=0,flipY:s=!1,flipX:c=!1,angle:l=0,skewX:u=0,skewY:d=0}=t,f=n.getCellWithCoordByOffset(r,i);if(f==null)return;let p={column:f.actualColumn,columnOffset:(0,e.precisionTo)(r-f.startX,1),row:f.actualRow,rowOffset:(0,e.precisionTo)(i-f.startY,1)},m=n.getCellWithCoordByOffset(r+a,i+o);if(m!=null)return{flipY:s,flipX:c,angle:l,skewX:u,skewY:d,from:p,to:{column:m.actualColumn,columnOffset:(0,e.precisionTo)(r+a-m.startX,1),row:m.actualRow,rowOffset:(0,e.precisionTo)(i+o-m.startY,1)}}}function g(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:o=0}=e,s=(o%360+360)%360;return h(s>=45&&s<135||s>=225&&s<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}const _={id:`sheet.operation.clear-drawing-transformer`,type:n.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IRenderManagerService);return n.forEach(e=>{var t;(t=r.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},v={id:`sheet.command.remove-sheet-image`,type:n.CommandType.COMMAND,handler:(e,t)=>{var a;let o=e.get(n.ICommandService),s=e.get(n.IUndoRedoService),c=e.get(i.SheetInterceptorService),l=e.get(r.ISheetDrawingService);if(!t)return!1;let{drawings:u}=t,d=[];u.forEach(e=>{let{unitId:t}=e;d.push(t)});let{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=l.getBatchRemoveOp(u),y=c.onCommandExecute({id:v.id,params:t}),b={id:r.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:h,objects:g,type:r.DrawingApplyType.REMOVE}},x={id:r.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:m,objects:g,type:r.DrawingApplyType.INSERT}};if((0,n.sequenceExecute)([...(a=y.preRedos)==null?[]:a,b,...y.redos],o)){var S,C;return s.pushUndoRedo({unitID:f,undoMutations:[...(S=y.preUndos)==null?[]:S,x,...y.undos,{id:_.id,params:d}],redoMutations:[...(C=y.preRedos)==null?[]:C,b,...y.redos,{id:_.id,params:d}]}),!0}return!1}},y={id:`sheet.command.delete-drawing`,type:n.CommandType.COMMAND,handler:e=>{let t=e.get(n.ICommandService),i=e.get(r.ISheetDrawingService).getFocusDrawings();if(i.length===0)return!1;let a=i[0].unitId,o=i.map(e=>{let{unitId:t,subUnitId:n,drawingId:r,drawingType:i}=e;return{unitId:t,subUnitId:n,drawingId:r,drawingType:i}});return t.executeCommand(v.id,{unitId:a,drawings:o})}};function b(t){let r=[];return t.forEach(t=>{let{parent:i,children:a}=t,{unitId:o,subUnitId:s,drawingId:c}=i,l=(0,e.getGroupState)(0,0,a.map(e=>e.transform||{})),u=a.map(e=>{let t=e.transform||{left:0,top:0},{unitId:n,subUnitId:r,drawingId:i}=e;return{unitId:n,subUnitId:r,drawingId:i,transform:{...t,left:t.left,top:t.top},groupId:c}}),d={unitId:o,subUnitId:s,drawingId:c,drawingType:n.DrawingTypeEnum.DRAWING_GROUP,groupBaseBound:{...i.groupBaseBound},transform:l};r.push({parent:d,children:u})}),r}function x(t){let r=[];return t.forEach(t=>{let{parent:i,children:a}=t,{unitId:o,subUnitId:s,drawingId:c,transform:l={width:0,height:0}}=i;if(l==null)return;let u=a.map(t=>{let{transform:n}=t,{unitId:r,subUnitId:a,drawingId:o}=t;return{unitId:r,subUnitId:a,drawingId:o,transform:(0,e.transformObjectOutOfGroup)(n||{},l,l.width||0,l.height||0,i.groupBaseBound),groupId:void 0}}),d={unitId:o,subUnitId:s,drawingId:c,drawingType:n.DrawingTypeEnum.DRAWING_GROUP,transform:{left:0,top:0}};r.push({parent:d,children:u})}),r}function S(e){var t;let r=new Map;(t=e.flatChildren)==null||t.forEach(e=>r.set(e.drawingId,(0,n.generateRandomId)(10))),e.groups.forEach(e=>r.set(e.drawingId,(0,n.generateRandomId)(10)));let i={};for(let[t,n]of Object.entries(e.nestedIdRecord)){var a,o;let e=(a=r.get(t))==null?t:a;i[e]={drawingId:e,children:(o=n.children)==null?void 0:o.map(e=>{var t;return(t=r.get(e))==null?e:t})}}let s=[],c=[];for(let t of e.groups){var l,u;let e=(l=r.get(t.drawingId))==null?t.drawingId:l,n=t.groupId?(u=r.get(t.groupId))==null?t.groupId:u:void 0;c.push(C(t,e,n))}for(let t of e.flatChildren||[]){var d,f;let e=(d=r.get(t.drawingId))==null?t.drawingId:d,n=t.groupId?(f=r.get(t.groupId))==null?t.groupId:f:void 0;s.push(C(t,e,n))}return{cloned:{nestedIdRecord:i,flatChildren:s,groups:c},idMap:r}}function C(e,t,n){let r={...e};return t&&(r.drawingId=t),n?r.groupId=n:delete r.groupId,JSON.parse(JSON.stringify(r))}const w={id:`sheet.command.group-sheet-image`,type:n.CommandType.COMMAND,handler:(e,t)=>{let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(r.ISheetDrawingService);if(!t)return!1;let s=[];t.forEach(({parent:e,children:t})=>{s.push(e.unitId),t.forEach(e=>{s.push(e.unitId)})});let{unitId:c,subUnitId:l,undo:u,redo:d,objects:f}=o.getGroupDrawingOp(t);return i.syncExecuteCommand(r.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:r.DrawingApplyType.GROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:r.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:x(f),type:r.DrawingApplyType.UNGROUP}},{id:_.id,params:s}],redoMutations:[{id:r.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:r.DrawingApplyType.GROUP}},{id:_.id,params:s}]}),!0):!1}},T={id:`sheet.command.insert-sheet-image`,type:n.CommandType.COMMAND,handler:(e,t)=>{var a;let o=e.get(n.ICommandService),s=e.get(n.IUndoRedoService),c=e.get(r.ISheetDrawingService),l=e.get(i.SheetInterceptorService);if(!t)return!1;let u=t.drawings,d=u.map(e=>e.unitId),{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=c.getBatchAddOp(u),v=l.onCommandExecute({id:T.id,params:t}),y={id:r.SetDrawingApplyMutation.id,params:{op:h,unitId:f,subUnitId:p,objects:g,type:r.DrawingApplyType.INSERT}},b={id:r.SetDrawingApplyMutation.id,params:{op:m,unitId:f,subUnitId:p,objects:g,type:r.DrawingApplyType.REMOVE}};if((0,n.sequenceExecute)([...(a=v.preRedos)==null?[]:a,y,...v.redos],o)){var x,S;return s.pushUndoRedo({unitID:f,undoMutations:[...(x=v.preUndos)==null?[]:x,b,...v.undos,{id:_.id,params:d}],redoMutations:[...(S=v.preRedos)==null?[]:S,y,...v.redos,{id:_.id,params:d}]}),!0}return!1}},E={id:`sheet.command.set-drawing-arrange`,type:n.CommandType.COMMAND,handler:(e,t)=>{let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService);if(!t)return!1;let o=e.get(r.ISheetDrawingService),{unitId:s,subUnitId:c,drawingIds:l,arrangeType:u}=t,d={unitId:s,subUnitId:c,drawingIds:l},f;if(u===n.ArrangeTypeEnum.forward?f=o.getForwardDrawingsOp(d):u===n.ArrangeTypeEnum.backward?f=o.getBackwardDrawingOp(d):u===n.ArrangeTypeEnum.front?f=o.getFrontDrawingsOp(d):u===n.ArrangeTypeEnum.back&&(f=o.getBackDrawingsOp(d)),f==null)return!1;let{objects:p,redo:m,undo:h}=f;return i.syncExecuteCommand(r.SetDrawingApplyMutation.id,{op:m,unitId:s,subUnitId:c,objects:p,type:r.DrawingApplyType.ARRANGE})?(a.pushUndoRedo({unitID:s,undoMutations:[{id:r.SetDrawingApplyMutation.id,params:{op:h,unitId:s,subUnitId:c,objects:p,type:r.DrawingApplyType.ARRANGE}}],redoMutations:[{id:r.SetDrawingApplyMutation.id,params:{op:m,unitId:s,subUnitId:c,objects:p,type:r.DrawingApplyType.ARRANGE}}]}),!0):!1}},D={id:`sheet.command.set-sheet-image`,type:n.CommandType.COMMAND,handler:(e,t)=>{var a,o;let s=e.get(n.ICommandService),c=e.get(n.IUndoRedoService),l=e.get(r.ISheetDrawingService),u=e.get(i.SheetInterceptorService);if(!t)return!1;let{drawings:d}=t,{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=l.getBatchUpdateOp(d),v=u.onCommandExecute({id:D.id,params:t}),y=[...(a=v.preRedos)==null?[]:a,{id:r.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:h,objects:g,type:r.DrawingApplyType.UPDATE}},...v.redos,{id:_.id,params:[f]}],b=[...(o=v.preUndos)==null?[]:o,{id:r.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:m,objects:g,type:r.DrawingApplyType.UPDATE}},...v.undos,{id:_.id,params:[f]}];return(0,n.sequenceExecute)(y,s)?(c.pushUndoRedo({unitID:f,undoMutations:b,redoMutations:y}),!0):!1}},O={id:`sheet.command.ungroup-sheet-image`,type:n.CommandType.COMMAND,handler:(e,t)=>{let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(r.ISheetDrawingService);if(!t)return!1;let s=[];t.forEach(({parent:e,children:t})=>{s.push(e.unitId),t.forEach(e=>{s.push(e.unitId)})});let{unitId:c,subUnitId:l,undo:u,redo:d,objects:f}=o.getUngroupDrawingOp(t);return i.syncExecuteCommand(r.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:r.DrawingApplyType.UNGROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:r.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:b(f),type:r.DrawingApplyType.GROUP}},{id:_.id,params:s}],redoMutations:[{id:r.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:r.DrawingApplyType.UNGROUP}},{id:_.id,params:s}]}),!0):!1}};function k(e){"@babel/helpers - typeof";return k=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},k(e)}function A(e,t){if(k(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(k(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function j(e){var t=A(e,`string`);return k(t)==`symbol`?t:t+``}function M(e,t,n){return(t=j(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function N(e,t){return function(n,r){t(n,r,e)}}function P(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}function F(e,t,n){let r=n*Math.PI/180;return{rotatedWidth:Math.abs(e*Math.cos(r))+Math.abs(t*Math.sin(r)),rotatedHeight:Math.abs(e*Math.sin(r))+Math.abs(t*Math.cos(r))}}function I(n,r,i,a,o){var s;let{rotatedHeight:c,rotatedWidth:l}=F(i,a,o),u=n.get(e.IRenderManagerService).getRenderById(r.unitId);if(!u)return!1;let d=(s=u.with(t.SheetSkeletonManagerService).getSkeletonParam(r.subUnitId))==null?void 0:s.skeleton;if(d==null)return!1;let f=d.getCellByIndex(r.row,r.col),p=f.mergeInfo.endX-f.mergeInfo.startX-2,m=f.mergeInfo.endY-f.mergeInfo.startY-2,h=l/c,g=Math.ceil(Math.min(p,m*h))/l,_=!g||Number.isNaN(g)?.001:g;return{width:i*_,height:a*_}}let L=class extends n.Disposable{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){super(),this._context=e,this._skeletonManagerService=t,this._commandService=n,this._selectionRenderService=r,this._imageIoService=i,this._fileOpenerService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._contextService=c,this._messageService=l,this._localeService=u,this._injector=f,this._urlImageService=p,M(this,`_workbookSelections`,void 0),this._workbookSelections=d.getWorkbookSelections(this._context.unitId),this._updateDrawingListener(),this._updateOrderListener(),this._groupDrawingListener(),this._focusDrawingListener()}async insertFloatImage(){let e=await this._fileOpenerService.openFile({multiple:!0,accept:s.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>s.DRAWING_IMAGE_COUNT_LIMIT?(this._messageService.show({type:a.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(s.DRAWING_IMAGE_COUNT_LIMIT))}),!1):t===0?!1:(e.forEach(async e=>await this.insertFloatImageByFile(e)),!0)}async insertCellImage(){let e=(await this._fileOpenerService.openFile({multiple:!1,accept:s.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}))[0];return e?(await this._insertCellImage(e),!0):!1}insertCellImageByFile(e,t){return this._insertCellImage(e,t)}async insertFloatImageByFile(e){var t;let r;try{r=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===s.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:a.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(s.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===s.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:a.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===s.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:a.MessageType.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(r==null)return;let{unitId:i,subUnitId:o}=this._getUnitInfo(),{imageId:c,imageSourceType:l,source:u,base64Cache:d}=r,{width:f,height:p,image:h}=await(0,s.getImageSize)(d||``),{width:_,height:v}=this._context.scene;this._imageIoService.addImageSourceCache(u,l,h);let y=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;y=Math.max(e,t)}let b=this._getImagePosition(f*y,p*y,_,v);if(b==null)return;let x=m(b,this._selectionRenderService,this._skeletonManagerService),S={unitId:i,subUnitId:o,drawingId:c,drawingType:n.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l,source:u,transform:x,sheetTransform:b,axisAlignSheetTransform:(t=g(x,this._selectionRenderService))==null?b:t};return this._commandService.executeCommand(T.id,{unitId:i,drawings:[S]})}async _insertCellImage(e,t){let r;try{r=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===s.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:a.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(s.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===s.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:a.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===s.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:a.MessageType.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(r==null)return!1;let{imageId:c,imageSourceType:l,source:u,base64Cache:d}=r,{width:f,height:p,image:m}=await(0,s.getImageSize)(d||``);this._imageIoService.addImageSourceCache(u,l,m);let h=this._workbookSelections.getCurrentLastSelection();if(!h)return!1;let g=h.primary.actualRow,_=h.primary.actualColumn;h.primary.isMerged&&(g=h.primary.startRow,_=h.primary.startColumn);let v=(0,n.createDocumentModelWithStyle)(``,{}),y=I(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:g,col:_},f,p,0);if(!y)return!1;let b={size:{width:y.width,height:y.height},positionH:{relativeFrom:n.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:n.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},x={unitId:v.getUnitId(),subUnitId:v.getUnitId(),drawingId:c,drawingType:n.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l,source:u,transform:(0,o.docDrawingPositionToTransform)(b),docTransform:b,behindDoc:n.BooleanNumber.FALSE,title:``,description:``,layoutType:n.PositionedObjectLayoutType.INLINE,wrapText:n.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},S=n.BuildTextUtils.drawing.add({documentDataModel:v,drawings:[x],selection:{collapsed:!0,startOffset:0,endOffset:0}});if(S){var C,w;return v.apply(S),this._commandService.syncExecuteCommand(i.SetRangeValuesCommand.id,{value:{[(C=t==null?void 0:t.row)==null?g:C]:{[(w=t==null?void 0:t.col)==null?_:w]:{p:v.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})}return!1}async insertCellImageByUrl(e,t){let r=e;try{r=await this._urlImageService.getImage(e)}catch(t){console.error(`Failed to get image from URLImageService: ${e}`,t)}let{width:a,height:c,image:l}=await(0,s.getImageSize)(r||``);this._imageIoService.addImageSourceCache(e,n.ImageSourceType.URL,l);let u=this._workbookSelections.getCurrentLastSelection();if(!u)return!1;let d=(0,n.createDocumentModelWithStyle)(``,{}),f=I(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:u.primary.actualRow,col:u.primary.actualColumn},a,c,0);if(!f)return!1;let p={size:{width:f.width,height:f.height},positionH:{relativeFrom:n.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:n.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},m={unitId:d.getUnitId(),subUnitId:d.getUnitId(),drawingId:(0,n.generateRandomId)(),drawingType:n.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:n.ImageSourceType.URL,source:e,transform:(0,o.docDrawingPositionToTransform)(p),docTransform:p,behindDoc:n.BooleanNumber.FALSE,title:``,description:``,layoutType:n.PositionedObjectLayoutType.INLINE,wrapText:n.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},h=n.BuildTextUtils.drawing.add({documentDataModel:d,drawings:[m],selection:{collapsed:!0,startOffset:0,endOffset:0}});if(h){var g,_;return d.apply(h),this._commandService.syncExecuteCommand(i.SetRangeValuesCommand.id,{value:{[(g=t==null?void 0:t.row)==null?u.primary.actualRow:g]:{[(_=t==null?void 0:t.col)==null?u.primary.actualColumn:_]:{p:d.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})}return!1}_getUnitInfo(){let e=this._context.unit,t=e.getActiveSheet();return{unitId:e.getUnitId(),subUnitId:t.getSheetId()}}_getImagePosition(e,n,r,i){let a=this._workbookSelections.getCurrentSelections(),o={startRow:0,endRow:0,startColumn:0,endColumn:0};a&&a.length>0&&(o=a[a.length-1].range);let s=(0,t.attachRangeWithCoord)(this._skeletonManagerService.getCurrent().skeleton,o);if(s==null)return;let{startColumn:c,startRow:l,startX:u,startY:d}=s,f=!1;if(u+e>r&&(u=r-e,u<0&&(u=0,e=r),f=!0),d+n>i&&(d=i-n,d<0&&(d=0,n=i),f=!0),f){let e=this._selectionRenderService.getCellWithCoordByOffset(u,d);if(e==null)return;u=e.startX,d=e.startY,c=e.actualColumn,l=e.actualRow}let p={column:c,columnOffset:0,row:l,rowOffset:0},m=this._selectionRenderService.getCellWithCoordByOffset(u+e,d+n);if(m!=null)return{from:p,to:{column:m.actualColumn,columnOffset:u+e-m.startX,row:m.actualRow,rowOffset:d+n-m.startY}}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(E.id,{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i})}))}_updateDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{let t=[];e.length!==0&&(e.forEach(e=>{let{unitId:n,subUnitId:r,drawingId:i,drawingType:a,transform:o}=e;if(o==null)return;let s=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:r,drawingId:i});if(s==null||s.unitId!==this._context.unitId)return;let c=h({...s.transform,...o},this._selectionRenderService),l=g({...s.transform,...o},this._selectionRenderService);if(c==null||l==null)return;let u={...e,transform:{...s.transform,...o,...m(c,this._selectionRenderService,this._skeletonManagerService)},sheetTransform:{...c},axisAlignSheetTransform:{...l}};t.push(u)}),t.length>0&&this._commandService.executeCommand(D.id,{unitId:e[0].unitId,drawings:t}))}))}_getSheetTransformByParam(e,t){let{unitId:n,subUnitId:r,drawingId:i,transform:a}=e;if(a==null)return null;let o=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:r,drawingId:i}),s=o==null?void 0:o.transform;if(t&&(s={}),!t&&(o==null||o.unitId!==this._context.unitId))return null;let c=h({...s,...a},this._selectionRenderService),l=g({...s,...a},this._selectionRenderService);return c==null||l==null?null:{sheetTransform:c,axisAlignSheetTransform:l}}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{let t=[];for(let n of e){let e=this._getSheetTransformByParam(n.parent,!0),r=[];for(let e of n.children){let t=this._getSheetTransformByParam(e,!1);t!=null&&r.push({...e,sheetTransform:t.sheetTransform,axisAlignSheetTransform:t.axisAlignSheetTransform})}let i={parent:{...n.parent,sheetTransform:e==null?void 0:e.sheetTransform,axisAlignSheetTransform:e==null?void 0:e.axisAlignSheetTransform},children:r};t.push(i)}if(t.length>0){this._commandService.executeCommand(w.id,t);let{unitId:n,subUnitId:r,drawingId:i}=e[0].parent;this._commandService.syncExecuteCommand(s.SetDrawingSelectedOperation.id,[{unitId:n,subUnitId:r,drawingId:i}])}})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{let t=[];for(let n of e){let{children:e}=n,r=[];for(let t of e){let e=this._getSheetTransformByParam(t,!1);e!=null&&r.push({...t,sheetTransform:e.sheetTransform,axisAlignSheetTransform:e.axisAlignSheetTransform})}t.push({...n,children:r})}this._commandService.executeCommand(O.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue(n.FOCUSING_COMMON_DRAWINGS,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue(n.FOCUSING_COMMON_DRAWINGS,!0),this._sheetDrawingService.focusDrawing(e))}))}};L=P([N(1,(0,n.Inject)(t.SheetSkeletonManagerService)),N(2,n.ICommandService),N(3,t.ISheetSelectionRenderService),N(4,s.IImageIoService),N(5,c.ILocalFileService),N(6,r.ISheetDrawingService),N(7,s.IDrawingManagerService),N(8,n.IContextService),N(9,c.IMessageService),N(10,(0,n.Inject)(n.LocaleService)),N(11,(0,n.Inject)(i.SheetsSelectionsService)),N(12,(0,n.Inject)(n.Injector)),N(13,n.IURLImageService)],L);const R={id:`sheet.command.insert-float-image`,type:n.CommandType.COMMAND,handler:async(t,r)=>{var i;let a=t.get(n.IUniverInstanceService),o=t.get(e.IRenderManagerService),s=(i=(0,e.getCurrentTypeOfRenderer)(n.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(L);if(!s)return!1;let c=r==null?void 0:r.files;if(c){let e=c.map(e=>s.insertFloatImageByFile(e));return(await Promise.all(e)).every(e=>e)}else{var l;return(l=s.insertFloatImage())==null?!1:l}}},z={id:`sheet.command.insert-cell-image`,type:n.CommandType.COMMAND,handler:t=>{var r,i;let a=t.get(n.IUniverInstanceService),o=t.get(e.IRenderManagerService);return(r=(i=(0,e.getCurrentTypeOfRenderer)(n.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(L).insertCellImage())==null?!1:r}},B={id:`sheet.command.move-drawing`,type:n.CommandType.COMMAND,handler:(e,i)=>{let a=e.get(n.ICommandService),o=e.get(r.ISheetDrawingService),s=e.get(t.ISheetSelectionRenderService),{direction:c}=i,l=o.getFocusDrawings();if(l.length===0)return!1;let u=l[0].unitId,d=l.map(e=>{let{transform:t}=e;if(t==null)return null;let r={...t},{left:i=0,top:a=0}=t;return c===n.Direction.UP?r.top=a-1:c===n.Direction.DOWN?r.top=a+1:c===n.Direction.LEFT?r.left=i-1:c===n.Direction.RIGHT&&(r.left=i+1),{...e,transform:r,sheetTransform:h(r,s),axisAlignSheetTransform:g(r,s)}}).filter(e=>e!=null);return a.syncExecuteCommand(D.id,{unitId:u,drawings:d})?(a.syncExecuteCommand(_.id,[u]),!0):!1}};let V=function(e){return e.CELL_ADDRESS=`cellAddress`,e.COLUMN_VALUE=`columnValue`,e}({});const H=(0,n.createIdentifier)(`sheets-drawing-ui.batch-save-images.service`);function U(e){let t=``,n=e;for(;n>=0;)t=String.fromCharCode(n%26+65)+t,n=Math.floor(n/26)-1;return t}function W(e,t){return`${U(t)}${e+1}`}function ee(e){let t=W(e.startRow,e.startColumn),n=W(e.endRow,e.endColumn);return t===n?t:`${t}:${n}`}function G(e){var t,n;return!!(!(e==null||(t=e.p)==null||(t=t.drawingsOrder)==null)&&t.length&&(e==null||(n=e.p)==null||(n=n.drawingsOrder)==null?void 0:n.length)>0)}function K(e){var t,n;if(!(!((t=e.p)==null||(t=t.drawingsOrder)==null)&&t.length)||!((n=e.p)!=null&&n.drawings))return null;let r=e.p.drawingsOrder[0],i=e.p.drawings[r];return!i||!(`source`in i)||!(`imageSourceType`in i)?null:i}function q(e,t){if(t===n.ImageSourceType.BASE64){let t=e.match(/^data:image\/(\w+);/);if(t)return t[1]===`jpeg`?`jpg`:t[1]}if(t===n.ImageSourceType.URL){let t=e.match(/\.(\w+)(?:\?|$)/);if(t)return t[1].toLowerCase()}return`png`}async function J(e,t){if(t===n.ImageSourceType.BASE64||t===n.ImageSourceType.URL)return(await fetch(e)).blob();throw Error(`UUID image type requires additional handling`)}let te=class extends n.Disposable{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._selectionService=t,this._imageIoService=n,this._urlImageService=r}registerURLImageDownloader(e){return this._urlImageService.registerURLImageDownloader(e)}getCellImagesInSelection(){let e=this._univerInstanceService.getCurrentUnitForType(n.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let r=this._selectionService.getCurrentSelections();if(!r||r.length===0)return[];let i=t.getCellMatrix(),a=[];for(let e of r){let{startRow:t,endRow:n,startColumn:r,endColumn:o}=e.range;for(let e=t;e<=n;e++)for(let t=r;t<=o;t++){let n=i.getValue(e,t);if(G(n)){let r=K(n);r&&a.push({row:e,col:t,cellAddress:W(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return a}getCellImagesFromRanges(e,t,r){let i=this._univerInstanceService.getUnit(e,n.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(t);if(!a)return[];let o=a.getCellMatrix(),s=[];for(let e of r){let{startRow:t,endRow:n,startColumn:r,endColumn:i}=e;for(let e=t;e<=n;e++)for(let t=r;t<=i;t++){let n=o.getValue(e,t);if(G(n)){let r=K(n);r&&s.push({row:e,col:t,cellAddress:W(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return s}getDataColumns(){let e=this._univerInstanceService.getCurrentUnitForType(n.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let r=this._selectionService.getCurrentSelections();if(!r||r.length===0)return[];let i=t.getCellMatrix(),a=i.getDataRange(),o=1/0,s=-1/0,c=new Set;for(let e of r){o=Math.min(o,e.range.startRow),s=Math.max(s,e.range.endRow);for(let t=e.range.startColumn;t<=e.range.endColumn;t++)c.add(t)}let l=new Set;for(let e=a.startColumn;e<=a.endColumn;e++)if(!c.has(e))for(let t=o;t<=s;t++){let n=i.getValue(t,e);if(n){var u,d;if((u=n.v)!=null&&u.toString()||!((d=n.p)==null||(d=d.body)==null||(d=d.dataStream)==null)&&d.trim()){l.add(e);break}}}let f=[],p=Array.from(l).sort((e,t)=>e-t);for(let e of p)f.push({index:e,label:U(e)});return f}getDataColumnsForRanges(e,t,r){let i=this._univerInstanceService.getUnit(e,n.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(t);if(!a)return[];let o=a.getCellMatrix(),s=o.getDataRange(),c=1/0,l=-1/0,u=new Set;for(let e of r){c=Math.min(c,e.startRow),l=Math.max(l,e.endRow);for(let t=e.startColumn;t<=e.endColumn;t++)u.add(t)}let d=new Set;for(let e=s.startColumn;e<=s.endColumn;e++)if(!u.has(e))for(let t=c;t<=l;t++){let n=o.getValue(t,e);if(n){var f,p;if((f=n.v)!=null&&f.toString()||!((p=n.p)==null||(p=p.body)==null||(p=p.dataStream)==null)&&p.trim()){d.add(e);break}}}let m=[],h=Array.from(d).sort((e,t)=>e-t);for(let e of h)m.push({index:e,label:U(e)});return m}getSelectionRangeNotation(){let e=this._selectionService.getCurrentSelections();return!e||e.length===0?``:e.map(e=>ee(e.range)).join(`, `)}getSelectionRowRange(){let e=this._selectionService.getCurrentSelections();if(!e||e.length===0)return null;let t=1/0,n=-1/0;for(let r of e)t=Math.min(t,r.range.startRow),n=Math.max(n,r.range.endRow);return{startRow:t,endRow:n}}getSelectionColumnIndices(){let e=this._selectionService.getCurrentSelections();if(!e||e.length===0)return new Set;let t=new Set;for(let n of e)for(let e=n.range.startColumn;e<=n.range.endColumn;e++)t.add(e);return t}generateFileName(e,t){let r=this._univerInstanceService.getCurrentUnitForType(n.UniverInstanceType.UNIVER_SHEET),i=q(e.source,e.imageSourceType),a=[];for(let n of t.fileNameParts)if(n===V.CELL_ADDRESS)a.push(e.cellAddress);else if(n===V.COLUMN_VALUE&&t.columnIndex!==void 0){let n=r==null?void 0:r.getActiveSheet();if(n){let r=n.getCellMatrix().getValue(e.row,t.columnIndex);if(r){var o,s;let e=((o=r.v)==null?void 0:o.toString())||((s=r.p)==null||(s=s.body)==null||(s=s.dataStream)==null?void 0:s.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&a.push(t)}}}}return a.length===0?`${e.cellAddress}.${i}`:`${a.join(`_`)}.${i}`}generateFileNameWithContext(e,t,r,i){let a=this._univerInstanceService.getUnit(r,n.UniverInstanceType.UNIVER_SHEET),o=q(e.source,e.imageSourceType),s=[];for(let n of t.fileNameParts)if(n===V.CELL_ADDRESS)s.push(e.cellAddress);else if(n===V.COLUMN_VALUE&&t.columnIndex!==void 0){let n=a==null?void 0:a.getSheetBySheetId(i);if(n){let r=n.getCellMatrix().getValue(e.row,t.columnIndex);if(r){var c,l;let e=((c=r.v)==null?void 0:c.toString())||((l=r.p)==null||(l=l.body)==null||(l=l.dataStream)==null?void 0:l.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&s.push(t)}}}}return s.length===0?`${e.cellAddress}.${o}`:`${s.join(`_`)}.${o}`}async saveImages(e,t){let n=await window.showDirectoryPicker({mode:`readwrite`}),r=new Map;for(let a of e){var i;let e=this.generateFileName(a,t),o=e.replace(/\.\w+$/,``),s=((i=e.match(/\.\w+$/))==null?void 0:i[0])||`.png`,c=r.get(o)||0;c>0&&(e=`${o}_${c}${s}`),r.set(o,c+1);try{let t=await this._getImageBlob(a),r=await(await n.getFileHandle(e,{create:!0})).createWritable();await r.write(t),await r.close()}catch(t){throw console.error(`Failed to save image ${e}:`,t),t}}}async saveImagesWithContext(e,t,n,r){let i=await window.showDirectoryPicker({mode:`readwrite`}),a=new Map;for(let s of e){var o;let e=this.generateFileNameWithContext(s,t,n,r),c=e.replace(/\.\w+$/,``),l=((o=e.match(/\.\w+$/))==null?void 0:o[0])||`.png`,u=a.get(c)||0;u>0&&(e=`${c}_${u}${l}`),a.set(c,u+1);try{let t=await this._getImageBlob(s),n=await(await i.getFileHandle(e,{create:!0})).createWritable();await n.write(t),await n.close()}catch(t){throw console.error(`Failed to save image ${e}:`,t),t}}}async downloadSingleImage(e){let t=q(e.source,e.imageSourceType),n=`${e.cellAddress}.${t}`;try{let t=await this._getImageBlob(e),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=n,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}catch(e){throw console.error(`Failed to download image ${n}:`,e),e}}async _getImageBlob(e){return e.imageSourceType===n.ImageSourceType.UUID?J(await this._imageIoService.getImage(e.source),n.ImageSourceType.URL):e.imageSourceType===n.ImageSourceType.URL?this._urlImageService.downloadImage(e.source):J(e.source,e.imageSourceType)}};te=P([N(0,n.IUniverInstanceService),N(1,(0,n.Inject)(i.SheetsSelectionsService)),N(2,n.IImageIoService),N(3,n.IURLImageService)],te);const Y=`sheet.dialog.batch-save-images`,X={id:`sheet.command.save-cell-images`,type:n.CommandType.COMMAND,handler:async e=>{let t=e.get(c.IDialogService),r=e.get(H),i=r.getCellImagesInSelection();if(i.length===1)try{return await r.downloadSingleImage(i[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let a=e.get(n.LocaleService),o=r.getSelectionRangeNotation(),s=`${a.t(`sheetImage.save.title`)} (${o})`;return t.open({id:Y,draggable:!0,width:360,title:{title:s},children:{label:Y},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>t.close(Y)}),!0}},ne=`COMPONENT_SHEET_DRAWING_PANEL`,re={id:`sidebar.operation.sheet-image`,type:n.CommandType.COMMAND,handler:async(e,t)=>{let r=e.get(c.ISidebarService),a=e.get(n.LocaleService),o=e.get(n.IUniverInstanceService),l=e.get(n.ICommandService);if(!(0,i.getSheetCommandTarget)(o))return!1;switch(t.value){case`open`:r.open({header:{title:a.t(`sheetImage.panel.title`)},children:{label:ne},onClose:()=>{l.syncExecuteCommand(s.SetDrawingSelectedOperation.id,[])},width:360});break;default:r.close();break}return!0}},ie={id:`sheet.operation.edit-sheet-image`,type:n.CommandType.OPERATION,handler:(e,t)=>{let r=e.get(n.ICommandService);return t==null?!1:(r.syncExecuteCommand(s.SetDrawingSelectedOperation.id,[t]),r.executeCommand(re.id,{value:`open`}),!0)}},ae=[t.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,t.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,t.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,t.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA];let oe=class extends n.Disposable{constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetDrawingService=n,this._drawingManagerService=r,M(this,`_featurePasteHooks`,[]),M(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._sheetDrawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_DRAWING_GROUP`,onBeforeCopy:(e,t)=>{this._copyInfo=null;let r=this._focusedDrawings;if(r.length===0)return;let i=r.find(e=>e.drawingType===n.DrawingTypeEnum.DRAWING_GROUP);if(!i)return;let a=this._drawingManagerService.getDrawingsByGroupNested({unitId:i.unitId,subUnitId:i.subUnitId,drawingId:i.drawingId});a&&(this._copyInfo={unitId:i.unitId,subUnitId:i.subUnitId,groupNestedParam:a})},onPasteCells:(e,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{pasteType:i}=r;return ae.includes(i)?{redos:[],undos:[]}:this._generateGroupPasteMutations(t)},onPasteUnrecognized:e=>this._copyInfo?this._generateGroupPasteMutations(e):{redos:[],undos:[]}})}registerFeaturePasteHook(e){this._featurePasteHooks.push(e)}_getGroupFeaturePasteMutations(e){let t=[],n=[];for(let r of this._featurePasteHooks){let i=r(e);t.push(...i.redos),n.push(...i.undos)}return{redos:t,undos:n}}_generateGroupPasteMutations(e){var n;let{unitId:a,subUnitId:o,range:s}=e,c=this._renderManagerService.getRenderById(a),l=c==null?void 0:c.with(t.SheetSkeletonManagerService),u=c==null?void 0:c.with(t.ISheetSelectionRenderService);if(!l||!u||!this._copyInfo)return{redos:[],undos:[]};let{groupNestedParam:d}=this._copyInfo,f=d.groups[d.groups.length-1],{cloned:p,idMap:m}=S(d),_=p.groups[p.groups.length-1].drawingId,v=(0,i.discreteRangeToRange)(s),y=l.attachRangeWithCoord({startRow:v.startRow,endRow:v.endRow,startColumn:v.startColumn,endColumn:v.endColumn});if(!y)return{redos:[],undos:[]};let b={...f.transform,left:y.startX,top:y.startY},x=[...((n=p.flatChildren)==null?[]:n).map(e=>({...e,unitId:a,subUnitId:o})),...p.groups.map(e=>{var t,n;return e.drawingId===_?{...e,unitId:a,subUnitId:o,transform:b,sheetTransform:(t=h(b,u))==null?f.sheetTransform:t,axisAlignSheetTransform:(n=g(b,u))==null?f.sheetTransform:n}:{...e,unitId:a,subUnitId:o}})],{undo:C,redo:w,objects:T}=this._sheetDrawingService.getBatchAddOp(x),E=[{id:r.SetDrawingApplyMutation.id,params:{op:w,unitId:a,subUnitId:o,objects:T,type:r.DrawingApplyType.INSERT}}],D=[{id:r.SetDrawingApplyMutation.id,params:{op:C,unitId:a,subUnitId:o,objects:T,type:r.DrawingApplyType.REMOVE}}],O=this._getGroupFeaturePasteMutations({fromUnitId:this._copyInfo.unitId,fromSubUnitId:this._copyInfo.subUnitId,toUnitId:a,toSubUnitId:o,idMap:m,cloned:p});return E.push(...O.redos),D.push(...O.undos),{redos:E,undos:D}}dispose(){this._copyInfo=null,this._featurePasteHooks.length=0,super.dispose()}};oe=P([N(0,t.ISheetClipboardService),N(1,e.IRenderManagerService),N(2,r.ISheetDrawingService),N(3,s.IDrawingManagerService)],oe);const se=`sheet.menu.image`;function ce(e){return{id:se,type:c.MenuItemType.SUBITEMS,icon:`AddImageIcon`,tooltip:`sheetImage.title`,hidden$:(0,c.getMenuHiddenObservable)(e,n.UniverInstanceType.UNIVER_SHEET),disabled$:(0,t.getCurrentRangeDisable$)(e,{workbookTypes:[i.WorkbookEditablePermission],worksheetTypes:[i.WorksheetEditPermission],rangeTypes:[i.RangeProtectionPermissionEditPoint]})}}function le(e){return{id:R.id,title:`sheetImage.upload.float`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,n.UniverInstanceType.UNIVER_SHEET)}}function ue(e){return{id:z.id,title:`sheetImage.upload.cell`,type:c.MenuItemType.BUTTON,hidden$:(0,c.getMenuHiddenObservable)(e,n.UniverInstanceType.UNIVER_SHEET)}}var de=`@univerjs/sheets-drawing-ui`,fe=`0.18.0`;const pe=`sheets-drawing-ui.config`;Symbol(pe);const me={};let he=class extends n.RxDisposable{constructor(e,t,n,r){super(),this._drawingManagerService=e,this._contextMenuService=t,this._renderManagerService=n,this._univerInstanceService=r,this._init()}_init(){this._univerInstanceService.getAllUnitsForType(n.UniverInstanceType.UNIVER_SHEET).forEach(e=>this._contextMenuListener(e))}_contextMenuListener(e){var t;if(!e)return;let n=(t=this._renderManagerService.getRenderById(e.getUnitId()))==null?void 0:t.scene;if(!n)return;let r=n.getTransformerByCreate();r&&this.disposeWithMe(r.changeEnd$.subscribe(e=>{let{event:t}=e;if(t.button!==2)return;let n=r.getSelectedObjectMap();if(n.size!==0){for(let e of n.values()){let t=e.oKey;if(!this._drawingManagerService.getDrawingOKey(t))return}this._contextMenuService.triggerContextMenu(t,c.ContextMenuPosition.DRAWING)}}))}};he=P([N(0,s.IDrawingManagerService),N(1,c.IContextMenuService),N(2,e.IRenderManagerService),N(3,n.IUniverInstanceService)],he);let ge=class extends n.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._hoverManagerService=t,this._selectionsService=n,this._drawingRenderService=r,this._sheetSkeletonManagerService=i,M(this,`_isSetCursor`,!1),this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe((0,d.throttleTime)(33)).subscribe(t=>{var n,r;let i=[];t!==null&&(i=this._selectionsService.getWorkbookSelections(this._context.unitId).getCurrentSelections()),i.length>0&&(t==null?void 0:t.unitId)===this._context.unitId&&t!=null&&t.drawing&&i.length===1&&((n=i[0].primary)==null?void 0:n.actualRow)===t.row&&((r=i[0].primary)==null?void 0:r.actualColumn)===t.col?(this._isSetCursor=!0,this._context.scene.setCursor(e.CURSOR_TYPE.ZOOM_IN)):this._isSetCursor&&(this._isSetCursor=!1,this._context.scene.resetCursor())}))}_initImageClick(){this.disposeWithMe(this._hoverManagerService.currentClickedCell$.subscribe(e=>{if(e!=null&&e.drawing&&this._isSetCursor){var t;let n=e.drawing.drawing.drawingOrigin,r=(t=this._sheetSkeletonManagerService.getCurrentSkeleton())==null?void 0:t.imageCacheMap.getImage(n.imageSourceType,n.source);if(!r)return;this._drawingRenderService.previewImage(`preview-cell-image`,r.src,r.width,r.height),this._context.scene.resetCursor(),this._isSetCursor=!1}}))}};ge=P([N(1,(0,n.Inject)(t.HoverManagerService)),N(2,(0,n.Inject)(i.SheetsSelectionsService)),N(3,(0,n.Inject)(u.DrawingRenderService)),N(4,(0,n.Inject)(t.SheetSkeletonManagerService))],ge);let _e=class extends n.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._sheetDrawingService=t,this._drawingManagerService=n,this._sheetSelectionRenderService=r,this._sheetSkeletonManagerService=i,this._init()}_init(){this._drawingInitializeListener()}_drawingInitializeListener(){this._sheetDrawingService.initializeNotification(this._context.unitId);let e=this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId);for(let t in e){let n=e[t];for(let e in n.data){let t=n.data[e];t.sheetTransform&&(t.transform=m(t.sheetTransform,this._sheetSelectionRenderService,this._sheetSkeletonManagerService))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};_e=P([N(1,r.ISheetDrawingService),N(2,s.IDrawingManagerService),N(3,(0,n.Inject)(t.ISheetSelectionRenderService)),N(4,(0,n.Inject)(t.SheetSkeletonManagerService))],_e);function ve(e,t,n){var r,i;if((n==null||(r=n.p)==null||(r=r.body)==null?void 0:r.dataStream.length)===3&&((i=n.p)==null||(i=i.drawingsOrder)==null?void 0:i.length)===1){let r=n.p.drawings[n.p.drawingsOrder[0]],i=I(e,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},r.docTransform.size.width,r.docTransform.size.height,r.docTransform.angle);if(i)return r.transform.width=i.width,r.transform.height=i.height,r.docTransform.size.width=i.width,r.docTransform.size.height=i.height,r.transform.left=0,r.transform.top=0,r.docTransform.positionH.posOffset=0,r.docTransform.positionV.posOffset=0,n.p.documentStyle.pageSize.width=1/0,n.p.documentStyle.pageSize.height=1/0,!0}return!1}let ye=class extends n.Disposable{constructor(e,t,n,r,i,a){super(),this._commandService=e,this._sheetInterceptorService=t,this._injector=n,this._drawingManagerService=r,this._docDrawingController=i,this._editorBridgeService=a,this._handleInitEditor(),this._initCellContentInterceptor()}_handleInitEditor(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(e=>{e.visible?e.visible&&(this._drawingManagerService.removeDrawingDataForUnit(n.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(n.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(n.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)):this._drawingManagerService.removeDrawingDataForUnit(n.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{e.id===o.ReplaceSnapshotCommand.id&&e.params.unitId===n.DOCS_ZEN_EDITOR_UNIT_ID_KEY&&(this._drawingManagerService.removeDrawingDataForUnit(n.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(n.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(n.DOCS_ZEN_EDITOR_UNIT_ID_KEY))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(i.INTERCEPTOR_POINT.CELL_CONTENT,{effect:n.InterceptorEffectEnum.Style,priority:i.InterceptCellContentPriority.CELL_IMAGE,handler:(e,t,n)=>{var r;return e!=null&&e.p&&(r=e.p.drawingsOrder)!=null&&r.length&&(e===t.rawData&&(e={...t.rawData}),e.interceptorStyle||(e.interceptorStyle={}),e.interceptorStyle.tr={a:0},ve(this._injector,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},e)),n(e)}}))}};ye=P([N(0,n.ICommandService),N(1,(0,n.Inject)(i.SheetInterceptorService)),N(2,(0,n.Inject)(n.Injector)),N(3,s.IDrawingManagerService),N(4,(0,n.Inject)(l.DocDrawingController)),N(5,(0,n.Inject)(t.IEditorBridgeService))],ye);let be=class extends n.Disposable{constructor(e,t){super(),this._autoFillService=e,this._injector=t,this._initAutoFillHooks()}_initAutoFillHooks(){this.disposeWithMe(this._autoFillService.addHook({id:`sheet-cell-image-autofill`,onBeforeSubmit:(e,t,r,i)=>{new n.ObjectMatrix(i).forValue((t,n,r)=>{ve(this._injector,{unitId:e.unitId,subUnitId:e.subUnitId,row:t,col:n},r)})}}))}};be=P([N(0,(0,n.Inject)(i.IAutoFillService)),N(1,(0,n.Inject)(n.Injector))],be);const xe=[n.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,n.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,n.DOCS_ZEN_EDITOR_UNIT_ID_KEY];let Se=class extends n.Disposable{constructor(e,t,n,r,i){super(),this._commandService=e,this._univerInstanceService=t,this._dialogService=n,this._renderManagerService=r,this._localeService=i,this._initDocImageCopyPasteHooks()}_setCellImage(r){var i;let a=(0,n.createDocumentModelWithStyle)(``,{}),o=(i=(0,e.getCurrentTypeOfRenderer)(n.UniverInstanceType.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService))==null?void 0:i.with(t.EditingRenderController),s=n.BuildTextUtils.drawing.add({documentDataModel:a,drawings:[r],selection:{collapsed:!0,startOffset:0,endOffset:0}});s&&(a.apply(s),o&&o.submitCellData(a))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===o.InnerPasteCommand.id){var r;let{doc:a}=e.params,o=this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_DOC);if(o==null||!Object.keys((r=a.drawings)==null?{}:r).length)return;let s=o.getUnitId();if(xe.includes(s)){if(s!==n.DOCS_ZEN_EDITOR_UNIT_ID_KEY){var i;let e=()=>{this._dialogService.close(`sheet-cell-image-copy-paste`),this._commandService.syncExecuteCommand(t.SetCellEditVisibleOperation.id,{visible:!1})};((i=o.getBody())==null?void 0:i.dataStream)===`\r
2
+ `?(this._commandService.syncExecuteCommand(t.SetCellEditVisibleOperation.id,{visible:!1}),this._setCellImage(Object.values(a.drawings)[0])):this._dialogService.open({id:`sheet-cell-image-copy-paste`,title:{label:this._localeService.t(`cell-image.pasteTitle`)},children:{label:this._localeService.t(`cell-image.pasteContent`)},width:320,destroyOnClose:!0,onClose:e,showOk:!0,showCancel:!0,onOk:()=>{e(),this._setCellImage(Object.values(a.drawings)[0])},onCancel:e})}throw Error(`Sheet cell image copy paste is not supported in this unit`)}}}))}};Se=P([N(0,n.ICommandService),N(1,n.IUniverInstanceService),N(2,c.IDialogService),N(3,e.IRenderManagerService),N(4,(0,n.Inject)(n.LocaleService))],Se);const Ce=`image/png`;function we(e){let t=e.split(`,`),n=atob(t[1]),r=n.length,i=new Uint8Array(r);for(let e=0;e<r;e++)i[e]=n.charCodeAt(e);return new Blob([i],{type:Ce})}function Te(e){let t=new ClipboardItem({[Ce]:we(e)});navigator.clipboard.write([t]).catch(e=>{console.error(`Could not copy image using clipboard API: `,e)})}function Ee(){function e(){let e=document.createElement(`input`);return e.style.position=`absolute`,e.style.height=`1px`,e.style.width=`1px`,e.style.opacity=`0`,e}let t=document.activeElement,n=e();return document.body.appendChild(n),n.focus(),()=>{n.blur(),document.body.removeChild(n),t instanceof HTMLElement&&t.focus()}}const De=[t.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,t.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,t.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,t.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA];let Oe=class extends n.Disposable{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._drawingService=n,this._clipboardInterfaceService=r,this._commandService=i,M(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._drawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_IMAGE_UI_PLUGIN`,onBeforeCopy:(e,r,i,a)=>{this._copyInfo=null;let o=this._focusedDrawings;if(o.length>0){let[r]=o;if(r.drawingType!==n.DrawingTypeEnum.DRAWING_IMAGE)return;if(a===t.COPY_TYPE.CUT){let t={unitId:e,drawings:[r]};this._commandService.executeCommand(v.id,t)}setTimeout(()=>{let e=Ee();r.drawingType===n.DrawingTypeEnum.DRAWING_IMAGE&&r.imageSourceType===s.ImageSourceType.BASE64?Te(r.source):this._clipboardInterfaceService.writeText(``),e()},200),this._copyInfo={unitId:r.unitId,subUnitId:r.subUnitId,drawings:[r]}}else this._copyInfo=this._createDrawingsCopyInfoByRange(e,r,i)},onPasteCells:(e,n,r,i)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{copyType:a=t.COPY_TYPE.COPY,pasteType:o}=i,{range:s}=e||{},{range:c,unitId:l,subUnitId:u}=n;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({pasteType:o,unitId:l,subUnitId:u,pasteRange:c},{copyRange:s,copyType:a}):this._generateSingleDrawingPasteMutations({pasteTo:n,pasteType:o},t.COPY_TYPE.COPY)},onPastePlainText:(e,t)=>({undos:[],redos:[]}),onPasteUnrecognized:e=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:t.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},t.COPY_TYPE.COPY):{undos:[],redos:[]},onPasteFiles:(e,n)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:t.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},t.COPY_TYPE.COPY);{let e=n.filter(e=>e.type.includes(`image`));if(e.length)return{undos:[],redos:[{id:R.id,params:{files:e}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(e,i,a){var o;let s=(o=this._renderManagerService.getRenderById(e))==null?void 0:o.with(t.SheetSkeletonManagerService);if(!s)return;let c=s.attachRangeWithCoord(a);if(!c)return;let{startX:l,endX:u,startY:d,endY:f}=c,p=this._drawingService.getDrawingData(e,i),m=this._focusedDrawings.slice();if(Object.keys(p).forEach(e=>{let t=p[e];if(t.drawingType!==n.DrawingTypeEnum.DRAWING_IMAGE)return;let{transform:i}=t;if(t.anchorType!==r.SheetDrawingAnchorType.Both||!i)return;let{left:a=0,top:o=0,width:s=0,height:c=0}=i,{drawingStartX:h,drawingEndX:g,drawingStartY:_,drawingEndY:v}={drawingStartX:a,drawingEndX:a+s,drawingStartY:o,drawingEndY:o+c};l<=h&&g<=u&&d<=_&&v<=f&&m.push(t)}),m.length)return{copyRange:a,drawings:m,unitId:e,subUnitId:i}}_generateSingleDrawingPasteMutations(e,n){let{pasteType:r,pasteTo:a}=e;if(De.includes(r))return{redos:[],undos:[]};let{unitId:o,subUnitId:s,range:c}=a,l=this._renderManagerService.getRenderById(o),u=l==null?void 0:l.with(t.SheetSkeletonManagerService),d=l==null?void 0:l.with(t.ISheetSelectionRenderService),f=this._copyInfo;if(!u||!d)return{redos:[],undos:[]};let{drawings:p}=f,m=(0,i.discreteRangeToRange)(c);return this._generateMutations(p,{unitId:o,subUnitId:s,isCut:n===t.COPY_TYPE.CUT,getTransform:(e,t)=>{var n,r;let i=u.attachRangeWithCoord({startRow:m.startRow,endRow:m.endRow,startColumn:m.startColumn,endColumn:m.endColumn}),a={...e,left:i==null?void 0:i.startX,top:i==null?void 0:i.startY};return{transform:a,sheetTransform:(n=h(a,d))==null?t:n,axisAlignSheetTransform:(r=g(a,d))==null?t:r}}})}_generateMutations(e,t){let{unitId:i,subUnitId:a,getTransform:o,isCut:s}=t,c=[],l=[],{_drawingService:u}=this;return e.forEach(e=>{let{transform:t,sheetTransform:d}=e;if(!t)return;let f=o(t,d),p={...e,unitId:i,subUnitId:a,drawingId:s?e.drawingId:(0,n.generateRandomId)(),transform:f.transform,sheetTransform:f.sheetTransform,axisAlignSheetTransform:f.axisAlignSheetTransform};if(s){let{undo:e,redo:t,objects:n}=u.getBatchUpdateOp([p]);c.push({id:r.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,type:r.DrawingApplyType.UPDATE,op:t,objects:n}}),l.push({id:r.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,type:r.DrawingApplyType.UPDATE,op:e,objects:n}})}else{let{undo:e,redo:t,objects:n}=u.getBatchAddOp([p]);c.push({id:r.SetDrawingApplyMutation.id,params:{op:t,unitId:i,subUnitId:a,objects:n,type:r.DrawingApplyType.INSERT}}),l.push({id:r.SetDrawingApplyMutation.id,params:{op:e,unitId:i,subUnitId:a,objects:n,type:r.DrawingApplyType.REMOVE}})}}),{redos:c,undos:l}}_generateRangeDrawingsPasteMutations(e,n){var r;let{unitId:a,subUnitId:o,pasteType:s,pasteRange:c}=e,{copyRange:l,copyType:u}=n;if(De.includes(s))return{redos:[],undos:[]};let d=(r=this._renderManagerService.getRenderById(a))==null?void 0:r.with(t.SheetSkeletonManagerService);if(!d||!this._copyInfo)return{redos:[],undos:[]};let{drawings:f}=this._copyInfo;if(!l)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:a,subUnitId:o,range:(0,i.discreteRangeToRange)(c)},pasteType:s},u);let{ranges:[p,m],mapFunc:h}=(0,t.virtualizeDiscreteRanges)([l,c]),{row:_,col:v}=h(p.startRow,p.startColumn),{row:y,col:b}=h(m.startRow,m.startColumn),x=d.attachRangeWithCoord({startRow:_,endRow:_,startColumn:v,endColumn:v}),S=d.attachRangeWithCoord({startRow:y,endRow:y,startColumn:b,endColumn:b});if(!x||!S||!this._copyInfo)return{redos:[],undos:[]};let C=S.startX-x.startX,w=S.startY-x.startY,T=y-_,E=b-v;return this._generateMutations(f,{unitId:a,subUnitId:o,getTransform:(e,n)=>{var r,i,o;let s={...e,left:((r=e==null?void 0:e.left)==null?0:r)+C,top:((i=e==null?void 0:e.top)==null?0:i)+w},c=this._renderManagerService.getRenderById(a),l=c==null?void 0:c.with(t.ISheetSelectionRenderService);return l?{transform:s,sheetTransform:{...n,to:{...n.to,row:n.to.row+T,column:n.to.column+E},from:{...n.from,row:n.from.row+T,column:n.from.column+E}},axisAlignSheetTransform:(o=g(s,l))==null?n:o}:{transform:s,sheetTransform:{...n,to:{...n.to,row:n.to.row+T,column:n.to.column+E},from:{...n.from,row:n.from.row+T,column:n.from.column+E}},axisAlignSheetTransform:{...n,to:{...n.to,row:n.to.row+T,column:n.to.column+E},from:{...n.from,row:n.from.row+T,column:n.from.column+E}}}},isCut:u===t.COPY_TYPE.CUT})}};Oe=P([N(0,t.ISheetClipboardService),N(1,e.IRenderManagerService),N(2,s.IDrawingManagerService),N(3,c.IClipboardInterfaceService),N(4,n.ICommandService)],Oe);let ke=class extends n.Disposable{constructor(e,t,n,r,i){super(),this._drawingManagerService=e,this._renderManagerService=t,this._permissionService=n,this._univerInstanceService=r,this._userManagerService=i,this._initDrawingVisible(),this._initDrawingEditable(),this._initViewPermissionChange(),this._initEditPermissionChange()}_initDrawingVisible(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(n.UniverInstanceType.UNIVER_SHEET),t=this._userManagerService.currentUser$,r=(0,d.combineLatest)([e,t]);this.disposeWithMe(r.pipe((0,d.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,d.tap)(t=>{if(!t){this._drawingManagerService.setDrawingVisible(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new i.WorkbookViewPermission(n).id,new i.WorksheetViewPermission(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(e,t)})):(this._drawingManagerService.setDrawingVisible(!1),d.EMPTY))).subscribe())}_handleDrawingVisibilityFalse(t,n){this._drawingManagerService.setDrawingVisible(!1);let r=t.getUnitId(),i=n.getSheetId(),a=this._drawingManagerService.getDrawingData(r,i),o=Object.values(a),s=this._renderManagerService.getRenderById(r),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(t=>{t.classType===e.RENDER_CLASS_TYPE.IMAGE&&o.some(e=>t.oKey.includes(e.drawingId))&&c.removeObject(t)})}_initDrawingEditable(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(n.UniverInstanceType.UNIVER_SHEET),t=this._userManagerService.currentUser$,r=(0,d.combineLatest)([e,t]);this.disposeWithMe(r.pipe((0,d.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,d.tap)(t=>{if(!t){this._drawingManagerService.setDrawingEditable(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new i.WorkbookEditablePermission(n).id,new i.WorksheetEditPermission(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingEditable(!0):this._handleDrawingEditableFalse(e,t)})):(this._drawingManagerService.setDrawingEditable(!1),d.EMPTY))).subscribe())}_handleDrawingEditableFalse(t,n){this._drawingManagerService.setDrawingEditable(!1);let r=t.getUnitId(),i=n.getSheetId(),a=this._drawingManagerService.getDrawingData(r,i),o=Object.values(a),s=this._renderManagerService.getRenderById(r),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(t=>{t.classType===e.RENDER_CLASS_TYPE.IMAGE&&o.some(e=>t.oKey.includes(e.drawingId))&&c.detachTransformerFrom(t)})}_initViewPermissionChange(){let t=this._univerInstanceService.getCurrentTypeOfUnit$(n.UniverInstanceType.UNIVER_SHEET),r=this._userManagerService.currentUser$;this.disposeWithMe((0,d.combineLatest)([t,r]).pipe((0,d.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,d.switchMap)(t=>{if(!t)return d.EMPTY;let n=e.getUnitId(),r=t.getSheetId(),a=this._renderManagerService.getRenderById(n),o=a==null?void 0:a.scene;if(!o)return d.EMPTY;let s=o.getTransformerByCreate();return this._permissionService.composePermission$([new i.WorkbookViewPermission(n).id,new i.WorksheetViewPermission(n,r).id]).pipe((0,d.map)(e=>e.every(e=>e.value)),(0,d.distinctUntilChanged)()).pipe((0,d.map)(e=>({permission:e,scene:o,transformer:s,unitId:n,subUnitId:r})))})):d.EMPTY)).subscribe({next:({permission:t,scene:n,transformer:r,unitId:i,subUnitId:a})=>{this._drawingManagerService.setDrawingVisible(t);let o=n.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(i,a),c=Object.values(s);t?this._drawingManagerService.addNotification(c):(o.forEach(t=>{t.classType===e.RENDER_CLASS_TYPE.IMAGE&&c.some(e=>t.oKey.includes(e.drawingId))&&n.removeObject(t)}),r.clearSelectedObjects())},complete:()=>{this._drawingManagerService.setDrawingVisible(!0);let e=this._univerInstanceService.getCurrentUnitForType(n.UniverInstanceType.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet(),r=e==null?void 0:e.getUnitId(),i=t==null?void 0:t.getSheetId();if(!r||!i)return;let a=this._drawingManagerService.getDrawingData(r,i),o=Object.values(a);this._drawingManagerService.addNotification(o)}}))}_initEditPermissionChange(){let t=this._univerInstanceService.getCurrentTypeOfUnit$(n.UniverInstanceType.UNIVER_SHEET),r=this._userManagerService.currentUser$;this.disposeWithMe((0,d.combineLatest)([t,r]).pipe((0,d.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,d.switchMap)(t=>{if(!t)return d.EMPTY;let n=e.getUnitId(),r=t.getSheetId(),a=this._renderManagerService.getRenderById(n),o=a==null?void 0:a.scene;if(!o)return d.EMPTY;let s=o.getTransformerByCreate();return this._permissionService.composePermission$([new i.WorkbookEditablePermission(n).id,new i.WorksheetEditPermission(n,r).id]).pipe((0,d.map)(e=>e.every(e=>e.value)),(0,d.distinctUntilChanged)()).pipe((0,d.map)(e=>({permission:e,scene:o,transformer:s,unitId:n,subUnitId:r})))})):d.EMPTY)).subscribe({next:({permission:t,scene:n,transformer:r,unitId:i,subUnitId:a})=>{this._drawingManagerService.setDrawingEditable(t);let o=n.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(i,a),c=Object.values(s);t?(o.forEach(t=>{t.classType===e.RENDER_CLASS_TYPE.IMAGE&&c.some(e=>t.oKey.includes(e.drawingId))&&n.attachTransformerTo(t)}),this._drawingManagerService.addNotification(c)):(o.forEach(t=>{t.classType===e.RENDER_CLASS_TYPE.IMAGE&&c.some(e=>t.oKey.includes(e.drawingId))&&n.detachTransformerFrom(t)}),r.clearSelectedObjects())},complete:()=>{let t=this._univerInstanceService.getCurrentUnitForType(n.UniverInstanceType.UNIVER_SHEET);if(!t)return;let r=t.getUnitId(),i=t.getActiveSheet();if(!i)return;let a=i.getSheetId(),o=this._renderManagerService.getRenderById(r),s=o==null?void 0:o.scene;if(!s)return;let c=this._drawingManagerService.getDrawingData(r,a),l=Object.values(c);this._drawingManagerService.setDrawingEditable(!0),s.getAllObjectsByOrder().forEach(t=>{t.classType===e.RENDER_CLASS_TYPE.IMAGE&&l.some(e=>t.oKey.includes(e.drawingId))&&s.detachTransformerFrom(t)})}}))}};ke=P([N(0,s.IDrawingManagerService),N(1,e.IRenderManagerService),N(2,n.IPermissionService),N(3,n.IUniverInstanceService),N(4,(0,n.Inject)(n.UserManagerService))],ke);var Ae=function(e){return e.ALL=`ALL`,e.HORIZONTAL=`HORIZONTAL`,e.VERTICAL=`VERTICAL`,e}(Ae||{});const je=`univer-sheet-float-dom-`;function Me(t,r,i,a,o,s=!1){let{scaleX:c,scaleY:l}=r.getAncestorScale(),u=r.getViewport(e.SHEET_VIEWPORT_KEY.VIEW_MAIN),{startColumn:d,startRow:f,xSplit:p,ySplit:m}=a.getFreeze(),h={left:!0,top:!0};if(!u)return{...t,absolute:h};let{left:g,right:_,top:v,bottom:y}=t,{top:b,left:x,viewportScrollX:S,viewportScrollY:C}=u,{boundsOfViewArea:w,scrollDirectionResponse:T}=o||{},{rowHeaderWidth:E,columnHeaderHeight:D}=i,O={top:s?0:D,left:s?0:E};w&&(n.Tools.isDefine(O.top)&&(O.top=w.top),n.Tools.isDefine(O.left)&&(O.left=w.left)),T===Ae.HORIZONTAL&&(C=0),T===Ae.VERTICAL&&(S=0);let k=0,A=0,j=i.rowStartY(f-m)+D,M=i.colStartX(d-p)+E,N=i.rowStartY(f)+D,P=i.colStartX(d)+E;if(p===0)h.left=!1,k=(g-S)*c,A=(_-S)*c;else{let e=g-(M-E),t=_-(M-E);_<P?(k=e*c,A=t*c):g<=P&&_>=P?(k=e*c,A=Math.max(x,(_-S)*c)):g>P&&(h.left=!1,k=Math.max((g-S)*c,x),A=Math.max((_-S)*c,x))}let F=0,I=0;if(m===0)h.top=!1,F=(v-C)*l,I=(y-C)*l;else{let e=v-(j-D),t=y-(j-D);y<N?(F=e*l,I=t*l):v<=N&&y>=N?(F=e*l,I=Math.max(b,(y-C)*l)):v>N&&(h.top=!1,F=Math.max((v-C)*l,b),I=Math.max((y-C)*l,b))}return k=Math.max(k,O.left),F=Math.max(F,O.top),A=Math.max(A,O.left),I=Math.max(I,O.top),{left:k,right:A,top:F,bottom:I,absolute:h}}const Z=(e,t,n,r,i)=>{let{left:a,top:o,width:s,height:c,angle:l}=e,u=Me({left:a,right:a+s,top:o,bottom:o+c},t,n,r,i),{scaleX:d,scaleY:f}=t.getAncestorScale();return{startX:u.left,endX:u.right,startY:u.top,endY:u.bottom,rotate:l,width:s*d,height:c*f,absolute:u.absolute}};let Ne=class extends n.Disposable{constructor(e,t,n,r,i,a,o){super(),this._renderManagerService=e,this._univerInstanceService=t,this._commandService=n,this._drawingManagerService=r,this._canvasFloatDomService=i,this._sheetDrawingService=a,this._lifecycleService=o,M(this,`_domLayerInfoMap`,new Map),M(this,`_transformChange$`,new d.Subject),M(this,`transformChange$`,this._transformChange$.asObservable()),M(this,`_add$`,new d.Subject),M(this,`add$`,this._add$.asObservable()),M(this,`_remove$`,new d.Subject),M(this,`remove$`,this._remove$.asObservable()),this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe((0,d.filter)(e=>e===n.LifecycleStages.Rendered),(0,d.take)(1)).subscribe(()=>{this._scrollUpdateListener()})}getFloatDomInfo(e){return this._domLayerInfoMap.get(e)}getFloatDomsBySubUnitId(e,t){return Array.from(this._domLayerInfoMap.values()).filter(n=>n.subUnitId===t&&n.unitId===e)}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;return t==null||n==null?null:{scene:n,transformer:n.getTransformerByCreate(),renderUnit:t,canvas:t.engine.getCanvasElement()}}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(r=>{r.forEach(r=>{var a;let{unitId:o,subUnitId:c,drawingId:l}=r,u=(0,i.getSheetCommandTarget)(this._univerInstanceService,{unitId:o,subUnitId:c}),f=this._drawingManagerService.getDrawingByParam(r),p=this._univerInstanceService.getUnit(o,n.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!f||!u)return;let h=(a=this._renderManagerService.getRenderById(o))==null?void 0:a.with(t.SheetSkeletonManagerService).getSkeletonParam(c);if(!h)return;let{transform:g,drawingType:_,data:v}=f;if(_!==n.DrawingTypeEnum.DRAWING_DOM&&_!==n.DrawingTypeEnum.DRAWING_CHART)return;let y=this._getSceneAndTransformerByDrawingSearch(o);if(y==null)return;let{scene:b,canvas:x}=y;if(g==null)return!0;if(m!==c)return;let{left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A}=g,j=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:o,subUnitId:c,drawingId:l}),M=b.getObject(j);if(M!=null){M.transformByState({left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A});return}let N={left:S,top:C,width:w,height:T,zIndex:this._drawingManagerService.getDrawingOrder(o,c).length-1},P=_===n.DrawingTypeEnum.DRAWING_CHART;N.rotateEnabled=!1,P&&(N.fill=v?v.backgroundColor:`white`,v&&v.border&&(N.stroke=v.border),N.paintFirst=`stroke`,N.strokeWidth=1,N.borderEnabled=!1,N.radius=8);let F=new e.Rect(j,N);P&&F.setObjectType(e.ObjectType.CHART),b.addObject(F,e.DRAWING_OBJECT_LAYER_INDEX),f.allowTransform!==!1&&b.attachTransformerTo(F);let I=new n.DisposableCollection,L=new d.BehaviorSubject(Z(F,y.renderUnit.scene,h.skeleton,u.worksheet)),R=`${je}${(0,n.generateRandomId)(6)}`,z={dispose:I,rect:F,position$:L,unitId:o,subUnitId:c,id:l,domId:R};this._canvasFloatDomService.addFloatDom({position$:L,id:l,domId:R,componentKey:f.componentKey,onPointerDown:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{x.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{x.dispatchEvent(new WheelEvent(e.type,e))},data:v,unitId:o});let B=F.onTransformChange$.subscribeEvent(()=>{let e=Z(F,y.renderUnit.scene,h.skeleton,u.worksheet);L.next(e)});I.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),B&&I.add(B),this._domLayerInfoMap.set(l,z)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:n,drawingId:r}),a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{transformer:o,scene:c}=a,l=c.getObject(i);if(l!=null&&l.oKey){var u;o.clearControlByIds([l==null?void 0:l.oKey]),(u=c.getTransformer())==null||u.clearSelectedObjects()}})}))}_scrollUpdateListener(){let r=(e,n)=>{var r;let a=this._getSceneAndTransformerByDrawingSearch(e),o=Array.from(this._domLayerInfoMap.keys()).map(e=>({id:e,...this._domLayerInfoMap.get(e)})).filter(t=>t.subUnitId===n&&t.unitId===e).map(e=>e.id),s=(0,i.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:n}),c=(r=this._renderManagerService.getRenderById(e))==null?void 0:r.with(t.SheetSkeletonManagerService).getSkeletonParam(n);!a||!s||!c||o.forEach(e=>{let t=this._domLayerInfoMap.get(e);if(t){let e=Z(t.rect,a.renderUnit.scene,c.skeleton,s.worksheet,t);t.position$.next(e)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(n.UniverInstanceType.UNIVER_SHEET).pipe((0,d.switchMap)(e=>e?e.activeSheet$:(0,d.of)(null)),(0,d.map)(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t,subUnitId:e.getSheetId()}:null}),(0,d.switchMap)(t=>t?(0,n.fromEventSubject)(t.render.scene.getViewport(e.SHEET_VIEWPORT_KEY.VIEW_MAIN).onScrollAfter$).pipe((0,d.map)(()=>({unitId:t.unitId,subUnitId:t.subUnitId}))):(0,d.of)(null))).subscribe(e=>{if(!e)return;let{unitId:t,subUnitId:n}=e;r(t,n)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===t.SetZoomRatioOperation.id){let{unitId:t}=e.params;Array.from(this._domLayerInfoMap.values()).filter(e=>e.unitId===t).map(e=>e.subUnitId).forEach(e=>{r(t,e)})}else if(e.id===i.SetFrozenMutation.id){let{unitId:t,subUnitId:n}=e.params;r(t,n)}else if(e.id===i.SetSelectionsOperation.id){let{unitId:t,subUnitId:n}=e.params;r(t,n)}}))}updateFloatDomProps(t,n,r,i){let a=this._domLayerInfoMap.get(r),o=this._getSceneAndTransformerByDrawingSearch(t);if(a&&o){let{scene:a}=o,c=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:n,drawingId:r}),l=a.getObject(c);l&&l instanceof e.Rect&&l.setProps(i)}}_getPosition(e,n){var r;let{startX:i,endX:a,startY:o,endY:s}=e,c=(r=this._renderManagerService.getRenderById(n))==null?void 0:r.with(t.ISheetSelectionRenderService);if(c==null)return;let l=c.getCellWithCoordByOffset(i,o);if(l==null)return;let u={column:l.actualColumn,columnOffset:i-l.startX,row:l.actualRow,rowOffset:o-l.startY},d=c.getCellWithCoordByOffset(a,s);if(d!=null)return{from:u,to:{column:d.actualColumn,columnOffset:a-d.startX,row:d.actualRow,rowOffset:s-d.startY}}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);if(!t||t.drawingType!==n.DrawingTypeEnum.DRAWING_DOM&&t.drawingType!==n.DrawingTypeEnum.DRAWING_CHART)return;let r={...t.transform};this._transformChange$.next({id:e.drawingId,value:r}),this._canvasFloatDomService.updateFloatDom(e.drawingId,{...t});let i=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(i&&t.drawingType!==n.DrawingTypeEnum.DRAWING_CHART){let{scene:n}=i,r=this._domLayerInfoMap.get(e.drawingId);r!=null&&r.rect&&(t.allowTransform===!1?n.detachTransformerFrom(r.rect):n.attachTransformerTo(r.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}addFloatDomToPosition(e,t){let r=(0,i.getSheetCommandTarget)(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!r)throw Error(`cannot find current target!`);let{unitId:a,subUnitId:o}=r,{initPosition:s,componentKey:c,data:l,allowTransform:u=!0}=e,d=t==null?(0,n.generateRandomId)():t,f=this._getPosition(s,a);if(f==null)return;let p={unitId:a,subUnitId:o,drawingId:d,drawingType:e.type||n.DrawingTypeEnum.DRAWING_DOM,componentKey:c,sheetTransform:f,transform:{left:s.startX,top:s.startY,width:s.endX-s.startX,height:s.endY-s.startY},axisAlignSheetTransform:f,data:l,allowTransform:u};return this._commandService.executeCommand(T.id,{unitId:a,drawings:[p]}),this._add$.next({unitId:a,subUnitId:o,id:d}),{id:d,dispose:()=>{this._removeDom(d,!0)}}}_removeDom(e,t=!1){let n=this._domLayerInfoMap.get(e);if(!n)return;let{unitId:i,subUnitId:a}=n;this._domLayerInfoMap.delete(e),n.dispose.dispose();let o=this._getSceneAndTransformerByDrawingSearch(i);if(o&&o.scene.removeObject(n.rect),t){let t=this._drawingManagerService.getDrawingByParam({unitId:i,subUnitId:a,drawingId:e});if(!t)return;let{redo:n,objects:o}=this._sheetDrawingService.getBatchRemoveOp([t]);this._commandService.syncExecuteCommand(r.SetDrawingApplyMutation.id,{unitId:i,subUnitId:a,op:n,objects:o,type:r.DrawingApplyType.REMOVE})}}addFloatDomToRange(r,a,o,c){var l;let u=(0,i.getSheetCommandTarget)(this._univerInstanceService,{unitId:a.unitId,subUnitId:a.subUnitId});if(!u)throw Error(`cannot find current target!`);let{unitId:f,subUnitId:p}=u,m=this._getSceneAndTransformerByDrawingSearch(f);if(!m)return;let h=this._renderManagerService.getRenderById(f);if(!h)return;let g=(l=this._renderManagerService.getRenderById(f))==null?void 0:l.with(t.SheetSkeletonManagerService).getWorksheetSkeleton(p);if(!g)return;let{componentKey:_,data:v,allowTransform:y=!0}=a,b=c==null?(0,n.generateRandomId)():c,{position:x,position$:S}=this._createRangePositionObserver(r,h,g.skeleton),C=this._getPosition(x,f);if(C==null)return;let{scaleX:w}=m.scene.getAncestorScale(),T=Fe(x,o,w),E={unitId:f,subUnitId:p,drawingId:b,drawingType:a.type||n.DrawingTypeEnum.DRAWING_DOM,componentKey:_,sheetTransform:C,axisAlignSheetTransform:C,transform:{left:T.startX,top:T.startY,width:T.width,height:T.height},data:v,allowTransform:y};{var D,O;let{unitId:r,subUnitId:c,drawingId:l}=E,u=(0,i.getSheetCommandTarget)(this._univerInstanceService,{unitId:r,subUnitId:c}),f=E,p=this._univerInstanceService.getUnit(r,n.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!f||!u)return;let h=(D=this._renderManagerService.getRenderById(r))==null?void 0:D.with(t.SheetSkeletonManagerService);if(!h)return;let g=h.getWorksheetSkeleton(c);if(!g)return;let{transform:_,drawingType:v,data:y}=f;if(v!==n.DrawingTypeEnum.DRAWING_DOM&&v!==n.DrawingTypeEnum.DRAWING_CHART)return;let C=this._getSceneAndTransformerByDrawingSearch(r);if(C==null)return;let{scene:w,canvas:T}=C;if(_==null||m!==c)return;let{left:k,top:A,width:j,height:M,angle:N,flipX:P,flipY:F,skewX:I,skewY:L}=_,R=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:r,subUnitId:c,drawingId:l}),z=w.getObject(R);if(z!=null){z.transformByState({left:k,top:A,width:j,height:M,angle:N,flipX:P,flipY:F,skewX:I,skewY:L});return}let B={left:k,top:A,width:j,height:M,zIndex:this._drawingManagerService.getDrawingOrder(r,c).length-1},V=v===n.DrawingTypeEnum.DRAWING_CHART;V&&(B.fill=y?y.backgroundColor:`white`,B.rotateEnabled=!1,y&&y.border&&(B.stroke=y.border),B.paintFirst=`stroke`,B.strokeWidth=1,B.borderEnabled=!1,B.radius=8);let H=new e.Rect(R,B);V&&H.setObjectType(e.ObjectType.CHART),w.addObject(H,e.DRAWING_OBJECT_LAYER_INDEX),f.allowTransform!==!1&&w.attachTransformerTo(H);let U=new n.DisposableCollection,W=w.getMainViewport(),{rowHeaderWidth:ee,columnHeaderHeight:G}=g.skeleton,K={dispose:U,rect:H,boundsOfViewArea:{top:G,left:ee,bottom:W.bottom,right:W.right},domAnchor:o,unitId:r,subUnitId:c},q=new d.BehaviorSubject(Z(H,C.renderUnit.scene,g.skeleton,u.worksheet,K));K.position$=q;let J={position$:q,id:l,componentKey:f.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{T.dispatchEvent(new WheelEvent(e.type,e))},data:y,unitId:r};a.eventPassThrough&&(J={...J,onPointerDown:e=>{T.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{T.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{T.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(J),this.disposeWithMe(S.subscribe(t=>{var n,i,a,d;let f=Fe({rotate:0,startX:t.startX,startY:t.startY,endX:t.endX,endY:t.endY,width:(n=o.width)==null?t.width:n,height:(i=o.height)==null?t.height:i,absolute:{left:x.absolute.left,top:x.absolute.top}},o),p=Z(new e.Rect((0,s.getDrawingShapeKeyByDrawingSearch)({unitId:r,subUnitId:c,drawingId:l}),{left:f.startX,top:f.startY,width:(a=o.width)==null?t.width:a,height:(d=o.height)==null?t.height:d,zIndex:this._drawingManagerService.getDrawingOrder(r,c).length-1}),C.renderUnit.scene,g.skeleton,u.worksheet,K);q.next(p)}));let te=(O=this._renderManagerService.getRenderById(r))==null?void 0:O.with(t.SheetSkeletonManagerService),Y=te==null?void 0:te.currentSkeleton$.subscribe(e=>{e&&g.sheetId!==e.sheetId&&this._removeDom(b,!0)});Y&&U.add(Y);let X=H.onTransformChange$.subscribeEvent(()=>{let e=Z(H,C.renderUnit.scene,g.skeleton,u.worksheet,K);q.next(e)});U.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),X&&U.add(X),this._domLayerInfoMap.set(l,K)}return{id:b,dispose:()=>{this._removeDom(b,!0)}}}addFloatDomToColumnHeader(r,a,o,c){var l;let u=(0,i.getSheetCommandTarget)(this._univerInstanceService,{unitId:a.unitId,subUnitId:a.subUnitId});if(!u)throw Error(`cannot find current target!`);let{unitId:f,subUnitId:p}=u;if(!this._getSceneAndTransformerByDrawingSearch(f))return;let m=this._renderManagerService.getRenderById(f);if(!m)return;let h=(l=this._renderManagerService.getRenderById(f))==null?void 0:l.with(t.SheetSkeletonManagerService).getWorksheetSkeleton(p);if(!h)return;let{componentKey:g,data:_,allowTransform:v=!0}=a,y=c==null?(0,n.generateRandomId)():c,{position:b,position$:x}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:r,endColumn:r},m,h.skeleton),S=b;S.startY=0;let C=this._getPosition(b,f);if(C==null)return;let w={unitId:f,subUnitId:p,drawingId:y,drawingType:a.type||n.DrawingTypeEnum.DRAWING_DOM,componentKey:g,sheetTransform:C,axisAlignSheetTransform:C,transform:{left:S.startX,top:S.startY,width:S.width,height:S.height},data:_,allowTransform:v};{var T,E;let{unitId:r,subUnitId:c,drawingId:l}=w,u=(0,i.getSheetCommandTarget)(this._univerInstanceService,{unitId:r,subUnitId:c}),f=w,p=this._univerInstanceService.getUnit(r,n.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!f||!u)return;let g=(T=this._renderManagerService.getRenderById(r))==null?void 0:T.with(t.SheetSkeletonManagerService);if(!g)return;let _=g.getWorksheetSkeleton(c);if(!_)return;let{transform:v,data:C}=f,D=this._getSceneAndTransformerByDrawingSearch(r);if(D==null)return;let{scene:O,canvas:k}=D;if(v==null||m!==c)return;let{left:A,top:j,width:M,height:N,angle:P,flipX:F,flipY:I,skewX:L,skewY:R}=v,z=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:r,subUnitId:c,drawingId:l}),B=O.getObject(z);if(B!=null){B.transformByState({left:A,top:j,width:M,height:N,angle:P,flipX:F,flipY:I,skewX:L,skewY:R});return}let V=Fe({rotate:0,startX:S.startX,startY:0,endX:b.endX,endY:b.endY,width:o.width,height:o.height,absolute:{left:b.absolute.left,top:b.absolute.top}},o),H=new e.Rect(z,{left:V.startX,top:V.startY,width:V.width,height:V.height,zIndex:this._drawingManagerService.getDrawingOrder(r,c).length-1});O.addObject(H,e.DRAWING_OBJECT_LAYER_INDEX),f.allowTransform!==!1&&O.attachTransformerTo(H);let U=new n.DisposableCollection,W=O.getMainViewport(),ee={dispose:U,rect:H,unitId:r,subUnitId:c,boundsOfViewArea:{top:0,left:W.left,bottom:W.bottom,right:W.right},domAnchor:o,scrollDirectionResponse:Ae.HORIZONTAL},G=new d.BehaviorSubject(Z(H,D.renderUnit.scene,_.skeleton,u.worksheet,ee));ee.position$=G;let K={position$:G,id:l,componentKey:f.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{k.dispatchEvent(new WheelEvent(e.type,e))},data:C,unitId:r};a.eventPassThrough&&(K={...K,onPointerDown:e=>{k.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{k.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{k.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(K);let q=H.onTransformChange$.subscribeEvent(()=>{let e=Z(H,D.renderUnit.scene,_.skeleton,u.worksheet,ee);G.next(e)});this.disposeWithMe(x.subscribe(t=>{let n=Fe({rotate:0,startX:t.startX,startY:0,endX:t.endX,endY:t.endY,width:o.width,height:o.height,absolute:{left:b.absolute.left,top:b.absolute.top}},o),i=Z(new e.Rect((0,s.getDrawingShapeKeyByDrawingSearch)({unitId:r,subUnitId:c,drawingId:l}),{left:n.startX,top:0,width:o.width,height:o.height,zIndex:this._drawingManagerService.getDrawingOrder(r,c).length-1}),D.renderUnit.scene,_.skeleton,u.worksheet,ee);G.next(i)}));let J=(E=this._renderManagerService.getRenderById(r))==null?void 0:E.with(t.SheetSkeletonManagerService);J==null||J.currentSkeleton$.subscribe(e=>{e&&h.sheetId!==e.sheetId&&this._removeDom(y,!0)}),U.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),q&&U.add(q),this._domLayerInfoMap.set(l,ee)}return{id:y,dispose:()=>{this._removeDom(y,!0)}}}_createRangePositionObserver(e,r,a){let{startRow:o,startColumn:s}=e,c=Pe(o,s,a),l=new d.BehaviorSubject(c),u=Pe(e.endRow,e.endColumn,a),f=new d.BehaviorSubject(u),p=()=>{let t=Pe(o,s,a),n=Pe(e.endRow,e.endColumn,a);l.next(t),f.next(n)},m=new n.DisposableCollection;return m.add(r.engine.clientRect$.subscribe(()=>p())),m.add(this._commandService.onCommandExecuted(e=>{if(e.id===i.SetWorksheetRowAutoHeightMutation.id&&e.params.rowsAutoHeightInfo.findIndex(e=>e.row===o)>-1){p();return}(i.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(e.id)>-1||e.id===t.SetScrollOperation.id||e.id===t.SetZoomRatioOperation.id)&&p()})),{position$:l.pipe((0,d.map)(t=>{let n=Pe(e.endRow,e.endColumn,a);return{rotate:0,width:n.right-t.left,height:n.bottom-t.top,absolute:{left:!0,top:!0},startX:t.left,startY:t.top,endX:n.right,endY:n.bottom}})),position:{rotate:0,width:u.right-c.left,height:u.bottom-c.top,absolute:{left:!0,top:!0},startX:c.left,startY:c.top,endX:u.right,endY:u.bottom},updateRowCol:(e,t)=>{o=e,s=t,p()},topLeftPos$:l,rightBottomPos$:f,disposable:m}}};Ne=P([N(0,(0,n.Inject)(e.IRenderManagerService)),N(1,n.IUniverInstanceService),N(2,(0,n.Inject)(n.ICommandService)),N(3,s.IDrawingManagerService),N(4,(0,n.Inject)(c.CanvasFloatDomService)),N(5,r.ISheetDrawingService),N(6,(0,n.Inject)(n.LifecycleService))],Ne);function Pe(e,t,n){let r=n.getCellWithCoordByIndex(e,t),i=r.isMergedMainCell?r.mergeInfo:r;return{left:i.startX,right:i.endX,top:i.startY,bottom:i.endY}}function Fe(e,t,n){var r,i,a;n=(r=n)==null?1:r;let o=e.endX-e.startX,s=e.endY-e.startY,c=(i=t==null?void 0:t.width)==null?o:i,l=(a=t==null?void 0:t.height)==null?s:a,u=0,d=0;if(t){if(t.horizonOffsetAlign===`right`){let r=Ie(t.marginX,o*n);u=e.endX-r-c}else u=e.startX+Ie(t.marginX,o);if(t.verticalOffsetAlign===`bottom`){let r=Ie(t.marginY,s*n);d=e.endY-r-l}else d=e.startY+Ie(t.marginY,s)}return{rotate:0,startX:u,startY:d,endX:e.endX,endY:e.endY,width:c,height:l,absolute:{left:e.absolute.left,top:e.absolute.top}}}function Ie(e,t){return e===void 0?0:typeof e==`number`?e:t*Number.parseFloat(e)/100}const Le=e=>{let{floatDomInfos:t,scene:n,skeleton:r,worksheet:i}=e;return(0,p.jsx)(`div`,{style:{position:`absolute`,top:0,left:0},children:(0,f.useMemo)(()=>t.map(e=>{let{width:t,height:a,angle:o,left:s,top:c}=e.transform,l=Me({left:s==null?0:s,right:(s==null?0:s)+(t==null?0:t),top:c==null?0:c,bottom:(c==null?0:c)+(a==null?0:a)},n,r,i,void 0,!0),{scaleX:u,scaleY:f}=n.getAncestorScale(),p={startX:l.left,endX:l.right,startY:l.top,endY:l.bottom,rotate:o,width:t*u,height:a*f,absolute:l.absolute},m={position$:new d.BehaviorSubject(p),position:p,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,m]}),[t,n,r,i]).map(([e,t])=>(0,p.jsx)(c.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})};let Re=class extends n.Disposable{constructor(e,t,n,r,i,a,o){super(),this._sheetPrintInterceptorService=e,this._drawingRenderService=t,this._drawingManagerService=n,this._renderManagerService=r,this._canvasFloatDomManagerService=i,this._componetManager=a,this._injector=o,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(e,t,r)=>{let{unitId:i,scene:a,subUnitId:o}=t,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[o];return c&&c.order.forEach(e=>{let t=c.data[e];t.drawingType!==n.DrawingTypeEnum.DRAWING_CHART&&t.drawingType!==n.DrawingTypeEnum.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,a)}),r()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(e,r,i)=>{let{unitId:a,subUnitId:o}=r,s=this._renderManagerService.getRenderById(a);if(!s)return i(e);let c=s.with(t.SheetSkeletonManagerService).getSkeletonParam(o);if(!c)return i(e);let l=this._drawingManagerService.getDrawingDataForUnit(a),u=l==null?void 0:l[r.subUnitId];if(!u)return i(e);let{scaleX:d,scaleY:f}=s.scene,p=e?{...e}:{startColumn:0,endColumn:0,endRow:0,startRow:0},m=u.order.map(e=>u.data[e]);return m.length?(m.forEach(e=>{if(!e.groupId&&e.transform&&n.Tools.isDefine(e.transform.left)&&n.Tools.isDefine(e.transform.top)&&n.Tools.isDefine(e.transform.width)&&n.Tools.isDefine(e.transform.height)){let t=c.skeleton.getCellIndexByOffset(e.transform.left,e.transform.top,d,f,{x:0,y:0}),n=c.skeleton.getCellIndexByOffset(e.transform.left+e.transform.width,e.transform.top+e.transform.height,d,f,{x:0,y:0});t.column<p.startColumn&&(p.startColumn=t.column),t.row<p.startRow&&(p.startRow=t.row),p.endRow<n.row&&(p.endRow=n.row),p.endColumn<n.column&&(p.endColumn=n.column)}}),i(p)):i(e)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,r)=>{let{unitId:i,subUnitId:o}=t,s=this._drawingManagerService.getDrawingDataForUnit(i),l=s==null?void 0:s[o];if(l){let i=l.order.map(e=>{let t=l.data[e];if(t.drawingType===n.DrawingTypeEnum.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(n.PRINT_CHART_COMPONENT_KEY)};if(t.drawingType===n.DrawingTypeEnum.DRAWING_DOM){let e=this._sheetPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return(0,a.render)((0,p.jsx)((0,c.connectInjector)(Le,this._injector),{floatDomInfos:i,scene:t.scene,skeleton:t.skeleton,worksheet:t.worksheet}),t.root),e==null||e.add(()=>{(0,a.unmount)(t.root)}),r(e)}}}))}};Re=P([N(0,(0,n.Inject)(t.SheetPrintInterceptorService)),N(1,(0,n.Inject)(u.DrawingRenderService)),N(2,s.IDrawingManagerService),N(3,e.IRenderManagerService),N(4,(0,n.Inject)(Ne)),N(5,(0,n.Inject)(c.ComponentManager)),N(6,(0,n.Inject)(n.Injector))],Re);var Q=function(e){return e[e.deleteLeft=0]=`deleteLeft`,e[e.deleteUp=1]=`deleteUp`,e[e.insertDown=2]=`insertDown`,e[e.insertRight=3]=`insertRight`,e}(Q||{});const ze=[i.InsertRowCommand.id,i.InsertColCommand.id,i.RemoveRowCommand.id,i.RemoveColCommand.id,i.DeleteRangeMoveLeftCommand.id,i.DeleteRangeMoveUpCommand.id,i.InsertRangeMoveDownCommand.id,i.InsertRangeMoveRightCommand.id,i.DeltaRowHeightCommand.id,i.SetRowHeightCommand.id,i.DeltaColumnWidthCommand.id,i.SetColWidthCommand.id,i.SetRowHiddenCommand.id,i.SetSpecificRowsVisibleCommand.id,i.SetSpecificColsVisibleCommand.id,i.SetColHiddenCommand.id,i.MoveColsCommand.id,i.MoveRowsCommand.id,i.MoveRangeCommand.id],Be=[i.SetRowVisibleMutation.id,i.SetRowHiddenMutation.id,i.SetColVisibleMutation.id,i.SetColHiddenMutation.id,i.SetWorksheetRowHeightMutation.id,i.SetWorksheetRowAutoHeightMutation.id,i.SetWorksheetRowIsAutoHeightMutation.id,i.SetWorksheetColWidthMutation.id];let Ve=class extends n.Disposable{constructor(e,t,n,r,i,a,o,s,c){super(),this._context=e,this._renderManagerService=t,this._commandService=n,this._selectionRenderService=r,this._skeletonManagerService=i,this._sheetInterceptorService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._univerInstanceService=c,this._sheetInterceptorListener(),this._commandListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{if(!ze.includes(e.id)||e.params==null)return{redos:[],undos:[]};let t=e.id;if(t===i.InsertRowCommand.id)return this._moveRowInterceptor(e.params,`insert`);if([i.MoveColsCommand.id,i.MoveRowsCommand.id,i.MoveRangeCommand.id].includes(t))return this._moveRangeInterceptor(e.params);if(t===i.InsertColCommand.id)return this._moveColInterceptor(e.params,`insert`);if(t===i.RemoveRowCommand.id)return this._moveRowInterceptor(e.params,`remove`);if(t===i.RemoveColCommand.id)return this._moveColInterceptor(e.params,`remove`);if(t===i.DeleteRangeMoveLeftCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.deleteLeft)}else if(t===i.DeleteRangeMoveUpCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.deleteUp)}else if(t===i.InsertRangeMoveDownCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.insertDown)}else if(t===i.InsertRangeMoveRightCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.insertRight)}else if(t===i.SetRowHiddenCommand.id||t===i.SetSpecificRowsVisibleCommand.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForRowVisible(t,n,r)}else if(t===i.SetSpecificColsVisibleCommand.id||t===i.SetColHiddenCommand.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForColVisible(t,n,r)}else if(t===i.DeltaRowHeightCommand.id||t===i.SetRowHeightCommand.id||t===i.DeltaColumnWidthCommand.id||t===i.SetColWidthCommand.id){let{unitId:n,subUnitId:r,ranges:a}=e.params,o=t===i.DeltaRowHeightCommand.id||t===i.SetRowHeightCommand.id;return this._getDrawingUndoForRowAndColSize(n,r,a,o)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(e,t){let n=(0,i.getSheetCommandTarget)(this._univerInstanceService);if(n==null)return{redos:[],undos:[]};let a=n.unitId,o=n.subUnitId,s=[],c=[],l=this._sheetDrawingService.getDrawingData(a,o),u=[],d=[];if(Object.keys(l).forEach(n=>{let r=l[n],{updateDrawings:i,deleteDrawings:a}=this._getUpdateOrDeleteDrawings(e,t,r);u.push(...i),d.push(...a)}),u.length===0&&d.length===0)return{redos:[],undos:[]};if(u.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(u);s.push({id:r.SetDrawingApplyMutation.id,params:{unitId:a,subUnitId:o,op:t,objects:n,type:r.DrawingApplyType.UPDATE}}),c.push({id:r.SetDrawingApplyMutation.id,params:{unitId:a,subUnitId:o,op:e,objects:n,type:r.DrawingApplyType.UPDATE}})}if(d.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(d),t=e.undo,n=e.redo,i=e.objects;s.push({id:r.SetDrawingApplyMutation.id,params:{unitId:a,subUnitId:o,op:n,objects:i,type:r.DrawingApplyType.REMOVE}}),c.push({id:r.SetDrawingApplyMutation.id,params:{unitId:a,subUnitId:o,op:t,objects:i,type:r.DrawingApplyType.INSERT}})}return s.push({id:_.id,params:[a]}),c.push({id:_.id,params:[a]}),{redos:s,undos:c}}_getUpdateOrDeleteDrawings(e,t,n){let i=[],a=[],{sheetTransform:o,anchorType:s=r.SheetDrawingAnchorType.Position,transform:c,unitId:l,subUnitId:u,drawingId:d}=n,{from:f,to:p}=o,{row:h,column:g}=f,{row:_,column:v}=p;if(o==null||c==null)return{updateDrawings:i,deleteDrawings:a};let{startRow:y,endRow:b,startColumn:x,endColumn:S}=e,C=null,w=null,T;if(t===Q.deleteLeft&&h>=y&&_<=b)if(g>=x&&v<=S)a.push({unitId:l,subUnitId:u,drawingId:d});else{var E;let e=this._shrinkCol(o,c,x,S,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(E=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:E}else if(t===Q.deleteUp&&g>=x&&v<=S)if(h>=y&&_<=b)a.push({unitId:l,subUnitId:u,drawingId:d});else{var D;let e=this._shrinkRow(o,c,y,b,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(D=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:D}else if(t===Q.insertDown){var O;let e=this._expandRow(o,c,y,b,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(O=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:O}else if(t===Q.insertRight){var k;let e=this._expandCol(o,c,x,S,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(k=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:k}if(C!=null&&w!=null){let e=m(C,this._selectionRenderService,this._skeletonManagerService);i.push({...n,sheetTransform:C,transform:e,axisAlignSheetTransform:T})}return{updateDrawings:i,deleteDrawings:a}}_remainDrawingSize(e,t,n){let r=h({...e},this._selectionRenderService);if(r!=null){let i=g({...e},this._selectionRenderService);t.push({...n,sheetTransform:r,axisAlignSheetTransform:i})}}_getDrawingUndoForColVisible(e,t,n){let i=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(i).forEach(e=>{let t=i[e],{sheetTransform:s,transform:c,anchorType:l=r.SheetDrawingAnchorType.Position}=t;if(l===r.SheetDrawingAnchorType.None)this._remainDrawingSize(c,a,t);else{let{from:e,to:i}=s,{row:u,column:d}=e,{row:f,column:p}=i;for(let s=0;s<n.length;s++){let{startRow:u,endRow:f,startColumn:m,endColumn:_}=n[s];if(p<m)continue;if(l===r.SheetDrawingAnchorType.Position){let n=null,r=null;if(d>=m&&d<=_){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:d,endColumn:_,startRow:e.row,endRow:i.row});if(t==null)return;r={...c,left:t.startX}}if(r!=null){n=h(r,this._selectionRenderService);let e=g(r,this._selectionRenderService);if(n!=null&&r!=null){a.push({...t,sheetTransform:n,transform:r,axisAlignSheetTransform:e});break}}this._remainDrawingSize(c,a,t);continue}if(d>=m&&p<=_)continue;let v=null,y=null;if(d>=m&&d<=_){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:d,endColumn:_,startRow:e.row,endRow:i.row});if(t==null)return;y={...c,left:(t==null?void 0:t.startX)||0,width:((c==null?void 0:c.width)||0)-t.endX+t.startX}}else if(p>=m&&p<=_){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:m,endColumn:p,startRow:e.row,endRow:i.row});if(t==null)return;y={...c,left:t.startX-((c==null?void 0:c.width)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:m,endColumn:_,startRow:e.row,endRow:i.row});if(n==null)return;if(y={...c,width:((c==null?void 0:c.width)||0)-n.endX+n.startX},v=h(y,this._selectionRenderService),v!=null&&y!=null){let e=g(y,this._selectionRenderService);o.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}}if(y!=null&&(v=h(y,this._selectionRenderService)),y!=null&&v!=null){let e=g(y,this._selectionRenderService);a.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}else this._remainDrawingSize(c,a,t)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_createUndoAndRedoMutation(e,t,n){let{undo:i,redo:a,objects:o}=this._sheetDrawingService.getBatchUpdateOp(n);return{redos:[{id:r.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:a,objects:o,type:r.DrawingApplyType.UPDATE}},{id:_.id,params:[e]}],undos:[{id:r.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:i,objects:o,type:r.DrawingApplyType.UPDATE}},{id:_.id,params:[e]}]}}_getDrawingUndoForRowVisible(e,t,n){let i=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(i).forEach(e=>{let t=i[e],{sheetTransform:s,transform:c,anchorType:l=r.SheetDrawingAnchorType.Position}=t;if(l===r.SheetDrawingAnchorType.None)this._remainDrawingSize(c,a,t);else{let{from:e,to:i}=s,{row:u,column:d}=e,{row:f,column:p}=i;for(let s=0;s<n.length;s++){let{startRow:d,endRow:p,startColumn:m,endColumn:_}=n[s];if(f<d)continue;if(l===r.SheetDrawingAnchorType.Position){let n=null,r=null;if(u>=d&&u<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:i.column,startRow:u,endRow:p});if(t==null)return;r={...c,top:t.startY}}if(r!=null){n=h(r,this._selectionRenderService);let e=g(r,this._selectionRenderService);if(n!=null&&r!=null){a.push({...t,sheetTransform:n,transform:r,axisAlignSheetTransform:e});break}}this._remainDrawingSize(c,a,t);continue}if(u>=d&&f<=p)continue;let v=null,y=null;if(u>=d&&u<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:i.column,startRow:u,endRow:p});if(t==null)return;y={...c,top:(t==null?void 0:t.startY)||0,height:((c==null?void 0:c.height)||0)-t.endY+t.startY}}else if(f>=d&&f<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:i.column,startRow:d,endRow:f});if(t==null)return;y={...c,top:t.startY-((c==null?void 0:c.height)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:i.column,startRow:d,endRow:p});if(n==null)return;if(y={...c,height:((c==null?void 0:c.height)||0)-n.endY+n.startY},v=h(y,this._selectionRenderService),v!=null&&y!=null){let e=g(y,this._selectionRenderService);o.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}}if(y!=null&&(v=h(y,this._selectionRenderService)),y!=null&&v!=null){let e=g(y,this._selectionRenderService);a.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}else this._remainDrawingSize(c,a,t)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_getDrawingUndoForRowAndColSize(e,t,n,i){let a=this._drawingManagerService.getDrawingData(e,t),o=[];return Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:i,transform:s,anchorType:c=r.SheetDrawingAnchorType.Position}=t;if(c===r.SheetDrawingAnchorType.None)this._remainDrawingSize(s,o,t);else{let{from:e,to:a}=i,{row:l,column:u}=e,{row:d,column:f}=a;for(let e=0;e<n.length;e++){let{startRow:a,endRow:p,startColumn:h,endColumn:g}=n[e];if(d<a||f<h)continue;if(c===r.SheetDrawingAnchorType.Position&&(l<=a&&d>=p||u<=h&&f>=g)){this._remainDrawingSize(s,o,t);continue}let _=m({...i},this._selectionRenderService,this._skeletonManagerService);if(_!=null){o.push({...t,transform:_});break}}}}),o.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,o)}_getUnitIdAndSubUnitId(e,t){let n,r;if(t===`insert`)n=e.unitId,r=e.subUnitId;else{let e=(0,i.getSheetCommandTarget)(this._univerInstanceService);if(e==null)return;n=e.unitId,r=e.subUnitId}return{unitId:n,subUnitId:r}}_moveRangeInterceptor(e){var n;let{toRange:a,fromRange:o}=e,s=(0,i.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{redos:[],undos:[]};let{unitId:c,subUnitId:l}=s,u=(n=this._renderManagerService.getRenderById(c))==null||(n=n.with(t.SheetSkeletonManagerService))==null?void 0:n.getCurrentSkeleton();if(!u)return{redos:[],undos:[]};let d=(0,t.attachRangeWithCoord)(u,o);if(!d)return{redos:[],undos:[]};let{startX:f,endX:p,startY:h,endY:g}=d,_=this._sheetDrawingService.getDrawingData(c,l),v=[];Object.keys(_).forEach(e=>{let t=_[e];if(t.anchorType!==r.SheetDrawingAnchorType.Both)return;let{transform:n}=t;if(!n)return;let{left:i=0,top:a=0,width:o=0,height:s=0}=n,{drawingStartX:c,drawingEndX:l,drawingStartY:u,drawingEndY:d}={drawingStartX:i,drawingEndX:i+o,drawingStartY:a,drawingEndY:a+s};f<=c&&l<=p&&h<=u&&d<=g&&v.push(t)});let y=[],b=[],x=a.startRow-o.startRow,S=a.startColumn-o.startColumn,C=v.map(e=>{let t=e.sheetTransform,n={to:{...t.to,row:t.to.row+x,column:t.to.column+S},from:{...t.from,row:t.from.row+x,column:t.from.column+S}},r=m(n,this._selectionRenderService,this._skeletonManagerService);return{unitId:c,subUnitId:l,drawingId:e.drawingId,transform:r,sheetTransform:n}});if(C.length){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(C);y.push({id:r.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:l,op:t,objects:n,type:r.DrawingApplyType.UPDATE}}),b.push({id:r.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:l,op:e,objects:n,type:r.DrawingApplyType.UPDATE}})}return{redos:y,undos:b}}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=n,{range:o}=e,s=o.startRow,c=o.endRow,l=[],u=[],d=this._sheetDrawingService.getDrawingData(i,a),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=r.SheetDrawingAnchorType.Position}=d[e];if(n==null||o==null)return;let u,m,h;if(t===`insert`){var g;let e=this._expandRow(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}else{let{from:t,to:d}=n,{row:f}=t,{row:g}=d;if(l===r.SheetDrawingAnchorType.Both&&f>=s&&g<=c)p.push({unitId:i,subUnitId:a,drawingId:e});else{var _;let e=this._shrinkRow(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}}if(!u||!m)return;let v={unitId:i,subUnitId:a,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(v)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:r.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:n,type:r.DrawingApplyType.UPDATE}}),u.push({id:r.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:e,objects:n,type:r.DrawingApplyType.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,o=e.objects;l.push({id:r.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:n,objects:o,type:r.DrawingApplyType.REMOVE}}),u.push({id:r.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:o,type:r.DrawingApplyType.INSERT}})}return l.push({id:_.id,params:[i]}),u.push({id:_.id,params:[i]}),{redos:l,undos:u}}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=n,{range:o}=e,s=o.startColumn,c=o.endColumn,l=[],u=[],d=this._sheetDrawingService.getDrawingData(i,a),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=r.SheetDrawingAnchorType.Position}=d[e];if(n==null||o==null)return;let u,m,h;if(t===`insert`){var g;let e=this._expandCol(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}else{let{from:t,to:d}=n,{column:f}=t,{column:g}=d;if(l===r.SheetDrawingAnchorType.Both&&f>=s&&g<=c)p.push({unitId:i,subUnitId:a,drawingId:e});else{var _;let e=this._shrinkCol(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}}if(!u||!m)return;let v={unitId:i,subUnitId:a,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(v)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:r.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:n,type:r.DrawingApplyType.UPDATE}}),u.push({id:r.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:e,objects:n,type:r.DrawingApplyType.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,o=e.objects;l.push({id:r.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:n,objects:o,type:r.DrawingApplyType.REMOVE}}),u.push({id:r.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:o,type:r.DrawingApplyType.INSERT}})}return l.push({id:_.id,params:[i]}),u.push({id:_.id,params:[i]}),{redos:l,undos:u}}_expandCol(e,t,n,i,a=r.SheetDrawingAnchorType.Position){let o=i-n+1,{from:s,to:c}=e,{column:l}=s,{column:u}=c;if(a===r.SheetDrawingAnchorType.None)return{newSheetTransform:h({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:g({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:i,startRow:s.row,endRow:c.row});if(e==null)return;f={...t,left:(t.left||0)+e.endX-e.startX},d=h(f,this._selectionRenderService),p=g(f,this._selectionRenderService)}else if(u>=i)if(a===r.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,column:u+o}},f=m(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:h({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:g({...t},this._selectionRenderService)};return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_shrinkCol(e,t,n,i,a=r.SheetDrawingAnchorType.Position){let o=i-n+1,{from:s,to:c}=e,{column:l}=s,{column:u}=c;if(a===r.SheetDrawingAnchorType.None)return{newSheetTransform:h({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:g({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>i)d={from:{...s,column:l-o},to:{...c,column:u-o}},f=m(d,this._selectionRenderService,this._skeletonManagerService);else if(l>=n&&u<=i)return null;else if(l<n&&u>i)if(a===r.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,column:u-o}},f=m(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:h({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:g({...t},this._selectionRenderService)};else if(l>=n&&l<=i){if(l===n)f={...t,left:(t.left||0)-e.from.columnOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:l-1,startRow:s.row,endRow:c.row});if(r==null)return;f={...t,left:(t.left||0)-r.endX+r.startX-e.from.columnOffset}}d=h(f,this._selectionRenderService),p=g(f,this._selectionRenderService)}else if(u>=n&&u<=i&&a===r.SheetDrawingAnchorType.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n-1,endColumn:n-1,startRow:s.row,endRow:c.row});if(e==null)return;d={from:{...s},to:{...c,column:n-1,columnOffset:e.endX-e.startX}},f=m(d,this._selectionRenderService,this._skeletonManagerService)}return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_expandRow(e,t,n,i,a=r.SheetDrawingAnchorType.Position){let o=i-n+1,{from:s,to:c}=e,{row:l}=s,{row:u}=c;if(a===r.SheetDrawingAnchorType.None)return{newSheetTransform:h({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:g({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:i,startColumn:s.column,endColumn:c.column});if(e==null)return;f={...t,top:(t.top||0)+e.endY-e.startY},d=h(f,this._selectionRenderService),p=g(f,this._selectionRenderService)}else if(u>=i)if(a===r.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,row:u+o}},f=m(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:h({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:g({...t},this._selectionRenderService)};return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_shrinkRow(e,t,n,i,a=r.SheetDrawingAnchorType.Position){let o=i-n+1,{from:s,to:c}=e,{row:l}=s,{row:u}=c;if(a===r.SheetDrawingAnchorType.None)return{newSheetTransform:h({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:g({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>i)d={from:{...s,row:l-o},to:{...c,row:u-o}},f=m(d,this._selectionRenderService,this._skeletonManagerService);else if(l>=n&&u<=i)return null;else if(l<n&&u>i)if(a===r.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,row:u-o}},f=m(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:h({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:g({...t},this._selectionRenderService)};else if(l>=n&&l<=i){if(l===n)f={...t,top:(t.top||0)-e.from.rowOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:l-1,startColumn:s.column,endColumn:c.column});if(r==null)return;f={...t,top:(t.top||0)-r.endY+r.startY-e.from.rowOffset}}d=h(f,this._selectionRenderService),p=g(f,this._selectionRenderService)}else if(u>=n&&u<=i&&a===r.SheetDrawingAnchorType.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:s.column,endColumn:s.column,startRow:n-1,endRow:n-1});if(e==null)return;d={from:{...s},to:{...c,row:n-1,rowOffset:e.endY-e.startY}},f=m(d,this._selectionRenderService,this._skeletonManagerService)}return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===i.SetWorksheetActiveOperation.id){let{unitId:t,subUnitId:n}=e.params;this._updateDrawings(t,n)}})),this.disposeWithMe(this._context.activated$.subscribe(e=>{let{unit:t,unitId:n}=this._context;if(e){let e=t.getActiveSheet().getSheetId();this._updateDrawings(n,e)}else this._clearDrawings(n)}))}_clearDrawings(e){setTimeout(()=>{let t=this._drawingManagerService.drawingManagerData,n=[];Object.keys(t).forEach(r=>{let i=t[r];i!=null&&Object.keys(i).forEach(t=>{let a=i[t].data;a!=null&&Object.keys(a).forEach(t=>{r===e&&n.push(a[t])})})}),this._sheetDrawingService.removeNotification(n),this._drawingManagerService.removeNotification(n)})}_updateDrawings(e,t){setTimeout(()=>{let n=this._drawingManagerService.drawingManagerData,r=[],i=[];Object.keys(n).forEach(a=>{let o=n[a];o!=null&&Object.keys(o).forEach(n=>{let s=o[n].data;s!=null&&Object.keys(s).forEach(o=>{if(a===e&&n===t){let e=s[o];e.sheetTransform&&(e.transform=m(e.sheetTransform,this._selectionRenderService,this._skeletonManagerService)),r.push(s[o])}else i.push(s[o])})})}),this._sheetDrawingService.removeNotification(i),this._sheetDrawingService.addNotification(r),this._drawingManagerService.removeNotification(i),this._drawingManagerService.addNotification(r)},0)}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{Be.includes(e.id)&&requestIdleCallback(()=>{let t=e.params,n=(0,i.getSheetCommandTarget)(this._univerInstanceService,t);if(!n)return;let{unitId:r,subUnitId:a,worksheet:o}=n,s=[];`ranges`in t?s=t.ranges:`rowsAutoHeightInfo`in t&&(s=t.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:o.getColumnCount()-1}))),this._refreshDrawingTransform(r,a,s)})}))}_refreshDrawingTransform(e,t,i){let a=this._drawingManagerService.getDrawingData(e,t),o=[];Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:s,transform:c,anchorType:l=r.SheetDrawingAnchorType.Position}=t;if(l===r.SheetDrawingAnchorType.None)return!0;let{from:u,to:d}=s,{row:f,column:p}=u,{row:h,column:g}=d;for(let e=0;e<i.length;e++){let{startRow:a,endRow:u,startColumn:d,endColumn:_}=i[e];if(n.Rectangle.intersects({startRow:a,endRow:u,startColumn:d,endColumn:_},{startRow:f,endRow:h,startColumn:p,endColumn:g})||f>u||p>_){let e=l===r.SheetDrawingAnchorType.Position,n=m(s,this._selectionRenderService,this._skeletonManagerService);o.push({...t,transform:{...n,width:e?c==null?void 0:c.width:n==null?void 0:n.width,height:e?c==null?void 0:c.height:n==null?void 0:n.height}});break}}}),o.length!==0&&(this._sheetDrawingService.refreshTransform(o),this._drawingManagerService.refreshTransform(o),this._commandService.syncExecuteCommand(_.id,[e]))}};Ve=P([N(1,e.IRenderManagerService),N(2,n.ICommandService),N(3,t.ISheetSelectionRenderService),N(4,(0,n.Inject)(t.SheetSkeletonManagerService)),N(5,(0,n.Inject)(i.SheetInterceptorService)),N(6,r.ISheetDrawingService),N(7,s.IDrawingManagerService),N(8,n.IUniverInstanceService)],Ve);const He={id:`sheet.command.toggle-flip-drawings`,type:n.CommandType.COMMAND,handler:(i,a)=>{let o=i.get(n.ICommandService),c=i.get(n.IUndoRedoService),l=i.get(r.ISheetDrawingService),u=i.get(e.IRenderManagerService);if(!a)return!1;let{drawings:d}=a,f=a.flipH,p=a.flipV,m=[],v=[];for(let e of d){let{unitId:r,subUnitId:a,drawingId:o}=e;m.push(r);let c=l.getDrawingData(r,a),d=c==null?void 0:c[o];if(!d)continue;let _={...d.transform};f&&(_.flipX=!_.flipX),p&&(_.flipY=!_.flipY);let y=u.getRenderById(r),b=y==null?void 0:y.with(t.ISheetSelectionRenderService);if(!b)continue;let x=h(_,b),S=g(_,b),C={unitId:r,subUnitId:a,drawingType:d.drawingType,drawingId:o,transform:_,sheetTransform:x,axisAlignSheetTransform:S};if(d.drawingType===n.DrawingTypeEnum.DRAWING_IMAGE){let e=Ue(i,r);if(e){let t=(0,s.getDrawingShapeKeyByDrawingSearch)({unitId:r,subUnitId:a,drawingId:o}),n=e.getObject(t);if(n){let e=n.srcRect;if(e){let t,{left:n=0,top:r=0,right:i=0,bottom:a=0}=e;if(f){let e=n+(i-n)/2;t={left:e-(i-n)/2,top:r,right:e+(i-n)/2,bottom:a}}if(p){let e=r+(a-r)/2;t={left:n,top:e-(a-r)/2,right:i,bottom:e+(a-r)/2}}t&&(C.srcRect=t)}}}}v.push(C)}if(v.length===0)return!1;let{unitId:y,subUnitId:b,undo:x,redo:S,objects:C}=l.getBatchUpdateOp(v),w={id:r.SetDrawingApplyMutation.id,params:{unitId:y,subUnitId:b,op:S,objects:C,type:r.DrawingApplyType.UPDATE}},T={id:r.SetDrawingApplyMutation.id,params:{unitId:y,subUnitId:b,op:x,objects:C,type:r.DrawingApplyType.UPDATE}};return(0,n.sequenceExecute)([w],o)?(c.pushUndoRedo({unitID:y,undoMutations:[T,{id:_.id,params:m}],redoMutations:[w,{id:_.id,params:m}]}),!0):!1}};function Ue(t,n){let r=t.get(e.IRenderManagerService).getRenderById(n);return r?r.scene:null}function We(e){var t,n;return!!(!(e==null||(t=e.p)==null||(t=t.drawingsOrder)==null)&&t.length&&(e==null||(n=e.p)==null||(n=n.drawingsOrder)==null?void 0:n.length)>0)}function Ge(e,t){let n=e.getActiveSheet();if(!n)return!1;let r=n.getCellMatrix(),{startRow:i,endRow:a,startColumn:o,endColumn:s}=t;for(let e=i;e<=a;e++)for(let t=o;t<=s;t++)if(We(r.getValue(e,t)))return!0;return!1}function Ke(){return`showDirectoryPicker`in window}function qe(e){let t=e.get(n.IUniverInstanceService),r=e.get(i.SheetsSelectionsService),a=(0,d.combineLatest)([(0,c.getMenuHiddenObservable)(e,n.UniverInstanceType.UNIVER_SHEET),t.getCurrentTypeOfUnit$(n.UniverInstanceType.UNIVER_SHEET).pipe((0,d.switchMap)(e=>e?r.selectionMoveEnd$.pipe((0,d.map)(()=>{if(!Ke())return!0;let t=r.getCurrentSelections();if(!t||t.length===0)return!0;for(let n of t)if(Ge(e,n.range))return!1;return!0})):(0,d.of)(!0)))]).pipe((0,d.map)(([e,t])=>e||t));return{id:X.id,type:c.MenuItemType.BUTTON,icon:`DownloadImageIcon`,title:`sheetImage.save.menuLabel`,hidden$:a}}const Je={[c.RibbonInsertGroup.MEDIA]:{[se]:{order:0,menuItemFactory:ce,[R.id]:{order:0,menuItemFactory:le},[z.id]:{order:1,menuItemFactory:ue}}},[c.ContextMenuPosition.MAIN_AREA]:{[c.ContextMenuGroup.OTHERS]:{[X.id]:{order:10,menuItemFactory:qe}}},[c.ContextMenuPosition.COL_HEADER]:{[c.ContextMenuGroup.OTHERS]:{[X.id]:{order:10,menuItemFactory:qe}}},[c.ContextMenuPosition.ROW_HEADER]:{[c.ContextMenuGroup.OTHERS]:{[X.id]:{order:10,menuItemFactory:qe}}}};function Ye(){let e=(0,c.useDependency)(n.LocaleService),r=(0,c.useDependency)(c.IDialogService),i=(0,c.useDependency)(H),[o,s]=(0,f.useState)([V.CELL_ADDRESS]),[l,u]=(0,f.useState)(!1),[d,m]=(0,f.useState)(null),h=(0,f.useMemo)(()=>i.getCellImagesInSelection(),[i]),g=(0,f.useMemo)(()=>i.getDataColumns(),[i]),_=(0,f.useMemo)(()=>i.getSelectionRowRange(),[i]),v=g.length>0,y=(0,f.useMemo)(()=>g.map(e=>({label:e.label,value:String(e.index)})),[g]),[b,x]=(0,f.useState)(()=>y.length>0?y[0].value:`0`);(0,t.useHighlightRange)((0,f.useMemo)(()=>{if(!o.includes(V.COLUMN_VALUE)||!_)return[];let e=Number(b);return[{startRow:_.startRow,endRow:_.endRow,startColumn:e,endColumn:e}]},[o,b,_]));let S=(0,f.useCallback)(e=>{e.length!==0&&s(e)},[]),C=(0,f.useCallback)(e=>{x(String(e))},[]),w=(0,f.useCallback)(()=>{r.close(Y)},[r]),T=(0,f.useCallback)(async()=>{if(h.length!==0){u(!0),m(null);try{await i.saveImages(h,{fileNameParts:o,columnIndex:o.includes(V.COLUMN_VALUE)?Number(b):void 0}),r.close(Y)}catch(t){console.error(`Failed to save images:`,t),m(e.t(`sheetImage.save.error`))}finally{u(!1)}}},[i,h,o,b,r,e]),E=o.includes(V.COLUMN_VALUE);return(0,p.jsxs)(`div`,{className:`univer-flex univer-flex-col`,children:[(0,p.jsx)(a.FormLayout,{label:e.t(`sheetImage.save.imageCount`),children:(0,p.jsx)(`div`,{className:`univer-text-sm univer-text-gray-600`,children:h.length})}),(0,p.jsx)(a.FormLayout,{label:e.t(`sheetImage.save.fileNameConfig`),children:(0,p.jsxs)(a.CheckboxGroup,{value:o,onChange:S,direction:`vertical`,children:[(0,p.jsx)(a.Checkbox,{value:V.CELL_ADDRESS,disabled:!v,children:e.t(`sheetImage.save.useRowCol`)}),v&&(0,p.jsx)(a.Checkbox,{value:V.COLUMN_VALUE,children:e.t(`sheetImage.save.useColumnValue`)})]})}),E&&(0,p.jsx)(a.FormLayout,{label:e.t(`sheetImage.save.selectColumn`),children:(0,p.jsx)(a.Select,{value:b,options:y,onChange:C})}),d&&(0,p.jsx)(`div`,{className:`univer-text-xs univer-text-red-500`,children:d}),(0,p.jsxs)(`div`,{className:`
3
+ univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3
4
+ `,children:[(0,p.jsx)(a.Button,{onClick:w,disabled:l,children:e.t(`sheetImage.save.cancel`)}),(0,p.jsx)(a.Button,{variant:`primary`,onClick:T,disabled:l||h.length===0,children:l?e.t(`sheetImage.save.saving`):e.t(`sheetImage.save.confirm`)})]})]})}const Xe=t=>{var i;let o=(0,c.useDependency)(n.ICommandService),l=(0,c.useDependency)(n.LocaleService),u=(0,c.useDependency)(s.IDrawingManagerService),d=(0,c.useDependency)(e.IRenderManagerService),{drawings:m}=t,h=m[0];if(h==null)return;let{unitId:g}=h,_=d.getRenderById(g),v=_==null?void 0:_.scene;if(v==null)return;let y=v.getTransformerByCreate(),[b,x]=(0,f.useState)(!0),[S,C]=(0,f.useState)((i=h.anchorType)==null?r.SheetDrawingAnchorType.Position:i);function w(e,t){let n=[];return e.forEach(e=>{let{oKey:r}=e,i=t.getDrawingOKey(r);if(i==null)return n.push(null),!0;let{unitId:a,subUnitId:o,drawingId:s,drawingType:c,anchorType:l,sheetTransform:u,axisAlignSheetTransform:d}=i;n.push({unitId:a,subUnitId:o,drawingId:s,anchorType:l,sheetTransform:u,drawingType:c,axisAlignSheetTransform:d})}),n}(0,f.useEffect)(()=>{let e=y.clearControl$.subscribe(e=>{e===!0&&x(!1)}),t=y.changeStart$.subscribe(e=>{let{objects:t}=e,n=w(t,u);if(n.length===0)x(!1);else if(n.length>=1){var i;x(!0),C(((i=n[0])==null?void 0:i.anchorType)||r.SheetDrawingAnchorType.Position)}});return()=>{t.unsubscribe(),e.unsubscribe()}},[]);function T(e){C(e);let t=u.getFocusDrawings();if(t.length===0)return;let n=t.map(t=>({unitId:t.unitId,subUnitId:t.subUnitId,drawingId:t.drawingId,anchorType:e}));o.executeCommand(D.id,{unitId:t[0].unitId,drawings:n})}return(0,p.jsxs)(`div`,{className:(0,a.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!b}),children:[(0,p.jsx)(`header`,{className:`
5
+ univer-text-gray-600
6
+ dark:!univer-text-gray-200
7
+ `,children:(0,p.jsx)(`div`,{children:l.t(`drawing-anchor.title`)})}),(0,p.jsx)(`div`,{children:(0,p.jsxs)(a.RadioGroup,{value:S,onChange:T,direction:`vertical`,children:[(0,p.jsx)(a.Radio,{value:r.SheetDrawingAnchorType.Both,children:l.t(`drawing-anchor.both`)}),(0,p.jsx)(a.Radio,{value:r.SheetDrawingAnchorType.Position,children:l.t(`drawing-anchor.position`)}),(0,p.jsx)(a.Radio,{value:r.SheetDrawingAnchorType.None,children:l.t(`drawing-anchor.none`)})]})})]})},Ze=()=>{let e=(0,c.useDependency)(s.IDrawingManagerService),[t,n]=(0,f.useState)(e.getFocusDrawings());return(0,f.useEffect)(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&(0,p.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,p.jsx)(u.DrawingCommonPanel,{drawings:t}),(0,p.jsx)(Xe,{drawings:t})]})};function Qe(e){return e.getContextValue(n.FOCUSING_SHEET)&&!e.getContextValue(n.FOCUSING_FX_BAR_EDITOR)&&!e.getContextValue(n.FOCUSING_PANEL_EDITOR)&&e.getContextValue(n.FOCUSING_COMMON_DRAWINGS)&&!e.getContextValue(n.FOCUSING_SHAPE_TEXT_EDITOR)}const $e={id:B.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:c.KeyCode.ARROW_DOWN,priority:100,preconditions:Qe,staticParameters:{direction:n.Direction.DOWN}},et={id:B.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:c.KeyCode.ARROW_UP,priority:100,preconditions:Qe,staticParameters:{direction:n.Direction.UP}},tt={id:B.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:c.KeyCode.ARROW_LEFT,priority:100,preconditions:Qe,staticParameters:{direction:n.Direction.LEFT}},nt={id:B.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:c.KeyCode.ARROW_RIGHT,priority:100,preconditions:Qe,staticParameters:{direction:n.Direction.RIGHT}},rt={id:y.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,priority:100,preconditions:Qe,binding:c.KeyCode.DELETE,mac:c.KeyCode.BACKSPACE};let it=class extends n.Disposable{constructor(e,t,n,r,i,a){super(),this._componentManager=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._drawingManagerService=i,this._sheetsSelectionsService=a,this._init()}_initCustomComponents(){let e=this._componentManager;this.disposeWithMe(e.register(ne,Ze)),this.disposeWithMe(e.register(Y,Ye))}_initMenus(){this._menuManagerService.mergeMenu(Je)}_initCommands(){[R,z,T,v,D,re,_,ie,w,O,B,y,E,X,He].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[$e,et,tt,nt,rt].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};it=P([N(0,(0,n.Inject)(c.ComponentManager)),N(1,c.IMenuManagerService),N(2,n.ICommandService),N(3,c.IShortcutService),N(4,s.IDrawingManagerService),N(5,(0,n.Inject)(i.SheetsSelectionsService))],it);let at=class extends n.RxDisposable{constructor(e,t,n,r,i,a,o,s,c,l){super(),this._injector=e,this._localeService=t,this._drawingManagerService=n,this._canvasPopManagerService=r,this._renderManagerService=i,this._univerInstanceService=a,this._messageService=o,this._contextService=s,this._ioService=c,this._commandService=l,M(this,`_initImagePopupMenu`,new Set),this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(n.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._create(e)),this._univerInstanceService.getTypeOfUnitDisposed$(n.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._dispose(e)),this._univerInstanceService.getAllUnitsForType(n.UniverInstanceType.UNIVER_SHEET).forEach(e=>this._create(e)),this._setupLoadingStatus()}_setupLoadingStatus(){let e;this.disposeWithMe(this._ioService.change$.subscribe(t=>{t>0&&!e?e=this._messageService.show({id:`image-upload-loading`,type:a.MessageType.Loading,content:`${this._localeService.t(`uploadLoading.loading`)}: ${t}`,duration:0}):t===0&&(e==null||e.dispose(),e=void 0)}))}_dispose(e){super.dispose();let t=e.getUnitId();this._renderManagerService.removeRender(t),this._initImagePopupMenu.delete(t)}_create(e){if(!e)return;let t=e.getUnitId();this._renderManagerService.has(t)&&!this._initImagePopupMenu.has(t)&&(this._popupMenuListener(t),this._initImagePopupMenu.add(t))}_hasCropObject(e){let t=e.getAllObjectsByOrder();for(let e of t)if(e instanceof u.ImageCropperObject)return!0;return!1}_popupMenuListener(e){var t;let r=(t=this._renderManagerService.getRenderById(e))==null?void 0:t.scene;if(!r)return;let i=r.getTransformerByCreate();if(!i)return;let a;this.disposeWithMe(i.createControl$.subscribe(()=>{if(this._contextService.setContextValue(n.FOCUSING_COMMON_DRAWINGS,!0),this._hasCropObject(r))return;let e=i.getSelectedObjectMap();if(e.size>1){a==null||a.dispose();return}let t=e.values().next().value;if(!t)return;let o=t.oKey,s=this._drawingManagerService.getDrawingOKey(o);if(!s)return;let{unitId:c,subUnitId:l,drawingId:d,drawingType:f}=s,p=s.data;if(p&&p.disablePopup)return;a==null||a.dispose();let m=this._canvasPopManagerService.getFeatureMenu(c,l,d,f);a=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(t,{componentKey:u.COMPONENT_IMAGE_POPUP_MENU,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:m||this._getImageMenuItems(c,l,d,f)}}))})),this.disposeWithMe(i.clearControl$.subscribe(()=>{a==null||a.dispose(),this._contextService.setContextValue(n.FOCUSING_COMMON_DRAWINGS,!1),this._commandService.syncExecuteCommand(s.SetDrawingSelectedOperation.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(e=>{e[n.FOCUSING_COMMON_DRAWINGS]===!1&&(a==null||a.dispose())})),this.disposeWithMe(i.changing$.subscribe(()=>{a==null||a.dispose()}))}_getImageMenuItems(e,t,r,i){return[{label:`image-popup.edit`,index:0,commandId:ie.id,commandParams:{unitId:e,subUnitId:t,drawingId:r},disable:i===n.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.delete`,index:1,commandId:v.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:r}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:u.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:t,drawingId:r},disable:i===n.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipH`,index:2,commandId:He.id,commandParams:{unitId:e,flipH:!0,drawings:[{unitId:e,subUnitId:t,drawingId:r}]},disable:i===n.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipV`,index:2,commandId:He.id,commandParams:{unitId:e,flipV:!0,drawings:[{unitId:e,subUnitId:t,drawingId:r}]},disable:i===n.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.reset`,index:3,commandId:u.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:t,drawingId:r}],disable:i===n.DrawingTypeEnum.DRAWING_DOM}]}};at=P([N(0,(0,n.Inject)(n.Injector)),N(1,(0,n.Inject)(n.LocaleService)),N(2,s.IDrawingManagerService),N(3,(0,n.Inject)(t.SheetCanvasPopManagerService)),N(4,e.IRenderManagerService),N(5,n.IUniverInstanceService),N(6,c.IMessageService),N(7,n.IContextService),N(8,n.IImageIoService),N(9,n.ICommandService)],at);let $=class extends n.Plugin{constructor(e=me,t,r,i){super(),this._config=e,this._injector=t,this._renderManagerService=r,this._configService=i;let{menu:a,...o}=(0,n.merge)({},me,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(pe,o)}onStarting(){(0,n.registerDependencies)(this._injector,[[Ne],[it],[at],[Re],[ke],[Oe],[oe],[ye],[be],[Se],[H,{useClass:te}],[he]]),(0,n.touchDependencies)(this._injector,[[Ne]])}onReady(){(0,n.touchDependencies)(this._injector,[[Oe],[Se],[oe]])}onRendered(){this._registerRenderModules(),(0,n.touchDependencies)(this._injector,[[ke],[Re],[it],[ye],[be]])}onSteady(){this._injector.get(at),this._injector.get(he)}_registerRenderModules(){[[L],[Ve],[_e],[ge]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(n.UniverInstanceType.UNIVER_SHEET,e))})}};M($,`type`,n.UniverInstanceType.UNIVER_SHEET),M($,`pluginName`,`SHEET_IMAGE_UI_PLUGIN`),M($,`packageName`,de),M($,`version`,fe),$=P([(0,n.DependentOn)(s.UniverDrawingPlugin,l.UniverDocsDrawingPlugin,u.UniverDrawingUIPlugin,r.UniverSheetsDrawingPlugin),N(1,(0,n.Inject)(n.Injector)),N(2,e.IRenderManagerService),N(3,n.IConfigService)],$),Object.defineProperty(exports,`BatchSaveImagesService`,{enumerable:!0,get:function(){return te}}),exports.ClearSheetDrawingTransformerOperation=_,exports.DeleteDrawingsCommand=y,exports.EditSheetDrawingOperation=ie,exports.FileNamePart=V,exports.GroupSheetDrawingCommand=w,exports.IBatchSaveImagesService=H,exports.InsertFloatImageCommand=R,exports.InsertSheetDrawingCommand=T,exports.MoveDrawingsCommand=B,exports.RemoveSheetDrawingCommand=v,exports.SHEETS_IMAGE_MENU_ID=se,exports.SHEET_FLOAT_DOM_PREFIX=je,exports.SaveCellImagesCommand=X,exports.SetDrawingArrangeCommand=E,exports.SetSheetDrawingCommand=D,Object.defineProperty(exports,`SheetCanvasFloatDomManagerService`,{enumerable:!0,get:function(){return Ne}}),exports.SheetDrawingAnchor=Xe,Object.defineProperty(exports,`SheetDrawingUpdateController`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`SheetsDrawingGroupCopyPasteController`,{enumerable:!0,get:function(){return oe}}),exports.SidebarSheetDrawingOperation=re,exports.UngroupSheetDrawingCommand=O,Object.defineProperty(exports,`UniverSheetsDrawingUIPlugin`,{enumerable:!0,get:function(){return $}}),exports.calcSheetFloatDomPosition=Z,exports.drawingPositionToTransform=m,exports.transformToAxisAlignPosition=g,exports.transformToDrawingPosition=h;