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