@univerjs/docs-drawing 1.0.0-alpha.8 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -243,7 +243,7 @@ export declare class FDocumentImage {
243
243
  *
244
244
  * if (image) {
245
245
  * // Float the image beside body text without covering it.
246
- * const success = image.setWrappingStyle(univerAPI.Enum.DocsImageWrappingStyle.WRAP_SQUARE);
246
+ * const success = image.setWrappingStyle(univerAPI.Enum.TextWrappingStyle.WRAP_SQUARE);
247
247
  * console.log(success);
248
248
  * }
249
249
  * ```
@@ -71,7 +71,7 @@ export interface IFDocumentImageMixin {
71
71
  * imageSourceType: univerAPI.Enum.ImageSourceType.URL,
72
72
  * width: 320,
73
73
  * // Keep the image in the text flow so it cannot cover surrounding text.
74
- * wrappingStyle: univerAPI.Enum.DocsImageWrappingStyle.INLINE,
74
+ * wrappingStyle: univerAPI.Enum.TextWrappingStyle.INLINE,
75
75
  * textRange: {
76
76
  * startOffset: 30,
77
77
  * },
@@ -87,7 +87,7 @@ export interface IFDocumentImageMixin {
87
87
  * imageSourceType: univerAPI.Enum.ImageSourceType.URL,
88
88
  * width: 320,
89
89
  * // Float the image and let body text flow beside its rectangular bounds.
90
- * wrappingStyle: univerAPI.Enum.DocsImageWrappingStyle.WRAP_SQUARE,
90
+ * wrappingStyle: univerAPI.Enum.TextWrappingStyle.WRAP_SQUARE,
91
91
  * textRange: {
92
92
  * startOffset: 30,
93
93
  * },
@@ -21,10 +21,11 @@ import { TextWrappingStyle } from '@univerjs/docs-drawing';
21
21
  */
22
22
  export interface IFDocumentImageEnumMixin {
23
23
  /**
24
- * Represents the wrapping styles used by docs image operations.
24
+ * Represents the text wrapping styles used by document drawings, including images and Shapes.
25
25
  *
26
26
  * Prefer `INLINE`, `WRAP_SQUARE`, or `WRAP_TOP_AND_BOTTOM` for ordinary document content.
27
27
  * `BEHIND_TEXT` and `IN_FRONT_OF_TEXT` are overlay styles that do not cause text to reflow.
28
+ * Use this property whenever a Facade signature references `TextWrappingStyle`.
28
29
  * @example
29
30
  * ```ts
30
31
  * const fDocument = univerAPI.getActiveDocument();
@@ -33,7 +34,7 @@ export interface IFDocumentImageEnumMixin {
33
34
  * imageSourceType: univerAPI.Enum.ImageSourceType.URL,
34
35
  * width: 320,
35
36
  * // Float the image and wrap body text around its rectangular bounds.
36
- * wrappingStyle: univerAPI.Enum.DocsImageWrappingStyle.WRAP_SQUARE,
37
+ * wrappingStyle: univerAPI.Enum.TextWrappingStyle.WRAP_SQUARE,
37
38
  * textRange: {
38
39
  * startOffset: 30,
39
40
  * },
@@ -41,7 +42,7 @@ export interface IFDocumentImageEnumMixin {
41
42
  * console.log(image);
42
43
  * ```
43
44
  */
44
- DocsImageWrappingStyle: typeof TextWrappingStyle;
45
+ TextWrappingStyle: typeof TextWrappingStyle;
45
46
  /**
46
47
  * Represents the horizontal position types used by docs image operations.
47
48
  * @example
@@ -78,7 +79,7 @@ export interface IFDocumentImageEnumMixin {
78
79
  DocsImageRelativeFromV: typeof ObjectRelativeFromV;
79
80
  }
80
81
  export declare class FDocumentImageEnumMixin extends FEnum implements IFDocumentImageEnumMixin {
81
- get DocsImageWrappingStyle(): typeof TextWrappingStyle;
82
+ get TextWrappingStyle(): typeof TextWrappingStyle;
82
83
  get DocsImageRelativeFromH(): typeof ObjectRelativeFromH;
83
84
  get DocsImageRelativeFromV(): typeof ObjectRelativeFromV;
84
85
  }
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/docs-drawing"),require("@univerjs/docs/facade"),require("@univerjs/drawing"),require("@univerjs/core/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/docs-drawing`,`@univerjs/docs/facade`,`@univerjs/drawing`,`@univerjs/core/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawingFacade={},e.UniverCore,e.UniverDocs,e.UniverDocsDrawing,e.UniverDocsFacade,e.UniverDrawing,e.UniverCoreFacade))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var s=class{constructor(e,t,n){this._document=e,this._imageId=t,this._injector=n}getUnitId(){return this._document.getId()}getId(){return this._imageId}getSource(){var e;return(e=this.getImageData())==null?void 0:e.source}getSourceType(){var e;return(e=this.getImageData())==null?void 0:e.imageSourceType}getSize(){var e,t;return(e=(t=this.getImageData())==null?void 0:t.docTransform.size)==null?null:e}getAngle(){var e;return(e=this.getImageData())==null?void 0:e.docTransform.angle}getPositionH(){var e,t;return(e=(t=this.getImageData())==null?void 0:t.docTransform.positionH)==null?null:e}getPositionV(){var e,t;return(e=(t=this.getImageData())==null?void 0:t.docTransform.positionV)==null?null:e}getImageData(){var e;let n=(e=this._document.getDocumentDataModel().getDrawings())==null?void 0:e[this._imageId];return!n||n.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:n}setSize(e,t){return this._updateTransform(`size`,{width:e,height:t})}setRotate(e){return this._updateTransform(`angle`,e)}setPositionH(e){return this._updateTransform(`positionH`,e)}setPositionV(e){return this._updateTransform(`positionV`,e)}setWrappingStyle(e){let n=this.getImageData();return n?this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDocDrawingWrappingStyleCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[n],wrappingStyle:e}):!1}setForward(){return this._arrange(t.ArrangeTypeEnum.forward)}setBackward(){return this._arrange(t.ArrangeTypeEnum.backward)}setBack(){return this._arrange(t.ArrangeTypeEnum.back)}setFront(){return this._arrange(t.ArrangeTypeEnum.front)}remove(){let e=this.getImageData(),n=this._getTextRange();return!e||!n?!1:this._injector.get(t.ICommandService).syncExecuteCommand(r.RemoveDocDrawingCommand.id,{unitId:this.getUnitId(),drawings:[{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingId:this._imageId,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE}],textRange:n})}_updateTransform(e,n){return this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDrawingDocTransformCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[{drawingId:this._imageId,key:e,value:n}]})}_arrange(e){return this._injector.get(t.ICommandService).syncExecuteCommand(r.SetDocDrawingArrangeCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingIds:[this._imageId],arrangeType:e})}_getTextRange(){let{body:e,headers:t={},footers:n={}}=this._document.getDocumentDataModel().getSnapshot(),r=[{segmentId:``,body:e},...Object.entries(t).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(n).map(([e,t])=>({segmentId:e,body:t.body}))];for(let{segmentId:e,body:t}of r){var i;let n=t==null||(i=t.customBlocks)==null?void 0:i.find(e=>e.blockId===this._imageId);if(n)return{startOffset:n.startIndex,endOffset:n.startIndex,collapsed:!0,segmentId:e}}return null}},c=class extends i.FDocument{async insertImage(e){var i,a,o,c;let u=this.getId(),d=(0,t.generateRandomId)(6),f=e.width!=null&&e.height!=null?{width:e.width,height:e.height}:l(await this._getIntrinsicSize(e.source,e.imageSourceType),e),p=(0,n.buildDocTransform)(f.width,f.height),m=(i=e.wrappingStyle)==null?r.TextWrappingStyle.INLINE:i,h={...p,angle:(a=e.angle)==null?p.angle:a,positionH:(o=e.positionH)==null?p.positionH:o,positionV:(c=e.positionV)==null?p.positionV:c},g=(0,n.docDrawingPositionToTransform)(h),_={unitId:u,subUnitId:u,drawingId:d,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:e.imageSourceType,source:e.source,transform:g,docTransform:h,behindDoc:m===r.TextWrappingStyle.BEHIND_TEXT?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE,title:``,description:``,layoutType:r.WRAPPING_STYLE_TO_LAYOUT_TYPE[m],wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};return this._injector.get(t.ICommandService).syncExecuteCommand(r.InsertDocDrawingCommand.id,{unitId:u,drawings:[_],textRange:e.textRange})?this._injector.createInstance(s,this,d,this._injector):null}getImage(e){var n;let r=(n=this.getDocumentDataModel().getDrawings())==null?void 0:n[e];return!r||r.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:this._injector.createInstance(s,this,e,this._injector)}getImages(){var e,n;let r=this.getDocumentDataModel(),i=(e=r.getDrawings())==null?{}:e;return((n=r.getDrawingsOrder())==null?Object.keys(i):n).filter(e=>{var n;return((n=i[e])==null?void 0:n.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE}).map(e=>this._injector.createInstance(s,this,e,this._injector))}async _getIntrinsicSize(e,n){let r=this._injector.has(t.IImageIoService)?this._injector.get(t.IImageIoService):null,i=e;if(n===t.ImageSourceType.UUID&&r)i=await r.getImage(e);else if(n===t.ImageSourceType.URL&&this._injector.has(t.IURLImageService))try{i=await this._injector.get(t.IURLImageService).getImage(e)}catch{i=e}let{width:o,height:s,image:c}=await(0,a.getImageSize)(i);return r==null||r.addImageSourceCache(e,n,c),{width:o,height:s}}};function l(e,t){let{width:n,height:r}=e;if(t.width!=null&&t.height!=null)return{width:t.width,height:t.height};if(t.width!=null)return{width:t.width,height:r*t.width/n};if(t.height!=null)return{width:n*t.height/r,height:t.height};let i=Math.min(1,a.DRAWING_IMAGE_WIDTH_LIMIT/n,a.DRAWING_IMAGE_HEIGHT_LIMIT/r);return{width:n*i,height:r*i}}i.FDocument.extend(c);var u=class extends o.FEnum{get DocsImageWrappingStyle(){return r.TextWrappingStyle}get DocsImageRelativeFromH(){return t.ObjectRelativeFromH}get DocsImageRelativeFromV(){return t.ObjectRelativeFromV}};o.FEnum.extend(u),e.FDocumentImage=s});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/docs-drawing"),require("@univerjs/docs/facade"),require("@univerjs/drawing"),require("@univerjs/core/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/docs-drawing`,`@univerjs/docs/facade`,`@univerjs/drawing`,`@univerjs/core/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawingFacade={},e.UniverCore,e.UniverDocs,e.UniverDocsDrawing,e.UniverDocsFacade,e.UniverDrawing,e.UniverCoreFacade))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var s=class{constructor(e,t,n){this._document=e,this._imageId=t,this._injector=n}getUnitId(){return this._document.getId()}getId(){return this._imageId}getSource(){var e;return(e=this.getImageData())==null?void 0:e.source}getSourceType(){var e;return(e=this.getImageData())==null?void 0:e.imageSourceType}getSize(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.size)??null}getAngle(){var e;return(e=this.getImageData())==null?void 0:e.docTransform.angle}getPositionH(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.positionH)??null}getPositionV(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.positionV)??null}getImageData(){var e;let n=(e=this._document.getDocumentDataModel().getDrawings())==null?void 0:e[this._imageId];return!n||n.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:n}setSize(e,t){return this._updateTransform(`size`,{width:e,height:t})}setRotate(e){return this._updateTransform(`angle`,e)}setPositionH(e){return this._updateTransform(`positionH`,e)}setPositionV(e){return this._updateTransform(`positionV`,e)}setWrappingStyle(e){let n=this.getImageData();return n?this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDocDrawingWrappingStyleCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[n],wrappingStyle:e}):!1}setForward(){return this._arrange(t.ArrangeTypeEnum.forward)}setBackward(){return this._arrange(t.ArrangeTypeEnum.backward)}setBack(){return this._arrange(t.ArrangeTypeEnum.back)}setFront(){return this._arrange(t.ArrangeTypeEnum.front)}remove(){let e=this.getImageData(),n=this._getTextRange();return!e||!n?!1:this._injector.get(t.ICommandService).syncExecuteCommand(r.RemoveDocDrawingCommand.id,{unitId:this.getUnitId(),drawings:[{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingId:this._imageId,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE}],textRange:n})}_updateTransform(e,n){return this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDrawingDocTransformCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[{drawingId:this._imageId,key:e,value:n}]})}_arrange(e){return this._injector.get(t.ICommandService).syncExecuteCommand(r.SetDocDrawingArrangeCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingIds:[this._imageId],arrangeType:e})}_getTextRange(){let{body:e,headers:t={},footers:n={}}=this._document.getDocumentDataModel().getSnapshot(),r=[{segmentId:``,body:e},...Object.entries(t).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(n).map(([e,t])=>({segmentId:e,body:t.body}))];for(let{segmentId:e,body:t}of r){var i;let n=t==null||(i=t.customBlocks)==null?void 0:i.find(e=>e.blockId===this._imageId);if(n)return{startOffset:n.startIndex,endOffset:n.startIndex,collapsed:!0,segmentId:e}}return null}},c=class extends i.FDocument{async insertImage(e){let i=this.getId(),a=(0,t.generateRandomId)(6),o=e.width!=null&&e.height!=null?{width:e.width,height:e.height}:l(await this._getIntrinsicSize(e.source,e.imageSourceType),e),c=(0,n.buildDocTransform)(o.width,o.height),u=e.wrappingStyle??r.TextWrappingStyle.INLINE,d={...c,angle:e.angle??c.angle,positionH:e.positionH??c.positionH,positionV:e.positionV??c.positionV},f=(0,n.docDrawingPositionToTransform)(d),p={unitId:i,subUnitId:i,drawingId:a,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:e.imageSourceType,source:e.source,transform:f,docTransform:d,behindDoc:u===r.TextWrappingStyle.BEHIND_TEXT?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE,title:``,description:``,layoutType:r.WRAPPING_STYLE_TO_LAYOUT_TYPE[u],wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};return this._injector.get(t.ICommandService).syncExecuteCommand(r.InsertDocDrawingCommand.id,{unitId:i,drawings:[p],textRange:e.textRange})?this._injector.createInstance(s,this,a,this._injector):null}getImage(e){var n;let r=(n=this.getDocumentDataModel().getDrawings())==null?void 0:n[e];return!r||r.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:this._injector.createInstance(s,this,e,this._injector)}getImages(){let e=this.getDocumentDataModel(),n=e.getDrawings()??{};return(e.getDrawingsOrder()??Object.keys(n)).filter(e=>{var r;return((r=n[e])==null?void 0:r.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE}).map(e=>this._injector.createInstance(s,this,e,this._injector))}async _getIntrinsicSize(e,n){let r=this._injector.has(t.IImageIoService)?this._injector.get(t.IImageIoService):null,i=e;if(n===t.ImageSourceType.UUID&&r)i=await r.getImage(e);else if(n===t.ImageSourceType.URL&&this._injector.has(t.IURLImageService))try{i=await this._injector.get(t.IURLImageService).getImage(e)}catch{i=e}let{width:o,height:s,image:c}=await(0,a.getImageSize)(i);return r==null||r.addImageSourceCache(e,n,c),{width:o,height:s}}};function l(e,t){let{width:n,height:r}=e;if(t.width!=null&&t.height!=null)return{width:t.width,height:t.height};if(t.width!=null)return{width:t.width,height:r*t.width/n};if(t.height!=null)return{width:n*t.height/r,height:t.height};let i=Math.min(1,a.DRAWING_IMAGE_WIDTH_LIMIT/n,a.DRAWING_IMAGE_HEIGHT_LIMIT/r);return{width:n*i,height:r*i}}i.FDocument.extend(c);var u=class extends o.FEnum{get TextWrappingStyle(){return r.TextWrappingStyle}get DocsImageRelativeFromH(){return t.ObjectRelativeFromH}get DocsImageRelativeFromV(){return t.ObjectRelativeFromV}};o.FEnum.extend(u),e.FDocumentImage=s});
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,l;if(!r)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUniverInstanceService),{unitId:f,drawings:p,textRange:m}=r,h=d.getUnit(f,t.UniverInstanceType.UNIVER_DOC);if(!h)return!1;let g=a(e,f,m);if(!g)return!1;let{collapsed:_,startOffset:v,segmentId:y=``}=g,b=(i=h.getSelfOrHeaderFooterModel(y))==null?void 0:i.getBody();if(!b)return!1;let x=new t.TextX,S=t.JSONX.getInstance(),C=[],w=h.getSnapshot(),T=(o=w.headers)!=null&&o[y]||(s=w.footers)!=null&&s[y]?p.map(e=>{var n;return{...e,isMultiTransform:t.BooleanNumber.TRUE,transforms:(n=e.transforms)==null?e.transform?[e.transform]:null:n}}):p,E=(c=(l=w.drawingsOrder)==null?void 0:l.length)==null?0:c,D=0;if(_)v>0&&x.push({t:t.TextXActionType.RETAIN,len:v});else{var O,k;let e=t.BuildTextUtils.selection.delete([g],b,0,null,!1);x.push(...e);let n=(0,t.getCustomBlockIdsInSelections)(b,[g]),r=(O=h.getDrawings())==null?{}:O,i=(k=h.getDrawingsOrder())==null?[]:k,a=n.sort((e,t)=>i.indexOf(e)>i.indexOf(t)?-1:+(i.indexOf(e)<i.indexOf(t)));if(a.length>0)for(let e of a){let t=r[e],n=i.indexOf(e);if(t==null||n<0)continue;let a=S.removeOp([`drawings`,e],t),o=S.removeOp([`drawingsOrder`,n],e);C.push(a),C.push(o),D++}}x.push({t:t.TextXActionType.INSERT,body:{dataStream:`\b`.repeat(T.length),customBlocks:T.map((e,t)=>({startIndex:t,blockId:e.drawingId}))},len:T.length});let A=(0,t.getRichTextEditPath)(h,y),j=S.editOp(x.serialize(),A);C.push(j);for(let e of T){let{drawingId:t}=e,n=S.insertOp([`drawings`,t],e),r=S.insertOp([`drawingsOrder`,E-D],t);C.push(n),C.push(r)}let M={id:n.RichTextEditingMutation.id,params:{unitId:f,actions:[],textRanges:[]}};return M.params.actions=C.reduce((e,n)=>t.JSONX.compose(e,n),null),!!u.syncExecuteCommand(M.id,M.params)}};function a(e,t,r){var i,a;let o=e.get(n.DocSelectionManagerService).getActiveTextRange(),s=r?(0,n.normalizeTextRange)(r):null,c=s==null?(0,n.getContentInsertRange)(e,t):s;return c?{...o,startOffset:c.startOffset,endOffset:c.endOffset,collapsed:c.startOffset===c.endOffset,segmentId:(i=(a=c.segmentId)==null?o==null?void 0:o.segmentId:a)==null?``:i}:o==null?null:o}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}};let f={id:`doc.command.remove-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,a,o,s,c;if(!r)return!1;let l=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=e.get(u),m=e.get(t.IUniverInstanceService),h=e.get(n.DocSelectionManagerService),{unitId:g,drawings:_,textRange:v}=r,y=m.getUnit(g,t.UniverInstanceType.UNIVER_DOC);if(!y||_.length===0)return!1;let b=h.getActiveTextRange(),x=v?(0,n.normalizeTextRange)(v):null,S=x==null?(0,n.getContentInsertRange)(e,g):x,C=(i=(a=S==null?void 0:S.segmentId)==null?b==null?void 0:b.segmentId:a)==null?``:i,w=new t.TextX,T=t.JSONX.getInstance(),E=(o=(s=y.getSelfOrHeaderFooterModel(C))==null||(s=s.getBody())==null?void 0:s.customBlocks)==null?[]:o,D=_.map(e=>E.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1);if(D.length===0)return!1;let O=(c=y.getDrawings())==null?{}:c,k=new Map(_.map(e=>[e.drawingId,e])),A=D.map(e=>O[e.blockId]).filter(e=>e!=null),j=[],M=[],N=[];for(let e of D){var P;let{blockId:t}=e,n=O[t];if(n==null)continue;let r=k.get(t),i=f.getRemoveDrawingMutationInfos({unitId:g,subUnitId:(P=r==null?void 0:r.subUnitId)==null?g:P,drawing:n,removeDrawings:A});(i.redoMutations.length!==0||i.undoMutations.length!==0)&&(j.push(...i.redoMutations),M.push(...i.undoMutations),N.push(i))}if(!p(N,l))return!1;let F=`doc-drawing-remove-resource:${g}:${D.map(e=>e.blockId).join(`,`)}`,I=null;(j.length>0||M.length>0)&&(I=d.__tempBatchingUndoRedo(g),d.pushUndoRedo({unitID:g,redoMutations:j,undoMutations:M,id:F}));let L=new t.MemoryCursor,R=D[0].startIndex,z=[{startOffset:R,endOffset:R}],B={id:n.RichTextEditingMutation.id,params:{unitId:g,actions:[],textRanges:z}},V=[];for(let e of D){let{startIndex:n}=e;n>L.cursor&&w.push({t:t.TextXActionType.RETAIN,len:n-L.cursor}),w.push({t:t.TextXActionType.DELETE,len:1}),L.moveCursorTo(n+1)}V.push(T.editOp(w.serialize(),(0,t.getRichTextEditPath)(y,C)));for(let e of D){let{blockId:t}=e,n=y.getDrawingsOrder().indexOf(t);V.push(T.removeOp([`drawings`,t],O[t])),V.push(T.removeOp([`drawingsOrder`,n],t))}B.params.actions=V.reduce((e,n)=>t.JSONX.compose(e,n),null);let H=l.syncExecuteCommand(B.id,B.params);return!H&&I!=null?(I.dispose(),d.rollback(F,g),!1):(I==null||I.dispose(),!!H)}};function p(e,t){let n=[];for(let r of e){if(!h(r.redoMutations,t))return m([...n].reverse(),t),!1;n.push(r.undoMutations)}return!0}function m(e,t){e.forEach(e=>h(e,t))}function h(e,t){for(let n of e)if(!t.syncExecuteCommand(n.id,n.params))return!1;return!0}let g=`drawingsOrder`;function _(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 v(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([g,o],[g,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 y={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,arrangeType:s}=r,c=e.get(t.IUniverInstanceService).getUnit(a,t.UniverInstanceType.UNIVER_DOC),l=c==null?void 0:c.getDrawingsOrder();if(!l)return!1;let u=v(l,_(l,o,s));return!t.JSONX.isNoop(u)&&!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:a,actions:u,textRanges:null})}},b={id:`doc.command.update-drawing-doc-transform`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i;if(!r)return!1;let a=e.get(t.ICommandService),o=e.get(t.IUniverInstanceService),{unitId:s,drawings:c}=r,l=o.getUnit(s,t.UniverInstanceType.UNIVER_DOC);if(!l)return!1;let u=(i=l.getSnapshot().drawings)==null?{}:i,d=t.JSONX.getInstance(),f=[];for(let{drawingId:e,key:n,value:r}of c){var p;let i=(p=u[e])==null||(p=p.docTransform)==null?void 0:p[n];if(!t.Tools.diffValue(i,r)){let t=[`drawings`,e,`docTransform`,n];f.push(i===void 0?d.insertOp(t,r):d.replaceOp(t,i,r))}}return!!a.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:s,actions:f.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null,debounce:!0})}},x=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}({}),S={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},C={id:`doc.command.update-doc-drawing-wrapping-style`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i;if(!r)return!1;let{drawings:a,wrappingStyle:o,unitId:s}=r,c=e.get(t.ICommandService),l=e.get(t.IUniverInstanceService).getUnit(s,t.UniverInstanceType.UNIVER_DOC);if(!l)return!1;let u=(i=l.getDrawings())==null?{}:i,d=t.JSONX.getInstance(),f=[];for(let e of a){let n=u[e.drawingId];if(!n)continue;let r=S[o];if(n.layoutType!==r&&f.push(d.replaceOp([`drawings`,e.drawingId,`layoutType`],n.layoutType,r)),o===`behindText`||o===`inFrontOfText`){let r=o===`behindText`?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE;n.behindDoc!==r&&f.push(d.replaceOp([`drawings`,e.drawingId,`behindDoc`],n.behindDoc,r))}if(o!==`inline`)for(let r of[`positionH`,`positionV`]){var p;let i=(p=e.docTransform)==null?void 0:p[r],a=n.docTransform[r];i&&!t.Tools.diffValue(a,i)&&f.push(d.replaceOp([`drawings`,e.drawingId,`docTransform`,r],a,i))}}let m={id:n.RichTextEditingMutation.id,params:{unitId:s,actions:f.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null}};return!!c.syncExecuteCommand(m.id,m.params)}};var w=class extends r.UnitDrawingService{};let T=(0,t.createIdentifier)(`univer.doc.plugin.doc-drawing.service`);function E(e,t){return function(n,r){t(n,r,e)}}function D(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let O=`DOC_DRAWING_PLUGIN`;function k(e,t={}){return e.map((e,t)=>({drawingId:e,index:t})).sort((e,n)=>{let r=A(t[e.drawingId]);return r===A(t[n.drawingId])?e.index-n.index:r?-1:1}).map(({drawingId:e})=>e)}function A(e){return(e==null?void 0:e.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&e.behindDoc===t.BooleanNumber.TRUE}let j=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==null?{}:e,order:t==null?[]:t})}return``},n=e=>{if(!e)return{data:{},order:[]};try{return JSON.parse(e)}catch{return{data:{},order:[]}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:O,businesses:[t.UniverInstanceType.UNIVER_DOC],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._setDrawingDataForUnit(e,{data:{},order:[]})},onLoad:(e,t)=>{var n,r;this._setDrawingDataForUnit(e,{data:(n=t.data)==null?{}:n,order:(r=t.order)==null?[]:r})}}))}_setDrawingDataForUnit(e,t){let n=this._univerInstanceService.getUnit(e);n!=null&&(n.resetDrawing(t.data,t.order),this.loadDrawingDataForUnit(e))}loadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!n)return!1;let r=e,i=n.getDrawings(),a=n.getDrawingsOrder();if(!i||!a)return!1;let o={[r]:{unitId:e,subUnitId:r,data:i,order:a}},s={[r]:{...o[r],order:k(a,i)}};return this._docDrawingService.registerDrawingData(e,o),this._drawingManagerService.registerDrawingData(e,s),!0}_initCommands(){[i,f,b,C,y].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};j=D([E(0,T),E(1,r.IDrawingManagerService),E(2,t.IResourceManagerService),E(3,t.IUniverInstanceService),E(4,t.ICommandService)],j);var M=`@univerjs/docs-drawing`,N=`1.0.0-alpha.8`;let P={},F=class extends t.Plugin{constructor(e=P,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},P,this._config);this._configService.setConfig(`docs-drawing.config`,i)}onStarting(){[[j],[d],[u,{useClass:d}],[w],[T,{useClass:w}]].forEach(e=>this._injector.add(e)),(0,t.touchDependencies)(this._injector,[[j]])}};l(F,`pluginName`,O),l(F,`packageName`,M),l(F,`version`,N),l(F,`type`,t.UniverInstanceType.UNIVER_DOC),F=D([(0,t.DependentOn)(n.UniverDocsPlugin,r.UniverDrawingPlugin),E(1,(0,t.Inject)(t.Injector)),E(2,t.IConfigService)],F),e.DOCS_DRAWING_PLUGIN=O,e.DocDrawingAdapterService=d,Object.defineProperty(e,"DocDrawingController",{enumerable:!0,get:function(){return j}}),e.DocDrawingService=w,e.IDocDrawingAdapterService=u,e.IDocDrawingService=T,e.InsertDocDrawingCommand=i,e.RemoveDocDrawingCommand=f,e.SetDocDrawingArrangeCommand=y,e.TextWrappingStyle=x,Object.defineProperty(e,"UniverDocsDrawingPlugin",{enumerable:!0,get:function(){return F}}),e.UpdateDocDrawingWrappingStyleCommand=C,e.UpdateDrawingDocTransformCommand=b,e.WRAPPING_STYLE_TO_LAYOUT_TYPE=S,e.getDocDrawingRenderOrder=k});
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;if(!r)return!1;let c=e.get(t.ICommandService),l=e.get(t.IUniverInstanceService),{unitId:u,drawings:d,textRange:f}=r,p=l.getUnit(u,t.UniverInstanceType.UNIVER_DOC);if(!p)return!1;let m=a(e,u,f);if(!m)return!1;let{segmentId:h=``}=m;if(!((i=p.getSelfOrHeaderFooterModel(h))!=null&&i.getBody()))return!1;let g=p.getSnapshot(),_=(o=g.headers)!=null&&o[h]||(s=g.footers)!=null&&s[h]?d.map(e=>({...e,isMultiTransform:t.BooleanNumber.TRUE,transforms:e.transforms??(e.transform?[e.transform]:null)})):d,v=t.BuildTextUtils.drawing.add({selection:m,documentDataModel:p,drawings:_});if(!v)return!1;let y={id:n.RichTextEditingMutation.id,params:{unitId:u,actions:[],textRanges:[]}};return y.params.actions=v,!!c.syncExecuteCommand(y.id,y.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}};let f={id:`doc.command.remove-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i;if(!r)return!1;let a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(u),c=e.get(t.IUniverInstanceService),l=e.get(n.DocSelectionManagerService),{unitId:d,drawings:f,textRange:m}=r,h=c.getUnit(d,t.UniverInstanceType.UNIVER_DOC);if(!h||f.length===0)return!1;let g=l.getActiveTextRange(),_=(m?(0,n.normalizeTextRange)(m):null)??(0,n.getContentInsertRange)(e,d),v=(_==null?void 0:_.segmentId)??(g==null?void 0:g.segmentId)??``,y=new t.TextX,b=t.JSONX.getInstance(),x=((i=h.getSelfOrHeaderFooterModel(v))==null||(i=i.getBody())==null?void 0:i.customBlocks)??[],S=f.map(e=>x.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1);if(S.length===0)return!1;let C=h.getDrawings()??{},w=new Map(f.map(e=>[e.drawingId,e])),T=S.map(e=>C[e.blockId]).filter(e=>e!=null),E=[],D=[],O=[];for(let e of S){let{blockId:t}=e,n=C[t];if(n==null)continue;let r=w.get(t),i=s.getRemoveDrawingMutationInfos({unitId:d,subUnitId:(r==null?void 0:r.subUnitId)??d,drawing:n,removeDrawings:T});(i.redoMutations.length!==0||i.undoMutations.length!==0)&&(E.push(...i.redoMutations),D.push(...i.undoMutations),O.push(i))}if(!p(O,a))return!1;let k=`doc-drawing-remove-resource:${d}:${S.map(e=>e.blockId).join(`,`)}`,A=null;(E.length>0||D.length>0)&&(A=o.__tempBatchingUndoRedo(d),o.pushUndoRedo({unitID:d,redoMutations:E,undoMutations:D,id:k}));let j=new t.MemoryCursor,M=S[0].startIndex,N=[{startOffset:M,endOffset:M}],P={id:n.RichTextEditingMutation.id,params:{unitId:d,actions:[],textRanges:N}},F=[];for(let e of S){let{startIndex:n}=e;n>j.cursor&&y.push({t:t.TextXActionType.RETAIN,len:n-j.cursor}),y.push({t:t.TextXActionType.DELETE,len:1}),j.moveCursorTo(n+1)}F.push(b.editOp(y.serialize(),(0,t.getRichTextEditPath)(h,v)));for(let e of S){let{blockId:t}=e,n=h.getDrawingsOrder().indexOf(t);F.push(b.removeOp([`drawings`,t],C[t])),F.push(b.removeOp([`drawingsOrder`,n],t))}P.params.actions=F.reduce((e,n)=>t.JSONX.compose(e,n),null);let I=a.syncExecuteCommand(P.id,P.params);return!I&&A!=null?(A.dispose(),o.rollback(k,d),!1):(A==null||A.dispose(),!!I)}};function p(e,t){let n=[];for(let r of e){if(!h(r.redoMutations,t))return m([...n].reverse(),t),!1;n.push(r.undoMutations)}return!0}function m(e,t){e.forEach(e=>h(e,t))}function h(e,t){for(let n of e)if(!t.syncExecuteCommand(n.id,n.params))return!1;return!0}let g=`drawingsOrder`;function _(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 v(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 y(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([g,o],[g,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 b={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=y(c,r.zOrder===void 0?_(c,o,r.arrangeType):v(c,o,r.zOrder));return!t.JSONX.isNoop(l)&&!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:a,actions:l,textRanges:null})}},x={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().drawings??{},u=t.JSONX.getInstance(),d=[];for(let{drawingId:e,key:n,value:r}of s){var f;let i=(f=l[e])==null||(f=f.docTransform)==null?void 0:f[n];if(!t.Tools.diffValue(i,r)){let t=[`drawings`,e,`docTransform`,n];d.push(i===void 0?u.insertOp(t,r):u.replaceOp(t,i,r))}}return!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:o,actions:d.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null,debounce:!0})}},S=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}({}),C={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},w={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.getDrawings()??{},u=t.JSONX.getInstance(),d=[];for(let e of i){let n=l[e.drawingId];if(!n)continue;let r=C[a];if(n.layoutType!==r&&d.push(u.replaceOp([`drawings`,e.drawingId,`layoutType`],n.layoutType,r)),a===`behindText`||a===`inFrontOfText`){let r=a===`behindText`?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE;n.behindDoc!==r&&d.push(u.replaceOp([`drawings`,e.drawingId,`behindDoc`],n.behindDoc,r))}if(a!==`inline`)for(let r of[`positionH`,`positionV`]){var f;let i=(f=e.docTransform)==null?void 0:f[r],a=n.docTransform[r];i&&!t.Tools.diffValue(a,i)&&d.push(u.replaceOp([`drawings`,e.drawingId,`docTransform`,r],a,i))}}let p={id:n.RichTextEditingMutation.id,params:{unitId:o,actions:d.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null}};return!!s.syncExecuteCommand(p.id,p.params)}};var T=class extends r.UnitDrawingService{};let E=(0,t.createIdentifier)(`univer.doc.plugin.doc-drawing.service`);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=`DOC_DRAWING_PLUGIN`;function A(e,t={}){return e.map((e,t)=>({drawingId:e,index:t})).sort((e,n)=>{let r=j(t[e.drawingId]);return r===j(t[n.drawingId])?e.index-n.index:r?-1:1}).map(({drawingId:e})=>e)}function j(e){return(e==null?void 0:e.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&e.behindDoc===t.BooleanNumber.TRUE}let M=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:k,businesses:[t.UniverInstanceType.UNIVER_DOC],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._setDrawingDataForUnit(e,{data:{},order:[]})},onLoad:(e,t)=>{this._setDrawingDataForUnit(e,{data:t.data??{},order:t.order??[]})}}))}_setDrawingDataForUnit(e,t){let n=this._univerInstanceService.getUnit(e);n!=null&&(n.resetDrawing(t.data,t.order),this.loadDrawingDataForUnit(e))}loadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!n)return!1;let r=e,i=n.getDrawings(),a=n.getDrawingsOrder();if(!i||!a)return!1;let o={[r]:{unitId:e,subUnitId:r,data:i,order:a}},s={[r]:{...o[r],order:A(a,i)}};return this._docDrawingService.registerDrawingData(e,o),this._drawingManagerService.registerDrawingData(e,s),!0}_initCommands(){[i,f,x,w,b].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};M=O([D(0,E),D(1,r.IDrawingManagerService),D(2,t.IResourceManagerService),D(3,t.IUniverInstanceService),D(4,t.ICommandService)],M);var N=`@univerjs/docs-drawing`,P=`1.0.0-beta.1`;let F={},I=class extends t.Plugin{constructor(e=F,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},F,this._config);this._configService.setConfig(`docs-drawing.config`,i)}onStarting(){[[M],[d],[u,{useClass:d}],[T],[E,{useClass:T}]].forEach(e=>this._injector.add(e)),(0,t.touchDependencies)(this._injector,[[M]])}};l(I,`pluginName`,k),l(I,`packageName`,N),l(I,`version`,P),l(I,`type`,t.UniverInstanceType.UNIVER_DOC),I=O([(0,t.DependentOn)(n.UniverDocsPlugin,r.UniverDrawingPlugin),D(1,(0,t.Inject)(t.Injector)),D(2,t.IConfigService)],I),e.DOCS_DRAWING_PLUGIN=k,e.DocDrawingAdapterService=d,Object.defineProperty(e,"DocDrawingController",{enumerable:!0,get:function(){return M}}),e.DocDrawingService=T,e.IDocDrawingAdapterService=u,e.IDocDrawingService=E,e.InsertDocDrawingCommand=i,e.RemoveDocDrawingCommand=f,e.SetDocDrawingArrangeCommand=b,e.TextWrappingStyle=S,Object.defineProperty(e,"UniverDocsDrawingPlugin",{enumerable:!0,get:function(){return I}}),e.UpdateDocDrawingWrappingStyleCommand=w,e.UpdateDrawingDocTransformCommand=x,e.WRAPPING_STYLE_TO_LAYOUT_TYPE=C,e.getDocDrawingRenderOrder=A});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/docs-drawing",
3
- "version": "1.0.0-alpha.8",
3
+ "version": "1.0.0-beta.1",
4
4
  "private": false,
5
5
  "description": "Drawing model integration for Univer Docs.",
6
6
  "author": "DreamNum Co., Ltd. <developer@univer.ai>",
@@ -59,15 +59,15 @@
59
59
  "lib"
60
60
  ],
61
61
  "dependencies": {
62
- "@univerjs/core": "1.0.0-alpha.8",
63
- "@univerjs/drawing": "1.0.0-alpha.8",
64
- "@univerjs/docs": "1.0.0-alpha.8"
62
+ "@univerjs/core": "1.0.0-beta.1",
63
+ "@univerjs/docs": "1.0.0-beta.1",
64
+ "@univerjs/drawing": "1.0.0-beta.1"
65
65
  },
66
66
  "devDependencies": {
67
67
  "typescript": "^6.0.3",
68
68
  "vitest": "^4.1.10",
69
- "@univerjs/engine-render": "1.0.0-alpha.8",
70
- "@univerjs-infra/shared": "1.0.0-alpha.8"
69
+ "@univerjs/engine-render": "1.0.0-beta.1",
70
+ "@univerjs-infra/shared": "1.0.0-beta.1"
71
71
  },
72
72
  "scripts": {
73
73
  "test": "vitest run",