@univerjs/docs 0.1.0-beta.3 → 0.1.0-beta.5
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 +1 -2
- package/lib/es/index.js +1287 -1901
- package/lib/types/basics/retain-delete-params.d.ts +1 -1
- package/lib/types/commands/commands/ime-input.command.d.ts +2 -5
- package/lib/types/commands/commands/list.command.d.ts +4 -4
- package/lib/types/commands/mutations/core-editing.mutation.d.ts +10 -4
- package/lib/types/controllers/ime-input.controller.d.ts +3 -5
- package/lib/types/controllers/text-selection.controller.d.ts +1 -3
- package/lib/types/index.d.ts +5 -2
- package/lib/types/services/doc-skeleton-manager.service.d.ts +1 -1
- package/lib/types/services/doc-state-change-manager.service.d.ts +45 -0
- package/lib/types/services/ime-input-manager.service.d.ts +12 -1
- package/lib/types/services/text-selection-manager.service.d.ts +2 -1
- package/lib/umd/index.js +1 -2
- package/package.json +24 -15
- package/lib/types/commands/commands/clipboard.command.d.ts +0 -19
- package/lib/types/controllers/clipboard.controller.d.ts +0 -33
- package/lib/types/services/clipboard/__test__/html-and-udm-convert.spec.d.ts +0 -16
- package/lib/types/services/clipboard/clipboard.service.d.ts +0 -42
- package/lib/types/services/clipboard/copy-content-cache.d.ts +0 -25
- package/lib/types/services/clipboard/html-to-udm/converter.d.ts +0 -30
- package/lib/types/services/clipboard/html-to-udm/parse-node-style.d.ts +0 -17
- package/lib/types/services/clipboard/html-to-udm/parse-to-dom.d.ts +0 -16
- package/lib/types/services/clipboard/html-to-udm/paste-plugins/plugin-lark.d.ts +0 -18
- package/lib/types/services/clipboard/html-to-udm/paste-plugins/plugin-word.d.ts +0 -18
- package/lib/types/services/clipboard/html-to-udm/paste-plugins/type.d.ts +0 -30
- package/lib/types/services/clipboard/html-to-udm/utils.d.ts +0 -18
- package/lib/types/services/clipboard/udm-to-html/convertor.d.ts +0 -19
- package/lib/types/shortcuts/core-editing.shortcut.d.ts +0 -19
- package/lib/types/shortcuts/cursor.shortcut.d.ts +0 -25
package/lib/cjs/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";var ut=Object.defineProperty;var mt=(i,t,e)=>t in i?ut(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var v=(i,t,e)=>(mt(i,typeof t!="symbol"?t+"":t,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@univerjs/core"),M=require("@univerjs/engine-render"),L=require("rxjs"),D=require("@univerjs/ui"),E=require("@wendellhu/redi");function Q(i,t){const n=i.getCurrentUniverDocInstance().getUnitId(),r=t.getRenderById(n);if(r==null)return;const{mainComponent:o,scene:s,engine:c}=r;return{document:o,scene:s,engine:c}}function gt(i,t){const e=t.getRenderById(i);if(e==null)return;const{mainComponent:n,scene:r,engine:o}=e;return{document:n,scene:r,engine:o}}var ve=(i=>(i.MAIN="__Document_Render_Main__",i))(ve||{}),Me=(i=>(i.VIEW_MAIN="viewMain",i.VIEW_TOP="viewTop",i.VIEW_LEFT="viewLeft",i.VIEW_LEFT_TOP="viewLeftTop",i))(Me||{});const De=0,Qe=2,et=10,pt="normalTextSelectionPluginName",Ue={id:"doc.operation.set-selections",type:a.CommandType.OPERATION,handler:(i,t)=>!0};var ht=Object.defineProperty,ft=Object.getOwnPropertyDescriptor,St=(i,t,e,n)=>{for(var r=n>1?void 0:n?ft(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&ht(t,e,r),r},ze=(i,t)=>(e,n)=>t(e,n,i);function We(i){const{startOffset:t,endOffset:e,collapsed:n}=i;return{startOffset:t,endOffset:e,collapsed:n}}exports.TextSelectionManagerService=class extends a.RxDisposable{constructor(e,n){super();v(this,"_currentSelection",null);v(this,"_textSelectionInfo",new Map);v(this,"_textSelection$",new L.BehaviorSubject(null));v(this,"textSelection$",this._textSelection$.asObservable());this._textSelectionRenderManager=e,this._commandService=n,this._syncSelectionFromRenderService()}getCurrentSelection(){return this._currentSelection}getCurrentSelectionInfo(){return this._getTextRanges(this._currentSelection)}dispose(){this._textSelection$.complete()}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._currentSelection=e,this._refresh(e)}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelections(){var e;return(e=this._getTextRanges(this._currentSelection))==null?void 0:e.textRanges}getActiveRange(){const e=this._getTextRanges(this._currentSelection);if(e==null)return;const{textRanges:n,segmentId:r,style:o}=e,s=n.find(m=>m.isActive());if(s==null)return null;const{startOffset:c,endOffset:l,collapsed:u,startNodePosition:d,endNodePosition:p,direction:h}=s;return c==null||l==null?null:{startOffset:c,endOffset:l,collapsed:u,startNodePosition:d,endNodePosition:p,direction:h,segmentId:r,style:o}}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,textRanges:e,segmentId:"",style:M.NORMAL_TEXT_SELECTION_PLUGIN_STYLE})}replaceTextRanges(e){this._currentSelection!=null&&(this._textSelectionRenderManager.removeAllTextRanges(),this._textSelectionRenderManager.addTextRanges(e))}_syncSelectionFromRenderService(){this._textSelectionRenderManager.textSelectionInner$.pipe(L.takeUntil(this.dispose$)).subscribe(e=>{e!=null&&this._replaceTextRangesWithNoRefresh(e)})}_replaceTextRangesWithNoRefresh(e){if(this._currentSelection==null)return;const n={...this._currentSelection,...e};this._replaceByParam(n),this._textSelection$.next(n);const{unitId:r,subUnitId:o,segmentId:s,style:c,textRanges:l}=n;this._commandService.executeCommand(Ue.id,{unitId:r,subUnitId:o,segmentId:s,style:c,ranges:l.map(We)})}_getTextRanges(e){var o;if(e==null)return;const{unitId:n,subUnitId:r=""}=e;return(o=this._textSelectionInfo.get(n))==null?void 0:o.get(r)}_refresh(e){const n=this._getTextRanges(e);this._textSelectionRenderManager.removeAllTextRanges(),n&&Array.isArray(n.textRanges)&&n.textRanges.length&&this._textSelectionRenderManager.addTextRanges(n.textRanges.map(We))}_replaceByParam(e){const{unitId:n,subUnitId:r,style:o,segmentId:s,textRanges:c}=e;this._textSelectionInfo.has(n)||this._textSelectionInfo.set(n,new Map),this._textSelectionInfo.get(n).set(r,{textRanges:c,style:o,segmentId:s})}_addByParam(e){const{unitId:n,subUnitId:r,textRanges:o,style:s,segmentId:c}=e;this._textSelectionInfo.has(n)||this._textSelectionInfo.set(n,new Map);const l=this._textSelectionInfo.get(n);l.has(r)?l.get(r).textRanges.push(...o):l.set(r,{textRanges:o,style:s,segmentId:c})}};exports.TextSelectionManagerService=St([ze(0,M.ITextSelectionRenderManager),ze(1,a.ICommandService)],exports.TextSelectionManagerService);function Oe(i,t="",e=0){const{startOffset:n,endOffset:r}=i,o=[],s=n-e,c=r-e;return s>0&&o.push({t:"r",len:s,segmentId:t}),o.push({t:"d",len:c-s,line:0,segmentId:t}),o}var _t=Object.defineProperty,vt=Object.getOwnPropertyDescriptor,It=(i,t,e,n)=>{for(var r=n>1?void 0:n?vt(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&_t(t,e,r),r},Ct=(i,t)=>(e,n)=>t(e,n,i);exports.DocViewModelManagerService=class extends a.RxDisposable{constructor(e){super();v(this,"_currentViewModelUnitId","");v(this,"_docViewModelMap",new Map);v(this,"_currentDocViewModel$",new L.BehaviorSubject(null));v(this,"currentDocViewModel$",this._currentDocViewModel$.asObservable());this._currentUniverService=e,this._initialize()}_initialize(){this._currentUniverService.currentDoc$.pipe(L.takeUntil(this.dispose$)).subscribe(e=>{if(e==null)return;const n=e.getUnitId();this._setCurrent(n)})}dispose(){this._currentDocViewModel$.complete(),this._docViewModelMap.clear()}getCurrent(){return this._docViewModelMap.get(this._currentViewModelUnitId)}getViewModel(e){var n;return(n=this._docViewModelMap.get(e))==null?void 0:n.docViewModel}_setCurrent(e){var r;const n=this._currentUniverService.getUniverDocInstance(e);if(n==null)throw new Error(`Document data model with id ${e} not found when build view model.`);if(n.getBody()!=null){if(!this._docViewModelMap.has(e)){const o=this._buildDocViewModel(n);this._docViewModelMap.set(e,{unitId:e,docViewModel:o})}if(e===a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const o=(r=this._docViewModelMap.get(e))==null?void 0:r.docViewModel;if(o==null)return;o.reset(n)}this._currentViewModelUnitId=e,this._currentDocViewModel$.next(this.getCurrent())}}_buildDocViewModel(e){return new M.DocumentViewModel(e)}};exports.DocViewModelManagerService=It([Ct(0,a.IUniverInstanceService)],exports.DocViewModelManagerService);const _={id:"doc.mutation.rich-text-editing",type:a.CommandType.MUTATION,handler:(i,t)=>{const{unitId:e,mutations:n}=t,o=i.get(a.IUniverInstanceService).getUniverDocInstance(e),c=i.get(exports.DocViewModelManagerService).getViewModel(e);if(o==null||c==null)throw new Error(`DocumentDataModel or documentViewModel not found for unitId: ${e}`);if(n.length===0)throw new Error("Mutation's length should great than 0 when call RichTextEditingMutation");const l=o.apply(n),{segmentId:u}=n[0],d=o.getSelfOrHeaderFooterModel(u);return c.getSelfOrHeaderFooterViewModel(u).reset(d),{unitId:e,mutations:l}}},Re={id:"doc.command.insert-text",type:a.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(a.IUndoRedoService),n=i.get(a.ICommandService),r=i.get(exports.TextSelectionManagerService),{range:o,segmentId:s,body:c,unitId:l,textRanges:u}=t,{startOffset:d,collapsed:p}=o,h={id:_.id,params:{unitId:l,mutations:[]}},m=new a.TextX;p?d>0&&m.push({t:"r",len:d,segmentId:s}):m.push(...Oe(o,s)),m.push({t:"i",body:c,len:c.dataStream.length,line:0,segmentId:s}),h.params.mutations=m.serialize();const g=n.syncExecuteCommand(h.id,h.params);return r.replaceTextRanges(u),g?(e.pushUndoRedo({unitID:l,undoMutations:[{id:_.id,params:g}],redoMutations:[{id:_.id,params:h.params}],undo(){return n.syncExecuteCommand(_.id,g),r.replaceTextRanges([o]),!0},redo(){return n.syncExecuteCommand(_.id,h.params),r.replaceTextRanges(u),!0}}),!0):!1}};var A=(i=>(i[i.LEFT=0]="LEFT",i[i.RIGHT=1]="RIGHT",i))(A||{});const ye={id:"doc.command.delete-text",type:a.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(a.ICommandService),n=i.get(a.IUndoRedoService),r=i.get(exports.TextSelectionManagerService),{range:o,segmentId:s,unitId:c,direction:l,textRanges:u,len:d=1}=t,{startOffset:p}=o,h={id:_.id,params:{unitId:c,mutations:[]}},m=new a.TextX;p>0&&m.push({t:"r",len:l===0?p-d:p,segmentId:s}),m.push({t:"d",len:d,line:0,segmentId:s}),h.params.mutations=m.serialize();const g=e.syncExecuteCommand(h.id,h.params);return r.replaceTextRanges(u),g&&n.pushUndoRedo({unitID:c,undoMutations:[{id:_.id,params:g}],redoMutations:[{id:_.id,params:h.params}],undo(){return e.syncExecuteCommand(_.id,g),r.replaceTextRanges([o]),!0},redo(){return e.syncExecuteCommand(_.id,h.params),r.replaceTextRanges(u),!0}}),!1}},Pe={id:"doc.command.update-text",type:a.CommandType.COMMAND,handler:async(i,t)=>{const{range:e,segmentId:n,updateBody:r,coverType:o,unitId:s,textRanges:c}=t,l=i.get(a.ICommandService),u=i.get(a.IUndoRedoService),d=i.get(exports.TextSelectionManagerService),p={id:_.id,params:{unitId:s,mutations:[]}},h=new a.TextX,{startOffset:m,endOffset:g}=e;h.push({t:"r",len:m,segmentId:n}),h.push({t:"r",body:r,len:g-m,segmentId:n,coverType:o}),p.params.mutations=h.serialize();const f=l.syncExecuteCommand(p.id,p.params);return d.replaceTextRanges(c),f?(u.pushUndoRedo({unitID:s,undoMutations:[{id:_.id,params:f}],redoMutations:[{id:_.id,params:p.params}],undo(){return l.syncExecuteCommand(_.id,f),d.replaceTextRanges(c),!0},redo(){return l.syncExecuteCommand(_.id,p.params),d.replaceTextRanges(c),!0}}),!0):!1}};function Mt(i,t){const e=[];for(let n=0,r=i.length;n<r;n++)i[n]===a.DataStreamTreeTokenType.PARAGRAPH&&e.push({startIndex:n});if(t)for(const n of e)t.bullet&&(n.bullet=a.Tools.deepClone(t.bullet)),t.paragraphStyle&&(n.paragraphStyle=a.Tools.deepClone(t.paragraphStyle));return e}const Ne={id:"doc.command.break-line",type:a.CommandType.COMMAND,handler:async i=>{var g;const t=i.get(exports.TextSelectionManagerService),e=i.get(a.IUniverInstanceService),n=i.get(a.ICommandService),r=t.getActiveRange();if(r==null)return!1;const o=e.getCurrentUniverDocInstance(),s=o.getUnitId(),{startOffset:c,segmentId:l,style:u}=r,d=[{startOffset:c+1,endOffset:c+1,style:u}],h=(((g=o.getBody())==null?void 0:g.paragraphs)??[]).find(f=>f.startIndex>=c);return await n.executeCommand(Re.id,{unitId:s,body:{dataStream:a.DataStreamTreeTokenType.PARAGRAPH,paragraphs:Mt(a.DataStreamTreeTokenType.PARAGRAPH,h)},range:r,textRanges:d,segmentId:l})}},se={id:D.CopyCommand.id,name:"doc.command.copy",type:a.CommandType.COMMAND,multi:!0,priority:999,preconditions:i=>i.getContextValue(a.FOCUSING_DOC)||i.getContextValue(a.EDITOR_ACTIVATED),handler:async()=>!0},ae={id:D.CutCommand.id,name:"doc.command.cut",type:a.CommandType.COMMAND,multi:!0,priority:999,preconditions:i=>i.getContextValue(a.FOCUSING_DOC)||i.getContextValue(a.EDITOR_ACTIVATED),handler:async()=>!0},ce={id:D.PasteCommand.id,name:"doc.command.paste",type:a.CommandType.COMMAND,multi:!0,priority:999,preconditions:i=>i.getContextValue(a.FOCUSING_DOC)||i.getContextValue(a.EDITOR_ACTIVATED),handler:async()=>!0};var Ot=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,yt=(i,t,e,n)=>{for(var r=n>1?void 0:n?Rt(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&Ot(t,e,r),r},Ge=(i,t)=>(e,n)=>t(e,n,i);exports.DocSkeletonManagerService=class extends a.RxDisposable{constructor(e,n){super();v(this,"_currentSkeletonUnitId","");v(this,"_docSkeletonMap",new Map);v(this,"_currentSkeleton$",new L.BehaviorSubject(null));v(this,"currentSkeleton$",this._currentSkeleton$.asObservable());v(this,"_currentSkeletonBefore$",new L.BehaviorSubject(null));v(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());this._localeService=e,this._docViewModelManagerService=n,this._initialize()}_initialize(){this._docViewModelManagerService.currentDocViewModel$.pipe(L.takeUntil(this.dispose$)).subscribe(e=>{e!=null&&this._setCurrent(e)})}dispose(){this._currentSkeletonBefore$.complete(),this._currentSkeleton$.complete(),this._docSkeletonMap.clear()}getCurrent(){return this.getSkeletonByUnitId(this._currentSkeletonUnitId)}makeDirtyCurrent(e=!0){this.makeDirty(this._currentSkeletonUnitId,e)}makeDirty(e,n=!0){const r=this.getSkeletonByUnitId(e);r!=null&&(r.dirty=n)}getSkeletonByUnitId(e){return this._docSkeletonMap.get(e)}_setCurrent(e){const{unitId:n}=e;if(this._docSkeletonMap.has(n)){const r=this.getSkeletonByUnitId(n);r.skeleton.calculate(),r.dirty=!0}else{const r=this._buildSkeleton(e.docViewModel);r.calculate(),this._docSkeletonMap.set(n,{unitId:n,skeleton:r,dirty:!1})}return this._currentSkeletonUnitId=n,this._currentSkeletonBefore$.next(this.getCurrent()),this._currentSkeleton$.next(this.getCurrent()),this.getCurrent()}_buildSkeleton(e){return M.DocumentSkeleton.create(e,this._localeService)}};exports.DocSkeletonManagerService=yt([Ge(0,E.Inject(a.LocaleService)),Ge(1,E.Inject(exports.DocViewModelManagerService))],exports.DocSkeletonManagerService);const Xe={id:"doc.command.inner-paste",type:a.CommandType.COMMAND,handler:async(i,t)=>{const{segmentId:e,body:n,textRanges:r}=t,o=i.get(a.IUndoRedoService),s=i.get(a.ICommandService),c=i.get(exports.TextSelectionManagerService),l=i.get(a.IUniverInstanceService),u=c.getSelections();if(!Array.isArray(u)||u.length===0)return!1;const p=l.getCurrentUniverDocInstance().getUnitId(),h={id:_.id,params:{unitId:p,mutations:[]}},m=new a.MemoryCursor;m.reset();const g=new a.TextX;for(const S of u){const{startOffset:I,endOffset:C,collapsed:x}=S,T=I-m.cursor;x?g.push({t:"r",len:T,segmentId:e}):g.push(...Oe(S,e,m.cursor)),g.push({t:"i",body:n,len:n.dataStream.length,line:0,segmentId:e}),m.reset(),m.moveCursor(C)}h.params.mutations=g.serialize();const f=s.syncExecuteCommand(h.id,h.params);return c.replaceTextRanges(r),f?(o.pushUndoRedo({unitID:p,undoMutations:[{id:_.id,params:f}],redoMutations:[{id:_.id,params:h.params}],undo(){return s.syncExecuteCommand(_.id,f),c.replaceTextRanges(u),!0},redo(){return s.syncExecuteCommand(_.id,h.params),c.replaceTextRanges(r),!0}}),!0):!1}},Ie={id:"doc.command.inner-cut",type:a.CommandType.COMMAND,handler:async(i,t)=>{const{segmentId:e,textRanges:n}=t,r=i.get(a.IUndoRedoService),o=i.get(a.ICommandService),s=i.get(exports.TextSelectionManagerService),c=i.get(a.IUniverInstanceService),l=s.getSelections();if(!Array.isArray(l)||l.length===0)return!1;const u=c.getCurrentUniverDocInstance().getUnitId(),d=c.getUniverDocInstance(u),p=a.getDocsUpdateBody(d.snapshot,e);if(p==null)return!1;const h={id:_.id,params:{unitId:u,mutations:[]}},m=new a.MemoryCursor;m.reset();const g=new a.TextX;for(const S of l){const{startOffset:I,endOffset:C,collapsed:x}=S,T=I-m.cursor;x?g.push({t:"r",len:T,segmentId:e}):g.push(...xt(S,p,e,m.cursor)),m.reset(),m.moveCursor(C)}h.params.mutations=g.serialize();const f=o.syncExecuteCommand(h.id,h.params);return s.replaceTextRanges(n),f?(r.pushUndoRedo({unitID:u,undoMutations:[{id:_.id,params:f}],redoMutations:[{id:_.id,params:h.params}],undo(){return o.syncExecuteCommand(_.id,f),s.replaceTextRanges(l),!0},redo(){return o.syncExecuteCommand(_.id,h.params),s.replaceTextRanges(n),!0}}),!0):!1}};function xt(i,t,e="",n=0){const{startOffset:r,endOffset:o}=i,s=[],{paragraphs:c=[]}=t,l=r-n,u=o-n,d=c==null?void 0:c.find(p=>p.startIndex-n>=l&&p.startIndex-n<=u);if(l>0&&s.push({t:"r",len:l,segmentId:e}),d&&d.startIndex-n>l){const p=d.startIndex-n;s.push({t:"d",len:p-l,line:0,segmentId:e}),s.push({t:"r",len:1,segmentId:e}),u>p+1&&s.push({t:"d",len:u-p-1,line:0,segmentId:e})}else s.push({t:"d",len:u-l,line:0,segmentId:e});return s}const we={id:"doc.command.delete-left",type:a.CommandType.COMMAND,handler:async i=>{var T;const t=i.get(exports.TextSelectionManagerService),e=i.get(exports.DocSkeletonManagerService),n=i.get(a.IUniverInstanceService),r=i.get(a.ICommandService),o=t.getActiveRange(),s=t.getSelections(),c=(T=e.getCurrent())==null?void 0:T.skeleton;let l=!0;if(o==null||c==null||s==null)return!1;const u=n.getCurrentUniverDocInstance(),{startOffset:d,collapsed:p,segmentId:h,style:m}=o,g=c.findNodeByCharIndex(d),f=M.hasListSpan(g),S=M.isIndentBySpan(g,u.getBody());let I=d;const C=c.findNodeByCharIndex(d-1);if(M.isFirstSpan(g)&&C!==g&&(f===!0||S===!0)){const O=M.getParagraphBySpan(g,u.getBody());if(O==null)return!1;const y=O==null?void 0:O.startIndex,b={startIndex:0},U=O.paragraphStyle;if(f===!0){const R=O.paragraphStyle;R&&(b.paragraphStyle=R)}else if(S===!0){const R=O.bullet;R&&(b.bullet=R),U!=null&&(b.paragraphStyle={...U},delete b.paragraphStyle.hanging,delete b.paragraphStyle.indentStart)}const P=[{startOffset:I,endOffset:I,style:m}];l=await r.executeCommand(Pe.id,{unitId:u.getUnitId(),updateBody:{dataStream:"",paragraphs:[{...b}]},range:{startOffset:y,endOffset:y+1},textRanges:P,coverType:a.UpdateDocsAttributeType.REPLACE,segmentId:h})}else if(p===!0){if(C==null)return!0;if(C.content==="\r")l=await r.executeCommand(Ae.id,{direction:A.LEFT,range:o});else{I-=C.count;const O=[{startOffset:I,endOffset:I,style:m}];l=await r.executeCommand(ye.id,{unitId:u.getUnitId(),range:o,segmentId:h,direction:A.LEFT,len:C.count,textRanges:O})}}else{const O=tt(o,s);l=await r.executeCommand(Ie.id,{segmentId:h,textRanges:O})}return l}},Le={id:"doc.command.delete-right",type:a.CommandType.COMMAND,handler:async i=>{var g;const t=i.get(exports.TextSelectionManagerService),e=i.get(exports.DocSkeletonManagerService),n=i.get(a.IUniverInstanceService),r=i.get(a.ICommandService),o=t.getActiveRange(),s=t.getSelections(),c=(g=e.getCurrent())==null?void 0:g.skeleton;let l;if(o==null||c==null||s==null)return!1;const u=n.getCurrentUniverDocInstance(),{startOffset:d,collapsed:p,segmentId:h,style:m}=o;if(d===u.getBody().dataStream.length-2&&p)return!0;if(p===!0){const f=c.findNodeByCharIndex(d);if(f.content==="\r")l=await r.executeCommand(Ae.id,{direction:A.RIGHT,range:o});else{const S=[{startOffset:d,endOffset:d,style:m}];l=await r.executeCommand(ye.id,{unitId:u.getUnitId(),range:o,segmentId:h,direction:A.RIGHT,textRanges:S,len:f.count})}}else{const f=tt(o,s);l=await r.executeCommand(Ie.id,{segmentId:h,textRanges:f})}return l}},Ae={id:"doc.command.merge-two-paragraph",type:a.CommandType.COMMAND,handler:async(i,t)=>{var U,P,R;const e=i.get(exports.TextSelectionManagerService),n=i.get(a.IUniverInstanceService),r=i.get(a.ICommandService),o=i.get(a.IUndoRedoService),{direction:s,range:c}=t,l=e.getActiveRange(),u=e.getSelections();if(l==null||u==null)return!1;const d=n.getCurrentUniverDocInstance(),{startOffset:p,collapsed:h,segmentId:m,style:g}=l;if(!h)return!1;const f=s===A.LEFT?p:p+1,S=(R=(P=(U=d.getBody())==null?void 0:U.paragraphs)==null?void 0:P.find(N=>N.startIndex>=f))==null?void 0:R.startIndex,I=Tt(d.getBody(),f,S),C=s===A.LEFT?p-1:p,x=d.getUnitId(),T=[{startOffset:C,endOffset:C,style:g}],O={id:_.id,params:{unitId:x,mutations:[]}},y=new a.TextX;y.push({t:"r",len:s===A.LEFT?p-1:p,segmentId:m}),I.dataStream.length&&y.push({t:"i",body:I,len:I.dataStream.length,line:0,segmentId:m}),y.push({t:"r",len:1,segmentId:m}),y.push({t:"d",len:S+1-f,line:0,segmentId:m}),O.params.mutations=y.serialize();const b=r.syncExecuteCommand(O.id,O.params);return e.replaceTextRanges(T),b?(o.pushUndoRedo({unitID:x,undoMutations:[{id:_.id,params:b}],redoMutations:[{id:_.id,params:O.params}],undo(){return r.syncExecuteCommand(_.id,b),e.replaceTextRanges([c]),!0},redo(){return r.syncExecuteCommand(_.id,O.params),e.replaceTextRanges(T),!0}}),!0):!1}};function Tt(i,t,e){const{textRuns:n}=i,r=i.dataStream.substring(t,e);if(n==null)return{dataStream:r};const o=[];for(const s of n){const{st:c,ed:l}=s;l<=t||c>=e||(c<t?o.push({...s,st:0,ed:l-t}):l>e?o.push({...s,st:c-t,ed:e-t}):o.push({...s,st:c-t,ed:l-t}))}return{dataStream:r,textRuns:o}}function tt(i,t){let e=i.endOffset;for(const r of t){const{startOffset:o,endOffset:s}=r;o==null||s==null||s<=i.endOffset&&(e-=s-o)}return[{startOffset:e,endOffset:e,style:i.style}]}class Be{constructor(){v(this,"_previousActiveRange",null);v(this,"_undoMutationParamsCache",[]);v(this,"_redoMutationParamsCache",[])}clearUndoRedoMutationParamsCache(){this._undoMutationParamsCache=[],this._redoMutationParamsCache=[]}setActiveRange(t){this._previousActiveRange=t}pushUndoRedoMutationParams(t,e){this._undoMutationParamsCache.push(t),this._redoMutationParamsCache.push(e)}fetchComposedUndoRedoMutationParams(t){if(this._undoMutationParamsCache.length===0||this._previousActiveRange==null)return null;const{unitId:e}=this._undoMutationParamsCache[0],{segmentId:n,startOffset:r,collapsed:o}=this._previousActiveRange,s={unitId:e,mutations:[]},c={unitId:e,mutations:[]};return o?(s.mutations.push({t:"r",len:r,segmentId:n}),c.mutations.push({t:"r",len:r,segmentId:n})):(r>0&&s.mutations.push({t:"r",len:r,segmentId:n}),s.mutations.push(this._undoMutationParamsCache[0].mutations.find(l=>l.t==="i")),c.mutations.push(...Oe(this._previousActiveRange,n))),t.length&&(s.mutations.push({t:"d",len:t.length,line:0,segmentId:n}),c.mutations.push({t:"i",body:{dataStream:t},len:t.length,line:0,segmentId:n})),{redoMutationParams:c,undoMutationParams:s,previousActiveRange:this._previousActiveRange}}dispose(){this._undoMutationParamsCache=[],this._redoMutationParamsCache=[],this._previousActiveRange=null}}const $e={id:"doc.command.ime-input",type:a.CommandType.COMMAND,handler:async(i,t)=>{const{unitId:e,newText:n,oldTextLen:r,range:o,segmentId:s,textRanges:c,isCompositionEnd:l}=t,u=i.get(a.ICommandService),d=i.get(a.IUndoRedoService),p=i.get(exports.TextSelectionManagerService),h=i.get(Be),m={id:_.id,params:{unitId:e,mutations:[]}},g=new a.TextX;o.collapsed?g.push({t:"r",len:o.startOffset,segmentId:s}):g.push(...Oe(o,s)),r>0&&g.push({t:"d",len:r,line:0,segmentId:s}),g.push({t:"i",body:{dataStream:n},len:n.length,line:0,segmentId:s}),m.params.mutations=g.serialize();const f=u.syncExecuteCommand(m.id,m.params);if(h.pushUndoRedoMutationParams(f,m.params),p.replaceTextRanges(c),l){if(f){const S=h.fetchComposedUndoRedoMutationParams(n);if(S==null)return!1;const{undoMutationParams:I,redoMutationParams:C,previousActiveRange:x}=S;return d.pushUndoRedo({unitID:e,undoMutations:[{id:_.id,params:I}],redoMutations:[{id:_.id,params:C}],undo(){return u.syncExecuteCommand(_.id,I),p.replaceTextRanges([x]),!0},redo(){return u.syncExecuteCommand(_.id,C),p.replaceTextRanges(c),!0}}),!0}}else return!!f;return!1}},G={id:"doc.command.set-inline-format-bold",type:a.CommandType.COMMAND,handler:async()=>!0},ee={id:"doc.command.set-inline-format-italic",type:a.CommandType.COMMAND,handler:async()=>!0},te={id:"doc.command.set-inline-format-underline",type:a.CommandType.COMMAND,handler:async()=>!0},ne={id:"doc.command.set-inline-format-strikethrough",type:a.CommandType.COMMAND,handler:async()=>!0},B={id:"doc.command.set-inline-format-subscript",type:a.CommandType.COMMAND,handler:async()=>!0},k={id:"doc.command.set-inline-format-superscript",type:a.CommandType.COMMAND,handler:async()=>!0},X={id:"doc.command.set-inline-format-fontsize",type:a.CommandType.COMMAND,handler:async()=>!0},H={id:"doc.command.set-inline-format-font-family",type:a.CommandType.COMMAND,handler:async()=>!0},re={id:"doc.command.set-inline-format-text-color",type:a.CommandType.COMMAND,handler:async()=>!0},nt={[G.id]:"bl",[ee.id]:"it",[te.id]:"ul",[ne.id]:"st",[X.id]:"fs",[H.id]:"ff",[re.id]:"cl",[B.id]:"va",[k.id]:"va"},Fe={id:"doc.command.set-inline-format",type:a.CommandType.COMMAND,handler:async(i,t)=>{const{segmentId:e,value:n,preCommandId:r}=t,o=i.get(a.IUndoRedoService),s=i.get(a.ICommandService),c=i.get(exports.TextSelectionManagerService),l=i.get(a.IUniverInstanceService),u=c.getSelections();if(!Array.isArray(u)||u.length===0)return!1;let d=l.getCurrentUniverDocInstance(),p=d.getUnitId();p===a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&(d=l.getUniverDocInstance(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),p=d.getUnitId());let h;switch(r){case G.id:case ee.id:case te.id:case ne.id:case B.id:case k.id:{h=bt(d.getBody().textRuns,r,u);break}case X.id:case H.id:{h=n;break}case re.id:{h={rgb:n};break}default:throw new Error(`Unknown command: ${r} in handleInlineFormat`)}const m={id:_.id,params:{unitId:p,mutations:[]}},g=new a.TextX,f=new a.MemoryCursor;f.reset();for(const C of u){const{startOffset:x,endOffset:T}=C,O={dataStream:"",textRuns:[{st:0,ed:T-x,ts:{[nt[r]]:h}}]},y=x-f.cursor;y!==0&&g.push({t:"r",len:y,segmentId:e}),g.push({t:"r",body:O,len:T-x,segmentId:e}),f.reset(),f.moveCursor(T)}m.params.mutations=g.serialize();const S=s.syncExecuteCommand(m.id,m.params),I=[G.id,X.id,H.id,B.id,k.id];return I.includes(r)&&c.refreshSelection(),S?(o.pushUndoRedo({unitID:p,undoMutations:[{id:_.id,params:S}],redoMutations:[{id:_.id,params:m.params}],undo(){return s.syncExecuteCommand(_.id,S),I.includes(r)&&c.refreshSelection(),!0},redo(){return s.syncExecuteCommand(_.id,m.params),I.includes(r)&&c.refreshSelection(),!0}}),!0):!1}};function Dt(i){return i!==null&&typeof i=="object"}function bt(i,t,e){let n=0,r=0;const o=nt[t];for(;n!==i.length&&r!==e.length;){const{startOffset:s,endOffset:c}=e[r],{st:l,ed:u,ts:d}=i[n];if(c<=l)r++;else if(u<=s)n++;else{if((d==null?void 0:d[o])==null){if(/bl|it/.test(o))return a.BooleanNumber.TRUE;if(/ul|st/.test(o))return{s:a.BooleanNumber.TRUE};if(/va/.test(o))return t===B.id?a.BaselineOffset.SUBSCRIPT:a.BaselineOffset.SUPERSCRIPT}if(Dt(d==null?void 0:d[o])&&d[o].s===a.BooleanNumber.FALSE)return{s:a.BooleanNumber.TRUE};if(t===B.id&&(d==null?void 0:d[o])!==a.BaselineOffset.SUBSCRIPT)return a.BaselineOffset.SUBSCRIPT;if(t===k.id&&(d==null?void 0:d[o])!==a.BaselineOffset.SUPERSCRIPT)return a.BaselineOffset.SUPERSCRIPT;if((d==null?void 0:d[o])===a.BooleanNumber.FALSE)return a.BooleanNumber.TRUE;n++}}return/bl|it/.test(o)?a.BooleanNumber.FALSE:/ul|st/.test(o)?{s:a.BooleanNumber.FALSE}:a.BaselineOffset.NORMAL}const rt={id:"doc.command.bullet-list",type:a.CommandType.COMMAND,handler:i=>i.get(a.ICommandService).syncExecuteCommand(je.id,{listType:a.PresetListType.BULLET_LIST})},it={id:"doc.command.order-list",type:a.CommandType.COMMAND,handler:i=>i.get(a.ICommandService).syncExecuteCommand(je.id,{listType:a.PresetListType.ORDER_LIST})},je={id:"doc.command.list-operation",type:a.CommandType.COMMAND,handler:(i,t)=>{var T;const e=i.get(exports.TextSelectionManagerService),n=i.get(a.IUniverInstanceService),r=i.get(a.ICommandService),o=i.get(a.IUndoRedoService),{listType:s}=t,c=n.getCurrentUniverDocInstance(),l=e.getActiveRange(),u=(T=c.getBody())==null?void 0:T.paragraphs;if(l==null||u==null)return!1;const d=Et(l,u),{segmentId:p}=l,h=c.getUnitId(),m=d.every(O=>{var y;return((y=O.bullet)==null?void 0:y.listType)===s}),g=6;let f=a.Tools.generateRandomId(g);if(d.length===1){const O=u.indexOf(d[0]),y=u[O-1],b=u[O+1];y&&y.bullet&&y.bullet.listType===s?f=y.bullet.listId:b&&b.bullet&&b.bullet.listType===s&&(f=b.bullet.listId)}const S={id:_.id,params:{unitId:h,mutations:[]}},I=new a.MemoryCursor;I.reset();const C=new a.TextX;for(const O of d){const{startIndex:y}=O;C.push({t:"r",len:y-I.cursor,segmentId:p});const b={...O.paragraphStyle,hanging:void 0,indentStart:void 0};C.push({t:"r",len:1,body:{dataStream:"",paragraphs:[m?{paragraphStyle:b,startIndex:0}:{...O,startIndex:0,bullet:{...O.bullet??{nestingLevel:0,textStyle:{fs:20}},listType:s,listId:f}}]},segmentId:p,coverType:a.UpdateDocsAttributeType.REPLACE}),I.moveCursorTo(y+1)}S.params.mutations=C.serialize();const x=r.syncExecuteCommand(S.id,S.params);return e.refreshSelection(),x&&o.pushUndoRedo({unitID:h,undoMutations:[{id:_.id,params:x}],redoMutations:[{id:_.id,params:S.params}],undo(){return r.syncExecuteCommand(_.id,x),e.refreshSelection(),!0},redo(){return r.syncExecuteCommand(_.id,S.params),e.refreshSelection(),!0}}),!0}};function Et(i,t){const{startOffset:e,endOffset:n}=i,r=[];let o=-1;for(const s of t){const{startIndex:c}=s;(e>o&&e<=c||n>o&&n<=c||c>=e&&c<=n)&&r.push(s),o=c}return r}const ot={id:"doc.command-replace-content",type:a.CommandType.COMMAND,handler:async(i,t)=>{var g;const{unitId:e,body:n,textRanges:r,segmentId:o=""}=t,s=i.get(a.IUniverInstanceService),c=i.get(a.ICommandService),l=i.get(exports.TextSelectionManagerService),u=i.get(a.IUndoRedoService),d=(g=s.getUniverDocInstance(e))==null?void 0:g.getSnapshot().body,p=l.getSelections();if(d==null||!Array.isArray(p)||p.length===0)return!1;const h=at(e,o,d,n),m=c.syncExecuteCommand(h.id,h.params);return l.replaceTextRanges(r),m?(u.pushUndoRedo({unitID:e,undoMutations:[{id:_.id,params:m}],redoMutations:[{id:_.id,params:h.params}],undo(){return c.syncExecuteCommand(_.id,m),l.replaceTextRanges(p),!0},redo(){return c.syncExecuteCommand(_.id,h.params),l.replaceTextRanges(r),!0}}),!0):!1}},st={id:"doc.command-cover-content",type:a.CommandType.COMMAND,handler:async(i,t)=>{var d;const{unitId:e,body:n,segmentId:r=""}=t,o=i.get(a.IUniverInstanceService),s=i.get(a.ICommandService),c=i.get(a.IUndoRedoService),l=(d=o.getUniverDocInstance(e))==null?void 0:d.getSnapshot().body;if(l==null)return!1;const u=at(e,r,l,n);return s.syncExecuteCommand(u.id,u.params),c.clearUndoRedo(e),!0}};function at(i,t,e,n){const r={id:_.id,params:{unitId:i,mutations:[]}},o=new a.TextX,s=(e==null?void 0:e.dataStream.length)-2;return s>0&&o.push({t:"d",len:s,line:0,segmentId:t}),n.dataStream.length>0&&o.push({t:"i",body:n,len:n.dataStream.length,line:0,segmentId:t}),r.params.mutations=o.serialize(),r}const $={id:"doc.operation.move-cursor",type:a.CommandType.OPERATION,handler:(i,t)=>!!t},F={id:"doc.operation.move-selection",type:a.CommandType.OPERATION,handler:(i,t)=>!!t},Ut=(i,t)=>{const e=i.get(a.IUniverInstanceService).getUniverDocInstance(t.unitId),n=(e==null?void 0:e.zoomRatio)||1;return{...a.Tools.deepClone(t),zoomRatio:n}},V={id:"doc.operation.set-zoom-ratio",type:a.CommandType.OPERATION,handler:(i,t)=>{const e=i.get(a.IUniverInstanceService).getUniverDocInstance(t.unitId);if(!e)return!1;const n=e.getSnapshot();return n.settings==null?n.settings={zoomRatio:t.zoomRatio}:n.settings.zoomRatio=t.zoomRatio,!0}},ct={type:a.CommandType.COMMAND,id:"doc.command.set-zoom-ratio",handler:async(i,t)=>{const e=i.get(a.ICommandService),n=i.get(a.IUndoRedoService),r=i.get(a.IUniverInstanceService);let o=r.getCurrentUniverDocInstance().getUnitId(),s=1;if(t&&(o=t.documentId??o,s=t.zoomRatio??s),!r.getUniverDocInstance(o))return!1;const l={zoomRatio:s,unitId:o},u=Ut(i,l);return e.syncExecuteCommand(V.id,l)?(n.pushUndoRedo({unitID:o,undoMutations:[{id:V.id,params:u}],redoMutations:[{id:V.id,params:l}]}),!0):!1}},lt={id:"doc.operation.select-all",type:a.CommandType.COMMAND,handler:async i=>{const t=i.get(a.IUniverInstanceService),e=i.get(exports.TextSelectionManagerService),n=t.getCurrentUniverDocInstance().getSnapshot().body;if(n==null)return!1;const r=[{startOffset:0,endOffset:n.dataStream.length-2}];return e.replaceTextRanges(r),!0}},Pt=10,Nt=6;function wt(){return a.Tools.generateRandomId(Nt)}function Lt(i){const t=i.match(/data-copy-id="([^\s]+)"/);return t&&t[1]?t[1]:null}class At{constructor(){v(this,"_cache",new a.LRUMap(Pt))}set(t,e){this._cache.set(t,e)}get(t){return this._cache.get(t)}clear(){this._cache.clear()}}const He=new At;function Bt(i){const t=i.style,e={};for(let n=0;n<t.length;n++){const r=t[n],o=t.getPropertyValue(r);switch(r){case"margin-top":{const s=parseInt(o);e.spaceAbove=/pt/.test(o)?be(s):s;break}case"margin-bottom":{const s=parseInt(o);e.spaceBelow=/pt/.test(o)?be(s):s;break}}}return Object.getOwnPropertyNames(e).length?e:null}function be(i){return i/.75}function Ve(i){const t=i.style,e={},n=i.tagName.toLowerCase();switch(n){case"b":case"em":case"strong":{e.bl=a.BooleanNumber.TRUE;break}case"s":{e.st={s:a.BooleanNumber.TRUE};break}case"u":{e.ul={s:a.BooleanNumber.TRUE};break}case"i":{e.it=a.BooleanNumber.TRUE;break}case"sub":case"sup":{e.va=n==="sup"?a.BaselineOffset.SUPERSCRIPT:a.BaselineOffset.SUBSCRIPT;break}}for(let r=0;r<t.length;r++){const o=t[r],s=t.getPropertyValue(o);switch(o){case"font-family":{e.ff=s;break}case"font-size":{const c=parseInt(s);Number.isNaN(c)||(e.fs=/pt$/.test(s)?be(c):c);break}case"font-style":{s==="italic"&&(e.it=a.BooleanNumber.TRUE);break}case"font-weight":{Number(s)>400&&(e.bl=a.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(s)?e.ul={s:a.BooleanNumber.TRUE}:/overline/.test(s)?e.ol={s:a.BooleanNumber.TRUE}:/line-through/.test(s)&&(e.st={s:a.BooleanNumber.TRUE});break}case"color":{const c=new a.ColorKit(s);c.isValid&&(e.cl={rgb:c.toRgbString()});break}case"background-color":{const c=new a.ColorKit(s);c.isValid&&(e.bg={rgb:c.toRgbString()});break}}}return e}function $t(i){const t=new DOMParser,e=`<x-univer id="univer-root">${i}</x-univer>`;return t.parseFromString(e,"text/html").querySelector("#univer-root")}function Ke(i,t){const e=i.tagName.toLowerCase();return typeof t=="string"?e===t:Array.isArray(t)?t.some(n=>n===e):t(i)}const Ce=class Ce{constructor(){v(this,"_styleCache",new Map);v(this,"_styleRules",[]);v(this,"_afterProcessRules",[])}static use(t){if(this._pluginList.includes(t))throw new Error(`Univer paste plugin ${t.name} already added`);this._pluginList.push(t)}convert(t){const e=Ce._pluginList.find(o=>o.checkPasteType(t)),n=$t(t),r={dataStream:"",textRuns:[]};return e&&(this._styleRules=[...e.stylesRules],this._afterProcessRules=[...e.afterProcessRules]),this._styleCache.clear(),this._process(null,n==null?void 0:n.childNodes,r),this._styleCache.clear(),this._styleRules=[],this._afterProcessRules=[],r}_process(t,e,n){var r;for(const o of e)if(o.nodeType===Node.TEXT_NODE){const s=(r=o.nodeValue)==null?void 0:r.replace(/[\r\n]/g,"");let c;t&&this._styleCache.has(t)&&(c=this._styleCache.get(t)),n.dataStream+=s,c&&Object.getOwnPropertyNames(c).length&&n.textRuns.push({st:n.dataStream.length-s.length,ed:n.dataStream.length,ts:c})}else if(o.nodeType===Node.ELEMENT_NODE){const s=t?this._styleCache.get(t):{},c=this._styleRules.find(({filter:p})=>Ke(o,p)),l=c?c.getStyle(o):Ve(o);this._styleCache.set(o,{...s,...l});const{childNodes:u}=o;this._process(o,u,n);const d=this._afterProcessRules.find(({filter:p})=>Ke(o,p));d&&d.handler(n,o)}}};v(Ce,"_pluginList",[]);let J=Ce;const Ft={name:"univer-doc-paste-plugin-lark",checkPasteType(i){return/lark-record-clipboard/i.test(i)},stylesRules:[{filter:["s"],getStyle(i){const t=Ve(i);return{st:{s:a.BooleanNumber.TRUE},...t}}}],afterProcessRules:[{filter(i){return i.tagName==="DIV"&&/ace-line/i.test(i.className)},handler(i){i.paragraphs==null&&(i.paragraphs=[]),i.paragraphs.push({startIndex:i.dataStream.length}),i.dataStream+="\r"}}]},jt={name:"univer-doc-paste-plugin-word",checkPasteType(i){return/word|mso/i.test(i)},stylesRules:[{filter:["b"],getStyle(i){const t=Ve(i);return{bl:a.BooleanNumber.TRUE,...t}}}],afterProcessRules:[{filter(i){return i.tagName==="P"&&/mso/i.test(i.className)},handler(i,t){i.paragraphs==null&&(i.paragraphs=[]);const e={startIndex:i.dataStream.length},n=Bt(t);n&&(e.paragraphStyle=n),i.paragraphs.push(e),i.dataStream+="\r"}}]};function Vt(i,t){const{st:e,ed:n,ts:r={}}=t,{ff:o,fs:s,it:c,bl:l,ul:u,st:d,ol:p,bg:h,cl:m,va:g}=r;let f=i.slice(e,n);const S=[];return c===a.BooleanNumber.TRUE&&(f=`<i>${f}</i>`),g===a.BaselineOffset.SUPERSCRIPT?f=`<sup>${f}</sup>`:g===a.BaselineOffset.SUBSCRIPT&&(f=`<sub>${f}</sub>`),(u==null?void 0:u.s)===a.BooleanNumber.TRUE&&(f=`<u>${f}</u>`),(d==null?void 0:d.s)===a.BooleanNumber.TRUE&&(f=`<s>${f}</s>`),l===a.BooleanNumber.TRUE&&(f=`<strong>${f}</strong>`),o&&S.push(`font-family: ${o}`),m&&S.push(`color: ${m.rgb}`),s&&S.push(`font-size: ${s}px`),p&&S.push("text-decoration: overline"),h&&S.push(`background: ${h.rgb}`),S.length?`<span style="${S.join(";")}">${f}</span>`:f}function Ye(i,t=!0){const{dataStream:e,textRuns:n=[],paragraphs:r=[]}=i;let o=0;const s=[],c=[];for(const l of n){const{st:u,ed:d}=l;if(u!==o&&s.push(e.slice(o,u)),s.push(Vt(e,l)),o=d,t)for(const p of r){const{startIndex:h,paragraphStyle:m={}}=p;if(h>=u&&h<=d){const{spaceAbove:g,spaceBelow:f}=m,S=[];g!=null&&(typeof g=="number"?S.push(`margin-top: ${g}px`):S.push(`margin-top: ${g.v}px`)),f!=null&&(typeof f=="number"?S.push(`margin-bottom: ${f}px`):S.push(`margin-bottom: ${f.v}px`)),c.push(`<p className="UniverNormal" ${S.length?`style="${S.join(";")}"`:""}>${s.join("")}</p>`),s.length=0}}}return c.join("")+s.join("")}class kt{convert(t){if(t.length===0)throw new Error("The bodyList length at least to be 1");if(t.length===1)return Ye(t[0]);let e="";for(const n of t)e+='<p className="UniverNormal">',e+=Ye(n,!1),e+="</p>";return e}}var zt=Object.defineProperty,Wt=Object.getOwnPropertyDescriptor,Gt=(i,t,e,n)=>{for(var r=n>1?void 0:n?Wt(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&zt(t,e,r),r},qe=(i,t)=>(e,n)=>t(e,n,i);J.use(jt);J.use(Ft);function Xt(i){const t=i.replace(/\n/g,"\r"),e=[];for(let n=0;n<t.length;n++)t[n]==="\r"&&e.push({startIndex:n});return{dataStream:t,paragraphs:e}}const dt=E.createIdentifier("doc.clipboard-service");let Ee=class extends a.Disposable{constructor(t,e){super();v(this,"_clipboardHooks",[]);v(this,"_htmlToUDM",new J);v(this,"_umdToHtml",new kt);this._currentUniverService=t,this._clipboardInterfaceService=e}async queryClipboardData(){const t=await this._clipboardInterfaceService.read();if(t.length===0)return Promise.reject();try{let e="",n="";for(const o of t)for(const s of o.types)s===D.PLAIN_TEXT_CLIPBOARD_MIME_TYPE?n=await o.getType(s).then(c=>c&&c.text()):s===D.HTML_CLIPBOARD_MIME_TYPE&&(e=await o.getType(s).then(c=>c&&c.text()));if(!e)return Xt(n);const r=Lt(e);if(r){const o=He.get(r);if(o)return o}return this._htmlToUDM.convert(e)}catch(e){return Promise.reject(e)}}async setClipboardData(t){const e=wt(),n=t.length>1?t.map(o=>o.dataStream).join(`
|
|
2
|
-
`):t[0].dataStream;let r=this._umdToHtml.convert(t);return t.length===1&&(r=r.replace(/(<[a-z]+)/,(o,s)=>`${s} data-copy-id="${e}"`),He.set(e,t[0])),this._clipboardInterfaceService.write(n,r)}addClipboardHook(t){return this._clipboardHooks.push(t),a.toDisposable(()=>{const e=this._clipboardHooks.indexOf(t);e>-1&&this._clipboardHooks.splice(e,1)})}};Ee=Gt([qe(0,a.IUniverInstanceService),qe(1,D.IClipboardInterfaceService)],Ee);var Ht=Object.defineProperty,Kt=Object.getOwnPropertyDescriptor,Yt=(i,t,e,n)=>{for(var r=n>1?void 0:n?Kt(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&Ht(t,e,r),r},z=(i,t)=>(e,n)=>t(e,n,i);let le=class extends a.Disposable{constructor(i,t,e,n,r,o){super(),this._logService=i,this._commandService=t,this._currentUniverService=e,this._docClipboardService=n,this._textSelectionManagerService=r,this._contextService=o,this._commandExecutedListener(),this.initialize()}initialize(){[se,ae,ce].forEach(i=>this.disposeWithMe(this._commandService.registerMultipleCommand(i))),[Xe,Ie].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i)))}_commandExecutedListener(){const i=[ae.id,se.id,ce.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(i.includes(t.id)&&!(!this._contextService.getContextValue(a.FOCUSING_DOC)&&!this._contextService.getContextValue(a.EDITOR_ACTIVATED)))switch(t.id){case ce.id:{this._handlePaste();break}case se.id:{this._handleCopy();break}case ae.id:{this._handleCut();break}default:throw new Error(`Unhandled command ${t.id}`)}}))}async _handlePaste(){const{_docClipboardService:i}=this,{segmentId:t,endOffset:e,style:n}=this._textSelectionManagerService.getActiveRange()??{},r=this._textSelectionManagerService.getSelections();if(t==null&&this._logService.error("[DocClipboardController] segmentId is not existed"),!(e==null||r==null))try{const o=await i.queryClipboardData();let s=e;for(const l of r){const{startOffset:u,endOffset:d}=l;u==null||d==null||d<=e&&(s+=o.dataStream.length-(d-u))}const c=[{startOffset:s,endOffset:s,style:n}];this._commandService.executeCommand(Xe.id,{body:o,segmentId:t,textRanges:c})}catch{this._logService.error("[DocClipboardController] clipboard is empty")}}_getDocumentBodyInRanges(){const i=this._textSelectionManagerService.getSelections(),t=this._currentUniverService.getCurrentUniverDocInstance(),e=[];if(i==null)return e;for(const n of i){const{startOffset:r,endOffset:o,collapsed:s}=n;if(s||r==null||o==null)continue;const c=t.sliceBody(r,o);c!=null&&e.push(c)}return e}async _handleCopy(){const{_docClipboardService:i}=this,t=this._getDocumentBodyInRanges();try{i.setClipboardData(t)}catch{this._logService.error("[DocClipboardController] set clipboard failed")}}async _handleCut(){const{segmentId:i,endOffset:t,style:e}=this._textSelectionManagerService.getActiveRange()??{},n=this._textSelectionManagerService.getSelections();if(i==null&&this._logService.error("[DocClipboardController] segmentId is not existed"),!(t==null||n==null)){this._handleCopy();try{let r=t;for(const s of n){const{startOffset:c,endOffset:l}=s;c==null||l==null||l<=t&&(r-=l-c)}const o=[{startOffset:r,endOffset:r,style:e}];this._commandService.executeCommand(Ie.id,{segmentId:i,textRanges:o})}catch{this._logService.error("[DocClipboardController] cut content failed")}}}};le=Yt([a.OnLifecycle(a.LifecycleStages.Rendered,le),z(0,a.ILogService),z(1,a.ICommandService),z(2,a.IUniverInstanceService),z(3,dt),z(4,E.Inject(exports.TextSelectionManagerService)),z(5,a.IContextService)],le);var qt=Object.defineProperty,Zt=Object.getOwnPropertyDescriptor,Jt=(i,t,e,n)=>{for(var r=n>1?void 0:n?Zt(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&qt(t,e,r),r},xe=(i,t)=>(e,n)=>t(e,n,i);let de=class extends a.RxDisposable{constructor(i,t,e){super(),this._docSkeletonManagerService=i,this._renderManagerService=t,this._commandService=e,this._initialRenderRefresh(),this._commandExecutedListener()}_initialRenderRefresh(){this._docSkeletonManagerService.currentSkeletonBefore$.pipe(L.takeUntil(this.dispose$)).subscribe(i=>{if(i==null)return;const{skeleton:t,unitId:e}=i,n=this._renderManagerService.getRenderById(e);if(n==null)return;const{mainComponent:r}=n;r.changeSkeleton(t),this._recalculateSizeBySkeleton(n,t)})}_recalculateSizeBySkeleton(i,t){var u;const{mainComponent:e,scene:n}=i,r=e,o=(u=t.getSkeletonData())==null?void 0:u.pages;if(o==null)return;let s=0,c=0;for(let d=0,p=o.length;d<p;d++){const h=o[d],{pageWidth:m,pageHeight:g}=h;r.pageLayoutType===M.PageLayoutType.VERTICAL?(c+=g,c+=r.pageMarginTop,d===p-1&&(c+=r.pageMarginTop),s=Math.max(s,m)):r.pageLayoutType===M.PageLayoutType.HORIZONTAL&&(s+=m,d!==p-1&&(s+=r.pageMarginLeft),c=Math.max(c,g))}r.resize(s,c),[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY].includes(i.unitId)||n.resize(s,c)}_commandExecutedListener(){const i=[_.id],t=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var n;if(i.includes(e.id)){const r=e.params,{unitId:o}=r,s=this._docSkeletonManagerService.getSkeletonByUnitId(o);if(s==null)return;const{skeleton:c}=s,l=this._renderManagerService.getRenderById(o);if(l==null)return;if(c.calculate(),t.includes(o)){(n=l.mainComponent)==null||n.makeDirty();return}this._recalculateSizeBySkeleton(l,c)}}))}};de=Jt([a.OnLifecycle(a.LifecycleStages.Rendered,de),xe(0,E.Inject(exports.DocSkeletonManagerService)),xe(1,M.IRenderManagerService),xe(2,a.ICommandService)],de);var Qt=Object.defineProperty,en=Object.getOwnPropertyDescriptor,tn=(i,t,e,n)=>{for(var r=n>1?void 0:n?en(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&Qt(t,e,r),r},K=(i,t)=>(e,n)=>t(e,n,i);let ue=class extends a.Disposable{constructor(t,e,n,r,o){super();v(this,"_liquid",new M.Liquid);v(this,"_pageMarginCache",new Map);this._docSkeletonManagerService=t,this._currentUniverService=e,this._renderManagerService=n,this._commandService=r,this._floatingObjectManagerService=o,this._initialize(),this._commandExecutedListener()}_initialize(){this._initialRenderRefresh(),this._updateOnPluginChange()}_updateOnPluginChange(){this._floatingObjectManagerService.pluginUpdate$.subscribe(t=>{const e=this._docSkeletonManagerService.getCurrent();if(e==null)return;const{unitId:n,skeleton:r}=e,o=this._renderManagerService.getRenderById(n);if(o==null)return;const{mainComponent:s,components:c,scene:l}=o,u=s,{left:d,top:p}=u;t.forEach(h=>{const{unitId:m,subUnitId:g,floatingObjectId:f,floatingObject:S}=h,{left:I=0,top:C=0,width:x=0,height:T=0,angle:O,flipX:y,flipY:b,skewX:U,skewY:P}=S,R=this._pageMarginCache.get(f),N=(R==null?void 0:R.marginLeft)||0,w=(R==null?void 0:R.marginTop)||0;r==null||r.getViewModel().getDataModel().updateDrawing(f,{left:I-d-N,top:C-p-w,height:T,width:x})}),r==null||r.calculate(),s==null||s.makeDirty()})}_initialRenderRefresh(){this._docSkeletonManagerService.currentSkeleton$.subscribe(t=>{if(t==null)return;const{skeleton:e,unitId:n}=t,r=this._renderManagerService.getRenderById(n);if(r==null)return;const{mainComponent:o}=r;o.changeSkeleton(e),this._refreshFloatingObject(n,e,r)})}_commandExecutedListener(){const t=[_.id,V.id],e=[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY];this.disposeWithMe(this._commandService.onCommandExecuted(n=>{var r;if(t.includes(n.id)){const o=n.params,{unitId:s}=o,c=this._docSkeletonManagerService.getCurrent();if(c==null)return;const{unitId:l,skeleton:u}=c;if(s!==l)return;const d=this._renderManagerService.getRenderById(l);if(d==null)return;if(e.includes(l)){(r=d.mainComponent)==null||r.makeDirty();return}this._refreshFloatingObject(l,u,d)}}))}_refreshFloatingObject(t,e,n){const r=e==null?void 0:e.getSkeletonData(),{mainComponent:o,scene:s}=n,c=o;if(!r)return;const{left:l,top:u,pageLayoutType:d,pageMarginLeft:p,pageMarginTop:h}=c,{pages:m}=r,g=[];s.getAncestorScale(),this._liquid.reset(),this._pageMarginCache.clear();for(let f=0,S=m.length;f<S;f++){const I=m[f],{skeDrawings:C,marginLeft:x,marginTop:T}=I;this._liquid.translatePagePadding(I),C.forEach(O=>{const{aLeft:y,aTop:b,height:U,width:P,objectId:R}=O;g.push({unitId:t,subUnitId:a.DEFAULT_DOCUMENT_SUB_COMPONENT_ID,floatingObjectId:R,floatingObject:{left:y+l+this._liquid.x,top:b+u+this._liquid.y,width:P,height:U}}),this._pageMarginCache.set(R,{marginLeft:this._liquid.x,marginTop:this._liquid.y})}),this._liquid.translatePage(I,d,p,h)}this._floatingObjectManagerService.BatchAddOrUpdate(g)}};ue=tn([a.OnLifecycle(a.LifecycleStages.Steady,ue),K(0,E.Inject(exports.DocSkeletonManagerService)),K(1,a.IUniverInstanceService),K(2,M.IRenderManagerService),K(3,a.ICommandService),K(4,a.IFloatingObjectManagerService)],ue);var nn=Object.defineProperty,rn=Object.getOwnPropertyDescriptor,on=(i,t,e,n)=>{for(var r=n>1?void 0:n?rn(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&nn(t,e,r),r},W=(i,t)=>(e,n)=>t(e,n,i);let me=class extends a.Disposable{constructor(t,e,n,r,o,s){super();v(this,"_previousIMEContent","");v(this,"_previousIMERange");v(this,"_onStartSubscription");v(this,"_onUpdateSubscription");v(this,"_onEndSubscription");this._docSkeletonManagerService=t,this._currentUniverService=e,this._renderManagerService=n,this._textSelectionRenderManager=r,this._imeInputManagerService=o,this._commandService=s,this._initialize()}dispose(){var t,e,n;(t=this._onStartSubscription)==null||t.unsubscribe(),(e=this._onUpdateSubscription)==null||e.unsubscribe(),(n=this._onEndSubscription)==null||n.unsubscribe()}_initialize(){this._initialOnCompositionstart(),this._initialOnCompositionUpdate(),this._initialOnCompositionend()}_initialOnCompositionstart(){this._onStartSubscription=this._textSelectionRenderManager.onCompositionstart$.subscribe(t=>{if(t==null)return;const{activeRange:e}=t;e!=null&&(this._imeInputManagerService.clearUndoRedoMutationParamsCache(),this._imeInputManagerService.setActiveRange(a.Tools.deepClone(e)),this._previousIMERange=e)})}_initialOnCompositionUpdate(){this._onUpdateSubscription=this._textSelectionRenderManager.onCompositionupdate$.subscribe(async t=>{this._updateContent(t,!0)})}_initialOnCompositionend(){this._onEndSubscription=this._textSelectionRenderManager.onCompositionend$.subscribe(t=>{this._updateContent(t,!1)})}async _updateContent(t,e){var g;const n=(g=this._docSkeletonManagerService.getCurrent())==null?void 0:g.skeleton;if(this._previousIMERange==null||t==null||n==null)return;const r=this._currentUniverService.getCurrentUniverDocInstance(),{event:o,activeRange:s}=t,{startOffset:c,segmentId:l,style:u}=this._previousIMERange;if(n==null||s==null)return;const p=o.data;if(p===this._previousIMEContent&&e)return;const h=p.length,m=[{startOffset:c+h,endOffset:c+h,style:u}];await this._commandService.executeCommand($e.id,{unitId:r.getUnitId(),newText:p,oldTextLen:this._previousIMEContent.length,range:this._previousIMERange,textRanges:m,isCompositionEnd:!e,segmentId:l}),e?(this._previousIMERange.collapsed||(this._previousIMERange.collapsed=!0),this._previousIMEContent=p):this._resetIME()}_resetIME(){this._previousIMEContent="",this._previousIMERange=null,this._imeInputManagerService.clearUndoRedoMutationParamsCache(),this._imeInputManagerService.setActiveRange(null)}_getDocObject(){return Q(this._currentUniverService,this._renderManagerService)}};me=on([a.OnLifecycle(a.LifecycleStages.Rendered,me),W(0,E.Inject(exports.DocSkeletonManagerService)),W(1,a.IUniverInstanceService),W(2,M.IRenderManagerService),W(3,M.ITextSelectionRenderManager),W(4,E.Inject(Be)),W(5,a.ICommandService)],me);var sn=Object.defineProperty,an=Object.getOwnPropertyDescriptor,cn=(i,t,e,n)=>{for(var r=n>1?void 0:n?an(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&sn(t,e,r),r},Ze=(i,t)=>(e,n)=>t(e,n,i);let ge=class extends a.Disposable{constructor(i,t){super(),this._textSelectionManagerService=i,this._commandService=t,this._commandExecutedListener()}_commandExecutedListener(){const i=[G.id,ee.id,te.id,ne.id,B.id,k.id,X.id,H.id,re.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{i.includes(t.id)&&this._handleInlineFormat(t)}))}_handleInlineFormat(i){const{segmentId:t}=this._textSelectionManagerService.getActiveRange()??{};t!=null&&this._commandService.executeCommand(Fe.id,{segmentId:t,preCommandId:i.id,...i.params??{}})}};ge=cn([a.OnLifecycle(a.LifecycleStages.Rendered,ge),Ze(0,E.Inject(exports.TextSelectionManagerService)),Ze(1,a.ICommandService)],ge);var ln=Object.defineProperty,dn=Object.getOwnPropertyDescriptor,un=(i,t,e,n)=>{for(var r=n>1?void 0:n?dn(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&ln(t,e,r),r},Y=(i,t)=>(e,n)=>t(e,n,i);let pe=class extends a.Disposable{constructor(t,e,n,r,o){super();v(this,"_onInputSubscription");this._docSkeletonManagerService=t,this._currentUniverService=e,this._renderManagerService=n,this._textSelectionManagerService=r,this._commandService=o,this._initialize(),this._commandExecutedListener()}dispose(){var t;(t=this._onInputSubscription)==null||t.unsubscribe()}_initialize(){}_commandExecutedListener(){const t=[$.id,F.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(!t.includes(e.id))return;const n=e.params;switch(e.id){case $.id:return this._handleMoveCursor(n.direction);case F.id:return this._handleShiftMoveSelection(n.direction);default:throw new Error("Unknown command")}}))}_handleShiftMoveSelection(t){var f;const e=this._textSelectionManagerService.getActiveRange(),n=this._textSelectionManagerService.getSelections(),r=this._currentUniverService.getCurrentUniverDocInstance(),o=(f=this._docSkeletonManagerService.getCurrent())==null?void 0:f.skeleton,s=this._getDocObject();if(e==null||o==null||s==null)return;const{startOffset:c,endOffset:l,style:u,collapsed:d,direction:p}=e;if(n.length>1){let S=Number.POSITIVE_INFINITY,I=Number.NEGATIVE_INFINITY;for(const C of n)S=Math.min(S,C.startOffset),I=Math.max(I,C.endOffset);this._textSelectionManagerService.replaceTextRanges([{startOffset:t===a.Direction.LEFT||t===a.Direction.UP?I:S,endOffset:t===a.Direction.LEFT||t===a.Direction.UP?S:I,style:u}]);return}const h=d||p===M.RANGE_DIRECTION.FORWARD?c:l;let m=d||p===M.RANGE_DIRECTION.FORWARD?l:c;const g=r.getBody().dataStream.length??Number.POSITIVE_INFINITY;if(t===a.Direction.LEFT||t===a.Direction.RIGHT){const S=o.findNodeByCharIndex(m-1),I=o.findNodeByCharIndex(m);m=t===a.Direction.RIGHT?m+I.count:m-((S==null?void 0:S.count)??0),m=Math.min(g-2,Math.max(0,m)),this._textSelectionManagerService.replaceTextRanges([{startOffset:h,endOffset:m,style:u}])}else{const S=o.findNodeByCharIndex(m),I=s.document.getOffsetConfig(),C=this._getTopOrBottomPosition(o,S,t===a.Direction.DOWN);if(C==null){const T=t===a.Direction.UP?0:g-2;if(T===m)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:h,endOffset:T,style:u}]);return}const x=new M.NodePositionConvertToCursor(I,o).getRangePointData(C,C).cursorList[0];this._textSelectionManagerService.replaceTextRanges([{startOffset:h,endOffset:x.endOffset,style:u}])}}_handleMoveCursor(t){var h;const e=this._textSelectionManagerService.getActiveRange(),n=this._textSelectionManagerService.getSelections(),r=this._currentUniverService.getCurrentUniverDocInstance(),o=(h=this._docSkeletonManagerService.getCurrent())==null?void 0:h.skeleton,s=this._getDocObject();if(e==null||o==null||s==null||n==null)return;const{startOffset:c,endOffset:l,style:u,collapsed:d}=e,p=r.getBody().dataStream.length??Number.POSITIVE_INFINITY;if(t===a.Direction.LEFT||t===a.Direction.RIGHT){let m;if(!e.collapsed||n.length>1){let g=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY;for(const S of n)g=Math.min(g,S.startOffset),f=Math.max(f,S.endOffset);m=t===a.Direction.LEFT?g:f}else{const g=o.findNodeByCharIndex(c-1),f=o.findNodeByCharIndex(c);t===a.Direction.LEFT?m=Math.max(0,c-((g==null?void 0:g.count)??0)):m=Math.min(p-2,l+f.count)}this._textSelectionManagerService.replaceTextRanges([{startOffset:m,endOffset:m,style:u}])}else{const m=o.findNodeByCharIndex(c),g=o.findNodeByCharIndex(l),f=s.document.getOffsetConfig(),S=this._getTopOrBottomPosition(o,t===a.Direction.UP?m:g,t===a.Direction.DOWN);if(S==null){let C;d?C=t===a.Direction.UP?0:p-2:C=t===a.Direction.UP?c:l,this._textSelectionManagerService.replaceTextRanges([{startOffset:C,endOffset:C,style:u}]);return}const I=new M.NodePositionConvertToCursor(f,o).getRangePointData(S,S).cursorList[0];this._textSelectionManagerService.replaceTextRanges([{...I,style:u}])}}_getTopOrBottomPosition(t,e,n){if(e==null)return;const r=this._getSpanLeftOffsetInLine(e),o=this._getNextOrPrevLine(e,n);if(o==null)return;const s=this._matchPositionByLeftOffset(t,o,r);if(s!=null)return{...s,isBack:!0}}_getSpanLeftOffsetInLine(t){const e=t.parent;if(e==null)return Number.NEGATIVE_INFINITY;const n=e.left,{left:r}=t;return n+r}_matchPositionByLeftOffset(t,e,n){const r={distance:Number.POSITIVE_INFINITY};for(const o of e.divides){const s=o.left;for(const c of o.spanGroup){const{left:l}=c,u=s+l,d=Math.abs(n-u);d<r.distance&&(r.span=c,r.distance=d)}}if(r.span!=null)return t.findPositionBySpan(r.span)}_getNextOrPrevLine(t,e){var g,f,S,I,C,x,T,O,y,b,U,P;const n=t.parent;if(n==null)return;const r=n.parent;if(r==null)return;const o=r.parent;if(o==null)return;const s=o.lines.indexOf(r);if(s===-1)return;let c;if(e===!0?c=o.lines[s+1]:c=o.lines[s-1],c!=null)return c;const l=o.parent;if(l==null)return;const u=l.columns.indexOf(o);if(u===-1)return;if(e===!0)c=(g=l.columns[u+1])==null?void 0:g.lines[0];else{const R=(S=(f=l.columns)==null?void 0:f[u-1])==null?void 0:S.lines;c=R==null?void 0:R[R.length-1]}if(c!=null)return c;const d=l.parent;if(d==null)return;const p=d.sections.indexOf(l);if(p===-1)return;if(e===!0)c=(C=(I=d.sections[p-1])==null?void 0:I.columns[0])==null?void 0:C.lines[0];else{const R=(T=(x=d.sections)==null?void 0:x[p-1])==null?void 0:T.columns,N=R==null?void 0:R[R.length-1],w=N==null?void 0:N.lines;c=w==null?void 0:w[w.length-1]}if(c!=null)return c;const h=d.parent;if(h==null)return;const m=h.pages.indexOf(d);if(m!==-1){if(e===!0)c=(b=(y=(O=h.pages[m+1])==null?void 0:O.sections[0])==null?void 0:y.columns[0])==null?void 0:b.lines[0];else{const R=(U=h.pages[m-1])==null?void 0:U.sections;if(R==null)return;const N=(P=R[R.length-1])==null?void 0:P.columns,w=N[N.length-1],ke=w==null?void 0:w.lines;c=ke[ke.length-1]}if(c!=null)return c}}_getDocObject(){return Q(this._currentUniverService,this._renderManagerService)}};pe=un([a.OnLifecycle(a.LifecycleStages.Rendered,pe),Y(0,E.Inject(exports.DocSkeletonManagerService)),Y(1,a.IUniverInstanceService),Y(2,M.IRenderManagerService),Y(3,E.Inject(exports.TextSelectionManagerService)),Y(4,a.ICommandService)],pe);var mn=Object.defineProperty,gn=Object.getOwnPropertyDescriptor,pn=(i,t,e,n)=>{for(var r=n>1?void 0:n?gn(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&mn(t,e,r),r},q=(i,t)=>(e,n)=>t(e,n,i);let he=class extends a.Disposable{constructor(t,e,n,r,o){super();v(this,"_onInputSubscription");this._docSkeletonManagerService=t,this._currentUniverService=e,this._renderManagerService=n,this._textSelectionRenderManager=r,this._commandService=o,this._initialize(),this._commandExecutedListener()}dispose(){var t;(t=this._onInputSubscription)==null||t.unsubscribe()}_initialize(){this._initialNormalInput()}_initialNormalInput(){this._onInputSubscription=this._textSelectionRenderManager.onInput$.subscribe(async t=>{var g;if(t==null)return;const n=this._currentUniverService.getCurrentUniverDocInstance().getUnitId(),{event:r,content:o="",activeRange:s}=t,c=r,l=(g=this._docSkeletonManagerService.getCurrent())==null?void 0:g.skeleton;if(c.data==null||l==null||!l||!s)return;const{startOffset:u,segmentId:d,style:p}=s,h=o.length,m=[{startOffset:u+h,endOffset:u+h,style:p}];await this._commandService.executeCommand(Re.id,{unitId:n,body:{dataStream:o},range:s,textRanges:m,segmentId:d})})}_commandExecutedListener(){}_getDocObject(){return Q(this._currentUniverService,this._renderManagerService)}};he=pn([a.OnLifecycle(a.LifecycleStages.Rendered,he),q(0,E.Inject(exports.DocSkeletonManagerService)),q(1,a.IUniverInstanceService),q(2,M.IRenderManagerService),q(3,M.ITextSelectionRenderManager),q(4,a.ICommandService)],he);var hn=Object.defineProperty,fn=Object.getOwnPropertyDescriptor,Sn=(i,t,e,n)=>{for(var r=n>1?void 0:n?fn(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&hn(t,e,r),r},Je=(i,t)=>(e,n)=>t(e,n,i);const _n="rgba(198, 198, 198, 1)",vn="rgba(255, 255, 255, 1)";let fe=class extends a.Disposable{constructor(i,t){super(),this._renderManagerService=i,this._currentUniverService=t,this._initialize(),this._commandExecutedListener()}_initialize(){this._initialRenderRefresh()}_initialRenderRefresh(){this._renderManagerService.currentRender$.subscribe(i=>{var o;if(i==null||this._currentUniverService.getUniverDocInstance(i)==null)return;const t=this._renderManagerService.getRenderById(i);if(t==null)return;const{mainComponent:e}=t,n=e,r=(o=n.getSkeleton())==null?void 0:o.getPageSize();n.onPageRenderObservable.add(s=>{if([a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY].includes(i))return;const{page:c,pageLeft:l,pageTop:u,ctx:d}=s,{width:p,pageWidth:h,height:m,pageHeight:g}=c;d.save(),d.translate(l-.5,u-.5),M.Rect.drawWith(d,{width:(r==null?void 0:r.width)??h??p,height:(r==null?void 0:r.height)??g??m,strokeWidth:1,stroke:_n,fill:vn,zIndex:3}),d.restore()})})}_commandExecutedListener(){}};fe=Sn([a.OnLifecycle(a.LifecycleStages.Rendered,fe),Je(0,M.IRenderManagerService),Je(1,E.Inject(a.IUniverInstanceService))],fe);var In=Object.defineProperty,Cn=Object.getOwnPropertyDescriptor,Mn=(i,t,e,n)=>{for(var r=n>1?void 0:n?Cn(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&In(t,e,r),r},j=(i,t)=>(e,n)=>t(e,n,i);let Se=class extends a.Disposable{constructor(t,e,n,r,o,s,c){super();v(this,"_moveInObserver");v(this,"_moveOutObserver");v(this,"_downObserver");v(this,"_dblClickObserver");v(this,"_tripleClickObserver");v(this,"_loadedMap",new Set);this._docSkeletonManagerService=t,this._currentUniverService=e,this._commandService=n,this._renderManagerService=r,this._textSelectionRenderManager=o,this._textSelectionManagerService=s,this._layoutService=c,this._renderManagerService.currentRender$.subscribe(l=>{l!=null&&this._currentUniverService.getUniverDocInstance(l)!=null&&(this._loadedMap.has(l)||(this._initialMain(l),this._loadedMap.add(l)))}),this._initialize()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._layoutService&&this.disposeWithMe(this._layoutService.registerContainer(this._textSelectionRenderManager.__getEditorContainer()))}dispose(){this._renderManagerService.getRenderAll().forEach(t=>{const{mainComponent:e}=t;e!=null&&(e.onPointerEnterObserver.remove(this._moveInObserver),e.onPointerLeaveObserver.remove(this._moveOutObserver),e.onPointerDownObserver.remove(this._downObserver),e.onDblclickObserver.remove(this._dblClickObserver),e.onTripleClickObserver.remove(this._tripleClickObserver))})}_initialMain(t){const e=this._getDocObjectById(t);if(e==null)return;const{document:n,scene:r}=e;this._moveInObserver=n.onPointerEnterObserver.add(()=>{n.cursor=M.CURSOR_TYPE.TEXT}),this._moveOutObserver=n.onPointerLeaveObserver.add(()=>{n.cursor=M.CURSOR_TYPE.DEFAULT,r.resetCursor()}),this._downObserver=n==null?void 0:n.onPointerDownObserver.add((o,s)=>{this._currentUniverService.getCurrentUniverDocInstance().getUnitId()!==t&&this._currentUniverService.setCurrentUniverDocInstance(t),this._textSelectionRenderManager.eventTrigger(o),o.button!==2&&s.stopPropagation()}),this._dblClickObserver=n==null?void 0:n.onDblclickObserver.add(o=>{this._textSelectionRenderManager.handleDblClick(o)}),this._tripleClickObserver=n==null?void 0:n.onTripleClickObserver.add(o=>{this._textSelectionRenderManager.handleTripleClick(o)})}_commandExecutedListener(){const t=[V.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var n;if(t.includes(e.id)){const r=e.params,{unitId:o}=r,s=(n=this._textSelectionManagerService.getCurrentSelection())==null?void 0:n.unitId;if(o!==s)return;this._textSelectionManagerService.refreshSelection()}}))}_skeletonListener(){this._docSkeletonManagerService.currentSkeleton$.subscribe(t=>{if(t==null)return;const{unitId:e,skeleton:n}=t,r=this._renderManagerService.getRenderById(e);if(r==null)return;const{scene:o,mainComponent:s}=r;this._textSelectionRenderManager.changeRuntime(n,o,s),this._textSelectionManagerService.setCurrentSelectionNotRefresh({unitId:e,subUnitId:""})})}_getDocObjectById(t){return gt(t,this._renderManagerService)}};Se=Mn([a.OnLifecycle(a.LifecycleStages.Rendered,Se),j(0,E.Inject(exports.DocSkeletonManagerService)),j(1,a.IUniverInstanceService),j(2,a.ICommandService),j(3,M.IRenderManagerService),j(4,M.ITextSelectionRenderManager),j(5,E.Inject(exports.TextSelectionManagerService)),j(6,E.Optional(D.LayoutService))],Se);var On=Object.defineProperty,Rn=Object.getOwnPropertyDescriptor,yn=(i,t,e,n)=>{for(var r=n>1?void 0:n?Rn(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&On(t,e,r),r},Z=(i,t)=>(e,n)=>t(e,n,i);let _e=class extends a.Disposable{constructor(t,e,n,r,o){super();v(this,"_initializedRender",new Set);this._docSkeletonManagerService=t,this._currentUniverService=e,this._commandService=n,this._renderManagerService=r,this._textSelectionManagerService=o,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._initialRenderRefresh()}_initialRenderRefresh(){this._docSkeletonManagerService.currentSkeleton$.subscribe(t=>{if(t==null)return;const{unitId:e}=t,n=this._renderManagerService.getRenderById(e);if(n==null||this._initializedRender.has(e)||[a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY].includes(e))return;this._initializedRender.add(e);const{scene:r}=n;this.disposeWithMe(a.toDisposable(r.onMouseWheelObserver.add(o=>{if(!o.ctrlKey)return;const s=Math.abs(o.deltaX);let c=s<40?.2:s<80?.4:.2;c*=o.deltaY>0?-1:1,r.scaleX<1&&(c/=2);const l=this._currentUniverService.getCurrentUniverDocInstance(),u=l.zoomRatio;let d=+parseFloat(`${u+c}`).toFixed(1);d=d>=4?4:d<=.1?.1:d,this._commandService.executeCommand(ct.id,{zoomRatio:d,unitId:l.getUnitId()}),o.preventDefault()})))})}_skeletonListener(){this.disposeWithMe(a.toDisposable(this._docSkeletonManagerService.currentSkeletonBefore$.subscribe(t=>{if(t==null)return;const n=this._currentUniverService.getCurrentUniverDocInstance().zoomRatio||1;this._updateViewZoom(n,!1)})))}_commandExecutedListener(){const t=[V.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(t.includes(e.id)){const n=this._currentUniverService.getCurrentUniverDocInstance(),r=e.params,{unitId:o}=r;if(o!==n.getUnitId())return;const s=n.zoomRatio||1;this._updateViewZoom(s)}}))}_updateViewZoom(t,e=!0){var r;const n=this._getDocObject();n!=null&&(n.scene.scale(t,t),this._calculatePagePosition(n,t),e&&this._textSelectionManagerService.refreshSelection(),(r=n.scene.getTransformer())==null||r.hideControl())}_calculatePagePosition(t,e){const{document:n,scene:r}=t,o=r==null?void 0:r.getParent(),{width:s,height:c,pageMarginLeft:l,pageMarginTop:u}=n;if(o==null||s===1/0||c===1/0)return;const{width:d,height:p}=o;let h=0,m=0,g=0,f=0,S=1/0;d>(s+l*2)*e?(h=d/2-s*e/2,h/=e,g=(d-l*2)/e,S=0):(h=l,g=s+l*2,S=(g-d/e)/2),p>c?(m=p/2-c/2,f=(p-u*2)/e):(m=u,f=c+u*2),r.resize(g,f+200),n.translate(h,m);const I=r.getViewport(Me.VIEW_MAIN);if(S!==1/0&&I!=null){const C=I.getBarScroll(S,0).x;I.scrollTo({x:C})}return this}_getDocObject(){return Q(this._currentUniverService,this._renderManagerService)}};_e=yn([a.OnLifecycle(a.LifecycleStages.Rendered,_e),Z(0,E.Inject(exports.DocSkeletonManagerService)),Z(1,a.IUniverInstanceService),Z(2,a.ICommandService),Z(3,M.IRenderManagerService),Z(4,E.Inject(exports.TextSelectionManagerService))],_e);const xn={id:Ne.id,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),binding:D.KeyCode.ENTER},Tn={id:we.id,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),binding:D.KeyCode.BACKSPACE},Dn={id:Le.id,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),binding:D.KeyCode.DELETE},bn={id:$.id,binding:D.KeyCode.ARROW_UP,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),staticParameters:{direction:a.Direction.UP}},En={id:$.id,binding:D.KeyCode.ARROW_DOWN,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),staticParameters:{direction:a.Direction.DOWN}},Un={id:$.id,binding:D.KeyCode.ARROW_LEFT,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),staticParameters:{direction:a.Direction.LEFT}},Pn={id:$.id,binding:D.KeyCode.ARROW_RIGHT,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),staticParameters:{direction:a.Direction.RIGHT}},Nn={id:F.id,binding:D.KeyCode.ARROW_UP|D.MetaKeys.SHIFT,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),staticParameters:{direction:a.Direction.UP}},wn={id:F.id,binding:D.KeyCode.ARROW_DOWN|D.MetaKeys.SHIFT,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),staticParameters:{direction:a.Direction.DOWN}},Ln={id:F.id,binding:D.KeyCode.ARROW_LEFT|D.MetaKeys.SHIFT,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),staticParameters:{direction:a.Direction.LEFT}},An={id:F.id,binding:D.KeyCode.ARROW_RIGHT|D.MetaKeys.SHIFT,preconditions:i=>i.getContextValue(a.FOCUSING_DOC),staticParameters:{direction:a.Direction.RIGHT}},Bn={id:lt.id,binding:D.KeyCode.A|D.MetaKeys.CTRL_COMMAND,preconditions:i=>i.getContextValue(a.FOCUSING_DOC)||i.getContextValue(a.EDITOR_ACTIVATED)};var $n=Object.defineProperty,Fn=Object.getOwnPropertyDescriptor,jn=(i,t,e,n)=>{for(var r=n>1?void 0:n?Fn(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&$n(t,e,r),r},ie=(i,t)=>(e,n)=>t(e,n,i);exports.DocCanvasView=class extends a.RxDisposable{constructor(e,n,r,o){super();v(this,"_scene");v(this,"_currentDocumentModel");v(this,"_loadedMap",new Set);v(this,"_fps$",new L.BehaviorSubject(""));v(this,"fps$",this._fps$.asObservable());this._renderManagerService=e,this._configService=n,this._currentUniverService=r,this._docViewModelManagerService=o,this._initialize()}_initialize(){this._currentUniverService.currentDoc$.pipe(L.takeUntil(this.dispose$)).subscribe(e=>{if(e==null)return;this._currentDocumentModel=e;const n=e.getUnitId();this._loadedMap.has(n)||(this._addNewRender(),this._loadedMap.add(n))})}dispose(){this._fps$.complete()}_addNewRender(){const e=this._currentDocumentModel,n=e.getUnitId(),r=e.getContainer(),o=e.getParentRenderUnitId();if(r!=null&&o!=null)throw new Error("container or parentRenderUnitId can only exist one");r==null&&o!=null?this._renderManagerService.createRenderWithParent(n,o):this._renderManagerService.createRender(n);const s=this._renderManagerService.getRenderById(n);if(s==null)return;const{scene:c,engine:l}=s;c.openTransformer(),this._scene=c;const u=new M.Viewport(Me.VIEW_MAIN,c,{left:0,top:0,bottom:0,right:0,isWheelPreventDefaultX:!0});c.attachControl(),c.on(M.EVENT_TYPE.wheel,(h,m)=>{const g=h;if(g.ctrlKey){const f=Math.abs(g.deltaX);let S=f<40?.2:f<80?.4:.2;S*=g.deltaY>0?-1:1,c.scaleX<1&&(S/=2),c.scaleX+S>4?c.scale(4,4):c.scaleX+S<.1?c.scale(.1,.1):g.preventDefault()}else u.onMouseWheel(g,m)}),this._configService.getConfig("hasScroll")!==!1&&n!==a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&new M.ScrollBar(u),c.addLayer(new M.Layer(c,[],De),new M.Layer(c,[],Qe)),this._addComponent(s),this._currentDocumentModel.getShouldRenderLoopImmediately()&&l.runRenderLoop(()=>{c.render(),this._fps$.next(Math.round(l.getFps()).toString())}),this._renderManagerService.setCurrent(n)}_addComponent(e){const n=this._scene,r=this._currentDocumentModel,o=new M.Documents(ve.MAIN,void 0,{pageMarginLeft:r.documentStyle.marginLeft||0,pageMarginTop:r.documentStyle.marginTop||0});o.zIndex=et,e.mainComponent=o,e.components.set(ve.MAIN,o),n.addObjects([o],De)}};exports.DocCanvasView=jn([a.OnLifecycle(a.LifecycleStages.Ready,exports.DocCanvasView),ie(0,M.IRenderManagerService),ie(1,a.IConfigService),ie(2,a.IUniverInstanceService),ie(3,E.Inject(exports.DocViewModelManagerService))],exports.DocCanvasView);var Vn=Object.defineProperty,kn=Object.getOwnPropertyDescriptor,zn=(i,t,e,n)=>{for(var r=n>1?void 0:n?kn(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&Vn(t,e,r),r},oe=(i,t)=>(e,n)=>t(e,n,i);const Wn={hasScroll:!0},Gn="docs";var Te;exports.UniverDocsPlugin=(Te=class extends a.Plugin{constructor(e={},n,r,o,s){super(Gn);v(this,"_config");this._injector=n,this._localeService=r,this._configService=o,this._currentUniverService=s,this._config=Object.assign(Wn,e),this._initializeDependencies(n),this._initializeCommands()}initialize(){}_initializeCommands(){[$,F,we,Le,G,ee,te,ne,B,k,X,H,re,Fe,Ne,Re,ye,Pe,$e,Ae,_,ot,st,ct,V,Ue,lt,it,rt,je].forEach(e=>{this._injector.get(a.ICommandService).registerCommand(e)}),[bn,En,Pn,Un,Nn,wn,Ln,An,Bn,Tn,Dn,xn].forEach(e=>{this._injector.get(D.IShortcutService).registerShortcut(e)})}onReady(){this.initialize()}_initializeDependencies(e){[[exports.DocCanvasView],[exports.DocSkeletonManagerService],[exports.DocViewModelManagerService],[Be],[dt,{useClass:Ee}],[M.ITextSelectionRenderManager,{useClass:M.TextSelectionRenderManager}],[exports.TextSelectionManagerService],[de],[fe],[Se],[he],[me],[ge],[le],[pe],[_e],[ue]].forEach(n=>e.add(n))}},v(Te,"type",a.PluginType.Doc),Te);exports.UniverDocsPlugin=zn([oe(1,E.Inject(E.Injector)),oe(2,E.Inject(a.LocaleService)),oe(3,a.IConfigService),oe(4,a.IUniverInstanceService)],exports.UniverDocsPlugin);exports.BreakLineCommand=Ne;exports.BulletListCommand=rt;exports.CoverContentCommand=st;exports.DOCS_COMPONENT_DEFAULT_Z_INDEX=et;exports.DOCS_COMPONENT_HEADER_LAYER_INDEX=Qe;exports.DOCS_COMPONENT_MAIN_LAYER_INDEX=De;exports.DOCS_VIEW_KEY=ve;exports.DeleteCommand=ye;exports.DeleteLeftCommand=we;exports.DeleteRightCommand=Le;exports.DocCopyCommand=se;exports.DocCutCommand=ae;exports.DocPasteCommand=ce;exports.IMEInputCommand=$e;exports.InsertCommand=Re;exports.MoveCursorOperation=$;exports.MoveSelectionOperation=F;exports.NORMAL_TEXT_SELECTION_PLUGIN_NAME=pt;exports.OrderListCommand=it;exports.ReplaceContentCommand=ot;exports.RichTextEditingMutation=_;exports.SetInlineFormatBoldCommand=G;exports.SetInlineFormatCommand=Fe;exports.SetInlineFormatFontFamilyCommand=H;exports.SetInlineFormatFontSizeCommand=X;exports.SetInlineFormatItalicCommand=ee;exports.SetInlineFormatStrikethroughCommand=ne;exports.SetInlineFormatSubscriptCommand=B;exports.SetInlineFormatSuperscriptCommand=k;exports.SetInlineFormatTextColorCommand=re;exports.SetInlineFormatUnderlineCommand=te;exports.SetTextSelectionsOperation=Ue;exports.UpdateCommand=Pe;exports.VIEWPORT_KEY=Me;exports.getDocObject=Q;
|
|
1
|
+
"use strict";var qe=Object.defineProperty;var Ze=(s,r,e)=>r in s?qe(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e;var I=(s,r,e)=>(Ze(s,typeof r!="symbol"?r+"":r,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),C=require("@univerjs/engine-render"),N=require("rxjs"),b=require("@wendellhu/redi");function pe(s,r){const t=s.getCurrentUniverDocInstance().getUnitId(),n=r.getRenderById(t);if(n==null)return;const{mainComponent:i,scene:a,engine:c}=n;return{document:i,scene:a,engine:c}}function Je(s,r){const e=r.getRenderById(s);if(e==null)return;const{mainComponent:t,scene:n,engine:i}=e;return{document:t,scene:n,engine:i}}var ge=(s=>(s.MAIN="__Document_Render_Main__",s))(ge||{}),_e=(s=>(s.VIEW_MAIN="viewMain",s.VIEW_TOP="viewTop",s.VIEW_LEFT="viewLeft",s.VIEW_LEFT_TOP="viewLeftTop",s))(_e||{});const Me=0,Le=2,Be=10,Qe="normalTextSelectionPluginName",Ce={id:"doc.operation.set-selections",type:o.CommandType.OPERATION,handler:(s,r)=>!0};var et=Object.defineProperty,tt=Object.getOwnPropertyDescriptor,nt=(s,r,e,t)=>{for(var n=t>1?void 0:t?tt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&et(r,e,n),n},Ue=(s,r)=>(e,t)=>r(e,t,s);function z(s){const{startOffset:r,endOffset:e,collapsed:t}=s;return{startOffset:r,endOffset:e,collapsed:t}}exports.TextSelectionManagerService=class extends o.RxDisposable{constructor(e,t){super();I(this,"_currentSelection",null);I(this,"_textSelectionInfo",new Map);I(this,"_textSelection$",new N.BehaviorSubject(null));I(this,"textSelection$",this._textSelection$.asObservable());this._textSelectionRenderManager=e,this._commandService=t,this._syncSelectionFromRenderService()}getCurrentSelection(){return this._currentSelection}getCurrentSelectionInfo(){return this._getTextRanges(this._currentSelection)}dispose(){this._textSelection$.complete()}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._currentSelection=e,this._refresh(e)}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelections(){var e;return(e=this._getTextRanges(this._currentSelection))==null?void 0:e.textRanges}getActiveRange(){const e=this._getTextRanges(this._currentSelection);if(e==null)return;const{textRanges:t,segmentId:n,style:i}=e,a=t.find(h=>h.isActive());if(a==null)return null;const{startOffset:c,endOffset:l,collapsed:u,startNodePosition:d,endNodePosition:m,direction:g}=a;return c==null||l==null?null:{startOffset:c,endOffset:l,collapsed:u,startNodePosition:d,endNodePosition:m,direction:g,segmentId:n,style:i}}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,textRanges:e,segmentId:"",style:C.NORMAL_TEXT_SELECTION_PLUGIN_STYLE})}replaceTextRanges(e){this._currentSelection!=null&&(this._textSelectionRenderManager.removeAllTextRanges(),this._textSelectionRenderManager.addTextRanges(e))}_syncSelectionFromRenderService(){this._textSelectionRenderManager.textSelectionInner$.pipe(N.takeUntil(this.dispose$)).subscribe(e=>{e!=null&&this._replaceTextRangesWithNoRefresh(e)})}_replaceTextRangesWithNoRefresh(e){if(this._currentSelection==null)return;const t={...this._currentSelection,...e};this._replaceByParam(t),this._textSelection$.next(t);const{unitId:n,subUnitId:i,segmentId:a,style:c,textRanges:l}=t;this._commandService.executeCommand(Ce.id,{unitId:n,subUnitId:i,segmentId:a,style:c,ranges:l.map(z)})}_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);this._textSelectionRenderManager.removeAllTextRanges(),t&&Array.isArray(t.textRanges)&&t.textRanges.length&&this._textSelectionRenderManager.addTextRanges(t.textRanges.map(z))}_replaceByParam(e){const{unitId:t,subUnitId:n,style:i,segmentId:a,textRanges:c}=e;this._textSelectionInfo.has(t)||this._textSelectionInfo.set(t,new Map),this._textSelectionInfo.get(t).set(n,{textRanges:c,style:i,segmentId:a})}_addByParam(e){const{unitId:t,subUnitId:n,textRanges:i,style:a,segmentId:c}=e;this._textSelectionInfo.has(t)||this._textSelectionInfo.set(t,new Map);const l=this._textSelectionInfo.get(t);l.has(n)?l.get(n).textRanges.push(...i):l.set(n,{textRanges:i,style:a,segmentId:c})}};exports.TextSelectionManagerService=nt([Ue(0,C.ITextSelectionRenderManager),Ue(1,o.ICommandService)],exports.TextSelectionManagerService);function Te(s,r="",e=0){const{startOffset:t,endOffset:n}=s,i=[],a=t-e,c=n-e;return a>0&&i.push({t:o.TextXActionType.RETAIN,len:a,segmentId:r}),i.push({t:o.TextXActionType.DELETE,len:c-a,line:0,segmentId:r}),i}var rt=Object.defineProperty,it=Object.getOwnPropertyDescriptor,ot=(s,r,e,t)=>{for(var n=t>1?void 0:t?it(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&rt(r,e,n),n},st=(s,r)=>(e,t)=>r(e,t,s);exports.DocViewModelManagerService=class extends o.RxDisposable{constructor(e){super();I(this,"_currentViewModelUnitId","");I(this,"_docViewModelMap",new Map);I(this,"_currentDocViewModel$",new N.BehaviorSubject(null));I(this,"currentDocViewModel$",this._currentDocViewModel$.asObservable());this._currentUniverService=e,this._initialize()}_initialize(){this._currentUniverService.currentDoc$.pipe(N.takeUntil(this.dispose$)).subscribe(e=>{if(e==null)return;const t=e.getUnitId();this._setCurrent(t)})}dispose(){this._currentDocViewModel$.complete(),this._docViewModelMap.clear()}getCurrent(){return this._docViewModelMap.get(this._currentViewModelUnitId)}getViewModel(e){var t;return(t=this._docViewModelMap.get(e))==null?void 0:t.docViewModel}_setCurrent(e){var n;const t=this._currentUniverService.getUniverDocInstance(e);if(t==null)throw new Error(`Document data model with id ${e} not found when build view model.`);if(t.getBody()!=null){if(!this._docViewModelMap.has(e)){const i=this._buildDocViewModel(t);this._docViewModelMap.set(e,{unitId:e,docViewModel:i})}if(e===o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const i=(n=this._docViewModelMap.get(e))==null?void 0:n.docViewModel;if(i==null)return;i.reset(t)}this._currentViewModelUnitId=e,this._currentDocViewModel$.next(this.getCurrent())}}_buildDocViewModel(e){return new C.DocumentViewModel(e)}};exports.DocViewModelManagerService=ot([st(0,o.IUniverInstanceService)],exports.DocViewModelManagerService);var at=Object.defineProperty,ct=Object.getOwnPropertyDescriptor,lt=(s,r,e,t)=>{for(var n=t>1?void 0:t?ct(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&at(r,e,n),n},fe=(s,r)=>(e,t)=>r(e,t,s);const dt=300;exports.DocStateChangeManagerService=class extends o.RxDisposable{constructor(e,t,n){super();I(this,"_docStateChange$",new N.BehaviorSubject(null));I(this,"docStateChange$",this._docStateChange$.asObservable());I(this,"_stateCache",new Map);I(this,"_timer",null);this._undoRedoService=e,this._commandService=t,this._univerInstanceService=n,this._initialize()}setChangeState(e){const{trigger:t,noHistory:n}=e;t!=null&&(this._cacheChangeState(e),n||this._docStateChange$.next(e))}_initialize(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===o.UndoCommandId||e.id===o.RedoCommandId){const t=this._univerInstanceService.getCurrentUniverDocInstance();if(t==null)return;const n=t.getUnitId();this._pushHistory(n)}}))}_cacheChangeState(e){const{trigger:t,unitId:n,noHistory:i}=e;if(!(t===o.RedoCommandId||t===o.UndoCommandId||i)){if(this._stateCache.has(n)){const a=this._stateCache.get(n);a==null||a.push(e)}else this._stateCache.set(n,[e]);t===H.id||t===W.id?(this._timer&&clearTimeout(this._timer),this._timer=setTimeout(()=>{this._pushHistory(n)},dt)):this._pushHistory(n)}}_pushHistory(e){const t=this._undoRedoService,n=this._stateCache.get(e);if(!Array.isArray(n)||n.length===0)return;const i=n.length,a=n[0].commandId,c=n[0],l=n[i-1],u={unitId:e,actions:n.reduce((m,g)=>o.TextX.compose(m,g.redoState.actions),[]),textRanges:l.redoState.textRanges},d={unitId:e,actions:n.reverse().reduce((m,g)=>o.TextX.compose(m,g.undoState.actions),[]),textRanges:c.undoState.textRanges};t.pushUndoRedo({unitID:e,undoMutations:[{id:a,params:d}],redoMutations:[{id:a,params:u}]}),n.length=0}};exports.DocStateChangeManagerService=lt([fe(0,b.Inject(o.IUndoRedoService)),fe(1,o.ICommandService),fe(2,o.IUniverInstanceService)],exports.DocStateChangeManagerService);class Y{constructor(){I(this,"_previousActiveRange",null);I(this,"_undoMutationParamsCache",[]);I(this,"_redoMutationParamsCache",[])}clearUndoRedoMutationParamsCache(){this._undoMutationParamsCache=[],this._redoMutationParamsCache=[]}getUndoRedoMutationParamsCache(){return{undoCache:this._undoMutationParamsCache,redoCache:this._redoMutationParamsCache}}setUndoRedoMutationParamsCache({undoCache:r=[],redoCache:e=[]}){this._undoMutationParamsCache=r,this._redoMutationParamsCache=e}getActiveRange(){return this._previousActiveRange}setActiveRange(r){this._previousActiveRange=r}pushUndoRedoMutationParams(r,e){this._undoMutationParamsCache.push(r),this._redoMutationParamsCache.push(e)}fetchComposedUndoRedoMutationParams(){if(this._undoMutationParamsCache.length===0||this._previousActiveRange==null||this._redoMutationParamsCache.length===0)return null;const{unitId:r}=this._undoMutationParamsCache[0],e={unitId:r,actions:this._undoMutationParamsCache.reverse().reduce((n,i)=>o.TextX.compose(n,i.actions),[]),textRanges:[]};return{redoMutationParams:{unitId:r,actions:this._redoMutationParamsCache.reduce((n,i)=>o.TextX.compose(n,i.actions),[]),textRanges:[]},undoMutationParams:e,previousActiveRange:this._previousActiveRange}}dispose(){this._undoMutationParamsCache=[],this._redoMutationParamsCache=[],this._previousActiveRange=null}}const Pe="doc.mutation.rich-text-editing",U={id:Pe,type:o.CommandType.MUTATION,handler:(s,r)=>{var x;const{unitId:e,actions:t,textRanges:n,prevTextRanges:i,trigger:a,noHistory:c,isCompositionEnd:l,noNeedSetTextRange:u}=r,m=s.get(o.IUniverInstanceService).getUniverDocInstance(e),h=s.get(exports.DocViewModelManagerService).getViewModel(e),p=s.get(exports.TextSelectionManagerService),S=((x=p.getSelections())!=null?x:[]).map(z),f=s.get(exports.DocStateChangeManagerService),v=s.get(Y);if(m==null||h==null)throw new Error(`DocumentDataModel or documentViewModel not found for unitId: ${e}`);if(t.length===0)throw new Error("Mutation's length should great than 0 when call RichTextEditingMutation");const T=m.apply(t),{segmentId:O}=t[0],R=m.getSelfOrHeaderFooterModel(O);h.getSelfOrHeaderFooterViewModel(O).reset(R),!u&&n&&queueMicrotask(()=>{p.replaceTextRanges(n)});const D={commandId:Pe,unitId:e,trigger:a,noHistory:c,redoState:{actions:t,textRanges:n},undoState:{actions:T,textRanges:i!=null?i:S}};if(l){const y=v.fetchComposedUndoRedoMutationParams();if(y==null)throw new Error("historyParams is null in RichTextEditingMutation");const{undoMutationParams:M,redoMutationParams:A,previousActiveRange:P}=y;D.redoState.actions=A.actions,D.undoState.actions=M.actions,D.undoState.textRanges=[P]}return f.setChangeState(D),{unitId:e,actions:T,textRanges:S}}},H={id:"doc.command.insert-text",type:o.CommandType.COMMAND,handler:async(s,r)=>{const e=s.get(o.ICommandService),{range:t,segmentId:n,body:i,unitId:a,textRanges:c}=r,{startOffset:l,collapsed:u}=t,d={id:U.id,params:{unitId:a,actions:[],textRanges:c}},m=new o.TextX;return u?l>0&&m.push({t:o.TextXActionType.RETAIN,len:l,segmentId:n}):m.push(...Te(t,n)),m.push({t:o.TextXActionType.INSERT,body:i,len:i.dataStream.length,line:0,segmentId:n}),d.params.actions=m.serialize(),!!e.syncExecuteCommand(d.id,d.params)}};var w=(s=>(s[s.LEFT=0]="LEFT",s[s.RIGHT=1]="RIGHT",s))(w||{});const W={id:"doc.command.delete-text",type:o.CommandType.COMMAND,handler:async(s,r)=>{const e=s.get(o.ICommandService),{range:t,segmentId:n,unitId:i,direction:a,textRanges:c,len:l=1}=r,{startOffset:u}=t,d={id:U.id,params:{unitId:i,actions:[],textRanges:c}},m=new o.TextX;return u>0&&m.push({t:o.TextXActionType.RETAIN,len:a===0?u-l:u,segmentId:n}),m.push({t:o.TextXActionType.DELETE,len:l,line:0,segmentId:n}),d.params.actions=m.serialize(),!!e.syncExecuteCommand(d.id,d.params)}},Oe={id:"doc.command.update-text",type:o.CommandType.COMMAND,handler:async(s,r)=>{const{range:e,segmentId:t,updateBody:n,coverType:i,unitId:a,textRanges:c}=r,l=s.get(o.ICommandService),u={id:U.id,params:{unitId:a,actions:[],textRanges:c}},d=new o.TextX,{startOffset:m,endOffset:g}=e;return d.push({t:o.TextXActionType.RETAIN,len:m,segmentId:t}),d.push({t:o.TextXActionType.RETAIN,body:n,len:g-m,segmentId:t,coverType:i}),u.params.actions=d.serialize(),!!l.syncExecuteCommand(u.id,u.params)}};function ut(s,r){const e=[];for(let t=0,n=s.length;t<n;t++)s[t]===o.DataStreamTreeTokenType.PARAGRAPH&&e.push({startIndex:t});if(r)for(const t of e)r.bullet&&(t.bullet=o.Tools.deepClone(r.bullet)),r.paragraphStyle&&(t.paragraphStyle=o.Tools.deepClone(r.paragraphStyle));return e}const $e={id:"doc.command.break-line",type:o.CommandType.COMMAND,handler:async s=>{var p,_;const r=s.get(exports.TextSelectionManagerService),e=s.get(o.IUniverInstanceService),t=s.get(o.ICommandService),n=r.getActiveRange();if(n==null)return!1;const i=e.getCurrentUniverDocInstance(),a=i.getUnitId(),{startOffset:c,segmentId:l,style:u}=n,d=[{startOffset:c+1,endOffset:c+1,style:u}],g=((_=(p=i.getBody())==null?void 0:p.paragraphs)!=null?_:[]).find(S=>S.startIndex>=c);return await t.executeCommand(H.id,{unitId:a,body:{dataStream:o.DataStreamTreeTokenType.PARAGRAPH,paragraphs:ut(o.DataStreamTreeTokenType.PARAGRAPH,g)},range:n,textRanges:d,segmentId:l})}};var mt=Object.defineProperty,gt=Object.getOwnPropertyDescriptor,ht=(s,r,e,t)=>{for(var n=t>1?void 0:t?gt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&mt(r,e,n),n},Ne=(s,r)=>(e,t)=>r(e,t,s);exports.DocSkeletonManagerService=class extends o.RxDisposable{constructor(e,t){super();I(this,"_currentSkeletonUnitId","");I(this,"_docSkeletonMap",new Map);I(this,"_currentSkeleton$",new N.BehaviorSubject(null));I(this,"currentSkeleton$",this._currentSkeleton$.asObservable());I(this,"_currentSkeletonBefore$",new N.BehaviorSubject(null));I(this,"currentSkeletonBefore$",this._currentSkeletonBefore$.asObservable());this._localeService=e,this._docViewModelManagerService=t,this._initialize()}_initialize(){this._docViewModelManagerService.currentDocViewModel$.pipe(N.takeUntil(this.dispose$)).subscribe(e=>{e!=null&&this._setCurrent(e)})}dispose(){this._currentSkeletonBefore$.complete(),this._currentSkeleton$.complete(),this._docSkeletonMap.clear()}getCurrent(){return this.getSkeletonByUnitId(this._currentSkeletonUnitId)}makeDirtyCurrent(e=!0){this.makeDirty(this._currentSkeletonUnitId,e)}makeDirty(e,t=!0){const n=this.getSkeletonByUnitId(e);n!=null&&(n.dirty=t)}getSkeletonByUnitId(e){return this._docSkeletonMap.get(e)}_setCurrent(e){const{unitId:t}=e;if(this._docSkeletonMap.has(t)){const n=this.getSkeletonByUnitId(t);n.skeleton.calculate(),n.dirty=!0}else{const n=this._buildSkeleton(e.docViewModel);n.calculate(),this._docSkeletonMap.set(t,{unitId:t,skeleton:n,dirty:!1})}return this._currentSkeletonUnitId=t,this._currentSkeletonBefore$.next(this.getCurrent()),this._currentSkeleton$.next(this.getCurrent()),this.getCurrent()}_buildSkeleton(e){return C.DocumentSkeleton.create(e,this._localeService)}};exports.DocSkeletonManagerService=ht([Ne(0,b.Inject(o.LocaleService)),Ne(1,b.Inject(exports.DocViewModelManagerService))],exports.DocSkeletonManagerService);const St={id:"doc.command.inner-paste",type:o.CommandType.COMMAND,handler:async(s,r)=>{const{segmentId:e,body:t,textRanges:n}=r,i=s.get(o.ICommandService),a=s.get(exports.TextSelectionManagerService),c=s.get(o.IUniverInstanceService),l=a.getSelections();if(!Array.isArray(l)||l.length===0)return!1;const d=c.getCurrentUniverDocInstance().getUnitId(),m={id:U.id,params:{unitId:d,actions:[],textRanges:n}},g=new o.MemoryCursor;g.reset();const h=new o.TextX;for(const _ of l){const{startOffset:S,endOffset:f,collapsed:v}=_,T=S-g.cursor;v?h.push({t:o.TextXActionType.RETAIN,len:T,segmentId:e}):h.push(...Te(_,e,g.cursor)),h.push({t:o.TextXActionType.INSERT,body:t,len:t.dataStream.length,line:0,segmentId:e}),g.reset(),g.moveCursor(f)}return m.params.actions=h.serialize(),!!i.syncExecuteCommand(m.id,m.params)}},Re={id:"doc.command.inner-cut",type:o.CommandType.COMMAND,handler:async(s,r)=>{const{segmentId:e,textRanges:t}=r,n=s.get(o.ICommandService),i=s.get(exports.TextSelectionManagerService),a=s.get(o.IUniverInstanceService),c=i.getSelections();if(!Array.isArray(c)||c.length===0)return!1;const l=a.getCurrentUniverDocInstance().getUnitId(),u=a.getUniverDocInstance(l),d=o.getDocsUpdateBody(u.snapshot,e);if(d==null)return!1;const m={id:U.id,params:{unitId:l,actions:[],textRanges:t}},g=new o.MemoryCursor;g.reset();const h=new o.TextX;for(const _ of c){const{startOffset:S,endOffset:f,collapsed:v}=_,T=S-g.cursor;v?h.push({t:o.TextXActionType.RETAIN,len:T,segmentId:e}):h.push(...pt(_,d,e,g.cursor)),g.reset(),g.moveCursor(f)}return m.params.actions=h.serialize(),!!n.syncExecuteCommand(m.id,m.params)}};function pt(s,r,e="",t=0){const{startOffset:n,endOffset:i}=s,a=[],{paragraphs:c=[]}=r,l=n-t,u=i-t,d=c==null?void 0:c.find(m=>m.startIndex-t>=l&&m.startIndex-t<=u);if(l>0&&a.push({t:o.TextXActionType.RETAIN,len:l,segmentId:e}),d&&d.startIndex-t>l){const m=d.startIndex-t;a.push({t:o.TextXActionType.DELETE,len:m-l,line:0,segmentId:e}),a.push({t:o.TextXActionType.RETAIN,len:1,segmentId:e}),u>m+1&&a.push({t:o.TextXActionType.DELETE,len:u-m-1,line:0,segmentId:e})}else a.push({t:o.TextXActionType.DELETE,len:u-l,line:0,segmentId:e});return a}const je={id:"doc.command.delete-left",type:o.CommandType.COMMAND,handler:async s=>{var O;const r=s.get(exports.TextSelectionManagerService),e=s.get(exports.DocSkeletonManagerService),t=s.get(o.IUniverInstanceService),n=s.get(o.ICommandService),i=r.getActiveRange(),a=r.getSelections(),c=(O=e.getCurrent())==null?void 0:O.skeleton;let l=!0;if(i==null||c==null||a==null)return!1;const u=t.getCurrentUniverDocInstance(),{startOffset:d,collapsed:m,segmentId:g,style:h}=i,p=c.findNodeByCharIndex(d),_=C.hasListSpan(p),S=C.isIndentBySpan(p,u.getBody());let f=d;const v=c.findNodeByCharIndex(d-1);if(C.isFirstSpan(p)&&v!==p&&(_===!0||S===!0)){const R=C.getParagraphBySpan(p,u.getBody());if(R==null)return!1;const E=R==null?void 0:R.startIndex,D={startIndex:0},x=R.paragraphStyle;if(_===!0){const M=R.paragraphStyle;M&&(D.paragraphStyle=M)}else if(S===!0){const M=R.bullet;M&&(D.bullet=M),x!=null&&(D.paragraphStyle={...x},delete D.paragraphStyle.hanging,delete D.paragraphStyle.indentStart)}const y=[{startOffset:f,endOffset:f,style:h}];l=await n.executeCommand(Oe.id,{unitId:u.getUnitId(),updateBody:{dataStream:"",paragraphs:[{...D}]},range:{startOffset:E,endOffset:E+1},textRanges:y,coverType:o.UpdateDocsAttributeType.REPLACE,segmentId:g})}else if(m===!0){if(v==null)return!0;if(v.content==="\r")l=await n.executeCommand(xe.id,{direction:w.LEFT,range:i});else{f-=v.count;const R=[{startOffset:f,endOffset:f,style:h}];l=await n.executeCommand(W.id,{unitId:u.getUnitId(),range:i,segmentId:g,direction:w.LEFT,len:v.count,textRanges:R})}}else{const R=Ve(i,a);l=await n.executeCommand(Re.id,{segmentId:g,textRanges:R})}return l}},Fe={id:"doc.command.delete-right",type:o.CommandType.COMMAND,handler:async s=>{var p;const r=s.get(exports.TextSelectionManagerService),e=s.get(exports.DocSkeletonManagerService),t=s.get(o.IUniverInstanceService),n=s.get(o.ICommandService),i=r.getActiveRange(),a=r.getSelections(),c=(p=e.getCurrent())==null?void 0:p.skeleton;let l;if(i==null||c==null||a==null)return!1;const u=t.getCurrentUniverDocInstance(),{startOffset:d,collapsed:m,segmentId:g,style:h}=i;if(d===u.getBody().dataStream.length-2&&m)return!0;if(m===!0){const _=c.findNodeByCharIndex(d);if(_.content==="\r")l=await n.executeCommand(xe.id,{direction:w.RIGHT,range:i});else{const S=[{startOffset:d,endOffset:d,style:h}];l=await n.executeCommand(W.id,{unitId:u.getUnitId(),range:i,segmentId:g,direction:w.RIGHT,textRanges:S,len:_.count})}}else{const _=Ve(i,a);l=await n.executeCommand(Re.id,{segmentId:g,textRanges:_})}return l}},xe={id:"doc.command.merge-two-paragraph",type:o.CommandType.COMMAND,handler:async(s,r)=>{var D,x,y;const e=s.get(exports.TextSelectionManagerService),t=s.get(o.IUniverInstanceService),n=s.get(o.ICommandService);s.get(o.IUndoRedoService);const{direction:i,range:a}=r,c=e.getActiveRange(),l=e.getSelections();if(c==null||l==null)return!1;const u=t.getCurrentUniverDocInstance(),{startOffset:d,collapsed:m,segmentId:g,style:h}=c;if(!m)return!1;const p=i===w.LEFT?d:d+1,_=(y=(x=(D=u.getBody())==null?void 0:D.paragraphs)==null?void 0:x.find(M=>M.startIndex>=p))==null?void 0:y.startIndex,S=_t(u.getBody(),p,_),f=i===w.LEFT?d-1:d,v=u.getUnitId(),T=[{startOffset:f,endOffset:f,style:h}],O={id:U.id,params:{unitId:v,actions:[],textRanges:T,prevTextRanges:[a]}},R=new o.TextX;return R.push({t:o.TextXActionType.RETAIN,len:i===w.LEFT?d-1:d,segmentId:g}),S.dataStream.length&&R.push({t:o.TextXActionType.INSERT,body:S,len:S.dataStream.length,line:0,segmentId:g}),R.push({t:o.TextXActionType.RETAIN,len:1,segmentId:g}),R.push({t:o.TextXActionType.DELETE,len:_+1-p,line:0,segmentId:g}),O.params.actions=R.serialize(),!!n.syncExecuteCommand(O.id,O.params)}};function _t(s,r,e){const{textRuns:t}=s,n=s.dataStream.substring(r,e);if(t==null)return{dataStream:n};const i=[];for(const a of t){const{st:c,ed:l}=a;l<=r||c>=e||(c<r?i.push({...a,st:0,ed:l-r}):l>e?i.push({...a,st:c-r,ed:e-r}):i.push({...a,st:c-r,ed:l-r}))}return{dataStream:n,textRuns:i}}function Ve(s,r){let e=s.endOffset;for(const n of r){const{startOffset:i,endOffset:a}=n;i==null||a==null||a<=s.endOffset&&(e-=a-i)}return[{startOffset:e,endOffset:e,style:s.style}]}const ye={id:"doc.command.ime-input",type:o.CommandType.COMMAND,handler:async(s,r)=>{const{unitId:e,newText:t,oldTextLen:n,isCompositionEnd:i,isCompositionStart:a}=r,c=s.get(o.ICommandService),l=s.get(Y),u=l.getActiveRange();if(u==null)return!1;const{startOffset:d,style:m,segmentId:g}=u,h=t.length,p=[{startOffset:d+h,endOffset:d+h,collapsed:!0,style:m}],_={id:U.id,params:{unitId:e,actions:[],textRanges:p}},S=new o.TextX;!u.collapsed&&a?S.push(...Te(u,g)):S.push({t:o.TextXActionType.RETAIN,len:d,segmentId:g}),n>0&&S.push({t:o.TextXActionType.DELETE,len:n,line:0,segmentId:g}),S.push({t:o.TextXActionType.INSERT,body:{dataStream:t},len:t.length,line:0,segmentId:g}),_.params.actions=S.serialize(),_.params.noHistory=!i,_.params.isCompositionEnd=i;const f=c.syncExecuteCommand(_.id,_.params);return l.pushUndoRedoMutationParams(f,_.params),!!f}},G={id:"doc.command.set-inline-format-bold",type:o.CommandType.COMMAND,handler:async()=>!0},K={id:"doc.command.set-inline-format-italic",type:o.CommandType.COMMAND,handler:async()=>!0},q={id:"doc.command.set-inline-format-underline",type:o.CommandType.COMMAND,handler:async()=>!0},Z={id:"doc.command.set-inline-format-strikethrough",type:o.CommandType.COMMAND,handler:async()=>!0},B={id:"doc.command.set-inline-format-subscript",type:o.CommandType.COMMAND,handler:async()=>!0},J={id:"doc.command.set-inline-format-superscript",type:o.CommandType.COMMAND,handler:async()=>!0},Q={id:"doc.command.set-inline-format-fontsize",type:o.CommandType.COMMAND,handler:async()=>!0},ee={id:"doc.command.set-inline-format-font-family",type:o.CommandType.COMMAND,handler:async()=>!0},te={id:"doc.command.set-inline-format-text-color",type:o.CommandType.COMMAND,handler:async()=>!0},ke={[G.id]:"bl",[K.id]:"it",[q.id]:"ul",[Z.id]:"st",[Q.id]:"fs",[ee.id]:"ff",[te.id]:"cl",[B.id]:"va",[J.id]:"va"},De={id:"doc.command.set-inline-format",type:o.CommandType.COMMAND,handler:async(s,r)=>{const{segmentId:e,value:t,preCommandId:n}=r,i=s.get(o.ICommandService),a=s.get(exports.TextSelectionManagerService),c=s.get(o.IUniverInstanceService),l=a.getSelections();if(!Array.isArray(l)||l.length===0)return!1;let u=c.getCurrentUniverDocInstance(),d=u.getUnitId();d===o.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&(u=c.getUniverDocInstance(o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),d=u.getUnitId());let m;switch(n){case G.id:case K.id:case q.id:case Z.id:case B.id:case J.id:{m=vt(u.getBody().textRuns,n,l);break}case Q.id:case ee.id:{m=t;break}case te.id:{m={rgb:t};break}default:throw new Error(`Unknown command: ${n} in handleInlineFormat`)}const g={id:U.id,params:{unitId:d,actions:[],textRanges:l}},h=new o.TextX,p=new o.MemoryCursor;p.reset();for(const S of l){const{startOffset:f,endOffset:v}=S,T={dataStream:"",textRuns:[{st:0,ed:v-f,ts:{[ke[n]]:m}}]},O=f-p.cursor;O!==0&&h.push({t:o.TextXActionType.RETAIN,len:O,segmentId:e}),h.push({t:o.TextXActionType.RETAIN,body:T,len:v-f,segmentId:e}),p.reset(),p.moveCursor(v)}return g.params.actions=h.serialize(),!!i.syncExecuteCommand(g.id,g.params)}};function ft(s){return s!==null&&typeof s=="object"}function vt(s,r,e){let t=0,n=0;const i=ke[r];for(;t!==s.length&&n!==e.length;){const{startOffset:a,endOffset:c}=e[n],{st:l,ed:u,ts:d}=s[t];if(c<=l)n++;else if(u<=a)t++;else{if(/bl|it/.test(i))return(d==null?void 0:d[i])===o.BooleanNumber.TRUE?o.BooleanNumber.FALSE:o.BooleanNumber.TRUE;if(/ul|st/.test(i))return ft(d==null?void 0:d[i])&&(d==null?void 0:d[i]).s===o.BooleanNumber.TRUE?{s:o.BooleanNumber.FALSE}:{s:o.BooleanNumber.TRUE};if(/va/.test(i))return r===B.id?(d==null?void 0:d[i])===o.BaselineOffset.SUBSCRIPT?o.BaselineOffset.NORMAL:o.BaselineOffset.SUBSCRIPT:(d==null?void 0:d[i])===o.BaselineOffset.SUPERSCRIPT?o.BaselineOffset.NORMAL:o.BaselineOffset.SUPERSCRIPT;t++}}return/bl|it/.test(i)?o.BooleanNumber.TRUE:/ul|st/.test(i)?{s:o.BooleanNumber.TRUE}:r===B.id?o.BaselineOffset.SUBSCRIPT:o.BaselineOffset.SUPERSCRIPT}const be={id:"doc.command.list-operation",type:o.CommandType.COMMAND,handler:(s,r)=>{var R,E,D;const e=s.get(exports.TextSelectionManagerService),t=s.get(o.IUniverInstanceService),n=s.get(o.ICommandService),{listType:i}=r,a=t.getCurrentUniverDocInstance(),c=e.getActiveRange(),l=(R=e.getSelections())!=null?R:[],u=(E=a.getBody())==null?void 0:E.paragraphs,d=l.map(z);if(c==null||u==null)return!1;const m=It(c,u),{segmentId:g}=c,h=a.getUnitId(),p=m.every(x=>{var y;return((y=x.bullet)==null?void 0:y.listType)===i});let S=o.Tools.generateRandomId(6);if(m.length===1){const x=u.indexOf(m[0]),y=u[x-1],M=u[x+1];y&&y.bullet&&y.bullet.listType===i?S=y.bullet.listId:M&&M.bullet&&M.bullet.listType===i&&(S=M.bullet.listId)}const f={id:U.id,params:{unitId:h,actions:[],textRanges:d}},v=new o.MemoryCursor;v.reset();const T=new o.TextX;for(const x of m){const{startIndex:y}=x;T.push({t:o.TextXActionType.RETAIN,len:y-v.cursor,segmentId:g});const M={...x.paragraphStyle,hanging:void 0,indentStart:void 0};T.push({t:o.TextXActionType.RETAIN,len:1,body:{dataStream:"",paragraphs:[p?{paragraphStyle:M,startIndex:0}:{...x,startIndex:0,bullet:{...(D=x.bullet)!=null?D:{nestingLevel:0,textStyle:{fs:20}},listType:i,listId:S}}]},segmentId:g,coverType:o.UpdateDocsAttributeType.REPLACE}),v.moveCursorTo(y+1)}return f.params.actions=T.serialize(),!!n.syncExecuteCommand(f.id,f.params)}},Xe={id:"doc.command.bullet-list",type:o.CommandType.COMMAND,handler:s=>s.get(o.ICommandService).syncExecuteCommand(be.id,{listType:o.PresetListType.BULLET_LIST})},ze={id:"doc.command.order-list",type:o.CommandType.COMMAND,handler:s=>s.get(o.ICommandService).syncExecuteCommand(be.id,{listType:o.PresetListType.ORDER_LIST})};function It(s,r){const{startOffset:e,endOffset:t}=s,n=[];let i=-1;for(const a of r){const{startIndex:c}=a;(e>i&&e<=c||t>i&&t<=c||c>=e&&c<=t)&&n.push(a),i=c}return n}const Ye={id:"doc.command-replace-content",type:o.CommandType.COMMAND,handler:async(s,r)=>{var h;const{unitId:e,body:t,textRanges:n,segmentId:i=""}=r,a=s.get(o.IUniverInstanceService),c=s.get(o.ICommandService),l=s.get(exports.TextSelectionManagerService),u=(h=a.getUniverDocInstance(e))==null?void 0:h.getSnapshot().body,d=l.getSelections();if(u==null||!Array.isArray(d)||d.length===0)return!1;const m=We(e,i,u,t);return m.params.textRanges=n,!!c.syncExecuteCommand(m.id,m.params)}},He={id:"doc.command-cover-content",type:o.CommandType.COMMAND,handler:async(s,r)=>{var d;const{unitId:e,body:t,segmentId:n=""}=r,i=s.get(o.IUniverInstanceService),a=s.get(o.ICommandService),c=s.get(o.IUndoRedoService),l=(d=i.getUniverDocInstance(e))==null?void 0:d.getSnapshot().body;if(l==null)return!1;const u=We(e,n,l,t);return u.params.noNeedSetTextRange=!0,u.params.noHistory=!0,a.syncExecuteCommand(u.id,u.params),c.clearUndoRedo(e),!0}};function We(s,r,e,t){const n={id:U.id,params:{unitId:s,actions:[],textRanges:[]}},i=new o.TextX,a=(e==null?void 0:e.dataStream.length)-2;return a>0&&i.push({t:o.TextXActionType.DELETE,len:a,line:0,segmentId:r}),t.dataStream.length>0&&i.push({t:o.TextXActionType.INSERT,body:t,len:t.dataStream.length,line:0,segmentId:r}),n.params.actions=i.serialize(),n}const he={id:"doc.operation.move-cursor",type:o.CommandType.OPERATION,handler:(s,r)=>!!r},Se={id:"doc.operation.move-selection",type:o.CommandType.OPERATION,handler:(s,r)=>!!r},Mt=(s,r)=>{const e=s.get(o.IUniverInstanceService).getUniverDocInstance(r.unitId),t=(e==null?void 0:e.zoomRatio)||1;return{...o.Tools.deepClone(r),zoomRatio:t}},L={id:"doc.operation.set-zoom-ratio",type:o.CommandType.OPERATION,handler:(s,r)=>{const e=s.get(o.IUniverInstanceService).getUniverDocInstance(r.unitId);if(!e)return!1;const t=e.getSnapshot();return t.settings==null?t.settings={zoomRatio:r.zoomRatio}:t.settings.zoomRatio=r.zoomRatio,!0}},Ge={type:o.CommandType.COMMAND,id:"doc.command.set-zoom-ratio",handler:async(s,r)=>{var m,g;const e=s.get(o.ICommandService),t=s.get(o.IUndoRedoService),n=s.get(o.IUniverInstanceService);let i=n.getCurrentUniverDocInstance().getUnitId(),a=1;if(r&&(i=(m=r.documentId)!=null?m:i,a=(g=r.zoomRatio)!=null?g:a),!n.getUniverDocInstance(i))return!1;const l={zoomRatio:a,unitId:i},u=Mt(s,l);return e.syncExecuteCommand(L.id,l)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:L.id,params:u}],redoMutations:[{id:L.id,params:l}]}),!0):!1}},Ke={id:"doc.operation.select-all",type:o.CommandType.COMMAND,handler:async s=>{const r=s.get(o.IUniverInstanceService),e=s.get(exports.TextSelectionManagerService),t=r.getCurrentUniverDocInstance().getSnapshot().body;if(t==null)return!1;const n=[{startOffset:0,endOffset:t.dataStream.length-2}];return e.replaceTextRanges(n),!0}};var Ct=Object.defineProperty,Tt=Object.getOwnPropertyDescriptor,Ot=(s,r,e,t)=>{for(var n=t>1?void 0:t?Tt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Ct(r,e,n),n},ve=(s,r)=>(e,t)=>r(e,t,s);let ie=class extends o.RxDisposable{constructor(s,r,e){super(),this._docSkeletonManagerService=s,this._renderManagerService=r,this._commandService=e,this._initialRenderRefresh(),this._commandExecutedListener()}_initialRenderRefresh(){this._docSkeletonManagerService.currentSkeletonBefore$.pipe(N.takeUntil(this.dispose$)).subscribe(s=>{if(s==null)return;const{skeleton:r,unitId:e}=s,t=this._renderManagerService.getRenderById(e);if(t==null)return;const{mainComponent:n}=t;n.changeSkeleton(r),this._recalculateSizeBySkeleton(t,r)})}_recalculateSizeBySkeleton(s,r){var u;const{mainComponent:e,scene:t}=s,n=e,i=(u=r.getSkeletonData())==null?void 0:u.pages;if(i==null)return;let a=0,c=0;for(let d=0,m=i.length;d<m;d++){const g=i[d],{pageWidth:h,pageHeight:p}=g;n.pageLayoutType===C.PageLayoutType.VERTICAL?(c+=p,c+=n.pageMarginTop,d===m-1&&(c+=n.pageMarginTop),a=Math.max(a,h)):n.pageLayoutType===C.PageLayoutType.HORIZONTAL&&(a+=h,d!==m-1&&(a+=n.pageMarginLeft),c=Math.max(c,p))}n.resize(a,c),[o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,o.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY].includes(s.unitId)||t.resize(a,c)}_commandExecutedListener(){const s=[U.id],r=[o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,o.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var t;if(s.includes(e.id)){const n=e.params,{unitId:i}=n,a=this._docSkeletonManagerService.getSkeletonByUnitId(i);if(a==null)return;const{skeleton:c}=a,l=this._renderManagerService.getRenderById(i);if(l==null)return;if(c.calculate(),r.includes(i)){(t=l.mainComponent)==null||t.makeDirty();return}this._recalculateSizeBySkeleton(l,c)}}))}};ie=Ot([o.OnLifecycle(o.LifecycleStages.Rendered,ie),ve(0,b.Inject(exports.DocSkeletonManagerService)),ve(1,C.IRenderManagerService),ve(2,o.ICommandService)],ie);var Rt=Object.defineProperty,xt=Object.getOwnPropertyDescriptor,yt=(s,r,e,t)=>{for(var n=t>1?void 0:t?xt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Rt(r,e,n),n},j=(s,r)=>(e,t)=>r(e,t,s);let oe=class extends o.Disposable{constructor(r,e,t,n,i){super();I(this,"_liquid",new C.Liquid);I(this,"_pageMarginCache",new Map);this._docSkeletonManagerService=r,this._currentUniverService=e,this._renderManagerService=t,this._commandService=n,this._floatingObjectManagerService=i,this._initialize(),this._commandExecutedListener()}_initialize(){this._initialRenderRefresh(),this._updateOnPluginChange()}_updateOnPluginChange(){this._floatingObjectManagerService.pluginUpdate$.subscribe(r=>{const e=this._docSkeletonManagerService.getCurrent();if(e==null)return;const{unitId:t,skeleton:n}=e,i=this._renderManagerService.getRenderById(t);if(i==null)return;const{mainComponent:a,components:c,scene:l}=i,u=a,{left:d,top:m}=u;r.forEach(g=>{const{unitId:h,subUnitId:p,floatingObjectId:_,floatingObject:S}=g,{left:f=0,top:v=0,width:T=0,height:O=0,angle:R,flipX:E,flipY:D,skewX:x,skewY:y}=S,M=this._pageMarginCache.get(_),A=(M==null?void 0:M.marginLeft)||0,P=(M==null?void 0:M.marginTop)||0;n==null||n.getViewModel().getDataModel().updateDrawing(_,{left:f-d-A,top:v-m-P,height:O,width:T})}),n==null||n.calculate(),a==null||a.makeDirty()})}_initialRenderRefresh(){this._docSkeletonManagerService.currentSkeleton$.subscribe(r=>{if(r==null)return;const{skeleton:e,unitId:t}=r,n=this._renderManagerService.getRenderById(t);if(n==null)return;const{mainComponent:i}=n;i.changeSkeleton(e),this._refreshFloatingObject(t,e,n)})}_commandExecutedListener(){const r=[U.id,L.id],e=[o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,o.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{var n;if(r.includes(t.id)){const i=t.params,{unitId:a}=i,c=this._docSkeletonManagerService.getCurrent();if(c==null)return;const{unitId:l,skeleton:u}=c;if(a!==l)return;const d=this._renderManagerService.getRenderById(l);if(d==null)return;if(e.includes(l)){(n=d.mainComponent)==null||n.makeDirty();return}this._refreshFloatingObject(l,u,d)}}))}_refreshFloatingObject(r,e,t){const n=e==null?void 0:e.getSkeletonData(),{mainComponent:i,scene:a}=t,c=i;if(!n)return;const{left:l,top:u,pageLayoutType:d,pageMarginLeft:m,pageMarginTop:g}=c,{pages:h}=n,p=[];a.getAncestorScale(),this._liquid.reset(),this._pageMarginCache.clear();for(let _=0,S=h.length;_<S;_++){const f=h[_],{skeDrawings:v,marginLeft:T,marginTop:O}=f;this._liquid.translatePagePadding(f),v.forEach(R=>{const{aLeft:E,aTop:D,height:x,width:y,objectId:M}=R;p.push({unitId:r,subUnitId:o.DEFAULT_DOCUMENT_SUB_COMPONENT_ID,floatingObjectId:M,floatingObject:{left:E+l+this._liquid.x,top:D+u+this._liquid.y,width:y,height:x}}),this._pageMarginCache.set(M,{marginLeft:this._liquid.x,marginTop:this._liquid.y})}),this._liquid.translatePage(f,d,m,g)}this._floatingObjectManagerService.BatchAddOrUpdate(p)}};oe=yt([o.OnLifecycle(o.LifecycleStages.Steady,oe),j(0,b.Inject(exports.DocSkeletonManagerService)),j(1,o.IUniverInstanceService),j(2,C.IRenderManagerService),j(3,o.ICommandService),j(4,o.IFloatingObjectManagerService)],oe);var Dt=Object.defineProperty,bt=Object.getOwnPropertyDescriptor,Et=(s,r,e,t)=>{for(var n=t>1?void 0:t?bt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Dt(r,e,n),n},F=(s,r)=>(e,t)=>r(e,t,s);let se=class extends o.Disposable{constructor(r,e,t,n,i){super();I(this,"_previousIMEContent","");I(this,"_isCompositionStart",!0);I(this,"_onStartSubscription");I(this,"_onUpdateSubscription");I(this,"_onEndSubscription");this._docSkeletonManagerService=r,this._currentUniverService=e,this._textSelectionRenderManager=t,this._imeInputManagerService=n,this._commandService=i,this._initialize()}dispose(){var r,e,t;(r=this._onStartSubscription)==null||r.unsubscribe(),(e=this._onUpdateSubscription)==null||e.unsubscribe(),(t=this._onEndSubscription)==null||t.unsubscribe()}_initialize(){this._initialOnCompositionstart(),this._initialOnCompositionUpdate(),this._initialOnCompositionend()}_initialOnCompositionstart(){this._onStartSubscription=this._textSelectionRenderManager.onCompositionstart$.subscribe(r=>{if(r==null)return;const{activeRange:e}=r;e!=null&&(this._imeInputManagerService.clearUndoRedoMutationParamsCache(),this._imeInputManagerService.setActiveRange(o.Tools.deepClone(e)),this._isCompositionStart=!0)})}_initialOnCompositionUpdate(){this._onUpdateSubscription=this._textSelectionRenderManager.onCompositionupdate$.subscribe(async r=>{this._updateContent(r,!0)})}_initialOnCompositionend(){this._onEndSubscription=this._textSelectionRenderManager.onCompositionend$.subscribe(r=>{this._updateContent(r,!1)})}async _updateContent(r,e){var u;const t=(u=this._docSkeletonManagerService.getCurrent())==null?void 0:u.skeleton;if(r==null||t==null)return;const n=this._currentUniverService.getCurrentUniverDocInstance(),{event:i,activeRange:a}=r;if(t==null||a==null)return;const l=i.data;l===this._previousIMEContent&&e||(await this._commandService.executeCommand(ye.id,{unitId:n.getUnitId(),newText:l,oldTextLen:this._previousIMEContent.length,isCompositionStart:this._isCompositionStart,isCompositionEnd:!e}),e?(this._isCompositionStart&&(this._isCompositionStart=!1),this._previousIMEContent=l):this._resetIME())}_resetIME(){this._previousIMEContent="",this._isCompositionStart=!0,this._imeInputManagerService.clearUndoRedoMutationParamsCache(),this._imeInputManagerService.setActiveRange(null)}};se=Et([o.OnLifecycle(o.LifecycleStages.Rendered,se),F(0,b.Inject(exports.DocSkeletonManagerService)),F(1,o.IUniverInstanceService),F(2,C.ITextSelectionRenderManager),F(3,b.Inject(Y)),F(4,o.ICommandService)],se);var Ut=Object.defineProperty,Pt=Object.getOwnPropertyDescriptor,Nt=(s,r,e,t)=>{for(var n=t>1?void 0:t?Pt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Ut(r,e,n),n},Ae=(s,r)=>(e,t)=>r(e,t,s);let ae=class extends o.Disposable{constructor(s,r){super(),this._textSelectionManagerService=s,this._commandService=r,this._commandExecutedListener()}_commandExecutedListener(){const s=[G.id,K.id,q.id,Z.id,B.id,J.id,Q.id,ee.id,te.id];this.disposeWithMe(this._commandService.onCommandExecuted(r=>{s.includes(r.id)&&this._handleInlineFormat(r)}))}_handleInlineFormat(s){var e,t;const{segmentId:r}=(e=this._textSelectionManagerService.getActiveRange())!=null?e:{};r!=null&&this._commandService.executeCommand(De.id,{segmentId:r,preCommandId:s.id,...(t=s.params)!=null?t:{}})}};ae=Nt([o.OnLifecycle(o.LifecycleStages.Rendered,ae),Ae(0,b.Inject(exports.TextSelectionManagerService)),Ae(1,o.ICommandService)],ae);var At=Object.defineProperty,wt=Object.getOwnPropertyDescriptor,Lt=(s,r,e,t)=>{for(var n=t>1?void 0:t?wt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&At(r,e,n),n},V=(s,r)=>(e,t)=>r(e,t,s);let ce=class extends o.Disposable{constructor(r,e,t,n,i){super();I(this,"_onInputSubscription");this._docSkeletonManagerService=r,this._currentUniverService=e,this._renderManagerService=t,this._textSelectionManagerService=n,this._commandService=i,this._initialize(),this._commandExecutedListener()}dispose(){var r;(r=this._onInputSubscription)==null||r.unsubscribe()}_initialize(){}_commandExecutedListener(){const r=[he.id,Se.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(!r.includes(e.id))return;const t=e.params;switch(e.id){case he.id:return this._handleMoveCursor(t.direction);case Se.id:return this._handleShiftMoveSelection(t.direction);default:throw new Error("Unknown command")}}))}_handleShiftMoveSelection(r){var _,S,f;const e=this._textSelectionManagerService.getActiveRange(),t=this._textSelectionManagerService.getSelections(),n=this._currentUniverService.getCurrentUniverDocInstance(),i=(_=this._docSkeletonManagerService.getCurrent())==null?void 0:_.skeleton,a=this._getDocObject();if(e==null||i==null||a==null)return;const{startOffset:c,endOffset:l,style:u,collapsed:d,direction:m}=e;if(t.length>1){let v=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY;for(const O of t)v=Math.min(v,O.startOffset),T=Math.max(T,O.endOffset);this._textSelectionManagerService.replaceTextRanges([{startOffset:r===o.Direction.LEFT||r===o.Direction.UP?T:v,endOffset:r===o.Direction.LEFT||r===o.Direction.UP?v:T,style:u}]);return}const g=d||m===C.RANGE_DIRECTION.FORWARD?c:l;let h=d||m===C.RANGE_DIRECTION.FORWARD?l:c;const p=(S=n.getBody().dataStream.length)!=null?S:Number.POSITIVE_INFINITY;if(r===o.Direction.LEFT||r===o.Direction.RIGHT){const v=i.findNodeByCharIndex(h-1),T=i.findNodeByCharIndex(h);h=r===o.Direction.RIGHT?h+T.count:h-((f=v==null?void 0:v.count)!=null?f:0),h=Math.min(p-2,Math.max(0,h)),this._textSelectionManagerService.replaceTextRanges([{startOffset:g,endOffset:h,style:u}])}else{const v=i.findNodeByCharIndex(h),T=a.document.getOffsetConfig(),O=this._getTopOrBottomPosition(i,v,r===o.Direction.DOWN);if(O==null){const E=r===o.Direction.UP?0:p-2;if(E===h)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:g,endOffset:E,style:u}]);return}const R=new C.NodePositionConvertToCursor(T,i).getRangePointData(O,O).cursorList[0];this._textSelectionManagerService.replaceTextRanges([{startOffset:g,endOffset:R.endOffset,style:u}])}}_handleMoveCursor(r){var g,h,p;const e=this._textSelectionManagerService.getActiveRange(),t=this._textSelectionManagerService.getSelections(),n=this._currentUniverService.getCurrentUniverDocInstance(),i=(g=this._docSkeletonManagerService.getCurrent())==null?void 0:g.skeleton,a=this._getDocObject();if(e==null||i==null||a==null||t==null)return;const{startOffset:c,endOffset:l,style:u,collapsed:d}=e,m=(h=n.getBody().dataStream.length)!=null?h:Number.POSITIVE_INFINITY;if(r===o.Direction.LEFT||r===o.Direction.RIGHT){let _;if(!e.collapsed||t.length>1){let S=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY;for(const v of t)S=Math.min(S,v.startOffset),f=Math.max(f,v.endOffset);_=r===o.Direction.LEFT?S:f}else{const S=i.findNodeByCharIndex(c-1),f=i.findNodeByCharIndex(c);r===o.Direction.LEFT?_=Math.max(0,c-((p=S==null?void 0:S.count)!=null?p:0)):_=Math.min(m-2,l+f.count)}this._textSelectionManagerService.replaceTextRanges([{startOffset:_,endOffset:_,style:u}])}else{const _=i.findNodeByCharIndex(c),S=i.findNodeByCharIndex(l),f=a.document.getOffsetConfig(),v=this._getTopOrBottomPosition(i,r===o.Direction.UP?_:S,r===o.Direction.DOWN);if(v==null){let O;d?O=r===o.Direction.UP?0:m-2:O=r===o.Direction.UP?c:l,this._textSelectionManagerService.replaceTextRanges([{startOffset:O,endOffset:O,style:u}]);return}const T=new C.NodePositionConvertToCursor(f,i).getRangePointData(v,v).cursorList[0];this._textSelectionManagerService.replaceTextRanges([{...T,style:u}])}}_getTopOrBottomPosition(r,e,t){if(e==null)return;const n=this._getSpanLeftOffsetInLine(e),i=this._getNextOrPrevLine(e,t);if(i==null)return;const a=this._matchPositionByLeftOffset(r,i,n);if(a!=null)return{...a,isBack:!0}}_getSpanLeftOffsetInLine(r){const e=r.parent;if(e==null)return Number.NEGATIVE_INFINITY;const t=e.left,{left:n}=r;return t+n}_matchPositionByLeftOffset(r,e,t){const n={distance:Number.POSITIVE_INFINITY};for(const i of e.divides){const a=i.left;for(const c of i.spanGroup){const{left:l}=c,u=a+l,d=Math.abs(t-u);d<n.distance&&(n.span=c,n.distance=d)}}if(n.span!=null)return r.findPositionBySpan(n.span)}_getNextOrPrevLine(r,e){var p,_,S,f,v,T,O,R,E,D,x,y;const t=r.parent;if(t==null)return;const n=t.parent;if(n==null)return;const i=n.parent;if(i==null)return;const a=i.lines.indexOf(n);if(a===-1)return;let c;if(e===!0?c=i.lines[a+1]:c=i.lines[a-1],c!=null)return c;const l=i.parent;if(l==null)return;const u=l.columns.indexOf(i);if(u===-1)return;if(e===!0)c=(p=l.columns[u+1])==null?void 0:p.lines[0];else{const M=(S=(_=l.columns)==null?void 0:_[u-1])==null?void 0:S.lines;c=M==null?void 0:M[M.length-1]}if(c!=null)return c;const d=l.parent;if(d==null)return;const m=d.sections.indexOf(l);if(m===-1)return;if(e===!0)c=(v=(f=d.sections[m-1])==null?void 0:f.columns[0])==null?void 0:v.lines[0];else{const M=(O=(T=d.sections)==null?void 0:T[m-1])==null?void 0:O.columns,A=M==null?void 0:M[M.length-1],P=A==null?void 0:A.lines;c=P==null?void 0:P[P.length-1]}if(c!=null)return c;const g=d.parent;if(g==null)return;const h=g.pages.indexOf(d);if(h!==-1){if(e===!0)c=(D=(E=(R=g.pages[h+1])==null?void 0:R.sections[0])==null?void 0:E.columns[0])==null?void 0:D.lines[0];else{const M=(x=g.pages[h-1])==null?void 0:x.sections;if(M==null)return;const A=(y=M[M.length-1])==null?void 0:y.columns,P=A[A.length-1],Ee=P==null?void 0:P.lines;c=Ee[Ee.length-1]}if(c!=null)return c}}_getDocObject(){return pe(this._currentUniverService,this._renderManagerService)}};ce=Lt([o.OnLifecycle(o.LifecycleStages.Rendered,ce),V(0,b.Inject(exports.DocSkeletonManagerService)),V(1,o.IUniverInstanceService),V(2,C.IRenderManagerService),V(3,b.Inject(exports.TextSelectionManagerService)),V(4,o.ICommandService)],ce);var Bt=Object.defineProperty,$t=Object.getOwnPropertyDescriptor,jt=(s,r,e,t)=>{for(var n=t>1?void 0:t?$t(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Bt(r,e,n),n},k=(s,r)=>(e,t)=>r(e,t,s);let le=class extends o.Disposable{constructor(r,e,t,n,i){super();I(this,"_onInputSubscription");this._docSkeletonManagerService=r,this._currentUniverService=e,this._renderManagerService=t,this._textSelectionRenderManager=n,this._commandService=i,this._initialize(),this._commandExecutedListener()}dispose(){var r;(r=this._onInputSubscription)==null||r.unsubscribe()}_initialize(){this._initialNormalInput()}_initialNormalInput(){this._onInputSubscription=this._textSelectionRenderManager.onInput$.subscribe(async r=>{var p;if(r==null)return;const t=this._currentUniverService.getCurrentUniverDocInstance().getUnitId(),{event:n,content:i="",activeRange:a}=r,c=n,l=(p=this._docSkeletonManagerService.getCurrent())==null?void 0:p.skeleton;if(c.data==null||l==null||!l||!a)return;const{startOffset:u,segmentId:d,style:m}=a,g=i.length,h=[{startOffset:u+g,endOffset:u+g,style:m}];await this._commandService.executeCommand(H.id,{unitId:t,body:{dataStream:i},range:a,textRanges:h,segmentId:d})})}_commandExecutedListener(){}_getDocObject(){return pe(this._currentUniverService,this._renderManagerService)}};le=jt([o.OnLifecycle(o.LifecycleStages.Rendered,le),k(0,b.Inject(exports.DocSkeletonManagerService)),k(1,o.IUniverInstanceService),k(2,C.IRenderManagerService),k(3,C.ITextSelectionRenderManager),k(4,o.ICommandService)],le);var Ft=Object.defineProperty,Vt=Object.getOwnPropertyDescriptor,kt=(s,r,e,t)=>{for(var n=t>1?void 0:t?Vt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Ft(r,e,n),n},we=(s,r)=>(e,t)=>r(e,t,s);const Xt="rgba(198, 198, 198, 1)",zt="rgba(255, 255, 255, 1)";let de=class extends o.Disposable{constructor(s,r){super(),this._renderManagerService=s,this._currentUniverService=r,this._initialize(),this._commandExecutedListener()}_initialize(){this._initialRenderRefresh()}_initialRenderRefresh(){this._renderManagerService.currentRender$.subscribe(s=>{var i;if(s==null||this._currentUniverService.getUniverDocInstance(s)==null)return;const r=this._renderManagerService.getRenderById(s);if(r==null)return;const{mainComponent:e}=r,t=e,n=(i=t.getSkeleton())==null?void 0:i.getPageSize();t.onPageRenderObservable.add(a=>{var _,S,f,v;if([o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,o.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY].includes(s))return;const{page:c,pageLeft:l,pageTop:u,ctx:d}=a,{width:m,pageWidth:g,height:h,pageHeight:p}=c;d.save(),d.translate(l-.5,u-.5),C.Rect.drawWith(d,{width:(S=(_=n==null?void 0:n.width)!=null?_:g)!=null?S:m,height:(v=(f=n==null?void 0:n.height)!=null?f:p)!=null?v:h,strokeWidth:1,stroke:Xt,fill:zt,zIndex:3}),d.restore()})})}_commandExecutedListener(){}};de=kt([o.OnLifecycle(o.LifecycleStages.Rendered,de),we(0,C.IRenderManagerService),we(1,b.Inject(o.IUniverInstanceService))],de);var Yt=Object.defineProperty,Ht=Object.getOwnPropertyDescriptor,Wt=(s,r,e,t)=>{for(var n=t>1?void 0:t?Ht(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Yt(r,e,n),n},$=(s,r)=>(e,t)=>r(e,t,s);let ue=class extends o.Disposable{constructor(r,e,t,n,i,a){super();I(this,"_moveInObserver");I(this,"_moveOutObserver");I(this,"_downObserver");I(this,"_dblClickObserver");I(this,"_tripleClickObserver");I(this,"_loadedMap",new Set);this._docSkeletonManagerService=r,this._currentUniverService=e,this._commandService=t,this._renderManagerService=n,this._textSelectionRenderManager=i,this._textSelectionManagerService=a,this._renderManagerService.currentRender$.subscribe(c=>{c!=null&&this._currentUniverService.getUniverDocInstance(c)!=null&&(this._loadedMap.has(c)||(this._initialMain(c),this._loadedMap.add(c)))}),this._initialize()}_initialize(){this._skeletonListener(),this._commandExecutedListener()}dispose(){this._renderManagerService.getRenderAll().forEach(r=>{const{mainComponent:e}=r;e!=null&&(e.onPointerEnterObserver.remove(this._moveInObserver),e.onPointerLeaveObserver.remove(this._moveOutObserver),e.onPointerDownObserver.remove(this._downObserver),e.onDblclickObserver.remove(this._dblClickObserver),e.onTripleClickObserver.remove(this._tripleClickObserver))})}_initialMain(r){const e=this._getDocObjectById(r);if(e==null)return;const{document:t,scene:n}=e;this._moveInObserver=t.onPointerEnterObserver.add(()=>{t.cursor=C.CURSOR_TYPE.TEXT}),this._moveOutObserver=t.onPointerLeaveObserver.add(()=>{t.cursor=C.CURSOR_TYPE.DEFAULT,n.resetCursor()}),this._downObserver=t==null?void 0:t.onPointerDownObserver.add((i,a)=>{this._currentUniverService.getCurrentUniverDocInstance().getUnitId()!==r&&this._currentUniverService.setCurrentUniverDocInstance(r),this._textSelectionRenderManager.eventTrigger(i),i.button!==2&&a.stopPropagation()}),this._dblClickObserver=t==null?void 0:t.onDblclickObserver.add(i=>{this._textSelectionRenderManager.handleDblClick(i)}),this._tripleClickObserver=t==null?void 0:t.onTripleClickObserver.add(i=>{this._textSelectionRenderManager.handleTripleClick(i)})}_commandExecutedListener(){const r=[L.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var t;if(r.includes(e.id)){const n=e.params,{unitId:i}=n,a=(t=this._textSelectionManagerService.getCurrentSelection())==null?void 0:t.unitId;if(i!==a)return;this._textSelectionManagerService.refreshSelection()}}))}_skeletonListener(){this._docSkeletonManagerService.currentSkeleton$.subscribe(r=>{if(r==null)return;const{unitId:e,skeleton:t}=r,n=this._renderManagerService.getRenderById(e);if(n==null)return;const{scene:i,mainComponent:a}=n;this._textSelectionRenderManager.changeRuntime(t,i,a),this._textSelectionManagerService.setCurrentSelectionNotRefresh({unitId:e,subUnitId:""})})}_getDocObjectById(r){return Je(r,this._renderManagerService)}};ue=Wt([o.OnLifecycle(o.LifecycleStages.Rendered,ue),$(0,b.Inject(exports.DocSkeletonManagerService)),$(1,o.IUniverInstanceService),$(2,o.ICommandService),$(3,C.IRenderManagerService),$(4,C.ITextSelectionRenderManager),$(5,b.Inject(exports.TextSelectionManagerService))],ue);var Gt=Object.defineProperty,Kt=Object.getOwnPropertyDescriptor,qt=(s,r,e,t)=>{for(var n=t>1?void 0:t?Kt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Gt(r,e,n),n},X=(s,r)=>(e,t)=>r(e,t,s);let me=class extends o.Disposable{constructor(r,e,t,n,i){super();I(this,"_initializedRender",new Set);this._docSkeletonManagerService=r,this._currentUniverService=e,this._commandService=t,this._renderManagerService=n,this._textSelectionManagerService=i,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._initialRenderRefresh()}_initialRenderRefresh(){this._docSkeletonManagerService.currentSkeleton$.subscribe(r=>{if(r==null)return;const{unitId:e}=r,t=this._renderManagerService.getRenderById(e);if(t==null||this._initializedRender.has(e)||[o.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,o.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY].includes(e))return;this._initializedRender.add(e);const{scene:n}=t;this.disposeWithMe(o.toDisposable(n.onMouseWheelObserver.add(i=>{if(!i.ctrlKey)return;const a=Math.abs(i.deltaX);let c=a<40?.2:a<80?.4:.2;c*=i.deltaY>0?-1:1,n.scaleX<1&&(c/=2);const l=this._currentUniverService.getCurrentUniverDocInstance(),u=l.zoomRatio;let d=+Number.parseFloat(`${u+c}`).toFixed(1);d=d>=4?4:d<=.1?.1:d,this._commandService.executeCommand(Ge.id,{zoomRatio:d,unitId:l.getUnitId()}),i.preventDefault()})))})}_skeletonListener(){this.disposeWithMe(o.toDisposable(this._docSkeletonManagerService.currentSkeletonBefore$.subscribe(r=>{if(r==null)return;const t=this._currentUniverService.getCurrentUniverDocInstance().zoomRatio||1;this._updateViewZoom(t,!1)})))}_commandExecutedListener(){const r=[L.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(r.includes(e.id)){const t=this._currentUniverService.getCurrentUniverDocInstance(),n=e.params,{unitId:i}=n;if(i!==t.getUnitId())return;const a=t.zoomRatio||1;this._updateViewZoom(a)}}))}_updateViewZoom(r,e=!0){var n;const t=this._getDocObject();t!=null&&(t.scene.scale(r,r),this._calculatePagePosition(t,r),e&&this._textSelectionManagerService.refreshSelection(),(n=t.scene.getTransformer())==null||n.hideControl())}_calculatePagePosition(r,e){const{document:t,scene:n}=r,i=n==null?void 0:n.getParent(),{width:a,height:c,pageMarginLeft:l,pageMarginTop:u}=t;if(i==null||a===Number.POSITIVE_INFINITY||c===Number.POSITIVE_INFINITY)return;const{width:d,height:m}=i;let g=0,h=0,p=0,_=0,S=Number.POSITIVE_INFINITY;d>(a+l*2)*e?(g=d/2-a*e/2,g/=e,p=(d-l*2)/e,S=0):(g=l,p=a+l*2,S=(p-d/e)/2),m>c?(h=m/2-c/2,_=(m-u*2)/e):(h=u,_=c+u*2),n.resize(p,_+200),t.translate(g,h);const f=n.getViewport(_e.VIEW_MAIN);if(S!==Number.POSITIVE_INFINITY&&f!=null){const v=f.getBarScroll(S,0).x;f.scrollTo({x:v})}return this}_getDocObject(){return pe(this._currentUniverService,this._renderManagerService)}};me=qt([o.OnLifecycle(o.LifecycleStages.Rendered,me),X(0,b.Inject(exports.DocSkeletonManagerService)),X(1,o.IUniverInstanceService),X(2,o.ICommandService),X(3,C.IRenderManagerService),X(4,b.Inject(exports.TextSelectionManagerService))],me);var Zt=Object.defineProperty,Jt=Object.getOwnPropertyDescriptor,Qt=(s,r,e,t)=>{for(var n=t>1?void 0:t?Jt(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Zt(r,e,n),n},ne=(s,r)=>(e,t)=>r(e,t,s);exports.DocCanvasView=class extends o.RxDisposable{constructor(e,t,n,i){super();I(this,"_scene");I(this,"_currentDocumentModel");I(this,"_loadedMap",new Set);I(this,"_fps$",new N.BehaviorSubject(""));I(this,"fps$",this._fps$.asObservable());this._renderManagerService=e,this._configService=t,this._currentUniverService=n,this._docViewModelManagerService=i,this._initialize()}_initialize(){this._currentUniverService.currentDoc$.pipe(N.takeUntil(this.dispose$)).subscribe(e=>{if(e==null)return;this._currentDocumentModel=e;const t=e.getUnitId();this._loadedMap.has(t)||(this._addNewRender(),this._loadedMap.add(t))})}dispose(){this._fps$.complete()}_addNewRender(){const e=this._currentDocumentModel,t=e.getUnitId(),n=e.getContainer(),i=e.getParentRenderUnitId();if(n!=null&&i!=null)throw new Error("container or parentRenderUnitId can only exist one");n==null&&i!=null?this._renderManagerService.createRenderWithParent(t,i):this._renderManagerService.createRender(t);const a=this._renderManagerService.getRenderById(t);if(a==null)return;const{scene:c,engine:l}=a;c.openTransformer(),this._scene=c;const u=new C.Viewport(_e.VIEW_MAIN,c,{left:0,top:0,bottom:0,right:0,isWheelPreventDefaultX:!0});c.attachControl(),c.on(C.EVENT_TYPE.wheel,(g,h)=>{const p=g;if(p.ctrlKey){const _=Math.abs(p.deltaX);let S=_<40?.2:_<80?.4:.2;S*=p.deltaY>0?-1:1,c.scaleX<1&&(S/=2),c.scaleX+S>4?c.scale(4,4):c.scaleX+S<.1?c.scale(.1,.1):p.preventDefault()}else u.onMouseWheel(p,h)}),this._configService.getConfig("hasScroll")!==!1&&t!==o.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&new C.ScrollBar(u),c.addLayer(new C.Layer(c,[],Me),new C.Layer(c,[],Le)),this._addComponent(a),this._currentDocumentModel.getShouldRenderLoopImmediately()&&l.runRenderLoop(()=>{c.render(),this._fps$.next(Math.round(l.getFps()).toString())}),this._renderManagerService.setCurrent(t)}_addComponent(e){const t=this._scene,n=this._currentDocumentModel,i=new C.Documents(ge.MAIN,void 0,{pageMarginLeft:n.documentStyle.marginLeft||0,pageMarginTop:n.documentStyle.marginTop||0});i.zIndex=Be,e.mainComponent=i,e.components.set(ge.MAIN,i),t.addObjects([i],Me)}};exports.DocCanvasView=Qt([o.OnLifecycle(o.LifecycleStages.Ready,exports.DocCanvasView),ne(0,C.IRenderManagerService),ne(1,o.IConfigService),ne(2,o.IUniverInstanceService),ne(3,b.Inject(exports.DocViewModelManagerService))],exports.DocCanvasView);var en=Object.defineProperty,tn=Object.getOwnPropertyDescriptor,nn=(s,r,e,t)=>{for(var n=t>1?void 0:t?tn(r,e):r,i=s.length-1,a;i>=0;i--)(a=s[i])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&en(r,e,n),n},re=(s,r)=>(e,t)=>r(e,t,s);const rn={hasScroll:!0},on="docs";var Ie;exports.UniverDocsPlugin=(Ie=class extends o.Plugin{constructor(e={},t,n,i,a){super(on);I(this,"_config");this._injector=t,this._localeService=n,this._configService=i,this._currentUniverService=a,this._config=Object.assign(rn,e),this._initializeDependencies(t),this._initializeCommands()}initialize(){}_initializeCommands(){[he,Se,je,Fe,G,K,q,Z,B,J,Q,ee,te,De,$e,H,W,Oe,ye,xe,U,Ye,He,Ge,L,Ce,Ke,ze,Xe,be].forEach(e=>{this._injector.get(o.ICommandService).registerCommand(e)})}onReady(){this.initialize()}_initializeDependencies(e){[[exports.DocCanvasView],[exports.DocSkeletonManagerService],[exports.DocViewModelManagerService],[exports.DocStateChangeManagerService],[Y],[C.ITextSelectionRenderManager,{useClass:C.TextSelectionRenderManager}],[exports.TextSelectionManagerService],[ie],[de],[ue],[le],[se],[ae],[ce],[me],[oe]].forEach(t=>e.add(t))}},I(Ie,"type",o.PluginType.Doc),Ie);exports.UniverDocsPlugin=nn([re(1,b.Inject(b.Injector)),re(2,b.Inject(o.LocaleService)),re(3,o.IConfigService),re(4,o.IUniverInstanceService)],exports.UniverDocsPlugin);exports.BreakLineCommand=$e;exports.BulletListCommand=Xe;exports.CoverContentCommand=He;exports.CutContentCommand=Re;exports.DOCS_COMPONENT_DEFAULT_Z_INDEX=Be;exports.DOCS_COMPONENT_HEADER_LAYER_INDEX=Le;exports.DOCS_COMPONENT_MAIN_LAYER_INDEX=Me;exports.DOCS_VIEW_KEY=ge;exports.DeleteCommand=W;exports.DeleteLeftCommand=je;exports.DeleteRightCommand=Fe;exports.IMEInputCommand=ye;exports.IMEInputManagerService=Y;exports.InnerPasteCommand=St;exports.InsertCommand=H;exports.MoveCursorOperation=he;exports.MoveSelectionOperation=Se;exports.NORMAL_TEXT_SELECTION_PLUGIN_NAME=Qe;exports.OrderListCommand=ze;exports.ReplaceContentCommand=Ye;exports.RichTextEditingMutation=U;exports.SelectAllOperation=Ke;exports.SetInlineFormatBoldCommand=G;exports.SetInlineFormatCommand=De;exports.SetInlineFormatFontFamilyCommand=ee;exports.SetInlineFormatFontSizeCommand=Q;exports.SetInlineFormatItalicCommand=K;exports.SetInlineFormatStrikethroughCommand=Z;exports.SetInlineFormatSubscriptCommand=B;exports.SetInlineFormatSuperscriptCommand=J;exports.SetInlineFormatTextColorCommand=te;exports.SetInlineFormatUnderlineCommand=q;exports.SetTextSelectionsOperation=Ce;exports.UpdateCommand=Oe;exports.VIEWPORT_KEY=_e;exports.getDocObject=pe;exports.serializeTextRange=z;
|