@univerjs/docs-ui
Version:
Editor UI layer for Univer Docs.
2 lines • 501 kB
JavaScript
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("@univerjs/drawing"),require("rxjs"),require("react"),require("rxjs/operators"),require("@univerjs/design"),require("react/jsx-runtime")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/engine-render`,`@univerjs/ui`,`@univerjs/drawing`,`rxjs`,`react`,`rxjs/operators`,`@univerjs/design`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsUi={},e.UniverCore,e.UniverDocs,e.UniverEngineRender,e.UniverUi,e.UniverDrawing,e.rxjs,e.React,e.rxjs.operators,e.UniverDesign,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let d=function(e){return e.MAIN=`__Document_Render_Main__`,e.BACKGROUND=`__Document_Render_Background__`,e}({}),f=function(e){return e.VIEW_MAIN=`viewMain`,e.VIEW_TOP=`viewTop`,e.VIEW_LEFT=`viewLeft`,e.VIEW_LEFT_TOP=`viewLeftTop`,e}({});function p(e){let{mainComponent:t,scene:n,engine:r,components:i}=e;return{document:t,docBackground:i.get(`__Document_Render_Background__`),scene:n,engine:r}}function m(e,n){let r=e.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(!r)return null;let i=r.getUnitId(),a=n.getRenderById(i);if(a==null)return;let{mainComponent:o,scene:s,engine:c,components:l}=a;return{document:o,docBackground:l.get(`__Document_Render_Background__`),scene:s,engine:c}}function h(e,t){let n=t.getRenderById(e);if(n==null)return;let{mainComponent:r,scene:i,engine:a,components:o}=n;return{document:r,docBackground:o.get(`__Document_Render_Background__`),scene:i,engine:a}}function g(e){let{unitId:r,ranges:i,id:a,type:o,segmentId:s}=e,c={id:n.RichTextEditingMutation.id,params:{unitId:r,actions:[],textRanges:void 0,segmentId:s}},l=t.JSONX.getInstance(),u=t.BuildTextUtils.customDecoration.add({ranges:i,id:a,type:o});return c.params.actions=l.editOp(u.serialize()),c}function _(e,r){let{segmentId:i,id:a,type:o,unitId:s}=r,c=e.get(n.DocSelectionManagerService),l=e.get(t.IUniverInstanceService),u=s?l.getUnit(s,t.UniverInstanceType.UNIVER_DOC):l.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(!u)return!1;let d=u.getUnitId(),f=c.getTextRanges({unitId:d,subUnitId:d});return!f||!u.getBody()?!1:g({unitId:d,ranges:f,id:a,type:o,segmentId:i})}function v(e,r){let{unitId:i,id:a,segmentId:o}=r,s=e.get(t.IUniverInstanceService).getUnit(i);if(!s)return!1;let c={id:n.RichTextEditingMutation.id,params:{unitId:i,actions:[],textRanges:void 0,segmentId:o}},l=t.BuildTextUtils.customDecoration.delete({id:a,segmentId:o,documentDataModel:s});if(!l)return!1;let u=t.JSONX.getInstance();return c.params.actions=u.editOp(l.serialize()),c}function y(e,t){return t.some(t=>e.startIndex>t.startIndex&&e.startIndex<t.endIndex)}function b(e,t,n,r,i){let{textRuns:a=[],dataStream:o}=e,s=i&&o.startsWith(`=`),c={st:0,ed:0,ts:{}};if(s)return c;for(let e=a.length-1;e>=0;e--){let n=a[e],{st:r,ed:i}=n;t>r&&t<=i&&(c.st=r,c.ed=i,c.ts={...c.ts,...n.ts})}if(t===0){let e=a==null?void 0:a[0];e&&e.st===0&&(c.ts={...c.ts,...e.ts})}return r&&(c.ts={...c.ts,...r}),c}function x(e,t,n){if(n){let n=e.find(e=>t>=e.startIndex&&t<=e.endIndex+1);return n!=null&&n.wholeEntity?null:n}let r=e.find(e=>t>e.startIndex&&t<=e.endIndex);return r!=null&&r.wholeEntity?null:r}function S(e,t){return e.filter(e=>t>e.startIndex&&t<=e.endIndex)}function C(e){return{left:e.positionH.posOffset,top:e.positionV.posOffset,width:e.size.width,height:e.size.height}}function w(e,n=0,r=0){return{size:{width:e.width,height:e.height},positionH:{relativeFrom:t.ObjectRelativeFromH.MARGIN,posOffset:(e.left||0)-n},positionV:{relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:(e.top||0)-r},angle:e.angle||0}}function T(e){"@babel/helpers - typeof";return T=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},T(e)}function E(e,t){if(T(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(T(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function D(e){var t=E(e,`string`);return T(t)==`symbol`?t:t+``}function O(e,t,n){return(t=D(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function k(e,t){return function(n,r){t(n,r,e)}}function A(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let j=class extends t.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._textSelectionManagerService=t,O(this,`_matches`,new Map)}registerAutoFormat(e){let n=this._matches.get(e.id);return n?(n.push(e),n.sort((e,t)=>{var n,r;return((n=t.priority)==null?0:n)-((r=e.priority)==null?0:r)})):this._matches.set(e.id,[e]),(0,t.toDisposable)(()=>{let t=this._matches.get(e.id);if(t){let n=t.findIndex(t=>t===e);n>=0&&t.splice(n,1)}})}onAutoFormat(e,n){var r,i;let a=(r=this._matches.get(e))==null?[]:r,o=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC),s=this._textSelectionManagerService.getDocRanges(),c=(i=s.find(e=>e.isActive))==null?s[0]:i;if(o&&c){var l,u,d,f,p,m,h;let r=o.getSelfOrHeaderFooterModel(c.segmentId),i={unit:r,selection:c,isBody:!c.segmentId,paragraphs:t.BuildTextUtils.range.getParagraphsInRange(c,(l=(u=r.getBody())==null?void 0:u.paragraphs)==null?[]:l,(d=(f=r.getBody())==null?void 0:f.dataStream)==null?``:d),customRanges:t.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(c,(p=(m=r.getBody())==null?void 0:m.customRanges)==null?[]:p),commandId:e,commandParams:n},s=a.find(e=>e.match(i));return(h=s==null?void 0:s.getMutations(i))==null?[]:h}return[]}};j=A([k(0,t.IUniverInstanceService),k(1,(0,t.Inject)(n.DocSelectionManagerService))],j);let M={id:`doc.command.tab`,type:t.CommandType.COMMAND,async handler(e,n){return(await(0,t.sequenceExecuteAsync)(e.get(j).onAutoFormat(M.id,n),e.get(t.ICommandService))).result}},N={id:`doc.command.after-space`,type:t.CommandType.COMMAND,async handler(e){return(await(0,t.sequenceExecuteAsync)(e.get(j).onAutoFormat(N.id),e.get(t.ICommandService))).result}},P={id:`doc.command.enter`,type:t.CommandType.COMMAND,async handler(e){return(await(0,t.sequenceExecuteAsync)(e.get(j).onAutoFormat(P.id),e.get(t.ICommandService))).result}},F={ff:`Arial`,fs:11},I=class extends t.Disposable{constructor(e,t,n){super(),this._textSelectionManagerService=e,this._univerInstanceService=t,this._renderManagerService=n,O(this,`_cacheStyle`,null),this._init()}_init(){this._listenDocRangeChange()}_listenDocRangeChange(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(()=>{this._clearStyleCache()}))}getStyleCache(){return this._cacheStyle}getDefaultStyle(){var e;let i=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(i==null)return{...F};let a=i==null?void 0:i.getUnitId(),o=(e=this._renderManagerService.getRenderById(a))==null?void 0:e.with(n.DocSkeletonManagerService),s=o==null?void 0:o.getViewModel();return s==null||s.getEditArea()===r.DocumentEditArea.BODY?{...F}:{...F,fs:9}}setStyleCache(e){this._cacheStyle={...this._cacheStyle,...e}}_clearStyleCache(){this._cacheStyle=null}};I=A([k(0,(0,t.Inject)(n.DocSelectionManagerService)),k(1,t.IUniverInstanceService),k(2,r.IRenderManagerService)],I);function L(e,t){var i;return(i=e.get(r.IRenderManagerService).getRenderById(t))==null?void 0:i.with(n.DocSkeletonManagerService)}function R(e,t=``){if(!t)return[`body`];let{headers:n,footers:r}=e.getSnapshot();if(n==null&&r==null)throw Error(`Document data model must have headers or footers when update by segment id`);if((n==null?void 0:n[t])!=null)return[`headers`,t,`body`];if((r==null?void 0:r[t])!=null)return[`footers`,t,`body`];throw Error(`Segment id not found in headers or footers`)}function z(e,n,r){let i=[];for(let n=0,r=e.length;n<r;n++)e[n]===t.DataStreamTreeTokenType.PARAGRAPH&&i.push({startIndex:n});if(n)for(let e of i)n.bullet&&(e.bullet=t.Tools.deepClone(n.bullet)),n.paragraphStyle&&(e.paragraphStyle=t.Tools.deepClone(n.paragraphStyle),delete e.paragraphStyle.borderBottom,n.paragraphStyle.headingId&&(e.paragraphStyle.headingId=(0,t.generateRandomId)(6)));if(r)for(let e of i)e.paragraphStyle||(e.paragraphStyle={}),e.paragraphStyle.borderBottom=r;return i}let B={id:`doc.command.break-line`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,a,o,s;let c=e.get(n.DocSelectionManagerService),l=e.get(t.IUniverInstanceService),u=e.get(t.ICommandService),d=e.get(I),f=(i=r==null?void 0:r.textRange)==null?c.getActiveTextRange():i,p=c.getRectRanges();if(f==null)return!1;if(p&&p.length){let{startOffset:e}=f;return c.replaceDocRanges([{startOffset:e,endOffset:e}]),!0}let{horizontalLine:m}=r==null?{}:r,{segmentId:h}=f,g=l.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC),_=g==null?void 0:g.getSelfOrHeaderFooterModel(h==null?``:h).getBody();if(g==null||_==null)return!1;let v=g.getUnitId(),{startOffset:y,endOffset:x}=f,S=((a=_.paragraphs)==null?[]:a).find(e=>e.startIndex>=y);if(!S)return!1;let C=y===S.startIndex,w=S.startIndex,T=b(_,x,d.getDefaultStyle(),d.getStyleCache()),E={dataStream:t.DataStreamTreeTokenType.PARAGRAPH,paragraphs:z(t.DataStreamTreeTokenType.PARAGRAPH,S,m),textRuns:[{st:0,ed:1,ts:{...T.ts}}]};if(g==null)return!1;let D=c.getActiveTextRange();if(_==null)return!1;let{collapsed:O}=f,k=E.dataStream.length,A=[{startOffset:y+k,endOffset:y+k,style:D==null?void 0:D.style,collapsed:O}],j={id:n.RichTextEditingMutation.id,params:{unitId:v,actions:[],textRanges:A,debounce:!0}},M=new t.TextX,N=t.JSONX.getInstance();if(O)y>0&&M.push({t:t.TextXActionType.RETAIN,len:y}),M.push({t:t.TextXActionType.INSERT,body:E,len:E.dataStream.length});else{let e=t.BuildTextUtils.selection.delete([f],_,0,E);M.push(...e)}if(((o=S.bullet)==null?void 0:o.listType)===t.PresetListType.CHECK_LIST_CHECKED||(s=S.paragraphStyle)!=null&&s.headingId){var P;f.endOffset<w&&M.push({t:t.TextXActionType.RETAIN,len:w-f.endOffset}),M.push({t:t.TextXActionType.RETAIN,len:1,body:{dataStream:``,paragraphs:[{...S,paragraphStyle:{...S.paragraphStyle,...C?{headingId:void 0,namedStyleType:void 0}:null},startIndex:0,bullet:(P=S.paragraphStyle)!=null&&P.headingId?void 0:{...S.bullet,listType:t.PresetListType.CHECK_LIST}}]},coverType:t.UpdateDocsAttributeType.REPLACE})}j.params.textRanges=[{startOffset:y+k,endOffset:y+k,collapsed:O}];let F=R(g,h);return j.params.actions=N.editOp(M.serialize(),F),!!u.syncExecuteCommand(j.id,j.params)}};function V(e,n){let r=t.DataStreamTreeTokenType.TABLE_START,i=[],a=[];for(let o=0;o<e;o++){r+=t.DataStreamTreeTokenType.TABLE_ROW_START;for(let e=0;e<n;e++)r+=`${t.DataStreamTreeTokenType.TABLE_CELL_START}\r\n${t.DataStreamTreeTokenType.TABLE_CELL_END}`,i.push({startIndex:r.length-3,paragraphStyle:{spaceAbove:{v:3},lineSpacing:2,spaceBelow:{v:0}}}),a.push({startIndex:r.length-2});r+=t.DataStreamTreeTokenType.TABLE_ROW_END}return r+=t.DataStreamTreeTokenType.TABLE_END,{dataStream:r,paragraphs:i,sectionBreaks:a}}function H(){return{margin:{start:{v:10},end:{v:10},top:{v:5},bottom:{v:5}}}}function ee(e){let n=H();return{tableCells:[...Array(e).fill(null).map(()=>t.Tools.deepClone(n))],trHeight:{val:{v:30},hRule:t.TableRowHeightRule.AUTO}}}function te(e){return{size:{type:t.TableSizeType.SPECIFIED,width:{v:e}}}}function ne(e,n,r){let i=te(r/n),a=ee(n);return{tableRows:[...Array(e).fill(null).map(()=>t.Tools.deepClone(a))],tableColumns:[...Array(n).fill(null).map(()=>t.Tools.deepClone(i))],tableId:(0,t.generateRandomId)(6),align:t.TableAlignmentType.START,indent:{v:0},textWrap:t.TableTextWrapType.NONE,position:{positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PAGE,posOffset:0}},dist:{distB:0,distL:0,distR:0,distT:0},cellMargin:{start:{v:10},end:{v:10},top:{v:5},bottom:{v:5}},size:{type:t.TableSizeType.UNSPECIFIED,width:{v:r}}}}function U(e,t){if(!e&&!t)return null;if(t&&t.length>0){let e=1/0,n=-1/0;for(let r of t){let{startOffset:t,endOffset:i,segmentId:a}=r;t==null||i==null||a==null||(e=Math.min(e,t),n=Math.max(n,i))}if(Number.isFinite(e)&&Number.isFinite(n))return{startOffset:e,endOffset:n,segmentId:``}}else if(e){let{startOffset:t,endOffset:n,segmentId:r}=e;return t==null||n==null||r==null?null:{startOffset:t,endOffset:n,segmentId:r}}}function W(e){let n=t.DataStreamTreeTokenType.TABLE_ROW_START,r=[],i=[];for(let a=0;a<e;a++)n+=`${t.DataStreamTreeTokenType.TABLE_CELL_START}\r\n${t.DataStreamTreeTokenType.TABLE_CELL_END}`,r.push({startIndex:n.length-3,paragraphStyle:{spaceAbove:{v:3},lineSpacing:2,spaceBelow:{v:0}}}),i.push({startIndex:n.length-2});return n+=t.DataStreamTreeTokenType.TABLE_ROW_END,{dataStream:n,paragraphs:r,sectionBreaks:i}}function re(){let e=`${t.DataStreamTreeTokenType.TABLE_CELL_START}\r\n${t.DataStreamTreeTokenType.TABLE_CELL_END}`,n=[],r=[];return n.push({startIndex:1,paragraphStyle:{spaceAbove:{v:3},lineSpacing:2,spaceBelow:{v:0}}}),r.push({startIndex:2}),{dataStream:e,paragraphs:n,sectionBreaks:r}}function ie(e,t,n){var r;let{startOffset:i,endOffset:a,segmentId:o}=e,s=n.getSelfOrHeaderFooterViewModel(o),c=t===0?i:a,l=null,u=(r=n.getBody())==null||(r=r.tables)==null||(r=r.find(e=>c>=e.startIndex&&c<=e.endIndex))==null?void 0:r.tableId,d=0;for(let e of s.getChildren()){for(let t of e.children){let{children:e}=t,n=e[0];if(n){for(let e of n.children)if(e.startIndex<=c&&c<=e.endIndex){d=n.children.indexOf(e),l=e;break}}if(l)break}if(l)break}return l==null||u==null?null:{offset:t===0?l.startIndex:l.endIndex+1,colCount:l.children.length,tableId:u,insertRowIndex:t===0?d:d+1}}function ae(e,t,n){var r;let{startOffset:i,endOffset:a,segmentId:o}=e,s=n.getSelfOrHeaderFooterViewModel(o),c=t===0?i:a,l=(r=n.getBody())==null||(r=r.tables)==null||(r=r.find(e=>c>=e.startIndex&&c<=e.endIndex))==null?void 0:r.tableId,u=[],d=null,f=-1;for(let e of s.getChildren()){for(let t of e.children){let{children:e}=t,n=e[0];if(n){if(c<n.startIndex||c>n.endIndex)continue;d=n;for(let e of n.children){for(let t of e.children){let n=e.children.indexOf(t);if(c>=t.startIndex&&c<=t.endIndex){f=n;break}}if(f!==-1)break}}if(d)break}if(d)break}if(d==null||l==null||f===-1)return null;let p=0;for(let e of d.children){let n=e.children[f],r=t===0?n.startIndex:n.endIndex+1;u.push(r-p),p=r}return{offsets:u,tableId:l,columnIndex:f,rowCount:d.children.length}}function oe(e,t,n){let r=[],i=t[n].size.width.v,a=0;for(let e=0;e<t.length;e++)a+=t[e].size.width.v;a+=i;for(let n=0;n<t.length;n++)r.push(t[n].size.width.v/a*e);return i=i/a*e,{widths:r,newColWidth:i}}function G(e,t){var n;let{startOffset:r,endOffset:i,segmentId:a}=e,o=t.getSelfOrHeaderFooterViewModel(a),s=(n=t.getBody())==null||(n=n.tables)==null||(n=n.find(e=>r>=e.startIndex&&i<=e.endIndex))==null?void 0:n.tableId,c=[],l=-1,u=0,d=-1,f=!1;for(let e of o.getChildren()){for(let t of e.children){let{children:e}=t,n=e[0];if(n){if(r<n.startIndex||i>n.endIndex)continue;d=n.startIndex+3;for(let e of n.children){let t=n.children.indexOf(e),{startIndex:a,endIndex:o}=e;r>=a&&r<=o?(l=a,c.push(t),u+=o-a+1):(a>r&&o<i||i>=a&&i<=o)&&(c.push(t),u+=o-a+1),c.length===n.children.length&&(f=!0)}}if(c.length)break}if(c.length)break}return s==null||c.length===0?null:{tableId:s,rowIndexes:c,offset:l,len:u,cursor:d,selectWholeTable:f}}function se(e,t){var n;let{startOffset:r,endOffset:i,segmentId:a}=e,o=t.getSelfOrHeaderFooterViewModel(a),s=(n=t.getBody())==null||(n=n.tables)==null||(n=n.find(e=>r>=e.startIndex&&i<=e.endIndex))==null?void 0:n.tableId,c=[],l=null,u=[],d=-1,f=-1,p=-1;for(let e of o.getChildren()){for(let t of e.children){let{children:e}=t,n=e[0];if(n){if(r<n.startIndex||i>n.endIndex)continue;l=n;for(let e of n.children)for(let t of e.children){let n=e.children.indexOf(t);r>=t.startIndex&&r<=t.endIndex&&(f=n),i>=t.startIndex&&i<=t.endIndex&&(p=n)}}if(l)break}if(l)break}if(l==null||s==null)return null;for(let e=f;e<=p;e++)u.push(e);let m=0;for(let e of l.children){let t=e.children[f],n=e.children[p];c.push({retain:t.startIndex-m,delete:n.endIndex-t.startIndex+1}),m=n.endIndex+1}return d=l.startIndex+3,{offsets:c,tableId:s,columnIndexes:u,cursor:d,selectWholeTable:u.length===l.children[0].children.length,rowCount:l.children.length}}function ce(e,t){var n;let{startOffset:r,endOffset:i,segmentId:a}=e,o=t.getSelfOrHeaderFooterViewModel(a),s=(n=t.getBody())==null||(n=n.tables)==null||(n=n.find(e=>r>=e.startIndex&&i<=e.endIndex))==null?void 0:n.tableId,c=-1,l=0,u=-1;for(let e of o.getChildren()){for(let t of e.children){let{children:e}=t,n=e[0];if(n){if(r<n.startIndex||i>n.endIndex)continue;c=n.startIndex,l=n.endIndex-n.startIndex+1,u=n.startIndex}if(n)break}if(l>0)break}return s==null?null:{tableId:s,offset:c,len:l,cursor:u}}function le(e,t){var n;let{startOffset:r,endOffset:i,segmentId:a}=e,o=t.getSelfOrHeaderFooterViewModel(a),s=(n=t.getBody())==null||(n=n.tables)==null||(n=n.find(e=>r>=e.startIndex&&i<=e.endIndex))==null?void 0:n.tableId,c=[],l=null,u=-1,d=-1,f=-1,p=-1;for(let e of o.getChildren()){for(let t of e.children){let{children:e}=t,n=e[0];if(n){if(r<n.startIndex||i>n.endIndex)continue;l=n;for(let e of n.children){let t=n.children.indexOf(e);for(let n of e.children){let a=e.children.indexOf(n);r>=n.startIndex&&r<=n.endIndex&&(d=t,f=a),i>=n.startIndex&&i<=n.endIndex&&(p=a)}}}if(l)break}if(l)break}if(l==null||s==null||d===-1)return null;let m=l.children[d];for(let e=f;e<=p;e++){let t=m.children[e];c.push({retain:t.startIndex+1,delete:t.endIndex-t.startIndex-3})}return u=l.startIndex+3,{offsets:c,tableId:s,cursor:u,rowCount:l.children.length}}function ue(e,t,n){let{startOffset:r}=t,i=null;for(let t of e.getChildren()){for(let e of t.children){let t=e.children[0];if(t&&r>t.startIndex&&r<t.endIndex){i=t;break}}if(i)break}if(i==null)return null;let a=-1,o=-1,s=null;for(let e of i.children){for(let t of e.children)if(r>t.startIndex&&r<t.endIndex){a=e.children.indexOf(t),o=i.children.indexOf(e),s=e;break}if(a>-1)break}if(a===-1||o===-1||s==null)return null;let c=null;if(n===0){if(c=s.children[a+1],!c){let e=i.children[o+1];e&&(c=e.children[0])}}else if(c=s.children[a-1],!c){let e=i.children[o-1];e&&(c=e.children[e.children.length-1])}if(c){let{startIndex:e,endIndex:t}=c;return{startOffset:e+1,endOffset:t-2}}}function de(e,t){let n=[],{customBlocks:r=[]}=e;for(let e of t){let{startOffset:t,endOffset:i}=e;if(!(t==null||i==null))for(let e of r){let{startIndex:r}=e;r>=t&&r<i&&n.push(e.blockId)}}return n}function fe(e){return e.some(e=>{let{startNodePosition:t}=e;return t?(t==null?void 0:t.path.indexOf(`cells`))>-1:!1})}let pe=t.SHEET_EDITOR_UNITS,me={id:`doc.command.inner-paste`,type:t.CommandType.COMMAND,handler:async(e,r)=>{var i,a;let{segmentId:o,textRanges:s,doc:c}=r,l=e.get(t.ICommandService),u=e.get(n.DocSelectionManagerService),d=e.get(t.IUniverInstanceService),f=u.getTextRanges(),p=u.getRectRanges(),{body:m,tableSource:h,drawings:g}=c;if(!Array.isArray(f)||f.length===0||m==null)return!1;let _=d.getCurrentUniverDocInstance(),v=_==null?void 0:_.getSelfOrHeaderFooterModel(o).getBody();if(_==null||v==null)return!1;let y=_.getUnitId(),b={id:n.RichTextEditingMutation.id,params:{unitId:y,actions:[],textRanges:s,segmentId:o}},C=new t.MemoryCursor;C.reset();let w=new t.TextX,T=t.JSONX.getInstance(),E=[],D=!!((i=m.tables)!=null&&i.length),O=!!((a=m.customBlocks)!=null&&a.length);if(D&&o||D&&fe(f)||f.length&&p!=null&&p.length)return!1;for(let e=0;e<f.length;e++){var k,A;let n=f[e],{startOffset:r,endOffset:i,collapsed:a}=n,o=r-C.cursor,s=t.Tools.deepClone(m);if(D)for(let e of s.tables){let{tableId:n}=e,r=(0,t.generateRandomId)(6);e.tableId=r;let i=t.Tools.deepClone(h[n]);i.tableId=r;let a=T.insertOp([`tableSource`,r],i);E.push(a)}if(O&&g){var j,M;let e=(j=(M=_.getSnapshot().drawingsOrder)==null?void 0:M.length)==null?0:j;for(let n of s.customBlocks){let{blockId:r}=n,i=(0,t.generateRandomId)(6);n.blockId=i;let a=t.Tools.deepClone(g[r]);a.drawingId=i;let o=T.insertOp([`drawings`,i],a),s=T.insertOp([`drawingsOrder`,e],i);E.push(o),E.push(s)}}let c=x((k=v.customRanges)==null?[]:k,i,pe.includes(y)),l=S((A=v.customDecorations)==null?[]:A,i);if(c&&(s.customRanges=[{...c,startIndex:0,endIndex:m.dataStream.length-1}]),l.length&&(s.customDecorations=l.map(e=>({...e,startIndex:0,endIndex:m.dataStream.length-1}))),a)w.push({t:t.TextXActionType.RETAIN,len:o}),w.push({t:t.TextXActionType.INSERT,body:s,len:m.dataStream.length});else{let e=t.BuildTextUtils.selection.delete([n],m,C.cursor,s,f.length===1);w.push(...e)}C.reset(),C.moveCursor(i)}let N=R(_,o);return E.push(T.editOp(w.serialize(),N)),b.params.actions=E.reduce((e,n)=>t.JSONX.compose(e,n),null),!!l.syncExecuteCommand(b.id,b.params)}};function he(e,t){let{startOffset:n,endOffset:r}=e,i=t.some(e=>e.startIndex===r),a=Math.max(n,i?r-1:r);return{...e,endOffset:a,collapsed:n===a}}function ge(e,n,r){var i,a;let o=n.getSelfOrHeaderFooterModel(r).getBody(),s=new t.TextX,c=t.JSONX.getInstance(),l=[];if(o==null)return l;let{tables:u=[]}=o,d=new t.MemoryCursor;d.reset();for(let n=0;n<e.length;n++){let r=he(e[n],u),{startOffset:i,endOffset:a,collapsed:c}=r,l=i-d.cursor;c?s.push({t:t.TextXActionType.RETAIN,len:l}):s.push(...t.BuildTextUtils.selection.delete([r],o,d.cursor,null,!1)),d.reset(),d.moveCursor(a)}let f=R(n,r);l.push(c.editOp(s.serialize(),f));let p=de(o,e),m=(i=n.getDrawings())==null?{}:i,h=(a=n.getDrawingsOrder())==null?[]:a,g=p.sort((e,t)=>h.indexOf(e)>h.indexOf(t)?-1:+(h.indexOf(e)<h.indexOf(t)));if(g.length>0)for(let e of g){let t=m[e],n=h.indexOf(e);if(t==null||n<0)continue;let r=c.removeOp([`drawings`,e],t),i=c.removeOp([`drawingsOrder`,n],e);l.push(r),l.push(i)}return l.reduce((e,n)=>t.JSONX.compose(e,n),null)}function _e(e,n,r,i){let a=[];if(n.getSelfOrHeaderFooterModel(i).getBody()==null)return a;let o=new t.TextX,s=t.JSONX.getInstance(),c=new t.MemoryCursor;c.reset();for(let n of e){let{startOffset:e,endOffset:l,spanEntireRow:u,spanEntireTable:d}=n;if(!(e==null||l==null))if(d){let n=ce({startOffset:e,endOffset:l,segmentId:i},r);if(n==null)continue;let{offset:u,len:d,tableId:f}=n;u-c.cursor>0&&o.push({t:t.TextXActionType.RETAIN,len:u-c.cursor}),o.push({t:t.TextXActionType.DELETE,len:d});let p=s.removeOp([`tableSource`,f]);a.push(p),c.moveCursorTo(u+d)}else if(u){let n=G({startOffset:e,endOffset:l,segmentId:i},r);if(n==null)continue;let{offset:u,rowIndexes:d,len:f,tableId:p}=n;u-c.cursor>0&&o.push({t:t.TextXActionType.RETAIN,len:u-c.cursor}),o.push({t:t.TextXActionType.DELETE,len:f});for(let e of d.reverse()){let t=s.removeOp([`tableSource`,p,`tableRows`,e]);a.push(t)}c.moveCursorTo(u+f)}else{let n=le({startOffset:e,endOffset:l,segmentId:i},r);if(n==null)continue;let{offsets:a}=n;for(let e of a){let{retain:n,delete:r}=e;n-c.cursor>0&&o.push({t:t.TextXActionType.RETAIN,len:n-c.cursor}),o.push({t:t.TextXActionType.DELETE,len:r}),c.moveCursorTo(n+r)}}}let l=R(n,i);return a.push(s.editOp(o.serialize(),l)),a.reduce((e,n)=>t.JSONX.compose(e,n),null)}function ve(e,n,r,i,a){let o=[];if(Array.isArray(e)&&(e==null?void 0:e.length)!==0&&(o=ge(e,r,a)),Array.isArray(n)&&(n==null?void 0:n.length)!==0){let e=_e(n,r,i,a);o=o==null||o.length===0?e:t.JSONX.compose(o,t.JSONX.transform(e,o,`right`))}return o}let ye={id:`doc.command.inner-cut`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i;let a=e.get(n.DocSelectionManagerService),o=e.get(t.ICommandService),s=e.get(t.IUniverInstanceService),{segmentId:c,textRanges:l,selections:u=a.getTextRanges(),rectRanges:d=a.getRectRanges()}=r;if((!Array.isArray(u)||u.length===0)&&(!Array.isArray(d)||d.length===0))return!1;let f=(i=s.getCurrentUniverDocInstance())==null?void 0:i.getUnitId();if(!f)return!1;let p=s.getUniverDocInstance(f);if(p==null)return!1;let m=L(e,f);if(m==null)return!1;let h=m.getViewModel(),g={id:n.RichTextEditingMutation.id,params:{unitId:f,actions:[],textRanges:l}};return g.params.actions=ve(u,d,p,h,c),!!o.syncExecuteCommand(g.id,g.params)}},be=`doc.command.insert-text`,xe={id:be,type:t.CommandType.COMMAND,handler:async(e,r)=>{var i;let a=e.get(t.ICommandService),{range:o,segmentId:s,body:c,unitId:l,cursorOffset:u}=r,d=e.get(n.DocSelectionManagerService),f=e.get(t.IUniverInstanceService).getUnit(l,t.UniverInstanceType.UNIVER_DOC);if(f==null)return!1;let p=d.getActiveTextRange(),m=f.getSelfOrHeaderFooterModel((i=p==null?void 0:p.segmentId)==null?``:i).getBody();if(m==null)return!1;let{startOffset:h,collapsed:g}=o,_=u==null?c.dataStream.length:u,v=[{startOffset:h+_,endOffset:h+_,style:p==null?void 0:p.style,collapsed:g}],y={id:n.RichTextEditingMutation.id,params:{unitId:l,actions:[],textRanges:v,debounce:!0}},b=new t.TextX,x=t.JSONX.getInstance();if(g)h>0&&b.push({t:t.TextXActionType.RETAIN,len:h}),b.push({t:t.TextXActionType.INSERT,body:c,len:c.dataStream.length});else{let e=t.BuildTextUtils.selection.delete([o],m,0,c);b.push(...e)}y.params.textRanges=[{startOffset:h+_,endOffset:h+_,collapsed:g}];let S=R(f,s);return y.params.actions=x.editOp(b.serialize(),S),!!a.syncExecuteCommand(y.id,y.params)}},Se={id:`doc.command.delete-text`,type:t.CommandType.COMMAND,handler:async(e,r)=>{var i;let a=e.get(t.ICommandService),o=e.get(t.IUniverInstanceService),{range:s,segmentId:c,unitId:l,direction:u,len:d=1}=r,f=o.getUnit(l,t.UniverInstanceType.UNIVER_DOC),p=f==null?void 0:f.getSelfOrHeaderFooterModel(c).getBody();if(f==null||p==null)return!1;let{startOffset:m}=s,h=u===0?m-d:m,g=u===0?m-1:m+d-1,_=(i=p.customRanges)==null?void 0:i.find(e=>e.startIndex<=h&&e.endIndex>=g);_!=null&&_.wholeEntity&&(h=_.startIndex,g=Math.max(g,_.endIndex));let v={id:n.RichTextEditingMutation.id,params:{unitId:l,actions:[],textRanges:[{startOffset:h,endOffset:h,collapsed:!0}],debounce:!0}},y=new t.TextX,b=t.JSONX.getInstance();y.push({t:t.TextXActionType.RETAIN,len:h-0}),y.push({t:t.TextXActionType.DELETE,len:g-h+1});let x=R(f,c);return v.params.actions=b.editOp(y.serialize(),x),!!a.syncExecuteCommand(v.id,v.params)}},Ce={id:`doc.command.update-text`,type:t.CommandType.COMMAND,handler:async(e,r)=>{let{range:i,segmentId:a,updateBody:o,coverType:s,unitId:c,textRanges:l}=r,u=e.get(t.ICommandService),d=e.get(t.IUniverInstanceService).getCurrentUniverDocInstance();if(d==null)return!1;let f={id:n.RichTextEditingMutation.id,params:{unitId:c,actions:[],textRanges:l}},p=new t.TextX,m=t.JSONX.getInstance(),{startOffset:h,endOffset:g}=i;p.push({t:t.TextXActionType.RETAIN,len:h}),p.push({t:t.TextXActionType.RETAIN,body:o,len:g-h,coverType:s});let _=R(d,a);return f.params.actions=m.editOp(p.serialize(),_),!!u.syncExecuteCommand(f.id,f.params)}};function we(e){var r,i,a,o;let s=e.get(t.IUniverInstanceService),c=e.get(n.DocSelectionManagerService).getActiveTextRange(),l=s.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);return!c||!c.collapsed||!l||c.segmentId?!1:t.BuildTextUtils.range.getParagraphsInRange(c,(r=(i=l.getBody())==null?void 0:i.paragraphs)==null?[]:r,(a=(o=l.getBody())==null?void 0:o.dataStream)==null?``:a)[0]}let Te={id:`doc.command.delete-custom-block`,type:t.CommandType.COMMAND,handler:async(e,r)=>{var i;let a=e.get(n.DocSelectionManagerService),o=e.get(t.IUniverInstanceService),s=e.get(t.ICommandService),c=a.getActiveTextRange(),l=o.getCurrentUniverDocInstance();if(c==null||l==null)return!1;let{direction:u,range:d,unitId:f,drawingId:p}=r,{startOffset:m,segmentId:h,style:g}=c,_=u===0?m-1:m,v=[{startOffset:_,endOffset:_,style:g}],y={id:n.RichTextEditingMutation.id,params:{unitId:f,actions:[],textRanges:v,prevTextRanges:[d]}},b=new t.TextX,x=t.JSONX.getInstance(),S=[];m>0&&b.push({t:t.TextXActionType.RETAIN,len:u===0?m-1:m}),b.push({t:t.TextXActionType.DELETE,len:1});let C=R(l,h);S.push(x.editOp(b.serialize(),C));let w=((i=l.getDrawings())==null?{}:i)[p],T=l.getDrawingsOrder().indexOf(p),E=x.removeOp([`drawings`,p],w),D=x.removeOp([`drawingsOrder`,T],p);return S.push(E),S.push(D),y.params.actions=S.reduce((e,n)=>t.JSONX.compose(e,n),null),!!s.syncExecuteCommand(y.id,y.params)}},Ee={id:`doc.command.merge-two-paragraph`,type:t.CommandType.COMMAND,handler:async(e,r)=>{let i=e.get(n.DocSelectionManagerService),a=e.get(t.IUniverInstanceService),o=e.get(t.ICommandService),{direction:s,range:c}=r,l=i.getActiveTextRange(),u=i.getTextRanges();if(l==null||u==null)return!1;let{segmentId:d,style:f}=l,p=a.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC),m=p==null?void 0:p.getSelfOrHeaderFooterModel(d).getBody();if(p==null||m==null)return!1;let h=m.dataStream,g=l,_=p.getUnitId(),{startOffset:v,collapsed:y}=g;if(!y)return!1;let b=s===0?v:v+1,x,S;for(let e of m.paragraphs){if(e.startIndex>=b){S=e;break}x=e}if(x==null||S==null)return!1;let C=s===0?v-1:v,w=[{startOffset:C,endOffset:C,style:f}],T={id:n.RichTextEditingMutation.id,params:{unitId:_,actions:[],textRanges:w,prevTextRanges:[c]}},E=new t.TextX,D=t.JSONX.getInstance();x.startIndex>0&&E.push({t:t.TextXActionType.RETAIN,len:x.startIndex}),E.push({t:t.TextXActionType.DELETE,len:1}),S.startIndex>x.startIndex+1&&E.push({t:t.TextXActionType.RETAIN,len:S.startIndex-x.startIndex-1});let O=Object.values(t.DataStreamTreeTokenType),k=h[x.startIndex-1];(k&&!O.includes(k)||k===` `)&&E.push({t:t.TextXActionType.RETAIN,len:1,coverType:t.UpdateDocsAttributeType.REPLACE,body:{dataStream:``,paragraphs:[{...t.Tools.deepClone(x),startIndex:0}]}});let A=R(p,d);return T.params.actions=D.editOp(E.serialize(),A),!!o.syncExecuteCommand(T.id,T.params)}},De={id:`doc.command.remove-horizontal-line`,type:t.CommandType.COMMAND,handler:async e=>{var r;let i=e.get(n.DocSelectionManagerService),a=e.get(t.IUniverInstanceService),o=e.get(t.ICommandService),s=i.getActiveTextRange(),c=i.getTextRanges();if(s==null||c==null)return!1;let{segmentId:l,style:u}=s,d=a.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC),f=d==null?void 0:d.getSelfOrHeaderFooterModel(l).getBody();if(d==null||f==null)return!1;let p=s,m=d.getUnitId(),{startOffset:h,collapsed:g}=p;if(!g)return!1;let _=(r=f.paragraphs)==null?void 0:r.find(e=>e.startIndex===h-1);if(_==null)return!1;let v=[{startOffset:h,endOffset:h,style:u}],y={id:n.RichTextEditingMutation.id,params:{unitId:m,actions:[],textRanges:v}},b=new t.TextX,x=t.JSONX.getInstance();_.startIndex>0&&b.push({t:t.TextXActionType.RETAIN,len:_.startIndex}),b.push({t:t.TextXActionType.RETAIN,len:1,coverType:t.UpdateDocsAttributeType.REPLACE,body:{dataStream:``,paragraphs:[{...t.Tools.deepClone({..._,paragraphStyle:{..._.paragraphStyle,borderBottom:void 0}}),startIndex:0}]}});let S=R(d,l);return y.params.actions=x.editOp(b.serialize(),S),!!o.syncExecuteCommand(y.id,y.params)}};function Oe(e,t){let n=0;if(e==null||e.length===0){if(typeof t[0].startOffset==`number`){let e=t[0],{spanEntireRow:r,spanEntireTable:i}=e;n=i?e.startOffset-3:r?e.startRow>0?e.startOffset-6:e.startOffset:t[0].startOffset}}else if(e.length>0&&t.length>0){let r=e[0],i=t[0];if(r.startOffset!=null&&i.startOffset!=null){if(r.startOffset<i.startOffset)n=r.startOffset;else if(r.startOffset>=i.startOffset){let{spanEntireRow:e,spanEntireTable:t}=i;t?n=i.startOffset-3:e&&(n=i.startOffset-6)}}}return n}function ke(e,n){return e.dataStream[n.endIndex]===t.DataStreamTreeTokenType.BLOCK_END?n.endIndex:e.dataStream[n.endIndex+1]===t.DataStreamTreeTokenType.BLOCK_END?n.endIndex+1:n.endIndex}function Ae(e,t){var n,r;return(n=(r=e.blockRanges)==null?void 0:r.some(n=>{let r=ke(e,n);return n.startIndex<t&&t<r}))==null?!1:n}let je={id:`doc.command.delete-left`,type:t.CommandType.COMMAND,handler:async e=>{let i=e.get(n.DocSelectionManagerService),a=e.get(t.IUniverInstanceService),o=e.get(t.ICommandService),s=!0,c=a.getCurrentUniverDocInstance();if(c==null)return!1;let l=L(e,c.getUnitId()),u=i.getActiveTextRange(),d=i.getRectRanges(),f=i.getTextRanges(),p=l==null?void 0:l.getSkeleton();if(p==null)return!1;if(d!=null&&d.length){let e=Oe(f,d),t=d[0].segmentId,n=[{startOffset:e,endOffset:e}];return o.executeCommand(ye.id,{segmentId:t,textRanges:n})}if(u==null||f==null)return!1;let m=await Ne(e,je.id);if(m!=null)return m;let{segmentId:h,style:g,segmentPage:_}=u,v=c.getSelfOrHeaderFooterModel(h).getBody();if(v==null)return!1;let y=u,{startOffset:b,collapsed:x}=y;if(x){let e=Fe(v,b);if(e!=null)return Ie(o,c,h==null?``:h,e,g)}let S=p.findNodeByCharIndex(b,h,_),C=(0,r.hasListGlyph)(S),w=(0,r.isIndentByGlyph)(S,v),T=b,E=p.findNodeByCharIndex(b-1,h,_);if(!Ae(v,b)&&(0,r.isFirstGlyph)(S)&&E!==S&&(C===!0||w===!0)&&x){let e=(0,r.getParagraphByGlyph)(S,v);if(e==null)return!1;let n=e==null?void 0:e.startIndex,i={startIndex:0},a=e.paragraphStyle;if(C===!0){let t=e.paragraphStyle;if(t){i.paragraphStyle=t;let{hanging:e}=t;e&&(i.paragraphStyle.indentStart=e,i.paragraphStyle.hanging=void 0)}}else if(w===!0){let t=e.bullet;t&&(i.bullet=t),a!=null&&(i.paragraphStyle={...a},delete i.paragraphStyle.hanging,delete i.paragraphStyle.indentStart)}let l=[{startOffset:T,endOffset:T,style:g}];s=await o.executeCommand(Ce.id,{unitId:c.getUnitId(),updateBody:{dataStream:``,paragraphs:[{...i}]},range:{startOffset:n,endOffset:n+1},textRanges:l,coverType:t.UpdateDocsAttributeType.REPLACE,segmentId:h})}else if(x===!0){if(E==null)return!0;if(E.content===`\r`){var D,O;let e=(D=v.paragraphs)==null?void 0:D.find(e=>e.startIndex===b-1);s=!(e==null||(O=e.paragraphStyle)==null)&&O.borderBottom?await o.executeCommand(De.id):await o.executeCommand(Ee.id,{direction:0,range:y})}else if(E.streamType===`\b`){var k,A,j;let e=(k=c.getSnapshot().drawings)==null?void 0:k[(A=E.drawingId)==null?``:A];if(e==null)return!0;let n=(j=c.getBody())==null||(j=j.customBlocks)==null?void 0:j.find(e=>e.blockId===E.drawingId);if(e.layoutType===t.PositionedObjectLayoutType.INLINE||(n==null?void 0:n.blockType)===t.BlockType.CUSTOM){let e=c.getUnitId();s=await o.executeCommand(Te.id,{direction:0,range:u,unitId:e,drawingId:E.drawingId})}else{let e=p.findNodeByCharIndex(b-2);if(e==null)return!0;T-=E.count,T-=e.count;let t=[{startOffset:T,endOffset:T,style:g}];s=await o.executeCommand(Se.id,{unitId:c.getUnitId(),range:{...u,startOffset:u.startOffset-1,endOffset:u.endOffset-1},segmentId:h,direction:0,len:e.count,textRanges:t})}}else T-=E.count,s=await o.executeCommand(Se.id,{unitId:c.getUnitId(),range:y,segmentId:h,direction:0,len:E.count})}else{let e=Pe(y,[y]);s=await o.executeCommand(ye.id,{segmentId:h,textRanges:e,selections:[y]})}return s}},Me={id:`doc.command.delete-right`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(n.DocSelectionManagerService),i=e.get(t.IUniverInstanceService).getCurrentUniverDocInstance();if(!i)return!1;let a=L(e,i.getUnitId()),o=e.get(t.ICommandService),s=r.getActiveTextRange(),c=r.getRectRanges(),l=r.getTextRanges(),u=a==null?void 0:a.getSkeleton();if(c!=null&&c.length){let e=Oe(l,c),t=c[0].segmentId,n=[{startOffset:e,endOffset:e}];return o.executeCommand(ye.id,{segmentId:t,textRanges:n})}if(s==null||u==null||l==null)return!1;let d=await Ne(e,Me.id);if(d!=null)return d;let{segmentId:f,style:p,segmentPage:m}=s,h=i==null?void 0:i.getSelfOrHeaderFooterModel(f).getBody();if(!i||!h)return!1;let g=s,{startOffset:_,endOffset:v,collapsed:y}=g;if(y){let e=Fe(h,_);if(e!=null)return Ie(o,i,f==null?``:f,e,p)}if(_===h.dataStream.length-2&&y)return!0;let b=!1;if(y===!0){let e=u.findNodeByCharIndex(_,f,m),n=u.findNodeByCharIndex(_+1);if(e.streamType===t.DataStreamTreeTokenType.PARAGRAPH&&(n==null?void 0:n.streamType)===t.DataStreamTreeTokenType.SECTION_BREAK)return!1;if(e.content===`\r`)b=await o.executeCommand(Ee.id,{direction:1,range:s});else if(e.streamType===`\b`){var x,S;let r=(x=i.getSnapshot().drawings)==null?void 0:x[(S=e.drawingId)==null?``:S];if(r==null)return!0;if(r.layoutType===t.PositionedObjectLayoutType.INLINE){let t=i.getUnitId();b=await o.executeCommand(Te.id,{direction:1,range:s,unitId:t,drawingId:e.drawingId})}else{if(n==null)return!0;let e=[{startOffset:_+1,endOffset:_+1,style:p}];b=await o.executeCommand(Se.id,{unitId:i.getUnitId(),range:{...s,startOffset:_+1,endOffset:v+1},segmentId:f,direction:1,textRanges:e,len:n.count})}}else{let t=[{startOffset:_,endOffset:_,style:p}];b=await o.executeCommand(Se.id,{unitId:i.getUnitId(),range:g,segmentId:f,direction:1,textRanges:t,len:e.count})}}else{let e=Pe(g,[g]);b=await o.executeCommand(ye.id,{segmentId:f,textRanges:e,selections:[g]})}return b}};async function Ne(e,n){if(!e.has(j))return null;let r=e.get(t.ICommandService),i=e.get(j).onAutoFormat(n);return i.length?(await(0,t.sequenceExecuteAsync)(i,r)).result:null}function Pe(e,t){let n=e.endOffset;for(let r of t){let{startOffset:t,endOffset:i}=r;t==null||i==null||i<=e.endOffset&&(n-=i-t)}return[{startOffset:n,endOffset:n,style:e.style}]}function Fe(e,n){var r;let i=(r=e.paragraphs)==null?[]:r;for(let e=0;e<i.length;e++){var a;let r=i[e],o=e===0?0:i[e-1].startIndex+1;if(r.startIndex===o&&r.startIndex===n&&((a=r.paragraphStyle)==null?void 0:a.horizontalAlign)===t.HorizontalAlign.CENTER)return r}}function Ie(e,n,r,i,a){return e.executeCommand(Ce.id,{unitId:n.getUnitId(),updateBody:{dataStream:``,paragraphs:[{...i,startIndex:0,paragraphStyle:{...i.paragraphStyle,horizontalAlign:t.HorizontalAlign.LEFT}}]},range:{startOffset:i.startIndex,endOffset:i.startIndex+1},textRanges:[{startOffset:i.startIndex,endOffset:i.startIndex,collapsed:!0,style:a}],coverType:t.UpdateDocsAttributeType.REPLACE,segmentId:r})}let Le={id:`doc.command.delete-current-paragraph`,type:t.CommandType.COMMAND,handler:async e=>{var r,i;let a=e.get(t.IUniverInstanceService),o=e.get(t.ICommandService),s=a.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_DOC);if(!s)return!1;let c=(r=(i=s.getBody())==null?void 0:i.dataStream)==null?``:r,l=we(e);if(!l)return!1;let u=t.BuildTextUtils.selection.delete([{startOffset:l.paragraphStart,endOffset:c[l.paragraphEnd+1]===`
`?l.paragraphEnd:l.paragraphEnd+1,collapsed:!1}],s.getBody(),0,void 0,!0),d=R(s),f={unitId:s.getUnitId(),actions:t.JSONX.getInstance().editOp(u,d),textRanges:[{startOffset:l.paragraphStart,endOffset:l.paragraphStart,collapsed:!0}]};return o.syncExecuteCommand(n.RichTextEditingMutation.id,f)}};function Re(e){let t=e.match(/data-copy-id="([^\s]+)"/);return t&&t[1]?t[1]:null}let ze=new class{constructor(){O(this,`_cache`,new t.LRUMap(10))}set(e,t){this._cache.set(e,t)}get(e){return this._cache.get(e)}clear(){this._cache.clear()}};function Be(e){let n=e.style,i={},a=e.tagName.toLowerCase();switch(a){case`b`:case`em`:case`strong`:i.bl=t.BooleanNumber.TRUE;break;case`s`:i.st={s:t.BooleanNumber.TRUE};break;case`u`:i.ul={s:t.BooleanNumber.TRUE};break;case`i`:i.it=t.BooleanNumber.TRUE;break;case`sub`:case`sup`:i.va=a===`sup`?t.BaselineOffset.SUPERSCRIPT:t.BaselineOffset.SUBSCRIPT;break}for(let e=0;e<n.length;e++){let a=n[e],o=n.getPropertyValue(a);switch(a){case`font-family`:i.ff=o.replace(/^"/g,``).replace(/"$/g,``);break;case`font-size`:{let e=Number.parseInt(o);Number.isNaN(e)||(o.endsWith(`pt`)?i.fs=e:o.endsWith(`px`)&&(i.fs=(0,r.pixelToPt)(e)));break}case`font-style`:o===`italic`&&(i.it=t.BooleanNumber.TRUE);break;case`font-weight`:(Number(o)>400||String(o)===`bold`)&&(i.bl=t.BooleanNumber.TRUE);break;case`text-decoration`:/underline/.test(o)?i.ul={s:t.BooleanNumber.TRUE}:/overline/.test(o)?i.ol={s:t.BooleanNumber.TRUE}:/line-through/.test(o)&&(i.st={s:t.BooleanNumber.TRUE});break;case`color`:try{let e=new t.ColorKit(o);e.isValid&&(i.cl={rgb:e.toRgbString()})}catch{}break;case`background-color`:case`background`:{let e=new t.ColorKit(o);e.isValid&&(i.bg={rgb:e.toRgbString()});break}default:break}}return i}function Ve(e){let t=new DOMParser,n=`<x-univer id="univer-root">${e}</x-univer>`;return t.parseFromString(n,`text/html`).querySelector(`#univer-root`)}function He(e,t){let n=e.tagName.toLowerCase();return typeof t==`string`?n===t:Array.isArray(t)?t.some(e=>e===n):t(e)}var Ue=class e{constructor(){O(this,`_tableCache`,[]),O(this,`_styleCache`,new Map),O(this,`_styleRules`,[]),O(this,`_afterProcessRules`,[]),O(this,`_listStack`,[]),O(this,`_lastParagraphIndex`,-1)}static use(e){if(this._pluginList.includes(e))throw Error(`Univer paste plugin ${e.name} already added`);this._pluginList.push(e)}convert(t,n={}){var r,i,a;let o=e._pluginList.find(e=>e.checkPasteType(t)),s=Ve((r=o==null||(i=o.preprocessHtml)==null?void 0:i.call(o,t))==null?t:r),c={body:{dataStream:``,paragraphs:[],sectionBreaks:[],tables:[],textRuns:[],customBlocks:[]},tableSource:{},id:(a=n==null?void 0:n.unitId)==null?``:a};return o&&(this._styleRules=[...o.stylesRules],this._afterProcessRules=[...o.afterProcessRules]),this._tableCache=[],this._listStack=[],this._lastParagraphIndex=-1,this._styleCache.clear(),this._process(null,s.childNodes,c),this._styleCache.clear(),this._styleRules=[],this._afterProcessRules=[],c}_process(e,n,r){let i=r.body;for(let f of n)if(f.nodeType===Node.TEXT_NODE){let t=Ge(f);if(!t)continue;let n;e&&this._styleCache.has(e)&&(n=this._styleCache.get(e)),i.dataStream+=t,n&&Object.getOwnPropertyNames(n).length&&i.textRuns.push({st:i.dataStream.length-t.length,ed:i.dataStream.length,ts:n})}else if(f.nodeName===`IMG`){var o;let e=f,n=(o=e.dataset.imageSourceType)==null?e.src?Ke(e.src):void 0:o,p=n===a.ImageSourceType.UUID?e.dataset.source:e.src;if(p&&n){var s,c,l,u,d;let a=(s=st(e,`width`))==null?100:s,o=(c=st(e,`height`))==null?100:c,f=(l=at(e.dataset.docTransformWidth||null,null,`width`))==null?a:l,m=(u=at(e.dataset.docTransformHeight||null,null,`height`))==null?o:u,h=(0,t.generateRandomId)(6);(d=r.body)==null||(d=d.customBlocks)==null||d.push({startIndex:i.dataStream.length,blockId:h}),i.dataStream+=`\b`,r.drawings||(r.drawings={}),r.drawings[h]={drawingId:h,title:``,description:``,imageSourceType:n,source:p,transform:{width:a,height:o,left:0},docTransform:{size:{width:f,height:m},angle:0,positionH:{relativeFrom:t.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:t.ObjectRelativeFromV.PARAGRAPH,posOffset:0}},layoutType:t.PositionedObjectLayoutType.INLINE,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,unitId:r.id||``,subUnitId:r.id||``}}}else if(t.skipParseTagNames.includes(f.nodeName.toLowerCase()))continue;else if(f.nodeType===Node.ELEMENT_NODE){let t=f;if(t.tagName.toUpperCase()===`TABLE`){this._processHtmlTable(t,r);continue}if(this._processCodeBlock(t,r))continue;let n=this._processBeforeLink(t,r),i=this._processBeforeStructuredBlock(t,r),a=this._processBeforeList(t),o=e?this._styleCache.get(e):{},s=this._styleRules.find(({filter:e})=>He(f,e)),c=s?s.getStyle(f):Be(f);this._styleCache.set(f,{...o,...c});let{childNodes:l}=f;this._processBeforeTable(f,r),this._process(f,l,r),this._processAfterTable(f,r),this._processAfterList(a);let u=this._afterProcessRules.find(({filter:e})=>He(f,e)),d=!!u;u&&u.handler(r,f),this._processAfterDefaultBlock(t,r,d),this._processAfterStructuredBlock(t,r,i),this._processAfterLink(t,r,n)}}_processCodeBlock(e,n){var r;if(e.tagName.toUpperCase()!==`PRE`)return!1;let i=n.body,a=i.dataStream.length,o=(r=e.textContent)==null?``:r;return i.dataStream+=o,this._appendParagraph(n,e),i.blockRanges!=null||(i.blockRanges=[]),i.blockRanges.push({blockId:(0,t.generateRandomId)(6),blockType:`code`,startIndex:a,endIndex:i.dataStream.length-1}),!0}_processBeforeStructuredBlock(e,t){return ut(e)?t.body.dataStream.length:null}_processAfterStructuredBlock(e,n,r){let i=ut(e),a=n.body;!i||r==null||a.dataStream.length<=r||(a.blockRanges!=null||(a.blockRanges=[]),a.blockRanges.push({blockId:(0,t.generateRandomId)(6),blockType:i,startIndex:r,endIndex:a.dataStream.length-1}))}_processBeforeList(e){let n=e.tagName.toUpperCase();if(n!==`OL`&&n!==`UL`)return null;let r={listId:(0,t.generateRandomId)(6),listType:n===`OL`?t.PresetListType.ORDER_LIST:t.PresetListType.BULLET_LIST,nestingLevel:this._listStack.length};return this._listStack.push(r),r}_processAfterList(e){e&&this._listStack.pop()}_processAfterDefaultBlock(e,t,n){if(n){this._applyListInfo(e,t),this._lastParagraphIndex=t.body.dataStream.length-1;return}dt(e)&&this._appendParagraph(t,e)}_appendParagraph(e,n){var r;let i=e.body;if(i.dataStream[this._lastParagraphIndex]===`\r`&&this._lastParagraphIndex===i.dataStream.length-1)return;i.paragraphs!=null||(i.paragraphs=[]);let a={startIndex:i.dataStream.length},o=ft(n);o!=null&&(a.paragraphStyle={...a.paragraphStyle,headingId:(0,t.generateRandomId)(6),namedStyleType:o});let s=(r=this._listStack[this._listStack.length-1])==null?pt(n):r;s&&(a.bullet={listId:s.listId,listType:s.listType,nestingLevel:s.nestingLevel},a.startIndex-=mt(i)),i.paragraphs.push(a),i.dataStream+=`\r`,this._lastParagraphIndex=i.dataStream.length-1}_applyListInfo(e,t){var n;let r=this._listStack[this._listStack.length-1],i=pt(e),a=r==null?i:r,o=(n=t.body)==null||(n=n.paragraphs)==null?void 0:n[t.body.paragraphs.length-1];!a||!o||(o.bullet={listId:a.listId,listType:a.listType,nestingLevel:a.nestingLevel},i&&(o.startIndex-=mt(t.body)))}_processHtmlTable(e,n){let r=n.body;r.dataStream[r.dataStream.length-1]!==`\r`&&(r.dataStream+=`\r`,r.paragraphs!=null||(r.paragraphs=[]),r.paragraphs.push({startIndex:r.dataStream.length-1})),n.tableSource!=null||(n.tableSource={}),r.tables!=null||(r.tables=[]),r.sectionBreaks!=null||(r.sectionBreaks=[]);let i=We(e),a=Je(i),o=Math.max(1,...a.map(e=>e.length)),s=ne(0,o,660),c=at(e.getAttribute(`width`),e.getAttribute(`style`),`width`),l=Ze(e,a,o,c);s.tableRows=[],s.tableColumns=l.map(e=>te(e)),s.size={type:t.TableSizeType.SPECIFIED,width:{v:c==null?s.tableColumns.reduce((e,t)=>e+t.size.width.v,0):c}};let u=r.dataStream.length;r.dataStream+=t.DataStreamTreeTokenType.TABLE_START,a.forEach((e,a)=>{let c=ee(0),l=i[a],u=l?at(l.getAttribute(`height`),l.getAttribute(`style`),`height`):void 0;u!=null&&(c.trHeight={val:{v:u},hRule:t.TableRowHeightRule.EXACT}),s.tableRows.push(c),r.dataStream+=t.DataStreamTreeTokenType.TABLE_ROW_START;for(let t=0;t<o;t++){var d;let r=(d=e[t])==null?{element:null,rowSpan:1,colSpan:1,covered:!0}:d,i=r.covered?{...H(),rowSpan:0,columnSpan:0}:Qe(r.element,r.rowSpan,r.colSpan);c.tableCells.push(i),this._appendHtmlTableCell(r,n)}r.dataStream+=t.DataStreamTreeTokenType.TABLE_ROW_END}),n.tableSource[s.tableId]=s,r.dataStream+=t.DataStreamTreeTokenType.TABLE_END,r.tables.push({startIndex:u,endIndex:r.dataStream.length,tableId:s.tableId})}_appendHtmlTableCell(e,n){let r=n.body;if(r.dataStream+=t.DataStreamTreeTokenType.TABLE_CELL_START,e.element&&!e.covered&&this._process(e.element,e.element.childNodes,n),r.dataStream[r.dataStream.length-1]!==`\r`){var i;this._appendParagraph(n,(i=e.element)==null?document.createElement(`td`):i)}r.sectionBreaks!=null||(r.sectionBreaks=[]),r.sectionBreaks.push({startIndex:r.dataStream.length}),r.dataStream+=`\n${t.DataStreamTreeTokenType.TABLE_CELL_END}`}_processBeforeTable(e,n){let r=e.tagName.toUpperCase(),i=n.body;switch(r){case`TABLE`:{if(i.dataStream[i.dataStream.length-1]!==`\r`){var a;i.dataStream+=`\r`,i.paragraphs==null&&(i.paragraphs=[]),(a=i.paragraphs)==null||a.push({startIndex:i.dataStream.length-1})}let e=ne(0,0,660);this._tableCache.push({table:e,startIndex:i.dataStream.length}),i.dataStream+=t.DataStreamTreeTokenType.TABLE_START;break}case`TR`:{let e=ee(0);this._tableCache[this._tableCache.length-1].table.tableRows.push(e),i.dataStream+=t.DataStreamTreeTokenType.TABLE_ROW_START;break}case`TD`:{let e=H(),n=this._tableCache[this._tableCache.length-1].table;n.tableRows[n.tableRows.length-1].tableCells.push(e),i.dataStream+=t.DataStreamTreeTokenType.TABLE_CELL_START;break}}}_processAfterTable(e,n){let r=e.tagName.toUpperCase(),i=n.body;n.tableSource==null&&(n.tableSource={}),i.tables==null&&(i.tables=[]),i.sectionBreaks==null&&(i.sectionBreaks=[]);let{tableSource:a}=n;switch(r){case`TABLE`:{let{startIndex:e,table:n}=this._tableCache.pop(),r=n.tableRows[0].tableCells.length,o=te(660/r);n.tableColumns=[...Array(r).fill(null).map(()=>t.Tools.deepClone(o))],a[n.tableId]=n,i.dataStream+=t.DataStreamTreeTokenType.TABLE_END,i.tables.push({startIndex:e,endIndex:i.dataStream.length,tableId:n.tableId});break}case`TR`:i.dataStream+=t.DataStreamTreeTokenType.TABLE_ROW_END;break;case`TD`:var o;if(i.dataStream[i.dataStream.length-1]!==`\r`){var s;(s=i.paragraphs)==null||s.push({startIndex:i.dataStream.length}),i.dataStream+=`\r`}(o=i.sectionBreaks)==null||o.push({startIndex:i.dataStream.length}),i.dataStream+=`\n${t.DataStreamTreeTokenType.TABLE_CELL_END}`;break}}_processBeforeLink(e,t){return t.body.dataStream.length}_processAfterLink(e,n,r){let i=n.body,a=e;if(a.tagName.toUpperCase()===`A`){var o,s;let e=a.href;if(!(0,t.isSafeUrl)(e))return;i.customRanges=(o=i.customRanges)==null?[]:o,i.customRanges.push({startIndex:r,endIndex:i.dataStream.length-1,rangeId:(s=a.dataset.rangeid)==null?(0,t.generateRandomId)():s,rangeType:t.CustomRangeType.HYPERLINK,properties:{url:e}})}}};O(Ue,`_pluginList`,[]);function We(e){let t=[];return Array.from(e.children).forEach(e=>{let n=e.tagName.toUpperCase();n===`TR`?t.push(e):(n===`TBODY`||n===`THEAD`||n===`TFOOT`)&&t.push(...Array.from(e.children).filter(e=>e.tagName.toUpperCase()===`TR`))}),t}function Ge(e){var t;let n=(t=e.nodeValue)==null?``:t;if(n.includes(``))return n.replace(/[\t\u00A0]+/g,` `).replace(/[ \r\n]+/g,` `).replace(/ *\uE000+ */g,e=>` `.repeat(Array.from(e).filter(e=>e===``).length));let r=/[\t\u00A0]/.test(n),i=n.replace(/[\t\u00A0]+/g,` `).replace(/[ \r\n]+/g,` `);return i.trim()?i:r&&qe(e.previousSibling,`previous`)&&qe(e.nextSibling,`next`)?` `:``}function Ke(e){return e.startsWith(`data:image/`)?a.ImageSourceType.BASE64:a.ImageSourceType.URL}function qe(e,t){let n=e;for(;n;){var r,i;if(n.nodeType===Node.TEXT_NODE&&(r=n.nodeValue)!=null&&r.trim()||n.nodeType===Node.ELEMENT_NODE&&((i=n.textContent)==null?``:i).trim())return!0;n=t===`previous`?n.previousSibling:n.nextSibling}return!1}function Je(e){let t=[],n=new Set;e.forEach((e,r)=>{let i=[],a=0;for(Ye(e).forEach(e=>{for(var t,o;n.has(`${r}:${a}`);)i[a]={element:null,rowSpan:1,colSpan:1,cov