@univerjs/thread-comment-ui 0.1.13 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";var ge=Object.defineProperty;var fe=(n,e,t)=>e in n?ge(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var M=(n,e,t)=>(fe(n,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("@univerjs/thread-comment"),d=require("@univerjs/core"),W=require("@wendellhu/redi"),R=require("@univerjs/ui"),G=require("rxjs"),a=require("react"),b=require("@wendellhu/redi/react-bindings"),_=require("@univerjs/design"),pe=require("dayjs"),Ie=require("clsx"),ne="thread-comment-panel",Se="thread-comment-ui-plugin";var ye=Object.defineProperty,be=Object.getOwnPropertyDescriptor,Ee=(n,e,t,r)=>{for(var o=r>1?void 0:r?be(e,t):e,i=n.length-1,l;i>=0;i--)(l=n[i])&&(o=(r?l(e,t,o):l(o))||o);return r&&o&&ye(e,t,o),o},ee=(n,e)=>(t,r)=>e(t,r,n);exports.ThreadCommentPanelService=class extends d.Disposable{constructor(t,r){super();M(this,"_panelVisible",!1);M(this,"_panelVisible$",new G.BehaviorSubject(!1));M(this,"_activeCommentId");M(this,"_activeCommentId$",new G.BehaviorSubject(void 0));M(this,"panelVisible$",this._panelVisible$.asObservable());M(this,"activeCommentId$",this._activeCommentId$.asObservable());this._sidebarService=t,this._univerInstanceService=r,this._init()}_init(){this.disposeWithMe(this._sidebarService.sidebarOptions$.subscribe(t=>{t.visible||this.setPanelVisible(!1)})),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(d.UniverInstanceType.UNIVER_SHEET).pipe(G.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)}};exports.ThreadCommentPanelService=Ee([ee(0,W.Inject(R.ISidebarService)),ee(1,d.IUniverInstanceService)],exports.ThreadCommentPanelService);const re={id:"thread-comment-ui.operation.toggle-panel",type:d.CommandType.OPERATION,handler(n){const e=n.get(R.ISidebarService),t=n.get(exports.ThreadCommentPanelService);return t.panelVisible?(e.close(),t.setPanelVisible(!1)):(e.open({header:{title:"threadCommentUI.panel.title"},children:{label:ne},width:320}),t.setPanelVisible(!0)),!0}},J={id:"thread-comment-ui.operation.set-active-comment",type:d.CommandType.OPERATION,handler(n,e){return n.get(exports.ThreadCommentPanelService).setActiveComment(e),!0}};var Te=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,_e=(n,e,t,r)=>{for(var o=r>1?void 0:r?xe(e,t):e,i=n.length-1,l;i>=0;i--)(l=n[i])&&(o=(r?l(e,t,o):l(o))||o);return r&&o&&Te(e,t,o),o},Me=(n,e)=>(t,r)=>e(t,r,n);let Y=class extends d.Disposable{constructor(n){super(),this._localeService=n}};Y=_e([d.OnLifecycle(d.LifecycleStages.Starting,Y),Me(0,W.Inject(d.LocaleService))],Y);class Ne{constructor(){M(this,"trigger","@")}async getMentions(e){return[]}}const Q=W.createIdentifier("thread-comment.mention-data.service");var Pe=Object.defineProperty,Ue=Object.getOwnPropertyDescriptor,Oe=(n,e,t,r)=>{for(var o=r>1?void 0:r?Ue(e,t):e,i=n.length-1,l;i>=0;i--)(l=n[i])&&(o=(r?l(e,t,o):l(o))||o);return r&&o&&Pe(e,t,o),o},te=(n,e)=>(t,r)=>e(t,r,n),Z;exports.UniverThreadCommentUIPlugin=(Z=class extends $.UniverThreadCommentPlugin{constructor(t,r,o){super(t,r,o);M(this,"_config1");this._injector=r,this._commandService=o,this._config1=t}onStarting(t){super.onStarting(t),d.mergeOverrideWithDependencies([[Y],[exports.ThreadCommentPanelService],[Q,{useClass:Ne}]],this._config1.overrides).forEach(r=>{t.add(r)}),[re,J].forEach(r=>{this._commandService.registerCommand(r)})}},M(Z,"pluginName",Se),M(Z,"type",d.UniverInstanceType.UNIVER_UNKNOWN),Z);exports.UniverThreadCommentUIPlugin=Oe([te(1,W.Inject(W.Injector)),te(2,d.ICommandService)],exports.UniverThreadCommentUIPlugin);var x=function(){return x=Object.assign||function(n){for(var e,t=1,r=arguments.length;t<r;t++){e=arguments[t];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n},x.apply(this,arguments)},$e=function(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(n);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(n,r[o])&&(t[r[o]]=n[r[o]]);return t},k=a.forwardRef(function(n,e){var t=n.icon,r=n.id,o=n.className,i=n.extend,l=$e(n,["icon","id","className","extend"]),u="univerjs-icon univerjs-icon-".concat(r," ").concat(o||"").trim(),c=a.useRef("_".concat(Re()));return ae(t,"".concat(r),{defIds:t.defIds,idSuffix:c.current},x({ref:e,className:u},l),i)});function ae(n,e,t,r,o){return a.createElement(n.tag,x(x({key:e},De(n,t,o)),r),(we(n,t).children||[]).map(function(i,l){return ae(i,"".concat(e,"-").concat(n.tag,"-").concat(l),t,void 0,o)}))}function De(n,e,t){var r=x({},n.attrs);t!=null&&t.colorChannel1&&r.fill==="colorChannel1"&&(r.fill=t.colorChannel1);var o=e.defIds;return!o||o.length===0||(n.tag==="use"&&r["xlink:href"]&&(r["xlink:href"]=r["xlink:href"]+e.idSuffix),Object.entries(r).forEach(function(i){var l=i[0],u=i[1];typeof u=="string"&&(r[l]=u.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),r}function we(n,e){var t,r=e.defIds;return!r||r.length===0?n:n.tag==="defs"&&(!((t=n.children)===null||t===void 0)&&t.length)?x(x({},n),{children:n.children.map(function(o){return typeof o.attrs.id=="string"&&r&&r.indexOf(o.attrs.id)>-1?x(x({},o),{attrs:x(x({},o.attrs),{id:o.attrs.id+e.idSuffix})}):o})}):n}function Re(){return Math.random().toString(36).substring(2,8)}k.displayName="UniverIcon";var He={tag:"svg",attrs:{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.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.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.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.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"}}]},oe=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"delete-single",ref:e,icon:He}))});oe.displayName="DeleteSingle";const Le=oe;var je={tag:"svg",attrs:{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"}}]},ie=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"increase-single",ref:e,icon:je}))});ie.displayName="IncreaseSingle";const ke=ie;var Ae={tag:"svg",attrs:{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 8 4 7.44772 3.55228 7 3 7 2.44772 7 2 7.44772 2 8 2 8.55228 2.44772 9 3 9zM8 9C8.55228 9 9 8.55228 9 8 9 7.44772 8.55228 7 8 7 7.44772 7 7 7.44772 7 8 7 8.55228 7.44772 9 8 9zM13 9C13.5523 9 14 8.55228 14 8 14 7.44772 13.5523 7 13 7 12.4477 7 12 7.44772 12 8 12 8.55228 12.4477 9 13 9z"}}]},se=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"more-horizontal-single",ref:e,icon:Ae}))});se.displayName="MoreHorizontalSingle";const Ve=se;var Be={tag:"svg",attrs:{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.76813M8.91626 6.1311H9.27424M3.90454 6.1311H4.26252",strokeLinecap:"round",strokeWidth:1.2}}]},le=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"reply-to-comment-single",ref:e,icon:Be}))});le.displayName="ReplyToCommentSingle";const We=le;var qe={tag:"svg",attrs:{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"}}]},me=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"resolved-single",ref:e,icon:qe}))});me.displayName="ResolvedSingle";const ze=me;var Fe={tag:"svg",attrs:{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=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"solve-single",ref:e,icon:Fe}))});ce.displayName="SolveSingle";const Ze=ce,Ye="univer-thread-comment-editor-buttons",Ke="univer-thread-comment-editor-suggestion",Ge="univer-thread-comment-editor-suggestionActive",Je="univer-thread-comment-editor-suggestion-icon",K={threadCommentEditorButtons:Ye,threadCommentEditorSuggestion:Ke,threadCommentEditorSuggestionActive:Ge,threadCommentEditorSuggestionIcon:Je},Qe=n=>{const e=/@\[(.*?)\]\((.*?)\)|(\w+)/g;let t,r=0;const o=[];for(;(t=e.exec(n))!==null;)t.index>r&&o.push({type:"text",content:n.substring(r,t.index)}),t[1]&&t[2]?o.push({type:"mention",content:{label:t[1],id:t[2]}}):t[3]&&o.push({type:"text",content:t[3]}),r=e.lastIndex;return r<n.length&&o.push({type:"text",content:n.substring(r)}),o},Xe=n=>n.map(e=>{switch(e.type){case"mention":return`@[${e.content.label}](${e.content.id})`;default:return e.content}}).join(""),de=n=>{const{dataStream:e,customRanges:t}=n,r=e.length-2,o=[];let i=0;return t==null||t.forEach(l=>{i<l.startIndex&&o.push({type:"text",content:e.slice(i,l.startIndex)}),o.push({type:"mention",content:{label:e.slice(l.startIndex,l.endIndex).slice(1,-1),id:l.rangeId}}),i=l.endIndex}),o.push({type:"text",content:e.slice(i,r)}),o},ue=n=>{let e="";const t=[];return n.forEach(r=>{switch(r.type){case"text":e+=r.content;break;case"mention":{const o=e.length;e+=`${r.content.label}`;const i=e.length;t.push({rangeId:r.content.id,rangeType:d.CustomRangeType.MENTION,startIndex:o,endIndex:i});break}}}),e+=`
2
- \r`,{textRuns:[],paragraphs:[{startIndex:e.length-2,paragraphStyle:{}}],sectionBreaks:[{startIndex:e.length-1}],dataStream:e,customRanges:t}},et=n=>({display:n.label,id:`${n.id}`,raw:n}),tt=(n,e,t,r,o)=>{var l,u;const i=(l=n.raw)==null?void 0:l.icon;return a.createElement("div",{className:K.threadCommentEditorSuggestion},i?a.createElement("img",{className:K.threadCommentEditorSuggestionIcon,src:i}):null,a.createElement("div",null,(u=n.display)!=null?u:n.id))},he=a.forwardRef((n,e)=>{var h;const{comment:t,onSave:r,id:o,onCancel:i,autoFocus:l}=n,u=b.useDependency(Q),c=b.useDependency(d.LocaleService),[f,p]=a.useState({...t}),[N,I]=a.useState(!1),S=a.useRef(null);return a.useImperativeHandle(e,()=>({reply(y){var v;p({...t,text:y,attachments:[]}),(v=S.current)==null||v.inputElement.focus()}})),a.createElement("div",{className:K.threadCommentEditor,onClick:y=>y.preventDefault()},a.createElement(_.Mentions,{ref:S,autoFocus:l,style:{width:"100%"},placeholder:c.t("threadCommentUI.editor.placeholder"),value:f!=null&&f.text?Xe(de(f.text)):"",onChange:y=>{y.target.value||p({...t,text:void 0}),p==null||p({...t,text:ue(Qe(y.target.value))})},onFocus:()=>{I(!0)}},a.createElement(_.Mention,{key:u.trigger,trigger:u.trigger,data:(y,v)=>u.getMentions(y).then(P=>P.map(et)).then(v),displayTransform:(y,v)=>`@${v} `,renderSuggestion:(h=u.renderSuggestion)!=null?h:tt})),N?a.createElement("div",{className:K.threadCommentEditorButtons},a.createElement(_.Button,{style:{marginRight:12},onClick:()=>{i==null||i(),I(!1),p({text:void 0})}},c.t("threadCommentUI.editor.cancel")),a.createElement(_.Button,{type:"primary",disabled:!f.text,onClick:()=>{f.text&&(r==null||r({...f,text:f.text}),I(!1),p({text:void 0}))}},c.t(o?"threadCommentUI.editor.save":"threadCommentUI.editor.reply"))):null)}),nt="univer-thread-comment",rt="univer-thread-comment-active",at="univer-thread-comment-content",ot="univer-thread-comment-highlight",it="univer-thread-comment-icon-container",st="univer-thread-comment-icon",lt="univer-thread-comment-title",mt="univer-thread-comment-title-position",ct="univer-thread-comment-title-highlight",dt="univer-thread-comment-username",ut="univer-thread-comment-item",ht="univer-thread-comment-item-head",vt="univer-thread-comment-item-title",Ct="univer-thread-comment-item-title-position",gt="univer-thread-comment-item-title-highlight",ft="univer-thread-comment-item-time",pt="univer-thread-comment-item-content",It="univer-thread-comment-item-at",g={threadComment:nt,threadCommentActive:rt,threadCommentContent:at,threadCommentHighlight:ot,threadCommentIconContainer:it,threadCommentIcon:st,threadCommentTitle:lt,threadCommentTitlePosition:mt,threadCommentTitleHighlight:ct,threadCommentUsername:dt,threadCommentItem:ut,threadCommentItemHead:ht,threadCommentItemTitle:vt,threadCommentItemTitlePosition:Ct,threadCommentItemTitleHighlight:gt,threadCommentItemTime:ft,threadCommentItemContent:pt,threadCommentItemAt:It},ve="__mock__",St=n=>{const{item:e,unitId:t,subUnitId:r,editing:o,onEditingChange:i,onReply:l,resolved:u,isRoot:c,onClose:f}=n,p=b.useDependency(d.ICommandService),N=b.useDependency(d.LocaleService),I=b.useDependency(d.UserManagerService),S=I.getUser(e.personId),h=R.useObservable(I.currentUser$),y=(h==null?void 0:h.userID)===e.personId,v=e.id===ve,[P,H]=a.useState(!1),m=()=>{p.executeCommand(c?$.DeleteCommentTreeCommand.id:$.DeleteCommentCommand.id,{unitId:t,subUnitId:r,commentId:e.id}),c&&(f==null||f())};return a.createElement("div",{className:g.threadCommentItem,onMouseLeave:()=>H(!1),onMouseEnter:()=>H(!0)},a.createElement("img",{className:g.threadCommentItemHead,src:S==null?void 0:S.avatar}),a.createElement("div",{className:g.threadCommentItemTitle},a.createElement("div",{className:g.threadCommentUsername},(S==null?void 0:S.name)||" "),a.createElement("div",null,v||u?null:P?a.createElement("div",{className:g.threadCommentIcon,onClick:()=>l(S)},a.createElement(We,null)):null,y&&!v&&!u?a.createElement(_.Dropdown,{overlay:a.createElement(_.Menu,null,a.createElement(_.MenuItem,{key:"edit",onClick:()=>i==null?void 0:i(!0)},N.t("threadCommentUI.item.edit")),a.createElement(_.MenuItem,{key:"delete",onClick:m},N.t("threadCommentUI.item.delete")))},a.createElement("div",{className:g.threadCommentIcon},a.createElement(Ve,null))):null)),a.createElement("div",{className:g.threadCommentItemTime},e.dT),o?a.createElement(he,{id:e.id,comment:e,onCancel:()=>i==null?void 0:i(!1),autoFocus:!0,onSave:({text:C,attachments:L})=>{i==null||i(!1),p.executeCommand($.UpdateCommentCommand.id,{unitId:t,subUnitId:r,payload:{commentId:e.id,text:C,attachments:L}})}}):a.createElement("div",{className:g.threadCommentItemContent},de(e.text).map((C,L)=>{switch(C.type){case"mention":return a.createElement("a",{className:g.threadCommentItemAt,key:L},"@",C.content.label," ");default:return C.content}})))},Ce=n=>{var j,V,z;const{id:e,unitId:t,subUnitId:r,refStr:o,showEdit:i=!0,onClick:l,showHighlight:u,onClose:c,getSubUnitName:f,prefix:p,autoFocus:N,onMouseEnter:I,onMouseLeave:S}=n,h=b.useDependency($.ThreadCommentModel),[y,v]=a.useState(!1),[P,H]=a.useState("");R.useObservable(h.commentMap$);const m=e?h.getCommentWithChildren(t,r,e):null,C=b.useDependency(d.ICommandService),L=b.useDependency(d.UserManagerService),D=m==null?void 0:m.root.resolved,E=R.useObservable(L.currentUser$),U=a.useRef(null),A=[...m?[m.root]:[{id:ve,text:{dataStream:`
3
- \r`},personId:(j=E==null?void 0:E.userID)!=null?j:"",ref:o!=null?o:"",dT:"",unitId:t,subUnitId:r}],...(V=m==null?void 0:m.children)!=null?V:[]],q=()=>{C.executeCommand($.ResolveCommentCommand.id,{unitId:t,subUnitId:r,commentId:e,resolved:!D}),c==null||c()},w=()=>{C.executeCommand($.DeleteCommentTreeCommand.id,{unitId:t,subUnitId:r,commentId:e}),c==null||c()};return a.createElement("div",{className:Ie(g.threadComment,{[g.threadCommentActive]:!D&&(u||y||p==="cell")}),onClick:l,id:`${p}-${t}-${r}-${e}`,onMouseEnter:()=>{I==null||I(),v(!0)},onMouseLeave:()=>{S==null||S(),v(!1)}},!D&&u?a.createElement("div",{className:g.threadCommentHighlight}):null,a.createElement("div",{className:g.threadCommentTitle},a.createElement("div",{className:g.threadCommentTitlePosition},a.createElement("div",{className:g.threadCommentTitleHighlight}),o||(m==null?void 0:m.root.ref)," · ",f((z=m==null?void 0:m.root.subUnitId)!=null?z:r)),m?a.createElement("div",{className:g.threadCommentIconContainer},a.createElement("div",{onClick:q,className:g.threadCommentIcon,style:{color:D?"rgb(var(--green-500))":""}},D?a.createElement(ze,null):a.createElement(Ze,null)),(E==null?void 0:E.userID)===m.root.personId?a.createElement("div",{className:g.threadCommentIcon,onClick:w},a.createElement(Le,null)):null):null),a.createElement("div",{className:g.threadCommentContent},A.map(s=>a.createElement(St,{onClose:c,unitId:t,subUnitId:r,item:s,key:s.id,isRoot:s.id===(m==null?void 0:m.root.id),editing:P===s.id,resolved:m==null?void 0:m.root.resolved,onEditingChange:T=>{H(T?s.id:"")},onReply:T=>{var O;T&&((O=U.current)==null||O.reply(ue([{type:"mention",content:{id:T.userID,label:T.name}}])))}}))),i&&!P&&!D?a.createElement("div",null,a.createElement(he,{key:`${N}`,ref:U,onSave:({text:s,attachments:T})=>{C.executeCommand($.AddCommentCommand.id,{unitId:t,subUnitId:r,comment:{text:s,attachments:T,dT:pe().format("YYYY/MM/DD HH:mm"),id:d.Tools.generateRandomId(),ref:o,personId:E==null?void 0:E.userID,parentId:m==null?void 0:m.root.id,unitId:t,subUnitId:r}})},autoFocus:N||!m,onCancel:()=>{m||c==null||c()}})):null)},yt="univer-thread-comment-panel",bt="univer-thread-comment",Et="univer-thread-comment-panel-forms",Tt="univer-select",xt="univer-thread-comment-panel-empty",_t="univer-thread-comment-panel-add",F={threadCommentPanel:yt,threadComment:bt,threadCommentPanelForms:Et,select:Tt,threadCommentPanelEmpty:xt,threadCommentPanelAdd:_t},Mt=n=>{const{unitId:e,subUnitId$:t,type:r,onAdd:o,getSubUnitName:i,onResolve:l,sortComments:u,onItemLeave:c,onItemEnter:f}=n,[p,N]=a.useState("all"),[I,S]=a.useState("all"),h=b.useDependency(d.LocaleService),y=b.useDependency(d.UserManagerService),v=b.useDependency($.ThreadCommentModel),[P,H]=a.useState(()=>v.getUnit(e)),m=b.useDependency(exports.ThreadCommentPanelService),C=R.useObservable(m.activeCommentId$),L=R.useObservable(v.commentUpdate$),D=b.useDependency(d.ICommandService),E=R.useObservable(t),U=y.currentUser,A=a.useRef(!0),q="panel",w=a.useMemo(()=>{var s,T;if(p==="all"){const O=P.map(B=>B[1]).flat().filter(B=>!B.parentId);return u?u(O):O}else return(T=(s=P.find(O=>O[0]===E))==null?void 0:s[1])!=null?T:[]},[p,P,E,u]),j=a.useMemo(()=>I==="resolved"?w.filter(s=>s.resolved):I==="unsolved"?w.filter(s=>!s.resolved):I==="concern_me"&&U!=null&&U.userID?w.map(s=>v.getCommentWithChildren(s.unitId,s.subUnitId,s.id)).map(s=>s!=null&&s.relativeUsers.has(U.userID)?s.root:null).filter(Boolean):w,[w,U==null?void 0:U.userID,I,v]),V=I!=="all"||p!=="all",z=()=>{S("all"),N("all")};return a.useEffect(()=>{e&&H(v.getUnit(e))},[e,v,L]),a.useEffect(()=>{var X;if(!C)return;if(!A.current){A.current=!0;return}const{unitId:s,subUnitId:T,commentId:O}=C,B=`${q}-${s}-${T}-${O}`;(X=document.getElementById(B))==null||X.scrollIntoView({block:"center"})},[C]),a.createElement("div",{className:F.threadCommentPanel},a.createElement("div",{className:F.threadCommentPanelForms},a.createElement(_.Select,{borderless:!0,value:p,onChange:s=>N(s),options:[{value:"current",label:h.t("threadCommentUI.filter.sheet.current")},{value:"all",label:h.t("threadCommentUI.filter.sheet.all")}]}),a.createElement(_.Select,{borderless:!0,value:I,onChange:s=>S(s),options:[{value:"all",label:h.t("threadCommentUI.filter.status.all")},{value:"resolved",label:h.t("threadCommentUI.filter.status.resolved")},{value:"unsolved",label:h.t("threadCommentUI.filter.status.unsolved")},{value:"concern_me",label:h.t("threadCommentUI.filter.status.concernMe")}]})),j==null?void 0:j.map(s=>a.createElement(Ce,{prefix:q,getSubUnitName:i,key:s.id,id:s.id,unitId:s.unitId,subUnitId:s.subUnitId,type:r,showEdit:(C==null?void 0:C.commentId)===s.id,showHighlight:(C==null?void 0:C.commentId)===s.id,onClick:()=>{A.current=!1,D.executeCommand(J.id,{unitId:s.unitId,subUnitId:s.subUnitId,commentId:s.id,temp:!0})},onClose:()=>l==null?void 0:l(s.id),onMouseEnter:()=>f==null?void 0:f(s),onMouseLeave:()=>c==null?void 0:c(s)})),j.length?null:a.createElement("div",{className:F.threadCommentPanelEmpty},V?h.t("threadCommentUI.panel.filterEmpty"):h.t("threadCommentUI.panel.empty"),V?a.createElement(_.Button,{onClick:z,type:"link"},h.t("threadCommentUI.panel.reset")):a.createElement(_.Button,{id:"thread-comment-add",className:F.threadCommentPanelAdd,type:"primary",onClick:o},a.createElement(ke,null),h.t("threadCommentUI.panel.addComment"))))};exports.IThreadCommentMentionDataService=Q;exports.SetActiveCommentOperation=J;exports.THREAD_COMMENT_PANEL=ne;exports.ThreadCommentPanel=Mt;exports.ThreadCommentTree=Ce;exports.ToggleSheetCommentPanelOperation=re;
1
+ "use strict";var ge=Object.defineProperty;var pe=(n,e,t)=>e in n?ge(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var $=(n,e,t)=>(pe(n,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("@univerjs/thread-comment"),d=require("@univerjs/core"),W=require("@wendellhu/redi"),R=require("@univerjs/ui"),G=require("rxjs"),a=require("react"),y=require("@wendellhu/redi/react-bindings"),x=require("@univerjs/design"),Ie=require("dayjs"),Se=require("clsx"),te="thread-comment-panel",be="THREAD_COMMENT_UI_PLUGIN";var ye=Object.defineProperty,Ee=Object.getOwnPropertyDescriptor,Te=(n,e,t,r)=>{for(var o=r>1?void 0:r?Ee(e,t):e,i=n.length-1,l;i>=0;i--)(l=n[i])&&(o=(r?l(e,t,o):l(o))||o);return r&&o&&ye(e,t,o),o},X=(n,e)=>(t,r)=>e(t,r,n);exports.ThreadCommentPanelService=class extends d.Disposable{constructor(t,r){super();$(this,"_panelVisible",!1);$(this,"_panelVisible$",new G.BehaviorSubject(!1));$(this,"_activeCommentId");$(this,"_activeCommentId$",new G.BehaviorSubject(void 0));$(this,"panelVisible$",this._panelVisible$.asObservable());$(this,"activeCommentId$",this._activeCommentId$.asObservable());this._sidebarService=t,this._univerInstanceService=r,this._init()}_init(){this.disposeWithMe(this._sidebarService.sidebarOptions$.subscribe(t=>{t.visible||this.setPanelVisible(!1)})),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(d.UniverInstanceType.UNIVER_SHEET).pipe(G.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)}};exports.ThreadCommentPanelService=Te([X(0,W.Inject(R.ISidebarService)),X(1,d.IUniverInstanceService)],exports.ThreadCommentPanelService);const ne={id:"thread-comment-ui.operation.toggle-panel",type:d.CommandType.OPERATION,handler(n){const e=n.get(R.ISidebarService),t=n.get(exports.ThreadCommentPanelService);return t.panelVisible?(e.close(),t.setPanelVisible(!1)):(e.open({header:{title:"threadCommentUI.panel.title"},children:{label:te},width:320}),t.setPanelVisible(!0)),!0}},K={id:"thread-comment-ui.operation.set-active-comment",type:d.CommandType.OPERATION,handler(n,e){return n.get(exports.ThreadCommentPanelService).setActiveComment(e),!0}};var _e=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,Ue=(n,e,t,r)=>{for(var o=r>1?void 0:r?xe(e,t):e,i=n.length-1,l;i>=0;i--)(l=n[i])&&(o=(r?l(e,t,o):l(o))||o);return r&&o&&_e(e,t,o),o},Me=(n,e)=>(t,r)=>e(t,r,n);let Z=class extends d.Disposable{constructor(n){super(),this._localeService=n}};Z=Ue([d.OnLifecycle(d.LifecycleStages.Starting,Z),Me(0,W.Inject(d.LocaleService))],Z);class Pe{constructor(){$(this,"trigger","@")}async getMentions(e){return[]}}const J=W.createIdentifier("thread-comment.mention-data.service");var re=Object.defineProperty,Ne=Object.getOwnPropertyDescriptor,Oe=(n,e,t)=>e in n?re(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,De=(n,e,t,r)=>{for(var o=r>1?void 0:r?Ne(e,t):e,i=n.length-1,l;i>=0;i--)(l=n[i])&&(o=(r?l(e,t,o):l(o))||o);return r&&o&&re(e,t,o),o},ee=(n,e)=>(t,r)=>e(t,r,n),ae=(n,e,t)=>(Oe(n,typeof e!="symbol"?e+"":e,t),t);exports.UniverThreadCommentUIPlugin=class extends d.Plugin{constructor(e,t,r){super(),this._config=e,this._injector=t,this._commandService=r}onStarting(e){var t;d.mergeOverrideWithDependencies([[Z],[exports.ThreadCommentPanelService],[J,{useClass:Pe}]],(t=this._config)==null?void 0:t.overrides).forEach(r=>{e.add(r)}),[ne,K].forEach(r=>{this._commandService.registerCommand(r)})}};ae(exports.UniverThreadCommentUIPlugin,"pluginName",be);ae(exports.UniverThreadCommentUIPlugin,"type",d.UniverInstanceType.UNIVER_UNKNOWN);exports.UniverThreadCommentUIPlugin=De([d.DependentOn(O.UniverThreadCommentPlugin),ee(1,W.Inject(W.Injector)),ee(2,d.ICommandService)],exports.UniverThreadCommentUIPlugin);var _=function(){return _=Object.assign||function(n){for(var e,t=1,r=arguments.length;t<r;t++){e=arguments[t];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n},_.apply(this,arguments)},we=function(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(n);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(n,r[o])&&(t[r[o]]=n[r[o]]);return t},k=a.forwardRef(function(n,e){var t=n.icon,r=n.id,o=n.className,i=n.extend,l=we(n,["icon","id","className","extend"]),u="univerjs-icon univerjs-icon-".concat(r," ").concat(o||"").trim(),c=a.useRef("_".concat(He()));return oe(t,"".concat(r),{defIds:t.defIds,idSuffix:c.current},_({ref:e,className:u},l),i)});function oe(n,e,t,r,o){return a.createElement(n.tag,_(_({key:e},$e(n,t,o)),r),(Re(n,t).children||[]).map(function(i,l){return oe(i,"".concat(e,"-").concat(n.tag,"-").concat(l),t,void 0,o)}))}function $e(n,e,t){var r=_({},n.attrs);t!=null&&t.colorChannel1&&r.fill==="colorChannel1"&&(r.fill=t.colorChannel1);var o=e.defIds;return!o||o.length===0||(n.tag==="use"&&r["xlink:href"]&&(r["xlink:href"]=r["xlink:href"]+e.idSuffix),Object.entries(r).forEach(function(i){var l=i[0],u=i[1];typeof u=="string"&&(r[l]=u.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),r}function Re(n,e){var t,r=e.defIds;return!r||r.length===0?n:n.tag==="defs"&&(!((t=n.children)===null||t===void 0)&&t.length)?_(_({},n),{children:n.children.map(function(o){return typeof o.attrs.id=="string"&&r&&r.indexOf(o.attrs.id)>-1?_(_({},o),{attrs:_(_({},o.attrs),{id:o.attrs.id+e.idSuffix})}):o})}):n}function He(){return Math.random().toString(36).substring(2,8)}k.displayName="UniverIcon";var Le={tag:"svg",attrs:{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.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.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.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.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"}}]},ie=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"delete-single",ref:e,icon:Le}))});ie.displayName="DeleteSingle";var je={tag:"svg",attrs:{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"}}]},se=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"increase-single",ref:e,icon:je}))});se.displayName="IncreaseSingle";var ke={tag:"svg",attrs:{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 8 4 7.44772 3.55228 7 3 7 2.44772 7 2 7.44772 2 8 2 8.55228 2.44772 9 3 9zM8 9C8.55228 9 9 8.55228 9 8 9 7.44772 8.55228 7 8 7 7.44772 7 7 7.44772 7 8 7 8.55228 7.44772 9 8 9zM13 9C13.5523 9 14 8.55228 14 8 14 7.44772 13.5523 7 13 7 12.4477 7 12 7.44772 12 8 12 8.55228 12.4477 9 13 9z"}}]},le=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"more-horizontal-single",ref:e,icon:ke}))});le.displayName="MoreHorizontalSingle";var Ae={tag:"svg",attrs:{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.76813M8.91626 6.1311H9.27424M3.90454 6.1311H4.26252",strokeLinecap:"round",strokeWidth:1.2}}]},me=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"reply-to-comment-single",ref:e,icon:Ae}))});me.displayName="ReplyToCommentSingle";var Ve={tag:"svg",attrs:{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"}}]},de=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"resolved-single",ref:e,icon:Ve}))});de.displayName="ResolvedSingle";var Be={tag:"svg",attrs:{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=a.forwardRef(function(n,e){return a.createElement(k,Object.assign({},n,{id:"solve-single",ref:e,icon:Be}))});ce.displayName="SolveSingle";const We="univer-thread-comment-editor-buttons",qe="univer-thread-comment-editor-suggestion",Fe="univer-thread-comment-editor-suggestionActive",ze="univer-thread-comment-editor-suggestion-icon",Y={threadCommentEditorButtons:We,threadCommentEditorSuggestion:qe,threadCommentEditorSuggestionActive:Fe,threadCommentEditorSuggestionIcon:ze},Ze=n=>{const e=/@\[(.*?)\]\((.*?)\)|(\w+)/g;let t,r=0;const o=[];for(;(t=e.exec(n))!==null;)t.index>r&&o.push({type:"text",content:n.substring(r,t.index)}),t[1]&&t[2]?o.push({type:"mention",content:{label:t[1],id:t[2]}}):t[3]&&o.push({type:"text",content:t[3]}),r=e.lastIndex;return r<n.length&&o.push({type:"text",content:n.substring(r)}),o},Ye=n=>n.map(e=>{switch(e.type){case"mention":return`@[${e.content.label}](${e.content.id})`;default:return e.content}}).join(""),ue=n=>{const{dataStream:e,customRanges:t}=n,r=e.length-2,o=[];let i=0;return t==null||t.forEach(l=>{i<l.startIndex&&o.push({type:"text",content:e.slice(i,l.startIndex)}),o.push({type:"mention",content:{label:e.slice(l.startIndex,l.endIndex).slice(1,-1),id:l.rangeId}}),i=l.endIndex}),o.push({type:"text",content:e.slice(i,r)}),o},he=n=>{let e="";const t=[];return n.forEach(r=>{switch(r.type){case"text":e+=r.content;break;case"mention":{const o=e.length;e+=`${r.content.label}`;const i=e.length;t.push({rangeId:r.content.id,rangeType:d.CustomRangeType.MENTION,startIndex:o,endIndex:i});break}}}),e+=`
2
+ \r`,{textRuns:[],paragraphs:[{startIndex:e.length-2,paragraphStyle:{}}],sectionBreaks:[{startIndex:e.length-1}],dataStream:e,customRanges:t}},Ge=n=>({display:n.label,id:`${n.id}`,raw:n}),Ke=(n,e,t,r,o)=>{var l,u;const i=(l=n.raw)==null?void 0:l.icon;return a.createElement("div",{className:Y.threadCommentEditorSuggestion},i?a.createElement("img",{className:Y.threadCommentEditorSuggestionIcon,src:i}):null,a.createElement("div",null,(u=n.display)!=null?u:n.id))},ve=a.forwardRef((n,e)=>{var h;const{comment:t,onSave:r,id:o,onCancel:i,autoFocus:l}=n,u=y.useDependency(J),c=y.useDependency(d.LocaleService),[g,p]=a.useState({...t}),[U,I]=a.useState(!1),S=a.useRef(null);return a.useImperativeHandle(e,()=>({reply(b){var v;p({...t,text:b,attachments:[]}),(v=S.current)==null||v.inputElement.focus()}})),a.createElement("div",{className:Y.threadCommentEditor,onClick:b=>b.preventDefault()},a.createElement(x.Mentions,{ref:S,autoFocus:l,style:{width:"100%"},placeholder:c.t("threadCommentUI.editor.placeholder"),value:g!=null&&g.text?Ye(ue(g.text)):"",onChange:b=>{b.target.value||p({...t,text:void 0}),p==null||p({...t,text:he(Ze(b.target.value))})},onFocus:()=>{I(!0)}},a.createElement(x.Mention,{key:u.trigger,trigger:u.trigger,data:(b,v)=>u.getMentions(b).then(M=>M.map(Ge)).then(v),displayTransform:(b,v)=>`@${v} `,renderSuggestion:(h=u.renderSuggestion)!=null?h:Ke})),U?a.createElement("div",{className:Y.threadCommentEditorButtons},a.createElement(x.Button,{style:{marginRight:12},onClick:()=>{i==null||i(),I(!1),p({text:void 0})}},c.t("threadCommentUI.editor.cancel")),a.createElement(x.Button,{type:"primary",disabled:!g.text,onClick:()=>{g.text&&(r==null||r({...g,text:g.text}),I(!1),p({text:void 0}))}},c.t(o?"threadCommentUI.editor.save":"threadCommentUI.editor.reply"))):null)}),Je="univer-thread-comment",Qe="univer-thread-comment-active",Xe="univer-thread-comment-content",et="univer-thread-comment-highlight",tt="univer-thread-comment-icon-container",nt="univer-thread-comment-icon",rt="univer-thread-comment-title",at="univer-thread-comment-title-position",ot="univer-thread-comment-title-highlight",it="univer-thread-comment-username",st="univer-thread-comment-item",lt="univer-thread-comment-item-head",mt="univer-thread-comment-item-title",dt="univer-thread-comment-item-title-position",ct="univer-thread-comment-item-title-highlight",ut="univer-thread-comment-item-time",ht="univer-thread-comment-item-content",vt="univer-thread-comment-item-at",f={threadComment:Je,threadCommentActive:Qe,threadCommentContent:Xe,threadCommentHighlight:et,threadCommentIconContainer:tt,threadCommentIcon:nt,threadCommentTitle:rt,threadCommentTitlePosition:at,threadCommentTitleHighlight:ot,threadCommentUsername:it,threadCommentItem:st,threadCommentItemHead:lt,threadCommentItemTitle:mt,threadCommentItemTitlePosition:dt,threadCommentItemTitleHighlight:ct,threadCommentItemTime:ut,threadCommentItemContent:ht,threadCommentItemAt:vt},Ce="__mock__",Ct=n=>{const{item:e,unitId:t,subUnitId:r,editing:o,onEditingChange:i,onReply:l,resolved:u,isRoot:c,onClose:g}=n,p=y.useDependency(d.ICommandService),U=y.useDependency(d.LocaleService),I=y.useDependency(d.UserManagerService),S=I.getUser(e.personId),h=R.useObservable(I.currentUser$),b=(h==null?void 0:h.userID)===e.personId,v=e.id===Ce,[M,H]=a.useState(!1),m=()=>{p.executeCommand(c?O.DeleteCommentTreeCommand.id:O.DeleteCommentCommand.id,{unitId:t,subUnitId:r,commentId:e.id}),c&&(g==null||g())};return a.createElement("div",{className:f.threadCommentItem,onMouseLeave:()=>H(!1),onMouseEnter:()=>H(!0)},a.createElement("img",{className:f.threadCommentItemHead,src:S==null?void 0:S.avatar}),a.createElement("div",{className:f.threadCommentItemTitle},a.createElement("div",{className:f.threadCommentUsername},(S==null?void 0:S.name)||" "),a.createElement("div",null,v||u?null:M?a.createElement("div",{className:f.threadCommentIcon,onClick:()=>l(S)},a.createElement(me,null)):null,b&&!v&&!u?a.createElement(x.Dropdown,{overlay:a.createElement(x.Menu,null,a.createElement(x.MenuItem,{key:"edit",onClick:()=>i==null?void 0:i(!0)},U.t("threadCommentUI.item.edit")),a.createElement(x.MenuItem,{key:"delete",onClick:m},U.t("threadCommentUI.item.delete")))},a.createElement("div",{className:f.threadCommentIcon},a.createElement(le,null))):null)),a.createElement("div",{className:f.threadCommentItemTime},e.dT),o?a.createElement(ve,{id:e.id,comment:e,onCancel:()=>i==null?void 0:i(!1),autoFocus:!0,onSave:({text:C,attachments:L})=>{i==null||i(!1),p.executeCommand(O.UpdateCommentCommand.id,{unitId:t,subUnitId:r,payload:{commentId:e.id,text:C,attachments:L}})}}):a.createElement("div",{className:f.threadCommentItemContent},ue(e.text).map((C,L)=>{switch(C.type){case"mention":return a.createElement("a",{className:f.threadCommentItemAt,key:L},"@",C.content.label," ");default:return C.content}})))},fe=n=>{var j,V,F;const{id:e,unitId:t,subUnitId:r,refStr:o,showEdit:i=!0,onClick:l,showHighlight:u,onClose:c,getSubUnitName:g,prefix:p,autoFocus:U,onMouseEnter:I,onMouseLeave:S}=n,h=y.useDependency(O.ThreadCommentModel),[b,v]=a.useState(!1),[M,H]=a.useState("");R.useObservable(h.commentMap$);const m=e?h.getCommentWithChildren(t,r,e):null,C=y.useDependency(d.ICommandService),L=y.useDependency(d.UserManagerService),D=m==null?void 0:m.root.resolved,E=R.useObservable(L.currentUser$),P=a.useRef(null),A=[...m?[m.root]:[{id:Ce,text:{dataStream:`
3
+ \r`},personId:(j=E==null?void 0:E.userID)!=null?j:"",ref:o!=null?o:"",dT:"",unitId:t,subUnitId:r}],...(V=m==null?void 0:m.children)!=null?V:[]],q=()=>{C.executeCommand(O.ResolveCommentCommand.id,{unitId:t,subUnitId:r,commentId:e,resolved:!D}),c==null||c()},w=()=>{C.executeCommand(O.DeleteCommentTreeCommand.id,{unitId:t,subUnitId:r,commentId:e}),c==null||c()};return a.createElement("div",{className:Se(f.threadComment,{[f.threadCommentActive]:!D&&(u||b||p==="cell")}),onClick:l,id:`${p}-${t}-${r}-${e}`,onMouseEnter:()=>{I==null||I(),v(!0)},onMouseLeave:()=>{S==null||S(),v(!1)}},!D&&u?a.createElement("div",{className:f.threadCommentHighlight}):null,a.createElement("div",{className:f.threadCommentTitle},a.createElement("div",{className:f.threadCommentTitlePosition},a.createElement("div",{className:f.threadCommentTitleHighlight}),o||(m==null?void 0:m.root.ref)," · ",g((F=m==null?void 0:m.root.subUnitId)!=null?F:r)),m?a.createElement("div",{className:f.threadCommentIconContainer},a.createElement("div",{onClick:q,className:f.threadCommentIcon,style:{color:D?"rgb(var(--green-500))":""}},D?a.createElement(de,null):a.createElement(ce,null)),(E==null?void 0:E.userID)===m.root.personId?a.createElement("div",{className:f.threadCommentIcon,onClick:w},a.createElement(ie,null)):null):null),a.createElement("div",{className:f.threadCommentContent},A.map(s=>a.createElement(Ct,{onClose:c,unitId:t,subUnitId:r,item:s,key:s.id,isRoot:s.id===(m==null?void 0:m.root.id),editing:M===s.id,resolved:m==null?void 0:m.root.resolved,onEditingChange:T=>{H(T?s.id:"")},onReply:T=>{var N;T&&((N=P.current)==null||N.reply(he([{type:"mention",content:{id:T.userID,label:T.name}}])))}}))),i&&!M&&!D?a.createElement("div",null,a.createElement(ve,{key:`${U}`,ref:P,onSave:({text:s,attachments:T})=>{C.executeCommand(O.AddCommentCommand.id,{unitId:t,subUnitId:r,comment:{text:s,attachments:T,dT:Ie().format("YYYY/MM/DD HH:mm"),id:d.Tools.generateRandomId(),ref:o,personId:E==null?void 0:E.userID,parentId:m==null?void 0:m.root.id,unitId:t,subUnitId:r}})},autoFocus:U||!m,onCancel:()=>{m||c==null||c()}})):null)},ft="univer-thread-comment-panel",gt="univer-thread-comment",pt="univer-thread-comment-panel-forms",It="univer-select",St="univer-thread-comment-panel-empty",bt="univer-thread-comment-panel-add",z={threadCommentPanel:ft,threadComment:gt,threadCommentPanelForms:pt,select:It,threadCommentPanelEmpty:St,threadCommentPanelAdd:bt},yt=n=>{const{unitId:e,subUnitId$:t,type:r,onAdd:o,getSubUnitName:i,onResolve:l,sortComments:u,onItemLeave:c,onItemEnter:g}=n,[p,U]=a.useState("all"),[I,S]=a.useState("all"),h=y.useDependency(d.LocaleService),b=y.useDependency(d.UserManagerService),v=y.useDependency(O.ThreadCommentModel),[M,H]=a.useState(()=>v.getUnit(e)),m=y.useDependency(exports.ThreadCommentPanelService),C=R.useObservable(m.activeCommentId$),L=R.useObservable(v.commentUpdate$),D=y.useDependency(d.ICommandService),E=R.useObservable(t),P=b.getCurrentUser(),A=a.useRef(!0),q="panel",w=a.useMemo(()=>{var s,T;if(p==="all"){const N=M.map(B=>B[1]).flat().filter(B=>!B.parentId);return u?u(N):N}else return(T=(s=M.find(N=>N[0]===E))==null?void 0:s[1])!=null?T:[]},[p,M,E,u]),j=a.useMemo(()=>I==="resolved"?w.filter(s=>s.resolved):I==="unsolved"?w.filter(s=>!s.resolved):I==="concern_me"&&P!=null&&P.userID?w.map(s=>v.getCommentWithChildren(s.unitId,s.subUnitId,s.id)).map(s=>s!=null&&s.relativeUsers.has(P.userID)?s.root:null).filter(Boolean):w,[w,P==null?void 0:P.userID,I,v]),V=I!=="all"||p!=="all",F=()=>{S("all"),U("all")};return a.useEffect(()=>{e&&H(v.getUnit(e))},[e,v,L]),a.useEffect(()=>{var Q;if(!C)return;if(!A.current){A.current=!0;return}const{unitId:s,subUnitId:T,commentId:N}=C,B=`${q}-${s}-${T}-${N}`;(Q=document.getElementById(B))==null||Q.scrollIntoView({block:"center"})},[C]),a.createElement("div",{className:z.threadCommentPanel},a.createElement("div",{className:z.threadCommentPanelForms},a.createElement(x.Select,{borderless:!0,value:p,onChange:s=>U(s),options:[{value:"current",label:h.t("threadCommentUI.filter.sheet.current")},{value:"all",label:h.t("threadCommentUI.filter.sheet.all")}]}),a.createElement(x.Select,{borderless:!0,value:I,onChange:s=>S(s),options:[{value:"all",label:h.t("threadCommentUI.filter.status.all")},{value:"resolved",label:h.t("threadCommentUI.filter.status.resolved")},{value:"unsolved",label:h.t("threadCommentUI.filter.status.unsolved")},{value:"concern_me",label:h.t("threadCommentUI.filter.status.concernMe")}]})),j==null?void 0:j.map(s=>a.createElement(fe,{prefix:q,getSubUnitName:i,key:s.id,id:s.id,unitId:s.unitId,subUnitId:s.subUnitId,type:r,showEdit:(C==null?void 0:C.commentId)===s.id,showHighlight:(C==null?void 0:C.commentId)===s.id,onClick:()=>{A.current=!1,D.executeCommand(K.id,{unitId:s.unitId,subUnitId:s.subUnitId,commentId:s.id,temp:!0})},onClose:()=>l==null?void 0:l(s.id),onMouseEnter:()=>g==null?void 0:g(s),onMouseLeave:()=>c==null?void 0:c(s)})),j.length?null:a.createElement("div",{className:z.threadCommentPanelEmpty},V?h.t("threadCommentUI.panel.filterEmpty"):h.t("threadCommentUI.panel.empty"),V?a.createElement(x.Button,{onClick:F,type:"link"},h.t("threadCommentUI.panel.reset")):a.createElement(x.Button,{id:"thread-comment-add",className:z.threadCommentPanelAdd,type:"primary",onClick:o},a.createElement(se,null),h.t("threadCommentUI.panel.addComment"))))};exports.IThreadCommentMentionDataService=J;exports.SetActiveCommentOperation=K;exports.THREAD_COMMENT_PANEL=te;exports.ThreadCommentPanel=yt;exports.ThreadCommentTree=fe;exports.ToggleSheetCommentPanelOperation=ne;