@univerjs/docs-drawing 1.0.0 → 1.0.2

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
@@ -740,7 +740,7 @@ DocDrawingController = __decorate([
740
740
  //#endregion
741
741
  //#region package.json
742
742
  var name = "@univerjs/docs-drawing";
743
- var version = "1.0.0";
743
+ var version = "1.0.2";
744
744
 
745
745
  //#endregion
746
746
  //#region src/config/config.ts
package/lib/es/index.js CHANGED
@@ -739,7 +739,7 @@ DocDrawingController = __decorate([
739
739
  //#endregion
740
740
  //#region package.json
741
741
  var name = "@univerjs/docs-drawing";
742
- var version = "1.0.0";
742
+ var version = "1.0.2";
743
743
 
744
744
  //#endregion
745
745
  //#region src/config/config.ts
package/lib/index.js CHANGED
@@ -739,7 +739,7 @@ DocDrawingController = __decorate([
739
739
  //#endregion
740
740
  //#region package.json
741
741
  var name = "@univerjs/docs-drawing";
742
- var version = "1.0.0";
742
+ var version = "1.0.2";
743
743
 
744
744
  //#endregion
745
745
  //#region src/config/config.ts
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/drawing")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/drawing`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawing={},e.UniverCore,e.UniverDocs,e.UniverDrawing))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let i={id:`doc.command.insert-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,o,s,c;if(!r)return!1;let l=e.get(t.ICommandService),u=e.get(t.IUniverInstanceService),{unitId:d,drawings:f,textRange:p}=r,m=u.getUnit(d,t.UniverInstanceType.UNIVER_DOC);if(!m)return!1;let h=a(e,d,p);if(!h)return!1;let{segmentId:g=``}=h;if(!((i=m.getSelfOrHeaderFooterModel(g))!=null&&i.getBody()))return!1;let _=m.getSnapshot(),v=!!((o=_.notes)!=null&&o[g]);if(v&&f.some(e=>e.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE))return!1;let y=(s=_.headers)!=null&&s[g]||(c=_.footers)!=null&&c[g]?f.map(e=>({...e,isMultiTransform:t.BooleanNumber.TRUE,transforms:e.transforms??(e.transform?[e.transform]:null)})):f;v&&(y=f.map(e=>({...e,layoutType:t.PositionedObjectLayoutType.INLINE})));let b=t.BuildTextUtils.drawing.add({selection:h,documentDataModel:m,drawings:y});if(!b)return!1;let x={id:n.RichTextEditingMutation.id,params:{unitId:d,segmentId:g,actions:[],textRanges:[]}};return x.params.actions=b,!!l.syncExecuteCommand(x.id,x.params)}};function a(e,t,r){let i=e.get(n.DocSelectionManagerService).getActiveTextRange(),a=(r?(0,n.normalizeTextRange)(r):null)??(0,n.getContentInsertRange)(e,t);return a?{...i,startOffset:a.startOffset,endOffset:a.endOffset,collapsed:a.startOffset===a.endOffset,segmentId:a.segmentId??(i==null?void 0:i.segmentId)??``}:i??null}function o(e){"@babel/helpers - typeof";return o=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let u=(0,t.createIdentifier)(`doc.drawing-adapter.service`);var d=class{constructor(){l(this,`_adapters`,[])}registerAdapter(e){return this._adapters.push(e),(0,t.toDisposable)(()=>{let t=this._adapters.indexOf(e);t>=0&&this._adapters.splice(t,1)})}getRemoveDrawingMutationInfos(e){let t={redoMutations:[],undoMutations:[]};for(let r of this._adapters){var n;let i=(n=r.getRemoveDrawingMutationInfos)==null?void 0:n.call(r,e);i&&(t.redoMutations.push(...i.redoMutations),t.undoMutations.push(...i.undoMutations))}return t}getEditDrawingCommandInfo(e){for(let n of this._adapters){var t;let r=(t=n.getEditDrawingCommandInfo)==null?void 0:t.call(n,e);if(r)return r}return null}};function f(e,t){var n;let r=(n=e.drawings)==null?void 0:n[t];if(r)return{drawing:r,path:[`drawings`,t],segmentId:``};for(let[n,r]of Object.entries(e.notes??{})){var i;let e=(i=r.drawings)==null?void 0:i[t];if(e)return{drawing:e,path:[`notes`,n,`drawings`,t],segmentId:n}}}function p(e){let t=e.drawings??{},n=e.drawingsOrder??Object.keys(t),r=!1;for(let i of Object.values(e.notes??{}))i.drawings&&Object.keys(i.drawings).length!==0&&(r||=(t={...t},n=[...n],!0),Object.assign(t,i.drawings),n.push(...i.drawingsOrder??Object.keys(i.drawings)));return{drawings:t,drawingsOrder:n}}let m={id:`doc.command.remove-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(u),l=e.get(t.IUniverInstanceService),d=e.get(n.DocSelectionManagerService),{unitId:p,drawings:m,textRange:_}=r,v=l.getUnit(p,t.UniverInstanceType.UNIVER_DOC);if(!v||m.length===0)return!1;let y=d.getActiveTextRange(),b=(_?(0,n.normalizeTextRange)(_):null)??(0,n.getContentInsertRange)(e,p),x=v.getSnapshot(),S=m.map(({drawingId:e})=>{var t;return((t=f(x,e))==null?void 0:t.segmentId)??``});if(S.some(e=>e!==S[0]))return!1;let C=S[0]||((b==null?void 0:b.segmentId)??(y==null?void 0:y.segmentId)??``),w=(i=x.notes)==null?void 0:i[C],T=w??x,E=w?[`notes`,C]:[],D=new t.TextX,O=t.JSONX.getInstance(),k=((a=v.getSelfOrHeaderFooterModel(C))==null||(a=a.getBody())==null?void 0:a.customBlocks)??[],A=m.map(e=>k.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1);if(A.length===0)return!1;let j=T.drawings??{},M=new Map(m.map(e=>[e.drawingId,e])),N=new Set(A.map(e=>e.blockId)),P=-1;for(;P!==N.size;){P=N.size;for(let e of Object.values(j))e.groupId&&N.has(e.groupId)&&N.add(e.drawingId)}let F=[...N].map(e=>j[e]).filter(e=>e!=null),I=[],L=[],R=[];for(let e of N){let t=j[e];if(t==null)continue;let n=M.get(e),r=c.getRemoveDrawingMutationInfos({unitId:p,subUnitId:(n==null?void 0:n.subUnitId)??p,drawing:t,removeDrawings:F});(r.redoMutations.length!==0||r.undoMutations.length!==0)&&(I.push(...r.redoMutations),L.push(...r.undoMutations),R.push(r))}if(!g(R,o))return!1;let z=`doc-drawing-remove-resource:${p}:${A.map(e=>e.blockId).join(`,`)}`,B=null;(I.length>0||L.length>0)&&(B=s.__tempBatchingUndoRedo(p),s.pushUndoRedo({unitID:p,redoMutations:I,undoMutations:L,id:z}));let V=new t.MemoryCursor,H=A[0].startIndex,U=[{startOffset:H,endOffset:H}],W=h(m),G={id:n.RichTextEditingMutation.id,params:{unitId:p,segmentId:C,actions:[],textRanges:U,historyActions:W}},K=[];for(let e of A){let{startIndex:n}=e;n>V.cursor&&D.push({t:t.TextXActionType.RETAIN,len:n-V.cursor}),D.push({t:t.TextXActionType.DELETE,len:1}),V.moveCursorTo(n+1)}K.push(O.editOp(D.serialize(),(0,t.getRichTextEditPath)(v,C)));let q=T.drawingsOrder??[],J=[...N].sort((e,t)=>q.indexOf(t)-q.indexOf(e));for(let e of J){let t=q.indexOf(e);j[e]&&K.push(O.removeOp([...E,`drawings`,e],j[e])),t>=0&&K.push(O.removeOp([...E,`drawingsOrder`,t],e))}G.params.actions=K.reduce((e,n)=>t.JSONX.compose(e,n),null);let Y=o.syncExecuteCommand(G.id,G.params);return!Y&&B!=null?(B.dispose(),s.rollback(z,p),!1):(B==null||B.dispose(),!!Y)}};function h(e){let r=e.flatMap(e=>{switch(e.drawingType){case t.DrawingTypeEnum.DRAWING_IMAGE:return[n.DocHistoryAction.DeleteImage];case t.DrawingTypeEnum.DRAWING_SHAPE:return[n.DocHistoryAction.DeleteShape];case t.DrawingTypeEnum.DRAWING_CHART:return[n.DocHistoryAction.DeleteChart];default:return[]}});return[...new Set(r)]}function g(e,t){let n=[];for(let r of e){if(!v(r.redoMutations,t))return _([...n].reverse(),t),!1;n.push(r.undoMutations)}return!0}function _(e,t){e.forEach(e=>v(e,t))}function v(e,t){for(let n of e)if(!t.syncExecuteCommand(n.id,n.params))return!1;return!0}let y=`drawingsOrder`;function b(e,n,r){let i=new Set(n.filter(t=>e.includes(t))),a=[...e];if(i.size===0)return a;if(r===t.ArrangeTypeEnum.forward)for(let e=a.length-2;e>=0;e--)i.has(a[e])&&!i.has(a[e+1])&&([a[e],a[e+1]]=[a[e+1],a[e]]);else if(r===t.ArrangeTypeEnum.backward)for(let e=1;e<a.length;e++)i.has(a[e])&&!i.has(a[e-1])&&([a[e],a[e-1]]=[a[e-1],a[e]]);else if(r===t.ArrangeTypeEnum.front||r===t.ArrangeTypeEnum.back){let e=a.filter(e=>i.has(e)),n=a.filter(e=>!i.has(e));return r===t.ArrangeTypeEnum.front?[...n,...e]:[...e,...n]}return a}function x(e,n,r){if(n.length!==1)return[...e];let i=[...e],a=i.indexOf(n[0]);if(a<0)return i;let[o]=i.splice(a,1),s=(0,t.normalizeDrawingOrderIndex)(r,e.length);return i.splice(s,0,o),i}function S(e,n){let r=t.JSONX.getInstance(),i=[...e],a=[];for(let e=0;e<n.length;e++){let t=n[e],o=i.indexOf(t);if(o<0||o===e)continue;let s=r.moveOp([y,o],[y,e]);s&&a.push(s),i.splice(o,1),i.splice(e,0,t)}return a.reduce((e,n)=>t.JSONX.compose(e,n),null)}let C={id:`doc.command.set-drawing-arrange`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService);if(r==null)return!1;let{unitId:a,drawingIds:o}=r,s=e.get(t.IUniverInstanceService).getUnit(a,t.UniverInstanceType.UNIVER_DOC),c=s==null?void 0:s.getDrawingsOrder();if(!c)return!1;let l=S(c,r.zOrder===void 0?b(c,o,r.arrangeType):x(c,o,r.zOrder));return!t.JSONX.isNoop(l)&&!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:a,actions:l,textRanges:null})}},w={id:`doc.command.update-drawing-doc-transform`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService),{unitId:o,drawings:s}=r,c=a.getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot(),u=s.length>0&&s.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let{drawingId:e,key:n,value:r}of s){var m;let i=f(l,e);if(!i)return!1;let a=i.drawing,o=n===`srcRect`||n===`prstGeom`||n===`adjustValues`,s=o?n in a?Reflect.get(a,n):void 0:a==null||(m=a.docTransform)==null?void 0:m[n];if(!t.Tools.diffValue(s,r)){let e=o?[...i.path,n]:[...i.path,`docTransform`,n],t=s===void 0?d.insertOp(e,r):d.replaceOp(e,s,r);p.push(t)}}return!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null,debounce:!0})}},T=function(e){return e.INLINE=`inline`,e.BEHIND_TEXT=`behindText`,e.IN_FRONT_OF_TEXT=`inFrontOfText`,e.WRAP_SQUARE=`wrapSquare`,e.WRAP_TOP_AND_BOTTOM=`wrapTopAndBottom`,e}({}),E={inline:t.PositionedObjectLayoutType.INLINE,wrapSquare:t.PositionedObjectLayoutType.WRAP_SQUARE,wrapTopAndBottom:t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM,inFrontOfText:t.PositionedObjectLayoutType.WRAP_NONE,behindText:t.PositionedObjectLayoutType.WRAP_NONE},D={id:`doc.command.update-doc-drawing-wrapping-style`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let{drawings:i,wrappingStyle:a,unitId:o}=r,s=e.get(t.ICommandService),c=e.get(t.IUniverInstanceService).getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot();if(a!==`inline`&&i.some(({drawingId:e})=>{var t;return(t=f(l,e))==null?void 0:t.segmentId}))return!1;let u=i.length>0&&i.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let e of i){let n=f(l,e.drawingId),r=n==null?void 0:n.drawing;if(!r||!n)continue;let i=E[a];if(r.layoutType!==i&&p.push(d.replaceOp([...n.path,`layoutType`],r.layoutType,i)),a===`behindText`||a===`inFrontOfText`){let e=a===`behindText`?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE;r.behindDoc!==e&&p.push(d.replaceOp([...n.path,`behindDoc`],r.behindDoc,e))}if(a!==`inline`)for(let i of[`positionH`,`positionV`]){var m;let a=(m=e.docTransform)==null?void 0:m[i],o=r.docTransform[i];a&&!t.Tools.diffValue(o,a)&&p.push(d.replaceOp([...n.path,`docTransform`,i],o,a))}}let h={id:n.RichTextEditingMutation.id,params:{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null}};return!!s.syncExecuteCommand(h.id,h.params)}};var O=class extends r.UnitDrawingService{};let k=(0,t.createIdentifier)(`univer.doc.plugin.doc-drawing.service`);function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let M=`DOC_DRAWING_PLUGIN`;function N(e,t={}){return e.map((e,t)=>({drawingId:e,index:t})).sort((e,n)=>{let r=P(t[e.drawingId]);return r===P(t[n.drawingId])?e.index-n.index:r?-1:1}).map(({drawingId:e})=>e)}function P(e){return(e==null?void 0:e.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&e.behindDoc===t.BooleanNumber.TRUE}let F=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._docDrawingService=e,this._drawingManagerService=t,this._resourceManagerService=n,this._univerInstanceService=r,this._commandService=i,this._init()}_init(){this._initSnapshot(),this._initCommands()}_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;return JSON.stringify({data:e??{},order:t??[]})}return``},n=e=>{if(!e)return{data:{},order:[]};try{return JSON.parse(e)}catch{return{data:{},order:[]}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:M,businesses:[t.UniverInstanceType.UNIVER_DOC],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._unloadDrawingDataForUnit(e)},onLoad:(e,t)=>{this._setDrawingDataForUnit(e,{data:t.data??{},order:t.order??[]})}}))}_unloadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);n==null||n.resetDrawing({},[]),this._docDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)}_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,{drawings:i,drawingsOrder:a}=p(n.getSnapshot());if(!i||!a)return!1;let o={};for(let[t,n]of Object.entries(i))o[t]=n.unitId===e&&n.subUnitId===r?n:{...n,unitId:e,subUnitId:r};let s={[r]:{unitId:e,subUnitId:r,data:o,order:a}},c={};for(let[e,t]of Object.entries(o))c[e]={...t,hidden:!0};let l={[r]:{...s[r],data:c,order:N(a,i)}};return this._docDrawingService.registerDrawingData(e,s),this._drawingManagerService.registerDrawingData(e,l),!0}_initCommands(){[i,m,w,D,C].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};F=j([A(0,k),A(1,r.IDrawingManagerService),A(2,t.IResourceManagerService),A(3,t.IUniverInstanceService),A(4,t.ICommandService)],F);var I=`@univerjs/docs-drawing`,L=`1.0.0`;let R={},z=class extends t.Plugin{constructor(e=R,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},R,this._config);this._configService.setConfig(`docs-drawing.config`,i)}onStarting(){[[F],[d],[u,{useClass:d}],[O],[k,{useClass:O}]].forEach(e=>this._injector.add(e)),(0,t.touchDependencies)(this._injector,[[F]])}};l(z,`pluginName`,M),l(z,`packageName`,I),l(z,`version`,L),l(z,`type`,t.UniverInstanceType.UNIVER_DOC),z=j([(0,t.DependentOn)(n.UniverDocsPlugin,r.UniverDrawingPlugin),A(1,(0,t.Inject)(t.Injector)),A(2,t.IConfigService)],z),e.DOCS_DRAWING_PLUGIN=M,e.DocDrawingAdapterService=d,Object.defineProperty(e,"DocDrawingController",{enumerable:!0,get:function(){return F}}),e.DocDrawingService=O,e.IDocDrawingAdapterService=u,e.IDocDrawingService=k,e.InsertDocDrawingCommand=i,e.RemoveDocDrawingCommand=m,e.SetDocDrawingArrangeCommand=C,e.TextWrappingStyle=T,Object.defineProperty(e,"UniverDocsDrawingPlugin",{enumerable:!0,get:function(){return z}}),e.UpdateDocDrawingWrappingStyleCommand=D,e.UpdateDrawingDocTransformCommand=w,e.WRAPPING_STYLE_TO_LAYOUT_TYPE=E,e.collectDocDrawings=p,e.findDocDrawing=f,e.getDocDrawingRenderOrder=N});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/drawing")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/drawing`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawing={},e.UniverCore,e.UniverDocs,e.UniverDrawing))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let i={id:`doc.command.insert-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,o,s,c;if(!r)return!1;let l=e.get(t.ICommandService),u=e.get(t.IUniverInstanceService),{unitId:d,drawings:f,textRange:p}=r,m=u.getUnit(d,t.UniverInstanceType.UNIVER_DOC);if(!m)return!1;let h=a(e,d,p);if(!h)return!1;let{segmentId:g=``}=h;if(!((i=m.getSelfOrHeaderFooterModel(g))!=null&&i.getBody()))return!1;let _=m.getSnapshot(),v=!!((o=_.notes)!=null&&o[g]);if(v&&f.some(e=>e.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE))return!1;let y=(s=_.headers)!=null&&s[g]||(c=_.footers)!=null&&c[g]?f.map(e=>({...e,isMultiTransform:t.BooleanNumber.TRUE,transforms:e.transforms??(e.transform?[e.transform]:null)})):f;v&&(y=f.map(e=>({...e,layoutType:t.PositionedObjectLayoutType.INLINE})));let b=t.BuildTextUtils.drawing.add({selection:h,documentDataModel:m,drawings:y});if(!b)return!1;let x={id:n.RichTextEditingMutation.id,params:{unitId:d,segmentId:g,actions:[],textRanges:[]}};return x.params.actions=b,!!l.syncExecuteCommand(x.id,x.params)}};function a(e,t,r){let i=e.get(n.DocSelectionManagerService).getActiveTextRange(),a=(r?(0,n.normalizeTextRange)(r):null)??(0,n.getContentInsertRange)(e,t);return a?{...i,startOffset:a.startOffset,endOffset:a.endOffset,collapsed:a.startOffset===a.endOffset,segmentId:a.segmentId??(i==null?void 0:i.segmentId)??``}:i??null}function o(e){"@babel/helpers - typeof";return o=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let u=(0,t.createIdentifier)(`doc.drawing-adapter.service`);var d=class{constructor(){l(this,`_adapters`,[])}registerAdapter(e){return this._adapters.push(e),(0,t.toDisposable)(()=>{let t=this._adapters.indexOf(e);t>=0&&this._adapters.splice(t,1)})}getRemoveDrawingMutationInfos(e){let t={redoMutations:[],undoMutations:[]};for(let r of this._adapters){var n;let i=(n=r.getRemoveDrawingMutationInfos)==null?void 0:n.call(r,e);i&&(t.redoMutations.push(...i.redoMutations),t.undoMutations.push(...i.undoMutations))}return t}getEditDrawingCommandInfo(e){for(let n of this._adapters){var t;let r=(t=n.getEditDrawingCommandInfo)==null?void 0:t.call(n,e);if(r)return r}return null}};function f(e,t){var n;let r=(n=e.drawings)==null?void 0:n[t];if(r)return{drawing:r,path:[`drawings`,t],segmentId:``};for(let[n,r]of Object.entries(e.notes??{})){var i;let e=(i=r.drawings)==null?void 0:i[t];if(e)return{drawing:e,path:[`notes`,n,`drawings`,t],segmentId:n}}}function p(e){let t=e.drawings??{},n=e.drawingsOrder??Object.keys(t),r=!1;for(let i of Object.values(e.notes??{}))i.drawings&&Object.keys(i.drawings).length!==0&&(r||=(t={...t},n=[...n],!0),Object.assign(t,i.drawings),n.push(...i.drawingsOrder??Object.keys(i.drawings)));return{drawings:t,drawingsOrder:n}}let m={id:`doc.command.remove-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(u),l=e.get(t.IUniverInstanceService),d=e.get(n.DocSelectionManagerService),{unitId:p,drawings:m,textRange:_}=r,v=l.getUnit(p,t.UniverInstanceType.UNIVER_DOC);if(!v||m.length===0)return!1;let y=d.getActiveTextRange(),b=(_?(0,n.normalizeTextRange)(_):null)??(0,n.getContentInsertRange)(e,p),x=v.getSnapshot(),S=m.map(({drawingId:e})=>{var t;return((t=f(x,e))==null?void 0:t.segmentId)??``});if(S.some(e=>e!==S[0]))return!1;let C=S[0]||((b==null?void 0:b.segmentId)??(y==null?void 0:y.segmentId)??``),w=(i=x.notes)==null?void 0:i[C],T=w??x,E=w?[`notes`,C]:[],D=new t.TextX,O=t.JSONX.getInstance(),k=((a=v.getSelfOrHeaderFooterModel(C))==null||(a=a.getBody())==null?void 0:a.customBlocks)??[],A=m.map(e=>k.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1);if(A.length===0)return!1;let j=T.drawings??{},M=new Map(m.map(e=>[e.drawingId,e])),N=new Set(A.map(e=>e.blockId)),P=-1;for(;P!==N.size;){P=N.size;for(let e of Object.values(j))e.groupId&&N.has(e.groupId)&&N.add(e.drawingId)}let F=[...N].map(e=>j[e]).filter(e=>e!=null),I=[],L=[],R=[];for(let e of N){let t=j[e];if(t==null)continue;let n=M.get(e),r=c.getRemoveDrawingMutationInfos({unitId:p,subUnitId:(n==null?void 0:n.subUnitId)??p,drawing:t,removeDrawings:F});(r.redoMutations.length!==0||r.undoMutations.length!==0)&&(I.push(...r.redoMutations),L.push(...r.undoMutations),R.push(r))}if(!g(R,o))return!1;let z=`doc-drawing-remove-resource:${p}:${A.map(e=>e.blockId).join(`,`)}`,B=null;(I.length>0||L.length>0)&&(B=s.__tempBatchingUndoRedo(p),s.pushUndoRedo({unitID:p,redoMutations:I,undoMutations:L,id:z}));let V=new t.MemoryCursor,H=A[0].startIndex,U=[{startOffset:H,endOffset:H}],W=h(m),G={id:n.RichTextEditingMutation.id,params:{unitId:p,segmentId:C,actions:[],textRanges:U,historyActions:W}},K=[];for(let e of A){let{startIndex:n}=e;n>V.cursor&&D.push({t:t.TextXActionType.RETAIN,len:n-V.cursor}),D.push({t:t.TextXActionType.DELETE,len:1}),V.moveCursorTo(n+1)}K.push(O.editOp(D.serialize(),(0,t.getRichTextEditPath)(v,C)));let q=T.drawingsOrder??[],J=[...N].sort((e,t)=>q.indexOf(t)-q.indexOf(e));for(let e of J){let t=q.indexOf(e);j[e]&&K.push(O.removeOp([...E,`drawings`,e],j[e])),t>=0&&K.push(O.removeOp([...E,`drawingsOrder`,t],e))}G.params.actions=K.reduce((e,n)=>t.JSONX.compose(e,n),null);let Y=o.syncExecuteCommand(G.id,G.params);return!Y&&B!=null?(B.dispose(),s.rollback(z,p),!1):(B==null||B.dispose(),!!Y)}};function h(e){let r=e.flatMap(e=>{switch(e.drawingType){case t.DrawingTypeEnum.DRAWING_IMAGE:return[n.DocHistoryAction.DeleteImage];case t.DrawingTypeEnum.DRAWING_SHAPE:return[n.DocHistoryAction.DeleteShape];case t.DrawingTypeEnum.DRAWING_CHART:return[n.DocHistoryAction.DeleteChart];default:return[]}});return[...new Set(r)]}function g(e,t){let n=[];for(let r of e){if(!v(r.redoMutations,t))return _([...n].reverse(),t),!1;n.push(r.undoMutations)}return!0}function _(e,t){e.forEach(e=>v(e,t))}function v(e,t){for(let n of e)if(!t.syncExecuteCommand(n.id,n.params))return!1;return!0}let y=`drawingsOrder`;function b(e,n,r){let i=new Set(n.filter(t=>e.includes(t))),a=[...e];if(i.size===0)return a;if(r===t.ArrangeTypeEnum.forward)for(let e=a.length-2;e>=0;e--)i.has(a[e])&&!i.has(a[e+1])&&([a[e],a[e+1]]=[a[e+1],a[e]]);else if(r===t.ArrangeTypeEnum.backward)for(let e=1;e<a.length;e++)i.has(a[e])&&!i.has(a[e-1])&&([a[e],a[e-1]]=[a[e-1],a[e]]);else if(r===t.ArrangeTypeEnum.front||r===t.ArrangeTypeEnum.back){let e=a.filter(e=>i.has(e)),n=a.filter(e=>!i.has(e));return r===t.ArrangeTypeEnum.front?[...n,...e]:[...e,...n]}return a}function x(e,n,r){if(n.length!==1)return[...e];let i=[...e],a=i.indexOf(n[0]);if(a<0)return i;let[o]=i.splice(a,1),s=(0,t.normalizeDrawingOrderIndex)(r,e.length);return i.splice(s,0,o),i}function S(e,n){let r=t.JSONX.getInstance(),i=[...e],a=[];for(let e=0;e<n.length;e++){let t=n[e],o=i.indexOf(t);if(o<0||o===e)continue;let s=r.moveOp([y,o],[y,e]);s&&a.push(s),i.splice(o,1),i.splice(e,0,t)}return a.reduce((e,n)=>t.JSONX.compose(e,n),null)}let C={id:`doc.command.set-drawing-arrange`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService);if(r==null)return!1;let{unitId:a,drawingIds:o}=r,s=e.get(t.IUniverInstanceService).getUnit(a,t.UniverInstanceType.UNIVER_DOC),c=s==null?void 0:s.getDrawingsOrder();if(!c)return!1;let l=S(c,r.zOrder===void 0?b(c,o,r.arrangeType):x(c,o,r.zOrder));return!t.JSONX.isNoop(l)&&!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:a,actions:l,textRanges:null})}},w={id:`doc.command.update-drawing-doc-transform`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService),{unitId:o,drawings:s}=r,c=a.getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot(),u=s.length>0&&s.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let{drawingId:e,key:n,value:r}of s){var m;let i=f(l,e);if(!i)return!1;let a=i.drawing,o=n===`srcRect`||n===`prstGeom`||n===`adjustValues`,s=o?n in a?Reflect.get(a,n):void 0:a==null||(m=a.docTransform)==null?void 0:m[n];if(!t.Tools.diffValue(s,r)){let e=o?[...i.path,n]:[...i.path,`docTransform`,n],t=s===void 0?d.insertOp(e,r):d.replaceOp(e,s,r);p.push(t)}}return!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null,debounce:!0})}},T=function(e){return e.INLINE=`inline`,e.BEHIND_TEXT=`behindText`,e.IN_FRONT_OF_TEXT=`inFrontOfText`,e.WRAP_SQUARE=`wrapSquare`,e.WRAP_TOP_AND_BOTTOM=`wrapTopAndBottom`,e}({}),E={inline:t.PositionedObjectLayoutType.INLINE,wrapSquare:t.PositionedObjectLayoutType.WRAP_SQUARE,wrapTopAndBottom:t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM,inFrontOfText:t.PositionedObjectLayoutType.WRAP_NONE,behindText:t.PositionedObjectLayoutType.WRAP_NONE},D={id:`doc.command.update-doc-drawing-wrapping-style`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let{drawings:i,wrappingStyle:a,unitId:o}=r,s=e.get(t.ICommandService),c=e.get(t.IUniverInstanceService).getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot();if(a!==`inline`&&i.some(({drawingId:e})=>{var t;return(t=f(l,e))==null?void 0:t.segmentId}))return!1;let u=i.length>0&&i.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let e of i){let n=f(l,e.drawingId),r=n==null?void 0:n.drawing;if(!r||!n)continue;let i=E[a];if(r.layoutType!==i&&p.push(d.replaceOp([...n.path,`layoutType`],r.layoutType,i)),a===`behindText`||a===`inFrontOfText`){let e=a===`behindText`?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE;r.behindDoc!==e&&p.push(d.replaceOp([...n.path,`behindDoc`],r.behindDoc,e))}if(a!==`inline`)for(let i of[`positionH`,`positionV`]){var m;let a=(m=e.docTransform)==null?void 0:m[i],o=r.docTransform[i];a&&!t.Tools.diffValue(o,a)&&p.push(d.replaceOp([...n.path,`docTransform`,i],o,a))}}let h={id:n.RichTextEditingMutation.id,params:{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null}};return!!s.syncExecuteCommand(h.id,h.params)}};var O=class extends r.UnitDrawingService{};let k=(0,t.createIdentifier)(`univer.doc.plugin.doc-drawing.service`);function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let M=`DOC_DRAWING_PLUGIN`;function N(e,t={}){return e.map((e,t)=>({drawingId:e,index:t})).sort((e,n)=>{let r=P(t[e.drawingId]);return r===P(t[n.drawingId])?e.index-n.index:r?-1:1}).map(({drawingId:e})=>e)}function P(e){return(e==null?void 0:e.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&e.behindDoc===t.BooleanNumber.TRUE}let F=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._docDrawingService=e,this._drawingManagerService=t,this._resourceManagerService=n,this._univerInstanceService=r,this._commandService=i,this._init()}_init(){this._initSnapshot(),this._initCommands()}_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;return JSON.stringify({data:e??{},order:t??[]})}return``},n=e=>{if(!e)return{data:{},order:[]};try{return JSON.parse(e)}catch{return{data:{},order:[]}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:M,businesses:[t.UniverInstanceType.UNIVER_DOC],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._unloadDrawingDataForUnit(e)},onLoad:(e,t)=>{this._setDrawingDataForUnit(e,{data:t.data??{},order:t.order??[]})}}))}_unloadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);n==null||n.resetDrawing({},[]),this._docDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)}_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,{drawings:i,drawingsOrder:a}=p(n.getSnapshot());if(!i||!a)return!1;let o={};for(let[t,n]of Object.entries(i))o[t]=n.unitId===e&&n.subUnitId===r?n:{...n,unitId:e,subUnitId:r};let s={[r]:{unitId:e,subUnitId:r,data:o,order:a}},c={};for(let[e,t]of Object.entries(o))c[e]={...t,hidden:!0};let l={[r]:{...s[r],data:c,order:N(a,i)}};return this._docDrawingService.registerDrawingData(e,s),this._drawingManagerService.registerDrawingData(e,l),!0}_initCommands(){[i,m,w,D,C].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};F=j([A(0,k),A(1,r.IDrawingManagerService),A(2,t.IResourceManagerService),A(3,t.IUniverInstanceService),A(4,t.ICommandService)],F);var I=`@univerjs/docs-drawing`,L=`1.0.2`;let R={},z=class extends t.Plugin{constructor(e=R,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},R,this._config);this._configService.setConfig(`docs-drawing.config`,i)}onStarting(){[[F],[d],[u,{useClass:d}],[O],[k,{useClass:O}]].forEach(e=>this._injector.add(e)),(0,t.touchDependencies)(this._injector,[[F]])}};l(z,`pluginName`,M),l(z,`packageName`,I),l(z,`version`,L),l(z,`type`,t.UniverInstanceType.UNIVER_DOC),z=j([(0,t.DependentOn)(n.UniverDocsPlugin,r.UniverDrawingPlugin),A(1,(0,t.Inject)(t.Injector)),A(2,t.IConfigService)],z),e.DOCS_DRAWING_PLUGIN=M,e.DocDrawingAdapterService=d,Object.defineProperty(e,"DocDrawingController",{enumerable:!0,get:function(){return F}}),e.DocDrawingService=O,e.IDocDrawingAdapterService=u,e.IDocDrawingService=k,e.InsertDocDrawingCommand=i,e.RemoveDocDrawingCommand=m,e.SetDocDrawingArrangeCommand=C,e.TextWrappingStyle=T,Object.defineProperty(e,"UniverDocsDrawingPlugin",{enumerable:!0,get:function(){return z}}),e.UpdateDocDrawingWrappingStyleCommand=D,e.UpdateDrawingDocTransformCommand=w,e.WRAPPING_STYLE_TO_LAYOUT_TYPE=E,e.collectDocDrawings=p,e.findDocDrawing=f,e.getDocDrawingRenderOrder=N});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/docs-drawing",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "private": false,
5
5
  "description": "Drawing model integration for Univer Docs.",
6
6
  "author": "DreamNum Co., Ltd. <developer@univer.ai>",
@@ -59,13 +59,13 @@
59
59
  "lib"
60
60
  ],
61
61
  "dependencies": {
62
- "@univerjs/core": "1.0.0",
63
- "@univerjs/docs": "1.0.0",
64
- "@univerjs/drawing": "1.0.0"
62
+ "@univerjs/core": "1.0.2",
63
+ "@univerjs/docs": "1.0.2",
64
+ "@univerjs/drawing": "1.0.2"
65
65
  },
66
66
  "devDependencies": {
67
- "@univerjs-infra/shared": "1.0.0",
68
- "@univerjs/engine-render": "1.0.0",
67
+ "@univerjs-infra/shared": "1.0.2",
68
+ "@univerjs/engine-render": "1.0.2",
69
69
  "typescript": "^6.0.3",
70
70
  "vitest": "^5.0.0"
71
71
  },