@univerjs/thread-comment-ui 0.6.6 → 0.6.7

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,8 +1,8 @@
1
- "use strict";var _e=Object.defineProperty;var je=(n,e,t)=>e in n?_e(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var F=(n,e,t)=>je(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),k=require("@univerjs/thread-comment"),v=require("@univerjs/ui"),oe=require("rxjs"),o=require("react/jsx-runtime"),V=require("@univerjs/design"),l=require("react"),ae=require("@univerjs/docs-ui");var Ue=Object.getOwnPropertyDescriptor,Ne=(n,e,t,r)=>{for(var i=r>1?void 0:r?Ue(e,t):e,s=n.length-1,m;s>=0;s--)(m=n[s])&&(i=m(i)||i);return i},de=(n,e)=>(t,r)=>e(t,r,n);exports.ThreadCommentPanelService=class extends c.Disposable{constructor(t,r){super();F(this,"_panelVisible",!1);F(this,"_panelVisible$",new oe.BehaviorSubject(!1));F(this,"_activeCommentId");F(this,"_activeCommentId$",new oe.BehaviorSubject(void 0));F(this,"panelVisible$",this._panelVisible$.asObservable());F(this,"activeCommentId$",this._activeCommentId$.asObservable());this._sidebarService=t,this._univerInstanceService=r,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$(c.UniverInstanceType.UNIVER_SHEET).pipe(oe.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=Ne([de(0,c.Inject(v.ISidebarService)),de(1,c.IUniverInstanceService)],exports.ThreadCommentPanelService);const ue="thread-comment-panel",Ee="UNIVER_THREAD_COMMENT_UI_PLUGIN",he={id:"thread-comment-ui.operation.toggle-panel",type:c.CommandType.OPERATION,handler(n){const e=n.get(v.ISidebarService),t=n.get(exports.ThreadCommentPanelService);return t.panelVisible?(e.close(),t.setPanelVisible(!1)):(e.open({header:{title:"threadCommentUI.panel.title"},children:{label:ue},width:330}),t.setPanelVisible(!0)),!0}},B={id:"thread-comment-ui.operation.set-active-comment",type:c.CommandType.OPERATION,handler(n,e){return n.get(exports.ThreadCommentPanelService).setActiveComment(e),!0}},Pe="thread-comment-ui.config",le={};var Oe=Object.defineProperty,De=Object.getOwnPropertyDescriptor,Re=(n,e,t)=>e in n?Oe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Me=(n,e,t,r)=>{for(var i=r>1?void 0:r?De(e,t):e,s=n.length-1,m;s>=0;s--)(m=n[s])&&(i=m(i)||i);return i},se=(n,e)=>(t,r)=>e(t,r,n),ve=(n,e,t)=>Re(n,typeof e!="symbol"?e+"":e,t);exports.UniverThreadCommentUIPlugin=class extends c.Plugin{constructor(e=le,t,r,i){super(),this._config=e,this._injector=t,this._commandService=r,this._configService=i;const{menu:s,...m}=c.merge({},le,this._config);s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig(Pe,m)}onStarting(){var e;c.mergeOverrideWithDependencies([[exports.ThreadCommentPanelService]],(e=this._config)==null?void 0:e.overrides).forEach(t=>{this._injector.add(t)}),[he,B].forEach(t=>{this._commandService.registerCommand(t)})}};ve(exports.UniverThreadCommentUIPlugin,"pluginName",Ee);ve(exports.UniverThreadCommentUIPlugin,"type",c.UniverInstanceType.UNIVER_UNKNOWN);exports.UniverThreadCommentUIPlugin=Me([c.DependentOn(k.UniverThreadCommentPlugin),se(1,c.Inject(c.Injector)),se(2,c.ICommandService),se(3,c.IConfigService)],exports.UniverThreadCommentUIPlugin);var M=function(){return M=Object.assign||function(n){for(var e,t=1,r=arguments.length;t<r;t++){e=arguments[t];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i])}return n},M.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 i=0,r=Object.getOwnPropertySymbols(n);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(n,r[i])&&(t[r[i]]=n[r[i]]);return t},q=l.forwardRef(function(n,e){var t=n.icon,r=n.id,i=n.className,s=n.extend,m=we(n,["icon","id","className","extend"]),p="univerjs-icon univerjs-icon-".concat(r," ").concat(i||"").trim(),S=l.useRef("_".concat(ke()));return Ce(t,"".concat(r),{defIds:t.defIds,idSuffix:S.current},M({ref:e,className:p},m),s)});function Ce(n,e,t,r,i){return l.createElement(n.tag,M(M({key:e},$e(n,t,i)),r),(He(n,t).children||[]).map(function(s,m){return Ce(s,"".concat(e,"-").concat(n.tag,"-").concat(m),t,void 0,i)}))}function $e(n,e,t){var r=M({},n.attrs);t!=null&&t.colorChannel1&&r.fill==="colorChannel1"&&(r.fill=t.colorChannel1),n.tag==="mask"&&r.id&&(r.id=r.id+e.idSuffix),Object.entries(r).forEach(function(s){var m=s[0],p=s[1];m==="mask"&&typeof p=="string"&&(r[m]=p.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))});var i=e.defIds;return!i||i.length===0||(n.tag==="use"&&r["xlink:href"]&&(r["xlink:href"]=r["xlink:href"]+e.idSuffix),Object.entries(r).forEach(function(s){var m=s[0],p=s[1];typeof p=="string"&&(r[m]=p.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),r}function He(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)?M(M({},n),{children:n.children.map(function(i){return typeof i.attrs.id=="string"&&r&&r.indexOf(i.attrs.id)>-1?M(M({},i),{attrs:M(M({},i.attrs),{id:i.attrs.id+e.idSuffix})}):i})}):n}function ke(){return Math.random().toString(36).substring(2,8)}q.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"}}]},fe=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"delete-single",ref:e,icon:Le}))});fe.displayName="DeleteSingle";var Ve={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"}}]},pe=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"increase-single",ref:e,icon:Ve}))});pe.displayName="IncreaseSingle";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"}}]},ge=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"more-horizontal-single",ref:e,icon:Ae}))});ge.displayName="MoreHorizontalSingle";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}}]},Ie=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"reply-to-comment-single",ref:e,icon:Be}))});Ie.displayName="ReplyToCommentSingle";var We={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"}}]},xe=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"resolved-single",ref:e,icon:We}))});xe.displayName="ResolvedSingle";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}}]},Se=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"solve-single",ref:e,icon:Fe}))});Se.displayName="SolveSingle";const qe="univer-thread-comment-editor-buttons",ce={threadCommentEditorButtons:qe};function me(n){return{id:"d",body:n,documentStyle:{}}}const be=l.forwardRef((n,e)=>{var H;const{comment:t,onSave:r,id:i,onCancel:s,autoFocus:m,unitId:p,type:S}=n,U=v.useDependency(c.ICommandService),P=v.useDependency(c.LocaleService),[L,O]=l.useState(!1),N=v.useDependency(ae.IEditorService),h=l.useRef(null),I=S===c.UniverInstanceType.UNIVER_SHEET?c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:p,[D,T]=l.useState(()=>{var u,C,x;return c.BuildTextUtils.transform.getPlainText((x=(C=(u=h.current)==null?void 0:u.getDocumentData().body)==null?void 0:C.dataStream)!=null?x:"")});l.useEffect(()=>{var C,x,d,f;T(c.BuildTextUtils.transform.getPlainText((d=(x=(C=h.current)==null?void 0:C.getDocumentData().body)==null?void 0:x.dataStream)!=null?d:""));const u=(f=h.current)==null?void 0:f.selectionChange$.subscribe(()=>{var z,_,y;T(c.BuildTextUtils.transform.getPlainText((y=(_=(z=h.current)==null?void 0:z.getDocumentData().body)==null?void 0:_.dataStream)!=null?y:""))});return()=>u==null?void 0:u.unsubscribe()},[(H=h.current)==null?void 0:H.selectionChange$]);const w=l.useMemo(()=>({keyCodes:[{keyCode:v.KeyCode.ENTER}],handler:u=>{u===v.KeyCode.ENTER&&U.executeCommand(ae.BreakLineCommand.id)}}),[U]);l.useImperativeHandle(e,()=>({reply(u){var C,x;(C=h.current)==null||C.focus(),(x=h.current)==null||x.setDocumentData(me(u))}}));const b=()=>{if(h.current){const u=c.Tools.deepClone(h.current.getDocumentData().body);O(!1),r==null||r({...t,text:u}),h.current.replaceText(""),setTimeout(()=>{var C,x;(C=h.current)==null||C.setSelectionRanges([]),(x=h.current)==null||x.blur()},10)}};return o.jsxs("div",{className:ce.threadCommentEditor,onClick:u=>u.preventDefault(),children:[o.jsx(ae.RichTextEditor,{editorRef:h,autoFocus:m,style:{width:"100%"},keyboardEventConfig:w,placeholder:P.t("threadCommentUI.editor.placeholder"),initialValue:(t==null?void 0:t.text)&&me(t.text),onFocusChange:u=>u&&O(u),isSingle:!1,maxHeight:64,onClickOutside:()=>{setTimeout(()=>{N.focus(I)},30)}}),L?o.jsxs("div",{className:ce.threadCommentEditorButtons,children:[o.jsx(V.Button,{style:{marginRight:12},onClick:()=>{var u;s==null||s(),O(!1),(u=h.current)==null||u.replaceText("",!0),U.executeCommand(B.id)},children:P.t("threadCommentUI.editor.cancel")}),o.jsx(V.Button,{type:"primary",disabled:!D,onClick:b,children:P.t(i?"threadCommentUI.editor.save":"threadCommentUI.editor.reply")})]}):null]})}),ze=n=>{const{dataStream:e,customRanges:t}=n,r=e.endsWith(`\r
1
+ "use strict";var _e=Object.defineProperty;var je=(n,e,t)=>e in n?_e(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var F=(n,e,t)=>je(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),k=require("@univerjs/thread-comment"),v=require("@univerjs/ui"),oe=require("rxjs"),o=require("react/jsx-runtime"),V=require("@univerjs/design"),l=require("react"),ae=require("@univerjs/docs-ui");var Ne=Object.getOwnPropertyDescriptor,Ue=(n,e,t,r)=>{for(var i=r>1?void 0:r?Ne(e,t):e,s=n.length-1,m;s>=0;s--)(m=n[s])&&(i=m(i)||i);return i},de=(n,e)=>(t,r)=>e(t,r,n);exports.ThreadCommentPanelService=class extends c.Disposable{constructor(t,r){super();F(this,"_panelVisible",!1);F(this,"_panelVisible$",new oe.BehaviorSubject(!1));F(this,"_activeCommentId");F(this,"_activeCommentId$",new oe.BehaviorSubject(void 0));F(this,"panelVisible$",this._panelVisible$.asObservable());F(this,"activeCommentId$",this._activeCommentId$.asObservable());this._sidebarService=t,this._univerInstanceService=r,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$(c.UniverInstanceType.UNIVER_SHEET).pipe(oe.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=Ue([de(0,c.Inject(v.ISidebarService)),de(1,c.IUniverInstanceService)],exports.ThreadCommentPanelService);const ue="thread-comment-panel",Ee="UNIVER_THREAD_COMMENT_UI_PLUGIN",he={id:"thread-comment-ui.operation.toggle-panel",type:c.CommandType.OPERATION,handler(n){const e=n.get(v.ISidebarService),t=n.get(exports.ThreadCommentPanelService);return t.panelVisible?(e.close(),t.setPanelVisible(!1)):(e.open({header:{title:"threadCommentUI.panel.title"},children:{label:ue},width:330}),t.setPanelVisible(!0)),!0}},B={id:"thread-comment-ui.operation.set-active-comment",type:c.CommandType.OPERATION,handler(n,e){return n.get(exports.ThreadCommentPanelService).setActiveComment(e),!0}},Pe="thread-comment-ui.config",le={};var Oe=Object.defineProperty,De=Object.getOwnPropertyDescriptor,Re=(n,e,t)=>e in n?Oe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Me=(n,e,t,r)=>{for(var i=r>1?void 0:r?De(e,t):e,s=n.length-1,m;s>=0;s--)(m=n[s])&&(i=m(i)||i);return i},se=(n,e)=>(t,r)=>e(t,r,n),ve=(n,e,t)=>Re(n,typeof e!="symbol"?e+"":e,t);exports.UniverThreadCommentUIPlugin=class extends c.Plugin{constructor(e=le,t,r,i){super(),this._config=e,this._injector=t,this._commandService=r,this._configService=i;const{menu:s,...m}=c.merge({},le,this._config);s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig(Pe,m)}onStarting(){var e;c.mergeOverrideWithDependencies([[exports.ThreadCommentPanelService]],(e=this._config)==null?void 0:e.overrides).forEach(t=>{this._injector.add(t)}),[he,B].forEach(t=>{this._commandService.registerCommand(t)})}};ve(exports.UniverThreadCommentUIPlugin,"pluginName",Ee);ve(exports.UniverThreadCommentUIPlugin,"type",c.UniverInstanceType.UNIVER_UNKNOWN);exports.UniverThreadCommentUIPlugin=Me([c.DependentOn(k.UniverThreadCommentPlugin),se(1,c.Inject(c.Injector)),se(2,c.ICommandService),se(3,c.IConfigService)],exports.UniverThreadCommentUIPlugin);var M=function(){return M=Object.assign||function(n){for(var e,t=1,r=arguments.length;t<r;t++){e=arguments[t];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i])}return n},M.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 i=0,r=Object.getOwnPropertySymbols(n);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(n,r[i])&&(t[r[i]]=n[r[i]]);return t},q=l.forwardRef(function(n,e){var t=n.icon,r=n.id,i=n.className,s=n.extend,m=we(n,["icon","id","className","extend"]),p="univerjs-icon univerjs-icon-".concat(r," ").concat(i||"").trim(),S=l.useRef("_".concat(ke()));return Ce(t,"".concat(r),{defIds:t.defIds,idSuffix:S.current},M({ref:e,className:p},m),s)});function Ce(n,e,t,r,i){return l.createElement(n.tag,M(M({key:e},$e(n,t,i)),r),(He(n,t).children||[]).map(function(s,m){return Ce(s,"".concat(e,"-").concat(n.tag,"-").concat(m),t,void 0,i)}))}function $e(n,e,t){var r=M({},n.attrs);t!=null&&t.colorChannel1&&r.fill==="colorChannel1"&&(r.fill=t.colorChannel1),n.tag==="mask"&&r.id&&(r.id=r.id+e.idSuffix),Object.entries(r).forEach(function(s){var m=s[0],p=s[1];m==="mask"&&typeof p=="string"&&(r[m]=p.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))});var i=e.defIds;return!i||i.length===0||(n.tag==="use"&&r["xlink:href"]&&(r["xlink:href"]=r["xlink:href"]+e.idSuffix),Object.entries(r).forEach(function(s){var m=s[0],p=s[1];typeof p=="string"&&(r[m]=p.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),r}function He(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)?M(M({},n),{children:n.children.map(function(i){return typeof i.attrs.id=="string"&&r&&r.indexOf(i.attrs.id)>-1?M(M({},i),{attrs:M(M({},i.attrs),{id:i.attrs.id+e.idSuffix})}):i})}):n}function ke(){return Math.random().toString(36).substring(2,8)}q.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"}}]},fe=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"delete-single",ref:e,icon:Le}))});fe.displayName="DeleteSingle";var Ve={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"}}]},pe=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"increase-single",ref:e,icon:Ve}))});pe.displayName="IncreaseSingle";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"}}]},ge=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"more-horizontal-single",ref:e,icon:Ae}))});ge.displayName="MoreHorizontalSingle";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}}]},Ie=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"reply-to-comment-single",ref:e,icon:Be}))});Ie.displayName="ReplyToCommentSingle";var We={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"}}]},xe=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"resolved-single",ref:e,icon:We}))});xe.displayName="ResolvedSingle";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}}]},Se=l.forwardRef(function(n,e){return l.createElement(q,Object.assign({},n,{id:"solve-single",ref:e,icon:Fe}))});Se.displayName="SolveSingle";const qe="univer-thread-comment-editor-buttons",ce={threadCommentEditorButtons:qe};function me(n){return{id:"d",body:n,documentStyle:{}}}const be=l.forwardRef((n,e)=>{var H;const{comment:t,onSave:r,id:i,onCancel:s,autoFocus:m,unitId:p,type:S}=n,N=v.useDependency(c.ICommandService),P=v.useDependency(c.LocaleService),[L,O]=l.useState(!1),U=v.useDependency(ae.IEditorService),h=l.useRef(null),I=S===c.UniverInstanceType.UNIVER_SHEET?c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:p,[D,T]=l.useState(()=>{var u,C,x;return c.BuildTextUtils.transform.getPlainText((x=(C=(u=h.current)==null?void 0:u.getDocumentData().body)==null?void 0:C.dataStream)!=null?x:"")});l.useEffect(()=>{var C,x,d,f;T(c.BuildTextUtils.transform.getPlainText((d=(x=(C=h.current)==null?void 0:C.getDocumentData().body)==null?void 0:x.dataStream)!=null?d:""));const u=(f=h.current)==null?void 0:f.selectionChange$.subscribe(()=>{var z,_,y;T(c.BuildTextUtils.transform.getPlainText((y=(_=(z=h.current)==null?void 0:z.getDocumentData().body)==null?void 0:_.dataStream)!=null?y:""))});return()=>u==null?void 0:u.unsubscribe()},[(H=h.current)==null?void 0:H.selectionChange$]);const w=l.useMemo(()=>({keyCodes:[{keyCode:v.KeyCode.ENTER}],handler:u=>{u===v.KeyCode.ENTER&&N.executeCommand(ae.BreakLineCommand.id)}}),[N]);l.useImperativeHandle(e,()=>({reply(u){var C,x;(C=h.current)==null||C.focus(),(x=h.current)==null||x.setDocumentData(me(u))}}));const b=()=>{if(h.current){const u=c.Tools.deepClone(h.current.getDocumentData().body);O(!1),r==null||r({...t,text:u}),h.current.replaceText(""),setTimeout(()=>{var C,x;(C=h.current)==null||C.setSelectionRanges([]),(x=h.current)==null||x.blur()},10)}};return o.jsxs("div",{className:ce.threadCommentEditor,onClick:u=>u.preventDefault(),children:[o.jsx(ae.RichTextEditor,{editorRef:h,autoFocus:m,style:{width:"100%"},keyboardEventConfig:w,placeholder:P.t("threadCommentUI.editor.placeholder"),initialValue:(t==null?void 0:t.text)&&me(t.text),onFocusChange:u=>u&&O(u),isSingle:!1,maxHeight:64,onClickOutside:()=>{setTimeout(()=>{U.focus(I)},30)}}),L?o.jsxs("div",{className:ce.threadCommentEditorButtons,children:[o.jsx(V.Button,{style:{marginRight:12},onClick:()=>{var u;s==null||s(),O(!1),(u=h.current)==null||u.replaceText("",!0),N.executeCommand(B.id)},children:P.t("threadCommentUI.editor.cancel")}),o.jsx(V.Button,{type:"primary",disabled:!D,onClick:b,children:P.t(i?"threadCommentUI.editor.save":"threadCommentUI.editor.reply")})]}):null]})}),ze=n=>{const{dataStream:e,customRanges:t}=n,r=e.endsWith(`\r
2
2
  `)?e.length-2:e.length,i=[];let s=0;return t==null||t.forEach(m=>{s<m.startIndex&&i.push({type:"text",content:e.slice(s,m.startIndex)}),i.push({type:"mention",content:{label:e.slice(m.startIndex,m.endIndex+1),id:m.rangeId}}),s=m.endIndex+1}),i.push({type:"text",content:e.slice(s,r)}),i},Ke=n=>{const{paragraphs:e=[]}=n;let t=0;return e.map(r=>{const i=c.getBodySlice(n,t,r.startIndex);return t=r.startIndex+1,ze(i)})},Ze=n=>{let e="";const t=[];return n.forEach(r=>{switch(r.type){case"text":e+=r.content;break;case"mention":{const i=e.length;e+=r.content.label;const s=e.length-1;t.push({rangeId:r.content.id,rangeType:c.CustomRangeType.MENTION,startIndex:i,endIndex:s,properties:{}});break}}}),e+=`
3
- \r`,{textRuns:[],paragraphs:[{startIndex:e.length-2,paragraphStyle:{}}],sectionBreaks:[{startIndex:e.length-1}],dataStream:e,customRanges:t}},Ge="univer-thread-comment",Ye="univer-thread-comment-active",Je="univer-thread-comment-content",Qe="univer-thread-comment-highlight",Xe="univer-thread-comment-icon-container",et="univer-thread-comment-icon",tt="univer-thread-comment-title",nt="univer-thread-comment-title-position",rt="univer-thread-comment-title-highlight",it="univer-thread-comment-title-position-text",ot="univer-thread-comment-username",at="univer-thread-comment-item",st="univer-thread-comment-item-head",dt="univer-thread-comment-item-title",lt="univer-thread-comment-item-time",ct="univer-thread-comment-item-content",mt="univer-thread-comment-item-at",g={threadComment:Ge,threadCommentActive:Ye,threadCommentContent:Je,threadCommentHighlight:Qe,threadCommentIconContainer:Xe,threadCommentIcon:et,threadCommentTitle:tt,threadCommentTitlePosition:nt,threadCommentTitleHighlight:rt,threadCommentTitlePositionText:it,threadCommentUsername:ot,threadCommentItem:at,threadCommentItemHead:st,threadCommentItemTitle:dt,threadCommentItemTime:lt,threadCommentItemContent:ct,threadCommentItemAt:mt},ye="__mock__",ut=n=>{const{item:e,unitId:t,subUnitId:r,editing:i,onEditingChange:s,onReply:m,resolved:p,isRoot:S,onClose:U,onDeleteComment:P,type:L}=n,O=v.useDependency(c.ICommandService),N=v.useDependency(c.LocaleService),h=v.useDependency(c.UserManagerService),I=h.getUser(e.personId),D=v.useObservable(h.currentUser$),T=(D==null?void 0:D.userID)===e.personId,w=e.id===ye,[b,H]=l.useState(!1),u=()=>{(P==null?void 0:P(e))!==!1&&(O.executeCommand(S?k.DeleteCommentTreeCommand.id:k.DeleteCommentCommand.id,{unitId:t,subUnitId:r,commentId:e.id}),S&&(U==null||U()))};return o.jsxs("div",{className:g.threadCommentItem,onMouseLeave:()=>H(!1),onMouseEnter:()=>H(!0),children:[o.jsx("img",{className:g.threadCommentItemHead,src:I==null?void 0:I.avatar}),o.jsxs("div",{className:g.threadCommentItemTitle,children:[o.jsx("div",{className:g.threadCommentUsername,children:(I==null?void 0:I.name)||" "}),o.jsxs("div",{children:[w||p?null:b?o.jsx("div",{className:g.threadCommentIcon,onClick:()=>m(I),children:o.jsx(Ie,{})}):null,T&&!w&&!p?o.jsx(V.Dropdown,{overlay:o.jsx("div",{className:"univer-rounded-lg univer-p-4 univer-theme",children:o.jsxs("ul",{className:`
3
+ \r`,{textRuns:[],paragraphs:[{startIndex:e.length-2,paragraphStyle:{}}],sectionBreaks:[{startIndex:e.length-1}],dataStream:e,customRanges:t}},Ge="univer-thread-comment",Ye="univer-thread-comment-active",Je="univer-thread-comment-content",Qe="univer-thread-comment-highlight",Xe="univer-thread-comment-icon-container",et="univer-thread-comment-icon",tt="univer-thread-comment-title",nt="univer-thread-comment-title-position",rt="univer-thread-comment-title-highlight",it="univer-thread-comment-title-position-text",ot="univer-thread-comment-username",at="univer-thread-comment-item",st="univer-thread-comment-item-head",dt="univer-thread-comment-item-title",lt="univer-thread-comment-item-time",ct="univer-thread-comment-item-content",mt="univer-thread-comment-item-at",g={threadComment:Ge,threadCommentActive:Ye,threadCommentContent:Je,threadCommentHighlight:Qe,threadCommentIconContainer:Xe,threadCommentIcon:et,threadCommentTitle:tt,threadCommentTitlePosition:nt,threadCommentTitleHighlight:rt,threadCommentTitlePositionText:it,threadCommentUsername:ot,threadCommentItem:at,threadCommentItemHead:st,threadCommentItemTitle:dt,threadCommentItemTime:lt,threadCommentItemContent:ct,threadCommentItemAt:mt},ye="__mock__",ut=n=>{const{item:e,unitId:t,subUnitId:r,editing:i,onEditingChange:s,onReply:m,resolved:p,isRoot:S,onClose:N,onDeleteComment:P,type:L}=n,O=v.useDependency(c.ICommandService),U=v.useDependency(c.LocaleService),h=v.useDependency(c.UserManagerService),I=h.getUser(e.personId),D=v.useObservable(h.currentUser$),T=(D==null?void 0:D.userID)===e.personId,w=e.id===ye,[b,H]=l.useState(!1),u=()=>{(P==null?void 0:P(e))!==!1&&(O.executeCommand(S?k.DeleteCommentTreeCommand.id:k.DeleteCommentCommand.id,{unitId:t,subUnitId:r,commentId:e.id}),S&&(N==null||N()))};return o.jsxs("div",{className:g.threadCommentItem,onMouseLeave:()=>H(!1),onMouseEnter:()=>H(!0),children:[o.jsx("img",{className:g.threadCommentItemHead,src:I==null?void 0:I.avatar}),o.jsxs("div",{className:g.threadCommentItemTitle,children:[o.jsx("div",{className:g.threadCommentUsername,children:(I==null?void 0:I.name)||" "}),o.jsxs("div",{children:[w||p?null:b?o.jsx("div",{className:g.threadCommentIcon,onClick:()=>m(I),children:o.jsx(Ie,{})}):null,T&&!w&&!p?o.jsx(V.Dropdown,{overlay:o.jsx("div",{className:"univer-rounded-lg univer-p-4 univer-theme",children:o.jsxs("ul",{className:`
4
4
  univer-m-0 univer-grid univer-list-none univer-gap-2 univer-p-0
5
5
  univer-text-sm
6
6
  [&_a]:univer-cursor-pointer [&_a]:univer-rounded [&_a]:univer-p-1
7
- `,children:[o.jsx("li",{children:o.jsx("a",{className:"hover:univer-bg-gray-200",onClick:()=>s==null?void 0:s(!0),children:N.t("threadCommentUI.item.edit")})}),o.jsx("li",{children:o.jsx("a",{className:"hover:univer-bg-gray-200",onClick:u,children:N.t("threadCommentUI.item.delete")})})]})}),children:o.jsx("div",{className:g.threadCommentIcon,children:o.jsx(ge,{})})}):null]})]}),o.jsx("div",{className:g.threadCommentItemTime,children:e.dT}),i?o.jsx(be,{type:L,id:e.id,comment:e,onCancel:()=>s==null?void 0:s(!1),autoFocus:!0,unitId:t,subUnitId:r,onSave:({text:C,attachments:x})=>{s==null||s(!1),O.executeCommand(k.UpdateCommentCommand.id,{unitId:t,subUnitId:r,payload:{commentId:e.id,text:C,attachments:x}})}}):o.jsx("div",{className:g.threadCommentItemContent,children:Ke(e.text).map((C,x)=>o.jsx("div",{children:C.map((d,f)=>{switch(d.type){case"mention":return o.jsxs("a",{className:g.threadCommentItemAt,children:[d.content.label," "]},f);default:return d.content}})},x))})]})},Te=n=>{var J,Q,ne;const{id:e,unitId:t,subUnitId:r,refStr:i,showEdit:s=!0,onClick:m,showHighlight:p,onClose:S,getSubUnitName:U,prefix:P,autoFocus:L,onMouseEnter:O,onMouseLeave:N,onAddComment:h,onDeleteComment:I,onResolve:D,type:T}=n,w=v.useDependency(k.ThreadCommentModel),[b,H]=l.useState(!1),[u,C]=l.useState(""),x=l.useMemo(()=>w.commentUpdate$.pipe(oe.debounceTime(16)),[w]);v.useObservable(x);const d=e?w.getCommentWithChildren(t,r,e):null,f=v.useDependency(c.ICommandService),z=v.useDependency(c.UserManagerService),_=d==null?void 0:d.root.resolved,y=v.useObservable(z.currentUser$),K=l.useRef(null),ee=[...d?[d.root]:[{id:ye,text:{dataStream:`
8
- \r`},personId:(J=y==null?void 0:y.userID)!=null?J:"",ref:i!=null?i:"",dT:"",unitId:t,subUnitId:r,threadId:""}],...(Q=d==null?void 0:d.children)!=null?Q:[]],R=l.useRef(null),Z=j=>{j.stopPropagation(),_?f.executeCommand(B.id,{unitId:t,subUnitId:r,commentId:e}):f.executeCommand(B.id),f.executeCommand(k.ResolveCommentCommand.id,{unitId:t,subUnitId:r,commentId:e,resolved:!_}),D==null||D(!_)},A=j=>{j.stopPropagation(),f.executeCommand(B.id),!(d!=null&&d.root&&(I==null?void 0:I(d.root))===!1)&&(f.executeCommand(k.DeleteCommentTreeCommand.id,{unitId:t,subUnitId:r,commentId:e}),S==null||S())};l.useEffect(()=>N==null?void 0:N(),[]);const G=U((ne=d==null?void 0:d.root.subUnitId)!=null?ne:r),Y=s&&!u&&!_,te=`${i||(d==null?void 0:d.root.ref)||""}${G?" · ":""}${G}`;return o.jsxs("div",{className:V.clsx(g.threadComment,{[g.threadCommentActive]:!_&&(p||b||P==="cell")}),onClick:m,id:`${P}-${t}-${r}-${e}`,onMouseEnter:()=>{O==null||O(),H(!0)},onMouseLeave:()=>{N==null||N(),H(!1)},children:[!_&&p?o.jsx("div",{className:g.threadCommentHighlight}):null,o.jsxs("div",{className:g.threadCommentTitle,children:[o.jsxs("div",{className:g.threadCommentTitlePosition,children:[o.jsx("div",{className:g.threadCommentTitleHighlight}),o.jsx(V.Tooltip,{showIfEllipsis:!0,title:te,children:o.jsx("div",{className:g.threadCommentTitlePositionText,children:te})})]}),d?o.jsxs("div",{className:g.threadCommentIconContainer,children:[o.jsx("div",{onClick:Z,className:g.threadCommentIcon,style:{color:_?"rgb(var(--green-500))":""},children:_?o.jsx(xe,{}):o.jsx(Se,{})}),(y==null?void 0:y.userID)===d.root.personId?o.jsx("div",{className:g.threadCommentIcon,onClick:A,children:o.jsx(fe,{})}):null]}):null]}),o.jsx("div",{className:g.threadCommentContent,ref:R,children:ee.map(j=>o.jsx(ut,{onClose:S,unitId:t,subUnitId:r,item:j,isRoot:j.id===(d==null?void 0:d.root.id),editing:u===j.id,resolved:d==null?void 0:d.root.resolved,type:T,onEditingChange:a=>{C(a?j.id:"")},onReply:a=>{a&&requestAnimationFrame(()=>{var $;($=K.current)==null||$.reply(Ze([{type:"mention",content:{id:a.userID,label:a.name}}]))})},onAddComment:h,onDeleteComment:I},j.id))}),Y?o.jsx("div",{children:o.jsx(be,{ref:K,type:T,unitId:t,subUnitId:r,onSave:async({text:j,attachments:a})=>{const $={text:j,attachments:a,dT:k.getDT(),id:c.generateRandomId(),ref:i,personId:y==null?void 0:y.userID,parentId:d==null?void 0:d.root.id,unitId:t,subUnitId:r,threadId:d==null?void 0:d.root.threadId};(h==null?void 0:h($))!==!1&&(await f.executeCommand(k.AddCommentCommand.id,{unitId:t,subUnitId:r,comment:$}),R.current&&(R.current.scrollTop=R.current.scrollHeight))},autoFocus:L||!d,onCancel:()=>{d||S==null||S()}},`${L}`)}):null]})},ht="univer-thread-comment-panel",vt="univer-thread-comment-panel-forms",Ct="univer-thread-comment-panel-empty",ft="univer-thread-comment-panel-add",pt="univer-thread-comment-panel-solved",X={threadCommentPanel:ht,threadCommentPanelForms:vt,threadCommentPanelEmpty:Ct,threadCommentPanelAdd:ft,threadCommentPanelSolved:pt},gt=n=>{const{unitId:e,subUnitId$:t,type:r,onAdd:i,getSubUnitName:s,onResolve:m,sortComments:p,onItemLeave:S,onItemEnter:U,disableAdd:P,tempComment:L,onAddComment:O,onDeleteComment:N,showComments:h}=n,[I,D]=l.useState("all"),[T,w]=l.useState("all"),b=v.useDependency(c.LocaleService),H=v.useDependency(c.UserManagerService),u=v.useDependency(k.ThreadCommentModel),[C,x]=l.useState(()=>u.getUnit(e)),d=v.useDependency(exports.ThreadCommentPanelService),f=v.useObservable(d.activeCommentId$),z=v.useObservable(u.commentUpdate$),_=v.useDependency(c.ICommandService),y=v.useObservable(t),K=l.useRef(!0),ee="panel",R=v.useObservable(H.currentUser$),Z=l.useMemo(()=>{var ie;const a=I==="all"?C:(ie=C.filter(E=>E.subUnitId===y))!=null?ie:[],$=p!=null?p:E=>E,re=a.map(E=>{var W;return{...E.root,children:(W=E.children)!=null?W:[],users:E.relativeUsers}});if(h){const E=new Map;return re.forEach(W=>{E.set(W.id,W)}),[...h,""].map(W=>E.get(W)).filter(Boolean)}else return $(re)},[h,I,C,p,y]),A=l.useMemo(()=>[...Z.filter(a=>!a.resolved),...Z.filter(a=>a.resolved)],[Z]),G=l.useMemo(()=>T==="resolved"?A.filter(a=>a.resolved):T==="unsolved"?A.filter(a=>!a.resolved):T==="concern_me"&&R!=null&&R.userID?A.filter(a=>a==null?void 0:a.users.has(R.userID)):A,[A,R==null?void 0:R.userID,T]),Y=L?[L,...G]:G,te=Y.filter(a=>!a.resolved),J=Y.filter(a=>a.resolved),Q=T!=="all"||I!=="all",ne=()=>{w("all"),D("all")};l.useEffect(()=>{e&&x(u.getUnit(e))},[e,u,z]),l.useEffect(()=>{var E;if(!f)return;if(!K.current){K.current=!0;return}const{unitId:a,subUnitId:$,commentId:re}=f,ie=`${ee}-${a}-${$}-${re}`;(E=document.getElementById(ie))==null||E.scrollIntoView({block:"center"})},[f]);const j=a=>o.jsx(Te,{prefix:ee,getSubUnitName:s,id:a.id,unitId:a.unitId,subUnitId:a.subUnitId,refStr:a.ref,type:r,showEdit:(f==null?void 0:f.commentId)===a.id,showHighlight:(f==null?void 0:f.commentId)===a.id,onClick:()=>{K.current=!1,a.resolved?_.executeCommand(B.id):_.executeCommand(B.id,{unitId:a.unitId,subUnitId:a.subUnitId,commentId:a.id,temp:!1})},onMouseEnter:()=>U==null?void 0:U(a),onMouseLeave:()=>S==null?void 0:S(a),onAddComment:O,onDeleteComment:N,onResolve:$=>m==null?void 0:m(a.id,$)},a.id);return o.jsxs("div",{className:X.threadCommentPanel,children:[o.jsxs("div",{className:X.threadCommentPanelForms,children:[r===c.UniverInstanceType.UNIVER_SHEET?o.jsx(V.Select,{borderless:!0,value:I,onChange:a=>D(a),options:[{value:"current",label:b.t("threadCommentUI.filter.sheet.current")},{value:"all",label:b.t("threadCommentUI.filter.sheet.all")}]}):null,o.jsx(V.Select,{borderless:!0,value:T,onChange:a=>w(a),options:[{value:"all",label:b.t("threadCommentUI.filter.status.all")},{value:"resolved",label:b.t("threadCommentUI.filter.status.resolved")},{value:"unsolved",label:b.t("threadCommentUI.filter.status.unsolved")},{value:"concern_me",label:b.t("threadCommentUI.filter.status.concernMe")}]})]}),te.map(j),J.length?o.jsx("div",{className:X.threadCommentPanelSolved,children:"已解决"}):null,J.map(j),Y.length?null:o.jsxs("div",{className:X.threadCommentPanelEmpty,children:[Q?b.t("threadCommentUI.panel.filterEmpty"):b.t("threadCommentUI.panel.empty"),Q?o.jsx(V.Button,{onClick:ne,type:"link",children:b.t("threadCommentUI.panel.reset")}):o.jsxs(V.Button,{id:"thread-comment-add",className:X.threadCommentPanelAdd,type:"primary",onClick:i,disabled:P,children:[o.jsx(pe,{}),b.t("threadCommentUI.panel.addComment")]})]})]})};exports.SetActiveCommentOperation=B;exports.THREAD_COMMENT_PANEL=ue;exports.ThreadCommentPanel=gt;exports.ThreadCommentTree=Te;exports.ToggleSheetCommentPanelOperation=he;
7
+ `,children:[o.jsx("li",{children:o.jsx("a",{className:"hover:univer-bg-gray-200",onClick:()=>s==null?void 0:s(!0),children:U.t("threadCommentUI.item.edit")})}),o.jsx("li",{children:o.jsx("a",{className:"hover:univer-bg-gray-200",onClick:u,children:U.t("threadCommentUI.item.delete")})})]})}),children:o.jsx("div",{className:g.threadCommentIcon,children:o.jsx(ge,{})})}):null]})]}),o.jsx("div",{className:g.threadCommentItemTime,children:e.dT}),i?o.jsx(be,{type:L,id:e.id,comment:e,onCancel:()=>s==null?void 0:s(!1),autoFocus:!0,unitId:t,subUnitId:r,onSave:({text:C,attachments:x})=>{s==null||s(!1),O.executeCommand(k.UpdateCommentCommand.id,{unitId:t,subUnitId:r,payload:{commentId:e.id,text:C,attachments:x}})}}):o.jsx("div",{className:g.threadCommentItemContent,children:Ke(e.text).map((C,x)=>o.jsx("div",{className:"univer-break-words",children:C.map((d,f)=>{switch(d.type){case"mention":return o.jsxs("a",{className:g.threadCommentItemAt,children:[d.content.label," "]},f);default:return d.content}})},x))})]})},Te=n=>{var J,Q,ne;const{id:e,unitId:t,subUnitId:r,refStr:i,showEdit:s=!0,onClick:m,showHighlight:p,onClose:S,getSubUnitName:N,prefix:P,autoFocus:L,onMouseEnter:O,onMouseLeave:U,onAddComment:h,onDeleteComment:I,onResolve:D,type:T}=n,w=v.useDependency(k.ThreadCommentModel),[b,H]=l.useState(!1),[u,C]=l.useState(""),x=l.useMemo(()=>w.commentUpdate$.pipe(oe.debounceTime(16)),[w]);v.useObservable(x);const d=e?w.getCommentWithChildren(t,r,e):null,f=v.useDependency(c.ICommandService),z=v.useDependency(c.UserManagerService),_=d==null?void 0:d.root.resolved,y=v.useObservable(z.currentUser$),K=l.useRef(null),ee=[...d?[d.root]:[{id:ye,text:{dataStream:`
8
+ \r`},personId:(J=y==null?void 0:y.userID)!=null?J:"",ref:i!=null?i:"",dT:"",unitId:t,subUnitId:r,threadId:""}],...(Q=d==null?void 0:d.children)!=null?Q:[]],R=l.useRef(null),Z=j=>{j.stopPropagation(),_?f.executeCommand(B.id,{unitId:t,subUnitId:r,commentId:e}):f.executeCommand(B.id),f.executeCommand(k.ResolveCommentCommand.id,{unitId:t,subUnitId:r,commentId:e,resolved:!_}),D==null||D(!_)},A=j=>{j.stopPropagation(),f.executeCommand(B.id),!(d!=null&&d.root&&(I==null?void 0:I(d.root))===!1)&&(f.executeCommand(k.DeleteCommentTreeCommand.id,{unitId:t,subUnitId:r,commentId:e}),S==null||S())};l.useEffect(()=>U==null?void 0:U(),[]);const G=N((ne=d==null?void 0:d.root.subUnitId)!=null?ne:r),Y=s&&!u&&!_,te=`${i||(d==null?void 0:d.root.ref)||""}${G?" · ":""}${G}`;return o.jsxs("div",{className:V.clsx(g.threadComment,{[g.threadCommentActive]:!_&&(p||b||P==="cell")}),onClick:m,id:`${P}-${t}-${r}-${e}`,onMouseEnter:()=>{O==null||O(),H(!0)},onMouseLeave:()=>{U==null||U(),H(!1)},children:[!_&&p?o.jsx("div",{className:g.threadCommentHighlight}):null,o.jsxs("div",{className:g.threadCommentTitle,children:[o.jsxs("div",{className:g.threadCommentTitlePosition,children:[o.jsx("div",{className:g.threadCommentTitleHighlight}),o.jsx(V.Tooltip,{showIfEllipsis:!0,title:te,children:o.jsx("div",{className:g.threadCommentTitlePositionText,children:te})})]}),d?o.jsxs("div",{className:g.threadCommentIconContainer,children:[o.jsx("div",{onClick:Z,className:g.threadCommentIcon,style:{color:_?"rgb(var(--green-500))":""},children:_?o.jsx(xe,{}):o.jsx(Se,{})}),(y==null?void 0:y.userID)===d.root.personId?o.jsx("div",{className:g.threadCommentIcon,onClick:A,children:o.jsx(fe,{})}):null]}):null]}),o.jsx("div",{className:g.threadCommentContent,ref:R,children:ee.map(j=>o.jsx(ut,{onClose:S,unitId:t,subUnitId:r,item:j,isRoot:j.id===(d==null?void 0:d.root.id),editing:u===j.id,resolved:d==null?void 0:d.root.resolved,type:T,onEditingChange:a=>{C(a?j.id:"")},onReply:a=>{a&&requestAnimationFrame(()=>{var $;($=K.current)==null||$.reply(Ze([{type:"mention",content:{id:a.userID,label:a.name}}]))})},onAddComment:h,onDeleteComment:I},j.id))}),Y?o.jsx("div",{children:o.jsx(be,{ref:K,type:T,unitId:t,subUnitId:r,onSave:async({text:j,attachments:a})=>{const $={text:j,attachments:a,dT:k.getDT(),id:c.generateRandomId(),ref:i,personId:y==null?void 0:y.userID,parentId:d==null?void 0:d.root.id,unitId:t,subUnitId:r,threadId:d==null?void 0:d.root.threadId};(h==null?void 0:h($))!==!1&&(await f.executeCommand(k.AddCommentCommand.id,{unitId:t,subUnitId:r,comment:$}),R.current&&(R.current.scrollTop=R.current.scrollHeight))},autoFocus:L||!d,onCancel:()=>{d||S==null||S()}},`${L}`)}):null]})},ht="univer-thread-comment-panel",vt="univer-thread-comment-panel-forms",Ct="univer-thread-comment-panel-empty",ft="univer-thread-comment-panel-add",pt="univer-thread-comment-panel-solved",X={threadCommentPanel:ht,threadCommentPanelForms:vt,threadCommentPanelEmpty:Ct,threadCommentPanelAdd:ft,threadCommentPanelSolved:pt},gt=n=>{const{unitId:e,subUnitId$:t,type:r,onAdd:i,getSubUnitName:s,onResolve:m,sortComments:p,onItemLeave:S,onItemEnter:N,disableAdd:P,tempComment:L,onAddComment:O,onDeleteComment:U,showComments:h}=n,[I,D]=l.useState("all"),[T,w]=l.useState("all"),b=v.useDependency(c.LocaleService),H=v.useDependency(c.UserManagerService),u=v.useDependency(k.ThreadCommentModel),[C,x]=l.useState(()=>u.getUnit(e)),d=v.useDependency(exports.ThreadCommentPanelService),f=v.useObservable(d.activeCommentId$),z=v.useObservable(u.commentUpdate$),_=v.useDependency(c.ICommandService),y=v.useObservable(t),K=l.useRef(!0),ee="panel",R=v.useObservable(H.currentUser$),Z=l.useMemo(()=>{var ie;const a=I==="all"?C:(ie=C.filter(E=>E.subUnitId===y))!=null?ie:[],$=p!=null?p:E=>E,re=a.map(E=>{var W;return{...E.root,children:(W=E.children)!=null?W:[],users:E.relativeUsers}});if(h){const E=new Map;return re.forEach(W=>{E.set(W.id,W)}),[...h,""].map(W=>E.get(W)).filter(Boolean)}else return $(re)},[h,I,C,p,y]),A=l.useMemo(()=>[...Z.filter(a=>!a.resolved),...Z.filter(a=>a.resolved)],[Z]),G=l.useMemo(()=>T==="resolved"?A.filter(a=>a.resolved):T==="unsolved"?A.filter(a=>!a.resolved):T==="concern_me"&&R!=null&&R.userID?A.filter(a=>a==null?void 0:a.users.has(R.userID)):A,[A,R==null?void 0:R.userID,T]),Y=L?[L,...G]:G,te=Y.filter(a=>!a.resolved),J=Y.filter(a=>a.resolved),Q=T!=="all"||I!=="all",ne=()=>{w("all"),D("all")};l.useEffect(()=>{e&&x(u.getUnit(e))},[e,u,z]),l.useEffect(()=>{var E;if(!f)return;if(!K.current){K.current=!0;return}const{unitId:a,subUnitId:$,commentId:re}=f,ie=`${ee}-${a}-${$}-${re}`;(E=document.getElementById(ie))==null||E.scrollIntoView({block:"center"})},[f]);const j=a=>o.jsx(Te,{prefix:ee,getSubUnitName:s,id:a.id,unitId:a.unitId,subUnitId:a.subUnitId,refStr:a.ref,type:r,showEdit:(f==null?void 0:f.commentId)===a.id,showHighlight:(f==null?void 0:f.commentId)===a.id,onClick:()=>{K.current=!1,a.resolved?_.executeCommand(B.id):_.executeCommand(B.id,{unitId:a.unitId,subUnitId:a.subUnitId,commentId:a.id,temp:!1})},onMouseEnter:()=>N==null?void 0:N(a),onMouseLeave:()=>S==null?void 0:S(a),onAddComment:O,onDeleteComment:U,onResolve:$=>m==null?void 0:m(a.id,$)},a.id);return o.jsxs("div",{className:X.threadCommentPanel,children:[o.jsxs("div",{className:X.threadCommentPanelForms,children:[r===c.UniverInstanceType.UNIVER_SHEET?o.jsx(V.Select,{borderless:!0,value:I,onChange:a=>D(a),options:[{value:"current",label:b.t("threadCommentUI.filter.sheet.current")},{value:"all",label:b.t("threadCommentUI.filter.sheet.all")}]}):null,o.jsx(V.Select,{borderless:!0,value:T,onChange:a=>w(a),options:[{value:"all",label:b.t("threadCommentUI.filter.status.all")},{value:"resolved",label:b.t("threadCommentUI.filter.status.resolved")},{value:"unsolved",label:b.t("threadCommentUI.filter.status.unsolved")},{value:"concern_me",label:b.t("threadCommentUI.filter.status.concernMe")}]})]}),te.map(j),J.length?o.jsx("div",{className:X.threadCommentPanelSolved,children:"已解决"}):null,J.map(j),Y.length?null:o.jsxs("div",{className:X.threadCommentPanelEmpty,children:[Q?b.t("threadCommentUI.panel.filterEmpty"):b.t("threadCommentUI.panel.empty"),Q?o.jsx(V.Button,{onClick:ne,type:"link",children:b.t("threadCommentUI.panel.reset")}):o.jsxs(V.Button,{id:"thread-comment-add",className:X.threadCommentPanelAdd,type:"primary",onClick:i,disabled:P,children:[o.jsx(pe,{}),b.t("threadCommentUI.panel.addComment")]})]})]})};exports.SetActiveCommentOperation=B;exports.THREAD_COMMENT_PANEL=ue;exports.ThreadCommentPanel=gt;exports.ThreadCommentTree=Te;exports.ToggleSheetCommentPanelOperation=he;
package/lib/es/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  var je = Object.defineProperty;
2
2
  var Ae = (t, e, n) => e in t ? je(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
3
  var B = (t, e, n) => Ae(t, typeof e != "symbol" ? e + "" : e, n);
4
- import { Inject as Te, IUniverInstanceService as Be, Disposable as We, UniverInstanceType as he, CommandType as Ne, DependentOn as Fe, Injector as ze, ICommandService as ie, IConfigService as Ze, Plugin as Ke, merge as Ge, mergeOverrideWithDependencies as Ye, LocaleService as fe, DOCS_NORMAL_EDITOR_UNIT_ID_KEY as qe, BuildTextUtils as Ce, Tools as Je, CustomRangeType as Qe, getBodySlice as Xe, UserManagerService as pe, generateRandomId as et } from "@univerjs/core";
4
+ import { Inject as Ne, IUniverInstanceService as Be, Disposable as We, UniverInstanceType as he, CommandType as Te, DependentOn as Fe, Injector as ze, ICommandService as ie, IConfigService as Ze, Plugin as Ke, merge as Ge, mergeOverrideWithDependencies as Ye, LocaleService as fe, DOCS_NORMAL_EDITOR_UNIT_ID_KEY as qe, BuildTextUtils as Ce, Tools as Je, CustomRangeType as Qe, getBodySlice as Xe, UserManagerService as pe, generateRandomId as et } from "@univerjs/core";
5
5
  import { UniverThreadCommentPlugin as tt, ThreadCommentModel as Ue, getDT as nt, AddCommentCommand as rt, ResolveCommentCommand as it, DeleteCommentTreeCommand as Ee, UpdateCommentCommand as ot, DeleteCommentCommand as at } from "@univerjs/thread-comment";
6
- import { ISidebarService as Oe, useDependency as T, KeyCode as ge, useObservable as W } from "@univerjs/ui";
6
+ import { ISidebarService as Oe, useDependency as N, KeyCode as ge, useObservable as W } from "@univerjs/ui";
7
7
  import { BehaviorSubject as Ie, filter as st, debounceTime as lt } from "rxjs";
8
8
  import { jsxs as S, jsx as l } from "react/jsx-runtime";
9
9
  import { Button as ce, clsx as dt, Tooltip as ct, Dropdown as mt, Select as be } from "@univerjs/design";
@@ -52,12 +52,12 @@ let Y = class extends We {
52
52
  }
53
53
  };
54
54
  Y = pt([
55
- Se(0, Te(Oe)),
55
+ Se(0, Ne(Oe)),
56
56
  Se(1, Be)
57
57
  ], Y);
58
58
  const gt = "thread-comment-panel", It = "UNIVER_THREAD_COMMENT_UI_PLUGIN", bt = {
59
59
  id: "thread-comment-ui.operation.toggle-panel",
60
- type: Ne.OPERATION,
60
+ type: Te.OPERATION,
61
61
  handler(t) {
62
62
  const e = t.get(Oe), n = t.get(Y);
63
63
  return n.panelVisible ? (e.close(), n.setPanelVisible(!1)) : (e.open({
@@ -68,12 +68,12 @@ const gt = "thread-comment-panel", It = "UNIVER_THREAD_COMMENT_UI_PLUGIN", bt =
68
68
  }
69
69
  }, F = {
70
70
  id: "thread-comment-ui.operation.set-active-comment",
71
- type: Ne.OPERATION,
71
+ type: Te.OPERATION,
72
72
  handler(t, e) {
73
73
  return t.get(Y).setActiveComment(e), !0;
74
74
  }
75
75
  }, St = "thread-comment-ui.config", ye = {};
76
- var yt = Object.defineProperty, _t = Object.getOwnPropertyDescriptor, xt = (t, e, n) => e in t ? yt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, Tt = (t, e, n, r) => {
76
+ var yt = Object.defineProperty, _t = Object.getOwnPropertyDescriptor, xt = (t, e, n) => e in t ? yt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, Nt = (t, e, n, r) => {
77
77
  for (var i = r > 1 ? void 0 : r ? _t(e, n) : e, a = t.length - 1, d; a >= 0; a--)
78
78
  (d = t[a]) && (i = d(i) || i);
79
79
  return i;
@@ -101,9 +101,9 @@ let ue = class extends Ke {
101
101
  };
102
102
  Pe(ue, "pluginName", It);
103
103
  Pe(ue, "type", he.UNIVER_UNKNOWN);
104
- ue = Tt([
104
+ ue = Nt([
105
105
  Fe(tt),
106
- ve(1, Te(ze)),
106
+ ve(1, Ne(ze)),
107
107
  ve(2, ie),
108
108
  ve(3, Ze)
109
109
  ], ue);
@@ -115,7 +115,7 @@ var H = function() {
115
115
  }
116
116
  return t;
117
117
  }, H.apply(this, arguments);
118
- }, Nt = function(t, e) {
118
+ }, Tt = function(t, e) {
119
119
  var n = {};
120
120
  for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && e.indexOf(r) < 0 && (n[r] = t[r]);
121
121
  if (t != null && typeof Object.getOwnPropertySymbols == "function")
@@ -123,7 +123,7 @@ var H = function() {
123
123
  e.indexOf(r[i]) < 0 && Object.prototype.propertyIsEnumerable.call(t, r[i]) && (n[r[i]] = t[r[i]]);
124
124
  return n;
125
125
  }, Z = j(function(t, e) {
126
- var n = t.icon, r = t.id, i = t.className, a = t.extend, d = Nt(t, ["icon", "id", "className", "extend"]), C = "univerjs-icon univerjs-icon-".concat(r, " ").concat(i || "").trim(), g = re("_".concat(Ot()));
126
+ var n = t.icon, r = t.id, i = t.className, a = t.extend, d = Tt(t, ["icon", "id", "className", "extend"]), C = "univerjs-icon univerjs-icon-".concat(r, " ").concat(i || "").trim(), g = re("_".concat(Ot()));
127
127
  return $e(n, "".concat(r), { defIds: n.defIds, idSuffix: g.current }, H({ ref: e, className: C }, d), a);
128
128
  });
129
129
  function $e(t, e, n, r, i) {
@@ -213,7 +213,7 @@ function xe(t) {
213
213
  }
214
214
  const Le = j((t, e) => {
215
215
  var R;
216
- const { comment: n, onSave: r, id: i, onCancel: a, autoFocus: d, unitId: C, type: g } = t, N = T(ie), O = T(fe), [w, P] = V(!1), U = T(ht), m = re(null), f = g === he.UNIVER_SHEET ? qe : C, [$, y] = V(() => {
216
+ const { comment: n, onSave: r, id: i, onCancel: a, autoFocus: d, unitId: C, type: g } = t, T = N(ie), O = N(fe), [w, P] = V(!1), U = N(ht), m = re(null), f = g === he.UNIVER_SHEET ? qe : C, [$, y] = V(() => {
217
217
  var c, u, p;
218
218
  return Ce.transform.getPlainText((p = (u = (c = m.current) == null ? void 0 : c.getDocumentData().body) == null ? void 0 : u.dataStream) != null ? p : "");
219
219
  });
@@ -229,11 +229,11 @@ const Le = j((t, e) => {
229
229
  const M = ne(() => ({
230
230
  keyCodes: [{ keyCode: ge.ENTER }],
231
231
  handler: (c) => {
232
- c === ge.ENTER && N.executeCommand(
232
+ c === ge.ENTER && T.executeCommand(
233
233
  Ct.id
234
234
  );
235
235
  }
236
- }), [N]);
236
+ }), [T]);
237
237
  ut(e, () => ({
238
238
  reply(c) {
239
239
  var u, p;
@@ -279,7 +279,7 @@ const Le = j((t, e) => {
279
279
  style: { marginRight: 12 },
280
280
  onClick: () => {
281
281
  var c;
282
- a == null || a(), P(!1), (c = m.current) == null || c.replaceText("", !0), N.executeCommand(F.id);
282
+ a == null || a(), P(!1), (c = m.current) == null || c.replaceText("", !0), T.executeCommand(F.id);
283
283
  },
284
284
  children: O.t("threadCommentUI.editor.cancel")
285
285
  }
@@ -379,7 +379,7 @@ const Le = j((t, e) => {
379
379
  threadCommentItemContent: tn,
380
380
  threadCommentItemAt: nn
381
381
  }, Ve = "__mock__", rn = (t) => {
382
- const { item: e, unitId: n, subUnitId: r, editing: i, onEditingChange: a, onReply: d, resolved: C, isRoot: g, onClose: N, onDeleteComment: O, type: w } = t, P = T(ie), U = T(fe), m = T(pe), f = m.getUser(e.personId), $ = W(m.currentUser$), y = ($ == null ? void 0 : $.userID) === e.personId, M = e.id === Ve, [I, R] = V(!1), c = () => {
382
+ const { item: e, unitId: n, subUnitId: r, editing: i, onEditingChange: a, onReply: d, resolved: C, isRoot: g, onClose: T, onDeleteComment: O, type: w } = t, P = N(ie), U = N(fe), m = N(pe), f = m.getUser(e.personId), $ = W(m.currentUser$), y = ($ == null ? void 0 : $.userID) === e.personId, M = e.id === Ve, [I, R] = V(!1), c = () => {
383
383
  (O == null ? void 0 : O(e)) !== !1 && (P.executeCommand(
384
384
  g ? Ee.id : at.id,
385
385
  {
@@ -387,7 +387,7 @@ const Le = j((t, e) => {
387
387
  subUnitId: r,
388
388
  commentId: e.id
389
389
  }
390
- ), g && (N == null || N()));
390
+ ), g && (T == null || T()));
391
391
  };
392
392
  return /* @__PURE__ */ S("div", { className: v.threadCommentItem, onMouseLeave: () => R(!1), onMouseEnter: () => R(!0), children: [
393
393
  /* @__PURE__ */ l("img", { className: v.threadCommentItemHead, src: f == null ? void 0 : f.avatar }),
@@ -457,7 +457,7 @@ const Le = j((t, e) => {
457
457
  );
458
458
  }
459
459
  }
460
- ) : /* @__PURE__ */ l("div", { className: v.threadCommentItemContent, children: Lt(e.text).map((u, p) => /* @__PURE__ */ l("div", { children: u.map((s, h) => {
460
+ ) : /* @__PURE__ */ l("div", { className: v.threadCommentItemContent, children: Lt(e.text).map((u, p) => /* @__PURE__ */ l("div", { className: "univer-break-words", children: u.map((s, h) => {
461
461
  switch (s.type) {
462
462
  case "mention":
463
463
  return /* @__PURE__ */ S("a", { className: v.threadCommentItemAt, children: [
@@ -480,7 +480,7 @@ const Le = j((t, e) => {
480
480
  onClick: d,
481
481
  showHighlight: C,
482
482
  onClose: g,
483
- getSubUnitName: N,
483
+ getSubUnitName: T,
484
484
  prefix: O,
485
485
  autoFocus: w,
486
486
  onMouseEnter: P,
@@ -489,9 +489,9 @@ const Le = j((t, e) => {
489
489
  onDeleteComment: f,
490
490
  onResolve: $,
491
491
  type: y
492
- } = t, M = T(Ue), [I, R] = V(!1), [c, u] = V(""), p = ne(() => M.commentUpdate$.pipe(lt(16)), [M]);
492
+ } = t, M = N(Ue), [I, R] = V(!1), [c, u] = V(""), p = ne(() => M.commentUpdate$.pipe(lt(16)), [M]);
493
493
  W(p);
494
- const s = e ? M.getCommentWithChildren(n, r, e) : null, h = T(ie), K = T(pe), _ = s == null ? void 0 : s.root.resolved, b = W(K.currentUser$), G = re(null), oe = [
494
+ const s = e ? M.getCommentWithChildren(n, r, e) : null, h = N(ie), K = N(pe), _ = s == null ? void 0 : s.root.resolved, b = W(K.currentUser$), G = re(null), oe = [
495
495
  ...s ? [s.root] : (
496
496
  // mock empty comment
497
497
  [{
@@ -531,7 +531,7 @@ const Le = j((t, e) => {
531
531
  ), g == null || g());
532
532
  };
533
533
  me(() => U == null ? void 0 : U(), []);
534
- const J = N((se = s == null ? void 0 : s.root.subUnitId) != null ? se : r), Q = a && !c && !_, ae = `${i || (s == null ? void 0 : s.root.ref) || ""}${J ? " · " : ""}${J}`;
534
+ const J = T((se = s == null ? void 0 : s.root.subUnitId) != null ? se : r), Q = a && !c && !_, ae = `${i || (s == null ? void 0 : s.root.ref) || ""}${J ? " · " : ""}${J}`;
535
535
  return /* @__PURE__ */ S(
536
536
  "div",
537
537
  {
@@ -654,13 +654,13 @@ const Le = j((t, e) => {
654
654
  onResolve: d,
655
655
  sortComments: C,
656
656
  onItemLeave: g,
657
- onItemEnter: N,
657
+ onItemEnter: T,
658
658
  disableAdd: O,
659
659
  tempComment: w,
660
660
  onAddComment: P,
661
661
  onDeleteComment: U,
662
662
  showComments: m
663
- } = t, [f, $] = V("all"), [y, M] = V("all"), I = T(fe), R = T(pe), c = T(Ue), [u, p] = V(() => c.getUnit(e)), s = T(Y), h = W(s.activeCommentId$), K = W(c.commentUpdate$), _ = T(ie), b = W(n), G = re(!0), oe = "panel", D = W(R.currentUser$), q = ne(() => {
663
+ } = t, [f, $] = V("all"), [y, M] = V("all"), I = N(fe), R = N(pe), c = N(Ue), [u, p] = V(() => c.getUnit(e)), s = N(Y), h = W(s.activeCommentId$), K = W(c.commentUpdate$), _ = N(ie), b = W(n), G = re(!0), oe = "panel", D = W(R.currentUser$), q = ne(() => {
664
664
  var de;
665
665
  const o = f === "all" ? u : (de = u.filter((E) => E.subUnitId === b)) != null ? de : [], k = C != null ? C : (E) => E, le = o.map((E) => {
666
666
  var A;
@@ -717,7 +717,7 @@ const Le = j((t, e) => {
717
717
  }
718
718
  );
719
719
  },
720
- onMouseEnter: () => N == null ? void 0 : N(o),
720
+ onMouseEnter: () => T == null ? void 0 : T(o),
721
721
  onMouseLeave: () => g == null ? void 0 : g(o),
722
722
  onAddComment: P,
723
723
  onDeleteComment: U,
package/lib/index.css CHANGED
@@ -1 +1 @@
1
- .univer-m-0{margin:0}.univer-grid{display:grid}.univer-list-none{list-style-type:none}.univer-gap-2{gap:.5rem}.univer-rounded-lg{border-radius:.5rem}.univer-p-0{padding:0}.univer-p-4{padding:1rem}.univer-text-sm{font-size:.875rem;line-height:1.25rem}.hover\:univer-bg-gray-200:hover{--tw-bg-opacity: 1;background-color:#e3e5ea;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))}.\[\&_a\]\:univer-cursor-pointer a{cursor:pointer}.\[\&_a\]\:univer-rounded a{border-radius:.25rem}.\[\&_a\]\:univer-p-1 a{padding:.25rem}.univer-thread-comment-editor-buttons{margin-top:12px;display:flex;flex-direction:row;justify-content:flex-end}.univer-thread-comment-editor-suggestion{display:flex;align-items:center;font-size:13px;color:rgb(var(--color-black))}.univer-thread-comment-editor-suggestionActive{background-color:rgba(var(--grey-50))}.univer-thread-comment-editor-suggestion-icon{width:24px;height:24px;border-radius:12px;margin-right:6px}.univer-thread-comment{padding:16px;background:rgba(var(--color-white));border:1px solid rgba(var(--grey-200));border-radius:8px;box-sizing:border-box;position:relative;width:278px}.univer-thread-comment-active{box-shadow:var(--box-shadow-base)}.univer-thread-comment-content{max-height:300px;overflow-y:auto;overflow-x:hidden;scrollbar-color:rgba(var(--scrollbar-color),.7) transparent;scrollbar-gutter:auto;scrollbar-width:thin}.univer-thread-comment-highlight{background-color:rgb(var(--gold-400));position:absolute;top:0;left:0;right:0;height:6px;border-top-left-radius:6px;border-top-right-radius:6px}.univer-thread-comment-icon-container{display:flex;flex-direction:row;flex-shrink:0;flex-grow:0}.univer-thread-comment-icon{width:24px;height:24px;border-radius:3px;margin-left:4px;display:inline-flex;justify-content:center;align-items:center;cursor:pointer;font-size:16px}.univer-thread-comment-icon:hover{background-color:rgba(var(--grey-50))}.univer-thread-comment-title{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-bottom:16px;font-size:14px;line-height:20px}.univer-thread-comment-title-position{display:flex;flex-direction:row;align-items:center;flex:1 1 0;overflow:hidden}.univer-thread-comment-title-highlight{width:3px;height:14px;border-radius:1.5px;background-color:rgba(var(--gold-400));margin-right:8px;flex-shrink:0;flex-grow:0}.univer-thread-comment-title-position-text{flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.univer-thread-comment-username{font-size:14px;font-weight:500;line-height:20px}.univer-thread-comment-item{margin-bottom:12px;padding-left:30px;position:relative}.univer-thread-comment-item-head{width:24px;height:24px;border-radius:12px;position:absolute;left:0;top:0}.univer-thread-comment-item-title{display:flex;justify-content:space-between;height:24px;align-items:center;margin-bottom:4px}.univer-thread-comment-item-title-position{color:rgba(var(--color-black));font-size:14px;line-height:20px}.univer-thread-comment-item-title-highlight{width:3px;height:14px;border-radius:2px;margin-right:8px;margin-top:3px;background-color:rgba(var(--gold-400))}.univer-thread-comment-item-time{font-size:12px;line-height:1.5;margin-bottom:4px;color:rgba(var(--grey-600))}.univer-thread-comment-item-content{font-size:13px;line-height:20px;color:rgba(var(--color-black))}.univer-thread-comment-item-at{color:rgba(var(--blue-400))}.univer-thread-comment-panel{min-height:100%;display:flex;flex-direction:column;padding-bottom:12px}.univer-thread-comment-panel .univer-thread-comment{margin-top:12px}.univer-thread-comment-panel-forms{display:flex;flex-direction:row;justify-content:space-between;margin-top:12px}.univer-thread-comment-panel-forms .univer-select{width:120px}.univer-thread-comment-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;color:rgb(var(--grey-600));font-size:13px;flex:1}.univer-thread-comment-panel-add{margin-top:8px;display:flex;flex-direction:row}.univer-thread-comment-panel-add svg{margin-right:6px}.univer-thread-comment-panel-solved{margin-top:12px;font-size:var(--font-size-xs)}
1
+ .univer-m-0{margin:0}.univer-grid{display:grid}.univer-list-none{list-style-type:none}.univer-gap-2{gap:.5rem}.univer-break-words{word-wrap:break-word}.univer-rounded-lg{border-radius:.5rem}.univer-p-0{padding:0}.univer-p-4{padding:1rem}.univer-text-sm{font-size:.875rem;line-height:1.25rem}.hover\:univer-bg-gray-200:hover{--tw-bg-opacity: 1;background-color:#e3e5ea;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))}.\[\&_a\]\:univer-cursor-pointer a{cursor:pointer}.\[\&_a\]\:univer-rounded a{border-radius:.25rem}.\[\&_a\]\:univer-p-1 a{padding:.25rem}.univer-thread-comment-editor-buttons{margin-top:12px;display:flex;flex-direction:row;justify-content:flex-end}.univer-thread-comment-editor-suggestion{display:flex;align-items:center;font-size:13px;color:rgb(var(--color-black))}.univer-thread-comment-editor-suggestionActive{background-color:rgba(var(--grey-50))}.univer-thread-comment-editor-suggestion-icon{width:24px;height:24px;border-radius:12px;margin-right:6px}.univer-thread-comment{padding:16px;background:rgba(var(--color-white));border:1px solid rgba(var(--grey-200));border-radius:8px;box-sizing:border-box;position:relative;width:278px}.univer-thread-comment-active{box-shadow:var(--box-shadow-base)}.univer-thread-comment-content{max-height:300px;overflow-y:auto;overflow-x:hidden;scrollbar-color:rgba(var(--scrollbar-color),.7) transparent;scrollbar-gutter:auto;scrollbar-width:thin}.univer-thread-comment-highlight{background-color:rgb(var(--gold-400));position:absolute;top:0;left:0;right:0;height:6px;border-top-left-radius:6px;border-top-right-radius:6px}.univer-thread-comment-icon-container{display:flex;flex-direction:row;flex-shrink:0;flex-grow:0}.univer-thread-comment-icon{width:24px;height:24px;border-radius:3px;margin-left:4px;display:inline-flex;justify-content:center;align-items:center;cursor:pointer;font-size:16px}.univer-thread-comment-icon:hover{background-color:rgba(var(--grey-50))}.univer-thread-comment-title{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-bottom:16px;font-size:14px;line-height:20px}.univer-thread-comment-title-position{display:flex;flex-direction:row;align-items:center;flex:1 1 0;overflow:hidden}.univer-thread-comment-title-highlight{width:3px;height:14px;border-radius:1.5px;background-color:rgba(var(--gold-400));margin-right:8px;flex-shrink:0;flex-grow:0}.univer-thread-comment-title-position-text{flex:1 1 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.univer-thread-comment-username{font-size:14px;font-weight:500;line-height:20px}.univer-thread-comment-item{margin-bottom:12px;padding-left:30px;position:relative}.univer-thread-comment-item-head{width:24px;height:24px;border-radius:12px;position:absolute;left:0;top:0}.univer-thread-comment-item-title{display:flex;justify-content:space-between;height:24px;align-items:center;margin-bottom:4px}.univer-thread-comment-item-title-position{color:rgba(var(--color-black));font-size:14px;line-height:20px}.univer-thread-comment-item-title-highlight{width:3px;height:14px;border-radius:2px;margin-right:8px;margin-top:3px;background-color:rgba(var(--gold-400))}.univer-thread-comment-item-time{font-size:12px;line-height:1.5;margin-bottom:4px;color:rgba(var(--grey-600))}.univer-thread-comment-item-content{font-size:13px;line-height:20px;color:rgba(var(--color-black))}.univer-thread-comment-item-at{color:rgba(var(--blue-400))}.univer-thread-comment-panel{min-height:100%;display:flex;flex-direction:column;padding-bottom:12px}.univer-thread-comment-panel .univer-thread-comment{margin-top:12px}.univer-thread-comment-panel-forms{display:flex;flex-direction:row;justify-content:space-between;margin-top:12px}.univer-thread-comment-panel-forms .univer-select{width:120px}.univer-thread-comment-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;color:rgb(var(--grey-600));font-size:13px;flex:1}.univer-thread-comment-panel-add{margin-top:8px;display:flex;flex-direction:row}.univer-thread-comment-panel-add svg{margin-right:6px}.univer-thread-comment-panel-solved{margin-top:12px;font-size:var(--font-size-xs)}
package/lib/umd/index.js CHANGED
@@ -1,8 +1,8 @@
1
- (function(c,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@univerjs/core"),require("@univerjs/thread-comment"),require("@univerjs/ui"),require("rxjs"),require("react/jsx-runtime"),require("@univerjs/design"),require("react"),require("@univerjs/docs-ui")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/thread-comment","@univerjs/ui","rxjs","react/jsx-runtime","@univerjs/design","react","@univerjs/docs-ui"],a):(c=typeof globalThis<"u"?globalThis:c||self,a(c.UniverThreadCommentUi={},c.UniverCore,c.UniverThreadComment,c.UniverUi,c.rxjs,c.React,c.UniverDesign,c.React,c.UniverDocsUi))})(this,function(c,a,_,C,te,o,V,m,se){"use strict";var Ge=Object.defineProperty;var Ye=(c,a,_)=>a in c?Ge(c,a,{enumerable:!0,configurable:!0,writable:!0,value:_}):c[a]=_;var K=(c,a,_)=>Ye(c,typeof a!="symbol"?a+"":a,_);var Ne=Object.getOwnPropertyDescriptor,Pe=(n,e,t,r)=>{for(var i=r>1?void 0:r?Ne(e,t):e,d=n.length-1,h;d>=0;d--)(h=n[d])&&(i=h(i)||i);return i},le=(n,e)=>(t,r)=>e(t,r,n);c.ThreadCommentPanelService=class extends a.Disposable{constructor(t,r){super();K(this,"_panelVisible",!1);K(this,"_panelVisible$",new te.BehaviorSubject(!1));K(this,"_activeCommentId");K(this,"_activeCommentId$",new te.BehaviorSubject(void 0));K(this,"panelVisible$",this._panelVisible$.asObservable());K(this,"activeCommentId$",this._activeCommentId$.asObservable());this._sidebarService=t,this._univerInstanceService=r,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$(a.UniverInstanceType.UNIVER_SHEET).pipe(te.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)}},c.ThreadCommentPanelService=Pe([le(0,a.Inject(C.ISidebarService)),le(1,a.IUniverInstanceService)],c.ThreadCommentPanelService);const me="thread-comment-panel",xe="UNIVER_THREAD_COMMENT_UI_PLUGIN",ce={id:"thread-comment-ui.operation.toggle-panel",type:a.CommandType.OPERATION,handler(n){const e=n.get(C.ISidebarService),t=n.get(c.ThreadCommentPanelService);return t.panelVisible?(e.close(),t.setPanelVisible(!1)):(e.open({header:{title:"threadCommentUI.panel.title"},children:{label:me},width:330}),t.setPanelVisible(!0)),!0}},F={id:"thread-comment-ui.operation.set-active-comment",type:a.CommandType.OPERATION,handler(n,e){return n.get(c.ThreadCommentPanelService).setActiveComment(e),!0}},Ee="thread-comment-ui.config",he={};var De=Object.defineProperty,Oe=Object.getOwnPropertyDescriptor,Me=(n,e,t)=>e in n?De(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,He=(n,e,t,r)=>{for(var i=r>1?void 0:r?Oe(e,t):e,d=n.length-1,h;d>=0;d--)(h=n[d])&&(i=h(i)||i);return i},de=(n,e)=>(t,r)=>e(t,r,n),ue=(n,e,t)=>Me(n,typeof e!="symbol"?e+"":e,t);c.UniverThreadCommentUIPlugin=class extends a.Plugin{constructor(e=he,t,r,i){super(),this._config=e,this._injector=t,this._commandService=r,this._configService=i;const{menu:d,...h}=a.merge({},he,this._config);d&&this._configService.setConfig("menu",d,{merge:!0}),this._configService.setConfig(Ee,h)}onStarting(){var e;a.mergeOverrideWithDependencies([[c.ThreadCommentPanelService]],(e=this._config)==null?void 0:e.overrides).forEach(t=>{this._injector.add(t)}),[ce,F].forEach(t=>{this._commandService.registerCommand(t)})}},ue(c.UniverThreadCommentUIPlugin,"pluginName",xe),ue(c.UniverThreadCommentUIPlugin,"type",a.UniverInstanceType.UNIVER_UNKNOWN),c.UniverThreadCommentUIPlugin=He([a.DependentOn(_.UniverThreadCommentPlugin),de(1,a.Inject(a.Injector)),de(2,a.ICommandService),de(3,a.IConfigService)],c.UniverThreadCommentUIPlugin);var M=function(){return M=Object.assign||function(n){for(var e,t=1,r=arguments.length;t<r;t++){e=arguments[t];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i])}return n},M.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 i=0,r=Object.getOwnPropertySymbols(n);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(n,r[i])&&(t[r[i]]=n[r[i]]);return t},q=m.forwardRef(function(n,e){var t=n.icon,r=n.id,i=n.className,d=n.extend,h=we(n,["icon","id","className","extend"]),g="univerjs-icon univerjs-icon-".concat(r," ").concat(i||"").trim(),y=m.useRef("_".concat($e()));return ve(t,"".concat(r),{defIds:t.defIds,idSuffix:y.current},M({ref:e,className:g},h),d)});function ve(n,e,t,r,i){return m.createElement(n.tag,M(M({key:e},ke(n,t,i)),r),(je(n,t).children||[]).map(function(d,h){return ve(d,"".concat(e,"-").concat(n.tag,"-").concat(h),t,void 0,i)}))}function ke(n,e,t){var r=M({},n.attrs);t!=null&&t.colorChannel1&&r.fill==="colorChannel1"&&(r.fill=t.colorChannel1),n.tag==="mask"&&r.id&&(r.id=r.id+e.idSuffix),Object.entries(r).forEach(function(d){var h=d[0],g=d[1];h==="mask"&&typeof g=="string"&&(r[h]=g.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))});var i=e.defIds;return!i||i.length===0||(n.tag==="use"&&r["xlink:href"]&&(r["xlink:href"]=r["xlink:href"]+e.idSuffix),Object.entries(r).forEach(function(d){var h=d[0],g=d[1];typeof g=="string"&&(r[h]=g.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),r}function je(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)?M(M({},n),{children:n.children.map(function(i){return typeof i.attrs.id=="string"&&r&&r.indexOf(i.attrs.id)>-1?M(M({},i),{attrs:M(M({},i.attrs),{id:i.attrs.id+e.idSuffix})}):i})}):n}function $e(){return Math.random().toString(36).substring(2,8)}q.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"}}]},Ce=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"delete-single",ref:e,icon:Le}))});Ce.displayName="DeleteSingle";var Ae={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"}}]},fe=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"increase-single",ref:e,icon:Ae}))});fe.displayName="IncreaseSingle";var Ve={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"}}]},pe=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"more-horizontal-single",ref:e,icon:Ve}))});pe.displayName="MoreHorizontalSingle";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}}]},Ie=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"reply-to-comment-single",ref:e,icon:Be}))});Ie.displayName="ReplyToCommentSingle";var Fe={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"}}]},ge=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"resolved-single",ref:e,icon:Fe}))});ge.displayName="ResolvedSingle";var We={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}}]},Se=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"solve-single",ref:e,icon:We}))});Se.displayName="SolveSingle";const be={threadCommentEditorButtons:"univer-thread-comment-editor-buttons"};function ye(n){return{id:"d",body:n,documentStyle:{}}}const Te=m.forwardRef((n,e)=>{var A;const{comment:t,onSave:r,id:i,onCancel:d,autoFocus:h,unitId:g,type:y}=n,E=C.useDependency(a.ICommandService),H=C.useDependency(a.LocaleService),[B,w]=m.useState(!1),D=C.useDependency(se.IEditorService),v=m.useRef(null),S=y===a.UniverInstanceType.UNIVER_SHEET?a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:g,[k,N]=m.useState(()=>{var u,f,b;return a.BuildTextUtils.transform.getPlainText((b=(f=(u=v.current)==null?void 0:u.getDocumentData().body)==null?void 0:f.dataStream)!=null?b:"")});m.useEffect(()=>{var f,b,l,p;N(a.BuildTextUtils.transform.getPlainText((l=(b=(f=v.current)==null?void 0:f.getDocumentData().body)==null?void 0:b.dataStream)!=null?l:""));const u=(p=v.current)==null?void 0:p.selectionChange$.subscribe(()=>{var Z,P,U;N(a.BuildTextUtils.transform.getPlainText((U=(P=(Z=v.current)==null?void 0:Z.getDocumentData().body)==null?void 0:P.dataStream)!=null?U:""))});return()=>u==null?void 0:u.unsubscribe()},[(A=v.current)==null?void 0:A.selectionChange$]);const $=m.useMemo(()=>({keyCodes:[{keyCode:C.KeyCode.ENTER}],handler:u=>{u===C.KeyCode.ENTER&&E.executeCommand(se.BreakLineCommand.id)}}),[E]);m.useImperativeHandle(e,()=>({reply(u){var f,b;(f=v.current)==null||f.focus(),(b=v.current)==null||b.setDocumentData(ye(u))}}));const T=()=>{if(v.current){const u=a.Tools.deepClone(v.current.getDocumentData().body);w(!1),r==null||r({...t,text:u}),v.current.replaceText(""),setTimeout(()=>{var f,b;(f=v.current)==null||f.setSelectionRanges([]),(b=v.current)==null||b.blur()},10)}};return o.jsxs("div",{className:be.threadCommentEditor,onClick:u=>u.preventDefault(),children:[o.jsx(se.RichTextEditor,{editorRef:v,autoFocus:h,style:{width:"100%"},keyboardEventConfig:$,placeholder:H.t("threadCommentUI.editor.placeholder"),initialValue:(t==null?void 0:t.text)&&ye(t.text),onFocusChange:u=>u&&w(u),isSingle:!1,maxHeight:64,onClickOutside:()=>{setTimeout(()=>{D.focus(S)},30)}}),B?o.jsxs("div",{className:be.threadCommentEditorButtons,children:[o.jsx(V.Button,{style:{marginRight:12},onClick:()=>{var u;d==null||d(),w(!1),(u=v.current)==null||u.replaceText("",!0),E.executeCommand(F.id)},children:H.t("threadCommentUI.editor.cancel")}),o.jsx(V.Button,{type:"primary",disabled:!k,onClick:T,children:H.t(i?"threadCommentUI.editor.save":"threadCommentUI.editor.reply")})]}):null]})}),qe=n=>{const{dataStream:e,customRanges:t}=n,r=e.endsWith(`\r
1
+ (function(c,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@univerjs/core"),require("@univerjs/thread-comment"),require("@univerjs/ui"),require("rxjs"),require("react/jsx-runtime"),require("@univerjs/design"),require("react"),require("@univerjs/docs-ui")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/thread-comment","@univerjs/ui","rxjs","react/jsx-runtime","@univerjs/design","react","@univerjs/docs-ui"],a):(c=typeof globalThis<"u"?globalThis:c||self,a(c.UniverThreadCommentUi={},c.UniverCore,c.UniverThreadComment,c.UniverUi,c.rxjs,c.React,c.UniverDesign,c.React,c.UniverDocsUi))})(this,function(c,a,_,C,te,o,V,m,se){"use strict";var Ge=Object.defineProperty;var Ye=(c,a,_)=>a in c?Ge(c,a,{enumerable:!0,configurable:!0,writable:!0,value:_}):c[a]=_;var K=(c,a,_)=>Ye(c,typeof a!="symbol"?a+"":a,_);var Ne=Object.getOwnPropertyDescriptor,Pe=(n,e,t,r)=>{for(var i=r>1?void 0:r?Ne(e,t):e,d=n.length-1,h;d>=0;d--)(h=n[d])&&(i=h(i)||i);return i},le=(n,e)=>(t,r)=>e(t,r,n);c.ThreadCommentPanelService=class extends a.Disposable{constructor(t,r){super();K(this,"_panelVisible",!1);K(this,"_panelVisible$",new te.BehaviorSubject(!1));K(this,"_activeCommentId");K(this,"_activeCommentId$",new te.BehaviorSubject(void 0));K(this,"panelVisible$",this._panelVisible$.asObservable());K(this,"activeCommentId$",this._activeCommentId$.asObservable());this._sidebarService=t,this._univerInstanceService=r,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$(a.UniverInstanceType.UNIVER_SHEET).pipe(te.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)}},c.ThreadCommentPanelService=Pe([le(0,a.Inject(C.ISidebarService)),le(1,a.IUniverInstanceService)],c.ThreadCommentPanelService);const me="thread-comment-panel",xe="UNIVER_THREAD_COMMENT_UI_PLUGIN",ce={id:"thread-comment-ui.operation.toggle-panel",type:a.CommandType.OPERATION,handler(n){const e=n.get(C.ISidebarService),t=n.get(c.ThreadCommentPanelService);return t.panelVisible?(e.close(),t.setPanelVisible(!1)):(e.open({header:{title:"threadCommentUI.panel.title"},children:{label:me},width:330}),t.setPanelVisible(!0)),!0}},F={id:"thread-comment-ui.operation.set-active-comment",type:a.CommandType.OPERATION,handler(n,e){return n.get(c.ThreadCommentPanelService).setActiveComment(e),!0}},Ee="thread-comment-ui.config",he={};var De=Object.defineProperty,Oe=Object.getOwnPropertyDescriptor,Me=(n,e,t)=>e in n?De(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,we=(n,e,t,r)=>{for(var i=r>1?void 0:r?Oe(e,t):e,d=n.length-1,h;d>=0;d--)(h=n[d])&&(i=h(i)||i);return i},de=(n,e)=>(t,r)=>e(t,r,n),ue=(n,e,t)=>Me(n,typeof e!="symbol"?e+"":e,t);c.UniverThreadCommentUIPlugin=class extends a.Plugin{constructor(e=he,t,r,i){super(),this._config=e,this._injector=t,this._commandService=r,this._configService=i;const{menu:d,...h}=a.merge({},he,this._config);d&&this._configService.setConfig("menu",d,{merge:!0}),this._configService.setConfig(Ee,h)}onStarting(){var e;a.mergeOverrideWithDependencies([[c.ThreadCommentPanelService]],(e=this._config)==null?void 0:e.overrides).forEach(t=>{this._injector.add(t)}),[ce,F].forEach(t=>{this._commandService.registerCommand(t)})}},ue(c.UniverThreadCommentUIPlugin,"pluginName",xe),ue(c.UniverThreadCommentUIPlugin,"type",a.UniverInstanceType.UNIVER_UNKNOWN),c.UniverThreadCommentUIPlugin=we([a.DependentOn(_.UniverThreadCommentPlugin),de(1,a.Inject(a.Injector)),de(2,a.ICommandService),de(3,a.IConfigService)],c.UniverThreadCommentUIPlugin);var M=function(){return M=Object.assign||function(n){for(var e,t=1,r=arguments.length;t<r;t++){e=arguments[t];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i])}return n},M.apply(this,arguments)},He=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 i=0,r=Object.getOwnPropertySymbols(n);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(n,r[i])&&(t[r[i]]=n[r[i]]);return t},q=m.forwardRef(function(n,e){var t=n.icon,r=n.id,i=n.className,d=n.extend,h=He(n,["icon","id","className","extend"]),g="univerjs-icon univerjs-icon-".concat(r," ").concat(i||"").trim(),y=m.useRef("_".concat($e()));return ve(t,"".concat(r),{defIds:t.defIds,idSuffix:y.current},M({ref:e,className:g},h),d)});function ve(n,e,t,r,i){return m.createElement(n.tag,M(M({key:e},ke(n,t,i)),r),(je(n,t).children||[]).map(function(d,h){return ve(d,"".concat(e,"-").concat(n.tag,"-").concat(h),t,void 0,i)}))}function ke(n,e,t){var r=M({},n.attrs);t!=null&&t.colorChannel1&&r.fill==="colorChannel1"&&(r.fill=t.colorChannel1),n.tag==="mask"&&r.id&&(r.id=r.id+e.idSuffix),Object.entries(r).forEach(function(d){var h=d[0],g=d[1];h==="mask"&&typeof g=="string"&&(r[h]=g.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))});var i=e.defIds;return!i||i.length===0||(n.tag==="use"&&r["xlink:href"]&&(r["xlink:href"]=r["xlink:href"]+e.idSuffix),Object.entries(r).forEach(function(d){var h=d[0],g=d[1];typeof g=="string"&&(r[h]=g.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),r}function je(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)?M(M({},n),{children:n.children.map(function(i){return typeof i.attrs.id=="string"&&r&&r.indexOf(i.attrs.id)>-1?M(M({},i),{attrs:M(M({},i.attrs),{id:i.attrs.id+e.idSuffix})}):i})}):n}function $e(){return Math.random().toString(36).substring(2,8)}q.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"}}]},Ce=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"delete-single",ref:e,icon:Le}))});Ce.displayName="DeleteSingle";var Ae={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"}}]},fe=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"increase-single",ref:e,icon:Ae}))});fe.displayName="IncreaseSingle";var Ve={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"}}]},pe=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"more-horizontal-single",ref:e,icon:Ve}))});pe.displayName="MoreHorizontalSingle";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}}]},Ie=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"reply-to-comment-single",ref:e,icon:Be}))});Ie.displayName="ReplyToCommentSingle";var Fe={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"}}]},ge=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"resolved-single",ref:e,icon:Fe}))});ge.displayName="ResolvedSingle";var We={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}}]},Se=m.forwardRef(function(n,e){return m.createElement(q,Object.assign({},n,{id:"solve-single",ref:e,icon:We}))});Se.displayName="SolveSingle";const be={threadCommentEditorButtons:"univer-thread-comment-editor-buttons"};function ye(n){return{id:"d",body:n,documentStyle:{}}}const Te=m.forwardRef((n,e)=>{var A;const{comment:t,onSave:r,id:i,onCancel:d,autoFocus:h,unitId:g,type:y}=n,E=C.useDependency(a.ICommandService),w=C.useDependency(a.LocaleService),[B,H]=m.useState(!1),D=C.useDependency(se.IEditorService),v=m.useRef(null),S=y===a.UniverInstanceType.UNIVER_SHEET?a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:g,[k,N]=m.useState(()=>{var u,f,b;return a.BuildTextUtils.transform.getPlainText((b=(f=(u=v.current)==null?void 0:u.getDocumentData().body)==null?void 0:f.dataStream)!=null?b:"")});m.useEffect(()=>{var f,b,l,p;N(a.BuildTextUtils.transform.getPlainText((l=(b=(f=v.current)==null?void 0:f.getDocumentData().body)==null?void 0:b.dataStream)!=null?l:""));const u=(p=v.current)==null?void 0:p.selectionChange$.subscribe(()=>{var Z,P,U;N(a.BuildTextUtils.transform.getPlainText((U=(P=(Z=v.current)==null?void 0:Z.getDocumentData().body)==null?void 0:P.dataStream)!=null?U:""))});return()=>u==null?void 0:u.unsubscribe()},[(A=v.current)==null?void 0:A.selectionChange$]);const $=m.useMemo(()=>({keyCodes:[{keyCode:C.KeyCode.ENTER}],handler:u=>{u===C.KeyCode.ENTER&&E.executeCommand(se.BreakLineCommand.id)}}),[E]);m.useImperativeHandle(e,()=>({reply(u){var f,b;(f=v.current)==null||f.focus(),(b=v.current)==null||b.setDocumentData(ye(u))}}));const T=()=>{if(v.current){const u=a.Tools.deepClone(v.current.getDocumentData().body);H(!1),r==null||r({...t,text:u}),v.current.replaceText(""),setTimeout(()=>{var f,b;(f=v.current)==null||f.setSelectionRanges([]),(b=v.current)==null||b.blur()},10)}};return o.jsxs("div",{className:be.threadCommentEditor,onClick:u=>u.preventDefault(),children:[o.jsx(se.RichTextEditor,{editorRef:v,autoFocus:h,style:{width:"100%"},keyboardEventConfig:$,placeholder:w.t("threadCommentUI.editor.placeholder"),initialValue:(t==null?void 0:t.text)&&ye(t.text),onFocusChange:u=>u&&H(u),isSingle:!1,maxHeight:64,onClickOutside:()=>{setTimeout(()=>{D.focus(S)},30)}}),B?o.jsxs("div",{className:be.threadCommentEditorButtons,children:[o.jsx(V.Button,{style:{marginRight:12},onClick:()=>{var u;d==null||d(),H(!1),(u=v.current)==null||u.replaceText("",!0),E.executeCommand(F.id)},children:w.t("threadCommentUI.editor.cancel")}),o.jsx(V.Button,{type:"primary",disabled:!k,onClick:T,children:w.t(i?"threadCommentUI.editor.save":"threadCommentUI.editor.reply")})]}):null]})}),qe=n=>{const{dataStream:e,customRanges:t}=n,r=e.endsWith(`\r
2
2
  `)?e.length-2:e.length,i=[];let d=0;return t==null||t.forEach(h=>{d<h.startIndex&&i.push({type:"text",content:e.slice(d,h.startIndex)}),i.push({type:"mention",content:{label:e.slice(h.startIndex,h.endIndex+1),id:h.rangeId}}),d=h.endIndex+1}),i.push({type:"text",content:e.slice(d,r)}),i},ze=n=>{const{paragraphs:e=[]}=n;let t=0;return e.map(r=>{const i=a.getBodySlice(n,t,r.startIndex);return t=r.startIndex+1,qe(i)})},Ke=n=>{let e="";const t=[];return n.forEach(r=>{switch(r.type){case"text":e+=r.content;break;case"mention":{const i=e.length;e+=r.content.label;const d=e.length-1;t.push({rangeId:r.content.id,rangeType:a.CustomRangeType.MENTION,startIndex:i,endIndex:d,properties:{}});break}}}),e+=`
3
- \r`,{textRuns:[],paragraphs:[{startIndex:e.length-2,paragraphStyle:{}}],sectionBreaks:[{startIndex:e.length-1}],dataStream:e,customRanges:t}},I={threadComment:"univer-thread-comment",threadCommentActive:"univer-thread-comment-active",threadCommentContent:"univer-thread-comment-content",threadCommentHighlight:"univer-thread-comment-highlight",threadCommentIconContainer:"univer-thread-comment-icon-container",threadCommentIcon:"univer-thread-comment-icon",threadCommentTitle:"univer-thread-comment-title",threadCommentTitlePosition:"univer-thread-comment-title-position",threadCommentTitleHighlight:"univer-thread-comment-title-highlight",threadCommentTitlePositionText:"univer-thread-comment-title-position-text",threadCommentUsername:"univer-thread-comment-username",threadCommentItem:"univer-thread-comment-item",threadCommentItemHead:"univer-thread-comment-item-head",threadCommentItemTitle:"univer-thread-comment-item-title",threadCommentItemTime:"univer-thread-comment-item-time",threadCommentItemContent:"univer-thread-comment-item-content",threadCommentItemAt:"univer-thread-comment-item-at"},_e="__mock__",Ze=n=>{const{item:e,unitId:t,subUnitId:r,editing:i,onEditingChange:d,onReply:h,resolved:g,isRoot:y,onClose:E,onDeleteComment:H,type:B}=n,w=C.useDependency(a.ICommandService),D=C.useDependency(a.LocaleService),v=C.useDependency(a.UserManagerService),S=v.getUser(e.personId),k=C.useObservable(v.currentUser$),N=(k==null?void 0:k.userID)===e.personId,$=e.id===_e,[T,A]=m.useState(!1),u=()=>{(H==null?void 0:H(e))!==!1&&(w.executeCommand(y?_.DeleteCommentTreeCommand.id:_.DeleteCommentCommand.id,{unitId:t,subUnitId:r,commentId:e.id}),y&&(E==null||E()))};return o.jsxs("div",{className:I.threadCommentItem,onMouseLeave:()=>A(!1),onMouseEnter:()=>A(!0),children:[o.jsx("img",{className:I.threadCommentItemHead,src:S==null?void 0:S.avatar}),o.jsxs("div",{className:I.threadCommentItemTitle,children:[o.jsx("div",{className:I.threadCommentUsername,children:(S==null?void 0:S.name)||" "}),o.jsxs("div",{children:[$||g?null:T?o.jsx("div",{className:I.threadCommentIcon,onClick:()=>h(S),children:o.jsx(Ie,{})}):null,N&&!$&&!g?o.jsx(V.Dropdown,{overlay:o.jsx("div",{className:"univer-rounded-lg univer-p-4 univer-theme",children:o.jsxs("ul",{className:`
3
+ \r`,{textRuns:[],paragraphs:[{startIndex:e.length-2,paragraphStyle:{}}],sectionBreaks:[{startIndex:e.length-1}],dataStream:e,customRanges:t}},I={threadComment:"univer-thread-comment",threadCommentActive:"univer-thread-comment-active",threadCommentContent:"univer-thread-comment-content",threadCommentHighlight:"univer-thread-comment-highlight",threadCommentIconContainer:"univer-thread-comment-icon-container",threadCommentIcon:"univer-thread-comment-icon",threadCommentTitle:"univer-thread-comment-title",threadCommentTitlePosition:"univer-thread-comment-title-position",threadCommentTitleHighlight:"univer-thread-comment-title-highlight",threadCommentTitlePositionText:"univer-thread-comment-title-position-text",threadCommentUsername:"univer-thread-comment-username",threadCommentItem:"univer-thread-comment-item",threadCommentItemHead:"univer-thread-comment-item-head",threadCommentItemTitle:"univer-thread-comment-item-title",threadCommentItemTime:"univer-thread-comment-item-time",threadCommentItemContent:"univer-thread-comment-item-content",threadCommentItemAt:"univer-thread-comment-item-at"},_e="__mock__",Ze=n=>{const{item:e,unitId:t,subUnitId:r,editing:i,onEditingChange:d,onReply:h,resolved:g,isRoot:y,onClose:E,onDeleteComment:w,type:B}=n,H=C.useDependency(a.ICommandService),D=C.useDependency(a.LocaleService),v=C.useDependency(a.UserManagerService),S=v.getUser(e.personId),k=C.useObservable(v.currentUser$),N=(k==null?void 0:k.userID)===e.personId,$=e.id===_e,[T,A]=m.useState(!1),u=()=>{(w==null?void 0:w(e))!==!1&&(H.executeCommand(y?_.DeleteCommentTreeCommand.id:_.DeleteCommentCommand.id,{unitId:t,subUnitId:r,commentId:e.id}),y&&(E==null||E()))};return o.jsxs("div",{className:I.threadCommentItem,onMouseLeave:()=>A(!1),onMouseEnter:()=>A(!0),children:[o.jsx("img",{className:I.threadCommentItemHead,src:S==null?void 0:S.avatar}),o.jsxs("div",{className:I.threadCommentItemTitle,children:[o.jsx("div",{className:I.threadCommentUsername,children:(S==null?void 0:S.name)||" "}),o.jsxs("div",{children:[$||g?null:T?o.jsx("div",{className:I.threadCommentIcon,onClick:()=>h(S),children:o.jsx(Ie,{})}):null,N&&!$&&!g?o.jsx(V.Dropdown,{overlay:o.jsx("div",{className:"univer-rounded-lg univer-p-4 univer-theme",children:o.jsxs("ul",{className:`
4
4
  univer-m-0 univer-grid univer-list-none univer-gap-2 univer-p-0
5
5
  univer-text-sm
6
6
  [&_a]:univer-cursor-pointer [&_a]:univer-rounded [&_a]:univer-p-1
7
- `,children:[o.jsx("li",{children:o.jsx("a",{className:"hover:univer-bg-gray-200",onClick:()=>d==null?void 0:d(!0),children:D.t("threadCommentUI.item.edit")})}),o.jsx("li",{children:o.jsx("a",{className:"hover:univer-bg-gray-200",onClick:u,children:D.t("threadCommentUI.item.delete")})})]})}),children:o.jsx("div",{className:I.threadCommentIcon,children:o.jsx(pe,{})})}):null]})]}),o.jsx("div",{className:I.threadCommentItemTime,children:e.dT}),i?o.jsx(Te,{type:B,id:e.id,comment:e,onCancel:()=>d==null?void 0:d(!1),autoFocus:!0,unitId:t,subUnitId:r,onSave:({text:f,attachments:b})=>{d==null||d(!1),w.executeCommand(_.UpdateCommentCommand.id,{unitId:t,subUnitId:r,payload:{commentId:e.id,text:f,attachments:b}})}}):o.jsx("div",{className:I.threadCommentItemContent,children:ze(e.text).map((f,b)=>o.jsx("div",{children:f.map((l,p)=>{switch(l.type){case"mention":return o.jsxs("a",{className:I.threadCommentItemAt,children:[l.content.label," "]},p);default:return l.content}})},b))})]})},Ue=n=>{var X,ee,ie;const{id:e,unitId:t,subUnitId:r,refStr:i,showEdit:d=!0,onClick:h,showHighlight:g,onClose:y,getSubUnitName:E,prefix:H,autoFocus:B,onMouseEnter:w,onMouseLeave:D,onAddComment:v,onDeleteComment:S,onResolve:k,type:N}=n,$=C.useDependency(_.ThreadCommentModel),[T,A]=m.useState(!1),[u,f]=m.useState(""),b=m.useMemo(()=>$.commentUpdate$.pipe(te.debounceTime(16)),[$]);C.useObservable(b);const l=e?$.getCommentWithChildren(t,r,e):null,p=C.useDependency(a.ICommandService),Z=C.useDependency(a.UserManagerService),P=l==null?void 0:l.root.resolved,U=C.useObservable(Z.currentUser$),R=m.useRef(null),ne=[...l?[l.root]:[{id:_e,text:{dataStream:`
8
- \r`},personId:(X=U==null?void 0:U.userID)!=null?X:"",ref:i!=null?i:"",dT:"",unitId:t,subUnitId:r,threadId:""}],...(ee=l==null?void 0:l.children)!=null?ee:[]],j=m.useRef(null),Y=x=>{x.stopPropagation(),P?p.executeCommand(F.id,{unitId:t,subUnitId:r,commentId:e}):p.executeCommand(F.id),p.executeCommand(_.ResolveCommentCommand.id,{unitId:t,subUnitId:r,commentId:e,resolved:!P}),k==null||k(!P)},W=x=>{x.stopPropagation(),p.executeCommand(F.id),!(l!=null&&l.root&&(S==null?void 0:S(l.root))===!1)&&(p.executeCommand(_.DeleteCommentTreeCommand.id,{unitId:t,subUnitId:r,commentId:e}),y==null||y())};m.useEffect(()=>D==null?void 0:D(),[]);const J=E((ie=l==null?void 0:l.root.subUnitId)!=null?ie:r),Q=d&&!u&&!P,re=`${i||(l==null?void 0:l.root.ref)||""}${J?" · ":""}${J}`;return o.jsxs("div",{className:V.clsx(I.threadComment,{[I.threadCommentActive]:!P&&(g||T||H==="cell")}),onClick:h,id:`${H}-${t}-${r}-${e}`,onMouseEnter:()=>{w==null||w(),A(!0)},onMouseLeave:()=>{D==null||D(),A(!1)},children:[!P&&g?o.jsx("div",{className:I.threadCommentHighlight}):null,o.jsxs("div",{className:I.threadCommentTitle,children:[o.jsxs("div",{className:I.threadCommentTitlePosition,children:[o.jsx("div",{className:I.threadCommentTitleHighlight}),o.jsx(V.Tooltip,{showIfEllipsis:!0,title:re,children:o.jsx("div",{className:I.threadCommentTitlePositionText,children:re})})]}),l?o.jsxs("div",{className:I.threadCommentIconContainer,children:[o.jsx("div",{onClick:Y,className:I.threadCommentIcon,style:{color:P?"rgb(var(--green-500))":""},children:P?o.jsx(ge,{}):o.jsx(Se,{})}),(U==null?void 0:U.userID)===l.root.personId?o.jsx("div",{className:I.threadCommentIcon,onClick:W,children:o.jsx(Ce,{})}):null]}):null]}),o.jsx("div",{className:I.threadCommentContent,ref:j,children:ne.map(x=>o.jsx(Ze,{onClose:y,unitId:t,subUnitId:r,item:x,isRoot:x.id===(l==null?void 0:l.root.id),editing:u===x.id,resolved:l==null?void 0:l.root.resolved,type:N,onEditingChange:s=>{f(s?x.id:"")},onReply:s=>{s&&requestAnimationFrame(()=>{var L;(L=R.current)==null||L.reply(Ke([{type:"mention",content:{id:s.userID,label:s.name}}]))})},onAddComment:v,onDeleteComment:S},x.id))}),Q?o.jsx("div",{children:o.jsx(Te,{ref:R,type:N,unitId:t,subUnitId:r,onSave:async({text:x,attachments:s})=>{const L={text:x,attachments:s,dT:_.getDT(),id:a.generateRandomId(),ref:i,personId:U==null?void 0:U.userID,parentId:l==null?void 0:l.root.id,unitId:t,subUnitId:r,threadId:l==null?void 0:l.root.threadId};(v==null?void 0:v(L))!==!1&&(await p.executeCommand(_.AddCommentCommand.id,{unitId:t,subUnitId:r,comment:L}),j.current&&(j.current.scrollTop=j.current.scrollHeight))},autoFocus:B||!l,onCancel:()=>{l||y==null||y()}},`${B}`)}):null]})},G={threadCommentPanel:"univer-thread-comment-panel",threadCommentPanelForms:"univer-thread-comment-panel-forms",threadCommentPanelEmpty:"univer-thread-comment-panel-empty",threadCommentPanelAdd:"univer-thread-comment-panel-add",threadCommentPanelSolved:"univer-thread-comment-panel-solved"},Re=n=>{const{unitId:e,subUnitId$:t,type:r,onAdd:i,getSubUnitName:d,onResolve:h,sortComments:g,onItemLeave:y,onItemEnter:E,disableAdd:H,tempComment:B,onAddComment:w,onDeleteComment:D,showComments:v}=n,[S,k]=m.useState("all"),[N,$]=m.useState("all"),T=C.useDependency(a.LocaleService),A=C.useDependency(a.UserManagerService),u=C.useDependency(_.ThreadCommentModel),[f,b]=m.useState(()=>u.getUnit(e)),l=C.useDependency(c.ThreadCommentPanelService),p=C.useObservable(l.activeCommentId$),Z=C.useObservable(u.commentUpdate$),P=C.useDependency(a.ICommandService),U=C.useObservable(t),R=m.useRef(!0),ne="panel",j=C.useObservable(A.currentUser$),Y=m.useMemo(()=>{var ae;const s=S==="all"?f:(ae=f.filter(O=>O.subUnitId===U))!=null?ae:[],L=g!=null?g:O=>O,oe=s.map(O=>{var z;return{...O.root,children:(z=O.children)!=null?z:[],users:O.relativeUsers}});if(v){const O=new Map;return oe.forEach(z=>{O.set(z.id,z)}),[...v,""].map(z=>O.get(z)).filter(Boolean)}else return L(oe)},[v,S,f,g,U]),W=m.useMemo(()=>[...Y.filter(s=>!s.resolved),...Y.filter(s=>s.resolved)],[Y]),J=m.useMemo(()=>N==="resolved"?W.filter(s=>s.resolved):N==="unsolved"?W.filter(s=>!s.resolved):N==="concern_me"&&j!=null&&j.userID?W.filter(s=>s==null?void 0:s.users.has(j.userID)):W,[W,j==null?void 0:j.userID,N]),Q=B?[B,...J]:J,re=Q.filter(s=>!s.resolved),X=Q.filter(s=>s.resolved),ee=N!=="all"||S!=="all",ie=()=>{$("all"),k("all")};m.useEffect(()=>{e&&b(u.getUnit(e))},[e,u,Z]),m.useEffect(()=>{var O;if(!p)return;if(!R.current){R.current=!0;return}const{unitId:s,subUnitId:L,commentId:oe}=p,ae=`${ne}-${s}-${L}-${oe}`;(O=document.getElementById(ae))==null||O.scrollIntoView({block:"center"})},[p]);const x=s=>o.jsx(Ue,{prefix:ne,getSubUnitName:d,id:s.id,unitId:s.unitId,subUnitId:s.subUnitId,refStr:s.ref,type:r,showEdit:(p==null?void 0:p.commentId)===s.id,showHighlight:(p==null?void 0:p.commentId)===s.id,onClick:()=>{R.current=!1,s.resolved?P.executeCommand(F.id):P.executeCommand(F.id,{unitId:s.unitId,subUnitId:s.subUnitId,commentId:s.id,temp:!1})},onMouseEnter:()=>E==null?void 0:E(s),onMouseLeave:()=>y==null?void 0:y(s),onAddComment:w,onDeleteComment:D,onResolve:L=>h==null?void 0:h(s.id,L)},s.id);return o.jsxs("div",{className:G.threadCommentPanel,children:[o.jsxs("div",{className:G.threadCommentPanelForms,children:[r===a.UniverInstanceType.UNIVER_SHEET?o.jsx(V.Select,{borderless:!0,value:S,onChange:s=>k(s),options:[{value:"current",label:T.t("threadCommentUI.filter.sheet.current")},{value:"all",label:T.t("threadCommentUI.filter.sheet.all")}]}):null,o.jsx(V.Select,{borderless:!0,value:N,onChange:s=>$(s),options:[{value:"all",label:T.t("threadCommentUI.filter.status.all")},{value:"resolved",label:T.t("threadCommentUI.filter.status.resolved")},{value:"unsolved",label:T.t("threadCommentUI.filter.status.unsolved")},{value:"concern_me",label:T.t("threadCommentUI.filter.status.concernMe")}]})]}),re.map(x),X.length?o.jsx("div",{className:G.threadCommentPanelSolved,children:"已解决"}):null,X.map(x),Q.length?null:o.jsxs("div",{className:G.threadCommentPanelEmpty,children:[ee?T.t("threadCommentUI.panel.filterEmpty"):T.t("threadCommentUI.panel.empty"),ee?o.jsx(V.Button,{onClick:ie,type:"link",children:T.t("threadCommentUI.panel.reset")}):o.jsxs(V.Button,{id:"thread-comment-add",className:G.threadCommentPanelAdd,type:"primary",onClick:i,disabled:H,children:[o.jsx(fe,{}),T.t("threadCommentUI.panel.addComment")]})]})]})};c.SetActiveCommentOperation=F,c.THREAD_COMMENT_PANEL=me,c.ThreadCommentPanel=Re,c.ThreadCommentTree=Ue,c.ToggleSheetCommentPanelOperation=ce,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
7
+ `,children:[o.jsx("li",{children:o.jsx("a",{className:"hover:univer-bg-gray-200",onClick:()=>d==null?void 0:d(!0),children:D.t("threadCommentUI.item.edit")})}),o.jsx("li",{children:o.jsx("a",{className:"hover:univer-bg-gray-200",onClick:u,children:D.t("threadCommentUI.item.delete")})})]})}),children:o.jsx("div",{className:I.threadCommentIcon,children:o.jsx(pe,{})})}):null]})]}),o.jsx("div",{className:I.threadCommentItemTime,children:e.dT}),i?o.jsx(Te,{type:B,id:e.id,comment:e,onCancel:()=>d==null?void 0:d(!1),autoFocus:!0,unitId:t,subUnitId:r,onSave:({text:f,attachments:b})=>{d==null||d(!1),H.executeCommand(_.UpdateCommentCommand.id,{unitId:t,subUnitId:r,payload:{commentId:e.id,text:f,attachments:b}})}}):o.jsx("div",{className:I.threadCommentItemContent,children:ze(e.text).map((f,b)=>o.jsx("div",{className:"univer-break-words",children:f.map((l,p)=>{switch(l.type){case"mention":return o.jsxs("a",{className:I.threadCommentItemAt,children:[l.content.label," "]},p);default:return l.content}})},b))})]})},Ue=n=>{var X,ee,ie;const{id:e,unitId:t,subUnitId:r,refStr:i,showEdit:d=!0,onClick:h,showHighlight:g,onClose:y,getSubUnitName:E,prefix:w,autoFocus:B,onMouseEnter:H,onMouseLeave:D,onAddComment:v,onDeleteComment:S,onResolve:k,type:N}=n,$=C.useDependency(_.ThreadCommentModel),[T,A]=m.useState(!1),[u,f]=m.useState(""),b=m.useMemo(()=>$.commentUpdate$.pipe(te.debounceTime(16)),[$]);C.useObservable(b);const l=e?$.getCommentWithChildren(t,r,e):null,p=C.useDependency(a.ICommandService),Z=C.useDependency(a.UserManagerService),P=l==null?void 0:l.root.resolved,U=C.useObservable(Z.currentUser$),R=m.useRef(null),ne=[...l?[l.root]:[{id:_e,text:{dataStream:`
8
+ \r`},personId:(X=U==null?void 0:U.userID)!=null?X:"",ref:i!=null?i:"",dT:"",unitId:t,subUnitId:r,threadId:""}],...(ee=l==null?void 0:l.children)!=null?ee:[]],j=m.useRef(null),Y=x=>{x.stopPropagation(),P?p.executeCommand(F.id,{unitId:t,subUnitId:r,commentId:e}):p.executeCommand(F.id),p.executeCommand(_.ResolveCommentCommand.id,{unitId:t,subUnitId:r,commentId:e,resolved:!P}),k==null||k(!P)},W=x=>{x.stopPropagation(),p.executeCommand(F.id),!(l!=null&&l.root&&(S==null?void 0:S(l.root))===!1)&&(p.executeCommand(_.DeleteCommentTreeCommand.id,{unitId:t,subUnitId:r,commentId:e}),y==null||y())};m.useEffect(()=>D==null?void 0:D(),[]);const J=E((ie=l==null?void 0:l.root.subUnitId)!=null?ie:r),Q=d&&!u&&!P,re=`${i||(l==null?void 0:l.root.ref)||""}${J?" · ":""}${J}`;return o.jsxs("div",{className:V.clsx(I.threadComment,{[I.threadCommentActive]:!P&&(g||T||w==="cell")}),onClick:h,id:`${w}-${t}-${r}-${e}`,onMouseEnter:()=>{H==null||H(),A(!0)},onMouseLeave:()=>{D==null||D(),A(!1)},children:[!P&&g?o.jsx("div",{className:I.threadCommentHighlight}):null,o.jsxs("div",{className:I.threadCommentTitle,children:[o.jsxs("div",{className:I.threadCommentTitlePosition,children:[o.jsx("div",{className:I.threadCommentTitleHighlight}),o.jsx(V.Tooltip,{showIfEllipsis:!0,title:re,children:o.jsx("div",{className:I.threadCommentTitlePositionText,children:re})})]}),l?o.jsxs("div",{className:I.threadCommentIconContainer,children:[o.jsx("div",{onClick:Y,className:I.threadCommentIcon,style:{color:P?"rgb(var(--green-500))":""},children:P?o.jsx(ge,{}):o.jsx(Se,{})}),(U==null?void 0:U.userID)===l.root.personId?o.jsx("div",{className:I.threadCommentIcon,onClick:W,children:o.jsx(Ce,{})}):null]}):null]}),o.jsx("div",{className:I.threadCommentContent,ref:j,children:ne.map(x=>o.jsx(Ze,{onClose:y,unitId:t,subUnitId:r,item:x,isRoot:x.id===(l==null?void 0:l.root.id),editing:u===x.id,resolved:l==null?void 0:l.root.resolved,type:N,onEditingChange:s=>{f(s?x.id:"")},onReply:s=>{s&&requestAnimationFrame(()=>{var L;(L=R.current)==null||L.reply(Ke([{type:"mention",content:{id:s.userID,label:s.name}}]))})},onAddComment:v,onDeleteComment:S},x.id))}),Q?o.jsx("div",{children:o.jsx(Te,{ref:R,type:N,unitId:t,subUnitId:r,onSave:async({text:x,attachments:s})=>{const L={text:x,attachments:s,dT:_.getDT(),id:a.generateRandomId(),ref:i,personId:U==null?void 0:U.userID,parentId:l==null?void 0:l.root.id,unitId:t,subUnitId:r,threadId:l==null?void 0:l.root.threadId};(v==null?void 0:v(L))!==!1&&(await p.executeCommand(_.AddCommentCommand.id,{unitId:t,subUnitId:r,comment:L}),j.current&&(j.current.scrollTop=j.current.scrollHeight))},autoFocus:B||!l,onCancel:()=>{l||y==null||y()}},`${B}`)}):null]})},G={threadCommentPanel:"univer-thread-comment-panel",threadCommentPanelForms:"univer-thread-comment-panel-forms",threadCommentPanelEmpty:"univer-thread-comment-panel-empty",threadCommentPanelAdd:"univer-thread-comment-panel-add",threadCommentPanelSolved:"univer-thread-comment-panel-solved"},Re=n=>{const{unitId:e,subUnitId$:t,type:r,onAdd:i,getSubUnitName:d,onResolve:h,sortComments:g,onItemLeave:y,onItemEnter:E,disableAdd:w,tempComment:B,onAddComment:H,onDeleteComment:D,showComments:v}=n,[S,k]=m.useState("all"),[N,$]=m.useState("all"),T=C.useDependency(a.LocaleService),A=C.useDependency(a.UserManagerService),u=C.useDependency(_.ThreadCommentModel),[f,b]=m.useState(()=>u.getUnit(e)),l=C.useDependency(c.ThreadCommentPanelService),p=C.useObservable(l.activeCommentId$),Z=C.useObservable(u.commentUpdate$),P=C.useDependency(a.ICommandService),U=C.useObservable(t),R=m.useRef(!0),ne="panel",j=C.useObservable(A.currentUser$),Y=m.useMemo(()=>{var ae;const s=S==="all"?f:(ae=f.filter(O=>O.subUnitId===U))!=null?ae:[],L=g!=null?g:O=>O,oe=s.map(O=>{var z;return{...O.root,children:(z=O.children)!=null?z:[],users:O.relativeUsers}});if(v){const O=new Map;return oe.forEach(z=>{O.set(z.id,z)}),[...v,""].map(z=>O.get(z)).filter(Boolean)}else return L(oe)},[v,S,f,g,U]),W=m.useMemo(()=>[...Y.filter(s=>!s.resolved),...Y.filter(s=>s.resolved)],[Y]),J=m.useMemo(()=>N==="resolved"?W.filter(s=>s.resolved):N==="unsolved"?W.filter(s=>!s.resolved):N==="concern_me"&&j!=null&&j.userID?W.filter(s=>s==null?void 0:s.users.has(j.userID)):W,[W,j==null?void 0:j.userID,N]),Q=B?[B,...J]:J,re=Q.filter(s=>!s.resolved),X=Q.filter(s=>s.resolved),ee=N!=="all"||S!=="all",ie=()=>{$("all"),k("all")};m.useEffect(()=>{e&&b(u.getUnit(e))},[e,u,Z]),m.useEffect(()=>{var O;if(!p)return;if(!R.current){R.current=!0;return}const{unitId:s,subUnitId:L,commentId:oe}=p,ae=`${ne}-${s}-${L}-${oe}`;(O=document.getElementById(ae))==null||O.scrollIntoView({block:"center"})},[p]);const x=s=>o.jsx(Ue,{prefix:ne,getSubUnitName:d,id:s.id,unitId:s.unitId,subUnitId:s.subUnitId,refStr:s.ref,type:r,showEdit:(p==null?void 0:p.commentId)===s.id,showHighlight:(p==null?void 0:p.commentId)===s.id,onClick:()=>{R.current=!1,s.resolved?P.executeCommand(F.id):P.executeCommand(F.id,{unitId:s.unitId,subUnitId:s.subUnitId,commentId:s.id,temp:!1})},onMouseEnter:()=>E==null?void 0:E(s),onMouseLeave:()=>y==null?void 0:y(s),onAddComment:H,onDeleteComment:D,onResolve:L=>h==null?void 0:h(s.id,L)},s.id);return o.jsxs("div",{className:G.threadCommentPanel,children:[o.jsxs("div",{className:G.threadCommentPanelForms,children:[r===a.UniverInstanceType.UNIVER_SHEET?o.jsx(V.Select,{borderless:!0,value:S,onChange:s=>k(s),options:[{value:"current",label:T.t("threadCommentUI.filter.sheet.current")},{value:"all",label:T.t("threadCommentUI.filter.sheet.all")}]}):null,o.jsx(V.Select,{borderless:!0,value:N,onChange:s=>$(s),options:[{value:"all",label:T.t("threadCommentUI.filter.status.all")},{value:"resolved",label:T.t("threadCommentUI.filter.status.resolved")},{value:"unsolved",label:T.t("threadCommentUI.filter.status.unsolved")},{value:"concern_me",label:T.t("threadCommentUI.filter.status.concernMe")}]})]}),re.map(x),X.length?o.jsx("div",{className:G.threadCommentPanelSolved,children:"已解决"}):null,X.map(x),Q.length?null:o.jsxs("div",{className:G.threadCommentPanelEmpty,children:[ee?T.t("threadCommentUI.panel.filterEmpty"):T.t("threadCommentUI.panel.empty"),ee?o.jsx(V.Button,{onClick:ie,type:"link",children:T.t("threadCommentUI.panel.reset")}):o.jsxs(V.Button,{id:"thread-comment-add",className:G.threadCommentPanelAdd,type:"primary",onClick:i,disabled:w,children:[o.jsx(fe,{}),T.t("threadCommentUI.panel.addComment")]})]})]})};c.SetActiveCommentOperation=F,c.THREAD_COMMENT_PANEL=me,c.ThreadCommentPanel=Re,c.ThreadCommentTree=Ue,c.ToggleSheetCommentPanelOperation=ce,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/thread-comment-ui",
3
- "version": "0.6.6",
3
+ "version": "0.6.7",
4
4
  "private": false,
5
5
  "description": "Univer common thread comment UI plugin",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -52,12 +52,12 @@
52
52
  "rxjs": ">=7.0.0"
53
53
  },
54
54
  "dependencies": {
55
- "@univerjs/icons": "^0.2.21",
56
- "@univerjs/design": "0.6.6",
57
- "@univerjs/core": "0.6.6",
58
- "@univerjs/docs-ui": "0.6.6",
59
- "@univerjs/thread-comment": "0.6.6",
60
- "@univerjs/ui": "0.6.6"
55
+ "@univerjs/icons": "^0.2.28",
56
+ "@univerjs/core": "0.6.7",
57
+ "@univerjs/docs-ui": "0.6.7",
58
+ "@univerjs/thread-comment": "0.6.7",
59
+ "@univerjs/design": "0.6.7",
60
+ "@univerjs/ui": "0.6.7"
61
61
  },
62
62
  "devDependencies": {
63
63
  "less": "^4.2.2",
@@ -66,9 +66,9 @@
66
66
  "rxjs": "^7.8.1",
67
67
  "tailwindcss": "^3.4.17",
68
68
  "typescript": "^5.8.2",
69
- "vite": "^6.2.1",
70
- "vitest": "^3.0.8",
71
- "@univerjs-infra/shared": "0.6.6"
69
+ "vite": "^6.2.3",
70
+ "vitest": "^3.0.9",
71
+ "@univerjs-infra/shared": "0.6.7"
72
72
  },
73
73
  "scripts": {
74
74
  "test": "vitest run",