@univerjs/docs-thread-comment-ui 0.2.2 → 0.2.4-alpha.0

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/README.md CHANGED
@@ -1,28 +1,37 @@
1
1
  # @univerjs/sheets-thread-comment
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/@univerjs/sheets-thread-comment)](https://npmjs.org/packages/@univerjs/sheets-thread-comment )
4
- [![license](https://img.shields.io/npm/l/@univerjs/sheets-thread-comment)](https://img.shields.io/npm/l/@univerjs/sheets- thread-comment)
3
+ ## Package Overview
4
+
5
+ | Package Name | UMD Namespace | Version | License | Downloads | Contains CSS | Contains i18n locales |
6
+ | --- | --- | --- | --- | --- | :---: | :---: |
7
+ | `@univerjs/sheets-thread-comment` | `UniverSheetsThreadComment` | [![][npm-version-shield]][npm-version-link] | ![][npm-license-shield] | ![][npm-downloads-shield] | ⭕️ | ⭕️ |
5
8
 
6
9
  ## Introduction
7
10
 
8
11
  `@univerjs/sheets-thread-comment` provides the comment/annotation function of Univer Sheets.
9
12
 
10
-
11
13
  ## Usage
12
14
 
13
- ### Install
15
+ ### Installation
14
16
 
15
17
  ```shell
16
- # Use npm
18
+ # Using npm
17
19
  npm install @univerjs/sheets-thread-comment
18
20
 
19
- # Use pnpm
21
+ # Using pnpm
20
22
  pnpm add @univerjs/sheets-thread-comment
21
23
  ```
22
24
 
23
- ### use
24
- ```js
25
+ ### Register the plugin
26
+
27
+ ```typescript
25
28
  import { UniverDocsThreadCommentUIPlugin } from '@univerjs/docs-thread-comment-ui';
26
29
 
27
30
  univer.registerPlugin(UniverDocsThreadCommentUIPlugin);
28
31
  ```
32
+
33
+ <!-- Links -->
34
+ [npm-version-shield]: https://img.shields.io/npm/v/@univerjs/docs-hyper-link-ui?style=flat-square
35
+ [npm-version-link]: https://npmjs.com/package/@univerjs/docs-hyper-link-ui
36
+ [npm-license-shield]: https://img.shields.io/npm/l/@univerjs/docs-hyper-link-ui?style=flat-square
37
+ [npm-downloads-shield]: https://img.shields.io/npm/dm/@univerjs/docs-hyper-link-ui?style=flat-square
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 te=Object.defineProperty;var ne=(e,t,n)=>t in e?te(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var B=(e,t,n)=>ne(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),_=require("@univerjs/thread-comment-ui"),y=require("@univerjs/engine-render"),g=require("@univerjs/ui"),f=require("@univerjs/docs"),V=require("@univerjs/thread-comment"),p=require("react"),$=require("rxjs"),K=require("@univerjs/docs-ui"),re="DOC_THREAD_COMMENT_UI_PLUGIN",O="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},X=p.forwardRef(function(e,t){var n=e.icon,r=e.id,i=e.className,c=e.extend,s=ie(e,["icon","id","className","extend"]),d="univerjs-icon univerjs-icon-".concat(r," ").concat(i||"").trim(),l=p.useRef("_".concat(se()));return Y(n,"".concat(r),{defIds:n.defIds,idSuffix:l.current},C({ref:t,className:d},s),c)});function Y(e,t,n,r,i){return p.createElement(e.tag,C(C({key:t},oe(e,n,i)),r),(ce(e,n).children||[]).map(function(c,s){return Y(c,"".concat(t,"-").concat(e.tag,"-").concat(s),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(c){var s=c[0],d=c[1];typeof d=="string"&&(r[s]=d.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),r}function ce(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 se(){return Math.random().toString(36).substring(2,8)}X.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"}}]},J=p.forwardRef(function(e,t){return p.createElement(X,Object.assign({},e,{id:"comment-single",ref:t,icon:ae}))});J.displayName="CommentSingle";const q={id:"docs.command.add-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{comment:n,unitId:r}=t,c=await e.get(V.IThreadCommentDataSourceService).addComment(n),s=e.get(o.ICommandService),d=f.addCustomDecorationBySelectionFactory(e,{id:c.id,type:o.CustomDecorationType.COMMENT});if(d){const l={id:V.AddCommentMutation.id,params:{unitId:r,subUnitId:O,comment:c}},m={id:_.SetActiveCommentOperation.id,params:{unitId:r,subUnitId:O,commentId:c.id}};return(await o.sequenceExecuteAsync([l,d,m],s)).result}return!1}};var de=Object.defineProperty,me=Object.getOwnPropertyDescriptor,le=(e,t,n,r)=>{for(var i=r>1?void 0:r?me(t,n):t,c=e.length-1,s;c>=0;c--)(s=e[c])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&de(t,n,i),i},z=(e,t)=>(n,r)=>t(n,r,e);let D=class extends o.Disposable{constructor(t,n){super();B(this,"_addingComment$",new $.BehaviorSubject(void 0));B(this,"addingComment$",this._addingComment$.asObservable());this._sidebarService=t,this._threadCommentPanelService=n,this.disposeWithMe(()=>{this._addingComment$.complete()})}get addingComment(){return this._addingComment$.getValue()}startAdd(t){this._addingComment$.next(t)}endAdd(){this._addingComment$.next(void 0)}};D=le([z(0,g.ISidebarService),z(1,o.Inject(_.ThreadCommentPanelService))],D);const R={id:"docs.operation.show-comment-panel",type:o.CommandType.OPERATION,handler(e,t){const n=e.get(_.ThreadCommentPanelService),r=e.get(g.ISidebarService);return n.panelVisible||(r.open({header:{title:"threadCommentUI.panel.title"},children:{label:W.componentKey},width:320,onClose:()=>n.setPanelVisible(!1)}),n.setPanelVisible(!0)),t&&n.setActiveComment(t==null?void 0:t.activeComment),!0}},N={id:"docs.operation.start-add-comment",type:o.CommandType.OPERATION,handler(e){var I,P;const t=e.get(_.ThreadCommentPanelService),r=e.get(o.IUniverInstanceService).getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC),i=e.get(f.TextSelectionManagerService),c=e.get(o.UserManagerService),s=e.get(D),d=e.get(o.ICommandService),l=e.get(g.ISidebarService),m=i.getActiveRange();if(!r||!m)return!1;if(m.collapsed)return t.panelVisible?(t.setPanelVisible(!1),l.close()):d.executeCommand(R.id),!0;t.panelVisible||d.executeCommand(R.id);const v=r.getUnitId(),S=f.getSelectionText((P=(I=r.getBody())==null?void 0:I.dataStream)!=null?P:"",m.startOffset,m.endOffset),h=O,u="",a={unitId:v,subUnitId:h,id:u,ref:S,dT:_.getDT(),personId:c.getCurrentUser().userID,text:{dataStream:`\r
2
+ `},startOffset:m.startOffset,endOffset:m.endOffset,collapsed:!0,threadId:u};return s.startAdd(a),t.setActiveComment({unitId:v,subUnitId:h,commentId:u}),!0}},F={id:"docs.command.delete-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{commentId:n,unitId:r}=t,i=e.get(o.ICommandService),c=f.deleteCustomDecorationFactory(e,{id:n,unitId:r});return c?(await o.sequenceExecute([c],i)).result:!1}},W=()=>{var u;const e=o.useDependency(o.IUniverInstanceService),t=p.useMemo(()=>e.getCurrentTypeOfUnit$(o.UniverInstanceType.UNIVER_DOC),[e]),n=o.useObservable(t),r=p.useMemo(()=>new $.Observable(a=>a.next(O)),[]),i=o.useDependency(f.TextSelectionManagerService),c=(u=o.useObservable(i.textSelection$))==null?void 0:u.textRanges[0],s=o.useDependency(o.ICommandService),d=o.useDependency(D),l=o.useObservable(d.addingComment$),[m,v]=p.useState([]);if(p.useEffect(()=>{var H;const a=new Set,I=n==null?void 0:n.getCustomDecorations();v((H=I==null?void 0:I.map(b=>b.id).filter(b=>{const x=a.has(b);return a.add(b),!x}))!=null?H:[]);const P=s.onCommandExecuted(b=>{var x;if(b.id===f.RichTextEditingMutation.id){const Z=new Set,L=n==null?void 0:n.getCustomDecorations();v((x=L==null?void 0:L.map(A=>A.id).filter(A=>{const ee=Z.has(A);return Z.add(A),!ee}))!=null?x:[])}});return()=>{P.dispose()}},[s,n]),!n)return null;const S=c&&c.endOffset===c.startOffset,h=n.getUnitId();return p.createElement(_.ThreadCommentPanel,{unitId:h,subUnitId$:r,type:o.UniverInstanceType.UNIVER_DOC,onAdd:()=>{s.executeCommand(N.id)},getSubUnitName:()=>"",disableAdd:S,tempComment:l,onAddComment:a=>{if(!a.parentId){const I={unitId:h,range:l,comment:a};return s.executeCommand(q.id,I),d.endAdd(),!1}return!0},onDeleteComment:a=>{if(!a.parentId){const I={unitId:h,commentId:a.id};return s.executeCommand(F.id,I),!1}return!0},showComments:m})};W.componentKey="univer.doc.thread-comment-panel";const ue=e=>{const n=e.get(y.IRenderManagerService).getCurrent(),r=n==null?void 0:n.with(f.DocSkeletonManagerService).getSkeleton(),i=r==null?void 0:r.getViewModel().getEditArea();return i===y.DocumentEditArea.FOOTER||i===y.DocumentEditArea.HEADER};function Ce(e){return{id:N.id,group:g.MenuGroup.TOOLBAR_LAYOUT,type:g.MenuItemType.BUTTON,icon:"CommentSingle",title:"threadCommentUI.panel.addComment",tooltip:"threadCommentUI.panel.addComment",positions:[g.MenuPosition.TOOLBAR_START,g.MenuPosition.CONTEXT_MENU],hidden$:g.getMenuHiddenObservable(e,o.UniverInstanceType.UNIVER_DOC),disabled$:new $.Observable(function(t){const r=e.get(f.TextSelectionManagerService).textSelection$.pipe($.debounceTime(16)).subscribe(()=>{t.next(ue(e))});return()=>{r.unsubscribe()}})}}var ve=Object.defineProperty,fe=Object.getOwnPropertyDescriptor,he=(e,t,n,r)=>{for(var i=r>1?void 0:r?fe(t,n):t,c=e.length-1,s;c>=0;c--)(s=e[c])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&ve(t,n,i),i},E=(e,t)=>(n,r)=>t(n,r,e);let U=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(){[q,F,R,N].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){[Ce].forEach(e=>{this.disposeWithMe(this._menuService.addMenuItem(e(this._injector),this._config.menu))})}_initComponents(){[W].forEach(e=>{this.disposeWithMe(this._componentManager.register(e.componentKey,e))}),this.disposeWithMe(this._componentManager.register("CommentSingle",J))}};U=he([o.OnLifecycle(o.LifecycleStages.Rendered,U),E(1,o.ICommandService),E(2,g.IMenuService),E(3,o.Inject(o.Injector)),E(4,o.Inject(g.ComponentManager))],U);var Ie=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,pe=(e,t,n,r)=>{for(var i=r>1?void 0:r?ge(t,n):t,c=e.length-1,s;c>=0;c--)(s=e[c])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&Ie(t,n,i),i},M=(e,t)=>(n,r)=>t(n,r,e);let w=class extends o.Disposable{constructor(e,t,n,r,i,c){super(),this._threadCommentPanelService=e,this._univerInstanceService=t,this._commandService=n,this._docThreadCommentService=r,this._renderManagerService=i,this._threadCommentModel=c,this._initSelectionChange(),this._initActiveCommandChange()}_initSelectionChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var t,n,r,i;if(e.id===f.SetTextSelectionsOperation.id){const c=e.params,{unitId:s,ranges:d}=c,l=this._univerInstanceService.getUnit(s,o.UniverInstanceType.UNIVER_DOC),m=d[0];if(m&&l){const{startOffset:v,endOffset:S,collapsed:h}=m;let u;if(h?u=(n=(t=l.getBody())==null?void 0:t.customDecorations)==null?void 0:n.find(a=>a.startIndex<=v&&a.endIndex>=S-1):u=(i=(r=l.getBody())==null?void 0:r.customDecorations)==null?void 0:i.find(a=>a.startIndex<=v&&a.endIndex>=S-1),u){const a=this._threadCommentModel.getComment(s,O,u.id);a&&!a.resolved&&this._commandService.executeCommand(R.id,{activeComment:{unitId:s,subUnitId:O,commentId:u.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 c=(t=this._renderManagerService.getRenderById(e.unitId))==null?void 0:t.with(K.DocBackScrollRenderController),s=(n=i.getCustomRanges())==null?void 0:n.find(d=>d.rangeId===e.commentId);s&&c&&c.scrollToRange(e.unitId,{startOffset:s.startIndex,endOffset:s.endIndex,collapsed:!1})}}(!e||e.commentId!==((r=this._docThreadCommentService.addingComment)==null?void 0:r.id))&&this._docThreadCommentService.endAdd()}))}};w=pe([o.OnLifecycle(o.LifecycleStages.Rendered,w),M(0,o.Inject(_.ThreadCommentPanelService)),M(1,o.IUniverInstanceService),M(2,o.ICommandService),M(3,o.Inject(D)),M(4,y.IRenderManagerService),M(5,o.Inject(V.ThreadCommentModel))],w);var _e=Object.defineProperty,Se=Object.getOwnPropertyDescriptor,Oe=(e,t,n,r)=>{for(var i=r>1?void 0:r?Se(t,n):t,c=e.length-1,s;c>=0;c--)(s=e[c])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&_e(t,n,i),i},T=(e,t)=>(n,r)=>t(n,r,e);let j=class extends o.Disposable{constructor(e,t,n,r,i,c){super(),this._context=e,this._docInterceptorService=t,this._threadCommentPanelService=n,this._docRenderController=r,this._univerInstanceService=i,this._threadCommentModel=c,this._interceptorViewModel(),this._initReRender()}_initReRender(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var n;if(e){this._docRenderController.reRender(e.unitId);return}const t=(n=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC))==null?void 0:n.getUnitId();t&&this._docRenderController.reRender(t)})),this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe(e=>{e.type==="resolve"&&this._docRenderController.reRender(e.unitId)}))}_interceptorViewModel(){this._docInterceptorService.intercept(f.DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION,{handler:(e,t,n)=>{if(!e)return n(e);const{unitId:r,index:i,customDecorations:c}=t,s=this._threadCommentPanelService.activeCommentId,{commentId:d,unitId:l}=s||{},m=c.find(u=>u.id===d),v=this._threadCommentModel.getComment(r,O,e.id);if(!v)return n({...e,show:!1});const S=m&&i>=m.startIndex&&i<=m.endIndex,h=l===r&&e.id===d;return n({...e,active:h||S,show:!v.resolved})}})}};j=Oe([o.OnLifecycle(o.LifecycleStages.Starting,j),T(1,o.Inject(f.DocInterceptorService)),T(2,o.Inject(_.ThreadCommentPanelService)),T(3,o.Inject(K.DocRenderController)),T(4,o.IUniverInstanceService),T(5,o.Inject(V.ThreadCommentModel))],j);var Q=Object.defineProperty,be=Object.getOwnPropertyDescriptor,Me=(e,t,n)=>t in e?Q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,De=(e,t,n,r)=>{for(var i=r>1?void 0:r?be(t,n):t,c=e.length-1,s;c>=0;c--)(s=e[c])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&Q(t,n,i),i},G=(e,t)=>(n,r)=>t(n,r,e),k=(e,t,n)=>Me(e,typeof t!="symbol"?t+"":t,n);exports.UniverDocsThreadCommentUIPlugin=class extends o.Plugin{constructor(t={menu:{}},n,r){super(),this._config=t,this._injector=n,this._renderManagerSrv=r}onStarting(t){[[U,{useFactory:()=>this._injector.createInstance(U,this._config)}],[w],[D]].forEach(n=>{t.add(n)})}onRendered(){this._initRenderModule()}_initRenderModule(){[j].forEach(t=>{this._renderManagerSrv.registerRenderModule(o.UniverInstanceType.UNIVER_DOC,t)})}};k(exports.UniverDocsThreadCommentUIPlugin,"pluginName",re);k(exports.UniverDocsThreadCommentUIPlugin,"type",o.UniverInstanceType.UNIVER_DOC);exports.UniverDocsThreadCommentUIPlugin=De([o.DependentOn(_.UniverThreadCommentUIPlugin),G(1,o.Inject(o.Injector)),G(2,y.IRenderManagerService)],exports.UniverDocsThreadCommentUIPlugin);exports.AddDocCommentComment=q;exports.DeleteDocCommentComment=F;exports.ShowCommentPanelOperation=R;exports.StartAddCommentOperation=N;
package/lib/es/index.js CHANGED
@@ -1,18 +1,16 @@
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, Inject as C, Disposable as N, IUniverInstanceService as j, UniverInstanceType as p, UserManagerService as Se, sequenceExecute as Ie, useDependency as P, useObservable as F, OnLifecycle as W, LifecycleStages as H, Injector as ne, DependentOn as Oe, Plugin as Me } from "@univerjs/core";
5
+ import { SetActiveCommentOperation as re, ThreadCommentPanelService as R, getDT as be, ThreadCommentPanel as De, UniverThreadCommentUIPlugin as Re } from "@univerjs/thread-comment-ui";
7
6
  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";
7
+ 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";
8
+ 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";
9
+ import { IThreadCommentDataSourceService as Le, AddCommentMutation as Fe, ThreadCommentModel as ie } from "@univerjs/thread-comment";
10
+ import We, { forwardRef as oe, useRef as He, createElement as se, useMemo as k, useState as Ze, useEffect as ze } from "react";
13
11
  import { BehaviorSubject as Ge, Observable as ce, debounceTime as Ke } from "rxjs";
14
12
  import { DocBackScrollRenderController as qe, DocRenderController as Xe } from "@univerjs/docs-ui";
15
- const Ye = "DOC_THREAD_COMMENT_UI_PLUGIN", S = "default_doc";
13
+ const Ye = "DOC_THREAD_COMMENT_UI_PLUGIN", g = "default_doc";
16
14
  var u = function() {
17
15
  return u = Object.assign || function(e) {
18
16
  for (var t, n = 1, r = arguments.length; n < r; n++) {
@@ -28,13 +26,13 @@ var u = function() {
28
26
  for (var i = 0, r = Object.getOwnPropertySymbols(e); i < r.length; i++)
29
27
  t.indexOf(r[i]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[i]) && (n[r[i]] = e[r[i]]);
30
28
  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);
29
+ }, de = oe(function(e, t) {
30
+ 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()));
31
+ return ae(n, "".concat(r), { defIds: n.defIds, idSuffix: m.current }, u({ ref: t, className: d }, s), o);
34
32
  });
35
33
  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);
34
+ return se(e.tag, u(u({ key: t }, Qe(e, n, i)), r), (ke(e, n).children || []).map(function(o, s) {
35
+ return ae(o, "".concat(t, "-").concat(e.tag, "-").concat(s), n, void 0, i);
38
36
  }));
39
37
  }
40
38
  function Qe(e, t, n) {
@@ -42,8 +40,8 @@ function Qe(e, t, n) {
42
40
  n != null && n.colorChannel1 && r.fill === "colorChannel1" && (r.fill = n.colorChannel1);
43
41
  var i = t.defIds;
44
42
  return !i || i.length === 0 || (e.tag === "use" && r["xlink:href"] && (r["xlink:href"] = r["xlink:href"] + t.idSuffix), Object.entries(r).forEach(function(o) {
45
- var c = o[0], s = o[1];
46
- typeof s == "string" && (r[c] = s.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
43
+ var s = o[0], d = o[1];
44
+ typeof d == "string" && (r[s] = d.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
47
45
  })), r;
48
46
  }
49
47
  function ke(e, t) {
@@ -55,74 +53,77 @@ function ke(e, t) {
55
53
  function et() {
56
54
  return Math.random().toString(36).substring(2, 8);
57
55
  }
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, {
56
+ de.displayName = "UniverIcon";
57
+ 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) {
58
+ return se(de, Object.assign({}, e, {
61
59
  id: "comment-single",
62
60
  ref: t,
63
61
  icon: tt
64
62
  }));
65
63
  });
66
- de.displayName = "CommentSingle";
67
- const me = {
64
+ me.displayName = "CommentSingle";
65
+ const le = {
68
66
  id: "docs.command.add-comment",
69
67
  type: $.COMMAND,
70
68
  async handler(e, t) {
71
69
  if (!t)
72
70
  return !1;
73
- const { comment: n, unitId: r } = t, o = await e.get(Be).addComment(n), c = e.get(O), s = Ue(
71
+ const { comment: n, unitId: r } = t, o = await e.get(Le).addComment(n), s = e.get(M), d = Ee(
74
72
  e,
75
73
  {
76
74
  id: o.id,
77
- type: _e.COMMENT
75
+ type: pe.COMMENT
78
76
  }
79
77
  );
80
- if (s) {
78
+ if (d) {
81
79
  const m = {
82
- id: Le.id,
80
+ id: Fe.id,
83
81
  params: {
84
82
  unitId: r,
85
- subUnitId: S,
83
+ subUnitId: g,
86
84
  comment: o
87
85
  }
88
- }, d = {
86
+ }, a = {
89
87
  id: re.id,
90
88
  params: {
91
89
  unitId: r,
92
- subUnitId: S,
90
+ subUnitId: g,
93
91
  commentId: o.id
94
92
  }
95
93
  };
96
- return (await pe([m, s, d], c)).result;
94
+ return (await ge([m, d, a], s)).result;
97
95
  }
98
96
  return !1;
99
97
  }
100
98
  };
101
99
  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);
100
+ for (var i = r > 1 ? void 0 : r ? rt(t, n) : t, o = e.length - 1, s; o >= 0; o--)
101
+ (s = e[o]) && (i = (r ? s(t, n, i) : s(i)) || i);
104
102
  return r && i && nt(t, n, i), i;
105
103
  }, 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;
104
+ let O = class extends N {
105
+ constructor(t, n) {
106
+ super();
107
+ L(this, "_addingComment$", new Ge(void 0));
108
+ L(this, "addingComment$", this._addingComment$.asObservable());
109
+ this._sidebarService = t, this._threadCommentPanelService = n, this.disposeWithMe(() => {
110
+ this._addingComment$.complete();
111
+ });
111
112
  }
112
113
  get addingComment() {
113
114
  return this._addingComment$.getValue();
114
115
  }
115
- startAdd(e) {
116
- this._addingComment$.next(e);
116
+ startAdd(t) {
117
+ this._addingComment$.next(t);
117
118
  }
118
119
  endAdd() {
119
120
  this._addingComment$.next(void 0);
120
121
  }
121
122
  };
122
- I = it([
123
+ O = it([
123
124
  ee(0, z),
124
- ee(1, v(R))
125
- ], I);
125
+ ee(1, C(R))
126
+ ], O);
126
127
  const w = {
127
128
  id: "docs.operation.show-comment-panel",
128
129
  type: $.OPERATION,
@@ -139,125 +140,125 @@ const w = {
139
140
  id: "docs.operation.start-add-comment",
140
141
  type: $.OPERATION,
141
142
  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)
143
+ var v, x;
144
+ 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();
145
+ if (!r || !a)
145
146
  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 = {
147
+ if (a.collapsed)
148
+ return t.panelVisible ? (t.setPanelVisible(!1), m.close()) : d.executeCommand(w.id), !0;
149
+ t.panelVisible || d.executeCommand(w.id);
150
+ 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
151
  unitId: f,
151
- subUnitId: C,
152
+ subUnitId: h,
152
153
  id: l,
153
154
  ref: _,
154
- dT: Me(),
155
+ dT: be(),
155
156
  personId: o.getCurrentUser().userID,
156
157
  text: {
157
158
  dataStream: `\r
158
159
  `
159
160
  },
160
- startOffset: d.startOffset,
161
- endOffset: d.endOffset,
161
+ startOffset: a.startOffset,
162
+ endOffset: a.endOffset,
162
163
  collapsed: !0,
163
164
  threadId: l
164
165
  };
165
- return c.startAdd(a), t.setActiveComment({
166
+ return s.startAdd(c), t.setActiveComment({
166
167
  unitId: f,
167
- subUnitId: C,
168
+ subUnitId: h,
168
169
  commentId: l
169
170
  }), !0;
170
171
  }
171
- }, le = {
172
+ }, ue = {
172
173
  id: "docs.command.delete-comment",
173
174
  type: $.COMMAND,
174
175
  async handler(e, t) {
175
176
  if (!t)
176
177
  return !1;
177
- const { commentId: n, unitId: r } = t, i = e.get(O), o = Ae(e, {
178
+ const { commentId: n, unitId: r } = t, i = e.get(M), o = we(e, {
178
179
  id: n,
179
180
  unitId: r
180
181
  });
181
- return o ? (await Se([o], i)).result : !1;
182
+ return o ? (await Ie([o], i)).result : !1;
182
183
  }
183
184
  }, q = () => {
184
185
  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([]);
186
+ 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
187
  if (ze(() => {
187
188
  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;
189
+ const c = /* @__PURE__ */ new Set(), v = n == null ? void 0 : n.getCustomDecorations();
190
+ f((X = v == null ? void 0 : v.map((S) => S.id).filter((S) => {
191
+ const y = c.has(S);
192
+ return c.add(S), !y;
192
193
  })) != null ? X : []);
193
- const x = c.onCommandExecuted((g) => {
194
+ const x = s.onCommandExecuted((S) => {
194
195
  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;
196
+ if (S.id === Ve.id) {
197
+ const Y = /* @__PURE__ */ new Set(), B = n == null ? void 0 : n.getCustomDecorations();
198
+ f((y = B == null ? void 0 : B.map((T) => T.id).filter((T) => {
199
+ const he = Y.has(T);
200
+ return Y.add(T), !he;
200
201
  })) != null ? y : []);
201
202
  }
202
203
  });
203
204
  return () => {
204
205
  x.dispose();
205
206
  };
206
- }, [c, n]), !n)
207
+ }, [s, n]), !n)
207
208
  return null;
208
- const _ = o && o.endOffset === o.startOffset, C = n.getUnitId();
209
- return /* @__PURE__ */ He.createElement(
210
- be,
209
+ const _ = o && o.endOffset === o.startOffset, h = n.getUnitId();
210
+ return /* @__PURE__ */ We.createElement(
211
+ De,
211
212
  {
212
- unitId: C,
213
+ unitId: h,
213
214
  subUnitId$: r,
214
215
  type: p.UNIVER_DOC,
215
216
  onAdd: () => {
216
- c.executeCommand(K.id);
217
+ s.executeCommand(K.id);
217
218
  },
218
219
  getSubUnitName: () => "",
219
220
  disableAdd: _,
220
221
  tempComment: m,
221
- onAddComment: (a) => {
222
- if (!a.parentId) {
223
- const h = {
224
- unitId: C,
222
+ onAddComment: (c) => {
223
+ if (!c.parentId) {
224
+ const v = {
225
+ unitId: h,
225
226
  range: m,
226
- comment: a
227
+ comment: c
227
228
  };
228
- return c.executeCommand(me.id, h), s.endAdd(), !1;
229
+ return s.executeCommand(le.id, v), d.endAdd(), !1;
229
230
  }
230
231
  return !0;
231
232
  },
232
- onDeleteComment: (a) => {
233
- if (!a.parentId) {
234
- const h = {
235
- unitId: C,
236
- commentId: a.id
233
+ onDeleteComment: (c) => {
234
+ if (!c.parentId) {
235
+ const v = {
236
+ unitId: h,
237
+ commentId: c.id
237
238
  };
238
- return c.executeCommand(le.id, h), !1;
239
+ return s.executeCommand(ue.id, v), !1;
239
240
  }
240
241
  return !0;
241
242
  },
242
- showComments: d
243
+ showComments: a
243
244
  }
244
245
  );
245
246
  };
246
247
  q.componentKey = "univer.doc.thread-comment-panel";
247
248
  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();
249
+ const n = e.get(Z).getCurrent(), r = n == null ? void 0 : n.with($e).getSkeleton(), i = r == null ? void 0 : r.getViewModel().getEditArea();
249
250
  return i === J.FOOTER || i === J.HEADER;
250
251
  };
251
- function ct(e) {
252
+ function st(e) {
252
253
  return {
253
254
  id: K.id,
254
- group: Re.TOOLBAR_LAYOUT,
255
- type: xe.BUTTON,
255
+ group: xe.TOOLBAR_LAYOUT,
256
+ type: ye.BUTTON,
256
257
  icon: "CommentSingle",
257
258
  title: "threadCommentUI.panel.addComment",
258
259
  tooltip: "threadCommentUI.panel.addComment",
259
260
  positions: [Q.TOOLBAR_START, Q.CONTEXT_MENU],
260
- hidden$: ye(e, p.UNIVER_DOC),
261
+ hidden$: Te(e, p.UNIVER_DOC),
261
262
  disabled$: new ce(function(t) {
262
263
  const r = e.get(G).textSelection$.pipe(Ke(16)).subscribe(() => {
263
264
  t.next(ot(e));
@@ -268,19 +269,19 @@ function ct(e) {
268
269
  })
269
270
  };
270
271
  }
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;
272
+ var ct = Object.defineProperty, dt = Object.getOwnPropertyDescriptor, at = (e, t, n, r) => {
273
+ for (var i = r > 1 ? void 0 : r ? dt(t, n) : t, o = e.length - 1, s; o >= 0; o--)
274
+ (s = e[o]) && (i = (r ? s(t, n, i) : s(i)) || i);
275
+ return r && i && ct(t, n, i), i;
275
276
  }, U = (e, t) => (n, r) => t(n, r, e);
276
- let D = class extends W {
277
+ let D = class extends N {
277
278
  constructor(e, t, n, r, i) {
278
279
  super(), this._config = e, this._commandService = t, this._menuService = n, this._injector = r, this._componentManager = i, this._initCommands(), this._initMenus(), this._initComponents();
279
280
  }
280
281
  _initCommands() {
281
282
  [
282
- me,
283
283
  le,
284
+ ue,
284
285
  w,
285
286
  K
286
287
  ].forEach((e) => {
@@ -288,46 +289,47 @@ let D = class extends W {
288
289
  });
289
290
  }
290
291
  _initMenus() {
291
- [ct].forEach((e) => {
292
+ [st].forEach((e) => {
292
293
  this.disposeWithMe(this._menuService.addMenuItem(e(this._injector), this._config.menu));
293
294
  });
294
295
  }
295
296
  _initComponents() {
296
297
  [q].forEach((e) => {
297
298
  this.disposeWithMe(this._componentManager.register(e.componentKey, e));
298
- }), this.disposeWithMe(this._componentManager.register("CommentSingle", de));
299
+ }), this.disposeWithMe(this._componentManager.register("CommentSingle", me));
299
300
  }
300
301
  };
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))
302
+ D = at([
303
+ W(H.Rendered, D),
304
+ U(1, M),
305
+ U(2, Ue),
306
+ U(3, C(ne)),
307
+ U(4, C(Pe))
307
308
  ], D);
308
309
  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);
310
+ for (var i = r > 1 ? void 0 : r ? lt(t, n) : t, o = e.length - 1, s; o >= 0; o--)
311
+ (s = e[o]) && (i = (r ? s(t, n, i) : s(i)) || i);
311
312
  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();
313
+ }, I = (e, t) => (n, r) => t(n, r, e);
314
+ let E = class extends N {
315
+ constructor(e, t, n, r, i, o) {
316
+ super(), this._threadCommentPanelService = e, this._univerInstanceService = t, this._commandService = n, this._docThreadCommentService = r, this._renderManagerService = i, this._threadCommentModel = o, this._initSelectionChange(), this._initActiveCommandChange();
316
317
  }
317
318
  _initSelectionChange() {
318
319
  this.disposeWithMe(
319
320
  this._commandService.onCommandExecuted((e) => {
320
321
  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;
322
+ if (e.id === Ne.id) {
323
+ const o = e.params, { unitId: s, ranges: d } = o, m = this._univerInstanceService.getUnit(s, p.UNIVER_DOC), a = d[0];
324
+ if (a && m) {
325
+ const { startOffset: f, endOffset: _, collapsed: h } = a;
325
326
  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, {
327
+ 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) {
328
+ const c = this._threadCommentModel.getComment(s, g, l.id);
329
+ c && !c.resolved && this._commandService.executeCommand(w.id, {
328
330
  activeComment: {
329
- unitId: c,
330
- subUnitId: S,
331
+ unitId: s,
332
+ subUnitId: g,
331
333
  commentId: l.id
332
334
  }
333
335
  });
@@ -345,10 +347,10 @@ let E = class extends W {
345
347
  if (e) {
346
348
  const i = this._univerInstanceService.getUnit(e.unitId);
347
349
  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,
350
+ 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);
351
+ s && o && o.scrollToRange(e.unitId, {
352
+ startOffset: s.startIndex,
353
+ endOffset: s.endIndex,
352
354
  collapsed: !1
353
355
  });
354
356
  }
@@ -358,19 +360,20 @@ let E = class extends W {
358
360
  }
359
361
  };
360
362
  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)
363
+ W(H.Rendered, E),
364
+ I(0, C(R)),
365
+ I(1, j),
366
+ I(2, M),
367
+ I(3, C(O)),
368
+ I(4, Z),
369
+ I(5, C(ie))
367
370
  ], E);
368
371
  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);
372
+ for (var i = r > 1 ? void 0 : r ? Ct(t, n) : t, o = e.length - 1, s; o >= 0; o--)
373
+ (s = e[o]) && (i = (r ? s(t, n, i) : s(i)) || i);
371
374
  return r && i && ft(t, n, i), i;
372
375
  }, b = (e, t) => (n, r) => t(n, r, e);
373
- let A = class extends W {
376
+ let A = class extends N {
374
377
  constructor(e, t, n, r, i, o) {
375
378
  super(), this._context = e, this._docInterceptorService = t, this._threadCommentPanelService = n, this._docRenderController = r, this._univerInstanceService = i, this._threadCommentModel = o, this._interceptorViewModel(), this._initReRender();
376
379
  }
@@ -388,20 +391,20 @@ let A = class extends W {
388
391
  }));
389
392
  }
390
393
  _interceptorViewModel() {
391
- this._docInterceptorService.intercept(je.CUSTOM_DECORATION, {
394
+ this._docInterceptorService.intercept(Be.CUSTOM_DECORATION, {
392
395
  handler: (e, t, n) => {
393
396
  if (!e)
394
397
  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);
398
+ 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
399
  if (!f)
397
400
  return n({
398
401
  ...e,
399
402
  show: !1
400
403
  });
401
- const _ = d && i >= d.startIndex && i <= d.endIndex, C = m === r && e.id === s;
404
+ const _ = a && i >= a.startIndex && i <= a.endIndex, h = m === r && e.id === d;
402
405
  return n({
403
406
  ...e,
404
- active: C || _,
407
+ active: h || _,
405
408
  show: !f.resolved
406
409
  });
407
410
  }
@@ -409,19 +412,19 @@ let A = class extends W {
409
412
  }
410
413
  };
411
414
  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))
415
+ W(H.Starting, A),
416
+ b(1, C(je)),
417
+ b(2, C(R)),
418
+ b(3, C(Xe)),
419
+ b(4, j),
420
+ b(5, C(ie))
418
421
  ], 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 {
422
+ 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) => {
423
+ for (var i = r > 1 ? void 0 : r ? vt(t, n) : t, o = e.length - 1, s; o >= 0; o--)
424
+ (s = e[o]) && (i = (r ? s(t, n, i) : s(i)) || i);
425
+ return r && i && fe(t, n, i), i;
426
+ }, te = (e, t) => (n, r) => t(n, r, e), Ce = (e, t, n) => _t(e, typeof t != "symbol" ? t + "" : t, n);
427
+ let V = class extends Me {
425
428
  constructor(e = { menu: {} }, t, n) {
426
429
  super(), this._config = e, this._injector = t, this._renderManagerSrv = n;
427
430
  }
@@ -434,7 +437,7 @@ let V = class extends Oe {
434
437
  }
435
438
  ],
436
439
  [E],
437
- [I]
440
+ [O]
438
441
  ].forEach((t) => {
439
442
  e.add(t);
440
443
  });
@@ -448,16 +451,16 @@ let V = class extends Oe {
448
451
  });
449
452
  }
450
453
  };
451
- fe(V, "pluginName", Ye);
452
- fe(V, "type", p.UNIVER_DOC);
454
+ Ce(V, "pluginName", Ye);
455
+ Ce(V, "type", p.UNIVER_DOC);
453
456
  V = pt([
454
- Ie(De),
455
- te(1, v(ne)),
457
+ Oe(Re),
458
+ te(1, C(ne)),
456
459
  te(2, Z)
457
460
  ], V);
458
461
  export {
459
- me as AddDocCommentComment,
460
- le as DeleteDocCommentComment,
462
+ le as AddDocCommentComment,
463
+ ue as DeleteDocCommentComment,
461
464
  w as ShowCommentPanelOperation,
462
465
  K as StartAddCommentOperation,
463
466
  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,6 +1,5 @@
1
- import { Disposable, ICommandService } from '@univerjs/core';
1
+ import { Disposable, ICommandService, Injector } from '@univerjs/core';
2
2
  import { MenuConfig, ComponentManager, IMenuService } from '@univerjs/ui';
3
- import { Injector } from '@wendellhu/redi';
4
3
 
5
4
  export interface IDocThreadCommentUIConfig {
6
5
  menu: MenuConfig;
@@ -1,4 +1,4 @@
1
- import { IAccessor } from '@wendellhu/redi';
1
+ import { IAccessor } from '@univerjs/core';
2
2
  import { IMenuButtonItem } from '@univerjs/ui';
3
3
 
4
4
  export declare const shouldDisableAddComment: (accessor: IAccessor) => boolean;
@@ -1,5 +1,4 @@
1
- import { Plugin, UniverInstanceType } from '@univerjs/core';
2
- import { Injector } from '@wendellhu/redi';
1
+ import { Injector, Plugin, UniverInstanceType } from '@univerjs/core';
3
2
  import { IRenderManagerService } from '@univerjs/engine-render';
4
3
  import { IDocThreadCommentUIConfig } from './controllers/doc-thread-comment-ui.controller';
5
4
 
@@ -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("@univerjs/thread-comment-ui"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("@univerjs/docs"),require("@univerjs/thread-comment"),require("react"),require("rxjs"),require("@univerjs/docs-ui")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/thread-comment-ui","@univerjs/engine-render","@univerjs/ui","@univerjs/docs","@univerjs/thread-comment","react","rxjs","@univerjs/docs-ui"],o):(d=typeof globalThis<"u"?globalThis:d||self,o(d.UniverDocsThreadCommentUi={},d.UniverCore,d.UniverThreadCommentUi,d.UniverEngineRender,d.UniverUi,d.UniverDocs,d.UniverThreadComment,d.React,d.rxjs,d.UniverDocsUi))})(this,function(d,o,l,y,_,h,x,p,R,Z){"use strict";var Te=Object.defineProperty;var be=(d,o,l)=>o in d?Te(d,o,{enumerable:!0,configurable:!0,writable:!0,value:l}):d[o]=l;var H=(d,o,l)=>be(d,typeof o!="symbol"?o+"":o,l);const te="DOC_THREAD_COMMENT_UI_PLUGIN",M="default_doc";var C=function(){return C=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++){t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},C.apply(this,arguments)},ne=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]]);return n},z=p.forwardRef(function(e,t){var n=e.icon,i=e.id,r=e.className,s=e.extend,a=ne(e,["icon","id","className","extend"]),m="univerjs-icon univerjs-icon-".concat(i," ").concat(r||"").trim(),v=p.useRef("_".concat(oe()));return G(n,"".concat(i),{defIds:n.defIds,idSuffix:v.current},C({ref:t,className:m},a),s)});function G(e,t,n,i,r){return p.createElement(e.tag,C(C({key:t},ie(e,n,r)),i),(re(e,n).children||[]).map(function(s,a){return G(s,"".concat(t,"-").concat(e.tag,"-").concat(a),n,void 0,r)}))}function ie(e,t,n){var i=C({},e.attrs);n!=null&&n.colorChannel1&&i.fill==="colorChannel1"&&(i.fill=n.colorChannel1);var r=t.defIds;return!r||r.length===0||(e.tag==="use"&&i["xlink:href"]&&(i["xlink:href"]=i["xlink:href"]+t.idSuffix),Object.entries(i).forEach(function(s){var a=s[0],m=s[1];typeof m=="string"&&(i[a]=m.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),i}function re(e,t){var n,i=t.defIds;return!i||i.length===0?e:e.tag==="defs"&&(!((n=e.children)===null||n===void 0)&&n.length)?C(C({},e),{children:e.children.map(function(r){return typeof r.attrs.id=="string"&&i&&i.indexOf(r.attrs.id)>-1?C(C({},r),{attrs:C(C({},r.attrs),{id:r.attrs.id+t.idSuffix})}):r})}):e}function oe(){return Math.random().toString(36).substring(2,8)}z.displayName="UniverIcon";var se={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(z,Object.assign({},e,{id:"comment-single",ref:t,icon:se}))});K.displayName="CommentSingle";const B={id:"docs.command.add-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{comment:n,unitId:i}=t,s=await e.get(x.IThreadCommentDataSourceService).addComment(n),a=e.get(o.ICommandService),m=h.addCustomDecorationBySelectionFactory(e,{id:s.id,type:o.CustomDecorationType.COMMENT});if(m){const v={id:x.AddCommentMutation.id,params:{unitId:i,subUnitId:M,comment:s}},u={id:l.SetActiveCommentOperation.id,params:{unitId:i,subUnitId:M,commentId:s.id}};return(await o.sequenceExecuteAsync([v,m,u],a)).result}return!1}};var ae=Object.defineProperty,de=Object.getOwnPropertyDescriptor,ce=(e,t,n,i)=>{for(var r=i>1?void 0:i?de(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(r=(i?a(t,n,r):a(r))||r);return i&&r&&ae(t,n,r),r},X=(e,t)=>(n,i)=>t(n,i,e);let D=class extends o.Disposable{constructor(t,n){super();H(this,"_addingComment$",new R.BehaviorSubject(void 0));H(this,"addingComment$",this._addingComment$.asObservable());this._sidebarService=t,this._threadCommentPanelService=n,this.disposeWithMe(()=>{this._addingComment$.complete()})}get addingComment(){return this._addingComment$.getValue()}startAdd(t){this._addingComment$.next(t)}endAdd(){this._addingComment$.next(void 0)}};D=ce([X(0,_.ISidebarService),X(1,o.Inject(l.ThreadCommentPanelService))],D);const U={id:"docs.operation.show-comment-panel",type:o.CommandType.OPERATION,handler(e,t){const n=e.get(l.ThreadCommentPanelService),i=e.get(_.ISidebarService);return n.panelVisible||(i.open({header:{title:"threadCommentUI.panel.title"},children:{label:F.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 g,$;const t=e.get(l.ThreadCommentPanelService),i=e.get(o.IUniverInstanceService).getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC),r=e.get(h.TextSelectionManagerService),s=e.get(o.UserManagerService),a=e.get(D),m=e.get(o.ICommandService),v=e.get(_.ISidebarService),u=r.getActiveRange();if(!i||!u)return!1;if(u.collapsed)return t.panelVisible?(t.setPanelVisible(!1),v.close()):m.executeCommand(U.id),!0;t.panelVisible||m.executeCommand(U.id);const I=i.getUnitId(),O=h.getSelectionText(($=(g=i.getBody())==null?void 0:g.dataStream)!=null?$:"",u.startOffset,u.endOffset),S=M,f="",c={unitId:I,subUnitId:S,id:f,ref:O,dT:l.getDT(),personId:s.getCurrentUser().userID,text:{dataStream:`\r
2
+ `},startOffset:u.startOffset,endOffset:u.endOffset,collapsed:!0,threadId:f};return a.startAdd(c),t.setActiveComment({unitId:I,subUnitId:S,commentId:f}),!0}},q={id:"docs.command.delete-comment",type:o.CommandType.COMMAND,async handler(e,t){if(!t)return!1;const{commentId:n,unitId:i}=t,r=e.get(o.ICommandService),s=h.deleteCustomDecorationFactory(e,{id:n,unitId:i});return s?(await o.sequenceExecute([s],r)).result:!1}},F=()=>{var f;const e=o.useDependency(o.IUniverInstanceService),t=p.useMemo(()=>e.getCurrentTypeOfUnit$(o.UniverInstanceType.UNIVER_DOC),[e]),n=o.useObservable(t),i=p.useMemo(()=>new R.Observable(c=>c.next(M)),[]),r=o.useDependency(h.TextSelectionManagerService),s=(f=o.useObservable(r.textSelection$))==null?void 0:f.textRanges[0],a=o.useDependency(o.ICommandService),m=o.useDependency(D),v=o.useObservable(m.addingComment$),[u,I]=p.useState([]);if(p.useEffect(()=>{var k;const c=new Set,g=n==null?void 0:n.getCustomDecorations();I((k=g==null?void 0:g.map(b=>b.id).filter(b=>{const N=c.has(b);return c.add(b),!N}))!=null?k:[]);const $=a.onCommandExecuted(b=>{var N;if(b.id===h.RichTextEditingMutation.id){const ee=new Set,W=n==null?void 0:n.getCustomDecorations();I((N=W==null?void 0:W.map(L=>L.id).filter(L=>{const De=ee.has(L);return ee.add(L),!De}))!=null?N:[])}});return()=>{$.dispose()}},[a,n]),!n)return null;const O=s&&s.endOffset===s.startOffset,S=n.getUnitId();return p.createElement(l.ThreadCommentPanel,{unitId:S,subUnitId$:i,type:o.UniverInstanceType.UNIVER_DOC,onAdd:()=>{a.executeCommand(A.id)},getSubUnitName:()=>"",disableAdd:O,tempComment:v,onAddComment:c=>{if(!c.parentId){const g={unitId:S,range:v,comment:c};return a.executeCommand(B.id,g),m.endAdd(),!1}return!0},onDeleteComment:c=>{if(!c.parentId){const g={unitId:S,commentId:c.id};return a.executeCommand(q.id,g),!1}return!0},showComments:u})};F.componentKey="univer.doc.thread-comment-panel";const me=e=>{const n=e.get(y.IRenderManagerService).getCurrent(),i=n==null?void 0:n.with(h.DocSkeletonManagerService).getSkeleton(),r=i==null?void 0:i.getViewModel().getEditArea();return r===y.DocumentEditArea.FOOTER||r===y.DocumentEditArea.HEADER};function ue(e){return{id:A.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,o.UniverInstanceType.UNIVER_DOC),disabled$:new R.Observable(function(t){const i=e.get(h.TextSelectionManagerService).textSelection$.pipe(R.debounceTime(16)).subscribe(()=>{t.next(me(e))});return()=>{i.unsubscribe()}})}}var le=Object.defineProperty,ve=Object.getOwnPropertyDescriptor,fe=(e,t,n,i)=>{for(var r=i>1?void 0:i?ve(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(r=(i?a(t,n,r):a(r))||r);return i&&r&&le(t,n,r),r},E=(e,t)=>(n,i)=>t(n,i,e);let P=class extends o.Disposable{constructor(e,t,n,i,r){super(),this._config=e,this._commandService=t,this._menuService=n,this._injector=i,this._componentManager=r,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[B,q,U,A].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){[ue].forEach(e=>{this.disposeWithMe(this._menuService.addMenuItem(e(this._injector),this._config.menu))})}_initComponents(){[F].forEach(e=>{this.disposeWithMe(this._componentManager.register(e.componentKey,e))}),this.disposeWithMe(this._componentManager.register("CommentSingle",K))}};P=fe([o.OnLifecycle(o.LifecycleStages.Rendered,P),E(1,o.ICommandService),E(2,_.IMenuService),E(3,o.Inject(o.Injector)),E(4,o.Inject(_.ComponentManager))],P);var Ce=Object.defineProperty,he=Object.getOwnPropertyDescriptor,Ie=(e,t,n,i)=>{for(var r=i>1?void 0:i?he(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(r=(i?a(t,n,r):a(r))||r);return i&&r&&Ce(t,n,r),r},T=(e,t)=>(n,i)=>t(n,i,e);let w=class extends o.Disposable{constructor(e,t,n,i,r,s){super(),this._threadCommentPanelService=e,this._univerInstanceService=t,this._commandService=n,this._docThreadCommentService=i,this._renderManagerService=r,this._threadCommentModel=s,this._initSelectionChange(),this._initActiveCommandChange()}_initSelectionChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var t,n,i,r;if(e.id===h.SetTextSelectionsOperation.id){const s=e.params,{unitId:a,ranges:m}=s,v=this._univerInstanceService.getUnit(a,o.UniverInstanceType.UNIVER_DOC),u=m[0];if(u&&v){const{startOffset:I,endOffset:O,collapsed:S}=u;let f;if(S?f=(n=(t=v.getBody())==null?void 0:t.customDecorations)==null?void 0:n.find(c=>c.startIndex<=I&&c.endIndex>=O-1):f=(r=(i=v.getBody())==null?void 0:i.customDecorations)==null?void 0:r.find(c=>c.startIndex<=I&&c.endIndex>=O-1),f){const c=this._threadCommentModel.getComment(a,M,f.id);c&&!c.resolved&&this._commandService.executeCommand(U.id,{activeComment:{unitId:a,subUnitId:M,commentId:f.id}});return}}this._commandService.executeCommand(l.SetActiveCommentOperation.id)}}))}_initActiveCommandChange(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var t,n,i;if(e){const r=this._univerInstanceService.getUnit(e.unitId);if(r){const s=(t=this._renderManagerService.getRenderById(e.unitId))==null?void 0:t.with(Z.DocBackScrollRenderController),a=(n=r.getCustomRanges())==null?void 0:n.find(m=>m.rangeId===e.commentId);a&&s&&s.scrollToRange(e.unitId,{startOffset:a.startIndex,endOffset:a.endIndex,collapsed:!1})}}(!e||e.commentId!==((i=this._docThreadCommentService.addingComment)==null?void 0:i.id))&&this._docThreadCommentService.endAdd()}))}};w=Ie([o.OnLifecycle(o.LifecycleStages.Rendered,w),T(0,o.Inject(l.ThreadCommentPanelService)),T(1,o.IUniverInstanceService),T(2,o.ICommandService),T(3,o.Inject(D)),T(4,y.IRenderManagerService),T(5,o.Inject(x.ThreadCommentModel))],w);var _e=Object.defineProperty,pe=Object.getOwnPropertyDescriptor,Se=(e,t,n,i)=>{for(var r=i>1?void 0:i?pe(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(r=(i?a(t,n,r):a(r))||r);return i&&r&&_e(t,n,r),r},j=(e,t)=>(n,i)=>t(n,i,e);let V=class extends o.Disposable{constructor(e,t,n,i,r,s){super(),this._context=e,this._docInterceptorService=t,this._threadCommentPanelService=n,this._docRenderController=i,this._univerInstanceService=r,this._threadCommentModel=s,this._interceptorViewModel(),this._initReRender()}_initReRender(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(e=>{var n;if(e){this._docRenderController.reRender(e.unitId);return}const t=(n=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_DOC))==null?void 0:n.getUnitId();t&&this._docRenderController.reRender(t)})),this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe(e=>{e.type==="resolve"&&this._docRenderController.reRender(e.unitId)}))}_interceptorViewModel(){this._docInterceptorService.intercept(h.DOC_INTERCEPTOR_POINT.CUSTOM_DECORATION,{handler:(e,t,n)=>{if(!e)return n(e);const{unitId:i,index:r,customDecorations:s}=t,a=this._threadCommentPanelService.activeCommentId,{commentId:m,unitId:v}=a||{},u=s.find(f=>f.id===m),I=this._threadCommentModel.getComment(i,M,e.id);if(!I)return n({...e,show:!1});const O=u&&r>=u.startIndex&&r<=u.endIndex,S=v===i&&e.id===m;return n({...e,active:S||O,show:!I.resolved})}})}};V=Se([o.OnLifecycle(o.LifecycleStages.Starting,V),j(1,o.Inject(h.DocInterceptorService)),j(2,o.Inject(l.ThreadCommentPanelService)),j(3,o.Inject(Z.DocRenderController)),j(4,o.IUniverInstanceService),j(5,o.Inject(x.ThreadCommentModel))],V);var Y=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,Oe=(e,t,n)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Me=(e,t,n,i)=>{for(var r=i>1?void 0:i?ge(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(r=(i?a(t,n,r):a(r))||r);return i&&r&&Y(t,n,r),r},J=(e,t)=>(n,i)=>t(n,i,e),Q=(e,t,n)=>Oe(e,typeof t!="symbol"?t+"":t,n);d.UniverDocsThreadCommentUIPlugin=class extends o.Plugin{constructor(t={menu:{}},n,i){super(),this._config=t,this._injector=n,this._renderManagerSrv=i}onStarting(t){[[P,{useFactory:()=>this._injector.createInstance(P,this._config)}],[w],[D]].forEach(n=>{t.add(n)})}onRendered(){this._initRenderModule()}_initRenderModule(){[V].forEach(t=>{this._renderManagerSrv.registerRenderModule(o.UniverInstanceType.UNIVER_DOC,t)})}},Q(d.UniverDocsThreadCommentUIPlugin,"pluginName",te),Q(d.UniverDocsThreadCommentUIPlugin,"type",o.UniverInstanceType.UNIVER_DOC),d.UniverDocsThreadCommentUIPlugin=Me([o.DependentOn(l.UniverThreadCommentUIPlugin),J(1,o.Inject(o.Injector)),J(2,y.IRenderManagerService)],d.UniverDocsThreadCommentUIPlugin),d.AddDocCommentComment=B,d.DeleteDocCommentComment=q,d.ShowCommentPanelOperation=U,d.StartAddCommentOperation=A,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.2",
3
+ "version": "0.2.4-alpha.0",
4
4
  "private": false,
5
5
  "description": "Univer thread comment plugin",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -44,35 +44,33 @@
44
44
  "lib"
45
45
  ],
46
46
  "peerDependencies": {
47
- "@wendellhu/redi": "0.15.5",
48
47
  "react": "^16.9.0 || ^17.0.0 || ^18.0.0",
49
48
  "rxjs": ">=7.0.0",
50
- "@univerjs/core": "0.2.2",
51
- "@univerjs/docs-ui": "0.2.2",
52
- "@univerjs/engine-render": "0.2.2",
53
- "@univerjs/thread-comment": "0.2.2",
54
- "@univerjs/ui": "0.2.2",
55
- "@univerjs/thread-comment-ui": "0.2.2",
56
- "@univerjs/docs": "0.2.2"
49
+ "@univerjs/core": "0.2.4-alpha.0",
50
+ "@univerjs/docs-ui": "0.2.4-alpha.0",
51
+ "@univerjs/docs": "0.2.4-alpha.0",
52
+ "@univerjs/engine-render": "0.2.4-alpha.0",
53
+ "@univerjs/thread-comment": "0.2.4-alpha.0",
54
+ "@univerjs/thread-comment-ui": "0.2.4-alpha.0",
55
+ "@univerjs/ui": "0.2.4-alpha.0"
57
56
  },
58
57
  "dependencies": {
59
- "@univerjs/icons": "^0.1.58"
58
+ "@univerjs/icons": "^0.1.64"
60
59
  },
61
60
  "devDependencies": {
62
- "@wendellhu/redi": "0.15.5",
63
61
  "clsx": "^2.1.1",
64
62
  "react": "18.3.1",
65
63
  "rxjs": "^7.8.1",
66
64
  "typescript": "^5.5.3",
67
- "vite": "^5.3.3",
68
- "vitest": "^1.6.0",
69
- "@univerjs/core": "0.2.2",
70
- "@univerjs/design": "0.2.2",
71
- "@univerjs/shared": "0.2.2",
72
- "@univerjs/engine-formula": "0.2.2",
73
- "@univerjs/thread-comment-ui": "0.2.2",
74
- "@univerjs/thread-comment": "0.2.2",
75
- "@univerjs/ui": "0.2.2"
65
+ "vite": "^5.3.4",
66
+ "vitest": "^2.0.3",
67
+ "@univerjs/engine-formula": "0.2.4-alpha.0",
68
+ "@univerjs/core": "0.2.4-alpha.0",
69
+ "@univerjs/design": "0.2.4-alpha.0",
70
+ "@univerjs/shared": "0.2.4-alpha.0",
71
+ "@univerjs/thread-comment-ui": "0.2.4-alpha.0",
72
+ "@univerjs/thread-comment": "0.2.4-alpha.0",
73
+ "@univerjs/ui": "0.2.4-alpha.0"
76
74
  },
77
75
  "univerSpace": {
78
76
  ".": {