@univerjs/docs-thread-comment-ui 0.2.3 → 0.2.4

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