@univerjs/docs 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var G=Object.defineProperty;var W=(r,s,e)=>s in r?G(r,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[s]=e;var d=(r,s,e)=>W(r,typeof s!="symbol"?s+"":s,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),C=require("@univerjs/engine-render"),v=require("rxjs"),T={id:"doc.operation.set-selections",type:c.CommandType.OPERATION,handler:()=>!0};var J=Object.getOwnPropertyDescriptor,Y=(r,s,e,t)=>{for(var n=t>1?void 0:t?J(s,e):s,i=r.length-1,o;i>=0;i--)(o=r[i])&&(n=o(n)||n);return n},k=(r,s)=>(e,t)=>s(e,t,r);exports.DocSelectionManagerService=class extends c.RxDisposable{constructor(e,t){super();d(this,"_currentSelection",null);d(this,"_textSelectionInfo",new Map);d(this,"_textSelection$",new v.Subject);d(this,"textSelection$",this._textSelection$.asObservable());d(this,"_refreshSelection$",new v.BehaviorSubject(null));d(this,"refreshSelection$",this._refreshSelection$.asObservable());this._commandService=e,this._univerInstanceService=t,this._listenCurrentUnit()}_listenCurrentUnit(){this._univerInstanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_DOC).pipe(v.takeUntil(this.dispose$)).subscribe(e=>{if(e==null)return;const t=e.getUnitId();this._setCurrentSelectionNotRefresh({unitId:t,subUnitId:t})})}__getCurrentSelection(){return this._currentSelection}getSelectionInfo(e=this._currentSelection){return this._getTextRanges(e)}refreshSelection(e=this._currentSelection){e!=null&&this._refresh(e)}__TEST_ONLY_setCurrentSelection(e){this._currentSelection=e,this._refresh(e)}getTextRanges(e=this._currentSelection){var t;return(t=this._getTextRanges(e))==null?void 0:t.textRanges}getRectRanges(e=this._currentSelection){var t;return(t=this._getTextRanges(e))==null?void 0:t.rectRanges}getDocRanges(e=this._currentSelection){var o,a;const t=(o=this.getTextRanges(e))!=null?o:[],n=(a=this.getRectRanges(e))!=null?a:[];return[...t,...n].filter(l=>l.startOffset!=null&&l.endOffset!=null).sort((l,u)=>l.startOffset>u.startOffset?1:l.startOffset<u.startOffset?-1:0)}getActiveTextRange(){const e=this._getTextRanges(this._currentSelection);if(e==null)return;const{textRanges:t}=e;return t.find(n=>n.isActive)}getActiveRectRange(){const e=this._getTextRanges(this._currentSelection);if(e==null)return;const{rectRanges:t}=e;return t.find(n=>n.isActive)}__TEST_ONLY_add(e,t=!0){this._currentSelection!=null&&this._addByParam({...this._currentSelection,textRanges:e,rectRanges:[],segmentId:"",segmentPage:-1,isEditing:t,style:C.NORMAL_TEXT_SELECTION_PLUGIN_STYLE})}replaceTextRanges(e,t=!0,n){return this.replaceDocRanges(e,this._currentSelection,t,n)}replaceDocRanges(e,t=this._currentSelection,n=!0,i){if(t==null)return;const{unitId:o,subUnitId:a}=t;this._refreshSelection$.next({unitId:o,subUnitId:a,docRanges:e,isEditing:n,options:i})}__replaceTextRangesWithNoRefresh(e,t){if(this._currentSelection==null)return;const n={...e,...t};this._replaceByParam(n),this._textSelection$.next(n);const{unitId:i,subUnitId:o,segmentId:a,style:l,textRanges:u,rectRanges:g,isEditing:S}=n,f=[...u,...g].filter(h=>h.startOffset!=null&&h.endOffset!=null).sort((h,_)=>h.startOffset>_.startOffset?1:h.startOffset<_.startOffset?-1:0);this._commandService.executeCommand(T.id,{unitId:i,subUnitId:o,segmentId:a,style:l,isEditing:S,ranges:f})}dispose(){this._textSelection$.complete(),this._refreshSelection$.complete()}_setCurrentSelectionNotRefresh(e){this._currentSelection=e}_getTextRanges(e){var i;if(e==null)return;const{unitId:t,subUnitId:n=""}=e;return(i=this._textSelectionInfo.get(t))==null?void 0:i.get(n)}_refresh(e){const t=this._getTextRanges(e);if(t==null)return;const{textRanges:n,rectRanges:i}=t,o=[...n,...i],{unitId:a,subUnitId:l}=e;this._refreshSelection$.next({unitId:a,subUnitId:l,docRanges:o,isEditing:!1})}_replaceByParam(e){const{unitId:t,subUnitId:n,...i}=e;this._textSelectionInfo.has(t)||this._textSelectionInfo.set(t,new Map),this._textSelectionInfo.get(t).set(n,{...i})}_addByParam(e){const{unitId:t,subUnitId:n,...i}=e;this._textSelectionInfo.has(t)||this._textSelectionInfo.set(t,new Map);const o=this._textSelectionInfo.get(t);o.has(n)?o.get(n).textRanges.push(...e.textRanges):o.set(n,{...i})}};exports.DocSelectionManagerService=Y([k(0,c.ICommandService),k(1,c.IUniverInstanceService)],exports.DocSelectionManagerService);var K=Object.getOwnPropertyDescriptor,q=(r,s,e,t)=>{for(var n=t>1?void 0:t?K(s,e):s,i=r.length-1,o;i>=0;i--)(o=r[i])&&(n=o(n)||n);return n},V=(r,s)=>(e,t)=>s(e,t,r);exports.DocSkeletonManagerService=class extends c.RxDisposable{constructor(e,t,n){super();d(this,"_skeleton");d(this,"_docViewModel");d(this,"_currentSkeleton$",new v.BehaviorSubject(null));d(this,"currentSkeleton$",this._currentSkeleton$.asObservable());d(this,"_currentSkeletonBefore$",new v.BehaviorSubject(null));d(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());d(this,"_currentViewModel$",new v.BehaviorSubject(null));d(this,"currentViewModel$",this._currentViewModel$.asObservable());this._context=e,this._localeService=t,this._univerInstanceService=n,this._init(),this._univerInstanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_DOC).pipe(v.takeUntil(this.dispose$)).subscribe(i=>{i&&i.getUnitId()===this._context.unitId&&this._update(i)})}dispose(){super.dispose(),this._currentSkeletonBefore$.complete(),this._currentSkeleton$.complete()}getSkeleton(){return this._skeleton}getViewModel(){return this._docViewModel}_init(){const e=this._context.unit;this._update(e)}_update(e){const t=this._context.unitId;if(e.getBody()==null)return;this._docViewModel&&c.isInternalEditorID(t)?(this._docViewModel.reset(e),this._context.unit=e):this._docViewModel||(this._docViewModel=this._buildDocViewModel(e)),this._skeleton||(this._skeleton=this._buildSkeleton(this._docViewModel));const n=this._skeleton;n.calculate(),this._currentSkeletonBefore$.next(n),this._currentSkeleton$.next(n),this._currentViewModel$.next(this._docViewModel)}_buildSkeleton(e){return C.DocumentSkeleton.create(e,this._localeService)}_buildDocViewModel(e){return new C.DocumentViewModel(e)}};exports.DocSkeletonManagerService=q([V(1,c.Inject(c.LocaleService)),V(2,c.IUniverInstanceService)],exports.DocSkeletonManagerService);class b extends c.RxDisposable{constructor(){super();d(this,"_docStateChangeParams$",new v.BehaviorSubject(null));d(this,"docStateChangeParams$",this._docStateChangeParams$.asObservable())}emitStateChangeInfo(e){this._docStateChangeParams$.next(e)}dispose(){super.dispose(),this._docStateChangeParams$.complete()}}const j="doc.mutation.rich-text-editing",x={id:j,type:c.CommandType.MUTATION,handler:(r,s)=>{var P,B;const{unitId:e,segmentId:t="",actions:n,textRanges:i,prevTextRanges:o,trigger:a,noHistory:l,isCompositionEnd:u,noNeedSetTextRange:g,debounce:S,isEditing:f=!0,isSync:h,syncer:_}=s,m=r.get(c.IUniverInstanceService),p=r.get(C.IRenderManagerService),R=r.get(b),I=m.getUniverDocInstance(e),E=(P=p.getRenderById(e))==null?void 0:P.with(exports.DocSkeletonManagerService).getViewModel();if(I==null||E==null)throw new Error(`DocumentDataModel or documentViewModel not found for unitId: ${e}`);const N=r.get(exports.DocSelectionManagerService),y=(B=N.getDocRanges())!=null?B:[],L=!!I.getSnapshot().disabled;if(c.JSONX.isNoop(n)||n&&n.length===0||L)return{unitId:e,actions:[],textRanges:y};const $=c.JSONX.invertWithDoc(n,I.getSnapshot());I.apply(n),E.reset(I),!g&&i&&a!=null&&!h&&queueMicrotask(()=>{N.replaceDocRanges(i,{unitId:e,subUnitId:e},f,s.options)});const z={commandId:j,unitId:e,segmentId:t,trigger:a,noHistory:l,debounce:S,redoState:{actions:n,textRanges:i},undoState:{actions:$,textRanges:o!=null?o:y},isCompositionEnd:u,isSync:h,syncer:_};return R.emitStateChangeInfo(z),{unitId:e,actions:$,textRanges:y}}},H="@univerjs/docs",Q="0.17.0",A={name:H,version:Q},Z={id:"doc.mutation.rename-doc",type:c.CommandType.MUTATION,handler:(r,s)=>{const t=r.get(c.IUniverInstanceService).getUnit(s.unitId,c.UniverInstanceType.UNIVER_DOC);return t?(t.setName(s.name),!0):!1}},ee="docs.config",X={};var te=Object.getOwnPropertyDescriptor,ne=(r,s,e,t)=>{for(var n=t>1?void 0:t?te(s,e):s,i=r.length-1,o;i>=0;i--)(o=r[i])&&(n=o(n)||n);return n},U=(r,s)=>(e,t)=>s(e,t,r);let M=class extends c.Disposable{constructor(r,s,e){super(),this._commandService=r,this._textSelectionManagerService=s,this._univerInstanceService=e,this._initSelectionChange()}_transformCustomRange(r,s){var o;const{startOffset:e,endOffset:t,collapsed:n}=s,i=(o=r.getCustomRanges())==null?void 0:o.filter(a=>!a.wholeEntity||e<=a.startIndex&&t>a.endIndex?!1:n?a.startIndex<e&&a.endIndex>=t:c.BuildTextUtils.range.isIntersects(e,t-1,a.startIndex,a.endIndex));if(i!=null&&i.length){let a=e,l=t;return i.forEach(u=>{a=Math.min(u.startIndex,a),l=Math.max(u.endIndex+1,l)}),{...s,startOffset:a,endOffset:l,collapsed:a===l}}return s}_initSelectionChange(){this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===T.id){const s=r.params,{unitId:e,ranges:t,isEditing:n}=s,i=this._univerInstanceService.getUnit(e);if(!i)return;const o=t.map(a=>this._transformCustomRange(i,a));o.some((a,l)=>t[l]!==a)&&this._textSelectionManagerService.replaceTextRanges(o,n)}}))}};M=ne([U(0,c.ICommandService),U(1,c.Inject(exports.DocSelectionManagerService)),U(2,c.IUniverInstanceService)],M);var se=Object.getOwnPropertyDescriptor,ie=(r,s,e,t)=>{for(var n=t>1?void 0:t?se(s,e):s,i=r.length-1,o;i>=0;i--)(o=r[i])&&(n=o(n)||n);return n},F=(r,s)=>(e,t)=>s(e,t,r),O;exports.UniverDocsPlugin=(O=class extends c.Plugin{constructor(s=X,e,t){super(),this._config=s,this._injector=e,this._configService=t;const{...n}=c.merge({},X,this._config);this._configService.setConfig(ee,n)}onStarting(){this._initializeDependencies(),this._initializeCommands()}_initializeCommands(){[x,Z,T].forEach(s=>{this._injector.get(c.ICommandService).registerCommand(s)})}_initializeDependencies(){[[exports.DocSelectionManagerService],[b],[M]].forEach(s=>this._injector.add(s))}onReady(){this._injector.get(M)}},d(O,"pluginName","DOCS_PLUGIN"),d(O,"packageName",A.name),d(O,"version",A.version),O);exports.UniverDocsPlugin=ie([F(1,c.Inject(c.Injector)),F(2,c.IConfigService)],exports.UniverDocsPlugin);const re=c.createInterceptorKey("CUSTOM_RANGE"),oe=c.createInterceptorKey("CUSTOM_DECORATION"),D={CUSTOM_RANGE:re,CUSTOM_DECORATION:oe};var ce=Object.getOwnPropertyDescriptor,ae=(r,s,e,t)=>{for(var n=t>1?void 0:t?ce(s,e):s,i=r.length-1,o;i>=0;i--)(o=r[i])&&(n=o(n)||n);return n},le=(r,s)=>(e,t)=>s(e,t,r);exports.DocInterceptorService=class extends c.Disposable{constructor(e,t){super();d(this,"_interceptorsByName",new Map);this._context=e,this._docSkeletonManagerService=t;const n=this._docSkeletonManagerService.getViewModel(),i=n.getDataModel().getUnitId();if(i===c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY||i===c.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;this.disposeWithMe(this.interceptDocumentViewModel(n)),this.disposeWithMe(this.intercept(D.CUSTOM_RANGE,{priority:-1,handler:(a,l,u)=>u(a)}));let o=new c.DisposableCollection;n.segmentViewModels$.subscribe(a=>{o.dispose(),o=new c.DisposableCollection,a.forEach(l=>{o.add(this.interceptDocumentViewModel(l))})}),this.disposeWithMe(o)}intercept(e,t){const n=e;this._interceptorsByName.has(n)||this._interceptorsByName.set(n,[]);const i=this._interceptorsByName.get(n);return i.push(t),this._interceptorsByName.set(n,i.sort((o,a)=>{var l,u;return((l=a.priority)!=null?l:0)-((u=o.priority)!=null?u:0)})),this.disposeWithMe(c.toDisposable(()=>c.remove(this._interceptorsByName.get(n),t)))}fetchThroughInterceptors(e){const t=e,n=this._interceptorsByName.get(t);return c.composeInterceptors(n||[])}interceptDocumentViewModel(e){const t=new c.DisposableCollection;return t.add(e.registerCustomRangeInterceptor({getCustomRange:n=>{var i;return this.fetchThroughInterceptors(D.CUSTOM_RANGE)(e.getCustomRangeRaw(n),{index:n,unitId:e.getDataModel().getUnitId(),customRanges:(i=e.getDataModel().getCustomRanges())!=null?i:[]})},getCustomDecoration:n=>{var i;return this.fetchThroughInterceptors(D.CUSTOM_DECORATION)(e.getCustomDecorationRaw(n),{index:n,unitId:e.getDataModel().getUnitId(),customDecorations:(i=e.getDataModel().getCustomDecorations())!=null?i:[]})}})),t}};exports.DocInterceptorService=ae([le(1,c.Inject(exports.DocSkeletonManagerService))],exports.DocInterceptorService);function w(r,s=""){if(!s)return["body"];const{headers:e,footers:t}=r.getSnapshot();if(e==null&&t==null)throw new Error("Document data model must have headers or footers when update by segment id");if((e==null?void 0:e[s])!=null)return["headers",s,"body"];if((t==null?void 0:t[s])!=null)return["footers",s,"body"];throw new Error("Segment id not found in headers or footers")}function ue(r,s,e){const{unitId:t,segmentId:n}=s,o=r.get(c.IUniverInstanceService).getUnit(t);if(!o)return!1;const a={id:x.id,params:{unitId:s.unitId,actions:[],textRanges:void 0}},l=c.JSONX.getInstance(),u=c.BuildTextUtils.customRange.add({...s,body:e});if(!u)return!1;const g=w(o,n);return a.params.actions=l.editOp(u.serialize(),g),a}function de(r,s){var I;const{rangeId:e,rangeType:t,wholeEntity:n,properties:i,unitId:o,selections:a}=s,l=r.get(exports.DocSelectionManagerService),u=r.get(c.IUniverInstanceService),g=a!=null?a:l.getTextRanges({unitId:o,subUnitId:o}),S=(I=g==null?void 0:g[0])==null?void 0:I.segmentId;if(!(g!=null&&g.length))return!1;const f=u.getUnit(o,c.UniverInstanceType.UNIVER_DOC);if(!f)return!1;const h=f.getSelfOrHeaderFooterModel(S).getBody();if(!h)return!1;const _=c.BuildTextUtils.customRange.add({ranges:g,rangeId:e,rangeType:t,segmentId:S,wholeEntity:n,properties:i,body:h});if(!_)return!1;const m=c.JSONX.getInstance(),p={id:x.id,params:{unitId:o,actions:[],textRanges:_.selections,segmentId:S},textX:_},R=w(f,S);return p.params.actions=m.editOp(_.serialize(),R),p}function ge(r,s){const{unitId:e,segmentId:t,insert:n}=s,o=r.get(c.IUniverInstanceService).getUnit(e);if(!o)return!1;const a={id:x.id,params:{unitId:s.unitId,actions:[],textRanges:void 0,segmentId:t}},l=c.JSONX.getInstance(),u=c.BuildTextUtils.customRange.delete({documentDataModel:o,rangeId:s.rangeId,insert:n,segmentId:t});if(!u)return!1;const g=w(o,t);return a.params.actions=l.editOp(u.serialize(),g),a.params.textRanges=u.selections,a}function he(r,s){var _,m,p,R;const{unitId:e,body:t,doc:n}=s;let i=n;if(i||(i=r.get(c.IUniverInstanceService).getUnit(e)),!i)return!1;const o=(_=s.selection)==null?void 0:_.segmentId,a=(m=i.getSelfOrHeaderFooterModel(o))==null?void 0:m.getBody();if(!a)return!1;const l=r.get(exports.DocSelectionManagerService),u=(p=s.selection)!=null?p:l.getActiveTextRange();if(!u||!a)return!1;const g=(R=s.textRanges)!=null?R:[{startOffset:u.startOffset+t.dataStream.length,endOffset:u.startOffset+t.dataStream.length,collapsed:!0,segmentId:o}],S=c.BuildTextUtils.selection.replace({selection:u,body:t,doc:i});if(!S)return!1;const f={id:x.id,params:{unitId:e,actions:[],textRanges:g,debounce:!0,segmentId:o},textX:S},h=c.JSONX.getInstance();return f.params.actions=h.editOp(S.serialize()),f}exports.DOC_INTERCEPTOR_POINT=D;exports.DocStateEmitService=b;exports.RichTextEditingMutation=x;exports.SetTextSelectionsOperation=T;exports.addCustomRangeBySelectionFactory=de;exports.addCustomRangeFactory=ue;exports.deleteCustomRangeFactory=ge;exports.replaceSelectionFactory=he;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/engine-render`),n=require(`rxjs`);const r={id:`doc.operation.set-selections`,type:e.CommandType.OPERATION,handler:()=>!0};function i(e){"@babel/helpers - typeof";return i=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},i(e)}function a(e,t){if(i(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(i(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function o(e){var t=a(e,`string`);return i(t)==`symbol`?t:t+``}function s(e,t,n){return(t=o(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){return function(n,r){t(n,r,e)}}function l(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let u=class extends e.RxDisposable{constructor(e,t){super(),this._commandService=e,this._univerInstanceService=t,s(this,`_currentSelection`,null),s(this,`_textSelectionInfo`,new Map),s(this,`_textSelection$`,new n.Subject),s(this,`textSelection$`,this._textSelection$.asObservable()),s(this,`_refreshSelection$`,new n.BehaviorSubject(null)),s(this,`refreshSelection$`,this._refreshSelection$.asObservable()),this._listenCurrentUnit()}_listenCurrentUnit(){this._univerInstanceService.getCurrentTypeOfUnit$(e.UniverInstanceType.UNIVER_DOC).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{if(e==null)return;let t=e.getUnitId();this._setCurrentSelectionNotRefresh({unitId:t,subUnitId:t})})}__getCurrentSelection(){return this._currentSelection}getSelectionInfo(e=this._currentSelection){return this._getTextRanges(e)}refreshSelection(e=this._currentSelection){e!=null&&this._refresh(e)}__TEST_ONLY_setCurrentSelection(e){this._currentSelection=e,this._refresh(e)}getTextRanges(e=this._currentSelection){var t;return(t=this._getTextRanges(e))==null?void 0:t.textRanges}getRectRanges(e=this._currentSelection){var t;return(t=this._getTextRanges(e))==null?void 0:t.rectRanges}getDocRanges(e=this._currentSelection){var t,n;let r=(t=this.getTextRanges(e))==null?[]:t,i=(n=this.getRectRanges(e))==null?[]:n;return[...r,...i].filter(e=>e.startOffset!=null&&e.endOffset!=null).sort((e,t)=>e.startOffset>t.startOffset?1:e.startOffset<t.startOffset?-1:0)}getActiveTextRange(){let e=this._getTextRanges(this._currentSelection);if(e==null)return;let{textRanges:t}=e;return t.find(e=>e.isActive)}getActiveRectRange(){let e=this._getTextRanges(this._currentSelection);if(e==null)return;let{rectRanges:t}=e;return t.find(e=>e.isActive)}__TEST_ONLY_add(e,n=!0){this._currentSelection!=null&&this._addByParam({...this._currentSelection,textRanges:e,rectRanges:[],segmentId:``,segmentPage:-1,isEditing:n,style:t.NORMAL_TEXT_SELECTION_PLUGIN_STYLE})}replaceTextRanges(e,t=!0,n){return this.replaceDocRanges(e,this._currentSelection,t,n)}replaceDocRanges(e,t=this._currentSelection,n=!0,r){if(t==null)return;let{unitId:i,subUnitId:a}=t;this._refreshSelection$.next({unitId:i,subUnitId:a,docRanges:e,isEditing:n,options:r})}__replaceTextRangesWithNoRefresh(e,t){if(this._currentSelection==null)return;let n={...e,...t};this._replaceByParam(n),this._textSelection$.next(n);let{unitId:i,subUnitId:a,segmentId:o,style:s,textRanges:c,rectRanges:l,isEditing:u}=n,d=[...c,...l].filter(e=>e.startOffset!=null&&e.endOffset!=null).sort((e,t)=>e.startOffset>t.startOffset?1:e.startOffset<t.startOffset?-1:0);this._commandService.executeCommand(r.id,{unitId:i,subUnitId:a,segmentId:o,style:s,isEditing:u,ranges:d})}dispose(){this._textSelection$.complete(),this._refreshSelection$.complete()}_setCurrentSelectionNotRefresh(e){this._currentSelection=e}_getTextRanges(e){var t;if(e==null)return;let{unitId:n,subUnitId:r=``}=e;return(t=this._textSelectionInfo.get(n))==null?void 0:t.get(r)}_refresh(e){let t=this._getTextRanges(e);if(t==null)return;let{textRanges:n,rectRanges:r}=t,i=[...n,...r],{unitId:a,subUnitId:o}=e;this._refreshSelection$.next({unitId:a,subUnitId:o,docRanges:i,isEditing:!1})}_replaceByParam(e){let{unitId:t,subUnitId:n,...r}=e;this._textSelectionInfo.has(t)||this._textSelectionInfo.set(t,new Map),this._textSelectionInfo.get(t).set(n,{...r})}_addByParam(e){let{unitId:t,subUnitId:n,...r}=e;this._textSelectionInfo.has(t)||this._textSelectionInfo.set(t,new Map);let i=this._textSelectionInfo.get(t);i.has(n)?i.get(n).textRanges.push(...e.textRanges):i.set(n,{...r})}};u=l([c(0,e.ICommandService),c(1,e.IUniverInstanceService)],u);let d=class extends e.RxDisposable{constructor(t,r,i){super(),this._context=t,this._localeService=r,this._univerInstanceService=i,s(this,`_skeleton`,void 0),s(this,`_docViewModel`,void 0),s(this,`_currentSkeleton$`,new n.BehaviorSubject(null)),s(this,`currentSkeleton$`,this._currentSkeleton$.asObservable()),s(this,`_currentSkeletonBefore$`,new n.BehaviorSubject(null)),s(this,`currentSkeletonBefore$`,this._currentSkeletonBefore$.asObservable()),s(this,`_currentViewModel$`,new n.BehaviorSubject(null)),s(this,`currentViewModel$`,this._currentViewModel$.asObservable()),this._init(),this._univerInstanceService.getCurrentTypeOfUnit$(e.UniverInstanceType.UNIVER_DOC).pipe((0,n.takeUntil)(this.dispose$)).subscribe(e=>{e&&e.getUnitId()===this._context.unitId&&this._update(e)})}dispose(){super.dispose(),this._currentSkeletonBefore$.complete(),this._currentSkeleton$.complete()}getSkeleton(){return this._skeleton}getViewModel(){return this._docViewModel}_init(){let e=this._context.unit;this._update(e)}_update(t){let n=this._context.unitId;if(t.getBody()==null)return;this._docViewModel&&(0,e.isInternalEditorID)(n)?(this._docViewModel.reset(t),this._context.unit=t):this._docViewModel||(this._docViewModel=this._buildDocViewModel(t)),this._skeleton||(this._skeleton=this._buildSkeleton(this._docViewModel));let r=this._skeleton;r.calculate(),this._currentSkeletonBefore$.next(r),this._currentSkeleton$.next(r),this._currentViewModel$.next(this._docViewModel)}_buildSkeleton(e){return t.DocumentSkeleton.create(e,this._localeService)}_buildDocViewModel(e){return new t.DocumentViewModel(e)}};d=l([c(1,(0,e.Inject)(e.LocaleService)),c(2,e.IUniverInstanceService)],d);var f=class extends e.RxDisposable{constructor(){super(),s(this,`_docStateChangeParams$`,new n.BehaviorSubject(null)),s(this,`docStateChangeParams$`,this._docStateChangeParams$.asObservable())}emitStateChangeInfo(e){this._docStateChangeParams$.next(e)}dispose(){super.dispose(),this._docStateChangeParams$.complete()}};const p=`doc.mutation.rich-text-editing`,m={id:p,type:e.CommandType.MUTATION,handler:(n,r)=>{var i,a;let{unitId:o,segmentId:s=``,actions:c,textRanges:l,prevTextRanges:m,trigger:h,noHistory:g,isCompositionEnd:_,noNeedSetTextRange:v,debounce:y,isEditing:b=!0,isSync:x,syncer:S}=r,C=n.get(e.IUniverInstanceService),w=n.get(t.IRenderManagerService),T=n.get(f),E=C.getUniverDocInstance(o),D=(i=w.getRenderById(o))==null?void 0:i.with(d).getViewModel();if(E==null||D==null)throw Error(`DocumentDataModel or documentViewModel not found for unitId: ${o}`);let O=n.get(u),k=(a=O.getDocRanges())==null?[]:a,A=!!E.getSnapshot().disabled;if(e.JSONX.isNoop(c)||c&&c.length===0||A)return{unitId:o,actions:[],textRanges:k};let j=e.JSONX.invertWithDoc(c,E.getSnapshot());E.apply(c),D.reset(E),!v&&l&&h!=null&&!x&&queueMicrotask(()=>{O.replaceDocRanges(l,{unitId:o,subUnitId:o},b,r.options)});let M={commandId:p,unitId:o,segmentId:s,trigger:h,noHistory:g,debounce:y,redoState:{actions:c,textRanges:l},undoState:{actions:j,textRanges:m==null?k:m},isCompositionEnd:_,isSync:x,syncer:S};return T.emitStateChangeInfo(M),{unitId:o,actions:j,textRanges:k}}};var h=`@univerjs/docs`,g=`0.18.0`;const _={id:`doc.mutation.rename-doc`,type:e.CommandType.MUTATION,handler:(t,n)=>{let r=t.get(e.IUniverInstanceService).getUnit(n.unitId,e.UniverInstanceType.UNIVER_DOC);return r?(r.setName(n.name),!0):!1}},v=`docs.config`;Symbol(v);const y={};let b=class extends e.Disposable{constructor(e,t,n){super(),this._commandService=e,this._textSelectionManagerService=t,this._univerInstanceService=n,this._initSelectionChange()}_transformCustomRange(t,n){var r;let{startOffset:i,endOffset:a,collapsed:o}=n,s=(r=t.getCustomRanges())==null?void 0:r.filter(t=>!t.wholeEntity||i<=t.startIndex&&a>t.endIndex?!1:o?t.startIndex<i&&t.endIndex>=a:e.BuildTextUtils.range.isIntersects(i,a-1,t.startIndex,t.endIndex));if(s!=null&&s.length){let e=i,t=a;return s.forEach(n=>{e=Math.min(n.startIndex,e),t=Math.max(n.endIndex+1,t)}),{...n,startOffset:e,endOffset:t,collapsed:e===t}}return n}_initSelectionChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===r.id){let{unitId:t,ranges:n,isEditing:r}=e.params,i=this._univerInstanceService.getUnit(t);if(!i)return;let a=n.map(e=>this._transformCustomRange(i,e));a.some((e,t)=>n[t]!==e)&&this._textSelectionManagerService.replaceTextRanges(a,r)}}))}};b=l([c(0,e.ICommandService),c(1,(0,e.Inject)(u)),c(2,e.IUniverInstanceService)],b);let x=class extends e.Plugin{constructor(t=y,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{...i}=(0,e.merge)({},y,this._config);this._configService.setConfig(v,i)}onStarting(){this._initializeDependencies(),this._initializeCommands()}_initializeCommands(){[m,_,r].forEach(t=>{this._injector.get(e.ICommandService).registerCommand(t)})}_initializeDependencies(){[[u],[f],[b]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(b)}};s(x,`pluginName`,`DOCS_PLUGIN`),s(x,`packageName`,h),s(x,`version`,g),x=l([c(1,(0,e.Inject)(e.Injector)),c(2,e.IConfigService)],x);const S={CUSTOM_RANGE:(0,e.createInterceptorKey)(`CUSTOM_RANGE`),CUSTOM_DECORATION:(0,e.createInterceptorKey)(`CUSTOM_DECORATION`)};let C=class extends e.Disposable{constructor(t,n){super(),this._context=t,this._docSkeletonManagerService=n,s(this,`_interceptorsByName`,new Map);let r=this._docSkeletonManagerService.getViewModel(),i=r.getDataModel().getUnitId();if(i===e.DOCS_NORMAL_EDITOR_UNIT_ID_KEY||i===e.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;this.disposeWithMe(this.interceptDocumentViewModel(r)),this.disposeWithMe(this.intercept(S.CUSTOM_RANGE,{priority:-1,handler:(e,t,n)=>n(e)}));let a=new e.DisposableCollection;r.segmentViewModels$.subscribe(t=>{a.dispose(),a=new e.DisposableCollection,t.forEach(e=>{a.add(this.interceptDocumentViewModel(e))})}),this.disposeWithMe(a)}intercept(t,n){let r=t;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);let i=this._interceptorsByName.get(r);return i.push(n),this._interceptorsByName.set(r,i.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)})),this.disposeWithMe((0,e.toDisposable)(()=>(0,e.remove)(this._interceptorsByName.get(r),n)))}fetchThroughInterceptors(t){let n=t;return(0,e.composeInterceptors)(this._interceptorsByName.get(n)||[])}interceptDocumentViewModel(t){let n=new e.DisposableCollection;return n.add(t.registerCustomRangeInterceptor({getCustomRange:e=>{var n;return this.fetchThroughInterceptors(S.CUSTOM_RANGE)(t.getCustomRangeRaw(e),{index:e,unitId:t.getDataModel().getUnitId(),customRanges:(n=t.getDataModel().getCustomRanges())==null?[]:n})},getCustomDecoration:e=>{var n;return this.fetchThroughInterceptors(S.CUSTOM_DECORATION)(t.getCustomDecorationRaw(e),{index:e,unitId:t.getDataModel().getUnitId(),customDecorations:(n=t.getDataModel().getCustomDecorations())==null?[]:n})}})),n}};C=l([c(1,(0,e.Inject)(d))],C);function w(e,t=``){if(!t)return[`body`];let{headers:n,footers:r}=e.getSnapshot();if(n==null&&r==null)throw Error(`Document data model must have headers or footers when update by segment id`);if((n==null?void 0:n[t])!=null)return[`headers`,t,`body`];if((r==null?void 0:r[t])!=null)return[`footers`,t,`body`];throw Error(`Segment id not found in headers or footers`)}function T(t,n,r){let{unitId:i,segmentId:a}=n,o=t.get(e.IUniverInstanceService).getUnit(i);if(!o)return!1;let s={id:m.id,params:{unitId:n.unitId,actions:[],textRanges:void 0}},c=e.JSONX.getInstance(),l=e.BuildTextUtils.customRange.add({...n,body:r});if(!l)return!1;let u=w(o,a);return s.params.actions=c.editOp(l.serialize(),u),s}function E(t,n){var r;let{rangeId:i,rangeType:a,wholeEntity:o,properties:s,unitId:c,selections:l}=n,d=t.get(u),f=t.get(e.IUniverInstanceService),p=l==null?d.getTextRanges({unitId:c,subUnitId:c}):l,h=p==null||(r=p[0])==null?void 0:r.segmentId;if(!(p!=null&&p.length))return!1;let g=f.getUnit(c,e.UniverInstanceType.UNIVER_DOC);if(!g)return!1;let _=g.getSelfOrHeaderFooterModel(h).getBody();if(!_)return!1;let v=e.BuildTextUtils.customRange.add({ranges:p,rangeId:i,rangeType:a,segmentId:h,wholeEntity:o,properties:s,body:_});if(!v)return!1;let y=e.JSONX.getInstance(),b={id:m.id,params:{unitId:c,actions:[],textRanges:v.selections,segmentId:h},textX:v},x=w(g,h);return b.params.actions=y.editOp(v.serialize(),x),b}function D(t,n){let{unitId:r,segmentId:i,insert:a}=n,o=t.get(e.IUniverInstanceService).getUnit(r);if(!o)return!1;let s={id:m.id,params:{unitId:n.unitId,actions:[],textRanges:void 0,segmentId:i}},c=e.JSONX.getInstance(),l=e.BuildTextUtils.customRange.delete({documentDataModel:o,rangeId:n.rangeId,insert:a,segmentId:i});if(!l)return!1;let u=w(o,i);return s.params.actions=c.editOp(l.serialize(),u),s.params.textRanges=l.selections,s}function O(t,n){var r,i,a,o;let{unitId:s,body:c,doc:l}=n,d=l;if(d||(d=t.get(e.IUniverInstanceService).getUnit(s)),!d)return!1;let f=(r=n.selection)==null?void 0:r.segmentId,p=(i=d.getSelfOrHeaderFooterModel(f))==null?void 0:i.getBody();if(!p)return!1;let h=t.get(u),g=(a=n.selection)==null?h.getActiveTextRange():a;if(!g||!p)return!1;let _=(o=n.textRanges)==null?[{startOffset:g.startOffset+c.dataStream.length,endOffset:g.startOffset+c.dataStream.length,collapsed:!0,segmentId:f}]:o,v=e.BuildTextUtils.selection.replace({selection:g,body:c,doc:d});if(!v)return!1;let y={id:m.id,params:{unitId:s,actions:[],textRanges:_,debounce:!0,segmentId:f},textX:v},b=e.JSONX.getInstance();return y.params.actions=b.editOp(v.serialize()),y}exports.DOC_INTERCEPTOR_POINT=S,Object.defineProperty(exports,`DocInterceptorService`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`DocSelectionManagerService`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`DocSkeletonManagerService`,{enumerable:!0,get:function(){return d}}),exports.DocStateEmitService=f,exports.RichTextEditingMutation=m,exports.SetTextSelectionsOperation=r,Object.defineProperty(exports,`UniverDocsPlugin`,{enumerable:!0,get:function(){return x}}),exports.addCustomRangeBySelectionFactory=E,exports.addCustomRangeFactory=T,exports.deleteCustomRangeFactory=D,exports.replaceSelectionFactory=O;