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