@univerjs/docs-thread-comment-ui 0.7.0-nightly.202505201607 → 0.7.0-nightly.202505221607

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 re=Object.defineProperty;var ie=(e,t,r)=>t in e?re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var H=(e,t,r)=>ie(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),b=require("@univerjs/engine-render"),O=require("@univerjs/thread-comment-ui"),_=require("@univerjs/docs"),V=require("@univerjs/docs-ui"),w=require("@univerjs/thread-comment"),u=require("@univerjs/ui"),R=require("rxjs"),oe=require("react/jsx-runtime"),S=require("react"),ce="DOC_THREAD_COMMENT_UI_PLUGIN",D="default_doc",se="docs-thread-comment-ui.config",k={};var ae=Object.getOwnPropertyDescriptor,de=(e,t,r,n)=>{for(var i=n>1?void 0:n?ae(t,r):t,o=e.length-1,s;o>=0;o--)(s=e[o])&&(i=s(i)||i);return i},J=(e,t)=>(r,n)=>t(r,n,e);let E=class extends c.Disposable{constructor(t,r){super();H(this,"_addingComment$",new R.BehaviorSubject(void 0));H(this,"addingComment$",this._addingComment$.asObservable());this._sidebarService=t,this._threadCommentPanelService=r,this.disposeWithMe(()=>{this._addingComment$.complete()})}get addingComment(){return this._addingComment$.getValue()}startAdd(t){this._addingComment$.next(t)}endAdd(){this._addingComment$.next(void 0)}};E=de([J(0,u.ISidebarService),J(1,c.Inject(O.ThreadCommentPanelService))],E);const G={id:"docs.command.add-comment",type:c.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{comment:r,unitId:n}=t,o=await e.get(w.IThreadCommentDataSourceService).addComment(r),s=e.get(c.ICommandService),a=V.addCustomDecorationBySelectionFactory(e,{id:o.threadId,type:c.CustomDecorationType.COMMENT,unitId:n});if(a){const C={id:w.AddCommentMutation.id,params:{unitId:n,subUnitId:D,comment:o}},v={id:O.SetActiveCommentOperation.id,params:{unitId:n,subUnitId:D,commentId:o.id}};return(await c.sequenceExecute([C,a,v],s)).result}return!1}},Z={id:"docs.command.delete-comment",type:c.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{commentId:r,unitId:n}=t,i=e.get(c.ICommandService),o=V.deleteCustomDecorationFactory(e,{id:r,unitId:n});return o?(await c.sequenceExecute([o],i)).result:!1}},Y=e=>{var s;const t=e.get(b.IRenderManagerService),r=e.get(_.DocSelectionManagerService),n=(s=b.withCurrentTypeOfRenderer(c.UniverInstanceType.UNIVER_DOC,_.DocSkeletonManagerService,e.get(c.IUniverInstanceService),t))==null?void 0:s.getSkeleton(),i=n==null?void 0:n.getViewModel().getEditArea();if(i===b.DocumentEditArea.FOOTER||i===b.DocumentEditArea.HEADER)return!0;const o=r.getActiveTextRange();return!!(o==null||o.collapsed)};function me(e){return{id:j.id,type:u.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",hidden$:u.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_DOC,void 0,c.SHEET_EDITOR_UNITS),disabled$:new R.Observable(function(t){const n=e.get(_.DocSelectionManagerService).textSelection$.pipe(R.debounceTime(16)).subscribe(()=>{t.next(Y(e))});return()=>{n.unsubscribe()}})}}function le(e){return{id:z.id,type:u.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",hidden$:u.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_DOC)}}const P=()=>{const e=u.useDependency(c.IUniverInstanceService),t=u.useDependency(c.Injector),r=S.useMemo(()=>e.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_DOC).pipe(R.filter(d=>!!d&&!c.isInternalEditorID(d.getUnitId()))),[e]),n=u.useObservable(r),i=S.useMemo(()=>new R.Observable(d=>d.next(D)),[]),o=u.useDependency(_.DocSelectionManagerService),s=S.useMemo(()=>o.textSelection$.pipe(R.debounceTime(16)),[o.textSelection$]);u.useObservable(s);const a=u.useDependency(c.ICommandService),C=u.useDependency(E),v=u.useObservable(C.addingComment$),[m,f]=S.useState([]);if(S.useEffect(()=>{var y;const d=new Set,l=n==null?void 0:n.getCustomDecorations();f((y=l==null?void 0:l.map(h=>h.id).filter(h=>{const T=d.has(h);return d.add(h),!T}))!=null?y:[]);const M=a.onCommandExecuted(h=>{var T;if(h.id===_.RichTextEditingMutation.id){const A=new Set,F=n==null?void 0:n.getCustomDecorations();f((T=F==null?void 0:F.map($=>$.id).filter($=>{const ne=A.has($);return A.add($),!ne}))!=null?T:[])}});return()=>{M.dispose()}},[a,n]),!n)return null;const g=Y(t),I=n.getUnitId();return oe.jsx(O.ThreadCommentPanel,{unitId:I,subUnitId$:i,type:c.UniverInstanceType.UNIVER_DOC,onAdd:()=>{a.executeCommand(j.id)},getSubUnitName:()=>"",disableAdd:g,tempComment:v,onAddComment:d=>{if(!d.parentId){const l={unitId:I,range:v,comment:d};return a.executeCommand(G.id,l),C.endAdd(),!1}return!0},onDeleteComment:d=>{if(!d.parentId){const l={unitId:I,commentId:d.id};return a.executeCommand(Z.id,l),!1}return!0},showComments:m})};P.componentKey="univer.doc.thread-comment-panel";const N={id:"docs.operation.show-comment-panel",type:c.CommandType.OPERATION,handler(e,t){var i;const r=e.get(O.ThreadCommentPanelService),n=e.get(u.ISidebarService);return(!r.panelVisible||((i=n.options.children)==null?void 0:i.label)!==P.componentKey)&&(n.open({header:{title:"threadCommentUI.panel.title"},children:{label:P.componentKey},width:320,onClose:()=>r.setPanelVisible(!1)}),r.setPanelVisible(!0)),t&&r.setActiveComment(t==null?void 0:t.activeComment),!0}},z={id:"docs.operation.toggle-comment-panel",type:c.CommandType.OPERATION,handler(e){var n;const t=e.get(O.ThreadCommentPanelService),r=e.get(u.ISidebarService);return!t.panelVisible||((n=r.options.children)==null?void 0:n.label)!==P.componentKey?(r.open({header:{title:"threadCommentUI.panel.title"},children:{label:P.componentKey},width:320,onClose:()=>t.setPanelVisible(!1)}),t.setPanelVisible(!0)):(r.close(),t.setPanelVisible(!1),t.setActiveComment(null)),!0}},j={id:"docs.operation.start-add-comment",type:c.CommandType.OPERATION,handler(e){var h,T,A;const t=e.get(O.ThreadCommentPanelService),n=e.get(c.IUniverInstanceService).getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC),i=e.get(_.DocSelectionManagerService),o=e.get(b.IRenderManagerService),s=e.get(c.UserManagerService),a=e.get(E),C=e.get(c.ICommandService),v=e.get(u.ISidebarService),m=i.getActiveTextRange();if(!n||!m)return!1;const f=(h=o.getRenderById(n.getUnitId()))==null?void 0:h.with(V.DocSelectionRenderService);if(f==null||f.setReserveRangesStatus(!0),m.collapsed)return t.panelVisible?(t.setPanelVisible(!1),v.close()):C.executeCommand(N.id),!0;C.executeCommand(N.id);const g=n.getUnitId(),I=((A=(T=n.getBody())==null?void 0:T.dataStream)!=null?A:"").slice(m.startOffset,m.endOffset),d=c.BuildTextUtils.transform.getPlainText(I),l=D,M="",y={unitId:g,subUnitId:l,id:M,ref:d,dT:w.getDT(),personId:s.getCurrentUser().userID,text:{dataStream:`\r
2
- `},startOffset:m.startOffset,endOffset:m.endOffset,collapsed:!0,threadId:M};return f==null||f.blur(),a.startAdd(y),t.setActiveComment({unitId:g,subUnitId:l,commentId:M}),!0}};var ue=Object.getOwnPropertyDescriptor,Ce=(e,t,r,n)=>{for(var i=n>1?void 0:n?ue(t,r):t,o=e.length-1,s;o>=0;o--)(s=e[o])&&(i=s(i)||i);return i},U=(e,t)=>(r,n)=>t(r,n,e);let B=class extends c.Disposable{constructor(e,t,r,n,i,o){super(),this._threadCommentPanelService=e,this._univerInstanceService=t,this._commandService=r,this._docThreadCommentService=n,this._renderManagerService=i,this._threadCommentModel=o,this._initSelectionChange(),this._initActiveCommandChange()}_initSelectionChange(){let e;this.disposeWithMe(this._commandService.onCommandExecuted(t=>{var r,n,i,o;if(t.id===_.SetTextSelectionsOperation.id){const s=t.params,{unitId:a,ranges:C}=s;if(c.isInternalEditorID(a))return;const v=this._univerInstanceService.getUnit(a,c.UniverInstanceType.UNIVER_DOC),m=C[0];if((e==null?void 0:e.startOffset)===(m==null?void 0:m.startOffset)&&(e==null?void 0:e.endOffset)===(m==null?void 0:m.endOffset))return;if(e=m,m&&v){const{startOffset:f,endOffset:g,collapsed:I}=m;let d;if(I?d=(n=(r=v.getBody())==null?void 0:r.customDecorations)==null?void 0:n.find(l=>l.startIndex<=f&&l.endIndex>=g-1):d=(o=(i=v.getBody())==null?void 0:i.customDecorations)==null?void 0:o.find(l=>l.startIndex<=f&&l.endIndex>=g-1),d){const l=this._threadCommentModel.getComment(a,D,d.id);l&&!l.resolved&&this._commandService.executeCommand(N.id,{activeComment:{unitId:a,subUnitId:D,commentId:d.id}});return}}if(!this._threadCommentPanelService.activeCommentId)return;this._commandService.executeCommand(O.SetActiveCommentOperation.id)}}))}_initActiveCommandChange(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var t,r,n,i;if(e){const o=this._univerInstanceService.getUnit(e.unitId);if(o){const s=(t=this._renderManagerService.getRenderById(e.unitId))==null?void 0:t.with(V.DocBackScrollRenderController),a=(n=(r=o.getBody())==null?void 0:r.customDecorations)==null?void 0:n.find(C=>C.id===e.commentId);a&&s&&s.scrollToRange({startOffset:a.startIndex,endOffset:a.endIndex,collapsed:!1})}}(!e||e.commentId!==((i=this._docThreadCommentService.addingComment)==null?void 0:i.id))&&this._docThreadCommentService.endAdd()}))}};B=Ce([U(0,c.Inject(O.ThreadCommentPanelService)),U(1,c.IUniverInstanceService),U(2,c.ICommandService),U(3,c.Inject(E)),U(4,b.IRenderManagerService),U(5,c.Inject(w.ThreadCommentModel))],B);var p=function(){return p=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},p.apply(this,arguments)},he=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r},Q=S.forwardRef(function(e,t){var r=e.icon,n=e.id,i=e.className,o=e.extend,s=he(e,["icon","id","className","extend"]),a="univerjs-icon univerjs-icon-".concat(n," ").concat(i||"").trim(),C=S.useRef("_".concat(Ie()));return X(r,"".concat(n),{defIds:r.defIds,idSuffix:C.current},p({ref:t,className:a},s),o)});function X(e,t,r,n,i){return S.createElement(e.tag,p(p({key:t},ve(e,r,i)),n),(fe(e,r).children||[]).map(function(o,s){return X(o,"".concat(t,"-").concat(e.tag,"-").concat(s),r,void 0,i)}))}function ve(e,t,r){var n=p({},e.attrs);r!=null&&r.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=r.colorChannel1),e.tag==="mask"&&n.id&&(n.id=n.id+t.idSuffix),Object.entries(n).forEach(function(o){var s=o[0],a=o[1];s==="mask"&&typeof a=="string"&&(n[s]=a.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))});var i=t.defIds;return!i||i.length===0||(e.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+t.idSuffix),Object.entries(n).forEach(function(o){var s=o[0],a=o[1];typeof a=="string"&&(n[s]=a.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),n}function fe(e,t){var r,n=t.defIds;return!n||n.length===0?e:e.tag==="defs"&&(!((r=e.children)===null||r===void 0)&&r.length)?p(p({},e),{children:e.children.map(function(i){return typeof i.attrs.id=="string"&&n&&n.indexOf(i.attrs.id)>-1?p(p({},i),{attrs:p(p({},i.attrs),{id:i.attrs.id+t.idSuffix})}):i})}):e}function Ie(){return Math.random().toString(36).substring(2,8)}Q.displayName="UniverIcon";var ge={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"}}]},ee=S.forwardRef(function(e,t){return S.createElement(Q,Object.assign({},e,{id:"comment-single",ref:t,icon:ge}))});ee.displayName="CommentSingle";const pe={[u.RibbonInsertGroup.MEDIA]:{[z.id]:{order:3,menuItemFactory:le}},[u.ContextMenuPosition.MAIN_AREA]:{[u.ContextMenuGroup.DATA]:{[j.id]:{order:1,menuItemFactory:me}}}};var Se=Object.getOwnPropertyDescriptor,_e=(e,t,r,n)=>{for(var i=n>1?void 0:n?Se(t,r):t,o=e.length-1,s;o>=0;o--)(s=e[o])&&(i=s(i)||i);return i},L=(e,t)=>(r,n)=>t(r,n,e);let q=class extends c.Disposable{constructor(e,t,r){super(),this._commandService=e,this._menuManagerService=t,this._componentManager=r,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[G,Z,N,j,z].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(pe)}_initComponents(){[P].forEach(e=>{this.disposeWithMe(this._componentManager.register(e.componentKey,e))}),this.disposeWithMe(this._componentManager.register("CommentSingle",ee))}};q=_e([L(0,c.ICommandService),L(1,u.IMenuManagerService),L(2,c.Inject(u.ComponentManager))],q);var Oe=Object.getOwnPropertyDescriptor,Me=(e,t,r,n)=>{for(var i=n>1?void 0:n?Oe(t,r):t,o=e.length-1,s;o>=0;o--)(s=e[o])&&(i=s(i)||i);return i},x=(e,t)=>(r,n)=>t(r,n,e);let K=class extends c.Disposable{constructor(e,t,r,n,i,o,s){super(),this._context=e,this._docInterceptorService=t,this._threadCommentPanelService=r,this._docRenderController=n,this._univerInstanceService=i,this._threadCommentModel=o,this._commandService=s,this._interceptorViewModel(),this._initReRender(),this._initSyncComments()}_initReRender(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var r;if(e){this._docRenderController.reRender(e.unitId);return}const t=(r=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC))==null?void 0:r.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(_.DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION,{handler:(e,t,r)=>{if(!e)return r(e);const{unitId:n,index:i,customDecorations:o}=t,s=this._threadCommentPanelService.activeCommentId,{commentId:a,unitId:C}=s||{},v=o.find(I=>I.id===a),m=this._threadCommentModel.getComment(n,D,e.id);if(!m)return r({...e,show:!1});const f=v&&i>=v.startIndex&&i<=v.endIndex,g=C===n&&e.id===a;return r({...e,active:g||f,show:!m.resolved})}})}_initSyncComments(){var i,o,s;const e=this._context.unit.getUnitId(),t=D,r=(s=(o=(i=this._context.unit.getBody())==null?void 0:i.customDecorations)==null?void 0:o.filter(a=>a.type===c.CustomDecorationType.COMMENT).map(a=>a.id))!=null?s:[];r.forEach(a=>{this._threadCommentModel.getComment(e,t,a)||this._threadCommentModel.addComment(e,t,{id:a,threadId:a,ref:"",dT:"",personId:"",text:{dataStream:""},unitId:e,subUnitId:t})}),r.length&&this._threadCommentModel.syncThreadComments(this._context.unit.getUnitId(),D,r);let n=r.sort();this.disposeWithMe(this._commandService.onCommandExecuted(a=>{var C,v,m;if(a.id===_.RichTextEditingMutation.id){if(a.params.unitId!==this._context.unit.getUnitId())return;const g=(m=(v=(C=this._context.unit.getBody())==null?void 0:C.customDecorations)==null?void 0:v.filter(d=>d.type===c.CustomDecorationType.COMMENT).map(d=>d.id))!=null?m:[],I=g.sort();if(JSON.stringify(n)!==JSON.stringify(I)){const d=new Set(n),l=new Set(I),M=new Set,y=new Set;g.forEach(h=>{d.has(h)||M.add(h)}),n.forEach(h=>{l.has(h)||y.add(h)}),n=I,M.forEach(h=>{this._threadCommentModel.getComment(e,t,h)||this._threadCommentModel.addComment(e,t,{id:h,threadId:h,ref:"",dT:"",personId:"",text:{dataStream:""},unitId:e,subUnitId:t})}),this._threadCommentModel.syncThreadComments(e,t,[...M])}}}))}};K=Me([x(1,c.Inject(_.DocInterceptorService)),x(2,c.Inject(O.ThreadCommentPanelService)),x(3,c.Inject(V.DocRenderController)),x(4,c.IUniverInstanceService),x(5,c.Inject(w.ThreadCommentModel)),x(6,c.ICommandService)],K);var De=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,be=(e,t,r)=>t in e?De(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ye=(e,t,r,n)=>{for(var i=n>1?void 0:n?Te(t,r):t,o=e.length-1,s;o>=0;o--)(s=e[o])&&(i=s(i)||i);return i},W=(e,t)=>(r,n)=>t(r,n,e),te=(e,t,r)=>be(e,typeof t!="symbol"?t+"":t,r);exports.UniverDocsThreadCommentUIPlugin=class extends c.Plugin{constructor(t=k,r,n,i){super(),this._config=t,this._injector=r,this._renderManagerSrv=n,this._configService=i;const{menu:o,...s}=c.merge({},k,this._config);o&&this._configService.setConfig("menu",o,{merge:!0}),this._configService.setConfig(se,s)}onStarting(){[[q],[B],[E]].forEach(t=>{this._injector.add(t)})}onRendered(){this._initRenderModule(),this._injector.get(B),this._injector.get(q)}_initRenderModule(){[K].forEach(t=>{this._renderManagerSrv.registerRenderModule(c.UniverInstanceType.UNIVER_DOC,t)})}};te(exports.UniverDocsThreadCommentUIPlugin,"pluginName",ce);te(exports.UniverDocsThreadCommentUIPlugin,"type",c.UniverInstanceType.UNIVER_DOC);exports.UniverDocsThreadCommentUIPlugin=ye([c.DependentOn(O.UniverThreadCommentUIPlugin),W(1,c.Inject(c.Injector)),W(2,b.IRenderManagerService),W(3,c.IConfigService)],exports.UniverDocsThreadCommentUIPlugin);exports.AddDocCommentComment=G;exports.DeleteDocCommentComment=Z;exports.ShowCommentPanelOperation=N;exports.StartAddCommentOperation=j;
1
+ "use strict";var re=Object.defineProperty;var ie=(e,t,r)=>t in e?re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var H=(e,t,r)=>ie(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),b=require("@univerjs/engine-render"),O=require("@univerjs/thread-comment-ui"),_=require("@univerjs/docs"),V=require("@univerjs/docs-ui"),w=require("@univerjs/thread-comment"),u=require("@univerjs/ui"),E=require("rxjs"),oe=require("react/jsx-runtime"),S=require("react"),ce="DOC_THREAD_COMMENT_UI_PLUGIN",M="default_doc",ae="docs-thread-comment-ui.config",k={};var se=Object.getOwnPropertyDescriptor,de=(e,t,r,n)=>{for(var i=n>1?void 0:n?se(t,r):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=a(i)||i);return i},J=(e,t)=>(r,n)=>t(r,n,e);let P=class extends c.Disposable{constructor(t,r){super();H(this,"_addingComment$",new E.BehaviorSubject(void 0));H(this,"addingComment$",this._addingComment$.asObservable());this._sidebarService=t,this._threadCommentPanelService=r,this.disposeWithMe(()=>{this._addingComment$.complete()})}get addingComment(){return this._addingComment$.getValue()}startAdd(t){this._addingComment$.next(t)}endAdd(){this._addingComment$.next(void 0)}};P=de([J(0,u.ISidebarService),J(1,c.Inject(O.ThreadCommentPanelService))],P);const G={id:"docs.command.add-comment",type:c.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{comment:r,unitId:n}=t,o=await e.get(w.IThreadCommentDataSourceService).addComment(r),a=e.get(c.ICommandService),s=V.addCustomDecorationBySelectionFactory(e,{id:o.threadId,type:c.CustomDecorationType.COMMENT,unitId:n});if(s){const C={id:w.AddCommentMutation.id,params:{unitId:n,subUnitId:M,comment:o}},v={id:O.SetActiveCommentOperation.id,params:{unitId:n,subUnitId:M,commentId:o.id}};return(await c.sequenceExecute([C,s,v],a)).result}return!1}},Z={id:"docs.command.delete-comment",type:c.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{commentId:r,unitId:n}=t,i=e.get(c.ICommandService),o=V.deleteCustomDecorationFactory(e,{id:r,unitId:n});return o?(await c.sequenceExecute([o],i)).result:!1}},Y=e=>{var a;const t=e.get(b.IRenderManagerService),r=e.get(_.DocSelectionManagerService),n=(a=b.withCurrentTypeOfRenderer(c.UniverInstanceType.UNIVER_DOC,_.DocSkeletonManagerService,e.get(c.IUniverInstanceService),t))==null?void 0:a.getSkeleton(),i=n==null?void 0:n.getViewModel().getEditArea();if(i===b.DocumentEditArea.FOOTER||i===b.DocumentEditArea.HEADER)return!0;const o=r.getActiveTextRange();return!!(o==null||o.collapsed)};function me(e){return{id:j.id,type:u.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",hidden$:u.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_DOC,void 0,c.SHEET_EDITOR_UNITS),disabled$:new E.Observable(function(t){const n=e.get(_.DocSelectionManagerService).textSelection$.pipe(E.debounceTime(16)).subscribe(()=>{t.next(Y(e))});return()=>{n.unsubscribe()}})}}function le(e){return{id:z.id,type:u.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",hidden$:u.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_DOC)}}const y=()=>{const e=u.useDependency(c.IUniverInstanceService),t=u.useDependency(c.Injector),r=S.useMemo(()=>e.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_DOC).pipe(E.filter(d=>!!d&&!c.isInternalEditorID(d.getUnitId()))),[e]),n=u.useObservable(r),i=S.useMemo(()=>new E.Observable(d=>d.next(M)),[]),o=u.useDependency(_.DocSelectionManagerService),a=S.useMemo(()=>o.textSelection$.pipe(E.debounceTime(16)),[o.textSelection$]);u.useObservable(a);const s=u.useDependency(c.ICommandService),C=u.useDependency(P),v=u.useObservable(C.addingComment$),[m,f]=S.useState([]);if(S.useEffect(()=>{var U;const d=new Set,l=n==null?void 0:n.getCustomDecorations();f((U=l==null?void 0:l.map(h=>h.id).filter(h=>{const T=d.has(h);return d.add(h),!T}))!=null?U:[]);const D=s.onCommandExecuted(h=>{var T;if(h.id===_.RichTextEditingMutation.id){const A=new Set,F=n==null?void 0:n.getCustomDecorations();f((T=F==null?void 0:F.map($=>$.id).filter($=>{const ne=A.has($);return A.add($),!ne}))!=null?T:[])}});return()=>{D.dispose()}},[s,n]),!n)return null;const g=Y(t),I=n.getUnitId();return oe.jsx(O.ThreadCommentPanel,{unitId:I,subUnitId$:i,type:c.UniverInstanceType.UNIVER_DOC,onAdd:()=>{s.executeCommand(j.id)},getSubUnitName:()=>"",disableAdd:g,tempComment:v,onAddComment:d=>{if(!d.parentId){const l={unitId:I,range:v,comment:d};return s.executeCommand(G.id,l),C.endAdd(),!1}return!0},onDeleteComment:d=>{if(!d.parentId){const l={unitId:I,commentId:d.id};return s.executeCommand(Z.id,l),!1}return!0},showComments:m})};y.componentKey="univer.doc.thread-comment-panel";const N={id:"docs.operation.show-comment-panel",type:c.CommandType.OPERATION,handler(e,t){var i;const r=e.get(O.ThreadCommentPanelService),n=e.get(u.ISidebarService);return(!r.panelVisible||((i=n.options.children)==null?void 0:i.label)!==y.componentKey)&&(n.open({header:{title:"threadCommentUI.panel.title"},children:{label:y.componentKey},width:320,onClose:()=>r.setPanelVisible(!1)}),r.setPanelVisible(!0)),t&&r.setActiveComment(t==null?void 0:t.activeComment),!0}},z={id:"docs.operation.toggle-comment-panel",type:c.CommandType.OPERATION,handler(e){var n;const t=e.get(O.ThreadCommentPanelService),r=e.get(u.ISidebarService);return!t.panelVisible||((n=r.options.children)==null?void 0:n.label)!==y.componentKey?(r.open({header:{title:"threadCommentUI.panel.title"},children:{label:y.componentKey},width:320,onClose:()=>t.setPanelVisible(!1)}),t.setPanelVisible(!0)):(r.close(),t.setPanelVisible(!1),t.setActiveComment(null)),!0}},j={id:"docs.operation.start-add-comment",type:c.CommandType.OPERATION,handler(e){var h,T,A;const t=e.get(O.ThreadCommentPanelService),n=e.get(c.IUniverInstanceService).getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC),i=e.get(_.DocSelectionManagerService),o=e.get(b.IRenderManagerService),a=e.get(c.UserManagerService),s=e.get(P),C=e.get(c.ICommandService),v=e.get(u.ISidebarService),m=i.getActiveTextRange();if(!n||!m)return!1;const f=(h=o.getRenderById(n.getUnitId()))==null?void 0:h.with(V.DocSelectionRenderService);if(f==null||f.setReserveRangesStatus(!0),m.collapsed)return t.panelVisible?(t.setPanelVisible(!1),v.close()):C.executeCommand(N.id),!0;C.executeCommand(N.id);const g=n.getUnitId(),I=((A=(T=n.getBody())==null?void 0:T.dataStream)!=null?A:"").slice(m.startOffset,m.endOffset),d=c.BuildTextUtils.transform.getPlainText(I),l=M,D="",U={unitId:g,subUnitId:l,id:D,ref:d,dT:w.getDT(),personId:a.getCurrentUser().userID,text:{dataStream:`\r
2
+ `},startOffset:m.startOffset,endOffset:m.endOffset,collapsed:!0,threadId:D};return f==null||f.blur(),s.startAdd(U),t.setActiveComment({unitId:g,subUnitId:l,commentId:D}),!0}};var ue=Object.getOwnPropertyDescriptor,Ce=(e,t,r,n)=>{for(var i=n>1?void 0:n?ue(t,r):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=a(i)||i);return i},x=(e,t)=>(r,n)=>t(r,n,e);let B=class extends c.Disposable{constructor(e,t,r,n,i,o){super(),this._threadCommentPanelService=e,this._univerInstanceService=t,this._commandService=r,this._docThreadCommentService=n,this._renderManagerService=i,this._threadCommentModel=o,this._initSelectionChange(),this._initActiveCommandChange()}_initSelectionChange(){let e;this.disposeWithMe(this._commandService.onCommandExecuted(t=>{var r,n,i,o;if(t.id===_.SetTextSelectionsOperation.id){const a=t.params,{unitId:s,ranges:C}=a;if(c.isInternalEditorID(s))return;const v=this._univerInstanceService.getUnit(s,c.UniverInstanceType.UNIVER_DOC),m=C[0];if((e==null?void 0:e.startOffset)===(m==null?void 0:m.startOffset)&&(e==null?void 0:e.endOffset)===(m==null?void 0:m.endOffset))return;if(e=m,m&&v){const{startOffset:f,endOffset:g,collapsed:I}=m;let d;if(I?d=(n=(r=v.getBody())==null?void 0:r.customDecorations)==null?void 0:n.find(l=>l.startIndex<=f&&l.endIndex>=g-1):d=(o=(i=v.getBody())==null?void 0:i.customDecorations)==null?void 0:o.find(l=>l.startIndex<=f&&l.endIndex>=g-1),d){const l=this._threadCommentModel.getComment(s,M,d.id);l&&!l.resolved&&this._commandService.executeCommand(N.id,{activeComment:{unitId:s,subUnitId:M,commentId:d.id}});return}}if(!this._threadCommentPanelService.activeCommentId)return;this._commandService.executeCommand(O.SetActiveCommentOperation.id)}}))}_initActiveCommandChange(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var t,r,n,i;if(e){const o=this._univerInstanceService.getUnit(e.unitId);if(o){const a=(t=this._renderManagerService.getRenderById(e.unitId))==null?void 0:t.with(V.DocBackScrollRenderController),s=(n=(r=o.getBody())==null?void 0:r.customDecorations)==null?void 0:n.find(C=>C.id===e.commentId);s&&a&&a.scrollToRange({startOffset:s.startIndex,endOffset:s.endIndex,collapsed:!1})}}(!e||e.commentId!==((i=this._docThreadCommentService.addingComment)==null?void 0:i.id))&&this._docThreadCommentService.endAdd()}))}};B=Ce([x(0,c.Inject(O.ThreadCommentPanelService)),x(1,c.IUniverInstanceService),x(2,c.ICommandService),x(3,c.Inject(P)),x(4,b.IRenderManagerService),x(5,c.Inject(w.ThreadCommentModel))],B);var p=function(){return p=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},p.apply(this,arguments)},he=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]]);return r},Q=S.forwardRef(function(e,t){var r=e.icon,n=e.id,i=e.className,o=e.extend,a=he(e,["icon","id","className","extend"]),s="univerjs-icon univerjs-icon-".concat(n," ").concat(i||"").trim(),C=S.useRef("_".concat(Ie()));return X(r,"".concat(n),{defIds:r.defIds,idSuffix:C.current},p({ref:t,className:s},a),o)});function X(e,t,r,n,i){return S.createElement(e.tag,p(p({key:t},ve(e,r,i)),n),(fe(e,r).children||[]).map(function(o,a){return X(o,"".concat(t,"-").concat(e.tag,"-").concat(a),r,void 0,i)}))}function ve(e,t,r){var n=p({},e.attrs);r!=null&&r.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=r.colorChannel1),e.tag==="mask"&&n.id&&(n.id=n.id+t.idSuffix),Object.entries(n).forEach(function(o){var a=o[0],s=o[1];a==="mask"&&typeof s=="string"&&(n[a]=s.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))});var i=t.defIds;return!i||i.length===0||(e.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+t.idSuffix),Object.entries(n).forEach(function(o){var a=o[0],s=o[1];typeof s=="string"&&(n[a]=s.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),n}function fe(e,t){var r,n=t.defIds;return!n||n.length===0?e:e.tag==="defs"&&(!((r=e.children)===null||r===void 0)&&r.length)?p(p({},e),{children:e.children.map(function(i){return typeof i.attrs.id=="string"&&n&&n.indexOf(i.attrs.id)>-1?p(p({},i),{attrs:p(p({},i.attrs),{id:i.attrs.id+t.idSuffix})}):i})}):e}function Ie(){return Math.random().toString(36).substring(2,8)}Q.displayName="UniverIcon";var ge={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"}}]},ee=S.forwardRef(function(e,t){return S.createElement(Q,Object.assign({},e,{id:"comment-single",ref:t,icon:ge}))});ee.displayName="CommentSingle";const pe={[u.RibbonInsertGroup.MEDIA]:{[z.id]:{order:3,menuItemFactory:le}},[u.ContextMenuPosition.MAIN_AREA]:{[u.ContextMenuGroup.DATA]:{[j.id]:{order:1,menuItemFactory:me}}}};var Se=Object.getOwnPropertyDescriptor,_e=(e,t,r,n)=>{for(var i=n>1?void 0:n?Se(t,r):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=a(i)||i);return i},L=(e,t)=>(r,n)=>t(r,n,e);let q=class extends c.Disposable{constructor(e,t,r){super(),this._commandService=e,this._menuManagerService=t,this._componentManager=r,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[G,Z,N,j,z].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(pe)}_initComponents(){[[y.componentKey,y],["CommentSingle",ee]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}};q=_e([L(0,c.ICommandService),L(1,u.IMenuManagerService),L(2,c.Inject(u.ComponentManager))],q);var Oe=Object.getOwnPropertyDescriptor,De=(e,t,r,n)=>{for(var i=n>1?void 0:n?Oe(t,r):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=a(i)||i);return i},R=(e,t)=>(r,n)=>t(r,n,e);let K=class extends c.Disposable{constructor(e,t,r,n,i,o,a){super(),this._context=e,this._docInterceptorService=t,this._threadCommentPanelService=r,this._docRenderController=n,this._univerInstanceService=i,this._threadCommentModel=o,this._commandService=a,this._interceptorViewModel(),this._initReRender(),this._initSyncComments()}_initReRender(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var r;if(e){this._docRenderController.reRender(e.unitId);return}const t=(r=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC))==null?void 0:r.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(_.DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION,{handler:(e,t,r)=>{if(!e)return r(e);const{unitId:n,index:i,customDecorations:o}=t,a=this._threadCommentPanelService.activeCommentId,{commentId:s,unitId:C}=a||{},v=o.find(I=>I.id===s),m=this._threadCommentModel.getComment(n,M,e.id);if(!m)return r({...e,show:!1});const f=v&&i>=v.startIndex&&i<=v.endIndex,g=C===n&&e.id===s;return r({...e,active:g||f,show:!m.resolved})}})}_initSyncComments(){var i,o,a;const e=this._context.unit.getUnitId(),t=M,r=(a=(o=(i=this._context.unit.getBody())==null?void 0:i.customDecorations)==null?void 0:o.filter(s=>s.type===c.CustomDecorationType.COMMENT).map(s=>s.id))!=null?a:[];r.forEach(s=>{this._threadCommentModel.getComment(e,t,s)||this._threadCommentModel.addComment(e,t,{id:s,threadId:s,ref:"",dT:"",personId:"",text:{dataStream:""},unitId:e,subUnitId:t})}),r.length&&this._threadCommentModel.syncThreadComments(this._context.unit.getUnitId(),M,r);let n=r.sort();this.disposeWithMe(this._commandService.onCommandExecuted(s=>{var C,v,m;if(s.id===_.RichTextEditingMutation.id){if(s.params.unitId!==this._context.unit.getUnitId())return;const g=(m=(v=(C=this._context.unit.getBody())==null?void 0:C.customDecorations)==null?void 0:v.filter(d=>d.type===c.CustomDecorationType.COMMENT).map(d=>d.id))!=null?m:[],I=g.sort();if(JSON.stringify(n)!==JSON.stringify(I)){const d=new Set(n),l=new Set(I),D=new Set,U=new Set;g.forEach(h=>{d.has(h)||D.add(h)}),n.forEach(h=>{l.has(h)||U.add(h)}),n=I,D.forEach(h=>{this._threadCommentModel.getComment(e,t,h)||this._threadCommentModel.addComment(e,t,{id:h,threadId:h,ref:"",dT:"",personId:"",text:{dataStream:""},unitId:e,subUnitId:t})}),this._threadCommentModel.syncThreadComments(e,t,[...D])}}}))}};K=De([R(1,c.Inject(_.DocInterceptorService)),R(2,c.Inject(O.ThreadCommentPanelService)),R(3,c.Inject(V.DocRenderController)),R(4,c.IUniverInstanceService),R(5,c.Inject(w.ThreadCommentModel)),R(6,c.ICommandService)],K);var Me=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,be=(e,t,r)=>t in e?Me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ye=(e,t,r,n)=>{for(var i=n>1?void 0:n?Te(t,r):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=a(i)||i);return i},W=(e,t)=>(r,n)=>t(r,n,e),te=(e,t,r)=>be(e,typeof t!="symbol"?t+"":t,r);exports.UniverDocsThreadCommentUIPlugin=class extends c.Plugin{constructor(t=k,r,n,i){super(),this._config=t,this._injector=r,this._renderManagerSrv=n,this._configService=i;const{menu:o,...a}=c.merge({},k,this._config);o&&this._configService.setConfig("menu",o,{merge:!0}),this._configService.setConfig(ae,a)}onStarting(){[[q],[B],[P]].forEach(t=>{this._injector.add(t)})}onRendered(){this._initRenderModule(),this._injector.get(B),this._injector.get(q)}_initRenderModule(){[K].forEach(t=>{this._renderManagerSrv.registerRenderModule(c.UniverInstanceType.UNIVER_DOC,t)})}};te(exports.UniverDocsThreadCommentUIPlugin,"pluginName",ce);te(exports.UniverDocsThreadCommentUIPlugin,"type",c.UniverInstanceType.UNIVER_DOC);exports.UniverDocsThreadCommentUIPlugin=ye([c.DependentOn(O.UniverThreadCommentUIPlugin),W(1,c.Inject(c.Injector)),W(2,b.IRenderManagerService),W(3,c.IConfigService)],exports.UniverDocsThreadCommentUIPlugin);exports.AddDocCommentComment=G;exports.DeleteDocCommentComment=Z;exports.ShowCommentPanelOperation=N;exports.StartAddCommentOperation=j;
package/lib/es/index.js CHANGED
@@ -1,23 +1,23 @@
1
1
  var Oe = Object.defineProperty;
2
2
  var Me = (e, t, r) => t in e ? Oe(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
3
  var G = (e, t, r) => Me(e, typeof t != "symbol" ? t + "" : t, r);
4
- import { Inject as _, Disposable as B, CommandType as P, ICommandService as M, CustomDecorationType as q, sequenceExecute as ne, UniverInstanceType as p, SHEET_EDITOR_UNITS as be, IUniverInstanceService as A, Injector as re, isInternalEditorID as ie, UserManagerService as De, BuildTextUtils as ye, DependentOn as xe, IConfigService as Te, Plugin as Ue, merge as Re } from "@univerjs/core";
4
+ import { Inject as _, Disposable as B, CommandType as P, ICommandService as b, CustomDecorationType as q, sequenceExecute as ne, UniverInstanceType as p, SHEET_EDITOR_UNITS as be, IUniverInstanceService as A, Injector as re, isInternalEditorID as ie, UserManagerService as De, BuildTextUtils as ye, DependentOn as xe, IConfigService as Te, Plugin as Ue, merge as Re } from "@univerjs/core";
5
5
  import { IRenderManagerService as F, withCurrentTypeOfRenderer as Ee, DocumentEditArea as X } from "@univerjs/engine-render";
6
6
  import { ThreadCommentPanelService as U, SetActiveCommentOperation as oe, ThreadCommentPanel as Pe, UniverThreadCommentUIPlugin as Ae } from "@univerjs/thread-comment-ui";
7
- import { DocSelectionManagerService as H, DocSkeletonManagerService as Ne, RichTextEditingMutation as se, SetTextSelectionsOperation as we, DocInterceptorService as Ve, DOC_INTERCEPTOR_POINT as $e } from "@univerjs/docs";
7
+ import { DocSelectionManagerService as H, DocSkeletonManagerService as Ne, RichTextEditingMutation as de, SetTextSelectionsOperation as we, DocInterceptorService as Ve, DOC_INTERCEPTOR_POINT as $e } from "@univerjs/docs";
8
8
  import { addCustomDecorationBySelectionFactory as je, deleteCustomDecorationFactory as Be, DocSelectionRenderService as Fe, DocBackScrollRenderController as He, DocRenderController as Le } from "@univerjs/docs-ui";
9
- import { IThreadCommentDataSourceService as We, AddCommentMutation as Ke, getDT as Ge, ThreadCommentModel as de } from "@univerjs/thread-comment";
9
+ import { IThreadCommentDataSourceService as We, AddCommentMutation as Ke, getDT as Ge, ThreadCommentModel as se } from "@univerjs/thread-comment";
10
10
  import { ISidebarService as L, getMenuHiddenObservable as ce, MenuItemType as ae, useDependency as E, useObservable as Z, ContextMenuPosition as Ze, ContextMenuGroup as ze, RibbonInsertGroup as ke, IMenuManagerService as Je, ComponentManager as qe } from "@univerjs/ui";
11
11
  import { BehaviorSubject as Ye, Observable as me, debounceTime as le, filter as Qe } from "rxjs";
12
12
  import { jsx as Xe } from "react/jsx-runtime";
13
13
  import { useMemo as z, useState as et, useEffect as tt, forwardRef as ue, useRef as nt, createElement as fe } from "react";
14
14
  const rt = "DOC_THREAD_COMMENT_UI_PLUGIN", S = "default_doc", it = "docs-thread-comment-ui.config", ee = {};
15
- var ot = Object.getOwnPropertyDescriptor, st = (e, t, r, n) => {
16
- for (var i = n > 1 ? void 0 : n ? ot(t, r) : t, o = e.length - 1, s; o >= 0; o--)
17
- (s = e[o]) && (i = s(i) || i);
15
+ var ot = Object.getOwnPropertyDescriptor, dt = (e, t, r, n) => {
16
+ for (var i = n > 1 ? void 0 : n ? ot(t, r) : t, o = e.length - 1, d; o >= 0; o--)
17
+ (d = e[o]) && (i = d(i) || i);
18
18
  return i;
19
19
  }, te = (e, t) => (r, n) => t(r, n, e);
20
- let x = class extends B {
20
+ let T = class extends B {
21
21
  constructor(t, r) {
22
22
  super();
23
23
  G(this, "_addingComment$", new Ye(void 0));
@@ -36,17 +36,17 @@ let x = class extends B {
36
36
  this._addingComment$.next(void 0);
37
37
  }
38
38
  };
39
- x = st([
39
+ T = dt([
40
40
  te(0, L),
41
41
  te(1, _(U))
42
- ], x);
42
+ ], T);
43
43
  const he = {
44
44
  id: "docs.command.add-comment",
45
45
  type: P.COMMAND,
46
46
  async handler(e, t) {
47
47
  if (!t)
48
48
  return !1;
49
- const { comment: r, unitId: n } = t, o = await e.get(We).addComment(r), s = e.get(M), d = je(
49
+ const { comment: r, unitId: n } = t, o = await e.get(We).addComment(r), d = e.get(b), s = je(
50
50
  e,
51
51
  {
52
52
  id: o.threadId,
@@ -54,7 +54,7 @@ const he = {
54
54
  unitId: n
55
55
  }
56
56
  );
57
- if (d) {
57
+ if (s) {
58
58
  const l = {
59
59
  id: Ke.id,
60
60
  params: {
@@ -70,7 +70,7 @@ const he = {
70
70
  commentId: o.id
71
71
  }
72
72
  };
73
- return (await ne([l, d, f], s)).result;
73
+ return (await ne([l, s, f], d)).result;
74
74
  }
75
75
  return !1;
76
76
  }
@@ -80,26 +80,26 @@ const he = {
80
80
  async handler(e, t) {
81
81
  if (!t)
82
82
  return !1;
83
- const { commentId: r, unitId: n } = t, i = e.get(M), o = Be(e, {
83
+ const { commentId: r, unitId: n } = t, i = e.get(b), o = Be(e, {
84
84
  id: r,
85
85
  unitId: n
86
86
  });
87
87
  return o ? (await ne([o], i)).result : !1;
88
88
  }
89
89
  }, ge = (e) => {
90
- var s;
91
- const t = e.get(F), r = e.get(H), n = (s = Ee(
90
+ var d;
91
+ const t = e.get(F), r = e.get(H), n = (d = Ee(
92
92
  p.UNIVER_DOC,
93
93
  Ne,
94
94
  e.get(A),
95
95
  t
96
- )) == null ? void 0 : s.getSkeleton(), i = n == null ? void 0 : n.getViewModel().getEditArea();
96
+ )) == null ? void 0 : d.getSkeleton(), i = n == null ? void 0 : n.getViewModel().getEditArea();
97
97
  if (i === X.FOOTER || i === X.HEADER)
98
98
  return !0;
99
99
  const o = r.getActiveTextRange();
100
100
  return !!(o == null || o.collapsed);
101
101
  };
102
- function dt(e) {
102
+ function st(e) {
103
103
  return {
104
104
  id: W.id,
105
105
  type: ae.BUTTON,
@@ -127,23 +127,23 @@ function ct(e) {
127
127
  hidden$: ce(e, p.UNIVER_DOC)
128
128
  };
129
129
  }
130
- const T = () => {
131
- const e = E(A), t = E(re), r = z(() => e.getCurrentTypeOfUnit$(p.UNIVER_DOC).pipe(Qe((c) => !!c && !ie(c.getUnitId()))), [e]), n = Z(r), i = z(() => new me((c) => c.next(S)), []), o = E(H), s = z(
130
+ const M = () => {
131
+ const e = E(A), t = E(re), r = z(() => e.getCurrentTypeOfUnit$(p.UNIVER_DOC).pipe(Qe((c) => !!c && !ie(c.getUnitId()))), [e]), n = Z(r), i = z(() => new me((c) => c.next(S)), []), o = E(H), d = z(
132
132
  () => o.textSelection$.pipe(le(16)),
133
133
  [o.textSelection$]
134
134
  );
135
- Z(s);
136
- const d = E(M), l = E(x), f = Z(l.addingComment$), [a, h] = et([]);
135
+ Z(d);
136
+ const s = E(b), l = E(T), f = Z(l.addingComment$), [a, h] = et([]);
137
137
  if (tt(() => {
138
- var b;
138
+ var D;
139
139
  const c = /* @__PURE__ */ new Set(), m = n == null ? void 0 : n.getCustomDecorations();
140
- h((b = m == null ? void 0 : m.map((u) => u.id).filter((u) => {
140
+ h((D = m == null ? void 0 : m.map((u) => u.id).filter((u) => {
141
141
  const O = c.has(u);
142
142
  return c.add(u), !O;
143
- })) != null ? b : []);
144
- const I = d.onCommandExecuted((u) => {
143
+ })) != null ? D : []);
144
+ const I = s.onCommandExecuted((u) => {
145
145
  var O;
146
- if (u.id === se.id) {
146
+ if (u.id === de.id) {
147
147
  const R = /* @__PURE__ */ new Set(), K = n == null ? void 0 : n.getCustomDecorations();
148
148
  h((O = K == null ? void 0 : K.map((N) => N.id).filter((N) => {
149
149
  const Se = R.has(N);
@@ -154,7 +154,7 @@ const T = () => {
154
154
  return () => {
155
155
  I.dispose();
156
156
  };
157
- }, [d, n]), !n)
157
+ }, [s, n]), !n)
158
158
  return null;
159
159
  const g = ge(t), C = n.getUnitId();
160
160
  return /* @__PURE__ */ Xe(
@@ -164,7 +164,7 @@ const T = () => {
164
164
  subUnitId$: i,
165
165
  type: p.UNIVER_DOC,
166
166
  onAdd: () => {
167
- d.executeCommand(W.id);
167
+ s.executeCommand(W.id);
168
168
  },
169
169
  getSubUnitName: () => "",
170
170
  disableAdd: g,
@@ -176,7 +176,7 @@ const T = () => {
176
176
  range: f,
177
177
  comment: c
178
178
  };
179
- return d.executeCommand(he.id, m), l.endAdd(), !1;
179
+ return s.executeCommand(he.id, m), l.endAdd(), !1;
180
180
  }
181
181
  return !0;
182
182
  },
@@ -186,7 +186,7 @@ const T = () => {
186
186
  unitId: C,
187
187
  commentId: c.id
188
188
  };
189
- return d.executeCommand(Ce.id, m), !1;
189
+ return s.executeCommand(Ce.id, m), !1;
190
190
  }
191
191
  return !0;
192
192
  },
@@ -194,16 +194,16 @@ const T = () => {
194
194
  }
195
195
  );
196
196
  };
197
- T.componentKey = "univer.doc.thread-comment-panel";
197
+ M.componentKey = "univer.doc.thread-comment-panel";
198
198
  const w = {
199
199
  id: "docs.operation.show-comment-panel",
200
200
  type: P.OPERATION,
201
201
  handler(e, t) {
202
202
  var i;
203
203
  const r = e.get(U), n = e.get(L);
204
- return (!r.panelVisible || ((i = n.options.children) == null ? void 0 : i.label) !== T.componentKey) && (n.open({
204
+ return (!r.panelVisible || ((i = n.options.children) == null ? void 0 : i.label) !== M.componentKey) && (n.open({
205
205
  header: { title: "threadCommentUI.panel.title" },
206
- children: { label: T.componentKey },
206
+ children: { label: M.componentKey },
207
207
  width: 320,
208
208
  onClose: () => r.setPanelVisible(!1)
209
209
  }), r.setPanelVisible(!0)), t && r.setActiveComment(t == null ? void 0 : t.activeComment), !0;
@@ -214,9 +214,9 @@ const w = {
214
214
  handler(e) {
215
215
  var n;
216
216
  const t = e.get(U), r = e.get(L);
217
- return !t.panelVisible || ((n = r.options.children) == null ? void 0 : n.label) !== T.componentKey ? (r.open({
217
+ return !t.panelVisible || ((n = r.options.children) == null ? void 0 : n.label) !== M.componentKey ? (r.open({
218
218
  header: { title: "threadCommentUI.panel.title" },
219
- children: { label: T.componentKey },
219
+ children: { label: M.componentKey },
220
220
  width: 320,
221
221
  onClose: () => t.setPanelVisible(!1)
222
222
  }), t.setPanelVisible(!0)) : (r.close(), t.setPanelVisible(!1), t.setActiveComment(null)), !0;
@@ -226,20 +226,20 @@ const w = {
226
226
  type: P.OPERATION,
227
227
  handler(e) {
228
228
  var u, O, R;
229
- const t = e.get(U), n = e.get(A).getCurrentUnitForType(p.UNIVER_DOC), i = e.get(H), o = e.get(F), s = e.get(De), d = e.get(x), l = e.get(M), f = e.get(L), a = i.getActiveTextRange();
229
+ const t = e.get(U), n = e.get(A).getCurrentUnitForType(p.UNIVER_DOC), i = e.get(H), o = e.get(F), d = e.get(De), s = e.get(T), l = e.get(b), f = e.get(L), a = i.getActiveTextRange();
230
230
  if (!n || !a)
231
231
  return !1;
232
232
  const h = (u = o.getRenderById(n.getUnitId())) == null ? void 0 : u.with(Fe);
233
233
  if (h == null || h.setReserveRangesStatus(!0), a.collapsed)
234
234
  return t.panelVisible ? (t.setPanelVisible(!1), f.close()) : l.executeCommand(w.id), !0;
235
235
  l.executeCommand(w.id);
236
- const g = n.getUnitId(), C = ((R = (O = n.getBody()) == null ? void 0 : O.dataStream) != null ? R : "").slice(a.startOffset, a.endOffset), c = ye.transform.getPlainText(C), m = S, I = "", b = {
236
+ const g = n.getUnitId(), C = ((R = (O = n.getBody()) == null ? void 0 : O.dataStream) != null ? R : "").slice(a.startOffset, a.endOffset), c = ye.transform.getPlainText(C), m = S, I = "", D = {
237
237
  unitId: g,
238
238
  subUnitId: m,
239
239
  id: I,
240
240
  ref: c,
241
241
  dT: Ge(),
242
- personId: s.getCurrentUser().userID,
242
+ personId: d.getCurrentUser().userID,
243
243
  text: {
244
244
  dataStream: `\r
245
245
  `
@@ -249,7 +249,7 @@ const w = {
249
249
  collapsed: !0,
250
250
  threadId: I
251
251
  };
252
- return h == null || h.blur(), d.startAdd(b), t.setActiveComment({
252
+ return h == null || h.blur(), s.startAdd(D), t.setActiveComment({
253
253
  unitId: g,
254
254
  subUnitId: m,
255
255
  commentId: I
@@ -257,10 +257,10 @@ const w = {
257
257
  }
258
258
  };
259
259
  var at = Object.getOwnPropertyDescriptor, mt = (e, t, r, n) => {
260
- for (var i = n > 1 ? void 0 : n ? at(t, r) : t, o = e.length - 1, s; o >= 0; o--)
261
- (s = e[o]) && (i = s(i) || i);
260
+ for (var i = n > 1 ? void 0 : n ? at(t, r) : t, o = e.length - 1, d; o >= 0; o--)
261
+ (d = e[o]) && (i = d(i) || i);
262
262
  return i;
263
- }, D = (e, t) => (r, n) => t(r, n, e);
263
+ }, y = (e, t) => (r, n) => t(r, n, e);
264
264
  let V = class extends B {
265
265
  constructor(e, t, r, n, i, o) {
266
266
  super(), this._threadCommentPanelService = e, this._univerInstanceService = t, this._commandService = r, this._docThreadCommentService = n, this._renderManagerService = i, this._threadCommentModel = o, this._initSelectionChange(), this._initActiveCommandChange();
@@ -271,19 +271,19 @@ let V = class extends B {
271
271
  this._commandService.onCommandExecuted((t) => {
272
272
  var r, n, i, o;
273
273
  if (t.id === we.id) {
274
- const s = t.params, { unitId: d, ranges: l } = s;
275
- if (ie(d)) return;
276
- const f = this._univerInstanceService.getUnit(d, p.UNIVER_DOC), a = l[0];
274
+ const d = t.params, { unitId: s, ranges: l } = d;
275
+ if (ie(s)) return;
276
+ const f = this._univerInstanceService.getUnit(s, p.UNIVER_DOC), a = l[0];
277
277
  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))
278
278
  return;
279
279
  if (e = a, a && f) {
280
280
  const { startOffset: h, endOffset: g, collapsed: C } = a;
281
281
  let c;
282
282
  if (C ? c = (n = (r = f.getBody()) == null ? void 0 : r.customDecorations) == null ? void 0 : n.find((m) => m.startIndex <= h && m.endIndex >= g - 1) : c = (o = (i = f.getBody()) == null ? void 0 : i.customDecorations) == null ? void 0 : o.find((m) => m.startIndex <= h && m.endIndex >= g - 1), c) {
283
- const m = this._threadCommentModel.getComment(d, S, c.id);
283
+ const m = this._threadCommentModel.getComment(s, S, c.id);
284
284
  m && !m.resolved && this._commandService.executeCommand(w.id, {
285
285
  activeComment: {
286
- unitId: d,
286
+ unitId: s,
287
287
  subUnitId: S,
288
288
  commentId: c.id
289
289
  }
@@ -304,10 +304,10 @@ let V = class extends B {
304
304
  if (e) {
305
305
  const o = this._univerInstanceService.getUnit(e.unitId);
306
306
  if (o) {
307
- const s = (t = this._renderManagerService.getRenderById(e.unitId)) == null ? void 0 : t.with(He), d = (n = (r = o.getBody()) == null ? void 0 : r.customDecorations) == null ? void 0 : n.find((l) => l.id === e.commentId);
308
- d && s && s.scrollToRange({
309
- startOffset: d.startIndex,
310
- endOffset: d.endIndex,
307
+ const d = (t = this._renderManagerService.getRenderById(e.unitId)) == null ? void 0 : t.with(He), s = (n = (r = o.getBody()) == null ? void 0 : r.customDecorations) == null ? void 0 : n.find((l) => l.id === e.commentId);
308
+ s && d && d.scrollToRange({
309
+ startOffset: s.startIndex,
310
+ endOffset: s.endIndex,
311
311
  collapsed: !1
312
312
  });
313
313
  }
@@ -317,12 +317,12 @@ let V = class extends B {
317
317
  }
318
318
  };
319
319
  V = mt([
320
- D(0, _(U)),
321
- D(1, A),
322
- D(2, M),
323
- D(3, _(x)),
324
- D(4, F),
325
- D(5, _(de))
320
+ y(0, _(U)),
321
+ y(1, A),
322
+ y(2, b),
323
+ y(3, _(T)),
324
+ y(4, F),
325
+ y(5, _(se))
326
326
  ], V);
327
327
  var v = function() {
328
328
  return v = Object.assign || function(e) {
@@ -340,24 +340,24 @@ var v = function() {
340
340
  t.indexOf(n[i]) < 0 && Object.prototype.propertyIsEnumerable.call(e, n[i]) && (r[n[i]] = e[n[i]]);
341
341
  return r;
342
342
  }, ve = ue(function(e, t) {
343
- var r = e.icon, n = e.id, i = e.className, o = e.extend, s = lt(e, ["icon", "id", "className", "extend"]), d = "univerjs-icon univerjs-icon-".concat(n, " ").concat(i || "").trim(), l = nt("_".concat(ht()));
344
- return _e(r, "".concat(n), { defIds: r.defIds, idSuffix: l.current }, v({ ref: t, className: d }, s), o);
343
+ var r = e.icon, n = e.id, i = e.className, o = e.extend, d = lt(e, ["icon", "id", "className", "extend"]), s = "univerjs-icon univerjs-icon-".concat(n, " ").concat(i || "").trim(), l = nt("_".concat(ht()));
344
+ return _e(r, "".concat(n), { defIds: r.defIds, idSuffix: l.current }, v({ ref: t, className: s }, d), o);
345
345
  });
346
346
  function _e(e, t, r, n, i) {
347
- return fe(e.tag, v(v({ key: t }, ut(e, r, i)), n), (ft(e, r).children || []).map(function(o, s) {
348
- return _e(o, "".concat(t, "-").concat(e.tag, "-").concat(s), r, void 0, i);
347
+ return fe(e.tag, v(v({ key: t }, ut(e, r, i)), n), (ft(e, r).children || []).map(function(o, d) {
348
+ return _e(o, "".concat(t, "-").concat(e.tag, "-").concat(d), r, void 0, i);
349
349
  }));
350
350
  }
351
351
  function ut(e, t, r) {
352
352
  var n = v({}, e.attrs);
353
353
  r != null && r.colorChannel1 && n.fill === "colorChannel1" && (n.fill = r.colorChannel1), e.tag === "mask" && n.id && (n.id = n.id + t.idSuffix), Object.entries(n).forEach(function(o) {
354
- var s = o[0], d = o[1];
355
- s === "mask" && typeof d == "string" && (n[s] = d.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
354
+ var d = o[0], s = o[1];
355
+ d === "mask" && typeof s == "string" && (n[d] = s.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
356
356
  });
357
357
  var i = t.defIds;
358
358
  return !i || i.length === 0 || (e.tag === "use" && n["xlink:href"] && (n["xlink:href"] = n["xlink:href"] + t.idSuffix), Object.entries(n).forEach(function(o) {
359
- var s = o[0], d = o[1];
360
- typeof d == "string" && (n[s] = d.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
359
+ var d = o[0], s = o[1];
360
+ typeof s == "string" && (n[d] = s.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
361
361
  })), n;
362
362
  }
363
363
  function ft(e, t) {
@@ -389,14 +389,14 @@ const gt = {
389
389
  [ze.DATA]: {
390
390
  [W.id]: {
391
391
  order: 1,
392
- menuItemFactory: dt
392
+ menuItemFactory: st
393
393
  }
394
394
  }
395
395
  }
396
396
  };
397
397
  var vt = Object.getOwnPropertyDescriptor, _t = (e, t, r, n) => {
398
- for (var i = n > 1 ? void 0 : n ? vt(t, r) : t, o = e.length - 1, s; o >= 0; o--)
399
- (s = e[o]) && (i = s(i) || i);
398
+ for (var i = n > 1 ? void 0 : n ? vt(t, r) : t, o = e.length - 1, d; o >= 0; o--)
399
+ (d = e[o]) && (i = d(i) || i);
400
400
  return i;
401
401
  }, k = (e, t) => (r, n) => t(r, n, e);
402
402
  let $ = class extends B {
@@ -418,24 +418,29 @@ let $ = class extends B {
418
418
  this._menuManagerService.mergeMenu(gt);
419
419
  }
420
420
  _initComponents() {
421
- [T].forEach((e) => {
422
- this.disposeWithMe(this._componentManager.register(e.componentKey, e));
423
- }), this.disposeWithMe(this._componentManager.register("CommentSingle", pe));
421
+ [
422
+ [M.componentKey, M],
423
+ ["CommentSingle", pe]
424
+ ].forEach(([e, t]) => {
425
+ this.disposeWithMe(
426
+ this._componentManager.register(e, t)
427
+ );
428
+ });
424
429
  }
425
430
  };
426
431
  $ = _t([
427
- k(0, M),
432
+ k(0, b),
428
433
  k(1, Je),
429
434
  k(2, _(qe))
430
435
  ], $);
431
436
  var pt = Object.getOwnPropertyDescriptor, It = (e, t, r, n) => {
432
- for (var i = n > 1 ? void 0 : n ? pt(t, r) : t, o = e.length - 1, s; o >= 0; o--)
433
- (s = e[o]) && (i = s(i) || i);
437
+ for (var i = n > 1 ? void 0 : n ? pt(t, r) : t, o = e.length - 1, d; o >= 0; o--)
438
+ (d = e[o]) && (i = d(i) || i);
434
439
  return i;
435
- }, y = (e, t) => (r, n) => t(r, n, e);
440
+ }, x = (e, t) => (r, n) => t(r, n, e);
436
441
  let Y = class extends B {
437
- constructor(e, t, r, n, i, o, s) {
438
- super(), this._context = e, this._docInterceptorService = t, this._threadCommentPanelService = r, this._docRenderController = n, this._univerInstanceService = i, this._threadCommentModel = o, this._commandService = s, this._interceptorViewModel(), this._initReRender(), this._initSyncComments();
442
+ constructor(e, t, r, n, i, o, d) {
443
+ super(), this._context = e, this._docInterceptorService = t, this._threadCommentPanelService = r, this._docRenderController = n, this._univerInstanceService = i, this._threadCommentModel = o, this._commandService = d, this._interceptorViewModel(), this._initReRender(), this._initSyncComments();
439
444
  }
440
445
  _initReRender() {
441
446
  this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe((e) => {
@@ -455,13 +460,13 @@ let Y = class extends B {
455
460
  handler: (e, t, r) => {
456
461
  if (!e)
457
462
  return r(e);
458
- const { unitId: n, index: i, customDecorations: o } = t, s = this._threadCommentPanelService.activeCommentId, { commentId: d, unitId: l } = s || {}, f = o.find((C) => C.id === d), a = this._threadCommentModel.getComment(n, S, e.id);
463
+ const { unitId: n, index: i, customDecorations: o } = t, d = this._threadCommentPanelService.activeCommentId, { commentId: s, unitId: l } = d || {}, f = o.find((C) => C.id === s), a = this._threadCommentModel.getComment(n, S, e.id);
459
464
  if (!a)
460
465
  return r({
461
466
  ...e,
462
467
  show: !1
463
468
  });
464
- const h = f && i >= f.startIndex && i <= f.endIndex, g = l === n && e.id === d;
469
+ const h = f && i >= f.startIndex && i <= f.endIndex, g = l === n && e.id === s;
465
470
  return r({
466
471
  ...e,
467
472
  active: g || h,
@@ -471,24 +476,24 @@ let Y = class extends B {
471
476
  });
472
477
  }
473
478
  _initSyncComments() {
474
- var i, o, s;
475
- const e = this._context.unit.getUnitId(), t = S, r = (s = (o = (i = this._context.unit.getBody()) == null ? void 0 : i.customDecorations) == null ? void 0 : o.filter((d) => d.type === q.COMMENT).map((d) => d.id)) != null ? s : [];
476
- r.forEach((d) => {
477
- this._threadCommentModel.getComment(e, t, d) || this._threadCommentModel.addComment(e, t, { id: d, threadId: d, ref: "", dT: "", personId: "", text: { dataStream: "" }, unitId: e, subUnitId: t });
479
+ var i, o, d;
480
+ const e = this._context.unit.getUnitId(), t = S, r = (d = (o = (i = this._context.unit.getBody()) == null ? void 0 : i.customDecorations) == null ? void 0 : o.filter((s) => s.type === q.COMMENT).map((s) => s.id)) != null ? d : [];
481
+ r.forEach((s) => {
482
+ this._threadCommentModel.getComment(e, t, s) || this._threadCommentModel.addComment(e, t, { id: s, threadId: s, ref: "", dT: "", personId: "", text: { dataStream: "" }, unitId: e, subUnitId: t });
478
483
  }), r.length && this._threadCommentModel.syncThreadComments(this._context.unit.getUnitId(), S, r);
479
484
  let n = r.sort();
480
- this.disposeWithMe(this._commandService.onCommandExecuted((d) => {
485
+ this.disposeWithMe(this._commandService.onCommandExecuted((s) => {
481
486
  var l, f, a;
482
- if (d.id === se.id) {
483
- if (d.params.unitId !== this._context.unit.getUnitId())
487
+ if (s.id === de.id) {
488
+ if (s.params.unitId !== this._context.unit.getUnitId())
484
489
  return;
485
490
  const g = (a = (f = (l = this._context.unit.getBody()) == null ? void 0 : l.customDecorations) == null ? void 0 : f.filter((c) => c.type === q.COMMENT).map((c) => c.id)) != null ? a : [], C = g.sort();
486
491
  if (JSON.stringify(n) !== JSON.stringify(C)) {
487
- const c = new Set(n), m = new Set(C), I = /* @__PURE__ */ new Set(), b = /* @__PURE__ */ new Set();
492
+ const c = new Set(n), m = new Set(C), I = /* @__PURE__ */ new Set(), D = /* @__PURE__ */ new Set();
488
493
  g.forEach((u) => {
489
494
  c.has(u) || I.add(u);
490
495
  }), n.forEach((u) => {
491
- m.has(u) || b.add(u);
496
+ m.has(u) || D.add(u);
492
497
  }), n = C, I.forEach((u) => {
493
498
  this._threadCommentModel.getComment(e, t, u) || this._threadCommentModel.addComment(e, t, { id: u, threadId: u, ref: "", dT: "", personId: "", text: { dataStream: "" }, unitId: e, subUnitId: t });
494
499
  }), this._threadCommentModel.syncThreadComments(e, t, [...I]);
@@ -498,16 +503,16 @@ let Y = class extends B {
498
503
  }
499
504
  };
500
505
  Y = It([
501
- y(1, _(Ve)),
502
- y(2, _(U)),
503
- y(3, _(Le)),
504
- y(4, A),
505
- y(5, _(de)),
506
- y(6, M)
506
+ x(1, _(Ve)),
507
+ x(2, _(U)),
508
+ x(3, _(Le)),
509
+ x(4, A),
510
+ x(5, _(se)),
511
+ x(6, b)
507
512
  ], Y);
508
513
  var St = Object.defineProperty, Ot = Object.getOwnPropertyDescriptor, Mt = (e, t, r) => t in e ? St(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, bt = (e, t, r, n) => {
509
- for (var i = n > 1 ? void 0 : n ? Ot(t, r) : t, o = e.length - 1, s; o >= 0; o--)
510
- (s = e[o]) && (i = s(i) || i);
514
+ for (var i = n > 1 ? void 0 : n ? Ot(t, r) : t, o = e.length - 1, d; o >= 0; o--)
515
+ (d = e[o]) && (i = d(i) || i);
511
516
  return i;
512
517
  }, J = (e, t) => (r, n) => t(r, n, e), Ie = (e, t, r) => Mt(e, typeof t != "symbol" ? t + "" : t, r);
513
518
  let j = class extends Ue {
@@ -524,7 +529,7 @@ let j = class extends Ue {
524
529
  [
525
530
  [$],
526
531
  [V],
527
- [x]
532
+ [T]
528
533
  ].forEach((e) => {
529
534
  this._injector.add(e);
530
535
  });
package/lib/index.js CHANGED
@@ -1,23 +1,23 @@
1
1
  var Oe = Object.defineProperty;
2
2
  var Me = (e, t, r) => t in e ? Oe(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
3
  var G = (e, t, r) => Me(e, typeof t != "symbol" ? t + "" : t, r);
4
- import { Inject as _, Disposable as B, CommandType as P, ICommandService as M, CustomDecorationType as q, sequenceExecute as ne, UniverInstanceType as p, SHEET_EDITOR_UNITS as be, IUniverInstanceService as A, Injector as re, isInternalEditorID as ie, UserManagerService as De, BuildTextUtils as ye, DependentOn as xe, IConfigService as Te, Plugin as Ue, merge as Re } from "@univerjs/core";
4
+ import { Inject as _, Disposable as B, CommandType as P, ICommandService as b, CustomDecorationType as q, sequenceExecute as ne, UniverInstanceType as p, SHEET_EDITOR_UNITS as be, IUniverInstanceService as A, Injector as re, isInternalEditorID as ie, UserManagerService as De, BuildTextUtils as ye, DependentOn as xe, IConfigService as Te, Plugin as Ue, merge as Re } from "@univerjs/core";
5
5
  import { IRenderManagerService as F, withCurrentTypeOfRenderer as Ee, DocumentEditArea as X } from "@univerjs/engine-render";
6
6
  import { ThreadCommentPanelService as U, SetActiveCommentOperation as oe, ThreadCommentPanel as Pe, UniverThreadCommentUIPlugin as Ae } from "@univerjs/thread-comment-ui";
7
- import { DocSelectionManagerService as H, DocSkeletonManagerService as Ne, RichTextEditingMutation as se, SetTextSelectionsOperation as we, DocInterceptorService as Ve, DOC_INTERCEPTOR_POINT as $e } from "@univerjs/docs";
7
+ import { DocSelectionManagerService as H, DocSkeletonManagerService as Ne, RichTextEditingMutation as de, SetTextSelectionsOperation as we, DocInterceptorService as Ve, DOC_INTERCEPTOR_POINT as $e } from "@univerjs/docs";
8
8
  import { addCustomDecorationBySelectionFactory as je, deleteCustomDecorationFactory as Be, DocSelectionRenderService as Fe, DocBackScrollRenderController as He, DocRenderController as Le } from "@univerjs/docs-ui";
9
- import { IThreadCommentDataSourceService as We, AddCommentMutation as Ke, getDT as Ge, ThreadCommentModel as de } from "@univerjs/thread-comment";
9
+ import { IThreadCommentDataSourceService as We, AddCommentMutation as Ke, getDT as Ge, ThreadCommentModel as se } from "@univerjs/thread-comment";
10
10
  import { ISidebarService as L, getMenuHiddenObservable as ce, MenuItemType as ae, useDependency as E, useObservable as Z, ContextMenuPosition as Ze, ContextMenuGroup as ze, RibbonInsertGroup as ke, IMenuManagerService as Je, ComponentManager as qe } from "@univerjs/ui";
11
11
  import { BehaviorSubject as Ye, Observable as me, debounceTime as le, filter as Qe } from "rxjs";
12
12
  import { jsx as Xe } from "react/jsx-runtime";
13
13
  import { useMemo as z, useState as et, useEffect as tt, forwardRef as ue, useRef as nt, createElement as fe } from "react";
14
14
  const rt = "DOC_THREAD_COMMENT_UI_PLUGIN", S = "default_doc", it = "docs-thread-comment-ui.config", ee = {};
15
- var ot = Object.getOwnPropertyDescriptor, st = (e, t, r, n) => {
16
- for (var i = n > 1 ? void 0 : n ? ot(t, r) : t, o = e.length - 1, s; o >= 0; o--)
17
- (s = e[o]) && (i = s(i) || i);
15
+ var ot = Object.getOwnPropertyDescriptor, dt = (e, t, r, n) => {
16
+ for (var i = n > 1 ? void 0 : n ? ot(t, r) : t, o = e.length - 1, d; o >= 0; o--)
17
+ (d = e[o]) && (i = d(i) || i);
18
18
  return i;
19
19
  }, te = (e, t) => (r, n) => t(r, n, e);
20
- let x = class extends B {
20
+ let T = class extends B {
21
21
  constructor(t, r) {
22
22
  super();
23
23
  G(this, "_addingComment$", new Ye(void 0));
@@ -36,17 +36,17 @@ let x = class extends B {
36
36
  this._addingComment$.next(void 0);
37
37
  }
38
38
  };
39
- x = st([
39
+ T = dt([
40
40
  te(0, L),
41
41
  te(1, _(U))
42
- ], x);
42
+ ], T);
43
43
  const he = {
44
44
  id: "docs.command.add-comment",
45
45
  type: P.COMMAND,
46
46
  async handler(e, t) {
47
47
  if (!t)
48
48
  return !1;
49
- const { comment: r, unitId: n } = t, o = await e.get(We).addComment(r), s = e.get(M), d = je(
49
+ const { comment: r, unitId: n } = t, o = await e.get(We).addComment(r), d = e.get(b), s = je(
50
50
  e,
51
51
  {
52
52
  id: o.threadId,
@@ -54,7 +54,7 @@ const he = {
54
54
  unitId: n
55
55
  }
56
56
  );
57
- if (d) {
57
+ if (s) {
58
58
  const l = {
59
59
  id: Ke.id,
60
60
  params: {
@@ -70,7 +70,7 @@ const he = {
70
70
  commentId: o.id
71
71
  }
72
72
  };
73
- return (await ne([l, d, f], s)).result;
73
+ return (await ne([l, s, f], d)).result;
74
74
  }
75
75
  return !1;
76
76
  }
@@ -80,26 +80,26 @@ const he = {
80
80
  async handler(e, t) {
81
81
  if (!t)
82
82
  return !1;
83
- const { commentId: r, unitId: n } = t, i = e.get(M), o = Be(e, {
83
+ const { commentId: r, unitId: n } = t, i = e.get(b), o = Be(e, {
84
84
  id: r,
85
85
  unitId: n
86
86
  });
87
87
  return o ? (await ne([o], i)).result : !1;
88
88
  }
89
89
  }, ge = (e) => {
90
- var s;
91
- const t = e.get(F), r = e.get(H), n = (s = Ee(
90
+ var d;
91
+ const t = e.get(F), r = e.get(H), n = (d = Ee(
92
92
  p.UNIVER_DOC,
93
93
  Ne,
94
94
  e.get(A),
95
95
  t
96
- )) == null ? void 0 : s.getSkeleton(), i = n == null ? void 0 : n.getViewModel().getEditArea();
96
+ )) == null ? void 0 : d.getSkeleton(), i = n == null ? void 0 : n.getViewModel().getEditArea();
97
97
  if (i === X.FOOTER || i === X.HEADER)
98
98
  return !0;
99
99
  const o = r.getActiveTextRange();
100
100
  return !!(o == null || o.collapsed);
101
101
  };
102
- function dt(e) {
102
+ function st(e) {
103
103
  return {
104
104
  id: W.id,
105
105
  type: ae.BUTTON,
@@ -127,23 +127,23 @@ function ct(e) {
127
127
  hidden$: ce(e, p.UNIVER_DOC)
128
128
  };
129
129
  }
130
- const T = () => {
131
- const e = E(A), t = E(re), r = z(() => e.getCurrentTypeOfUnit$(p.UNIVER_DOC).pipe(Qe((c) => !!c && !ie(c.getUnitId()))), [e]), n = Z(r), i = z(() => new me((c) => c.next(S)), []), o = E(H), s = z(
130
+ const M = () => {
131
+ const e = E(A), t = E(re), r = z(() => e.getCurrentTypeOfUnit$(p.UNIVER_DOC).pipe(Qe((c) => !!c && !ie(c.getUnitId()))), [e]), n = Z(r), i = z(() => new me((c) => c.next(S)), []), o = E(H), d = z(
132
132
  () => o.textSelection$.pipe(le(16)),
133
133
  [o.textSelection$]
134
134
  );
135
- Z(s);
136
- const d = E(M), l = E(x), f = Z(l.addingComment$), [a, h] = et([]);
135
+ Z(d);
136
+ const s = E(b), l = E(T), f = Z(l.addingComment$), [a, h] = et([]);
137
137
  if (tt(() => {
138
- var b;
138
+ var D;
139
139
  const c = /* @__PURE__ */ new Set(), m = n == null ? void 0 : n.getCustomDecorations();
140
- h((b = m == null ? void 0 : m.map((u) => u.id).filter((u) => {
140
+ h((D = m == null ? void 0 : m.map((u) => u.id).filter((u) => {
141
141
  const O = c.has(u);
142
142
  return c.add(u), !O;
143
- })) != null ? b : []);
144
- const I = d.onCommandExecuted((u) => {
143
+ })) != null ? D : []);
144
+ const I = s.onCommandExecuted((u) => {
145
145
  var O;
146
- if (u.id === se.id) {
146
+ if (u.id === de.id) {
147
147
  const R = /* @__PURE__ */ new Set(), K = n == null ? void 0 : n.getCustomDecorations();
148
148
  h((O = K == null ? void 0 : K.map((N) => N.id).filter((N) => {
149
149
  const Se = R.has(N);
@@ -154,7 +154,7 @@ const T = () => {
154
154
  return () => {
155
155
  I.dispose();
156
156
  };
157
- }, [d, n]), !n)
157
+ }, [s, n]), !n)
158
158
  return null;
159
159
  const g = ge(t), C = n.getUnitId();
160
160
  return /* @__PURE__ */ Xe(
@@ -164,7 +164,7 @@ const T = () => {
164
164
  subUnitId$: i,
165
165
  type: p.UNIVER_DOC,
166
166
  onAdd: () => {
167
- d.executeCommand(W.id);
167
+ s.executeCommand(W.id);
168
168
  },
169
169
  getSubUnitName: () => "",
170
170
  disableAdd: g,
@@ -176,7 +176,7 @@ const T = () => {
176
176
  range: f,
177
177
  comment: c
178
178
  };
179
- return d.executeCommand(he.id, m), l.endAdd(), !1;
179
+ return s.executeCommand(he.id, m), l.endAdd(), !1;
180
180
  }
181
181
  return !0;
182
182
  },
@@ -186,7 +186,7 @@ const T = () => {
186
186
  unitId: C,
187
187
  commentId: c.id
188
188
  };
189
- return d.executeCommand(Ce.id, m), !1;
189
+ return s.executeCommand(Ce.id, m), !1;
190
190
  }
191
191
  return !0;
192
192
  },
@@ -194,16 +194,16 @@ const T = () => {
194
194
  }
195
195
  );
196
196
  };
197
- T.componentKey = "univer.doc.thread-comment-panel";
197
+ M.componentKey = "univer.doc.thread-comment-panel";
198
198
  const w = {
199
199
  id: "docs.operation.show-comment-panel",
200
200
  type: P.OPERATION,
201
201
  handler(e, t) {
202
202
  var i;
203
203
  const r = e.get(U), n = e.get(L);
204
- return (!r.panelVisible || ((i = n.options.children) == null ? void 0 : i.label) !== T.componentKey) && (n.open({
204
+ return (!r.panelVisible || ((i = n.options.children) == null ? void 0 : i.label) !== M.componentKey) && (n.open({
205
205
  header: { title: "threadCommentUI.panel.title" },
206
- children: { label: T.componentKey },
206
+ children: { label: M.componentKey },
207
207
  width: 320,
208
208
  onClose: () => r.setPanelVisible(!1)
209
209
  }), r.setPanelVisible(!0)), t && r.setActiveComment(t == null ? void 0 : t.activeComment), !0;
@@ -214,9 +214,9 @@ const w = {
214
214
  handler(e) {
215
215
  var n;
216
216
  const t = e.get(U), r = e.get(L);
217
- return !t.panelVisible || ((n = r.options.children) == null ? void 0 : n.label) !== T.componentKey ? (r.open({
217
+ return !t.panelVisible || ((n = r.options.children) == null ? void 0 : n.label) !== M.componentKey ? (r.open({
218
218
  header: { title: "threadCommentUI.panel.title" },
219
- children: { label: T.componentKey },
219
+ children: { label: M.componentKey },
220
220
  width: 320,
221
221
  onClose: () => t.setPanelVisible(!1)
222
222
  }), t.setPanelVisible(!0)) : (r.close(), t.setPanelVisible(!1), t.setActiveComment(null)), !0;
@@ -226,20 +226,20 @@ const w = {
226
226
  type: P.OPERATION,
227
227
  handler(e) {
228
228
  var u, O, R;
229
- const t = e.get(U), n = e.get(A).getCurrentUnitForType(p.UNIVER_DOC), i = e.get(H), o = e.get(F), s = e.get(De), d = e.get(x), l = e.get(M), f = e.get(L), a = i.getActiveTextRange();
229
+ const t = e.get(U), n = e.get(A).getCurrentUnitForType(p.UNIVER_DOC), i = e.get(H), o = e.get(F), d = e.get(De), s = e.get(T), l = e.get(b), f = e.get(L), a = i.getActiveTextRange();
230
230
  if (!n || !a)
231
231
  return !1;
232
232
  const h = (u = o.getRenderById(n.getUnitId())) == null ? void 0 : u.with(Fe);
233
233
  if (h == null || h.setReserveRangesStatus(!0), a.collapsed)
234
234
  return t.panelVisible ? (t.setPanelVisible(!1), f.close()) : l.executeCommand(w.id), !0;
235
235
  l.executeCommand(w.id);
236
- const g = n.getUnitId(), C = ((R = (O = n.getBody()) == null ? void 0 : O.dataStream) != null ? R : "").slice(a.startOffset, a.endOffset), c = ye.transform.getPlainText(C), m = S, I = "", b = {
236
+ const g = n.getUnitId(), C = ((R = (O = n.getBody()) == null ? void 0 : O.dataStream) != null ? R : "").slice(a.startOffset, a.endOffset), c = ye.transform.getPlainText(C), m = S, I = "", D = {
237
237
  unitId: g,
238
238
  subUnitId: m,
239
239
  id: I,
240
240
  ref: c,
241
241
  dT: Ge(),
242
- personId: s.getCurrentUser().userID,
242
+ personId: d.getCurrentUser().userID,
243
243
  text: {
244
244
  dataStream: `\r
245
245
  `
@@ -249,7 +249,7 @@ const w = {
249
249
  collapsed: !0,
250
250
  threadId: I
251
251
  };
252
- return h == null || h.blur(), d.startAdd(b), t.setActiveComment({
252
+ return h == null || h.blur(), s.startAdd(D), t.setActiveComment({
253
253
  unitId: g,
254
254
  subUnitId: m,
255
255
  commentId: I
@@ -257,10 +257,10 @@ const w = {
257
257
  }
258
258
  };
259
259
  var at = Object.getOwnPropertyDescriptor, mt = (e, t, r, n) => {
260
- for (var i = n > 1 ? void 0 : n ? at(t, r) : t, o = e.length - 1, s; o >= 0; o--)
261
- (s = e[o]) && (i = s(i) || i);
260
+ for (var i = n > 1 ? void 0 : n ? at(t, r) : t, o = e.length - 1, d; o >= 0; o--)
261
+ (d = e[o]) && (i = d(i) || i);
262
262
  return i;
263
- }, D = (e, t) => (r, n) => t(r, n, e);
263
+ }, y = (e, t) => (r, n) => t(r, n, e);
264
264
  let V = class extends B {
265
265
  constructor(e, t, r, n, i, o) {
266
266
  super(), this._threadCommentPanelService = e, this._univerInstanceService = t, this._commandService = r, this._docThreadCommentService = n, this._renderManagerService = i, this._threadCommentModel = o, this._initSelectionChange(), this._initActiveCommandChange();
@@ -271,19 +271,19 @@ let V = class extends B {
271
271
  this._commandService.onCommandExecuted((t) => {
272
272
  var r, n, i, o;
273
273
  if (t.id === we.id) {
274
- const s = t.params, { unitId: d, ranges: l } = s;
275
- if (ie(d)) return;
276
- const f = this._univerInstanceService.getUnit(d, p.UNIVER_DOC), a = l[0];
274
+ const d = t.params, { unitId: s, ranges: l } = d;
275
+ if (ie(s)) return;
276
+ const f = this._univerInstanceService.getUnit(s, p.UNIVER_DOC), a = l[0];
277
277
  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))
278
278
  return;
279
279
  if (e = a, a && f) {
280
280
  const { startOffset: h, endOffset: g, collapsed: C } = a;
281
281
  let c;
282
282
  if (C ? c = (n = (r = f.getBody()) == null ? void 0 : r.customDecorations) == null ? void 0 : n.find((m) => m.startIndex <= h && m.endIndex >= g - 1) : c = (o = (i = f.getBody()) == null ? void 0 : i.customDecorations) == null ? void 0 : o.find((m) => m.startIndex <= h && m.endIndex >= g - 1), c) {
283
- const m = this._threadCommentModel.getComment(d, S, c.id);
283
+ const m = this._threadCommentModel.getComment(s, S, c.id);
284
284
  m && !m.resolved && this._commandService.executeCommand(w.id, {
285
285
  activeComment: {
286
- unitId: d,
286
+ unitId: s,
287
287
  subUnitId: S,
288
288
  commentId: c.id
289
289
  }
@@ -304,10 +304,10 @@ let V = class extends B {
304
304
  if (e) {
305
305
  const o = this._univerInstanceService.getUnit(e.unitId);
306
306
  if (o) {
307
- const s = (t = this._renderManagerService.getRenderById(e.unitId)) == null ? void 0 : t.with(He), d = (n = (r = o.getBody()) == null ? void 0 : r.customDecorations) == null ? void 0 : n.find((l) => l.id === e.commentId);
308
- d && s && s.scrollToRange({
309
- startOffset: d.startIndex,
310
- endOffset: d.endIndex,
307
+ const d = (t = this._renderManagerService.getRenderById(e.unitId)) == null ? void 0 : t.with(He), s = (n = (r = o.getBody()) == null ? void 0 : r.customDecorations) == null ? void 0 : n.find((l) => l.id === e.commentId);
308
+ s && d && d.scrollToRange({
309
+ startOffset: s.startIndex,
310
+ endOffset: s.endIndex,
311
311
  collapsed: !1
312
312
  });
313
313
  }
@@ -317,12 +317,12 @@ let V = class extends B {
317
317
  }
318
318
  };
319
319
  V = mt([
320
- D(0, _(U)),
321
- D(1, A),
322
- D(2, M),
323
- D(3, _(x)),
324
- D(4, F),
325
- D(5, _(de))
320
+ y(0, _(U)),
321
+ y(1, A),
322
+ y(2, b),
323
+ y(3, _(T)),
324
+ y(4, F),
325
+ y(5, _(se))
326
326
  ], V);
327
327
  var v = function() {
328
328
  return v = Object.assign || function(e) {
@@ -340,24 +340,24 @@ var v = function() {
340
340
  t.indexOf(n[i]) < 0 && Object.prototype.propertyIsEnumerable.call(e, n[i]) && (r[n[i]] = e[n[i]]);
341
341
  return r;
342
342
  }, ve = ue(function(e, t) {
343
- var r = e.icon, n = e.id, i = e.className, o = e.extend, s = lt(e, ["icon", "id", "className", "extend"]), d = "univerjs-icon univerjs-icon-".concat(n, " ").concat(i || "").trim(), l = nt("_".concat(ht()));
344
- return _e(r, "".concat(n), { defIds: r.defIds, idSuffix: l.current }, v({ ref: t, className: d }, s), o);
343
+ var r = e.icon, n = e.id, i = e.className, o = e.extend, d = lt(e, ["icon", "id", "className", "extend"]), s = "univerjs-icon univerjs-icon-".concat(n, " ").concat(i || "").trim(), l = nt("_".concat(ht()));
344
+ return _e(r, "".concat(n), { defIds: r.defIds, idSuffix: l.current }, v({ ref: t, className: s }, d), o);
345
345
  });
346
346
  function _e(e, t, r, n, i) {
347
- return fe(e.tag, v(v({ key: t }, ut(e, r, i)), n), (ft(e, r).children || []).map(function(o, s) {
348
- return _e(o, "".concat(t, "-").concat(e.tag, "-").concat(s), r, void 0, i);
347
+ return fe(e.tag, v(v({ key: t }, ut(e, r, i)), n), (ft(e, r).children || []).map(function(o, d) {
348
+ return _e(o, "".concat(t, "-").concat(e.tag, "-").concat(d), r, void 0, i);
349
349
  }));
350
350
  }
351
351
  function ut(e, t, r) {
352
352
  var n = v({}, e.attrs);
353
353
  r != null && r.colorChannel1 && n.fill === "colorChannel1" && (n.fill = r.colorChannel1), e.tag === "mask" && n.id && (n.id = n.id + t.idSuffix), Object.entries(n).forEach(function(o) {
354
- var s = o[0], d = o[1];
355
- s === "mask" && typeof d == "string" && (n[s] = d.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
354
+ var d = o[0], s = o[1];
355
+ d === "mask" && typeof s == "string" && (n[d] = s.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
356
356
  });
357
357
  var i = t.defIds;
358
358
  return !i || i.length === 0 || (e.tag === "use" && n["xlink:href"] && (n["xlink:href"] = n["xlink:href"] + t.idSuffix), Object.entries(n).forEach(function(o) {
359
- var s = o[0], d = o[1];
360
- typeof d == "string" && (n[s] = d.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
359
+ var d = o[0], s = o[1];
360
+ typeof s == "string" && (n[d] = s.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
361
361
  })), n;
362
362
  }
363
363
  function ft(e, t) {
@@ -389,14 +389,14 @@ const gt = {
389
389
  [ze.DATA]: {
390
390
  [W.id]: {
391
391
  order: 1,
392
- menuItemFactory: dt
392
+ menuItemFactory: st
393
393
  }
394
394
  }
395
395
  }
396
396
  };
397
397
  var vt = Object.getOwnPropertyDescriptor, _t = (e, t, r, n) => {
398
- for (var i = n > 1 ? void 0 : n ? vt(t, r) : t, o = e.length - 1, s; o >= 0; o--)
399
- (s = e[o]) && (i = s(i) || i);
398
+ for (var i = n > 1 ? void 0 : n ? vt(t, r) : t, o = e.length - 1, d; o >= 0; o--)
399
+ (d = e[o]) && (i = d(i) || i);
400
400
  return i;
401
401
  }, k = (e, t) => (r, n) => t(r, n, e);
402
402
  let $ = class extends B {
@@ -418,24 +418,29 @@ let $ = class extends B {
418
418
  this._menuManagerService.mergeMenu(gt);
419
419
  }
420
420
  _initComponents() {
421
- [T].forEach((e) => {
422
- this.disposeWithMe(this._componentManager.register(e.componentKey, e));
423
- }), this.disposeWithMe(this._componentManager.register("CommentSingle", pe));
421
+ [
422
+ [M.componentKey, M],
423
+ ["CommentSingle", pe]
424
+ ].forEach(([e, t]) => {
425
+ this.disposeWithMe(
426
+ this._componentManager.register(e, t)
427
+ );
428
+ });
424
429
  }
425
430
  };
426
431
  $ = _t([
427
- k(0, M),
432
+ k(0, b),
428
433
  k(1, Je),
429
434
  k(2, _(qe))
430
435
  ], $);
431
436
  var pt = Object.getOwnPropertyDescriptor, It = (e, t, r, n) => {
432
- for (var i = n > 1 ? void 0 : n ? pt(t, r) : t, o = e.length - 1, s; o >= 0; o--)
433
- (s = e[o]) && (i = s(i) || i);
437
+ for (var i = n > 1 ? void 0 : n ? pt(t, r) : t, o = e.length - 1, d; o >= 0; o--)
438
+ (d = e[o]) && (i = d(i) || i);
434
439
  return i;
435
- }, y = (e, t) => (r, n) => t(r, n, e);
440
+ }, x = (e, t) => (r, n) => t(r, n, e);
436
441
  let Y = class extends B {
437
- constructor(e, t, r, n, i, o, s) {
438
- super(), this._context = e, this._docInterceptorService = t, this._threadCommentPanelService = r, this._docRenderController = n, this._univerInstanceService = i, this._threadCommentModel = o, this._commandService = s, this._interceptorViewModel(), this._initReRender(), this._initSyncComments();
442
+ constructor(e, t, r, n, i, o, d) {
443
+ super(), this._context = e, this._docInterceptorService = t, this._threadCommentPanelService = r, this._docRenderController = n, this._univerInstanceService = i, this._threadCommentModel = o, this._commandService = d, this._interceptorViewModel(), this._initReRender(), this._initSyncComments();
439
444
  }
440
445
  _initReRender() {
441
446
  this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe((e) => {
@@ -455,13 +460,13 @@ let Y = class extends B {
455
460
  handler: (e, t, r) => {
456
461
  if (!e)
457
462
  return r(e);
458
- const { unitId: n, index: i, customDecorations: o } = t, s = this._threadCommentPanelService.activeCommentId, { commentId: d, unitId: l } = s || {}, f = o.find((C) => C.id === d), a = this._threadCommentModel.getComment(n, S, e.id);
463
+ const { unitId: n, index: i, customDecorations: o } = t, d = this._threadCommentPanelService.activeCommentId, { commentId: s, unitId: l } = d || {}, f = o.find((C) => C.id === s), a = this._threadCommentModel.getComment(n, S, e.id);
459
464
  if (!a)
460
465
  return r({
461
466
  ...e,
462
467
  show: !1
463
468
  });
464
- const h = f && i >= f.startIndex && i <= f.endIndex, g = l === n && e.id === d;
469
+ const h = f && i >= f.startIndex && i <= f.endIndex, g = l === n && e.id === s;
465
470
  return r({
466
471
  ...e,
467
472
  active: g || h,
@@ -471,24 +476,24 @@ let Y = class extends B {
471
476
  });
472
477
  }
473
478
  _initSyncComments() {
474
- var i, o, s;
475
- const e = this._context.unit.getUnitId(), t = S, r = (s = (o = (i = this._context.unit.getBody()) == null ? void 0 : i.customDecorations) == null ? void 0 : o.filter((d) => d.type === q.COMMENT).map((d) => d.id)) != null ? s : [];
476
- r.forEach((d) => {
477
- this._threadCommentModel.getComment(e, t, d) || this._threadCommentModel.addComment(e, t, { id: d, threadId: d, ref: "", dT: "", personId: "", text: { dataStream: "" }, unitId: e, subUnitId: t });
479
+ var i, o, d;
480
+ const e = this._context.unit.getUnitId(), t = S, r = (d = (o = (i = this._context.unit.getBody()) == null ? void 0 : i.customDecorations) == null ? void 0 : o.filter((s) => s.type === q.COMMENT).map((s) => s.id)) != null ? d : [];
481
+ r.forEach((s) => {
482
+ this._threadCommentModel.getComment(e, t, s) || this._threadCommentModel.addComment(e, t, { id: s, threadId: s, ref: "", dT: "", personId: "", text: { dataStream: "" }, unitId: e, subUnitId: t });
478
483
  }), r.length && this._threadCommentModel.syncThreadComments(this._context.unit.getUnitId(), S, r);
479
484
  let n = r.sort();
480
- this.disposeWithMe(this._commandService.onCommandExecuted((d) => {
485
+ this.disposeWithMe(this._commandService.onCommandExecuted((s) => {
481
486
  var l, f, a;
482
- if (d.id === se.id) {
483
- if (d.params.unitId !== this._context.unit.getUnitId())
487
+ if (s.id === de.id) {
488
+ if (s.params.unitId !== this._context.unit.getUnitId())
484
489
  return;
485
490
  const g = (a = (f = (l = this._context.unit.getBody()) == null ? void 0 : l.customDecorations) == null ? void 0 : f.filter((c) => c.type === q.COMMENT).map((c) => c.id)) != null ? a : [], C = g.sort();
486
491
  if (JSON.stringify(n) !== JSON.stringify(C)) {
487
- const c = new Set(n), m = new Set(C), I = /* @__PURE__ */ new Set(), b = /* @__PURE__ */ new Set();
492
+ const c = new Set(n), m = new Set(C), I = /* @__PURE__ */ new Set(), D = /* @__PURE__ */ new Set();
488
493
  g.forEach((u) => {
489
494
  c.has(u) || I.add(u);
490
495
  }), n.forEach((u) => {
491
- m.has(u) || b.add(u);
496
+ m.has(u) || D.add(u);
492
497
  }), n = C, I.forEach((u) => {
493
498
  this._threadCommentModel.getComment(e, t, u) || this._threadCommentModel.addComment(e, t, { id: u, threadId: u, ref: "", dT: "", personId: "", text: { dataStream: "" }, unitId: e, subUnitId: t });
494
499
  }), this._threadCommentModel.syncThreadComments(e, t, [...I]);
@@ -498,16 +503,16 @@ let Y = class extends B {
498
503
  }
499
504
  };
500
505
  Y = It([
501
- y(1, _(Ve)),
502
- y(2, _(U)),
503
- y(3, _(Le)),
504
- y(4, A),
505
- y(5, _(de)),
506
- y(6, M)
506
+ x(1, _(Ve)),
507
+ x(2, _(U)),
508
+ x(3, _(Le)),
509
+ x(4, A),
510
+ x(5, _(se)),
511
+ x(6, b)
507
512
  ], Y);
508
513
  var St = Object.defineProperty, Ot = Object.getOwnPropertyDescriptor, Mt = (e, t, r) => t in e ? St(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, bt = (e, t, r, n) => {
509
- for (var i = n > 1 ? void 0 : n ? Ot(t, r) : t, o = e.length - 1, s; o >= 0; o--)
510
- (s = e[o]) && (i = s(i) || i);
514
+ for (var i = n > 1 ? void 0 : n ? Ot(t, r) : t, o = e.length - 1, d; o >= 0; o--)
515
+ (d = e[o]) && (i = d(i) || i);
511
516
  return i;
512
517
  }, J = (e, t) => (r, n) => t(r, n, e), Ie = (e, t, r) => Mt(e, typeof t != "symbol" ? t + "" : t, r);
513
518
  let j = class extends Ue {
@@ -524,7 +529,7 @@ let j = class extends Ue {
524
529
  [
525
530
  [$],
526
531
  [V],
527
- [x]
532
+ [T]
528
533
  ].forEach((e) => {
529
534
  this._injector.add(e);
530
535
  });
package/lib/umd/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(c,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("@univerjs/thread-comment-ui"),require("@univerjs/docs"),require("@univerjs/docs-ui"),require("@univerjs/thread-comment"),require("@univerjs/ui"),require("rxjs"),require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","@univerjs/thread-comment-ui","@univerjs/docs","@univerjs/docs-ui","@univerjs/thread-comment","@univerjs/ui","rxjs","react/jsx-runtime","react"],o):(c=typeof globalThis<"u"?globalThis:c||self,o(c.UniverDocsThreadCommentUi={},c.UniverCore,c.UniverEngineRender,c.UniverThreadCommentUi,c.UniverDocs,c.UniverDocsUi,c.UniverThreadComment,c.UniverUi,c.rxjs,c.React,c.React))})(this,function(c,o,S,O,T,A,w,u,U,ie,D){"use strict";var be=Object.defineProperty;var Ue=(c,o,S)=>o in c?be(c,o,{enumerable:!0,configurable:!0,writable:!0,value:S}):c[o]=S;var k=(c,o,S)=>Ue(c,typeof o!="symbol"?o+"":o,S);const re="DOC_THREAD_COMMENT_UI_PLUGIN",M="default_doc",oe="docs-thread-comment-ui.config",J={};var se=Object.getOwnPropertyDescriptor,de=(e,t,i,n)=>{for(var r=n>1?void 0:n?se(t,i):t,s=e.length-1,d;s>=0;s--)(d=e[s])&&(r=d(r)||r);return r},Y=(e,t)=>(i,n)=>t(i,n,e);let x=class extends o.Disposable{constructor(t,i){super();k(this,"_addingComment$",new U.BehaviorSubject(void 0));k(this,"addingComment$",this._addingComment$.asObservable());this._sidebarService=t,this._threadCommentPanelService=i,this.disposeWithMe(()=>{this._addingComment$.complete()})}get addingComment(){return this._addingComment$.getValue()}startAdd(t){this._addingComment$.next(t)}endAdd(){this._addingComment$.next(void 0)}};x=de([Y(0,u.ISidebarService),Y(1,o.Inject(O.ThreadCommentPanelService))],x);const H={id:"docs.command.add-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{comment:i,unitId:n}=t,s=await e.get(w.IThreadCommentDataSourceService).addComment(i),d=e.get(o.ICommandService),a=A.addCustomDecorationBySelectionFactory(e,{id:s.threadId,type:o.CustomDecorationType.COMMENT,unitId:n});if(a){const C={id:w.AddCommentMutation.id,params:{unitId:n,subUnitId:M,comment:s}},h={id:O.SetActiveCommentOperation.id,params:{unitId:n,subUnitId:M,commentId:s.id}};return(await o.sequenceExecute([C,a,h],d)).result}return!1}},L={id:"docs.command.delete-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{commentId:i,unitId:n}=t,r=e.get(o.ICommandService),s=A.deleteCustomDecorationFactory(e,{id:i,unitId:n});return s?(await o.sequenceExecute([s],r)).result:!1}},Q=e=>{var d;const t=e.get(S.IRenderManagerService),i=e.get(T.DocSelectionManagerService),n=(d=S.withCurrentTypeOfRenderer(o.UniverInstanceType.UNIVER_DOC,T.DocSkeletonManagerService,e.get(o.IUniverInstanceService),t))==null?void 0:d.getSkeleton(),r=n==null?void 0:n.getViewModel().getEditArea();if(r===S.DocumentEditArea.FOOTER||r===S.DocumentEditArea.HEADER)return!0;const s=i.getActiveTextRange();return!!(s==null||s.collapsed)};function ae(e){return{id:V.id,type:u.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",hidden$:u.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC,void 0,o.SHEET_EDITOR_UNITS),disabled$:new U.Observable(function(t){const n=e.get(T.DocSelectionManagerService).textSelection$.pipe(U.debounceTime(16)).subscribe(()=>{t.next(Q(e))});return()=>{n.unsubscribe()}})}}function ce(e){return{id:W.id,type:u.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",hidden$:u.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC)}}const E=()=>{const e=u.useDependency(o.IUniverInstanceService),t=u.useDependency(o.Injector),i=D.useMemo(()=>e.getCurrentTypeOfUnit$(o.UniverInstanceType.UNIVER_DOC).pipe(U.filter(m=>!!m&&!o.isInternalEditorID(m.getUnitId()))),[e]),n=u.useObservable(i),r=D.useMemo(()=>new U.Observable(m=>m.next(M)),[]),s=u.useDependency(T.DocSelectionManagerService),d=D.useMemo(()=>s.textSelection$.pipe(U.debounceTime(16)),[s.textSelection$]);u.useObservable(d);const a=u.useDependency(o.ICommandService),C=u.useDependency(x),h=u.useObservable(C.addingComment$),[l,I]=D.useState([]);if(D.useEffect(()=>{var j;const m=new Set,v=n==null?void 0:n.getCustomDecorations();I((j=v==null?void 0:v.map(f=>f.id).filter(f=>{const b=m.has(f);return m.add(f),!b}))!=null?j:[]);const y=a.onCommandExecuted(f=>{var b;if(f.id===T.RichTextEditingMutation.id){const $=new Set,z=n==null?void 0:n.getCustomDecorations();I((b=z==null?void 0:z.map(F=>F.id).filter(F=>{const ye=$.has(F);return $.add(F),!ye}))!=null?b:[])}});return()=>{y.dispose()}},[a,n]),!n)return null;const _=Q(t),g=n.getUnitId();return ie.jsx(O.ThreadCommentPanel,{unitId:g,subUnitId$:r,type:o.UniverInstanceType.UNIVER_DOC,onAdd:()=>{a.executeCommand(V.id)},getSubUnitName:()=>"",disableAdd:_,tempComment:h,onAddComment:m=>{if(!m.parentId){const v={unitId:g,range:h,comment:m};return a.executeCommand(H.id,v),C.endAdd(),!1}return!0},onDeleteComment:m=>{if(!m.parentId){const v={unitId:g,commentId:m.id};return a.executeCommand(L.id,v),!1}return!0},showComments:l})};E.componentKey="univer.doc.thread-comment-panel";const N={id:"docs.operation.show-comment-panel",type:o.CommandType.OPERATION,handler(e,t){var r;const i=e.get(O.ThreadCommentPanelService),n=e.get(u.ISidebarService);return(!i.panelVisible||((r=n.options.children)==null?void 0:r.label)!==E.componentKey)&&(n.open({header:{title:"threadCommentUI.panel.title"},children:{label:E.componentKey},width:320,onClose:()=>i.setPanelVisible(!1)}),i.setPanelVisible(!0)),t&&i.setActiveComment(t==null?void 0:t.activeComment),!0}},W={id:"docs.operation.toggle-comment-panel",type:o.CommandType.OPERATION,handler(e){var n;const t=e.get(O.ThreadCommentPanelService),i=e.get(u.ISidebarService);return!t.panelVisible||((n=i.options.children)==null?void 0:n.label)!==E.componentKey?(i.open({header:{title:"threadCommentUI.panel.title"},children:{label:E.componentKey},width:320,onClose:()=>t.setPanelVisible(!1)}),t.setPanelVisible(!0)):(i.close(),t.setPanelVisible(!1),t.setActiveComment(null)),!0}},V={id:"docs.operation.start-add-comment",type:o.CommandType.OPERATION,handler(e){var f,b,$;const t=e.get(O.ThreadCommentPanelService),n=e.get(o.IUniverInstanceService).getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC),r=e.get(T.DocSelectionManagerService),s=e.get(S.IRenderManagerService),d=e.get(o.UserManagerService),a=e.get(x),C=e.get(o.ICommandService),h=e.get(u.ISidebarService),l=r.getActiveTextRange();if(!n||!l)return!1;const I=(f=s.getRenderById(n.getUnitId()))==null?void 0:f.with(A.DocSelectionRenderService);if(I==null||I.setReserveRangesStatus(!0),l.collapsed)return t.panelVisible?(t.setPanelVisible(!1),h.close()):C.executeCommand(N.id),!0;C.executeCommand(N.id);const _=n.getUnitId(),g=(($=(b=n.getBody())==null?void 0:b.dataStream)!=null?$:"").slice(l.startOffset,l.endOffset),m=o.BuildTextUtils.transform.getPlainText(g),v=M,y="",j={unitId:_,subUnitId:v,id:y,ref:m,dT:w.getDT(),personId:d.getCurrentUser().userID,text:{dataStream:`\r
2
- `},startOffset:l.startOffset,endOffset:l.endOffset,collapsed:!0,threadId:y};return I==null||I.blur(),a.startAdd(j),t.setActiveComment({unitId:_,subUnitId:v,commentId:y}),!0}};var me=Object.getOwnPropertyDescriptor,le=(e,t,i,n)=>{for(var r=n>1?void 0:n?me(t,i):t,s=e.length-1,d;s>=0;s--)(d=e[s])&&(r=d(r)||r);return r},R=(e,t)=>(i,n)=>t(i,n,e);let B=class extends o.Disposable{constructor(e,t,i,n,r,s){super(),this._threadCommentPanelService=e,this._univerInstanceService=t,this._commandService=i,this._docThreadCommentService=n,this._renderManagerService=r,this._threadCommentModel=s,this._initSelectionChange(),this._initActiveCommandChange()}_initSelectionChange(){let e;this.disposeWithMe(this._commandService.onCommandExecuted(t=>{var i,n,r,s;if(t.id===T.SetTextSelectionsOperation.id){const d=t.params,{unitId:a,ranges:C}=d;if(o.isInternalEditorID(a))return;const h=this._univerInstanceService.getUnit(a,o.UniverInstanceType.UNIVER_DOC),l=C[0];if((e==null?void 0:e.startOffset)===(l==null?void 0:l.startOffset)&&(e==null?void 0:e.endOffset)===(l==null?void 0:l.endOffset))return;if(e=l,l&&h){const{startOffset:I,endOffset:_,collapsed:g}=l;let m;if(g?m=(n=(i=h.getBody())==null?void 0:i.customDecorations)==null?void 0:n.find(v=>v.startIndex<=I&&v.endIndex>=_-1):m=(s=(r=h.getBody())==null?void 0:r.customDecorations)==null?void 0:s.find(v=>v.startIndex<=I&&v.endIndex>=_-1),m){const v=this._threadCommentModel.getComment(a,M,m.id);v&&!v.resolved&&this._commandService.executeCommand(N.id,{activeComment:{unitId:a,subUnitId:M,commentId:m.id}});return}}if(!this._threadCommentPanelService.activeCommentId)return;this._commandService.executeCommand(O.SetActiveCommentOperation.id)}}))}_initActiveCommandChange(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var t,i,n,r;if(e){const s=this._univerInstanceService.getUnit(e.unitId);if(s){const d=(t=this._renderManagerService.getRenderById(e.unitId))==null?void 0:t.with(A.DocBackScrollRenderController),a=(n=(i=s.getBody())==null?void 0:i.customDecorations)==null?void 0:n.find(C=>C.id===e.commentId);a&&d&&d.scrollToRange({startOffset:a.startIndex,endOffset:a.endIndex,collapsed:!1})}}(!e||e.commentId!==((r=this._docThreadCommentService.addingComment)==null?void 0:r.id))&&this._docThreadCommentService.endAdd()}))}};B=le([R(0,o.Inject(O.ThreadCommentPanelService)),R(1,o.IUniverInstanceService),R(2,o.ICommandService),R(3,o.Inject(x)),R(4,S.IRenderManagerService),R(5,o.Inject(w.ThreadCommentModel))],B);var p=function(){return p=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++){t=arguments[i];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},p.apply(this,arguments)},ue=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(i[n[r]]=e[n[r]]);return i},X=D.forwardRef(function(e,t){var i=e.icon,n=e.id,r=e.className,s=e.extend,d=ue(e,["icon","id","className","extend"]),a="univerjs-icon univerjs-icon-".concat(n," ").concat(r||"").trim(),C=D.useRef("_".concat(fe()));return ee(i,"".concat(n),{defIds:i.defIds,idSuffix:C.current},p({ref:t,className:a},d),s)});function ee(e,t,i,n,r){return D.createElement(e.tag,p(p({key:t},ve(e,i,r)),n),(Ce(e,i).children||[]).map(function(s,d){return ee(s,"".concat(t,"-").concat(e.tag,"-").concat(d),i,void 0,r)}))}function ve(e,t,i){var n=p({},e.attrs);i!=null&&i.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=i.colorChannel1),e.tag==="mask"&&n.id&&(n.id=n.id+t.idSuffix),Object.entries(n).forEach(function(s){var d=s[0],a=s[1];d==="mask"&&typeof a=="string"&&(n[d]=a.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))});var r=t.defIds;return!r||r.length===0||(e.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+t.idSuffix),Object.entries(n).forEach(function(s){var d=s[0],a=s[1];typeof a=="string"&&(n[d]=a.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),n}function Ce(e,t){var i,n=t.defIds;return!n||n.length===0?e:e.tag==="defs"&&(!((i=e.children)===null||i===void 0)&&i.length)?p(p({},e),{children:e.children.map(function(r){return typeof r.attrs.id=="string"&&n&&n.indexOf(r.attrs.id)>-1?p(p({},r),{attrs:p(p({},r.attrs),{id:r.attrs.id+t.idSuffix})}):r})}):e}function fe(){return Math.random().toString(36).substring(2,8)}X.displayName="UniverIcon";var he={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"}}]},te=D.forwardRef(function(e,t){return D.createElement(X,Object.assign({},e,{id:"comment-single",ref:t,icon:he}))});te.displayName="CommentSingle";const Ie={[u.RibbonInsertGroup.MEDIA]:{[W.id]:{order:3,menuItemFactory:ce}},[u.ContextMenuPosition.MAIN_AREA]:{[u.ContextMenuGroup.DATA]:{[V.id]:{order:1,menuItemFactory:ae}}}};var ge=Object.getOwnPropertyDescriptor,Se=(e,t,i,n)=>{for(var r=n>1?void 0:n?ge(t,i):t,s=e.length-1,d;s>=0;s--)(d=e[s])&&(r=d(r)||r);return r},K=(e,t)=>(i,n)=>t(i,n,e);let q=class extends o.Disposable{constructor(e,t,i){super(),this._commandService=e,this._menuManagerService=t,this._componentManager=i,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[H,L,N,V,W].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(Ie)}_initComponents(){[E].forEach(e=>{this.disposeWithMe(this._componentManager.register(e.componentKey,e))}),this.disposeWithMe(this._componentManager.register("CommentSingle",te))}};q=Se([K(0,o.ICommandService),K(1,u.IMenuManagerService),K(2,o.Inject(u.ComponentManager))],q);var pe=Object.getOwnPropertyDescriptor,_e=(e,t,i,n)=>{for(var r=n>1?void 0:n?pe(t,i):t,s=e.length-1,d;s>=0;s--)(d=e[s])&&(r=d(r)||r);return r},P=(e,t)=>(i,n)=>t(i,n,e);let G=class extends o.Disposable{constructor(e,t,i,n,r,s,d){super(),this._context=e,this._docInterceptorService=t,this._threadCommentPanelService=i,this._docRenderController=n,this._univerInstanceService=r,this._threadCommentModel=s,this._commandService=d,this._interceptorViewModel(),this._initReRender(),this._initSyncComments()}_initReRender(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var i;if(e){this._docRenderController.reRender(e.unitId);return}const t=(i=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC))==null?void 0:i.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(T.DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION,{handler:(e,t,i)=>{if(!e)return i(e);const{unitId:n,index:r,customDecorations:s}=t,d=this._threadCommentPanelService.activeCommentId,{commentId:a,unitId:C}=d||{},h=s.find(g=>g.id===a),l=this._threadCommentModel.getComment(n,M,e.id);if(!l)return i({...e,show:!1});const I=h&&r>=h.startIndex&&r<=h.endIndex,_=C===n&&e.id===a;return i({...e,active:_||I,show:!l.resolved})}})}_initSyncComments(){var r,s,d;const e=this._context.unit.getUnitId(),t=M,i=(d=(s=(r=this._context.unit.getBody())==null?void 0:r.customDecorations)==null?void 0:s.filter(a=>a.type===o.CustomDecorationType.COMMENT).map(a=>a.id))!=null?d:[];i.forEach(a=>{this._threadCommentModel.getComment(e,t,a)||this._threadCommentModel.addComment(e,t,{id:a,threadId:a,ref:"",dT:"",personId:"",text:{dataStream:""},unitId:e,subUnitId:t})}),i.length&&this._threadCommentModel.syncThreadComments(this._context.unit.getUnitId(),M,i);let n=i.sort();this.disposeWithMe(this._commandService.onCommandExecuted(a=>{var C,h,l;if(a.id===T.RichTextEditingMutation.id){if(a.params.unitId!==this._context.unit.getUnitId())return;const _=(l=(h=(C=this._context.unit.getBody())==null?void 0:C.customDecorations)==null?void 0:h.filter(m=>m.type===o.CustomDecorationType.COMMENT).map(m=>m.id))!=null?l:[],g=_.sort();if(JSON.stringify(n)!==JSON.stringify(g)){const m=new Set(n),v=new Set(g),y=new Set,j=new Set;_.forEach(f=>{m.has(f)||y.add(f)}),n.forEach(f=>{v.has(f)||j.add(f)}),n=g,y.forEach(f=>{this._threadCommentModel.getComment(e,t,f)||this._threadCommentModel.addComment(e,t,{id:f,threadId:f,ref:"",dT:"",personId:"",text:{dataStream:""},unitId:e,subUnitId:t})}),this._threadCommentModel.syncThreadComments(e,t,[...y])}}}))}};G=_e([P(1,o.Inject(T.DocInterceptorService)),P(2,o.Inject(O.ThreadCommentPanelService)),P(3,o.Inject(A.DocRenderController)),P(4,o.IUniverInstanceService),P(5,o.Inject(w.ThreadCommentModel)),P(6,o.ICommandService)],G);var Oe=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,De=(e,t,i)=>t in e?Oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Me=(e,t,i,n)=>{for(var r=n>1?void 0:n?Te(t,i):t,s=e.length-1,d;s>=0;s--)(d=e[s])&&(r=d(r)||r);return r},Z=(e,t)=>(i,n)=>t(i,n,e),ne=(e,t,i)=>De(e,typeof t!="symbol"?t+"":t,i);c.UniverDocsThreadCommentUIPlugin=class extends o.Plugin{constructor(t=J,i,n,r){super(),this._config=t,this._injector=i,this._renderManagerSrv=n,this._configService=r;const{menu:s,...d}=o.merge({},J,this._config);s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig(oe,d)}onStarting(){[[q],[B],[x]].forEach(t=>{this._injector.add(t)})}onRendered(){this._initRenderModule(),this._injector.get(B),this._injector.get(q)}_initRenderModule(){[G].forEach(t=>{this._renderManagerSrv.registerRenderModule(o.UniverInstanceType.UNIVER_DOC,t)})}},ne(c.UniverDocsThreadCommentUIPlugin,"pluginName",re),ne(c.UniverDocsThreadCommentUIPlugin,"type",o.UniverInstanceType.UNIVER_DOC),c.UniverDocsThreadCommentUIPlugin=Me([o.DependentOn(O.UniverThreadCommentUIPlugin),Z(1,o.Inject(o.Injector)),Z(2,S.IRenderManagerService),Z(3,o.IConfigService)],c.UniverDocsThreadCommentUIPlugin),c.AddDocCommentComment=H,c.DeleteDocCommentComment=L,c.ShowCommentPanelOperation=N,c.StartAddCommentOperation=V,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
1
+ (function(c,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("@univerjs/thread-comment-ui"),require("@univerjs/docs"),require("@univerjs/docs-ui"),require("@univerjs/thread-comment"),require("@univerjs/ui"),require("rxjs"),require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","@univerjs/thread-comment-ui","@univerjs/docs","@univerjs/docs-ui","@univerjs/thread-comment","@univerjs/ui","rxjs","react/jsx-runtime","react"],o):(c=typeof globalThis<"u"?globalThis:c||self,o(c.UniverDocsThreadCommentUi={},c.UniverCore,c.UniverEngineRender,c.UniverThreadCommentUi,c.UniverDocs,c.UniverDocsUi,c.UniverThreadComment,c.UniverUi,c.rxjs,c.React,c.React))})(this,function(c,o,S,O,T,A,w,u,x,ie,D){"use strict";var be=Object.defineProperty;var Ue=(c,o,S)=>o in c?be(c,o,{enumerable:!0,configurable:!0,writable:!0,value:S}):c[o]=S;var k=(c,o,S)=>Ue(c,typeof o!="symbol"?o+"":o,S);const re="DOC_THREAD_COMMENT_UI_PLUGIN",M="default_doc",oe="docs-thread-comment-ui.config",J={};var se=Object.getOwnPropertyDescriptor,de=(e,t,i,n)=>{for(var r=n>1?void 0:n?se(t,i):t,s=e.length-1,d;s>=0;s--)(d=e[s])&&(r=d(r)||r);return r},Y=(e,t)=>(i,n)=>t(i,n,e);let E=class extends o.Disposable{constructor(t,i){super();k(this,"_addingComment$",new x.BehaviorSubject(void 0));k(this,"addingComment$",this._addingComment$.asObservable());this._sidebarService=t,this._threadCommentPanelService=i,this.disposeWithMe(()=>{this._addingComment$.complete()})}get addingComment(){return this._addingComment$.getValue()}startAdd(t){this._addingComment$.next(t)}endAdd(){this._addingComment$.next(void 0)}};E=de([Y(0,u.ISidebarService),Y(1,o.Inject(O.ThreadCommentPanelService))],E);const H={id:"docs.command.add-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{comment:i,unitId:n}=t,s=await e.get(w.IThreadCommentDataSourceService).addComment(i),d=e.get(o.ICommandService),a=A.addCustomDecorationBySelectionFactory(e,{id:s.threadId,type:o.CustomDecorationType.COMMENT,unitId:n});if(a){const C={id:w.AddCommentMutation.id,params:{unitId:n,subUnitId:M,comment:s}},h={id:O.SetActiveCommentOperation.id,params:{unitId:n,subUnitId:M,commentId:s.id}};return(await o.sequenceExecute([C,a,h],d)).result}return!1}},L={id:"docs.command.delete-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{commentId:i,unitId:n}=t,r=e.get(o.ICommandService),s=A.deleteCustomDecorationFactory(e,{id:i,unitId:n});return s?(await o.sequenceExecute([s],r)).result:!1}},Q=e=>{var d;const t=e.get(S.IRenderManagerService),i=e.get(T.DocSelectionManagerService),n=(d=S.withCurrentTypeOfRenderer(o.UniverInstanceType.UNIVER_DOC,T.DocSkeletonManagerService,e.get(o.IUniverInstanceService),t))==null?void 0:d.getSkeleton(),r=n==null?void 0:n.getViewModel().getEditArea();if(r===S.DocumentEditArea.FOOTER||r===S.DocumentEditArea.HEADER)return!0;const s=i.getActiveTextRange();return!!(s==null||s.collapsed)};function ae(e){return{id:V.id,type:u.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",hidden$:u.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC,void 0,o.SHEET_EDITOR_UNITS),disabled$:new x.Observable(function(t){const n=e.get(T.DocSelectionManagerService).textSelection$.pipe(x.debounceTime(16)).subscribe(()=>{t.next(Q(e))});return()=>{n.unsubscribe()}})}}function ce(e){return{id:W.id,type:u.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",hidden$:u.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC)}}const U=()=>{const e=u.useDependency(o.IUniverInstanceService),t=u.useDependency(o.Injector),i=D.useMemo(()=>e.getCurrentTypeOfUnit$(o.UniverInstanceType.UNIVER_DOC).pipe(x.filter(m=>!!m&&!o.isInternalEditorID(m.getUnitId()))),[e]),n=u.useObservable(i),r=D.useMemo(()=>new x.Observable(m=>m.next(M)),[]),s=u.useDependency(T.DocSelectionManagerService),d=D.useMemo(()=>s.textSelection$.pipe(x.debounceTime(16)),[s.textSelection$]);u.useObservable(d);const a=u.useDependency(o.ICommandService),C=u.useDependency(E),h=u.useObservable(C.addingComment$),[l,I]=D.useState([]);if(D.useEffect(()=>{var j;const m=new Set,v=n==null?void 0:n.getCustomDecorations();I((j=v==null?void 0:v.map(f=>f.id).filter(f=>{const b=m.has(f);return m.add(f),!b}))!=null?j:[]);const y=a.onCommandExecuted(f=>{var b;if(f.id===T.RichTextEditingMutation.id){const $=new Set,z=n==null?void 0:n.getCustomDecorations();I((b=z==null?void 0:z.map(F=>F.id).filter(F=>{const ye=$.has(F);return $.add(F),!ye}))!=null?b:[])}});return()=>{y.dispose()}},[a,n]),!n)return null;const _=Q(t),g=n.getUnitId();return ie.jsx(O.ThreadCommentPanel,{unitId:g,subUnitId$:r,type:o.UniverInstanceType.UNIVER_DOC,onAdd:()=>{a.executeCommand(V.id)},getSubUnitName:()=>"",disableAdd:_,tempComment:h,onAddComment:m=>{if(!m.parentId){const v={unitId:g,range:h,comment:m};return a.executeCommand(H.id,v),C.endAdd(),!1}return!0},onDeleteComment:m=>{if(!m.parentId){const v={unitId:g,commentId:m.id};return a.executeCommand(L.id,v),!1}return!0},showComments:l})};U.componentKey="univer.doc.thread-comment-panel";const N={id:"docs.operation.show-comment-panel",type:o.CommandType.OPERATION,handler(e,t){var r;const i=e.get(O.ThreadCommentPanelService),n=e.get(u.ISidebarService);return(!i.panelVisible||((r=n.options.children)==null?void 0:r.label)!==U.componentKey)&&(n.open({header:{title:"threadCommentUI.panel.title"},children:{label:U.componentKey},width:320,onClose:()=>i.setPanelVisible(!1)}),i.setPanelVisible(!0)),t&&i.setActiveComment(t==null?void 0:t.activeComment),!0}},W={id:"docs.operation.toggle-comment-panel",type:o.CommandType.OPERATION,handler(e){var n;const t=e.get(O.ThreadCommentPanelService),i=e.get(u.ISidebarService);return!t.panelVisible||((n=i.options.children)==null?void 0:n.label)!==U.componentKey?(i.open({header:{title:"threadCommentUI.panel.title"},children:{label:U.componentKey},width:320,onClose:()=>t.setPanelVisible(!1)}),t.setPanelVisible(!0)):(i.close(),t.setPanelVisible(!1),t.setActiveComment(null)),!0}},V={id:"docs.operation.start-add-comment",type:o.CommandType.OPERATION,handler(e){var f,b,$;const t=e.get(O.ThreadCommentPanelService),n=e.get(o.IUniverInstanceService).getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC),r=e.get(T.DocSelectionManagerService),s=e.get(S.IRenderManagerService),d=e.get(o.UserManagerService),a=e.get(E),C=e.get(o.ICommandService),h=e.get(u.ISidebarService),l=r.getActiveTextRange();if(!n||!l)return!1;const I=(f=s.getRenderById(n.getUnitId()))==null?void 0:f.with(A.DocSelectionRenderService);if(I==null||I.setReserveRangesStatus(!0),l.collapsed)return t.panelVisible?(t.setPanelVisible(!1),h.close()):C.executeCommand(N.id),!0;C.executeCommand(N.id);const _=n.getUnitId(),g=(($=(b=n.getBody())==null?void 0:b.dataStream)!=null?$:"").slice(l.startOffset,l.endOffset),m=o.BuildTextUtils.transform.getPlainText(g),v=M,y="",j={unitId:_,subUnitId:v,id:y,ref:m,dT:w.getDT(),personId:d.getCurrentUser().userID,text:{dataStream:`\r
2
+ `},startOffset:l.startOffset,endOffset:l.endOffset,collapsed:!0,threadId:y};return I==null||I.blur(),a.startAdd(j),t.setActiveComment({unitId:_,subUnitId:v,commentId:y}),!0}};var me=Object.getOwnPropertyDescriptor,le=(e,t,i,n)=>{for(var r=n>1?void 0:n?me(t,i):t,s=e.length-1,d;s>=0;s--)(d=e[s])&&(r=d(r)||r);return r},R=(e,t)=>(i,n)=>t(i,n,e);let B=class extends o.Disposable{constructor(e,t,i,n,r,s){super(),this._threadCommentPanelService=e,this._univerInstanceService=t,this._commandService=i,this._docThreadCommentService=n,this._renderManagerService=r,this._threadCommentModel=s,this._initSelectionChange(),this._initActiveCommandChange()}_initSelectionChange(){let e;this.disposeWithMe(this._commandService.onCommandExecuted(t=>{var i,n,r,s;if(t.id===T.SetTextSelectionsOperation.id){const d=t.params,{unitId:a,ranges:C}=d;if(o.isInternalEditorID(a))return;const h=this._univerInstanceService.getUnit(a,o.UniverInstanceType.UNIVER_DOC),l=C[0];if((e==null?void 0:e.startOffset)===(l==null?void 0:l.startOffset)&&(e==null?void 0:e.endOffset)===(l==null?void 0:l.endOffset))return;if(e=l,l&&h){const{startOffset:I,endOffset:_,collapsed:g}=l;let m;if(g?m=(n=(i=h.getBody())==null?void 0:i.customDecorations)==null?void 0:n.find(v=>v.startIndex<=I&&v.endIndex>=_-1):m=(s=(r=h.getBody())==null?void 0:r.customDecorations)==null?void 0:s.find(v=>v.startIndex<=I&&v.endIndex>=_-1),m){const v=this._threadCommentModel.getComment(a,M,m.id);v&&!v.resolved&&this._commandService.executeCommand(N.id,{activeComment:{unitId:a,subUnitId:M,commentId:m.id}});return}}if(!this._threadCommentPanelService.activeCommentId)return;this._commandService.executeCommand(O.SetActiveCommentOperation.id)}}))}_initActiveCommandChange(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var t,i,n,r;if(e){const s=this._univerInstanceService.getUnit(e.unitId);if(s){const d=(t=this._renderManagerService.getRenderById(e.unitId))==null?void 0:t.with(A.DocBackScrollRenderController),a=(n=(i=s.getBody())==null?void 0:i.customDecorations)==null?void 0:n.find(C=>C.id===e.commentId);a&&d&&d.scrollToRange({startOffset:a.startIndex,endOffset:a.endIndex,collapsed:!1})}}(!e||e.commentId!==((r=this._docThreadCommentService.addingComment)==null?void 0:r.id))&&this._docThreadCommentService.endAdd()}))}};B=le([R(0,o.Inject(O.ThreadCommentPanelService)),R(1,o.IUniverInstanceService),R(2,o.ICommandService),R(3,o.Inject(E)),R(4,S.IRenderManagerService),R(5,o.Inject(w.ThreadCommentModel))],B);var p=function(){return p=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++){t=arguments[i];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},p.apply(this,arguments)},ue=function(e,t){var i={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(i[n[r]]=e[n[r]]);return i},X=D.forwardRef(function(e,t){var i=e.icon,n=e.id,r=e.className,s=e.extend,d=ue(e,["icon","id","className","extend"]),a="univerjs-icon univerjs-icon-".concat(n," ").concat(r||"").trim(),C=D.useRef("_".concat(fe()));return ee(i,"".concat(n),{defIds:i.defIds,idSuffix:C.current},p({ref:t,className:a},d),s)});function ee(e,t,i,n,r){return D.createElement(e.tag,p(p({key:t},ve(e,i,r)),n),(Ce(e,i).children||[]).map(function(s,d){return ee(s,"".concat(t,"-").concat(e.tag,"-").concat(d),i,void 0,r)}))}function ve(e,t,i){var n=p({},e.attrs);i!=null&&i.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=i.colorChannel1),e.tag==="mask"&&n.id&&(n.id=n.id+t.idSuffix),Object.entries(n).forEach(function(s){var d=s[0],a=s[1];d==="mask"&&typeof a=="string"&&(n[d]=a.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))});var r=t.defIds;return!r||r.length===0||(e.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+t.idSuffix),Object.entries(n).forEach(function(s){var d=s[0],a=s[1];typeof a=="string"&&(n[d]=a.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),n}function Ce(e,t){var i,n=t.defIds;return!n||n.length===0?e:e.tag==="defs"&&(!((i=e.children)===null||i===void 0)&&i.length)?p(p({},e),{children:e.children.map(function(r){return typeof r.attrs.id=="string"&&n&&n.indexOf(r.attrs.id)>-1?p(p({},r),{attrs:p(p({},r.attrs),{id:r.attrs.id+t.idSuffix})}):r})}):e}function fe(){return Math.random().toString(36).substring(2,8)}X.displayName="UniverIcon";var he={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"}}]},te=D.forwardRef(function(e,t){return D.createElement(X,Object.assign({},e,{id:"comment-single",ref:t,icon:he}))});te.displayName="CommentSingle";const Ie={[u.RibbonInsertGroup.MEDIA]:{[W.id]:{order:3,menuItemFactory:ce}},[u.ContextMenuPosition.MAIN_AREA]:{[u.ContextMenuGroup.DATA]:{[V.id]:{order:1,menuItemFactory:ae}}}};var ge=Object.getOwnPropertyDescriptor,Se=(e,t,i,n)=>{for(var r=n>1?void 0:n?ge(t,i):t,s=e.length-1,d;s>=0;s--)(d=e[s])&&(r=d(r)||r);return r},K=(e,t)=>(i,n)=>t(i,n,e);let q=class extends o.Disposable{constructor(e,t,i){super(),this._commandService=e,this._menuManagerService=t,this._componentManager=i,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[H,L,N,V,W].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(Ie)}_initComponents(){[[U.componentKey,U],["CommentSingle",te]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))})}};q=Se([K(0,o.ICommandService),K(1,u.IMenuManagerService),K(2,o.Inject(u.ComponentManager))],q);var pe=Object.getOwnPropertyDescriptor,_e=(e,t,i,n)=>{for(var r=n>1?void 0:n?pe(t,i):t,s=e.length-1,d;s>=0;s--)(d=e[s])&&(r=d(r)||r);return r},P=(e,t)=>(i,n)=>t(i,n,e);let G=class extends o.Disposable{constructor(e,t,i,n,r,s,d){super(),this._context=e,this._docInterceptorService=t,this._threadCommentPanelService=i,this._docRenderController=n,this._univerInstanceService=r,this._threadCommentModel=s,this._commandService=d,this._interceptorViewModel(),this._initReRender(),this._initSyncComments()}_initReRender(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var i;if(e){this._docRenderController.reRender(e.unitId);return}const t=(i=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC))==null?void 0:i.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(T.DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION,{handler:(e,t,i)=>{if(!e)return i(e);const{unitId:n,index:r,customDecorations:s}=t,d=this._threadCommentPanelService.activeCommentId,{commentId:a,unitId:C}=d||{},h=s.find(g=>g.id===a),l=this._threadCommentModel.getComment(n,M,e.id);if(!l)return i({...e,show:!1});const I=h&&r>=h.startIndex&&r<=h.endIndex,_=C===n&&e.id===a;return i({...e,active:_||I,show:!l.resolved})}})}_initSyncComments(){var r,s,d;const e=this._context.unit.getUnitId(),t=M,i=(d=(s=(r=this._context.unit.getBody())==null?void 0:r.customDecorations)==null?void 0:s.filter(a=>a.type===o.CustomDecorationType.COMMENT).map(a=>a.id))!=null?d:[];i.forEach(a=>{this._threadCommentModel.getComment(e,t,a)||this._threadCommentModel.addComment(e,t,{id:a,threadId:a,ref:"",dT:"",personId:"",text:{dataStream:""},unitId:e,subUnitId:t})}),i.length&&this._threadCommentModel.syncThreadComments(this._context.unit.getUnitId(),M,i);let n=i.sort();this.disposeWithMe(this._commandService.onCommandExecuted(a=>{var C,h,l;if(a.id===T.RichTextEditingMutation.id){if(a.params.unitId!==this._context.unit.getUnitId())return;const _=(l=(h=(C=this._context.unit.getBody())==null?void 0:C.customDecorations)==null?void 0:h.filter(m=>m.type===o.CustomDecorationType.COMMENT).map(m=>m.id))!=null?l:[],g=_.sort();if(JSON.stringify(n)!==JSON.stringify(g)){const m=new Set(n),v=new Set(g),y=new Set,j=new Set;_.forEach(f=>{m.has(f)||y.add(f)}),n.forEach(f=>{v.has(f)||j.add(f)}),n=g,y.forEach(f=>{this._threadCommentModel.getComment(e,t,f)||this._threadCommentModel.addComment(e,t,{id:f,threadId:f,ref:"",dT:"",personId:"",text:{dataStream:""},unitId:e,subUnitId:t})}),this._threadCommentModel.syncThreadComments(e,t,[...y])}}}))}};G=_e([P(1,o.Inject(T.DocInterceptorService)),P(2,o.Inject(O.ThreadCommentPanelService)),P(3,o.Inject(A.DocRenderController)),P(4,o.IUniverInstanceService),P(5,o.Inject(w.ThreadCommentModel)),P(6,o.ICommandService)],G);var Oe=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,De=(e,t,i)=>t in e?Oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Me=(e,t,i,n)=>{for(var r=n>1?void 0:n?Te(t,i):t,s=e.length-1,d;s>=0;s--)(d=e[s])&&(r=d(r)||r);return r},Z=(e,t)=>(i,n)=>t(i,n,e),ne=(e,t,i)=>De(e,typeof t!="symbol"?t+"":t,i);c.UniverDocsThreadCommentUIPlugin=class extends o.Plugin{constructor(t=J,i,n,r){super(),this._config=t,this._injector=i,this._renderManagerSrv=n,this._configService=r;const{menu:s,...d}=o.merge({},J,this._config);s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig(oe,d)}onStarting(){[[q],[B],[E]].forEach(t=>{this._injector.add(t)})}onRendered(){this._initRenderModule(),this._injector.get(B),this._injector.get(q)}_initRenderModule(){[G].forEach(t=>{this._renderManagerSrv.registerRenderModule(o.UniverInstanceType.UNIVER_DOC,t)})}},ne(c.UniverDocsThreadCommentUIPlugin,"pluginName",re),ne(c.UniverDocsThreadCommentUIPlugin,"type",o.UniverInstanceType.UNIVER_DOC),c.UniverDocsThreadCommentUIPlugin=Me([o.DependentOn(O.UniverThreadCommentUIPlugin),Z(1,o.Inject(o.Injector)),Z(2,S.IRenderManagerService),Z(3,o.IConfigService)],c.UniverDocsThreadCommentUIPlugin),c.AddDocCommentComment=H,c.DeleteDocCommentComment=L,c.ShowCommentPanelOperation=N,c.StartAddCommentOperation=V,Object.defineProperty(c,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.7.0-nightly.202505201607",
3
+ "version": "0.7.0-nightly.202505221607",
4
4
  "private": false,
5
5
  "description": "Univer thread comment plugin",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -48,13 +48,13 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@univerjs/icons": "^0.3.24",
51
- "@univerjs/core": "0.7.0-nightly.202505201607",
52
- "@univerjs/docs": "0.7.0-nightly.202505201607",
53
- "@univerjs/docs-ui": "0.7.0-nightly.202505201607",
54
- "@univerjs/engine-render": "0.7.0-nightly.202505201607",
55
- "@univerjs/thread-comment": "0.7.0-nightly.202505201607",
56
- "@univerjs/thread-comment-ui": "0.7.0-nightly.202505201607",
57
- "@univerjs/ui": "0.7.0-nightly.202505201607"
51
+ "@univerjs/core": "0.7.0-nightly.202505221607",
52
+ "@univerjs/docs-ui": "0.7.0-nightly.202505221607",
53
+ "@univerjs/engine-render": "0.7.0-nightly.202505221607",
54
+ "@univerjs/thread-comment": "0.7.0-nightly.202505221607",
55
+ "@univerjs/docs": "0.7.0-nightly.202505221607",
56
+ "@univerjs/thread-comment-ui": "0.7.0-nightly.202505221607",
57
+ "@univerjs/ui": "0.7.0-nightly.202505221607"
58
58
  },
59
59
  "devDependencies": {
60
60
  "postcss": "^8.5.3",
@@ -63,7 +63,7 @@
63
63
  "tailwindcss": "^3.4.17",
64
64
  "typescript": "^5.8.3",
65
65
  "vite": "^6.3.5",
66
- "vitest": "^3.1.3",
66
+ "vitest": "^3.1.4",
67
67
  "@univerjs-infra/shared": "0.7.0"
68
68
  },
69
69
  "scripts": {