@univerjs/preset-sheets-drawing 0.20.0 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/umd/index.js +5 -5
- package/package.json +8 -8
package/lib/umd/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
// @univerjs/docs-drawing/index
|
|
2
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/drawing`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/drawing`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawing={},e.UniverCore,e.UniverDrawing))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r=class extends n.UnitDrawingService{};let i=(0,t.createIdentifier)(`univer.doc.plugin.doc-drawing.service`);function a(e,t){return function(n,r){t(n,r,e)}}function o(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let s=`DOC_DRAWING_PLUGIN`,c=class extends t.Disposable{constructor(e,t,n,r){super(),this._docDrawingService=e,this._drawingManagerService=t,this._resourceManagerService=n,this._univerInstanceService=r,this._init()}_init(){this._initSnapshot()}_initSnapshot(){let e=e=>{let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(n){let e=n.getSnapshot().drawings,t=n.getSnapshot().drawingsOrder,r={data:e==null?{}:e,order:t==null?[]:t};return JSON.stringify(r)}return``},n=e=>{if(!e)return{data:{},order:[]};try{return JSON.parse(e)}catch{return{data:{},order:[]}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:s,businesses:[t.UniverInstanceType.UNIVER_DOC],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._setDrawingDataForUnit(e,{data:{},order:[]})},onLoad:(e,t)=>{var n,r;this._setDrawingDataForUnit(e,{data:(n=t.data)==null?{}:n,order:(r=t.order)==null?[]:r})}}))}_setDrawingDataForUnit(e,t){let n=this._univerInstanceService.getUnit(e);n!=null&&(n.resetDrawing(t.data,t.order),this.loadDrawingDataForUnit(e))}loadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!n)return!1;let r=e,i=n.getDrawings(),a=n.getDrawingsOrder();if(!i||!a)return!1;Object.keys(i).forEach(e=>{i[e]={...i[e]}});let o={[r]:{unitId:e,subUnitId:r,data:i,order:a}};return this._docDrawingService.registerDrawingData(e,o),this._drawingManagerService.registerDrawingData(e,o),!0}};c=o([a(0,i),a(1,n.IDrawingManagerService),a(2,t.IResourceManagerService),a(3,t.IUniverInstanceService)],c);var l=`@univerjs/docs-drawing`,u=`0.20.
|
|
2
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/drawing`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/drawing`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawing={},e.UniverCore,e.UniverDrawing))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r=class extends n.UnitDrawingService{};let i=(0,t.createIdentifier)(`univer.doc.plugin.doc-drawing.service`);function a(e,t){return function(n,r){t(n,r,e)}}function o(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let s=`DOC_DRAWING_PLUGIN`,c=class extends t.Disposable{constructor(e,t,n,r){super(),this._docDrawingService=e,this._drawingManagerService=t,this._resourceManagerService=n,this._univerInstanceService=r,this._init()}_init(){this._initSnapshot()}_initSnapshot(){let e=e=>{let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(n){let e=n.getSnapshot().drawings,t=n.getSnapshot().drawingsOrder,r={data:e==null?{}:e,order:t==null?[]:t};return JSON.stringify(r)}return``},n=e=>{if(!e)return{data:{},order:[]};try{return JSON.parse(e)}catch{return{data:{},order:[]}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:s,businesses:[t.UniverInstanceType.UNIVER_DOC],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._setDrawingDataForUnit(e,{data:{},order:[]})},onLoad:(e,t)=>{var n,r;this._setDrawingDataForUnit(e,{data:(n=t.data)==null?{}:n,order:(r=t.order)==null?[]:r})}}))}_setDrawingDataForUnit(e,t){let n=this._univerInstanceService.getUnit(e);n!=null&&(n.resetDrawing(t.data,t.order),this.loadDrawingDataForUnit(e))}loadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!n)return!1;let r=e,i=n.getDrawings(),a=n.getDrawingsOrder();if(!i||!a)return!1;Object.keys(i).forEach(e=>{i[e]={...i[e]}});let o={[r]:{unitId:e,subUnitId:r,data:i,order:a}};return this._docDrawingService.registerDrawingData(e,o),this._drawingManagerService.registerDrawingData(e,o),!0}};c=o([a(0,i),a(1,n.IDrawingManagerService),a(2,t.IResourceManagerService),a(3,t.IUniverInstanceService)],c);var l=`@univerjs/docs-drawing`,u=`0.20.1`;let d=`docs-drawing.config`;Symbol(d);let f={};function p(e){"@babel/helpers - typeof";return p=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},p(e)}function m(e,t){if(p(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(p(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function h(e){var t=m(e,`string`);return p(t)==`symbol`?t:t+``}function g(e,t,n){return(t=h(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let _=class extends t.Plugin{constructor(e=f,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},f,this._config);this._configService.setConfig(d,i)}onStarting(){[[c],[r],[i,{useClass:r}]].forEach(e=>this._injector.add(e)),(0,t.touchDependencies)(this._injector,[[c]])}};g(_,`pluginName`,s),g(_,`packageName`,l),g(_,`version`,u),g(_,`type`,t.UniverInstanceType.UNIVER_DOC),_=o([a(1,(0,t.Inject)(t.Injector)),a(2,t.IConfigService)],_),e.DOCS_DRAWING_PLUGIN=s,Object.defineProperty(e,`DocDrawingController`,{enumerable:!0,get:function(){return c}}),e.DocDrawingService=r,e.IDocDrawingService=i,Object.defineProperty(e,`UniverDocsDrawingPlugin`,{enumerable:!0,get:function(){return _}})});
|
|
3
3
|
|
|
4
4
|
// @univerjs/drawing-ui/index
|
|
5
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/drawing`),require(`@univerjs/engine-render`),require(`react`),require(`@univerjs/ui`),require(`rxjs`),require(`@univerjs/design`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/drawing`,`@univerjs/engine-render`,`react`,`@univerjs/ui`,`rxjs`,`@univerjs/design`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDrawingUi={},e.UniverCore,e.UniverDrawing,e.UniverEngineRender,e.React,e.UniverUi,e.rxjs,e.UniverDesign,e.React))})(this,function(e,t,n,r,i,a,o,s,c){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let l=function(e){return e.default=`0`,e.left=`1`,e.center=`2`,e.right=`3`,e.top=`4`,e.middle=`5`,e.bottom=`6`,e.horizon=`7`,e.vertical=`8`,e}({}),u={id:`sheet.operation.set-image-align`,type:t.CommandType.OPERATION,handler:(e,t)=>!0},d={id:`sheet.operation.set-drawing-align-left`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.left})},f={id:`sheet.operation.set-drawing-align-center`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.center})},p={id:`sheet.operation.set-drawing-align-right`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.right})},m={id:`sheet.operation.set-drawing-align-top`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.top})},h={id:`sheet.operation.set-drawing-align-middle`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.middle})},g={id:`sheet.operation.set-drawing-align-bottom`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.bottom})},_={id:`sheet.operation.set-drawing-align-horizon`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.horizon})},v={id:`sheet.operation.set-drawing-align-vertical`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.vertical})},y={id:`drawing.operation.set-drawing-arrange`,type:t.CommandType.OPERATION,handler:(e,t)=>{let r=e.get(n.IDrawingManagerService),{arrangeType:i}=t,a=t.drawings||r.getFocusDrawings(),{unitId:o,subUnitId:s}=a[0],c=a.map(e=>e.drawingId);return r.featurePluginOrderUpdateNotification({unitId:o,subUnitId:s,drawingIds:c,arrangeType:i}),!0}},b={id:`drawing.operation.set-drawing-arrange-front`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(y.id,{arrangeType:t.ArrangeTypeEnum.front})},x={id:`drawing.operation.set-drawing-arrange-forward`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(y.id,{arrangeType:t.ArrangeTypeEnum.forward})},S={id:`drawing.operation.set-drawing-arrange-back`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(y.id,{arrangeType:t.ArrangeTypeEnum.back})},C={id:`drawing.operation.set-drawing-arrange-backward`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(y.id,{arrangeType:t.ArrangeTypeEnum.backward})},w=[t.DrawingTypeEnum.DRAWING_IMAGE,t.DrawingTypeEnum.DRAWING_SHAPE,t.DrawingTypeEnum.DRAWING_GROUP],T={id:`drawing.operation.set-drawing-group`,type:t.CommandType.OPERATION,handler:(e,i)=>{let a=e.get(n.IDrawingManagerService),o=i.drawings||a.getFocusDrawings();if(o.length<2||!o.every(e=>w.includes(e.drawingType)))return!1;let{unitId:s,subUnitId:c}=o[0],l=(0,t.generateRandomId)(10),u=(0,r.getGroupState)(0,0,o.map(e=>e.transform||{})),d={unitId:s,subUnitId:c,drawingId:l,drawingType:t.DrawingTypeEnum.DRAWING_GROUP,transform:u,groupBaseBound:{left:u.left,top:u.top,width:u.width,height:u.height}},f=o.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},groupId:l}});return a.featurePluginGroupUpdateNotification([{parent:d,children:f}]),!0}},E={id:`drawing.operation.cancel-drawing-group`,type:t.CommandType.OPERATION,handler:(e,i)=>{let a=e.get(n.IDrawingManagerService),o=(i.drawings||a.getFocusDrawings()).map(e=>{if(e.drawingType!==t.DrawingTypeEnum.DRAWING_GROUP)return null;let{unitId:n,subUnitId:i,drawingId:o,transform:s={width:0,height:0},groupBaseBound:c}=e;if(s===null)return null;let l=a.getDrawingsByGroup({unitId:n,subUnitId:i,drawingId:o});return l.length===0?null:{parent:e,children:l.map(e=>{let{transform:t}=e,{unitId:n,subUnitId:i,drawingId:a}=e,o=(0,r.transformObjectOutOfGroup)(t||{},s,s.width||0,s.height||0,c);return{unitId:n,subUnitId:i,drawingId:a,transform:{...t,...o},groupId:void 0}})}}).filter(e=>e!==null);return o.length===0?!1:(a.featurePluginUngroupUpdateNotification(o),!0)}},D={id:`sheet.operation.open-image-crop`,type:t.CommandType.OPERATION,handler:(e,t)=>!0},O={id:`sheet.operation.close-image-crop`,type:t.CommandType.OPERATION,handler:(e,t)=>!0},k=function(e){return e.FREE=`0`,e.R1_1=`1`,e.R16_9=`2`,e.R9_16=`3`,e.R5_4=`4`,e.R4_5=`5`,e.R4_3=`6`,e.R3_4=`7`,e.R3_2=`8`,e.R2_3=`9`,e}({}),A={id:`sheet.operation.Auto-image-crop`,type:t.CommandType.OPERATION,handler:(e,t)=>!0},j={id:`sheet.operation.image-reset-size`,type:t.CommandType.OPERATION,handler:(e,t)=>!0};function M(e,t,i,a){let o=a.getDrawingByParam(e);if(o==null)return;let s=(0,n.getDrawingShapeKeyByDrawingSearch)(e),c=i.getObjectIncludeInGroup(s);if(c&&!(c instanceof r.Group))return;if(c!=null){let e=c.getObjects();for(let n of e)if(n.oKey===t.oKey)return;c.addObject(t);return}let l=new r.DrawingGroupObject(s);i.addObject(l,r.DRAWING_OBJECT_LAYER_INDEX).attachTransformerTo(l),l.addObject(t);let{transform:u,groupBaseBound:d}=o;d&&l.setBaseBound(d),o.groupId&&(l.isInGroup=!0,M({drawingId:o.groupId,unitId:e.unitId,subUnitId:e.subUnitId},l,i,a)),u&&l.transformByState({left:u.left,top:u.top,angle:u.angle,width:u.width,height:u.height})}function N(e,n){let r=n?e.getUnit(n):e.getFocusedUnit();if(r==null)return;let i=r.getUnitId(),a;if(r.type===t.UniverInstanceType.UNIVER_SHEET){var o;a=(o=r.getActiveSheet())==null?void 0:o.getSheetId()}else (r.type===t.UniverInstanceType.UNIVER_DOC||r.type===t.UniverInstanceType.UNIVER_SLIDE)&&(a=i);return{unitId:i,subUnitId:a,current:r}}var P=`@univerjs/drawing-ui`,F=`0.20.0`;let I=`drawing-ui.config`;Symbol(I);let ee={};function L({ref:e,...t}){let{icon:n,id:r,className:a,extend:o,...s}=t,c=`univerjs-icon univerjs-icon-${r} ${a||``}`.trim(),l=(0,i.useRef)(`_${B()}`);return R(n,`${r}`,{defIds:n.defIds,idSuffix:l.current},{ref:e,className:c,...s},o)}function R(e,t,n,r,a){return(0,i.createElement)(e.tag,{key:t,...te(e,n,a),...r},(z(e,n).children||[]).map((r,i)=>R(r,`${t}-${e.tag}-${i}`,n,void 0,a)))}function te(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function z(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function B(){return Math.random().toString(36).substring(2,8)}L.displayName=`UniverIcon`;let ne={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 17 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M14.0045 4.4334C14.8881 4.4334 15.6045 3.71705 15.6045 2.8334C15.6045 1.94974 14.8881 1.2334 14.0045 1.2334H3.70449C2.82084 1.2334 2.10449 1.94974 2.10449 2.8334C2.10449 3.71705 2.82084 4.4334 3.70449 4.4334H14.0045ZM14.4045 2.8334C14.4045 3.05431 14.2254 3.2334 14.0045 3.2334H3.70449C3.48358 3.2334 3.30449 3.05431 3.30449 2.8334C3.30449 2.61248 3.48358 2.4334 3.70449 2.4334H14.0045C14.2254 2.4334 14.4045 2.61249 14.4045 2.8334Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M14.1544 8.5999C15.038 8.5999 15.7544 7.88356 15.7544 6.9999C15.7544 6.11625 15.038 5.3999 14.1544 5.3999H3.85439C2.97074 5.3999 2.25439 6.11625 2.25439 6.9999C2.25439 7.88356 2.97074 8.5999 3.85439 8.5999H14.1544ZM14.5544 6.9999C14.5544 7.22082 14.3753 7.3999 14.1544 7.3999H3.85439C3.63348 7.3999 3.45439 7.22082 3.45439 6.9999C3.45439 6.77899 3.63348 6.5999 3.85439 6.5999H14.1544C14.3753 6.5999 14.5544 6.77899 14.5544 6.9999Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M8.57975 14.5902L6.58023 12.5907C6.34591 12.3564 6.34591 11.9765 6.58023 11.7421C6.81454 11.5078 7.19444 11.5078 7.42876 11.7421L8.40449 12.7179V10.1664C8.40449 9.83504 8.67312 9.56641 9.00449 9.56641C9.33586 9.56641 9.60449 9.83504 9.60449 10.1664V12.7179L10.5802 11.7421C10.8145 11.5078 11.1944 11.5078 11.4288 11.7421C11.6631 11.9765 11.6631 12.3564 11.4288 12.5907L9.42923 14.5902`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M8.57975 14.5902C8.58121 14.5917 8.58268 14.5931 8.58416 14.5946C8.64077 14.6502 8.70566 14.6923 8.77482 14.7209C8.84557 14.7502 8.92314 14.7664 9.00449 14.7664C9.08585 14.7664 9.16342 14.7502 9.23416 14.7209C9.30332 14.6923 9.36821 14.6502 9.42482 14.5946`}}]},re=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`bottom-icon`,ref:t,icon:ne}))});re.displayName=`BottomIcon`;let ie={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M5.97705 7.51296C5.97705 7.18159 6.24568 6.91296 6.57705 6.91296H8.48632C8.81769 6.91296 9.08632 7.18159 9.08632 7.51296C9.08632 7.84433 8.81769 8.11296 8.48632 8.11296H6.57705C6.24568 8.11296 5.97705 7.84433 5.97705 7.51296Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M6.57705 9.41028C6.24568 9.41028 5.97705 9.67891 5.97705 10.0103C5.97705 10.3416 6.24568 10.6103 6.57705 10.6103H10.8199C11.1512 10.6103 11.4199 10.3416 11.4199 10.0103C11.4199 9.67891 11.1512 9.41028 10.8199 9.41028H6.57705Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M3.51074 2.37063C3.51074 1.48697 4.22709 0.77063 5.11074 0.77063H9.80318L9.81294 0.770708C9.97168 0.768161 10.1311 0.82824 10.2511 0.95055L14.4317 5.21408C14.5165 5.30049 14.5697 5.406 14.5917 5.51645C14.6041 5.5644 14.6106 5.61467 14.6106 5.66648V11.6406C14.6106 12.5243 13.8943 13.2406 13.0106 13.2406H5.11074C4.22709 13.2406 3.51074 12.5243 3.51074 11.6406V2.37063ZM10.4032 4.66648V2.81964L12.6063 5.06648H10.8032C10.5823 5.06648 10.4032 4.88739 10.4032 4.66648ZM5.11074 1.97063C4.88983 1.97063 4.71074 2.14972 4.71074 2.37063V11.6406C4.71074 11.8615 4.88983 12.0406 5.11074 12.0406H13.0106C13.2316 12.0406 13.4106 11.8615 13.4106 11.6406V6.26648H10.8032C9.91953 6.26648 9.20318 5.55013 9.20318 4.66648V1.97063H5.11074Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M2.58916 6.6741C2.58916 6.34273 2.32053 6.0741 1.98916 6.0741C1.65779 6.0741 1.38916 6.34273 1.38916 6.6741V12.6294C1.38916 14.0653 2.55322 15.2294 3.98916 15.2294H9.41408C9.74545 15.2294 10.0141 14.9607 10.0141 14.6294C10.0141 14.298 9.74545 14.0294 9.41408 14.0294H3.98916C3.21596 14.0294 2.58916 13.4026 2.58916 12.6294V6.6741Z`}}]},ae=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`create-copy-icon`,ref:t,icon:ie}))});ae.displayName=`CreateCopyIcon`;let oe={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 17 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M7.38125 1.16211C6.49759 1.16211 5.78125 1.87845 5.78125 2.76211V5.6377H2.87783C1.99418 5.6377 1.27783 6.35404 1.27783 7.2377V13.2377C1.27783 14.1214 1.99418 14.8377 2.87783 14.8377H8.87783C9.76149 14.8377 10.4778 14.1214 10.4778 13.2377V10.3621H13.3813C14.2649 10.3621 14.9813 9.64577 14.9813 8.76211V2.76211C14.9813 1.87845 14.2649 1.16211 13.3813 1.16211H7.38125ZM10.4778 9.16211H13.3813C13.6022 9.16211 13.7812 8.98302 13.7812 8.76211V2.76211C13.7812 2.5412 13.6022 2.36211 13.3813 2.36211H7.38125C7.16034 2.36211 6.98125 2.5412 6.98125 2.76211V5.6377H8.87783C9.76149 5.6377 10.4778 6.35404 10.4778 7.2377V9.16211ZM6.98125 6.8377H8.87783C9.09875 6.8377 9.27783 7.01678 9.27783 7.2377V9.16211H7.38125C7.16034 9.16211 6.98125 8.98302 6.98125 8.76211V6.8377ZM5.78125 6.8377V8.76211C5.78125 9.64577 6.49759 10.3621 7.38125 10.3621H9.27783V13.2377C9.27783 13.4586 9.09875 13.6377 8.87783 13.6377H2.87783C2.65692 13.6377 2.47783 13.4586 2.47783 13.2377V7.2377C2.47783 7.01678 2.65692 6.8377 2.87783 6.8377H5.78125Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},se=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`group-icon`,ref:t,icon:oe}))});se.displayName=`GroupIcon`;let ce={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M11.3536 6.14645C11.5488 6.34171 11.5488 6.65829 11.3536 6.85355L8.35355 9.85355C8.15829 10.0488 7.84171 10.0488 7.64645 9.85355L4.64645 6.85355C4.45118 6.65829 4.45118 6.34171 4.64645 6.14645C4.84171 5.95118 5.15829 5.95118 5.35355 6.14645L8 8.79289L10.6464 6.14645C10.8417 5.95118 11.1583 5.95118 11.3536 6.14645Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},le=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`more-down-icon`,ref:t,icon:ce}))});le.displayName=`MoreDownIcon`;let ue={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M1.25 2.96401C1.25 3.84767 1.96634 4.56401 2.85 4.56401H13.15C14.0337 4.56401 14.75 3.84767 14.75 2.96401C14.75 2.08036 14.0337 1.36401 13.15 1.36401H2.85C1.96635 1.36401 1.25 2.08036 1.25 2.96401ZM2.85 3.36401C2.62909 3.36401 2.45 3.18493 2.45 2.96401C2.45 2.7431 2.62909 2.56401 2.85 2.56401H13.15C13.3709 2.56401 13.55 2.7431 13.55 2.96401C13.55 3.18493 13.3709 3.36401 13.15 3.36401H2.85Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M5.57564 11.6118C5.80995 11.3774 6.18985 11.3774 6.42417 11.6118L7.3999 12.5875V6.36951C7.3999 6.03814 7.66853 5.76951 7.9999 5.76951C8.33127 5.76951 8.5999 6.03814 8.5999 6.36951V12.5875L9.57564 11.6118C9.80995 11.3774 10.1899 11.3774 10.4242 11.6118C10.6585 11.8461 10.6585 12.226 10.4242 12.4603L8.4324 14.452C8.32324 14.5655 8.16982 14.6362 7.9999 14.6362C7.82998 14.6362 7.67655 14.5655 7.56739 14.452L5.57564 12.4603C5.34132 12.226 5.34132 11.8461 5.57564 11.6118Z`}}]},de=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`move-down-icon`,ref:t,icon:ue}))});de.displayName=`MoveDownIcon`;let fe={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M1.25 13.036C1.25 12.1523 1.96634 11.436 2.85 11.436H13.15C14.0337 11.436 14.75 12.1523 14.75 13.036C14.75 13.9196 14.0337 14.636 13.15 14.636H2.85C1.96635 14.636 1.25 13.9196 1.25 13.036ZM2.85 12.636C2.62909 12.636 2.45 12.8151 2.45 13.036C2.45 13.2569 2.62909 13.436 2.85 13.436H13.15C13.3709 13.436 13.55 13.2569 13.55 13.036C13.55 12.8151 13.3709 12.636 13.15 12.636H2.85Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M5.57564 4.38825C5.80995 4.62256 6.18985 4.62256 6.42417 4.38825L7.3999 3.41251V9.63049C7.3999 9.96186 7.66853 10.2305 7.9999 10.2305C8.33127 10.2305 8.5999 9.96186 8.5999 9.63049V3.41251L9.57564 4.38825C9.80995 4.62256 10.1899 4.62256 10.4242 4.38825C10.6585 4.15393 10.6585 3.77403 10.4242 3.53972L8.4324 1.54796C8.32324 1.43445 8.16982 1.36382 7.9999 1.36382C7.82998 1.36382 7.67655 1.43446 7.56739 1.54797L5.57564 3.53972C5.34132 3.77403 5.34132 4.15393 5.57564 4.38825Z`}}]},pe=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`move-up-icon`,ref:t,icon:fe}))});pe.displayName=`MoveUpIcon`;let me={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 17 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M7.82994 1.40913C7.88746 1.35161 7.95376 1.30821 8.02453 1.27893C8.09527 1.24959 8.17285 1.2334 8.2542 1.2334C8.33555 1.2334 8.41313 1.24959 8.48387 1.27893C8.55464 1.30821 8.62094 1.35161 8.67846 1.40913L10.6785 3.40913C10.9128 3.64345 10.9128 4.02335 10.6785 4.25766C10.4441 4.49198 10.0642 4.49198 9.82994 4.25766L8.8542 3.28193V5.8334C8.8542 6.16477 8.58557 6.4334 8.2542 6.4334C7.92283 6.4334 7.6542 6.16477 7.6542 5.8334V3.28193L6.67846 4.25766C6.44415 4.49198 6.06425 4.49198 5.82994 4.25766C5.59562 4.02335 5.59562 3.64345 5.82994 3.40913L7.82994 1.40913Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M1.50439 9C1.50439 8.11634 2.22074 7.4 3.10439 7.4H13.4044C14.288 7.4 15.0044 8.11634 15.0044 9C15.0044 9.88366 14.2881 10.6 13.4044 10.6H3.1044C2.22074 10.6 1.50439 9.88366 1.50439 9ZM3.10439 8.6C2.88348 8.6 2.70439 8.77909 2.70439 9C2.70439 9.22091 2.88348 9.4 3.1044 9.4H13.4044C13.6253 9.4 13.8044 9.22091 13.8044 9C13.8044 8.77909 13.6253 8.6 13.4044 8.6H3.10439Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M1.6543 13.1665C1.6543 12.2828 2.37064 11.5665 3.2543 11.5665H13.5543C14.438 11.5665 15.1543 12.2828 15.1543 13.1665C15.1543 14.0502 14.438 14.7665 13.5543 14.7665H3.2543C2.37064 14.7665 1.6543 14.0502 1.6543 13.1665ZM3.2543 12.7665C3.03338 12.7665 2.8543 12.9456 2.8543 13.1665C2.8543 13.3874 3.03338 13.5665 3.2543 13.5665H13.5543C13.7752 13.5665 13.9543 13.3874 13.9543 13.1665C13.9543 12.9456 13.7752 12.7665 13.5543 12.7665H3.2543Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},he=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`topmost-icon`,ref:t,icon:me}))});he.displayName=`TopmostIcon`;let ge={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 17 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M7.46855 2.83731C7.46855 2.61639 7.64764 2.4373 7.86855 2.4373H13.8603C14.0812 2.4373 14.2603 2.61639 14.2603 2.8373V9.5049C14.2603 9.72581 14.0812 9.90489 13.8603 9.90489H12.866C12.5346 9.90489 12.266 10.1735 12.266 10.5049C12.266 10.8363 12.5346 11.1049 12.866 11.1049H13.8603C14.7439 11.1049 15.4603 10.3886 15.4603 9.5049V2.8373C15.4603 1.95365 14.7439 1.2373 13.8603 1.2373H7.86855C6.9849 1.2373 6.26855 1.95365 6.26855 2.83731V3.48688C6.26855 3.81825 6.53718 4.08688 6.86855 4.08688C7.19993 4.08688 7.46855 3.81825 7.46855 3.48688V2.83731Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M3.19888 5.56299C2.31522 5.56299 1.59888 6.27933 1.59888 7.16299V13.163C1.59888 14.0466 2.31522 14.763 3.19888 14.763H9.19888C10.0825 14.763 10.7989 14.0466 10.7989 13.163V7.16299C10.7989 6.27933 10.0825 5.56299 9.19888 5.56299H3.19888ZM2.79888 7.16299C2.79888 6.94207 2.97796 6.76299 3.19888 6.76299H9.19888C9.41979 6.76299 9.59888 6.94207 9.59888 7.16299V13.163C9.59888 13.3839 9.41979 13.563 9.19888 13.563H3.19888C2.97796 13.563 2.79888 13.3839 2.79888 13.163V7.16299Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},_e=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`ungroup-icon`,ref:t,icon:ge}))});_e.displayName=`UngroupIcon`;let ve={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`colorChannel1`,d:`M11.0363 12.2367V14.0367C11.0363 14.3681 11.3049 14.6367 11.6363 14.6367C11.9676 14.6367 12.2363 14.3681 12.2363 14.0367V12.2367H14.0364C14.3677 12.2367 14.6364 11.9681 14.6364 11.6367C14.6364 11.3054 14.3677 11.0367 14.0364 11.0367H12.2363V9.23672C12.2363 8.90535 11.9676 8.63672 11.6363 8.63672C11.3049 8.63672 11.0363 8.90535 11.0363 9.23672V11.0367H9.23635C8.90498 11.0367 8.63635 11.3054 8.63635 11.6367C8.63635 11.9681 8.90498 12.2367 9.23635 12.2367H11.0363Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M2.56365 1.36377C1.90091 1.36377 1.36365 1.90103 1.36365 2.56377V6.16377C1.36365 6.82651 1.90091 7.36377 2.56365 7.36377H6.16365C6.82639 7.36377 7.36365 6.82651 7.36365 6.16377V2.56377C7.36365 1.90103 6.82639 1.36377 6.16365 1.36377H2.56365ZM6.16365 2.56377H2.56365L2.56365 6.16377H6.16365V2.56377Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M2.56365 8.63647C1.90091 8.63647 1.36365 9.17373 1.36365 9.83647V13.4365C1.36365 14.0992 1.90091 14.6365 2.56365 14.6365H6.16365C6.82639 14.6365 7.36365 14.0992 7.36365 13.4365V9.83647C7.36365 9.17373 6.82639 8.63647 6.16365 8.63647H2.56365ZM6.16365 9.83647H2.56365L2.56365 13.4365H6.16365V9.83647Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M9.83635 7.36377C9.17361 7.36377 8.63635 6.82651 8.63635 6.16377V2.56377C8.63635 1.90103 9.17361 1.36377 9.83635 1.36377H13.4364C14.0991 1.36377 14.6364 1.90103 14.6364 2.56377V6.16377C14.6364 6.82651 14.0991 7.36377 13.4364 7.36377H9.83635ZM9.83635 6.16377V2.56377L13.4364 2.56377V6.16377H9.83635Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},ye=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`autofill-double-icon`,ref:t,icon:ve}))});ye.displayName=`AutofillDoubleIcon`;let be=e=>{let t=e.get(n.IDrawingManagerService);return new o.Observable(e=>{let n=t=>{if(!t||t.length===0||t.length<2)return e.next(!0);e.next(!1)},r=t.focus$.subscribe(t=>{if(!t||t.length===0)return e.next(!0);n(t)});return n(t.getFocusDrawings()),()=>r.unsubscribe()})},xe=`contextMenu.drawing-align`;function Se(e){return{id:xe,type:a.MenuItemType.SUBITEMS,icon:`HorizontallyIcon`,title:`image-panel.align.title`,hidden$:be(e)}}function Ce(){return{id:d.id,type:a.MenuItemType.BUTTON,icon:`LeftJustifyingIcon`,title:`image-panel.align.left`}}function we(){return{id:f.id,type:a.MenuItemType.BUTTON,icon:`HorizontallyIcon`,title:`image-panel.align.center`}}function Te(){return{id:p.id,type:a.MenuItemType.BUTTON,icon:`RightJustifyingIcon`,title:`image-panel.align.right`}}function Ee(){return{id:m.id,type:a.MenuItemType.BUTTON,icon:`AlignTopIcon`,title:`image-panel.align.top`}}function De(){return{id:h.id,type:a.MenuItemType.BUTTON,icon:`VerticalCenterIcon`,title:`image-panel.align.middle`}}function Oe(){return{id:g.id,type:a.MenuItemType.BUTTON,icon:`AlignBottomIcon`,title:`image-panel.align.bottom`}}function ke(){return{id:_.id,type:a.MenuItemType.BUTTON,icon:`HorizontallyIcon`,title:`image-panel.align.horizon`}}function Ae(){return{id:v.id,type:a.MenuItemType.BUTTON,icon:`VerticalCenterIcon`,title:`image-panel.align.vertical`}}let je=`contextMenu.drawing-arrange`;function Me(){return{id:je,type:a.MenuItemType.SUBITEMS,icon:`TopmostIcon`,title:`image-panel.arrange.title`}}function Ne(){return{id:b.id,type:a.MenuItemType.BUTTON,icon:`TopmostIcon`,title:`image-panel.arrange.front`}}function Pe(){return{id:x.id,type:a.MenuItemType.BUTTON,icon:`MoveUpIcon`,title:`image-panel.arrange.forward`}}function Fe(){return{id:S.id,type:a.MenuItemType.BUTTON,icon:`BottomIcon`,title:`image-panel.arrange.back`}}function Ie(){return{id:C.id,type:a.MenuItemType.BUTTON,icon:`MoveDownIcon`,title:`image-panel.arrange.backward`}}let Le=(e,r)=>{let i=e.get(n.IDrawingManagerService);return new o.Observable(e=>{let n=n=>{if(!n||n.length===0)return e.next(!0);if(r===`group`){if(n.length<2||!n.every(e=>w.includes(e.drawingType)))return e.next(!0)}else if(r===`unGroup`){if(n.filter(e=>e.drawingType===t.DrawingTypeEnum.DRAWING_GROUP).length===0)return e.next(!0)}else if(!n.every(e=>w.includes(e.drawingType)))return e.next(!0);e.next(!1)},a=i.focus$.subscribe(t=>{if(!t||t.length===0)return e.next(!0);n(t)});return n(i.getFocusDrawings()),()=>a.unsubscribe()})},Re=`contextMenu.drawing-group`;function ze(e){return{id:Re,type:a.MenuItemType.SUBITEMS,icon:`GroupIcon`,title:`image-panel.group.title`,hidden$:Le(e)}}function Be(e){return{id:T.id,type:a.MenuItemType.BUTTON,icon:`GroupIcon`,title:`image-panel.group.group`,disabled$:Le(e,`group`)}}function Ve(e){return{id:E.id,type:a.MenuItemType.BUTTON,icon:`UngroupIcon`,title:`image-panel.group.unGroup`,disabled$:Le(e,`unGroup`)}}let He={[a.ContextMenuPosition.DRAWING]:{[a.ContextMenuGroup.OTHERS]:{[Re]:{order:1,menuItemFactory:ze,[T.id]:{order:0,menuItemFactory:Be},[E.id]:{order:1,menuItemFactory:Ve}},[je]:{order:2,menuItemFactory:Me,[b.id]:{order:0,menuItemFactory:Ne},[x.id]:{order:1,menuItemFactory:Pe},[S.id]:{order:2,menuItemFactory:Fe},[C.id]:{order:3,menuItemFactory:Ie}},[xe]:{order:3,menuItemFactory:Se,[d.id]:{order:0,menuItemFactory:Ce},[f.id]:{order:1,menuItemFactory:we},[p.id]:{order:2,menuItemFactory:Te},[m.id]:{order:3,menuItemFactory:Ee},[h.id]:{order:4,menuItemFactory:De},[g.id]:{order:5,menuItemFactory:Oe},[_.id]:{order:6,menuItemFactory:ke},[v.id]:{order:7,menuItemFactory:Ae}}}}},Ue=`COMPONENT_IMAGE_POPUP_MENU`;function We(e){var n;let{popup:r}=e,o=r==null||(n=r.extraProps)==null?void 0:n.menuItems;if(!o)return null;let l=(0,a.useDependency)(t.ICommandService),u=(0,a.useDependency)(t.LocaleService),[d,f]=(0,i.useState)(!1),[p,m]=(0,i.useState)(!1),h=()=>{m(!0)},g=()=>{m(!1)},_=e=>{f(e)},v=e=>{l.executeCommand(e.commandId,e.commandParams),f(!1)},y=d||p;return(0,c.jsx)(`div`,{onMouseEnter:h,onMouseLeave:g,children:(0,c.jsx)(s.DropdownMenu,{align:`start`,items:o.filter(e=>!e.disable).map(e=>({type:`item`,children:u.t(e.label),onSelect:()=>v(e)})),open:d,onOpenChange:_,children:(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-flex univer-items-center univer-gap-2 univer-rounded univer-p-1 hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-800`,s.borderClassName,{"univer-bg-gray-100 dark:!univer-bg-gray-800":d,"univer-bg-white dark:!univer-bg-gray-900":!d}),children:[(0,c.jsx)(ye,{className:`univer-fill-primary-600 univer-text-gray-900 dark:!univer-text-white`}),y&&(0,c.jsx)(le,{className:`dark:!univer-text-white`})]})})})}function V(e,t){return function(n,r){t(n,r,e)}}function H(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let U=class extends t.Disposable{constructor(e,t,n){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._init()}_init(){this._initMenus(),this._initCommands(),this._initComponents()}_initMenus(){this._menuManagerService.mergeMenu(He)}_initCommands(){[D,O,j,u,d,f,p,m,h,g,_,v,A,T,E,y,b,x,S,C].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initComponents(){[[Ue,We],[`BottomIcon`,re],[`GroupIcon`,se],[`MoveDownIcon`,de],[`MoveUpIcon`,pe],[`TopmostIcon`,he],[`UngroupIcon`,_e]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}};U=H([V(0,(0,t.Inject)(a.ComponentManager)),V(1,t.ICommandService),V(2,a.IMenuManagerService)],U);function W(e,n){let r=[];return e.forEach(e=>{let{oKey:i,left:a,top:o,height:s,width:c,angle:l}=e,u=n.getDrawingOKey(i);if(u==null)return r.push(null),!0;let{unitId:d,subUnitId:f,drawingId:p,drawingType:m}=u,h={unitId:d,subUnitId:f,drawingId:p,drawingType:m,transform:{left:a,top:o,height:s,width:c,angle:l}};m===t.DrawingTypeEnum.DRAWING_IMAGE&&(h.srcRect=e.srcRect),r.push(h)}),r}function G(e){"@babel/helpers - typeof";return G=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},G(e)}function Ge(e,t){if(G(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(G(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ke(e){var t=Ge(e,`string`);return G(t)==`symbol`?t:t+``}function K(e,t,n){return(t=Ke(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let q=class extends t.Disposable{constructor(e,t,n,r){super(),this._currentUniverService=e,this._commandService=t,this._renderManagerService=n,this._drawingManagerService=r,K(this,`_sceneListenerOnDrawingMap`,new WeakSet),this._initialize()}dispose(){super.dispose()}_initialize(){this._recoveryImages(),this._drawingAddListener(),this._drawingRemoveListener(),this._drawingUpdateListener(),this._commandExecutedListener(),this._drawingArrangeListener(),this._drawingGroupListener(),this._drawingRefreshListener(),this._drawingVisibleListener()}_recoveryImages(){let e=this._drawingManagerService.drawingManagerData,t=N(this._currentUniverService);if(t==null)return;let{unitId:n,subUnitId:r}=t;Object.keys(e).forEach(t=>{Object.keys(e[t]).forEach(i=>{let a=e[t][i].data;a==null||t!==n||i!==r||Object.keys(a).forEach(e=>{a[e]&&this._insertDrawing([{unitId:t,subUnitId:i,drawingId:e}])})})})}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===u.id){let t=e.params;if(t==null)return;this._drawingAlign(t)}}))}_drawingGroupListener(){this.disposeWithMe(this._drawingManagerService.group$.subscribe(e=>{this._groupDrawings(e)})),this.disposeWithMe(this._drawingManagerService.ungroup$.subscribe(e=>{this._ungroupDrawings(e)}))}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;return n==null?null:{scene:n,transformer:n.getTransformerByCreate()}}_groupDrawings(e){e.forEach(e=>{this._groupDrawing(e)})}_groupDrawing(e){let{parent:t,children:i}=e,{unitId:a,subUnitId:o,drawingId:s}=t,c=this._getSceneAndTransformerByDrawingSearch(t.unitId);if(c==null)return;let{scene:l,transformer:u}=c;this._commandService.syncExecuteCommand(O.id);let d=[];if(i.forEach(e=>{let t=(0,n.getDrawingShapeKeyByDrawingSearch)(e),i=l.getObjectIncludeInGroup(t);if(i==null||d.includes(i))return;d.push(i);let{transform:a}=e;a!=null&&(i.classType===r.RENDER_CLASS_TYPE.GROUP?i.transformByState({left:a.left,top:a.top}):i.transformByState(a))}),d.length===0)return;let f=new r.DrawingGroupObject((0,n.getDrawingShapeKeyByDrawingSearch)({unitId:a,subUnitId:o,drawingId:s}));l.addObject(f,r.DRAWING_OBJECT_LAYER_INDEX).attachTransformerTo(f),f.addObjects(...d),t.groupBaseBound&&f.setBaseBound(t.groupBaseBound),t.groupId&&(f.isInGroup=!0,M({drawingId:t.groupId,unitId:a,subUnitId:o},f,l,this._drawingManagerService)),t.transform&&f.transformByState({left:t.transform.left,top:t.transform.top,width:t.transform.width,height:t.transform.height,angle:t.transform.angle}),u.clearSelectedObjects(),u.setSelectedControl(f)}_ungroupDrawings(e){e.forEach(e=>{this._ungroupDrawing(e)})}_ungroupDrawing(e){let{parent:t,children:i}=e,a=this._getSceneAndTransformerByDrawingSearch(t.unitId);if(a==null)return;let{scene:o,transformer:s}=a;i.forEach(e=>{let t=(0,n.getDrawingShapeKeyByDrawingSearch)(e),i=o.getObjectIncludeInGroup(t);if(i==null)return!0;if(i==null)return;let{transform:a}=e;a!=null&&(i.classType===r.RENDER_CLASS_TYPE.GROUP?i.transformByState({left:a.left,top:a.top}):i.transformByState(a))});let c=(0,n.getDrawingShapeKeyByDrawingSearch)(t),l=o.getObject(c),{width:u,height:d}=l;l.getObjects().forEach(e=>{l.removeSelfObjectAndTransform(e.oKey,u,d)}),l.dispose(),s.clearSelectedObjects()}_drawingAlign(e){let{alignType:t}=e,n=e.drawings||this._drawingManagerService.getFocusDrawings();if(t===l.default)return;let r=[],i=1/0,a=1/0,o=-1/0,s=-1/0,c=0;n.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:l,drawingType:u}=e,d=this._drawingManagerService.getDrawingByParam({unitId:t,subUnitId:n,drawingId:l});if(d==null||d.transform==null)return;r.push({unitId:t,subUnitId:n,drawingId:l,drawingType:u,transform:d.transform});let{left:f=0,top:p=0,width:m=0,height:h=0}=d.transform;i=Math.min(i,f),a=Math.min(a,p),o=Math.max(o,f+m),s=Math.max(s,p+h),c++}),c!==0&&(this._sortDrawingTransform(r,t),this._applyAlignType(r,t,i,a,o,s,c))}_applyAlignType(e,t,n,r,i,a,o){let s=Math.round((i-n)/o*10)/10,c=Math.round((a-r)/o*10)/10,u=[],d=this._getSceneAndTransformerByDrawingSearch(e[0].unitId);if(d==null)return;let{scene:f,transformer:p}=d;e.forEach((e,o)=>{let{unitId:d,subUnitId:f,drawingId:p,transform:m,drawingType:h}=e,{left:g=0,top:_=0,width:v=0,height:y=0}=m,b=g,x=_;switch(t){case l.left:b=n;break;case l.center:b=n+(i-n)/2-v/2;break;case l.right:b=i-v;break;case l.top:x=r;break;case l.middle:x=r+(a-r)/2-y/2;break;case l.bottom:x=a-y;break;case l.horizon:b=n+s*o;break;case l.vertical:x=r+c*o;break;default:break}(b!==g||x!==_)&&u.push({unitId:d,subUnitId:f,drawingId:p,drawingType:h,transform:{left:b,top:x}})}),this._drawingManagerService.featurePluginUpdateNotification(u),p.refreshControls().changeNotification()}_sortDrawingTransform(e,t){e.sort((e,n)=>{let r=e.transform,i=n.transform,{left:a=0,top:o=0,width:s=0,height:c=0}=r,{left:u=0,top:d=0,width:f=0,height:p=0}=i;switch(t){case l.left:return a-u;case l.center:return a+s/2-(u+f/2);case l.right:return a+s-(u+f);case l.top:return o-d;case l.middle:return o+c/2-(d+p/2);case l.bottom:return o+c-(d+p);case l.horizon:return a+s/2-(u+f/2);case l.vertical:return o+c/2-(d+p/2);default:return 0}})}_drawingArrangeListener(){this.disposeWithMe(this._drawingManagerService.order$.subscribe(e=>{this._drawingArrange(e)}))}_drawingArrange(e){let{unitId:t,subUnitId:r,drawingIds:i}=e,a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{scene:o}=a;i.forEach(e=>{let i=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:r,drawingId:e}),a=o.fuzzyMathObjects(i,!0);if(a==null||a.length===0)return;let s=this._drawingManagerService.getDrawingOrder(t,r).indexOf(e);for(let e of a)e.setProps({zIndex:s}),e.makeDirty()})}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{this._insertDrawing(e)}))}_insertDrawing(e){let t=[];e.forEach(e=>{let{unitId:n}=e;if(this._drawingManagerService.getDrawingByParam(e)==null)return;let r=this._getSceneAndTransformerByDrawingSearch(n);if(r==null)return;let{scene:i}=r;t.includes(i)||t.push(i)}),t.forEach(e=>{this._sceneListenerOnDrawingMap.has(e)||(this._addListenerOnDrawing(e),this._sceneListenerOnDrawingMap.add(e))})}_drawingRemoveListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:r,drawingId:i}=e,a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{scene:o}=a,s=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:r,drawingId:i}),c=o.fuzzyMathObjects(s,!0);if(c.length>0){var l;for(let e of c)e.dispose();(l=o.getTransformer())==null||l.clearSelectedObjects()}})}))}_drawingUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{var t;let{unitId:r,subUnitId:i,drawingId:a}=e,o=this._drawingManagerService.getDrawingByParam(e);if(o==null)return;let{transform:s,drawingType:c}=o,l=this._getSceneAndTransformerByDrawingSearch(r);if(l==null)return;let{scene:u,transformer:d}=l;if(s==null)return!0;let{left:f=0,top:p=0,width:m=0,height:h=0,angle:g=0,flipX:_=!1,flipY:v=!1,skewX:y=0,skewY:b=0}=s,x=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:r,subUnitId:i,drawingId:a}),S=u.getObject(x);if(S==null)return!0;S.transformByState({left:f,top:p,width:m,height:h,angle:g,flipX:_,flipY:v,skewX:y,skewY:b}),(t=u.getTransformer())==null||t.debounceRefreshControls()})}))}_drawingRefreshListener(){this.disposeWithMe(this._drawingManagerService.refreshTransform$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:r,drawingId:i}=e,a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let o=this._drawingManagerService.getDrawingByParam(e);if(o==null)return;let{transform:s}=o,{scene:c}=a,l=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:r,drawingId:i}),u=c.getObject(l);if(u==null||s==null)return!0;let{left:d=0,top:f=0,width:p=0,height:m=0,angle:h=0,flipX:g=!1,flipY:_=!1,skewX:v=0,skewY:y=0}=s;u.transformByState({left:d,top:f,width:p,height:m,angle:h,flipX:g,flipY:_,skewX:v,skewY:y})})}))}_drawingVisibleListener(){this.disposeWithMe(this._drawingManagerService.visible$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:r,drawingId:i,visible:a}=e,o=this._getSceneAndTransformerByDrawingSearch(t);if(o==null)return;let{scene:s}=o,c=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:r,drawingId:i}),l=s.getObject(c);if(l==null)return!0;a?l.show():l.hide()})}))}_filterUpdateParams(e,n){return e.filter((e,r)=>{if(e==null)return!1;let{transform:i}=e;return(0,t.checkIfMove)(i,n==null?void 0:n[r])})}_addListenerOnDrawing(e){let i=e.getTransformerByCreate(),a=null;this.disposeWithMe((0,t.toDisposable)(i.changeStart$.subscribe(e=>{let{objects:t}=e,i=Array.from(t.values()),o=[];a=i.map(e=>{let{left:t,top:n,height:i,width:a,angle:s,oKey:c,isInGroup:l}=e,u=this._drawingManagerService.getDrawingOKey(c);if(l||e instanceof r.Group){let t=e.ancestorGroup;if(t==null&&e instanceof r.Group&&(t=e),t==null)return null;let n=this._drawingManagerService.getDrawingOKey(t.oKey);if(n){let{unitId:e,subUnitId:r,drawingId:i}=n;o.push({unitId:e,subUnitId:r,drawingId:i});let{left:a,top:s,height:c,width:l,angle:u}=t;return{left:a,top:s,height:c,width:l,angle:u}}}else if(u!=null){let{unitId:e,subUnitId:r,drawingId:c}=u;return o.push({unitId:e,subUnitId:r,drawingId:c}),{left:t,top:n,height:i,width:a,angle:s}}return null}).filter(e=>e!=null),o.length>0?this._commandService.syncExecuteCommand(n.SetDrawingSelectedOperation.id,o):this._commandService.syncExecuteCommand(n.SetDrawingSelectedOperation.id,[])}))),this.disposeWithMe((0,t.toDisposable)(i.changeEnd$.subscribe(e=>{let{objects:t}=e,n=this._filterUpdateParams(W(t,this._drawingManagerService),a);n.length>0&&this._drawingManagerService.featurePluginUpdateNotification(n)})))}};q=H([V(0,t.IUniverInstanceService),V(1,t.ICommandService),V(2,r.IRenderManagerService),V(3,n.IDrawingManagerService)],q);var J=function(e){return e[e.RECT=0]=`RECT`,e[e.PATH=1]=`PATH`,e}(J||{}),Y=class extends r.Shape{constructor(e,t){t==null&&(t={}),t.transformerConfig={keepRatio:!1,isCropper:!0,anchorFill:`rgb(0, 0, 0)`,anchorStroke:`rgb(255, 255, 255)`,anchorSize:24},super(e,t),K(this,`_srcRect`,void 0),K(this,`_prstGeom`,void 0),K(this,`_applyTransform`,void 0),K(this,`_dragPadding`,8),K(this,`_cacheCanvas`,void 0),t!=null&&t.srcRect&&(this._srcRect=t.srcRect),t!=null&&t.prstGeom&&(this._prstGeom=t.prstGeom),t!=null&&t.applyTransform&&(this._applyTransform=t.applyTransform),t!=null&&t.dragPadding&&(this._dragPadding=t.dragPadding),this._applyProps()}refreshSrcRect(e,t){this._srcRect=e,this._applyTransform=t,this._applyProps()}get srcRect(){return this._srcRect}dispose(){var e;super.dispose(),(e=this._cacheCanvas)==null||e.dispose(),this._srcRect=null}isHit(e){let t=this.getInverseCoord(e);return t.x>=-this.strokeWidth/2&&t.x<=this.width+this.strokeWidth/2&&t.y>=-this.strokeWidth/2&&t.y<=this.height+this.strokeWidth/2&&!this._inSurround(t)}_inSurround(e){let t=this._dragPadding;return e.x>=t-this.strokeWidth/2&&e.x<=this.width+this.strokeWidth/2-t&&e.y>=t-this.strokeWidth/2&&e.y<=this.height+this.strokeWidth/2-t}render(e,t){return this.visible?(e.save(),this._draw(e),e.restore(),this.makeDirty(!1),this):(this.makeDirty(!1),this)}_draw(e){var t,n;let{width:i,height:a}=this.getScene().getEngine();this._initialCacheCanvas(),(t=this._cacheCanvas)==null||t.clear();let o=(n=this._cacheCanvas)==null?void 0:n.getContext();o!=null&&(o.save(),r.Rect.drawWith(o,{left:0,top:0,width:i,height:a,fill:`rgba(0, 0, 0, 0.5)`}),o.setTransform(e.getTransform()),this._clipForApplyObject(o),this._applyCache(e),o.restore())}_clipForApplyObject(e){let t=J.RECT;if(this._prstGeom!=null&&(t=J.PATH),e.globalCompositeOperation=`destination-out`,e.beginPath(),t===J.RECT){let t=this.transform.getMatrix();e.transform(t[0],t[1],t[2],t[3],t[4],t[5]),e.rect(0,0,this.width,this.height),e.fill()}}_applyProps(){if(this._applyTransform==null)return;let e=0,t=0,n=0,r=0,{left:i=0,top:a=0,width:o=0,height:s=0,angle:c}=this._applyTransform;if(this._srcRect!=null){let{left:i=0,top:a=0,right:o=0,bottom:s=0}=this._srcRect;e=i,t=a,n=o,r=s}let l=i+e,u=a+t;this.transformByState({left:l,top:u,width:i+o-n-l,height:a+s-r-u,angle:c})}_applyCache(e){if(!e||this._cacheCanvas==null)return;let t=this._cacheCanvas.getContext();t.save(),e.save(),e.setTransform(1,0,0,1,0,0),t.setTransform(1,0,0,1,0,0),e.drawImage(this._cacheCanvas.getCanvasEle(),0,0),e.restore(),t.restore()}_initialCacheCanvas(){if(this._cacheCanvas!=null)return;let e=this.getScene();if(e==null)return;this._cacheCanvas=new r.Canvas;let t=e.getEngine();this._cacheCanvas.setSize(t.width,t.height),t.onTransformChange$.subscribeEvent(()=>{var e;(e=this._cacheCanvas)==null||e.setSize(t.width,t.height),this.makeDirty(!0)})}};let X=class extends t.Disposable{constructor(e,t,n,r,i,a){super(),this._commandService=e,this._drawingManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._messageService=i,this._localeService=a,K(this,`_sceneListenerOnImageMap`,new WeakSet),this._init()}_init(){this._initOpenCrop(),this._initCloseCrop(),this._initAutoCrop()}_initAutoCrop(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==A.id)return;let t=e.params;if(t==null)return;let{cropType:i}=t,a=this._drawingManagerService.getFocusDrawings();if(a.length!==1)return;let{unitId:o,subUnitId:c,drawingId:l}=a[0],u=this._renderManagerService.getRenderById(o),d=u==null?void 0:u.scene;if(d==null)return!0;this._searchCropObject(d)!=null&&this._commandService.syncExecuteCommand(O.id,{isAuto:!0});let f=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:o,subUnitId:c,drawingId:l}),p=d.getObject(f);if(!(p instanceof r.Image)){this._messageService.show({type:s.MessageType.Error,content:this._localeService.t(`image-cropper.error`)});return}p!=null&&(this._updateCropperObject(i,p),this._commandService.executeCommand(D.id,{unitId:o,subUnitId:c,drawingId:l}))}))}_calculateSrcRectByRatio(e,t,n,i,a,o){let s=n/i,c=a/o,l=n,u=i;s>c?l=i*c:u=n/c;let d=(n-l)/2,f=(i-u)/2;return{left:(0,r.precisionTo)(d,1),top:(0,r.precisionTo)(f,1),right:(0,r.precisionTo)(n-(d+l),1),bottom:(0,r.precisionTo)(i-(f+u),1)}}_updateCropperObject(e,t){let{left:n,top:r,width:i,height:a}=t.calculateTransformWithSrcRect(),o;switch(e){case k.R1_1:o=this._calculateSrcRectByRatio(n,r,i,a,1,1);break;case k.R16_9:o=this._calculateSrcRectByRatio(n,r,i,a,16,9);break;case k.R9_16:o=this._calculateSrcRectByRatio(n,r,i,a,9,16);break;case k.R5_4:o=this._calculateSrcRectByRatio(n,r,i,a,5,4);break;case k.R4_5:o=this._calculateSrcRectByRatio(n,r,i,a,4,5);break;case k.R4_3:o=this._calculateSrcRectByRatio(n,r,i,a,4,3);break;case k.R3_4:o=this._calculateSrcRectByRatio(n,r,i,a,3,4);break;case k.R3_2:o=this._calculateSrcRectByRatio(n,r,i,a,3,2);break;case k.R2_3:o=this._calculateSrcRectByRatio(n,r,i,a,2,3);break;case k.FREE:default:break}if(o==null)return;t.setSrcRect(o);let{left:s=0,top:c=0,bottom:l=0,right:u=0}=o;t.transformByStateCloseCropper({left:n+s,top:r+c,width:i-u-s,height:a-l-c})}_initOpenCrop(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==D.id)return;let t=e.params;if(t==null)return;let{unitId:i,subUnitId:a,drawingId:o}=t,c=this._renderManagerService.getRenderById(i),l=c==null?void 0:c.scene;if(l==null)return!0;if(this._sceneListenerOnImageMap.has(l)||(this._addListenerOnImage(l),this._sceneListenerOnImageMap.add(l)),this._drawingManagerService.getDrawingByParam({unitId:i,subUnitId:a,drawingId:o})==null)return;let u=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:i,subUnitId:a,drawingId:o}),d=l.getObject(u);if(d==null)return;if(!(d instanceof r.Image)){this._messageService.show({type:s.MessageType.Error,content:this._localeService.t(`image-cropper.error`)});return}let f=l.getTransformer();f==null||f.clearControls();let p=new Y(`${u}-crop`,{srcRect:d.srcRect,prstGeom:d.prstGeom,applyTransform:d.calculateTransformWithSrcRect()});l.addObject(p,d.getLayerIndex()+1).attachTransformerTo(p),f==null||f.createControlForCopper(p),this._addHoverForImageCopper(p),d.openRenderByCropper(),f==null||f.refreshControls(),p.makeDirty(!0),this._commandService.syncExecuteCommand(n.SetDrawingSelectedOperation.id,[{unitId:i,subUnitId:a,drawingId:o}])}))}_searchCropObject(e){let t=e.getAllObjectsByOrder();for(let e of t)if(e instanceof Y)return e}_initCloseCrop(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==O.id)return;let t=this._univerInstanceService.getFocusedUnit();if(t==null)return;let n=t.getUnitId(),r=this._renderManagerService.getRenderById(n),i=r==null?void 0:r.scene;if(i==null)return!0;let a=this._searchCropObject(i);if(a==null)return;let o=this._getApplyObjectByCropObject(a);if(o==null)return;let s=i.getTransformerByCreate();s.detachFrom(a),s.clearCopperControl();let c=this._getSrcRectByTransformState(o,a),l=this._drawingManagerService.getDrawingOKey(o.oKey);if(l!=null){let{left:e,top:t,height:n,width:r}=a;this._drawingManagerService.featurePluginUpdateNotification([{...l,transform:{...l.transform,left:e,top:t,height:n,width:r},srcRect:c.srcRectAngle}])}o.setSrcRect({...c.srcRectAngle}),o.closeRenderByCropper(),o.makeDirty(!0),a==null||a.dispose()}));let e=this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,o.switchMap)(e=>e?e.activeSheet$:(0,o.of)(null)));this.disposeWithMe(e.subscribe(()=>{this._commandService.syncExecuteCommand(O.id)}))}_getApplyObjectByCropObject(e){let t=e.oKey,n=t.slice(0,t.length-5),r=e.getScene();if(!r)return null;let i=r.getObject(n);return i==null?null:i}_addListenerOnImage(e){let n=e.getTransformerByCreate(),r=null;this.disposeWithMe(n.changeStart$.subscribe(e=>{let{objects:t}=e,i=t.values().next().value;if(i==null||!(i instanceof Y))return;let{left:a,top:o,height:s,width:c,angle:l}=i;r={left:a,top:o,height:s,width:c,angle:l},n.clearCopperControl()})),this.disposeWithMe(n.changeEnd$.subscribe(e=>{let{objects:i}=e,a=i.values().next().value;if(a==null||!(a instanceof Y))return;let{left:o,top:s,height:c,width:l,angle:u}=a;if(!(0,t.checkIfMove)({left:o,top:s,height:c,width:l,angle:u},r))return;let d=this._getApplyObjectByCropObject(a);if(d==null)return;let f=this._getSrcRectByTransformState(d,a);a.refreshSrcRect(f.srcRect,d.getState()),n.createControlForCopper(a)})),this._endCropListener(e)}_addHoverForImageCopper(e){this.disposeWithMe(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=r.CURSOR_TYPE.MOVE})),this.disposeWithMe(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=r.CURSOR_TYPE.DEFAULT}))}_endCropListener(e){let t=e.getTransformerByCreate();this.disposeWithMe(t.clearControl$.subscribe(e=>{e===!0&&this._commandService.syncExecuteCommand(O.id)}))}_getSrcRectByTransformState(e,t){let{left:n,top:i,height:a,width:o,strokeWidth:s,angle:c}=t,{left:l,top:u,width:d,height:f,angle:p,strokeWidth:m}=e,h=n-l,g=i-u,_={left:h,top:g,right:d-h-o,bottom:f-g-a},v={..._};if(p!==0){let e=new r.Vector2(n+o/2,i+a/2),t=new r.Vector2(d/2+l,f/2+u),s=new r.Vector2(l,u);s.rotateByPoint((0,r.degToRad)(p),t);let c=s.clone();c.rotateByPoint((0,r.degToRad)(-p),e);let m=n-c.x,h=i-c.y;v.left=m,v.top=h,v.right=d-m-o,v.bottom=f-h-a}return{srcRect:_,srcRectAngle:v}}};X=H([V(0,t.ICommandService),V(1,n.IDrawingManagerService),V(2,r.IRenderManagerService),V(3,t.IUniverInstanceService),V(4,a.IMessageService),V(5,(0,t.Inject)(t.LocaleService))],X);var Z=class extends t.Disposable{constructor(){super(),K(this,`_clipDelegate`,null),K(this,`_canUseShapeClip$`,new o.BehaviorSubject(!1)),K(this,`canUseShapeClip$`,this._canUseShapeClip$.asObservable())}setCanUseShapeClip(e){this._canUseShapeClip$.next(e)}registerClipDelegate(e){return this._clipDelegate=e,(0,t.toDisposable)(()=>{this._clipDelegate===e&&(this._clipDelegate=null)})}applyShapeClip(e,t,n,r,i){return this._clipDelegate?this._clipDelegate(e,t,n,r,i):!1}dispose(){this._clipDelegate=null,this._canUseShapeClip$.complete(),super.dispose()}};let Q=class{constructor(e,t,n,r,i,a){this._drawingManagerService=e,this._imageIoService=t,this._galleryService=n,this._urlImageService=r,this._univerInstanceService=i,this._drawingImageClipService=a}async renderImages(e,i){let{transform:a,drawingType:o,source:s,imageSourceType:c,srcRect:l,prstGeom:u,groupId:d,unitId:f,subUnitId:p,drawingId:m,isMultiTransform:h,transforms:g,adjustValues:_}=e;if(o!==t.DrawingTypeEnum.DRAWING_IMAGE||!this._drawingManagerService.getDrawingVisible()||this._univerInstanceService.getUnitType(f)===t.UniverInstanceType.UNIVER_SHEET&&p!==this._getActiveSheetId()||a==null)return;let v=h&&g?g:[a],y=[];for(let e of v){let{left:t,top:a,width:o,height:g,angle:b,flipX:x,flipY:S,skewX:C,skewY:w}=e,T=v.indexOf(e),E=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:f,subUnitId:p,drawingId:m},h?T:void 0),D=i.getObject(E);if(D!=null){D.transformByState({left:t,top:a,width:o,height:g,angle:b,flipX:x,flipY:S,skewX:C,skewY:w});continue}let O=this._drawingManagerService.getDrawingOrder(f,p),k=O.indexOf(m),A={...e,zIndex:k===-1?O.length-1:k},j=this._imageIoService.getImageSourceCache(s,c),N=!1;if(j!=null)A.image=j;else if(c===n.ImageSourceType.UUID)try{A.url=await this._imageIoService.getImage(s)}catch(e){console.error(e);continue}else if(c===n.ImageSourceType.URL){try{A.url=await this._urlImageService.getImage(s)}catch(e){console.error(e),A.url=s}N=!0}else A.url=s,N=!0;if(i.getObject(E))continue;A.printable=!0;let P=new r.Image(E,A);P.setClipService(this._drawingImageClipService),N&&this._imageIoService.addImageSourceCache(s,c,P.getNative()),i.addObject(P,r.DRAWING_OBJECT_LAYER_INDEX),this._drawingManagerService.getDrawingEditable()&&i.attachTransformerTo(P),d&&M({drawingId:d,unitId:f,subUnitId:p},P,i,this._drawingManagerService),u!=null&&P.setPrstGeom(u),_!=null&&P.setPrstGeomAdjValues(_),l!=null&&P.setSrcRect(l),y.push(P)}return y}_getActiveSheetId(){var e;return(e=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null||(e=e.getActiveSheet())==null?void 0:e.getSheetId()}renderFloatDom(e,i){let{transform:a,drawingType:o,groupId:s,unitId:c,subUnitId:l,drawingId:u,isMultiTransform:d,transforms:f}=e;if(o!==t.DrawingTypeEnum.DRAWING_DOM||!this._drawingManagerService.getDrawingVisible()||a==null)return;let p=d&&f?f:[a],m=[];for(let t of p){let{left:a,top:o,width:f,height:h,angle:g,flipX:_,flipY:v,skewX:y,skewY:b}=t,x=p.indexOf(t),S=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:c,subUnitId:l,drawingId:u},d?x:void 0),C=i.getObject(S);if(C!=null){C.transformByState({left:a,top:o,width:f,height:h,angle:g,flipX:_,flipY:v,skewX:y,skewY:b});continue}let w=this._drawingManagerService.getDrawingOrder(c,l),T=w.indexOf(u),E={...t,zIndex:T===-1?w.length-1:T};if(i.getObject(S))continue;E.printable=!1;let D=new r.Rect(S,E);this._drawingManagerService.getDrawingVisible()&&(i.addObject(D,r.DRAWING_OBJECT_LAYER_INDEX),this._drawingManagerService.getDrawingEditable()&&e.allowTransform!==!1&&i.attachTransformerTo(D),s&&M({drawingId:s,unitId:c,subUnitId:l},D,i,this._drawingManagerService),m.push(D))}return m}renderDrawing(e,n){let r=this._drawingManagerService.getDrawingByParam(e);if(r!=null)switch(r.drawingType){case t.DrawingTypeEnum.DRAWING_IMAGE:return this.renderImages(r,n);default:}}previewImage(e,t,n,r){this._galleryService.open({images:[t],onOpenChange:e=>{e||this._galleryService.close()}})}_adjustImageSize(e,t,n,r){if(e<=n&&t<=r)return{width:e,height:t};let i=n/e,a=r/t,o=Math.min(i,a);return{width:Math.floor(e*o),height:Math.floor(t*o)}}};Q=H([V(0,n.IDrawingManagerService),V(1,n.IImageIoService),V(2,a.IGalleryService),V(3,t.IURLImageService),V(4,t.IUniverInstanceService),V(5,(0,t.Inject)(Z))],Q);let qe=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._commandService=e,this._renderManagerService=t,this._drawingManagerService=n,this._dialogService=r,this._imageIoService=i,this._currentUniverService=a,this._drawingRenderService=o,this._initialize()}dispose(){super.dispose()}_initialize(){this._drawingAddListener(),this._commandExecutedListener(),this._imageUpdateListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===j.id){let t=e.params;if(t==null)return;this._resetImageSize(t)}}))}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;return n==null?null:{scene:n,transformer:n.getTransformerByCreate()}}_resetImageSize(e){let r=[],i=[];e.forEach(e=>{let{unitId:a,subUnitId:o,drawingId:s}=e,c=this._getSceneAndTransformerByDrawingSearch(a);if(c==null)return;let{scene:l}=c,u=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:a,subUnitId:o,drawingId:s}),d=l.getObject(u);if(d==null)return!0;let f=this._drawingManagerService.getDrawingByParam(e);if(f==null)return!0;if(f.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE)return;d.resetSize();let{width:p,height:m}=d.getNativeSize();i.includes(l)===!1&&i.push(l),r.push({...f,transform:{...f.transform,height:m,width:p,angle:0},srcRect:null,prstGeom:null})}),this._drawingManagerService.featurePluginUpdateNotification(r),i.forEach(e=>{e.getTransformerByCreate().refreshControls().changeNotification()}),this._commandService.syncExecuteCommand(n.SetDrawingSelectedOperation.id,e)}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.pipe((0,o.bufferTime)(33),(0,o.filter)(e=>e.length>0),(0,o.map)(e=>e.flat()),(0,o.map)(e=>{let t=new Map;for(let n of e)t.set(`${n.unitId}|${n.subUnitId}|${n.drawingId}`,n);return[...t.values()]}),(0,o.filter)(e=>e.length>0)).subscribe(e=>{this._insertImages(e)}))}_insertImages(e){e.forEach(async e=>{var t;let{unitId:n,subUnitId:r}=e,i=this._getSceneAndTransformerByDrawingSearch(n),a=(t=N(this._currentUniverService,n))==null?void 0:t.subUnitId;if(i==null||a!==r)return;let o=this._drawingManagerService.getDrawingByParam(e);if(o==null)return;let s=await this._drawingRenderService.renderImages(o,i.scene);if(this._drawingManagerService.refreshTransform([o]),!(s==null||s.length===0))for(let e of s)this._addHoverForImage(e),this._addDialogForImage(e)})}_imageUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let{unitId:r,subUnitId:i,drawingId:a}=e,o=this._drawingManagerService.getDrawingByParam(e);if(o==null)return;let{transform:s,drawingType:c,srcRect:l,prstGeom:u,source:d,imageSourceType:f}=o;if(c!==t.DrawingTypeEnum.DRAWING_IMAGE)return;let p=this._getSceneAndTransformerByDrawingSearch(r);if(p==null)return;let{scene:m,transformer:h}=p;if(s==null)return!0;let g=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:r,subUnitId:i,drawingId:a}),_=m.getObject(g);if(_==null)return!0;_.setSrcRect(l),_.setPrstGeom(u),d!=null&&d.length>0&&(f===t.ImageSourceType.BASE64||f===t.ImageSourceType.URL)&&_.changeSource(d)})}))}_addHoverForImage(e){this.disposeWithMe((0,t.toDisposable)(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=r.CURSOR_TYPE.GRAB}))),this.disposeWithMe((0,t.toDisposable)(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=r.CURSOR_TYPE.DEFAULT})))}_addDialogForImage(e){this.disposeWithMe((0,t.toDisposable)(e.onDblclick$.subscribeEvent(()=>{let t=`${e.oKey}-viewer-dialog`;this._drawingRenderService.previewImage(t,e.getNative().src,e.getNativeSize().width,e.getNativeSize().height)})))}};qe=H([V(0,t.ICommandService),V(1,r.IRenderManagerService),V(2,n.IDrawingManagerService),V(3,a.IDialogService),V(4,n.IImageIoService),V(5,t.IUniverInstanceService),V(6,(0,t.Inject)(Q))],qe);let $=class extends t.Plugin{constructor(e=ee,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{menu:i,...a}=(0,t.merge)({},ee,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(I,a)}onStarting(){this._initDependencies()}onRendered(){this._injector.get(q),this._injector.get(U),this._injector.get(X),this._injector.get(qe)}_initDependencies(){[[Z],[Q],[q],[U],[X],[qe]].forEach(e=>this._injector.add(e))}};K($,`pluginName`,`UNIVER_DRAWING_UI_PLUGIN`),K($,`packageName`,P),K($,`version`,F),$=H([V(1,(0,t.Inject)(t.Injector)),V(2,t.IConfigService)],$);let Je=e=>{let n=(0,a.useDependency)(t.ICommandService),r=(0,a.useDependency)(t.LocaleService),{drawings:o,alignShow:d}=e,[f,p]=(0,i.useState)(l.default),m=[{label:r.t(`image-panel.align.default`),value:l.default},{options:[{label:r.t(`image-panel.align.left`),value:l.left},{label:r.t(`image-panel.align.center`),value:l.center},{label:r.t(`image-panel.align.right`),value:l.right}]},{options:[{label:r.t(`image-panel.align.top`),value:l.top},{label:r.t(`image-panel.align.middle`),value:l.middle},{label:r.t(`image-panel.align.bottom`),value:l.bottom}]},{options:[{label:r.t(`image-panel.align.horizon`),value:l.horizon},{label:r.t(`image-panel.align.vertical`),value:l.vertical}]}];function h(e){p(e),n.executeCommand(u.id,{alignType:e,drawings:o})}return(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-relative univer-w-full`,{"univer-hidden":!d}),children:[(0,c.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,c.jsx)(`div`,{children:r.t(`image-panel.align.title`)})}),(0,c.jsx)(`div`,{className:`univer-relative univer-mt-2.5 univer-flex univer-h-full`,children:(0,c.jsx)(`div`,{className:`univer-w-full univer-text-gray-900 dark:!univer-text-white`,children:(0,c.jsx)(s.Select,{value:f,options:m,onChange:h})})})]})},Ye=e=>{let{arrangeShow:r,drawings:o}=e,l=(0,a.useDependency)(t.LocaleService),u=(0,a.useDependency)(n.IDrawingManagerService),d=(0,a.useDependency)(t.ICommandService),f=(0,a.useDependency)(a.ComponentManager),p=f.get(`MoveUpIcon`),m=f.get(`MoveDownIcon`),h=f.get(`TopmostIcon`),g=f.get(`BottomIcon`),[_,v]=(0,i.useState)(o);(0,i.useEffect)(()=>{let e=u.focus$.subscribe(e=>{v(e)});return()=>{e.unsubscribe()}},[]);let b=e=>{d.syncExecuteCommand(y.id,{arrangeType:e,drawings:_})};return(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!r}),children:[(0,c.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,c.jsx)(`div`,{children:l.t(`image-panel.arrange.title`)})}),(0,c.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2`,children:[(0,c.jsxs)(s.Button,{onClick:()=>{b(t.ArrangeTypeEnum.forward)},children:[(0,c.jsx)(p,{}),l.t(`image-panel.arrange.forward`)]}),(0,c.jsxs)(s.Button,{onClick:()=>{b(t.ArrangeTypeEnum.backward)},children:[(0,c.jsx)(m,{}),l.t(`image-panel.arrange.backward`)]}),(0,c.jsxs)(s.Button,{onClick:()=>{b(t.ArrangeTypeEnum.front)},children:[(0,c.jsx)(h,{}),l.t(`image-panel.arrange.front`)]}),(0,c.jsxs)(s.Button,{onClick:()=>{b(t.ArrangeTypeEnum.back)},children:[(0,c.jsx)(g,{}),l.t(`image-panel.arrange.back`)]})]})]})},Xe=e=>{let o=(0,a.useDependency)(t.LocaleService),l=(0,a.useDependency)(r.IRenderManagerService),u=(0,a.useDependency)(n.IDrawingManagerService),d=(0,a.useDependency)(t.ICommandService),f=(0,a.useDependency)(a.ComponentManager),{hasGroup:p,drawings:m}=e,h=f.get(`GroupIcon`),g=f.get(`UngroupIcon`),[_,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(!0),[x,S]=(0,i.useState)(!0),C=()=>{d.syncExecuteCommand(T.id,{drawings:m})},w=()=>{d.syncExecuteCommand(E.id,{drawings:m})};return(0,i.useEffect)(()=>{let e=m[0];if(e==null)return;let{unitId:n}=e,r=l.getRenderById(n),i=r==null?void 0:r.scene;if(i==null)return;let a=i.getTransformerByCreate(),o=a.clearControl$.subscribe(e=>{e===!0&&v(!1)}),s=a.changeStart$.subscribe(e=>{let{objects:n}=e,r=W(n,u),i=r.filter(e=>(e==null?void 0:e.drawingType)===t.DrawingTypeEnum.DRAWING_GROUP),a=!1,o=!1;r.length>1&&(a=!0),i.length>0&&(o=!0),v(a||o),b(a),S(o)});return()=>{s.unsubscribe(),o.unsubscribe()}},[]),(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":p===!0&&_===!1||p===!1}),children:[(0,c.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,c.jsx)(`div`,{children:o.t(`image-panel.group.title`)})}),(0,c.jsxs)(`div`,{className:`univer-flex univer-items-center univer-justify-center univer-gap-2`,children:[(0,c.jsxs)(s.Button,{className:(0,s.clsx)({"univer-hidden":!y}),onClick:C,children:[(0,c.jsx)(h,{}),o.t(`image-panel.group.group`)]}),(0,c.jsxs)(s.Button,{className:(0,s.clsx)({"univer-hidden":!x}),onClick:w,children:[(0,c.jsx)(g,{}),o.t(`image-panel.group.unGroup`)]})]})]})},Ze=[-360,360],Qe=e=>{var o;let l=(0,a.useDependency)(t.LocaleService),u=(0,a.useDependency)(n.IDrawingManagerService),d=(0,a.useDependency)(r.IRenderManagerService),{drawings:f,transformShow:p}=e,m=f[0];if(m==null)return;let h=m.transform;if(h==null)return;let{unitId:g,subUnitId:_,drawingId:v,drawingType:y}=m,b=d.getRenderById(g),x=b==null?void 0:b.scene;if(x==null)return;let S=(o=x.getEngine())==null?void 0:o.activeScene;if(S==null)return;let C=x.getTransformerByCreate(),{width:w=0,height:T=0,left:E=0,top:D=0,angle:O=0}=h,[k,A]=(0,i.useState)(w),[j,M]=(0,i.useState)(T),[N,P]=(0,i.useState)(E),[F,I]=(0,i.useState)(D),[ee,L]=(0,i.useState)(O),[R,te]=(0,i.useState)(C.keepRatio),z=(e,t,n,r)=>{let{width:i,height:a}=S,{ancestorLeft:o,ancestorTop:s}=x,c=e,l=t,u=n,d=r;return e+o<0&&(c=-o),t+s<0&&(l=-s),u=i-c-o,u<20&&(u=20),d=a-l-s,d<20&&(d=20),e+u+o>i&&(c=i-n-o),t+d+s>a&&(l=a-r-s),{limitLeft:c,limitTop:l,limitWidth:u,limitHeight:d}},B=e=>{let{objects:t}=e,n=W(t,u);if(n.length!==1)return;let r=n[0];if(r==null)return;let{transform:i}=r;if(i==null)return;let{width:a,height:o,left:s,top:c,angle:l}=i;a!=null&&A(a),o!=null&&M(o),s!=null&&P(s),c!=null&&I(c),l!=null&&L(l)};(0,i.useEffect)(()=>{let e=[C.changeStart$.subscribe(e=>{B(e)}),C.changing$.subscribe(e=>{B(e)}),C.changeEnd$.subscribe(e=>{B(e)}),u.focus$.subscribe(e=>{if(e.length!==1)return;let t=u.getDrawingByParam(e[0]);if(t==null)return;let n=t.transform;if(n==null)return;let{width:r,height:i,left:a,top:o,angle:s}=n;r!=null&&A(r),i!=null&&M(i),a!=null&&P(a),o!=null&&I(o),s!=null&&L(s)})];return()=>{e.forEach(e=>e.unsubscribe())}},[]);let ne=(0,t.debounce)(e=>{if(e==null)return;let{limitWidth:t,limitHeight:n}=z(N,F,e,j);e=Math.min(e,t);let r={unitId:g,subUnitId:_,drawingId:v,drawingType:y,transform:{width:e}};if(R){let t=e/k*j;if(t=Math.max(t,20),t>n)return;M(t),r.transform.height=t}A(e),u.featurePluginUpdateNotification([r]),C.refreshControls().changeNotification()},300),re=(0,t.debounce)(e=>{if(e==null)return;let{limitHeight:t,limitWidth:n}=z(N,F,k,e);e=Math.min(e,t);let r={unitId:g,subUnitId:_,drawingId:v,drawingType:y,transform:{height:e}};if(R){let t=e/j*k;if(t=Math.max(t,20),t>n)return;A(t),r.transform.width=t}M(e),u.featurePluginUpdateNotification([r]),C.refreshControls().changeNotification()},300),ie=(0,t.debounce)(e=>{if(e==null)return;let{limitLeft:t}=z(e,F,k,j);e=t;let n={unitId:g,subUnitId:_,drawingId:v,drawingType:y,transform:{left:e}};P(e),u.featurePluginUpdateNotification([n]),C.refreshControls().changeNotification()},300),ae=(0,t.debounce)(e=>{if(e==null)return;let{limitTop:t}=z(N,e,k,j);e=t;let n={unitId:g,subUnitId:_,drawingId:v,drawingType:y,transform:{top:e}};I(e),u.featurePluginUpdateNotification([n]),C.refreshControls().changeNotification()},300),oe=e=>{if(e==null)return;let t={unitId:g,subUnitId:_,drawingId:v,drawingType:y,transform:{angle:e}};L(e),u.featurePluginUpdateNotification([t]),C.refreshControls().changeNotification()},se=e=>{te(e),C.keepRatio=e};return(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!p}),children:[(0,c.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,c.jsx)(`div`,{children:l.t(`image-panel.transform.title`)})}),(0,c.jsxs)(`div`,{className:`univer-grid univer-grid-cols-3 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.width`)}),(0,c.jsx)(s.InputNumber,{precision:1,value:k,min:20,onChange:e=>{ne(e)}})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.height`)}),(0,c.jsx)(s.InputNumber,{precision:1,value:j,min:20,onChange:e=>{re(e)}})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.lock`)}),(0,c.jsx)(`div`,{className:`univer-text-center`,children:(0,c.jsx)(s.Checkbox,{checked:R,onChange:se})})]})]}),(0,c.jsxs)(`div`,{className:`univer-grid univer-grid-cols-3 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.x`)}),(0,c.jsx)(s.InputNumber,{precision:1,value:N,onChange:e=>{ie(e)}})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.y`)}),(0,c.jsx)(s.InputNumber,{precision:1,value:F,onChange:e=>{ae(e)}})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.rotate`)}),(0,c.jsx)(s.InputNumber,{precision:1,value:ee,min:Ze[0],max:Ze[1],onChange:oe})]})]})]})},$e=e=>{let n=(0,a.useDependency)(t.ICommandService),r=(0,a.useDependency)(t.LocaleService),o=(0,a.useDependency)(Z),l=(0,a.useDependency)(a.ComponentManager),u=(0,a.useObservable)(o.canUseShapeClip$,!1),{drawings:d,cropperShow:f}=e;if(d[0]==null)return;let[p,m]=(0,i.useState)(k.FREE),h=(0,i.useRef)(!1),g=[{label:r.t(`image-panel.crop.mode`),value:k.FREE},{label:`1:1`,value:k.R1_1},{label:`16:9`,value:k.R16_9},{label:`9:16`,value:k.R9_16},{label:`5:4`,value:k.R5_4},{label:`4:5`,value:k.R4_5},{label:`4:3`,value:k.R4_3},{label:`3:4`,value:k.R3_4},{label:`3:2`,value:k.R3_2},{label:`2:3`,value:k.R2_3}];(0,i.useEffect)(()=>{let e=n.onCommandExecuted(e=>{if(e.id===O.id){let t=e.params;t!=null&&t.isAuto||(h.current=!1)}});return()=>{e==null||e.dispose()}},[]);function _(e){m(e),h.current&&n.executeCommand(A.id,{cropType:e})}let v=e=>{n.executeCommand(A.id,{cropType:e}),h.current=!0};return(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!f}),children:[(0,c.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,c.jsx)(`div`,{children:r.t(`image-panel.crop.title`)})}),(0,c.jsxs)(`div`,{className:`univer-flex univer-items-center univer-justify-center univer-gap-2`,children:[(0,c.jsxs)(s.Button,{onClick:()=>{v(p)},children:[(0,c.jsx)(ae,{}),r.t(`image-panel.crop.start`)]}),(0,c.jsx)(s.Select,{value:p,options:g,onChange:_})]}),u&&(()=>{let e=l.get(`sheet.image-clip.shape.picker.component`);return e?(0,c.jsx)(e,{}):null})()]})};e.AutoImageCropOperation=A,e.COMPONENT_IMAGE_POPUP_MENU=Ue,e.CancelDrawingGroupOperation=E,e.CloseImageCropOperation=O,e.DRAWING_GROUP_TYPES=w,e.DrawingCommonPanel=e=>{let o=(0,a.useDependency)(n.IDrawingManagerService),l=(0,a.useDependency)(r.IRenderManagerService),u=(0,a.useDependency)(t.LocaleService),{drawings:d,hasArrange:f=!0,hasTransform:p=!0,hasAlign:m=!0,hasCropper:h=!0,hasGroup:g=!0}=e,_=d[0];if(_==null)return;let{unitId:v}=_,y=l.getRenderById(v),b=y==null?void 0:y.scene;if(b==null)return;let x=b.getTransformerByCreate(),[S,C]=(0,i.useState)(!0),[w,T]=(0,i.useState)(!0),[E,D]=(0,i.useState)(!1),[O,k]=(0,i.useState)(!0),[A,j]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let e=x.clearControl$.subscribe(e=>{e===!0&&(C(!1),T(!1),D(!1),k(!1),j(!0))}),t=x.changeStart$.subscribe(e=>{let{objects:t}=e,n=W(t,o);n.length===0?(C(!1),T(!1),D(!1),k(!1),j(!0)):n.length===1?(C(!0),T(!0),D(!1),k(!0),j(!1)):(C(!0),T(!1),D(!0),k(!1),j(!1))}),n=o.focus$.subscribe(e=>{e.length===0?(C(!1),T(!1),D(!1),k(!1),j(!0)):e.length===1?(C(!0),T(!0),D(!1),k(!0),j(!1)):(C(!0),T(!1),D(!0),k(!1),j(!1))});return()=>{t.unsubscribe(),e.unsubscribe(),n.unsubscribe()}},[]),(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`div`,{className:(0,s.clsx)(`univer-h-full`,{"univer-hidden":!A}),children:(0,c.jsx)(`div`,{className:`univer-flex univer-h-full univer-items-center univer-justify-center`,children:(0,c.jsx)(`span`,{children:u.t(`image-panel.null`)})})}),(0,c.jsx)(Ye,{arrangeShow:f===!0?S:!1,drawings:d}),(0,c.jsx)(Qe,{transformShow:p===!0?w:!1,drawings:d}),(0,c.jsx)(Je,{alignShow:m===!0?E:!1,drawings:d}),(0,c.jsx)($e,{cropperShow:h===!0?O:!1,drawings:d}),(0,c.jsx)(Xe,{hasGroup:g,drawings:d})]})},e.DrawingImageClipService=Z,Object.defineProperty(e,`DrawingRenderService`,{enumerable:!0,get:function(){return Q}}),e.IMAGE_CLIP_SHAPE_PICKER_COMPONENT=`sheet.image-clip.shape.picker.component`,e.ImageCropperObject=Y,e.ImagePopupMenu=We,e.ImageResetSizeOperation=j,e.OpenImageCropOperation=D,e.SetDrawingAlignOperation=u,e.SetDrawingArrangeOperation=y,e.SetDrawingGroupOperation=T,Object.defineProperty(e,`UniverDrawingUIPlugin`,{enumerable:!0,get:function(){return $}}),e.getCurrentUnitInfo=N,e.getUpdateParams=W,e.insertGroupObject=M});
|
|
5
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/drawing`),require(`@univerjs/engine-render`),require(`react`),require(`@univerjs/ui`),require(`rxjs`),require(`@univerjs/design`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/drawing`,`@univerjs/engine-render`,`react`,`@univerjs/ui`,`rxjs`,`@univerjs/design`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDrawingUi={},e.UniverCore,e.UniverDrawing,e.UniverEngineRender,e.React,e.UniverUi,e.rxjs,e.UniverDesign,e.React))})(this,function(e,t,n,r,i,a,o,s,c){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let l=function(e){return e.default=`0`,e.left=`1`,e.center=`2`,e.right=`3`,e.top=`4`,e.middle=`5`,e.bottom=`6`,e.horizon=`7`,e.vertical=`8`,e}({}),u={id:`sheet.operation.set-image-align`,type:t.CommandType.OPERATION,handler:(e,t)=>!0},d={id:`sheet.operation.set-drawing-align-left`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.left})},f={id:`sheet.operation.set-drawing-align-center`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.center})},p={id:`sheet.operation.set-drawing-align-right`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.right})},m={id:`sheet.operation.set-drawing-align-top`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.top})},h={id:`sheet.operation.set-drawing-align-middle`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.middle})},g={id:`sheet.operation.set-drawing-align-bottom`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.bottom})},_={id:`sheet.operation.set-drawing-align-horizon`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.horizon})},v={id:`sheet.operation.set-drawing-align-vertical`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(u.id,{alignType:l.vertical})},y={id:`drawing.operation.set-drawing-arrange`,type:t.CommandType.OPERATION,handler:(e,t)=>{let r=e.get(n.IDrawingManagerService),{arrangeType:i}=t,a=t.drawings||r.getFocusDrawings(),{unitId:o,subUnitId:s}=a[0],c=a.map(e=>e.drawingId);return r.featurePluginOrderUpdateNotification({unitId:o,subUnitId:s,drawingIds:c,arrangeType:i}),!0}},b={id:`drawing.operation.set-drawing-arrange-front`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(y.id,{arrangeType:t.ArrangeTypeEnum.front})},x={id:`drawing.operation.set-drawing-arrange-forward`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(y.id,{arrangeType:t.ArrangeTypeEnum.forward})},S={id:`drawing.operation.set-drawing-arrange-back`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(y.id,{arrangeType:t.ArrangeTypeEnum.back})},C={id:`drawing.operation.set-drawing-arrange-backward`,type:t.CommandType.OPERATION,handler:e=>e.get(t.ICommandService).syncExecuteCommand(y.id,{arrangeType:t.ArrangeTypeEnum.backward})},w=[t.DrawingTypeEnum.DRAWING_IMAGE,t.DrawingTypeEnum.DRAWING_SHAPE,t.DrawingTypeEnum.DRAWING_GROUP],T={id:`drawing.operation.set-drawing-group`,type:t.CommandType.OPERATION,handler:(e,i)=>{let a=e.get(n.IDrawingManagerService),o=i.drawings||a.getFocusDrawings();if(o.length<2||!o.every(e=>w.includes(e.drawingType)))return!1;let{unitId:s,subUnitId:c}=o[0],l=(0,t.generateRandomId)(10),u=(0,r.getGroupState)(0,0,o.map(e=>e.transform||{})),d={unitId:s,subUnitId:c,drawingId:l,drawingType:t.DrawingTypeEnum.DRAWING_GROUP,transform:u,groupBaseBound:{left:u.left,top:u.top,width:u.width,height:u.height}},f=o.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},groupId:l}});return a.featurePluginGroupUpdateNotification([{parent:d,children:f}]),!0}},E={id:`drawing.operation.cancel-drawing-group`,type:t.CommandType.OPERATION,handler:(e,i)=>{let a=e.get(n.IDrawingManagerService),o=(i.drawings||a.getFocusDrawings()).map(e=>{if(e.drawingType!==t.DrawingTypeEnum.DRAWING_GROUP)return null;let{unitId:n,subUnitId:i,drawingId:o,transform:s={width:0,height:0},groupBaseBound:c}=e;if(s===null)return null;let l=a.getDrawingsByGroup({unitId:n,subUnitId:i,drawingId:o});return l.length===0?null:{parent:e,children:l.map(e=>{let{transform:t}=e,{unitId:n,subUnitId:i,drawingId:a}=e,o=(0,r.transformObjectOutOfGroup)(t||{},s,s.width||0,s.height||0,c);return{unitId:n,subUnitId:i,drawingId:a,transform:{...t,...o},groupId:void 0}})}}).filter(e=>e!==null);return o.length===0?!1:(a.featurePluginUngroupUpdateNotification(o),!0)}},D={id:`sheet.operation.open-image-crop`,type:t.CommandType.OPERATION,handler:(e,t)=>!0},O={id:`sheet.operation.close-image-crop`,type:t.CommandType.OPERATION,handler:(e,t)=>!0},k=function(e){return e.FREE=`0`,e.R1_1=`1`,e.R16_9=`2`,e.R9_16=`3`,e.R5_4=`4`,e.R4_5=`5`,e.R4_3=`6`,e.R3_4=`7`,e.R3_2=`8`,e.R2_3=`9`,e}({}),A={id:`sheet.operation.Auto-image-crop`,type:t.CommandType.OPERATION,handler:(e,t)=>!0},j={id:`sheet.operation.image-reset-size`,type:t.CommandType.OPERATION,handler:(e,t)=>!0};function M(e,t,i,a){let o=a.getDrawingByParam(e);if(o==null)return;let s=(0,n.getDrawingShapeKeyByDrawingSearch)(e),c=i.getObjectIncludeInGroup(s);if(c&&!(c instanceof r.Group))return;if(c!=null){let e=c.getObjects();for(let n of e)if(n.oKey===t.oKey)return;c.addObject(t);return}let l=new r.DrawingGroupObject(s);i.addObject(l,r.DRAWING_OBJECT_LAYER_INDEX).attachTransformerTo(l),l.addObject(t);let{transform:u,groupBaseBound:d}=o;d&&l.setBaseBound(d),o.groupId&&(l.isInGroup=!0,M({drawingId:o.groupId,unitId:e.unitId,subUnitId:e.subUnitId},l,i,a)),u&&l.transformByState({left:u.left,top:u.top,angle:u.angle,width:u.width,height:u.height})}function N(e,n){let r=n?e.getUnit(n):e.getFocusedUnit();if(r==null)return;let i=r.getUnitId(),a;if(r.type===t.UniverInstanceType.UNIVER_SHEET){var o;a=(o=r.getActiveSheet())==null?void 0:o.getSheetId()}else (r.type===t.UniverInstanceType.UNIVER_DOC||r.type===t.UniverInstanceType.UNIVER_SLIDE)&&(a=i);return{unitId:i,subUnitId:a,current:r}}var P=`@univerjs/drawing-ui`,F=`0.20.1`;let I=`drawing-ui.config`;Symbol(I);let ee={};function L({ref:e,...t}){let{icon:n,id:r,className:a,extend:o,...s}=t,c=`univerjs-icon univerjs-icon-${r} ${a||``}`.trim(),l=(0,i.useRef)(`_${B()}`);return R(n,`${r}`,{defIds:n.defIds,idSuffix:l.current},{ref:e,className:c,...s},o)}function R(e,t,n,r,a){return(0,i.createElement)(e.tag,{key:t,...te(e,n,a),...r},(z(e,n).children||[]).map((r,i)=>R(r,`${t}-${e.tag}-${i}`,n,void 0,a)))}function te(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function z(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function B(){return Math.random().toString(36).substring(2,8)}L.displayName=`UniverIcon`;let ne={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 17 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M14.0045 4.4334C14.8881 4.4334 15.6045 3.71705 15.6045 2.8334C15.6045 1.94974 14.8881 1.2334 14.0045 1.2334H3.70449C2.82084 1.2334 2.10449 1.94974 2.10449 2.8334C2.10449 3.71705 2.82084 4.4334 3.70449 4.4334H14.0045ZM14.4045 2.8334C14.4045 3.05431 14.2254 3.2334 14.0045 3.2334H3.70449C3.48358 3.2334 3.30449 3.05431 3.30449 2.8334C3.30449 2.61248 3.48358 2.4334 3.70449 2.4334H14.0045C14.2254 2.4334 14.4045 2.61249 14.4045 2.8334Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M14.1544 8.5999C15.038 8.5999 15.7544 7.88356 15.7544 6.9999C15.7544 6.11625 15.038 5.3999 14.1544 5.3999H3.85439C2.97074 5.3999 2.25439 6.11625 2.25439 6.9999C2.25439 7.88356 2.97074 8.5999 3.85439 8.5999H14.1544ZM14.5544 6.9999C14.5544 7.22082 14.3753 7.3999 14.1544 7.3999H3.85439C3.63348 7.3999 3.45439 7.22082 3.45439 6.9999C3.45439 6.77899 3.63348 6.5999 3.85439 6.5999H14.1544C14.3753 6.5999 14.5544 6.77899 14.5544 6.9999Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M8.57975 14.5902L6.58023 12.5907C6.34591 12.3564 6.34591 11.9765 6.58023 11.7421C6.81454 11.5078 7.19444 11.5078 7.42876 11.7421L8.40449 12.7179V10.1664C8.40449 9.83504 8.67312 9.56641 9.00449 9.56641C9.33586 9.56641 9.60449 9.83504 9.60449 10.1664V12.7179L10.5802 11.7421C10.8145 11.5078 11.1944 11.5078 11.4288 11.7421C11.6631 11.9765 11.6631 12.3564 11.4288 12.5907L9.42923 14.5902`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M8.57975 14.5902C8.58121 14.5917 8.58268 14.5931 8.58416 14.5946C8.64077 14.6502 8.70566 14.6923 8.77482 14.7209C8.84557 14.7502 8.92314 14.7664 9.00449 14.7664C9.08585 14.7664 9.16342 14.7502 9.23416 14.7209C9.30332 14.6923 9.36821 14.6502 9.42482 14.5946`}}]},re=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`bottom-icon`,ref:t,icon:ne}))});re.displayName=`BottomIcon`;let ie={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M5.97705 7.51296C5.97705 7.18159 6.24568 6.91296 6.57705 6.91296H8.48632C8.81769 6.91296 9.08632 7.18159 9.08632 7.51296C9.08632 7.84433 8.81769 8.11296 8.48632 8.11296H6.57705C6.24568 8.11296 5.97705 7.84433 5.97705 7.51296Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M6.57705 9.41028C6.24568 9.41028 5.97705 9.67891 5.97705 10.0103C5.97705 10.3416 6.24568 10.6103 6.57705 10.6103H10.8199C11.1512 10.6103 11.4199 10.3416 11.4199 10.0103C11.4199 9.67891 11.1512 9.41028 10.8199 9.41028H6.57705Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M3.51074 2.37063C3.51074 1.48697 4.22709 0.77063 5.11074 0.77063H9.80318L9.81294 0.770708C9.97168 0.768161 10.1311 0.82824 10.2511 0.95055L14.4317 5.21408C14.5165 5.30049 14.5697 5.406 14.5917 5.51645C14.6041 5.5644 14.6106 5.61467 14.6106 5.66648V11.6406C14.6106 12.5243 13.8943 13.2406 13.0106 13.2406H5.11074C4.22709 13.2406 3.51074 12.5243 3.51074 11.6406V2.37063ZM10.4032 4.66648V2.81964L12.6063 5.06648H10.8032C10.5823 5.06648 10.4032 4.88739 10.4032 4.66648ZM5.11074 1.97063C4.88983 1.97063 4.71074 2.14972 4.71074 2.37063V11.6406C4.71074 11.8615 4.88983 12.0406 5.11074 12.0406H13.0106C13.2316 12.0406 13.4106 11.8615 13.4106 11.6406V6.26648H10.8032C9.91953 6.26648 9.20318 5.55013 9.20318 4.66648V1.97063H5.11074Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M2.58916 6.6741C2.58916 6.34273 2.32053 6.0741 1.98916 6.0741C1.65779 6.0741 1.38916 6.34273 1.38916 6.6741V12.6294C1.38916 14.0653 2.55322 15.2294 3.98916 15.2294H9.41408C9.74545 15.2294 10.0141 14.9607 10.0141 14.6294C10.0141 14.298 9.74545 14.0294 9.41408 14.0294H3.98916C3.21596 14.0294 2.58916 13.4026 2.58916 12.6294V6.6741Z`}}]},ae=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`create-copy-icon`,ref:t,icon:ie}))});ae.displayName=`CreateCopyIcon`;let oe={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 17 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M7.38125 1.16211C6.49759 1.16211 5.78125 1.87845 5.78125 2.76211V5.6377H2.87783C1.99418 5.6377 1.27783 6.35404 1.27783 7.2377V13.2377C1.27783 14.1214 1.99418 14.8377 2.87783 14.8377H8.87783C9.76149 14.8377 10.4778 14.1214 10.4778 13.2377V10.3621H13.3813C14.2649 10.3621 14.9813 9.64577 14.9813 8.76211V2.76211C14.9813 1.87845 14.2649 1.16211 13.3813 1.16211H7.38125ZM10.4778 9.16211H13.3813C13.6022 9.16211 13.7812 8.98302 13.7812 8.76211V2.76211C13.7812 2.5412 13.6022 2.36211 13.3813 2.36211H7.38125C7.16034 2.36211 6.98125 2.5412 6.98125 2.76211V5.6377H8.87783C9.76149 5.6377 10.4778 6.35404 10.4778 7.2377V9.16211ZM6.98125 6.8377H8.87783C9.09875 6.8377 9.27783 7.01678 9.27783 7.2377V9.16211H7.38125C7.16034 9.16211 6.98125 8.98302 6.98125 8.76211V6.8377ZM5.78125 6.8377V8.76211C5.78125 9.64577 6.49759 10.3621 7.38125 10.3621H9.27783V13.2377C9.27783 13.4586 9.09875 13.6377 8.87783 13.6377H2.87783C2.65692 13.6377 2.47783 13.4586 2.47783 13.2377V7.2377C2.47783 7.01678 2.65692 6.8377 2.87783 6.8377H5.78125Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},se=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`group-icon`,ref:t,icon:oe}))});se.displayName=`GroupIcon`;let ce={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M11.3536 6.14645C11.5488 6.34171 11.5488 6.65829 11.3536 6.85355L8.35355 9.85355C8.15829 10.0488 7.84171 10.0488 7.64645 9.85355L4.64645 6.85355C4.45118 6.65829 4.45118 6.34171 4.64645 6.14645C4.84171 5.95118 5.15829 5.95118 5.35355 6.14645L8 8.79289L10.6464 6.14645C10.8417 5.95118 11.1583 5.95118 11.3536 6.14645Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},le=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`more-down-icon`,ref:t,icon:ce}))});le.displayName=`MoreDownIcon`;let ue={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M1.25 2.96401C1.25 3.84767 1.96634 4.56401 2.85 4.56401H13.15C14.0337 4.56401 14.75 3.84767 14.75 2.96401C14.75 2.08036 14.0337 1.36401 13.15 1.36401H2.85C1.96635 1.36401 1.25 2.08036 1.25 2.96401ZM2.85 3.36401C2.62909 3.36401 2.45 3.18493 2.45 2.96401C2.45 2.7431 2.62909 2.56401 2.85 2.56401H13.15C13.3709 2.56401 13.55 2.7431 13.55 2.96401C13.55 3.18493 13.3709 3.36401 13.15 3.36401H2.85Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M5.57564 11.6118C5.80995 11.3774 6.18985 11.3774 6.42417 11.6118L7.3999 12.5875V6.36951C7.3999 6.03814 7.66853 5.76951 7.9999 5.76951C8.33127 5.76951 8.5999 6.03814 8.5999 6.36951V12.5875L9.57564 11.6118C9.80995 11.3774 10.1899 11.3774 10.4242 11.6118C10.6585 11.8461 10.6585 12.226 10.4242 12.4603L8.4324 14.452C8.32324 14.5655 8.16982 14.6362 7.9999 14.6362C7.82998 14.6362 7.67655 14.5655 7.56739 14.452L5.57564 12.4603C5.34132 12.226 5.34132 11.8461 5.57564 11.6118Z`}}]},de=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`move-down-icon`,ref:t,icon:ue}))});de.displayName=`MoveDownIcon`;let fe={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M1.25 13.036C1.25 12.1523 1.96634 11.436 2.85 11.436H13.15C14.0337 11.436 14.75 12.1523 14.75 13.036C14.75 13.9196 14.0337 14.636 13.15 14.636H2.85C1.96635 14.636 1.25 13.9196 1.25 13.036ZM2.85 12.636C2.62909 12.636 2.45 12.8151 2.45 13.036C2.45 13.2569 2.62909 13.436 2.85 13.436H13.15C13.3709 13.436 13.55 13.2569 13.55 13.036C13.55 12.8151 13.3709 12.636 13.15 12.636H2.85Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M5.57564 4.38825C5.80995 4.62256 6.18985 4.62256 6.42417 4.38825L7.3999 3.41251V9.63049C7.3999 9.96186 7.66853 10.2305 7.9999 10.2305C8.33127 10.2305 8.5999 9.96186 8.5999 9.63049V3.41251L9.57564 4.38825C9.80995 4.62256 10.1899 4.62256 10.4242 4.38825C10.6585 4.15393 10.6585 3.77403 10.4242 3.53972L8.4324 1.54796C8.32324 1.43445 8.16982 1.36382 7.9999 1.36382C7.82998 1.36382 7.67655 1.43446 7.56739 1.54797L5.57564 3.53972C5.34132 3.77403 5.34132 4.15393 5.57564 4.38825Z`}}]},pe=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`move-up-icon`,ref:t,icon:fe}))});pe.displayName=`MoveUpIcon`;let me={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 17 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M7.82994 1.40913C7.88746 1.35161 7.95376 1.30821 8.02453 1.27893C8.09527 1.24959 8.17285 1.2334 8.2542 1.2334C8.33555 1.2334 8.41313 1.24959 8.48387 1.27893C8.55464 1.30821 8.62094 1.35161 8.67846 1.40913L10.6785 3.40913C10.9128 3.64345 10.9128 4.02335 10.6785 4.25766C10.4441 4.49198 10.0642 4.49198 9.82994 4.25766L8.8542 3.28193V5.8334C8.8542 6.16477 8.58557 6.4334 8.2542 6.4334C7.92283 6.4334 7.6542 6.16477 7.6542 5.8334V3.28193L6.67846 4.25766C6.44415 4.49198 6.06425 4.49198 5.82994 4.25766C5.59562 4.02335 5.59562 3.64345 5.82994 3.40913L7.82994 1.40913Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M1.50439 9C1.50439 8.11634 2.22074 7.4 3.10439 7.4H13.4044C14.288 7.4 15.0044 8.11634 15.0044 9C15.0044 9.88366 14.2881 10.6 13.4044 10.6H3.1044C2.22074 10.6 1.50439 9.88366 1.50439 9ZM3.10439 8.6C2.88348 8.6 2.70439 8.77909 2.70439 9C2.70439 9.22091 2.88348 9.4 3.1044 9.4H13.4044C13.6253 9.4 13.8044 9.22091 13.8044 9C13.8044 8.77909 13.6253 8.6 13.4044 8.6H3.10439Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M1.6543 13.1665C1.6543 12.2828 2.37064 11.5665 3.2543 11.5665H13.5543C14.438 11.5665 15.1543 12.2828 15.1543 13.1665C15.1543 14.0502 14.438 14.7665 13.5543 14.7665H3.2543C2.37064 14.7665 1.6543 14.0502 1.6543 13.1665ZM3.2543 12.7665C3.03338 12.7665 2.8543 12.9456 2.8543 13.1665C2.8543 13.3874 3.03338 13.5665 3.2543 13.5665H13.5543C13.7752 13.5665 13.9543 13.3874 13.9543 13.1665C13.9543 12.9456 13.7752 12.7665 13.5543 12.7665H3.2543Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},he=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`topmost-icon`,ref:t,icon:me}))});he.displayName=`TopmostIcon`;let ge={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 17 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M7.46855 2.83731C7.46855 2.61639 7.64764 2.4373 7.86855 2.4373H13.8603C14.0812 2.4373 14.2603 2.61639 14.2603 2.8373V9.5049C14.2603 9.72581 14.0812 9.90489 13.8603 9.90489H12.866C12.5346 9.90489 12.266 10.1735 12.266 10.5049C12.266 10.8363 12.5346 11.1049 12.866 11.1049H13.8603C14.7439 11.1049 15.4603 10.3886 15.4603 9.5049V2.8373C15.4603 1.95365 14.7439 1.2373 13.8603 1.2373H7.86855C6.9849 1.2373 6.26855 1.95365 6.26855 2.83731V3.48688C6.26855 3.81825 6.53718 4.08688 6.86855 4.08688C7.19993 4.08688 7.46855 3.81825 7.46855 3.48688V2.83731Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M3.19888 5.56299C2.31522 5.56299 1.59888 6.27933 1.59888 7.16299V13.163C1.59888 14.0466 2.31522 14.763 3.19888 14.763H9.19888C10.0825 14.763 10.7989 14.0466 10.7989 13.163V7.16299C10.7989 6.27933 10.0825 5.56299 9.19888 5.56299H3.19888ZM2.79888 7.16299C2.79888 6.94207 2.97796 6.76299 3.19888 6.76299H9.19888C9.41979 6.76299 9.59888 6.94207 9.59888 7.16299V13.163C9.59888 13.3839 9.41979 13.563 9.19888 13.563H3.19888C2.97796 13.563 2.79888 13.3839 2.79888 13.163V7.16299Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},_e=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`ungroup-icon`,ref:t,icon:ge}))});_e.displayName=`UngroupIcon`;let ve={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`colorChannel1`,d:`M11.0363 12.2367V14.0367C11.0363 14.3681 11.3049 14.6367 11.6363 14.6367C11.9676 14.6367 12.2363 14.3681 12.2363 14.0367V12.2367H14.0364C14.3677 12.2367 14.6364 11.9681 14.6364 11.6367C14.6364 11.3054 14.3677 11.0367 14.0364 11.0367H12.2363V9.23672C12.2363 8.90535 11.9676 8.63672 11.6363 8.63672C11.3049 8.63672 11.0363 8.90535 11.0363 9.23672V11.0367H9.23635C8.90498 11.0367 8.63635 11.3054 8.63635 11.6367C8.63635 11.9681 8.90498 12.2367 9.23635 12.2367H11.0363Z`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M2.56365 1.36377C1.90091 1.36377 1.36365 1.90103 1.36365 2.56377V6.16377C1.36365 6.82651 1.90091 7.36377 2.56365 7.36377H6.16365C6.82639 7.36377 7.36365 6.82651 7.36365 6.16377V2.56377C7.36365 1.90103 6.82639 1.36377 6.16365 1.36377H2.56365ZM6.16365 2.56377H2.56365L2.56365 6.16377H6.16365V2.56377Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M2.56365 8.63647C1.90091 8.63647 1.36365 9.17373 1.36365 9.83647V13.4365C1.36365 14.0992 1.90091 14.6365 2.56365 14.6365H6.16365C6.82639 14.6365 7.36365 14.0992 7.36365 13.4365V9.83647C7.36365 9.17373 6.82639 8.63647 6.16365 8.63647H2.56365ZM6.16365 9.83647H2.56365L2.56365 13.4365H6.16365V9.83647Z`,fillRule:`evenodd`,clipRule:`evenodd`}},{tag:`path`,attrs:{fill:`currentColor`,d:`M9.83635 7.36377C9.17361 7.36377 8.63635 6.82651 8.63635 6.16377V2.56377C8.63635 1.90103 9.17361 1.36377 9.83635 1.36377H13.4364C14.0991 1.36377 14.6364 1.90103 14.6364 2.56377V6.16377C14.6364 6.82651 14.0991 7.36377 13.4364 7.36377H9.83635ZM9.83635 6.16377V2.56377L13.4364 2.56377V6.16377H9.83635Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},ye=(0,i.forwardRef)(function(e,t){return(0,i.createElement)(L,Object.assign({},e,{id:`autofill-double-icon`,ref:t,icon:ve}))});ye.displayName=`AutofillDoubleIcon`;let be=e=>{let t=e.get(n.IDrawingManagerService);return new o.Observable(e=>{let n=t=>{if(!t||t.length===0||t.length<2)return e.next(!0);e.next(!1)},r=t.focus$.subscribe(t=>{if(!t||t.length===0)return e.next(!0);n(t)});return n(t.getFocusDrawings()),()=>r.unsubscribe()})},xe=`contextMenu.drawing-align`;function Se(e){return{id:xe,type:a.MenuItemType.SUBITEMS,icon:`HorizontallyIcon`,title:`image-panel.align.title`,hidden$:be(e)}}function Ce(){return{id:d.id,type:a.MenuItemType.BUTTON,icon:`LeftJustifyingIcon`,title:`image-panel.align.left`}}function we(){return{id:f.id,type:a.MenuItemType.BUTTON,icon:`HorizontallyIcon`,title:`image-panel.align.center`}}function Te(){return{id:p.id,type:a.MenuItemType.BUTTON,icon:`RightJustifyingIcon`,title:`image-panel.align.right`}}function Ee(){return{id:m.id,type:a.MenuItemType.BUTTON,icon:`AlignTopIcon`,title:`image-panel.align.top`}}function De(){return{id:h.id,type:a.MenuItemType.BUTTON,icon:`VerticalCenterIcon`,title:`image-panel.align.middle`}}function Oe(){return{id:g.id,type:a.MenuItemType.BUTTON,icon:`AlignBottomIcon`,title:`image-panel.align.bottom`}}function ke(){return{id:_.id,type:a.MenuItemType.BUTTON,icon:`HorizontallyIcon`,title:`image-panel.align.horizon`}}function Ae(){return{id:v.id,type:a.MenuItemType.BUTTON,icon:`VerticalCenterIcon`,title:`image-panel.align.vertical`}}let je=`contextMenu.drawing-arrange`;function Me(){return{id:je,type:a.MenuItemType.SUBITEMS,icon:`TopmostIcon`,title:`image-panel.arrange.title`}}function Ne(){return{id:b.id,type:a.MenuItemType.BUTTON,icon:`TopmostIcon`,title:`image-panel.arrange.front`}}function Pe(){return{id:x.id,type:a.MenuItemType.BUTTON,icon:`MoveUpIcon`,title:`image-panel.arrange.forward`}}function Fe(){return{id:S.id,type:a.MenuItemType.BUTTON,icon:`BottomIcon`,title:`image-panel.arrange.back`}}function Ie(){return{id:C.id,type:a.MenuItemType.BUTTON,icon:`MoveDownIcon`,title:`image-panel.arrange.backward`}}let Le=(e,r)=>{let i=e.get(n.IDrawingManagerService);return new o.Observable(e=>{let n=n=>{if(!n||n.length===0)return e.next(!0);if(r===`group`){if(n.length<2||!n.every(e=>w.includes(e.drawingType)))return e.next(!0)}else if(r===`unGroup`){if(n.filter(e=>e.drawingType===t.DrawingTypeEnum.DRAWING_GROUP).length===0)return e.next(!0)}else if(!n.every(e=>w.includes(e.drawingType)))return e.next(!0);e.next(!1)},a=i.focus$.subscribe(t=>{if(!t||t.length===0)return e.next(!0);n(t)});return n(i.getFocusDrawings()),()=>a.unsubscribe()})},Re=`contextMenu.drawing-group`;function ze(e){return{id:Re,type:a.MenuItemType.SUBITEMS,icon:`GroupIcon`,title:`image-panel.group.title`,hidden$:Le(e)}}function Be(e){return{id:T.id,type:a.MenuItemType.BUTTON,icon:`GroupIcon`,title:`image-panel.group.group`,disabled$:Le(e,`group`)}}function Ve(e){return{id:E.id,type:a.MenuItemType.BUTTON,icon:`UngroupIcon`,title:`image-panel.group.unGroup`,disabled$:Le(e,`unGroup`)}}let He={[a.ContextMenuPosition.DRAWING]:{[a.ContextMenuGroup.OTHERS]:{[Re]:{order:1,menuItemFactory:ze,[T.id]:{order:0,menuItemFactory:Be},[E.id]:{order:1,menuItemFactory:Ve}},[je]:{order:2,menuItemFactory:Me,[b.id]:{order:0,menuItemFactory:Ne},[x.id]:{order:1,menuItemFactory:Pe},[S.id]:{order:2,menuItemFactory:Fe},[C.id]:{order:3,menuItemFactory:Ie}},[xe]:{order:3,menuItemFactory:Se,[d.id]:{order:0,menuItemFactory:Ce},[f.id]:{order:1,menuItemFactory:we},[p.id]:{order:2,menuItemFactory:Te},[m.id]:{order:3,menuItemFactory:Ee},[h.id]:{order:4,menuItemFactory:De},[g.id]:{order:5,menuItemFactory:Oe},[_.id]:{order:6,menuItemFactory:ke},[v.id]:{order:7,menuItemFactory:Ae}}}}},Ue=`COMPONENT_IMAGE_POPUP_MENU`;function We(e){var n;let{popup:r}=e,o=r==null||(n=r.extraProps)==null?void 0:n.menuItems;if(!o)return null;let l=(0,a.useDependency)(t.ICommandService),u=(0,a.useDependency)(t.LocaleService),[d,f]=(0,i.useState)(!1),[p,m]=(0,i.useState)(!1),h=()=>{m(!0)},g=()=>{m(!1)},_=e=>{f(e)},v=e=>{l.executeCommand(e.commandId,e.commandParams),f(!1)},y=d||p;return(0,c.jsx)(`div`,{onMouseEnter:h,onMouseLeave:g,children:(0,c.jsx)(s.DropdownMenu,{align:`start`,items:o.map(e=>({type:`item`,children:u.t(e.label),disabled:e.disable,onSelect:()=>v(e)})),open:d,onOpenChange:_,children:(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-flex univer-items-center univer-gap-2 univer-rounded univer-p-1 hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-800`,s.borderClassName,{"univer-bg-gray-100 dark:!univer-bg-gray-800":d,"univer-bg-white dark:!univer-bg-gray-900":!d}),children:[(0,c.jsx)(ye,{className:`univer-fill-primary-600 univer-text-gray-900 dark:!univer-text-white`}),y&&(0,c.jsx)(le,{className:`dark:!univer-text-white`})]})})})}function V(e,t){return function(n,r){t(n,r,e)}}function H(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let U=class extends t.Disposable{constructor(e,t,n){super(),this._componentManager=e,this._commandService=t,this._menuManagerService=n,this._init()}_init(){this._initMenus(),this._initCommands(),this._initComponents()}_initMenus(){this._menuManagerService.mergeMenu(He)}_initCommands(){[D,O,j,u,d,f,p,m,h,g,_,v,A,T,E,y,b,x,S,C].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initComponents(){[[Ue,We],[`BottomIcon`,re],[`GroupIcon`,se],[`MoveDownIcon`,de],[`MoveUpIcon`,pe],[`TopmostIcon`,he],[`UngroupIcon`,_e]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}};U=H([V(0,(0,t.Inject)(a.ComponentManager)),V(1,t.ICommandService),V(2,a.IMenuManagerService)],U);function W(e,n){let r=[];return e.forEach(e=>{let{oKey:i,left:a,top:o,height:s,width:c,angle:l}=e,u=n.getDrawingOKey(i);if(u==null)return r.push(null),!0;let{unitId:d,subUnitId:f,drawingId:p,drawingType:m}=u,h={unitId:d,subUnitId:f,drawingId:p,drawingType:m,transform:{left:a,top:o,height:s,width:c,angle:l}};m===t.DrawingTypeEnum.DRAWING_IMAGE&&(h.srcRect=e.srcRect),r.push(h)}),r}function G(e){"@babel/helpers - typeof";return G=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},G(e)}function Ge(e,t){if(G(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(G(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ke(e){var t=Ge(e,`string`);return G(t)==`symbol`?t:t+``}function K(e,t,n){return(t=Ke(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let q=class extends t.Disposable{constructor(e,t,n,r){super(),this._currentUniverService=e,this._commandService=t,this._renderManagerService=n,this._drawingManagerService=r,K(this,`_sceneListenerOnDrawingMap`,new WeakSet),this._initialize()}dispose(){super.dispose()}_initialize(){this._recoveryImages(),this._drawingAddListener(),this._drawingRemoveListener(),this._drawingUpdateListener(),this._commandExecutedListener(),this._drawingArrangeListener(),this._drawingGroupListener(),this._drawingRefreshListener(),this._drawingVisibleListener()}_recoveryImages(){let e=this._drawingManagerService.drawingManagerData,t=N(this._currentUniverService);if(t==null)return;let{unitId:n,subUnitId:r}=t;Object.keys(e).forEach(t=>{Object.keys(e[t]).forEach(i=>{let a=e[t][i].data;a==null||t!==n||i!==r||Object.keys(a).forEach(e=>{a[e]&&this._insertDrawing([{unitId:t,subUnitId:i,drawingId:e}])})})})}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===u.id){let t=e.params;if(t==null)return;this._drawingAlign(t)}}))}_drawingGroupListener(){this.disposeWithMe(this._drawingManagerService.group$.subscribe(e=>{this._groupDrawings(e)})),this.disposeWithMe(this._drawingManagerService.ungroup$.subscribe(e=>{this._ungroupDrawings(e)}))}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;return n==null?null:{scene:n,transformer:n.getTransformerByCreate()}}_groupDrawings(e){e.forEach(e=>{this._groupDrawing(e)})}_groupDrawing(e){let{parent:t,children:i}=e,{unitId:a,subUnitId:o,drawingId:s}=t,c=this._getSceneAndTransformerByDrawingSearch(t.unitId);if(c==null)return;let{scene:l,transformer:u}=c;this._commandService.syncExecuteCommand(O.id);let d=[];if(i.forEach(e=>{let t=(0,n.getDrawingShapeKeyByDrawingSearch)(e),i=l.getObjectIncludeInGroup(t);if(i==null||d.includes(i))return;d.push(i);let{transform:a}=e;a!=null&&(i.classType===r.RENDER_CLASS_TYPE.GROUP?i.transformByState({left:a.left,top:a.top}):i.transformByState(a))}),d.length===0)return;let f=new r.DrawingGroupObject((0,n.getDrawingShapeKeyByDrawingSearch)({unitId:a,subUnitId:o,drawingId:s}));l.addObject(f,r.DRAWING_OBJECT_LAYER_INDEX).attachTransformerTo(f),f.addObjects(...d),t.groupBaseBound&&f.setBaseBound(t.groupBaseBound),t.groupId&&(f.isInGroup=!0,M({drawingId:t.groupId,unitId:a,subUnitId:o},f,l,this._drawingManagerService)),t.transform&&f.transformByState({left:t.transform.left,top:t.transform.top,width:t.transform.width,height:t.transform.height,angle:t.transform.angle}),u.clearSelectedObjects(),u.setSelectedControl(f)}_ungroupDrawings(e){e.forEach(e=>{this._ungroupDrawing(e)})}_ungroupDrawing(e){let{parent:t,children:i}=e,a=this._getSceneAndTransformerByDrawingSearch(t.unitId);if(a==null)return;let{scene:o,transformer:s}=a;i.forEach(e=>{let t=(0,n.getDrawingShapeKeyByDrawingSearch)(e),i=o.getObjectIncludeInGroup(t);if(i==null)return!0;if(i==null)return;let{transform:a}=e;a!=null&&(i.classType===r.RENDER_CLASS_TYPE.GROUP?i.transformByState({left:a.left,top:a.top}):i.transformByState(a))});let c=(0,n.getDrawingShapeKeyByDrawingSearch)(t),l=o.getObject(c),{width:u,height:d}=l;l.getObjects().forEach(e=>{l.removeSelfObjectAndTransform(e.oKey,u,d)}),l.dispose(),s.clearSelectedObjects()}_drawingAlign(e){let{alignType:t}=e,n=e.drawings||this._drawingManagerService.getFocusDrawings();if(t===l.default)return;let r=[],i=1/0,a=1/0,o=-1/0,s=-1/0,c=0;n.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:l,drawingType:u}=e,d=this._drawingManagerService.getDrawingByParam({unitId:t,subUnitId:n,drawingId:l});if(d==null||d.transform==null)return;r.push({unitId:t,subUnitId:n,drawingId:l,drawingType:u,transform:d.transform});let{left:f=0,top:p=0,width:m=0,height:h=0}=d.transform;i=Math.min(i,f),a=Math.min(a,p),o=Math.max(o,f+m),s=Math.max(s,p+h),c++}),c!==0&&(this._sortDrawingTransform(r,t),this._applyAlignType(r,t,i,a,o,s,c))}_applyAlignType(e,t,n,r,i,a,o){let s=Math.round((i-n)/o*10)/10,c=Math.round((a-r)/o*10)/10,u=[],d=this._getSceneAndTransformerByDrawingSearch(e[0].unitId);if(d==null)return;let{scene:f,transformer:p}=d;e.forEach((e,o)=>{let{unitId:d,subUnitId:f,drawingId:p,transform:m,drawingType:h}=e,{left:g=0,top:_=0,width:v=0,height:y=0}=m,b=g,x=_;switch(t){case l.left:b=n;break;case l.center:b=n+(i-n)/2-v/2;break;case l.right:b=i-v;break;case l.top:x=r;break;case l.middle:x=r+(a-r)/2-y/2;break;case l.bottom:x=a-y;break;case l.horizon:b=n+s*o;break;case l.vertical:x=r+c*o;break;default:break}(b!==g||x!==_)&&u.push({unitId:d,subUnitId:f,drawingId:p,drawingType:h,transform:{left:b,top:x}})}),this._drawingManagerService.featurePluginUpdateNotification(u),p.refreshControls().changeNotification()}_sortDrawingTransform(e,t){e.sort((e,n)=>{let r=e.transform,i=n.transform,{left:a=0,top:o=0,width:s=0,height:c=0}=r,{left:u=0,top:d=0,width:f=0,height:p=0}=i;switch(t){case l.left:return a-u;case l.center:return a+s/2-(u+f/2);case l.right:return a+s-(u+f);case l.top:return o-d;case l.middle:return o+c/2-(d+p/2);case l.bottom:return o+c-(d+p);case l.horizon:return a+s/2-(u+f/2);case l.vertical:return o+c/2-(d+p/2);default:return 0}})}_drawingArrangeListener(){this.disposeWithMe(this._drawingManagerService.order$.subscribe(e=>{this._drawingArrange(e)}))}_drawingArrange(e){let{unitId:t,subUnitId:r,drawingIds:i}=e,a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{scene:o}=a;i.forEach(e=>{let i=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:r,drawingId:e}),a=o.fuzzyMathObjects(i,!0);if(a==null||a.length===0)return;let s=this._drawingManagerService.getDrawingOrder(t,r).indexOf(e);for(let e of a)e.setProps({zIndex:s}),e.makeDirty()})}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{this._insertDrawing(e)}))}_insertDrawing(e){let t=[];e.forEach(e=>{let{unitId:n}=e;if(this._drawingManagerService.getDrawingByParam(e)==null)return;let r=this._getSceneAndTransformerByDrawingSearch(n);if(r==null)return;let{scene:i}=r;t.includes(i)||t.push(i)}),t.forEach(e=>{this._sceneListenerOnDrawingMap.has(e)||(this._addListenerOnDrawing(e),this._sceneListenerOnDrawingMap.add(e))})}_drawingRemoveListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:r,drawingId:i}=e,a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{scene:o}=a,s=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:r,drawingId:i}),c=o.fuzzyMathObjects(s,!0);if(c.length>0){var l;for(let e of c)e.dispose();(l=o.getTransformer())==null||l.clearSelectedObjects()}})}))}_drawingUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{var t;let{unitId:r,subUnitId:i,drawingId:a}=e,o=this._drawingManagerService.getDrawingByParam(e);if(o==null)return;let{transform:s,drawingType:c}=o,l=this._getSceneAndTransformerByDrawingSearch(r);if(l==null)return;let{scene:u,transformer:d}=l;if(s==null)return!0;let{left:f=0,top:p=0,width:m=0,height:h=0,angle:g=0,flipX:_=!1,flipY:v=!1,skewX:y=0,skewY:b=0}=s,x=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:r,subUnitId:i,drawingId:a}),S=u.getObject(x);if(S==null)return!0;S.transformByState({left:f,top:p,width:m,height:h,angle:g,flipX:_,flipY:v,skewX:y,skewY:b}),(t=u.getTransformer())==null||t.debounceRefreshControls()})}))}_drawingRefreshListener(){this.disposeWithMe(this._drawingManagerService.refreshTransform$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:r,drawingId:i}=e,a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let o=this._drawingManagerService.getDrawingByParam(e);if(o==null)return;let{transform:s}=o,{scene:c}=a,l=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:r,drawingId:i}),u=c.getObject(l);if(u==null||s==null)return!0;let{left:d=0,top:f=0,width:p=0,height:m=0,angle:h=0,flipX:g=!1,flipY:_=!1,skewX:v=0,skewY:y=0}=s;u.transformByState({left:d,top:f,width:p,height:m,angle:h,flipX:g,flipY:_,skewX:v,skewY:y})})}))}_drawingVisibleListener(){this.disposeWithMe(this._drawingManagerService.visible$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:r,drawingId:i,visible:a}=e,o=this._getSceneAndTransformerByDrawingSearch(t);if(o==null)return;let{scene:s}=o,c=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:r,drawingId:i}),l=s.getObject(c);if(l==null)return!0;a?l.show():l.hide()})}))}_filterUpdateParams(e,n){return e.filter((e,r)=>{if(e==null)return!1;let{transform:i}=e;return(0,t.checkIfMove)(i,n==null?void 0:n[r])})}_addListenerOnDrawing(e){let i=e.getTransformerByCreate(),a=null;this.disposeWithMe((0,t.toDisposable)(i.changeStart$.subscribe(e=>{let{objects:t}=e,i=Array.from(t.values()),o=[];a=i.map(e=>{let{left:t,top:n,height:i,width:a,angle:s,oKey:c,isInGroup:l}=e,u=this._drawingManagerService.getDrawingOKey(c);if(l||e instanceof r.Group){let t=e.ancestorGroup;if(t==null&&e instanceof r.Group&&(t=e),t==null)return null;let n=this._drawingManagerService.getDrawingOKey(t.oKey);if(n){let{unitId:e,subUnitId:r,drawingId:i}=n;o.push({unitId:e,subUnitId:r,drawingId:i});let{left:a,top:s,height:c,width:l,angle:u}=t;return{left:a,top:s,height:c,width:l,angle:u}}}else if(u!=null){let{unitId:e,subUnitId:r,drawingId:c}=u;return o.push({unitId:e,subUnitId:r,drawingId:c}),{left:t,top:n,height:i,width:a,angle:s}}return null}).filter(e=>e!=null),o.length>0?this._commandService.syncExecuteCommand(n.SetDrawingSelectedOperation.id,o):this._commandService.syncExecuteCommand(n.SetDrawingSelectedOperation.id,[])}))),this.disposeWithMe((0,t.toDisposable)(i.changeEnd$.subscribe(e=>{let{objects:t}=e,n=this._filterUpdateParams(W(t,this._drawingManagerService),a);n.length>0&&this._drawingManagerService.featurePluginUpdateNotification(n)})))}};q=H([V(0,t.IUniverInstanceService),V(1,t.ICommandService),V(2,r.IRenderManagerService),V(3,n.IDrawingManagerService)],q);var J=function(e){return e[e.RECT=0]=`RECT`,e[e.PATH=1]=`PATH`,e}(J||{}),Y=class extends r.Shape{constructor(e,t){t==null&&(t={}),t.transformerConfig={keepRatio:!1,isCropper:!0,anchorFill:`rgb(0, 0, 0)`,anchorStroke:`rgb(255, 255, 255)`,anchorSize:24},super(e,t),K(this,`_srcRect`,void 0),K(this,`_prstGeom`,void 0),K(this,`_applyTransform`,void 0),K(this,`_dragPadding`,8),K(this,`_cacheCanvas`,void 0),t!=null&&t.srcRect&&(this._srcRect=t.srcRect),t!=null&&t.prstGeom&&(this._prstGeom=t.prstGeom),t!=null&&t.applyTransform&&(this._applyTransform=t.applyTransform),t!=null&&t.dragPadding&&(this._dragPadding=t.dragPadding),this._applyProps()}refreshSrcRect(e,t){this._srcRect=e,this._applyTransform=t,this._applyProps()}get srcRect(){return this._srcRect}dispose(){var e;super.dispose(),(e=this._cacheCanvas)==null||e.dispose(),this._srcRect=null}isHit(e){let t=this.getInverseCoord(e);return t.x>=-this.strokeWidth/2&&t.x<=this.width+this.strokeWidth/2&&t.y>=-this.strokeWidth/2&&t.y<=this.height+this.strokeWidth/2&&!this._inSurround(t)}_inSurround(e){let t=this._dragPadding;return e.x>=t-this.strokeWidth/2&&e.x<=this.width+this.strokeWidth/2-t&&e.y>=t-this.strokeWidth/2&&e.y<=this.height+this.strokeWidth/2-t}render(e,t){return this.visible?(e.save(),this._draw(e),e.restore(),this.makeDirty(!1),this):(this.makeDirty(!1),this)}_draw(e){var t,n;let{width:i,height:a}=this.getScene().getEngine();this._initialCacheCanvas(),(t=this._cacheCanvas)==null||t.clear();let o=(n=this._cacheCanvas)==null?void 0:n.getContext();o!=null&&(o.save(),r.Rect.drawWith(o,{left:0,top:0,width:i,height:a,fill:`rgba(0, 0, 0, 0.5)`}),o.setTransform(e.getTransform()),this._clipForApplyObject(o),this._applyCache(e),o.restore())}_clipForApplyObject(e){let t=J.RECT;if(this._prstGeom!=null&&(t=J.PATH),e.globalCompositeOperation=`destination-out`,e.beginPath(),t===J.RECT){let t=this.transform.getMatrix();e.transform(t[0],t[1],t[2],t[3],t[4],t[5]),e.rect(0,0,this.width,this.height),e.fill()}}_applyProps(){if(this._applyTransform==null)return;let e=0,t=0,n=0,r=0,{left:i=0,top:a=0,width:o=0,height:s=0,angle:c}=this._applyTransform;if(this._srcRect!=null){let{left:i=0,top:a=0,right:o=0,bottom:s=0}=this._srcRect;e=i,t=a,n=o,r=s}let l=i+e,u=a+t;this.transformByState({left:l,top:u,width:i+o-n-l,height:a+s-r-u,angle:c})}_applyCache(e){if(!e||this._cacheCanvas==null)return;let t=this._cacheCanvas.getContext();t.save(),e.save(),e.setTransform(1,0,0,1,0,0),t.setTransform(1,0,0,1,0,0),e.drawImage(this._cacheCanvas.getCanvasEle(),0,0),e.restore(),t.restore()}_initialCacheCanvas(){if(this._cacheCanvas!=null)return;let e=this.getScene();if(e==null)return;this._cacheCanvas=new r.Canvas;let t=e.getEngine();this._cacheCanvas.setSize(t.width,t.height),t.onTransformChange$.subscribeEvent(()=>{var e;(e=this._cacheCanvas)==null||e.setSize(t.width,t.height),this.makeDirty(!0)})}};let X=class extends t.Disposable{constructor(e,t,n,r,i,a){super(),this._commandService=e,this._drawingManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._messageService=i,this._localeService=a,K(this,`_sceneListenerOnImageMap`,new WeakSet),this._init()}_init(){this._initOpenCrop(),this._initCloseCrop(),this._initAutoCrop()}_initAutoCrop(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==A.id)return;let t=e.params;if(t==null)return;let{cropType:i}=t,a=this._drawingManagerService.getFocusDrawings();if(a.length!==1)return;let{unitId:o,subUnitId:c,drawingId:l}=a[0],u=this._renderManagerService.getRenderById(o),d=u==null?void 0:u.scene;if(d==null)return!0;this._searchCropObject(d)!=null&&this._commandService.syncExecuteCommand(O.id,{isAuto:!0});let f=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:o,subUnitId:c,drawingId:l}),p=d.getObject(f);if(!(p instanceof r.Image)){this._messageService.show({type:s.MessageType.Error,content:this._localeService.t(`image-cropper.error`)});return}p!=null&&(this._updateCropperObject(i,p),this._commandService.executeCommand(D.id,{unitId:o,subUnitId:c,drawingId:l}))}))}_calculateSrcRectByRatio(e,t,n,i,a,o){let s=n/i,c=a/o,l=n,u=i;s>c?l=i*c:u=n/c;let d=(n-l)/2,f=(i-u)/2;return{left:(0,r.precisionTo)(d,1),top:(0,r.precisionTo)(f,1),right:(0,r.precisionTo)(n-(d+l),1),bottom:(0,r.precisionTo)(i-(f+u),1)}}_updateCropperObject(e,t){let{left:n,top:r,width:i,height:a}=t.calculateTransformWithSrcRect(),o;switch(e){case k.R1_1:o=this._calculateSrcRectByRatio(n,r,i,a,1,1);break;case k.R16_9:o=this._calculateSrcRectByRatio(n,r,i,a,16,9);break;case k.R9_16:o=this._calculateSrcRectByRatio(n,r,i,a,9,16);break;case k.R5_4:o=this._calculateSrcRectByRatio(n,r,i,a,5,4);break;case k.R4_5:o=this._calculateSrcRectByRatio(n,r,i,a,4,5);break;case k.R4_3:o=this._calculateSrcRectByRatio(n,r,i,a,4,3);break;case k.R3_4:o=this._calculateSrcRectByRatio(n,r,i,a,3,4);break;case k.R3_2:o=this._calculateSrcRectByRatio(n,r,i,a,3,2);break;case k.R2_3:o=this._calculateSrcRectByRatio(n,r,i,a,2,3);break;case k.FREE:default:break}if(o==null)return;t.setSrcRect(o);let{left:s=0,top:c=0,bottom:l=0,right:u=0}=o;t.transformByStateCloseCropper({left:n+s,top:r+c,width:i-u-s,height:a-l-c})}_initOpenCrop(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==D.id)return;let t=e.params;if(t==null)return;let{unitId:i,subUnitId:a,drawingId:o}=t,c=this._renderManagerService.getRenderById(i),l=c==null?void 0:c.scene;if(l==null)return!0;if(this._sceneListenerOnImageMap.has(l)||(this._addListenerOnImage(l),this._sceneListenerOnImageMap.add(l)),this._drawingManagerService.getDrawingByParam({unitId:i,subUnitId:a,drawingId:o})==null)return;let u=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:i,subUnitId:a,drawingId:o}),d=l.getObject(u);if(d==null)return;if(!(d instanceof r.Image)){this._messageService.show({type:s.MessageType.Error,content:this._localeService.t(`image-cropper.error`)});return}let f=l.getTransformer();f==null||f.clearControls();let p=new Y(`${u}-crop`,{srcRect:d.srcRect,prstGeom:d.prstGeom,applyTransform:d.calculateTransformWithSrcRect()});l.addObject(p,d.getLayerIndex()+1).attachTransformerTo(p),f==null||f.createControlForCopper(p),this._addHoverForImageCopper(p),d.openRenderByCropper(),f==null||f.refreshControls(),p.makeDirty(!0),this._commandService.syncExecuteCommand(n.SetDrawingSelectedOperation.id,[{unitId:i,subUnitId:a,drawingId:o}])}))}_searchCropObject(e){let t=e.getAllObjectsByOrder();for(let e of t)if(e instanceof Y)return e}_initCloseCrop(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==O.id)return;let t=this._univerInstanceService.getFocusedUnit();if(t==null)return;let n=t.getUnitId(),r=this._renderManagerService.getRenderById(n),i=r==null?void 0:r.scene;if(i==null)return!0;let a=this._searchCropObject(i);if(a==null)return;let o=this._getApplyObjectByCropObject(a);if(o==null)return;let s=i.getTransformerByCreate();s.detachFrom(a),s.clearCopperControl();let c=this._getSrcRectByTransformState(o,a),l=this._drawingManagerService.getDrawingOKey(o.oKey);if(l!=null){let{left:e,top:t,height:n,width:r}=a;this._drawingManagerService.featurePluginUpdateNotification([{...l,transform:{...l.transform,left:e,top:t,height:n,width:r},srcRect:c.srcRectAngle}])}o.setSrcRect({...c.srcRectAngle}),o.closeRenderByCropper(),o.makeDirty(!0),a==null||a.dispose()}));let e=this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,o.switchMap)(e=>e?e.activeSheet$:(0,o.of)(null)));this.disposeWithMe(e.subscribe(()=>{this._commandService.syncExecuteCommand(O.id)}))}_getApplyObjectByCropObject(e){let t=e.oKey,n=t.slice(0,t.length-5),r=e.getScene();if(!r)return null;let i=r.getObject(n);return i==null?null:i}_addListenerOnImage(e){let n=e.getTransformerByCreate(),r=null;this.disposeWithMe(n.changeStart$.subscribe(e=>{let{objects:t}=e,i=t.values().next().value;if(i==null||!(i instanceof Y))return;let{left:a,top:o,height:s,width:c,angle:l}=i;r={left:a,top:o,height:s,width:c,angle:l},n.clearCopperControl()})),this.disposeWithMe(n.changeEnd$.subscribe(e=>{let{objects:i}=e,a=i.values().next().value;if(a==null||!(a instanceof Y))return;let{left:o,top:s,height:c,width:l,angle:u}=a;if(!(0,t.checkIfMove)({left:o,top:s,height:c,width:l,angle:u},r))return;let d=this._getApplyObjectByCropObject(a);if(d==null)return;let f=this._getSrcRectByTransformState(d,a);a.refreshSrcRect(f.srcRect,d.getState()),n.createControlForCopper(a)})),this._endCropListener(e)}_addHoverForImageCopper(e){this.disposeWithMe(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=r.CURSOR_TYPE.MOVE})),this.disposeWithMe(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=r.CURSOR_TYPE.DEFAULT}))}_endCropListener(e){let t=e.getTransformerByCreate();this.disposeWithMe(t.clearControl$.subscribe(e=>{e===!0&&this._commandService.syncExecuteCommand(O.id)}))}_getSrcRectByTransformState(e,t){let{left:n,top:i,height:a,width:o,strokeWidth:s,angle:c}=t,{left:l,top:u,width:d,height:f,angle:p,strokeWidth:m}=e,h=n-l,g=i-u,_={left:h,top:g,right:d-h-o,bottom:f-g-a},v={..._};if(p!==0){let e=new r.Vector2(n+o/2,i+a/2),t=new r.Vector2(d/2+l,f/2+u),s=new r.Vector2(l,u);s.rotateByPoint((0,r.degToRad)(p),t);let c=s.clone();c.rotateByPoint((0,r.degToRad)(-p),e);let m=n-c.x,h=i-c.y;v.left=m,v.top=h,v.right=d-m-o,v.bottom=f-h-a}return{srcRect:_,srcRectAngle:v}}};X=H([V(0,t.ICommandService),V(1,n.IDrawingManagerService),V(2,r.IRenderManagerService),V(3,t.IUniverInstanceService),V(4,a.IMessageService),V(5,(0,t.Inject)(t.LocaleService))],X);var Z=class extends t.Disposable{constructor(){super(),K(this,`_clipDelegate`,null),K(this,`_canUseShapeClip$`,new o.BehaviorSubject(!1)),K(this,`canUseShapeClip$`,this._canUseShapeClip$.asObservable())}setCanUseShapeClip(e){this._canUseShapeClip$.next(e)}registerClipDelegate(e){return this._clipDelegate=e,(0,t.toDisposable)(()=>{this._clipDelegate===e&&(this._clipDelegate=null)})}applyShapeClip(e,t,n,r,i){return this._clipDelegate?this._clipDelegate(e,t,n,r,i):!1}dispose(){this._clipDelegate=null,this._canUseShapeClip$.complete(),super.dispose()}};let Q=class{constructor(e,t,n,r,i,a){this._drawingManagerService=e,this._imageIoService=t,this._galleryService=n,this._urlImageService=r,this._univerInstanceService=i,this._drawingImageClipService=a}async renderImages(e,i){let{transform:a,drawingType:o,source:s,imageSourceType:c,srcRect:l,prstGeom:u,groupId:d,unitId:f,subUnitId:p,drawingId:m,isMultiTransform:h,transforms:g,adjustValues:_}=e;if(o!==t.DrawingTypeEnum.DRAWING_IMAGE||!this._drawingManagerService.getDrawingVisible()||this._univerInstanceService.getUnitType(f)===t.UniverInstanceType.UNIVER_SHEET&&p!==this._getActiveSheetId()||a==null)return;let v=h&&g?g:[a],y=[];for(let e of v){let{left:t,top:a,width:o,height:g,angle:b,flipX:x,flipY:S,skewX:C,skewY:w}=e,T=v.indexOf(e),E=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:f,subUnitId:p,drawingId:m},h?T:void 0),D=i.getObject(E);if(D!=null){D.transformByState({left:t,top:a,width:o,height:g,angle:b,flipX:x,flipY:S,skewX:C,skewY:w});continue}let O=this._drawingManagerService.getDrawingOrder(f,p),k=O.indexOf(m),A={...e,zIndex:k===-1?O.length-1:k},j=this._imageIoService.getImageSourceCache(s,c),N=!1;if(j!=null)A.image=j;else if(c===n.ImageSourceType.UUID)try{A.url=await this._imageIoService.getImage(s)}catch(e){console.error(e);continue}else if(c===n.ImageSourceType.URL){try{A.url=await this._urlImageService.getImage(s)}catch(e){console.error(e),A.url=s}N=!0}else A.url=s,N=!0;if(i.getObject(E))continue;A.printable=!0;let P=new r.Image(E,A);P.setClipService(this._drawingImageClipService),N&&this._imageIoService.addImageSourceCache(s,c,P.getNative()),i.addObject(P,r.DRAWING_OBJECT_LAYER_INDEX),this._drawingManagerService.getDrawingEditable()&&i.attachTransformerTo(P),d&&M({drawingId:d,unitId:f,subUnitId:p},P,i,this._drawingManagerService),u!=null&&P.setPrstGeom(u),_!=null&&P.setPrstGeomAdjValues(_),l!=null&&P.setSrcRect(l),y.push(P)}return y}_getActiveSheetId(){var e;return(e=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET))==null||(e=e.getActiveSheet())==null?void 0:e.getSheetId()}renderFloatDom(e,i){let{transform:a,drawingType:o,groupId:s,unitId:c,subUnitId:l,drawingId:u,isMultiTransform:d,transforms:f}=e;if(o!==t.DrawingTypeEnum.DRAWING_DOM||!this._drawingManagerService.getDrawingVisible()||a==null)return;let p=d&&f?f:[a],m=[];for(let t of p){let{left:a,top:o,width:f,height:h,angle:g,flipX:_,flipY:v,skewX:y,skewY:b}=t,x=p.indexOf(t),S=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:c,subUnitId:l,drawingId:u},d?x:void 0),C=i.getObject(S);if(C!=null){C.transformByState({left:a,top:o,width:f,height:h,angle:g,flipX:_,flipY:v,skewX:y,skewY:b});continue}let w=this._drawingManagerService.getDrawingOrder(c,l),T=w.indexOf(u),E={...t,zIndex:T===-1?w.length-1:T};if(i.getObject(S))continue;E.printable=!1;let D=new r.Rect(S,E);this._drawingManagerService.getDrawingVisible()&&(i.addObject(D,r.DRAWING_OBJECT_LAYER_INDEX),this._drawingManagerService.getDrawingEditable()&&e.allowTransform!==!1&&i.attachTransformerTo(D),s&&M({drawingId:s,unitId:c,subUnitId:l},D,i,this._drawingManagerService),m.push(D))}return m}renderDrawing(e,n){let r=this._drawingManagerService.getDrawingByParam(e);if(r!=null)switch(r.drawingType){case t.DrawingTypeEnum.DRAWING_IMAGE:return this.renderImages(r,n);default:}}previewImage(e,t,n,r){this._galleryService.open({images:[t],onOpenChange:e=>{e||this._galleryService.close()}})}_adjustImageSize(e,t,n,r){if(e<=n&&t<=r)return{width:e,height:t};let i=n/e,a=r/t,o=Math.min(i,a);return{width:Math.floor(e*o),height:Math.floor(t*o)}}};Q=H([V(0,n.IDrawingManagerService),V(1,n.IImageIoService),V(2,a.IGalleryService),V(3,t.IURLImageService),V(4,t.IUniverInstanceService),V(5,(0,t.Inject)(Z))],Q);let qe=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._commandService=e,this._renderManagerService=t,this._drawingManagerService=n,this._dialogService=r,this._imageIoService=i,this._currentUniverService=a,this._drawingRenderService=o,this._initialize()}dispose(){super.dispose()}_initialize(){this._drawingAddListener(),this._commandExecutedListener(),this._imageUpdateListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===j.id){let t=e.params;if(t==null)return;this._resetImageSize(t)}}))}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;return n==null?null:{scene:n,transformer:n.getTransformerByCreate()}}_resetImageSize(e){let r=[],i=[];e.forEach(e=>{let{unitId:a,subUnitId:o,drawingId:s}=e,c=this._getSceneAndTransformerByDrawingSearch(a);if(c==null)return;let{scene:l}=c,u=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:a,subUnitId:o,drawingId:s}),d=l.getObject(u);if(d==null)return!0;let f=this._drawingManagerService.getDrawingByParam(e);if(f==null)return!0;if(f.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE)return;d.resetSize();let{width:p,height:m}=d.getNativeSize();i.includes(l)===!1&&i.push(l),r.push({...f,transform:{...f.transform,height:m,width:p,angle:0},srcRect:null,prstGeom:null})}),this._drawingManagerService.featurePluginUpdateNotification(r),i.forEach(e=>{e.getTransformerByCreate().refreshControls().changeNotification()}),this._commandService.syncExecuteCommand(n.SetDrawingSelectedOperation.id,e)}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.pipe((0,o.bufferTime)(33),(0,o.filter)(e=>e.length>0),(0,o.map)(e=>e.flat()),(0,o.map)(e=>{let t=new Map;for(let n of e)t.set(`${n.unitId}|${n.subUnitId}|${n.drawingId}`,n);return[...t.values()]}),(0,o.filter)(e=>e.length>0)).subscribe(e=>{this._insertImages(e)}))}_insertImages(e){e.forEach(async e=>{var t;let{unitId:n,subUnitId:r}=e,i=this._getSceneAndTransformerByDrawingSearch(n),a=(t=N(this._currentUniverService,n))==null?void 0:t.subUnitId;if(i==null||a!==r)return;let o=this._drawingManagerService.getDrawingByParam(e);if(o==null)return;let s=await this._drawingRenderService.renderImages(o,i.scene);if(this._drawingManagerService.refreshTransform([o]),!(s==null||s.length===0))for(let e of s)this._addHoverForImage(e),this._addDialogForImage(e)})}_imageUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let{unitId:r,subUnitId:i,drawingId:a}=e,o=this._drawingManagerService.getDrawingByParam(e);if(o==null)return;let{transform:s,drawingType:c,srcRect:l,prstGeom:u,source:d,imageSourceType:f}=o;if(c!==t.DrawingTypeEnum.DRAWING_IMAGE)return;let p=this._getSceneAndTransformerByDrawingSearch(r);if(p==null)return;let{scene:m,transformer:h}=p;if(s==null)return!0;let g=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:r,subUnitId:i,drawingId:a}),_=m.getObject(g);if(_==null)return!0;_.setSrcRect(l),_.setPrstGeom(u),d!=null&&d.length>0&&(f===t.ImageSourceType.BASE64||f===t.ImageSourceType.URL)&&_.changeSource(d)})}))}_addHoverForImage(e){this.disposeWithMe((0,t.toDisposable)(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=r.CURSOR_TYPE.GRAB}))),this.disposeWithMe((0,t.toDisposable)(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=r.CURSOR_TYPE.DEFAULT})))}_addDialogForImage(e){this.disposeWithMe((0,t.toDisposable)(e.onDblclick$.subscribeEvent(()=>{let t=`${e.oKey}-viewer-dialog`;this._drawingRenderService.previewImage(t,e.getNative().src,e.getNativeSize().width,e.getNativeSize().height)})))}};qe=H([V(0,t.ICommandService),V(1,r.IRenderManagerService),V(2,n.IDrawingManagerService),V(3,a.IDialogService),V(4,n.IImageIoService),V(5,t.IUniverInstanceService),V(6,(0,t.Inject)(Q))],qe);let $=class extends t.Plugin{constructor(e=ee,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{menu:i,...a}=(0,t.merge)({},ee,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(I,a)}onStarting(){this._initDependencies()}onRendered(){this._injector.get(q),this._injector.get(U),this._injector.get(X),this._injector.get(qe)}_initDependencies(){[[Z],[Q],[q],[U],[X],[qe]].forEach(e=>this._injector.add(e))}};K($,`pluginName`,`UNIVER_DRAWING_UI_PLUGIN`),K($,`packageName`,P),K($,`version`,F),$=H([V(1,(0,t.Inject)(t.Injector)),V(2,t.IConfigService)],$);let Je=e=>{let n=(0,a.useDependency)(t.ICommandService),r=(0,a.useDependency)(t.LocaleService),{drawings:o,alignShow:d}=e,[f,p]=(0,i.useState)(l.default),m=[{label:r.t(`image-panel.align.default`),value:l.default},{options:[{label:r.t(`image-panel.align.left`),value:l.left},{label:r.t(`image-panel.align.center`),value:l.center},{label:r.t(`image-panel.align.right`),value:l.right}]},{options:[{label:r.t(`image-panel.align.top`),value:l.top},{label:r.t(`image-panel.align.middle`),value:l.middle},{label:r.t(`image-panel.align.bottom`),value:l.bottom}]},{options:[{label:r.t(`image-panel.align.horizon`),value:l.horizon},{label:r.t(`image-panel.align.vertical`),value:l.vertical}]}];function h(e){p(e),n.executeCommand(u.id,{alignType:e,drawings:o})}return(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-relative univer-w-full`,{"univer-hidden":!d}),children:[(0,c.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,c.jsx)(`div`,{children:r.t(`image-panel.align.title`)})}),(0,c.jsx)(`div`,{className:`univer-relative univer-mt-2.5 univer-flex univer-h-full`,children:(0,c.jsx)(`div`,{className:`univer-w-full univer-text-gray-900 dark:!univer-text-white`,children:(0,c.jsx)(s.Select,{value:f,options:m,onChange:h})})})]})},Ye=e=>{let{arrangeShow:r,drawings:o}=e,l=(0,a.useDependency)(t.LocaleService),u=(0,a.useDependency)(n.IDrawingManagerService),d=(0,a.useDependency)(t.ICommandService),f=(0,a.useDependency)(a.ComponentManager),p=f.get(`MoveUpIcon`),m=f.get(`MoveDownIcon`),h=f.get(`TopmostIcon`),g=f.get(`BottomIcon`),[_,v]=(0,i.useState)(o);(0,i.useEffect)(()=>{let e=u.focus$.subscribe(e=>{v(e)});return()=>{e.unsubscribe()}},[]);let b=e=>{d.syncExecuteCommand(y.id,{arrangeType:e,drawings:_})};return(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!r}),children:[(0,c.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,c.jsx)(`div`,{children:l.t(`image-panel.arrange.title`)})}),(0,c.jsxs)(`div`,{className:`univer-grid univer-grid-cols-2 univer-gap-2`,children:[(0,c.jsxs)(s.Button,{onClick:()=>{b(t.ArrangeTypeEnum.forward)},children:[(0,c.jsx)(p,{}),l.t(`image-panel.arrange.forward`)]}),(0,c.jsxs)(s.Button,{onClick:()=>{b(t.ArrangeTypeEnum.backward)},children:[(0,c.jsx)(m,{}),l.t(`image-panel.arrange.backward`)]}),(0,c.jsxs)(s.Button,{onClick:()=>{b(t.ArrangeTypeEnum.front)},children:[(0,c.jsx)(h,{}),l.t(`image-panel.arrange.front`)]}),(0,c.jsxs)(s.Button,{onClick:()=>{b(t.ArrangeTypeEnum.back)},children:[(0,c.jsx)(g,{}),l.t(`image-panel.arrange.back`)]})]})]})},Xe=e=>{let o=(0,a.useDependency)(t.LocaleService),l=(0,a.useDependency)(r.IRenderManagerService),u=(0,a.useDependency)(n.IDrawingManagerService),d=(0,a.useDependency)(t.ICommandService),f=(0,a.useDependency)(a.ComponentManager),{hasGroup:p,drawings:m}=e,h=f.get(`GroupIcon`),g=f.get(`UngroupIcon`),[_,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(!0),[x,S]=(0,i.useState)(!0),C=()=>{d.syncExecuteCommand(T.id,{drawings:m})},w=()=>{d.syncExecuteCommand(E.id,{drawings:m})};return(0,i.useEffect)(()=>{let e=m[0];if(e==null)return;let{unitId:n}=e,r=l.getRenderById(n),i=r==null?void 0:r.scene;if(i==null)return;let a=i.getTransformerByCreate(),o=a.clearControl$.subscribe(e=>{e===!0&&v(!1)}),s=a.changeStart$.subscribe(e=>{let{objects:n}=e,r=W(n,u),i=r.filter(e=>(e==null?void 0:e.drawingType)===t.DrawingTypeEnum.DRAWING_GROUP),a=!1,o=!1;r.length>1&&(a=!0),i.length>0&&(o=!0),v(a||o),b(a),S(o)});return()=>{s.unsubscribe(),o.unsubscribe()}},[]),(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":p===!0&&_===!1||p===!1}),children:[(0,c.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,c.jsx)(`div`,{children:o.t(`image-panel.group.title`)})}),(0,c.jsxs)(`div`,{className:`univer-flex univer-items-center univer-justify-center univer-gap-2`,children:[(0,c.jsxs)(s.Button,{className:(0,s.clsx)({"univer-hidden":!y}),onClick:C,children:[(0,c.jsx)(h,{}),o.t(`image-panel.group.group`)]}),(0,c.jsxs)(s.Button,{className:(0,s.clsx)({"univer-hidden":!x}),onClick:w,children:[(0,c.jsx)(g,{}),o.t(`image-panel.group.unGroup`)]})]})]})},Ze=[-360,360],Qe=e=>{var o;let l=(0,a.useDependency)(t.LocaleService),u=(0,a.useDependency)(n.IDrawingManagerService),d=(0,a.useDependency)(r.IRenderManagerService),{drawings:f,transformShow:p}=e,m=f[0];if(m==null)return;let h=m.transform;if(h==null)return;let{unitId:g,subUnitId:_,drawingId:v,drawingType:y}=m,b=d.getRenderById(g),x=b==null?void 0:b.scene;if(x==null)return;let S=(o=x.getEngine())==null?void 0:o.activeScene;if(S==null)return;let C=x.getTransformerByCreate(),{width:w=0,height:T=0,left:E=0,top:D=0,angle:O=0}=h,[k,A]=(0,i.useState)(w),[j,M]=(0,i.useState)(T),[N,P]=(0,i.useState)(E),[F,I]=(0,i.useState)(D),[ee,L]=(0,i.useState)(O),[R,te]=(0,i.useState)(C.keepRatio),z=(e,t,n,r)=>{let{width:i,height:a}=S,{ancestorLeft:o,ancestorTop:s}=x,c=e,l=t,u=n,d=r;return e+o<0&&(c=-o),t+s<0&&(l=-s),u=i-c-o,u<20&&(u=20),d=a-l-s,d<20&&(d=20),e+u+o>i&&(c=i-n-o),t+d+s>a&&(l=a-r-s),{limitLeft:c,limitTop:l,limitWidth:u,limitHeight:d}},B=e=>{let{objects:t}=e,n=W(t,u);if(n.length!==1)return;let r=n[0];if(r==null)return;let{transform:i}=r;if(i==null)return;let{width:a,height:o,left:s,top:c,angle:l}=i;a!=null&&A(a),o!=null&&M(o),s!=null&&P(s),c!=null&&I(c),l!=null&&L(l)};(0,i.useEffect)(()=>{let e=[C.changeStart$.subscribe(e=>{B(e)}),C.changing$.subscribe(e=>{B(e)}),C.changeEnd$.subscribe(e=>{B(e)}),u.focus$.subscribe(e=>{if(e.length!==1)return;let t=u.getDrawingByParam(e[0]);if(t==null)return;let n=t.transform;if(n==null)return;let{width:r,height:i,left:a,top:o,angle:s}=n;r!=null&&A(r),i!=null&&M(i),a!=null&&P(a),o!=null&&I(o),s!=null&&L(s)})];return()=>{e.forEach(e=>e.unsubscribe())}},[]);let ne=(0,t.debounce)(e=>{if(e==null)return;let{limitWidth:t,limitHeight:n}=z(N,F,e,j);e=Math.min(e,t);let r={unitId:g,subUnitId:_,drawingId:v,drawingType:y,transform:{width:e}};if(R){let t=e/k*j;if(t=Math.max(t,20),t>n)return;M(t),r.transform.height=t}A(e),u.featurePluginUpdateNotification([r]),C.refreshControls().changeNotification()},300),re=(0,t.debounce)(e=>{if(e==null)return;let{limitHeight:t,limitWidth:n}=z(N,F,k,e);e=Math.min(e,t);let r={unitId:g,subUnitId:_,drawingId:v,drawingType:y,transform:{height:e}};if(R){let t=e/j*k;if(t=Math.max(t,20),t>n)return;A(t),r.transform.width=t}M(e),u.featurePluginUpdateNotification([r]),C.refreshControls().changeNotification()},300),ie=(0,t.debounce)(e=>{if(e==null)return;let{limitLeft:t}=z(e,F,k,j);e=t;let n={unitId:g,subUnitId:_,drawingId:v,drawingType:y,transform:{left:e}};P(e),u.featurePluginUpdateNotification([n]),C.refreshControls().changeNotification()},300),ae=(0,t.debounce)(e=>{if(e==null)return;let{limitTop:t}=z(N,e,k,j);e=t;let n={unitId:g,subUnitId:_,drawingId:v,drawingType:y,transform:{top:e}};I(e),u.featurePluginUpdateNotification([n]),C.refreshControls().changeNotification()},300),oe=e=>{if(e==null)return;let t={unitId:g,subUnitId:_,drawingId:v,drawingType:y,transform:{angle:e}};L(e),u.featurePluginUpdateNotification([t]),C.refreshControls().changeNotification()},se=e=>{te(e),C.keepRatio=e};return(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!p}),children:[(0,c.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,c.jsx)(`div`,{children:l.t(`image-panel.transform.title`)})}),(0,c.jsxs)(`div`,{className:`univer-grid univer-grid-cols-3 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.width`)}),(0,c.jsx)(s.InputNumber,{precision:1,value:k,min:20,onChange:e=>{ne(e)}})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.height`)}),(0,c.jsx)(s.InputNumber,{precision:1,value:j,min:20,onChange:e=>{re(e)}})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.lock`)}),(0,c.jsx)(`div`,{className:`univer-text-center`,children:(0,c.jsx)(s.Checkbox,{checked:R,onChange:se})})]})]}),(0,c.jsxs)(`div`,{className:`univer-grid univer-grid-cols-3 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2`,children:[(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.x`)}),(0,c.jsx)(s.InputNumber,{precision:1,value:N,onChange:e=>{ie(e)}})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.y`)}),(0,c.jsx)(s.InputNumber,{precision:1,value:F,onChange:e=>{ae(e)}})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`span`,{children:l.t(`image-panel.transform.rotate`)}),(0,c.jsx)(s.InputNumber,{precision:1,value:ee,min:Ze[0],max:Ze[1],onChange:oe})]})]})]})},$e=e=>{let n=(0,a.useDependency)(t.ICommandService),r=(0,a.useDependency)(t.LocaleService),o=(0,a.useDependency)(Z),l=(0,a.useDependency)(a.ComponentManager),u=(0,a.useObservable)(o.canUseShapeClip$,!1),{drawings:d,cropperShow:f}=e;if(d[0]==null)return;let[p,m]=(0,i.useState)(k.FREE),h=(0,i.useRef)(!1),g=[{label:r.t(`image-panel.crop.mode`),value:k.FREE},{label:`1:1`,value:k.R1_1},{label:`16:9`,value:k.R16_9},{label:`9:16`,value:k.R9_16},{label:`5:4`,value:k.R5_4},{label:`4:5`,value:k.R4_5},{label:`4:3`,value:k.R4_3},{label:`3:4`,value:k.R3_4},{label:`3:2`,value:k.R3_2},{label:`2:3`,value:k.R2_3}];(0,i.useEffect)(()=>{let e=n.onCommandExecuted(e=>{if(e.id===O.id){let t=e.params;t!=null&&t.isAuto||(h.current=!1)}});return()=>{e==null||e.dispose()}},[]);function _(e){m(e),h.current&&n.executeCommand(A.id,{cropType:e})}let v=e=>{n.executeCommand(A.id,{cropType:e}),h.current=!0};return(0,c.jsxs)(`div`,{className:(0,s.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!f}),children:[(0,c.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,c.jsx)(`div`,{children:r.t(`image-panel.crop.title`)})}),(0,c.jsxs)(`div`,{className:`univer-flex univer-items-center univer-justify-center univer-gap-2`,children:[(0,c.jsxs)(s.Button,{onClick:()=>{v(p)},children:[(0,c.jsx)(ae,{}),r.t(`image-panel.crop.start`)]}),(0,c.jsx)(s.Select,{value:p,options:g,onChange:_})]}),u&&(()=>{let e=l.get(`sheet.image-clip.shape.picker.component`);return e?(0,c.jsx)(e,{}):null})()]})};e.AutoImageCropOperation=A,e.COMPONENT_IMAGE_POPUP_MENU=Ue,e.CancelDrawingGroupOperation=E,e.CloseImageCropOperation=O,e.DRAWING_GROUP_TYPES=w,e.DrawingCommonPanel=e=>{let o=(0,a.useDependency)(n.IDrawingManagerService),l=(0,a.useDependency)(r.IRenderManagerService),u=(0,a.useDependency)(t.LocaleService),{drawings:d,hasArrange:f=!0,hasTransform:p=!0,hasAlign:m=!0,hasCropper:h=!0,hasGroup:g=!0}=e,_=d[0];if(_==null)return;let{unitId:v}=_,y=l.getRenderById(v),b=y==null?void 0:y.scene;if(b==null)return;let x=b.getTransformerByCreate(),[S,C]=(0,i.useState)(!0),[w,T]=(0,i.useState)(!0),[E,D]=(0,i.useState)(!1),[O,k]=(0,i.useState)(!0),[A,j]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let e=x.clearControl$.subscribe(e=>{e===!0&&(C(!1),T(!1),D(!1),k(!1),j(!0))}),t=x.changeStart$.subscribe(e=>{let{objects:t}=e,n=W(t,o);n.length===0?(C(!1),T(!1),D(!1),k(!1),j(!0)):n.length===1?(C(!0),T(!0),D(!1),k(!0),j(!1)):(C(!0),T(!1),D(!0),k(!1),j(!1))}),n=o.focus$.subscribe(e=>{e.length===0?(C(!1),T(!1),D(!1),k(!1),j(!0)):e.length===1?(C(!0),T(!0),D(!1),k(!0),j(!1)):(C(!0),T(!1),D(!0),k(!1),j(!1))});return()=>{t.unsubscribe(),e.unsubscribe(),n.unsubscribe()}},[]),(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`div`,{className:(0,s.clsx)(`univer-h-full`,{"univer-hidden":!A}),children:(0,c.jsx)(`div`,{className:`univer-flex univer-h-full univer-items-center univer-justify-center`,children:(0,c.jsx)(`span`,{children:u.t(`image-panel.null`)})})}),(0,c.jsx)(Ye,{arrangeShow:f===!0?S:!1,drawings:d}),(0,c.jsx)(Qe,{transformShow:p===!0?w:!1,drawings:d}),(0,c.jsx)(Je,{alignShow:m===!0?E:!1,drawings:d}),(0,c.jsx)($e,{cropperShow:h===!0?O:!1,drawings:d}),(0,c.jsx)(Xe,{hasGroup:g,drawings:d})]})},e.DrawingImageClipService=Z,Object.defineProperty(e,`DrawingRenderService`,{enumerable:!0,get:function(){return Q}}),e.IMAGE_CLIP_SHAPE_PICKER_COMPONENT=`sheet.image-clip.shape.picker.component`,e.ImageCropperObject=Y,e.ImagePopupMenu=We,e.ImageResetSizeOperation=j,e.OpenImageCropOperation=D,e.SetDrawingAlignOperation=u,e.SetDrawingArrangeOperation=y,e.SetDrawingGroupOperation=T,Object.defineProperty(e,`UniverDrawingUIPlugin`,{enumerable:!0,get:function(){return $}}),e.getCurrentUnitInfo=N,e.getUpdateParams=W,e.insertGroupObject=M});
|
|
6
6
|
|
|
7
7
|
// @univerjs/sheets-drawing/index
|
|
8
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/sheets`),require(`@univerjs/core`),require(`@univerjs/drawing`),require(`@univerjs/engine-render`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/sheets`,`@univerjs/core`,`@univerjs/drawing`,`@univerjs/engine-render`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawing={},e.UniverSheets,e.UniverCore,e.UniverDrawing,e.UniverEngineRender))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function a(e,n){if(!n)return;let{unitId:r,sheetId:i,skeleton:a}=n,{from:o,to:s,flipY:c=!1,flipX:l=!1,angle:u=0,skewX:d=0,skewY:f=0}=e,{left:p,top:m,width:h,height:g}=(0,t.convertPositionSheetOverGridToAbsolute)(r,i,{from:o,to:s},a),_=a.rowHeaderWidth+a.columnTotalWidth,v=a.columnHeaderHeight+a.rowTotalHeight;return p+h>_&&(p=_-h),m+g>v&&(m=v-g),{flipY:c,flipX:l,angle:u,skewX:d,skewY:f,left:p,top:m,width:h,height:g}}function o(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e;return{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,from:t.getCellIndexAndOffsetByPosition(n,r),to:t.getCellIndexAndOffsetByPosition(n+i,r+a)}}function s(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:s=0}=e,c=(s%360+360)%360;return o(c>=45&&c<135||c>=225&&c<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}let c=function(e){return e.Position=`0`,e.Both=`1`,e.None=`2`,e}({});var l=class extends r.UnitDrawingService{};let u=(0,n.createIdentifier)(`sheets-drawing.sheet-drawing.service`),d=function(e){return e[e.INSERT=0]=`INSERT`,e[e.REMOVE=1]=`REMOVE`,e[e.UPDATE=2]=`UPDATE`,e[e.ARRANGE=3]=`ARRANGE`,e[e.GROUP=4]=`GROUP`,e[e.UNGROUP=5]=`UNGROUP`,e}({}),f={id:`sheet.mutation.set-drawing-apply`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(r.IDrawingManagerService),i=e.get(u),{op:a,unitId:o,subUnitId:s,type:c,objects:l}=t;switch(n.applyJson1(o,s,a),i.applyJson1(o,s,a),c){case d.INSERT:n.addNotification(l),i.addNotification(l);break;case d.REMOVE:n.removeNotification(l),i.removeNotification(l);break;case d.UPDATE:n.updateNotification(l),i.updateNotification(l);break;case d.ARRANGE:n.orderNotification(l),i.orderNotification(l);break;case d.GROUP:n.groupUpdateNotification(l),i.groupUpdateNotification(l);break;case d.UNGROUP:n.ungroupUpdateNotification(l),i.ungroupUpdateNotification(l);break}return!0}},p={id:`sheet.operation.clear-drawing-transformer`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(i.IRenderManagerService);return t.forEach(e=>{var t;(t=n.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},m={id:`sheet.command.insert-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(n.ICommandService),s=e.get(n.IUndoRedoService),c=e.get(u),l=e.get(t.SheetInterceptorService),h=r.drawings,{unitId:g,subUnitId:_,undo:v,redo:y,objects:b}=c.getBatchAddOp(h),x=l.onCommandExecute({id:m.id,params:r}),S=[...(i=x.preRedos)==null?[]:i,{id:f.id,params:{unitId:g,subUnitId:_,op:y,objects:b,type:d.INSERT}},{id:p.id,params:[g]},...x.redos],C=[...(a=x.preUndos)==null?[]:a,{id:f.id,params:{unitId:g,subUnitId:_,op:v,objects:b,type:d.REMOVE}},{id:p.id,params:[g]},...x.undos];return(0,n.sequenceExecute)(S,o)?(s.pushUndoRedo({unitID:g,undoMutations:C,redoMutations:S}),!0):!1}},h={id:`sheet.command.remove-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(n.ICommandService),s=e.get(n.IUndoRedoService),c=e.get(t.SheetInterceptorService),l=e.get(u),{drawings:m}=r,{unitId:g,subUnitId:_,undo:v,redo:y,objects:b}=l.getBatchRemoveOp(m),x=c.onCommandExecute({id:h.id,params:r}),S=[...(i=x.preRedos)==null?[]:i,{id:f.id,params:{unitId:g,subUnitId:_,op:y,objects:b,type:d.REMOVE}},{id:p.id,params:[g]},...x.redos],C=[...(a=x.preUndos)==null?[]:a,{id:f.id,params:{unitId:g,subUnitId:_,op:v,objects:b,type:d.INSERT}},{id:p.id,params:[g]},...x.undos];return(0,n.sequenceExecute)(S,o)?(s.pushUndoRedo({unitID:g,undoMutations:C,redoMutations:S}),!0):!1}},g={id:`sheet.command.set-drawing-arrange`,type:n.CommandType.COMMAND,handler:(e,t)=>{let r=e.get(n.ICommandService),i=e.get(n.IUndoRedoService);if(!t)return!1;let a=e.get(u),{unitId:o,subUnitId:s,drawingIds:c,arrangeType:l}=t,p={unitId:o,subUnitId:s,drawingIds:c},m;if(l===n.ArrangeTypeEnum.forward?m=a.getForwardDrawingsOp(p):l===n.ArrangeTypeEnum.backward?m=a.getBackwardDrawingOp(p):l===n.ArrangeTypeEnum.front?m=a.getFrontDrawingsOp(p):l===n.ArrangeTypeEnum.back&&(m=a.getBackDrawingsOp(p)),m==null)return!1;let{objects:h,redo:g,undo:_}=m;return r.syncExecuteCommand(f.id,{op:g,unitId:o,subUnitId:s,objects:h,type:d.ARRANGE})?(i.pushUndoRedo({unitID:o,undoMutations:[{id:f.id,params:{op:_,unitId:o,subUnitId:s,objects:h,type:d.ARRANGE}}],redoMutations:[{id:f.id,params:{op:g,unitId:o,subUnitId:s,objects:h,type:d.ARRANGE}}]}),!0):!1}},_={id:`sheet.command.set-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(n.ICommandService),s=e.get(n.IUndoRedoService),c=e.get(u),l=e.get(t.SheetInterceptorService),{drawings:m}=r,{unitId:h,subUnitId:g,undo:v,redo:y,objects:b}=c.getBatchUpdateOp(m),x=l.onCommandExecute({id:_.id,params:r}),S=[...(i=x.preRedos)==null?[]:i,{id:f.id,params:{unitId:h,subUnitId:g,op:y,objects:b,type:d.UPDATE}},{id:p.id,params:[h]},...x.redos],C=[...(a=x.preUndos)==null?[]:a,{id:f.id,params:{unitId:h,subUnitId:g,op:v,objects:b,type:d.UPDATE}},{id:p.id,params:[h]},...x.undos];return(0,n.sequenceExecute)(S,o)?(s.pushUndoRedo({unitID:h,undoMutations:C,redoMutations:S}),!0):!1}};function v(e,t){return function(n,r){t(n,r,e)}}function y(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let b=`SHEET_DRAWING_PLUGIN`,x=class extends n.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._commandService=n,this._sheetDrawingService=r,this._drawingManagerService=i,this._resourceManagerService=a,this._initCommands(),this._initSnapshot(),this._initSheetChange(),this.disposeWithMe(this._commandService.registerCommand(f))}_initCommands(){[_,m,h,g,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initSnapshot(){let e=(e,t)=>{let n=t||this._sheetDrawingService.getDrawingDataForUnit(e);return n?JSON.stringify(n):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:b,businesses:[n.UniverInstanceType.UNIVER_SHEET],toJson:(t,n)=>e(t,n),parseJson:e=>t(e),onUnLoad:e=>{this._sheetDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)},onLoad:(e,t)=>{this._sheetDrawingService.registerDrawingData(e,t),this._drawingManagerService.registerDrawingData(e,t)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===t.RemoveSheetCommand.id){var r;let t=e.params,i=t.unitId||this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=t.subUnitId||((r=this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:r.getSheetId());if(!i||!a)return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(i,a),s=Object.values(o).filter(e=>e.drawingType!==n.DrawingTypeEnum.DRAWING_CHART);if(s.length===0)return{redos:[],undos:[]};let{unitId:c,subUnitId:l,undo:u,redo:p,objects:m}=this._sheetDrawingService.getBatchRemoveOp(s);return{redos:[{id:f.id,params:{op:p,unitId:c,subUnitId:l,objects:m,type:d.REMOVE}}],undos:[{id:f.id,params:{op:u,unitId:c,subUnitId:l,objects:m,type:d.INSERT}}]}}else if(e.id===t.CopySheetCommand.id){let{unitId:t,subUnitId:r,targetSubUnitId:i}=e.params;if(!t||!r||!i)return{redos:[],undos:[]};let a=this._sheetDrawingService.getDrawingData(t,r),o=Object.values(a).filter(e=>e.drawingType!==n.DrawingTypeEnum.DRAWING_CHART).map(e=>({...e,subUnitId:i,drawingId:(0,n.generateRandomId)(6)}));if(o.length===0)return{redos:[],undos:[]};let{unitId:s,subUnitId:c,undo:l,redo:u,objects:p}=this._sheetDrawingService.getBatchAddOp(o);return{redos:[{id:f.id,params:{op:u,unitId:s,subUnitId:c,objects:p,type:d.INSERT}}],undos:[{id:f.id,params:{op:l,unitId:s,subUnitId:c,objects:p,type:d.REMOVE}}]}}return{redos:[],undos:[]}}}))}};x=y([v(0,(0,n.Inject)(t.SheetInterceptorService)),v(1,(0,n.Inject)(n.IUniverInstanceService)),v(2,n.ICommandService),v(3,u),v(4,r.IDrawingManagerService),v(5,n.IResourceManagerService)],x);var S=`@univerjs/sheets-drawing`,C=`0.20.0`;let w=`sheets-drawing.config`;Symbol(w);let T={};function E(e){"@babel/helpers - typeof";return E=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},E(e)}function D(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function O(e){var t=D(e,`string`);return E(t)==`symbol`?t:t+``}function k(e,t,n){return(t=O(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let A=class extends n.Plugin{constructor(e=T,t,r){super(),this._config=e,this._injector=t,this._configService=r;let{...i}=(0,n.merge)({},T,this._config);this._configService.setConfig(w,i)}onStarting(){[[x],[u,{useClass:l}]].forEach(e=>this._injector.add(e)),this._injector.get(x)}};k(A,`pluginName`,b),k(A,`packageName`,S),k(A,`version`,C),k(A,`type`,n.UniverInstanceType.UNIVER_SHEET),A=y([(0,n.DependentOn)(r.UniverDrawingPlugin),v(1,(0,n.Inject)(n.Injector)),v(2,n.IConfigService)],A),e.ClearSheetDrawingTransformerOperation=p,e.DrawingApplyType=d,e.ISheetDrawingService=u,e.InsertSheetDrawingCommand=m,e.RemoveSheetDrawingCommand=h,e.SHEET_DRAWING_PLUGIN=b,e.SetDrawingApplyMutation=f,e.SetDrawingArrangeCommand=g,e.SetSheetDrawingCommand=_,e.SheetDrawingAnchorType=c,Object.defineProperty(e,`UniverSheetsDrawingPlugin`,{enumerable:!0,get:function(){return A}}),e.drawingPositionToTransform=a,e.transformToAxisAlignPosition=s,e.transformToDrawingPosition=o});
|
|
8
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/sheets`),require(`@univerjs/core`),require(`@univerjs/drawing`),require(`@univerjs/engine-render`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/sheets`,`@univerjs/core`,`@univerjs/drawing`,`@univerjs/engine-render`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawing={},e.UniverSheets,e.UniverCore,e.UniverDrawing,e.UniverEngineRender))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function a(e,n){if(!n)return;let{unitId:r,sheetId:i,skeleton:a}=n,{from:o,to:s,flipY:c=!1,flipX:l=!1,angle:u=0,skewX:d=0,skewY:f=0}=e,{left:p,top:m,width:h,height:g}=(0,t.convertPositionSheetOverGridToAbsolute)(r,i,{from:o,to:s},a),_=a.rowHeaderWidth+a.columnTotalWidth,v=a.columnHeaderHeight+a.rowTotalHeight;return p+h>_&&(p=_-h),m+g>v&&(m=v-g),{flipY:c,flipX:l,angle:u,skewX:d,skewY:f,left:p,top:m,width:h,height:g}}function o(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e;return{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,from:t.getCellIndexAndOffsetByPosition(n,r),to:t.getCellIndexAndOffsetByPosition(n+i,r+a)}}function s(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:s=0}=e,c=(s%360+360)%360;return o(c>=45&&c<135||c>=225&&c<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}let c=function(e){return e.Position=`0`,e.Both=`1`,e.None=`2`,e}({});var l=class extends r.UnitDrawingService{};let u=(0,n.createIdentifier)(`sheets-drawing.sheet-drawing.service`),d=function(e){return e[e.INSERT=0]=`INSERT`,e[e.REMOVE=1]=`REMOVE`,e[e.UPDATE=2]=`UPDATE`,e[e.ARRANGE=3]=`ARRANGE`,e[e.GROUP=4]=`GROUP`,e[e.UNGROUP=5]=`UNGROUP`,e}({}),f={id:`sheet.mutation.set-drawing-apply`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(r.IDrawingManagerService),i=e.get(u),{op:a,unitId:o,subUnitId:s,type:c,objects:l}=t;switch(n.applyJson1(o,s,a),i.applyJson1(o,s,a),c){case d.INSERT:n.addNotification(l),i.addNotification(l);break;case d.REMOVE:n.removeNotification(l),i.removeNotification(l);break;case d.UPDATE:n.updateNotification(l),i.updateNotification(l);break;case d.ARRANGE:n.orderNotification(l),i.orderNotification(l);break;case d.GROUP:n.groupUpdateNotification(l),i.groupUpdateNotification(l);break;case d.UNGROUP:n.ungroupUpdateNotification(l),i.ungroupUpdateNotification(l);break}return!0}},p={id:`sheet.operation.clear-drawing-transformer`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(i.IRenderManagerService);return t.forEach(e=>{var t;(t=n.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},m={id:`sheet.command.insert-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(n.ICommandService),s=e.get(n.IUndoRedoService),c=e.get(u),l=e.get(t.SheetInterceptorService),h=r.drawings,{unitId:g,subUnitId:_,undo:v,redo:y,objects:b}=c.getBatchAddOp(h),x=l.onCommandExecute({id:m.id,params:r}),S=[...(i=x.preRedos)==null?[]:i,{id:f.id,params:{unitId:g,subUnitId:_,op:y,objects:b,type:d.INSERT}},{id:p.id,params:[g]},...x.redos],C=[...(a=x.preUndos)==null?[]:a,{id:f.id,params:{unitId:g,subUnitId:_,op:v,objects:b,type:d.REMOVE}},{id:p.id,params:[g]},...x.undos];return(0,n.sequenceExecute)(S,o)?(s.pushUndoRedo({unitID:g,undoMutations:C,redoMutations:S}),!0):!1}},h={id:`sheet.command.remove-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(n.ICommandService),s=e.get(n.IUndoRedoService),c=e.get(t.SheetInterceptorService),l=e.get(u),{drawings:m}=r,{unitId:g,subUnitId:_,undo:v,redo:y,objects:b}=l.getBatchRemoveOp(m),x=c.onCommandExecute({id:h.id,params:r}),S=[...(i=x.preRedos)==null?[]:i,{id:f.id,params:{unitId:g,subUnitId:_,op:y,objects:b,type:d.REMOVE}},{id:p.id,params:[g]},...x.redos],C=[...(a=x.preUndos)==null?[]:a,{id:f.id,params:{unitId:g,subUnitId:_,op:v,objects:b,type:d.INSERT}},{id:p.id,params:[g]},...x.undos];return(0,n.sequenceExecute)(S,o)?(s.pushUndoRedo({unitID:g,undoMutations:C,redoMutations:S}),!0):!1}},g={id:`sheet.command.set-drawing-arrange`,type:n.CommandType.COMMAND,handler:(e,t)=>{let r=e.get(n.ICommandService),i=e.get(n.IUndoRedoService);if(!t)return!1;let a=e.get(u),{unitId:o,subUnitId:s,drawingIds:c,arrangeType:l}=t,p={unitId:o,subUnitId:s,drawingIds:c},m;if(l===n.ArrangeTypeEnum.forward?m=a.getForwardDrawingsOp(p):l===n.ArrangeTypeEnum.backward?m=a.getBackwardDrawingOp(p):l===n.ArrangeTypeEnum.front?m=a.getFrontDrawingsOp(p):l===n.ArrangeTypeEnum.back&&(m=a.getBackDrawingsOp(p)),m==null)return!1;let{objects:h,redo:g,undo:_}=m;return r.syncExecuteCommand(f.id,{op:g,unitId:o,subUnitId:s,objects:h,type:d.ARRANGE})?(i.pushUndoRedo({unitID:o,undoMutations:[{id:f.id,params:{op:_,unitId:o,subUnitId:s,objects:h,type:d.ARRANGE}}],redoMutations:[{id:f.id,params:{op:g,unitId:o,subUnitId:s,objects:h,type:d.ARRANGE}}]}),!0):!1}},_={id:`sheet.command.set-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(n.ICommandService),s=e.get(n.IUndoRedoService),c=e.get(u),l=e.get(t.SheetInterceptorService),{drawings:m}=r,{unitId:h,subUnitId:g,undo:v,redo:y,objects:b}=c.getBatchUpdateOp(m),x=l.onCommandExecute({id:_.id,params:r}),S=[...(i=x.preRedos)==null?[]:i,{id:f.id,params:{unitId:h,subUnitId:g,op:y,objects:b,type:d.UPDATE}},{id:p.id,params:[h]},...x.redos],C=[...(a=x.preUndos)==null?[]:a,{id:f.id,params:{unitId:h,subUnitId:g,op:v,objects:b,type:d.UPDATE}},{id:p.id,params:[h]},...x.undos];return(0,n.sequenceExecute)(S,o)?(s.pushUndoRedo({unitID:h,undoMutations:C,redoMutations:S}),!0):!1}};function v(e,t){return function(n,r){t(n,r,e)}}function y(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let b=`SHEET_DRAWING_PLUGIN`,x=class extends n.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._commandService=n,this._sheetDrawingService=r,this._drawingManagerService=i,this._resourceManagerService=a,this._initCommands(),this._initSnapshot(),this._initSheetChange(),this.disposeWithMe(this._commandService.registerCommand(f))}_initCommands(){[_,m,h,g,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initSnapshot(){let e=(e,t)=>{let n=t||this._sheetDrawingService.getDrawingDataForUnit(e);return n?JSON.stringify(n):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:b,businesses:[n.UniverInstanceType.UNIVER_SHEET],toJson:(t,n)=>e(t,n),parseJson:e=>t(e),onUnLoad:e=>{this._sheetDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)},onLoad:(e,t)=>{this._sheetDrawingService.registerDrawingData(e,t),this._drawingManagerService.registerDrawingData(e,t)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===t.RemoveSheetCommand.id){var r;let t=e.params,i=t.unitId||this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=t.subUnitId||((r=this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:r.getSheetId());if(!i||!a)return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(i,a),s=Object.values(o).filter(e=>e.drawingType!==n.DrawingTypeEnum.DRAWING_CHART);if(s.length===0)return{redos:[],undos:[]};let{unitId:c,subUnitId:l,undo:u,redo:p,objects:m}=this._sheetDrawingService.getBatchRemoveOp(s);return{redos:[{id:f.id,params:{op:p,unitId:c,subUnitId:l,objects:m,type:d.REMOVE}}],undos:[{id:f.id,params:{op:u,unitId:c,subUnitId:l,objects:m,type:d.INSERT}}]}}else if(e.id===t.CopySheetCommand.id){let{unitId:t,subUnitId:r,targetSubUnitId:i}=e.params;if(!t||!r||!i)return{redos:[],undos:[]};let a=this._sheetDrawingService.getDrawingData(t,r),o=Object.values(a).filter(e=>e.drawingType!==n.DrawingTypeEnum.DRAWING_CHART).map(e=>({...e,subUnitId:i,drawingId:(0,n.generateRandomId)(6)}));if(o.length===0)return{redos:[],undos:[]};let{unitId:s,subUnitId:c,undo:l,redo:u,objects:p}=this._sheetDrawingService.getBatchAddOp(o);return{redos:[{id:f.id,params:{op:u,unitId:s,subUnitId:c,objects:p,type:d.INSERT}}],undos:[{id:f.id,params:{op:l,unitId:s,subUnitId:c,objects:p,type:d.REMOVE}}]}}return{redos:[],undos:[]}}}))}};x=y([v(0,(0,n.Inject)(t.SheetInterceptorService)),v(1,(0,n.Inject)(n.IUniverInstanceService)),v(2,n.ICommandService),v(3,u),v(4,r.IDrawingManagerService),v(5,n.IResourceManagerService)],x);var S=`@univerjs/sheets-drawing`,C=`0.20.1`;let w=`sheets-drawing.config`;Symbol(w);let T={};function E(e){"@babel/helpers - typeof";return E=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},E(e)}function D(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function O(e){var t=D(e,`string`);return E(t)==`symbol`?t:t+``}function k(e,t,n){return(t=O(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let A=class extends n.Plugin{constructor(e=T,t,r){super(),this._config=e,this._injector=t,this._configService=r;let{...i}=(0,n.merge)({},T,this._config);this._configService.setConfig(w,i)}onStarting(){[[x],[u,{useClass:l}]].forEach(e=>this._injector.add(e)),this._injector.get(x)}};k(A,`pluginName`,b),k(A,`packageName`,S),k(A,`version`,C),k(A,`type`,n.UniverInstanceType.UNIVER_SHEET),A=y([(0,n.DependentOn)(r.UniverDrawingPlugin),v(1,(0,n.Inject)(n.Injector)),v(2,n.IConfigService)],A),e.ClearSheetDrawingTransformerOperation=p,e.DrawingApplyType=d,e.ISheetDrawingService=u,e.InsertSheetDrawingCommand=m,e.RemoveSheetDrawingCommand=h,e.SHEET_DRAWING_PLUGIN=b,e.SetDrawingApplyMutation=f,e.SetDrawingArrangeCommand=g,e.SetSheetDrawingCommand=_,e.SheetDrawingAnchorType=c,Object.defineProperty(e,`UniverSheetsDrawingPlugin`,{enumerable:!0,get:function(){return A}}),e.drawingPositionToTransform=a,e.transformToAxisAlignPosition=s,e.transformToDrawingPosition=o});
|
|
9
9
|
|
|
10
10
|
// @univerjs/sheets-drawing/facade
|
|
11
11
|
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(require(`@univerjs/core`),require(`@univerjs/core/facade`),require(`@univerjs/drawing`),require(`@univerjs/sheets`),require(`@univerjs/sheets-drawing`),require(`@univerjs/sheets/facade`)):typeof define==`function`&&define.amd?define([`@univerjs/core`,`@univerjs/core/facade`,`@univerjs/drawing`,`@univerjs/sheets`,`@univerjs/sheets-drawing`,`@univerjs/sheets/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverCore,e.UniverCoreFacade,e.UniverDrawing,e.UniverSheets,e.UniverSheetsDrawing,e.UniverSheetsFacade))})(this,function(e,t,n,r,i,a){function o(e){"@babel/helpers - typeof";return o=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},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){return function(n,r){t(n,r,e)}}function d(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){let{from:n,to:i,flipY:a=!1,flipX:o=!1,angle:s=0,skewX:c=0,skewY:l=0}=e.sheetTransform,{column:u,columnOffset:d,row:f,rowOffset:p}=n,{width:m,height:h}=(0,r.convertPositionSheetOverGridToAbsolute)(e.unitId,e.subUnitId,{from:n,to:i},t);return{...e,column:u,columnOffset:d,row:f,rowOffset:p,width:m,height:h,flipY:a,flipX:o,angle:s,skewX:c,skewY:l}}function p(e,t){let n=t.ensureSkeleton(e.unitId,e.subUnitId);if(!n)throw Error(`Skeleton for unitId ${e.unitId} and subUnitId ${e.subUnitId} not found`);let{column:a,columnOffset:o,row:s,rowOffset:c,flipY:l=!1,flipX:u=!1,angle:d=0,skewX:f=0,skewY:p=0,width:m,height:h}=e,{sheetTransform:g,transform:_}=(0,r.convertPositionCellToSheetOverGrid)(e.unitId,e.subUnitId,{column:a,columnOffset:o,row:s,rowOffset:c},m,h,n);return{...e,sheetTransform:{...g,flipY:l,flipX:u,angle:d,skewX:f,skewY:p},transform:{..._,flipY:l,flipX:u,angle:d,skewX:f,skewY:p},axisAlignSheetTransform:(0,i.transformToAxisAlignPosition)(_,n)}}let m=class{constructor(t,n,r){this._injector=r,l(this,`_image`,void 0),this._image={drawingId:(0,e.generateRandomId)(6),drawingType:e.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:e.ImageSourceType.BASE64,source:``,unitId:t,subUnitId:n,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0,axisAlignSheetTransform:{from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}}}setImage(e){let{unitId:t,subUnitId:n}=e,i=this._injector.get(r.SheetSkeletonService).getSkeleton(t,n);if(!i)throw Error(`Skeleton for unitId ${t} and subUnitId ${n} not found`);return e.sheetTransform==null&&(e.sheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),e.axisAlignSheetTransform==null&&(e.axisAlignSheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),this._image=f(e,i),this}setSource(t,n){let r=n==null?e.ImageSourceType.URL:n;return this._image.source=t,this._image.imageSourceType=r,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(e){return this._image.column=e,this}setRow(e){return this._image.row=e,this}setColumnOffset(e){return this._image.columnOffset=e,this}setRowOffset(e){return this._image.rowOffset=e,this}setWidth(e){return this._image.width=e,this}setHeight(e){return this._image.height=e,this}setAnchorType(e){return this._image.anchorType=e,this}setCropTop(e){return this._initializeSrcRect(),this._image.srcRect.top=e,this}setCropLeft(e){return this._initializeSrcRect(),this._image.srcRect.left=e,this}setCropBottom(e){return this._initializeSrcRect(),this._image.srcRect.bottom=e,this}setCropRight(e){return this._initializeSrcRect(),this._image.srcRect.right=e,this}_initializeSrcRect(){this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(e){return this._image.angle=e,this}setUnitId(e){return this._image.unitId=e,this}setSubUnitId(e){return this._image.subUnitId=e,this}async buildAsync(){let e=this._injector.get(r.SheetSkeletonService);if(this._image.width===0||this._image.height===0){let e=await(0,n.getImageSize)(this._image.source),t=e.width,r=e.height;this._image.width===0&&(this._image.width=t),this._image.height===0&&(this._image.height=r)}return p(this._image,e)}};m=d([u(2,(0,e.Inject)(e.Injector))],m);let h=class extends t.FBase{constructor(e,t,n){super(),this._image=e,this._commandService=t,this._injector=n}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(i.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){let e=this._injector.createInstance(m);return e.setImage(this._image),e}setSource(t,n){let r=n==null?e.ImageSourceType.URL:n;return this._image.source=t,this._image.imageSourceType=r,this._commandService.syncExecuteCommand(i.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(e,t,n,r){let a=this.toBuilder();a.setColumn(t),a.setRow(e),n!=null&&a.setRowOffset(n),r!=null&&a.setColumnOffset(r);let o=await a.buildAsync();return this._commandService.syncExecuteCommand(i.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[o]})}async setSizeAsync(e,t){let n=this.toBuilder();n.setWidth(e),n.setHeight(t);let r=await n.buildAsync();return this._commandService.syncExecuteCommand(i.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[r]})}setCrop(e,t,n,r){return this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0}),e!=null&&(this._image.srcRect.top=e),t!=null&&(this._image.srcRect.left=t),n!=null&&(this._image.srcRect.bottom=n),r!=null&&(this._image.srcRect.right=r),this._commandService.syncExecuteCommand(i.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(e){if(this._image.sheetTransform.angle=e,this._image.transform&&(this._image.transform.angle=e),this._image.transform){let e=this._injector.get(r.SheetSkeletonService).getSkeleton(this._image.unitId,this._image.subUnitId);if(!e)throw Error(`Skeleton for unitId ${this._image.unitId} and subUnitId ${this._image.subUnitId} not found`);this._image.axisAlignSheetTransform&&(this._image.axisAlignSheetTransform=(0,i.transformToAxisAlignPosition)(this._image.transform,e))}return this._commandService.syncExecuteCommand(i.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(i.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:e.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(i.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:e.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(i.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:e.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(i.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:e.ArrangeTypeEnum.front})}};h=d([u(1,e.ICommandService),u(2,(0,e.Inject)(e.Injector))],h);var g=class extends a.FWorksheet{async insertImage(t,n,r,a,o){let s=this.newOverGridImage();if(typeof t==`string`)s.setSource(t);else{let n=await t.getBlob().getDataAsString();s.setSource(n,e.ImageSourceType.BASE64)}n===void 0?s.setColumn(0):s.setColumn(n),r===void 0?s.setRow(0):s.setRow(r),a===void 0?s.setColumnOffset(0):s.setColumnOffset(a),o===void 0?s.setRowOffset(0):s.setRowOffset(o);let c=await s.buildAsync();return this._commandService.syncExecuteCommand(i.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[c]})}insertImages(e){let t=e.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(i.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}deleteImages(e){let t=e.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(i.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}getImages(){let t=this._injector.get(i.ISheetDrawingService).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),n=[];for(let r in t){let i=t[r];i.drawingType===e.DrawingTypeEnum.DRAWING_IMAGE&&n.push(this._injector.createInstance(h,i))}return n}getImageById(t){let n=this._injector.get(i.ISheetDrawingService).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:t});return n&&n.drawingType===e.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(h,n):null}getActiveImages(){let e=this._injector.get(i.ISheetDrawingService).getFocusDrawings(),t=[];for(let n in e){let r=e[n];t.push(this._injector.createInstance(h,r))}return t}updateImages(e){return this._commandService.syncExecuteCommand(i.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:e}),this}newOverGridImage(){let e=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(m,e,t)}};a.FWorksheet.extend(g);var _=class extends t.FEnum{get DrawingType(){return e.DrawingTypeEnum}get ImageSourceType(){return e.ImageSourceType}get SheetDrawingAnchorType(){return i.SheetDrawingAnchorType}};t.FEnum.extend(_);var v=class extends t.FEventName{get BeforeFloatDomAdd(){return`BeforeFloatDomAdd`}get FloatDomAdded(){return`FloatDomAdded`}get BeforeFloatDomUpdate(){return`BeforeFloatDomUpdate`}get FloatDomUpdated(){return`FloatDomUpdated`}get BeforeFloatDomDelete(){return`BeforeFloatDomDelete`}get FloatDomDeleted(){return`FloatDomDeleted`}get BeforeOverGridImageChange(){return`BeforeOverGridImageChange`}get OverGridImageChanged(){return`OverGridImageChanged`}get BeforeOverGridImageInsert(){return`BeforeOverGridImageInsert`}get OverGridImageInserted(){return`OverGridImageInserted`}get BeforeOverGridImageRemove(){return`BeforeOverGridImageRemove`}get OverGridImageRemoved(){return`OverGridImageRemoved`}get BeforeOverGridImageSelect(){return`BeforeOverGridImageSelect`}get OverGridImageSelected(){return`OverGridImageSelected`}};t.FEventName.extend(v);var y=class extends t.FUniver{_initialize(t){let r=t.get(e.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>r.beforeCommandExecuted(t=>{if(t.id!==i.InsertSheetDrawingCommand.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:a}=n,o={workbook:r,insertImageParams:a};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,o),o.cancel)throw new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>r.beforeCommandExecuted(r=>{if(r.id!==i.RemoveSheetDrawingCommand.id)return;let a=r.params,o=this.getActiveWorkbook();if(o==null||a==null)return;let s=t.get(n.IDrawingManagerService),{drawings:c}=a,l=c.map(e=>s.getDrawingByParam(e)),u={workbook:o,images:this._createFOverGridImage(l)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,u),u.cancel)throw new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>r.beforeCommandExecuted(r=>{if(r.id!==i.SetSheetDrawingCommand.id)return;let a=r.params,o=this.getActiveWorkbook();if(o==null||a==null)return;let{drawings:s}=a,c=t.get(n.IDrawingManagerService),l=[];s.forEach(e=>{let t=c.getDrawingByParam(e);t!=null&&l.push({changeParam:e,image:this._injector.createInstance(h,t)})});let u={workbook:o,images:l};if(this.fireEvent(this.Event.BeforeOverGridImageChange,u),u.cancel)throw c.updateNotification(s),new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>r.beforeCommandExecuted(r=>{if(r.id!==n.SetDrawingSelectedOperation.id)return;let i=r.params,a=this.getActiveWorkbook();if(a==null)return;let o=t.get(n.IDrawingManagerService),s=o.getFocusDrawings(),c=i.map(e=>o.getDrawingByParam(e)),l={workbook:a,selectedImages:this._createFOverGridImage(c),oldSelectedImages:this._createFOverGridImage(s)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,l),l.cancel)throw new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageInserted,()=>r.onCommandExecuted(e=>{if(e.id!==i.InsertSheetDrawingCommand.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,a={workbook:n,images:this._createFOverGridImage(r)};this.fireEvent(this.Event.OverGridImageInserted,a)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageRemoved,()=>r.onCommandExecuted(e=>{if(e.id!==i.RemoveSheetDrawingCommand.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,a={workbook:n,removeImageParams:r};this.fireEvent(this.Event.OverGridImageRemoved,a)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageChanged,()=>r.onCommandExecuted(e=>{if(e.id!==i.SetSheetDrawingCommand.id)return;let r=e.params,a=this.getActiveWorkbook();if(a==null||r==null)return;let{drawings:o}=r,s=t.get(n.IDrawingManagerService),c={workbook:a,images:o.map(e=>this._injector.createInstance(h,s.getDrawingByParam(e)))};this.fireEvent(this.Event.OverGridImageChanged,c)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageSelected,()=>r.onCommandExecuted(e=>{if(e.id!==n.SetDrawingSelectedOperation.id)return;let r=e.params,i=this.getActiveWorkbook();if(i==null)return;let a=t.get(n.IDrawingManagerService),o=r.map(e=>a.getDrawingByParam(e)),s={workbook:i,selectedImages:this._createFOverGridImage(o)};this.fireEvent(this.Event.OverGridImageSelected,s)})))}_createFOverGridImage(e){return e.map(e=>this._injector.createInstance(h,e))}};t.FUniver.extend(y)});
|
|
12
12
|
|
|
13
13
|
// @univerjs/sheets-drawing-ui/index
|
|
14
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/sheets-drawing`),require(`@univerjs/engine-render`),require(`@univerjs/design`),require(`@univerjs/docs-ui`),require(`@univerjs/drawing`),require(`@univerjs/sheets`),require(`@univerjs/sheets-ui`),require(`@univerjs/ui`),require(`@univerjs/docs-drawing`),require(`@univerjs/drawing-ui`),require(`rxjs`),require(`react`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets-drawing`,`@univerjs/engine-render`,`@univerjs/design`,`@univerjs/docs-ui`,`@univerjs/drawing`,`@univerjs/sheets`,`@univerjs/sheets-ui`,`@univerjs/ui`,`@univerjs/docs-drawing`,`@univerjs/drawing-ui`,`rxjs`,`react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawingUi={},e.UniverCore,e.UniverSheetsDrawing,e.UniverEngineRender,e.UniverDesign,e.UniverDocsUi,e.UniverDrawing,e.UniverSheets,e.UniverSheetsUi,e.UniverUi,e.UniverDocsDrawing,e.UniverDrawingUi,e.rxjs,e.React,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let h={id:`sheet.command.delete-drawing`,type:t.CommandType.COMMAND,handler:e=>{let r=e.get(t.ICommandService),i=e.get(n.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 r.executeCommand(n.RemoveSheetDrawingCommand.id,{unitId:a,drawings:o})}};function g(e){let n=[];return e.forEach(e=>{let{parent:i,children:a}=e,{unitId:o,subUnitId:s,drawingId:c}=i,l=(0,r.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:t.DrawingTypeEnum.DRAWING_GROUP,groupBaseBound:{...i.groupBaseBound},transform:l};n.push({parent:d,children:u})}),n}function _(e){let n=[];return e.forEach(e=>{let{parent:i,children:a}=e,{unitId:o,subUnitId:s,drawingId:c,transform:l={width:0,height:0}}=i;if(l==null)return;let u=a.map(e=>{let{transform:t}=e,{unitId:n,subUnitId:a,drawingId:o}=e;return{unitId:n,subUnitId:a,drawingId:o,transform:(0,r.transformObjectOutOfGroup)(t||{},l,l.width||0,l.height||0,i.groupBaseBound),groupId:void 0}}),d={unitId:o,subUnitId:s,drawingId:c,drawingType:t.DrawingTypeEnum.DRAWING_GROUP,transform:{left:0,top:0}};n.push({parent:d,children:u})}),n}function v(e){var n;let r=new Map;(n=e.flatChildren)==null||n.forEach(e=>r.set(e.drawingId,(0,t.generateRandomId)(10))),e.groups.forEach(e=>r.set(e.drawingId,(0,t.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(y(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(y(t,e,n))}return{cloned:{nestedIdRecord:i,flatChildren:s,groups:c},idMap:r}}function y(e,t,n){let r={...e};return t&&(r.drawingId=t),n?r.groupId=n:delete r.groupId,JSON.parse(JSON.stringify(r))}let b={id:`sheet.command.group-sheet-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(n.ISheetDrawingService);if(!r)return!1;let s=[];r.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(r);return i.syncExecuteCommand(n.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:n.DrawingApplyType.GROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:n.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:_(f),type:n.DrawingApplyType.UNGROUP}},{id:n.ClearSheetDrawingTransformerOperation.id,params:s}],redoMutations:[{id:n.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:n.DrawingApplyType.GROUP}},{id:n.ClearSheetDrawingTransformerOperation.id,params:s}]}),!0):!1}},x={id:`sheet.command.ungroup-sheet-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(n.ISheetDrawingService);if(!r)return!1;let s=[];r.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(r);return i.syncExecuteCommand(n.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:n.DrawingApplyType.UNGROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:n.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:g(f),type:n.DrawingApplyType.GROUP}},{id:n.ClearSheetDrawingTransformerOperation.id,params:s}],redoMutations:[{id:n.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:n.DrawingApplyType.UNGROUP}},{id:n.ClearSheetDrawingTransformerOperation.id,params:s}]}),!0):!1}};function S(e){"@babel/helpers - typeof";return S=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},S(e)}function C(e,t){if(S(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(S(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function w(e){var t=C(e,`string`);return S(t)==`symbol`?t:t+``}function T(e,t,n){return(t=w(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E(e,t){return function(n,r){t(n,r,e)}}function D(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 O(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 k(e,t,n,i,a){var o;let{rotatedHeight:s,rotatedWidth:l}=O(n,i,a),u=e.get(r.IRenderManagerService).getRenderById(t.unitId);if(!u)return!1;let d=(o=u.with(c.SheetSkeletonManagerService).getSkeletonParam(t.subUnitId))==null?void 0:o.skeleton;if(d==null)return!1;let f=d.getCellByIndex(t.row,t.col),p=f.mergeInfo.endX-f.mergeInfo.startX-2,m=f.mergeInfo.endY-f.mergeInfo.startY-2,h=l/s,g=Math.ceil(Math.min(p,m*h))/l,_=!g||Number.isNaN(g)?.001:g;return{width:n*_,height:i*_}}let A=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){super(),this._context=e,this._commandService=t,this._sheetInterceptorService=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._sheetSkeletonService=f,this._injector=p,this._urlImageService=m,T(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:o.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>o.DRAWING_IMAGE_COUNT_LIMIT?(this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(o.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:o.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 r;let a;try{a=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===o.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(o.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===o.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===o.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(a==null)return;let{unitId:s,subUnitId:c}=this._getUnitInfo(),{imageId:l,imageSourceType:u,source:d,base64Cache:f}=a,{width:p,height:m,image:h}=await(0,o.getImageSize)(f||``),{width:g,height:_}=this._context.scene;this._imageIoService.addImageSourceCache(d,u,h);let v=1;if(p>o.DRAWING_IMAGE_WIDTH_LIMIT||m>o.DRAWING_IMAGE_HEIGHT_LIMIT){let e=o.DRAWING_IMAGE_WIDTH_LIMIT/p,t=o.DRAWING_IMAGE_HEIGHT_LIMIT/m;v=Math.max(e,t)}let y=this._sheetSkeletonService.getSkeletonParam(s,c);if(!y)return;let{skeleton:b}=y,x=this._getImagePosition(p*v,m*v,g,_,b);if(!x)return;let S=(0,n.drawingPositionToTransform)(x,y);if(!S)return;let C={unitId:s,subUnitId:c,drawingId:l,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:u,source:d,transform:S,sheetTransform:x,axisAlignSheetTransform:(r=(0,n.transformToAxisAlignPosition)(S,b))==null?x:r};return this._commandService.executeCommand(n.InsertSheetDrawingCommand.id,{unitId:s,drawings:[C]})}async _insertCellImage(e,n){let r;try{r=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===o.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(o.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===o.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===o.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:i.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,o.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,t.createDocumentModelWithStyle)(``,{}),y=k(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:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},x={unitId:v.getUnitId(),subUnitId:v.getUnitId(),drawingId:c,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l,source:u,transform:(0,a.docDrawingPositionToTransform)(b),docTransform:b,behindDoc:t.BooleanNumber.FALSE,title:``,description:``,layoutType:t.PositionedObjectLayoutType.INLINE,wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},S=t.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(s.SetRangeValuesCommand.id,{value:{[(C=n==null?void 0:n.row)==null?g:C]:{[(w=n==null?void 0:n.col)==null?_:w]:{p:v.getSnapshot(),t:1}}},unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId})}return!1}async insertCellImageByUrl(e,n){let r=e;try{r=await this._urlImageService.getImage(e)}catch(t){console.error(`Failed to get image from URLImageService: ${e}`,t)}let{width:i,height:c,image:l}=await(0,o.getImageSize)(r||``);this._imageIoService.addImageSourceCache(e,t.ImageSourceType.URL,l);let u=this._workbookSelections.getCurrentLastSelection();if(!u)return!1;let d=(0,t.createDocumentModelWithStyle)(``,{}),f=k(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:u.primary.actualRow,col:u.primary.actualColumn},i,c,0);if(!f)return!1;let p={size:{width:f.width,height:f.height},positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},m={unitId:d.getUnitId(),subUnitId:d.getUnitId(),drawingId:(0,t.generateRandomId)(),drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:t.ImageSourceType.URL,source:e,transform:(0,a.docDrawingPositionToTransform)(p),docTransform:p,behindDoc:t.BooleanNumber.FALSE,title:``,description:``,layoutType:t.PositionedObjectLayoutType.INLINE,wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},h=t.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(s.SetRangeValuesCommand.id,{value:{[(g=n==null?void 0:n.row)==null?u.primary.actualRow:g]:{[(_=n==null?void 0:n.col)==null?u.primary.actualColumn:_]:{p:d.getSnapshot(),t:1}}},unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId})}return!1}_getUnitInfo(){let e=this._context.unit,t=e.getActiveSheet();return{unitId:e.getUnitId(),subUnitId:t.getSheetId()}}_getImagePosition(e,t,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 c=(0,s.attachRangeWithCoord)(i,o);if(c==null)return;let{startColumn:l,startRow:u,startX:d,startY:f}=c,p=!1;if(d+e>n&&(d=n-e,d<0&&(d=0,e=n),p=!0),f+t>r&&(f=r-t,f<0&&(f=0,t=r),p=!0),p){let e=this._selectionRenderService.getCellWithCoordByOffset(d,f);if(e==null)return;d=e.startX,f=e.startY,l=e.actualColumn,u=e.actualRow}let m={column:l,columnOffset:0,row:u,rowOffset:0},h=this._selectionRenderService.getCellWithCoordByOffset(d+e,f+t);if(h!=null)return{from:m,to:{column:h.actualColumn,columnOffset:d+e-h.startX,row:h.actualRow,rowOffset:f+t-h.startY}}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:r,drawingIds:i,arrangeType:a}=e;this._commandService.executeCommand(n.SetDrawingArrangeCommand.id,{unitId:t,subUnitId:r,drawingIds:i,arrangeType:a})}))}_updateDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{let t=[];e.length!==0&&(e.forEach(e=>{let{unitId:r,subUnitId:i,drawingId:a,transform:o}=e,s=this._sheetSkeletonService.getSkeletonParam(r,i);if(!o||!s)return;let{skeleton:c}=s,l=this._sheetDrawingService.getDrawingByParam({unitId:r,subUnitId:i,drawingId:a});if(l==null||l.unitId!==this._context.unitId)return;let u=(0,n.transformToDrawingPosition)({...l.transform,...o},c),d=(0,n.transformToAxisAlignPosition)({...l.transform,...o},c);if(u==null||d==null)return;let f={...e,transform:{...l.transform,...o,...(0,n.drawingPositionToTransform)(u,s)},sheetTransform:{...u},axisAlignSheetTransform:{...d}};t.push(f)}),t.length>0&&this._commandService.executeCommand(n.SetSheetDrawingCommand.id,{unitId:e[0].unitId,drawings:t}))}))}_getSheetTransformByParam(e,t){let{unitId:r,subUnitId:i,drawingId:a,transform:o}=e,s=this._sheetSkeletonService.getSkeleton(r,i);if(!o||!s)return null;let c=this._sheetDrawingService.getDrawingByParam({unitId:r,subUnitId:i,drawingId:a}),l=c==null?void 0:c.transform;if(t&&(l={}),!t&&(!c||c.unitId!==this._context.unitId))return null;let u=(0,n.transformToDrawingPosition)({...l,...o},s),d=(0,n.transformToAxisAlignPosition)({...l,...o},s);return!u||!d?null:{sheetTransform:u,axisAlignSheetTransform:d}}_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(b.id,t);let{unitId:n,subUnitId:r,drawingId:i}=e[0].parent;this._commandService.syncExecuteCommand(o.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(x.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!0),this._sheetDrawingService.focusDrawing(e))}))}};A=D([E(1,t.ICommandService),E(2,(0,t.Inject)(s.SheetInterceptorService)),E(3,c.ISheetSelectionRenderService),E(4,o.IImageIoService),E(5,l.ILocalFileService),E(6,n.ISheetDrawingService),E(7,o.IDrawingManagerService),E(8,t.IContextService),E(9,l.IMessageService),E(10,(0,t.Inject)(t.LocaleService)),E(11,(0,t.Inject)(s.SheetsSelectionsService)),E(12,(0,t.Inject)(s.SheetSkeletonService)),E(13,(0,t.Inject)(t.Injector)),E(14,t.IURLImageService)],A);let j={id:`sheet.command.insert-float-image`,type:t.CommandType.COMMAND,handler:async(e,n)=>{var i;let a=e.get(t.IUniverInstanceService),o=e.get(r.IRenderManagerService),s=(i=(0,r.getCurrentTypeOfRenderer)(t.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(A);if(!s)return!1;let c=n==null?void 0:n.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}}},M={id:`sheet.command.insert-cell-image`,type:t.CommandType.COMMAND,handler:e=>{var n,i;let a=e.get(t.IUniverInstanceService),o=e.get(r.IRenderManagerService);return(n=(i=(0,r.getCurrentTypeOfRenderer)(t.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(A).insertCellImage())==null?!1:n}},N={id:`sheet.command.move-drawing`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService),a=e.get(n.ISheetDrawingService),o=e.get(s.SheetSkeletonService),{direction:c}=r,l=a.getFocusDrawings();if(l.length===0)return!1;let u=l[0].unitId,d=l.map(e=>{let{transform:r,unitId:i,subUnitId:a}=e,s=o.getSkeleton(i,a);if(!r||!s)return null;let l={...r},{left:u=0,top:d=0}=r;return c===t.Direction.UP?l.top=d-1:c===t.Direction.DOWN?l.top=d+1:c===t.Direction.LEFT?l.left=u-1:c===t.Direction.RIGHT&&(l.left=u+1),{...e,transform:l,sheetTransform:(0,n.transformToDrawingPosition)(l,s),axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)(l,s)}}).filter(e=>e!=null);return i.syncExecuteCommand(n.SetSheetDrawingCommand.id,{unitId:u,drawings:d})?(i.syncExecuteCommand(n.ClearSheetDrawingTransformerOperation.id,[u]),!0):!1}},P=function(e){return e.CELL_ADDRESS=`cellAddress`,e.COLUMN_VALUE=`columnValue`,e}({}),F=(0,t.createIdentifier)(`sheets-drawing-ui.batch-save-images.service`);function I(e){let t=``,n=e;for(;n>=0;)t=String.fromCharCode(n%26+65)+t,n=Math.floor(n/26)-1;return t}function L(e,t){return`${I(t)}${e+1}`}function R(e){let t=L(e.startRow,e.startColumn),n=L(e.endRow,e.endColumn);return t===n?t:`${t}:${n}`}function z(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 B(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 V(e,n){if(n===t.ImageSourceType.BASE64){let t=e.match(/^data:image\/(\w+);/);if(t)return t[1]===`jpeg`?`jpg`:t[1]}if(n===t.ImageSourceType.URL){let t=e.match(/\.(\w+)(?:\?|$)/);if(t)return t[1].toLowerCase()}return`png`}async function H(e,n){if(n===t.ImageSourceType.BASE64||n===t.ImageSourceType.URL)return(await fetch(e)).blob();throw Error(`UUID image type requires additional handling`)}let U=class extends t.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(t.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let n=e.getActiveSheet();if(!n)return[];let r=this._selectionService.getCurrentSelections();if(!r||r.length===0)return[];let i=n.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(z(n)){let r=B(n);r&&a.push({row:e,col:t,cellAddress:L(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return a}getCellImagesFromRanges(e,n,r){let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(n);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(z(n)){let r=B(n);r&&s.push({row:e,col:t,cellAddress:L(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return s}getDataColumns(){let e=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let n=e.getActiveSheet();if(!n)return[];let r=this._selectionService.getCurrentSelections();if(!r||r.length===0)return[];let i=n.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:I(e)});return f}getDataColumnsForRanges(e,n,r){let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(n);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:I(e)});return m}getSelectionRangeNotation(){let e=this._selectionService.getCurrentSelections();return!e||e.length===0?``:e.map(e=>R(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,n){let r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),i=V(e.source,e.imageSourceType),a=[];for(let t of n.fileNameParts)if(t===P.CELL_ADDRESS)a.push(e.cellAddress);else if(t===P.COLUMN_VALUE&&n.columnIndex!==void 0){let t=r==null?void 0:r.getActiveSheet();if(t){let r=t.getCellMatrix().getValue(e.row,n.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,n,r,i){let a=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_SHEET),o=V(e.source,e.imageSourceType),s=[];for(let t of n.fileNameParts)if(t===P.CELL_ADDRESS)s.push(e.cellAddress);else if(t===P.COLUMN_VALUE&&n.columnIndex!==void 0){let t=a==null?void 0:a.getSheetBySheetId(i);if(t){let r=t.getCellMatrix().getValue(e.row,n.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=V(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===t.ImageSourceType.UUID?H(await this._imageIoService.getImage(e.source),t.ImageSourceType.URL):e.imageSourceType===t.ImageSourceType.URL?this._urlImageService.downloadImage(e.source):H(e.source,e.imageSourceType)}};U=D([E(0,t.IUniverInstanceService),E(1,(0,t.Inject)(s.SheetsSelectionsService)),E(2,t.IImageIoService),E(3,t.IURLImageService)],U);let W=`sheet.dialog.batch-save-images`,G={id:`sheet.command.save-cell-images`,type:t.CommandType.COMMAND,handler:async e=>{let n=e.get(l.IDialogService),r=e.get(F),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(t.LocaleService),o=r.getSelectionRangeNotation(),s=`${a.t(`sheetImage.save.title`)} (${o})`;return n.open({id:W,draggable:!0,width:360,title:{title:s},children:{label:W},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>n.close(W)}),!0}},K=`COMPONENT_SHEET_DRAWING_PANEL`,q={id:`sidebar.operation.sheet-image`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=e.get(l.ISidebarService),i=e.get(t.LocaleService),a=e.get(t.IUniverInstanceService),c=e.get(t.ICommandService);if(!(0,s.getSheetCommandTarget)(a))return!1;switch(n.value){case`open`:r.open({header:{title:i.t(`sheetImage.panel.title`)},children:{label:K},onClose:()=>{c.syncExecuteCommand(o.SetDrawingSelectedOperation.id,[])},width:360});break;default:r.close();break}return!0}},J={id:`sheet.operation.edit-sheet-image`,type:t.CommandType.OPERATION,handler:(e,n)=>{let r=e.get(t.ICommandService);return n==null?!1:(r.syncExecuteCommand(o.SetDrawingSelectedOperation.id,[n]),r.executeCommand(q.id,{value:`open`}),!0)}},ee=[c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA],Y=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetSkeletonService=n,this._sheetDrawingService=r,this._drawingManagerService=i,T(this,`_featurePasteHooks`,[]),T(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._sheetDrawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_DRAWING_GROUP`,onBeforeCopy:(e,n)=>{this._copyInfo=null;let r=this._focusedDrawings;if(r.length===0)return;let i=r.find(e=>e.drawingType===t.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 ee.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 t;if(!this._copyInfo)return{redos:[],undos:[]};let{unitId:r,subUnitId:i,range:a}=e,o=this._sheetSkeletonService.getSkeleton(r,i);if(!o)return{redos:[],undos:[]};let{groupNestedParam:c}=this._copyInfo,l=c.groups[c.groups.length-1],{cloned:u,idMap:d}=v(c),f=u.groups[u.groups.length-1].drawingId,p=(0,s.discreteRangeToRange)(a),m=(0,s.attachRangeWithCoord)(o,{startRow:p.startRow,endRow:p.endRow,startColumn:p.startColumn,endColumn:p.endColumn});if(!m)return{redos:[],undos:[]};let h={...l.transform,left:m.startX,top:m.startY},g=[...((t=u.flatChildren)==null?[]:t).map(e=>({...e,unitId:r,subUnitId:i})),...u.groups.map(e=>{var t,a;return e.drawingId===f?{...e,unitId:r,subUnitId:i,transform:h,sheetTransform:(t=(0,n.transformToDrawingPosition)(h,o))==null?l.sheetTransform:t,axisAlignSheetTransform:(a=(0,n.transformToAxisAlignPosition)(h,o))==null?l.sheetTransform:a}:{...e,unitId:r,subUnitId:i}})],{undo:_,redo:y,objects:b}=this._sheetDrawingService.getBatchAddOp(g),x=[{id:n.SetDrawingApplyMutation.id,params:{op:y,unitId:r,subUnitId:i,objects:b,type:n.DrawingApplyType.INSERT}}],S=[{id:n.SetDrawingApplyMutation.id,params:{op:_,unitId:r,subUnitId:i,objects:b,type:n.DrawingApplyType.REMOVE}}],C=this._getGroupFeaturePasteMutations({fromUnitId:this._copyInfo.unitId,fromSubUnitId:this._copyInfo.subUnitId,toUnitId:r,toSubUnitId:i,idMap:d,cloned:u});return x.push(...C.redos),S.push(...C.undos),{redos:x,undos:S}}dispose(){this._copyInfo=null,this._featurePasteHooks.length=0,super.dispose()}};Y=D([E(0,c.ISheetClipboardService),E(1,r.IRenderManagerService),E(2,(0,t.Inject)(s.SheetSkeletonService)),E(3,n.ISheetDrawingService),E(4,o.IDrawingManagerService)],Y);let te=`sheet.menu.image`;function ne(e){return{id:te,type:l.MenuItemType.SUBITEMS,icon:`AddImageIcon`,tooltip:`sheetImage.title`,hidden$:(0,l.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,c.getCurrentRangeDisable$)(e,{workbookTypes:[s.WorkbookEditablePermission],worksheetTypes:[s.WorksheetEditPermission],rangeTypes:[s.RangeProtectionPermissionEditPoint]})}}function re(e){return{id:j.id,title:`sheetImage.upload.float`,type:l.MenuItemType.BUTTON,hidden$:(0,l.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET)}}function ie(e){return{id:M.id,title:`sheetImage.upload.cell`,type:l.MenuItemType.BUTTON,hidden$:(0,l.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET)}}var ae=`@univerjs/sheets-drawing-ui`,oe=`0.20.0`;let se=`sheets-drawing-ui.config`;Symbol(se);let ce={},le=class extends t.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(t.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,l.ContextMenuPosition.DRAWING)}}))}};le=D([E(0,o.IDrawingManagerService),E(1,l.IContextMenuService),E(2,r.IRenderManagerService),E(3,t.IUniverInstanceService)],le);let ue=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._hoverManagerService=t,this._selectionsService=n,this._drawingRenderService=r,this._sheetSkeletonManagerService=i,T(this,`_isSetCursor`,!1),this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe((0,f.throttleTime)(33)).subscribe(e=>{var t,n;let i=[];e!==null&&(i=this._selectionsService.getWorkbookSelections(this._context.unitId).getCurrentSelections()),i.length>0&&(e==null?void 0:e.unitId)===this._context.unitId&&e!=null&&e.drawing&&i.length===1&&((t=i[0].primary)==null?void 0:t.actualRow)===e.row&&((n=i[0].primary)==null?void 0:n.actualColumn)===e.col?(this._isSetCursor=!0,this._context.scene.setCursor(r.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}}))}};ue=D([E(1,(0,t.Inject)(c.HoverManagerService)),E(2,(0,t.Inject)(s.SheetsSelectionsService)),E(3,(0,t.Inject)(d.DrawingRenderService)),E(4,(0,t.Inject)(c.SheetSkeletonManagerService))],ue);let de=class extends t.Disposable{constructor(e,t,n,r){super(),this._context=e,this._sheetDrawingService=t,this._drawingManagerService=n,this._sheetSkeletonService=r,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 r=e[t];for(let e in r.data){let t=r.data[e],{unitId:i,subUnitId:a}=t,o=this._sheetSkeletonService.getSkeletonParam(i,a);o&&t.sheetTransform&&(t.transform=(0,n.drawingPositionToTransform)(t.sheetTransform,o))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};de=D([E(1,n.ISheetDrawingService),E(2,o.IDrawingManagerService),E(3,(0,t.Inject)(s.SheetSkeletonService))],de);function fe(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=k(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 pe=class extends t.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(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)):this._drawingManagerService.removeDrawingDataForUnit(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{e.id===a.ReplaceSnapshotCommand.id&&e.params.unitId===t.DOCS_ZEN_EDITOR_UNIT_ID_KEY&&(this._drawingManagerService.removeDrawingDataForUnit(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(s.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Style,priority:s.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},fe(this._injector,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},e)),n(e)}}))}};pe=D([E(0,t.ICommandService),E(1,(0,t.Inject)(s.SheetInterceptorService)),E(2,(0,t.Inject)(t.Injector)),E(3,o.IDrawingManagerService),E(4,(0,t.Inject)(u.DocDrawingController)),E(5,(0,t.Inject)(c.IEditorBridgeService))],pe);let me=class extends t.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,n,r,i)=>{new t.ObjectMatrix(i).forValue((t,n,r)=>{fe(this._injector,{unitId:e.unitId,subUnitId:e.subUnitId,row:t,col:n},r)})}}))}};me=D([E(0,(0,t.Inject)(s.IAutoFillService)),E(1,(0,t.Inject)(t.Injector))],me);let he=[t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,t.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY],ge=class extends t.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(e){var n;let i=(0,t.createDocumentModelWithStyle)(``,{}),a=(n=(0,r.getCurrentTypeOfRenderer)(t.UniverInstanceType.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService))==null?void 0:n.with(c.EditingRenderController),o=t.BuildTextUtils.drawing.add({documentDataModel:i,drawings:[e],selection:{collapsed:!0,startOffset:0,endOffset:0}});o&&(i.apply(o),a&&a.submitCellData(i))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===a.InnerPasteCommand.id){var n;let{doc:i}=e.params,a=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(a==null||!Object.keys((n=i.drawings)==null?{}:n).length)return;let o=a.getUnitId();if(he.includes(o)){if(o!==t.DOCS_ZEN_EDITOR_UNIT_ID_KEY){var r;let e=()=>{this._dialogService.close(`sheet-cell-image-copy-paste`),this._commandService.syncExecuteCommand(c.SetCellEditVisibleOperation.id,{visible:!1})};((r=a.getBody())==null?void 0:r.dataStream)===`\r
|
|
15
|
-
`?(this._commandService.syncExecuteCommand(c.SetCellEditVisibleOperation.id,{visible:!1}),this._setCellImage(Object.values(i.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(i.drawings)[0])},onCancel:e})}throw Error(`Sheet cell image copy paste is not supported in this unit`)}}}))}};ge=D([E(0,t.ICommandService),E(1,t.IUniverInstanceService),E(2,l.IDialogService),E(3,r.IRenderManagerService),E(4,(0,t.Inject)(t.LocaleService))],ge);let _e=`image/png`;function ve(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:_e})}function ye(e){let t=new ClipboardItem({[_e]:ve(e)});navigator.clipboard.write([t]).catch(e=>{console.error(`Could not copy image using clipboard API: `,e)})}function be(){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()}}let xe=[c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA],Se=class extends t.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetSkeletonService=n,this._drawingService=r,this._clipboardInterfaceService=i,this._commandService=a,T(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 s=this._focusedDrawings;if(s.length>0){let[r]=s;if(r.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE)return;if(a===c.COPY_TYPE.CUT){let t={unitId:e,drawings:[r]};this._commandService.executeCommand(n.RemoveSheetDrawingCommand.id,t)}setTimeout(()=>{let e=be();r.drawingType===t.DrawingTypeEnum.DRAWING_IMAGE&&r.imageSourceType===o.ImageSourceType.BASE64?ye(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,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{copyType:i=c.COPY_TYPE.COPY,pasteType:a}=r,{range:o,unitId:s,subUnitId:l}=e||{},{range:u,unitId:d,subUnitId:f}=t;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({unitId:d,subUnitId:f,pasteRange:u,pasteType:a},{unitId:s,subUnitId:l,copyType:i,copyRange:o}):this._generateSingleDrawingPasteMutations({pasteTo:t,pasteType:a},c.COPY_TYPE.COPY)},onPastePlainText:(e,t)=>({undos:[],redos:[]}),onPasteUnrecognized:e=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:c.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},c.COPY_TYPE.COPY):{undos:[],redos:[]},onPasteFiles:(e,t)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:c.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},c.COPY_TYPE.COPY);{let e=t.filter(e=>e.type.includes(`image`));if(e.length)return{undos:[],redos:[{id:j.id,params:{files:e}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(e,r,i){let a=this._sheetSkeletonService.getSkeleton(e,r);if(!a)return;let o=(0,s.attachRangeWithCoord)(a,i);if(!o)return;let{startX:c,endX:l,startY:u,endY:d}=o,f=this._drawingService.getDrawingData(e,r),p=this._focusedDrawings.slice();if(Object.keys(f).forEach(e=>{let r=f[e];if(r.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE)return;let{transform:i}=r;if(r.anchorType!==n.SheetDrawingAnchorType.Both||!i)return;let{left:a=0,top:o=0,width:s=0,height:m=0}=i,{drawingStartX:h,drawingEndX:g,drawingStartY:_,drawingEndY:v}={drawingStartX:a,drawingEndX:a+s,drawingStartY:o,drawingEndY:o+m};c<=h&&g<=l&&u<=_&&v<=d&&p.push(r)}),p.length)return{copyRange:i,drawings:p,unitId:e,subUnitId:r}}_generateSingleDrawingPasteMutations(e,t){let{pasteType:r,pasteTo:i}=e;if(xe.includes(r))return{redos:[],undos:[]};let{unitId:a,subUnitId:o,range:l}=i,u=this._sheetSkeletonService.getSkeleton(a,o);if(!u)return{redos:[],undos:[]};let{drawings:d}=this._copyInfo,f=(0,s.discreteRangeToRange)(l);return this._generateMutations(d,{unitId:a,subUnitId:o,isCut:t===c.COPY_TYPE.CUT,getTransform:(e,t)=>{var r,i;let a=(0,s.attachRangeWithCoord)(u,{startRow:f.startRow,endRow:f.endRow,startColumn:f.startColumn,endColumn:f.endColumn}),o={...e,left:a==null?void 0:a.startX,top:a==null?void 0:a.startY};return{transform:o,sheetTransform:(r=(0,n.transformToDrawingPosition)(o,u))==null?t:r,axisAlignSheetTransform:(i=(0,n.transformToAxisAlignPosition)(o,u))==null?t:i}}})}_generateMutations(e,r){let{unitId:i,subUnitId:a,getTransform:o,isCut:s}=r,c=[],l=[],{_drawingService:u}=this;return e.forEach(e=>{let{transform:r,sheetTransform:d}=e;if(!r)return;let f=o(r,d),p={...e,unitId:i,subUnitId:a,drawingId:s?e.drawingId:(0,t.generateRandomId)(),transform:f.transform,sheetTransform:f.sheetTransform,axisAlignSheetTransform:f.axisAlignSheetTransform};if(s){let{undo:e,redo:t,objects:r}=u.getBatchUpdateOp([p]);c.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,type:n.DrawingApplyType.UPDATE,op:t,objects:r}}),l.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,type:n.DrawingApplyType.UPDATE,op:e,objects:r}})}else{let{undo:e,redo:t,objects:r}=u.getBatchAddOp([p]);c.push({id:n.SetDrawingApplyMutation.id,params:{op:t,unitId:i,subUnitId:a,objects:r,type:n.DrawingApplyType.INSERT}}),l.push({id:n.SetDrawingApplyMutation.id,params:{op:e,unitId:i,subUnitId:a,objects:r,type:n.DrawingApplyType.REMOVE}})}}),{redos:c,undos:l}}_generateRangeDrawingsPasteMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};let{unitId:r,subUnitId:i,pasteRange:a,pasteType:o}=e,{unitId:l,subUnitId:u,copyRange:d,copyType:f}=t;if(xe.includes(o))return{redos:[],undos:[]};let p=this._sheetSkeletonService.getSkeleton(r,i);if(!p)return{redos:[],undos:[]};let{drawings:m}=this._copyInfo;if(!d)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:r,subUnitId:i,range:(0,s.discreteRangeToRange)(a)},pasteType:o},f);let h=this._sheetSkeletonService.getSkeleton(l,u);if(!h)return{redos:[],undos:[]};let{ranges:[g,_],mapFunc:v}=(0,c.virtualizeDiscreteRanges)([d,a]),{row:y,col:b}=v(g.startRow,g.startColumn),{row:x,col:S}=v(_.startRow,_.startColumn),C=(0,s.attachRangeWithCoord)(h,{startRow:y,endRow:y,startColumn:b,endColumn:b}),w=(0,s.attachRangeWithCoord)(p,{startRow:x,endRow:x,startColumn:S,endColumn:S});if(!C||!w)return{redos:[],undos:[]};let T=w.startX-C.startX,E=w.startY-C.startY,D=x-y,O=S-b;return this._generateMutations(m,{unitId:r,subUnitId:i,getTransform:(e,t)=>{var r,i,a;let o={...e,left:((r=e==null?void 0:e.left)==null?0:r)+T,top:((i=e==null?void 0:e.top)==null?0:i)+E};return{transform:o,sheetTransform:{...t,to:{...t.to,row:t.to.row+D,column:t.to.column+O},from:{...t.from,row:t.from.row+D,column:t.from.column+O}},axisAlignSheetTransform:(a=(0,n.transformToAxisAlignPosition)(o,p))==null?t:a}},isCut:f===c.COPY_TYPE.CUT})}};Se=D([E(0,c.ISheetClipboardService),E(1,r.IRenderManagerService),E(2,(0,t.Inject)(s.SheetSkeletonService)),E(3,o.IDrawingManagerService),E(4,l.IClipboardInterfaceService),E(5,t.ICommandService)],Se);let Ce=class extends t.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$(t.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$,r=(0,f.combineLatest)([e,n]);this.disposeWithMe(r.pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.tap)(t=>{if(!t){this._drawingManagerService.setDrawingVisible(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new s.WorkbookViewPermission(n).id,new s.WorksheetViewPermission(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(e,t)})):(this._drawingManagerService.setDrawingVisible(!1),f.EMPTY))).subscribe())}_handleDrawingVisibilityFalse(e,t){this._drawingManagerService.setDrawingVisible(!1);let n=e.getUnitId(),i=t.getSheetId(),a=this._drawingManagerService.getDrawingData(n,i),o=Object.values(a),s=this._renderManagerService.getRenderById(n),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===r.RENDER_CLASS_TYPE.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.removeObject(e)})}_initDrawingEditable(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$,r=(0,f.combineLatest)([e,n]);this.disposeWithMe(r.pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.tap)(t=>{if(!t){this._drawingManagerService.setDrawingEditable(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new s.WorkbookEditablePermission(n).id,new s.WorksheetEditPermission(n,r).id]).every(e=>e.value)?this._drawingManagerService.setDrawingEditable(!0):this._handleDrawingEditableFalse(e,t)})):(this._drawingManagerService.setDrawingEditable(!1),f.EMPTY))).subscribe())}_handleDrawingEditableFalse(e,t){this._drawingManagerService.setDrawingEditable(!1);let n=e.getUnitId(),i=t.getSheetId(),a=this._drawingManagerService.getDrawingData(n,i),o=Object.values(a),s=this._renderManagerService.getRenderById(n),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===r.RENDER_CLASS_TYPE.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.detachTransformerFrom(e)})}_initViewPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$;this.disposeWithMe((0,f.combineLatest)([e,n]).pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.switchMap)(t=>{if(!t)return f.EMPTY;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(!a)return f.EMPTY;let o=a.getTransformerByCreate();return this._permissionService.composePermission$([new s.WorkbookViewPermission(n).id,new s.WorksheetViewPermission(n,r).id]).pipe((0,f.map)(e=>e.every(e=>e.value)),(0,f.distinctUntilChanged)()).pipe((0,f.map)(e=>({permission:e,scene:a,transformer:o,unitId:n,subUnitId:r})))})):f.EMPTY)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:i,subUnitId:a})=>{this._drawingManagerService.setDrawingVisible(e);let o=t.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(i,a),c=Object.values(s);e?this._drawingManagerService.addNotification(c):(o.forEach(e=>{e.classType===r.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&t.removeObject(e)}),n.clearSelectedObjects())},complete:()=>{this._drawingManagerService.setDrawingVisible(!0);let e=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),n=e==null?void 0:e.getActiveSheet(),r=e==null?void 0:e.getUnitId(),i=n==null?void 0:n.getSheetId();if(!r||!i)return;let a=this._drawingManagerService.getDrawingData(r,i),o=Object.values(a);this._drawingManagerService.addNotification(o)}}))}_initEditPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$;this.disposeWithMe((0,f.combineLatest)([e,n]).pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.switchMap)(t=>{if(!t)return f.EMPTY;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(!a)return f.EMPTY;let o=a.getTransformerByCreate();return this._permissionService.composePermission$([new s.WorkbookEditablePermission(n).id,new s.WorksheetEditPermission(n,r).id]).pipe((0,f.map)(e=>e.every(e=>e.value)),(0,f.distinctUntilChanged)()).pipe((0,f.map)(e=>({permission:e,scene:a,transformer:o,unitId:n,subUnitId:r})))})):f.EMPTY)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:i,subUnitId:a})=>{this._drawingManagerService.setDrawingEditable(e);let o=t.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(i,a),c=Object.values(s);e?(o.forEach(e=>{e.classType===r.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&t.attachTransformerTo(e)}),this._drawingManagerService.addNotification(c)):(o.forEach(e=>{e.classType===r.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&t.detachTransformerFrom(e)}),n.clearSelectedObjects())},complete:()=>{let e=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!e)return;let n=e.getUnitId(),i=e.getActiveSheet();if(!i)return;let a=i.getSheetId(),o=this._renderManagerService.getRenderById(n),s=o==null?void 0:o.scene;if(!s)return;let c=this._drawingManagerService.getDrawingData(n,a),l=Object.values(c);this._drawingManagerService.setDrawingEditable(!0),s.getAllObjectsByOrder().forEach(e=>{e.classType===r.RENDER_CLASS_TYPE.IMAGE&&l.some(t=>e.oKey.includes(t.drawingId))&&s.detachTransformerFrom(e)})}}))}};Ce=D([E(0,o.IDrawingManagerService),E(1,r.IRenderManagerService),E(2,t.IPermissionService),E(3,t.IUniverInstanceService),E(4,(0,t.Inject)(t.UserManagerService))],Ce);var we=function(e){return e.ALL=`ALL`,e.HORIZONTAL=`HORIZONTAL`,e.VERTICAL=`VERTICAL`,e}(we||{});let Te=`univer-sheet-float-dom-`;function Ee(e,n,i,a,o,s=!1){let{scaleX:c,scaleY:l}=n.getAncestorScale(),u=n.getViewport(r.SHEET_VIEWPORT_KEY.VIEW_MAIN),{startColumn:d,startRow:f,xSplit:p,ySplit:m}=a.getFreeze(),h={left:!0,top:!0};if(!u)return{...e,absolute:h};let{left:g,right:_,top:v,bottom:y}=e,{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&&(t.Tools.isDefine(O.top)&&(O.top=w.top),t.Tools.isDefine(O.left)&&(O.left=w.left)),T===we.HORIZONTAL&&(C=0),T===we.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}}let X=(e,t,n,r,i)=>{let{left:a,top:o,width:s,height:c,angle:l}=e,u=Ee({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}},Z=class extends t.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,T(this,`_domLayerInfoMap`,new Map),T(this,`_transformChange$`,new f.Subject),T(this,`transformChange$`,this._transformChange$.asObservable()),T(this,`_add$`,new f.Subject),T(this,`add$`,this._add$.asObservable()),T(this,`_remove$`,new f.Subject),T(this,`remove$`,this._remove$.asObservable()),this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe((0,f.filter)(e=>e===t.LifecycleStages.Rendered),(0,f.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(e=>{e.forEach(e=>{var n;let{unitId:i,subUnitId:a,drawingId:l}=e,u=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:i,subUnitId:a}),d=this._drawingManagerService.getDrawingByParam(e),p=this._univerInstanceService.getUnit(i,t.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let h=(n=this._renderManagerService.getRenderById(i))==null?void 0:n.with(c.SheetSkeletonManagerService).getSkeletonParam(a);if(!h)return;let{transform:g,drawingType:_,data:v}=d;if(_!==t.DrawingTypeEnum.DRAWING_DOM&&_!==t.DrawingTypeEnum.DRAWING_CHART)return;let y=this._getSceneAndTransformerByDrawingSearch(i);if(y==null)return;let{scene:b,canvas:x}=y;if(g==null)return!0;if(m!==a)return;let{left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A}=g,j=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:i,subUnitId:a,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(i,a).length-1},P=_===t.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 r.Rect(j,N);P&&F.setObjectType(r.ObjectType.CHART),b.addObject(F,r.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&b.attachTransformerTo(F);let I=new t.DisposableCollection,L=new f.BehaviorSubject(X(F,y.renderUnit.scene,h.skeleton,u.worksheet)),R=`${Te}${(0,t.generateRandomId)(6)}`,z={dispose:I,rect:F,position$:L,unitId:i,subUnitId:a,id:l,domId:R};this._canvasFloatDomService.addFloatDom({position$:L,id:l,domId:R,componentKey:d.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:i});let B=F.onTransformChange$.subscribeEvent(()=>{let e=X(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,o.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:n,drawingId:r}),a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{transformer:s,scene:c}=a,l=c.getObject(i);if(l!=null&&l.oKey){var u;s.clearControlByIds([l==null?void 0:l.oKey]),(u=c.getTransformer())==null||u.clearSelectedObjects()}})}))}_scrollUpdateListener(){let e=(e,t)=>{var n;let r=this._getSceneAndTransformerByDrawingSearch(e),i=Array.from(this._domLayerInfoMap.keys()).map(e=>({id:e,...this._domLayerInfoMap.get(e)})).filter(n=>n.subUnitId===t&&n.unitId===e).map(e=>e.id),a=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:t}),o=(n=this._renderManagerService.getRenderById(e))==null?void 0:n.with(c.SheetSkeletonManagerService).getSkeletonParam(t);!r||!a||!o||i.forEach(e=>{let t=this._domLayerInfoMap.get(e);if(t){let e=X(t.rect,r.renderUnit.scene,o.skeleton,a.worksheet,t);t.position$.next(e)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,f.switchMap)(e=>e?e.activeSheet$:(0,f.of)(null)),(0,f.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,f.switchMap)(e=>e?(0,t.fromEventSubject)(e.render.scene.getViewport(r.SHEET_VIEWPORT_KEY.VIEW_MAIN).onScrollAfter$).pipe((0,f.map)(()=>({unitId:e.unitId,subUnitId:e.subUnitId}))):(0,f.of)(null))).subscribe(t=>{if(!t)return;let{unitId:n,subUnitId:r}=t;e(n,r)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===c.SetZoomRatioOperation.id){let{unitId:n}=t.params;Array.from(this._domLayerInfoMap.values()).filter(e=>e.unitId===n).map(e=>e.subUnitId).forEach(t=>{e(n,t)})}else if(t.id===s.SetFrozenMutation.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}else if(t.id===s.SetSelectionsOperation.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}}))}updateFloatDomProps(e,t,n,i){let a=this._domLayerInfoMap.get(n),s=this._getSceneAndTransformerByDrawingSearch(e);if(a&&s){let{scene:a}=s,c=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:t,drawingId:n}),l=a.getObject(c);l&&l instanceof r.Rect&&l.setProps(i)}}_getPosition(e,t){var n;let{startX:r,endX:i,startY:a,endY:o}=e,s=(n=this._renderManagerService.getRenderById(t))==null?void 0:n.with(c.ISheetSelectionRenderService);if(s==null)return;let l=s.getCellWithCoordByOffset(r,a);if(l==null)return;let u={column:l.actualColumn,columnOffset:r-l.startX,row:l.actualRow,rowOffset:a-l.startY},d=s.getCellWithCoordByOffset(i,o);if(d!=null)return{from:u,to:{column:d.actualColumn,columnOffset:i-d.startX,row:d.actualRow,rowOffset:o-d.startY}}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let n=this._drawingManagerService.getDrawingByParam(e);if(!n||n.drawingType!==t.DrawingTypeEnum.DRAWING_DOM&&n.drawingType!==t.DrawingTypeEnum.DRAWING_CHART)return;let r={...n.transform};this._transformChange$.next({id:e.drawingId,value:r}),this._canvasFloatDomService.updateFloatDom(e.drawingId,{...n});let i=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(i&&n.drawingType!==t.DrawingTypeEnum.DRAWING_CHART){let{scene:t}=i,r=this._domLayerInfoMap.get(e.drawingId);r!=null&&r.rect&&(n.allowTransform===!1?t.detachTransformerFrom(r.rect):t.attachTransformerTo(r.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}addFloatDomToPosition(e,r){let i=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!i)throw Error(`cannot find current target!`);let{unitId:a,subUnitId:o}=i,{initPosition:c,componentKey:l,data:u,allowTransform:d=!0}=e,f=r==null?(0,t.generateRandomId)():r,p=this._getPosition(c,a);if(p==null)return;let m={unitId:a,subUnitId:o,drawingId:f,drawingType:e.type||t.DrawingTypeEnum.DRAWING_DOM,componentKey:l,sheetTransform:p,transform:{left:c.startX,top:c.startY,width:c.endX-c.startX,height:c.endY-c.startY},axisAlignSheetTransform:p,data:u,allowTransform:d};return this._commandService.executeCommand(n.InsertSheetDrawingCommand.id,{unitId:a,drawings:[m]}),this._add$.next({unitId:a,subUnitId:o,id:f}),{id:f,dispose:()=>{this._removeDom(f,!0)}}}_removeDom(e,t=!1){let r=this._domLayerInfoMap.get(e);if(!r)return;let{unitId:i,subUnitId:a}=r;this._domLayerInfoMap.delete(e),r.dispose.dispose();let o=this._getSceneAndTransformerByDrawingSearch(i);if(o&&o.scene.removeObject(r.rect),t){let t=this._drawingManagerService.getDrawingByParam({unitId:i,subUnitId:a,drawingId:e});if(!t)return;let{redo:r,objects:o}=this._sheetDrawingService.getBatchRemoveOp([t]);this._commandService.syncExecuteCommand(n.SetDrawingApplyMutation.id,{unitId:i,subUnitId:a,op:r,objects:o,type:n.DrawingApplyType.REMOVE})}}addFloatDomToRange(e,n,i,a){var l;let u=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:n.unitId,subUnitId:n.subUnitId});if(!u)throw Error(`cannot find current target!`);let{unitId:d,subUnitId:p}=u,m=this._getSceneAndTransformerByDrawingSearch(d);if(!m)return;let h=this._renderManagerService.getRenderById(d);if(!h)return;let g=(l=this._renderManagerService.getRenderById(d))==null?void 0:l.with(c.SheetSkeletonManagerService).getSkeletonParam(p);if(!g)return;let{componentKey:_,data:v,allowTransform:y=!0}=n,b=a==null?(0,t.generateRandomId)():a,{position:x,position$:S}=this._createRangePositionObserver(e,h,g.skeleton),C=this._getPosition(x,d);if(C==null)return;let{scaleX:w}=m.scene.getAncestorScale(),T=Oe(x,i,w),E={unitId:d,subUnitId:p,drawingId:b,drawingType:n.type||t.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:e,subUnitId:a,drawingId:l}=E,u=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:a}),d=E,p=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let h=(D=this._renderManagerService.getRenderById(e))==null?void 0:D.with(c.SheetSkeletonManagerService);if(!h)return;let g=h.getSkeletonParam(a);if(!g)return;let{transform:_,drawingType:v,data:y}=d;if(v!==t.DrawingTypeEnum.DRAWING_DOM&&v!==t.DrawingTypeEnum.DRAWING_CHART)return;let C=this._getSceneAndTransformerByDrawingSearch(e);if(C==null)return;let{scene:w,canvas:T}=C;if(_==null||m!==a)return;let{left:k,top:A,width:j,height:M,angle:N,flipX:P,flipY:F,skewX:I,skewY:L}=_,R=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:a,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(e,a).length-1},V=v===t.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 r.Rect(R,B);V&&H.setObjectType(r.ObjectType.CHART),w.addObject(H,r.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&w.attachTransformerTo(H);let U=new t.DisposableCollection,W=w.getMainViewport(),{rowHeaderWidth:G,columnHeaderHeight:K}=g.skeleton,q={dispose:U,rect:H,boundsOfViewArea:{top:K,left:G,bottom:W.bottom,right:W.right},domAnchor:i,unitId:e,subUnitId:a},J=new f.BehaviorSubject(X(H,C.renderUnit.scene,g.skeleton,u.worksheet,q));q.position$=J;let ee={position$:J,id:l,componentKey:d.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{T.dispatchEvent(new WheelEvent(e.type,e))},data:y,unitId:e};n.eventPassThrough&&(ee={...ee,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(ee),this.disposeWithMe(S.subscribe(t=>{var n,s,c,d;let f=Oe({rotate:0,startX:t.startX,startY:t.startY,endX:t.endX,endY:t.endY,width:(n=i.width)==null?t.width:n,height:(s=i.height)==null?t.height:s,absolute:{left:x.absolute.left,top:x.absolute.top}},i),p=X(new r.Rect((0,o.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:a,drawingId:l}),{left:f.startX,top:f.startY,width:(c=i.width)==null?t.width:c,height:(d=i.height)==null?t.height:d,zIndex:this._drawingManagerService.getDrawingOrder(e,a).length-1}),C.renderUnit.scene,g.skeleton,u.worksheet,q);J.next(p)}));let Y=(O=this._renderManagerService.getRenderById(e))==null?void 0:O.with(c.SheetSkeletonManagerService),te=Y==null?void 0:Y.currentSkeleton$.subscribe(e=>{e&&g.sheetId!==e.sheetId&&this._removeDom(b,!0)});te&&U.add(te);let ne=H.onTransformChange$.subscribeEvent(()=>{let e=X(H,C.renderUnit.scene,g.skeleton,u.worksheet,q);J.next(e)});U.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),ne&&U.add(ne),this._domLayerInfoMap.set(l,q)}return{id:b,dispose:()=>{this._removeDom(b,!0)}}}addFloatDomToColumnHeader(e,n,i,a){var l;let u=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:n.unitId,subUnitId:n.subUnitId});if(!u)throw Error(`cannot find current target!`);let{unitId:d,subUnitId:p}=u;if(!this._getSceneAndTransformerByDrawingSearch(d))return;let m=this._renderManagerService.getRenderById(d);if(!m)return;let h=(l=this._renderManagerService.getRenderById(d))==null?void 0:l.with(c.SheetSkeletonManagerService).getSkeletonParam(p);if(!h)return;let{componentKey:g,data:_,allowTransform:v=!0}=n,y=a==null?(0,t.generateRandomId)():a,{position:b,position$:x}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:e,endColumn:e},m,h.skeleton),S=b;S.startY=0;let C=this._getPosition(b,d);if(C==null)return;let w={unitId:d,subUnitId:p,drawingId:y,drawingType:n.type||t.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:e,subUnitId:a,drawingId:l}=w,u=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:a}),d=w,p=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let g=(T=this._renderManagerService.getRenderById(e))==null?void 0:T.with(c.SheetSkeletonManagerService);if(!g)return;let _=g.getSkeletonParam(a);if(!_)return;let{transform:v,data:C}=d,D=this._getSceneAndTransformerByDrawingSearch(e);if(D==null)return;let{scene:O,canvas:k}=D;if(v==null||m!==a)return;let{left:A,top:j,width:M,height:N,angle:P,flipX:F,flipY:I,skewX:L,skewY:R}=v,z=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:a,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=Oe({rotate:0,startX:S.startX,startY:0,endX:b.endX,endY:b.endY,width:i.width,height:i.height,absolute:{left:b.absolute.left,top:b.absolute.top}},i),H=new r.Rect(z,{left:V.startX,top:V.startY,width:V.width,height:V.height,zIndex:this._drawingManagerService.getDrawingOrder(e,a).length-1});O.addObject(H,r.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&O.attachTransformerTo(H);let U=new t.DisposableCollection,W=O.getMainViewport(),G={dispose:U,rect:H,unitId:e,subUnitId:a,boundsOfViewArea:{top:0,left:W.left,bottom:W.bottom,right:W.right},domAnchor:i,scrollDirectionResponse:we.HORIZONTAL},K=new f.BehaviorSubject(X(H,D.renderUnit.scene,_.skeleton,u.worksheet,G));G.position$=K;let q={position$:K,id:l,componentKey:d.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{k.dispatchEvent(new WheelEvent(e.type,e))},data:C,unitId:e};n.eventPassThrough&&(q={...q,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(q);let J=H.onTransformChange$.subscribeEvent(()=>{let e=X(H,D.renderUnit.scene,_.skeleton,u.worksheet,G);K.next(e)});this.disposeWithMe(x.subscribe(t=>{let n=Oe({rotate:0,startX:t.startX,startY:0,endX:t.endX,endY:t.endY,width:i.width,height:i.height,absolute:{left:b.absolute.left,top:b.absolute.top}},i),s=X(new r.Rect((0,o.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:a,drawingId:l}),{left:n.startX,top:0,width:i.width,height:i.height,zIndex:this._drawingManagerService.getDrawingOrder(e,a).length-1}),D.renderUnit.scene,_.skeleton,u.worksheet,G);K.next(s)}));let ee=(E=this._renderManagerService.getRenderById(e))==null?void 0:E.with(c.SheetSkeletonManagerService);ee==null||ee.currentSkeleton$.subscribe(e=>{e&&h.sheetId!==e.sheetId&&this._removeDom(y,!0)}),U.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),J&&U.add(J),this._domLayerInfoMap.set(l,G)}return{id:y,dispose:()=>{this._removeDom(y,!0)}}}_createRangePositionObserver(e,n,r){let{startRow:i,startColumn:a}=e,o=De(i,a,r),l=new f.BehaviorSubject(o),u=De(e.endRow,e.endColumn,r),d=new f.BehaviorSubject(u),p=()=>{let t=De(i,a,r),n=De(e.endRow,e.endColumn,r);l.next(t),d.next(n)},m=new t.DisposableCollection;return m.add(n.engine.clientRect$.subscribe(()=>p())),m.add(this._commandService.onCommandExecuted(e=>{if(e.id===s.SetWorksheetRowAutoHeightMutation.id&&e.params.rowsAutoHeightInfo.findIndex(e=>e.row===i)>-1){p();return}(s.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(e.id)>-1||e.id===c.SetScrollOperation.id||e.id===c.SetZoomRatioOperation.id)&&p()})),{position$:l.pipe((0,f.map)(t=>{let n=De(e.endRow,e.endColumn,r);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-o.left,height:u.bottom-o.top,absolute:{left:!0,top:!0},startX:o.left,startY:o.top,endX:u.right,endY:u.bottom},updateRowCol:(e,t)=>{i=e,a=t,p()},topLeftPos$:l,rightBottomPos$:d,disposable:m}}};Z=D([E(0,(0,t.Inject)(r.IRenderManagerService)),E(1,t.IUniverInstanceService),E(2,(0,t.Inject)(t.ICommandService)),E(3,o.IDrawingManagerService),E(4,(0,t.Inject)(l.CanvasFloatDomService)),E(5,n.ISheetDrawingService),E(6,(0,t.Inject)(t.LifecycleService))],Z);function De(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 Oe(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=ke(t.marginX,o*n);u=e.endX-r-c}else u=e.startX+ke(t.marginX,o);if(t.verticalOffsetAlign===`bottom`){let r=ke(t.marginY,s*n);d=e.endY-r-l}else d=e.startY+ke(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 ke(e,t){return e===void 0?0:typeof e==`number`?e:t*Number.parseFloat(e)/100}let Ae=e=>{let{floatDomInfos:t,scene:n,skeleton:r,worksheet:i}=e;return(0,m.jsx)(`div`,{style:{position:`absolute`,top:0,left:0},children:(0,p.useMemo)(()=>t.map(e=>{let{width:t,height:a,angle:o,left:s,top:c}=e.transform,l=Ee({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:d}=n.getAncestorScale(),p={startX:l.left,endX:l.right,startY:l.top,endY:l.bottom,rotate:o,width:t*u,height:a*d,absolute:l.absolute},m={position$:new f.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,m.jsx)(l.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})},je=class extends t.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,n,r)=>{let{unitId:i,scene:a,subUnitId:o}=n,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[o];return c&&c.order.forEach(e=>{let n=c.data[e];n.drawingType!==t.DrawingTypeEnum.DRAWING_CHART&&n.drawingType!==t.DrawingTypeEnum.DRAWING_DOM&&this._drawingRenderService.renderDrawing(n,a)}),r()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(e,n,r)=>{let{unitId:i,subUnitId:a}=n,o=this._renderManagerService.getRenderById(i);if(!o)return r(e);let s=o.with(c.SheetSkeletonManagerService).getSkeletonParam(a);if(!s)return r(e);let l=this._drawingManagerService.getDrawingDataForUnit(i),u=l==null?void 0:l[n.subUnitId];if(!u)return r(e);let{scaleX:d,scaleY:f}=o.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&&t.Tools.isDefine(e.transform.left)&&t.Tools.isDefine(e.transform.top)&&t.Tools.isDefine(e.transform.width)&&t.Tools.isDefine(e.transform.height)){let t=s.skeleton.getCellIndexByOffset(e.transform.left,e.transform.top,d,f,{x:0,y:0}),n=s.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)}}),r(p)):r(e)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,n,r)=>{let{unitId:a,subUnitId:o}=n,s=this._drawingManagerService.getDrawingDataForUnit(a),c=s==null?void 0:s[o];if(c){let a=c.order.map(e=>{let n=c.data[e];if(n.drawingType===t.DrawingTypeEnum.DRAWING_CHART)return{...n,componentKey:this._componetManager.get(t.PRINT_CHART_COMPONENT_KEY)};if(n.drawingType===t.DrawingTypeEnum.DRAWING_DOM){let e=this._sheetPrintInterceptorService.getPrintComponent(n.componentKey);return{...n,componentKey:this._componetManager.get(e||n.componentKey)}}return null}).filter(Boolean);return(0,i.render)((0,m.jsx)((0,l.connectInjector)(Ae,this._injector),{floatDomInfos:a,scene:n.scene,skeleton:n.skeleton,worksheet:n.worksheet}),n.root),e==null||e.add(()=>{(0,i.unmount)(n.root)}),r(e)}}}))}};je=D([E(0,(0,t.Inject)(c.SheetPrintInterceptorService)),E(1,(0,t.Inject)(d.DrawingRenderService)),E(2,o.IDrawingManagerService),E(3,r.IRenderManagerService),E(4,(0,t.Inject)(Z)),E(5,(0,t.Inject)(l.ComponentManager)),E(6,(0,t.Inject)(t.Injector))],je);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||{});let Me=[s.InsertRowCommand.id,s.InsertColCommand.id,s.RemoveRowCommand.id,s.RemoveColCommand.id,s.DeleteRangeMoveLeftCommand.id,s.DeleteRangeMoveUpCommand.id,s.InsertRangeMoveDownCommand.id,s.InsertRangeMoveRightCommand.id,s.DeltaRowHeightCommand.id,s.SetRowHeightCommand.id,s.DeltaColumnWidthCommand.id,s.SetColWidthCommand.id,s.SetRowHiddenCommand.id,s.SetSpecificRowsVisibleCommand.id,s.SetSpecificColsVisibleCommand.id,s.SetColHiddenCommand.id,s.MoveColsCommand.id,s.MoveRowsCommand.id,s.MoveRangeCommand.id],Ne=[s.SetRowVisibleMutation.id,s.SetRowHiddenMutation.id,s.SetColVisibleMutation.id,s.SetColHiddenMutation.id,s.SetWorksheetRowHeightMutation.id,s.SetWorksheetRowAutoHeightMutation.id,s.SetWorksheetRowIsAutoHeightMutation.id,s.SetWorksheetColWidthMutation.id],Pe=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c){super(),this._context=e,this._commandService=t,this._sheetSkeletonService=n,this._selectionRenderService=r,this._sheetInterceptorService=i,this._selectionManagerService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._univerInstanceService=c,this._sheetInterceptorListener(),this._commandListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{let{id:n,params:r}=e;if(!Me.includes(n)||!r)return{redos:[],undos:[]};if(n===s.InsertRowCommand.id)return this._moveRowInterceptor(r,`insert`);if([s.MoveColsCommand.id,s.MoveRowsCommand.id,s.MoveRangeCommand.id].includes(n)){let e;if(n===s.MoveRangeCommand.id){let t=r;if(t.toUnitId&&t.fromUnitId&&t.toUnitId!==t.fromUnitId||t.toSubUnitId&&t.fromSubUnitId&&t.toSubUnitId!==t.fromSubUnitId)return{redos:[],undos:[]};e=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:t.toUnitId,subUnitId:t.toSubUnitId})}else e=(0,s.getSheetCommandTarget)(this._univerInstanceService,r);if(!e)return{redos:[],undos:[]};let{unitId:t,subUnitId:i}=e,{fromRange:a,toRange:o}=r;return this._moveRangeInterceptor(t,i,a,o)}else if(n===s.InsertColCommand.id)return this._moveColInterceptor(r,`insert`);else if(n===s.RemoveRowCommand.id)return this._moveRowInterceptor(r,`remove`);else if(n===s.RemoveColCommand.id)return this._moveColInterceptor(r,`remove`);else if(n===s.DeleteRangeMoveLeftCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,Q.deleteLeft)}else if(n===s.DeleteRangeMoveUpCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,Q.deleteUp)}else if(n===s.InsertRangeMoveDownCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,Q.insertDown)}else if(n===s.InsertRangeMoveRightCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,Q.insertRight)}else if(n===s.SetRowHiddenCommand.id||n===s.SetSpecificRowsVisibleCommand.id){var i;let e=r,n=(0,s.getSheetCommandTarget)(this._univerInstanceService,e);if(!n)return{redos:[],undos:[]};let{unitId:a,subUnitId:o}=n,c=e.ranges||((i=this._selectionManagerService.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.ROW));return!c||c.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowVisible(a,o,c)}else if(n===s.SetColHiddenCommand.id||n===s.SetSpecificColsVisibleCommand.id){var a;let e=r,n=(0,s.getSheetCommandTarget)(this._univerInstanceService,e);if(!n)return{redos:[],undos:[]};let{unitId:i,subUnitId:o}=n,c=e.ranges||((a=this._selectionManagerService.getCurrentSelections())==null?void 0:a.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.COLUMN));return!c||c.length===0?{redos:[],undos:[]}:this._getDrawingUndoForColVisible(i,o,c)}else if(n===s.DeltaRowHeightCommand.id||n===s.DeltaColumnWidthCommand.id){let e=(0,s.getSheetCommandTarget)(this._univerInstanceService);if(!e)return{redos:[],undos:[]};let{unitId:t,subUnitId:i,worksheet:a}=e,o=[];return n===s.DeltaRowHeightCommand.id?o.push({startRow:r.anchorRow,endRow:r.anchorRow,startColumn:0,endColumn:a.getColumnCount()-1}):o.push({startRow:0,endRow:a.getRowCount()-1,startColumn:r.anchorCol,endColumn:r.anchorCol}),this._getDrawingUndoForRowAndColSize(t,i,o)}else if(n===s.SetRowHeightCommand.id||n===s.SetColWidthCommand.id){var o;let e=r,t=(0,s.getSheetCommandTarget)(this._univerInstanceService,e);if(!t)return{redos:[],undos:[]};let{unitId:n,subUnitId:i}=t,a=e.ranges||((o=this._selectionManagerService.getCurrentSelections())==null?void 0:o.map(e=>e.range));return!a||a.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowAndColSize(n,i,a)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(e,t){let r=(0,s.getSheetCommandTarget)(this._univerInstanceService);if(!r)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=r,o=this._sheetDrawingService.getDrawingData(i,a),c=[],l=[],u=[],d=[];if(Object.keys(o).forEach(n=>{let r=o[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:r}=this._sheetDrawingService.getBatchUpdateOp(u);c.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:r,type:n.DrawingApplyType.UPDATE}}),l.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:e,objects:r,type:n.DrawingApplyType.UPDATE}})}if(d.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(d),t=e.undo,r=e.redo,o=e.objects;c.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:r,objects:o,type:n.DrawingApplyType.REMOVE}}),l.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:o,type:n.DrawingApplyType.INSERT}})}return c.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),l.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),{redos:c,undos:l}}_getUpdateOrDeleteDrawings(e,t,r){let i=[],a=[],{sheetTransform:o,anchorType:s=n.SheetDrawingAnchorType.Position,transform:c,unitId:l,subUnitId:u,drawingId:d}=r,f=this._sheetSkeletonService.getSkeletonParam(l,u);if(!o||!c||!f)return{updateDrawings:i,deleteDrawings:a};let{from:p,to:m}=o,{row:h,column:g}=p,{row:_,column:v}=m,{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(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType: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(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType: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(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType: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(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType: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&&w){let e=(0,n.drawingPositionToTransform)(C,f);i.push({...r,sheetTransform:C,transform:e,axisAlignSheetTransform:T})}return{updateDrawings:i,deleteDrawings:a}}_remainDrawingSize(e,t,r,i){let a=(0,n.transformToDrawingPosition)({...e},i);if(a){let o=(0,n.transformToAxisAlignPosition)({...e},i);t.push({...r,sheetTransform:a,axisAlignSheetTransform:o})}}_getDrawingUndoForColVisible(e,t,r){let i=this._sheetSkeletonService.getSkeleton(e,t);if(!i)return{redos:[],undos:[]};let a=this._drawingManagerService.getDrawingData(e,t),o=[],c=[];if(Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:l,transform:u,anchorType:d=n.SheetDrawingAnchorType.Position}=t;if(d===n.SheetDrawingAnchorType.None)this._remainDrawingSize(u,o,t,i);else{let{from:e,to:a}=l,{row:f,column:p}=e,{row:m,column:h}=a;for(let e=0;e<r.length;e++){let{startColumn:a,endColumn:l}=r[e];if(h<a)continue;if(d===n.SheetDrawingAnchorType.Position){let e=null,r=null;if(p>=a&&p<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:l,startRow:f,endRow:m});r={...u,left:e.startX}}if(r){e=(0,n.transformToDrawingPosition)(r,i);let a=(0,n.transformToAxisAlignPosition)(r,i);if(e&&r){o.push({...t,sheetTransform:e,transform:r,axisAlignSheetTransform:a});break}}this._remainDrawingSize(u,o,t,i);continue}if(p>=a&&h<=l)continue;let g=null,_=null;if(p>=a&&p<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:l,startRow:f,endRow:m});_={...u,left:(e==null?void 0:e.startX)||0,width:((u==null?void 0:u.width)||0)-e.endX+e.startX}}else if(h>=a&&h<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:a,endColumn:h,startRow:f,endRow:m});_={...u,left:e.startX-((u==null?void 0:u.width)||0)}}else{let e=(0,s.attachRangeWithCoord)(i,{startColumn:a,endColumn:l,startRow:f,endRow:m});if(_={...u,width:((u==null?void 0:u.width)||0)-e.endX+e.startX},g=(0,n.transformToDrawingPosition)(_,i),g&&_){let e=(0,n.transformToAxisAlignPosition)(_,i);c.push({...t,sheetTransform:g,transform:_,axisAlignSheetTransform:e});break}}if(_&&(g=(0,n.transformToDrawingPosition)(_,i)),_&&g){let e=(0,n.transformToAxisAlignPosition)(_,i);o.push({...t,sheetTransform:g,transform:_,axisAlignSheetTransform:e});break}else this._remainDrawingSize(u,o,t,i)}}}),o.length===0&&c.length===0)return{redos:[],undos:[]};let{redos:l,undos:u}=this._createUndoAndRedoMutation(e,t,o),d=[],f=[];if(c.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,c);d.push(...n),f.push(...r)}return{redos:l,undos:u,preRedos:d,preUndos:f}}_createUndoAndRedoMutation(e,t,r){let{undo:i,redo:a,objects:o}=this._sheetDrawingService.getBatchUpdateOp(r);return{redos:[{id:n.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:a,objects:o,type:n.DrawingApplyType.UPDATE}},{id:n.ClearSheetDrawingTransformerOperation.id,params:[e]}],undos:[{id:n.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:i,objects:o,type:n.DrawingApplyType.UPDATE}},{id:n.ClearSheetDrawingTransformerOperation.id,params:[e]}]}}_getDrawingUndoForRowVisible(e,t,r){let i=this._sheetSkeletonService.getSkeleton(e,t);if(!i)return{redos:[],undos:[]};let a=this._drawingManagerService.getDrawingData(e,t),o=[],c=[];if(Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:l,transform:u,anchorType:d=n.SheetDrawingAnchorType.Position}=t;if(d===n.SheetDrawingAnchorType.None)this._remainDrawingSize(u,o,t,i);else{let{from:e,to:a}=l,{row:f,column:p}=e,{row:m,column:h}=a;for(let e=0;e<r.length;e++){let{startRow:a,endRow:l}=r[e];if(m<a)continue;if(d===n.SheetDrawingAnchorType.Position){let e=null,r=null;if(f>=a&&f<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:h,startRow:f,endRow:l});r={...u,top:e.startY}}if(r){e=(0,n.transformToDrawingPosition)(r,i);let a=(0,n.transformToAxisAlignPosition)(r,i);if(e&&r){o.push({...t,sheetTransform:e,transform:r,axisAlignSheetTransform:a});break}}this._remainDrawingSize(u,o,t,i);continue}if(f>=a&&m<=l)continue;let g=null,_=null;if(f>=a&&f<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:h,startRow:f,endRow:l});_={...u,top:(e==null?void 0:e.startY)||0,height:((u==null?void 0:u.height)||0)-e.endY+e.startY}}else if(m>=a&&m<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:h,startRow:a,endRow:m});_={...u,top:e.startY-((u==null?void 0:u.height)||0)}}else{let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:h,startRow:a,endRow:l});if(_={...u,height:((u==null?void 0:u.height)||0)-e.endY+e.startY},g=(0,n.transformToDrawingPosition)(_,i),g&&_){let e=(0,n.transformToAxisAlignPosition)(_,i);c.push({...t,sheetTransform:g,transform:_,axisAlignSheetTransform:e});break}}if(_&&(g=(0,n.transformToDrawingPosition)(_,i)),_&&g){let e=(0,n.transformToAxisAlignPosition)(_,i);o.push({...t,sheetTransform:g,transform:_,axisAlignSheetTransform:e});break}else this._remainDrawingSize(u,o,t,i)}}}),o.length===0&&c.length===0)return{redos:[],undos:[]};let{redos:l,undos:u}=this._createUndoAndRedoMutation(e,t,o),d=[],f=[];if(c.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,c);d.push(...n),f.push(...r)}return{redos:l,undos:u,preRedos:d,preUndos:f}}_getDrawingUndoForRowAndColSize(e,t,r){let i=this._sheetSkeletonService.getSkeletonParam(e,t);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,o=this._drawingManagerService.getDrawingData(e,t),s=[];return Object.keys(o).forEach(e=>{let t=o[e],{sheetTransform:c,transform:l,anchorType:u=n.SheetDrawingAnchorType.Position}=t;if(u===n.SheetDrawingAnchorType.None)this._remainDrawingSize(l,s,t,a);else{let{from:e,to:o}=c,{row:d,column:f}=e,{row:p,column:m}=o;for(let e=0;e<r.length;e++){let{startRow:o,endRow:h,startColumn:g,endColumn:_}=r[e];if(p<o||m<g)continue;if(u===n.SheetDrawingAnchorType.Position&&(d<=o&&p>=h||f<=g&&m>=_)){this._remainDrawingSize(l,s,t,a);continue}let v=(0,n.drawingPositionToTransform)({...c},i);if(v){s.push({...t,transform:v});break}}}}),s.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,s)}_getUnitIdAndSubUnitId(e,t){let n;if(n=t===`insert`?(0,s.getSheetCommandTarget)(this._univerInstanceService,e):(0,s.getSheetCommandTarget)(this._univerInstanceService),!n)return;let{unitId:r,subUnitId:i}=n;return{unitId:r,subUnitId:i}}_moveRangeInterceptor(e,t,r,i){let a=this._sheetSkeletonService.getSkeletonParam(e,t);if(!a)return{redos:[],undos:[]};let{skeleton:o}=a,c=(0,s.attachRangeWithCoord)(o,r);if(!c)return{redos:[],undos:[]};let{startX:l,endX:u,startY:d,endY:f}=c,p=this._sheetDrawingService.getDrawingData(e,t),m=[];Object.keys(p).forEach(e=>{let t=p[e];if(t.anchorType!==n.SheetDrawingAnchorType.Both)return;let{transform:r}=t;if(!r)return;let{left:i=0,top:a=0,width:o=0,height:s=0}=r,{drawingStartX:c,drawingEndX:h,drawingStartY:g,drawingEndY:_}={drawingStartX:i,drawingEndX:i+o,drawingStartY:a,drawingEndY:a+s};l<=c&&h<=u&&d<=g&&_<=f&&m.push(t)});let h=[],g=[],_=i.startRow-r.startRow,v=i.startColumn-r.startColumn,y=m.map(r=>{let i=r.sheetTransform,o={to:{...i.to,row:i.to.row+_,column:i.to.column+v},from:{...i.from,row:i.from.row+_,column:i.from.column+v}},s=(0,n.drawingPositionToTransform)(o,a);return{unitId:e,subUnitId:t,drawingId:r.drawingId,transform:s,sheetTransform:o}});if(y.length){let{undo:r,redo:i,objects:a}=this._sheetDrawingService.getBatchUpdateOp(y);h.push({id:n.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:i,objects:a,type:n.DrawingApplyType.UPDATE}}),g.push({id:n.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:r,objects:a,type:n.DrawingApplyType.UPDATE}})}return{redos:h,undos:g}}_moveRowInterceptor(e,t){let r=this._getUnitIdAndSubUnitId(e,t);if(!r)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=r,o=this._sheetSkeletonService.getSkeletonParam(i,a);if(!o)return{redos:[],undos:[]};let{range:s}=e,c=s.startRow,l=s.endRow,u=[],d=[],f=this._sheetDrawingService.getDrawingData(i,a),p=[],m=[];if(Object.keys(f).forEach(e=>{let{sheetTransform:r,transform:s,anchorType:u=n.SheetDrawingAnchorType.Position}=f[e];if(!r||!s)return;let d,h,g;if(t===`insert`){var _;let e=this._expandRow(c,l,{sheetSkeletonParam:o,sheetTransform:r,transform:s,anchorType:u});d=e==null?void 0:e.newSheetTransform,h=e==null?void 0:e.newTransform,g=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}else{let{from:t,to:f}=r,{row:p}=t,{row:_}=f;if(u===n.SheetDrawingAnchorType.Both&&p>=c&&_<=l)m.push({unitId:i,subUnitId:a,drawingId:e});else{var v;let e=this._shrinkRow(c,l,{sheetSkeletonParam:o,sheetTransform:r,transform:s,anchorType:u});d=e==null?void 0:e.newSheetTransform,h=e==null?void 0:e.newTransform,g=(v=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:v}}if(!d||!h)return;let y={unitId:i,subUnitId:a,drawingId:e,transform:h,sheetTransform:d,axisAlignSheetTransform:g};p.push(y)}),p.length===0&&m.length===0)return{redos:[],undos:[]};if(p.length>0){let{undo:e,redo:t,objects:r}=this._sheetDrawingService.getBatchUpdateOp(p);u.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:r,type:n.DrawingApplyType.UPDATE}}),d.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:e,objects:r,type:n.DrawingApplyType.UPDATE}})}if(m.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(m),t=e.undo,r=e.redo,o=e.objects;u.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:r,objects:o,type:n.DrawingApplyType.REMOVE}}),d.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:o,type:n.DrawingApplyType.INSERT}})}return u.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),d.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),{redos:u,undos:d}}_moveColInterceptor(e,t){let r=this._getUnitIdAndSubUnitId(e,t);if(!r)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=r,o=this._sheetSkeletonService.getSkeletonParam(i,a);if(!o)return{redos:[],undos:[]};let{range:s}=e,c=s.startColumn,l=s.endColumn,u=[],d=[],f=this._sheetDrawingService.getDrawingData(i,a),p=[],m=[];if(Object.keys(f).forEach(e=>{let{sheetTransform:r,transform:s,anchorType:u=n.SheetDrawingAnchorType.Position}=f[e];if(!r||!s)return;let d,h,g;if(t===`insert`){var _;let e=this._expandCol(c,l,{sheetSkeletonParam:o,sheetTransform:r,transform:s,anchorType:u});d=e==null?void 0:e.newSheetTransform,h=e==null?void 0:e.newTransform,g=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}else{let{from:t,to:f}=r,{column:p}=t,{column:_}=f;if(u===n.SheetDrawingAnchorType.Both&&p>=c&&_<=l)m.push({unitId:i,subUnitId:a,drawingId:e});else{var v;let e=this._shrinkCol(c,l,{sheetSkeletonParam:o,sheetTransform:r,transform:s,anchorType:u});d=e==null?void 0:e.newSheetTransform,h=e==null?void 0:e.newTransform,g=(v=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:v}}if(!d||!h)return;let y={unitId:i,subUnitId:a,drawingId:e,transform:h,sheetTransform:d,axisAlignSheetTransform:g};p.push(y)}),p.length===0&&m.length===0)return{redos:[],undos:[]};if(p.length>0){let{undo:e,redo:t,objects:r}=this._sheetDrawingService.getBatchUpdateOp(p);u.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:r,type:n.DrawingApplyType.UPDATE}}),d.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:e,objects:r,type:n.DrawingApplyType.UPDATE}})}if(m.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(m),t=e.undo,r=e.redo,o=e.objects;u.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:r,objects:o,type:n.DrawingApplyType.REMOVE}}),d.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:o,type:n.DrawingApplyType.INSERT}})}return u.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),d.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),{redos:u,undos:d}}_expandCol(e,t,r){let{sheetSkeletonParam:i,sheetTransform:a,transform:o,anchorType:c=n.SheetDrawingAnchorType.Position}=r,{skeleton:l}=i,u=t-e+1,{from:d,to:f}=a,{column:p}=d,{column:m}=f;if(c===n.SheetDrawingAnchorType.None)return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};let h=null,g=null,_=null;if(p>=e){let r=(0,s.attachRangeWithCoord)(l,{startColumn:e,endColumn:t,startRow:d.row,endRow:f.row});g={...o,left:(o.left||0)+r.endX-r.startX},h=(0,n.transformToDrawingPosition)(g,l),_=(0,n.transformToAxisAlignPosition)(g,l)}else if(m>=t)if(c===n.SheetDrawingAnchorType.Both)h={from:{...d},to:{...f,column:m+u}},g=(0,n.drawingPositionToTransform)(h,i);else return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};return h&&g?{newSheetTransform:h,newTransform:g,axisAlignSheetTransform:_}:null}_shrinkCol(e,t,r){let{sheetSkeletonParam:i,sheetTransform:a,transform:o,anchorType:c=n.SheetDrawingAnchorType.Position}=r,{skeleton:l}=i,u=t-e+1,{from:d,to:f}=a,{column:p}=d,{column:m}=f;if(c===n.SheetDrawingAnchorType.None)return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};let h=null,g=null,_=null;if(p>t)h={from:{...d,column:p-u},to:{...f,column:m-u}},g=(0,n.drawingPositionToTransform)(h,i);else if(p>=e&&m<=t)return null;else if(p<e&&m>t)if(c===n.SheetDrawingAnchorType.Both)h={from:{...d},to:{...f,column:m-u}},g=(0,n.drawingPositionToTransform)(h,i);else return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};else if(p>=e&&p<=t){if(p===e)g={...o,left:(o.left||0)-a.from.columnOffset};else{let t=(0,s.attachRangeWithCoord)(l,{startColumn:e,endColumn:p-1,startRow:d.row,endRow:f.row});g={...o,left:(o.left||0)-t.endX+t.startX-a.from.columnOffset}}h=(0,n.transformToDrawingPosition)(g,l),_=(0,n.transformToAxisAlignPosition)(g,l)}else if(m>=e&&m<=t&&c===n.SheetDrawingAnchorType.Both){let t=(0,s.attachRangeWithCoord)(l,{startColumn:e-1,endColumn:e-1,startRow:d.row,endRow:f.row});h={from:{...d},to:{...f,column:e-1,columnOffset:t.endX-t.startX}},g=(0,n.drawingPositionToTransform)(h,i)}return h&&g?{newSheetTransform:h,newTransform:g,axisAlignSheetTransform:_}:null}_expandRow(e,t,r){let{sheetSkeletonParam:i,sheetTransform:a,transform:o,anchorType:c=n.SheetDrawingAnchorType.Position}=r,{skeleton:l}=i,u=t-e+1,{from:d,to:f}=a,{row:p}=d,{row:m}=f;if(c===n.SheetDrawingAnchorType.None)return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};let h=null,g=null,_=null;if(p>=e){let r=(0,s.attachRangeWithCoord)(l,{startRow:e,endRow:t,startColumn:d.column,endColumn:f.column});g={...o,top:(o.top||0)+r.endY-r.startY},h=(0,n.transformToDrawingPosition)(g,l),_=(0,n.transformToAxisAlignPosition)(g,l)}else if(m>=t)if(c===n.SheetDrawingAnchorType.Both)h={from:{...d},to:{...f,row:m+u}},g=(0,n.drawingPositionToTransform)(h,i);else return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};return h&&g?{newSheetTransform:h,newTransform:g,axisAlignSheetTransform:_}:null}_shrinkRow(e,t,r){let{sheetSkeletonParam:i,sheetTransform:a,transform:o,anchorType:c=n.SheetDrawingAnchorType.Position}=r,{skeleton:l}=i,u=t-e+1,{from:d,to:f}=a,{row:p}=d,{row:m}=f;if(c===n.SheetDrawingAnchorType.None)return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};let h=null,g=null,_=null;if(p>t)h={from:{...d,row:p-u},to:{...f,row:m-u}},g=(0,n.drawingPositionToTransform)(h,i);else if(p>=e&&m<=t)return null;else if(p<e&&m>t)if(c===n.SheetDrawingAnchorType.Both)h={from:{...d},to:{...f,row:m-u}},g=(0,n.drawingPositionToTransform)(h,i);else return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};else if(p>=e&&p<=t){if(p===e)g={...o,top:(o.top||0)-a.from.rowOffset};else{let t=(0,s.attachRangeWithCoord)(l,{startRow:e,endRow:p-1,startColumn:d.column,endColumn:f.column});g={...o,top:(o.top||0)-t.endY+t.startY-a.from.rowOffset}}h=(0,n.transformToDrawingPosition)(g,l),_=(0,n.transformToAxisAlignPosition)(g,l)}else if(m>=e&&m<=t&&c===n.SheetDrawingAnchorType.Both){let t=(0,s.attachRangeWithCoord)(l,{startColumn:d.column,endColumn:d.column,startRow:e-1,endRow:e-1});h={from:{...d},to:{...f,row:e-1,rowOffset:t.endY-t.startY}},g=(0,n.drawingPositionToTransform)(h,i)}return h&&g?{newSheetTransform:h,newTransform:g,axisAlignSheetTransform:_}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===s.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];Object.keys(i).forEach(t=>{let a=i[t].data;Object.keys(a).forEach(t=>{r===e&&n.push(a[t])})})}),this._sheetDrawingService.removeNotification(n),this._drawingManagerService.removeNotification(n)})}_updateDrawings(e,t){setTimeout(()=>{let r=this._sheetSkeletonService.getSkeletonParam(e,t),i=this._drawingManagerService.drawingManagerData,a=[],o=[];Object.keys(i).forEach(s=>{let c=i[s];Object.keys(c).forEach(i=>{let l=c[i].data;Object.keys(l).forEach(c=>{if(s===e&&i===t){let e=l[c];e.sheetTransform&&(e.transform=(0,n.drawingPositionToTransform)(e.sheetTransform,r)),a.push(l[c])}else o.push(l[c])})})}),this._sheetDrawingService.removeNotification(o),this._sheetDrawingService.addNotification(a),this._drawingManagerService.removeNotification(o),this._drawingManagerService.addNotification(a)},0)}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{Ne.includes(e.id)&&requestIdleCallback(()=>{let t=e.params,n=(0,s.getSheetCommandTarget)(this._univerInstanceService,t);if(!n)return;let{unitId:r,subUnitId:i,worksheet:a}=n,o=[];`ranges`in t?o=t.ranges:`rowsAutoHeightInfo`in t&&(o=t.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:a.getColumnCount()-1}))),this._refreshDrawingTransform(r,i,o)})}))}_refreshDrawingTransform(e,r,i){let a=this._sheetSkeletonService.getSkeletonParam(e,r),o=this._drawingManagerService.getDrawingData(e,r),s=[];Object.keys(o).forEach(e=>{let r=o[e],{sheetTransform:c,transform:l,anchorType:u=n.SheetDrawingAnchorType.Position}=r;if(u===n.SheetDrawingAnchorType.None)return!0;let{from:d,to:f}=c,{row:p,column:m}=d,{row:h,column:g}=f;for(let e=0;e<i.length;e++){let{startRow:o,endRow:d,startColumn:f,endColumn:_}=i[e];if(t.Rectangle.intersects({startRow:o,endRow:d,startColumn:f,endColumn:_},{startRow:p,endRow:h,startColumn:m,endColumn:g})||p>d||m>_){let e=u===n.SheetDrawingAnchorType.Position,t=(0,n.drawingPositionToTransform)(c,a);s.push({...r,transform:{...t,width:e?l==null?void 0:l.width:t==null?void 0:t.width,height:e?l==null?void 0:l.height:t==null?void 0:t.height}});break}}}),s.length!==0&&(this._sheetDrawingService.refreshTransform(s),this._drawingManagerService.refreshTransform(s),this._commandService.syncExecuteCommand(n.ClearSheetDrawingTransformerOperation.id,[e]))}};Pe=D([E(1,t.ICommandService),E(2,(0,t.Inject)(s.SheetSkeletonService)),E(3,c.ISheetSelectionRenderService),E(4,(0,t.Inject)(s.SheetInterceptorService)),E(5,(0,t.Inject)(s.SheetsSelectionsService)),E(6,n.ISheetDrawingService),E(7,o.IDrawingManagerService),E(8,t.IUniverInstanceService)],Pe);let Fe={id:`sheet.command.toggle-flip-drawings`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),c=e.get(n.ISheetDrawingService),l=e.get(s.SheetSkeletonService),{drawings:u}=r,d=r.flipH,f=r.flipV,p=[],m=[];for(let r of u){let{unitId:i,subUnitId:a,drawingId:s}=r;p.push(i);let u=c.getDrawingData(i,a),h=u==null?void 0:u[s];if(!h)continue;let g=l.getSkeleton(i,a);if(!g)continue;let _={...h.transform};d&&(_.flipX=!_.flipX),f&&(_.flipY=!_.flipY);let v=(0,n.transformToDrawingPosition)(_,g),y=(0,n.transformToAxisAlignPosition)(_,g),b={unitId:i,subUnitId:a,drawingType:h.drawingType,drawingId:s,transform:_,sheetTransform:v,axisAlignSheetTransform:y};if(h.drawingType===t.DrawingTypeEnum.DRAWING_IMAGE){let t=Ie(e,i);if(t){let e=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:i,subUnitId:a,drawingId:s}),n=t.getObject(e);if(n){let e=n.srcRect;if(e){let t,{left:n=0,top:r=0,right:i=0,bottom:a=0}=e;if(d){let e=n+(i-n)/2;t={left:e-(i-n)/2,top:r,right:e+(i-n)/2,bottom:a}}if(f){let e=r+(a-r)/2;t={left:n,top:e-(a-r)/2,right:i,bottom:e+(a-r)/2}}t&&(b.srcRect=t)}}}}m.push(b)}if(m.length===0)return!1;let{unitId:h,subUnitId:g,undo:_,redo:v,objects:y}=c.getBatchUpdateOp(m),b={id:n.SetDrawingApplyMutation.id,params:{unitId:h,subUnitId:g,op:v,objects:y,type:n.DrawingApplyType.UPDATE}},x={id:n.SetDrawingApplyMutation.id,params:{unitId:h,subUnitId:g,op:_,objects:y,type:n.DrawingApplyType.UPDATE}};return(0,t.sequenceExecute)([b],i)?(a.pushUndoRedo({unitID:h,undoMutations:[x,{id:n.ClearSheetDrawingTransformerOperation.id,params:p}],redoMutations:[b,{id:n.ClearSheetDrawingTransformerOperation.id,params:p}]}),!0):!1}};function Ie(e,t){let n=e.get(r.IRenderManagerService).getRenderById(t);return n?n.scene:null}function Le(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 Re(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(Le(r.getValue(e,t)))return!0;return!1}function ze(){return`showDirectoryPicker`in window}function Be(e){let n=e.get(t.IUniverInstanceService),r=e.get(s.SheetsSelectionsService),i=(0,f.combineLatest)([(0,l.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),n.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,f.switchMap)(e=>e?r.selectionMoveEnd$.pipe((0,f.map)(()=>{if(!ze())return!0;let t=r.getCurrentSelections();if(!t||t.length===0)return!0;for(let n of t)if(Re(e,n.range))return!1;return!0})):(0,f.of)(!0)))]).pipe((0,f.map)(([e,t])=>e||t));return{id:G.id,type:l.MenuItemType.BUTTON,icon:`DownloadImageIcon`,title:`sheetImage.save.menuLabel`,hidden$:i}}let Ve={[l.RibbonInsertGroup.MEDIA]:{[te]:{order:0,menuItemFactory:ne,[j.id]:{order:0,menuItemFactory:re},[M.id]:{order:1,menuItemFactory:ie}}},[l.ContextMenuPosition.MAIN_AREA]:{[l.ContextMenuGroup.OTHERS]:{[G.id]:{order:10,menuItemFactory:Be}}},[l.ContextMenuPosition.COL_HEADER]:{[l.ContextMenuGroup.OTHERS]:{[G.id]:{order:10,menuItemFactory:Be}}},[l.ContextMenuPosition.ROW_HEADER]:{[l.ContextMenuGroup.OTHERS]:{[G.id]:{order:10,menuItemFactory:Be}}}};function He(){let e=(0,l.useDependency)(t.LocaleService),n=(0,l.useDependency)(l.IDialogService),r=(0,l.useDependency)(F),[a,o]=(0,p.useState)([P.CELL_ADDRESS]),[s,u]=(0,p.useState)(!1),[d,f]=(0,p.useState)(null),h=(0,p.useMemo)(()=>r.getCellImagesInSelection(),[r]),g=(0,p.useMemo)(()=>r.getDataColumns(),[r]),_=(0,p.useMemo)(()=>r.getSelectionRowRange(),[r]),v=g.length>0,y=(0,p.useMemo)(()=>g.map(e=>({label:e.label,value:String(e.index)})),[g]),[b,x]=(0,p.useState)(()=>y.length>0?y[0].value:`0`);(0,c.useHighlightRange)((0,p.useMemo)(()=>{if(!a.includes(P.COLUMN_VALUE)||!_)return[];let e=Number(b);return[{startRow:_.startRow,endRow:_.endRow,startColumn:e,endColumn:e}]},[a,b,_]));let S=(0,p.useCallback)(e=>{e.length!==0&&o(e)},[]),C=(0,p.useCallback)(e=>{x(String(e))},[]),w=(0,p.useCallback)(()=>{n.close(W)},[n]),T=(0,p.useCallback)(async()=>{if(h.length!==0){u(!0),f(null);try{await r.saveImages(h,{fileNameParts:a,columnIndex:a.includes(P.COLUMN_VALUE)?Number(b):void 0}),n.close(W)}catch(t){console.error(`Failed to save images:`,t),f(e.t(`sheetImage.save.error`))}finally{u(!1)}}},[r,h,a,b,n,e]),E=a.includes(P.COLUMN_VALUE);return(0,m.jsxs)(`div`,{className:`univer-flex univer-flex-col`,children:[(0,m.jsx)(i.FormLayout,{label:e.t(`sheetImage.save.imageCount`),children:(0,m.jsx)(`div`,{className:`univer-text-sm univer-text-gray-600`,children:h.length})}),(0,m.jsx)(i.FormLayout,{label:e.t(`sheetImage.save.fileNameConfig`),children:(0,m.jsxs)(i.CheckboxGroup,{value:a,onChange:S,direction:`vertical`,children:[(0,m.jsx)(i.Checkbox,{value:P.CELL_ADDRESS,disabled:!v,children:e.t(`sheetImage.save.useRowCol`)}),v&&(0,m.jsx)(i.Checkbox,{value:P.COLUMN_VALUE,children:e.t(`sheetImage.save.useColumnValue`)})]})}),E&&(0,m.jsx)(i.FormLayout,{label:e.t(`sheetImage.save.selectColumn`),children:(0,m.jsx)(i.Select,{value:b,options:y,onChange:C})}),d&&(0,m.jsx)(`div`,{className:`univer-text-xs univer-text-red-500`,children:d}),(0,m.jsxs)(`div`,{className:`univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3`,children:[(0,m.jsx)(i.Button,{onClick:w,disabled:s,children:e.t(`sheetImage.save.cancel`)}),(0,m.jsx)(i.Button,{variant:`primary`,onClick:T,disabled:s||h.length===0,children:s?e.t(`sheetImage.save.saving`):e.t(`sheetImage.save.confirm`)})]})]})}let Ue=e=>{var a;let s=(0,l.useDependency)(t.ICommandService),c=(0,l.useDependency)(t.LocaleService),u=(0,l.useDependency)(o.IDrawingManagerService),d=(0,l.useDependency)(r.IRenderManagerService),{drawings:f}=e,h=f[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,p.useState)(!0),[S,C]=(0,p.useState)((a=h.anchorType)==null?n.SheetDrawingAnchorType.Position:a);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,p.useEffect)(()=>{let e=y.clearControl$.subscribe(e=>{e===!0&&x(!1)}),t=y.changeStart$.subscribe(e=>{let{objects:t}=e,r=w(t,u);if(r.length===0)x(!1);else if(r.length>=1){var i;x(!0),C(((i=r[0])==null?void 0:i.anchorType)||n.SheetDrawingAnchorType.Position)}});return()=>{t.unsubscribe(),e.unsubscribe()}},[]);function T(e){C(e);let t=u.getFocusDrawings();if(t.length===0)return;let r=t.map(t=>({unitId:t.unitId,subUnitId:t.subUnitId,drawingId:t.drawingId,anchorType:e}));s.executeCommand(n.SetSheetDrawingCommand.id,{unitId:t[0].unitId,drawings:r})}return(0,m.jsxs)(`div`,{className:(0,i.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!b}),children:[(0,m.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,m.jsx)(`div`,{children:c.t(`drawing-anchor.title`)})}),(0,m.jsx)(`div`,{children:(0,m.jsxs)(i.RadioGroup,{value:S,onChange:T,direction:`vertical`,children:[(0,m.jsx)(i.Radio,{value:n.SheetDrawingAnchorType.Both,children:c.t(`drawing-anchor.both`)}),(0,m.jsx)(i.Radio,{value:n.SheetDrawingAnchorType.Position,children:c.t(`drawing-anchor.position`)}),(0,m.jsx)(i.Radio,{value:n.SheetDrawingAnchorType.None,children:c.t(`drawing-anchor.none`)})]})})]})},We=()=>{let e=(0,l.useDependency)(o.IDrawingManagerService),[t,n]=(0,p.useState)(e.getFocusDrawings());return(0,p.useEffect)(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&(0,m.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,m.jsx)(d.DrawingCommonPanel,{drawings:t}),(0,m.jsx)(Ue,{drawings:t})]})};function Ge(e){return e.getContextValue(t.FOCUSING_SHEET)&&!e.getContextValue(t.FOCUSING_FX_BAR_EDITOR)&&!e.getContextValue(t.FOCUSING_PANEL_EDITOR)&&e.getContextValue(t.FOCUSING_COMMON_DRAWINGS)&&!e.getContextValue(t.FOCUSING_SHAPE_TEXT_EDITOR)}let Ke={id:N.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_DOWN,priority:100,preconditions:Ge,staticParameters:{direction:t.Direction.DOWN}},qe={id:N.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_UP,priority:100,preconditions:Ge,staticParameters:{direction:t.Direction.UP}},Je={id:N.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_LEFT,priority:100,preconditions:Ge,staticParameters:{direction:t.Direction.LEFT}},Ye={id:N.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_RIGHT,priority:100,preconditions:Ge,staticParameters:{direction:t.Direction.RIGHT}},Xe={id:h.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,priority:100,preconditions:Ge,binding:l.KeyCode.DELETE,mac:l.KeyCode.BACKSPACE},Ze=class extends t.Disposable{constructor(e,t,n,r){super(),this._componentManager=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._init()}_initCustomComponents(){let e=this._componentManager;this.disposeWithMe(e.register(K,We)),this.disposeWithMe(e.register(W,He))}_initMenus(){this._menuManagerService.mergeMenu(Ve)}_initCommands(){[j,M,q,J,b,x,N,h,G,Fe].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[Ke,qe,Je,Ye,Xe].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};Ze=D([E(0,(0,t.Inject)(l.ComponentManager)),E(1,l.IMenuManagerService),E(2,t.ICommandService),E(3,l.IShortcutService)],Ze);let Qe=class extends t.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,T(this,`_initImagePopupMenu`,new Set),this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._create(e)),this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._dispose(e)),this._univerInstanceService.getAllUnitsForType(t.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:i.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 d.ImageCropperObject)return!0;return!1}_popupMenuListener(e){var n;let r=(n=this._renderManagerService.getRenderById(e))==null?void 0:n.scene;if(!r)return;let i=r.getTransformerByCreate();if(!i)return;let a;this.disposeWithMe(i.createControl$.subscribe(()=>{if(this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!0),this._hasCropObject(r))return;let e=i.getSelectedObjectMap();if(e.size>1){a==null||a.dispose();return}let n=e.values().next().value;if(!n)return;let o=n.oKey,s=this._drawingManagerService.getDrawingOKey(o);if(!s)return;let{unitId:c,subUnitId:l,drawingId:u,drawingType:f}=s,p=s.data;if(p&&p.disablePopup)return;a==null||a.dispose();let m=this._canvasPopManagerService.getFeatureMenu(c,l,u,f);a=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(n,{componentKey:d.COMPONENT_IMAGE_POPUP_MENU,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:m||this._getImageMenuItems(c,l,u,f)}}))})),this.disposeWithMe(i.clearControl$.subscribe(()=>{a==null||a.dispose(),this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._commandService.syncExecuteCommand(o.SetDrawingSelectedOperation.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(e=>{e[t.FOCUSING_COMMON_DRAWINGS]===!1&&(a==null||a.dispose())})),this.disposeWithMe(i.changing$.subscribe(()=>{a==null||a.dispose()}))}_getImageMenuItems(e,r,i,a){return[{label:`image-popup.edit`,index:0,commandId:J.id,commandParams:{unitId:e,subUnitId:r,drawingId:i},disable:a===t.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.delete`,index:1,commandId:n.RemoveSheetDrawingCommand.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:r,drawingId:i}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:d.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:r,drawingId:i},disable:a===t.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipH`,index:2,commandId:Fe.id,commandParams:{unitId:e,flipH:!0,drawings:[{unitId:e,subUnitId:r,drawingId:i}]},disable:a===t.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipV`,index:2,commandId:Fe.id,commandParams:{unitId:e,flipV:!0,drawings:[{unitId:e,subUnitId:r,drawingId:i}]},disable:a===t.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.reset`,index:3,commandId:d.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:r,drawingId:i}],disable:a===t.DrawingTypeEnum.DRAWING_DOM}]}};Qe=D([E(0,(0,t.Inject)(t.Injector)),E(1,(0,t.Inject)(t.LocaleService)),E(2,o.IDrawingManagerService),E(3,(0,t.Inject)(c.SheetCanvasPopManagerService)),E(4,r.IRenderManagerService),E(5,t.IUniverInstanceService),E(6,l.IMessageService),E(7,t.IContextService),E(8,t.IImageIoService),E(9,t.ICommandService)],Qe);let $=class extends t.Plugin{constructor(e=ce,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerService=r,this._configService=i;let{menu:a,...o}=(0,t.merge)({},ce,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(se,o)}onStarting(){(0,t.registerDependencies)(this._injector,[[Z],[Ze],[Qe],[je],[Ce],[Se],[Y],[pe],[me],[ge],[F,{useClass:U}],[le]]),(0,t.touchDependencies)(this._injector,[[Z]])}onReady(){(0,t.touchDependencies)(this._injector,[[Se],[ge],[Y]])}onRendered(){this._registerRenderModules(),(0,t.touchDependencies)(this._injector,[[Ce],[je],[Ze],[pe],[me]])}onSteady(){this._injector.get(Qe),this._injector.get(le)}_registerRenderModules(){[[A],[Pe],[de],[ue]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(t.UniverInstanceType.UNIVER_SHEET,e))})}};T($,`type`,t.UniverInstanceType.UNIVER_SHEET),T($,`pluginName`,`SHEET_IMAGE_UI_PLUGIN`),T($,`packageName`,ae),T($,`version`,oe),$=D([(0,t.DependentOn)(o.UniverDrawingPlugin,u.UniverDocsDrawingPlugin,d.UniverDrawingUIPlugin,n.UniverSheetsDrawingPlugin),E(1,(0,t.Inject)(t.Injector)),E(2,r.IRenderManagerService),E(3,t.IConfigService)],$),Object.defineProperty(e,`BatchSaveImagesService`,{enumerable:!0,get:function(){return U}}),e.DeleteDrawingsCommand=h,e.EditSheetDrawingOperation=J,e.FileNamePart=P,e.GroupSheetDrawingCommand=b,e.IBatchSaveImagesService=F,e.InsertFloatImageCommand=j,e.MoveDrawingsCommand=N,e.SHEETS_IMAGE_MENU_ID=te,e.SHEET_FLOAT_DOM_PREFIX=Te,e.SaveCellImagesCommand=G,Object.defineProperty(e,`SheetCanvasFloatDomManagerService`,{enumerable:!0,get:function(){return Z}}),e.SheetDrawingAnchor=Ue,Object.defineProperty(e,`SheetDrawingUpdateController`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(e,`SheetsDrawingGroupCopyPasteController`,{enumerable:!0,get:function(){return Y}}),e.SidebarSheetDrawingOperation=q,e.UngroupSheetDrawingCommand=x,Object.defineProperty(e,`UniverSheetsDrawingUIPlugin`,{enumerable:!0,get:function(){return $}}),e.calcSheetFloatDomPosition=X});
|
|
14
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/sheets-drawing`),require(`@univerjs/engine-render`),require(`@univerjs/design`),require(`@univerjs/docs-ui`),require(`@univerjs/drawing`),require(`@univerjs/sheets`),require(`@univerjs/sheets-ui`),require(`@univerjs/ui`),require(`@univerjs/docs-drawing`),require(`@univerjs/drawing-ui`),require(`rxjs`),require(`react`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets-drawing`,`@univerjs/engine-render`,`@univerjs/design`,`@univerjs/docs-ui`,`@univerjs/drawing`,`@univerjs/sheets`,`@univerjs/sheets-ui`,`@univerjs/ui`,`@univerjs/docs-drawing`,`@univerjs/drawing-ui`,`rxjs`,`react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawingUi={},e.UniverCore,e.UniverSheetsDrawing,e.UniverEngineRender,e.UniverDesign,e.UniverDocsUi,e.UniverDrawing,e.UniverSheets,e.UniverSheetsUi,e.UniverUi,e.UniverDocsDrawing,e.UniverDrawingUi,e.rxjs,e.React,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let h={id:`sheet.command.delete-drawing`,type:t.CommandType.COMMAND,handler:e=>{let r=e.get(t.ICommandService),i=e.get(n.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 r.executeCommand(n.RemoveSheetDrawingCommand.id,{unitId:a,drawings:o})}};function g(e){let n=[];return e.forEach(e=>{let{parent:i,children:a}=e,{unitId:o,subUnitId:s,drawingId:c}=i,l=(0,r.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:t.DrawingTypeEnum.DRAWING_GROUP,groupBaseBound:{...i.groupBaseBound},transform:l};n.push({parent:d,children:u})}),n}function _(e){let n=[];return e.forEach(e=>{let{parent:i,children:a}=e,{unitId:o,subUnitId:s,drawingId:c,transform:l={width:0,height:0}}=i;if(l==null)return;let u=a.map(e=>{let{transform:t}=e,{unitId:n,subUnitId:a,drawingId:o}=e;return{unitId:n,subUnitId:a,drawingId:o,transform:(0,r.transformObjectOutOfGroup)(t||{},l,l.width||0,l.height||0,i.groupBaseBound),groupId:void 0}}),d={unitId:o,subUnitId:s,drawingId:c,drawingType:t.DrawingTypeEnum.DRAWING_GROUP,transform:{left:0,top:0}};n.push({parent:d,children:u})}),n}function v(e){var n;let r=new Map;(n=e.flatChildren)==null||n.forEach(e=>r.set(e.drawingId,(0,t.generateRandomId)(10))),e.groups.forEach(e=>r.set(e.drawingId,(0,t.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(y(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(y(t,e,n))}return{cloned:{nestedIdRecord:i,flatChildren:s,groups:c},idMap:r}}function y(e,t,n){let r={...e};return t&&(r.drawingId=t),n?r.groupId=n:delete r.groupId,JSON.parse(JSON.stringify(r))}let b={id:`sheet.command.group-sheet-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(n.ISheetDrawingService);if(!r)return!1;let s=[];r.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(r);return i.syncExecuteCommand(n.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:n.DrawingApplyType.GROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:n.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:_(f),type:n.DrawingApplyType.UNGROUP}},{id:n.ClearSheetDrawingTransformerOperation.id,params:s}],redoMutations:[{id:n.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:n.DrawingApplyType.GROUP}},{id:n.ClearSheetDrawingTransformerOperation.id,params:s}]}),!0):!1}},x={id:`sheet.command.ungroup-sheet-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),o=e.get(n.ISheetDrawingService);if(!r)return!1;let s=[];r.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(r);return i.syncExecuteCommand(n.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:n.DrawingApplyType.UNGROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:n.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:g(f),type:n.DrawingApplyType.GROUP}},{id:n.ClearSheetDrawingTransformerOperation.id,params:s}],redoMutations:[{id:n.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:n.DrawingApplyType.UNGROUP}},{id:n.ClearSheetDrawingTransformerOperation.id,params:s}]}),!0):!1}};function S(e){"@babel/helpers - typeof";return S=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},S(e)}function C(e,t){if(S(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(S(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function w(e){var t=C(e,`string`);return S(t)==`symbol`?t:t+``}function T(e,t,n){return(t=w(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E(e,t){return function(n,r){t(n,r,e)}}function D(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 O(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 k(e,t,n,i,a){var o;let{rotatedHeight:s,rotatedWidth:l}=O(n,i,a),u=e.get(r.IRenderManagerService).getRenderById(t.unitId);if(!u)return!1;let d=(o=u.with(c.SheetSkeletonManagerService).getSkeletonParam(t.subUnitId))==null?void 0:o.skeleton;if(d==null)return!1;let f=d.getCellByIndex(t.row,t.col),p=f.mergeInfo.endX-f.mergeInfo.startX-2,m=f.mergeInfo.endY-f.mergeInfo.startY-2,h=l/s,g=Math.ceil(Math.min(p,m*h))/l,_=!g||Number.isNaN(g)?.001:g;return{width:n*_,height:i*_}}let A=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){super(),this._context=e,this._commandService=t,this._sheetInterceptorService=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._sheetSkeletonService=f,this._injector=p,this._urlImageService=m,T(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:o.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>o.DRAWING_IMAGE_COUNT_LIMIT?(this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(o.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:o.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 r;let a;try{a=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===o.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(o.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===o.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===o.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(a==null)return;let{unitId:s,subUnitId:c}=this._getUnitInfo(),{imageId:l,imageSourceType:u,source:d,base64Cache:f}=a,{width:p,height:m,image:h}=await(0,o.getImageSize)(f||``),{width:g,height:_}=this._context.scene;this._imageIoService.addImageSourceCache(d,u,h);let v=1;if(p>o.DRAWING_IMAGE_WIDTH_LIMIT||m>o.DRAWING_IMAGE_HEIGHT_LIMIT){let e=o.DRAWING_IMAGE_WIDTH_LIMIT/p,t=o.DRAWING_IMAGE_HEIGHT_LIMIT/m;v=Math.max(e,t)}let y=this._sheetSkeletonService.getSkeletonParam(s,c);if(!y)return;let{skeleton:b}=y,x=this._getImagePosition(p*v,m*v,g,_,b);if(!x)return;let S=(0,n.drawingPositionToTransform)(x,y);if(!S)return;let C={unitId:s,subUnitId:c,drawingId:l,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:u,source:d,transform:S,sheetTransform:x,axisAlignSheetTransform:(r=(0,n.transformToAxisAlignPosition)(S,b))==null?x:r};return this._commandService.executeCommand(n.InsertSheetDrawingCommand.id,{unitId:s,drawings:[C]})}async _insertCellImage(e,n){let r;try{r=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===o.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(o.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===o.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:i.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===o.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:i.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,o.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,t.createDocumentModelWithStyle)(``,{}),y=k(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:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},x={unitId:v.getUnitId(),subUnitId:v.getUnitId(),drawingId:c,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l,source:u,transform:(0,a.docDrawingPositionToTransform)(b),docTransform:b,behindDoc:t.BooleanNumber.FALSE,title:``,description:``,layoutType:t.PositionedObjectLayoutType.INLINE,wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},S=t.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(s.SetRangeValuesCommand.id,{value:{[(C=n==null?void 0:n.row)==null?g:C]:{[(w=n==null?void 0:n.col)==null?_:w]:{p:v.getSnapshot(),t:1}}},unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId})}return!1}async insertCellImageByUrl(e,n){let r=e;try{r=await this._urlImageService.getImage(e)}catch(t){console.error(`Failed to get image from URLImageService: ${e}`,t)}let{width:i,height:c,image:l}=await(0,o.getImageSize)(r||``);this._imageIoService.addImageSourceCache(e,t.ImageSourceType.URL,l);let u=this._workbookSelections.getCurrentLastSelection();if(!u)return!1;let d=(0,t.createDocumentModelWithStyle)(``,{}),f=k(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:u.primary.actualRow,col:u.primary.actualColumn},i,c,0);if(!f)return!1;let p={size:{width:f.width,height:f.height},positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},m={unitId:d.getUnitId(),subUnitId:d.getUnitId(),drawingId:(0,t.generateRandomId)(),drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:t.ImageSourceType.URL,source:e,transform:(0,a.docDrawingPositionToTransform)(p),docTransform:p,behindDoc:t.BooleanNumber.FALSE,title:``,description:``,layoutType:t.PositionedObjectLayoutType.INLINE,wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},h=t.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(s.SetRangeValuesCommand.id,{value:{[(g=n==null?void 0:n.row)==null?u.primary.actualRow:g]:{[(_=n==null?void 0:n.col)==null?u.primary.actualColumn:_]:{p:d.getSnapshot(),t:1}}},unitId:n==null?void 0:n.unitId,subUnitId:n==null?void 0:n.subUnitId})}return!1}_getUnitInfo(){let e=this._context.unit,t=e.getActiveSheet();return{unitId:e.getUnitId(),subUnitId:t.getSheetId()}}_getImagePosition(e,t,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 c=(0,s.attachRangeWithCoord)(i,o);if(c==null)return;let{startColumn:l,startRow:u,startX:d,startY:f}=c,p=!1;if(d+e>n&&(d=n-e,d<0&&(d=0,e=n),p=!0),f+t>r&&(f=r-t,f<0&&(f=0,t=r),p=!0),p){let e=this._selectionRenderService.getCellWithCoordByOffset(d,f);if(e==null)return;d=e.startX,f=e.startY,l=e.actualColumn,u=e.actualRow}let m={column:l,columnOffset:0,row:u,rowOffset:0},h=this._selectionRenderService.getCellWithCoordByOffset(d+e,f+t);if(h!=null)return{from:m,to:{column:h.actualColumn,columnOffset:d+e-h.startX,row:h.actualRow,rowOffset:f+t-h.startY}}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:r,drawingIds:i,arrangeType:a}=e;this._commandService.executeCommand(n.SetDrawingArrangeCommand.id,{unitId:t,subUnitId:r,drawingIds:i,arrangeType:a})}))}_updateDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{let t=[];e.length!==0&&(e.forEach(e=>{let{unitId:r,subUnitId:i,drawingId:a,transform:o}=e,s=this._sheetSkeletonService.getSkeletonParam(r,i);if(!o||!s)return;let{skeleton:c}=s,l=this._sheetDrawingService.getDrawingByParam({unitId:r,subUnitId:i,drawingId:a});if(l==null||l.unitId!==this._context.unitId)return;let u=(0,n.transformToDrawingPosition)({...l.transform,...o},c),d=(0,n.transformToAxisAlignPosition)({...l.transform,...o},c);if(u==null||d==null)return;let f={...e,transform:{...l.transform,...o,...(0,n.drawingPositionToTransform)(u,s)},sheetTransform:{...u},axisAlignSheetTransform:{...d}};t.push(f)}),t.length>0&&this._commandService.executeCommand(n.SetSheetDrawingCommand.id,{unitId:e[0].unitId,drawings:t}))}))}_getSheetTransformByParam(e,t){let{unitId:r,subUnitId:i,drawingId:a,transform:o}=e,s=this._sheetSkeletonService.getSkeleton(r,i);if(!o||!s)return null;let c=this._sheetDrawingService.getDrawingByParam({unitId:r,subUnitId:i,drawingId:a}),l=c==null?void 0:c.transform;if(t&&(l={}),!t&&(!c||c.unitId!==this._context.unitId))return null;let u=(0,n.transformToDrawingPosition)({...l,...o},s),d=(0,n.transformToAxisAlignPosition)({...l,...o},s);return!u||!d?null:{sheetTransform:u,axisAlignSheetTransform:d}}_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(b.id,t);let{unitId:n,subUnitId:r,drawingId:i}=e[0].parent;this._commandService.syncExecuteCommand(o.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(x.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!0),this._sheetDrawingService.focusDrawing(e))}))}};A=D([E(1,t.ICommandService),E(2,(0,t.Inject)(s.SheetInterceptorService)),E(3,c.ISheetSelectionRenderService),E(4,o.IImageIoService),E(5,l.ILocalFileService),E(6,n.ISheetDrawingService),E(7,o.IDrawingManagerService),E(8,t.IContextService),E(9,l.IMessageService),E(10,(0,t.Inject)(t.LocaleService)),E(11,(0,t.Inject)(s.SheetsSelectionsService)),E(12,(0,t.Inject)(s.SheetSkeletonService)),E(13,(0,t.Inject)(t.Injector)),E(14,t.IURLImageService)],A);let j={id:`sheet.command.insert-float-image`,type:t.CommandType.COMMAND,handler:async(e,n)=>{var i;let a=e.get(t.IUniverInstanceService),o=e.get(r.IRenderManagerService),s=(i=(0,r.getCurrentTypeOfRenderer)(t.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(A);if(!s)return!1;let c=n==null?void 0:n.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}}},M={id:`sheet.command.insert-cell-image`,type:t.CommandType.COMMAND,handler:e=>{var n,i;let a=e.get(t.IUniverInstanceService),o=e.get(r.IRenderManagerService);return(n=(i=(0,r.getCurrentTypeOfRenderer)(t.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(A).insertCellImage())==null?!1:n}},N={id:`sheet.command.move-drawing`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService),a=e.get(n.ISheetDrawingService),o=e.get(s.SheetSkeletonService),{direction:c}=r,l=a.getFocusDrawings();if(l.length===0)return!1;let u=l[0].unitId,d=l.map(e=>{let{transform:r,unitId:i,subUnitId:a}=e,s=o.getSkeleton(i,a);if(!r||!s)return null;let l={...r},{left:u=0,top:d=0}=r;return c===t.Direction.UP?l.top=d-1:c===t.Direction.DOWN?l.top=d+1:c===t.Direction.LEFT?l.left=u-1:c===t.Direction.RIGHT&&(l.left=u+1),{...e,transform:l,sheetTransform:(0,n.transformToDrawingPosition)(l,s),axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)(l,s)}}).filter(e=>e!=null);return i.syncExecuteCommand(n.SetSheetDrawingCommand.id,{unitId:u,drawings:d})?(i.syncExecuteCommand(n.ClearSheetDrawingTransformerOperation.id,[u]),!0):!1}},P=function(e){return e.CELL_ADDRESS=`cellAddress`,e.COLUMN_VALUE=`columnValue`,e}({}),F=(0,t.createIdentifier)(`sheets-drawing-ui.batch-save-images.service`);function I(e){let t=``,n=e;for(;n>=0;)t=String.fromCharCode(n%26+65)+t,n=Math.floor(n/26)-1;return t}function L(e,t){return`${I(t)}${e+1}`}function ee(e){let t=L(e.startRow,e.startColumn),n=L(e.endRow,e.endColumn);return t===n?t:`${t}:${n}`}function R(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 z(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 B(e,n){if(n===t.ImageSourceType.BASE64){let t=e.match(/^data:image\/(\w+);/);if(t)return t[1]===`jpeg`?`jpg`:t[1]}if(n===t.ImageSourceType.URL){let t=e.match(/\.(\w+)(?:\?|$)/);if(t)return t[1].toLowerCase()}return`png`}async function V(e,n){if(n===t.ImageSourceType.BASE64||n===t.ImageSourceType.URL)return(await fetch(e)).blob();throw Error(`UUID image type requires additional handling`)}let H=class extends t.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(t.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let n=e.getActiveSheet();if(!n)return[];let r=this._selectionService.getCurrentSelections();if(!r||r.length===0)return[];let i=n.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(R(n)){let r=z(n);r&&a.push({row:e,col:t,cellAddress:L(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return a}getCellImagesFromRanges(e,n,r){let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(n);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(R(n)){let r=z(n);r&&s.push({row:e,col:t,cellAddress:L(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return s}getDataColumns(){let e=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let n=e.getActiveSheet();if(!n)return[];let r=this._selectionService.getCurrentSelections();if(!r||r.length===0)return[];let i=n.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:I(e)});return f}getDataColumnsForRanges(e,n,r){let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(n);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:I(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,n){let r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),i=B(e.source,e.imageSourceType),a=[];for(let t of n.fileNameParts)if(t===P.CELL_ADDRESS)a.push(e.cellAddress);else if(t===P.COLUMN_VALUE&&n.columnIndex!==void 0){let t=r==null?void 0:r.getActiveSheet();if(t){let r=t.getCellMatrix().getValue(e.row,n.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,n,r,i){let a=this._univerInstanceService.getUnit(r,t.UniverInstanceType.UNIVER_SHEET),o=B(e.source,e.imageSourceType),s=[];for(let t of n.fileNameParts)if(t===P.CELL_ADDRESS)s.push(e.cellAddress);else if(t===P.COLUMN_VALUE&&n.columnIndex!==void 0){let t=a==null?void 0:a.getSheetBySheetId(i);if(t){let r=t.getCellMatrix().getValue(e.row,n.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=B(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===t.ImageSourceType.UUID?V(await this._imageIoService.getImage(e.source),t.ImageSourceType.URL):e.imageSourceType===t.ImageSourceType.URL?this._urlImageService.downloadImage(e.source):V(e.source,e.imageSourceType)}};H=D([E(0,t.IUniverInstanceService),E(1,(0,t.Inject)(s.SheetsSelectionsService)),E(2,t.IImageIoService),E(3,t.IURLImageService)],H);let U=`sheet.dialog.batch-save-images`,W={id:`sheet.command.save-cell-images`,type:t.CommandType.COMMAND,handler:async e=>{let n=e.get(l.IDialogService),r=e.get(F),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(t.LocaleService),o=r.getSelectionRangeNotation(),s=`${a.t(`sheetImage.save.title`)} (${o})`;return n.open({id:U,draggable:!0,width:360,title:{title:s},children:{label:U},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>n.close(U)}),!0}},G=`COMPONENT_SHEET_DRAWING_PANEL`,K={id:`sidebar.operation.sheet-image`,type:t.CommandType.COMMAND,handler:async(e,n)=>{let r=e.get(l.ISidebarService),i=e.get(t.LocaleService),a=e.get(t.IUniverInstanceService),c=e.get(t.ICommandService);if(!(0,s.getSheetCommandTarget)(a))return!1;switch(n.value){case`open`:r.open({header:{title:i.t(`sheetImage.panel.title`)},children:{label:G},onClose:()=>{c.syncExecuteCommand(o.SetDrawingSelectedOperation.id,[])},width:360});break;default:r.close();break}return!0}},q={id:`sheet.operation.edit-sheet-image`,type:t.CommandType.OPERATION,handler:(e,n)=>{let r=e.get(t.ICommandService);return n==null?!1:(r.syncExecuteCommand(o.SetDrawingSelectedOperation.id,[n]),r.executeCommand(K.id,{value:`open`}),!0)}},J=[c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA],Y=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetSkeletonService=n,this._sheetDrawingService=r,this._drawingManagerService=i,T(this,`_featurePasteHooks`,[]),T(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._sheetDrawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_DRAWING_GROUP`,onBeforeCopy:(e,n)=>{this._copyInfo=null;let r=this._focusedDrawings;if(r.length===0)return;let i=r.find(e=>e.drawingType===t.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 J.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 t;if(!this._copyInfo)return{redos:[],undos:[]};let{unitId:r,subUnitId:i,range:a}=e,o=this._sheetSkeletonService.getSkeleton(r,i);if(!o)return{redos:[],undos:[]};let{groupNestedParam:c}=this._copyInfo,l=c.groups[c.groups.length-1],{cloned:u,idMap:d}=v(c),f=u.groups[u.groups.length-1].drawingId,p=(0,s.discreteRangeToRange)(a),m=(0,s.attachRangeWithCoord)(o,{startRow:p.startRow,endRow:p.endRow,startColumn:p.startColumn,endColumn:p.endColumn});if(!m)return{redos:[],undos:[]};let h={...l.transform,left:m.startX,top:m.startY},g=[...((t=u.flatChildren)==null?[]:t).map(e=>({...e,unitId:r,subUnitId:i})),...u.groups.map(e=>{var t,a;return e.drawingId===f?{...e,unitId:r,subUnitId:i,transform:h,sheetTransform:(t=(0,n.transformToDrawingPosition)(h,o))==null?l.sheetTransform:t,axisAlignSheetTransform:(a=(0,n.transformToAxisAlignPosition)(h,o))==null?l.sheetTransform:a}:{...e,unitId:r,subUnitId:i}})],{undo:_,redo:y,objects:b}=this._sheetDrawingService.getBatchAddOp(g),x=[{id:n.SetDrawingApplyMutation.id,params:{op:y,unitId:r,subUnitId:i,objects:b,type:n.DrawingApplyType.INSERT}}],S=[{id:n.SetDrawingApplyMutation.id,params:{op:_,unitId:r,subUnitId:i,objects:b,type:n.DrawingApplyType.REMOVE}}],C=this._getGroupFeaturePasteMutations({fromUnitId:this._copyInfo.unitId,fromSubUnitId:this._copyInfo.subUnitId,toUnitId:r,toSubUnitId:i,idMap:d,cloned:u});return x.push(...C.redos),S.push(...C.undos),{redos:x,undos:S}}dispose(){this._copyInfo=null,this._featurePasteHooks.length=0,super.dispose()}};Y=D([E(0,c.ISheetClipboardService),E(1,r.IRenderManagerService),E(2,(0,t.Inject)(s.SheetSkeletonService)),E(3,n.ISheetDrawingService),E(4,o.IDrawingManagerService)],Y);let te=`sheet.menu.image`;function ne(e){return{id:te,type:l.MenuItemType.SUBITEMS,icon:`AddImageIcon`,tooltip:`sheetImage.title`,hidden$:(0,l.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,c.getCurrentRangeDisable$)(e,{workbookTypes:[s.WorkbookEditablePermission],worksheetTypes:[s.WorksheetEditPermission],rangeTypes:[s.RangeProtectionPermissionEditPoint]})}}function re(e){return{id:j.id,title:`sheetImage.upload.float`,type:l.MenuItemType.BUTTON,hidden$:(0,l.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET)}}function ie(e){return{id:M.id,title:`sheetImage.upload.cell`,type:l.MenuItemType.BUTTON,hidden$:(0,l.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET)}}var ae=`@univerjs/sheets-drawing-ui`,oe=`0.20.1`;let se=`sheets-drawing-ui.config`;Symbol(se);let ce={},le=class extends t.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(t.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,l.ContextMenuPosition.DRAWING)}}))}};le=D([E(0,o.IDrawingManagerService),E(1,l.IContextMenuService),E(2,r.IRenderManagerService),E(3,t.IUniverInstanceService)],le);let ue=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._hoverManagerService=t,this._selectionsService=n,this._drawingRenderService=r,this._sheetSkeletonManagerService=i,T(this,`_isSetCursor`,!1),this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe((0,f.throttleTime)(33)).subscribe(e=>{var t,n;let i=[];e!==null&&(i=this._selectionsService.getWorkbookSelections(this._context.unitId).getCurrentSelections()),i.length>0&&(e==null?void 0:e.unitId)===this._context.unitId&&e!=null&&e.drawing&&i.length===1&&((t=i[0].primary)==null?void 0:t.actualRow)===e.row&&((n=i[0].primary)==null?void 0:n.actualColumn)===e.col?(this._isSetCursor=!0,this._context.scene.setCursor(r.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}}))}};ue=D([E(1,(0,t.Inject)(c.HoverManagerService)),E(2,(0,t.Inject)(s.SheetsSelectionsService)),E(3,(0,t.Inject)(d.DrawingRenderService)),E(4,(0,t.Inject)(c.SheetSkeletonManagerService))],ue);let de=class extends t.Disposable{constructor(e,t,n,r){super(),this._context=e,this._sheetDrawingService=t,this._drawingManagerService=n,this._sheetSkeletonService=r,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 r=e[t];for(let e in r.data){let t=r.data[e],{unitId:i,subUnitId:a}=t,o=this._sheetSkeletonService.getSkeletonParam(i,a);o&&t.sheetTransform&&(t.transform=(0,n.drawingPositionToTransform)(t.sheetTransform,o))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};de=D([E(1,n.ISheetDrawingService),E(2,o.IDrawingManagerService),E(3,(0,t.Inject)(s.SheetSkeletonService))],de);function fe(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=k(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 pe=class extends t.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(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)):this._drawingManagerService.removeDrawingDataForUnit(t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{e.id===a.ReplaceSnapshotCommand.id&&e.params.unitId===t.DOCS_ZEN_EDITOR_UNIT_ID_KEY&&(this._drawingManagerService.removeDrawingDataForUnit(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(s.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Style,priority:s.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},fe(this._injector,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},e)),n(e)}}))}};pe=D([E(0,t.ICommandService),E(1,(0,t.Inject)(s.SheetInterceptorService)),E(2,(0,t.Inject)(t.Injector)),E(3,o.IDrawingManagerService),E(4,(0,t.Inject)(u.DocDrawingController)),E(5,(0,t.Inject)(c.IEditorBridgeService))],pe);let me=class extends t.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,n,r,i)=>{new t.ObjectMatrix(i).forValue((t,n,r)=>{fe(this._injector,{unitId:e.unitId,subUnitId:e.subUnitId,row:t,col:n},r)})}}))}};me=D([E(0,(0,t.Inject)(s.IAutoFillService)),E(1,(0,t.Inject)(t.Injector))],me);let he=[t.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,t.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,t.DOCS_ZEN_EDITOR_UNIT_ID_KEY],ge=class extends t.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(e){var n;let i=(0,t.createDocumentModelWithStyle)(``,{}),a=(n=(0,r.getCurrentTypeOfRenderer)(t.UniverInstanceType.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService))==null?void 0:n.with(c.EditingRenderController),o=t.BuildTextUtils.drawing.add({documentDataModel:i,drawings:[e],selection:{collapsed:!0,startOffset:0,endOffset:0}});o&&(i.apply(o),a&&a.submitCellData(i))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===a.InnerPasteCommand.id){var n;let{doc:i}=e.params,a=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(a==null||!Object.keys((n=i.drawings)==null?{}:n).length)return;let o=a.getUnitId();if(he.includes(o)){if(o!==t.DOCS_ZEN_EDITOR_UNIT_ID_KEY){var r;let e=()=>{this._dialogService.close(`sheet-cell-image-copy-paste`),this._commandService.syncExecuteCommand(c.SetCellEditVisibleOperation.id,{visible:!1})};((r=a.getBody())==null?void 0:r.dataStream)===`\r
|
|
15
|
+
`?(this._commandService.syncExecuteCommand(c.SetCellEditVisibleOperation.id,{visible:!1}),this._setCellImage(Object.values(i.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(i.drawings)[0])},onCancel:e})}throw Error(`Sheet cell image copy paste is not supported in this unit`)}}}))}};ge=D([E(0,t.ICommandService),E(1,t.IUniverInstanceService),E(2,l.IDialogService),E(3,r.IRenderManagerService),E(4,(0,t.Inject)(t.LocaleService))],ge);let _e=`image/png`;function ve(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:_e})}function ye(e){let t=new ClipboardItem({[_e]:ve(e)});navigator.clipboard.write([t]).catch(e=>{console.error(`Could not copy image using clipboard API: `,e)})}function be(){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()}}let xe=[c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,c.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA],Se=class extends t.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetSkeletonService=n,this._drawingService=r,this._clipboardInterfaceService=i,this._commandService=a,T(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 s=this._focusedDrawings;if(s.length>0){let[r]=s;if(r.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE)return;if(a===c.COPY_TYPE.CUT){let t={unitId:e,drawings:[r]};this._commandService.executeCommand(n.RemoveSheetDrawingCommand.id,t)}setTimeout(()=>{let e=be();r.drawingType===t.DrawingTypeEnum.DRAWING_IMAGE&&r.imageSourceType===o.ImageSourceType.BASE64?ye(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,t,n,r)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{copyType:i=c.COPY_TYPE.COPY,pasteType:a}=r,{range:o,unitId:s,subUnitId:l}=e||{},{range:u,unitId:d,subUnitId:f}=t;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({unitId:d,subUnitId:f,pasteRange:u,pasteType:a},{unitId:s,subUnitId:l,copyType:i,copyRange:o}):this._generateSingleDrawingPasteMutations({pasteTo:t,pasteType:a},c.COPY_TYPE.COPY)},onPastePlainText:(e,t)=>({undos:[],redos:[]}),onPasteUnrecognized:e=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:c.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},c.COPY_TYPE.COPY):{undos:[],redos:[]},onPasteFiles:(e,t)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:c.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},c.COPY_TYPE.COPY);{let e=t.filter(e=>e.type.includes(`image`));if(e.length)return{undos:[],redos:[{id:j.id,params:{files:e}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(e,r,i){let a=this._sheetSkeletonService.getSkeleton(e,r);if(!a)return;let o=(0,s.attachRangeWithCoord)(a,i);if(!o)return;let{startX:c,endX:l,startY:u,endY:d}=o,f=this._drawingService.getDrawingData(e,r),p=this._focusedDrawings.slice();if(Object.keys(f).forEach(e=>{let r=f[e];if(r.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE)return;let{transform:i}=r;if(r.anchorType!==n.SheetDrawingAnchorType.Both||!i)return;let{left:a=0,top:o=0,width:s=0,height:m=0}=i,{drawingStartX:h,drawingEndX:g,drawingStartY:_,drawingEndY:v}={drawingStartX:a,drawingEndX:a+s,drawingStartY:o,drawingEndY:o+m};c<=h&&g<=l&&u<=_&&v<=d&&p.push(r)}),p.length)return{copyRange:i,drawings:p,unitId:e,subUnitId:r}}_generateSingleDrawingPasteMutations(e,t){let{pasteType:r,pasteTo:i}=e;if(xe.includes(r))return{redos:[],undos:[]};let{unitId:a,subUnitId:o,range:l}=i,u=this._sheetSkeletonService.getSkeleton(a,o);if(!u)return{redos:[],undos:[]};let{drawings:d}=this._copyInfo,f=(0,s.discreteRangeToRange)(l);return this._generateMutations(d,{unitId:a,subUnitId:o,isCut:t===c.COPY_TYPE.CUT,getTransform:(e,t)=>{var r,i;let a=(0,s.attachRangeWithCoord)(u,{startRow:f.startRow,endRow:f.endRow,startColumn:f.startColumn,endColumn:f.endColumn}),o={...e,left:a==null?void 0:a.startX,top:a==null?void 0:a.startY};return{transform:o,sheetTransform:(r=(0,n.transformToDrawingPosition)(o,u))==null?t:r,axisAlignSheetTransform:(i=(0,n.transformToAxisAlignPosition)(o,u))==null?t:i}}})}_generateMutations(e,r){let{unitId:i,subUnitId:a,getTransform:o,isCut:s}=r,c=[],l=[],{_drawingService:u}=this;return e.forEach(e=>{let{transform:r,sheetTransform:d}=e;if(!r)return;let f=o(r,d),p={...e,unitId:i,subUnitId:a,drawingId:s?e.drawingId:(0,t.generateRandomId)(),transform:f.transform,sheetTransform:f.sheetTransform,axisAlignSheetTransform:f.axisAlignSheetTransform};if(s){let{undo:e,redo:t,objects:r}=u.getBatchUpdateOp([p]);c.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,type:n.DrawingApplyType.UPDATE,op:t,objects:r}}),l.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,type:n.DrawingApplyType.UPDATE,op:e,objects:r}})}else{let{undo:e,redo:t,objects:r}=u.getBatchAddOp([p]);c.push({id:n.SetDrawingApplyMutation.id,params:{op:t,unitId:i,subUnitId:a,objects:r,type:n.DrawingApplyType.INSERT}}),l.push({id:n.SetDrawingApplyMutation.id,params:{op:e,unitId:i,subUnitId:a,objects:r,type:n.DrawingApplyType.REMOVE}})}}),{redos:c,undos:l}}_generateRangeDrawingsPasteMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};let{unitId:r,subUnitId:i,pasteRange:a,pasteType:o}=e,{unitId:l,subUnitId:u,copyRange:d,copyType:f}=t;if(xe.includes(o))return{redos:[],undos:[]};let p=this._sheetSkeletonService.getSkeleton(r,i);if(!p)return{redos:[],undos:[]};let{drawings:m}=this._copyInfo;if(!d)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:r,subUnitId:i,range:(0,s.discreteRangeToRange)(a)},pasteType:o},f);let h=this._sheetSkeletonService.getSkeleton(l,u);if(!h)return{redos:[],undos:[]};let{ranges:[g,_],mapFunc:v}=(0,c.virtualizeDiscreteRanges)([d,a]),{row:y,col:b}=v(g.startRow,g.startColumn),{row:x,col:S}=v(_.startRow,_.startColumn),C=(0,s.attachRangeWithCoord)(h,{startRow:y,endRow:y,startColumn:b,endColumn:b}),w=(0,s.attachRangeWithCoord)(p,{startRow:x,endRow:x,startColumn:S,endColumn:S});if(!C||!w)return{redos:[],undos:[]};let T=w.startX-C.startX,E=w.startY-C.startY,D=x-y,O=S-b;return this._generateMutations(m,{unitId:r,subUnitId:i,getTransform:(e,t)=>{var r,i,a;let o={...e,left:((r=e==null?void 0:e.left)==null?0:r)+T,top:((i=e==null?void 0:e.top)==null?0:i)+E};return{transform:o,sheetTransform:{...t,to:{...t.to,row:t.to.row+D,column:t.to.column+O},from:{...t.from,row:t.from.row+D,column:t.from.column+O}},axisAlignSheetTransform:(a=(0,n.transformToAxisAlignPosition)(o,p))==null?t:a}},isCut:f===c.COPY_TYPE.CUT})}};Se=D([E(0,c.ISheetClipboardService),E(1,r.IRenderManagerService),E(2,(0,t.Inject)(s.SheetSkeletonService)),E(3,o.IDrawingManagerService),E(4,l.IClipboardInterfaceService),E(5,t.ICommandService)],Se);let X=[r.ObjectType.IMAGE,r.ObjectType.SHAPE,r.ObjectType.CHART,r.ObjectType.DRAWING_DOM],Ce=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s){super(),this._commandService=e,this._localeService=t,this._renderManagerService=n,this._permissionService=r,this._univerInstanceService=i,this._userManagerService=a,this._sheetPermissionCheckController=o,this._sheetDrawingService=s,this._initDrawingVisible(),this._initDrawingEditable(),this._initViewPermissionChange(),this._initEditPermissionChange(),this._initCommandPermissionCheck()}_initDrawingVisible(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$,r=(0,f.combineLatest)([e,n]);this.disposeWithMe(r.pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.tap)(t=>{if(!t){this._sheetDrawingService.setDrawingVisible(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new s.WorkbookViewPermission(n).id,new s.WorksheetViewPermission(n,r).id]).every(e=>e.value)?this._sheetDrawingService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(e,t)})):(this._sheetDrawingService.setDrawingVisible(!1),f.EMPTY))).subscribe())}_handleDrawingVisibilityFalse(e,t){this._sheetDrawingService.setDrawingVisible(!1);let n=e.getUnitId(),r=t.getSheetId(),i=this._sheetDrawingService.getDrawingData(n,r),a=Object.values(i),o=this._renderManagerService.getRenderById(n),s=o==null?void 0:o.scene;s&&s.getAllObjectsByOrder().forEach(e=>{X.includes(e.objectType)&&a.some(t=>e.oKey.includes(t.drawingId))&&s.removeObject(e)})}_initDrawingEditable(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$,r=(0,f.combineLatest)([e,n]);this.disposeWithMe(r.pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.tap)(t=>{if(!t){this._sheetDrawingService.setDrawingEditable(!1);return}let n=e.getUnitId(),r=t.getSheetId();this._permissionService.composePermission([new s.WorkbookEditablePermission(n).id,new s.WorksheetEditPermission(n,r).id]).every(e=>e.value)?this._sheetDrawingService.setDrawingEditable(!0):this._handleDrawingEditableFalse(e,t)})):(this._sheetDrawingService.setDrawingEditable(!1),f.EMPTY))).subscribe())}_handleDrawingEditableFalse(e,t){this._sheetDrawingService.setDrawingEditable(!1);let n=e.getUnitId(),r=t.getSheetId(),i=this._sheetDrawingService.getDrawingData(n,r),a=Object.values(i),o=this._renderManagerService.getRenderById(n),s=o==null?void 0:o.scene;s&&s.getAllObjectsByOrder().forEach(e=>{X.includes(e.objectType)&&a.some(t=>e.oKey.includes(t.drawingId))&&s.detachTransformerFrom(e)})}_initViewPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$;this.disposeWithMe((0,f.combineLatest)([e,n]).pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.switchMap)(t=>{if(!t)return f.EMPTY;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(!a)return f.EMPTY;let o=a.getTransformerByCreate();return this._permissionService.composePermission$([new s.WorkbookViewPermission(n).id,new s.WorksheetViewPermission(n,r).id]).pipe((0,f.map)(e=>e.every(e=>e.value)),(0,f.distinctUntilChanged)()).pipe((0,f.map)(e=>({permission:e,scene:a,transformer:o,unitId:n,subUnitId:r})))})):f.EMPTY)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:r,subUnitId:i})=>{this._sheetDrawingService.setDrawingVisible(e);let a=t.getAllObjectsByOrder(),o=this._sheetDrawingService.getDrawingData(r,i),s=Object.values(o);e?this._sheetDrawingService.addNotification(s):(a.forEach(e=>{X.includes(e.objectType)&&s.some(t=>e.oKey.includes(t.drawingId))&&t.removeObject(e)}),n.clearSelectedObjects())},complete:()=>{this._sheetDrawingService.setDrawingVisible(!0);let e=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),n=e==null?void 0:e.getActiveSheet(),r=e==null?void 0:e.getUnitId(),i=n==null?void 0:n.getSheetId();if(!r||!i)return;let a=this._sheetDrawingService.getDrawingData(r,i),o=Object.values(a);this._sheetDrawingService.addNotification(o)}}))}_initEditPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET),n=this._userManagerService.currentUser$;this.disposeWithMe((0,f.combineLatest)([e,n]).pipe((0,f.switchMap)(([e,t])=>e?e.activeSheet$.pipe((0,f.switchMap)(t=>{if(!t)return f.EMPTY;let n=e.getUnitId(),r=t.getSheetId(),i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(!a)return f.EMPTY;let o=a.getTransformerByCreate();return this._permissionService.composePermission$([new s.WorkbookEditablePermission(n).id,new s.WorksheetEditPermission(n,r).id]).pipe((0,f.map)(e=>e.every(e=>e.value)),(0,f.distinctUntilChanged)()).pipe((0,f.map)(e=>({permission:e,scene:a,transformer:o,unitId:n,subUnitId:r})))})):f.EMPTY)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:r,subUnitId:i})=>{this._sheetDrawingService.setDrawingEditable(e);let a=t.getAllObjectsByOrder(),o=this._sheetDrawingService.getDrawingData(r,i),s=Object.values(o);e?(a.forEach(e=>{X.includes(e.objectType)&&s.some(t=>e.oKey.includes(t.drawingId))&&t.attachTransformerTo(e)}),this._sheetDrawingService.addNotification(s)):(a.forEach(e=>{X.includes(e.objectType)&&s.some(t=>e.oKey.includes(t.drawingId))&&t.detachTransformerFrom(e)}),n.clearSelectedObjects())},complete:()=>{let e=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!e)return;let n=e.getUnitId(),r=e.getActiveSheet();if(!r)return;let i=r.getSheetId(),a=this._renderManagerService.getRenderById(n),o=a==null?void 0:a.scene;if(!o)return;let s=this._sheetDrawingService.getDrawingData(n,i),c=Object.values(s);this._sheetDrawingService.setDrawingEditable(!0),o.getAllObjectsByOrder().forEach(e=>{X.includes(e.objectType)&&c.some(t=>e.oKey.includes(t.drawingId))&&o.detachTransformerFrom(e)})}}))}_initCommandPermissionCheck(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{let t,r;if(e.id===n.InsertSheetDrawingCommand.id||e.id===n.RemoveSheetDrawingCommand.id||e.id===n.SetSheetDrawingCommand.id){var i,a;let{drawings:n}=e.params;t=n==null||(i=n[0])==null?void 0:i.unitId,r=n==null||(a=n[0])==null?void 0:a.subUnitId}else if(e.id===n.SetDrawingArrangeCommand.id){let n=e.params;t=n.unitId,r=n.subUnitId}!t||!r||this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[s.WorkbookEditablePermission],worksheetTypes:[s.WorksheetEditPermission]},t,r)||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.editErr`))}))}};Ce=D([E(0,(0,t.Inject)(t.ICommandService)),E(1,(0,t.Inject)(t.LocaleService)),E(2,r.IRenderManagerService),E(3,t.IPermissionService),E(4,t.IUniverInstanceService),E(5,(0,t.Inject)(t.UserManagerService)),E(6,(0,t.Inject)(s.SheetPermissionCheckController)),E(7,(0,t.Inject)(n.ISheetDrawingService))],Ce);var we=function(e){return e.ALL=`ALL`,e.HORIZONTAL=`HORIZONTAL`,e.VERTICAL=`VERTICAL`,e}(we||{});let Te=`univer-sheet-float-dom-`;function Ee(e,n,i,a,o,s=!1){let{scaleX:c,scaleY:l}=n.getAncestorScale(),u=n.getViewport(r.SHEET_VIEWPORT_KEY.VIEW_MAIN),{startColumn:d,startRow:f,xSplit:p,ySplit:m}=a.getFreeze(),h={left:!0,top:!0};if(!u)return{...e,absolute:h};let{left:g,right:_,top:v,bottom:y}=e,{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&&(t.Tools.isDefine(O.top)&&(O.top=w.top),t.Tools.isDefine(O.left)&&(O.left=w.left)),T===we.HORIZONTAL&&(C=0),T===we.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}}let Z=(e,t,n,r,i)=>{let{left:a,top:o,width:s,height:c,angle:l}=e,u=Ee({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}},De=class extends t.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,T(this,`_domLayerInfoMap`,new Map),T(this,`_transformChange$`,new f.Subject),T(this,`transformChange$`,this._transformChange$.asObservable()),T(this,`_add$`,new f.Subject),T(this,`add$`,this._add$.asObservable()),T(this,`_remove$`,new f.Subject),T(this,`remove$`,this._remove$.asObservable()),this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe((0,f.filter)(e=>e===t.LifecycleStages.Rendered),(0,f.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(e=>{e.forEach(e=>{var n;let{unitId:i,subUnitId:a,drawingId:l}=e,u=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:i,subUnitId:a}),d=this._drawingManagerService.getDrawingByParam(e),p=this._univerInstanceService.getUnit(i,t.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let h=(n=this._renderManagerService.getRenderById(i))==null?void 0:n.with(c.SheetSkeletonManagerService).getSkeletonParam(a);if(!h)return;let{transform:g,drawingType:_,data:v}=d;if(_!==t.DrawingTypeEnum.DRAWING_DOM&&_!==t.DrawingTypeEnum.DRAWING_CHART)return;let y=this._getSceneAndTransformerByDrawingSearch(i);if(y==null)return;let{scene:b,canvas:x}=y;if(g==null)return!0;if(m!==a)return;let{left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A}=g,j=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:i,subUnitId:a,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(i,a).length-1},P=_===t.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 r.Rect(j,N);P?F.setObjectType(r.ObjectType.CHART):_===t.DrawingTypeEnum.DRAWING_DOM&&F.setObjectType(r.ObjectType.DRAWING_DOM),b.addObject(F,r.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&b.attachTransformerTo(F);let I=new t.DisposableCollection,L=new f.BehaviorSubject(Z(F,y.renderUnit.scene,h.skeleton,u.worksheet)),ee=`${Te}${(0,t.generateRandomId)(6)}`,R={dispose:I,rect:F,position$:L,unitId:i,subUnitId:a,id:l,domId:ee};this._canvasFloatDomService.addFloatDom({position$:L,id:l,domId:ee,componentKey:d.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:i});let z=F.onTransformChange$.subscribeEvent(()=>{let e=Z(F,y.renderUnit.scene,h.skeleton,u.worksheet);L.next(e)});I.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),z&&I.add(z),this._domLayerInfoMap.set(l,R)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:n,drawingId:r}),a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{transformer:s,scene:c}=a,l=c.getObject(i);if(l!=null&&l.oKey){var u;s.clearControlByIds([l==null?void 0:l.oKey]),(u=c.getTransformer())==null||u.clearSelectedObjects()}})}))}_scrollUpdateListener(){let e=(e,t)=>{var n;let r=this._getSceneAndTransformerByDrawingSearch(e),i=Array.from(this._domLayerInfoMap.keys()).map(e=>({id:e,...this._domLayerInfoMap.get(e)})).filter(n=>n.subUnitId===t&&n.unitId===e).map(e=>e.id),a=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:t}),o=(n=this._renderManagerService.getRenderById(e))==null?void 0:n.with(c.SheetSkeletonManagerService).getSkeletonParam(t);!r||!a||!o||i.forEach(e=>{let t=this._domLayerInfoMap.get(e);if(t){let e=Z(t.rect,r.renderUnit.scene,o.skeleton,a.worksheet,t);t.position$.next(e)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,f.switchMap)(e=>e?e.activeSheet$:(0,f.of)(null)),(0,f.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,f.switchMap)(e=>e?(0,t.fromEventSubject)(e.render.scene.getViewport(r.SHEET_VIEWPORT_KEY.VIEW_MAIN).onScrollAfter$).pipe((0,f.map)(()=>({unitId:e.unitId,subUnitId:e.subUnitId}))):(0,f.of)(null))).subscribe(t=>{if(!t)return;let{unitId:n,subUnitId:r}=t;e(n,r)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===c.SetZoomRatioOperation.id){let{unitId:n}=t.params;Array.from(this._domLayerInfoMap.values()).filter(e=>e.unitId===n).map(e=>e.subUnitId).forEach(t=>{e(n,t)})}else if(t.id===s.SetFrozenMutation.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}else if(t.id===s.SetSelectionsOperation.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}}))}updateFloatDomProps(e,t,n,i){let a=this._domLayerInfoMap.get(n),s=this._getSceneAndTransformerByDrawingSearch(e);if(a&&s){let{scene:a}=s,c=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:t,drawingId:n}),l=a.getObject(c);l&&l instanceof r.Rect&&l.setProps(i)}}_getPosition(e,t){var n;let{startX:r,endX:i,startY:a,endY:o}=e,s=(n=this._renderManagerService.getRenderById(t))==null?void 0:n.with(c.ISheetSelectionRenderService);if(s==null)return;let l=s.getCellWithCoordByOffset(r,a);if(l==null)return;let u={column:l.actualColumn,columnOffset:r-l.startX,row:l.actualRow,rowOffset:a-l.startY},d=s.getCellWithCoordByOffset(i,o);if(d!=null)return{from:u,to:{column:d.actualColumn,columnOffset:i-d.startX,row:d.actualRow,rowOffset:o-d.startY}}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let n=this._drawingManagerService.getDrawingByParam(e);if(!n||n.drawingType!==t.DrawingTypeEnum.DRAWING_DOM&&n.drawingType!==t.DrawingTypeEnum.DRAWING_CHART)return;let r={...n.transform};this._transformChange$.next({id:e.drawingId,value:r}),this._canvasFloatDomService.updateFloatDom(e.drawingId,{...n});let i=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(i&&n.drawingType!==t.DrawingTypeEnum.DRAWING_CHART){let{scene:t}=i,r=this._domLayerInfoMap.get(e.drawingId);r!=null&&r.rect&&(n.allowTransform===!1?t.detachTransformerFrom(r.rect):t.attachTransformerTo(r.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}addFloatDomToPosition(e,r){let i=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!i)throw Error(`cannot find current target!`);let{unitId:a,subUnitId:o}=i,{initPosition:c,componentKey:l,data:u,allowTransform:d=!0}=e,f=r==null?(0,t.generateRandomId)():r,p=this._getPosition(c,a);if(p==null)return;let m={unitId:a,subUnitId:o,drawingId:f,drawingType:e.type||t.DrawingTypeEnum.DRAWING_DOM,componentKey:l,sheetTransform:p,transform:{left:c.startX,top:c.startY,width:c.endX-c.startX,height:c.endY-c.startY},axisAlignSheetTransform:p,data:u,allowTransform:d};return this._commandService.executeCommand(n.InsertSheetDrawingCommand.id,{unitId:a,drawings:[m]}),this._add$.next({unitId:a,subUnitId:o,id:f}),{id:f,dispose:()=>{this._removeDom(f,!0)}}}_removeDom(e,t=!1){let r=this._domLayerInfoMap.get(e);if(!r)return;let{unitId:i,subUnitId:a}=r;this._domLayerInfoMap.delete(e),r.dispose.dispose();let o=this._getSceneAndTransformerByDrawingSearch(i);if(o&&o.scene.removeObject(r.rect),t){let t=this._drawingManagerService.getDrawingByParam({unitId:i,subUnitId:a,drawingId:e});if(!t)return;let{redo:r,objects:o}=this._sheetDrawingService.getBatchRemoveOp([t]);this._commandService.syncExecuteCommand(n.SetDrawingApplyMutation.id,{unitId:i,subUnitId:a,op:r,objects:o,type:n.DrawingApplyType.REMOVE})}}addFloatDomToRange(e,n,i,a){var l;let u=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:n.unitId,subUnitId:n.subUnitId});if(!u)throw Error(`cannot find current target!`);let{unitId:d,subUnitId:p}=u,m=this._getSceneAndTransformerByDrawingSearch(d);if(!m)return;let h=this._renderManagerService.getRenderById(d);if(!h)return;let g=(l=this._renderManagerService.getRenderById(d))==null?void 0:l.with(c.SheetSkeletonManagerService).getSkeletonParam(p);if(!g)return;let{componentKey:_,data:v,allowTransform:y=!0}=n,b=a==null?(0,t.generateRandomId)():a,{position:x,position$:S}=this._createRangePositionObserver(e,h,g.skeleton),C=this._getPosition(x,d);if(C==null)return;let{scaleX:w}=m.scene.getAncestorScale(),T=ke(x,i,w),E={unitId:d,subUnitId:p,drawingId:b,drawingType:n.type||t.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:e,subUnitId:a,drawingId:l}=E,u=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:a}),d=E,p=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let h=(D=this._renderManagerService.getRenderById(e))==null?void 0:D.with(c.SheetSkeletonManagerService);if(!h)return;let g=h.getSkeletonParam(a);if(!g)return;let{transform:_,drawingType:v,data:y}=d;if(v!==t.DrawingTypeEnum.DRAWING_DOM&&v!==t.DrawingTypeEnum.DRAWING_CHART)return;let C=this._getSceneAndTransformerByDrawingSearch(e);if(C==null)return;let{scene:w,canvas:T}=C;if(_==null||m!==a)return;let{left:k,top:A,width:j,height:M,angle:N,flipX:P,flipY:F,skewX:I,skewY:L}=_,ee=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:a,drawingId:l}),R=w.getObject(ee);if(R!=null){R.transformByState({left:k,top:A,width:j,height:M,angle:N,flipX:P,flipY:F,skewX:I,skewY:L});return}let z={left:k,top:A,width:j,height:M,zIndex:this._drawingManagerService.getDrawingOrder(e,a).length-1},B=v===t.DrawingTypeEnum.DRAWING_CHART;B&&(z.fill=y?y.backgroundColor:`white`,z.rotateEnabled=!1,y&&y.border&&(z.stroke=y.border),z.paintFirst=`stroke`,z.strokeWidth=1,z.borderEnabled=!1,z.radius=8);let V=new r.Rect(ee,z);B&&V.setObjectType(r.ObjectType.CHART),w.addObject(V,r.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&w.attachTransformerTo(V);let H=new t.DisposableCollection,U=w.getMainViewport(),{rowHeaderWidth:W,columnHeaderHeight:G}=g.skeleton,K={dispose:H,rect:V,boundsOfViewArea:{top:G,left:W,bottom:U.bottom,right:U.right},domAnchor:i,unitId:e,subUnitId:a},q=new f.BehaviorSubject(Z(V,C.renderUnit.scene,g.skeleton,u.worksheet,K));K.position$=q;let J={position$:q,id:l,componentKey:d.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{T.dispatchEvent(new WheelEvent(e.type,e))},data:y,unitId:e};n.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,s,c,d;let f=ke({rotate:0,startX:t.startX,startY:t.startY,endX:t.endX,endY:t.endY,width:(n=i.width)==null?t.width:n,height:(s=i.height)==null?t.height:s,absolute:{left:x.absolute.left,top:x.absolute.top}},i),p=Z(new r.Rect((0,o.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:a,drawingId:l}),{left:f.startX,top:f.startY,width:(c=i.width)==null?t.width:c,height:(d=i.height)==null?t.height:d,zIndex:this._drawingManagerService.getDrawingOrder(e,a).length-1}),C.renderUnit.scene,g.skeleton,u.worksheet,K);q.next(p)}));let Y=(O=this._renderManagerService.getRenderById(e))==null?void 0:O.with(c.SheetSkeletonManagerService),te=Y==null?void 0:Y.currentSkeleton$.subscribe(e=>{e&&g.sheetId!==e.sheetId&&this._removeDom(b,!0)});te&&H.add(te);let ne=V.onTransformChange$.subscribeEvent(()=>{let e=Z(V,C.renderUnit.scene,g.skeleton,u.worksheet,K);q.next(e)});H.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),ne&&H.add(ne),this._domLayerInfoMap.set(l,K)}return{id:b,dispose:()=>{this._removeDom(b,!0)}}}addFloatDomToColumnHeader(e,n,i,a){var l;let u=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:n.unitId,subUnitId:n.subUnitId});if(!u)throw Error(`cannot find current target!`);let{unitId:d,subUnitId:p}=u;if(!this._getSceneAndTransformerByDrawingSearch(d))return;let m=this._renderManagerService.getRenderById(d);if(!m)return;let h=(l=this._renderManagerService.getRenderById(d))==null?void 0:l.with(c.SheetSkeletonManagerService).getSkeletonParam(p);if(!h)return;let{componentKey:g,data:_,allowTransform:v=!0}=n,y=a==null?(0,t.generateRandomId)():a,{position:b,position$:x}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:e,endColumn:e},m,h.skeleton),S=b;S.startY=0;let C=this._getPosition(b,d);if(C==null)return;let w={unitId:d,subUnitId:p,drawingId:y,drawingType:n.type||t.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:e,subUnitId:a,drawingId:l}=w,u=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:a}),d=w,p=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let g=(T=this._renderManagerService.getRenderById(e))==null?void 0:T.with(c.SheetSkeletonManagerService);if(!g)return;let _=g.getSkeletonParam(a);if(!_)return;let{transform:v,data:C}=d,D=this._getSceneAndTransformerByDrawingSearch(e);if(D==null)return;let{scene:O,canvas:k}=D;if(v==null||m!==a)return;let{left:A,top:j,width:M,height:N,angle:P,flipX:F,flipY:I,skewX:L,skewY:ee}=v,R=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:a,drawingId:l}),z=O.getObject(R);if(z!=null){z.transformByState({left:A,top:j,width:M,height:N,angle:P,flipX:F,flipY:I,skewX:L,skewY:ee});return}let B=ke({rotate:0,startX:S.startX,startY:0,endX:b.endX,endY:b.endY,width:i.width,height:i.height,absolute:{left:b.absolute.left,top:b.absolute.top}},i),V=new r.Rect(R,{left:B.startX,top:B.startY,width:B.width,height:B.height,zIndex:this._drawingManagerService.getDrawingOrder(e,a).length-1});O.addObject(V,r.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&O.attachTransformerTo(V);let H=new t.DisposableCollection,U=O.getMainViewport(),W={dispose:H,rect:V,unitId:e,subUnitId:a,boundsOfViewArea:{top:0,left:U.left,bottom:U.bottom,right:U.right},domAnchor:i,scrollDirectionResponse:we.HORIZONTAL},G=new f.BehaviorSubject(Z(V,D.renderUnit.scene,_.skeleton,u.worksheet,W));W.position$=G;let K={position$:G,id:l,componentKey:d.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{k.dispatchEvent(new WheelEvent(e.type,e))},data:C,unitId:e};n.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=V.onTransformChange$.subscribeEvent(()=>{let e=Z(V,D.renderUnit.scene,_.skeleton,u.worksheet,W);G.next(e)});this.disposeWithMe(x.subscribe(t=>{let n=ke({rotate:0,startX:t.startX,startY:0,endX:t.endX,endY:t.endY,width:i.width,height:i.height,absolute:{left:b.absolute.left,top:b.absolute.top}},i),s=Z(new r.Rect((0,o.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:a,drawingId:l}),{left:n.startX,top:0,width:i.width,height:i.height,zIndex:this._drawingManagerService.getDrawingOrder(e,a).length-1}),D.renderUnit.scene,_.skeleton,u.worksheet,W);G.next(s)}));let J=(E=this._renderManagerService.getRenderById(e))==null?void 0:E.with(c.SheetSkeletonManagerService);J==null||J.currentSkeleton$.subscribe(e=>{e&&h.sheetId!==e.sheetId&&this._removeDom(y,!0)}),H.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),q&&H.add(q),this._domLayerInfoMap.set(l,W)}return{id:y,dispose:()=>{this._removeDom(y,!0)}}}_createRangePositionObserver(e,n,r){let{startRow:i,startColumn:a}=e,o=Oe(i,a,r),l=new f.BehaviorSubject(o),u=Oe(e.endRow,e.endColumn,r),d=new f.BehaviorSubject(u),p=()=>{let t=Oe(i,a,r),n=Oe(e.endRow,e.endColumn,r);l.next(t),d.next(n)},m=new t.DisposableCollection;return m.add(n.engine.clientRect$.subscribe(()=>p())),m.add(this._commandService.onCommandExecuted(e=>{if(e.id===s.SetWorksheetRowAutoHeightMutation.id&&e.params.rowsAutoHeightInfo.findIndex(e=>e.row===i)>-1){p();return}(s.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(e.id)>-1||e.id===c.SetScrollOperation.id||e.id===c.SetZoomRatioOperation.id)&&p()})),{position$:l.pipe((0,f.map)(t=>{let n=Oe(e.endRow,e.endColumn,r);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-o.left,height:u.bottom-o.top,absolute:{left:!0,top:!0},startX:o.left,startY:o.top,endX:u.right,endY:u.bottom},updateRowCol:(e,t)=>{i=e,a=t,p()},topLeftPos$:l,rightBottomPos$:d,disposable:m}}};De=D([E(0,(0,t.Inject)(r.IRenderManagerService)),E(1,t.IUniverInstanceService),E(2,(0,t.Inject)(t.ICommandService)),E(3,o.IDrawingManagerService),E(4,(0,t.Inject)(l.CanvasFloatDomService)),E(5,n.ISheetDrawingService),E(6,(0,t.Inject)(t.LifecycleService))],De);function Oe(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 ke(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=Ae(t.marginX,o*n);u=e.endX-r-c}else u=e.startX+Ae(t.marginX,o);if(t.verticalOffsetAlign===`bottom`){let r=Ae(t.marginY,s*n);d=e.endY-r-l}else d=e.startY+Ae(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 Ae(e,t){return e===void 0?0:typeof e==`number`?e:t*Number.parseFloat(e)/100}let je=e=>{let{floatDomInfos:t,scene:n,skeleton:r,worksheet:i}=e;return(0,m.jsx)(`div`,{style:{position:`absolute`,top:0,left:0},children:(0,p.useMemo)(()=>t.map(e=>{let{width:t,height:a,angle:o,left:s,top:c}=e.transform,l=Ee({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:d}=n.getAncestorScale(),p={startX:l.left,endX:l.right,startY:l.top,endY:l.bottom,rotate:o,width:t*u,height:a*d,absolute:l.absolute},m={position$:new f.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,m.jsx)(l.PrintFloatDomSingle,{layer:t,id:e,position:t.position},e))})},Me=class extends t.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,n,r)=>{let{unitId:i,scene:a,subUnitId:o}=n,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[o];return c&&c.order.forEach(e=>{let n=c.data[e];n.drawingType!==t.DrawingTypeEnum.DRAWING_CHART&&n.drawingType!==t.DrawingTypeEnum.DRAWING_DOM&&this._drawingRenderService.renderDrawing(n,a)}),r()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(e,n,r)=>{let{unitId:i,subUnitId:a}=n,o=this._renderManagerService.getRenderById(i);if(!o)return r(e);let s=o.with(c.SheetSkeletonManagerService).getSkeletonParam(a);if(!s)return r(e);let l=this._drawingManagerService.getDrawingDataForUnit(i),u=l==null?void 0:l[n.subUnitId];if(!u)return r(e);let{scaleX:d,scaleY:f}=o.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&&t.Tools.isDefine(e.transform.left)&&t.Tools.isDefine(e.transform.top)&&t.Tools.isDefine(e.transform.width)&&t.Tools.isDefine(e.transform.height)){let t=s.skeleton.getCellIndexByOffset(e.transform.left,e.transform.top,d,f,{x:0,y:0}),n=s.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)}}),r(p)):r(e)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,n,r)=>{let{unitId:a,subUnitId:o}=n,s=this._drawingManagerService.getDrawingDataForUnit(a),c=s==null?void 0:s[o];if(c){let a=c.order.map(e=>{let n=c.data[e];if(n.drawingType===t.DrawingTypeEnum.DRAWING_CHART)return{...n,componentKey:this._componetManager.get(t.PRINT_CHART_COMPONENT_KEY)};if(n.drawingType===t.DrawingTypeEnum.DRAWING_DOM){let e=this._sheetPrintInterceptorService.getPrintComponent(n.componentKey);return{...n,componentKey:this._componetManager.get(e||n.componentKey)}}return null}).filter(Boolean);return(0,i.render)((0,m.jsx)((0,l.connectInjector)(je,this._injector),{floatDomInfos:a,scene:n.scene,skeleton:n.skeleton,worksheet:n.worksheet}),n.root),e==null||e.add(()=>{(0,i.unmount)(n.root)}),r(e)}}}))}};Me=D([E(0,(0,t.Inject)(c.SheetPrintInterceptorService)),E(1,(0,t.Inject)(d.DrawingRenderService)),E(2,o.IDrawingManagerService),E(3,r.IRenderManagerService),E(4,(0,t.Inject)(De)),E(5,(0,t.Inject)(l.ComponentManager)),E(6,(0,t.Inject)(t.Injector))],Me);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||{});let Ne=[s.InsertRowCommand.id,s.InsertColCommand.id,s.RemoveRowCommand.id,s.RemoveColCommand.id,s.DeleteRangeMoveLeftCommand.id,s.DeleteRangeMoveUpCommand.id,s.InsertRangeMoveDownCommand.id,s.InsertRangeMoveRightCommand.id,s.DeltaRowHeightCommand.id,s.SetRowHeightCommand.id,s.DeltaColumnWidthCommand.id,s.SetColWidthCommand.id,s.SetRowHiddenCommand.id,s.SetSpecificRowsVisibleCommand.id,s.SetSpecificColsVisibleCommand.id,s.SetColHiddenCommand.id,s.MoveColsCommand.id,s.MoveRowsCommand.id,s.MoveRangeCommand.id],Pe=[s.SetRowVisibleMutation.id,s.SetRowHiddenMutation.id,s.SetColVisibleMutation.id,s.SetColHiddenMutation.id,s.SetWorksheetRowHeightMutation.id,s.SetWorksheetRowAutoHeightMutation.id,s.SetWorksheetRowIsAutoHeightMutation.id,s.SetWorksheetColWidthMutation.id],Fe=class extends t.Disposable{constructor(e,t,n,r,i,a,o,s,c){super(),this._context=e,this._commandService=t,this._sheetSkeletonService=n,this._selectionRenderService=r,this._sheetInterceptorService=i,this._selectionManagerService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._univerInstanceService=c,this._sheetInterceptorListener(),this._commandListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{let{id:n,params:r}=e;if(!Ne.includes(n)||!r)return{redos:[],undos:[]};if(n===s.InsertRowCommand.id)return this._moveRowInterceptor(r,`insert`);if([s.MoveColsCommand.id,s.MoveRowsCommand.id,s.MoveRangeCommand.id].includes(n)){let e;if(n===s.MoveRangeCommand.id){let t=r;if(t.toUnitId&&t.fromUnitId&&t.toUnitId!==t.fromUnitId||t.toSubUnitId&&t.fromSubUnitId&&t.toSubUnitId!==t.fromSubUnitId)return{redos:[],undos:[]};e=(0,s.getSheetCommandTarget)(this._univerInstanceService,{unitId:t.toUnitId,subUnitId:t.toSubUnitId})}else e=(0,s.getSheetCommandTarget)(this._univerInstanceService,r);if(!e)return{redos:[],undos:[]};let{unitId:t,subUnitId:i}=e,{fromRange:a,toRange:o}=r;return this._moveRangeInterceptor(t,i,a,o)}else if(n===s.InsertColCommand.id)return this._moveColInterceptor(r,`insert`);else if(n===s.RemoveRowCommand.id)return this._moveRowInterceptor(r,`remove`);else if(n===s.RemoveColCommand.id)return this._moveColInterceptor(r,`remove`);else if(n===s.DeleteRangeMoveLeftCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,Q.deleteLeft)}else if(n===s.DeleteRangeMoveUpCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,Q.deleteUp)}else if(n===s.InsertRangeMoveDownCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,Q.insertDown)}else if(n===s.InsertRangeMoveRightCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,Q.insertRight)}else if(n===s.SetRowHiddenCommand.id||n===s.SetSpecificRowsVisibleCommand.id){var i;let e=r,n=(0,s.getSheetCommandTarget)(this._univerInstanceService,e);if(!n)return{redos:[],undos:[]};let{unitId:a,subUnitId:o}=n,c=e.ranges||((i=this._selectionManagerService.getCurrentSelections())==null?void 0:i.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.ROW));return!c||c.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowVisible(a,o,c)}else if(n===s.SetColHiddenCommand.id||n===s.SetSpecificColsVisibleCommand.id){var a;let e=r,n=(0,s.getSheetCommandTarget)(this._univerInstanceService,e);if(!n)return{redos:[],undos:[]};let{unitId:i,subUnitId:o}=n,c=e.ranges||((a=this._selectionManagerService.getCurrentSelections())==null?void 0:a.map(e=>e.range).filter(e=>e.rangeType===t.RANGE_TYPE.COLUMN));return!c||c.length===0?{redos:[],undos:[]}:this._getDrawingUndoForColVisible(i,o,c)}else if(n===s.DeltaRowHeightCommand.id||n===s.DeltaColumnWidthCommand.id){let e=(0,s.getSheetCommandTarget)(this._univerInstanceService);if(!e)return{redos:[],undos:[]};let{unitId:t,subUnitId:i,worksheet:a}=e,o=[];return n===s.DeltaRowHeightCommand.id?o.push({startRow:r.anchorRow,endRow:r.anchorRow,startColumn:0,endColumn:a.getColumnCount()-1}):o.push({startRow:0,endRow:a.getRowCount()-1,startColumn:r.anchorCol,endColumn:r.anchorCol}),this._getDrawingUndoForRowAndColSize(t,i,o)}else if(n===s.SetRowHeightCommand.id||n===s.SetColWidthCommand.id){var o;let e=r,t=(0,s.getSheetCommandTarget)(this._univerInstanceService,e);if(!t)return{redos:[],undos:[]};let{unitId:n,subUnitId:i}=t,a=e.ranges||((o=this._selectionManagerService.getCurrentSelections())==null?void 0:o.map(e=>e.range));return!a||a.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowAndColSize(n,i,a)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(e,t){let r=(0,s.getSheetCommandTarget)(this._univerInstanceService);if(!r)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=r,o=this._sheetDrawingService.getDrawingData(i,a),c=[],l=[],u=[],d=[];if(Object.keys(o).forEach(n=>{let r=o[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:r}=this._sheetDrawingService.getBatchUpdateOp(u);c.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:r,type:n.DrawingApplyType.UPDATE}}),l.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:e,objects:r,type:n.DrawingApplyType.UPDATE}})}if(d.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(d),t=e.undo,r=e.redo,o=e.objects;c.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:r,objects:o,type:n.DrawingApplyType.REMOVE}}),l.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:o,type:n.DrawingApplyType.INSERT}})}return c.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),l.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),{redos:c,undos:l}}_getUpdateOrDeleteDrawings(e,t,r){let i=[],a=[],{sheetTransform:o,anchorType:s=n.SheetDrawingAnchorType.Position,transform:c,unitId:l,subUnitId:u,drawingId:d}=r,f=this._sheetSkeletonService.getSkeletonParam(l,u);if(!o||!c||!f)return{updateDrawings:i,deleteDrawings:a};let{from:p,to:m}=o,{row:h,column:g}=p,{row:_,column:v}=m,{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(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType: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(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType: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(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType: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(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType: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&&w){let e=(0,n.drawingPositionToTransform)(C,f);i.push({...r,sheetTransform:C,transform:e,axisAlignSheetTransform:T})}return{updateDrawings:i,deleteDrawings:a}}_remainDrawingSize(e,t,r,i){let a=(0,n.transformToDrawingPosition)({...e},i);if(a){let o=(0,n.transformToAxisAlignPosition)({...e},i);t.push({...r,sheetTransform:a,axisAlignSheetTransform:o})}}_getDrawingUndoForColVisible(e,t,r){let i=this._sheetSkeletonService.getSkeleton(e,t);if(!i)return{redos:[],undos:[]};let a=this._drawingManagerService.getDrawingData(e,t),o=[],c=[];if(Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:l,transform:u,anchorType:d=n.SheetDrawingAnchorType.Position}=t;if(d===n.SheetDrawingAnchorType.None)this._remainDrawingSize(u,o,t,i);else{let{from:e,to:a}=l,{row:f,column:p}=e,{row:m,column:h}=a;for(let e=0;e<r.length;e++){let{startColumn:a,endColumn:l}=r[e];if(h<a)continue;if(d===n.SheetDrawingAnchorType.Position){let e=null,r=null;if(p>=a&&p<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:l,startRow:f,endRow:m});r={...u,left:e.startX}}if(r){e=(0,n.transformToDrawingPosition)(r,i);let a=(0,n.transformToAxisAlignPosition)(r,i);if(e&&r){o.push({...t,sheetTransform:e,transform:r,axisAlignSheetTransform:a});break}}this._remainDrawingSize(u,o,t,i);continue}if(p>=a&&h<=l)continue;let g=null,_=null;if(p>=a&&p<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:l,startRow:f,endRow:m});_={...u,left:(e==null?void 0:e.startX)||0,width:((u==null?void 0:u.width)||0)-e.endX+e.startX}}else if(h>=a&&h<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:a,endColumn:h,startRow:f,endRow:m});_={...u,left:e.startX-((u==null?void 0:u.width)||0)}}else{let e=(0,s.attachRangeWithCoord)(i,{startColumn:a,endColumn:l,startRow:f,endRow:m});if(_={...u,width:((u==null?void 0:u.width)||0)-e.endX+e.startX},g=(0,n.transformToDrawingPosition)(_,i),g&&_){let e=(0,n.transformToAxisAlignPosition)(_,i);c.push({...t,sheetTransform:g,transform:_,axisAlignSheetTransform:e});break}}if(_&&(g=(0,n.transformToDrawingPosition)(_,i)),_&&g){let e=(0,n.transformToAxisAlignPosition)(_,i);o.push({...t,sheetTransform:g,transform:_,axisAlignSheetTransform:e});break}else this._remainDrawingSize(u,o,t,i)}}}),o.length===0&&c.length===0)return{redos:[],undos:[]};let{redos:l,undos:u}=this._createUndoAndRedoMutation(e,t,o),d=[],f=[];if(c.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,c);d.push(...n),f.push(...r)}return{redos:l,undos:u,preRedos:d,preUndos:f}}_createUndoAndRedoMutation(e,t,r){let{undo:i,redo:a,objects:o}=this._sheetDrawingService.getBatchUpdateOp(r);return{redos:[{id:n.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:a,objects:o,type:n.DrawingApplyType.UPDATE}},{id:n.ClearSheetDrawingTransformerOperation.id,params:[e]}],undos:[{id:n.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:i,objects:o,type:n.DrawingApplyType.UPDATE}},{id:n.ClearSheetDrawingTransformerOperation.id,params:[e]}]}}_getDrawingUndoForRowVisible(e,t,r){let i=this._sheetSkeletonService.getSkeleton(e,t);if(!i)return{redos:[],undos:[]};let a=this._drawingManagerService.getDrawingData(e,t),o=[],c=[];if(Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:l,transform:u,anchorType:d=n.SheetDrawingAnchorType.Position}=t;if(d===n.SheetDrawingAnchorType.None)this._remainDrawingSize(u,o,t,i);else{let{from:e,to:a}=l,{row:f,column:p}=e,{row:m,column:h}=a;for(let e=0;e<r.length;e++){let{startRow:a,endRow:l}=r[e];if(m<a)continue;if(d===n.SheetDrawingAnchorType.Position){let e=null,r=null;if(f>=a&&f<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:h,startRow:f,endRow:l});r={...u,top:e.startY}}if(r){e=(0,n.transformToDrawingPosition)(r,i);let a=(0,n.transformToAxisAlignPosition)(r,i);if(e&&r){o.push({...t,sheetTransform:e,transform:r,axisAlignSheetTransform:a});break}}this._remainDrawingSize(u,o,t,i);continue}if(f>=a&&m<=l)continue;let g=null,_=null;if(f>=a&&f<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:h,startRow:f,endRow:l});_={...u,top:(e==null?void 0:e.startY)||0,height:((u==null?void 0:u.height)||0)-e.endY+e.startY}}else if(m>=a&&m<=l){let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:h,startRow:a,endRow:m});_={...u,top:e.startY-((u==null?void 0:u.height)||0)}}else{let e=(0,s.attachRangeWithCoord)(i,{startColumn:p,endColumn:h,startRow:a,endRow:l});if(_={...u,height:((u==null?void 0:u.height)||0)-e.endY+e.startY},g=(0,n.transformToDrawingPosition)(_,i),g&&_){let e=(0,n.transformToAxisAlignPosition)(_,i);c.push({...t,sheetTransform:g,transform:_,axisAlignSheetTransform:e});break}}if(_&&(g=(0,n.transformToDrawingPosition)(_,i)),_&&g){let e=(0,n.transformToAxisAlignPosition)(_,i);o.push({...t,sheetTransform:g,transform:_,axisAlignSheetTransform:e});break}else this._remainDrawingSize(u,o,t,i)}}}),o.length===0&&c.length===0)return{redos:[],undos:[]};let{redos:l,undos:u}=this._createUndoAndRedoMutation(e,t,o),d=[],f=[];if(c.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,c);d.push(...n),f.push(...r)}return{redos:l,undos:u,preRedos:d,preUndos:f}}_getDrawingUndoForRowAndColSize(e,t,r){let i=this._sheetSkeletonService.getSkeletonParam(e,t);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,o=this._drawingManagerService.getDrawingData(e,t),s=[];return Object.keys(o).forEach(e=>{let t=o[e],{sheetTransform:c,transform:l,anchorType:u=n.SheetDrawingAnchorType.Position}=t;if(u===n.SheetDrawingAnchorType.None)this._remainDrawingSize(l,s,t,a);else{let{from:e,to:o}=c,{row:d,column:f}=e,{row:p,column:m}=o;for(let e=0;e<r.length;e++){let{startRow:o,endRow:h,startColumn:g,endColumn:_}=r[e];if(p<o||m<g)continue;if(u===n.SheetDrawingAnchorType.Position&&(d<=o&&p>=h||f<=g&&m>=_)){this._remainDrawingSize(l,s,t,a);continue}let v=(0,n.drawingPositionToTransform)({...c},i);if(v){s.push({...t,transform:v});break}}}}),s.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,s)}_getUnitIdAndSubUnitId(e,t){let n;if(n=t===`insert`?(0,s.getSheetCommandTarget)(this._univerInstanceService,e):(0,s.getSheetCommandTarget)(this._univerInstanceService),!n)return;let{unitId:r,subUnitId:i}=n;return{unitId:r,subUnitId:i}}_moveRangeInterceptor(e,t,r,i){let a=this._sheetSkeletonService.getSkeletonParam(e,t);if(!a)return{redos:[],undos:[]};let{skeleton:o}=a,c=(0,s.attachRangeWithCoord)(o,r);if(!c)return{redos:[],undos:[]};let{startX:l,endX:u,startY:d,endY:f}=c,p=this._sheetDrawingService.getDrawingData(e,t),m=[];Object.keys(p).forEach(e=>{let t=p[e];if(t.anchorType!==n.SheetDrawingAnchorType.Both)return;let{transform:r}=t;if(!r)return;let{left:i=0,top:a=0,width:o=0,height:s=0}=r,{drawingStartX:c,drawingEndX:h,drawingStartY:g,drawingEndY:_}={drawingStartX:i,drawingEndX:i+o,drawingStartY:a,drawingEndY:a+s};l<=c&&h<=u&&d<=g&&_<=f&&m.push(t)});let h=[],g=[],_=i.startRow-r.startRow,v=i.startColumn-r.startColumn,y=m.map(r=>{let i=r.sheetTransform,o={to:{...i.to,row:i.to.row+_,column:i.to.column+v},from:{...i.from,row:i.from.row+_,column:i.from.column+v}},s=(0,n.drawingPositionToTransform)(o,a);return{unitId:e,subUnitId:t,drawingId:r.drawingId,transform:s,sheetTransform:o}});if(y.length){let{undo:r,redo:i,objects:a}=this._sheetDrawingService.getBatchUpdateOp(y);h.push({id:n.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:i,objects:a,type:n.DrawingApplyType.UPDATE}}),g.push({id:n.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:r,objects:a,type:n.DrawingApplyType.UPDATE}})}return{redos:h,undos:g}}_moveRowInterceptor(e,t){let r=this._getUnitIdAndSubUnitId(e,t);if(!r)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=r,o=this._sheetSkeletonService.getSkeletonParam(i,a);if(!o)return{redos:[],undos:[]};let{range:s}=e,c=s.startRow,l=s.endRow,u=[],d=[],f=this._sheetDrawingService.getDrawingData(i,a),p=[],m=[];if(Object.keys(f).forEach(e=>{let{sheetTransform:r,transform:s,anchorType:u=n.SheetDrawingAnchorType.Position}=f[e];if(!r||!s)return;let d,h,g;if(t===`insert`){var _;let e=this._expandRow(c,l,{sheetSkeletonParam:o,sheetTransform:r,transform:s,anchorType:u});d=e==null?void 0:e.newSheetTransform,h=e==null?void 0:e.newTransform,g=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}else{let{from:t,to:f}=r,{row:p}=t,{row:_}=f;if(u===n.SheetDrawingAnchorType.Both&&p>=c&&_<=l)m.push({unitId:i,subUnitId:a,drawingId:e});else{var v;let e=this._shrinkRow(c,l,{sheetSkeletonParam:o,sheetTransform:r,transform:s,anchorType:u});d=e==null?void 0:e.newSheetTransform,h=e==null?void 0:e.newTransform,g=(v=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:v}}if(!d||!h)return;let y={unitId:i,subUnitId:a,drawingId:e,transform:h,sheetTransform:d,axisAlignSheetTransform:g};p.push(y)}),p.length===0&&m.length===0)return{redos:[],undos:[]};if(p.length>0){let{undo:e,redo:t,objects:r}=this._sheetDrawingService.getBatchUpdateOp(p);u.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:r,type:n.DrawingApplyType.UPDATE}}),d.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:e,objects:r,type:n.DrawingApplyType.UPDATE}})}if(m.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(m),t=e.undo,r=e.redo,o=e.objects;u.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:r,objects:o,type:n.DrawingApplyType.REMOVE}}),d.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:o,type:n.DrawingApplyType.INSERT}})}return u.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),d.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),{redos:u,undos:d}}_moveColInterceptor(e,t){let r=this._getUnitIdAndSubUnitId(e,t);if(!r)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=r,o=this._sheetSkeletonService.getSkeletonParam(i,a);if(!o)return{redos:[],undos:[]};let{range:s}=e,c=s.startColumn,l=s.endColumn,u=[],d=[],f=this._sheetDrawingService.getDrawingData(i,a),p=[],m=[];if(Object.keys(f).forEach(e=>{let{sheetTransform:r,transform:s,anchorType:u=n.SheetDrawingAnchorType.Position}=f[e];if(!r||!s)return;let d,h,g;if(t===`insert`){var _;let e=this._expandCol(c,l,{sheetSkeletonParam:o,sheetTransform:r,transform:s,anchorType:u});d=e==null?void 0:e.newSheetTransform,h=e==null?void 0:e.newTransform,g=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}else{let{from:t,to:f}=r,{column:p}=t,{column:_}=f;if(u===n.SheetDrawingAnchorType.Both&&p>=c&&_<=l)m.push({unitId:i,subUnitId:a,drawingId:e});else{var v;let e=this._shrinkCol(c,l,{sheetSkeletonParam:o,sheetTransform:r,transform:s,anchorType:u});d=e==null?void 0:e.newSheetTransform,h=e==null?void 0:e.newTransform,g=(v=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:v}}if(!d||!h)return;let y={unitId:i,subUnitId:a,drawingId:e,transform:h,sheetTransform:d,axisAlignSheetTransform:g};p.push(y)}),p.length===0&&m.length===0)return{redos:[],undos:[]};if(p.length>0){let{undo:e,redo:t,objects:r}=this._sheetDrawingService.getBatchUpdateOp(p);u.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:r,type:n.DrawingApplyType.UPDATE}}),d.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:e,objects:r,type:n.DrawingApplyType.UPDATE}})}if(m.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(m),t=e.undo,r=e.redo,o=e.objects;u.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:r,objects:o,type:n.DrawingApplyType.REMOVE}}),d.push({id:n.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:a,op:t,objects:o,type:n.DrawingApplyType.INSERT}})}return u.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),d.push({id:n.ClearSheetDrawingTransformerOperation.id,params:[i]}),{redos:u,undos:d}}_expandCol(e,t,r){let{sheetSkeletonParam:i,sheetTransform:a,transform:o,anchorType:c=n.SheetDrawingAnchorType.Position}=r,{skeleton:l}=i,u=t-e+1,{from:d,to:f}=a,{column:p}=d,{column:m}=f;if(c===n.SheetDrawingAnchorType.None)return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};let h=null,g=null,_=null;if(p>=e){let r=(0,s.attachRangeWithCoord)(l,{startColumn:e,endColumn:t,startRow:d.row,endRow:f.row});g={...o,left:(o.left||0)+r.endX-r.startX},h=(0,n.transformToDrawingPosition)(g,l),_=(0,n.transformToAxisAlignPosition)(g,l)}else if(m>=t)if(c===n.SheetDrawingAnchorType.Both)h={from:{...d},to:{...f,column:m+u}},g=(0,n.drawingPositionToTransform)(h,i);else return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};return h&&g?{newSheetTransform:h,newTransform:g,axisAlignSheetTransform:_}:null}_shrinkCol(e,t,r){let{sheetSkeletonParam:i,sheetTransform:a,transform:o,anchorType:c=n.SheetDrawingAnchorType.Position}=r,{skeleton:l}=i,u=t-e+1,{from:d,to:f}=a,{column:p}=d,{column:m}=f;if(c===n.SheetDrawingAnchorType.None)return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};let h=null,g=null,_=null;if(p>t)h={from:{...d,column:p-u},to:{...f,column:m-u}},g=(0,n.drawingPositionToTransform)(h,i);else if(p>=e&&m<=t)return null;else if(p<e&&m>t)if(c===n.SheetDrawingAnchorType.Both)h={from:{...d},to:{...f,column:m-u}},g=(0,n.drawingPositionToTransform)(h,i);else return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};else if(p>=e&&p<=t){if(p===e)g={...o,left:(o.left||0)-a.from.columnOffset};else{let t=(0,s.attachRangeWithCoord)(l,{startColumn:e,endColumn:p-1,startRow:d.row,endRow:f.row});g={...o,left:(o.left||0)-t.endX+t.startX-a.from.columnOffset}}h=(0,n.transformToDrawingPosition)(g,l),_=(0,n.transformToAxisAlignPosition)(g,l)}else if(m>=e&&m<=t&&c===n.SheetDrawingAnchorType.Both){let t=(0,s.attachRangeWithCoord)(l,{startColumn:e-1,endColumn:e-1,startRow:d.row,endRow:f.row});h={from:{...d},to:{...f,column:e-1,columnOffset:t.endX-t.startX}},g=(0,n.drawingPositionToTransform)(h,i)}return h&&g?{newSheetTransform:h,newTransform:g,axisAlignSheetTransform:_}:null}_expandRow(e,t,r){let{sheetSkeletonParam:i,sheetTransform:a,transform:o,anchorType:c=n.SheetDrawingAnchorType.Position}=r,{skeleton:l}=i,u=t-e+1,{from:d,to:f}=a,{row:p}=d,{row:m}=f;if(c===n.SheetDrawingAnchorType.None)return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};let h=null,g=null,_=null;if(p>=e){let r=(0,s.attachRangeWithCoord)(l,{startRow:e,endRow:t,startColumn:d.column,endColumn:f.column});g={...o,top:(o.top||0)+r.endY-r.startY},h=(0,n.transformToDrawingPosition)(g,l),_=(0,n.transformToAxisAlignPosition)(g,l)}else if(m>=t)if(c===n.SheetDrawingAnchorType.Both)h={from:{...d},to:{...f,row:m+u}},g=(0,n.drawingPositionToTransform)(h,i);else return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};return h&&g?{newSheetTransform:h,newTransform:g,axisAlignSheetTransform:_}:null}_shrinkRow(e,t,r){let{sheetSkeletonParam:i,sheetTransform:a,transform:o,anchorType:c=n.SheetDrawingAnchorType.Position}=r,{skeleton:l}=i,u=t-e+1,{from:d,to:f}=a,{row:p}=d,{row:m}=f;if(c===n.SheetDrawingAnchorType.None)return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};let h=null,g=null,_=null;if(p>t)h={from:{...d,row:p-u},to:{...f,row:m-u}},g=(0,n.drawingPositionToTransform)(h,i);else if(p>=e&&m<=t)return null;else if(p<e&&m>t)if(c===n.SheetDrawingAnchorType.Both)h={from:{...d},to:{...f,row:m-u}},g=(0,n.drawingPositionToTransform)(h,i);else return{newSheetTransform:(0,n.transformToDrawingPosition)({...o},l),newTransform:o,axisAlignSheetTransform:(0,n.transformToAxisAlignPosition)({...o},l)};else if(p>=e&&p<=t){if(p===e)g={...o,top:(o.top||0)-a.from.rowOffset};else{let t=(0,s.attachRangeWithCoord)(l,{startRow:e,endRow:p-1,startColumn:d.column,endColumn:f.column});g={...o,top:(o.top||0)-t.endY+t.startY-a.from.rowOffset}}h=(0,n.transformToDrawingPosition)(g,l),_=(0,n.transformToAxisAlignPosition)(g,l)}else if(m>=e&&m<=t&&c===n.SheetDrawingAnchorType.Both){let t=(0,s.attachRangeWithCoord)(l,{startColumn:d.column,endColumn:d.column,startRow:e-1,endRow:e-1});h={from:{...d},to:{...f,row:e-1,rowOffset:t.endY-t.startY}},g=(0,n.drawingPositionToTransform)(h,i)}return h&&g?{newSheetTransform:h,newTransform:g,axisAlignSheetTransform:_}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===s.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];Object.keys(i).forEach(t=>{let a=i[t].data;Object.keys(a).forEach(t=>{r===e&&n.push(a[t])})})}),this._sheetDrawingService.removeNotification(n),this._drawingManagerService.removeNotification(n)})}_updateDrawings(e,t){setTimeout(()=>{let r=this._sheetSkeletonService.getSkeletonParam(e,t),i=this._drawingManagerService.drawingManagerData,a=[],o=[];Object.keys(i).forEach(s=>{let c=i[s];Object.keys(c).forEach(i=>{let l=c[i].data;Object.keys(l).forEach(c=>{if(s===e&&i===t){let e=l[c];e.sheetTransform&&(e.transform=(0,n.drawingPositionToTransform)(e.sheetTransform,r)),a.push(l[c])}else o.push(l[c])})})}),this._sheetDrawingService.removeNotification(o),this._sheetDrawingService.addNotification(a),this._drawingManagerService.removeNotification(o),this._drawingManagerService.addNotification(a)},0)}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{Pe.includes(e.id)&&requestIdleCallback(()=>{let t=e.params,n=(0,s.getSheetCommandTarget)(this._univerInstanceService,t);if(!n)return;let{unitId:r,subUnitId:i,worksheet:a}=n,o=[];`ranges`in t?o=t.ranges:`rowsAutoHeightInfo`in t&&(o=t.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:a.getColumnCount()-1}))),this._refreshDrawingTransform(r,i,o)})}))}_refreshDrawingTransform(e,r,i){let a=this._sheetSkeletonService.getSkeletonParam(e,r),o=this._drawingManagerService.getDrawingData(e,r),s=[];Object.keys(o).forEach(e=>{let r=o[e],{sheetTransform:c,transform:l,anchorType:u=n.SheetDrawingAnchorType.Position}=r;if(u===n.SheetDrawingAnchorType.None)return!0;let{from:d,to:f}=c,{row:p,column:m}=d,{row:h,column:g}=f;for(let e=0;e<i.length;e++){let{startRow:o,endRow:d,startColumn:f,endColumn:_}=i[e];if(t.Rectangle.intersects({startRow:o,endRow:d,startColumn:f,endColumn:_},{startRow:p,endRow:h,startColumn:m,endColumn:g})||p>d||m>_){let e=u===n.SheetDrawingAnchorType.Position,t=(0,n.drawingPositionToTransform)(c,a);s.push({...r,transform:{...t,width:e?l==null?void 0:l.width:t==null?void 0:t.width,height:e?l==null?void 0:l.height:t==null?void 0:t.height}});break}}}),s.length!==0&&(this._sheetDrawingService.refreshTransform(s),this._drawingManagerService.refreshTransform(s),this._commandService.syncExecuteCommand(n.ClearSheetDrawingTransformerOperation.id,[e]))}};Fe=D([E(1,t.ICommandService),E(2,(0,t.Inject)(s.SheetSkeletonService)),E(3,c.ISheetSelectionRenderService),E(4,(0,t.Inject)(s.SheetInterceptorService)),E(5,(0,t.Inject)(s.SheetsSelectionsService)),E(6,n.ISheetDrawingService),E(7,o.IDrawingManagerService),E(8,t.IUniverInstanceService)],Fe);let Ie={id:`sheet.command.toggle-flip-drawings`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUndoRedoService),c=e.get(n.ISheetDrawingService),l=e.get(s.SheetSkeletonService),{drawings:u}=r,d=r.flipH,f=r.flipV,p=[],m=[];for(let r of u){let{unitId:i,subUnitId:a,drawingId:s}=r;p.push(i);let u=c.getDrawingData(i,a),h=u==null?void 0:u[s];if(!h)continue;let g=l.getSkeleton(i,a);if(!g)continue;let _={...h.transform};d&&(_.flipX=!_.flipX),f&&(_.flipY=!_.flipY);let v=(0,n.transformToDrawingPosition)(_,g),y=(0,n.transformToAxisAlignPosition)(_,g),b={unitId:i,subUnitId:a,drawingType:h.drawingType,drawingId:s,transform:_,sheetTransform:v,axisAlignSheetTransform:y};if(h.drawingType===t.DrawingTypeEnum.DRAWING_IMAGE){let t=Le(e,i);if(t){let e=(0,o.getDrawingShapeKeyByDrawingSearch)({unitId:i,subUnitId:a,drawingId:s}),n=t.getObject(e);if(n){let e=n.srcRect;if(e){let t,{left:n=0,top:r=0,right:i=0,bottom:a=0}=e;if(d){let e=n+(i-n)/2;t={left:e-(i-n)/2,top:r,right:e+(i-n)/2,bottom:a}}if(f){let e=r+(a-r)/2;t={left:n,top:e-(a-r)/2,right:i,bottom:e+(a-r)/2}}t&&(b.srcRect=t)}}}}m.push(b)}if(m.length===0)return!1;let{unitId:h,subUnitId:g,undo:_,redo:v,objects:y}=c.getBatchUpdateOp(m),b={id:n.SetDrawingApplyMutation.id,params:{unitId:h,subUnitId:g,op:v,objects:y,type:n.DrawingApplyType.UPDATE}},x={id:n.SetDrawingApplyMutation.id,params:{unitId:h,subUnitId:g,op:_,objects:y,type:n.DrawingApplyType.UPDATE}};return(0,t.sequenceExecute)([b],i)?(a.pushUndoRedo({unitID:h,undoMutations:[x,{id:n.ClearSheetDrawingTransformerOperation.id,params:p}],redoMutations:[b,{id:n.ClearSheetDrawingTransformerOperation.id,params:p}]}),!0):!1}};function Le(e,t){let n=e.get(r.IRenderManagerService).getRenderById(t);return n?n.scene:null}function Re(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 ze(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(Re(r.getValue(e,t)))return!0;return!1}function Be(){return`showDirectoryPicker`in window}function Ve(e){let n=e.get(t.IUniverInstanceService),r=e.get(s.SheetsSelectionsService),i=(0,f.combineLatest)([(0,l.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),n.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,f.switchMap)(e=>e?r.selectionMoveEnd$.pipe((0,f.map)(()=>{if(!Be())return!0;let t=r.getCurrentSelections();if(!t||t.length===0)return!0;for(let n of t)if(ze(e,n.range))return!1;return!0})):(0,f.of)(!0)))]).pipe((0,f.map)(([e,t])=>e||t));return{id:W.id,type:l.MenuItemType.BUTTON,icon:`DownloadImageIcon`,title:`sheetImage.save.menuLabel`,hidden$:i}}let He={[l.RibbonInsertGroup.MEDIA]:{[te]:{order:0,menuItemFactory:ne,[j.id]:{order:0,menuItemFactory:re},[M.id]:{order:1,menuItemFactory:ie}}},[l.ContextMenuPosition.MAIN_AREA]:{[l.ContextMenuGroup.OTHERS]:{[W.id]:{order:10,menuItemFactory:Ve}}},[l.ContextMenuPosition.COL_HEADER]:{[l.ContextMenuGroup.OTHERS]:{[W.id]:{order:10,menuItemFactory:Ve}}},[l.ContextMenuPosition.ROW_HEADER]:{[l.ContextMenuGroup.OTHERS]:{[W.id]:{order:10,menuItemFactory:Ve}}}};function Ue(){let e=(0,l.useDependency)(t.LocaleService),n=(0,l.useDependency)(l.IDialogService),r=(0,l.useDependency)(F),[a,o]=(0,p.useState)([P.CELL_ADDRESS]),[s,u]=(0,p.useState)(!1),[d,f]=(0,p.useState)(null),h=(0,p.useMemo)(()=>r.getCellImagesInSelection(),[r]),g=(0,p.useMemo)(()=>r.getDataColumns(),[r]),_=(0,p.useMemo)(()=>r.getSelectionRowRange(),[r]),v=g.length>0,y=(0,p.useMemo)(()=>g.map(e=>({label:e.label,value:String(e.index)})),[g]),[b,x]=(0,p.useState)(()=>y.length>0?y[0].value:`0`);(0,c.useHighlightRange)((0,p.useMemo)(()=>{if(!a.includes(P.COLUMN_VALUE)||!_)return[];let e=Number(b);return[{startRow:_.startRow,endRow:_.endRow,startColumn:e,endColumn:e}]},[a,b,_]));let S=(0,p.useCallback)(e=>{e.length!==0&&o(e)},[]),C=(0,p.useCallback)(e=>{x(String(e))},[]),w=(0,p.useCallback)(()=>{n.close(U)},[n]),T=(0,p.useCallback)(async()=>{if(h.length!==0){u(!0),f(null);try{await r.saveImages(h,{fileNameParts:a,columnIndex:a.includes(P.COLUMN_VALUE)?Number(b):void 0}),n.close(U)}catch(t){console.error(`Failed to save images:`,t),f(e.t(`sheetImage.save.error`))}finally{u(!1)}}},[r,h,a,b,n,e]),E=a.includes(P.COLUMN_VALUE);return(0,m.jsxs)(`div`,{className:`univer-flex univer-flex-col`,children:[(0,m.jsx)(i.FormLayout,{label:e.t(`sheetImage.save.imageCount`),children:(0,m.jsx)(`div`,{className:`univer-text-sm univer-text-gray-600`,children:h.length})}),(0,m.jsx)(i.FormLayout,{label:e.t(`sheetImage.save.fileNameConfig`),children:(0,m.jsxs)(i.CheckboxGroup,{value:a,onChange:S,direction:`vertical`,children:[(0,m.jsx)(i.Checkbox,{value:P.CELL_ADDRESS,disabled:!v,children:e.t(`sheetImage.save.useRowCol`)}),v&&(0,m.jsx)(i.Checkbox,{value:P.COLUMN_VALUE,children:e.t(`sheetImage.save.useColumnValue`)})]})}),E&&(0,m.jsx)(i.FormLayout,{label:e.t(`sheetImage.save.selectColumn`),children:(0,m.jsx)(i.Select,{value:b,options:y,onChange:C})}),d&&(0,m.jsx)(`div`,{className:`univer-text-xs univer-text-red-500`,children:d}),(0,m.jsxs)(`div`,{className:`univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3`,children:[(0,m.jsx)(i.Button,{onClick:w,disabled:s,children:e.t(`sheetImage.save.cancel`)}),(0,m.jsx)(i.Button,{variant:`primary`,onClick:T,disabled:s||h.length===0,children:s?e.t(`sheetImage.save.saving`):e.t(`sheetImage.save.confirm`)})]})]})}let We=e=>{var a;let s=(0,l.useDependency)(t.ICommandService),c=(0,l.useDependency)(t.LocaleService),u=(0,l.useDependency)(o.IDrawingManagerService),d=(0,l.useDependency)(r.IRenderManagerService),{drawings:f}=e,h=f[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,p.useState)(!0),[S,C]=(0,p.useState)((a=h.anchorType)==null?n.SheetDrawingAnchorType.Position:a);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,p.useEffect)(()=>{let e=y.clearControl$.subscribe(e=>{e===!0&&x(!1)}),t=y.changeStart$.subscribe(e=>{let{objects:t}=e,r=w(t,u);if(r.length===0)x(!1);else if(r.length>=1){var i;x(!0),C(((i=r[0])==null?void 0:i.anchorType)||n.SheetDrawingAnchorType.Position)}});return()=>{t.unsubscribe(),e.unsubscribe()}},[]);function T(e){C(e);let t=u.getFocusDrawings();if(t.length===0)return;let r=t.map(t=>({unitId:t.unitId,subUnitId:t.subUnitId,drawingId:t.drawingId,anchorType:e}));s.executeCommand(n.SetSheetDrawingCommand.id,{unitId:t[0].unitId,drawings:r})}return(0,m.jsxs)(`div`,{className:(0,i.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!b}),children:[(0,m.jsx)(`header`,{className:`univer-text-gray-600 dark:!univer-text-gray-200`,children:(0,m.jsx)(`div`,{children:c.t(`drawing-anchor.title`)})}),(0,m.jsx)(`div`,{children:(0,m.jsxs)(i.RadioGroup,{value:S,onChange:T,direction:`vertical`,children:[(0,m.jsx)(i.Radio,{value:n.SheetDrawingAnchorType.Both,children:c.t(`drawing-anchor.both`)}),(0,m.jsx)(i.Radio,{value:n.SheetDrawingAnchorType.Position,children:c.t(`drawing-anchor.position`)}),(0,m.jsx)(i.Radio,{value:n.SheetDrawingAnchorType.None,children:c.t(`drawing-anchor.none`)})]})})]})},Ge=()=>{let e=(0,l.useDependency)(o.IDrawingManagerService),[t,n]=(0,p.useState)(e.getFocusDrawings());return(0,p.useEffect)(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&(0,m.jsxs)(`div`,{className:`univer-text-sm`,children:[(0,m.jsx)(d.DrawingCommonPanel,{drawings:t}),(0,m.jsx)(We,{drawings:t})]})};function Ke(e){return e.getContextValue(t.FOCUSING_SHEET)&&!e.getContextValue(t.FOCUSING_FX_BAR_EDITOR)&&!e.getContextValue(t.FOCUSING_PANEL_EDITOR)&&e.getContextValue(t.FOCUSING_COMMON_DRAWINGS)&&!e.getContextValue(t.FOCUSING_SHAPE_TEXT_EDITOR)}let qe={id:N.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_DOWN,priority:100,preconditions:Ke,staticParameters:{direction:t.Direction.DOWN}},Je={id:N.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_UP,priority:100,preconditions:Ke,staticParameters:{direction:t.Direction.UP}},Ye={id:N.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_LEFT,priority:100,preconditions:Ke,staticParameters:{direction:t.Direction.LEFT}},Xe={id:N.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_RIGHT,priority:100,preconditions:Ke,staticParameters:{direction:t.Direction.RIGHT}},Ze={id:h.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,priority:100,preconditions:Ke,binding:l.KeyCode.DELETE,mac:l.KeyCode.BACKSPACE},Qe=class extends t.Disposable{constructor(e,t,n,r){super(),this._componentManager=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._init()}_initCustomComponents(){let e=this._componentManager;this.disposeWithMe(e.register(G,Ge)),this.disposeWithMe(e.register(U,Ue))}_initMenus(){this._menuManagerService.mergeMenu(He)}_initCommands(){[j,M,K,q,b,x,N,h,W,Ie].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[qe,Je,Ye,Xe,Ze].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};Qe=D([E(0,(0,t.Inject)(l.ComponentManager)),E(1,l.IMenuManagerService),E(2,t.ICommandService),E(3,l.IShortcutService)],Qe);let $e=class extends t.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,T(this,`_initImagePopupMenu`,new Set),this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._create(e)),this._univerInstanceService.getTypeOfUnitDisposed$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._dispose(e)),this._univerInstanceService.getAllUnitsForType(t.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:i.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 d.ImageCropperObject)return!0;return!1}_popupMenuListener(e){var n;let r=(n=this._renderManagerService.getRenderById(e))==null?void 0:n.scene;if(!r)return;let i=r.getTransformerByCreate();if(!i)return;let a;this.disposeWithMe(i.createControl$.subscribe(()=>{if(this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!0),this._hasCropObject(r))return;let e=i.getSelectedObjectMap();if(e.size>1){a==null||a.dispose();return}let n=e.values().next().value;if(!n)return;let o=n.oKey,s=this._drawingManagerService.getDrawingOKey(o);if(!s)return;let{unitId:c,subUnitId:l,drawingId:u,drawingType:f}=s,p=s.data;if(p&&p.disablePopup)return;a==null||a.dispose();let m=this._canvasPopManagerService.getFeatureMenu(c,l,u,f);a=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(n,{componentKey:d.COMPONENT_IMAGE_POPUP_MENU,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:m||this._getImageMenuItems(c,l,u,f)}}))})),this.disposeWithMe(i.clearControl$.subscribe(()=>{a==null||a.dispose(),this._contextService.setContextValue(t.FOCUSING_COMMON_DRAWINGS,!1),this._commandService.syncExecuteCommand(o.SetDrawingSelectedOperation.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(e=>{e[t.FOCUSING_COMMON_DRAWINGS]===!1&&(a==null||a.dispose())})),this.disposeWithMe(i.changing$.subscribe(()=>{a==null||a.dispose()}))}_getImageMenuItems(e,r,i,a){return[{label:`image-popup.edit`,index:0,commandId:q.id,commandParams:{unitId:e,subUnitId:r,drawingId:i},disable:a===t.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.delete`,index:1,commandId:n.RemoveSheetDrawingCommand.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:r,drawingId:i}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:d.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:r,drawingId:i},disable:a===t.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipH`,index:2,commandId:Ie.id,commandParams:{unitId:e,flipH:!0,drawings:[{unitId:e,subUnitId:r,drawingId:i}]},disable:a===t.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipV`,index:2,commandId:Ie.id,commandParams:{unitId:e,flipV:!0,drawings:[{unitId:e,subUnitId:r,drawingId:i}]},disable:a===t.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.reset`,index:3,commandId:d.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:r,drawingId:i}],disable:a===t.DrawingTypeEnum.DRAWING_DOM}]}};$e=D([E(0,(0,t.Inject)(t.Injector)),E(1,(0,t.Inject)(t.LocaleService)),E(2,o.IDrawingManagerService),E(3,(0,t.Inject)(c.SheetCanvasPopManagerService)),E(4,r.IRenderManagerService),E(5,t.IUniverInstanceService),E(6,l.IMessageService),E(7,t.IContextService),E(8,t.IImageIoService),E(9,t.ICommandService)],$e);let $=class extends t.Plugin{constructor(e=ce,n,r,i){super(),this._config=e,this._injector=n,this._renderManagerService=r,this._configService=i;let{menu:a,...o}=(0,t.merge)({},ce,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(se,o)}onStarting(){(0,t.registerDependencies)(this._injector,[[De],[Qe],[$e],[Me],[Ce],[Se],[Y],[pe],[me],[ge],[F,{useClass:H}],[le]]),(0,t.touchDependencies)(this._injector,[[De]])}onReady(){(0,t.touchDependencies)(this._injector,[[Se],[ge],[Y]])}onRendered(){this._registerRenderModules(),(0,t.touchDependencies)(this._injector,[[Ce],[Me],[Qe],[pe],[me]])}onSteady(){this._injector.get($e),this._injector.get(le)}_registerRenderModules(){[[A],[Fe],[de],[ue]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(t.UniverInstanceType.UNIVER_SHEET,e))})}};T($,`type`,t.UniverInstanceType.UNIVER_SHEET),T($,`pluginName`,`SHEET_IMAGE_UI_PLUGIN`),T($,`packageName`,ae),T($,`version`,oe),$=D([(0,t.DependentOn)(o.UniverDrawingPlugin,u.UniverDocsDrawingPlugin,d.UniverDrawingUIPlugin,n.UniverSheetsDrawingPlugin),E(1,(0,t.Inject)(t.Injector)),E(2,r.IRenderManagerService),E(3,t.IConfigService)],$),Object.defineProperty(e,`BatchSaveImagesService`,{enumerable:!0,get:function(){return H}}),e.DeleteDrawingsCommand=h,e.EditSheetDrawingOperation=q,e.FileNamePart=P,e.GroupSheetDrawingCommand=b,e.IBatchSaveImagesService=F,e.InsertFloatImageCommand=j,e.MoveDrawingsCommand=N,e.SHEETS_IMAGE_MENU_ID=te,e.SHEET_FLOAT_DOM_PREFIX=Te,e.SaveCellImagesCommand=W,Object.defineProperty(e,`SheetCanvasFloatDomManagerService`,{enumerable:!0,get:function(){return De}}),e.SheetDrawingAnchor=We,Object.defineProperty(e,`SheetDrawingUpdateController`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(e,`SheetsDrawingGroupCopyPasteController`,{enumerable:!0,get:function(){return Y}}),e.SidebarSheetDrawingOperation=K,e.UngroupSheetDrawingCommand=x,Object.defineProperty(e,`UniverSheetsDrawingUIPlugin`,{enumerable:!0,get:function(){return $}}),e.calcSheetFloatDomPosition=Z});
|
|
16
16
|
|
|
17
17
|
// @univerjs/sheets-drawing-ui/facade
|
|
18
18
|
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(require(`@univerjs/sheets`),require(`@univerjs/sheets-drawing`),require(`@univerjs/sheets-drawing-ui`),require(`@univerjs/sheets-ui/facade`),require(`@univerjs/sheets/facade`),require(`@univerjs/ui`),require(`@univerjs/core/facade`),require(`@univerjs/core`),require(`@univerjs/drawing`),require(`@univerjs/engine-render`)):typeof define==`function`&&define.amd?define([`@univerjs/sheets`,`@univerjs/sheets-drawing`,`@univerjs/sheets-drawing-ui`,`@univerjs/sheets-ui/facade`,`@univerjs/sheets/facade`,`@univerjs/ui`,`@univerjs/core/facade`,`@univerjs/core`,`@univerjs/drawing`,`@univerjs/engine-render`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheets,e.UniverSheetsDrawing,e.UniverSheetsDrawingUi,e.UniverSheetsUiFacade,e.UniverSheetsFacade,e.UniverUi,e.UniverCoreFacade,e.UniverCore,e.UniverDrawing,e.UniverEngineRender))})(this,function(e,t,n,r,i,a,o,s,c,l){var u=class extends i.FWorksheet{getFloatDomById(e){let r=this._injector.get(n.SheetCanvasFloatDomManagerService).getFloatDomInfo(e);if(!r)return null;let{unitId:i,subUnitId:a}=r,{rect:o}=r,{left:s=0,top:c=0,width:l=0,height:u=0,flipX:d=!1,flipY:f=!1,angle:p=0,skewX:m=0,skewY:h=0}=o.getState(),g=this._injector.get(t.ISheetDrawingService).getDrawingByParam({drawingId:r.id,unitId:i,subUnitId:a});return g?{position:{left:s,top:c,width:l,height:u,flipX:d,flipY:f,angle:p,skewX:m,skewY:h},componentKey:g.componentKey,allowTransform:g.allowTransform,data:g.data,id:r.id}:null}getAllFloatDoms(){let e=this._injector.get(n.SheetCanvasFloatDomManagerService),r=this._workbook.getUnitId(),i=this._worksheet.getSheetId();return Array.from(e.getFloatDomsBySubUnitId(r,i).values()).map(e=>{let{rect:n}=e,a=this._injector.get(t.ISheetDrawingService).getDrawingByParam({drawingId:e.id,unitId:r,subUnitId:i}),{left:o,top:s,width:c,height:l,flipX:u,flipY:d,angle:f,skewX:p,skewY:m}=n.getState();return{position:{left:o,top:s,width:c,height:l,flipX:u,flipY:d,angle:f,skewX:p,skewY:m},componentKey:a.componentKey,allowTransform:a.allowTransform,data:a.data,id:e.id}})}updateFloatDom(r,i){var a,o;let s=this._injector.get(e.SheetSkeletonService),c=this._injector.get(n.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!c)return this;let{unitId:l,subUnitId:u}=c,d=s.getSkeleton(l,u);if(!d)return this;let f=this._injector.get(t.ISheetDrawingService).getDrawingByParam({unitId:l,subUnitId:u,drawingId:r}),p={...f,componentKey:i.componentKey||f.componentKey,allowTransform:i.allowTransform===void 0?f.allowTransform:i.allowTransform,data:i.data||f.data,sheetTransform:i.position?(a=(0,t.transformToDrawingPosition)(i.position,d))==null?f.sheetTransform:a:f.sheetTransform,transform:{...f.transform,...i.position},axisAlignSheetTransform:i.position?(o=(0,t.transformToAxisAlignPosition)(i.position,d))==null?f.sheetTransform:o:f.sheetTransform};if(!this._commandService.syncExecuteCommand(t.SetSheetDrawingCommand.id,{unitId:l,subUnitId:u,drawings:[p]}))throw Error(`updateFloatDom failed`);return this}batchUpdateFloatDoms(r){let i=this._injector.get(n.SheetCanvasFloatDomManagerService),a=this._injector.get(t.ISheetDrawingService),o=this._injector.get(e.SheetSkeletonService),s=[];for(let e of r){var c,l;let n=i.getFloatDomInfo(e.id);if(!n)continue;let{unitId:r,subUnitId:u}=n,d=o.getSkeleton(r,u);if(!d)continue;let f=a.getDrawingByParam({unitId:r,subUnitId:u,drawingId:e.id});if(!f)continue;let p={...f,componentKey:e.config.componentKey||f.componentKey,allowTransform:e.config.allowTransform===void 0?f.allowTransform:e.config.allowTransform,data:e.config.data||f.data,sheetTransform:e.config.position?(c=(0,t.transformToDrawingPosition)(e.config.position,d))==null?f.sheetTransform:c:f.sheetTransform,transform:{...f.transform,...e.config.position},axisAlignSheetTransform:e.config.position?(l=(0,t.transformToAxisAlignPosition)(e.config.position,d))==null?f.sheetTransform:l:f.sheetTransform};s.push(p)}if(s.length>0){let e=this._workbook.getUnitId(),n=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(t.SetSheetDrawingCommand.id,{unitId:e,subUnitId:n,drawings:s}))throw Error(`batchUpdateFloatDoms failed`)}return this}removeFloatDom(e){let r=this._injector.get(n.SheetCanvasFloatDomManagerService).getFloatDomInfo(e);if(!r)return this;let{unitId:i,subUnitId:a}=r,o=this._injector.get(t.ISheetDrawingService).getDrawingByParam({unitId:i,subUnitId:a,drawingId:e});if(!o)return this;if(!this._commandService.syncExecuteCommand(t.RemoveSheetDrawingCommand.id,{unitId:i,drawings:[o]}))throw Error(`removeFloatDom failed`);return this}addFloatDomToPosition(e,t){let i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:s,disposableCollection:c}=(0,r.transformComponentKey)(e,this._injector.get(a.ComponentManager)),l=this._injector.get(n.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...e,componentKey:s,unitId:i,subUnitId:o},t);return l?(c.add(l.dispose),{id:l.id,dispose:()=>{c.dispose(),l.dispose()}}):(c.dispose(),null)}addFloatDomToRange(e,t,i,o){let s=this._workbook.getUnitId(),c=this._worksheet.getSheetId(),{key:l,disposableCollection:u}=(0,r.transformComponentKey)(t,this._injector.get(a.ComponentManager)),d=this._injector.get(n.SheetCanvasFloatDomManagerService).addFloatDomToRange(e.getRange(),{...t,componentKey:l,unitId:s,subUnitId:c},i,o);return d?(u.add(d.dispose),{id:d.id,dispose:()=>{u.dispose(),d.dispose()}}):(u.dispose(),null)}addFloatDomToColumnHeader(e,t,i,o){let s=this._workbook.getUnitId(),c=this._worksheet.getSheetId(),{key:l,disposableCollection:u}=(0,r.transformComponentKey)(t,this._injector.get(a.ComponentManager)),d=this._injector.get(n.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(e,{...t,componentKey:l,unitId:s,subUnitId:c},i,o);return d?(u.add(d.dispose),{id:d.id,dispose:()=>{u.dispose(),d.dispose()}}):(u.dispose(),null)}async saveCellImagesAsync(e,t){var r;let i=this._injector.get(n.IBatchSaveImagesService),a=this._fWorkbook.getId(),o=this.getSheetId(),s=t?t.map(e=>e.getRange()):[this._worksheet.getCellMatrix().getDataRange()],c=i.getCellImagesFromRanges(a,o,s);if(c.length===0)return!1;if(c.length===1)try{return await i.downloadSingleImage(c[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let l=[],u=(r=e==null?void 0:e.useCellAddress)==null?!0:r,d=e==null?void 0:e.useColumnIndex;u&&l.push(n.FileNamePart.CELL_ADDRESS),d!==void 0&&l.push(n.FileNamePart.COLUMN_VALUE),l.length===0&&l.push(n.FileNamePart.CELL_ADDRESS);try{return await i.saveImagesWithContext(c,{fileNameParts:l,columnIndex:d},a,o),!0}catch(e){return console.error(`Failed to save images:`,e),!1}}};i.FWorksheet.extend(u);var d=class extends o.FEventName{get BeforeFloatDomAdd(){return`BeforeFloatDomAdd`}get FloatDomAdded(){return`FloatDomAdded`}get BeforeFloatDomUpdate(){return`BeforeFloatDomUpdate`}get FloatDomUpdated(){return`FloatDomUpdated`}get BeforeFloatDomDelete(){return`BeforeFloatDomDelete`}get FloatDomDeleted(){return`FloatDomDeleted`}};o.FEventName.extend(d);var f=class extends o.FUniver{_initialize(e){let n=e.get(s.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>n.beforeCommandExecuted(e=>{if(e.id!==t.InsertSheetDrawingCommand.id)return;let n=e.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=i.filter(e=>e.drawingType===s.DrawingTypeEnum.DRAWING_DOM);if(a.length===0)return;let o={workbook:r,drawings:a};if(this.fireEvent(this.Event.BeforeFloatDomAdd,o),o.cancel)throw new s.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomAdded,()=>n.onCommandExecuted(e=>{if(e.id!==t.InsertSheetDrawingCommand.id)return;let n=e.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=i.filter(e=>e.drawingType===s.DrawingTypeEnum.DRAWING_DOM);if(a.length===0)return;let o={workbook:r,drawings:a};this.fireEvent(this.Event.FloatDomAdded,o)}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomUpdate,()=>n.beforeCommandExecuted(n=>{if(n.id!==t.SetSheetDrawingCommand.id)return;let r=n.params,i=this.getActiveWorkbook();if(i==null||r==null)return;let{drawings:a}=r,o=e.get(c.IDrawingManagerService),l=[];if(a.forEach(e=>{let t=o.getDrawingByParam(e);(t==null?void 0:t.drawingType)===s.DrawingTypeEnum.DRAWING_DOM&&l.push(t)}),l.length===0)return;let u={workbook:i,drawings:l};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,u),u.cancel)throw o.updateNotification(a),new s.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomUpdated,()=>n.onCommandExecuted(n=>{if(n.id!==t.SetSheetDrawingCommand.id)return;let r=n.params,i=this.getActiveWorkbook();if(i==null||r==null)return;let{drawings:a}=r,o=e.get(c.IDrawingManagerService),l=[];if(a.forEach(e=>{let t=o.getDrawingByParam(e);(t==null?void 0:t.drawingType)===s.DrawingTypeEnum.DRAWING_DOM&&l.push(t)}),l.length===0)return;let u={workbook:i,drawings:l};this.fireEvent(this.Event.FloatDomUpdated,u)}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>n.beforeCommandExecuted(n=>{if(n.id!==t.RemoveSheetDrawingCommand.id)return;let r=n.params,i=this.getActiveWorkbook();if(i==null||r==null)return;let a=e.get(c.IDrawingManagerService),{drawings:o}=r,l=o.map(e=>a.getDrawingByParam(e)).filter(e=>(e==null?void 0:e.drawingType)===s.DrawingTypeEnum.DRAWING_DOM);if(l.length===0)return;let u={workbook:i,drawings:l};if(this.fireEvent(this.Event.BeforeFloatDomDelete,u),u.cancel)throw new s.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomDeleted,()=>n.onCommandExecuted(e=>{if(e.id!==t.RemoveSheetDrawingCommand.id)return;let n=e.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a={workbook:r,drawings:i.filter(e=>e.drawingType===s.DrawingTypeEnum.DRAWING_DOM).map(e=>e.drawingId)};this.fireEvent(this.Event.FloatDomDeleted,a)})))}registerURLImageDownloader(e){return this._injector.get(s.IURLImageService).registerURLImageDownloader(e)}};o.FUniver.extend(f);var p=class extends i.FRange{async insertCellImageAsync(e){var t;let r=this._injector.get(l.IRenderManagerService),i=(t=(0,l.getCurrentTypeOfRenderer)(s.UniverInstanceType.UNIVER_SHEET,this._injector.get(s.IUniverInstanceService),r))==null?void 0:t.with(n.SheetDrawingUpdateController);if(!i)return!1;let a={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof e==`string`?i.insertCellImageByUrl(e,a):i.insertCellImageByFile(e,a)}async saveCellImagesAsync(e){var t;let r=this._injector.get(n.IBatchSaveImagesService),i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=this.getRange(),s=r.getCellImagesFromRanges(i,a,[o]);if(s.length===0)return!1;if(s.length===1)try{return await r.downloadSingleImage(s[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let c=[],l=(t=e==null?void 0:e.useCellAddress)==null?!0:t,u=e==null?void 0:e.useColumnIndex;l&&c.push(n.FileNamePart.CELL_ADDRESS),u!==void 0&&c.push(n.FileNamePart.COLUMN_VALUE),c.length===0&&c.push(n.FileNamePart.CELL_ADDRESS);try{return await r.saveImagesWithContext(s,{fileNameParts:c,columnIndex:u},i,a),!0}catch(e){return console.error(`Failed to save images:`,e),!1}}};i.FRange.extend(p)});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/preset-sheets-drawing",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "DreamNum Co., Ltd. <developer@univer.ai>",
|
|
@@ -58,19 +58,19 @@
|
|
|
58
58
|
"rxjs": ">=7.0.0"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@univerjs/docs-drawing": "0.20.
|
|
62
|
-
"@univerjs/drawing": "0.20.
|
|
63
|
-
"@univerjs/drawing-ui": "0.20.
|
|
64
|
-
"@univerjs/sheets-drawing": "0.20.
|
|
65
|
-
"@univerjs/sheets-drawing-ui": "0.20.
|
|
61
|
+
"@univerjs/docs-drawing": "0.20.1",
|
|
62
|
+
"@univerjs/drawing": "0.20.1",
|
|
63
|
+
"@univerjs/drawing-ui": "0.20.1",
|
|
64
|
+
"@univerjs/sheets-drawing": "0.20.1",
|
|
65
|
+
"@univerjs/sheets-drawing-ui": "0.20.1"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"@univerjs/core": "0.20.
|
|
68
|
+
"@univerjs/core": "0.20.1",
|
|
69
69
|
"react": "18.3.1",
|
|
70
70
|
"react-dom": "18.3.1",
|
|
71
71
|
"rxjs": "7.8.2",
|
|
72
72
|
"typescript": "^5.9.3",
|
|
73
|
-
"@univerjs-infra/shared": "0.20.
|
|
73
|
+
"@univerjs-infra/shared": "0.20.1"
|
|
74
74
|
},
|
|
75
75
|
"scripts": {
|
|
76
76
|
"prebuild:preset": "tsx prepare.ts",
|