@univerjs/drawing 0.20.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1 +1,1124 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@univerjs/core`),l=require(`ot-json1`);l=s(l);let u=require(`rxjs`);const d=[`image/png`,`image/jpeg`,`image/jpg`,`image/gif`,`image/bmp`],f=(0,c.createIdentifier)(`univer.drawing-manager.service`),p={id:`drawing.operation.set-drawing-selected`,type:c.CommandType.OPERATION,handler:(e,t)=>{let n=e.get(f);return t==null?!1:(n.focusDrawing(t),!0)}};var m=`@univerjs/drawing`,h=`0.20.1`;const g=`drawing.config`;Symbol(g);const _={};function v(e){"@babel/helpers - typeof";return v=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},v(e)}function y(e,t){if(v(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(v(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function b(e){var t=y(e,`string`);return v(t)==`symbol`?t:t+``}function x(e,t,n){return(t=b(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var S=function(e){return e.data=`data`,e.order=`order`,e}(S||{}),C=class{constructor(){x(this,`drawingManagerData`,{}),x(this,`_oldDrawingManagerData`,{}),x(this,`_focusDrawings`,[]),x(this,`_remove$`,new u.Subject),x(this,`remove$`,this._remove$.asObservable()),x(this,`_add$`,new u.Subject),x(this,`add$`,this._add$.asObservable()),x(this,`_update$`,new u.Subject),x(this,`update$`,this._update$.asObservable()),x(this,`_order$`,new u.Subject),x(this,`order$`,this._order$.asObservable()),x(this,`_group$`,new u.Subject),x(this,`group$`,this._group$.asObservable()),x(this,`_ungroup$`,new u.Subject),x(this,`ungroup$`,this._ungroup$.asObservable()),x(this,`_refreshTransform$`,new u.Subject),x(this,`refreshTransform$`,this._refreshTransform$.asObservable()),x(this,`_visible$`,new u.Subject),x(this,`visible$`,this._visible$.asObservable()),x(this,`_focus$`,new u.Subject),x(this,`focus$`,this._focus$.asObservable()),x(this,`_featurePluginUpdate$`,new u.Subject),x(this,`featurePluginUpdate$`,this._featurePluginUpdate$.asObservable()),x(this,`_featurePluginAdd$`,new u.Subject),x(this,`featurePluginAdd$`,this._featurePluginAdd$.asObservable()),x(this,`_featurePluginRemove$`,new u.Subject),x(this,`featurePluginRemove$`,this._featurePluginRemove$.asObservable()),x(this,`_featurePluginOrderUpdate$`,new u.Subject),x(this,`featurePluginOrderUpdate$`,this._featurePluginOrderUpdate$.asObservable()),x(this,`_featurePluginGroupUpdate$`,new u.Subject),x(this,`featurePluginGroupUpdate$`,this._featurePluginGroupUpdate$.asObservable()),x(this,`_featurePluginUngroupUpdate$`,new u.Subject),x(this,`featurePluginUngroupUpdate$`,this._featurePluginUngroupUpdate$.asObservable()),x(this,`_visible`,!0),x(this,`_editable`,!0)}dispose(){this._remove$.complete(),this._add$.complete(),this._update$.complete(),this._order$.complete(),this._focus$.complete(),this._featurePluginUpdate$.complete(),this._featurePluginAdd$.complete(),this._featurePluginRemove$.complete(),this._featurePluginOrderUpdate$.complete(),this.drawingManagerData={},this._oldDrawingManagerData={}}visibleNotification(e){this._visible$.next(e)}refreshTransform(e){e.forEach(e=>{let t=this._getCurrentBySearch(e);t!=null&&(t.transform=e.transform,t.transforms=e.transforms,t.isMultiTransform=e.isMultiTransform)}),this.refreshTransformNotification(e)}getDrawingDataForUnit(e){return this.drawingManagerData[e]||{}}removeDrawingDataForUnit(e){let t=this.drawingManagerData[e];if(t==null)return;delete this.drawingManagerData[e];let n=[];Object.keys(t).forEach(r=>{let i=t[r];(i==null?void 0:i.data)!=null&&Object.keys(i.data).forEach(t=>{n.push({unitId:e,subUnitId:r,drawingId:t})})}),n.length>0&&this.removeNotification(n)}registerDrawingData(e,t){this.drawingManagerData[e]=t}initializeNotification(e){let t=[],n=this.drawingManagerData[e];n!=null&&(Object.keys(n).forEach(r=>{this._establishDrawingMap(e,r);let i=n[r];Object.keys(i.data).forEach(n=>{let a=i.data[n];a.unitId=e,a.subUnitId=r,t.push(a)})}),t.length>0&&this.addNotification(t))}getDrawingData(e,t){return this._getDrawingData(e,t)}setDrawingData(e,t,n){this.drawingManagerData[e][t].data=n}getBatchAddOp(e){let t=[],n=[],r=[];e.forEach(e=>{let{op:i,invertOp:a}=this._addByParam(e);t.push({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}),n.push(i),r.push(a)});let i=n.reduce(l.type.compose,null),a=r.reduce(l.type.compose,null),{unitId:o,subUnitId:s}=e[0];return{undo:a,redo:i,unitId:o,subUnitId:s,objects:t}}getBatchRemoveOpInOder(e){if(e.length===0)return{undo:null,redo:null,unitId:``,subUnitId:``,objects:[]};let t=this.getDrawingOrder(e[0].unitId,e[0].subUnitId),n=new Map;return t.forEach((e,t)=>{n.set(e,t)}),e.sort((e,t)=>{var r,i;return((r=n.get(e.drawingId))==null?-1/0:r)-((i=n.get(t.drawingId))==null?-1/0:i)}),this.getBatchRemoveOp(e)}getBatchRemoveOp(e){var t;let n=new Set,r=[];e.forEach(e=>{let t=this.getDrawingByParam(e);if((t==null?void 0:t.drawingType)===c.DrawingTypeEnum.DRAWING_GROUP){let t=this.getDrawingsByGroupNested(e);if(t){let{flatChildren:e,groups:i}=t;[...e==null?[]:e,...i].forEach(e=>{n.has(e.drawingId)||(n.add(e.drawingId),r.push({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}))})}else n.has(e.drawingId)||(n.add(e.drawingId),r.push(e))}else n.has(e.drawingId)||(n.add(e.drawingId),r.push(e))});let{unitId:i,subUnitId:a}=(t=r[0])==null?e[0]:t,o=this._getDrawingOrder(i,a),s=new Map;o.forEach((e,t)=>s.set(e,t)),r.sort((e,t)=>{var n,r;return((n=s.get(e.drawingId))==null?-1/0:n)-((r=s.get(t.drawingId))==null?-1/0:r)});let u=[],d=[];r.forEach(e=>{let{op:t,invertOp:n}=this._removeByParam(e);u.unshift(t),d.push(n)});let f=u.reduce(l.type.compose,null);return{undo:d.reduce(l.type.compose,null),redo:f,unitId:i,subUnitId:a,objects:r}}getBatchUpdateOp(e){let t=[],n=[],r=[];e.forEach(e=>{let{op:i,invertOp:a}=this._updateByParam(e);t.push({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}),n.push(i),r.push(a)});let i=n.reduce(l.type.compose,null),a=r.reduce(l.type.compose,null),{unitId:o,subUnitId:s}=e[0];return{undo:a,redo:i,unitId:o,subUnitId:s,objects:t}}removeNotification(e){this._remove$.next(e)}addNotification(e){this._add$.next(e)}updateNotification(e){this._update$.next(e)}orderNotification(e){this._order$.next(e)}groupUpdateNotification(e){this._group$.next(e)}ungroupUpdateNotification(e){this._ungroup$.next(e)}refreshTransformNotification(e){this._refreshTransform$.next(e)}getGroupDrawingOp(e){let t=[],{unitId:n,subUnitId:r}=e[0].parent;e.forEach(e=>{t.push(this._getGroupDrawingOp(e))});let i=t.reduce(l.type.compose,null);return{undo:l.type.invertWithDoc(i,this.drawingManagerData),redo:i,unitId:n,subUnitId:r,objects:e}}getUngroupDrawingOp(e){let t=[],{unitId:n,subUnitId:r}=e[0].parent;e.forEach(e=>{t.push(this._getUngroupDrawingOp(e))});let i=t.reduce(l.type.compose,null);return{undo:l.type.invertWithDoc(i,this.drawingManagerData),redo:i,unitId:n,subUnitId:r,objects:e}}getDrawingsByGroup(e){let{unitId:t,subUnitId:n,drawingId:r}=e;if(this.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})==null)return[];let i=this._getDrawingData(t,n),a=[];return Object.keys(i).forEach(e=>{let t=i[e];t.groupId===r&&a.push(t)}),a}getDrawingsByGroupNested(e){let{unitId:t,subUnitId:n}=e,r=this.getDrawingByParam(e);if(!r)return null;let i=this._getDrawingData(t,n),a=new Map;Object.values(i).forEach(e=>{e.groupId!=null&&(a.has(e.groupId)||a.set(e.groupId,[]),a.get(e.groupId).push(e.drawingId))});let o=[],s=[],l={},u=e=>{var t;let{drawingId:n}=e,r=(t=a.get(n))==null?[]:t;l[n]={drawingId:n,children:r},r.forEach(e=>{let t=i[e];t&&(t.drawingType===c.DrawingTypeEnum.DRAWING_GROUP?(u(t),s.push(t)):o.push(t))})};return u(r),s.push(r),{nestedIdRecord:l,flatChildren:o,groups:s}}_getGroupDrawingOp(e){let{parent:t,children:n}=e,{unitId:r,subUnitId:i,drawingId:a}=t,o=[];o.push(l.insertOp([r,i,S.data,a],t));let s=-1/0;return n.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=this._hasDrawingOrder({unitId:t,subUnitId:n,drawingId:r});s=Math.max(s,i),o.push(...this._getUpdateParamCompareOp(e,this.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})))}),s===-1/0&&(s=this._getDrawingOrder(r,i).length),o.push(l.insertOp([r,i,S.order,s],a)),o.reduce(l.type.compose,null)}_getUngroupDrawingOp(e){let{parent:t,children:n}=e,{unitId:r,subUnitId:i,drawingId:a}=t,o=[];return n.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e;o.push(...this._getUpdateParamCompareOp(e,this.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})))}),o.push(l.removeOp([r,i,S.data,a],!0)),o.push(l.removeOp([r,i,S.order,this._getDrawingOrder(r,i).indexOf(a)],!0)),o.reduce(l.type.compose,null)}applyJson1(e,t,n){this._establishDrawingMap(e,t),this._oldDrawingManagerData={...this.drawingManagerData},this.drawingManagerData=l.type.apply(this.drawingManagerData,n)}featurePluginUpdateNotification(e){this._featurePluginUpdate$.next(e)}featurePluginOrderUpdateNotification(e){this._featurePluginOrderUpdate$.next(e)}featurePluginAddNotification(e){this._featurePluginAdd$.next(e)}featurePluginRemoveNotification(e){this._featurePluginRemove$.next(e)}featurePluginGroupUpdateNotification(e){this._featurePluginGroupUpdate$.next(e)}featurePluginUngroupUpdateNotification(e){this._featurePluginUngroupUpdate$.next(e)}getDrawingByParam(e){return this._getCurrentBySearch(e)}getOldDrawingByParam(e){return this._getOldBySearch(e)}getDrawingOKey(e){let[t,n,r]=e.split(`#-#`);return this._getCurrentBySearch({unitId:t,subUnitId:n,drawingId:r})}focusDrawing(e){if(e==null||e.length===0){this._focusDrawings=[],this._focus$.next([]);return}let t=[];e.forEach(e=>{var n;let{unitId:r,subUnitId:i,drawingId:a}=e,o=(n=this._getDrawingData(r,i))==null?void 0:n[a];o!=null&&t.push(o)}),t.length>0&&(this._focusDrawings=t,this._focus$.next(t))}getFocusDrawings(){let e=[];return this._focusDrawings.forEach(t=>{var n;let{unitId:r,subUnitId:i,drawingId:a}=t,o=(n=this._getDrawingData(r,i))==null?void 0:n[a];o!=null&&e.push(o)}),e}getDrawingOrder(e,t){return this._getDrawingOrder(e,t)}setDrawingOrder(e,t,n){this.drawingManagerData[e][t].order=n}orderUpdateNotification(e){this._order$.next(e)}getForwardDrawingsOp(e){let{unitId:t,subUnitId:n,drawingIds:r}=e,i=[],a=this.getDrawingOrder(t,n),o=[...r];r.forEach(e=>{let r=this._hasDrawingOrder({unitId:t,subUnitId:n,drawingId:e});if(r===-1||r===a.length-1)return;let s=l.moveOp([t,n,S.order,r],[t,n,S.order,r+1]);i.push(s),o.includes(a[r+1])||o.push(a[r+1])});let s=i.reduce(l.type.compose,null);return{undo:l.type.invertWithDoc(s,this.drawingManagerData),redo:s,unitId:t,subUnitId:n,objects:{...e,drawingIds:o}}}getBackwardDrawingOp(e){let{unitId:t,subUnitId:n,drawingIds:r}=e,i=[],a=this.getDrawingOrder(t,n),o=[...r];r.forEach(e=>{let r=this._hasDrawingOrder({unitId:t,subUnitId:n,drawingId:e});if(r===-1||r===0)return;let s=l.moveOp([t,n,S.order,r],[t,n,S.order,r-1]);i.push(s),o.includes(a[r-1])||o.push(a[r-1])});let s=i.reduce(l.type.compose,null);return{undo:l.type.invertWithDoc(s,this.drawingManagerData),redo:s,unitId:t,subUnitId:n,objects:{...e,drawingIds:o}}}getFrontDrawingsOp(e){let{unitId:t,subUnitId:n,drawingIds:r}=e,i=this._getOrderFromSearchParams(t,n,r),a=[...r],o=this.getDrawingOrder(t,n),s=[];i.forEach(e=>{let{drawingId:r}=e,i=this._getDrawingCount(t,n)-1,c=l.moveOp([t,n,S.order,this._getDrawingOrder(t,n).indexOf(r)],[t,n,S.order,i]);s.push(c),a.includes(o[i])||a.push(o[i])});let c=s.reduce(l.type.compose,null);return{undo:l.type.invertWithDoc(c,this.drawingManagerData),redo:c,unitId:t,subUnitId:n,objects:{...e,drawingIds:a}}}getBackDrawingsOp(e){let{unitId:t,subUnitId:n,drawingIds:r}=e,i=this._getOrderFromSearchParams(t,n,r,!0),a=[...r],o=this.getDrawingOrder(t,n),s=[];i.forEach(e=>{let{drawingId:r}=e,i=l.moveOp([t,n,S.order,this._getDrawingOrder(t,n).indexOf(r)],[t,n,S.order,0]);s.push(i),a.includes(o[0])||a.push(o[0])});let c=s.reduce(l.type.compose,null);return{undo:l.type.invertWithDoc(c,this.drawingManagerData),redo:c,unitId:t,subUnitId:n,objects:{...e,drawingIds:a}}}_getDrawingCount(e,t){return this.getDrawingOrder(e,t).length||0}_getOrderFromSearchParams(e,t,n,r=!1){return n.map(n=>({drawingId:n,zIndex:this._hasDrawingOrder({unitId:e,subUnitId:t,drawingId:n})})).sort(r===!1?c.sortRules:c.sortRulesByDesc)}_hasDrawingOrder(e){if(e==null)return-1;let{unitId:t,subUnitId:n,drawingId:r}=e;return this._establishDrawingMap(t,n),this._getDrawingOrder(t,n).indexOf(r)}_getCurrentBySearch(e){var t;if(e==null)return;let{unitId:n,subUnitId:r,drawingId:i}=e;return(t=this.drawingManagerData[n])==null||(t=t[r])==null||(t=t.data)==null?void 0:t[i]}_getOldBySearch(e){var t;if(e==null)return;let{unitId:n,subUnitId:r,drawingId:i}=e;return(t=this._oldDrawingManagerData[n])==null||(t=t[r])==null||(t=t.data)==null?void 0:t[i]}_establishDrawingMap(e,t,n){var r;return this.drawingManagerData[e]||(this.drawingManagerData[e]={}),this.drawingManagerData[e][t]||(this.drawingManagerData[e][t]={data:{},order:[]}),n==null?null:(r=this.drawingManagerData[e][t].data)==null?void 0:r[n]}_addByParam(e){let{unitId:t,subUnitId:n,drawingId:r}=e;this._establishDrawingMap(t,n,r);let i=[l.insertOp([t,n,S.data,r],e),l.insertOp([t,n,S.order,this._getDrawingOrder(t,n).length],r)].reduce(l.type.compose,null);return{op:i,invertOp:l.type.invertWithDoc(i,this.drawingManagerData)}}_removeByParam(e){if(e==null)return{op:[],invertOp:[]};let{unitId:t,subUnitId:n,drawingId:r}=e;if(this._establishDrawingMap(t,n,r)==null)return{op:[],invertOp:[]};let i=[l.removeOp([t,n,S.data,r],!0),l.removeOp([t,n,S.order,this._getDrawingOrder(t,n).indexOf(r)],!0)].reduce(l.type.compose,null);return{op:i,invertOp:l.type.invertWithDoc(i,this.drawingManagerData)}}_updateByParam(e){let{unitId:t,subUnitId:n,drawingId:r}=e,i=this._establishDrawingMap(t,n,r);if(i==null)return{op:[],invertOp:[]};let a=this._getUpdateParamCompareOp(e,i).reduce(l.type.compose,null);return{op:a,invertOp:l.type.invertWithDoc(a,this.drawingManagerData)}}_getUpdateParamCompareOp(e,t){let{unitId:n,subUnitId:r,drawingId:i}=e,a=[];return Object.keys(e).forEach(o=>{let s=e[o],c=t[o];c!==s&&a.push(l.replaceOp([n,r,S.data,i,o],c,s))}),a}_getDrawingData(e,t){var n;return((n=this.drawingManagerData[e])==null||(n=n[t])==null?void 0:n.data)||{}}_getDrawingOrder(e,t){var n;return((n=this.drawingManagerData[e])==null||(n=n[t])==null?void 0:n.order)||[]}getDrawingVisible(){return this._visible}getDrawingEditable(){return this._editable}setDrawingVisible(e){this._visible=e}setDrawingEditable(e){this._editable=e}},w=class extends C{},T=class{constructor(){x(this,`_waitCount`,0),x(this,`_change$`,new u.Subject),x(this,`change$`,this._change$),x(this,`_imageSourceCache`,new Map)}setWaitCount(e){this._waitCount=e,this._change$.next(e)}getImageSourceCache(e,t){if(t===c.ImageSourceType.BASE64){let t=new Image;return t.src=e,t}return this._imageSourceCache.get(e)}addImageSourceCache(e,t,n){t===c.ImageSourceType.BASE64||n==null||this._imageSourceCache.set(e,n)}async getImage(e){return Promise.resolve(e)}async saveImage(e){return new Promise((t,n)=>{if(!d.includes(e.type)){n(Error(c.ImageUploadStatusType.ERROR_IMAGE_TYPE)),this._decreaseWaiting();return}if(e.size>5242880){n(Error(c.ImageUploadStatusType.ERROR_EXCEED_SIZE)),this._decreaseWaiting();return}let r=new FileReader;r.readAsDataURL(e),r.onload=e=>{var r;let i=(r=e.target)==null?void 0:r.result;if(i==null){n(Error(c.ImageUploadStatusType.ERROR_IMAGE)),this._decreaseWaiting();return}t({imageId:(0,c.generateRandomId)(6),imageSourceType:c.ImageSourceType.BASE64,source:i,base64Cache:i,status:c.ImageUploadStatusType.SUCCUSS}),this._decreaseWaiting()}})}_decreaseWaiting(){--this._waitCount,this._change$.next(this._waitCount)}},E=class extends c.Disposable{constructor(...e){super(...e),x(this,`_urlImageDownloader`,null)}registerURLImageDownloader(e){return this._urlImageDownloader=e,(0,c.toDisposable)(()=>{this._urlImageDownloader=null})}async getImage(e){if(this._urlImageDownloader)try{return await this._urlImageDownloader(e)}catch(t){console.error(`Custom downloader failed for ${e}, falling back to default behavior:`,t)}return e}async downloadImage(e){if(this._urlImageDownloader)try{let t=await this._urlImageDownloader(e);return await(await fetch(t)).blob()}catch(t){console.error(`Custom downloader failed for ${e}, falling back to default fetch:`,t)}return await(await fetch(e)).blob()}};function D(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 k=class extends c.Plugin{constructor(e=_,t,n,r){super(),this._config=e,this._injector=t,this._configService=n,this._commandService=r;let{...i}=(0,c.merge)({},_,this._config);this._configService.setConfig(g,i)}onStarting(){this._initCommands(),this._initDependencies()}_initDependencies(){var e;(0,c.mergeOverrideWithDependencies)([[c.IImageIoService,{useClass:T}],[c.IURLImageService,{useClass:E}],[f,{useClass:w}]],(e=this._config)==null?void 0:e.override).forEach(e=>this._injector.add(e))}_initCommands(){[p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};x(k,`pluginName`,`UNIVER_DRAWING_PLUGIN`),x(k,`packageName`,m),x(k,`version`,h),k=O([D(1,(0,c.Inject)(c.Injector)),D(2,c.IConfigService),D(3,c.ICommandService)],k);function A({unitId:e,subUnitId:t,drawingId:n},r){return typeof r==`number`?`${e}#-#${t}#-#${n}#-#${r}`:`${e}#-#${t}#-#${n}`}const j=async e=>new Promise((t,n)=>{let r=new Image;r.src=e,r.onload=()=>{t({width:r.width,height:r.height,image:r})},r.onerror=e=>{n(e)}});exports.DRAWING_IMAGE_ALLOW_IMAGE_LIST=d,exports.DRAWING_IMAGE_ALLOW_SIZE=5242880,exports.DRAWING_IMAGE_COUNT_LIMIT=10,exports.DRAWING_IMAGE_HEIGHT_LIMIT=500,exports.DRAWING_IMAGE_WIDTH_LIMIT=500,exports.DrawingManagerService=w,exports.IDrawingManagerService=f,Object.defineProperty(exports,`IImageIoService`,{enumerable:!0,get:function(){return c.IImageIoService}}),exports.ImageIoService=T,Object.defineProperty(exports,`ImageSourceType`,{enumerable:!0,get:function(){return c.ImageSourceType}}),Object.defineProperty(exports,`ImageUploadStatusType`,{enumerable:!0,get:function(){return c.ImageUploadStatusType}}),exports.SetDrawingSelectedOperation=p,exports.URLImageService=E,exports.UnitDrawingService=C,Object.defineProperty(exports,`UniverDrawingPlugin`,{enumerable:!0,get:function(){return k}}),exports.getDrawingShapeKeyByDrawingSearch=A,exports.getImageSize=j;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ //#region \0rolldown/runtime.js
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
12
+ key = keys[i];
13
+ if (!__hasOwnProp.call(to, key) && key !== except) {
14
+ __defProp(to, key, {
15
+ get: ((k) => from[k]).bind(null, key),
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ }
20
+ }
21
+ return to;
22
+ };
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
26
+ }) : target, mod));
27
+
28
+ //#endregion
29
+ let _univerjs_core = require("@univerjs/core");
30
+ let ot_json1 = require("ot-json1");
31
+ ot_json1 = __toESM(ot_json1);
32
+ let rxjs = require("rxjs");
33
+
34
+ //#region src/basics/config.ts
35
+ /**
36
+ * Copyright 2023-present DreamNum Co., Ltd.
37
+ *
38
+ * Licensed under the Apache License, Version 2.0 (the "License");
39
+ * you may not use this file except in compliance with the License.
40
+ * You may obtain a copy of the License at
41
+ *
42
+ * http://www.apache.org/licenses/LICENSE-2.0
43
+ *
44
+ * Unless required by applicable law or agreed to in writing, software
45
+ * distributed under the License is distributed on an "AS IS" BASIS,
46
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
47
+ * See the License for the specific language governing permissions and
48
+ * limitations under the License.
49
+ */
50
+ const DRAWING_IMAGE_WIDTH_LIMIT = 500;
51
+ const DRAWING_IMAGE_HEIGHT_LIMIT = 500;
52
+ const DRAWING_IMAGE_COUNT_LIMIT = 10;
53
+ const DRAWING_IMAGE_ALLOW_SIZE = 5 * 1024 * 1024;
54
+ const DRAWING_IMAGE_ALLOW_IMAGE_LIST = [
55
+ "image/png",
56
+ "image/jpeg",
57
+ "image/jpg",
58
+ "image/gif",
59
+ "image/bmp"
60
+ ];
61
+
62
+ //#endregion
63
+ //#region src/services/drawing-manager.service.ts
64
+ const IDrawingManagerService = (0, _univerjs_core.createIdentifier)("univer.drawing-manager.service");
65
+
66
+ //#endregion
67
+ //#region src/commands/operations/set-drawing-selected.operation.ts
68
+ const SetDrawingSelectedOperation = {
69
+ id: "drawing.operation.set-drawing-selected",
70
+ type: _univerjs_core.CommandType.OPERATION,
71
+ handler: (accessor, params) => {
72
+ const drawingManagerService = accessor.get(IDrawingManagerService);
73
+ if (params == null) return false;
74
+ drawingManagerService.focusDrawing(params);
75
+ return true;
76
+ }
77
+ };
78
+
79
+ //#endregion
80
+ //#region package.json
81
+ var name = "@univerjs/drawing";
82
+ var version = "0.21.0";
83
+
84
+ //#endregion
85
+ //#region src/config/config.ts
86
+ const DRAWING_PLUGIN_CONFIG_KEY = "drawing.config";
87
+ const configSymbol = Symbol(DRAWING_PLUGIN_CONFIG_KEY);
88
+ const defaultPluginConfig = {};
89
+
90
+ //#endregion
91
+ //#region \0@oxc-project+runtime@0.124.0/helpers/typeof.js
92
+ function _typeof(o) {
93
+ "@babel/helpers - typeof";
94
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
95
+ return typeof o;
96
+ } : function(o) {
97
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
98
+ }, _typeof(o);
99
+ }
100
+
101
+ //#endregion
102
+ //#region \0@oxc-project+runtime@0.124.0/helpers/toPrimitive.js
103
+ function toPrimitive(t, r) {
104
+ if ("object" != _typeof(t) || !t) return t;
105
+ var e = t[Symbol.toPrimitive];
106
+ if (void 0 !== e) {
107
+ var i = e.call(t, r || "default");
108
+ if ("object" != _typeof(i)) return i;
109
+ throw new TypeError("@@toPrimitive must return a primitive value.");
110
+ }
111
+ return ("string" === r ? String : Number)(t);
112
+ }
113
+
114
+ //#endregion
115
+ //#region \0@oxc-project+runtime@0.124.0/helpers/toPropertyKey.js
116
+ function toPropertyKey(t) {
117
+ var i = toPrimitive(t, "string");
118
+ return "symbol" == _typeof(i) ? i : i + "";
119
+ }
120
+
121
+ //#endregion
122
+ //#region \0@oxc-project+runtime@0.124.0/helpers/defineProperty.js
123
+ function _defineProperty(e, r, t) {
124
+ return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
125
+ value: t,
126
+ enumerable: !0,
127
+ configurable: !0,
128
+ writable: !0
129
+ }) : e[r] = t, e;
130
+ }
131
+
132
+ //#endregion
133
+ //#region src/services/drawing-manager-impl.service.ts
134
+ var DrawingMapItemType = /* @__PURE__ */ function(DrawingMapItemType) {
135
+ DrawingMapItemType["data"] = "data";
136
+ DrawingMapItemType["order"] = "order";
137
+ return DrawingMapItemType;
138
+ }(DrawingMapItemType || {});
139
+ /**
140
+ * unitId -> subUnitId -> drawingId -> drawingParam
141
+ */
142
+ var UnitDrawingService = class {
143
+ constructor() {
144
+ _defineProperty(this, "drawingManagerData", {});
145
+ _defineProperty(this, "_oldDrawingManagerData", {});
146
+ _defineProperty(this, "_focusDrawings", []);
147
+ _defineProperty(this, "_remove$", new rxjs.Subject());
148
+ _defineProperty(this, "remove$", this._remove$.asObservable());
149
+ _defineProperty(this, "_add$", new rxjs.Subject());
150
+ _defineProperty(this, "add$", this._add$.asObservable());
151
+ _defineProperty(this, "_update$", new rxjs.Subject());
152
+ _defineProperty(this, "update$", this._update$.asObservable());
153
+ _defineProperty(this, "_order$", new rxjs.Subject());
154
+ _defineProperty(this, "order$", this._order$.asObservable());
155
+ _defineProperty(this, "_group$", new rxjs.Subject());
156
+ _defineProperty(this, "group$", this._group$.asObservable());
157
+ _defineProperty(this, "_ungroup$", new rxjs.Subject());
158
+ _defineProperty(this, "ungroup$", this._ungroup$.asObservable());
159
+ _defineProperty(this, "_refreshTransform$", new rxjs.Subject());
160
+ _defineProperty(this, "refreshTransform$", this._refreshTransform$.asObservable());
161
+ _defineProperty(this, "_visible$", new rxjs.Subject());
162
+ _defineProperty(this, "visible$", this._visible$.asObservable());
163
+ _defineProperty(this, "_focus$", new rxjs.Subject());
164
+ _defineProperty(this, "focus$", this._focus$.asObservable());
165
+ _defineProperty(this, "_featurePluginUpdate$", new rxjs.Subject());
166
+ _defineProperty(this, "featurePluginUpdate$", this._featurePluginUpdate$.asObservable());
167
+ _defineProperty(this, "_featurePluginAdd$", new rxjs.Subject());
168
+ _defineProperty(this, "featurePluginAdd$", this._featurePluginAdd$.asObservable());
169
+ _defineProperty(this, "_featurePluginRemove$", new rxjs.Subject());
170
+ _defineProperty(this, "featurePluginRemove$", this._featurePluginRemove$.asObservable());
171
+ _defineProperty(this, "_featurePluginOrderUpdate$", new rxjs.Subject());
172
+ _defineProperty(this, "featurePluginOrderUpdate$", this._featurePluginOrderUpdate$.asObservable());
173
+ _defineProperty(this, "_featurePluginGroupUpdate$", new rxjs.Subject());
174
+ _defineProperty(this, "featurePluginGroupUpdate$", this._featurePluginGroupUpdate$.asObservable());
175
+ _defineProperty(this, "_featurePluginUngroupUpdate$", new rxjs.Subject());
176
+ _defineProperty(this, "featurePluginUngroupUpdate$", this._featurePluginUngroupUpdate$.asObservable());
177
+ _defineProperty(this, "_visible", true);
178
+ _defineProperty(this, "_editable", true);
179
+ }
180
+ dispose() {
181
+ this._remove$.complete();
182
+ this._add$.complete();
183
+ this._update$.complete();
184
+ this._order$.complete();
185
+ this._focus$.complete();
186
+ this._featurePluginUpdate$.complete();
187
+ this._featurePluginAdd$.complete();
188
+ this._featurePluginRemove$.complete();
189
+ this._featurePluginOrderUpdate$.complete();
190
+ this.drawingManagerData = {};
191
+ this._oldDrawingManagerData = {};
192
+ }
193
+ visibleNotification(visibleParams) {
194
+ this._visible$.next(visibleParams);
195
+ }
196
+ refreshTransform(updateParams) {
197
+ updateParams.forEach((updateParam) => {
198
+ const param = this._getCurrentBySearch(updateParam);
199
+ if (param == null) return;
200
+ param.transform = updateParam.transform;
201
+ param.transforms = updateParam.transforms;
202
+ param.isMultiTransform = updateParam.isMultiTransform;
203
+ });
204
+ this.refreshTransformNotification(updateParams);
205
+ }
206
+ getDrawingDataForUnit(unitId) {
207
+ return this.drawingManagerData[unitId] || {};
208
+ }
209
+ removeDrawingDataForUnit(unitId) {
210
+ const subUnits = this.drawingManagerData[unitId];
211
+ if (subUnits == null) return;
212
+ delete this.drawingManagerData[unitId];
213
+ const drawings = [];
214
+ Object.keys(subUnits).forEach((subUnitId) => {
215
+ const subUnit = subUnits[subUnitId];
216
+ if ((subUnit === null || subUnit === void 0 ? void 0 : subUnit.data) == null) return;
217
+ Object.keys(subUnit.data).forEach((drawingId) => {
218
+ drawings.push({
219
+ unitId,
220
+ subUnitId,
221
+ drawingId
222
+ });
223
+ });
224
+ });
225
+ if (drawings.length > 0) this.removeNotification(drawings);
226
+ }
227
+ registerDrawingData(unitId, data) {
228
+ this.drawingManagerData[unitId] = data;
229
+ }
230
+ initializeNotification(unitId) {
231
+ const drawings = [];
232
+ const data = this.drawingManagerData[unitId];
233
+ if (data == null) return;
234
+ Object.keys(data).forEach((subUnitId) => {
235
+ this._establishDrawingMap(unitId, subUnitId);
236
+ const subUnitData = data[subUnitId];
237
+ Object.keys(subUnitData.data).forEach((drawingId) => {
238
+ const drawing = subUnitData.data[drawingId];
239
+ drawing.unitId = unitId;
240
+ drawing.subUnitId = subUnitId;
241
+ drawings.push(drawing);
242
+ });
243
+ });
244
+ if (drawings.length > 0) this.addNotification(drawings);
245
+ }
246
+ getDrawingData(unitId, subUnitId) {
247
+ return this._getDrawingData(unitId, subUnitId);
248
+ }
249
+ setDrawingData(unitId, subUnitId, data) {
250
+ this.drawingManagerData[unitId][subUnitId].data = data;
251
+ }
252
+ getBatchAddOp(insertParams) {
253
+ const objects = [];
254
+ const ops = [];
255
+ const invertOps = [];
256
+ insertParams.forEach((insertParam) => {
257
+ const { op, invertOp } = this._addByParam(insertParam);
258
+ objects.push({
259
+ unitId: insertParam.unitId,
260
+ subUnitId: insertParam.subUnitId,
261
+ drawingId: insertParam.drawingId
262
+ });
263
+ ops.push(op);
264
+ invertOps.push(invertOp);
265
+ });
266
+ const op = ops.reduce(ot_json1.type.compose, null);
267
+ const invertOp = invertOps.reduce(ot_json1.type.compose, null);
268
+ const { unitId, subUnitId } = insertParams[0];
269
+ return {
270
+ undo: invertOp,
271
+ redo: op,
272
+ unitId,
273
+ subUnitId,
274
+ objects
275
+ };
276
+ }
277
+ getBatchRemoveOpInOder(removeParams) {
278
+ if (removeParams.length === 0) return {
279
+ undo: null,
280
+ redo: null,
281
+ unitId: "",
282
+ subUnitId: "",
283
+ objects: []
284
+ };
285
+ const orders = this.getDrawingOrder(removeParams[0].unitId, removeParams[0].subUnitId);
286
+ const orderIndexMap = /* @__PURE__ */ new Map();
287
+ orders.forEach((drawingId, index) => {
288
+ orderIndexMap.set(drawingId, index);
289
+ });
290
+ removeParams.sort((a, b) => {
291
+ var _orderIndexMap$get, _orderIndexMap$get2;
292
+ return ((_orderIndexMap$get = orderIndexMap.get(a.drawingId)) !== null && _orderIndexMap$get !== void 0 ? _orderIndexMap$get : Number.NEGATIVE_INFINITY) - ((_orderIndexMap$get2 = orderIndexMap.get(b.drawingId)) !== null && _orderIndexMap$get2 !== void 0 ? _orderIndexMap$get2 : Number.NEGATIVE_INFINITY);
293
+ });
294
+ return this.getBatchRemoveOp(removeParams);
295
+ }
296
+ getBatchRemoveOp(removeParams) {
297
+ var _allToRemove$;
298
+ const seenIds = /* @__PURE__ */ new Set();
299
+ const allToRemove = [];
300
+ removeParams.forEach((removeParam) => {
301
+ const drawing = this.getDrawingByParam(removeParam);
302
+ if ((drawing === null || drawing === void 0 ? void 0 : drawing.drawingType) === _univerjs_core.DrawingTypeEnum.DRAWING_GROUP) {
303
+ const nested = this.getDrawingsByGroupNested(removeParam);
304
+ if (nested) {
305
+ const { flatChildren, groups } = nested;
306
+ [...flatChildren !== null && flatChildren !== void 0 ? flatChildren : [], ...groups].forEach((d) => {
307
+ if (!seenIds.has(d.drawingId)) {
308
+ seenIds.add(d.drawingId);
309
+ allToRemove.push({
310
+ unitId: d.unitId,
311
+ subUnitId: d.subUnitId,
312
+ drawingId: d.drawingId
313
+ });
314
+ }
315
+ });
316
+ } else if (!seenIds.has(removeParam.drawingId)) {
317
+ seenIds.add(removeParam.drawingId);
318
+ allToRemove.push(removeParam);
319
+ }
320
+ } else if (!seenIds.has(removeParam.drawingId)) {
321
+ seenIds.add(removeParam.drawingId);
322
+ allToRemove.push(removeParam);
323
+ }
324
+ });
325
+ const { unitId, subUnitId } = (_allToRemove$ = allToRemove[0]) !== null && _allToRemove$ !== void 0 ? _allToRemove$ : removeParams[0];
326
+ const orderArr = this._getDrawingOrder(unitId, subUnitId);
327
+ const orderIndexMap = /* @__PURE__ */ new Map();
328
+ orderArr.forEach((id, idx) => orderIndexMap.set(id, idx));
329
+ allToRemove.sort((a, b) => {
330
+ var _orderIndexMap$get3, _orderIndexMap$get4;
331
+ return ((_orderIndexMap$get3 = orderIndexMap.get(a.drawingId)) !== null && _orderIndexMap$get3 !== void 0 ? _orderIndexMap$get3 : Number.NEGATIVE_INFINITY) - ((_orderIndexMap$get4 = orderIndexMap.get(b.drawingId)) !== null && _orderIndexMap$get4 !== void 0 ? _orderIndexMap$get4 : Number.NEGATIVE_INFINITY);
332
+ });
333
+ const ops = [];
334
+ const invertOps = [];
335
+ allToRemove.forEach((removeParam) => {
336
+ const { op, invertOp } = this._removeByParam(removeParam);
337
+ /**
338
+ * ot-json compose case
339
+ * two remove ops to does composition
340
+ * ops: [[unit, sheetUnit, order, 0, { r: true }], [unit, sheetUnit, order, 1, { r: true }]]
341
+ * We expected them to composed as [unit, sheetUnit, order, [0, { r: true }], [1, { r: true }]]
342
+ * But extremely confusing to get [unit, sheetUnit, order, 0, { r: true }, 2, { r: true }]
343
+ * And We apply this composed op to data, it's no item with index 2 can be removed.
344
+ * So use unshift api instead of push here.
345
+ */
346
+ ops.unshift(op);
347
+ invertOps.push(invertOp);
348
+ });
349
+ const op = ops.reduce(ot_json1.type.compose, null);
350
+ return {
351
+ undo: invertOps.reduce(ot_json1.type.compose, null),
352
+ redo: op,
353
+ unitId,
354
+ subUnitId,
355
+ objects: allToRemove
356
+ };
357
+ }
358
+ getBatchUpdateOp(updateParams) {
359
+ const objects = [];
360
+ const ops = [];
361
+ const invertOps = [];
362
+ updateParams.forEach((updateParam) => {
363
+ const { op, invertOp } = this._updateByParam(updateParam);
364
+ objects.push({
365
+ unitId: updateParam.unitId,
366
+ subUnitId: updateParam.subUnitId,
367
+ drawingId: updateParam.drawingId
368
+ });
369
+ ops.push(op);
370
+ invertOps.push(invertOp);
371
+ });
372
+ const op = ops.reduce(ot_json1.type.compose, null);
373
+ const invertOp = invertOps.reduce(ot_json1.type.compose, null);
374
+ const { unitId, subUnitId } = updateParams[0];
375
+ return {
376
+ undo: invertOp,
377
+ redo: op,
378
+ unitId,
379
+ subUnitId,
380
+ objects
381
+ };
382
+ }
383
+ removeNotification(removeParams) {
384
+ this._remove$.next(removeParams);
385
+ }
386
+ addNotification(insertParams) {
387
+ this._add$.next(insertParams);
388
+ }
389
+ updateNotification(updateParams) {
390
+ this._update$.next(updateParams);
391
+ }
392
+ orderNotification(orderParams) {
393
+ this._order$.next(orderParams);
394
+ }
395
+ groupUpdateNotification(groupParams) {
396
+ this._group$.next(groupParams);
397
+ }
398
+ ungroupUpdateNotification(groupParams) {
399
+ this._ungroup$.next(groupParams);
400
+ }
401
+ refreshTransformNotification(refreshParams) {
402
+ this._refreshTransform$.next(refreshParams);
403
+ }
404
+ getGroupDrawingOp(groupParams) {
405
+ const ops = [];
406
+ const { unitId, subUnitId } = groupParams[0].parent;
407
+ groupParams.forEach((groupParam) => {
408
+ ops.push(this._getGroupDrawingOp(groupParam));
409
+ });
410
+ const op = ops.reduce(ot_json1.type.compose, null);
411
+ return {
412
+ undo: ot_json1.type.invertWithDoc(op, this.drawingManagerData),
413
+ redo: op,
414
+ unitId,
415
+ subUnitId,
416
+ objects: groupParams
417
+ };
418
+ }
419
+ getUngroupDrawingOp(groupParams) {
420
+ const ops = [];
421
+ const { unitId, subUnitId } = groupParams[0].parent;
422
+ groupParams.forEach((groupParam) => {
423
+ ops.push(this._getUngroupDrawingOp(groupParam));
424
+ });
425
+ const op = ops.reduce(ot_json1.type.compose, null);
426
+ return {
427
+ undo: ot_json1.type.invertWithDoc(op, this.drawingManagerData),
428
+ redo: op,
429
+ unitId,
430
+ subUnitId,
431
+ objects: groupParams
432
+ };
433
+ }
434
+ getDrawingsByGroup(groupParam) {
435
+ const { unitId, subUnitId, drawingId } = groupParam;
436
+ if (this.getDrawingByParam({
437
+ unitId,
438
+ subUnitId,
439
+ drawingId
440
+ }) == null) return [];
441
+ const drawings = this._getDrawingData(unitId, subUnitId);
442
+ const children = [];
443
+ Object.keys(drawings).forEach((key) => {
444
+ const drawing = drawings[key];
445
+ if (drawing.groupId === drawingId) children.push(drawing);
446
+ });
447
+ return children;
448
+ }
449
+ getDrawingsByGroupNested(groupSearch) {
450
+ const { unitId, subUnitId } = groupSearch;
451
+ const rootParam = this.getDrawingByParam(groupSearch);
452
+ if (!rootParam) return null;
453
+ const allDrawings = this._getDrawingData(unitId, subUnitId);
454
+ const groupDerivedDrawingsIdMap = /* @__PURE__ */ new Map();
455
+ Object.values(allDrawings).forEach((drawing) => {
456
+ if (drawing.groupId != null) {
457
+ if (!groupDerivedDrawingsIdMap.has(drawing.groupId)) groupDerivedDrawingsIdMap.set(drawing.groupId, []);
458
+ groupDerivedDrawingsIdMap.get(drawing.groupId).push(drawing.drawingId);
459
+ }
460
+ });
461
+ const flatChildren = [];
462
+ const groups = [];
463
+ const nestedIdRecord = {};
464
+ const dfs = (param) => {
465
+ var _groupDerivedDrawings;
466
+ const { drawingId } = param;
467
+ const childrenIds = (_groupDerivedDrawings = groupDerivedDrawingsIdMap.get(drawingId)) !== null && _groupDerivedDrawings !== void 0 ? _groupDerivedDrawings : [];
468
+ nestedIdRecord[drawingId] = {
469
+ drawingId,
470
+ children: childrenIds
471
+ };
472
+ childrenIds.forEach((childId) => {
473
+ const childParam = allDrawings[childId];
474
+ if (!childParam) return;
475
+ if (childParam.drawingType === _univerjs_core.DrawingTypeEnum.DRAWING_GROUP) {
476
+ dfs(childParam);
477
+ groups.push(childParam);
478
+ } else flatChildren.push(childParam);
479
+ });
480
+ };
481
+ dfs(rootParam);
482
+ groups.push(rootParam);
483
+ return {
484
+ nestedIdRecord,
485
+ flatChildren,
486
+ groups
487
+ };
488
+ }
489
+ _getGroupDrawingOp(groupParam) {
490
+ const { parent, children } = groupParam;
491
+ const { unitId: groupUnitId, subUnitId: groupSubUnitId, drawingId: groupDrawingId } = parent;
492
+ const ops = [];
493
+ ops.push(ot_json1.insertOp([
494
+ groupUnitId,
495
+ groupSubUnitId,
496
+ DrawingMapItemType.data,
497
+ groupDrawingId
498
+ ], parent));
499
+ let maxChildIndex = Number.NEGATIVE_INFINITY;
500
+ children.forEach((child) => {
501
+ const { unitId, subUnitId, drawingId } = child;
502
+ const index = this._hasDrawingOrder({
503
+ unitId,
504
+ subUnitId,
505
+ drawingId
506
+ });
507
+ maxChildIndex = Math.max(maxChildIndex, index);
508
+ ops.push(...this._getUpdateParamCompareOp(child, this.getDrawingByParam({
509
+ unitId,
510
+ subUnitId,
511
+ drawingId
512
+ })));
513
+ });
514
+ if (maxChildIndex === Number.NEGATIVE_INFINITY) maxChildIndex = this._getDrawingOrder(groupUnitId, groupSubUnitId).length;
515
+ ops.push(ot_json1.insertOp([
516
+ groupUnitId,
517
+ groupSubUnitId,
518
+ DrawingMapItemType.order,
519
+ maxChildIndex
520
+ ], groupDrawingId));
521
+ return ops.reduce(ot_json1.type.compose, null);
522
+ }
523
+ _getUngroupDrawingOp(groupParam) {
524
+ const { parent, children } = groupParam;
525
+ const { unitId: groupUnitId, subUnitId: groupSubUnitId, drawingId: groupDrawingId } = parent;
526
+ const ops = [];
527
+ children.forEach((child) => {
528
+ const { unitId, subUnitId, drawingId } = child;
529
+ ops.push(...this._getUpdateParamCompareOp(child, this.getDrawingByParam({
530
+ unitId,
531
+ subUnitId,
532
+ drawingId
533
+ })));
534
+ });
535
+ ops.push(ot_json1.removeOp([
536
+ groupUnitId,
537
+ groupSubUnitId,
538
+ DrawingMapItemType.data,
539
+ groupDrawingId
540
+ ], true));
541
+ ops.push(ot_json1.removeOp([
542
+ groupUnitId,
543
+ groupSubUnitId,
544
+ DrawingMapItemType.order,
545
+ this._getDrawingOrder(groupUnitId, groupSubUnitId).indexOf(groupDrawingId)
546
+ ], true));
547
+ return ops.reduce(ot_json1.type.compose, null);
548
+ }
549
+ applyJson1(unitId, subUnitId, jsonOp) {
550
+ this._establishDrawingMap(unitId, subUnitId);
551
+ this._oldDrawingManagerData = { ...this.drawingManagerData };
552
+ this.drawingManagerData = ot_json1.type.apply(this.drawingManagerData, jsonOp);
553
+ }
554
+ featurePluginUpdateNotification(updateParams) {
555
+ this._featurePluginUpdate$.next(updateParams);
556
+ }
557
+ featurePluginOrderUpdateNotification(drawingOrderUpdateParam) {
558
+ this._featurePluginOrderUpdate$.next(drawingOrderUpdateParam);
559
+ }
560
+ featurePluginAddNotification(insertParams) {
561
+ this._featurePluginAdd$.next(insertParams);
562
+ }
563
+ featurePluginRemoveNotification(removeParams) {
564
+ this._featurePluginRemove$.next(removeParams);
565
+ }
566
+ featurePluginGroupUpdateNotification(groupParams) {
567
+ this._featurePluginGroupUpdate$.next(groupParams);
568
+ }
569
+ featurePluginUngroupUpdateNotification(groupParams) {
570
+ this._featurePluginUngroupUpdate$.next(groupParams);
571
+ }
572
+ getDrawingByParam(param) {
573
+ return this._getCurrentBySearch(param);
574
+ }
575
+ getOldDrawingByParam(param) {
576
+ return this._getOldBySearch(param);
577
+ }
578
+ getDrawingOKey(oKey) {
579
+ const [unitId, subUnitId, drawingId] = oKey.split("#-#");
580
+ return this._getCurrentBySearch({
581
+ unitId,
582
+ subUnitId,
583
+ drawingId
584
+ });
585
+ }
586
+ focusDrawing(params) {
587
+ if (params == null || params.length === 0) {
588
+ this._focusDrawings = [];
589
+ this._focus$.next([]);
590
+ return;
591
+ }
592
+ const drawingParams = [];
593
+ params.forEach((param) => {
594
+ var _this$_getDrawingData;
595
+ const { unitId, subUnitId, drawingId } = param;
596
+ const item = (_this$_getDrawingData = this._getDrawingData(unitId, subUnitId)) === null || _this$_getDrawingData === void 0 ? void 0 : _this$_getDrawingData[drawingId];
597
+ if (item != null) drawingParams.push(item);
598
+ });
599
+ if (drawingParams.length > 0) {
600
+ this._focusDrawings = drawingParams;
601
+ this._focus$.next(drawingParams);
602
+ }
603
+ }
604
+ getFocusDrawings() {
605
+ const drawingParams = [];
606
+ this._focusDrawings.forEach((param) => {
607
+ var _this$_getDrawingData2;
608
+ const { unitId, subUnitId, drawingId } = param;
609
+ const item = (_this$_getDrawingData2 = this._getDrawingData(unitId, subUnitId)) === null || _this$_getDrawingData2 === void 0 ? void 0 : _this$_getDrawingData2[drawingId];
610
+ if (item != null) drawingParams.push(item);
611
+ });
612
+ return drawingParams;
613
+ }
614
+ getDrawingOrder(unitId, subUnitId) {
615
+ return this._getDrawingOrder(unitId, subUnitId);
616
+ }
617
+ setDrawingOrder(unitId, subUnitId, order) {
618
+ this.drawingManagerData[unitId][subUnitId].order = order;
619
+ }
620
+ orderUpdateNotification(orderParams) {
621
+ this._order$.next(orderParams);
622
+ }
623
+ getForwardDrawingsOp(orderParams) {
624
+ const { unitId, subUnitId, drawingIds } = orderParams;
625
+ const ops = [];
626
+ const orders = this.getDrawingOrder(unitId, subUnitId);
627
+ const newIds = [...drawingIds];
628
+ drawingIds.forEach((drawingId) => {
629
+ const index = this._hasDrawingOrder({
630
+ unitId,
631
+ subUnitId,
632
+ drawingId
633
+ });
634
+ if (index === -1 || index === orders.length - 1) return;
635
+ const op = ot_json1.moveOp([
636
+ unitId,
637
+ subUnitId,
638
+ DrawingMapItemType.order,
639
+ index
640
+ ], [
641
+ unitId,
642
+ subUnitId,
643
+ DrawingMapItemType.order,
644
+ index + 1
645
+ ]);
646
+ ops.push(op);
647
+ if (!newIds.includes(orders[index + 1])) newIds.push(orders[index + 1]);
648
+ });
649
+ const op = ops.reduce(ot_json1.type.compose, null);
650
+ return {
651
+ undo: ot_json1.type.invertWithDoc(op, this.drawingManagerData),
652
+ redo: op,
653
+ unitId,
654
+ subUnitId,
655
+ objects: {
656
+ ...orderParams,
657
+ drawingIds: newIds
658
+ }
659
+ };
660
+ }
661
+ getBackwardDrawingOp(orderParams) {
662
+ const { unitId, subUnitId, drawingIds } = orderParams;
663
+ const ops = [];
664
+ const orders = this.getDrawingOrder(unitId, subUnitId);
665
+ const newIds = [...drawingIds];
666
+ drawingIds.forEach((drawingId) => {
667
+ const index = this._hasDrawingOrder({
668
+ unitId,
669
+ subUnitId,
670
+ drawingId
671
+ });
672
+ if (index === -1 || index === 0) return;
673
+ const op = ot_json1.moveOp([
674
+ unitId,
675
+ subUnitId,
676
+ DrawingMapItemType.order,
677
+ index
678
+ ], [
679
+ unitId,
680
+ subUnitId,
681
+ DrawingMapItemType.order,
682
+ index - 1
683
+ ]);
684
+ ops.push(op);
685
+ if (!newIds.includes(orders[index - 1])) newIds.push(orders[index - 1]);
686
+ });
687
+ const op = ops.reduce(ot_json1.type.compose, null);
688
+ return {
689
+ undo: ot_json1.type.invertWithDoc(op, this.drawingManagerData),
690
+ redo: op,
691
+ unitId,
692
+ subUnitId,
693
+ objects: {
694
+ ...orderParams,
695
+ drawingIds: newIds
696
+ }
697
+ };
698
+ }
699
+ getFrontDrawingsOp(orderParams) {
700
+ const { unitId, subUnitId, drawingIds } = orderParams;
701
+ const orderDrawingIds = this._getOrderFromSearchParams(unitId, subUnitId, drawingIds);
702
+ const newIds = [...drawingIds];
703
+ const orders = this.getDrawingOrder(unitId, subUnitId);
704
+ const ops = [];
705
+ orderDrawingIds.forEach((orderDrawingId) => {
706
+ const { drawingId } = orderDrawingId;
707
+ const index = this._getDrawingCount(unitId, subUnitId) - 1;
708
+ const op = ot_json1.moveOp([
709
+ unitId,
710
+ subUnitId,
711
+ DrawingMapItemType.order,
712
+ this._getDrawingOrder(unitId, subUnitId).indexOf(drawingId)
713
+ ], [
714
+ unitId,
715
+ subUnitId,
716
+ DrawingMapItemType.order,
717
+ index
718
+ ]);
719
+ ops.push(op);
720
+ if (!newIds.includes(orders[index])) newIds.push(orders[index]);
721
+ });
722
+ const op = ops.reduce(ot_json1.type.compose, null);
723
+ return {
724
+ undo: ot_json1.type.invertWithDoc(op, this.drawingManagerData),
725
+ redo: op,
726
+ unitId,
727
+ subUnitId,
728
+ objects: {
729
+ ...orderParams,
730
+ drawingIds: newIds
731
+ }
732
+ };
733
+ }
734
+ getBackDrawingsOp(orderParams) {
735
+ const { unitId, subUnitId, drawingIds } = orderParams;
736
+ const orderSearchParams = this._getOrderFromSearchParams(unitId, subUnitId, drawingIds, true);
737
+ const newIds = [...drawingIds];
738
+ const orders = this.getDrawingOrder(unitId, subUnitId);
739
+ const ops = [];
740
+ orderSearchParams.forEach((orderSearchParam) => {
741
+ const { drawingId } = orderSearchParam;
742
+ const op = ot_json1.moveOp([
743
+ unitId,
744
+ subUnitId,
745
+ DrawingMapItemType.order,
746
+ this._getDrawingOrder(unitId, subUnitId).indexOf(drawingId)
747
+ ], [
748
+ unitId,
749
+ subUnitId,
750
+ DrawingMapItemType.order,
751
+ 0
752
+ ]);
753
+ ops.push(op);
754
+ if (!newIds.includes(orders[0])) newIds.push(orders[0]);
755
+ });
756
+ const op = ops.reduce(ot_json1.type.compose, null);
757
+ return {
758
+ undo: ot_json1.type.invertWithDoc(op, this.drawingManagerData),
759
+ redo: op,
760
+ unitId,
761
+ subUnitId,
762
+ objects: {
763
+ ...orderParams,
764
+ drawingIds: newIds
765
+ }
766
+ };
767
+ }
768
+ _getDrawingCount(unitId, subUnitId) {
769
+ return this.getDrawingOrder(unitId, subUnitId).length || 0;
770
+ }
771
+ _getOrderFromSearchParams(unitId, subUnitId, drawingIds, isDesc = false) {
772
+ return drawingIds.map((drawingId) => {
773
+ return {
774
+ drawingId,
775
+ zIndex: this._hasDrawingOrder({
776
+ unitId,
777
+ subUnitId,
778
+ drawingId
779
+ })
780
+ };
781
+ }).sort(isDesc === false ? _univerjs_core.sortRules : _univerjs_core.sortRulesByDesc);
782
+ }
783
+ _hasDrawingOrder(searchParam) {
784
+ if (searchParam == null) return -1;
785
+ const { unitId, subUnitId, drawingId } = searchParam;
786
+ this._establishDrawingMap(unitId, subUnitId);
787
+ return this._getDrawingOrder(unitId, subUnitId).indexOf(drawingId);
788
+ }
789
+ _getCurrentBySearch(searchParam) {
790
+ var _this$drawingManagerD;
791
+ if (searchParam == null) return;
792
+ const { unitId, subUnitId, drawingId } = searchParam;
793
+ return (_this$drawingManagerD = this.drawingManagerData[unitId]) === null || _this$drawingManagerD === void 0 || (_this$drawingManagerD = _this$drawingManagerD[subUnitId]) === null || _this$drawingManagerD === void 0 || (_this$drawingManagerD = _this$drawingManagerD.data) === null || _this$drawingManagerD === void 0 ? void 0 : _this$drawingManagerD[drawingId];
794
+ }
795
+ _getOldBySearch(searchParam) {
796
+ var _this$_oldDrawingMana;
797
+ if (searchParam == null) return;
798
+ const { unitId, subUnitId, drawingId } = searchParam;
799
+ return (_this$_oldDrawingMana = this._oldDrawingManagerData[unitId]) === null || _this$_oldDrawingMana === void 0 || (_this$_oldDrawingMana = _this$_oldDrawingMana[subUnitId]) === null || _this$_oldDrawingMana === void 0 || (_this$_oldDrawingMana = _this$_oldDrawingMana.data) === null || _this$_oldDrawingMana === void 0 ? void 0 : _this$_oldDrawingMana[drawingId];
800
+ }
801
+ _establishDrawingMap(unitId, subUnitId, drawingId) {
802
+ var _this$drawingManagerD2;
803
+ if (!this.drawingManagerData[unitId]) this.drawingManagerData[unitId] = {};
804
+ if (!this.drawingManagerData[unitId][subUnitId]) this.drawingManagerData[unitId][subUnitId] = {
805
+ data: {},
806
+ order: []
807
+ };
808
+ if (drawingId == null) return null;
809
+ return (_this$drawingManagerD2 = this.drawingManagerData[unitId][subUnitId].data) === null || _this$drawingManagerD2 === void 0 ? void 0 : _this$drawingManagerD2[drawingId];
810
+ }
811
+ _addByParam(insertParam) {
812
+ const { unitId, subUnitId, drawingId } = insertParam;
813
+ this._establishDrawingMap(unitId, subUnitId, drawingId);
814
+ const op = [ot_json1.insertOp([
815
+ unitId,
816
+ subUnitId,
817
+ DrawingMapItemType.data,
818
+ drawingId
819
+ ], insertParam), ot_json1.insertOp([
820
+ unitId,
821
+ subUnitId,
822
+ DrawingMapItemType.order,
823
+ this._getDrawingOrder(unitId, subUnitId).length
824
+ ], drawingId)].reduce(ot_json1.type.compose, null);
825
+ return {
826
+ op,
827
+ invertOp: ot_json1.type.invertWithDoc(op, this.drawingManagerData)
828
+ };
829
+ }
830
+ _removeByParam(searchParam) {
831
+ if (searchParam == null) return {
832
+ op: [],
833
+ invertOp: []
834
+ };
835
+ const { unitId, subUnitId, drawingId } = searchParam;
836
+ if (this._establishDrawingMap(unitId, subUnitId, drawingId) == null) return {
837
+ op: [],
838
+ invertOp: []
839
+ };
840
+ const op = [ot_json1.removeOp([
841
+ unitId,
842
+ subUnitId,
843
+ DrawingMapItemType.data,
844
+ drawingId
845
+ ], true), ot_json1.removeOp([
846
+ unitId,
847
+ subUnitId,
848
+ DrawingMapItemType.order,
849
+ this._getDrawingOrder(unitId, subUnitId).indexOf(drawingId)
850
+ ], true)].reduce(ot_json1.type.compose, null);
851
+ return {
852
+ op,
853
+ invertOp: ot_json1.type.invertWithDoc(op, this.drawingManagerData)
854
+ };
855
+ }
856
+ _updateByParam(updateParam) {
857
+ const { unitId, subUnitId, drawingId } = updateParam;
858
+ const object = this._establishDrawingMap(unitId, subUnitId, drawingId);
859
+ if (object == null) return {
860
+ op: [],
861
+ invertOp: []
862
+ };
863
+ const op = this._getUpdateParamCompareOp(updateParam, object).reduce(ot_json1.type.compose, null);
864
+ return {
865
+ op,
866
+ invertOp: ot_json1.type.invertWithDoc(op, this.drawingManagerData)
867
+ };
868
+ }
869
+ _getUpdateParamCompareOp(newParam, oldParam) {
870
+ const { unitId, subUnitId, drawingId } = newParam;
871
+ const ops = [];
872
+ Object.keys(newParam).forEach((key) => {
873
+ const newVal = newParam[key];
874
+ const oldVal = oldParam[key];
875
+ if (oldVal === newVal) return;
876
+ ops.push(ot_json1.replaceOp([
877
+ unitId,
878
+ subUnitId,
879
+ DrawingMapItemType.data,
880
+ drawingId,
881
+ key
882
+ ], oldVal, newVal));
883
+ });
884
+ return ops;
885
+ }
886
+ _getDrawingData(unitId, subUnitId) {
887
+ var _this$drawingManagerD3;
888
+ return ((_this$drawingManagerD3 = this.drawingManagerData[unitId]) === null || _this$drawingManagerD3 === void 0 || (_this$drawingManagerD3 = _this$drawingManagerD3[subUnitId]) === null || _this$drawingManagerD3 === void 0 ? void 0 : _this$drawingManagerD3.data) || {};
889
+ }
890
+ _getDrawingOrder(unitId, subUnitId) {
891
+ var _this$drawingManagerD4;
892
+ return ((_this$drawingManagerD4 = this.drawingManagerData[unitId]) === null || _this$drawingManagerD4 === void 0 || (_this$drawingManagerD4 = _this$drawingManagerD4[subUnitId]) === null || _this$drawingManagerD4 === void 0 ? void 0 : _this$drawingManagerD4.order) || [];
893
+ }
894
+ getDrawingVisible() {
895
+ return this._visible;
896
+ }
897
+ getDrawingEditable() {
898
+ return this._editable;
899
+ }
900
+ setDrawingVisible(visible) {
901
+ this._visible = visible;
902
+ }
903
+ setDrawingEditable(editable) {
904
+ this._editable = editable;
905
+ }
906
+ };
907
+ var DrawingManagerService = class extends UnitDrawingService {};
908
+
909
+ //#endregion
910
+ //#region src/services/image-io-impl.service.ts
911
+ var ImageIoService = class {
912
+ constructor() {
913
+ _defineProperty(this, "_waitCount", 0);
914
+ _defineProperty(this, "_change$", new rxjs.Subject());
915
+ _defineProperty(this, "change$", this._change$);
916
+ _defineProperty(this, "_imageSourceCache", /* @__PURE__ */ new Map());
917
+ }
918
+ setWaitCount(count) {
919
+ this._waitCount = count;
920
+ this._change$.next(count);
921
+ }
922
+ getImageSourceCache(source, imageSourceType) {
923
+ if (imageSourceType === _univerjs_core.ImageSourceType.BASE64) {
924
+ const image = new Image();
925
+ image.src = source;
926
+ return image;
927
+ }
928
+ return this._imageSourceCache.get(source);
929
+ }
930
+ addImageSourceCache(source, imageSourceType, imageSource) {
931
+ if (imageSourceType === _univerjs_core.ImageSourceType.BASE64 || imageSource == null) return;
932
+ this._imageSourceCache.set(source, imageSource);
933
+ }
934
+ async getImage(imageId) {
935
+ return Promise.resolve(imageId);
936
+ }
937
+ async saveImage(imageFile) {
938
+ return new Promise((resolve, reject) => {
939
+ if (!DRAWING_IMAGE_ALLOW_IMAGE_LIST.includes(imageFile.type)) {
940
+ reject(new Error(_univerjs_core.ImageUploadStatusType.ERROR_IMAGE_TYPE));
941
+ this._decreaseWaiting();
942
+ return;
943
+ }
944
+ if (imageFile.size > 5242880) {
945
+ reject(new Error(_univerjs_core.ImageUploadStatusType.ERROR_EXCEED_SIZE));
946
+ this._decreaseWaiting();
947
+ return;
948
+ }
949
+ const reader = new FileReader();
950
+ reader.readAsDataURL(imageFile);
951
+ reader.onload = (evt) => {
952
+ var _evt$target;
953
+ const replaceSrc = (_evt$target = evt.target) === null || _evt$target === void 0 ? void 0 : _evt$target.result;
954
+ if (replaceSrc == null) {
955
+ reject(new Error(_univerjs_core.ImageUploadStatusType.ERROR_IMAGE));
956
+ this._decreaseWaiting();
957
+ return;
958
+ }
959
+ resolve({
960
+ imageId: (0, _univerjs_core.generateRandomId)(6),
961
+ imageSourceType: _univerjs_core.ImageSourceType.BASE64,
962
+ source: replaceSrc,
963
+ base64Cache: replaceSrc,
964
+ status: _univerjs_core.ImageUploadStatusType.SUCCUSS
965
+ });
966
+ this._decreaseWaiting();
967
+ };
968
+ });
969
+ }
970
+ _decreaseWaiting() {
971
+ this._waitCount -= 1;
972
+ this._change$.next(this._waitCount);
973
+ }
974
+ };
975
+
976
+ //#endregion
977
+ //#region src/services/url-image.service.ts
978
+ var URLImageService = class extends _univerjs_core.Disposable {
979
+ constructor(..._args) {
980
+ super(..._args);
981
+ _defineProperty(this, "_urlImageDownloader", null);
982
+ }
983
+ registerURLImageDownloader(downloader) {
984
+ this._urlImageDownloader = downloader;
985
+ return (0, _univerjs_core.toDisposable)(() => {
986
+ this._urlImageDownloader = null;
987
+ });
988
+ }
989
+ async getImage(url) {
990
+ if (this._urlImageDownloader) try {
991
+ return await this._urlImageDownloader(url);
992
+ } catch (error) {
993
+ console.error(`Custom downloader failed for ${url}, falling back to default behavior:`, error);
994
+ }
995
+ return url;
996
+ }
997
+ async downloadImage(url) {
998
+ if (this._urlImageDownloader) try {
999
+ const base64 = await this._urlImageDownloader(url);
1000
+ return await (await fetch(base64)).blob();
1001
+ } catch (error) {
1002
+ console.error(`Custom downloader failed for ${url}, falling back to default fetch:`, error);
1003
+ }
1004
+ return await (await fetch(url)).blob();
1005
+ }
1006
+ };
1007
+
1008
+ //#endregion
1009
+ //#region \0@oxc-project+runtime@0.124.0/helpers/decorateParam.js
1010
+ function __decorateParam(paramIndex, decorator) {
1011
+ return function(target, key) {
1012
+ decorator(target, key, paramIndex);
1013
+ };
1014
+ }
1015
+
1016
+ //#endregion
1017
+ //#region \0@oxc-project+runtime@0.124.0/helpers/decorate.js
1018
+ function __decorate(decorators, target, key, desc) {
1019
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1020
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1021
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1022
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1023
+ }
1024
+
1025
+ //#endregion
1026
+ //#region src/plugin.ts
1027
+ let UniverDrawingPlugin = class UniverDrawingPlugin extends _univerjs_core.Plugin {
1028
+ constructor(_config = defaultPluginConfig, _injector, _configService, _commandService) {
1029
+ super();
1030
+ this._config = _config;
1031
+ this._injector = _injector;
1032
+ this._configService = _configService;
1033
+ this._commandService = _commandService;
1034
+ const { ...rest } = (0, _univerjs_core.merge)({}, defaultPluginConfig, this._config);
1035
+ this._configService.setConfig(DRAWING_PLUGIN_CONFIG_KEY, rest);
1036
+ }
1037
+ onStarting() {
1038
+ this._initCommands();
1039
+ this._initDependencies();
1040
+ }
1041
+ _initDependencies() {
1042
+ var _this$_config;
1043
+ (0, _univerjs_core.mergeOverrideWithDependencies)([
1044
+ [_univerjs_core.IImageIoService, { useClass: ImageIoService }],
1045
+ [_univerjs_core.IURLImageService, { useClass: URLImageService }],
1046
+ [IDrawingManagerService, { useClass: DrawingManagerService }]
1047
+ ], (_this$_config = this._config) === null || _this$_config === void 0 ? void 0 : _this$_config.override).forEach((d) => this._injector.add(d));
1048
+ }
1049
+ _initCommands() {
1050
+ [SetDrawingSelectedOperation].forEach((command) => this.disposeWithMe(this._commandService.registerCommand(command)));
1051
+ }
1052
+ };
1053
+ _defineProperty(UniverDrawingPlugin, "pluginName", "UNIVER_DRAWING_PLUGIN");
1054
+ _defineProperty(UniverDrawingPlugin, "packageName", name);
1055
+ _defineProperty(UniverDrawingPlugin, "version", version);
1056
+ UniverDrawingPlugin = __decorate([
1057
+ __decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_core.Injector)),
1058
+ __decorateParam(2, _univerjs_core.IConfigService),
1059
+ __decorateParam(3, _univerjs_core.ICommandService)
1060
+ ], UniverDrawingPlugin);
1061
+
1062
+ //#endregion
1063
+ //#region src/utils/get-image-shape-key.ts
1064
+ function getDrawingShapeKeyByDrawingSearch({ unitId, subUnitId, drawingId }, index) {
1065
+ return typeof index === "number" ? `${unitId}#-#${subUnitId}#-#${drawingId}#-#${index}` : `${unitId}#-#${subUnitId}#-#${drawingId}`;
1066
+ }
1067
+
1068
+ //#endregion
1069
+ //#region src/utils/get-image-size.ts
1070
+ const getImageSize = async (src) => {
1071
+ return new Promise((resolve, reject) => {
1072
+ const image = new Image();
1073
+ image.src = src;
1074
+ image.onload = () => {
1075
+ resolve({
1076
+ width: image.width,
1077
+ height: image.height,
1078
+ image
1079
+ });
1080
+ };
1081
+ image.onerror = (error) => {
1082
+ reject(error);
1083
+ };
1084
+ });
1085
+ };
1086
+
1087
+ //#endregion
1088
+ exports.DRAWING_IMAGE_ALLOW_IMAGE_LIST = DRAWING_IMAGE_ALLOW_IMAGE_LIST;
1089
+ exports.DRAWING_IMAGE_ALLOW_SIZE = DRAWING_IMAGE_ALLOW_SIZE;
1090
+ exports.DRAWING_IMAGE_COUNT_LIMIT = DRAWING_IMAGE_COUNT_LIMIT;
1091
+ exports.DRAWING_IMAGE_HEIGHT_LIMIT = DRAWING_IMAGE_HEIGHT_LIMIT;
1092
+ exports.DRAWING_IMAGE_WIDTH_LIMIT = DRAWING_IMAGE_WIDTH_LIMIT;
1093
+ exports.DrawingManagerService = DrawingManagerService;
1094
+ exports.IDrawingManagerService = IDrawingManagerService;
1095
+ Object.defineProperty(exports, 'IImageIoService', {
1096
+ enumerable: true,
1097
+ get: function () {
1098
+ return _univerjs_core.IImageIoService;
1099
+ }
1100
+ });
1101
+ exports.ImageIoService = ImageIoService;
1102
+ Object.defineProperty(exports, 'ImageSourceType', {
1103
+ enumerable: true,
1104
+ get: function () {
1105
+ return _univerjs_core.ImageSourceType;
1106
+ }
1107
+ });
1108
+ Object.defineProperty(exports, 'ImageUploadStatusType', {
1109
+ enumerable: true,
1110
+ get: function () {
1111
+ return _univerjs_core.ImageUploadStatusType;
1112
+ }
1113
+ });
1114
+ exports.SetDrawingSelectedOperation = SetDrawingSelectedOperation;
1115
+ exports.URLImageService = URLImageService;
1116
+ exports.UnitDrawingService = UnitDrawingService;
1117
+ Object.defineProperty(exports, 'UniverDrawingPlugin', {
1118
+ enumerable: true,
1119
+ get: function () {
1120
+ return UniverDrawingPlugin;
1121
+ }
1122
+ });
1123
+ exports.getDrawingShapeKeyByDrawingSearch = getDrawingShapeKeyByDrawingSearch;
1124
+ exports.getImageSize = getImageSize;