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