@univerjs/docs-ui 0.5.4 → 0.5.5-experimental.20250122-3362a4a

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.
Files changed (58) hide show
  1. package/lib/cjs/facade.js +1 -1
  2. package/lib/cjs/index.js +23 -30
  3. package/lib/cjs/locale/en-US.js +1 -1
  4. package/lib/cjs/locale/fa-IR.js +1 -1
  5. package/lib/cjs/locale/fr-FR.js +1 -1
  6. package/lib/cjs/locale/ru-RU.js +1 -1
  7. package/lib/cjs/locale/vi-VN.js +1 -1
  8. package/lib/cjs/locale/zh-CN.js +1 -1
  9. package/lib/cjs/locale/zh-TW.js +1 -1
  10. package/lib/es/facade.js +61 -58
  11. package/lib/es/index.js +7679 -7808
  12. package/lib/es/locale/en-US.js +2 -2
  13. package/lib/es/locale/fa-IR.js +2 -2
  14. package/lib/es/locale/fr-FR.js +2 -2
  15. package/lib/es/locale/ru-RU.js +2 -2
  16. package/lib/es/locale/vi-VN.js +2 -2
  17. package/lib/es/locale/zh-CN.js +2 -2
  18. package/lib/es/locale/zh-TW.js +2 -2
  19. package/lib/index.css +1 -1
  20. package/lib/types/basics/custom-decoration-factory.d.ts +1 -0
  21. package/lib/types/basics/paragraph.d.ts +1 -1
  22. package/lib/types/commands/commands/replace-content.command.d.ts +1 -0
  23. package/lib/types/components/list-type-picker/picker.d.ts +3 -4
  24. package/lib/types/controllers/doc-container-ui-controller.d.ts +1 -1
  25. package/lib/types/controllers/render-controllers/doc-editor-bridge.controller.d.ts +0 -3
  26. package/lib/types/facade/f-document.d.ts +3 -0
  27. package/lib/types/index.d.ts +3 -2
  28. package/lib/types/services/editor/editor-manager.service.d.ts +5 -177
  29. package/lib/types/services/editor/editor.d.ts +15 -77
  30. package/lib/types/services/selection/doc-selection-render.service.d.ts +7 -10
  31. package/lib/types/views/count-bar/CountBar.d.ts +16 -2
  32. package/lib/types/views/count-bar/ZoomSlider.d.ts +16 -2
  33. package/lib/types/views/doc-container/DocContainer.d.ts +5 -5
  34. package/lib/types/views/doc-footer/DocFooter.d.ts +16 -2
  35. package/lib/types/views/header-footer/panel/DocHeaderFooterOptions.d.ts +16 -2
  36. package/lib/types/views/header-footer/panel/DocHeaderFooterPanel.d.ts +16 -2
  37. package/lib/types/views/paragraph-setting/Setting.d.ts +1 -2
  38. package/lib/types/views/paragraph-setting/index.d.ts +16 -2
  39. package/lib/types/views/rich-text-editor/hooks/index.d.ts +17 -0
  40. package/lib/types/views/rich-text-editor/hooks/useEditor.d.ts +11 -0
  41. package/lib/types/views/rich-text-editor/hooks/useKeyboardEvent.d.ts +10 -0
  42. package/lib/types/views/rich-text-editor/hooks/useLeftAndRightArrow.d.ts +3 -0
  43. package/lib/types/views/rich-text-editor/hooks/useOnChange.d.ts +3 -0
  44. package/lib/types/views/rich-text-editor/index.d.ts +22 -0
  45. package/lib/types/views/table/create/TableCreate.d.ts +16 -2
  46. package/lib/umd/facade.js +1 -1
  47. package/lib/umd/index.js +23 -30
  48. package/lib/umd/locale/en-US.js +1 -1
  49. package/lib/umd/locale/fa-IR.js +1 -1
  50. package/lib/umd/locale/fr-FR.js +1 -1
  51. package/lib/umd/locale/ru-RU.js +1 -1
  52. package/lib/umd/locale/vi-VN.js +1 -1
  53. package/lib/umd/locale/zh-CN.js +1 -1
  54. package/lib/umd/locale/zh-TW.js +1 -1
  55. package/package.json +10 -11
  56. package/LICENSE +0 -176
  57. package/lib/types/components/editor/TextEditor.d.ts +0 -36
  58. package/lib/types/components/range-selector/RangeSelector.d.ts +0 -24
package/lib/umd/index.js CHANGED
@@ -1,19 +1,11 @@
1
- (function(C,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("react"),require("@univerjs/engine-formula"),require("rxjs"),require("@univerjs/ui"),require("rxjs/operators"),require("@univerjs/design"),require("@univerjs/drawing")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/docs","@univerjs/engine-render","react","@univerjs/engine-formula","rxjs","@univerjs/ui","rxjs/operators","@univerjs/design","@univerjs/drawing"],s):(C=typeof globalThis<"u"?globalThis:C||self,s(C.UniverDocsUi={},C.UniverCore,C.UniverDocs,C.UniverEngineRender,C.React,C.UniverEngineFormula,C.rxjs,C.UniverUi,C.rxjs.operators,C.UniverDesign,C.UniverDrawing))})(this,function(C,s,D,M,Q,Me,N,y,yt,se,jn){"use strict";var td=Object.defineProperty;var nd=(C,s,D)=>s in C?td(C,s,{enumerable:!0,configurable:!0,writable:!0,value:D}):C[s]=D;var R=(C,s,D)=>nd(C,typeof s!="symbol"?s+"":s,D);function Js(i){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const e in i)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(i,e);Object.defineProperty(t,e,n.get?n:{enumerable:!0,get:()=>i[e]})}}return t.default=i,Object.freeze(t)}const Zs=Js(Q);var qs=Object.defineProperty,$s=Object.getOwnPropertyDescriptor,ea=(i,t,e,n)=>{for(var o=n>1?void 0:n?$s(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&qs(t,e,o),o},no=(i,t)=>(e,n)=>t(e,n,i);function ta(i,t){var r,c;const{startOffset:e,endOffset:n}=i,o=[];let a=-1;for(let l=0;l<t.length;l++){const A=t[l],d=t[l-1],{startIndex:u}=A;e>a&&e<=u||n>a&&n<=u?o.push({...A,paragraphStart:((r=d==null?void 0:d.startIndex)!=null?r:-1)+1,paragraphEnd:A.startIndex}):u>=e&&u<=n&&o.push({...A,paragraphStart:((c=d==null?void 0:d.startIndex)!=null?c:-1)+1,paragraphEnd:A.startIndex}),a=u}return o}C.DocAutoFormatService=class extends s.Disposable{constructor(e,n){super();R(this,"_matches",new Map);this._univerInstanceService=e,this._textSelectionManagerService=n}registerAutoFormat(e){const n=this._matches.get(e.id);return n?(n.push(e),n.sort((o,a)=>{var r,c;return((r=a.priority)!=null?r:0)-((c=o.priority)!=null?c:0)})):this._matches.set(e.id,[e]),s.toDisposable(()=>{const o=this._matches.get(e.id);if(o){const a=o.findIndex(r=>r===e);a>=0&&o.splice(a,1)}})}onAutoFormat(e,n){var l,A,d,u,f,h,m;const o=(l=this._matches.get(e))!=null?l:[],a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),r=this._textSelectionManagerService.getDocRanges(),c=(A=r.find(g=>g.isActive))!=null?A:r[0];if(a&&c){const g=a.getSelfOrHeaderFooterModel(c.segmentId),p={unit:g,selection:c,isBody:!c.segmentId,paragraphs:ta(c,(u=(d=g.getBody())==null?void 0:d.paragraphs)!=null?u:[]),customRanges:s.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(c,(h=(f=g.getBody())==null?void 0:f.customRanges)!=null?h:[]),commandId:e,commandParams:n},S=o.find(I=>I.match(p));return(m=S==null?void 0:S.getMutations(p))!=null?m:[]}return[]}},C.DocAutoFormatService=ea([no(0,s.IUniverInstanceService),no(1,s.Inject(D.DocSelectionManagerService))],C.DocAutoFormatService);const io={undo:!0,redo:!0,font:!0,fontSize:!0,bold:!0,italic:!0,strikethrough:!0,underline:!0,textColor:!0,fillColor:!0,horizontalAlignMode:!0,verticalAlignMode:!0,textWrapMode:!0,textRotateMode:!0},oo={outerLeft:!1,outerRight:!1,header:!0,footer:!0,innerLeft:!1,innerRight:!1,frozenHeaderLT:!1,frozenHeaderRT:!1,frozenHeaderLM:!1,frozenContent:!1,infoBar:!0,toolbar:!0},so="DOC_UI_PLUGIN";var Ie=(i=>(i.MAIN="__Document_Render_Main__",i.BACKGROUND="__Document_Render_Background__",i))(Ie||{}),be=(i=>(i.VIEW_MAIN="viewMain",i.VIEW_TOP="viewTop",i.VIEW_LEFT="viewLeft",i.VIEW_LEFT_TOP="viewLeftTop",i))(be||{});const ao=0,Yt=2,ro=4,Wn=10,na="normalTextSelectionPluginName";function Be(i){const{mainComponent:t,scene:e,engine:n,components:o}=i,a=t,r=o.get(Ie.BACKGROUND);return{document:a,docBackground:r,scene:e,engine:n}}function co(i,t){const e=i.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(!e)return null;const n=e.getUnitId(),o=t.getRenderById(n);if(o==null)return;const{mainComponent:a,scene:r,engine:c,components:l}=o,A=a,d=l.get(Ie.BACKGROUND);return{document:A,docBackground:d,scene:r,engine:c}}function ia(i,t){const e=t.getRenderById(i);if(e==null)return;const{mainComponent:n,scene:o,engine:a,components:r}=e,c=n,l=r.get(Ie.BACKGROUND);return{document:c,docBackground:l,scene:o,engine:a}}function lo(i){const{unitId:t,ranges:e,id:n,type:o,segmentId:a}=i,r={id:D.RichTextEditingMutation.id,params:{unitId:t,actions:[],textRanges:void 0,segmentId:a}},c=s.JSONX.getInstance(),l=s.BuildTextUtils.customDecoration.add({ranges:e,id:n,type:o});return r.params.actions=c.editOp(l.serialize()),r}function oa(i,t){const{segmentId:e,id:n,type:o}=t,a=i.get(D.DocSelectionManagerService),c=i.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(!c)return!1;const l=c.getUnitId(),A=a.getTextRanges({unitId:l,subUnitId:l});return!A||!c.getBody()?!1:lo({unitId:l,ranges:A,id:n,type:o,segmentId:e})}function sa(i,t){const{unitId:e,id:n,segmentId:o}=t,r=i.get(s.IUniverInstanceService).getUnit(e);if(!r)return!1;const c={id:D.RichTextEditingMutation.id,params:{unitId:e,actions:[],textRanges:void 0,segmentId:o}},l=s.BuildTextUtils.customDecoration.delete({id:n,segmentId:o,documentDataModel:r});if(!l)return!1;const A=s.JSONX.getInstance();return c.params.actions=A.editOp(l.serialize()),c}function aa(i,t){return t.some(e=>i.startIndex>e.startIndex&&i.startIndex<e.endIndex)}function Xt(i,t,e,n){const o={st:0,ed:0,ts:e};for(let a=i.length-1;a>=0;a--){const r=i[a],{st:c,ed:l}=r;t>c&&t<=l&&(o.st=c,o.ed=l,o.ts={...o.ts,...r.ts})}return n&&(o.ts={...o.ts,...n}),o}function zn(i,t,e){return e?i.find(n=>t>=n.startIndex&&t<=n.endIndex+1):i.find(n=>t>n.startIndex&&t<=n.endIndex)}function Gn(i,t){return i.filter(e=>t>e.startIndex&&t<=e.endIndex)}function ra(i){return{left:i.positionH.posOffset,top:i.positionV.posOffset,width:i.size.width,height:i.size.height}}function ca(i,t=0,e=0){return{size:{width:i.width,height:i.height},positionH:{relativeFrom:s.ObjectRelativeFromH.MARGIN,posOffset:(i.left||0)-t},positionV:{relativeFrom:s.ObjectRelativeFromV.PAGE,posOffset:(i.top||0)-e},angle:i.angle||0}}function fe(i,t){var n;return(n=i.get(M.IRenderManagerService).getRenderById(t))==null?void 0:n.with(D.DocSkeletonManagerService)}function te(i,t=""){if(!t)return["body"];const{headers:e,footers:n}=i.getSnapshot();if(e==null&&n==null)throw new Error("Document data model must have headers or footers when update by segment id");if((e==null?void 0:e[t])!=null)return["headers",t,"body"];if((n==null?void 0:n[t])!=null)return["footers",t,"body"];throw new Error("Segment id not found in headers or footers")}var Yn={exports:{}},Rt={};/**
2
- * @license React
3
- * react-jsx-runtime.production.min.js
4
- *
5
- * Copyright (c) Facebook, Inc. and its affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */var Ao;function la(){if(Ao)return Rt;Ao=1;var i=Q,t=Symbol.for("react.element"),e=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,o=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function r(c,l,A){var d,u={},f=null,h=null;A!==void 0&&(f=""+A),l.key!==void 0&&(f=""+l.key),l.ref!==void 0&&(h=l.ref);for(d in l)n.call(l,d)&&!a.hasOwnProperty(d)&&(u[d]=l[d]);if(c&&c.defaultProps)for(d in l=c.defaultProps,l)u[d]===void 0&&(u[d]=l[d]);return{$$typeof:t,type:c,key:f,ref:h,props:u,_owner:o.current}}return Rt.Fragment=e,Rt.jsx=r,Rt.jsxs=r,Rt}var uo;function Aa(){return uo||(uo=1,Yn.exports=la()),Yn.exports}var P=Aa();function da(i){if(!i)return!1;const t=window.getComputedStyle(i);if(t.display==="none"||t.visibility==="hidden"||t.opacity==="0")return!1;const e=i.getBoundingClientRect();return!(e.width===0||e.height===0||e.bottom<0||e.top>window.innerHeight||e.right<0||e.left>window.innerWidth)}const Xn={id:"doc.command-replace-snapshot",type:s.CommandType.COMMAND,handler:async(i,t)=>{const{unitId:e,snapshot:n,textRanges:o,segmentId:a="",options:r}=t,c=i.get(s.IUniverInstanceService),l=i.get(s.ICommandService),A=i.get(D.DocSelectionManagerService),d=c.getUnit(e,s.UniverInstanceType.UNIVER_DOC),u=d==null?void 0:d.getSelfOrHeaderFooterModel(a).getSnapshot();if(d==null||u==null)return!1;const{body:f,tableSource:h,footers:m,headers:g,lists:p,drawings:S,drawingsOrder:I}=n,{body:E,tableSource:T,footers:O,headers:v,lists:b,drawings:_,drawingsOrder:B}=u;if(f==null||E==null)return!1;if(s.Tools.diffValue(f,E)&&o)return A.replaceDocRanges(o,{unitId:e,subUnitId:e},!1),!0;const w={id:D.RichTextEditingMutation.id,params:{unitId:e,actions:[],textRanges:o}};r&&(w.params.options=r);const x=[],U=s.JSONX.getInstance();if(!s.Tools.diffValue(f,E)){const F=U.replaceOp(["body"],E,f);F!=null&&x.push(F)}if(!s.Tools.diffValue(h,T)){const F=U.replaceOp(["tableSource"],T,h);F!=null&&x.push(F)}if(!s.Tools.diffValue(m,O)){const F=U.replaceOp(["footers"],O,m);F!=null&&x.push(F)}if(!s.Tools.diffValue(g,v)){const F=U.replaceOp(["headers"],v,g);F!=null&&x.push(F)}if(!s.Tools.diffValue(p,b)){const F=U.replaceOp(["lists"],b,p);F!=null&&x.push(F)}if(!s.Tools.diffValue(S,_)){const F=U.replaceOp(["drawings"],_,S);F!=null&&x.push(F)}if(!s.Tools.diffValue(I,B)){const F=U.replaceOp(["drawingsOrder"],B,I);F!=null&&x.push(F)}return w.params.actions=x.reduce((F,H)=>s.JSONX.compose(F,H),null),!!l.syncExecuteCommand(w.id,w.params)}},ho={id:"doc.command-replace-content",type:s.CommandType.COMMAND,handler:async(i,t)=>{const{unitId:e,body:n,textRanges:o,segmentId:a="",options:r}=t,c=i.get(s.IUniverInstanceService),l=i.get(s.ICommandService),A=i.get(D.DocSelectionManagerService),d=c.getUnit(e,s.UniverInstanceType.UNIVER_DOC),u=d==null?void 0:d.getSelfOrHeaderFooterModel(a).getSnapshot().body;if(d==null||u==null)return!1;const f=go(e,a,d,u,n);return f.params.textRanges=o,r&&(f.params.options=r),f.params.actions==null&&o?(A.replaceDocRanges(o,{unitId:e,subUnitId:e},!1),!0):!!l.syncExecuteCommand(f.id,f.params)}},Kn={id:"doc.command-cover-content",type:s.CommandType.COMMAND,handler:async(i,t)=>{const{unitId:e,body:n,segmentId:o=""}=t,a=i.get(s.IUniverInstanceService),r=i.get(s.ICommandService),c=i.get(s.IUndoRedoService),l=a.getUniverDocInstance(e),A=l==null?void 0:l.getSnapshot().body;if(l==null||A==null)return!1;const d=go(e,o,l,A,n);return d.params.noNeedSetTextRange=!0,d.params.noHistory=!0,r.syncExecuteCommand(d.id,d.params),c.clearUndoRedo(e),!0}};function ua(i,t,e,n){const o=new s.TextX,a=s.JSONX.getInstance(),r=(e==null?void 0:e.dataStream.length)-2;r>0&&o.push({t:s.TextXActionType.DELETE,len:r}),n.dataStream.length>0&&o.push({t:s.TextXActionType.INSERT,body:n,len:n.dataStream.length});const c=te(t,i);return a.editOp(o.serialize(),c)}function go(i,t,e,n,o){const a={id:D.RichTextEditingMutation.id,params:{unitId:i,actions:[],textRanges:[]}},r=ua(t,e,n,o);return a.params.actions=r,a}s.CommandType.COMMAND;var Kt=(i=>(i[i.page=0]="page",i[i.section=1]="section",i[i.column=2]="column",i[i.line=3]="line",i[i.divide=4]="divide",i[i.glyph=5]="glyph",i))(Kt||{});const rt={page:0,section:1,column:2,line:3,divide:4,glyph:5};function Jn(i,t){return i.page>t.page?!1:i.page<t.page?!0:i.section>t.section?!1:i.section<t.section?!0:i.column>t.column?!1:i.column<t.column?!0:i.line>t.line?!1:i.line<t.line?!0:i.divide>t.divide?!1:i.divide<t.divide?!0:i.glyph>t.glyph?!1:(i.glyph<t.glyph,!0)}function Zn(i,t){return Jn(i,t)?{start:i,end:t}:{start:t,end:i}}function qn(i){const t=i.length;if(t===0)return;const e=i[0],n=i[t-1],o=i.length===1&&e.collapsed;return{startOffset:e.startOffset,endOffset:n.endOffset,collapsed:o}}function ha(i,t,e,n){let o=n,a=n;for(let r=0;r<i.length;r++){const l=i[r].count;r<t&&(o+=l),r<e&&(a+=l)}return{startOffset:o,endOffset:a}}function $n(i){const{startX:t,startY:e,endX:n,endY:o}=i,a=[];return a.push({x:t,y:e}),a.push({x:n,y:e}),a.push({x:n,y:o}),a.push({x:t,y:o}),a.push({x:t,y:e}),a}class De{constructor(t,e){R(this,"_liquid",new M.Liquid);R(this,"_currentStartState",{page:0,section:0,column:0,line:0,divide:0,glyph:0});R(this,"_currentEndState",{page:0,section:0,column:0,line:0,divide:0,glyph:0});this._documentOffsetConfig=t,this._docSkeleton=e}getRangePointData(t,e){const n=[],o=[],a=[];if(t==null||e==null)return{borderBoxPointGroup:n,contentBoxPointGroup:o,cursorList:a};if(!this._isValidPosition(t,e))throw new Error(`
1
+ (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("react"),require("react/jsx-runtime"),require("rxjs"),require("rxjs/operators"),require("@univerjs/design"),require("@univerjs/drawing")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/docs","@univerjs/engine-render","@univerjs/ui","react","react/jsx-runtime","rxjs","rxjs/operators","@univerjs/design","@univerjs/drawing"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.UniverDocsUi={},global.UniverCore,global.UniverDocs,global.UniverEngineRender,global.UniverUi,global.React,global.React,global.rxjs,global.rxjs.operators,global.UniverDesign,global.UniverDrawing))})(this,function(exports2,core,docs,engineRender,ui,React,jsxRuntime,rxjs,operators,design,drawing){"use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);var _a,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x,_y,_z,_A,_B,_C;function _interopNamespaceDefault(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const k in e)if(k!=="default"){const d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:!0,get:__name(()=>e[k],"get")})}}return n.default=e,Object.freeze(n)}__name(_interopNamespaceDefault,"_interopNamespaceDefault");const React__namespace=_interopNamespaceDefault(React);var __defProp$s=Object.defineProperty,__getOwnPropDesc$s=Object.getOwnPropertyDescriptor,__decorateClass$s=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$s(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$s(target,key,result),result},"__decorateClass$s"),__decorateParam$s=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$s");function getParagraphsInRange$1(activeRange,paragraphs){var _a2,_b2;const{startOffset,endOffset}=activeRange,results=[];let start=-1;for(let i=0;i<paragraphs.length;i++){const paragraph=paragraphs[i],prevParagraph=paragraphs[i-1],{startIndex}=paragraph;startOffset>start&&startOffset<=startIndex||endOffset>start&&endOffset<=startIndex?results.push({...paragraph,paragraphStart:((_a2=prevParagraph==null?void 0:prevParagraph.startIndex)!=null?_a2:-1)+1,paragraphEnd:paragraph.startIndex}):startIndex>=startOffset&&startIndex<=endOffset&&results.push({...paragraph,paragraphStart:((_b2=prevParagraph==null?void 0:prevParagraph.startIndex)!=null?_b2:-1)+1,paragraphEnd:paragraph.startIndex}),start=startIndex}return results}__name(getParagraphsInRange$1,"getParagraphsInRange$1"),exports2.DocAutoFormatService=(_a=class extends core.Disposable{constructor(_univerInstanceService,_textSelectionManagerService){super();__publicField(this,"_matches",new Map);this._univerInstanceService=_univerInstanceService,this._textSelectionManagerService=_textSelectionManagerService}registerAutoFormat(match){const matchList=this._matches.get(match.id);return matchList?(matchList.push(match),matchList.sort((a,b)=>{var _a2,_b2;return((_a2=b.priority)!=null?_a2:0)-((_b2=a.priority)!=null?_b2:0)})):this._matches.set(match.id,[match]),core.toDisposable(()=>{const matchList2=this._matches.get(match.id);if(matchList2){const index=matchList2.findIndex(i=>i===match);index>=0&&matchList2.splice(index,1)}})}onAutoFormat(id,params){var _a2,_b2,_c2,_d2,_e2,_f2,_g2;const autoFormats=(_a2=this._matches.get(id))!=null?_a2:[],unit=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),docRanges=this._textSelectionManagerService.getDocRanges(),selection=(_b2=docRanges.find(range=>range.isActive))!=null?_b2:docRanges[0];if(unit&&selection){const doc=unit.getSelfOrHeaderFooterModel(selection.segmentId),context={unit:doc,selection,isBody:!selection.segmentId,paragraphs:getParagraphsInRange$1(selection,(_d2=(_c2=doc.getBody())==null?void 0:_c2.paragraphs)!=null?_d2:[]),customRanges:core.BuildTextUtils.customRange.getCustomRangesInterestsWithSelection(selection,(_f2=(_e2=doc.getBody())==null?void 0:_e2.customRanges)!=null?_f2:[]),commandId:id,commandParams:params},matched=autoFormats.find(i=>i.match(context));return(_g2=matched==null?void 0:matched.getMutations(context))!=null?_g2:[]}return[]}},__name(_a,"DocAutoFormatService"),_a),exports2.DocAutoFormatService=__decorateClass$s([__decorateParam$s(0,core.IUniverInstanceService),__decorateParam$s(1,core.Inject(docs.DocSelectionManagerService))],exports2.DocAutoFormatService);const DefaultToolbarConfig={undo:!0,redo:!0,font:!0,fontSize:!0,bold:!0,italic:!0,strikethrough:!0,underline:!0,textColor:!0,fillColor:!0,horizontalAlignMode:!0,verticalAlignMode:!0,textWrapMode:!0,textRotateMode:!0},DefaultDocContainerConfig={outerLeft:!1,outerRight:!1,header:!0,footer:!0,innerLeft:!1,innerRight:!1,frozenHeaderLT:!1,frozenHeaderRT:!1,frozenHeaderLM:!1,frozenContent:!1,infoBar:!0,toolbar:!0},DOC_UI_PLUGIN_NAME="DOC_UI_PLUGIN";var DOCS_VIEW_KEY=(DOCS_VIEW_KEY2=>(DOCS_VIEW_KEY2.MAIN="__Document_Render_Main__",DOCS_VIEW_KEY2.BACKGROUND="__Document_Render_Background__",DOCS_VIEW_KEY2))(DOCS_VIEW_KEY||{}),VIEWPORT_KEY=(VIEWPORT_KEY2=>(VIEWPORT_KEY2.VIEW_MAIN="viewMain",VIEWPORT_KEY2.VIEW_TOP="viewTop",VIEWPORT_KEY2.VIEW_LEFT="viewLeft",VIEWPORT_KEY2.VIEW_LEFT_TOP="viewLeftTop",VIEWPORT_KEY2))(VIEWPORT_KEY||{});const DOCS_COMPONENT_BACKGROUND_LAYER_INDEX=0,DOCS_COMPONENT_MAIN_LAYER_INDEX=2,DOCS_COMPONENT_HEADER_LAYER_INDEX=4,DOCS_COMPONENT_DEFAULT_Z_INDEX=10,NORMAL_TEXT_SELECTION_PLUGIN_NAME="normalTextSelectionPluginName";function neoGetDocObject(renderContext){const{mainComponent,scene,engine,components}=renderContext,document2=mainComponent,docBackground=components.get(DOCS_VIEW_KEY.BACKGROUND);return{document:document2,docBackground,scene,engine}}__name(neoGetDocObject,"neoGetDocObject");function getDocObject(univerInstanceService,renderManagerService){const documentModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);if(!documentModel)return null;const unitId=documentModel.getUnitId(),currentRender=renderManagerService.getRenderById(unitId);if(currentRender==null)return;const{mainComponent,scene,engine,components}=currentRender,document2=mainComponent,docBackground=components.get(DOCS_VIEW_KEY.BACKGROUND);return{document:document2,docBackground,scene,engine}}__name(getDocObject,"getDocObject");function getDocObjectById(unitId,renderManagerService){const currentRender=renderManagerService.getRenderById(unitId);if(currentRender==null)return;const{mainComponent,scene,engine,components}=currentRender,document2=mainComponent,docBackground=components.get(DOCS_VIEW_KEY.BACKGROUND);return{document:document2,docBackground,scene,engine}}__name(getDocObjectById,"getDocObjectById");function addCustomDecorationFactory(param){const{unitId,ranges,id,type,segmentId}=param,doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:void 0,segmentId}},jsonX=core.JSONX.getInstance(),textX=core.BuildTextUtils.customDecoration.add({ranges,id,type});return doMutation.params.actions=jsonX.editOp(textX.serialize()),doMutation}__name(addCustomDecorationFactory,"addCustomDecorationFactory");function addCustomDecorationBySelectionFactory(accessor,param){const{segmentId,id,type,unitId:propUnitId}=param,docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),documentDataModel=propUnitId?univerInstanceService.getUnit(propUnitId,core.UniverInstanceType.UNIVER_DOC):univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);if(!documentDataModel)return!1;const unitId=documentDataModel.getUnitId(),selections=docSelectionManagerService.getTextRanges({unitId,subUnitId:unitId});return!selections||!documentDataModel.getBody()?!1:addCustomDecorationFactory({unitId,ranges:selections,id,type,segmentId})}__name(addCustomDecorationBySelectionFactory,"addCustomDecorationBySelectionFactory");function deleteCustomDecorationFactory(accessor,params){const{unitId,id,segmentId}=params,documentDataModel=accessor.get(core.IUniverInstanceService).getUnit(unitId);if(!documentDataModel)return!1;const doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:void 0,segmentId}},textX=core.BuildTextUtils.customDecoration.delete({id,segmentId,documentDataModel});if(!textX)return!1;const jsonX=core.JSONX.getInstance();return doMutation.params.actions=jsonX.editOp(textX.serialize()),doMutation}__name(deleteCustomDecorationFactory,"deleteCustomDecorationFactory");function hasParagraphInTable(paragraph,tables){return tables.some(table=>paragraph.startIndex>table.startIndex&&paragraph.startIndex<table.endIndex)}__name(hasParagraphInTable,"hasParagraphInTable");function getTextRunAtPosition(textRuns,position,defaultStyle,cacheStyle){const retTextRun={st:0,ed:0,ts:defaultStyle};for(let i=textRuns.length-1;i>=0;i--){const textRun=textRuns[i],{st,ed}=textRun;position>st&&position<=ed&&(retTextRun.st=st,retTextRun.ed=ed,retTextRun.ts={...retTextRun.ts,...textRun.ts})}if(position===0){const textRun=textRuns==null?void 0:textRuns[0];textRun&&textRun.st===0&&(retTextRun.ts={...retTextRun.ts,...textRun.ts})}return cacheStyle&&(retTextRun.ts={...retTextRun.ts,...cacheStyle}),retTextRun}__name(getTextRunAtPosition,"getTextRunAtPosition");function getCustomRangeAtPosition(customRanges,position,extendRange){if(extendRange){const range2=customRanges.find(customRange=>position>=customRange.startIndex&&position<=customRange.endIndex+1);return range2!=null&&range2.wholeEntity?null:range2}const range=customRanges.find(customRange=>position>customRange.startIndex&&position<=customRange.endIndex);return range!=null&&range.wholeEntity?null:range}__name(getCustomRangeAtPosition,"getCustomRangeAtPosition");function getCustomDecorationAtPosition(customDecorations,position){return customDecorations.filter(customDecoration=>position>customDecoration.startIndex&&position<=customDecoration.endIndex)}__name(getCustomDecorationAtPosition,"getCustomDecorationAtPosition");function docDrawingPositionToTransform(position){return{left:position.positionH.posOffset,top:position.positionV.posOffset,width:position.size.width,height:position.size.height}}__name(docDrawingPositionToTransform,"docDrawingPositionToTransform");function transformToDocDrawingPosition(transform,marginLeft=0,marginTop=0){return{size:{width:transform.width,height:transform.height},positionH:{relativeFrom:core.ObjectRelativeFromH.MARGIN,posOffset:(transform.left||0)-marginLeft},positionV:{relativeFrom:core.ObjectRelativeFromV.PAGE,posOffset:(transform.top||0)-marginTop},angle:transform.angle||0}}__name(transformToDocDrawingPosition,"transformToDocDrawingPosition");function useKeyboardEvent(isNeed,config,editor){const commandService=core.useDependency(core.ICommandService),shortcutService=core.useDependency(ui.IShortcutService),key=React.useMemo(()=>core.generateRandomId(4),[]);React.useEffect(()=>{if(!editor||!isNeed||!config)return;const operationId=`sheet.operation.editor-${editor.getEditorId()}-keyboard-${key}`,d=new core.DisposableCollection;return d.add(commandService.registerCommand({id:operationId,type:core.CommandType.OPERATION,handler(_event,params){const{keyCode,metaKey}=params;config.handler(keyCode,metaKey)}})),config.keyCodes.map(keyCode=>({id:operationId,binding:keyCode.metaKey?keyCode.keyCode|keyCode.metaKey:keyCode.keyCode,preconditions:__name(()=>!0,"preconditions"),priority:901,staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keyCode:keyCode.keyCode,metaKey:keyCode.metaKey}})).forEach(item=>{d.add(shortcutService.registerShortcut(item))}),()=>{d.dispose()}},[commandService,config,editor,isNeed,key,shortcutService])}__name(useKeyboardEvent,"useKeyboardEvent");const useResize=__name((editor,isSingle=!0,autoScrollbar,autoScroll)=>{const resize=React.useCallback(()=>{if(editor){const{scene,mainComponent}=editor.render,docSkeletonManagerService=editor.render.with(docs.DocSkeletonManagerService),{width,height}=editor.getBoundingClientRect();docSkeletonManagerService.getViewModel().getDataModel().updateDocumentDataPageSize(isSingle?1/0:width,1/0),scene.transformByState({width,height}),mainComponent==null||mainComponent.resize(width,height)}},[editor,isSingle]),checkScrollBar=React.useMemo(()=>core.debounce(()=>{var _a2,_b2;if(!autoScrollbar||!editor||!autoScrollbar)return;const skeleton=editor.render.with(docs.DocSkeletonManagerService).getSkeleton(),{scene,mainComponent}=editor.render,viewportMain=scene.getViewport(VIEWPORT_KEY.VIEW_MAIN),{actualWidth,actualHeight}=skeleton.getActualSize(),{width,height}=editor.getBoundingClientRect();let scrollBar=viewportMain==null?void 0:viewportMain.getScrollBar();const contentWidth=Math.max(actualWidth,width),contentHeight=Math.max(actualHeight,height);scene.transformByState({width:contentWidth,height:contentHeight}),mainComponent==null||mainComponent.resize(contentWidth,contentHeight),isSingle?actualWidth>width?(scrollBar==null?viewportMain&&new engineRender.ScrollBar(viewportMain,{barSize:8,enableVertical:!1,enableHorizontal:!0,minThumbSizeV:8}):viewportMain==null||viewportMain.resetCanvasSizeAndUpdateScroll(),autoScroll&&(viewportMain==null||viewportMain.scrollToBarPos({x:1/0,y:0}))):(scrollBar=null,viewportMain==null||viewportMain.scrollToBarPos({x:0,y:0}),(_b2=viewportMain==null?void 0:viewportMain.getScrollBar())==null||_b2.dispose()):actualHeight>height?(scrollBar==null?viewportMain&&(scrollBar=new engineRender.ScrollBar(viewportMain,{enableHorizontal:!1,enableVertical:!0,barSize:8,minThumbSizeV:8})):viewportMain==null||viewportMain.resetCanvasSizeAndUpdateScroll(),autoScroll&&(viewportMain==null||viewportMain.scrollToBarPos({x:0,y:1/0}))):(scrollBar=null,viewportMain==null||viewportMain.scrollToBarPos({x:0,y:0}),(_a2=viewportMain==null?void 0:viewportMain.getScrollBar())==null||_a2.dispose())},30),[editor,autoScrollbar,isSingle,autoScroll]);return React.useEffect(()=>{if(autoScrollbar&&editor){const time=setTimeout(()=>{resize(),checkScrollBar()},500);return()=>{clearTimeout(time)}}},[editor,autoScrollbar,resize,checkScrollBar]),React.useEffect(()=>{if(autoScrollbar&&editor){const d=editor.input$.subscribe(()=>{checkScrollBar()});return()=>{d.unsubscribe()}}},[editor,autoScrollbar,checkScrollBar]),{resize,checkScrollBar}},"useResize");function r(e){var t,f,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}__name(r,"r");function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}__name(clsx,"clsx");function getCommandSkeleton(accessor,unitId){var _a2;return(_a2=accessor.get(engineRender.IRenderManagerService).getRenderById(unitId))==null?void 0:_a2.with(docs.DocSkeletonManagerService)}__name(getCommandSkeleton,"getCommandSkeleton");function getRichTextEditPath(docDataModel,segmentId=""){if(!segmentId)return["body"];const{headers,footers}=docDataModel.getSnapshot();if(headers==null&&footers==null)throw new Error("Document data model must have headers or footers when update by segment id");if((headers==null?void 0:headers[segmentId])!=null)return["headers",segmentId,"body"];if((footers==null?void 0:footers[segmentId])!=null)return["footers",segmentId,"body"];throw new Error("Segment id not found in headers or footers")}__name(getRichTextEditPath,"getRichTextEditPath");const ReplaceSnapshotCommand={id:"doc.command-replace-snapshot",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{const{unitId,snapshot,textRanges,segmentId="",options}=params,univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),docDataModel=univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_DOC),prevSnapshot=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getSnapshot();if(docDataModel==null||prevSnapshot==null)return!1;const{body,tableSource,footers,headers,lists,drawings,drawingsOrder,documentStyle}=core.Tools.deepClone(snapshot),{body:prevBody,tableSource:prevTableSource,footers:prevFooters,headers:prevHeaders,lists:prevLists,drawings:prevDrawings,drawingsOrder:prevDrawingsOrder,documentStyle:prevDocumentStyle}=prevSnapshot;if(body==null||prevBody==null)return!1;if(core.Tools.diffValue(body,prevBody)&&textRanges)return docSelectionManagerService.replaceDocRanges(textRanges,{unitId,subUnitId:unitId},!1),!0;const doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges}};options&&(doMutation.params.options=options);const rawActions=[],jsonX=core.JSONX.getInstance();if(!core.Tools.diffValue(prevDocumentStyle,documentStyle)){const actions=jsonX.replaceOp(["documentStyle"],prevDocumentStyle,documentStyle);actions!=null&&rawActions.push(actions)}if(!core.Tools.diffValue(body,prevBody)){const actions=jsonX.replaceOp(["body"],prevBody,body);actions!=null&&rawActions.push(actions)}if(!core.Tools.diffValue(tableSource,prevTableSource)){const actions=jsonX.replaceOp(["tableSource"],prevTableSource,tableSource);actions!=null&&rawActions.push(actions)}if(!core.Tools.diffValue(footers,prevFooters)){const actions=jsonX.replaceOp(["footers"],prevFooters,footers);actions!=null&&rawActions.push(actions)}if(!core.Tools.diffValue(headers,prevHeaders)){const actions=jsonX.replaceOp(["headers"],prevHeaders,headers);actions!=null&&rawActions.push(actions)}if(!core.Tools.diffValue(lists,prevLists)){const actions=jsonX.replaceOp(["lists"],prevLists,lists);actions!=null&&rawActions.push(actions)}if(!core.Tools.diffValue(drawings,prevDrawings)){const actions=jsonX.replaceOp(["drawings"],prevDrawings,drawings);actions!=null&&rawActions.push(actions)}if(!core.Tools.diffValue(drawingsOrder,prevDrawingsOrder)){const actions=jsonX.replaceOp(["drawingsOrder"],prevDrawingsOrder,drawingsOrder);actions!=null&&rawActions.push(actions)}return doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},ReplaceContentCommand={id:"doc.command-replace-content",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const{unitId,body,textRanges,segmentId="",options}=params,univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),docDataModel=univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_DOC),prevBody=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getSnapshot().body;if(docDataModel==null||prevBody==null)return!1;const doMutation=getMutationParams(unitId,segmentId,docDataModel,prevBody,body);return doMutation.params.textRanges=textRanges,options&&(doMutation.params.options=options),doMutation.params.actions==null&&textRanges?(docSelectionManagerService.replaceDocRanges(textRanges,{unitId,subUnitId:unitId},!1),!0):!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},CoverContentCommand={id:"doc.command-cover-content",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const{unitId,body,segmentId=""}=params,univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),docDatModel=univerInstanceService.getUniverDocInstance(unitId),prevBody=docDatModel==null?void 0:docDatModel.getSnapshot().body;if(docDatModel==null||prevBody==null)return!1;const doMutation=getMutationParams(unitId,segmentId,docDatModel,prevBody,body);return doMutation.params.noNeedSetTextRange=!0,doMutation.params.noHistory=!0,commandService.syncExecuteCommand(doMutation.id,doMutation.params),undoRedoService.clearUndoRedo(unitId),!0},"handler")};function getMutationActions(segmentId,docDatModel,prevBody,body){const textX=new core.TextX,jsonX=core.JSONX.getInstance(),deleteLen=(prevBody==null?void 0:prevBody.dataStream.length)-2;deleteLen>0&&textX.push({t:core.TextXActionType.DELETE,len:deleteLen}),body.dataStream.length>0&&textX.push({t:core.TextXActionType.INSERT,body,len:body.dataStream.length});const path=getRichTextEditPath(docDatModel,segmentId);return jsonX.editOp(textX.serialize(),path)}__name(getMutationActions,"getMutationActions");function getMutationParams(unitId,segmentId,docDatModel,prevBody,body){const doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:[]}},actions=getMutationActions(segmentId,docDatModel,prevBody,body);return doMutation.params.actions=actions,doMutation}__name(getMutationParams,"getMutationParams"),core.CommandType.COMMAND;const ReplaceTextRunsCommand={id:"doc.command.replace-text-runs",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{const{unitId,body,textRanges,segmentId="",options}=params,univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),docDataModel=univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_DOC),prevBody=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getSnapshot().body;if(docDataModel==null||prevBody==null)return!1;const textX=core.BuildTextUtils.selection.replaceTextRuns({doc:docDataModel,body,selection:{startOffset:0,endOffset:prevBody.dataStream.length-2,collapsed:!1}});if(!textX)return!1;const doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges,noHistory:!0}},jsonX=core.JSONX.getInstance(),path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),doMutation.params.textRanges=textRanges,options&&(doMutation.params.options=options),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")};var NodePositionType=(NodePositionType2=>(NodePositionType2[NodePositionType2.page=0]="page",NodePositionType2[NodePositionType2.section=1]="section",NodePositionType2[NodePositionType2.column=2]="column",NodePositionType2[NodePositionType2.line=3]="line",NodePositionType2[NodePositionType2.divide=4]="divide",NodePositionType2[NodePositionType2.glyph=5]="glyph",NodePositionType2))(NodePositionType||{});const NodePositionMap={page:0,section:1,column:2,line:3,divide:4,glyph:5};function compareNodePositionLogic(pos1,pos2){return pos1.page>pos2.page?!1:pos1.page<pos2.page?!0:pos1.section>pos2.section?!1:pos1.section<pos2.section?!0:pos1.column>pos2.column?!1:pos1.column<pos2.column?!0:pos1.line>pos2.line?!1:pos1.line<pos2.line?!0:pos1.divide>pos2.divide?!1:pos1.divide<pos2.divide?!0:pos1.glyph>pos2.glyph?!1:(pos1.glyph<pos2.glyph,!0)}__name(compareNodePositionLogic,"compareNodePositionLogic");function compareNodePosition(pos1,pos2){return compareNodePositionLogic(pos1,pos2)?{start:pos1,end:pos2}:{start:pos2,end:pos1}}__name(compareNodePosition,"compareNodePosition");function getOneTextSelectionRange(rangeList){const rangeCount=rangeList.length;if(rangeCount===0)return;const firstCursor=rangeList[0],lastCursor=rangeList[rangeCount-1],collapsed=rangeList.length===1&&firstCursor.collapsed;return{startOffset:firstCursor.startOffset,endOffset:lastCursor.endOffset,collapsed}}__name(getOneTextSelectionRange,"getOneTextSelectionRange");function getOffsetInDivide(glyphGroup,startGlyphIndex,endGlyphIndex,st){let startOffset=st,endOffset=st;for(let i=0;i<glyphGroup.length;i++){const contentLength=glyphGroup[i].count;i<startGlyphIndex&&(startOffset+=contentLength),i<endGlyphIndex&&(endOffset+=contentLength)}return{startOffset,endOffset}}__name(getOffsetInDivide,"getOffsetInDivide");function pushToPoints(position){const{startX,startY,endX,endY}=position,points=[];return points.push({x:startX,y:startY}),points.push({x:endX,y:startY}),points.push({x:endX,y:endY}),points.push({x:startX,y:endY}),points.push({x:startX,y:startY}),points}__name(pushToPoints,"pushToPoints");const _NodePositionConvertToCursor=class _NodePositionConvertToCursor{constructor(_documentOffsetConfig,_docSkeleton){__publicField(this,"_liquid",new engineRender.Liquid);__publicField(this,"_currentStartState",{page:0,section:0,column:0,line:0,divide:0,glyph:0});__publicField(this,"_currentEndState",{page:0,section:0,column:0,line:0,divide:0,glyph:0});this._documentOffsetConfig=_documentOffsetConfig,this._docSkeleton=_docSkeleton}getRangePointData(startOrigin,endOrigin){const borderBoxPointGroup=[],contentBoxPointGroup=[],cursorList=[];if(startOrigin==null||endOrigin==null)return{borderBoxPointGroup,contentBoxPointGroup,cursorList};if(!this._isValidPosition(startOrigin,endOrigin))throw new Error(`
10
2
  Invalid positions in NodePositionConvertToCursor,
11
- they are not in the same segment page when in header or footer.`);const{start:c,end:l}=Zn(t,e);return this._selectionIterator(c,l,(A,d,u,f,h,m)=>{const{lineHeight:g,asc:p,paddingTop:S,marginTop:I,marginBottom:E}=m,{glyphGroup:T,st:O}=h;if(T.length===0)return;const{x:v,y:b}=this._liquid;let _,B;const w=T[A],x=T[d],U=T[A-1],L=(w==null?void 0:w.left)||0,F=(w==null?void 0:w.width)||0,H=(x==null?void 0:x.left)||0,k=(x==null?void 0:x.width)||0,X=(w==null?void 0:w.glyphType)===M.GlyphType.LIST,{startOffset:G,endOffset:W}=ha(T,A,d,O),V=c.glyph===A&&u?c.isBack:!0,K=l.glyph===d&&f?l.isBack:!1,ee=c===l,Z=V&&U!=null?U:w;if(A===0&&d===T.length-1)_={startX:v+L+(X?F:0),startY:b,endX:v+H+(K?0:k),endY:b+g-I-E},B={startX:v+L+(X?F:0),startY:b+S+p-Z.bBox.ba,endX:v+H+(K?0:k),endY:b+S+p+Z.bBox.bd};else{const j=V&&!X;_={startX:v+L+(j?0:F),startY:b,endX:v+H+(K?0:k),endY:b+g-I-E},B={startX:v+L+(j?0:F),startY:b+S+p-Z.bBox.ba,endX:v+H+(K?0:k),endY:b+S+p+Z.bBox.bd}}n.push($n(_)),o.push($n(B)),a.push({startOffset:V?G:G+w.count,endOffset:K?W:W+x.count,collapsed:ee})}),{borderBoxPointGroup:n,contentBoxPointGroup:o,cursorList:a}}_isValidPosition(t,e){const{segmentPage:n,pageType:o}=t,{segmentPage:a,pageType:r}=e;return o!==r?!1:o===M.DocumentSkeletonPageType.HEADER||o===M.DocumentSkeletonPageType.FOOTER?n===a:!0}_resetCurrentNodePositionState(){this._currentStartState={page:0,section:0,column:0,line:0,divide:0,glyph:0},this._currentEndState={page:0,section:0,column:0,line:0,divide:0,glyph:0}}_setNodePositionState(t=0,e,n,o){o===e?this._currentStartState[t]=1:this._currentStartState[t]=0,o===n?this._currentEndState[t]=2:this._currentEndState[t]=0}_checkPreviousNodePositionState(t,e=!0){let n=t,o;for(;n>=0;){const a=Kt[n];let r;if(e?r=this._currentStartState[a]:r=this._currentEndState[a],r===void 0)return;if(o===void 0&&(o=r),r!==o)return 0;n--}return o}_getSelectionRuler(t,e,n,o,a){let r=0,c=o;const l=Kt[t],A=Kt[t+1];if(A===null||l===null)return{start_next:r,end_next:c};const d=e[l],u=n[l];this._setNodePositionState(l,d,u,a);const f=this._checkPreviousNodePositionState(t),h=this._checkPreviousNodePositionState(t,!1);return f===1&&(r=e[A]),h===2&&(c=n[A]),{start_next:r,end_next:c}}_selectionIterator(t,e,n){var T,O;const o=this._docSkeleton;if(!o)return[];const{pageType:a,path:r}=t;this._liquid.reset();const c=o.getSkeletonData();if(c==null)return[];const{pages:l,skeHeaders:A,skeFooters:d}=c,{page:u,segmentPage:f}=t,{page:h,segmentPage:m}=e;if(this._resetCurrentNodePositionState(),this._documentOffsetConfig==null)return[];const{pageLayoutType:g,pageMarginLeft:p,pageMarginTop:S}=this._documentOffsetConfig,I=a===M.DocumentSkeletonPageType.BODY||a===M.DocumentSkeletonPageType.CELL?u:f;for(let v=0;v<I;v++){const b=l[v];this._liquid.translatePage(b,g,p,S)}const E=a===M.DocumentSkeletonPageType.BODY||a===M.DocumentSkeletonPageType.CELL?h:m;for(let v=I;v<=E;v++){const b=l[v],{headerId:_,footerId:B,pageWidth:w}=b;let x=b;if(a===M.DocumentSkeletonPageType.HEADER?x=(T=A.get(_))==null?void 0:T.get(w):a===M.DocumentSkeletonPageType.FOOTER?x=(O=d.get(B))==null?void 0:O.get(w):a===M.DocumentSkeletonPageType.CELL&&(x=M.getPageFromPath(c,r)),x==null){this._liquid.translatePage(b,g,p,S);continue}const U=x.sections,{start_next:L,end_next:F}=this._getSelectionRuler(rt.page,t,e,U.length-1,a===M.DocumentSkeletonPageType.BODY||a===M.DocumentSkeletonPageType.CELL?v:0);switch(this._liquid.translateSave(),a){case M.DocumentSkeletonPageType.HEADER:this._liquid.translatePagePadding({...x,marginLeft:b.marginLeft});break;case M.DocumentSkeletonPageType.FOOTER:{const H=b.pageHeight-x.height-x.marginBottom;this._liquid.translate(b.marginLeft,H);break}case M.DocumentSkeletonPageType.CELL:{this._liquid.translatePagePadding(b);const H=x.parent,k=H.parent,{left:X}=x,{top:G,left:W}=k,{top:V}=H;this._liquid.translate(W+X,G+V),this._liquid.translatePagePadding(x);break}default:this._liquid.translatePagePadding(b);break}for(let H=L;H<=F;H++){const k=U[H],X=k.columns,{start_next:G,end_next:W}=this._getSelectionRuler(rt.section,t,e,X.length-1,H);this._liquid.translateSection(k);for(let V=G;V<=W;V++){const K=X[V],ee=K.lines,{start_next:Z,end_next:j}=this._getSelectionRuler(rt.column,t,e,ee.length-1,V);this._liquid.translateColumn(K);for(let z=Z;z<=j;z++){const Y=ee[z],{divides:ie}=Y,{start_next:ce,end_next:ge}=this._getSelectionRuler(rt.line,t,e,ie.length-1,z);this._liquid.translateSave(),this._liquid.translateLine(Y,!0,!1);for(let le=ce;le<=ge;le++){const Ce=ie[le];this._liquid.translateSave(),this._liquid.translateDivide(Ce);const{glyphGroup:st}=Ce,{start_next:Ae,end_next:Se}=this._getSelectionRuler(rt.divide,t,e,st.length-1,le);let Te=!1,xe=!1;v===I&&H===L&&V===G&&z===Z&&le===ce&&(Te=!0),v===E&&H===F&&V===W&&z===j&&le===ge&&(xe=!0),n&&n(Ae,Se,Te,xe,Ce,Y,K,k,x),this._liquid.translateRestore()}this._liquid.translateRestore()}}}this._liquid.translateRestore(),this._liquid.translatePage(b,g,p,S)}}}function fo(i,t){const{path:e}=i,{path:n}=t;if(e.length!==n.length||e.indexOf("cells")===-1)return!1;const o=e.indexOf("skeTables")+1,a=e.indexOf("rows")+1,r=e.indexOf("cells")+1,{tableId:c,sliceIndex:l}=M.getTableIdAndSliceIndex(e[o]),{tableId:A,sliceIndex:d}=M.getTableIdAndSliceIndex(n[o]);if(c!==A)return!1;const u=e[a],f=n[a],h=e[r],m=n[r];return!(u===f&&h===m&&l===d)}function ei(i,t){const{path:e}=i,{path:n}=t;return e.indexOf("cells")===-1||n.indexOf("cells")===-1||e.length!==n.length?!1:s.Tools.diffValue(e,n)}function mo(i,t,e){var h,m,g,p,S,I,E,T;const{path:n}=t,{path:o}=e;if(n.indexOf("cells")===-1||o.indexOf("cells")===-1)return!1;const a=i.findGlyphByPosition(t),r=i.findGlyphByPosition(e),c=(p=(g=(m=(h=a==null?void 0:a.parent)==null?void 0:h.parent)==null?void 0:m.parent)==null?void 0:g.parent)==null?void 0:p.parent,l=(T=(E=(I=(S=r==null?void 0:r.parent)==null?void 0:S.parent)==null?void 0:I.parent)==null?void 0:E.parent)==null?void 0:T.parent;if(c==null||l==null)return!1;const A=c.parent,d=l.parent,u=A.cells.indexOf(c),f=d.cells.indexOf(l);return u===f&&A.index===d.index}function ti(i,t){if(ei(i,t))return Jn(i,t);const{path:e}=i,{path:n}=t,o=e[e.length-5],a=n[n.length-5];if(o!==a&&typeof o=="string"&&typeof a=="string"){const d=o.split("#-#")[1],u=a.split("#-#")[1];return+d<+u}const r=e[e.length-3],c=n[n.length-3],l=e[e.length-1],A=n[n.length-1];return r<c?!0:r>c?!1:l<=A}function ct(i){return i.sections[0].columns[0].lines.length===0}function ga(i,t,e){let n=t,o=e,a=i[n],r=i[o];for(;n<o&&(ct(a)||ct(r));)ct(a)?(n++,a=i[n]):ct(r)&&(o--,r=i[o]);if(!ct(a)&&!ct(r))return[a,r]}class ni{constructor(t,e){R(this,"_liquid",new M.Liquid);this._documentOffsetConfig=t,this._docSkeleton=e}getRangePointData(t,e){const n=[],a=this._docSkeleton.getSkeletonData();if(a==null)return;const{pages:r}=a,{segmentPage:c,page:l,pageType:A}=t,d=this._getTableRectRangeInfo(t,e);if(d==null)return;const{tableId:u,startRowIndex:f,startColumnIndex:h,endRowIndex:m,endColumnIndex:g}=d;this._liquid.reset();const{pageLayoutType:p,pageMarginLeft:S,pageMarginTop:I}=this._documentOffsetConfig,E=A===M.DocumentSkeletonPageType.BODY||A===M.DocumentSkeletonPageType.CELL?l:c;for(let T=0;T<E;T++){const O=r[T];this._liquid.translatePage(O,p,S,I)}for(let T=E;T<r.length;T++){const O=r[T];this._liquid.translatePagePadding(O);const{skeTables:v}=O;let b=null;for(const[x,U]of v.entries())x.startsWith(u)&&(b=U);if(b==null){this._liquid.restorePagePadding(O),this._liquid.translatePage(O,p,S,I);continue}this._liquid.translateSave(),this._liquid.translate(0,b.top);const{x:_,y:B}=this._liquid,{left:w}=b;for(const x of b.rows)if(x.index>=f&&x.index<=m){const U=ga(x.cells,h,g);if(U==null)continue;const[L,F]=U,H={startX:_+L.left+w,startY:B+x.top,endX:_+F.left+F.pageWidth+w,endY:B+x.top+x.height};n.push($n(H))}this._liquid.translateRestore(),this._liquid.restorePagePadding(O),this._liquid.translatePage(O,p,S,I)}return{pointGroup:n,startRow:f,startColumn:h,endRow:m,endColumn:g,tableId:u}}getNodePositionGroup(t,e){const n=[],o=this._docSkeleton.findCharIndexByPosition(t),a=this._docSkeleton.findCharIndexByPosition(e);if(o==null||a==null)return;const r=o<a,c=this._getTableRectRangeInfo(t,e);if(c==null)return;const{tableId:l,startRowIndex:A,startColumnIndex:d,endRowIndex:u,endColumnIndex:f}=c,h=this._docSkeleton.getViewModel().findTableNodeById(l);if(h==null)return;const m=h.children[0].children.length;if(d===0&&f===m-1){const p=h.children[A].children[d],S=this._docSkeleton.findNodePositionByCharIndex(p.startIndex+1),I=h.children[u].children[f],E=this._docSkeleton.findNodePositionByCharIndex(I.endIndex-2);if(S==null||E==null)return;n.push({anchor:r?S:E,focus:r?E:S})}else for(let p=A;p<=u;p++){const S=h.children[p],I=S.children[d],E=S.children[f],T=this._docSkeleton.findNodePositionByCharIndex(I.startIndex+1),O=this._docSkeleton.findNodePositionByCharIndex(E.endIndex-2);if(T==null||O==null)return;n.push({anchor:r?T:O,focus:r?O:T})}return n}_getTableRectRangeInfo(t,e){const o=this._docSkeleton.getSkeletonData();if(o==null)return;const{pages:a}=o,{path:r}=t,{path:c}=e,l=M.getPageFromPath(o,r),A=M.getPageFromPath(o,c);if(l==null||A==null)return;const d=l.segmentId,u=l.parent.index,f=l.parent.cells.indexOf(l),h=(A==null?void 0:A.parent).index,m=(A==null?void 0:A.parent).cells.indexOf(A),g=Math.min(u,h),p=Math.max(u,h),S=Math.min(f,m),I=Math.max(f,m);return{pages:a,tableId:d,startRowIndex:g,startColumnIndex:S,endRowIndex:p,endColumnIndex:I}}}const fa="__TestSelectionRange__",ma="__TestSelectionAnchor__",po=6,ii=500,pa=500,Jt=3;function Ot(i){const t=i[0],e=t[0],n=t[2],{x:o,y:a}=e,{x:r,y:c}=n;return{left:o,top:a,width:r-o,height:c-a}}function Zt(i){return i.map(t=>{let e=1/0,n=-1/0,o=1/0,a=-1/0;return t.forEach(r=>{e=Math.min(r.x,e),n=Math.max(r.x,n),a=Math.max(r.y,a),o=Math.min(r.y,o)}),{left:e,right:n,top:o,bottom:a}})}class je{constructor(t,e,n,o,a,r=M.NORMAL_TEXT_SELECTION_PLUGIN_STYLE,c="",l=-1){R(this,"rangeType",s.DOC_RANGE_TYPE.TEXT);R(this,"_current",!1);R(this,"_rangeShape");R(this,"_anchorShape");R(this,"_cursorList",[]);R(this,"_anchorBlinkTimer",null);this._scene=t,this._document=e,this._docSkeleton=n,this.anchorNodePosition=o,this.focusNodePosition=a,this.style=r,this._segmentId=c,this._segmentPage=l,this._anchorBlink(),this.refresh()}_anchorBlink(){setTimeout(()=>{this._anchorShape&&this._anchorShape.visible&&this.deactivateStatic()},ii),this._anchorBlinkTimer=setInterval(()=>{this._anchorShape&&this._anchorShape.visible&&(this.activeStatic(),setTimeout(()=>{this.deactivateStatic()},ii))},pa+ii)}get startOffset(){var o;const{startOffset:t}=(o=qn(this._cursorList))!=null?o:{},e=this._docSkeleton.getViewModel().getDataModel().getSelfOrHeaderFooterModel(this._segmentId).getBody();if(t==null||e==null)return t;const n=e.dataStream.length-2;return Math.min(n,t)}get endOffset(){var o;const{endOffset:t}=(o=qn(this._cursorList))!=null?o:{},e=this._docSkeleton.getViewModel().getDataModel().getSelfOrHeaderFooterModel(this._segmentId).getBody();if(t==null||e==null)return t;const n=e.dataStream.length-2;return Math.min(t,n)}get collapsed(){const{startOffset:t,endOffset:e}=this;return t!=null&&t===e}get startNodePosition(){if(this.anchorNodePosition==null)return null;if(this.focusNodePosition==null)return this.anchorNodePosition;const{start:t}=Zn(this.anchorNodePosition,this.focusNodePosition);return t}get endNodePosition(){if(this.anchorNodePosition==null)return this.focusNodePosition;if(this.focusNodePosition==null)return null;const{end:t}=Zn(this.anchorNodePosition,this.focusNodePosition);return t}get direction(){const{collapsed:t,anchorNodePosition:e,focusNodePosition:n}=this;return t||e==null||n==null?s.RANGE_DIRECTION.NONE:Jn(e,n)?s.RANGE_DIRECTION.FORWARD:s.RANGE_DIRECTION.BACKWARD}get segmentId(){return this._segmentId}get segmentPage(){return this._segmentPage}getAbsolutePosition(){const t=this.anchorNodePosition,e=this.focusNodePosition;if(this._isEmpty())return;const n=this._document.getOffsetConfig(),{docsLeft:o,docsTop:a}=n,r=new De(n,this._docSkeleton);if(this._isCollapsed()){const{contentBoxPointGroup:d,cursorList:u}=r.getRangePointData(t,t);if(this._setCursorList(u),d.length===0)return;const f=Ot(d);return{...f,left:f.left+o,top:f.top+a}}const{borderBoxPointGroup:c,cursorList:l}=r.getRangePointData(t,e);if(this._setCursorList(l),c.length===0)return;const A=Ot(c);return{...A,left:A.left+o,top:A.top+a}}getAnchor(){return this._anchorShape}activeStatic(){var t,e;(e=this._anchorShape)==null||e.setProps({stroke:((t=this.style)==null?void 0:t.strokeActive)||M.getColor(s.COLORS.black,1)})}deactivateStatic(){var t,e;(e=this._anchorShape)==null||e.setProps({stroke:((t=this.style)==null?void 0:t.stroke)||M.getColor(s.COLORS.black,0)})}isActive(){return this._current===!0}activate(){this._current=!0}deactivate(){this._current=!1}dispose(){var t,e;(t=this._rangeShape)==null||t.dispose(),this._rangeShape=null,(e=this._anchorShape)==null||e.dispose(),this._anchorShape=null,this._anchorBlinkTimer&&(clearInterval(this._anchorBlinkTimer),this._anchorBlinkTimer=null)}isIntersection(t){const{startOffset:e,endOffset:n}=this,{startOffset:o,endOffset:a}=t;return e==null||n==null||o==null||a==null?!1:e<=a&&n>=o}refresh(){var u,f;const{_document:t,_docSkeleton:e}=this,n=this.anchorNodePosition,o=this.focusNodePosition;if((u=this._anchorShape)==null||u.hide(),(f=this._rangeShape)==null||f.hide(),this._isEmpty())return;const a=t.getOffsetConfig(),{docsLeft:r,docsTop:c}=a,l=new De(a,e);if(this._isCollapsed()){const{contentBoxPointGroup:h,cursorList:m}=l.getRangePointData(n,n);if(this._setCursorList(m),h.length>0){const g=e.findGlyphByPosition(n);this._createOrUpdateAnchor(h,r,c,g)}return}const{borderBoxPointGroup:A,cursorList:d}=l.getRangePointData(n,o);this._setCursorList(d),A.length>0&&this._createOrUpdateRange(A,r,c)}_isEmpty(){return this.anchorNodePosition==null&&this.focusNodePosition==null}_isCollapsed(){const t=this.anchorNodePosition,e=this.focusNodePosition;if(t!=null&&e==null)return!0;if(t==null||e==null)return!1;const n=Object.keys(rt);for(const o of n){const a=t[o],r=e[o];if(a!==r)return!1}return t.isBack===e.isBack}_createOrUpdateRange(t,e,n){var r;if(this._rangeShape){this._rangeShape.translate(e,n),this._rangeShape.updatePointGroup(t),this._rangeShape.show();return}const o=.3,a=new M.RegularPolygon(fa+s.Tools.generateRandomId(po),{pointsGroup:t,fill:((r=this.style)==null?void 0:r.fill)||M.getColor(s.COLORS.black,o),left:e,top:n,evented:!1,debounceParentDirty:!1});this._rangeShape=a,this._scene.addObject(a,Jt)}_createOrUpdateAnchor(t,e,n,o){var g,p,S;const a=Ot(t),{left:r}=a;let{top:c,height:l}=a;const A=14;l<A&&(c-=A-l,l=A);const d=12;let u=r+e;const f=c+n,h=((g=o==null?void 0:o.ts)==null?void 0:g.it)===s.BooleanNumber.TRUE;if(h&&(u+=l*Math.tan(d*Math.PI/180)/2),this._anchorShape){this._anchorShape.transformByState({left:u,top:f,height:l}),this._anchorShape.show(),h?this._anchorShape.skew(-12,0):this._anchorShape.skew(0,0);return}const m=new M.Rect(ma+s.Tools.generateRandomId(po),{left:u,top:f,height:l,strokeWidth:((p=this.style)==null?void 0:p.strokeWidth)||1.5,stroke:((S=this.style)==null?void 0:S.strokeActive)||M.getColor(s.COLORS.black,1),evented:!1});h&&m.skew(-12,0),this._anchorShape=m,this._scene.addObject(m,Jt),this.activeStatic()}_setCursorList(t){t.length!==0&&(this._cursorList=t)}}const Sa="__DocTableRectRange__",Ia=6;function qt(i,t,e,n,o,a=M.NORMAL_TEXT_SELECTION_PLUGIN_STYLE,r="",c=-1){const l=t.getOffsetConfig(),d=new ni(l,e).getNodePositionGroup(n,o);return(d!=null?d:[]).map(u=>new oi(i,t,e,u.anchor,u.focus,a,r,c))}class oi{constructor(t,e,n,o,a,r=M.NORMAL_TEXT_SELECTION_PLUGIN_STYLE,c="",l=-1){R(this,"rangeType",s.DOC_RANGE_TYPE.RECT);R(this,"_rangeShape");R(this,"_current",!1);R(this,"_startRow");R(this,"_startCol");R(this,"_endRow");R(this,"_endCol");R(this,"_tableId");this._scene=t,this._document=e,this._docSkeleton=n,this.anchorNodePosition=o,this.focusNodePosition=a,this.style=r,this._segmentId=c,this._segmentPage=l,this.refresh()}get startOffset(){const{startNodePosition:t}=this;return this._docSkeleton.findCharIndexByPosition(t)}get endOffset(){const{endNodePosition:t}=this;return this._docSkeleton.findCharIndexByPosition(t)}get collapsed(){return!1}get startRow(){return this._startRow}get startColumn(){return this._startCol}get endRow(){return this._endRow}get endColumn(){return this._endCol}get tableId(){return this._tableId}get segmentId(){return this._segmentId}get segmentPage(){return this._segmentPage}get spanEntireRow(){var r;const e=(r=this._docSkeleton.getViewModel().getSnapshot().tableSource)==null?void 0:r[this._tableId],{_startCol:n,_endCol:o}=this;if(e==null)throw new Error("Table is not found.");const{tableColumns:a}=e;return n===0&&o===a.length-1}get spanEntireColumn(){var r;const e=(r=this._docSkeleton.getViewModel().getSnapshot().tableSource)==null?void 0:r[this._tableId],{_startRow:n,_endRow:o}=this;if(e==null)throw new Error("Table is not found.");const{tableRows:a}=e;return n===0&&o===a.length-1}get spanEntireTable(){return this.spanEntireRow&&this.spanEntireColumn}get startNodePosition(){const{anchorNodePosition:t,focusNodePosition:e}=this;return ti(t,e)?t:e}get endNodePosition(){const{anchorNodePosition:t,focusNodePosition:e}=this;return ti(t,e)?e:t}get direction(){const{anchorNodePosition:t,focusNodePosition:e}=this;return ti(t,e)?s.RANGE_DIRECTION.FORWARD:s.RANGE_DIRECTION.BACKWARD}isActive(){return this._current===!0}activate(){this._current=!0}deactivate(){this._current=!1}dispose(){var t;(t=this._rangeShape)==null||t.dispose(),this._rangeShape=null}isIntersection(t){const{startRow:e,startColumn:n,endRow:o,endColumn:a}=this,{startRow:r,startColumn:c,endRow:l,endColumn:A}=t,d={left:n,top:e,right:a,bottom:o},u={left:c,top:r,right:A,bottom:l};return s.Rectangle.hasIntersectionBetweenTwoRect(d,u)}refresh(){var p;(p=this._rangeShape)==null||p.hide();const{startNodePosition:t,endNodePosition:e,_document:n,_docSkeleton:o}=this,a=n.getOffsetConfig(),{docsLeft:r,docsTop:c}=a,A=new ni(a,o).getRangePointData(t,e);if(A==null)return;const{pointGroup:d=[],startRow:u,endRow:f,startColumn:h,endColumn:m,tableId:g}=A;(d==null?void 0:d.length)>0&&this._createOrUpdateRange(d,r,c),this._updateTableInfo(u,f,h,m,g)}_updateTableInfo(t,e,n,o,a){this._startRow=t,this._endRow=e,this._startCol=n,this._endCol=o,this._tableId=a}_createOrUpdateRange(t,e,n){var r;if(this._rangeShape){this._rangeShape.translate(e,n),this._rangeShape.updatePointGroup(t),this._rangeShape.show();return}const o=.3,a=new M.RegularPolygon(Sa+s.Tools.generateRandomId(Ia),{pointsGroup:t,fill:((r=this.style)==null?void 0:r.fill)||M.getColor(s.COLORS.black,o),left:e,top:n,evented:!1,debounceParentDirty:!1});this._rangeShape=a,this._scene.addObject(a,Jt)}}function So(i,t,e,n,o,a,r,c,l=!0,A=!0){const d=o.findNodePositionByCharIndex(i,l,r,c),u=o.findNodePositionByCharIndex(t,A,r,c);if(!(d==null||u==null))return new je(e,n,o,d,u,a,r,c)}function Ea(i,t,e,n,o,a,r,c){const l=o.findNodePositionByCharIndex(i,!0,r,c),A=o.findNodePositionByCharIndex(t,!0,r,c);if(!(l==null||A==null))return new oi(e,n,o,l,A,a,r,c)}function va(i,t,e,n,o,a,r,c){const l=o.findNodePositionByCharIndex(i,!0,r,c),A=o.findNodePositionByCharIndex(t,!0,r,c);if(!(l==null||A==null))return si(l,A,e,n,o,a,r,c)}function si(i,t,e,n,o,a,r,c){const l=[],A=[],d=[e,n,o,i,t,a,r,c];if(mo(o,i,t)){if(ei(i,t))return l.push(new je(...d)),{textRanges:l,rectRanges:A};{const E=qt(...d);return A.push(...E),{textRanges:l,rectRanges:A}}}if(fo(i,t)){const E=qt(...d);return A.push(...E),{textRanges:l,rectRanges:A}}const u=o.getViewModel().getSelfOrHeaderFooterViewModel(r),f=o.findCharIndexByPosition(i),h=o.findCharIndexByPosition(t);if(f==null||h==null)return;const m=f<=h?s.RANGE_DIRECTION.FORWARD:s.RANGE_DIRECTION.BACKWARD,g=Math.min(f,h),p=Math.max(f,h);let S=g,I=p;for(const E of u.getChildren())for(const T of E.children){const{startIndex:O,endIndex:v,children:b}=T,_=E.children.indexOf(T),B=E.children[_+1],w=b[0];let x=!1;if(w){const{startIndex:U,endIndex:L,children:F}=w;let H=null,k=null;const X=F.find(W=>W.startIndex<=g&&W.endIndex>=g),G=F.find(W=>W.startIndex<=p&&W.endIndex>=p);if(g>U&&g<L)H=o.findNodePositionByCharIndex(X.startIndex+2,!0,r,c),k=o.findNodePositionByCharIndex(L-4,!0,r,c),S=L+1;else if(p>U&&p<L)H=o.findNodePositionByCharIndex(U+3,!0,r,c),k=o.findNodePositionByCharIndex(G.endIndex-3,!0,r,c),I=U-1,x=!0;else if(U>g&&L<p){if(H=o.findNodePositionByCharIndex(U+3,!0,r,c),k=o.findNodePositionByCharIndex(L-4,!0,r,c),S<=U-1){const W=o.findNodePositionByCharIndex(S,!0,r,c),V=o.findNodePositionByCharIndex(U-1,!1,r,c),K=m===s.RANGE_DIRECTION.FORWARD?W:V,ee=m===s.RANGE_DIRECTION.FORWARD?V:W;l.push(new je(e,n,o,K,ee,a,r,c))}S=L+1}if(H&&k){const W=m===s.RANGE_DIRECTION.FORWARD?H:k,V=m===s.RANGE_DIRECTION.FORWARD?k:H;A.push(...qt(e,n,o,W,V,a,r,c))}}if(I===v+1&&!x&&B&&B.children.length&&(I=v,x=!0),I>=O&&I<=v||x){const U=o.findNodePositionByCharIndex(S,!0,r,c),L=o.findNodePositionByCharIndex(I,!x,r,c),F=m===s.RANGE_DIRECTION.FORWARD?U:L,H=m===s.RANGE_DIRECTION.FORWARD?L:U;if(A.length&&s.Tools.diffValue(F,H))continue;l.push(new je(e,n,o,F,H,a,r,c))}}return{textRanges:l,rectRanges:A}}function Io(i){const t=i==null?void 0:i.getCanvasElement();if(!t)return{left:0,top:0};const{top:e,left:n}=M.getOffsetRectForDom(t);return{left:n,top:e}}function Eo(i){var l;const t=(l=i.parent)==null?void 0:l.parent,e=t==null?void 0:t.parent;if(t==null||e==null)return;const{paragraphIndex:n}=t,o=e.lines.filter(A=>A.paragraphIndex===n);let a=-1,r="",c=!1;for(const A of o)for(const d of A.divides)for(const u of d.glyphGroup)c||(a+=u.count),u===i&&(c=!0),r+=u.count>0?u.content:"";return{st:o[0].st,ed:n,content:r,nodeIndex:a}}function ai(i){const{startOffset:t,endOffset:e,collapsed:n,rangeType:o,startNodePosition:a,endNodePosition:r,direction:c,segmentId:l,segmentPage:A}=i;return{startOffset:t,endOffset:e,collapsed:n,rangeType:o,startNodePosition:a,endNodePosition:r,direction:c,segmentId:l,segmentPage:A,isActive:i.isActive()}}function Ca(i){const t=ai(i),{startRow:e,startColumn:n,endRow:o,endColumn:a,tableId:r,spanEntireRow:c,spanEntireColumn:l,spanEntireTable:A}=i;return{...t,startRow:e,startColumn:n,endRow:o,endColumn:a,tableId:r,spanEntireRow:c,spanEntireColumn:l,spanEntireTable:A}}var Ta=Object.defineProperty,ba=Object.getOwnPropertyDescriptor,ya=(i,t,e,n)=>{for(var o=n>1?void 0:n?ba(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Ta(t,e,o),o},$t=(i,t)=>(e,n)=>t(e,n,i);C.DocSelectionRenderService=class extends s.RxDisposable{constructor(e,n,o,a,r){super();R(this,"_onInputBefore$",new N.Subject);R(this,"onInputBefore$",this._onInputBefore$.asObservable());R(this,"_onKeydown$",new N.Subject);R(this,"onKeydown$",this._onKeydown$.asObservable());R(this,"_onInput$",new N.Subject);R(this,"onInput$",this._onInput$.asObservable());R(this,"_onCompositionstart$",new N.BehaviorSubject(null));R(this,"onCompositionstart$",this._onCompositionstart$.asObservable());R(this,"_onCompositionupdate$",new N.BehaviorSubject(null));R(this,"onCompositionupdate$",this._onCompositionupdate$.asObservable());R(this,"_onCompositionend$",new N.BehaviorSubject(null));R(this,"onCompositionend$",this._onCompositionend$.asObservable());R(this,"_onSelectionStart$",new N.BehaviorSubject(null));R(this,"onSelectionStart$",this._onSelectionStart$.asObservable());R(this,"_onPaste$",new N.Subject);R(this,"onPaste$",this._onPaste$.asObservable());R(this,"_textSelectionInner$",new N.BehaviorSubject(null));R(this,"textSelectionInner$",this._textSelectionInner$.asObservable());R(this,"_onFocus$",new N.Subject);R(this,"onFocus$",this._onFocus$.asObservable());R(this,"_onBlur$",new N.Subject);R(this,"onBlur$",this._onBlur$.asObservable());R(this,"_onPointerDown$",new N.Subject);R(this,"onPointerDown$",this._onPointerDown$.asObservable());R(this,"_container");R(this,"_inputParent");R(this,"_input");R(this,"_scrollTimers",[]);R(this,"_rangeList",[]);R(this,"_rangeListCache",[]);R(this,"_rectRangeList",[]);R(this,"_rectRangeListCache",[]);R(this,"_anchorNodePosition",null);R(this,"_focusNodePosition",null);R(this,"_currentSegmentId","");R(this,"_currentSegmentPage",-1);R(this,"_selectionStyle",M.NORMAL_TEXT_SELECTION_PLUGIN_STYLE);R(this,"_viewPortObserverMap",new Map);R(this,"_isIMEInputApply",!1);R(this,"_scenePointerMoveSubs",[]);R(this,"_scenePointerUpSubs",[]);R(this,"_editorFocusing",!0);R(this,"_reserveRanges",!1);this._context=e,this._layoutService=n,this._logService=o,this._univerInstanceService=a,this._docSkeletonManagerService=r,this._initDOM(),this._registerContainer(),this._setSystemHighlightColorToStyle(),this._listenCurrentUnitChange()}_listenCurrentUnitChange(){this._univerInstanceService.getCurrentTypeOfUnit$(s.UniverInstanceType.UNIVER_DOC).pipe(N.takeUntil(this.dispose$)).subscribe(e=>{if(e==null)return;e.getUnitId()!==this._context.unitId&&!this._reserveRanges&&this.removeAllRanges()})}get activeViewPort(){return this._context.scene.getViewports()[0]}setSegment(e){this._currentSegmentId=e}getSegment(){return this._currentSegmentId}setSegmentPage(e){this._currentSegmentPage=e}getSegmentPage(){return this._currentSegmentPage}setReserveRangesStatus(e){this._reserveRanges=e}_setRangeStyle(e=M.NORMAL_TEXT_SELECTION_PLUGIN_STYLE){this._selectionStyle=e}addDocRanges(e,n=!0,o){const{_currentSegmentId:a,_currentSegmentPage:r,_selectionStyle:c}=this,{scene:l,mainComponent:A}=this._context,d=A,u=this._docSkeletonManagerService.getSkeleton(),f=(h,m)=>{const g=va(h,m,l,d,u,c,a,r);if(g==null)return;const{textRanges:p,rectRanges:S}=g;for(const I of p)this._addTextRange(I);this._addRectRanges(S)};for(const h of e){const{startOffset:m,endOffset:g,rangeType:p,startNodePosition:S,endNodePosition:I}=h;if(p===s.DOC_RANGE_TYPE.RECT){const E=Ea(m,g,l,d,u,c,a,r);E&&this._addRectRanges([E])}else if(p===s.DOC_RANGE_TYPE.TEXT)try{let E=null;S&&I?E=So(S.isBack?m:m-1,I.isBack?g:g-1,l,d,u,c,a,r,S.isBack,I.isBack):E=So(m,g,l,d,u,c,a,r),E&&this._addTextRange(E)}catch{f(m,g)}else f(m,g)}this._textSelectionInner$.next({textRanges:this._getAllTextRanges(),rectRanges:this._getAllRectRanges(),segmentId:a,segmentPage:r,style:c,isEditing:n,options:o}),this._updateInputPosition(o==null?void 0:o.forceFocus)}setCursorManually(e,n){const o=this._findNodeByCoord(e,n,{strict:!0,segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage}),a=this._getNodePosition(o);if(a==null){this._removeAllRanges();return}(o==null?void 0:o.node.streamType)===s.DataStreamTreeTokenType.PARAGRAPH&&(a.isBack=!0),this._createTextRangeByAnchorPosition(a),this._textSelectionInner$.next({textRanges:this._getAllTextRanges(),rectRanges:this._getAllRectRanges(),segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage,style:this._selectionStyle,isEditing:!1})}sync(){this._updateInputPosition()}activate(e,n,o=!1){const a=this._input===document.activeElement||document.activeElement===document.body||document.activeElement===null;this._container.style.left=`${e}px`,this._container.style.top=`${n}px`,this._container.style.zIndex="1000",(a||o)&&this.focus()}hasFocus(){return document.activeElement===this._input}focus(){this._editorFocusing&&this._input.focus()}blur(){this._input.blur()}focusEditor(){this._editorFocusing=!0,this.focus()}blurEditor(){this._editorFocusing=!1,this.blur()}deactivate(){this._container.style.left="0px",this._container.style.top="0px"}__handleDblClick(e){const{offsetX:n,offsetY:o}=e,a=this._findNodeByCoord(n,o,{strict:!1,segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage});if(a==null||a.node==null)return;const r=Eo(a.node);if(r==null)return;const{content:c,st:l,nodeIndex:A}=r;if(A===-1||Intl.Segmenter==null)return;const u=new Intl.Segmenter(void 0,{granularity:"word"}).segment(c);let f=Number.NEGATIVE_INFINITY,h=Number.NEGATIVE_INFINITY;for(const{segment:m,index:g,isWordLike:p}of u)if(g<=A&&A<g+m.length&&p){f=g+l,h=g+l+m.length;break}if(Number.isFinite(f)&&Number.isFinite(h)){this.removeAllRanges();const m=[{startOffset:f,endOffset:h}];this.addDocRanges(m,!1,{forceFocus:!0})}}__handleTripleClick(e){const{offsetX:n,offsetY:o}=e,a=this._findNodeByCoord(n,o,{strict:!1,segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage});if(a==null||a.node==null)return;const r=Eo(a.node);if(r==null)return;this.removeAllRanges();const{st:c,ed:l}=r,A=[{startOffset:c,endOffset:l}];this.addDocRanges(A,!1,{forceFocus:!0})}__onPointDown(e){var p,S;this._editorFocusing=!0;const{scene:n,mainComponent:o}=this._context,a=this._docSkeletonManagerService.getSkeleton(),{offsetX:r,offsetY:c}=e,l=this._findNodeByCoord(r,c,{strict:!1,segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage}),A=this._getNodePosition(l);if(A==null||l==null){this._removeAllRanges();return}(l==null?void 0:l.node.streamType)===s.DataStreamTreeTokenType.PARAGRAPH&&(A.isBack=!0);const d=this._textSelectionInner$.value;if(l&&e.button===2&&d){const I=a.findCharIndexByPosition(A);if(typeof I=="number"&&d.textRanges.some(E=>E.startOffset<=I&&E.endOffset>I)||typeof I=="number"&&d.rectRanges.some(E=>E.startOffset<=I&&E.endOffset>=I))return}const{segmentId:u,segmentPage:f}=l;u&&this._currentSegmentId&&u!==this._currentSegmentId&&this.setSegment(u),u&&f!==this._currentSegmentPage&&this.setSegmentPage(f),this._anchorNodePosition=A,e.shiftKey&&this._getActiveRangeInstance()?this._updateActiveRangePosition(A):e.ctrlKey?this._removeAllCollapsedTextRanges():this._isEmpty()||this._removeAllRanges(),n.disableObjectsEvent();const h=M.ScrollTimer.create(n);this._scrollTimers.push(h),h.startScroll(r,c),this._onSelectionStart$.next((p=this._getActiveRangeInstance())==null?void 0:p.startNodePosition),(S=n.getTransformer())==null||S.clearSelectedObjects();let m=r,g=c;this._scenePointerMoveSubs.push(n.onPointerMove$.subscribeEvent(I=>{const{offsetX:E,offsetY:T}=I;n.setCursor(M.CURSOR_TYPE.TEXT),!(Math.sqrt((E-m)**2+(T-g)**2)<3)&&(this._moving(E,T),h.scrolling(E,T,()=>{this._moving(E,T)}),m=E,g=T)})),this._scenePointerUpSubs.push(n.onPointerUp$.subscribeEvent(()=>{if([...this._scenePointerMoveSubs,...this._scenePointerUpSubs].forEach(E=>{E.unsubscribe()}),n.enableObjectsEvent(),this._anchorNodePosition&&!this._focusNodePosition){if(e.ctrlKey){this._disposeScrollTimers();return}const E=new je(n,o,a,this._anchorNodePosition,void 0,this._selectionStyle,this._currentSegmentId,this._currentSegmentPage);this._addTextRange(E)}else if(this._anchorNodePosition&&this._focusNodePosition){for(const E of this._rangeListCache)e.ctrlKey?E.collapsed?E.dispose():this._addTextRange(E):this._addTextRange(E);this._addRectRanges(this._rectRangeListCache),this._rangeListCache=[],this._rectRangeListCache=[]}this._anchorNodePosition=null,this._focusNodePosition=null;const I={textRanges:this._getAllTextRanges(),rectRanges:this._getAllRectRanges(),segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage,style:this._selectionStyle,isEditing:!1};this._textSelectionInner$.next(I),this._disposeScrollTimers(),this._updateInputPosition(!0)}))}removeAllRanges(){this._removeAllRanges(),this.deactivate()}getActiveTextRange(){return this._getActiveRangeInstance()}_disposeScrollTimers(){this._scrollTimers.forEach(e=>{e==null||e.dispose()}),this._scrollTimers=[]}_setSystemHighlightColorToStyle(){const{r:e,g:n,b:o,a}=M.getSystemHighlightColor(),r={strokeWidth:1.5,stroke:"rgba(0, 0, 0, 0)",strokeActive:"rgba(0, 0, 0, 1)",fill:`rgba(${e}, ${n}, ${o}, ${a!=null?a:.3})`};this._setRangeStyle(r)}_getAllTextRanges(){return this._rangeList.map(ai)}_getAllRectRanges(){return this._rectRangeList.map(Ca)}_getActiveRange(){const e=this._rangeList.find(a=>a.isActive());if(e==null)return null;const{startOffset:n,endOffset:o}=e;return n==null||o==null?null:ai(e)}_getActiveRangeInstance(){return this._rangeList.find(e=>e.isActive())}dispose(){super.dispose(),this._detachEvent(),this._removeAllRanges(),this._container.remove()}_initDOM(){const{unitId:e}=this._context,n=document.createElement("div");n.style.position="fixed",n.style.left="0px",n.style.top="0px",n.id=`univer-doc-selection-container-${e}`;const o=document.createElement("div"),a=document.createElement("div");o.appendChild(a),n.appendChild(o),this._container=n,this._inputParent=o,this._input=a,this._initInput(),this._initInputEvents(),document.body.appendChild(n)}_registerContainer(){this.disposeWithMe(this._layoutService.registerContainerElement(this._container))}_initInput(){this._inputParent.style.cssText=`
3
+ they are not in the same segment page when in header or footer.`);const{start,end}=compareNodePosition(startOrigin,endOrigin);return this._selectionIterator(start,end,(start_sp,end_sp,isFirst,isLast,divide,line)=>{const{lineHeight,asc,paddingTop,marginTop,marginBottom}=line,{glyphGroup,st}=divide;if(glyphGroup.length===0)return;const{x:startX,y:startY}=this._liquid;let borderBoxPosition,contentBoxPosition;const firstGlyph=glyphGroup[start_sp],lastGlyph=glyphGroup[end_sp],preGlyph=glyphGroup[start_sp-1],firstGlyphLeft=(firstGlyph==null?void 0:firstGlyph.left)||0,firstGlyphWidth=(firstGlyph==null?void 0:firstGlyph.width)||0,lastGlyphLeft=(lastGlyph==null?void 0:lastGlyph.left)||0,lastGlyphWidth=(lastGlyph==null?void 0:lastGlyph.width)||0,isCurrentList=(firstGlyph==null?void 0:firstGlyph.glyphType)===engineRender.GlyphType.LIST,{startOffset,endOffset}=getOffsetInDivide(glyphGroup,start_sp,end_sp,st),isStartBack=start.glyph===start_sp&&isFirst?start.isBack:!0,isEndBack=end.glyph===end_sp&&isLast?end.isBack:!1,collapsed=start===end,anchorGlyph=isStartBack&&preGlyph!=null?preGlyph:firstGlyph;if(start_sp===0&&end_sp===glyphGroup.length-1)borderBoxPosition={startX:startX+firstGlyphLeft+(isCurrentList?firstGlyphWidth:0),startY,endX:startX+lastGlyphLeft+(isEndBack?0:lastGlyphWidth),endY:startY+lineHeight-marginTop-marginBottom},contentBoxPosition={startX:startX+firstGlyphLeft+(isCurrentList?firstGlyphWidth:0),startY:startY+paddingTop+asc-anchorGlyph.bBox.ba,endX:startX+lastGlyphLeft+(isEndBack?0:lastGlyphWidth),endY:startY+paddingTop+asc+anchorGlyph.bBox.bd};else{const isStartBackFin=isStartBack&&!isCurrentList;borderBoxPosition={startX:startX+firstGlyphLeft+(isStartBackFin?0:firstGlyphWidth),startY,endX:startX+lastGlyphLeft+(isEndBack?0:lastGlyphWidth),endY:startY+lineHeight-marginTop-marginBottom},contentBoxPosition={startX:startX+firstGlyphLeft+(isStartBackFin?0:firstGlyphWidth),startY:startY+paddingTop+asc-anchorGlyph.bBox.ba,endX:startX+lastGlyphLeft+(isEndBack?0:lastGlyphWidth),endY:startY+paddingTop+asc+anchorGlyph.bBox.bd}}borderBoxPointGroup.push(pushToPoints(borderBoxPosition)),contentBoxPointGroup.push(pushToPoints(contentBoxPosition)),cursorList.push({startOffset:isStartBack?startOffset:startOffset+firstGlyph.count,endOffset:isEndBack?endOffset:endOffset+lastGlyph.count,collapsed})}),{borderBoxPointGroup,contentBoxPointGroup,cursorList}}_isValidPosition(startOrigin,endOrigin){const{segmentPage:startPage,pageType:startPageType}=startOrigin,{segmentPage:endPage,pageType:endPageType}=endOrigin;return startPageType!==endPageType?!1:startPageType===engineRender.DocumentSkeletonPageType.HEADER||startPageType===engineRender.DocumentSkeletonPageType.FOOTER?startPage===endPage:!0}_resetCurrentNodePositionState(){this._currentStartState={page:0,section:0,column:0,line:0,divide:0,glyph:0},this._currentEndState={page:0,section:0,column:0,line:0,divide:0,glyph:0}}_setNodePositionState(type=0,start,end,current){current===start?this._currentStartState[type]=1:this._currentStartState[type]=0,current===end?this._currentEndState[type]=2:this._currentEndState[type]=0}_checkPreviousNodePositionState(typeIndex,isStart=!0){let index=typeIndex,resultState;for(;index>=0;){const type=NodePositionType[index];let state;if(isStart?state=this._currentStartState[type]:state=this._currentEndState[type],state===void 0)return;if(resultState===void 0&&(resultState=state),state!==resultState)return 0;index--}return resultState}_getSelectionRuler(typeIndex,startPosition,endPosition,nextLength,current){let start_next=0,end_next=nextLength;const type=NodePositionType[typeIndex],nextType=NodePositionType[typeIndex+1];if(nextType===null||type===null)return{start_next,end_next};const start=startPosition[type],end=endPosition[type];this._setNodePositionState(type,start,end,current);const preStartNestType=this._checkPreviousNodePositionState(typeIndex),preEndNestType=this._checkPreviousNodePositionState(typeIndex,!1);return preStartNestType===1&&(start_next=startPosition[nextType]),preEndNestType===2&&(end_next=endPosition[nextType]),{start_next,end_next}}_selectionIterator(startPosition,endPosition,func){var _a2,_b2;const skeleton=this._docSkeleton;if(!skeleton)return[];const{pageType,path}=startPosition;this._liquid.reset();const skeletonData=skeleton.getSkeletonData();if(skeletonData==null)return[];const{pages,skeHeaders,skeFooters}=skeletonData,{page:pageIndex,segmentPage}=startPosition,{page:endPageIndex,segmentPage:endSegmentPage}=endPosition;if(this._resetCurrentNodePositionState(),this._documentOffsetConfig==null)return[];const{pageLayoutType,pageMarginLeft,pageMarginTop}=this._documentOffsetConfig,skipPageIndex=pageType===engineRender.DocumentSkeletonPageType.BODY||pageType===engineRender.DocumentSkeletonPageType.CELL?pageIndex:segmentPage;for(let p=0;p<skipPageIndex;p++){const page=pages[p];this._liquid.translatePage(page,pageLayoutType,pageMarginLeft,pageMarginTop)}const endIndex=pageType===engineRender.DocumentSkeletonPageType.BODY||pageType===engineRender.DocumentSkeletonPageType.CELL?endPageIndex:endSegmentPage;for(let p=skipPageIndex;p<=endIndex;p++){const page=pages[p],{headerId,footerId,pageWidth}=page;let segmentPage2=page;if(pageType===engineRender.DocumentSkeletonPageType.HEADER?segmentPage2=(_a2=skeHeaders.get(headerId))==null?void 0:_a2.get(pageWidth):pageType===engineRender.DocumentSkeletonPageType.FOOTER?segmentPage2=(_b2=skeFooters.get(footerId))==null?void 0:_b2.get(pageWidth):pageType===engineRender.DocumentSkeletonPageType.CELL&&(segmentPage2=engineRender.getPageFromPath(skeletonData,path)),segmentPage2==null){this._liquid.translatePage(page,pageLayoutType,pageMarginLeft,pageMarginTop);continue}const sections=segmentPage2.sections,{start_next:start_s,end_next:end_s}=this._getSelectionRuler(NodePositionMap.page,startPosition,endPosition,sections.length-1,pageType===engineRender.DocumentSkeletonPageType.BODY||pageType===engineRender.DocumentSkeletonPageType.CELL?p:0);switch(this._liquid.translateSave(),pageType){case engineRender.DocumentSkeletonPageType.HEADER:this._liquid.translatePagePadding({...segmentPage2,marginLeft:page.marginLeft});break;case engineRender.DocumentSkeletonPageType.FOOTER:{const footerTop=page.pageHeight-segmentPage2.height-segmentPage2.marginBottom;this._liquid.translate(page.marginLeft,footerTop);break}case engineRender.DocumentSkeletonPageType.CELL:{this._liquid.translatePagePadding(page);const rowSke=segmentPage2.parent,tableSke=rowSke.parent,{left:cellLeft}=segmentPage2,{top:tableTop,left:tableLeft}=tableSke,{top:rowTop}=rowSke;this._liquid.translate(tableLeft+cellLeft,tableTop+rowTop),this._liquid.translatePagePadding(segmentPage2);break}default:this._liquid.translatePagePadding(page);break}for(let s=start_s;s<=end_s;s++){const section=sections[s],columns=section.columns,{start_next:start_c,end_next:end_c}=this._getSelectionRuler(NodePositionMap.section,startPosition,endPosition,columns.length-1,s);this._liquid.translateSection(section);for(let c=start_c;c<=end_c;c++){const column=columns[c],lines=column.lines,{start_next:start_l,end_next:end_l}=this._getSelectionRuler(NodePositionMap.column,startPosition,endPosition,lines.length-1,c);this._liquid.translateColumn(column);for(let l=start_l;l<=end_l;l++){const line=lines[l],{divides}=line,{start_next:start_d,end_next:end_d}=this._getSelectionRuler(NodePositionMap.line,startPosition,endPosition,divides.length-1,l);this._liquid.translateSave(),this._liquid.translateLine(line,!0,!1);for(let d=start_d;d<=end_d;d++){const divide=divides[d];this._liquid.translateSave(),this._liquid.translateDivide(divide);const{glyphGroup}=divide,{start_next:start_sp,end_next:end_sp}=this._getSelectionRuler(NodePositionMap.divide,startPosition,endPosition,glyphGroup.length-1,d);let isFirst=!1,isLast=!1;p===skipPageIndex&&s===start_s&&c===start_c&&l===start_l&&d===start_d&&(isFirst=!0),p===endIndex&&s===end_s&&c===end_c&&l===end_l&&d===end_d&&(isLast=!0),func&&func(start_sp,end_sp,isFirst,isLast,divide,line,column,section,segmentPage2),this._liquid.translateRestore()}this._liquid.translateRestore()}}}this._liquid.translateRestore(),this._liquid.translatePage(page,pageLayoutType,pageMarginLeft,pageMarginTop)}}};__name(_NodePositionConvertToCursor,"NodePositionConvertToCursor");let NodePositionConvertToCursor=_NodePositionConvertToCursor;function isValidRectRange(anchorNodePosition,focusNodePosition){const{path:anchorPath}=anchorNodePosition,{path:focusPath}=focusNodePosition;if(anchorPath.length!==focusPath.length||anchorPath.indexOf("cells")===-1)return!1;const tableIdIndex=anchorPath.indexOf("skeTables")+1,rowIndex=anchorPath.indexOf("rows")+1,cellIndex=anchorPath.indexOf("cells")+1,{tableId:anchorTableId,sliceIndex:anchorSliceIndex}=engineRender.getTableIdAndSliceIndex(anchorPath[tableIdIndex]),{tableId:focusTableId,sliceIndex:focusSliceIndex}=engineRender.getTableIdAndSliceIndex(focusPath[tableIdIndex]);if(anchorTableId!==focusTableId)return!1;const anchorRowIndex=anchorPath[rowIndex],focusRowIndex=focusPath[rowIndex],anchorCellIndex=anchorPath[cellIndex],focusCellIndex=focusPath[cellIndex];return!(anchorRowIndex===focusRowIndex&&anchorCellIndex===focusCellIndex&&anchorSliceIndex===focusSliceIndex)}__name(isValidRectRange,"isValidRectRange");function isInSameTableCell(anchorNodePosition,focusNodePosition){const{path:anchorPath}=anchorNodePosition,{path:focusPath}=focusNodePosition;return anchorPath.indexOf("cells")===-1||focusPath.indexOf("cells")===-1||anchorPath.length!==focusPath.length?!1:core.Tools.diffValue(anchorPath,focusPath)}__name(isInSameTableCell,"isInSameTableCell");function isInSameTableCellData(skeleton,anchorNodePosition,focusNodePosition){var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2;const{path:anchorPath}=anchorNodePosition,{path:focusPath}=focusNodePosition;if(anchorPath.indexOf("cells")===-1||focusPath.indexOf("cells")===-1)return!1;const anchorGlyph=skeleton.findGlyphByPosition(anchorNodePosition),focusGlyph=skeleton.findGlyphByPosition(focusNodePosition),anchorCellPage=(_d2=(_c2=(_b2=(_a2=anchorGlyph==null?void 0:anchorGlyph.parent)==null?void 0:_a2.parent)==null?void 0:_b2.parent)==null?void 0:_c2.parent)==null?void 0:_d2.parent,focusCellPage=(_h2=(_g2=(_f2=(_e2=focusGlyph==null?void 0:focusGlyph.parent)==null?void 0:_e2.parent)==null?void 0:_f2.parent)==null?void 0:_g2.parent)==null?void 0:_h2.parent;if(anchorCellPage==null||focusCellPage==null)return!1;const anchorRow=anchorCellPage.parent,focusRow=focusCellPage.parent,anchorColIndex=anchorRow.cells.indexOf(anchorCellPage),focusColIndex=focusRow.cells.indexOf(focusCellPage);return anchorColIndex===focusColIndex&&anchorRow.index===focusRow.index}__name(isInSameTableCellData,"isInSameTableCellData");function compareNodePositionInTable(a,b){if(isInSameTableCell(a,b))return compareNodePositionLogic(a,b);const{path:aPath}=a,{path:bPath}=b,aTableId=aPath[aPath.length-5],bTableId=bPath[bPath.length-5];if(aTableId!==bTableId&&typeof aTableId=="string"&&typeof bTableId=="string"){const aSlideId=aTableId.split("#-#")[1],bSlideId=bTableId.split("#-#")[1];return+aSlideId<+bSlideId}const aRowCount=aPath[aPath.length-3],bRowCount=bPath[bPath.length-3],aCellCount=aPath[aPath.length-1],bCellCount=bPath[bPath.length-1];return aRowCount<bRowCount?!0:aRowCount>bRowCount?!1:aCellCount<=bCellCount}__name(compareNodePositionInTable,"compareNodePositionInTable");function isEmptyCellPage$1(cell){return cell.sections[0].columns[0].lines.length===0}__name(isEmptyCellPage$1,"isEmptyCellPage$1");function findNonEmptyCellPages(cells,startCol,endCol){let s=startCol,e=endCol,startCell=cells[s],endCell=cells[e];for(;s<e&&(isEmptyCellPage$1(startCell)||isEmptyCellPage$1(endCell));)isEmptyCellPage$1(startCell)?(s++,startCell=cells[s]):isEmptyCellPage$1(endCell)&&(e--,endCell=cells[e]);if(!isEmptyCellPage$1(startCell)&&!isEmptyCellPage$1(endCell))return[startCell,endCell]}__name(findNonEmptyCellPages,"findNonEmptyCellPages");const _NodePositionConvertToRectRange=class _NodePositionConvertToRectRange{constructor(_documentOffsetConfig,_docSkeleton){__publicField(this,"_liquid",new engineRender.Liquid);this._documentOffsetConfig=_documentOffsetConfig,this._docSkeleton=_docSkeleton}getRangePointData(startNodePosition,endNodePosition){const pointGroup=[],skeletonData=this._docSkeleton.getSkeletonData();if(skeletonData==null)return;const{pages}=skeletonData,{segmentPage:startSegmentPage,page:startPage,pageType}=startNodePosition,rectInfo=this._getTableRectRangeInfo(startNodePosition,endNodePosition);if(rectInfo==null)return;const{tableId,startRowIndex:startRow,startColumnIndex:startColumn,endRowIndex:endRow,endColumnIndex:endColumn}=rectInfo;this._liquid.reset();const{pageLayoutType,pageMarginLeft,pageMarginTop}=this._documentOffsetConfig,skipPageIndex=pageType===engineRender.DocumentSkeletonPageType.BODY||pageType===engineRender.DocumentSkeletonPageType.CELL?startPage:startSegmentPage;for(let p=0;p<skipPageIndex;p++){const page=pages[p];this._liquid.translatePage(page,pageLayoutType,pageMarginLeft,pageMarginTop)}for(let p=skipPageIndex;p<pages.length;p++){const page=pages[p];this._liquid.translatePagePadding(page);const{skeTables}=page;let table=null;for(const[id,tableSke]of skeTables.entries())id.startsWith(tableId)&&(table=tableSke);if(table==null){this._liquid.restorePagePadding(page),this._liquid.translatePage(page,pageLayoutType,pageMarginLeft,pageMarginTop);continue}this._liquid.translateSave(),this._liquid.translate(0,table.top);const{x,y}=this._liquid,{left:tableLeft}=table;for(const row of table.rows)if(row.index>=startRow&&row.index<=endRow){const cells=findNonEmptyCellPages(row.cells,startColumn,endColumn);if(cells==null)continue;const[rowStartCell,rowEndCell]=cells,position={startX:x+rowStartCell.left+tableLeft,startY:y+row.top,endX:x+rowEndCell.left+rowEndCell.pageWidth+tableLeft,endY:y+row.top+row.height};pointGroup.push(pushToPoints(position))}this._liquid.translateRestore(),this._liquid.restorePagePadding(page),this._liquid.translatePage(page,pageLayoutType,pageMarginLeft,pageMarginTop)}return{pointGroup,startRow,startColumn,endRow,endColumn,tableId}}getNodePositionGroup(anchorNodePosition,focusNodePosition){const nodePositionGroup=[],anchorIndex=this._docSkeleton.findCharIndexByPosition(anchorNodePosition),focusIndex=this._docSkeleton.findCharIndexByPosition(focusNodePosition);if(anchorIndex==null||focusIndex==null)return;const compare=anchorIndex<focusIndex,rectInfo=this._getTableRectRangeInfo(anchorNodePosition,focusNodePosition);if(rectInfo==null)return;const{tableId,startRowIndex,startColumnIndex,endRowIndex,endColumnIndex}=rectInfo,tableNode=this._docSkeleton.getViewModel().findTableNodeById(tableId);if(tableNode==null)return;const totalColumns=tableNode.children[0].children.length;if(startColumnIndex===0&&endColumnIndex===totalColumns-1){const startCellNode=tableNode.children[startRowIndex].children[startColumnIndex],startNodePosition=this._docSkeleton.findNodePositionByCharIndex(startCellNode.startIndex+1),endCellNode=tableNode.children[endRowIndex].children[endColumnIndex],endNodePosition=this._docSkeleton.findNodePositionByCharIndex(endCellNode.endIndex-2);if(startNodePosition==null||endNodePosition==null)return;nodePositionGroup.push({anchor:compare?startNodePosition:endNodePosition,focus:compare?endNodePosition:startNodePosition})}else for(let i=startRowIndex;i<=endRowIndex;i++){const rowNode=tableNode.children[i],startCellNode=rowNode.children[startColumnIndex],endCellNode=rowNode.children[endColumnIndex],startNodePosition=this._docSkeleton.findNodePositionByCharIndex(startCellNode.startIndex+1),endNodePosition=this._docSkeleton.findNodePositionByCharIndex(endCellNode.endIndex-2);if(startNodePosition==null||endNodePosition==null)return;nodePositionGroup.push({anchor:compare?startNodePosition:endNodePosition,focus:compare?endNodePosition:startNodePosition})}return nodePositionGroup}_getTableRectRangeInfo(anchorPosition,focusPosition){const skeletonData=this._docSkeleton.getSkeletonData();if(skeletonData==null)return;const{pages}=skeletonData,{path:anchorPath}=anchorPosition,{path:focusPath}=focusPosition,anchorCell=engineRender.getPageFromPath(skeletonData,anchorPath),focusCell=engineRender.getPageFromPath(skeletonData,focusPath);if(anchorCell==null||focusCell==null)return;const tableId=anchorCell.segmentId,anchorRow=anchorCell.parent.index,anchorColumn=anchorCell.parent.cells.indexOf(anchorCell),focusRow=(focusCell==null?void 0:focusCell.parent).index,focusColumn=(focusCell==null?void 0:focusCell.parent).cells.indexOf(focusCell),startRowIndex=Math.min(anchorRow,focusRow),endRowIndex=Math.max(anchorRow,focusRow),startColumnIndex=Math.min(anchorColumn,focusColumn),endColumnIndex=Math.max(anchorColumn,focusColumn);return{pages,tableId,startRowIndex,startColumnIndex,endRowIndex,endColumnIndex}}};__name(_NodePositionConvertToRectRange,"NodePositionConvertToRectRange");let NodePositionConvertToRectRange=_NodePositionConvertToRectRange;const TEXT_RANGE_KEY_PREFIX="__TestSelectionRange__",TEXT_ANCHOR_KEY_PREFIX="__TestSelectionAnchor__",ID_LENGTH$2=6,BLINK_ON=500,BLINK_OFF=500,TEXT_RANGE_LAYER_INDEX=3;function getAnchorBounding(pointsGroup){const points=pointsGroup[0],startPoint=points[0],endPoint=points[2],{x:startX,y:startY}=startPoint,{x:endX,y:endY}=endPoint;return{left:startX,top:startY,width:endX-startX,height:endY-startY}}__name(getAnchorBounding,"getAnchorBounding");function getLineBounding(pointsGroup){return pointsGroup.map(line=>{let xMin=1/0,xMax=-1/0,yMin=1/0,yMax=-1/0;return line.forEach(point=>{xMin=Math.min(point.x,xMin),xMax=Math.max(point.x,xMax),yMax=Math.max(point.y,yMax),yMin=Math.min(point.y,yMin)}),{left:xMin,right:xMax,top:yMin,bottom:yMax}})}__name(getLineBounding,"getLineBounding");const _TextRange=class _TextRange{constructor(_scene,_document,_docSkeleton,anchorNodePosition,focusNodePosition,style=engineRender.NORMAL_TEXT_SELECTION_PLUGIN_STYLE,_segmentId="",_segmentPage=-1){__publicField(this,"rangeType",core.DOC_RANGE_TYPE.TEXT);__publicField(this,"_current",!1);__publicField(this,"_rangeShape");__publicField(this,"_anchorShape");__publicField(this,"_cursorList",[]);__publicField(this,"_anchorBlinkTimer",null);this._scene=_scene,this._document=_document,this._docSkeleton=_docSkeleton,this.anchorNodePosition=anchorNodePosition,this.focusNodePosition=focusNodePosition,this.style=style,this._segmentId=_segmentId,this._segmentPage=_segmentPage,this._anchorBlink(),this.refresh()}_anchorBlink(){setTimeout(()=>{this._anchorShape&&this._anchorShape.visible&&this.deactivateStatic()},BLINK_ON),this._anchorBlinkTimer=setInterval(()=>{this._anchorShape&&this._anchorShape.visible&&(this.activeStatic(),setTimeout(()=>{this.deactivateStatic()},BLINK_ON))},BLINK_OFF+BLINK_ON)}get startOffset(){var _a2;const{startOffset}=(_a2=getOneTextSelectionRange(this._cursorList))!=null?_a2:{},body=this._docSkeleton.getViewModel().getDataModel().getSelfOrHeaderFooterModel(this._segmentId).getBody();if(startOffset==null||body==null)return startOffset;const maxLength=body.dataStream.length-2;return Math.min(maxLength,startOffset)}get endOffset(){var _a2;const{endOffset}=(_a2=getOneTextSelectionRange(this._cursorList))!=null?_a2:{},body=this._docSkeleton.getViewModel().getDataModel().getSelfOrHeaderFooterModel(this._segmentId).getBody();if(endOffset==null||body==null)return endOffset;const maxLength=body.dataStream.length-2;return Math.min(endOffset,maxLength)}get collapsed(){const{startOffset,endOffset}=this;return startOffset!=null&&startOffset===endOffset}get startNodePosition(){if(this.anchorNodePosition==null)return null;if(this.focusNodePosition==null)return this.anchorNodePosition;const{start}=compareNodePosition(this.anchorNodePosition,this.focusNodePosition);return start}get endNodePosition(){if(this.anchorNodePosition==null)return this.focusNodePosition;if(this.focusNodePosition==null)return null;const{end}=compareNodePosition(this.anchorNodePosition,this.focusNodePosition);return end}get direction(){const{collapsed,anchorNodePosition,focusNodePosition}=this;return collapsed||anchorNodePosition==null||focusNodePosition==null?core.RANGE_DIRECTION.NONE:compareNodePositionLogic(anchorNodePosition,focusNodePosition)?core.RANGE_DIRECTION.FORWARD:core.RANGE_DIRECTION.BACKWARD}get segmentId(){return this._segmentId}get segmentPage(){return this._segmentPage}getAbsolutePosition(){const anchor=this.anchorNodePosition,focus=this.focusNodePosition;if(this._isEmpty())return;const documentOffsetConfig=this._document.getOffsetConfig(),{docsLeft,docsTop}=documentOffsetConfig,convertor=new NodePositionConvertToCursor(documentOffsetConfig,this._docSkeleton);if(this._isCollapsed()){const{contentBoxPointGroup,cursorList:cursorList2}=convertor.getRangePointData(anchor,anchor);if(this._setCursorList(cursorList2),contentBoxPointGroup.length===0)return;const pos2=getAnchorBounding(contentBoxPointGroup);return{...pos2,left:pos2.left+docsLeft,top:pos2.top+docsTop}}const{borderBoxPointGroup,cursorList}=convertor.getRangePointData(anchor,focus);if(this._setCursorList(cursorList),borderBoxPointGroup.length===0)return;const pos=getAnchorBounding(borderBoxPointGroup);return{...pos,left:pos.left+docsLeft,top:pos.top+docsTop}}getAnchor(){return this._anchorShape}activeStatic(){var _a2,_b2;(_b2=this._anchorShape)==null||_b2.setProps({stroke:((_a2=this.style)==null?void 0:_a2.strokeActive)||engineRender.getColor(core.COLORS.black,1)})}deactivateStatic(){var _a2,_b2;(_b2=this._anchorShape)==null||_b2.setProps({stroke:((_a2=this.style)==null?void 0:_a2.stroke)||engineRender.getColor(core.COLORS.black,0)})}isActive(){return this._current===!0}activate(){this._current=!0}deactivate(){this._current=!1}dispose(){var _a2,_b2;(_a2=this._rangeShape)==null||_a2.dispose(),this._rangeShape=null,(_b2=this._anchorShape)==null||_b2.dispose(),this._anchorShape=null,this._anchorBlinkTimer&&(clearInterval(this._anchorBlinkTimer),this._anchorBlinkTimer=null)}isIntersection(compareRange){const{startOffset:activeStart,endOffset:activeEnd}=this,{startOffset:compareStart,endOffset:compareEnd}=compareRange;return activeStart==null||activeEnd==null||compareStart==null||compareEnd==null?!1:activeStart<=compareEnd&&activeEnd>=compareStart}refresh(){var _a2,_b2;const{_document,_docSkeleton}=this,anchor=this.anchorNodePosition,focus=this.focusNodePosition;if((_a2=this._anchorShape)==null||_a2.hide(),(_b2=this._rangeShape)==null||_b2.hide(),this._isEmpty())return;const documentOffsetConfig=_document.getOffsetConfig(),{docsLeft,docsTop}=documentOffsetConfig,convertor=new NodePositionConvertToCursor(documentOffsetConfig,_docSkeleton);if(this._isCollapsed()){const{contentBoxPointGroup,cursorList:cursorList2}=convertor.getRangePointData(anchor,anchor);if(this._setCursorList(cursorList2),contentBoxPointGroup.length>0){const glyphAtCursor=_docSkeleton.findGlyphByPosition(anchor);this._createOrUpdateAnchor(contentBoxPointGroup,docsLeft,docsTop,glyphAtCursor)}return}const{borderBoxPointGroup,cursorList}=convertor.getRangePointData(anchor,focus);this._setCursorList(cursorList),borderBoxPointGroup.length>0&&this._createOrUpdateRange(borderBoxPointGroup,docsLeft,docsTop)}_isEmpty(){return this.anchorNodePosition==null&&this.focusNodePosition==null}_isCollapsed(){const anchor=this.anchorNodePosition,focus=this.focusNodePosition;if(anchor!=null&&focus==null)return!0;if(anchor==null||focus==null)return!1;const keys=Object.keys(NodePositionMap);for(const key of keys){const startNodeValue=anchor[key],endNodeValue=focus[key];if(startNodeValue!==endNodeValue)return!1}return anchor.isBack===focus.isBack}_createOrUpdateRange(pointsGroup,left,top){var _a2;if(this._rangeShape){this._rangeShape.translate(left,top),this._rangeShape.updatePointGroup(pointsGroup),this._rangeShape.show();return}const OPACITY=.3,polygon=new engineRender.RegularPolygon(TEXT_RANGE_KEY_PREFIX+core.Tools.generateRandomId(ID_LENGTH$2),{pointsGroup,fill:((_a2=this.style)==null?void 0:_a2.fill)||engineRender.getColor(core.COLORS.black,OPACITY),left,top,evented:!1,debounceParentDirty:!1});this._rangeShape=polygon,this._scene.addObject(polygon,TEXT_RANGE_LAYER_INDEX)}_createOrUpdateAnchor(pointsGroup,docsLeft,docsTop,glyph){var _a2,_b2,_c2;const bounding=getAnchorBounding(pointsGroup),{left:boundingLeft}=bounding;let{top:boundingTop,height}=bounding;const MIN_CURSOR_HEIGHT=14;height<MIN_CURSOR_HEIGHT&&(boundingTop-=MIN_CURSOR_HEIGHT-height,height=MIN_CURSOR_HEIGHT);const ITALIC_DEGREE=12;let left=boundingLeft+docsLeft;const top=boundingTop+docsTop,isItalic=((_a2=glyph==null?void 0:glyph.ts)==null?void 0:_a2.it)===core.BooleanNumber.TRUE;if(isItalic&&(left+=height*Math.tan(ITALIC_DEGREE*Math.PI/180)/2),this._anchorShape){this._anchorShape.transformByState({left,top,height}),this._anchorShape.show(),isItalic?this._anchorShape.skew(-12,0):this._anchorShape.skew(0,0);return}const anchor=new engineRender.Rect(TEXT_ANCHOR_KEY_PREFIX+core.Tools.generateRandomId(ID_LENGTH$2),{left,top,height,strokeWidth:((_b2=this.style)==null?void 0:_b2.strokeWidth)||1.5,stroke:((_c2=this.style)==null?void 0:_c2.strokeActive)||engineRender.getColor(core.COLORS.black,1),evented:!1});isItalic&&anchor.skew(-12,0),this._anchorShape=anchor,this._scene.addObject(anchor,TEXT_RANGE_LAYER_INDEX),this.activeStatic()}_setCursorList(cursorList){cursorList.length!==0&&(this._cursorList=cursorList)}};__name(_TextRange,"TextRange");let TextRange=_TextRange;const RECT_RANGE_KEY_PREFIX="__DocTableRectRange__",ID_LENGTH$1=6;function convertPositionsToRectRanges(scene,document2,docSkeleton,anchorNodePosition,focusNodePosition,style=engineRender.NORMAL_TEXT_SELECTION_PLUGIN_STYLE,segmentId="",segmentPage=-1){const documentOffsetConfig=document2.getOffsetConfig(),nodePositionGroup=new NodePositionConvertToRectRange(documentOffsetConfig,docSkeleton).getNodePositionGroup(anchorNodePosition,focusNodePosition);return(nodePositionGroup!=null?nodePositionGroup:[]).map(position=>new RectRange(scene,document2,docSkeleton,position.anchor,position.focus,style,segmentId,segmentPage))}__name(convertPositionsToRectRanges,"convertPositionsToRectRanges");const _RectRange=class _RectRange{constructor(_scene,_document,_docSkeleton,anchorNodePosition,focusNodePosition,style=engineRender.NORMAL_TEXT_SELECTION_PLUGIN_STYLE,_segmentId="",_segmentPage=-1){__publicField(this,"rangeType",core.DOC_RANGE_TYPE.RECT);__publicField(this,"_rangeShape");__publicField(this,"_current",!1);__publicField(this,"_startRow");__publicField(this,"_startCol");__publicField(this,"_endRow");__publicField(this,"_endCol");__publicField(this,"_tableId");this._scene=_scene,this._document=_document,this._docSkeleton=_docSkeleton,this.anchorNodePosition=anchorNodePosition,this.focusNodePosition=focusNodePosition,this.style=style,this._segmentId=_segmentId,this._segmentPage=_segmentPage,this.refresh()}get startOffset(){const{startNodePosition}=this;return this._docSkeleton.findCharIndexByPosition(startNodePosition)}get endOffset(){const{endNodePosition}=this;return this._docSkeleton.findCharIndexByPosition(endNodePosition)}get collapsed(){return!1}get startRow(){return this._startRow}get startColumn(){return this._startCol}get endRow(){return this._endRow}get endColumn(){return this._endCol}get tableId(){return this._tableId}get segmentId(){return this._segmentId}get segmentPage(){return this._segmentPage}get spanEntireRow(){var _a2;const table=(_a2=this._docSkeleton.getViewModel().getSnapshot().tableSource)==null?void 0:_a2[this._tableId],{_startCol,_endCol}=this;if(table==null)throw new Error("Table is not found.");const{tableColumns}=table;return _startCol===0&&_endCol===tableColumns.length-1}get spanEntireColumn(){var _a2;const table=(_a2=this._docSkeleton.getViewModel().getSnapshot().tableSource)==null?void 0:_a2[this._tableId],{_startRow,_endRow}=this;if(table==null)throw new Error("Table is not found.");const{tableRows}=table;return _startRow===0&&_endRow===tableRows.length-1}get spanEntireTable(){return this.spanEntireRow&&this.spanEntireColumn}get startNodePosition(){const{anchorNodePosition,focusNodePosition}=this;return compareNodePositionInTable(anchorNodePosition,focusNodePosition)?anchorNodePosition:focusNodePosition}get endNodePosition(){const{anchorNodePosition,focusNodePosition}=this;return compareNodePositionInTable(anchorNodePosition,focusNodePosition)?focusNodePosition:anchorNodePosition}get direction(){const{anchorNodePosition,focusNodePosition}=this;return compareNodePositionInTable(anchorNodePosition,focusNodePosition)?core.RANGE_DIRECTION.FORWARD:core.RANGE_DIRECTION.BACKWARD}isActive(){return this._current===!0}activate(){this._current=!0}deactivate(){this._current=!1}dispose(){var _a2;(_a2=this._rangeShape)==null||_a2.dispose(),this._rangeShape=null}isIntersection(compareRange){const{startRow,startColumn,endRow,endColumn}=this,{startRow:cStartRow,startColumn:cStartColumn,endRow:cEndRow,endColumn:cEndColumn}=compareRange,rect1={left:startColumn,top:startRow,right:endColumn,bottom:endRow},rect2={left:cStartColumn,top:cStartRow,right:cEndColumn,bottom:cEndRow};return core.Rectangle.hasIntersectionBetweenTwoRect(rect1,rect2)}refresh(){var _a2;(_a2=this._rangeShape)==null||_a2.hide();const{startNodePosition,endNodePosition,_document,_docSkeleton}=this,documentOffsetConfig=_document.getOffsetConfig(),{docsLeft,docsTop}=documentOffsetConfig,rectInfo=new NodePositionConvertToRectRange(documentOffsetConfig,_docSkeleton).getRangePointData(startNodePosition,endNodePosition);if(rectInfo==null)return;const{pointGroup=[],startRow,endRow,startColumn,endColumn,tableId}=rectInfo;(pointGroup==null?void 0:pointGroup.length)>0&&this._createOrUpdateRange(pointGroup,docsLeft,docsTop),this._updateTableInfo(startRow,endRow,startColumn,endColumn,tableId)}_updateTableInfo(startRow,endRow,startCol,endCol,tableId){this._startRow=startRow,this._endRow=endRow,this._startCol=startCol,this._endCol=endCol,this._tableId=tableId}_createOrUpdateRange(pointsGroup,left,top){var _a2;if(this._rangeShape){this._rangeShape.translate(left,top),this._rangeShape.updatePointGroup(pointsGroup),this._rangeShape.show();return}const OPACITY=.3,polygon=new engineRender.RegularPolygon(RECT_RANGE_KEY_PREFIX+core.Tools.generateRandomId(ID_LENGTH$1),{pointsGroup,fill:((_a2=this.style)==null?void 0:_a2.fill)||engineRender.getColor(core.COLORS.black,OPACITY),left,top,evented:!1,debounceParentDirty:!1});this._rangeShape=polygon,this._scene.addObject(polygon,TEXT_RANGE_LAYER_INDEX)}};__name(_RectRange,"RectRange");let RectRange=_RectRange;function getTextRangeFromCharIndex(startOffset,endOffset,scene,document2,skeleton,style,segmentId,segmentPage,startIsBack=!0,endIsBack=!0){const startNodePosition=skeleton.findNodePositionByCharIndex(startOffset,startIsBack,segmentId,segmentPage),endNodePosition=skeleton.findNodePositionByCharIndex(endOffset,endIsBack,segmentId,segmentPage);if(!(startNodePosition==null||endNodePosition==null))return new TextRange(scene,document2,skeleton,startNodePosition,endNodePosition,style,segmentId,segmentPage)}__name(getTextRangeFromCharIndex,"getTextRangeFromCharIndex");function getRectRangeFromCharIndex(startOffset,endOffset,scene,document2,skeleton,style,segmentId,segmentPage){const startNodePosition=skeleton.findNodePositionByCharIndex(startOffset,!0,segmentId,segmentPage),endNodePosition=skeleton.findNodePositionByCharIndex(endOffset,!0,segmentId,segmentPage);if(!(startNodePosition==null||endNodePosition==null))return new RectRange(scene,document2,skeleton,startNodePosition,endNodePosition,style,segmentId,segmentPage)}__name(getRectRangeFromCharIndex,"getRectRangeFromCharIndex");function getRangeListFromCharIndex(startOffset,endOffset,scene,document2,skeleton,style,segmentId,segmentPage){const startNodePosition=skeleton.findNodePositionByCharIndex(startOffset,!0,segmentId,segmentPage),endNodePosition=skeleton.findNodePositionByCharIndex(endOffset,!0,segmentId,segmentPage);if(!(startNodePosition==null||endNodePosition==null))return getRangeListFromSelection(startNodePosition,endNodePosition,scene,document2,skeleton,style,segmentId,segmentPage)}__name(getRangeListFromCharIndex,"getRangeListFromCharIndex");function getRangeListFromSelection(anchorPosition,focusPosition,scene,document2,skeleton,style,segmentId,segmentPage){const textRanges=[],rectRanges=[],rangeParams=[scene,document2,skeleton,anchorPosition,focusPosition,style,segmentId,segmentPage];if(isInSameTableCellData(skeleton,anchorPosition,focusPosition)){if(isInSameTableCell(anchorPosition,focusPosition))return textRanges.push(new TextRange(...rangeParams)),{textRanges,rectRanges};{const ranges=convertPositionsToRectRanges(...rangeParams);return rectRanges.push(...ranges),{textRanges,rectRanges}}}if(isValidRectRange(anchorPosition,focusPosition)){const ranges=convertPositionsToRectRanges(...rangeParams);return rectRanges.push(...ranges),{textRanges,rectRanges}}const viewModel=skeleton.getViewModel().getSelfOrHeaderFooterViewModel(segmentId),anchorOffset=skeleton.findCharIndexByPosition(anchorPosition),focusOffset=skeleton.findCharIndexByPosition(focusPosition);if(anchorOffset==null||focusOffset==null)return;const direction=anchorOffset<=focusOffset?core.RANGE_DIRECTION.FORWARD:core.RANGE_DIRECTION.BACKWARD,startOffset=Math.min(anchorOffset,focusOffset),endOffset=Math.max(anchorOffset,focusOffset);let start=startOffset,end=endOffset;for(const section of viewModel.getChildren())for(const paragraph of section.children){const{startIndex,endIndex,children}=paragraph,paragraphIndex=section.children.indexOf(paragraph),nextParagraph=section.children[paragraphIndex+1],table=children[0];let endInTable=!1;if(table){const{startIndex:tableStart,endIndex:tableEnd,children:children2}=table;let tableStartPosition=null,tableEndPosition=null;const startRow=children2.find(row=>row.startIndex<=startOffset&&row.endIndex>=startOffset),endRow=children2.find(row=>row.startIndex<=endOffset&&row.endIndex>=endOffset);if(startOffset>tableStart&&startOffset<tableEnd)tableStartPosition=skeleton.findNodePositionByCharIndex(startRow.startIndex+2,!0,segmentId,segmentPage),tableEndPosition=skeleton.findNodePositionByCharIndex(tableEnd-4,!0,segmentId,segmentPage),start=tableEnd+1;else if(endOffset>tableStart&&endOffset<tableEnd)tableStartPosition=skeleton.findNodePositionByCharIndex(tableStart+3,!0,segmentId,segmentPage),tableEndPosition=skeleton.findNodePositionByCharIndex(endRow.endIndex-3,!0,segmentId,segmentPage),end=tableStart-1,endInTable=!0;else if(tableStart>startOffset&&tableEnd<endOffset){if(tableStartPosition=skeleton.findNodePositionByCharIndex(tableStart+3,!0,segmentId,segmentPage),tableEndPosition=skeleton.findNodePositionByCharIndex(tableEnd-4,!0,segmentId,segmentPage),start<=tableStart-1){const sp=skeleton.findNodePositionByCharIndex(start,!0,segmentId,segmentPage),ep=skeleton.findNodePositionByCharIndex(tableStart-1,!1,segmentId,segmentPage),ap=direction===core.RANGE_DIRECTION.FORWARD?sp:ep,fp=direction===core.RANGE_DIRECTION.FORWARD?ep:sp;textRanges.push(new TextRange(scene,document2,skeleton,ap,fp,style,segmentId,segmentPage))}start=tableEnd+1}if(tableStartPosition&&tableEndPosition){const ap=direction===core.RANGE_DIRECTION.FORWARD?tableStartPosition:tableEndPosition,fp=direction===core.RANGE_DIRECTION.FORWARD?tableEndPosition:tableStartPosition;rectRanges.push(...convertPositionsToRectRanges(scene,document2,skeleton,ap,fp,style,segmentId,segmentPage))}}if(end===endIndex+1&&!endInTable&&nextParagraph&&nextParagraph.children.length&&(end=endIndex,endInTable=!0),end>=startIndex&&end<=endIndex||endInTable){const sp=skeleton.findNodePositionByCharIndex(start,!0,segmentId,segmentPage),ep=skeleton.findNodePositionByCharIndex(end,!endInTable,segmentId,segmentPage),ap=direction===core.RANGE_DIRECTION.FORWARD?sp:ep,fp=direction===core.RANGE_DIRECTION.FORWARD?ep:sp;if(rectRanges.length&&core.Tools.diffValue(ap,fp))continue;textRanges.push(new TextRange(scene,document2,skeleton,ap,fp,style,segmentId,segmentPage))}}return{textRanges,rectRanges}}__name(getRangeListFromSelection,"getRangeListFromSelection");function getCanvasOffsetByEngine(engine){const canvas=engine==null?void 0:engine.getCanvasElement();if(!canvas)return{left:0,top:0};const{top,left}=engineRender.getOffsetRectForDom(canvas);return{left,top}}__name(getCanvasOffsetByEngine,"getCanvasOffsetByEngine");function getParagraphInfoByGlyph(node){var _a2;const line=(_a2=node.parent)==null?void 0:_a2.parent,column=line==null?void 0:line.parent;if(line==null||column==null)return;const{paragraphIndex}=line,lines=column.lines.filter(line2=>line2.paragraphIndex===paragraphIndex);let nodeIndex=-1,content="",hasFound=!1;for(const line2 of lines)for(const divide of line2.divides)for(const glyph of divide.glyphGroup)hasFound||(nodeIndex+=glyph.count),glyph===node&&(hasFound=!0),content+=glyph.count>0?glyph.content:"";return{st:lines[0].st,ed:paragraphIndex,content,nodeIndex}}__name(getParagraphInfoByGlyph,"getParagraphInfoByGlyph");function serializeTextRange(textRange){const{startOffset,endOffset,collapsed,rangeType,startNodePosition,endNodePosition,direction,segmentId,segmentPage}=textRange;return{startOffset,endOffset,collapsed,rangeType,startNodePosition,endNodePosition,direction,segmentId,segmentPage,isActive:textRange.isActive()}}__name(serializeTextRange,"serializeTextRange");function serializeRectRange(rectRange){const serializedTextRange=serializeTextRange(rectRange),{startRow,startColumn,endRow,endColumn,tableId,spanEntireRow,spanEntireColumn,spanEntireTable}=rectRange;return{...serializedTextRange,startRow,startColumn,endRow,endColumn,tableId,spanEntireRow,spanEntireColumn,spanEntireTable}}__name(serializeRectRange,"serializeRectRange");var __defProp$r=Object.defineProperty,__getOwnPropDesc$r=Object.getOwnPropertyDescriptor,__decorateClass$r=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$r(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$r(target,key,result),result},"__decorateClass$r"),__decorateParam$r=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$r");exports2.DocSelectionRenderService=(_b=class extends core.RxDisposable{constructor(_context,_layoutService,_logService,_univerInstanceService,_docSkeletonManagerService){super();__publicField(this,"_onInputBefore$",new rxjs.Subject);__publicField(this,"onInputBefore$",this._onInputBefore$.asObservable());__publicField(this,"_onKeydown$",new rxjs.Subject);__publicField(this,"onKeydown$",this._onKeydown$.asObservable());__publicField(this,"_onInput$",new rxjs.Subject);__publicField(this,"onInput$",this._onInput$.asObservable());__publicField(this,"_onCompositionstart$",new rxjs.BehaviorSubject(null));__publicField(this,"onCompositionstart$",this._onCompositionstart$.asObservable());__publicField(this,"_onCompositionupdate$",new rxjs.BehaviorSubject(null));__publicField(this,"onCompositionupdate$",this._onCompositionupdate$.asObservable());__publicField(this,"_onCompositionend$",new rxjs.BehaviorSubject(null));__publicField(this,"onCompositionend$",this._onCompositionend$.asObservable());__publicField(this,"_onSelectionStart$",new rxjs.BehaviorSubject(null));__publicField(this,"onSelectionStart$",this._onSelectionStart$.asObservable());__publicField(this,"onChangeByEvent$",rxjs.merge(this._onInput$,this._onKeydown$.pipe(rxjs.filter(e=>e.event.keyCode===ui.KeyCode.BACKSPACE)),this._onCompositionend$));__publicField(this,"_onPaste$",new rxjs.Subject);__publicField(this,"onPaste$",this._onPaste$.asObservable());__publicField(this,"_textSelectionInner$",new rxjs.BehaviorSubject(null));__publicField(this,"textSelectionInner$",this._textSelectionInner$.asObservable());__publicField(this,"_onFocus$",new rxjs.Subject);__publicField(this,"onFocus$",this._onFocus$.asObservable());__publicField(this,"_onBlur$",new rxjs.Subject);__publicField(this,"onBlur$",this._onBlur$.asObservable());__publicField(this,"_onPointerDown$",new rxjs.Subject);__publicField(this,"onPointerDown$",this._onPointerDown$.asObservable());__publicField(this,"_container");__publicField(this,"_inputParent");__publicField(this,"_input");__publicField(this,"_scrollTimers",[]);__publicField(this,"_rangeList",[]);__publicField(this,"_rangeListCache",[]);__publicField(this,"_rectRangeList",[]);__publicField(this,"_rectRangeListCache",[]);__publicField(this,"_anchorNodePosition",null);__publicField(this,"_focusNodePosition",null);__publicField(this,"_currentSegmentId","");__publicField(this,"_currentSegmentPage",-1);__publicField(this,"_selectionStyle",engineRender.NORMAL_TEXT_SELECTION_PLUGIN_STYLE);__publicField(this,"_onPointerEvent",!1);__publicField(this,"_viewPortObserverMap",new Map);__publicField(this,"_isIMEInputApply",!1);__publicField(this,"_scenePointerMoveSubs",[]);__publicField(this,"_scenePointerUpSubs",[]);__publicField(this,"_reserveRanges",!1);this._context=_context,this._layoutService=_layoutService,this._logService=_logService,this._univerInstanceService=_univerInstanceService,this._docSkeletonManagerService=_docSkeletonManagerService,this._initDOM(),this._registerContainer(),this._setSystemHighlightColorToStyle(),this._listenCurrentUnitChange()}get isOnPointerEvent(){return this._onPointerEvent}get isFocusing(){return this._input===document.activeElement}get canFocusing(){return this.isFocusing||document.activeElement===document.body||document.activeElement===null}_listenCurrentUnitChange(){this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).pipe(rxjs.takeUntil(this.dispose$)).subscribe(documentModel=>{if(documentModel==null)return;documentModel.getUnitId()!==this._context.unitId&&!this._reserveRanges&&this.removeAllRanges()})}get activeViewPort(){return this._context.scene.getViewports()[0]}setSegment(id){this._currentSegmentId=id}getSegment(){return this._currentSegmentId}setSegmentPage(pageIndex){this._currentSegmentPage=pageIndex}getSegmentPage(){return this._currentSegmentPage}setReserveRangesStatus(status){this._reserveRanges=status}_setRangeStyle(style=engineRender.NORMAL_TEXT_SELECTION_PLUGIN_STYLE){this._selectionStyle=style}addDocRanges(ranges,isEditing=!0,options){const{_currentSegmentId:segmentId,_currentSegmentPage:segmentPage,_selectionStyle:style}=this,{scene,mainComponent}=this._context,document2=mainComponent,docSkeleton=this._docSkeletonManagerService.getSkeleton(),generalAddRange=__name((startOffset,endOffset)=>{const rangeList=getRangeListFromCharIndex(startOffset,endOffset,scene,document2,docSkeleton,style,segmentId,segmentPage);if(rangeList==null)return;const{textRanges,rectRanges}=rangeList;for(const textRange of textRanges)this._addTextRange(textRange);this._addRectRanges(rectRanges)},"generalAddRange");for(const range of ranges){const{startOffset,endOffset,rangeType,startNodePosition,endNodePosition}=range;if(rangeType===core.DOC_RANGE_TYPE.RECT){const rectRange=getRectRangeFromCharIndex(startOffset,endOffset,scene,document2,docSkeleton,style,segmentId,segmentPage);rectRange&&this._addRectRanges([rectRange])}else if(rangeType===core.DOC_RANGE_TYPE.TEXT)try{let textRange=null;startNodePosition&&endNodePosition?textRange=getTextRangeFromCharIndex(startNodePosition.isBack?startOffset:startOffset-1,endNodePosition.isBack?endOffset:endOffset-1,scene,document2,docSkeleton,style,segmentId,segmentPage,startNodePosition.isBack,endNodePosition.isBack):textRange=getTextRangeFromCharIndex(startOffset,endOffset,scene,document2,docSkeleton,style,segmentId,segmentPage),textRange&&this._addTextRange(textRange)}catch{generalAddRange(startOffset,endOffset)}else generalAddRange(startOffset,endOffset)}this._textSelectionInner$.next({textRanges:this._getAllTextRanges(),rectRanges:this._getAllRectRanges(),segmentId,segmentPage,style,isEditing,options}),this._updateInputPosition(options==null?void 0:options.forceFocus)}setCursorManually(evtOffsetX,evtOffsetY){const startNode=this._findNodeByCoord(evtOffsetX,evtOffsetY,{strict:!0,segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage}),position=this._getNodePosition(startNode);if(position==null){this._removeAllRanges();return}(startNode==null?void 0:startNode.node.streamType)===core.DataStreamTreeTokenType.PARAGRAPH&&(position.isBack=!0),this._createTextRangeByAnchorPosition(position),this._textSelectionInner$.next({textRanges:this._getAllTextRanges(),rectRanges:this._getAllRectRanges(),segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage,style:this._selectionStyle,isEditing:!1})}sync(){this._updateInputPosition()}activate(x,y,force=!1){this._container.style.left=`${x}px`,this._container.style.top=`${y}px`,this._container.style.zIndex="1000",(this.canFocusing||force)&&this.focus()}hasFocus(){return document.activeElement===this._input}focus(){this._input.focus()}blur(){this._input.blur()}deactivate(){this._container.style.left="0px",this._container.style.top="0px"}__handleDblClick(evt){const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,startNode=this._findNodeByCoord(evtOffsetX,evtOffsetY,{strict:!1,segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage});if(startNode==null||startNode.node==null)return;const paragraphInfo=getParagraphInfoByGlyph(startNode.node);if(paragraphInfo==null)return;const{content,st,nodeIndex}=paragraphInfo;if(nodeIndex===-1||Intl.Segmenter==null)return;const segments=new Intl.Segmenter(void 0,{granularity:"word"}).segment(content);let startOffset=Number.NEGATIVE_INFINITY,endOffset=Number.NEGATIVE_INFINITY;for(const{segment,index,isWordLike}of segments)if(index<=nodeIndex&&nodeIndex<index+segment.length&&isWordLike){startOffset=index+st,endOffset=index+st+segment.length;break}if(Number.isFinite(startOffset)&&Number.isFinite(endOffset)){this.removeAllRanges();const textRanges=[{startOffset,endOffset}];this.addDocRanges(textRanges,!1,{forceFocus:!0})}}__handleTripleClick(evt){const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,startNode=this._findNodeByCoord(evtOffsetX,evtOffsetY,{strict:!1,segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage});if(startNode==null||startNode.node==null)return;const paragraphInfo=getParagraphInfoByGlyph(startNode.node);if(paragraphInfo==null)return;this.removeAllRanges();const{st,ed}=paragraphInfo,textRanges=[{startOffset:st,endOffset:ed}];this.addDocRanges(textRanges,!1,{forceFocus:!0})}__onPointDown(evt){var _a2,_b2;const{scene,mainComponent}=this._context,skeleton=this._docSkeletonManagerService.getSkeleton(),{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,startNode=this._findNodeByCoord(evtOffsetX,evtOffsetY,{strict:!1,segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage}),position=this._getNodePosition(startNode);if(position==null||startNode==null){this._removeAllRanges();return}(startNode==null?void 0:startNode.node.streamType)===core.DataStreamTreeTokenType.PARAGRAPH&&(position.isBack=!0);const docSelection=this._textSelectionInner$.value;if(startNode&&evt.button===2&&docSelection){const nodeCharIndex=skeleton.findCharIndexByPosition(position);if(typeof nodeCharIndex=="number"&&docSelection.textRanges.some(textRange=>textRange.startOffset<=nodeCharIndex&&textRange.endOffset>nodeCharIndex)||typeof nodeCharIndex=="number"&&docSelection.rectRanges.some(rectRange=>rectRange.startOffset<=nodeCharIndex&&rectRange.endOffset>=nodeCharIndex))return}const{segmentId,segmentPage}=startNode;segmentId&&this._currentSegmentId&&segmentId!==this._currentSegmentId&&this.setSegment(segmentId),segmentId&&segmentPage!==this._currentSegmentPage&&this.setSegmentPage(segmentPage),this._anchorNodePosition=position,evt.shiftKey&&this._getActiveRangeInstance()?this._updateActiveRangePosition(position):evt.ctrlKey?this._removeAllCollapsedTextRanges():this._isEmpty()||this._removeAllRanges(),scene.disableObjectsEvent();const scrollTimer=engineRender.ScrollTimer.create(scene);this._scrollTimers.push(scrollTimer),scrollTimer.startScroll(evtOffsetX,evtOffsetY),this._onSelectionStart$.next((_a2=this._getActiveRangeInstance())==null?void 0:_a2.startNodePosition),(_b2=scene.getTransformer())==null||_b2.clearSelectedObjects();let preMoveOffsetX=evtOffsetX,preMoveOffsetY=evtOffsetY;this._onPointerEvent=!0,this._scenePointerMoveSubs.push(scene.onPointerMove$.subscribeEvent(moveEvt=>{const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt;scene.setCursor(engineRender.CURSOR_TYPE.TEXT),!(Math.sqrt((moveOffsetX-preMoveOffsetX)**2+(moveOffsetY-preMoveOffsetY)**2)<3)&&(this._moving(moveOffsetX,moveOffsetY),scrollTimer.scrolling(moveOffsetX,moveOffsetY,()=>{this._moving(moveOffsetX,moveOffsetY)}),preMoveOffsetX=moveOffsetX,preMoveOffsetY=moveOffsetY)})),this._scenePointerUpSubs.push(scene.onPointerUp$.subscribeEvent(()=>{if([...this._scenePointerMoveSubs,...this._scenePointerUpSubs].forEach(e=>{e.unsubscribe()}),this._onPointerEvent=!1,scene.enableObjectsEvent(),this._anchorNodePosition&&!this._focusNodePosition){if(evt.ctrlKey){this._disposeScrollTimers();return}const textRange=new TextRange(scene,mainComponent,skeleton,this._anchorNodePosition,void 0,this._selectionStyle,this._currentSegmentId,this._currentSegmentPage);this._addTextRange(textRange)}else if(this._anchorNodePosition&&this._focusNodePosition){for(const textRange of this._rangeListCache)evt.ctrlKey?textRange.collapsed?textRange.dispose():this._addTextRange(textRange):this._addTextRange(textRange);this._addRectRanges(this._rectRangeListCache),this._rangeListCache=[],this._rectRangeListCache=[]}this._anchorNodePosition=null,this._focusNodePosition=null;const selectionInfo={textRanges:this._getAllTextRanges(),rectRanges:this._getAllRectRanges(),segmentId:this._currentSegmentId,segmentPage:this._currentSegmentPage,style:this._selectionStyle,isEditing:!1};this._textSelectionInner$.next(selectionInfo),this._disposeScrollTimers(),this._updateInputPosition(!0)}))}removeAllRanges(){this._removeAllRanges(),this.deactivate()}getActiveTextRange(){return this._getActiveRangeInstance()}_disposeScrollTimers(){this._scrollTimers.forEach(timer=>{timer==null||timer.dispose()}),this._scrollTimers=[]}_setSystemHighlightColorToStyle(){const{r:r2,g,b,a}=engineRender.getSystemHighlightColor(),style={strokeWidth:1.5,stroke:"rgba(0, 0, 0, 0)",strokeActive:"rgba(0, 0, 0, 1)",fill:`rgba(${r2}, ${g}, ${b}, ${a!=null?a:.3})`};this._setRangeStyle(style)}_getAllTextRanges(){return this._rangeList.map(serializeTextRange)}_getAllRectRanges(){return this._rectRangeList.map(serializeRectRange)}getAllTextRanges(){return this._getAllTextRanges()}getAllRectRanges(){return this._getAllRectRanges()}_getActiveRange(){const activeRange=this._rangeList.find(range=>range.isActive());if(activeRange==null)return null;const{startOffset,endOffset}=activeRange;return startOffset==null||endOffset==null?null:serializeTextRange(activeRange)}_getActiveRangeInstance(){return this._rangeList.find(range=>range.isActive())}dispose(){super.dispose(),this._detachEvent(),this._removeAllRanges(),this._container.remove()}_initDOM(){const{unitId}=this._context,container=document.createElement("div");container.style.position="fixed",container.style.left="0px",container.style.top="0px",container.id=`univer-doc-selection-container-${unitId}`;const inputParent=document.createElement("div"),inputDom=document.createElement("div");inputParent.appendChild(inputDom),container.appendChild(inputParent),this._container=container,this._inputParent=inputParent,this._input=inputDom,this._initInput(),this._initInputEvents(),document.body.appendChild(container)}_registerContainer(){this.disposeWithMe(this._layoutService.registerContainerElement(this._container))}_initInput(){this._inputParent.style.cssText=`
12
4
  position:absolute;
13
5
  height:1px;
14
6
  width:1px;
15
7
  overflow: hidden;
16
- `,this._input.contentEditable="true",this._input.classList.add("univer-editor"),this._input.style.cssText=`
8
+ `,this._input.contentEditable="true",this._input.classList.add("univer-editor"),this._input.id=`__editor_${this._context.unitId}`,this._input.style.cssText=`
17
9
  position: absolute;
18
10
  overflow: hidden;
19
11
  opacity: 1;
@@ -24,22 +16,23 @@
24
16
  caret-color: transparent;
25
17
  white-space: pre-wrap;
26
18
  user-select: text;
27
- `}_getNodePosition(e){if(e==null)return;const{node:n,ratioX:o,segmentPage:a}=e,c=this._docSkeletonManagerService.getSkeleton().findPositionByGlyph(n,a);if(c==null)return;let A=o<.5;return n.glyphType===M.GlyphType.LIST&&(A=!0),{...c,isBack:A}}_interactTextRanges(e){const n=[];for(const o of this._rangeList){if(e.some(a=>a.isIntersection(o))){o.dispose();continue}n.push(o)}this._rangeList=n}_interactRectRanges(e){const n=[];for(const o of this._rectRangeList){if(e.some(a=>a.isIntersection(o))){o.dispose();continue}n.push(o)}this._rectRangeList=n}_removeCollapsedTextRange(){const e=this._rangeList;this._rangeList=[];for(const n of e)n.collapsed?n.dispose():this._rangeList.push(n)}_removeAllRanges(){this._removeAllTextRanges(),this._removeAllRectRanges()}_removeAllCacheRanges(){this._rangeListCache.forEach(e=>{e.dispose()}),this._rectRangeListCache.forEach(e=>{e.dispose()}),this._rangeListCache=[],this._rectRangeListCache=[]}_removeAllTextRanges(){this._rangeList.forEach(e=>{e.dispose()}),this._rangeList=[]}_removeAllRectRanges(){this._rectRangeList.forEach(e=>{e.dispose()}),this._rectRangeList=[]}_removeAllCollapsedTextRanges(){for(const e of this._rangeList)e.collapsed&&e.dispose()}_deactivateAllTextRanges(){this._rangeList.forEach(e=>{e.deactivate()})}_deactivateAllRectRanges(){this._rectRangeList.forEach(e=>{e.deactivate()})}_addTextRangesToCache(e){this._rangeListCache.push(...e)}_addTextRange(e){this._deactivateAllTextRanges(),e.activate(),this._rangeList.push(e)}_addRectRangesToCache(e){this._rectRangeListCache.push(...e)}_addRectRanges(e){e.length!==0&&(this._deactivateAllRectRanges(),e[e.length-1].activate(),this._rectRangeList.push(...e))}_createTextRangeByAnchorPosition(e){this._removeAllRanges();const{scene:n,mainComponent:o}=this._context,a=this._docSkeletonManagerService.getSkeleton(),r=new je(n,o,a,e,void 0,this._selectionStyle,this._currentSegmentId,this._currentSegmentPage);this._addTextRange(r)}_updateActiveRangePosition(e){const n=this._getActiveRangeInstance();if(n==null||n.anchorNodePosition==null){this._logService.error("[DocSelectionRenderService] _updateActiveRangeFocusPosition: active range has no anchor");return}this._removeAllRanges(),this._anchorNodePosition=n.anchorNodePosition,this._focusNodePosition=e;const{scene:o,mainComponent:a}=this._context,r=this._docSkeletonManagerService.getSkeleton(),{_anchorNodePosition:c,_focusNodePosition:l,_selectionStyle:A,_currentSegmentId:d,_currentSegmentPage:u}=this;if(c==null||l==null||a==null)return;const f=si(c,l,o,a,r,A,d,u);if(f==null)return;const{textRanges:h,rectRanges:m}=f;this._addTextRangesToCache(h),this._addRectRangesToCache(m),this.deactivate()}_isEmpty(){return this._rangeList.length===0&&this._rectRangeList.length===0}_getCanvasOffset(){var n;const e=(n=this._context.scene)==null?void 0:n.getEngine();return Io(e)}_updateInputPosition(e=!1){const n=this._getActiveRangeInstance(),o=n==null?void 0:n.getAnchor();if(!o||o&&!o.visible||this.activeViewPort==null){this.focus();return}const{left:a,top:r}=o,c=this.activeViewPort.getAbsoluteVector(M.Vector2.FromArray([a,r])),{x:l,y:A}=c;let{left:d,top:u}=this._getCanvasOffset();d+=l,u+=A,this.activate(d,u,e)}_moving(e,n){var I,E;const{_currentSegmentId:o,_currentSegmentPage:a}=this,r=this._findNodeByCoord(e,n,{strict:!0,segmentId:o,segmentPage:a}),c=this._getNodePosition(r);if(c==null||r==null)return;const l=r==null?void 0:r.node.parent,A=l==null?void 0:l.glyphGroup[l.glyphGroup.indexOf(r.node)+1];(r==null?void 0:r.node.streamType)===s.DataStreamTreeTokenType.PARAGRAPH&&(A==null?void 0:A.streamType)===s.DataStreamTreeTokenType.SECTION_BREAK&&(c.isBack=!0),this._focusNodePosition=c,this._removeAllCacheRanges();const{_anchorNodePosition:d,_selectionStyle:u}=this,{scene:f,mainComponent:h}=this._context,m=this._docSkeletonManagerService.getSkeleton();if(d==null||h==null)return;const g=si(d,c,f,h,m,u,o,a);if(g==null)return;const{textRanges:p,rectRanges:S}=g;this._rangeList.length>0&&p.length>0&&this._interactTextRanges(p),this._rectRangeList.length>0&&S.length>0&&this._interactRectRanges(S),this._addTextRangesToCache(p),this._addRectRangesToCache(S),this.deactivate(),(E=(I=this._context.scene)==null?void 0:I.getEngine())==null||E.setCapture()}__attachScrollEvent(){const e=this.activeViewPort;if(!e)return;const{unitId:n}=this._context;if(this._viewPortObserverMap.has(n))return;const o=e.onScrollAfter$.subscribeEvent(r=>{if(!r.viewport)return;const l=this._getActiveRangeInstance();l==null||l.activeStatic()}),a=e.onScrollEnd$.subscribeEvent(r=>{const c=r.viewport;if(!c)return;const l=c.getBounding(),A=this._getActiveRangeInstance(),d=A==null?void 0:A.getAnchor();if(!(!d||d&&!d.visible)){if(l){const{left:u,top:f,right:h,bottom:m}=l.viewBound;if(d.left<u||d.left>h||d.top<f||d.top>m){A==null||A.deactivateStatic();return}}this._updateInputPosition()}});this._viewPortObserverMap.set(n,{scrollBefore:o,scrollStop:a})}_initInputEvents(){this.disposeWithMe(N.fromEvent(this._input,"keydown").subscribe(e=>{this._isIMEInputApply||this._eventHandle(e,n=>{this._onKeydown$.next(n)})})),this.disposeWithMe(N.fromEvent(this._input,"input").subscribe(e=>{if(!(e.inputType==="historyUndo"||e.inputType==="historyRedo")){if(this._rectRangeList.length>0)return e.stopPropagation(),e.preventDefault();this._isIMEInputApply||this._eventHandle(e,n=>{this._onInputBefore$.next(n),this._onInput$.next(n)})}})),this.disposeWithMe(N.fromEvent(this._input,"compositionstart").subscribe(e=>{if(this._rectRangeList.length>0)return e.stopPropagation(),e.preventDefault();this._isIMEInputApply=!0,this._eventHandle(e,n=>{this._onCompositionstart$.next(n)})})),this.disposeWithMe(N.fromEvent(this._input,"compositionend").subscribe(e=>{this._isIMEInputApply=!1,this._eventHandle(e,n=>{this._onCompositionend$.next(n)})})),this.disposeWithMe(N.fromEvent(this._input,"compositionupdate").subscribe(e=>{this._eventHandle(e,n=>{this._onInputBefore$.next(n),this._onCompositionupdate$.next(n)})})),this.disposeWithMe(N.fromEvent(this._input,"paste").subscribe(e=>{this._eventHandle(e,n=>{this._onPaste$.next(n)})})),this.disposeWithMe(N.fromEvent(this._input,"focus").subscribe(e=>{this._eventHandle(e,n=>{this._onFocus$.next(n)})})),this.disposeWithMe(N.fromEvent(this._input,"blur").subscribe(e=>{this._eventHandle(e,n=>{this._onBlur$.next(n)})}))}_eventHandle(e,n){const o=this._input.textContent||"";this._input.innerHTML="";const a=this._getActiveRange(),r=this._getAllTextRanges();n({event:e,content:o,activeRange:a,rangeList:r})}_getTransformCoordForDocumentOffset(e,n){const o=this._context.mainComponent,{documentTransform:a}=o.getOffsetConfig();if(this.activeViewPort==null||a==null)return;const r=this.activeViewPort.transformVector2SceneCoord(M.Vector2.FromArray([e,n]));if(r)return a.clone().invert().applyPoint(r)}_findNodeByCoord(e,n,o){const a=this._getTransformCoordForDocumentOffset(e,n);if(a==null)return;const r=this._context.mainComponent,c=this._docSkeletonManagerService.getSkeleton(),{pageLayoutType:l=M.PageLayoutType.VERTICAL,pageMarginLeft:A,pageMarginTop:d}=r.getOffsetConfig();return c.findNodeByCoord(a,l,A,d,o)}_detachEvent(){this._onInputBefore$.complete(),this._onKeydown$.complete(),this._onInput$.complete(),this._onCompositionstart$.complete(),this._onCompositionupdate$.complete(),this._onCompositionend$.complete(),this._onSelectionStart$.complete(),this._textSelectionInner$.complete(),this._onPaste$.complete(),this._onFocus$.complete(),this._onBlur$.complete(),this._onPointerDown$.complete()}},C.DocSelectionRenderService=ya([$t(1,y.ILayoutService),$t(2,s.ILogService),$t(3,s.IUniverInstanceService),$t(4,s.Inject(D.DocSkeletonManagerService))],C.DocSelectionRenderService);class vo extends s.Disposable{constructor(e,n,o,a,r){super();R(this,"_change$",new N.Subject);R(this,"change$",this._change$.asObservable());R(this,"_input$",new N.Subject);R(this,"input$",this._input$.asObservable());R(this,"_paste$",new N.Subject);R(this,"paste$",this._paste$.asObservable());R(this,"_focus",!1);R(this,"_focus$",new N.Subject);R(this,"focus$",this._focus$.asObservable());R(this,"_blur$",new N.Subject);R(this,"blur$",this._blur$.asObservable());R(this,"_selectionChange$",new N.Subject);R(this,"selectionChange$",this._selectionChange$.asObservable());R(this,"_valueLegality",!0);R(this,"_openForSheetUnitId");R(this,"_openForSheetSubUnitId");this._param=e,this._univerInstanceService=n,this._docSelectionManagerService=o,this._commandService=a,this._undoRedoService=r,this._openForSheetUnitId=this._param.openForSheetUnitId,this._openForSheetSubUnitId=this._param.openForSheetSubUnitId,this._listenSelection()}_listenSelection(){const e=this._param.render.with(C.DocSelectionRenderService);this.disposeWithMe(e.onBlur$.subscribe(n=>{this._blur$.next(n);const o=this.getDocumentData();this._change$.next({target:this,data:o})})),this.disposeWithMe(e.onFocus$.subscribe(n=>{this._focus$.next(n)})),this.disposeWithMe(e.onPaste$.subscribe(n=>{this._paste$.next(n)})),this.disposeWithMe(N.merge(e.onInput$,e.onKeydown$.pipe(yt.filter(n=>{const o=n.event;return o.ctrlKey||o.metaKey?[y.KeyCode.X,y.KeyCode.V].includes(o.keyCode):[y.KeyCode.BACKSPACE].includes(o.keyCode)})),e.onCompositionupdate$,e.onCompositionend$,e.onPaste$).subscribe(n=>{if(n==null)return;const{content:o=""}=n,a=this.getDocumentData();this._input$.next({target:this,content:o,data:a,isComposing:n.event.type==="compositionupdate"})})),this.disposeWithMe(this._docSelectionManagerService.textSelection$.subscribe(n=>{if(n==null)return;const{unitId:o,subUnitId:a,...r}=n,c=this.getEditorId();o===c&&this._selectionChange$.next(r)}))}focus(){const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),n=this.getEditorId();(e==null||e.getUnitId()!==n)&&this._univerInstanceService.setCurrentUnitForType(n),this._param.render.with(C.DocSelectionRenderService).focus();const a=this._docSelectionManagerService.getDocRanges({unitId:n,subUnitId:n});a&&this._docSelectionManagerService.replaceDocRanges(a,{unitId:n,subUnitId:n},!1),this._focus=!0}blur(){this._param.render.with(C.DocSelectionRenderService).blur(),this._focus=!1}select(){const e=this.getDocumentData();return this.setSelectionRanges([{startOffset:0,endOffset:e.body?e.body.dataStream.length-2:0}])}setSelectionRanges(e){const n=this.getEditorId(),o={unitId:n,subUnitId:n};return this._docSelectionManagerService.replaceDocRanges(e,o,!1)}getSelectionRanges(){const e=this.getEditorId(),n={unitId:e,subUnitId:e};return this._docSelectionManagerService.getDocRanges(n)}getEditorId(){return this._getEditorId()}getDocumentData(){return this._getDocDataModel().getSnapshot()}setDocumentData(e,n){const{id:o}=e;this._commandService.executeCommand(Xn.id,{unitId:o,snapshot:e,textRanges:n})}clearUndoRedoHistory(){const e=this.getEditorId();return this._undoRedoService.clearUndoRedo(e)}dispose(){this._getDocDataModel().dispose()}get editorUnitId(){return this._param.editorUnitId}get params(){return this._param}get cancelDefaultResizeListener(){return this._param.cancelDefaultResizeListener}get render(){return this._param.render}isSingleChoice(){var e;return(e=this._param.isSingleChoice)!=null?e:!1}setOpenForSheetUnitId(e){this._openForSheetUnitId=e}getOpenForSheetUnitId(){return this._openForSheetUnitId}setOpenForSheetSubUnitId(e){this._openForSheetSubUnitId=e}getOpenForSheetSubUnitId(){return this._openForSheetSubUnitId}isValueLegality(){return this._valueLegality===!0}setValueLegality(e=!0){this._valueLegality=e}isFocus(){return this._focus}setFocus(e=!1){this._focus=e}isSingle(){return this._param.isSingle===!0||this.onlyInputRange()}isReadOnly(){return this._param.readonly===!0}onlyInputContent(){return this._param.onlyInputContent===!0}onlyInputFormula(){return this._param.onlyInputFormula===!0}onlyInputRange(){return this._param.onlyInputRange===!0}getBoundingClientRect(){return this._param.editorDom.getBoundingClientRect()}isVisible(){return this._param.visible}isSheetEditor(){return this._param.isSheetEditor===!0}isFormulaEditor(){return this._param.isFormulaEditor===!0}getValue(){var o;return(((o=this._getDocDataModel().getBody())==null?void 0:o.dataStream)||"").replace(/\r\n/g,"").replace(/\n/g,"").replace(/\n/g,"")}getBody(){return this._getDocDataModel().getBody()}update(e){this._param={...this._param,...e}}verticalAlign(){var c;const e=this._getDocDataModel();if(e==null)return;const{width:n,height:o}=this._param.editorDom.getBoundingClientRect();if(o===0||n===0)return;if(!this.isSingle()){e.updateDocumentDataPageSize(n,void 0);return}let a=s.DEFAULT_STYLES.fs;(c=this._param.canvasStyle)!=null&&c.fontSize&&(a=this._param.canvasStyle.fontSize);const r=(o-a*4/3)/2-2;e.updateDocumentDataMargin({t:r<0?0:r}),e.updateDocumentDataPageSize(void 0,void 0)}updateCanvasStyle(){var o;const e=this._getDocDataModel();if(e==null)return;const n={};(o=this._param.canvasStyle)!=null&&o.fontSize&&(n.textStyle==null&&(n.textStyle={}),n.textStyle.fs=this._param.canvasStyle.fontSize),e.updateDocumentStyle(n)}_getDocDataModel(){const e=this._getEditorId();return this._univerInstanceService.getUnit(e,s.UniverInstanceType.UNIVER_DOC)}_getEditorId(){var e;return((e=this._param.initialSnapshot)==null?void 0:e.id)||this._param.editorUnitId||""}}var Ra=Object.defineProperty,Oa=Object.getOwnPropertyDescriptor,xa=(i,t,e,n)=>{for(var o=n>1?void 0:n?Oa(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Ra(t,e,o),o},We=(i,t)=>(e,n)=>t(e,n,i);const Ma=["univer-editor","univer-range-selector","univer-range-selector-editor","univer-render-canvas","univer-text-editor-container-placeholder"];C.EditorService=class extends s.Disposable{constructor(e,n,o,a,r,c,l){super();R(this,"_editors",new Map);R(this,"_focusEditorUnitId");R(this,"_state$",new N.Subject);R(this,"state$",this._state$.asObservable());R(this,"_currentSheetUnitId");R(this,"_currentSheetSubUnitId");R(this,"_inputFormula$",new N.Subject);R(this,"inputFormula$",this._inputFormula$.asObservable());R(this,"_resize$",new N.Subject);R(this,"resize$",this._resize$.asObservable());R(this,"_closeRangePrompt$",new N.Subject);R(this,"closeRangePrompt$",this._closeRangePrompt$.asObservable());R(this,"_blur$",new N.Subject);R(this,"blur$",this._blur$.asObservable());R(this,"_focus$",new N.Subject);R(this,"focus$",this._focus$.asObservable());R(this,"_setValue$",new N.Subject);R(this,"setValue$",this._setValue$.asObservable());R(this,"_valueChange$",new N.Subject);R(this,"valueChange$",this._valueChange$.asObservable());R(this,"_focusStyle$",new N.Subject);R(this,"focusStyle$",this._focusStyle$.asObservable());R(this,"_singleSelection$",new N.Subject);R(this,"singleSelection$",this._singleSelection$.asObservable());R(this,"_spreadsheetFocusState",!1);this._univerInstanceService=e,this._renderManagerService=n,this._lexerTreeBuilder=o,this._docSelectionManagerService=a,this._contextService=r,this._commandService=c,this._undoRedoService=l,this._initUniverFocusListener()}_initUniverFocusListener(){this.disposeWithMe(N.fromEvent(window,"focusin").subscribe(e=>{const n=e.target;this._blurSheetEditor(n)}))}_blurSheetEditor(e){if(Ma.some(o=>e.classList.contains(o)))return;const n=this.getFocusEditor();n&&n.isSheetEditor()!==!0&&this.blur()}setFocusId(e){this._focusEditorUnitId=e}getFocusId(){return this._focusEditorUnitId}getFocusEditor(){if(this._focusEditorUnitId)return this.getEditor(this._focusEditorUnitId)}isEditor(e){return this._editors.has(e)}isSheetEditor(e){const n=this._editors.get(e);return!!(n&&n.isSheetEditor())}closeRangePrompt(){const e=this._univerInstanceService.getCurrentUniverDocInstance();if(!e)return;const n=e.getUnitId();this._contextService.setContextValue(s.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(s.FOCUSING_EDITOR_STANDALONE,!1),!(!this.isEditor(n)||this.isSheetEditor(n))&&(this.changeSpreadsheetFocusState(!1),this.blur())}changeSpreadsheetFocusState(e){this._spreadsheetFocusState=e}getSpreadsheetFocusState(){return this._spreadsheetFocusState}focusStyle(e){const n=this.getEditor(e);if(!n)return!1;n.setFocus(!0),this._contextService.setContextValue(s.EDITOR_ACTIVATED,!0),s.isInternalEditorID(e)||(this._contextService.setContextValue(s.FOCUSING_EDITOR_STANDALONE,!0),this._contextService.setContextValue(s.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE,n.isSingle())),this._spreadsheetFocusState||this.singleSelection(!!n.isSingleChoice()),this._focusStyle$.next(e),this.setFocusId(e)}singleSelection(e){this._singleSelection$.next(e)}selectionChangingState(){const e=this.getFocusId();if(e==null)return!0;const n=this.getEditor(e);return!n||n.isSheetEditor()||n.isFormulaEditor()?!0:n.onlyInputRange()!==!0&&n.onlyInputFormula()!==!0?(this.blur(),!0):n.onlyInputFormula()===!0&&this._contextService.getContextValue(s.FOCUSING_EDITOR_INPUT_FORMULA)!==!0?(this.blur(),!0):!this.getSpreadsheetFocusState()}blur(){this._spreadsheetFocusState||(this._closeRangePrompt$.next(null),this.singleSelection(!1),this.setFocusId(null),this._contextService.setContextValue(s.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(s.FOCUSING_EDITOR_STANDALONE,!1)),this.getAllEditor().forEach(e=>{e.setFocus(!1)}),this._focusStyle$.next(),this._blur$.next(null)}focus(e=(n=>(n=this._univerInstanceService.getCurrentUniverDocInstance())==null?void 0:n.getUnitId())()){if(e==null)return;const o=this.getEditor(e);if(o==null)return;this._univerInstanceService.setCurrentUnitForType(e);const a=o.getValue().length;this.focusStyle(e),this._focus$.next({startOffset:a,endOffset:a})}setFormula(e,n=this._getCurrentEditorUnitId()){this._inputFormula$.next({formulaString:e,editorUnitId:n})}setValue(e,n=this._getCurrentEditorUnitId()){this.setValueNoRefresh(e,n),this._refreshValueChange(n)}setValueNoRefresh(e,n){this._setValue$.next({body:{dataStream:e},editorUnitId:n}),this.resize(n)}getValue(e){const n=this.getEditor(e);if(n!=null)return n.getValue()}setRichValue(e,n=this._getCurrentEditorUnitId()){this._setValue$.next({body:e,editorUnitId:n}),this._refreshValueChange(n)}getRichValue(e){const n=this.getEditor(e);if(n!=null)return n.getBody()}dispose(){this._state$.complete(),this._editors.clear(),super.dispose()}getEditor(e=this._getCurrentEditorUnitId()){return this._editors.get(e)}getAllEditor(){return this._editors}getFirstEditor(){return[...this.getAllEditor().values()][0]}resize(e){const n=this.getEditor(e);n!=null&&(n.verticalAlign(),this._resize$.next(e))}isVisible(e){var n;return(n=this.getEditor(e))==null?void 0:n.isVisible()}setOperationSheetUnitId(e){this._currentSheetUnitId=e}getOperationSheetUnitId(){return this._currentSheetUnitId}setOperationSheetSubUnitId(e){this._currentSheetSubUnitId=e}getOperationSheetSubUnitId(){return this._currentSheetSubUnitId}register(e,n){var A,d,u,f;const{initialSnapshot:o,canvasStyle:a={}}=e,r=o.id;this._univerInstanceService.getUnit(r,s.UniverInstanceType.UNIVER_DOC)==null&&this._univerInstanceService.createUnit(s.UniverInstanceType.UNIVER_DOC,o||this._getBlank(r),{makeCurrent:!1});let l=this._renderManagerService.getRenderById(r);if(l==null&&(this._renderManagerService.create(r),l=this._renderManagerService.getRenderById(r)),l){l.engine.setContainer(n);const h=new vo({...e,render:l,editorDom:n,canvasStyle:a},this._univerInstanceService,this._docSelectionManagerService,this._commandService,this._undoRedoService);this._editors.set(r,h),e.scrollBar||(f=(u=(d=(A=l.mainComponent)==null?void 0:A.getScene())==null?void 0:d.getViewports())==null?void 0:u[0].getScrollBar())==null||f.dispose(),!h.isSheetEditor()&&!e.noNeedVerticalAlign&&(h.verticalAlign(),h.updateCanvasStyle())}return s.toDisposable(()=>{this._unRegister(r)})}_unRegister(e){const n=this._editors.get(e);if(n==null||(this._renderManagerService.removeRender(e),n.dispose(),this._editors.delete(e),this._univerInstanceService.disposeUnit(e),this._contextService.setContextValue(s.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE,!1),!this.isSheetEditor(e)))return;if(this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).length>0){const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);a&&this._univerInstanceService.focusUnit(a.getUnitId())}}refreshValueChange(e){this._refreshValueChange(e)}checkValueLegality(e){const n=this._editors.get(e);if(n==null)return!0;let o=n.getValue();if(n.setValueLegality(),o=o.replace(/\r\n/g,"").replace(/\n/g,"").replace(/\n/g,""),o.length===0)return!0;if(n.onlyInputFormula()){if(o.substring(0,1)!==Me.operatorToken.EQUALS)return n.setValueLegality(!1),!1;const a=this._lexerTreeBuilder.checkIfAddBracket(o);n.setValueLegality(a===0)}else if(n.onlyInputRange()){const a=o.split(",");if(n.isSingleChoice()&&a.length>1)return n.setValueLegality(!1),!1;n.setValueLegality(Me.isReferenceStrings(o))}return n.isValueLegality()}_refreshValueChange(e){const n=this.getEditor(e);n!=null&&this._valueChange$.next(n)}_getCurrentEditorUnitId(){return this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()}_getBlank(e){return{id:e,body:{dataStream:`${s.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],paragraphs:[{startIndex:0}]},documentStyle:{renderConfig:{verticalAlign:s.VerticalAlign.TOP,horizontalAlign:s.HorizontalAlign.LEFT},marginLeft:3,marginTop:0,marginRight:3}}}},C.EditorService=xa([We(0,s.IUniverInstanceService),We(1,M.IRenderManagerService),We(2,s.Inject(Me.LexerTreeBuilder)),We(3,s.Inject(D.DocSelectionManagerService)),We(4,s.IContextService),We(5,s.ICommandService),We(6,s.IUndoRedoService)],C.EditorService);const me=s.createIdentifier("univer.editor.service"),lt={textEditorContainer:"univer-text-editor-container",textEditorContainerActive:"univer-text-editor-container-active",textEditorContainerError:"univer-text-editor-container-error",textEditorContainerDisabled:"univer-text-editor-container-disabled",textEditorContainerPlaceholder:"univer-text-editor-container-placeholder",textEditorValidationError:"univer-text-editor-validation-error"};function Ba(i="",t=""){const e=`${t}${s.DEFAULT_EMPTY_DOCUMENT_VALUE}`,n=[],o=[];for(let r=0;r<e.length;r++)e[r]==="\r"&&n.push({startIndex:r}),e[r]===`
28
- `&&o.push({startIndex:r});return{id:i,body:{dataStream:e,tables:[],textRuns:[],paragraphs:n,sectionBreaks:o},tableSource:{},documentStyle:{documentFlavor:s.DocumentFlavor.UNSPECIFIED}}}const Da=new Set(["snapshot","resizeCallBack","cancelDefaultResizeListener","isSheetEditor","canvasStyle","isFormulaEditor","isSingle","isReadonly","onlyInputFormula","onlyInputRange","value","onlyInputContent","isSingleChoice","openForSheetUnitId","openForSheetSubUnitId","onChange","onActive","onValid","placeholder"]);function Co(i){const{id:t,snapshot:e,resizeCallBack:n,cancelDefaultResizeListener:o,isSheetEditor:a=!1,canvasStyle:r={},value:c,isSingle:l=!0,isReadonly:A=!1,isFormulaEditor:d=!1,onlyInputFormula:u=!1,onlyInputRange:f=!1,onlyInputContent:h=!1,isSingleChoice:m=!1,openForSheetUnitId:g,openForSheetSubUnitId:p,onChange:S,onActive:I,onValid:E,isValueValid:T=!0,placeholder:O,disabled:v}=i,b=s.useDependency(me),_=s.useDependency(s.LocaleService),[B,w]=Q.useState(""),[x,U]=Q.useState(""),[L,F]=Q.useState(T),[H,k]=Q.useState([0,0]),X=Q.useRef(null),[G,W]=Q.useState(!1);if(!s.isInternalEditorID(t))throw new Error("Invalid editor ID");Q.useEffect(()=>{const j=X.current;if(!j)return;const z=new ResizeObserver(()=>{o!==!0&&b.resize(t),n&&n(j)});z.observe(j);const Y=e!=null?e:Ba(t,c);Y.id!==t&&(Y.id=t);const ie=b.register({editorUnitId:t,initialSnapshot:Y,cancelDefaultResizeListener:o,isSheetEditor:a,canvasStyle:r,isSingle:l,readonly:A,isSingleChoice:m,onlyInputFormula:u,onlyInputRange:f,onlyInputContent:h,openForSheetUnitId:g,openForSheetSubUnitId:p,isFormulaEditor:d},j);b.setValueNoRefresh(c||"",t),w(O||"");const ce=s.debounce(Ae=>{W(Ae),I&&I(Ae)},30),ge=160,le=s.debounce(Ae=>{const Se=Ae.getEditorId(),Te=b.checkValueLegality(Se);setTimeout(()=>{const we=Ae.getBoundingClientRect();k([we.left,we.top-16]),we.left+we.top>0&&F(Te),Ae.onlyInputFormula()?U(_.t("textEditor.formulaError")):U(_.t("textEditor.rangeError"))},ge),b.getValue(Se)!==c&&(E&&E(Te),S&&S(b.getValue(t)))},30),Ce=b.focusStyle$.subscribe(Ae=>{let Se=!1;Ae===t&&(Se=!0),ce(Se),setTimeout(()=>{if(!da(j))F(!0);else{const Te=b.getEditor(t);Te&&le(Te)}},ge)}),st=b.valueChange$.subscribe(Ae=>{if(Ae.isSheetEditor()||Ae.getEditorId()!==t)return;const Se=b.getFocusEditor();Se&&Se.getEditorId()!==t||le(Ae)});return()=>{z.unobserve(j),z.disconnect(),ie.dispose(),Ce==null||Ce.unsubscribe(),st==null||st.unsubscribe()}},[]),Q.useEffect(()=>{const j=b.getEditor(t);j!=null&&j.update({readonly:A,isSingle:l,isSingleChoice:m,onlyInputContent:h,onlyInputFormula:u,onlyInputRange:f,openForSheetSubUnitId:p,openForSheetUnitId:g})},[A,l,m,h,u,f,p,g]),Q.useEffect(()=>{c!=null&&b.setValueNoRefresh(c,t)},[c]),Q.useEffect(()=>{F(T)},[T]);function V(){const j=b.getValue(t);return!(j==null||j==="")}const K=Object.fromEntries(Object.entries(i).filter(([j])=>!Da.has(j)));let ee=lt.textEditorContainer;i.className!=null&&(ee=i.className);let Z="";return i.className==null&&(A?Z=` ${lt.textEditorContainerDisabled}`:L?G&&(Z=` ${lt.textEditorContainerActive}`):Z=` ${lt.textEditorContainerError}`),P.jsx(P.Fragment,{children:P.jsxs("div",{...K,style:{...K.style,...v?{pointerEvents:"none",opacity:0}:{}},className:ee+Z,ref:X,children:[P.jsx("div",{style:{display:L?"none":"block"},className:lt.textEditorValidationError,children:x}),P.jsx("div",{style:{display:V()?"none":"unset"},className:lt.textEditorContainerPlaceholder,children:B})]})})}var pe=function(){return pe=Object.assign||function(i){for(var t,e=1,n=arguments.length;e<n;e++){t=arguments[e];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(i[o]=t[o])}return i},pe.apply(this,arguments)},_a=function(i,t){var e={};for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&t.indexOf(n)<0&&(e[n]=i[n]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(i);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(i,n[o])&&(e[n[o]]=i[n[o]]);return e},ye=Q.forwardRef(function(i,t){var e=i.icon,n=i.id,o=i.className,a=i.extend,r=_a(i,["icon","id","className","extend"]),c="univerjs-icon univerjs-icon-".concat(n," ").concat(o||"").trim(),l=Q.useRef("_".concat(Ua()));return To(e,"".concat(n),{defIds:e.defIds,idSuffix:l.current},pe({ref:t,className:c},r),a)});function To(i,t,e,n,o){return Q.createElement(i.tag,pe(pe({key:t},Na(i,e,o)),n),(Pa(i,e).children||[]).map(function(a,r){return To(a,"".concat(t,"-").concat(i.tag,"-").concat(r),e,void 0,o)}))}function Na(i,t,e){var n=pe({},i.attrs);e!=null&&e.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=e.colorChannel1);var o=t.defIds;return!o||o.length===0||(i.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+t.idSuffix),Object.entries(n).forEach(function(a){var r=a[0],c=a[1];typeof c=="string"&&(n[r]=c.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),n}function Pa(i,t){var e,n=t.defIds;return!n||n.length===0?i:i.tag==="defs"&&(!((e=i.children)===null||e===void 0)&&e.length)?pe(pe({},i),{children:i.children.map(function(o){return typeof o.attrs.id=="string"&&n&&n.indexOf(o.attrs.id)>-1?pe(pe({},o),{attrs:pe(pe({},o.attrs),{id:o.attrs.id+t.idSuffix})}):o})}):i}function Ua(){return Math.random().toString(36).substring(2,8)}ye.displayName="UniverIcon";var wa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM1.9999 5.56641C1.66853 5.56641 1.3999 5.83504 1.3999 6.16641 1.3999 6.49778 1.66853 6.76641 1.9999 6.76641H13.9999C14.3313 6.76641 14.5999 6.49778 14.5999 6.16641 14.5999 5.83504 14.3313 5.56641 13.9999 5.56641H1.9999zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM1.9999 12.9004C1.66853 12.9004 1.3999 13.169 1.3999 13.5004 1.3999 13.8318 1.66853 14.1004 1.9999 14.1004H13.9999C14.3313 14.1004 14.5999 13.8318 14.5999 13.5004 14.5999 13.169 14.3313 12.9004 13.9999 12.9004H1.9999z"}}]},bo=Q.forwardRef(function(i,t){return Q.createElement(ye,Object.assign({},i,{id:"align-text-both-single",ref:t,icon:wa}))});bo.displayName="AlignTextBothSingle";var La={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},yo=Q.forwardRef(function(i,t){return Q.createElement(ye,Object.assign({},i,{id:"close-single",ref:t,icon:La}))});yo.displayName="CloseSingle";var Qa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Ro=Q.forwardRef(function(i,t){return Q.createElement(ye,Object.assign({},i,{id:"delete-single",ref:t,icon:Qa}))});Ro.displayName="DeleteSingle";var Fa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM3.33315 5.56641C3.00178 5.56641 2.73315 5.83504 2.73315 6.16641 2.73315 6.49778 3.00178 6.76641 3.33315 6.76641H12.6665C12.9979 6.76641 13.2665 6.49778 13.2665 6.16641 13.2665 5.83504 12.9979 5.56641 12.6665 5.56641H3.33315zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM3.33315 12.9004C3.00178 12.9004 2.73315 13.169 2.73315 13.5004 2.73315 13.8318 3.00178 14.1004 3.33315 14.1004H12.6665C12.9979 14.1004 13.2665 13.8318 13.2665 13.5004 13.2665 13.169 12.9979 12.9004 12.6665 12.9004H3.33315z"}}]},Oo=Q.forwardRef(function(i,t){return Q.createElement(ye,Object.assign({},i,{id:"horizontally-single",ref:t,icon:Fa}))});Oo.displayName="HorizontallySingle";var Ha={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},xo=Q.forwardRef(function(i,t){return Q.createElement(ye,Object.assign({},i,{id:"increase-single",ref:t,icon:Ha}))});xo.displayName="IncreaseSingle";var ka={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM1.9999 5.56641C1.66853 5.56641 1.3999 5.83504 1.3999 6.16641 1.3999 6.49778 1.66853 6.76641 1.9999 6.76641H11.3332C11.6646 6.76641 11.9332 6.49778 11.9332 6.16641 11.9332 5.83504 11.6646 5.56641 11.3332 5.56641H1.9999zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM1.9999 12.9004C1.66853 12.9004 1.3999 13.169 1.3999 13.5004 1.3999 13.8318 1.66853 14.1004 1.9999 14.1004H11.3332C11.6646 14.1004 11.9332 13.8318 11.9332 13.5004 11.9332 13.169 11.6646 12.9004 11.3332 12.9004H1.9999z"}}]},Mo=Q.forwardRef(function(i,t){return Q.createElement(ye,Object.assign({},i,{id:"left-justifying-single",ref:t,icon:ka}))});Mo.displayName="LeftJustifyingSingle";var Va={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM4.66665 5.56641C4.33528 5.56641 4.06665 5.83504 4.06665 6.16641 4.06665 6.49778 4.33528 6.76641 4.66665 6.76641H14C14.3314 6.76641 14.6 6.49778 14.6 6.16641 14.6 5.83504 14.3314 5.56641 14 5.56641H4.66665zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM4.66665 12.9004C4.33528 12.9004 4.06665 13.169 4.06665 13.5004 4.06665 13.8318 4.33528 14.1004 4.66665 14.1004H14C14.3314 14.1004 14.6 13.8318 14.6 13.5004 14.6 13.169 14.3314 12.9004 14 12.9004H4.66665z"}}]},Bo=Q.forwardRef(function(i,t){return Q.createElement(ye,Object.assign({},i,{id:"right-justifying-single",ref:t,icon:Va}))});Bo.displayName="RightJustifyingSingle";var ja={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6185 12.4423C12.5907 12.2749 12.7773 12.15 12.9343 12.2308L15.4242 13.5126C15.6102 13.6084 15.5544 13.8745 15.3439 13.8955L14.2456 14.184L13.4521 15.1286C13.3495 15.2939 13.085 15.2463 13.0534 15.0568L12.6185 12.4423Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1 3.6C1 2.16406 2.16406 1 3.6 1H12.3C13.7359 1 14.9 2.16406 14.9 3.6V5.81156C14.9003 5.81881 14.9004 5.82609 14.9004 5.8334C14.9004 5.84071 14.9003 5.84799 14.9 5.85524V10.045C14.9003 10.0522 14.9004 10.0595 14.9004 10.0668C14.9004 10.3982 14.6318 10.6668 14.3004 10.6668H11.1668C10.8907 10.6668 10.6668 10.8907 10.6668 11.1668V14.3C10.6668 14.6314 10.3982 14.9 10.0668 14.9L10.05 14.8998L3.6 14.9C2.16406 14.9 1 13.7359 1 12.3V3.6ZM13.2 5.2334C13.4761 5.2334 13.7 5.00954 13.7 4.7334V3.6C13.7 2.8268 13.0732 2.2 12.3 2.2H11.1668C10.8907 2.2 10.6668 2.42386 10.6668 2.7V4.7334C10.6668 5.00954 10.8907 5.2334 11.1668 5.2334H13.2ZM10.6668 6.9334C10.6668 6.65726 10.8907 6.4334 11.1668 6.4334H13.2C13.4761 6.4334 13.7 6.65726 13.7 6.9334V8.9668C13.7 9.24294 13.4761 9.4668 13.2 9.4668H11.1668C10.8907 9.4668 10.6668 9.24294 10.6668 8.9668V6.9334ZM8.9668 5.2334C9.24294 5.2334 9.4668 5.00954 9.4668 4.7334V2.7C9.4668 2.42386 9.24294 2.2 8.9668 2.2H6.9334C6.65726 2.2 6.4334 2.42386 6.4334 2.7V4.7334C6.4334 5.00954 6.65726 5.2334 6.9334 5.2334L8.9668 5.2334ZM6.4334 6.9334C6.4334 6.65726 6.65726 6.4334 6.9334 6.4334L8.9668 6.4334C9.24294 6.4334 9.4668 6.65726 9.4668 6.9334V8.9668C9.4668 9.24294 9.24294 9.4668 8.9668 9.4668L6.9334 9.4668C6.65726 9.4668 6.4334 9.24294 6.4334 8.9668V6.9334ZM4.7334 5.2334C5.00954 5.2334 5.2334 5.00954 5.2334 4.7334V2.7C5.2334 2.42386 5.00954 2.2 4.7334 2.2H3.6C2.8268 2.2 2.2 2.8268 2.2 3.6V4.7334C2.2 5.00954 2.42386 5.2334 2.7 5.2334H4.7334ZM2.2 6.9334C2.2 6.65726 2.42386 6.4334 2.7 6.4334H4.7334C5.00954 6.4334 5.2334 6.65725 5.2334 6.9334V8.9668C5.2334 9.24294 5.00954 9.4668 4.7334 9.4668H2.7C2.42386 9.4668 2.2 9.24294 2.2 8.9668V6.9334ZM5.2334 11.1668C5.2334 10.8907 5.00954 10.6668 4.7334 10.6668H2.7C2.42386 10.6668 2.2 10.8907 2.2 11.1668V12.3C2.2 13.0732 2.8268 13.7 3.6 13.7H4.7334C5.00954 13.7 5.2334 13.4761 5.2334 13.2V11.1668ZM9.4668 11.1668C9.4668 10.8907 9.24294 10.6668 8.9668 10.6668H6.9334C6.65726 10.6668 6.4334 10.8907 6.4334 11.1668V13.2C6.4334 13.4761 6.65726 13.7 6.9334 13.7H8.9668C9.24294 13.7 9.4668 13.4761 9.4668 13.2V11.1668Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Do=Q.forwardRef(function(i,t){return Q.createElement(ye,Object.assign({},i,{id:"select-range-single",ref:t,icon:ja}))});Do.displayName="SelectRangeSingle";var Wa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M4.96372 2.59116C5.19803 2.35684 5.19803 1.97695 4.96372 1.74263 4.7294 1.50832 4.3495 1.50832 4.11519 1.74263L2.53945 3.31837 1.96372 2.74263C1.7294 2.50832 1.3495 2.50832 1.11519 2.74263.880874 2.97695.880874 3.35684 1.11519 3.59116L2.11519 4.59116C2.3495 4.82547 2.7294 4.82547 2.96372 4.59116L4.96372 2.59116zM14.4605 2.56689H6.8981C6.56672 2.56689 6.2981 2.83552 6.2981 3.16689 6.2981 3.49827 6.56672 3.76689 6.8981 3.76689H14.4605C14.7918 3.76689 15.0605 3.49827 15.0605 3.16689 15.0605 2.83552 14.7918 2.56689 14.4605 2.56689zM6.8981 7.2334C6.56672 7.2334 6.2981 7.50203 6.2981 7.8334 6.2981 8.16477 6.56672 8.4334 6.8981 8.4334H14.4605C14.7918 8.4334 15.0605 8.16477 15.0605 7.8334 15.0605 7.50203 14.7918 7.2334 14.4605 7.2334H6.8981zM6.2981 12.4999C6.2981 12.1685 6.56672 11.8999 6.8981 11.8999H14.4605C14.7918 11.8999 15.0605 12.1685 15.0605 12.4999 15.0605 12.8313 14.7918 13.0999 14.4605 13.0999H6.8981C6.56672 13.0999 6.2981 12.8313 6.2981 12.4999z"}},{tag:"path",attrs:{fill:"currentColor",d:"M2.87279 5.8999C1.80504 5.8999.939453 6.76549.939453 7.83324.939453 8.90099 1.80504 9.76657 2.87279 9.76657 3.94054 9.76657 4.80612 8.90099 4.80612 7.83324 4.80612 6.76549 3.94054 5.8999 2.87279 5.8999zM2.13945 7.83324C2.13945 7.42823 2.46778 7.0999 2.87279 7.0999 3.2778 7.0999 3.60612 7.42823 3.60612 7.83324 3.60612 8.23824 3.2778 8.56657 2.87279 8.56657 2.46778 8.56657 2.13945 8.23824 2.13945 7.83324zM.939453 12.5002C.939453 11.4325 1.80504 10.5669 2.87279 10.5669 3.94054 10.5669 4.80612 11.4325 4.80612 12.5002 4.80612 13.568 3.94054 14.4336 2.87279 14.4336 1.80504 14.4336.939453 13.568.939453 12.5002zM2.87279 11.7669C2.46778 11.7669 2.13945 12.0952 2.13945 12.5002 2.13945 12.9052 2.46778 13.2336 2.87279 13.2336 3.2778 13.2336 3.60612 12.9052 3.60612 12.5002 3.60612 12.0952 3.2778 11.7669 2.87279 11.7669z",fillRule:"evenodd",clipRule:"evenodd"}}]},_o=Q.forwardRef(function(i,t){return Q.createElement(ye,Object.assign({},i,{id:"todo-list",ref:t,icon:Wa}))});_o.displayName="TodoList";function No(i){var t,e,n="";if(typeof i=="string"||typeof i=="number")n+=i;else if(typeof i=="object")if(Array.isArray(i)){var o=i.length;for(t=0;t<o;t++)i[t]&&(e=No(i[t]))&&(n&&(n+=" "),n+=e)}else for(e in i)i[e]&&(n&&(n+=" "),n+=e);return n}function en(){for(var i,t,e=0,n="",o=arguments.length;e<o;e++)(i=arguments[e])&&(t=No(i))&&(n&&(n+=" "),n+=t);return n}class Po extends s.Disposable{constructor(){super(...arguments);R(this,"_currentSelectorId");R(this,"_selectionChange$",new N.Subject);R(this,"selectionChange$",this._selectionChange$.asObservable());R(this,"_openSelector$",new N.Subject);R(this,"openSelector$",this._openSelector$.asObservable());R(this,"_selectorModalVisible$",new N.BehaviorSubject(!1));R(this,"selectorModalVisible$",this._selectorModalVisible$.asObservable())}get selectorModalVisible(){return this._selectorModalVisible$.getValue()}setCurrentSelectorId(e){this._currentSelectorId=e}getCurrentSelectorId(){return this._currentSelectorId}selectionChange(e){this._currentSelectorId&&this._selectionChange$.next(e)}openSelector(){this._openSelector$.next(null)}triggerModalVisibleChange(e){this._selectorModalVisible$.next(e)}}const ri=s.createIdentifier("univer.range-selector.service"),ae={rangeSelector:"univer-range-selector",rangeSelectorEditor:"univer-range-selector-editor",rangeSelectorIcon:"univer-range-selector-icon",rangeSelectorActive:"univer-range-selector-active",rangeSelectorError:"univer-range-selector-error",rangeSelectorDisabled:"univer-range-selector-disabled",rangeSelectorModal:"univer-range-selector-modal",rangeSelectorModalContainer:"univer-range-selector-modal-container",rangeSelectorModalContainerInput:"univer-range-selector-modal-container-input",rangeSelectorModalContainerInputActive:"univer-range-selector-modal-container-input-active",rangeSelectorModalContainerButton:"univer-range-selector-modal-container-button",rangeSelectorModalContainerDeleteButton:"univer-range-selector-modal-container-delete-button",rangeSelectorModalAdd:"univer-range-selector-modal-add",rangeSelectorModalAddButton:"univer-range-selector-modal-add-button"},za={pointerEvents:"none"};function Ga(i){const{dialogOnly:t,onChange:e,id:n,value:o="",width:a=220,placeholder:r="",size:c="middle",onActive:l,onValid:A,isSingleChoice:d=!1,openForSheetUnitId:u,openForSheetSubUnitId:f,isReadonly:h=!1,className:m,textEditorClassName:g,onSelectorVisibleChange:p}=i,S=y.useEvent(p),[I,E]=Q.useState([""]),T=J=>{E($=>[...$,J])},O=J=>{E($=>$.filter((oe,Gt)=>Gt!==J))},v=(J,$)=>{E(oe=>oe.map((Gt,at)=>at===J?$:Gt))},b=J=>{E($=>{const oe=[...$];return oe.length>0&&(oe[oe.length-1]=J),oe})},_=s.useDependency(me),B=s.useDependency(ri),w=s.useDependency(s.IUniverInstanceService),[x,U]=Q.useState(!1),L=s.useDependency(s.LocaleService),[F,H]=Q.useState(!1),[k,X]=Q.useState(!0),[G,W]=Q.useState(o),[V,K]=Q.useState(-1),ee=Q.useRef(null),Z=Q.useRef(-1),j=Q.useRef(u),z=Q.useRef(f),Y=Q.useRef(d),ie=Q.useRef(h);Q.useEffect(()=>{const J=ee.current;if(!J)return;const $=new ResizeObserver(()=>{_.resize(n)});$.observe(J);let oe=1;const Gt=B.selectionChange$.subscribe(at=>{if(B.getCurrentSelectorId()!==n)return;if(at.length===0){oe=0;return}const Ks=at.length-oe;if(oe=at.length,Ks<0)return;const Le=at[at.length-1];let bt="";Le.unitId===j.current&&Le.sheetId===z.current?bt=Me.serializeRange(Le.range):Le.unitId===j.current?bt=Me.serializeRangeWithSheet(Le.sheetName,Le.range):bt=Me.serializeRangeWithSpreadsheet(Le.unitId,Le.sheetName,Le.range),Ks>=1&&!Y.current?(T(bt),K(-1)):Z.current===-1?b(bt):v(Z.current,bt)});return()=>{Gt.unsubscribe(),$.unobserve(J)}},[]),Q.useEffect(()=>{B.triggerModalVisibleChange(x)},[S,B,x]),Q.useEffect(()=>()=>{B.triggerModalVisibleChange(!1)},[B]),Q.useEffect(()=>{j.current=u,z.current=f,Y.current=d,ie.current=h},[u,f,d,h]),Q.useEffect(()=>{Z.current=V},[V]);function ce(){U(!1),S(!1),B.setCurrentSelectorId(null)}function ge(){ie.current!==!0&&(_.closeRangePrompt(),B.setCurrentSelectorId(n),U(!0),S(!0),G.length>0?E(k?G.split(","):[""]):B.openSelector())}function le(J){H(J),l&&l(J)}function Ce(J){X(J),A&&A(J)}function st(){if(ie.current===!0){ce();return}let J="";const $=I.filter(oe=>Me.isReferenceStringWithEffectiveColumn(oe.trim()));if($.length===1){const oe=$[0];Me.isReferenceStringWithEffectiveColumn(oe.trim())&&(J=oe.trim())}else J=$.join(",");_.setValue(J,n),Te(J),ce()}function Ae(){T(""),K(-1)}function Se(J){var $,oe;return((oe=($=w.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:$.getSheetBySheetName(J))==null?void 0:oe.getSheetId())||""}function Te(J){if(W(J||""),J==null){e&&e([]);return}const $=Me.getRangeWithRefsString(J,Se);e&&e($||[])}let xe=ae.rangeSelector;h?xe=`${ae.rangeSelector} ${ae.rangeSelectorDisabled}`:k?F&&(xe=`${ae.rangeSelector} ${ae.rangeSelectorActive}`):xe=`${ae.rangeSelector} ${ae.rangeSelectorError}`,g&&(xe=`${xe} ${g}`);let we=28;return c==="mini"?we=20:c==="small"?we=24:c==="large"&&(we=32),P.jsxs(P.Fragment,{children:[P.jsxs("div",{className:en(xe,m),ref:ee,style:{width:a,height:we,cursor:t?"pointer":void 0},onClickCapture:J=>{t&&(J.stopPropagation(),J.preventDefault(),ge())},children:[P.jsx(Co,{style:t?za:void 0,placeholder:r,value:o,isReadonly:h,isSingleChoice:d,openForSheetUnitId:u,openForSheetSubUnitId:f,onValid:Ce,onActive:le,onChange:Te,id:n,onlyInputRange:!0,canvasStyle:{fontSize:10},className:ae.rangeSelectorEditor}),P.jsx(se.Tooltip,{title:L.t("rangeSelector.buttonTooltip"),placement:"bottom",children:P.jsx("button",{type:"button",className:ae.rangeSelectorIcon,onClick:ge,children:P.jsx(Do,{})})})]}),P.jsx(se.Dialog,{width:"328px",visible:x,title:L.t("rangeSelector.title"),draggable:!0,closeIcon:P.jsx(yo,{}),footer:P.jsxs("footer",{children:[P.jsx(se.Button,{onClick:ce,children:L.t("rangeSelector.cancel")}),P.jsx(se.Button,{style:{marginLeft:10},onClick:st,type:"primary",children:L.t("rangeSelector.confirm")})]}),onClose:ce,children:P.jsxs("div",{className:en(ae.rangeSelectorModal,m),children:[I.map((J,$)=>P.jsxs("div",{className:ae.rangeSelectorModalContainer,children:[P.jsx("div",{style:{width:I.length===1?"280px":"252px"},className:ae.rangeSelectorModalContainerInput,children:P.jsx(se.Input,{className:V===$||I.length-1===$&&V===-1?ae.rangeSelectorModalContainerInputActive:"",placeholder:L.t("rangeSelector.placeHolder"),affixWrapperStyle:{width:"100%"},onClick:()=>K($),value:J,onChange:oe=>v($,oe)},`input${$}`)}),P.jsx("div",{style:{display:I.length===1?"none":"inline-block"},className:ae.rangeSelectorModalContainerButton,children:P.jsx(Ro,{className:ae.rangeSelectorModalContainerDeleteButton,onClick:()=>O($)})})]},$)),P.jsx("div",{style:{display:d?"none":"unset"},className:ae.rangeSelectorModalAdd,children:P.jsxs(se.Button,{type:"link",size:"small",onClick:Ae,className:ae.rangeSelectorModalAddButton,children:[P.jsx(xo,{}),P.jsx("span",{children:L.t("rangeSelector.addAnotherRange")})]})})]})})]})}function Uo(i){var n;const{dataStream:t}=(n=i.body)!=null?n:{},e=[s.DataStreamTreeTokenType.TABLE_START,s.DataStreamTreeTokenType.TABLE_CELL_END,s.DataStreamTreeTokenType.TABLE_CELL_START,s.DataStreamTreeTokenType.TABLE_END,s.DataStreamTreeTokenType.TABLE_ROW_END,s.DataStreamTreeTokenType.TABLE_ROW_START,s.DataStreamTreeTokenType.COLUMN_BREAK,s.DataStreamTreeTokenType.PAGE_BREAK,s.DataStreamTreeTokenType.TAB,s.DataStreamTreeTokenType.DOCS_END,s.DataStreamTreeTokenType.CUSTOM_BLOCK];if(typeof t=="string")for(let o=0;o<t.length;o++){const a=t[o];if(!e.includes(a))return o}return 0}const wo="COMPONENT_DOC_HEADER_FOOTER_PANEL",he={panel:"univer-panel",optionsSection:"univer-options-section",optionsFormItem:"univer-options-form-item",optionsInput:"univer-options-input",optionsMarginSetting:"univer-options-margin-setting"};function Ya(i,t,e){const{useFirstPageHeaderFooter:n,evenAndOddHeaders:o,defaultHeaderId:a,defaultFooterId:r,firstPageHeaderId:c,firstPageFooterId:l,evenPageHeaderId:A,evenPageFooterId:d}=i;return t===M.DocumentEditArea.HEADER?n===s.BooleanNumber.TRUE&&e===0?c:o===s.BooleanNumber.TRUE&&e%2===1?A:a:n===s.BooleanNumber.TRUE&&e===0?l:o===s.BooleanNumber.TRUE&&e%2===1?d:r}const Xa=i=>{const t=s.useDependency(s.LocaleService),e=s.useDependency(s.IUniverInstanceService),n=s.useDependency(M.IRenderManagerService),o=s.useDependency(s.ICommandService),a=s.useDependency(y.ILayoutService),{unitId:r}=i,c=n.getRenderById(r).with(C.DocSelectionRenderService),[l,A]=Q.useState({}),d=(h,m)=>{var b;A(_=>({..._,[m]:h?s.BooleanNumber.TRUE:s.BooleanNumber.FALSE}));const g=e.getUniverDocInstance(r),p=g==null?void 0:g.getSnapshot().documentStyle,S=(b=n.getRenderById(r))==null?void 0:b.with(D.DocSkeletonManagerService),I=S==null?void 0:S.getViewModel();if(p==null||I==null)return;const E=I.getEditArea();let T=!1;const O=c.getSegmentPage();let v=!1;if(m==="useFirstPageHeaderFooter"&&h===!0&&((E===M.DocumentEditArea.HEADER&&!p.firstPageHeaderId||E===M.DocumentEditArea.FOOTER&&!p.firstPageFooterId)&&(T=!0),T&&O===0&&(v=!0)),m==="evenAndOddHeaders"&&h===!0&&((E===M.DocumentEditArea.HEADER&&!p.evenPageHeaderId||E===M.DocumentEditArea.FOOTER&&!p.evenPageFooterId)&&(T=!0),T&&O%2===1&&(v=!0)),T){const B=s.Tools.generateRandomId(6);v&&c.setSegment(B),o.executeCommand(nn,{unitId:r,segmentId:B,headerFooterProps:{[m]:h?s.BooleanNumber.TRUE:s.BooleanNumber.FALSE}})}else{const _=c.getSegmentPage(),B=c.getSegment(),w=Ya({...p,[m]:h?s.BooleanNumber.TRUE:s.BooleanNumber.FALSE},E,_);w&&w!==B&&c.setSegment(w),o.executeCommand(nn,{unitId:r,headerFooterProps:{[m]:h?s.BooleanNumber.TRUE:s.BooleanNumber.FALSE}})}a.focus()},u=async(h,m)=>{A(g=>({...g,[m]:h})),await o.executeCommand(nn,{unitId:r,headerFooterProps:{[m]:h}}),c.removeAllRanges(),c.blur()},f=()=>{o.executeCommand(hi.id,{unitId:r})};return Q.useEffect(()=>{const h=e.getUniverDocInstance(r),m=h==null?void 0:h.getSnapshot().documentStyle;if(m){const{marginHeader:g=0,marginFooter:p=0,useFirstPageHeaderFooter:S=s.BooleanNumber.FALSE,evenAndOddHeaders:I=s.BooleanNumber.FALSE}=m;A({marginHeader:g,marginFooter:p,useFirstPageHeaderFooter:S,evenAndOddHeaders:I})}},[r]),P.jsxs("div",{className:he.options,children:[P.jsxs("div",{className:he.optionsSection,children:[P.jsx("div",{className:he.optionsFormItem,children:P.jsx(se.Checkbox,{checked:l.useFirstPageHeaderFooter===s.BooleanNumber.TRUE,onChange:h=>{d(h,"useFirstPageHeaderFooter")},children:t.t("headerFooter.firstPageCheckBox")})}),P.jsx("div",{className:he.optionsFormItem,children:P.jsx(se.Checkbox,{checked:l.evenAndOddHeaders===s.BooleanNumber.TRUE,onChange:h=>{d(h,"evenAndOddHeaders")},children:t.t("headerFooter.oddEvenCheckBox")})})]}),P.jsxs("div",{className:en(he.optionsSection,he.optionsMarginSetting),children:[P.jsxs("div",{className:he.optionsMarginItem,children:[P.jsx("span",{children:t.t("headerFooter.headerTopMargin")}),P.jsx(se.InputNumber,{min:0,max:200,precision:1,value:l.marginHeader,onChange:h=>{u(h,"marginHeader")},className:he.optionsInput})]}),P.jsxs("div",{className:he.optionsMarginItem,children:[P.jsx("span",{children:t.t("headerFooter.footerBottomMargin")}),P.jsx(se.InputNumber,{min:0,max:200,precision:1,value:l.marginFooter,onChange:h=>{u(h,"marginFooter")},className:he.optionsInput})]})]}),P.jsx("div",{className:he.optionsSection,children:P.jsx(se.Button,{onClick:f,children:t.t("headerFooter.closeHeaderFooter")})})]})},Ka=()=>{var A;const i=s.useDependency(s.LocaleService),t=s.useDependency(M.IRenderManagerService),o=s.useDependency(s.IUniverInstanceService).getCurrentUniverDocInstance().getUnitId(),r=((A=t.getRenderById(o))==null?void 0:A.with(D.DocSkeletonManagerService)).getViewModel(),[c,l]=Q.useState(!0);return Q.useEffect(()=>{const d=r.getEditArea();l(d!==M.DocumentEditArea.BODY);const u=r.editAreaChange$.subscribe(f=>{f!=null&&l(f!==M.DocumentEditArea.BODY)});return()=>{u.unsubscribe()}},[]),P.jsx("div",{className:he.panel,children:c?P.jsx(Xa,{unitId:o}):P.jsx("div",{className:he.panelDisableText,children:i.t("headerFooter.disableText")})})},Lo=18,Qo=200,ci=6,Ja=4;function Za(i,t){let{radius:e,width:n,height:o}=t;e=e!=null?e:0,n=n!=null?n:30,o=o!=null?o:30;let a=0;a=Math.min(e,n/2,o/2),i.beginPath(),i.moveTo(0,0),i.lineTo(n,0),i.lineTo(n,o-a),i.arc(n-a,o-a,a,0,Math.PI/2,!1),i.lineTo(0,o),i.lineTo(0,0),i.closePath(),t.fill&&(i.save(),i.fillStyle=t.fill,t.fillRule==="evenodd"?i.fill("evenodd"):i.fill(),i.restore())}class tn extends M.Shape{constructor(e,n){super(e,n);R(this,"color");R(this,"text");this.color=n==null?void 0:n.color,this.text=n==null?void 0:n.text}static drawWith(e,n){const{text:o,color:a}=n;e.save(),e.font="13px Source Han Sans CN";const r=e.measureText(o).width,c=Math.min(r+2*ci,Qo);Za(e,{height:Lo,width:c,radius:4,fill:a,evented:!1}),e.fillStyle="rgba(58, 96, 247, 1)";const l=ci,A=Lo-Ja,d=Qo-2*ci;if(r>d){let u="",f=0;for(const h of o){const m=e.measureText(h).width;if(f+m<=d-e.measureText("...").width)u+=h,f+=m;else{u+="...";break}}e.fillText(u,l,A)}else e.fillText(o,l,A);e.restore()}_draw(e){tn.drawWith(e,this)}}var qa=Object.defineProperty,$a=Object.getOwnPropertyDescriptor,er=(i,t,e,n)=>{for(var o=n>1?void 0:n?$a(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&qa(t,e,o),o},Qe=(i,t)=>(e,n)=>t(e,n,i);const Fo="rgba(58, 96, 247, 1)",Ho="rgba(58, 96, 247, 0.08)";var ue=(i=>(i[i.FIRST_PAGE_HEADER=0]="FIRST_PAGE_HEADER",i[i.FIRST_PAGE_FOOTER=1]="FIRST_PAGE_FOOTER",i[i.DEFAULT_HEADER=2]="DEFAULT_HEADER",i[i.DEFAULT_FOOTER=3]="DEFAULT_FOOTER",i[i.EVEN_PAGE_HEADER=4]="EVEN_PAGE_HEADER",i[i.EVEN_PAGE_FOOTER=5]="EVEN_PAGE_FOOTER",i))(ue||{});function tr(i,t,e){const{documentStyle:n}=i.getDataModel().getSnapshot(),{defaultHeaderId:o,defaultFooterId:a,evenPageHeaderId:r,evenPageFooterId:c,firstPageHeaderId:l,firstPageFooterId:A,evenAndOddHeaders:d,useFirstPageHeaderFooter:u}=n;switch(t){case M.DocumentEditArea.BODY:return{createType:null,headerFooterId:null};case M.DocumentEditArea.HEADER:return u===s.BooleanNumber.TRUE&&!l?{createType:0,headerFooterId:null}:d===s.BooleanNumber.TRUE&&e%2===0&&!r?{createType:4,headerFooterId:null}:o?{createType:null,headerFooterId:o}:{createType:2,headerFooterId:null};case M.DocumentEditArea.FOOTER:return u===s.BooleanNumber.TRUE&&!A?{createType:1,headerFooterId:null}:d===s.BooleanNumber.TRUE&&e%2===0&&!c?{createType:5,headerFooterId:null}:a?{createType:null,headerFooterId:a}:{createType:3,headerFooterId:null};default:throw new Error(`Invalid editArea: ${t}`)}}let li=class extends s.Disposable{constructor(t,e,n,o,a,r,c,l,A){super();R(this,"_loadedMap",new WeakSet);this._context=t,this._commandService=e,this._editorService=n,this._instanceSrv=o,this._renderManagerService=a,this._docSkeletonManagerService=r,this._docSelectionRenderService=c,this._localeService=l,this._componentManager=A,this._initialize()}_initialize(){this._init(),this._drawHeaderFooterLabel(),this._initCustomComponents(),this._listenSwitchMode()}_listenSwitchMode(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(D.RichTextEditingMutation.id===t.id){const e=this._context.unit,o=this._docSkeletonManagerService.getViewModel().getEditArea(),a=e.getSnapshot().documentStyle.documentFlavor;o!==M.DocumentEditArea.BODY&&a===s.DocumentFlavor.MODERN&&this._commandService.executeCommand(hi.id,{unitId:this._context.unitId})}}))}_initCustomComponents(){const t=this._componentManager;this.disposeWithMe(t.register(wo,Ka))}_init(){const{unitId:t}=this._context,e=Be(this._context);e==null||e.document==null||this._loadedMap.has(e.document)||(this._initialMain(t),this._loadedMap.add(e.document))}_initialMain(t){const e=Be(this._context),{document:n}=e;this.disposeWithMe(n.onDblclick$.subscribeEvent(async o=>{if(this._isEditorReadOnly(t)||!this._isTraditionalMode())return;const{offsetX:a,offsetY:r}=o,{pageLayoutType:c=M.PageLayoutType.VERTICAL,pageMarginLeft:l,pageMarginTop:A}=n.getOffsetConfig(),d=this._getTransformCoordForDocumentOffset(a,r);if(d==null)return;const u=this._docSkeletonManagerService.getViewModel(),f=this._docSkeletonManagerService.getSkeleton(),h=u.getEditArea(),{editArea:m,pageNumber:g}=f.findEditAreaByCoord(d,c,l,A);if(h===m)return;u.setEditArea(m);const{createType:p,headerFooterId:S}=tr(u,m,g);if(m===M.DocumentEditArea.BODY)this._docSelectionRenderService.setSegment(""),this._docSelectionRenderService.setSegmentPage(-1),this._docSelectionRenderService.setCursorManually(a,r);else if(p!=null){const E=s.Tools.generateRandomId(6);this._docSelectionRenderService.setSegment(E),this._docSelectionRenderService.setSegmentPage(g),await this._commandService.executeCommand(Vo.id,{unitId:t,createType:p,segmentId:E})}else S!=null&&(this._docSelectionRenderService.setSegment(S),this._docSelectionRenderService.setSegmentPage(g),this._docSelectionRenderService.setCursorManually(a,r))}))}_getTransformCoordForDocumentOffset(t,e){const n=Be(this._context),{document:o,scene:a}=n,{documentTransform:r}=o.getOffsetConfig(),c=a.getViewports()[0];if(c==null)return;const l=c.transformVector2SceneCoord(M.Vector2.FromArray([t,e]));return r.clone().invert().applyPoint(l)}_drawHeaderFooterLabel(){const t=this._localeService;this._renderManagerService.currentRender$.subscribe(e=>{if(e==null)return;const n=this._renderManagerService.getRenderById(e);if(this._editorService.isEditor(e)||this._instanceSrv.getUniverDocInstance(e)==null||n==null)return;const{mainComponent:o}=n,a=o;this.disposeWithMe(s.toDisposable(a.pageRender$.subscribe(r=>{if(this._editorService.isEditor(e)||!this._isTraditionalMode())return;const A=this._docSkeletonManagerService.getViewModel().getEditArea()===M.DocumentEditArea.BODY,{page:d,pageLeft:u,pageTop:f,ctx:h}=r,{pageWidth:m,pageHeight:g,marginTop:p,marginBottom:S}=d;if(h.save(),h.translate(u-.5,f-.5),A?(M.Rect.drawWith(h,{left:0,top:0,width:m,height:p,fill:"rgba(255, 255, 255, 0.5)"}),h.save(),h.translate(0,g-S),M.Rect.drawWith(h,{left:0,top:0,width:m,height:S,fill:"rgba(255, 255, 255, 0.5)"}),h.restore()):(h.save(),h.translate(0,p),M.Rect.drawWith(h,{left:0,top:p,width:m,height:g-p-S,fill:"rgba(255, 255, 255, 0.5)"}),h.restore()),!A){const I={dataArray:[{command:"M",points:[0,p]},{command:"L",points:[m,p]}],strokeWidth:1,stroke:Fo},E={dataArray:[{command:"M",points:[0,g-S]},{command:"L",points:[m,g-S]}],strokeWidth:1,stroke:Fo};M.Path.drawWith(h,I),M.Path.drawWith(h,E),h.translate(0,p+1),tn.drawWith(h,{text:t.t("headerFooter.header"),color:Ho}),h.translate(0,g-p-S),tn.drawWith(h,{text:t.t("headerFooter.footer"),color:Ho})}h.restore()})))})}_isEditorReadOnly(t){const e=this._editorService.getEditor(t);return e?e.isReadOnly():!1}_isTraditionalMode(){return this._context.unit.getSnapshot().documentStyle.documentFlavor===s.DocumentFlavor.TRADITIONAL}};li=er([Qe(1,s.ICommandService),Qe(2,me),Qe(3,s.IUniverInstanceService),Qe(4,M.IRenderManagerService),Qe(5,s.Inject(D.DocSkeletonManagerService)),Qe(6,s.Inject(C.DocSelectionRenderService)),Qe(7,s.Inject(s.LocaleService)),Qe(8,s.Inject(y.ComponentManager))],li);const Ai={id:"sidebar.operation.doc-header-footer-panel",type:s.CommandType.OPERATION,handler:async(i,t)=>{const e=i.get(y.ISidebarService),n=i.get(s.LocaleService);switch(t.value){case"open":e.open({header:{title:n.t("headerFooter.panel")},children:{label:wo},onClose:()=>{},width:400});break;case"close":default:e.close();break}return!0}};function ko(){return{dataStream:`\r
29
- `,textRuns:[{st:0,ed:0,ts:{fs:9}}],customBlocks:[],paragraphs:[{startIndex:0,paragraphStyle:{spaceAbove:{v:0},lineSpacing:1.5,spaceBelow:{v:0}}}],sectionBreaks:[{startIndex:1}]}}function di(i,t,e,n){const o=s.JSONX.getInstance(),a=6,r=i!=null?i:s.Tools.generateRandomId(a),c=t===ue.DEFAULT_HEADER||t===ue.FIRST_PAGE_HEADER||t===ue.EVEN_PAGE_HEADER,l=o.insertOp([c?"headers":"footers",r],{[c?"headerId":"footerId"]:r,body:ko()});n.push(l);const A=s.Tools.generateRandomId(a),d=o.insertOp([c?"footers":"headers",A],{[c?"footerId":"headerId"]:A,body:ko()});n.push(d);let u="defaultHeaderId",f="defaultFooterId";switch(t){case ue.DEFAULT_HEADER:u="defaultHeaderId",f="defaultFooterId";break;case ue.DEFAULT_FOOTER:u="defaultFooterId",f="defaultHeaderId";break;case ue.FIRST_PAGE_HEADER:u="firstPageHeaderId",f="firstPageFooterId";break;case ue.FIRST_PAGE_FOOTER:u="firstPageFooterId",f="firstPageHeaderId";break;case ue.EVEN_PAGE_HEADER:u="evenPageHeaderId",f="evenPageFooterId";break;case ue.EVEN_PAGE_FOOTER:u="evenPageFooterId",f="evenPageHeaderId";break;default:throw new Error(`Unknown header footer type: ${t}`)}for(const[h,m]of[[u,r],[f,A]])if(e[h]!=null){const g=o.replaceOp(["documentStyle",h],e[h],m);n.push(g)}else{const g=o.insertOp(["documentStyle",h],m);n.push(g)}return n}const nn="doc.command.core-header-footer",Vo={id:nn,type:s.CommandType.COMMAND,handler:async(i,t)=>{var T;const e=i.get(s.ICommandService),n=i.get(s.IUniverInstanceService),o=i.get(M.IRenderManagerService),{unitId:a,segmentId:r,createType:c,headerFooterProps:l}=t,A=(T=o.getRenderById(a))==null?void 0:T.with(D.DocSkeletonManagerService),d=n.getUniverDocInstance(a),u=A==null?void 0:A.getViewModel();if(d==null||u==null)return!1;const f=u.getEditArea(),{documentStyle:h}=d.getSnapshot(),m=(l==null?void 0:l.marginFooter)!=null||(l==null?void 0:l.marginHeader)!=null,g=[{startOffset:0,endOffset:0,collapsed:!0}],p={id:D.RichTextEditingMutation.id,params:{unitId:a,actions:[],textRanges:g,debounce:!0}};m&&(p.params.noNeedSetTextRange=!0);const S=s.JSONX.getInstance(),I=[];return c!=null&&di(r,c,h,I),l!=null&&Object.keys(l).forEach(O=>{const v=l[O],b=h[O];if(v===b)return;let _;if(b===void 0?_=S.insertOp(["documentStyle",O],v):_=S.replaceOp(["documentStyle",O],b,v),I.push(_),O==="useFirstPageHeaderFooter"&&v===s.BooleanNumber.TRUE&&!h.firstPageHeaderId){const B=f===M.DocumentEditArea.HEADER?ue.FIRST_PAGE_HEADER:ue.FIRST_PAGE_FOOTER;di(r,B,h,I)}else if(O==="evenAndOddHeaders"&&v===s.BooleanNumber.TRUE&&!h.evenPageHeaderId){const B=f===M.DocumentEditArea.HEADER?ue.EVEN_PAGE_HEADER:ue.EVEN_PAGE_FOOTER;di(r,B,h,I)}}),I.length===0?!1:(p.params.actions=I.reduce((O,v)=>s.JSONX.compose(O,v),null),!!e.syncExecuteCommand(p.id,p.params))}},ui={id:"doc.command.open-header-footer-panel",type:s.CommandType.COMMAND,handler:async(i,t)=>i.get(s.ICommandService).executeCommand(Ai.id,{value:"open"})},hi={id:"doc.command.close-header-footer",type:s.CommandType.COMMAND,handler:async(i,t)=>{var m;const e=i.get(s.ICommandService),n=i.get(M.IRenderManagerService),o=i.get(D.DocSelectionManagerService),a=i.get(s.IUniverInstanceService),{unitId:r}=t,c=n.getRenderById(r);if(c==null)return!1;const{scene:l}=c,A=l.getTransformerByCreate(),d=c.with(D.DocSkeletonManagerService),u=c.with(C.DocSelectionRenderService),f=d==null?void 0:d.getSkeleton(),h=d==null?void 0:d.getViewModel();return h==null||f==null?!1:(o.replaceDocRanges([]),A.clearSelectedObjects(),u.setSegment(""),u.setSegmentPage(-1),h.setEditArea(M.DocumentEditArea.BODY),f.calculate(),(m=c.mainComponent)==null||m.makeDirty(!0),queueMicrotask(()=>{const g=a.getUnit(r),p=g==null?void 0:g.getSnapshot();if(p==null)return;const S=Uo(p);o.replaceDocRanges([{startOffset:S,endOffset:S}])}),e.executeCommand(Ai.id,{value:"close"}),!0)}},At="UI_PLUGIN_DOCS",gi=`${At}_COLOR_PICKER_COMPONENT`,jo=`${At}_FONT_FAMILY_COMPONENT`,Wo=`${At}_FONT_FAMILY_ITEM_COMPONENT`,zo=`${At}_FONT_SIZE_COMPONENT`,fi={docListTypePicker:"univer-doc-list-type-picker",docListTypePickerItem:"univer-doc-list-type-picker-item",docListTypePickerItemActive:"univer-doc-list-type-picker-item-active"},Go=i=>{const{value:t,onChange:e,options:n}=i;return P.jsx("div",{className:fi.docListTypePicker,children:n.map(o=>P.jsx("img",{className:fi.docListTypePickerItem+(t===o.value?`
30
- ${fi.docListTypePickerItemActive}
31
- `:""),onClick:()=>{e(o.value)},src:o.img},o.value))})},nr=[{value:s.PresetListType.ORDER_LIST,img:"data:image/jpeg;base64,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"},{value:s.PresetListType.ORDER_LIST_1,img:"data:image/jpeg;base64,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"},{value:s.PresetListType.ORDER_LIST_2,img:"data:image/jpeg;base64,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"},{value:s.PresetListType.ORDER_LIST_3,img:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEA2ADYAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/CABEIAPQA2AMBEQACEQEDEQH/xAAzAAEAAgMBAQEAAAAAAAAAAAAABwkGCAoFBAMBAQADAQEAAAAAAAAAAAAAAAACAwQBBf/aAAwDAQACEAMQAAAA7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcdPpZewDzdXrAAAAAAAAAAAA1LsjURpqk6Pb3clw8g1gAAAAAAABlxsQADmI355/r7oddHoOx3bt1T/ExEAAAAAAAH2mTgAgicZ3hKBpx842KhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa6zjSzqqkyPb5MlwxggoAAAAAycnUAAAAqZ0V6sWQ0Nuh1H+fpnCPfMMEAAAAAPUM6AAAAIllyoHTVYTTPHOt8qZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqfRXaxnsAAAAAAAAAAAAFOGmq4/NaMfIdAAMhJhAAAAAAAAObrbR0YYr/VPFIxAAPaJOAAAAAAAANAboRZLlqOewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACte+vR26G9tM7HaLAAAAAAAAAAABzG7895GS6h7XT1F4NA+IiQAAAAAAAHtEnAA5evQz2c551N6K+rDz9I88g0AAAAAAAGQkwgApz01QxOORc7NsJWyZ7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//8QAKRAAAAYCAQMEAwADAAAAAAAAAAUGBwgXBAkDAgoWEBUgQAEwYBk6cP/aAAgBAQABCAD+Unrt9m238+XqcOOpAfE6pIiVTp77E7JREEL4hP8AyZP9X+t/GVOmFbtQ+nb3yGVbkwkzo2O16KDl5OEhO+bh8kUQ8kUQ8kUQ8kUQ8kUQ8kUQ8kUQ8kUQ8kUQ8kUQ8kUQ8kUQ8kUQ8kUQ8kUQ8kUQQp2c5iqK8fL+G8fPM5tSwgRp0ReL288e8LGx8LCYllCnSbuva5pSjk2JxG4ps8GvTqGTj8OZj5GJkV4jxXiPFeI8V4jxXiPFeI8V4jxXiPFeI8V4jxXiPFeI8V4jxXiPFeI8V4jwXI1NlWZw5+B8C2MTBFEgD+VBeHtjAwMj8lu857+uI8aOSRvFLrk/4RLZdvi2kb3cWsaWz1Rz8fVtyN3Zc6f5TycNnrnFrwmD6LIxzCpNmWfgWGsBYawFhrAWGsBYawFhrAWGsBYawFhrAWGsBYawCNWSkNVIW4Gf+ndlNdzoEa/HOfJl210lsYu2qTjszH7fvoYPh2dbW8OLreSXj47TjOe0TYg5Kcc8Lckry6oToqhOiqE6KoToqhOiqE6KoToqhOiqE6KoToqhOgmb4mIzLGNMT9L6sW1El2lXDGPgi+3yh6lsAuRR8wkBI0RlfN45AsrG/WxEuKEhpBSfZX+wU+zrJTu09D6z+j7Stmu+RPvBbCB2F6Ko2yCMhzzTEtdRC11ELXUQtdRC11EEq4JyeH2AV5f0XB/2jWMGSekmEaFhHmBQk/vxPmFIqEVCKhFQioQnm49hOMM2+keQCSB5seRuxzlkPqma+RGwiNOww7/ndjGzto9a5Wy2e6HF3AqX/PLx/jmgttSiRsGz1kkmY+x3CxwUJ5+tLB+f8s64RcHHyc3Mh1CiZvdw21knYZehlme3l2fni3hbwt4W8LeFvC3hbwt4W8LeFvC3hbwt4W8E84/vxxhlPx7jFHplwnh03IFa/wCErVEH7agg027ItauLB30N8TkzyozweGqFEKoUQqhRCqFEKoUQqhRCqFEKoUQqhRCqFEKoUQqhRCqFEKoUQqhRCqFEEq3xyRn2AaZfw2065XqntlxEVLD9UXe4M6unq6fxGLT24BTKhLzh2Cv9BCTzqbKoyTDQ/wDTf//EADkQAAAGAAMGBAMHBAIDAAAAAAECAwQFBgAHEggRE5Sl1RSV1OUJFdMQICEiM0BgFhcjJDAxWXC2/9oACAEBAAk/AP4pPKrfDz+Hdmjs5ZObXtfaVOtv0LvYMwbbMRmYR/nstWZO2xknGzISmWyKtfmIiMj5es198q3eHsLYszINpeAscTGz0HKszio0k4eXZoyEZINTiBRO2esnCDlA4gAmSVKO4N+79yqxD+1WXU3MVtjIKlSbT1+fplhMuqwYTHIYf6lvMnX4Q3DEyhE3x1SkPwxKJSyGaXxGahmJnrm9Zp5kZeXZ27PCKLIZYWJ4DxmRynO0yJbUe7+HWZ6Ym+DMLtkFBEVXBjs8+NgrMmzbK+ZEI9VVNKs4imPHKVAcOEXCp3SbFlDIPaExVWRaFXWy/kOE2IVId/2KHSWSiJJVJVI5k1E1E2axiKJnKIGIchgAxDlEDFMACAgIYn5rzR99fE/NeaPvr4n5rzR99fE/NeaPvr4n5rzR99fE/NeaPvr4n5rzR99fE/NeaPvr4n5rzR99fE/NeaPvr4n5rzR99fE/NeaPvr4n5rzR99fE/NeaPvr4n5rzR99fE/NeaPvr4l5R03U8dxEHD92uifRHPDk1pKqmIbScpTl1FHSYpTBuEAH7s7Lx0VnPeU9oTahkawuqnLVzJaipzhItFZb5bIxKKsgwh8xpuKQnCLMULjA5dun0csm+jTqbcHxRWjNogk1aNGu1uzbtmrZumVJBu3QSyxIkigikQiaSSZCppplKQhSlKABmDmjdNmL4m+VTqoEu+ddqaWe0qbStXsLt7Cf1BZo+s19OyTrifkIurwoqNvGCpnwJ5JdczNNwOaJR2q3FbGyJ5fp1uyrMygWmLZkDBL2lKKPXGtk/tyge9BFOZJExq6ZFYqovHDdkrgnEbukVW66eoxNaK6ZklSayGKcuohjF1EMUxd+8pgEAHER1CU9biI6hKetxEdQlPW4iOoSnrcRHUJT1uIjqEp63ER1CU9biI6hKetxEdQlPW4iOoSnrcRHUJT1uIjqEp63ER1CU9biI6hKetxEdQlPW4iOoSnrcRvAdocThK+Mfq6OKkdFT/Gs6USNqSUOX8xB3b94bjAAh9zK2robQ9oqCNCnM2RQcr2t5Tm5IUiNfK4cOVWrOPKSuw5dDFq2OYGptahvFPPEYytrOYr/KS2oXvLORnEnZZKj3Bqo0Wb2GuyMe7ZPY6RSWYMVyqorgHHZM1xKKrVA6eSlBPtLIV0aojnKeFSNdEYQYpSAFFJ8JhRTfDXlla2MyRuE0NbVUrwyHyU5mI/8AojKv+9efcPVjkypy0O/jo5pYLjKv2UNGOJRzKy0CzNCV00ie0TzMZqLdSUNCv45g+bP3TZUvxbtu/K/aTvMAwtUrlzs55gsMqsmMop+WaN36FHe0KomRr90/pM5koueWiXFbj5Z62fItXTxsp85kcxCZ3Zs7D90qTen58mhmcHM5nZUXdpIKV1a3x8cUWxLHGx7GClVH7p1JTL8lrWYTEtMv6+vOy32LcB2h4PhK8NJXRxX7VFT/ABrEUSNqSUOX8xB3b94bjAAhL9Pi/RYl+nxfosS/T4v0WJfp8X6LEv0+L9FiX6fF+ixL9Pi/RYl+nxfosS/T4v0WJfp8X6LEv0+L9FiS47RfxnFS8GwS18Jg6WT/AMiLVNUulVMhvynDfu3DvKIgP/C0Zjmm9naflxS7BJxyUxGUiSu8oZm5ujuJcpLMJFzCxLWR+QtpUikOa0OYM8uzlo4jmGkdsLa72nMx7LTo2/3nNKY2pbhUss2KkpDJT0q7y9iapJRkVW8umbdZReK8ZMSzZGKJ4tF40jzIsmlkn7hkHFwmUkNlta7LZZm5SdkiISTl4l5Np2qwLOJewQ8lNMpN3W5V0sqV5XVYpVscWhkMZzZcX3M/JaQJFZrUSq2uImbNQpIzpzHqMrJFsnKrlg5ZybN3EySRyiaKmGy8TJA1kkjtQwddNu64PEO3MmRYOAuk4JoMqmsQN50SgbUmbeUTAG4RAwPZrmGPbsPZrmGPbsPZrmGPbsPZrmGPbsPZrmGPbsPZrmGPbsPZrmGPbsPZrmGPbsPZrmGPbsPZrmGPbsPZrmGPbsOZRRw143DI4WaHRHjoKtz6ypMkTjuIsYS6VC7jAUR3gAlH/hpcVmBlbmLDmhLXVpcFit3rYHCD1m7au2ird/FTEPJtWUxAzkW6Zy0HNMGEvFPGkgzbOE889u3M/IeLVRM12X8wtqaxK7PIN2yoLNY5WjU+Cpz5aMbqAIlYqWAyKxTHTdAukochqavSbjnfVstaVa4KJeJs6BE1fKWtRtSpENTKWyaNYqqsYuDiWLUW8eUEVOEJgTJq3BRpWvZr7Sj58+zDfvLTNS8M1NNWJW4WZrVIR84UaQLGzW06dglGhfEpN3bVoygwh4ZAsZ/Mdl/NWSQt+XC18W2iEXgJVCN01OYtia7et/IFiSNGRGHVqMreFbfGKx9+ONYRrD/QR+t+6f1suz9ati6Qzwl45Sut1LSe+N7RmHEpuELMKwOUIwGdbjCjGlRFMVCrH171hAPsIio4a+F4ZHBVDojx3jdufWVJRE47iLGEulQu4wFEd4AJRZQvLvu44ZQvLvu44ZQvLvu44ZQvLvu44ZQvLvu44bRibd14riHbouyLBwGbhwTQZV6sQN50SgbUmbeUTAG4RAwfsf8Axny//wB3nDiYimk3NEeKw8O5kGiEpLJRyRVpBSMj1ViO35GCJyqvDtUVStUjFUXEhBAfsceE8X4f/Y4PH4fAdIOf0uKjq1cHR+oXTq1fju0jYek+54sPSfc8WHpPueLD0n3PFh6T7niZ8X4TxH+v8u4HE47Vdt+r45bTp42v9M2rTp/DfqD9jmBZELrTdnp1s9tst04yLNVnsM6mrVNGsK8qY3zZOTIranCINUy+FFNoiYR1HPjNnNWs3zZwiYSIj6BBPY49OsyFVm7PYoAp13jdSUrzZzI26Xb3BhGqrMbVEcFlwIlyrJyEl/HcsM6c1X+fFylaJRa5klX6zZLE4sUY3iVk2KkXYbbVlnbmWWmWTCHZw/zN89fHFuVsQ5keL8L34taaIqEBVRLZRjllSJCYAUOmkfMNAqqhS7xImZZEpzABRVTAROE7cqnm7lykd1fsiM5Kktl9m9VI9N8SLVk3lfO9lomUj2cmojGy69bn5sa8/dRzSxEiV5eII+/cSkdBwMH8QOnzE3NzD5tGREPERlyyieyUpKST1VBnHx0ezQWdvnztZFs0bIqrrqppJnOG2PsqoookOqqqrtC5RpppJplE6iiih7eBSEIUBMc5hApSgIiIAAjhUt1yM2YdmW5UTah2iaSzcq5SZl3eegMxK/T8uoq+MShWL9NQx7zRpls8j3skZ9HU96DM7mLprZ4h9ifG8CydPOFr4fF8Mgotw+JpPo16NOvQfTv36Tbtw17q3tmK91b2zFe6t7ZivdW9sxXure2Yr3VvbMV7q3tmK91b2zFe6t7ZivdW9sxXure2Yr3VvbMV7q3tmK91b2zFe6t7ZivdW9sxDeE8X4j/AGPmPH4fAaruf0vAo6tXB0fqF06tX47tI/chmdjpt428K9T7bXpEpzx89WbNaMp4WehnxEzpqHZykU9dsXJSKEOZBc4FOURAwbDOSHlUz3rEncKHkDt5Z0SeQueuyateLXasqV3D6w5YVlpmxT61aZSedwE/XlMxgnpaVYPEflxYBlFtFGleslijHf2GIVZ7HvWiRlRMCZVHLZREhlBKU5gIBjgJxKQ5gLvECmH8BewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3YewvMPu3Ycxijdr4riEbrOzrDx2bhuTQVVkiQdx1iibUoXcUDCG8QAo/czko2TF+2Us5nGdEBOXqsSVrj3NiZK1eRq50otkB2zgsXNVlu8dtZJJZm9QMDdRI6ZlCj8UDZbIJiiAHLsn1cTEEQ3AYoHqZyCYv/YayGLvD8xTBvAdsO37ce0Tly3cp5PRrqmRWXGT2UTx6m5RcStaokW9fRSkm2BfxcMaIi6hEx0uJp51CytgbxMvF7ZV0y72fMnqynF3/AGb2UjZyRFukWi9nXfFZQ7CRbU2Rjr+2l4SJtrizRziXjG1fReRTl8sSHbwf8m//xAA9EQACAQIEAwQFBw0BAAAAAAABAhEDIQAEEjETQVEyQGFxFGCRodEiI1OBk8HhEDRCQ1RkcHJzgpKxsvD/2gAIAQIBAT8A9VKOWpNRVXHz1dXamZNgoBGxiCIN5ME9DBEEg7ix7zSpmrUSmP0mAPgN2P1CTjMV4zQZOzRKooG0IflDyJkeIjGcQLV1r2Kyiop5Se177/3d5ynzVOtmSBKjRTnYsY+Ki3InHpjn9Vl/svxw7elZVmhQ9BphBA0EXgSYEXP8mOBU4XG0/NzEyOumYmY1W8+8cRygp6joBkLym9/efyLUdNQRioYQ0cx0PtxxH0cPUdEzpm07/wC7xtN9/wCBNMIzqHbQhPymiYG/tOw6TOGzFFGK08tSZAYDONTMBz1G4nlvHuGZpoFpVqa6FqgykyFYbx4bjoI2Ex3nK0lrVlRuzBYgWJjlPjzi8THXDZpwxWlTp0wCQFFMFt4hiQZPWwvjOa+Bl+IAHltQAAgwLQLAxv44KOqqzKwVuySCAfI8+8I7U2DodLLcEf8AvaMHOVTcLSV/pFpjX5ySb/Vh6zuioxkIWI6ksZJJ3Mk4evUqIlNzKp2bAcoE9YFh8fXEUJy5r8RbNGjmbgbzY3mI7N572KSHKtWvrFXQL2iFO3W/e1/MH/rj/lcfd3oViKBoQIL69XOYAjpywmYZKL0QqkPNzuJAB89hHQ9fV6hQavrhlUIJYsSBF+gO0GZx6H+8Zf7T8MVcvUowWgq2zqdSnwm1/MX5bHvOSEpmgLk0iABzs2ODV+iqf4N8MEGlkmp1bPUcNTQ9pQCpJK7rsd+vU95yRIXMkGCKUg9CAxBx6VmPpX9v4YRjmaFfiwXorrSpADbMdJIAkHTAH3gd5y1daPEDqWFRdJAMWvPuOOJk/wBnqfaH44fMg0zSo0hSRu1cszebWMdZm1pi2Eq01oVKZpBnY2qWkC3M3Ecote/j6zf/xAA5EQACAQEEBAwCCwEAAAAAAAABAhEDABIhMUBBYYETIlFSYHGRkqGx0fAjMhA0QlNjcHJzwdLh8f/aAAgBAwEBPwDoo9Vw5K/IhUNtnPVOzcOW2eOku1xWbkHjq8bU6fwiDm4JO/LswPXagxKXTmhKndl6btJrcdkpA5mWjkHsnrjZbgF59Tvf5ZRwNUCSVqCJPOnxP9rX1v3J40TG6e2MdIurevRxoidn0MqtEiYMjYbXVvXoF7ljH3GHVh+RLEhSVEtGA2+8bCm5EtVcMcYUwBsgZ7otSZrz02MlDgeUbfDbjpNVyiEjPADZOv3rsKKkS7MxIkm9hu2WoxwtS6ZWMDvFgykkAgkZgHLSCAwIIkHMWFBMpcjmluL2CPOwRVYsBBIA2ACAIG6y01VmYCC2fnhv6Y8J8QU7pxE3tWU9mqZzwjSy7CsqfZKTvx17tLP1hf2/7aWUmoKk5Ldjtx8bNTDOryZXVqw8s8eXo9UqCnEgm8YEW4b8Op3bJUV5AkEZgiD78tek1vmo/r/lbX05694ethD1wy4hVIZhkTBETkcx2bNJrgFqQOReD1ErbgaXMHj62YcFUp3JAc3WWSRmBOOvHw5J0mrTZ7pUgFTOO70tdr/eL3f8stI3r7tfYZYQBu8sosyMaisHIUDFfeGOuf8AnSb/2Q=="},{value:s.PresetListType.ORDER_LIST_4,img:"data:image/jpeg;base64,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"},{value:s.PresetListType.ORDER_LIST_5,img:"data:image/jpeg;base64,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"}],ir=i=>P.jsx(Go,{...i,options:nr}),or=[{value:s.PresetListType.BULLET_LIST,img:"data:image/jpeg;base64,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"},{value:s.PresetListType.BULLET_LIST_1,img:"data:image/jpeg;base64,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"},{value:s.PresetListType.BULLET_LIST_2,img:"data:image/jpeg;base64,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"},{value:s.PresetListType.BULLET_LIST_3,img:"data:image/jpeg;base64,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"},{value:s.PresetListType.BULLET_LIST_4,img:"data:image/jpeg;base64,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"},{value:s.PresetListType.BULLET_LIST_5,img:"data:image/jpeg;base64,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"}],sr=i=>P.jsx(Go,{...i,options:or}),Yo=`${At}_ORDER_LIST_TYPE_COMPONENT`,Xo=`${At}_BULLET_LIST_TYPE_COMPONENT`,ze={id:"doc.command.tab",type:s.CommandType.COMMAND,async handler(i,t){const n=i.get(C.DocAutoFormatService).onAutoFormat(ze.id,t);return(await s.sequenceExecuteAsync(n,i.get(s.ICommandService))).result}},xt={id:"doc.command.after-space",type:s.CommandType.COMMAND,async handler(i){const e=i.get(C.DocAutoFormatService).onAutoFormat(xt.id);return(await s.sequenceExecuteAsync(e,i.get(s.ICommandService))).result}},dt={id:"doc.command.enter",type:s.CommandType.COMMAND,async handler(i){const e=i.get(C.DocAutoFormatService).onAutoFormat(dt.id);return(await s.sequenceExecuteAsync(e,i.get(s.ICommandService))).result}};function ne(i){return i.getContextValue(s.FOCUSING_DOC)&&i.getContextValue(s.FOCUSING_UNIVER_EDITOR)&&!i.getContextValue(s.FOCUSING_COMMON_DRAWINGS)}function ar(i){return i.getContextValue(s.FOCUSING_DOC)&&i.getContextValue(s.FOCUSING_UNIVER_EDITOR)&&!i.getContextValue(s.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE)&&!i.getContextValue(s.FOCUSING_COMMON_DRAWINGS)}const rr={id:ze.id,binding:y.KeyCode.TAB,preconditions:ne},cr={id:ze.id,binding:y.KeyCode.TAB|y.MetaKeys.SHIFT,preconditions:ne,staticParameters:{shift:!0}};var lr=Object.defineProperty,Ar=Object.getOwnPropertyDescriptor,dr=(i,t,e,n)=>{for(var o=n>1?void 0:n?Ar(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&lr(t,e,o),o},mi=(i,t)=>(e,n)=>t(e,n,i);const ur=11,hr=9,on={ff:"Arial",fs:ur};let _e=class extends s.Disposable{constructor(t,e,n){super();R(this,"_cacheStyle",null);this._textSelectionManagerService=t,this._univerInstanceService=e,this._renderManagerService=n,this._init()}_init(){this._listenDocRangeChange()}_listenDocRangeChange(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(()=>{this._clearStyleCache()}))}getStyleCache(){return this._cacheStyle}getDefaultStyle(){var r;const t=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(t==null)return{...on};const e=t==null?void 0:t.getUnitId(),n=(r=this._renderManagerService.getRenderById(e))==null?void 0:r.with(D.DocSkeletonManagerService),o=n==null?void 0:n.getViewModel();return o==null?{...on}:o.getEditArea()===M.DocumentEditArea.BODY?{...on}:{...on,fs:hr}}setStyleCache(t){this._cacheStyle={...this._cacheStyle,...t}}_clearStyleCache(){this._cacheStyle=null}};_e=dr([mi(0,s.Inject(D.DocSelectionManagerService)),mi(1,s.IUniverInstanceService),mi(2,M.IRenderManagerService)],_e);function Ee(i,t,e){return e.executeCommand(Ne.id,{preCommandId:i,...t!=null?t:{}})}const Ko="doc.command.set-inline-format-bold",Ge={id:Ko,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee(Ko,t,e)}},Jo="doc.command.set-inline-format-italic",Ye={id:Jo,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee(Jo,t,e)}},Zo="doc.command.set-inline-format-underline",Xe={id:Zo,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee(Zo,t,e)}},qo="doc.command.set-inline-format-strikethrough",Ke={id:qo,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee(qo,t,e)}},$o="doc.command.set-inline-format-subscript",Fe={id:$o,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee($o,t,e)}},es="doc.command.set-inline-format-superscript",Je={id:es,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee(es,t,e)}},ts="doc.command.set-inline-format-fontsize",Ze={id:ts,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee(ts,t,e)}},ns="doc.command.set-inline-format-font-family",qe={id:ns,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee(ns,t,e)}},is="doc.command.set-inline-format-text-color",$e={id:is,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee(is,t,e)}},os="doc.command.set-inline-format-text-background-color",et={id:os,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee(os,t,e)}},ss="doc.command.reset-inline-format-text-background-color",ut={id:ss,type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(s.ICommandService);return Ee(ss,t,e)}},pi={[Ge.id]:"bl",[Ye.id]:"it",[Xe.id]:"ul",[Ke.id]:"st",[Ze.id]:"fs",[qe.id]:"ff",[$e.id]:"cl",[et.id]:"bg",[ut.id]:"bg",[Fe.id]:"va",[Je.id]:"va"},Ne={id:"doc.command.set-inline-format",type:s.CommandType.COMMAND,handler:async(i,t)=>{var O;const{value:e,preCommandId:n}=t,o=i.get(s.ICommandService),a=i.get(D.DocSelectionManagerService),r=i.get(s.IUniverInstanceService),c=i.get(_e),l=a.getDocRanges(),A=(O=l.find(v=>v.isActive))!=null?O:l[0];if(l.length===0)return!1;const{segmentId:d}=l[0],u=r.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(u==null)return!1;const f=u.getSelfOrHeaderFooterModel(d).getBody();if(f==null)return!1;const h=u.getUnitId();let m;switch(n){case Ge.id:case Ye.id:case Xe.id:case Ke.id:case Fe.id:case Je.id:{const v=c.getDefaultStyle(),b=rs(f,A,v);m=fr(b,n);break}case Ze.id:case qe.id:{m=e;break}case $e.id:case et.id:{m={rgb:e};break}case ut.id:{m={rgb:null};break}default:throw new Error(`Unknown command: ${n} in handleInlineFormat`)}const g={id:D.RichTextEditingMutation.id,params:{unitId:h,actions:[],textRanges:l}},p=new s.TextX,S=s.JSONX.getInstance(),I=new s.MemoryCursor;I.reset();for(const v of l){let{startOffset:b,endOffset:_,rangeType:B}=v;if(b==null||_==null)continue;if(B===s.DOC_RANGE_TYPE.RECT&&(b=b-1),b===_){const U=c.getStyleCache(),L=pi[n];c.setStyleCache({[L]:(U==null?void 0:U[L])!==void 0?as(U,L,n):m});continue}const w={dataStream:"",textRuns:[{st:0,ed:_-b,ts:{[pi[n]]:m}}]},x=b-I.cursor;x!==0&&p.push({t:s.TextXActionType.RETAIN,len:x}),p.push({t:s.TextXActionType.RETAIN,body:w,len:_-b}),I.reset(),I.moveCursor(_)}const E=te(u,d);return g.params.actions=S.editOp(p.serialize(),E),!!o.syncExecuteCommand(g.id,g.params)}};function gr(i){return i!==null&&typeof i=="object"}function as(i,t,e){if(/bl|it/.test(t))return(i==null?void 0:i[t])===s.BooleanNumber.TRUE?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE;if(/ul|st/.test(t))return gr(i==null?void 0:i[t])&&(i==null?void 0:i[t]).s===s.BooleanNumber.TRUE?{s:s.BooleanNumber.FALSE}:{s:s.BooleanNumber.TRUE};if(/va/.test(t))return e===Fe.id?(i==null?void 0:i[t])===s.BaselineOffset.SUBSCRIPT?s.BaselineOffset.NORMAL:s.BaselineOffset.SUBSCRIPT:(i==null?void 0:i[t])===s.BaselineOffset.SUPERSCRIPT?s.BaselineOffset.NORMAL:s.BaselineOffset.SUPERSCRIPT}function rs(i,t,e){var A,d,u,f,h,m,g,p,S,I,E,T,O,v;const{startOffset:n,endOffset:o,collapsed:a}=t;if(a){const b=(A=i.textRuns)!=null?A:[];let _=null;for(let B=b.length-1;B>=0;B--){const w=b[B];if(w.st<n&&n<=w.ed){_=w;break}}return _!=null&&_.ts?{...e,..._.ts}:e}const{textRuns:r=[]}=s.getBodySlice(i,n,o),c=s.Tools.deepClone(e);c.fs=Math.max(c.fs,...r.map(b=>{var _,B;return(B=(_=b==null?void 0:b.ts)==null?void 0:_.fs)!=null?B:c.fs})),c.ff=(f=(u=(d=r.find(b=>{var _;return((_=b.ts)==null?void 0:_.ff)!=null}))==null?void 0:d.ts)==null?void 0:u.ff)!=null?f:c.ff,c.it=r.length&&r.every(b=>{var _;return((_=b.ts)==null?void 0:_.it)===s.BooleanNumber.TRUE})?s.BooleanNumber.TRUE:s.BooleanNumber.FALSE,c.bl=r.length&&r.every(b=>{var _;return((_=b.ts)==null?void 0:_.bl)===s.BooleanNumber.TRUE})?s.BooleanNumber.TRUE:s.BooleanNumber.FALSE,c.ul=r.length&&r.every(b=>{var _,B;return((B=(_=b.ts)==null?void 0:_.ul)==null?void 0:B.s)===s.BooleanNumber.TRUE})?(h=r[0].ts)==null?void 0:h.ul:c.ul,c.st=r.length&&r.every(b=>{var _,B;return((B=(_=b.ts)==null?void 0:_.st)==null?void 0:B.s)===s.BooleanNumber.TRUE})?(m=r[0].ts)==null?void 0:m.st:c.st,c.bg=(S=(p=(g=r.find(b=>{var _;return((_=b.ts)==null?void 0:_.bg)!=null}))==null?void 0:g.ts)==null?void 0:p.bg)!=null?S:c.bg,c.cl=(T=(E=(I=r.find(b=>{var _;return((_=b.ts)==null?void 0:_.cl)!=null}))==null?void 0:I.ts)==null?void 0:E.cl)!=null?T:c.cl;const l=r.filter(b=>{var _;return((_=b==null?void 0:b.ts)==null?void 0:_.va)!=null});if(l.length>0&&l.length===r.length){const b=(O=l[0].ts)==null?void 0:O.va;let _=!0;for(let B=1;B<l.length;B++)if(((v=l[B].ts)==null?void 0:v.va)!==b){_=!1;break}_&&(c.va=b)}return c}function fr(i,t){const e=pi[t];return as(i,e,t)}const ht={id:"doc.command.list-operation",type:s.CommandType.COMMAND,handler:(i,t)=>{var I,E;const e=i.get(D.DocSelectionManagerService),n=i.get(s.IUniverInstanceService),o=i.get(s.ICommandService),a=t.listType,r=n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),c=(I=e.getDocRanges())!=null?I:[];if(r==null||c.length===0)return!1;const l=c[0].segmentId,A=(E=r.getSelfOrHeaderFooterModel(l).getBody())==null?void 0:E.paragraphs;if(A==null)return!1;const d=gt(c,A),u=r.getUnitId(),f={id:D.RichTextEditingMutation.id,params:{unitId:u,actions:[],textRanges:c,isEditing:!1}};new s.MemoryCursor().reset();const m=s.BuildTextUtils.paragraph.bullet.switch({paragraphs:d,listType:a,document:r,segmentId:l}),g=s.JSONX.getInstance(),p=te(r,l);return f.params.actions=g.editOp(m.serialize(),p),!!o.syncExecuteCommand(f.id,f.params)}},Mt={id:"doc.command.change-list-type",type:s.CommandType.COMMAND,handler:(i,t)=>{var I,E;const e=i.get(D.DocSelectionManagerService),n=i.get(s.IUniverInstanceService),o=i.get(s.ICommandService),{listType:a}=t,r=n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),c=e.getDocRanges();if(r==null||c==null||!c.length)return!1;const{segmentId:l}=c[0],A=(I=e.getDocRanges())!=null?I:[],d=(E=r.getSelfOrHeaderFooterModel(l).getBody())==null?void 0:E.paragraphs;if(d==null)return!1;const u=gt(A,d),f=r.getUnitId(),h=s.BuildTextUtils.paragraph.bullet.set({paragraphs:u,listType:a,segmentId:l,document:r});if(!h)return!1;const m=s.JSONX.getInstance(),g={id:D.RichTextEditingMutation.id,params:{unitId:f,actions:[],textRanges:A,isEditing:!1}},p=te(r,l);return g.params.actions=m.editOp(h.serialize(),p),!!o.syncExecuteCommand(g.id,g.params)}};var Bt=(i=>(i[i.increase=1]="increase",i[i.decrease=-1]="decrease",i))(Bt||{});const sn={id:"doc.command.change-list-nesting-level",type:s.CommandType.COMMAND,handler:(i,t)=>{var I,E;if(!t)return!1;const{type:e}=t,n=i.get(D.DocSelectionManagerService),o=i.get(s.IUniverInstanceService),a=i.get(s.ICommandService),r=o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),c=n.getActiveTextRange();if(r==null||c==null)return!1;const{segmentId:l}=c,A=(I=n.getDocRanges())!=null?I:[],d=(E=r.getSelfOrHeaderFooterModel(l).getBody())==null?void 0:E.paragraphs;if(d==null)return!1;const u=cn(c,d),f=r.getUnitId(),h=s.JSONX.getInstance(),m=s.BuildTextUtils.paragraph.bullet.changeNestLevel({paragraphs:u,type:e,segmentId:l,document:r}),g={id:D.RichTextEditingMutation.id,params:{unitId:f,actions:[],textRanges:A,isEditing:!1}},p=te(r,l);return g.params.actions=h.editOp(m.serialize(),p),!!a.syncExecuteCommand(g.id,g.params)}},Dt={id:"doc.command.bullet-list",type:s.CommandType.COMMAND,handler:(i,t)=>{const e=i.get(s.ICommandService);return t!=null&&t.value?e.syncExecuteCommand(Mt.id,{listType:t.value}):e.syncExecuteCommand(ht.id,{listType:s.PresetListType.BULLET_LIST})}},an={id:"doc.command.check-list",type:s.CommandType.COMMAND,handler:(i,t)=>{const e=i.get(s.ICommandService);return t!=null&&t.value?e.syncExecuteCommand(Mt.id,{listType:t.value}):e.syncExecuteCommand(ht.id,{listType:s.PresetListType.CHECK_LIST})}},rn={id:"doc.command.toggle-check-list",type:s.CommandType.COMMAND,handler:(i,t)=>{var g;if(!t)return!1;const e=i.get(s.IUniverInstanceService),n=i.get(s.ICommandService),{index:o,segmentId:a,textRanges:r}=t,c=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(c==null||((g=c.getSelfOrHeaderFooterModel(a).getBody())==null?void 0:g.paragraphs)==null)return!1;const A=c.getUnitId(),d={id:D.RichTextEditingMutation.id,params:{unitId:A,actions:[],textRanges:r!=null?r:[],segmentId:a,isEditing:!1}},u=s.BuildTextUtils.paragraph.bullet.toggleChecklist({document:c,paragraphIndex:o,segmentId:a});if(!u)return!1;const f=s.JSONX.getInstance(),h=te(c,a);return d.params.actions=f.editOp(u.serialize(),h),!!n.syncExecuteCommand(d.id,d.params)}},_t={id:"doc.command.order-list",type:s.CommandType.COMMAND,handler:(i,t)=>{const e=i.get(s.ICommandService);return t!=null&&t.value?e.syncExecuteCommand(Mt.id,{listType:t.value}):e.syncExecuteCommand(ht.id,{listType:s.PresetListType.ORDER_LIST})}},Si={id:"doc.command.quick-list",type:s.CommandType.COMMAND,handler(i,t){var K,ee,Z,j,z;if(!t)return!1;const e=i.get(D.DocSelectionManagerService),n=i.get(s.IUniverInstanceService),o=i.get(s.ICommandService),a=n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),r=e.getActiveTextRange();if(a==null||r==null)return!1;const{segmentId:c}=r,{listType:l,paragraph:A}=t,{paragraphStart:d,paragraphEnd:u}=A,f=new s.TextX,h=s.JSONX.getInstance(),{defaultTabStop:m=36}=a.getSnapshot().documentStyle,g=(ee=(K=a.getSelfOrHeaderFooterModel(c).getBody())==null?void 0:K.sectionBreaks)!=null?ee:[],{startIndex:p,paragraphStyle:S={}}=A,{indentFirstLine:I,snapToGrid:E,indentStart:T}=S,O=s.PRESET_LIST_TYPE[l].nestingLevel[0].paragraphProperties||{},{hanging:v,indentStart:b}=O,_=O.textStyle,{charSpace:B,gridType:w}=mr(p,g)||{charSpace:0,gridType:s.GridType.LINES},x=M.getCharSpaceApply(B,m,w,E);let L=s.Tools.generateRandomId(6);const F=(j=(Z=a.getBody())==null?void 0:Z.paragraphs)!=null?j:[],H=F.findIndex(Y=>Y.startIndex===A.startIndex),k=F[H-1],X=F[H+1];k&&k.bullet&&k.bullet.listType.indexOf(l)===0?L=k.bullet.listId:X&&X.bullet&&X.bullet.listType.indexOf(l)===0&&(L=X.bullet.listId);const G={id:D.RichTextEditingMutation.id,params:{unitId:a.getUnitId(),actions:[],textRanges:[{startOffset:d,endOffset:d,collapsed:!0}],isEditing:!1}};f.push({t:s.TextXActionType.RETAIN,len:d}),f.push({t:s.TextXActionType.DELETE,len:u-d}),f.push({t:s.TextXActionType.RETAIN,len:1,body:{dataStream:"",paragraphs:[{startIndex:0,paragraphStyle:{...S,textStyle:{...S.textStyle,..._},indentFirstLine:void 0,hanging:v,indentStart:{v:M.getNumberUnitValue(b,x)-M.getNumberUnitValue(v,x)+M.getNumberUnitValue(I,x)+M.getNumberUnitValue(T,x)}},bullet:{...(z=A.bullet)!=null?z:{nestingLevel:0,textStyle:{fs:20}},listType:l,listId:L}}]}});const W=te(a,c);return G.params.actions=h.editOp(f.serialize(),W),!!o.syncExecuteCommand(G.id,G.params)}};function cn(i,t){const{startOffset:e,endOffset:n}=i,o=[];let a=-1;for(const r of t){const{startIndex:c}=r;(e>a&&e<=c||n>a&&n<=c||c>=e&&c<=n)&&o.push(r),a=c}return o}function gt(i,t){const e=[];for(const n of i){const o=cn(n,t);e.push(...o)}return e}function mr(i,t){const e=t.sort(s.sortRulesFactory("startIndex"));for(let n=0;n<e.length;n++){const o=t[n];if(o.startIndex>=i)return o}}const Re={id:"doc.command.align-action",type:s.CommandType.COMMAND,handler:(i,t)=>{var E;const e=i.get(D.DocSelectionManagerService),n=i.get(s.IUniverInstanceService),o=i.get(s.ICommandService),{alignType:a}=t,r=n.getCurrentUniverDocInstance();if(r==null)return!1;const c=e.getDocRanges();if(c.length===0)return!1;const l=c[0].segmentId,A=(E=r.getSelfOrHeaderFooterModel(l).getBody())==null?void 0:E.paragraphs;if(A==null)return!1;const d=gt(c,A),u=r.getUnitId(),f=d.every(T=>{var O;return((O=T.paragraphStyle)==null?void 0:O.horizontalAlign)===a}),h={id:D.RichTextEditingMutation.id,params:{unitId:u,actions:[],textRanges:c}},m=new s.MemoryCursor;m.reset();const g=new s.TextX,p=s.JSONX.getInstance();for(const T of d){const{startIndex:O}=T;g.push({t:s.TextXActionType.RETAIN,len:O-m.cursor});const v={...T.paragraphStyle,horizontalAlign:f?s.HorizontalAlign.UNSPECIFIED:a};g.push({t:s.TextXActionType.RETAIN,len:1,body:{dataStream:"",paragraphs:[{...T,paragraphStyle:v,startIndex:0}]},coverType:s.UpdateDocsAttributeType.REPLACE}),m.moveCursorTo(O+1)}const S=te(r,l);return h.params.actions=p.editOp(g.serialize(),S),!!o.syncExecuteCommand(h.id,h.params)}},Nt={id:"doc.command.align-left",type:s.CommandType.COMMAND,handler:i=>i.get(s.ICommandService).syncExecuteCommand(Re.id,{alignType:s.HorizontalAlign.LEFT})},Pt={id:"doc.command.align-center",type:s.CommandType.COMMAND,handler:i=>i.get(s.ICommandService).syncExecuteCommand(Re.id,{alignType:s.HorizontalAlign.CENTER})},Ut={id:"doc.command.align-right",type:s.CommandType.COMMAND,handler:i=>i.get(s.ICommandService).syncExecuteCommand(Re.id,{alignType:s.HorizontalAlign.RIGHT})},wt={id:"doc.command.align-justify",type:s.CommandType.COMMAND,handler:i=>i.get(s.ICommandService).syncExecuteCommand(Re.id,{alignType:s.HorizontalAlign.JUSTIFIED})},pr={id:Ge.id,binding:y.KeyCode.B|y.MetaKeys.CTRL_COMMAND,preconditions:ne},Sr={id:Ye.id,binding:y.KeyCode.I|y.MetaKeys.CTRL_COMMAND,preconditions:ne},Ir={id:Xe.id,binding:y.KeyCode.U|y.MetaKeys.CTRL_COMMAND,preconditions:ne},Er={id:Ke.id,binding:y.KeyCode.X|y.MetaKeys.SHIFT|y.MetaKeys.CTRL_COMMAND,preconditions:ne},vr={id:Fe.id,binding:y.KeyCode.COMMA|y.MetaKeys.CTRL_COMMAND,preconditions:ne},Cr={id:Je.id,binding:y.KeyCode.PERIOD|y.MetaKeys.CTRL_COMMAND,preconditions:ne},Tr={id:Nt.id,binding:y.KeyCode.L|y.MetaKeys.CTRL_COMMAND|y.MetaKeys.SHIFT,preconditions:ne},br={id:Ut.id,binding:y.KeyCode.R|y.MetaKeys.CTRL_COMMAND|y.MetaKeys.SHIFT,preconditions:ne},yr={id:Pt.id,binding:y.KeyCode.E|y.MetaKeys.CTRL_COMMAND|y.MetaKeys.SHIFT,preconditions:ne},Rr={id:wt.id,binding:y.KeyCode.J|y.MetaKeys.CTRL_COMMAND|y.MetaKeys.SHIFT,preconditions:ne},Or={id:_t.id,binding:y.KeyCode.Digit7|y.MetaKeys.CTRL_COMMAND|y.MetaKeys.SHIFT,preconditions:ne},xr={id:Dt.id,binding:y.KeyCode.Digit8|y.MetaKeys.CTRL_COMMAND|y.MetaKeys.SHIFT,preconditions:ne},Mr={docCountBar:"univer-doc-count-bar"},Br=(i,t)=>{const e=i.get(s.IUniverInstanceService).getUniverDocInstance(t.unitId),n=(e==null?void 0:e.zoomRatio)||1;return{...s.Tools.deepClone(t),zoomRatio:n}},ve={id:"doc.operation.set-zoom-ratio",type:s.CommandType.OPERATION,handler:(i,t)=>{const e=i.get(s.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}},Dr=[50,80,100,130,150,170,200,400],_r=[10,400];function Nr(){const i=s.useDependency(s.ICommandService),t=s.useDependency(s.IUniverInstanceService),e=Q.useMemo(()=>t.getCurrentTypeOfUnit$(s.UniverInstanceType.UNIVER_DOC),[]),n=s.useObservable(e),o=Q.useCallback(()=>{var A,d;if(!n)return 100;const l=((d=(A=n.getSettings())==null?void 0:A.zoomRatio)!=null?d:1)*100;return Math.round(l)},[n]),[a,r]=Q.useState(()=>o());Q.useEffect(()=>(r(o()),i.onCommandExecuted(A=>{if(A.id===ve.id){const d=o();r(d)}}).dispose),[i,o]);function c(l){if(r(l),n==null)return;const A=l/100;i.executeCommand(ve.id,{unitId:n.getUnitId(),zoomRatio:A})}return P.jsx(se.Slider,{min:_r[0],value:a,shortcuts:Dr,onChange:c})}function Pr(i){return P.jsx("section",{className:Mr.docCountBar,children:P.jsx(Nr,{})})}const Ur={docFooterContainer:"univer-doc-footer-container"},wr=()=>P.jsxs("div",{className:Ur.docFooterContainer,children:[P.jsx("div",{}),P.jsx(Pr,{})]}),Ii="docs-ui.config",cs={layout:{docContainerConfig:oo,toolbarConfig:io}};var ln=(i=>(i[i.ABOVE=0]="ABOVE",i[i.BELLOW=1]="BELLOW",i))(ln||{}),Ei=(i=>(i[i.LEFT=0]="LEFT",i[i.RIGHT=1]="RIGHT",i))(Ei||{});function Lr(i,t){let e=s.DataStreamTreeTokenType.TABLE_START;const n=[],o=[];for(let a=0;a<i;a++){e+=s.DataStreamTreeTokenType.TABLE_ROW_START;for(let r=0;r<t;r++)e+=`${s.DataStreamTreeTokenType.TABLE_CELL_START}\r
32
- ${s.DataStreamTreeTokenType.TABLE_CELL_END}`,n.push({startIndex:e.length-3,paragraphStyle:{spaceAbove:{v:3},lineSpacing:2,spaceBelow:{v:0}}}),o.push({startIndex:e.length-2});e+=s.DataStreamTreeTokenType.TABLE_ROW_END}return e+=s.DataStreamTreeTokenType.TABLE_END,{dataStream:e,paragraphs:n,sectionBreaks:o}}function An(){return{margin:{start:{v:10},end:{v:10},top:{v:5},bottom:{v:5}}}}function dn(i){const t=An();return{tableCells:[...new Array(i).fill(null).map(()=>s.Tools.deepClone(t))],trHeight:{val:{v:30},hRule:s.TableRowHeightRule.AUTO}}}function un(i){return{size:{type:s.TableSizeType.SPECIFIED,width:{v:i}}}}function vi(i,t,e){const n=un(e/t),o=dn(t),a=[...new Array(i).fill(null).map(()=>s.Tools.deepClone(o))],r=[...new Array(t).fill(null).map(()=>s.Tools.deepClone(n))],c=s.generateRandomId(6);return{tableRows:a,tableColumns:r,tableId:c,align:s.TableAlignmentType.START,indent:{v:0},textWrap:s.TableTextWrapType.NONE,position:{positionH:{relativeFrom:s.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:s.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:s.TableSizeType.UNSPECIFIED,width:{v:e}}}}function Lt(i,t){if(!i&&!t)return null;if(t&&t.length>0){let e=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;const o="";for(const a of t){const{startOffset:r,endOffset:c,segmentId:l}=a;r==null||c==null||l==null||(e=Math.min(e,r),n=Math.max(n,c))}if(Number.isFinite(e)&&Number.isFinite(n))return{startOffset:e,endOffset:n,segmentId:o}}else if(i){const{startOffset:e,endOffset:n,segmentId:o}=i;return e==null||n==null||o==null?null:{startOffset:e,endOffset:n,segmentId:o}}}function Qr(i){let t=s.DataStreamTreeTokenType.TABLE_ROW_START;const e=[],n=[];for(let o=0;o<i;o++)t+=`${s.DataStreamTreeTokenType.TABLE_CELL_START}\r
33
- ${s.DataStreamTreeTokenType.TABLE_CELL_END}`,e.push({startIndex:t.length-3,paragraphStyle:{spaceAbove:{v:3},lineSpacing:2,spaceBelow:{v:0}}}),n.push({startIndex:t.length-2});return t+=s.DataStreamTreeTokenType.TABLE_ROW_END,{dataStream:t,paragraphs:e,sectionBreaks:n}}function Fr(){const i=`${s.DataStreamTreeTokenType.TABLE_CELL_START}\r
34
- ${s.DataStreamTreeTokenType.TABLE_CELL_END}`,t=[],e=[];return t.push({startIndex:1,paragraphStyle:{spaceAbove:{v:3},lineSpacing:2,spaceBelow:{v:0}}}),e.push({startIndex:2}),{dataStream:i,paragraphs:t,sectionBreaks:e}}function Hr(i,t,e){var u,f,h;const{startOffset:n,endOffset:o,segmentId:a}=i,r=e.getSelfOrHeaderFooterViewModel(a),c=t===0?n:o;let l=null;const A=(h=(f=(u=e.getBody())==null?void 0:u.tables)==null?void 0:f.find(m=>c>=m.startIndex&&c<=m.endIndex))==null?void 0:h.tableId;let d=0;for(const m of r.getChildren()){for(const g of m.children){const{children:p}=g,S=p[0];if(S){for(const I of S.children)if(I.startIndex<=c&&c<=I.endIndex){d=S.children.indexOf(I),l=I;break}}if(l)break}if(l)break}return l==null||A==null?null:{offset:t===0?l.startIndex:l.endIndex+1,colCount:l.children.length,tableId:A,insertRowIndex:t===0?d:d+1}}function kr(i,t,e){var h,m,g;const{startOffset:n,endOffset:o,segmentId:a}=i,r=e.getSelfOrHeaderFooterViewModel(a),c=t===0?n:o,l=(g=(m=(h=e.getBody())==null?void 0:h.tables)==null?void 0:m.find(p=>c>=p.startIndex&&c<=p.endIndex))==null?void 0:g.tableId,A=[];let d=null,u=-1;for(const p of r.getChildren()){for(const S of p.children){const{children:I}=S,E=I[0];if(E){if(c<E.startIndex||c>E.endIndex)continue;d=E;for(const T of E.children){for(const O of T.children){const v=T.children.indexOf(O);if(c>=O.startIndex&&c<=O.endIndex){u=v;break}}if(u!==-1)break}}if(d)break}if(d)break}if(d==null||l==null||u===-1)return null;let f=0;for(const p of d.children){const S=p.children[u],I=t===0?S.startIndex:S.endIndex+1;A.push(I-f),f=I}return{offsets:A,tableId:l,columnIndex:u,rowCount:d.children.length}}function Vr(i,t,e){const n=[];let o=t[e].size.width.v,a=0;for(let r=0;r<t.length;r++)a+=t[r].size.width.v;a+=o;for(let r=0;r<t.length;r++)n.push(t[r].size.width.v/a*i);return o=o/a*i,{widths:n,newColWidth:o}}function ls(i,t){var f,h,m;const{startOffset:e,endOffset:n,segmentId:o}=i,a=t.getSelfOrHeaderFooterViewModel(o),r=(m=(h=(f=t.getBody())==null?void 0:f.tables)==null?void 0:h.find(g=>e>=g.startIndex&&n<=g.endIndex))==null?void 0:m.tableId,c=[];let l=-1,A=0,d=-1,u=!1;for(const g of a.getChildren()){for(const p of g.children){const{children:S}=p,I=S[0];if(I){if(e<I.startIndex||n>I.endIndex)continue;d=I.startIndex+3;for(const E of I.children){const T=I.children.indexOf(E),{startIndex:O,endIndex:v}=E;e>=O&&e<=v?(l=O,c.push(T),A+=v-O+1):(O>e&&v<n||n>=O&&n<=v)&&(c.push(T),A+=v-O+1),c.length===I.children.length&&(u=!0)}}if(c.length)break}if(c.length)break}return r==null||c.length===0?null:{tableId:r,rowIndexes:c,offset:l,len:A,cursor:d,selectWholeTable:u}}function jr(i,t){var m,g,p;const{startOffset:e,endOffset:n,segmentId:o}=i,a=t.getSelfOrHeaderFooterViewModel(o),r=(p=(g=(m=t.getBody())==null?void 0:m.tables)==null?void 0:g.find(S=>e>=S.startIndex&&n<=S.endIndex))==null?void 0:p.tableId,c=[];let l=null;const A=[];let d=-1,u=-1,f=-1;for(const S of a.getChildren()){for(const I of S.children){const{children:E}=I,T=E[0];if(T){if(e<T.startIndex||n>T.endIndex)continue;l=T;for(const O of T.children)for(const v of O.children){const b=O.children.indexOf(v);e>=v.startIndex&&e<=v.endIndex&&(u=b),n>=v.startIndex&&n<=v.endIndex&&(f=b)}}if(l)break}if(l)break}if(l==null||r==null)return null;for(let S=u;S<=f;S++)A.push(S);let h=0;for(const S of l.children){const I=S.children[u],E=S.children[f];c.push({retain:I.startIndex-h,delete:E.endIndex-I.startIndex+1}),h=E.endIndex+1}return d=l.startIndex+3,{offsets:c,tableId:r,columnIndexes:A,cursor:d,selectWholeTable:A.length===l.children[0].children.length,rowCount:l.children.length}}function As(i,t){var d,u,f;const{startOffset:e,endOffset:n,segmentId:o}=i,a=t.getSelfOrHeaderFooterViewModel(o),r=(f=(u=(d=t.getBody())==null?void 0:d.tables)==null?void 0:u.find(h=>e>=h.startIndex&&n<=h.endIndex))==null?void 0:f.tableId;let c=-1,l=0,A=-1;for(const h of a.getChildren()){for(const m of h.children){const{children:g}=m,p=g[0];if(p){if(e<p.startIndex||n>p.endIndex)continue;c=p.startIndex,l=p.endIndex-p.startIndex+1,A=p.startIndex}if(p)break}if(l>0)break}return r==null?null:{tableId:r,offset:c,len:l,cursor:A}}function Wr(i,t){var m,g,p;const{startOffset:e,endOffset:n,segmentId:o}=i,a=t.getSelfOrHeaderFooterViewModel(o),r=(p=(g=(m=t.getBody())==null?void 0:m.tables)==null?void 0:g.find(S=>e>=S.startIndex&&n<=S.endIndex))==null?void 0:p.tableId,c=[];let l=null,A=-1,d=-1,u=-1,f=-1;for(const S of a.getChildren()){for(const I of S.children){const{children:E}=I,T=E[0];if(T){if(e<T.startIndex||n>T.endIndex)continue;l=T;for(const O of T.children){const v=T.children.indexOf(O);for(const b of O.children){const _=O.children.indexOf(b);e>=b.startIndex&&e<=b.endIndex&&(d=v,u=_),n>=b.startIndex&&n<=b.endIndex&&(f=_)}}}if(l)break}if(l)break}if(l==null||r==null||d===-1)return null;const h=l.children[d];for(let S=u;S<=f;S++){const I=h.children[S];c.push({retain:I.startIndex+1,delete:I.endIndex-I.startIndex-3})}return A=l.startIndex+3,{offsets:c,tableId:r,cursor:A,rowCount:l.children.length}}var Ci=(i=>(i[i.NEXT=0]="NEXT",i[i.PREV=1]="PREV",i))(Ci||{});function ds(i,t,e){const{startOffset:n}=t;let o=null;for(const A of i.getChildren()){for(const d of A.children){const u=d.children[0];if(u&&n>u.startIndex&&n<u.endIndex){o=u;break}}if(o)break}if(o==null)return null;let a=-1,r=-1,c=null;for(const A of o.children){for(const d of A.children)if(n>d.startIndex&&n<d.endIndex){a=A.children.indexOf(d),r=o.children.indexOf(A),c=A;break}if(a>-1)break}if(a===-1||r===-1||c==null)return null;let l=null;if(e===0){if(l=c.children[a+1],!l){const A=o.children[r+1];A&&(l=A.children[0])}}else if(l=c.children[a-1],!l){const A=o.children[r-1];A&&(l=A.children[A.children.length-1])}if(l){const{startIndex:A,endIndex:d}=l;return{startOffset:A+1,endOffset:d-2}}}function us(i,t){const e=[],{customBlocks:n=[]}=i;for(const o of t){const{startOffset:a,endOffset:r}=o;if(!(a==null||r==null))for(const c of n){const{startIndex:l}=c;l>=a&&l<r&&e.push(c.blockId)}}return e}function zr(i){return i.some(t=>{const{startNodePosition:e}=t;return e?(e==null?void 0:e.path.indexOf("cells"))>-1:!1})}const Gr=s.SHEET_EDITOR_UNITS,Ti={id:"doc.command.inner-paste",type:s.CommandType.COMMAND,handler:async(i,t)=>{var B,w,x,U,L,F;const{segmentId:e,textRanges:n,doc:o}=t,a=i.get(s.ICommandService),r=i.get(D.DocSelectionManagerService),c=i.get(s.IUniverInstanceService),l=r.getTextRanges(),A=r.getRectRanges(),{body:d,tableSource:u,drawings:f}=o;if(!Array.isArray(l)||l.length===0||d==null)return!1;const h=c.getCurrentUniverDocInstance(),m=h==null?void 0:h.getSelfOrHeaderFooterModel(e).getBody();if(h==null||m==null)return!1;const g=h.getUnitId(),p={id:D.RichTextEditingMutation.id,params:{unitId:g,actions:[],textRanges:n,segmentId:e}},S=new s.MemoryCursor;S.reset();const I=new s.TextX,E=s.JSONX.getInstance(),T=[],O=!!((B=d.tables)!=null&&B.length),v=!!((w=d.customBlocks)!=null&&w.length);if(O&&e||O&&zr(l)||l.length&&(A!=null&&A.length))return!1;for(let H=0;H<l.length;H++){const k=l[H],{startOffset:X,endOffset:G,collapsed:W}=k,V=X-S.cursor,K=s.Tools.deepClone(d);if(O)for(const j of K.tables){const{tableId:z}=j,Y=s.Tools.generateRandomId(6);j.tableId=Y;const ie=s.Tools.deepClone(u[z]);ie.tableId=Y;const ce=E.insertOp(["tableSource",Y],ie);T.push(ce)}if(v&&f){const j=(U=(x=h.getSnapshot().drawingsOrder)==null?void 0:x.length)!=null?U:0;for(const z of K.customBlocks){const{blockId:Y}=z,ie=s.Tools.generateRandomId(6);z.blockId=ie;const ce=s.Tools.deepClone(f[Y]);ce.drawingId=ie;const ge=E.insertOp(["drawings",ie],ce),le=E.insertOp(["drawingsOrder",j],ie);T.push(ge),T.push(le)}}const ee=zn((L=m.customRanges)!=null?L:[],G,Gr.includes(g)),Z=Gn((F=m.customDecorations)!=null?F:[],G);if(ee&&(K.customRanges=[{...ee,startIndex:0,endIndex:d.dataStream.length-1}]),Z.length&&(K.customDecorations=Z.map(j=>({...j,startIndex:0,endIndex:d.dataStream.length-1}))),W)I.push({t:s.TextXActionType.RETAIN,len:V}),I.push({t:s.TextXActionType.INSERT,body:K,len:d.dataStream.length});else{const j=s.BuildTextUtils.selection.delete([k],d,S.cursor,K,l.length===1);I.push(...j)}S.reset(),S.moveCursor(G)}const b=te(h,e);return T.push(E.editOp(I.serialize(),b)),p.params.actions=T.reduce((H,k)=>s.JSONX.compose(H,k),null),!!a.syncExecuteCommand(p.id,p.params)}};function Yr(i,t){const{startOffset:e,endOffset:n}=i,o=t.some(r=>r.startIndex===n),a=Math.max(e,o?n-1:n);return{...i,endOffset:a,collapsed:e===a}}function Xr(i,t,e){var m,g;const n=t.getSelfOrHeaderFooterModel(e).getBody(),o=new s.TextX,a=s.JSONX.getInstance(),r=[];if(n==null)return r;const{tables:c=[]}=n,l=new s.MemoryCursor;l.reset();for(let p=0;p<i.length;p++){const S=Yr(i[p],c),{startOffset:I,endOffset:E,collapsed:T}=S,O=I-l.cursor;T?o.push({t:s.TextXActionType.RETAIN,len:O}):o.push(...s.BuildTextUtils.selection.delete([S],n,l.cursor,null,!1)),l.reset(),l.moveCursor(E)}const A=te(t,e);r.push(a.editOp(o.serialize(),A));const d=us(n,i),u=(m=t.getDrawings())!=null?m:{},f=(g=t.getDrawingsOrder())!=null?g:[],h=d.sort((p,S)=>f.indexOf(p)>f.indexOf(S)?-1:f.indexOf(p)<f.indexOf(S)?1:0);if(h.length>0)for(const p of h){const S=u[p],I=f.indexOf(p);if(S==null||I<0)continue;const E=a.removeOp(["drawings",p],S),T=a.removeOp(["drawingsOrder",I],p);r.push(E),r.push(T)}return r.reduce((p,S)=>s.JSONX.compose(p,S),null)}function Kr(i,t,e,n){const o=[];if(t.getSelfOrHeaderFooterModel(n).getBody()==null)return o;const r=new s.TextX,c=s.JSONX.getInstance(),l=new s.MemoryCursor;l.reset();for(const d of i){const{startOffset:u,endOffset:f,spanEntireRow:h,spanEntireTable:m}=d;if(!(u==null||f==null))if(m){const g=As({startOffset:u,endOffset:f,segmentId:n},e);if(g==null)continue;const{offset:p,len:S,tableId:I}=g;p-l.cursor>0&&r.push({t:s.TextXActionType.RETAIN,len:p-l.cursor}),r.push({t:s.TextXActionType.DELETE,len:S});const E=c.removeOp(["tableSource",I]);o.push(E),l.moveCursorTo(p+S)}else if(h){const g=ls({startOffset:u,endOffset:f,segmentId:n},e);if(g==null)continue;const{offset:p,rowIndexes:S,len:I,tableId:E}=g;p-l.cursor>0&&r.push({t:s.TextXActionType.RETAIN,len:p-l.cursor}),r.push({t:s.TextXActionType.DELETE,len:I});for(const T of S.reverse()){const O=c.removeOp(["tableSource",E,"tableRows",T]);o.push(O)}l.moveCursorTo(p+I)}else{const g=Wr({startOffset:u,endOffset:f,segmentId:n},e);if(g==null)continue;const{offsets:p}=g;for(const S of p){const{retain:I,delete:E}=S;I-l.cursor>0&&r.push({t:s.TextXActionType.RETAIN,len:I-l.cursor}),r.push({t:s.TextXActionType.DELETE,len:E}),l.moveCursorTo(I+E)}}}const A=te(t,n);return o.push(c.editOp(r.serialize(),A)),o.reduce((d,u)=>s.JSONX.compose(d,u),null)}function hs(i,t,e,n,o){let a=[];if(Array.isArray(i)&&(i==null?void 0:i.length)!==0&&(a=Xr(i,e,o)),Array.isArray(t)&&(t==null?void 0:t.length)!==0){const r=Kr(t,e,n,o);a==null||a.length===0?a=r:a=s.JSONX.compose(a,s.JSONX.transform(r,a,"right"))}return a}const tt={id:"doc.command.inner-cut",type:s.CommandType.COMMAND,handler:async(i,t)=>{var g,p;const{segmentId:e,textRanges:n}=t,o=i.get(s.ICommandService),a=i.get(D.DocSelectionManagerService),r=i.get(s.IUniverInstanceService),c=(g=t.selections)!=null?g:a.getTextRanges(),l=a.getRectRanges();if((!Array.isArray(c)||c.length===0)&&(!Array.isArray(l)||l.length===0))return!1;const A=(p=r.getCurrentUniverDocInstance())==null?void 0:p.getUnitId();if(!A)return!1;const d=r.getUniverDocInstance(A);if(d==null)return!1;const u=fe(i,A);if(u==null)return!1;const f=u.getViewModel(),h={id:D.RichTextEditingMutation.id,params:{unitId:A,actions:[],textRanges:n}};return h.params.actions=hs(c,l,d,f,e),!!o.syncExecuteCommand(h.id,h.params)}};var de=(i=>(i[i.LEFT=0]="LEFT",i[i.RIGHT=1]="RIGHT",i))(de||{});const gs="doc.command.insert-text",hn={id:gs,type:s.CommandType.COMMAND,handler:async(i,t)=>{var v;const e=i.get(s.ICommandService),{range:n,segmentId:o,body:a,unitId:r,cursorOffset:c}=t,l=i.get(D.DocSelectionManagerService),d=i.get(s.IUniverInstanceService).getUnit(r,s.UniverInstanceType.UNIVER_DOC);if(d==null)return!1;const u=l.getActiveTextRange(),f=d.getSelfOrHeaderFooterModel((v=u==null?void 0:u.segmentId)!=null?v:"").getBody();if(f==null)return!1;const{startOffset:h,collapsed:m}=n,g=c!=null?c:a.dataStream.length,p=[{startOffset:h+g,endOffset:h+g,style:u==null?void 0:u.style,collapsed:m}],S={id:D.RichTextEditingMutation.id,params:{unitId:r,actions:[],textRanges:p,debounce:!0}},I=new s.TextX,E=s.JSONX.getInstance();if(m)h>0&&I.push({t:s.TextXActionType.RETAIN,len:h}),I.push({t:s.TextXActionType.INSERT,body:a,len:a.dataStream.length});else{const b=s.BuildTextUtils.selection.delete([n],f,0,a);I.push(...b)}S.params.textRanges=[{startOffset:h+g,endOffset:h+g,collapsed:m}];const T=te(d,o);return S.params.actions=E.editOp(I.serialize(),T),!!e.syncExecuteCommand(S.id,S.params)}},ft={id:"doc.command.delete-text",type:s.CommandType.COMMAND,handler:async(i,t)=>{var O;const e=i.get(s.ICommandService),n=i.get(s.IUniverInstanceService),{range:o,segmentId:a,unitId:r,direction:c,len:l=1}=t,A=n.getUnit(r,s.UniverInstanceType.UNIVER_DOC),d=A==null?void 0:A.getSelfOrHeaderFooterModel(a).getBody();if(A==null||d==null)return!1;const{startOffset:u}=o;let f=c===de.LEFT?u-l:u,h=c===de.LEFT?u-1:u+l-1;const m=(O=d.customRanges)==null?void 0:O.find(v=>v.startIndex<=f&&v.endIndex>=h);m!=null&&m.wholeEntity&&(f=m.startIndex,h=Math.max(h,m.endIndex));const g={id:D.RichTextEditingMutation.id,params:{unitId:r,actions:[],textRanges:[{startOffset:f,endOffset:f,collapsed:!0}],debounce:!0}},p=new s.TextX,S=s.JSONX.getInstance();p.push({t:s.TextXActionType.RETAIN,len:f-0}),p.push({t:s.TextXActionType.DELETE,len:h-f+1});const E=te(A,a);return g.params.actions=S.editOp(p.serialize(),E),!!e.syncExecuteCommand(g.id,g.params)}},bi={id:"doc.command.update-text",type:s.CommandType.COMMAND,handler:async(i,t)=>{const{range:e,segmentId:n,updateBody:o,coverType:a,unitId:r,textRanges:c}=t,l=i.get(s.ICommandService),d=i.get(s.IUniverInstanceService).getCurrentUniverDocInstance();if(d==null)return!1;const u={id:D.RichTextEditingMutation.id,params:{unitId:r,actions:[],textRanges:c}},f=new s.TextX,h=s.JSONX.getInstance(),{startOffset:m,endOffset:g}=e;f.push({t:s.TextXActionType.RETAIN,len:m}),f.push({t:s.TextXActionType.RETAIN,body:o,len:g-m,coverType:a});const p=te(d,n);return u.params.actions=h.editOp(f.serialize(),p),!!l.syncExecuteCommand(u.id,u.params)}},gn={id:"doc.command.delete-custom-block",type:s.CommandType.COMMAND,handler:async(i,t)=>{var x;const e=i.get(D.DocSelectionManagerService),n=i.get(s.IUniverInstanceService),o=i.get(s.ICommandService),a=e.getActiveTextRange(),r=n.getCurrentUniverDocInstance();if(a==null||r==null)return!1;const{direction:c,range:l,unitId:A,drawingId:d}=t,{startOffset:u,segmentId:f,style:h}=a,m=c===de.LEFT?u-1:u,g=[{startOffset:m,endOffset:m,style:h}],p={id:D.RichTextEditingMutation.id,params:{unitId:A,actions:[],textRanges:g,prevTextRanges:[l]}},S=new s.TextX,I=s.JSONX.getInstance(),E=[];u>0&&S.push({t:s.TextXActionType.RETAIN,len:c===de.LEFT?u-1:u}),S.push({t:s.TextXActionType.DELETE,len:1});const T=te(r,f);E.push(I.editOp(S.serialize(),T));const O=((x=r.getDrawings())!=null?x:{})[d],b=r.getDrawingsOrder().indexOf(d),_=I.removeOp(["drawings",d],O),B=I.removeOp(["drawingsOrder",b],d);return E.push(_),E.push(B),p.params.actions=E.reduce((U,L)=>s.JSONX.compose(U,L),null),!!o.syncExecuteCommand(p.id,p.params)}},fn={id:"doc.command.merge-two-paragraph",type:s.CommandType.COMMAND,handler:async(i,t)=>{const e=i.get(D.DocSelectionManagerService),n=i.get(s.IUniverInstanceService),o=i.get(s.ICommandService),{direction:a,range:r}=t,c=e.getActiveTextRange(),l=e.getTextRanges();if(c==null||l==null)return!1;const{segmentId:A,style:d}=c,u=n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),f=u==null?void 0:u.getSelfOrHeaderFooterModel(A).getBody();if(u==null||f==null)return!1;const h=c,m=u.getUnitId(),{startOffset:g,collapsed:p}=h;if(!p)return!1;const S=a===de.LEFT?g:g+1;let I,E;for(const x of f.paragraphs){if(x.startIndex>=S){E=x;break}I=x}if(I==null||E==null)return!1;const T=a===de.LEFT?g-1:g,O=[{startOffset:T,endOffset:T,style:d}],v={id:D.RichTextEditingMutation.id,params:{unitId:m,actions:[],textRanges:O,prevTextRanges:[r]}},b=new s.TextX,_=s.JSONX.getInstance();I.startIndex>0&&b.push({t:s.TextXActionType.RETAIN,len:I.startIndex}),b.push({t:s.TextXActionType.DELETE,len:1}),E.startIndex>I.startIndex+1&&b.push({t:s.TextXActionType.RETAIN,len:E.startIndex-I.startIndex-1}),b.push({t:s.TextXActionType.RETAIN,len:1,coverType:s.UpdateDocsAttributeType.REPLACE,body:{dataStream:"",paragraphs:[{...s.Tools.deepClone(I),startIndex:0}]}});const B=te(u,A);return v.params.actions=_.editOp(b.serialize(),B),!!o.syncExecuteCommand(v.id,v.params)}};function mn(i,t){let e=0;if(i==null||i.length===0){if(typeof t[0].startOffset=="number"){const n=t[0],{spanEntireRow:o,spanEntireTable:a}=n;a?e=n.startOffset-3:o?n.startRow>0?e=n.startOffset-6:e=n.startOffset:e=t[0].startOffset}}else if(i.length>0&&t.length>0){const n=i[0],o=t[0];if(n.startOffset!=null&&o.startOffset!=null){if(n.startOffset<o.startOffset)e=n.startOffset;else if(n.startOffset>=o.startOffset){const{spanEntireRow:a,spanEntireTable:r}=o;r?e=o.startOffset-3:a&&(e=o.startOffset-6)}}}return e}const Qt={id:"doc.command.delete-left",type:s.CommandType.COMMAND,handler:async i=>{var B,w;const t=i.get(D.DocSelectionManagerService),e=i.get(s.IUniverInstanceService),n=i.get(s.ICommandService);let o=!0;const a=e.getCurrentUniverDocInstance();if(a==null)return!1;const r=a.getUnitId(),c=fe(i,r),l=t.getActiveTextRange(),A=t.getRectRanges(),d=t.getTextRanges(),u=c==null?void 0:c.getSkeleton();if(u==null)return!1;if(A!=null&&A.length){const x=mn(d,A),U=A[0].segmentId,L=[{startOffset:x,endOffset:x}];return n.executeCommand(tt.id,{segmentId:U,textRanges:L})}if(l==null||d==null)return!1;const{segmentId:f,style:h,segmentPage:m}=l,g=a.getSelfOrHeaderFooterModel(f).getBody();if(g==null)return!1;const p=l,{startOffset:S,collapsed:I}=p,E=u.findNodeByCharIndex(S,f,m),T=M.hasListGlyph(E),O=M.isIndentByGlyph(E,g);let v=S;const b=u.findNodeByCharIndex(S-1,f,m);if(M.isFirstGlyph(E)&&b!==E&&(T===!0||O===!0)&&I){const x=M.getParagraphByGlyph(E,g);if(x==null)return!1;const U=x==null?void 0:x.startIndex,L={startIndex:0},F=x.paragraphStyle;if(T===!0){const k=x.paragraphStyle;if(k){L.paragraphStyle=k;const{hanging:X}=k;X&&(L.paragraphStyle.indentStart=X,L.paragraphStyle.hanging=void 0)}}else if(O===!0){const k=x.bullet;k&&(L.bullet=k),F!=null&&(L.paragraphStyle={...F},delete L.paragraphStyle.hanging,delete L.paragraphStyle.indentStart)}const H=[{startOffset:v,endOffset:v,style:h}];o=await n.executeCommand(bi.id,{unitId:a.getUnitId(),updateBody:{dataStream:"",paragraphs:[{...L}]},range:{startOffset:U,endOffset:U+1},textRanges:H,coverType:s.UpdateDocsAttributeType.REPLACE,segmentId:f})}else if(I===!0){if(b==null)return!0;if(b.content==="\r")o=await n.executeCommand(fn.id,{direction:de.LEFT,range:p});else if(b.streamType==="\b"){const x=(w=a.getSnapshot().drawings)==null?void 0:w[(B=b.drawingId)!=null?B:""];if(x==null)return!0;if(x.layoutType===s.PositionedObjectLayoutType.INLINE){const L=a.getUnitId();o=await n.executeCommand(gn.id,{direction:de.LEFT,range:l,unitId:L,drawingId:b.drawingId})}else{const L=u.findNodeByCharIndex(S-2);if(L==null)return!0;v-=b.count,v-=L.count;const F=[{startOffset:v,endOffset:v,style:h}];o=await n.executeCommand(ft.id,{unitId:a.getUnitId(),range:{...l,startOffset:l.startOffset-1,endOffset:l.endOffset-1},segmentId:f,direction:de.LEFT,len:L.count,textRanges:F})}}else v-=b.count,o=await n.executeCommand(ft.id,{unitId:a.getUnitId(),range:p,segmentId:f,direction:de.LEFT,len:b.count})}else{const x=fs(p,[p]);o=await n.executeCommand(tt.id,{segmentId:f,textRanges:x,selections:[p]})}return o}},yi={id:"doc.command.delete-right",type:s.CommandType.COMMAND,handler:async i=>{var E,T;const t=i.get(D.DocSelectionManagerService),n=i.get(s.IUniverInstanceService).getCurrentUniverDocInstance();if(!n)return!1;const o=fe(i,n.getUnitId()),a=i.get(s.ICommandService),r=t.getActiveTextRange(),c=t.getRectRanges(),l=t.getTextRanges(),A=o==null?void 0:o.getSkeleton();if(c!=null&&c.length){const O=mn(l,c),v=c[0].segmentId,b=[{startOffset:O,endOffset:O}];return a.executeCommand(tt.id,{segmentId:v,textRanges:b})}if(r==null||A==null||l==null)return!1;const{segmentId:d,style:u,segmentPage:f}=r,h=n==null?void 0:n.getSelfOrHeaderFooterModel(d).getBody();if(!n||!h)return!1;const m=r,{startOffset:g,endOffset:p,collapsed:S}=m;if(g===h.dataStream.length-2&&S)return!0;let I=!1;if(S===!0){const O=A.findNodeByCharIndex(g,d,f),v=A.findNodeByCharIndex(g+1);if(O.streamType===s.DataStreamTreeTokenType.PARAGRAPH&&(v==null?void 0:v.streamType)===s.DataStreamTreeTokenType.SECTION_BREAK)return!1;if(O.content==="\r")I=await a.executeCommand(fn.id,{direction:de.RIGHT,range:r});else if(O.streamType==="\b"){const b=(T=n.getSnapshot().drawings)==null?void 0:T[(E=O.drawingId)!=null?E:""];if(b==null)return!0;if(b.layoutType===s.PositionedObjectLayoutType.INLINE){const B=n.getUnitId();I=await a.executeCommand(gn.id,{direction:de.RIGHT,range:r,unitId:B,drawingId:O.drawingId})}else{if(v==null)return!0;const B=[{startOffset:g+1,endOffset:g+1,style:u}];I=await a.executeCommand(ft.id,{unitId:n.getUnitId(),range:{...r,startOffset:g+1,endOffset:p+1},segmentId:d,direction:de.RIGHT,textRanges:B,len:v.count})}}else{const b=[{startOffset:g,endOffset:g,style:u}];I=await a.executeCommand(ft.id,{unitId:n.getUnitId(),range:m,segmentId:d,direction:de.RIGHT,textRanges:b,len:O.count})}}else{const O=fs(m,[m]);I=await a.executeCommand(tt.id,{segmentId:d,textRanges:O,selections:[m]})}return I}};function fs(i,t){let e=i.endOffset;for(const o of t){const{startOffset:a,endOffset:r}=o;a==null||r==null||r<=i.endOffset&&(e-=r-a)}return[{startOffset:e,endOffset:e,style:i.style}]}const Jr=10,Zr=6;function qr(){return s.Tools.generateRandomId(Zr)}function $r(i){const t=i.match(/data-copy-id="([^\s]+)"/);return t&&t[1]?t[1]:null}class ec{constructor(){R(this,"_cache",new s.LRUMap(Jr))}set(t,e){this._cache.set(t,e)}get(t){return this._cache.get(t)}clear(){this._cache.clear()}}const Ri=new ec;function Oi(i){const t=i.style,e={},n=i.tagName.toLowerCase();switch(n){case"b":case"em":case"strong":{e.bl=s.BooleanNumber.TRUE;break}case"s":{e.st={s:s.BooleanNumber.TRUE};break}case"u":{e.ul={s:s.BooleanNumber.TRUE};break}case"i":{e.it=s.BooleanNumber.TRUE;break}case"sub":case"sup":{e.va=n==="sup"?s.BaselineOffset.SUPERSCRIPT:s.BaselineOffset.SUBSCRIPT;break}}for(let o=0;o<t.length;o++){const a=t[o],r=t.getPropertyValue(a);switch(a){case"font-family":{e.ff=r.replace(/^"/g,"").replace(/"$/g,"");break}case"font-size":{const c=Number.parseInt(r);Number.isNaN(c)||(r.endsWith("pt")?e.fs=c:r.endsWith("px")&&(e.fs=M.pixelToPt(c)));break}case"font-style":{r==="italic"&&(e.it=s.BooleanNumber.TRUE);break}case"font-weight":{(Number(r)>400||String(r)==="bold")&&(e.bl=s.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(r)?e.ul={s:s.BooleanNumber.TRUE}:/overline/.test(r)?e.ol={s:s.BooleanNumber.TRUE}:/line-through/.test(r)&&(e.st={s:s.BooleanNumber.TRUE});break}case"color":{try{const c=new s.ColorKit(r);c.isValid&&(e.cl={rgb:c.toRgbString()})}catch{}break}case"background-color":{const c=new s.ColorKit(r);c.isValid&&(e.bg={rgb:c.toRgbString()});break}}}return e}function tc(i){const t=new DOMParser,e=`<x-univer id="univer-root">${i}</x-univer>`;return t.parseFromString(e,"text/html").querySelector("#univer-root")}function ms(i,t){const e=i.tagName.toLowerCase();return typeof t=="string"?e===t:Array.isArray(t)?t.some(n=>n===e):t(i)}const ps=660,Vn=class Vn{constructor(){R(this,"_tableCache",[]);R(this,"_styleCache",new Map);R(this,"_styleRules",[]);R(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,e={}){var c;const n=Vn._pluginList.find(l=>l.checkPasteType(t)),o=tc(t),r={body:{dataStream:"",paragraphs:[],sectionBreaks:[],tables:[],textRuns:[],customBlocks:[]},tableSource:{},id:(c=e==null?void 0:e.unitId)!=null?c:""};return n&&(this._styleRules=[...n.stylesRules],this._afterProcessRules=[...n.afterProcessRules]),this._tableCache=[],this._styleCache.clear(),this._process(null,o.childNodes,r),this._styleCache.clear(),this._styleRules=[],this._afterProcessRules=[],r}_process(t,e,n){var a,r,c,l;const o=n.body;for(const A of e)if(A.nodeType===Node.TEXT_NODE){if(((a=A.nodeValue)==null?void 0:a.trim())==="")continue;const d=(r=A.nodeValue)==null?void 0:r.replace(/[\r\n]/g,"");let u;t&&this._styleCache.has(t)&&(u=this._styleCache.get(t)),o.dataStream+=d,u&&Object.getOwnPropertyNames(u).length&&o.textRuns.push({st:o.dataStream.length-d.length,ed:o.dataStream.length,ts:u})}else if(A.nodeName==="IMG"){const d=A,u=d.dataset.imageSourceType,f=u===jn.ImageSourceType.UUID?d.dataset.source:d.src;if(f&&u){const h=Number(d.dataset.width||100),m=Number(d.dataset.height||100),g=Number(d.dataset.docTransformWidth||h),p=Number(d.dataset.docTransformHeight||m),S=s.Tools.generateRandomId(6);(l=(c=n.body)==null?void 0:c.customBlocks)==null||l.push({startIndex:o.dataStream.length,blockId:S}),o.dataStream+="\b",n.drawings||(n.drawings={}),n.drawings[S]={drawingId:S,title:"",description:"",imageSourceType:u,source:f,transform:{width:h,height:m,left:0},docTransform:{size:{width:g,height:p},angle:0,positionH:{relativeFrom:s.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:s.ObjectRelativeFromV.PARAGRAPH,posOffset:0}},layoutType:s.PositionedObjectLayoutType.INLINE,drawingType:s.DrawingTypeEnum.DRAWING_IMAGE,unitId:n.id||"",subUnitId:n.id||""}}}else{if(s.skipParseTagNames.includes(A.nodeName.toLowerCase()))continue;if(A.nodeType===Node.ELEMENT_NODE){const d=A,u=this._processBeforeLink(d,n),f=t?this._styleCache.get(t):{},h=this._styleRules.find(({filter:S})=>ms(A,S)),m=h?h.getStyle(A):Oi(A);this._styleCache.set(A,{...f,...m});const{childNodes:g}=A;this._processBeforeTable(A,n),this._process(A,g,n),this._processAfterTable(A,n);const p=this._afterProcessRules.find(({filter:S})=>ms(A,S));p&&p.handler(n,A),this._processAfterLink(d,n,u)}}}_processBeforeTable(t,e){var a;const n=t.tagName.toUpperCase(),o=e.body;switch(n){case"TABLE":{o.dataStream[o.dataStream.length-1]!=="\r"&&(o.dataStream+="\r",o.paragraphs==null&&(o.paragraphs=[]),(a=o.paragraphs)==null||a.push({startIndex:o.dataStream.length-1}));const r=vi(0,0,ps);this._tableCache.push({table:r,startIndex:o.dataStream.length}),o.dataStream+=s.DataStreamTreeTokenType.TABLE_START;break}case"TR":{const r=dn(0);this._tableCache[this._tableCache.length-1].table.tableRows.push(r),o.dataStream+=s.DataStreamTreeTokenType.TABLE_ROW_START;break}case"TD":{const r=An(),c=this._tableCache[this._tableCache.length-1].table;c.tableRows[c.tableRows.length-1].tableCells.push(r),o.dataStream+=s.DataStreamTreeTokenType.TABLE_CELL_START;break}}}_processAfterTable(t,e){var r,c;const n=t.tagName.toUpperCase(),o=e.body;e.tableSource==null&&(e.tableSource={}),o.tables==null&&(o.tables=[]),o.sectionBreaks==null&&(o.sectionBreaks=[]);const{tableSource:a}=e;switch(n){case"TABLE":{const l=this._tableCache.pop(),{startIndex:A,table:d}=l,u=d.tableRows[0].tableCells.length,f=un(ps/u),h=[...new Array(u).fill(null).map(()=>s.Tools.deepClone(f))];d.tableColumns=h,a[d.tableId]=d,o.dataStream+=s.DataStreamTreeTokenType.TABLE_END,o.tables.push({startIndex:A,endIndex:o.dataStream.length,tableId:d.tableId});break}case"TR":{o.dataStream+=s.DataStreamTreeTokenType.TABLE_ROW_END;break}case"TD":{o.dataStream[o.dataStream.length-1]!=="\r"&&((r=o.paragraphs)==null||r.push({startIndex:o.dataStream.length}),o.dataStream+="\r"),(c=o.sectionBreaks)==null||c.push({startIndex:o.dataStream.length}),o.dataStream+=`
35
- ${s.DataStreamTreeTokenType.TABLE_CELL_END}`;break}}}_processBeforeLink(t,e){return e.body.dataStream.length}_processAfterLink(t,e,n){var r,c;const o=e.body,a=t;a.tagName.toUpperCase()==="A"&&(o.customRanges=(r=o.customRanges)!=null?r:[],o.customRanges.push({startIndex:n,endIndex:o.dataStream.length-1,rangeId:(c=a.dataset.rangeid)!=null?c:s.generateRandomId(),rangeType:s.CustomRangeType.HYPERLINK,properties:{url:a.href}}))}};R(Vn,"_pluginList",[]);let mt=Vn;const Ss={name:"univer-doc-paste-plugin-lark",checkPasteType(i){return/lark-record-clipboard/i.test(i)},stylesRules:[{filter:["s"],getStyle(i){const t=Oi(i);return{st:{s:s.BooleanNumber.TRUE},...t}}}],afterProcessRules:[{filter(i){return i.tagName==="DIV"&&/ace-line/i.test(i.className)},handler(i){const t=i.body;t.paragraphs==null&&(t.paragraphs=[]),t.paragraphs.push({startIndex:t.dataStream.length}),t.dataStream+="\r"}}]};function Is(i){const t=i.style,e={};for(let n=0;n<t.length;n++){const o=t[n],a=t.getPropertyValue(o);switch(o){case"margin-top":{const r=Number.parseInt(a);e.spaceAbove={v:/pt/.test(a)?M.ptToPixel(r):r};break}case"margin-bottom":{const r=Number.parseInt(a);e.spaceBelow={v:/pt/.test(a)?M.ptToPixel(r):r};break}case"line-height":{let r=Number.parseFloat(a);a.endsWith("%")&&(r/=100),e.lineSpacing=r;break}}}return Object.getOwnPropertyNames(e).length?e:null}const Es={name:"univer-doc-paste-plugin-univer",checkPasteType(i){return/UniverNormal/i.test(i)},stylesRules:[],afterProcessRules:[{filter(i){return i.tagName==="P"&&/UniverNormal/i.test(i.className)},handler(i,t){const e=i.body;e.paragraphs==null&&(e.paragraphs=[]);const n={startIndex:e.dataStream.length},o=Is(t);o&&(n.paragraphStyle=o),e.paragraphs.push(n),e.dataStream+="\r"}}]},vs={name:"univer-doc-paste-plugin-word",checkPasteType(i){return/word|mso/i.test(i)},stylesRules:[{filter:["b"],getStyle(i){const t=Oi(i);return{bl:s.BooleanNumber.TRUE,...t}}}],afterProcessRules:[{filter(i){return i.tagName==="P"},handler(i,t){const e=i.body;e.paragraphs==null&&(e.paragraphs=[]);const n={startIndex:e.dataStream.length},o=Is(t);o&&(n.paragraphStyle=o),e.paragraphs.push(n),e.dataStream+="\r"}}]};function nc(i){var n,o;const t=a=>{let r="";return Object.keys(a).forEach(c=>{a[c]!==void 0&&(r+=` ${c}=${a[c]}`)}),r},e={"data-doc-transform-height":i.docTransform.size.height,"data-doc-transform-width":i.docTransform.size.width,"data-width":(n=i.transform)==null?void 0:n.width,"data-height":(o=i.transform)==null?void 0:o.height,"data-image-source-type":i.imageSourceType,"data-source":i.imageSourceType===jn.ImageSourceType.UUID?i.source:void 0,src:i.source};return`<img ${t(e)}></img>`}function Cs(i,t){const{st:e,ed:n,ts:o={}}=t,{ff:a,fs:r,it:c,bl:l,ul:A,st:d,ol:u,bg:f,cl:h,va:m}=o;let g=i.slice(e,n);const p=[];return c===s.BooleanNumber.TRUE&&(g=`<i>${g}</i>`),m===s.BaselineOffset.SUPERSCRIPT?g=`<sup>${g}</sup>`:m===s.BaselineOffset.SUBSCRIPT&&(g=`<sub>${g}</sub>`),(A==null?void 0:A.s)===s.BooleanNumber.TRUE&&(g=`<u>${g}</u>`),(d==null?void 0:d.s)===s.BooleanNumber.TRUE&&(g=`<s>${g}</s>`),l===s.BooleanNumber.TRUE&&(g=`<strong>${g}</strong>`),a&&p.push(`font-family: ${a}`),h&&p.push(`color: ${h.rgb}`),r&&p.push(`font-size: ${r}pt`),u&&p.push("text-decoration: overline"),f&&p.push(`background: ${f.rgb}`),p.length?`<span style="${p.join("; ")};">${g}</span>`:g}function xi(i,t,e){const{dataStream:n,textRuns:o=[]}=i;if(t===e)return"";let a=t;const r=[];for(const c of o){const{st:l,ed:A}=c;s.Tools.hasIntersectionBetweenTwoRanges(t,e,l,A)&&(l>a?(r.push(n.slice(a,l)),r.push(Cs(n,{...c,ed:Math.min(A,e)}))):r.push(Cs(n,{...c,st:a,ed:Math.min(A,e)}))),a=Math.max(t,Math.min(A,e))}return a!==e&&r.push(n.slice(a,e)),r.join("")}function ic(i,t,e){const n=i.body,o=i.drawings||{},{customRanges:a=[],customBlocks:r=[]}=n||{},c=[...r],l=a.filter(h=>h.startIndex>=t&&h.endIndex<=e);let A=t,d="";const u=(h,m)=>{let g="",p=0,S=h,I=c.findIndex(E=>h<=E.startIndex&&m>=E.startIndex);if(I===-1)return g=xi(n,h,m),{sliceHtml:g,customBlockLength:p};for(;I!==-1;){const E=c[I];c.splice(I,1),g+=xi(n,S,E.startIndex);const T=o[E.blockId];if(T)switch(T.drawingType){case s.DrawingTypeEnum.DRAWING_IMAGE:{g+=nc(T),p++;break}}S=E.startIndex+1,I=c.findIndex(O=>S<=O.startIndex&&m>=O.startIndex)}return g=g+xi(n,S,m+1),{sliceHtml:g,customBlockLength:p}};l.forEach(h=>{var T,O;const{startIndex:m,endIndex:g,rangeType:p,rangeId:S}=h,I=u(A,m);d+=I.sliceHtml;const E=u(m,g+1);switch(p){case s.CustomRangeType.HYPERLINK:{d+=`<a data-rangeid="${S}" href="${(O=(T=h.properties)==null?void 0:T.url)!=null?O:""}">${E.sliceHtml}</a>`;break}default:{d+=E.sliceHtml;break}}A=g+1+(I.customBlockLength+E.customBlockLength)});const f=u(A,e);return d+=f.sliceHtml,d}function oc(i){const t=i.body||{},{paragraphs:e=[],sectionBreaks:n=[]}=t;let{dataStream:o=""}=t;o.endsWith(`\r
36
- `)||(o+=`\r
37
- `,e.push({startIndex:o.length-2}),n.push({startIndex:o.length-1}),t.dataStream=o,t.paragraphs=e,t.sectionBreaks=n);const a={html:""},r=M.parseDataStreamToTree(o).sectionList;for(const c of r)pt(c,i,a);return a.html}function pt(i,t,e){var n,o;switch(i.nodeType){case s.DataStreamTreeNodeType.SECTION_BREAK:{for(const a of i.children)pt(a,t,e);break}case s.DataStreamTreeNodeType.PARAGRAPH:{const{children:a,startIndex:r,endIndex:c}=i,l=(o=(n=t.body)==null?void 0:n.paragraphs.find(m=>m.startIndex===c))!=null?o:{},{paragraphStyle:A={}}=l,{spaceAbove:d,spaceBelow:u,lineSpacing:f}=A,h=[];if(d!=null&&(typeof d=="number"?h.push(`margin-top: ${d}px`):h.push(`margin-top: ${d.v}px`)),u!=null&&(typeof u=="number"?h.push(`margin-bottom: ${u}px`):h.push(`margin-bottom: ${u.v}px`)),f!=null&&h.push(`line-height: ${f}`),e.html+=`<p class="UniverNormal" ${h.length?`style="${h.join("; ")};"`:""}>`,a.length)for(const m of a)pt(m,t,e);e.html+=`${ic(t,r,c)}</p>`;break}case s.DataStreamTreeNodeType.TABLE:{const{children:a}=i;e.html+='<table class="UniverTable" style="width: 100%; border-collapse: collapse;"><tbody>';for(const r of a)pt(r,t,e);e.html+="</tbody></table>";break}case s.DataStreamTreeNodeType.TABLE_ROW:{const{children:a}=i;e.html+='<tr class="UniverTableRow">';for(const r of a)pt(r,t,e);e.html+="</tr>";break}case s.DataStreamTreeNodeType.TABLE_CELL:{const{children:a}=i;e.html+='<td class="UniverTableCell">';for(const r of a)pt(r,t,e);e.html+="</td>";break}default:throw new Error(`Unknown node type: ${i.nodeType}`)}}class sc{convert(t){if(t.length===0)throw new Error("The bodyList length at least to be 1");let e="";for(const n of s.Tools.deepClone(t))e+=oc(n);return e}}var ac=Object.defineProperty,rc=Object.getOwnPropertyDescriptor,cc=(i,t,e,n)=>{for(var o=n>1?void 0:n?rc(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&ac(t,e,o),o},Ft=(i,t)=>(e,n)=>t(e,n,i);mt.use(vs),mt.use(Ss),mt.use(Es);function Ts(i,t,e){var a,r,c;const n=s.getBodySlice(i,t,e+2),o=s.DataStreamTreeTokenType.TABLE_START+s.DataStreamTreeTokenType.TABLE_ROW_START+s.DataStreamTreeTokenType.TABLE_CELL_START+n.dataStream+s.DataStreamTreeTokenType.TABLE_CELL_END+s.DataStreamTreeTokenType.TABLE_ROW_END+s.DataStreamTreeTokenType.TABLE_END;return n.dataStream=o,(a=n.textRuns)==null||a.forEach(l=>{const{st:A,ed:d}=l;l.st=A+3,l.ed=d+3}),(r=n.tables)==null||r.forEach(l=>{const{startIndex:A,endIndex:d}=l;l.startIndex=A+3,l.endIndex=d+3}),(c=n.paragraphs)==null||c.forEach(l=>{const{startIndex:A}=l;l.startIndex=A+3}),n}const St=s.createIdentifier("doc.clipboard-service");let Mi=class extends s.Disposable{constructor(t,e,n,o,a){super();R(this,"_clipboardHooks",[]);R(this,"_htmlToUDM",new mt);R(this,"_umdToHtml",new sc);this._univerInstanceService=t,this._logService=e,this._commandService=n,this._clipboardInterfaceService=o,this._docSelectionManagerService=a}async copy(t=s.SliceBodyType.copy){var a;const{newSnapshotList:e=[],needCache:n=!1,snapshot:o}=(a=this._getDocumentBodyInRanges(t))!=null?a:{};if(e.length===0||o==null)return!1;try{const r=this._docSelectionManagerService.getActiveTextRange(),c=!!(r!=null&&r.segmentId);this._setClipboardData(e,!c&&n)}catch(r){return this._logService.error("[DocClipboardService] copy failed",r),!1}return!0}async cut(){return this._cut()}async paste(t){const e=await this._genDocDataFromClipboardItems(t);return this._paste(e)}async legacyPaste(t){let{html:e,text:n,files:o}=t;const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),r=(a==null?void 0:a.getUnitId())||"";!e&&!n&&o.length&&(e=await this._createImagePasteHtml(o));const c=this._genDocDataFromHtmlAndText(e,n,r);if(r===s.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)if(n){const l=s.BuildTextUtils.transform.fromPlainText(n);return this._paste({body:l})}else c.body.textRuns=[];return this._paste(c)}async _cut(){var r,c,l;const{segmentId:t,endOffset:e,style:n}=(r=this._docSelectionManagerService.getActiveTextRange())!=null?r:{},o=(c=this._docSelectionManagerService.getTextRanges())!=null?c:[],a=(l=this._docSelectionManagerService.getRectRanges())!=null?l:[];if(t==null&&this._logService.error("[DocClipboardController] segmentId is not existed"),o.length===0&&a.length===0)return!1;this.copy(s.SliceBodyType.cut);try{let A=0;if(a.length>0)A=mn(o,a);else if(e!=null){A=e;for(const u of o){const{startOffset:f,endOffset:h}=u;f==null||h==null||h<=e&&(A-=h-f)}}const d=[{startOffset:A,endOffset:A,style:n}];return this._commandService.executeCommand(tt.id,{segmentId:t,textRanges:d})}catch{return this._logService.error("[DocClipboardController] cut content failed"),!1}}async _paste(t){var d,u;const{body:e}=t;if(e==null)return!1;let n=s.normalizeBody(e);if(!((d=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC))==null?void 0:d.getUnitId()))return!1;this._clipboardHooks.forEach(f=>{f.onBeforePaste&&(n=f.onBeforePaste(n))}),n.customRanges=(u=n.customRanges)==null?void 0:u.map(s.BuildTextUtils.customRange.copyCustomRange);const a=this._docSelectionManagerService.getActiveTextRange(),{segmentId:r,endOffset:c,style:l}=a||{},A=this._docSelectionManagerService.getTextRanges();if(r==null&&this._logService.error("[DocClipboardController] segmentId does not exist!"),c==null||A==null)return!1;try{let f=c;for(const m of A){const{startOffset:g,endOffset:p}=m;g==null||p==null||p<=c&&(f+=n.dataStream.length-(p-g))}const h=[{startOffset:f,endOffset:f,style:l}];return this._commandService.executeCommand(Ti.id,{doc:{...t,body:n},segmentId:r,textRanges:h})}catch{return this._logService.error("[DocClipboardController]","clipboard is empty."),!1}}async _setClipboardData(t,e=!0){var r,c,l,A;const n=qr(),o=(t.length>1?t.map(d=>{var u;return((u=d.body)==null?void 0:u.dataStream)||""}).join(`
38
- `):((r=t[0].body)==null?void 0:r.dataStream)||"").replaceAll(s.DataStreamTreeTokenType.TABLE_START,"").replaceAll(s.DataStreamTreeTokenType.TABLE_END,"").replaceAll(s.DataStreamTreeTokenType.TABLE_ROW_START,"").replaceAll(s.DataStreamTreeTokenType.TABLE_ROW_END,"").replaceAll(s.DataStreamTreeTokenType.TABLE_CELL_START,"").replaceAll(s.DataStreamTreeTokenType.TABLE_CELL_END,"").replaceAll(`\r
39
- `," ");let a=this._umdToHtml.convert(t);if(t.length===1&&e){a=a.replace(/(<[a-z]+)/,(f,h)=>`${h} data-copy-id="${n}"`);const d=t[0],u={body:d.body};if((l=(c=d.body)==null?void 0:c.customBlocks)!=null&&l.length){u.drawings={};for(const f of d.body.customBlocks){const{blockId:h}=f,m=(A=d.drawings)==null?void 0:A[h];if(m){const g=s.Tools.generateRandomId(6);f.blockId=g,u.drawings[g]={...s.Tools.deepClone(m),drawingId:g}}}}Ri.set(n,u)}return this._clipboardInterfaceService.write(o,a)}addClipboardHook(t){return this._clipboardHooks.push(t),s.toDisposable(()=>{const e=this._clipboardHooks.indexOf(t);e>-1&&this._clipboardHooks.splice(e,1)})}_getDocumentBodyInRanges(t){var A;const e=this._univerInstanceService.getCurrentUniverDocInstance(),n=this._docSelectionManagerService.getDocRanges(),o=[];let a=!0;if(e==null||n.length===0)return;const r=n[0].segmentId,c=(A=e==null?void 0:e.getSelfOrHeaderFooterModel(r))==null?void 0:A.getBody(),l=e.getSnapshot();if(c!=null){for(const d of n){const{startOffset:u,endOffset:f,collapsed:h,rangeType:m}=d;if(h||u==null||f==null)continue;if(m===s.DOC_RANGE_TYPE.RECT){a=!1;const{spanEntireRow:S}=d;let I;I=Ts(c,u,f),o.push(I);continue}const g={startOffset:u,endOffset:f,collapsed:h},p=e.getSelfOrHeaderFooterModel(r).sliceBody(g.startOffset,g.endOffset,t);p!=null&&o.push(p)}return{newSnapshotList:o.map(d=>({...l,body:d})),needCache:a,snapshot:l}}}async _genDocDataFromClipboardItems(t){try{let e="",n="";const o=[];for(const a of t)for(const r of a.types)switch(r){case y.PLAIN_TEXT_CLIPBOARD_MIME_TYPE:{n=await a.getType(r).then(c=>c&&c.text());break}case y.HTML_CLIPBOARD_MIME_TYPE:{e=await a.getType(r).then(c=>c&&c.text());break}case y.FILE__BMP_CLIPBOARD_MIME_TYPE:case y.FILE__JPEG_CLIPBOARD_MIME_TYPE:case y.FILE__WEBP_CLIPBOARD_MIME_TYPE:case y.FILE_PNG_CLIPBOARD_MIME_TYPE:{const c=await a.getType(r),l=new File([c],`pasted_image.${r.split("/")[1]}`,{type:r});o.push(l);break}}return!e&&!n&&o.length&&(e=await this._createImagePasteHtml(o)),this._genDocDataFromHtmlAndText(e,n)}catch(e){return Promise.reject(e)}}_genDocDataFromHtmlAndText(t,e,n){if(!t){if(e)return{body:s.BuildTextUtils.transform.fromPlainText(e)};throw new Error("[DocClipboardService] html and text cannot be both empty!")}const o=$r(t);if(o){const r=Ri.get(o);if(r)return r}if(!n){const r=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);n=(r==null?void 0:r.getUnitId())||""}const a=this._htmlToUDM.convert(t,{unitId:n});return o&&Ri.set(o,a),a}async _createImagePasteHtml(t){var c,l;const e={id:"",documentStyle:{},body:{dataStream:"",customBlocks:[]},drawings:{}},n=async A=>{const d=new FileReader;return new Promise(u=>{d.onloadend=function(){u({source:d.result,imageSourceType:jn.ImageSourceType.BASE64})},d.readAsDataURL(A)})},o=A=>{const d=new Image,u=500;return new Promise(f=>{d.src=typeof A=="string"?A:URL.createObjectURL(A),d.onload=()=>{const h=Math.min(u,d.naturalWidth),m=d.naturalHeight/d.naturalWidth;f({width:h,height:h*m})}})},a=(l=(c=this._clipboardHooks.find(A=>A.onBeforePasteImage))==null?void 0:c.onBeforePasteImage)!=null?l:n;return await Promise.all(t.map(async(A,d)=>{var S;const u=await a(A);if(!u)return Promise.resolve();const{width:f=100,height:h=100}=await o(A),m=`paste_image_id_${d}`,g=e.body,p=e.drawings;g.dataStream+="\b",(S=g.customBlocks)==null||S.push({startIndex:d,blockId:m}),p[m]={drawingId:m,unitId:"",subUnitId:"",imageSourceType:u.imageSourceType,title:"",source:u.source,description:"",layoutType:s.PositionedObjectLayoutType.INLINE,drawingType:s.DrawingTypeEnum.DRAWING_IMAGE,transform:{width:f,height:h,angle:0},docTransform:{angle:0,size:{width:f,height:h},positionH:{relativeFrom:s.ObjectRelativeFromH.CHARACTER,posOffset:0},positionV:{relativeFrom:s.ObjectRelativeFromV.LINE,posOffset:0}}}})),this._umdToHtml.convert([e])}};Mi=cc([Ft(0,s.IUniverInstanceService),Ft(1,s.ILogService),Ft(2,s.ICommandService),Ft(3,y.IClipboardInterfaceService),Ft(4,s.Inject(D.DocSelectionManagerService))],Mi);function pn(i){return i.getContextValue(s.FOCUSING_DOC)||i.getContextValue(s.EDITOR_ACTIVATED)}const Bi=999,Ht={id:y.CopyCommand.id,name:"doc.command.copy",type:s.CommandType.COMMAND,multi:!0,priority:Bi,preconditions:pn,handler:async i=>i.get(St).copy()},Sn={id:y.CutCommand.id,name:"doc.command.cut",type:s.CommandType.COMMAND,multi:!0,priority:Bi,preconditions:pn,handler:async i=>i.get(St).cut()},In={id:y.PasteCommand.id,name:"doc.command.paste",type:s.CommandType.COMMAND,multi:!0,priority:Bi,preconditions:pn,handler:async i=>{const t=i.get(St),n=await i.get(y.IClipboardInterfaceService).read();return n.length===0?!1:t.paste(n)}},En={id:"doc.command.switch-mode",type:s.CommandType.COMMAND,handler:async i=>{var I,E,T,O,v;const t=i.get(s.ICommandService),e=i.get(M.IRenderManagerService),n=i.get(D.DocSelectionManagerService),a=i.get(s.IUniverInstanceService).getCurrentUniverDocInstance();if(a==null)return!1;const r=a.getUnitId(),c=(I=e.getRenderById(r))==null?void 0:I.with(D.DocSkeletonManagerService).getSkeleton(),l=(E=e.getRenderById(r))==null?void 0:E.with(C.DocSelectionRenderService);if(c==null||l==null)return!1;const A=l==null?void 0:l.getSegment(),d=l==null?void 0:l.getSegmentPage(),u=a.getSnapshot().documentStyle.documentFlavor,f=n.getDocRanges(),h={id:D.RichTextEditingMutation.id,params:{unitId:r,actions:[],textRanges:u===s.DocumentFlavor.TRADITIONAL&&A?[]:f}},m=s.JSONX.getInstance(),g=[];let p;if(u===void 0?p=m.insertOp(["documentStyle","documentFlavor"],s.DocumentFlavor.MODERN):u===s.DocumentFlavor.MODERN?p=m.replaceOp(["documentStyle","documentFlavor"],u,s.DocumentFlavor.TRADITIONAL):p=m.replaceOp(["documentStyle","documentFlavor"],u,s.DocumentFlavor.MODERN),p)g.push(p);else return!1;if(u!==s.DocumentFlavor.MODERN){const b=a.getSnapshot(),{drawings:_={},body:B}=b,w=(T=B==null?void 0:B.customBlocks)!=null?T:[];for(const x in _){const U=_[x],L=w.find(Y=>Y.blockId===x);if(L==null)continue;const F=U.docTransform.positionV,{relativeFrom:H,posOffset:k}=F;if(H===s.ObjectRelativeFromV.PARAGRAPH)continue;const{startIndex:X}=L,G=c.findNodeByCharIndex(X,A,d),W=(O=G==null?void 0:G.parent)==null?void 0:O.parent,V=W==null?void 0:W.parent,K=V==null?void 0:V.lines.find(Y=>Y.paragraphIndex===(W==null?void 0:W.paragraphIndex)&&Y.paragraphStart),ee=(v=V==null?void 0:V.parent)==null?void 0:v.parent;if(G==null||W==null||K==null||V==null||ee==null)continue;let Z=0;H===s.ObjectRelativeFromV.LINE?Z-=W.top:H===s.ObjectRelativeFromV.PAGE&&(Z+=ee.marginTop),Z+=K.top;const j={...F,relativeFrom:s.ObjectRelativeFromV.PARAGRAPH,posOffset:(k!=null?k:0)-Z},z=m.replaceOp(["drawings",x,"docTransform","positionV"],F,j);z&&g.push(z)}}return h.params.actions=g.reduce((b,_)=>s.JSONX.compose(b,_),null),!!t.syncExecuteCommand(h.id,h.params)}},vn={id:"doc.table.delete-rows",type:s.CommandType.COMMAND,handler:async i=>{const t=i.get(D.DocSelectionManagerService),e=i.get(s.IUniverInstanceService),n=i.get(s.ICommandService),o=t.getRectRanges(),a=t.getActiveTextRange(),r=Lt(a,o);if(r==null)return!1;const{segmentId:c}=r,l=e.getCurrentUniverDocInstance(),A=l==null?void 0:l.getSelfOrHeaderFooterModel(c).getBody();if(l==null||A==null)return!1;const d=fe(i,l.getUnitId());if(d==null)return!1;const u=d.getViewModel(),f=l==null?void 0:l.getUnitId(),h=new s.TextX,m=s.JSONX.getInstance(),g=ls(r,u);if(g==null)return!1;const{offset:p,rowIndexes:S,len:I,tableId:E,cursor:T,selectWholeTable:O}=g;if(O)return n.executeCommand(It.id);const v=[],b=[{startOffset:T,endOffset:T,collapsed:!0}],_={id:D.RichTextEditingMutation.id,params:{unitId:f,actions:[],textRanges:b}};p>0&&h.push({t:s.TextXActionType.RETAIN,len:p}),h.push({t:s.TextXActionType.DELETE,len:I});const B=te(l,c);v.push(m.editOp(h.serialize(),B));for(const x of S.reverse()){const U=m.removeOp(["tableSource",E,"tableRows",x]);v.push(U)}return _.params.actions=v.reduce((x,U)=>s.JSONX.compose(x,U),null),!!n.syncExecuteCommand(_.id,_.params)}},Cn={id:"doc.table.delete-columns",type:s.CommandType.COMMAND,handler:async i=>{const t=i.get(D.DocSelectionManagerService),e=i.get(s.IUniverInstanceService),n=i.get(s.ICommandService),o=t.getRectRanges(),a=t.getActiveTextRange(),r=Lt(a,o);if(r==null)return!1;const{segmentId:c}=r,l=e.getCurrentUniverDocInstance(),A=l==null?void 0:l.getSelfOrHeaderFooterModel(c).getBody();if(l==null||A==null)return!1;const d=fe(i,l.getUnitId());if(d==null)return!1;const u=d.getViewModel(),f=l==null?void 0:l.getUnitId(),h=new s.TextX,m=s.JSONX.getInstance(),g=jr(r,u);if(g==null)return!1;const{offsets:p,columnIndexes:S,tableId:I,cursor:E,rowCount:T,selectWholeTable:O}=g;if(O)return n.executeCommand(It.id);const v=[],b=[{startOffset:E,endOffset:E,collapsed:!0}],_={id:D.RichTextEditingMutation.id,params:{unitId:f,actions:[],textRanges:b}};for(const x of p){const{retain:U,delete:L}=x;U>0&&h.push({t:s.TextXActionType.RETAIN,len:U}),h.push({t:s.TextXActionType.DELETE,len:L})}const B=te(l,c);v.push(m.editOp(h.serialize(),B)),S.reverse();for(let x=0;x<T;x++)for(const U of S){const L=m.removeOp(["tableSource",I,"tableRows",x,"tableCells",U]);v.push(L)}for(const x of S){const U=m.removeOp(["tableSource",I,"tableColumns",x]);v.push(U)}return _.params.actions=v.reduce((x,U)=>s.JSONX.compose(x,U),null),!!n.syncExecuteCommand(_.id,_.params)}},It={id:"doc.table.delete-table",type:s.CommandType.COMMAND,handler:async i=>{const t=i.get(D.DocSelectionManagerService),e=i.get(s.IUniverInstanceService),n=i.get(s.ICommandService),o=t.getRectRanges(),a=t.getActiveTextRange(),r=Lt(a,o);if(r==null)return!1;const{segmentId:c}=r,l=e.getCurrentUniverDocInstance(),A=l==null?void 0:l.getSelfOrHeaderFooterModel(c).getBody();if(l==null||A==null)return!1;const d=fe(i,l.getUnitId());if(d==null)return!1;const u=d.getViewModel(),f=l==null?void 0:l.getUnitId(),h=new s.TextX,m=s.JSONX.getInstance(),g=As(r,u);if(g==null)return!1;const{offset:p,len:S,tableId:I,cursor:E}=g,T=[],O=[{startOffset:E,endOffset:E,collapsed:!0}],v={id:D.RichTextEditingMutation.id,params:{unitId:f,actions:[],textRanges:O}};p>0&&h.push({t:s.TextXActionType.RETAIN,len:p}),h.push({t:s.TextXActionType.DELETE,len:S});const b=te(l,c);T.push(m.editOp(h.serialize(),b));const _=m.removeOp(["tableSource",I]);return T.push(_),v.params.actions=T.reduce((w,x)=>s.JSONX.compose(w,x),null),!!n.syncExecuteCommand(v.id,v.params)}},Di="doc.command.table-insert-row",_i="doc.command.table-insert-column",lc="doc.command.table-insert-row-above",Ac="doc.command.table-insert-row-bellow",dc="doc.command.table-insert-column-left",uc="doc.command.table-insert-column-right",Tn={id:lc,type:s.CommandType.COMMAND,handler:async i=>i.get(s.ICommandService).executeCommand(Di,{position:ln.ABOVE})},bn={id:Ac,type:s.CommandType.COMMAND,handler:async i=>i.get(s.ICommandService).executeCommand(Di,{position:ln.BELLOW})},yn={id:dc,type:s.CommandType.COMMAND,handler:async i=>i.get(s.ICommandService).executeCommand(_i,{position:Ei.LEFT})},Rn={id:uc,type:s.CommandType.COMMAND,handler:async i=>i.get(s.ICommandService).executeCommand(_i,{position:Ei.RIGHT})},Ni={id:Di,type:s.CommandType.COMMAND,handler:async(i,t)=>{const{position:e}=t,n=i.get(D.DocSelectionManagerService),o=i.get(s.IUniverInstanceService),a=i.get(s.ICommandService),r=n.getRectRanges(),c=n.getActiveTextRange(),l=Lt(c,r);if(l==null)return!1;const{segmentId:A}=l,d=o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),u=d==null?void 0:d.getSelfOrHeaderFooterModel(A).getBody();if(d==null||u==null)return!1;const f=fe(i,d.getUnitId());if(f==null)return!1;const h=f.getViewModel(),m=d==null?void 0:d.getUnitId(),g=new s.TextX,p=s.JSONX.getInstance(),S=Hr(l,e,h);if(S==null)return!1;const{offset:I,colCount:E,tableId:T,insertRowIndex:O}=S,v=[],b=I+2,_=[{startOffset:b,endOffset:b,collapsed:!0}],B={id:D.RichTextEditingMutation.id,params:{unitId:m,actions:[],textRanges:_}};I>0&&g.push({t:s.TextXActionType.RETAIN,len:I});const w=Qr(E);g.push({t:s.TextXActionType.INSERT,body:w,len:w.dataStream.length});const x=te(d,A);v.push(p.editOp(g.serialize(),x));const U=dn(E),L=p.insertOp(["tableSource",T,"tableRows",O],U);return v.push(L),B.params.actions=v.reduce((H,k)=>s.JSONX.compose(H,k),null),!!a.syncExecuteCommand(B.id,B.params)}},bs={id:_i,type:s.CommandType.COMMAND,handler:async(i,t)=>{var ee,Z,j;const{position:e}=t,n=i.get(D.DocSelectionManagerService),o=i.get(s.IUniverInstanceService),a=i.get(s.ICommandService),r=n.getRectRanges(),c=n.getActiveTextRange(),l=Lt(c,r);if(l==null)return!1;const{segmentId:A}=l,d=o.getCurrentUniverDocInstance(),u=d==null?void 0:d.getSelfOrHeaderFooterModel(A).getBody();if(d==null||u==null)return!1;const f=fe(i,d.getUnitId());if(f==null)return!1;const h=f.getViewModel(),m=d==null?void 0:d.getUnitId(),g=new s.TextX,p=s.JSONX.getInstance(),S=kr(l,e,h);if(S==null)return!1;const{offsets:I,columnIndex:E,tableId:T,rowCount:O}=S,v=[],b=I[0]+1,_=[{startOffset:b,endOffset:b,collapsed:!0}],B={id:D.RichTextEditingMutation.id,params:{unitId:m,actions:[],textRanges:_}};for(const z of I){g.push({t:s.TextXActionType.RETAIN,len:z});const Y=Fr();g.push({t:s.TextXActionType.INSERT,body:Y,len:Y.dataStream.length})}const w=te(d,A);v.push(p.editOp(g.serialize(),w));for(let z=0;z<O;z++){const Y=An(),ie=p.insertOp(["tableSource",T,"tableRows",z,"tableCells",E],Y);v.push(ie)}const x=d.getSnapshot(),U=x.documentStyle,{marginLeft:L=0,marginRight:F=0}=U,H=((Z=(ee=U.pageSize)==null?void 0:ee.width)!=null?Z:800)-L-F,k=(j=x==null?void 0:x.tableSource)==null?void 0:j[T].tableColumns,{newColWidth:X,widths:G}=Vr(H,k,E);for(let z=0;z<G.length;z++){const Y=p.replaceOp(["tableSource",T,"tableColumns",z,"size","width","v"],k[z].size.width.v,G[z]);v.push(Y)}const W=un(X),V=p.insertOp(["tableSource",T,"tableColumns",E],W);return v.push(V),B.params.actions=v.reduce((z,Y)=>s.JSONX.compose(z,Y),null),!!a.syncExecuteCommand(B.id,B.params)}},ys="COMPONENT_DOC_CREATE_TABLE_CONFIRM";function Pi(i,t){const e=[];for(let n=0,o=i.length;n<o;n++)i[n]===s.DataStreamTreeTokenType.PARAGRAPH&&e.push({startIndex:n});if(t)for(const n of e)t.bullet&&(n.bullet=s.Tools.deepClone(t.bullet)),t.paragraphStyle&&(n.paragraphStyle=s.Tools.deepClone(t.paragraphStyle));return e}const Ui={id:"doc.command.break-line",type:s.CommandType.COMMAND,handler:async i=>{var v,b,_;const t=i.get(D.DocSelectionManagerService),e=i.get(s.IUniverInstanceService),n=i.get(s.ICommandService),o=i.get(_e),a=t.getActiveTextRange(),r=t.getRectRanges();if(a==null)return!1;if(r&&r.length){const{startOffset:B}=a;return t.replaceDocRanges([{startOffset:B,endOffset:B}]),!0}const{segmentId:c}=a,l=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),A=l==null?void 0:l.getSelfOrHeaderFooterModel(c!=null?c:"").getBody();if(l==null||A==null)return!1;const d=l.getUnitId(),{startOffset:u,endOffset:f}=a,m=((v=A.paragraphs)!=null?v:[]).find(B=>B.startIndex>=u);if(!m)return!1;const g=m.startIndex,p=o.getDefaultStyle(),S=o.getStyleCache(),I=Xt((b=A.textRuns)!=null?b:[],f,p,S),E={dataStream:s.DataStreamTreeTokenType.PARAGRAPH,paragraphs:Pi(s.DataStreamTreeTokenType.PARAGRAPH,m),textRuns:[{st:0,ed:1,ts:{...I.ts}}]},T={startOffset:u,endOffset:f,collapsed:u===f},O=await n.executeCommand(hn.id,{unitId:d,body:E,range:T,segmentId:c});if(((_=m.bullet)==null?void 0:_.listType)===s.PresetListType.CHECK_LIST_CHECKED){const B={index:g+1-(f-u),segmentId:c,textRanges:[{startOffset:u+1,endOffset:u+1}]};return!!await n.executeCommand(rn.id,B)&&O}return O}},wi={id:"doc.command.create-table",type:s.CommandType.COMMAND,handler:async(i,t)=>{var j,z,Y,ie,ce,ge;const{rowCount:e,colCount:n}=t,o=i.get(D.DocSelectionManagerService),a=i.get(s.IUniverInstanceService),r=i.get(s.ICommandService),c=i.get(_e),l=o.getActiveTextRange();if(l==null)return!1;const{segmentId:A,segmentPage:d}=l,u=a.getCurrentUniverDocInstance(),f=u==null?void 0:u.getSelfOrHeaderFooterModel(A).getBody();if(u==null||f==null)return!1;const h=u.getUnitId(),m=fe(i,h),g=m==null?void 0:m.getSkeleton();if(g==null)return!1;const{startOffset:p}=l,I=((j=f.paragraphs)!=null?j:[]).find(le=>le.startIndex>=p),E=g.findNodeByCharIndex(p,A,d);if(E==null)return!1;const T=new s.TextX,O=s.JSONX.getInstance(),v=[],b=p+4,_=[{startOffset:b,endOffset:b,collapsed:!0}],B={id:D.RichTextEditingMutation.id,params:{unitId:h,actions:[],textRanges:_}};p>0&&T.push({t:s.TextXActionType.RETAIN,len:p}),T.push({t:s.TextXActionType.INSERT,body:{dataStream:s.DataStreamTreeTokenType.PARAGRAPH,paragraphs:Pi(s.DataStreamTreeTokenType.PARAGRAPH,I)},len:1});const w=c.getDefaultStyle(),x=c.getStyleCache(),U=Xt((z=f.textRuns)!=null?z:[],p,w,x),{dataStream:L,paragraphs:F,sectionBreaks:H}=Lr(e,n),k=(ge=(ce=(ie=(Y=E.parent)==null?void 0:Y.parent)==null?void 0:ie.parent)==null?void 0:ce.parent)==null?void 0:ge.parent;if(k==null)return!1;const{pageWidth:X,marginLeft:G,marginRight:W}=k,V=vi(e,n,X-G-W);T.push({t:s.TextXActionType.INSERT,body:{dataStream:L,paragraphs:F,sectionBreaks:H,textRuns:[{...U,st:0,ed:L.length}],tables:[{startIndex:0,endIndex:L.length,tableId:V.tableId}]},len:L.length});const K=te(u,A);v.push(O.editOp(T.serialize(),K));const ee=O.insertOp(["tableSource",V.tableId],V);return v.push(ee),B.params.actions=v.reduce((le,Ce)=>s.JSONX.compose(le,Ce),null),!!r.syncExecuteCommand(B.id,B.params)}},Li="doc.component.create-table-confirm",On={id:"doc.operation.create-table",type:s.CommandType.COMMAND,handler:async i=>{const t=i.get(s.LocaleService),e=i.get(y.IConfirmService),n=i.get(s.ICommandService),o={rowCount:3,colCount:5},a=(r,c)=>{o.rowCount=r,o.colCount=c};return await e.open({id:Li,children:{label:{name:ys,props:{handleRowColChange:a,tableCreateParams:o}}},width:400,title:{title:t.t("toolbar.table.insert")},onConfirm:()=>{n.executeCommand(wi.id,o),e.close(Li)},onClose:()=>{e.close(Li)}}),!0}},Oe={id:"doc-paragraph-setting.command",type:s.CommandType.COMMAND,handler:async(i,t)=>{var S,I;const e=i.get(D.DocSelectionManagerService),n=i.get(s.IUniverInstanceService),o=i.get(s.ICommandService),a=n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),r=e.getDocRanges();if(!a||r.length===0||!t)return!1;const c=r[0].segmentId,l=a.getUnitId(),A=(I=(S=a.getSelfOrHeaderFooterModel(c).getBody())==null?void 0:S.paragraphs)!=null?I:[],d=gt(r,A),u={id:D.RichTextEditingMutation.id,params:{unitId:l,actions:[],textRanges:r}},f=new s.MemoryCursor;f.reset();const h=new s.TextX,m=s.JSONX.getInstance();for(const E of d){const{startIndex:T}=E;h.push({t:s.TextXActionType.RETAIN,len:T-f.cursor});const O={...E.paragraphStyle,...t.paragraph};h.push({t:s.TextXActionType.RETAIN,len:1,body:{dataStream:"",paragraphs:[{...E,paragraphStyle:O,startIndex:0}]},coverType:s.UpdateDocsAttributeType.REPLACE}),f.moveCursorTo(T+1)}const g=te(a,c);return u.params.actions=m.editOp(h.serialize(),g),!!o.syncExecuteCommand(u.id,u.params)}},hc=()=>{const i=s.useDependency(D.DocSelectionManagerService),t=s.useDependency(Et),e=Q.useMemo(()=>i.getDocRanges(),[]);return Q.useEffect(()=>{e.length||t.closePanel()},[e]),e},gc=()=>{var r,c;const t=s.useDependency(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),e=hc();if(!t||e.length===0)return[];const n=e[0].segmentId,o=(c=(r=t.getSelfOrHeaderFooterModel(n).getBody())==null?void 0:r.paragraphs)!=null?c:[];return gt(e,o)},fc=(i,t)=>{const e=s.useDependency(s.ICommandService),[n,o]=Q.useState(()=>{var c,l;const r=i[0];return r?String((l=(c=r.paragraphStyle)==null?void 0:c.horizontalAlign)!=null?l:t):t});return[n,r=>(o(r),e.executeCommand(Oe.id,{paragraph:{horizontalAlign:Number(r)}}))]},mc=i=>{const t=s.useDependency(s.ICommandService),[e,n]=Q.useState(()=>{var r;const a=i[0];return a?M.getNumberUnitValue((r=a.paragraphStyle)==null?void 0:r.indentStart,0):0});return[e,a=>(n(a),t.executeCommand(Oe.id,{paragraph:{indentStart:{v:a}}}))]},pc=i=>{const t=s.useDependency(s.ICommandService),[e,n]=Q.useState(()=>{var r;const a=i[0];return a?M.getNumberUnitValue((r=a.paragraphStyle)==null?void 0:r.indentEnd,0):0});return[e,a=>(n(a),t.executeCommand(Oe.id,{paragraph:{indentEnd:{v:a}}}))]},Sc=i=>{const t=s.useDependency(s.ICommandService),[e,n]=Q.useState(()=>{var r;const a=i[0];return a?M.getNumberUnitValue((r=a.paragraphStyle)==null?void 0:r.indentFirstLine,0):0});return[e,a=>(n(a),t.executeCommand(Oe.id,{paragraph:{indentFirstLine:{v:a}}}))]},Ic=i=>{const t=s.useDependency(s.ICommandService),[e,n]=Q.useState(()=>{var r;const a=i[0];return a?M.getNumberUnitValue((r=a.paragraphStyle)==null?void 0:r.hanging,0):0});return[e,a=>(n(a),t.executeCommand(Oe.id,{paragraph:{hanging:{v:a}}}))]},Ec=i=>{const t=s.useDependency(s.ICommandService),[e,n]=Q.useState(()=>{var r;const a=i[0];return a?M.getNumberUnitValue((r=a.paragraphStyle)==null?void 0:r.spaceAbove,0):0});return[e,a=>(n(a),t.executeCommand(Oe.id,{paragraph:{spaceAbove:{v:a}}}))]},vc=i=>{const t=s.useDependency(s.ICommandService),[e,n]=Q.useState(()=>{var r;const a=i[0];return a?M.getNumberUnitValue((r=a.paragraphStyle)==null?void 0:r.spaceBelow,0):0});return[e,a=>(n(a),t.executeCommand(Oe.id,{paragraph:{spaceBelow:{v:a}}}))]},Cc=i=>{const t=s.useDependency(s.ICommandService),e=s.useDependency(M.IRenderManagerService),n=s.useDependency(s.IUniverInstanceService),o=Q.useMemo(()=>{var m;const h=n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(h)return(m=e.getRenderById(h==null?void 0:h.getUnitId()))==null?void 0:m.with(D.DocSkeletonManagerService).getSkeleton()},[]),a=Q.useMemo(()=>new N.BehaviorSubject({}),[]),[r,c]=Q.useState(()=>{var m,g;const h=i[0];return h&&(g=(m=h.paragraphStyle)==null?void 0:m.lineSpacing)!=null?g:1}),l=Q.useRef(r),[A,d]=Q.useState(()=>{var m,g;const h=i[0];return h&&(g=(m=h.paragraphStyle)==null?void 0:m.spacingRule)!=null?g:s.SpacingRule.AUTO}),u=async h=>{c(h),a.next({lineSpacing:h,spacingRule:A})},f=async h=>{if(h!==A){let m=l.current;if(h===s.SpacingRule.AT_LEAST){const g=o==null?void 0:o.findNodeByCharIndex(i[0].startIndex),p=g==null?void 0:g.parent,S=p==null?void 0:p.parent;(S==null?void 0:S.contentHeight)!==void 0&&(m=Math.max(S.contentHeight,m))}else m>5&&(m=2);l.current=r,u(m),d(h),a.next({spacingRule:h})}};return Q.useEffect(()=>{const h=a.pipe(yt.filter(m=>!!Object.keys(m).length),yt.bufferTime(16),yt.filter(m=>!!m.length),yt.map(m=>m.reduce((g,p)=>(Object.keys(p).forEach(S=>{g[S]=p[S]}),g),{}))).subscribe(m=>t.executeCommand(Oe.id,{paragraph:{...m}}));return()=>h.unsubscribe()},[]),{lineSpacing:[r,u],spacingRule:[A,f]}},q={paragraphSettingIconList:"univer-paragraph-setting-icon-list",paragraphSettingIconListItem:"univer-paragraph-setting-icon-list-item",paragraphSettingIconListActive:"univer-paragraph-setting-icon-list-active",paragraphSettingTitle:"univer-paragraph-setting-title",paragraphSettingLabel:"univer-paragraph-setting-label",paragraphSettingMtBase:"univer-paragraph-setting-mt-base",paragraphSettingFlexCol:"univer-paragraph-setting-flex-col",paragraphSettingSpaceLine:"univer-paragraph-setting-space-line"},nt=i=>{const{value:t,onChange:e,className:n="",min:o=0,max:a=100,step:r=1}=i,c=Zs.useRef(null);return P.jsx(se.InputNumber,{step:r,ref:c,min:o,max:a,value:t,onChange:l=>{e(l!=null?l:0).finally(()=>{setTimeout(()=>{var A;(A=c.current)==null||A.focus()},30)})},className:n})};function Tc(){const i=s.useDependency(s.LocaleService),t=Q.useMemo(()=>[{label:i.t("toolbar.alignLeft"),value:String(s.HorizontalAlign.LEFT),icon:P.jsx(Mo,{})},{label:i.t("toolbar.alignCenter"),value:String(s.HorizontalAlign.CENTER),icon:P.jsx(Oo,{})},{label:i.t("toolbar.alignRight"),value:String(s.HorizontalAlign.RIGHT),icon:P.jsx(Bo,{})},{label:i.t("toolbar.alignJustify"),value:String(s.HorizontalAlign.JUSTIFIED),icon:P.jsx(bo,{})}],[]),e=gc(),[n,o]=fc(e,t[0].value),[a,r]=mc(e),[c,l]=pc(e),[A,d]=Sc(e),[u,f]=Ic(e),[h,m]=Ec(e),[g,p]=vc(e),{lineSpacing:[S,I],spacingRule:[E,T]}=Cc(e),O=Q.useMemo(()=>E===s.SpacingRule.AUTO?{min:1,max:5,step:S<2?.5:1}:{min:1,max:100},[E,S]);return P.jsxs("div",{className:q.paragraphSetting,children:[P.jsx("div",{className:q.paragraphSettingTitle,children:i.t("doc.paragraphSetting.alignment")}),P.jsx("div",{className:`
40
- ${q.paragraphSettingIconList}
41
- ${q.paragraphSettingMtBase}
42
- `,children:t.map(v=>P.jsx(se.Tooltip,{title:v.label,placement:"bottom",children:P.jsx("span",{className:en(q.paragraphSettingIconListItem,{[q.paragraphSettingIconListActive]:n===v.value}),onClick:()=>o(v.value),children:v.icon})},v.value))}),P.jsx("div",{className:q.paragraphSettingTitle,children:i.t("doc.paragraphSetting.indentation")}),P.jsxs("div",{children:[P.jsxs("div",{className:q.paragraphSettingFlexCol,children:[P.jsxs("div",{className:q.paragraphSettingLabel,children:[i.t("doc.paragraphSetting.left"),"(px)"]}),P.jsx(nt,{className:q.paragraphSettingMtBase,value:a,onChange:v=>r(v!=null?v:0)})]}),P.jsxs("div",{className:q.paragraphSettingFlexCol,children:[P.jsxs("div",{className:q.paragraphSettingLabel,children:[i.t("doc.paragraphSetting.right"),"(px)"]}),P.jsx(nt,{className:q.paragraphSettingMtBase,value:c,onChange:v=>l(v!=null?v:0)})]}),P.jsxs("div",{className:q.paragraphSettingFlexCol,children:[P.jsxs("div",{className:q.paragraphSettingLabel,children:[i.t("doc.paragraphSetting.firstLine"),"(px)"]}),P.jsx(nt,{className:q.paragraphSettingMtBase,value:A,onChange:v=>d(v!=null?v:0)})]}),P.jsxs("div",{className:q.paragraphSettingFlexCol,children:[P.jsxs("div",{className:q.paragraphSettingLabel,children:[i.t("doc.paragraphSetting.hanging"),"(px)"]}),P.jsx(nt,{className:q.paragraphSettingMtBase,value:u,onChange:v=>f(v!=null?v:0)})]})]}),P.jsx("div",{className:q.paragraphSettingTitle,children:i.t("doc.paragraphSetting.spacing")}),P.jsxs("div",{children:[P.jsxs("div",{className:q.paragraphSettingFlexCol,children:[P.jsxs("div",{className:q.paragraphSettingLabel,children:[i.t("doc.paragraphSetting.before"),"(px)"]}),P.jsx(nt,{className:q.paragraphSettingMtBase,value:h,onChange:v=>m(v!=null?v:0)})]}),P.jsxs("div",{className:q.paragraphSettingFlexCol,children:[P.jsxs("div",{className:q.paragraphSettingLabel,children:[i.t("doc.paragraphSetting.after"),"(px)"]}),P.jsx(nt,{className:q.paragraphSettingMtBase,value:g,onChange:v=>p(v!=null?v:0)})]}),P.jsxs("div",{className:q.paragraphSettingFlexCol,children:[P.jsx("div",{className:q.paragraphSettingLabel,children:i.t("doc.paragraphSetting.lineSpace")}),P.jsxs("div",{className:`
43
- ${q.paragraphSettingMtBase}
44
- ${q.paragraphSettingSpaceLine}
45
- `,style:{width:162},children:[P.jsx(se.Select,{value:`${E}`,options:[{label:i.t("doc.paragraphSetting.multiSpace"),value:`${s.SpacingRule.AUTO}`},{label:i.t("doc.paragraphSetting.fixedValue"),value:`${s.SpacingRule.AT_LEAST}`}],onChange:v=>T(Number(v))}),P.jsx(nt,{...O,value:S,onChange:v=>I(v!=null?v:0)})]})]})]})]})}const bc=(i,t)=>t.length===i.length&&i.some(e=>t.some(n=>n.startOffset===e.startOffset&&n.endOffset===e.endOffset));function yc(){const i=s.useDependency(s.ICommandService),t=s.useDependency(s.LocaleService),e=s.useObservable(t.currentLocale$),[n,o]=Q.useState(""),a=Q.useMemo(()=>s.debounce(()=>o(s.generateRandomId(4)),300),[]),r=Q.useRef([]);return Q.useEffect(()=>{const c=i.onCommandExecuted(l=>{if(D.SetTextSelectionsOperation.id===l.id){const A=l.params.ranges;bc(A,r.current)||o(s.generateRandomId(4)),r.current=A}D.RichTextEditingMutation.id===l.id&&l.params.trigger!==Oe.id&&a()});return()=>c.dispose()},[a]),Q.useEffect(()=>{o(s.generateRandomId(4))},[e]),Q.useEffect(()=>()=>a.cancel(),[a]),P.jsx(Tc,{},n)}var Rc=Object.defineProperty,Oc=Object.getOwnPropertyDescriptor,xc=(i,t,e,n)=>{for(var o=n>1?void 0:n?Oc(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Rc(t,e,o),o},Qi=(i,t)=>(e,n)=>t(e,n,i);const Rs="doc_ui_paragraph-setting-panel";let Et=class extends s.Disposable{constructor(t,e,n){super();R(this,"_id");this._commandService=t,this._componentManager=e,this._sidebarService=n,this._init()}_init(){this.disposeWithMe(this._componentManager.register(Rs,yc))}openPanel(){const t={header:{title:"doc.slider.paragraphSetting"},id:this._id,children:{label:Rs},width:300};this._sidebarService.open(t)}closePanel(){this._sidebarService.close(this._id)}};Et=xc([Qi(0,s.ICommandService),Qi(1,s.Inject(y.ComponentManager)),Qi(2,s.Inject(y.ISidebarService))],Et);const Fi={id:"sidebar.operation.doc-paragraph-setting-panel",type:s.CommandType.OPERATION,handler:i=>(i.get(Et).openPanel(),!0)},Hi=i=>{const t=i.get(D.DocSelectionManagerService);return new N.Observable(e=>{const n=t.textSelection$.subscribe(()=>{const o=t.getActiveTextRange();o&&!o.collapsed?e.next(!1):e.next(!0)});return()=>n.unsubscribe()})};function Mc(i){if(i.length<2)return!0;const t=i.map(e=>e.tableId);return t.every(e=>e===t[0])}function Os(i,t,e){var a;const n=t.getRectRanges(),o=t.getActiveTextRange();if(n&&n.length&&Mc(n)&&o==null){i.next(!1);return}if(o&&(n==null||n.length===0)){const{segmentId:r,startOffset:c,endOffset:l}=o,A=e.getCurrentUniverDocInstance(),d=(a=A==null?void 0:A.getSelfOrHeaderFooterModel(r).getBody())==null?void 0:a.tables;if(d&&d.length&&d.some(u=>{const{startIndex:f,endIndex:h}=u;return c>f&&c<h||l>f&&l<h})){i.next(!1);return}}i.next(!0)}const Pe=i=>{const t=i.get(D.DocSelectionManagerService),e=i.get(s.IUniverInstanceService);return new N.Observable(n=>{const o=t.textSelection$.subscribe(()=>{Os(n,t,e)});return Os(n,t,e),()=>o.unsubscribe()})},Bc=i=>({id:Ht.name,commandId:Ht.id,type:y.MenuItemType.BUTTON,icon:"Copy",title:"rightClick.copy",disabled$:Hi(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}),Dc=i=>({id:Fi.id,type:y.MenuItemType.BUTTON,icon:"MenuSingle24",title:"doc.menu.paragraphSetting",hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}),_c=i=>({id:Sn.id,type:y.MenuItemType.BUTTON,icon:"Copy",title:"rightClick.cut",disabled$:Hi(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}),Nc=i=>({id:In.id,type:y.MenuItemType.BUTTON,icon:"PasteSpecial",title:"rightClick.paste",hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}),Pc=i=>({id:Qt.id,type:y.MenuItemType.BUTTON,icon:"PasteSpecial",title:"rightClick.delete",disabled$:Hi(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}),xs="doc.menu.table-insert";function Uc(i){return{id:xs,type:y.MenuItemType.SUBITEMS,title:"table.insert",icon:"Insert",hidden$:N.combineLatest(y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC),Pe(i),(t,e)=>t||e)}}function wc(i){return{id:Tn.id,type:y.MenuItemType.BUTTON,title:"table.insertRowAbove",icon:"InsertRowAbove",disabled$:Pe(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function Lc(i){return{id:bn.id,type:y.MenuItemType.BUTTON,title:"table.insertRowBelow",icon:"InsertRowBelow",disabled$:Pe(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function Qc(i){return{id:yn.id,type:y.MenuItemType.BUTTON,title:"table.insertColumnLeft",icon:"LeftInsertColumn",disabled$:Pe(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function Fc(i){return{id:Rn.id,type:y.MenuItemType.BUTTON,title:"table.insertColumnRight",icon:"RightInsertColumn",disabled$:Pe(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}const Ms="doc.menu.table-delete";function Hc(i){return{id:Ms,type:y.MenuItemType.SUBITEMS,title:"table.delete",icon:"Reduce",hidden$:N.combineLatest(y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC),Pe(i),(t,e)=>t||e)}}function kc(i){return{id:vn.id,type:y.MenuItemType.BUTTON,title:"table.deleteRows",icon:"DeleteRow",disabled$:Pe(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function Vc(i){return{id:Cn.id,type:y.MenuItemType.BUTTON,title:"table.deleteColumns",icon:"DeleteColumn",disabled$:Pe(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function jc(i){return{id:It.id,type:y.MenuItemType.BUTTON,title:"table.deleteTable",icon:"GridSingle",disabled$:Pe(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function Wc(i){const t=i.get(s.IUniverInstanceService),e=i.get(M.IRenderManagerService);return new N.Observable(n=>{const o=t.focused$.subscribe(c=>{if(c==null||t.getUnitType(c)!==s.UniverInstanceType.UNIVER_DOC)return n.next(!0);const A=e.getRenderById(c);if(A==null)return n.next(!0);A.with(D.DocSkeletonManagerService).getViewModel().editAreaChange$.subscribe(u=>{n.next(u===M.DocumentEditArea.HEADER||u===M.DocumentEditArea.FOOTER)})}),a=e.getCurrentTypeOfRenderer(s.UniverInstanceType.UNIVER_DOC);if(a==null)return n.next(!0);const r=a.with(D.DocSkeletonManagerService).getViewModel();return n.next(r.getEditArea()!==M.DocumentEditArea.BODY),()=>o.unsubscribe()})}function zc(i){const t=i.get(s.IUniverInstanceService),e=i.get(s.ICommandService);return new N.Observable(n=>{const o=e.onCommandExecuted(l=>{if(l.id===D.RichTextEditingMutation.id){const{unitId:A}=l.params,d=t.getUnit(A);if(d==null){n.next(!0);return}const{documentStyle:u}=d.getSnapshot();n.next((u==null?void 0:u.documentFlavor)!==s.DocumentFlavor.TRADITIONAL)}}),a=t.focused$.subscribe(l=>{if(l==null)return n.next(!0);const A=t.getUniverDocInstance(l),d=A==null?void 0:A.getSnapshot().documentStyle.documentFlavor;n.next(d!==s.DocumentFlavor.TRADITIONAL)}),r=t.getCurrentUniverDocInstance();if(r==null)return n.next(!0);const c=r==null?void 0:r.getSnapshot().documentStyle.documentFlavor;return n.next(c!==s.DocumentFlavor.TRADITIONAL),()=>{o.dispose(),a.unsubscribe()}})}function Gc(i){const t=i.get(D.DocSelectionManagerService),e=i.get(s.IUniverInstanceService);return new N.Observable(n=>{const o=t.textSelection$.subscribe(a=>{if(a==null){n.next(!0);return}const{textRanges:r}=a;if(r.length!==1){n.next(!0);return}const c=r[0],{collapsed:l,startNodePosition:A,startOffset:d}=c;if(!l||d==null){n.next(!0);return}const u=e.getCurrentUniverDocInstance();if(u==null){n.next(!0);return}const f=fe(i,u.getUnitId());if(f==null){n.next(!0);return}if(f.getViewModel().getCustomRangeRaw(d)){n.next(!0);return}if(A!=null){const{path:g}=A;if(g.indexOf("cells")!==-1){n.next(!0);return}}n.next(!1)});return()=>o.unsubscribe()})}function re(i){const t=i.get(D.DocSelectionManagerService);return new N.Observable(e=>{const n=t.textSelection$.subscribe(o=>{if(o==null){e.next(!0);return}const{textRanges:a,rectRanges:r}=o;if(a.length===0&&r.length===0){e.next(!0);return}e.next(!1)});return()=>n.unsubscribe()})}function Yc(i){const t=i.get(s.ICommandService);return{id:Ge.id,type:y.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",activated$:new N.Observable(e=>{const n=t.onCommandExecuted(o=>{var r;const a=o.id;if(a===D.SetTextSelectionsOperation.id||a===Ne.id){const c=He(i);if(c==null){e.next(!1);return}const l=(r=c.ts)==null?void 0:r.bl;e.next(l===s.BooleanNumber.TRUE)}});return e.next(!1),n.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function Xc(i){const t=i.get(s.ICommandService);return{id:Ye.id,type:y.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",activated$:new N.Observable(e=>{const n=t.onCommandExecuted(o=>{var r;const a=o.id;if(a===D.SetTextSelectionsOperation.id||a===Ne.id){const c=He(i);if(c==null){e.next(!1);return}const l=(r=c.ts)==null?void 0:r.it;e.next(l===s.BooleanNumber.TRUE)}});return e.next(!1),n.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function Kc(i){const t=i.get(s.ICommandService);return{id:Xe.id,type:y.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",activated$:new N.Observable(e=>{const n=t.onCommandExecuted(o=>{var r;const a=o.id;if(a===D.SetTextSelectionsOperation.id||a===Ne.id){const c=He(i);if(c==null){e.next(!1);return}const l=(r=c.ts)==null?void 0:r.ul;e.next((l==null?void 0:l.s)===s.BooleanNumber.TRUE)}});return e.next(!1),n.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function Jc(i){const t=i.get(s.ICommandService);return{id:Ke.id,type:y.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",activated$:new N.Observable(e=>{const n=t.onCommandExecuted(o=>{var r;const a=o.id;if(a===D.SetTextSelectionsOperation.id||a===Ne.id){const c=He(i);if(c==null){e.next(!1);return}const l=(r=c.ts)==null?void 0:r.st;e.next((l==null?void 0:l.s)===s.BooleanNumber.TRUE)}});return e.next(!1),n.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function Zc(i){const t=i.get(s.ICommandService);return{id:Fe.id,type:y.MenuItemType.BUTTON,icon:"SubscriptSingle",tooltip:"toolbar.subscript",activated$:new N.Observable(e=>{const n=t.onCommandExecuted(o=>{var r;const a=o.id;if(a===D.SetTextSelectionsOperation.id||a===Ne.id){const c=He(i);if(c==null){e.next(!1);return}const l=(r=c.ts)==null?void 0:r.va;e.next(l===s.BaselineOffset.SUBSCRIPT)}});return e.next(!1),n.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function qc(i){const t=i.get(s.ICommandService);return{id:Je.id,type:y.MenuItemType.BUTTON,icon:"SuperscriptSingle",tooltip:"toolbar.superscript",activated$:new N.Observable(e=>{const n=t.onCommandExecuted(o=>{var r;const a=o.id;if(a===D.SetTextSelectionsOperation.id||a===Ne.id){const c=He(i);if(c==null){e.next(!1);return}const l=(r=c.ts)==null?void 0:r.va;e.next(l===s.BaselineOffset.SUPERSCRIPT)}});return e.next(!1),n.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function $c(i){const t=i.get(s.ICommandService);return{id:qe.id,tooltip:"toolbar.font",type:y.MenuItemType.SELECTOR,label:jo,selections:y.FONT_FAMILY_LIST.map(e=>({label:{name:Wo,hoverable:!0},value:e.value})),value$:new N.Observable(e=>{const n=s.DEFAULT_STYLES.ff,o=t.onCommandExecuted(a=>{var c;const r=a.id;if(r===D.SetTextSelectionsOperation.id||r===qe.id){const l=He(i);if(l==null){e.next(n);return}const A=(c=l.ts)==null?void 0:c.ff;e.next(A!=null?A:n)}});return e.next(n),o.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function el(i){const t=i.get(s.ICommandService);return{id:Ze.id,type:y.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:zo,props:{min:1,max:400}},selections:y.FONT_SIZE_LIST,value$:new N.Observable(e=>{const n=s.DEFAULT_STYLES.fs,o=t.onCommandExecuted(a=>{var c;const r=a.id;if(r===D.SetTextSelectionsOperation.id||r===Ze.id){const l=He(i);if(l==null){e.next(n);return}const A=(c=l.ts)==null?void 0:c.fs;e.next(A!=null?A:n)}});return e.next(n),o.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function tl(i){const t=i.get(s.ICommandService),e=i.get(s.ThemeService);return{id:$e.id,icon:"FontColor",tooltip:"toolbar.textColor.main",type:y.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:gi,hoverable:!1}}],value$:new N.Observable(n=>{const o=e.getCurrentTheme().textColor,a=t.onCommandExecuted(r=>{if(r.id===$e.id){const c=r.params.value;n.next(c!=null?c:o)}});return n.next(o),a.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function nl(i){return{id:ui.id,type:y.MenuItemType.BUTTON,icon:"HeaderFooterSingle",tooltip:"toolbar.headerFooter",hidden$:N.combineLatest(y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC,void 0,s.DOCS_ZEN_EDITOR_UNIT_ID_KEY),zc(i),(t,e)=>t||e)}}const il="GridSingle",Bs="doc.menu.table";function ol(i){return{id:Bs,type:y.MenuItemType.SUBITEMS,icon:il,tooltip:"toolbar.table.main",disabled$:Gc(i),hidden$:N.combineLatest(y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC,void 0,s.DOCS_ZEN_EDITOR_UNIT_ID_KEY),Wc(i),(t,e)=>t||e)}}function sl(i){return{id:On.id,title:"toolbar.table.insert",type:y.MenuItemType.BUTTON,hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function al(i){const t=i.get(s.ICommandService);return{id:Nt.id,type:y.MenuItemType.BUTTON,icon:"LeftJustifyingSingle",tooltip:"toolbar.alignLeft",disabled$:re(i),activated$:new N.Observable(e=>{const n=t.onCommandExecuted(o=>{var r;const a=o.id;if(a===D.SetTextSelectionsOperation.id||a===Re.id){const c=xn(i);if(c==null)return;const l=(r=c.paragraphStyle)==null?void 0:r.horizontalAlign;e.next(l===s.HorizontalAlign.LEFT)}});return e.next(!1),n.dispose}),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC,void 0,s.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}}function rl(i){const t=i.get(s.ICommandService);return{id:Pt.id,type:y.MenuItemType.BUTTON,icon:"HorizontallySingle",tooltip:"toolbar.alignCenter",activated$:new N.Observable(e=>{const n=t.onCommandExecuted(o=>{var r;const a=o.id;if(a===D.SetTextSelectionsOperation.id||a===Re.id){const c=xn(i);if(c==null)return;const l=(r=c.paragraphStyle)==null?void 0:r.horizontalAlign;e.next(l===s.HorizontalAlign.CENTER)}});return e.next(!1),n.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC,void 0,s.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}}function cl(i){const t=i.get(s.ICommandService);return{id:Ut.id,type:y.MenuItemType.BUTTON,icon:"RightJustifyingSingle",tooltip:"toolbar.alignRight",activated$:new N.Observable(e=>{const n=t.onCommandExecuted(o=>{var r;const a=o.id;if(a===D.SetTextSelectionsOperation.id||a===Re.id){const c=xn(i);if(c==null)return;const l=(r=c.paragraphStyle)==null?void 0:r.horizontalAlign;e.next(l===s.HorizontalAlign.RIGHT)}});return e.next(!1),n.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC,void 0,s.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}}function ll(i){const t=i.get(s.ICommandService);return{id:wt.id,type:y.MenuItemType.BUTTON,icon:"AlignTextBothSingle",tooltip:"toolbar.alignJustify",activated$:new N.Observable(e=>{const n=t.onCommandExecuted(o=>{var r;const a=o.id;if(a===D.SetTextSelectionsOperation.id||a===Re.id){const c=xn(i);if(c==null)return;const l=(r=c.paragraphStyle)==null?void 0:r.horizontalAlign;e.next(l===s.HorizontalAlign.JUSTIFIED)}});return e.next(!1),n.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC,void 0,s.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}}const kt=i=>new N.Observable(t=>{const e=i.get(s.IUniverInstanceService),n=i.get(D.DocSelectionManagerService);let o;const a=e.focused$.subscribe(r=>{if(o==null||o.unsubscribe(),r==null)return;const c=e.getUniverDocInstance(r);c!=null&&(o=n.textSelection$.subscribe(()=>{var d,u,f;const l=n.getDocRanges(),A=(d=l.find(h=>h.isActive))!=null?d:l[0];if(A){const h=c.getSelfOrHeaderFooterModel(A==null?void 0:A.segmentId),m=cn(A,(f=(u=h.getBody())==null?void 0:u.paragraphs)!=null?f:[]);let g;if(m.every(p=>{var S;return g||(g=(S=p.bullet)==null?void 0:S.listType),p.bullet&&p.bullet.listType===g})){t.next(g);return}}t.next(void 0)}))});return()=>{a.unsubscribe(),o==null||o.unsubscribe()}});function Al(i){return{id:_t.id,type:y.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:Yo,hoverable:!1},value$:kt(i)}],icon:"OrderSingle",tooltip:"toolbar.order",hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC),disabled$:re(i),activated$:kt(i).pipe(N.map(t=>t&&t.indexOf("ORDER_LIST")===0))}}function dl(i){return{id:Dt.id,type:y.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:Xo,hoverable:!1},value$:kt(i)}],icon:"UnorderSingle",tooltip:"toolbar.unorder",disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC),activated$:kt(i).pipe(N.map(t=>t&&t.indexOf("BULLET_LIST")===0))}}function ul(i){return{id:an.id,type:y.MenuItemType.BUTTON,icon:"TodoList",tooltip:"toolbar.checklist",disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC),activated$:kt(i).pipe(N.map(t=>t&&t.indexOf("CHECK_LIST")===0))}}function hl(i){const t=i.get(s.ICommandService),e=i.get(s.IUniverInstanceService);return{id:En.id,type:y.MenuItemType.BUTTON,icon:"KeyboardSingle",tooltip:"toolbar.documentFlavor",hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC,void 0,s.DOCS_ZEN_EDITOR_UNIT_ID_KEY),activated$:new N.Observable(n=>{var r;const o=t.onCommandExecuted(c=>{var l;if(c.id===D.RichTextEditingMutation.id){const A=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);n.next(((l=A==null?void 0:A.getSnapshot())==null?void 0:l.documentStyle.documentFlavor)===s.DocumentFlavor.MODERN)}}),a=e.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);return n.next(((r=a==null?void 0:a.getSnapshot())==null?void 0:r.documentStyle.documentFlavor)===s.DocumentFlavor.MODERN),()=>o.dispose()})}}function gl(i){return{id:ut.id,type:y.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor"}}function fl(i){const t=i.get(s.ICommandService),e=i.get(s.ThemeService);return{id:et.id,tooltip:"toolbar.fillColor.main",type:y.MenuItemType.BUTTON_SELECTOR,icon:"PaintBucket",selections:[{label:{name:gi,hoverable:!1}}],value$:new N.Observable(n=>{const o=e.getCurrentTheme().primaryColor,a=t.onCommandExecuted(r=>{if(r.id===et.id){const c=r.params.value;n.next(c!=null?c:o)}});return n.next(o),a.dispose}),disabled$:re(i),hidden$:y.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_DOC)}}function He(i){var f,h;const t=i.get(s.IUniverInstanceService),e=i.get(D.DocSelectionManagerService),n=i.get(_e),o=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),a=e.getDocRanges(),r=(f=a.find(m=>m.isActive))!=null?f:a[0],c=n.getDefaultStyle(),l=(h=n.getStyleCache())!=null?h:{};if(o==null||r==null)return{ts:{...c,...l}};const{segmentId:A}=r,d=o.getSelfOrHeaderFooterModel(A).getBody();return d==null?{ts:{...c,...l}}:{ts:{...rs(d,r,c),...l}}}function xn(i){var d,u;const t=i.get(s.IUniverInstanceService),e=i.get(D.DocSelectionManagerService),n=t.getCurrentUniverDocInstance(),o=e.getDocRanges(),a=(d=o.find(f=>f.isActive))!=null?d:o[0];if(n==null||a==null)return;const{startOffset:r,segmentId:c}=a,l=(u=n.getSelfOrHeaderFooterModel(c).getBody())==null?void 0:u.paragraphs;if(l==null)return;let A=-1;for(const f of l){const{startIndex:h}=f;if(r>A&&r<=h)return f;A=h}return null}const Ds={[y.RibbonStartGroup.FORMAT]:{[Ge.id]:{order:0,menuItemFactory:Yc},[Ye.id]:{order:1,menuItemFactory:Xc},[Xe.id]:{order:2,menuItemFactory:Kc},[Ke.id]:{order:3,menuItemFactory:Jc},[Fe.id]:{order:4,menuItemFactory:Zc},[Je.id]:{order:5,menuItemFactory:qc},[Ze.id]:{order:6,menuItemFactory:el},[qe.id]:{order:7,menuItemFactory:$c},[$e.id]:{order:8,menuItemFactory:tl},[et.id]:{order:9,menuItemFactory:fl,[ut.id]:{order:0,menuItemFactory:gl}}},[y.RibbonStartGroup.LAYOUT]:{[Bs]:{order:1,menuItemFactory:ol,[On.id]:{order:0,menuItemFactory:sl}},[Nt.id]:{order:2,menuItemFactory:al},[Pt.id]:{order:3,menuItemFactory:rl},[Ut.id]:{order:4,menuItemFactory:cl},[wt.id]:{order:5,menuItemFactory:ll},[_t.id]:{order:6,menuItemFactory:Al},[Dt.id]:{order:7,menuItemFactory:dl},[an.id]:{order:8,menuItemFactory:ul},[ui.id]:{order:9,menuItemFactory:nl},[En.id]:{order:10,menuItemFactory:hl}},[y.ContextMenuPosition.MAIN_AREA]:{[y.ContextMenuGroup.FORMAT]:{[Ht.name]:{order:0,menuItemFactory:Bc},[Sn.id]:{order:1,menuItemFactory:_c},[In.id]:{order:2,menuItemFactory:Nc},[Qt.id]:{order:3,menuItemFactory:Pc}},[y.ContextMenuGroup.LAYOUT]:{[Fi.id]:{order:0,menuItemFactory:Dc},[xs]:{order:1,menuItemFactory:Uc,[Tn.id]:{order:1,menuItemFactory:wc},[bn.id]:{order:2,menuItemFactory:Lc},[yn.id]:{order:3,menuItemFactory:Qc},[Rn.id]:{order:4,menuItemFactory:Fc}},[Ms]:{order:2,menuItemFactory:Hc,[vn.id]:{order:1,menuItemFactory:kc},[Cn.id]:{order:2,menuItemFactory:Vc},[It.id]:{order:3,menuItemFactory:jc}}}}};var ml=Object.defineProperty,pl=Object.getOwnPropertyDescriptor,Sl=(i,t,e,n)=>{for(var o=n>1?void 0:n?pl(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&ml(t,e,o),o},Ue=(i,t)=>(e,n)=>t(e,n,i);C.DocUIController=class extends s.Disposable{constructor(t,e,n,o,a,r,c,l,A){super(),this._injector=t,this._componentManager=e,this._commandService=n,this._layoutService=o,this._menuManagerService=a,this._uiPartsService=r,this._univerInstanceService=c,this._shortcutService=l,this._configService=A,this._init()}_initCustomComponents(){const t=this._componentManager;this.disposeWithMe(t.register(gi,se.ColorPicker)),this.disposeWithMe(t.register(jo,y.FontFamily)),this.disposeWithMe(t.register(Wo,y.FontFamilyItem)),this.disposeWithMe(t.register(zo,y.FontSize)),this.disposeWithMe(t.register(Xo,sr)),this.disposeWithMe(t.register(Yo,ir)),this.disposeWithMe(t.register("TodoList",_o))}_initUiParts(){var n,o;const t=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),e=this._configService.getConfig(Ii);(o=(n=e==null?void 0:e.layout)==null?void 0:n.docContainerConfig)!=null&&o.footer&&!t&&this.disposeWithMe(this._uiPartsService.registerComponent(y.BuiltInUIPart.FOOTER,()=>s.connectInjector(wr,this._injector)))}_initMenus(){this._menuManagerService.mergeMenu(Ds)}_initShortCut(){[pr,Sr,Ir,Er,vr,Cr,yr,Rr,br,Tr,Or,xr,rr].forEach(t=>{this.disposeWithMe(this._shortcutService.registerShortcut(t))})}_init(){this._initCustomComponents(),this._initMenus(),this._initFocusHandler(),this._initCommands(),this._initUiParts(),this._initShortCut()}_initCommands(){[Vo,ui,Ai].forEach(t=>this.disposeWithMe(this._commandService.registerCommand(t)))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(s.UniverInstanceType.UNIVER_DOC,t=>{this._injector.get(M.IRenderManagerService).getRenderById(t).with(C.DocSelectionRenderService).focus()}))}},C.DocUIController=Sl([Ue(0,s.Inject(s.Injector)),Ue(1,s.Inject(y.ComponentManager)),Ue(2,s.ICommandService),Ue(3,y.ILayoutService),Ue(4,y.IMenuManagerService),Ue(5,y.IUIPartsService),Ue(6,s.IUniverInstanceService),Ue(7,y.IShortcutService),Ue(8,s.IConfigService)],C.DocUIController);var Il=Object.defineProperty,El=Object.getOwnPropertyDescriptor,vl=(i,t,e,n)=>{for(var o=n>1?void 0:n?El(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Il(t,e,o),o},ki=(i,t)=>(e,n)=>t(e,n,i);const _s=1.5;C.DocBackScrollRenderController=class extends s.RxDisposable{constructor(t,e,n,o){super(),this._context=t,this._textSelectionManagerService=e,this._editorService=n,this._docSkeletonManagerService=o,this._init()}_init(){this._textSelectionManagerService.textSelection$.pipe(N.takeUntil(this.dispose$)).subscribe(t=>{if(t==null)return;const{isEditing:e,unitId:n}=t;n!==this._context.unitId||!e||this._context.unitId!==s.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&this._scrollToSelection()})}scrollToRange(t){const e=this._docSkeletonManagerService.getSkeleton();if(!e)return;const{startOffset:n}=t,o=e.findNodePositionByCharIndex(n);o&&this.scrollToNode(o)}scrollToNode(t){var w;const{unitId:e,scene:n,mainComponent:o}=this._context,a=this._docSkeletonManagerService.getSkeleton();if(o==null||a==null)return;const r=o.getOffsetConfig(),{docsLeft:c,docsTop:l}=r,A=new De(r,a),{contentBoxPointGroup:d}=A.getRangePointData(t,t),{left:u,top:f,height:h}=Ot(d),m=u+c,g=f+l,p=n.getViewport(be.VIEW_MAIN),S=this._editorService.getEditor(e);if(p==null)return;const{left:I,top:E,right:T,bottom:O}=p.getBounding().viewBound;let v=0,b=0;const _=S?(w=S.params.backScrollOffset)!=null?w:0:100;g<E?v=g-E-_:g>O-h&&(v=g-O+h+_),m<I?b=m-I:m>T-_s&&(b=m-T+_s);const B=p.transViewportScroll2ScrollValue(b,v);p.scrollByBarDeltaValue(B)}_scrollToSelection(){const t=this._textSelectionManagerService.getActiveTextRange();if(t==null)return;const{collapsed:e,startNodePosition:n}=t;e&&this.scrollToNode(n)}},C.DocBackScrollRenderController=vl([ki(1,s.Inject(D.DocSelectionManagerService)),ki(2,me),ki(3,s.Inject(D.DocSkeletonManagerService))],C.DocBackScrollRenderController);var Cl=Object.defineProperty,Tl=Object.getOwnPropertyDescriptor,bl=(i,t,e,n)=>{for(var o=n>1?void 0:n?Tl(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Cl(t,e,o),o},vt=(i,t)=>(e,n)=>t(e,n,i);C.DocRenderController=class extends s.RxDisposable{constructor(t,e,n,o,a,r,c){super(),this._context=t,this._commandService=e,this._docSelectionRenderService=n,this._docSkeletonManagerService=o,this._editorService=a,this._renderManagerService=r,this._univerInstanceService=c,this._addNewRender(),this._initRenderRefresh(),this._initCommandListener()}reRender(t){var r,c;const e=(r=this._renderManagerService.getRenderById(t))==null?void 0:r.with(D.DocSkeletonManagerService),n=e==null?void 0:e.getSkeleton();if(!n||!!n.getViewModel().getDataModel().getSnapshot().disabled)return;n.calculate();const a=this._editorService.getEditor(t);if(this._editorService.isEditor(t)&&!(a!=null&&a.params.scrollBar)){(c=this._context.mainComponent)==null||c.makeDirty();return}this._recalculateSizeBySkeleton(n)}_addNewRender(){const{scene:t,engine:e}=this._context,n=new M.Viewport(be.VIEW_MAIN,t,{left:0,top:0,bottom:0,right:0,isWheelPreventDefaultX:!0});t.attachControl(),t.onMouseWheel$.subscribeEvent((o,a)=>{const r=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if((r==null?void 0:r.getUnitId())!==this._context.unitId)return;const c=o;if(c.ctrlKey){const l=Math.abs(c.deltaX);let A=l<40?.2:l<80?.4:.2;A*=c.deltaY>0?-1:1,t.scaleX<1&&(A/=2),t.scaleX+A>4?t.scale(4,4):t.scaleX+A<.1?t.scale(.1,.1):c.preventDefault()}else n.onMouseWheel(c,a)}),new M.ScrollBar(n),t.addLayer(new M.Layer(t,[],Yt),new M.Layer(t,[],ro)),this._addComponent(),e.runRenderLoop(()=>{t.render()}),this._docSelectionRenderService.__attachScrollEvent()}_addComponent(){const{scene:t,unit:e,components:n}=this._context,r={pageMarginLeft:20,pageMarginTop:20},c=new M.Documents(Ie.MAIN,void 0,r);c.zIndex=Wn;const l=new M.DocBackground(Ie.BACKGROUND,void 0,r);l.zIndex=Wn,this._context.mainComponent=c,n.set(Ie.MAIN,c),n.set(Ie.BACKGROUND,l),t.addObjects([c],Yt),t.addObjects([l],ao),this._editorService.getEditor(e.getUnitId())==null&&t.enableLayerCache(Yt)}_initRenderRefresh(){this._docSkeletonManagerService.currentSkeletonBefore$.pipe(N.takeUntil(this.dispose$)).subscribe(t=>{this._create(t)})}_create(t){if(!t)return;const{mainComponent:e,components:n}=this._context,o=e,a=n.get(Ie.BACKGROUND);o.changeSkeleton(t),a.changeSkeleton(t),this._recalculateSizeBySkeleton(t)}_initCommandListener(){const t=[D.RichTextEditingMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(t.includes(e.id)){const n=e.params,{unitId:o}=n;this.reRender(o)}}))}_recalculateSizeBySkeleton(t){var m;const{mainComponent:e,scene:n,unitId:o,components:a}=this._context,r=e,c=a.get(Ie.BACKGROUND),l=(m=t.getSkeletonData())==null?void 0:m.pages;if(l==null)return;let A=0,d=0;const f=this._context.unit.getSnapshot().documentStyle.documentFlavor;for(let g=0,p=l.length;g<p;g++){const S=l[g];let{pageWidth:I,pageHeight:E}=S;if(f===s.DocumentFlavor.MODERN){const T=yl(S);I=T.pageWidth,E=T.pageHeight}r.pageLayoutType===M.PageLayoutType.VERTICAL?(d+=E,d+=r.pageMarginTop,g===p-1&&(d+=r.pageMarginTop),A=Math.max(A,I)):r.pageLayoutType===M.PageLayoutType.HORIZONTAL&&(A+=I,g!==p-1&&(A+=r.pageMarginLeft),d=Math.max(d,E))}r.resize(A,d),c.resize(A,d);const h=this._editorService.getEditor(o);(!this._editorService.isEditor(o)||h!=null&&h.params.scrollBar)&&n.resize(A,d)}},C.DocRenderController=bl([vt(1,s.ICommandService),vt(2,s.Inject(C.DocSelectionRenderService)),vt(3,s.Inject(D.DocSkeletonManagerService)),vt(4,me),vt(5,M.IRenderManagerService),vt(6,s.IUniverInstanceService)],C.DocRenderController);function yl(i){let{pageWidth:t,pageHeight:e}=i;const{marginLeft:n,marginRight:o,marginTop:a,marginBottom:r,skeDrawings:c,skeTables:l}=i;t===Number.POSITIVE_INFINITY&&(t=i.width+n+o),e===Number.POSITIVE_INFINITY&&(e=i.height+a+r);for(const A of c.values())t=Math.max(t,A.aLeft+A.width+n+o),e=Math.max(e,A.aTop+A.height+a+r);for(const A of l.values())t=Math.max(t,A.left+A.width+n+o),e=Math.max(e,A.top+A.height+a+r);return{pageWidth:t,pageHeight:e}}const Vi={id:"doc.command.select-all",type:s.CommandType.COMMAND,handler:async i=>{var f;const t=i.get(s.IUniverInstanceService),e=i.get(D.DocSelectionManagerService),n=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC),o=e.getDocRanges(),a=(f=o.find(h=>h.isActive))!=null?f:o[0];if(n==null||a==null)return!1;const{segmentId:r}=a,c=n.getUnitId(),l=n.getSelfOrHeaderFooterModel(r).getSnapshot().body;if(l==null)return!1;const{tables:A=[]}=l,d=[];let u=0;for(const h of A){const{startIndex:m,endIndex:g}=h;u!==m&&d.push({startOffset:u,endOffset:m-1,rangeType:s.DOC_RANGE_TYPE.TEXT}),d.push({startOffset:m+3,endOffset:g-5,rangeType:s.DOC_RANGE_TYPE.RECT}),u=g}return u!==l.dataStream.length-2&&d.push({startOffset:u,endOffset:l.dataStream.length-2,rangeType:s.DOC_RANGE_TYPE.TEXT}),e.replaceDocRanges(d,{unitId:c,subUnitId:c},!1),!0}};class Vt extends s.RxDisposable{constructor(e){super();R(this,"_previousActiveRange",null);R(this,"_undoMutationParamsCache",[]);R(this,"_redoMutationParamsCache",[]);this._context=e}clearUndoRedoMutationParamsCache(){this._undoMutationParamsCache=[],this._redoMutationParamsCache=[]}getUndoRedoMutationParamsCache(){return{undoCache:this._undoMutationParamsCache,redoCache:this._redoMutationParamsCache}}setUndoRedoMutationParamsCache({undoCache:e=[],redoCache:n=[]}){this._undoMutationParamsCache=e,this._redoMutationParamsCache=n}getActiveRange(){return this._previousActiveRange}setActiveRange(e){this._previousActiveRange=e}pushUndoRedoMutationParams(e,n){this._undoMutationParamsCache.push(e),this._redoMutationParamsCache.push(n)}fetchComposedUndoRedoMutationParams(){if(this._undoMutationParamsCache.length===0||this._previousActiveRange==null||this._redoMutationParamsCache.length===0)return null;const{unitId:e}=this._undoMutationParamsCache[0],n={unitId:e,actions:this._undoMutationParamsCache.reverse().reduce((a,r)=>s.JSONX.compose(a,r.actions),null),textRanges:[]};return{redoMutationParams:{unitId:e,actions:this._redoMutationParamsCache.reduce((a,r)=>s.JSONX.compose(a,r.actions),null),textRanges:[]},undoMutationParams:n,previousActiveRange:this._previousActiveRange}}dispose(){this._undoMutationParamsCache=[],this._redoMutationParamsCache=[],this._previousActiveRange=null}}const Rl=s.SHEET_EDITOR_UNITS,ji={id:"doc.command.ime-input",type:s.CommandType.COMMAND,handler:async(i,t)=>{var k,X,G,W;const{unitId:e,newText:n,oldTextLen:o,isCompositionEnd:a,isCompositionStart:r}=t,c=i.get(s.ICommandService),l=i.get(M.IRenderManagerService),A=i.get(s.IUniverInstanceService),d=i.get(_e),u=(k=l.getRenderById(e))==null?void 0:k.with(Vt),f=A.getUnit(e,s.UniverInstanceType.UNIVER_DOC);if(f==null||u==null)return!1;const h=u.getActiveRange();if(h==null)return!1;const{style:m,segmentId:g}=h,p=f.getSelfOrHeaderFooterModel(g).getBody();if(p==null)return!1;Object.assign(h,h);const{startOffset:I,endOffset:E}=h,T=n.length,O=[{startOffset:I+T,endOffset:I+T,collapsed:!0,style:m}],v={id:D.RichTextEditingMutation.id,params:{unitId:e,actions:[],textRanges:O}},b=d.getDefaultStyle(),_=d.getStyleCache(),B=zn((X=p.customRanges)!=null?X:[],I+o,Rl.includes(e)),w=Xt((G=p.textRuns)!=null?G:[],r?E:I+o,b,_),x=Gn((W=p.customDecorations)!=null?W:[],I+o),U=new s.TextX,L=s.JSONX.getInstance();if(!h.collapsed&&r){const V=s.BuildTextUtils.selection.delete([h],p,0,null,!1);U.push(...V),v.params.textRanges=[{startOffset:I+T,endOffset:I+T,collapsed:!0}]}else U.push({t:s.TextXActionType.RETAIN,len:I});o>0&&U.push({t:s.TextXActionType.DELETE,len:o}),U.push({t:s.TextXActionType.INSERT,body:{dataStream:n,textRuns:w?[{...w,st:0,ed:n.length}]:[],customRanges:B?[{...B,startIndex:0,endIndex:n.length-1}]:[],customDecorations:x.map(V=>({...V,startIndex:0,endIndex:n.length-1}))},len:n.length});const F=te(f,g);v.params.actions=L.editOp(U.serialize(),F),v.params.noHistory=!a,v.params.isCompositionEnd=a;const H=c.syncExecuteCommand(v.id,v.params);return u.pushUndoRedoMutationParams(H,v.params),!!H}},Mn={type:s.CommandType.COMMAND,id:"doc.command.set-zoom-ratio",handler:async(i,t)=>{var u,f,h;const e=i.get(s.ICommandService),n=i.get(s.IUndoRedoService),o=i.get(s.IUniverInstanceService);let a=(u=o.getCurrentUniverDocInstance())==null?void 0:u.getUnitId();if(!a)return!1;let r=1;if(t&&(a=(f=t.documentId)!=null?f:a,r=(h=t.zoomRatio)!=null?h:r),!o.getUniverDocInstance(a))return!1;const l={zoomRatio:r,unitId:a},A=Br(i,l);return e.syncExecuteCommand(ve.id,l)?(n.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:A}],redoMutations:[{id:ve.id,params:l}]}),!0):!1}},Wi={id:"doc.table.tab-in-table",type:s.CommandType.COMMAND,handler:async(i,t)=>{var m;const{shift:e}=t,n=i.get(D.DocSelectionManagerService),o=n.getDocRanges(),a=i.get(s.ICommandService),c=i.get(s.IUniverInstanceService).getCurrentUniverDocInstance();if(!c)return!1;const l=(m=o.find(g=>g.isActive))!=null?m:o[0],A=c.getUnitId(),d=fe(i,A),u=d==null?void 0:d.getSkeleton(),f=u==null?void 0:u.getViewModel().getSelfOrHeaderFooterViewModel(l==null?void 0:l.segmentId);if(f==null||l==null)return!1;let h=null;if(e?h=ds(f,l,Ci.PREV):h=ds(f,l,Ci.NEXT),h){const{startOffset:g,endOffset:p}=h,S=[{startOffset:g,endOffset:p}];return n.replaceDocRanges(S),!0}return e===!1?await a.executeCommand(Ni.id,{position:ln.BELLOW}):!0}},ke={id:"doc.operation.move-cursor",type:s.CommandType.OPERATION,handler:(i,t)=>!!t},Ve={id:"doc.operation.move-selection",type:s.CommandType.OPERATION,handler:(i,t)=>!!t};var Ol=Object.defineProperty,xl=Object.getOwnPropertyDescriptor,Ml=(i,t,e,n)=>{for(var o=n>1?void 0:n?xl(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Ol(t,e,o),o},zi=(i,t)=>(e,n)=>t(e,n,i);let Gi=class{constructor(i,t,e){R(this,"_docContainer");R(this,"getComponent",i=>{if(this._docContainer=i,!i.getContentRef().current)throw new Error("container is not ready")});R(this,"changeLocale",i=>{this._localeService.setLocale(i)});this._localeService=i,this._injector=t,this._configService=e}getUIConfig(){return{injector:this._injector,config:this._configService.getConfig(Ii),changeLocale:this.changeLocale,getComponent:this.getComponent}}getContentRef(){return this._docContainer.getContentRef()}UIDidMount(i){if(this._docContainer)return i(this._docContainer)}getDocContainer(){return this._docContainer}};Gi=Ml([zi(0,s.Inject(s.LocaleService)),zi(1,s.Inject(s.Injector)),zi(2,s.IConfigService)],Gi);var Bl=Object.defineProperty,Dl=Object.getOwnPropertyDescriptor,_l=(i,t,e,n)=>{for(var o=n>1?void 0:n?Dl(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Bl(t,e,o),o},Nl=(i,t)=>(e,n)=>t(e,n,i);let Bn=class extends s.RxDisposable{constructor(t){super();R(this,"_docContainerController");this._injector=t,this._docContainerController=this._injector.createInstance(Gi)}};Bn=_l([Nl(0,s.Inject(s.Injector))],Bn);var Pl=Object.defineProperty,Ul=Object.getOwnPropertyDescriptor,wl=(i,t,e,n)=>{for(var o=n>1?void 0:n?Ul(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Pl(t,e,o),o},Ns=(i,t)=>(e,n)=>t(e,n,i);let Dn=class extends s.Disposable{constructor(i,t){super(),this._docAutoFormatService=i,this._renderManagerService=t,this._initListTabAutoFormat(),this._initListSpaceAutoFormat(),this._initDefaultEnterFormat(),this._initExitListAutoFormat()}_initListTabAutoFormat(){this.disposeWithMe(this._docAutoFormatService.registerAutoFormat({id:ze.id,match:i=>{var o;const{selection:t,paragraphs:e,unit:n}=i;if(e.length===1&&t.startOffset===e[0].paragraphStart&&e[0].bullet){const a=(o=n.getBody())==null?void 0:o.paragraphs,r=a==null?void 0:a.filter(c=>{var l;return((l=c.bullet)==null?void 0:l.listId)===e[0].bullet.listId});return(r==null?void 0:r.findIndex(c=>c.startIndex===e[0].startIndex))!==0}else if(e.length>1&&e.some(a=>a.bullet))return!0;return!1},getMutations(i){const t=i.commandParams;return[{id:sn.id,params:{type:t!=null&&t.shift?Bt.decrease:Bt.increase}}]},priority:100})),this.disposeWithMe(this._docAutoFormatService.registerAutoFormat({id:ze.id,match:i=>{const{selection:t,unit:e}=i,{startNodePosition:n,endNodePosition:o}=t,a=this._renderManagerService.getRenderById(e.getUnitId()),r=a==null?void 0:a.with(D.DocSkeletonManagerService).getSkeleton();return r==null?!1:!!(n&&o&&mo(r,n,o)||n&&!o&&n.path.indexOf("cells")>-1)},getMutations(i){const t=i.commandParams;return[{id:Wi.id,params:{shift:!!(t!=null&&t.shift)}}]},priority:99}))}_initListSpaceAutoFormat(){this.disposeWithMe(this._docAutoFormatService.registerAutoFormat({id:xt.id,match:i=>{var a;const{selection:t,paragraphs:e,unit:n}=i;if(!t.collapsed||e.length!==1)return!1;const o=(a=n.getBody())==null?void 0:a.dataStream.slice(e[0].paragraphStart,e[0].paragraphEnd-1);return!!(o&&Object.keys(s.QuickListTypeMap).includes(o))},getMutations(i){var o;const{paragraphs:t,unit:e}=i,n=(o=e.getBody())==null?void 0:o.dataStream.slice(t[0].paragraphStart,t[0].paragraphEnd-1);if(n&&Object.keys(s.QuickListTypeMap).includes(n)){const a=s.QuickListTypeMap[n];return[{id:Si.id,params:{listType:a,paragraph:t[0]}}]}return[]}}))}_initExitListAutoFormat(){this.disposeWithMe(this._docAutoFormatService.registerAutoFormat({id:dt.id,match:i=>{const{paragraphs:t}=i;return!!(t.length===1&&t[0].bullet&&t[0].paragraphStart===t[0].paragraphEnd)},getMutations:i=>{const t=i.paragraphs[0].bullet;return t?t.nestingLevel>0?[{id:sn.id,params:{type:Bt.decrease}}]:[{id:ht.id,params:{listType:i.paragraphs[0].bullet.listType}}]:[]}}))}_initDefaultEnterFormat(){this.disposeWithMe(this._docAutoFormatService.registerAutoFormat({id:dt.id,match:()=>!0,getMutations(){return[{id:Ui.id}]},priority:-9999}))}};Dn=wl([Ns(0,s.Inject(C.DocAutoFormatService)),Ns(1,M.IRenderManagerService)],Dn);function Ll(i){return i.rows[0].cells[0].sections[0].columns[0].lines[0]}function Ql(i){const t=i.rows[i.rows.length-1],e=t.cells[t.cells.length-1];return M.getLastLine(e)}function Fl(i,t){const{ed:e}=i,{skeTables:n}=t;let o=null;for(const a of n.values())if(a.st===e+1){o=a;break}return o}function Ps(i){const t=i==null?void 0:i.parent;let e=null,n=null;if(i==null||t==null)return{lineBeforeTable:e,lineAfterTable:n};const{st:o,ed:a}=i,r=t.type===M.DocumentSkeletonPageType.CELL?[t]:t.parent.pages;return M.lineIterator(r,c=>{c.st===a+1?n=c:c.ed===o-1&&(e=c)}),{lineBeforeTable:e,lineAfterTable:n}}function Us(i){return i.sections[0].columns[0].lines.length===0}function ws(i){var r,c;const t=i.parent,e=t==null?void 0:t.parent,n=e==null?void 0:e.tableId;if(t==null||e==null)return;const o=t.cells.indexOf(i);let a=e.rows[e.rows.indexOf(t)+1];if(a==null&&n.indexOf("#-#")){const[l,A]=n.split("#-#"),d=(c=(r=e.parent)==null?void 0:r.parent)==null?void 0:c.pages,u=`${l}#-#${Number.parseInt(A)+1}`;if(d)for(const f of d){const{skeTables:h}=f;if(h.has(u)){const m=h.get(u);if(m!=null&&m.rows.length){a=m.rows.find(g=>!g.isRepeatRow);break}}}}if(a!=null){const l=a.cells[o];return Us(l)?ws(l):l}}function Ls(i){var a,r;const t=i.parent,e=t==null?void 0:t.parent;if(t==null||e==null)return;let n=e.rows[e.rows.indexOf(t)-1];const o=t.cells.indexOf(i);if((n==null||n.isRepeatRow)&&e.tableId.indexOf("#-#")){const[c,l]=e.tableId.split("#-#"),A=(r=(a=e.parent)==null?void 0:a.parent)==null?void 0:r.pages,d=`${c}#-#${Number.parseInt(l)-1}`;if(A)for(const u of A){const{skeTables:f}=u;if(f.has(d)){const h=f.get(d);if(h!=null&&h.rows.length){n=h.rows[h.rows.length-1];break}}}}if(n!=null){const c=n.cells[o];return Us(c)?Ls(c):c}}function Hl(i,t){const{st:e}=i,{skeTables:n}=t;let o=null;for(const a of n.values())if(a.ed===e-1){o=a;break}return o}function kl(i){return i.sections[0].columns[0].lines[0]}function Vl(i){const t=M.getLastColumn(i);return t.lines[t.lines.length-1]}var jl=Object.defineProperty,Wl=Object.getOwnPropertyDescriptor,zl=(i,t,e,n)=>{for(var o=n>1?void 0:n?Wl(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&jl(t,e,o),o},_n=(i,t)=>(e,n)=>t(e,n,i);let Nn=class extends s.Disposable{constructor(t,e,n,o){super();R(this,"_onInputSubscription");this._univerInstanceService=t,this._renderManagerService=e,this._textSelectionManagerService=n,this._commandService=o,this._commandExecutedListener()}dispose(){var t;super.dispose(),(t=this._onInputSubscription)==null||t.unsubscribe()}_commandExecutedListener(){const t=[ke.id,Ve.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(!t.includes(e.id))return;const n=e.params;switch(e.id){case ke.id:return this._handleMoveCursor(n.direction);case Ve.id:return this._handleShiftMoveSelection(n.direction);default:throw new Error("Unknown command")}}))}_handleShiftMoveSelection(t){var E,T,O;const e=this._textSelectionManagerService.getActiveTextRange(),n=this._textSelectionManagerService.getTextRanges(),o=this._univerInstanceService.getCurrentUniverDocInstance();if(o==null)return;const a=(E=this._renderManagerService.getRenderById(o.getUnitId()))==null?void 0:E.with(D.DocSkeletonManagerService).getSkeleton(),r=this._getDocObject();if(e==null||a==null||r==null)return;const{startOffset:c,endOffset:l,style:A,collapsed:d,direction:u,segmentId:f,startNodePosition:h,endNodePosition:m,segmentPage:g}=e;if(n.length>1){let v=Number.POSITIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(const _ of n)v=Math.min(v,_.startOffset),b=Math.max(b,_.endOffset);this._textSelectionManagerService.replaceTextRanges([{startOffset:t===s.Direction.LEFT||t===s.Direction.UP?b:v,endOffset:t===s.Direction.LEFT||t===s.Direction.UP?v:b,style:A}],!1);return}const p=d||u===s.RANGE_DIRECTION.FORWARD?c:l;let S=d||u===s.RANGE_DIRECTION.FORWARD?l:c;const I=(T=o.getSelfOrHeaderFooterModel(f).getBody().dataStream.length)!=null?T:Number.POSITIVE_INFINITY;if(t===s.Direction.LEFT||t===s.Direction.RIGHT){const v=a.findNodeByCharIndex(S-1,f,g),b=a.findNodeByCharIndex(S,f,g);S=t===s.Direction.RIGHT?S+b.count:S-((O=v==null?void 0:v.count)!=null?O:0),S=Math.min(I-2,Math.max(0,S)),this._textSelectionManagerService.replaceTextRanges([{startOffset:p,endOffset:S,style:A}],!1),this._scrollToFocusNodePosition(o.getUnitId(),S)}else{const v=a.findNodeByCharIndex(S,f,g),b=r.document.getOffsetConfig(),_=d?h:u===s.RANGE_DIRECTION.FORWARD?m:h,B=this._getTopOrBottomPosition(a,v,_,t===s.Direction.DOWN,!0);if(B==null){const x=t===s.Direction.UP?0:I-2;if(x===S)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:p,endOffset:x,style:A}],!1);return}const w=new De(b,a).getRangePointData(B,B).cursorList[0];this._textSelectionManagerService.replaceTextRanges([{startOffset:p,endOffset:w.endOffset,style:A}],!1),this._scrollToFocusNodePosition(o.getUnitId(),w.endOffset)}}_handleMoveCursor(t){var I,E,T,O;const e=this._textSelectionManagerService.getActiveTextRange(),n=this._textSelectionManagerService.getTextRanges(),o=this._univerInstanceService.getCurrentUniverDocInstance();if(o==null)return!1;const a=(I=this._renderManagerService.getRenderById(o.getUnitId()))==null?void 0:I.with(D.DocSkeletonManagerService).getSkeleton(),r=this._getDocObject();if(e==null||a==null||r==null||n==null)return;const{startOffset:c,endOffset:l,style:A,collapsed:d,segmentId:u,startNodePosition:f,endNodePosition:h,segmentPage:m}=e,g=o.getSelfOrHeaderFooterModel(u).getBody();if(g==null)return;const p=(E=g.dataStream.length)!=null?E:Number.POSITIVE_INFINITY,S=(T=o.getCustomRanges())!=null?T:[];if(t===s.Direction.LEFT||t===s.Direction.RIGHT){let v;if(!e.collapsed||n.length>1){let B=Number.POSITIVE_INFINITY,w=Number.NEGATIVE_INFINITY;for(const x of n)B=Math.min(B,x.startOffset),w=Math.max(w,x.endOffset);v=t===s.Direction.LEFT?B:w}else{const B=a.findNodeByCharIndex(c-1,u,m),w=a.findNodeByCharIndex(c,u,m),x=a.findNodeByCharIndex(c+1,u,m);t===s.Direction.LEFT?v=Math.max(0,c-((O=B==null?void 0:B.count)!=null?O:1)):v=Math.min(p-2,l+w.count+((x==null?void 0:x.streamType)===s.DataStreamTreeTokenType.SECTION_BREAK?1:0))}const b=[s.DataStreamTreeTokenType.TABLE_START,s.DataStreamTreeTokenType.TABLE_END,s.DataStreamTreeTokenType.TABLE_ROW_START,s.DataStreamTreeTokenType.TABLE_ROW_END,s.DataStreamTreeTokenType.TABLE_CELL_START,s.DataStreamTreeTokenType.TABLE_CELL_END,s.DataStreamTreeTokenType.SECTION_BREAK];if(t===s.Direction.LEFT)for(;b.includes(g.dataStream[v]);)v--;else for(;b.includes(g.dataStream[v]);)v++;S.filter(B=>B.wholeEntity&&B.startIndex<v&&B.endIndex>=v).forEach(B=>{t===s.Direction.LEFT?v=Math.min(B.startIndex,v):v=Math.max(B.endIndex+1,v)}),this._textSelectionManagerService.replaceTextRanges([{startOffset:Math.max(0,v),endOffset:Math.max(0,v),style:A}],!1),this._scrollToFocusNodePosition(o.getUnitId(),v)}else{const v=a.findNodeByCharIndex(c,u,m),b=a.findNodeByCharIndex(l,u,m),_=r.document.getOffsetConfig(),B=this._getTopOrBottomPosition(a,t===s.Direction.UP||d?v:b,t===s.Direction.UP||d?f:h,t===s.Direction.DOWN);if(B==null){let x;d?x=t===s.Direction.UP?0:p-2:x=t===s.Direction.UP?c:l,this._textSelectionManagerService.replaceTextRanges([{startOffset:Math.max(0,x),endOffset:Math.max(0,x),style:A}],!1);return}const w=new De(_,a).getRangePointData(B,B).cursorList[0];this._textSelectionManagerService.replaceTextRanges([{...w,style:A}],!1),this._scrollToFocusNodePosition(o.getUnitId(),w.endOffset)}}_getTopOrBottomPosition(t,e,n,o,a=!1){if(e==null||n==null)return;const r=this._getGlyphLeftOffsetInLine(e),c=this._getNextOrPrevLine(e,o,a);if(c==null)return;const l=this._matchPositionByLeftOffset(t,c,r,n);if(l!=null)return{...l,isBack:!0}}_getGlyphLeftOffsetInLine(t){const e=t.parent;if(e==null)return Number.NEGATIVE_INFINITY;const n=e.left,{left:o}=t;return n+o}_matchPositionByLeftOffset(t,e,n,o){const a={distance:Number.POSITIVE_INFINITY};for(const c of e.divides){const l=c.left;for(const A of c.glyphGroup){if(A.streamType===s.DataStreamTreeTokenType.SECTION_BREAK)continue;const{left:d}=A,u=l+d,f=Math.abs(n-u);f<a.distance&&(a.glyph=A,a.distance=f)}}if(a.glyph==null)return;const{segmentPage:r}=o;return t.findPositionByGlyph(a.glyph,r)}_getNextOrPrevLine(t,e,n=!1){var g,p,S,I,E,T,O,v,b,_,B,w;const o=t.parent,a=o==null?void 0:o.parent,r=a==null?void 0:a.parent,c=r==null?void 0:r.parent,l=c==null?void 0:c.parent;if(o==null||a==null||r==null||c==null||l==null)return;const A=r.lines.indexOf(a);if(A===-1)return;let d;if(l.type===M.DocumentSkeletonPageType.CELL&&n){const x=Qs(l,e);if(x)return x}if(e===!0){d=r.lines[A+1];const x=Fl(a,l);if(x){const U=Ll(x);U&&(d=U)}}else{d=r.lines[A-1];const x=Hl(a,l);if(x){const U=Ql(x);U&&(d=U)}}if(d!=null)return d;const u=c.columns.indexOf(r);if(u===-1)return;if(e===!0)d=(g=c.columns[u+1])==null?void 0:g.lines[0];else{const x=(S=(p=c.columns)==null?void 0:p[u-1])==null?void 0:S.lines;d=x==null?void 0:x[x.length-1]}if(d!=null)return d;const f=l.sections.indexOf(c);if(f===-1)return;if(e===!0)d=(E=(I=l.sections[f-1])==null?void 0:I.columns[0])==null?void 0:E.lines[0];else{const x=(O=(T=l.sections)==null?void 0:T[f-1])==null?void 0:O.columns,U=x==null?void 0:x[x.length-1],L=U==null?void 0:U.lines;d=L==null?void 0:L[L.length-1]}if(d!=null)return d;if(l.type===M.DocumentSkeletonPageType.CELL)return Qs(l,e);const h=l.parent;if(h==null)return;const m=h.pages.indexOf(l);if(m!==-1){if(e===!0)d=(_=(b=(v=h.pages[m+1])==null?void 0:v.sections[0])==null?void 0:b.columns[0])==null?void 0:_.lines[0];else{const x=(B=h.pages[m-1])==null?void 0:B.sections;if(x==null)return;const U=(w=x[x.length-1])==null?void 0:w.columns,L=U[U.length-1],F=L==null?void 0:L.lines;d=F[F.length-1]}if(d!=null)return d}}_scrollToFocusNodePosition(t,e){var o;const n=(o=this._renderManagerService.getRenderById(t))==null?void 0:o.with(C.DocBackScrollRenderController);n!=null&&n.scrollToRange({startOffset:e,endOffset:e,collapsed:!0})}_getDocObject(){return co(this._univerInstanceService,this._renderManagerService)}};Nn=zl([_n(0,s.IUniverInstanceService),_n(1,M.IRenderManagerService),_n(2,s.Inject(D.DocSelectionManagerService)),_n(3,s.ICommandService)],Nn);function Qs(i,t){var n,o;let e=null;if(t===!0){const a=ws(i);if(a)e=kl(a);else{const r=(n=i.parent)==null?void 0:n.parent,{lineAfterTable:c}=Ps(r);c&&(e=c)}}else{const a=Ls(i);if(a)e=Vl(a);else{const r=(o=i.parent)==null?void 0:o.parent,{lineBeforeTable:c}=Ps(r);c&&(e=c)}}return e}const it={create:"univer-create",createItem:"univer-create-item",createLabel:"univer-create-label",createInput:"univer-create-input"},Gl=({handleRowColChange:i,tableCreateParams:t})=>{const e=s.useDependency(s.LocaleService),[n,o]=Q.useState(3),[a,r]=Q.useState(5);function c(l,A){o(l),r(A),i(l,A)}return Q.useEffect(()=>{o(t.rowCount),r(t.colCount)},[t]),P.jsxs("div",{className:it.create,children:[P.jsxs("div",{className:it.createItem,children:[P.jsx("span",{className:it.createLabel,children:e.t("toolbar.table.rowCount")}),P.jsx(se.InputNumber,{min:1,max:20,precision:0,value:n,onChange:l=>{c(l,a)},className:it.createInput})]}),P.jsxs("div",{className:it.createItem,children:[P.jsx("span",{className:it.createLabel,children:e.t("toolbar.table.colCount")}),P.jsx(se.InputNumber,{min:1,max:20,precision:0,value:a,onChange:l=>{c(n,l)},className:it.createInput})]})]})};var Yl=Object.defineProperty,Xl=Object.getOwnPropertyDescriptor,Kl=(i,t,e,n)=>{for(var o=n>1?void 0:n?Xl(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Yl(t,e,o),o},Fs=(i,t)=>(e,n)=>t(e,n,i);let Pn=class extends s.Disposable{constructor(i,t){super(),this._commandService=i,this._componentManager=t,this._initialize()}_initialize(){this._init(),this._registerCommands(),this._initCustomComponents()}_registerCommands(){[On].forEach(i=>this.disposeWithMe(this._commandService.registerCommand(i)))}_initCustomComponents(){const i=this._componentManager;this.disposeWithMe(i.register(ys,Gl))}_init(){}};Pn=Kl([Fs(0,s.ICommandService),Fs(1,s.Inject(y.ComponentManager))],Pn);const Yi=4;var Jl=Object.defineProperty,Zl=Object.getOwnPropertyDescriptor,ql=(i,t,e,n)=>{for(var o=n>1?void 0:n?Zl(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Jl(t,e,o),o},Un=(i,t)=>(e,n)=>t(e,n,i);function Hs(i,t){const e=ks(i.left,i.top,t),n=ks(i.right,i.bottom,t);return{left:e.x,top:e.y,right:n.x,bottom:n.y}}function ks(i,t,e){const{scaleX:n,scaleY:o}=e.getAncestorScale(),a=e.getViewport(be.VIEW_MAIN);if(!a)return{x:i,y:t};const{viewportScrollX:r,viewportScrollY:c}=a,l=(i-r)*n,A=(t-c)*o;return{x:l,y:A}}function Vs(i,t,e){const{scaleX:n,scaleY:o}=e.getAncestorScale(),a=e.getViewport(be.VIEW_MAIN);if(!a)return{x:i,y:t};const{viewportScrollX:r,viewportScrollY:c}=a,l=i/n+r,A=t/o+c;return{x:l,y:A}}const wn=(i,t)=>{const{scene:e,mainComponent:n,engine:o}=t,a=t.with(D.DocSkeletonManagerService).getSkeleton(),r=a.findNodePositionByCharIndex(i.startOffset,!0,i.segmentId,i.segmentPage),c=a.findNodePositionByCharIndex(i.endOffset,!0,i.segmentId,i.segmentPage),l=n;if(!c||!r)return;const A=l.getOffsetConfig(),{docsLeft:d,docsTop:u}=A,f=o.getCanvasElement(),h=f.getBoundingClientRect(),m=M.pxToNum(f.style.width),{top:g,left:p,width:S}=h,I=S/m,{scaleX:E,scaleY:T}=e.getAncestorScale(),O=new De(A,a),{borderBoxPointGroup:v}=O.getRangePointData(r,c);return Zt(v).map(B=>Hs(B,e)).map(B=>({left:(B.left+d*E)*I+p,right:(B.right+d*E)*I+p,top:(B.top+u*T)*I+g,bottom:(B.bottom+u*T)*I+g}))};C.DocCanvasPopManagerService=class extends s.Disposable{constructor(t,e,n,o){super(),this._globalPopupManagerService=t,this._renderManagerService=e,this._univerInstanceService=n,this._commandService=o}_createObjectPositionObserver(t,e){const n=()=>{const{scene:l,engine:A}=e,{left:d,top:u,width:f,height:h}=t,m={left:d,right:d+f,top:u,bottom:u+h},g=A.getCanvasElement(),p=g.getBoundingClientRect(),S=M.pxToNum(g.style.width),I=Hs(m,l),{top:E,left:T,width:O}=p,v=O/S;return{left:I.left*v+T,right:I.right*v+T,top:I.top*v+E,bottom:I.bottom*v+E}},o=n(),a=new N.BehaviorSubject(o),r=new s.DisposableCollection;r.add(this._commandService.onCommandExecuted(l=>{if(l.id===ve.id||l.id===D.RichTextEditingMutation.id){const A=n();A&&a.next(A)}}));const c=e.scene.getViewport(be.VIEW_MAIN);return c&&r.add(c.onScrollAfter$.subscribeEvent(()=>{a.next(n())})),{position:o,position$:a,disposable:r}}_createRangePositionObserver(t,e){var c;const n=(c=wn(t,e))!=null?c:[],o=new N.BehaviorSubject(n),a=new s.DisposableCollection;a.add(this._commandService.onCommandExecuted(l=>{if((l.id===ve.id||l.id===D.RichTextEditingMutation.id)&&l.params.unitId===e.unitId){const d=wn(t,e);d&&o.next(d)}}));const r=e.scene.getViewport(be.VIEW_MAIN);return r&&a.add(r.onScrollAfter$.subscribeEvent(()=>{const l=wn(t,e);l&&o.next(l)})),{positions:n,positions$:o,disposable:a}}attachPopupToObject(t,e,n){const o=this._renderManagerService.getRenderById(n);if(!o)throw new Error(`Current render not found, unitId: ${n}`);const{position:a,position$:r,disposable:c}=this._createObjectPositionObserver(t,o),l=this._globalPopupManagerService.addPopup({...e,unitId:n,subUnitId:"default",anchorRect:a,anchorRect$:r,canvasElement:o.engine.getCanvasElement()});return{dispose:()=>{this._globalPopupManagerService.removePopup(l),r.complete(),c.dispose()}}}attachPopupToRange(t,e,n){if(!this._univerInstanceService.getUnit(n))throw new Error(`Document not found, unitId: ${n}`);const{direction:a="top",multipleDirection:r}=e,c=this._renderManagerService.getRenderById(n);if(!c)throw new Error(`Current render not found, unitId: ${n}`);const{positions:l,positions$:A,disposable:d}=this._createRangePositionObserver(t,c),u=A.pipe(N.map(h=>a.includes("top")?h[0]:h[h.length-1])),f=this._globalPopupManagerService.addPopup({...e,unitId:n,subUnitId:"default",anchorRect:a.includes("top")?l[0]:l[l.length-1],anchorRect$:u,excludeRects:l,excludeRects$:A,direction:a.includes("top")||a.includes("bottom")?l.length>1?r:a:"bottom",canvasElement:c.engine.getCanvasElement()});return{dispose:()=>{this._globalPopupManagerService.removePopup(f),A.complete(),d.dispose()},canDispose:()=>this._globalPopupManagerService.activePopupId!==f}}},C.DocCanvasPopManagerService=ql([Un(0,s.Inject(y.ICanvasPopupService)),Un(1,M.IRenderManagerService),Un(2,s.IUniverInstanceService),Un(3,s.ICommandService)],C.DocCanvasPopManagerService);var $l=Object.defineProperty,eA=Object.getOwnPropertyDescriptor,tA=(i,t,e,n)=>{for(var o=n>1?void 0:n?eA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&$l(t,e,o),o},nA=(i,t)=>(e,n)=>t(e,n,i);const iA=(i,t,e,n)=>{var f,h,m,g,p;const o=e.findNodePositionByCharIndex(i.startOffset,!0,i.segmentId,n),a=e.getSkeletonData();let r=i.endOffset;if(i.segmentId){const S=(p=Array.from((h=(f=a==null?void 0:a.skeFooters.get(i.segmentId))==null?void 0:f.values())!=null?h:[])[0])!=null?p:Array.from((g=(m=a==null?void 0:a.skeHeaders.get(i.segmentId))==null?void 0:m.values())!=null?g:[])[0];S&&(r=Math.min(S.ed,r))}const c=e.findNodePositionByCharIndex(r,!0,i.segmentId,n);if(!c||!o)return;const l=t.getOffsetConfig(),A=new De(l,e),{borderBoxPointGroup:d}=A.getRangePointData(o,c);return Zt(d).map(S=>({top:S.top+l.docsTop-Yi,bottom:S.bottom+l.docsTop+Yi,left:S.left+l.docsLeft,right:S.right+l.docsLeft}))},oA=(i,t,e,n=-1)=>{const o=e.findPositionByGlyph(i,n);if(!o)return;const a=t.getOffsetConfig(),r={...o,isBack:!0},c=new De(a,e),{borderBoxPointGroup:l}=c.getRangePointData(r,r),d=Zt(l)[0];return{top:d.top+a.docsTop,bottom:d.bottom+a.docsTop,left:d.left+a.docsLeft,right:d.left+a.docsLeft+i.width}};C.DocEventManagerService=class extends s.Disposable{constructor(e,n){super();R(this,"_hoverCustomRanges$",new N.BehaviorSubject([]));R(this,"hoverCustomRanges$",this._hoverCustomRanges$.pipe(N.distinctUntilChanged((e,n)=>e.length===n.length&&e.every((o,a)=>n[a].range.rangeId===o.range.rangeId&&n[a].segmentId===o.segmentId&&n[a].segmentPageIndex===o.segmentPageIndex&&n[a].range.startIndex===o.range.startIndex))));R(this,"_clickCustomRanges$",new N.Subject);R(this,"clickCustomRanges$",this._clickCustomRanges$.asObservable());R(this,"_hoverBullet$",new N.Subject);R(this,"hoverBullet$",this._hoverBullet$.pipe(N.distinctUntilChanged((e,n)=>(e==null?void 0:e.paragraph.startIndex)===(n==null?void 0:n.paragraph.startIndex)&&(e==null?void 0:e.segmentId)===(n==null?void 0:n.segmentId)&&(e==null?void 0:e.segmentPageIndex)===(n==null?void 0:n.segmentPageIndex))));R(this,"_clickBullet$",new N.Subject);R(this,"clickBullets$",this._clickBullet$.asObservable());R(this,"_customRangeDirty",!0);R(this,"_bulletDirty",!0);R(this,"_customRangeBounds",[]);R(this,"_bulletBounds",[]);this._context=e,this._docSkeletonManagerService=n,this._initResetDirty(),this._initEvents(),this._initPointer()}get _skeleton(){return this._docSkeletonManagerService.getSkeleton()}get _documents(){return this._context.mainComponent}dispose(){this._hoverCustomRanges$.complete(),this._clickCustomRanges$.complete(),super.dispose()}_initPointer(){let e=M.CURSOR_TYPE.TEXT;this.disposeWithMe(this.hoverCustomRanges$.subscribe(n=>{n.length?(e=this._context.scene.getCursor(),this._context.scene.setCursor(M.CURSOR_TYPE.POINTER)):this._context.scene.setCursor(e)}))}_initResetDirty(){this.disposeWithMe(this._skeleton.dirty$.subscribe(()=>{this._customRangeDirty=!0,this._bulletDirty=!0})),this.disposeWithMe(s.fromEventSubject(this._context.engine.onTransformChange$).pipe(N.filter(e=>e.type===M.TRANSFORM_CHANGE_OBSERVABLE_TYPE.resize)).subscribe(()=>{this._customRangeDirty=!0,this._bulletDirty=!0}))}_initEvents(){this.disposeWithMe(s.fromEventSubject(this._context.scene.onPointerMove$).pipe(N.throttleTime(30)).subscribe(o=>{this._hoverCustomRanges$.next(this._calcActiveRanges(o)),this._hoverBullet$.next(this._calcActiveBullet(o))})),this.disposeWithMe(this._context.scene.onPointerEnter$.subscribeEvent(()=>{this._hoverBullet$.next(null),this._hoverCustomRanges$.next([])}));const e=s.fromEventSubject(this._context.mainComponent.onPointerDown$),n=s.fromEventSubject(this._context.scene.onPointerUp$);this.disposeWithMe(e.pipe(N.switchMap(o=>n.pipe(N.take(1),N.map(a=>({down:o,up:a})))),N.filter(({down:o,up:a})=>o.target===a.target&&a.timeStamp-o.timeStamp<300)).subscribe(({down:o})=>{if(o.button===2)return;const a=this._calcActiveRanges(o);a.length&&this._clickCustomRanges$.next(a.pop());const r=this._calcActiveBullet(o);r&&this._clickBullet$.next(r)}))}_buildCustomRangeBoundsBySegment(e,n=-1){var r,c,l;const o=(l=(c=(r=this._context.unit.getSelfOrHeaderFooterModel(e))==null?void 0:r.getBody())==null?void 0:c.customRanges)!=null?l:[],a=[];return o.forEach(A=>{const d={startOffset:A.startIndex,endOffset:A.endIndex+1,collapsed:!1,segmentId:e},u=iA(d,this._documents,this._skeleton,n);if(!u)return null;a.push({customRange:A,rects:u,segmentId:e,segmentPageIndex:n})}),a}_buildCustomRangeBounds(){var n;if(!this._customRangeDirty)return;this._customRangeDirty=!1;const e=[];e.push(...this._buildCustomRangeBoundsBySegment()),(n=this._skeleton.getSkeletonData())==null||n.pages.forEach((o,a)=>{o.headerId&&e.push(...this._buildCustomRangeBoundsBySegment(o.headerId,a)),o.footerId&&e.push(...this._buildCustomRangeBoundsBySegment(o.footerId,a))}),this._customRangeBounds=e}_calcActiveRanges(e){this._buildCustomRangeBounds();const{offsetX:n,offsetY:o}=e,{x:a,y:r}=Vs(n,o,this._context.scene);return this._customRangeBounds.filter(l=>l.rects.some(A=>{const{left:d,right:u,top:f,bottom:h}=A;return a>=d&&a<=u&&r>=f&&r<=h})).map(l=>({segmentId:l.segmentId,range:l.customRange,segmentPageIndex:l.segmentPageIndex,rects:l.rects}))}_buildBulletBoundsBySegment(e,n=-1){var A,d,u,f,h;const o=(A=this._context.unit.getSelfOrHeaderFooterModel(e))==null?void 0:A.getBody(),a=((d=o==null?void 0:o.paragraphs)!=null?d:[]).filter(m=>m.bullet&&m.bullet.listType.indexOf("CHECK_LIST")===0),r=[],c=this._skeleton.getSkeletonData();if(!c)return r;const l=m=>{var g,p,S;for(const I of m){const E=[...I.sections];if(I.skeTables){const T=Array.from(I.skeTables.values());E.push(...T.map(O=>O.rows.map(v=>v.cells.map(b=>b.sections))).flat(4))}for(const T of E)for(const O of T.columns)for(const v of O.lines)if(v.paragraphStart){const b=a.find(_=>_.startIndex===v.paragraphIndex);if(b){const _=v,B=(S=(p=(g=_==null?void 0:_.divides)==null?void 0:g[0])==null?void 0:p.glyphGroup)==null?void 0:S[0];if(!B)continue;const w=oA(B,this._documents,this._skeleton,n);if(!w)continue;r.push({rect:w,segmentId:e,segmentPageIndex:n,paragraph:b})}}}return r};if(e){const m=(h=(u=c.skeFooters.get(e))==null?void 0:u.values())!=null?h:(f=c.skeHeaders.get(e))==null?void 0:f.values();return m?l(Array.from(m)):r}return l(c.pages)}_buildBulletBounds(){var e;this._bulletDirty&&(this._bulletDirty=!1,this._bulletBounds=[],this._bulletBounds.push(...this._buildBulletBoundsBySegment()),(e=this._skeleton.getSkeletonData())==null||e.pages.forEach((n,o)=>{n.headerId&&this._bulletBounds.push(...this._buildBulletBoundsBySegment(n.headerId,o)),n.footerId&&this._bulletBounds.push(...this._buildBulletBoundsBySegment(n.footerId,o))}))}_calcActiveBullet(e){this._buildBulletBounds();const{offsetX:n,offsetY:o}=e,{x:a,y:r}=Vs(n,o,this._context.scene);return this._bulletBounds.find(l=>{const{left:A,right:d,top:u,bottom:f}=l.rect;return a>=A&&a<=d&&r>=u&&r<=f})}},C.DocEventManagerService=tA([nA(1,s.Inject(D.DocSkeletonManagerService))],C.DocEventManagerService);var sA=Object.defineProperty,aA=Object.getOwnPropertyDescriptor,rA=(i,t,e,n)=>{for(var o=n>1?void 0:n?aA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&sA(t,e,o),o},Ln=(i,t)=>(e,n)=>t(e,n,i);let Xi=class extends s.Disposable{constructor(i,t,e,n,o){super(),this._context=i,this._docSkeletonManagerService=t,this._commandService=e,this._docEventManagerService=n,this._textSelectionManagerService=o,this._initPointerDownObserver(),this._initHoverCursor()}_initPointerDownObserver(){this._docEventManagerService.clickBullets$.subscribe(i=>{const t=this._textSelectionManagerService.getTextRanges();this._commandService.executeCommand(rn.id,{index:i.paragraph.startIndex,segmentId:i.segmentId,textRanges:t})})}_initHoverCursor(){this.disposeWithMe(this._docEventManagerService.hoverBullet$.subscribe(i=>{i?this._context.mainComponent.setCursor(M.CURSOR_TYPE.POINTER):this._context.mainComponent.setCursor(M.CURSOR_TYPE.TEXT)}))}_getTransformCoordForDocumentOffset(i,t,e,n){const{documentTransform:o}=i.getOffsetConfig(),a=t.transformVector2SceneCoord(M.Vector2.FromArray([e,n]));if(a)return o.clone().invert().applyPoint(a)}};Xi=rA([Ln(1,s.Inject(D.DocSkeletonManagerService)),Ln(2,s.ICommandService),Ln(3,s.Inject(C.DocEventManagerService)),Ln(4,s.Inject(D.DocSelectionManagerService))],Xi);var cA=Object.defineProperty,lA=Object.getOwnPropertyDescriptor,AA=(i,t,e,n)=>{for(var o=n>1?void 0:n?lA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&cA(t,e,o),o},jt=(i,t)=>(e,n)=>t(e,n,i);let Qn=class extends s.RxDisposable{constructor(i,t,e,n,o,a){super(),this._context=i,this._commandService=t,this._docClipboardService=e,this._docSelectionRenderService=n,this._contextService=o,this._editorService=a,this._init()}_init(){this._initLegacyPasteCommand()}_initLegacyPasteCommand(){var i;(i=this._docSelectionRenderService)==null||i.onPaste$.pipe(N.takeUntil(this.dispose$)).subscribe(t=>{var l,A,d;if(!pn(this._contextService))return;t.event.preventDefault();const e=t.event;let n=(l=e.clipboardData)==null?void 0:l.getData(y.HTML_CLIPBOARD_MIME_TYPE);const o=(A=e.clipboardData)==null?void 0:A.getData(y.PLAIN_TEXT_CLIPBOARD_MIME_TYPE),a=[y.FILE__BMP_CLIPBOARD_MIME_TYPE,y.FILE__JPEG_CLIPBOARD_MIME_TYPE,y.FILE__WEBP_CLIPBOARD_MIME_TYPE,y.FILE_PNG_CLIPBOARD_MIME_TYPE],r=[...((d=e.clipboardData)==null?void 0:d.items)||[]].filter(u=>a.includes(u.type)).map(u=>u.getAsFile()).filter(u=>!!u);this._editorService.getEditor(this._context.unitId)&&(n!=null?n:"").indexOf("</table>")>-1&&(n=""),this._docClipboardService.legacyPaste({html:n,text:o,files:r})})}};Qn=AA([jt(1,s.ICommandService),jt(2,St),jt(3,s.Inject(C.DocSelectionRenderService)),jt(4,s.IContextService),jt(5,me)],Qn);var dA=Object.defineProperty,uA=Object.getOwnPropertyDescriptor,hA=(i,t,e,n)=>{for(var o=n>1?void 0:n?uA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&dA(t,e,o),o},js=(i,t)=>(e,n)=>t(e,n,i);const gA=[s.DEFAULT_EMPTY_DOCUMENT_VALUE,s.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,s.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,s.DOCS_ZEN_EDITOR_UNIT_ID_KEY];let Ki=class extends s.Disposable{constructor(i,t,e){super(),this._context=i,this._contextMenuService=t,this._commandService=e,gA.includes(this._context.unitId)||(this._initPointerDown(),this._initEditChange())}_initPointerDown(){var e,n;const t=((n=(e=this._context)==null?void 0:e.mainComponent)==null?void 0:n.onPointerDown$).subscribeEvent(o=>{o.button===2&&this._contextMenuService.triggerContextMenu(o,y.ContextMenuPosition.MAIN_AREA)});this.disposeWithMe(t)}_initEditChange(){this.disposeWithMe(this._commandService.onCommandExecuted(i=>{i.id===D.RichTextEditingMutation.id&&this._contextMenuService.visible&&this._contextMenuService.hideContextMenu()}))}};Ki=hA([js(1,y.IContextMenuService),js(2,s.ICommandService)],Ki);var fA=Object.defineProperty,mA=Object.getOwnPropertyDescriptor,pA=(i,t,e,n)=>{for(var o=n>1?void 0:n?mA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&fA(t,e,o),o},Ct=(i,t)=>(e,n)=>t(e,n,i);let Fn=class extends s.Disposable{constructor(t,e,n,o,a,r,c){super();R(this,"_initialEditors",new Set);this._context=t,this._univerInstanceService=e,this._editorService=n,this._commandService=o,this._docSelectionRenderService=a,this._docSkeletonManagerService=r,this._renderManagerService=c,this._initialize()}_initialize(){this.disposeWithMe(this._editorService.resize$.subscribe(t=>{t===this._context.unitId&&this._resize(t)})),this._editorService.getAllEditor().forEach(t=>{const e=t.getEditorId();e===this._context.unitId&&(this._initialEditors.has(e)||(this._initialEditors.add(e),this._resize(e)))}),this._commandExecutedListener(),this._initialSetValue(),this._initialBlur(),this._initialFocus(),this._initialValueChange()}_resize(t){var E,T;if(t==null)return;const e=this._editorService.getEditor(t);if((e==null?void 0:e.cancelDefaultResizeListener)===!0)return;const n=this._univerInstanceService.getUniverDocInstance(t);if(!n)return;const o=this._docSkeletonManagerService.getSkeleton();if(e==null||e.render==null||o==null||n==null)return;o.calculate();const{marginTop:a=0,marginBottom:r=0,marginLeft:c=0,marginRight:l=0}=n.getSnapshot().documentStyle,{scene:A,mainComponent:d}=e.render;let{actualHeight:u,actualWidth:f}=o.getActualSize();u+=a+r,f+=c+l;const{width:h,height:m}=e.getBoundingClientRect(),g=A.getViewport(be.VIEW_MAIN);let p=g==null?void 0:g.getScrollBar();const S=Math.max(f,h),I=Math.max(u,m);A.transformByState({width:S,height:I}),d==null||d.resize(S,I),e.isSingle()?f>h?p==null?g&&new M.ScrollBar(g,{barSize:8,enableVertical:!1}):g==null||g.resetCanvasSizeAndUpdateScroll():(p=null,g==null||g.scrollToBarPos({x:0,y:0}),(T=g==null?void 0:g.getScrollBar())==null||T.dispose()):u>m?p==null?g&&new M.ScrollBar(g,{enableHorizontal:!1,barSize:8}):g==null||g.resetCanvasSizeAndUpdateScroll():(p=null,g==null||g.scrollToBarPos({x:0,y:0}),(E=g==null?void 0:g.getScrollBar())==null||E.dispose())}_initialSetValue(){this.disposeWithMe(this._editorService.setValue$.subscribe(t=>{t.editorUnitId===this._context.unitId&&this._commandService.executeCommand(Kn.id,{unitId:t.editorUnitId,body:t.body,segmentId:null})}))}_initialBlur(){this.disposeWithMe(this._editorService.blur$.subscribe(()=>{this._docSelectionRenderService.blur()})),this.disposeWithMe(this._docSelectionRenderService.onBlur$.subscribe(()=>{const{unitId:t}=this._context,e=this._editorService.getEditor(t),n=this._editorService.getFocusEditor();e==null||e.isSheetEditor()||n&&n.getEditorId()===t||t.includes("range_selector")||t.includes("embedding_formula_editor")||this._editorService.blur()}))}_initialFocus(){this.disposeWithMe(this._editorService.focus$.subscribe(n=>{var o;((o=this._editorService.getFocusEditor())==null?void 0:o.getEditorId())===this._context.unitId&&(this._docSelectionRenderService.removeAllRanges(),this._docSelectionRenderService.addDocRanges([n]))}));const t=["univer-formula-search","univer-formula-help","formula-help-decorator","univer-formula-help-param"];this.disposeWithMe(N.fromEvent(window,"mousedown").subscribe(n=>{const a=n.target.classList[0]||"";if(s.checkForSubstrings(a,t)){this._editorService.changeSpreadsheetFocusState(!0),n.stopPropagation();return}this._editorService.changeSpreadsheetFocusState(!1)})),this._univerInstanceService.getAllUnitsForType(s.UniverInstanceType.UNIVER_SHEET).forEach(n=>{const o=n.getUnitId(),a=this._renderManagerService.getRenderById(o),r=a==null?void 0:a.engine.getCanvas().getCanvasEle();r!=null&&N.fromEvent(r,"mousedown").subscribe(c=>{this._editorService.changeSpreadsheetFocusState(!0),c.stopPropagation()})})}_initialValueChange(){this.disposeWithMe(this._docSelectionRenderService.onCompositionupdate$.subscribe(this._valueChange.bind(this))),this.disposeWithMe(this._docSelectionRenderService.onInput$.subscribe(this._valueChange.bind(this))),this.disposeWithMe(this._docSelectionRenderService.onKeydown$.subscribe(this._valueChange.bind(this))),this.disposeWithMe(this._docSelectionRenderService.onPaste$.subscribe(this._valueChange.bind(this)))}_valueChange(){const{unitId:t}=this._context,e=this._editorService.getEditor(t);e==null||e.isSheetEditor()||this._editorService.refreshValueChange(t)}_commandExecutedListener(){const t=[D.RichTextEditingMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(t.includes(e.id)){const n=e.params,{unitId:o}=n;if(this._editorService.isSheetEditor(o)||o!==this._context.unitId)return;const a=this._editorService.getEditor(o);a&&!a.params.scrollBar&&(this._resize(o),this._valueChange())}}))}};Fn=pA([Ct(1,s.IUniverInstanceService),Ct(2,me),Ct(3,s.ICommandService),Ct(4,s.Inject(C.DocSelectionRenderService)),Ct(5,s.Inject(D.DocSkeletonManagerService)),Ct(6,M.IRenderManagerService)],Fn);var SA=Object.defineProperty,IA=Object.getOwnPropertyDescriptor,EA=(i,t,e,n)=>{for(var o=n>1?void 0:n?IA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&SA(t,e,o),o},Hn=(i,t)=>(e,n)=>t(e,n,i);let Ji=class extends s.Disposable{constructor(t,e,n,o,a){super();R(this,"_previousIMEContent","");R(this,"_isCompositionStart",!0);R(this,"_onStartSubscription");R(this,"_onUpdateSubscription");R(this,"_onEndSubscription");this._context=t,this._docSelectionRenderService=e,this._docImeInputManagerService=n,this._docSkeletonManagerService=o,this._commandService=a,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._docSelectionRenderService.onCompositionstart$.subscribe(t=>{if(t==null)return;this._resetIME();const{activeRange:e}=t;e!=null&&this._docImeInputManagerService.setActiveRange(s.Tools.deepClone(e))})}_initialOnCompositionUpdate(){this._onUpdateSubscription=this._docSelectionRenderService.onCompositionupdate$.subscribe(t=>{this._updateContent(t,!0)})}_initialOnCompositionend(){this._onEndSubscription=this._docSelectionRenderService.onCompositionend$.subscribe(t=>{this._updateContent(t,!1)})}async _updateContent(t,e){if(t==null)return;const n=this._context.unitId,o=this._docSkeletonManagerService.getSkeleton(),{event:a,activeRange:r}=t;if(o==null||r==null)return;const l=a.data;l===this._previousIMEContent&&e||(await this._commandService.executeCommand(ji.id,{unitId:n,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._docImeInputManagerService.clearUndoRedoMutationParamsCache(),this._docImeInputManagerService.setActiveRange(null)}};Ji=EA([Hn(1,s.Inject(C.DocSelectionRenderService)),Hn(2,s.Inject(Vt)),Hn(3,s.Inject(D.DocSkeletonManagerService)),Hn(4,s.ICommandService)],Ji);var vA=Object.defineProperty,CA=Object.getOwnPropertyDescriptor,TA=(i,t,e,n)=>{for(var o=n>1?void 0:n?CA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&vA(t,e,o),o},kn=(i,t)=>(e,n)=>t(e,n,i);let Zi=class extends s.Disposable{constructor(t,e,n,o,a){super();R(this,"_onInputSubscription");this._context=t,this._docSelectionRenderService=e,this._docSkeletonManagerService=n,this._commandService=o,this._docMenuStyleService=a,this._init()}dispose(){var t;super.dispose(),(t=this._onInputSubscription)==null||t.unsubscribe()}_init(){this._initialNormalInput()}_initialNormalInput(){this._onInputSubscription=this._docSelectionRenderService.onInput$.subscribe(async t=>{var p,S,I;if(t==null)return;const{unitId:e}=this._context,{event:n,content:o="",activeRange:a}=t,r=n,c=this._docSkeletonManagerService.getSkeleton();if(r.data==null||c==null||a==null)return;const{segmentId:l}=a,d=this._context.unit.getSelfOrHeaderFooterModel(l).getBody(),u=this._docMenuStyleService.getDefaultStyle(),f=this._docMenuStyleService.getStyleCache(),h=zn((p=d==null?void 0:d.customRanges)!=null?p:[],a.endOffset,s.SHEET_EDITOR_UNITS.includes(e)),m=Xt((S=d==null?void 0:d.textRuns)!=null?S:[],a.endOffset,u,f),g=Gn((I=d==null?void 0:d.customDecorations)!=null?I:[],a.endOffset);await this._commandService.executeCommand(hn.id,{unitId:e,body:{dataStream:o,textRuns:m?[{...m,st:0,ed:o.length}]:[],customRanges:h?[{...h,startIndex:0,endIndex:o.length-1}]:[],customDecorations:g.map(E=>({...E,startIndex:0,endIndex:o.length-1}))},range:a,segmentId:l}),o===" "&&await this._commandService.executeCommand(xt.id)})}};Zi=TA([kn(1,s.Inject(C.DocSelectionRenderService)),kn(2,s.Inject(D.DocSkeletonManagerService)),kn(3,s.ICommandService),kn(4,s.Inject(_e))],Zi);class qi extends s.Disposable{constructor(t){super(),this._context=t}calculatePagePosition(){var T,O;const t=Be(this._context),n=(O=(T=this._context.unit.getSettings())==null?void 0:T.zoomRatio)!=null?O:1,{document:o,scene:a,docBackground:r}=t,c=a==null?void 0:a.getParent(),{width:l,height:A,pageMarginLeft:d,pageMarginTop:u}=o;if(c==null||l===Number.POSITIVE_INFINITY||A===Number.POSITIVE_INFINITY)return;const{width:f,height:h}=c;let m=0,g=u,p=0,S=0,I=Number.POSITIVE_INFINITY;f>(l+d*2)*n?(m=f/2-l*n/2,m/=n,p=(f-d*2)/n,I=0):(m=d,p=l+d*2,I=(p-f/n)/2),h>A?S=(h-u*2)/n:S=A+u*2,a.resize(p,S),f<=1&&(m=-1e4,g=-1e4),o.translate(m,g),r.translate(m,g);const E=a.getViewport(be.VIEW_MAIN);return I!==Number.POSITIVE_INFINITY&&E!=null&&E.scrollToViewportPos({viewportScrollX:I}),this}}var bA=Object.defineProperty,yA=Object.getOwnPropertyDescriptor,RA=(i,t,e,n)=>{for(var o=n>1?void 0:n?yA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&bA(t,e,o),o},Ws=(i,t)=>(e,n)=>t(e,n,i);let $i=class extends s.Disposable{constructor(i,t,e){super(),this._context=i,this._docPageLayoutService=t,this._textSelectionManagerService=e;const n=this._context.unitId;if(s.isInternalEditorID(n)&&n!==s.DOCS_ZEN_EDITOR_UNIT_ID_KEY)return this;this._initResize()}_initResize(){this.disposeWithMe(s.fromEventSubject(this._context.engine.onTransformChange$).pipe(N.filter(i=>i.type===M.TRANSFORM_CHANGE_OBSERVABLE_TYPE.resize),N.throttleTime(0,N.animationFrameScheduler)).subscribe(()=>{this._docPageLayoutService.calculatePagePosition(),this._textSelectionManagerService.refreshSelection()}))}};$i=RA([Ws(1,s.Inject(qi)),Ws(2,s.Inject(D.DocSelectionManagerService))],$i);var OA=Object.defineProperty,xA=Object.getOwnPropertyDescriptor,MA=(i,t,e,n)=>{for(var o=n>1?void 0:n?xA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&OA(t,e,o),o},Tt=(i,t)=>(e,n)=>t(e,n,i);let eo=class extends s.Disposable{constructor(t,e,n,o,a,r,c){super();R(this,"_loadedMap",new WeakSet);this._context=t,this._commandService=e,this._editorService=n,this._instanceSrv=o,this._docSelectionRenderService=a,this._docSkeletonManagerService=r,this._docSelectionManagerService=c,this._initialize()}_initialize(){this._init(),this._skeletonListener(),this._commandExecutedListener(),this._refreshListener(),this._syncSelection()}_init(){const{unitId:t}=this._context,e=Be(this._context);e==null||e.document==null||this._loadedMap.has(e.document)||(this._initialMain(t),this._loadedMap.add(e.document))}_refreshListener(){this.disposeWithMe(this._docSelectionManagerService.refreshSelection$.subscribe(t=>{if(t==null)return;const{unitId:e,docRanges:n,isEditing:o,options:a}=t;e===this._context.unitId&&(this._docSelectionRenderService.removeAllRanges(),this._docSelectionRenderService.addDocRanges(n,o,a))}))}_syncSelection(){this.disposeWithMe(this._docSelectionRenderService.textSelectionInner$.subscribe(t=>{t!=null&&this._docSelectionManagerService.__replaceTextRangesWithNoRefresh(t,{unitId:this._context.unitId,subUnitId:this._context.unitId})}))}_initialMain(t){const e=Be(this._context),{document:n,scene:o}=e;this.disposeWithMe(n.onPointerEnter$.subscribeEvent(()=>{this._isEditorReadOnly(t)||(n.cursor=M.CURSOR_TYPE.TEXT)})),this.disposeWithMe(n.onPointerLeave$.subscribeEvent(()=>{n.cursor=M.CURSOR_TYPE.DEFAULT,o.resetCursor()})),this.disposeWithMe(n.onPointerDown$.subscribeEvent((a,r)=>{if(this._isEditorReadOnly(t))return;const c=this._instanceSrv.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);(c==null?void 0:c.getUnitId())!==t&&this._instanceSrv.setCurrentUnitForType(t);const l=this._docSkeletonManagerService.getSkeleton(),{offsetX:A,offsetY:d}=a,u=this._getTransformCoordForDocumentOffset(A,d);if(u!=null){const{pageLayoutType:f=M.PageLayoutType.VERTICAL,pageMarginLeft:h,pageMarginTop:m}=n.getOffsetConfig(),{editArea:g}=l.findEditAreaByCoord(u,f,h,m),p=this._docSkeletonManagerService.getViewModel(),S=p.getEditArea();S!==M.DocumentEditArea.BODY&&g!==M.DocumentEditArea.BODY&&g!==S&&p.setEditArea(g)}if(this._docSelectionRenderService.__onPointDown(a),this._editorService.getEditor(t)){this._setEditorFocus(t);const{offsetX:f,offsetY:h}=a;setTimeout(()=>{t!==this._editorService.getFocusId()&&(this._setEditorFocus(t),this._docSelectionRenderService.setCursorManually(f,h))},0)}a.button!==2&&r.stopPropagation()})),this.disposeWithMe(n.onDblclick$.subscribeEvent(a=>{this._isEditorReadOnly(t)||this._docSelectionRenderService.__handleDblClick(a)})),this.disposeWithMe(n.onTripleClick$.subscribeEvent(a=>{this._isEditorReadOnly(t)||this._docSelectionRenderService.__handleTripleClick(a)}))}_getTransformCoordForDocumentOffset(t,e){const n=Be(this._context),{document:o,scene:a}=n,{documentTransform:r}=o.getOffsetConfig(),c=a.getViewports()[0];if(c==null)return;const l=c.transformVector2SceneCoord(M.Vector2.FromArray([t,e]));return r.clone().invert().applyPoint(l)}_isEditorReadOnly(t){const e=this._editorService.getEditor(t);return e?e.isReadOnly():!1}_setEditorFocus(t){this._editorService.focusStyle(t)}_commandExecutedListener(){const t=[ve.id];this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var n;if(t.includes(e.id)){const o=e.params,{unitId:a}=o,r=(n=this._docSelectionManagerService.__getCurrentSelection())==null?void 0:n.unitId;if(a!==r)return;this._docSelectionManagerService.refreshSelection()}}))}_skeletonListener(){this.disposeWithMe(this._docSkeletonManagerService.currentSkeleton$.subscribe(t=>{if(!t)return;const{unitId:e}=this._context;if(!s.isInternalEditorID(e)){this._docSelectionRenderService.focus();const a=this._context.unit.getSnapshot(),r=Uo(a);this._docSelectionManagerService.replaceDocRanges([{startOffset:r,endOffset:r}],{unitId:e,subUnitId:e},!1)}}))}};eo=MA([Tt(1,s.ICommandService),Tt(2,me),Tt(3,s.IUniverInstanceService),Tt(4,s.Inject(C.DocSelectionRenderService)),Tt(5,s.Inject(D.DocSkeletonManagerService)),Tt(6,s.Inject(D.DocSelectionManagerService))],eo);var BA=Object.defineProperty,DA=Object.getOwnPropertyDescriptor,_A=(i,t,e,n)=>{for(var o=n>1?void 0:n?DA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&BA(t,e,o),o},ot=(i,t)=>(e,n)=>t(e,n,i);let to=class extends s.Disposable{constructor(i,t,e,n,o,a,r,c){super(),this._context=i,this._contextService=t,this._docSkeletonManagerService=e,this._univerInstanceService=n,this._commandService=o,this._textSelectionManagerService=a,this._editorService=r,this._docPageLayoutService=c,this._initSkeletonListener(),this._initCommandExecutedListener(),this._initRenderRefresher(),setTimeout(()=>this.updateViewZoom(1,!0),20)}_initRenderRefresher(){this._docSkeletonManagerService.currentSkeleton$.subscribe(i=>{if(i==null)return;const{unitId:t,scene:e}=this._context;this._editorService.isEditor(t)||this.disposeWithMe(e.onMouseWheel$.subscribeEvent(n=>{if(!n.ctrlKey||!this._contextService.getContextValue(s.FOCUSING_DOC))return;const o=this._univerInstanceService.getCurrentUniverDocInstance();if(!o)return;const{documentFlavor:a}=o.getSnapshot().documentStyle;if(a===s.DocumentFlavor.MODERN)return;const r=Math.abs(n.deltaX);let c=r<40?.2:r<80?.4:.2;c*=n.deltaY>0?-1:1,e.scaleX<1&&(c/=2);const l=o.zoomRatio;let A=+Number.parseFloat(`${l+c}`).toFixed(1);A=A>=4?4:A<=.1?.1:A,this._commandService.executeCommand(Mn.id,{zoomRatio:A,unitId:o.getUnitId()}),n.preventDefault()}))})}_initSkeletonListener(){this.disposeWithMe(this._docSkeletonManagerService.currentSkeleton$.subscribe(i=>{if(i==null)return;const t=this._univerInstanceService.getCurrentUniverDocInstance();if(!t)return;const e=t.zoomRatio||1;this.updateViewZoom(e,!1)}))}_initCommandExecutedListener(){const i=[ve.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(i.includes(t.id)&&t.params.unitId===this._context.unitId){const n=this._context.unit.zoomRatio||1;this.updateViewZoom(n)}})),this.disposeWithMe(this._commandService.beforeCommandExecuted(t=>{t.id===En.id&&this._commandService.executeCommand(Mn.id,{zoomRatio:1,unitId:this._context.unitId})}))}updateViewZoom(i,t=!0){var n;const e=Be(this._context);e.scene.scale(i,i),this._editorService.isEditor(this._context.unitId)||this._docPageLayoutService.calculatePagePosition(),t&&!this._editorService.isEditor(this._context.unitId)&&this._textSelectionManagerService.refreshSelection(),(n=e.scene.getTransformer())==null||n.clearSelectedObjects()}};to=_A([ot(1,s.IContextService),ot(2,s.Inject(D.DocSkeletonManagerService)),ot(3,s.IUniverInstanceService),ot(4,s.ICommandService),ot(5,s.Inject(D.DocSelectionManagerService)),ot(6,me),ot(7,s.Inject(qi))],to);var NA=Object.defineProperty,PA=Object.getOwnPropertyDescriptor,UA=(i,t,e,n)=>{for(var o=n>1?void 0:n?PA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&NA(t,e,o),o},Wt=(i,t)=>(e,n)=>t(e,n,i);const zs=300;C.DocStateChangeManagerService=class extends s.RxDisposable{constructor(e,n,o,a,r){super();R(this,"_docStateChange$",new N.BehaviorSubject(null));R(this,"docStateChange$",this._docStateChange$.asObservable());R(this,"_historyStateCache",new Map);R(this,"_changeStateCache",new Map);R(this,"_historyTimer",null);R(this,"_changeStateCacheTimer",null);this._undoRedoService=e,this._commandService=n,this._univerInstanceService=o,this._docStateEmitService=a,this._renderManagerService=r,this._initialize(),this._listenDocStateChange()}getStateCache(e){var n,o;return{history:(n=this._historyStateCache.get(e))!=null?n:[],collaboration:(o=this._changeStateCache.get(e))!=null?o:[]}}setStateCache(e,n){this._historyStateCache.set(e,n.history),this._changeStateCache.set(e,n.collaboration)}_setChangeState(e){this._cacheChangeState(e,"history"),this._cacheChangeState(e,"collaboration")}_initialize(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===s.UndoCommandId||e.id===s.RedoCommandId){const n=this._univerInstanceService.getCurrentUniverDocInstance();if(n==null)return;const o=n.getUnitId();this._pushHistory(o),this._emitChangeState(o)}}))}_listenDocStateChange(){this._docStateEmitService.docStateChangeParams$.pipe(N.takeUntil(this.dispose$)).subscribe(e=>{var l;if(e==null)return;const{isCompositionEnd:n,isSync:o,syncer:a,...r}=e,c=(l=this._renderManagerService.getRenderById(o?a:e.unitId))==null?void 0:l.with(Vt);if(c!=null){if(n){const A=c.fetchComposedUndoRedoMutationParams();if(A==null)throw new Error("historyParams is null in RichTextEditingMutation");const{undoMutationParams:d,redoMutationParams:u,previousActiveRange:f}=A;r.redoState.actions=u.actions,r.undoState.actions=d.actions,r.undoState.textRanges=[f]}this._setChangeState(r)}})}_cacheChangeState(e,n="history"){const{trigger:o,unitId:a,noHistory:r,debounce:c=!1}=e;if(r||o==null||n==="history"&&(o===s.RedoCommandId||o===s.UndoCommandId))return;const l=n==="history"?this._historyStateCache:this._changeStateCache,A=n==="history"?this._pushHistory.bind(this):this._emitChangeState.bind(this);if(l.has(a)){const d=l.get(a);d==null||d.push(e)}else l.set(a,[e]);c?n==="history"?(this._historyTimer&&clearTimeout(this._historyTimer),this._historyTimer=setTimeout(()=>{A(a)},zs)):(this._changeStateCacheTimer&&clearTimeout(this._changeStateCacheTimer),this._changeStateCacheTimer=setTimeout(()=>{A(a)},zs)):A(a)}_pushHistory(e){const n=this._undoRedoService,o=this._historyStateCache.get(e);if(!Array.isArray(o)||o.length===0)return;const a=o.length,r=o[0].commandId,c=o[0],l=o[a-1],A={unitId:e,actions:o.reduce((u,f)=>s.JSONX.compose(u,f.redoState.actions),null),textRanges:l.redoState.textRanges},d={unitId:e,actions:o.reverse().reduce((u,f)=>s.JSONX.compose(u,f.undoState.actions),null),textRanges:c.undoState.textRanges};n.pushUndoRedo({unitID:e,undoMutations:[{id:r,params:d}],redoMutations:[{id:r,params:A}]}),o.length=0}_emitChangeState(e){const n=this._changeStateCache.get(e);if(!Array.isArray(n)||n.length===0)return;const o=n.length,{commandId:a,trigger:r,segmentId:c,noHistory:l,debounce:A}=n[0],d=n[0],u=n[o-1],f={unitId:e,actions:n.reduce((g,p)=>s.JSONX.compose(g,p.redoState.actions),null),textRanges:u.redoState.textRanges},h={unitId:e,actions:n.reverse().reduce((g,p)=>s.JSONX.compose(g,p.undoState.actions),null),textRanges:d.undoState.textRanges},m={commandId:a,unitId:e,trigger:r,redoState:f,undoState:h,segmentId:c,noHistory:l,debounce:A};n.length=0,this._docStateChange$.next(m)}},C.DocStateChangeManagerService=UA([Wt(0,s.Inject(s.IUndoRedoService)),Wt(1,s.ICommandService),Wt(2,s.IUniverInstanceService),Wt(3,s.Inject(D.DocStateEmitService)),Wt(4,M.IRenderManagerService)],C.DocStateChangeManagerService);var wA=Object.defineProperty,LA=Object.getOwnPropertyDescriptor,QA=(i,t,e,n)=>{for(var o=n>1?void 0:n?LA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&wA(t,e,o),o},Gs=(i,t)=>(e,n)=>t(e,n,i);const Ys="univer-doc-main-canvas";C.DocsRenderService=class extends s.RxDisposable{constructor(t,e){super(),this._instanceSrv=t,this._renderManagerService=e,this._init()}_init(){this._renderManagerService.createRender$.pipe(N.takeUntil(this.dispose$)).subscribe(t=>this._createRenderWithId(t)),this._instanceSrv.getAllUnitsForType(s.UniverInstanceType.UNIVER_DOC).forEach(t=>this._createRenderer(t)),this._instanceSrv.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_DOC).pipe(N.takeUntil(this.dispose$)).subscribe(t=>this._createRenderer(t)),this._instanceSrv.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_DOC).pipe(N.takeUntil(this.dispose$)).subscribe(t=>this._disposeRenderer(t))}_createRenderer(t){var o;const e=t.getUnitId(),n=(o=this._instanceSrv.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC))==null?void 0:o.getUnitId();this._renderManagerService.created$.subscribe(a=>{a.unitId===n&&(a.engine.getCanvas().setId(Ys),a.engine.getCanvas().getContext().setId(Ys))}),this._renderManagerService.has(e)||(this._createRenderWithId(e),this._renderManagerService.setCurrent(e))}_createRenderWithId(t){this._renderManagerService.createRender(t)}_disposeRenderer(t){const e=t.getUnitId();this._renderManagerService.removeRender(e)}},C.DocsRenderService=QA([Gs(0,s.IUniverInstanceService),Gs(1,M.IRenderManagerService)],C.DocsRenderService);const FA={id:dt.id,preconditions:ar,binding:y.KeyCode.ENTER},HA={id:Qt.id,preconditions:ne,binding:y.KeyCode.BACKSPACE},kA={id:yi.id,preconditions:ne,binding:y.KeyCode.DELETE},VA={id:ke.id,binding:y.KeyCode.ARROW_UP,preconditions:ne,staticParameters:{direction:s.Direction.UP}},jA={id:ke.id,binding:y.KeyCode.ARROW_DOWN,preconditions:ne,staticParameters:{direction:s.Direction.DOWN}},WA={id:ke.id,binding:y.KeyCode.ARROW_LEFT,preconditions:ne,staticParameters:{direction:s.Direction.LEFT}},zA={id:ke.id,binding:y.KeyCode.ARROW_RIGHT,preconditions:ne,staticParameters:{direction:s.Direction.RIGHT}},GA={id:Ve.id,binding:y.KeyCode.ARROW_UP|y.MetaKeys.SHIFT,preconditions:ne,staticParameters:{direction:s.Direction.UP}},YA={id:Ve.id,binding:y.KeyCode.ARROW_DOWN|y.MetaKeys.SHIFT,preconditions:ne,staticParameters:{direction:s.Direction.DOWN}},XA={id:Ve.id,binding:y.KeyCode.ARROW_LEFT|y.MetaKeys.SHIFT,preconditions:ne,staticParameters:{direction:s.Direction.LEFT}},KA={id:Ve.id,binding:y.KeyCode.ARROW_RIGHT|y.MetaKeys.SHIFT,preconditions:ne,staticParameters:{direction:s.Direction.RIGHT}},JA={id:Vi.id,binding:y.KeyCode.A|y.MetaKeys.CTRL_COMMAND,preconditions:i=>i.getContextValue(s.FOCUSING_UNIVER_EDITOR)&&(i.getContextValue(s.FOCUSING_DOC)||i.getContextValue(s.EDITOR_ACTIVATED))};var Xs=Object.defineProperty,ZA=Object.getOwnPropertyDescriptor,qA=(i,t,e)=>t in i?Xs(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,$A=(i,t,e,n)=>{for(var o=n>1?void 0:n?ZA(t,e):t,a=i.length-1,r;a>=0;a--)(r=i[a])&&(o=(n?r(t,e,o):r(o))||o);return n&&o&&Xs(t,e,o),o},zt=(i,t)=>(e,n)=>t(e,n,i),ed=(i,t,e)=>qA(i,t+"",e);C.UniverDocsUIPlugin=class extends s.Plugin{constructor(t=cs,e,n,o,a,r){super(),this._config=t,this._injector=e,this._renderManagerSrv=n,this._commandService=o,this._logService=a,this._configService=r;const{menu:c,...l}=s.merge({},cs,this._config);c&&this._configService.setConfig("menu",c,{merge:!0}),this._configService.setConfig(Ii,l),this._initDependencies(e),this._initializeShortcut(),this._initCommand()}onReady(){this._initRenderBasics(),this._markDocAsFocused(),s.touchDependencies(this._injector,[[C.DocStateChangeManagerService],[C.DocsRenderService]])}onRendered(){this._initUI(),this._initRenderModules(),s.touchDependencies(this._injector,[[Dn],[Nn],[Et],[Pn],[C.DocUIController]])}_initCommand(){[Qt,yi,Ge,Ye,Xe,Ke,Fe,Je,Ze,qe,$e,ut,et,Ne,Ui,hn,ft,gn,bi,fn,ve,_t,Dt,ht,Nt,Pt,Ut,Re,wt,wi,Ni,Tn,bn,bs,yn,Rn,vn,Cn,It,hi,Wi,ze,xt,dt,sn,Mt,an,rn,Si,ji,En,Oe,Ti,tt,ho,Xn,Kn,Mn,Vi,Fi,ke,Ve].forEach(t=>{this._commandService.registerCommand(t)}),[Ht,Sn,In].forEach(t=>this.disposeWithMe(this._commandService.registerMultipleCommand(t)))}_initializeShortcut(){[VA,jA,zA,WA,GA,YA,XA,KA,JA,HA,kA,FA,cr].forEach(t=>{this._injector.get(y.IShortcutService).registerShortcut(t)})}_initDependencies(t){s.mergeOverrideWithDependencies([[Qn],[Fn],[C.DocUIController],[Dn],[Pn],[Nn],[Bn],[Et],[me,{useClass:C.EditorService}],[ri,{useClass:Po}],[St,{useClass:Mi}],[C.DocCanvasPopManagerService],[C.DocsRenderService],[C.DocStateChangeManagerService],[C.DocAutoFormatService],[_e]],this._config.override).forEach(n=>t.add(n))}_markDocAsFocused(){const t=this._injector.get(s.IUniverInstanceService),e=this._injector.get(me);try{const n=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_DOC);if(!n)return;const o=n.getUnitId();e.isEditor(o)||t.focusUnit(n.getUnitId())}catch(n){this._logService.warn(n)}}_initUI(){this._injector.get(Bn)}_initRenderBasics(){[[D.DocSkeletonManagerService],[C.DocSelectionRenderService],[D.DocInterceptorService],[qi],[Vt],[C.DocRenderController],[to]].forEach(t=>{this._renderManagerSrv.registerRenderModule(s.UniverInstanceType.UNIVER_DOC,t)})}_initRenderModules(){[[C.DocEventManagerService],[C.DocBackScrollRenderController],[eo],[li],[$i],[Ki],[Xi],[Qn],[Zi],[Ji],[Fn]].forEach(t=>{this._renderManagerSrv.registerRenderModule(s.UniverInstanceType.UNIVER_DOC,t)})}},ed(C.UniverDocsUIPlugin,"pluginName",so),C.UniverDocsUIPlugin=$A([s.DependentOn(M.UniverRenderEnginePlugin),zt(1,s.Inject(s.Injector)),zt(2,M.IRenderManagerService),zt(3,s.ICommandService),zt(4,s.ILogService),zt(5,s.IConfigService)],C.UniverDocsUIPlugin),C.AfterSpaceCommand=xt,C.AlignCenterCommand=Pt,C.AlignJustifyCommand=wt,C.AlignLeftCommand=Nt,C.AlignOperationCommand=Re,C.AlignRightCommand=Ut,C.BreakLineCommand=Ui,C.BulletListCommand=Dt,C.ChangeListNestingLevelCommand=sn,C.ChangeListNestingLevelType=Bt,C.ChangeListTypeCommand=Mt,C.CheckListCommand=an,C.CoverContentCommand=Kn,C.CreateDocTableCommand=wi,C.CutContentCommand=tt,C.DOCS_COMPONENT_BACKGROUND_LAYER_INDEX=ao,C.DOCS_COMPONENT_DEFAULT_Z_INDEX=Wn,C.DOCS_COMPONENT_HEADER_LAYER_INDEX=ro,C.DOCS_COMPONENT_MAIN_LAYER_INDEX=Yt,C.DOCS_VIEW_KEY=Ie,C.DOC_UI_PLUGIN_NAME=so,C.DOC_VERTICAL_PADDING=Yi,C.DefaultDocContainerConfig=oo,C.DefaultToolbarConfig=io,C.DeleteCommand=ft,C.DeleteCustomBlockCommand=gn,C.DeleteLeftCommand=Qt,C.DeleteRightCommand=yi,C.DocCopyCommand=Ht,C.DocCreateTableOperation=On,C.DocCutCommand=Sn,C.DocIMEInputManagerService=Vt,C.DocPasteCommand=In,C.DocRangeSelector=Ga,C.DocSelectAllCommand=Vi,C.DocTableDeleteColumnsCommand=Cn,C.DocTableDeleteRowsCommand=vn,C.DocTableDeleteTableCommand=It,C.DocTableInsertColumnCommand=bs,C.DocTableInsertColumnLeftCommand=yn,C.DocTableInsertColumnRightCommand=Rn,C.DocTableInsertRowAboveCommand=Tn,C.DocTableInsertRowBellowCommand=bn,C.DocTableInsertRowCommand=Ni,C.DocTableTabCommand=Wi,C.DocsUIMenuSchema=Ds,C.Editor=vo,C.EditorInsertTextCommandId=gs,C.EnterCommand=dt,C.IDocClipboardService=St,C.IEditorService=me,C.IMEInputCommand=ji,C.IRangeSelectorService=ri,C.InnerPasteCommand=Ti,C.InsertCommand=hn,C.ListOperationCommand=ht,C.MergeTwoParagraphCommand=fn,C.MoveCursorOperation=ke,C.MoveSelectionOperation=Ve,C.NORMAL_TEXT_SELECTION_PLUGIN_NAME=na,C.NodePositionConvertToCursor=De,C.NodePositionConvertToRectRange=ni,C.OrderListCommand=_t,C.PastePluginLark=Ss,C.PastePluginUniver=Es,C.PastePluginWord=vs,C.QuickListCommand=Si,C.RangeSelectorService=Po,C.RectRange=oi,C.ReplaceContentCommand=ho,C.ReplaceSnapshotCommand=Xn,C.ResetInlineFormatTextBackgroundColorCommand=ut,C.SetDocZoomRatioCommand=Mn,C.SetDocZoomRatioOperation=ve,C.SetInlineFormatBoldCommand=Ge,C.SetInlineFormatCommand=Ne,C.SetInlineFormatFontFamilyCommand=qe,C.SetInlineFormatFontSizeCommand=Ze,C.SetInlineFormatItalicCommand=Ye,C.SetInlineFormatStrikethroughCommand=Ke,C.SetInlineFormatSubscriptCommand=Fe,C.SetInlineFormatSuperscriptCommand=Je,C.SetInlineFormatTextBackgroundColorCommand=et,C.SetInlineFormatTextColorCommand=$e,C.SetInlineFormatUnderlineCommand=Xe,C.TEXT_RANGE_LAYER_INDEX=Jt,C.TabCommand=ze,C.TextEditor=Co,C.TextRange=je,C.ToggleCheckListCommand=rn,C.UpdateCommand=bi,C.VIEWPORT_KEY=be,C.addCustomDecorationBySelectionFactory=oa,C.addCustomDecorationFactory=lo,C.calcDocRangePositions=wn,C.convertPositionsToRectRanges=qt,C.deleteCustomDecorationFactory=sa,C.docDrawingPositionToTransform=ra,C.genTableSource=vi,C.generateParagraphs=Pi,C.getAnchorBounding=Ot,C.getCanvasOffsetByEngine=Io,C.getCommandSkeleton=fe,C.getCursorWhenDelete=mn,C.getCustomBlockIdsInSelections=us,C.getCutActionsFromDocRanges=hs,C.getDocObject=co,C.getDocObjectById=ia,C.getEmptyTableCell=An,C.getEmptyTableRow=dn,C.getLineBounding=Zt,C.getOneTextSelectionRange=qn,C.getParagraphsInRange=cn,C.getParagraphsInRanges=gt,C.getRichTextEditPath=te,C.getTableColumn=un,C.hasParagraphInTable=aa,C.isInSameTableCell=ei,C.isValidRectRange=fo,C.neoGetDocObject=Be,C.transformToDocDrawingPosition=ca,C.whenDocAndEditorFocused=ne,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})});
19
+ `}_getNodePosition(node){if(node==null)return;const{node:glyph,ratioX,segmentPage}=node,position=this._docSkeletonManagerService.getSkeleton().findPositionByGlyph(glyph,segmentPage);if(position==null)return;let isBack=ratioX<.5;return glyph.glyphType===engineRender.GlyphType.LIST&&(isBack=!0),{...position,isBack}}_interactTextRanges(textRanges){const newTextRanges=[];for(const range of this._rangeList){if(textRanges.some(textRange=>textRange.isIntersection(range))){range.dispose();continue}newTextRanges.push(range)}this._rangeList=newTextRanges}_interactRectRanges(rectRanges){const newRanges=[];for(const range of this._rectRangeList){if(rectRanges.some(rectRange=>rectRange.isIntersection(range))){range.dispose();continue}newRanges.push(range)}this._rectRangeList=newRanges}_removeAllRanges(){this._removeAllTextRanges(),this._removeAllRectRanges()}_removeAllCacheRanges(){this._rangeListCache.forEach(range=>{range.dispose()}),this._rectRangeListCache.forEach(range=>{range.dispose()}),this._rangeListCache=[],this._rectRangeListCache=[]}_removeAllTextRanges(){this._rangeList.forEach(range=>{range.dispose()}),this._rangeList=[]}_removeAllRectRanges(){this._rectRangeList.forEach(range=>{range.dispose()}),this._rectRangeList=[]}_removeAllCollapsedTextRanges(){for(const range of this._rangeList)range.collapsed&&range.dispose()}_deactivateAllTextRanges(){this._rangeList.forEach(range=>{range.deactivate()})}_deactivateAllRectRanges(){this._rectRangeList.forEach(range=>{range.deactivate()})}_addTextRangesToCache(textRanges){this._rangeListCache.push(...textRanges)}_addTextRange(textRange){this._deactivateAllTextRanges(),textRange.activate(),this._rangeList.push(textRange)}_addRectRangesToCache(rectRanges){this._rectRangeListCache.push(...rectRanges)}_addRectRanges(rectRanges){rectRanges.length!==0&&(this._deactivateAllRectRanges(),rectRanges[rectRanges.length-1].activate(),this._rectRangeList.push(...rectRanges))}_createTextRangeByAnchorPosition(position){this._removeAllRanges();const{scene,mainComponent}=this._context,skeleton=this._docSkeletonManagerService.getSkeleton(),lastRange=new TextRange(scene,mainComponent,skeleton,position,void 0,this._selectionStyle,this._currentSegmentId,this._currentSegmentPage);this._addTextRange(lastRange)}_updateActiveRangePosition(position){const activeTextRange=this._getActiveRangeInstance();if(activeTextRange==null||activeTextRange.anchorNodePosition==null){this._logService.error("[DocSelectionRenderService] _updateActiveRangeFocusPosition: active range has no anchor");return}this._removeAllRanges(),this._anchorNodePosition=activeTextRange.anchorNodePosition,this._focusNodePosition=position;const{scene,mainComponent}=this._context,skeleton=this._docSkeletonManagerService.getSkeleton(),{_anchorNodePosition,_focusNodePosition,_selectionStyle,_currentSegmentId,_currentSegmentPage}=this;if(_anchorNodePosition==null||_focusNodePosition==null||mainComponent==null)return;const ranges=getRangeListFromSelection(_anchorNodePosition,_focusNodePosition,scene,mainComponent,skeleton,_selectionStyle,_currentSegmentId,_currentSegmentPage);if(ranges==null)return;const{textRanges,rectRanges}=ranges;this._addTextRangesToCache(textRanges),this._addRectRangesToCache(rectRanges),this.deactivate()}_isEmpty(){return this._rangeList.length===0&&this._rectRangeList.length===0}_getCanvasOffset(){var _a2;const engine=(_a2=this._context.scene)==null?void 0:_a2.getEngine();return getCanvasOffsetByEngine(engine)}_updateInputPosition(forceFocus=!1){const activeRangeInstance=this._getActiveRangeInstance(),anchor=activeRangeInstance==null?void 0:activeRangeInstance.getAnchor();if(!anchor||anchor&&!anchor.visible||this.activeViewPort==null){this.focus();return}const{left,top}=anchor,absoluteCoord=this.activeViewPort.getAbsoluteVector(engineRender.Vector2.FromArray([left,top])),{x,y}=absoluteCoord;let{left:canvasLeft,top:canvasTop}=this._getCanvasOffset();canvasLeft+=x,canvasTop+=y,this.activate(canvasLeft,canvasTop,forceFocus)}_moving(moveOffsetX,moveOffsetY){var _a2,_b2;const{_currentSegmentId:segmentId,_currentSegmentPage:segmentPage}=this,focusNode=this._findNodeByCoord(moveOffsetX,moveOffsetY,{strict:!0,segmentId,segmentPage}),focusNodePosition=this._getNodePosition(focusNode);if(focusNodePosition==null||focusNode==null)return;const divide=focusNode==null?void 0:focusNode.node.parent,nextGlyph=divide==null?void 0:divide.glyphGroup[divide.glyphGroup.indexOf(focusNode.node)+1];(focusNode==null?void 0:focusNode.node.streamType)===core.DataStreamTreeTokenType.PARAGRAPH&&(nextGlyph==null?void 0:nextGlyph.streamType)===core.DataStreamTreeTokenType.SECTION_BREAK&&(focusNodePosition.isBack=!0),this._focusNodePosition=focusNodePosition,this._removeAllCacheRanges();const{_anchorNodePosition,_selectionStyle}=this,{scene,mainComponent}=this._context,skeleton=this._docSkeletonManagerService.getSkeleton();if(_anchorNodePosition==null||mainComponent==null)return;const ranges=getRangeListFromSelection(_anchorNodePosition,focusNodePosition,scene,mainComponent,skeleton,_selectionStyle,segmentId,segmentPage);if(ranges==null)return;const{textRanges,rectRanges}=ranges;this._rangeList.length>0&&textRanges.length>0&&this._interactTextRanges(textRanges),this._rectRangeList.length>0&&rectRanges.length>0&&this._interactRectRanges(rectRanges),this._addTextRangesToCache(textRanges),this._addRectRangesToCache(rectRanges),this.deactivate(),(_b2=(_a2=this._context.scene)==null?void 0:_a2.getEngine())==null||_b2.setCapture()}__attachScrollEvent(){const viewport=this.activeViewPort;if(!viewport)return;const{unitId}=this._context;if(this._viewPortObserverMap.has(unitId))return;const scrollBefore=viewport.onScrollAfter$.subscribeEvent(param=>{if(!param.viewport)return;const activeRangeInstance=this._getActiveRangeInstance();activeRangeInstance==null||activeRangeInstance.activeStatic()}),scrollStop=viewport.onScrollEnd$.subscribeEvent(param=>{const viewport2=param.viewport;if(!viewport2)return;const bounds=viewport2.getBounding(),activeRangeInstance=this._getActiveRangeInstance(),anchor=activeRangeInstance==null?void 0:activeRangeInstance.getAnchor();if(!(!anchor||anchor&&!anchor.visible)){if(bounds){const{left,top,right,bottom}=bounds.viewBound;if(anchor.left<left||anchor.left>right||anchor.top<top||anchor.top>bottom){activeRangeInstance==null||activeRangeInstance.deactivateStatic();return}}this._updateInputPosition()}});this._viewPortObserverMap.set(unitId,{scrollBefore,scrollStop})}_initInputEvents(){this.disposeWithMe(rxjs.fromEvent(this._input,"keydown").subscribe(e=>{this._isIMEInputApply||this._eventHandle(e,config=>{this._onKeydown$.next(config)})})),this.disposeWithMe(rxjs.fromEvent(this._input,"input").subscribe(e=>{if(!(e.inputType==="historyUndo"||e.inputType==="historyRedo")){if(this._rectRangeList.length>0)return e.stopPropagation(),e.preventDefault();this._isIMEInputApply||this._eventHandle(e,config=>{this._onInputBefore$.next(config),this._onInput$.next(config)})}})),this.disposeWithMe(rxjs.fromEvent(this._input,"compositionstart").subscribe(e=>{if(this._rectRangeList.length>0)return e.stopPropagation(),e.preventDefault();this._isIMEInputApply=!0,this._eventHandle(e,config=>{this._onCompositionstart$.next(config)})})),this.disposeWithMe(rxjs.fromEvent(this._input,"compositionend").subscribe(e=>{this._isIMEInputApply=!1,this._eventHandle(e,config=>{this._onCompositionend$.next(config)})})),this.disposeWithMe(rxjs.fromEvent(this._input,"compositionupdate").subscribe(e=>{this._eventHandle(e,config=>{this._onInputBefore$.next(config),this._onCompositionupdate$.next(config)})})),this.disposeWithMe(rxjs.fromEvent(this._input,"paste").subscribe(e=>{this._eventHandle(e,config=>{this._onPaste$.next(config)})})),this.disposeWithMe(rxjs.fromEvent(this._input,"focus").subscribe(e=>{this._eventHandle(e,config=>{this._onFocus$.next(config)})})),this.disposeWithMe(rxjs.fromEvent(this._input,"blur").subscribe(e=>{this._eventHandle(e,config=>{this._onBlur$.next(config)})}))}_eventHandle(e,func){const content=this._input.textContent||"";this._input.innerHTML="";const activeRange=this._getActiveRange(),rangeList=this._getAllTextRanges();func({event:e,content,activeRange,rangeList})}_getTransformCoordForDocumentOffset(evtOffsetX,evtOffsetY){const document2=this._context.mainComponent,{documentTransform}=document2.getOffsetConfig();if(this.activeViewPort==null||documentTransform==null)return;const originCoord=this.activeViewPort.transformVector2SceneCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY]));if(originCoord)return documentTransform.clone().invert().applyPoint(originCoord)}_findNodeByCoord(evtOffsetX,evtOffsetY,restrictions){const coord=this._getTransformCoordForDocumentOffset(evtOffsetX,evtOffsetY);if(coord==null)return;const document2=this._context.mainComponent,skeleton=this._docSkeletonManagerService.getSkeleton(),{pageLayoutType=engineRender.PageLayoutType.VERTICAL,pageMarginLeft,pageMarginTop}=document2.getOffsetConfig();return skeleton.findNodeByCoord(coord,pageLayoutType,pageMarginLeft,pageMarginTop,restrictions)}_detachEvent(){this._onInputBefore$.complete(),this._onKeydown$.complete(),this._onInput$.complete(),this._onCompositionstart$.complete(),this._onCompositionupdate$.complete(),this._onCompositionend$.complete(),this._onSelectionStart$.complete(),this._textSelectionInner$.complete(),this._onPaste$.complete(),this._onFocus$.complete(),this._onBlur$.complete(),this._onPointerDown$.complete()}},__name(_b,"DocSelectionRenderService"),_b),exports2.DocSelectionRenderService=__decorateClass$r([__decorateParam$r(1,ui.ILayoutService),__decorateParam$r(2,core.ILogService),__decorateParam$r(3,core.IUniverInstanceService),__decorateParam$r(4,core.Inject(docs.DocSkeletonManagerService))],exports2.DocSelectionRenderService);const _Editor=class _Editor extends core.Disposable{constructor(_param,_univerInstanceService,_docSelectionManagerService,_commandService,_undoRedoService){super();__publicField(this,"_change$",new rxjs.Subject);__publicField(this,"change$",this._change$.asObservable());__publicField(this,"_input$",new rxjs.Subject);__publicField(this,"input$",this._input$.asObservable());__publicField(this,"_paste$",new rxjs.Subject);__publicField(this,"paste$",this._paste$.asObservable());__publicField(this,"_focus$",new rxjs.Subject);__publicField(this,"focus$",this._focus$.asObservable());__publicField(this,"_blur$",new rxjs.Subject);__publicField(this,"blur$",this._blur$.asObservable());__publicField(this,"_selectionChange$",new rxjs.Subject);__publicField(this,"selectionChange$",this._selectionChange$.asObservable());this._param=_param,this._univerInstanceService=_univerInstanceService,this._docSelectionManagerService=_docSelectionManagerService,this._commandService=_commandService,this._undoRedoService=_undoRedoService,this._listenSelection()}get docSelectionRenderService(){return this._param.render.with(exports2.DocSelectionRenderService)}_listenSelection(){const docSelectionRenderService=this._param.render.with(exports2.DocSelectionRenderService);this.disposeWithMe(docSelectionRenderService.onBlur$.subscribe(e=>{this._blur$.next(e);const data=this.getDocumentData();this._change$.next({target:this,data})})),this.disposeWithMe(docSelectionRenderService.onFocus$.subscribe(e=>{this._focus$.next(e)})),this.disposeWithMe(docSelectionRenderService.onPaste$.subscribe(e=>{this._paste$.next(e)})),this.disposeWithMe(rxjs.merge(docSelectionRenderService.onInput$,docSelectionRenderService.onKeydown$.pipe(operators.filter(e=>{const event=e.event;return event.ctrlKey||event.metaKey?[ui.KeyCode.X,ui.KeyCode.V].includes(event.keyCode):[ui.KeyCode.BACKSPACE].includes(event.keyCode)})),docSelectionRenderService.onCompositionupdate$,docSelectionRenderService.onCompositionend$,docSelectionRenderService.onPaste$).subscribe(e=>{if(e==null)return;const{content=""}=e,data=this.getDocumentData();this._input$.next({target:this,content,data,isComposing:e.event.type==="compositionupdate"})})),this.disposeWithMe(this._docSelectionManagerService.textSelection$.subscribe(e=>{if(e==null)return;const{unitId,subUnitId,...params}=e,editorId=this.getEditorId();unitId===editorId&&this._selectionChange$.next(params)}))}isFocus(){const docSelectionRenderService=this._param.render.with(exports2.DocSelectionRenderService);return docSelectionRenderService.isFocusing&&!!docSelectionRenderService.getActiveTextRange()}focus(){const curDoc=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),editorUnitId=this.getEditorId();(curDoc==null||curDoc.getUnitId()!==editorUnitId)&&this._univerInstanceService.setCurrentUnitForType(editorUnitId),this._param.render.with(exports2.DocSelectionRenderService).focus()}blur(){this._param.render.with(exports2.DocSelectionRenderService).blur()}select(){const documentData=this.getDocumentData();return this.setSelectionRanges([{startOffset:0,endOffset:documentData.body?documentData.body.dataStream.length-2:0}])}setSelectionRanges(ranges){const editorUnitId=this.getEditorId(),params={unitId:editorUnitId,subUnitId:editorUnitId};return this._docSelectionManagerService.replaceDocRanges(ranges,params,!1)}getSelectionRanges(){const editorUnitId=this.getEditorId(),params={unitId:editorUnitId,subUnitId:editorUnitId};return this._docSelectionManagerService.getDocRanges(params)}getCursorPosition(){var _a2,_b2;return(_b2=(_a2=this.getSelectionRanges().find(range=>range.collapsed))==null?void 0:_a2.startOffset)!=null?_b2:-1}getEditorId(){return this._getEditorId()}getDocumentData(){return this._getDocDataModel().getSnapshot()}getDocumentDataModel(){return this._getDocDataModel()}setDocumentData(data,textRanges){const{id}=data;this._commandService.syncExecuteCommand(ReplaceSnapshotCommand.id,{unitId:id,snapshot:data,textRanges})}replaceText(text,resetCursor=!0){const data=this.getDocumentData();this.setDocumentData({...data,body:{dataStream:`${text}\r
20
+ `,paragraphs:[{startIndex:0}],customRanges:[],sectionBreaks:[],tables:[],textRuns:[]}},resetCursor?[{startOffset:text.length,endOffset:text.length,collapsed:!0}]:null)}clearUndoRedoHistory(){const editorUnitId=this.getEditorId();return this._undoRedoService.clearUndoRedo(editorUnitId)}dispose(){this._getDocDataModel().dispose()}get editorUnitId(){return this._param.editorUnitId}get params(){return this._param}get cancelDefaultResizeListener(){return this._param.cancelDefaultResizeListener}get render(){return this._param.render}isReadOnly(){return this._param.readonly===!0}getBoundingClientRect(){return this._param.editorDom.getBoundingClientRect()}get editorDOM(){return this._param.editorDom}isVisible(){return this._param.visible}isSheetEditor(){return core.isInternalEditorID(this._getEditorId())}getValue(){var _a2;return(((_a2=this._getDocDataModel().getBody())==null?void 0:_a2.dataStream)||"").replace(/\r\n/g,"").replace(/\n/g,"").replace(/\n/g,"")}getBody(){return this._getDocDataModel().getBody()}update(param){this._param={...this._param,...param}}updateCanvasStyle(){var _a2;const docDataModel=this._getDocDataModel();if(docDataModel==null)return;const documentStyle={};(_a2=this._param.canvasStyle)!=null&&_a2.fontSize&&(documentStyle.textStyle==null&&(documentStyle.textStyle={}),documentStyle.textStyle.fs=this._param.canvasStyle.fontSize),docDataModel.updateDocumentStyle(documentStyle)}_getDocDataModel(){const editorUnitId=this._getEditorId();return this._univerInstanceService.getUnit(editorUnitId,core.UniverInstanceType.UNIVER_DOC)}_getEditorId(){var _a2;return((_a2=this._param.initialSnapshot)==null?void 0:_a2.id)||this._param.editorUnitId||""}};__name(_Editor,"Editor");let Editor=_Editor;var __defProp$q=Object.defineProperty,__getOwnPropDesc$q=Object.getOwnPropertyDescriptor,__decorateClass$q=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$q(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$q(target,key,result),result},"__decorateClass$q"),__decorateParam$q=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$q");const editorFocusInElements=["univer-editor","univer-range-selector","univer-range-selector-editor","univer-render-canvas","univer-text-editor-container-placeholder"];exports2.EditorService=(_c=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService,_docSelectionManagerService,_contextService,_commandService,_undoRedoService){super();__publicField(this,"_editors",new Map);__publicField(this,"_focusEditorUnitId");__publicField(this,"_blur$",new rxjs.Subject);__publicField(this,"blur$",this._blur$.asObservable());__publicField(this,"_focus$",new rxjs.Subject);__publicField(this,"focus$",this._focus$.asObservable());this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._docSelectionManagerService=_docSelectionManagerService,this._contextService=_contextService,this._commandService=_commandService,this._undoRedoService=_undoRedoService,this._initUniverFocusListener()}_initUniverFocusListener(){this.disposeWithMe(rxjs.fromEvent(window,"focusin").subscribe(event=>{const target=event.target;this._blurSheetEditor(target)}))}_blurSheetEditor(target){if(editorFocusInElements.some(item=>target.classList.contains(item)))return;const focusEditor=this.getFocusEditor();focusEditor&&focusEditor.isSheetEditor()!==!0&&this.blur()}_setFocusId(id){this._focusEditorUnitId=id}getFocusId(){return this._focusEditorUnitId}getFocusEditor(){if(this._focusEditorUnitId)return this.getEditor(this._focusEditorUnitId)}isEditor(editorUnitId){return this._editors.has(editorUnitId)}isSheetEditor(editorUnitId){const editor=this._editors.get(editorUnitId);return!!(editor&&editor.isSheetEditor())}blur(){this._setFocusId(null),this._contextService.setContextValue(core.EDITOR_ACTIVATED,!1),this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!1);const focusingEditor=this.getFocusEditor();focusingEditor==null||focusingEditor.blur(),this._blur$.next(null)}focus(editorUnitId){if(this._focusEditorUnitId&&this.blur(),editorUnitId==null)return;const editor=this.getEditor(editorUnitId);if(editor==null)return;this._univerInstanceService.setCurrentUnitForType(editorUnitId);const valueCount=editor.getValue().length;this._contextService.setContextValue(core.EDITOR_ACTIVATED,!0),core.isInternalEditorID(editorUnitId)||this._contextService.setContextValue(core.FOCUSING_EDITOR_STANDALONE,!0),editor.focus(),this._setFocusId(editorUnitId),this._focus$.next({startOffset:valueCount,endOffset:valueCount})}dispose(){this._editors.clear(),super.dispose()}getEditor(id=this._getCurrentEditorUnitId()){return this._editors.get(id)}getAllEditor(){return this._editors}register(config,container){var _a2,_b2,_c2,_d2;const{initialSnapshot,canvasStyle={}}=config,editorUnitId=initialSnapshot.id;this._univerInstanceService.getUnit(editorUnitId,core.UniverInstanceType.UNIVER_DOC)==null&&this._univerInstanceService.createUnit(core.UniverInstanceType.UNIVER_DOC,initialSnapshot||this._getBlank(editorUnitId),{makeCurrent:!1});let render2=this._renderManagerService.getRenderById(editorUnitId);if(render2==null&&(this._renderManagerService.create(editorUnitId),render2=this._renderManagerService.getRenderById(editorUnitId)),render2){render2.engine.setContainer(container);const editor=new Editor({...config,render:render2,editorDom:container,canvasStyle},this._univerInstanceService,this._docSelectionManagerService,this._commandService,this._undoRedoService);this._editors.set(editorUnitId,editor),config.scrollBar||(_d2=(_c2=(_b2=(_a2=render2.mainComponent)==null?void 0:_a2.getScene())==null?void 0:_b2.getViewports())==null?void 0:_c2[0].getScrollBar())==null||_d2.dispose()}return core.toDisposable(()=>{this._unRegister(editorUnitId)})}_unRegister(editorUnitId){const editor=this._editors.get(editorUnitId);editor!=null&&(this._renderManagerService.removeRender(editorUnitId),editor.dispose(),this._editors.delete(editorUnitId),this._univerInstanceService.disposeUnit(editorUnitId))}_getCurrentEditorUnitId(){return this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()}_getBlank(id){return{id,body:{dataStream:`${core.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],paragraphs:[{startIndex:0}]},documentStyle:{renderConfig:{verticalAlign:core.VerticalAlign.TOP,horizontalAlign:core.HorizontalAlign.LEFT},marginLeft:3,marginTop:0,marginRight:3}}}},__name(_c,"EditorService"),_c),exports2.EditorService=__decorateClass$q([__decorateParam$q(0,core.IUniverInstanceService),__decorateParam$q(1,engineRender.IRenderManagerService),__decorateParam$q(2,core.Inject(docs.DocSelectionManagerService)),__decorateParam$q(3,core.IContextService),__decorateParam$q(4,core.ICommandService),__decorateParam$q(5,core.IUndoRedoService)],exports2.EditorService);const IEditorService=core.createIdentifier("univer.editor.service");function useEditor(opts){const{editorId,initialValue,container,autoFocus:_autoFocus,isSingle}=opts,autoFocus=React.useMemo(()=>_autoFocus!=null?_autoFocus:!1,[]),[editor,setEditor]=React.useState(),editorService=core.useDependency(IEditorService);return React.useLayoutEffect(()=>{var _a2,_b2;if(container.current){const snapshot={body:{dataStream:`\r
21
+ `,textRuns:[],customBlocks:[],customDecorations:[],customRanges:[],paragraphs:[{startIndex:0}]},...initialValue,documentStyle:{...initialValue==null?void 0:initialValue.documentStyle,pageSize:{width:isSingle?1/0:container.current.clientWidth,height:1/0}},id:editorId},dispose=editorService.register({autofocus:!0,editorUnitId:editorId,initialSnapshot:snapshot},container.current),editor2=editorService.getEditor(editorId);if(setEditor(editor2),autoFocus){editor2.focus();const end=((_b2=(_a2=snapshot.body)==null?void 0:_a2.dataStream.length)!=null?_b2:2)-2;editor2.setSelectionRanges([{startOffset:end,endOffset:end}])}return()=>{dispose==null||dispose.dispose()}}},[]),editor}__name(useEditor,"useEditor");const MoveCursorOperation={id:"doc.operation.move-cursor",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>!!params,"handler")},MoveSelectionOperation={id:"doc.operation.move-selection",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>!!params,"handler")},useLeftAndRightArrow=__name((isNeed,selectingMode,editor,onMoveInEditor)=>{const commandService=core.useDependency(core.ICommandService),shortcutService=core.useDependency(ui.IShortcutService),selectingModeRef=React.useRef(selectingMode);selectingModeRef.current=selectingMode;const onMoveInEditorRef=React.useRef(onMoveInEditor);onMoveInEditorRef.current=onMoveInEditor,React.useEffect(()=>{if(!editor||!isNeed)return;const operationId=`sheet.formula-embedding-editor.${editor.getEditorId()}`,d=new core.DisposableCollection,handleMoveInEditor=__name((keycode,metaKey)=>{if(onMoveInEditorRef.current){onMoveInEditorRef.current(keycode,metaKey);return}let direction=core.Direction.LEFT;keycode===ui.KeyCode.ARROW_DOWN?direction=core.Direction.DOWN:keycode===ui.KeyCode.ARROW_UP?direction=core.Direction.UP:keycode===ui.KeyCode.ARROW_RIGHT&&(direction=core.Direction.RIGHT),metaKey===ui.MetaKeys.SHIFT?commandService.executeCommand(MoveSelectionOperation.id,{direction}):commandService.executeCommand(MoveCursorOperation.id,{direction})},"handleMoveInEditor");return d.add(commandService.registerCommand({id:operationId,type:core.CommandType.OPERATION,handler(_event,params){const{keyCode}=params;handleMoveInEditor(keyCode)}})),[{keyCode:ui.KeyCode.ARROW_DOWN},{keyCode:ui.KeyCode.ARROW_LEFT},{keyCode:ui.KeyCode.ARROW_RIGHT},{keyCode:ui.KeyCode.ARROW_UP},{keyCode:ui.KeyCode.ARROW_DOWN,metaKey:ui.MetaKeys.SHIFT},{keyCode:ui.KeyCode.ARROW_LEFT,metaKey:ui.MetaKeys.SHIFT},{keyCode:ui.KeyCode.ARROW_RIGHT,metaKey:ui.MetaKeys.SHIFT},{keyCode:ui.KeyCode.ARROW_UP,metaKey:ui.MetaKeys.SHIFT},{keyCode:ui.KeyCode.ARROW_DOWN,metaKey:ui.MetaKeys.CTRL_COMMAND},{keyCode:ui.KeyCode.ARROW_LEFT,metaKey:ui.MetaKeys.CTRL_COMMAND},{keyCode:ui.KeyCode.ARROW_RIGHT,metaKey:ui.MetaKeys.CTRL_COMMAND},{keyCode:ui.KeyCode.ARROW_UP,metaKey:ui.MetaKeys.CTRL_COMMAND},{keyCode:ui.KeyCode.ARROW_DOWN,metaKey:ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT},{keyCode:ui.KeyCode.ARROW_LEFT,metaKey:ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT},{keyCode:ui.KeyCode.ARROW_RIGHT,metaKey:ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT},{keyCode:ui.KeyCode.ARROW_UP,metaKey:ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT}].map(({keyCode,metaKey})=>({id:operationId,binding:metaKey?keyCode|metaKey:keyCode,preconditions:__name(()=>!0,"preconditions"),priority:900,staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keyCode}})).forEach(item=>{d.add(shortcutService.registerShortcut(item))}),()=>{d.dispose()}},[commandService,editor,isNeed,shortcutService])},"useLeftAndRightArrow");function useOnChange(editor,onChange){const commandService=core.useDependency(core.ICommandService);React.useEffect(()=>{if(!editor)return;const dispose=commandService.onCommandExecuted(command=>{if(command.id===docs.RichTextEditingMutation.id){if(command.params.unitId!==editor.getEditorId())return;onChange(editor.getDocumentData())}});return()=>{dispose.dispose()}},[editor,onChange,commandService])}__name(useOnChange,"useOnChange");const styles$6={richTextEditorActive:"univer-rich-text-editor-active",richTextEditorWrap:"univer-rich-text-editor-wrap",richTextEditorText:"univer-rich-text-editor-text",richTextEditorErrorWrap:"univer-rich-text-editor-error-wrap",richTextEditorPlaceholder:"univer-rich-text-editor-placeholder"},RichTextEditor=React.forwardRef((props,ref)=>{var _a2;const{className,autoFocus,onFocusChange:_onFocusChange,initialValue,onClickOutside:_onClickOutside,keyboardEventConfig,moveCursor=!0,style,isSingle,editorId:propsEditorId,onHeightChange,onChange:_onChange,defaultHeight=32,maxHeight=32}=props,editorService=core.useDependency(IEditorService),onFocusChange=ui.useEvent(_onFocusChange),onClickOutside=ui.useEvent(_onClickOutside),[height,setHeight]=React.useState(defaultHeight),formulaEditorContainerRef=React.useRef(null),editorId=React.useMemo(()=>propsEditorId!=null?propsEditorId:core.createInternalEditorID(`RICH_TEXT_EDITOR-${core.generateRandomId(4)}`),[propsEditorId]),editor=useEditor({editorId,initialValue,container:formulaEditorContainerRef,autoFocus,isSingle}),renderer=core.useDependency(engineRender.IRenderManagerService).getRenderById(editorId),docSelectionRenderService=renderer==null?void 0:renderer.with(exports2.DocSelectionRenderService),isFocusing=(_a2=docSelectionRenderService==null?void 0:docSelectionRenderService.isFocusing)!=null?_a2:!1,sheetEmbeddingRef=React.useRef(null),[showPlaceholder,setShowPlaceholder]=React.useState(()=>{var _a3,_b2;return!core.BuildTextUtils.transform.getPlainText((_b2=(_a3=editor==null?void 0:editor.getDocumentData().body)==null?void 0:_a3.dataStream)!=null?_b2:"")}),{checkScrollBar}=useResize(editor,isSingle,!0,!0),onChange=ui.useEvent(data=>{const docSkeleton=renderer==null?void 0:renderer.with(docs.DocSkeletonManagerService),size=docSkeleton==null?void 0:docSkeleton.getSkeleton().getActualSize();size&&(onHeightChange==null||onHeightChange(size.actualHeight),setHeight(Math.max(defaultHeight,Math.min(size.actualHeight+10,maxHeight)))),_onChange==null||_onChange(data),checkScrollBar()});return React.useEffect(()=>{var _a3,_b2;setShowPlaceholder(!core.BuildTextUtils.transform.getPlainText((_b2=(_a3=editor==null?void 0:editor.getDocumentData().body)==null?void 0:_a3.dataStream)!=null?_b2:""));const sub=editor==null?void 0:editor.selectionChange$.subscribe(()=>{var _a4,_b3;setShowPlaceholder(!core.BuildTextUtils.transform.getPlainText((_b3=(_a4=editor==null?void 0:editor.getDocumentData().body)==null?void 0:_a4.dataStream)!=null?_b3:""))});return()=>sub==null?void 0:sub.unsubscribe()},[editor]),core.useObservable(editor==null?void 0:editor.blur$),core.useObservable(editor==null?void 0:editor.focus$),React.useEffect(()=>{onFocusChange==null||onFocusChange(isFocusing)},[isFocusing,onFocusChange]),React.useEffect(()=>{const handleClickOutside=__name(event=>{var _a3,_b2;editorService.getFocusId()!==editorId||((_b2=(_a3=event.target)==null?void 0:_a3.dataset)==null?void 0:_b2.editorid)===editorId||sheetEmbeddingRef.current&&!sheetEmbeddingRef.current.contains(event.target)&&(onClickOutside==null||onClickOutside())},"handleClickOutside");return setTimeout(()=>{document.addEventListener("click",handleClickOutside)},100),()=>{document.removeEventListener("click",handleClickOutside)}},[editor,editorId,editorService,onClickOutside]),useLeftAndRightArrow(isFocusing&&moveCursor,!1,editor),useKeyboardEvent(isFocusing,keyboardEventConfig,editor),React.useImperativeHandle(ref,()=>editor,[editor]),useOnChange(editor,onChange),jsxRuntime.jsx("div",{className:clsx(styles$6.richTextEditor,className),style,children:jsxRuntime.jsxs("div",{className:clsx(styles$6.richTextEditorWrap,{[styles$6.richTextEditorActive]:isFocusing}),style:{height},ref:sheetEmbeddingRef,children:[jsxRuntime.jsx("div",{className:styles$6.richTextEditorText,ref:formulaEditorContainerRef,onMouseUp:__name(()=>editor==null?void 0:editor.focus(),"onMouseUp")}),showPlaceholder?jsxRuntime.jsx("div",{className:styles$6.richTextEditorPlaceholder,children:props.placeholder}):null]})})});var __assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},IconBase=React.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=React.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return React.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a2){var key=_a2[0],value=_a2[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a2,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a2=node.children)===null||_a2===void 0)&&_a2.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid"),IconBase.displayName="UniverIcon";var element$4={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM1.9999 5.56641C1.66853 5.56641 1.3999 5.83504 1.3999 6.16641 1.3999 6.49778 1.66853 6.76641 1.9999 6.76641H13.9999C14.3313 6.76641 14.5999 6.49778 14.5999 6.16641 14.5999 5.83504 14.3313 5.56641 13.9999 5.56641H1.9999zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM1.9999 12.9004C1.66853 12.9004 1.3999 13.169 1.3999 13.5004 1.3999 13.8318 1.66853 14.1004 1.9999 14.1004H13.9999C14.3313 14.1004 14.5999 13.8318 14.5999 13.5004 14.5999 13.169 14.3313 12.9004 13.9999 12.9004H1.9999z"}}]},AlignTextBothSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"align-text-both-single",ref,icon:element$4}))});AlignTextBothSingle.displayName="AlignTextBothSingle";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM3.33315 5.56641C3.00178 5.56641 2.73315 5.83504 2.73315 6.16641 2.73315 6.49778 3.00178 6.76641 3.33315 6.76641H12.6665C12.9979 6.76641 13.2665 6.49778 13.2665 6.16641 13.2665 5.83504 12.9979 5.56641 12.6665 5.56641H3.33315zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM3.33315 12.9004C3.00178 12.9004 2.73315 13.169 2.73315 13.5004 2.73315 13.8318 3.00178 14.1004 3.33315 14.1004H12.6665C12.9979 14.1004 13.2665 13.8318 13.2665 13.5004 13.2665 13.169 12.9979 12.9004 12.6665 12.9004H3.33315z"}}]},HorizontallySingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"horizontally-single",ref,icon:element$3}))});HorizontallySingle.displayName="HorizontallySingle";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM1.9999 5.56641C1.66853 5.56641 1.3999 5.83504 1.3999 6.16641 1.3999 6.49778 1.66853 6.76641 1.9999 6.76641H11.3332C11.6646 6.76641 11.9332 6.49778 11.9332 6.16641 11.9332 5.83504 11.6646 5.56641 11.3332 5.56641H1.9999zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM1.9999 12.9004C1.66853 12.9004 1.3999 13.169 1.3999 13.5004 1.3999 13.8318 1.66853 14.1004 1.9999 14.1004H11.3332C11.6646 14.1004 11.9332 13.8318 11.9332 13.5004 11.9332 13.169 11.6646 12.9004 11.3332 12.9004H1.9999z"}}]},LeftJustifyingSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"left-justifying-single",ref,icon:element$2}))});LeftJustifyingSingle.displayName="LeftJustifyingSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.9999 1.89941C1.66853 1.89941 1.3999 2.16804 1.3999 2.49941 1.3999 2.83078 1.66853 3.09941 1.9999 3.09941H13.9999C14.3313 3.09941 14.5999 2.83078 14.5999 2.49941 14.5999 2.16804 14.3313 1.89941 13.9999 1.89941H1.9999zM4.66665 5.56641C4.33528 5.56641 4.06665 5.83504 4.06665 6.16641 4.06665 6.49778 4.33528 6.76641 4.66665 6.76641H14C14.3314 6.76641 14.6 6.49778 14.6 6.16641 14.6 5.83504 14.3314 5.56641 14 5.56641H4.66665zM1.3999 9.8334C1.3999 9.50203 1.66853 9.2334 1.9999 9.2334H13.9999C14.3313 9.2334 14.5999 9.50203 14.5999 9.8334 14.5999 10.1648 14.3313 10.4334 13.9999 10.4334H1.9999C1.66853 10.4334 1.3999 10.1648 1.3999 9.8334zM4.66665 12.9004C4.33528 12.9004 4.06665 13.169 4.06665 13.5004 4.06665 13.8318 4.33528 14.1004 4.66665 14.1004H14C14.3314 14.1004 14.6 13.8318 14.6 13.5004 14.6 13.169 14.3314 12.9004 14 12.9004H4.66665z"}}]},RightJustifyingSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"right-justifying-single",ref,icon:element$1}))});RightJustifyingSingle.displayName="RightJustifyingSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M4.96372 2.59116C5.19803 2.35684 5.19803 1.97695 4.96372 1.74263 4.7294 1.50832 4.3495 1.50832 4.11519 1.74263L2.53945 3.31837 1.96372 2.74263C1.7294 2.50832 1.3495 2.50832 1.11519 2.74263.880874 2.97695.880874 3.35684 1.11519 3.59116L2.11519 4.59116C2.3495 4.82547 2.7294 4.82547 2.96372 4.59116L4.96372 2.59116zM14.4605 2.56689H6.8981C6.56672 2.56689 6.2981 2.83552 6.2981 3.16689 6.2981 3.49827 6.56672 3.76689 6.8981 3.76689H14.4605C14.7918 3.76689 15.0605 3.49827 15.0605 3.16689 15.0605 2.83552 14.7918 2.56689 14.4605 2.56689zM6.8981 7.2334C6.56672 7.2334 6.2981 7.50203 6.2981 7.8334 6.2981 8.16477 6.56672 8.4334 6.8981 8.4334H14.4605C14.7918 8.4334 15.0605 8.16477 15.0605 7.8334 15.0605 7.50203 14.7918 7.2334 14.4605 7.2334H6.8981zM6.2981 12.4999C6.2981 12.1685 6.56672 11.8999 6.8981 11.8999H14.4605C14.7918 11.8999 15.0605 12.1685 15.0605 12.4999 15.0605 12.8313 14.7918 13.0999 14.4605 13.0999H6.8981C6.56672 13.0999 6.2981 12.8313 6.2981 12.4999z"}},{tag:"path",attrs:{fill:"currentColor",d:"M2.87279 5.8999C1.80504 5.8999.939453 6.76549.939453 7.83324.939453 8.90099 1.80504 9.76657 2.87279 9.76657 3.94054 9.76657 4.80612 8.90099 4.80612 7.83324 4.80612 6.76549 3.94054 5.8999 2.87279 5.8999zM2.13945 7.83324C2.13945 7.42823 2.46778 7.0999 2.87279 7.0999 3.2778 7.0999 3.60612 7.42823 3.60612 7.83324 3.60612 8.23824 3.2778 8.56657 2.87279 8.56657 2.46778 8.56657 2.13945 8.23824 2.13945 7.83324zM.939453 12.5002C.939453 11.4325 1.80504 10.5669 2.87279 10.5669 3.94054 10.5669 4.80612 11.4325 4.80612 12.5002 4.80612 13.568 3.94054 14.4336 2.87279 14.4336 1.80504 14.4336.939453 13.568.939453 12.5002zM2.87279 11.7669C2.46778 11.7669 2.13945 12.0952 2.13945 12.5002 2.13945 12.9052 2.46778 13.2336 2.87279 13.2336 3.2778 13.2336 3.60612 12.9052 3.60612 12.5002 3.60612 12.0952 3.2778 11.7669 2.87279 11.7669z",fillRule:"evenodd",clipRule:"evenodd"}}]},TodoList=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"todo-list",ref,icon:element}))});TodoList.displayName="TodoList";function findFirstCursorOffset(snapshot){var _a2;const{dataStream}=(_a2=snapshot.body)!=null?_a2:{},EXCLUDE_TOKENS=[core.DataStreamTreeTokenType.TABLE_START,core.DataStreamTreeTokenType.TABLE_CELL_END,core.DataStreamTreeTokenType.TABLE_CELL_START,core.DataStreamTreeTokenType.TABLE_END,core.DataStreamTreeTokenType.TABLE_ROW_END,core.DataStreamTreeTokenType.TABLE_ROW_START,core.DataStreamTreeTokenType.COLUMN_BREAK,core.DataStreamTreeTokenType.PAGE_BREAK,core.DataStreamTreeTokenType.TAB,core.DataStreamTreeTokenType.DOCS_END,core.DataStreamTreeTokenType.CUSTOM_BLOCK];if(typeof dataStream=="string")for(let i=0;i<dataStream.length;i++){const char=dataStream[i];if(!EXCLUDE_TOKENS.includes(char))return i}return 0}__name(findFirstCursorOffset,"findFirstCursorOffset");const COMPONENT_DOC_HEADER_FOOTER_PANEL="COMPONENT_DOC_HEADER_FOOTER_PANEL",styles$5={panel:"univer-panel",optionsSection:"univer-options-section",optionsFormItem:"univer-options-form-item",optionsInput:"univer-options-input",optionsMarginSetting:"univer-options-margin-setting"};function getSegmentId(documentStyle,editArea,pageIndex){const{useFirstPageHeaderFooter,evenAndOddHeaders,defaultHeaderId,defaultFooterId,firstPageHeaderId,firstPageFooterId,evenPageHeaderId,evenPageFooterId}=documentStyle;return editArea===engineRender.DocumentEditArea.HEADER?useFirstPageHeaderFooter===core.BooleanNumber.TRUE&&pageIndex===0?firstPageHeaderId:evenAndOddHeaders===core.BooleanNumber.TRUE&&pageIndex%2===1?evenPageHeaderId:defaultHeaderId:useFirstPageHeaderFooter===core.BooleanNumber.TRUE&&pageIndex===0?firstPageFooterId:evenAndOddHeaders===core.BooleanNumber.TRUE&&pageIndex%2===1?evenPageFooterId:defaultFooterId}__name(getSegmentId,"getSegmentId");const DocHeaderFooterOptions=__name(props=>{const localeService=core.useDependency(core.LocaleService),univerInstanceService=core.useDependency(core.IUniverInstanceService),renderManagerService=core.useDependency(engineRender.IRenderManagerService),commandService=core.useDependency(core.ICommandService),layoutService=core.useDependency(ui.ILayoutService),{unitId}=props,docSelectionRenderService=renderManagerService.getRenderById(unitId).with(exports2.DocSelectionRenderService),[options,setOptions]=React.useState({}),handleCheckboxChange=__name((val,type)=>{var _a2;setOptions(prev=>({...prev,[type]:val?core.BooleanNumber.TRUE:core.BooleanNumber.FALSE}));const docDataModel=univerInstanceService.getUniverDocInstance(unitId),documentStyle=docDataModel==null?void 0:docDataModel.getSnapshot().documentStyle,docSkeletonManagerService=(_a2=renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(docs.DocSkeletonManagerService),viewModel=docSkeletonManagerService==null?void 0:docSkeletonManagerService.getViewModel();if(documentStyle==null||viewModel==null)return;const editArea=viewModel.getEditArea();let needCreateHeaderFooter=!1;const segmentPage=docSelectionRenderService.getSegmentPage();let needChangeSegmentId=!1;if(type==="useFirstPageHeaderFooter"&&val===!0&&((editArea===engineRender.DocumentEditArea.HEADER&&!documentStyle.firstPageHeaderId||editArea===engineRender.DocumentEditArea.FOOTER&&!documentStyle.firstPageFooterId)&&(needCreateHeaderFooter=!0),needCreateHeaderFooter&&segmentPage===0&&(needChangeSegmentId=!0)),type==="evenAndOddHeaders"&&val===!0&&((editArea===engineRender.DocumentEditArea.HEADER&&!documentStyle.evenPageHeaderId||editArea===engineRender.DocumentEditArea.FOOTER&&!documentStyle.evenPageFooterId)&&(needCreateHeaderFooter=!0),needCreateHeaderFooter&&segmentPage%2===1&&(needChangeSegmentId=!0)),needCreateHeaderFooter){const segmentId=core.Tools.generateRandomId(6);needChangeSegmentId&&docSelectionRenderService.setSegment(segmentId),commandService.executeCommand(CoreHeaderFooterCommandId,{unitId,segmentId,headerFooterProps:{[type]:val?core.BooleanNumber.TRUE:core.BooleanNumber.FALSE}})}else{const segmentPageIndex=docSelectionRenderService.getSegmentPage(),prevSegmentId=docSelectionRenderService.getSegment(),needFocusSegmentId=getSegmentId({...documentStyle,[type]:val?core.BooleanNumber.TRUE:core.BooleanNumber.FALSE},editArea,segmentPageIndex);needFocusSegmentId&&needFocusSegmentId!==prevSegmentId&&docSelectionRenderService.setSegment(needFocusSegmentId),commandService.executeCommand(CoreHeaderFooterCommandId,{unitId,headerFooterProps:{[type]:val?core.BooleanNumber.TRUE:core.BooleanNumber.FALSE}})}layoutService.focus()},"handleCheckboxChange"),handleMarginChange=__name(async(val,type)=>{setOptions(prev=>({...prev,[type]:val})),await commandService.executeCommand(CoreHeaderFooterCommandId,{unitId,headerFooterProps:{[type]:val}}),docSelectionRenderService.removeAllRanges(),docSelectionRenderService.blur()},"handleMarginChange"),closeHeaderFooter=__name(()=>{commandService.executeCommand(CloseHeaderFooterCommand.id,{unitId})},"closeHeaderFooter");return React.useEffect(()=>{const docDataModel=univerInstanceService.getUniverDocInstance(unitId),documentStyle=docDataModel==null?void 0:docDataModel.getSnapshot().documentStyle;if(documentStyle){const{marginHeader=0,marginFooter=0,useFirstPageHeaderFooter=core.BooleanNumber.FALSE,evenAndOddHeaders=core.BooleanNumber.FALSE}=documentStyle;setOptions({marginHeader,marginFooter,useFirstPageHeaderFooter,evenAndOddHeaders})}},[unitId]),jsxRuntime.jsxs("div",{className:styles$5.options,children:[jsxRuntime.jsxs("div",{className:styles$5.optionsSection,children:[jsxRuntime.jsx("div",{className:styles$5.optionsFormItem,children:jsxRuntime.jsx(design.Checkbox,{checked:options.useFirstPageHeaderFooter===core.BooleanNumber.TRUE,onChange:__name(val=>{handleCheckboxChange(val,"useFirstPageHeaderFooter")},"onChange"),children:localeService.t("headerFooter.firstPageCheckBox")})}),jsxRuntime.jsx("div",{className:styles$5.optionsFormItem,children:jsxRuntime.jsx(design.Checkbox,{checked:options.evenAndOddHeaders===core.BooleanNumber.TRUE,onChange:__name(val=>{handleCheckboxChange(val,"evenAndOddHeaders")},"onChange"),children:localeService.t("headerFooter.oddEvenCheckBox")})})]}),jsxRuntime.jsxs("div",{className:clsx(styles$5.optionsSection,styles$5.optionsMarginSetting),children:[jsxRuntime.jsxs("div",{className:styles$5.optionsMarginItem,children:[jsxRuntime.jsx("span",{children:localeService.t("headerFooter.headerTopMargin")}),jsxRuntime.jsx(design.InputNumber,{min:0,max:200,precision:1,value:options.marginHeader,onChange:__name(val=>{handleMarginChange(val,"marginHeader")},"onChange"),className:styles$5.optionsInput})]}),jsxRuntime.jsxs("div",{className:styles$5.optionsMarginItem,children:[jsxRuntime.jsx("span",{children:localeService.t("headerFooter.footerBottomMargin")}),jsxRuntime.jsx(design.InputNumber,{min:0,max:200,precision:1,value:options.marginFooter,onChange:__name(val=>{handleMarginChange(val,"marginFooter")},"onChange"),className:styles$5.optionsInput})]})]}),jsxRuntime.jsx("div",{className:styles$5.optionsSection,children:jsxRuntime.jsx(design.Button,{onClick:closeHeaderFooter,children:localeService.t("headerFooter.closeHeaderFooter")})})]})},"DocHeaderFooterOptions"),DocHeaderFooterPanel=__name(()=>{var _a2;const localeService=core.useDependency(core.LocaleService),renderManagerService=core.useDependency(engineRender.IRenderManagerService),unitId=core.useDependency(core.IUniverInstanceService).getCurrentUniverDocInstance().getUnitId(),viewModel=((_a2=renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(docs.DocSkeletonManagerService)).getViewModel(),[isEditHeaderFooter,setIsEditHeaderFooter]=React.useState(!0);return React.useEffect(()=>{const editArea=viewModel.getEditArea();setIsEditHeaderFooter(editArea!==engineRender.DocumentEditArea.BODY);const subscription=viewModel.editAreaChange$.subscribe(editArea2=>{editArea2!=null&&setIsEditHeaderFooter(editArea2!==engineRender.DocumentEditArea.BODY)});return()=>{subscription.unsubscribe()}},[]),jsxRuntime.jsx("div",{className:styles$5.panel,children:isEditHeaderFooter?jsxRuntime.jsx(DocHeaderFooterOptions,{unitId}):jsxRuntime.jsx("div",{className:styles$5.panelDisableText,children:localeService.t("headerFooter.disableText")})})},"DocHeaderFooterPanel"),COLLAB_CURSOR_LABEL_HEIGHT=18,COLLAB_CURSOR_LABEL_MAX_WIDTH=200,COLLAB_CURSOR_LABEL_TEXT_PADDING_LR=6,COLLAB_CURSOR_LABEL_TEXT_PADDING_TB=4;function drawBubble(ctx,props){let{radius,width,height}=props;radius=radius!=null?radius:0,width=width!=null?width:30,height=height!=null?height:30;let bottomRight=0;bottomRight=Math.min(radius,width/2,height/2),ctx.beginPath(),ctx.moveTo(0,0),ctx.lineTo(width,0),ctx.lineTo(width,height-bottomRight),ctx.arc(width-bottomRight,height-bottomRight,bottomRight,0,Math.PI/2,!1),ctx.lineTo(0,height),ctx.lineTo(0,0),ctx.closePath(),props.fill&&(ctx.save(),ctx.fillStyle=props.fill,props.fillRule==="evenodd"?ctx.fill("evenodd"):ctx.fill(),ctx.restore())}__name(drawBubble,"drawBubble");const _TextBubbleShape=class _TextBubbleShape extends engineRender.Shape{constructor(key,props){super(key,props);__publicField(this,"color");__publicField(this,"text");this.color=props==null?void 0:props.color,this.text=props==null?void 0:props.text}static drawWith(ctx,props){const{text,color}=props;ctx.save(),ctx.font="13px Source Han Sans CN";const textWidth=ctx.measureText(text).width,realInfoWidth=Math.min(textWidth+2*COLLAB_CURSOR_LABEL_TEXT_PADDING_LR,COLLAB_CURSOR_LABEL_MAX_WIDTH);drawBubble(ctx,{height:COLLAB_CURSOR_LABEL_HEIGHT,width:realInfoWidth,radius:4,fill:color,evented:!1}),ctx.fillStyle="rgba(58, 96, 247, 1)";const offsetX=COLLAB_CURSOR_LABEL_TEXT_PADDING_LR,offsetY=COLLAB_CURSOR_LABEL_HEIGHT-COLLAB_CURSOR_LABEL_TEXT_PADDING_TB,maxTextWidth=COLLAB_CURSOR_LABEL_MAX_WIDTH-2*COLLAB_CURSOR_LABEL_TEXT_PADDING_LR;if(textWidth>maxTextWidth){let truncatedText="",currentWidth=0;for(const element2 of text){const charWidth=ctx.measureText(element2).width;if(currentWidth+charWidth<=maxTextWidth-ctx.measureText("...").width)truncatedText+=element2,currentWidth+=charWidth;else{truncatedText+="...";break}}ctx.fillText(truncatedText,offsetX,offsetY)}else ctx.fillText(text,offsetX,offsetY);ctx.restore()}_draw(ctx){_TextBubbleShape.drawWith(ctx,this)}};__name(_TextBubbleShape,"TextBubbleShape");let TextBubbleShape=_TextBubbleShape;var __defProp$p=Object.defineProperty,__getOwnPropDesc$p=Object.getOwnPropertyDescriptor,__decorateClass$p=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$p(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$p(target,key,result),result},"__decorateClass$p"),__decorateParam$p=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$p");const HEADER_FOOTER_STROKE_COLOR="rgba(58, 96, 247, 1)",HEADER_FOOTER_FILL_COLOR="rgba(58, 96, 247, 0.08)";var HeaderFooterType=(HeaderFooterType2=>(HeaderFooterType2[HeaderFooterType2.FIRST_PAGE_HEADER=0]="FIRST_PAGE_HEADER",HeaderFooterType2[HeaderFooterType2.FIRST_PAGE_FOOTER=1]="FIRST_PAGE_FOOTER",HeaderFooterType2[HeaderFooterType2.DEFAULT_HEADER=2]="DEFAULT_HEADER",HeaderFooterType2[HeaderFooterType2.DEFAULT_FOOTER=3]="DEFAULT_FOOTER",HeaderFooterType2[HeaderFooterType2.EVEN_PAGE_HEADER=4]="EVEN_PAGE_HEADER",HeaderFooterType2[HeaderFooterType2.EVEN_PAGE_FOOTER=5]="EVEN_PAGE_FOOTER",HeaderFooterType2))(HeaderFooterType||{});function checkCreateHeaderFooterType(viewModel,editArea,segmentPage){const{documentStyle}=viewModel.getDataModel().getSnapshot(),{defaultHeaderId,defaultFooterId,evenPageHeaderId,evenPageFooterId,firstPageHeaderId,firstPageFooterId,evenAndOddHeaders,useFirstPageHeaderFooter}=documentStyle;switch(editArea){case engineRender.DocumentEditArea.BODY:return{createType:null,headerFooterId:null};case engineRender.DocumentEditArea.HEADER:return useFirstPageHeaderFooter===core.BooleanNumber.TRUE&&!firstPageHeaderId?{createType:0,headerFooterId:null}:evenAndOddHeaders===core.BooleanNumber.TRUE&&segmentPage%2===0&&!evenPageHeaderId?{createType:4,headerFooterId:null}:defaultHeaderId?{createType:null,headerFooterId:defaultHeaderId}:{createType:2,headerFooterId:null};case engineRender.DocumentEditArea.FOOTER:return useFirstPageHeaderFooter===core.BooleanNumber.TRUE&&!firstPageFooterId?{createType:1,headerFooterId:null}:evenAndOddHeaders===core.BooleanNumber.TRUE&&segmentPage%2===0&&!evenPageFooterId?{createType:5,headerFooterId:null}:defaultFooterId?{createType:null,headerFooterId:defaultFooterId}:{createType:3,headerFooterId:null};default:throw new Error(`Invalid editArea: ${editArea}`)}}__name(checkCreateHeaderFooterType,"checkCreateHeaderFooterType");let DocHeaderFooterController=(_d=class extends core.Disposable{constructor(_context,_commandService,_editorService,_instanceSrv,_renderManagerService,_docSkeletonManagerService,_docSelectionRenderService,_localeService,_componentManager){super();__publicField(this,"_loadedMap",new WeakSet);this._context=_context,this._commandService=_commandService,this._editorService=_editorService,this._instanceSrv=_instanceSrv,this._renderManagerService=_renderManagerService,this._docSkeletonManagerService=_docSkeletonManagerService,this._docSelectionRenderService=_docSelectionRenderService,this._localeService=_localeService,this._componentManager=_componentManager,this._initialize()}_initialize(){this._init(),this._drawHeaderFooterLabel(),this._initCustomComponents(),this._listenSwitchMode()}_listenSwitchMode(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(docs.RichTextEditingMutation.id===command.id){const docDataModel=this._context.unit,editArea=this._docSkeletonManagerService.getViewModel().getEditArea(),documentFlavor=docDataModel.getSnapshot().documentStyle.documentFlavor;editArea!==engineRender.DocumentEditArea.BODY&&documentFlavor===core.DocumentFlavor.MODERN&&this._commandService.executeCommand(CloseHeaderFooterCommand.id,{unitId:this._context.unitId})}}))}_initCustomComponents(){const componentManager=this._componentManager;this.disposeWithMe(componentManager.register(COMPONENT_DOC_HEADER_FOOTER_PANEL,DocHeaderFooterPanel))}_init(){const{unitId}=this._context,docObject=neoGetDocObject(this._context);docObject==null||docObject.document==null||this._loadedMap.has(docObject.document)||(this._initialMain(unitId),this._loadedMap.add(docObject.document))}_initialMain(unitId){const docObject=neoGetDocObject(this._context),{document:document2}=docObject;this.disposeWithMe(document2.onDblclick$.subscribeEvent(async evt=>{if(this._isEditorReadOnly(unitId)||!this._isTraditionalMode())return;const{offsetX,offsetY}=evt,{pageLayoutType=engineRender.PageLayoutType.VERTICAL,pageMarginLeft,pageMarginTop}=document2.getOffsetConfig(),coord=this._getTransformCoordForDocumentOffset(offsetX,offsetY);if(coord==null)return;const viewModel=this._docSkeletonManagerService.getViewModel(),skeleton=this._docSkeletonManagerService.getSkeleton(),preEditArea=viewModel.getEditArea(),{editArea,pageNumber}=skeleton.findEditAreaByCoord(coord,pageLayoutType,pageMarginLeft,pageMarginTop);if(preEditArea===editArea)return;viewModel.setEditArea(editArea);const{createType,headerFooterId}=checkCreateHeaderFooterType(viewModel,editArea,pageNumber);if(editArea===engineRender.DocumentEditArea.BODY)this._docSelectionRenderService.setSegment(""),this._docSelectionRenderService.setSegmentPage(-1),this._docSelectionRenderService.setCursorManually(offsetX,offsetY);else if(createType!=null){const segmentId=core.Tools.generateRandomId(6);this._docSelectionRenderService.setSegment(segmentId),this._docSelectionRenderService.setSegmentPage(pageNumber),await this._commandService.executeCommand(CoreHeaderFooterCommand.id,{unitId,createType,segmentId})}else headerFooterId!=null&&(this._docSelectionRenderService.setSegment(headerFooterId),this._docSelectionRenderService.setSegmentPage(pageNumber),this._docSelectionRenderService.setCursorManually(offsetX,offsetY))}))}_getTransformCoordForDocumentOffset(evtOffsetX,evtOffsetY){const docObject=neoGetDocObject(this._context),{document:document2,scene}=docObject,{documentTransform}=document2.getOffsetConfig(),activeViewport=scene.getViewports()[0];if(activeViewport==null)return;const originCoord=activeViewport.transformVector2SceneCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY]));return documentTransform.clone().invert().applyPoint(originCoord)}_drawHeaderFooterLabel(){const localeService=this._localeService;this._renderManagerService.currentRender$.subscribe(unitId=>{if(unitId==null)return;const currentRender=this._renderManagerService.getRenderById(unitId);if(this._editorService.isEditor(unitId)||this._instanceSrv.getUniverDocInstance(unitId)==null||currentRender==null)return;const{mainComponent}=currentRender,docsComponent=mainComponent;this.disposeWithMe(core.toDisposable(docsComponent.pageRender$.subscribe(config=>{if(this._editorService.isEditor(unitId)||!this._isTraditionalMode())return;const isEditBody=this._docSkeletonManagerService.getViewModel().getEditArea()===engineRender.DocumentEditArea.BODY,{page,pageLeft,pageTop,ctx}=config,{pageWidth,pageHeight,marginTop,marginBottom}=page;if(ctx.save(),ctx.translate(pageLeft-.5,pageTop-.5),isEditBody?(engineRender.Rect.drawWith(ctx,{left:0,top:0,width:pageWidth,height:marginTop,fill:"rgba(255, 255, 255, 0.5)"}),ctx.save(),ctx.translate(0,pageHeight-marginBottom),engineRender.Rect.drawWith(ctx,{left:0,top:0,width:pageWidth,height:marginBottom,fill:"rgba(255, 255, 255, 0.5)"}),ctx.restore()):(ctx.save(),ctx.translate(0,marginTop),engineRender.Rect.drawWith(ctx,{left:0,top:marginTop,width:pageWidth,height:pageHeight-marginTop-marginBottom,fill:"rgba(255, 255, 255, 0.5)"}),ctx.restore()),!isEditBody){const headerPathConfigIPathProps={dataArray:[{command:"M",points:[0,marginTop]},{command:"L",points:[pageWidth,marginTop]}],strokeWidth:1,stroke:HEADER_FOOTER_STROKE_COLOR},footerPathConfigIPathProps={dataArray:[{command:"M",points:[0,pageHeight-marginBottom]},{command:"L",points:[pageWidth,pageHeight-marginBottom]}],strokeWidth:1,stroke:HEADER_FOOTER_STROKE_COLOR};engineRender.Path.drawWith(ctx,headerPathConfigIPathProps),engineRender.Path.drawWith(ctx,footerPathConfigIPathProps),ctx.translate(0,marginTop+1),TextBubbleShape.drawWith(ctx,{text:localeService.t("headerFooter.header"),color:HEADER_FOOTER_FILL_COLOR}),ctx.translate(0,pageHeight-marginTop-marginBottom),TextBubbleShape.drawWith(ctx,{text:localeService.t("headerFooter.footer"),color:HEADER_FOOTER_FILL_COLOR})}ctx.restore()})))})}_isEditorReadOnly(unitId){const editor=this._editorService.getEditor(unitId);return editor?editor.isReadOnly():!1}_isTraditionalMode(){return this._context.unit.getSnapshot().documentStyle.documentFlavor===core.DocumentFlavor.TRADITIONAL}},__name(_d,"DocHeaderFooterController"),_d);DocHeaderFooterController=__decorateClass$p([__decorateParam$p(1,core.ICommandService),__decorateParam$p(2,IEditorService),__decorateParam$p(3,core.IUniverInstanceService),__decorateParam$p(4,engineRender.IRenderManagerService),__decorateParam$p(5,core.Inject(docs.DocSkeletonManagerService)),__decorateParam$p(6,core.Inject(exports2.DocSelectionRenderService)),__decorateParam$p(7,core.Inject(core.LocaleService)),__decorateParam$p(8,core.Inject(ui.ComponentManager))],DocHeaderFooterController);const SidebarDocHeaderFooterPanelOperation={id:"sidebar.operation.doc-header-footer-panel",type:core.CommandType.OPERATION,handler:__name(async(accessor,params)=>{const sidebarService=accessor.get(ui.ISidebarService),localeService=accessor.get(core.LocaleService);switch(params.value){case"open":sidebarService.open({header:{title:localeService.t("headerFooter.panel")},children:{label:COMPONENT_DOC_HEADER_FOOTER_PANEL},onClose:__name(()=>{},"onClose"),width:400});break;case"close":default:sidebarService.close();break}return!0},"handler")};function getEmptyHeaderFooterBody(){return{dataStream:`\r
22
+ `,textRuns:[{st:0,ed:0,ts:{fs:9}}],customBlocks:[],paragraphs:[{startIndex:0,paragraphStyle:{spaceAbove:{v:0},lineSpacing:1.5,spaceBelow:{v:0}}}],sectionBreaks:[{startIndex:1}]}}__name(getEmptyHeaderFooterBody,"getEmptyHeaderFooterBody");function createHeaderFooterAction(segmentId,createType,documentStyle,actions){const jsonX=core.JSONX.getInstance(),ID_LEN=6,firstSegmentId=segmentId!=null?segmentId:core.Tools.generateRandomId(ID_LEN),isHeader=createType===HeaderFooterType.DEFAULT_HEADER||createType===HeaderFooterType.FIRST_PAGE_HEADER||createType===HeaderFooterType.EVEN_PAGE_HEADER,insertAction=jsonX.insertOp([isHeader?"headers":"footers",firstSegmentId],{[isHeader?"headerId":"footerId"]:firstSegmentId,body:getEmptyHeaderFooterBody()});actions.push(insertAction);const secondSegmentId=core.Tools.generateRandomId(ID_LEN),insertPairAction=jsonX.insertOp([isHeader?"footers":"headers",secondSegmentId],{[isHeader?"footerId":"headerId"]:secondSegmentId,body:getEmptyHeaderFooterBody()});actions.push(insertPairAction);let key="defaultHeaderId",pairKey="defaultFooterId";switch(createType){case HeaderFooterType.DEFAULT_HEADER:key="defaultHeaderId",pairKey="defaultFooterId";break;case HeaderFooterType.DEFAULT_FOOTER:key="defaultFooterId",pairKey="defaultHeaderId";break;case HeaderFooterType.FIRST_PAGE_HEADER:key="firstPageHeaderId",pairKey="firstPageFooterId";break;case HeaderFooterType.FIRST_PAGE_FOOTER:key="firstPageFooterId",pairKey="firstPageHeaderId";break;case HeaderFooterType.EVEN_PAGE_HEADER:key="evenPageHeaderId",pairKey="evenPageFooterId";break;case HeaderFooterType.EVEN_PAGE_FOOTER:key="evenPageFooterId",pairKey="evenPageHeaderId";break;default:throw new Error(`Unknown header footer type: ${createType}`)}for(const[k,id]of[[key,firstSegmentId],[pairKey,secondSegmentId]])if(documentStyle[k]!=null){const replaceAction=jsonX.replaceOp(["documentStyle",k],documentStyle[k],id);actions.push(replaceAction)}else{const insertAction2=jsonX.insertOp(["documentStyle",k],id);actions.push(insertAction2)}return actions}__name(createHeaderFooterAction,"createHeaderFooterAction");const CoreHeaderFooterCommandId="doc.command.core-header-footer",CoreHeaderFooterCommand={id:CoreHeaderFooterCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),renderManagerService=accessor.get(engineRender.IRenderManagerService),{unitId,segmentId,createType,headerFooterProps}=params,docSkeletonManagerService=(_a2=renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(docs.DocSkeletonManagerService),docDataModel=univerInstanceService.getUniverDocInstance(unitId),docViewModel=docSkeletonManagerService==null?void 0:docSkeletonManagerService.getViewModel();if(docDataModel==null||docViewModel==null)return!1;const editArea=docViewModel.getEditArea(),{documentStyle}=docDataModel.getSnapshot(),isUpdateMargin=(headerFooterProps==null?void 0:headerFooterProps.marginFooter)!=null||(headerFooterProps==null?void 0:headerFooterProps.marginHeader)!=null,textRanges=[{startOffset:0,endOffset:0,collapsed:!0}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges,debounce:!0}};isUpdateMargin&&(doMutation.params.noNeedSetTextRange=!0);const jsonX=core.JSONX.getInstance(),rawActions=[];return createType!=null&&createHeaderFooterAction(segmentId,createType,documentStyle,rawActions),headerFooterProps!=null&&Object.keys(headerFooterProps).forEach(key=>{const value=headerFooterProps[key],oldValue=documentStyle[key];if(value===oldValue)return;let action;if(oldValue===void 0?action=jsonX.insertOp(["documentStyle",key],value):action=jsonX.replaceOp(["documentStyle",key],oldValue,value),rawActions.push(action),key==="useFirstPageHeaderFooter"&&value===core.BooleanNumber.TRUE&&!documentStyle.firstPageHeaderId){const headerFooterType=editArea===engineRender.DocumentEditArea.HEADER?HeaderFooterType.FIRST_PAGE_HEADER:HeaderFooterType.FIRST_PAGE_FOOTER;createHeaderFooterAction(segmentId,headerFooterType,documentStyle,rawActions)}else if(key==="evenAndOddHeaders"&&value===core.BooleanNumber.TRUE&&!documentStyle.evenPageHeaderId){const headerFooterType=editArea===engineRender.DocumentEditArea.HEADER?HeaderFooterType.EVEN_PAGE_HEADER:HeaderFooterType.EVEN_PAGE_FOOTER;createHeaderFooterAction(segmentId,headerFooterType,documentStyle,rawActions)}}),rawActions.length===0?!1:(doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params))},"handler")},OpenHeaderFooterPanelCommand={id:"doc.command.open-header-footer-panel",type:core.CommandType.COMMAND,handler:__name(async(accessor,_params)=>accessor.get(core.ICommandService).executeCommand(SidebarDocHeaderFooterPanelOperation.id,{value:"open"}),"handler")},CloseHeaderFooterCommand={id:"doc.command.close-header-footer",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2;const commandService=accessor.get(core.ICommandService),renderManagerService=accessor.get(engineRender.IRenderManagerService),docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),instanceService=accessor.get(core.IUniverInstanceService),{unitId}=params,renderObject=renderManagerService.getRenderById(unitId);if(renderObject==null)return!1;const{scene}=renderObject,transformer=scene.getTransformerByCreate(),docSkeletonManagerService=renderObject.with(docs.DocSkeletonManagerService),docSelectionRenderService=renderObject.with(exports2.DocSelectionRenderService),skeleton=docSkeletonManagerService==null?void 0:docSkeletonManagerService.getSkeleton(),viewModel=docSkeletonManagerService==null?void 0:docSkeletonManagerService.getViewModel();return viewModel==null||skeleton==null?!1:(docSelectionManagerService.replaceDocRanges([]),transformer.clearSelectedObjects(),docSelectionRenderService.setSegment(""),docSelectionRenderService.setSegmentPage(-1),viewModel.setEditArea(engineRender.DocumentEditArea.BODY),skeleton.calculate(),(_a2=renderObject.mainComponent)==null||_a2.makeDirty(!0),queueMicrotask(()=>{const docDataModel=instanceService.getUnit(unitId),snapshot=docDataModel==null?void 0:docDataModel.getSnapshot();if(snapshot==null)return;const offset=findFirstCursorOffset(snapshot);docSelectionManagerService.replaceDocRanges([{startOffset:offset,endOffset:offset}])}),commandService.executeCommand(SidebarDocHeaderFooterPanelOperation.id,{value:"close"}),!0)},"handler")},COMPONENT_PREFIX="UI_PLUGIN_DOCS",COLOR_PICKER_COMPONENT=`${COMPONENT_PREFIX}_COLOR_PICKER_COMPONENT`,FONT_FAMILY_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_COMPONENT`,FONT_FAMILY_ITEM_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_ITEM_COMPONENT`,FONT_SIZE_COMPONENT=`${COMPONENT_PREFIX}_FONT_SIZE_COMPONENT`,styles$4={docListTypePicker:"univer-doc-list-type-picker",docListTypePickerItem:"univer-doc-list-type-picker-item",docListTypePickerItemActive:"univer-doc-list-type-picker-item-active"},ListTypePicker=__name(props=>{const{value,onChange,options}=props;return jsxRuntime.jsx("div",{className:styles$4.docListTypePicker,children:options.map(item=>jsxRuntime.jsx("img",{className:styles$4.docListTypePickerItem+(value===item.value?`
23
+ ${styles$4.docListTypePickerItemActive}
24
+ `:""),onClick:__name(()=>{onChange(item.value)},"onClick"),src:item.img},item.value))})},"ListTypePicker"),orderListOptions=[{value:core.PresetListType.ORDER_LIST,img:"data:image/jpeg;base64,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"},{value:core.PresetListType.ORDER_LIST_1,img:"data:image/jpeg;base64,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"},{value:core.PresetListType.ORDER_LIST_2,img:"data:image/jpeg;base64,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"},{value:core.PresetListType.ORDER_LIST_3,img:"data:image/jpeg;base64,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"},{value:core.PresetListType.ORDER_LIST_4,img:"data:image/jpeg;base64,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"},{value:core.PresetListType.ORDER_LIST_5,img:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEA2ADYAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/CABEIAPQA2AMBEQACEQEDEQH/xAAyAAEAAgMBAQAAAAAAAAAAAAAABwkGCAoFBAEBAAMBAQAAAAAAAAAAAAAAAAIDBAEF/9oADAMBAAIQAxAAAADv4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKxr669bobzVSoz11dlPmagAAAAAAAAAAOavdn6VMOjmr3Z/hOmLDoA1JAAAAAAAMuNiAAc6e2i1LPZV5orjzvLxst0qx7Ise4WAAAAAAAfaZOAD4SqvRXatnshmcfV53N+dybgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUfaqa/b4dVPn6Pa50QUYwAAAAZOTqAAAAAcuu/PXpdX1vedp2rrn9hgp5YAAAB6hnQAAAABVJorw7vNpa5bh1zyTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWyccN63FrkAAAAAAAAAAABqpZHBu83kqmIeMeAMhJhAAAAAAAABoNdCK5Rs6z2+mRieKAe0ScAAAAAAAACEp8gGUfj633pmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEsuUX66b2cl1al9fnlxma0AAAAAAAAAAc127P0c4tHOXto29qlofdDp/waAIkPiAAAAAAPaJOABzUbs/Svh0c2W7POsJTLDtuee0CDTzwAAAAADISYQAadWwqI0V3AZref7ZRujVLYqE7Ys9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//EACkQAAAGAgIBAwUAAwAAAAAAAAAFBgcIFwQJAgMWAQoQFSAwQGA3OXD/2gAIAQEAAQgA/k9rc/TDX/HIqVjf8oGb3MFA8nvw9c+zVOy9gsq5QOtNDeVN5yTCMrhRE/X2u93JWbldFrdm4094eKUbN9+zV8fcscePBtdcnDh8+SKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIeSKIIU7OcxVFePl/Zv5RKzbDMgRsuQ/bsfgr0sD3Sd9fb6t8tlejpq7Dl/7lr/G+uYS4l6w8HWWOH+kY0TsIB9mub95mrFeI8V4jxXiPFeI8V4jxXiPFeI8V4jxXiPFeI8V4jxXiPFeI8V4jxXiPBcjU2VZnTn4H2GZYWnRaYExzjaMNS+G5PF1uguLi8oL8EpKXxjSw8lcJFFr7vmwbNSYbU8Z9+0WjEm3KQS6AQX/CJft1s/l5M3sjg085mrm1pZQCWnIyybPi9VJ0hVBR8LJZKQqUhlgYFhrAWGsBYawFhrAWGsBYawFhrAWGsBYawCNWSkNVIW4Gf+POM3o21bSJoxIW2/qBmvaC0QPTGQ/rIZjIyxdZpx5BlxiXm5fgmxSDlviY8Msk0y6oToqhOiqE6KoToqhOiqE6KoToqhOiqE6CZviYjMsY0xPxy106RVlm+WHJzu46LIE57SOq2K5l9rpi9ORh0RHWQKNSCbb5IJRBI7+vmFIj1iZGN6ZIekBJZZE44mNHKHK/ZnS7ixYKF0rXwbzWm/bgyhgfGGQLrfCqcE5Iz7PK8S11ELXUQtdRBKuCcnh9gFeX+ltU/wBZ8/BpN5ceGqCDfPmTnRMoi3FOU+FC3H144zDYVCKhFQhPNx9BOMM2/TkqyRXJSPT3R6PG7gchULr46NeHdrcgMjtbkZi6NSI/m30fRqI0tMtnwe/j7htMdRBxeQxZR6WwkU1KFe5mZY7jWXj0+BhFdoIn7m2XkC/nRE15/wBbef6+j/Sy1Ea/TrtTqf7k/wBiT7tA/b2Mk7+2DX8Wad9frvwmRkmlnJ/fqYp9wJT6hWKan5MnS+nmOfgC3hbwt4W8LeFvC3hbwt4W8LeFvC3gnnH+vHGGU/buR49TSbO9IUnz4aQOy1Zybv5Rks5toLv5UgOzXRrE12apUtD9TqiSb5/Ju2Z9nmpnndNUKIVQohVCiFUKIVQohVCiFUKIVQohVCiFUKIVQohVCiFUKIJVvjkjPsA0y/snfCRodgsbVjG55OuEvuAchFdkbDCEcMmsgNGNCxlZKM2mrcBEE3eJQsEkoqb+C9VpjPV+zyCEnpqm0Ws6Of8ASf/EADoQAAEEAQIEAwYCCgEFAAAAAAQCAwUGAQAHCBESExSUpRWV09TV5QkhEBYXICIjJDNAYDBYWXC1t//aAAgBAQAJPwD/AFOnjbl8Q29G4EBsdw3bbFd9YVl3WuKCcRhk0OIQGYRXoFodRRogxsc5LyT8LXEysQ5OtSYn4tY0lxM+zM2t/h0M2K2+xw/Fy6RfaGdrRrEp7EeGM8S0zA4tzNBDbThbzyXBsOqncQDm2V+4eP2i1Tiuo4UfJOqpF62dgE2S5kQcMRl+ccipasuB2GLinvFmxxxchUFHS0lAFnEbMbk8LXBjuBxMbXbWD787zUqqM7h8RRNmMPKOiaLUbMLZ4qH2vzX4yRILtcHiVljZHMSO1Za6SiUr7v8Aj4derUPuHvLuOwEvn4J20RCaTLRB60JyjD5kSbS4x4RbuXPA991Q6UYMKS/ocMylF8Rm3F4XCOoSVFe19xD99JC4JcAfw4I6maWYyxKsray27gFsdaFMpw2lKUIR+IntAlCE4wlKUpgLPhKUpxywlKcYxjGMYxjGMcsfl+5PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+p+a96HfH1PzXvQ74+peUKHc8d3GCDy32V9EcYtHW066pCulaUrT1Jz0qSlWOWcYz+7WJW4j/h88RwVn3ersC0hUsTsduJK05u5SqVKXjkwAVTY2uZew28mKTeHpwxCIiNlCGeKXZtezDFZ/WldlbukQqRyLkBMg3CpqXiMW7N0eS40EzRMweLi5LutwyYT2mtIua1IU4/8AEZ4obRu5Q67LNJakxNma1PXFdAdISplD6Rval2uUdCrW8UPJV+MibAAQQHNtFk/9xXaH/wBDaNWwmobcw8vBwCzI+ElrHLSM7YjPBxMREwkKKXIHGEKS+S5hDSWRQAzTinmRhXXE2Bi1bcboVKDu9KsI45YaZWu2IBmRjSXAZBgWRjiuw+ls2MkhRJKNMQ+BICjGDvsN6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53UR6hKfO6iPUJT53Ub2C2O52nfGHu9HdaWy5/LeKcaV1NOLT/EjPLnzxyVjGcfuR4MtDywJcZKxUmIwfGycaew4KdHyAJTbopoJorroxYhLTjBDDjjLza21qTngi2qxaUSftZEc6deSNu0meJcLwhOz5Ftd2kSAl51WEROKRiKQwloVAWBWGWWwQ4uKiwxo6NjY4ZgKPjo8JhAwYIIYyGhhAxBmmxxhh222GGG0NNIQ2hKcbYVnc4Hbq6Ru4lIGszBD7Vau0Qy+xG2SNwOSNlEiGyUQ2ytzLjeEur5t55/ltzWd09tLGsB6XqNrCyZHEFRZjR8acwttxgyPkY8xhsgKSjihDxV4z2SEYWvCq5D1CkUqAiarUarXgB4uCrlcgQWIyGhIiOFQ2MDHRseMwIIMyhLbLDSEJxyx/wCCdybvwNcBdH29jLJb+J3bVVVL3Z3yvpqYY0ij0CWRNfrZQRYj2ziMwe2DBsJIrNtkJIy0DHVuCR+IlxX8WG0NL3HoFb354eOMi8J3fYtdLt8w1EGmVa6SrWHqkY5KYh4gNMHAhS8Y7LLmMWEsIWSgZpTq4qyQsXPRi32ssPrj5gFiRCU8yrOVMuqGIby41nOctrzlGc5zj9Ml2BGPB9prwYDvR3QBXnP5jwrjqup1xav4l55c+WOScYxiX9Pi/ktS/p8X8lqX9Pi/ktS/p8X8lqX9Pi/ktS/p8X8lqX9Pi/ktS/p8X8lqX9Pi/ktSXfEf8Z3WvBgNdfaAKeb/AJjIrbqel1tCv4V458uWeac5xn/j4nt5OGfhM4GWKdCj7NcPNyTtduVvtYp7D4spbLnd2hiJ2SpbcmCek6LFAchg4SXog0cmMnzjbTL33elziV3LtdTH24o924h9x9xcy9birAIdebdOUmfmzo/9Xo+PGXHtWA8JoVm1yUMKA5k5XQ3uxRNnKK9SNrayNaNwbFH1yJLsMtTg346ECIkHmvGypQsfInIBES8SmOjZKRcbQDHmkMHBykVKBiyMZJxxTBsfIx5rCCQzgTBlujFhljOtkClDuOMPsOIdaWttaVZ0TKNkFdnuIHeEQzjsMNDo6EuhPLxzQynKupxXNWVZxyxnCcGzXmAfp2jZrzAP07Rs15gH6do2a8wD9O0bNeYB+naNmvMA/TtGzXmAfp2jZrzAP07Rs15gH6domUcIF73bQQ8ItnPfYdHX1paCZXnkh5WU9LieSsJznnjGU5/47Tv9w5cRKIUevTO8/ClunnZ+9W2KBHGBjmrSfmAsYciYBGCDQzUwyAHMkQosdESEgbHwsGPGw27m7Nl3uGqoG6XEDu1uzYb7xGWqLptvgbzCw2NzZlDi67CqsVbhy5WIqcPAx854Mf2uOa6KG6NWJ+boO3ExWZ+kkwNokq5Z4CVqsEXWAiB5oDP9U2bXZGRiJQSRFMDLaMyYgdmVDjDwYtqDqNIrcFUKrCsOkvsQ9brUWLDQcWy+a8SY81HxgQojbpZBBLiGcLfeddypav8Ab9ubXu1naCknW/8AZ7SulM/Y8CvjD5aQUsY3EXEx+Csy1lm8R8kqBrQEvMoi5NYCQCNpbTsg/uhHTRi9ubcZmUkIjMLZZiueMj5pURX3J+uTXsj2xW512vwa5aGNDNxGDoeR1f5L0eNfNouHrd3cemkSoKJSMZs1No03PwjshGuqQ2eGiQBHUQI4tKCGsKaUrGFZzomKL3F3V2zBtNtJhIxqGiXpYiRkhnFgxbK3GgmMtCtYwyhak4VhWef5/pGjHBxfC9tZDJa3s98MchfWpo1lGeS3lYT0tp5JwnGeecZVkKF8ud9R0FC+XO+o6ChfLnfUdDRjY5Xiu4sdktD2OwGQQjoU6a8jHNbKcK6m1c05VjHLOcKx/hf9H3EP/wDLLPpSUIRsfGKWtWcJSlKZiaypSlZ5YSlOMZznOc4xjGOefy1LRk7DnJcUFKw54snGlpaecHdUKcE6+KQlt9p1hzLTq8IeacbVyWhScamfCeL8P/T+zu/2+wKwN/d8cz1dXZ6/7aenq6fz5dWbD6T9z1YfSfuerD6T9z1M+L8J4j+n9ndjud8V8b+7457p6e91/wBtXV09P5c+rH+FNyFaht7tqr3tXK2GKHHLk4OPvdbka2XKx4pmcCkGAMSKyR2Sc4YcdbSh3PRnOr3d5Lbz9g1r2BN3AjHgq3fHa7bombh5CaBcFZMiwJhkacIyw06IdGPZbSxIAmhPEivbh3Lc2JEuVqu5FmujYAhXtK1Oh5IAiIiMxkOFhRmo8dxALb5SnpQiVlXX+7JLZa/1u6RVA2w29h3Zu02eXy8pkQZC0MDCBhiNESEvMShrw8ZCQcUKZLTUqWJGRgZRpTDC/wAOH8Q+O4SXncPscTjmzY7lRxW1LxyuxYSZRMaPUEjJfOXLs2stPhm0NNNPSDyQU26Mve2G5EExYqhaYlTnhZKPecdHebdYIbZMj5OMPHLiZqHkBxpSFmQT4iUEFkAiR2tluIPjW4ooGOYmLjs7wvUEm7FbdRhIwpbJO4E+hXg4Rahz4158WOEnCIpuQDVPoiMlh4J2T3+4JuJ6VDdkKhtVxOU9uoJ3DFQ2t9DNDsCiEIl5N8VkosIA+LiEzI47iq0TOuNvtMf42XSNrN/eJqW3R3phcPKaHs9T2fxV8B1kxtvDmDAJeFsl/QUwWzkUc1iIOSh18dDocHDvVZ6HXXXa07GBOV92vuBZjVwbkMtjMcuHXHZyAuMUNkJQWci5YyxnLeiinNt+E/jCJn9ngjzCjiYWgbuG3gGOr7DxXPKBY2P2yhZEppntjvT0/NSiWu9JkOuyW39v4oeKLiMtm7u4V9oU9NWoWTrEgICZWoEmfsVVqEs+7GWeX3Al3WFRDY6HrEpbTi05Q2yoGY4wccZNR3EqYkK00faqTtTFzEE7ZLJYMhJekoCpETMRGWNRRqGY42O27tconLjFXknBv0wXe8CaUH3fafb7vhn3Ge52/Z6+jr6Oro619PPl1K5c8171b7ZqverfbNV71b7ZqverfbNV71b7ZqverfbNV71b7ZqverfbNV71b7ZqverfbNV71b7ZqverfbNV71b7ZqG8J4vxH9R7R7/b7Ar5P9rwLPV1dno/uJ6erq/Pl05/cykTb6O37vGx9vsJquxC1qS3HepMbUyJM5eWxwmiBpi3SjxBDzbI4VZMKe5jjvZTp1J+3u4PF5AbT0WcDy0uJn07OmbookpMIhC3FEtGwVrpEsIrpZxgOXbdcwtwjLYlBhd8eNc2Mcf3M3Dn3OvZThNgn0Dtv2XcOQbYKDlLRENHhkqgyMORcPIHQ0aeFbLKYnb43cmd4quPDdcNad0+JG+ZcKcjGi89JFT2pizu8/U6u0C2DDEF5d9py4MYOMOzXK34SoRn6S4hLJsgaW0l18zDiWySXHkJcwkBacLwleMLwla04VzxhSsfnk2F8wd9O0bC+YO+naNhfMHfTtGwvmDvp2jYXzB307RsL5g76do2F8wd9O0bC+YO+naNhfMHfTtGwvmDvp2jYXzB307RsL5g76do2F8wd9O0TGODi+K7iB3i1vZ74ZA6OhLoTKM8lvJyrqcTyThWcc84wnP7jZwcNPPgT9Vt8KgXNm26v0Dl9davFZcLbcZRIxuSjI84ZXbRMV2VnK+++yLLPuJ/En4bE7IvRn6lO8RYu21zc4uc0bsqiXH2xHINiBRbn4VCMrsatz3bg1JEkGtXv2owxNLQS7BUwORMOs1gQ05OXa7zr7khYrpaFhYYS6ZLybmMNhjqSzEQYsXXo1bcfEhJR+I9w8VOyb+3szcfdu0S/DrFXy03O1nEnHOlyVlv1Ws074VJ8rLSDUc1INgokZaTPywow8l9z8U3h+n6mFYYUu0QQfCnt1HlzVdGkhnpqJFPZ26ZeCJkY1BIbBbTzTgzryXm3W1IwrHGZb+EwbZPcqUtt/Yqy7Ey5dQZFyrLiZgdVemIps+w0luCmh4OCsiSq1Kt3CSVIOhpEy1I/wCyf//EADsRAAEDAQYCBgcFCQAAAAAAAAECAxESAAQTITFBUWEiMkBxkbEQFGBzocHwM1JygdEjNEJwgpKisuH/2gAIAQIBAT8A9k7uzjLgmlCQVrVwSOHM/qdrY10qo9W/ZzFdaq4+9Hxif0s8wW3Q2k1BdJbPEKMCdpnI+O9mro0nES4tLjqW1KoQTSiNyREqnYxHA5HtF3yu17I1pQJ5GZHx9F5zYuat6Cmd+jTHh87XHrP+4V5jtFzIVjMExjIhJOlaQY85/KNYtgu14eGquYiDxiZ0jnMc7XxQBaZSZwGwknaogT5CeeW1rj1n/cK8xZttbqqECVQTqBkOZspJQopUIUkkEcCOzaZi3rd4ppxVREbVf3RV+cz6ELWiaFFNQpMbg7WQtTagpCilQ0IsSVEkkkkkknUk6k/yJbUw21WpIdeJgNqmlAzzOyp+Y0zNmlNXpRaUw22opUULbFMEDKQNdzmYMRGhBEEg6gx4dphN2YacDaXHHZNSxUlAGgA0nPXXIzsBc3n3XMwnDSDJCEpgkZAEAGeXDW1C1uKShJUZUYSCTE65bW0yPaG7y42jDhC0TIS4moA65ZjfPvt629UlQKUhE0oSkBAJBBNI1ME5mYnKzbzjSytBAUoEGQCDJnTvz/5YkkkkySSSeJOZPtg0jEcSioJqMVHQfqeA3MCzzeE4puoLpjpDeQDpJgiYIkwe1NJC3W0K0UtKT3EgGz6EtvOITNKVQJzMdqu/27PvUf7C16/eHfxn5W01y7ShVC0LAkoUFAcYM2U8S9jQKqwuk5iRBjuys+8X3KykJMAQOXEnU/KB7OIQpaghAlSjAA+vE7W9TM0h9jE+5XnPDTXlFlJUhRSoQpJgg/Xhxs3dlLRiKUhpsmApxUVfhG/wnazl1UhGIlaHWxqpszHeNh5bx2e6dBu8vDrIbCUngVTn+RAtJmZMzM7zxnja+dJN3e3cahXNSYz/AMvhyteXkulAbkNtoCUgiIO5gE7R4WumTd5Wr7PCKTOhUQYA2J2/qHHs926TF7QOtQFAbkJmcvDx9F66LV1bOobqI3FVPzB+hZphNGM+Shqeikddw8E8AePkM7PXguAISkNtJ6rafNR3PlzOZ7M06plYWnUZEHRQOoP1kYNsW5zWGHKtcOoYc698cqYj+GzrqnnC4vU7DQAaAd3xOZzNnLzdnQkLYWQgUpAXAA7hA2Fi5c4MMLBgwcQ5HbezDrbQcraS5UmEzGRz4gwDOZGeQ9pf/8QANREAAgEBBQUFBwMFAAAAAAAAAQIRAwASITFBE0BRYXGBkaHB0RAzYHKx8PEEIjJSYnDS4f/aAAgBAwEBPwD4TqPcWQJYmFHEn78tbXK0Xtr+7O7Au9OHbFkqBkLEQVm8OBAkx2elnrObpUFVJAvECW6ZiPvlvFX3tEc58R6eyl7ysP7h4lrfqMk+beK4IuVBjcaSORj0jtttEi9eEROflnPLPS1AGHc4bRiR0xj6m36jJPmszBBebKwIYAgyDiDu+xpzNwT2x3THh7GVWi8AYMjrYqGEMJB0sAAIGAGAH+CXFRmuglEAxYZk8BjI/OeFnD0gHDswkAq5nA89O7tsDIBGonecatR1LFVSMFMFuZPD/muNqyIi4E3icASThqbBgqKWIAhc+m8tSVjexVuKmCeufrbYpBBk3oliZbAznp2CzU1ZQpGAiMcRGFgIEDIYD4wZrqloJgTA++/lZGvqGiJ0O9OSEYjMKSOoFqbFkVjmRj371U92/wAjfQ2o+6Tp5m2e8sLyleII7xFggCbOTEETkcbU0FNboJOJOPP4cJCgkmAMzbb67N7v9UYRx4R22BDAEGQcjZqoU3QrOwzCiY62WqGN0hkbQMInp+N3rYtSTRmlhyER525acLUcDUTRWw6GfS1JCgYtBZmJJH4Gs99q+LUgP5XpHEDDHph4Hhu9XCpRbS9BOgxEefd7KOL1m0LwOyfUWeob2zpiX1Oi9ef4xOFkphSWJvOc2P0HAfeAw3d0DqVPYdQeP3pa5W/jtFjK9BvR685nnNkQIoUaeJ4my0qqyVdQWMkxMntBsFrzjUWPlH+tqiM9265WDJ55Y56efxL/AP/Z"}],OrderListTypePicker=__name(props=>jsxRuntime.jsx(ListTypePicker,{...props,options:orderListOptions}),"OrderListTypePicker"),bulletOptions=[{value:core.PresetListType.BULLET_LIST,img:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEA2ADYAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/CABEIAPQA2AMBEQACEQEDEQH/xAA1AAEAAQUBAQEAAAAAAAAAAAAACAYHCQoLBQEEAQEAAwEBAQAAAAAAAAAAAAAAAgMEBQEG/9oADAMBAAIQAxAAAADf4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqsdDPqc9DNtjc/TtT8/QAAAAAAAAAAAOK79Ryrce+XH897UXy/VAiSAAAAAAAVcSIAAOYl3efgD2U5/cd3Ts4XQAosAAAAAAA/aVOAAeUY+bq8gtVnreAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDeun4ZAaZzkqmAAAAAAAAAABi10VyprlKGuWA/XTnwyXCmCxQAAAABU5fUAAAEVrIwCthloz2YMNdOwbjvHmFCAAAAAHqFdAAAAEMLYQithmby3eiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClvfNZDfQMkdE8uua0AAAAAAAAAACyM48YT6bljcG5unfj5G0U+WdAAKhLwgAAAAAAsjOPGE+m5Y3Bubp34+RtHilsQAD2i5wAAAAAAPD9YYdNQmDXKfNMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIY2w199lOwVjumZVMAAAAAAAAAAAchX6PmQAuhP6mfXr+c6YFlwAAAAAAD2i5wABxwfpeXFSyMra5djz5rqAR9AAAAAAAKhLwgAGKnRXrRbs+y3h0ZWM9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//xAAnEAABBAIBAwMFAQAAAAAAAAAGAAUIFwcJBAEQFgMKYBogMDhAFf/aAAgBAQABCAD4pu19wryoQHzpFCI3TfZtz6FfpGPTSb7hn15vHrPFGXf9GYsiFmXstZOyqeLDuQyzEeW8XZVAu/khEvJCJeSES8kIl5IRLyQiXkhEvJCJeSES8kIl5IRLyQiXkhEvJCJeSESBXt55hU18fl/bvp1TZQhBKPJObQ9aFNU2TJvyixzms1714HqvA9V4HqvA9V4HqvA9V4HqvA9V4HqvA9V4HqvA9V4HqvA9V4HpuDRtq5no8/gfa+MTITs7mOkvXUJq/wCpX6pp1YWBiFmdvHhj5aX7LZby9yqe4W1Eunre4XwP6XJyDzIHz3xLPbGxEVg38+67OJfHTVnMjKYFCuO4TFCKWBY/ACyyy8CN2/8AiEZgHYyceY1Dblz+BYZgrDMFYZgrDMFYZgrDMFYZgrDMFYZgrDMFYZgg0yJHUkbeBz/wThjGzzLiPIGMLzqr2ENGRAplhNKjJ2VcZ4VCnnI+XoWvjtsz2Ov+zBv7PLTx3xt5LXy6oHVVA6qoHVVA6qoHVVA6qoHVVA6qoHVVA6qoHUzY+ZmNy4zpxPwy515w2nS0t7dKAH9vvrKFSRnJilnZ2geam1iYPlxyXNuPwkxPHn6uXW8vq5dby1vboYubQzbJIHgH+eTP63yC7+z8/ZCYfcqduQxsPPdOJa5ErXIla5ErXIla5EhXILy+P3Aa+X+aTP63yC7+z8/ZCYfchZ/95n5jSqhVQqoVUKqFD2OP8F44bt+cmHGUxGyARI/pyNMy+nI0zKH2sCDMCCQxLom/H5qbAIp6/cf8PIUnunu9IZeV+lwesLZ/xS2A4+5GQ4w/0bPJqGM9ppZoz2RLWLNI0gZNLCmeRrvbyt5W8reVvK3lbyt5W8reVvK3lbyt5W8h7I/+88cNp+6cEYS+GssM7RuM1B6LphM6WGDI2BneqCJVQRKqCJVQRKqCJVQRKqCJVQRKqCJVQRKqCJVQRKqCJVQRKqCJCuPnljfuA6cv7dlun6KOztga+Rlrr7PDKPlfq8bprR0/RT1iMDvyMT/Jv//EADsQAAEEAQIDBgMDCwUBAAAAAAQCAwUGAQAHEhOlCBEUlNTVldPlEBUjFyAhIiQwM0BXYLYJFpeo19j/2gAIAQEACT8A/tSEq9w7QsKGA/uduPbGlTVL2jIlBg5OPqsXXhnx0Wy+Pw5TR8qqRNYgKiguOELCsUuRKRlf7al++8misFpjs1bbDNUyrDqneQ7S80bNTeF/WyjIz0M43lrhRnGcJT3QlUpXaEmAH/yZbk1RtcJS94DYoMgyQrUvXjCiW6luG5GiOSkdiKNcrVvdakwYuLq0ixDQs7/MEkmXbcncC4Xu2klvqJJdsdrsEhOTOXX14wpxSTzn0YzwpxhKcYShCcYTjT5I14203Dpd+p5AbSnymrPULHG2CBWOwj9Yh3EpHi8A+O/n57mu7PH3fmT818UO+fqfmvih3z9T818UO+fqfmvih3z9T818UO+fqfmvih3z9T818UO+fqfmvih3z9T818UO+fqfmvih3z9T818UO+fqfmvih3z9T818UO+fqfmvih3z9T818UO+fqXlCh3PHcxgg8t9lfBHGLRxtOuqQrhWlK08Sc8KkpVjuzjGfzqdKy/ZM30u85fqXdYSKcdr221hucs7MTW01qWC24PV1w03JEi0FySUwLZqr93NxxZs1FWMON1S5aL7JOx1yib1dbpMx5AkDuRY6jIplIHaqpvkoabszspPx4jV8ci1ujVurIkWZE0Calq6JI/bEdQlPW6iOoSnrdRHUJT1uojqEp63UR1CU9bqI6hKet1EdQlPW6iOoSnrdRHUJT1uojqEp63UR1CU9bqI6hKet1EdQlPW6iOoSnrdRHUJT1uo3kFsczlO+MPd4Oa0tlz8N4pxpXE04tP6yM93f347lYxnH5sPFWGvzYJMZMwU5HiS0PLxpjSmC4+TjD2SAjwSmVrZJEKYdYfaUpt1tSFZxnsI9mf77dKyaprG19fxXcEZdS9xNU3A2KeyjmJxnDDME2xjHEnDeEqUnMLE1yAiBkBxUHAxocRDxgjec5QLHxkeyOEEMjKs5QwMw00nOc9ycd+f7u2M223Iqm1tiNo26Hbf7Rs3MwnZngbuCkZyQrm3ETU1/wC8N1ioptx1g2XrzZoYxbkfIJhZCqSMTYJd7sCdtetRrTkhYNlqiBuJsnudIhDcRZEdtjapMVup4lnWGlCCP3FcrxLdaQzCyBK8ZTEWnbzcbbOzEUDfbYjccD7m3P2V3DBcKYKrVtis8OViluAHOQM4whsaVYENGIHjJ6JnoKI/lzDI22C7cRNGiJWOVluRhlbwX2o7PmTccQlaHAz4WPvZcoEewtJMeUI0aNnBA7eowOMgdt9tazEkrDaU199WYmPak7lajON15a5O22w2ZskmvLq0eNk3ks4bHS00jWGoxv8A1FuzZ2g9qt8IEdxxsGasPZmqQW6NN3GLBbThh20fc8XE0keTeypbUDHnjMYZcPPUd9j3ILY8HyneW07wc08Vlz8N5DjSuJpxaf1kZ7u/vx3KxjOJfp8X6LUv0+L9FqX6fF+i1L9Pi/Ral+nxfotS/T4v0Wpfp8X6LUv0+L9FqX6fF+i1L9Pi/Ral+nxfotSXPEf8ZzWvBgNcfKAKeb/EZFbdTwutoV+qvHf3d2e9Oc4z+4KFjk7w7bTlahZg5t54Gv3NlLUzQbMYOP8AtBItYvEXXrAQKz3OlMxqx21JU5hWJFjZ/wD1COzRFR2026+0t8IGgpnclNPDDiK/uvtoQW60JfYO9V9MPPlvV7LjqJA8mRDj81SRrkzK3+n7Y0GvMeIm7je7FFVeuRrecZ5aSZaYKEDS+QrHKEFw6okx/KRxWnn1obVX5+D7HvZk2vtHZv7FMtY4uRgTd6rjbJQlnebfeKipPOSGKq2EmRokS+oYFUsE9DILZCsdatMOF9i32xyuTzFjqbQ9jkPtEI4FOtvIx3rZThXE2rvTlWMd2c4Vg2a8wD7do2a8wD7do2a8wD7do2a8wD7do2a8wD7do2a8wD7do2a8wD7do2a8wD7do2a8wD7do2a8wD7do2a8wD7domUcIF53LQQ8ItnPPYdHXxpaCZXnuQ8rKeFxPcrCc578YynP7nYmpbkSEIwseuXLCpSrbi1planHcDwW4VQPgrgDHJKXg5cH98OQBhrbL8hFGZbTjW1l+3uIri3F12G343j3E3LqUPh1ttrLLVQkptiuSIuG20J8HORsqIrhQpxla2WFNRcdBwcMCLGRENDgjRkVFRoLKBwo+NjgmmBAQRB222BRBWWmB2UIaabQhKU4/u5g4mHpNWsNulRoxth6SIja3ElzJzEeyUSEK6c6KE62I2SYIw4+ptLxLDeVOo2T7bv/ABvsP/8ASetk+27/AMb7D/8A0nqhb+VCY2tq0TbrATvBV9vICNMjZiWVDCsQ71L3T3AKIObKRlx9s0OPYSx3KbJdc/Cx/L/0R3X/AMDnvt/ojRf88e+1DLhAvheWghLi2c88wcdfGlpxlee5Dysp4XE9ysJznvxjKchQvlzvcdBQvlzvcdBQvlzvcdBQvlzvcdBQvlzvcdDRjY5XiuYsdktD2OQGQQjgU6a8jHetlOFcTau9OVYx3ZzhWP339Ed1/wDA577f6I0X/PHvtI8J4vw/7Ryefy+QUwT/AAuazxcXJ4P4ieHi4v093Dmw9J+p6sPSfqerD0n6nqw9J+p6sPSfqepnxfhPEfs/3dyOZzxXxv4vjnuHh53H/DVxcPD+jv4sfvg/vGvWqDlq5PR/iCw/Hws4ARGSgfiwHxThfFAlPseIDJHLY4+YO+y8lDiexx/2F7VP/uOuxx/2F7VP/uOtj/yUWG/QYFctsh+Uvd+9fe0LGHqkwg/CblX+4ggcg5WX/ERgwZbnfy3n3Ge5v+4Nz4+mDTTpAtQqYA70/uBejBFCoNHp9OjuZKyrUdk0PMvLLQLBQiSxFTMqBgsbL3Zl7TGKVkrDT1lw5tfmxNic1SclNVHN0wA6vDXC7gZVwZznOVN83GU4UrdGOuw0P4Fq4VI0ciA3BoJ8gh9QoFzp0mlmVivEuCHMx0uwg2tzqwDnK9Ny4wrr6f5iYKOqxVqlartBCrKU/HVLZ+syRkfRYaMZSrIzCy4tCbBPviIaalbTNTcxlCVnqTjU3IR1WGt8JV94YUVS3Bbfs3ZJcAG/wJoHGlg0lqGy5N1xZCXExdriYKYaQp4BCVfbXurfTNV7q30zVe6t9M1XurfTNV7q30zVe6t9M1XurfTNV7q30zVe6t9M1XurfTNV7q30zVe6t9M1XurfTNV7q30zVe6t9M1DeE8X4j9o+8efy+QK+T/C8CzxcXJ4P4ieHi4v093Dn82NkAS9stw7DEQBh4mQ/wDc1FfPeOoNyAR3cCoy3U8mGsAOW8/htH+GeS0Sw+w1qNKPM3Nv0JFz5Izb6mq9RRCkSV+tkg4P+IPHVenhzM0U4hSXVpDSMLxmPjtOfabC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0bC+YO9u0TGODi+K5iB3i1vZ54ZA6OBLoTKM9y3k5VxOJ7k4VnHfnGE5/NAmKLvFU4oiJo2+dA8CNcYiOceWY1XrICeO/FXintyC1lpgplts6NUVKKq09WSpmULK7cdBzR8FZwzN52UsWLW4FzU9y3avjcDMQ0VlnizltNveZw7hOOblKs5SDL3veG2x6Yu675X1IT9ylYhBfjUVqvBAstRNLqmCUsPkREK14uafCjiLNLTr8VFOA/3N//EADoRAAEDAAYFCQYGAwAAAAAAAAECAxEABCExQVESQGFxkRATFBUiMmBysQVCUoGh0jNTgpKiwSMkQ//aAAgBAgEBPwDwpVanzo5xyQg91IsKts4J+p2C/odWiOaHFU8Zn60rVS5oFxskoHeSbSnaDinDMYk2kawlISlKU3JAA3AQORQCkqSblJIM5EQdZqlYS62lBMOIABBNqgBGkM5xyOyOSt1hLSFIBlxQgAXpB945WXZnZOsgkGQYIuIsIp0l+I55yPMZ43/WhJJkkknE2nxcGG20hVZWpJUJS0gAuEZqJsTOR4zYP9JfZ/zNHBZ0VJ/UBbG6N4o6yppQBhSVCULTalacwfUYboJ1eqoC6w0k3aRO/RBVHzijqy44tZvUoncMB8hA5EnTqbgP/FaFJOQcOiRum2M41hpzmnEOfCoEjMXEfMSKVhkgl1vtMrOklQtCZvSrIg2W+s0SlSyEpBUTcAJPAUdhhgMSC4tQW6BB0AB2UTnicrcCJ1ht51r8NZTN4vSd6TI+cTQ1x8ggKCZv0EpSeMTwNL7T4vAkgC8kDiYp1c/8bX7l/ZTq5/42v3L+yj9Vcq4SVlBCiQNEqNwm2Up1hHfR50+o5faXca859NYR30edPqOX2l3GvOfTWASCCLwZG8U6bWvzf4N/ZTpta/N/g39lHX3XgA4vSAMjspEH9IHiBplx5Wi2mYvNwG8+gvOAp1a7HfbnLtRxj+qOsuMq0XExkb0q3H+rxiBrLDQZaSgC2JUc1G8n0GQAHI+0HmloIEwSk5KAsPGw5iRrLTgdbQse8kE7DiN4MjkdcDTa1n3QY2nADaTGssVlxgnRgpN6DcdoyO3iDFOskx+EZy0xHHRn6UfrLj57ViRcgXDacSdpuwjxP//EADYRAAECAQYLBgcBAAAAAAAAAAECEQMAITFBUZEQEhMyQGFxgaGx8BQiYHLB0QQjQ1Ki0uGC/9oACAEDAQE/APCkaPiHFTOqsmgatZ5cstEd8c8GuZpQo+OcVTBVRFB9jwOqvSCXJJpJJO/ACQQRSCCNo0mNDKFEgd1RcGx6jZq1b8EGGVqBI7oLk2tULddg3aVkobviJumuo4eLzEUokQgCBMVqzQdVvVVPz0z9xYsnB3FmveSFhYcTETKSaQbD1xcaRFJTDURSzXkD1khISlKRUONZ3mfARixkkfUSoH/Id+Q0hacdKk2jjUdxlDW4xFTLTMQa2oItcWcmkSAHJAFpkj5kTKN3EgpQaHNZ2Uj+g6SpCF5yQddd4nkIEMTsT5iSLvfxgSwJsBN0u0w7F3D9pdph2LuH7ShxUxCQkKDB5wPQnSF5qvKeRw/DZyvL6jSF5qvKeRw/DZyvL6jSCHBBoM0shC+38le8shC+38le8kw0IJKQxM1JPMnxAtaUB1FrBWdgl2lL5qmtme7+yQtKw6S9orG0dCzSYiytZUdg1Crq3BDWULCr9YrHVekrSUKKTUeFR3ifAhJUoJFZ4VncJ9JiQkxKZiKCKdmsdBnl2UvnhrWnuf1lDhJh0Tk0k07NQ6Pif//Z"},{value:core.PresetListType.BULLET_LIST_1,img:"data:image/jpeg;base64,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"},{value:core.PresetListType.BULLET_LIST_2,img:"data:image/jpeg;base64,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"},{value:core.PresetListType.BULLET_LIST_3,img:"data:image/jpeg;base64,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"},{value:core.PresetListType.BULLET_LIST_4,img:"data:image/jpeg;base64,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"},{value:core.PresetListType.BULLET_LIST_5,img:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEA2ADYAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/CABEIAPQA2AMBEQACEQEDEQH/xAA2AAEAAQQDAQEBAAAAAAAAAAAACgYHCAkDBAULAQIBAQADAQEAAAAAAAAAAAAAAAACAwQFAf/aAAwDAQACEAMQAAAAn8AAAAAAAAAAAAAAAAAAAAAAAAAAAA6oO0AAAAAAAAAAAAfyRHejl3ZZbtmVFgAAAAAAAAAAAGkbVTFP6Ge9kfZ+3H284MSQAAAAAACrjIgAAgK9fHREvJxPJ15MQkBRYAAAAAAB3SpwAcBr5uhsNpmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABob10/hsBpnnJVMAAAAAAAAAADVroryprllDXLQfrp34ZLhTBYoAAAAAqcvqAAADFayOAVsNtGezRhrpkG47x5hQgAAAAB6hXQAAABhhbDCK2G5vLd6IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhFbCOttomDc3UAAAAAAAAAAAMKbYfLJ7/PwithN75eubdytYp8s6AAVCXhAAAAAABYOcfl197n6tNFf0NuNulS8/QPFLYgAHtFzgAAAAAACwc46RdVUjbFeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0yOztokLY7/c8AAAAAAAAAAAAaK9dOuu6Gxume83JcBZcAAAAAAA9oucAARR+hmgzdbJOJ5WuWDztPODH0AAAAAAAqEvCADgIk3RzSeMGi9EfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/xAApEAAABgIABQQCAwAAAAAAAAAABQYHCBcECQIDChAWASBAYBUwFBhQ/9oACAEBAAEIAP8AYzs7BK8HMMzPBzsE0wcMzLPk8XDw8fDxcHG2jXbA9fmxiQUU4ZxW2jMo/wAtuWwTsfJ3ofwWZje3OwNMSr6jtIzXQHObmSeorfPsC5zzksaxi83mZGNj8/m9vJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEPJFEEKdnOYqivHy/b1TE3zt+JGtlrsZvW/0t79Ph6kDoTri1DuNULG6xGtjP3rxHivEeK8R4rxHivEeK8R4rxHivEeK8R4rxHivEeK8R4rxHivEeK8R4LkamyrM5OfgezK4cnjxsjhw4h6xouRAU6udpOfb1fstlvL11V6y2ok053ULsPyslwcyB892lns2yiVaG+PuufFXx01ZzIdNBQrjuiYoRSYWPyADskuBG7f8AxCWaA7LIxzCpNmWfgWGsBYawFhrAWGsBYawFhrAWGsBYawFhrAWGsBYawCNWSkNVIW4Gf+icMYyeZcR5AxhOdVewgocRFEsJpUOc6rZsqijlx3ehaeG2zPY6f7MC/sclOOeFuSV5dUJ0VQnRVCdFUJ0VQnRVCdFUJ0VQnRVCdFUJ0VQnQTN8TEZljGmJ+mXOvOG06SkvLpQIfp99ZSVUhOplSTk5QniotIiD7fPyfjCa6WEOn0fTU31MH9i37UrGTn+RPqeTG67I9qCQD4z8n4/exZ+zp9H0HT/b7snNyUFAubXZVG2QRkOeaYlrqIWuoha6iFrqIWuoglXBOTw+wCvL/dJuMjLTAZZZsC/21zVG9Or56eJNKUsLDI7Mi8mJtDWhotiKWpuXkvOyhJ/zxPmFIqEVCKhFQioQnm4/AnGGbfAk3GRlpgMss2Bf7Vd08TLa+XpWz/OT9fMcbIzC/OxMRiN5vPat5Hhils0TKmTa0TxIrkd8nZKSEEQpRMdshM1Q70F4jHB66uomAm/KG0zVHymcXPe3hbwt4W8LeFvC3hbwt4W8LeFvC3hbwt4J5x/zxxhlPu6qaevIZaMCWhOiYsw6krNNxcRrYz63+lvYVj/QgdCdeLi42FjY+Hh9qoUQqhRCqFEKoUQqhRCqFEKoUQqhRCqFEKoUQqhRCqFEKoUQqhRCqFEEq3xyRn2AaZfsysjl4mNkZfN9dEbv7MJkOXOvZgwsdWNi63ZU08fPs/8A/8QAOhAAAQMDAQYEAwUHBQEAAAAABAIDBQEGBwAIERITFKWU1NXlFZXTCRAgM0AWISIjJDBgFzRQVHJz/9oACAEBAAk/AP8AmDBY6NjhSDpCQOIZEBBBEZWQWYYWQttgUUVhtx8gh9xDLLKFuOLShKlUMFkY2RFHOj5AEhksE4EtlBAhgZY63GChSmHG3xyGHFsvMrQ42tSFJVX9SlK0LTVK0KpRSVJVTcpKk130UlVK1pWlaVpWld1f3ay7aU/iWdtkraq2WtjHaIMlB8L5KxDcdxSf+r+NMM5DGqTIYUyniG+ZBY1sW8A5W0LptyXHvXIIbTAhBRtr3tse7YQIYap3Zd2iwk2ldcma9SjTxOILtKQHaubrXIKQS5AzFlkfGpaEZbuAy04UEhFE/qbhgrRzxsD5fs/JmKDpt58ZjIMNf05EY3yhgM14Ft6SXC5ctOa5EizHsKIS7b4RDxUXGMycmL9mbgfI0Q2h9VvzRmUrtAvax5F3gUmcsG+I60xrns6YbdaZcUVByYiDm2uilWJCNeJCewrlzbyxbNzTSLdt5+dbvPabxXZVCG2HiyMylRFq25fkTACOrLPPzGNbjJpLQojmRrJilVq2K+E68w064GUoZZIjjjaVrFIUGQWGp8dVatOqELKGq4hVWCHmqpcV90/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6n5r5od9fU/NfNDvr6l5QodzruYwQeW+yvgjjFo42nXVIVwrSlaeJNeFSUqpurSlfxKlboiMMnRl25IgrWHLmTbuz3esVyLQtIWMjGy35Y6w7HmadKxHocJVcGQ52FLE+IQLVES8rs5YvfcHkGcQw/RE53uoGi6L6eaUQ2dBYqFMa3VrSWYn7vZpzhDrUgiKtGIxJa2LrWaQNWTdhxFEXJdRwzXKTMXpdsisu5LumFJqqlJCekznmG1dMJ0wiGh2/viO4SnndRHcJTzuojuEp53UR3CU87qI7hKed1EdwlPO6iO4SnndRHcJTzuojuEp53UR3CU87qI7hKed1EdwlPO6iO4SnndRHcJTzuojuEp53UbyC2OZynesPd4Oa0tlz+W8U40riacWn+JFd2/fTcqlK0/A6wOYph1Ij5Q7hYzJNW1UYdIEaKCdKYbdqlbo7ZgjjzdFNoKHUqjqLZfyXtK5Mn5+78pbTOU0gXJlq77ru44iVus2OkKBjxliQ8xJmFvLt2yY+FBcYWyzKLlnx0mK/y/BmNskWpi24jbGyhtv7Rs3MwmzPA3uCkZyQtzHETaa/2wysVFNuOsGy9vNmhjFuR8gmFkLUkYm4Jd7YE217ajWnJC4MLWiBkTCeTpEIbiLIjsY3VJit2nSWdYaUII/eK5XiW60hmFkCV0qmIunHmRsZ3MRYGdsEZHA+DZPwrkMFwpgq2rtiq8NViluAHOQM4whsaVYENGIHjJ6JnoKI/TmGRt2C44ibGiJWOVVuRhlZgv20cPmTccQlaHAz4WPvsuUCPYWkmPKEaNGrQgdvUYHGQON8a2zEkrDaU18auYmPak7yuozjdeWuTu27DZm5JNdXVo62TeSzRsdLTSNUajG/tFtmzaDxVnCBHccbBmrh2ZrSCyjZuRiwW00Yduj4PFxNkjyb1VLagY88ZijLh56jvue5BbHR8p3ltO8HNPFZc/lvIcaVxNOLT/Eiu7fvpuVSlaS/b4vyWpft8X5LUv2+L8lqX7fF+S1L9vi/Jal+3xfktS/b4vyWpft8X5LUv2+L8lqX7fF+S1L9vi/JakueI/1nNa6MBrj5QBTzf8xkVt1PC62hX8K6b926u9Na0r/YKFjk5hxtOW1CzBzbzwNv3mylqZsG5jBx/wCoJFti+Iu3rgIFZ3OlMxqx21JU5RVJFjD/ANoRs0RUdibK+Jb8IGgpnJKbPDDiLfyvjQgt1oS/YO+rfTDz5b1vVcdRIHkyIcfW1JG3JmVv+z8Y2DbzHUTd433cUVa9uRrdaV5aSZaYKEDS+QqnKEFo6okx+qRxWnn1obVb8/B7HuzJi+6Nm/Yplrji5GBNzVeN2ShLOZs7xUVJ1qQxarYSZGxIl9QwKpYJ6GQWyFcdtXTDhfct9scrk8xY6m0PU5D7RCOBTrbyKb1sporibVvTVVKbq1oqhs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07Rs14gH07RMo4QLzuWgh4RbNeew6OvjS0Eyuu5Dyqp4XE7lUTWu+lKpr/AGcE2lkiQhGFj25eVFSlrZFtplanHaDwWQrQPgrwBjklLocuD+MOQBhrbL8hFGVbTTWLL+zcRbi3F27DZ4zHkTJdpQ9HW22qstWhJTbFuSItG20J6OcjZURXChTjK1ssKai46Dg4YEWMiIaHBGjIqKjQWUDhR8bHBNMCAgiDttsCiCstMDsoQ002hCUpp/l81/2IrH2Poogb9s8p3n0yngrUtQJ5X/gicnCEfCraiuZJSTn+2GLEsjFn+qd7lk7PmQoJHwizLV+LkoZhcM34aa7/APEe18iyC2PiUq+9G3IkTq4wpn9RJPqDHf8AgNi2REKaVdWTL8LCMMh7Mtpl3e02+U0EUZKS5dEx0BDCHSpylJHbHImv+xFY9x7FEE/sZiyzOpU8FatqhPK/8ETk4Qj4rcsrzJKSc/2oomrsfLLLfirM2cc8XAU4QSSSQ4zG29iLJsm+pbrz7zqxoqwbzMcU444oW2LheUpUXJfehlwgXpeWghLi2a88wcdfGlpxlddyHlVTwuJ3Komtd9KVTUKF8Od6joKF8Od6joKF8Od6joKF8Od6joKF8Od6joaMbHK6rmLHZLQ9TkBkEI4FOmvIpvWymiuJtW9NVUpurWiqf3rMBvfHF7g1HOBIpRmSh5Jmi1RVz2xKpQoqAumAKVQ2FmgqpIEITVtyj4b5QpCTr3wTe5x5GFM1jgVZjbnjWa1fXbFzoYooWAyLACqQmahVLSPJDpTPQKn4t9aAo86XmJc4SMioqMEIPkpOSPIbFBj48EVt0o040p1oYQQZp0gkh1tlltbi0prbYMvtSy4LUnjjHEm0OfG7PMaePvbkJBuvNFNzCaK7VBZaKuj2GO65Fxbi5xchIMfcR0nV9P8A1HJ5/L5BTBP5XNZ4uLk8H5ieHi4v37uGtw9p9z1cPafc9XD2n3PVw9p9z1cPafc9TPV9J1H9P8O5HM54r435vXPcPDzuP8tXFw8P7t/FT+/ZgN744vcGo5wJFKMyUPJM0WqKue2JVKFFQF0wBSqGws0FVJAhCatuUfDfKFIu8HaDyPE3TLD7Ox0nA0AjcX2SutUx1zyEURzRTcwmiuuBFzYlKxNuDtuOWylBkk8UL/j8gTElFBkjDSobQT5caQ+wtpmQFZkRTo94kNxSSWGjwiwnHW0oKFIYqtpeNTMKX3s+5HGxddG1ZY9uzpuzXcr9yKOkMS3Le0cms1cWElZetFkOftYmVKuCzZfhl5F+ZswQVyEjbhg7stO5ooGdtu57ZlgJ63rghJQZsyNmISaiyCo2WipER1ooGQAJIELGdbfHecaWlVf1MJGSez/fEYHsV/aJ29KxI8za0hgrJMyhnE2YLthChiow4PFGRzR4S6DTQJWUlLOugO1wmaBc5GvtUdmXBqzXSZu6NiPM9/S1+7HOTpFx+hhibZBelHLo2f7klXquurnceltR5jqQYNwaAt1Lix52C2cNpRE0zbDWOLrv22btx/f8868kRlvC+brfcbsjILUic4OFDRhSrbumbNJbHt+35plNTVffb3dvbNW93b2zVvd29s1b3dvbNW93b2zVvd29s1b3dvbNW93b2zVvd29s1b3dvbNW93b2zVvd29s1b3dvbNW93b2zVvd29s1DdJ1fUf1HxHn8vkCvk/ldCzxcXJ4PzE8PFxfv3cNfwyjScjbULrNwZCQw4iplv4Ks2bYJoh1NKpfEdyLfcYHDxxTalslwVo37Fkt0oS0quJLpyjdDrg1ZN2HESPbdqhEu8pExel2yCxLbtGHSqi6UkJ6TBZfcRUYTqS1tDuS8VtG5QYQPIM4hh+tGwRap1UUX081UloGdyqUG7urWksxAWg9Wrwh1qTo9GjFjsCBiMNCiCCtNjjCjDtpaYHHYaShplhlpCW2mm0pbbbSlCE0TSlKfcbC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0bC+IO9O0TGODi9VzEDvFrerzwyB0cCXQmUV3LeTVXE4ncmiq031pRNfwJfW0Kw6Q4kUUk0lTbLanFpHDDaIMLfqlNaNCiMPEkOVS0w046tKK3NMYtsC87iYTirZVsuZCLyHD4gtxtuPx3amRb0AckbesR+kCOwbd8DZHxmYkrkmLjklztozJT7dMW2fiXH0PvWLblnRLUeyQWtKUvykwaqrspcM4XRKanT08dJTR600Wae+unF/lH//xAA6EQACAQEGAwQHBQkBAAAAAAABAgMRAAQSITFRQEFxIjJhgRNSYJGhscEQQnKC8AUUIyQzQ1Bi0eL/2gAIAQIBAT8A/wAxrbTI8WzQzQpJKpDA+jklQdpWAGFnH3lZRmTmCKLaS7ugxqRJHykTMfmGqneuXKp4q6dt2hIJSZSrU+6R2lfaqkfG0dxaI4kvDLuMAofBhioR1tebpDgL4liYDM0pGx/BmVrstehPE3CIIjTNkWyUnKiDU56VPwA3tPf0SqwgO3rHuDpzb4DxNpJHlbFIxY+Og8ANAOnEyTySgKThjUALGuSgDTqRufKntgII41DXl2UsKrEgBkI3YnJa7H31yH8k/Z/jRHk5wsv5gM6dKdRaWFomANGVhVHXNXXcH5jl0oTw91QPeIlOmInrhBannS0rmSR3OrMT0HIeQoPsU47nID/ZdGU7CQ4SOlc6b04iKT0UiSeqwJG40I8xUWvEJBMsfahc4lYZha6q2xByz+dbKrOQqgsToAKn3C0tIIBBUGR2DygUOAAdlK78ztnyIrxEc0sX9NytdRqp6qajzpWxvk5BAYLXXAqqffSvuNtcz7YQwvM4RB1PJRufoOdrxccCB4qthHbU5k01YfVdtOJhheZwidSToo5k/wDOZytDCkCBEH4m5sdz9By+y+XTWaIbl0HxZfmR5jiI5GjYOhow/VDuDzFrveFvC1GTjvLt4jdTyPLQ20zOQGpte736WscZpGO83r/+fnqeJjkaNg6GjD9UO4PMWvF9eZQijAtBjoe8dvw+HPn7QfHws90xKskDYg64hGT2xTJgDo2E5HQjLI62IIJBBBGRByIOxHFQEyRtACcan0sJBoca95Qcu8uYzyIrYCWQBbzd5H5CVVpIvXKjgbHrmbTXOWIYgC6UriAIZR/uhzXx1A5kcT+z4cUhlPdjyHi5H0GfUi0kscS4pGCjlXU+AGpPS09/d6rF2F9Y989OS+VT4jif3tYIligAYgdqQjslj3io1OehNBSmRFnd5GxOxZtyfgNh4DL2o//EADQRAAIAAgYGCAcBAQAAAAAAAAECAxEAITFBUWESIkBxgZEEEGChscHR8BMjMkJScuFDgv/aAAgBAwEBPwDsoA6OyoRKWkqNYReAZ1EGzG00WICdEzRvxao8DYRhLltUapQ4qZCCM51FeNGj6Yk0NTxMxuNopCjPMLIuObAb6p8eY2npDzYILqzmxsHAeOVIfR2at9UYfcfTxyoqqgkokPHeb9pSGqTNrGssbSTbu4dsDEZiRCAIFRdvpByx93W/PWvUcYVg8DKXOdEcOJioiplNoOB998xtEUlYbEWylzIHnRFCqqi4d954mvqI0Yykf6KwP/InPwG0OumrLiO+48DSG8xoNU61EG+VhGMxh4SoSAJkgDE0T5kT4ktRQVQ2TN53Wj+g7SyI/wBSg538xXQQIYrkT+xJHL17Yu6w1meAvJ92m6kKPpGTyEzqm4ZHyPPaXcQ10jwGJwo7s7aTcBcBgOqDGsRzkp8j5HaGUMCrCYPvnSJDMM4g2HyOfVBg6Os31XD8f74bSyhgVYTB986Q4AQlidIz1ch69oVjSJWIJFTIsAdHInCYsuOVLaxWDtUTUYRPtOpE/U2E1XG3KQoSi1woirihM0Pmp3bqqJGR6jqtZImYO42HuOG09IeShBa1u4ep8DRVZzJQSfdpsHGidHUVvrHD7f73DI7T8ExGLxJgGxRbK6ZrAzAvnZRVCiSgAZe69/aj/9k="}],BulletListTypePicker=__name(props=>jsxRuntime.jsx(ListTypePicker,{...props,options:bulletOptions}),"BulletListTypePicker"),ORDER_LIST_TYPE_COMPONENT=`${COMPONENT_PREFIX}_ORDER_LIST_TYPE_COMPONENT`,BULLET_LIST_TYPE_COMPONENT=`${COMPONENT_PREFIX}_BULLET_LIST_TYPE_COMPONENT`,TabCommand={id:"doc.command.tab",type:core.CommandType.COMMAND,async handler(accessor,params){const mutations=accessor.get(exports2.DocAutoFormatService).onAutoFormat(TabCommand.id,params);return(await core.sequenceExecuteAsync(mutations,accessor.get(core.ICommandService))).result}},AfterSpaceCommand={id:"doc.command.after-space",type:core.CommandType.COMMAND,async handler(accessor){const mutations=accessor.get(exports2.DocAutoFormatService).onAutoFormat(AfterSpaceCommand.id);return(await core.sequenceExecuteAsync(mutations,accessor.get(core.ICommandService))).result}},EnterCommand={id:"doc.command.enter",type:core.CommandType.COMMAND,async handler(accessor){const mutations=accessor.get(exports2.DocAutoFormatService).onAutoFormat(EnterCommand.id);return(await core.sequenceExecuteAsync(mutations,accessor.get(core.ICommandService))).result}};function whenDocAndEditorFocused(contextService){return contextService.getContextValue(core.FOCUSING_DOC)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&!contextService.getContextValue(core.FOCUSING_COMMON_DRAWINGS)}__name(whenDocAndEditorFocused,"whenDocAndEditorFocused");function whenDocAndEditorFocusedWithBreakLine(contextService){return contextService.getContextValue(core.FOCUSING_DOC)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&!contextService.getContextValue(core.FOCUSING_COMMON_DRAWINGS)}__name(whenDocAndEditorFocusedWithBreakLine,"whenDocAndEditorFocusedWithBreakLine");const TabShortCut={id:TabCommand.id,binding:ui.KeyCode.TAB,preconditions:whenDocAndEditorFocused},ShiftTabShortCut={id:TabCommand.id,binding:ui.KeyCode.TAB|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused,staticParameters:{shift:!0}};var __defProp$o=Object.defineProperty,__getOwnPropDesc$o=Object.getOwnPropertyDescriptor,__decorateClass$o=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$o(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$o(target,key,result),result},"__decorateClass$o"),__decorateParam$o=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$o");const BODY_DEFAULT_FONTSIZE=11,HEADER_FOOTER_DEFAULT_FONTSIZE=9,DEFAULT_TEXT_STYLE={ff:"Arial",fs:BODY_DEFAULT_FONTSIZE};let DocMenuStyleService=(_e=class extends core.Disposable{constructor(_textSelectionManagerService,_univerInstanceService,_renderManagerService){super();__publicField(this,"_cacheStyle",null);this._textSelectionManagerService=_textSelectionManagerService,this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._init()}_init(){this._listenDocRangeChange()}_listenDocRangeChange(){this.disposeWithMe(this._textSelectionManagerService.textSelection$.subscribe(()=>{this._clearStyleCache()}))}getStyleCache(){return this._cacheStyle}getDefaultStyle(){var _a2;const docDataModel=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);if(docDataModel==null)return{...DEFAULT_TEXT_STYLE};const unitId=docDataModel==null?void 0:docDataModel.getUnitId(),docSkeletonManagerService=(_a2=this._renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(docs.DocSkeletonManagerService),docViewModel=docSkeletonManagerService==null?void 0:docSkeletonManagerService.getViewModel();return docViewModel==null?{...DEFAULT_TEXT_STYLE}:docViewModel.getEditArea()===engineRender.DocumentEditArea.BODY?{...DEFAULT_TEXT_STYLE}:{...DEFAULT_TEXT_STYLE,fs:HEADER_FOOTER_DEFAULT_FONTSIZE}}setStyleCache(style){this._cacheStyle={...this._cacheStyle,...style}}_clearStyleCache(){this._cacheStyle=null}},__name(_e,"DocMenuStyleService"),_e);DocMenuStyleService=__decorateClass$o([__decorateParam$o(0,core.Inject(docs.DocSelectionManagerService)),__decorateParam$o(1,core.IUniverInstanceService),__decorateParam$o(2,engineRender.IRenderManagerService)],DocMenuStyleService);function handleInlineFormat(preCommandId,params,commandService){return commandService.executeCommand(SetInlineFormatCommand.id,{preCommandId,...params!=null?params:{}})}__name(handleInlineFormat,"handleInlineFormat");const SetInlineFormatBoldCommandId="doc.command.set-inline-format-bold",SetInlineFormatBoldCommand={id:SetInlineFormatBoldCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(SetInlineFormatBoldCommandId,params,commandService)},"handler")},SetInlineFormatItalicCommandId="doc.command.set-inline-format-italic",SetInlineFormatItalicCommand={id:SetInlineFormatItalicCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(SetInlineFormatItalicCommandId,params,commandService)},"handler")},SetInlineFormatUnderlineCommandId="doc.command.set-inline-format-underline",SetInlineFormatUnderlineCommand={id:SetInlineFormatUnderlineCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(SetInlineFormatUnderlineCommandId,params,commandService)},"handler")},SetInlineFormatStrikethroughCommandId="doc.command.set-inline-format-strikethrough",SetInlineFormatStrikethroughCommand={id:SetInlineFormatStrikethroughCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(SetInlineFormatStrikethroughCommandId,params,commandService)},"handler")},SetInlineFormatSubscriptCommandId="doc.command.set-inline-format-subscript",SetInlineFormatSubscriptCommand={id:SetInlineFormatSubscriptCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(SetInlineFormatSubscriptCommandId,params,commandService)},"handler")},SetInlineFormatSuperscriptCommandId="doc.command.set-inline-format-superscript",SetInlineFormatSuperscriptCommand={id:SetInlineFormatSuperscriptCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(SetInlineFormatSuperscriptCommandId,params,commandService)},"handler")},SetInlineFormatFontSizeCommandId="doc.command.set-inline-format-fontsize",SetInlineFormatFontSizeCommand={id:SetInlineFormatFontSizeCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(SetInlineFormatFontSizeCommandId,params,commandService)},"handler")},SetInlineFormatFontFamilyCommandId="doc.command.set-inline-format-font-family",SetInlineFormatFontFamilyCommand={id:SetInlineFormatFontFamilyCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(SetInlineFormatFontFamilyCommandId,params,commandService)},"handler")},SetInlineFormatTextColorCommandId="doc.command.set-inline-format-text-color",SetInlineFormatTextColorCommand={id:SetInlineFormatTextColorCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(SetInlineFormatTextColorCommandId,params,commandService)},"handler")},SetInlineFormatTextBackgroundColorCommandId="doc.command.set-inline-format-text-background-color",SetInlineFormatTextBackgroundColorCommand={id:SetInlineFormatTextBackgroundColorCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(SetInlineFormatTextBackgroundColorCommandId,params,commandService)},"handler")},ResetInlineFormatTextBackgroundColorCommandId="doc.command.reset-inline-format-text-background-color",ResetInlineFormatTextBackgroundColorCommand={id:ResetInlineFormatTextBackgroundColorCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return handleInlineFormat(ResetInlineFormatTextBackgroundColorCommandId,params,commandService)},"handler")},COMMAND_ID_TO_FORMAT_KEY_MAP={[SetInlineFormatBoldCommand.id]:"bl",[SetInlineFormatItalicCommand.id]:"it",[SetInlineFormatUnderlineCommand.id]:"ul",[SetInlineFormatStrikethroughCommand.id]:"st",[SetInlineFormatFontSizeCommand.id]:"fs",[SetInlineFormatFontFamilyCommand.id]:"ff",[SetInlineFormatTextColorCommand.id]:"cl",[SetInlineFormatTextBackgroundColorCommand.id]:"bg",[ResetInlineFormatTextBackgroundColorCommand.id]:"bg",[SetInlineFormatSubscriptCommand.id]:"va",[SetInlineFormatSuperscriptCommand.id]:"va"},SetInlineFormatCommand={id:"doc.command.set-inline-format",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2;const{value,preCommandId}=params,commandService=accessor.get(core.ICommandService),docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),docMenuStyleService=accessor.get(DocMenuStyleService),docRanges=docSelectionManagerService.getDocRanges(),activeRange=(_a2=docRanges.find(r2=>r2.isActive))!=null?_a2:docRanges[0];if(docRanges.length===0)return!1;const{segmentId}=docRanges[0],docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);if(docDataModel==null)return!1;const body=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(body==null)return!1;const unitId=docDataModel.getUnitId();let formatValue;switch(preCommandId){case SetInlineFormatBoldCommand.id:case SetInlineFormatItalicCommand.id:case SetInlineFormatUnderlineCommand.id:case SetInlineFormatStrikethroughCommand.id:case SetInlineFormatSubscriptCommand.id:case SetInlineFormatSuperscriptCommand.id:{const defaultStyle=docMenuStyleService.getDefaultStyle(),curTextStyle=getStyleInTextRange(body,activeRange,defaultStyle);formatValue=getReverseFormatValueInSelection(curTextStyle,preCommandId);break}case SetInlineFormatFontSizeCommand.id:case SetInlineFormatFontFamilyCommand.id:{formatValue=value;break}case SetInlineFormatTextColorCommand.id:case SetInlineFormatTextBackgroundColorCommand.id:{formatValue={rgb:value};break}case ResetInlineFormatTextBackgroundColorCommand.id:{formatValue={rgb:null};break}default:throw new Error(`Unknown command: ${preCommandId} in handleInlineFormat`)}const doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:docRanges}},textX=new core.TextX,jsonX=core.JSONX.getInstance(),memoryCursor=new core.MemoryCursor;memoryCursor.reset();for(const range of docRanges){let{startOffset,endOffset,rangeType}=range;if(startOffset==null||endOffset==null)continue;if(rangeType===core.DOC_RANGE_TYPE.RECT&&(startOffset=startOffset-1),startOffset===endOffset){const cacheStyle=docMenuStyleService.getStyleCache(),key=COMMAND_ID_TO_FORMAT_KEY_MAP[preCommandId];docMenuStyleService.setStyleCache({[key]:(cacheStyle==null?void 0:cacheStyle[key])!==void 0?getReverseFormatValue(cacheStyle,key,preCommandId):formatValue});continue}const body2={dataStream:"",textRuns:[{st:0,ed:endOffset-startOffset,ts:{[COMMAND_ID_TO_FORMAT_KEY_MAP[preCommandId]]:formatValue}}]},len=startOffset-memoryCursor.cursor;len!==0&&textX.push({t:core.TextXActionType.RETAIN,len}),textX.push({t:core.TextXActionType.RETAIN,body:body2,len:endOffset-startOffset}),memoryCursor.reset(),memoryCursor.moveCursor(endOffset)}const path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")};function isTextDecoration(value){return value!==null&&typeof value=="object"}__name(isTextDecoration,"isTextDecoration");function getReverseFormatValue(ts,key,preCommandId){if(/bl|it/.test(key))return(ts==null?void 0:ts[key])===core.BooleanNumber.TRUE?core.BooleanNumber.FALSE:core.BooleanNumber.TRUE;if(/ul|st/.test(key))return isTextDecoration(ts==null?void 0:ts[key])&&(ts==null?void 0:ts[key]).s===core.BooleanNumber.TRUE?{s:core.BooleanNumber.FALSE}:{s:core.BooleanNumber.TRUE};if(/va/.test(key))return preCommandId===SetInlineFormatSubscriptCommand.id?(ts==null?void 0:ts[key])===core.BaselineOffset.SUBSCRIPT?core.BaselineOffset.NORMAL:core.BaselineOffset.SUBSCRIPT:(ts==null?void 0:ts[key])===core.BaselineOffset.SUPERSCRIPT?core.BaselineOffset.NORMAL:core.BaselineOffset.SUPERSCRIPT}__name(getReverseFormatValue,"getReverseFormatValue");function getStyleInTextRange(body,textRange,defaultStyle){var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2,_i2,_j2,_k2,_l2,_m2,_n2;const{startOffset,endOffset,collapsed}=textRange;if(collapsed){const textRuns2=(_a2=body.textRuns)!=null?_a2:[];let textRun=null;for(let i=textRuns2.length-1;i>=0;i--){const curTextRun=textRuns2[i];if(curTextRun.st<startOffset&&startOffset<=curTextRun.ed){textRun=curTextRun;break}}return textRun!=null&&textRun.ts?{...defaultStyle,...textRun.ts}:defaultStyle}const{textRuns=[]}=core.getBodySlice(body,startOffset,endOffset),style=core.Tools.deepClone(defaultStyle);style.fs=Math.max(style.fs,...textRuns.map(t=>{var _a3,_b3;return(_b3=(_a3=t==null?void 0:t.ts)==null?void 0:_a3.fs)!=null?_b3:style.fs})),style.ff=(_d2=(_c2=(_b2=textRuns.find(t=>{var _a3;return((_a3=t.ts)==null?void 0:_a3.ff)!=null}))==null?void 0:_b2.ts)==null?void 0:_c2.ff)!=null?_d2:style.ff,style.it=textRuns.length&&textRuns.every(t=>{var _a3;return((_a3=t.ts)==null?void 0:_a3.it)===core.BooleanNumber.TRUE})?core.BooleanNumber.TRUE:core.BooleanNumber.FALSE,style.bl=textRuns.length&&textRuns.every(t=>{var _a3;return((_a3=t.ts)==null?void 0:_a3.bl)===core.BooleanNumber.TRUE})?core.BooleanNumber.TRUE:core.BooleanNumber.FALSE,style.ul=textRuns.length&&textRuns.every(t=>{var _a3,_b3;return((_b3=(_a3=t.ts)==null?void 0:_a3.ul)==null?void 0:_b3.s)===core.BooleanNumber.TRUE})?(_e2=textRuns[0].ts)==null?void 0:_e2.ul:style.ul,style.st=textRuns.length&&textRuns.every(t=>{var _a3,_b3;return((_b3=(_a3=t.ts)==null?void 0:_a3.st)==null?void 0:_b3.s)===core.BooleanNumber.TRUE})?(_f2=textRuns[0].ts)==null?void 0:_f2.st:style.st,style.bg=(_i2=(_h2=(_g2=textRuns.find(t=>{var _a3;return((_a3=t.ts)==null?void 0:_a3.bg)!=null}))==null?void 0:_g2.ts)==null?void 0:_h2.bg)!=null?_i2:style.bg,style.cl=(_l2=(_k2=(_j2=textRuns.find(t=>{var _a3;return((_a3=t.ts)==null?void 0:_a3.cl)!=null}))==null?void 0:_j2.ts)==null?void 0:_k2.cl)!=null?_l2:style.cl;const vas=textRuns.filter(t=>{var _a3;return((_a3=t==null?void 0:t.ts)==null?void 0:_a3.va)!=null});if(vas.length>0&&vas.length===textRuns.length){const va=(_m2=vas[0].ts)==null?void 0:_m2.va;let isSame=!0;for(let i=1;i<vas.length;i++)if(((_n2=vas[i].ts)==null?void 0:_n2.va)!==va){isSame=!1;break}isSame&&(style.va=va)}return style}__name(getStyleInTextRange,"getStyleInTextRange");function getReverseFormatValueInSelection(textStyle,preCommandId){const key=COMMAND_ID_TO_FORMAT_KEY_MAP[preCommandId];return getReverseFormatValue(textStyle,key,preCommandId)}__name(getReverseFormatValueInSelection,"getReverseFormatValueInSelection");const ListOperationCommand={id:"doc.command.list-operation",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{var _a2,_b2;const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),listType=params.listType,docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),docRanges=(_a2=docSelectionManagerService.getDocRanges())!=null?_a2:[];if(docDataModel==null||docRanges.length===0)return!1;const segmentId=docRanges[0].segmentId,paragraphs=(_b2=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody())==null?void 0:_b2.paragraphs;if(paragraphs==null)return!1;const currentParagraphs=getParagraphsInRanges(docRanges,paragraphs),unitId=docDataModel.getUnitId(),doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:docRanges,isEditing:!1}};new core.MemoryCursor().reset();const textX=core.BuildTextUtils.paragraph.bullet.switch({paragraphs:currentParagraphs,listType,document:docDataModel,segmentId}),jsonX=core.JSONX.getInstance(),path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},ChangeListTypeCommand={id:"doc.command.change-list-type",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{var _a2,_b2;const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),{listType}=params,docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),activeRanges=docSelectionManagerService.getDocRanges();if(docDataModel==null||activeRanges==null||!activeRanges.length)return!1;const{segmentId}=activeRanges[0],selections=(_a2=docSelectionManagerService.getDocRanges())!=null?_a2:[],paragraphs=(_b2=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody())==null?void 0:_b2.paragraphs;if(paragraphs==null)return!1;const currentParagraphs=getParagraphsInRanges(selections,paragraphs),unitId=docDataModel.getUnitId(),textX=core.BuildTextUtils.paragraph.bullet.set({paragraphs:currentParagraphs,listType,segmentId,document:docDataModel});if(!textX)return!1;const jsonX=core.JSONX.getInstance(),doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:selections,isEditing:!1}},path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")};var ChangeListNestingLevelType=(ChangeListNestingLevelType2=>(ChangeListNestingLevelType2[ChangeListNestingLevelType2.increase=1]="increase",ChangeListNestingLevelType2[ChangeListNestingLevelType2.decrease=-1]="decrease",ChangeListNestingLevelType2))(ChangeListNestingLevelType||{});const ChangeListNestingLevelCommand={id:"doc.command.change-list-nesting-level",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{var _a2,_b2;if(!params)return!1;const{type}=params,docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),activeRange=docSelectionManagerService.getActiveTextRange();if(docDataModel==null||activeRange==null)return!1;const{segmentId}=activeRange,selections=(_a2=docSelectionManagerService.getDocRanges())!=null?_a2:[],paragraphs=(_b2=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody())==null?void 0:_b2.paragraphs;if(paragraphs==null)return!1;const currentParagraphs=getParagraphsInRange(activeRange,paragraphs),unitId=docDataModel.getUnitId(),jsonX=core.JSONX.getInstance(),textX=core.BuildTextUtils.paragraph.bullet.changeNestLevel({paragraphs:currentParagraphs,type,segmentId,document:docDataModel}),doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:selections,isEditing:!1}},path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},BulletListCommand={id:"doc.command.bullet-list",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{const commandService=accessor.get(core.ICommandService);return params!=null&&params.value?commandService.syncExecuteCommand(ChangeListTypeCommand.id,{listType:params.value}):commandService.syncExecuteCommand(ListOperationCommand.id,{listType:core.PresetListType.BULLET_LIST})},"handler")},CheckListCommand={id:"doc.command.check-list",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{const commandService=accessor.get(core.ICommandService);return params!=null&&params.value?commandService.syncExecuteCommand(ChangeListTypeCommand.id,{listType:params.value}):commandService.syncExecuteCommand(ListOperationCommand.id,{listType:core.PresetListType.CHECK_LIST})},"handler")},ToggleCheckListCommand={id:"doc.command.toggle-check-list",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{var _a2;if(!params)return!1;const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),{index,segmentId,textRanges}=params,docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);if(docDataModel==null||((_a2=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody())==null?void 0:_a2.paragraphs)==null)return!1;const unitId=docDataModel.getUnitId(),doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:textRanges!=null?textRanges:[],segmentId,isEditing:!1}},textX=core.BuildTextUtils.paragraph.bullet.toggleChecklist({document:docDataModel,paragraphIndex:index,segmentId});if(!textX)return!1;const jsonX=core.JSONX.getInstance(),path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},OrderListCommand={id:"doc.command.order-list",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{const commandService=accessor.get(core.ICommandService);return params!=null&&params.value?commandService.syncExecuteCommand(ChangeListTypeCommand.id,{listType:params.value}):commandService.syncExecuteCommand(ListOperationCommand.id,{listType:core.PresetListType.ORDER_LIST})},"handler")},QuickListCommand={id:"doc.command.quick-list",type:core.CommandType.COMMAND,handler(accessor,params){var _a2,_b2,_c2,_d2,_e2;if(!params)return!1;const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),activeRange=docSelectionManagerService.getActiveTextRange();if(docDataModel==null||activeRange==null)return!1;const{segmentId}=activeRange,{listType,paragraph}=params,{paragraphStart,paragraphEnd}=paragraph,textX=new core.TextX,jsonX=core.JSONX.getInstance(),{defaultTabStop=36}=docDataModel.getSnapshot().documentStyle,sectionBreaks=(_b2=(_a2=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody())==null?void 0:_a2.sectionBreaks)!=null?_b2:[],{startIndex,paragraphStyle={}}=paragraph,{indentFirstLine,snapToGrid,indentStart}=paragraphStyle,paragraphProperties=core.PRESET_LIST_TYPE[listType].nestingLevel[0].paragraphProperties||{},{hanging:listHanging,indentStart:listIndentStart}=paragraphProperties,bulletParagraphTextStyle=paragraphProperties.textStyle,{charSpace,gridType}=findNearestSectionBreak(startIndex,sectionBreaks)||{charSpace:0,gridType:core.GridType.LINES},charSpaceApply=engineRender.getCharSpaceApply(charSpace,defaultTabStop,gridType,snapToGrid);let listId=core.Tools.generateRandomId(6);const paragraphs=(_d2=(_c2=docDataModel.getBody())==null?void 0:_c2.paragraphs)!=null?_d2:[],curIndex=paragraphs.findIndex(i=>i.startIndex===paragraph.startIndex),prevParagraph=paragraphs[curIndex-1],nextParagraph=paragraphs[curIndex+1];prevParagraph&&prevParagraph.bullet&&prevParagraph.bullet.listType.indexOf(listType)===0?listId=prevParagraph.bullet.listId:nextParagraph&&nextParagraph.bullet&&nextParagraph.bullet.listType.indexOf(listType)===0&&(listId=nextParagraph.bullet.listId);const doMutation={id:docs.RichTextEditingMutation.id,params:{unitId:docDataModel.getUnitId(),actions:[],textRanges:[{startOffset:paragraphStart,endOffset:paragraphStart,collapsed:!0}],isEditing:!1}};textX.push({t:core.TextXActionType.RETAIN,len:paragraphStart}),textX.push({t:core.TextXActionType.DELETE,len:paragraphEnd-paragraphStart}),textX.push({t:core.TextXActionType.RETAIN,len:1,body:{dataStream:"",paragraphs:[{startIndex:0,paragraphStyle:{...paragraphStyle,textStyle:{...paragraphStyle.textStyle,...bulletParagraphTextStyle},indentFirstLine:void 0,hanging:listHanging,indentStart:{v:engineRender.getNumberUnitValue(listIndentStart,charSpaceApply)-engineRender.getNumberUnitValue(listHanging,charSpaceApply)+engineRender.getNumberUnitValue(indentFirstLine,charSpaceApply)+engineRender.getNumberUnitValue(indentStart,charSpaceApply)}},bullet:{...(_e2=paragraph.bullet)!=null?_e2:{nestingLevel:0,textStyle:{fs:20}},listType,listId}}]}});const path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)}};function getParagraphsInRange(activeRange,paragraphs){const{startOffset,endOffset}=activeRange,results=[];let start=-1;for(const paragraph of paragraphs){const{startIndex}=paragraph;(startOffset>start&&startOffset<=startIndex||endOffset>start&&endOffset<=startIndex||startIndex>=startOffset&&startIndex<=endOffset)&&results.push(paragraph),start=startIndex}return results}__name(getParagraphsInRange,"getParagraphsInRange");function getParagraphsInRanges(ranges,paragraphs){const results=[];for(const range of ranges){const ps=getParagraphsInRange(range,paragraphs);results.push(...ps)}return results}__name(getParagraphsInRanges,"getParagraphsInRanges");function findNearestSectionBreak(currentIndex,sectionBreaks){const sortedSectionBreaks=sectionBreaks.sort(core.sortRulesFactory("startIndex"));for(let i=0;i<sortedSectionBreaks.length;i++){const sectionBreak=sectionBreaks[i];if(sectionBreak.startIndex>=currentIndex)return sectionBreak}}__name(findNearestSectionBreak,"findNearestSectionBreak");const AlignOperationCommand={id:"doc.command.align-action",type:core.CommandType.COMMAND,handler:__name((accessor,params)=>{var _a2;const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),{alignType}=params,docDataModel=univerInstanceService.getCurrentUniverDocInstance();if(docDataModel==null)return!1;const allRanges=docSelectionManagerService.getDocRanges();if(allRanges.length===0)return!1;const segmentId=allRanges[0].segmentId,paragraphs=(_a2=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody())==null?void 0:_a2.paragraphs;if(paragraphs==null)return!1;const currentParagraphs=getParagraphsInRanges(allRanges,paragraphs),unitId=docDataModel.getUnitId(),isAlreadyAligned=currentParagraphs.every(paragraph=>{var _a3;return((_a3=paragraph.paragraphStyle)==null?void 0:_a3.horizontalAlign)===alignType}),doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:allRanges}},memoryCursor=new core.MemoryCursor;memoryCursor.reset();const textX=new core.TextX,jsonX=core.JSONX.getInstance();for(const paragraph of currentParagraphs){const{startIndex}=paragraph;textX.push({t:core.TextXActionType.RETAIN,len:startIndex-memoryCursor.cursor});const paragraphStyle={...paragraph.paragraphStyle,horizontalAlign:isAlreadyAligned?core.HorizontalAlign.UNSPECIFIED:alignType};textX.push({t:core.TextXActionType.RETAIN,len:1,body:{dataStream:"",paragraphs:[{...paragraph,paragraphStyle,startIndex:0}]},coverType:core.UpdateDocsAttributeType.REPLACE}),memoryCursor.moveCursorTo(startIndex+1)}const path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},AlignLeftCommand={id:"doc.command.align-left",type:core.CommandType.COMMAND,handler:__name(accessor=>accessor.get(core.ICommandService).syncExecuteCommand(AlignOperationCommand.id,{alignType:core.HorizontalAlign.LEFT}),"handler")},AlignCenterCommand={id:"doc.command.align-center",type:core.CommandType.COMMAND,handler:__name(accessor=>accessor.get(core.ICommandService).syncExecuteCommand(AlignOperationCommand.id,{alignType:core.HorizontalAlign.CENTER}),"handler")},AlignRightCommand={id:"doc.command.align-right",type:core.CommandType.COMMAND,handler:__name(accessor=>accessor.get(core.ICommandService).syncExecuteCommand(AlignOperationCommand.id,{alignType:core.HorizontalAlign.RIGHT}),"handler")},AlignJustifyCommand={id:"doc.command.align-justify",type:core.CommandType.COMMAND,handler:__name(accessor=>accessor.get(core.ICommandService).syncExecuteCommand(AlignOperationCommand.id,{alignType:core.HorizontalAlign.JUSTIFIED}),"handler")},BoldShortCut={id:SetInlineFormatBoldCommand.id,binding:ui.KeyCode.B|ui.MetaKeys.CTRL_COMMAND,preconditions:whenDocAndEditorFocused},ItalicShortCut={id:SetInlineFormatItalicCommand.id,binding:ui.KeyCode.I|ui.MetaKeys.CTRL_COMMAND,preconditions:whenDocAndEditorFocused},UnderlineShortCut={id:SetInlineFormatUnderlineCommand.id,binding:ui.KeyCode.U|ui.MetaKeys.CTRL_COMMAND,preconditions:whenDocAndEditorFocused},StrikeThroughShortCut={id:SetInlineFormatStrikethroughCommand.id,binding:ui.KeyCode.X|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:whenDocAndEditorFocused},SubscriptShortCut={id:SetInlineFormatSubscriptCommand.id,binding:ui.KeyCode.COMMA|ui.MetaKeys.CTRL_COMMAND,preconditions:whenDocAndEditorFocused},SuperscriptShortCut={id:SetInlineFormatSuperscriptCommand.id,binding:ui.KeyCode.PERIOD|ui.MetaKeys.CTRL_COMMAND,preconditions:whenDocAndEditorFocused},AlignLeftShortCut={id:AlignLeftCommand.id,binding:ui.KeyCode.L|ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused},AlignRightShortCut={id:AlignRightCommand.id,binding:ui.KeyCode.R|ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused},AlignCenterShortCut={id:AlignCenterCommand.id,binding:ui.KeyCode.E|ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused},AlignJustifyShortCut={id:AlignJustifyCommand.id,binding:ui.KeyCode.J|ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused},OrderListShortCut={id:OrderListCommand.id,binding:ui.KeyCode.Digit7|ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused},BulletListShortCut={id:BulletListCommand.id,binding:ui.KeyCode.Digit8|ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused},styles$3={docCountBar:"univer-doc-count-bar"},SetDocZoomRatioUndoMutationFactory=__name((accessor,params)=>{const documentModel=accessor.get(core.IUniverInstanceService).getUniverDocInstance(params.unitId),old=(documentModel==null?void 0:documentModel.zoomRatio)||1;return{...core.Tools.deepClone(params),zoomRatio:old}},"SetDocZoomRatioUndoMutationFactory"),SetDocZoomRatioOperation={id:"doc.operation.set-zoom-ratio",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>{const documentModel=accessor.get(core.IUniverInstanceService).getUniverDocInstance(params.unitId);if(!documentModel)return!1;const documentData=documentModel.getSnapshot();return documentData.settings==null?documentData.settings={zoomRatio:params.zoomRatio}:documentData.settings.zoomRatio=params.zoomRatio,!0},"handler")},ZOOM_MAP=[50,80,100,130,150,170,200,400],DOC_ZOOM_RANGE=[10,400];function ZoomSlider(){const commandService=core.useDependency(core.ICommandService),univerInstanceService=core.useDependency(core.IUniverInstanceService),currentDoc$=React.useMemo(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC),[]),documentDataModel=core.useObservable(currentDoc$),getCurrentZoom=React.useCallback(()=>{var _a2,_b2;if(!documentDataModel)return 100;const currentZoom=((_b2=(_a2=documentDataModel.getSettings())==null?void 0:_a2.zoomRatio)!=null?_b2:1)*100;return Math.round(currentZoom)},[documentDataModel]),[zoom,setZoom]=React.useState(()=>getCurrentZoom());React.useEffect(()=>(setZoom(getCurrentZoom()),commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===SetDocZoomRatioOperation.id){const currentZoom=getCurrentZoom();setZoom(currentZoom)}}).dispose),[commandService,getCurrentZoom]);function handleChange(value){if(setZoom(value),documentDataModel==null)return;const zoomRatio=value/100;commandService.executeCommand(SetDocZoomRatioOperation.id,{unitId:documentDataModel.getUnitId(),zoomRatio})}return __name(handleChange,"handleChange"),jsxRuntime.jsx(design.Slider,{min:DOC_ZOOM_RANGE[0],value:zoom,shortcuts:ZOOM_MAP,onChange:handleChange})}__name(ZoomSlider,"ZoomSlider");function CountBar(props){return jsxRuntime.jsx("section",{className:styles$3.docCountBar,children:jsxRuntime.jsx(ZoomSlider,{})})}__name(CountBar,"CountBar");const styles$2={docFooterContainer:"univer-doc-footer-container"},DocFooter=__name(()=>jsxRuntime.jsxs("div",{className:styles$2.docFooterContainer,children:[jsxRuntime.jsx("div",{}),jsxRuntime.jsx(CountBar,{})]}),"DocFooter"),DOCS_UI_PLUGIN_CONFIG_KEY="docs-ui.config",defaultPluginConfig={layout:{docContainerConfig:DefaultDocContainerConfig,toolbarConfig:DefaultToolbarConfig}};var INSERT_ROW_POSITION=(INSERT_ROW_POSITION2=>(INSERT_ROW_POSITION2[INSERT_ROW_POSITION2.ABOVE=0]="ABOVE",INSERT_ROW_POSITION2[INSERT_ROW_POSITION2.BELLOW=1]="BELLOW",INSERT_ROW_POSITION2))(INSERT_ROW_POSITION||{}),INSERT_COLUMN_POSITION=(INSERT_COLUMN_POSITION2=>(INSERT_COLUMN_POSITION2[INSERT_COLUMN_POSITION2.LEFT=0]="LEFT",INSERT_COLUMN_POSITION2[INSERT_COLUMN_POSITION2.RIGHT=1]="RIGHT",INSERT_COLUMN_POSITION2))(INSERT_COLUMN_POSITION||{});function genEmptyTable(rowCount,colCount){let dataStream=core.DataStreamTreeTokenType.TABLE_START;const paragraphs=[],sectionBreaks=[];for(let i=0;i<rowCount;i++){dataStream+=core.DataStreamTreeTokenType.TABLE_ROW_START;for(let j=0;j<colCount;j++)dataStream+=`${core.DataStreamTreeTokenType.TABLE_CELL_START}\r
25
+ ${core.DataStreamTreeTokenType.TABLE_CELL_END}`,paragraphs.push({startIndex:dataStream.length-3,paragraphStyle:{spaceAbove:{v:3},lineSpacing:2,spaceBelow:{v:0}}}),sectionBreaks.push({startIndex:dataStream.length-2});dataStream+=core.DataStreamTreeTokenType.TABLE_ROW_END}return dataStream+=core.DataStreamTreeTokenType.TABLE_END,{dataStream,paragraphs,sectionBreaks}}__name(genEmptyTable,"genEmptyTable");function getEmptyTableCell(){return{margin:{start:{v:10},end:{v:10},top:{v:5},bottom:{v:5}}}}__name(getEmptyTableCell,"getEmptyTableCell");function getEmptyTableRow(col){const tableCell=getEmptyTableCell();return{tableCells:[...new Array(col).fill(null).map(()=>core.Tools.deepClone(tableCell))],trHeight:{val:{v:30},hRule:core.TableRowHeightRule.AUTO}}}__name(getEmptyTableRow,"getEmptyTableRow");function getTableColumn(width){return{size:{type:core.TableSizeType.SPECIFIED,width:{v:width}}}}__name(getTableColumn,"getTableColumn");function genTableSource(rowCount,colCount,pageContentWidth){const tableColumn=getTableColumn(pageContentWidth/colCount),tableRow=getEmptyTableRow(colCount),tableRows=[...new Array(rowCount).fill(null).map(()=>core.Tools.deepClone(tableRow))],tableColumns=[...new Array(colCount).fill(null).map(()=>core.Tools.deepClone(tableColumn))],tableId=core.generateRandomId(6);return{tableRows,tableColumns,tableId,align:core.TableAlignmentType.START,indent:{v:0},textWrap:core.TableTextWrapType.NONE,position:{positionH:{relativeFrom:core.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:core.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:core.TableSizeType.UNSPECIFIED,width:{v:pageContentWidth}}}}__name(genTableSource,"genTableSource");function getRangeInfoFromRanges(textRange,rectRanges){if(!textRange&&!rectRanges)return null;if(rectRanges&&rectRanges.length>0){let startOffset=Number.POSITIVE_INFINITY,endOffset=Number.NEGATIVE_INFINITY;const segmentId="";for(const rectRange of rectRanges){const{startOffset:st,endOffset:ed,segmentId:sid}=rectRange;st==null||ed==null||sid==null||(startOffset=Math.min(startOffset,st),endOffset=Math.max(endOffset,ed))}if(Number.isFinite(startOffset)&&Number.isFinite(endOffset))return{startOffset,endOffset,segmentId}}else if(textRange){const{startOffset,endOffset,segmentId}=textRange;return startOffset==null||endOffset==null||segmentId==null?null:{startOffset,endOffset,segmentId}}}__name(getRangeInfoFromRanges,"getRangeInfoFromRanges");function getInsertRowBody(col){let dataStream=core.DataStreamTreeTokenType.TABLE_ROW_START;const paragraphs=[],sectionBreaks=[];for(let i=0;i<col;i++)dataStream+=`${core.DataStreamTreeTokenType.TABLE_CELL_START}\r
26
+ ${core.DataStreamTreeTokenType.TABLE_CELL_END}`,paragraphs.push({startIndex:dataStream.length-3,paragraphStyle:{spaceAbove:{v:3},lineSpacing:2,spaceBelow:{v:0}}}),sectionBreaks.push({startIndex:dataStream.length-2});return dataStream+=core.DataStreamTreeTokenType.TABLE_ROW_END,{dataStream,paragraphs,sectionBreaks}}__name(getInsertRowBody,"getInsertRowBody");function getInsertColumnBody(){const dataStream=`${core.DataStreamTreeTokenType.TABLE_CELL_START}\r
27
+ ${core.DataStreamTreeTokenType.TABLE_CELL_END}`,paragraphs=[],sectionBreaks=[];return paragraphs.push({startIndex:1,paragraphStyle:{spaceAbove:{v:3},lineSpacing:2,spaceBelow:{v:0}}}),sectionBreaks.push({startIndex:2}),{dataStream,paragraphs,sectionBreaks}}__name(getInsertColumnBody,"getInsertColumnBody");function getInsertRowActionsParams(rangeInfo,position,viewModel){var _a2,_b2,_c2;const{startOffset,endOffset,segmentId}=rangeInfo,vm=viewModel.getSelfOrHeaderFooterViewModel(segmentId),index=position===0?startOffset:endOffset;let tableRow=null;const tableId=(_c2=(_b2=(_a2=viewModel.getBody())==null?void 0:_a2.tables)==null?void 0:_b2.find(t=>index>=t.startIndex&&index<=t.endIndex))==null?void 0:_c2.tableId;let rowIndex=0;for(const section of vm.getChildren()){for(const paragraph of section.children){const{children}=paragraph,table=children[0];if(table){for(const row of table.children)if(row.startIndex<=index&&index<=row.endIndex){rowIndex=table.children.indexOf(row),tableRow=row;break}}if(tableRow)break}if(tableRow)break}return tableRow==null||tableId==null?null:{offset:position===0?tableRow.startIndex:tableRow.endIndex+1,colCount:tableRow.children.length,tableId,insertRowIndex:position===0?rowIndex:rowIndex+1}}__name(getInsertRowActionsParams,"getInsertRowActionsParams");function getInsertColumnActionsParams(rangeInfo,position,viewModel){var _a2,_b2,_c2;const{startOffset,endOffset,segmentId}=rangeInfo,vm=viewModel.getSelfOrHeaderFooterViewModel(segmentId),index=position===0?startOffset:endOffset,tableId=(_c2=(_b2=(_a2=viewModel.getBody())==null?void 0:_a2.tables)==null?void 0:_b2.find(t=>index>=t.startIndex&&index<=t.endIndex))==null?void 0:_c2.tableId,offsets=[];let table=null,columnIndex=-1;for(const section of vm.getChildren()){for(const paragraph of section.children){const{children}=paragraph,tableNode=children[0];if(tableNode){if(index<tableNode.startIndex||index>tableNode.endIndex)continue;table=tableNode;for(const row of tableNode.children){for(const cell of row.children){const cellIndex=row.children.indexOf(cell);if(index>=cell.startIndex&&index<=cell.endIndex){columnIndex=cellIndex;break}}if(columnIndex!==-1)break}}if(table)break}if(table)break}if(table==null||tableId==null||columnIndex===-1)return null;let cursor=0;for(const row of table.children){const cell=row.children[columnIndex],insertIndex=position===0?cell.startIndex:cell.endIndex+1;offsets.push(insertIndex-cursor),cursor=insertIndex}return{offsets,tableId,columnIndex,rowCount:table.children.length}}__name(getInsertColumnActionsParams,"getInsertColumnActionsParams");function getColumnWidths(pageWidth,tableColumns,insertColumnIndex){const widths=[];let newColWidth=tableColumns[insertColumnIndex].size.width.v,totalWidth=0;for(let i=0;i<tableColumns.length;i++)totalWidth+=tableColumns[i].size.width.v;totalWidth+=newColWidth;for(let i=0;i<tableColumns.length;i++)widths.push(tableColumns[i].size.width.v/totalWidth*pageWidth);return newColWidth=newColWidth/totalWidth*pageWidth,{widths,newColWidth}}__name(getColumnWidths,"getColumnWidths");function getDeleteRowsActionsParams(rangeInfo,viewModel){var _a2,_b2,_c2;const{startOffset,endOffset,segmentId}=rangeInfo,vm=viewModel.getSelfOrHeaderFooterViewModel(segmentId),tableId=(_c2=(_b2=(_a2=viewModel.getBody())==null?void 0:_a2.tables)==null?void 0:_b2.find(t=>startOffset>=t.startIndex&&endOffset<=t.endIndex))==null?void 0:_c2.tableId,rowIndexes=[];let offset=-1,len=0,cursor=-1,selectWholeTable=!1;for(const section of vm.getChildren()){for(const paragraph of section.children){const{children}=paragraph,table=children[0];if(table){if(startOffset<table.startIndex||endOffset>table.endIndex)continue;cursor=table.startIndex+3;for(const row of table.children){const rowIndex=table.children.indexOf(row),{startIndex,endIndex}=row;startOffset>=startIndex&&startOffset<=endIndex?(offset=startIndex,rowIndexes.push(rowIndex),len+=endIndex-startIndex+1):(startIndex>startOffset&&endIndex<endOffset||endOffset>=startIndex&&endOffset<=endIndex)&&(rowIndexes.push(rowIndex),len+=endIndex-startIndex+1),rowIndexes.length===table.children.length&&(selectWholeTable=!0)}}if(rowIndexes.length)break}if(rowIndexes.length)break}return tableId==null||rowIndexes.length===0?null:{tableId,rowIndexes,offset,len,cursor,selectWholeTable}}__name(getDeleteRowsActionsParams,"getDeleteRowsActionsParams");function getDeleteColumnsActionParams(rangeInfo,viewModel){var _a2,_b2,_c2;const{startOffset,endOffset,segmentId}=rangeInfo,vm=viewModel.getSelfOrHeaderFooterViewModel(segmentId),tableId=(_c2=(_b2=(_a2=viewModel.getBody())==null?void 0:_a2.tables)==null?void 0:_b2.find(t=>startOffset>=t.startIndex&&endOffset<=t.endIndex))==null?void 0:_c2.tableId,offsets=[];let table=null;const columnIndexes=[];let cursor=-1,startColumnIndex=-1,endColumnIndex=-1;for(const section of vm.getChildren()){for(const paragraph of section.children){const{children}=paragraph,tableNode=children[0];if(tableNode){if(startOffset<tableNode.startIndex||endOffset>tableNode.endIndex)continue;table=tableNode;for(const row of tableNode.children)for(const cell of row.children){const cellIndex=row.children.indexOf(cell);startOffset>=cell.startIndex&&startOffset<=cell.endIndex&&(startColumnIndex=cellIndex),endOffset>=cell.startIndex&&endOffset<=cell.endIndex&&(endColumnIndex=cellIndex)}}if(table)break}if(table)break}if(table==null||tableId==null)return null;for(let i=startColumnIndex;i<=endColumnIndex;i++)columnIndexes.push(i);let delta=0;for(const row of table.children){const startCell=row.children[startColumnIndex],endCell=row.children[endColumnIndex];offsets.push({retain:startCell.startIndex-delta,delete:endCell.endIndex-startCell.startIndex+1}),delta=endCell.endIndex+1}return cursor=table.startIndex+3,{offsets,tableId,columnIndexes,cursor,selectWholeTable:columnIndexes.length===table.children[0].children.length,rowCount:table.children.length}}__name(getDeleteColumnsActionParams,"getDeleteColumnsActionParams");function getDeleteTableActionParams(rangeInfo,viewModel){var _a2,_b2,_c2;const{startOffset,endOffset,segmentId}=rangeInfo,vm=viewModel.getSelfOrHeaderFooterViewModel(segmentId),tableId=(_c2=(_b2=(_a2=viewModel.getBody())==null?void 0:_a2.tables)==null?void 0:_b2.find(t=>startOffset>=t.startIndex&&endOffset<=t.endIndex))==null?void 0:_c2.tableId;let offset=-1,len=0,cursor=-1;for(const section of vm.getChildren()){for(const paragraph of section.children){const{children}=paragraph,table=children[0];if(table){if(startOffset<table.startIndex||endOffset>table.endIndex)continue;offset=table.startIndex,len=table.endIndex-table.startIndex+1,cursor=table.startIndex}if(table)break}if(len>0)break}return tableId==null?null:{tableId,offset,len,cursor}}__name(getDeleteTableActionParams,"getDeleteTableActionParams");function getDeleteRowContentActionParams(rangeInfo,viewModel){var _a2,_b2,_c2;const{startOffset,endOffset,segmentId}=rangeInfo,vm=viewModel.getSelfOrHeaderFooterViewModel(segmentId),tableId=(_c2=(_b2=(_a2=viewModel.getBody())==null?void 0:_a2.tables)==null?void 0:_b2.find(t=>startOffset>=t.startIndex&&endOffset<=t.endIndex))==null?void 0:_c2.tableId,offsets=[];let table=null,cursor=-1,rowIndex=-1,startColumnIndex=-1,endColumnIndex=-1;for(const section of vm.getChildren()){for(const paragraph of section.children){const{children}=paragraph,tableNode=children[0];if(tableNode){if(startOffset<tableNode.startIndex||endOffset>tableNode.endIndex)continue;table=tableNode;for(const row2 of tableNode.children){const rIndex=tableNode.children.indexOf(row2);for(const cell of row2.children){const cellIndex=row2.children.indexOf(cell);startOffset>=cell.startIndex&&startOffset<=cell.endIndex&&(rowIndex=rIndex,startColumnIndex=cellIndex),endOffset>=cell.startIndex&&endOffset<=cell.endIndex&&(endColumnIndex=cellIndex)}}}if(table)break}if(table)break}if(table==null||tableId==null||rowIndex===-1)return null;const row=table.children[rowIndex];for(let i=startColumnIndex;i<=endColumnIndex;i++){const cell=row.children[i];offsets.push({retain:cell.startIndex+1,delete:cell.endIndex-cell.startIndex-3})}return cursor=table.startIndex+3,{offsets,tableId,cursor,rowCount:table.children.length}}__name(getDeleteRowContentActionParams,"getDeleteRowContentActionParams");var CellPosition=(CellPosition2=>(CellPosition2[CellPosition2.NEXT=0]="NEXT",CellPosition2[CellPosition2.PREV=1]="PREV",CellPosition2))(CellPosition||{});function getCellOffsets(viewModel,range,position){const{startOffset}=range;let targetTable=null;for(const section of viewModel.getChildren()){for(const paragraph of section.children){const table=paragraph.children[0];if(table&&startOffset>table.startIndex&&startOffset<table.endIndex){targetTable=table;break}}if(targetTable)break}if(targetTable==null)return null;let cellIndex=-1,rowIndex=-1,targetRow=null;for(const row of targetTable.children){for(const cell of row.children)if(startOffset>cell.startIndex&&startOffset<cell.endIndex){cellIndex=row.children.indexOf(cell),rowIndex=targetTable.children.indexOf(row),targetRow=row;break}if(cellIndex>-1)break}if(cellIndex===-1||rowIndex===-1||targetRow==null)return null;let newCell=null;if(position===0){if(newCell=targetRow.children[cellIndex+1],!newCell){const nextRow=targetTable.children[rowIndex+1];nextRow&&(newCell=nextRow.children[0])}}else if(newCell=targetRow.children[cellIndex-1],!newCell){const prevRow=targetTable.children[rowIndex-1];prevRow&&(newCell=prevRow.children[prevRow.children.length-1])}if(newCell){const{startIndex,endIndex}=newCell;return{startOffset:startIndex+1,endOffset:endIndex-2}}}__name(getCellOffsets,"getCellOffsets");function getCustomBlockIdsInSelections(body,selections){const customBlockIds=[],{customBlocks=[]}=body;for(const selection of selections){const{startOffset,endOffset}=selection;if(!(startOffset==null||endOffset==null))for(const customBlock of customBlocks){const{startIndex}=customBlock;startIndex>=startOffset&&startIndex<endOffset&&customBlockIds.push(customBlock.blockId)}}return customBlockIds}__name(getCustomBlockIdsInSelections,"getCustomBlockIdsInSelections");function hasRangeInTable(ranges){return ranges.some(range=>{const{startNodePosition}=range;return startNodePosition?(startNodePosition==null?void 0:startNodePosition.path.indexOf("cells"))>-1:!1})}__name(hasRangeInTable,"hasRangeInTable");const UNITS$1=core.SHEET_EDITOR_UNITS,InnerPasteCommand={id:"doc.command.inner-paste",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2,_b2,_c2,_d2,_e2,_f2;const{segmentId,textRanges,doc}=params,commandService=accessor.get(core.ICommandService),docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),selections=docSelectionManagerService.getTextRanges(),rectRanges=docSelectionManagerService.getRectRanges(),{body,tableSource,drawings}=doc;if(!Array.isArray(selections)||selections.length===0||body==null)return!1;const docDataModel=univerInstanceService.getCurrentUniverDocInstance(),originBody=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(docDataModel==null||originBody==null)return!1;const unitId=docDataModel.getUnitId(),doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges,segmentId}},memoryCursor=new core.MemoryCursor;memoryCursor.reset();const textX=new core.TextX,jsonX=core.JSONX.getInstance(),rawActions=[],hasTable=!!((_a2=body.tables)!=null&&_a2.length),hasCustomBlock=!!((_b2=body.customBlocks)!=null&&_b2.length);if(hasTable&&segmentId||hasTable&&hasRangeInTable(selections)||selections.length&&(rectRanges!=null&&rectRanges.length))return!1;for(let i=0;i<selections.length;i++){const selection=selections[i],{startOffset,endOffset,collapsed}=selection,len=startOffset-memoryCursor.cursor,cloneBody=core.Tools.deepClone(body);if(hasTable)for(const t of cloneBody.tables){const{tableId:oldTableId}=t,tableId=core.Tools.generateRandomId(6);t.tableId=tableId;const table=core.Tools.deepClone(tableSource[oldTableId]);table.tableId=tableId;const action=jsonX.insertOp(["tableSource",tableId],table);rawActions.push(action)}if(hasCustomBlock&&drawings){const drawingLen=(_d2=(_c2=docDataModel.getSnapshot().drawingsOrder)==null?void 0:_c2.length)!=null?_d2:0;for(const block of cloneBody.customBlocks){const{blockId}=block,drawingId=core.Tools.generateRandomId(6);block.blockId=drawingId;const drawing2=core.Tools.deepClone(drawings[blockId]);drawing2.drawingId=drawingId;const action=jsonX.insertOp(["drawings",drawingId],drawing2),orderAction=jsonX.insertOp(["drawingsOrder",drawingLen],drawingId);rawActions.push(action),rawActions.push(orderAction)}}const customRange=getCustomRangeAtPosition((_e2=originBody.customRanges)!=null?_e2:[],endOffset,UNITS$1.includes(unitId)),customDecorations=getCustomDecorationAtPosition((_f2=originBody.customDecorations)!=null?_f2:[],endOffset);if(customRange&&(cloneBody.customRanges=[{...customRange,startIndex:0,endIndex:body.dataStream.length-1}]),customDecorations.length&&(cloneBody.customDecorations=customDecorations.map(customDecoration=>({...customDecoration,startIndex:0,endIndex:body.dataStream.length-1}))),collapsed)textX.push({t:core.TextXActionType.RETAIN,len}),textX.push({t:core.TextXActionType.INSERT,body:cloneBody,len:body.dataStream.length});else{const dos=core.BuildTextUtils.selection.delete([selection],body,memoryCursor.cursor,cloneBody,selections.length===1);textX.push(...dos)}memoryCursor.reset(),memoryCursor.moveCursor(endOffset)}const path=getRichTextEditPath(docDataModel,segmentId);return rawActions.push(jsonX.editOp(textX.serialize(),path)),doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")};function adjustSelectionByTable(selection,tables){const{startOffset,endOffset}=selection,endsWithTable=tables.some(t=>t.startIndex===endOffset),newEndOffset=Math.max(startOffset,endsWithTable?endOffset-1:endOffset);return{...selection,endOffset:newEndOffset,collapsed:startOffset===newEndOffset}}__name(adjustSelectionByTable,"adjustSelectionByTable");function getCutActionsFromTextRanges(selections,docDataModel,segmentId){var _a2,_b2;const originBody=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody(),textX=new core.TextX,jsonX=core.JSONX.getInstance(),rawActions=[];if(originBody==null)return rawActions;const{tables=[]}=originBody,memoryCursor=new core.MemoryCursor;memoryCursor.reset();for(let i=0;i<selections.length;i++){const selection=adjustSelectionByTable(selections[i],tables),{startOffset,endOffset,collapsed}=selection,len=startOffset-memoryCursor.cursor;collapsed?textX.push({t:core.TextXActionType.RETAIN,len}):textX.push(...core.BuildTextUtils.selection.delete([selection],originBody,memoryCursor.cursor,null,!1)),memoryCursor.reset(),memoryCursor.moveCursor(endOffset)}const path=getRichTextEditPath(docDataModel,segmentId);rawActions.push(jsonX.editOp(textX.serialize(),path));const removedCustomBlockIds=getCustomBlockIdsInSelections(originBody,selections),drawings=(_a2=docDataModel.getDrawings())!=null?_a2:{},drawingOrder=(_b2=docDataModel.getDrawingsOrder())!=null?_b2:[],sortedRemovedCustomBlockIds=removedCustomBlockIds.sort((a,b)=>drawingOrder.indexOf(a)>drawingOrder.indexOf(b)?-1:drawingOrder.indexOf(a)<drawingOrder.indexOf(b)?1:0);if(sortedRemovedCustomBlockIds.length>0)for(const blockId of sortedRemovedCustomBlockIds){const drawing2=drawings[blockId],drawingIndex=drawingOrder.indexOf(blockId);if(drawing2==null||drawingIndex<0)continue;const removeDrawingAction=jsonX.removeOp(["drawings",blockId],drawing2),removeDrawingOrderAction=jsonX.removeOp(["drawingsOrder",drawingIndex],blockId);rawActions.push(removeDrawingAction),rawActions.push(removeDrawingOrderAction)}return rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null)}__name(getCutActionsFromTextRanges,"getCutActionsFromTextRanges");function getCutActionsFromRectRanges(ranges,docDataModel,viewModel,segmentId){const rawActions=[];if(docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()==null)return rawActions;const textX=new core.TextX,jsonX=core.JSONX.getInstance(),memoryCursor=new core.MemoryCursor;memoryCursor.reset();for(const range of ranges){const{startOffset,endOffset,spanEntireRow,spanEntireTable}=range;if(!(startOffset==null||endOffset==null))if(spanEntireTable){const actionParams=getDeleteTableActionParams({startOffset,endOffset,segmentId},viewModel);if(actionParams==null)continue;const{offset,len,tableId}=actionParams;offset-memoryCursor.cursor>0&&textX.push({t:core.TextXActionType.RETAIN,len:offset-memoryCursor.cursor}),textX.push({t:core.TextXActionType.DELETE,len});const action=jsonX.removeOp(["tableSource",tableId]);rawActions.push(action),memoryCursor.moveCursorTo(offset+len)}else if(spanEntireRow){const actionParams=getDeleteRowsActionsParams({startOffset,endOffset,segmentId},viewModel);if(actionParams==null)continue;const{offset,rowIndexes,len,tableId}=actionParams;offset-memoryCursor.cursor>0&&textX.push({t:core.TextXActionType.RETAIN,len:offset-memoryCursor.cursor}),textX.push({t:core.TextXActionType.DELETE,len});for(const index of rowIndexes.reverse()){const action=jsonX.removeOp(["tableSource",tableId,"tableRows",index]);rawActions.push(action)}memoryCursor.moveCursorTo(offset+len)}else{const actionParams=getDeleteRowContentActionParams({startOffset,endOffset,segmentId},viewModel);if(actionParams==null)continue;const{offsets}=actionParams;for(const offset of offsets){const{retain,delete:delLen}=offset;retain-memoryCursor.cursor>0&&textX.push({t:core.TextXActionType.RETAIN,len:retain-memoryCursor.cursor}),textX.push({t:core.TextXActionType.DELETE,len:delLen}),memoryCursor.moveCursorTo(retain+delLen)}}}const path=getRichTextEditPath(docDataModel,segmentId);return rawActions.push(jsonX.editOp(textX.serialize(),path)),rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null)}__name(getCutActionsFromRectRanges,"getCutActionsFromRectRanges");function getCutActionsFromDocRanges(textRanges,rectRanges,docDataModel,viewModel,segmentId){let rawActions=[];if(Array.isArray(textRanges)&&(textRanges==null?void 0:textRanges.length)!==0&&(rawActions=getCutActionsFromTextRanges(textRanges,docDataModel,segmentId)),Array.isArray(rectRanges)&&(rectRanges==null?void 0:rectRanges.length)!==0){const actions=getCutActionsFromRectRanges(rectRanges,docDataModel,viewModel,segmentId);rawActions==null||rawActions.length===0?rawActions=actions:rawActions=core.JSONX.compose(rawActions,core.JSONX.transform(actions,rawActions,"right"))}return rawActions}__name(getCutActionsFromDocRanges,"getCutActionsFromDocRanges");const CutContentCommand={id:"doc.command.inner-cut",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2,_b2;const{segmentId,textRanges}=params,commandService=accessor.get(core.ICommandService),docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),selections=(_a2=params.selections)!=null?_a2:docSelectionManagerService.getTextRanges(),rectRanges=docSelectionManagerService.getRectRanges();if((!Array.isArray(selections)||selections.length===0)&&(!Array.isArray(rectRanges)||rectRanges.length===0))return!1;const unitId=(_b2=univerInstanceService.getCurrentUniverDocInstance())==null?void 0:_b2.getUnitId();if(!unitId)return!1;const docDataModel=univerInstanceService.getUniverDocInstance(unitId);if(docDataModel==null)return!1;const docSkeletonManagerService=getCommandSkeleton(accessor,unitId);if(docSkeletonManagerService==null)return!1;const viewModel=docSkeletonManagerService.getViewModel(),doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges}};return doMutation.params.actions=getCutActionsFromDocRanges(selections,rectRanges,docDataModel,viewModel,segmentId),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")};var DeleteDirection=(DeleteDirection2=>(DeleteDirection2[DeleteDirection2.LEFT=0]="LEFT",DeleteDirection2[DeleteDirection2.RIGHT=1]="RIGHT",DeleteDirection2))(DeleteDirection||{});const EditorInsertTextCommandId="doc.command.insert-text",InsertCommand={id:EditorInsertTextCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2;const commandService=accessor.get(core.ICommandService),{range,segmentId,body,unitId,cursorOffset}=params,docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),docDataModel=accessor.get(core.IUniverInstanceService).getUnit(unitId,core.UniverInstanceType.UNIVER_DOC);if(docDataModel==null)return!1;const activeRange=docSelectionManagerService.getActiveTextRange(),originBody=docDataModel.getSelfOrHeaderFooterModel((_a2=activeRange==null?void 0:activeRange.segmentId)!=null?_a2:"").getBody();if(originBody==null)return!1;const{startOffset,collapsed}=range,cursorMove=cursorOffset!=null?cursorOffset:body.dataStream.length,textRanges=[{startOffset:startOffset+cursorMove,endOffset:startOffset+cursorMove,style:activeRange==null?void 0:activeRange.style,collapsed}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges,debounce:!0}},textX=new core.TextX,jsonX=core.JSONX.getInstance();if(collapsed)startOffset>0&&textX.push({t:core.TextXActionType.RETAIN,len:startOffset}),textX.push({t:core.TextXActionType.INSERT,body,len:body.dataStream.length});else{const dos=core.BuildTextUtils.selection.delete([range],originBody,0,body);textX.push(...dos)}doMutation.params.textRanges=[{startOffset:startOffset+cursorMove,endOffset:startOffset+cursorMove,collapsed}];const path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},DeleteCommand={id:"doc.command.delete-text",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),{range,segmentId,unitId,direction,len=1}=params,docDataModel=univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_DOC),body=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(docDataModel==null||body==null)return!1;const{startOffset}=range;let start=direction===DeleteDirection.LEFT?startOffset-len:startOffset,end=direction===DeleteDirection.LEFT?startOffset-1:startOffset+len-1;const customRange=(_a2=body.customRanges)==null?void 0:_a2.find(customRange2=>customRange2.startIndex<=start&&customRange2.endIndex>=end);customRange!=null&&customRange.wholeEntity&&(start=customRange.startIndex,end=Math.max(end,customRange.endIndex));const doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:[{startOffset:start,endOffset:start,collapsed:!0}],debounce:!0}},textX=new core.TextX,jsonX=core.JSONX.getInstance();textX.push({t:core.TextXActionType.RETAIN,len:start-0}),textX.push({t:core.TextXActionType.DELETE,len:end-start+1});const path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},UpdateCommand={id:"doc.command.update-text",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const{range,segmentId,updateBody,coverType,unitId,textRanges}=params,commandService=accessor.get(core.ICommandService),docDataModel=accessor.get(core.IUniverInstanceService).getCurrentUniverDocInstance();if(docDataModel==null)return!1;const doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges}},textX=new core.TextX,jsonX=core.JSONX.getInstance(),{startOffset,endOffset}=range;textX.push({t:core.TextXActionType.RETAIN,len:startOffset}),textX.push({t:core.TextXActionType.RETAIN,body:updateBody,len:endOffset-startOffset,coverType});const path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},DeleteCustomBlockCommand={id:"doc.command.delete-custom-block",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2;const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),activeRange=docSelectionManagerService.getActiveTextRange(),documentDataModel=univerInstanceService.getCurrentUniverDocInstance();if(activeRange==null||documentDataModel==null)return!1;const{direction,range,unitId,drawingId}=params,{startOffset,segmentId,style}=activeRange,cursor=direction===DeleteDirection.LEFT?startOffset-1:startOffset,textRanges=[{startOffset:cursor,endOffset:cursor,style}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges,prevTextRanges:[range]}},textX=new core.TextX,jsonX=core.JSONX.getInstance(),rawActions=[];startOffset>0&&textX.push({t:core.TextXActionType.RETAIN,len:direction===DeleteDirection.LEFT?startOffset-1:startOffset}),textX.push({t:core.TextXActionType.DELETE,len:1});const path=getRichTextEditPath(documentDataModel,segmentId);rawActions.push(jsonX.editOp(textX.serialize(),path));const drawing2=((_a2=documentDataModel.getDrawings())!=null?_a2:{})[drawingId],drawingIndex=documentDataModel.getDrawingsOrder().indexOf(drawingId),removeDrawingAction=jsonX.removeOp(["drawings",drawingId],drawing2),removeDrawingOrderAction=jsonX.removeOp(["drawingsOrder",drawingIndex],drawingId);return rawActions.push(removeDrawingAction),rawActions.push(removeDrawingOrderAction),doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},MergeTwoParagraphCommand={id:"doc.command.merge-two-paragraph",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),{direction,range}=params,activeRange=docSelectionManagerService.getActiveTextRange(),ranges=docSelectionManagerService.getTextRanges();if(activeRange==null||ranges==null)return!1;const{segmentId,style}=activeRange,docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),originBody=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(docDataModel==null||originBody==null)return!1;const actualRange=activeRange,unitId=docDataModel.getUnitId(),{startOffset,collapsed}=actualRange;if(!collapsed)return!1;const startIndex=direction===DeleteDirection.LEFT?startOffset:startOffset+1;let curParagraph,nextParagraph;for(const paragraph of originBody.paragraphs){if(paragraph.startIndex>=startIndex){nextParagraph=paragraph;break}curParagraph=paragraph}if(curParagraph==null||nextParagraph==null)return!1;const cursor=direction===DeleteDirection.LEFT?startOffset-1:startOffset,textRanges=[{startOffset:cursor,endOffset:cursor,style}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges,prevTextRanges:[range]}},textX=new core.TextX,jsonX=core.JSONX.getInstance();curParagraph.startIndex>0&&textX.push({t:core.TextXActionType.RETAIN,len:curParagraph.startIndex}),textX.push({t:core.TextXActionType.DELETE,len:1}),nextParagraph.startIndex>curParagraph.startIndex+1&&textX.push({t:core.TextXActionType.RETAIN,len:nextParagraph.startIndex-curParagraph.startIndex-1}),textX.push({t:core.TextXActionType.RETAIN,len:1,coverType:core.UpdateDocsAttributeType.REPLACE,body:{dataStream:"",paragraphs:[{...core.Tools.deepClone(curParagraph),startIndex:0}]}});const path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")};function getCursorWhenDelete(textRanges,rectRanges){let cursor=0;if(textRanges==null||textRanges.length===0){if(typeof rectRanges[0].startOffset=="number"){const rectRange=rectRanges[0],{spanEntireRow,spanEntireTable}=rectRange;spanEntireTable?cursor=rectRange.startOffset-3:spanEntireRow?rectRange.startRow>0?cursor=rectRange.startOffset-6:cursor=rectRange.startOffset:cursor=rectRanges[0].startOffset}}else if(textRanges.length>0&&rectRanges.length>0){const textRange=textRanges[0],rectRange=rectRanges[0];if(textRange.startOffset!=null&&rectRange.startOffset!=null){if(textRange.startOffset<rectRange.startOffset)cursor=textRange.startOffset;else if(textRange.startOffset>=rectRange.startOffset){const{spanEntireRow,spanEntireTable}=rectRange;spanEntireTable?cursor=rectRange.startOffset-3:spanEntireRow&&(cursor=rectRange.startOffset-6)}}}return cursor}__name(getCursorWhenDelete,"getCursorWhenDelete");const DeleteLeftCommand={id:"doc.command.delete-left",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a2,_b2;const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService);let result=!0;const docDataModel=univerInstanceService.getCurrentUniverDocInstance();if(docDataModel==null)return!1;const unitId=docDataModel.getUnitId(),docSkeletonManagerService=getCommandSkeleton(accessor,unitId),activeRange=docSelectionManagerService.getActiveTextRange(),rectRanges=docSelectionManagerService.getRectRanges(),ranges=docSelectionManagerService.getTextRanges(),skeleton=docSkeletonManagerService==null?void 0:docSkeletonManagerService.getSkeleton();if(skeleton==null)return!1;if(rectRanges!=null&&rectRanges.length){const cursor2=getCursorWhenDelete(ranges,rectRanges),segmentId2=rectRanges[0].segmentId,textRanges=[{startOffset:cursor2,endOffset:cursor2}];return commandService.executeCommand(CutContentCommand.id,{segmentId:segmentId2,textRanges})}if(activeRange==null||ranges==null)return!1;const{segmentId,style,segmentPage}=activeRange,body=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(body==null)return!1;const actualRange=activeRange,{startOffset,collapsed}=actualRange,curGlyph=skeleton.findNodeByCharIndex(startOffset,segmentId,segmentPage),isBullet=engineRender.hasListGlyph(curGlyph),isIndent=engineRender.isIndentByGlyph(curGlyph,body);let cursor=startOffset;const preGlyph=skeleton.findNodeByCharIndex(startOffset-1,segmentId,segmentPage);if(engineRender.isFirstGlyph(curGlyph)&&preGlyph!==curGlyph&&(isBullet===!0||isIndent===!0)&&collapsed){const paragraph=engineRender.getParagraphByGlyph(curGlyph,body);if(paragraph==null)return!1;const paragraphIndex=paragraph==null?void 0:paragraph.startIndex,updateParagraph={startIndex:0},paragraphStyle=paragraph.paragraphStyle;if(isBullet===!0){const paragraphStyle2=paragraph.paragraphStyle;if(paragraphStyle2){updateParagraph.paragraphStyle=paragraphStyle2;const{hanging}=paragraphStyle2;hanging&&(updateParagraph.paragraphStyle.indentStart=hanging,updateParagraph.paragraphStyle.hanging=void 0)}}else if(isIndent===!0){const bullet=paragraph.bullet;bullet&&(updateParagraph.bullet=bullet),paragraphStyle!=null&&(updateParagraph.paragraphStyle={...paragraphStyle},delete updateParagraph.paragraphStyle.hanging,delete updateParagraph.paragraphStyle.indentStart)}const textRanges=[{startOffset:cursor,endOffset:cursor,style}];result=await commandService.executeCommand(UpdateCommand.id,{unitId:docDataModel.getUnitId(),updateBody:{dataStream:"",paragraphs:[{...updateParagraph}]},range:{startOffset:paragraphIndex,endOffset:paragraphIndex+1},textRanges,coverType:core.UpdateDocsAttributeType.REPLACE,segmentId})}else if(collapsed===!0){if(preGlyph==null)return!0;if(preGlyph.content==="\r")result=await commandService.executeCommand(MergeTwoParagraphCommand.id,{direction:DeleteDirection.LEFT,range:actualRange});else if(preGlyph.streamType==="\b"){const drawing2=(_b2=docDataModel.getSnapshot().drawings)==null?void 0:_b2[(_a2=preGlyph.drawingId)!=null?_a2:""];if(drawing2==null)return!0;if(drawing2.layoutType===core.PositionedObjectLayoutType.INLINE){const unitId2=docDataModel.getUnitId();result=await commandService.executeCommand(DeleteCustomBlockCommand.id,{direction:DeleteDirection.LEFT,range:activeRange,unitId:unitId2,drawingId:preGlyph.drawingId})}else{const prePreGlyph=skeleton.findNodeByCharIndex(startOffset-2);if(prePreGlyph==null)return!0;cursor-=preGlyph.count,cursor-=prePreGlyph.count;const textRanges=[{startOffset:cursor,endOffset:cursor,style}];result=await commandService.executeCommand(DeleteCommand.id,{unitId:docDataModel.getUnitId(),range:{...activeRange,startOffset:activeRange.startOffset-1,endOffset:activeRange.endOffset-1},segmentId,direction:DeleteDirection.LEFT,len:prePreGlyph.count,textRanges})}}else cursor-=preGlyph.count,result=await commandService.executeCommand(DeleteCommand.id,{unitId:docDataModel.getUnitId(),range:actualRange,segmentId,direction:DeleteDirection.LEFT,len:preGlyph.count})}else{const textRanges=getTextRangesWhenDelete(actualRange,[actualRange]);result=await commandService.executeCommand(CutContentCommand.id,{segmentId,textRanges,selections:[actualRange]})}return result},"handler")},DeleteRightCommand={id:"doc.command.delete-right",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a2,_b2;const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),docDataModel=accessor.get(core.IUniverInstanceService).getCurrentUniverDocInstance();if(!docDataModel)return!1;const docSkeletonManagerService=getCommandSkeleton(accessor,docDataModel.getUnitId()),commandService=accessor.get(core.ICommandService),activeRange=docSelectionManagerService.getActiveTextRange(),rectRanges=docSelectionManagerService.getRectRanges(),ranges=docSelectionManagerService.getTextRanges(),skeleton=docSkeletonManagerService==null?void 0:docSkeletonManagerService.getSkeleton();if(rectRanges!=null&&rectRanges.length){const cursor=getCursorWhenDelete(ranges,rectRanges),segmentId2=rectRanges[0].segmentId,textRanges=[{startOffset:cursor,endOffset:cursor}];return commandService.executeCommand(CutContentCommand.id,{segmentId:segmentId2,textRanges})}if(activeRange==null||skeleton==null||ranges==null)return!1;const{segmentId,style,segmentPage}=activeRange,body=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(!docDataModel||!body)return!1;const actualRange=activeRange,{startOffset,endOffset,collapsed}=actualRange;if(startOffset===body.dataStream.length-2&&collapsed)return!0;let result=!1;if(collapsed===!0){const needDeleteGlyph=skeleton.findNodeByCharIndex(startOffset,segmentId,segmentPage),nextGlyph=skeleton.findNodeByCharIndex(startOffset+1);if(needDeleteGlyph.streamType===core.DataStreamTreeTokenType.PARAGRAPH&&(nextGlyph==null?void 0:nextGlyph.streamType)===core.DataStreamTreeTokenType.SECTION_BREAK)return!1;if(needDeleteGlyph.content==="\r")result=await commandService.executeCommand(MergeTwoParagraphCommand.id,{direction:DeleteDirection.RIGHT,range:activeRange});else if(needDeleteGlyph.streamType==="\b"){const drawing2=(_b2=docDataModel.getSnapshot().drawings)==null?void 0:_b2[(_a2=needDeleteGlyph.drawingId)!=null?_a2:""];if(drawing2==null)return!0;if(drawing2.layoutType===core.PositionedObjectLayoutType.INLINE){const unitId=docDataModel.getUnitId();result=await commandService.executeCommand(DeleteCustomBlockCommand.id,{direction:DeleteDirection.RIGHT,range:activeRange,unitId,drawingId:needDeleteGlyph.drawingId})}else{if(nextGlyph==null)return!0;const textRanges=[{startOffset:startOffset+1,endOffset:startOffset+1,style}];result=await commandService.executeCommand(DeleteCommand.id,{unitId:docDataModel.getUnitId(),range:{...activeRange,startOffset:startOffset+1,endOffset:endOffset+1},segmentId,direction:DeleteDirection.RIGHT,textRanges,len:nextGlyph.count})}}else{const textRanges=[{startOffset,endOffset:startOffset,style}];result=await commandService.executeCommand(DeleteCommand.id,{unitId:docDataModel.getUnitId(),range:actualRange,segmentId,direction:DeleteDirection.RIGHT,textRanges,len:needDeleteGlyph.count})}}else{const textRanges=getTextRangesWhenDelete(actualRange,[actualRange]);result=await commandService.executeCommand(CutContentCommand.id,{segmentId,textRanges,selections:[actualRange]})}return result},"handler")};function getTextRangesWhenDelete(activeRange,ranges){let cursor=activeRange.endOffset;for(const range of ranges){const{startOffset,endOffset}=range;startOffset==null||endOffset==null||endOffset<=activeRange.endOffset&&(cursor-=endOffset-startOffset)}return[{startOffset:cursor,endOffset:cursor,style:activeRange.style}]}__name(getTextRangesWhenDelete,"getTextRangesWhenDelete");const COPY_CONTENT_CACHE_LIMIT=10,ID_LENGTH=6;function genId(){return core.Tools.generateRandomId(ID_LENGTH)}__name(genId,"genId");function extractId(html){const match=html.match(/data-copy-id="([^\s]+)"/);return match&&match[1]?match[1]:null}__name(extractId,"extractId");const _CopyContentCache=class _CopyContentCache{constructor(){__publicField(this,"_cache",new core.LRUMap(COPY_CONTENT_CACHE_LIMIT))}set(id,clipboardData){this._cache.set(id,clipboardData)}get(id){return this._cache.get(id)}clear(){this._cache.clear()}};__name(_CopyContentCache,"CopyContentCache");let CopyContentCache=_CopyContentCache;const copyContentCache=new CopyContentCache;function extractNodeStyle(node){const styles2=node.style,docStyles={},tagName=node.tagName.toLowerCase();switch(tagName){case"b":case"em":case"strong":{docStyles.bl=core.BooleanNumber.TRUE;break}case"s":{docStyles.st={s:core.BooleanNumber.TRUE};break}case"u":{docStyles.ul={s:core.BooleanNumber.TRUE};break}case"i":{docStyles.it=core.BooleanNumber.TRUE;break}case"sub":case"sup":{docStyles.va=tagName==="sup"?core.BaselineOffset.SUPERSCRIPT:core.BaselineOffset.SUBSCRIPT;break}}for(let i=0;i<styles2.length;i++){const cssRule=styles2[i],cssValue=styles2.getPropertyValue(cssRule);switch(cssRule){case"font-family":{docStyles.ff=cssValue.replace(/^"/g,"").replace(/"$/g,"");break}case"font-size":{const fontSize=Number.parseInt(cssValue);Number.isNaN(fontSize)||(cssValue.endsWith("pt")?docStyles.fs=fontSize:cssValue.endsWith("px")&&(docStyles.fs=engineRender.pixelToPt(fontSize)));break}case"font-style":{cssValue==="italic"&&(docStyles.it=core.BooleanNumber.TRUE);break}case"font-weight":{(Number(cssValue)>400||String(cssValue)==="bold")&&(docStyles.bl=core.BooleanNumber.TRUE);break}case"text-decoration":{/underline/.test(cssValue)?docStyles.ul={s:core.BooleanNumber.TRUE}:/overline/.test(cssValue)?docStyles.ol={s:core.BooleanNumber.TRUE}:/line-through/.test(cssValue)&&(docStyles.st={s:core.BooleanNumber.TRUE});break}case"color":{try{const color=new core.ColorKit(cssValue);color.isValid&&(docStyles.cl={rgb:color.toRgbString()})}catch{}break}case"background-color":{const color=new core.ColorKit(cssValue);color.isValid&&(docStyles.bg={rgb:color.toRgbString()});break}}}return docStyles}__name(extractNodeStyle,"extractNodeStyle");function parseToDom(rawHtml){const parser=new DOMParser,html=`<x-univer id="univer-root">${rawHtml}</x-univer>`;return parser.parseFromString(html,"text/html").querySelector("#univer-root")}__name(parseToDom,"parseToDom");function matchFilter(node,filter){const tagName=node.tagName.toLowerCase();return typeof filter=="string"?tagName===filter:Array.isArray(filter)?filter.some(name=>name===tagName):filter(node)}__name(matchFilter,"matchFilter");const DEFAULT_TABLE_WIDTH=660,_HtmlToUDMService=class _HtmlToUDMService{constructor(){__publicField(this,"_tableCache",[]);__publicField(this,"_styleCache",new Map);__publicField(this,"_styleRules",[]);__publicField(this,"_afterProcessRules",[])}static use(plugin){if(this._pluginList.includes(plugin))throw new Error(`Univer paste plugin ${plugin.name} already added`);this._pluginList.push(plugin)}convert(html,metaConfig={}){var _a2;const pastePlugin=_HtmlToUDMService._pluginList.find(plugin=>plugin.checkPasteType(html)),dom=parseToDom(html),docData={body:{dataStream:"",paragraphs:[],sectionBreaks:[],tables:[],textRuns:[],customBlocks:[]},tableSource:{},id:(_a2=metaConfig==null?void 0:metaConfig.unitId)!=null?_a2:""};return pastePlugin&&(this._styleRules=[...pastePlugin.stylesRules],this._afterProcessRules=[...pastePlugin.afterProcessRules]),this._tableCache=[],this._styleCache.clear(),this._process(null,dom.childNodes,docData),this._styleCache.clear(),this._styleRules=[],this._afterProcessRules=[],docData}_process(parent,nodes,doc){var _a2,_b2,_c2,_d2;const body=doc.body;for(const node of nodes)if(node.nodeType===Node.TEXT_NODE){if(((_a2=node.nodeValue)==null?void 0:_a2.trim())==="")continue;const text=(_b2=node.nodeValue)==null?void 0:_b2.replace(/[\r\n]/g,"");let style;parent&&this._styleCache.has(parent)&&(style=this._styleCache.get(parent)),body.dataStream+=text,style&&Object.getOwnPropertyNames(style).length&&body.textRuns.push({st:body.dataStream.length-text.length,ed:body.dataStream.length,ts:style})}else if(node.nodeName==="IMG"){const element2=node,imageSourceType=element2.dataset.imageSourceType,source=imageSourceType===drawing.ImageSourceType.UUID?element2.dataset.source:element2.src;if(source&&imageSourceType){const width=Number(element2.dataset.width||100),height=Number(element2.dataset.height||100),docTransformWidth=Number(element2.dataset.docTransformWidth||width),docTransformHeight=Number(element2.dataset.docTransformHeight||height),id=core.Tools.generateRandomId(6);(_d2=(_c2=doc.body)==null?void 0:_c2.customBlocks)==null||_d2.push({startIndex:body.dataStream.length,blockId:id}),body.dataStream+="\b",doc.drawings||(doc.drawings={}),doc.drawings[id]={drawingId:id,title:"",description:"",imageSourceType,source,transform:{width,height,left:0},docTransform:{size:{width:docTransformWidth,height:docTransformHeight},angle:0,positionH:{relativeFrom:core.ObjectRelativeFromH.PAGE,posOffset:0},positionV:{relativeFrom:core.ObjectRelativeFromV.PARAGRAPH,posOffset:0}},layoutType:core.PositionedObjectLayoutType.INLINE,drawingType:core.DrawingTypeEnum.DRAWING_IMAGE,unitId:doc.id||"",subUnitId:doc.id||""}}}else{if(core.skipParseTagNames.includes(node.nodeName.toLowerCase()))continue;if(node.nodeType===Node.ELEMENT_NODE){const element2=node,linkStart=this._processBeforeLink(element2,doc),parentStyles=parent?this._styleCache.get(parent):{},styleRule=this._styleRules.find(({filter})=>matchFilter(node,filter)),nodeStyles=styleRule?styleRule.getStyle(node):extractNodeStyle(node);this._styleCache.set(node,{...parentStyles,...nodeStyles});const{childNodes}=node;this._processBeforeTable(node,doc),this._process(node,childNodes,doc),this._processAfterTable(node,doc);const afterProcessRule=this._afterProcessRules.find(({filter})=>matchFilter(node,filter));afterProcessRule&&afterProcessRule.handler(doc,node),this._processAfterLink(element2,doc,linkStart)}}}_processBeforeTable(node,doc){var _a2;const tagName=node.tagName.toUpperCase(),body=doc.body;switch(tagName){case"TABLE":{body.dataStream[body.dataStream.length-1]!=="\r"&&(body.dataStream+="\r",body.paragraphs==null&&(body.paragraphs=[]),(_a2=body.paragraphs)==null||_a2.push({startIndex:body.dataStream.length-1}));const table=genTableSource(0,0,DEFAULT_TABLE_WIDTH);this._tableCache.push({table,startIndex:body.dataStream.length}),body.dataStream+=core.DataStreamTreeTokenType.TABLE_START;break}case"TR":{const row=getEmptyTableRow(0);this._tableCache[this._tableCache.length-1].table.tableRows.push(row),body.dataStream+=core.DataStreamTreeTokenType.TABLE_ROW_START;break}case"TD":{const cell=getEmptyTableCell(),lastTable=this._tableCache[this._tableCache.length-1].table;lastTable.tableRows[lastTable.tableRows.length-1].tableCells.push(cell),body.dataStream+=core.DataStreamTreeTokenType.TABLE_CELL_START;break}}}_processAfterTable(node,doc){var _a2,_b2;const tagName=node.tagName.toUpperCase(),body=doc.body;doc.tableSource==null&&(doc.tableSource={}),body.tables==null&&(body.tables=[]),body.sectionBreaks==null&&(body.sectionBreaks=[]);const{tableSource}=doc;switch(tagName){case"TABLE":{const tableCache=this._tableCache.pop(),{startIndex,table}=tableCache,colCount=table.tableRows[0].tableCells.length,tableColumn=getTableColumn(DEFAULT_TABLE_WIDTH/colCount),tableColumns=[...new Array(colCount).fill(null).map(()=>core.Tools.deepClone(tableColumn))];table.tableColumns=tableColumns,tableSource[table.tableId]=table,body.dataStream+=core.DataStreamTreeTokenType.TABLE_END,body.tables.push({startIndex,endIndex:body.dataStream.length,tableId:table.tableId});break}case"TR":{body.dataStream+=core.DataStreamTreeTokenType.TABLE_ROW_END;break}case"TD":{body.dataStream[body.dataStream.length-1]!=="\r"&&((_a2=body.paragraphs)==null||_a2.push({startIndex:body.dataStream.length}),body.dataStream+="\r"),(_b2=body.sectionBreaks)==null||_b2.push({startIndex:body.dataStream.length}),body.dataStream+=`
28
+ ${core.DataStreamTreeTokenType.TABLE_CELL_END}`;break}}}_processBeforeLink(node,doc){return doc.body.dataStream.length}_processAfterLink(node,doc,start){var _a2,_b2;const body=doc.body,element2=node;element2.tagName.toUpperCase()==="A"&&(body.customRanges=(_a2=body.customRanges)!=null?_a2:[],body.customRanges.push({startIndex:start,endIndex:body.dataStream.length-1,rangeId:(_b2=element2.dataset.rangeid)!=null?_b2:core.generateRandomId(),rangeType:core.CustomRangeType.HYPERLINK,properties:{url:element2.href}}))}};__name(_HtmlToUDMService,"HtmlToUDMService"),__publicField(_HtmlToUDMService,"_pluginList",[]);let HtmlToUDMService=_HtmlToUDMService;const wordPastePlugin$1={name:"univer-doc-paste-plugin-lark",checkPasteType(html){return/lark-record-clipboard/i.test(html)},stylesRules:[{filter:["s"],getStyle(node){const inlineStyle=extractNodeStyle(node);return{st:{s:core.BooleanNumber.TRUE},...inlineStyle}}}],afterProcessRules:[{filter(el){return el.tagName==="DIV"&&/ace-line/i.test(el.className)},handler(doc){const body=doc.body;body.paragraphs==null&&(body.paragraphs=[]),body.paragraphs.push({startIndex:body.dataStream.length}),body.dataStream+="\r"}}]};function getParagraphStyle(el){const styles2=el.style,paragraphStyle={};for(let i=0;i<styles2.length;i++){const cssRule=styles2[i],cssValue=styles2.getPropertyValue(cssRule);switch(cssRule){case"margin-top":{const marginTopValue=Number.parseInt(cssValue);paragraphStyle.spaceAbove={v:/pt/.test(cssValue)?engineRender.ptToPixel(marginTopValue):marginTopValue};break}case"margin-bottom":{const marginBottomValue=Number.parseInt(cssValue);paragraphStyle.spaceBelow={v:/pt/.test(cssValue)?engineRender.ptToPixel(marginBottomValue):marginBottomValue};break}case"line-height":{let lineHeightValue=Number.parseFloat(cssValue);cssValue.endsWith("%")&&(lineHeightValue/=100),paragraphStyle.lineSpacing=lineHeightValue;break}}}return Object.getOwnPropertyNames(paragraphStyle).length?paragraphStyle:null}__name(getParagraphStyle,"getParagraphStyle");const univerPastePlugin={name:"univer-doc-paste-plugin-univer",checkPasteType(html){return/UniverNormal/i.test(html)},stylesRules:[],afterProcessRules:[{filter(el){return el.tagName==="P"&&/UniverNormal/i.test(el.className)},handler(doc,el){const body=doc.body;body.paragraphs==null&&(body.paragraphs=[]);const paragraph={startIndex:body.dataStream.length},paragraphStyle=getParagraphStyle(el);paragraphStyle&&(paragraph.paragraphStyle=paragraphStyle),body.paragraphs.push(paragraph),body.dataStream+="\r"}}]},wordPastePlugin={name:"univer-doc-paste-plugin-word",checkPasteType(html){return/word|mso/i.test(html)},stylesRules:[{filter:["b"],getStyle(node){const inlineStyle=extractNodeStyle(node);return{bl:core.BooleanNumber.TRUE,...inlineStyle}}}],afterProcessRules:[{filter(el){return el.tagName==="P"},handler(doc,el){const body=doc.body;body.paragraphs==null&&(body.paragraphs=[]);const paragraph={startIndex:body.dataStream.length},paragraphStyle=getParagraphStyle(el);paragraphStyle&&(paragraph.paragraphStyle=paragraphStyle),body.paragraphs.push(paragraph),body.dataStream+="\r"}}]};function covertImageToHtml(item){var _a2,_b2;const transformObjectToString=__name(obj2=>{let result="";return Object.keys(obj2).forEach(key=>{obj2[key]!==void 0&&(result+=` ${key}=${obj2[key]}`)}),result},"transformObjectToString"),obj={"data-doc-transform-height":item.docTransform.size.height,"data-doc-transform-width":item.docTransform.size.width,"data-width":(_a2=item.transform)==null?void 0:_a2.width,"data-height":(_b2=item.transform)==null?void 0:_b2.height,"data-image-source-type":item.imageSourceType,"data-source":item.imageSourceType===drawing.ImageSourceType.UUID?item.source:void 0,src:item.source};return`<img ${transformObjectToString(obj)}></img>`}__name(covertImageToHtml,"covertImageToHtml");function covertTextRunToHtml(dataStream,textRun){const{st:start,ed,ts={}}=textRun,{ff,fs,it,bl,ul,st,ol,bg,cl,va}=ts;let html=dataStream.slice(start,ed);const style=[];return it===core.BooleanNumber.TRUE&&(html=`<i>${html}</i>`),va===core.BaselineOffset.SUPERSCRIPT?html=`<sup>${html}</sup>`:va===core.BaselineOffset.SUBSCRIPT&&(html=`<sub>${html}</sub>`),(ul==null?void 0:ul.s)===core.BooleanNumber.TRUE&&(html=`<u>${html}</u>`),(st==null?void 0:st.s)===core.BooleanNumber.TRUE&&(html=`<s>${html}</s>`),bl===core.BooleanNumber.TRUE&&(html=`<strong>${html}</strong>`),ff&&style.push(`font-family: ${ff}`),cl&&style.push(`color: ${cl.rgb}`),fs&&style.push(`font-size: ${fs}pt`),ol&&style.push("text-decoration: overline"),bg&&style.push(`background: ${bg.rgb}`),style.length?`<span style="${style.join("; ")};">${html}</span>`:html}__name(covertTextRunToHtml,"covertTextRunToHtml");function getBodyInlineSlice(body,startIndex,endIndex){const{dataStream,textRuns=[]}=body;if(startIndex===endIndex)return"";let cursorIndex=startIndex;const spanList=[];for(const textRun of textRuns){const{st,ed}=textRun;core.Tools.hasIntersectionBetweenTwoRanges(startIndex,endIndex,st,ed)&&(st>cursorIndex?(spanList.push(dataStream.slice(cursorIndex,st)),spanList.push(covertTextRunToHtml(dataStream,{...textRun,ed:Math.min(ed,endIndex)}))):spanList.push(covertTextRunToHtml(dataStream,{...textRun,st:cursorIndex,ed:Math.min(ed,endIndex)}))),cursorIndex=Math.max(startIndex,Math.min(ed,endIndex))}return cursorIndex!==endIndex&&spanList.push(dataStream.slice(cursorIndex,endIndex)),spanList.join("")}__name(getBodyInlineSlice,"getBodyInlineSlice");function getBodySliceHtml(doc,startIndex,endIndex){const body=doc.body,drawings=doc.drawings||{},{customRanges=[],customBlocks=[]}=body||{},cloneCustomBlocks=[...customBlocks],customRangesInRange=customRanges.filter(range=>range.startIndex>=startIndex&&range.endIndex<=endIndex);let cursorIndex=startIndex,html="";const handleCustomBlock=__name((startIndex2,endIndex2)=>{let sliceHtml="",customBlockLength=0,handleCustomBlockCursorIndex=startIndex2,blockItemIndex=cloneCustomBlocks.findIndex(block=>startIndex2<=block.startIndex&&endIndex2>=block.startIndex);if(blockItemIndex===-1)return sliceHtml=getBodyInlineSlice(body,startIndex2,endIndex2),{sliceHtml,customBlockLength};for(;blockItemIndex!==-1;){const blockItem=cloneCustomBlocks[blockItemIndex];cloneCustomBlocks.splice(blockItemIndex,1),sliceHtml+=getBodyInlineSlice(body,handleCustomBlockCursorIndex,blockItem.startIndex);const drawingItem=drawings[blockItem.blockId];if(drawingItem)switch(drawingItem.drawingType){case core.DrawingTypeEnum.DRAWING_IMAGE:{sliceHtml+=covertImageToHtml(drawingItem),customBlockLength++;break}}handleCustomBlockCursorIndex=blockItem.startIndex+1,blockItemIndex=cloneCustomBlocks.findIndex(block=>handleCustomBlockCursorIndex<=block.startIndex&&endIndex2>=block.startIndex)}return sliceHtml=sliceHtml+getBodyInlineSlice(body,handleCustomBlockCursorIndex,endIndex2+1),{sliceHtml,customBlockLength}},"handleCustomBlock");customRangesInRange.forEach(range=>{var _a2,_b2;const{startIndex:startIndex2,endIndex:endIndex2,rangeType,rangeId}=range,preHtml=handleCustomBlock(cursorIndex,startIndex2);html+=preHtml.sliceHtml;const sliceHtml=handleCustomBlock(startIndex2,endIndex2+1);switch(rangeType){case core.CustomRangeType.HYPERLINK:{html+=`<a data-rangeid="${rangeId}" href="${(_b2=(_a2=range.properties)==null?void 0:_a2.url)!=null?_b2:""}">${sliceHtml.sliceHtml}</a>`;break}default:{html+=sliceHtml.sliceHtml;break}}cursorIndex=endIndex2+1+(preHtml.customBlockLength+sliceHtml.customBlockLength)});const endHtml=handleCustomBlock(cursorIndex,endIndex);return html+=endHtml.sliceHtml,html}__name(getBodySliceHtml,"getBodySliceHtml");function convertBodyToHtml(doc){const body=doc.body||{},{paragraphs=[],sectionBreaks=[]}=body;let{dataStream=""}=body;dataStream.endsWith(`\r
29
+ `)||(dataStream+=`\r
30
+ `,paragraphs.push({startIndex:dataStream.length-2}),sectionBreaks.push({startIndex:dataStream.length-1}),body.dataStream=dataStream,body.paragraphs=paragraphs,body.sectionBreaks=sectionBreaks);const result={html:""},nodeList=engineRender.parseDataStreamToTree(dataStream).sectionList;for(const node of nodeList)processNode(node,doc,result);return result.html}__name(convertBodyToHtml,"convertBodyToHtml");function processNode(node,doc,result){var _a2,_b2;switch(node.nodeType){case core.DataStreamTreeNodeType.SECTION_BREAK:{for(const n of node.children)processNode(n,doc,result);break}case core.DataStreamTreeNodeType.PARAGRAPH:{const{children,startIndex,endIndex}=node,paragraph=(_b2=(_a2=doc.body)==null?void 0:_a2.paragraphs.find(p=>p.startIndex===endIndex))!=null?_b2:{},{paragraphStyle={}}=paragraph,{spaceAbove,spaceBelow,lineSpacing}=paragraphStyle,style=[];if(spaceAbove!=null&&(typeof spaceAbove=="number"?style.push(`margin-top: ${spaceAbove}px`):style.push(`margin-top: ${spaceAbove.v}px`)),spaceBelow!=null&&(typeof spaceBelow=="number"?style.push(`margin-bottom: ${spaceBelow}px`):style.push(`margin-bottom: ${spaceBelow.v}px`)),lineSpacing!=null&&style.push(`line-height: ${lineSpacing}`),result.html+=`<p class="UniverNormal" ${style.length?`style="${style.join("; ")};"`:""}>`,children.length)for(const table of children)processNode(table,doc,result);result.html+=`${getBodySliceHtml(doc,startIndex,endIndex)}</p>`;break}case core.DataStreamTreeNodeType.TABLE:{const{children}=node;result.html+='<table class="UniverTable" style="width: 100%; border-collapse: collapse;"><tbody>';for(const row of children)processNode(row,doc,result);result.html+="</tbody></table>";break}case core.DataStreamTreeNodeType.TABLE_ROW:{const{children}=node;result.html+='<tr class="UniverTableRow">';for(const cell of children)processNode(cell,doc,result);result.html+="</tr>";break}case core.DataStreamTreeNodeType.TABLE_CELL:{const{children}=node;result.html+='<td class="UniverTableCell">';for(const n of children)processNode(n,doc,result);result.html+="</td>";break}default:throw new Error(`Unknown node type: ${node.nodeType}`)}}__name(processNode,"processNode");const _UDMToHtmlService=class _UDMToHtmlService{convert(docList){if(docList.length===0)throw new Error("The bodyList length at least to be 1");let html="";for(const doc of core.Tools.deepClone(docList))html+=convertBodyToHtml(doc);return html}};__name(_UDMToHtmlService,"UDMToHtmlService");let UDMToHtmlService=_UDMToHtmlService;var __defProp$n=Object.defineProperty,__getOwnPropDesc$n=Object.getOwnPropertyDescriptor,__decorateClass$n=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$n(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$n(target,key,result),result},"__decorateClass$n"),__decorateParam$n=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$n");HtmlToUDMService.use(wordPastePlugin),HtmlToUDMService.use(wordPastePlugin$1),HtmlToUDMService.use(univerPastePlugin);function getTableSlice(body,start,end){var _a2,_b2,_c2;const bodySlice=core.getBodySlice(body,start,end+2),dataStream=core.DataStreamTreeTokenType.TABLE_START+core.DataStreamTreeTokenType.TABLE_ROW_START+core.DataStreamTreeTokenType.TABLE_CELL_START+bodySlice.dataStream+core.DataStreamTreeTokenType.TABLE_CELL_END+core.DataStreamTreeTokenType.TABLE_ROW_END+core.DataStreamTreeTokenType.TABLE_END;return bodySlice.dataStream=dataStream,(_a2=bodySlice.textRuns)==null||_a2.forEach(textRun=>{const{st,ed}=textRun;textRun.st=st+3,textRun.ed=ed+3}),(_b2=bodySlice.tables)==null||_b2.forEach(table=>{const{startIndex,endIndex}=table;table.startIndex=startIndex+3,table.endIndex=endIndex+3}),(_c2=bodySlice.paragraphs)==null||_c2.forEach(paragraph=>{const{startIndex}=paragraph;paragraph.startIndex=startIndex+3}),bodySlice}__name(getTableSlice,"getTableSlice");const IDocClipboardService=core.createIdentifier("doc.clipboard-service");let DocClipboardService=(_f=class extends core.Disposable{constructor(_univerInstanceService,_logService,_commandService,_clipboardInterfaceService,_docSelectionManagerService){super();__publicField(this,"_clipboardHooks",[]);__publicField(this,"_htmlToUDM",new HtmlToUDMService);__publicField(this,"_umdToHtml",new UDMToHtmlService);this._univerInstanceService=_univerInstanceService,this._logService=_logService,this._commandService=_commandService,this._clipboardInterfaceService=_clipboardInterfaceService,this._docSelectionManagerService=_docSelectionManagerService}async copy(sliceType=core.SliceBodyType.copy){var _a2;const{newSnapshotList=[],needCache=!1,snapshot}=(_a2=this._getDocumentBodyInRanges(sliceType))!=null?_a2:{};if(newSnapshotList.length===0||snapshot==null)return!1;try{const activeRange=this._docSelectionManagerService.getActiveTextRange(),isCopyInHeaderFooter=!!(activeRange!=null&&activeRange.segmentId);this._setClipboardData(newSnapshotList,!isCopyInHeaderFooter&&needCache)}catch(e){return this._logService.error("[DocClipboardService] copy failed",e),!1}return!0}async cut(){return this._cut()}async paste(items){const partDocData=await this._genDocDataFromClipboardItems(items);return this._paste(partDocData)}async legacyPaste(options){let{html,text,files}=options;const currentDocInstance=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),docUnitId=(currentDocInstance==null?void 0:currentDocInstance.getUnitId())||"";!html&&!text&&files.length&&(html=await this._createImagePasteHtml(files));const partDocData=this._genDocDataFromHtmlAndText(html,text,docUnitId);if(docUnitId===core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)if(text){const textDocData=core.BuildTextUtils.transform.fromPlainText(text);return this._paste({body:textDocData})}else partDocData.body.textRuns=[];return this._paste(partDocData)}async _cut(){var _a2,_b2,_c2;const{segmentId,endOffset:activeEndOffset,style}=(_a2=this._docSelectionManagerService.getActiveTextRange())!=null?_a2:{},textRanges=(_b2=this._docSelectionManagerService.getTextRanges())!=null?_b2:[],rectRanges=(_c2=this._docSelectionManagerService.getRectRanges())!=null?_c2:[];if(segmentId==null&&this._logService.error("[DocClipboardController] segmentId is not existed"),textRanges.length===0&&rectRanges.length===0)return!1;this.copy(core.SliceBodyType.cut);try{let cursor=0;if(rectRanges.length>0)cursor=getCursorWhenDelete(textRanges,rectRanges);else if(activeEndOffset!=null){cursor=activeEndOffset;for(const range of textRanges){const{startOffset,endOffset}=range;startOffset==null||endOffset==null||endOffset<=activeEndOffset&&(cursor-=endOffset-startOffset)}}const newTextRanges=[{startOffset:cursor,endOffset:cursor,style}];return this._commandService.executeCommand(CutContentCommand.id,{segmentId,textRanges:newTextRanges})}catch{return this._logService.error("[DocClipboardController] cut content failed"),!1}}async _paste(docData){var _a2,_b2;const{body:_body}=docData;if(_body==null)return!1;let body=core.normalizeBody(_body);if(!((_a2=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC))==null?void 0:_a2.getUnitId()))return!1;this._clipboardHooks.forEach(hook=>{hook.onBeforePaste&&(body=hook.onBeforePaste(body))}),body.customRanges=(_b2=body.customRanges)==null?void 0:_b2.map(core.BuildTextUtils.customRange.copyCustomRange);const activeRange=this._docSelectionManagerService.getActiveTextRange(),{segmentId,endOffset:activeEndOffset,style}=activeRange||{},ranges=this._docSelectionManagerService.getTextRanges();if(segmentId==null&&this._logService.error("[DocClipboardController] segmentId does not exist!"),activeEndOffset==null||ranges==null)return!1;try{let cursor=activeEndOffset;for(const range of ranges){const{startOffset,endOffset}=range;startOffset==null||endOffset==null||endOffset<=activeEndOffset&&(cursor+=body.dataStream.length-(endOffset-startOffset))}const textRanges=[{startOffset:cursor,endOffset:cursor,style}];return this._commandService.executeCommand(InnerPasteCommand.id,{doc:{...docData,body},segmentId,textRanges})}catch{return this._logService.error("[DocClipboardController]","clipboard is empty."),!1}}async _setClipboardData(documentList,needCache=!0){var _a2,_b2,_c2,_d2;const copyId=genId(),text=(documentList.length>1?documentList.map(doc=>{var _a3;return((_a3=doc.body)==null?void 0:_a3.dataStream)||""}).join(`
31
+ `):((_a2=documentList[0].body)==null?void 0:_a2.dataStream)||"").replaceAll(core.DataStreamTreeTokenType.TABLE_START,"").replaceAll(core.DataStreamTreeTokenType.TABLE_END,"").replaceAll(core.DataStreamTreeTokenType.TABLE_ROW_START,"").replaceAll(core.DataStreamTreeTokenType.TABLE_ROW_END,"").replaceAll(core.DataStreamTreeTokenType.TABLE_CELL_START,"").replaceAll(core.DataStreamTreeTokenType.TABLE_CELL_END,"").replaceAll(`\r
32
+ `," ");let html=this._umdToHtml.convert(documentList);if(documentList.length===1&&needCache){html=html.replace(/(<[a-z]+)/,(_p0,p1)=>`${p1} data-copy-id="${copyId}"`);const doc=documentList[0],cache={body:doc.body};if((_c2=(_b2=doc.body)==null?void 0:_b2.customBlocks)!=null&&_c2.length){cache.drawings={};for(const block of doc.body.customBlocks){const{blockId}=block,drawing2=(_d2=doc.drawings)==null?void 0:_d2[blockId];if(drawing2){const id=core.Tools.generateRandomId(6);block.blockId=id,cache.drawings[id]={...core.Tools.deepClone(drawing2),drawingId:id}}}}copyContentCache.set(copyId,cache)}return this._clipboardInterfaceService.write(text,html)}addClipboardHook(hook){return this._clipboardHooks.push(hook),core.toDisposable(()=>{const index=this._clipboardHooks.indexOf(hook);index>-1&&this._clipboardHooks.splice(index,1)})}_getDocumentBodyInRanges(sliceType){var _a2;const docDataModel=this._univerInstanceService.getCurrentUniverDocInstance(),allRanges=this._docSelectionManagerService.getDocRanges(),results=[];let needCache=!0;if(docDataModel==null||allRanges.length===0)return;const segmentId=allRanges[0].segmentId,body=(_a2=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId))==null?void 0:_a2.getBody(),snapshot=docDataModel.getSnapshot();if(body!=null){for(const range of allRanges){const{startOffset,endOffset,collapsed,rangeType}=range;if(collapsed||startOffset==null||endOffset==null)continue;if(rangeType===core.DOC_RANGE_TYPE.RECT){needCache=!1;const{spanEntireRow}=range;let bodySlice;bodySlice=getTableSlice(body,startOffset,endOffset),results.push(bodySlice);continue}const deleteRange={startOffset,endOffset,collapsed},docBody=docDataModel.getSelfOrHeaderFooterModel(segmentId).sliceBody(deleteRange.startOffset,deleteRange.endOffset,sliceType);docBody!=null&&results.push(docBody)}return{newSnapshotList:results.map(e=>({...snapshot,body:e})),needCache,snapshot}}}async _genDocDataFromClipboardItems(items){try{let html="",text="";const files=[];for(const clipboardItem of items)for(const type of clipboardItem.types)switch(type){case ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE:{text=await clipboardItem.getType(type).then(blob=>blob&&blob.text());break}case ui.HTML_CLIPBOARD_MIME_TYPE:{html=await clipboardItem.getType(type).then(blob=>blob&&blob.text());break}case ui.FILE__BMP_CLIPBOARD_MIME_TYPE:case ui.FILE__JPEG_CLIPBOARD_MIME_TYPE:case ui.FILE__WEBP_CLIPBOARD_MIME_TYPE:case ui.FILE_PNG_CLIPBOARD_MIME_TYPE:{const blob=await clipboardItem.getType(type),file=new File([blob],`pasted_image.${type.split("/")[1]}`,{type});files.push(file);break}}return!html&&!text&&files.length&&(html=await this._createImagePasteHtml(files)),this._genDocDataFromHtmlAndText(html,text)}catch(e){return Promise.reject(e)}}_genDocDataFromHtmlAndText(html,text,_unitId){if(!html){if(text)return{body:core.BuildTextUtils.transform.fromPlainText(text)};throw new Error("[DocClipboardService] html and text cannot be both empty!")}const copyId=extractId(html);if(copyId){const copyCache=copyContentCache.get(copyId);if(copyCache)return copyCache}if(!_unitId){const currentDocInstance=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);_unitId=(currentDocInstance==null?void 0:currentDocInstance.getUnitId())||""}const doc=this._htmlToUDM.convert(html,{unitId:_unitId});return copyId&&copyContentCache.set(copyId,doc),doc}async _createImagePasteHtml(files){var _a2,_b2;const doc={id:"",documentStyle:{},body:{dataStream:"",customBlocks:[]},drawings:{}},fileToBase64=__name(async file=>{const reader=new FileReader;return new Promise(res=>{reader.onloadend=function(){res({source:reader.result,imageSourceType:drawing.ImageSourceType.BASE64})},reader.readAsDataURL(file)})},"fileToBase64"),getImageSize=__name(base64=>{const img=new Image,maxWidth=500;return new Promise(resolve=>{img.src=typeof base64=="string"?base64:URL.createObjectURL(base64),img.onload=()=>{const width=Math.min(maxWidth,img.naturalWidth),scale=img.naturalHeight/img.naturalWidth;resolve({width,height:width*scale})}})},"getImageSize"),onBeforePasteImage=(_b2=(_a2=this._clipboardHooks.find(e=>e.onBeforePasteImage))==null?void 0:_a2.onBeforePasteImage)!=null?_b2:fileToBase64;return await Promise.all(files.map(async(file,index)=>{var _a3;const image=await onBeforePasteImage(file);if(!image)return Promise.resolve();const{width=100,height=100}=await getImageSize(file),itemId=`paste_image_id_${index}`,body=doc.body,drawings=doc.drawings;body.dataStream+="\b",(_a3=body.customBlocks)==null||_a3.push({startIndex:index,blockId:itemId}),drawings[itemId]={drawingId:itemId,unitId:"",subUnitId:"",imageSourceType:image.imageSourceType,title:"",source:image.source,description:"",layoutType:core.PositionedObjectLayoutType.INLINE,drawingType:core.DrawingTypeEnum.DRAWING_IMAGE,transform:{width,height,angle:0},docTransform:{angle:0,size:{width,height},positionH:{relativeFrom:core.ObjectRelativeFromH.CHARACTER,posOffset:0},positionV:{relativeFrom:core.ObjectRelativeFromV.LINE,posOffset:0}}}})),this._umdToHtml.convert([doc])}},__name(_f,"DocClipboardService"),_f);DocClipboardService=__decorateClass$n([__decorateParam$n(0,core.IUniverInstanceService),__decorateParam$n(1,core.ILogService),__decorateParam$n(2,core.ICommandService),__decorateParam$n(3,ui.IClipboardInterfaceService),__decorateParam$n(4,core.Inject(docs.DocSelectionManagerService))],DocClipboardService);function whenDocOrEditor(contextService){return contextService.getContextValue(core.FOCUSING_DOC)||contextService.getContextValue(core.EDITOR_ACTIVATED)}__name(whenDocOrEditor,"whenDocOrEditor");const DOC_CLIPBOARD_PRIORITY=999,DocCopyCommand={id:ui.CopyCommand.id,name:"doc.command.copy",type:core.CommandType.COMMAND,multi:!0,priority:DOC_CLIPBOARD_PRIORITY,preconditions:whenDocOrEditor,handler:__name(async accessor=>accessor.get(IDocClipboardService).copy(),"handler")},DocCutCommand={id:ui.CutCommand.id,name:"doc.command.cut",type:core.CommandType.COMMAND,multi:!0,priority:DOC_CLIPBOARD_PRIORITY,preconditions:whenDocOrEditor,handler:__name(async accessor=>accessor.get(IDocClipboardService).cut(),"handler")},DocPasteCommand={id:ui.PasteCommand.id,name:"doc.command.paste",type:core.CommandType.COMMAND,multi:!0,priority:DOC_CLIPBOARD_PRIORITY,preconditions:whenDocOrEditor,handler:__name(async accessor=>{const docClipboardService=accessor.get(IDocClipboardService),clipboardItems=await accessor.get(ui.IClipboardInterfaceService).read();return clipboardItems.length===0?!1:docClipboardService.paste(clipboardItems)},"handler")},SwitchDocModeCommand={id:"doc.command.switch-mode",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a2,_b2,_c2,_d2,_e2;const commandService=accessor.get(core.ICommandService),renderManagerService=accessor.get(engineRender.IRenderManagerService),docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),docDataModel=accessor.get(core.IUniverInstanceService).getCurrentUniverDocInstance();if(docDataModel==null)return!1;const unitId=docDataModel.getUnitId(),skeleton=(_a2=renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(docs.DocSkeletonManagerService).getSkeleton(),docSelectionRenderService=(_b2=renderManagerService.getRenderById(unitId))==null?void 0:_b2.with(exports2.DocSelectionRenderService);if(skeleton==null||docSelectionRenderService==null)return!1;const segmentId=docSelectionRenderService==null?void 0:docSelectionRenderService.getSegment(),segmentPage=docSelectionRenderService==null?void 0:docSelectionRenderService.getSegmentPage(),oldDocumentFlavor=docDataModel.getSnapshot().documentStyle.documentFlavor,docRanges=docSelectionManagerService.getDocRanges(),doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:oldDocumentFlavor===core.DocumentFlavor.TRADITIONAL&&segmentId?[]:docRanges}},jsonX=core.JSONX.getInstance(),rawActions=[];let action;if(oldDocumentFlavor===void 0?action=jsonX.insertOp(["documentStyle","documentFlavor"],core.DocumentFlavor.MODERN):oldDocumentFlavor===core.DocumentFlavor.MODERN?action=jsonX.replaceOp(["documentStyle","documentFlavor"],oldDocumentFlavor,core.DocumentFlavor.TRADITIONAL):action=jsonX.replaceOp(["documentStyle","documentFlavor"],oldDocumentFlavor,core.DocumentFlavor.MODERN),action)rawActions.push(action);else return!1;if(oldDocumentFlavor!==core.DocumentFlavor.MODERN){const snapshot=docDataModel.getSnapshot(),{drawings={},body}=snapshot,customBlocks=(_c2=body==null?void 0:body.customBlocks)!=null?_c2:[];for(const drawingId in drawings){const drawing2=drawings[drawingId],customBlock=customBlocks.find(block=>block.blockId===drawingId);if(customBlock==null)continue;const drawingPositionV=drawing2.docTransform.positionV,{relativeFrom:prevRelativeFrom,posOffset:prevPosOffset}=drawingPositionV;if(prevRelativeFrom===core.ObjectRelativeFromV.PARAGRAPH)continue;const{startIndex}=customBlock,glyph=skeleton.findNodeByCharIndex(startIndex,segmentId,segmentPage),line=(_d2=glyph==null?void 0:glyph.parent)==null?void 0:_d2.parent,column=line==null?void 0:line.parent,paragraphStartLine=column==null?void 0:column.lines.find(l=>l.paragraphIndex===(line==null?void 0:line.paragraphIndex)&&l.paragraphStart),page=(_e2=column==null?void 0:column.parent)==null?void 0:_e2.parent;if(glyph==null||line==null||paragraphStartLine==null||column==null||page==null)continue;let delta=0;prevRelativeFrom===core.ObjectRelativeFromV.LINE?delta-=line.top:prevRelativeFrom===core.ObjectRelativeFromV.PAGE&&(delta+=page.marginTop),delta+=paragraphStartLine.top;const newPositionV={...drawingPositionV,relativeFrom:core.ObjectRelativeFromV.PARAGRAPH,posOffset:(prevPosOffset!=null?prevPosOffset:0)-delta},updateDrawingAction=jsonX.replaceOp(["drawings",drawingId,"docTransform","positionV"],drawingPositionV,newPositionV);updateDrawingAction&&rawActions.push(updateDrawingAction)}}return doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},DocTableDeleteRowsCommand={id:"doc.table.delete-rows",type:core.CommandType.COMMAND,handler:__name(async accessor=>{const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),activeRectRanges=docSelectionManagerService.getRectRanges(),activeTextRange=docSelectionManagerService.getActiveTextRange(),rangeInfo=getRangeInfoFromRanges(activeTextRange,activeRectRanges);if(rangeInfo==null)return!1;const{segmentId}=rangeInfo,docDataModel=univerInstanceService.getCurrentUniverDocInstance(),body=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(docDataModel==null||body==null)return!1;const docSkeletonManagerService=getCommandSkeleton(accessor,docDataModel.getUnitId());if(docSkeletonManagerService==null)return!1;const viewModel=docSkeletonManagerService.getViewModel(),unitId=docDataModel==null?void 0:docDataModel.getUnitId(),textX=new core.TextX,jsonX=core.JSONX.getInstance(),actionParams=getDeleteRowsActionsParams(rangeInfo,viewModel);if(actionParams==null)return!1;const{offset,rowIndexes,len,tableId,cursor,selectWholeTable}=actionParams;if(selectWholeTable)return commandService.executeCommand(DocTableDeleteTableCommand.id);const rawActions=[],textRanges=[{startOffset:cursor,endOffset:cursor,collapsed:!0}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges}};offset>0&&textX.push({t:core.TextXActionType.RETAIN,len:offset}),textX.push({t:core.TextXActionType.DELETE,len});const path=getRichTextEditPath(docDataModel,segmentId);rawActions.push(jsonX.editOp(textX.serialize(),path));for(const index of rowIndexes.reverse()){const action=jsonX.removeOp(["tableSource",tableId,"tableRows",index]);rawActions.push(action)}return doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},DocTableDeleteColumnsCommand={id:"doc.table.delete-columns",type:core.CommandType.COMMAND,handler:__name(async accessor=>{const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),activeRectRanges=docSelectionManagerService.getRectRanges(),activeTextRange=docSelectionManagerService.getActiveTextRange(),rangeInfo=getRangeInfoFromRanges(activeTextRange,activeRectRanges);if(rangeInfo==null)return!1;const{segmentId}=rangeInfo,docDataModel=univerInstanceService.getCurrentUniverDocInstance(),body=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(docDataModel==null||body==null)return!1;const docSkeletonManagerService=getCommandSkeleton(accessor,docDataModel.getUnitId());if(docSkeletonManagerService==null)return!1;const viewModel=docSkeletonManagerService.getViewModel(),unitId=docDataModel==null?void 0:docDataModel.getUnitId(),textX=new core.TextX,jsonX=core.JSONX.getInstance(),actionParams=getDeleteColumnsActionParams(rangeInfo,viewModel);if(actionParams==null)return!1;const{offsets,columnIndexes,tableId,cursor,rowCount,selectWholeTable}=actionParams;if(selectWholeTable)return commandService.executeCommand(DocTableDeleteTableCommand.id);const rawActions=[],textRanges=[{startOffset:cursor,endOffset:cursor,collapsed:!0}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges}};for(const offset of offsets){const{retain,delete:deleteLen}=offset;retain>0&&textX.push({t:core.TextXActionType.RETAIN,len:retain}),textX.push({t:core.TextXActionType.DELETE,len:deleteLen})}const path=getRichTextEditPath(docDataModel,segmentId);rawActions.push(jsonX.editOp(textX.serialize(),path)),columnIndexes.reverse();for(let i=0;i<rowCount;i++)for(const index of columnIndexes){const action=jsonX.removeOp(["tableSource",tableId,"tableRows",i,"tableCells",index]);rawActions.push(action)}for(const index of columnIndexes){const action=jsonX.removeOp(["tableSource",tableId,"tableColumns",index]);rawActions.push(action)}return doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},DocTableDeleteTableCommand={id:"doc.table.delete-table",type:core.CommandType.COMMAND,handler:__name(async accessor=>{const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),activeRectRanges=docSelectionManagerService.getRectRanges(),activeTextRange=docSelectionManagerService.getActiveTextRange(),rangeInfo=getRangeInfoFromRanges(activeTextRange,activeRectRanges);if(rangeInfo==null)return!1;const{segmentId}=rangeInfo,docDataModel=univerInstanceService.getCurrentUniverDocInstance(),body=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(docDataModel==null||body==null)return!1;const docSkeletonManagerService=getCommandSkeleton(accessor,docDataModel.getUnitId());if(docSkeletonManagerService==null)return!1;const viewModel=docSkeletonManagerService.getViewModel(),unitId=docDataModel==null?void 0:docDataModel.getUnitId(),textX=new core.TextX,jsonX=core.JSONX.getInstance(),actionParams=getDeleteTableActionParams(rangeInfo,viewModel);if(actionParams==null)return!1;const{offset,len,tableId,cursor}=actionParams,rawActions=[],textRanges=[{startOffset:cursor,endOffset:cursor,collapsed:!0}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges}};offset>0&&textX.push({t:core.TextXActionType.RETAIN,len:offset}),textX.push({t:core.TextXActionType.DELETE,len});const path=getRichTextEditPath(docDataModel,segmentId);rawActions.push(jsonX.editOp(textX.serialize(),path));const action=jsonX.removeOp(["tableSource",tableId]);return rawActions.push(action),doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},DocTableInsertRowCommandId="doc.command.table-insert-row",DocTableInsertColumnCommandId="doc.command.table-insert-column",DocTableInsertRowAboveCommandId="doc.command.table-insert-row-above",DocTableInsertRowBellowCommandId="doc.command.table-insert-row-bellow",DocTableInsertColumnLeftCommandId="doc.command.table-insert-column-left",DocTableInsertColumnRightCommandId="doc.command.table-insert-column-right",DocTableInsertRowAboveCommand={id:DocTableInsertRowAboveCommandId,type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(DocTableInsertRowCommandId,{position:INSERT_ROW_POSITION.ABOVE}),"handler")},DocTableInsertRowBellowCommand={id:DocTableInsertRowBellowCommandId,type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(DocTableInsertRowCommandId,{position:INSERT_ROW_POSITION.BELLOW}),"handler")},DocTableInsertColumnLeftCommand={id:DocTableInsertColumnLeftCommandId,type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(DocTableInsertColumnCommandId,{position:INSERT_COLUMN_POSITION.LEFT}),"handler")},DocTableInsertColumnRightCommand={id:DocTableInsertColumnRightCommandId,type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(DocTableInsertColumnCommandId,{position:INSERT_COLUMN_POSITION.RIGHT}),"handler")},DocTableInsertRowCommand={id:DocTableInsertRowCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const{position}=params,docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),activeRectRanges=docSelectionManagerService.getRectRanges(),activeTextRange=docSelectionManagerService.getActiveTextRange(),rangeInfo=getRangeInfoFromRanges(activeTextRange,activeRectRanges);if(rangeInfo==null)return!1;const{segmentId}=rangeInfo,docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),body=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(docDataModel==null||body==null)return!1;const docSkeletonManagerService=getCommandSkeleton(accessor,docDataModel.getUnitId());if(docSkeletonManagerService==null)return!1;const viewModel=docSkeletonManagerService.getViewModel(),unitId=docDataModel==null?void 0:docDataModel.getUnitId(),textX=new core.TextX,jsonX=core.JSONX.getInstance(),actionParams=getInsertRowActionsParams(rangeInfo,position,viewModel);if(actionParams==null)return!1;const{offset,colCount,tableId,insertRowIndex}=actionParams,rawActions=[],cursor=offset+2,textRanges=[{startOffset:cursor,endOffset:cursor,collapsed:!0}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges}};offset>0&&textX.push({t:core.TextXActionType.RETAIN,len:offset});const insertBody=getInsertRowBody(colCount);textX.push({t:core.TextXActionType.INSERT,body:insertBody,len:insertBody.dataStream.length});const path=getRichTextEditPath(docDataModel,segmentId);rawActions.push(jsonX.editOp(textX.serialize(),path));const insertRow=getEmptyTableRow(colCount),insertTableSource=jsonX.insertOp(["tableSource",tableId,"tableRows",insertRowIndex],insertRow);return rawActions.push(insertTableSource),doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},DocTableInsertColumnCommand={id:DocTableInsertColumnCommandId,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2,_b2,_c2;const{position}=params,docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),activeRectRanges=docSelectionManagerService.getRectRanges(),activeTextRange=docSelectionManagerService.getActiveTextRange(),rangeInfo=getRangeInfoFromRanges(activeTextRange,activeRectRanges);if(rangeInfo==null)return!1;const{segmentId}=rangeInfo,docDataModel=univerInstanceService.getCurrentUniverDocInstance(),body=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(docDataModel==null||body==null)return!1;const docSkeletonManagerService=getCommandSkeleton(accessor,docDataModel.getUnitId());if(docSkeletonManagerService==null)return!1;const viewModel=docSkeletonManagerService.getViewModel(),unitId=docDataModel==null?void 0:docDataModel.getUnitId(),textX=new core.TextX,jsonX=core.JSONX.getInstance(),actionParams=getInsertColumnActionsParams(rangeInfo,position,viewModel);if(actionParams==null)return!1;const{offsets,columnIndex,tableId,rowCount}=actionParams,rawActions=[],cursor=offsets[0]+1,textRanges=[{startOffset:cursor,endOffset:cursor,collapsed:!0}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges}};for(const offset of offsets){textX.push({t:core.TextXActionType.RETAIN,len:offset});const insertBody=getInsertColumnBody();textX.push({t:core.TextXActionType.INSERT,body:insertBody,len:insertBody.dataStream.length})}const path=getRichTextEditPath(docDataModel,segmentId);rawActions.push(jsonX.editOp(textX.serialize(),path));for(let i=0;i<rowCount;i++){const insertCell=getEmptyTableCell(),insertTableSource=jsonX.insertOp(["tableSource",tableId,"tableRows",i,"tableCells",columnIndex],insertCell);rawActions.push(insertTableSource)}const snapshot=docDataModel.getSnapshot(),documentStyle=snapshot.documentStyle,{marginLeft=0,marginRight=0}=documentStyle,pageWidth=((_b2=(_a2=documentStyle.pageSize)==null?void 0:_a2.width)!=null?_b2:800)-marginLeft-marginRight,tableColumns=(_c2=snapshot==null?void 0:snapshot.tableSource)==null?void 0:_c2[tableId].tableColumns,{newColWidth,widths}=getColumnWidths(pageWidth,tableColumns,columnIndex);for(let i=0;i<widths.length;i++){const action=jsonX.replaceOp(["tableSource",tableId,"tableColumns",i,"size","width","v"],tableColumns[i].size.width.v,widths[i]);rawActions.push(action)}const insertCol=getTableColumn(newColWidth),insertTableColumn=jsonX.insertOp(["tableSource",tableId,"tableColumns",columnIndex],insertCol);return rawActions.push(insertTableColumn),doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},COMPONENT_DOC_CREATE_TABLE_CONFIRM="COMPONENT_DOC_CREATE_TABLE_CONFIRM";function generateParagraphs(dataStream,prevParagraph){const paragraphs=[];for(let i=0,len=dataStream.length;i<len;i++)dataStream[i]===core.DataStreamTreeTokenType.PARAGRAPH&&paragraphs.push({startIndex:i});if(prevParagraph)for(const paragraph of paragraphs)prevParagraph.bullet&&(paragraph.bullet=core.Tools.deepClone(prevParagraph.bullet)),prevParagraph.paragraphStyle&&(paragraph.paragraphStyle=core.Tools.deepClone(prevParagraph.paragraphStyle));return paragraphs}__name(generateParagraphs,"generateParagraphs");const BreakLineCommand={id:"doc.command.break-line",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a2,_b2,_c2;const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),docMenuStyleService=accessor.get(DocMenuStyleService),activeTextRange=docSelectionManagerService.getActiveTextRange(),rectRanges=docSelectionManagerService.getRectRanges();if(activeTextRange==null)return!1;if(rectRanges&&rectRanges.length){const{startOffset:startOffset2}=activeTextRange;return docSelectionManagerService.replaceDocRanges([{startOffset:startOffset2,endOffset:startOffset2}]),!0}const{segmentId}=activeTextRange,docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),body=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId!=null?segmentId:"").getBody();if(docDataModel==null||body==null)return!1;const unitId=docDataModel.getUnitId(),{startOffset,endOffset}=activeTextRange,prevParagraph=((_a2=body.paragraphs)!=null?_a2:[]).find(p=>p.startIndex>=startOffset);if(!prevParagraph)return!1;const prevParagraphIndex=prevParagraph.startIndex,defaultTextStyle=docMenuStyleService.getDefaultStyle(),styleCache=docMenuStyleService.getStyleCache(),curTextRun=getTextRunAtPosition((_b2=body.textRuns)!=null?_b2:[],endOffset,defaultTextStyle,styleCache),insertBody={dataStream:core.DataStreamTreeTokenType.PARAGRAPH,paragraphs:generateParagraphs(core.DataStreamTreeTokenType.PARAGRAPH,prevParagraph),textRuns:[{st:0,ed:1,ts:{...curTextRun.ts}}]},deleteRange={startOffset,endOffset,collapsed:startOffset===endOffset},result=await commandService.executeCommand(InsertCommand.id,{unitId,body:insertBody,range:deleteRange,segmentId});if(((_c2=prevParagraph.bullet)==null?void 0:_c2.listType)===core.PresetListType.CHECK_LIST_CHECKED){const params={index:prevParagraphIndex+1-(endOffset-startOffset),segmentId,textRanges:[{startOffset:startOffset+1,endOffset:startOffset+1}]};return!!await commandService.executeCommand(ToggleCheckListCommand.id,params)&&result}return result},"handler")},CreateDocTableCommand={id:"doc.command.create-table",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2,_b2,_c2,_d2,_e2,_f2;const{rowCount,colCount}=params,docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),docMenuStyleService=accessor.get(DocMenuStyleService),activeRange=docSelectionManagerService.getActiveTextRange();if(activeRange==null)return!1;const{segmentId,segmentPage}=activeRange,docDataModel=univerInstanceService.getCurrentUniverDocInstance(),body=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(docDataModel==null||body==null)return!1;const unitId=docDataModel.getUnitId(),docSkeletonManagerService=getCommandSkeleton(accessor,unitId),skeleton=docSkeletonManagerService==null?void 0:docSkeletonManagerService.getSkeleton();if(skeleton==null)return!1;const{startOffset}=activeRange,prevParagraph=((_a2=body.paragraphs)!=null?_a2:[]).find(p=>p.startIndex>=startOffset),curGlyph=skeleton.findNodeByCharIndex(startOffset,segmentId,segmentPage);if(curGlyph==null)return!1;const textX=new core.TextX,jsonX=core.JSONX.getInstance(),rawActions=[],cursor=startOffset+4,textRanges=[{startOffset:cursor,endOffset:cursor,collapsed:!0}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges}};startOffset>0&&textX.push({t:core.TextXActionType.RETAIN,len:startOffset}),textX.push({t:core.TextXActionType.INSERT,body:{dataStream:core.DataStreamTreeTokenType.PARAGRAPH,paragraphs:generateParagraphs(core.DataStreamTreeTokenType.PARAGRAPH,prevParagraph)},len:1});const defaultTextStyle=docMenuStyleService.getDefaultStyle(),styleCache=docMenuStyleService.getStyleCache(),curTextRun=getTextRunAtPosition((_b2=body.textRuns)!=null?_b2:[],startOffset,defaultTextStyle,styleCache),{dataStream:tableDataStream,paragraphs:tableParagraphs,sectionBreaks}=genEmptyTable(rowCount,colCount),page=(_f2=(_e2=(_d2=(_c2=curGlyph.parent)==null?void 0:_c2.parent)==null?void 0:_d2.parent)==null?void 0:_e2.parent)==null?void 0:_f2.parent;if(page==null)return!1;const{pageWidth,marginLeft,marginRight}=page,tableSource=genTableSource(rowCount,colCount,pageWidth-marginLeft-marginRight);textX.push({t:core.TextXActionType.INSERT,body:{dataStream:tableDataStream,paragraphs:tableParagraphs,sectionBreaks,textRuns:[{...curTextRun,st:0,ed:tableDataStream.length}],tables:[{startIndex:0,endIndex:tableDataStream.length,tableId:tableSource.tableId}]},len:tableDataStream.length});const path=getRichTextEditPath(docDataModel,segmentId);rawActions.push(jsonX.editOp(textX.serialize(),path));const insertTableSource=jsonX.insertOp(["tableSource",tableSource.tableId],tableSource);return rawActions.push(insertTableSource),doMutation.params.actions=rawActions.reduce((acc,cur)=>core.JSONX.compose(acc,cur),null),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},COMPONENT_DOC_CREATE_TABLE_CONFIRM_ID="doc.component.create-table-confirm",DocCreateTableOperation={id:"doc.operation.create-table",type:core.CommandType.COMMAND,handler:__name(async accessor=>{const localeService=accessor.get(core.LocaleService),confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),tableCreateParams={rowCount:3,colCount:5},handleRowColChange=__name((rowCount,colCount)=>{tableCreateParams.rowCount=rowCount,tableCreateParams.colCount=colCount},"handleRowColChange");return await confirmService.open({id:COMPONENT_DOC_CREATE_TABLE_CONFIRM_ID,children:{label:{name:COMPONENT_DOC_CREATE_TABLE_CONFIRM,props:{handleRowColChange,tableCreateParams}}},width:400,title:{title:localeService.t("toolbar.table.insert")},onConfirm:__name(()=>{commandService.executeCommand(CreateDocTableCommand.id,tableCreateParams),confirmService.close(COMPONENT_DOC_CREATE_TABLE_CONFIRM_ID)},"onConfirm"),onClose:__name(()=>{confirmService.close(COMPONENT_DOC_CREATE_TABLE_CONFIRM_ID)},"onClose")}),!0},"handler")},DocParagraphSettingCommand={id:"doc-paragraph-setting.command",type:core.CommandType.COMMAND,handler:__name(async(accessor,config)=>{var _a2,_b2;const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService),docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),docRanges=docSelectionManagerService.getDocRanges();if(!docDataModel||docRanges.length===0||!config)return!1;const segmentId=docRanges[0].segmentId,unitId=docDataModel.getUnitId(),allParagraphs=(_b2=(_a2=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody())==null?void 0:_a2.paragraphs)!=null?_b2:[],paragraphs=getParagraphsInRanges(docRanges,allParagraphs),doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges:docRanges}},memoryCursor=new core.MemoryCursor;memoryCursor.reset();const textX=new core.TextX,jsonX=core.JSONX.getInstance();for(const paragraph of paragraphs){const{startIndex}=paragraph;textX.push({t:core.TextXActionType.RETAIN,len:startIndex-memoryCursor.cursor});const paragraphStyle={...paragraph.paragraphStyle,...config.paragraph};textX.push({t:core.TextXActionType.RETAIN,len:1,body:{dataStream:"",paragraphs:[{...paragraph,paragraphStyle,startIndex:0}]},coverType:core.UpdateDocsAttributeType.REPLACE}),memoryCursor.moveCursorTo(startIndex+1)}const path=getRichTextEditPath(docDataModel,segmentId);return doMutation.params.actions=jsonX.editOp(textX.serialize(),path),!!commandService.syncExecuteCommand(doMutation.id,doMutation.params)},"handler")},useDocRanges=__name(()=>{const docSelectionManagerService=core.useDependency(docs.DocSelectionManagerService),docParagraphSettingController=core.useDependency(DocParagraphSettingController),docRanges=React.useMemo(()=>docSelectionManagerService.getDocRanges(),[]);return React.useEffect(()=>{docRanges.length||docParagraphSettingController.closePanel()},[docRanges]),docRanges},"useDocRanges"),useCurrentParagraph=__name(()=>{var _a2,_b2;const docDataModel=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),docRanges=useDocRanges();if(!docDataModel||docRanges.length===0)return[];const segmentId=docRanges[0].segmentId,paragraphs=(_b2=(_a2=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody())==null?void 0:_a2.paragraphs)!=null?_b2:[];return getParagraphsInRanges(docRanges,paragraphs)},"useCurrentParagraph"),useFirstParagraphHorizontalAlign=__name((paragraph,defaultValue)=>{const commandService=core.useDependency(core.ICommandService),[horizontalAlign,_horizontalAlignSet]=React.useState(()=>{var _a2,_b2;const firstParagraph=paragraph[0];return firstParagraph?String((_b2=(_a2=firstParagraph.paragraphStyle)==null?void 0:_a2.horizontalAlign)!=null?_b2:defaultValue):defaultValue});return[horizontalAlign,__name(v=>(_horizontalAlignSet(v),commandService.executeCommand(DocParagraphSettingCommand.id,{paragraph:{horizontalAlign:Number(v)}})),"horizontalAlignSet")]},"useFirstParagraphHorizontalAlign"),useFirstParagraphIndentStart=__name(paragraph=>{const commandService=core.useDependency(core.ICommandService),[indentStart,_indentStartSet]=React.useState(()=>{var _a2;const firstParagraph=paragraph[0];return firstParagraph?engineRender.getNumberUnitValue((_a2=firstParagraph.paragraphStyle)==null?void 0:_a2.indentStart,0):0});return[indentStart,__name(v=>(_indentStartSet(v),commandService.executeCommand(DocParagraphSettingCommand.id,{paragraph:{indentStart:{v}}})),"indentStartSet")]},"useFirstParagraphIndentStart"),useFirstParagraphIndentEnd=__name(paragraph=>{const commandService=core.useDependency(core.ICommandService),[indentEnd,_indentEndSet]=React.useState(()=>{var _a2;const firstParagraph=paragraph[0];return firstParagraph?engineRender.getNumberUnitValue((_a2=firstParagraph.paragraphStyle)==null?void 0:_a2.indentEnd,0):0});return[indentEnd,__name(v=>(_indentEndSet(v),commandService.executeCommand(DocParagraphSettingCommand.id,{paragraph:{indentEnd:{v}}})),"indentEndSet")]},"useFirstParagraphIndentEnd"),useFirstParagraphIndentFirstLine=__name(paragraph=>{const commandService=core.useDependency(core.ICommandService),[indentFirstLine,_indentFirstLineSet]=React.useState(()=>{var _a2;const firstParagraph=paragraph[0];return firstParagraph?engineRender.getNumberUnitValue((_a2=firstParagraph.paragraphStyle)==null?void 0:_a2.indentFirstLine,0):0});return[indentFirstLine,__name(v=>(_indentFirstLineSet(v),commandService.executeCommand(DocParagraphSettingCommand.id,{paragraph:{indentFirstLine:{v}}})),"indentFirstLineSet")]},"useFirstParagraphIndentFirstLine"),useFirstParagraphIndentHanging=__name(paragraph=>{const commandService=core.useDependency(core.ICommandService),[hanging,_hangingSet]=React.useState(()=>{var _a2;const firstParagraph=paragraph[0];return firstParagraph?engineRender.getNumberUnitValue((_a2=firstParagraph.paragraphStyle)==null?void 0:_a2.hanging,0):0});return[hanging,__name(v=>(_hangingSet(v),commandService.executeCommand(DocParagraphSettingCommand.id,{paragraph:{hanging:{v}}})),"hangingSet")]},"useFirstParagraphIndentHanging"),useFirstParagraphIndentSpaceAbove=__name(paragraph=>{const commandService=core.useDependency(core.ICommandService),[spaceAbove,_spaceAboveSet]=React.useState(()=>{var _a2;const firstParagraph=paragraph[0];return firstParagraph?engineRender.getNumberUnitValue((_a2=firstParagraph.paragraphStyle)==null?void 0:_a2.spaceAbove,0):0});return[spaceAbove,__name(v=>(_spaceAboveSet(v),commandService.executeCommand(DocParagraphSettingCommand.id,{paragraph:{spaceAbove:{v}}})),"spaceAboveSet")]},"useFirstParagraphIndentSpaceAbove"),useFirstParagraphSpaceBelow=__name(paragraph=>{const commandService=core.useDependency(core.ICommandService),[spaceBelow,_spaceBelowSet]=React.useState(()=>{var _a2;const firstParagraph=paragraph[0];return firstParagraph?engineRender.getNumberUnitValue((_a2=firstParagraph.paragraphStyle)==null?void 0:_a2.spaceBelow,0):0});return[spaceBelow,__name(v=>(_spaceBelowSet(v),commandService.executeCommand(DocParagraphSettingCommand.id,{paragraph:{spaceBelow:{v}}})),"spaceBelowSet")]},"useFirstParagraphSpaceBelow"),useFirstParagraphLineSpacing=__name(paragraph=>{const commandService=core.useDependency(core.ICommandService),renderManagerService=core.useDependency(engineRender.IRenderManagerService),univerInstanceService=core.useDependency(core.IUniverInstanceService),skeleton=React.useMemo(()=>{var _a2;const docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);if(docDataModel)return(_a2=renderManagerService.getRenderById(docDataModel==null?void 0:docDataModel.getUnitId()))==null?void 0:_a2.with(docs.DocSkeletonManagerService).getSkeleton()},[]),stateChange$=React.useMemo(()=>new rxjs.BehaviorSubject({}),[]),[lineSpacing,_lineSpacingSet]=React.useState(()=>{var _a2,_b2;const firstParagraph=paragraph[0];return firstParagraph&&(_b2=(_a2=firstParagraph.paragraphStyle)==null?void 0:_a2.lineSpacing)!=null?_b2:1}),lineSpacingCache=React.useRef(lineSpacing),[spacingRule,_spacingRuleSet]=React.useState(()=>{var _a2,_b2;const firstParagraph=paragraph[0];return firstParagraph&&(_b2=(_a2=firstParagraph.paragraphStyle)==null?void 0:_a2.spacingRule)!=null?_b2:core.SpacingRule.AUTO}),lineSpacingSet=__name(async v=>{_lineSpacingSet(v),stateChange$.next({lineSpacing:v,spacingRule})},"lineSpacingSet"),spacingRuleSet=__name(async v=>{if(v!==spacingRule){let cache=lineSpacingCache.current;if(v===core.SpacingRule.AT_LEAST){const glyphNode=skeleton==null?void 0:skeleton.findNodeByCharIndex(paragraph[0].startIndex),divideNode=glyphNode==null?void 0:glyphNode.parent,lineNode=divideNode==null?void 0:divideNode.parent;(lineNode==null?void 0:lineNode.contentHeight)!==void 0&&(cache=Math.max(lineNode.contentHeight,cache))}else cache>5&&(cache=2);lineSpacingCache.current=lineSpacing,lineSpacingSet(cache),_spacingRuleSet(v),stateChange$.next({spacingRule:v})}},"spacingRuleSet");return React.useEffect(()=>{const dispose=stateChange$.pipe(operators.filter(obj=>!!Object.keys(obj).length),operators.bufferTime(16),operators.filter(list=>!!list.length),operators.map(list=>list.reduce((a,b)=>(Object.keys(b).forEach(key=>{a[key]=b[key]}),a),{}))).subscribe(v=>commandService.executeCommand(DocParagraphSettingCommand.id,{paragraph:{...v}}));return()=>dispose.unsubscribe()},[]),{lineSpacing:[lineSpacing,lineSpacingSet],spacingRule:[spacingRule,spacingRuleSet]}},"useFirstParagraphLineSpacing"),styles$1={paragraphSettingIconList:"univer-paragraph-setting-icon-list",paragraphSettingIconListItem:"univer-paragraph-setting-icon-list-item",paragraphSettingIconListActive:"univer-paragraph-setting-icon-list-active",paragraphSettingTitle:"univer-paragraph-setting-title",paragraphSettingLabel:"univer-paragraph-setting-label",paragraphSettingMtBase:"univer-paragraph-setting-mt-base",paragraphSettingFlexCol:"univer-paragraph-setting-flex-col",paragraphSettingSpaceLine:"univer-paragraph-setting-space-line"},AutoFocusInputNumber=__name(props=>{const{value,onChange,className="",min=0,max=100,step=1}=props,ref=React__namespace.useRef(null);return jsxRuntime.jsx(design.InputNumber,{step,ref,min,max,value,onChange:__name(v=>{onChange(v!=null?v:0).finally(()=>{setTimeout(()=>{var _a2;(_a2=ref.current)==null||_a2.focus()},30)})},"onChange"),className})},"AutoFocusInputNumber");function ParagraphSetting(){const localeService=core.useDependency(core.LocaleService),alignmentOptions=React.useMemo(()=>[{label:localeService.t("toolbar.alignLeft"),value:String(core.HorizontalAlign.LEFT),icon:jsxRuntime.jsx(LeftJustifyingSingle,{})},{label:localeService.t("toolbar.alignCenter"),value:String(core.HorizontalAlign.CENTER),icon:jsxRuntime.jsx(HorizontallySingle,{})},{label:localeService.t("toolbar.alignRight"),value:String(core.HorizontalAlign.RIGHT),icon:jsxRuntime.jsx(RightJustifyingSingle,{})},{label:localeService.t("toolbar.alignJustify"),value:String(core.HorizontalAlign.JUSTIFIED),icon:jsxRuntime.jsx(AlignTextBothSingle,{})}],[]),currentParagraph=useCurrentParagraph(),[horizontalAlignValue,horizontalAlignSet]=useFirstParagraphHorizontalAlign(currentParagraph,alignmentOptions[0].value),[indentStart,indentStartSet]=useFirstParagraphIndentStart(currentParagraph),[indentEnd,indentEndSet]=useFirstParagraphIndentEnd(currentParagraph),[indentFirstLine,indentFirstLineSet]=useFirstParagraphIndentFirstLine(currentParagraph),[hanging,hangingSet]=useFirstParagraphIndentHanging(currentParagraph),[spaceAbove,spaceAboveSet]=useFirstParagraphIndentSpaceAbove(currentParagraph),[spaceBelow,spaceBelowSet]=useFirstParagraphSpaceBelow(currentParagraph),{lineSpacing:[lineSpacing,lineSpacingSet],spacingRule:[spacingRule,spacingRuleSet]}=useFirstParagraphLineSpacing(currentParagraph),lineSpaceConfig=React.useMemo(()=>spacingRule===core.SpacingRule.AUTO?{min:1,max:5,step:lineSpacing<2?.5:1}:{min:1,max:100},[spacingRule,lineSpacing]);return jsxRuntime.jsxs("div",{className:styles$1.paragraphSetting,children:[jsxRuntime.jsx("div",{className:styles$1.paragraphSettingTitle,children:localeService.t("doc.paragraphSetting.alignment")}),jsxRuntime.jsx("div",{className:`
33
+ ${styles$1.paragraphSettingIconList}
34
+ ${styles$1.paragraphSettingMtBase}
35
+ `,children:alignmentOptions.map(item=>jsxRuntime.jsx(design.Tooltip,{title:item.label,placement:"bottom",children:jsxRuntime.jsx("span",{className:clsx(styles$1.paragraphSettingIconListItem,{[styles$1.paragraphSettingIconListActive]:horizontalAlignValue===item.value}),onClick:__name(()=>horizontalAlignSet(item.value),"onClick"),children:item.icon})},item.value))}),jsxRuntime.jsx("div",{className:styles$1.paragraphSettingTitle,children:localeService.t("doc.paragraphSetting.indentation")}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingFlexCol,children:[jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingLabel,children:[localeService.t("doc.paragraphSetting.left"),"(px)"]}),jsxRuntime.jsx(AutoFocusInputNumber,{className:styles$1.paragraphSettingMtBase,value:indentStart,onChange:__name(v=>indentStartSet(v!=null?v:0),"onChange")})]}),jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingFlexCol,children:[jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingLabel,children:[localeService.t("doc.paragraphSetting.right"),"(px)"]}),jsxRuntime.jsx(AutoFocusInputNumber,{className:styles$1.paragraphSettingMtBase,value:indentEnd,onChange:__name(v=>indentEndSet(v!=null?v:0),"onChange")})]}),jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingFlexCol,children:[jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingLabel,children:[localeService.t("doc.paragraphSetting.firstLine"),"(px)"]}),jsxRuntime.jsx(AutoFocusInputNumber,{className:styles$1.paragraphSettingMtBase,value:indentFirstLine,onChange:__name(v=>indentFirstLineSet(v!=null?v:0),"onChange")})]}),jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingFlexCol,children:[jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingLabel,children:[localeService.t("doc.paragraphSetting.hanging"),"(px)"]}),jsxRuntime.jsx(AutoFocusInputNumber,{className:styles$1.paragraphSettingMtBase,value:hanging,onChange:__name(v=>hangingSet(v!=null?v:0),"onChange")})]})]}),jsxRuntime.jsx("div",{className:styles$1.paragraphSettingTitle,children:localeService.t("doc.paragraphSetting.spacing")}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingFlexCol,children:[jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingLabel,children:[localeService.t("doc.paragraphSetting.before"),"(px)"]}),jsxRuntime.jsx(AutoFocusInputNumber,{className:styles$1.paragraphSettingMtBase,value:spaceAbove,onChange:__name(v=>spaceAboveSet(v!=null?v:0),"onChange")})]}),jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingFlexCol,children:[jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingLabel,children:[localeService.t("doc.paragraphSetting.after"),"(px)"]}),jsxRuntime.jsx(AutoFocusInputNumber,{className:styles$1.paragraphSettingMtBase,value:spaceBelow,onChange:__name(v=>spaceBelowSet(v!=null?v:0),"onChange")})]}),jsxRuntime.jsxs("div",{className:styles$1.paragraphSettingFlexCol,children:[jsxRuntime.jsx("div",{className:styles$1.paragraphSettingLabel,children:localeService.t("doc.paragraphSetting.lineSpace")}),jsxRuntime.jsxs("div",{className:`
36
+ ${styles$1.paragraphSettingMtBase}
37
+ ${styles$1.paragraphSettingSpaceLine}
38
+ `,style:{width:162},children:[jsxRuntime.jsx(design.Select,{value:`${spacingRule}`,options:[{label:localeService.t("doc.paragraphSetting.multiSpace"),value:`${core.SpacingRule.AUTO}`},{label:localeService.t("doc.paragraphSetting.fixedValue"),value:`${core.SpacingRule.AT_LEAST}`}],onChange:__name(v=>spacingRuleSet(Number(v)),"onChange")}),jsxRuntime.jsx(AutoFocusInputNumber,{...lineSpaceConfig,value:lineSpacing,onChange:__name(v=>lineSpacingSet(v!=null?v:0),"onChange")})]})]})]})]})}__name(ParagraphSetting,"ParagraphSetting");const isRangesEqual=__name((oldRanges,ranges)=>ranges.length===oldRanges.length&&oldRanges.some(oldRange=>ranges.some(range=>range.startOffset===oldRange.startOffset&&range.endOffset===oldRange.endOffset)),"isRangesEqual");function ParagraphSettingIndex(){const commandService=core.useDependency(core.ICommandService),localeService=core.useDependency(core.LocaleService),currentLocale=core.useObservable(localeService.currentLocale$),[key,keySet]=React.useState(""),debounceReset=React.useMemo(()=>core.debounce(()=>keySet(core.generateRandomId(4)),300),[]),rangeRef=React.useRef([]);return React.useEffect(()=>{const dispose=commandService.onCommandExecuted(info=>{if(docs.SetTextSelectionsOperation.id===info.id){const ranges=info.params.ranges;isRangesEqual(ranges,rangeRef.current)||keySet(core.generateRandomId(4)),rangeRef.current=ranges}docs.RichTextEditingMutation.id===info.id&&info.params.trigger!==DocParagraphSettingCommand.id&&debounceReset()});return()=>dispose.dispose()},[debounceReset]),React.useEffect(()=>{keySet(core.generateRandomId(4))},[currentLocale]),React.useEffect(()=>()=>debounceReset.cancel(),[debounceReset]),jsxRuntime.jsx(ParagraphSetting,{},key)}__name(ParagraphSettingIndex,"ParagraphSettingIndex");var __defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__decorateClass$m=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$m(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$m(target,key,result),result},"__decorateClass$m"),__decorateParam$m=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$m");const paragraphSettingIndexKey="doc_ui_paragraph-setting-panel";let DocParagraphSettingController=(_g=class extends core.Disposable{constructor(_commandService,_componentManager,_sidebarService){super();__publicField(this,"_id");this._commandService=_commandService,this._componentManager=_componentManager,this._sidebarService=_sidebarService,this._init()}_init(){this.disposeWithMe(this._componentManager.register(paragraphSettingIndexKey,ParagraphSettingIndex))}openPanel(){const props={header:{title:"doc.slider.paragraphSetting"},id:this._id,children:{label:paragraphSettingIndexKey},width:300};this._sidebarService.open(props)}closePanel(){this._sidebarService.close(this._id)}},__name(_g,"DocParagraphSettingController"),_g);DocParagraphSettingController=__decorateClass$m([__decorateParam$m(0,core.ICommandService),__decorateParam$m(1,core.Inject(ui.ComponentManager)),__decorateParam$m(2,core.Inject(ui.ISidebarService))],DocParagraphSettingController);const DocParagraphSettingPanelOperation={id:"sidebar.operation.doc-paragraph-setting-panel",type:core.CommandType.OPERATION,handler:__name(accessor=>(accessor.get(DocParagraphSettingController).openPanel(),!0),"handler")},getDisableOnCollapsedObservable=__name(accessor=>{const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService);return new rxjs.Observable(subscriber=>{const observable=docSelectionManagerService.textSelection$.subscribe(()=>{docSelectionManagerService.getDocRanges().some(range=>range.collapsed===!1||range.rangeType===core.DOC_RANGE_TYPE.RECT)?subscriber.next(!1):subscriber.next(!0)});return()=>observable.unsubscribe()})},"getDisableOnCollapsedObservable");function inSameTable(rectRanges){if(rectRanges.length<2)return!0;const tableIds=rectRanges.map(rectRange=>rectRange.tableId);return tableIds.every(tableId=>tableId===tableIds[0])}__name(inSameTable,"inSameTable");function notInTableSubscriber(subscriber,docSelectionManagerService,univerInstanceService){var _a2;const rectRanges=docSelectionManagerService.getRectRanges(),activeRange=docSelectionManagerService.getActiveTextRange();if(rectRanges&&rectRanges.length&&inSameTable(rectRanges)&&activeRange==null){subscriber.next(!1);return}if(activeRange&&(rectRanges==null||rectRanges.length===0)){const{segmentId,startOffset,endOffset}=activeRange,docDataModel=univerInstanceService.getCurrentUniverDocInstance(),tables=(_a2=docDataModel==null?void 0:docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody())==null?void 0:_a2.tables;if(tables&&tables.length&&tables.some(table=>{const{startIndex,endIndex}=table;return startOffset>startIndex&&startOffset<endIndex||endOffset>startIndex&&endOffset<endIndex})){subscriber.next(!1);return}}subscriber.next(!0)}__name(notInTableSubscriber,"notInTableSubscriber");const getDisableWhenSelectionNotInTableObservable=__name(accessor=>{const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService);return new rxjs.Observable(subscriber=>{const observable=docSelectionManagerService.textSelection$.subscribe(()=>{notInTableSubscriber(subscriber,docSelectionManagerService,univerInstanceService)});return notInTableSubscriber(subscriber,docSelectionManagerService,univerInstanceService),()=>observable.unsubscribe()})},"getDisableWhenSelectionNotInTableObservable"),CopyMenuFactory=__name(accessor=>({id:DocCopyCommand.name,commandId:DocCopyCommand.id,type:ui.MenuItemType.BUTTON,icon:"Copy",title:"rightClick.copy",disabled$:getDisableOnCollapsedObservable(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}),"CopyMenuFactory"),ParagraphSettingMenuFactory=__name(accessor=>({id:DocParagraphSettingPanelOperation.id,type:ui.MenuItemType.BUTTON,icon:"MenuSingle24",title:"doc.menu.paragraphSetting",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}),"ParagraphSettingMenuFactory"),CutMenuFactory=__name(accessor=>({id:DocCutCommand.id,type:ui.MenuItemType.BUTTON,icon:"Copy",title:"rightClick.cut",disabled$:getDisableOnCollapsedObservable(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}),"CutMenuFactory"),PasteMenuFactory=__name(accessor=>({id:DocPasteCommand.id,type:ui.MenuItemType.BUTTON,icon:"PasteSpecial",title:"rightClick.paste",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}),"PasteMenuFactory"),DeleteMenuFactory=__name(accessor=>({id:DeleteLeftCommand.id,type:ui.MenuItemType.BUTTON,icon:"PasteSpecial",title:"rightClick.delete",disabled$:getDisableOnCollapsedObservable(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}),"DeleteMenuFactory"),TABLE_INSERT_MENU_ID="doc.menu.table-insert";function TableInsertMenuItemFactory(accessor){return{id:TABLE_INSERT_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"table.insert",icon:"Insert",hidden$:rxjs.combineLatest(ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC),getDisableWhenSelectionNotInTableObservable(accessor),(one,two)=>one||two)}}__name(TableInsertMenuItemFactory,"TableInsertMenuItemFactory");function InsertRowBeforeMenuItemFactory(accessor){return{id:DocTableInsertRowAboveCommand.id,type:ui.MenuItemType.BUTTON,title:"table.insertRowAbove",icon:"InsertRowAbove",disabled$:getDisableWhenSelectionNotInTableObservable(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(InsertRowBeforeMenuItemFactory,"InsertRowBeforeMenuItemFactory");function InsertRowAfterMenuItemFactory(accessor){return{id:DocTableInsertRowBellowCommand.id,type:ui.MenuItemType.BUTTON,title:"table.insertRowBelow",icon:"InsertRowBelow",disabled$:getDisableWhenSelectionNotInTableObservable(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(InsertRowAfterMenuItemFactory,"InsertRowAfterMenuItemFactory");function InsertColumnLeftMenuItemFactory(accessor){return{id:DocTableInsertColumnLeftCommand.id,type:ui.MenuItemType.BUTTON,title:"table.insertColumnLeft",icon:"LeftInsertColumn",disabled$:getDisableWhenSelectionNotInTableObservable(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(InsertColumnLeftMenuItemFactory,"InsertColumnLeftMenuItemFactory");function InsertColumnRightMenuItemFactory(accessor){return{id:DocTableInsertColumnRightCommand.id,type:ui.MenuItemType.BUTTON,title:"table.insertColumnRight",icon:"RightInsertColumn",disabled$:getDisableWhenSelectionNotInTableObservable(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(InsertColumnRightMenuItemFactory,"InsertColumnRightMenuItemFactory");const TABLE_DELETE_MENU_ID="doc.menu.table-delete";function TableDeleteMenuItemFactory(accessor){return{id:TABLE_DELETE_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"table.delete",icon:"Reduce",hidden$:rxjs.combineLatest(ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC),getDisableWhenSelectionNotInTableObservable(accessor),(one,two)=>one||two)}}__name(TableDeleteMenuItemFactory,"TableDeleteMenuItemFactory");function DeleteRowsMenuItemFactory(accessor){return{id:DocTableDeleteRowsCommand.id,type:ui.MenuItemType.BUTTON,title:"table.deleteRows",icon:"DeleteRow",disabled$:getDisableWhenSelectionNotInTableObservable(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(DeleteRowsMenuItemFactory,"DeleteRowsMenuItemFactory");function DeleteColumnsMenuItemFactory(accessor){return{id:DocTableDeleteColumnsCommand.id,type:ui.MenuItemType.BUTTON,title:"table.deleteColumns",icon:"DeleteColumn",disabled$:getDisableWhenSelectionNotInTableObservable(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(DeleteColumnsMenuItemFactory,"DeleteColumnsMenuItemFactory");function DeleteTableMenuItemFactory(accessor){return{id:DocTableDeleteTableCommand.id,type:ui.MenuItemType.BUTTON,title:"table.deleteTable",icon:"GridSingle",disabled$:getDisableWhenSelectionNotInTableObservable(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(DeleteTableMenuItemFactory,"DeleteTableMenuItemFactory");function getInsertTableHiddenObservable(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),renderManagerService=accessor.get(engineRender.IRenderManagerService);return new rxjs.Observable(subscriber=>{const subscription=univerInstanceService.focused$.subscribe(unitId=>{if(unitId==null||univerInstanceService.getUnitType(unitId)!==core.UniverInstanceType.UNIVER_DOC)return subscriber.next(!0);const currentRender2=renderManagerService.getRenderById(unitId);if(currentRender2==null)return subscriber.next(!0);currentRender2.with(docs.DocSkeletonManagerService).getViewModel().editAreaChange$.subscribe(editArea=>{subscriber.next(editArea===engineRender.DocumentEditArea.HEADER||editArea===engineRender.DocumentEditArea.FOOTER)})}),currentRender=renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_DOC);if(currentRender==null)return subscriber.next(!0);const viewModel=currentRender.with(docs.DocSkeletonManagerService).getViewModel();return subscriber.next(viewModel.getEditArea()!==engineRender.DocumentEditArea.BODY),()=>subscription.unsubscribe()})}__name(getInsertTableHiddenObservable,"getInsertTableHiddenObservable");function getHeaderFooterMenuHiddenObservable(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),commandService=accessor.get(core.ICommandService);return new rxjs.Observable(subscriber=>{const subscription0=commandService.onCommandExecuted(command=>{if(command.id===docs.RichTextEditingMutation.id){const{unitId}=command.params,docDataModel2=univerInstanceService.getUnit(unitId);if(docDataModel2==null){subscriber.next(!0);return}const{documentStyle}=docDataModel2.getSnapshot();subscriber.next((documentStyle==null?void 0:documentStyle.documentFlavor)!==core.DocumentFlavor.TRADITIONAL)}}),subscription=univerInstanceService.focused$.subscribe(unitId=>{if(unitId==null)return subscriber.next(!0);const docDataModel2=univerInstanceService.getUniverDocInstance(unitId),documentFlavor2=docDataModel2==null?void 0:docDataModel2.getSnapshot().documentStyle.documentFlavor;subscriber.next(documentFlavor2!==core.DocumentFlavor.TRADITIONAL)}),docDataModel=univerInstanceService.getCurrentUniverDocInstance();if(docDataModel==null)return subscriber.next(!0);const documentFlavor=docDataModel==null?void 0:docDataModel.getSnapshot().documentStyle.documentFlavor;return subscriber.next(documentFlavor!==core.DocumentFlavor.TRADITIONAL),()=>{subscription0.dispose(),subscription.unsubscribe()}})}__name(getHeaderFooterMenuHiddenObservable,"getHeaderFooterMenuHiddenObservable");function getTableDisabledObservable(accessor){const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService);return new rxjs.Observable(subscriber=>{const subscription=docSelectionManagerService.textSelection$.subscribe(selection=>{if(selection==null){subscriber.next(!0);return}const{textRanges}=selection;if(textRanges.length!==1){subscriber.next(!0);return}const textRange=textRanges[0],{collapsed,startNodePosition,startOffset}=textRange;if(!collapsed||startOffset==null){subscriber.next(!0);return}const docDataModel=univerInstanceService.getCurrentUniverDocInstance();if(docDataModel==null){subscriber.next(!0);return}const docSkeletonManagerService=getCommandSkeleton(accessor,docDataModel.getUnitId());if(docSkeletonManagerService==null){subscriber.next(!0);return}if(docSkeletonManagerService.getViewModel().getCustomRangeRaw(startOffset)){subscriber.next(!0);return}if(startNodePosition!=null){const{path}=startNodePosition;if(path.indexOf("cells")!==-1){subscriber.next(!0);return}}subscriber.next(!1)});return()=>subscription.unsubscribe()})}__name(getTableDisabledObservable,"getTableDisabledObservable");function disableMenuWhenNoDocRange(accessor){const docSelectionManagerService=accessor.get(docs.DocSelectionManagerService);return new rxjs.Observable(subscriber=>{const subscription=docSelectionManagerService.textSelection$.subscribe(selection=>{if(selection==null){subscriber.next(!0);return}const{textRanges,rectRanges}=selection;if(textRanges.length===0&&rectRanges.length===0){subscriber.next(!0);return}subscriber.next(!1)});return()=>subscription.unsubscribe()})}__name(disableMenuWhenNoDocRange,"disableMenuWhenNoDocRange");function BoldMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:SetInlineFormatBoldCommand.id,type:ui.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",activated$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===SetInlineFormatCommand.id){const textRun=getFontStyleAtCursor(accessor);if(textRun==null){subscriber.next(!1);return}const bl=(_a2=textRun.ts)==null?void 0:_a2.bl;subscriber.next(bl===core.BooleanNumber.TRUE)}});return subscriber.next(!1),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(BoldMenuItemFactory,"BoldMenuItemFactory");function ItalicMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:SetInlineFormatItalicCommand.id,type:ui.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",activated$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===SetInlineFormatCommand.id){const textRun=getFontStyleAtCursor(accessor);if(textRun==null){subscriber.next(!1);return}const it=(_a2=textRun.ts)==null?void 0:_a2.it;subscriber.next(it===core.BooleanNumber.TRUE)}});return subscriber.next(!1),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(ItalicMenuItemFactory,"ItalicMenuItemFactory");function UnderlineMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:SetInlineFormatUnderlineCommand.id,type:ui.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",activated$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===SetInlineFormatCommand.id){const textRun=getFontStyleAtCursor(accessor);if(textRun==null){subscriber.next(!1);return}const ul=(_a2=textRun.ts)==null?void 0:_a2.ul;subscriber.next((ul==null?void 0:ul.s)===core.BooleanNumber.TRUE)}});return subscriber.next(!1),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(UnderlineMenuItemFactory,"UnderlineMenuItemFactory");function StrikeThroughMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:SetInlineFormatStrikethroughCommand.id,type:ui.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",activated$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===SetInlineFormatCommand.id){const textRun=getFontStyleAtCursor(accessor);if(textRun==null){subscriber.next(!1);return}const st=(_a2=textRun.ts)==null?void 0:_a2.st;subscriber.next((st==null?void 0:st.s)===core.BooleanNumber.TRUE)}});return subscriber.next(!1),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(StrikeThroughMenuItemFactory,"StrikeThroughMenuItemFactory");function SubscriptMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:SetInlineFormatSubscriptCommand.id,type:ui.MenuItemType.BUTTON,icon:"SubscriptSingle",tooltip:"toolbar.subscript",activated$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===SetInlineFormatCommand.id){const textRun=getFontStyleAtCursor(accessor);if(textRun==null){subscriber.next(!1);return}const va=(_a2=textRun.ts)==null?void 0:_a2.va;subscriber.next(va===core.BaselineOffset.SUBSCRIPT)}});return subscriber.next(!1),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(SubscriptMenuItemFactory,"SubscriptMenuItemFactory");function SuperscriptMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:SetInlineFormatSuperscriptCommand.id,type:ui.MenuItemType.BUTTON,icon:"SuperscriptSingle",tooltip:"toolbar.superscript",activated$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===SetInlineFormatCommand.id){const textRun=getFontStyleAtCursor(accessor);if(textRun==null){subscriber.next(!1);return}const va=(_a2=textRun.ts)==null?void 0:_a2.va;subscriber.next(va===core.BaselineOffset.SUPERSCRIPT)}});return subscriber.next(!1),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(SuperscriptMenuItemFactory,"SuperscriptMenuItemFactory");function FontFamilySelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:SetInlineFormatFontFamilyCommand.id,tooltip:"toolbar.font",type:ui.MenuItemType.SELECTOR,label:FONT_FAMILY_COMPONENT,selections:ui.FONT_FAMILY_LIST.map(item=>({label:{name:FONT_FAMILY_ITEM_COMPONENT,hoverable:!0},value:item.value})),value$:new rxjs.Observable(subscriber=>{const defaultValue=core.DEFAULT_STYLES.ff,disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===SetInlineFormatFontFamilyCommand.id){const textRun=getFontStyleAtCursor(accessor);if(textRun==null){subscriber.next(defaultValue);return}const ff=(_a2=textRun.ts)==null?void 0:_a2.ff;subscriber.next(ff!=null?ff:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(FontFamilySelectorMenuItemFactory,"FontFamilySelectorMenuItemFactory");function FontSizeSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:SetInlineFormatFontSizeCommand.id,type:ui.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:FONT_SIZE_COMPONENT,props:{min:1,max:400}},selections:ui.FONT_SIZE_LIST,value$:new rxjs.Observable(subscriber=>{const DEFAULT_SIZE=core.DEFAULT_STYLES.fs,disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===SetInlineFormatFontSizeCommand.id){const textRun=getFontStyleAtCursor(accessor);if(textRun==null){subscriber.next(DEFAULT_SIZE);return}const fs=(_a2=textRun.ts)==null?void 0:_a2.fs;subscriber.next(fs!=null?fs:DEFAULT_SIZE)}});return subscriber.next(DEFAULT_SIZE),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(FontSizeSelectorMenuItemFactory,"FontSizeSelectorMenuItemFactory");function TextColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:SetInlineFormatTextColorCommand.id,icon:"FontColor",tooltip:"toolbar.textColor.main",type:ui.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultColor=themeService.getCurrentTheme().textColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===SetInlineFormatTextColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultColor)}});return subscriber.next(defaultColor),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(TextColorSelectorMenuItemFactory,"TextColorSelectorMenuItemFactory");function HeaderFooterMenuItemFactory(accessor){return{id:OpenHeaderFooterPanelCommand.id,type:ui.MenuItemType.BUTTON,icon:"HeaderFooterSingle",tooltip:"toolbar.headerFooter",hidden$:rxjs.combineLatest(ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC,void 0,core.DOCS_ZEN_EDITOR_UNIT_ID_KEY),getHeaderFooterMenuHiddenObservable(accessor),(one,two)=>one||two)}}__name(HeaderFooterMenuItemFactory,"HeaderFooterMenuItemFactory");const TableIcon="GridSingle",TABLE_MENU_ID="doc.menu.table";function TableMenuFactory(accessor){return{id:TABLE_MENU_ID,type:ui.MenuItemType.SUBITEMS,icon:TableIcon,tooltip:"toolbar.table.main",disabled$:getTableDisabledObservable(accessor),hidden$:rxjs.combineLatest(ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC,void 0,core.DOCS_ZEN_EDITOR_UNIT_ID_KEY),getInsertTableHiddenObservable(accessor),(one,two)=>one||two)}}__name(TableMenuFactory,"TableMenuFactory");function InsertTableMenuFactory(_accessor){return{id:DocCreateTableOperation.id,title:"toolbar.table.insert",type:ui.MenuItemType.BUTTON,hidden$:ui.getMenuHiddenObservable(_accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(InsertTableMenuFactory,"InsertTableMenuFactory");function AlignLeftMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:AlignLeftCommand.id,type:ui.MenuItemType.BUTTON,icon:"LeftJustifyingSingle",tooltip:"toolbar.alignLeft",disabled$:disableMenuWhenNoDocRange(accessor),activated$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===AlignOperationCommand.id){const paragraph=getParagraphStyleAtCursor(accessor);if(paragraph==null)return;const alignType=(_a2=paragraph.paragraphStyle)==null?void 0:_a2.horizontalAlign;subscriber.next(alignType===core.HorizontalAlign.LEFT)}});return subscriber.next(!1),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC,void 0,core.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}}__name(AlignLeftMenuItemFactory,"AlignLeftMenuItemFactory");function AlignCenterMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:AlignCenterCommand.id,type:ui.MenuItemType.BUTTON,icon:"HorizontallySingle",tooltip:"toolbar.alignCenter",activated$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===AlignOperationCommand.id){const paragraph=getParagraphStyleAtCursor(accessor);if(paragraph==null)return;const alignType=(_a2=paragraph.paragraphStyle)==null?void 0:_a2.horizontalAlign;subscriber.next(alignType===core.HorizontalAlign.CENTER)}});return subscriber.next(!1),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC,void 0,core.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}}__name(AlignCenterMenuItemFactory,"AlignCenterMenuItemFactory");function AlignRightMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:AlignRightCommand.id,type:ui.MenuItemType.BUTTON,icon:"RightJustifyingSingle",tooltip:"toolbar.alignRight",activated$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===AlignOperationCommand.id){const paragraph=getParagraphStyleAtCursor(accessor);if(paragraph==null)return;const alignType=(_a2=paragraph.paragraphStyle)==null?void 0:_a2.horizontalAlign;subscriber.next(alignType===core.HorizontalAlign.RIGHT)}});return subscriber.next(!1),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC,void 0,core.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}}__name(AlignRightMenuItemFactory,"AlignRightMenuItemFactory");function AlignJustifyMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService);return{id:AlignJustifyCommand.id,type:ui.MenuItemType.BUTTON,icon:"AlignTextBothSingle",tooltip:"toolbar.alignJustify",activated$:new rxjs.Observable(subscriber=>{const disposable=commandService.onCommandExecuted(c=>{var _a2;const id=c.id;if(id===docs.SetTextSelectionsOperation.id||id===AlignOperationCommand.id){const paragraph=getParagraphStyleAtCursor(accessor);if(paragraph==null)return;const alignType=(_a2=paragraph.paragraphStyle)==null?void 0:_a2.horizontalAlign;subscriber.next(alignType===core.HorizontalAlign.JUSTIFIED)}});return subscriber.next(!1),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC,void 0,core.DOCS_ZEN_EDITOR_UNIT_ID_KEY)}}__name(AlignJustifyMenuItemFactory,"AlignJustifyMenuItemFactory");const listValueFactory$=__name(accessor=>new rxjs.Observable(subscriber=>{const univerInstanceService=accessor.get(core.IUniverInstanceService),docSelectionManagerService=accessor.get(docs.DocSelectionManagerService);let textSubscription;const subscription=univerInstanceService.focused$.subscribe(unitId=>{if(textSubscription==null||textSubscription.unsubscribe(),unitId==null)return;const docDataModel=univerInstanceService.getUniverDocInstance(unitId);docDataModel!=null&&(textSubscription=docSelectionManagerService.textSelection$.subscribe(()=>{var _a2,_b2,_c2;const docRanges=docSelectionManagerService.getDocRanges(),range=(_a2=docRanges.find(r2=>r2.isActive))!=null?_a2:docRanges[0];if(range){const doc=docDataModel.getSelfOrHeaderFooterModel(range==null?void 0:range.segmentId),paragraphs=getParagraphsInRange(range,(_c2=(_b2=doc.getBody())==null?void 0:_b2.paragraphs)!=null?_c2:[]);let listType;if(paragraphs.every(p=>{var _a3;return listType||(listType=(_a3=p.bullet)==null?void 0:_a3.listType),p.bullet&&p.bullet.listType===listType})){subscriber.next(listType);return}}subscriber.next(void 0)}))});return()=>{subscription.unsubscribe(),textSubscription==null||textSubscription.unsubscribe()}}),"listValueFactory$");function OrderListMenuItemFactory(accessor){return{id:OrderListCommand.id,type:ui.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:ORDER_LIST_TYPE_COMPONENT,hoverable:!1},value$:listValueFactory$(accessor)}],icon:"OrderSingle",tooltip:"toolbar.order",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC),disabled$:disableMenuWhenNoDocRange(accessor),activated$:listValueFactory$(accessor).pipe(rxjs.map(v=>v&&v.indexOf("ORDER_LIST")===0))}}__name(OrderListMenuItemFactory,"OrderListMenuItemFactory");function BulletListMenuItemFactory(accessor){return{id:BulletListCommand.id,type:ui.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:BULLET_LIST_TYPE_COMPONENT,hoverable:!1},value$:listValueFactory$(accessor)}],icon:"UnorderSingle",tooltip:"toolbar.unorder",disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC),activated$:listValueFactory$(accessor).pipe(rxjs.map(v=>v&&v.indexOf("BULLET_LIST")===0))}}__name(BulletListMenuItemFactory,"BulletListMenuItemFactory");function CheckListMenuItemFactory(accessor){return{id:CheckListCommand.id,type:ui.MenuItemType.BUTTON,icon:"TodoList",tooltip:"toolbar.checklist",disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC),activated$:listValueFactory$(accessor).pipe(rxjs.map(v=>v&&v.indexOf("CHECK_LIST")===0))}}__name(CheckListMenuItemFactory,"CheckListMenuItemFactory");function DocSwitchModeMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService);return{id:SwitchDocModeCommand.id,type:ui.MenuItemType.BUTTON,icon:"KeyboardSingle",tooltip:"toolbar.documentFlavor",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC,void 0,core.DOCS_ZEN_EDITOR_UNIT_ID_KEY),activated$:new rxjs.Observable(subscriber=>{var _a2;const subscription=commandService.onCommandExecuted(c=>{var _a3;if(c.id===docs.RichTextEditingMutation.id){const instance2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);subscriber.next(((_a3=instance2==null?void 0:instance2.getSnapshot())==null?void 0:_a3.documentStyle.documentFlavor)===core.DocumentFlavor.MODERN)}}),instance=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);return subscriber.next(((_a2=instance==null?void 0:instance.getSnapshot())==null?void 0:_a2.documentStyle.documentFlavor)===core.DocumentFlavor.MODERN),()=>subscription.dispose()})}}__name(DocSwitchModeMenuItemFactory,"DocSwitchModeMenuItemFactory");function ResetBackgroundColorMenuItemFactory(accessor){return{id:ResetInlineFormatTextBackgroundColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor"}}__name(ResetBackgroundColorMenuItemFactory,"ResetBackgroundColorMenuItemFactory");function BackgroundColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:SetInlineFormatTextBackgroundColorCommand.id,tooltip:"toolbar.fillColor.main",type:ui.MenuItemType.BUTTON_SELECTOR,icon:"PaintBucket",selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultColor=themeService.getCurrentTheme().primaryColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===SetInlineFormatTextBackgroundColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultColor)}});return subscriber.next(defaultColor),disposable.dispose}),disabled$:disableMenuWhenNoDocRange(accessor),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(BackgroundColorSelectorMenuItemFactory,"BackgroundColorSelectorMenuItemFactory");function getFontStyleAtCursor(accessor){var _a2,_b2;const univerInstanceService=accessor.get(core.IUniverInstanceService),textSelectionService=accessor.get(docs.DocSelectionManagerService),docMenuStyleService=accessor.get(DocMenuStyleService),docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),docRanges=textSelectionService.getDocRanges(),activeRange=(_a2=docRanges.find(r2=>r2.isActive))!=null?_a2:docRanges[0],defaultTextStyle=docMenuStyleService.getDefaultStyle(),cacheStyle=(_b2=docMenuStyleService.getStyleCache())!=null?_b2:{};if(docDataModel==null||activeRange==null)return{ts:{...defaultTextStyle,...cacheStyle}};const{segmentId}=activeRange,body=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();return body==null?{ts:{...defaultTextStyle,...cacheStyle}}:{ts:{...getStyleInTextRange(body,activeRange,defaultTextStyle),...cacheStyle}}}__name(getFontStyleAtCursor,"getFontStyleAtCursor");function getParagraphStyleAtCursor(accessor){var _a2,_b2;const univerInstanceService=accessor.get(core.IUniverInstanceService),textSelectionService=accessor.get(docs.DocSelectionManagerService),docDataModel=univerInstanceService.getCurrentUniverDocInstance(),docRanges=textSelectionService.getDocRanges(),activeRange=(_a2=docRanges.find(r2=>r2.isActive))!=null?_a2:docRanges[0];if(docDataModel==null||activeRange==null)return;const{startOffset,segmentId}=activeRange,paragraphs=(_b2=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody())==null?void 0:_b2.paragraphs;if(paragraphs==null)return;let prevIndex=-1;for(const paragraph of paragraphs){const{startIndex}=paragraph;if(startOffset>prevIndex&&startOffset<=startIndex)return paragraph;prevIndex=startIndex}return null}__name(getParagraphStyleAtCursor,"getParagraphStyleAtCursor");const menuSchema={[ui.RibbonStartGroup.FORMAT]:{[SetInlineFormatBoldCommand.id]:{order:0,menuItemFactory:BoldMenuItemFactory},[SetInlineFormatItalicCommand.id]:{order:1,menuItemFactory:ItalicMenuItemFactory},[SetInlineFormatUnderlineCommand.id]:{order:2,menuItemFactory:UnderlineMenuItemFactory},[SetInlineFormatStrikethroughCommand.id]:{order:3,menuItemFactory:StrikeThroughMenuItemFactory},[SetInlineFormatSubscriptCommand.id]:{order:4,menuItemFactory:SubscriptMenuItemFactory},[SetInlineFormatSuperscriptCommand.id]:{order:5,menuItemFactory:SuperscriptMenuItemFactory},[SetInlineFormatFontSizeCommand.id]:{order:6,menuItemFactory:FontSizeSelectorMenuItemFactory},[SetInlineFormatFontFamilyCommand.id]:{order:7,menuItemFactory:FontFamilySelectorMenuItemFactory},[SetInlineFormatTextColorCommand.id]:{order:8,menuItemFactory:TextColorSelectorMenuItemFactory},[SetInlineFormatTextBackgroundColorCommand.id]:{order:9,menuItemFactory:BackgroundColorSelectorMenuItemFactory,[ResetInlineFormatTextBackgroundColorCommand.id]:{order:0,menuItemFactory:ResetBackgroundColorMenuItemFactory}}},[ui.RibbonStartGroup.LAYOUT]:{[TABLE_MENU_ID]:{order:1,menuItemFactory:TableMenuFactory,[DocCreateTableOperation.id]:{order:0,menuItemFactory:InsertTableMenuFactory}},[AlignLeftCommand.id]:{order:2,menuItemFactory:AlignLeftMenuItemFactory},[AlignCenterCommand.id]:{order:3,menuItemFactory:AlignCenterMenuItemFactory},[AlignRightCommand.id]:{order:4,menuItemFactory:AlignRightMenuItemFactory},[AlignJustifyCommand.id]:{order:5,menuItemFactory:AlignJustifyMenuItemFactory},[OrderListCommand.id]:{order:6,menuItemFactory:OrderListMenuItemFactory},[BulletListCommand.id]:{order:7,menuItemFactory:BulletListMenuItemFactory},[CheckListCommand.id]:{order:8,menuItemFactory:CheckListMenuItemFactory},[OpenHeaderFooterPanelCommand.id]:{order:9,menuItemFactory:HeaderFooterMenuItemFactory},[SwitchDocModeCommand.id]:{order:10,menuItemFactory:DocSwitchModeMenuItemFactory}},[ui.ContextMenuPosition.MAIN_AREA]:{[ui.ContextMenuGroup.FORMAT]:{[DocCopyCommand.name]:{order:0,menuItemFactory:CopyMenuFactory},[DocCutCommand.id]:{order:1,menuItemFactory:CutMenuFactory},[DocPasteCommand.id]:{order:2,menuItemFactory:PasteMenuFactory},[DeleteLeftCommand.id]:{order:3,menuItemFactory:DeleteMenuFactory}},[ui.ContextMenuGroup.LAYOUT]:{[DocParagraphSettingPanelOperation.id]:{order:0,menuItemFactory:ParagraphSettingMenuFactory},[TABLE_INSERT_MENU_ID]:{order:1,menuItemFactory:TableInsertMenuItemFactory,[DocTableInsertRowAboveCommand.id]:{order:1,menuItemFactory:InsertRowBeforeMenuItemFactory},[DocTableInsertRowBellowCommand.id]:{order:2,menuItemFactory:InsertRowAfterMenuItemFactory},[DocTableInsertColumnLeftCommand.id]:{order:3,menuItemFactory:InsertColumnLeftMenuItemFactory},[DocTableInsertColumnRightCommand.id]:{order:4,menuItemFactory:InsertColumnRightMenuItemFactory}},[TABLE_DELETE_MENU_ID]:{order:2,menuItemFactory:TableDeleteMenuItemFactory,[DocTableDeleteRowsCommand.id]:{order:1,menuItemFactory:DeleteRowsMenuItemFactory},[DocTableDeleteColumnsCommand.id]:{order:2,menuItemFactory:DeleteColumnsMenuItemFactory},[DocTableDeleteTableCommand.id]:{order:3,menuItemFactory:DeleteTableMenuItemFactory}}}}};var __defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__decorateClass$l=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$l(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$l(target,key,result),result},"__decorateClass$l"),__decorateParam$l=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$l");exports2.DocUIController=(_h=class extends core.Disposable{constructor(_injector,_componentManager,_commandService,_layoutService,_menuManagerService,_uiPartsService,_univerInstanceService,_shortcutService,_configService){super(),this._injector=_injector,this._componentManager=_componentManager,this._commandService=_commandService,this._layoutService=_layoutService,this._menuManagerService=_menuManagerService,this._uiPartsService=_uiPartsService,this._univerInstanceService=_univerInstanceService,this._shortcutService=_shortcutService,this._configService=_configService,this._init()}_initCustomComponents(){const componentManager=this._componentManager;this.disposeWithMe(componentManager.register(COLOR_PICKER_COMPONENT,design.ColorPicker)),this.disposeWithMe(componentManager.register(FONT_FAMILY_COMPONENT,ui.FontFamily)),this.disposeWithMe(componentManager.register(FONT_FAMILY_ITEM_COMPONENT,ui.FontFamilyItem)),this.disposeWithMe(componentManager.register(FONT_SIZE_COMPONENT,ui.FontSize)),this.disposeWithMe(componentManager.register(BULLET_LIST_TYPE_COMPONENT,BulletListTypePicker)),this.disposeWithMe(componentManager.register(ORDER_LIST_TYPE_COMPONENT,OrderListTypePicker)),this.disposeWithMe(componentManager.register("TodoList",TodoList))}_initUiParts(){var _a2,_b2;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),config=this._configService.getConfig(DOCS_UI_PLUGIN_CONFIG_KEY);(_b2=(_a2=config==null?void 0:config.layout)==null?void 0:_a2.docContainerConfig)!=null&&_b2.footer&&!workbook&&this.disposeWithMe(this._uiPartsService.registerComponent(ui.BuiltInUIPart.FOOTER,()=>core.connectInjector(DocFooter,this._injector)))}_initMenus(){this._menuManagerService.mergeMenu(menuSchema)}_initShortCut(){[BoldShortCut,ItalicShortCut,UnderlineShortCut,StrikeThroughShortCut,SubscriptShortCut,SuperscriptShortCut,AlignCenterShortCut,AlignJustifyShortCut,AlignRightShortCut,AlignLeftShortCut,OrderListShortCut,BulletListShortCut,TabShortCut].forEach(shortcut=>{this.disposeWithMe(this._shortcutService.registerShortcut(shortcut))})}_init(){this._initCustomComponents(),this._initMenus(),this._initFocusHandler(),this._initCommands(),this._initUiParts(),this._initShortCut()}_initCommands(){[CoreHeaderFooterCommand,OpenHeaderFooterPanelCommand,SidebarDocHeaderFooterPanelOperation].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command)))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(core.UniverInstanceType.UNIVER_DOC,unitId=>{this._injector.get(engineRender.IRenderManagerService).getRenderById(unitId).with(exports2.DocSelectionRenderService).focus()}))}},__name(_h,"DocUIController"),_h),exports2.DocUIController=__decorateClass$l([__decorateParam$l(0,core.Inject(core.Injector)),__decorateParam$l(1,core.Inject(ui.ComponentManager)),__decorateParam$l(2,core.ICommandService),__decorateParam$l(3,ui.ILayoutService),__decorateParam$l(4,ui.IMenuManagerService),__decorateParam$l(5,ui.IUIPartsService),__decorateParam$l(6,core.IUniverInstanceService),__decorateParam$l(7,ui.IShortcutService),__decorateParam$l(8,core.IConfigService)],exports2.DocUIController);var __defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$k=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$k(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$k(target,key,result),result},"__decorateClass$k"),__decorateParam$k=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$k");const ANCHOR_WIDTH=1.5;exports2.DocBackScrollRenderController=(_i=class extends core.RxDisposable{constructor(_context,_textSelectionManagerService,_editorService,_docSkeletonManagerService){super(),this._context=_context,this._textSelectionManagerService=_textSelectionManagerService,this._editorService=_editorService,this._docSkeletonManagerService=_docSkeletonManagerService,this._init()}_init(){this._textSelectionManagerService.textSelection$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(params=>{if(params==null)return;const{isEditing,unitId}=params;unitId!==this._context.unitId||!isEditing||this._context.unitId!==core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&this._scrollToSelection()})}scrollToRange(range){const skeleton=this._docSkeletonManagerService.getSkeleton();if(!skeleton)return;const{startOffset}=range,anchorNodePosition=skeleton.findNodePositionByCharIndex(startOffset);anchorNodePosition&&this.scrollToNode(anchorNodePosition)}scrollToNode(startNodePosition){var _a2;const{unitId,scene,mainComponent}=this._context,skeleton=this._docSkeletonManagerService.getSkeleton();if(mainComponent==null||skeleton==null)return;const documentOffsetConfig=mainComponent.getOffsetConfig(),{docsLeft,docsTop}=documentOffsetConfig,convertor=new NodePositionConvertToCursor(documentOffsetConfig,skeleton),{contentBoxPointGroup}=convertor.getRangePointData(startNodePosition,startNodePosition),{left:aLeft,top:aTop,height}=getAnchorBounding(contentBoxPointGroup),left=aLeft+docsLeft,top=aTop+docsTop,viewportMain=scene.getViewport(VIEWPORT_KEY.VIEW_MAIN),editor=this._editorService.getEditor(unitId);if(viewportMain==null)return;const{left:boundLeft,top:boundTop,right:boundRight,bottom:boundBottom}=viewportMain.getBounding().viewBound;let offsetY=0,offsetX=0;const delta=editor?(_a2=editor.params.backScrollOffset)!=null?_a2:0:100;top<boundTop?offsetY=top-boundTop-delta:top>boundBottom-height&&(offsetY=top-boundBottom+height+delta),left<boundLeft?offsetX=left-boundLeft:left>boundRight-ANCHOR_WIDTH&&(offsetX=left-boundRight+ANCHOR_WIDTH);const config=viewportMain.transViewportScroll2ScrollValue(offsetX,offsetY);viewportMain.scrollByBarDeltaValue(config)}_scrollToSelection(){const activeTextRange=this._textSelectionManagerService.getActiveTextRange();if(activeTextRange==null)return;const{collapsed,startNodePosition}=activeTextRange;collapsed&&this.scrollToNode(startNodePosition)}},__name(_i,"DocBackScrollRenderController"),_i),exports2.DocBackScrollRenderController=__decorateClass$k([__decorateParam$k(1,core.Inject(docs.DocSelectionManagerService)),__decorateParam$k(2,IEditorService),__decorateParam$k(3,core.Inject(docs.DocSkeletonManagerService))],exports2.DocBackScrollRenderController);var __defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$j=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$j(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$j(target,key,result),result},"__decorateClass$j"),__decorateParam$j=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$j");exports2.DocRenderController=(_j=class extends core.RxDisposable{constructor(_context,_commandService,_docSelectionRenderService,_docSkeletonManagerService,_editorService,_renderManagerService,_univerInstanceService){super(),this._context=_context,this._commandService=_commandService,this._docSelectionRenderService=_docSelectionRenderService,this._docSkeletonManagerService=_docSkeletonManagerService,this._editorService=_editorService,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._addNewRender(),this._initRenderRefresh(),this._initCommandListener()}reRender(unitId){var _a2,_b2;const docSkeletonManagerService=(_a2=this._renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(docs.DocSkeletonManagerService),skeleton=docSkeletonManagerService==null?void 0:docSkeletonManagerService.getSkeleton();if(!skeleton||!!skeleton.getViewModel().getDataModel().getSnapshot().disabled)return;skeleton.calculate();const editor=this._editorService.getEditor(unitId);if(this._editorService.isEditor(unitId)&&!(editor!=null&&editor.params.scrollBar)){(_b2=this._context.mainComponent)==null||_b2.makeDirty();return}this._recalculateSizeBySkeleton(skeleton)}_addNewRender(){const{scene,engine}=this._context,viewMain=new engineRender.Viewport(VIEWPORT_KEY.VIEW_MAIN,scene,{left:0,top:0,bottom:0,right:0,isWheelPreventDefaultX:!0});scene.attachControl(),scene.onMouseWheel$.subscribeEvent((evt,state)=>{const currentDocUnit=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);if((currentDocUnit==null?void 0:currentDocUnit.getUnitId())!==this._context.unitId)return;const e=evt;if(e.ctrlKey){const deltaFactor=Math.abs(e.deltaX);let scrollNum=deltaFactor<40?.2:deltaFactor<80?.4:.2;scrollNum*=e.deltaY>0?-1:1,scene.scaleX<1&&(scrollNum/=2),scene.scaleX+scrollNum>4?scene.scale(4,4):scene.scaleX+scrollNum<.1?scene.scale(.1,.1):e.preventDefault()}else viewMain.onMouseWheel(e,state)}),new engineRender.ScrollBar(viewMain),scene.addLayer(new engineRender.Layer(scene,[],DOCS_COMPONENT_MAIN_LAYER_INDEX),new engineRender.Layer(scene,[],DOCS_COMPONENT_HEADER_LAYER_INDEX)),this._addComponent(),engine.runRenderLoop(()=>{scene.render()}),this._docSelectionRenderService.__attachScrollEvent()}_addComponent(){const{scene,unit:documentModel,components}=this._context,config={pageMarginLeft:20,pageMarginTop:20},documents=new engineRender.Documents(DOCS_VIEW_KEY.MAIN,void 0,config);documents.zIndex=DOCS_COMPONENT_DEFAULT_Z_INDEX;const docBackground=new engineRender.DocBackground(DOCS_VIEW_KEY.BACKGROUND,void 0,config);docBackground.zIndex=DOCS_COMPONENT_DEFAULT_Z_INDEX,this._context.mainComponent=documents,components.set(DOCS_VIEW_KEY.MAIN,documents),components.set(DOCS_VIEW_KEY.BACKGROUND,docBackground),scene.addObjects([documents],DOCS_COMPONENT_MAIN_LAYER_INDEX),scene.addObjects([docBackground],DOCS_COMPONENT_BACKGROUND_LAYER_INDEX),this._editorService.getEditor(documentModel.getUnitId())==null&&scene.enableLayerCache(DOCS_COMPONENT_MAIN_LAYER_INDEX)}_initRenderRefresh(){this._docSkeletonManagerService.currentSkeletonBefore$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(param=>{this._create(param)})}_create(skeleton){var _a2;if(!skeleton)return;const{mainComponent,components}=this._context,docsComponent=mainComponent,docBackground=components.get(DOCS_VIEW_KEY.BACKGROUND);docsComponent.changeSkeleton(skeleton),docBackground.changeSkeleton(skeleton);const{unitId}=this._context,editor=this._editorService.getEditor(unitId);if(this._editorService.isEditor(unitId)&&!(editor!=null&&editor.params.scrollBar)){(_a2=this._context.mainComponent)==null||_a2.makeDirty();return}this._recalculateSizeBySkeleton(skeleton)}_initCommandListener(){const updateCommandList=[docs.RichTextEditingMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(updateCommandList.includes(command.id)){const params=command.params,{unitId}=params;this.reRender(unitId)}}))}_recalculateSizeBySkeleton(skeleton){var _a2;const{mainComponent,scene,unitId,components}=this._context,docsComponent=mainComponent,docBackground=components.get(DOCS_VIEW_KEY.BACKGROUND),pages=(_a2=skeleton.getSkeletonData())==null?void 0:_a2.pages;if(pages==null)return;let width=0,height=0;const documentFlavor=this._context.unit.getSnapshot().documentStyle.documentFlavor;for(let i=0,len=pages.length;i<len;i++){const page=pages[i];let{pageWidth,pageHeight}=page;if(documentFlavor===core.DocumentFlavor.MODERN){const modernPageSize=getPageSizeInModernMode(page);pageWidth=modernPageSize.pageWidth,pageHeight=modernPageSize.pageHeight}docsComponent.pageLayoutType===engineRender.PageLayoutType.VERTICAL?(height+=pageHeight,height+=docsComponent.pageMarginTop,i===len-1&&(height+=docsComponent.pageMarginTop),width=Math.max(width,pageWidth)):docsComponent.pageLayoutType===engineRender.PageLayoutType.HORIZONTAL&&(width+=pageWidth,i!==len-1&&(width+=docsComponent.pageMarginLeft),height=Math.max(height,pageHeight))}docsComponent.resize(width,height),docBackground.resize(width,height);const editor=this._editorService.getEditor(unitId);(!this._editorService.isEditor(unitId)||editor!=null&&editor.params.scrollBar)&&scene.resize(width,height)}},__name(_j,"DocRenderController"),_j),exports2.DocRenderController=__decorateClass$j([__decorateParam$j(1,core.ICommandService),__decorateParam$j(2,core.Inject(exports2.DocSelectionRenderService)),__decorateParam$j(3,core.Inject(docs.DocSkeletonManagerService)),__decorateParam$j(4,IEditorService),__decorateParam$j(5,engineRender.IRenderManagerService),__decorateParam$j(6,core.IUniverInstanceService)],exports2.DocRenderController);function getPageSizeInModernMode(page){let{pageWidth,pageHeight}=page;const{marginLeft,marginRight,marginTop,marginBottom,skeDrawings,skeTables}=page;pageWidth===Number.POSITIVE_INFINITY&&(pageWidth=page.width+marginLeft+marginRight),pageHeight===Number.POSITIVE_INFINITY&&(pageHeight=page.height+marginTop+marginBottom);for(const drawing2 of skeDrawings.values())pageWidth=Math.max(pageWidth,drawing2.aLeft+drawing2.width+marginLeft+marginRight),pageHeight=Math.max(pageHeight,drawing2.aTop+drawing2.height+marginTop+marginBottom);for(const table of skeTables.values())pageWidth=Math.max(pageWidth,table.left+table.width+marginLeft+marginRight),pageHeight=Math.max(pageHeight,table.top+table.height+marginTop+marginBottom);return{pageWidth,pageHeight}}__name(getPageSizeInModernMode,"getPageSizeInModernMode");const DocSelectAllCommand={id:"doc.command.select-all",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a2;const univerInstanceService=accessor.get(core.IUniverInstanceService),docSelectionManagerService=accessor.get(docs.DocSelectionManagerService),docDataModel=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),docRanges=docSelectionManagerService.getDocRanges(),activeRange=(_a2=docRanges.find(range=>range.isActive))!=null?_a2:docRanges[0];if(docDataModel==null||activeRange==null)return!1;const{segmentId}=activeRange,unitId=docDataModel.getUnitId(),body=docDataModel.getSelfOrHeaderFooterModel(segmentId).getSnapshot().body;if(body==null)return!1;const{tables=[]}=body,textRanges=[];let offset=0;for(const table of tables){const{startIndex,endIndex}=table;offset!==startIndex&&textRanges.push({startOffset:offset,endOffset:startIndex-1,rangeType:core.DOC_RANGE_TYPE.TEXT}),textRanges.push({startOffset:startIndex+3,endOffset:endIndex-5,rangeType:core.DOC_RANGE_TYPE.RECT}),offset=endIndex}return offset!==body.dataStream.length-2&&textRanges.push({startOffset:offset,endOffset:body.dataStream.length-2,rangeType:core.DOC_RANGE_TYPE.TEXT}),docSelectionManagerService.replaceDocRanges(textRanges,{unitId,subUnitId:unitId},!1),!0},"handler")},_DocIMEInputManagerService=class _DocIMEInputManagerService extends core.RxDisposable{constructor(_context){super();__publicField(this,"_previousActiveRange",null);__publicField(this,"_undoMutationParamsCache",[]);__publicField(this,"_redoMutationParamsCache",[]);this._context=_context}clearUndoRedoMutationParamsCache(){this._undoMutationParamsCache=[],this._redoMutationParamsCache=[]}getUndoRedoMutationParamsCache(){return{undoCache:this._undoMutationParamsCache,redoCache:this._redoMutationParamsCache}}setUndoRedoMutationParamsCache({undoCache=[],redoCache=[]}){this._undoMutationParamsCache=undoCache,this._redoMutationParamsCache=redoCache}getActiveRange(){return this._previousActiveRange}setActiveRange(range){this._previousActiveRange=range}pushUndoRedoMutationParams(undoParams,redoParams){this._undoMutationParamsCache.push(undoParams),this._redoMutationParamsCache.push(redoParams)}fetchComposedUndoRedoMutationParams(){if(this._undoMutationParamsCache.length===0||this._previousActiveRange==null||this._redoMutationParamsCache.length===0)return null;const{unitId}=this._undoMutationParamsCache[0],undoMutationParams={unitId,actions:this._undoMutationParamsCache.reverse().reduce((acc,cur)=>core.JSONX.compose(acc,cur.actions),null),textRanges:[]};return{redoMutationParams:{unitId,actions:this._redoMutationParamsCache.reduce((acc,cur)=>core.JSONX.compose(acc,cur.actions),null),textRanges:[]},undoMutationParams,previousActiveRange:this._previousActiveRange}}dispose(){this._undoMutationParamsCache=[],this._redoMutationParamsCache=[],this._previousActiveRange=null}};__name(_DocIMEInputManagerService,"DocIMEInputManagerService");let DocIMEInputManagerService=_DocIMEInputManagerService;const UNITS=core.SHEET_EDITOR_UNITS,IMEInputCommand={id:"doc.command.ime-input",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2,_b2,_c2,_d2;const{unitId,newText,oldTextLen,isCompositionEnd,isCompositionStart}=params,commandService=accessor.get(core.ICommandService),renderManagerService=accessor.get(engineRender.IRenderManagerService),univerInstanceService=accessor.get(core.IUniverInstanceService),docMenuStyleService=accessor.get(DocMenuStyleService),imeInputManagerService=(_a2=renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(DocIMEInputManagerService),docDataModel=univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_DOC);if(docDataModel==null||imeInputManagerService==null)return!1;const previousActiveRange=imeInputManagerService.getActiveRange();if(previousActiveRange==null)return!1;const{style,segmentId}=previousActiveRange,body=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(body==null)return!1;Object.assign(previousActiveRange,previousActiveRange);const{startOffset,endOffset}=previousActiveRange,len=newText.length,textRanges=[{startOffset:startOffset+len,endOffset:startOffset+len,collapsed:!0,style}],doMutation={id:docs.RichTextEditingMutation.id,params:{unitId,actions:[],textRanges}},defaultTextStyle=docMenuStyleService.getDefaultStyle(),styleCache=docMenuStyleService.getStyleCache(),curCustomRange=getCustomRangeAtPosition((_b2=body.customRanges)!=null?_b2:[],startOffset+oldTextLen,UNITS.includes(unitId)),curTextRun=getTextRunAtPosition((_c2=body.textRuns)!=null?_c2:[],isCompositionStart?endOffset:startOffset+oldTextLen,defaultTextStyle,styleCache),customDecorations=getCustomDecorationAtPosition((_d2=body.customDecorations)!=null?_d2:[],startOffset+oldTextLen),textX=new core.TextX,jsonX=core.JSONX.getInstance();if(!previousActiveRange.collapsed&&isCompositionStart){const dos=core.BuildTextUtils.selection.delete([previousActiveRange],body,0,null,!1);textX.push(...dos),doMutation.params.textRanges=[{startOffset:startOffset+len,endOffset:startOffset+len,collapsed:!0}]}else textX.push({t:core.TextXActionType.RETAIN,len:startOffset});oldTextLen>0&&textX.push({t:core.TextXActionType.DELETE,len:oldTextLen}),textX.push({t:core.TextXActionType.INSERT,body:{dataStream:newText,textRuns:curTextRun?[{...curTextRun,st:0,ed:newText.length}]:[],customRanges:curCustomRange?[{...curCustomRange,startIndex:0,endIndex:newText.length-1}]:[],customDecorations:customDecorations.map(customDecoration=>({...customDecoration,startIndex:0,endIndex:newText.length-1}))},len:newText.length});const path=getRichTextEditPath(docDataModel,segmentId);doMutation.params.actions=jsonX.editOp(textX.serialize(),path),doMutation.params.noHistory=!isCompositionEnd,doMutation.params.isCompositionEnd=isCompositionEnd;const result=commandService.syncExecuteCommand(doMutation.id,doMutation.params);return imeInputManagerService.pushUndoRedoMutationParams(result,doMutation.params),!!result},"handler")},SetDocZoomRatioCommand={type:core.CommandType.COMMAND,id:"doc.command.set-zoom-ratio",handler:__name(async(accessor,params)=>{var _a2,_b2,_c2;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),univerInstanceService=accessor.get(core.IUniverInstanceService);let documentId=(_a2=univerInstanceService.getCurrentUniverDocInstance())==null?void 0:_a2.getUnitId();if(!documentId)return!1;let zoomRatio=1;if(params&&(documentId=(_b2=params.documentId)!=null?_b2:documentId,zoomRatio=(_c2=params.zoomRatio)!=null?_c2:zoomRatio),!univerInstanceService.getUniverDocInstance(documentId))return!1;const setZoomRatioMutationParams={zoomRatio,unitId:documentId},undoMutationParams=SetDocZoomRatioUndoMutationFactory(accessor,setZoomRatioMutationParams);return commandService.syncExecuteCommand(SetDocZoomRatioOperation.id,setZoomRatioMutationParams)?(undoRedoService.pushUndoRedo({unitID:documentId,undoMutations:[{id:SetDocZoomRatioOperation.id,params:undoMutationParams}],redoMutations:[{id:SetDocZoomRatioOperation.id,params:setZoomRatioMutationParams}]}),!0):!1},"handler")},DocTableTabCommand={id:"doc.table.tab-in-table",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a2;const{shift}=params,textSelectionManager=accessor.get(docs.DocSelectionManagerService),docRanges=textSelectionManager.getDocRanges(),commandService=accessor.get(core.ICommandService),docDataModel=accessor.get(core.IUniverInstanceService).getCurrentUniverDocInstance();if(!docDataModel)return!1;const activeRange=(_a2=docRanges.find(range=>range.isActive))!=null?_a2:docRanges[0],unitId=docDataModel.getUnitId(),docSkeletonManagerService=getCommandSkeleton(accessor,unitId),skeleton=docSkeletonManagerService==null?void 0:docSkeletonManagerService.getSkeleton(),viewModel=skeleton==null?void 0:skeleton.getViewModel().getSelfOrHeaderFooterViewModel(activeRange==null?void 0:activeRange.segmentId);if(viewModel==null||activeRange==null)return!1;let offsets=null;if(shift?offsets=getCellOffsets(viewModel,activeRange,CellPosition.PREV):offsets=getCellOffsets(viewModel,activeRange,CellPosition.NEXT),offsets){const{startOffset,endOffset}=offsets,textRanges=[{startOffset,endOffset}];return textSelectionManager.replaceDocRanges(textRanges),!0}return shift===!1?await commandService.executeCommand(DocTableInsertRowCommand.id,{position:INSERT_ROW_POSITION.BELLOW}):!0},"handler")};var __defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$i=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$i(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$i(target,key,result),result},"__decorateClass$i"),__decorateParam$i=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$i");let DocContainerUIController=(_k=class{constructor(_localeService,_injector,_configService){__publicField(this,"_docContainer");__publicField(this,"getComponent",__name(ref=>{if(this._docContainer=ref,!ref.getContentRef().current)throw new Error("container is not ready")},"getComponent"));__publicField(this,"changeLocale",__name(locale=>{this._localeService.setLocale(locale)},"changeLocale"));this._localeService=_localeService,this._injector=_injector,this._configService=_configService}getUIConfig(){return{injector:this._injector,config:this._configService.getConfig(DOCS_UI_PLUGIN_CONFIG_KEY),changeLocale:this.changeLocale,getComponent:this.getComponent}}getContentRef(){return this._docContainer.getContentRef()}UIDidMount(cb){if(this._docContainer)return cb(this._docContainer)}getDocContainer(){return this._docContainer}},__name(_k,"DocContainerUIController"),_k);DocContainerUIController=__decorateClass$i([__decorateParam$i(0,core.Inject(core.LocaleService)),__decorateParam$i(1,core.Inject(core.Injector)),__decorateParam$i(2,core.IConfigService)],DocContainerUIController);var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$h(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$h(target,key,result),result},"__decorateClass$h"),__decorateParam$h=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$h");let AppUIController=(_l=class extends core.RxDisposable{constructor(_injector){super();__publicField(this,"_docContainerController");this._injector=_injector,this._docContainerController=this._injector.createInstance(DocContainerUIController)}},__name(_l,"AppUIController"),_l);AppUIController=__decorateClass$h([__decorateParam$h(0,core.Inject(core.Injector))],AppUIController);var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$g(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$g(target,key,result),result},"__decorateClass$g"),__decorateParam$g=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$g");let DocAutoFormatController=(_m=class extends core.Disposable{constructor(_docAutoFormatService,_renderManagerService){super(),this._docAutoFormatService=_docAutoFormatService,this._renderManagerService=_renderManagerService,this._initListTabAutoFormat(),this._initListSpaceAutoFormat(),this._initDefaultEnterFormat(),this._initExitListAutoFormat()}_initListTabAutoFormat(){this.disposeWithMe(this._docAutoFormatService.registerAutoFormat({id:TabCommand.id,match:__name(context=>{var _a2;const{selection,paragraphs,unit}=context;if(paragraphs.length===1&&selection.startOffset===paragraphs[0].paragraphStart&&paragraphs[0].bullet){const allParagraphs=(_a2=unit.getBody())==null?void 0:_a2.paragraphs,bulletParagraphs=allParagraphs==null?void 0:allParagraphs.filter(p=>{var _a3;return((_a3=p.bullet)==null?void 0:_a3.listId)===paragraphs[0].bullet.listId});return(bulletParagraphs==null?void 0:bulletParagraphs.findIndex(p=>p.startIndex===paragraphs[0].startIndex))!==0}else if(paragraphs.length>1&&paragraphs.some(p=>p.bullet))return!0;return!1},"match"),getMutations(context){const params=context.commandParams;return[{id:ChangeListNestingLevelCommand.id,params:{type:params!=null&&params.shift?ChangeListNestingLevelType.decrease:ChangeListNestingLevelType.increase}}]},priority:100})),this.disposeWithMe(this._docAutoFormatService.registerAutoFormat({id:TabCommand.id,match:__name(context=>{const{selection,unit}=context,{startNodePosition,endNodePosition}=selection,renderObject=this._renderManagerService.getRenderById(unit.getUnitId()),skeleton=renderObject==null?void 0:renderObject.with(docs.DocSkeletonManagerService).getSkeleton();return skeleton==null?!1:!!(startNodePosition&&endNodePosition&&isInSameTableCellData(skeleton,startNodePosition,endNodePosition)||startNodePosition&&!endNodePosition&&startNodePosition.path.indexOf("cells")>-1)},"match"),getMutations(context){const params=context.commandParams;return[{id:DocTableTabCommand.id,params:{shift:!!(params!=null&&params.shift)}}]},priority:99}))}_initListSpaceAutoFormat(){this.disposeWithMe(this._docAutoFormatService.registerAutoFormat({id:AfterSpaceCommand.id,match:__name(context=>{var _a2;const{selection,paragraphs,unit}=context;if(!selection.collapsed||paragraphs.length!==1)return!1;const text=(_a2=unit.getBody())==null?void 0:_a2.dataStream.slice(paragraphs[0].paragraphStart,paragraphs[0].paragraphEnd-1);return!!(text&&Object.keys(core.QuickListTypeMap).includes(text))},"match"),getMutations(context){var _a2;const{paragraphs,unit}=context,text=(_a2=unit.getBody())==null?void 0:_a2.dataStream.slice(paragraphs[0].paragraphStart,paragraphs[0].paragraphEnd-1);if(text&&Object.keys(core.QuickListTypeMap).includes(text)){const type=core.QuickListTypeMap[text];return[{id:QuickListCommand.id,params:{listType:type,paragraph:paragraphs[0]}}]}return[]}}))}_initExitListAutoFormat(){this.disposeWithMe(this._docAutoFormatService.registerAutoFormat({id:EnterCommand.id,match:__name(context=>{const{paragraphs}=context;return!!(paragraphs.length===1&&paragraphs[0].bullet&&paragraphs[0].paragraphStart===paragraphs[0].paragraphEnd)},"match"),getMutations:__name(context=>{const bullet=context.paragraphs[0].bullet;return bullet?bullet.nestingLevel>0?[{id:ChangeListNestingLevelCommand.id,params:{type:ChangeListNestingLevelType.decrease}}]:[{id:ListOperationCommand.id,params:{listType:context.paragraphs[0].bullet.listType}}]:[]},"getMutations")}))}_initDefaultEnterFormat(){this.disposeWithMe(this._docAutoFormatService.registerAutoFormat({id:EnterCommand.id,match:__name(()=>!0,"match"),getMutations(){return[{id:BreakLineCommand.id}]},priority:-9999}))}},__name(_m,"DocAutoFormatController"),_m);DocAutoFormatController=__decorateClass$g([__decorateParam$g(0,core.Inject(exports2.DocAutoFormatService)),__decorateParam$g(1,engineRender.IRenderManagerService)],DocAutoFormatController);function firstLineInTable(table){return table.rows[0].cells[0].sections[0].columns[0].lines[0]}__name(firstLineInTable,"firstLineInTable");function lastLineInTable(table){const lastRow=table.rows[table.rows.length-1],lastCell=lastRow.cells[lastRow.cells.length-1];return engineRender.getLastLine(lastCell)}__name(lastLineInTable,"lastLineInTable");function findTableAfterLine(line,page){const{ed}=line,{skeTables}=page;let table=null;for(const t of skeTables.values())if(t.st===ed+1){table=t;break}return table}__name(findTableAfterLine,"findTableAfterLine");function findLineBeforeAndAfterTable(table){const tablePage=table==null?void 0:table.parent;let lineBeforeTable=null,lineAfterTable=null;if(table==null||tablePage==null)return{lineBeforeTable,lineAfterTable};const{st,ed}=table,pages=tablePage.type===engineRender.DocumentSkeletonPageType.CELL?[tablePage]:tablePage.parent.pages;return engineRender.lineIterator(pages,l=>{l.st===ed+1?lineAfterTable=l:l.ed===st-1&&(lineBeforeTable=l)}),{lineBeforeTable,lineAfterTable}}__name(findLineBeforeAndAfterTable,"findLineBeforeAndAfterTable");function isEmptyCellPage(cell){return cell.sections[0].columns[0].lines.length===0}__name(isEmptyCellPage,"isEmptyCellPage");function findBellowCell(cell){var _a2,_b2;const row=cell.parent,table=row==null?void 0:row.parent,tableId=table==null?void 0:table.tableId;if(row==null||table==null)return;const col=row.cells.indexOf(cell);let bellowRow=table.rows[table.rows.indexOf(row)+1];if(bellowRow==null&&tableId.indexOf("#-#")){const[id,index]=tableId.split("#-#"),pages=(_b2=(_a2=table.parent)==null?void 0:_a2.parent)==null?void 0:_b2.pages,nextTableId=`${id}#-#${Number.parseInt(index)+1}`;if(pages)for(const page of pages){const{skeTables}=page;if(skeTables.has(nextTableId)){const nextTable=skeTables.get(nextTableId);if(nextTable!=null&&nextTable.rows.length){bellowRow=nextTable.rows.find(r2=>!r2.isRepeatRow);break}}}}if(bellowRow!=null){const cell2=bellowRow.cells[col];return isEmptyCellPage(cell2)?findBellowCell(cell2):cell2}}__name(findBellowCell,"findBellowCell");function findAboveCell(cell){var _a2,_b2;const row=cell.parent,table=row==null?void 0:row.parent;if(row==null||table==null)return;let aboveRow=table.rows[table.rows.indexOf(row)-1];const col=row.cells.indexOf(cell);if((aboveRow==null||aboveRow.isRepeatRow)&&table.tableId.indexOf("#-#")){const[id,index]=table.tableId.split("#-#"),pages=(_b2=(_a2=table.parent)==null?void 0:_a2.parent)==null?void 0:_b2.pages,nextTableId=`${id}#-#${Number.parseInt(index)-1}`;if(pages)for(const page of pages){const{skeTables}=page;if(skeTables.has(nextTableId)){const nextTable=skeTables.get(nextTableId);if(nextTable!=null&&nextTable.rows.length){aboveRow=nextTable.rows[nextTable.rows.length-1];break}}}}if(aboveRow!=null){const cell2=aboveRow.cells[col];return isEmptyCellPage(cell2)?findAboveCell(cell2):cell2}}__name(findAboveCell,"findAboveCell");function findTableBeforeLine(line,page){const{st}=line,{skeTables}=page;let table=null;for(const t of skeTables.values())if(t.ed===st-1){table=t;break}return table}__name(findTableBeforeLine,"findTableBeforeLine");function firstLineInCell(cell){return cell.sections[0].columns[0].lines[0]}__name(firstLineInCell,"firstLineInCell");function lastLineInCell(cell){const lastColumn=engineRender.getLastColumn(cell);return lastColumn.lines[lastColumn.lines.length-1]}__name(lastLineInCell,"lastLineInCell");var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$f(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$f(target,key,result),result},"__decorateClass$f"),__decorateParam$f=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$f");let DocMoveCursorController=(_n=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService,_textSelectionManagerService,_commandService){super();__publicField(this,"_onInputSubscription");this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._textSelectionManagerService=_textSelectionManagerService,this._commandService=_commandService,this._commandExecutedListener()}dispose(){var _a2;super.dispose(),(_a2=this._onInputSubscription)==null||_a2.unsubscribe()}_commandExecutedListener(){const updateCommandList=[MoveCursorOperation.id,MoveSelectionOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(!updateCommandList.includes(command.id))return;const param=command.params;switch(command.id){case MoveCursorOperation.id:return this._handleMoveCursor(param.direction);case MoveSelectionOperation.id:return this._handleShiftMoveSelection(param.direction);default:throw new Error("Unknown command")}}))}_handleShiftMoveSelection(direction){var _a2,_b2,_c2;const activeRange=this._textSelectionManagerService.getActiveTextRange(),allRanges=this._textSelectionManagerService.getTextRanges(),docDataModel=this._univerInstanceService.getCurrentUniverDocInstance();if(docDataModel==null)return;const skeleton=(_a2=this._renderManagerService.getRenderById(docDataModel.getUnitId()))==null?void 0:_a2.with(docs.DocSkeletonManagerService).getSkeleton(),docObject=this._getDocObject();if(activeRange==null||skeleton==null||docObject==null)return;const{startOffset,endOffset,style,collapsed,direction:rangeDirection,segmentId,startNodePosition,endNodePosition,segmentPage}=activeRange;if(allRanges.length>1){let min=Number.POSITIVE_INFINITY,max=Number.NEGATIVE_INFINITY;for(const range of allRanges)min=Math.min(min,range.startOffset),max=Math.max(max,range.endOffset);this._textSelectionManagerService.replaceTextRanges([{startOffset:direction===core.Direction.LEFT||direction===core.Direction.UP?max:min,endOffset:direction===core.Direction.LEFT||direction===core.Direction.UP?min:max,style}],!1);return}const anchorOffset=collapsed||rangeDirection===core.RANGE_DIRECTION.FORWARD?startOffset:endOffset;let focusOffset=collapsed||rangeDirection===core.RANGE_DIRECTION.FORWARD?endOffset:startOffset;const dataStreamLength=(_b2=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody().dataStream.length)!=null?_b2:Number.POSITIVE_INFINITY;if(direction===core.Direction.LEFT||direction===core.Direction.RIGHT){const preGlyph=skeleton.findNodeByCharIndex(focusOffset-1,segmentId,segmentPage),curGlyph=skeleton.findNodeByCharIndex(focusOffset,segmentId,segmentPage);focusOffset=direction===core.Direction.RIGHT?focusOffset+curGlyph.count:focusOffset-((_c2=preGlyph==null?void 0:preGlyph.count)!=null?_c2:0),focusOffset=Math.min(dataStreamLength-2,Math.max(0,focusOffset)),this._textSelectionManagerService.replaceTextRanges([{startOffset:anchorOffset,endOffset:focusOffset,style}],!1),this._scrollToFocusNodePosition(docDataModel.getUnitId(),focusOffset)}else{const focusGlyph=skeleton.findNodeByCharIndex(focusOffset,segmentId,segmentPage),documentOffsetConfig=docObject.document.getOffsetConfig(),focusNodePosition=collapsed?startNodePosition:rangeDirection===core.RANGE_DIRECTION.FORWARD?endNodePosition:startNodePosition,newPos=this._getTopOrBottomPosition(skeleton,focusGlyph,focusNodePosition,direction===core.Direction.DOWN,!0);if(newPos==null){const newFocusOffset=direction===core.Direction.UP?0:dataStreamLength-2;if(newFocusOffset===focusOffset)return;this._textSelectionManagerService.replaceTextRanges([{startOffset:anchorOffset,endOffset:newFocusOffset,style}],!1);return}const newActiveRange=new NodePositionConvertToCursor(documentOffsetConfig,skeleton).getRangePointData(newPos,newPos).cursorList[0];this._textSelectionManagerService.replaceTextRanges([{startOffset:anchorOffset,endOffset:newActiveRange.endOffset,style}],!1),this._scrollToFocusNodePosition(docDataModel.getUnitId(),newActiveRange.endOffset)}}_handleMoveCursor(direction){var _a2,_b2,_c2,_d2;const activeRange=this._textSelectionManagerService.getActiveTextRange(),allRanges=this._textSelectionManagerService.getTextRanges(),docDataModel=this._univerInstanceService.getCurrentUniverDocInstance();if(docDataModel==null)return!1;const skeleton=(_a2=this._renderManagerService.getRenderById(docDataModel.getUnitId()))==null?void 0:_a2.with(docs.DocSkeletonManagerService).getSkeleton(),docObject=this._getDocObject();if(activeRange==null||skeleton==null||docObject==null||allRanges==null)return;const{startOffset,endOffset,style,collapsed,segmentId,startNodePosition,endNodePosition,segmentPage}=activeRange,body=docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();if(body==null)return;const dataStreamLength=(_b2=body.dataStream.length)!=null?_b2:Number.POSITIVE_INFINITY,customRanges=(_c2=docDataModel.getCustomRanges())!=null?_c2:[];if(direction===core.Direction.LEFT||direction===core.Direction.RIGHT){let cursor;if(!activeRange.collapsed||allRanges.length>1){let min=Number.POSITIVE_INFINITY,max=Number.NEGATIVE_INFINITY;for(const range of allRanges)min=Math.min(min,range.startOffset),max=Math.max(max,range.endOffset);cursor=direction===core.Direction.LEFT?min:max}else{const preSpan=skeleton.findNodeByCharIndex(startOffset-1,segmentId,segmentPage),curSpan=skeleton.findNodeByCharIndex(startOffset,segmentId,segmentPage),nextGlyph=skeleton.findNodeByCharIndex(startOffset+1,segmentId,segmentPage);direction===core.Direction.LEFT?cursor=Math.max(0,startOffset-((_d2=preSpan==null?void 0:preSpan.count)!=null?_d2:1)):cursor=Math.min(dataStreamLength-2,endOffset+curSpan.count+((nextGlyph==null?void 0:nextGlyph.streamType)===core.DataStreamTreeTokenType.SECTION_BREAK?1:0))}const skipTokens=[core.DataStreamTreeTokenType.TABLE_START,core.DataStreamTreeTokenType.TABLE_END,core.DataStreamTreeTokenType.TABLE_ROW_START,core.DataStreamTreeTokenType.TABLE_ROW_END,core.DataStreamTreeTokenType.TABLE_CELL_START,core.DataStreamTreeTokenType.TABLE_CELL_END,core.DataStreamTreeTokenType.SECTION_BREAK];if(direction===core.Direction.LEFT)for(;skipTokens.includes(body.dataStream[cursor]);)cursor--;else for(;skipTokens.includes(body.dataStream[cursor]);)cursor++;customRanges.filter(range=>range.wholeEntity&&range.startIndex<cursor&&range.endIndex>=cursor).forEach(range=>{direction===core.Direction.LEFT?cursor=Math.min(range.startIndex,cursor):cursor=Math.max(range.endIndex+1,cursor)}),this._textSelectionManagerService.replaceTextRanges([{startOffset:Math.max(0,cursor),endOffset:Math.max(0,cursor),style}],!1),this._scrollToFocusNodePosition(docDataModel.getUnitId(),cursor)}else{const startNode=skeleton.findNodeByCharIndex(startOffset,segmentId,segmentPage),endNode=skeleton.findNodeByCharIndex(endOffset,segmentId,segmentPage),documentOffsetConfig=docObject.document.getOffsetConfig(),newPos=this._getTopOrBottomPosition(skeleton,direction===core.Direction.UP||collapsed?startNode:endNode,direction===core.Direction.UP||collapsed?startNodePosition:endNodePosition,direction===core.Direction.DOWN);if(newPos==null){let cursor;collapsed?cursor=direction===core.Direction.UP?0:dataStreamLength-2:cursor=direction===core.Direction.UP?startOffset:endOffset,this._textSelectionManagerService.replaceTextRanges([{startOffset:Math.max(0,cursor),endOffset:Math.max(0,cursor),style}],!1);return}const newActiveRange=new NodePositionConvertToCursor(documentOffsetConfig,skeleton).getRangePointData(newPos,newPos).cursorList[0];this._textSelectionManagerService.replaceTextRanges([{...newActiveRange,style}],!1),this._scrollToFocusNodePosition(docDataModel.getUnitId(),newActiveRange.endOffset)}}_getTopOrBottomPosition(docSkeleton,glyph,nodePosition,direction,skipCellContent=!1){if(glyph==null||nodePosition==null)return;const offsetLeft=this._getGlyphLeftOffsetInLine(glyph),line=this._getNextOrPrevLine(glyph,direction,skipCellContent);if(line==null)return;const position=this._matchPositionByLeftOffset(docSkeleton,line,offsetLeft,nodePosition);if(position!=null)return{...position,isBack:!0}}_getGlyphLeftOffsetInLine(glyph){const divide=glyph.parent;if(divide==null)return Number.NEGATIVE_INFINITY;const divideLeft=divide.left,{left}=glyph;return divideLeft+left}_matchPositionByLeftOffset(docSkeleton,line,offsetLeft,nodePosition){const nearestNode={distance:Number.POSITIVE_INFINITY};for(const divide of line.divides){const divideLeft=divide.left;for(const glyph of divide.glyphGroup){if(glyph.streamType===core.DataStreamTreeTokenType.SECTION_BREAK)continue;const{left}=glyph,leftSide=divideLeft+left,distance=Math.abs(offsetLeft-leftSide);distance<nearestNode.distance&&(nearestNode.glyph=glyph,nearestNode.distance=distance)}}if(nearestNode.glyph==null)return;const{segmentPage}=nodePosition;return docSkeleton.findPositionByGlyph(nearestNode.glyph,segmentPage)}_getNextOrPrevLine(glyph,direction,skipCellContent=!1){var _a2,_b2,_c2,_d2,_e2,_f2,_g2,_h2,_i2,_j2,_k2,_l2;const divide=glyph.parent,line=divide==null?void 0:divide.parent,column=line==null?void 0:line.parent,section=column==null?void 0:column.parent,page=section==null?void 0:section.parent;if(divide==null||line==null||column==null||section==null||page==null)return;const currentLineIndex=column.lines.indexOf(line);if(currentLineIndex===-1)return;let newLine;if(page.type===engineRender.DocumentSkeletonPageType.CELL&&skipCellContent){const nLine=findAboveOrBellowCellLine(page,direction);if(nLine)return nLine}if(direction===!0){newLine=column.lines[currentLineIndex+1];const tableAfterLine=findTableAfterLine(line,page);if(tableAfterLine){const firstLine=firstLineInTable(tableAfterLine);firstLine&&(newLine=firstLine)}}else{newLine=column.lines[currentLineIndex-1];const tableBeforeLine=findTableBeforeLine(line,page);if(tableBeforeLine){const lastLine=lastLineInTable(tableBeforeLine);lastLine&&(newLine=lastLine)}}if(newLine!=null)return newLine;const currentColumnIndex=section.columns.indexOf(column);if(currentColumnIndex===-1)return;if(direction===!0)newLine=(_a2=section.columns[currentColumnIndex+1])==null?void 0:_a2.lines[0];else{const prevColumnLines=(_c2=(_b2=section.columns)==null?void 0:_b2[currentColumnIndex-1])==null?void 0:_c2.lines;newLine=prevColumnLines==null?void 0:prevColumnLines[prevColumnLines.length-1]}if(newLine!=null)return newLine;const currentSectionIndex=page.sections.indexOf(section);if(currentSectionIndex===-1)return;if(direction===!0)newLine=(_e2=(_d2=page.sections[currentSectionIndex-1])==null?void 0:_d2.columns[0])==null?void 0:_e2.lines[0];else{const prevColumns=(_g2=(_f2=page.sections)==null?void 0:_f2[currentSectionIndex-1])==null?void 0:_g2.columns,column2=prevColumns==null?void 0:prevColumns[prevColumns.length-1],prevColumnLines=column2==null?void 0:column2.lines;newLine=prevColumnLines==null?void 0:prevColumnLines[prevColumnLines.length-1]}if(newLine!=null)return newLine;if(page.type===engineRender.DocumentSkeletonPageType.CELL)return findAboveOrBellowCellLine(page,direction);const skeleton=page.parent;if(skeleton==null)return;const currentPageIndex=skeleton.pages.indexOf(page);if(currentPageIndex!==-1){if(direction===!0)newLine=(_j2=(_i2=(_h2=skeleton.pages[currentPageIndex+1])==null?void 0:_h2.sections[0])==null?void 0:_i2.columns[0])==null?void 0:_j2.lines[0];else{const prevSections=(_k2=skeleton.pages[currentPageIndex-1])==null?void 0:_k2.sections;if(prevSections==null)return;const prevColumns=(_l2=prevSections[prevSections.length-1])==null?void 0:_l2.columns,column2=prevColumns[prevColumns.length-1],prevColumnLines=column2==null?void 0:column2.lines;newLine=prevColumnLines[prevColumnLines.length-1]}if(newLine!=null)return newLine}}_scrollToFocusNodePosition(unitId,offset){var _a2;const backScrollController=(_a2=this._renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(exports2.DocBackScrollRenderController);backScrollController!=null&&backScrollController.scrollToRange({startOffset:offset,endOffset:offset,collapsed:!0})}_getDocObject(){return getDocObject(this._univerInstanceService,this._renderManagerService)}},__name(_n,"DocMoveCursorController"),_n);DocMoveCursorController=__decorateClass$f([__decorateParam$f(0,core.IUniverInstanceService),__decorateParam$f(1,engineRender.IRenderManagerService),__decorateParam$f(2,core.Inject(docs.DocSelectionManagerService)),__decorateParam$f(3,core.ICommandService)],DocMoveCursorController);function findAboveOrBellowCellLine(page,direction){var _a2,_b2;let newLine=null;if(direction===!0){const bellowCell=findBellowCell(page);if(bellowCell)newLine=firstLineInCell(bellowCell);else{const table=(_a2=page.parent)==null?void 0:_a2.parent,{lineAfterTable}=findLineBeforeAndAfterTable(table);lineAfterTable&&(newLine=lineAfterTable)}}else{const aboveCell=findAboveCell(page);if(aboveCell)newLine=lastLineInCell(aboveCell);else{const table=(_b2=page.parent)==null?void 0:_b2.parent,{lineBeforeTable}=findLineBeforeAndAfterTable(table);lineBeforeTable&&(newLine=lineBeforeTable)}}return newLine}__name(findAboveOrBellowCellLine,"findAboveOrBellowCellLine");const styles={create:"univer-create",createItem:"univer-create-item",createLabel:"univer-create-label",createInput:"univer-create-input"},DocCreateTableConfirm=__name(({handleRowColChange,tableCreateParams})=>{const localeService=core.useDependency(core.LocaleService),[rowCount,setRowCount]=React.useState(3),[colCount,setColCount]=React.useState(5);function handleInputChange(rowCount2,colCount2){setRowCount(rowCount2),setColCount(colCount2),handleRowColChange(rowCount2,colCount2)}return __name(handleInputChange,"handleInputChange"),React.useEffect(()=>{setRowCount(tableCreateParams.rowCount),setColCount(tableCreateParams.colCount)},[tableCreateParams]),jsxRuntime.jsxs("div",{className:styles.create,children:[jsxRuntime.jsxs("div",{className:styles.createItem,children:[jsxRuntime.jsx("span",{className:styles.createLabel,children:localeService.t("toolbar.table.rowCount")}),jsxRuntime.jsx(design.InputNumber,{min:1,max:20,precision:0,value:rowCount,onChange:__name(val=>{handleInputChange(val,colCount)},"onChange"),className:styles.createInput})]}),jsxRuntime.jsxs("div",{className:styles.createItem,children:[jsxRuntime.jsx("span",{className:styles.createLabel,children:localeService.t("toolbar.table.colCount")}),jsxRuntime.jsx(design.InputNumber,{min:1,max:20,precision:0,value:colCount,onChange:__name(val=>{handleInputChange(rowCount,val)},"onChange"),className:styles.createInput})]})]})},"DocCreateTableConfirm");var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$e(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$e(target,key,result),result},"__decorateClass$e"),__decorateParam$e=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$e");let DocTableController=(_o=class extends core.Disposable{constructor(_commandService,_componentManager){super(),this._commandService=_commandService,this._componentManager=_componentManager,this._initialize()}_initialize(){this._init(),this._registerCommands(),this._initCustomComponents()}_registerCommands(){[DocCreateTableOperation].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command)))}_initCustomComponents(){const componentManager=this._componentManager;this.disposeWithMe(componentManager.register(COMPONENT_DOC_CREATE_TABLE_CONFIRM,DocCreateTableConfirm))}_init(){}},__name(_o,"DocTableController"),_o);DocTableController=__decorateClass$e([__decorateParam$e(0,core.ICommandService),__decorateParam$e(1,core.Inject(ui.ComponentManager))],DocTableController);const DOC_VERTICAL_PADDING=4;var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$d(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$d(target,key,result),result},"__decorateClass$d"),__decorateParam$d=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$d");function transformBound2OffsetBound(originBound,scene){const topLeft=transformPosition2Offset(originBound.left,originBound.top,scene),bottomRight=transformPosition2Offset(originBound.right,originBound.bottom,scene);return{left:topLeft.x,top:topLeft.y,right:bottomRight.x,bottom:bottomRight.y}}__name(transformBound2OffsetBound,"transformBound2OffsetBound");function transformPosition2Offset(x,y,scene){const{scaleX,scaleY}=scene.getAncestorScale(),viewMain=scene.getViewport(VIEWPORT_KEY.VIEW_MAIN);if(!viewMain)return{x,y};const{viewportScrollX:actualScrollX,viewportScrollY:actualScrollY}=viewMain,offsetX=(x-actualScrollX)*scaleX,offsetY=(y-actualScrollY)*scaleY;return{x:offsetX,y:offsetY}}__name(transformPosition2Offset,"transformPosition2Offset");function transformOffset2Bound(offsetX,offsetY,scene){const{scaleX,scaleY}=scene.getAncestorScale(),viewMain=scene.getViewport(VIEWPORT_KEY.VIEW_MAIN);if(!viewMain)return{x:offsetX,y:offsetY};const{viewportScrollX:actualScrollX,viewportScrollY:actualScrollY}=viewMain,x=offsetX/scaleX+actualScrollX,y=offsetY/scaleY+actualScrollY;return{x,y}}__name(transformOffset2Bound,"transformOffset2Bound");const calcDocRangePositions$1=__name((range,currentRender)=>{const{scene,mainComponent,engine}=currentRender,skeleton=currentRender.with(docs.DocSkeletonManagerService).getSkeleton(),startPosition=skeleton.findNodePositionByCharIndex(range.startOffset,!0,range.segmentId,range.segmentPage),endPosition=skeleton.findNodePositionByCharIndex(range.endOffset,!0,range.segmentId,range.segmentPage),document2=mainComponent;if(!endPosition||!startPosition)return;const documentOffsetConfig=document2.getOffsetConfig(),{docsLeft,docsTop}=documentOffsetConfig,canvasElement=engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=engineRender.pxToNum(canvasElement.style.width),{top,left,width}=canvasClientRect,scaleAdjust=width/widthOfCanvas,{scaleX,scaleY}=scene.getAncestorScale(),convertor=new NodePositionConvertToCursor(documentOffsetConfig,skeleton),{borderBoxPointGroup}=convertor.getRangePointData(startPosition,endPosition);return getLineBounding(borderBoxPointGroup).map(bound=>transformBound2OffsetBound(bound,scene)).map(i=>({left:(i.left+docsLeft*scaleX)*scaleAdjust+left,right:(i.right+docsLeft*scaleX)*scaleAdjust+left,top:(i.top+docsTop*scaleY)*scaleAdjust+top,bottom:(i.bottom+docsTop*scaleY)*scaleAdjust+top}))},"calcDocRangePositions$1");exports2.DocCanvasPopManagerService=(_p=class extends core.Disposable{constructor(_globalPopupManagerService,_renderManagerService,_univerInstanceService,_commandService){super(),this._globalPopupManagerService=_globalPopupManagerService,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._commandService=_commandService}_createObjectPositionObserver(targetObject,currentRender){const calc=__name(()=>{const{scene,engine}=currentRender,{left,top,width,height}=targetObject,bound={left,right:left+width,top,bottom:top+height},canvasElement=engine.getCanvasElement(),canvasClientRect=canvasElement.getBoundingClientRect(),widthOfCanvas=engineRender.pxToNum(canvasElement.style.width),offsetBound=transformBound2OffsetBound(bound,scene),{top:topOffset,left:leftOffset,width:domWidth}=canvasClientRect,scaleAdjust=domWidth/widthOfCanvas;return{left:offsetBound.left*scaleAdjust+leftOffset,right:offsetBound.right*scaleAdjust+leftOffset,top:offsetBound.top*scaleAdjust+topOffset,bottom:offsetBound.bottom*scaleAdjust+topOffset}},"calc"),position=calc(),position$=new rxjs.BehaviorSubject(position),disposable=new core.DisposableCollection;disposable.add(this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===SetDocZoomRatioOperation.id||commandInfo.id===docs.RichTextEditingMutation.id){const newPosition=calc();newPosition&&position$.next(newPosition)}}));const viewMain=currentRender.scene.getViewport(VIEWPORT_KEY.VIEW_MAIN);return viewMain&&disposable.add(viewMain.onScrollAfter$.subscribeEvent(()=>{position$.next(calc())})),{position,position$,disposable}}_createRangePositionObserver(range,currentRender){var _a2;const positions=(_a2=calcDocRangePositions$1(range,currentRender))!=null?_a2:[],positions$=new rxjs.BehaviorSubject(positions),disposable=new core.DisposableCollection;disposable.add(this._commandService.onCommandExecuted(commandInfo=>{if((commandInfo.id===SetDocZoomRatioOperation.id||commandInfo.id===docs.RichTextEditingMutation.id)&&commandInfo.params.unitId===currentRender.unitId){const position=calcDocRangePositions$1(range,currentRender);position&&positions$.next(position)}}));const viewMain=currentRender.scene.getViewport(VIEWPORT_KEY.VIEW_MAIN);return viewMain&&disposable.add(viewMain.onScrollAfter$.subscribeEvent(()=>{const position=calcDocRangePositions$1(range,currentRender);position&&positions$.next(position)})),{positions,positions$,disposable}}attachPopupToObject(targetObject,popup,unitId){const currentRender=this._renderManagerService.getRenderById(unitId);if(!currentRender)throw new Error(`Current render not found, unitId: ${unitId}`);const{position,position$,disposable}=this._createObjectPositionObserver(targetObject,currentRender),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId:"default",anchorRect:position,anchorRect$:position$,canvasElement:currentRender.engine.getCanvasElement()});return{dispose:__name(()=>{this._globalPopupManagerService.removePopup(id),position$.complete(),disposable.dispose()},"dispose")}}attachPopupToRange(range,popup,unitId){if(!this._univerInstanceService.getUnit(unitId))throw new Error(`Document not found, unitId: ${unitId}`);const{direction="top",multipleDirection}=popup,currentRender=this._renderManagerService.getRenderById(unitId);if(!currentRender)throw new Error(`Current render not found, unitId: ${unitId}`);const{positions:bounds,positions$:bounds$,disposable}=this._createRangePositionObserver(range,currentRender),position$=bounds$.pipe(rxjs.map(bounds2=>direction.includes("top")?bounds2[0]:bounds2[bounds2.length-1])),id=this._globalPopupManagerService.addPopup({...popup,unitId,subUnitId:"default",anchorRect:direction.includes("top")?bounds[0]:bounds[bounds.length-1],anchorRect$:position$,excludeRects:bounds,excludeRects$:bounds$,direction:direction.includes("top")||direction.includes("bottom")?bounds.length>1?multipleDirection:direction:"bottom",canvasElement:currentRender.engine.getCanvasElement()});return{dispose:__name(()=>{this._globalPopupManagerService.removePopup(id),bounds$.complete(),disposable.dispose()},"dispose"),canDispose:__name(()=>this._globalPopupManagerService.activePopupId!==id,"canDispose")}}},__name(_p,"DocCanvasPopManagerService"),_p),exports2.DocCanvasPopManagerService=__decorateClass$d([__decorateParam$d(0,core.Inject(ui.ICanvasPopupService)),__decorateParam$d(1,engineRender.IRenderManagerService),__decorateParam$d(2,core.IUniverInstanceService),__decorateParam$d(3,core.ICommandService)],exports2.DocCanvasPopManagerService);var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__decorateClass$c=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$c(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$c(target,key,result),result},"__decorateClass$c"),__decorateParam$c=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$c");const calcDocRangePositions=__name((range,documents,skeleton,pageIndex)=>{var _a2,_b2,_c2,_d2,_e2;const startPosition=skeleton.findNodePositionByCharIndex(range.startOffset,!0,range.segmentId,pageIndex),skeletonData=skeleton.getSkeletonData();let end=range.endOffset;if(range.segmentId){const root=(_e2=Array.from((_b2=(_a2=skeletonData==null?void 0:skeletonData.skeFooters.get(range.segmentId))==null?void 0:_a2.values())!=null?_b2:[])[0])!=null?_e2:Array.from((_d2=(_c2=skeletonData==null?void 0:skeletonData.skeHeaders.get(range.segmentId))==null?void 0:_c2.values())!=null?_d2:[])[0];root&&(end=Math.min(root.ed,end))}const endPosition=skeleton.findNodePositionByCharIndex(end,!0,range.segmentId,pageIndex);if(!endPosition||!startPosition)return;const documentOffsetConfig=documents.getOffsetConfig(),convertor=new NodePositionConvertToCursor(documentOffsetConfig,skeleton),{borderBoxPointGroup}=convertor.getRangePointData(startPosition,endPosition);return getLineBounding(borderBoxPointGroup).map(rect=>({top:rect.top+documentOffsetConfig.docsTop-DOC_VERTICAL_PADDING,bottom:rect.bottom+documentOffsetConfig.docsTop+DOC_VERTICAL_PADDING,left:rect.left+documentOffsetConfig.docsLeft,right:rect.right+documentOffsetConfig.docsLeft}))},"calcDocRangePositions"),calcDocGlyphPosition=__name((glyph,documents,skeleton,pageIndex=-1)=>{const start=skeleton.findPositionByGlyph(glyph,pageIndex);if(!start)return;const documentOffsetConfig=documents.getOffsetConfig(),startPosition={...start,isBack:!0},convertor=new NodePositionConvertToCursor(documentOffsetConfig,skeleton),{borderBoxPointGroup}=convertor.getRangePointData(startPosition,startPosition),rect=getLineBounding(borderBoxPointGroup)[0];return{top:rect.top+documentOffsetConfig.docsTop,bottom:rect.bottom+documentOffsetConfig.docsTop,left:rect.left+documentOffsetConfig.docsLeft,right:rect.left+documentOffsetConfig.docsLeft+glyph.width}},"calcDocGlyphPosition");exports2.DocEventManagerService=(_q=class extends core.Disposable{constructor(_context,_docSkeletonManagerService){super();__publicField(this,"_hoverCustomRanges$",new rxjs.BehaviorSubject([]));__publicField(this,"hoverCustomRanges$",this._hoverCustomRanges$.pipe(rxjs.distinctUntilChanged((pre,aft)=>pre.length===aft.length&&pre.every((item,i)=>aft[i].range.rangeId===item.range.rangeId&&aft[i].segmentId===item.segmentId&&aft[i].segmentPageIndex===item.segmentPageIndex&&aft[i].range.startIndex===item.range.startIndex))));__publicField(this,"_clickCustomRanges$",new rxjs.Subject);__publicField(this,"clickCustomRanges$",this._clickCustomRanges$.asObservable());__publicField(this,"_hoverBullet$",new rxjs.Subject);__publicField(this,"hoverBullet$",this._hoverBullet$.pipe(rxjs.distinctUntilChanged((pre,aft)=>(pre==null?void 0:pre.paragraph.startIndex)===(aft==null?void 0:aft.paragraph.startIndex)&&(pre==null?void 0:pre.segmentId)===(aft==null?void 0:aft.segmentId)&&(pre==null?void 0:pre.segmentPageIndex)===(aft==null?void 0:aft.segmentPageIndex))));__publicField(this,"_clickBullet$",new rxjs.Subject);__publicField(this,"clickBullets$",this._clickBullet$.asObservable());__publicField(this,"_customRangeDirty",!0);__publicField(this,"_bulletDirty",!0);__publicField(this,"_customRangeBounds",[]);__publicField(this,"_bulletBounds",[]);this._context=_context,this._docSkeletonManagerService=_docSkeletonManagerService,this._initResetDirty(),this._initEvents(),this._initPointer()}get _skeleton(){return this._docSkeletonManagerService.getSkeleton()}get _documents(){return this._context.mainComponent}dispose(){this._hoverCustomRanges$.complete(),this._clickCustomRanges$.complete(),super.dispose()}_initPointer(){let preCursor=engineRender.CURSOR_TYPE.TEXT;this.disposeWithMe(this.hoverCustomRanges$.subscribe(ranges=>{ranges.length?(preCursor=this._context.scene.getCursor(),this._context.scene.setCursor(engineRender.CURSOR_TYPE.POINTER)):this._context.scene.setCursor(preCursor)}))}_initResetDirty(){this.disposeWithMe(this._skeleton.dirty$.subscribe(()=>{this._customRangeDirty=!0,this._bulletDirty=!0})),this.disposeWithMe(core.fromEventSubject(this._context.engine.onTransformChange$).pipe(rxjs.filter(evt=>evt.type===engineRender.TRANSFORM_CHANGE_OBSERVABLE_TYPE.resize)).subscribe(()=>{this._customRangeDirty=!0,this._bulletDirty=!0}))}_initEvents(){this.disposeWithMe(core.fromEventSubject(this._context.scene.onPointerMove$).pipe(rxjs.throttleTime(30)).subscribe(evt=>{this._hoverCustomRanges$.next(this._calcActiveRanges(evt)),this._hoverBullet$.next(this._calcActiveBullet(evt))})),this.disposeWithMe(this._context.scene.onPointerEnter$.subscribeEvent(()=>{this._hoverBullet$.next(null),this._hoverCustomRanges$.next([])}));const onPointerDown$=core.fromEventSubject(this._context.mainComponent.onPointerDown$),onPointerUp$=core.fromEventSubject(this._context.scene.onPointerUp$);this.disposeWithMe(onPointerDown$.pipe(rxjs.switchMap(down=>onPointerUp$.pipe(rxjs.take(1),rxjs.map(up=>({down,up})))),rxjs.filter(({down,up})=>down.target===up.target&&up.timeStamp-down.timeStamp<300)).subscribe(({down})=>{if(down.button===2)return;const ranges=this._calcActiveRanges(down);ranges.length&&this._clickCustomRanges$.next(ranges.pop());const bullet=this._calcActiveBullet(down);bullet&&this._clickBullet$.next(bullet)}))}_buildCustomRangeBoundsBySegment(segmentId,segmentPage=-1){var _a2,_b2,_c2;const customRanges=(_c2=(_b2=(_a2=this._context.unit.getSelfOrHeaderFooterModel(segmentId))==null?void 0:_a2.getBody())==null?void 0:_b2.customRanges)!=null?_c2:[],layouts=[];return customRanges.forEach(range=>{const textRange={startOffset:range.startIndex,endOffset:range.endIndex+1,collapsed:!1,segmentId},rects=calcDocRangePositions(textRange,this._documents,this._skeleton,segmentPage);if(!rects)return null;layouts.push({customRange:range,rects,segmentId,segmentPageIndex:segmentPage})}),layouts}_buildCustomRangeBounds(){var _a2;if(!this._customRangeDirty)return;this._customRangeDirty=!1;const customRangeBounds=[];customRangeBounds.push(...this._buildCustomRangeBoundsBySegment()),(_a2=this._skeleton.getSkeletonData())==null||_a2.pages.forEach((page,pageIndex)=>{page.headerId&&customRangeBounds.push(...this._buildCustomRangeBoundsBySegment(page.headerId,pageIndex)),page.footerId&&customRangeBounds.push(...this._buildCustomRangeBoundsBySegment(page.footerId,pageIndex))}),this._customRangeBounds=customRangeBounds}_calcActiveRanges(evt){this._buildCustomRangeBounds();const{offsetX,offsetY}=evt,{x,y}=transformOffset2Bound(offsetX,offsetY,this._context.scene);return this._customRangeBounds.filter(layout=>layout.rects.some(rect=>{const{left,right,top,bottom}=rect;return x>=left&&x<=right&&y>=top&&y<=bottom})).map(range=>({segmentId:range.segmentId,range:range.customRange,segmentPageIndex:range.segmentPageIndex,rects:range.rects}))}_buildBulletBoundsBySegment(segmentId,segmentPage=-1){var _a2,_b2,_c2,_d2,_e2;const body=(_a2=this._context.unit.getSelfOrHeaderFooterModel(segmentId))==null?void 0:_a2.getBody(),paragraphs=((_b2=body==null?void 0:body.paragraphs)!=null?_b2:[]).filter(p=>p.bullet&&p.bullet.listType.indexOf("CHECK_LIST")===0),bounds=[],skeletonData=this._skeleton.getSkeletonData();if(!skeletonData)return bounds;const calc=__name(pages=>{var _a3,_b3,_c3;for(const page of pages){const sections=[...page.sections];if(page.skeTables){const tables=Array.from(page.skeTables.values());sections.push(...tables.map(i=>i.rows.map(i2=>i2.cells.map(i3=>i3.sections))).flat(4))}for(const selection of sections)for(const column of selection.columns)for(const line of column.lines)if(line.paragraphStart){const paragraph=paragraphs.find(p=>p.startIndex===line.paragraphIndex);if(paragraph){const targetLine=line,bulletNode=(_c3=(_b3=(_a3=targetLine==null?void 0:targetLine.divides)==null?void 0:_a3[0])==null?void 0:_b3.glyphGroup)==null?void 0:_c3[0];if(!bulletNode)continue;const rect=calcDocGlyphPosition(bulletNode,this._documents,this._skeleton,segmentPage);if(!rect)continue;bounds.push({rect,segmentId,segmentPageIndex:segmentPage,paragraph})}}}return bounds},"calc");if(segmentId){const page=(_e2=(_c2=skeletonData.skeFooters.get(segmentId))==null?void 0:_c2.values())!=null?_e2:(_d2=skeletonData.skeHeaders.get(segmentId))==null?void 0:_d2.values();return page?calc(Array.from(page)):bounds}return calc(skeletonData.pages)}_buildBulletBounds(){var _a2;this._bulletDirty&&(this._bulletDirty=!1,this._bulletBounds=[],this._bulletBounds.push(...this._buildBulletBoundsBySegment()),(_a2=this._skeleton.getSkeletonData())==null||_a2.pages.forEach((page,pageIndex)=>{page.headerId&&this._bulletBounds.push(...this._buildBulletBoundsBySegment(page.headerId,pageIndex)),page.footerId&&this._bulletBounds.push(...this._buildBulletBoundsBySegment(page.footerId,pageIndex))}))}_calcActiveBullet(evt){this._buildBulletBounds();const{offsetX,offsetY}=evt,{x,y}=transformOffset2Bound(offsetX,offsetY,this._context.scene);return this._bulletBounds.find(layout=>{const{left,right,top,bottom}=layout.rect;return x>=left&&x<=right&&y>=top&&y<=bottom})}},__name(_q,"DocEventManagerService"),_q),exports2.DocEventManagerService=__decorateClass$c([__decorateParam$c(1,core.Inject(docs.DocSkeletonManagerService))],exports2.DocEventManagerService);var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$b(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$b(target,key,result),result},"__decorateClass$b"),__decorateParam$b=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$b");let DocChecklistRenderController=(_r=class extends core.Disposable{constructor(_context,_docSkeletonManagerService,_commandService,_docEventManagerService,_textSelectionManagerService){super(),this._context=_context,this._docSkeletonManagerService=_docSkeletonManagerService,this._commandService=_commandService,this._docEventManagerService=_docEventManagerService,this._textSelectionManagerService=_textSelectionManagerService,this._initPointerDownObserver(),this._initHoverCursor()}_initPointerDownObserver(){this._docEventManagerService.clickBullets$.subscribe(paragraph=>{const textRanges=this._textSelectionManagerService.getTextRanges();this._commandService.executeCommand(ToggleCheckListCommand.id,{index:paragraph.paragraph.startIndex,segmentId:paragraph.segmentId,textRanges})})}_initHoverCursor(){this.disposeWithMe(this._docEventManagerService.hoverBullet$.subscribe(paragraph=>{paragraph?this._context.mainComponent.setCursor(engineRender.CURSOR_TYPE.POINTER):this._context.mainComponent.setCursor(engineRender.CURSOR_TYPE.TEXT)}))}_getTransformCoordForDocumentOffset(document2,viewport,evtOffsetX,evtOffsetY){const{documentTransform}=document2.getOffsetConfig(),originCoord=viewport.transformVector2SceneCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY]));if(originCoord)return documentTransform.clone().invert().applyPoint(originCoord)}},__name(_r,"DocChecklistRenderController"),_r);DocChecklistRenderController=__decorateClass$b([__decorateParam$b(1,core.Inject(docs.DocSkeletonManagerService)),__decorateParam$b(2,core.ICommandService),__decorateParam$b(3,core.Inject(exports2.DocEventManagerService)),__decorateParam$b(4,core.Inject(docs.DocSelectionManagerService))],DocChecklistRenderController);var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$a(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$a(target,key,result),result},"__decorateClass$a"),__decorateParam$a=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$a");let DocClipboardController=(_s=class extends core.RxDisposable{constructor(_context,_commandService,_docClipboardService,_docSelectionRenderService,_contextService,_editorService){super(),this._context=_context,this._commandService=_commandService,this._docClipboardService=_docClipboardService,this._docSelectionRenderService=_docSelectionRenderService,this._contextService=_contextService,this._editorService=_editorService,this._init()}_init(){this._initLegacyPasteCommand()}_initLegacyPasteCommand(){var _a2;(_a2=this._docSelectionRenderService)==null||_a2.onPaste$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(config=>{var _a3,_b2,_c2;if(!whenDocOrEditor(this._contextService))return;config.event.preventDefault();const clipboardEvent=config.event;let htmlContent=(_a3=clipboardEvent.clipboardData)==null?void 0:_a3.getData(ui.HTML_CLIPBOARD_MIME_TYPE);const textContent=(_b2=clipboardEvent.clipboardData)==null?void 0:_b2.getData(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE),files=[...((_c2=clipboardEvent.clipboardData)==null?void 0:_c2.items)||[]].filter(item=>ui.imageMimeTypeSet.has(item.type)).map(item=>item.getAsFile()).filter(e=>!!e);this._editorService.getEditor(this._context.unitId)&&(htmlContent!=null?htmlContent:"").indexOf("</table>")>-1&&(htmlContent=""),this._docClipboardService.legacyPaste({html:htmlContent,text:textContent,files})})}},__name(_s,"DocClipboardController"),_s);DocClipboardController=__decorateClass$a([__decorateParam$a(1,core.ICommandService),__decorateParam$a(2,IDocClipboardService),__decorateParam$a(3,core.Inject(exports2.DocSelectionRenderService)),__decorateParam$a(4,core.IContextService),__decorateParam$a(5,IEditorService)],DocClipboardController);var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$9(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$9(target,key,result),result},"__decorateClass$9"),__decorateParam$9=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$9");const SKIP_UNIT_IDS=[core.DEFAULT_EMPTY_DOCUMENT_VALUE,core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.DOCS_ZEN_EDITOR_UNIT_ID_KEY];let DocContextMenuRenderController=(_t=class extends core.Disposable{constructor(_context,_contextMenuService,_commandService){super(),this._context=_context,this._contextMenuService=_contextMenuService,this._commandService=_commandService,SKIP_UNIT_IDS.includes(this._context.unitId)||(this._initPointerDown(),this._initEditChange())}_initPointerDown(){var _a2,_b2;const documentsSubscription=((_b2=(_a2=this._context)==null?void 0:_a2.mainComponent)==null?void 0:_b2.onPointerDown$).subscribeEvent(event=>{event.button===2&&this._contextMenuService.triggerContextMenu(event,ui.ContextMenuPosition.MAIN_AREA)});this.disposeWithMe(documentsSubscription)}_initEditChange(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{command.id===docs.RichTextEditingMutation.id&&this._contextMenuService.visible&&this._contextMenuService.hideContextMenu()}))}},__name(_t,"DocContextMenuRenderController"),_t);DocContextMenuRenderController=__decorateClass$9([__decorateParam$9(1,ui.IContextMenuService),__decorateParam$9(2,core.ICommandService)],DocContextMenuRenderController);var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$8(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$8(target,key,result),result},"__decorateClass$8"),__decorateParam$8=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$8");let DocEditorBridgeController=(_u=class extends core.Disposable{constructor(_context,_univerInstanceService,_editorService,_commandService,_docSelectionRenderService,_docSkeletonManagerService,_renderManagerService){super();__publicField(this,"_initialEditors",new Set);this._context=_context,this._univerInstanceService=_univerInstanceService,this._editorService=_editorService,this._commandService=_commandService,this._docSelectionRenderService=_docSelectionRenderService,this._docSkeletonManagerService=_docSkeletonManagerService,this._renderManagerService=_renderManagerService,this._initialize()}_initialize(){this._editorService.getAllEditor().forEach(editor=>{const unitId=editor.getEditorId();unitId===this._context.unitId&&(this._initialEditors.has(unitId)||(this._initialEditors.add(unitId),this._resize(unitId)))}),this._commandExecutedListener(),this._initialBlur(),this._initialFocus()}_resize(unitId){if(unitId==null)return;const editor=this._editorService.getEditor(unitId);if((editor==null?void 0:editor.cancelDefaultResizeListener)===!0)return;const editorDataModel=this._univerInstanceService.getUniverDocInstance(unitId);if(!editorDataModel)return;const skeleton=this._docSkeletonManagerService.getSkeleton();if(editor==null||editor.render==null||skeleton==null||editorDataModel==null)return;skeleton.calculate();const{marginTop=0,marginBottom=0,marginLeft=0,marginRight=0}=editorDataModel.getSnapshot().documentStyle,{scene,mainComponent}=editor.render;let{actualHeight,actualWidth}=skeleton.getActualSize();actualHeight+=marginTop+marginBottom,actualWidth+=marginLeft+marginRight;const{width,height}=editor.getBoundingClientRect(),contentWidth=Math.max(actualWidth,width),contentHeight=Math.max(actualHeight,height);scene.transformByState({width:contentWidth,height:contentHeight}),mainComponent==null||mainComponent.resize(contentWidth,contentHeight)}_initialBlur(){this.disposeWithMe(this._editorService.blur$.subscribe(()=>{this._docSelectionRenderService.blur()})),this.disposeWithMe(this._docSelectionRenderService.onBlur$.subscribe(()=>{const{unitId}=this._context,editor=this._editorService.getEditor(unitId),focusEditor=this._editorService.getFocusEditor();editor==null||editor.isSheetEditor()||focusEditor&&focusEditor.getEditorId()===unitId||unitId.includes("range_selector")||unitId.includes("embedding_formula_editor")||this._editorService.blur()}))}_initialFocus(){const focusExcepts=["univer-formula-search","univer-formula-help","formula-help-decorator","univer-formula-help-param"];this.disposeWithMe(rxjs.fromEvent(window,"mousedown").subscribe(event=>{const hasSearch=event.target.classList[0]||"";core.checkForSubstrings(hasSearch,focusExcepts)&&event.stopPropagation()})),this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SHEET).forEach(unit=>{const unitId=unit.getUnitId(),render2=this._renderManagerService.getRenderById(unitId),canvasEle=render2==null?void 0:render2.engine.getCanvas().getCanvasEle();canvasEle!=null&&rxjs.fromEvent(canvasEle,"mousedown").subscribe(evt=>{evt.stopPropagation()})})}_commandExecutedListener(){const updateCommandList=[docs.RichTextEditingMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(updateCommandList.includes(command.id)){const params=command.params,{unitId}=params;if(this._editorService.isSheetEditor(unitId)||unitId!==this._context.unitId)return;const editor=this._editorService.getEditor(unitId);editor&&!editor.params.scrollBar&&this._resize(unitId)}}))}},__name(_u,"DocEditorBridgeController"),_u);DocEditorBridgeController=__decorateClass$8([__decorateParam$8(1,core.IUniverInstanceService),__decorateParam$8(2,IEditorService),__decorateParam$8(3,core.ICommandService),__decorateParam$8(4,core.Inject(exports2.DocSelectionRenderService)),__decorateParam$8(5,core.Inject(docs.DocSkeletonManagerService)),__decorateParam$8(6,engineRender.IRenderManagerService)],DocEditorBridgeController);var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$7(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$7(target,key,result),result},"__decorateClass$7"),__decorateParam$7=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$7");let DocIMEInputController=(_v=class extends core.Disposable{constructor(_context,_docSelectionRenderService,_docImeInputManagerService,_docSkeletonManagerService,_commandService){super();__publicField(this,"_previousIMEContent","");__publicField(this,"_isCompositionStart",!0);__publicField(this,"_onStartSubscription");__publicField(this,"_onUpdateSubscription");__publicField(this,"_onEndSubscription");this._context=_context,this._docSelectionRenderService=_docSelectionRenderService,this._docImeInputManagerService=_docImeInputManagerService,this._docSkeletonManagerService=_docSkeletonManagerService,this._commandService=_commandService,this._initialize()}dispose(){var _a2,_b2,_c2;(_a2=this._onStartSubscription)==null||_a2.unsubscribe(),(_b2=this._onUpdateSubscription)==null||_b2.unsubscribe(),(_c2=this._onEndSubscription)==null||_c2.unsubscribe()}_initialize(){this._initialOnCompositionstart(),this._initialOnCompositionUpdate(),this._initialOnCompositionend()}_initialOnCompositionstart(){this._onStartSubscription=this._docSelectionRenderService.onCompositionstart$.subscribe(config=>{if(config==null)return;this._resetIME();const{activeRange}=config;activeRange!=null&&this._docImeInputManagerService.setActiveRange(core.Tools.deepClone(activeRange))})}_initialOnCompositionUpdate(){this._onUpdateSubscription=this._docSelectionRenderService.onCompositionupdate$.subscribe(config=>{this._updateContent(config,!0)})}_initialOnCompositionend(){this._onEndSubscription=this._docSelectionRenderService.onCompositionend$.subscribe(config=>{this._updateContent(config,!1)})}async _updateContent(config,isUpdate){if(config==null)return;const unitId=this._context.unitId,skeleton=this._docSkeletonManagerService.getSkeleton(),{event,activeRange}=config;if(skeleton==null||activeRange==null)return;const content=event.data;content===this._previousIMEContent&&isUpdate||(await this._commandService.executeCommand(IMEInputCommand.id,{unitId,newText:content,oldTextLen:this._previousIMEContent.length,isCompositionStart:this._isCompositionStart,isCompositionEnd:!isUpdate}),isUpdate?(this._isCompositionStart&&(this._isCompositionStart=!1),this._previousIMEContent=content):this._resetIME())}_resetIME(){this._previousIMEContent="",this._isCompositionStart=!0,this._docImeInputManagerService.clearUndoRedoMutationParamsCache(),this._docImeInputManagerService.setActiveRange(null)}},__name(_v,"DocIMEInputController"),_v);DocIMEInputController=__decorateClass$7([__decorateParam$7(1,core.Inject(exports2.DocSelectionRenderService)),__decorateParam$7(2,core.Inject(DocIMEInputManagerService)),__decorateParam$7(3,core.Inject(docs.DocSkeletonManagerService)),__decorateParam$7(4,core.ICommandService)],DocIMEInputController);var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$6(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$6(target,key,result),result},"__decorateClass$6"),__decorateParam$6=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$6");let DocInputController=(_w=class extends core.Disposable{constructor(_context,_docSelectionRenderService,_docSkeletonManagerService,_commandService,_docMenuStyleService){super();__publicField(this,"_onInputSubscription");this._context=_context,this._docSelectionRenderService=_docSelectionRenderService,this._docSkeletonManagerService=_docSkeletonManagerService,this._commandService=_commandService,this._docMenuStyleService=_docMenuStyleService,this._init()}dispose(){var _a2;super.dispose(),(_a2=this._onInputSubscription)==null||_a2.unsubscribe()}_init(){this._initialNormalInput()}_initialNormalInput(){this._onInputSubscription=this._docSelectionRenderService.onInput$.subscribe(async config=>{var _a2,_b2,_c2;if(config==null)return;const{unitId}=this._context,{event,content="",activeRange}=config,e=event,skeleton=this._docSkeletonManagerService.getSkeleton();if(e.data==null||skeleton==null||activeRange==null)return;const{segmentId}=activeRange,originBody=this._context.unit.getSelfOrHeaderFooterModel(segmentId).getBody(),defaultTextStyle=this._docMenuStyleService.getDefaultStyle(),cacheStyle=this._docMenuStyleService.getStyleCache(),curCustomRange=getCustomRangeAtPosition((_a2=originBody==null?void 0:originBody.customRanges)!=null?_a2:[],activeRange.endOffset,core.SHEET_EDITOR_UNITS.includes(unitId)),curTextRun=getTextRunAtPosition((_b2=originBody==null?void 0:originBody.textRuns)!=null?_b2:[],activeRange.endOffset,defaultTextStyle,cacheStyle),curCustomDecorations=getCustomDecorationAtPosition((_c2=originBody==null?void 0:originBody.customDecorations)!=null?_c2:[],activeRange.endOffset);await this._commandService.executeCommand(InsertCommand.id,{unitId,body:{dataStream:content,textRuns:curTextRun?[{...curTextRun,st:0,ed:content.length}]:[],customRanges:curCustomRange?[{...curCustomRange,startIndex:0,endIndex:content.length-1}]:[],customDecorations:curCustomDecorations.map(customDecoration=>({...customDecoration,startIndex:0,endIndex:content.length-1}))},range:activeRange,segmentId}),content===" "&&await this._commandService.executeCommand(AfterSpaceCommand.id)})}},__name(_w,"DocInputController"),_w);DocInputController=__decorateClass$6([__decorateParam$6(1,core.Inject(exports2.DocSelectionRenderService)),__decorateParam$6(2,core.Inject(docs.DocSkeletonManagerService)),__decorateParam$6(3,core.ICommandService),__decorateParam$6(4,core.Inject(DocMenuStyleService))],DocInputController);const _DocPageLayoutService=class _DocPageLayoutService extends core.Disposable{constructor(_context){super(),this._context=_context}calculatePagePosition(){var _a2,_b2;const docObject=neoGetDocObject(this._context),zoomRatio=(_b2=(_a2=this._context.unit.getSettings())==null?void 0:_a2.zoomRatio)!=null?_b2:1,{document:docsComponent,scene,docBackground}=docObject,parent=scene==null?void 0:scene.getParent(),{width:docsWidth,height:docsHeight,pageMarginLeft,pageMarginTop}=docsComponent;if(parent==null||docsWidth===Number.POSITIVE_INFINITY||docsHeight===Number.POSITIVE_INFINITY)return;const{width:engineWidth,height:engineHeight}=parent;let docsLeft=0,docsTop=pageMarginTop,sceneWidth=0,sceneHeight=0,scrollToX=Number.POSITIVE_INFINITY;engineWidth>(docsWidth+pageMarginLeft*2)*zoomRatio?(docsLeft=engineWidth/2-docsWidth*zoomRatio/2,docsLeft/=zoomRatio,sceneWidth=(engineWidth-pageMarginLeft*2)/zoomRatio,scrollToX=0):(docsLeft=pageMarginLeft,sceneWidth=docsWidth+pageMarginLeft*2,scrollToX=(sceneWidth-engineWidth/zoomRatio)/2),engineHeight>docsHeight?sceneHeight=(engineHeight-pageMarginTop*2)/zoomRatio:sceneHeight=docsHeight+pageMarginTop*2,scene.resize(sceneWidth,sceneHeight),engineWidth<=1&&(docsLeft=-1e4,docsTop=-1e4),docsComponent.translate(docsLeft,docsTop),docBackground.translate(docsLeft,docsTop);const viewport=scene.getViewport(VIEWPORT_KEY.VIEW_MAIN);return scrollToX!==Number.POSITIVE_INFINITY&&viewport!=null&&viewport.scrollToViewportPos({viewportScrollX:scrollToX}),this}};__name(_DocPageLayoutService,"DocPageLayoutService");let DocPageLayoutService=_DocPageLayoutService;var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$5(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$5(target,key,result),result},"__decorateClass$5"),__decorateParam$5=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$5");let DocResizeRenderController=(_x=class extends core.Disposable{constructor(_context,_docPageLayoutService,_textSelectionManagerService){super(),this._context=_context,this._docPageLayoutService=_docPageLayoutService,this._textSelectionManagerService=_textSelectionManagerService;const unitId=this._context.unitId;if(core.isInternalEditorID(unitId)&&unitId!==core.DOCS_ZEN_EDITOR_UNIT_ID_KEY)return this;this._initResize()}_initResize(){this.disposeWithMe(core.fromEventSubject(this._context.engine.onTransformChange$).pipe(rxjs.filter(evt=>evt.type===engineRender.TRANSFORM_CHANGE_OBSERVABLE_TYPE.resize),rxjs.throttleTime(0,rxjs.animationFrameScheduler)).subscribe(()=>{this._docPageLayoutService.calculatePagePosition(),this._textSelectionManagerService.refreshSelection()}))}},__name(_x,"DocResizeRenderController"),_x);DocResizeRenderController=__decorateClass$5([__decorateParam$5(1,core.Inject(DocPageLayoutService)),__decorateParam$5(2,core.Inject(docs.DocSelectionManagerService))],DocResizeRenderController);var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4");let DocSelectionRenderController=(_y=class extends core.Disposable{constructor(_context,_commandService,_editorService,_instanceSrv,_docSelectionRenderService,_docSkeletonManagerService,_docSelectionManagerService){super();__publicField(this,"_loadedMap",new WeakSet);this._context=_context,this._commandService=_commandService,this._editorService=_editorService,this._instanceSrv=_instanceSrv,this._docSelectionRenderService=_docSelectionRenderService,this._docSkeletonManagerService=_docSkeletonManagerService,this._docSelectionManagerService=_docSelectionManagerService,this._initialize()}_initialize(){this._init(),this._skeletonListener(),this._commandExecutedListener(),this._refreshListener(),this._syncSelection()}_init(){const{unitId}=this._context,docObject=neoGetDocObject(this._context);docObject==null||docObject.document==null||this._loadedMap.has(docObject.document)||(this._initialMain(unitId),this._loadedMap.add(docObject.document))}_refreshListener(){this.disposeWithMe(this._docSelectionManagerService.refreshSelection$.subscribe(params=>{if(params==null)return;const{unitId,docRanges,isEditing,options}=params;unitId===this._context.unitId&&(this._docSelectionRenderService.removeAllRanges(),this._docSelectionRenderService.addDocRanges(docRanges,isEditing,options))}))}_syncSelection(){this.disposeWithMe(this._docSelectionRenderService.textSelectionInner$.subscribe(params=>{params!=null&&this._docSelectionManagerService.__replaceTextRangesWithNoRefresh(params,{unitId:this._context.unitId,subUnitId:this._context.unitId})}))}_initialMain(unitId){const docObject=neoGetDocObject(this._context),{document:document2,scene}=docObject;this.disposeWithMe(document2.onPointerEnter$.subscribeEvent(()=>{this._isEditorReadOnly(unitId)||(document2.cursor=engineRender.CURSOR_TYPE.TEXT)})),this.disposeWithMe(document2.onPointerLeave$.subscribeEvent(()=>{document2.cursor=engineRender.CURSOR_TYPE.DEFAULT,scene.resetCursor()})),this.disposeWithMe(document2.onPointerDown$.subscribeEvent((evt,state)=>{if(this._isEditorReadOnly(unitId))return;const docDataModel=this._instanceSrv.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);(docDataModel==null?void 0:docDataModel.getUnitId())!==unitId&&this._instanceSrv.setCurrentUnitForType(unitId);const skeleton=this._docSkeletonManagerService.getSkeleton(),{offsetX,offsetY}=evt,coord=this._getTransformCoordForDocumentOffset(offsetX,offsetY);if(coord!=null){const{pageLayoutType=engineRender.PageLayoutType.VERTICAL,pageMarginLeft,pageMarginTop}=document2.getOffsetConfig(),{editArea}=skeleton.findEditAreaByCoord(coord,pageLayoutType,pageMarginLeft,pageMarginTop),viewModel=this._docSkeletonManagerService.getViewModel(),preEditArea=viewModel.getEditArea();preEditArea!==engineRender.DocumentEditArea.BODY&&editArea!==engineRender.DocumentEditArea.BODY&&editArea!==preEditArea&&viewModel.setEditArea(editArea)}if(this._docSelectionRenderService.__onPointDown(evt),this._editorService.getEditor(unitId)){this._setEditorFocus(unitId);const{offsetX:offsetX2,offsetY:offsetY2}=evt;setTimeout(()=>{unitId!==this._editorService.getFocusId()&&(this._setEditorFocus(unitId),this._docSelectionRenderService.setCursorManually(offsetX2,offsetY2))},0)}evt.button!==2&&state.stopPropagation()})),this.disposeWithMe(document2.onDblclick$.subscribeEvent(evt=>{this._isEditorReadOnly(unitId)||this._docSelectionRenderService.__handleDblClick(evt)})),this.disposeWithMe(document2.onTripleClick$.subscribeEvent(evt=>{this._isEditorReadOnly(unitId)||this._docSelectionRenderService.__handleTripleClick(evt)}))}_getTransformCoordForDocumentOffset(evtOffsetX,evtOffsetY){const docObject=neoGetDocObject(this._context),{document:document2,scene}=docObject,{documentTransform}=document2.getOffsetConfig(),activeViewport=scene.getViewports()[0];if(activeViewport==null)return;const originCoord=activeViewport.transformVector2SceneCoord(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY]));return documentTransform.clone().invert().applyPoint(originCoord)}_isEditorReadOnly(unitId){const editor=this._editorService.getEditor(unitId);return editor?editor.isReadOnly():!1}_setEditorFocus(unitId){this._editorService.focus(unitId)}_commandExecutedListener(){const updateCommandList=[SetDocZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{var _a2;if(updateCommandList.includes(command.id)){const params=command.params,{unitId:documentId}=params,unitId=(_a2=this._docSelectionManagerService.__getCurrentSelection())==null?void 0:_a2.unitId;if(documentId!==unitId)return;this._docSelectionManagerService.refreshSelection()}}))}_skeletonListener(){this.disposeWithMe(this._docSkeletonManagerService.currentSkeleton$.subscribe(skeleton=>{if(!skeleton)return;const{unitId}=this._context;if(!core.isInternalEditorID(unitId)){this._docSelectionRenderService.focus();const snapshot=this._context.unit.getSnapshot(),offset=findFirstCursorOffset(snapshot);this._docSelectionManagerService.replaceDocRanges([{startOffset:offset,endOffset:offset}],{unitId,subUnitId:unitId},!1)}}))}},__name(_y,"DocSelectionRenderController"),_y);DocSelectionRenderController=__decorateClass$4([__decorateParam$4(1,core.ICommandService),__decorateParam$4(2,IEditorService),__decorateParam$4(3,core.IUniverInstanceService),__decorateParam$4(4,core.Inject(exports2.DocSelectionRenderService)),__decorateParam$4(5,core.Inject(docs.DocSkeletonManagerService)),__decorateParam$4(6,core.Inject(docs.DocSelectionManagerService))],DocSelectionRenderController);var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3");let DocZoomRenderController=(_z=class extends core.Disposable{constructor(_context,_contextService,_docSkeletonManagerService,_univerInstanceService,_commandService,_textSelectionManagerService,_editorService,_docPageLayoutService){super(),this._context=_context,this._contextService=_contextService,this._docSkeletonManagerService=_docSkeletonManagerService,this._univerInstanceService=_univerInstanceService,this._commandService=_commandService,this._textSelectionManagerService=_textSelectionManagerService,this._editorService=_editorService,this._docPageLayoutService=_docPageLayoutService,this._initSkeletonListener(),this._initCommandExecutedListener(),this._initRenderRefresher(),setTimeout(()=>this.updateViewZoom(1,!0),20)}_initRenderRefresher(){this._docSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(param==null)return;const{unitId,scene}=this._context;this._editorService.isEditor(unitId)||this.disposeWithMe(scene.onMouseWheel$.subscribeEvent(e=>{if(!e.ctrlKey||!this._contextService.getContextValue(core.FOCUSING_DOC))return;const documentModel=this._univerInstanceService.getCurrentUniverDocInstance();if(!documentModel)return;const{documentFlavor}=documentModel.getSnapshot().documentStyle;if(documentFlavor===core.DocumentFlavor.MODERN)return;const deltaFactor=Math.abs(e.deltaX);let ratioDelta=deltaFactor<40?.2:deltaFactor<80?.4:.2;ratioDelta*=e.deltaY>0?-1:1,scene.scaleX<1&&(ratioDelta/=2);const currentRatio=documentModel.zoomRatio;let nextRatio=+Number.parseFloat(`${currentRatio+ratioDelta}`).toFixed(1);nextRatio=nextRatio>=4?4:nextRatio<=.1?.1:nextRatio,this._commandService.executeCommand(SetDocZoomRatioCommand.id,{zoomRatio:nextRatio,unitId:documentModel.getUnitId()}),e.preventDefault()}))})}_initSkeletonListener(){this.disposeWithMe(this._docSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(param==null)return;const documentModel=this._univerInstanceService.getCurrentUniverDocInstance();if(!documentModel)return;const zoomRatio=documentModel.zoomRatio||1;this.updateViewZoom(zoomRatio,!1)}))}_initCommandExecutedListener(){const updateCommandList=[SetDocZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(updateCommandList.includes(command.id)&&command.params.unitId===this._context.unitId){const zoomRatio=this._context.unit.zoomRatio||1;this.updateViewZoom(zoomRatio)}})),this.disposeWithMe(this._commandService.beforeCommandExecuted(command=>{command.id===SwitchDocModeCommand.id&&this._commandService.executeCommand(SetDocZoomRatioCommand.id,{zoomRatio:1,unitId:this._context.unitId})}))}updateViewZoom(zoomRatio,needRefreshSelection=!0){var _a2;const docObject=neoGetDocObject(this._context);docObject.scene.scale(zoomRatio,zoomRatio),this._editorService.isEditor(this._context.unitId)||this._docPageLayoutService.calculatePagePosition(),needRefreshSelection&&!this._editorService.isEditor(this._context.unitId)&&this._textSelectionManagerService.refreshSelection(),(_a2=docObject.scene.getTransformer())==null||_a2.clearSelectedObjects()}},__name(_z,"DocZoomRenderController"),_z);DocZoomRenderController=__decorateClass$3([__decorateParam$3(1,core.IContextService),__decorateParam$3(2,core.Inject(docs.DocSkeletonManagerService)),__decorateParam$3(3,core.IUniverInstanceService),__decorateParam$3(4,core.ICommandService),__decorateParam$3(5,core.Inject(docs.DocSelectionManagerService)),__decorateParam$3(6,IEditorService),__decorateParam$3(7,core.Inject(DocPageLayoutService))],DocZoomRenderController);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2");const DEBOUNCE_DELAY=300;exports2.DocStateChangeManagerService=(_A=class extends core.RxDisposable{constructor(_undoRedoService,_commandService,_univerInstanceService,_docStateEmitService,_renderManagerService){super();__publicField(this,"_docStateChange$",new rxjs.BehaviorSubject(null));__publicField(this,"docStateChange$",this._docStateChange$.asObservable());__publicField(this,"_historyStateCache",new Map);__publicField(this,"_changeStateCache",new Map);__publicField(this,"_historyTimer",null);__publicField(this,"_changeStateCacheTimer",null);this._undoRedoService=_undoRedoService,this._commandService=_commandService,this._univerInstanceService=_univerInstanceService,this._docStateEmitService=_docStateEmitService,this._renderManagerService=_renderManagerService,this._initialize(),this._listenDocStateChange()}getStateCache(unitId){var _a2,_b2;return{history:(_a2=this._historyStateCache.get(unitId))!=null?_a2:[],collaboration:(_b2=this._changeStateCache.get(unitId))!=null?_b2:[]}}setStateCache(unitId,cache){this._historyStateCache.set(unitId,cache.history),this._changeStateCache.set(unitId,cache.collaboration)}_setChangeState(changeState){this._cacheChangeState(changeState,"history"),this._cacheChangeState(changeState,"collaboration")}_initialize(){this.disposeWithMe(this._commandService.beforeCommandExecuted(command=>{if(command.id===core.UndoCommandId||command.id===core.RedoCommandId){const univerDoc=this._univerInstanceService.getCurrentUniverDocInstance();if(univerDoc==null)return;const unitId=univerDoc.getUnitId();this._pushHistory(unitId),this._emitChangeState(unitId)}}))}_listenDocStateChange(){this._docStateEmitService.docStateChangeParams$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(changeStateInfo=>{var _a2;if(changeStateInfo==null)return;const{isCompositionEnd,isSync,syncer,...changeState}=changeStateInfo,imeInputManagerService=(_a2=this._renderManagerService.getRenderById(isSync?syncer:changeStateInfo.unitId))==null?void 0:_a2.with(DocIMEInputManagerService);if(imeInputManagerService!=null){if(isCompositionEnd){const historyParams=imeInputManagerService.fetchComposedUndoRedoMutationParams();if(historyParams==null)throw new Error("historyParams is null in RichTextEditingMutation");const{undoMutationParams,redoMutationParams,previousActiveRange}=historyParams;changeState.redoState.actions=redoMutationParams.actions,changeState.undoState.actions=undoMutationParams.actions,changeState.undoState.textRanges=[previousActiveRange]}this._setChangeState(changeState)}})}_cacheChangeState(changeState,type="history"){const{trigger,unitId,noHistory,debounce=!1}=changeState;if(noHistory||trigger==null||type==="history"&&(trigger===core.RedoCommandId||trigger===core.UndoCommandId))return;const stateCache=type==="history"?this._historyStateCache:this._changeStateCache,cb=type==="history"?this._pushHistory.bind(this):this._emitChangeState.bind(this);if(stateCache.has(unitId)){const cacheStates=stateCache.get(unitId);cacheStates==null||cacheStates.push(changeState)}else stateCache.set(unitId,[changeState]);debounce?type==="history"?(this._historyTimer&&clearTimeout(this._historyTimer),this._historyTimer=setTimeout(()=>{cb(unitId)},DEBOUNCE_DELAY)):(this._changeStateCacheTimer&&clearTimeout(this._changeStateCacheTimer),this._changeStateCacheTimer=setTimeout(()=>{cb(unitId)},DEBOUNCE_DELAY)):cb(unitId)}_pushHistory(unitId){const undoRedoService=this._undoRedoService,cacheStates=this._historyStateCache.get(unitId);if(!Array.isArray(cacheStates)||cacheStates.length===0)return;const len=cacheStates.length,commandId=cacheStates[0].commandId,firstState=cacheStates[0],lastState=cacheStates[len-1],redoParams={unitId,actions:cacheStates.reduce((acc,cur)=>core.JSONX.compose(acc,cur.redoState.actions),null),textRanges:lastState.redoState.textRanges},undoParams={unitId,actions:cacheStates.reverse().reduce((acc,cur)=>core.JSONX.compose(acc,cur.undoState.actions),null),textRanges:firstState.undoState.textRanges};undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[{id:commandId,params:undoParams}],redoMutations:[{id:commandId,params:redoParams}]}),cacheStates.length=0}_emitChangeState(unitId){const cacheStates=this._changeStateCache.get(unitId);if(!Array.isArray(cacheStates)||cacheStates.length===0)return;const len=cacheStates.length,{commandId,trigger,segmentId,noHistory,debounce}=cacheStates[0],firstState=cacheStates[0],lastState=cacheStates[len-1],redoState={unitId,actions:cacheStates.reduce((acc,cur)=>core.JSONX.compose(acc,cur.redoState.actions),null),textRanges:lastState.redoState.textRanges},undoState={unitId,actions:cacheStates.reverse().reduce((acc,cur)=>core.JSONX.compose(acc,cur.undoState.actions),null),textRanges:firstState.undoState.textRanges},changeState={commandId,unitId,trigger,redoState,undoState,segmentId,noHistory,debounce};cacheStates.length=0,this._docStateChange$.next(changeState)}},__name(_A,"DocStateChangeManagerService"),_A),exports2.DocStateChangeManagerService=__decorateClass$2([__decorateParam$2(0,core.Inject(core.IUndoRedoService)),__decorateParam$2(1,core.ICommandService),__decorateParam$2(2,core.IUniverInstanceService),__decorateParam$2(3,core.Inject(docs.DocStateEmitService)),__decorateParam$2(4,engineRender.IRenderManagerService)],exports2.DocStateChangeManagerService);var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1");const DOC_MAIN_CANVAS_ID="univer-doc-main-canvas";exports2.DocsRenderService=(_B=class extends core.RxDisposable{constructor(_instanceSrv,_renderManagerService){super(),this._instanceSrv=_instanceSrv,this._renderManagerService=_renderManagerService,this._init()}_init(){this._renderManagerService.createRender$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(unitId=>this._createRenderWithId(unitId)),this._instanceSrv.getAllUnitsForType(core.UniverInstanceType.UNIVER_DOC).forEach(documentModel=>this._createRenderer(documentModel)),this._instanceSrv.getTypeOfUnitAdded$(core.UniverInstanceType.UNIVER_DOC).pipe(rxjs.takeUntil(this.dispose$)).subscribe(doc=>this._createRenderer(doc)),this._instanceSrv.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_DOC).pipe(rxjs.takeUntil(this.dispose$)).subscribe(doc=>this._disposeRenderer(doc))}_createRenderer(doc){var _a2;const unitId=doc.getUnitId(),workbookId=(_a2=this._instanceSrv.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC))==null?void 0:_a2.getUnitId();this._renderManagerService.created$.subscribe(renderer=>{renderer.unitId===workbookId&&(renderer.engine.getCanvas().setId(DOC_MAIN_CANVAS_ID),renderer.engine.getCanvas().getContext().setId(DOC_MAIN_CANVAS_ID))}),this._renderManagerService.has(unitId)||(this._createRenderWithId(unitId),this._renderManagerService.setCurrent(unitId))}_createRenderWithId(unitId){this._renderManagerService.createRender(unitId)}_disposeRenderer(doc){const unitId=doc.getUnitId();this._renderManagerService.removeRender(unitId)}},__name(_B,"DocsRenderService"),_B),exports2.DocsRenderService=__decorateClass$1([__decorateParam$1(0,core.IUniverInstanceService),__decorateParam$1(1,engineRender.IRenderManagerService)],exports2.DocsRenderService);const _RangeSelectorService=class _RangeSelectorService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_currentSelectorId");__publicField(this,"_selectionChange$",new rxjs.Subject);__publicField(this,"selectionChange$",this._selectionChange$.asObservable());__publicField(this,"_openSelector$",new rxjs.Subject);__publicField(this,"openSelector$",this._openSelector$.asObservable());__publicField(this,"_selectorModalVisible$",new rxjs.BehaviorSubject(!1));__publicField(this,"selectorModalVisible$",this._selectorModalVisible$.asObservable())}get selectorModalVisible(){return this._selectorModalVisible$.getValue()}setCurrentSelectorId(id){this._currentSelectorId=id}getCurrentSelectorId(){return this._currentSelectorId}selectionChange(range){this._currentSelectorId&&this._selectionChange$.next(range)}openSelector(){this._openSelector$.next(null)}triggerModalVisibleChange(visible){this._selectorModalVisible$.next(visible)}};__name(_RangeSelectorService,"RangeSelectorService");let RangeSelectorService=_RangeSelectorService;const IRangeSelectorService=core.createIdentifier("univer.range-selector.service"),BreakLineShortcut={id:EnterCommand.id,preconditions:whenDocAndEditorFocusedWithBreakLine,binding:ui.KeyCode.ENTER},DeleteLeftShortcut={id:DeleteLeftCommand.id,preconditions:whenDocAndEditorFocused,binding:ui.KeyCode.BACKSPACE},DeleteRightShortcut={id:DeleteRightCommand.id,preconditions:whenDocAndEditorFocused,binding:ui.KeyCode.DELETE},MoveCursorUpShortcut={id:MoveCursorOperation.id,binding:ui.KeyCode.ARROW_UP,preconditions:whenDocAndEditorFocused,staticParameters:{direction:core.Direction.UP}},MoveCursorDownShortcut={id:MoveCursorOperation.id,binding:ui.KeyCode.ARROW_DOWN,preconditions:whenDocAndEditorFocused,staticParameters:{direction:core.Direction.DOWN}},MoveCursorLeftShortcut={id:MoveCursorOperation.id,binding:ui.KeyCode.ARROW_LEFT,preconditions:whenDocAndEditorFocused,staticParameters:{direction:core.Direction.LEFT}},MoveCursorRightShortcut={id:MoveCursorOperation.id,binding:ui.KeyCode.ARROW_RIGHT,preconditions:whenDocAndEditorFocused,staticParameters:{direction:core.Direction.RIGHT}},MoveSelectionUpShortcut={id:MoveSelectionOperation.id,binding:ui.KeyCode.ARROW_UP|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused,staticParameters:{direction:core.Direction.UP}},MoveSelectionDownShortcut={id:MoveSelectionOperation.id,binding:ui.KeyCode.ARROW_DOWN|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused,staticParameters:{direction:core.Direction.DOWN}},MoveSelectionLeftShortcut={id:MoveSelectionOperation.id,binding:ui.KeyCode.ARROW_LEFT|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused,staticParameters:{direction:core.Direction.LEFT}},MoveSelectionRightShortcut={id:MoveSelectionOperation.id,binding:ui.KeyCode.ARROW_RIGHT|ui.MetaKeys.SHIFT,preconditions:whenDocAndEditorFocused,staticParameters:{direction:core.Direction.RIGHT}},SelectAllShortcut={id:DocSelectAllCommand.id,binding:ui.KeyCode.A|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&(contextService.getContextValue(core.FOCUSING_DOC)||contextService.getContextValue(core.EDITOR_ACTIVATED)),"preconditions")};var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__defNormalProp2=__name((obj,key,value)=>key in obj?__defProp2(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp"),__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam"),__publicField2=__name((obj,key,value)=>__defNormalProp2(obj,key+"",value),"__publicField");exports2.UniverDocsUIPlugin=(_C=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_renderManagerSrv,_commandService,_logService,_configService){super(),this._config=_config,this._injector=_injector,this._renderManagerSrv=_renderManagerSrv,this._commandService=_commandService,this._logService=_logService,this._configService=_configService;const{menu,...rest}=core.merge({},defaultPluginConfig,this._config);menu&&this._configService.setConfig("menu",menu,{merge:!0}),this._configService.setConfig(DOCS_UI_PLUGIN_CONFIG_KEY,rest),this._initDependencies(_injector),this._initializeShortcut(),this._initCommand()}onReady(){this._initRenderBasics(),this._markDocAsFocused(),core.touchDependencies(this._injector,[[exports2.DocStateChangeManagerService],[exports2.DocsRenderService]])}onRendered(){this._initUI(),this._initRenderModules(),core.touchDependencies(this._injector,[[DocAutoFormatController],[DocMoveCursorController],[DocParagraphSettingController],[DocTableController],[exports2.DocUIController]])}_initCommand(){[DeleteLeftCommand,DeleteRightCommand,SetInlineFormatBoldCommand,SetInlineFormatItalicCommand,SetInlineFormatUnderlineCommand,SetInlineFormatStrikethroughCommand,SetInlineFormatSubscriptCommand,SetInlineFormatSuperscriptCommand,SetInlineFormatFontSizeCommand,SetInlineFormatFontFamilyCommand,SetInlineFormatTextColorCommand,ResetInlineFormatTextBackgroundColorCommand,SetInlineFormatTextBackgroundColorCommand,SetInlineFormatCommand,BreakLineCommand,InsertCommand,DeleteCommand,DeleteCustomBlockCommand,UpdateCommand,MergeTwoParagraphCommand,SetDocZoomRatioOperation,OrderListCommand,BulletListCommand,ListOperationCommand,AlignLeftCommand,AlignCenterCommand,AlignRightCommand,AlignOperationCommand,AlignJustifyCommand,CreateDocTableCommand,DocTableInsertRowCommand,DocTableInsertRowAboveCommand,DocTableInsertRowBellowCommand,DocTableInsertColumnCommand,DocTableInsertColumnLeftCommand,DocTableInsertColumnRightCommand,DocTableDeleteRowsCommand,DocTableDeleteColumnsCommand,DocTableDeleteTableCommand,CloseHeaderFooterCommand,DocTableTabCommand,TabCommand,AfterSpaceCommand,EnterCommand,ChangeListNestingLevelCommand,ChangeListTypeCommand,CheckListCommand,ToggleCheckListCommand,QuickListCommand,IMEInputCommand,SwitchDocModeCommand,DocParagraphSettingCommand,InnerPasteCommand,CutContentCommand,ReplaceContentCommand,ReplaceSnapshotCommand,CoverContentCommand,SetDocZoomRatioCommand,DocSelectAllCommand,DocParagraphSettingPanelOperation,MoveCursorOperation,MoveSelectionOperation,ReplaceTextRunsCommand].forEach(e=>{this._commandService.registerCommand(e)}),[DocCopyCommand,DocCutCommand,DocPasteCommand].forEach(command=>this.disposeWithMe(this._commandService.registerMultipleCommand(command)))}_initializeShortcut(){[MoveCursorUpShortcut,MoveCursorDownShortcut,MoveCursorRightShortcut,MoveCursorLeftShortcut,MoveSelectionUpShortcut,MoveSelectionDownShortcut,MoveSelectionLeftShortcut,MoveSelectionRightShortcut,SelectAllShortcut,DeleteLeftShortcut,DeleteRightShortcut,BreakLineShortcut,ShiftTabShortCut].forEach(shortcut=>{this._injector.get(ui.IShortcutService).registerShortcut(shortcut)})}_initDependencies(injector){core.mergeOverrideWithDependencies([[DocClipboardController],[DocEditorBridgeController],[exports2.DocUIController],[DocAutoFormatController],[DocTableController],[DocMoveCursorController],[AppUIController],[DocParagraphSettingController],[IEditorService,{useClass:exports2.EditorService}],[IRangeSelectorService,{useClass:RangeSelectorService}],[IDocClipboardService,{useClass:DocClipboardService}],[exports2.DocCanvasPopManagerService],[exports2.DocsRenderService],[exports2.DocStateChangeManagerService],[exports2.DocAutoFormatService],[DocMenuStyleService]],this._config.override).forEach(d=>injector.add(d))}_markDocAsFocused(){const currentService=this._injector.get(core.IUniverInstanceService),editorService=this._injector.get(IEditorService);try{const doc=currentService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC);if(!doc)return;const id=doc.getUnitId();editorService.isEditor(id)||currentService.focusUnit(doc.getUnitId())}catch(err){this._logService.warn(err)}}_initUI(){this._injector.get(AppUIController)}_initRenderBasics(){[[docs.DocSkeletonManagerService],[exports2.DocSelectionRenderService],[docs.DocInterceptorService],[DocPageLayoutService],[DocIMEInputManagerService],[exports2.DocRenderController],[DocZoomRenderController]].forEach(m=>{this._renderManagerSrv.registerRenderModule(core.UniverInstanceType.UNIVER_DOC,m)})}_initRenderModules(){[[exports2.DocEventManagerService],[exports2.DocBackScrollRenderController],[DocSelectionRenderController],[DocHeaderFooterController],[DocResizeRenderController],[DocContextMenuRenderController],[DocChecklistRenderController],[DocClipboardController],[DocInputController],[DocIMEInputController],[DocEditorBridgeController]].forEach(m=>{this._renderManagerSrv.registerRenderModule(core.UniverInstanceType.UNIVER_DOC,m)})}},__name(_C,"UniverDocsUIPlugin"),_C),__publicField2(exports2.UniverDocsUIPlugin,"pluginName",DOC_UI_PLUGIN_NAME),exports2.UniverDocsUIPlugin=__decorateClass([core.DependentOn(engineRender.UniverRenderEnginePlugin),__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,engineRender.IRenderManagerService),__decorateParam(3,core.ICommandService),__decorateParam(4,core.ILogService),__decorateParam(5,core.IConfigService)],exports2.UniverDocsUIPlugin),exports2.AfterSpaceCommand=AfterSpaceCommand,exports2.AlignCenterCommand=AlignCenterCommand,exports2.AlignJustifyCommand=AlignJustifyCommand,exports2.AlignLeftCommand=AlignLeftCommand,exports2.AlignOperationCommand=AlignOperationCommand,exports2.AlignRightCommand=AlignRightCommand,exports2.BreakLineCommand=BreakLineCommand,exports2.BulletListCommand=BulletListCommand,exports2.ChangeListNestingLevelCommand=ChangeListNestingLevelCommand,exports2.ChangeListNestingLevelType=ChangeListNestingLevelType,exports2.ChangeListTypeCommand=ChangeListTypeCommand,exports2.CheckListCommand=CheckListCommand,exports2.CoverContentCommand=CoverContentCommand,exports2.CreateDocTableCommand=CreateDocTableCommand,exports2.CutContentCommand=CutContentCommand,exports2.DOCS_COMPONENT_BACKGROUND_LAYER_INDEX=DOCS_COMPONENT_BACKGROUND_LAYER_INDEX,exports2.DOCS_COMPONENT_DEFAULT_Z_INDEX=DOCS_COMPONENT_DEFAULT_Z_INDEX,exports2.DOCS_COMPONENT_HEADER_LAYER_INDEX=DOCS_COMPONENT_HEADER_LAYER_INDEX,exports2.DOCS_COMPONENT_MAIN_LAYER_INDEX=DOCS_COMPONENT_MAIN_LAYER_INDEX,exports2.DOCS_VIEW_KEY=DOCS_VIEW_KEY,exports2.DOC_UI_PLUGIN_NAME=DOC_UI_PLUGIN_NAME,exports2.DOC_VERTICAL_PADDING=DOC_VERTICAL_PADDING,exports2.DefaultDocContainerConfig=DefaultDocContainerConfig,exports2.DefaultToolbarConfig=DefaultToolbarConfig,exports2.DeleteCommand=DeleteCommand,exports2.DeleteCustomBlockCommand=DeleteCustomBlockCommand,exports2.DeleteLeftCommand=DeleteLeftCommand,exports2.DeleteRightCommand=DeleteRightCommand,exports2.DocCopyCommand=DocCopyCommand,exports2.DocCreateTableOperation=DocCreateTableOperation,exports2.DocCutCommand=DocCutCommand,exports2.DocIMEInputManagerService=DocIMEInputManagerService,exports2.DocPasteCommand=DocPasteCommand,exports2.DocSelectAllCommand=DocSelectAllCommand,exports2.DocTableDeleteColumnsCommand=DocTableDeleteColumnsCommand,exports2.DocTableDeleteRowsCommand=DocTableDeleteRowsCommand,exports2.DocTableDeleteTableCommand=DocTableDeleteTableCommand,exports2.DocTableInsertColumnCommand=DocTableInsertColumnCommand,exports2.DocTableInsertColumnLeftCommand=DocTableInsertColumnLeftCommand,exports2.DocTableInsertColumnRightCommand=DocTableInsertColumnRightCommand,exports2.DocTableInsertRowAboveCommand=DocTableInsertRowAboveCommand,exports2.DocTableInsertRowBellowCommand=DocTableInsertRowBellowCommand,exports2.DocTableInsertRowCommand=DocTableInsertRowCommand,exports2.DocTableTabCommand=DocTableTabCommand,exports2.DocsUIMenuSchema=menuSchema,exports2.Editor=Editor,exports2.EditorInsertTextCommandId=EditorInsertTextCommandId,exports2.EnterCommand=EnterCommand,exports2.IDocClipboardService=IDocClipboardService,exports2.IEditorService=IEditorService,exports2.IMEInputCommand=IMEInputCommand,exports2.IRangeSelectorService=IRangeSelectorService,exports2.InnerPasteCommand=InnerPasteCommand,exports2.InsertCommand=InsertCommand,exports2.ListOperationCommand=ListOperationCommand,exports2.MergeTwoParagraphCommand=MergeTwoParagraphCommand,exports2.MoveCursorOperation=MoveCursorOperation,exports2.MoveSelectionOperation=MoveSelectionOperation,exports2.NORMAL_TEXT_SELECTION_PLUGIN_NAME=NORMAL_TEXT_SELECTION_PLUGIN_NAME,exports2.NodePositionConvertToCursor=NodePositionConvertToCursor,exports2.NodePositionConvertToRectRange=NodePositionConvertToRectRange,exports2.OrderListCommand=OrderListCommand,exports2.PastePluginLark=wordPastePlugin$1,exports2.PastePluginUniver=univerPastePlugin,exports2.PastePluginWord=wordPastePlugin,exports2.QuickListCommand=QuickListCommand,exports2.RangeSelectorService=RangeSelectorService,exports2.RectRange=RectRange,exports2.ReplaceContentCommand=ReplaceContentCommand,exports2.ReplaceSnapshotCommand=ReplaceSnapshotCommand,exports2.ReplaceTextRunsCommand=ReplaceTextRunsCommand,exports2.ResetInlineFormatTextBackgroundColorCommand=ResetInlineFormatTextBackgroundColorCommand,exports2.RichTextEditor=RichTextEditor,exports2.SetDocZoomRatioCommand=SetDocZoomRatioCommand,exports2.SetDocZoomRatioOperation=SetDocZoomRatioOperation,exports2.SetInlineFormatBoldCommand=SetInlineFormatBoldCommand,exports2.SetInlineFormatCommand=SetInlineFormatCommand,exports2.SetInlineFormatFontFamilyCommand=SetInlineFormatFontFamilyCommand,exports2.SetInlineFormatFontSizeCommand=SetInlineFormatFontSizeCommand,exports2.SetInlineFormatItalicCommand=SetInlineFormatItalicCommand,exports2.SetInlineFormatStrikethroughCommand=SetInlineFormatStrikethroughCommand,exports2.SetInlineFormatSubscriptCommand=SetInlineFormatSubscriptCommand,exports2.SetInlineFormatSuperscriptCommand=SetInlineFormatSuperscriptCommand,exports2.SetInlineFormatTextBackgroundColorCommand=SetInlineFormatTextBackgroundColorCommand,exports2.SetInlineFormatTextColorCommand=SetInlineFormatTextColorCommand,exports2.SetInlineFormatUnderlineCommand=SetInlineFormatUnderlineCommand,exports2.TEXT_RANGE_LAYER_INDEX=TEXT_RANGE_LAYER_INDEX,exports2.TabCommand=TabCommand,exports2.TextRange=TextRange,exports2.ToggleCheckListCommand=ToggleCheckListCommand,exports2.UpdateCommand=UpdateCommand,exports2.VIEWPORT_KEY=VIEWPORT_KEY,exports2.addCustomDecorationBySelectionFactory=addCustomDecorationBySelectionFactory,exports2.addCustomDecorationFactory=addCustomDecorationFactory,exports2.calcDocRangePositions=calcDocRangePositions$1,exports2.convertPositionsToRectRanges=convertPositionsToRectRanges,exports2.deleteCustomDecorationFactory=deleteCustomDecorationFactory,exports2.docDrawingPositionToTransform=docDrawingPositionToTransform,exports2.genTableSource=genTableSource,exports2.generateParagraphs=generateParagraphs,exports2.getAnchorBounding=getAnchorBounding,exports2.getCanvasOffsetByEngine=getCanvasOffsetByEngine,exports2.getCommandSkeleton=getCommandSkeleton,exports2.getCursorWhenDelete=getCursorWhenDelete,exports2.getCustomBlockIdsInSelections=getCustomBlockIdsInSelections,exports2.getCutActionsFromDocRanges=getCutActionsFromDocRanges,exports2.getDocObject=getDocObject,exports2.getDocObjectById=getDocObjectById,exports2.getEmptyTableCell=getEmptyTableCell,exports2.getEmptyTableRow=getEmptyTableRow,exports2.getLineBounding=getLineBounding,exports2.getOneTextSelectionRange=getOneTextSelectionRange,exports2.getParagraphsInRange=getParagraphsInRange,exports2.getParagraphsInRanges=getParagraphsInRanges,exports2.getRichTextEditPath=getRichTextEditPath,exports2.getTableColumn=getTableColumn,exports2.hasParagraphInTable=hasParagraphInTable,exports2.isInSameTableCell=isInSameTableCell,exports2.isValidRectRange=isValidRectRange,exports2.neoGetDocObject=neoGetDocObject,exports2.transformToDocDrawingPosition=transformToDocDrawingPosition,exports2.useKeyboardEvent=useKeyboardEvent,exports2.useResize=useResize,exports2.whenDocAndEditorFocused=whenDocAndEditorFocused,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});