@univerjs/preset-sheets-thread-comment 0.16.0 → 0.17.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/umd/index.js +7 -7
- package/package.json +7 -7
package/lib/umd/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// @univerjs/thread-comment/index
|
|
2
|
-
(function(d,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs"],s):(d=typeof globalThis<"u"?globalThis:d||self,s(d.UniverThreadComment={},d.UniverCore,d.rxjs))})(this,(function(d,s,M){"use strict";var B=Object.defineProperty;var q=(d,s,M)=>s in d?B(d,s,{enumerable:!0,configurable:!0,writable:!0,value:M}):d[s]=M;var u=(d,s,M)=>q(d,typeof s!="symbol"?s+"":s,M);var T;class I extends s.Disposable{constructor(){super();u(this,"_dataSource",null);u(this,"syncUpdateMutationToColla",!0)}set dataSource(e){this._dataSource=e}get dataSource(){return this._dataSource}async getThreadComment(e,t,n){return this._dataSource?(await this._dataSource.listComments(e,t,[n]))[0]:null}async addComment(e){var t;return this._dataSource?this._dataSource.addComment(e):{...e,threadId:(t=e.threadId)!=null?t:e.id}}async updateComment(e){return this._dataSource?this._dataSource.updateComment(e):!0}async resolveComment(e){return this._dataSource?this._dataSource.resolveComment(e):!0}async deleteComment(e,t,n,o){return this._dataSource?this._dataSource.deleteComment(e,t,n,o):!0}async listThreadComments(e,t,n){return this.dataSource?this.dataSource.listComments(e,t,n):!1}saveToSnapshot(e,t){if(this._dataSource){const n={};return Object.keys(e).forEach(o=>{const a=e[o];n[o]=a.map(this.dataSource.saveCommentToSnapshot)}),n}return e}}const C=s.createIdentifier("univer.thread-comment.data-source-service");var H=Object.getOwnPropertyDescriptor,W=(c,m,e,t)=>{for(var n=t>1?void 0:t?H(m,e):m,o=c.length-1,a;o>=0;o--)(a=c[o])&&(n=a(n)||n);return n},N=(c,m)=>(e,t)=>m(e,t,c);d.ThreadCommentModel=class extends s.Disposable{constructor(e,t){super();u(this,"_commentsMap",new Map);u(this,"_threadMap",new Map);u(this,"_commentUpdate$",new M.Subject);u(this,"commentUpdate$",this._commentUpdate$.asObservable());u(this,"_tasks",[]);this._dataSourceService=e,this._lifecycleService=t,this.disposeWithMe(()=>{this._commentUpdate$.complete()}),this.disposeWithMe(this._lifecycleService.lifecycle$.subscribe(n=>{const o=new Map;n===s.LifecycleStages.Rendered&&(this._tasks.forEach(({unitId:a,subUnitId:r,threadIds:i})=>{let h=o.get(a);h||(h=new Map,o.set(a,h));let l=h.get(r);l||(l=new Set,h.set(r,l));for(const p of i)l.add(p)}),this._tasks=[],o.forEach((a,r)=>{a.forEach((i,h)=>{this.syncThreadComments(r,h,Array.from(i))})}))}))}_ensureCommentMap(e,t){let n=this._commentsMap.get(e);n||(n=new Map,this._commentsMap.set(e,n));let o=n.get(t);return o||(o=new Map,n.set(t,o)),o}ensureMap(e,t){return this._ensureCommentMap(e,t)}_ensureThreadMap(e,t){let n=this._threadMap.get(e);n||(n=new Map,this._threadMap.set(e,n));let o=n.get(t);return o||(o=new Map,n.set(t,o)),o}_replaceComment(e,t,n){const o=this._ensureCommentMap(e,t),a=o.get(n.id);if(a){const{children:r,...i}=n,h={...i,ref:a.ref};o.set(n.id,h),r==null||r.forEach(l=>{o.set(l.id,{...l,ref:""})}),this._commentUpdate$.next({unitId:e,subUnitId:t,type:"syncUpdate",payload:h}),!!n.resolved!=!!a.resolved&&this._commentUpdate$.next({unitId:e,subUnitId:t,type:"resolve",payload:{commentId:n.id,resolved:!!n.resolved}})}}async syncThreadComments(e,t,n){if(this._lifecycleService.stage<s.LifecycleStages.Rendered){this._tasks.push({unitId:e,subUnitId:t,threadIds:n});return}const o=this._ensureThreadMap(e,t),a=this._ensureCommentMap(e,t),r=await this._dataSourceService.listThreadComments(e,t,n);if(!r)return;const i=new Set(n);r.forEach(h=>{this._replaceComment(e,t,h),i.delete(h.threadId)}),i.forEach(h=>{o.delete(h),a.forEach((l,p)=>{l.threadId===h&&a.delete(p)})})}addComment(e,t,n,o){const a=this._ensureCommentMap(e,t),{parentId:r,children:i=[],...h}=n,l={...h,parentId:r===n.id?void 0:r};l.threadId||(l.threadId=l.parentId||l.id);const p=f=>{a.set(f.id,f),this._commentUpdate$.next({unitId:e,subUnitId:t,type:"add",payload:f,isRoot:!f.parentId})};p(l);const L=this._ensureThreadMap(e,t);if(!l.parentId){L.set(l.threadId,l);for(const f of i)p(f)}return o&&this.syncThreadComments(e,t,[l.threadId]),!0}updateComment(e,t,n,o){const r=this._ensureCommentMap(e,t).get(n.commentId);return r&&(r.updated=!0,r.text=n.text,r.attachments=n.attachments,r.updateT=n.updateT,this._commentUpdate$.next({unitId:e,subUnitId:t,type:"update",payload:n,silent:o})),!0}updateCommentRef(e,t,n,o){const r=this._ensureCommentMap(e,t).get(n.commentId);return r?(r.ref=n.ref,this._commentUpdate$.next({unitId:e,subUnitId:t,type:"updateRef",payload:n,silent:o,threadId:r.threadId}),!0):!1}resolveComment(e,t,n,o){const r=this._ensureCommentMap(e,t).get(n);return r?(r.resolved=o,this._commentUpdate$.next({unitId:e,subUnitId:t,type:"resolve",payload:{commentId:n,resolved:o}}),!0):!1}getComment(e,t,n){return this._ensureCommentMap(e,t).get(n)}getRootComment(e,t,n){return this._ensureThreadMap(e,t).get(n)}getThread(e,t,n){const o=this._ensureCommentMap(e,t),a=Array.from(o.values()).filter(l=>l.threadId===n);let r;const i=[],h=new Set;for(const l of a)l.parentId?i.push(l):r=l,h.add(l.personId);if(r)return{root:r,children:i,relativeUsers:h,unitId:e,subUnitId:t,threadId:n}}getCommentWithChildren(e,t,n){const o=this.getComment(e,t,n);if(o)return this.getThread(e,t,o.threadId)}_deleteComment(e,t,n){const o=this._ensureCommentMap(e,t),a=o.get(n);a&&(o.delete(n),this._commentUpdate$.next({unitId:e,subUnitId:t,type:"delete",payload:{commentId:n,isRoot:!a.parentId,comment:a}}))}deleteThread(e,t,n){this._ensureThreadMap(e,t).delete(n),this._ensureCommentMap(e,t).forEach(r=>{r.threadId===n&&this._deleteComment(e,t,r.id)})}deleteComment(e,t,n){const a=this._ensureCommentMap(e,t).get(n);return a&&(a.parentId?this._deleteComment(e,t,n):this.deleteThread(e,t,a.threadId)),!0}deleteUnit(e){const t=this._commentsMap.get(e);t&&t.forEach((n,o)=>{n.forEach(a=>{this.deleteComment(e,o,a.id)})})}getUnit(e){const t=this._threadMap.get(e);if(!t)return[];const n=[];return t.forEach((o,a)=>{o.forEach((r,i)=>{const h=this.getThread(e,a,i);h&&n.push(h)})}),n}getAll(){const e=[];return this._commentsMap.forEach((t,n)=>{e.push({unitId:n,threads:this.getUnit(n)})}),e}},d.ThreadCommentModel=W([N(0,s.Inject(C)),N(1,s.Inject(s.LifecycleService))],d.ThreadCommentModel);const v={id:"thread-comment.mutation.add-comment",type:s.CommandType.MUTATION,handler(c,m,e){if(!m)return!1;const t=c.get(d.ThreadCommentModel),{unitId:n,subUnitId:o,comment:a,sync:r}=m,i=r||(e==null?void 0:e.fromChangeset)&&!a.parentId;return t.addComment(n,o,a,i)}},g={id:"thread-comment.mutation.update-comment",type:s.CommandType.MUTATION,handler(c,m){if(!m)return!1;const e=c.get(d.ThreadCommentModel),{unitId:t,subUnitId:n,payload:o,silent:a}=m;return e.updateComment(t,n,o,a)}},D={id:"thread-comment.mutation.update-comment-ref",type:s.CommandType.MUTATION,handler(c,m){if(!m)return!1;const e=c.get(d.ThreadCommentModel),{unitId:t,subUnitId:n,payload:o,silent:a}=m;return e.updateCommentRef(t,n,o,a)}},S={id:"thread-comment.mutation.resolve-comment",type:s.CommandType.MUTATION,handler(c,m){if(!m)return!1;const e=c.get(d.ThreadCommentModel),{unitId:t,subUnitId:n,resolved:o,commentId:a}=m;return e.resolveComment(t,n,a,o)}},_={id:"thread-comment.mutation.delete-comment",type:s.CommandType.MUTATION,handler(c,m){if(!m)return!1;const e=c.get(d.ThreadCommentModel),{unitId:t,subUnitId:n,commentId:o}=m;return e.deleteComment(t,n,o)}},O={id:"thread-comment.command.add-comment",type:s.CommandType.COMMAND,async handler(c,m){if(!m)return!1;const e=c.get(s.ICommandService),t=c.get(C),{comment:n}=m,o=await t.addComment(n),a=t.syncUpdateMutationToColla,r=!n.parentId,i={id:v.id,params:{...m,comment:o}};return r?await e.executeCommand(i.id,i.params):e.executeCommand(i.id,i.params,{onlyLocal:!a})}},R={id:"thread-comment.command.update-comment",type:s.CommandType.COMMAND,async handler(c,m){if(!m)return!1;const{unitId:e,subUnitId:t,payload:n}=m,o=c.get(s.ICommandService),a=c.get(d.ThreadCommentModel),r=c.get(C),i=r.syncUpdateMutationToColla,h=a.getComment(e,t,n.commentId);if(!h)return!1;const{children:l,...p}=h;if(!await r.updateComment({...p,...n}))return!1;const f={id:g.id,params:m};return o.executeCommand(f.id,f.params,{onlyLocal:!i}),!0}},w={id:"thread-comment.command.resolve-comment",type:s.CommandType.COMMAND,async handler(c,m){if(!m)return!1;const{unitId:e,subUnitId:t,resolved:n,commentId:o}=m,a=c.get(C),i=c.get(d.ThreadCommentModel).getComment(e,t,o),h=a.syncUpdateMutationToColla;return!i||!await a.resolveComment({...i,resolved:n})?!1:c.get(s.ICommandService).executeCommand(S.id,m,{onlyLocal:!h})}},A={id:"thread-comment.command.delete-comment",type:s.CommandType.COMMAND,async handler(c,m){if(!m)return!1;const e=c.get(d.ThreadCommentModel),t=c.get(C),n=c.get(s.ICommandService),{unitId:o,subUnitId:a,commentId:r}=m,i=t.syncUpdateMutationToColla,h=e.getComment(o,a,r);if(!h||!await t.deleteComment(o,a,h.threadId,r))return!1;const l={id:_.id,params:m};return n.executeCommand(l.id,l.params,{onlyLocal:!i})}},P={id:"thread-comment.command.delete-comment-tree",type:s.CommandType.COMMAND,async handler(c,m){if(!m)return!1;const e=c.get(d.ThreadCommentModel),t=c.get(s.ICommandService),n=c.get(C),{unitId:o,subUnitId:a,commentId:r}=m,i=e.getCommentWithChildren(o,a,r);return!i||!await n.deleteComment(o,a,i.root.threadId,r)?!1:await t.executeCommand(_.id,{unitId:o,subUnitId:a,commentId:i.root.id})}};function G(c){return s.dayjs(c).format("YYYY/MM/DD HH:mm")}const y="UNIVER_THREAD_COMMENT_PLUGIN";var J=Object.getOwnPropertyDescriptor,V=(c,m,e,t)=>{for(var n=t>1?void 0:t?J(m,e):m,o=c.length-1,a;o>=0;o--)(a=c[o])&&(n=a(n)||n);return n},U=(c,m)=>(e,t)=>m(e,t,c);const j=`SHEET_${y}`;d.ThreadCommentResourceController=class extends s.Disposable{constructor(m,e,t){super(),this._resourceManagerService=m,this._threadCommentModel=e,this._threadCommentDataSourceService=t,this._initSnapshot()}_initSnapshot(){const m=t=>{const n=this._threadCommentModel.getUnit(t),o={};return n?(n.forEach(a=>{var i;const r=(i=o[a.subUnitId])!=null?i:[];r.push({...a.root,children:a.children}),o[a.subUnitId]=r}),JSON.stringify(this._threadCommentDataSourceService.saveToSnapshot(o,t))):""},e=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:j,businesses:[s.UniverInstanceType.UNIVER_SHEET,s.UniverInstanceType.UNIVER_DOC],toJson:t=>m(t),parseJson:t=>e(t),onUnLoad:t=>{this._threadCommentModel.deleteUnit(t)},onLoad:async(t,n)=>{Object.keys(n).forEach(o=>{const a=n[o];a.forEach(r=>{this._threadCommentModel.addComment(t,o,r)}),this._threadCommentModel.syncThreadComments(t,o,a.map(r=>r.threadId))})}}))}},d.ThreadCommentResourceController=V([U(0,s.IResourceManagerService),U(1,s.Inject(d.ThreadCommentModel)),U(2,C)],d.ThreadCommentResourceController);const b="thread-comment.config",$={};var Y=Object.getOwnPropertyDescriptor,k=(c,m,e,t)=>{for(var n=t>1?void 0:t?Y(m,e):m,o=c.length-1,a;o>=0;o--)(a=c[o])&&(n=a(n)||n);return n},E=(c,m)=>(e,t)=>m(e,t,c);d.UniverThreadCommentPlugin=(T=class extends s.Plugin{constructor(m=$,e,t,n){super(),this._config=m,this._injector=e,this._commandService=t,this._configService=n;const{...o}=s.merge({},$,this._config);this._configService.setConfig(b,o)}onStarting(){var m;s.mergeOverrideWithDependencies([[C,{useClass:I}],[d.ThreadCommentModel],[d.ThreadCommentResourceController]],(m=this._config)==null?void 0:m.overrides).forEach(e=>{this._injector.add(e)}),[O,R,A,w,P,v,g,D,_,S].forEach(e=>{this._commandService.registerCommand(e)}),this._injector.get(d.ThreadCommentResourceController)}},u(T,"pluginName",y),u(T,"type",s.UniverInstanceType.UNIVER_UNKNOWN),T),d.UniverThreadCommentPlugin=k([E(1,s.Inject(s.Injector)),E(2,s.ICommandService),E(3,s.IConfigService)],d.UniverThreadCommentPlugin),d.AddCommentCommand=O,d.AddCommentMutation=v,d.DeleteCommentCommand=A,d.DeleteCommentMutation=_,d.DeleteCommentTreeCommand=P,d.IThreadCommentDataSourceService=C,d.ResolveCommentCommand=w,d.ResolveCommentMutation=S,d.SHEET_UNIVER_THREAD_COMMENT_PLUGIN=j,d.TC_PLUGIN_NAME=y,d.ThreadCommentDataSourceService=I,d.UpdateCommentCommand=R,d.UpdateCommentMutation=g,d.UpdateCommentRefMutation=D,d.getDT=G,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
|
|
2
|
+
(function(s,d){typeof exports=="object"&&typeof module<"u"?d(exports,require("@univerjs/core"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs"],d):(s=typeof globalThis<"u"?globalThis:s||self,d(s.UniverThreadComment={},s.UniverCore,s.rxjs))})(this,(function(s,d,M){"use strict";var q=Object.defineProperty;var K=(s,d,M)=>d in s?q(s,d,{enumerable:!0,configurable:!0,writable:!0,value:M}):s[d]=M;var u=(s,d,M)=>K(s,typeof d!="symbol"?d+"":d,M);var _;class I extends d.Disposable{constructor(){super();u(this,"_dataSource",null);u(this,"syncUpdateMutationToColla",!0)}set dataSource(e){this._dataSource=e}get dataSource(){return this._dataSource}async getThreadComment(e,t,n){return this._dataSource?(await this._dataSource.listComments(e,t,[n]))[0]:null}async addComment(e){var t;return this._dataSource?this._dataSource.addComment(e):{...e,threadId:(t=e.threadId)!=null?t:e.id}}async updateComment(e){return this._dataSource?this._dataSource.updateComment(e):!0}async resolveComment(e){return this._dataSource?this._dataSource.resolveComment(e):!0}async deleteComment(e,t,n,o){return this._dataSource?this._dataSource.deleteComment(e,t,n,o):!0}async listThreadComments(e,t,n){return this.dataSource?this.dataSource.listComments(e,t,n):!1}saveToSnapshot(e,t){if(this._dataSource){const n={};return Object.keys(e).forEach(o=>{const a=e[o];n[o]=a.map(this.dataSource.saveCommentToSnapshot)}),n}return e}}const C=d.createIdentifier("univer.thread-comment.data-source-service");var W=Object.getOwnPropertyDescriptor,G=(c,m,e,t)=>{for(var n=t>1?void 0:t?W(m,e):m,o=c.length-1,a;o>=0;o--)(a=c[o])&&(n=a(n)||n);return n},N=(c,m)=>(e,t)=>m(e,t,c);s.ThreadCommentModel=class extends d.Disposable{constructor(e,t){super();u(this,"_commentsMap",new Map);u(this,"_threadMap",new Map);u(this,"_commentUpdate$",new M.Subject);u(this,"commentUpdate$",this._commentUpdate$.asObservable());u(this,"_tasks",[]);this._dataSourceService=e,this._lifecycleService=t,this.disposeWithMe(()=>{this._commentUpdate$.complete()}),this.disposeWithMe(this._lifecycleService.lifecycle$.subscribe(n=>{const o=new Map;n===d.LifecycleStages.Rendered&&(this._tasks.forEach(({unitId:a,subUnitId:r,threadIds:i})=>{let h=o.get(a);h||(h=new Map,o.set(a,h));let l=h.get(r);l||(l=new Set,h.set(r,l));for(const p of i)l.add(p)}),this._tasks=[],o.forEach((a,r)=>{a.forEach((i,h)=>{this.syncThreadComments(r,h,Array.from(i))})}))}))}_ensureCommentMap(e,t){let n=this._commentsMap.get(e);n||(n=new Map,this._commentsMap.set(e,n));let o=n.get(t);return o||(o=new Map,n.set(t,o)),o}ensureMap(e,t){return this._ensureCommentMap(e,t)}_ensureThreadMap(e,t){let n=this._threadMap.get(e);n||(n=new Map,this._threadMap.set(e,n));let o=n.get(t);return o||(o=new Map,n.set(t,o)),o}_replaceComment(e,t,n){const o=this._ensureCommentMap(e,t),a=o.get(n.id);if(a){const{children:r,...i}=n,h={...i,ref:a.ref};o.set(n.id,h),r==null||r.forEach(l=>{o.set(l.id,{...l,ref:""})}),this._commentUpdate$.next({unitId:e,subUnitId:t,type:"syncUpdate",payload:h}),!!n.resolved!=!!a.resolved&&this._commentUpdate$.next({unitId:e,subUnitId:t,type:"resolve",payload:{commentId:n.id,resolved:!!n.resolved}})}}async syncThreadComments(e,t,n){if(this._lifecycleService.stage<d.LifecycleStages.Rendered){this._tasks.push({unitId:e,subUnitId:t,threadIds:n});return}const o=this._ensureThreadMap(e,t),a=this._ensureCommentMap(e,t),r=await this._dataSourceService.listThreadComments(e,t,n);if(!r)return;const i=new Set(n);r.forEach(h=>{this._replaceComment(e,t,h),i.delete(h.threadId)}),i.forEach(h=>{o.delete(h),a.forEach((l,p)=>{l.threadId===h&&a.delete(p)})})}addComment(e,t,n,o){const a=this._ensureCommentMap(e,t),{parentId:r,children:i=[],...h}=n,l={...h,parentId:r===n.id?void 0:r};l.threadId||(l.threadId=l.parentId||l.id);const p=f=>{a.set(f.id,f),this._commentUpdate$.next({unitId:e,subUnitId:t,type:"add",payload:f,isRoot:!f.parentId})};p(l);const H=this._ensureThreadMap(e,t);if(!l.parentId){H.set(l.threadId,l);for(const f of i)p(f)}return o&&this.syncThreadComments(e,t,[l.threadId]),!0}updateComment(e,t,n,o){const r=this._ensureCommentMap(e,t).get(n.commentId);return r&&(r.updated=!0,r.text=n.text,r.attachments=n.attachments,r.updateT=n.updateT,this._commentUpdate$.next({unitId:e,subUnitId:t,type:"update",payload:n,silent:o})),!0}updateCommentRef(e,t,n,o){const r=this._ensureCommentMap(e,t).get(n.commentId);return r?(r.ref=n.ref,this._commentUpdate$.next({unitId:e,subUnitId:t,type:"updateRef",payload:n,silent:o,threadId:r.threadId}),!0):!1}resolveComment(e,t,n,o){const r=this._ensureCommentMap(e,t).get(n);return r?(r.resolved=o,this._commentUpdate$.next({unitId:e,subUnitId:t,type:"resolve",payload:{commentId:n,resolved:o}}),!0):!1}getComment(e,t,n){return this._ensureCommentMap(e,t).get(n)}getRootComment(e,t,n){return this._ensureThreadMap(e,t).get(n)}getThread(e,t,n){const o=this._ensureCommentMap(e,t),a=Array.from(o.values()).filter(l=>l.threadId===n);let r;const i=[],h=new Set;for(const l of a)l.parentId?i.push(l):r=l,h.add(l.personId);if(r)return{root:r,children:i,relativeUsers:h,unitId:e,subUnitId:t,threadId:n}}getCommentWithChildren(e,t,n){const o=this.getComment(e,t,n);if(o)return this.getThread(e,t,o.threadId)}_deleteComment(e,t,n){const o=this._ensureCommentMap(e,t),a=o.get(n);a&&(o.delete(n),this._commentUpdate$.next({unitId:e,subUnitId:t,type:"delete",payload:{commentId:n,isRoot:!a.parentId,comment:a}}))}deleteThread(e,t,n){this._ensureThreadMap(e,t).delete(n),this._ensureCommentMap(e,t).forEach(r=>{r.threadId===n&&this._deleteComment(e,t,r.id)})}deleteComment(e,t,n){const a=this._ensureCommentMap(e,t).get(n);return a&&(a.parentId?this._deleteComment(e,t,n):this.deleteThread(e,t,a.threadId)),!0}deleteUnit(e){const t=this._commentsMap.get(e);t&&t.forEach((n,o)=>{n.forEach(a=>{this.deleteComment(e,o,a.id)})})}getUnit(e){const t=this._threadMap.get(e);if(!t)return[];const n=[];return t.forEach((o,a)=>{o.forEach((r,i)=>{const h=this.getThread(e,a,i);h&&n.push(h)})}),n}getAll(){const e=[];return this._commentsMap.forEach((t,n)=>{e.push({unitId:n,threads:this.getUnit(n)})}),e}},s.ThreadCommentModel=G([N(0,d.Inject(C)),N(1,d.Inject(d.LifecycleService))],s.ThreadCommentModel);const v={id:"thread-comment.mutation.add-comment",type:d.CommandType.MUTATION,handler(c,m,e){if(!m)return!1;const t=c.get(s.ThreadCommentModel),{unitId:n,subUnitId:o,comment:a,sync:r}=m,i=r||(e==null?void 0:e.fromChangeset)&&!a.parentId;return t.addComment(n,o,a,i)}},g={id:"thread-comment.mutation.update-comment",type:d.CommandType.MUTATION,handler(c,m){if(!m)return!1;const e=c.get(s.ThreadCommentModel),{unitId:t,subUnitId:n,payload:o,silent:a}=m;return e.updateComment(t,n,o,a)}},D={id:"thread-comment.mutation.update-comment-ref",type:d.CommandType.MUTATION,handler(c,m){if(!m)return!1;const e=c.get(s.ThreadCommentModel),{unitId:t,subUnitId:n,payload:o,silent:a}=m;return e.updateCommentRef(t,n,o,a)}},S={id:"thread-comment.mutation.resolve-comment",type:d.CommandType.MUTATION,handler(c,m){if(!m)return!1;const e=c.get(s.ThreadCommentModel),{unitId:t,subUnitId:n,resolved:o,commentId:a}=m;return e.resolveComment(t,n,a,o)}},T={id:"thread-comment.mutation.delete-comment",type:d.CommandType.MUTATION,handler(c,m){if(!m)return!1;const e=c.get(s.ThreadCommentModel),{unitId:t,subUnitId:n,commentId:o}=m;return e.deleteComment(t,n,o)}},O={id:"thread-comment.command.add-comment",type:d.CommandType.COMMAND,async handler(c,m){if(!m)return!1;const e=c.get(d.ICommandService),t=c.get(C),{comment:n}=m,o=await t.addComment(n),a=t.syncUpdateMutationToColla,r=!n.parentId,i={id:v.id,params:{...m,comment:o}};return r?await e.executeCommand(i.id,i.params):e.executeCommand(i.id,i.params,{onlyLocal:!a})}},R={id:"thread-comment.command.update-comment",type:d.CommandType.COMMAND,async handler(c,m){if(!m)return!1;const{unitId:e,subUnitId:t,payload:n}=m,o=c.get(d.ICommandService),a=c.get(s.ThreadCommentModel),r=c.get(C),i=r.syncUpdateMutationToColla,h=a.getComment(e,t,n.commentId);if(!h)return!1;const{children:l,...p}=h;if(!await r.updateComment({...p,...n}))return!1;const f={id:g.id,params:m};return o.executeCommand(f.id,f.params,{onlyLocal:!i}),!0}},w={id:"thread-comment.command.resolve-comment",type:d.CommandType.COMMAND,async handler(c,m){if(!m)return!1;const{unitId:e,subUnitId:t,resolved:n,commentId:o}=m,a=c.get(C),i=c.get(s.ThreadCommentModel).getComment(e,t,o),h=a.syncUpdateMutationToColla;return!i||!await a.resolveComment({...i,resolved:n})?!1:c.get(d.ICommandService).executeCommand(S.id,m,{onlyLocal:!h})}},A={id:"thread-comment.command.delete-comment",type:d.CommandType.COMMAND,async handler(c,m){if(!m)return!1;const e=c.get(s.ThreadCommentModel),t=c.get(C),n=c.get(d.ICommandService),{unitId:o,subUnitId:a,commentId:r}=m,i=t.syncUpdateMutationToColla,h=e.getComment(o,a,r);if(!h||!await t.deleteComment(o,a,h.threadId,r))return!1;const l={id:T.id,params:m};return n.executeCommand(l.id,l.params,{onlyLocal:!i})}},P={id:"thread-comment.command.delete-comment-tree",type:d.CommandType.COMMAND,async handler(c,m){if(!m)return!1;const e=c.get(s.ThreadCommentModel),t=c.get(d.ICommandService),n=c.get(C),{unitId:o,subUnitId:a,commentId:r}=m,i=e.getCommentWithChildren(o,a,r);return!i||!await n.deleteComment(o,a,i.root.threadId,r)?!1:await t.executeCommand(T.id,{unitId:o,subUnitId:a,commentId:i.root.id})}};function k(c){return d.dayjs(c).format("YYYY/MM/DD HH:mm")}const y="UNIVER_THREAD_COMMENT_PLUGIN";var J=Object.getOwnPropertyDescriptor,V=(c,m,e,t)=>{for(var n=t>1?void 0:t?J(m,e):m,o=c.length-1,a;o>=0;o--)(a=c[o])&&(n=a(n)||n);return n},U=(c,m)=>(e,t)=>m(e,t,c);const j=`SHEET_${y}`;s.ThreadCommentResourceController=class extends d.Disposable{constructor(m,e,t){super(),this._resourceManagerService=m,this._threadCommentModel=e,this._threadCommentDataSourceService=t,this._initSnapshot()}_initSnapshot(){const m=t=>{const n=this._threadCommentModel.getUnit(t),o={};return n?(n.forEach(a=>{var i;const r=(i=o[a.subUnitId])!=null?i:[];r.push({...a.root,children:a.children}),o[a.subUnitId]=r}),JSON.stringify(this._threadCommentDataSourceService.saveToSnapshot(o,t))):""},e=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:j,businesses:[d.UniverInstanceType.UNIVER_SHEET,d.UniverInstanceType.UNIVER_DOC],toJson:t=>m(t),parseJson:t=>e(t),onUnLoad:t=>{this._threadCommentModel.deleteUnit(t)},onLoad:async(t,n)=>{Object.keys(n).forEach(o=>{const a=n[o];a.forEach(r=>{this._threadCommentModel.addComment(t,o,r)}),this._threadCommentModel.syncThreadComments(t,o,a.map(r=>r.threadId))})}}))}},s.ThreadCommentResourceController=V([U(0,d.IResourceManagerService),U(1,d.Inject(s.ThreadCommentModel)),U(2,C)],s.ThreadCommentResourceController);const $={name:"@univerjs/thread-comment",version:"0.17.0"},b="thread-comment.config",L={};var Y=Object.getOwnPropertyDescriptor,B=(c,m,e,t)=>{for(var n=t>1?void 0:t?Y(m,e):m,o=c.length-1,a;o>=0;o--)(a=c[o])&&(n=a(n)||n);return n},E=(c,m)=>(e,t)=>m(e,t,c);s.UniverThreadCommentPlugin=(_=class extends d.Plugin{constructor(m=L,e,t,n){super(),this._config=m,this._injector=e,this._commandService=t,this._configService=n;const{...o}=d.merge({},L,this._config);this._configService.setConfig(b,o)}onStarting(){var m;d.mergeOverrideWithDependencies([[C,{useClass:I}],[s.ThreadCommentModel],[s.ThreadCommentResourceController]],(m=this._config)==null?void 0:m.overrides).forEach(e=>{this._injector.add(e)}),[O,R,A,w,P,v,g,D,T,S].forEach(e=>{this._commandService.registerCommand(e)}),this._injector.get(s.ThreadCommentResourceController)}},u(_,"pluginName",y),u(_,"packageName",$.name),u(_,"version",$.version),u(_,"type",d.UniverInstanceType.UNIVER_UNKNOWN),_),s.UniverThreadCommentPlugin=B([E(1,d.Inject(d.Injector)),E(2,d.ICommandService),E(3,d.IConfigService)],s.UniverThreadCommentPlugin),s.AddCommentCommand=O,s.AddCommentMutation=v,s.DeleteCommentCommand=A,s.DeleteCommentMutation=T,s.DeleteCommentTreeCommand=P,s.IThreadCommentDataSourceService=C,s.ResolveCommentCommand=w,s.ResolveCommentMutation=S,s.SHEET_UNIVER_THREAD_COMMENT_PLUGIN=j,s.TC_PLUGIN_NAME=y,s.ThreadCommentDataSourceService=I,s.UpdateCommentCommand=R,s.UpdateCommentMutation=g,s.UpdateCommentRefMutation=D,s.getDT=k,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})}));
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
// @univerjs/sheets-thread-comment/index
|
|
6
|
-
(function(m,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@univerjs/core"),require("@univerjs/engine-formula"),require("@univerjs/sheets"),require("@univerjs/thread-comment"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-formula","@univerjs/sheets","@univerjs/thread-comment","rxjs"],i):(m=typeof globalThis<"u"?globalThis:m||self,i(m.UniverSheetsThreadComment={},m.UniverCore,m.UniverEngineFormula,m.UniverSheets,m.UniverThreadComment,m.rxjs))})(this,(function(m,i,p,C,_,y){"use strict";var L=Object.defineProperty;var N=(m,i,p)=>i in m?L(m,i,{enumerable:!0,configurable:!0,writable:!0,value:p}):m[i]=p;var f=(m,i,p)=>N(m,typeof i!="symbol"?i+"":i,p);var w=Object.getOwnPropertyDescriptor,U=(c,o,e,n)=>{for(var t=n>1?void 0:n?w(o,e):o,r=c.length-1,s;r>=0;r--)(s=c[r])&&(t=s(t)||t);return t},S=(c,o)=>(e,n)=>o(e,n,c);m.SheetsThreadCommentModel=class extends i.Disposable{constructor(e,n){super();f(this,"_matrixMap",new Map);f(this,"_locationMap",new Map);f(this,"_commentUpdate$",new y.Subject);f(this,"commentUpdate$",this._commentUpdate$.asObservable());this._threadCommentModel=e,this._univerInstanceService=n,this._init(),this.disposeWithMe(()=>{this._commentUpdate$.complete()})}_init(){this._initData(),this._initUpdateTransform()}_ensureCommentMatrix(e,n){let t=this._matrixMap.get(e);t||(t=new Map,this._matrixMap.set(e,t));let r=t.get(n);return r||(r=new i.ObjectMatrix,t.set(n,r)),r}_ensureCommentLocationMap(e,n){let t=this._locationMap.get(e);t||(t=new Map,this._locationMap.set(e,t));let r=t.get(n);return r||(r=new Map,t.set(n,r)),r}_addCommentToMatrix(e,n,t,r){var a;const s=(a=e.getValue(n,t))!=null?a:new Set;s.add(r),e.setValue(n,t,s)}_deleteCommentFromMatrix(e,n,t,r){if(n>=0&&t>=0){const s=e.getValue(n,t);s&&s.has(r)&&(s.delete(r),s.size===0&&e.realDeleteValue(n,t))}}_ensure(e,n){const t=this._ensureCommentMatrix(e,n),r=this._ensureCommentLocationMap(e,n);return{matrix:t,locationMap:r}}_initData(){const e=this._threadCommentModel.getAll();for(const n of e)for(const t of n.threads){const{unitId:r,subUnitId:s,root:a}=t;this._addComment(r,s,a)}}_addComment(e,n,t){const r=p.singleReferenceToGrid(t.ref),s=t.parentId,{row:a,column:d}=r,h=t.id,{matrix:u,locationMap:l}=this._ensure(e,n);!s&&a>=0&&d>=0&&(this._addCommentToMatrix(u,a,d,h),l.set(h,{row:a,column:d})),s||this._commentUpdate$.next({unitId:e,subUnitId:n,payload:t,type:"add",isRoot:!s,...r})}_initUpdateTransform(){this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe(e=>{const{unitId:n,subUnitId:t}=e;try{if(this._univerInstanceService.getUnitType(n)!==i.UniverInstanceType.UNIVER_SHEET)return}catch{}const{matrix:r,locationMap:s}=this._ensure(n,t);switch(e.type){case"add":{this._addComment(e.unitId,e.subUnitId,e.payload);break}case"delete":{const{isRoot:a,comment:d}=e.payload;if(a){const h=p.singleReferenceToGrid(d.ref),{row:u,column:l}=h;this._deleteCommentFromMatrix(r,u,l,d.id),this._commentUpdate$.next({...e,...h})}break}case"update":{const{commentId:a}=e.payload,d=this._threadCommentModel.getComment(n,t,a);if(!d)return;const h=p.singleReferenceToGrid(d.ref);this._commentUpdate$.next({...e,...h});break}case"updateRef":{const a=p.singleReferenceToGrid(e.payload.ref),{commentId:d}=e.payload,h=s.get(d);if(!h)return;const{row:u,column:l}=h;this._deleteCommentFromMatrix(r,u,l,d),s.delete(d),a.row>=0&&a.column>=0&&(this._addCommentToMatrix(r,a.row,a.column,d),s.set(d,{row:a.row,column:a.column})),this._commentUpdate$.next({...e,...a});break}case"resolve":{const{unitId:a,subUnitId:d,payload:h}=e,{locationMap:u}=this._ensure(a,d),l=u.get(h.commentId);l&&this._commentUpdate$.next({...e,...l});break}}}))}getByLocation(e,n,t,r){var d;return(d=this.getAllByLocation(e,n,t,r).filter(h=>!h.resolved)[0])==null?void 0:d.id}getAllByLocation(e,n,t,r){const a=this._ensureCommentMatrix(e,n).getValue(t,r);return a?Array.from(a).map(d=>this.getComment(e,n,d)).filter(Boolean):[]}getComment(e,n,t){return this._threadCommentModel.getComment(e,n,t)}getCommentWithChildren(e,n,t,r){const s=this.getByLocation(e,n,t,r);if(!s)return;const a=this.getComment(e,n,s);if(a)return this._threadCommentModel.getThread(e,n,a.threadId)}showCommentMarker(e,n,t,r){const s=this.getByLocation(e,n,t,r);if(!s)return!1;const a=this.getComment(e,n,s);return!!(a&&!a.resolved)}getSubUnitAll(e,n){return this._threadCommentModel.getUnit(e).filter(t=>t.subUnitId===n).map(t=>t.root)}},m.SheetsThreadCommentModel=U([S(0,i.Inject(_.ThreadCommentModel)),S(1,i.IUniverInstanceService)],m.SheetsThreadCommentModel);var b=Object.getOwnPropertyDescriptor,j=(c,o,e,n)=>{for(var t=n>1?void 0:n?b(o,e):o,r=c.length-1,s;r>=0;r--)(s=c[r])&&(t=s(t)||t);return t},g=(c,o)=>(e,n)=>o(e,n,c);m.SheetsThreadCommentRefRangeController=class extends i.Disposable{constructor(e,n,t,r,s){super();f(this,"_disposableMap",new Map);f(this,"_watcherMap",new Map);f(this,"_handleRangeChange",(e,n,t,r,s)=>{const a=t.id,d={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};return r?{redos:[{id:_.UpdateCommentRefMutation.id,params:{unitId:e,subUnitId:n,payload:{ref:p.serializeRange(r),commentId:a},silent:s}}],undos:[{id:_.UpdateCommentRefMutation.id,params:{unitId:e,subUnitId:n,payload:{ref:p.serializeRange(d),commentId:a},silent:s}}]}:{redos:[{id:_.DeleteCommentMutation.id,params:{unitId:e,subUnitId:n,commentId:a}}],undos:[{id:_.AddCommentMutation.id,params:{unitId:e,subUnitId:n,comment:t,sync:!0}}]}});this._refRangeService=e,this._sheetsThreadCommentModel=n,this._threadCommentModel=t,this._selectionManagerService=r,this._commandService=s,this._initData(),this._initRefRange()}_getIdWithUnitId(e,n,t){return`${e}-${n}-${t}`}_register(e,n,t){const r=t.id,s={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};this._disposableMap.set(this._getIdWithUnitId(e,n,r),this._refRangeService.registerRefRange(s,a=>{const d=C.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests(s,a,{selectionManagerService:this._selectionManagerService}),h=Array.isArray(d)?d[0]:d;return h&&h.startColumn===s.startColumn&&h.startRow===s.startRow?{undos:[],redos:[]}:this._handleRangeChange(e,n,t,h,!1)},e,n))}_watch(e,n,t){const r=t.id,s={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};this._watcherMap.set(this._getIdWithUnitId(e,n,r),this._refRangeService.watchRange(e,n,s,(a,d)=>{const{redos:h}=this._handleRangeChange(e,n,t,d,!0);i.sequenceExecuteAsync(h,this._commandService,{onlyLocal:!0})},!0))}_unwatch(e,n,t){var s;const r=this._getIdWithUnitId(e,n,t);(s=this._watcherMap.get(r))==null||s.dispose(),this._watcherMap.delete(r)}_unregister(e,n,t){var s;const r=this._getIdWithUnitId(e,n,t);(s=this._disposableMap.get(r))==null||s.dispose(),this._disposableMap.delete(r)}_initData(){const e=this._threadCommentModel.getAll();for(const n of e)for(const t of n.threads){const{unitId:r,subUnitId:s,root:a}=t,d=p.singleReferenceToGrid(a.ref),h={...a,...d};this._register(r,s,h),this._watch(r,s,h)}}_initRefRange(){this.disposeWithMe(this._sheetsThreadCommentModel.commentUpdate$.subscribe(e=>{const{unitId:n,subUnitId:t}=e;switch(e.type){case"add":{if(e.payload.parentId)return;const r={...e.payload,row:e.row,column:e.column};this._register(e.unitId,e.subUnitId,r),this._watch(e.unitId,e.subUnitId,r);break}case"delete":{this._unregister(n,t,e.payload.commentId),this._unwatch(n,t,e.payload.commentId);break}case"updateRef":{const r=this._sheetsThreadCommentModel.getComment(n,t,e.payload.commentId);if(!r)return;this._unregister(n,t,e.payload.commentId);const s={...r,row:e.row,column:e.column};e.silent||(this._unwatch(n,t,e.payload.commentId),this._watch(n,t,s)),this._register(e.unitId,e.subUnitId,s);break}}})),this.disposeWithMe(i.toDisposable(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}},m.SheetsThreadCommentRefRangeController=j([g(0,i.Inject(C.RefRangeService)),g(1,i.Inject(m.SheetsThreadCommentModel)),g(2,i.Inject(_.ThreadCommentModel)),g(3,i.Inject(C.SheetsSelectionsService)),g(4,i.ICommandService)],m.SheetsThreadCommentRefRangeController);const E={};var D=Object.getOwnPropertyDescriptor,P=(c,o,e,n)=>{for(var t=n>1?void 0:n?D(o,e):o,r=c.length-1,s;r>=0;r--)(s=c[r])&&(t=s(t)||t);return t},v=(c,o)=>(e,n)=>o(e,n,c);let M=class extends i.Disposable{constructor(c,o,e,n){super(),this._univerInstanceService=c,this._sheetInterceptorService=o,this._threadCommentModel=e,this._threadCommentDataSourceService=n,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:c=>{var o;if(c.id===C.RemoveSheetCommand.id){const e=c.params,n=e.unitId||this._univerInstanceService.getCurrentUnitOfType(i.UniverInstanceType.UNIVER_SHEET).getUnitId(),t=e.subUnitId||((o=this._univerInstanceService.getCurrentUnitOfType(i.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:o.getSheetId());if(!n||!t)return{redos:[],undos:[]};const r=this._threadCommentModel.ensureMap(n,t),s=Array.from(r.values()).filter(u=>!u.parentId),a=this._threadCommentDataSourceService.syncUpdateMutationToColla,d=[],h=[];return s.forEach(({children:u,...l})=>{d.push({id:_.DeleteCommentMutation.id,params:{unitId:n,subUnitId:t,commentId:l.id}}),h.push({id:_.AddCommentMutation.id,params:{unitId:n,subUnitId:t,comment:{...l,children:a?u:void 0},sync:!a}})}),{redos:d,undos:h}}else if(c.id===C.CopySheetCommand.id){const e=c.params,{unitId:n,subUnitId:t,targetSubUnitId:r}=e;if(!n||!t||!r)return{redos:[],undos:[]};const s=this._threadCommentModel.ensureMap(n,t),a=Array.from(s.values()).map(l=>({...l,subUnitId:r,id:i.generateRandomId(),threadId:i.generateRandomId()})).filter(l=>!l.parentId),d=this._threadCommentDataSourceService.syncUpdateMutationToColla,h=[],u=[];return a.forEach(({children:l,...T})=>{h.push({id:_.AddCommentMutation.id,params:{unitId:n,subUnitId:r,comment:{...T,children:d?l:void 0},sync:!d}}),u.push({id:_.DeleteCommentMutation.id,params:{unitId:n,subUnitId:r,commentId:T.id}})}),{redos:h,undos:u}}return{redos:[],undos:[]}}}))}};M=P([v(0,i.IUniverInstanceService),v(1,i.Inject(C.SheetInterceptorService)),v(2,i.Inject(_.ThreadCommentModel)),v(3,_.IThreadCommentDataSourceService)],M);const $="SHEET_THREAD_COMMENT_BASE_PLUGIN";var O=Object.defineProperty,A=Object.getOwnPropertyDescriptor,x=(c,o,e)=>o in c?O(c,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):c[o]=e,W=(c,o,e,n)=>{for(var t=n>1?void 0:n?A(o,e):o,r=c.length-1,s;r>=0;r--)(s=c[r])&&(t=s(t)||t);return t},I=(c,o)=>(e,n)=>o(e,n,c),R=(c,o,e)=>x(c,typeof o!="symbol"?o+"":o,e);m.UniverSheetsThreadCommentPlugin=class extends i.Plugin{constructor(o=E,e,n){super(),this._config=o,this._injector=e,this._commandService=n}onStarting(){[[m.SheetsThreadCommentModel],[m.SheetsThreadCommentRefRangeController],[M]].forEach(o=>{this._injector.add(o)}),i.touchDependencies(this._injector,[[m.SheetsThreadCommentRefRangeController],[M]])}},R(m.UniverSheetsThreadCommentPlugin,"pluginName",$),R(m.UniverSheetsThreadCommentPlugin,"type",i.UniverInstanceType.UNIVER_SHEET),m.UniverSheetsThreadCommentPlugin=W([i.DependentOn(_.UniverThreadCommentPlugin),I(1,i.Inject(i.Injector)),I(2,i.Inject(i.ICommandService))],m.UniverSheetsThreadCommentPlugin),Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));
|
|
6
|
+
(function(m,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@univerjs/core"),require("@univerjs/engine-formula"),require("@univerjs/sheets"),require("@univerjs/thread-comment"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-formula","@univerjs/sheets","@univerjs/thread-comment","rxjs"],i):(m=typeof globalThis<"u"?globalThis:m||self,i(m.UniverSheetsThreadComment={},m.UniverCore,m.UniverEngineFormula,m.UniverSheets,m.UniverThreadComment,m.rxjs))})(this,(function(m,i,p,C,_,y){"use strict";var L=Object.defineProperty;var V=(m,i,p)=>i in m?L(m,i,{enumerable:!0,configurable:!0,writable:!0,value:p}):m[i]=p;var f=(m,i,p)=>V(m,typeof i!="symbol"?i+"":i,p);var w=Object.getOwnPropertyDescriptor,b=(c,o,e,n)=>{for(var t=n>1?void 0:n?w(o,e):o,r=c.length-1,s;r>=0;r--)(s=c[r])&&(t=s(t)||t);return t},I=(c,o)=>(e,n)=>o(e,n,c);m.SheetsThreadCommentModel=class extends i.Disposable{constructor(e,n){super();f(this,"_matrixMap",new Map);f(this,"_locationMap",new Map);f(this,"_commentUpdate$",new y.Subject);f(this,"commentUpdate$",this._commentUpdate$.asObservable());this._threadCommentModel=e,this._univerInstanceService=n,this._init(),this.disposeWithMe(()=>{this._commentUpdate$.complete()})}_init(){this._initData(),this._initUpdateTransform()}_ensureCommentMatrix(e,n){let t=this._matrixMap.get(e);t||(t=new Map,this._matrixMap.set(e,t));let r=t.get(n);return r||(r=new i.ObjectMatrix,t.set(n,r)),r}_ensureCommentLocationMap(e,n){let t=this._locationMap.get(e);t||(t=new Map,this._locationMap.set(e,t));let r=t.get(n);return r||(r=new Map,t.set(n,r)),r}_addCommentToMatrix(e,n,t,r){var a;const s=(a=e.getValue(n,t))!=null?a:new Set;s.add(r),e.setValue(n,t,s)}_deleteCommentFromMatrix(e,n,t,r){if(n>=0&&t>=0){const s=e.getValue(n,t);s&&s.has(r)&&(s.delete(r),s.size===0&&e.realDeleteValue(n,t))}}_ensure(e,n){const t=this._ensureCommentMatrix(e,n),r=this._ensureCommentLocationMap(e,n);return{matrix:t,locationMap:r}}_initData(){const e=this._threadCommentModel.getAll();for(const n of e)for(const t of n.threads){const{unitId:r,subUnitId:s,root:a}=t;this._addComment(r,s,a)}}_addComment(e,n,t){const r=p.singleReferenceToGrid(t.ref),s=t.parentId,{row:a,column:d}=r,h=t.id,{matrix:u,locationMap:l}=this._ensure(e,n);!s&&a>=0&&d>=0&&(this._addCommentToMatrix(u,a,d,h),l.set(h,{row:a,column:d})),s||this._commentUpdate$.next({unitId:e,subUnitId:n,payload:t,type:"add",isRoot:!s,...r})}_initUpdateTransform(){this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe(e=>{const{unitId:n,subUnitId:t}=e;try{if(this._univerInstanceService.getUnitType(n)!==i.UniverInstanceType.UNIVER_SHEET)return}catch{}const{matrix:r,locationMap:s}=this._ensure(n,t);switch(e.type){case"add":{this._addComment(e.unitId,e.subUnitId,e.payload);break}case"delete":{const{isRoot:a,comment:d}=e.payload;if(a){const h=p.singleReferenceToGrid(d.ref),{row:u,column:l}=h;this._deleteCommentFromMatrix(r,u,l,d.id),this._commentUpdate$.next({...e,...h})}break}case"update":{const{commentId:a}=e.payload,d=this._threadCommentModel.getComment(n,t,a);if(!d)return;const h=p.singleReferenceToGrid(d.ref);this._commentUpdate$.next({...e,...h});break}case"updateRef":{const a=p.singleReferenceToGrid(e.payload.ref),{commentId:d}=e.payload,h=s.get(d);if(!h)return;const{row:u,column:l}=h;this._deleteCommentFromMatrix(r,u,l,d),s.delete(d),a.row>=0&&a.column>=0&&(this._addCommentToMatrix(r,a.row,a.column,d),s.set(d,{row:a.row,column:a.column})),this._commentUpdate$.next({...e,...a});break}case"resolve":{const{unitId:a,subUnitId:d,payload:h}=e,{locationMap:u}=this._ensure(a,d),l=u.get(h.commentId);l&&this._commentUpdate$.next({...e,...l});break}}}))}getByLocation(e,n,t,r){var d;return(d=this.getAllByLocation(e,n,t,r).filter(h=>!h.resolved)[0])==null?void 0:d.id}getAllByLocation(e,n,t,r){const a=this._ensureCommentMatrix(e,n).getValue(t,r);return a?Array.from(a).map(d=>this.getComment(e,n,d)).filter(Boolean):[]}getComment(e,n,t){return this._threadCommentModel.getComment(e,n,t)}getCommentWithChildren(e,n,t,r){const s=this.getByLocation(e,n,t,r);if(!s)return;const a=this.getComment(e,n,s);if(a)return this._threadCommentModel.getThread(e,n,a.threadId)}showCommentMarker(e,n,t,r){const s=this.getByLocation(e,n,t,r);if(!s)return!1;const a=this.getComment(e,n,s);return!!(a&&!a.resolved)}getSubUnitAll(e,n){return this._threadCommentModel.getUnit(e).filter(t=>t.subUnitId===n).map(t=>t.root)}},m.SheetsThreadCommentModel=b([I(0,i.Inject(_.ThreadCommentModel)),I(1,i.IUniverInstanceService)],m.SheetsThreadCommentModel);var j=Object.getOwnPropertyDescriptor,E=(c,o,e,n)=>{for(var t=n>1?void 0:n?j(o,e):o,r=c.length-1,s;r>=0;r--)(s=c[r])&&(t=s(t)||t);return t},g=(c,o)=>(e,n)=>o(e,n,c);m.SheetsThreadCommentRefRangeController=class extends i.Disposable{constructor(e,n,t,r,s){super();f(this,"_disposableMap",new Map);f(this,"_watcherMap",new Map);f(this,"_handleRangeChange",(e,n,t,r,s)=>{const a=t.id,d={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};return r?{redos:[{id:_.UpdateCommentRefMutation.id,params:{unitId:e,subUnitId:n,payload:{ref:p.serializeRange(r),commentId:a},silent:s}}],undos:[{id:_.UpdateCommentRefMutation.id,params:{unitId:e,subUnitId:n,payload:{ref:p.serializeRange(d),commentId:a},silent:s}}]}:{redos:[{id:_.DeleteCommentMutation.id,params:{unitId:e,subUnitId:n,commentId:a}}],undos:[{id:_.AddCommentMutation.id,params:{unitId:e,subUnitId:n,comment:t,sync:!0}}]}});this._refRangeService=e,this._sheetsThreadCommentModel=n,this._threadCommentModel=t,this._selectionManagerService=r,this._commandService=s,this._initData(),this._initRefRange()}_getIdWithUnitId(e,n,t){return`${e}-${n}-${t}`}_register(e,n,t){const r=t.id,s={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};this._disposableMap.set(this._getIdWithUnitId(e,n,r),this._refRangeService.registerRefRange(s,a=>{const d=C.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests(s,a,{selectionManagerService:this._selectionManagerService}),h=Array.isArray(d)?d[0]:d;return h&&h.startColumn===s.startColumn&&h.startRow===s.startRow?{undos:[],redos:[]}:this._handleRangeChange(e,n,t,h,!1)},e,n))}_watch(e,n,t){const r=t.id,s={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};this._watcherMap.set(this._getIdWithUnitId(e,n,r),this._refRangeService.watchRange(e,n,s,(a,d)=>{const{redos:h}=this._handleRangeChange(e,n,t,d,!0);i.sequenceExecuteAsync(h,this._commandService,{onlyLocal:!0})},!0))}_unwatch(e,n,t){var s;const r=this._getIdWithUnitId(e,n,t);(s=this._watcherMap.get(r))==null||s.dispose(),this._watcherMap.delete(r)}_unregister(e,n,t){var s;const r=this._getIdWithUnitId(e,n,t);(s=this._disposableMap.get(r))==null||s.dispose(),this._disposableMap.delete(r)}_initData(){const e=this._threadCommentModel.getAll();for(const n of e)for(const t of n.threads){const{unitId:r,subUnitId:s,root:a}=t,d=p.singleReferenceToGrid(a.ref),h={...a,...d};this._register(r,s,h),this._watch(r,s,h)}}_initRefRange(){this.disposeWithMe(this._sheetsThreadCommentModel.commentUpdate$.subscribe(e=>{const{unitId:n,subUnitId:t}=e;switch(e.type){case"add":{if(e.payload.parentId)return;const r={...e.payload,row:e.row,column:e.column};this._register(e.unitId,e.subUnitId,r),this._watch(e.unitId,e.subUnitId,r);break}case"delete":{this._unregister(n,t,e.payload.commentId),this._unwatch(n,t,e.payload.commentId);break}case"updateRef":{const r=this._sheetsThreadCommentModel.getComment(n,t,e.payload.commentId);if(!r)return;this._unregister(n,t,e.payload.commentId);const s={...r,row:e.row,column:e.column};e.silent||(this._unwatch(n,t,e.payload.commentId),this._watch(n,t,s)),this._register(e.unitId,e.subUnitId,s);break}}})),this.disposeWithMe(i.toDisposable(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}},m.SheetsThreadCommentRefRangeController=E([g(0,i.Inject(C.RefRangeService)),g(1,i.Inject(m.SheetsThreadCommentModel)),g(2,i.Inject(_.ThreadCommentModel)),g(3,i.Inject(C.SheetsSelectionsService)),g(4,i.ICommandService)],m.SheetsThreadCommentRefRangeController);const R={name:"@univerjs/sheets-thread-comment",version:"0.17.0"},D={};var P=Object.getOwnPropertyDescriptor,$=(c,o,e,n)=>{for(var t=n>1?void 0:n?P(o,e):o,r=c.length-1,s;r>=0;r--)(s=c[r])&&(t=s(t)||t);return t},v=(c,o)=>(e,n)=>o(e,n,c);let M=class extends i.Disposable{constructor(c,o,e,n){super(),this._univerInstanceService=c,this._sheetInterceptorService=o,this._threadCommentModel=e,this._threadCommentDataSourceService=n,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:c=>{var o;if(c.id===C.RemoveSheetCommand.id){const e=c.params,n=e.unitId||this._univerInstanceService.getCurrentUnitOfType(i.UniverInstanceType.UNIVER_SHEET).getUnitId(),t=e.subUnitId||((o=this._univerInstanceService.getCurrentUnitOfType(i.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:o.getSheetId());if(!n||!t)return{redos:[],undos:[]};const r=this._threadCommentModel.ensureMap(n,t),s=Array.from(r.values()).filter(u=>!u.parentId),a=this._threadCommentDataSourceService.syncUpdateMutationToColla,d=[],h=[];return s.forEach(({children:u,...l})=>{d.push({id:_.DeleteCommentMutation.id,params:{unitId:n,subUnitId:t,commentId:l.id}}),h.push({id:_.AddCommentMutation.id,params:{unitId:n,subUnitId:t,comment:{...l,children:a?u:void 0},sync:!a}})}),{redos:d,undos:h}}else if(c.id===C.CopySheetCommand.id){const e=c.params,{unitId:n,subUnitId:t,targetSubUnitId:r}=e;if(!n||!t||!r)return{redos:[],undos:[]};const s=this._threadCommentModel.ensureMap(n,t),a=Array.from(s.values()).map(l=>({...l,subUnitId:r,id:i.generateRandomId(),threadId:i.generateRandomId()})).filter(l=>!l.parentId),d=this._threadCommentDataSourceService.syncUpdateMutationToColla,h=[],u=[];return a.forEach(({children:l,...U})=>{h.push({id:_.AddCommentMutation.id,params:{unitId:n,subUnitId:r,comment:{...U,children:d?l:void 0},sync:!d}}),u.push({id:_.DeleteCommentMutation.id,params:{unitId:n,subUnitId:r,commentId:U.id}})}),{redos:h,undos:u}}return{redos:[],undos:[]}}}))}};M=$([v(0,i.IUniverInstanceService),v(1,i.Inject(C.SheetInterceptorService)),v(2,i.Inject(_.ThreadCommentModel)),v(3,_.IThreadCommentDataSourceService)],M);const O="SHEET_THREAD_COMMENT_BASE_PLUGIN";var A=Object.defineProperty,x=Object.getOwnPropertyDescriptor,W=(c,o,e)=>o in c?A(c,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):c[o]=e,N=(c,o,e,n)=>{for(var t=n>1?void 0:n?x(o,e):o,r=c.length-1,s;r>=0;r--)(s=c[r])&&(t=s(t)||t);return t},T=(c,o)=>(e,n)=>o(e,n,c),S=(c,o,e)=>W(c,typeof o!="symbol"?o+"":o,e);m.UniverSheetsThreadCommentPlugin=class extends i.Plugin{constructor(o=D,e,n){super(),this._config=o,this._injector=e,this._commandService=n}onStarting(){[[m.SheetsThreadCommentModel],[m.SheetsThreadCommentRefRangeController],[M]].forEach(o=>{this._injector.add(o)}),i.touchDependencies(this._injector,[[m.SheetsThreadCommentRefRangeController],[M]])}},S(m.UniverSheetsThreadCommentPlugin,"pluginName",O),S(m.UniverSheetsThreadCommentPlugin,"packageName",R.name),S(m.UniverSheetsThreadCommentPlugin,"version",R.version),S(m.UniverSheetsThreadCommentPlugin,"type",i.UniverInstanceType.UNIVER_SHEET),m.UniverSheetsThreadCommentPlugin=N([i.DependentOn(_.UniverThreadCommentPlugin),T(1,i.Inject(i.Injector)),T(2,i.Inject(i.ICommandService))],m.UniverSheetsThreadCommentPlugin),Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
// @univerjs/sheets-thread-comment/facade
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
// @univerjs/thread-comment-ui/index
|
|
14
|
-
(function(u,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/thread-comment"),require("react/jsx-runtime"),require("@univerjs/design"),require("react"),require("@univerjs/docs-ui")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/ui","rxjs","@univerjs/thread-comment","react/jsx-runtime","@univerjs/design","react","@univerjs/docs-ui"],s):(u=typeof globalThis<"u"?globalThis:u||self,s(u.UniverThreadCommentUi={},u.UniverCore,u.UniverUi,u.rxjs,u.UniverThreadComment,u.React,u.UniverDesign,u.React,u.UniverDocsUi))})(this,(function(u,s,m,Q,V,i,U,d,ie){"use strict";var Fe=Object.defineProperty;var qe=(u,s,m)=>s in u?Fe(u,s,{enumerable:!0,configurable:!0,writable:!0,value:m}):u[s]=m;var G=(u,s,m)=>qe(u,typeof s!="symbol"?s+"":s,m);var ye=Object.getOwnPropertyDescriptor,Se=(r,e,t,n)=>{for(var o=n>1?void 0:n?ye(e,t):e,a=r.length-1,v;a>=0;a--)(v=r[a])&&(o=v(o)||o);return o},oe=(r,e)=>(t,n)=>e(t,n,r);u.ThreadCommentPanelService=class extends s.Disposable{constructor(t,n){super();G(this,"_panelVisible",!1);G(this,"_panelVisible$",new Q.BehaviorSubject(!1));G(this,"_activeCommentId");G(this,"_activeCommentId$",new Q.BehaviorSubject(void 0));G(this,"panelVisible$",this._panelVisible$.asObservable());G(this,"activeCommentId$",this._activeCommentId$.asObservable());this._sidebarService=t,this._univerInstanceService=n,this._init(),this.disposeWithMe(()=>{this._activeCommentId$.complete(),this._panelVisible$.complete()})}_init(){this.disposeWithMe(this._sidebarService.sidebarOptions$.subscribe(t=>{t.visible||this.setPanelVisible(!1)})),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(s.UniverInstanceType.UNIVER_SHEET).pipe(Q.filter(t=>!t)).subscribe(()=>{this._sidebarService.close()}))}get panelVisible(){return this._panelVisible}get activeCommentId(){return this._activeCommentId}setPanelVisible(t){this._panelVisible=t,this._panelVisible$.next(t)}setActiveComment(t){this._activeCommentId=t,this._activeCommentId$.next(t)}},u.ThreadCommentPanelService=Se([oe(0,s.Inject(m.ISidebarService)),oe(1,s.IUniverInstanceService)],u.ThreadCommentPanelService);const ae="thread-comment-panel",_e="UNIVER_THREAD_COMMENT_UI_PLUGIN",le={id:"thread-comment-ui.operation.toggle-panel",type:s.CommandType.OPERATION,handler(r){const e=r.get(m.ISidebarService),t=r.get(u.ThreadCommentPanelService);return t.panelVisible?(e.close(),t.setPanelVisible(!1)):(e.open({header:{title:"threadCommentUI.panel.title"},children:{label:ae},width:360}),t.setPanelVisible(!0)),!0}},F={id:"thread-comment-ui.operation.set-active-comment",type:s.CommandType.OPERATION,handler(r,e){return r.get(u.ThreadCommentPanelService).setActiveComment(e),!0}},we="thread-comment-ui.config",de={};var Te=Object.defineProperty,Ne=Object.getOwnPropertyDescriptor,Ue=(r,e,t)=>e in r?Te(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,De=(r,e,t,n)=>{for(var o=n>1?void 0:n?Ne(e,t):e,a=r.length-1,v;a>=0;a--)(v=r[a])&&(o=v(o)||o);return o},se=(r,e)=>(t,n)=>e(t,n,r),ce=(r,e,t)=>Ue(r,typeof e!="symbol"?e+"":e,t);u.UniverThreadCommentUIPlugin=class extends s.Plugin{constructor(e=de,t,n,o){super(),this._config=e,this._injector=t,this._commandService=n,this._configService=o;const{menu:a,...v}=s.merge({},de,this._config);a&&this._configService.setConfig("menu",a,{merge:!0}),this._configService.setConfig(we,v)}onStarting(){var e;s.mergeOverrideWithDependencies([[u.ThreadCommentPanelService]],(e=this._config)==null?void 0:e.overrides).forEach(t=>{this._injector.add(t)}),[le,F].forEach(t=>{this._commandService.registerCommand(t)})}},ce(u.UniverThreadCommentUIPlugin,"pluginName",_e),ce(u.UniverThreadCommentUIPlugin,"type",s.UniverInstanceType.UNIVER_UNKNOWN),u.UniverThreadCommentUIPlugin=De([s.DependentOn(V.UniverThreadCommentPlugin),se(1,s.Inject(s.Injector)),se(2,s.ICommandService),se(3,s.IConfigService)],u.UniverThreadCommentUIPlugin);function q({ref:r,...e}){const{icon:t,id:n,className:o,extend:a,...v}=e,S=`univerjs-icon univerjs-icon-${n} ${o||""}`.trim(),g=d.useRef(`_${ke()}`);return ue(t,`${n}`,{defIds:t.defIds,idSuffix:g.current},{ref:r,className:S,...v},a)}function ue(r,e,t,n,o){return d.createElement(r.tag,{key:e,...Ee(r,t,o),...n},($e(r,t).children||[]).map((a,v)=>ue(a,`${e}-${r.tag}-${v}`,t,void 0,o)))}function Ee(r,e,t){const n={...r.attrs};t!=null&&t.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=t.colorChannel1),r.tag==="mask"&&n.id&&(n.id=n.id+e.idSuffix),Object.entries(n).forEach(([a,v])=>{a==="mask"&&typeof v=="string"&&(n[a]=v.replace(/url\(#(.*)\)/,`url(#$1${e.idSuffix})`))});const{defIds:o}=e;return!o||o.length===0||(r.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+e.idSuffix),Object.entries(n).forEach(([a,v])=>{typeof v=="string"&&(n[a]=v.replace(/url\(#(.*)\)/,`url(#$1${e.idSuffix})`))})),n}function $e(r,e){var n;const{defIds:t}=e;return!t||t.length===0?r:r.tag==="defs"&&((n=r.children)!=null&&n.length)?{...r,children:r.children.map(o=>typeof o.attrs.id=="string"&&t&&t.includes(o.attrs.id)?{...o,attrs:{...o.attrs,id:o.attrs.id+e.idSuffix}}:o)}:r}function ke(){return Math.random().toString(36).substring(2,8)}q.displayName="UniverIcon";const Me={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993 0.866699 5.9313 0.866699H10.069C10.4004 0.866699 10.669 1.13533 10.669 1.4667C10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443C14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928L9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171C10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778L9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539C9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263L6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539C5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778L6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ve=d.forwardRef(function(e,t){return d.createElement(q,Object.assign({},e,{id:"delete-icon",ref:t,icon:Me}))});ve.displayName="DeleteIcon";const Oe={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},me=d.forwardRef(function(e,t){return d.createElement(q,Object.assign({},e,{id:"increase-icon",ref:t,icon:Oe}))});me.displayName="IncreaseIcon";const je={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3 9C3.55228 9 4 8.55228 4 8C4 7.44772 3.55228 7 3 7C2.44772 7 2 7.44772 2 8C2 8.55228 2.44772 9 3 9Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M8 9C8.55228 9 9 8.55228 9 8C9 7.44772 8.55228 7 8 7C7.44772 7 7 7.44772 7 8C7 8.55228 7.44772 9 8 9Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M13 9C13.5523 9 14 8.55228 14 8C14 7.44772 13.5523 7 13 7C12.4477 7 12 7.44772 12 8C12 8.55228 12.4477 9 13 9Z"}}]},he=d.forwardRef(function(e,t){return d.createElement(q,Object.assign({},e,{id:"more-horizontal-icon",ref:t,icon:je}))});he.displayName="MoreHorizontalIcon";const Pe={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{stroke:"currentColor",d:"M7.48389 10.3267V12.1905C7.48389 12.7428 7.9316 13.1905 8.48389 13.1905H11.2216L12.2955 14.2644L13.3695 13.1905H14.1593C14.7116 13.1905 15.1593 12.7428 15.1593 12.1905V8.46289C15.1593 7.91061 14.7116 7.46289 14.1593 7.46289H12.2955",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.2}},{tag:"path",attrs:{stroke:"currentColor",d:"M0.840332 3.73535C0.840332 2.63078 1.73576 1.73535 2.84033 1.73535H10.2955C11.4001 1.73535 12.2955 2.63078 12.2955 3.73535V8.32676C12.2955 9.43132 11.4001 10.3268 10.2955 10.3268H5.6014L4.1695 11.7587L3.05978 10.3268H2.84033C1.73576 10.3268 0.840332 9.43133 0.840332 8.32676V3.73535Z",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.2}},{tag:"path",attrs:{stroke:"currentColor",d:"M6.41016 6.1311H6.76813",strokeLinecap:"round",strokeWidth:1.2}},{tag:"path",attrs:{stroke:"currentColor",d:"M8.91626 6.1311H9.27424",strokeLinecap:"round",strokeWidth:1.2}},{tag:"path",attrs:{stroke:"currentColor",d:"M3.90454 6.1311H4.26252",strokeLinecap:"round",strokeWidth:1.2}}]},fe=d.forwardRef(function(e,t){return d.createElement(q,Object.assign({},e,{id:"reply-to-comment-icon",ref:t,icon:Pe}))});fe.displayName="ReplyToCommentIcon";const Le={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6106 15.4036C12.4766 15.4036 15.6106 12.2696 15.6106 8.40356C15.6106 4.53757 12.4766 1.40356 8.6106 1.40356C4.7446 1.40356 1.6106 4.53757 1.6106 8.40356C1.6106 12.2696 4.7446 15.4036 8.6106 15.4036ZM12.3351 6.82773C12.5694 6.59342 12.5694 6.21352 12.3351 5.9792C12.1007 5.74489 11.7208 5.74489 11.4865 5.9792L7.91079 9.55494L6.33506 7.9792C6.10074 7.74489 5.72084 7.74489 5.48653 7.9792C5.25221 8.21352 5.25221 8.59342 5.48653 8.82773L7.48653 10.8277C7.72084 11.062 8.10074 11.062 8.33506 10.8277L12.3351 6.82773Z",fillRule:"evenodd",clipRule:"evenodd"}}]},pe=d.forwardRef(function(e,t){return d.createElement(q,Object.assign({},e,{id:"resolved-icon",ref:t,icon:Le}))});pe.displayName="ResolvedIcon";const He={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"circle",attrs:{cx:8.73,cy:8.4,r:6.4,stroke:"currentColor",strokeWidth:1.2}},{tag:"path",attrs:{stroke:"currentColor",d:"M6.02637 8.40356L8.02637 10.4036L12.0264 6.40356",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.2}}]},Ce=d.forwardRef(function(e,t){return d.createElement(q,Object.assign({},e,{id:"solve-icon",ref:t,icon:He}))});Ce.displayName="SolveIcon";function ge(r){return{id:"d",body:r,documentStyle:{}}}const Ie=d.forwardRef((r,e)=>{var L;const{comment:t,onSave:n,id:o,onCancel:a,autoFocus:v,unitId:S,type:g}=r,D=m.useDependency(s.ICommandService),$=m.useDependency(s.LocaleService),[W,k]=d.useState(!1),_=m.useDependency(ie.IEditorService),f=d.useRef(null),p=g===s.UniverInstanceType.UNIVER_DOC?s.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:S,[M,w]=d.useState(()=>{var h,C,I;return s.BuildTextUtils.transform.getPlainText((I=(C=(h=f.current)==null?void 0:h.getDocumentData().body)==null?void 0:C.dataStream)!=null?I:"")});d.useEffect(()=>{var C,I,T,b;w(s.BuildTextUtils.transform.getPlainText((T=(I=(C=f.current)==null?void 0:C.getDocumentData().body)==null?void 0:I.dataStream)!=null?T:""));const h=(b=f.current)==null?void 0:b.selectionChange$.subscribe(()=>{var l,N,z;w(s.BuildTextUtils.transform.getPlainText((z=(N=(l=f.current)==null?void 0:l.getDocumentData().body)==null?void 0:N.dataStream)!=null?z:""))});return()=>h==null?void 0:h.unsubscribe()},[(L=f.current)==null?void 0:L.selectionChange$]);const Z=d.useMemo(()=>({keyCodes:[{keyCode:m.KeyCode.ENTER}],handler:h=>{h===m.KeyCode.ENTER&&D.executeCommand(ie.BreakLineCommand.id)}}),[D]);d.useImperativeHandle(e,()=>({reply(h){var I,T;if(!f.current)return;_.focus((I=f.current.getEditorId())!=null?I:"");const C=ge(h);(T=f.current)==null||T.setDocumentData(C,[{startOffset:C.body.dataStream.length-2,endOffset:C.body.dataStream.length-2,collapsed:!0}])}}));const x=()=>{if(f.current){const h=s.Tools.deepClone(f.current.getDocumentData().body);k(!1),n==null||n({...t,text:h}),f.current.replaceText(""),setTimeout(()=>{var C,I;(C=f.current)==null||C.setSelectionRanges([]),(I=f.current)==null||I.blur()},10)}};return i.jsxs("div",{onClick:h=>h.preventDefault(),children:[i.jsx(ie.RichTextEditor,{className:"univer-w-full",editorRef:f,editorId:s.DOCS_COMMENT_EDITOR_UNIT_ID_KEY,autoFocus:v,keyboardEventConfig:Z,placeholder:$.t("threadCommentUI.editor.placeholder"),initialValue:(t==null?void 0:t.text)&&ge(t.text),onFocusChange:h=>h&&k(h),isSingle:!1,maxHeight:64,onClickOutside:()=>{setTimeout(()=>{_.focus(p)},30)}}),W?i.jsxs("div",{className:"univer-mt-3 univer-flex univer-flex-row univer-justify-end univer-gap-2",children:[i.jsx(U.Button,{onClick:()=>{var h;a==null||a(),k(!1),(h=f.current)==null||h.replaceText("",!0),D.executeCommand(F.id)},children:$.t("threadCommentUI.editor.cancel")}),i.jsx(U.Button,{variant:"primary",disabled:!M,onClick:x,children:$.t(o?"threadCommentUI.editor.save":"threadCommentUI.editor.reply")})]}):null]})}),Ve=r=>{const{dataStream:e,customRanges:t}=r,n=e.endsWith(`\r
|
|
15
|
-
`)?e.length-2:e.length,o=[];let a=0;return t==null||t.forEach(v=>{a<v.startIndex&&o.push({type:"text",content:e.slice(a,v.startIndex)}),o.push({type:"mention",content:{label:e.slice(v.startIndex,v.endIndex+1),id:v.rangeId}}),a=v.endIndex+1}),o.push({type:"text",content:e.slice(a,n)}),o},
|
|
16
|
-
`,{textRuns:[],paragraphs:[{startIndex:e.length-2,paragraphStyle:{}}],sectionBreaks:[{startIndex:e.length-1}],dataStream:e,customRanges:t}},
|
|
17
|
-
\r`},personId:(
|
|
14
|
+
(function(d,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/thread-comment"),require("react/jsx-runtime"),require("@univerjs/design"),require("react"),require("@univerjs/docs-ui")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/ui","rxjs","@univerjs/thread-comment","react/jsx-runtime","@univerjs/design","react","@univerjs/docs-ui"],s):(d=typeof globalThis<"u"?globalThis:d||self,s(d.UniverThreadCommentUi={},d.UniverCore,d.UniverUi,d.rxjs,d.UniverThreadComment,d.React,d.UniverDesign,d.React,d.UniverDocsUi))})(this,(function(d,s,m,Q,V,i,N,c,se){"use strict";var qe=Object.defineProperty;var ze=(d,s,m)=>s in d?qe(d,s,{enumerable:!0,configurable:!0,writable:!0,value:m}):d[s]=m;var G=(d,s,m)=>ze(d,typeof s!="symbol"?s+"":s,m);var Se=Object.getOwnPropertyDescriptor,_e=(r,e,t,n)=>{for(var o=n>1?void 0:n?Se(e,t):e,a=r.length-1,v;a>=0;a--)(v=r[a])&&(o=v(o)||o);return o},ae=(r,e)=>(t,n)=>e(t,n,r);d.ThreadCommentPanelService=class extends s.Disposable{constructor(t,n){super();G(this,"_panelVisible",!1);G(this,"_panelVisible$",new Q.BehaviorSubject(!1));G(this,"_activeCommentId");G(this,"_activeCommentId$",new Q.BehaviorSubject(void 0));G(this,"panelVisible$",this._panelVisible$.asObservable());G(this,"activeCommentId$",this._activeCommentId$.asObservable());this._sidebarService=t,this._univerInstanceService=n,this._init(),this.disposeWithMe(()=>{this._activeCommentId$.complete(),this._panelVisible$.complete()})}_init(){this.disposeWithMe(this._sidebarService.sidebarOptions$.subscribe(t=>{t.visible||this.setPanelVisible(!1)})),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(s.UniverInstanceType.UNIVER_SHEET).pipe(Q.filter(t=>!t)).subscribe(()=>{this._sidebarService.close()}))}get panelVisible(){return this._panelVisible}get activeCommentId(){return this._activeCommentId}setPanelVisible(t){this._panelVisible=t,this._panelVisible$.next(t)}setActiveComment(t){this._activeCommentId=t,this._activeCommentId$.next(t)}},d.ThreadCommentPanelService=_e([ae(0,s.Inject(m.ISidebarService)),ae(1,s.IUniverInstanceService)],d.ThreadCommentPanelService);const le="thread-comment-panel",we="UNIVER_THREAD_COMMENT_UI_PLUGIN",de={id:"thread-comment-ui.operation.toggle-panel",type:s.CommandType.OPERATION,handler(r){const e=r.get(m.ISidebarService),t=r.get(d.ThreadCommentPanelService);return t.panelVisible?(e.close(),t.setPanelVisible(!1)):(e.open({header:{title:"threadCommentUI.panel.title"},children:{label:le},width:360}),t.setPanelVisible(!0)),!0}},F={id:"thread-comment-ui.operation.set-active-comment",type:s.CommandType.OPERATION,handler(r,e){return r.get(d.ThreadCommentPanelService).setActiveComment(e),!0}},ce={name:"@univerjs/thread-comment-ui",version:"0.17.0"},Te="thread-comment-ui.config",ue={};var Ue=Object.defineProperty,Ne=Object.getOwnPropertyDescriptor,De=(r,e,t)=>e in r?Ue(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ee=(r,e,t,n)=>{for(var o=n>1?void 0:n?Ne(e,t):e,a=r.length-1,v;a>=0;a--)(v=r[a])&&(o=v(o)||o);return o},oe=(r,e)=>(t,n)=>e(t,n,r),X=(r,e,t)=>De(r,typeof e!="symbol"?e+"":e,t);d.UniverThreadCommentUIPlugin=class extends s.Plugin{constructor(e=ue,t,n,o){super(),this._config=e,this._injector=t,this._commandService=n,this._configService=o;const{menu:a,...v}=s.merge({},ue,this._config);a&&this._configService.setConfig("menu",a,{merge:!0}),this._configService.setConfig(Te,v)}onStarting(){var e;s.mergeOverrideWithDependencies([[d.ThreadCommentPanelService]],(e=this._config)==null?void 0:e.overrides).forEach(t=>{this._injector.add(t)}),[de,F].forEach(t=>{this._commandService.registerCommand(t)})}},X(d.UniverThreadCommentUIPlugin,"pluginName",we),X(d.UniverThreadCommentUIPlugin,"packageName",ce.name),X(d.UniverThreadCommentUIPlugin,"version",ce.version),X(d.UniverThreadCommentUIPlugin,"type",s.UniverInstanceType.UNIVER_UNKNOWN),d.UniverThreadCommentUIPlugin=Ee([s.DependentOn(V.UniverThreadCommentPlugin),oe(1,s.Inject(s.Injector)),oe(2,s.ICommandService),oe(3,s.IConfigService)],d.UniverThreadCommentUIPlugin);function q({ref:r,...e}){const{icon:t,id:n,className:o,extend:a,...v}=e,S=`univerjs-icon univerjs-icon-${n} ${o||""}`.trim(),g=c.useRef(`_${Me()}`);return ve(t,`${n}`,{defIds:t.defIds,idSuffix:g.current},{ref:r,className:S,...v},a)}function ve(r,e,t,n,o){return c.createElement(r.tag,{key:e,...ke(r,t,o),...n},($e(r,t).children||[]).map((a,v)=>ve(a,`${e}-${r.tag}-${v}`,t,void 0,o)))}function ke(r,e,t){const n={...r.attrs};t!=null&&t.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=t.colorChannel1),r.tag==="mask"&&n.id&&(n.id=n.id+e.idSuffix),Object.entries(n).forEach(([a,v])=>{a==="mask"&&typeof v=="string"&&(n[a]=v.replace(/url\(#(.*)\)/,`url(#$1${e.idSuffix})`))});const{defIds:o}=e;return!o||o.length===0||(r.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+e.idSuffix),Object.entries(n).forEach(([a,v])=>{typeof v=="string"&&(n[a]=v.replace(/url\(#(.*)\)/,`url(#$1${e.idSuffix})`))})),n}function $e(r,e){var n;const{defIds:t}=e;return!t||t.length===0?r:r.tag==="defs"&&((n=r.children)!=null&&n.length)?{...r,children:r.children.map(o=>typeof o.attrs.id=="string"&&t&&t.includes(o.attrs.id)?{...o,attrs:{...o.attrs,id:o.attrs.id+e.idSuffix}}:o)}:r}function Me(){return Math.random().toString(36).substring(2,8)}q.displayName="UniverIcon";const Oe={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993 0.866699 5.9313 0.866699H10.069C10.4004 0.866699 10.669 1.13533 10.669 1.4667C10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443C14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928L9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171C10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778L9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539C9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263L6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539C5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778L6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},me=c.forwardRef(function(e,t){return c.createElement(q,Object.assign({},e,{id:"delete-icon",ref:t,icon:Oe}))});me.displayName="DeleteIcon";const je={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},he=c.forwardRef(function(e,t){return c.createElement(q,Object.assign({},e,{id:"increase-icon",ref:t,icon:je}))});he.displayName="IncreaseIcon";const Pe={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3 9C3.55228 9 4 8.55228 4 8C4 7.44772 3.55228 7 3 7C2.44772 7 2 7.44772 2 8C2 8.55228 2.44772 9 3 9Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M8 9C8.55228 9 9 8.55228 9 8C9 7.44772 8.55228 7 8 7C7.44772 7 7 7.44772 7 8C7 8.55228 7.44772 9 8 9Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M13 9C13.5523 9 14 8.55228 14 8C14 7.44772 13.5523 7 13 7C12.4477 7 12 7.44772 12 8C12 8.55228 12.4477 9 13 9Z"}}]},fe=c.forwardRef(function(e,t){return c.createElement(q,Object.assign({},e,{id:"more-horizontal-icon",ref:t,icon:Pe}))});fe.displayName="MoreHorizontalIcon";const Le={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{stroke:"currentColor",d:"M7.48389 10.3267V12.1905C7.48389 12.7428 7.9316 13.1905 8.48389 13.1905H11.2216L12.2955 14.2644L13.3695 13.1905H14.1593C14.7116 13.1905 15.1593 12.7428 15.1593 12.1905V8.46289C15.1593 7.91061 14.7116 7.46289 14.1593 7.46289H12.2955",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.2}},{tag:"path",attrs:{stroke:"currentColor",d:"M0.840332 3.73535C0.840332 2.63078 1.73576 1.73535 2.84033 1.73535H10.2955C11.4001 1.73535 12.2955 2.63078 12.2955 3.73535V8.32676C12.2955 9.43132 11.4001 10.3268 10.2955 10.3268H5.6014L4.1695 11.7587L3.05978 10.3268H2.84033C1.73576 10.3268 0.840332 9.43133 0.840332 8.32676V3.73535Z",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.2}},{tag:"path",attrs:{stroke:"currentColor",d:"M6.41016 6.1311H6.76813",strokeLinecap:"round",strokeWidth:1.2}},{tag:"path",attrs:{stroke:"currentColor",d:"M8.91626 6.1311H9.27424",strokeLinecap:"round",strokeWidth:1.2}},{tag:"path",attrs:{stroke:"currentColor",d:"M3.90454 6.1311H4.26252",strokeLinecap:"round",strokeWidth:1.2}}]},Ce=c.forwardRef(function(e,t){return c.createElement(q,Object.assign({},e,{id:"reply-to-comment-icon",ref:t,icon:Le}))});Ce.displayName="ReplyToCommentIcon";const He={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6106 15.4036C12.4766 15.4036 15.6106 12.2696 15.6106 8.40356C15.6106 4.53757 12.4766 1.40356 8.6106 1.40356C4.7446 1.40356 1.6106 4.53757 1.6106 8.40356C1.6106 12.2696 4.7446 15.4036 8.6106 15.4036ZM12.3351 6.82773C12.5694 6.59342 12.5694 6.21352 12.3351 5.9792C12.1007 5.74489 11.7208 5.74489 11.4865 5.9792L7.91079 9.55494L6.33506 7.9792C6.10074 7.74489 5.72084 7.74489 5.48653 7.9792C5.25221 8.21352 5.25221 8.59342 5.48653 8.82773L7.48653 10.8277C7.72084 11.062 8.10074 11.062 8.33506 10.8277L12.3351 6.82773Z",fillRule:"evenodd",clipRule:"evenodd"}}]},pe=c.forwardRef(function(e,t){return c.createElement(q,Object.assign({},e,{id:"resolved-icon",ref:t,icon:He}))});pe.displayName="ResolvedIcon";const Ve={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"circle",attrs:{cx:8.73,cy:8.4,r:6.4,stroke:"currentColor",strokeWidth:1.2}},{tag:"path",attrs:{stroke:"currentColor",d:"M6.02637 8.40356L8.02637 10.4036L12.0264 6.40356",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.2}}]},ge=c.forwardRef(function(e,t){return c.createElement(q,Object.assign({},e,{id:"solve-icon",ref:t,icon:Ve}))});ge.displayName="SolveIcon";function Ie(r){return{id:"d",body:r,documentStyle:{}}}const be=c.forwardRef((r,e)=>{var L;const{comment:t,onSave:n,id:o,onCancel:a,autoFocus:v,unitId:S,type:g}=r,D=m.useDependency(s.ICommandService),k=m.useDependency(s.LocaleService),[W,$]=c.useState(!1),_=m.useDependency(se.IEditorService),f=c.useRef(null),C=g===s.UniverInstanceType.UNIVER_DOC?s.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:S,[M,w]=c.useState(()=>{var h,p,I;return s.BuildTextUtils.transform.getPlainText((I=(p=(h=f.current)==null?void 0:h.getDocumentData().body)==null?void 0:p.dataStream)!=null?I:"")});c.useEffect(()=>{var p,I,T,b;w(s.BuildTextUtils.transform.getPlainText((T=(I=(p=f.current)==null?void 0:p.getDocumentData().body)==null?void 0:I.dataStream)!=null?T:""));const h=(b=f.current)==null?void 0:b.selectionChange$.subscribe(()=>{var l,U,z;w(s.BuildTextUtils.transform.getPlainText((z=(U=(l=f.current)==null?void 0:l.getDocumentData().body)==null?void 0:U.dataStream)!=null?z:""))});return()=>h==null?void 0:h.unsubscribe()},[(L=f.current)==null?void 0:L.selectionChange$]);const Z=c.useMemo(()=>({keyCodes:[{keyCode:m.KeyCode.ENTER}],handler:h=>{h===m.KeyCode.ENTER&&D.executeCommand(se.BreakLineCommand.id)}}),[D]);c.useImperativeHandle(e,()=>({reply(h){var I,T;if(!f.current)return;_.focus((I=f.current.getEditorId())!=null?I:"");const p=Ie(h);(T=f.current)==null||T.setDocumentData(p,[{startOffset:p.body.dataStream.length-2,endOffset:p.body.dataStream.length-2,collapsed:!0}])}}));const x=()=>{if(f.current){const h=s.Tools.deepClone(f.current.getDocumentData().body);$(!1),n==null||n({...t,text:h}),f.current.replaceText(""),setTimeout(()=>{var p,I;(p=f.current)==null||p.setSelectionRanges([]),(I=f.current)==null||I.blur()},10)}};return i.jsxs("div",{onClick:h=>h.preventDefault(),children:[i.jsx(se.RichTextEditor,{className:"univer-w-full",editorRef:f,editorId:s.DOCS_COMMENT_EDITOR_UNIT_ID_KEY,autoFocus:v,keyboardEventConfig:Z,placeholder:k.t("threadCommentUI.editor.placeholder"),initialValue:(t==null?void 0:t.text)&&Ie(t.text),onFocusChange:h=>h&&$(h),isSingle:!1,maxHeight:64,onClickOutside:()=>{setTimeout(()=>{_.focus(C)},30)}}),W?i.jsxs("div",{className:"univer-mt-3 univer-flex univer-flex-row univer-justify-end univer-gap-2",children:[i.jsx(N.Button,{onClick:()=>{var h;a==null||a(),$(!1),(h=f.current)==null||h.replaceText("",!0),D.executeCommand(F.id)},children:k.t("threadCommentUI.editor.cancel")}),i.jsx(N.Button,{variant:"primary",disabled:!M,onClick:x,children:k.t(o?"threadCommentUI.editor.save":"threadCommentUI.editor.reply")})]}):null]})}),Be=r=>{const{dataStream:e,customRanges:t}=r,n=e.endsWith(`\r
|
|
15
|
+
`)?e.length-2:e.length,o=[];let a=0;return t==null||t.forEach(v=>{a<v.startIndex&&o.push({type:"text",content:e.slice(a,v.startIndex)}),o.push({type:"mention",content:{label:e.slice(v.startIndex,v.endIndex+1),id:v.rangeId}}),a=v.endIndex+1}),o.push({type:"text",content:e.slice(a,n)}),o},Ae=r=>{if(!r)return[];const{paragraphs:e=[]}=r;return e.map((t,n)=>{const o=n===0?0:e[n-1].startIndex+1,a=s.getBodySlice(r,o,t.startIndex);return Be(a)})},We=r=>{let e="";const t=[];return r.forEach(n=>{switch(n.type){case"text":e+=n.content;break;case"mention":{const o=e.length;e+=n.content.label;const a=e.length-1;t.push({rangeId:n.content.id,rangeType:s.CustomRangeType.MENTION,startIndex:o,endIndex:a,properties:{},wholeEntity:!0});break}}}),e+=`\r
|
|
16
|
+
`,{textRuns:[],paragraphs:[{startIndex:e.length-2,paragraphStyle:{}}],sectionBreaks:[{startIndex:e.length-1}],dataStream:e,customRanges:t}},xe="__mock__",Ze=r=>{const{item:e,unitId:t,subUnitId:n,editing:o,onEditingChange:a,onReply:v,resolved:S,isRoot:g,onClose:D,onDeleteComment:k,type:W}=r,$=m.useDependency(s.ICommandService),_=m.useDependency(s.LocaleService),f=m.useDependency(s.UserManagerService),C=f.getUser(e.personId),M=m.useObservable(f.currentUser$),w=(M==null?void 0:M.userID)===e.personId,Z=e.id===xe,[x,L]=c.useState(!1),h=m.useConfigValue(m.UI_PLUGIN_CONFIG_KEY),p=h==null?void 0:h.avatarFallback,I=()=>{(k==null?void 0:k(e))!==!1&&($.executeCommand(g?V.DeleteCommentTreeCommand.id:V.DeleteCommentCommand.id,{unitId:t,subUnitId:n,commentId:e.id}),g&&(D==null||D()))};return i.jsxs("div",{className:"univer-relative univer-mb-3 univer-pl-[30px]",onMouseLeave:()=>L(!1),onMouseEnter:()=>L(!0),children:[i.jsx("div",{className:"univer-absolute univer-left-0 univer-top-0 univer-size-6 univer-rounded-full univer-bg-cover univer-bg-center univer-bg-no-repeat",style:{backgroundImage:`url(${(C==null?void 0:C.avatar)||p})`}}),C?i.jsxs("div",{className:"univer-mb-1 univer-flex univer-h-6 univer-items-center univer-justify-between",children:[i.jsx("div",{className:"univer-text-sm univer-font-medium univer-leading-5",children:(C==null?void 0:C.name)||" "}),i.jsxs("div",{children:[Z||S?null:x&&C?i.jsx("div",{className:"univer-ml-1 univer-inline-flex univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-sm univer-text-base hover:univer-bg-gray-50",onClick:()=>v(C),children:i.jsx(Ce,{})}):null,w&&!Z&&!S?i.jsx(N.Dropdown,{overlay:i.jsx("div",{className:"univer-rounded-lg",children:i.jsxs("ul",{className:"univer-m-0 univer-box-border univer-grid univer-list-none univer-p-1.5 univer-text-sm [&_a]:univer-block [&_a]:univer-cursor-pointer [&_a]:univer-rounded [&_a]:univer-px-2 [&_a]:univer-py-1.5 [&_a]:univer-transition-colors",children:[i.jsx("li",{children:i.jsx("a",{className:"hover:univer-bg-gray-200",onClick:()=>a==null?void 0:a(!0),children:_.t("threadCommentUI.item.edit")})}),i.jsx("li",{children:i.jsx("a",{className:"hover:univer-bg-gray-200",onClick:I,children:_.t("threadCommentUI.item.delete")})})]})}),children:i.jsx("div",{className:"univer-ml-1 univer-inline-flex univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-sm univer-text-base hover:univer-bg-gray-50",children:i.jsx(fe,{})})}):null]})]}):null,i.jsx("time",{className:"univer-mb-1 univer-text-xs/normal univer-text-gray-600 dark:!univer-text-gray-200",children:e.dT}),o?i.jsx(be,{type:W,id:e.id,comment:e,onCancel:()=>a==null?void 0:a(!1),autoFocus:!0,unitId:t,subUnitId:n,onSave:({text:T,attachments:b})=>{a==null||a(!1),$.executeCommand(V.UpdateCommentCommand.id,{unitId:t,subUnitId:n,payload:{commentId:e.id,text:T,attachments:b}})}}):i.jsx("div",{className:"univer-text-sm univer-text-gray-900 dark:!univer-text-white",children:Ae(e.text).map((T,b)=>i.jsx("div",{className:"univer-break-words",children:T.map((l,U)=>l.type==="mention"?i.jsxs("a",{className:"univer-text-primary-600",children:[l.content.label," "]},U):l.content)},b))})]})},ye=r=>{var ie,J,u;const{id:e,unitId:t,subUnitId:n,refStr:o,showEdit:a=!0,onClick:v,showHighlight:S,onClose:g,getSubUnitName:D,prefix:k,autoFocus:W,onMouseEnter:$,onMouseLeave:_,onAddComment:f,onDeleteComment:C,onResolve:M,type:w,style:Z,full:x}=r,L=m.useDependency(V.ThreadCommentModel),[h,p]=c.useState(!1),[I,T]=c.useState(""),b=c.useMemo(()=>L.commentUpdate$.pipe(Q.debounceTime(16)),[L]);m.useObservable(b);const l=e?L.getCommentWithChildren(t,n,e):null,U=m.useDependency(s.ICommandService),z=m.useDependency(s.UserManagerService),O=l==null?void 0:l.root.resolved,j=m.useObservable(z.currentUser$),B=c.useRef(null),Y=[...l?[l.root]:[{id:xe,text:{dataStream:`
|
|
17
|
+
\r`},personId:(ie=j==null?void 0:j.userID)!=null?ie:"",ref:o!=null?o:"",dT:"",unitId:t,subUnitId:n,threadId:""}],...(J=l==null?void 0:l.children)!=null?J:[]],H=c.useRef(null),ee=y=>{y.stopPropagation(),O?U.executeCommand(F.id,{unitId:t,subUnitId:n,commentId:e}):U.executeCommand(F.id),U.executeCommand(V.ResolveCommentCommand.id,{unitId:t,subUnitId:n,commentId:e,resolved:!O}),M==null||M(!O)},R=y=>{y.stopPropagation(),U.executeCommand(F.id),!(l!=null&&l.root&&(C==null?void 0:C(l.root))===!1)&&(U.executeCommand(V.DeleteCommentTreeCommand.id,{unitId:t,subUnitId:n,commentId:e}),g==null||g())};c.useEffect(()=>_==null?void 0:_(),[]);const te=D((u=l==null?void 0:l.root.subUnitId)!=null?u:n),ne=a&&!I&&!O,re=`${o||(l==null?void 0:l.root.ref)||""}${te?" · ":""}${te}`;return i.jsxs("div",{id:`${k}-${t}-${n}-${e}`,className:N.clsx("univer-relative univer-box-border univer-rounded-md univer-bg-white univer-p-4 dark:!univer-bg-gray-900 dark:!univer-text-white",N.borderClassName,{"univer-w-[278px]":!x,"univer-w-full":x,"univer-shadow":!O&&(S||h||k==="cell")}),style:Z,onClick:v,onMouseEnter:()=>{$==null||$(),p(!0)},onMouseLeave:()=>{_==null||_(),p(!1)},children:[!O&&S&&i.jsx("div",{className:"univer-absolute univer-left-0 univer-right-0 univer-top-0 univer-h-1.5 univer-rounded-t-md univer-bg-yellow-400"}),i.jsxs("div",{className:"univer-mb-4 univer-flex univer-flex-row univer-items-center univer-justify-between univer-text-sm univer-leading-5",children:[i.jsxs("div",{className:"univer-flex univer-flex-1 univer-flex-row univer-items-center univer-overflow-hidden",children:[i.jsx("div",{className:"univer-mr-2 univer-h-3.5 univer-w-[3px] univer-flex-shrink-0 univer-flex-grow-0 univer-rounded-sm univer-bg-yellow-500"}),i.jsx(N.Tooltip,{showIfEllipsis:!0,title:re,children:i.jsx("span",{className:"univer-flex-1 univer-truncate",children:re})})]}),!!l&&i.jsxs("div",{className:"univer-flex univer-flex-shrink-0 univer-flex-grow-0 univer-flex-row",children:[i.jsx("div",{className:N.clsx("univer-ml-1 univer-inline-flex univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-[3px] univer-text-base hover:univer-bg-gray-50 dark:hover:!univer-bg-gray-800",{"univer-text-green-500":O}),onClick:ee,children:O?i.jsx(pe,{}):i.jsx(ge,{})}),(j==null?void 0:j.userID)===l.root.personId?i.jsx("div",{className:"univer-ml-1 univer-inline-flex univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-[3px] univer-text-base hover:univer-bg-gray-50 dark:hover:!univer-bg-gray-800",onClick:R,children:i.jsx(me,{})}):null]})]}),i.jsx("div",{ref:H,className:N.clsx("univer-max-h-80 univer-overflow-y-auto univer-overflow-x-hidden",N.scrollbarClassName),children:Y.map(y=>i.jsx(Ze,{unitId:t,subUnitId:n,item:y,isRoot:y.id===(l==null?void 0:l.root.id),editing:I===y.id,resolved:l==null?void 0:l.root.resolved,type:w,onClose:g,onEditingChange:P=>{T(P?y.id:"")},onReply:P=>{P&&requestAnimationFrame(()=>{var A;(A=B.current)==null||A.reply(We([{type:"mention",content:{id:P.userID,label:`@${P.name}`}},{type:"text",content:" "}]))})},onAddComment:f,onDeleteComment:C},y.id))}),ne&&i.jsx("div",{children:i.jsx(be,{ref:B,type:w,unitId:t,subUnitId:n,onSave:async({text:y,attachments:P})=>{const A={text:y,attachments:P,dT:V.getDT(),id:s.generateRandomId(),ref:o,personId:j==null?void 0:j.userID,parentId:l==null?void 0:l.root.id,unitId:t,subUnitId:n,threadId:l==null?void 0:l.root.threadId};(f==null?void 0:f(A))!==!1&&(await U.executeCommand(V.AddCommentCommand.id,{unitId:t,subUnitId:n,comment:A}),H.current&&(H.current.scrollTop=H.current.scrollHeight))},autoFocus:W||!l,onCancel:()=>{l||g==null||g()}},`${W}`)})]})},Fe=r=>{const{unitId:e,subUnitId$:t,type:n,onAdd:o,getSubUnitName:a,onResolve:v,sortComments:S,onItemLeave:g,onItemEnter:D,disableAdd:k,tempComment:W,onAddComment:$,onDeleteComment:_,showComments:f}=r,[C,M]=c.useState("all"),[w,Z]=c.useState("all"),x=m.useDependency(s.LocaleService),L=m.useDependency(s.UserManagerService),h=m.useDependency(V.ThreadCommentModel),[p,I]=c.useState(()=>h.getUnit(e)),T=m.useDependency(d.ThreadCommentPanelService),b=m.useObservable(T.activeCommentId$),l=m.useObservable(h.commentUpdate$),U=m.useDependency(s.ICommandService),z=m.useObservable(t),O=c.useRef(!0),j="panel",B=m.useObservable(L.currentUser$),Y=c.useMemo(()=>{var A;const u=C==="all"?p:(A=p.filter(E=>E.subUnitId===z))!=null?A:[],y=S!=null?S:(E=>E),P=u.map(E=>{var K;return{...E.root,children:(K=E.children)!=null?K:[],users:E.relativeUsers}});if(f){const E=new Map;return P.forEach(K=>{E.set(K.id,K)}),[...f,""].map(K=>E.get(K)).filter(Boolean)}else return y(P)},[f,C,p,S,z]),H=c.useMemo(()=>[...Y.filter(u=>!u.resolved),...Y.filter(u=>u.resolved)],[Y]),ee=c.useMemo(()=>w==="resolved"?H.filter(u=>u.resolved):w==="unsolved"?H.filter(u=>!u.resolved):w==="concern_me"&&B!=null&&B.userID?H.filter(u=>u==null?void 0:u.users.has(B.userID)):H,[H,B==null?void 0:B.userID,w]),R=W?[W,...ee]:ee,te=R.filter(u=>!u.resolved),ne=R.filter(u=>u.resolved),re=w!=="all"||C!=="all",ie=()=>{Z("all"),M("all")};c.useEffect(()=>{e&&I(h.getUnit(e))},[e,h,l]),c.useEffect(()=>{var E;if(!b)return;if(!O.current){O.current=!0;return}const{unitId:u,subUnitId:y,commentId:P}=b,A=`${j}-${u}-${y}-${P}`;(E=document.getElementById(A))==null||E.scrollIntoView({block:"center"})},[b]);const J=u=>i.jsx(ye,{prefix:j,getSubUnitName:a,id:u.id,unitId:u.unitId,subUnitId:u.subUnitId,refStr:u.ref,type:n,showEdit:(b==null?void 0:b.commentId)===u.id,showHighlight:(b==null?void 0:b.commentId)===u.id,onClick:()=>{O.current=!1,u.resolved?U.executeCommand(F.id):U.executeCommand(F.id,{unitId:u.unitId,subUnitId:u.subUnitId,commentId:u.id,temp:!1})},onMouseEnter:()=>D==null?void 0:D(u),onMouseLeave:()=>g==null?void 0:g(u),onAddComment:$,onDeleteComment:_,onResolve:y=>v==null?void 0:v(u.id,y)},u.id);return i.jsxs("div",{className:"univer-flex univer-min-h-full univer-flex-col univer-pb-3",children:[i.jsxs("div",{className:"univer-mt-3 univer-flex univer-flex-row univer-justify-between",children:[n===s.UniverInstanceType.UNIVER_SHEET?i.jsx(N.Select,{borderless:!0,value:C,options:[{value:"current",label:x.t("threadCommentUI.filter.sheet.current")},{value:"all",label:x.t("threadCommentUI.filter.sheet.all")}],onChange:M}):null,i.jsx(N.Select,{borderless:!0,value:w,options:[{value:"all",label:x.t("threadCommentUI.filter.status.all")},{value:"resolved",label:x.t("threadCommentUI.filter.status.resolved")},{value:"unsolved",label:x.t("threadCommentUI.filter.status.unsolved")},{value:"concern_me",label:x.t("threadCommentUI.filter.status.concernMe")}],onChange:Z})]}),R.length===0?i.jsxs("div",{className:"univer-flex univer-flex-1 univer-flex-col univer-items-center univer-justify-center univer-text-sm univer-text-gray-600 dark:!univer-text-gray-200",children:[x.t("threadCommentUI.panel.empty"),re?i.jsx("div",{className:"univer-mt-2 univer-flex univer-flex-row",children:i.jsx(N.Button,{onClick:ie,children:x.t("threadCommentUI.panel.reset")})}):k?null:i.jsx("div",{className:"univer-mt-2 univer-flex univer-flex-row",children:i.jsxs(N.Button,{onClick:o,children:[i.jsx(he,{className:"univer-mr-1.5"}),x.t("threadCommentUI.panel.addComment")]})})]}):i.jsxs("div",{className:"univer-mt-3 univer-flex univer-flex-col univer-gap-3",children:[te.map(J),ne.length>0&&i.jsx("div",{className:"univer-text-xs",children:x.t("threadCommentUI.panel.solved")}),ne.map(J)]})]})};d.SetActiveCommentOperation=F,d.THREAD_COMMENT_PANEL=le,d.ThreadCommentPanel=Fe,d.ThreadCommentTree=ye,d.ToggleSheetCommentPanelOperation=de,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
// @univerjs/sheets-thread-comment-ui/index
|
|
21
|
-
(function(c,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@univerjs/core"),require("@univerjs/sheets"),require("@univerjs/sheets-thread-comment"),require("@univerjs/thread-comment-ui"),require("@univerjs/sheets-ui"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/engine-render"),require("@univerjs/engine-formula"),require("@univerjs/thread-comment"),require("react"),require("react/jsx-runtime")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/sheets","@univerjs/sheets-thread-comment","@univerjs/thread-comment-ui","@univerjs/sheets-ui","@univerjs/ui","rxjs","@univerjs/engine-render","@univerjs/engine-formula","@univerjs/thread-comment","react","react/jsx-runtime"],a):(c=typeof globalThis<"u"?globalThis:c||self,a(c.UniverSheetsThreadCommentUi={},c.UniverCore,c.UniverSheets,c.UniverSheetsThreadComment,c.UniverThreadCommentUi,c.UniverSheetsUi,c.UniverUi,c.rxjs,c.UniverEngineRender,c.UniverEngineFormula,c.UniverThreadComment,c.React,c.React))})(this,(function(c,a,v,D,I,g,h,V,X,N,b,O,ee){"use strict";var Ae=Object.defineProperty;var Ve=(c,a,v)=>a in c?Ae(c,a,{enumerable:!0,configurable:!0,writable:!0,value:v}):c[a]=v;var k=(c,a,v)=>Ve(c,typeof a!="symbol"?a+"":a,v);const te="univer.sheet.thread-comment-modal",G="SHEET_THREAD_COMMENT";var ce=Object.getOwnPropertyDescriptor,me=(r,t,n,e)=>{for(var i=e>1?void 0:e?ce(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},z=(r,t)=>(n,e)=>t(n,e,r);c.SheetsThreadCommentPopupService=class extends a.Disposable{constructor(n,e,i){super();k(this,"_lastPopup",null);k(this,"_activePopup");k(this,"_activePopup$",new V.BehaviorSubject(null));k(this,"activePopup$",this._activePopup$.asObservable());this._canvasPopupManagerService=n,this._zenZoneService=e,this._cellPopupManagerService=i,this._initZenVisible(),this.disposeWithMe(()=>{this._activePopup$.complete()})}get activePopup(){return this._activePopup}_initZenVisible(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(n=>{n&&this.hidePopup()}))}dispose(){super.dispose(),this.hidePopup()}showPopup(n,e){var p;const{row:i,col:o,unitId:s,subUnitId:m}=n;if(this._activePopup&&i===this._activePopup.row&&o===this._activePopup.col&&s===this._activePopup.unitId&&m===((p=this.activePopup)==null?void 0:p.subUnitId)){this._activePopup=n,this._activePopup$.next(n);return}if(this._lastPopup&&this._lastPopup.dispose(),this._zenZoneService.visible)return;this._activePopup=n,this._activePopup$.next(n);const d=this._cellPopupManagerService.showPopup({row:i,col:o,unitId:s,subUnitId:m},{componentKey:te,onClickOutside:()=>{this.hidePopup()},direction:"horizontal",excludeOutside:[...Array.from(document.querySelectorAll(".univer-thread-comment")),document.getElementById("thread-comment-add")].filter(Boolean),priority:2});if(!d)throw new Error("[SheetsThreadCommentPopupService]: cannot show popup!");const u=new a.DisposableCollection;u.add(d),u.add({dispose:()=>{e==null||e()}}),this._lastPopup=u}hidePopup(){this._activePopup&&(this._lastPopup&&this._lastPopup.dispose(),this._lastPopup=null,this._activePopup=null,this._activePopup$.next(null))}persistPopup(){!this._activePopup||!this._activePopup.temp||(this._activePopup={...this._activePopup,temp:!1},this._activePopup$.next(this._activePopup))}},c.SheetsThreadCommentPopupService=me([z(0,a.Inject(g.SheetCanvasPopManagerService)),z(1,h.IZenZoneService),z(2,a.Inject(g.CellPopupManagerService))],c.SheetsThreadCommentPopupService);const A={type:a.CommandType.OPERATION,id:"sheets.operation.show-comment-modal",handler(r){var f;const t=r.get(v.SheetsSelectionsService),n=r.get(a.IUniverInstanceService),e=r.get(c.SheetsThreadCommentPopupService),i=r.get(I.ThreadCommentPanelService),o=(f=t.getCurrentLastSelection())==null?void 0:f.primary,s=r.get(D.SheetsThreadCommentModel);if(!o)return!1;const m=v.getSheetCommandTarget(n);if(!m)return!1;const{workbook:d,worksheet:u,unitId:p,subUnitId:l}=m,_={workbook:d,worksheet:u,unitId:p,subUnitId:l,row:o.startRow,col:o.startColumn};e.showPopup(_);const C=s.getByLocation(p,l,o.startRow,o.startColumn);return C&&i.setActiveComment({unitId:p,subUnitId:l,commentId:C,trigger:"context-menu"}),!0}},de="sheets-thread-comment.config",ne={};var ue=Object.getOwnPropertyDescriptor,he=(r,t,n,e)=>{for(var i=e>1?void 0:e?ue(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},B=(r,t)=>(n,e)=>t(n,e,r);let L=class extends a.Disposable{constructor(r,t,n,e){super(),this._sheetInterceptorService=r,this._sheetsThreadCommentModel=t,this._univerInstanceService=n,this._renderManagerService=e,this._initViewModelIntercept(),this._initSkeletonChange()}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(v.INTERCEPTOR_POINT.CELL_CONTENT,{effect:a.InterceptorEffectEnum.Style,handler:(r,t,n)=>{const{row:e,col:i,unitId:o,subUnitId:s}=t;return this._sheetsThreadCommentModel.showCommentMarker(o,s,e,i)&&((!r||r===t.rawData)&&(r={...t.rawData}),r.markers={...r==null?void 0:r.markers,tr:{color:"#FFBD37",size:6}}),n(r)},priority:100}))}_initSkeletonChange(){const r=()=>{var i;const t=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!t)return;const n=t.getUnitId(),e=this._renderManagerService.getRenderById(n);(i=e==null?void 0:e.mainComponent)==null||i.makeForceDirty()};this.disposeWithMe(this._sheetsThreadCommentModel.commentUpdate$.pipe(V.debounceTime(16)).subscribe(()=>{r()}))}};L=he([B(0,a.Inject(v.SheetInterceptorService)),B(1,a.Inject(D.SheetsThreadCommentModel)),B(2,a.IUniverInstanceService),B(3,X.IRenderManagerService)],L);var le=Object.getOwnPropertyDescriptor,pe=(r,t,n,e)=>{for(var i=e>1?void 0:e?le(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},K=(r,t)=>(n,e)=>t(n,e,r);const ve=(r,t,n)=>{const e=N.singleReferenceToGrid(r),i=n.row-t.row,o=n.column-t.column,s={startColumn:e.column+o,startRow:e.row+i,endColumn:e.column+o,endRow:e.row+i};return N.serializeRange(s)};let W=class extends a.Disposable{constructor(t,n,e){super();k(this,"_copyInfo");this._sheetClipboardService=t,this._sheetsThreadCommentModel=n,this._threadCommentDataSourceService=e,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:G,onBeforeCopy:(t,n,e)=>{this._copyInfo={unitId:t,subUnitId:n,range:e}},onPasteCells:(t,n,e,i)=>{const{unitId:o,subUnitId:s,range:m}=n,d={row:m.rows[0],column:m.cols[0]};if(i.copyType===g.COPY_TYPE.CUT&&this._copyInfo){const{range:u,unitId:p,subUnitId:l}=this._copyInfo,_={row:u.startRow,column:u.startColumn};if(!(o===p&&s===l)){const C=[];a.Range.foreach(u,(y,S)=>{const w=this._sheetsThreadCommentModel.getAllByLocation(p,l,y,S);this._threadCommentDataSourceService.syncUpdateMutationToColla?w.forEach(P=>{C.push(P)}):w.forEach(({children:P,...U})=>{U.parentId||C.push(U)})});const f=[],M=[],$=[],H=[],Q=y=>{f.unshift({id:b.DeleteCommentMutation.id,params:{unitId:p,subUnitId:l,commentId:y.id}}),$.push({id:b.AddCommentMutation.id,params:{unitId:o,subUnitId:s,comment:{...y,ref:ve(y.ref,_,d),unitId:o,subUnitId:s},sync:!0}}),M.push({id:b.AddCommentMutation.id,params:{unitId:p,subUnitId:l,comment:y,sync:!0}}),H.unshift({id:b.DeleteCommentMutation.id,params:{unitId:o,subUnitId:s,commentId:y.id}})};return C.forEach(y=>{Q(y)}),{redos:[...f,...$],undos:[...H,...M]}}}return{redos:[],undos:[]}}}))}};W=pe([K(0,a.Inject(g.ISheetClipboardService)),K(1,a.Inject(D.SheetsThreadCommentModel)),K(2,b.IThreadCommentDataSourceService)],W);var Se=Object.getOwnPropertyDescriptor,Ce=(r,t,n,e)=>{for(var i=e>1?void 0:e?Se(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},x=(r,t)=>(n,e)=>t(n,e,r);let F=class extends a.Disposable{constructor(r,t,n,e){super(),this._hoverManagerService=r,this._sheetsThreadCommentPopupService=t,this._sheetsThreadCommentModel=n,this._sheetPermissionCheckController=e,this._initHoverEvent()}_initHoverEvent(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(V.debounceTime(100)).subscribe(r=>{const t=this._sheetsThreadCommentPopupService.activePopup;if(r&&(t&&t.temp||!t)){const{location:n}=r,{unitId:e,subUnitId:i,row:o,col:s}=n,m=this._sheetsThreadCommentModel.getByLocation(e,i,o,s);if(m){if(!this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[v.WorkbookCommentPermission],worksheetTypes:[v.WorksheetViewPermission],rangeTypes:[v.RangeProtectionPermissionViewPoint]},[{startRow:o,startColumn:s,endRow:o,endColumn:s}],e,i))return;const u=this._sheetsThreadCommentModel.getComment(e,i,m);u&&!u.resolved&&this._sheetsThreadCommentPopupService.showPopup({unitId:e,subUnitId:i,row:o,col:s,commentId:m,temp:!0})}else t&&this._sheetsThreadCommentPopupService.hidePopup()}}))}};F=Ce([x(0,a.Inject(g.HoverManagerService)),x(1,a.Inject(c.SheetsThreadCommentPopupService)),x(2,a.Inject(D.SheetsThreadCommentModel)),x(3,a.Inject(v.SheetPermissionCheckController))],F);var _e=Object.getOwnPropertyDescriptor,fe=(r,t,n,e)=>{for(var i=e>1?void 0:e?_e(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},R=(r,t)=>(n,e)=>t(n,e,r);let Z=class extends a.Disposable{constructor(t,n,e,i,o,s,m,d,u,p){super();k(this,"_isSwitchToCommenting",!1);k(this,"_selectionShapeInfo",null);this._commandService=t,this._sheetsThreadCommentPopupService=n,this._sheetsThreadCommentModel=e,this._threadCommentPanelService=i,this._univerInstanceService=o,this._sheetPermissionCheckController=s,this._markSelectionService=m,this._sheetSelectionService=d,this._editorBridgeService=u,this._renderManagerService=p,this._initCommandListener(),this._initPanelListener(),this._initMarkSelection(),this._initSelectionUpdateListener(),this._initEditorBridge()}_handleSelectionChange(t,n,e){var _,C,f;const i=(_=t[0])==null?void 0:_.range,o=this._renderManagerService.getRenderById(n),s=(C=o==null?void 0:o.with(g.SheetSkeletonManagerService).getSkeletonParam(e))==null?void 0:C.skeleton;if(!s||!i)return;const m=s.getCellWithCoordByIndex(i.startRow,i.startColumn);if((((f=i.rangeType)!=null?f:a.RANGE_TYPE.NORMAL)!==a.RANGE_TYPE.NORMAL||i.endColumn-i.startColumn>0||i.endRow-i.startRow>0)&&!((m.isMerged||m.isMergedMainCell)&&a.Rectangle.equals(m.mergeInfo,i))){this._threadCommentPanelService.activeCommentId&&this._commandService.executeCommand(I.SetActiveCommentOperation.id);return}const u=m.actualRow,p=m.actualColumn;if(!this._sheetsThreadCommentModel.showCommentMarker(n,e,u,p)){this._threadCommentPanelService.activeCommentId&&this._commandService.executeCommand(I.SetActiveCommentOperation.id);return}const l=this._sheetsThreadCommentModel.getByLocation(n,e,u,p);l&&this._commandService.executeCommand(I.SetActiveCommentOperation.id,{unitId:n,subUnitId:e,commentId:l})}_initSelectionUpdateListener(){this.disposeWithMe(this._sheetSelectionService.selectionMoveEnd$.subscribe(t=>{if(this._isSwitchToCommenting)return;const n=this._sheetSelectionService.currentSelectionParam;n&&this._handleSelectionChange(t,n.unitId,n.sheetId)}))}_initEditorBridge(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(t=>{t.visible&&this._sheetsThreadCommentPopupService.hidePopup()}))}_initCommandListener(){this._commandService.onCommandExecuted(t=>{if(t.id===b.DeleteCommentMutation.id){const n=t.params,e=this._sheetsThreadCommentPopupService.activePopup;if(!e)return;const{unitId:i,subUnitId:o,commentId:s}=e;n.unitId===i&&n.subUnitId===o&&n.commentId===s&&this._sheetsThreadCommentPopupService.hidePopup()}})}_initPanelListener(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(async t=>{var n;if(t){const{unitId:e,subUnitId:i,commentId:o,trigger:s}=t,m=this._sheetsThreadCommentModel.getComment(e,i,o);if(!m||m.resolved)return;const d=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!d||d.getUnitId()!==e)return;this._isSwitchToCommenting=!0,((n=d.getActiveSheet())==null?void 0:n.getSheetId())!==i&&await this._commandService.executeCommand(v.SetWorksheetActiveOperation.id,{unitId:e,subUnitId:i}),this._isSwitchToCommenting=!1;const l=N.singleReferenceToGrid(m.ref),{row:_,column:C}=l;if(!this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[v.WorkbookCommentPermission],worksheetTypes:[v.WorksheetViewPermission],rangeTypes:[v.RangeProtectionPermissionViewPoint]},[{startRow:_,startColumn:C,endRow:_,endColumn:C}],e,i))return;const M=1;if(await this._commandService.executeCommand(g.ScrollToRangeOperation.id,{range:{startRow:Math.max(l.row-M,0),endRow:l.row+M,startColumn:Math.max(l.column-M,0),endColumn:l.column+M}}),this._editorBridgeService.isVisible().visible)return;this._sheetsThreadCommentPopupService.showPopup({unitId:e,subUnitId:i,row:l.row,col:l.column,commentId:m.id,trigger:s})}else this._sheetsThreadCommentPopupService.hidePopup()}))}_initMarkSelection(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.pipe(V.debounceTime(100)).subscribe(t=>{var _,C;if(!t){this._selectionShapeInfo&&(this._markSelectionService.removeShape(this._selectionShapeInfo.shapeId),this._selectionShapeInfo=null);return}const{unitId:n,subUnitId:e,commentId:i}=t;this._selectionShapeInfo&&(this._markSelectionService.removeShape(this._selectionShapeInfo.shapeId),this._selectionShapeInfo=null);const o=this._sheetsThreadCommentModel.getComment(n,e,i);if(!o)return;const s=N.singleReferenceToGrid(o.ref),{row:m,column:d}=s;if(Number.isNaN(m)||Number.isNaN(d))return null;const u=(_=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:_.getSheetBySheetId(e),p=(C=u==null?void 0:u.getMergedCell(m,d))!=null?C:{startColumn:d,endColumn:d,startRow:m,endRow:m},l=this._markSelectionService.addShape({range:p,style:{fill:"rgba(255, 189, 55, 0.35)",strokeWidth:1,stroke:"#FFBD37",widgets:{}},primary:null},[],-1);l&&(this._selectionShapeInfo={...t,shapeId:l})}))}};Z=fe([R(0,a.ICommandService),R(1,a.Inject(c.SheetsThreadCommentPopupService)),R(2,a.Inject(D.SheetsThreadCommentModel)),R(3,a.Inject(I.ThreadCommentPanelService)),R(4,a.IUniverInstanceService),R(5,a.Inject(v.SheetPermissionCheckController)),R(6,g.IMarkSelectionService),R(7,a.Inject(v.SheetsSelectionsService)),R(8,g.IEditorBridgeService),R(9,X.IRenderManagerService)],Z);function re({ref:r,...t}){const{icon:n,id:e,className:i,extend:o,...s}=t,m=`univerjs-icon univerjs-icon-${e} ${i||""}`.trim(),d=O.useRef(`_${Pe()}`);return ie(n,`${e}`,{defIds:n.defIds,idSuffix:d.current},{ref:r,className:m,...s},o)}function ie(r,t,n,e,i){return O.createElement(r.tag,{key:t,...Ie(r,n,i),...e},(ge(r,n).children||[]).map((o,s)=>ie(o,`${t}-${r.tag}-${s}`,n,void 0,i)))}function Ie(r,t,n){const e={...r.attrs};n!=null&&n.colorChannel1&&e.fill==="colorChannel1"&&(e.fill=n.colorChannel1),r.tag==="mask"&&e.id&&(e.id=e.id+t.idSuffix),Object.entries(e).forEach(([o,s])=>{o==="mask"&&typeof s=="string"&&(e[o]=s.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});const{defIds:i}=t;return!i||i.length===0||(r.tag==="use"&&e["xlink:href"]&&(e["xlink:href"]=e["xlink:href"]+t.idSuffix),Object.entries(e).forEach(([o,s])=>{typeof s=="string"&&(e[o]=s.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))})),e}function ge(r,t){var e;const{defIds:n}=t;return!n||n.length===0?r:r.tag==="defs"&&((e=r.children)!=null&&e.length)?{...r,children:r.children.map(i=>typeof i.attrs.id=="string"&&n&&n.includes(i.attrs.id)?{...i,attrs:{...i.attrs,id:i.attrs.id+t.idSuffix}}:i)}:r}function Pe(){return Math.random().toString(36).substring(2,8)}re.displayName="UniverIcon";const Te={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",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.13521C5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M8.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.78345Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M11.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"}},{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"}}]},oe=O.forwardRef(function(t,n){return O.createElement(re,Object.assign({},t,{id:"comment-icon",ref:n,icon:Te}))});oe.displayName="CommentIcon";const be=()=>{const r=h.useDependency(a.IUniverInstanceService),t=h.useDependency(c.SheetsThreadCommentPopupService),n=h.useObservable(t.activePopup$),e=h.useDependency(D.SheetsThreadCommentModel);if(h.useObservable(e.commentUpdate$),!n)return null;const{row:i,col:o,unitId:s,subUnitId:m,trigger:d}=n,u=e.getByLocation(s,m,i,o),p=`${a.Tools.chatAtABC(o)}${i+1}`,l=()=>{t.hidePopup()},_=C=>{var f,M,$;return($=(M=(f=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:f.getSheetBySheetId(C))==null?void 0:M.getName())!=null?$:""};return ee.jsx(I.ThreadCommentTree,{onClick:()=>{t.persistPopup()},prefix:"cell",id:u,unitId:s,subUnitId:m,type:a.UniverInstanceType.UNIVER_SHEET,refStr:p,onClose:l,getSubUnitName:_,autoFocus:d==="context-menu"})},Me=()=>{var y;const r=h.useDependency(g.IMarkSelectionService),t=h.useDependency(a.IUniverInstanceService),n=h.useDependency(c.SheetsThreadCommentPopupService),e=t.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),i=e.getUnitId(),o=h.useDependency(a.ICommandService),s=O.useMemo(()=>e.activeSheet$.pipe(V.map(S=>S==null?void 0:S.getSheetId())),[e.activeSheet$]),m=h.useObservable(s,(y=e.getActiveSheet())==null?void 0:y.getSheetId()),d=O.useRef(null),u=h.useDependency(I.ThreadCommentPanelService),p=h.useObservable(u.activeCommentId$),l=h.useObservable(u.panelVisible$,u.panelVisible),_=O.useCallback(S=>{const w=e.getSheets(),P={};w.forEach((E,T)=>{P[E.getSheetId()]=T});const U=E=>E.map(T=>{var ae;const j=N.singleReferenceToGrid(T.ref),Ne=[(ae=P[T.subUnitId])!=null?ae:0,j.row,j.column];return{...T,p:Ne}}).sort((T,j)=>T.p[0]===j.p[0]?T.p[1]===j.p[1]?T.p[2]-j.p[2]:T.p[1]-j.p[1]:T.p[0]-j.p[0]);return[...U(S.filter(E=>!E.resolved)),...U(S.filter(E=>E.resolved))]},[e]),C=O.useCallback(S=>{var w;if(S.unitId===i&&S.subUnitId===m&&!S.resolved){const{row:P,column:U}=N.singleReferenceToGrid(S.ref),E=e.getSheetBySheetId(S.subUnitId),T=(w=E==null?void 0:E.getMergedCell(P,U))!=null?w:{startColumn:U,endColumn:U,startRow:P,endRow:P};if(!Number.isNaN(P)&&!Number.isNaN(U))return r.addShape({range:T,style:{fill:"rgb(255, 189, 55, 0.35)",strokeWidth:1,stroke:"#FFBD37",widgets:{}},primary:null})}return null},[r,m,i]),f=S=>{var w,P;return(P=(w=e.getSheetBySheetId(S))==null?void 0:w.getName())!=null?P:""},M=()=>{o.executeCommand(A.id)},$=S=>{p&&p.unitId===S.unitId&&p.subUnitId===S.subUnitId&&p.commentId===S.id||(d.current&&(r.removeShape(d.current),d.current=null),d.current=C(S))},H=()=>{d.current&&(r.removeShape(d.current),d.current=null)},Q=(S,w)=>{w&&n.hidePopup()};return O.useEffect(()=>{!l&&d.current&&r.removeShape(d.current)},[r,l]),ee.jsx(I.ThreadCommentPanel,{unitId:i,subUnitId$:s,type:a.UniverInstanceType.UNIVER_SHEET,onAdd:M,getSubUnitName:f,onResolve:Q,sortComments:_,onItemEnter:$,onItemLeave:H,onDeleteComment:()=>(H(),!0)})},ye=r=>({id:A.id,type:h.MenuItemType.BUTTON,icon:"CommentIcon",title:"sheetThreadComment.menu.addComment",hidden$:h.getMenuHiddenObservable(r,a.UniverInstanceType.UNIVER_SHEET),disabled$:g.getCurrentRangeDisable$(r,{workbookTypes:[v.WorkbookCommentPermission],worksheetTypes:[v.WorksheetViewPermission],rangeTypes:[v.RangeProtectionPermissionViewPoint]})}),we=r=>({id:I.ToggleSheetCommentPanelOperation.id,type:h.MenuItemType.BUTTON,icon:"CommentIcon",tooltip:"sheetThreadComment.menu.commentManagement",disabled$:g.getCurrentRangeDisable$(r,{workbookTypes:[v.WorkbookCommentPermission],worksheetTypes:[v.WorksheetViewPermission],rangeTypes:[v.RangeProtectionPermissionViewPoint]}),hidden$:h.getMenuHiddenObservable(r,a.UniverInstanceType.UNIVER_SHEET)}),Ee={id:A.id,binding:h.KeyCode.M|h.MetaKeys.CTRL_COMMAND|h.MetaKeys.ALT,preconditions:g.whenSheetEditorFocused},Re={[h.RibbonInsertGroup.MEDIA]:{[I.ToggleSheetCommentPanelOperation.id]:{order:2,menuItemFactory:we}},[h.ContextMenuPosition.MAIN_AREA]:{[h.ContextMenuGroup.OTHERS]:{[A.id]:{order:0,menuItemFactory:ye}}}};var Ue=Object.getOwnPropertyDescriptor,Oe=(r,t,n,e)=>{for(var i=e>1?void 0:e?Ue(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},Y=(r,t)=>(n,e)=>t(n,e,r);let q=class extends a.Disposable{constructor(r,t,n){super(),this._menuManagerService=r,this._componentManager=t,this._shortcutService=n,this._initMenu(),this._initShortcut(),this._initComponent()}_initShortcut(){this._shortcutService.registerShortcut(Ee)}_initMenu(){this._menuManagerService.mergeMenu(Re)}_initComponent(){[[te,be],[I.THREAD_COMMENT_PANEL,Me],["CommentIcon",oe]].forEach(([r,t])=>{this.disposeWithMe(this._componentManager.register(r,t))})}};q=Oe([Y(0,h.IMenuManagerService),Y(1,a.Inject(h.ComponentManager)),Y(2,h.IShortcutService)],q);var je=Object.defineProperty,ke=Object.getOwnPropertyDescriptor,De=(r,t,n)=>t in r?je(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,$e=(r,t,n,e)=>{for(var i=e>1?void 0:e?ke(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},J=(r,t)=>(n,e)=>t(n,e,r),se=(r,t,n)=>De(r,typeof t!="symbol"?t+"":t,n);c.UniverSheetsThreadCommentUIPlugin=class extends a.Plugin{constructor(t=ne,n,e,i){super(),this._config=t,this._injector=n,this._commandService=e,this._configService=i;const{menu:o,...s}=a.merge({},ne,this._config);o&&this._configService.setConfig("menu",o,{merge:!0}),this._configService.setConfig(de,s)}onStarting(){[[q],[L],[W],[F],[Z],[c.SheetsThreadCommentPopupService]].forEach(t=>{this._injector.add(t)}),[A].forEach(t=>{this._commandService.registerCommand(t)}),this._injector.get(q)}onReady(){this._injector.get(L)}onRendered(){this._injector.get(W),this._injector.get(F),this._injector.get(Z)}},se(c.UniverSheetsThreadCommentUIPlugin,"pluginName",G),se(c.UniverSheetsThreadCommentUIPlugin,"type",a.UniverInstanceType.UNIVER_SHEET),c.UniverSheetsThreadCommentUIPlugin=$e([a.DependentOn(I.UniverThreadCommentUIPlugin,D.UniverSheetsThreadCommentPlugin),J(1,a.Inject(a.Injector)),J(2,a.Inject(a.ICommandService)),J(3,a.IConfigService)],c.UniverSheetsThreadCommentUIPlugin),Object.defineProperty(c,"UniverThreadCommentUIPlugin",{enumerable:!0,get:()=>I.UniverThreadCommentUIPlugin}),Object.defineProperty(c,"AddCommentCommand",{enumerable:!0,get:()=>b.AddCommentCommand}),Object.defineProperty(c,"DeleteCommentCommand",{enumerable:!0,get:()=>b.DeleteCommentCommand}),Object.defineProperty(c,"DeleteCommentTreeCommand",{enumerable:!0,get:()=>b.DeleteCommentTreeCommand}),Object.defineProperty(c,"IThreadCommentDataSourceService",{enumerable:!0,get:()=>b.IThreadCommentDataSourceService}),Object.defineProperty(c,"ResolveCommentCommand",{enumerable:!0,get:()=>b.ResolveCommentCommand}),Object.defineProperty(c,"UpdateCommentCommand",{enumerable:!0,get:()=>b.UpdateCommentCommand}),c.SHEETS_THREAD_COMMENT=G,c.ShowAddSheetCommentModalOperation=A,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
|
|
21
|
+
(function(c,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@univerjs/core"),require("@univerjs/sheets"),require("@univerjs/sheets-thread-comment"),require("@univerjs/thread-comment-ui"),require("@univerjs/sheets-ui"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/engine-render"),require("@univerjs/engine-formula"),require("@univerjs/thread-comment"),require("react"),require("react/jsx-runtime")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/sheets","@univerjs/sheets-thread-comment","@univerjs/thread-comment-ui","@univerjs/sheets-ui","@univerjs/ui","rxjs","@univerjs/engine-render","@univerjs/engine-formula","@univerjs/thread-comment","react","react/jsx-runtime"],a):(c=typeof globalThis<"u"?globalThis:c||self,a(c.UniverSheetsThreadCommentUi={},c.UniverCore,c.UniverSheets,c.UniverSheetsThreadComment,c.UniverThreadCommentUi,c.UniverSheetsUi,c.UniverUi,c.rxjs,c.UniverEngineRender,c.UniverEngineFormula,c.UniverThreadComment,c.React,c.React))})(this,(function(c,a,v,D,I,g,h,V,ee,N,b,O,te){"use strict";var Ve=Object.defineProperty;var He=(c,a,v)=>a in c?Ve(c,a,{enumerable:!0,configurable:!0,writable:!0,value:v}):c[a]=v;var k=(c,a,v)=>He(c,typeof a!="symbol"?a+"":a,v);const ne="univer.sheet.thread-comment-modal",z="SHEET_THREAD_COMMENT";var me=Object.getOwnPropertyDescriptor,de=(r,t,n,e)=>{for(var i=e>1?void 0:e?me(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},K=(r,t)=>(n,e)=>t(n,e,r);c.SheetsThreadCommentPopupService=class extends a.Disposable{constructor(n,e,i){super();k(this,"_lastPopup",null);k(this,"_activePopup");k(this,"_activePopup$",new V.BehaviorSubject(null));k(this,"activePopup$",this._activePopup$.asObservable());this._canvasPopupManagerService=n,this._zenZoneService=e,this._cellPopupManagerService=i,this._initZenVisible(),this.disposeWithMe(()=>{this._activePopup$.complete()})}get activePopup(){return this._activePopup}_initZenVisible(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(n=>{n&&this.hidePopup()}))}dispose(){super.dispose(),this.hidePopup()}showPopup(n,e){var p;const{row:i,col:o,unitId:s,subUnitId:m}=n;if(this._activePopup&&i===this._activePopup.row&&o===this._activePopup.col&&s===this._activePopup.unitId&&m===((p=this.activePopup)==null?void 0:p.subUnitId)){this._activePopup=n,this._activePopup$.next(n);return}if(this._lastPopup&&this._lastPopup.dispose(),this._zenZoneService.visible)return;this._activePopup=n,this._activePopup$.next(n);const d=this._cellPopupManagerService.showPopup({row:i,col:o,unitId:s,subUnitId:m},{componentKey:ne,onClickOutside:()=>{this.hidePopup()},direction:"horizontal",excludeOutside:[...Array.from(document.querySelectorAll(".univer-thread-comment")),document.getElementById("thread-comment-add")].filter(Boolean),priority:2});if(!d)throw new Error("[SheetsThreadCommentPopupService]: cannot show popup!");const u=new a.DisposableCollection;u.add(d),u.add({dispose:()=>{e==null||e()}}),this._lastPopup=u}hidePopup(){this._activePopup&&(this._lastPopup&&this._lastPopup.dispose(),this._lastPopup=null,this._activePopup=null,this._activePopup$.next(null))}persistPopup(){!this._activePopup||!this._activePopup.temp||(this._activePopup={...this._activePopup,temp:!1},this._activePopup$.next(this._activePopup))}},c.SheetsThreadCommentPopupService=de([K(0,a.Inject(g.SheetCanvasPopManagerService)),K(1,h.IZenZoneService),K(2,a.Inject(g.CellPopupManagerService))],c.SheetsThreadCommentPopupService);const A={type:a.CommandType.OPERATION,id:"sheets.operation.show-comment-modal",handler(r){var f;const t=r.get(v.SheetsSelectionsService),n=r.get(a.IUniverInstanceService),e=r.get(c.SheetsThreadCommentPopupService),i=r.get(I.ThreadCommentPanelService),o=(f=t.getCurrentLastSelection())==null?void 0:f.primary,s=r.get(D.SheetsThreadCommentModel);if(!o)return!1;const m=v.getSheetCommandTarget(n);if(!m)return!1;const{workbook:d,worksheet:u,unitId:p,subUnitId:l}=m,_={workbook:d,worksheet:u,unitId:p,subUnitId:l,row:o.startRow,col:o.startColumn};e.showPopup(_);const C=s.getByLocation(p,l,o.startRow,o.startColumn);return C&&i.setActiveComment({unitId:p,subUnitId:l,commentId:C,trigger:"context-menu"}),!0}},re={name:"@univerjs/sheets-thread-comment-ui",version:"0.17.0"},ue="sheets-thread-comment.config",ie={};var he=Object.getOwnPropertyDescriptor,le=(r,t,n,e)=>{for(var i=e>1?void 0:e?he(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},B=(r,t)=>(n,e)=>t(n,e,r);let L=class extends a.Disposable{constructor(r,t,n,e){super(),this._sheetInterceptorService=r,this._sheetsThreadCommentModel=t,this._univerInstanceService=n,this._renderManagerService=e,this._initViewModelIntercept(),this._initSkeletonChange()}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(v.INTERCEPTOR_POINT.CELL_CONTENT,{effect:a.InterceptorEffectEnum.Style,handler:(r,t,n)=>{const{row:e,col:i,unitId:o,subUnitId:s}=t;return this._sheetsThreadCommentModel.showCommentMarker(o,s,e,i)&&((!r||r===t.rawData)&&(r={...t.rawData}),r.markers={...r==null?void 0:r.markers,tr:{color:"#FFBD37",size:6}}),n(r)},priority:100}))}_initSkeletonChange(){const r=()=>{var i;const t=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!t)return;const n=t.getUnitId(),e=this._renderManagerService.getRenderById(n);(i=e==null?void 0:e.mainComponent)==null||i.makeForceDirty()};this.disposeWithMe(this._sheetsThreadCommentModel.commentUpdate$.pipe(V.debounceTime(16)).subscribe(()=>{r()}))}};L=le([B(0,a.Inject(v.SheetInterceptorService)),B(1,a.Inject(D.SheetsThreadCommentModel)),B(2,a.IUniverInstanceService),B(3,ee.IRenderManagerService)],L);var pe=Object.getOwnPropertyDescriptor,ve=(r,t,n,e)=>{for(var i=e>1?void 0:e?pe(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},Y=(r,t)=>(n,e)=>t(n,e,r);const Se=(r,t,n)=>{const e=N.singleReferenceToGrid(r),i=n.row-t.row,o=n.column-t.column,s={startColumn:e.column+o,startRow:e.row+i,endColumn:e.column+o,endRow:e.row+i};return N.serializeRange(s)};let W=class extends a.Disposable{constructor(t,n,e){super();k(this,"_copyInfo");this._sheetClipboardService=t,this._sheetsThreadCommentModel=n,this._threadCommentDataSourceService=e,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:z,onBeforeCopy:(t,n,e)=>{this._copyInfo={unitId:t,subUnitId:n,range:e}},onPasteCells:(t,n,e,i)=>{const{unitId:o,subUnitId:s,range:m}=n,d={row:m.rows[0],column:m.cols[0]};if(i.copyType===g.COPY_TYPE.CUT&&this._copyInfo){const{range:u,unitId:p,subUnitId:l}=this._copyInfo,_={row:u.startRow,column:u.startColumn};if(!(o===p&&s===l)){const C=[];a.Range.foreach(u,(y,S)=>{const w=this._sheetsThreadCommentModel.getAllByLocation(p,l,y,S);this._threadCommentDataSourceService.syncUpdateMutationToColla?w.forEach(P=>{C.push(P)}):w.forEach(({children:P,...R})=>{R.parentId||C.push(R)})});const f=[],M=[],$=[],H=[],X=y=>{f.unshift({id:b.DeleteCommentMutation.id,params:{unitId:p,subUnitId:l,commentId:y.id}}),$.push({id:b.AddCommentMutation.id,params:{unitId:o,subUnitId:s,comment:{...y,ref:Se(y.ref,_,d),unitId:o,subUnitId:s},sync:!0}}),M.push({id:b.AddCommentMutation.id,params:{unitId:p,subUnitId:l,comment:y,sync:!0}}),H.unshift({id:b.DeleteCommentMutation.id,params:{unitId:o,subUnitId:s,commentId:y.id}})};return C.forEach(y=>{X(y)}),{redos:[...f,...$],undos:[...H,...M]}}}return{redos:[],undos:[]}}}))}};W=ve([Y(0,a.Inject(g.ISheetClipboardService)),Y(1,a.Inject(D.SheetsThreadCommentModel)),Y(2,b.IThreadCommentDataSourceService)],W);var Ce=Object.getOwnPropertyDescriptor,_e=(r,t,n,e)=>{for(var i=e>1?void 0:e?Ce(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},F=(r,t)=>(n,e)=>t(n,e,r);let x=class extends a.Disposable{constructor(r,t,n,e){super(),this._hoverManagerService=r,this._sheetsThreadCommentPopupService=t,this._sheetsThreadCommentModel=n,this._sheetPermissionCheckController=e,this._initHoverEvent()}_initHoverEvent(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(V.debounceTime(100)).subscribe(r=>{const t=this._sheetsThreadCommentPopupService.activePopup;if(r&&(t&&t.temp||!t)){const{location:n}=r,{unitId:e,subUnitId:i,row:o,col:s}=n,m=this._sheetsThreadCommentModel.getByLocation(e,i,o,s);if(m){if(!this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[v.WorkbookCommentPermission],worksheetTypes:[v.WorksheetViewPermission],rangeTypes:[v.RangeProtectionPermissionViewPoint]},[{startRow:o,startColumn:s,endRow:o,endColumn:s}],e,i))return;const u=this._sheetsThreadCommentModel.getComment(e,i,m);u&&!u.resolved&&this._sheetsThreadCommentPopupService.showPopup({unitId:e,subUnitId:i,row:o,col:s,commentId:m,temp:!0})}else t&&this._sheetsThreadCommentPopupService.hidePopup()}}))}};x=_e([F(0,a.Inject(g.HoverManagerService)),F(1,a.Inject(c.SheetsThreadCommentPopupService)),F(2,a.Inject(D.SheetsThreadCommentModel)),F(3,a.Inject(v.SheetPermissionCheckController))],x);var fe=Object.getOwnPropertyDescriptor,Ie=(r,t,n,e)=>{for(var i=e>1?void 0:e?fe(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},U=(r,t)=>(n,e)=>t(n,e,r);let Z=class extends a.Disposable{constructor(t,n,e,i,o,s,m,d,u,p){super();k(this,"_isSwitchToCommenting",!1);k(this,"_selectionShapeInfo",null);this._commandService=t,this._sheetsThreadCommentPopupService=n,this._sheetsThreadCommentModel=e,this._threadCommentPanelService=i,this._univerInstanceService=o,this._sheetPermissionCheckController=s,this._markSelectionService=m,this._sheetSelectionService=d,this._editorBridgeService=u,this._renderManagerService=p,this._initCommandListener(),this._initPanelListener(),this._initMarkSelection(),this._initSelectionUpdateListener(),this._initEditorBridge()}_handleSelectionChange(t,n,e){var _,C,f;const i=(_=t[0])==null?void 0:_.range,o=this._renderManagerService.getRenderById(n),s=(C=o==null?void 0:o.with(g.SheetSkeletonManagerService).getSkeletonParam(e))==null?void 0:C.skeleton;if(!s||!i)return;const m=s.getCellWithCoordByIndex(i.startRow,i.startColumn);if((((f=i.rangeType)!=null?f:a.RANGE_TYPE.NORMAL)!==a.RANGE_TYPE.NORMAL||i.endColumn-i.startColumn>0||i.endRow-i.startRow>0)&&!((m.isMerged||m.isMergedMainCell)&&a.Rectangle.equals(m.mergeInfo,i))){this._threadCommentPanelService.activeCommentId&&this._commandService.executeCommand(I.SetActiveCommentOperation.id);return}const u=m.actualRow,p=m.actualColumn;if(!this._sheetsThreadCommentModel.showCommentMarker(n,e,u,p)){this._threadCommentPanelService.activeCommentId&&this._commandService.executeCommand(I.SetActiveCommentOperation.id);return}const l=this._sheetsThreadCommentModel.getByLocation(n,e,u,p);l&&this._commandService.executeCommand(I.SetActiveCommentOperation.id,{unitId:n,subUnitId:e,commentId:l})}_initSelectionUpdateListener(){this.disposeWithMe(this._sheetSelectionService.selectionMoveEnd$.subscribe(t=>{if(this._isSwitchToCommenting)return;const n=this._sheetSelectionService.currentSelectionParam;n&&this._handleSelectionChange(t,n.unitId,n.sheetId)}))}_initEditorBridge(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(t=>{t.visible&&this._sheetsThreadCommentPopupService.hidePopup()}))}_initCommandListener(){this._commandService.onCommandExecuted(t=>{if(t.id===b.DeleteCommentMutation.id){const n=t.params,e=this._sheetsThreadCommentPopupService.activePopup;if(!e)return;const{unitId:i,subUnitId:o,commentId:s}=e;n.unitId===i&&n.subUnitId===o&&n.commentId===s&&this._sheetsThreadCommentPopupService.hidePopup()}})}_initPanelListener(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(async t=>{var n;if(t){const{unitId:e,subUnitId:i,commentId:o,trigger:s}=t,m=this._sheetsThreadCommentModel.getComment(e,i,o);if(!m||m.resolved)return;const d=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET);if(!d||d.getUnitId()!==e)return;this._isSwitchToCommenting=!0,((n=d.getActiveSheet())==null?void 0:n.getSheetId())!==i&&await this._commandService.executeCommand(v.SetWorksheetActiveOperation.id,{unitId:e,subUnitId:i}),this._isSwitchToCommenting=!1;const l=N.singleReferenceToGrid(m.ref),{row:_,column:C}=l;if(!this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[v.WorkbookCommentPermission],worksheetTypes:[v.WorksheetViewPermission],rangeTypes:[v.RangeProtectionPermissionViewPoint]},[{startRow:_,startColumn:C,endRow:_,endColumn:C}],e,i))return;const M=1;if(await this._commandService.executeCommand(g.ScrollToRangeOperation.id,{range:{startRow:Math.max(l.row-M,0),endRow:l.row+M,startColumn:Math.max(l.column-M,0),endColumn:l.column+M}}),this._editorBridgeService.isVisible().visible)return;this._sheetsThreadCommentPopupService.showPopup({unitId:e,subUnitId:i,row:l.row,col:l.column,commentId:m.id,trigger:s})}else this._sheetsThreadCommentPopupService.hidePopup()}))}_initMarkSelection(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.pipe(V.debounceTime(100)).subscribe(t=>{var _,C;if(!t){this._selectionShapeInfo&&(this._markSelectionService.removeShape(this._selectionShapeInfo.shapeId),this._selectionShapeInfo=null);return}const{unitId:n,subUnitId:e,commentId:i}=t;this._selectionShapeInfo&&(this._markSelectionService.removeShape(this._selectionShapeInfo.shapeId),this._selectionShapeInfo=null);const o=this._sheetsThreadCommentModel.getComment(n,e,i);if(!o)return;const s=N.singleReferenceToGrid(o.ref),{row:m,column:d}=s;if(Number.isNaN(m)||Number.isNaN(d))return null;const u=(_=this._univerInstanceService.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:_.getSheetBySheetId(e),p=(C=u==null?void 0:u.getMergedCell(m,d))!=null?C:{startColumn:d,endColumn:d,startRow:m,endRow:m},l=this._markSelectionService.addShape({range:p,style:{fill:"rgba(255, 189, 55, 0.35)",strokeWidth:1,stroke:"#FFBD37",widgets:{}},primary:null},[],-1);l&&(this._selectionShapeInfo={...t,shapeId:l})}))}};Z=Ie([U(0,a.ICommandService),U(1,a.Inject(c.SheetsThreadCommentPopupService)),U(2,a.Inject(D.SheetsThreadCommentModel)),U(3,a.Inject(I.ThreadCommentPanelService)),U(4,a.IUniverInstanceService),U(5,a.Inject(v.SheetPermissionCheckController)),U(6,g.IMarkSelectionService),U(7,a.Inject(v.SheetsSelectionsService)),U(8,g.IEditorBridgeService),U(9,ee.IRenderManagerService)],Z);function oe({ref:r,...t}){const{icon:n,id:e,className:i,extend:o,...s}=t,m=`univerjs-icon univerjs-icon-${e} ${i||""}`.trim(),d=O.useRef(`_${Te()}`);return se(n,`${e}`,{defIds:n.defIds,idSuffix:d.current},{ref:r,className:m,...s},o)}function se(r,t,n,e,i){return O.createElement(r.tag,{key:t,...ge(r,n,i),...e},(Pe(r,n).children||[]).map((o,s)=>se(o,`${t}-${r.tag}-${s}`,n,void 0,i)))}function ge(r,t,n){const e={...r.attrs};n!=null&&n.colorChannel1&&e.fill==="colorChannel1"&&(e.fill=n.colorChannel1),r.tag==="mask"&&e.id&&(e.id=e.id+t.idSuffix),Object.entries(e).forEach(([o,s])=>{o==="mask"&&typeof s=="string"&&(e[o]=s.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});const{defIds:i}=t;return!i||i.length===0||(r.tag==="use"&&e["xlink:href"]&&(e["xlink:href"]=e["xlink:href"]+t.idSuffix),Object.entries(e).forEach(([o,s])=>{typeof s=="string"&&(e[o]=s.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))})),e}function Pe(r,t){var e;const{defIds:n}=t;return!n||n.length===0?r:r.tag==="defs"&&((e=r.children)!=null&&e.length)?{...r,children:r.children.map(i=>typeof i.attrs.id=="string"&&n&&n.includes(i.attrs.id)?{...i,attrs:{...i.attrs,id:i.attrs.id+t.idSuffix}}:i)}:r}function Te(){return Math.random().toString(36).substring(2,8)}oe.displayName="UniverIcon";const be={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",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.13521C5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M8.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.78345Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M11.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"}},{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"}}]},ae=O.forwardRef(function(t,n){return O.createElement(oe,Object.assign({},t,{id:"comment-icon",ref:n,icon:be}))});ae.displayName="CommentIcon";const Me=r=>({id:A.id,type:h.MenuItemType.BUTTON,icon:"CommentIcon",title:"sheetThreadComment.menu.addComment",hidden$:h.getMenuHiddenObservable(r,a.UniverInstanceType.UNIVER_SHEET),disabled$:g.getCurrentRangeDisable$(r,{workbookTypes:[v.WorkbookCommentPermission],worksheetTypes:[v.WorksheetViewPermission],rangeTypes:[v.RangeProtectionPermissionViewPoint]})}),ye=r=>({id:I.ToggleSheetCommentPanelOperation.id,type:h.MenuItemType.BUTTON,icon:"CommentIcon",tooltip:"sheetThreadComment.menu.commentManagement",disabled$:g.getCurrentRangeDisable$(r,{workbookTypes:[v.WorkbookCommentPermission],worksheetTypes:[v.WorksheetViewPermission],rangeTypes:[v.RangeProtectionPermissionViewPoint]}),hidden$:h.getMenuHiddenObservable(r,a.UniverInstanceType.UNIVER_SHEET)}),we={id:A.id,binding:h.KeyCode.M|h.MetaKeys.CTRL_COMMAND|h.MetaKeys.ALT,preconditions:g.whenSheetEditorFocused},Ee={[h.RibbonInsertGroup.MEDIA]:{[I.ToggleSheetCommentPanelOperation.id]:{order:2,menuItemFactory:ye}},[h.ContextMenuPosition.MAIN_AREA]:{[h.ContextMenuGroup.OTHERS]:{[A.id]:{order:0,menuItemFactory:Me}}}},Ue=()=>{const r=h.useDependency(a.IUniverInstanceService),t=h.useDependency(c.SheetsThreadCommentPopupService),n=h.useObservable(t.activePopup$),e=h.useDependency(D.SheetsThreadCommentModel);if(h.useObservable(e.commentUpdate$),!n)return null;const{row:i,col:o,unitId:s,subUnitId:m,trigger:d}=n,u=e.getByLocation(s,m,i,o),p=`${a.Tools.chatAtABC(o)}${i+1}`,l=()=>{t.hidePopup()},_=C=>{var f,M,$;return($=(M=(f=r.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET))==null?void 0:f.getSheetBySheetId(C))==null?void 0:M.getName())!=null?$:""};return te.jsx(I.ThreadCommentTree,{onClick:()=>{t.persistPopup()},prefix:"cell",id:u,unitId:s,subUnitId:m,type:a.UniverInstanceType.UNIVER_SHEET,refStr:p,onClose:l,getSubUnitName:_,autoFocus:d==="context-menu"})},Re=()=>{var y;const r=h.useDependency(g.IMarkSelectionService),t=h.useDependency(a.IUniverInstanceService),n=h.useDependency(c.SheetsThreadCommentPopupService),e=t.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),i=e.getUnitId(),o=h.useDependency(a.ICommandService),s=O.useMemo(()=>e.activeSheet$.pipe(V.map(S=>S==null?void 0:S.getSheetId())),[e.activeSheet$]),m=h.useObservable(s,(y=e.getActiveSheet())==null?void 0:y.getSheetId()),d=O.useRef(null),u=h.useDependency(I.ThreadCommentPanelService),p=h.useObservable(u.activeCommentId$),l=h.useObservable(u.panelVisible$,u.panelVisible),_=O.useCallback(S=>{const w=e.getSheets(),P={};w.forEach((E,T)=>{P[E.getSheetId()]=T});const R=E=>E.map(T=>{var ce;const j=N.singleReferenceToGrid(T.ref),Ae=[(ce=P[T.subUnitId])!=null?ce:0,j.row,j.column];return{...T,p:Ae}}).sort((T,j)=>T.p[0]===j.p[0]?T.p[1]===j.p[1]?T.p[2]-j.p[2]:T.p[1]-j.p[1]:T.p[0]-j.p[0]);return[...R(S.filter(E=>!E.resolved)),...R(S.filter(E=>E.resolved))]},[e]),C=O.useCallback(S=>{var w;if(S.unitId===i&&S.subUnitId===m&&!S.resolved){const{row:P,column:R}=N.singleReferenceToGrid(S.ref),E=e.getSheetBySheetId(S.subUnitId),T=(w=E==null?void 0:E.getMergedCell(P,R))!=null?w:{startColumn:R,endColumn:R,startRow:P,endRow:P};if(!Number.isNaN(P)&&!Number.isNaN(R))return r.addShape({range:T,style:{fill:"rgb(255, 189, 55, 0.35)",strokeWidth:1,stroke:"#FFBD37",widgets:{}},primary:null})}return null},[r,m,i]),f=S=>{var w,P;return(P=(w=e.getSheetBySheetId(S))==null?void 0:w.getName())!=null?P:""},M=()=>{o.executeCommand(A.id)},$=S=>{p&&p.unitId===S.unitId&&p.subUnitId===S.subUnitId&&p.commentId===S.id||(d.current&&(r.removeShape(d.current),d.current=null),d.current=C(S))},H=()=>{d.current&&(r.removeShape(d.current),d.current=null)},X=(S,w)=>{w&&n.hidePopup()};return O.useEffect(()=>{!l&&d.current&&r.removeShape(d.current)},[r,l]),te.jsx(I.ThreadCommentPanel,{unitId:i,subUnitId$:s,type:a.UniverInstanceType.UNIVER_SHEET,onAdd:M,getSubUnitName:f,onResolve:X,sortComments:_,onItemEnter:$,onItemLeave:H,onDeleteComment:()=>(H(),!0)})};var Oe=Object.getOwnPropertyDescriptor,je=(r,t,n,e)=>{for(var i=e>1?void 0:e?Oe(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},J=(r,t)=>(n,e)=>t(n,e,r);let q=class extends a.Disposable{constructor(r,t,n){super(),this._menuManagerService=r,this._componentManager=t,this._shortcutService=n,this._initMenu(),this._initShortcut(),this._initComponent()}_initShortcut(){this._shortcutService.registerShortcut(we)}_initMenu(){this._menuManagerService.mergeMenu(Ee)}_initComponent(){[[ne,Ue],[I.THREAD_COMMENT_PANEL,Re],["CommentIcon",ae]].forEach(([r,t])=>{this.disposeWithMe(this._componentManager.register(r,t))})}};q=je([J(0,h.IMenuManagerService),J(1,a.Inject(h.ComponentManager)),J(2,h.IShortcutService)],q);var ke=Object.defineProperty,De=Object.getOwnPropertyDescriptor,$e=(r,t,n)=>t in r?ke(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,Ne=(r,t,n,e)=>{for(var i=e>1?void 0:e?De(t,n):t,o=r.length-1,s;o>=0;o--)(s=r[o])&&(i=s(i)||i);return i},Q=(r,t)=>(n,e)=>t(n,e,r),G=(r,t,n)=>$e(r,typeof t!="symbol"?t+"":t,n);c.UniverSheetsThreadCommentUIPlugin=class extends a.Plugin{constructor(t=ie,n,e,i){super(),this._config=t,this._injector=n,this._commandService=e,this._configService=i;const{menu:o,...s}=a.merge({},ie,this._config);o&&this._configService.setConfig("menu",o,{merge:!0}),this._configService.setConfig(ue,s)}onStarting(){[[q],[L],[W],[x],[Z],[c.SheetsThreadCommentPopupService]].forEach(t=>{this._injector.add(t)}),[A].forEach(t=>{this._commandService.registerCommand(t)}),this._injector.get(q)}onReady(){this._injector.get(L)}onRendered(){this._injector.get(W),this._injector.get(x),this._injector.get(Z)}},G(c.UniverSheetsThreadCommentUIPlugin,"pluginName",z),G(c.UniverSheetsThreadCommentUIPlugin,"packageName",re.name),G(c.UniverSheetsThreadCommentUIPlugin,"version",re.version),G(c.UniverSheetsThreadCommentUIPlugin,"type",a.UniverInstanceType.UNIVER_SHEET),c.UniverSheetsThreadCommentUIPlugin=Ne([a.DependentOn(I.UniverThreadCommentUIPlugin,D.UniverSheetsThreadCommentPlugin),Q(1,a.Inject(a.Injector)),Q(2,a.Inject(a.ICommandService)),Q(3,a.IConfigService)],c.UniverSheetsThreadCommentUIPlugin),Object.defineProperty(c,"UniverThreadCommentUIPlugin",{enumerable:!0,get:()=>I.UniverThreadCommentUIPlugin}),Object.defineProperty(c,"AddCommentCommand",{enumerable:!0,get:()=>b.AddCommentCommand}),Object.defineProperty(c,"DeleteCommentCommand",{enumerable:!0,get:()=>b.DeleteCommentCommand}),Object.defineProperty(c,"DeleteCommentTreeCommand",{enumerable:!0,get:()=>b.DeleteCommentTreeCommand}),Object.defineProperty(c,"IThreadCommentDataSourceService",{enumerable:!0,get:()=>b.IThreadCommentDataSourceService}),Object.defineProperty(c,"ResolveCommentCommand",{enumerable:!0,get:()=>b.ResolveCommentCommand}),Object.defineProperty(c,"UpdateCommentCommand",{enumerable:!0,get:()=>b.UpdateCommentCommand}),c.SHEETS_THREAD_COMMENT=z,c.ShowAddSheetCommentModalOperation=A,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
// index
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/preset-sheets-thread-comment",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "DreamNum Co., Ltd. <developer@univer.ai>",
|
|
@@ -58,18 +58,18 @@
|
|
|
58
58
|
"rxjs": ">=7.0.0"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@univerjs/sheets-thread-comment": "0.
|
|
62
|
-
"@univerjs/sheets-thread-comment-ui": "0.
|
|
63
|
-
"@univerjs/thread-comment": "0.
|
|
64
|
-
"@univerjs/thread-comment-ui": "0.
|
|
61
|
+
"@univerjs/sheets-thread-comment": "0.17.0",
|
|
62
|
+
"@univerjs/sheets-thread-comment-ui": "0.17.0",
|
|
63
|
+
"@univerjs/thread-comment": "0.17.0",
|
|
64
|
+
"@univerjs/thread-comment-ui": "0.17.0"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@univerjs/core": "0.
|
|
67
|
+
"@univerjs/core": "0.17.0",
|
|
68
68
|
"react": "18.3.1",
|
|
69
69
|
"react-dom": "18.3.1",
|
|
70
70
|
"rxjs": "7.8.2",
|
|
71
71
|
"typescript": "^5.9.3",
|
|
72
|
-
"@univerjs-infra/shared": "0.
|
|
72
|
+
"@univerjs-infra/shared": "0.17.0"
|
|
73
73
|
},
|
|
74
74
|
"scripts": {
|
|
75
75
|
"prebuild:preset": "tsx prepare.ts",
|