@univerjs/preset-sheets-drawing 0.16.1 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/umd/index.js +42 -11
- package/lib/umd/locales/ca-ES.js +2 -4
- package/lib/umd/locales/en-US.js +2 -4
- package/lib/umd/locales/es-ES.js +2 -4
- package/lib/umd/locales/fa-IR.js +2 -4
- package/lib/umd/locales/fr-FR.js +2 -4
- package/lib/umd/locales/ja-JP.js +2 -4
- package/lib/umd/locales/ko-KR.js +2 -4
- package/lib/umd/locales/ru-RU.js +2 -4
- package/lib/umd/locales/sk-SK.js +2 -4
- package/lib/umd/locales/vi-VN.js +2 -4
- package/lib/umd/locales/zh-CN.js +2 -4
- package/lib/umd/locales/zh-TW.js +2 -4
- package/package.json +8 -8
package/lib/umd/index.js
CHANGED
|
@@ -1,23 +1,54 @@
|
|
|
1
1
|
// @univerjs/docs-drawing/index
|
|
2
|
-
(function(t
|
|
3
|
-
|
|
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.18.0`;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 _}})});
|
|
4
3
|
|
|
5
4
|
// @univerjs/drawing-ui/index
|
|
6
|
-
(function(y,d){typeof exports=="object"&&typeof module<"u"?d(exports,require("@univerjs/core"),require("@univerjs/drawing"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("react/jsx-runtime"),require("@univerjs/design"),require("react"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/drawing","@univerjs/engine-render","@univerjs/ui","react/jsx-runtime","@univerjs/design","react","rxjs"],d):(y=typeof globalThis<"u"?globalThis:y||self,d(y.UniverDrawingUi={},y.UniverCore,y.UniverDrawing,y.UniverEngineRender,y.UniverUi,y.React,y.UniverDesign,y.React,y.rxjs))})(this,(function(y,d,M,b,H,f,B,_,te){"use strict";var Et=Object.defineProperty;var Tt=(y,d,M)=>d in y?Et(y,d,{enumerable:!0,configurable:!0,writable:!0,value:M}):y[d]=M;var Q=(y,d,M)=>Tt(y,typeof d!="symbol"?d+"":d,M);var Ee;var R=(s=>(s.default="0",s.left="1",s.center="2",s.right="3",s.top="4",s.middle="5",s.bottom="6",s.horizon="7",s.vertical="8",s))(R||{});const pe={id:"sheet.operation.set-image-align",type:d.CommandType.OPERATION,handler:(s,r)=>!0},me={id:"sheet.operation.open-image-crop",type:d.CommandType.OPERATION,handler:(s,r)=>!0},ee={id:"sheet.operation.close-image-crop",type:d.CommandType.OPERATION,handler:(s,r)=>!0};var L=(s=>(s.FREE="0",s.R1_1="1",s.R16_9="2",s.R9_16="3",s.R5_4="4",s.R4_5="5",s.R4_3="6",s.R3_4="7",s.R3_2="8",s.R2_3="9",s))(L||{});const ce={id:"sheet.operation.Auto-image-crop",type:d.CommandType.OPERATION,handler:(s,r)=>!0},De={id:"sheet.operation.image-reset-size",type:d.CommandType.OPERATION,handler:(s,r)=>!0};function Me(s,r,e,t){const n=t.getDrawingByParam(s);if(n==null)return;const i=M.getDrawingShapeKeyByDrawingSearch(s),a=e.getObject(i);if(a&&!(a instanceof b.Group))return;if(a!=null){a.addObject(r);return}const o=new b.Group(i);e.addObject(o,b.DRAWING_OBJECT_LAYER_INDEX).attachTransformerTo(o),o.addObject(r);const{transform:c}=n;c&&o.transformByState({left:c.left,top:c.top,angle:c.angle})}function Oe(s,r){var i;const e=r?s.getUnit(r):s.getFocusedUnit();if(e==null)return;const t=e.getUnitId();let n;return e.type===d.UniverInstanceType.UNIVER_SHEET?n=(i=e.getActiveSheet())==null?void 0:i.getSheetId():(e.type===d.UniverInstanceType.UNIVER_DOC||e.type===d.UniverInstanceType.UNIVER_SLIDE)&&(n=t),{unitId:t,subUnitId:n,current:e}}const Ze="drawing-ui.config",Te={},Ue="COMPONENT_IMAGE_POPUP_MENU";function F({ref:s,...r}){const{icon:e,id:t,className:n,extend:i,...a}=r,o=`univerjs-icon univerjs-icon-${t} ${n||""}`.trim(),c=_.useRef(`_${Ye()}`);return Ne(e,`${t}`,{defIds:e.defIds,idSuffix:c.current},{ref:s,className:o,...a},i)}function Ne(s,r,e,t,n){return _.createElement(s.tag,{key:r,...Fe(s,e,n),...t},(ze(s,e).children||[]).map((i,a)=>Ne(i,`${r}-${s.tag}-${a}`,e,void 0,n)))}function Fe(s,r,e){const t={...s.attrs};e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1),s.tag==="mask"&&t.id&&(t.id=t.id+r.idSuffix),Object.entries(t).forEach(([i,a])=>{i==="mask"&&typeof a=="string"&&(t[i]=a.replace(/url\(#(.*)\)/,`url(#$1${r.idSuffix})`))});const{defIds:n}=r;return!n||n.length===0||(s.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+r.idSuffix),Object.entries(t).forEach(([i,a])=>{typeof a=="string"&&(t[i]=a.replace(/url\(#(.*)\)/,`url(#$1${r.idSuffix})`))})),t}function ze(s,r){var t;const{defIds:e}=r;return!e||e.length===0?s:s.tag==="defs"&&((t=s.children)!=null&&t.length)?{...s,children:s.children.map(n=>typeof n.attrs.id=="string"&&e&&e.includes(n.attrs.id)?{...n,attrs:{...n.attrs,id:n.attrs.id+r.idSuffix}}:n)}:s}function Ye(){return Math.random().toString(36).substring(2,8)}F.displayName="UniverIcon";const Xe={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"}}]},Pe=_.forwardRef(function(r,e){return _.createElement(F,Object.assign({},r,{id:"bottom-icon",ref:e,icon:Xe}))});Pe.displayName="BottomIcon";const qe={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"}}]},Be=_.forwardRef(function(r,e){return _.createElement(F,Object.assign({},r,{id:"create-copy-icon",ref:e,icon:qe}))});Be.displayName="CreateCopyIcon";const Je={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"}}]},Re=_.forwardRef(function(r,e){return _.createElement(F,Object.assign({},r,{id:"group-icon",ref:e,icon:Je}))});Re.displayName="GroupIcon";const Qe={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"}}]},je=_.forwardRef(function(r,e){return _.createElement(F,Object.assign({},r,{id:"more-down-icon",ref:e,icon:Qe}))});je.displayName="MoreDownIcon";const et={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"}}]},Ae=_.forwardRef(function(r,e){return _.createElement(F,Object.assign({},r,{id:"move-down-icon",ref:e,icon:et}))});Ae.displayName="MoveDownIcon";const tt={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"}}]},Le=_.forwardRef(function(r,e){return _.createElement(F,Object.assign({},r,{id:"move-up-icon",ref:e,icon:tt}))});Le.displayName="MoveUpIcon";const rt={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=_.forwardRef(function(r,e){return _.createElement(F,Object.assign({},r,{id:"topmost-icon",ref:e,icon:rt}))});He.displayName="TopmostIcon";const nt={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"}}]},xe=_.forwardRef(function(r,e){return _.createElement(F,Object.assign({},r,{id:"ungroup-icon",ref:e,icon:nt}))});xe.displayName="UngroupIcon";const it={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"}}]},ke=_.forwardRef(function(r,e){return _.createElement(F,Object.assign({},r,{id:"autofill-double-icon",ref:e,icon:it}))});ke.displayName="AutofillDoubleIcon";function $e(s){var m;const{popup:r}=s,e=(m=r==null?void 0:r.extraProps)==null?void 0:m.menuItems;if(!e)return null;const t=H.useDependency(d.ICommandService),n=H.useDependency(d.LocaleService),[i,a]=_.useState(!1),[o,c]=_.useState(!1),u=()=>{c(!0)},l=()=>{c(!1)},g=v=>{a(v)},h=v=>{t.executeCommand(v.commandId,v.commandParams),a(!1)},p=i||o,S=e.filter(v=>!v.disable);return f.jsx("div",{onMouseEnter:u,onMouseLeave:l,children:f.jsx(B.DropdownMenu,{align:"start",items:S.map(v=>({type:"item",children:n.t(v.label),onSelect:()=>h(v)})),open:i,onOpenChange:g,children:f.jsxs("div",{className:B.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",B.borderClassName,{"univer-bg-gray-100 dark:!univer-bg-gray-800":i,"univer-bg-white dark:!univer-bg-gray-900":!i}),children:[f.jsx(ke,{className:"univer-fill-primary-600 univer-text-gray-900 dark:!univer-text-white"}),p&&f.jsx(je,{className:"dark:!univer-text-white"})]})})})}var at=Object.getOwnPropertyDescriptor,st=(s,r,e,t)=>{for(var n=t>1?void 0:t?at(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=a(n)||n);return n},Ge=(s,r)=>(e,t)=>r(e,t,s);let ve=class extends d.Disposable{constructor(s,r){super(),this._componentManager=s,this._commandService=r,this._init()}_initCustomComponents(){const s=this._componentManager;this.disposeWithMe(s.register(Ue,$e))}_initCommands(){[me,ee,De,pe,ce].forEach(s=>this.disposeWithMe(this._commandService.registerCommand(s)))}_init(){this._initCommands(),this._initCustomComponents()}};ve=st([Ge(0,d.Inject(H.ComponentManager)),Ge(1,d.ICommandService)],ve);function le(s,r){const e=[];return s.forEach(t=>{const{oKey:n,left:i,top:a,height:o,width:c,angle:u}=t,l=r.getDrawingOKey(n);if(l==null)return e.push(null),!0;const{unitId:g,subUnitId:h,drawingId:p,drawingType:S}=l,m={unitId:g,subUnitId:h,drawingId:p,drawingType:S,transform:{left:i,top:a,height:o,width:c,angle:u}};S===d.DrawingTypeEnum.DRAWING_IMAGE&&(m.srcRect=t.srcRect),e.push(m)}),e}var ot=Object.getOwnPropertyDescriptor,ct=(s,r,e,t)=>{for(var n=t>1?void 0:t?ot(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=a(n)||n);return n},we=(s,r)=>(e,t)=>r(e,t,s);let Se=class extends d.Disposable{constructor(r,e,t,n){super();Q(this,"_sceneListenerOnDrawingMap",new WeakSet);this._currentUniverService=r,this._commandService=e,this._renderManagerService=t,this._drawingManagerService=n,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(){const r=this._drawingManagerService.drawingManagerData,e=Oe(this._currentUniverService);if(e==null)return;const{unitId:t,subUnitId:n}=e;Object.keys(r).forEach(i=>{Object.keys(r[i]).forEach(a=>{const o=r[i][a].data;o==null||i!==t||a!==n||Object.keys(o).forEach(c=>{o[c]&&this._insertDrawing([{unitId:i,subUnitId:a,drawingId:c}])})})})}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===pe.id){const e=r.params;if(e==null)return;this._drawingAlign(e)}}))}_drawingGroupListener(){this.disposeWithMe(this._drawingManagerService.group$.subscribe(r=>{this._groupDrawings(r)})),this.disposeWithMe(this._drawingManagerService.ungroup$.subscribe(r=>{this._ungroupDrawings(r)}))}_getSceneAndTransformerByDrawingSearch(r){if(r==null)return;const e=this._renderManagerService.getRenderById(r),t=e==null?void 0:e.scene;if(t==null)return null;const n=t.getTransformerByCreate();return{scene:t,transformer:n}}_groupDrawings(r){r.forEach(e=>{this._groupDrawing(e)})}_groupDrawing(r){const{parent:e,children:t}=r,{unitId:n,subUnitId:i,drawingId:a}=e,o=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(o==null)return;const{scene:c,transformer:u}=o;this._commandService.syncExecuteCommand(ee.id);const l=[];if(t.forEach(p=>{const S=M.getDrawingShapeKeyByDrawingSearch(p),m=c.getObjectIncludeInGroup(S);if(m==null||l.includes(m))return;l.push(m);const{transform:v}=p;v!=null&&(m.classType===b.RENDER_CLASS_TYPE.GROUP?m.transformByState({left:v.left,top:v.top}):m.transformByState(v))}),l.length===0)return;const g=M.getDrawingShapeKeyByDrawingSearch({unitId:n,subUnitId:i,drawingId:a}),h=new b.Group(g);c.addObject(h,b.DRAWING_OBJECT_LAYER_INDEX).attachTransformerTo(h),h.addObjects(...l),e.transform&&h.transformByState({left:e.transform.left,top:e.transform.top}),u.clearSelectedObjects(),u.setSelectedControl(h)}_ungroupDrawings(r){r.forEach(e=>{this._ungroupDrawing(e)})}_ungroupDrawing(r){const{parent:e,children:t}=r,n=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(n==null)return;const{scene:i,transformer:a}=n;t.forEach(g=>{const h=M.getDrawingShapeKeyByDrawingSearch(g),p=i.getObjectIncludeInGroup(h);if(p==null)return!0;if(p==null)return;const{transform:S}=g;S!=null&&(p.classType===b.RENDER_CLASS_TYPE.GROUP?p.transformByState({left:S.left,top:S.top}):p.transformByState(S))});const o=M.getDrawingShapeKeyByDrawingSearch(e),c=i.getObject(o),{width:u,height:l}=c;c.getObjects().forEach(g=>{c.removeSelfObjectAndTransform(g.oKey,u,l)}),c.dispose(),a.clearSelectedObjects()}_drawingAlign(r){const{alignType:e}=r,t=this._drawingManagerService.getFocusDrawings();if(e===R.default)return;const n=[];let i=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=0;t.forEach(l=>{const{unitId:g,subUnitId:h,drawingId:p,drawingType:S}=l,m=this._drawingManagerService.getDrawingByParam({unitId:g,subUnitId:h,drawingId:p});if(m==null||m.transform==null)return;n.push({unitId:g,subUnitId:h,drawingId:p,drawingType:S,transform:m.transform});const{left:v=0,top:C=0,width:I=0,height:O=0}=m.transform;i=Math.min(i,v),a=Math.min(a,C),o=Math.max(o,v+I),c=Math.max(c,C+O),u++}),u!==0&&(this._sortDrawingTransform(n,e),this._applyAlignType(n,e,i,a,o,c,u))}_applyAlignType(r,e,t,n,i,a,o){const c=Math.round((i-t)/o*10)/10,u=Math.round((a-n)/o*10)/10,l=[],g=this._getSceneAndTransformerByDrawingSearch(r[0].unitId);if(g==null)return;const{scene:h,transformer:p}=g;r.forEach((S,m)=>{const{unitId:v,subUnitId:C,drawingId:I,transform:O,drawingType:N}=S,{left:j=0,top:D=0,width:T=0,height:E=0}=O;let P=j,U=D;switch(e){case R.left:P=t;break;case R.center:P=t+(i-t)/2-T/2;break;case R.right:P=i-T;break;case R.top:U=n;break;case R.middle:U=n+(a-n)/2-E/2;break;case R.bottom:U=a-E;break;case R.horizon:P=t+c*m;break;case R.vertical:U=n+u*m;break}(P!==j||U!==D)&&l.push({unitId:v,subUnitId:C,drawingId:I,drawingType:N,transform:{left:P,top:U}})}),this._drawingManagerService.featurePluginUpdateNotification(l),p.refreshControls().changeNotification()}_sortDrawingTransform(r,e){r.sort((t,n)=>{const i=t.transform,a=n.transform,{left:o=0,top:c=0,width:u=0,height:l=0}=i,{left:g=0,top:h=0,width:p=0,height:S=0}=a;switch(e){case R.left:return o-g;case R.center:return o+u/2-(g+p/2);case R.right:return o+u-(g+p);case R.top:return c-h;case R.middle:return c+l/2-(h+S/2);case R.bottom:return c+l-(h+S);case R.horizon:return o+u/2-(g+p/2);case R.vertical:return c+l/2-(h+S/2);default:return 0}})}_drawingArrangeListener(){this.disposeWithMe(this._drawingManagerService.order$.subscribe(r=>{this._drawingArrange(r)}))}_drawingArrange(r){const{unitId:e,subUnitId:t,drawingIds:n}=r,i=this._getSceneAndTransformerByDrawingSearch(e);if(i==null)return;const{scene:a}=i;n.forEach(o=>{const c=M.getDrawingShapeKeyByDrawingSearch({unitId:e,subUnitId:t,drawingId:o}),u=a.fuzzyMathObjects(c,!0);if(u==null||u.length===0)return;const l=this._drawingManagerService.getDrawingOrder(e,t).indexOf(o);for(const g of u)g.setProps({zIndex:l}),g.makeDirty()})}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(r=>{this._insertDrawing(r)}))}_insertDrawing(r){const e=[];r.forEach(t=>{const{unitId:n}=t;if(this._drawingManagerService.getDrawingByParam(t)==null)return;const a=this._getSceneAndTransformerByDrawingSearch(n);if(a==null)return;const{scene:o}=a;e.includes(o)||e.push(o)}),e.forEach(t=>{this._sceneListenerOnDrawingMap.has(t)||(this._addListenerOnDrawing(t),this._sceneListenerOnDrawingMap.add(t))})}_drawingRemoveListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(r=>{r.forEach(e=>{var l;const{unitId:t,subUnitId:n,drawingId:i}=e,a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;const{scene:o}=a,c=M.getDrawingShapeKeyByDrawingSearch({unitId:t,subUnitId:n,drawingId:i}),u=o.fuzzyMathObjects(c,!0);if(u.length>0){for(const g of u)g.dispose();(l=o.getTransformer())==null||l.clearSelectedObjects()}})}))}_drawingUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(r=>{r.forEach(e=>{var T;const{unitId:t,subUnitId:n,drawingId:i}=e,a=this._drawingManagerService.getDrawingByParam(e);if(a==null)return;const{transform:o,drawingType:c}=a,u=this._getSceneAndTransformerByDrawingSearch(t);if(u==null)return;const{scene:l,transformer:g}=u;if(o==null)return!0;const{left:h=0,top:p=0,width:S=0,height:m=0,angle:v=0,flipX:C=!1,flipY:I=!1,skewX:O=0,skewY:N=0}=o,j=M.getDrawingShapeKeyByDrawingSearch({unitId:t,subUnitId:n,drawingId:i}),D=l.getObject(j);if(D==null)return!0;D.transformByState({left:h,top:p,width:S,height:m,angle:v,flipX:C,flipY:I,skewX:O,skewY:N}),(T=l.getTransformer())==null||T.debounceRefreshControls()})}))}_drawingRefreshListener(){this.disposeWithMe(this._drawingManagerService.refreshTransform$.subscribe(r=>{r.forEach(e=>{const{unitId:t,subUnitId:n,drawingId:i}=e,a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;const o=this._drawingManagerService.getDrawingByParam(e);if(o==null)return;const{transform:c}=o,{scene:u}=a,l=M.getDrawingShapeKeyByDrawingSearch({unitId:t,subUnitId:n,drawingId:i}),g=u.getObject(l);if(g==null||c==null)return!0;const{left:h=0,top:p=0,width:S=0,height:m=0,angle:v=0,flipX:C=!1,flipY:I=!1,skewX:O=0,skewY:N=0}=c;g.transformByState({left:h,top:p,width:S,height:m,angle:v,flipX:C,flipY:I,skewX:O,skewY:N})})}))}_drawingVisibleListener(){this.disposeWithMe(this._drawingManagerService.visible$.subscribe(r=>{r.forEach(e=>{const{unitId:t,subUnitId:n,drawingId:i,visible:a}=e,o=this._getSceneAndTransformerByDrawingSearch(t);if(o==null)return;const{scene:c}=o,u=M.getDrawingShapeKeyByDrawingSearch({unitId:t,subUnitId:n,drawingId:i}),l=c.getObject(u);if(l==null)return!0;a?l.show():l.hide()})}))}_filterUpdateParams(r,e){return r.filter((t,n)=>{if(t==null)return!1;const{transform:i}=t;return d.checkIfMove(i,e==null?void 0:e[n])})}_addListenerOnDrawing(r){const e=r.getTransformerByCreate();let t=null;this.disposeWithMe(d.toDisposable(e.changeStart$.subscribe(n=>{const{objects:i}=n,a=Array.from(i.values()),o=[];t=a.map(c=>{const{left:u,top:l,height:g,width:h,angle:p,oKey:S,isInGroup:m}=c,v=this._drawingManagerService.getDrawingOKey(S);if(m||c instanceof b.Group){let C=c.ancestorGroup;if(C==null&&c instanceof b.Group&&(C=c),C==null)return null;const I=this._drawingManagerService.getDrawingOKey(C.oKey);if(I){const{unitId:O,subUnitId:N,drawingId:j}=I;o.push({unitId:O,subUnitId:N,drawingId:j});const{left:D,top:T,height:E,width:P,angle:U}=C;return{left:D,top:T,height:E,width:P,angle:U}}}else if(v!=null){const{unitId:C,subUnitId:I,drawingId:O}=v;return o.push({unitId:C,subUnitId:I,drawingId:O}),{left:u,top:l,height:g,width:h,angle:p}}return null}).filter(c=>c!=null),o.length>0?this._commandService.syncExecuteCommand(M.SetDrawingSelectedOperation.id,o):this._commandService.syncExecuteCommand(M.SetDrawingSelectedOperation.id,[])}))),this.disposeWithMe(d.toDisposable(e.changeEnd$.subscribe(n=>{const{objects:i}=n,a=this._filterUpdateParams(le(i,this._drawingManagerService),t);a.length>0&&this._drawingManagerService.featurePluginUpdateNotification(a)})))}};Se=ct([we(0,d.IUniverInstanceService),we(1,d.ICommandService),we(2,b.IRenderManagerService),we(3,M.IDrawingManagerService)],Se);class ue extends b.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);Q(this,"_srcRect");Q(this,"_prstGeom");Q(this,"_applyTransform");Q(this,"_dragPadding",8);Q(this,"_cacheCanvas");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){const 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){const 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 c,u;const n=this.getScene().getEngine(),{width:i,height:a}=n;this._initialCacheCanvas(),(c=this._cacheCanvas)==null||c.clear();const o=(u=this._cacheCanvas)==null?void 0:u.getContext();o!=null&&(o.save(),b.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=0;if(this._prstGeom!=null&&(t=1),e.globalCompositeOperation="destination-out",e.beginPath(),t===0){const n=this.transform.getMatrix();e.transform(n[0],n[1],n[2],n[3],n[4],n[5]),e.rect(0,0,this.width,this.height),e.fill()}}_applyProps(){if(this._applyTransform==null)return;let e=0,t=0,n=0,i=0;const{left:a=0,top:o=0,width:c=0,height:u=0,angle:l}=this._applyTransform;if(this._srcRect!=null){const{left:p=0,top:S=0,right:m=0,bottom:v=0}=this._srcRect;e=p,t=S,n=m,i=v}const g=a+e,h=o+t;this.transformByState({left:g,top:h,width:a+c-n-g,height:o+u-i-h,angle:l})}_applyCache(e){if(!e||this._cacheCanvas==null)return;const 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;const e=this.getScene();if(e==null)return;this._cacheCanvas=new b.Canvas;const t=e.getEngine();this._cacheCanvas.setSize(t.width,t.height),t.onTransformChange$.subscribeEvent(()=>{var n;(n=this._cacheCanvas)==null||n.setSize(t.width,t.height),this.makeDirty(!0)})}}var lt=Object.getOwnPropertyDescriptor,ut=(s,r,e,t)=>{for(var n=t>1?void 0:t?lt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=a(n)||n);return n},se=(s,r)=>(e,t)=>r(e,t,s);let _e=class extends d.Disposable{constructor(r,e,t,n,i,a){super();Q(this,"_sceneListenerOnImageMap",new WeakSet);this._commandService=r,this._drawingManagerService=e,this._renderManagerService=t,this._univerInstanceService=n,this._messageService=i,this._localeService=a,this._init()}_init(){this._initOpenCrop(),this._initCloseCrop(),this._initAutoCrop()}_initAutoCrop(){this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id!==ce.id)return;const e=r.params;if(e==null)return;const{cropType:t}=e,n=this._drawingManagerService.getFocusDrawings();if(n.length!==1)return;const i=n[0],{unitId:a,subUnitId:o,drawingId:c}=i,u=this._renderManagerService.getRenderById(a),l=u==null?void 0:u.scene;if(l==null)return!0;this._searchCropObject(l)!=null&&this._commandService.syncExecuteCommand(ee.id,{isAuto:!0});const h=M.getDrawingShapeKeyByDrawingSearch({unitId:a,subUnitId:o,drawingId:c}),p=l.getObject(h);if(!(p instanceof b.Image)){this._messageService.show({type:B.MessageType.Error,content:this._localeService.t("image-cropper.error")});return}p!=null&&(this._updateCropperObject(t,p),this._commandService.executeCommand(me.id,{unitId:a,subUnitId:o,drawingId:c}))}))}_calculateSrcRectByRatio(r,e,t,n,i,a){const o=t/n,c=i/a;let u=t,l=n;o>c?u=n*c:l=t/c;const g=(t-u)/2,h=(n-l)/2;return{left:b.precisionTo(g,1),top:b.precisionTo(h,1),right:b.precisionTo(t-(g+u),1),bottom:b.precisionTo(n-(h+l),1)}}_updateCropperObject(r,e){const{left:t,top:n,width:i,height:a}=e.calculateTransformWithSrcRect();let o;switch(r){case L.R1_1:o=this._calculateSrcRectByRatio(t,n,i,a,1,1);break;case L.R16_9:o=this._calculateSrcRectByRatio(t,n,i,a,16,9);break;case L.R9_16:o=this._calculateSrcRectByRatio(t,n,i,a,9,16);break;case L.R5_4:o=this._calculateSrcRectByRatio(t,n,i,a,5,4);break;case L.R4_5:o=this._calculateSrcRectByRatio(t,n,i,a,4,5);break;case L.R4_3:o=this._calculateSrcRectByRatio(t,n,i,a,4,3);break;case L.R3_4:o=this._calculateSrcRectByRatio(t,n,i,a,3,4);break;case L.R3_2:o=this._calculateSrcRectByRatio(t,n,i,a,3,2);break;case L.R2_3:o=this._calculateSrcRectByRatio(t,n,i,a,2,3);break;case L.FREE:}if(o==null)return;e.setSrcRect(o);const{left:c=0,top:u=0,bottom:l=0,right:g=0}=o;e.transformByStateCloseCropper({left:t+c,top:n+u,width:i-g-c,height:a-l-u})}_initOpenCrop(){this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id!==me.id)return;const e=r.params;if(e==null)return;const{unitId:t,subUnitId:n,drawingId:i}=e,a=this._renderManagerService.getRenderById(t),o=a==null?void 0:a.scene;if(o==null)return!0;if(this._sceneListenerOnImageMap.has(o)||(this._addListenerOnImage(o),this._sceneListenerOnImageMap.add(o)),this._drawingManagerService.getDrawingByParam({unitId:t,subUnitId:n,drawingId:i})==null)return;const u=M.getDrawingShapeKeyByDrawingSearch({unitId:t,subUnitId:n,drawingId:i}),l=o.getObject(u);if(l==null)return;if(!(l instanceof b.Image)){this._messageService.show({type:B.MessageType.Error,content:this._localeService.t("image-cropper.error")});return}const g=o.getTransformer();g==null||g.clearControls();const h=new ue(`${u}-crop`,{srcRect:l.srcRect,prstGeom:l.prstGeom,applyTransform:l.calculateTransformWithSrcRect()});o.addObject(h,l.getLayerIndex()+1).attachTransformerTo(h),g==null||g.createControlForCopper(h),this._addHoverForImageCopper(h),l.openRenderByCropper(),g==null||g.refreshControls(),h.makeDirty(!0),this._commandService.syncExecuteCommand(M.SetDrawingSelectedOperation.id,[{unitId:t,subUnitId:n,drawingId:i}])}))}_searchCropObject(r){const e=r.getAllObjectsByOrder();for(const t of e)if(t instanceof ue)return t}_initCloseCrop(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==ee.id)return;const t=this._univerInstanceService.getFocusedUnit();if(t==null)return;const n=t.getUnitId(),i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(a==null)return!0;const o=this._searchCropObject(a);if(o==null)return;const c=this._getApplyObjectByCropObject(o);if(c==null)return;const u=a.getTransformerByCreate();u.detachFrom(o),u.clearCopperControl();const l=this._getSrcRectByTransformState(c,o),g=this._drawingManagerService.getDrawingOKey(c.oKey);if(g!=null){const{left:h,top:p,height:S,width:m}=o;this._drawingManagerService.featurePluginUpdateNotification([{...g,transform:{...g.transform,left:h,top:p,height:S,width:m},srcRect:l.srcRectAngle}])}c.setSrcRect({...l.srcRectAngle}),c.closeRenderByCropper(),c.makeDirty(!0),o==null||o.dispose()}));const r=this._univerInstanceService.getCurrentTypeOfUnit$(d.UniverInstanceType.UNIVER_SHEET).pipe(te.switchMap(e=>e?e.activeSheet$:te.of(null)));this.disposeWithMe(r.subscribe(()=>{this._commandService.syncExecuteCommand(ee.id)}))}_getApplyObjectByCropObject(r){const e=r.oKey,t=e.slice(0,e.length-5),n=r.getScene();if(!n)return null;const i=n.getObject(t);return i==null?null:i}_addListenerOnImage(r){const e=r.getTransformerByCreate();let t=null;this.disposeWithMe(e.changeStart$.subscribe(n=>{const{objects:i}=n,a=i.values().next().value;if(a==null||!(a instanceof ue))return;const{left:o,top:c,height:u,width:l,angle:g}=a;t={left:o,top:c,height:u,width:l,angle:g},e.clearCopperControl()})),this.disposeWithMe(e.changeEnd$.subscribe(n=>{const{objects:i}=n,a=i.values().next().value;if(a==null||!(a instanceof ue))return;const{left:o,top:c,height:u,width:l,angle:g}=a;if(!d.checkIfMove({left:o,top:c,height:u,width:l,angle:g},t))return;const h=this._getApplyObjectByCropObject(a);if(h==null)return;const p=this._getSrcRectByTransformState(h,a);a.refreshSrcRect(p.srcRect,h.getState()),e.createControlForCopper(a)})),this._endCropListener(r)}_addHoverForImageCopper(r){this.disposeWithMe(r.onPointerEnter$.subscribeEvent(()=>{r.cursor=b.CURSOR_TYPE.MOVE})),this.disposeWithMe(r.onPointerLeave$.subscribeEvent(()=>{r.cursor=b.CURSOR_TYPE.DEFAULT}))}_endCropListener(r){const e=r.getTransformerByCreate();this.disposeWithMe(e.clearControl$.subscribe(t=>{t===!0&&this._commandService.syncExecuteCommand(ee.id)}))}_getSrcRectByTransformState(r,e){const{left:t,top:n,height:i,width:a,strokeWidth:o,angle:c}=e,{left:u,top:l,width:g,height:h,angle:p,strokeWidth:S}=r,m=t-u,v=n-l,C={left:m,top:v,right:g-m-a,bottom:h-v-i},I={...C};if(p!==0){const O=t+a/2,N=n+i/2,j=new b.Vector2(O,N),D=g/2+u,T=h/2+l,E=new b.Vector2(D,T),P=new b.Vector2(u,l);P.rotateByPoint(b.degToRad(p),E);const U=P.clone();U.rotateByPoint(b.degToRad(-p),j);const $=t-U.x,x=n-U.y;I.left=$,I.top=x,I.right=g-$-a,I.bottom=h-x-i}return{srcRect:C,srcRectAngle:I}}};_e=ut([se(0,d.ICommandService),se(1,M.IDrawingManagerService),se(2,b.IRenderManagerService),se(3,d.IUniverInstanceService),se(4,H.IMessageService),se(5,d.Inject(d.LocaleService))],_e);var gt=Object.getOwnPropertyDescriptor,dt=(s,r,e,t)=>{for(var n=t>1?void 0:t?gt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=a(n)||n);return n},ge=(s,r)=>(e,t)=>r(e,t,s);y.DrawingRenderService=class{constructor(r,e,t,n,i){this._drawingManagerService=r,this._imageIoService=e,this._galleryService=t,this._urlImageService=n,this._univerInstanceService=i}async renderImages(r,e){const{transform:t,drawingType:n,source:i,imageSourceType:a,srcRect:o,prstGeom:c,groupId:u,unitId:l,subUnitId:g,drawingId:h,isMultiTransform:p,transforms:S}=r;if(n!==d.DrawingTypeEnum.DRAWING_IMAGE||!this._drawingManagerService.getDrawingVisible()||this._univerInstanceService.getUnitType(l)===d.UniverInstanceType.UNIVER_SHEET&&g!==this._getActiveSheetId()||t==null)return;const m=p&&S?S:[t],v=[];for(const C of m){const{left:I,top:O,width:N,height:j,angle:D,flipX:T,flipY:E,skewX:P,skewY:U}=C,$=m.indexOf(C),x=M.getDrawingShapeKeyByDrawingSearch({unitId:l,subUnitId:g,drawingId:h},p?$:void 0),V=e.getObject(x);if(V!=null){V.transformByState({left:I,top:O,width:N,height:j,angle:D,flipX:T,flipY:E,skewX:P,skewY:U});continue}const Y=this._drawingManagerService.getDrawingOrder(l,g),oe=Y.indexOf(h),X={...C,zIndex:oe===-1?Y.length-1:oe},ne=this._imageIoService.getImageSourceCache(i,a);let ie=!1;if(ne!=null)X.image=ne;else if(a===M.ImageSourceType.UUID)try{X.url=await this._imageIoService.getImage(i)}catch(de){console.error(de);continue}else if(a===M.ImageSourceType.URL){try{X.url=await this._urlImageService.getImage(i)}catch(de){console.error(de),X.url=i}ie=!0}else X.url=i,ie=!0;if(e.getObject(x))continue;X.printable=!0;const q=new b.Image(x,X);ie&&this._imageIoService.addImageSourceCache(i,a,q.getNative()),e.addObject(q,b.DRAWING_OBJECT_LAYER_INDEX),this._drawingManagerService.getDrawingEditable()&&e.attachTransformerTo(q),u&&Me({drawingId:u,unitId:l,subUnitId:g},q,e,this._drawingManagerService),c!=null&&q.setPrstGeom(c),o!=null&&q.setSrcRect(o),v.push(q)}return v}_getActiveSheetId(){var r,e;return(e=(r=this._univerInstanceService.getCurrentUnitOfType(d.UniverInstanceType.UNIVER_SHEET))==null?void 0:r.getActiveSheet())==null?void 0:e.getSheetId()}renderFloatDom(r,e){const{transform:t,drawingType:n,groupId:i,unitId:a,subUnitId:o,drawingId:c,isMultiTransform:u,transforms:l}=r;if(n!==d.DrawingTypeEnum.DRAWING_DOM||!this._drawingManagerService.getDrawingVisible()||t==null)return;const g=u&&l?l:[t],h=[];for(const p of g){const{left:S,top:m,width:v,height:C,angle:I,flipX:O,flipY:N,skewX:j,skewY:D}=p,T=g.indexOf(p),E=M.getDrawingShapeKeyByDrawingSearch({unitId:a,subUnitId:o,drawingId:c},u?T:void 0),P=e.getObject(E);if(P!=null){P.transformByState({left:S,top:m,width:v,height:C,angle:I,flipX:O,flipY:N,skewX:j,skewY:D});continue}const U=this._drawingManagerService.getDrawingOrder(a,o),$=U.indexOf(c),x={...p,zIndex:$===-1?U.length-1:$};if(e.getObject(E))continue;x.printable=!1;const V=new b.Rect(E,x);this._drawingManagerService.getDrawingVisible()&&(e.addObject(V,b.DRAWING_OBJECT_LAYER_INDEX),this._drawingManagerService.getDrawingEditable()&&r.allowTransform!==!1&&e.attachTransformerTo(V),i&&Me({drawingId:i,unitId:a,subUnitId:o},V,e,this._drawingManagerService),h.push(V))}return h}renderDrawing(r,e){const t=this._drawingManagerService.getDrawingByParam(r);if(t!=null&&t.drawingType===d.DrawingTypeEnum.DRAWING_IMAGE)return this.renderImages(t,e)}previewImage(r,e,t,n){this._galleryService.open({images:[e],onOpenChange:i=>{i||this._galleryService.close()}})}_adjustImageSize(r,e,t,n){if(r<=t&&e<=n)return{width:r,height:e};const i=t/r,a=n/e,o=Math.min(i,a);return{width:Math.floor(r*o),height:Math.floor(e*o)}}},y.DrawingRenderService=dt([ge(0,M.IDrawingManagerService),ge(1,M.IImageIoService),ge(2,H.IGalleryService),ge(3,d.IURLImageService),ge(4,d.IUniverInstanceService)],y.DrawingRenderService);var ht=Object.getOwnPropertyDescriptor,ft=(s,r,e,t)=>{for(var n=t>1?void 0:t?ht(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=a(n)||n);return n},re=(s,r)=>(e,t)=>r(e,t,s);let Ce=class extends d.Disposable{constructor(s,r,e,t,n,i,a){super(),this._commandService=s,this._renderManagerService=r,this._drawingManagerService=e,this._dialogService=t,this._imageIoService=n,this._currentUniverService=i,this._drawingRenderService=a,this._initialize()}dispose(){super.dispose()}_initialize(){this._drawingAddListener(),this._commandExecutedListener(),this._imageUpdateListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(s=>{if(s.id===De.id){const r=s.params;if(r==null)return;this._resetImageSize(r)}}))}_getSceneAndTransformerByDrawingSearch(s){if(s==null)return;const r=this._renderManagerService.getRenderById(s),e=r==null?void 0:r.scene;if(e==null)return null;const t=e.getTransformerByCreate();return{scene:e,transformer:t}}_resetImageSize(s){const r=[],e=[];s.forEach(t=>{const{unitId:n,subUnitId:i,drawingId:a}=t,o=this._getSceneAndTransformerByDrawingSearch(n);if(o==null)return;const{scene:c}=o,u=M.getDrawingShapeKeyByDrawingSearch({unitId:n,subUnitId:i,drawingId:a}),l=c.getObject(u);if(l==null)return!0;const g=this._drawingManagerService.getDrawingByParam(t);if(g==null)return!0;if(g.drawingType!==d.DrawingTypeEnum.DRAWING_IMAGE)return;l.resetSize();const{width:h,height:p}=l.getNativeSize();e.includes(c)===!1&&e.push(c),r.push({...g,transform:{...g.transform,height:p,width:h,angle:0},srcRect:null,prstGeom:null})}),this._drawingManagerService.featurePluginUpdateNotification(r),e.forEach(t=>{t.getTransformerByCreate().refreshControls().changeNotification()}),this._commandService.syncExecuteCommand(M.SetDrawingSelectedOperation.id,s)}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.pipe(te.bufferTime(33),te.filter(s=>s.length>0),te.map(s=>s.flat()),te.map(s=>{const r=new Map;for(const e of s)r.set(`${e.unitId}|${e.subUnitId}|${e.drawingId}`,e);return[...r.values()]}),te.filter(s=>s.length>0)).subscribe(s=>{this._insertImages(s)}))}_insertImages(s){s.forEach(async r=>{var c;const{unitId:e,subUnitId:t}=r,n=this._getSceneAndTransformerByDrawingSearch(e),i=(c=Oe(this._currentUniverService,e))==null?void 0:c.subUnitId;if(n==null||i!==t)return;const a=this._drawingManagerService.getDrawingByParam(r);if(a==null)return;const o=await this._drawingRenderService.renderImages(a,n.scene);if(this._drawingManagerService.refreshTransform([a]),!(o==null||o.length===0))for(const u of o)this._addHoverForImage(u),this._addDialogForImage(u)})}_imageUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(s=>{s.forEach(r=>{const{unitId:e,subUnitId:t,drawingId:n}=r,i=this._drawingManagerService.getDrawingByParam(r);if(i==null)return;const{transform:a,drawingType:o,srcRect:c,prstGeom:u,source:l,imageSourceType:g}=i;if(o!==d.DrawingTypeEnum.DRAWING_IMAGE)return;const h=this._getSceneAndTransformerByDrawingSearch(e);if(h==null)return;const{scene:p,transformer:S}=h;if(a==null)return!0;const m=M.getDrawingShapeKeyByDrawingSearch({unitId:e,subUnitId:t,drawingId:n}),v=p.getObject(m);if(v==null)return!0;v.setSrcRect(c),v.setPrstGeom(u),l!=null&&l.length>0&&(g===d.ImageSourceType.BASE64||g===d.ImageSourceType.URL)&&v.changeSource(l)})}))}_addHoverForImage(s){this.disposeWithMe(d.toDisposable(s.onPointerEnter$.subscribeEvent(()=>{s.cursor=b.CURSOR_TYPE.GRAB}))),this.disposeWithMe(d.toDisposable(s.onPointerLeave$.subscribeEvent(()=>{s.cursor=b.CURSOR_TYPE.DEFAULT})))}_addDialogForImage(s){this.disposeWithMe(d.toDisposable(s.onDblclick$.subscribeEvent(()=>{const r=`${s.oKey}-viewer-dialog`;this._drawingRenderService.previewImage(r,s.getNative().src,s.getNativeSize().width,s.getNativeSize().height)})))}};Ce=ft([re(0,d.ICommandService),re(1,b.IRenderManagerService),re(2,M.IDrawingManagerService),re(3,H.IDialogService),re(4,M.IImageIoService),re(5,d.IUniverInstanceService),re(6,d.Inject(y.DrawingRenderService))],Ce);var pt=Object.getOwnPropertyDescriptor,mt=(s,r,e,t)=>{for(var n=t>1?void 0:t?pt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=a(n)||n);return n},Ve=(s,r)=>(e,t)=>r(e,t,s);const vt="UNIVER_DRAWING_UI_PLUGIN";y.UniverDrawingUIPlugin=(Ee=class extends d.Plugin{constructor(r=Te,e,t){super(),this._config=r,this._injector=e,this._configService=t;const{menu:n,...i}=d.merge({},Te,this._config);n&&this._configService.setConfig("menu",n,{merge:!0}),this._configService.setConfig(Ze,i)}onStarting(){this._initDependencies()}onRendered(){this._injector.get(Se),this._injector.get(ve),this._injector.get(_e),this._injector.get(Ce)}_initDependencies(){[[y.DrawingRenderService],[Se],[ve],[_e],[Ce]].forEach(e=>this._injector.add(e))}},Q(Ee,"pluginName",vt),Ee),y.UniverDrawingUIPlugin=mt([Ve(1,d.Inject(d.Injector)),Ve(2,d.IConfigService)],y.UniverDrawingUIPlugin);const wt=s=>{const r=H.useDependency(d.ICommandService),e=H.useDependency(d.LocaleService),{alignShow:t}=s,[n,i]=_.useState(R.default),a=[{label:e.t("image-panel.align.default"),value:R.default},{options:[{label:e.t("image-panel.align.left"),value:R.left},{label:e.t("image-panel.align.center"),value:R.center},{label:e.t("image-panel.align.right"),value:R.right}]},{options:[{label:e.t("image-panel.align.top"),value:R.top},{label:e.t("image-panel.align.middle"),value:R.middle},{label:e.t("image-panel.align.bottom"),value:R.bottom}]},{options:[{label:e.t("image-panel.align.horizon"),value:R.horizon},{label:e.t("image-panel.align.vertical"),value:R.vertical}]}];function o(c){i(c),r.executeCommand(pe.id,{alignType:c})}return f.jsxs("div",{className:B.clsx("univer-relative univer-w-full",{"univer-hidden":!t}),children:[f.jsx("header",{className:"univer-text-gray-600 dark:!univer-text-gray-200",children:f.jsx("div",{children:e.t("image-panel.align.title")})}),f.jsx("div",{className:"univer-relative univer-mt-2.5 univer-flex univer-h-full",children:f.jsx("div",{className:"univer-w-full univer-text-gray-900 dark:!univer-text-white",children:f.jsx(B.Select,{value:n,options:a,onChange:o})})})]})},St=s=>{const{arrangeShow:r,drawings:e}=s,t=H.useDependency(d.LocaleService),n=H.useDependency(M.IDrawingManagerService),[i,a]=_.useState(e);_.useEffect(()=>{const c=n.focus$.subscribe(u=>{a(u)});return()=>{c.unsubscribe()}},[]);const o=c=>{const u=i[0].unitId,l=i[0].subUnitId,g=i.map(h=>h.drawingId);n.featurePluginOrderUpdateNotification({unitId:u,subUnitId:l,drawingIds:g,arrangeType:c})};return f.jsxs("div",{className:B.clsx("univer-grid univer-gap-2 univer-py-2 univer-text-gray-400",{"univer-hidden":!r}),children:[f.jsx("header",{className:"univer-text-gray-600 dark:!univer-text-gray-200",children:f.jsx("div",{children:t.t("image-panel.arrange.title")})}),f.jsxs("div",{className:"univer-grid univer-grid-cols-2 univer-gap-2",children:[f.jsxs(B.Button,{onClick:()=>{o(d.ArrangeTypeEnum.forward)},children:[f.jsx(Le,{}),t.t("image-panel.arrange.forward")]}),f.jsxs(B.Button,{onClick:()=>{o(d.ArrangeTypeEnum.backward)},children:[f.jsx(Ae,{}),t.t("image-panel.arrange.backward")]}),f.jsxs(B.Button,{onClick:()=>{o(d.ArrangeTypeEnum.front)},children:[f.jsx(He,{}),t.t("image-panel.arrange.front")]}),f.jsxs(B.Button,{onClick:()=>{o(d.ArrangeTypeEnum.back)},children:[f.jsx(Pe,{}),t.t("image-panel.arrange.back")]})]})]})},_t=s=>{const r=H.useDependency(d.LocaleService),e=H.useDependency(b.IRenderManagerService),t=H.useDependency(M.IDrawingManagerService),{hasGroup:n,drawings:i}=s,[a,o]=_.useState(!1),[c,u]=_.useState(!0),[l,g]=_.useState(!0),h=()=>{const m=t.getFocusDrawings(),{unitId:v,subUnitId:C}=m[0],I=d.generateRandomId(10),O=b.getGroupState(0,0,m.map(D=>D.transform||{})),N={unitId:v,subUnitId:C,drawingId:I,drawingType:d.DrawingTypeEnum.DRAWING_GROUP,transform:O},j=m.map(D=>{const T=D.transform||{left:0,top:0},{unitId:E,subUnitId:P,drawingId:U}=D;return{unitId:E,subUnitId:P,drawingId:U,transform:{...T,left:T.left-O.left,top:T.top-O.top},groupId:I}});t.featurePluginGroupUpdateNotification([{parent:N,children:j}])},p=m=>{if(m.drawingType!==d.DrawingTypeEnum.DRAWING_GROUP)return;const{unitId:v,subUnitId:C,drawingId:I,transform:O={width:0,height:0}}=m;if(O==null)return;const N=t.getDrawingsByGroup({unitId:v,subUnitId:C,drawingId:I});if(N.length===0)return;const j=N.map(D=>{const{transform:T}=D,{unitId:E,subUnitId:P,drawingId:U}=D,$=b.transformObjectOutOfGroup(T||{},O,O.width||0,O.height||0);return{unitId:E,subUnitId:P,drawingId:U,transform:{...T,...$},groupId:void 0}});return{parent:m,children:j}},S=()=>{const v=t.getFocusDrawings().map(C=>p(C)).filter(C=>C!=null);v.length!==0&&t.featurePluginUngroupUpdateNotification(v)};return _.useEffect(()=>{const m=i[0];if(m==null)return;const{unitId:v}=m,C=e.getRenderById(v),I=C==null?void 0:C.scene;if(I==null)return;const O=I.getTransformerByCreate(),N=O.clearControl$.subscribe(D=>{D===!0&&o(!1)}),j=O.changeStart$.subscribe(D=>{const{objects:T}=D,E=le(T,t),P=E.filter(V=>(V==null?void 0:V.drawingType)===d.DrawingTypeEnum.DRAWING_GROUP);let U=!1,$=!1;E.length>1&&(U=!0),P.length>0&&($=!0),o(U||$),u(U),g($)});return()=>{j.unsubscribe(),N.unsubscribe()}},[]),f.jsxs("div",{className:B.clsx("univer-grid univer-gap-2 univer-py-2 univer-text-gray-400",{"univer-hidden":n===!0&&a===!1||n===!1}),children:[f.jsx("header",{className:"univer-text-gray-600 dark:!univer-text-gray-200",children:f.jsx("div",{children:r.t("image-panel.group.title")})}),f.jsxs("div",{className:"univer-flex univer-items-center univer-justify-center univer-gap-2",children:[f.jsxs(B.Button,{className:B.clsx({"univer-hidden":!c}),onClick:h,children:[f.jsx(Re,{}),r.t("image-panel.group.group")]}),f.jsxs(B.Button,{className:B.clsx({"univer-hidden":!l}),onClick:S,children:[f.jsx(xe,{}),r.t("image-panel.group.unGroup")]})]})]})},Ie=20,ye=20,We=[-360,360],be=300,Ct=s=>{var Ke;const r=H.useDependency(d.LocaleService),e=H.useDependency(M.IDrawingManagerService),t=H.useDependency(b.IRenderManagerService),{drawings:n,transformShow:i}=s,a=n[0];if(a==null)return;const o=a.transform;if(o==null)return;const{unitId:c,subUnitId:u,drawingId:l,drawingType:g}=a,h=t.getRenderById(c),p=h==null?void 0:h.scene;if(p==null)return;const S=(Ke=p.getEngine())==null?void 0:Ke.activeScene;if(S==null)return;const m=p.getTransformerByCreate(),{width:v=0,height:C=0,left:I=0,top:O=0,angle:N=0}=o,[j,D]=_.useState(v),[T,E]=_.useState(C),[P,U]=_.useState(I),[$,x]=_.useState(O),[V,Y]=_.useState(N),[oe,X]=_.useState(m.keepRatio),ne=(w,A,G,W)=>{const{width:k,height:J}=S,{ancestorLeft:K,ancestorTop:Z}=p;let z=w,ae=A,he=G,fe=W;return w+K<0&&(z=-K),A+Z<0&&(ae=-Z),he=k-z-K,he<Ie&&(he=Ie),fe=J-ae-Z,fe<ye&&(fe=ye),w+he+K>k&&(z=k-G-K),A+fe+Z>J&&(ae=J-W-Z),{limitLeft:z,limitTop:ae,limitWidth:he,limitHeight:fe}},ie=w=>{const{objects:A}=w,G=le(A,e);if(G.length!==1)return;const W=G[0];if(W==null)return;const{transform:k}=W;if(k==null)return;const{width:J,height:K,left:Z,top:z,angle:ae}=k;J!=null&&D(J),K!=null&&E(K),Z!=null&&U(Z),z!=null&&x(z),ae!=null&&Y(ae)};_.useEffect(()=>{const w=[m.changeStart$.subscribe(A=>{ie(A)}),m.changing$.subscribe(A=>{ie(A)}),m.changeEnd$.subscribe(A=>{ie(A)}),e.focus$.subscribe(A=>{if(A.length!==1)return;const G=e.getDrawingByParam(A[0]);if(G==null)return;const W=G.transform;if(W==null)return;const{width:k,height:J,left:K,top:Z,angle:z}=W;k!=null&&D(k),J!=null&&E(J),K!=null&&U(K),Z!=null&&x(Z),z!=null&&Y(z)})];return()=>{w.forEach(A=>A.unsubscribe())}},[]);const q=d.debounce(w=>{if(w==null)return;const{limitWidth:A,limitHeight:G}=ne(P,$,w,T);w=Math.min(w,A);const W={unitId:c,subUnitId:u,drawingId:l,drawingType:g,transform:{width:w}};if(oe){let k=w/j*T;if(k=Math.max(k,ye),k>G)return;E(k),W.transform.height=k}D(w),e.featurePluginUpdateNotification([W]),m.refreshControls().changeNotification()},be),de=d.debounce(w=>{if(w==null)return;const{limitHeight:A,limitWidth:G}=ne(P,$,j,w);w=Math.min(w,A);const W={unitId:c,subUnitId:u,drawingId:l,drawingType:g,transform:{height:w}};if(oe){let k=w/T*j;if(k=Math.max(k,Ie),k>G)return;D(k),W.transform.width=k}E(w),e.featurePluginUpdateNotification([W]),m.refreshControls().changeNotification()},be),bt=d.debounce(w=>{if(w==null)return;const{limitLeft:A}=ne(w,$,j,T);w=A;const G={unitId:c,subUnitId:u,drawingId:l,drawingType:g,transform:{left:w}};U(w),e.featurePluginUpdateNotification([G]),m.refreshControls().changeNotification()},be),Dt=d.debounce(w=>{if(w==null)return;const{limitTop:A}=ne(P,w,j,T);w=A;const G={unitId:c,subUnitId:u,drawingId:l,drawingType:g,transform:{top:w}};x(w),e.featurePluginUpdateNotification([G]),m.refreshControls().changeNotification()},be),Mt=w=>{if(w==null)return;const A={unitId:c,subUnitId:u,drawingId:l,drawingType:g,transform:{angle:w}};Y(w),e.featurePluginUpdateNotification([A]),m.refreshControls().changeNotification()},Ot=w=>{X(w),m.keepRatio=w};return f.jsxs("div",{className:B.clsx("univer-grid univer-gap-2 univer-py-2 univer-text-gray-400",{"univer-hidden":!i}),children:[f.jsx("header",{className:"univer-text-gray-600 dark:!univer-text-gray-200",children:f.jsx("div",{children:r.t("image-panel.transform.title")})}),f.jsxs("div",{className:"univer-grid univer-grid-cols-3 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2",children:[f.jsxs("div",{children:[f.jsx("span",{children:r.t("image-panel.transform.width")}),f.jsx(B.InputNumber,{precision:1,value:j,min:Ie,onChange:w=>{q(w)}})]}),f.jsxs("div",{children:[f.jsx("span",{children:r.t("image-panel.transform.height")}),f.jsx(B.InputNumber,{precision:1,value:T,min:ye,onChange:w=>{de(w)}})]}),f.jsxs("div",{children:[f.jsx("span",{children:r.t("image-panel.transform.lock")}),f.jsx("div",{className:"univer-text-center",children:f.jsx(B.Checkbox,{checked:oe,onChange:Ot})})]})]}),f.jsxs("div",{className:"univer-grid univer-grid-cols-3 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2",children:[f.jsxs("div",{children:[f.jsx("span",{children:r.t("image-panel.transform.x")}),f.jsx(B.InputNumber,{precision:1,value:P,onChange:w=>{bt(w)}})]}),f.jsxs("div",{children:[f.jsx("span",{children:r.t("image-panel.transform.y")}),f.jsx(B.InputNumber,{precision:1,value:$,onChange:w=>{Dt(w)}})]}),f.jsxs("div",{children:[f.jsx("span",{children:r.t("image-panel.transform.rotate")}),f.jsx(B.InputNumber,{precision:1,value:V,min:We[0],max:We[1],onChange:Mt})]})]})]})},It=s=>{const r=H.useDependency(d.ICommandService),e=H.useDependency(d.LocaleService),{drawings:t,cropperShow:n}=s;if(t[0]==null)return;const[a,o]=_.useState(L.FREE),c=_.useRef(!1),u=[{label:e.t("image-panel.crop.mode"),value:L.FREE},{label:"1:1",value:L.R1_1},{label:"16:9",value:L.R16_9},{label:"9:16",value:L.R9_16},{label:"5:4",value:L.R5_4},{label:"4:5",value:L.R4_5},{label:"4:3",value:L.R4_3},{label:"3:4",value:L.R3_4},{label:"3:2",value:L.R3_2},{label:"2:3",value:L.R2_3}];_.useEffect(()=>{const h=r.onCommandExecuted(p=>{if(p.id===ee.id){const S=p.params;S!=null&&S.isAuto||(c.current=!1)}});return()=>{h==null||h.dispose()}},[]);function l(h){o(h),c.current&&r.executeCommand(ce.id,{cropType:h})}const g=h=>{r.executeCommand(ce.id,{cropType:h}),c.current=!0};return f.jsxs("div",{className:B.clsx("univer-grid univer-gap-2 univer-py-2 univer-text-gray-400",{"univer-hidden":!n}),children:[f.jsx("header",{className:"univer-text-gray-600 dark:!univer-text-gray-200",children:f.jsx("div",{children:e.t("image-panel.crop.title")})}),f.jsxs("div",{className:"univer-flex univer-items-center univer-justify-center univer-gap-2",children:[f.jsxs(B.Button,{onClick:()=>{g(a)},children:[f.jsx(Be,{}),e.t("image-panel.crop.start")]}),f.jsx(B.Select,{value:a,options:u,onChange:l})]})]})},yt=s=>{const r=H.useDependency(M.IDrawingManagerService),e=H.useDependency(b.IRenderManagerService),t=H.useDependency(d.LocaleService),{drawings:n,hasArrange:i=!0,hasTransform:a=!0,hasAlign:o=!0,hasCropper:c=!0,hasGroup:u=!0}=s,l=n[0];if(l==null)return;const{unitId:g}=l,h=e.getRenderById(g),p=h==null?void 0:h.scene;if(p==null)return;const S=p.getTransformerByCreate(),[m,v]=_.useState(!0),[C,I]=_.useState(!0),[O,N]=_.useState(!1),[j,D]=_.useState(!0),[T,E]=_.useState(!1);return _.useEffect(()=>{const P=S.clearControl$.subscribe(x=>{x===!0&&(v(!1),I(!1),N(!1),D(!1),E(!0))}),U=S.changeStart$.subscribe(x=>{const{objects:V}=x,Y=le(V,r);Y.length===0?(v(!1),I(!1),N(!1),D(!1),E(!0)):Y.length===1?(v(!0),I(!0),N(!1),D(!0),E(!1)):(v(!0),I(!1),N(!0),D(!1),E(!1))}),$=r.focus$.subscribe(x=>{x.length===0?(v(!1),I(!1),N(!1),D(!1),E(!0)):x.length===1?(v(!0),I(!0),N(!1),D(!0),E(!1)):(v(!0),I(!1),N(!0),D(!1),E(!1))});return()=>{U.unsubscribe(),P.unsubscribe(),$.unsubscribe()}},[]),f.jsxs(f.Fragment,{children:[f.jsx("div",{className:B.clsx("univer-h-full",{"univer-hidden":!T}),children:f.jsx("div",{className:"univer-flex univer-h-full univer-items-center univer-justify-center",children:f.jsx("span",{children:t.t("image-panel.null")})})}),f.jsx(St,{arrangeShow:i===!0?m:!1,drawings:n}),f.jsx(Ct,{transformShow:a===!0?C:!1,drawings:n}),f.jsx(wt,{alignShow:o===!0?O:!1,drawings:n}),f.jsx(It,{cropperShow:c===!0?j:!1,drawings:n}),f.jsx(_t,{hasGroup:u,drawings:n})]})};y.AutoImageCropOperation=ce,y.COMPONENT_IMAGE_POPUP_MENU=Ue,y.CloseImageCropOperation=ee,y.DrawingCommonPanel=yt,y.ImageCropperObject=ue,y.ImagePopupMenu=$e,y.ImageResetSizeOperation=De,y.OpenImageCropOperation=me,y.SetDrawingAlignOperation=pe,y.getCurrentUnitInfo=Oe,y.getUpdateParams=le,y.insertGroupObject=Me,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})}));
|
|
7
|
-
|
|
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.18.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)(`
|
|
6
|
+
univer-flex univer-items-center univer-gap-2 univer-rounded univer-p-1
|
|
7
|
+
hover:univer-bg-gray-100
|
|
8
|
+
dark:hover:!univer-bg-gray-800
|
|
9
|
+
`,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:`
|
|
10
|
+
univer-fill-primary-600 univer-text-gray-900
|
|
11
|
+
dark:!univer-text-white
|
|
12
|
+
`}),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);let Z=class{constructor(e,t,n,r,i){this._drawingManagerService=e,this._imageIoService=t,this._galleryService=n,this._urlImageService=r,this._univerInstanceService=i}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}=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 _=h&&g?g:[a],v=[];for(let e of _){let{left:t,top:a,width:o,height:g,angle:y,flipX:b,flipY:x,skewX:S,skewY:C}=e,w=_.indexOf(e),T=(0,n.getDrawingShapeKeyByDrawingSearch)({unitId:f,subUnitId:p,drawingId:m},h?w:void 0),E=i.getObject(T);if(E!=null){E.transformByState({left:t,top:a,width:o,height:g,angle:y,flipX:b,flipY:x,skewX:S,skewY:C});continue}let D=this._drawingManagerService.getDrawingOrder(f,p),O=D.indexOf(m),k={...e,zIndex:O===-1?D.length-1:O},A=this._imageIoService.getImageSourceCache(s,c),j=!1;if(A!=null)k.image=A;else if(c===n.ImageSourceType.UUID)try{k.url=await this._imageIoService.getImage(s)}catch(e){console.error(e);continue}else if(c===n.ImageSourceType.URL){try{k.url=await this._urlImageService.getImage(s)}catch(e){console.error(e),k.url=s}j=!0}else k.url=s,j=!0;if(i.getObject(T))continue;k.printable=!0;let N=new r.Image(T,k);j&&this._imageIoService.addImageSourceCache(s,c,N.getNative()),i.addObject(N,r.DRAWING_OBJECT_LAYER_INDEX),this._drawingManagerService.getDrawingEditable()&&i.attachTransformerTo(N),d&&M({drawingId:d,unitId:f,subUnitId:p},N,i,this._drawingManagerService),u!=null&&N.setPrstGeom(u),l!=null&&N.setSrcRect(l),v.push(N)}return v}_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)}}};Z=H([V(0,n.IDrawingManagerService),V(1,n.IImageIoService),V(2,a.IGalleryService),V(3,t.IURLImageService),V(4,t.IUniverInstanceService)],Z);let Q=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)})))}};Q=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)(Z))],Q);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(Q)}_initDependencies(){[[Z],[q],[U],[X],[Q]].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 qe=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:`
|
|
13
|
+
univer-text-gray-600
|
|
14
|
+
dark:!univer-text-gray-200
|
|
15
|
+
`,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:`
|
|
16
|
+
univer-w-full univer-text-gray-900
|
|
17
|
+
dark:!univer-text-white
|
|
18
|
+
`,children:(0,c.jsx)(s.Select,{value:f,options:m,onChange:h})})})]})},Je=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:`
|
|
19
|
+
univer-text-gray-600
|
|
20
|
+
dark:!univer-text-gray-200
|
|
21
|
+
`,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`)]})]})]})},Ye=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:`
|
|
22
|
+
univer-text-gray-600
|
|
23
|
+
dark:!univer-text-gray-200
|
|
24
|
+
`,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`)]})]})]})},Xe=[-360,360],Ze=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:`
|
|
25
|
+
univer-text-gray-600
|
|
26
|
+
dark:!univer-text-gray-200
|
|
27
|
+
`,children:(0,c.jsx)(`div`,{children:l.t(`image-panel.transform.title`)})}),(0,c.jsxs)(`div`,{className:`
|
|
28
|
+
univer-grid univer-grid-cols-3 univer-gap-2
|
|
29
|
+
[&>div]:univer-grid [&>div]:univer-gap-2
|
|
30
|
+
`,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:`
|
|
31
|
+
univer-grid univer-grid-cols-3 univer-gap-2
|
|
32
|
+
[&>div]:univer-grid [&>div]:univer-gap-2
|
|
33
|
+
`,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:Xe[0],max:Xe[1],onChange:oe})]})]})]})},Qe=e=>{let n=(0,a.useDependency)(t.ICommandService),r=(0,a.useDependency)(t.LocaleService),{drawings:o,cropperShow:l}=e;if(o[0]==null)return;let[u,d]=(0,i.useState)(k.FREE),f=(0,i.useRef)(!1),p=[{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||(f.current=!1)}});return()=>{e==null||e.dispose()}},[]);function m(e){d(e),f.current&&n.executeCommand(A.id,{cropType:e})}let h=e=>{n.executeCommand(A.id,{cropType:e}),f.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":!l}),children:[(0,c.jsx)(`header`,{className:`
|
|
34
|
+
univer-text-gray-600
|
|
35
|
+
dark:!univer-text-gray-200
|
|
36
|
+
`,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:()=>{h(u)},children:[(0,c.jsx)(ae,{}),r.t(`image-panel.crop.start`)]}),(0,c.jsx)(s.Select,{value:u,options:p,onChange:m})]})]})};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)(Je,{arrangeShow:f===!0?S:!1,drawings:d}),(0,c.jsx)(Ze,{transformShow:p===!0?w:!1,drawings:d}),(0,c.jsx)(qe,{alignShow:m===!0?E:!1,drawings:d}),(0,c.jsx)(Qe,{cropperShow:h===!0?O:!1,drawings:d}),(0,c.jsx)(Ye,{hasGroup:g,drawings:d})]})},Object.defineProperty(e,`DrawingRenderService`,{enumerable:!0,get:function(){return Z}}),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});
|
|
8
37
|
|
|
9
38
|
// @univerjs/sheets-drawing/index
|
|
10
|
-
(function(
|
|
11
|
-
|
|
39
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/drawing`),require(`@univerjs/sheets`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/drawing`,`@univerjs/sheets`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawing={},e.UniverCore,e.UniverDrawing,e.UniverSheets))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let i=function(e){return e.Position=`0`,e.Both=`1`,e.None=`2`,e}({});var a=class extends n.UnitDrawingService{};let o=(0,t.createIdentifier)(`sheets-drawing.sheet-drawing.service`),s=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}({}),c={id:`sheet.mutation.set-drawing-apply`,type:t.CommandType.MUTATION,handler:(e,t)=>{let r=e.get(n.IDrawingManagerService),i=e.get(o),{op:a,unitId:c,subUnitId:l,type:u,objects:d}=t;switch(r.applyJson1(c,l,a),i.applyJson1(c,l,a),u){case s.INSERT:r.addNotification(d),i.addNotification(d);break;case s.REMOVE:r.removeNotification(d),i.removeNotification(d);break;case s.UPDATE:r.updateNotification(d),i.updateNotification(d);break;case s.ARRANGE:r.orderNotification(d),i.orderNotification(d);break;case s.GROUP:r.groupUpdateNotification(d);break;case s.UNGROUP:r.ungroupUpdateNotification(d);break}return!0}};function l(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let d=`SHEET_DRAWING_PLUGIN`,f=class extends t.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._initSnapshot(),this._initSheetChange(),this.disposeWithMe(this._commandService.registerCommand(c))}_initSnapshot(){let e=(e,t)=>{let n=t||this._sheetDrawingService.getDrawingDataForUnit(e);return n?JSON.stringify(n):``},n=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:d,businesses:[t.UniverInstanceType.UNIVER_SHEET],toJson:(t,n)=>e(t,n),parseJson:e=>n(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===r.RemoveSheetCommand.id){var n;let r=e.params,i=r.unitId||this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=r.subUnitId||((n=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:n.getSheetId());if(!i||!a)return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(i,a),l=Object.values(o).filter(e=>e.drawingType!==t.DrawingTypeEnum.DRAWING_CHART);if(l.length===0)return{redos:[],undos:[]};let{unitId:u,subUnitId:d,undo:f,redo:p,objects:m}=this._sheetDrawingService.getBatchRemoveOp(l);return{redos:[{id:c.id,params:{op:p,unitId:u,subUnitId:d,objects:m,type:s.REMOVE}}],undos:[{id:c.id,params:{op:f,unitId:u,subUnitId:d,objects:m,type:s.INSERT}}]}}else if(e.id===r.CopySheetCommand.id){let{unitId:n,subUnitId:r,targetSubUnitId:i}=e.params;if(!n||!r||!i)return{redos:[],undos:[]};let a=this._sheetDrawingService.getDrawingData(n,r),o=Object.values(a).filter(e=>e.drawingType!==t.DrawingTypeEnum.DRAWING_CHART).map(e=>({...e,subUnitId:i,drawingId:(0,t.generateRandomId)(6)}));if(o.length===0)return{redos:[],undos:[]};let{unitId:l,subUnitId:u,undo:d,redo:f,objects:p}=this._sheetDrawingService.getBatchAddOp(o);return{redos:[{id:c.id,params:{op:f,unitId:l,subUnitId:u,objects:p,type:s.INSERT}}],undos:[{id:c.id,params:{op:d,unitId:l,subUnitId:u,objects:p,type:s.REMOVE}}]}}return{redos:[],undos:[]}}}))}};f=u([l(0,(0,t.Inject)(r.SheetInterceptorService)),l(1,(0,t.Inject)(t.IUniverInstanceService)),l(2,t.ICommandService),l(3,o),l(4,n.IDrawingManagerService),l(5,t.IResourceManagerService)],f);var p=`@univerjs/sheets-drawing`,m=`0.18.0`;let h=`sheets-drawing.config`;Symbol(h);let g={};function _(e){"@babel/helpers - typeof";return _=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)}function v(e,t){if(_(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(_(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function y(e){var t=v(e,`string`);return _(t)==`symbol`?t:t+``}function b(e,t,n){return(t=y(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let x=class extends t.Plugin{constructor(e=g,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},g,this._config);this._configService.setConfig(h,i)}onStarting(){[[f],[o,{useClass:a}]].forEach(e=>this._injector.add(e)),this._injector.get(f)}};b(x,`pluginName`,d),b(x,`packageName`,p),b(x,`version`,m),b(x,`type`,t.UniverInstanceType.UNIVER_SHEET),x=u([(0,t.DependentOn)(n.UniverDrawingPlugin),l(1,(0,t.Inject)(t.Injector)),l(2,t.IConfigService)],x),e.DrawingApplyType=s,e.ISheetDrawingService=o,e.SHEET_DRAWING_PLUGIN=d,e.SetDrawingApplyMutation=c,e.SheetDrawingAnchorType=i,Object.defineProperty(e,`UniverSheetsDrawingPlugin`,{enumerable:!0,get:function(){return x}})});
|
|
12
40
|
|
|
13
41
|
// @univerjs/sheets-drawing-ui/index
|
|
14
|
-
(function(A,N){typeof exports=="object"&&typeof module<"u"?N(exports,require("@univerjs/engine-render"),require("@univerjs/sheets-ui"),require("@univerjs/core"),require("@univerjs/sheets-drawing"),require("@univerjs/sheets"),require("@univerjs/design"),require("@univerjs/docs-ui"),require("@univerjs/drawing"),require("@univerjs/ui"),require("@univerjs/docs-drawing"),require("@univerjs/drawing-ui"),require("rxjs"),require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","@univerjs/engine-render","@univerjs/sheets-ui","@univerjs/core","@univerjs/sheets-drawing","@univerjs/sheets","@univerjs/design","@univerjs/docs-ui","@univerjs/drawing","@univerjs/ui","@univerjs/docs-drawing","@univerjs/drawing-ui","rxjs","react/jsx-runtime","react"],N):(A=typeof globalThis<"u"?globalThis:A||self,N(A.UniverSheetsDrawingUi={},A.UniverEngineRender,A.UniverSheetsUi,A.UniverCore,A.UniverSheetsDrawing,A.UniverSheets,A.UniverDesign,A.UniverDocsUi,A.UniverDrawing,A.UniverUi,A.UniverDocsDrawing,A.UniverDrawingUi,A.rxjs,A.React,A.React))})(this,(function(A,N,U,l,w,y,X,Ge,B,j,At,Se,W,Y,Q){"use strict";var sr=Object.defineProperty;var ar=(A,N,U)=>N in A?sr(A,N,{enumerable:!0,configurable:!0,writable:!0,value:U}):A[N]=U;var se=(A,N,U)=>ar(A,typeof N!="symbol"?N+"":N,U);function te(i,r,e){const{from:t,to:n,flipY:o=!1,flipX:s=!1,angle:a=0,skewX:c=0,skewY:g=0}=i,u=e.getCurrent();if(u==null)return;const d=U.convertPositionSheetOverGridToAbsolute(u.unitId,u.sheetId,{from:t,to:n},e);let{left:m,top:h,width:p,height:S}=d;const f=e.getCurrentSkeleton(),v=f.rowHeaderWidth+f.columnTotalWidth,I=f.columnHeaderHeight+f.rowTotalHeight;return m+p>v&&(m=v-p),h+S>I&&(h=I-S),{flipY:o,flipX:s,angle:a,skewX:c,skewY:g,left:m,top:h,width:p,height:S}}function x(i,r){const{left:e=0,top:t=0,width:n=0,height:o=0,flipY:s=!1,flipX:a=!1,angle:c=0,skewX:g=0,skewY:u=0}=i,d=r.getCellWithCoordByOffset(e,t);if(d==null)return;const m={column:d.actualColumn,columnOffset:N.precisionTo(e-d.startX,1),row:d.actualRow,rowOffset:N.precisionTo(t-d.startY,1)},h=r.getCellWithCoordByOffset(e+n,t+o);if(h==null)return;const p={column:h.actualColumn,columnOffset:N.precisionTo(e+n-h.startX,1),row:h.actualRow,rowOffset:N.precisionTo(t+o-h.startY,1)};return{flipY:s,flipX:a,angle:c,skewX:g,skewY:u,from:m,to:p}}function G(i,r){const{left:e=0,top:t=0,width:n=0,height:o=0,angle:s=0}=i,a=(s%360+360)%360;if(!(a>=45&&a<135||a>=225&&a<315))return x(i,r);const g={...i,left:e+n/2-o/2,top:t+o/2-n/2,width:o,height:n};return x(g,r)}const K={id:"sheet.operation.clear-drawing-transformer",type:l.CommandType.MUTATION,handler:(i,r)=>{const e=i.get(N.IRenderManagerService);return r.forEach(t=>{var n,o;(o=(n=e.getRenderById(t))==null?void 0:n.scene.getTransformer())==null||o.debounceRefreshControls()}),!0}},Ce={id:"sheet.command.remove-sheet-image",type:l.CommandType.COMMAND,handler:(i,r)=>{var I,T,O;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(y.SheetInterceptorService),o=i.get(w.ISheetDrawingService);if(!r)return!1;const{drawings:s}=r,a=[];s.forEach(D=>{const{unitId:C}=D;a.push(C)});const c=o.getBatchRemoveOp(s),{unitId:g,subUnitId:u,undo:d,redo:m,objects:h}=c,p=n.onCommandExecute({id:Ce.id,params:r}),S={id:w.SetDrawingApplyMutation.id,params:{unitId:g,subUnitId:u,op:m,objects:h,type:w.DrawingApplyType.REMOVE}},f={id:w.SetDrawingApplyMutation.id,params:{unitId:g,subUnitId:u,op:d,objects:h,type:w.DrawingApplyType.INSERT}};return l.sequenceExecute([...(I=p.preRedos)!=null?I:[],S,...p.redos],e)?(t.pushUndoRedo({unitID:g,undoMutations:[...(T=p.preUndos)!=null?T:[],f,...p.undos,{id:K.id,params:a}],redoMutations:[...(O=p.preRedos)!=null?O:[],S,...p.redos,{id:K.id,params:a}]}),!0):!1}},gt={id:"sheet.command.delete-drawing",type:l.CommandType.COMMAND,handler:i=>{const r=i.get(l.ICommandService),t=i.get(w.ISheetDrawingService).getFocusDrawings();if(t.length===0)return!1;const n=t[0].unitId,o=t.map(s=>{const{unitId:a,subUnitId:c,drawingId:g,drawingType:u}=s;return{unitId:a,subUnitId:c,drawingId:g,drawingType:u}});return r.executeCommand(Ce.id,{unitId:n,drawings:o})}};function qt(i){const r=[];return i.forEach(e=>{const{parent:t,children:n}=e,{unitId:o,subUnitId:s,drawingId:a}=t,c=N.getGroupState(0,0,n.map(d=>d.transform||{})),g=n.map(d=>{const m=d.transform||{left:0,top:0},{unitId:h,subUnitId:p,drawingId:S}=d;return{unitId:h,subUnitId:p,drawingId:S,transform:{...m,left:m.left-c.left,top:m.top-c.top},groupId:a}}),u={unitId:o,subUnitId:s,drawingId:a,drawingType:l.DrawingTypeEnum.DRAWING_GROUP,transform:c};r.push({parent:u,children:g})}),r}function Zt(i){const r=[];return i.forEach(e=>{const{parent:t,children:n}=e,{unitId:o,subUnitId:s,drawingId:a,transform:c={width:0,height:0}}=t;if(c==null)return;const g=n.map(d=>{const{transform:m}=d,{unitId:h,subUnitId:p,drawingId:S}=d,f=N.transformObjectOutOfGroup(m||{},c,c.width||0,c.height||0);return{unitId:h,subUnitId:p,drawingId:S,transform:f,groupId:void 0}}),u={unitId:o,subUnitId:s,drawingId:a,drawingType:l.DrawingTypeEnum.DRAWING_GROUP,transform:{left:0,top:0}};r.push({parent:u,children:g})}),r}const ht={id:"sheet.command.group-sheet-image",type:l.CommandType.COMMAND,handler:(i,r)=>{const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(w.ISheetDrawingService);if(!r)return!1;const o=[];r.forEach(({parent:h,children:p})=>{o.push(h.unitId),p.forEach(S=>{o.push(S.unitId)})});const s=n.getGroupDrawingOp(r),{unitId:a,subUnitId:c,undo:g,redo:u,objects:d}=s;return e.syncExecuteCommand(w.SetDrawingApplyMutation.id,{op:u,unitId:a,subUnitId:c,objects:d,type:w.DrawingApplyType.GROUP})?(t.pushUndoRedo({unitID:a,undoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:g,unitId:a,subUnitId:c,objects:Zt(d),type:w.DrawingApplyType.UNGROUP}},{id:K.id,params:o}],redoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:u,unitId:a,subUnitId:c,objects:d,type:w.DrawingApplyType.GROUP}},{id:K.id,params:o}]}),!0):!1}},Ne={id:"sheet.command.insert-sheet-image",type:l.CommandType.COMMAND,handler:(i,r)=>{var I,T,O;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(w.ISheetDrawingService),o=i.get(y.SheetInterceptorService);if(!r)return!1;const s=r.drawings,a=s.map(D=>D.unitId),c=n.getBatchAddOp(s),{unitId:g,subUnitId:u,undo:d,redo:m,objects:h}=c,p=o.onCommandExecute({id:Ne.id,params:r}),S={id:w.SetDrawingApplyMutation.id,params:{op:m,unitId:g,subUnitId:u,objects:h,type:w.DrawingApplyType.INSERT}},f={id:w.SetDrawingApplyMutation.id,params:{op:d,unitId:g,subUnitId:u,objects:h,type:w.DrawingApplyType.REMOVE}};return l.sequenceExecute([...(I=p.preRedos)!=null?I:[],S,...p.redos],e)?(t.pushUndoRedo({unitID:g,undoMutations:[...(T=p.preUndos)!=null?T:[],f,...p.undos,{id:K.id,params:a}],redoMutations:[...(O=p.preRedos)!=null?O:[],S,...p.redos,{id:K.id,params:a}]}),!0):!1}},mt={id:"sheet.command.set-drawing-arrange",type:l.CommandType.COMMAND,handler:(i,r)=>{const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService);if(!r)return!1;const n=i.get(w.ISheetDrawingService),{unitId:o,subUnitId:s,drawingIds:a,arrangeType:c}=r,g={unitId:o,subUnitId:s,drawingIds:a};let u;if(c===l.ArrangeTypeEnum.forward?u=n.getForwardDrawingsOp(g):c===l.ArrangeTypeEnum.backward?u=n.getBackwardDrawingOp(g):c===l.ArrangeTypeEnum.front?u=n.getFrontDrawingsOp(g):c===l.ArrangeTypeEnum.back&&(u=n.getBackDrawingsOp(g)),u==null)return!1;const{objects:d,redo:m,undo:h}=u;return e.syncExecuteCommand(w.SetDrawingApplyMutation.id,{op:m,unitId:o,subUnitId:s,objects:d,type:w.DrawingApplyType.ARRANGE})?(t.pushUndoRedo({unitID:o,undoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:h,unitId:o,subUnitId:s,objects:d,type:w.DrawingApplyType.ARRANGE}}],redoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:m,unitId:o,subUnitId:s,objects:d,type:w.DrawingApplyType.ARRANGE}}]}),!0):!1}},De={id:"sheet.command.set-sheet-image",type:l.CommandType.COMMAND,handler:(i,r)=>{var v,I;const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(w.ISheetDrawingService),o=i.get(y.SheetInterceptorService);if(!r)return!1;const{drawings:s}=r,a=n.getBatchUpdateOp(s),{unitId:c,subUnitId:g,undo:u,redo:d,objects:m}=a,h=o.onCommandExecute({id:De.id,params:r}),p=[...(v=h.preRedos)!=null?v:[],{id:w.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:g,op:d,objects:m,type:w.DrawingApplyType.UPDATE}},...h.redos,{id:K.id,params:[c]}],S=[...(I=h.preUndos)!=null?I:[],{id:w.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:g,op:u,objects:m,type:w.DrawingApplyType.UPDATE}},...h.undos,{id:K.id,params:[c]}];return l.sequenceExecute(p,e)?(t.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:p}),!0):!1}},pt={id:"sheet.command.ungroup-sheet-image",type:l.CommandType.COMMAND,handler:(i,r)=>{const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(w.ISheetDrawingService);if(!r)return!1;const o=[];r.forEach(({parent:h,children:p})=>{o.push(h.unitId),p.forEach(S=>{o.push(S.unitId)})});const s=n.getUngroupDrawingOp(r),{unitId:a,subUnitId:c,undo:g,redo:u,objects:d}=s;return e.syncExecuteCommand(w.SetDrawingApplyMutation.id,{op:u,unitId:a,subUnitId:c,objects:d,type:w.DrawingApplyType.UNGROUP})?(t.pushUndoRedo({unitID:a,undoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:g,unitId:a,subUnitId:c,objects:qt(d),type:w.DrawingApplyType.GROUP}},{id:K.id,params:o}],redoMutations:[{id:w.SetDrawingApplyMutation.id,params:{op:u,unitId:a,subUnitId:c,objects:d,type:w.DrawingApplyType.UNGROUP}},{id:K.id,params:o}]}),!0):!1}};var Jt=Object.getOwnPropertyDescriptor,Qt=(i,r,e,t)=>{for(var n=t>1?void 0:t?Jt(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},ie=(i,r)=>(e,t)=>r(e,t,i);function en(i,r,e){const t=e*Math.PI/180,n=Math.abs(i*Math.cos(t))+Math.abs(r*Math.sin(t)),o=Math.abs(i*Math.sin(t))+Math.abs(r*Math.cos(t));return{rotatedWidth:n,rotatedHeight:o}}function St(i,r,e,t,n){var I;const{rotatedHeight:o,rotatedWidth:s}=en(e,t,n),c=i.get(N.IRenderManagerService).getRenderById(r.unitId);if(!c)return!1;const u=(I=c.with(U.SheetSkeletonManagerService).getSkeletonParam(r.subUnitId))==null?void 0:I.skeleton;if(u==null)return!1;const d=u.getCellByIndex(r.row,r.col),m=d.mergeInfo.endX-d.mergeInfo.startX-2,h=d.mergeInfo.endY-d.mergeInfo.startY-2,p=s/o,f=Math.ceil(Math.min(m,h*p))/s,v=!f||Number.isNaN(f)?.001:f;return{width:e*v,height:t*v}}A.SheetDrawingUpdateController=class extends l.Disposable{constructor(e,t,n,o,s,a,c,g,u,d,m,h,p,S){super();se(this,"_workbookSelections");this._context=e,this._skeletonManagerService=t,this._commandService=n,this._selectionRenderService=o,this._imageIoService=s,this._fileOpenerService=a,this._sheetDrawingService=c,this._drawingManagerService=g,this._contextService=u,this._messageService=d,this._localeService=m,this._injector=p,this._urlImageService=S,this._workbookSelections=h.getWorkbookSelections(this._context.unitId),this._updateImageListener(),this._updateOrderListener(),this._groupDrawingListener(),this._focusDrawingListener()}async insertFloatImage(){const e=await this._fileOpenerService.openFile({multiple:!0,accept:B.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(n=>`.${n.replace("image/","")}`).join(",")}),t=e.length;return t>B.DRAWING_IMAGE_COUNT_LIMIT?(this._messageService.show({type:X.MessageType.Error,content:this._localeService.t("update-status.exceedMaxCount",String(B.DRAWING_IMAGE_COUNT_LIMIT))}),!1):t===0?!1:(e.forEach(async n=>await this.insertFloatImageByFile(n)),!0)}async insertCellImage(){const t=(await this._fileOpenerService.openFile({multiple:!1,accept:B.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(n=>`.${n.replace("image/","")}`).join(",")}))[0];return t?(await this._insertCellImage(t),!0):!1}insertCellImageByFile(e,t){return this._insertCellImage(e,t)}async insertFloatImageByFile(e){var O;let t;try{t=await this._imageIoService.saveImage(e)}catch(D){const C=D.message;C===B.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:X.MessageType.Error,content:this._localeService.t("update-status.exceedMaxSize",String(B.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):C===B.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:X.MessageType.Error,content:this._localeService.t("update-status.invalidImageType")}):C===B.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:X.MessageType.Error,content:this._localeService.t("update-status.invalidImage")})}if(t==null)return;const n=this._getUnitInfo(),{unitId:o,subUnitId:s}=n,{imageId:a,imageSourceType:c,source:g,base64Cache:u}=t,{width:d,height:m,image:h}=await B.getImageSize(u||""),{width:p,height:S}=this._context.scene;this._imageIoService.addImageSourceCache(g,c,h);let f=1;if(d>B.DRAWING_IMAGE_WIDTH_LIMIT||m>B.DRAWING_IMAGE_HEIGHT_LIMIT){const D=B.DRAWING_IMAGE_WIDTH_LIMIT/d,C=B.DRAWING_IMAGE_HEIGHT_LIMIT/m;f=Math.max(D,C)}const v=this._getImagePosition(d*f,m*f,p,S);if(v==null)return;const I=te(v,this._selectionRenderService,this._skeletonManagerService),T={unitId:o,subUnitId:s,drawingId:a,drawingType:l.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:c,source:g,transform:I,sheetTransform:v,axisAlignSheetTransform:(O=G(I,this._selectionRenderService))!=null?O:v};return this._commandService.executeCommand(Ne.id,{unitId:o,drawings:[T]})}async _insertCellImage(e,t){var O,D;let n;try{n=await this._imageIoService.saveImage(e)}catch(C){const M=C.message;M===B.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:X.MessageType.Error,content:this._localeService.t("update-status.exceedMaxSize",String(B.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):M===B.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:X.MessageType.Error,content:this._localeService.t("update-status.invalidImageType")}):M===B.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:X.MessageType.Error,content:this._localeService.t("update-status.invalidImage")})}if(n==null)return!1;const{imageId:o,imageSourceType:s,source:a,base64Cache:c}=n,{width:g,height:u,image:d}=await B.getImageSize(c||"");this._imageIoService.addImageSourceCache(a,s,d);const m=this._workbookSelections.getCurrentLastSelection();if(!m)return!1;let h=m.primary.actualRow,p=m.primary.actualColumn;m.primary.isMerged&&(h=m.primary.startRow,p=m.primary.startColumn);const S=l.createDocumentModelWithStyle("",{}),f=St(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:h,col:p},g,u,0);if(!f)return!1;const v={size:{width:f.width,height:f.height},positionH:{relativeFrom:l.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:l.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},I={unitId:S.getUnitId(),subUnitId:S.getUnitId(),drawingId:o,drawingType:l.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:s,source:a,transform:Ge.docDrawingPositionToTransform(v),docTransform:v,behindDoc:l.BooleanNumber.FALSE,title:"",description:"",layoutType:l.PositionedObjectLayoutType.INLINE,wrapText:l.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},T=l.BuildTextUtils.drawing.add({documentDataModel:S,drawings:[I],selection:{collapsed:!0,startOffset:0,endOffset:0}});return T?(S.apply(T),this._commandService.syncExecuteCommand(y.SetRangeValuesCommand.id,{value:{[(O=t==null?void 0:t.row)!=null?O:h]:{[(D=t==null?void 0:t.col)!=null?D:p]:{p:S.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})):!1}async insertCellImageByUrl(e,t){var p,S;let n=e;try{n=await this._urlImageService.getImage(e)}catch(f){console.error(`Failed to get image from URLImageService: ${e}`,f)}const{width:o,height:s,image:a}=await B.getImageSize(n||"");this._imageIoService.addImageSourceCache(e,l.ImageSourceType.URL,a);const c=this._workbookSelections.getCurrentLastSelection();if(!c)return!1;const g=l.createDocumentModelWithStyle("",{}),u=St(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:c.primary.actualRow,col:c.primary.actualColumn},o,s,0);if(!u)return!1;const d={size:{width:u.width,height:u.height},positionH:{relativeFrom:l.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:l.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},m={unitId:g.getUnitId(),subUnitId:g.getUnitId(),drawingId:l.generateRandomId(),drawingType:l.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l.ImageSourceType.URL,source:e,transform:Ge.docDrawingPositionToTransform(d),docTransform:d,behindDoc:l.BooleanNumber.FALSE,title:"",description:"",layoutType:l.PositionedObjectLayoutType.INLINE,wrapText:l.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},h=l.BuildTextUtils.drawing.add({documentDataModel:g,drawings:[m],selection:{collapsed:!0,startOffset:0,endOffset:0}});return h?(g.apply(h),this._commandService.syncExecuteCommand(y.SetRangeValuesCommand.id,{value:{[(p=t==null?void 0:t.row)!=null?p:c.primary.actualRow]:{[(S=t==null?void 0:t.col)!=null?S:c.primary.actualColumn]:{p:g.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})):!1}_getUnitInfo(){const e=this._context.unit,t=e.getActiveSheet(),n=e.getUnitId(),o=t.getSheetId();return{unitId:n,subUnitId:o}}_getImagePosition(e,t,n,o){const s=this._workbookSelections.getCurrentSelections();let a={startRow:0,endRow:0,startColumn:0,endColumn:0};s&&s.length>0&&(a=s[s.length-1].range);const c=U.attachRangeWithCoord(this._skeletonManagerService.getCurrent().skeleton,a);if(c==null)return;let{startColumn:g,startRow:u,startX:d,startY:m}=c,h=!1;if(d+e>n&&(d=n-e,d<0&&(d=0,e=n),h=!0),m+t>o&&(m=o-t,m<0&&(m=0,t=o),h=!0),h){const v=this._selectionRenderService.getCellWithCoordByOffset(d,m);if(v==null)return;d=v.startX,m=v.startY,g=v.actualColumn,u=v.actualRow}const p={column:g,columnOffset:0,row:u,rowOffset:0},S=this._selectionRenderService.getCellWithCoordByOffset(d+e,m+t);if(S==null)return;const f={column:S.actualColumn,columnOffset:d+e-S.startX,row:S.actualRow,rowOffset:m+t-S.startY};return{from:p,to:f}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{const{unitId:t,subUnitId:n,drawingIds:o,arrangeType:s}=e;this._commandService.executeCommand(mt.id,{unitId:t,subUnitId:n,drawingIds:o,arrangeType:s})}))}_updateImageListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{const t=[];e.length!==0&&(e.forEach(n=>{const{unitId:o,subUnitId:s,drawingId:a,drawingType:c,transform:g}=n;if(g==null)return;const u=this._sheetDrawingService.getDrawingByParam({unitId:o,subUnitId:s,drawingId:a});if(u==null||u.unitId!==this._context.unitId)return;const d=x({...u.transform,...g},this._selectionRenderService),m=G({...u.transform,...g},this._selectionRenderService);if(d==null||m==null)return;const h={...n,transform:{...u.transform,...g,...te(d,this._selectionRenderService,this._skeletonManagerService)},sheetTransform:{...d},axisAlignSheetTransform:{...m}};t.push(h)}),t.length>0&&this._commandService.executeCommand(De.id,{unitId:e[0].unitId,drawings:t}))}))}_getSheetTransformByParam(e){const{unitId:t,subUnitId:n,drawingId:o,transform:s}=e;if(s==null)return null;const a=this._sheetDrawingService.getDrawingByParam({unitId:t,subUnitId:n,drawingId:o});if(a==null||a.unitId!==this._context.unitId)return null;const c=x({...a.transform,...s},this._selectionRenderService),g=G({...a.transform,...s},this._selectionRenderService);return c==null||g==null?null:{sheetTransform:c,axisAlignSheetTransform:g}}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{const t=[];for(const n of e){const o=this._getSheetTransformByParam(n.parent),s=[];for(const c of n.children){const g=this._getSheetTransformByParam(c);g!=null&&s.push({...c,sheetTransform:g.sheetTransform,axisAlignSheetTransform:g.axisAlignSheetTransform})}const a={parent:{...n.parent,sheetTransform:o},children:s};t.push(a)}if(t.length>0){this._commandService.executeCommand(ht.id,t);const{unitId:n,subUnitId:o,drawingId:s}=e[0].parent;this._commandService.syncExecuteCommand(B.SetDrawingSelectedOperation.id,[{unitId:n,subUnitId:o,drawingId:s}])}})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{const t=[];for(const n of e){const{children:o}=n,s=[];for(const a of o){const c=this._getSheetTransformByParam(a);c!=null&&s.push({...a,sheetTransform:c})}t.push({...n,children:s})}this._commandService.executeCommand(pt.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue(l.FOCUSING_COMMON_DRAWINGS,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue(l.FOCUSING_COMMON_DRAWINGS,!0),this._sheetDrawingService.focusDrawing(e))}))}},A.SheetDrawingUpdateController=Qt([ie(1,l.Inject(U.SheetSkeletonManagerService)),ie(2,l.ICommandService),ie(3,U.ISheetSelectionRenderService),ie(4,B.IImageIoService),ie(5,j.ILocalFileService),ie(6,w.ISheetDrawingService),ie(7,B.IDrawingManagerService),ie(8,l.IContextService),ie(9,j.IMessageService),ie(10,l.Inject(l.LocaleService)),ie(11,l.Inject(y.SheetsSelectionsService)),ie(12,l.Inject(l.Injector)),ie(13,l.IURLImageService)],A.SheetDrawingUpdateController);const ke={id:"sheet.command.insert-float-image",type:l.CommandType.COMMAND,handler:async(i,r)=>{var s,a;const e=i.get(l.IUniverInstanceService),t=i.get(N.IRenderManagerService),n=(s=N.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET,e,t))==null?void 0:s.with(A.SheetDrawingUpdateController);if(!n)return!1;const o=r==null?void 0:r.files;if(o){const c=o.map(g=>n.insertFloatImageByFile(g));return(await Promise.all(c)).every(g=>g)}else return(a=n.insertFloatImage())!=null?a:!1}},ft={id:"sheet.command.insert-cell-image",type:l.CommandType.COMMAND,handler:i=>{var t,n;const r=i.get(l.IUniverInstanceService),e=i.get(N.IRenderManagerService);return(n=(t=N.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET,r,e))==null?void 0:t.with(A.SheetDrawingUpdateController).insertCellImage())!=null?n:!1}},Te={id:"sheet.command.move-drawing",type:l.CommandType.COMMAND,handler:(i,r)=>{const e=i.get(l.ICommandService),t=i.get(w.ISheetDrawingService),n=i.get(U.ISheetSelectionRenderService),{direction:o}=r,s=t.getFocusDrawings();if(s.length===0)return!1;const a=s[0].unitId,c=s.map(u=>{const{transform:d}=u;if(d==null)return null;const m={...d},{left:h=0,top:p=0}=d;return o===l.Direction.UP?m.top=p-1:o===l.Direction.DOWN?m.top=p+1:o===l.Direction.LEFT?m.left=h-1:o===l.Direction.RIGHT&&(m.left=h+1),{...u,transform:m,sheetTransform:x(m,n),axisAlignSheetTransform:G(m,n)}}).filter(u=>u!=null);return e.syncExecuteCommand(De.id,{unitId:a,drawings:c})?(e.syncExecuteCommand(K.id,[a]),!0):!1}};var tn=Object.getOwnPropertyDescriptor,nn=(i,r,e,t)=>{for(var n=t>1?void 0:t?tn(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},He=(i,r)=>(e,t)=>r(e,t,i),fe=(i=>(i.CELL_ADDRESS="cellAddress",i.COLUMN_VALUE="columnValue",i))(fe||{});const Ve=l.createIdentifier("sheets-drawing-ui.batch-save-images.service");function wt(i){let r="",e=i;for(;e>=0;)r=String.fromCharCode(e%26+65)+r,e=Math.floor(e/26)-1;return r}function Xe(i,r){return`${wt(r)}${i+1}`}function rn(i){const r=Xe(i.startRow,i.startColumn),e=Xe(i.endRow,i.endColumn);return r===e?r:`${r}:${e}`}function Ut(i){var r,e,t,n;return!!((e=(r=i==null?void 0:i.p)==null?void 0:r.drawingsOrder)!=null&&e.length&&((n=(t=i==null?void 0:i.p)==null?void 0:t.drawingsOrder)==null?void 0:n.length)>0)}function Pt(i){var t,n,o;if(!((n=(t=i.p)==null?void 0:t.drawingsOrder)!=null&&n.length)||!((o=i.p)!=null&&o.drawings))return null;const r=i.p.drawingsOrder[0],e=i.p.drawings[r];return!e||!("source"in e)||!("imageSourceType"in e)?null:e}function vt(i,r){if(r===l.ImageSourceType.BASE64){const e=i.match(/^data:image\/(\w+);/);if(e)return e[1]==="jpeg"?"jpg":e[1]}if(r===l.ImageSourceType.URL){const e=i.match(/\.(\w+)(?:\?|$)/);if(e)return e[1].toLowerCase()}return"png"}async function Nt(i,r){if(r===l.ImageSourceType.BASE64)return(await fetch(i)).blob();if(r===l.ImageSourceType.URL)return(await fetch(i)).blob();throw new Error("UUID image type requires additional handling")}A.BatchSaveImagesService=class extends l.Disposable{constructor(r,e,t,n){super(),this._univerInstanceService=r,this._selectionService=e,this._imageIoService=t,this._urlImageService=n}registerURLImageDownloader(r){return this._urlImageService.registerURLImageDownloader(r)}getCellImagesInSelection(){const r=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!r)return[];const e=r.getActiveSheet();if(!e)return[];const t=this._selectionService.getCurrentSelections();if(!t||t.length===0)return[];const n=e.getCellMatrix(),o=[];for(const s of t){const{startRow:a,endRow:c,startColumn:g,endColumn:u}=s.range;for(let d=a;d<=c;d++)for(let m=g;m<=u;m++){const h=n.getValue(d,m);if(Ut(h)){const p=Pt(h);p&&o.push({row:d,col:m,cellAddress:Xe(d,m),source:p.source,imageSourceType:p.imageSourceType,imageId:p.drawingId})}}}return o}getCellImagesFromRanges(r,e,t){const n=this._univerInstanceService.getUnit(r,l.UniverInstanceType.UNIVER_SHEET);if(!n)return[];const o=n.getSheetBySheetId(e);if(!o)return[];const s=o.getCellMatrix(),a=[];for(const c of t){const{startRow:g,endRow:u,startColumn:d,endColumn:m}=c;for(let h=g;h<=u;h++)for(let p=d;p<=m;p++){const S=s.getValue(h,p);if(Ut(S)){const f=Pt(S);f&&a.push({row:h,col:p,cellAddress:Xe(h,p),source:f.source,imageSourceType:f.imageSourceType,imageId:f.drawingId})}}}return a}getDataColumns(){var m,h,p,S;const r=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!r)return[];const e=r.getActiveSheet();if(!e)return[];const t=this._selectionService.getCurrentSelections();if(!t||t.length===0)return[];const n=e.getCellMatrix(),o=n.getDataRange();let s=1/0,a=-1/0;const c=new Set;for(const f of t){s=Math.min(s,f.range.startRow),a=Math.max(a,f.range.endRow);for(let v=f.range.startColumn;v<=f.range.endColumn;v++)c.add(v)}const g=new Set;for(let f=o.startColumn;f<=o.endColumn;f++)if(!c.has(f))for(let v=s;v<=a;v++){const I=n.getValue(v,f);if(I&&(((m=I.v)==null?void 0:m.toString())||((S=(p=(h=I.p)==null?void 0:h.body)==null?void 0:p.dataStream)==null?void 0:S.trim())||"")){g.add(f);break}}const u=[],d=Array.from(g).sort((f,v)=>f-v);for(const f of d)u.push({index:f,label:wt(f)});return u}getDataColumnsForRanges(r,e,t){var p,S,f,v;const n=this._univerInstanceService.getUnit(r,l.UniverInstanceType.UNIVER_SHEET);if(!n)return[];const o=n.getSheetBySheetId(e);if(!o)return[];const s=o.getCellMatrix(),a=s.getDataRange();let c=1/0,g=-1/0;const u=new Set;for(const I of t){c=Math.min(c,I.startRow),g=Math.max(g,I.endRow);for(let T=I.startColumn;T<=I.endColumn;T++)u.add(T)}const d=new Set;for(let I=a.startColumn;I<=a.endColumn;I++)if(!u.has(I))for(let T=c;T<=g;T++){const O=s.getValue(T,I);if(O&&(((p=O.v)==null?void 0:p.toString())||((v=(f=(S=O.p)==null?void 0:S.body)==null?void 0:f.dataStream)==null?void 0:v.trim())||"")){d.add(I);break}}const m=[],h=Array.from(d).sort((I,T)=>I-T);for(const I of h)m.push({index:I,label:wt(I)});return m}getSelectionRangeNotation(){const r=this._selectionService.getCurrentSelections();return!r||r.length===0?"":r.map(e=>rn(e.range)).join(", ")}getSelectionRowRange(){const r=this._selectionService.getCurrentSelections();if(!r||r.length===0)return null;let e=1/0,t=-1/0;for(const n of r)e=Math.min(e,n.range.startRow),t=Math.max(t,n.range.endRow);return{startRow:e,endRow:t}}getSelectionColumnIndices(){const r=this._selectionService.getCurrentSelections();if(!r||r.length===0)return new Set;const e=new Set;for(const t of r)for(let n=t.range.startColumn;n<=t.range.endColumn;n++)e.add(n);return e}generateFileName(r,e){var s,a,c,g;const t=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),n=vt(r.source,r.imageSourceType),o=[];for(const u of e.fileNameParts)if(u==="cellAddress")o.push(r.cellAddress);else if(u==="columnValue"&&e.columnIndex!==void 0){const d=t==null?void 0:t.getActiveSheet();if(d){const h=d.getCellMatrix().getValue(r.row,e.columnIndex);if(h){const p=((s=h.v)==null?void 0:s.toString())||((g=(c=(a=h.p)==null?void 0:a.body)==null?void 0:c.dataStream)==null?void 0:g.trim())||"";if(p){const S=p.replace(/[<>:"/\\|?*]/g,"_").trim();S&&o.push(S)}}}}return o.length===0?`${r.cellAddress}.${n}`:`${o.join("_")}.${n}`}generateFileNameWithContext(r,e,t,n){var c,g,u,d;const o=this._univerInstanceService.getUnit(t,l.UniverInstanceType.UNIVER_SHEET),s=vt(r.source,r.imageSourceType),a=[];for(const m of e.fileNameParts)if(m==="cellAddress")a.push(r.cellAddress);else if(m==="columnValue"&&e.columnIndex!==void 0){const h=o==null?void 0:o.getSheetBySheetId(n);if(h){const S=h.getCellMatrix().getValue(r.row,e.columnIndex);if(S){const f=((c=S.v)==null?void 0:c.toString())||((d=(u=(g=S.p)==null?void 0:g.body)==null?void 0:u.dataStream)==null?void 0:d.trim())||"";if(f){const v=f.replace(/[<>:"/\\|?*]/g,"_").trim();v&&a.push(v)}}}}return a.length===0?`${r.cellAddress}.${s}`:`${a.join("_")}.${s}`}async saveImages(r,e){var o;const t=await window.showDirectoryPicker({mode:"readwrite"}),n=new Map;for(const s of r){let a=this.generateFileName(s,e);const c=a.replace(/\.\w+$/,""),g=((o=a.match(/\.\w+$/))==null?void 0:o[0])||".png",u=n.get(c)||0;u>0&&(a=`${c}_${u}${g}`),n.set(c,u+1);try{const d=await this._getImageBlob(s),h=await(await t.getFileHandle(a,{create:!0})).createWritable();await h.write(d),await h.close()}catch(d){throw console.error(`Failed to save image ${a}:`,d),d}}}async saveImagesWithContext(r,e,t,n){var a;const o=await window.showDirectoryPicker({mode:"readwrite"}),s=new Map;for(const c of r){let g=this.generateFileNameWithContext(c,e,t,n);const u=g.replace(/\.\w+$/,""),d=((a=g.match(/\.\w+$/))==null?void 0:a[0])||".png",m=s.get(u)||0;m>0&&(g=`${u}_${m}${d}`),s.set(u,m+1);try{const h=await this._getImageBlob(c),S=await(await o.getFileHandle(g,{create:!0})).createWritable();await S.write(h),await S.close()}catch(h){throw console.error(`Failed to save image ${g}:`,h),h}}}async downloadSingleImage(r){const e=vt(r.source,r.imageSourceType),t=`${r.cellAddress}.${e}`;try{const n=await this._getImageBlob(r),o=URL.createObjectURL(n),s=document.createElement("a");s.href=o,s.download=t,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(o)}catch(n){throw console.error(`Failed to download image ${t}:`,n),n}}async _getImageBlob(r){if(r.imageSourceType===l.ImageSourceType.UUID){const e=await this._imageIoService.getImage(r.source);return Nt(e,l.ImageSourceType.URL)}return r.imageSourceType===l.ImageSourceType.URL?this._urlImageService.downloadImage(r.source):Nt(r.source,r.imageSourceType)}},A.BatchSaveImagesService=nn([He(0,l.IUniverInstanceService),He(1,l.Inject(y.SheetsSelectionsService)),He(2,l.IImageIoService),He(3,l.IURLImageService)],A.BatchSaveImagesService);const Me="sheet.dialog.batch-save-images",Re={id:"sheet.command.save-cell-images",type:l.CommandType.COMMAND,handler:async i=>{const r=i.get(j.IDialogService),e=i.get(Ve),t=e.getCellImagesInSelection();if(t.length===1)try{return await e.downloadSingleImage(t[0]),!0}catch(a){return console.error("Failed to download image:",a),!1}const n=i.get(l.LocaleService),o=e.getSelectionRangeNotation(),s=`${n.t("sheetImage.save.title")} (${o})`;return r.open({id:Me,draggable:!0,width:360,title:{title:s},children:{label:Me},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>r.close(Me)}),!0}},kt="COMPONENT_SHEET_DRAWING_PANEL",_t={id:"sidebar.operation.sheet-image",type:l.CommandType.COMMAND,handler:async(i,r)=>{const e=i.get(j.ISidebarService),t=i.get(l.LocaleService),n=i.get(l.IUniverInstanceService),o=i.get(l.ICommandService);return y.getSheetCommandTarget(n)?(r.value==="open"?e.open({header:{title:t.t("sheetImage.panel.title")},children:{label:kt},onClose:()=>{o.syncExecuteCommand(B.SetDrawingSelectedOperation.id,[])},width:360}):e.close(),!0):!1}},It={id:"sheet.operation.edit-sheet-image",type:l.CommandType.OPERATION,handler:(i,r)=>{const e=i.get(l.ICommandService);return r==null?!1:(e.syncExecuteCommand(B.SetDrawingSelectedOperation.id,[r]),e.executeCommand(_t.id,{value:"open"}),!0)}},on="sheets-drawing-ui.config",Wt={},yt={id:"sheet.command.toggle-flip-drawings",type:l.CommandType.COMMAND,handler:(i,r)=>{const e=i.get(l.ICommandService),t=i.get(l.IUndoRedoService),n=i.get(w.ISheetDrawingService),o=i.get(N.IRenderManagerService);if(!r)return!1;const{drawings:s}=r,a=r.flipH,c=r.flipV,g=[],u=[];for(const O of s){const{unitId:D,subUnitId:C,drawingId:M}=O;g.push(D);const R=n.getDrawingData(D,C),k=R==null?void 0:R[M];if(!k)continue;const E={...k.transform};a&&(E.flipX=!E.flipX),c&&(E.flipY=!E.flipY);const P=o.getRenderById(D),_=P==null?void 0:P.with(U.ISheetSelectionRenderService);if(!_)continue;const b=x(E,_),F=G(E,_),L={unitId:D,subUnitId:C,drawingType:k.drawingType,drawingId:M,transform:E,sheetTransform:b,axisAlignSheetTransform:F};if(k.drawingType===l.DrawingTypeEnum.DRAWING_IMAGE){const ne=sn(i,D);if(ne){const z=B.getDrawingShapeKeyByDrawingSearch({unitId:D,subUnitId:C,drawingId:M}),q=ne.getObject(z);if(q){const re=q.srcRect;if(re){let V;const{left:J=0,top:$=0,right:ae=0,bottom:ue=0}=re;if(a){const le=J+(ae-J)/2,ve=le-(ae-J)/2,_e=le+(ae-J)/2;V={left:ve,top:$,right:_e,bottom:ue}}if(c){const le=$+(ue-$)/2,ve=le-(ue-$)/2,_e=le+(ue-$)/2;V={left:J,top:ve,right:ae,bottom:_e}}V&&(L.srcRect=V)}}}}u.push(L)}if(u.length===0)return!1;const d=n.getBatchUpdateOp(u),{unitId:m,subUnitId:h,undo:p,redo:S,objects:f}=d,v={id:w.SetDrawingApplyMutation.id,params:{unitId:m,subUnitId:h,op:S,objects:f,type:w.DrawingApplyType.UPDATE}},I={id:w.SetDrawingApplyMutation.id,params:{unitId:m,subUnitId:h,op:p,objects:f,type:w.DrawingApplyType.UPDATE}};return l.sequenceExecute([v],e)?(t.pushUndoRedo({unitID:m,undoMutations:[I,{id:K.id,params:g}],redoMutations:[v,{id:K.id,params:g}]}),!0):!1}};function sn(i,r){const t=i.get(N.IRenderManagerService).getRenderById(r);return t?t.scene:null}var an=Object.getOwnPropertyDescriptor,cn=(i,r,e,t)=>{for(var n=t>1?void 0:t?an(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},ce=(i,r)=>(e,t)=>r(e,t,i);let Ke=class extends l.RxDisposable{constructor(r,e,t,n,o,s,a,c,g,u){super();se(this,"_initImagePopupMenu",new Set);this._injector=r,this._localeService=e,this._drawingManagerService=t,this._canvasPopManagerService=n,this._renderManagerService=o,this._univerInstanceService=s,this._messageService=a,this._contextService=c,this._ioService=g,this._commandService=u,this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).subscribe(r=>this._create(r)),this._univerInstanceService.getTypeOfUnitDisposed$(l.UniverInstanceType.UNIVER_SHEET).subscribe(r=>this._dispose(r)),this._univerInstanceService.getAllUnitsForType(l.UniverInstanceType.UNIVER_SHEET).forEach(r=>this._create(r)),this._setupLoadingStatus()}_setupLoadingStatus(){const r="image-upload-loading";let e;this.disposeWithMe(this._ioService.change$.subscribe(t=>{t>0&&!e?e=this._messageService.show({id:r,type:X.MessageType.Loading,content:`${this._localeService.t("uploadLoading.loading")}: ${t}`,duration:0}):t===0&&(e==null||e.dispose(),e=void 0)}))}_dispose(r){super.dispose();const e=r.getUnitId();this._renderManagerService.removeRender(e),this._initImagePopupMenu.delete(e)}_create(r){if(!r)return;const e=r.getUnitId();this._renderManagerService.has(e)&&!this._initImagePopupMenu.has(e)&&(this._popupMenuListener(e),this._initImagePopupMenu.add(e))}_hasCropObject(r){const e=r.getAllObjectsByOrder();for(const t of e)if(t instanceof Se.ImageCropperObject)return!0;return!1}_popupMenuListener(r){var o;const e=(o=this._renderManagerService.getRenderById(r))==null?void 0:o.scene;if(!e)return;const t=e.getTransformerByCreate();if(!t)return;let n;this.disposeWithMe(t.createControl$.subscribe(()=>{if(this._contextService.setContextValue(l.FOCUSING_COMMON_DRAWINGS,!0),this._hasCropObject(e))return;const s=t.getSelectedObjectMap();if(s.size>1){n==null||n.dispose();return}const a=s.values().next().value;if(!a)return;const c=a.oKey,g=this._drawingManagerService.getDrawingOKey(c);if(!g)return;const{unitId:u,subUnitId:d,drawingId:m,drawingType:h}=g,p=g.data;if(p&&p.disablePopup)return;n==null||n.dispose();const S=this._canvasPopManagerService.getFeatureMenu(u,d,m,h);n=this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(a,{componentKey:Se.COMPONENT_IMAGE_POPUP_MENU,direction:"horizontal",offset:[2,0],extraProps:{menuItems:S||this._getImageMenuItems(u,d,m,h)}}))})),this.disposeWithMe(t.clearControl$.subscribe(()=>{n==null||n.dispose(),this._contextService.setContextValue(l.FOCUSING_COMMON_DRAWINGS,!1),this._commandService.syncExecuteCommand(B.SetDrawingSelectedOperation.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(s=>{s[l.FOCUSING_COMMON_DRAWINGS]===!1&&(n==null||n.dispose())})),this.disposeWithMe(t.changing$.subscribe(()=>{n==null||n.dispose()}))}_getImageMenuItems(r,e,t,n){return[{label:"image-popup.edit",index:0,commandId:It.id,commandParams:{unitId:r,subUnitId:e,drawingId:t},disable:n===l.DrawingTypeEnum.DRAWING_DOM},{label:"image-popup.delete",index:1,commandId:Ce.id,commandParams:{unitId:r,drawings:[{unitId:r,subUnitId:e,drawingId:t}]},disable:!1},{label:"image-popup.crop",index:2,commandId:Se.OpenImageCropOperation.id,commandParams:{unitId:r,subUnitId:e,drawingId:t},disable:n===l.DrawingTypeEnum.DRAWING_DOM},{label:"image-popup.flipH",index:2,commandId:yt.id,commandParams:{unitId:r,flipH:!0,drawings:[{unitId:r,subUnitId:e,drawingId:t}]},disable:n===l.DrawingTypeEnum.DRAWING_DOM},{label:"image-popup.flipV",index:2,commandId:yt.id,commandParams:{unitId:r,flipV:!0,drawings:[{unitId:r,subUnitId:e,drawingId:t}]},disable:n===l.DrawingTypeEnum.DRAWING_DOM},{label:"image-popup.reset",index:3,commandId:Se.ImageResetSizeOperation.id,commandParams:[{unitId:r,subUnitId:e,drawingId:t}],disable:n===l.DrawingTypeEnum.DRAWING_DOM}]}};Ke=cn([ce(0,l.Inject(l.Injector)),ce(1,l.Inject(l.LocaleService)),ce(2,B.IDrawingManagerService),ce(3,l.Inject(U.SheetCanvasPopManagerService)),ce(4,N.IRenderManagerService),ce(5,l.IUniverInstanceService),ce(6,j.IMessageService),ce(7,l.IContextService),ce(8,l.IImageIoService),ce(9,l.ICommandService)],Ke);var dn=Object.getOwnPropertyDescriptor,ln=(i,r,e,t)=>{for(var n=t>1?void 0:t?dn(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},ze=(i,r)=>(e,t)=>r(e,t,i);let Ct=class extends l.Disposable{constructor(r,e,t,n,o){super();se(this,"_isSetCursor",!1);this._context=r,this._hoverManagerService=e,this._selectionsService=t,this._drawingRenderService=n,this._sheetSkeletonManagerService=o,this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe(W.throttleTime(33)).subscribe(r=>{var t,n;let e=[];r!==null&&(e=this._selectionsService.getWorkbookSelections(this._context.unitId).getCurrentSelections()),e.length>0&&(r==null?void 0:r.unitId)===this._context.unitId&&(r!=null&&r.drawing)&&e.length===1&&((t=e[0].primary)==null?void 0:t.actualRow)===r.row&&((n=e[0].primary)==null?void 0:n.actualColumn)===r.col?(this._isSetCursor=!0,this._context.scene.setCursor(N.CURSOR_TYPE.ZOOM_IN)):this._isSetCursor&&(this._isSetCursor=!1,this._context.scene.resetCursor())}))}_initImageClick(){this.disposeWithMe(this._hoverManagerService.currentClickedCell$.subscribe(r=>{var e;if(r!=null&&r.drawing&&this._isSetCursor){const t=r.drawing.drawing.drawingOrigin,n=(e=this._sheetSkeletonManagerService.getCurrentSkeleton())==null?void 0:e.imageCacheMap.getImage(t.imageSourceType,t.source);if(!n)return;this._drawingRenderService.previewImage("preview-cell-image",n.src,n.width,n.height),this._context.scene.resetCursor(),this._isSetCursor=!1}}))}};Ct=ln([ze(1,l.Inject(U.HoverManagerService)),ze(2,l.Inject(y.SheetsSelectionsService)),ze(3,l.Inject(Se.DrawingRenderService)),ze(4,l.Inject(U.SheetSkeletonManagerService))],Ct);var un=Object.getOwnPropertyDescriptor,gn=(i,r,e,t)=>{for(var n=t>1?void 0:t?un(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},qe=(i,r)=>(e,t)=>r(e,t,i);let Dt=class extends l.Disposable{constructor(i,r,e,t,n){super(),this._context=i,this._sheetDrawingService=r,this._drawingManagerService=e,this._sheetSelectionRenderService=t,this._sheetSkeletonManagerService=n,this._init()}_init(){this._drawingInitializeListener()}_drawingInitializeListener(){this._sheetDrawingService.initializeNotification(this._context.unitId);const i=this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId);for(const r in i){const e=i[r];for(const t in e.data){const n=e.data[t];n.sheetTransform&&(n.transform=te(n.sheetTransform,this._sheetSelectionRenderService,this._sheetSkeletonManagerService))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};Dt=gn([qe(1,w.ISheetDrawingService),qe(2,B.IDrawingManagerService),qe(3,l.Inject(U.ISheetSelectionRenderService)),qe(4,l.Inject(U.SheetSkeletonManagerService))],Dt);var hn=Object.getOwnPropertyDescriptor,mn=(i,r,e,t)=>{for(var n=t>1?void 0:t?hn(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},Ee=(i,r)=>(e,t)=>r(e,t,i);function Bt(i,r,e){var t,n,o,s;if(((n=(t=e==null?void 0:e.p)==null?void 0:t.body)==null?void 0:n.dataStream.length)===3&&((s=(o=e.p)==null?void 0:o.drawingsOrder)==null?void 0:s.length)===1){const a=e.p.drawings[e.p.drawingsOrder[0]],c=St(i,{unitId:r.unitId,subUnitId:r.subUnitId,row:r.row,col:r.col},a.docTransform.size.width,a.docTransform.size.height,a.docTransform.angle);if(c)return a.transform.width=c.width,a.transform.height=c.height,a.docTransform.size.width=c.width,a.docTransform.size.height=c.height,a.transform.left=0,a.transform.top=0,a.docTransform.positionH.posOffset=0,a.docTransform.positionV.posOffset=0,e.p.documentStyle.pageSize.width=1/0,e.p.documentStyle.pageSize.height=1/0,!0}return!1}let Ze=class extends l.Disposable{constructor(i,r,e,t,n,o){super(),this._commandService=i,this._sheetInterceptorService=r,this._injector=e,this._drawingManagerService=t,this._docDrawingController=n,this._editorBridgeService=o,this._handleInitEditor(),this._initCellContentInterceptor()}_handleInitEditor(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(i=>{i.visible?i.visible&&(this._drawingManagerService.removeDrawingDataForUnit(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)):this._drawingManagerService.removeDrawingDataForUnit(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)})),this.disposeWithMe(this._commandService.onCommandExecuted(i=>{i.id===Ge.ReplaceSnapshotCommand.id&&i.params.unitId===l.DOCS_ZEN_EDITOR_UNIT_ID_KEY&&(this._drawingManagerService.removeDrawingDataForUnit(l.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(l.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(l.DOCS_ZEN_EDITOR_UNIT_ID_KEY))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(y.INTERCEPTOR_POINT.CELL_CONTENT,{effect:l.InterceptorEffectEnum.Style,priority:y.InterceptCellContentPriority.CELL_IMAGE,handler:(i,r,e)=>{var t;return i!=null&&i.p&&((t=i.p.drawingsOrder)!=null&&t.length)&&(i===r.rawData&&(i={...r.rawData}),i.interceptorStyle||(i.interceptorStyle={}),i.interceptorStyle.tr={a:0},Bt(this._injector,{unitId:r.unitId,subUnitId:r.subUnitId,row:r.row,col:r.col},i)),e(i)}}))}};Ze=mn([Ee(0,l.ICommandService),Ee(1,l.Inject(y.SheetInterceptorService)),Ee(2,l.Inject(l.Injector)),Ee(3,B.IDrawingManagerService),Ee(4,l.Inject(At.DocDrawingController)),Ee(5,l.Inject(U.IEditorBridgeService))],Ze);var pn=Object.getOwnPropertyDescriptor,Sn=(i,r,e,t)=>{for(var n=t>1?void 0:t?pn(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},jt=(i,r)=>(e,t)=>r(e,t,i);let Je=class extends l.Disposable{constructor(i,r){super(),this._autoFillService=i,this._injector=r,this._initAutoFillHooks()}_initAutoFillHooks(){this.disposeWithMe(this._autoFillService.addHook({id:"sheet-cell-image-autofill",onBeforeSubmit:(i,r,e,t)=>{new l.ObjectMatrix(t).forValue((n,o,s)=>{Bt(this._injector,{unitId:i.unitId,subUnitId:i.subUnitId,row:n,col:o},s)})}}))}};Je=Sn([jt(0,l.Inject(y.IAutoFillService)),jt(1,l.Inject(l.Injector))],Je);var fn=Object.getOwnPropertyDescriptor,wn=(i,r,e,t)=>{for(var n=t>1?void 0:t?fn(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},We=(i,r)=>(e,t)=>r(e,t,i);const vn=[l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,l.DOCS_ZEN_EDITOR_UNIT_ID_KEY];let Qe=class extends l.Disposable{constructor(i,r,e,t,n){super(),this._commandService=i,this._univerInstanceService=r,this._dialogService=e,this._renderManagerService=t,this._localeService=n,this._initDocImageCopyPasteHooks()}_setCellImage(i){var n;const r=l.createDocumentModelWithStyle("",{}),e=(n=N.getCurrentTypeOfRenderer(l.UniverInstanceType.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService))==null?void 0:n.with(U.EditingRenderController),t=l.BuildTextUtils.drawing.add({documentDataModel:r,drawings:[i],selection:{collapsed:!0,startOffset:0,endOffset:0}});t&&(r.apply(t),e&&e.submitCellData(r))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(i=>{var r,e;if(i.id===Ge.InnerPasteCommand.id){const t=i.params,{doc:n}=t,o=this._univerInstanceService.getCurrentUnitOfType(l.UniverInstanceType.UNIVER_DOC);if(o==null||!Object.keys((r=n.drawings)!=null?r:{}).length)return;const s=o.getUnitId();if(vn.includes(s)){if(s!==l.DOCS_ZEN_EDITOR_UNIT_ID_KEY){const a=()=>{this._dialogService.close("sheet-cell-image-copy-paste"),this._commandService.syncExecuteCommand(U.SetCellEditVisibleOperation.id,{visible:!1})};((e=o.getBody())==null?void 0:e.dataStream)===`\r
|
|
15
|
-
`?(this._commandService.syncExecuteCommand(U.SetCellEditVisibleOperation.id,{visible:!1}),this._setCellImage(Object.values(n.drawings)[0])):this._dialogService.open({id:"sheet-cell-image-copy-paste",title:{label:this._localeService.t("cell-image.pasteTitle")},children:{label:this._localeService.t("cell-image.pasteContent")},width:320,destroyOnClose:!0,onClose:a,showOk:!0,showCancel:!0,onOk:()=>{a(),this._setCellImage(Object.values(n.drawings)[0])},onCancel:a})}throw new Error("Sheet cell image copy paste is not supported in this unit")}}}))}};Qe=wn([We(0,l.ICommandService),We(1,l.IUniverInstanceService),We(2,j.IDialogService),We(3,N.IRenderManagerService),We(4,l.Inject(l.LocaleService))],Qe);var _n=Object.getOwnPropertyDescriptor,In=(i,r,e,t)=>{for(var n=t>1?void 0:t?_n(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},Be=(i,r)=>(e,t)=>r(e,t,i);const Ft="image/png";function yn(i){const r=i.split(","),e=atob(r[1]),t=e.length,n=new Uint8Array(t);for(let o=0;o<t;o++)n[o]=e.charCodeAt(o);return new Blob([n],{type:Ft})}function Cn(i){const r=new ClipboardItem({[Ft]:yn(i)});navigator.clipboard.write([r]).catch(e=>{console.error("Could not copy image using clipboard API: ",e)})}function Dn(){function i(){const t=document.createElement("input");return t.style.position="absolute",t.style.height="1px",t.style.width="1px",t.style.opacity="0",t}const r=document.activeElement,e=i();return document.body.appendChild(e),e.focus(),()=>{e.blur(),document.body.removeChild(e),r instanceof HTMLElement&&r.focus()}}const Lt=[U.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,U.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,U.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,U.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA];let et=class extends l.Disposable{constructor(r,e,t,n,o){super();se(this,"_copyInfo");this._sheetClipboardService=r,this._renderManagerService=e,this._drawingService=t,this._clipboardInterfaceService=n,this._commandService=o,this._initCopyPaste()}get _focusedDrawings(){return this._drawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:"SHEET_IMAGE_UI_PLUGIN",onBeforeCopy:(r,e,t,n)=>{this._copyInfo=null;const o=this._focusedDrawings;if(o.length>0){const[s]=o;if(s.drawingType!==l.DrawingTypeEnum.DRAWING_IMAGE)return;if(n===U.COPY_TYPE.CUT){const c={unitId:r,drawings:[s]};this._commandService.executeCommand(Ce.id,c)}setTimeout(()=>{const c=Dn();s.drawingType===l.DrawingTypeEnum.DRAWING_IMAGE&&s.imageSourceType===B.ImageSourceType.BASE64?Cn(s.source):this._clipboardInterfaceService.writeText(""),c()},200);const a={unitId:s.unitId,subUnitId:s.subUnitId,drawings:[s]};this._copyInfo=a}else{const s=this._createDrawingsCopyInfoByRange(r,e,t);this._copyInfo=s}},onPasteCells:(r,e,t,n)=>{if(!this._copyInfo)return{redos:[],undos:[]};const{copyType:o=U.COPY_TYPE.COPY,pasteType:s}=n,{range:a}=r||{},{range:c,unitId:g,subUnitId:u}=e;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({pasteType:s,unitId:g,subUnitId:u,pasteRange:c},{copyRange:a,copyType:o}):this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:s},U.COPY_TYPE.COPY)},onPastePlainText:(r,e)=>({undos:[],redos:[]}),onPasteUnrecognized:r=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:r,pasteType:U.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},U.COPY_TYPE.COPY):{undos:[],redos:[]},onPasteFiles:(r,e)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:r,pasteType:U.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},U.COPY_TYPE.COPY);{const t=e.filter(n=>n.type.includes("image"));if(t.length)return{undos:[],redos:[{id:ke.id,params:{files:t}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(r,e,t){var m;const n=(m=this._renderManagerService.getRenderById(r))==null?void 0:m.with(U.SheetSkeletonManagerService);if(!n)return;const o=n.attachRangeWithCoord(t);if(!o)return;const{startX:s,endX:a,startY:c,endY:g}=o,u=this._drawingService.getDrawingData(r,e),d=this._focusedDrawings.slice();if(Object.keys(u).forEach(h=>{const p=u[h];if(p.drawingType!==l.DrawingTypeEnum.DRAWING_IMAGE)return;const{transform:S}=p;if(p.anchorType!==w.SheetDrawingAnchorType.Both||!S)return;const{left:f=0,top:v=0,width:I=0,height:T=0}=S,{drawingStartX:O,drawingEndX:D,drawingStartY:C,drawingEndY:M}={drawingStartX:f,drawingEndX:f+I,drawingStartY:v,drawingEndY:v+T};s<=O&&D<=a&&c<=C&&M<=g&&d.push(p)}),d.length)return{copyRange:t,drawings:d,unitId:r,subUnitId:e}}_generateSingleDrawingPasteMutations(r,e){const{pasteType:t,pasteTo:n}=r;if(Lt.includes(t))return{redos:[],undos:[]};const{unitId:o,subUnitId:s,range:a}=n,c=this._renderManagerService.getRenderById(o),g=c==null?void 0:c.with(U.SheetSkeletonManagerService),u=c==null?void 0:c.with(U.ISheetSelectionRenderService),d=this._copyInfo;if(!g||!u)return{redos:[],undos:[]};const{drawings:m}=d,h=y.discreteRangeToRange(a);return this._generateMutations(m,{unitId:o,subUnitId:s,isCut:e===U.COPY_TYPE.CUT,getTransform:(p,S)=>{var I,T;const f=g.attachRangeWithCoord({startRow:h.startRow,endRow:h.endRow,startColumn:h.startColumn,endColumn:h.endColumn}),v={...p,left:f==null?void 0:f.startX,top:f==null?void 0:f.startY};return{transform:v,sheetTransform:(I=x(v,u))!=null?I:S,axisAlignSheetTransform:(T=G(v,u))!=null?T:S}}})}_generateMutations(r,e){const{unitId:t,subUnitId:n,getTransform:o,isCut:s}=e,a=[],c=[],{_drawingService:g}=this;return r.forEach(u=>{const{transform:d,sheetTransform:m}=u;if(!d)return;const h=o(d,m),p={...u,unitId:t,subUnitId:n,drawingId:s?u.drawingId:l.generateRandomId(),transform:h.transform,sheetTransform:h.sheetTransform,axisAlignSheetTransform:h.axisAlignSheetTransform};if(s){const{undo:S,redo:f,objects:v}=g.getBatchUpdateOp([p]);a.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,type:w.DrawingApplyType.UPDATE,op:f,objects:v}}),c.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,type:w.DrawingApplyType.UPDATE,op:S,objects:v}})}else{const{undo:S,redo:f,objects:v}=g.getBatchAddOp([p]);a.push({id:w.SetDrawingApplyMutation.id,params:{op:f,unitId:t,subUnitId:n,objects:v,type:w.DrawingApplyType.INSERT}}),c.push({id:w.SetDrawingApplyMutation.id,params:{op:S,unitId:t,subUnitId:n,objects:v,type:w.DrawingApplyType.REMOVE}})}}),{redos:a,undos:c}}_generateRangeDrawingsPasteMutations(r,e){var R;const{unitId:t,subUnitId:n,pasteType:o,pasteRange:s}=r,{copyRange:a,copyType:c}=e;if(Lt.includes(o))return{redos:[],undos:[]};const g=(R=this._renderManagerService.getRenderById(t))==null?void 0:R.with(U.SheetSkeletonManagerService);if(!g||!this._copyInfo)return{redos:[],undos:[]};const{drawings:u}=this._copyInfo;if(!a)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:t,subUnitId:n,range:y.discreteRangeToRange(s)},pasteType:o},c);const{ranges:[d,m],mapFunc:h}=U.virtualizeDiscreteRanges([a,s]),{row:p,col:S}=h(d.startRow,d.startColumn),{row:f,col:v}=h(m.startRow,m.startColumn),I=g.attachRangeWithCoord({startRow:p,endRow:p,startColumn:S,endColumn:S}),T=g.attachRangeWithCoord({startRow:f,endRow:f,startColumn:v,endColumn:v});if(!I||!T||!this._copyInfo)return{redos:[],undos:[]};const O=T.startX-I.startX,D=T.startY-I.startY,C=f-p,M=v-S;return this._generateMutations(u,{unitId:t,subUnitId:n,getTransform:(k,E)=>{var F,L,ee;const P={...k,left:((F=k==null?void 0:k.left)!=null?F:0)+O,top:((L=k==null?void 0:k.top)!=null?L:0)+D},_=this._renderManagerService.getRenderById(t),b=_==null?void 0:_.with(U.ISheetSelectionRenderService);return b?{transform:P,sheetTransform:{...E,to:{...E.to,row:E.to.row+C,column:E.to.column+M},from:{...E.from,row:E.from.row+C,column:E.from.column+M}},axisAlignSheetTransform:(ee=G(P,b))!=null?ee:E}:{transform:P,sheetTransform:{...E,to:{...E.to,row:E.to.row+C,column:E.to.column+M},from:{...E.from,row:E.from.row+C,column:E.from.column+M}},axisAlignSheetTransform:{...E,to:{...E.to,row:E.to.row+C,column:E.to.column+M},from:{...E.from,row:E.from.row+C,column:E.from.column+M}}}},isCut:c===U.COPY_TYPE.CUT})}};et=In([Be(0,U.ISheetClipboardService),Be(1,N.IRenderManagerService),Be(2,B.IDrawingManagerService),Be(3,j.IClipboardInterfaceService),Be(4,l.ICommandService)],et);var Tn=Object.getOwnPropertyDescriptor,Mn=(i,r,e,t)=>{for(var n=t>1?void 0:t?Tn(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},je=(i,r)=>(e,t)=>r(e,t,i);let tt=class extends l.Disposable{constructor(i,r,e,t,n){super(),this._drawingManagerService=i,this._renderManagerService=r,this._permissionService=e,this._univerInstanceService=t,this._userManagerService=n,this._initDrawingVisible(),this._initDrawingEditable(),this._initViewPermissionChange(),this._initEditPermissionChange()}_initDrawingVisible(){const i=this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),r=this._userManagerService.currentUser$,e=W.combineLatest([i,r]);this.disposeWithMe(e.pipe(W.switchMap(([t,n])=>t?t.activeSheet$.pipe(W.tap(o=>{if(!o){this._drawingManagerService.setDrawingVisible(!1);return}const s=t.getUnitId(),a=o.getSheetId();this._permissionService.composePermission([new y.WorkbookViewPermission(s).id,new y.WorksheetViewPermission(s,a).id]).every(g=>g.value)?this._drawingManagerService.setDrawingVisible(!0):this._handleDrawingVisibilityFalse(t,o)})):(this._drawingManagerService.setDrawingVisible(!1),W.EMPTY))).subscribe())}_handleDrawingVisibilityFalse(i,r){this._drawingManagerService.setDrawingVisible(!1);const e=i.getUnitId(),t=r.getSheetId(),n=this._drawingManagerService.getDrawingData(e,t),o=Object.values(n),s=this._renderManagerService.getRenderById(e),a=s==null?void 0:s.scene;if(!a)return;a.getAllObjectsByOrder().forEach(g=>{g.classType===N.RENDER_CLASS_TYPE.IMAGE&&o.some(u=>g.oKey.includes(u.drawingId))&&a.removeObject(g)})}_initDrawingEditable(){const i=this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),r=this._userManagerService.currentUser$,e=W.combineLatest([i,r]);this.disposeWithMe(e.pipe(W.switchMap(([t,n])=>t?t.activeSheet$.pipe(W.tap(o=>{if(!o){this._drawingManagerService.setDrawingEditable(!1);return}const s=t.getUnitId(),a=o.getSheetId();this._permissionService.composePermission([new y.WorkbookEditablePermission(s).id,new y.WorksheetEditPermission(s,a).id]).every(g=>g.value)?this._drawingManagerService.setDrawingEditable(!0):this._handleDrawingEditableFalse(t,o)})):(this._drawingManagerService.setDrawingEditable(!1),W.EMPTY))).subscribe())}_handleDrawingEditableFalse(i,r){this._drawingManagerService.setDrawingEditable(!1);const e=i.getUnitId(),t=r.getSheetId(),n=this._drawingManagerService.getDrawingData(e,t),o=Object.values(n),s=this._renderManagerService.getRenderById(e),a=s==null?void 0:s.scene;if(!a)return;a.getAllObjectsByOrder().forEach(g=>{g.classType===N.RENDER_CLASS_TYPE.IMAGE&&o.some(u=>g.oKey.includes(u.drawingId))&&a.detachTransformerFrom(g)})}_initViewPermissionChange(){const i=this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),r=this._userManagerService.currentUser$;this.disposeWithMe(W.combineLatest([i,r]).pipe(W.switchMap(([e,t])=>e?e.activeSheet$.pipe(W.switchMap(n=>{if(!n)return W.EMPTY;const o=e.getUnitId(),s=n.getSheetId(),a=this._renderManagerService.getRenderById(o),c=a==null?void 0:a.scene;if(!c)return W.EMPTY;const g=c.getTransformerByCreate();return this._permissionService.composePermission$([new y.WorkbookViewPermission(o).id,new y.WorksheetViewPermission(o,s).id]).pipe(W.map(d=>d.every(m=>m.value)),W.distinctUntilChanged()).pipe(W.map(d=>({permission:d,scene:c,transformer:g,unitId:o,subUnitId:s})))})):W.EMPTY)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:o,subUnitId:s})=>{this._drawingManagerService.setDrawingVisible(e);const a=t.getAllObjectsByOrder(),c=this._drawingManagerService.getDrawingData(o,s),g=Object.values(c);e?this._drawingManagerService.addNotification(g):(a.forEach(u=>{u.classType===N.RENDER_CLASS_TYPE.IMAGE&&g.some(d=>u.oKey.includes(d.drawingId))&&t.removeObject(u)}),n.clearSelectedObjects())},complete:()=>{this._drawingManagerService.setDrawingVisible(!0);const e=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet(),n=e==null?void 0:e.getUnitId(),o=t==null?void 0:t.getSheetId();if(!n||!o)return;const s=this._drawingManagerService.getDrawingData(n,o),a=Object.values(s);this._drawingManagerService.addNotification(a)}}))}_initEditPermissionChange(){const i=this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),r=this._userManagerService.currentUser$;this.disposeWithMe(W.combineLatest([i,r]).pipe(W.switchMap(([e,t])=>e?e.activeSheet$.pipe(W.switchMap(n=>{if(!n)return W.EMPTY;const o=e.getUnitId(),s=n.getSheetId(),a=this._renderManagerService.getRenderById(o),c=a==null?void 0:a.scene;if(!c)return W.EMPTY;const g=c.getTransformerByCreate();return this._permissionService.composePermission$([new y.WorkbookEditablePermission(o).id,new y.WorksheetEditPermission(o,s).id]).pipe(W.map(d=>d.every(m=>m.value)),W.distinctUntilChanged()).pipe(W.map(d=>({permission:d,scene:c,transformer:g,unitId:o,subUnitId:s})))})):W.EMPTY)).subscribe({next:({permission:e,scene:t,transformer:n,unitId:o,subUnitId:s})=>{this._drawingManagerService.setDrawingEditable(e);const a=t.getAllObjectsByOrder(),c=this._drawingManagerService.getDrawingData(o,s),g=Object.values(c);e?(a.forEach(u=>{u.classType===N.RENDER_CLASS_TYPE.IMAGE&&g.some(d=>u.oKey.includes(d.drawingId))&&t.attachTransformerTo(u)}),this._drawingManagerService.addNotification(g)):(a.forEach(u=>{u.classType===N.RENDER_CLASS_TYPE.IMAGE&&g.some(d=>u.oKey.includes(d.drawingId))&&t.detachTransformerFrom(u)}),n.clearSelectedObjects())},complete:()=>{const e=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET);if(!e)return;const t=e.getUnitId(),n=e.getActiveSheet();if(!n)return;const o=n.getSheetId(),s=this._renderManagerService.getRenderById(t),a=s==null?void 0:s.scene;if(!a)return;const c=this._drawingManagerService.getDrawingData(t,o),g=Object.values(c);this._drawingManagerService.setDrawingEditable(!0),a.getAllObjectsByOrder().forEach(d=>{d.classType===N.RENDER_CLASS_TYPE.IMAGE&&g.some(m=>d.oKey.includes(m.drawingId))&&a.detachTransformerFrom(d)})}}))}};tt=Mn([je(0,B.IDrawingManagerService),je(1,N.IRenderManagerService),je(2,l.IPermissionService),je(3,l.IUniverInstanceService),je(4,l.Inject(l.UserManagerService))],tt);var Rn=Object.getOwnPropertyDescriptor,En=(i,r,e,t)=>{for(var n=t>1?void 0:t?Rn(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},Ie=(i,r)=>(e,t)=>r(e,t,i);const $t="univer-sheet-float-dom-";function Yt(i,r,e,t,n,o=!1){const{scaleX:s,scaleY:a}=r.getAncestorScale(),c=r.getViewport(N.SHEET_VIEWPORT_KEY.VIEW_MAIN),g=t.getFreeze(),{startColumn:u,startRow:d,xSplit:m,ySplit:h}=g,p={left:!0,top:!0};if(!c)return{...i,absolute:p};const{left:S,right:f,top:v,bottom:I}=i;let{top:T,left:O,viewportScrollX:D,viewportScrollY:C}=c;const{boundsOfViewArea:M,scrollDirectionResponse:R}=n||{},{rowHeaderWidth:k,columnHeaderHeight:E}=e,P={top:o?0:E,left:o?0:k};M&&(l.Tools.isDefine(P.top)&&(P.top=M.top),l.Tools.isDefine(P.left)&&(P.left=M.left)),R==="HORIZONTAL"&&(C=0),R==="VERTICAL"&&(D=0);let _=0,b=0;const F=e.rowStartY(d-h)+E,L=e.colStartX(u-m)+k,ee=e.rowStartY(d)+E,ne=e.colStartX(u)+k;if(m===0)p.left=!1,_=(S-D)*s,b=(f-D)*s;else{const V=S-(L-k),J=f-(L-k);f<ne?(_=V*s,b=J*s):S<=ne&&f>=ne?(_=V*s,b=Math.max(O,(f-D)*s)):S>ne&&(p.left=!1,_=Math.max((S-D)*s,O),b=Math.max((f-D)*s,O))}let z=0,q=0;if(h===0)p.top=!1,z=(v-C)*a,q=(I-C)*a;else{const V=v-(F-E),J=I-(F-E);I<ee?(z=V*a,q=J*a):v<=ee&&I>=ee?(z=V*a,q=Math.max(T,(I-C)*a)):v>ee&&(p.top=!1,z=Math.max((v-C)*a,T),q=Math.max((I-C)*a,T))}return _=Math.max(_,P.left),z=Math.max(z,P.top),b=Math.max(b,P.left),q=Math.max(q,P.top),{left:_,right:b,top:z,bottom:q,absolute:p}}const de=(i,r,e,t,n)=>{const{left:o,top:s,width:a,height:c,angle:g}=i,u={left:o,right:o+a,top:s,bottom:s+c},d=Yt(u,r,e,t,n),{scaleX:m,scaleY:h}=r.getAncestorScale();return{startX:d.left,endX:d.right,startY:d.top,endY:d.bottom,rotate:g,width:a*m,height:c*h,absolute:d.absolute}};A.SheetCanvasFloatDomManagerService=class extends l.Disposable{constructor(e,t,n,o,s,a,c){super();se(this,"_domLayerInfoMap",new Map);se(this,"_transformChange$",new W.Subject);se(this,"transformChange$",this._transformChange$.asObservable());se(this,"_add$",new W.Subject);se(this,"add$",this._add$.asObservable());se(this,"_remove$",new W.Subject);se(this,"remove$",this._remove$.asObservable());this._renderManagerService=e,this._univerInstanceService=t,this._commandService=n,this._drawingManagerService=o,this._canvasFloatDomService=s,this._sheetDrawingService=a,this._lifecycleService=c,this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe(W.filter(e=>e===l.LifecycleStages.Rendered),W.take(1)).subscribe(()=>{this._scrollUpdateListener()})}getFloatDomInfo(e){return this._domLayerInfoMap.get(e)}getFloatDomsBySubUnitId(e,t){return Array.from(this._domLayerInfoMap.values()).filter(n=>n.subUnitId===t&&n.unitId===e)}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;const t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;if(t==null||n==null)return null;const o=n.getTransformerByCreate(),s=t.engine.getCanvasElement();return{scene:n,transformer:o,renderUnit:t,canvas:s}}_drawingAddListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{e.forEach(t=>{var J;const{unitId:n,subUnitId:o,drawingId:s}=t,a=y.getSheetCommandTarget(this._univerInstanceService,{unitId:n,subUnitId:o}),c=this._drawingManagerService.getDrawingByParam(t),g=this._univerInstanceService.getUnit(n,l.UniverInstanceType.UNIVER_SHEET);if(!g)return;const u=g.getActiveSheet().getSheetId();if(!c||!a)return;const d=(J=this._renderManagerService.getRenderById(n))==null?void 0:J.with(U.SheetSkeletonManagerService).getSkeletonParam(o);if(!d)return;const{transform:m,drawingType:h,data:p}=c;if(h!==l.DrawingTypeEnum.DRAWING_DOM&&h!==l.DrawingTypeEnum.DRAWING_CHART)return;const S=this._getSceneAndTransformerByDrawingSearch(n);if(S==null)return;const{scene:f,canvas:v}=S;if(m==null)return!0;if(u!==o)return;const{left:I,top:T,width:O,height:D,angle:C,flipX:M,flipY:R,skewX:k,skewY:E}=m,P=B.getDrawingShapeKeyByDrawingSearch({unitId:n,subUnitId:o,drawingId:s}),_=f.getObject(P);if(_!=null){_.transformByState({left:I,top:T,width:O,height:D,angle:C,flipX:M,flipY:R,skewX:k,skewY:E});return}const b={left:I,top:T,width:O,height:D,zIndex:this._drawingManagerService.getDrawingOrder(n,o).length-1},F=h===l.DrawingTypeEnum.DRAWING_CHART;if(b.rotateEnabled=!1,F){const $=p?p.backgroundColor:"white";b.fill=$,p&&p.border&&(b.stroke=p.border),b.paintFirst="stroke",b.strokeWidth=1,b.borderEnabled=!1,b.radius=8}const L=new N.Rect(P,b);F&&L.setObjectType(N.ObjectType.CHART),f.addObject(L,N.DRAWING_OBJECT_LAYER_INDEX),c.allowTransform!==!1&&f.attachTransformerTo(L);const ee=new l.DisposableCollection,ne=de(L,S.renderUnit.scene,d.skeleton,a.worksheet),z=new W.BehaviorSubject(ne),q=`${$t}${l.generateRandomId(6)}`,re={dispose:ee,rect:L,position$:z,unitId:n,subUnitId:o,id:s,domId:q};this._canvasFloatDomService.addFloatDom({position$:z,id:s,domId:q,componentKey:c.componentKey,onPointerDown:$=>{v.dispatchEvent(new PointerEvent($.type,$))},onPointerMove:$=>{v.dispatchEvent(new PointerEvent($.type,$))},onPointerUp:$=>{v.dispatchEvent(new PointerEvent($.type,$))},onWheel:$=>{v.dispatchEvent(new WheelEvent($.type,$))},data:p,unitId:n});const V=L.onTransformChange$.subscribeEvent(()=>{const $=de(L,S.renderUnit.scene,d.skeleton,a.worksheet);z.next($)});ee.add(()=>{this._canvasFloatDomService.removeFloatDom(s)}),V&&ee.add(V),this._domLayerInfoMap.set(s,re)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(t=>{var m;const{unitId:n,subUnitId:o,drawingId:s}=t,a=B.getDrawingShapeKeyByDrawingSearch({unitId:n,subUnitId:o,drawingId:s}),c=this._getSceneAndTransformerByDrawingSearch(n);if(c==null)return;const{transformer:g,scene:u}=c,d=u.getObject(a);d!=null&&d.oKey&&(g.clearControlByIds([d==null?void 0:d.oKey]),(m=u.getTransformer())==null||m.clearSelectedObjects())})}))}_scrollUpdateListener(){const e=(t,n)=>{var g;const o=this._getSceneAndTransformerByDrawingSearch(t),s=Array.from(this._domLayerInfoMap.keys()).map(u=>({id:u,...this._domLayerInfoMap.get(u)})).filter(u=>u.subUnitId===n&&u.unitId===t).map(u=>u.id),a=y.getSheetCommandTarget(this._univerInstanceService,{unitId:t,subUnitId:n}),c=(g=this._renderManagerService.getRenderById(t))==null?void 0:g.with(U.SheetSkeletonManagerService).getSkeletonParam(n);!o||!a||!c||s.forEach(u=>{const d=this._domLayerInfoMap.get(u);if(d){const m=de(d.rect,o.renderUnit.scene,c.skeleton,a.worksheet,d);d.position$.next(m)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).pipe(W.switchMap(t=>t?t.activeSheet$:W.of(null)),W.map(t=>{if(!t)return null;const n=t.getUnitId(),o=this._renderManagerService.getRenderById(n);return o?{render:o,unitId:n,subUnitId:t.getSheetId()}:null}),W.switchMap(t=>t?l.fromEventSubject(t.render.scene.getViewport(N.SHEET_VIEWPORT_KEY.VIEW_MAIN).onScrollAfter$).pipe(W.map(()=>({unitId:t.unitId,subUnitId:t.subUnitId}))):W.of(null))).subscribe(t=>{if(!t)return;const{unitId:n,subUnitId:o}=t;e(n,o)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===U.SetZoomRatioOperation.id){const n=t.params,{unitId:o}=n;Array.from(this._domLayerInfoMap.values()).filter(a=>a.unitId===o).map(a=>a.subUnitId).forEach(a=>{e(o,a)})}else if(t.id===y.SetFrozenMutation.id){const{unitId:n,subUnitId:o}=t.params;e(n,o)}else if(t.id===y.SetSelectionsOperation.id){const{unitId:n,subUnitId:o}=t.params;e(n,o)}}))}updateFloatDomProps(e,t,n,o){const s=this._domLayerInfoMap.get(n),a=this._getSceneAndTransformerByDrawingSearch(e);if(s&&a){const{scene:c}=a,g=B.getDrawingShapeKeyByDrawingSearch({unitId:e,subUnitId:t,drawingId:n}),u=c.getObject(g);u&&u instanceof N.Rect&&u.setProps(o)}}_getPosition(e,t){var h;const{startX:n,endX:o,startY:s,endY:a}=e,c=(h=this._renderManagerService.getRenderById(t))==null?void 0:h.with(U.ISheetSelectionRenderService);if(c==null)return;const g=c.getCellWithCoordByOffset(n,s);if(g==null)return;const u={column:g.actualColumn,columnOffset:n-g.startX,row:g.actualRow,rowOffset:s-g.startY},d=c.getCellWithCoordByOffset(o,a);if(d==null)return;const m={column:d.actualColumn,columnOffset:o-d.startX,row:d.actualRow,rowOffset:a-d.startY};return{from:u,to:m}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(t=>{const n=this._drawingManagerService.getDrawingByParam(t);if(!n||n.drawingType!==l.DrawingTypeEnum.DRAWING_DOM&&n.drawingType!==l.DrawingTypeEnum.DRAWING_CHART)return;const o={...n.transform};this._transformChange$.next({id:t.drawingId,value:o}),this._canvasFloatDomService.updateFloatDom(t.drawingId,{...n});const s=this._getSceneAndTransformerByDrawingSearch(t.unitId);if(s&&n.drawingType!==l.DrawingTypeEnum.DRAWING_CHART){const{scene:a}=s,c=this._domLayerInfoMap.get(t.drawingId);c!=null&&c.rect&&(n.allowTransform===!1?a.detachTransformerFrom(c.rect):a.attachTransformerTo(c.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(t=>{this._removeDom(t.drawingId)})}))}addFloatDomToPosition(e,t){const n=y.getSheetCommandTarget(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!n)throw new Error("cannot find current target!");const{unitId:o,subUnitId:s}=n,{initPosition:a,componentKey:c,data:g,allowTransform:u=!0}=e,d=t!=null?t:l.generateRandomId(),m=this._getPosition(a,o);if(m==null)return;const h={unitId:o,subUnitId:s,drawingId:d,drawingType:e.type||l.DrawingTypeEnum.DRAWING_DOM,componentKey:c,sheetTransform:m,transform:{left:a.startX,top:a.startY,width:a.endX-a.startX,height:a.endY-a.startY},axisAlignSheetTransform:m,data:g,allowTransform:u};return this._commandService.executeCommand(Ne.id,{unitId:o,drawings:[h]}),this._add$.next({unitId:o,subUnitId:s,id:d}),{id:d,dispose:()=>{this._removeDom(d,!0)}}}_removeDom(e,t=!1){const n=this._domLayerInfoMap.get(e);if(!n)return;const{unitId:o,subUnitId:s}=n;this._domLayerInfoMap.delete(e),n.dispose.dispose();const a=this._getSceneAndTransformerByDrawingSearch(o);if(a&&a.scene.removeObject(n.rect),t){const c=this._drawingManagerService.getDrawingByParam({unitId:o,subUnitId:s,drawingId:e});if(!c)return;const g=this._sheetDrawingService.getBatchRemoveOp([c]),{redo:u,objects:d}=g;this._commandService.syncExecuteCommand(w.SetDrawingApplyMutation.id,{unitId:o,subUnitId:s,op:u,objects:d,type:w.DrawingApplyType.REMOVE})}}addFloatDomToRange(e,t,n,o){var M,R,k;const s=y.getSheetCommandTarget(this._univerInstanceService,{unitId:t.unitId,subUnitId:t.subUnitId});if(!s)throw new Error("cannot find current target!");const{unitId:a,subUnitId:c}=s,g=this._getSceneAndTransformerByDrawingSearch(a);if(!g)return;const u=this._renderManagerService.getRenderById(a);if(!u)return;const d=(M=this._renderManagerService.getRenderById(a))==null?void 0:M.with(U.SheetSkeletonManagerService).getWorksheetSkeleton(c);if(!d)return;const{componentKey:m,data:h,allowTransform:p=!0}=t,S=o!=null?o:l.generateRandomId(),{position:f,position$:v}=this._createRangePositionObserver(e,u,d.skeleton);if(this._getPosition(f,a)==null)return;const T=g.scene,{scaleX:O}=T.getAncestorScale(),D=nt(f,n,O),C={unitId:a,subUnitId:c,drawingId:S,drawingType:t.type||l.DrawingTypeEnum.DRAWING_DOM,componentKey:m,transform:{left:D.startX,top:D.startY,width:D.width,height:D.height},data:h,allowTransform:p};{const{unitId:E,subUnitId:P,drawingId:_}=C,b=y.getSheetCommandTarget(this._univerInstanceService,{unitId:E,subUnitId:P}),F=C,L=this._univerInstanceService.getUnit(E,l.UniverInstanceType.UNIVER_SHEET);if(!L)return;const ee=L.getActiveSheet().getSheetId();if(!F||!b)return;const ne=(R=this._renderManagerService.getRenderById(E))==null?void 0:R.with(U.SheetSkeletonManagerService);if(!ne)return;const z=ne.getWorksheetSkeleton(P);if(!z)return;const{transform:q,drawingType:re,data:V}=F;if(re!==l.DrawingTypeEnum.DRAWING_DOM&&re!==l.DrawingTypeEnum.DRAWING_CHART)return;const J=this._getSceneAndTransformerByDrawingSearch(E);if(J==null)return;const{scene:$,canvas:ae}=J;if(q==null||ee!==P)return;const{left:ue,top:le,width:ve,height:_e,angle:bt,flipX:Ot,flipY:st,skewX:at,skewY:Oe}=q,ct=B.getDrawingShapeKeyByDrawingSearch({unitId:E,subUnitId:P,drawingId:_}),ge=$.getObject(ct);if(ge!=null){ge.transformByState({left:ue,top:le,width:ve,height:_e,angle:bt,flipX:Ot,flipY:st,skewX:at,skewY:Oe});return}const oe={left:ue,top:le,width:ve,height:_e,zIndex:this._drawingManagerService.getDrawingOrder(E,P).length-1},Ae=re===l.DrawingTypeEnum.DRAWING_CHART;if(Ae){const H=V?V.backgroundColor:"white";oe.fill=H,oe.rotateEnabled=!1,V&&V.border&&(oe.stroke=V.border),oe.paintFirst="stroke",oe.strokeWidth=1,oe.borderEnabled=!1,oe.radius=8}const he=new N.Rect(ct,oe);Ae&&he.setObjectType(N.ObjectType.CHART),$.addObject(he,N.DRAWING_OBJECT_LAYER_INDEX),F.allowTransform!==!1&&$.attachTransformerTo(he);const me=new l.DisposableCollection,dt=$.getMainViewport(),{rowHeaderWidth:Ue,columnHeaderHeight:$e}=z.skeleton,lt={top:$e,left:Ue,bottom:dt.bottom,right:dt.right},pe={dispose:me,rect:he,boundsOfViewArea:lt,domAnchor:n,unitId:E,subUnitId:P},Z=de(he,J.renderUnit.scene,z.skeleton,b.worksheet,pe),Pe=new W.BehaviorSubject(Z);pe.position$=Pe;let Ye={position$:Pe,id:_,componentKey:F.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:H=>{ae.dispatchEvent(new WheelEvent(H.type,H))},data:V,unitId:E};t.eventPassThrough&&(Ye={...Ye,onPointerDown:H=>{ae.dispatchEvent(new PointerEvent(H.type,H))},onPointerMove:H=>{ae.dispatchEvent(new PointerEvent(H.type,H))},onPointerUp:H=>{ae.dispatchEvent(new PointerEvent(H.type,H))}}),this._canvasFloatDomService.addFloatDom(Ye),this.disposeWithMe(v.subscribe(H=>{var Vt,Xt,Kt,zt;const Ht=nt({startX:H.startX,startY:H.startY,endX:H.endX,endY:H.endY,width:(Vt=n.width)!=null?Vt:H.width,height:(Xt=n.height)!=null?Xt:H.height,absolute:{left:f.absolute.left,top:f.absolute.top}},n),rr=B.getDrawingShapeKeyByDrawingSearch({unitId:E,subUnitId:P,drawingId:_}),ir=new N.Rect(rr,{left:Ht.startX,top:Ht.startY,width:(Kt=n.width)!=null?Kt:H.width,height:(zt=n.height)!=null?zt:H.height,zIndex:this._drawingManagerService.getDrawingOrder(E,P).length-1}),or=de(ir,J.renderUnit.scene,z.skeleton,b.worksheet,pe);Pe.next(or)}));const xe=(k=this._renderManagerService.getRenderById(E))==null?void 0:k.with(U.SheetSkeletonManagerService);xe==null||xe.currentSkeleton$.subscribe(H=>{H&&z.sheetId!==H.sheetId&&this._removeDom(S,!0)});const ut=he.onTransformChange$.subscribeEvent(()=>{const H=de(he,J.renderUnit.scene,z.skeleton,b.worksheet,pe);Pe.next(H)});me.add(()=>{this._canvasFloatDomService.removeFloatDom(_)}),ut&&me.add(ut),this._domLayerInfoMap.set(_,pe)}return{id:S,dispose:()=>{this._removeDom(S,!0)}}}addFloatDomToColumnHeader(e,t,n,o){var D,C,M;const s=y.getSheetCommandTarget(this._univerInstanceService,{unitId:t.unitId,subUnitId:t.subUnitId});if(!s)throw new Error("cannot find current target!");const{unitId:a,subUnitId:c}=s;if(!this._getSceneAndTransformerByDrawingSearch(a))return;const u=this._renderManagerService.getRenderById(a);if(!u)return;const d=(D=this._renderManagerService.getRenderById(a))==null?void 0:D.with(U.SheetSkeletonManagerService).getWorksheetSkeleton(c);if(!d)return;const{componentKey:m,data:h,allowTransform:p=!0}=t,S=o!=null?o:l.generateRandomId(),{position:f,position$:v}=this._createRangePositionObserver({startRow:0,endRow:0,startColumn:e,endColumn:e},u,d.skeleton),I=f;if(I.startY=0,this._getPosition(f,a)==null)return;const O={unitId:a,subUnitId:c,drawingId:S,drawingType:t.type||l.DrawingTypeEnum.DRAWING_DOM,componentKey:m,transform:{left:I.startX,top:I.startY,width:I.width,height:I.height},data:h,allowTransform:p};{const{unitId:R,subUnitId:k,drawingId:E}=O,P=y.getSheetCommandTarget(this._univerInstanceService,{unitId:R,subUnitId:k}),_=O,b=this._univerInstanceService.getUnit(R,l.UniverInstanceType.UNIVER_SHEET);if(!b)return;const F=b.getActiveSheet().getSheetId();if(!_||!P)return;const L=(C=this._renderManagerService.getRenderById(R))==null?void 0:C.with(U.SheetSkeletonManagerService);if(!L)return;const ee=L.getWorksheetSkeleton(k);if(!ee)return;const{transform:ne,data:z}=_,q=this._getSceneAndTransformerByDrawingSearch(R);if(q==null)return;const{scene:re,canvas:V}=q;if(ne==null||F!==k)return;const{left:J,top:$,width:ae,height:ue,angle:le,flipX:ve,flipY:_e,skewX:bt,skewY:Ot}=ne,st=B.getDrawingShapeKeyByDrawingSearch({unitId:R,subUnitId:k,drawingId:E}),at=re.getObject(st);if(at!=null){at.transformByState({left:J,top:$,width:ae,height:ue,angle:le,flipX:ve,flipY:_e,skewX:bt,skewY:Ot});return}const Oe=nt({startX:I.startX,startY:0,endX:f.endX,endY:f.endY,width:n.width,height:n.height,absolute:{left:f.absolute.left,top:f.absolute.top}},n),ct={left:Oe.startX,top:Oe.startY,width:Oe.width,height:Oe.height,zIndex:this._drawingManagerService.getDrawingOrder(R,k).length-1},ge=new N.Rect(st,ct);re.addObject(ge,N.DRAWING_OBJECT_LAYER_INDEX),_.allowTransform!==!1&&re.attachTransformerTo(ge);const oe=new l.DisposableCollection,Ae=re.getMainViewport(),he={top:0,left:Ae.left,bottom:Ae.bottom,right:Ae.right},me={dispose:oe,rect:ge,unitId:R,subUnitId:k,boundsOfViewArea:he,domAnchor:n,scrollDirectionResponse:"HORIZONTAL"},dt=de(ge,q.renderUnit.scene,ee.skeleton,P.worksheet,me),Ue=new W.BehaviorSubject(dt);me.position$=Ue;let $e={position$:Ue,id:E,componentKey:_.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:Z=>{V.dispatchEvent(new WheelEvent(Z.type,Z))},data:z,unitId:R};t.eventPassThrough&&($e={...$e,onPointerDown:Z=>{V.dispatchEvent(new PointerEvent(Z.type,Z))},onPointerMove:Z=>{V.dispatchEvent(new PointerEvent(Z.type,Z))},onPointerUp:Z=>{V.dispatchEvent(new PointerEvent(Z.type,Z))}}),this._canvasFloatDomService.addFloatDom($e);const lt=ge.onTransformChange$.subscribeEvent(()=>{const Z=de(ge,q.renderUnit.scene,ee.skeleton,P.worksheet,me);Ue.next(Z)});this.disposeWithMe(v.subscribe(Z=>{const Pe=nt({startX:Z.startX,startY:0,endX:Z.endX,endY:Z.endY,width:n.width,height:n.height,absolute:{left:f.absolute.left,top:f.absolute.top}},n),Ye=B.getDrawingShapeKeyByDrawingSearch({unitId:R,subUnitId:k,drawingId:E}),xe=new N.Rect(Ye,{left:Pe.startX,top:0,width:n.width,height:n.height,zIndex:this._drawingManagerService.getDrawingOrder(R,k).length-1}),ut=de(xe,q.renderUnit.scene,ee.skeleton,P.worksheet,me);Ue.next(ut)}));const pe=(M=this._renderManagerService.getRenderById(R))==null?void 0:M.with(U.SheetSkeletonManagerService);pe==null||pe.currentSkeleton$.subscribe(Z=>{Z&&d.sheetId!==Z.sheetId&&this._removeDom(S,!0)}),oe.add(()=>{this._canvasFloatDomService.removeFloatDom(E)}),lt&&oe.add(lt),this._domLayerInfoMap.set(E,me)}return{id:S,dispose:()=>{this._removeDom(S,!0)}}}_createRangePositionObserver(e,t,n){let{startRow:o,startColumn:s}=e;const a=Fe(o,s,n),c=new W.BehaviorSubject(a),g=Fe(e.endRow,e.endColumn,n),u=new W.BehaviorSubject(g),d=()=>{const v=Fe(o,s,n),I=Fe(e.endRow,e.endColumn,n);c.next(v),u.next(I)},m=new l.DisposableCollection;m.add(t.engine.clientRect$.subscribe(()=>d())),m.add(this._commandService.onCommandExecuted(v=>{if(v.id===y.SetWorksheetRowAutoHeightMutation.id&&v.params.rowsAutoHeightInfo.findIndex(T=>T.row===o)>-1){d();return}(y.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(v.id)>-1||v.id===U.SetScrollOperation.id||v.id===U.SetZoomRatioOperation.id)&&d()}));const h=(v,I)=>{o=v,s=I,d()},p=()=>({rotate:0,width:g.right-a.left,height:g.bottom-a.top,absolute:{left:!0,top:!0},startX:a.left,startY:a.top,endX:g.right,endY:g.bottom}),S=c.pipe(W.map(v=>{const I=Fe(e.endRow,e.endColumn,n);return{rotate:0,width:I.right-v.left,height:I.bottom-v.top,absolute:{left:!0,top:!0},startX:v.left,startY:v.top,endX:I.right,endY:I.bottom}})),f=p();return{position$:S,position:f,updateRowCol:h,topLeftPos$:c,rightBottomPos$:u,disposable:m}}},A.SheetCanvasFloatDomManagerService=En([Ie(0,l.Inject(N.IRenderManagerService)),Ie(1,l.IUniverInstanceService),Ie(2,l.Inject(l.ICommandService)),Ie(3,B.IDrawingManagerService),Ie(4,l.Inject(j.CanvasFloatDomService)),Ie(5,w.ISheetDrawingService),Ie(6,l.Inject(l.LifecycleService))],A.SheetCanvasFloatDomManagerService);function Fe(i,r,e){const t=e.getCellWithCoordByIndex(i,r),n=t.isMergedMainCell?t.mergeInfo:t;return{left:n.startX,right:n.endX,top:n.startY,bottom:n.endY}}function nt(i,r,e){var g,u;e=e!=null?e:1;const t=i.endX-i.startX,n=i.endY-i.startY,o=(g=r==null?void 0:r.width)!=null?g:t,s=(u=r==null?void 0:r.height)!=null?u:n;let a=0,c=0;if(r){if(r.horizonOffsetAlign==="right"){const d=rt(r.marginX,t*e);a=i.endX-d-o}else a=i.startX+rt(r.marginX,t);if(r.verticalOffsetAlign==="bottom"){const d=rt(r.marginY,n*e);c=i.endY-d-s}else c=i.startY+rt(r.marginY,n)}return{rotate:0,startX:a,startY:c,endX:i.endX,endY:i.endY,width:o,height:s,absolute:{left:i.absolute.left,top:i.absolute.top}}}function rt(i,r){if(i===void 0)return 0;if(typeof i=="number")return i;const e=Number.parseFloat(i);return r*e/100}const bn=i=>{const{floatDomInfos:r,scene:e,skeleton:t,worksheet:n}=i,o=Q.useMemo(()=>r.map(s=>{const{width:a,height:c,angle:g,left:u,top:d}=s.transform,m=Yt({left:u!=null?u:0,right:(u!=null?u:0)+(a!=null?a:0),top:d!=null?d:0,bottom:(d!=null?d:0)+(c!=null?c:0)},e,t,n,void 0,!0),{scaleX:h,scaleY:p}=e.getAncestorScale(),S={startX:m.left,endX:m.right,startY:m.top,endY:m.bottom,rotate:g,width:a*h,height:c*p,absolute:m.absolute},f={position$:new W.BehaviorSubject(S),position:S,id:s.drawingId,componentKey:s.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:s.unitId,data:s.data};return[s.drawingId,f]}),[r,e,t,n]);return Y.jsx("div",{style:{position:"absolute",top:0,left:0},children:o.map(([s,a])=>Y.jsx(j.PrintFloatDomSingle,{layer:a,id:s,position:a.position},s))})};var On=Object.getOwnPropertyDescriptor,An=(i,r,e,t)=>{for(var n=t>1?void 0:t?On(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},ye=(i,r)=>(e,t)=>r(e,t,i);let it=class extends l.Disposable{constructor(i,r,e,t,n,o,s){super(),this._sheetPrintInterceptorService=i,this._drawingRenderService=r,this._drawingManagerService=e,this._renderManagerService=t,this._canvasFloatDomManagerService=n,this._componetManager=o,this._injector=s,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(i,r,e)=>{const{unitId:t,scene:n,subUnitId:o}=r,s=this._drawingManagerService.getDrawingDataForUnit(t),a=s==null?void 0:s[o];return a&&a.order.forEach(c=>{const g=a.data[c];g.drawingType!==l.DrawingTypeEnum.DRAWING_CHART&&g.drawingType!==l.DrawingTypeEnum.DRAWING_DOM&&this._drawingRenderService.renderDrawing(g,n)}),e()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(i,r,e)=>{const{unitId:t,subUnitId:n}=r,o=this._renderManagerService.getRenderById(t);if(!o)return e(i);const s=o.with(U.SheetSkeletonManagerService).getSkeletonParam(n);if(!s)return e(i);const a=this._drawingManagerService.getDrawingDataForUnit(t),c=a==null?void 0:a[r.subUnitId];if(!c)return e(i);const{scaleX:g,scaleY:u}=o.scene,d=i?{...i}:{startColumn:0,endColumn:0,endRow:0,startRow:0},m=c.order.map(h=>c.data[h]);return m.length?(m.forEach(h=>{if(!h.groupId&&h.transform&&l.Tools.isDefine(h.transform.left)&&l.Tools.isDefine(h.transform.top)&&l.Tools.isDefine(h.transform.width)&&l.Tools.isDefine(h.transform.height)){const p=s.skeleton.getCellIndexByOffset(h.transform.left,h.transform.top,g,u,{x:0,y:0}),S=s.skeleton.getCellIndexByOffset(h.transform.left+h.transform.width,h.transform.top+h.transform.height,g,u,{x:0,y:0});p.column<d.startColumn&&(d.startColumn=p.column),p.row<d.startRow&&(d.startRow=p.row),d.endRow<S.row&&(d.endRow=S.row),d.endColumn<S.column&&(d.endColumn=S.column)}}),e(d)):e(i)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(i,r,e)=>{const{unitId:t,subUnitId:n}=r,o=this._drawingManagerService.getDrawingDataForUnit(t),s=o==null?void 0:o[n];if(s){const a=s.order.map(g=>{const u=s.data[g];if(u.drawingType===l.DrawingTypeEnum.DRAWING_CHART)return{...u,componentKey:this._componetManager.get(l.PRINT_CHART_COMPONENT_KEY)};if(u.drawingType===l.DrawingTypeEnum.DRAWING_DOM){const d=this._sheetPrintInterceptorService.getPrintComponent(u.componentKey);return{...u,componentKey:this._componetManager.get(d||u.componentKey)}}return null}).filter(Boolean),c=j.connectInjector(bn,this._injector);return X.render(Y.jsx(c,{floatDomInfos:a,scene:r.scene,skeleton:r.skeleton,worksheet:r.worksheet}),r.root),i==null||i.add(()=>{X.unmount(r.root)}),e(i)}}}))}};it=An([ye(0,l.Inject(U.SheetPrintInterceptorService)),ye(1,l.Inject(Se.DrawingRenderService)),ye(2,B.IDrawingManagerService),ye(3,N.IRenderManagerService),ye(4,l.Inject(A.SheetCanvasFloatDomManagerService)),ye(5,l.Inject(j.ComponentManager)),ye(6,l.Inject(l.Injector))],it);var Un=Object.getOwnPropertyDescriptor,Pn=(i,r,e,t)=>{for(var n=t>1?void 0:t?Un(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},we=(i,r)=>(e,t)=>r(e,t,i);const Nn=[y.InsertRowCommand.id,y.InsertColCommand.id,y.RemoveRowCommand.id,y.RemoveColCommand.id,y.DeleteRangeMoveLeftCommand.id,y.DeleteRangeMoveUpCommand.id,y.InsertRangeMoveDownCommand.id,y.InsertRangeMoveRightCommand.id,y.DeltaRowHeightCommand.id,y.SetRowHeightCommand.id,y.DeltaColumnWidthCommand.id,y.SetColWidthCommand.id,y.SetRowHiddenCommand.id,y.SetSpecificRowsVisibleCommand.id,y.SetSpecificColsVisibleCommand.id,y.SetColHiddenCommand.id,y.MoveColsCommand.id,y.MoveRowsCommand.id,y.MoveRangeCommand.id],kn=[y.SetRowVisibleMutation.id,y.SetRowHiddenMutation.id,y.SetColVisibleMutation.id,y.SetColHiddenMutation.id,y.SetWorksheetRowHeightMutation.id,y.SetWorksheetRowAutoHeightMutation.id,y.SetWorksheetRowIsAutoHeightMutation.id,y.SetWorksheetColWidthMutation.id];let Tt=class extends l.Disposable{constructor(i,r,e,t,n,o,s,a,c){super(),this._context=i,this._renderManagerService=r,this._commandService=e,this._selectionRenderService=t,this._skeletonManagerService=n,this._sheetInterceptorService=o,this._sheetDrawingService=s,this._drawingManagerService=a,this._univerInstanceService=c,this._sheetInterceptorListener(),this._commandListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:i=>{if(!Nn.includes(i.id))return{redos:[],undos:[]};if(i.params==null)return{redos:[],undos:[]};const r=i.id;if(r===y.InsertRowCommand.id)return this._moveRowInterceptor(i.params,"insert");if([y.MoveColsCommand.id,y.MoveRowsCommand.id,y.MoveRangeCommand.id].includes(r))return this._moveRangeInterceptor(i.params);if(r===y.InsertColCommand.id)return this._moveColInterceptor(i.params,"insert");if(r===y.RemoveRowCommand.id)return this._moveRowInterceptor(i.params,"remove");if(r===y.RemoveColCommand.id)return this._moveColInterceptor(i.params,"remove");if(r===y.DeleteRangeMoveLeftCommand.id){const{range:e}=i.params;return this._getRangeMoveUndo(e,0)}else if(r===y.DeleteRangeMoveUpCommand.id){const{range:e}=i.params;return this._getRangeMoveUndo(e,1)}else if(r===y.InsertRangeMoveDownCommand.id){const{range:e}=i.params;return this._getRangeMoveUndo(e,2)}else if(r===y.InsertRangeMoveRightCommand.id){const{range:e}=i.params;return this._getRangeMoveUndo(e,3)}else if(r===y.SetRowHiddenCommand.id||r===y.SetSpecificRowsVisibleCommand.id){const e=i.params,{unitId:t,subUnitId:n,ranges:o}=e;return this._getDrawingUndoForRowVisible(t,n,o)}else if(r===y.SetSpecificColsVisibleCommand.id||r===y.SetColHiddenCommand.id){const e=i.params,{unitId:t,subUnitId:n,ranges:o}=e;return this._getDrawingUndoForColVisible(t,n,o)}else if(r===y.DeltaRowHeightCommand.id||r===y.SetRowHeightCommand.id||r===y.DeltaColumnWidthCommand.id||r===y.SetColWidthCommand.id){const e=i.params,{unitId:t,subUnitId:n,ranges:o}=e,s=r===y.DeltaRowHeightCommand.id||r===y.SetRowHeightCommand.id;return this._getDrawingUndoForRowAndColSize(t,n,o,s)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(i,r){const e=y.getSheetCommandTarget(this._univerInstanceService);if(e==null)return{redos:[],undos:[]};const t=e.unitId,n=e.subUnitId,o=[],s=[],a=this._sheetDrawingService.getDrawingData(t,n),c=[],g=[];if(Object.keys(a).forEach(u=>{const d=a[u],{updateDrawings:m,deleteDrawings:h}=this._getUpdateOrDeleteDrawings(i,r,d);c.push(...m),g.push(...h)}),c.length===0&&g.length===0)return{redos:[],undos:[]};if(c.length>0){const u=this._sheetDrawingService.getBatchUpdateOp(c),{undo:d,redo:m,objects:h}=u;o.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:m,objects:h,type:w.DrawingApplyType.UPDATE}}),s.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:d,objects:h,type:w.DrawingApplyType.UPDATE}})}if(g.length>0){const u=this._sheetDrawingService.getBatchRemoveOp(g),d=u.undo,m=u.redo,h=u.objects;o.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:m,objects:h,type:w.DrawingApplyType.REMOVE}}),s.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:d,objects:h,type:w.DrawingApplyType.INSERT}})}return o.push({id:K.id,params:[t]}),s.push({id:K.id,params:[t]}),{redos:o,undos:s}}_getUpdateOrDeleteDrawings(i,r,e){var R,k,E,P;const t=[],n=[],{sheetTransform:o,anchorType:s=w.SheetDrawingAnchorType.Position,transform:a,unitId:c,subUnitId:g,drawingId:u}=e,{from:d,to:m}=o,{row:h,column:p}=d,{row:S,column:f}=m;if(o==null||a==null)return{updateDrawings:t,deleteDrawings:n};const{startRow:v,endRow:I,startColumn:T,endColumn:O}=i;let D=null,C=null,M;if(r===0&&h>=v&&S<=I)if(p>=T&&f<=O)n.push({unitId:c,subUnitId:g,drawingId:u});else{const _=this._shrinkCol(o,a,T,O,s);D=_==null?void 0:_.newSheetTransform,C=_==null?void 0:_.newTransform,M=(R=_==null?void 0:_.axisAlignSheetTransform)!=null?R:void 0}else if(r===1&&p>=T&&f<=O)if(h>=v&&S<=I)n.push({unitId:c,subUnitId:g,drawingId:u});else{const _=this._shrinkRow(o,a,v,I,s);D=_==null?void 0:_.newSheetTransform,C=_==null?void 0:_.newTransform,M=(k=_==null?void 0:_.axisAlignSheetTransform)!=null?k:void 0}else if(r===2){const _=this._expandRow(o,a,v,I,s);D=_==null?void 0:_.newSheetTransform,C=_==null?void 0:_.newTransform,M=(E=_==null?void 0:_.axisAlignSheetTransform)!=null?E:void 0}else if(r===3){const _=this._expandCol(o,a,T,O,s);D=_==null?void 0:_.newSheetTransform,C=_==null?void 0:_.newTransform,M=(P=_==null?void 0:_.axisAlignSheetTransform)!=null?P:void 0}if(D!=null&&C!=null){const _=te(D,this._selectionRenderService,this._skeletonManagerService);t.push({...e,sheetTransform:D,transform:_,axisAlignSheetTransform:M})}return{updateDrawings:t,deleteDrawings:n}}_remainDrawingSize(i,r,e){const t=x({...i},this._selectionRenderService);if(t!=null){const n=G({...i},this._selectionRenderService);r.push({...e,sheetTransform:t,axisAlignSheetTransform:n})}}_getDrawingUndoForColVisible(i,r,e){const t=this._drawingManagerService.getDrawingData(i,r),n=[],o=[];if(Object.keys(t).forEach(u=>{const d=t[u],{sheetTransform:m,transform:h,anchorType:p=w.SheetDrawingAnchorType.Position}=d;if(p===w.SheetDrawingAnchorType.None)this._remainDrawingSize(h,n,d);else{const{from:S,to:f}=m,{row:v,column:I}=S,{row:T,column:O}=f;for(let D=0;D<e.length;D++){const C=e[D],{startRow:M,endRow:R,startColumn:k,endColumn:E}=C;if(O<k)continue;if(p===w.SheetDrawingAnchorType.Position){let b=null,F=null;if(I>=k&&I<=E){const L=this._skeletonManagerService.attachRangeWithCoord({startColumn:I,endColumn:E,startRow:S.row,endRow:f.row});if(L==null)return;F={...h,left:L.startX}}if(F!=null){b=x(F,this._selectionRenderService);const L=G(F,this._selectionRenderService);if(b!=null&&F!=null){n.push({...d,sheetTransform:b,transform:F,axisAlignSheetTransform:L});break}}this._remainDrawingSize(h,n,d);continue}if(I>=k&&O<=E)continue;let P=null,_=null;if(I>=k&&I<=E){const b=this._skeletonManagerService.attachRangeWithCoord({startColumn:I,endColumn:E,startRow:S.row,endRow:f.row});if(b==null)return;_={...h,left:(b==null?void 0:b.startX)||0,width:((h==null?void 0:h.width)||0)-b.endX+b.startX}}else if(O>=k&&O<=E){const b=this._skeletonManagerService.attachRangeWithCoord({startColumn:k,endColumn:O,startRow:S.row,endRow:f.row});if(b==null)return;_={...h,left:b.startX-((h==null?void 0:h.width)||0)}}else{const b=this._skeletonManagerService.attachRangeWithCoord({startColumn:k,endColumn:E,startRow:S.row,endRow:f.row});if(b==null)return;if(_={...h,width:((h==null?void 0:h.width)||0)-b.endX+b.startX},P=x(_,this._selectionRenderService),P!=null&&_!=null){const F=G(_,this._selectionRenderService);o.push({...d,sheetTransform:P,transform:_,axisAlignSheetTransform:F});break}}if(_!=null&&(P=x(_,this._selectionRenderService)),_!=null&&P!=null){const b=G(_,this._selectionRenderService);n.push({...d,sheetTransform:P,transform:_,axisAlignSheetTransform:b});break}else this._remainDrawingSize(h,n,d)}}}),n.length===0&&o.length===0)return{redos:[],undos:[]};const{redos:s,undos:a}=this._createUndoAndRedoMutation(i,r,n),c=[],g=[];if(o.length>0){const{redos:u,undos:d}=this._createUndoAndRedoMutation(i,r,o);c.push(...u),g.push(...d)}return{redos:s,undos:a,preRedos:c,preUndos:g}}_createUndoAndRedoMutation(i,r,e){const t=this._sheetDrawingService.getBatchUpdateOp(e),{undo:n,redo:o,objects:s}=t,a=[{id:w.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:r,op:o,objects:s,type:w.DrawingApplyType.UPDATE}},{id:K.id,params:[i]}],c=[{id:w.SetDrawingApplyMutation.id,params:{unitId:i,subUnitId:r,op:n,objects:s,type:w.DrawingApplyType.UPDATE}},{id:K.id,params:[i]}];return{redos:a,undos:c}}_getDrawingUndoForRowVisible(i,r,e){const t=this._drawingManagerService.getDrawingData(i,r),n=[],o=[];if(Object.keys(t).forEach(u=>{const d=t[u],{sheetTransform:m,transform:h,anchorType:p=w.SheetDrawingAnchorType.Position}=d;if(p===w.SheetDrawingAnchorType.None)this._remainDrawingSize(h,n,d);else{const{from:S,to:f}=m,{row:v,column:I}=S,{row:T,column:O}=f;for(let D=0;D<e.length;D++){const C=e[D],{startRow:M,endRow:R,startColumn:k,endColumn:E}=C;if(T<M)continue;if(p===w.SheetDrawingAnchorType.Position){let b=null,F=null;if(v>=M&&v<=R){const L=this._skeletonManagerService.attachRangeWithCoord({startColumn:S.column,endColumn:f.column,startRow:v,endRow:R});if(L==null)return;F={...h,top:L.startY}}if(F!=null){b=x(F,this._selectionRenderService);const L=G(F,this._selectionRenderService);if(b!=null&&F!=null){n.push({...d,sheetTransform:b,transform:F,axisAlignSheetTransform:L});break}}this._remainDrawingSize(h,n,d);continue}if(v>=M&&T<=R)continue;let P=null,_=null;if(v>=M&&v<=R){const b=this._skeletonManagerService.attachRangeWithCoord({startColumn:S.column,endColumn:f.column,startRow:v,endRow:R});if(b==null)return;_={...h,top:(b==null?void 0:b.startY)||0,height:((h==null?void 0:h.height)||0)-b.endY+b.startY}}else if(T>=M&&T<=R){const b=this._skeletonManagerService.attachRangeWithCoord({startColumn:S.column,endColumn:f.column,startRow:M,endRow:T});if(b==null)return;_={...h,top:b.startY-((h==null?void 0:h.height)||0)}}else{const b=this._skeletonManagerService.attachRangeWithCoord({startColumn:S.column,endColumn:f.column,startRow:M,endRow:R});if(b==null)return;if(_={...h,height:((h==null?void 0:h.height)||0)-b.endY+b.startY},P=x(_,this._selectionRenderService),P!=null&&_!=null){const F=G(_,this._selectionRenderService);o.push({...d,sheetTransform:P,transform:_,axisAlignSheetTransform:F});break}}if(_!=null&&(P=x(_,this._selectionRenderService)),_!=null&&P!=null){const b=G(_,this._selectionRenderService);n.push({...d,sheetTransform:P,transform:_,axisAlignSheetTransform:b});break}else this._remainDrawingSize(h,n,d)}}}),n.length===0&&o.length===0)return{redos:[],undos:[]};const{redos:s,undos:a}=this._createUndoAndRedoMutation(i,r,n),c=[],g=[];if(o.length>0){const{redos:u,undos:d}=this._createUndoAndRedoMutation(i,r,o);c.push(...u),g.push(...d)}return{redos:s,undos:a,preRedos:c,preUndos:g}}_getDrawingUndoForRowAndColSize(i,r,e,t){const n=this._drawingManagerService.getDrawingData(i,r),o=[];return Object.keys(n).forEach(s=>{const a=n[s],{sheetTransform:c,transform:g,anchorType:u=w.SheetDrawingAnchorType.Position}=a;if(u===w.SheetDrawingAnchorType.None)this._remainDrawingSize(g,o,a);else{const{from:d,to:m}=c,{row:h,column:p}=d,{row:S,column:f}=m;for(let v=0;v<e.length;v++){const I=e[v],{startRow:T,endRow:O,startColumn:D,endColumn:C}=I;if(S<T||f<D)continue;if(u===w.SheetDrawingAnchorType.Position&&(h<=T&&S>=O||p<=D&&f>=C)){this._remainDrawingSize(g,o,a);continue}const M=te({...c},this._selectionRenderService,this._skeletonManagerService);if(M!=null){o.push({...a,transform:M});break}}}}),o.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(i,r,o)}_getUnitIdAndSubUnitId(i,r){let e,t;if(r==="insert")e=i.unitId,t=i.subUnitId;else{const n=y.getSheetCommandTarget(this._univerInstanceService);if(n==null)return;e=n.unitId,t=n.subUnitId}return{unitId:e,subUnitId:t}}_moveRangeInterceptor(i){var T,O;const{toRange:r,fromRange:e}=i,t=y.getSheetCommandTarget(this._univerInstanceService);if(!t)return{redos:[],undos:[]};const{unitId:n,subUnitId:o}=t,s=(O=(T=this._renderManagerService.getRenderById(n))==null?void 0:T.with(U.SheetSkeletonManagerService))==null?void 0:O.getCurrentSkeleton();if(!s)return{redos:[],undos:[]};const a=U.attachRangeWithCoord(s,e);if(!a)return{redos:[],undos:[]};const{startX:c,endX:g,startY:u,endY:d}=a,m=this._sheetDrawingService.getDrawingData(n,o),h=[];Object.keys(m).forEach(D=>{const C=m[D];if(C.anchorType!==w.SheetDrawingAnchorType.Both)return;const{transform:M}=C;if(!M)return;const{left:R=0,top:k=0,width:E=0,height:P=0}=M,{drawingStartX:_,drawingEndX:b,drawingStartY:F,drawingEndY:L}={drawingStartX:R,drawingEndX:R+E,drawingStartY:k,drawingEndY:k+P};c<=_&&b<=g&&u<=F&&L<=d&&h.push(C)});const p=[],S=[],f=r.startRow-e.startRow,v=r.startColumn-e.startColumn,I=h.map(D=>{const C=D.sheetTransform,M={to:{...C.to,row:C.to.row+f,column:C.to.column+v},from:{...C.from,row:C.from.row+f,column:C.from.column+v}},R=te(M,this._selectionRenderService,this._skeletonManagerService);return{unitId:n,subUnitId:o,drawingId:D.drawingId,transform:R,sheetTransform:M}});if(I.length){const D=this._sheetDrawingService.getBatchUpdateOp(I),{undo:C,redo:M,objects:R}=D;p.push({id:w.SetDrawingApplyMutation.id,params:{unitId:n,subUnitId:o,op:M,objects:R,type:w.DrawingApplyType.UPDATE}}),S.push({id:w.SetDrawingApplyMutation.id,params:{unitId:n,subUnitId:o,op:C,objects:R,type:w.DrawingApplyType.UPDATE}})}return{redos:p,undos:S}}_moveRowInterceptor(i,r){const e=this._getUnitIdAndSubUnitId(i,r);if(e==null)return{redos:[],undos:[]};const{unitId:t,subUnitId:n}=e,{range:o}=i,s=o.startRow,a=o.endRow,c=[],g=[],u=this._sheetDrawingService.getDrawingData(t,n),d=[],m=[];if(Object.keys(u).forEach(h=>{var C,M;const p=u[h],{sheetTransform:S,transform:f,anchorType:v=w.SheetDrawingAnchorType.Position}=p;if(S==null||f==null)return;let I,T,O;if(r==="insert"){const R=this._expandRow(S,f,s,a,v);I=R==null?void 0:R.newSheetTransform,T=R==null?void 0:R.newTransform,O=(C=R==null?void 0:R.axisAlignSheetTransform)!=null?C:void 0}else{const{from:R,to:k}=S,{row:E}=R,{row:P}=k;if(v===w.SheetDrawingAnchorType.Both&&E>=s&&P<=a)m.push({unitId:t,subUnitId:n,drawingId:h});else{const _=this._shrinkRow(S,f,s,a,v);I=_==null?void 0:_.newSheetTransform,T=_==null?void 0:_.newTransform,O=(M=_==null?void 0:_.axisAlignSheetTransform)!=null?M:void 0}}if(!I||!T)return;const D={unitId:t,subUnitId:n,drawingId:h,transform:T,sheetTransform:I,axisAlignSheetTransform:O};d.push(D)}),d.length===0&&m.length===0)return{redos:[],undos:[]};if(d.length>0){const h=this._sheetDrawingService.getBatchUpdateOp(d),{undo:p,redo:S,objects:f}=h;c.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:S,objects:f,type:w.DrawingApplyType.UPDATE}}),g.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:p,objects:f,type:w.DrawingApplyType.UPDATE}})}if(m.length>0){const h=this._sheetDrawingService.getBatchRemoveOp(m),p=h.undo,S=h.redo,f=h.objects;c.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:S,objects:f,type:w.DrawingApplyType.REMOVE}}),g.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:p,objects:f,type:w.DrawingApplyType.INSERT}})}return c.push({id:K.id,params:[t]}),g.push({id:K.id,params:[t]}),{redos:c,undos:g}}_moveColInterceptor(i,r){const e=this._getUnitIdAndSubUnitId(i,r);if(e==null)return{redos:[],undos:[]};const{unitId:t,subUnitId:n}=e,{range:o}=i,s=o.startColumn,a=o.endColumn,c=[],g=[],u=this._sheetDrawingService.getDrawingData(t,n),d=[],m=[];if(Object.keys(u).forEach(h=>{var C,M;const p=u[h],{sheetTransform:S,transform:f,anchorType:v=w.SheetDrawingAnchorType.Position}=p;if(S==null||f==null)return;let I,T,O;if(r==="insert"){const R=this._expandCol(S,f,s,a,v);I=R==null?void 0:R.newSheetTransform,T=R==null?void 0:R.newTransform,O=(C=R==null?void 0:R.axisAlignSheetTransform)!=null?C:void 0}else{const{from:R,to:k}=S,{column:E}=R,{column:P}=k;if(v===w.SheetDrawingAnchorType.Both&&E>=s&&P<=a)m.push({unitId:t,subUnitId:n,drawingId:h});else{const _=this._shrinkCol(S,f,s,a,v);I=_==null?void 0:_.newSheetTransform,T=_==null?void 0:_.newTransform,O=(M=_==null?void 0:_.axisAlignSheetTransform)!=null?M:void 0}}if(!I||!T)return;const D={unitId:t,subUnitId:n,drawingId:h,transform:T,sheetTransform:I,axisAlignSheetTransform:O};d.push(D)}),d.length===0&&m.length===0)return{redos:[],undos:[]};if(d.length>0){const h=this._sheetDrawingService.getBatchUpdateOp(d),{undo:p,redo:S,objects:f}=h;c.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:S,objects:f,type:w.DrawingApplyType.UPDATE}}),g.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:p,objects:f,type:w.DrawingApplyType.UPDATE}})}if(m.length>0){const h=this._sheetDrawingService.getBatchRemoveOp(m),p=h.undo,S=h.redo,f=h.objects;c.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:S,objects:f,type:w.DrawingApplyType.REMOVE}}),g.push({id:w.SetDrawingApplyMutation.id,params:{unitId:t,subUnitId:n,op:p,objects:f,type:w.DrawingApplyType.INSERT}})}return c.push({id:K.id,params:[t]}),g.push({id:K.id,params:[t]}),{redos:c,undos:g}}_expandCol(i,r,e,t,n=w.SheetDrawingAnchorType.Position){const o=t-e+1,{from:s,to:a}=i,{column:c}=s,{column:g}=a;if(n===w.SheetDrawingAnchorType.None)return{newSheetTransform:x({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:G({...r},this._selectionRenderService)};let u=null,d=null,m=null;if(c>=e){const h=this._skeletonManagerService.attachRangeWithCoord({startColumn:e,endColumn:t,startRow:s.row,endRow:a.row});if(h==null)return;d={...r,left:(r.left||0)+h.endX-h.startX},u=x(d,this._selectionRenderService),m=G(d,this._selectionRenderService)}else if(g>=t)if(n===w.SheetDrawingAnchorType.Both)u={from:{...s},to:{...a,column:g+o}},d=te(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:x({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:G({...r},this._selectionRenderService)};return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:m}:null}_shrinkCol(i,r,e,t,n=w.SheetDrawingAnchorType.Position){const o=t-e+1,{from:s,to:a}=i,{column:c}=s,{column:g}=a;if(n===w.SheetDrawingAnchorType.None)return{newSheetTransform:x({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:G({...r},this._selectionRenderService)};let u=null,d=null,m=null;if(c>t)u={from:{...s,column:c-o},to:{...a,column:g-o}},d=te(u,this._selectionRenderService,this._skeletonManagerService);else{if(c>=e&&g<=t)return null;if(c<e&&g>t)if(n===w.SheetDrawingAnchorType.Both)u={from:{...s},to:{...a,column:g-o}},d=te(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:x({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:G({...r},this._selectionRenderService)};else if(c>=e&&c<=t){if(c===e)d={...r,left:(r.left||0)-i.from.columnOffset};else{const h=this._skeletonManagerService.attachRangeWithCoord({startColumn:e,endColumn:c-1,startRow:s.row,endRow:a.row});if(h==null)return;d={...r,left:(r.left||0)-h.endX+h.startX-i.from.columnOffset}}u=x(d,this._selectionRenderService),m=G(d,this._selectionRenderService)}else if(g>=e&&g<=t&&n===w.SheetDrawingAnchorType.Both){const h=this._skeletonManagerService.attachRangeWithCoord({startColumn:e-1,endColumn:e-1,startRow:s.row,endRow:a.row});if(h==null)return;u={from:{...s},to:{...a,column:e-1,columnOffset:h.endX-h.startX}},d=te(u,this._selectionRenderService,this._skeletonManagerService)}}return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:m}:null}_expandRow(i,r,e,t,n=w.SheetDrawingAnchorType.Position){const o=t-e+1,{from:s,to:a}=i,{row:c}=s,{row:g}=a;if(n===w.SheetDrawingAnchorType.None)return{newSheetTransform:x({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:G({...r},this._selectionRenderService)};let u=null,d=null,m=null;if(c>=e){const h=this._skeletonManagerService.attachRangeWithCoord({startRow:e,endRow:t,startColumn:s.column,endColumn:a.column});if(h==null)return;d={...r,top:(r.top||0)+h.endY-h.startY},u=x(d,this._selectionRenderService),m=G(d,this._selectionRenderService)}else if(g>=t)if(n===w.SheetDrawingAnchorType.Both)u={from:{...s},to:{...a,row:g+o}},d=te(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:x({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:G({...r},this._selectionRenderService)};return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:m}:null}_shrinkRow(i,r,e,t,n=w.SheetDrawingAnchorType.Position){const o=t-e+1,{from:s,to:a}=i,{row:c}=s,{row:g}=a;if(n===w.SheetDrawingAnchorType.None)return{newSheetTransform:x({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:G({...r},this._selectionRenderService)};let u=null,d=null,m=null;if(c>t)u={from:{...s,row:c-o},to:{...a,row:g-o}},d=te(u,this._selectionRenderService,this._skeletonManagerService);else{if(c>=e&&g<=t)return null;if(c<e&&g>t)if(n===w.SheetDrawingAnchorType.Both)u={from:{...s},to:{...a,row:g-o}},d=te(u,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:x({...r},this._selectionRenderService),newTransform:r,axisAlignSheetTransform:G({...r},this._selectionRenderService)};else if(c>=e&&c<=t){if(c===e)d={...r,top:(r.top||0)-i.from.rowOffset};else{const h=this._skeletonManagerService.attachRangeWithCoord({startRow:e,endRow:c-1,startColumn:s.column,endColumn:a.column});if(h==null)return;d={...r,top:(r.top||0)-h.endY+h.startY-i.from.rowOffset}}u=x(d,this._selectionRenderService),m=G(d,this._selectionRenderService)}else if(g>=e&&g<=t&&n===w.SheetDrawingAnchorType.Both){const h=this._skeletonManagerService.attachRangeWithCoord({startColumn:s.column,endColumn:s.column,startRow:e-1,endRow:e-1});if(h==null)return;u={from:{...s},to:{...a,row:e-1,rowOffset:h.endY-h.startY}},d=te(u,this._selectionRenderService,this._skeletonManagerService)}}return u!=null&&d!=null?{newSheetTransform:u,newTransform:d,axisAlignSheetTransform:m}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(i.id===y.SetWorksheetActiveOperation.id){const{unitId:r,subUnitId:e}=i.params;this._updateDrawings(r,e)}})),this.disposeWithMe(this._context.activated$.subscribe(i=>{const{unit:r,unitId:e}=this._context;if(i){const t=r.getActiveSheet().getSheetId();this._updateDrawings(e,t)}else this._clearDrawings(e)}))}_clearDrawings(i){setTimeout(()=>{const r=this._drawingManagerService.drawingManagerData,e=[];Object.keys(r).forEach(t=>{const n=r[t];n!=null&&Object.keys(n).forEach(o=>{const s=n[o].data;s!=null&&Object.keys(s).forEach(a=>{t===i&&e.push(s[a])})})}),this._sheetDrawingService.removeNotification(e),this._drawingManagerService.removeNotification(e)})}_updateDrawings(i,r){setTimeout(()=>{const e=this._drawingManagerService.drawingManagerData,t=[],n=[];Object.keys(e).forEach(o=>{const s=e[o];s!=null&&Object.keys(s).forEach(a=>{const c=s[a].data;c!=null&&Object.keys(c).forEach(g=>{if(o===i&&a===r){const u=c[g];u.transform=te(u.sheetTransform,this._selectionRenderService,this._skeletonManagerService),t.push(c[g])}else n.push(c[g])})})}),this._sheetDrawingService.removeNotification(n),this._sheetDrawingService.addNotification(t),this._drawingManagerService.removeNotification(n),this._drawingManagerService.addNotification(t)},0)}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{kn.includes(i.id)&&requestIdleCallback(()=>{const r=i.params,e=y.getSheetCommandTarget(this._univerInstanceService,r);if(!e)return;const{unitId:t,subUnitId:n,worksheet:o}=e;let s=[];"ranges"in r?s=r.ranges:"rowsAutoHeightInfo"in r&&(s=r.rowsAutoHeightInfo.map(a=>({startRow:a.row,endRow:a.row,startColumn:0,endColumn:o.getColumnCount()-1}))),this._refreshDrawingTransform(t,n,s)})}))}_refreshDrawingTransform(i,r,e){const t=this._drawingManagerService.getDrawingData(i,r),n=[];Object.keys(t).forEach(o=>{const s=t[o],{sheetTransform:a,transform:c,anchorType:g=w.SheetDrawingAnchorType.Position}=s;if(g===w.SheetDrawingAnchorType.None)return!0;const{from:u,to:d}=a,{row:m,column:h}=u,{row:p,column:S}=d;for(let f=0;f<e.length;f++){const v=e[f],{startRow:I,endRow:T,startColumn:O,endColumn:D}=v;if(l.Rectangle.intersects({startRow:I,endRow:T,startColumn:O,endColumn:D},{startRow:m,endRow:p,startColumn:h,endColumn:S})||m>T||h>D){const C=g===w.SheetDrawingAnchorType.Position,M=te(a,this._selectionRenderService,this._skeletonManagerService);n.push({...s,transform:{...M,width:C?c==null?void 0:c.width:M==null?void 0:M.width,height:C?c==null?void 0:c.height:M==null?void 0:M.height}});break}}}),n.length!==0&&(this._sheetDrawingService.refreshTransform(n),this._drawingManagerService.refreshTransform(n),this._commandService.syncExecuteCommand(K.id,[i]))}};Tt=Pn([we(1,N.IRenderManagerService),we(2,l.ICommandService),we(3,U.ISheetSelectionRenderService),we(4,l.Inject(U.SheetSkeletonManagerService)),we(5,l.Inject(y.SheetInterceptorService)),we(6,w.ISheetDrawingService),we(7,B.IDrawingManagerService),we(8,l.IUniverInstanceService)],Tt);function Wn(){const i=j.useDependency(l.LocaleService),r=j.useDependency(j.IDialogService),e=j.useDependency(Ve),[t,n]=Q.useState([fe.CELL_ADDRESS]),[o,s]=Q.useState(!1),[a,c]=Q.useState(null),g=Q.useMemo(()=>e.getCellImagesInSelection(),[e]),u=Q.useMemo(()=>e.getDataColumns(),[e]),d=Q.useMemo(()=>e.getSelectionRowRange(),[e]),m=u.length>0,h=Q.useMemo(()=>u.map(C=>({label:C.label,value:String(C.index)})),[u]),[p,S]=Q.useState(()=>h.length>0?h[0].value:"0"),f=Q.useMemo(()=>{if(!t.includes(fe.COLUMN_VALUE)||!d)return[];const M=Number(p);return[{startRow:d.startRow,endRow:d.endRow,startColumn:M,endColumn:M}]},[t,p,d]);U.useHighlightRange(f);const v=Q.useCallback(C=>{C.length!==0&&n(C)},[]),I=Q.useCallback(C=>{S(String(C))},[]),T=Q.useCallback(()=>{r.close(Me)},[r]),O=Q.useCallback(async()=>{if(g.length!==0){s(!0),c(null);try{await e.saveImages(g,{fileNameParts:t,columnIndex:t.includes(fe.COLUMN_VALUE)?Number(p):void 0}),r.close(Me)}catch(C){console.error("Failed to save images:",C),c(i.t("sheetImage.save.error"))}finally{s(!1)}}},[e,g,t,p,r,i]),D=t.includes(fe.COLUMN_VALUE);return Y.jsxs("div",{className:"univer-flex univer-flex-col",children:[Y.jsx(X.FormLayout,{label:i.t("sheetImage.save.imageCount"),children:Y.jsx("div",{className:"univer-text-sm univer-text-gray-600",children:g.length})}),Y.jsx(X.FormLayout,{label:i.t("sheetImage.save.fileNameConfig"),children:Y.jsxs(X.CheckboxGroup,{value:t,onChange:v,direction:"vertical",children:[Y.jsx(X.Checkbox,{value:fe.CELL_ADDRESS,disabled:!m,children:i.t("sheetImage.save.useRowCol")}),m&&Y.jsx(X.Checkbox,{value:fe.COLUMN_VALUE,children:i.t("sheetImage.save.useColumnValue")})]})}),D&&Y.jsx(X.FormLayout,{label:i.t("sheetImage.save.selectColumn"),children:Y.jsx(X.Select,{value:p,options:h,onChange:I})}),a&&Y.jsx("div",{className:"univer-text-xs univer-text-red-500",children:a}),Y.jsxs("div",{className:"univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3",children:[Y.jsx(X.Button,{onClick:T,disabled:o,children:i.t("sheetImage.save.cancel")}),Y.jsx(X.Button,{variant:"primary",onClick:O,disabled:o||g.length===0,children:o?i.t("sheetImage.save.saving"):i.t("sheetImage.save.confirm")})]})]})}const xt=i=>{var I;const r=j.useDependency(l.ICommandService),e=j.useDependency(l.LocaleService),t=j.useDependency(B.IDrawingManagerService),n=j.useDependency(N.IRenderManagerService),{drawings:o}=i,s=o[0];if(s==null)return;const{unitId:a}=s,c=n.getRenderById(a),g=c==null?void 0:c.scene;if(g==null)return;const u=g.getTransformerByCreate(),[d,m]=Q.useState(!0),h=(I=s.anchorType)!=null?I:w.SheetDrawingAnchorType.Position,[p,S]=Q.useState(h);function f(T,O){const D=[];return T.forEach(C=>{const{oKey:M}=C,R=O.getDrawingOKey(M);if(R==null)return D.push(null),!0;const{unitId:k,subUnitId:E,drawingId:P,drawingType:_,anchorType:b,sheetTransform:F,axisAlignSheetTransform:L}=R;D.push({unitId:k,subUnitId:E,drawingId:P,anchorType:b,sheetTransform:F,drawingType:_,axisAlignSheetTransform:L})}),D}Q.useEffect(()=>{const T=u.clearControl$.subscribe(D=>{D===!0&&m(!1)}),O=u.changeStart$.subscribe(D=>{var R;const{objects:C}=D,M=f(C,t);if(M.length===0)m(!1);else if(M.length>=1){m(!0);const k=((R=M[0])==null?void 0:R.anchorType)||w.SheetDrawingAnchorType.Position;S(k)}});return()=>{O.unsubscribe(),T.unsubscribe()}},[]);function v(T){S(T);const O=t.getFocusDrawings();if(O.length===0)return;const D=O.map(C=>({unitId:C.unitId,subUnitId:C.subUnitId,drawingId:C.drawingId,anchorType:T}));r.executeCommand(De.id,{unitId:O[0].unitId,drawings:D})}return Y.jsxs("div",{className:X.clsx("univer-grid univer-gap-2 univer-py-2 univer-text-gray-400",{"univer-hidden":!d}),children:[Y.jsx("header",{className:"univer-text-gray-600 dark:!univer-text-gray-200",children:Y.jsx("div",{children:e.t("drawing-anchor.title")})}),Y.jsx("div",{children:Y.jsxs(X.RadioGroup,{value:p,onChange:v,direction:"vertical",children:[Y.jsx(X.Radio,{value:w.SheetDrawingAnchorType.Both,children:e.t("drawing-anchor.both")}),Y.jsx(X.Radio,{value:w.SheetDrawingAnchorType.Position,children:e.t("drawing-anchor.position")}),Y.jsx(X.Radio,{value:w.SheetDrawingAnchorType.None,children:e.t("drawing-anchor.none")})]})})]})},Bn=()=>{const i=j.useDependency(B.IDrawingManagerService),r=i.getFocusDrawings(),[e,t]=Q.useState(r);return Q.useEffect(()=>{const n=i.focus$.subscribe(o=>{t(o)});return()=>{n.unsubscribe()}},[]),!!(e!=null&&e.length)&&Y.jsxs("div",{className:"univer-text-sm",children:[Y.jsx(Se.DrawingCommonPanel,{drawings:e}),Y.jsx(xt,{drawings:e})]})},Mt="sheet.menu.image";function jn(i){return{id:Mt,type:j.MenuItemType.SUBITEMS,icon:"AddImageIcon",tooltip:"sheetImage.title",hidden$:j.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),disabled$:U.getCurrentRangeDisable$(i,{workbookTypes:[y.WorkbookEditablePermission],worksheetTypes:[y.WorksheetEditPermission],rangeTypes:[y.RangeProtectionPermissionEditPoint]})}}function Fn(i){return{id:ke.id,title:"sheetImage.upload.float",type:j.MenuItemType.BUTTON,hidden$:j.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function Ln(i){return{id:ft.id,title:"sheetImage.upload.cell",type:j.MenuItemType.BUTTON,hidden$:j.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET)}}function $n(i){var r,e,t,n;return!!((e=(r=i==null?void 0:i.p)==null?void 0:r.drawingsOrder)!=null&&e.length&&((n=(t=i==null?void 0:i.p)==null?void 0:t.drawingsOrder)==null?void 0:n.length)>0)}function Yn(i,r){const e=i.getActiveSheet();if(!e)return!1;const t=e.getCellMatrix(),{startRow:n,endRow:o,startColumn:s,endColumn:a}=r;for(let c=n;c<=o;c++)for(let g=s;g<=a;g++){const u=t.getValue(c,g);if($n(u))return!0}return!1}function xn(){return"showDirectoryPicker"in window}function Rt(i){const r=i.get(l.IUniverInstanceService),e=i.get(y.SheetsSelectionsService),t=W.combineLatest([j.getMenuHiddenObservable(i,l.UniverInstanceType.UNIVER_SHEET),r.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).pipe(W.switchMap(n=>n?e.selectionMoveEnd$.pipe(W.map(()=>{if(!xn())return!0;const o=e.getCurrentSelections();if(!o||o.length===0)return!0;for(const s of o)if(Yn(n,s.range))return!1;return!0})):W.of(!0)))]).pipe(W.map(([n,o])=>n||o));return{id:Re.id,type:j.MenuItemType.BUTTON,icon:"DownloadImageIcon",title:"sheetImage.save.menuLabel",hidden$:t}}const Gn={[j.RibbonInsertGroup.MEDIA]:{[Mt]:{order:0,menuItemFactory:jn,[ke.id]:{order:0,menuItemFactory:Fn},[ft.id]:{order:1,menuItemFactory:Ln}}},[j.ContextMenuPosition.MAIN_AREA]:{[j.ContextMenuGroup.OTHERS]:{[Re.id]:{order:10,menuItemFactory:Rt}}},[j.ContextMenuPosition.COL_HEADER]:{[j.ContextMenuGroup.OTHERS]:{[Re.id]:{order:10,menuItemFactory:Rt}}},[j.ContextMenuPosition.ROW_HEADER]:{[j.ContextMenuGroup.OTHERS]:{[Re.id]:{order:10,menuItemFactory:Rt}}}};function Le(i){return i.getContextValue(l.FOCUSING_SHEET)&&!i.getContextValue(l.FOCUSING_FX_BAR_EDITOR)&&!i.getContextValue(l.FOCUSING_PANEL_EDITOR)&&i.getContextValue(l.FOCUSING_COMMON_DRAWINGS)&&!i.getContextValue(l.FOCUSING_SHAPE_TEXT_EDITOR)}const Hn={id:Te.id,description:"shortcut.drawing-move-down",group:"4_drawing-view",binding:j.KeyCode.ARROW_DOWN,priority:100,preconditions:Le,staticParameters:{direction:l.Direction.DOWN}},Vn={id:Te.id,description:"shortcut.drawing-move-up",group:"4_drawing-view",binding:j.KeyCode.ARROW_UP,priority:100,preconditions:Le,staticParameters:{direction:l.Direction.UP}},Xn={id:Te.id,description:"shortcut.drawing-move-left",group:"4_drawing-view",binding:j.KeyCode.ARROW_LEFT,priority:100,preconditions:Le,staticParameters:{direction:l.Direction.LEFT}},Kn={id:Te.id,description:"shortcut.drawing-move-right",group:"4_drawing-view",binding:j.KeyCode.ARROW_RIGHT,priority:100,preconditions:Le,staticParameters:{direction:l.Direction.RIGHT}},zn={id:gt.id,description:"shortcut.drawing-delete",group:"4_drawing-view",priority:100,preconditions:Le,binding:j.KeyCode.DELETE,mac:j.KeyCode.BACKSPACE};var qn=Object.getOwnPropertyDescriptor,Zn=(i,r,e,t)=>{for(var n=t>1?void 0:t?qn(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},be=(i,r)=>(e,t)=>r(e,t,i);let ot=class extends l.Disposable{constructor(i,r,e,t,n,o){super(),this._componentManager=i,this._menuManagerService=r,this._commandService=e,this._shortcutService=t,this._drawingManagerService=n,this._sheetsSelectionsService=o,this._init()}_initCustomComponents(){const i=this._componentManager;this.disposeWithMe(i.register(kt,Bn)),this.disposeWithMe(i.register(Me,Wn))}_initMenus(){this._menuManagerService.mergeMenu(Gn)}_initCommands(){[ke,ft,Ne,Ce,De,_t,K,It,ht,pt,Te,gt,mt,Re,yt].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i)))}_initShortcuts(){[Hn,Vn,Xn,Kn,zn].forEach(i=>{this.disposeWithMe(this._shortcutService.registerShortcut(i))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};ot=Zn([be(0,l.Inject(j.ComponentManager)),be(1,j.IMenuManagerService),be(2,l.ICommandService),be(3,j.IShortcutService),be(4,B.IDrawingManagerService),be(5,l.Inject(y.SheetsSelectionsService))],ot);var Jn=Object.defineProperty,Qn=Object.getOwnPropertyDescriptor,er=(i,r,e)=>r in i?Jn(i,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[r]=e,tr=(i,r,e,t)=>{for(var n=t>1?void 0:t?Qn(r,e):r,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=s(n)||n);return n},Et=(i,r)=>(e,t)=>r(e,t,i),Gt=(i,r,e)=>er(i,typeof r!="symbol"?r+"":r,e);const nr="SHEET_IMAGE_UI_PLUGIN";A.UniverSheetsDrawingUIPlugin=class extends l.Plugin{constructor(r=Wt,e,t,n){super(),this._config=r,this._injector=e,this._renderManagerService=t,this._configService=n;const{menu:o,...s}=l.merge({},Wt,this._config);o&&this._configService.setConfig("menu",o,{merge:!0}),this._configService.setConfig(on,s)}onStarting(){l.registerDependencies(this._injector,[[A.SheetCanvasFloatDomManagerService],[ot],[Ke],[it],[tt],[et],[Ze],[Je],[Qe],[Ve,{useClass:A.BatchSaveImagesService}]]),l.touchDependencies(this._injector,[[A.SheetCanvasFloatDomManagerService]])}onReady(){l.touchDependencies(this._injector,[[et],[Qe]])}onRendered(){this._registerRenderModules(),l.touchDependencies(this._injector,[[tt],[it],[ot],[Ze],[Je]])}onSteady(){this._injector.get(Ke)}_registerRenderModules(){[[A.SheetDrawingUpdateController],[Tt],[Dt],[Ct]].forEach(r=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(l.UniverInstanceType.UNIVER_SHEET,r))})}},Gt(A.UniverSheetsDrawingUIPlugin,"type",l.UniverInstanceType.UNIVER_SHEET),Gt(A.UniverSheetsDrawingUIPlugin,"pluginName",nr),A.UniverSheetsDrawingUIPlugin=tr([l.DependentOn(B.UniverDrawingPlugin,At.UniverDocsDrawingPlugin,Se.UniverDrawingUIPlugin,w.UniverSheetsDrawingPlugin),Et(1,l.Inject(l.Injector)),Et(2,N.IRenderManagerService),Et(3,l.IConfigService)],A.UniverSheetsDrawingUIPlugin),A.ClearSheetDrawingTransformerOperation=K,A.DeleteDrawingsCommand=gt,A.EditSheetDrawingOperation=It,A.FileNamePart=fe,A.GroupSheetDrawingCommand=ht,A.IBatchSaveImagesService=Ve,A.InsertFloatImageCommand=ke,A.InsertSheetDrawingCommand=Ne,A.MoveDrawingsCommand=Te,A.RemoveSheetDrawingCommand=Ce,A.SHEETS_IMAGE_MENU_ID=Mt,A.SHEET_FLOAT_DOM_PREFIX=$t,A.SaveCellImagesCommand=Re,A.SetDrawingArrangeCommand=mt,A.SetSheetDrawingCommand=De,A.SheetDrawingAnchor=xt,A.SidebarSheetDrawingOperation=_t,A.UngroupSheetDrawingCommand=pt,A.calcSheetFloatDomPosition=de,A.drawingPositionToTransform=te,A.transformToAxisAlignPosition=G,A.transformToDrawingPosition=x,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})}));
|
|
16
|
-
|
|
42
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/engine-render`),require(`@univerjs/sheets-ui`),require(`@univerjs/core`),require(`@univerjs/sheets-drawing`),require(`@univerjs/sheets`),require(`@univerjs/design`),require(`@univerjs/docs-ui`),require(`@univerjs/drawing`),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/engine-render`,`@univerjs/sheets-ui`,`@univerjs/core`,`@univerjs/sheets-drawing`,`@univerjs/sheets`,`@univerjs/design`,`@univerjs/docs-ui`,`@univerjs/drawing`,`@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.UniverEngineRender,e.UniverSheetsUi,e.UniverCore,e.UniverSheetsDrawing,e.UniverSheets,e.UniverDesign,e.UniverDocsUi,e.UniverDrawing,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`});function h(e,t,r){let{from:i,to:a,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e,d=r.getCurrent();if(d==null)return;let{left:f,top:p,width:m,height:h}=(0,n.convertPositionSheetOverGridToAbsolute)(d.unitId,d.sheetId,{from:i,to:a},r),g=r.getCurrentSkeleton(),_=g.rowHeaderWidth+g.columnTotalWidth,v=g.columnHeaderHeight+g.rowTotalHeight;return f+m>_&&(f=_-m),p+h>v&&(p=v-h),{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,left:f,top:p,width:m,height:h}}function g(e,n){let{left:r=0,top:i=0,width:a=0,height:o=0,flipY:s=!1,flipX:c=!1,angle:l=0,skewX:u=0,skewY:d=0}=e,f=n.getCellWithCoordByOffset(r,i);if(f==null)return;let p={column:f.actualColumn,columnOffset:(0,t.precisionTo)(r-f.startX,1),row:f.actualRow,rowOffset:(0,t.precisionTo)(i-f.startY,1)},m=n.getCellWithCoordByOffset(r+a,i+o);if(m!=null)return{flipY:s,flipX:c,angle:l,skewX:u,skewY:d,from:p,to:{column:m.actualColumn,columnOffset:(0,t.precisionTo)(r+a-m.startX,1),row:m.actualRow,rowOffset:(0,t.precisionTo)(i+o-m.startY,1)}}}function _(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:o=0}=e,s=(o%360+360)%360;return g(s>=45&&s<135||s>=225&&s<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}let v={id:`sheet.operation.clear-drawing-transformer`,type:r.CommandType.MUTATION,handler:(e,n)=>{let r=e.get(t.IRenderManagerService);return n.forEach(e=>{var t;(t=r.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},y={id:`sheet.command.remove-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{var n;let o=e.get(r.ICommandService),s=e.get(r.IUndoRedoService),c=e.get(a.SheetInterceptorService),l=e.get(i.ISheetDrawingService);if(!t)return!1;let{drawings:u}=t,d=[];u.forEach(e=>{let{unitId:t}=e;d.push(t)});let{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=l.getBatchRemoveOp(u),_=c.onCommandExecute({id:y.id,params:t}),b={id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:h,objects:g,type:i.DrawingApplyType.REMOVE}},x={id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:m,objects:g,type:i.DrawingApplyType.INSERT}};if((0,r.sequenceExecute)([...(n=_.preRedos)==null?[]:n,b,..._.redos],o)){var S,C;return s.pushUndoRedo({unitID:f,undoMutations:[...(S=_.preUndos)==null?[]:S,x,..._.undos,{id:v.id,params:d}],redoMutations:[...(C=_.preRedos)==null?[]:C,b,..._.redos,{id:v.id,params:d}]}),!0}return!1}},b={id:`sheet.command.delete-drawing`,type:r.CommandType.COMMAND,handler:e=>{let t=e.get(r.ICommandService),n=e.get(i.ISheetDrawingService).getFocusDrawings();if(n.length===0)return!1;let a=n[0].unitId,o=n.map(e=>{let{unitId:t,subUnitId:n,drawingId:r,drawingType:i}=e;return{unitId:t,subUnitId:n,drawingId:r,drawingType:i}});return t.executeCommand(y.id,{unitId:a,drawings:o})}};function x(e){let n=[];return e.forEach(e=>{let{parent:i,children:a}=e,{unitId:o,subUnitId:s,drawingId:c}=i,l=(0,t.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:r.DrawingTypeEnum.DRAWING_GROUP,groupBaseBound:{...i.groupBaseBound},transform:l};n.push({parent:d,children:u})}),n}function S(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:n}=e,{unitId:r,subUnitId:a,drawingId:o}=e;return{unitId:r,subUnitId:a,drawingId:o,transform:(0,t.transformObjectOutOfGroup)(n||{},l,l.width||0,l.height||0,i.groupBaseBound),groupId:void 0}}),d={unitId:o,subUnitId:s,drawingId:c,drawingType:r.DrawingTypeEnum.DRAWING_GROUP,transform:{left:0,top:0}};n.push({parent:d,children:u})}),n}function C(e){var t;let n=new Map;(t=e.flatChildren)==null||t.forEach(e=>n.set(e.drawingId,(0,r.generateRandomId)(10))),e.groups.forEach(e=>n.set(e.drawingId,(0,r.generateRandomId)(10)));let i={};for(let[t,r]of Object.entries(e.nestedIdRecord)){var a,o;let e=(a=n.get(t))==null?t:a;i[e]={drawingId:e,children:(o=r.children)==null?void 0:o.map(e=>{var t;return(t=n.get(e))==null?e:t})}}let s=[],c=[];for(let t of e.groups){var l,u;let e=(l=n.get(t.drawingId))==null?t.drawingId:l,r=t.groupId?(u=n.get(t.groupId))==null?t.groupId:u:void 0;c.push(w(t,e,r))}for(let t of e.flatChildren||[]){var d,f;let e=(d=n.get(t.drawingId))==null?t.drawingId:d,r=t.groupId?(f=n.get(t.groupId))==null?t.groupId:f:void 0;s.push(w(t,e,r))}return{cloned:{nestedIdRecord:i,flatChildren:s,groups:c},idMap:n}}function w(e,t,n){let r={...e};return t&&(r.drawingId=t),n?r.groupId=n:delete r.groupId,JSON.parse(JSON.stringify(r))}let T={id:`sheet.command.group-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{let n=e.get(r.ICommandService),a=e.get(r.IUndoRedoService),o=e.get(i.ISheetDrawingService);if(!t)return!1;let s=[];t.forEach(({parent:e,children:t})=>{s.push(e.unitId),t.forEach(e=>{s.push(e.unitId)})});let{unitId:c,subUnitId:l,undo:u,redo:d,objects:f}=o.getGroupDrawingOp(t);return n.syncExecuteCommand(i.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.GROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:S(f),type:i.DrawingApplyType.UNGROUP}},{id:v.id,params:s}],redoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.GROUP}},{id:v.id,params:s}]}),!0):!1}},E={id:`sheet.command.insert-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{var n;let o=e.get(r.ICommandService),s=e.get(r.IUndoRedoService),c=e.get(i.ISheetDrawingService),l=e.get(a.SheetInterceptorService);if(!t)return!1;let u=t.drawings,d=u.map(e=>e.unitId),{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=c.getBatchAddOp(u),_=l.onCommandExecute({id:E.id,params:t}),y={id:i.SetDrawingApplyMutation.id,params:{op:h,unitId:f,subUnitId:p,objects:g,type:i.DrawingApplyType.INSERT}},b={id:i.SetDrawingApplyMutation.id,params:{op:m,unitId:f,subUnitId:p,objects:g,type:i.DrawingApplyType.REMOVE}};if((0,r.sequenceExecute)([...(n=_.preRedos)==null?[]:n,y,..._.redos],o)){var x,S;return s.pushUndoRedo({unitID:f,undoMutations:[...(x=_.preUndos)==null?[]:x,b,..._.undos,{id:v.id,params:d}],redoMutations:[...(S=_.preRedos)==null?[]:S,y,..._.redos,{id:v.id,params:d}]}),!0}return!1}},D={id:`sheet.command.set-drawing-arrange`,type:r.CommandType.COMMAND,handler:(e,t)=>{let n=e.get(r.ICommandService),a=e.get(r.IUndoRedoService);if(!t)return!1;let o=e.get(i.ISheetDrawingService),{unitId:s,subUnitId:c,drawingIds:l,arrangeType:u}=t,d={unitId:s,subUnitId:c,drawingIds:l},f;if(u===r.ArrangeTypeEnum.forward?f=o.getForwardDrawingsOp(d):u===r.ArrangeTypeEnum.backward?f=o.getBackwardDrawingOp(d):u===r.ArrangeTypeEnum.front?f=o.getFrontDrawingsOp(d):u===r.ArrangeTypeEnum.back&&(f=o.getBackDrawingsOp(d)),f==null)return!1;let{objects:p,redo:m,undo:h}=f;return n.syncExecuteCommand(i.SetDrawingApplyMutation.id,{op:m,unitId:s,subUnitId:c,objects:p,type:i.DrawingApplyType.ARRANGE})?(a.pushUndoRedo({unitID:s,undoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:h,unitId:s,subUnitId:c,objects:p,type:i.DrawingApplyType.ARRANGE}}],redoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:m,unitId:s,subUnitId:c,objects:p,type:i.DrawingApplyType.ARRANGE}}]}),!0):!1}},O={id:`sheet.command.set-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{var n,o;let s=e.get(r.ICommandService),c=e.get(r.IUndoRedoService),l=e.get(i.ISheetDrawingService),u=e.get(a.SheetInterceptorService);if(!t)return!1;let{drawings:d}=t,{unitId:f,subUnitId:p,undo:m,redo:h,objects:g}=l.getBatchUpdateOp(d),_=u.onCommandExecute({id:O.id,params:t}),y=[...(n=_.preRedos)==null?[]:n,{id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:h,objects:g,type:i.DrawingApplyType.UPDATE}},..._.redos,{id:v.id,params:[f]}],b=[...(o=_.preUndos)==null?[]:o,{id:i.SetDrawingApplyMutation.id,params:{unitId:f,subUnitId:p,op:m,objects:g,type:i.DrawingApplyType.UPDATE}},..._.undos,{id:v.id,params:[f]}];return(0,r.sequenceExecute)(y,s)?(c.pushUndoRedo({unitID:f,undoMutations:b,redoMutations:y}),!0):!1}},k={id:`sheet.command.ungroup-sheet-image`,type:r.CommandType.COMMAND,handler:(e,t)=>{let n=e.get(r.ICommandService),a=e.get(r.IUndoRedoService),o=e.get(i.ISheetDrawingService);if(!t)return!1;let s=[];t.forEach(({parent:e,children:t})=>{s.push(e.unitId),t.forEach(e=>{s.push(e.unitId)})});let{unitId:c,subUnitId:l,undo:u,redo:d,objects:f}=o.getUngroupDrawingOp(t);return n.syncExecuteCommand(i.SetDrawingApplyMutation.id,{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.UNGROUP})?(a.pushUndoRedo({unitID:c,undoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:u,unitId:c,subUnitId:l,objects:x(f),type:i.DrawingApplyType.GROUP}},{id:v.id,params:s}],redoMutations:[{id:i.SetDrawingApplyMutation.id,params:{op:d,unitId:c,subUnitId:l,objects:f,type:i.DrawingApplyType.UNGROUP}},{id:v.id,params:s}]}),!0):!1}};function A(e){"@babel/helpers - typeof";return A=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},A(e)}function j(e,t){if(A(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(A(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function M(e){var t=j(e,`string`);return A(t)==`symbol`?t:t+``}function N(e,t,n){return(t=M(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(e,t){return function(n,r){t(n,r,e)}}function F(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 I(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 L(e,r,i,a,o){var s;let{rotatedHeight:c,rotatedWidth:l}=I(i,a,o),u=e.get(t.IRenderManagerService).getRenderById(r.unitId);if(!u)return!1;let d=(s=u.with(n.SheetSkeletonManagerService).getSkeletonParam(r.subUnitId))==null?void 0:s.skeleton;if(d==null)return!1;let f=d.getCellByIndex(r.row,r.col),p=f.mergeInfo.endX-f.mergeInfo.startX-2,m=f.mergeInfo.endY-f.mergeInfo.startY-2,h=l/c,g=Math.ceil(Math.min(p,m*h))/l,_=!g||Number.isNaN(g)?.001:g;return{width:i*_,height:a*_}}let R=class extends r.Disposable{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){super(),this._context=e,this._skeletonManagerService=t,this._commandService=n,this._selectionRenderService=r,this._imageIoService=i,this._fileOpenerService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._contextService=c,this._messageService=l,this._localeService=u,this._injector=f,this._urlImageService=p,N(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:c.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>c.DRAWING_IMAGE_COUNT_LIMIT?(this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(c.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:c.DRAWING_IMAGE_ALLOW_IMAGE_LIST.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}))[0];return e?(await this._insertCellImage(e),!0):!1}insertCellImageByFile(e,t){return this._insertCellImage(e,t)}async insertFloatImageByFile(e){var t;let n;try{n=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===c.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(c.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===c.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===c.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(n==null)return;let{unitId:i,subUnitId:a}=this._getUnitInfo(),{imageId:s,imageSourceType:l,source:u,base64Cache:d}=n,{width:f,height:p,image:m}=await(0,c.getImageSize)(d||``),{width:g,height:v}=this._context.scene;this._imageIoService.addImageSourceCache(u,l,m);let y=1;if(f>c.DRAWING_IMAGE_WIDTH_LIMIT||p>c.DRAWING_IMAGE_HEIGHT_LIMIT){let e=c.DRAWING_IMAGE_WIDTH_LIMIT/f,t=c.DRAWING_IMAGE_HEIGHT_LIMIT/p;y=Math.max(e,t)}let b=this._getImagePosition(f*y,p*y,g,v);if(b==null)return;let x=h(b,this._selectionRenderService,this._skeletonManagerService),S={unitId:i,subUnitId:a,drawingId:s,drawingType:r.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l,source:u,transform:x,sheetTransform:b,axisAlignSheetTransform:(t=_(x,this._selectionRenderService))==null?b:t};return this._commandService.executeCommand(E.id,{unitId:i,drawings:[S]})}async _insertCellImage(e,t){let n;try{n=await this._imageIoService.saveImage(e)}catch(e){let t=e.message;t===c.ImageUploadStatusType.ERROR_EXCEED_SIZE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.exceedMaxSize`,String(c.DRAWING_IMAGE_ALLOW_SIZE/(1024*1024)))}):t===c.ImageUploadStatusType.ERROR_IMAGE_TYPE?this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImageType`)}):t===c.ImageUploadStatusType.ERROR_IMAGE&&this._messageService.show({type:o.MessageType.Error,content:this._localeService.t(`update-status.invalidImage`)})}if(n==null)return!1;let{imageId:i,imageSourceType:l,source:u,base64Cache:d}=n,{width:f,height:p,image:m}=await(0,c.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,r.createDocumentModelWithStyle)(``,{}),y=L(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:r.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:r.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},x={unitId:v.getUnitId(),subUnitId:v.getUnitId(),drawingId:i,drawingType:r.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:l,source:u,transform:(0,s.docDrawingPositionToTransform)(b),docTransform:b,behindDoc:r.BooleanNumber.FALSE,title:``,description:``,layoutType:r.PositionedObjectLayoutType.INLINE,wrapText:r.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},S=r.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(a.SetRangeValuesCommand.id,{value:{[(C=t==null?void 0:t.row)==null?g:C]:{[(w=t==null?void 0:t.col)==null?_:w]:{p:v.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})}return!1}async insertCellImageByUrl(e,t){let n=e;try{n=await this._urlImageService.getImage(e)}catch(t){console.error(`Failed to get image from URLImageService: ${e}`,t)}let{width:i,height:o,image:l}=await(0,c.getImageSize)(n||``);this._imageIoService.addImageSourceCache(e,r.ImageSourceType.URL,l);let u=this._workbookSelections.getCurrentLastSelection();if(!u)return!1;let d=(0,r.createDocumentModelWithStyle)(``,{}),f=L(this._injector,{unitId:this._context.unitId,subUnitId:this._context.unit.getActiveSheet().getSheetId(),row:u.primary.actualRow,col:u.primary.actualColumn},i,o,0);if(!f)return!1;let p={size:{width:f.width,height:f.height},positionH:{relativeFrom:r.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:r.ObjectRelativeFromV.PARAGRAPH,posOffset:0},angle:0},m={unitId:d.getUnitId(),subUnitId:d.getUnitId(),drawingId:(0,r.generateRandomId)(),drawingType:r.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:r.ImageSourceType.URL,source:e,transform:(0,s.docDrawingPositionToTransform)(p),docTransform:p,behindDoc:r.BooleanNumber.FALSE,title:``,description:``,layoutType:r.PositionedObjectLayoutType.INLINE,wrapText:r.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0},h=r.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(a.SetRangeValuesCommand.id,{value:{[(g=t==null?void 0:t.row)==null?u.primary.actualRow:g]:{[(_=t==null?void 0:t.col)==null?u.primary.actualColumn:_]:{p:d.getSnapshot(),t:1}}},unitId:t==null?void 0:t.unitId,subUnitId:t==null?void 0:t.subUnitId})}return!1}_getUnitInfo(){let e=this._context.unit,t=e.getActiveSheet();return{unitId:e.getUnitId(),subUnitId:t.getSheetId()}}_getImagePosition(e,t,r,i){let a=this._workbookSelections.getCurrentSelections(),o={startRow:0,endRow:0,startColumn:0,endColumn:0};a&&a.length>0&&(o=a[a.length-1].range);let s=(0,n.attachRangeWithCoord)(this._skeletonManagerService.getCurrent().skeleton,o);if(s==null)return;let{startColumn:c,startRow:l,startX:u,startY:d}=s,f=!1;if(u+e>r&&(u=r-e,u<0&&(u=0,e=r),f=!0),d+t>i&&(d=i-t,d<0&&(d=0,t=i),f=!0),f){let e=this._selectionRenderService.getCellWithCoordByOffset(u,d);if(e==null)return;u=e.startX,d=e.startY,c=e.actualColumn,l=e.actualRow}let p={column:c,columnOffset:0,row:l,rowOffset:0},m=this._selectionRenderService.getCellWithCoordByOffset(u+e,d+t);if(m!=null)return{from:p,to:{column:m.actualColumn,columnOffset:u+e-m.startX,row:m.actualRow,rowOffset:d+t-m.startY}}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(D.id,{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i})}))}_updateDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe(e=>{let t=[];e.length!==0&&(e.forEach(e=>{let{unitId:n,subUnitId:r,drawingId:i,drawingType:a,transform:o}=e;if(o==null)return;let s=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:r,drawingId:i});if(s==null||s.unitId!==this._context.unitId)return;let c=g({...s.transform,...o},this._selectionRenderService),l=_({...s.transform,...o},this._selectionRenderService);if(c==null||l==null)return;let u={...e,transform:{...s.transform,...o,...h(c,this._selectionRenderService,this._skeletonManagerService)},sheetTransform:{...c},axisAlignSheetTransform:{...l}};t.push(u)}),t.length>0&&this._commandService.executeCommand(O.id,{unitId:e[0].unitId,drawings:t}))}))}_getSheetTransformByParam(e,t){let{unitId:n,subUnitId:r,drawingId:i,transform:a}=e;if(a==null)return null;let o=this._sheetDrawingService.getDrawingByParam({unitId:n,subUnitId:r,drawingId:i}),s=o==null?void 0:o.transform;if(t&&(s={}),!t&&(o==null||o.unitId!==this._context.unitId))return null;let c=g({...s,...a},this._selectionRenderService),l=_({...s,...a},this._selectionRenderService);return c==null||l==null?null:{sheetTransform:c,axisAlignSheetTransform:l}}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{let t=[];for(let n of e){let e=this._getSheetTransformByParam(n.parent,!0),r=[];for(let e of n.children){let t=this._getSheetTransformByParam(e,!1);t!=null&&r.push({...e,sheetTransform:t.sheetTransform,axisAlignSheetTransform:t.axisAlignSheetTransform})}let i={parent:{...n.parent,sheetTransform:e==null?void 0:e.sheetTransform,axisAlignSheetTransform:e==null?void 0:e.axisAlignSheetTransform},children:r};t.push(i)}if(t.length>0){this._commandService.executeCommand(T.id,t);let{unitId:n,subUnitId:r,drawingId:i}=e[0].parent;this._commandService.syncExecuteCommand(c.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(k.id,t)}))}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{e==null||e.length===0?(this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!1),this._sheetDrawingService.focusDrawing([])):(this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!0),this._sheetDrawingService.focusDrawing(e))}))}};R=F([P(1,(0,r.Inject)(n.SheetSkeletonManagerService)),P(2,r.ICommandService),P(3,n.ISheetSelectionRenderService),P(4,c.IImageIoService),P(5,l.ILocalFileService),P(6,i.ISheetDrawingService),P(7,c.IDrawingManagerService),P(8,r.IContextService),P(9,l.IMessageService),P(10,(0,r.Inject)(r.LocaleService)),P(11,(0,r.Inject)(a.SheetsSelectionsService)),P(12,(0,r.Inject)(r.Injector)),P(13,r.IURLImageService)],R);let z={id:`sheet.command.insert-float-image`,type:r.CommandType.COMMAND,handler:async(e,n)=>{var i;let a=e.get(r.IUniverInstanceService),o=e.get(t.IRenderManagerService),s=(i=(0,t.getCurrentTypeOfRenderer)(r.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(R);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}}},B={id:`sheet.command.insert-cell-image`,type:r.CommandType.COMMAND,handler:e=>{var n,i;let a=e.get(r.IUniverInstanceService),o=e.get(t.IRenderManagerService);return(n=(i=(0,t.getCurrentTypeOfRenderer)(r.UniverInstanceType.UNIVER_SHEET,a,o))==null?void 0:i.with(R).insertCellImage())==null?!1:n}},V={id:`sheet.command.move-drawing`,type:r.CommandType.COMMAND,handler:(e,t)=>{let a=e.get(r.ICommandService),o=e.get(i.ISheetDrawingService),s=e.get(n.ISheetSelectionRenderService),{direction:c}=t,l=o.getFocusDrawings();if(l.length===0)return!1;let u=l[0].unitId,d=l.map(e=>{let{transform:t}=e;if(t==null)return null;let n={...t},{left:i=0,top:a=0}=t;return c===r.Direction.UP?n.top=a-1:c===r.Direction.DOWN?n.top=a+1:c===r.Direction.LEFT?n.left=i-1:c===r.Direction.RIGHT&&(n.left=i+1),{...e,transform:n,sheetTransform:g(n,s),axisAlignSheetTransform:_(n,s)}}).filter(e=>e!=null);return a.syncExecuteCommand(O.id,{unitId:u,drawings:d})?(a.syncExecuteCommand(v.id,[u]),!0):!1}},H=function(e){return e.CELL_ADDRESS=`cellAddress`,e.COLUMN_VALUE=`columnValue`,e}({}),U=(0,r.createIdentifier)(`sheets-drawing-ui.batch-save-images.service`);function W(e){let t=``,n=e;for(;n>=0;)t=String.fromCharCode(n%26+65)+t,n=Math.floor(n/26)-1;return t}function G(e,t){return`${W(t)}${e+1}`}function ee(e){let t=G(e.startRow,e.startColumn),n=G(e.endRow,e.endColumn);return t===n?t:`${t}:${n}`}function K(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 q(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 J(e,t){if(t===r.ImageSourceType.BASE64){let t=e.match(/^data:image\/(\w+);/);if(t)return t[1]===`jpeg`?`jpg`:t[1]}if(t===r.ImageSourceType.URL){let t=e.match(/\.(\w+)(?:\?|$)/);if(t)return t[1].toLowerCase()}return`png`}async function te(e,t){if(t===r.ImageSourceType.BASE64||t===r.ImageSourceType.URL)return(await fetch(e)).blob();throw Error(`UUID image type requires additional handling`)}let Y=class extends r.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(r.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let i=t.getCellMatrix(),a=[];for(let e of n){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(K(n)){let r=q(n);r&&a.push({row:e,col:t,cellAddress:G(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return a}getCellImagesFromRanges(e,t,n){let i=this._univerInstanceService.getUnit(e,r.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(t);if(!a)return[];let o=a.getCellMatrix(),s=[];for(let e of n){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(K(n)){let r=q(n);r&&s.push({row:e,col:t,cellAddress:G(e,t),source:r.source,imageSourceType:r.imageSourceType,imageId:r.drawingId})}}}return s}getDataColumns(){let e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!e)return[];let t=e.getActiveSheet();if(!t)return[];let n=this._selectionService.getCurrentSelections();if(!n||n.length===0)return[];let i=t.getCellMatrix(),a=i.getDataRange(),o=1/0,s=-1/0,c=new Set;for(let e of n){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:W(e)});return f}getDataColumnsForRanges(e,t,n){let i=this._univerInstanceService.getUnit(e,r.UniverInstanceType.UNIVER_SHEET);if(!i)return[];let a=i.getSheetBySheetId(t);if(!a)return[];let o=a.getCellMatrix(),s=o.getDataRange(),c=1/0,l=-1/0,u=new Set;for(let e of n){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:W(e)});return m}getSelectionRangeNotation(){let e=this._selectionService.getCurrentSelections();return!e||e.length===0?``:e.map(e=>ee(e.range)).join(`, `)}getSelectionRowRange(){let e=this._selectionService.getCurrentSelections();if(!e||e.length===0)return null;let t=1/0,n=-1/0;for(let r of e)t=Math.min(t,r.range.startRow),n=Math.max(n,r.range.endRow);return{startRow:t,endRow:n}}getSelectionColumnIndices(){let e=this._selectionService.getCurrentSelections();if(!e||e.length===0)return new Set;let t=new Set;for(let n of e)for(let e=n.range.startColumn;e<=n.range.endColumn;e++)t.add(e);return t}generateFileName(e,t){let n=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET),i=J(e.source,e.imageSourceType),a=[];for(let r of t.fileNameParts)if(r===H.CELL_ADDRESS)a.push(e.cellAddress);else if(r===H.COLUMN_VALUE&&t.columnIndex!==void 0){let r=n==null?void 0:n.getActiveSheet();if(r){let n=r.getCellMatrix().getValue(e.row,t.columnIndex);if(n){var o,s;let e=((o=n.v)==null?void 0:o.toString())||((s=n.p)==null||(s=s.body)==null||(s=s.dataStream)==null?void 0:s.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&a.push(t)}}}}return a.length===0?`${e.cellAddress}.${i}`:`${a.join(`_`)}.${i}`}generateFileNameWithContext(e,t,n,i){let a=this._univerInstanceService.getUnit(n,r.UniverInstanceType.UNIVER_SHEET),o=J(e.source,e.imageSourceType),s=[];for(let n of t.fileNameParts)if(n===H.CELL_ADDRESS)s.push(e.cellAddress);else if(n===H.COLUMN_VALUE&&t.columnIndex!==void 0){let n=a==null?void 0:a.getSheetBySheetId(i);if(n){let r=n.getCellMatrix().getValue(e.row,t.columnIndex);if(r){var c,l;let e=((c=r.v)==null?void 0:c.toString())||((l=r.p)==null||(l=l.body)==null||(l=l.dataStream)==null?void 0:l.trim())||``;if(e){let t=e.replace(/[<>:"/\\|?*]/g,`_`).trim();t&&s.push(t)}}}}return s.length===0?`${e.cellAddress}.${o}`:`${s.join(`_`)}.${o}`}async saveImages(e,t){let n=await window.showDirectoryPicker({mode:`readwrite`}),r=new Map;for(let a of e){var i;let e=this.generateFileName(a,t),o=e.replace(/\.\w+$/,``),s=((i=e.match(/\.\w+$/))==null?void 0:i[0])||`.png`,c=r.get(o)||0;c>0&&(e=`${o}_${c}${s}`),r.set(o,c+1);try{let t=await this._getImageBlob(a),r=await(await n.getFileHandle(e,{create:!0})).createWritable();await r.write(t),await r.close()}catch(t){throw console.error(`Failed to save image ${e}:`,t),t}}}async saveImagesWithContext(e,t,n,r){let i=await window.showDirectoryPicker({mode:`readwrite`}),a=new Map;for(let s of e){var o;let e=this.generateFileNameWithContext(s,t,n,r),c=e.replace(/\.\w+$/,``),l=((o=e.match(/\.\w+$/))==null?void 0:o[0])||`.png`,u=a.get(c)||0;u>0&&(e=`${c}_${u}${l}`),a.set(c,u+1);try{let t=await this._getImageBlob(s),n=await(await i.getFileHandle(e,{create:!0})).createWritable();await n.write(t),await n.close()}catch(t){throw console.error(`Failed to save image ${e}:`,t),t}}}async downloadSingleImage(e){let t=J(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===r.ImageSourceType.UUID?te(await this._imageIoService.getImage(e.source),r.ImageSourceType.URL):e.imageSourceType===r.ImageSourceType.URL?this._urlImageService.downloadImage(e.source):te(e.source,e.imageSourceType)}};Y=F([P(0,r.IUniverInstanceService),P(1,(0,r.Inject)(a.SheetsSelectionsService)),P(2,r.IImageIoService),P(3,r.IURLImageService)],Y);let X=`sheet.dialog.batch-save-images`,ne={id:`sheet.command.save-cell-images`,type:r.CommandType.COMMAND,handler:async e=>{let t=e.get(l.IDialogService),n=e.get(U),i=n.getCellImagesInSelection();if(i.length===1)try{return await n.downloadSingleImage(i[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let a=e.get(r.LocaleService),o=n.getSelectionRangeNotation(),s=`${a.t(`sheetImage.save.title`)} (${o})`;return t.open({id:X,draggable:!0,width:360,title:{title:s},children:{label:X},destroyOnClose:!0,preservePositionOnDestroy:!0,onClose:()=>t.close(X)}),!0}},re=`COMPONENT_SHEET_DRAWING_PANEL`,ie={id:`sidebar.operation.sheet-image`,type:r.CommandType.COMMAND,handler:async(e,t)=>{let n=e.get(l.ISidebarService),i=e.get(r.LocaleService),o=e.get(r.IUniverInstanceService),s=e.get(r.ICommandService);if(!(0,a.getSheetCommandTarget)(o))return!1;switch(t.value){case`open`:n.open({header:{title:i.t(`sheetImage.panel.title`)},children:{label:re},onClose:()=>{s.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[])},width:360});break;default:n.close();break}return!0}},ae={id:`sheet.operation.edit-sheet-image`,type:r.CommandType.OPERATION,handler:(e,t)=>{let n=e.get(r.ICommandService);return t==null?!1:(n.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[t]),n.executeCommand(ie.id,{value:`open`}),!0)}},oe=[n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA],se=class extends r.Disposable{constructor(e,t,n,r){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._sheetDrawingService=n,this._drawingManagerService=r,N(this,`_featurePasteHooks`,[]),N(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._sheetDrawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_DRAWING_GROUP`,onBeforeCopy:(e,t)=>{this._copyInfo=null;let n=this._focusedDrawings;if(n.length===0)return;let i=n.find(e=>e.drawingType===r.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 oe.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;let{unitId:r,subUnitId:o,range:s}=e,c=this._renderManagerService.getRenderById(r),l=c==null?void 0:c.with(n.SheetSkeletonManagerService),u=c==null?void 0:c.with(n.ISheetSelectionRenderService);if(!l||!u||!this._copyInfo)return{redos:[],undos:[]};let{groupNestedParam:d}=this._copyInfo,f=d.groups[d.groups.length-1],{cloned:p,idMap:m}=C(d),h=p.groups[p.groups.length-1].drawingId,v=(0,a.discreteRangeToRange)(s),y=l.attachRangeWithCoord({startRow:v.startRow,endRow:v.endRow,startColumn:v.startColumn,endColumn:v.endColumn});if(!y)return{redos:[],undos:[]};let b={...f.transform,left:y.startX,top:y.startY},x=[...((t=p.flatChildren)==null?[]:t).map(e=>({...e,unitId:r,subUnitId:o})),...p.groups.map(e=>{var t,n;return e.drawingId===h?{...e,unitId:r,subUnitId:o,transform:b,sheetTransform:(t=g(b,u))==null?f.sheetTransform:t,axisAlignSheetTransform:(n=_(b,u))==null?f.sheetTransform:n}:{...e,unitId:r,subUnitId:o}})],{undo:S,redo:w,objects:T}=this._sheetDrawingService.getBatchAddOp(x),E=[{id:i.SetDrawingApplyMutation.id,params:{op:w,unitId:r,subUnitId:o,objects:T,type:i.DrawingApplyType.INSERT}}],D=[{id:i.SetDrawingApplyMutation.id,params:{op:S,unitId:r,subUnitId:o,objects:T,type:i.DrawingApplyType.REMOVE}}],O=this._getGroupFeaturePasteMutations({fromUnitId:this._copyInfo.unitId,fromSubUnitId:this._copyInfo.subUnitId,toUnitId:r,toSubUnitId:o,idMap:m,cloned:p});return E.push(...O.redos),D.push(...O.undos),{redos:E,undos:D}}dispose(){this._copyInfo=null,this._featurePasteHooks.length=0,super.dispose()}};se=F([P(0,n.ISheetClipboardService),P(1,t.IRenderManagerService),P(2,i.ISheetDrawingService),P(3,c.IDrawingManagerService)],se);let ce=`sheet.menu.image`;function le(e){return{id:ce,type:l.MenuItemType.SUBITEMS,icon:`AddImageIcon`,tooltip:`sheetImage.title`,hidden$:(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET),disabled$:(0,n.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]})}}function ue(e){return{id:z.id,title:`sheetImage.upload.float`,type:l.MenuItemType.BUTTON,hidden$:(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET)}}function de(e){return{id:B.id,title:`sheetImage.upload.cell`,type:l.MenuItemType.BUTTON,hidden$:(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET)}}var fe=`@univerjs/sheets-drawing-ui`,pe=`0.18.0`;let me=`sheets-drawing-ui.config`;Symbol(me);let he={},ge=class extends r.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(r.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)}}))}};ge=F([P(0,c.IDrawingManagerService),P(1,l.IContextMenuService),P(2,t.IRenderManagerService),P(3,r.IUniverInstanceService)],ge);let _e=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._hoverManagerService=t,this._selectionsService=n,this._drawingRenderService=r,this._sheetSkeletonManagerService=i,N(this,`_isSetCursor`,!1),this._initHover(),this._initImageClick()}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichTextNoDistinct$.pipe((0,f.throttleTime)(33)).subscribe(e=>{var n,r;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&&((n=i[0].primary)==null?void 0:n.actualRow)===e.row&&((r=i[0].primary)==null?void 0:r.actualColumn)===e.col?(this._isSetCursor=!0,this._context.scene.setCursor(t.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}}))}};_e=F([P(1,(0,r.Inject)(n.HoverManagerService)),P(2,(0,r.Inject)(a.SheetsSelectionsService)),P(3,(0,r.Inject)(d.DrawingRenderService)),P(4,(0,r.Inject)(n.SheetSkeletonManagerService))],_e);let ve=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._context=e,this._sheetDrawingService=t,this._drawingManagerService=n,this._sheetSelectionRenderService=r,this._sheetSkeletonManagerService=i,this._init()}_init(){this._drawingInitializeListener()}_drawingInitializeListener(){this._sheetDrawingService.initializeNotification(this._context.unitId);let e=this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId);for(let t in e){let n=e[t];for(let e in n.data){let t=n.data[e];t.sheetTransform&&(t.transform=h(t.sheetTransform,this._sheetSelectionRenderService,this._sheetSkeletonManagerService))}}this._drawingManagerService.registerDrawingData(this._context.unitId,this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)),this._drawingManagerService.initializeNotification(this._context.unitId)}};ve=F([P(1,i.ISheetDrawingService),P(2,c.IDrawingManagerService),P(3,(0,r.Inject)(n.ISheetSelectionRenderService)),P(4,(0,r.Inject)(n.SheetSkeletonManagerService))],ve);function ye(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=L(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 be=class extends r.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(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)):this._drawingManagerService.removeDrawingDataForUnit(r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{e.id===s.ReplaceSnapshotCommand.id&&e.params.unitId===r.DOCS_ZEN_EDITOR_UNIT_ID_KEY&&(this._drawingManagerService.removeDrawingDataForUnit(r.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._docDrawingController.loadDrawingDataForUnit(r.DOCS_ZEN_EDITOR_UNIT_ID_KEY),this._drawingManagerService.initializeNotification(r.DOCS_ZEN_EDITOR_UNIT_ID_KEY))}))}_initCellContentInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(a.INTERCEPTOR_POINT.CELL_CONTENT,{effect:r.InterceptorEffectEnum.Style,priority:a.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},ye(this._injector,{unitId:t.unitId,subUnitId:t.subUnitId,row:t.row,col:t.col},e)),n(e)}}))}};be=F([P(0,r.ICommandService),P(1,(0,r.Inject)(a.SheetInterceptorService)),P(2,(0,r.Inject)(r.Injector)),P(3,c.IDrawingManagerService),P(4,(0,r.Inject)(u.DocDrawingController)),P(5,(0,r.Inject)(n.IEditorBridgeService))],be);let xe=class extends r.Disposable{constructor(e,t){super(),this._autoFillService=e,this._injector=t,this._initAutoFillHooks()}_initAutoFillHooks(){this.disposeWithMe(this._autoFillService.addHook({id:`sheet-cell-image-autofill`,onBeforeSubmit:(e,t,n,i)=>{new r.ObjectMatrix(i).forValue((t,n,r)=>{ye(this._injector,{unitId:e.unitId,subUnitId:e.subUnitId,row:t,col:n},r)})}}))}};xe=F([P(0,(0,r.Inject)(a.IAutoFillService)),P(1,(0,r.Inject)(r.Injector))],xe);let Se=[r.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,r.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,r.DOCS_ZEN_EDITOR_UNIT_ID_KEY],Ce=class extends r.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 i;let a=(0,r.createDocumentModelWithStyle)(``,{}),o=(i=(0,t.getCurrentTypeOfRenderer)(r.UniverInstanceType.UNIVER_SHEET,this._univerInstanceService,this._renderManagerService))==null?void 0:i.with(n.EditingRenderController),s=r.BuildTextUtils.drawing.add({documentDataModel:a,drawings:[e],selection:{collapsed:!0,startOffset:0,endOffset:0}});s&&(a.apply(s),o&&o.submitCellData(a))}_initDocImageCopyPasteHooks(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===s.InnerPasteCommand.id){var t;let{doc:a}=e.params,o=this._univerInstanceService.getCurrentUnitOfType(r.UniverInstanceType.UNIVER_DOC);if(o==null||!Object.keys((t=a.drawings)==null?{}:t).length)return;let s=o.getUnitId();if(Se.includes(s)){if(s!==r.DOCS_ZEN_EDITOR_UNIT_ID_KEY){var i;let e=()=>{this._dialogService.close(`sheet-cell-image-copy-paste`),this._commandService.syncExecuteCommand(n.SetCellEditVisibleOperation.id,{visible:!1})};((i=o.getBody())==null?void 0:i.dataStream)===`\r
|
|
43
|
+
`?(this._commandService.syncExecuteCommand(n.SetCellEditVisibleOperation.id,{visible:!1}),this._setCellImage(Object.values(a.drawings)[0])):this._dialogService.open({id:`sheet-cell-image-copy-paste`,title:{label:this._localeService.t(`cell-image.pasteTitle`)},children:{label:this._localeService.t(`cell-image.pasteContent`)},width:320,destroyOnClose:!0,onClose:e,showOk:!0,showCancel:!0,onOk:()=>{e(),this._setCellImage(Object.values(a.drawings)[0])},onCancel:e})}throw Error(`Sheet cell image copy paste is not supported in this unit`)}}}))}};Ce=F([P(0,r.ICommandService),P(1,r.IUniverInstanceService),P(2,l.IDialogService),P(3,t.IRenderManagerService),P(4,(0,r.Inject)(r.LocaleService))],Ce);let we=`image/png`;function Te(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:we})}function Ee(e){let t=new ClipboardItem({[we]:Te(e)});navigator.clipboard.write([t]).catch(e=>{console.error(`Could not copy image using clipboard API: `,e)})}function De(){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 Oe=[n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_COL_WIDTH,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_VALUE,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,n.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMULA],ke=class extends r.Disposable{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._renderManagerService=t,this._drawingService=n,this._clipboardInterfaceService=r,this._commandService=i,N(this,`_copyInfo`,void 0),this._initCopyPaste()}get _focusedDrawings(){return this._drawingService.getFocusDrawings()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:`SHEET_IMAGE_UI_PLUGIN`,onBeforeCopy:(e,t,i,a)=>{this._copyInfo=null;let o=this._focusedDrawings;if(o.length>0){let[t]=o;if(t.drawingType!==r.DrawingTypeEnum.DRAWING_IMAGE)return;if(a===n.COPY_TYPE.CUT){let n={unitId:e,drawings:[t]};this._commandService.executeCommand(y.id,n)}setTimeout(()=>{let e=De();t.drawingType===r.DrawingTypeEnum.DRAWING_IMAGE&&t.imageSourceType===c.ImageSourceType.BASE64?Ee(t.source):this._clipboardInterfaceService.writeText(``),e()},200),this._copyInfo={unitId:t.unitId,subUnitId:t.subUnitId,drawings:[t]}}else this._copyInfo=this._createDrawingsCopyInfoByRange(e,t,i)},onPasteCells:(e,t,r,i)=>{if(!this._copyInfo)return{redos:[],undos:[]};let{copyType:a=n.COPY_TYPE.COPY,pasteType:o}=i,{range:s}=e||{},{range:c,unitId:l,subUnitId:u}=t;return this._copyInfo.copyRange?this._generateRangeDrawingsPasteMutations({pasteType:o,unitId:l,subUnitId:u,pasteRange:c},{copyRange:s,copyType:a}):this._generateSingleDrawingPasteMutations({pasteTo:t,pasteType:o},n.COPY_TYPE.COPY)},onPastePlainText:(e,t)=>({undos:[],redos:[]}),onPasteUnrecognized:e=>this._copyInfo?this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:n.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},n.COPY_TYPE.COPY):{undos:[],redos:[]},onPasteFiles:(e,t)=>{if(this._copyInfo)return this._generateSingleDrawingPasteMutations({pasteTo:e,pasteType:n.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE},n.COPY_TYPE.COPY);{let e=t.filter(e=>e.type.includes(`image`));if(e.length)return{undos:[],redos:[{id:z.id,params:{files:e}}]}}return{undos:[],redos:[]}}})}_createDrawingsCopyInfoByRange(e,t,a){var o;let s=(o=this._renderManagerService.getRenderById(e))==null?void 0:o.with(n.SheetSkeletonManagerService);if(!s)return;let c=s.attachRangeWithCoord(a);if(!c)return;let{startX:l,endX:u,startY:d,endY:f}=c,p=this._drawingService.getDrawingData(e,t),m=this._focusedDrawings.slice();if(Object.keys(p).forEach(e=>{let t=p[e];if(t.drawingType!==r.DrawingTypeEnum.DRAWING_IMAGE)return;let{transform:n}=t;if(t.anchorType!==i.SheetDrawingAnchorType.Both||!n)return;let{left:a=0,top:o=0,width:s=0,height:c=0}=n,{drawingStartX:h,drawingEndX:g,drawingStartY:_,drawingEndY:v}={drawingStartX:a,drawingEndX:a+s,drawingStartY:o,drawingEndY:o+c};l<=h&&g<=u&&d<=_&&v<=f&&m.push(t)}),m.length)return{copyRange:a,drawings:m,unitId:e,subUnitId:t}}_generateSingleDrawingPasteMutations(e,t){let{pasteType:r,pasteTo:i}=e;if(Oe.includes(r))return{redos:[],undos:[]};let{unitId:o,subUnitId:s,range:c}=i,l=this._renderManagerService.getRenderById(o),u=l==null?void 0:l.with(n.SheetSkeletonManagerService),d=l==null?void 0:l.with(n.ISheetSelectionRenderService),f=this._copyInfo;if(!u||!d)return{redos:[],undos:[]};let{drawings:p}=f,m=(0,a.discreteRangeToRange)(c);return this._generateMutations(p,{unitId:o,subUnitId:s,isCut:t===n.COPY_TYPE.CUT,getTransform:(e,t)=>{var n,r;let i=u.attachRangeWithCoord({startRow:m.startRow,endRow:m.endRow,startColumn:m.startColumn,endColumn:m.endColumn}),a={...e,left:i==null?void 0:i.startX,top:i==null?void 0:i.startY};return{transform:a,sheetTransform:(n=g(a,d))==null?t:n,axisAlignSheetTransform:(r=_(a,d))==null?t:r}}})}_generateMutations(e,t){let{unitId:n,subUnitId:a,getTransform:o,isCut:s}=t,c=[],l=[],{_drawingService:u}=this;return e.forEach(e=>{let{transform:t,sheetTransform:d}=e;if(!t)return;let f=o(t,d),p={...e,unitId:n,subUnitId:a,drawingId:s?e.drawingId:(0,r.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:i.SetDrawingApplyMutation.id,params:{unitId:n,subUnitId:a,type:i.DrawingApplyType.UPDATE,op:t,objects:r}}),l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:n,subUnitId:a,type:i.DrawingApplyType.UPDATE,op:e,objects:r}})}else{let{undo:e,redo:t,objects:r}=u.getBatchAddOp([p]);c.push({id:i.SetDrawingApplyMutation.id,params:{op:t,unitId:n,subUnitId:a,objects:r,type:i.DrawingApplyType.INSERT}}),l.push({id:i.SetDrawingApplyMutation.id,params:{op:e,unitId:n,subUnitId:a,objects:r,type:i.DrawingApplyType.REMOVE}})}}),{redos:c,undos:l}}_generateRangeDrawingsPasteMutations(e,t){var r;let{unitId:i,subUnitId:o,pasteType:s,pasteRange:c}=e,{copyRange:l,copyType:u}=t;if(Oe.includes(s))return{redos:[],undos:[]};let d=(r=this._renderManagerService.getRenderById(i))==null?void 0:r.with(n.SheetSkeletonManagerService);if(!d||!this._copyInfo)return{redos:[],undos:[]};let{drawings:f}=this._copyInfo;if(!l)return this._generateSingleDrawingPasteMutations({pasteTo:{unitId:i,subUnitId:o,range:(0,a.discreteRangeToRange)(c)},pasteType:s},u);let{ranges:[p,m],mapFunc:h}=(0,n.virtualizeDiscreteRanges)([l,c]),{row:g,col:v}=h(p.startRow,p.startColumn),{row:y,col:b}=h(m.startRow,m.startColumn),x=d.attachRangeWithCoord({startRow:g,endRow:g,startColumn:v,endColumn:v}),S=d.attachRangeWithCoord({startRow:y,endRow:y,startColumn:b,endColumn:b});if(!x||!S||!this._copyInfo)return{redos:[],undos:[]};let C=S.startX-x.startX,w=S.startY-x.startY,T=y-g,E=b-v;return this._generateMutations(f,{unitId:i,subUnitId:o,getTransform:(e,t)=>{var r,a,o;let s={...e,left:((r=e==null?void 0:e.left)==null?0:r)+C,top:((a=e==null?void 0:e.top)==null?0:a)+w},c=this._renderManagerService.getRenderById(i),l=c==null?void 0:c.with(n.ISheetSelectionRenderService);return l?{transform:s,sheetTransform:{...t,to:{...t.to,row:t.to.row+T,column:t.to.column+E},from:{...t.from,row:t.from.row+T,column:t.from.column+E}},axisAlignSheetTransform:(o=_(s,l))==null?t:o}:{transform:s,sheetTransform:{...t,to:{...t.to,row:t.to.row+T,column:t.to.column+E},from:{...t.from,row:t.from.row+T,column:t.from.column+E}},axisAlignSheetTransform:{...t,to:{...t.to,row:t.to.row+T,column:t.to.column+E},from:{...t.from,row:t.from.row+T,column:t.from.column+E}}}},isCut:u===n.COPY_TYPE.CUT})}};ke=F([P(0,n.ISheetClipboardService),P(1,t.IRenderManagerService),P(2,c.IDrawingManagerService),P(3,l.IClipboardInterfaceService),P(4,r.ICommandService)],ke);let Ae=class extends r.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$(r.UniverInstanceType.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=(0,f.combineLatest)([e,t]);this.disposeWithMe(n.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 a.WorkbookViewPermission(n).id,new a.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,n){this._drawingManagerService.setDrawingVisible(!1);let r=e.getUnitId(),i=n.getSheetId(),a=this._drawingManagerService.getDrawingData(r,i),o=Object.values(a),s=this._renderManagerService.getRenderById(r),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.removeObject(e)})}_initDrawingEditable(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET),t=this._userManagerService.currentUser$,n=(0,f.combineLatest)([e,t]);this.disposeWithMe(n.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 a.WorkbookEditablePermission(n).id,new a.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,n){this._drawingManagerService.setDrawingEditable(!1);let r=e.getUnitId(),i=n.getSheetId(),a=this._drawingManagerService.getDrawingData(r,i),o=Object.values(a),s=this._renderManagerService.getRenderById(r),c=s==null?void 0:s.scene;c&&c.getAllObjectsByOrder().forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&o.some(t=>e.oKey.includes(t.drawingId))&&c.detachTransformerFrom(e)})}_initViewPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.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),o=i==null?void 0:i.scene;if(!o)return f.EMPTY;let s=o.getTransformerByCreate();return this._permissionService.composePermission$([new a.WorkbookViewPermission(n).id,new a.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:o,transformer:s,unitId:n,subUnitId:r})))})):f.EMPTY)).subscribe({next:({permission:e,scene:n,transformer:r,unitId:i,subUnitId:a})=>{this._drawingManagerService.setDrawingVisible(e);let o=n.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(i,a),c=Object.values(s);e?this._drawingManagerService.addNotification(c):(o.forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&n.removeObject(e)}),r.clearSelectedObjects())},complete:()=>{this._drawingManagerService.setDrawingVisible(!0);let e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET),t=e==null?void 0:e.getActiveSheet(),n=e==null?void 0:e.getUnitId(),i=t==null?void 0:t.getSheetId();if(!n||!i)return;let a=this._drawingManagerService.getDrawingData(n,i),o=Object.values(a);this._drawingManagerService.addNotification(o)}}))}_initEditPermissionChange(){let e=this._univerInstanceService.getCurrentTypeOfUnit$(r.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),o=i==null?void 0:i.scene;if(!o)return f.EMPTY;let s=o.getTransformerByCreate();return this._permissionService.composePermission$([new a.WorkbookEditablePermission(n).id,new a.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:o,transformer:s,unitId:n,subUnitId:r})))})):f.EMPTY)).subscribe({next:({permission:e,scene:n,transformer:r,unitId:i,subUnitId:a})=>{this._drawingManagerService.setDrawingEditable(e);let o=n.getAllObjectsByOrder(),s=this._drawingManagerService.getDrawingData(i,a),c=Object.values(s);e?(o.forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&n.attachTransformerTo(e)}),this._drawingManagerService.addNotification(c)):(o.forEach(e=>{e.classType===t.RENDER_CLASS_TYPE.IMAGE&&c.some(t=>e.oKey.includes(t.drawingId))&&n.detachTransformerFrom(e)}),r.clearSelectedObjects())},complete:()=>{let e=this._univerInstanceService.getCurrentUnitForType(r.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===t.RENDER_CLASS_TYPE.IMAGE&&l.some(t=>e.oKey.includes(t.drawingId))&&s.detachTransformerFrom(e)})}}))}};Ae=F([P(0,c.IDrawingManagerService),P(1,t.IRenderManagerService),P(2,r.IPermissionService),P(3,r.IUniverInstanceService),P(4,(0,r.Inject)(r.UserManagerService))],Ae);var je=function(e){return e.ALL=`ALL`,e.HORIZONTAL=`HORIZONTAL`,e.VERTICAL=`VERTICAL`,e}(je||{});let Me=`univer-sheet-float-dom-`;function Ne(e,n,i,a,o,s=!1){let{scaleX:c,scaleY:l}=n.getAncestorScale(),u=n.getViewport(t.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&&(r.Tools.isDefine(O.top)&&(O.top=w.top),r.Tools.isDefine(O.left)&&(O.left=w.left)),T===je.HORIZONTAL&&(C=0),T===je.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=Ne({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}},Pe=class extends r.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,N(this,`_domLayerInfoMap`,new Map),N(this,`_transformChange$`,new f.Subject),N(this,`transformChange$`,this._transformChange$.asObservable()),N(this,`_add$`,new f.Subject),N(this,`add$`,this._add$.asObservable()),N(this,`_remove$`,new f.Subject),N(this,`remove$`,this._remove$.asObservable()),this._drawingAddListener(),this._featureUpdateListener(),this._deleteListener(),this._bindScrollEvent()}_bindScrollEvent(){this._lifecycleService.lifecycle$.pipe((0,f.filter)(e=>e===r.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 i;let{unitId:o,subUnitId:s,drawingId:l}=e,u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:o,subUnitId:s}),d=this._drawingManagerService.getDrawingByParam(e),p=this._univerInstanceService.getUnit(o,r.UniverInstanceType.UNIVER_SHEET);if(!p)return;let m=p.getActiveSheet().getSheetId();if(!d||!u)return;let h=(i=this._renderManagerService.getRenderById(o))==null?void 0:i.with(n.SheetSkeletonManagerService).getSkeletonParam(s);if(!h)return;let{transform:g,drawingType:_,data:v}=d;if(_!==r.DrawingTypeEnum.DRAWING_DOM&&_!==r.DrawingTypeEnum.DRAWING_CHART)return;let y=this._getSceneAndTransformerByDrawingSearch(o);if(y==null)return;let{scene:b,canvas:x}=y;if(g==null)return!0;if(m!==s)return;let{left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A}=g,j=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:o,subUnitId:s,drawingId:l}),M=b.getObject(j);if(M!=null){M.transformByState({left:S,top:C,width:w,height:T,angle:E,flipX:D,flipY:O,skewX:k,skewY:A});return}let N={left:S,top:C,width:w,height:T,zIndex:this._drawingManagerService.getDrawingOrder(o,s).length-1},P=_===r.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 t.Rect(j,N);P&&F.setObjectType(t.ObjectType.CHART),b.addObject(F,t.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&b.attachTransformerTo(F);let I=new r.DisposableCollection,L=new f.BehaviorSubject(Z(F,y.renderUnit.scene,h.skeleton,u.worksheet)),R=`${Me}${(0,r.generateRandomId)(6)}`,z={dispose:I,rect:F,position$:L,unitId:o,subUnitId:s,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:o});let B=F.onTransformChange$.subscribeEvent(()=>{let e=Z(F,y.renderUnit.scene,h.skeleton,u.worksheet);L.next(e)});I.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),B&&I.add(B),this._domLayerInfoMap.set(l,z)})})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:t,subUnitId:n,drawingId:r}),a=this._getSceneAndTransformerByDrawingSearch(t);if(a==null)return;let{transformer:o,scene:s}=a,l=s.getObject(i);if(l!=null&&l.oKey){var u;o.clearControlByIds([l==null?void 0:l.oKey]),(u=s.getTransformer())==null||u.clearSelectedObjects()}})}))}_scrollUpdateListener(){let e=(e,t)=>{var r;let i=this._getSceneAndTransformerByDrawingSearch(e),o=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),s=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:t}),c=(r=this._renderManagerService.getRenderById(e))==null?void 0:r.with(n.SheetSkeletonManagerService).getSkeletonParam(t);!i||!s||!c||o.forEach(e=>{let t=this._domLayerInfoMap.get(e);if(t){let e=Z(t.rect,i.renderUnit.scene,c.skeleton,s.worksheet,t);t.position$.next(e)}})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(r.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,r.fromEventSubject)(e.render.scene.getViewport(t.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===n.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===a.SetFrozenMutation.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}else if(t.id===a.SetSelectionsOperation.id){let{unitId:n,subUnitId:r}=t.params;e(n,r)}}))}updateFloatDomProps(e,n,r,i){let a=this._domLayerInfoMap.get(r),o=this._getSceneAndTransformerByDrawingSearch(e);if(a&&o){let{scene:a}=o,s=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:n,drawingId:r}),l=a.getObject(s);l&&l instanceof t.Rect&&l.setProps(i)}}_getPosition(e,t){var r;let{startX:i,endX:a,startY:o,endY:s}=e,c=(r=this._renderManagerService.getRenderById(t))==null?void 0:r.with(n.ISheetSelectionRenderService);if(c==null)return;let l=c.getCellWithCoordByOffset(i,o);if(l==null)return;let u={column:l.actualColumn,columnOffset:i-l.startX,row:l.actualRow,rowOffset:o-l.startY},d=c.getCellWithCoordByOffset(a,s);if(d!=null)return{from:u,to:{column:d.actualColumn,columnOffset:a-d.startX,row:d.actualRow,rowOffset:s-d.startY}}}_featureUpdateListener(){this.disposeWithMe(this._drawingManagerService.update$.subscribe(e=>{e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);if(!t||t.drawingType!==r.DrawingTypeEnum.DRAWING_DOM&&t.drawingType!==r.DrawingTypeEnum.DRAWING_CHART)return;let n={...t.transform};this._transformChange$.next({id:e.drawingId,value:n}),this._canvasFloatDomService.updateFloatDom(e.drawingId,{...t});let i=this._getSceneAndTransformerByDrawingSearch(e.unitId);if(i&&t.drawingType!==r.DrawingTypeEnum.DRAWING_CHART){let{scene:n}=i,r=this._domLayerInfoMap.get(e.drawingId);r!=null&&r.rect&&(t.allowTransform===!1?n.detachTransformerFrom(r.rect):n.attachTransformerTo(r.rect))}})}))}_deleteListener(){this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}addFloatDomToPosition(e,t){let n=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e.unitId,subUnitId:e.subUnitId});if(!n)throw Error(`cannot find current target!`);let{unitId:i,subUnitId:o}=n,{initPosition:s,componentKey:c,data:l,allowTransform:u=!0}=e,d=t==null?(0,r.generateRandomId)():t,f=this._getPosition(s,i);if(f==null)return;let p={unitId:i,subUnitId:o,drawingId:d,drawingType:e.type||r.DrawingTypeEnum.DRAWING_DOM,componentKey:c,sheetTransform:f,transform:{left:s.startX,top:s.startY,width:s.endX-s.startX,height:s.endY-s.startY},axisAlignSheetTransform:f,data:l,allowTransform:u};return this._commandService.executeCommand(E.id,{unitId:i,drawings:[p]}),this._add$.next({unitId:i,subUnitId:o,id:d}),{id:d,dispose:()=>{this._removeDom(d,!0)}}}_removeDom(e,t=!1){let n=this._domLayerInfoMap.get(e);if(!n)return;let{unitId:r,subUnitId:a}=n;this._domLayerInfoMap.delete(e),n.dispose.dispose();let o=this._getSceneAndTransformerByDrawingSearch(r);if(o&&o.scene.removeObject(n.rect),t){let t=this._drawingManagerService.getDrawingByParam({unitId:r,subUnitId:a,drawingId:e});if(!t)return;let{redo:n,objects:o}=this._sheetDrawingService.getBatchRemoveOp([t]);this._commandService.syncExecuteCommand(i.SetDrawingApplyMutation.id,{unitId:r,subUnitId:a,op:n,objects:o,type:i.DrawingApplyType.REMOVE})}}addFloatDomToRange(e,i,o,s){var l;let u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:i.unitId,subUnitId:i.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(n.SheetSkeletonManagerService).getWorksheetSkeleton(p);if(!g)return;let{componentKey:_,data:v,allowTransform:y=!0}=i,b=s==null?(0,r.generateRandomId)():s,{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=Ie(x,o,w),E={unitId:d,subUnitId:p,drawingId:b,drawingType:i.type||r.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:s,drawingId:l}=E,u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:s}),d=E,p=this._univerInstanceService.getUnit(e,r.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(n.SheetSkeletonManagerService);if(!h)return;let g=h.getWorksheetSkeleton(s);if(!g)return;let{transform:_,drawingType:v,data:y}=d;if(v!==r.DrawingTypeEnum.DRAWING_DOM&&v!==r.DrawingTypeEnum.DRAWING_CHART)return;let C=this._getSceneAndTransformerByDrawingSearch(e);if(C==null)return;let{scene:w,canvas:T}=C;if(_==null||m!==s)return;let{left:k,top:A,width:j,height:M,angle:N,flipX:P,flipY:F,skewX:I,skewY:L}=_,R=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,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,s).length-1},V=v===r.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 t.Rect(R,B);V&&H.setObjectType(t.ObjectType.CHART),w.addObject(H,t.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&w.attachTransformerTo(H);let U=new r.DisposableCollection,W=w.getMainViewport(),{rowHeaderWidth:G,columnHeaderHeight:ee}=g.skeleton,K={dispose:U,rect:H,boundsOfViewArea:{top:ee,left:G,bottom:W.bottom,right:W.right},domAnchor:o,unitId:e,subUnitId:s},q=new f.BehaviorSubject(Z(H,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};i.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(n=>{var r,i,a,d;let f=Ie({rotate:0,startX:n.startX,startY:n.startY,endX:n.endX,endY:n.endY,width:(r=o.width)==null?n.width:r,height:(i=o.height)==null?n.height:i,absolute:{left:x.absolute.left,top:x.absolute.top}},o),p=Z(new t.Rect((0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,drawingId:l}),{left:f.startX,top:f.startY,width:(a=o.width)==null?n.width:a,height:(d=o.height)==null?n.height:d,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1}),C.renderUnit.scene,g.skeleton,u.worksheet,K);q.next(p)}));let te=(O=this._renderManagerService.getRenderById(e))==null?void 0:O.with(n.SheetSkeletonManagerService),Y=te==null?void 0:te.currentSkeleton$.subscribe(e=>{e&&g.sheetId!==e.sheetId&&this._removeDom(b,!0)});Y&&U.add(Y);let X=H.onTransformChange$.subscribeEvent(()=>{let e=Z(H,C.renderUnit.scene,g.skeleton,u.worksheet,K);q.next(e)});U.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),X&&U.add(X),this._domLayerInfoMap.set(l,K)}return{id:b,dispose:()=>{this._removeDom(b,!0)}}}addFloatDomToColumnHeader(e,i,o,s){var l;let u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:i.unitId,subUnitId:i.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(n.SheetSkeletonManagerService).getWorksheetSkeleton(p);if(!h)return;let{componentKey:g,data:_,allowTransform:v=!0}=i,y=s==null?(0,r.generateRandomId)():s,{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:i.type||r.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:s,drawingId:l}=w,u=(0,a.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:s}),d=w,p=this._univerInstanceService.getUnit(e,r.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(n.SheetSkeletonManagerService);if(!g)return;let _=g.getWorksheetSkeleton(s);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!==s)return;let{left:A,top:j,width:M,height:N,angle:P,flipX:F,flipY:I,skewX:L,skewY:R}=v,z=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,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=Ie({rotate:0,startX:S.startX,startY:0,endX:b.endX,endY:b.endY,width:o.width,height:o.height,absolute:{left:b.absolute.left,top:b.absolute.top}},o),H=new t.Rect(z,{left:V.startX,top:V.startY,width:V.width,height:V.height,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1});O.addObject(H,t.DRAWING_OBJECT_LAYER_INDEX),d.allowTransform!==!1&&O.attachTransformerTo(H);let U=new r.DisposableCollection,W=O.getMainViewport(),G={dispose:U,rect:H,unitId:e,subUnitId:s,boundsOfViewArea:{top:0,left:W.left,bottom:W.bottom,right:W.right},domAnchor:o,scrollDirectionResponse:je.HORIZONTAL},ee=new f.BehaviorSubject(Z(H,D.renderUnit.scene,_.skeleton,u.worksheet,G));G.position$=ee;let K={position$:ee,id:l,componentKey:d.componentKey,onPointerDown:()=>{},onPointerMove:()=>{},onPointerUp:()=>{},onWheel:e=>{k.dispatchEvent(new WheelEvent(e.type,e))},data:C,unitId:e};i.eventPassThrough&&(K={...K,onPointerDown:e=>{k.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{k.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{k.dispatchEvent(new PointerEvent(e.type,e))}}),this._canvasFloatDomService.addFloatDom(K);let q=H.onTransformChange$.subscribeEvent(()=>{let e=Z(H,D.renderUnit.scene,_.skeleton,u.worksheet,G);ee.next(e)});this.disposeWithMe(x.subscribe(n=>{let r=Ie({rotate:0,startX:n.startX,startY:0,endX:n.endX,endY:n.endY,width:o.width,height:o.height,absolute:{left:b.absolute.left,top:b.absolute.top}},o),i=Z(new t.Rect((0,c.getDrawingShapeKeyByDrawingSearch)({unitId:e,subUnitId:s,drawingId:l}),{left:r.startX,top:0,width:o.width,height:o.height,zIndex:this._drawingManagerService.getDrawingOrder(e,s).length-1}),D.renderUnit.scene,_.skeleton,u.worksheet,G);ee.next(i)}));let J=(E=this._renderManagerService.getRenderById(e))==null?void 0:E.with(n.SheetSkeletonManagerService);J==null||J.currentSkeleton$.subscribe(e=>{e&&h.sheetId!==e.sheetId&&this._removeDom(y,!0)}),U.add(()=>{this._canvasFloatDomService.removeFloatDom(l)}),q&&U.add(q),this._domLayerInfoMap.set(l,G)}return{id:y,dispose:()=>{this._removeDom(y,!0)}}}_createRangePositionObserver(e,t,i){let{startRow:o,startColumn:s}=e,c=Fe(o,s,i),l=new f.BehaviorSubject(c),u=Fe(e.endRow,e.endColumn,i),d=new f.BehaviorSubject(u),p=()=>{let t=Fe(o,s,i),n=Fe(e.endRow,e.endColumn,i);l.next(t),d.next(n)},m=new r.DisposableCollection;return m.add(t.engine.clientRect$.subscribe(()=>p())),m.add(this._commandService.onCommandExecuted(e=>{if(e.id===a.SetWorksheetRowAutoHeightMutation.id&&e.params.rowsAutoHeightInfo.findIndex(e=>e.row===o)>-1){p();return}(a.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(e.id)>-1||e.id===n.SetScrollOperation.id||e.id===n.SetZoomRatioOperation.id)&&p()})),{position$:l.pipe((0,f.map)(t=>{let n=Fe(e.endRow,e.endColumn,i);return{rotate:0,width:n.right-t.left,height:n.bottom-t.top,absolute:{left:!0,top:!0},startX:t.left,startY:t.top,endX:n.right,endY:n.bottom}})),position:{rotate:0,width:u.right-c.left,height:u.bottom-c.top,absolute:{left:!0,top:!0},startX:c.left,startY:c.top,endX:u.right,endY:u.bottom},updateRowCol:(e,t)=>{o=e,s=t,p()},topLeftPos$:l,rightBottomPos$:d,disposable:m}}};Pe=F([P(0,(0,r.Inject)(t.IRenderManagerService)),P(1,r.IUniverInstanceService),P(2,(0,r.Inject)(r.ICommandService)),P(3,c.IDrawingManagerService),P(4,(0,r.Inject)(l.CanvasFloatDomService)),P(5,i.ISheetDrawingService),P(6,(0,r.Inject)(r.LifecycleService))],Pe);function Fe(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 Ie(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=Le(t.marginX,o*n);u=e.endX-r-c}else u=e.startX+Le(t.marginX,o);if(t.verticalOffsetAlign===`bottom`){let r=Le(t.marginY,s*n);d=e.endY-r-l}else d=e.startY+Le(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 Le(e,t){return e===void 0?0:typeof e==`number`?e:t*Number.parseFloat(e)/100}let Re=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=Ne({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))})},ze=class extends r.Disposable{constructor(e,t,n,r,i,a,o){super(),this._sheetPrintInterceptorService=e,this._drawingRenderService=t,this._drawingManagerService=n,this._renderManagerService=r,this._canvasFloatDomManagerService=i,this._componetManager=a,this._injector=o,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(e,t,n)=>{let{unitId:i,scene:a,subUnitId:o}=t,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[o];return c&&c.order.forEach(e=>{let t=c.data[e];t.drawingType!==r.DrawingTypeEnum.DRAWING_CHART&&t.drawingType!==r.DrawingTypeEnum.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,a)}),n()}})),this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,{handler:(e,t,i)=>{let{unitId:a,subUnitId:o}=t,s=this._renderManagerService.getRenderById(a);if(!s)return i(e);let c=s.with(n.SheetSkeletonManagerService).getSkeletonParam(o);if(!c)return i(e);let l=this._drawingManagerService.getDrawingDataForUnit(a),u=l==null?void 0:l[t.subUnitId];if(!u)return i(e);let{scaleX:d,scaleY:f}=s.scene,p=e?{...e}:{startColumn:0,endColumn:0,endRow:0,startRow:0},m=u.order.map(e=>u.data[e]);return m.length?(m.forEach(e=>{if(!e.groupId&&e.transform&&r.Tools.isDefine(e.transform.left)&&r.Tools.isDefine(e.transform.top)&&r.Tools.isDefine(e.transform.width)&&r.Tools.isDefine(e.transform.height)){let t=c.skeleton.getCellIndexByOffset(e.transform.left,e.transform.top,d,f,{x:0,y:0}),n=c.skeleton.getCellIndexByOffset(e.transform.left+e.transform.width,e.transform.top+e.transform.height,d,f,{x:0,y:0});t.column<p.startColumn&&(p.startColumn=t.column),t.row<p.startRow&&(p.startRow=t.row),p.endRow<n.row&&(p.endRow=n.row),p.endColumn<n.column&&(p.endColumn=n.column)}}),i(p)):i(e)}}))}_initPrintingDom(){this.disposeWithMe(this._sheetPrintInterceptorService.interceptor.intercept(this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,n)=>{let{unitId:i,subUnitId:a}=t,s=this._drawingManagerService.getDrawingDataForUnit(i),c=s==null?void 0:s[a];if(c){let i=c.order.map(e=>{let t=c.data[e];if(t.drawingType===r.DrawingTypeEnum.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(r.PRINT_CHART_COMPONENT_KEY)};if(t.drawingType===r.DrawingTypeEnum.DRAWING_DOM){let e=this._sheetPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return(0,o.render)((0,m.jsx)((0,l.connectInjector)(Re,this._injector),{floatDomInfos:i,scene:t.scene,skeleton:t.skeleton,worksheet:t.worksheet}),t.root),e==null||e.add(()=>{(0,o.unmount)(t.root)}),n(e)}}}))}};ze=F([P(0,(0,r.Inject)(n.SheetPrintInterceptorService)),P(1,(0,r.Inject)(d.DrawingRenderService)),P(2,c.IDrawingManagerService),P(3,t.IRenderManagerService),P(4,(0,r.Inject)(Pe)),P(5,(0,r.Inject)(l.ComponentManager)),P(6,(0,r.Inject)(r.Injector))],ze);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 Be=[a.InsertRowCommand.id,a.InsertColCommand.id,a.RemoveRowCommand.id,a.RemoveColCommand.id,a.DeleteRangeMoveLeftCommand.id,a.DeleteRangeMoveUpCommand.id,a.InsertRangeMoveDownCommand.id,a.InsertRangeMoveRightCommand.id,a.DeltaRowHeightCommand.id,a.SetRowHeightCommand.id,a.DeltaColumnWidthCommand.id,a.SetColWidthCommand.id,a.SetRowHiddenCommand.id,a.SetSpecificRowsVisibleCommand.id,a.SetSpecificColsVisibleCommand.id,a.SetColHiddenCommand.id,a.MoveColsCommand.id,a.MoveRowsCommand.id,a.MoveRangeCommand.id],Ve=[a.SetRowVisibleMutation.id,a.SetRowHiddenMutation.id,a.SetColVisibleMutation.id,a.SetColHiddenMutation.id,a.SetWorksheetRowHeightMutation.id,a.SetWorksheetRowAutoHeightMutation.id,a.SetWorksheetRowIsAutoHeightMutation.id,a.SetWorksheetColWidthMutation.id],He=class extends r.Disposable{constructor(e,t,n,r,i,a,o,s,c){super(),this._context=e,this._renderManagerService=t,this._commandService=n,this._selectionRenderService=r,this._skeletonManagerService=i,this._sheetInterceptorService=a,this._sheetDrawingService=o,this._drawingManagerService=s,this._univerInstanceService=c,this._sheetInterceptorListener(),this._commandListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{if(!Be.includes(e.id)||e.params==null)return{redos:[],undos:[]};let t=e.id;if(t===a.InsertRowCommand.id)return this._moveRowInterceptor(e.params,`insert`);if([a.MoveColsCommand.id,a.MoveRowsCommand.id,a.MoveRangeCommand.id].includes(t))return this._moveRangeInterceptor(e.params);if(t===a.InsertColCommand.id)return this._moveColInterceptor(e.params,`insert`);if(t===a.RemoveRowCommand.id)return this._moveRowInterceptor(e.params,`remove`);if(t===a.RemoveColCommand.id)return this._moveColInterceptor(e.params,`remove`);if(t===a.DeleteRangeMoveLeftCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.deleteLeft)}else if(t===a.DeleteRangeMoveUpCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.deleteUp)}else if(t===a.InsertRangeMoveDownCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.insertDown)}else if(t===a.InsertRangeMoveRightCommand.id){let{range:t}=e.params;return this._getRangeMoveUndo(t,Q.insertRight)}else if(t===a.SetRowHiddenCommand.id||t===a.SetSpecificRowsVisibleCommand.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForRowVisible(t,n,r)}else if(t===a.SetSpecificColsVisibleCommand.id||t===a.SetColHiddenCommand.id){let{unitId:t,subUnitId:n,ranges:r}=e.params;return this._getDrawingUndoForColVisible(t,n,r)}else if(t===a.DeltaRowHeightCommand.id||t===a.SetRowHeightCommand.id||t===a.DeltaColumnWidthCommand.id||t===a.SetColWidthCommand.id){let{unitId:n,subUnitId:r,ranges:i}=e.params,o=t===a.DeltaRowHeightCommand.id||t===a.SetRowHeightCommand.id;return this._getDrawingUndoForRowAndColSize(n,r,i,o)}return{redos:[],undos:[]}}}))}_getRangeMoveUndo(e,t){let n=(0,a.getSheetCommandTarget)(this._univerInstanceService);if(n==null)return{redos:[],undos:[]};let r=n.unitId,o=n.subUnitId,s=[],c=[],l=this._sheetDrawingService.getDrawingData(r,o),u=[],d=[];if(Object.keys(l).forEach(n=>{let r=l[n],{updateDrawings:i,deleteDrawings:a}=this._getUpdateOrDeleteDrawings(e,t,r);u.push(...i),d.push(...a)}),u.length===0&&d.length===0)return{redos:[],undos:[]};if(u.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(u);s.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),c.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}if(d.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(d),t=e.undo,n=e.redo,a=e.objects;s.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:n,objects:a,type:i.DrawingApplyType.REMOVE}}),c.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:o,op:t,objects:a,type:i.DrawingApplyType.INSERT}})}return s.push({id:v.id,params:[r]}),c.push({id:v.id,params:[r]}),{redos:s,undos:c}}_getUpdateOrDeleteDrawings(e,t,n){let r=[],a=[],{sheetTransform:o,anchorType:s=i.SheetDrawingAnchorType.Position,transform:c,unitId:l,subUnitId:u,drawingId:d}=n,{from:f,to:p}=o,{row:m,column:g}=f,{row:_,column:v}=p;if(o==null||c==null)return{updateDrawings:r,deleteDrawings:a};let{startRow:y,endRow:b,startColumn:x,endColumn:S}=e,C=null,w=null,T;if(t===Q.deleteLeft&&m>=y&&_<=b)if(g>=x&&v<=S)a.push({unitId:l,subUnitId:u,drawingId:d});else{var E;let e=this._shrinkCol(o,c,x,S,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(E=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:E}else if(t===Q.deleteUp&&g>=x&&v<=S)if(m>=y&&_<=b)a.push({unitId:l,subUnitId:u,drawingId:d});else{var D;let e=this._shrinkRow(o,c,y,b,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(D=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:D}else if(t===Q.insertDown){var O;let e=this._expandRow(o,c,y,b,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(O=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:O}else if(t===Q.insertRight){var k;let e=this._expandCol(o,c,x,S,s);C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(k=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:k}if(C!=null&&w!=null){let e=h(C,this._selectionRenderService,this._skeletonManagerService);r.push({...n,sheetTransform:C,transform:e,axisAlignSheetTransform:T})}return{updateDrawings:r,deleteDrawings:a}}_remainDrawingSize(e,t,n){let r=g({...e},this._selectionRenderService);if(r!=null){let i=_({...e},this._selectionRenderService);t.push({...n,sheetTransform:r,axisAlignSheetTransform:i})}}_getDrawingUndoForColVisible(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:s,transform:c,anchorType:l=i.SheetDrawingAnchorType.Position}=t;if(l===i.SheetDrawingAnchorType.None)this._remainDrawingSize(c,a,t);else{let{from:e,to:r}=s,{row:u,column:d}=e,{row:f,column:p}=r;for(let s=0;s<n.length;s++){let{startRow:u,endRow:f,startColumn:m,endColumn:h}=n[s];if(p<m)continue;if(l===i.SheetDrawingAnchorType.Position){let n=null,i=null;if(d>=m&&d<=h){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:d,endColumn:h,startRow:e.row,endRow:r.row});if(t==null)return;i={...c,left:t.startX}}if(i!=null){n=g(i,this._selectionRenderService);let e=_(i,this._selectionRenderService);if(n!=null&&i!=null){a.push({...t,sheetTransform:n,transform:i,axisAlignSheetTransform:e});break}}this._remainDrawingSize(c,a,t);continue}if(d>=m&&p<=h)continue;let v=null,y=null;if(d>=m&&d<=h){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:d,endColumn:h,startRow:e.row,endRow:r.row});if(t==null)return;y={...c,left:(t==null?void 0:t.startX)||0,width:((c==null?void 0:c.width)||0)-t.endX+t.startX}}else if(p>=m&&p<=h){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:m,endColumn:p,startRow:e.row,endRow:r.row});if(t==null)return;y={...c,left:t.startX-((c==null?void 0:c.width)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:m,endColumn:h,startRow:e.row,endRow:r.row});if(n==null)return;if(y={...c,width:((c==null?void 0:c.width)||0)-n.endX+n.startX},v=g(y,this._selectionRenderService),v!=null&&y!=null){let e=_(y,this._selectionRenderService);o.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}}if(y!=null&&(v=g(y,this._selectionRenderService)),y!=null&&v!=null){let e=_(y,this._selectionRenderService);a.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}else this._remainDrawingSize(c,a,t)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_createUndoAndRedoMutation(e,t,n){let{undo:r,redo:a,objects:o}=this._sheetDrawingService.getBatchUpdateOp(n);return{redos:[{id:i.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:a,objects:o,type:i.DrawingApplyType.UPDATE}},{id:v.id,params:[e]}],undos:[{id:i.SetDrawingApplyMutation.id,params:{unitId:e,subUnitId:t,op:r,objects:o,type:i.DrawingApplyType.UPDATE}},{id:v.id,params:[e]}]}}_getDrawingUndoForRowVisible(e,t,n){let r=this._drawingManagerService.getDrawingData(e,t),a=[],o=[];if(Object.keys(r).forEach(e=>{let t=r[e],{sheetTransform:s,transform:c,anchorType:l=i.SheetDrawingAnchorType.Position}=t;if(l===i.SheetDrawingAnchorType.None)this._remainDrawingSize(c,a,t);else{let{from:e,to:r}=s,{row:u,column:d}=e,{row:f,column:p}=r;for(let s=0;s<n.length;s++){let{startRow:d,endRow:p,startColumn:m,endColumn:h}=n[s];if(f<d)continue;if(l===i.SheetDrawingAnchorType.Position){let n=null,i=null;if(u>=d&&u<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:u,endRow:p});if(t==null)return;i={...c,top:t.startY}}if(i!=null){n=g(i,this._selectionRenderService);let e=_(i,this._selectionRenderService);if(n!=null&&i!=null){a.push({...t,sheetTransform:n,transform:i,axisAlignSheetTransform:e});break}}this._remainDrawingSize(c,a,t);continue}if(u>=d&&f<=p)continue;let v=null,y=null;if(u>=d&&u<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:u,endRow:p});if(t==null)return;y={...c,top:(t==null?void 0:t.startY)||0,height:((c==null?void 0:c.height)||0)-t.endY+t.startY}}else if(f>=d&&f<=p){let t=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:d,endRow:f});if(t==null)return;y={...c,top:t.startY-((c==null?void 0:c.height)||0)}}else{let n=this._skeletonManagerService.attachRangeWithCoord({startColumn:e.column,endColumn:r.column,startRow:d,endRow:p});if(n==null)return;if(y={...c,height:((c==null?void 0:c.height)||0)-n.endY+n.startY},v=g(y,this._selectionRenderService),v!=null&&y!=null){let e=_(y,this._selectionRenderService);o.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}}if(y!=null&&(v=g(y,this._selectionRenderService)),y!=null&&v!=null){let e=_(y,this._selectionRenderService);a.push({...t,sheetTransform:v,transform:y,axisAlignSheetTransform:e});break}else this._remainDrawingSize(c,a,t)}}}),a.length===0&&o.length===0)return{redos:[],undos:[]};let{redos:s,undos:c}=this._createUndoAndRedoMutation(e,t,a),l=[],u=[];if(o.length>0){let{redos:n,undos:r}=this._createUndoAndRedoMutation(e,t,o);l.push(...n),u.push(...r)}return{redos:s,undos:c,preRedos:l,preUndos:u}}_getDrawingUndoForRowAndColSize(e,t,n,r){let a=this._drawingManagerService.getDrawingData(e,t),o=[];return Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:r,transform:s,anchorType:c=i.SheetDrawingAnchorType.Position}=t;if(c===i.SheetDrawingAnchorType.None)this._remainDrawingSize(s,o,t);else{let{from:e,to:a}=r,{row:l,column:u}=e,{row:d,column:f}=a;for(let e=0;e<n.length;e++){let{startRow:a,endRow:p,startColumn:m,endColumn:g}=n[e];if(d<a||f<m)continue;if(c===i.SheetDrawingAnchorType.Position&&(l<=a&&d>=p||u<=m&&f>=g)){this._remainDrawingSize(s,o,t);continue}let _=h({...r},this._selectionRenderService,this._skeletonManagerService);if(_!=null){o.push({...t,transform:_});break}}}}),o.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,o)}_getUnitIdAndSubUnitId(e,t){let n,r;if(t===`insert`)n=e.unitId,r=e.subUnitId;else{let e=(0,a.getSheetCommandTarget)(this._univerInstanceService);if(e==null)return;n=e.unitId,r=e.subUnitId}return{unitId:n,subUnitId:r}}_moveRangeInterceptor(e){var t;let{toRange:r,fromRange:o}=e,s=(0,a.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{redos:[],undos:[]};let{unitId:c,subUnitId:l}=s,u=(t=this._renderManagerService.getRenderById(c))==null||(t=t.with(n.SheetSkeletonManagerService))==null?void 0:t.getCurrentSkeleton();if(!u)return{redos:[],undos:[]};let d=(0,n.attachRangeWithCoord)(u,o);if(!d)return{redos:[],undos:[]};let{startX:f,endX:p,startY:m,endY:g}=d,_=this._sheetDrawingService.getDrawingData(c,l),v=[];Object.keys(_).forEach(e=>{let t=_[e];if(t.anchorType!==i.SheetDrawingAnchorType.Both)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:a=0,width:o=0,height:s=0}=n,{drawingStartX:c,drawingEndX:l,drawingStartY:u,drawingEndY:d}={drawingStartX:r,drawingEndX:r+o,drawingStartY:a,drawingEndY:a+s};f<=c&&l<=p&&m<=u&&d<=g&&v.push(t)});let y=[],b=[],x=r.startRow-o.startRow,S=r.startColumn-o.startColumn,C=v.map(e=>{let t=e.sheetTransform,n={to:{...t.to,row:t.to.row+x,column:t.to.column+S},from:{...t.from,row:t.from.row+x,column:t.from.column+S}},r=h(n,this._selectionRenderService,this._skeletonManagerService);return{unitId:c,subUnitId:l,drawingId:e.drawingId,transform:r,sheetTransform:n}});if(C.length){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(C);y.push({id:i.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:l,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),b.push({id:i.SetDrawingApplyMutation.id,params:{unitId:c,subUnitId:l,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}return{redos:y,undos:b}}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:r,subUnitId:a}=n,{range:o}=e,s=o.startRow,c=o.endRow,l=[],u=[],d=this._sheetDrawingService.getDrawingData(r,a),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=i.SheetDrawingAnchorType.Position}=d[e];if(n==null||o==null)return;let u,m,h;if(t===`insert`){var g;let e=this._expandRow(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}else{let{from:t,to:d}=n,{row:f}=t,{row:g}=d;if(l===i.SheetDrawingAnchorType.Both&&f>=s&&g<=c)p.push({unitId:r,subUnitId:a,drawingId:e});else{var _;let e=this._shrinkRow(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}}if(!u||!m)return;let v={unitId:r,subUnitId:a,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(v)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,o=e.objects;l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:n,objects:o,type:i.DrawingApplyType.REMOVE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:o,type:i.DrawingApplyType.INSERT}})}return l.push({id:v.id,params:[r]}),u.push({id:v.id,params:[r]}),{redos:l,undos:u}}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(n==null)return{redos:[],undos:[]};let{unitId:r,subUnitId:a}=n,{range:o}=e,s=o.startColumn,c=o.endColumn,l=[],u=[],d=this._sheetDrawingService.getDrawingData(r,a),f=[],p=[];if(Object.keys(d).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:l=i.SheetDrawingAnchorType.Position}=d[e];if(n==null||o==null)return;let u,m,h;if(t===`insert`){var g;let e=this._expandCol(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(g=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:g}else{let{from:t,to:d}=n,{column:f}=t,{column:g}=d;if(l===i.SheetDrawingAnchorType.Both&&f>=s&&g<=c)p.push({unitId:r,subUnitId:a,drawingId:e});else{var _;let e=this._shrinkCol(n,o,s,c,l);u=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(_=e==null?void 0:e.axisAlignSheetTransform)==null?void 0:_}}if(!u||!m)return;let v={unitId:r,subUnitId:a,drawingId:e,transform:m,sheetTransform:u,axisAlignSheetTransform:h};f.push(v)}),f.length===0&&p.length===0)return{redos:[],undos:[]};if(f.length>0){let{undo:e,redo:t,objects:n}=this._sheetDrawingService.getBatchUpdateOp(f);l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:n,type:i.DrawingApplyType.UPDATE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:e,objects:n,type:i.DrawingApplyType.UPDATE}})}if(p.length>0){let e=this._sheetDrawingService.getBatchRemoveOp(p),t=e.undo,n=e.redo,o=e.objects;l.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:n,objects:o,type:i.DrawingApplyType.REMOVE}}),u.push({id:i.SetDrawingApplyMutation.id,params:{unitId:r,subUnitId:a,op:t,objects:o,type:i.DrawingApplyType.INSERT}})}return l.push({id:v.id,params:[r]}),u.push({id:v.id,params:[r]}),{redos:l,undos:u}}_expandCol(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{column:l}=s,{column:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:r,startRow:s.row,endRow:c.row});if(e==null)return;f={...t,left:(t.left||0)+e.endX-e.startX},d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,column:u+o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_shrinkCol(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{column:l}=s,{column:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>r)d={from:{...s,column:l-o},to:{...c,column:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else if(l>=n&&u<=r)return null;else if(l<n&&u>r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,column:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};else if(l>=n&&l<=r){if(l===n)f={...t,left:(t.left||0)-e.from.columnOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startColumn:n,endColumn:l-1,startRow:s.row,endRow:c.row});if(r==null)return;f={...t,left:(t.left||0)-r.endX+r.startX-e.from.columnOffset}}d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=n&&u<=r&&a===i.SheetDrawingAnchorType.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:n-1,endColumn:n-1,startRow:s.row,endRow:c.row});if(e==null)return;d={from:{...s},to:{...c,column:n-1,columnOffset:e.endX-e.startX}},f=h(d,this._selectionRenderService,this._skeletonManagerService)}return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_expandRow(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{row:l}=s,{row:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>=n){let e=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:r,startColumn:s.column,endColumn:c.column});if(e==null)return;f={...t,top:(t.top||0)+e.endY-e.startY},d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,row:u+o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_shrinkRow(e,t,n,r,a=i.SheetDrawingAnchorType.Position){let o=r-n+1,{from:s,to:c}=e,{row:l}=s,{row:u}=c;if(a===i.SheetDrawingAnchorType.None)return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};let d=null,f=null,p=null;if(l>r)d={from:{...s,row:l-o},to:{...c,row:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else if(l>=n&&u<=r)return null;else if(l<n&&u>r)if(a===i.SheetDrawingAnchorType.Both)d={from:{...s},to:{...c,row:u-o}},f=h(d,this._selectionRenderService,this._skeletonManagerService);else return{newSheetTransform:g({...t},this._selectionRenderService),newTransform:t,axisAlignSheetTransform:_({...t},this._selectionRenderService)};else if(l>=n&&l<=r){if(l===n)f={...t,top:(t.top||0)-e.from.rowOffset};else{let r=this._skeletonManagerService.attachRangeWithCoord({startRow:n,endRow:l-1,startColumn:s.column,endColumn:c.column});if(r==null)return;f={...t,top:(t.top||0)-r.endY+r.startY-e.from.rowOffset}}d=g(f,this._selectionRenderService),p=_(f,this._selectionRenderService)}else if(u>=n&&u<=r&&a===i.SheetDrawingAnchorType.Both){let e=this._skeletonManagerService.attachRangeWithCoord({startColumn:s.column,endColumn:s.column,startRow:n-1,endRow:n-1});if(e==null)return;d={from:{...s},to:{...c,row:n-1,rowOffset:e.endY-e.startY}},f=h(d,this._selectionRenderService,this._skeletonManagerService)}return d!=null&&f!=null?{newSheetTransform:d,newTransform:f,axisAlignSheetTransform:p}:null}_commandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===a.SetWorksheetActiveOperation.id){let{unitId:t,subUnitId:n}=e.params;this._updateDrawings(t,n)}})),this.disposeWithMe(this._context.activated$.subscribe(e=>{let{unit:t,unitId:n}=this._context;if(e){let e=t.getActiveSheet().getSheetId();this._updateDrawings(n,e)}else this._clearDrawings(n)}))}_clearDrawings(e){setTimeout(()=>{let t=this._drawingManagerService.drawingManagerData,n=[];Object.keys(t).forEach(r=>{let i=t[r];i!=null&&Object.keys(i).forEach(t=>{let a=i[t].data;a!=null&&Object.keys(a).forEach(t=>{r===e&&n.push(a[t])})})}),this._sheetDrawingService.removeNotification(n),this._drawingManagerService.removeNotification(n)})}_updateDrawings(e,t){setTimeout(()=>{let n=this._drawingManagerService.drawingManagerData,r=[],i=[];Object.keys(n).forEach(a=>{let o=n[a];o!=null&&Object.keys(o).forEach(n=>{let s=o[n].data;s!=null&&Object.keys(s).forEach(o=>{if(a===e&&n===t){let e=s[o];e.sheetTransform&&(e.transform=h(e.sheetTransform,this._selectionRenderService,this._skeletonManagerService)),r.push(s[o])}else i.push(s[o])})})}),this._sheetDrawingService.removeNotification(i),this._sheetDrawingService.addNotification(r),this._drawingManagerService.removeNotification(i),this._drawingManagerService.addNotification(r)},0)}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{Ve.includes(e.id)&&requestIdleCallback(()=>{let t=e.params,n=(0,a.getSheetCommandTarget)(this._univerInstanceService,t);if(!n)return;let{unitId:r,subUnitId:i,worksheet:o}=n,s=[];`ranges`in t?s=t.ranges:`rowsAutoHeightInfo`in t&&(s=t.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:o.getColumnCount()-1}))),this._refreshDrawingTransform(r,i,s)})}))}_refreshDrawingTransform(e,t,n){let a=this._drawingManagerService.getDrawingData(e,t),o=[];Object.keys(a).forEach(e=>{let t=a[e],{sheetTransform:s,transform:c,anchorType:l=i.SheetDrawingAnchorType.Position}=t;if(l===i.SheetDrawingAnchorType.None)return!0;let{from:u,to:d}=s,{row:f,column:p}=u,{row:m,column:g}=d;for(let e=0;e<n.length;e++){let{startRow:a,endRow:u,startColumn:d,endColumn:_}=n[e];if(r.Rectangle.intersects({startRow:a,endRow:u,startColumn:d,endColumn:_},{startRow:f,endRow:m,startColumn:p,endColumn:g})||f>u||p>_){let e=l===i.SheetDrawingAnchorType.Position,n=h(s,this._selectionRenderService,this._skeletonManagerService);o.push({...t,transform:{...n,width:e?c==null?void 0:c.width:n==null?void 0:n.width,height:e?c==null?void 0:c.height:n==null?void 0:n.height}});break}}}),o.length!==0&&(this._sheetDrawingService.refreshTransform(o),this._drawingManagerService.refreshTransform(o),this._commandService.syncExecuteCommand(v.id,[e]))}};He=F([P(1,t.IRenderManagerService),P(2,r.ICommandService),P(3,n.ISheetSelectionRenderService),P(4,(0,r.Inject)(n.SheetSkeletonManagerService)),P(5,(0,r.Inject)(a.SheetInterceptorService)),P(6,i.ISheetDrawingService),P(7,c.IDrawingManagerService),P(8,r.IUniverInstanceService)],He);let Ue={id:`sheet.command.toggle-flip-drawings`,type:r.CommandType.COMMAND,handler:(e,a)=>{let o=e.get(r.ICommandService),s=e.get(r.IUndoRedoService),l=e.get(i.ISheetDrawingService),u=e.get(t.IRenderManagerService);if(!a)return!1;let{drawings:d}=a,f=a.flipH,p=a.flipV,m=[],h=[];for(let t of d){let{unitId:i,subUnitId:a,drawingId:o}=t;m.push(i);let s=l.getDrawingData(i,a),d=s==null?void 0:s[o];if(!d)continue;let v={...d.transform};f&&(v.flipX=!v.flipX),p&&(v.flipY=!v.flipY);let y=u.getRenderById(i),b=y==null?void 0:y.with(n.ISheetSelectionRenderService);if(!b)continue;let x=g(v,b),S=_(v,b),C={unitId:i,subUnitId:a,drawingType:d.drawingType,drawingId:o,transform:v,sheetTransform:x,axisAlignSheetTransform:S};if(d.drawingType===r.DrawingTypeEnum.DRAWING_IMAGE){let t=We(e,i);if(t){let e=(0,c.getDrawingShapeKeyByDrawingSearch)({unitId:i,subUnitId:a,drawingId:o}),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(f){let e=n+(i-n)/2;t={left:e-(i-n)/2,top:r,right:e+(i-n)/2,bottom:a}}if(p){let e=r+(a-r)/2;t={left:n,top:e-(a-r)/2,right:i,bottom:e+(a-r)/2}}t&&(C.srcRect=t)}}}}h.push(C)}if(h.length===0)return!1;let{unitId:y,subUnitId:b,undo:x,redo:S,objects:C}=l.getBatchUpdateOp(h),w={id:i.SetDrawingApplyMutation.id,params:{unitId:y,subUnitId:b,op:S,objects:C,type:i.DrawingApplyType.UPDATE}},T={id:i.SetDrawingApplyMutation.id,params:{unitId:y,subUnitId:b,op:x,objects:C,type:i.DrawingApplyType.UPDATE}};return(0,r.sequenceExecute)([w],o)?(s.pushUndoRedo({unitID:y,undoMutations:[T,{id:v.id,params:m}],redoMutations:[w,{id:v.id,params:m}]}),!0):!1}};function We(e,n){let r=e.get(t.IRenderManagerService).getRenderById(n);return r?r.scene:null}function Ge(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 Ke(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(Ge(r.getValue(e,t)))return!0;return!1}function qe(){return`showDirectoryPicker`in window}function Je(e){let t=e.get(r.IUniverInstanceService),n=e.get(a.SheetsSelectionsService),i=(0,f.combineLatest)([(0,l.getMenuHiddenObservable)(e,r.UniverInstanceType.UNIVER_SHEET),t.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET).pipe((0,f.switchMap)(e=>e?n.selectionMoveEnd$.pipe((0,f.map)(()=>{if(!qe())return!0;let t=n.getCurrentSelections();if(!t||t.length===0)return!0;for(let n of t)if(Ke(e,n.range))return!1;return!0})):(0,f.of)(!0)))]).pipe((0,f.map)(([e,t])=>e||t));return{id:ne.id,type:l.MenuItemType.BUTTON,icon:`DownloadImageIcon`,title:`sheetImage.save.menuLabel`,hidden$:i}}let Ye={[l.RibbonInsertGroup.MEDIA]:{[ce]:{order:0,menuItemFactory:le,[z.id]:{order:0,menuItemFactory:ue},[B.id]:{order:1,menuItemFactory:de}}},[l.ContextMenuPosition.MAIN_AREA]:{[l.ContextMenuGroup.OTHERS]:{[ne.id]:{order:10,menuItemFactory:Je}}},[l.ContextMenuPosition.COL_HEADER]:{[l.ContextMenuGroup.OTHERS]:{[ne.id]:{order:10,menuItemFactory:Je}}},[l.ContextMenuPosition.ROW_HEADER]:{[l.ContextMenuGroup.OTHERS]:{[ne.id]:{order:10,menuItemFactory:Je}}}};function Xe(){let e=(0,l.useDependency)(r.LocaleService),t=(0,l.useDependency)(l.IDialogService),i=(0,l.useDependency)(U),[a,s]=(0,p.useState)([H.CELL_ADDRESS]),[c,u]=(0,p.useState)(!1),[d,f]=(0,p.useState)(null),h=(0,p.useMemo)(()=>i.getCellImagesInSelection(),[i]),g=(0,p.useMemo)(()=>i.getDataColumns(),[i]),_=(0,p.useMemo)(()=>i.getSelectionRowRange(),[i]),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,n.useHighlightRange)((0,p.useMemo)(()=>{if(!a.includes(H.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&&s(e)},[]),C=(0,p.useCallback)(e=>{x(String(e))},[]),w=(0,p.useCallback)(()=>{t.close(X)},[t]),T=(0,p.useCallback)(async()=>{if(h.length!==0){u(!0),f(null);try{await i.saveImages(h,{fileNameParts:a,columnIndex:a.includes(H.COLUMN_VALUE)?Number(b):void 0}),t.close(X)}catch(t){console.error(`Failed to save images:`,t),f(e.t(`sheetImage.save.error`))}finally{u(!1)}}},[i,h,a,b,t,e]),E=a.includes(H.COLUMN_VALUE);return(0,m.jsxs)(`div`,{className:`univer-flex univer-flex-col`,children:[(0,m.jsx)(o.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)(o.FormLayout,{label:e.t(`sheetImage.save.fileNameConfig`),children:(0,m.jsxs)(o.CheckboxGroup,{value:a,onChange:S,direction:`vertical`,children:[(0,m.jsx)(o.Checkbox,{value:H.CELL_ADDRESS,disabled:!v,children:e.t(`sheetImage.save.useRowCol`)}),v&&(0,m.jsx)(o.Checkbox,{value:H.COLUMN_VALUE,children:e.t(`sheetImage.save.useColumnValue`)})]})}),E&&(0,m.jsx)(o.FormLayout,{label:e.t(`sheetImage.save.selectColumn`),children:(0,m.jsx)(o.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:`
|
|
44
|
+
univer-flex univer-justify-end univer-gap-2 univer-border-t univer-border-gray-200 univer-pt-3
|
|
45
|
+
`,children:[(0,m.jsx)(o.Button,{onClick:w,disabled:c,children:e.t(`sheetImage.save.cancel`)}),(0,m.jsx)(o.Button,{variant:`primary`,onClick:T,disabled:c||h.length===0,children:c?e.t(`sheetImage.save.saving`):e.t(`sheetImage.save.confirm`)})]})]})}let Ze=e=>{var n;let a=(0,l.useDependency)(r.ICommandService),s=(0,l.useDependency)(r.LocaleService),u=(0,l.useDependency)(c.IDrawingManagerService),d=(0,l.useDependency)(t.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)((n=h.anchorType)==null?i.SheetDrawingAnchorType.Position:n);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,n=w(t,u);if(n.length===0)x(!1);else if(n.length>=1){var r;x(!0),C(((r=n[0])==null?void 0:r.anchorType)||i.SheetDrawingAnchorType.Position)}});return()=>{t.unsubscribe(),e.unsubscribe()}},[]);function T(e){C(e);let t=u.getFocusDrawings();if(t.length===0)return;let n=t.map(t=>({unitId:t.unitId,subUnitId:t.subUnitId,drawingId:t.drawingId,anchorType:e}));a.executeCommand(O.id,{unitId:t[0].unitId,drawings:n})}return(0,m.jsxs)(`div`,{className:(0,o.clsx)(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!b}),children:[(0,m.jsx)(`header`,{className:`
|
|
46
|
+
univer-text-gray-600
|
|
47
|
+
dark:!univer-text-gray-200
|
|
48
|
+
`,children:(0,m.jsx)(`div`,{children:s.t(`drawing-anchor.title`)})}),(0,m.jsx)(`div`,{children:(0,m.jsxs)(o.RadioGroup,{value:S,onChange:T,direction:`vertical`,children:[(0,m.jsx)(o.Radio,{value:i.SheetDrawingAnchorType.Both,children:s.t(`drawing-anchor.both`)}),(0,m.jsx)(o.Radio,{value:i.SheetDrawingAnchorType.Position,children:s.t(`drawing-anchor.position`)}),(0,m.jsx)(o.Radio,{value:i.SheetDrawingAnchorType.None,children:s.t(`drawing-anchor.none`)})]})})]})},Qe=()=>{let e=(0,l.useDependency)(c.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)(Ze,{drawings:t})]})};function $e(e){return e.getContextValue(r.FOCUSING_SHEET)&&!e.getContextValue(r.FOCUSING_FX_BAR_EDITOR)&&!e.getContextValue(r.FOCUSING_PANEL_EDITOR)&&e.getContextValue(r.FOCUSING_COMMON_DRAWINGS)&&!e.getContextValue(r.FOCUSING_SHAPE_TEXT_EDITOR)}let et={id:V.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_DOWN,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.DOWN}},tt={id:V.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_UP,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.UP}},nt={id:V.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_LEFT,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.LEFT}},rt={id:V.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:l.KeyCode.ARROW_RIGHT,priority:100,preconditions:$e,staticParameters:{direction:r.Direction.RIGHT}},it={id:b.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,priority:100,preconditions:$e,binding:l.KeyCode.DELETE,mac:l.KeyCode.BACKSPACE},at=class extends r.Disposable{constructor(e,t,n,r,i,a){super(),this._componentManager=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._drawingManagerService=i,this._sheetsSelectionsService=a,this._init()}_initCustomComponents(){let e=this._componentManager;this.disposeWithMe(e.register(re,Qe)),this.disposeWithMe(e.register(X,Xe))}_initMenus(){this._menuManagerService.mergeMenu(Ye)}_initCommands(){[z,B,E,y,O,ie,v,ae,T,k,V,b,D,ne,Ue].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[et,tt,nt,rt,it].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};at=F([P(0,(0,r.Inject)(l.ComponentManager)),P(1,l.IMenuManagerService),P(2,r.ICommandService),P(3,l.IShortcutService),P(4,c.IDrawingManagerService),P(5,(0,r.Inject)(a.SheetsSelectionsService))],at);let ot=class extends r.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,N(this,`_initImagePopupMenu`,new Set),this._init()}_init(){this._univerInstanceService.getCurrentTypeOfUnit$(r.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._create(e)),this._univerInstanceService.getTypeOfUnitDisposed$(r.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._dispose(e)),this._univerInstanceService.getAllUnitsForType(r.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:o.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 t;let n=(t=this._renderManagerService.getRenderById(e))==null?void 0:t.scene;if(!n)return;let i=n.getTransformerByCreate();if(!i)return;let a;this.disposeWithMe(i.createControl$.subscribe(()=>{if(this._contextService.setContextValue(r.FOCUSING_COMMON_DRAWINGS,!0),this._hasCropObject(n))return;let e=i.getSelectedObjectMap();if(e.size>1){a==null||a.dispose();return}let t=e.values().next().value;if(!t)return;let o=t.oKey,s=this._drawingManagerService.getDrawingOKey(o);if(!s)return;let{unitId:c,subUnitId:l,drawingId: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(t,{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(r.FOCUSING_COMMON_DRAWINGS,!1),this._commandService.syncExecuteCommand(c.SetDrawingSelectedOperation.id,[])})),this.disposeWithMe(this._contextService.contextChanged$.subscribe(e=>{e[r.FOCUSING_COMMON_DRAWINGS]===!1&&(a==null||a.dispose())})),this.disposeWithMe(i.changing$.subscribe(()=>{a==null||a.dispose()}))}_getImageMenuItems(e,t,n,i){return[{label:`image-popup.edit`,index:0,commandId:ae.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.delete`,index:1,commandId:y.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:d.OpenImageCropOperation.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipH`,index:2,commandId:Ue.id,commandParams:{unitId:e,flipH:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.flipV`,index:2,commandId:Ue.id,commandParams:{unitId:e,flipV:!0,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:i===r.DrawingTypeEnum.DRAWING_DOM},{label:`image-popup.reset`,index:3,commandId:d.ImageResetSizeOperation.id,commandParams:[{unitId:e,subUnitId:t,drawingId:n}],disable:i===r.DrawingTypeEnum.DRAWING_DOM}]}};ot=F([P(0,(0,r.Inject)(r.Injector)),P(1,(0,r.Inject)(r.LocaleService)),P(2,c.IDrawingManagerService),P(3,(0,r.Inject)(n.SheetCanvasPopManagerService)),P(4,t.IRenderManagerService),P(5,r.IUniverInstanceService),P(6,l.IMessageService),P(7,r.IContextService),P(8,r.IImageIoService),P(9,r.ICommandService)],ot);let $=class extends r.Plugin{constructor(e=he,t,n,i){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=i;let{menu:a,...o}=(0,r.merge)({},he,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(me,o)}onStarting(){(0,r.registerDependencies)(this._injector,[[Pe],[at],[ot],[ze],[Ae],[ke],[se],[be],[xe],[Ce],[U,{useClass:Y}],[ge]]),(0,r.touchDependencies)(this._injector,[[Pe]])}onReady(){(0,r.touchDependencies)(this._injector,[[ke],[Ce],[se]])}onRendered(){this._registerRenderModules(),(0,r.touchDependencies)(this._injector,[[Ae],[ze],[at],[be],[xe]])}onSteady(){this._injector.get(ot),this._injector.get(ge)}_registerRenderModules(){[[R],[He],[ve],[_e]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(r.UniverInstanceType.UNIVER_SHEET,e))})}};N($,`type`,r.UniverInstanceType.UNIVER_SHEET),N($,`pluginName`,`SHEET_IMAGE_UI_PLUGIN`),N($,`packageName`,fe),N($,`version`,pe),$=F([(0,r.DependentOn)(c.UniverDrawingPlugin,u.UniverDocsDrawingPlugin,d.UniverDrawingUIPlugin,i.UniverSheetsDrawingPlugin),P(1,(0,r.Inject)(r.Injector)),P(2,t.IRenderManagerService),P(3,r.IConfigService)],$),Object.defineProperty(e,`BatchSaveImagesService`,{enumerable:!0,get:function(){return Y}}),e.ClearSheetDrawingTransformerOperation=v,e.DeleteDrawingsCommand=b,e.EditSheetDrawingOperation=ae,e.FileNamePart=H,e.GroupSheetDrawingCommand=T,e.IBatchSaveImagesService=U,e.InsertFloatImageCommand=z,e.InsertSheetDrawingCommand=E,e.MoveDrawingsCommand=V,e.RemoveSheetDrawingCommand=y,e.SHEETS_IMAGE_MENU_ID=ce,e.SHEET_FLOAT_DOM_PREFIX=Me,e.SaveCellImagesCommand=ne,e.SetDrawingArrangeCommand=D,e.SetSheetDrawingCommand=O,Object.defineProperty(e,`SheetCanvasFloatDomManagerService`,{enumerable:!0,get:function(){return Pe}}),e.SheetDrawingAnchor=Ze,Object.defineProperty(e,`SheetDrawingUpdateController`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(e,`SheetsDrawingGroupCopyPasteController`,{enumerable:!0,get:function(){return se}}),e.SidebarSheetDrawingOperation=ie,e.UngroupSheetDrawingCommand=k,Object.defineProperty(e,`UniverSheetsDrawingUIPlugin`,{enumerable:!0,get:function(){return $}}),e.calcSheetFloatDomPosition=Z,e.drawingPositionToTransform=h,e.transformToAxisAlignPosition=_,e.transformToDrawingPosition=g});
|
|
17
49
|
|
|
18
50
|
// @univerjs/sheets-drawing-ui/facade
|
|
19
|
-
(function(c,f){typeof exports=="object"&&typeof module<"u"?f(require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/drawing"),require("@univerjs/engine-render"),require("@univerjs/sheets-drawing-ui"),require("@univerjs/sheets-ui"),require("@univerjs/sheets-drawing"),require("@univerjs/sheets-ui/facade"),require("@univerjs/sheets/facade"),require("@univerjs/ui")):typeof define=="function"&&define.amd?define(["@univerjs/core","@univerjs/core/facade","@univerjs/drawing","@univerjs/engine-render","@univerjs/sheets-drawing-ui","@univerjs/sheets-ui","@univerjs/sheets-drawing","@univerjs/sheets-ui/facade","@univerjs/sheets/facade","@univerjs/ui"],f):(c=typeof globalThis<"u"?globalThis:c||self,f(c.UniverCore,c.UniverCoreFacade,c.UniverDrawing,c.UniverEngineRender,c.UniverSheetsDrawingUi,c.UniverSheetsUi,c.UniverSheetsDrawing,c.UniverSheetsUiFacade,c.UniverSheetsFacade,c.UniverUi))})(this,(function(c,f,v,E,m,C,w,R,y,T){"use strict";var N=Object.defineProperty;var H=(c,f,v)=>f in c?N(c,f,{enumerable:!0,configurable:!0,writable:!0,value:v}):c[f]=v;var A=(c,f,v)=>H(c,typeof f!="symbol"?f+"":f,v);var M=Object.getOwnPropertyDescriptor,O=(s,r,t,e)=>{for(var n=e>1?void 0:e?M(r,t):r,i=s.length-1,o;i>=0;i--)(o=s[i])&&(n=o(n)||n);return n},F=(s,r)=>(t,e)=>r(t,e,s);function B(s,r){const{from:t,to:e,flipY:n=!1,flipX:i=!1,angle:o=0,skewX:d=0,skewY:a=0}=s.sheetTransform,{column:h,columnOffset:g,row:u,rowOffset:l}=t,p=C.convertPositionSheetOverGridToAbsolute(s.unitId,s.subUnitId,{from:t,to:e},r),{width:_,height:I}=p;return{...s,column:h,columnOffset:g,row:u,rowOffset:l,width:_,height:I,flipY:n,flipX:i,angle:o,skewX:d,skewY:a}}function x(s,r,t){const{column:e,columnOffset:n,row:i,rowOffset:o,flipY:d=!1,flipX:a=!1,angle:h=0,skewX:g=0,skewY:u=0,width:l,height:p}=s,_=C.convertPositionCellToSheetOverGrid(s.unitId,s.subUnitId,{column:e,columnOffset:n,row:i,rowOffset:o},l,p,r,t),{sheetTransform:I,transform:D}=_;return{...s,sheetTransform:{...I,flipY:d,flipX:a,angle:h,skewX:g,skewY:u},transform:{...D,flipY:d,flipX:a,angle:h,skewX:g,skewY:u},axisAlignSheetTransform:m.transformToAxisAlignPosition(D,r)}}let k=class{constructor(s,r,t){A(this,"_image");this._injector=t,this._image={drawingId:c.generateRandomId(6),drawingType:c.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:c.ImageSourceType.BASE64,source:"",unitId:s,subUnitId:r,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(s){const t=this._injector.get(E.IRenderManagerService).getRenderById(s.unitId);if(!t)throw new Error(`Render Unit with unitId ${s.unitId} not found`);const e=t.with(C.SheetSkeletonManagerService);return s.sheetTransform==null&&(s.sheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),s.axisAlignSheetTransform==null&&(s.axisAlignSheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),this._image=B(s,e),this}setSource(s,r){const t=r!=null?r:c.ImageSourceType.URL;return this._image.source=s,this._image.imageSourceType=t,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(s){return this._image.column=s,this}setRow(s){return this._image.row=s,this}setColumnOffset(s){return this._image.columnOffset=s,this}setRowOffset(s){return this._image.rowOffset=s,this}setWidth(s){return this._image.width=s,this}setHeight(s){return this._image.height=s,this}setAnchorType(s){return this._image.anchorType=s,this}setCropTop(s){return this._initializeSrcRect(),this._image.srcRect.top=s,this}setCropLeft(s){return this._initializeSrcRect(),this._image.srcRect.left=s,this}setCropBottom(s){return this._initializeSrcRect(),this._image.srcRect.bottom=s,this}setCropRight(s){return this._initializeSrcRect(),this._image.srcRect.right=s,this}_initializeSrcRect(){this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(s){return this._image.angle=s,this}setUnitId(s){return this._image.unitId=s,this}setSubUnitId(s){return this._image.subUnitId=s,this}async buildAsync(){const r=this._injector.get(E.IRenderManagerService).getRenderById(this._image.unitId);if(!r)throw new Error(`Render Unit with unitId ${this._image.unitId} not found`);const t=r.with(C.ISheetSelectionRenderService),e=r.with(C.SheetSkeletonManagerService);if(this._image.width===0||this._image.height===0){const n=await v.getImageSize(this._image.source),i=n.width,o=n.height;this._image.width===0&&(this._image.width=i),this._image.height===0&&(this._image.height=o)}return x(this._image,t,e)}};k=O([F(2,c.Inject(c.Injector))],k);let S=class extends f.FBase{constructor(s,r,t){super(),this._image=s,this._commandService=r,this._injector=t}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(m.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){const s=this._injector.createInstance(k);return s.setImage(this._image),s}setSource(s,r){const t=r!=null?r:c.ImageSourceType.URL;return this._image.source=s,this._image.imageSourceType=t,this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(s,r,t,e){const n=this.toBuilder();n.setColumn(r),n.setRow(s),t!=null&&n.setRowOffset(t),e!=null&&n.setColumnOffset(e);const i=await n.buildAsync();return this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[i]})}async setSizeAsync(s,r){const t=this.toBuilder();t.setWidth(s),t.setHeight(r);const e=await t.buildAsync();return this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[e]})}setCrop(s,r,t,e){return this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0}),s!=null&&(this._image.srcRect.top=s),r!=null&&(this._image.srcRect.left=r),t!=null&&(this._image.srcRect.bottom=t),e!=null&&(this._image.srcRect.right=e),this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(s){if(this._image.sheetTransform.angle=s,this._image.transform&&(this._image.transform.angle=s),this._image.transform){const t=this._injector.get(E.IRenderManagerService).getRenderById(this._image.unitId);if(!t)throw new Error(`Render Unit with unitId ${this._image.unitId} not found`);const e=t.with(C.ISheetSelectionRenderService);this._image.axisAlignSheetTransform&&(this._image.axisAlignSheetTransform=m.transformToAxisAlignPosition(this._image.transform,e))}return this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.front})}};S=O([F(1,c.ICommandService),F(2,c.Inject(c.Injector))],S);class j extends y.FWorksheet{getFloatDomById(r){const e=this._injector.get(m.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!e)return null;const{unitId:n,subUnitId:i}=e,{rect:o}=e,d=o.getState(),{left:a=0,top:h=0,width:g=0,height:u=0,flipX:l=!1,flipY:p=!1,angle:_=0,skewX:I=0,skewY:D=0}=d,b=this._injector.get(w.ISheetDrawingService).getDrawingByParam({drawingId:e.id,unitId:n,subUnitId:i});return b?{position:{left:a,top:h,width:g,height:u,flipX:l,flipY:p,angle:_,skewX:I,skewY:D},componentKey:b.componentKey,allowTransform:b.allowTransform,data:b.data,id:e.id}:null}getAllFloatDoms(){const r=this._injector.get(m.SheetCanvasFloatDomManagerService),t=this._workbook.getUnitId(),e=this._worksheet.getSheetId();return Array.from(r.getFloatDomsBySubUnitId(t,e).values()).map(n=>{const{rect:i}=n,o=this._injector.get(w.ISheetDrawingService).getDrawingByParam({drawingId:n.id,unitId:t,subUnitId:e}),{left:d,top:a,width:h,height:g,flipX:u,flipY:l,angle:p,skewX:_,skewY:I}=i.getState();return{position:{left:d,top:a,width:h,height:g,flipX:u,flipY:l,angle:p,skewX:_,skewY:I},componentKey:o.componentKey,allowTransform:o.allowTransform,data:o.data,id:n.id}})}updateFloatDom(r,t){var _,I,D;const n=this._injector.get(m.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!n)return this;const{unitId:i,subUnitId:o}=n,d=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:i,subUnitId:o,drawingId:r}),a=this._injector.get(E.IRenderManagerService);if(!a.getRenderById(i))return this;if(!this.getSkeleton())return this;const u=(_=a.getRenderById(this.getWorkbook().getUnitId()))==null?void 0:_.with(C.ISheetSelectionRenderService);if(!u)return this;const l={...d,componentKey:t.componentKey||d.componentKey,allowTransform:t.allowTransform!==void 0?t.allowTransform:d.allowTransform,data:t.data||d.data,sheetTransform:t.position&&(I=m.transformToDrawingPosition(t.position,u))!=null?I:d.sheetTransform,transform:{...d.transform,...t.position},axisAlignSheetTransform:t.position&&(D=m.transformToAxisAlignPosition(t.position,u))!=null?D:d.sheetTransform};if(!this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:i,subUnitId:o,drawings:[l]}))throw new Error("updateFloatDom failed");return this}batchUpdateFloatDoms(r){var o,d;const t=this._injector.get(m.SheetCanvasFloatDomManagerService),e=this._injector.get(w.ISheetDrawingService),n=this._injector.get(E.IRenderManagerService),i=[];for(const a of r){const h=t.getFloatDomInfo(a.id);if(!h)continue;const{unitId:g,subUnitId:u}=h,l=e.getDrawingByParam({unitId:g,subUnitId:u,drawingId:a.id});if(!l)continue;const p=n.getRenderById(g);if(!p||!this.getSkeleton())continue;const I=p.with(C.ISheetSelectionRenderService);if(!I)return this;const D={...l,componentKey:a.config.componentKey||l.componentKey,allowTransform:a.config.allowTransform!==void 0?a.config.allowTransform:l.allowTransform,data:a.config.data||l.data,sheetTransform:a.config.position&&(o=m.transformToDrawingPosition(a.config.position,I))!=null?o:l.sheetTransform,transform:{...l.transform,...a.config.position},axisAlignSheetTransform:a.config.position&&(d=m.transformToAxisAlignPosition(a.config.position,I))!=null?d:l.sheetTransform};i.push(D)}if(i.length>0){const a=this._workbook.getUnitId(),h=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:a,subUnitId:h,drawings:i}))throw new Error("batchUpdateFloatDoms failed")}return this}removeFloatDom(r){const e=this._injector.get(m.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!e)return this;const{unitId:n,subUnitId:i}=e,d=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:n,subUnitId:i,drawingId:r});if(!d)return this;if(!this._commandService.syncExecuteCommand(m.RemoveSheetDrawingCommand.id,{unitId:n,drawings:[d]}))throw new Error("removeFloatDom failed");return this}addFloatDomToPosition(r,t){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),{key:i,disposableCollection:o}=R.transformComponentKey(r,this._injector.get(T.ComponentManager)),a=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...r,componentKey:i,unitId:e,subUnitId:n},t);return a?(o.add(a.dispose),{id:a.id,dispose:()=>{o.dispose(),a.dispose()}}):(o.dispose(),null)}addFloatDomToRange(r,t,e,n){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:d,disposableCollection:a}=R.transformComponentKey(t,this._injector.get(T.ComponentManager)),g=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToRange(r.getRange(),{...t,componentKey:d,unitId:i,subUnitId:o},e,n);return g?(a.add(g.dispose),{id:g.id,dispose:()=>{a.dispose(),g.dispose()}}):(a.dispose(),null)}addFloatDomToColumnHeader(r,t,e,n){const i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:d,disposableCollection:a}=R.transformComponentKey(t,this._injector.get(T.ComponentManager)),g=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(r,{...t,componentKey:d,unitId:i,subUnitId:o},e,n);return g?(a.add(g.dispose),{id:g.id,dispose:()=>{a.dispose(),g.dispose()}}):(a.dispose(),null)}async insertImage(r,t,e,n,i){const o=this.newOverGridImage();if(typeof r=="string")o.setSource(r);else{const h=await r.getBlob().getDataAsString();o.setSource(h,c.ImageSourceType.BASE64)}t!==void 0?o.setColumn(t):o.setColumn(0),e!==void 0?o.setRow(e):o.setRow(0),n!==void 0?o.setColumnOffset(n):o.setColumnOffset(0),i!==void 0?o.setRowOffset(i):o.setRowOffset(0);const d=await o.buildAsync();return this._commandService.syncExecuteCommand(m.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[d]})}insertImages(r){const t=r.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(m.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}deleteImages(r){const t=r.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(m.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}getImages(){const t=this._injector.get(w.ISheetDrawingService).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),e=[];for(const n in t){const i=t[n];i.drawingType===c.DrawingTypeEnum.DRAWING_IMAGE&&e.push(this._injector.createInstance(S,i))}return e}getImageById(r){const e=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:r});return e&&e.drawingType===c.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(S,e):null}getActiveImages(){const t=this._injector.get(w.ISheetDrawingService).getFocusDrawings(),e=[];for(const n in t){const i=t[n];e.push(this._injector.createInstance(S,i))}return e}updateImages(r){return this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:r}),this}onImageInserted(r){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.add$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(S,t.getDrawingByParam(i)));r(n)}))}onImageDeleted(r){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.remove$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(S,t.getDrawingByParam(i)));r(n)}))}onImageChanged(r){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.update$.subscribe(e=>{const n=e.map(i=>this._injector.createInstance(S,t.getDrawingByParam(i)));r(n)}))}newOverGridImage(){const r=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(k,r,t)}async saveCellImagesAsync(r,t){var u;const e=this._injector.get(m.IBatchSaveImagesService),n=this._fWorkbook.getId(),i=this.getSheetId(),o=t?t.map(l=>l.getRange()):[this._worksheet.getCellMatrix().getDataRange()],d=e.getCellImagesFromRanges(n,i,o);if(d.length===0)return!1;if(d.length===1)try{return await e.downloadSingleImage(d[0]),!0}catch(l){return console.error("Failed to download image:",l),!1}const a=[],h=(u=r==null?void 0:r.useCellAddress)!=null?u:!0,g=r==null?void 0:r.useColumnIndex;h&&a.push(m.FileNamePart.CELL_ADDRESS),g!==void 0&&a.push(m.FileNamePart.COLUMN_VALUE),a.length===0&&a.push(m.FileNamePart.CELL_ADDRESS);try{return await e.saveImagesWithContext(d,{fileNameParts:a,columnIndex:g},n,i),!0}catch(l){return console.error("Failed to save images:",l),!1}}}y.FWorksheet.extend(j);class P extends f.FEnum{get DrawingType(){return c.DrawingTypeEnum}get ImageSourceType(){return c.ImageSourceType}get SheetDrawingAnchorType(){return w.SheetDrawingAnchorType}}f.FEnum.extend(P);class G extends f.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"}}f.FEventName.extend(G);class W extends f.FUniver{_initialize(r){const t=r.get(c.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,d=o.filter(h=>h.drawingType===c.DrawingTypeEnum.DRAWING_DOM);if(d.length===0)return;const a={workbook:i,drawings:d};if(this.fireEvent(this.Event.BeforeFloatDomAdd,a),a.cancel)throw new c.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomAdded,()=>t.onCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,d=o.filter(a=>a.drawingType===c.DrawingTypeEnum.DRAWING_DOM);d.length!==0&&this.fireEvent(this.Event.FloatDomAdded,{workbook:i,drawings:d})}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,d={workbook:i,insertImageParams:o};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,d),d.cancel)throw new c.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const o=r.get(v.IDrawingManagerService),{drawings:d}=n,a=d.map(g=>o.getDrawingByParam(g)),h={workbook:i,images:this._createFOverGridImage(a)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,h),h.cancel)throw new c.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,d=r.get(v.IDrawingManagerService),a=[];o.forEach(g=>{const u=d.getDrawingByParam(g);u!=null&&a.push({changeParam:g,image:this._injector.createInstance(S,u)})});const h={workbook:i,images:a};if(this.fireEvent(this.Event.BeforeOverGridImageChange,h),h.cancel)throw d.updateNotification(o),new c.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomUpdate,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,d=r.get(v.IDrawingManagerService),a=[];if(o.forEach(g=>{const u=d.getDrawingByParam(g);(u==null?void 0:u.drawingType)===c.DrawingTypeEnum.DRAWING_DOM&&a.push(u)}),a.length===0)return;const h={workbook:i,drawings:a};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,h),h.cancel)throw d.updateNotification(o),new c.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomUpdated,()=>t.onCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,d=r.get(v.IDrawingManagerService),a=[];o.forEach(h=>{const g=d.getDrawingByParam(h);(g==null?void 0:g.drawingType)===c.DrawingTypeEnum.DRAWING_DOM&&a.push(g)}),a.length!==0&&this.fireEvent(this.Event.FloatDomUpdated,{workbook:i,drawings:a})}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const o=r.get(v.IDrawingManagerService),{drawings:d}=n,a=d.map(g=>o.getDrawingByParam(g)).filter(g=>(g==null?void 0:g.drawingType)===c.DrawingTypeEnum.DRAWING_DOM);if(a.length===0)return;const h={workbook:i,drawings:a};if(this.fireEvent(this.Event.BeforeFloatDomDelete,h),h.cancel)throw new c.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomDeleted,()=>t.onCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n;this.fireEvent(this.Event.FloatDomDeleted,{workbook:i,drawings:o.filter(d=>d.drawingType===c.DrawingTypeEnum.DRAWING_DOM).map(d=>d.drawingId)})}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>t.beforeCommandExecuted(e=>{if(e.id!==v.SetDrawingSelectedOperation.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null)return;const o=r.get(v.IDrawingManagerService),d=o.getFocusDrawings(),a=n.map(g=>o.getDrawingByParam(g)),h={workbook:i,selectedImages:this._createFOverGridImage(a),oldSelectedImages:this._createFOverGridImage(d)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,h),h.cancel)throw new c.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageInserted,()=>t.onCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n;this.fireEvent(this.Event.OverGridImageInserted,{workbook:i,images:this._createFOverGridImage(o)})}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageRemoved,()=>t.onCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n;this.fireEvent(this.Event.OverGridImageRemoved,{workbook:i,removeImageParams:o})}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageChanged,()=>t.onCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null||n==null)return;const{drawings:o}=n,d=r.get(v.IDrawingManagerService),a=o.map(h=>this._injector.createInstance(S,d.getDrawingByParam(h)));this.fireEvent(this.Event.OverGridImageChanged,{workbook:i,images:a})}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageSelected,()=>t.onCommandExecuted(e=>{if(e.id!==v.SetDrawingSelectedOperation.id)return;const n=e.params,i=this.getActiveWorkbook();if(i==null)return;const o=r.get(v.IDrawingManagerService),d=n.map(a=>o.getDrawingByParam(a));this.fireEvent(this.Event.OverGridImageSelected,{workbook:i,selectedImages:this._createFOverGridImage(d)})})))}_createFOverGridImage(r){return r.map(t=>this._injector.createInstance(S,t))}registerURLImageDownloader(r){return this._injector.get(c.IURLImageService).registerURLImageDownloader(r)}}f.FUniver.extend(W);class U extends y.FRange{async insertCellImageAsync(r){var i;const t=this._injector.get(E.IRenderManagerService),e=(i=E.getCurrentTypeOfRenderer(c.UniverInstanceType.UNIVER_SHEET,this._injector.get(c.IUniverInstanceService),t))==null?void 0:i.with(m.SheetDrawingUpdateController);if(!e)return!1;const n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof r=="string"?e.insertCellImageByUrl(r,n):e.insertCellImageByFile(r,n)}async saveCellImagesAsync(r){var g;const t=this._injector.get(m.IBatchSaveImagesService),e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),i=this.getRange(),o=t.getCellImagesFromRanges(e,n,[i]);if(o.length===0)return!1;if(o.length===1)try{return await t.downloadSingleImage(o[0]),!0}catch(u){return console.error("Failed to download image:",u),!1}const d=[],a=(g=r==null?void 0:r.useCellAddress)!=null?g:!0,h=r==null?void 0:r.useColumnIndex;a&&d.push(m.FileNamePart.CELL_ADDRESS),h!==void 0&&d.push(m.FileNamePart.COLUMN_VALUE),d.length===0&&d.push(m.FileNamePart.CELL_ADDRESS);try{return await t.saveImagesWithContext(o,{fileNameParts:d,columnIndex:h},e,n),!0}catch(u){return console.error("Failed to save images:",u),!1}}}y.FRange.extend(U)}));
|
|
20
|
-
|
|
51
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(require(`@univerjs/core`),require(`@univerjs/core/facade`),require(`@univerjs/drawing`),require(`@univerjs/engine-render`),require(`@univerjs/sheets-drawing-ui`),require(`@univerjs/sheets-ui`),require(`@univerjs/sheets-drawing`),require(`@univerjs/sheets-ui/facade`),require(`@univerjs/sheets/facade`),require(`@univerjs/ui`)):typeof define==`function`&&define.amd?define([`@univerjs/core`,`@univerjs/core/facade`,`@univerjs/drawing`,`@univerjs/engine-render`,`@univerjs/sheets-drawing-ui`,`@univerjs/sheets-ui`,`@univerjs/sheets-drawing`,`@univerjs/sheets-ui/facade`,`@univerjs/sheets/facade`,`@univerjs/ui`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverCore,e.UniverCoreFacade,e.UniverDrawing,e.UniverEngineRender,e.UniverSheetsDrawingUi,e.UniverSheetsUi,e.UniverSheetsDrawing,e.UniverSheetsUiFacade,e.UniverSheetsFacade,e.UniverUi))})(this,function(e,t,n,r,i,a,o,s,c,l){function u(e){"@babel/helpers - typeof";return u=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},u(e)}function d(e,t){if(u(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(u(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function f(e){var t=d(e,`string`);return u(t)==`symbol`?t:t+``}function p(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(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}function g(e,t){let{from:n,to:r,flipY:i=!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,a.convertPositionSheetOverGridToAbsolute)(e.unitId,e.subUnitId,{from:n,to:r},t);return{...e,column:u,columnOffset:d,row:f,rowOffset:p,width:m,height:h,flipY:i,flipX:o,angle:s,skewX:c,skewY:l}}function _(e,t,n){let{column:r,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,a.convertPositionCellToSheetOverGrid)(e.unitId,e.subUnitId,{column:r,columnOffset:o,row:s,rowOffset:c},m,h,t,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)(_,t)}}let v=class{constructor(t,n,r){this._injector=r,p(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 t=this._injector.get(r.IRenderManagerService).getRenderById(e.unitId);if(!t)throw Error(`Render Unit with unitId ${e.unitId} not found`);let n=t.with(a.SheetSkeletonManagerService);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=g(e,n),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.IRenderManagerService).getRenderById(this._image.unitId);if(!e)throw Error(`Render Unit with unitId ${this._image.unitId} not found`);let t=e.with(a.ISheetSelectionRenderService),i=e.with(a.SheetSkeletonManagerService);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 _(this._image,t,i)}};v=h([m(2,(0,e.Inject)(e.Injector))],v);let y=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(v);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.IRenderManagerService).getRenderById(this._image.unitId);if(!e)throw Error(`Render Unit with unitId ${this._image.unitId} not found`);let t=e.with(a.ISheetSelectionRenderService);this._image.axisAlignSheetTransform&&(this._image.axisAlignSheetTransform=(0,i.transformToAxisAlignPosition)(this._image.transform,t))}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})}};y=h([m(1,e.ICommandService),m(2,(0,e.Inject)(e.Injector))],y);var b=class extends c.FWorksheet{getFloatDomById(e){let t=this._injector.get(i.SheetCanvasFloatDomManagerService).getFloatDomInfo(e);if(!t)return null;let{unitId:n,subUnitId:r}=t,{rect:a}=t,{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}=a.getState(),g=this._injector.get(o.ISheetDrawingService).getDrawingByParam({drawingId:t.id,unitId:n,subUnitId:r});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:t.id}:null}getAllFloatDoms(){let e=this._injector.get(i.SheetCanvasFloatDomManagerService),t=this._workbook.getUnitId(),n=this._worksheet.getSheetId();return Array.from(e.getFloatDomsBySubUnitId(t,n).values()).map(e=>{let{rect:r}=e,i=this._injector.get(o.ISheetDrawingService).getDrawingByParam({drawingId:e.id,unitId:t,subUnitId:n}),{left:a,top:s,width:c,height:l,flipX:u,flipY:d,angle:f,skewX:p,skewY:m}=r.getState();return{position:{left:a,top:s,width:c,height:l,flipX:u,flipY:d,angle:f,skewX:p,skewY:m},componentKey:i.componentKey,allowTransform:i.allowTransform,data:i.data,id:e.id}})}updateFloatDom(e,t){var n,s,c;let l=this._injector.get(i.SheetCanvasFloatDomManagerService).getFloatDomInfo(e);if(!l)return this;let{unitId:u,subUnitId:d}=l,f=this._injector.get(o.ISheetDrawingService).getDrawingByParam({unitId:u,subUnitId:d,drawingId:e}),p=this._injector.get(r.IRenderManagerService);if(!p.getRenderById(u)||!this.getSkeleton())return this;let m=(n=p.getRenderById(this.getWorkbook().getUnitId()))==null?void 0:n.with(a.ISheetSelectionRenderService);if(!m)return this;let h={...f,componentKey:t.componentKey||f.componentKey,allowTransform:t.allowTransform===void 0?f.allowTransform:t.allowTransform,data:t.data||f.data,sheetTransform:t.position?(s=(0,i.transformToDrawingPosition)(t.position,m))==null?f.sheetTransform:s:f.sheetTransform,transform:{...f.transform,...t.position},axisAlignSheetTransform:t.position?(c=(0,i.transformToAxisAlignPosition)(t.position,m))==null?f.sheetTransform:c:f.sheetTransform};if(!this._commandService.syncExecuteCommand(i.SetSheetDrawingCommand.id,{unitId:u,subUnitId:d,drawings:[h]}))throw Error(`updateFloatDom failed`);return this}batchUpdateFloatDoms(e){let t=this._injector.get(i.SheetCanvasFloatDomManagerService),n=this._injector.get(o.ISheetDrawingService),s=this._injector.get(r.IRenderManagerService),c=[];for(let r of e){var l,u;let e=t.getFloatDomInfo(r.id);if(!e)continue;let{unitId:o,subUnitId:d}=e,f=n.getDrawingByParam({unitId:o,subUnitId:d,drawingId:r.id});if(!f)continue;let p=s.getRenderById(o);if(!p||!this.getSkeleton())continue;let m=p.with(a.ISheetSelectionRenderService);if(!m)return this;let h={...f,componentKey:r.config.componentKey||f.componentKey,allowTransform:r.config.allowTransform===void 0?f.allowTransform:r.config.allowTransform,data:r.config.data||f.data,sheetTransform:r.config.position?(l=(0,i.transformToDrawingPosition)(r.config.position,m))==null?f.sheetTransform:l:f.sheetTransform,transform:{...f.transform,...r.config.position},axisAlignSheetTransform:r.config.position?(u=(0,i.transformToAxisAlignPosition)(r.config.position,m))==null?f.sheetTransform:u:f.sheetTransform};c.push(h)}if(c.length>0){let e=this._workbook.getUnitId(),t=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(i.SetSheetDrawingCommand.id,{unitId:e,subUnitId:t,drawings:c}))throw Error(`batchUpdateFloatDoms failed`)}return this}removeFloatDom(e){let t=this._injector.get(i.SheetCanvasFloatDomManagerService).getFloatDomInfo(e);if(!t)return this;let{unitId:n,subUnitId:r}=t,a=this._injector.get(o.ISheetDrawingService).getDrawingByParam({unitId:n,subUnitId:r,drawingId:e});if(!a)return this;if(!this._commandService.syncExecuteCommand(i.RemoveSheetDrawingCommand.id,{unitId:n,drawings:[a]}))throw Error(`removeFloatDom failed`);return this}addFloatDomToPosition(e,t){let n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),{key:a,disposableCollection:o}=(0,s.transformComponentKey)(e,this._injector.get(l.ComponentManager)),c=this._injector.get(i.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...e,componentKey:a,unitId:n,subUnitId:r},t);return c?(o.add(c.dispose),{id:c.id,dispose:()=>{o.dispose(),c.dispose()}}):(o.dispose(),null)}addFloatDomToRange(e,t,n,r){let a=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:c,disposableCollection:u}=(0,s.transformComponentKey)(t,this._injector.get(l.ComponentManager)),d=this._injector.get(i.SheetCanvasFloatDomManagerService).addFloatDomToRange(e.getRange(),{...t,componentKey:c,unitId:a,subUnitId:o},n,r);return d?(u.add(d.dispose),{id:d.id,dispose:()=>{u.dispose(),d.dispose()}}):(u.dispose(),null)}addFloatDomToColumnHeader(e,t,n,r){let a=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:c,disposableCollection:u}=(0,s.transformComponentKey)(t,this._injector.get(l.ComponentManager)),d=this._injector.get(i.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(e,{...t,componentKey:c,unitId:a,subUnitId:o},n,r);return d?(u.add(d.dispose),{id:d.id,dispose:()=>{u.dispose(),d.dispose()}}):(u.dispose(),null)}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(o.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(y,i))}return n}getImageById(t){let n=this._injector.get(o.ISheetDrawingService).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:t});return n&&n.drawingType===e.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(y,n):null}getActiveImages(){let e=this._injector.get(o.ISheetDrawingService).getFocusDrawings(),t=[];for(let n in e){let r=e[n];t.push(this._injector.createInstance(y,r))}return t}updateImages(e){return this._commandService.syncExecuteCommand(i.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:e}),this}onImageInserted(t){let n=this._injector.get(o.ISheetDrawingService);return(0,e.toDisposable)(n.add$.subscribe(e=>{t(e.map(e=>this._injector.createInstance(y,n.getDrawingByParam(e))))}))}onImageDeleted(t){let n=this._injector.get(o.ISheetDrawingService);return(0,e.toDisposable)(n.remove$.subscribe(e=>{t(e.map(e=>this._injector.createInstance(y,n.getDrawingByParam(e))))}))}onImageChanged(t){let n=this._injector.get(o.ISheetDrawingService);return(0,e.toDisposable)(n.update$.subscribe(e=>{t(e.map(e=>this._injector.createInstance(y,n.getDrawingByParam(e))))}))}newOverGridImage(){let e=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(v,e,t)}async saveCellImagesAsync(e,t){var n;let r=this._injector.get(i.IBatchSaveImagesService),a=this._fWorkbook.getId(),o=this.getSheetId(),s=t?t.map(e=>e.getRange()):[this._worksheet.getCellMatrix().getDataRange()],c=r.getCellImagesFromRanges(a,o,s);if(c.length===0)return!1;if(c.length===1)try{return await r.downloadSingleImage(c[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let l=[],u=(n=e==null?void 0:e.useCellAddress)==null?!0:n,d=e==null?void 0:e.useColumnIndex;u&&l.push(i.FileNamePart.CELL_ADDRESS),d!==void 0&&l.push(i.FileNamePart.COLUMN_VALUE),l.length===0&&l.push(i.FileNamePart.CELL_ADDRESS);try{return await r.saveImagesWithContext(c,{fileNameParts:l,columnIndex:d},a,o),!0}catch(e){return console.error(`Failed to save images:`,e),!1}}};c.FWorksheet.extend(b);var x=class extends t.FEnum{get DrawingType(){return e.DrawingTypeEnum}get ImageSourceType(){return e.ImageSourceType}get SheetDrawingAnchorType(){return o.SheetDrawingAnchorType}};t.FEnum.extend(x);var S=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(S);var C=class extends t.FUniver{_initialize(t){let r=t.get(e.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>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=a.filter(t=>t.drawingType===e.DrawingTypeEnum.DRAWING_DOM);if(o.length===0)return;let s={workbook:r,drawings:o};if(this.fireEvent(this.Event.BeforeFloatDomAdd,s),s.cancel)throw new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomAdded,()=>r.onCommandExecuted(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=a.filter(t=>t.drawingType===e.DrawingTypeEnum.DRAWING_DOM);o.length!==0&&this.fireEvent(this.Event.FloatDomAdded,{workbook:r,drawings:o})}))),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(y,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.BeforeFloatDomUpdate,()=>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=[];if(s.forEach(t=>{let n=c.getDrawingByParam(t);(n==null?void 0:n.drawingType)===e.DrawingTypeEnum.DRAWING_DOM&&l.push(n)}),l.length===0)return;let u={workbook:o,drawings:l};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,u),u.cancel)throw c.updateNotification(s),new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomUpdated,()=>r.onCommandExecuted(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(t=>{let n=c.getDrawingByParam(t);(n==null?void 0:n.drawingType)===e.DrawingTypeEnum.DRAWING_DOM&&l.push(n)}),l.length!==0&&this.fireEvent(this.Event.FloatDomUpdated,{workbook:o,drawings:l})}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>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)).filter(t=>(t==null?void 0:t.drawingType)===e.DrawingTypeEnum.DRAWING_DOM);if(l.length===0)return;let u={workbook:o,drawings:l};if(this.fireEvent(this.Event.BeforeFloatDomDelete,u),u.cancel)throw new e.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomDeleted,()=>r.onCommandExecuted(t=>{if(t.id!==i.RemoveSheetDrawingCommand.id)return;let n=t.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:a}=n;this.fireEvent(this.Event.FloatDomDeleted,{workbook:r,drawings:a.filter(t=>t.drawingType===e.DrawingTypeEnum.DRAWING_DOM).map(e=>e.drawingId)})}))),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;this.fireEvent(this.Event.OverGridImageInserted,{workbook:n,images:this._createFOverGridImage(r)})}))),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;this.fireEvent(this.Event.OverGridImageRemoved,{workbook:n,removeImageParams:r})}))),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=o.map(e=>this._injector.createInstance(y,s.getDrawingByParam(e)));this.fireEvent(this.Event.OverGridImageChanged,{workbook:a,images: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));this.fireEvent(this.Event.OverGridImageSelected,{workbook:i,selectedImages:this._createFOverGridImage(o)})})))}_createFOverGridImage(e){return e.map(e=>this._injector.createInstance(y,e))}registerURLImageDownloader(t){return this._injector.get(e.IURLImageService).registerURLImageDownloader(t)}};t.FUniver.extend(C);var w=class extends c.FRange{async insertCellImageAsync(t){var n;let a=this._injector.get(r.IRenderManagerService),o=(n=(0,r.getCurrentTypeOfRenderer)(e.UniverInstanceType.UNIVER_SHEET,this._injector.get(e.IUniverInstanceService),a))==null?void 0:n.with(i.SheetDrawingUpdateController);if(!o)return!1;let s={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof t==`string`?o.insertCellImageByUrl(t,s):o.insertCellImageByFile(t,s)}async saveCellImagesAsync(e){var t;let n=this._injector.get(i.IBatchSaveImagesService),r=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=this.getRange(),s=n.getCellImagesFromRanges(r,a,[o]);if(s.length===0)return!1;if(s.length===1)try{return await n.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(i.FileNamePart.CELL_ADDRESS),u!==void 0&&c.push(i.FileNamePart.COLUMN_VALUE),c.length===0&&c.push(i.FileNamePart.CELL_ADDRESS);try{return await n.saveImagesWithContext(s,{fileNameParts:c,columnIndex:u},r,a),!0}catch(e){return console.error(`Failed to save images:`,e),!1}}};c.FRange.extend(w)});
|
|
21
52
|
|
|
22
53
|
// index
|
|
23
54
|
(function(e,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@univerjs/docs-drawing"),require("@univerjs/drawing"),require("@univerjs/drawing-ui"),require("@univerjs/sheets-drawing"),require("@univerjs/sheets-drawing-ui"),require("@univerjs/sheets-drawing-ui/lib/facade")):typeof define=="function"&&define.amd?define(["exports","@univerjs/docs-drawing","@univerjs/drawing","@univerjs/drawing-ui","@univerjs/sheets-drawing","@univerjs/sheets-drawing-ui","@univerjs/sheets-drawing-ui/lib/facade"],i):(e=typeof globalThis<"u"?globalThis:e||self,i(e.UniverPresetSheetsDrawing={},e.UniverDocsDrawing,e.UniverDrawing,e.UniverDrawingUi,e.UniverSheetsDrawing,e.UniverSheetsDrawingUi))})(this,(function(e,i,n,r,s,u){"use strict";function t(a={}){const{collaboration:g=!1}=a;return{plugins:[[n.UniverDrawingPlugin,{override:g?[[n.IImageIoService,null]]:[]}],i.UniverDocsDrawingPlugin,r.UniverDrawingUIPlugin,s.UniverSheetsDrawingPlugin,u.UniverSheetsDrawingUIPlugin].filter(v=>!!v)}}e.UniverSheetsDrawingPreset=t,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
|