@univerjs/docs-thread-comment-ui 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var ne=Object.defineProperty;var re=(e,t,n)=>t in e?ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var F=(e,t,n)=>re(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),I=require("@univerjs/thread-comment-ui"),M=require("@univerjs/engine-render"),u=require("@univerjs/ui"),g=require("@univerjs/docs"),$=require("@univerjs/thread-comment"),p=require("react"),R=require("rxjs"),z=require("@univerjs/docs-ui"),ie="DOC_THREAD_COMMENT_UI_PLUGIN",O="default_doc";var h=function(){return h=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},h.apply(this,arguments)},oe=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},X=p.forwardRef(function(e,t){var n=e.icon,r=e.id,i=e.className,c=e.extend,s=oe(e,["icon","id","className","extend"]),d="univerjs-icon univerjs-icon-".concat(r," ").concat(i||"").trim(),C=p.useRef("_".concat(ae()));return J(n,"".concat(r),{defIds:n.defIds,idSuffix:C.current},h({ref:t,className:d},s),c)});function J(e,t,n,r,i){return p.createElement(e.tag,h(h({key:t},ce(e,n,i)),r),(se(e,n).children||[]).map(function(c,s){return J(c,"".concat(t,"-").concat(e.tag,"-").concat(s),n,void 0,i)}))}function ce(e,t,n){var r=h({},e.attrs);n!=null&&n.colorChannel1&&r.fill==="colorChannel1"&&(r.fill=n.colorChannel1);var i=t.defIds;return!i||i.length===0||(e.tag==="use"&&r["xlink:href"]&&(r["xlink:href"]=r["xlink:href"]+t.idSuffix),Object.entries(r).forEach(function(c){var s=c[0],d=c[1];typeof d=="string"&&(r[s]=d.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),r}function se(e,t){var n,r=t.defIds;return!r||r.length===0?e:e.tag==="defs"&&(!((n=e.children)===null||n===void 0)&&n.length)?h(h({},e),{children:e.children.map(function(i){return typeof i.attrs.id=="string"&&r&&r.indexOf(i.attrs.id)>-1?h(h({},i),{attrs:h(h({},i.attrs),{id:i.attrs.id+t.idSuffix})}):i})}):e}function ae(){return Math.random().toString(36).substring(2,8)}X.displayName="UniverIcon";var de={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521C5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345ZM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521C8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345ZM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521C11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521 5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345zM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521 8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345zM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521 11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.84351 3.41861C1.84351 3.01861 2.15531 2.69434 2.53993 2.69434H14.9381C15.3228 2.69434 15.6346 3.01861 15.6346 3.41861V12.4611C15.6346 12.8612 15.3228 13.1854 14.9381 13.1854H8.82117L6.06643 14.6179C5.85054 14.7301 5.59416 14.7181 5.38884 14.5862C5.18352 14.4542 5.05855 14.2211 5.05855 13.9701V13.1854H2.53993C2.15531 13.1854 1.84351 12.8612 1.84351 12.4611L1.84351 3.41861ZM6.45141 12.7982L8.34531 12.0135C8.44201 11.9632 8.54864 11.9371 8.65676 11.9371H14.2417C14.3522 11.9371 14.4417 11.8475 14.4417 11.7371V4.14271C14.4417 4.03225 14.3522 3.94271 14.2417 3.94271H3.23636C3.12591 3.94271 3.03636 4.03225 3.03636 4.14271L3.03636 11.7371C3.03636 11.8475 3.12591 11.9371 3.23636 11.9371L5.75498 11.9371C6.1396 11.9371 6.45141 12.0611 6.45141 12.4611V12.7982Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Q=p.forwardRef(function(e,t){return p.createElement(X,Object.assign({},e,{id:"comment-single",ref:t,icon:de}))});Q.displayName="CommentSingle";const H={id:"docs.command.add-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{comment:n,unitId:r}=t,c=await e.get($.IThreadCommentDataSourceService).addComment(n),s=e.get(o.ICommandService),d=g.addCustomDecorationBySelectionFactory(e,{id:c.id,type:o.CustomDecorationType.COMMENT});if(d){const C={id:$.AddCommentCommand.id,params:{unitId:r,subUnitId:O,comment:c}},v={id:I.SetActiveCommentOperation.id,params:{unitId:r,subUnitId:O,commentId:c.id}};return(await o.sequenceExecuteAsync([C,d,v],s)).result}return!1}};var me=Object.defineProperty,le=Object.getOwnPropertyDescriptor,ue=(e,t,n,r)=>{for(var i=r>1?void 0:r?le(t,n):t,c=e.length-1,s;c>=0;c--)(s=e[c])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&me(t,n,i),i},G=(e,t)=>(n,r)=>t(n,r,e);let D=class extends o.Disposable{constructor(t,n){super();F(this,"_addingComment$",new R.BehaviorSubject(void 0));F(this,"addingComment$",this._addingComment$.asObservable());this._sidebarService=t,this._threadCommentPanelService=n,this.disposeWithMe(()=>{this._addingComment$.complete()})}get addingComment(){return this._addingComment$.getValue()}startAdd(t){this._addingComment$.next(t)}endAdd(){this._addingComment$.next(void 0)}};D=ue([G(0,u.ISidebarService),G(1,o.Inject(I.ThreadCommentPanelService))],D);const x={id:"docs.operation.show-comment-panel",type:o.CommandType.OPERATION,handler(e,t){const n=e.get(I.ThreadCommentPanelService),r=e.get(u.ISidebarService);return n.panelVisible||(r.open({header:{title:"threadCommentUI.panel.title"},children:{label:B.componentKey},width:320,onClose:()=>n.setPanelVisible(!1)}),n.setPanelVisible(!0)),t&&n.setActiveComment(t==null?void 0:t.activeComment),!0}},Y={id:"docs.operation.toggle-comment-panel",type:o.CommandType.OPERATION,handler(e){const t=e.get(I.ThreadCommentPanelService),n=e.get(u.ISidebarService);return t.panelVisible?(n.close(),t.setPanelVisible(!1),t.setActiveComment(null)):(n.open({header:{title:"threadCommentUI.panel.title"},children:{label:B.componentKey},width:320,onClose:()=>t.setPanelVisible(!1)}),t.setPanelVisible(!0)),!0}},L={id:"docs.operation.start-add-comment",type:o.CommandType.OPERATION,handler(e){var A,U;const t=e.get(I.ThreadCommentPanelService),r=e.get(o.IUniverInstanceService).getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC),i=e.get(g.TextSelectionManagerService),c=e.get(M.ITextSelectionRenderManager),s=e.get(o.UserManagerService),d=e.get(D),C=e.get(o.ICommandService),v=e.get(u.ISidebarService),a=i.getActiveRange();if(!r||!a)return!1;if(a.collapsed)return t.panelVisible?(t.setPanelVisible(!1),v.close()):C.executeCommand(x.id),!0;t.panelVisible||C.executeCommand(x.id);const f=r.getUnitId(),_=g.getSelectionText((U=(A=r.getBody())==null?void 0:A.dataStream)!=null?U:"",a.startOffset,a.endOffset),S=O,m="",l={unitId:f,subUnitId:S,id:m,ref:_,dT:I.getDT(),personId:s.getCurrentUser().userID,text:{dataStream:`\r
2
- `},startOffset:a.startOffset,endOffset:a.endOffset,collapsed:!0,threadId:m};return c.blurEditor(),d.startAdd(l),t.setActiveComment({unitId:f,subUnitId:S,commentId:m}),!0}},W={id:"docs.command.delete-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{commentId:n,unitId:r}=t,i=e.get(o.ICommandService),c=g.deleteCustomDecorationFactory(e,{id:n,unitId:r});return c?(await o.sequenceExecute([c],i)).result:!1}},B=()=>{const e=o.useDependency(o.IUniverInstanceService),t=p.useMemo(()=>e.getCurrentTypeOfUnit$(o.UniverInstanceType.UNIVER_DOC),[e]),n=o.useObservable(t),r=p.useMemo(()=>new R.Observable(m=>m.next(O)),[]),i=o.useDependency(g.TextSelectionManagerService),c=p.useMemo(()=>i.textSelection$.pipe(R.debounceTime(16)),[i.textSelection$]);o.useObservable(c);const s=o.useDependency(o.ICommandService),d=o.useDependency(D),C=o.useObservable(d.addingComment$),[v,a]=p.useState([]);if(p.useEffect(()=>{var U;const m=new Set,l=n==null?void 0:n.getCustomDecorations();a((U=l==null?void 0:l.map(b=>b.id).filter(b=>{const E=m.has(b);return m.add(b),!E}))!=null?U:[]);const A=s.onCommandExecuted(b=>{var E;if(b.id===g.RichTextEditingMutation.id){const Z=new Set,q=n==null?void 0:n.getCustomDecorations();a((E=q==null?void 0:q.map(w=>w.id).filter(w=>{const te=Z.has(w);return Z.add(w),!te}))!=null?E:[])}});return()=>{A.dispose()}},[s,n]),!n)return null;const f=i.getActiveRange(),_=!!(f&&(f.endOffset===f.startOffset||f.segmentId)),S=n.getUnitId();return p.createElement(I.ThreadCommentPanel,{unitId:S,subUnitId$:r,type:o.UniverInstanceType.UNIVER_DOC,onAdd:()=>{s.executeCommand(L.id)},getSubUnitName:()=>"",disableAdd:_,tempComment:C,onAddComment:m=>{if(!m.parentId){const l={unitId:S,range:C,comment:m};return s.executeCommand(H.id,l),d.endAdd(),!1}return!0},onDeleteComment:m=>{if(!m.parentId){const l={unitId:S,commentId:m.id};return s.executeCommand(W.id,l),!1}return!0},showComments:v})};B.componentKey="univer.doc.thread-comment-panel";const Ce=e=>{const t=e.get(M.IRenderManagerService),n=e.get(g.TextSelectionManagerService),r=t.getCurrent(),i=r==null?void 0:r.with(g.DocSkeletonManagerService).getSkeleton(),c=i==null?void 0:i.getViewModel().getEditArea();if(c===M.DocumentEditArea.FOOTER||c===M.DocumentEditArea.HEADER)return!0;const s=n.getActiveRange();return!!(!s||s.collapsed)};function ve(e){return{id:L.id,group:u.MenuGroup.CONTEXT_MENU_DATA,type:u.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",positions:[u.MenuPosition.CONTEXT_MENU],hidden$:u.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC),disabled$:new R.Observable(function(t){const r=e.get(g.TextSelectionManagerService).textSelection$.pipe(R.debounceTime(16)).subscribe(()=>{t.next(Ce(e))});return()=>{r.unsubscribe()}})}}function fe(e){return{id:Y.id,group:u.MenuGroup.CONTEXT_MENU_DATA,type:u.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",positions:[u.MenuPosition.TOOLBAR_START],hidden$:u.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC)}}var he=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,pe=(e,t,n,r)=>{for(var i=r>1?void 0:r?ge(t,n):t,c=e.length-1,s;c>=0;c--)(s=e[c])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&he(t,n,i),i},N=(e,t)=>(n,r)=>t(n,r,e);let P=class extends o.Disposable{constructor(e,t,n,r,i){super(),this._config=e,this._commandService=t,this._menuService=n,this._injector=r,this._componentManager=i,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[H,W,x,L,Y].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){[ve,fe].forEach(e=>{this.disposeWithMe(this._menuService.addMenuItem(e(this._injector),this._config.menu))})}_initComponents(){[B].forEach(e=>{this.disposeWithMe(this._componentManager.register(e.componentKey,e))}),this.disposeWithMe(this._componentManager.register("CommentSingle",Q))}};P=pe([o.OnLifecycle(o.LifecycleStages.Rendered,P),N(1,o.ICommandService),N(2,u.IMenuService),N(3,o.Inject(o.Injector)),N(4,o.Inject(u.ComponentManager))],P);var Ie=Object.defineProperty,Se=Object.getOwnPropertyDescriptor,_e=(e,t,n,r)=>{for(var i=r>1?void 0:r?Se(t,n):t,c=e.length-1,s;c>=0;c--)(s=e[c])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&Ie(t,n,i),i},T=(e,t)=>(n,r)=>t(n,r,e);let V=class extends o.Disposable{constructor(e,t,n,r,i,c){super(),this._threadCommentPanelService=e,this._univerInstanceService=t,this._commandService=n,this._docThreadCommentService=r,this._renderManagerService=i,this._threadCommentModel=c,this._initSelectionChange(),this._initActiveCommandChange()}_initSelectionChange(){let e;this.disposeWithMe(this._commandService.onCommandExecuted(t=>{var n,r,i,c;if(t.id===g.SetTextSelectionsOperation.id){const s=t.params,{unitId:d,ranges:C}=s,v=this._univerInstanceService.getUnit(d,o.UniverInstanceType.UNIVER_DOC),a=C[0];if((e==null?void 0:e.startOffset)===(a==null?void 0:a.startOffset)&&(e==null?void 0:e.endOffset)===(a==null?void 0:a.endOffset))return;if(e=a,a&&v){const{startOffset:f,endOffset:_,collapsed:S}=a;let m;if(S?m=(r=(n=v.getBody())==null?void 0:n.customDecorations)==null?void 0:r.find(l=>l.startIndex<=f&&l.endIndex>=_-1):m=(c=(i=v.getBody())==null?void 0:i.customDecorations)==null?void 0:c.find(l=>l.startIndex<=f&&l.endIndex>=_-1),m){const l=this._threadCommentModel.getComment(d,O,m.id);l&&!l.resolved&&this._commandService.executeCommand(x.id,{activeComment:{unitId:d,subUnitId:O,commentId:m.id}});return}}this._commandService.executeCommand(I.SetActiveCommentOperation.id)}}))}_initActiveCommandChange(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var t,n,r;if(e){const i=this._univerInstanceService.getUnit(e.unitId);if(i){const c=(t=this._renderManagerService.getRenderById(e.unitId))==null?void 0:t.with(z.DocBackScrollRenderController),s=(n=i.getCustomRanges())==null?void 0:n.find(d=>d.rangeId===e.commentId);s&&c&&c.scrollToRange(e.unitId,{startOffset:s.startIndex,endOffset:s.endIndex,collapsed:!1})}}(!e||e.commentId!==((r=this._docThreadCommentService.addingComment)==null?void 0:r.id))&&this._docThreadCommentService.endAdd()}))}};V=_e([o.OnLifecycle(o.LifecycleStages.Rendered,V),T(0,o.Inject(I.ThreadCommentPanelService)),T(1,o.IUniverInstanceService),T(2,o.ICommandService),T(3,o.Inject(D)),T(4,M.IRenderManagerService),T(5,o.Inject($.ThreadCommentModel))],V);var Oe=Object.defineProperty,be=Object.getOwnPropertyDescriptor,Te=(e,t,n,r)=>{for(var i=r>1?void 0:r?be(t,n):t,c=e.length-1,s;c>=0;c--)(s=e[c])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&Oe(t,n,i),i},y=(e,t)=>(n,r)=>t(n,r,e);let j=class extends o.Disposable{constructor(e,t,n,r,i,c){super(),this._context=e,this._docInterceptorService=t,this._threadCommentPanelService=n,this._docRenderController=r,this._univerInstanceService=i,this._threadCommentModel=c,this._interceptorViewModel(),this._initReRender()}_initReRender(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var n;if(e){this._docRenderController.reRender(e.unitId);return}const t=(n=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC))==null?void 0:n.getUnitId();t&&this._docRenderController.reRender(t)})),this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe(e=>{e.type==="resolve"&&this._docRenderController.reRender(e.unitId)}))}_interceptorViewModel(){this._docInterceptorService.intercept(g.DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION,{handler:(e,t,n)=>{if(!e)return n(e);const{unitId:r,index:i,customDecorations:c}=t,s=this._threadCommentPanelService.activeCommentId,{commentId:d,unitId:C}=s||{},v=c.find(S=>S.id===d),a=this._threadCommentModel.getComment(r,O,e.id);if(!a)return n({...e,show:!1});const f=v&&i>=v.startIndex&&i<=v.endIndex,_=C===r&&e.id===d;return n({...e,active:_||f,show:!a.resolved})}})}};j=Te([o.OnLifecycle(o.LifecycleStages.Starting,j),y(1,o.Inject(g.DocInterceptorService)),y(2,o.Inject(I.ThreadCommentPanelService)),y(3,o.Inject(z.DocRenderController)),y(4,o.IUniverInstanceService),y(5,o.Inject($.ThreadCommentModel))],j);var k=Object.defineProperty,Me=Object.getOwnPropertyDescriptor,De=(e,t,n)=>t in e?k(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ue=(e,t,n,r)=>{for(var i=r>1?void 0:r?Me(t,n):t,c=e.length-1,s;c>=0;c--)(s=e[c])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&k(t,n,i),i},K=(e,t)=>(n,r)=>t(n,r,e),ee=(e,t,n)=>De(e,typeof t!="symbol"?t+"":t,n);exports.UniverDocsThreadCommentUIPlugin=class extends o.Plugin{constructor(t={menu:{}},n,r){super(),this._config=t,this._injector=n,this._renderManagerSrv=r}onStarting(t){[[P,{useFactory:()=>this._injector.createInstance(P,this._config)}],[V],[D]].forEach(n=>{t.add(n)})}onRendered(){this._initRenderModule()}_initRenderModule(){[j].forEach(t=>{this._renderManagerSrv.registerRenderModule(o.UniverInstanceType.UNIVER_DOC,t)})}};ee(exports.UniverDocsThreadCommentUIPlugin,"pluginName",ie);ee(exports.UniverDocsThreadCommentUIPlugin,"type",o.UniverInstanceType.UNIVER_DOC);exports.UniverDocsThreadCommentUIPlugin=Ue([o.DependentOn(I.UniverThreadCommentUIPlugin),K(1,o.Inject(o.Injector)),K(2,M.IRenderManagerService)],exports.UniverDocsThreadCommentUIPlugin);exports.AddDocCommentComment=H;exports.DeleteDocCommentComment=W;exports.ShowCommentPanelOperation=x;exports.StartAddCommentOperation=L;
1
+ "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);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),threadCommentUi=require("@univerjs/thread-comment-ui"),engineRender=require("@univerjs/engine-render"),ui=require("@univerjs/ui"),docs=require("@univerjs/docs"),threadComment=require("@univerjs/thread-comment"),React=require("react"),rxjs=require("rxjs"),docsUi=require("@univerjs/docs-ui"),PLUGIN_NAME="DOC_THREAD_COMMENT_UI_PLUGIN",DEFAULT_DOC_SUBUNIT_ID="default_doc";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(_a6){var key=_a6[0],value=_a6[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a6,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a6=node.children)===null||_a6===void 0)&&_a6.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={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521C5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345ZM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521C8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345ZM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521C11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521 5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345zM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521 8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345zM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521 11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.84351 3.41861C1.84351 3.01861 2.15531 2.69434 2.53993 2.69434H14.9381C15.3228 2.69434 15.6346 3.01861 15.6346 3.41861V12.4611C15.6346 12.8612 15.3228 13.1854 14.9381 13.1854H8.82117L6.06643 14.6179C5.85054 14.7301 5.59416 14.7181 5.38884 14.5862C5.18352 14.4542 5.05855 14.2211 5.05855 13.9701V13.1854H2.53993C2.15531 13.1854 1.84351 12.8612 1.84351 12.4611L1.84351 3.41861ZM6.45141 12.7982L8.34531 12.0135C8.44201 11.9632 8.54864 11.9371 8.65676 11.9371H14.2417C14.3522 11.9371 14.4417 11.8475 14.4417 11.7371V4.14271C14.4417 4.03225 14.3522 3.94271 14.2417 3.94271H3.23636C3.12591 3.94271 3.03636 4.03225 3.03636 4.14271L3.03636 11.7371C3.03636 11.8475 3.12591 11.9371 3.23636 11.9371L5.75498 11.9371C6.1396 11.9371 6.45141 12.0611 6.45141 12.4611V12.7982Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CommentSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"comment-single",ref,icon:element}))});CommentSingle.displayName="CommentSingle";const AddDocCommentComment={id:"docs.command.add-comment",type:core.CommandType.COMMAND,async handler(accessor,params){if(!params)return!1;const{comment:originComment,unitId}=params,comment=await accessor.get(threadComment.IThreadCommentDataSourceService).addComment(originComment),commandService=accessor.get(core.ICommandService),doMutation=docs.addCustomDecorationBySelectionFactory(accessor,{id:comment.id,type:core.CustomDecorationType.COMMENT});if(doMutation){const addComment={id:threadComment.AddCommentMutation.id,params:{unitId,subUnitId:DEFAULT_DOC_SUBUNIT_ID,comment}},activeOperation={id:threadCommentUi.SetActiveCommentOperation.id,params:{unitId,subUnitId:DEFAULT_DOC_SUBUNIT_ID,commentId:comment.id}};return(await core.sequenceExecuteAsync([addComment,doMutation,activeOperation],commandService)).result}return!1}};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"),_a;let DocThreadCommentService=(_a=class extends core.Disposable{constructor(_sidebarService,_threadCommentPanelService){super();__publicField(this,"_addingComment$",new rxjs.BehaviorSubject(void 0));__publicField(this,"addingComment$",this._addingComment$.asObservable());this._sidebarService=_sidebarService,this._threadCommentPanelService=_threadCommentPanelService,this.disposeWithMe(()=>{this._addingComment$.complete()})}get addingComment(){return this._addingComment$.getValue()}startAdd(comment){this._addingComment$.next(comment)}endAdd(){this._addingComment$.next(void 0)}},__name(_a,"DocThreadCommentService"),_a);DocThreadCommentService=__decorateClass$4([__decorateParam$4(0,ui.ISidebarService),__decorateParam$4(1,core.Inject(threadCommentUi.ThreadCommentPanelService))],DocThreadCommentService);const ShowCommentPanelOperation={id:"docs.operation.show-comment-panel",type:core.CommandType.OPERATION,handler(accessor,params){const panelService=accessor.get(threadCommentUi.ThreadCommentPanelService),sidebarService=accessor.get(ui.ISidebarService);return panelService.panelVisible||(sidebarService.open({header:{title:"threadCommentUI.panel.title"},children:{label:DocThreadCommentPanel.componentKey},width:320,onClose:__name(()=>panelService.setPanelVisible(!1),"onClose")}),panelService.setPanelVisible(!0)),params&&panelService.setActiveComment(params==null?void 0:params.activeComment),!0}},ToggleCommentPanelOperation={id:"docs.operation.toggle-comment-panel",type:core.CommandType.OPERATION,handler(accessor){var _a6;const panelService=accessor.get(threadCommentUi.ThreadCommentPanelService),sidebarService=accessor.get(ui.ISidebarService);return!panelService.panelVisible||((_a6=sidebarService.options.children)==null?void 0:_a6.label)!==DocThreadCommentPanel.componentKey?(sidebarService.open({header:{title:"threadCommentUI.panel.title"},children:{label:DocThreadCommentPanel.componentKey},width:320,onClose:__name(()=>panelService.setPanelVisible(!1),"onClose")}),panelService.setPanelVisible(!0)):(sidebarService.close(),panelService.setPanelVisible(!1),panelService.setActiveComment(null)),!0}},StartAddCommentOperation={id:"docs.operation.start-add-comment",type:core.CommandType.OPERATION,handler(accessor){var _a6,_b;const panelService=accessor.get(threadCommentUi.ThreadCommentPanelService),doc=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),textSelectionManagerService=accessor.get(docs.TextSelectionManagerService),textSelectionRenderService=accessor.get(engineRender.ITextSelectionRenderManager),userManagerService=accessor.get(core.UserManagerService),docCommentService=accessor.get(DocThreadCommentService),commandService=accessor.get(core.ICommandService),sidebarService=accessor.get(ui.ISidebarService),textRange=textSelectionManagerService.getActiveTextRangeWithStyle();if(!doc||!textRange)return!1;if(textRange.collapsed)return panelService.panelVisible?(panelService.setPanelVisible(!1),sidebarService.close()):commandService.executeCommand(ShowCommentPanelOperation.id),!0;panelService.panelVisible||commandService.executeCommand(ShowCommentPanelOperation.id);const unitId=doc.getUnitId(),text=docs.getSelectionText((_b=(_a6=doc.getBody())==null?void 0:_a6.dataStream)!=null?_b:"",textRange.startOffset,textRange.endOffset),subUnitId=DEFAULT_DOC_SUBUNIT_ID,commentId="",comment={unitId,subUnitId,id:commentId,ref:text,dT:threadCommentUi.getDT(),personId:userManagerService.getCurrentUser().userID,text:{dataStream:`\r
2
+ `},startOffset:textRange.startOffset,endOffset:textRange.endOffset,collapsed:!0,threadId:commentId};return textSelectionRenderService.blurEditor(),docCommentService.startAdd(comment),panelService.setActiveComment({unitId,subUnitId,commentId}),!0}},DeleteDocCommentComment={id:"docs.command.delete-comment",type:core.CommandType.COMMAND,async handler(accessor,params){if(!params)return!1;const{commentId,unitId}=params,commandService=accessor.get(core.ICommandService),doMutation=docs.deleteCustomDecorationFactory(accessor,{id:commentId,unitId});return doMutation?(await core.sequenceExecute([doMutation],commandService)).result:!1}},shouldDisableAddComment=__name(accessor=>{const renderManagerService=accessor.get(engineRender.IRenderManagerService),textSelectionManagerService=accessor.get(docs.TextSelectionManagerService),render2=renderManagerService.getCurrent(),skeleton=render2==null?void 0:render2.with(docs.DocSkeletonManagerService).getSkeleton(),editArea=skeleton==null?void 0:skeleton.getViewModel().getEditArea();if(editArea===engineRender.DocumentEditArea.FOOTER||editArea===engineRender.DocumentEditArea.HEADER)return!0;const range=textSelectionManagerService.getActiveTextRangeWithStyle();return!!(range==null||range.collapsed)},"shouldDisableAddComment");function AddDocCommentMenuItemFactory(accessor){return{id:StartAddCommentOperation.id,group:ui.MenuGroup.CONTEXT_MENU_DATA,type:ui.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",positions:[ui.MenuPosition.CONTEXT_MENU],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC),disabled$:new rxjs.Observable(function(subscribe){const observer=accessor.get(docs.TextSelectionManagerService).textSelection$.pipe(rxjs.debounceTime(16)).subscribe(()=>{subscribe.next(shouldDisableAddComment(accessor))});return()=>{observer.unsubscribe()}})}}__name(AddDocCommentMenuItemFactory,"AddDocCommentMenuItemFactory");function ToolbarDocCommentMenuItemFactory(accessor){return{id:ToggleCommentPanelOperation.id,group:ui.MenuGroup.CONTEXT_MENU_DATA,type:ui.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",positions:[ui.MenuPosition.TOOLBAR_START],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(ToolbarDocCommentMenuItemFactory,"ToolbarDocCommentMenuItemFactory");const DocThreadCommentPanel=__name(()=>{const univerInstanceService=core.useDependency(core.IUniverInstanceService),injector=core.useDependency(core.Injector),doc$=React.useMemo(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC),[univerInstanceService]),doc=core.useObservable(doc$),subUnitId$=React.useMemo(()=>new rxjs.Observable(sub=>sub.next(DEFAULT_DOC_SUBUNIT_ID)),[]),textSelectionManagerService=core.useDependency(docs.TextSelectionManagerService),selectionChange$=React.useMemo(()=>textSelectionManagerService.textSelection$.pipe(rxjs.debounceTime(16)),[textSelectionManagerService.textSelection$]);core.useObservable(selectionChange$);const commandService=core.useDependency(core.ICommandService),docCommentService=core.useDependency(DocThreadCommentService),tempComment=core.useObservable(docCommentService.addingComment$),[commentIds,setCommentIds]=React.useState([]);if(React.useEffect(()=>{var _a6;const set=new Set,customRanges=doc==null?void 0:doc.getCustomDecorations();setCommentIds((_a6=customRanges==null?void 0:customRanges.map(r=>r.id).filter(i=>{const hasRepeat=set.has(i);return set.add(i),!hasRepeat}))!=null?_a6:[]);const dispose=commandService.onCommandExecuted(command=>{var _a7;if(command.id===docs.RichTextEditingMutation.id){const set2=new Set,customRanges2=doc==null?void 0:doc.getCustomDecorations();setCommentIds((_a7=customRanges2==null?void 0:customRanges2.map(r=>r.id).filter(i=>{const hasRepeat=set2.has(i);return set2.add(i),!hasRepeat}))!=null?_a7:[])}});return()=>{dispose.dispose()}},[commandService,doc]),!doc)return null;const isInValidSelection=shouldDisableAddComment(injector),unitId=doc.getUnitId();return React.createElement(threadCommentUi.ThreadCommentPanel,{unitId,subUnitId$,type:core.UniverInstanceType.UNIVER_DOC,onAdd:__name(()=>{commandService.executeCommand(StartAddCommentOperation.id)},"onAdd"),getSubUnitName:__name(()=>"","getSubUnitName"),disableAdd:isInValidSelection,tempComment,onAddComment:__name(comment=>{if(!comment.parentId){const params={unitId,range:tempComment,comment};return commandService.executeCommand(AddDocCommentComment.id,params),docCommentService.endAdd(),!1}return!0},"onAddComment"),onDeleteComment:__name(comment=>{if(!comment.parentId){const params={unitId,commentId:comment.id};return commandService.executeCommand(DeleteDocCommentComment.id,params),!1}return!0},"onDeleteComment"),showComments:commentIds})},"DocThreadCommentPanel");DocThreadCommentPanel.componentKey="univer.doc.thread-comment-panel";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"),_a2;let DocThreadCommentUIController=(_a2=class extends core.Disposable{constructor(_config,_commandService,_menuService,_injector,_componentManager){super(),this._config=_config,this._commandService=_commandService,this._menuService=_menuService,this._injector=_injector,this._componentManager=_componentManager,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[AddDocCommentComment,DeleteDocCommentComment,ShowCommentPanelOperation,StartAddCommentOperation,ToggleCommentPanelOperation].forEach(command=>{this.disposeWithMe(this._commandService.registerCommand(command))})}_initMenus(){[AddDocCommentMenuItemFactory,ToolbarDocCommentMenuItemFactory].forEach(menuFactory=>{this.disposeWithMe(this._menuService.addMenuItem(menuFactory(this._injector),this._config.menu))})}_initComponents(){[DocThreadCommentPanel].forEach(comp=>{this.disposeWithMe(this._componentManager.register(comp.componentKey,comp))}),this.disposeWithMe(this._componentManager.register("CommentSingle",CommentSingle))}},__name(_a2,"DocThreadCommentUIController"),_a2);DocThreadCommentUIController=__decorateClass$3([core.OnLifecycle(core.LifecycleStages.Rendered,DocThreadCommentUIController),__decorateParam$3(1,core.ICommandService),__decorateParam$3(2,ui.IMenuService),__decorateParam$3(3,core.Inject(core.Injector)),__decorateParam$3(4,core.Inject(ui.ComponentManager))],DocThreadCommentUIController);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"),_a3;let DocThreadCommentSelectionController=(_a3=class extends core.Disposable{constructor(_threadCommentPanelService,_univerInstanceService,_commandService,_docThreadCommentService,_renderManagerService,_threadCommentModel){super(),this._threadCommentPanelService=_threadCommentPanelService,this._univerInstanceService=_univerInstanceService,this._commandService=_commandService,this._docThreadCommentService=_docThreadCommentService,this._renderManagerService=_renderManagerService,this._threadCommentModel=_threadCommentModel,this._initSelectionChange(),this._initActiveCommandChange()}_initSelectionChange(){let lastSelection;this.disposeWithMe(this._commandService.onCommandExecuted(commandInfo=>{var _a6,_b,_c,_d;if(commandInfo.id===docs.SetTextSelectionsOperation.id){const params=commandInfo.params,{unitId,ranges}=params,doc=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_DOC),primary=ranges[0];if((lastSelection==null?void 0:lastSelection.startOffset)===(primary==null?void 0:primary.startOffset)&&(lastSelection==null?void 0:lastSelection.endOffset)===(primary==null?void 0:primary.endOffset))return;if(lastSelection=primary,primary&&doc){const{startOffset,endOffset,collapsed}=primary;let customRange;if(collapsed?customRange=(_b=(_a6=doc.getBody())==null?void 0:_a6.customDecorations)==null?void 0:_b.find(value=>value.startIndex<=startOffset&&value.endIndex>=endOffset-1):customRange=(_d=(_c=doc.getBody())==null?void 0:_c.customDecorations)==null?void 0:_d.find(value=>value.startIndex<=startOffset&&value.endIndex>=endOffset-1),customRange){const comment=this._threadCommentModel.getComment(unitId,DEFAULT_DOC_SUBUNIT_ID,customRange.id);comment&&!comment.resolved&&this._commandService.executeCommand(ShowCommentPanelOperation.id,{activeComment:{unitId,subUnitId:DEFAULT_DOC_SUBUNIT_ID,commentId:customRange.id}});return}}if(!this._threadCommentPanelService.activeCommentId)return;this._commandService.executeCommand(threadCommentUi.SetActiveCommentOperation.id)}}))}_initActiveCommandChange(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(activeComment=>{var _a6,_b,_c;if(activeComment){const doc=this._univerInstanceService.getUnit(activeComment.unitId);if(doc){const backScrollController=(_a6=this._renderManagerService.getRenderById(activeComment.unitId))==null?void 0:_a6.with(docsUi.DocBackScrollRenderController),customRange=(_b=doc.getCustomRanges())==null?void 0:_b.find(range=>range.rangeId===activeComment.commentId);customRange&&backScrollController&&backScrollController.scrollToRange(activeComment.unitId,{startOffset:customRange.startIndex,endOffset:customRange.endIndex,collapsed:!1})}}(!activeComment||activeComment.commentId!==((_c=this._docThreadCommentService.addingComment)==null?void 0:_c.id))&&this._docThreadCommentService.endAdd()}))}},__name(_a3,"DocThreadCommentSelectionController"),_a3);DocThreadCommentSelectionController=__decorateClass$2([core.OnLifecycle(core.LifecycleStages.Rendered,DocThreadCommentSelectionController),__decorateParam$2(0,core.Inject(threadCommentUi.ThreadCommentPanelService)),__decorateParam$2(1,core.IUniverInstanceService),__decorateParam$2(2,core.ICommandService),__decorateParam$2(3,core.Inject(DocThreadCommentService)),__decorateParam$2(4,engineRender.IRenderManagerService),__decorateParam$2(5,core.Inject(threadComment.ThreadCommentModel))],DocThreadCommentSelectionController);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"),_a4;let DocThreadCommentRenderController=(_a4=class extends core.Disposable{constructor(_context,_docInterceptorService,_threadCommentPanelService,_docRenderController,_univerInstanceService,_threadCommentModel){super(),this._context=_context,this._docInterceptorService=_docInterceptorService,this._threadCommentPanelService=_threadCommentPanelService,this._docRenderController=_docRenderController,this._univerInstanceService=_univerInstanceService,this._threadCommentModel=_threadCommentModel,this._interceptorViewModel(),this._initReRender()}_initReRender(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(activeComment=>{var _a6;if(activeComment){this._docRenderController.reRender(activeComment.unitId);return}const unitId=(_a6=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC))==null?void 0:_a6.getUnitId();unitId&&this._docRenderController.reRender(unitId)})),this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe(update=>{update.type==="resolve"&&this._docRenderController.reRender(update.unitId)}))}_interceptorViewModel(){this._docInterceptorService.intercept(docs.DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION,{handler:__name((data,pos,next)=>{if(!data)return next(data);const{unitId,index,customDecorations}=pos,activeComment=this._threadCommentPanelService.activeCommentId,{commentId,unitId:commentUnitID}=activeComment||{},activeCustomDecoration=customDecorations.find(i=>i.id===commentId),comment=this._threadCommentModel.getComment(unitId,DEFAULT_DOC_SUBUNIT_ID,data.id);if(!comment)return next({...data,show:!1});const isActiveIndex=activeCustomDecoration&&index>=activeCustomDecoration.startIndex&&index<=activeCustomDecoration.endIndex,isActive=commentUnitID===unitId&&data.id===commentId;return next({...data,active:isActive||isActiveIndex,show:!comment.resolved})},"handler")})}},__name(_a4,"DocThreadCommentRenderController"),_a4);DocThreadCommentRenderController=__decorateClass$1([core.OnLifecycle(core.LifecycleStages.Starting,DocThreadCommentRenderController),__decorateParam$1(1,core.Inject(docs.DocInterceptorService)),__decorateParam$1(2,core.Inject(threadCommentUi.ThreadCommentPanelService)),__decorateParam$1(3,core.Inject(docsUi.DocRenderController)),__decorateParam$1(4,core.IUniverInstanceService),__decorateParam$1(5,core.Inject(threadComment.ThreadCommentModel))],DocThreadCommentRenderController);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,typeof key!="symbol"?key+"":key,value),"__publicField"),_a5;exports.UniverDocsThreadCommentUIPlugin=(_a5=class extends core.Plugin{constructor(_config={menu:{}},_injector,_renderManagerSrv){super(),this._config=_config,this._injector=_injector,this._renderManagerSrv=_renderManagerSrv}onStarting(){[[DocThreadCommentUIController,{useFactory:__name(()=>this._injector.createInstance(DocThreadCommentUIController,this._config),"useFactory")}],[DocThreadCommentSelectionController],[DocThreadCommentService]].forEach(dep=>{this._injector.add(dep)})}onRendered(){this._initRenderModule()}_initRenderModule(){[DocThreadCommentRenderController].forEach(dep=>{this._renderManagerSrv.registerRenderModule(core.UniverInstanceType.UNIVER_DOC,dep)})}},__name(_a5,"UniverDocsThreadCommentUIPlugin"),_a5);__publicField2(exports.UniverDocsThreadCommentUIPlugin,"pluginName",PLUGIN_NAME);__publicField2(exports.UniverDocsThreadCommentUIPlugin,"type",core.UniverInstanceType.UNIVER_DOC);exports.UniverDocsThreadCommentUIPlugin=__decorateClass([core.DependentOn(threadCommentUi.UniverThreadCommentUIPlugin),__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,engineRender.IRenderManagerService)],exports.UniverDocsThreadCommentUIPlugin);exports.AddDocCommentComment=AddDocCommentComment;exports.DeleteDocCommentComment=DeleteDocCommentComment;exports.ShowCommentPanelOperation=ShowCommentPanelOperation;exports.StartAddCommentOperation=StartAddCommentOperation;
package/lib/es/index.js CHANGED
@@ -1,505 +1,515 @@
1
- var Se = Object.defineProperty;
2
- var Oe = (e, t, n) => t in e ? Se(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
- var Z = (e, t, n) => Oe(e, typeof t != "symbol" ? t + "" : t, n);
4
- import { CommandType as x, ICommandService as b, CustomDecorationType as be, sequenceExecuteAsync as Me, Inject as h, Disposable as j, IUniverInstanceService as B, UniverInstanceType as g, UserManagerService as De, sequenceExecute as Re, useDependency as E, useObservable as K, OnLifecycle as G, LifecycleStages as X, Injector as te, DependentOn as Te, Plugin as xe } from "@univerjs/core";
5
- import { SetActiveCommentOperation as ne, ThreadCommentPanelService as M, getDT as Pe, ThreadCommentPanel as Ue, UniverThreadCommentUIPlugin as ye } from "@univerjs/thread-comment-ui";
6
- import { ITextSelectionRenderManager as Ee, IRenderManagerService as q, DocumentEditArea as Y } from "@univerjs/engine-render";
7
- import { ISidebarService as L, MenuGroup as re, MenuItemType as ie, MenuPosition as oe, getMenuHiddenObservable as se, ComponentManager as Ae, IMenuService as Ne } from "@univerjs/ui";
8
- import { addCustomDecorationBySelectionFactory as Ve, TextSelectionManagerService as F, getSelectionText as we, deleteCustomDecorationFactory as $e, RichTextEditingMutation as je, DocSkeletonManagerService as Be, SetTextSelectionsOperation as Le, DocInterceptorService as Fe, DOC_INTERCEPTOR_POINT as We } from "@univerjs/docs";
9
- import { IThreadCommentDataSourceService as He, AddCommentCommand as Ze, ThreadCommentModel as ce } from "@univerjs/thread-comment";
10
- import Ke, { forwardRef as de, useRef as ze, createElement as ae, useMemo as z, useState as Ge, useEffect as Xe } from "react";
11
- import { BehaviorSubject as qe, Observable as me, debounceTime as le } from "rxjs";
12
- import { DocBackScrollRenderController as Je, DocRenderController as Qe } from "@univerjs/docs-ui";
13
- const Ye = "DOC_THREAD_COMMENT_UI_PLUGIN", _ = "default_doc";
14
- var C = function() {
15
- return C = Object.assign || function(e) {
16
- for (var t, n = 1, r = arguments.length; n < r; n++) {
17
- t = arguments[n];
18
- for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
3
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
+ import { CommandType, ICommandService, CustomDecorationType, sequenceExecuteAsync, Inject, Disposable, IUniverInstanceService, UniverInstanceType, UserManagerService, sequenceExecute, useDependency, Injector, useObservable, OnLifecycle, LifecycleStages, DependentOn, Plugin } from "@univerjs/core";
6
+ import { SetActiveCommentOperation, ThreadCommentPanelService, getDT, ThreadCommentPanel, UniverThreadCommentUIPlugin } from "@univerjs/thread-comment-ui";
7
+ import { ITextSelectionRenderManager, IRenderManagerService, DocumentEditArea } from "@univerjs/engine-render";
8
+ import { ISidebarService, MenuGroup, MenuItemType, MenuPosition, getMenuHiddenObservable, ComponentManager, IMenuService } from "@univerjs/ui";
9
+ import { addCustomDecorationBySelectionFactory, TextSelectionManagerService, getSelectionText, deleteCustomDecorationFactory, DocSkeletonManagerService, RichTextEditingMutation, SetTextSelectionsOperation, DocInterceptorService, DOC_INTERCEPTOR_POINT } from "@univerjs/docs";
10
+ import { IThreadCommentDataSourceService, AddCommentMutation, ThreadCommentModel } from "@univerjs/thread-comment";
11
+ import React, { forwardRef, useRef, createElement, useMemo, useState, useEffect } from "react";
12
+ import { BehaviorSubject, Observable, debounceTime } from "rxjs";
13
+ import { DocBackScrollRenderController, DocRenderController } from "@univerjs/docs-ui";
14
+ const PLUGIN_NAME = "DOC_THREAD_COMMENT_UI_PLUGIN", DEFAULT_DOC_SUBUNIT_ID = "default_doc";
15
+ var __assign = function() {
16
+ return __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && (t[p] = s[p]);
19
20
  }
20
- return e;
21
- }, C.apply(this, arguments);
22
- }, ke = function(e, t) {
23
- var n = {};
24
- for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);
25
- if (e != null && typeof Object.getOwnPropertySymbols == "function")
26
- for (var i = 0, r = Object.getOwnPropertySymbols(e); i < r.length; i++)
27
- t.indexOf(r[i]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[i]) && (n[r[i]] = e[r[i]]);
28
- return n;
29
- }, ue = de(function(e, t) {
30
- var n = e.icon, r = e.id, i = e.className, o = e.extend, s = ke(e, ["icon", "id", "className", "extend"]), d = "univerjs-icon univerjs-icon-".concat(r, " ").concat(i || "").trim(), l = ze("_".concat(nt()));
31
- return fe(n, "".concat(r), { defIds: n.defIds, idSuffix: l.current }, C({ ref: t, className: d }, s), o);
21
+ return t;
22
+ }, __assign.apply(this, arguments);
23
+ }, __rest = function(s, e) {
24
+ var t = {};
25
+ for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
26
+ if (s != null && typeof Object.getOwnPropertySymbols == "function")
27
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)
28
+ e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
29
+ return t;
30
+ }, IconBase = forwardRef(function(props, ref) {
31
+ 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 = useRef("_".concat(generateShortUuid()));
32
+ return render(icon, "".concat(id), { defIds: icon.defIds, idSuffix: idSuffix.current }, __assign({ ref, className: cls }, restProps), extend);
32
33
  });
33
- function fe(e, t, n, r, i) {
34
- return ae(e.tag, C(C({ key: t }, et(e, n, i)), r), (tt(e, n).children || []).map(function(o, s) {
35
- return fe(o, "".concat(t, "-").concat(e.tag, "-").concat(s), n, void 0, i);
34
+ function render(node, id, runtimeProps, rootProps, extend) {
35
+ return createElement(node.tag, __assign(__assign({ key: id }, replaceRuntimeIdsAndExtInAttrs(node, runtimeProps, extend)), rootProps), (replaceRuntimeIdsInDefs(node, runtimeProps).children || []).map(function(child, index) {
36
+ return render(child, "".concat(id, "-").concat(node.tag, "-").concat(index), runtimeProps, void 0, extend);
36
37
  }));
37
38
  }
38
- function et(e, t, n) {
39
- var r = C({}, e.attrs);
40
- n != null && n.colorChannel1 && r.fill === "colorChannel1" && (r.fill = n.colorChannel1);
41
- var i = t.defIds;
42
- return !i || i.length === 0 || (e.tag === "use" && r["xlink:href"] && (r["xlink:href"] = r["xlink:href"] + t.idSuffix), Object.entries(r).forEach(function(o) {
43
- var s = o[0], d = o[1];
44
- typeof d == "string" && (r[s] = d.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
45
- })), r;
39
+ __name(render, "render");
40
+ function replaceRuntimeIdsAndExtInAttrs(node, runtimeProps, extend) {
41
+ var attrs = __assign({}, node.attrs);
42
+ extend != null && extend.colorChannel1 && attrs.fill === "colorChannel1" && (attrs.fill = extend.colorChannel1);
43
+ var defIds = runtimeProps.defIds;
44
+ return !defIds || defIds.length === 0 || (node.tag === "use" && attrs["xlink:href"] && (attrs["xlink:href"] = attrs["xlink:href"] + runtimeProps.idSuffix), Object.entries(attrs).forEach(function(_a6) {
45
+ var key = _a6[0], value = _a6[1];
46
+ typeof value == "string" && (attrs[key] = value.replace(/url\(#(.*)\)/, "url(#$1".concat(runtimeProps.idSuffix, ")")));
47
+ })), attrs;
46
48
  }
47
- function tt(e, t) {
48
- var n, r = t.defIds;
49
- return !r || r.length === 0 ? e : e.tag === "defs" && (!((n = e.children) === null || n === void 0) && n.length) ? C(C({}, e), { children: e.children.map(function(i) {
50
- return typeof i.attrs.id == "string" && r && r.indexOf(i.attrs.id) > -1 ? C(C({}, i), { attrs: C(C({}, i.attrs), { id: i.attrs.id + t.idSuffix }) }) : i;
51
- }) }) : e;
49
+ __name(replaceRuntimeIdsAndExtInAttrs, "replaceRuntimeIdsAndExtInAttrs");
50
+ function replaceRuntimeIdsInDefs(node, runtimeProps) {
51
+ var _a6, defIds = runtimeProps.defIds;
52
+ return !defIds || defIds.length === 0 ? node : node.tag === "defs" && (!((_a6 = node.children) === null || _a6 === void 0) && _a6.length) ? __assign(__assign({}, node), { children: node.children.map(function(child) {
53
+ 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;
54
+ }) }) : node;
52
55
  }
53
- function nt() {
56
+ __name(replaceRuntimeIdsInDefs, "replaceRuntimeIdsInDefs");
57
+ function generateShortUuid() {
54
58
  return Math.random().toString(36).substring(2, 8);
55
59
  }
56
- ue.displayName = "UniverIcon";
57
- var rt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 17", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521C5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345ZM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521C8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345ZM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521C11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345Z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521 5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345zM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521 8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345zM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521 11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345z" } }, { tag: "path", attrs: { fill: "currentColor", d: "M1.84351 3.41861C1.84351 3.01861 2.15531 2.69434 2.53993 2.69434H14.9381C15.3228 2.69434 15.6346 3.01861 15.6346 3.41861V12.4611C15.6346 12.8612 15.3228 13.1854 14.9381 13.1854H8.82117L6.06643 14.6179C5.85054 14.7301 5.59416 14.7181 5.38884 14.5862C5.18352 14.4542 5.05855 14.2211 5.05855 13.9701V13.1854H2.53993C2.15531 13.1854 1.84351 12.8612 1.84351 12.4611L1.84351 3.41861ZM6.45141 12.7982L8.34531 12.0135C8.44201 11.9632 8.54864 11.9371 8.65676 11.9371H14.2417C14.3522 11.9371 14.4417 11.8475 14.4417 11.7371V4.14271C14.4417 4.03225 14.3522 3.94271 14.2417 3.94271H3.23636C3.12591 3.94271 3.03636 4.03225 3.03636 4.14271L3.03636 11.7371C3.03636 11.8475 3.12591 11.9371 3.23636 11.9371L5.75498 11.9371C6.1396 11.9371 6.45141 12.0611 6.45141 12.4611V12.7982Z", fillRule: "evenodd", clipRule: "evenodd" } }] }, Ce = de(function(e, t) {
58
- return ae(ue, Object.assign({}, e, {
60
+ __name(generateShortUuid, "generateShortUuid");
61
+ IconBase.displayName = "UniverIcon";
62
+ var element = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 17", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521C5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345ZM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521C8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345ZM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521C11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345Z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521 5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345zM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521 8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345zM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521 11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345z" } }, { tag: "path", attrs: { fill: "currentColor", d: "M1.84351 3.41861C1.84351 3.01861 2.15531 2.69434 2.53993 2.69434H14.9381C15.3228 2.69434 15.6346 3.01861 15.6346 3.41861V12.4611C15.6346 12.8612 15.3228 13.1854 14.9381 13.1854H8.82117L6.06643 14.6179C5.85054 14.7301 5.59416 14.7181 5.38884 14.5862C5.18352 14.4542 5.05855 14.2211 5.05855 13.9701V13.1854H2.53993C2.15531 13.1854 1.84351 12.8612 1.84351 12.4611L1.84351 3.41861ZM6.45141 12.7982L8.34531 12.0135C8.44201 11.9632 8.54864 11.9371 8.65676 11.9371H14.2417C14.3522 11.9371 14.4417 11.8475 14.4417 11.7371V4.14271C14.4417 4.03225 14.3522 3.94271 14.2417 3.94271H3.23636C3.12591 3.94271 3.03636 4.03225 3.03636 4.14271L3.03636 11.7371C3.03636 11.8475 3.12591 11.9371 3.23636 11.9371L5.75498 11.9371C6.1396 11.9371 6.45141 12.0611 6.45141 12.4611V12.7982Z", fillRule: "evenodd", clipRule: "evenodd" } }] }, CommentSingle = forwardRef(function(props, ref) {
63
+ return createElement(IconBase, Object.assign({}, props, {
59
64
  id: "comment-single",
60
- ref: t,
61
- icon: rt
65
+ ref,
66
+ icon: element
62
67
  }));
63
68
  });
64
- Ce.displayName = "CommentSingle";
65
- const he = {
69
+ CommentSingle.displayName = "CommentSingle";
70
+ const AddDocCommentComment = {
66
71
  id: "docs.command.add-comment",
67
- type: x.COMMAND,
68
- async handler(e, t) {
69
- if (!t)
72
+ type: CommandType.COMMAND,
73
+ async handler(accessor, params) {
74
+ if (!params)
70
75
  return !1;
71
- const { comment: n, unitId: r } = t, o = await e.get(He).addComment(n), s = e.get(b), d = Ve(
72
- e,
76
+ const { comment: originComment, unitId } = params, comment = await accessor.get(IThreadCommentDataSourceService).addComment(originComment), commandService = accessor.get(ICommandService), doMutation = addCustomDecorationBySelectionFactory(
77
+ accessor,
73
78
  {
74
- id: o.id,
75
- type: be.COMMENT
79
+ id: comment.id,
80
+ type: CustomDecorationType.COMMENT
76
81
  }
77
82
  );
78
- if (d) {
79
- const l = {
80
- id: Ze.id,
83
+ if (doMutation) {
84
+ const addComment = {
85
+ id: AddCommentMutation.id,
81
86
  params: {
82
- unitId: r,
83
- subUnitId: _,
84
- comment: o
87
+ unitId,
88
+ subUnitId: DEFAULT_DOC_SUBUNIT_ID,
89
+ comment
85
90
  }
86
- }, u = {
87
- id: ne.id,
91
+ }, activeOperation = {
92
+ id: SetActiveCommentOperation.id,
88
93
  params: {
89
- unitId: r,
90
- subUnitId: _,
91
- commentId: o.id
94
+ unitId,
95
+ subUnitId: DEFAULT_DOC_SUBUNIT_ID,
96
+ commentId: comment.id
92
97
  }
93
98
  };
94
- return (await Me([l, d, u], s)).result;
99
+ return (await sequenceExecuteAsync([addComment, doMutation, activeOperation], commandService)).result;
95
100
  }
96
101
  return !1;
97
102
  }
98
103
  };
99
- var it = Object.defineProperty, ot = Object.getOwnPropertyDescriptor, st = (e, t, n, r) => {
100
- for (var i = r > 1 ? void 0 : r ? ot(t, n) : t, o = e.length - 1, s; o >= 0; o--)
101
- (s = e[o]) && (i = (r ? s(t, n, i) : s(i)) || i);
102
- return r && i && it(t, n, i), i;
103
- }, k = (e, t) => (n, r) => t(n, r, e);
104
- let O = class extends j {
105
- constructor(t, n) {
104
+ var __defProp$4 = Object.defineProperty, __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor, __decorateClass$4 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
105
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
106
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
107
+ return kind && result && __defProp$4(target, key, result), result;
108
+ }, "__decorateClass$4"), __decorateParam$4 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$4"), _a;
109
+ let DocThreadCommentService = (_a = class extends Disposable {
110
+ constructor(_sidebarService, _threadCommentPanelService) {
106
111
  super();
107
- Z(this, "_addingComment$", new qe(void 0));
108
- Z(this, "addingComment$", this._addingComment$.asObservable());
109
- this._sidebarService = t, this._threadCommentPanelService = n, this.disposeWithMe(() => {
112
+ __publicField(this, "_addingComment$", new BehaviorSubject(void 0));
113
+ __publicField(this, "addingComment$", this._addingComment$.asObservable());
114
+ this._sidebarService = _sidebarService, this._threadCommentPanelService = _threadCommentPanelService, this.disposeWithMe(() => {
110
115
  this._addingComment$.complete();
111
116
  });
112
117
  }
113
118
  get addingComment() {
114
119
  return this._addingComment$.getValue();
115
120
  }
116
- startAdd(t) {
117
- this._addingComment$.next(t);
121
+ startAdd(comment) {
122
+ this._addingComment$.next(comment);
118
123
  }
119
124
  endAdd() {
120
125
  this._addingComment$.next(void 0);
121
126
  }
122
- };
123
- O = st([
124
- k(0, L),
125
- k(1, h(M))
126
- ], O);
127
- const w = {
127
+ }, __name(_a, "DocThreadCommentService"), _a);
128
+ DocThreadCommentService = __decorateClass$4([
129
+ __decorateParam$4(0, ISidebarService),
130
+ __decorateParam$4(1, Inject(ThreadCommentPanelService))
131
+ ], DocThreadCommentService);
132
+ const ShowCommentPanelOperation = {
128
133
  id: "docs.operation.show-comment-panel",
129
- type: x.OPERATION,
130
- handler(e, t) {
131
- const n = e.get(M), r = e.get(L);
132
- return n.panelVisible || (r.open({
134
+ type: CommandType.OPERATION,
135
+ handler(accessor, params) {
136
+ const panelService = accessor.get(ThreadCommentPanelService), sidebarService = accessor.get(ISidebarService);
137
+ return panelService.panelVisible || (sidebarService.open({
133
138
  header: { title: "threadCommentUI.panel.title" },
134
- children: { label: W.componentKey },
139
+ children: { label: DocThreadCommentPanel.componentKey },
135
140
  width: 320,
136
- onClose: () => n.setPanelVisible(!1)
137
- }), n.setPanelVisible(!0)), t && n.setActiveComment(t == null ? void 0 : t.activeComment), !0;
141
+ onClose: /* @__PURE__ */ __name(() => panelService.setPanelVisible(!1), "onClose")
142
+ }), panelService.setPanelVisible(!0)), params && panelService.setActiveComment(params == null ? void 0 : params.activeComment), !0;
138
143
  }
139
- }, ve = {
144
+ }, ToggleCommentPanelOperation = {
140
145
  id: "docs.operation.toggle-comment-panel",
141
- type: x.OPERATION,
142
- handler(e) {
143
- const t = e.get(M), n = e.get(L);
144
- return t.panelVisible ? (n.close(), t.setPanelVisible(!1), t.setActiveComment(null)) : (n.open({
146
+ type: CommandType.OPERATION,
147
+ handler(accessor) {
148
+ var _a6;
149
+ const panelService = accessor.get(ThreadCommentPanelService), sidebarService = accessor.get(ISidebarService);
150
+ return !panelService.panelVisible || ((_a6 = sidebarService.options.children) == null ? void 0 : _a6.label) !== DocThreadCommentPanel.componentKey ? (sidebarService.open({
145
151
  header: { title: "threadCommentUI.panel.title" },
146
- children: { label: W.componentKey },
152
+ children: { label: DocThreadCommentPanel.componentKey },
147
153
  width: 320,
148
- onClose: () => t.setPanelVisible(!1)
149
- }), t.setPanelVisible(!0)), !0;
154
+ onClose: /* @__PURE__ */ __name(() => panelService.setPanelVisible(!1), "onClose")
155
+ }), panelService.setPanelVisible(!0)) : (sidebarService.close(), panelService.setPanelVisible(!1), panelService.setActiveComment(null)), !0;
150
156
  }
151
- }, J = {
157
+ }, StartAddCommentOperation = {
152
158
  id: "docs.operation.start-add-comment",
153
- type: x.OPERATION,
154
- handler(e) {
155
- var P, D;
156
- const t = e.get(M), r = e.get(B).getCurrentUnitForType(g.UNIVER_DOC), i = e.get(F), o = e.get(Ee), s = e.get(De), d = e.get(O), l = e.get(b), u = e.get(L), c = i.getActiveRange();
157
- if (!r || !c)
159
+ type: CommandType.OPERATION,
160
+ handler(accessor) {
161
+ var _a6, _b;
162
+ const panelService = accessor.get(ThreadCommentPanelService), doc = accessor.get(IUniverInstanceService).getCurrentUnitForType(UniverInstanceType.UNIVER_DOC), textSelectionManagerService = accessor.get(TextSelectionManagerService), textSelectionRenderService = accessor.get(ITextSelectionRenderManager), userManagerService = accessor.get(UserManagerService), docCommentService = accessor.get(DocThreadCommentService), commandService = accessor.get(ICommandService), sidebarService = accessor.get(ISidebarService), textRange = textSelectionManagerService.getActiveTextRangeWithStyle();
163
+ if (!doc || !textRange)
158
164
  return !1;
159
- if (c.collapsed)
160
- return t.panelVisible ? (t.setPanelVisible(!1), u.close()) : l.executeCommand(w.id), !0;
161
- t.panelVisible || l.executeCommand(w.id);
162
- const f = r.getUnitId(), p = we((D = (P = r.getBody()) == null ? void 0 : P.dataStream) != null ? D : "", c.startOffset, c.endOffset), v = _, a = "", m = {
163
- unitId: f,
164
- subUnitId: v,
165
- id: a,
166
- ref: p,
167
- dT: Pe(),
168
- personId: s.getCurrentUser().userID,
165
+ if (textRange.collapsed)
166
+ return panelService.panelVisible ? (panelService.setPanelVisible(!1), sidebarService.close()) : commandService.executeCommand(ShowCommentPanelOperation.id), !0;
167
+ panelService.panelVisible || commandService.executeCommand(ShowCommentPanelOperation.id);
168
+ const unitId = doc.getUnitId(), text = getSelectionText((_b = (_a6 = doc.getBody()) == null ? void 0 : _a6.dataStream) != null ? _b : "", textRange.startOffset, textRange.endOffset), subUnitId = DEFAULT_DOC_SUBUNIT_ID, commentId = "", comment = {
169
+ unitId,
170
+ subUnitId,
171
+ id: commentId,
172
+ ref: text,
173
+ dT: getDT(),
174
+ personId: userManagerService.getCurrentUser().userID,
169
175
  text: {
170
176
  dataStream: `\r
171
177
  `
172
178
  },
173
- startOffset: c.startOffset,
174
- endOffset: c.endOffset,
179
+ startOffset: textRange.startOffset,
180
+ endOffset: textRange.endOffset,
175
181
  collapsed: !0,
176
- threadId: a
182
+ threadId: commentId
177
183
  };
178
- return o.blurEditor(), d.startAdd(m), t.setActiveComment({
179
- unitId: f,
180
- subUnitId: v,
181
- commentId: a
184
+ return textSelectionRenderService.blurEditor(), docCommentService.startAdd(comment), panelService.setActiveComment({
185
+ unitId,
186
+ subUnitId,
187
+ commentId
182
188
  }), !0;
183
189
  }
184
- }, ge = {
190
+ }, DeleteDocCommentComment = {
185
191
  id: "docs.command.delete-comment",
186
- type: x.COMMAND,
187
- async handler(e, t) {
188
- if (!t)
192
+ type: CommandType.COMMAND,
193
+ async handler(accessor, params) {
194
+ if (!params)
189
195
  return !1;
190
- const { commentId: n, unitId: r } = t, i = e.get(b), o = $e(e, {
191
- id: n,
192
- unitId: r
196
+ const { commentId, unitId } = params, commandService = accessor.get(ICommandService), doMutation = deleteCustomDecorationFactory(accessor, {
197
+ id: commentId,
198
+ unitId
193
199
  });
194
- return o ? (await Re([o], i)).result : !1;
200
+ return doMutation ? (await sequenceExecute([doMutation], commandService)).result : !1;
195
201
  }
196
- }, W = () => {
197
- const e = E(B), t = z(() => e.getCurrentTypeOfUnit$(g.UNIVER_DOC), [e]), n = K(t), r = z(() => new me((a) => a.next(_)), []), i = E(F), o = z(
198
- () => i.textSelection$.pipe(le(16)),
199
- [i.textSelection$]
200
- );
201
- K(o);
202
- const s = E(b), d = E(O), l = K(d.addingComment$), [u, c] = Ge([]);
203
- if (Xe(() => {
204
- var D;
205
- const a = /* @__PURE__ */ new Set(), m = n == null ? void 0 : n.getCustomDecorations();
206
- c((D = m == null ? void 0 : m.map((I) => I.id).filter((I) => {
207
- const U = a.has(I);
208
- return a.add(I), !U;
209
- })) != null ? D : []);
210
- const P = s.onCommandExecuted((I) => {
211
- var U;
212
- if (I.id === je.id) {
213
- const Q = /* @__PURE__ */ new Set(), H = n == null ? void 0 : n.getCustomDecorations();
214
- c((U = H == null ? void 0 : H.map((y) => y.id).filter((y) => {
215
- const Ie = Q.has(y);
216
- return Q.add(y), !Ie;
217
- })) != null ? U : []);
218
- }
219
- });
220
- return () => {
221
- P.dispose();
222
- };
223
- }, [s, n]), !n)
224
- return null;
225
- const f = i.getActiveRange(), p = !!(f && (f.endOffset === f.startOffset || f.segmentId)), v = n.getUnitId();
226
- return /* @__PURE__ */ Ke.createElement(
227
- Ue,
228
- {
229
- unitId: v,
230
- subUnitId$: r,
231
- type: g.UNIVER_DOC,
232
- onAdd: () => {
233
- s.executeCommand(J.id);
234
- },
235
- getSubUnitName: () => "",
236
- disableAdd: p,
237
- tempComment: l,
238
- onAddComment: (a) => {
239
- if (!a.parentId) {
240
- const m = {
241
- unitId: v,
242
- range: l,
243
- comment: a
244
- };
245
- return s.executeCommand(he.id, m), d.endAdd(), !1;
246
- }
247
- return !0;
248
- },
249
- onDeleteComment: (a) => {
250
- if (!a.parentId) {
251
- const m = {
252
- unitId: v,
253
- commentId: a.id
254
- };
255
- return s.executeCommand(ge.id, m), !1;
256
- }
257
- return !0;
258
- },
259
- showComments: u
260
- }
261
- );
262
- };
263
- W.componentKey = "univer.doc.thread-comment-panel";
264
- const ct = (e) => {
265
- const t = e.get(q), n = e.get(F), r = t.getCurrent(), i = r == null ? void 0 : r.with(Be).getSkeleton(), o = i == null ? void 0 : i.getViewModel().getEditArea();
266
- if (o === Y.FOOTER || o === Y.HEADER)
202
+ }, shouldDisableAddComment = /* @__PURE__ */ __name((accessor) => {
203
+ const renderManagerService = accessor.get(IRenderManagerService), textSelectionManagerService = accessor.get(TextSelectionManagerService), render2 = renderManagerService.getCurrent(), skeleton = render2 == null ? void 0 : render2.with(DocSkeletonManagerService).getSkeleton(), editArea = skeleton == null ? void 0 : skeleton.getViewModel().getEditArea();
204
+ if (editArea === DocumentEditArea.FOOTER || editArea === DocumentEditArea.HEADER)
267
205
  return !0;
268
- const s = n.getActiveRange();
269
- return !!(!s || s.collapsed);
270
- };
271
- function dt(e) {
206
+ const range = textSelectionManagerService.getActiveTextRangeWithStyle();
207
+ return !!(range == null || range.collapsed);
208
+ }, "shouldDisableAddComment");
209
+ function AddDocCommentMenuItemFactory(accessor) {
272
210
  return {
273
- id: J.id,
274
- group: re.CONTEXT_MENU_DATA,
275
- type: ie.BUTTON,
211
+ id: StartAddCommentOperation.id,
212
+ group: MenuGroup.CONTEXT_MENU_DATA,
213
+ type: MenuItemType.BUTTON,
276
214
  icon: "CommentSingle",
277
215
  title: "threadCommentUI.panel.addComment",
278
216
  tooltip: "threadCommentUI.panel.addComment",
279
- positions: [oe.CONTEXT_MENU],
280
- hidden$: se(e, g.UNIVER_DOC),
281
- disabled$: new me(function(t) {
282
- const r = e.get(F).textSelection$.pipe(le(16)).subscribe(() => {
283
- t.next(ct(e));
217
+ positions: [MenuPosition.CONTEXT_MENU],
218
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC),
219
+ disabled$: new Observable(function(subscribe) {
220
+ const observer = accessor.get(TextSelectionManagerService).textSelection$.pipe(debounceTime(16)).subscribe(() => {
221
+ subscribe.next(shouldDisableAddComment(accessor));
284
222
  });
285
223
  return () => {
286
- r.unsubscribe();
224
+ observer.unsubscribe();
287
225
  };
288
226
  })
289
227
  };
290
228
  }
291
- function at(e) {
229
+ __name(AddDocCommentMenuItemFactory, "AddDocCommentMenuItemFactory");
230
+ function ToolbarDocCommentMenuItemFactory(accessor) {
292
231
  return {
293
- id: ve.id,
294
- group: re.CONTEXT_MENU_DATA,
295
- type: ie.BUTTON,
232
+ id: ToggleCommentPanelOperation.id,
233
+ group: MenuGroup.CONTEXT_MENU_DATA,
234
+ type: MenuItemType.BUTTON,
296
235
  icon: "CommentSingle",
297
236
  title: "threadCommentUI.panel.addComment",
298
237
  tooltip: "threadCommentUI.panel.addComment",
299
- positions: [oe.TOOLBAR_START],
300
- hidden$: se(e, g.UNIVER_DOC)
238
+ positions: [MenuPosition.TOOLBAR_START],
239
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
301
240
  };
302
241
  }
303
- var mt = Object.defineProperty, lt = Object.getOwnPropertyDescriptor, ut = (e, t, n, r) => {
304
- for (var i = r > 1 ? void 0 : r ? lt(t, n) : t, o = e.length - 1, s; o >= 0; o--)
305
- (s = e[o]) && (i = (r ? s(t, n, i) : s(i)) || i);
306
- return r && i && mt(t, n, i), i;
307
- }, A = (e, t) => (n, r) => t(n, r, e);
308
- let T = class extends j {
309
- constructor(e, t, n, r, i) {
310
- super(), this._config = e, this._commandService = t, this._menuService = n, this._injector = r, this._componentManager = i, this._initCommands(), this._initMenus(), this._initComponents();
242
+ __name(ToolbarDocCommentMenuItemFactory, "ToolbarDocCommentMenuItemFactory");
243
+ const DocThreadCommentPanel = /* @__PURE__ */ __name(() => {
244
+ const univerInstanceService = useDependency(IUniverInstanceService), injector = useDependency(Injector), doc$ = useMemo(() => univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_DOC), [univerInstanceService]), doc = useObservable(doc$), subUnitId$ = useMemo(() => new Observable((sub) => sub.next(DEFAULT_DOC_SUBUNIT_ID)), []), textSelectionManagerService = useDependency(TextSelectionManagerService), selectionChange$ = useMemo(
245
+ () => textSelectionManagerService.textSelection$.pipe(debounceTime(16)),
246
+ [textSelectionManagerService.textSelection$]
247
+ );
248
+ useObservable(selectionChange$);
249
+ const commandService = useDependency(ICommandService), docCommentService = useDependency(DocThreadCommentService), tempComment = useObservable(docCommentService.addingComment$), [commentIds, setCommentIds] = useState([]);
250
+ if (useEffect(() => {
251
+ var _a6;
252
+ const set = /* @__PURE__ */ new Set(), customRanges = doc == null ? void 0 : doc.getCustomDecorations();
253
+ setCommentIds((_a6 = customRanges == null ? void 0 : customRanges.map((r) => r.id).filter((i) => {
254
+ const hasRepeat = set.has(i);
255
+ return set.add(i), !hasRepeat;
256
+ })) != null ? _a6 : []);
257
+ const dispose = commandService.onCommandExecuted((command) => {
258
+ var _a7;
259
+ if (command.id === RichTextEditingMutation.id) {
260
+ const set2 = /* @__PURE__ */ new Set(), customRanges2 = doc == null ? void 0 : doc.getCustomDecorations();
261
+ setCommentIds((_a7 = customRanges2 == null ? void 0 : customRanges2.map((r) => r.id).filter((i) => {
262
+ const hasRepeat = set2.has(i);
263
+ return set2.add(i), !hasRepeat;
264
+ })) != null ? _a7 : []);
265
+ }
266
+ });
267
+ return () => {
268
+ dispose.dispose();
269
+ };
270
+ }, [commandService, doc]), !doc)
271
+ return null;
272
+ const isInValidSelection = shouldDisableAddComment(injector), unitId = doc.getUnitId();
273
+ return /* @__PURE__ */ React.createElement(
274
+ ThreadCommentPanel,
275
+ {
276
+ unitId,
277
+ subUnitId$,
278
+ type: UniverInstanceType.UNIVER_DOC,
279
+ onAdd: /* @__PURE__ */ __name(() => {
280
+ commandService.executeCommand(StartAddCommentOperation.id);
281
+ }, "onAdd"),
282
+ getSubUnitName: /* @__PURE__ */ __name(() => "", "getSubUnitName"),
283
+ disableAdd: isInValidSelection,
284
+ tempComment,
285
+ onAddComment: /* @__PURE__ */ __name((comment) => {
286
+ if (!comment.parentId) {
287
+ const params = {
288
+ unitId,
289
+ range: tempComment,
290
+ comment
291
+ };
292
+ return commandService.executeCommand(AddDocCommentComment.id, params), docCommentService.endAdd(), !1;
293
+ }
294
+ return !0;
295
+ }, "onAddComment"),
296
+ onDeleteComment: /* @__PURE__ */ __name((comment) => {
297
+ if (!comment.parentId) {
298
+ const params = {
299
+ unitId,
300
+ commentId: comment.id
301
+ };
302
+ return commandService.executeCommand(DeleteDocCommentComment.id, params), !1;
303
+ }
304
+ return !0;
305
+ }, "onDeleteComment"),
306
+ showComments: commentIds
307
+ }
308
+ );
309
+ }, "DocThreadCommentPanel");
310
+ DocThreadCommentPanel.componentKey = "univer.doc.thread-comment-panel";
311
+ var __defProp$3 = Object.defineProperty, __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor, __decorateClass$3 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
312
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
313
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
314
+ return kind && result && __defProp$3(target, key, result), result;
315
+ }, "__decorateClass$3"), __decorateParam$3 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$3"), _a2;
316
+ let DocThreadCommentUIController = (_a2 = class extends Disposable {
317
+ constructor(_config, _commandService, _menuService, _injector, _componentManager) {
318
+ super(), this._config = _config, this._commandService = _commandService, this._menuService = _menuService, this._injector = _injector, this._componentManager = _componentManager, this._initCommands(), this._initMenus(), this._initComponents();
311
319
  }
312
320
  _initCommands() {
313
321
  [
314
- he,
315
- ge,
316
- w,
317
- J,
318
- ve
319
- ].forEach((e) => {
320
- this.disposeWithMe(this._commandService.registerCommand(e));
322
+ AddDocCommentComment,
323
+ DeleteDocCommentComment,
324
+ ShowCommentPanelOperation,
325
+ StartAddCommentOperation,
326
+ ToggleCommentPanelOperation
327
+ ].forEach((command) => {
328
+ this.disposeWithMe(this._commandService.registerCommand(command));
321
329
  });
322
330
  }
323
331
  _initMenus() {
324
332
  [
325
- dt,
326
- at
327
- ].forEach((e) => {
328
- this.disposeWithMe(this._menuService.addMenuItem(e(this._injector), this._config.menu));
333
+ AddDocCommentMenuItemFactory,
334
+ ToolbarDocCommentMenuItemFactory
335
+ ].forEach((menuFactory) => {
336
+ this.disposeWithMe(this._menuService.addMenuItem(menuFactory(this._injector), this._config.menu));
329
337
  });
330
338
  }
331
339
  _initComponents() {
332
- [W].forEach((e) => {
333
- this.disposeWithMe(this._componentManager.register(e.componentKey, e));
334
- }), this.disposeWithMe(this._componentManager.register("CommentSingle", Ce));
340
+ [DocThreadCommentPanel].forEach((comp) => {
341
+ this.disposeWithMe(this._componentManager.register(comp.componentKey, comp));
342
+ }), this.disposeWithMe(this._componentManager.register("CommentSingle", CommentSingle));
335
343
  }
336
- };
337
- T = ut([
338
- G(X.Rendered, T),
339
- A(1, b),
340
- A(2, Ne),
341
- A(3, h(te)),
342
- A(4, h(Ae))
343
- ], T);
344
- var ft = Object.defineProperty, Ct = Object.getOwnPropertyDescriptor, ht = (e, t, n, r) => {
345
- for (var i = r > 1 ? void 0 : r ? Ct(t, n) : t, o = e.length - 1, s; o >= 0; o--)
346
- (s = e[o]) && (i = (r ? s(t, n, i) : s(i)) || i);
347
- return r && i && ft(t, n, i), i;
348
- }, S = (e, t) => (n, r) => t(n, r, e);
349
- let N = class extends j {
350
- constructor(e, t, n, r, i, o) {
351
- super(), this._threadCommentPanelService = e, this._univerInstanceService = t, this._commandService = n, this._docThreadCommentService = r, this._renderManagerService = i, this._threadCommentModel = o, this._initSelectionChange(), this._initActiveCommandChange();
344
+ }, __name(_a2, "DocThreadCommentUIController"), _a2);
345
+ DocThreadCommentUIController = __decorateClass$3([
346
+ OnLifecycle(LifecycleStages.Rendered, DocThreadCommentUIController),
347
+ __decorateParam$3(1, ICommandService),
348
+ __decorateParam$3(2, IMenuService),
349
+ __decorateParam$3(3, Inject(Injector)),
350
+ __decorateParam$3(4, Inject(ComponentManager))
351
+ ], DocThreadCommentUIController);
352
+ var __defProp$2 = Object.defineProperty, __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor, __decorateClass$2 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
353
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
354
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
355
+ return kind && result && __defProp$2(target, key, result), result;
356
+ }, "__decorateClass$2"), __decorateParam$2 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$2"), _a3;
357
+ let DocThreadCommentSelectionController = (_a3 = class extends Disposable {
358
+ constructor(_threadCommentPanelService, _univerInstanceService, _commandService, _docThreadCommentService, _renderManagerService, _threadCommentModel) {
359
+ super(), this._threadCommentPanelService = _threadCommentPanelService, this._univerInstanceService = _univerInstanceService, this._commandService = _commandService, this._docThreadCommentService = _docThreadCommentService, this._renderManagerService = _renderManagerService, this._threadCommentModel = _threadCommentModel, this._initSelectionChange(), this._initActiveCommandChange();
352
360
  }
353
361
  _initSelectionChange() {
354
- let e;
362
+ let lastSelection;
355
363
  this.disposeWithMe(
356
- this._commandService.onCommandExecuted((t) => {
357
- var n, r, i, o;
358
- if (t.id === Le.id) {
359
- const s = t.params, { unitId: d, ranges: l } = s, u = this._univerInstanceService.getUnit(d, g.UNIVER_DOC), c = l[0];
360
- if ((e == null ? void 0 : e.startOffset) === (c == null ? void 0 : c.startOffset) && (e == null ? void 0 : e.endOffset) === (c == null ? void 0 : c.endOffset))
364
+ this._commandService.onCommandExecuted((commandInfo) => {
365
+ var _a6, _b, _c, _d;
366
+ if (commandInfo.id === SetTextSelectionsOperation.id) {
367
+ const params = commandInfo.params, { unitId, ranges } = params, doc = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_DOC), primary = ranges[0];
368
+ if ((lastSelection == null ? void 0 : lastSelection.startOffset) === (primary == null ? void 0 : primary.startOffset) && (lastSelection == null ? void 0 : lastSelection.endOffset) === (primary == null ? void 0 : primary.endOffset))
361
369
  return;
362
- if (e = c, c && u) {
363
- const { startOffset: f, endOffset: p, collapsed: v } = c;
364
- let a;
365
- if (v ? a = (r = (n = u.getBody()) == null ? void 0 : n.customDecorations) == null ? void 0 : r.find((m) => m.startIndex <= f && m.endIndex >= p - 1) : a = (o = (i = u.getBody()) == null ? void 0 : i.customDecorations) == null ? void 0 : o.find((m) => m.startIndex <= f && m.endIndex >= p - 1), a) {
366
- const m = this._threadCommentModel.getComment(d, _, a.id);
367
- m && !m.resolved && this._commandService.executeCommand(w.id, {
370
+ if (lastSelection = primary, primary && doc) {
371
+ const { startOffset, endOffset, collapsed } = primary;
372
+ let customRange;
373
+ if (collapsed ? customRange = (_b = (_a6 = doc.getBody()) == null ? void 0 : _a6.customDecorations) == null ? void 0 : _b.find((value) => value.startIndex <= startOffset && value.endIndex >= endOffset - 1) : customRange = (_d = (_c = doc.getBody()) == null ? void 0 : _c.customDecorations) == null ? void 0 : _d.find((value) => value.startIndex <= startOffset && value.endIndex >= endOffset - 1), customRange) {
374
+ const comment = this._threadCommentModel.getComment(unitId, DEFAULT_DOC_SUBUNIT_ID, customRange.id);
375
+ comment && !comment.resolved && this._commandService.executeCommand(ShowCommentPanelOperation.id, {
368
376
  activeComment: {
369
- unitId: d,
370
- subUnitId: _,
371
- commentId: a.id
377
+ unitId,
378
+ subUnitId: DEFAULT_DOC_SUBUNIT_ID,
379
+ commentId: customRange.id
372
380
  }
373
381
  });
374
382
  return;
375
383
  }
376
384
  }
377
- this._commandService.executeCommand(ne.id);
385
+ if (!this._threadCommentPanelService.activeCommentId)
386
+ return;
387
+ this._commandService.executeCommand(SetActiveCommentOperation.id);
378
388
  }
379
389
  })
380
390
  );
381
391
  }
382
392
  _initActiveCommandChange() {
383
- this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe((e) => {
384
- var t, n, r;
385
- if (e) {
386
- const i = this._univerInstanceService.getUnit(e.unitId);
387
- if (i) {
388
- const o = (t = this._renderManagerService.getRenderById(e.unitId)) == null ? void 0 : t.with(Je), s = (n = i.getCustomRanges()) == null ? void 0 : n.find((d) => d.rangeId === e.commentId);
389
- s && o && o.scrollToRange(e.unitId, {
390
- startOffset: s.startIndex,
391
- endOffset: s.endIndex,
393
+ this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe((activeComment) => {
394
+ var _a6, _b, _c;
395
+ if (activeComment) {
396
+ const doc = this._univerInstanceService.getUnit(activeComment.unitId);
397
+ if (doc) {
398
+ const backScrollController = (_a6 = this._renderManagerService.getRenderById(activeComment.unitId)) == null ? void 0 : _a6.with(DocBackScrollRenderController), customRange = (_b = doc.getCustomRanges()) == null ? void 0 : _b.find((range) => range.rangeId === activeComment.commentId);
399
+ customRange && backScrollController && backScrollController.scrollToRange(activeComment.unitId, {
400
+ startOffset: customRange.startIndex,
401
+ endOffset: customRange.endIndex,
392
402
  collapsed: !1
393
403
  });
394
404
  }
395
405
  }
396
- (!e || e.commentId !== ((r = this._docThreadCommentService.addingComment) == null ? void 0 : r.id)) && this._docThreadCommentService.endAdd();
406
+ (!activeComment || activeComment.commentId !== ((_c = this._docThreadCommentService.addingComment) == null ? void 0 : _c.id)) && this._docThreadCommentService.endAdd();
397
407
  }));
398
408
  }
399
- };
400
- N = ht([
401
- G(X.Rendered, N),
402
- S(0, h(M)),
403
- S(1, B),
404
- S(2, b),
405
- S(3, h(O)),
406
- S(4, q),
407
- S(5, h(ce))
408
- ], N);
409
- var vt = Object.defineProperty, gt = Object.getOwnPropertyDescriptor, pt = (e, t, n, r) => {
410
- for (var i = r > 1 ? void 0 : r ? gt(t, n) : t, o = e.length - 1, s; o >= 0; o--)
411
- (s = e[o]) && (i = (r ? s(t, n, i) : s(i)) || i);
412
- return r && i && vt(t, n, i), i;
413
- }, R = (e, t) => (n, r) => t(n, r, e);
414
- let V = class extends j {
415
- constructor(e, t, n, r, i, o) {
416
- super(), this._context = e, this._docInterceptorService = t, this._threadCommentPanelService = n, this._docRenderController = r, this._univerInstanceService = i, this._threadCommentModel = o, this._interceptorViewModel(), this._initReRender();
409
+ }, __name(_a3, "DocThreadCommentSelectionController"), _a3);
410
+ DocThreadCommentSelectionController = __decorateClass$2([
411
+ OnLifecycle(LifecycleStages.Rendered, DocThreadCommentSelectionController),
412
+ __decorateParam$2(0, Inject(ThreadCommentPanelService)),
413
+ __decorateParam$2(1, IUniverInstanceService),
414
+ __decorateParam$2(2, ICommandService),
415
+ __decorateParam$2(3, Inject(DocThreadCommentService)),
416
+ __decorateParam$2(4, IRenderManagerService),
417
+ __decorateParam$2(5, Inject(ThreadCommentModel))
418
+ ], DocThreadCommentSelectionController);
419
+ var __defProp$1 = Object.defineProperty, __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor, __decorateClass$1 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
420
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
421
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
422
+ return kind && result && __defProp$1(target, key, result), result;
423
+ }, "__decorateClass$1"), __decorateParam$1 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$1"), _a4;
424
+ let DocThreadCommentRenderController = (_a4 = class extends Disposable {
425
+ constructor(_context, _docInterceptorService, _threadCommentPanelService, _docRenderController, _univerInstanceService, _threadCommentModel) {
426
+ super(), this._context = _context, this._docInterceptorService = _docInterceptorService, this._threadCommentPanelService = _threadCommentPanelService, this._docRenderController = _docRenderController, this._univerInstanceService = _univerInstanceService, this._threadCommentModel = _threadCommentModel, this._interceptorViewModel(), this._initReRender();
417
427
  }
418
428
  _initReRender() {
419
- this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe((e) => {
420
- var n;
421
- if (e) {
422
- this._docRenderController.reRender(e.unitId);
429
+ this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe((activeComment) => {
430
+ var _a6;
431
+ if (activeComment) {
432
+ this._docRenderController.reRender(activeComment.unitId);
423
433
  return;
424
434
  }
425
- const t = (n = this._univerInstanceService.getCurrentUnitForType(g.UNIVER_DOC)) == null ? void 0 : n.getUnitId();
426
- t && this._docRenderController.reRender(t);
427
- })), this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe((e) => {
428
- e.type === "resolve" && this._docRenderController.reRender(e.unitId);
435
+ const unitId = (_a6 = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_DOC)) == null ? void 0 : _a6.getUnitId();
436
+ unitId && this._docRenderController.reRender(unitId);
437
+ })), this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe((update) => {
438
+ update.type === "resolve" && this._docRenderController.reRender(update.unitId);
429
439
  }));
430
440
  }
431
441
  _interceptorViewModel() {
432
- this._docInterceptorService.intercept(We.CUSTOM_DECORATION, {
433
- handler: (e, t, n) => {
434
- if (!e)
435
- return n(e);
436
- const { unitId: r, index: i, customDecorations: o } = t, s = this._threadCommentPanelService.activeCommentId, { commentId: d, unitId: l } = s || {}, u = o.find((v) => v.id === d), c = this._threadCommentModel.getComment(r, _, e.id);
437
- if (!c)
438
- return n({
439
- ...e,
442
+ this._docInterceptorService.intercept(DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION, {
443
+ handler: /* @__PURE__ */ __name((data, pos, next) => {
444
+ if (!data)
445
+ return next(data);
446
+ const { unitId, index, customDecorations } = pos, activeComment = this._threadCommentPanelService.activeCommentId, { commentId, unitId: commentUnitID } = activeComment || {}, activeCustomDecoration = customDecorations.find((i) => i.id === commentId), comment = this._threadCommentModel.getComment(unitId, DEFAULT_DOC_SUBUNIT_ID, data.id);
447
+ if (!comment)
448
+ return next({
449
+ ...data,
440
450
  show: !1
441
451
  });
442
- const f = u && i >= u.startIndex && i <= u.endIndex, p = l === r && e.id === d;
443
- return n({
444
- ...e,
445
- active: p || f,
446
- show: !c.resolved
452
+ const isActiveIndex = activeCustomDecoration && index >= activeCustomDecoration.startIndex && index <= activeCustomDecoration.endIndex, isActive = commentUnitID === unitId && data.id === commentId;
453
+ return next({
454
+ ...data,
455
+ active: isActive || isActiveIndex,
456
+ show: !comment.resolved
447
457
  });
448
- }
458
+ }, "handler")
449
459
  });
450
460
  }
451
- };
452
- V = pt([
453
- G(X.Starting, V),
454
- R(1, h(Fe)),
455
- R(2, h(M)),
456
- R(3, h(Qe)),
457
- R(4, B),
458
- R(5, h(ce))
459
- ], V);
460
- var pe = Object.defineProperty, _t = Object.getOwnPropertyDescriptor, It = (e, t, n) => t in e ? pe(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, St = (e, t, n, r) => {
461
- for (var i = r > 1 ? void 0 : r ? _t(t, n) : t, o = e.length - 1, s; o >= 0; o--)
462
- (s = e[o]) && (i = (r ? s(t, n, i) : s(i)) || i);
463
- return r && i && pe(t, n, i), i;
464
- }, ee = (e, t) => (n, r) => t(n, r, e), _e = (e, t, n) => It(e, typeof t != "symbol" ? t + "" : t, n);
465
- let $ = class extends xe {
466
- constructor(e = { menu: {} }, t, n) {
467
- super(), this._config = e, this._injector = t, this._renderManagerSrv = n;
461
+ }, __name(_a4, "DocThreadCommentRenderController"), _a4);
462
+ DocThreadCommentRenderController = __decorateClass$1([
463
+ OnLifecycle(LifecycleStages.Starting, DocThreadCommentRenderController),
464
+ __decorateParam$1(1, Inject(DocInterceptorService)),
465
+ __decorateParam$1(2, Inject(ThreadCommentPanelService)),
466
+ __decorateParam$1(3, Inject(DocRenderController)),
467
+ __decorateParam$1(4, IUniverInstanceService),
468
+ __decorateParam$1(5, Inject(ThreadCommentModel))
469
+ ], DocThreadCommentRenderController);
470
+ var __defProp2 = Object.defineProperty, __getOwnPropDesc = Object.getOwnPropertyDescriptor, __defNormalProp2 = /* @__PURE__ */ __name((obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, "__defNormalProp"), __decorateClass = /* @__PURE__ */ __name((decorators, target, key, kind) => {
471
+ for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
472
+ (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
473
+ return kind && result && __defProp2(target, key, result), result;
474
+ }, "__decorateClass"), __decorateParam = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam"), __publicField2 = /* @__PURE__ */ __name((obj, key, value) => __defNormalProp2(obj, typeof key != "symbol" ? key + "" : key, value), "__publicField"), _a5;
475
+ let UniverDocsThreadCommentUIPlugin = (_a5 = class extends Plugin {
476
+ constructor(_config = { menu: {} }, _injector, _renderManagerSrv) {
477
+ super(), this._config = _config, this._injector = _injector, this._renderManagerSrv = _renderManagerSrv;
468
478
  }
469
- onStarting(e) {
479
+ onStarting() {
470
480
  [
471
481
  [
472
- T,
482
+ DocThreadCommentUIController,
473
483
  {
474
- useFactory: () => this._injector.createInstance(T, this._config)
484
+ useFactory: /* @__PURE__ */ __name(() => this._injector.createInstance(DocThreadCommentUIController, this._config), "useFactory")
475
485
  }
476
486
  ],
477
- [N],
478
- [O]
479
- ].forEach((t) => {
480
- e.add(t);
487
+ [DocThreadCommentSelectionController],
488
+ [DocThreadCommentService]
489
+ ].forEach((dep) => {
490
+ this._injector.add(dep);
481
491
  });
482
492
  }
483
493
  onRendered() {
484
494
  this._initRenderModule();
485
495
  }
486
496
  _initRenderModule() {
487
- [V].forEach((e) => {
488
- this._renderManagerSrv.registerRenderModule(g.UNIVER_DOC, e);
497
+ [DocThreadCommentRenderController].forEach((dep) => {
498
+ this._renderManagerSrv.registerRenderModule(UniverInstanceType.UNIVER_DOC, dep);
489
499
  });
490
500
  }
491
- };
492
- _e($, "pluginName", Ye);
493
- _e($, "type", g.UNIVER_DOC);
494
- $ = St([
495
- Te(ye),
496
- ee(1, h(te)),
497
- ee(2, q)
498
- ], $);
501
+ }, __name(_a5, "UniverDocsThreadCommentUIPlugin"), _a5);
502
+ __publicField2(UniverDocsThreadCommentUIPlugin, "pluginName", PLUGIN_NAME);
503
+ __publicField2(UniverDocsThreadCommentUIPlugin, "type", UniverInstanceType.UNIVER_DOC);
504
+ UniverDocsThreadCommentUIPlugin = __decorateClass([
505
+ DependentOn(UniverThreadCommentUIPlugin),
506
+ __decorateParam(1, Inject(Injector)),
507
+ __decorateParam(2, IRenderManagerService)
508
+ ], UniverDocsThreadCommentUIPlugin);
499
509
  export {
500
- he as AddDocCommentComment,
501
- ge as DeleteDocCommentComment,
502
- w as ShowCommentPanelOperation,
503
- J as StartAddCommentOperation,
504
- $ as UniverDocsThreadCommentUIPlugin
510
+ AddDocCommentComment,
511
+ DeleteDocCommentComment,
512
+ ShowCommentPanelOperation,
513
+ StartAddCommentOperation,
514
+ UniverDocsThreadCommentUIPlugin
505
515
  };
@@ -9,7 +9,7 @@ export declare class UniverDocsThreadCommentUIPlugin extends Plugin {
9
9
  static pluginName: string;
10
10
  static type: UniverInstanceType;
11
11
  constructor(_config: IDocThreadCommentUIConfig, _injector: Injector, _renderManagerSrv: IRenderManagerService);
12
- onStarting(injector: Injector): void;
12
+ onStarting(): void;
13
13
  onRendered(): void;
14
14
  private _initRenderModule;
15
15
  }
package/lib/umd/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(d,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@univerjs/core"),require("@univerjs/thread-comment-ui"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("@univerjs/docs"),require("@univerjs/thread-comment"),require("react"),require("rxjs"),require("@univerjs/docs-ui")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/thread-comment-ui","@univerjs/engine-render","@univerjs/ui","@univerjs/docs","@univerjs/thread-comment","react","rxjs","@univerjs/docs-ui"],o):(d=typeof globalThis<"u"?globalThis:d||self,o(d.UniverDocsThreadCommentUi={},d.UniverCore,d.UniverThreadCommentUi,d.UniverEngineRender,d.UniverUi,d.UniverDocs,d.UniverThreadComment,d.React,d.rxjs,d.UniverDocsUi))})(this,function(d,o,v,M,f,p,E,S,y,G){"use strict";var Ue=Object.defineProperty;var ye=(d,o,v)=>o in d?Ue(d,o,{enumerable:!0,configurable:!0,writable:!0,value:v}):d[o]=v;var Z=(d,o,v)=>ye(d,typeof o!="symbol"?o+"":o,v);const ne="DOC_THREAD_COMMENT_UI_PLUGIN",T="default_doc";var I=function(){return I=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++){t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},I.apply(this,arguments)},ie=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]]);return n},K=S.forwardRef(function(e,t){var n=e.icon,i=e.id,r=e.className,s=e.extend,a=ie(e,["icon","id","className","extend"]),m="univerjs-icon univerjs-icon-".concat(i," ").concat(r||"").trim(),C=S.useRef("_".concat(se()));return z(n,"".concat(i),{defIds:n.defIds,idSuffix:C.current},I({ref:t,className:m},a),s)});function z(e,t,n,i,r){return S.createElement(e.tag,I(I({key:t},re(e,n,r)),i),(oe(e,n).children||[]).map(function(s,a){return z(s,"".concat(t,"-").concat(e.tag,"-").concat(a),n,void 0,r)}))}function re(e,t,n){var i=I({},e.attrs);n!=null&&n.colorChannel1&&i.fill==="colorChannel1"&&(i.fill=n.colorChannel1);var r=t.defIds;return!r||r.length===0||(e.tag==="use"&&i["xlink:href"]&&(i["xlink:href"]=i["xlink:href"]+t.idSuffix),Object.entries(i).forEach(function(s){var a=s[0],m=s[1];typeof m=="string"&&(i[a]=m.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),i}function oe(e,t){var n,i=t.defIds;return!i||i.length===0?e:e.tag==="defs"&&(!((n=e.children)===null||n===void 0)&&n.length)?I(I({},e),{children:e.children.map(function(r){return typeof r.attrs.id=="string"&&i&&i.indexOf(r.attrs.id)>-1?I(I({},r),{attrs:I(I({},r.attrs),{id:r.attrs.id+t.idSuffix})}):r})}):e}function se(){return Math.random().toString(36).substring(2,8)}K.displayName="UniverIcon";var ae={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521C5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345ZM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521C8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345ZM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521C11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521 5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345zM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521 8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345zM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521 11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.84351 3.41861C1.84351 3.01861 2.15531 2.69434 2.53993 2.69434H14.9381C15.3228 2.69434 15.6346 3.01861 15.6346 3.41861V12.4611C15.6346 12.8612 15.3228 13.1854 14.9381 13.1854H8.82117L6.06643 14.6179C5.85054 14.7301 5.59416 14.7181 5.38884 14.5862C5.18352 14.4542 5.05855 14.2211 5.05855 13.9701V13.1854H2.53993C2.15531 13.1854 1.84351 12.8612 1.84351 12.4611L1.84351 3.41861ZM6.45141 12.7982L8.34531 12.0135C8.44201 11.9632 8.54864 11.9371 8.65676 11.9371H14.2417C14.3522 11.9371 14.4417 11.8475 14.4417 11.7371V4.14271C14.4417 4.03225 14.3522 3.94271 14.2417 3.94271H3.23636C3.12591 3.94271 3.03636 4.03225 3.03636 4.14271L3.03636 11.7371C3.03636 11.8475 3.12591 11.9371 3.23636 11.9371L5.75498 11.9371C6.1396 11.9371 6.45141 12.0611 6.45141 12.4611V12.7982Z",fillRule:"evenodd",clipRule:"evenodd"}}]},X=S.forwardRef(function(e,t){return S.createElement(K,Object.assign({},e,{id:"comment-single",ref:t,icon:ae}))});X.displayName="CommentSingle";const F={id:"docs.command.add-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{comment:n,unitId:i}=t,s=await e.get(E.IThreadCommentDataSourceService).addComment(n),a=e.get(o.ICommandService),m=p.addCustomDecorationBySelectionFactory(e,{id:s.id,type:o.CustomDecorationType.COMMENT});if(m){const C={id:E.AddCommentCommand.id,params:{unitId:i,subUnitId:T,comment:s}},h={id:v.SetActiveCommentOperation.id,params:{unitId:i,subUnitId:T,commentId:s.id}};return(await o.sequenceExecuteAsync([C,m,h],a)).result}return!1}};var de=Object.defineProperty,ce=Object.getOwnPropertyDescriptor,me=(e,t,n,i)=>{for(var r=i>1?void 0:i?ce(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(r=(i?a(t,n,r):a(r))||r);return i&&r&&de(t,n,r),r},J=(e,t)=>(n,i)=>t(n,i,e);let b=class extends o.Disposable{constructor(t,n){super();Z(this,"_addingComment$",new y.BehaviorSubject(void 0));Z(this,"addingComment$",this._addingComment$.asObservable());this._sidebarService=t,this._threadCommentPanelService=n,this.disposeWithMe(()=>{this._addingComment$.complete()})}get addingComment(){return this._addingComment$.getValue()}startAdd(t){this._addingComment$.next(t)}endAdd(){this._addingComment$.next(void 0)}};b=me([J(0,f.ISidebarService),J(1,o.Inject(v.ThreadCommentPanelService))],b);const P={id:"docs.operation.show-comment-panel",type:o.CommandType.OPERATION,handler(e,t){const n=e.get(v.ThreadCommentPanelService),i=e.get(f.ISidebarService);return n.panelVisible||(i.open({header:{title:"threadCommentUI.panel.title"},children:{label:w.componentKey},width:320,onClose:()=>n.setPanelVisible(!1)}),n.setPanelVisible(!0)),t&&n.setActiveComment(t==null?void 0:t.activeComment),!0}},Q={id:"docs.operation.toggle-comment-panel",type:o.CommandType.OPERATION,handler(e){const t=e.get(v.ThreadCommentPanelService),n=e.get(f.ISidebarService);return t.panelVisible?(n.close(),t.setPanelVisible(!1),t.setActiveComment(null)):(n.open({header:{title:"threadCommentUI.panel.title"},children:{label:w.componentKey},width:320,onClose:()=>t.setPanelVisible(!1)}),t.setPanelVisible(!0)),!0}},A={id:"docs.operation.start-add-comment",type:o.CommandType.OPERATION,handler(e){var L,j;const t=e.get(v.ThreadCommentPanelService),i=e.get(o.IUniverInstanceService).getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC),r=e.get(p.TextSelectionManagerService),s=e.get(M.ITextSelectionRenderManager),a=e.get(o.UserManagerService),m=e.get(b),C=e.get(o.ICommandService),h=e.get(f.ISidebarService),c=r.getActiveRange();if(!i||!c)return!1;if(c.collapsed)return t.panelVisible?(t.setPanelVisible(!1),h.close()):C.executeCommand(P.id),!0;t.panelVisible||C.executeCommand(P.id);const g=i.getUnitId(),O=p.getSelectionText((j=(L=i.getBody())==null?void 0:L.dataStream)!=null?j:"",c.startOffset,c.endOffset),_=T,l="",u={unitId:g,subUnitId:_,id:l,ref:O,dT:v.getDT(),personId:a.getCurrentUser().userID,text:{dataStream:`\r
2
- `},startOffset:c.startOffset,endOffset:c.endOffset,collapsed:!0,threadId:l};return s.blurEditor(),m.startAdd(u),t.setActiveComment({unitId:g,subUnitId:_,commentId:l}),!0}},H={id:"docs.command.delete-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{commentId:n,unitId:i}=t,r=e.get(o.ICommandService),s=p.deleteCustomDecorationFactory(e,{id:n,unitId:i});return s?(await o.sequenceExecute([s],r)).result:!1}},w=()=>{const e=o.useDependency(o.IUniverInstanceService),t=S.useMemo(()=>e.getCurrentTypeOfUnit$(o.UniverInstanceType.UNIVER_DOC),[e]),n=o.useObservable(t),i=S.useMemo(()=>new y.Observable(l=>l.next(T)),[]),r=o.useDependency(p.TextSelectionManagerService),s=S.useMemo(()=>r.textSelection$.pipe(y.debounceTime(16)),[r.textSelection$]);o.useObservable(s);const a=o.useDependency(o.ICommandService),m=o.useDependency(b),C=o.useObservable(m.addingComment$),[h,c]=S.useState([]);if(S.useEffect(()=>{var j;const l=new Set,u=n==null?void 0:n.getCustomDecorations();c((j=u==null?void 0:u.map(U=>U.id).filter(U=>{const B=l.has(U);return l.add(U),!B}))!=null?j:[]);const L=a.onCommandExecuted(U=>{var B;if(U.id===p.RichTextEditingMutation.id){const te=new Set,W=n==null?void 0:n.getCustomDecorations();c((B=W==null?void 0:W.map(q=>q.id).filter(q=>{const De=te.has(q);return te.add(q),!De}))!=null?B:[])}});return()=>{L.dispose()}},[a,n]),!n)return null;const g=r.getActiveRange(),O=!!(g&&(g.endOffset===g.startOffset||g.segmentId)),_=n.getUnitId();return S.createElement(v.ThreadCommentPanel,{unitId:_,subUnitId$:i,type:o.UniverInstanceType.UNIVER_DOC,onAdd:()=>{a.executeCommand(A.id)},getSubUnitName:()=>"",disableAdd:O,tempComment:C,onAddComment:l=>{if(!l.parentId){const u={unitId:_,range:C,comment:l};return a.executeCommand(F.id,u),m.endAdd(),!1}return!0},onDeleteComment:l=>{if(!l.parentId){const u={unitId:_,commentId:l.id};return a.executeCommand(H.id,u),!1}return!0},showComments:h})};w.componentKey="univer.doc.thread-comment-panel";const le=e=>{const t=e.get(M.IRenderManagerService),n=e.get(p.TextSelectionManagerService),i=t.getCurrent(),r=i==null?void 0:i.with(p.DocSkeletonManagerService).getSkeleton(),s=r==null?void 0:r.getViewModel().getEditArea();if(s===M.DocumentEditArea.FOOTER||s===M.DocumentEditArea.HEADER)return!0;const a=n.getActiveRange();return!!(!a||a.collapsed)};function ue(e){return{id:A.id,group:f.MenuGroup.CONTEXT_MENU_DATA,type:f.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",positions:[f.MenuPosition.CONTEXT_MENU],hidden$:f.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC),disabled$:new y.Observable(function(t){const i=e.get(p.TextSelectionManagerService).textSelection$.pipe(y.debounceTime(16)).subscribe(()=>{t.next(le(e))});return()=>{i.unsubscribe()}})}}function ve(e){return{id:Q.id,group:f.MenuGroup.CONTEXT_MENU_DATA,type:f.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",positions:[f.MenuPosition.TOOLBAR_START],hidden$:f.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC)}}var fe=Object.defineProperty,Ce=Object.getOwnPropertyDescriptor,he=(e,t,n,i)=>{for(var r=i>1?void 0:i?Ce(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(r=(i?a(t,n,r):a(r))||r);return i&&r&&fe(t,n,r),r},N=(e,t)=>(n,i)=>t(n,i,e);let x=class extends o.Disposable{constructor(e,t,n,i,r){super(),this._config=e,this._commandService=t,this._menuService=n,this._injector=i,this._componentManager=r,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[F,H,P,A,Q].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){[ue,ve].forEach(e=>{this.disposeWithMe(this._menuService.addMenuItem(e(this._injector),this._config.menu))})}_initComponents(){[w].forEach(e=>{this.disposeWithMe(this._componentManager.register(e.componentKey,e))}),this.disposeWithMe(this._componentManager.register("CommentSingle",X))}};x=he([o.OnLifecycle(o.LifecycleStages.Rendered,x),N(1,o.ICommandService),N(2,f.IMenuService),N(3,o.Inject(o.Injector)),N(4,o.Inject(f.ComponentManager))],x);var pe=Object.defineProperty,Ie=Object.getOwnPropertyDescriptor,ge=(e,t,n,i)=>{for(var r=i>1?void 0:i?Ie(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(r=(i?a(t,n,r):a(r))||r);return i&&r&&pe(t,n,r),r},D=(e,t)=>(n,i)=>t(n,i,e);let V=class extends o.Disposable{constructor(e,t,n,i,r,s){super(),this._threadCommentPanelService=e,this._univerInstanceService=t,this._commandService=n,this._docThreadCommentService=i,this._renderManagerService=r,this._threadCommentModel=s,this._initSelectionChange(),this._initActiveCommandChange()}_initSelectionChange(){let e;this.disposeWithMe(this._commandService.onCommandExecuted(t=>{var n,i,r,s;if(t.id===p.SetTextSelectionsOperation.id){const a=t.params,{unitId:m,ranges:C}=a,h=this._univerInstanceService.getUnit(m,o.UniverInstanceType.UNIVER_DOC),c=C[0];if((e==null?void 0:e.startOffset)===(c==null?void 0:c.startOffset)&&(e==null?void 0:e.endOffset)===(c==null?void 0:c.endOffset))return;if(e=c,c&&h){const{startOffset:g,endOffset:O,collapsed:_}=c;let l;if(_?l=(i=(n=h.getBody())==null?void 0:n.customDecorations)==null?void 0:i.find(u=>u.startIndex<=g&&u.endIndex>=O-1):l=(s=(r=h.getBody())==null?void 0:r.customDecorations)==null?void 0:s.find(u=>u.startIndex<=g&&u.endIndex>=O-1),l){const u=this._threadCommentModel.getComment(m,T,l.id);u&&!u.resolved&&this._commandService.executeCommand(P.id,{activeComment:{unitId:m,subUnitId:T,commentId:l.id}});return}}this._commandService.executeCommand(v.SetActiveCommentOperation.id)}}))}_initActiveCommandChange(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var t,n,i;if(e){const r=this._univerInstanceService.getUnit(e.unitId);if(r){const s=(t=this._renderManagerService.getRenderById(e.unitId))==null?void 0:t.with(G.DocBackScrollRenderController),a=(n=r.getCustomRanges())==null?void 0:n.find(m=>m.rangeId===e.commentId);a&&s&&s.scrollToRange(e.unitId,{startOffset:a.startIndex,endOffset:a.endIndex,collapsed:!1})}}(!e||e.commentId!==((i=this._docThreadCommentService.addingComment)==null?void 0:i.id))&&this._docThreadCommentService.endAdd()}))}};V=ge([o.OnLifecycle(o.LifecycleStages.Rendered,V),D(0,o.Inject(v.ThreadCommentPanelService)),D(1,o.IUniverInstanceService),D(2,o.ICommandService),D(3,o.Inject(b)),D(4,M.IRenderManagerService),D(5,o.Inject(E.ThreadCommentModel))],V);var Se=Object.defineProperty,_e=Object.getOwnPropertyDescriptor,Oe=(e,t,n,i)=>{for(var r=i>1?void 0:i?_e(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(r=(i?a(t,n,r):a(r))||r);return i&&r&&Se(t,n,r),r},R=(e,t)=>(n,i)=>t(n,i,e);let $=class extends o.Disposable{constructor(e,t,n,i,r,s){super(),this._context=e,this._docInterceptorService=t,this._threadCommentPanelService=n,this._docRenderController=i,this._univerInstanceService=r,this._threadCommentModel=s,this._interceptorViewModel(),this._initReRender()}_initReRender(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var n;if(e){this._docRenderController.reRender(e.unitId);return}const t=(n=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC))==null?void 0:n.getUnitId();t&&this._docRenderController.reRender(t)})),this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe(e=>{e.type==="resolve"&&this._docRenderController.reRender(e.unitId)}))}_interceptorViewModel(){this._docInterceptorService.intercept(p.DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION,{handler:(e,t,n)=>{if(!e)return n(e);const{unitId:i,index:r,customDecorations:s}=t,a=this._threadCommentPanelService.activeCommentId,{commentId:m,unitId:C}=a||{},h=s.find(_=>_.id===m),c=this._threadCommentModel.getComment(i,T,e.id);if(!c)return n({...e,show:!1});const g=h&&r>=h.startIndex&&r<=h.endIndex,O=C===i&&e.id===m;return n({...e,active:O||g,show:!c.resolved})}})}};$=Oe([o.OnLifecycle(o.LifecycleStages.Starting,$),R(1,o.Inject(p.DocInterceptorService)),R(2,o.Inject(v.ThreadCommentPanelService)),R(3,o.Inject(G.DocRenderController)),R(4,o.IUniverInstanceService),R(5,o.Inject(E.ThreadCommentModel))],$);var Y=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,Me=(e,t,n)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,be=(e,t,n,i)=>{for(var r=i>1?void 0:i?Te(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(r=(i?a(t,n,r):a(r))||r);return i&&r&&Y(t,n,r),r},k=(e,t)=>(n,i)=>t(n,i,e),ee=(e,t,n)=>Me(e,typeof t!="symbol"?t+"":t,n);d.UniverDocsThreadCommentUIPlugin=class extends o.Plugin{constructor(t={menu:{}},n,i){super(),this._config=t,this._injector=n,this._renderManagerSrv=i}onStarting(t){[[x,{useFactory:()=>this._injector.createInstance(x,this._config)}],[V],[b]].forEach(n=>{t.add(n)})}onRendered(){this._initRenderModule()}_initRenderModule(){[$].forEach(t=>{this._renderManagerSrv.registerRenderModule(o.UniverInstanceType.UNIVER_DOC,t)})}},ee(d.UniverDocsThreadCommentUIPlugin,"pluginName",ne),ee(d.UniverDocsThreadCommentUIPlugin,"type",o.UniverInstanceType.UNIVER_DOC),d.UniverDocsThreadCommentUIPlugin=be([o.DependentOn(v.UniverThreadCommentUIPlugin),k(1,o.Inject(o.Injector)),k(2,M.IRenderManagerService)],d.UniverDocsThreadCommentUIPlugin),d.AddDocCommentComment=F,d.DeleteDocCommentComment=H,d.ShowCommentPanelOperation=P,d.StartAddCommentOperation=A,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})});
1
+ (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("@univerjs/core"),require("@univerjs/thread-comment-ui"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("@univerjs/docs"),require("@univerjs/thread-comment"),require("react"),require("rxjs"),require("@univerjs/docs-ui")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/thread-comment-ui","@univerjs/engine-render","@univerjs/ui","@univerjs/docs","@univerjs/thread-comment","react","rxjs","@univerjs/docs-ui"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.UniverDocsThreadCommentUi={},global.UniverCore,global.UniverThreadCommentUi,global.UniverEngineRender,global.UniverUi,global.UniverDocs,global.UniverThreadComment,global.React,global.rxjs,global.UniverDocsUi))})(this,function(exports2,core,threadCommentUi,engineRender,ui,docs,threadComment,React,rxjs,docsUi){"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;const PLUGIN_NAME="DOC_THREAD_COMMENT_UI_PLUGIN",DEFAULT_DOC_SUBUNIT_ID="default_doc";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={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521C5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345ZM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521C8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345ZM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521C11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521 5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345zM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521 8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345zM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521 11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.84351 3.41861C1.84351 3.01861 2.15531 2.69434 2.53993 2.69434H14.9381C15.3228 2.69434 15.6346 3.01861 15.6346 3.41861V12.4611C15.6346 12.8612 15.3228 13.1854 14.9381 13.1854H8.82117L6.06643 14.6179C5.85054 14.7301 5.59416 14.7181 5.38884 14.5862C5.18352 14.4542 5.05855 14.2211 5.05855 13.9701V13.1854H2.53993C2.15531 13.1854 1.84351 12.8612 1.84351 12.4611L1.84351 3.41861ZM6.45141 12.7982L8.34531 12.0135C8.44201 11.9632 8.54864 11.9371 8.65676 11.9371H14.2417C14.3522 11.9371 14.4417 11.8475 14.4417 11.7371V4.14271C14.4417 4.03225 14.3522 3.94271 14.2417 3.94271H3.23636C3.12591 3.94271 3.03636 4.03225 3.03636 4.14271L3.03636 11.7371C3.03636 11.8475 3.12591 11.9371 3.23636 11.9371L5.75498 11.9371C6.1396 11.9371 6.45141 12.0611 6.45141 12.4611V12.7982Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CommentSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"comment-single",ref,icon:element}))});CommentSingle.displayName="CommentSingle";const AddDocCommentComment={id:"docs.command.add-comment",type:core.CommandType.COMMAND,async handler(accessor,params){if(!params)return!1;const{comment:originComment,unitId}=params,comment=await accessor.get(threadComment.IThreadCommentDataSourceService).addComment(originComment),commandService=accessor.get(core.ICommandService),doMutation=docs.addCustomDecorationBySelectionFactory(accessor,{id:comment.id,type:core.CustomDecorationType.COMMENT});if(doMutation){const addComment={id:threadComment.AddCommentMutation.id,params:{unitId,subUnitId:DEFAULT_DOC_SUBUNIT_ID,comment}},activeOperation={id:threadCommentUi.SetActiveCommentOperation.id,params:{unitId,subUnitId:DEFAULT_DOC_SUBUNIT_ID,commentId:comment.id}};return(await core.sequenceExecuteAsync([addComment,doMutation,activeOperation],commandService)).result}return!1}};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 DocThreadCommentService=(_a=class extends core.Disposable{constructor(_sidebarService,_threadCommentPanelService){super();__publicField(this,"_addingComment$",new rxjs.BehaviorSubject(void 0));__publicField(this,"addingComment$",this._addingComment$.asObservable());this._sidebarService=_sidebarService,this._threadCommentPanelService=_threadCommentPanelService,this.disposeWithMe(()=>{this._addingComment$.complete()})}get addingComment(){return this._addingComment$.getValue()}startAdd(comment){this._addingComment$.next(comment)}endAdd(){this._addingComment$.next(void 0)}},__name(_a,"DocThreadCommentService"),_a);DocThreadCommentService=__decorateClass$4([__decorateParam$4(0,ui.ISidebarService),__decorateParam$4(1,core.Inject(threadCommentUi.ThreadCommentPanelService))],DocThreadCommentService);const ShowCommentPanelOperation={id:"docs.operation.show-comment-panel",type:core.CommandType.OPERATION,handler(accessor,params){const panelService=accessor.get(threadCommentUi.ThreadCommentPanelService),sidebarService=accessor.get(ui.ISidebarService);return panelService.panelVisible||(sidebarService.open({header:{title:"threadCommentUI.panel.title"},children:{label:DocThreadCommentPanel.componentKey},width:320,onClose:__name(()=>panelService.setPanelVisible(!1),"onClose")}),panelService.setPanelVisible(!0)),params&&panelService.setActiveComment(params==null?void 0:params.activeComment),!0}},ToggleCommentPanelOperation={id:"docs.operation.toggle-comment-panel",type:core.CommandType.OPERATION,handler(accessor){var _a2;const panelService=accessor.get(threadCommentUi.ThreadCommentPanelService),sidebarService=accessor.get(ui.ISidebarService);return!panelService.panelVisible||((_a2=sidebarService.options.children)==null?void 0:_a2.label)!==DocThreadCommentPanel.componentKey?(sidebarService.open({header:{title:"threadCommentUI.panel.title"},children:{label:DocThreadCommentPanel.componentKey},width:320,onClose:__name(()=>panelService.setPanelVisible(!1),"onClose")}),panelService.setPanelVisible(!0)):(sidebarService.close(),panelService.setPanelVisible(!1),panelService.setActiveComment(null)),!0}},StartAddCommentOperation={id:"docs.operation.start-add-comment",type:core.CommandType.OPERATION,handler(accessor){var _a2,_b2;const panelService=accessor.get(threadCommentUi.ThreadCommentPanelService),doc=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC),textSelectionManagerService=accessor.get(docs.TextSelectionManagerService),textSelectionRenderService=accessor.get(engineRender.ITextSelectionRenderManager),userManagerService=accessor.get(core.UserManagerService),docCommentService=accessor.get(DocThreadCommentService),commandService=accessor.get(core.ICommandService),sidebarService=accessor.get(ui.ISidebarService),textRange=textSelectionManagerService.getActiveTextRangeWithStyle();if(!doc||!textRange)return!1;if(textRange.collapsed)return panelService.panelVisible?(panelService.setPanelVisible(!1),sidebarService.close()):commandService.executeCommand(ShowCommentPanelOperation.id),!0;panelService.panelVisible||commandService.executeCommand(ShowCommentPanelOperation.id);const unitId=doc.getUnitId(),text=docs.getSelectionText((_b2=(_a2=doc.getBody())==null?void 0:_a2.dataStream)!=null?_b2:"",textRange.startOffset,textRange.endOffset),subUnitId=DEFAULT_DOC_SUBUNIT_ID,commentId="",comment={unitId,subUnitId,id:commentId,ref:text,dT:threadCommentUi.getDT(),personId:userManagerService.getCurrentUser().userID,text:{dataStream:`\r
2
+ `},startOffset:textRange.startOffset,endOffset:textRange.endOffset,collapsed:!0,threadId:commentId};return textSelectionRenderService.blurEditor(),docCommentService.startAdd(comment),panelService.setActiveComment({unitId,subUnitId,commentId}),!0}},DeleteDocCommentComment={id:"docs.command.delete-comment",type:core.CommandType.COMMAND,async handler(accessor,params){if(!params)return!1;const{commentId,unitId}=params,commandService=accessor.get(core.ICommandService),doMutation=docs.deleteCustomDecorationFactory(accessor,{id:commentId,unitId});return doMutation?(await core.sequenceExecute([doMutation],commandService)).result:!1}},shouldDisableAddComment=__name(accessor=>{const renderManagerService=accessor.get(engineRender.IRenderManagerService),textSelectionManagerService=accessor.get(docs.TextSelectionManagerService),render2=renderManagerService.getCurrent(),skeleton=render2==null?void 0:render2.with(docs.DocSkeletonManagerService).getSkeleton(),editArea=skeleton==null?void 0:skeleton.getViewModel().getEditArea();if(editArea===engineRender.DocumentEditArea.FOOTER||editArea===engineRender.DocumentEditArea.HEADER)return!0;const range=textSelectionManagerService.getActiveTextRangeWithStyle();return!!(range==null||range.collapsed)},"shouldDisableAddComment");function AddDocCommentMenuItemFactory(accessor){return{id:StartAddCommentOperation.id,group:ui.MenuGroup.CONTEXT_MENU_DATA,type:ui.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",positions:[ui.MenuPosition.CONTEXT_MENU],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC),disabled$:new rxjs.Observable(function(subscribe){const observer=accessor.get(docs.TextSelectionManagerService).textSelection$.pipe(rxjs.debounceTime(16)).subscribe(()=>{subscribe.next(shouldDisableAddComment(accessor))});return()=>{observer.unsubscribe()}})}}__name(AddDocCommentMenuItemFactory,"AddDocCommentMenuItemFactory");function ToolbarDocCommentMenuItemFactory(accessor){return{id:ToggleCommentPanelOperation.id,group:ui.MenuGroup.CONTEXT_MENU_DATA,type:ui.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",positions:[ui.MenuPosition.TOOLBAR_START],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_DOC)}}__name(ToolbarDocCommentMenuItemFactory,"ToolbarDocCommentMenuItemFactory");const DocThreadCommentPanel=__name(()=>{const univerInstanceService=core.useDependency(core.IUniverInstanceService),injector=core.useDependency(core.Injector),doc$=React.useMemo(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC),[univerInstanceService]),doc=core.useObservable(doc$),subUnitId$=React.useMemo(()=>new rxjs.Observable(sub=>sub.next(DEFAULT_DOC_SUBUNIT_ID)),[]),textSelectionManagerService=core.useDependency(docs.TextSelectionManagerService),selectionChange$=React.useMemo(()=>textSelectionManagerService.textSelection$.pipe(rxjs.debounceTime(16)),[textSelectionManagerService.textSelection$]);core.useObservable(selectionChange$);const commandService=core.useDependency(core.ICommandService),docCommentService=core.useDependency(DocThreadCommentService),tempComment=core.useObservable(docCommentService.addingComment$),[commentIds,setCommentIds]=React.useState([]);if(React.useEffect(()=>{var _a2;const set=new Set,customRanges=doc==null?void 0:doc.getCustomDecorations();setCommentIds((_a2=customRanges==null?void 0:customRanges.map(r=>r.id).filter(i=>{const hasRepeat=set.has(i);return set.add(i),!hasRepeat}))!=null?_a2:[]);const dispose=commandService.onCommandExecuted(command=>{var _a3;if(command.id===docs.RichTextEditingMutation.id){const set2=new Set,customRanges2=doc==null?void 0:doc.getCustomDecorations();setCommentIds((_a3=customRanges2==null?void 0:customRanges2.map(r=>r.id).filter(i=>{const hasRepeat=set2.has(i);return set2.add(i),!hasRepeat}))!=null?_a3:[])}});return()=>{dispose.dispose()}},[commandService,doc]),!doc)return null;const isInValidSelection=shouldDisableAddComment(injector),unitId=doc.getUnitId();return React.createElement(threadCommentUi.ThreadCommentPanel,{unitId,subUnitId$,type:core.UniverInstanceType.UNIVER_DOC,onAdd:__name(()=>{commandService.executeCommand(StartAddCommentOperation.id)},"onAdd"),getSubUnitName:__name(()=>"","getSubUnitName"),disableAdd:isInValidSelection,tempComment,onAddComment:__name(comment=>{if(!comment.parentId){const params={unitId,range:tempComment,comment};return commandService.executeCommand(AddDocCommentComment.id,params),docCommentService.endAdd(),!1}return!0},"onAddComment"),onDeleteComment:__name(comment=>{if(!comment.parentId){const params={unitId,commentId:comment.id};return commandService.executeCommand(DeleteDocCommentComment.id,params),!1}return!0},"onDeleteComment"),showComments:commentIds})},"DocThreadCommentPanel");DocThreadCommentPanel.componentKey="univer.doc.thread-comment-panel";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 DocThreadCommentUIController=(_b=class extends core.Disposable{constructor(_config,_commandService,_menuService,_injector,_componentManager){super(),this._config=_config,this._commandService=_commandService,this._menuService=_menuService,this._injector=_injector,this._componentManager=_componentManager,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[AddDocCommentComment,DeleteDocCommentComment,ShowCommentPanelOperation,StartAddCommentOperation,ToggleCommentPanelOperation].forEach(command=>{this.disposeWithMe(this._commandService.registerCommand(command))})}_initMenus(){[AddDocCommentMenuItemFactory,ToolbarDocCommentMenuItemFactory].forEach(menuFactory=>{this.disposeWithMe(this._menuService.addMenuItem(menuFactory(this._injector),this._config.menu))})}_initComponents(){[DocThreadCommentPanel].forEach(comp=>{this.disposeWithMe(this._componentManager.register(comp.componentKey,comp))}),this.disposeWithMe(this._componentManager.register("CommentSingle",CommentSingle))}},__name(_b,"DocThreadCommentUIController"),_b);DocThreadCommentUIController=__decorateClass$3([core.OnLifecycle(core.LifecycleStages.Rendered,DocThreadCommentUIController),__decorateParam$3(1,core.ICommandService),__decorateParam$3(2,ui.IMenuService),__decorateParam$3(3,core.Inject(core.Injector)),__decorateParam$3(4,core.Inject(ui.ComponentManager))],DocThreadCommentUIController);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");let DocThreadCommentSelectionController=(_c=class extends core.Disposable{constructor(_threadCommentPanelService,_univerInstanceService,_commandService,_docThreadCommentService,_renderManagerService,_threadCommentModel){super(),this._threadCommentPanelService=_threadCommentPanelService,this._univerInstanceService=_univerInstanceService,this._commandService=_commandService,this._docThreadCommentService=_docThreadCommentService,this._renderManagerService=_renderManagerService,this._threadCommentModel=_threadCommentModel,this._initSelectionChange(),this._initActiveCommandChange()}_initSelectionChange(){let lastSelection;this.disposeWithMe(this._commandService.onCommandExecuted(commandInfo=>{var _a2,_b2,_c2,_d2;if(commandInfo.id===docs.SetTextSelectionsOperation.id){const params=commandInfo.params,{unitId,ranges}=params,doc=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_DOC),primary=ranges[0];if((lastSelection==null?void 0:lastSelection.startOffset)===(primary==null?void 0:primary.startOffset)&&(lastSelection==null?void 0:lastSelection.endOffset)===(primary==null?void 0:primary.endOffset))return;if(lastSelection=primary,primary&&doc){const{startOffset,endOffset,collapsed}=primary;let customRange;if(collapsed?customRange=(_b2=(_a2=doc.getBody())==null?void 0:_a2.customDecorations)==null?void 0:_b2.find(value=>value.startIndex<=startOffset&&value.endIndex>=endOffset-1):customRange=(_d2=(_c2=doc.getBody())==null?void 0:_c2.customDecorations)==null?void 0:_d2.find(value=>value.startIndex<=startOffset&&value.endIndex>=endOffset-1),customRange){const comment=this._threadCommentModel.getComment(unitId,DEFAULT_DOC_SUBUNIT_ID,customRange.id);comment&&!comment.resolved&&this._commandService.executeCommand(ShowCommentPanelOperation.id,{activeComment:{unitId,subUnitId:DEFAULT_DOC_SUBUNIT_ID,commentId:customRange.id}});return}}if(!this._threadCommentPanelService.activeCommentId)return;this._commandService.executeCommand(threadCommentUi.SetActiveCommentOperation.id)}}))}_initActiveCommandChange(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(activeComment=>{var _a2,_b2,_c2;if(activeComment){const doc=this._univerInstanceService.getUnit(activeComment.unitId);if(doc){const backScrollController=(_a2=this._renderManagerService.getRenderById(activeComment.unitId))==null?void 0:_a2.with(docsUi.DocBackScrollRenderController),customRange=(_b2=doc.getCustomRanges())==null?void 0:_b2.find(range=>range.rangeId===activeComment.commentId);customRange&&backScrollController&&backScrollController.scrollToRange(activeComment.unitId,{startOffset:customRange.startIndex,endOffset:customRange.endIndex,collapsed:!1})}}(!activeComment||activeComment.commentId!==((_c2=this._docThreadCommentService.addingComment)==null?void 0:_c2.id))&&this._docThreadCommentService.endAdd()}))}},__name(_c,"DocThreadCommentSelectionController"),_c);DocThreadCommentSelectionController=__decorateClass$2([core.OnLifecycle(core.LifecycleStages.Rendered,DocThreadCommentSelectionController),__decorateParam$2(0,core.Inject(threadCommentUi.ThreadCommentPanelService)),__decorateParam$2(1,core.IUniverInstanceService),__decorateParam$2(2,core.ICommandService),__decorateParam$2(3,core.Inject(DocThreadCommentService)),__decorateParam$2(4,engineRender.IRenderManagerService),__decorateParam$2(5,core.Inject(threadComment.ThreadCommentModel))],DocThreadCommentSelectionController);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");let DocThreadCommentRenderController=(_d=class extends core.Disposable{constructor(_context,_docInterceptorService,_threadCommentPanelService,_docRenderController,_univerInstanceService,_threadCommentModel){super(),this._context=_context,this._docInterceptorService=_docInterceptorService,this._threadCommentPanelService=_threadCommentPanelService,this._docRenderController=_docRenderController,this._univerInstanceService=_univerInstanceService,this._threadCommentModel=_threadCommentModel,this._interceptorViewModel(),this._initReRender()}_initReRender(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(activeComment=>{var _a2;if(activeComment){this._docRenderController.reRender(activeComment.unitId);return}const unitId=(_a2=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_DOC))==null?void 0:_a2.getUnitId();unitId&&this._docRenderController.reRender(unitId)})),this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe(update=>{update.type==="resolve"&&this._docRenderController.reRender(update.unitId)}))}_interceptorViewModel(){this._docInterceptorService.intercept(docs.DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION,{handler:__name((data,pos,next)=>{if(!data)return next(data);const{unitId,index,customDecorations}=pos,activeComment=this._threadCommentPanelService.activeCommentId,{commentId,unitId:commentUnitID}=activeComment||{},activeCustomDecoration=customDecorations.find(i=>i.id===commentId),comment=this._threadCommentModel.getComment(unitId,DEFAULT_DOC_SUBUNIT_ID,data.id);if(!comment)return next({...data,show:!1});const isActiveIndex=activeCustomDecoration&&index>=activeCustomDecoration.startIndex&&index<=activeCustomDecoration.endIndex,isActive=commentUnitID===unitId&&data.id===commentId;return next({...data,active:isActive||isActiveIndex,show:!comment.resolved})},"handler")})}},__name(_d,"DocThreadCommentRenderController"),_d);DocThreadCommentRenderController=__decorateClass$1([core.OnLifecycle(core.LifecycleStages.Starting,DocThreadCommentRenderController),__decorateParam$1(1,core.Inject(docs.DocInterceptorService)),__decorateParam$1(2,core.Inject(threadCommentUi.ThreadCommentPanelService)),__decorateParam$1(3,core.Inject(docsUi.DocRenderController)),__decorateParam$1(4,core.IUniverInstanceService),__decorateParam$1(5,core.Inject(threadComment.ThreadCommentModel))],DocThreadCommentRenderController);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,typeof key!="symbol"?key+"":key,value),"__publicField");exports2.UniverDocsThreadCommentUIPlugin=(_e=class extends core.Plugin{constructor(_config={menu:{}},_injector,_renderManagerSrv){super(),this._config=_config,this._injector=_injector,this._renderManagerSrv=_renderManagerSrv}onStarting(){[[DocThreadCommentUIController,{useFactory:__name(()=>this._injector.createInstance(DocThreadCommentUIController,this._config),"useFactory")}],[DocThreadCommentSelectionController],[DocThreadCommentService]].forEach(dep=>{this._injector.add(dep)})}onRendered(){this._initRenderModule()}_initRenderModule(){[DocThreadCommentRenderController].forEach(dep=>{this._renderManagerSrv.registerRenderModule(core.UniverInstanceType.UNIVER_DOC,dep)})}},__name(_e,"UniverDocsThreadCommentUIPlugin"),_e),__publicField2(exports2.UniverDocsThreadCommentUIPlugin,"pluginName",PLUGIN_NAME),__publicField2(exports2.UniverDocsThreadCommentUIPlugin,"type",core.UniverInstanceType.UNIVER_DOC),exports2.UniverDocsThreadCommentUIPlugin=__decorateClass([core.DependentOn(threadCommentUi.UniverThreadCommentUIPlugin),__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,engineRender.IRenderManagerService)],exports2.UniverDocsThreadCommentUIPlugin),exports2.AddDocCommentComment=AddDocCommentComment,exports2.DeleteDocCommentComment=DeleteDocCommentComment,exports2.ShowCommentPanelOperation=ShowCommentPanelOperation,exports2.StartAddCommentOperation=StartAddCommentOperation,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/docs-thread-comment-ui",
3
- "version": "0.2.5",
3
+ "version": "0.2.7",
4
4
  "private": false,
5
5
  "description": "Univer thread comment plugin",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -46,31 +46,31 @@
46
46
  "peerDependencies": {
47
47
  "react": "^16.9.0 || ^17.0.0 || ^18.0.0",
48
48
  "rxjs": ">=7.0.0",
49
- "@univerjs/core": "0.2.5",
50
- "@univerjs/docs": "0.2.5",
51
- "@univerjs/docs-ui": "0.2.5",
52
- "@univerjs/engine-render": "0.2.5",
53
- "@univerjs/thread-comment-ui": "0.2.5",
54
- "@univerjs/ui": "0.2.5",
55
- "@univerjs/thread-comment": "0.2.5"
49
+ "@univerjs/core": "0.2.7",
50
+ "@univerjs/docs": "0.2.7",
51
+ "@univerjs/docs-ui": "0.2.7",
52
+ "@univerjs/engine-render": "0.2.7",
53
+ "@univerjs/thread-comment": "0.2.7",
54
+ "@univerjs/thread-comment-ui": "0.2.7",
55
+ "@univerjs/ui": "0.2.7"
56
56
  },
57
57
  "dependencies": {
58
- "@univerjs/icons": "^0.1.65"
58
+ "@univerjs/icons": "^0.1.72"
59
59
  },
60
60
  "devDependencies": {
61
61
  "clsx": "^2.1.1",
62
62
  "react": "18.3.1",
63
63
  "rxjs": "^7.8.1",
64
- "typescript": "^5.5.3",
65
- "vite": "^5.3.4",
66
- "vitest": "^2.0.3",
67
- "@univerjs/core": "0.2.5",
68
- "@univerjs/design": "0.2.5",
69
- "@univerjs/shared": "0.2.5",
70
- "@univerjs/engine-formula": "0.2.5",
71
- "@univerjs/thread-comment": "0.2.5",
72
- "@univerjs/ui": "0.2.5",
73
- "@univerjs/thread-comment-ui": "0.2.5"
64
+ "typescript": "^5.5.4",
65
+ "vite": "^5.3.5",
66
+ "vitest": "^2.0.5",
67
+ "@univerjs/design": "0.2.7",
68
+ "@univerjs/core": "0.2.7",
69
+ "@univerjs/engine-formula": "0.2.7",
70
+ "@univerjs/shared": "0.2.7",
71
+ "@univerjs/thread-comment": "0.2.7",
72
+ "@univerjs/thread-comment-ui": "0.2.7",
73
+ "@univerjs/ui": "0.2.7"
74
74
  },
75
75
  "univerSpace": {
76
76
  ".": {