@univerjs/sheets-thread-comment 0.4.2 → 0.5.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -73
- package/lib/cjs/facade.js +1 -0
- package/lib/cjs/index.js +1 -1
- package/lib/es/facade.js +218 -0
- package/lib/es/index.js +331 -784
- package/lib/types/controllers/config.schema.d.ts +17 -6
- package/lib/types/controllers/sheets-thread-comment-ref-range.controller.d.ts +22 -0
- package/lib/types/facade/f-range.d.ts +26 -0
- package/lib/types/facade/f-thread-comment.d.ts +56 -0
- package/lib/types/facade/f-workbook.d.ts +35 -0
- package/lib/types/facade/f-worksheet.d.ts +13 -0
- package/lib/types/{locale/en-US.d.ts → facade/index.d.ts} +4 -9
- package/lib/types/index.d.ts +3 -9
- package/lib/types/models/sheets-thread-comment.model.d.ts +30 -0
- package/lib/types/plugin.d.ts +2 -7
- package/lib/types/types/const.d.ts +1 -3
- package/lib/umd/facade.js +1 -0
- package/lib/umd/index.js +1 -1
- package/package.json +27 -28
- package/lib/locale/en-US.json +0 -8
- package/lib/locale/fa-IR.json +0 -8
- package/lib/locale/ru-RU.json +0 -8
- package/lib/locale/vi-VN.json +0 -8
- package/lib/locale/zh-CN.json +0 -8
- package/lib/locale/zh-TW.json +0 -8
- package/lib/types/commands/operations/comment.operation.d.ts +0 -2
- package/lib/types/controllers/menu.d.ts +0 -12
- package/lib/types/controllers/menu.schema.d.ts +0 -2
- package/lib/types/controllers/render-controllers/render.controller.d.ts +0 -13
- package/lib/types/controllers/sheets-thread-comment-copy-paste.controller.d.ts +0 -12
- package/lib/types/controllers/sheets-thread-comment-hover.controller.d.ts +0 -12
- package/lib/types/controllers/sheets-thread-comment-popup.controller.d.ts +0 -28
- package/lib/types/controllers/sheets-thread-comment-remove.controller.d.ts +0 -11
- package/lib/types/controllers/sheets-thread-comment.controller.d.ts +0 -11
- package/lib/types/locale/fa-IR.d.ts +0 -24
- package/lib/types/locale/ru-RU.d.ts +0 -24
- package/lib/types/locale/vi-VN.d.ts +0 -24
- package/lib/types/locale/zh-CN.d.ts +0 -24
- package/lib/types/locale/zh-TW.d.ts +0 -24
- package/lib/types/services/sheets-thread-comment-popup.service.d.ts +0 -23
- package/lib/types/views/sheets-thread-comment-cell/index.d.ts +0 -2
- package/lib/types/views/sheets-thread-comment-panel/index.d.ts +0 -2
package/README.md
CHANGED
|
@@ -4,93 +4,24 @@
|
|
|
4
4
|
|
|
5
5
|
| Package Name | UMD Namespace | Version | License | Downloads | Contains CSS | Contains i18n locales |
|
|
6
6
|
| --- | --- | --- | --- | --- | :---: | :---: |
|
|
7
|
-
| `@univerjs/sheets-thread-comment` | `
|
|
7
|
+
| `@univerjs/sheets-thread-comment` | `UniverSheetsThreadCommentBase` | [![][npm-version-shield]][npm-version-link] | ![][npm-license-shield] | ![][npm-downloads-shield] | ❌ | ❌ |
|
|
8
8
|
|
|
9
9
|
## Introduction
|
|
10
10
|
|
|
11
|
-
`@univerjs/sheets-thread-comment`
|
|
11
|
+
`@univerjs/sheets-thread-comment` core package for sheet comment. For using, please refer to [@univerjs/sheets-thread-comment](../sheets-thread-comment/README.md)
|
|
12
12
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
15
|
### Installation
|
|
16
16
|
|
|
17
17
|
```shell
|
|
18
|
-
#
|
|
18
|
+
# Using npm
|
|
19
19
|
npm install @univerjs/sheets-thread-comment
|
|
20
20
|
|
|
21
|
-
#
|
|
21
|
+
# Using pnpm
|
|
22
22
|
pnpm add @univerjs/sheets-thread-comment
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
### Register the plugin
|
|
26
|
-
|
|
27
|
-
```typescript
|
|
28
|
-
import { UniverSheetsThreadCommentPlugin, IThreadCommentMentionDataService} from '@univerjs/sheets-thread-comment';
|
|
29
|
-
|
|
30
|
-
const mockUser = {
|
|
31
|
-
userID: 'mockId',
|
|
32
|
-
name: 'MockUser',
|
|
33
|
-
avatar: 'icon-url',
|
|
34
|
-
anonymous: false,
|
|
35
|
-
canBindAnonymous: false,
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
class CustomMentionDataService implements IThreadCommentMentionDataService {
|
|
39
|
-
trigger: string = '@';
|
|
40
|
-
|
|
41
|
-
// Get the common interface implementation of the mentioned user
|
|
42
|
-
async getMentions(search: string) {
|
|
43
|
-
return [
|
|
44
|
-
{
|
|
45
|
-
id: mockUser.userID,
|
|
46
|
-
label: mockUser.name,
|
|
47
|
-
type: 'user',
|
|
48
|
-
icon: mockUser.avatar,
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
id: '2',
|
|
52
|
-
label: 'User2',
|
|
53
|
-
type: 'user',
|
|
54
|
-
icon: mockUser.avatar,
|
|
55
|
-
},
|
|
56
|
-
];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
univer.registerPlugin(UniverSheetsThreadCommentPlugin, {
|
|
61
|
-
overrides: [[IThreadCommentMentionDataService, { useClass: CustomMentionDataService }]],
|
|
62
|
-
});
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### API
|
|
66
|
-
```typescript
|
|
67
|
-
import {
|
|
68
|
-
AddCommentCommand,
|
|
69
|
-
DeleteCommentCommand,
|
|
70
|
-
UpdateCommentCommand,
|
|
71
|
-
ResolveCommentCommand,
|
|
72
|
-
DeleteCommentTreeCommand,
|
|
73
|
-
} from '@univerjs/sheets-thread-comment';
|
|
74
|
-
import type {
|
|
75
|
-
IAddCommentCommandParams,
|
|
76
|
-
IDeleteCommentCommandParams,
|
|
77
|
-
IResolveCommentCommandParams,
|
|
78
|
-
IUpdateCommentCommandParams,
|
|
79
|
-
IDeleteCommentTreeCommandParams,
|
|
80
|
-
} from '@univerjs/sheets-thread-comment';
|
|
81
|
-
|
|
82
|
-
// Add comment by command
|
|
83
|
-
const commandService = univer.__getInjector().get(ICommandService);
|
|
84
|
-
|
|
85
|
-
commandService.executeCommand(AddCommentCommand.id, {
|
|
86
|
-
unitId: 'unitId',
|
|
87
|
-
subUnitId: 'subUnitId',
|
|
88
|
-
comment: {
|
|
89
|
-
// comment content
|
|
90
|
-
},
|
|
91
|
-
} as IAddCommentCommandParams);
|
|
92
|
-
```
|
|
93
|
-
|
|
94
25
|
<!-- Links -->
|
|
95
26
|
[npm-version-shield]: https://img.shields.io/npm/v/@univerjs/sheets-thread-comment?style=flat-square
|
|
96
27
|
[npm-version-link]: https://npmjs.com/package/@univerjs/sheets-thread-comment
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),a=require("@univerjs/sheets/facade"),c=require("@univerjs/sheets-thread-comment"),i=require("@univerjs/thread-comment"),g=require("@univerjs/engine-formula"),l=require("rxjs");var p=Object.defineProperty,b=Object.getOwnPropertyDescriptor,f=(m,t,e,n)=>{for(var r=n>1?void 0:n?b(t,e):t,d=m.length-1,s;d>=0;d--)(s=m[d])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&p(t,e,r),r},h=(m,t)=>(e,n)=>t(e,n,m);exports.FThreadComment=class{constructor(t,e,n,r,d,s){this._thread=t,this._parent=e,this._injector=n,this._commandService=r,this._univerInstanceService=d,this._threadCommentModel=s}_getRef(){var n;const t=((n=this._parent)==null?void 0:n.ref)||this._thread.ref;return g.deserializeRangeWithSheet(t).range}getIsRoot(){return!this._parent}getCommentData(){const{children:t,...e}=this._thread;return e}getReplies(){var n;const t=this._getRef(),e=this._threadCommentModel.getCommentWithChildren(this._thread.unitId,this._thread.subUnitId,t.startRow,t.startColumn);return(n=e==null?void 0:e.children)==null?void 0:n.map(r=>this._injector.createInstance(exports.FThreadComment,r))}getRange(){const t=this._univerInstanceService.getUnit(this._thread.unitId,o.UniverInstanceType.UNIVER_SHEET);if(!t)return null;const e=t.getSheetBySheetId(this._thread.subUnitId);if(!e)return null;const n=this._getRef();return this._injector.createInstance(a.FRange,t,e,n)}getContent(){return this._thread.text}delete(){return this._commandService.executeCommand(this.getIsRoot()?i.DeleteCommentTreeCommand.id:i.DeleteCommentCommand.id,{commentId:this._thread.id,unitId:this._thread.unitId,subUnitId:this._thread.subUnitId})}async update(t){const e=i.getDT();return await this._commandService.executeCommand(i.UpdateCommentCommand.id,{unitId:this._thread.unitId,subUnitId:this._thread.subUnitId,payload:{commentId:this._thread.id,text:t,updated:!0,updateT:e}})}resolve(t){return this._commandService.executeCommand(i.ResolveCommentCommand.id,{unitId:this._thread.unitId,subUnitId:this._thread.subUnitId,commentId:this._thread.id,resolved:t!=null?t:!this._thread.resolved})}};exports.FThreadComment=f([h(2,o.Inject(o.Injector)),h(3,o.ICommandService),h(4,o.IUniverInstanceService),h(5,o.Inject(c.SheetsThreadCommentModel))],exports.FThreadComment);class T extends a.FRange{getComment(){const e=this._injector.get(c.SheetsThreadCommentModel),n=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),d=e.getByLocation(n,r,this._range.startRow,this._range.startColumn);if(!d)return null;const s=e.getComment(n,r,d);return s?this._injector.createInstance(exports.FThreadComment,s):null}addComment(t){var C;const e=this._injector,n=(C=this.getComment())==null?void 0:C.getCommentData(),r=e.get(o.ICommandService),d=e.get(o.UserManagerService),s=this._workbook.getUnitId(),u=this._worksheet.getSheetId(),_=`${o.Tools.chatAtABC(this._range.startColumn)}${this._range.startRow+1}`,I=d.getCurrentUser();return r.executeCommand(i.AddCommentCommand.id,{unitId:s,subUnitId:u,comment:{text:t,attachments:[],dT:i.getDT(),id:o.Tools.generateRandomId(),ref:_,personId:I.userID,parentId:n==null?void 0:n.id,unitId:s,subUnitId:u,threadId:n==null?void 0:n.threadId}})}clearComment(){var s;const t=this._injector,e=(s=this.getComment())==null?void 0:s.getCommentData(),n=t.get(o.ICommandService),r=this._workbook.getUnitId(),d=this._worksheet.getSheetId();return e?n.executeCommand(i.DeleteCommentTreeCommand.id,{unitId:r,subUnitId:d,threadId:e.threadId,commentId:e.id}):Promise.resolve(!0)}}a.FRange.extend(T);class S extends a.FWorkbook{_initialize(){Object.defineProperty(this,"_threadCommentModel",{get(){return this._injector.get(i.ThreadCommentModel)}})}onThreadCommentChange(t){return o.toDisposable(this._threadCommentModel.commentUpdate$.pipe(l.filter(e=>e.unitId===this._workbook.getUnitId())).subscribe(t))}onBeforeAddThreadComment(t){return o.toDisposable(this._commandService.beforeCommandExecuted((e,n)=>{const r=e.params;if(e.id===i.AddCommentCommand.id){if(r.unitId!==this._workbook.getUnitId())return;if(t(r,n)===!1)throw new Error("Command is stopped by the hook onBeforeAddThreadComment")}}))}onBeforeUpdateThreadComment(t){return o.toDisposable(this._commandService.beforeCommandExecuted((e,n)=>{const r=e.params;if(e.id===i.UpdateCommentCommand.id){if(r.unitId!==this._workbook.getUnitId())return;if(t(r,n)===!1)throw new Error("Command is stopped by the hook onBeforeUpdateThreadComment")}}))}onBeforeDeleteThreadComment(t){return o.toDisposable(this._commandService.beforeCommandExecuted((e,n)=>{const r=e.params;if(e.id===i.DeleteCommentCommand.id||e.id===i.DeleteCommentTreeCommand.id){if(r.unitId!==this._workbook.getUnitId())return;if(t(r,n)===!1)throw new Error("Command is stopped by the hook onBeforeDeleteThreadComment")}}))}}a.FWorkbook.extend(S);class U extends a.FWorksheet{getComments(){return this._injector.get(c.SheetsThreadCommentModel).getSubUnitAll(this._workbook.getUnitId(),this._worksheet.getSheetId()).map(n=>this._injector.createInstance(exports.FThreadComment,n))}}a.FWorksheet.extend(U);
|
package/lib/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),sheets=require("@univerjs/sheets"),sheetsThreadCommentBase=require("@univerjs/sheets-thread-comment-base"),threadCommentUi=require("@univerjs/thread-comment-ui"),sheetsUi=require("@univerjs/sheets-ui"),ui=require("@univerjs/ui"),rxjs=require("rxjs"),engineRender=require("@univerjs/engine-render"),React=require("react"),engineFormula=require("@univerjs/engine-formula"),threadComment=require("@univerjs/thread-comment"),SHEETS_THREAD_COMMENT_MODAL="univer.sheet.thread-comment-modal",COMMENT_SINGLE_ICON="comment-single",SHEETS_THREAD_COMMENT="SHEET_THREAD_COMMENT";var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$7(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$7(target,key,result),result},"__decorateClass$7"),__decorateParam$7=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$7"),_a;exports.SheetsThreadCommentPopupService=(_a=class extends core.Disposable{constructor(_canvasPopupManagerService,_zenZoneService){super();__publicField(this,"_lastPopup",null);__publicField(this,"_activePopup");__publicField(this,"_activePopup$",new rxjs.BehaviorSubject(null));__publicField(this,"activePopup$",this._activePopup$.asObservable());this._canvasPopupManagerService=_canvasPopupManagerService,this._zenZoneService=_zenZoneService,this._initZenVisible(),this.disposeWithMe(()=>{this._activePopup$.complete()})}get activePopup(){return this._activePopup}_initZenVisible(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(visible=>{visible&&this.hidePopup()}))}showPopup(location,onHide){var _a9;const{row,col,unitId,subUnitId}=location;if(this._activePopup&&row===this._activePopup.row&&col===this._activePopup.col&&unitId===this._activePopup.unitId&&subUnitId===((_a9=this.activePopup)==null?void 0:_a9.subUnitId)){this._activePopup=location,this._activePopup$.next(location);return}if(this._lastPopup&&this._lastPopup.dispose(),this._zenZoneService.visible)return;this._activePopup=location,this._activePopup$.next(location);const popupDisposable=this._canvasPopupManagerService.attachPopupToCell(row,col,{componentKey:SHEETS_THREAD_COMMENT_MODAL,onClickOutside:__name(()=>{this.hidePopup()},"onClickOutside"),direction:"horizontal",excludeOutside:[...Array.from(document.querySelectorAll(".univer-thread-comment")),document.getElementById("thread-comment-add")].filter(Boolean)});if(!popupDisposable)throw new Error("[SheetsThreadCommentPopupService]: cannot show popup!");const disposableCollection=new core.DisposableCollection;disposableCollection.add(popupDisposable),disposableCollection.add({dispose:__name(()=>{onHide==null||onHide()},"dispose")}),this._lastPopup=disposableCollection}hidePopup(){this._activePopup&&(this._lastPopup&&this._lastPopup.dispose(),this._lastPopup=null,this._activePopup=null,this._activePopup$.next(null))}persistPopup(){!this._activePopup||!this._activePopup.temp||(this._activePopup={...this._activePopup,temp:!1},this._activePopup$.next(this._activePopup))}},__name(_a,"SheetsThreadCommentPopupService"),_a);exports.SheetsThreadCommentPopupService=__decorateClass$7([__decorateParam$7(0,core.Inject(sheetsUi.SheetCanvasPopManagerService)),__decorateParam$7(1,ui.IZenZoneService)],exports.SheetsThreadCommentPopupService);const ShowAddSheetCommentModalOperation={type:core.CommandType.OPERATION,id:"sheets.operation.show-comment-modal",handler(accessor){var _a9;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),sheetsThreadCommentPopupService=accessor.get(exports.SheetsThreadCommentPopupService),threadCommentPanelService=accessor.get(threadCommentUi.ThreadCommentPanelService),activeCell=(_a9=selectionManagerService.getCurrentLastSelection())==null?void 0:_a9.primary,model=accessor.get(sheetsThreadCommentBase.SheetsThreadCommentModel);if(!activeCell)return!1;const result=sheets.getSheetCommandTarget(univerInstanceService);if(!result)return!1;const{workbook,worksheet,unitId,subUnitId}=result,location={workbook,worksheet,unitId,subUnitId,row:activeCell.startRow,col:activeCell.startColumn};sheetsThreadCommentPopupService.showPopup(location);const rootId=model.getByLocation(unitId,subUnitId,activeCell.startRow,activeCell.startColumn);return rootId&&threadCommentPanelService.setActiveComment({unitId,subUnitId,commentId:rootId,trigger:"context-menu"}),!0}},PLUGIN_CONFIG_KEY="sheets-thread-comment.config",defaultPluginConfig={};var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$6(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$6(target,key,result),result},"__decorateClass$6"),__decorateParam$6=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$6"),_a2;let SheetsThreadCommentRenderController=(_a2=class extends core.Disposable{constructor(_sheetInterceptorService,_sheetsThreadCommentModel,_univerInstanceService,_renderManagerService){super(),this._sheetInterceptorService=_sheetInterceptorService,this._sheetsThreadCommentModel=_sheetsThreadCommentModel,this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._initViewModelIntercept(),this._initSkeletonChange()}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(sheets.INTERCEPTOR_POINT.CELL_CONTENT,{effect:core.InterceptorEffectEnum.Style,handler:__name((cell,pos,next)=>{const{row,col,unitId,subUnitId}=pos;return this._sheetsThreadCommentModel.showCommentMarker(unitId,subUnitId,row,col)?next({...cell,markers:{...cell==null?void 0:cell.markers,tr:{color:"#FFBD37",size:6}}}):next(cell)},"handler"),priority:100}))}_initSkeletonChange(){const markSkeletonDirty=__name(()=>{var _a9;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return;const unitId=workbook.getUnitId(),currentRender=this._renderManagerService.getRenderById(unitId);(_a9=currentRender==null?void 0:currentRender.mainComponent)==null||_a9.makeForceDirty()},"markSkeletonDirty");this.disposeWithMe(this._sheetsThreadCommentModel.commentUpdate$.pipe(rxjs.debounceTime(16)).subscribe(()=>{markSkeletonDirty()}))}},__name(_a2,"SheetsThreadCommentRenderController"),_a2);SheetsThreadCommentRenderController=__decorateClass$6([__decorateParam$6(0,core.Inject(sheets.SheetInterceptorService)),__decorateParam$6(1,core.Inject(sheetsThreadCommentBase.SheetsThreadCommentModel)),__decorateParam$6(2,core.IUniverInstanceService),__decorateParam$6(3,engineRender.IRenderManagerService)],SheetsThreadCommentRenderController);var __assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},IconBase=React.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=React.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return React.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a9){var key=_a9[0],value=_a9[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a9,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a9=node.children)===null||_a9===void 0)&&_a9.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid");IconBase.displayName="UniverIcon";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521C5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345ZM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521C8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345ZM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521C11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M5.83725 6.78345C6.22188 6.78345 6.53368 7.10742 6.53368 7.50706V8.41159C6.53368 8.81123 6.22188 9.13521 5.83725 9.13521 5.45263 9.13521 5.14082 8.81123 5.14082 8.41159V7.50706C5.14082 7.10742 5.45263 6.78345 5.83725 6.78345zM8.73904 6.78345C9.12366 6.78345 9.43546 7.10742 9.43546 7.50706V8.41159C9.43546 8.81123 9.12366 9.13521 8.73904 9.13521 8.35441 9.13521 8.04261 8.81123 8.04261 8.41159V7.50706C8.04261 7.10742 8.35441 6.78345 8.73904 6.78345zM11.6408 6.78345C12.0254 6.78345 12.3372 7.10742 12.3372 7.50706V8.41159C12.3372 8.81123 12.0254 9.13521 11.6408 9.13521 11.2562 9.13521 10.9444 8.81123 10.9444 8.41159V7.50706C10.9444 7.10742 11.2562 6.78345 11.6408 6.78345z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.84351 3.41861C1.84351 3.01861 2.15531 2.69434 2.53993 2.69434H14.9381C15.3228 2.69434 15.6346 3.01861 15.6346 3.41861V12.4611C15.6346 12.8612 15.3228 13.1854 14.9381 13.1854H8.82117L6.06643 14.6179C5.85054 14.7301 5.59416 14.7181 5.38884 14.5862C5.18352 14.4542 5.05855 14.2211 5.05855 13.9701V13.1854H2.53993C2.15531 13.1854 1.84351 12.8612 1.84351 12.4611L1.84351 3.41861ZM6.45141 12.7982L8.34531 12.0135C8.44201 11.9632 8.54864 11.9371 8.65676 11.9371H14.2417C14.3522 11.9371 14.4417 11.8475 14.4417 11.7371V4.14271C14.4417 4.03225 14.3522 3.94271 14.2417 3.94271H3.23636C3.12591 3.94271 3.03636 4.03225 3.03636 4.14271L3.03636 11.7371C3.03636 11.8475 3.12591 11.9371 3.23636 11.9371L5.75498 11.9371C6.1396 11.9371 6.45141 12.0611 6.45141 12.4611V12.7982Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CommentSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"comment-single",ref,icon:element}))});CommentSingle.displayName="CommentSingle";const SheetsThreadCommentCell=__name(()=>{const univerInstanceService=core.useDependency(core.IUniverInstanceService),sheetsThreadCommentPopupService=core.useDependency(exports.SheetsThreadCommentPopupService),activePopup=ui.useObservable(sheetsThreadCommentPopupService.activePopup$),sheetThreadCommentModel=core.useDependency(sheetsThreadCommentBase.SheetsThreadCommentModel);if(ui.useObservable(sheetThreadCommentModel.commentUpdate$),!activePopup)return null;const{row,col,unitId,subUnitId,trigger}=activePopup,rootId=sheetThreadCommentModel.getByLocation(unitId,subUnitId,row,col),ref=`${core.Tools.chatAtABC(col)}${row+1}`,onClose=__name(()=>{sheetsThreadCommentPopupService.hidePopup()},"onClose"),getSubUnitName=__name(id=>{var _a9,_b,_c;return(_c=(_b=(_a9=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a9.getSheetBySheetId(id))==null?void 0:_b.getName())!=null?_c:""},"getSubUnitName");return React.createElement(threadCommentUi.ThreadCommentTree,{onClick:__name(()=>{sheetsThreadCommentPopupService.persistPopup()},"onClick"),prefix:"cell",id:rootId,unitId,subUnitId,type:core.UniverInstanceType.UNIVER_SHEET,refStr:ref,onClose,getSubUnitName,autoFocus:trigger==="context-menu"})},"SheetsThreadCommentCell"),SheetsThreadCommentPanel=__name(()=>{var _a9;const markSelectionService=core.useDependency(sheetsUi.IMarkSelectionService),univerInstanceService=core.useDependency(core.IUniverInstanceService),sheetsThreadCommentPopupService=core.useDependency(exports.SheetsThreadCommentPopupService),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId(),commandService=core.useDependency(core.ICommandService),subUnitId$=React.useMemo(()=>workbook.activeSheet$.pipe(rxjs.map(i=>i==null?void 0:i.getSheetId())),[workbook.activeSheet$]),subUnitId=ui.useObservable(subUnitId$,(_a9=workbook.getActiveSheet())==null?void 0:_a9.getSheetId()),hoverShapeId=React.useRef(),panelService=core.useDependency(threadCommentUi.ThreadCommentPanelService),activeCommentId=ui.useObservable(panelService.activeCommentId$),panelVisible=ui.useObservable(panelService.panelVisible$,panelService.panelVisible),sortComments=React.useCallback(comments=>{const worksheets=workbook.getSheets(),sheetIndex={};worksheets.forEach((sheet,i)=>{sheetIndex[sheet.getSheetId()]=i});const sort=__name(comments2=>comments2.map(comment=>{var _a10;const ref=engineFormula.singleReferenceToGrid(comment.ref),p=[(_a10=sheetIndex[comment.subUnitId])!=null?_a10:0,ref.row,ref.column];return{...comment,p}}).sort((pre,aft)=>pre.p[0]===aft.p[0]?pre.p[1]===aft.p[1]?pre.p[2]-aft.p[2]:pre.p[1]-aft.p[1]:pre.p[0]-aft.p[0]),"sort");return[...sort(comments.filter(comment=>!comment.resolved)),...sort(comments.filter(comment=>comment.resolved))]},[workbook]),showShape=React.useCallback(comment=>{var _a10;if(comment.unitId===unitId&&comment.subUnitId===subUnitId&&!comment.resolved){const{row,column}=engineFormula.singleReferenceToGrid(comment.ref),worksheet=workbook.getSheetBySheetId(comment.subUnitId),mergeInfo=(_a10=worksheet==null?void 0:worksheet.getMergedCell(row,column))!=null?_a10:{startColumn:column,endColumn:column,startRow:row,endRow:row};if(!Number.isNaN(row)&&!Number.isNaN(column))return markSelectionService.addShape({range:mergeInfo,style:{hasAutoFill:!1,fill:"rgb(255, 189, 55, 0.35)",strokeWidth:1,stroke:"#FFBD37",widgets:{}},primary:null})}},[markSelectionService,subUnitId,unitId]),getSubUnitName=__name(id=>{var _a10,_b;return(_b=(_a10=workbook.getSheetBySheetId(id))==null?void 0:_a10.getName())!=null?_b:""},"getSubUnitName"),handleAdd=__name(()=>{commandService.executeCommand(ShowAddSheetCommentModalOperation.id)},"handleAdd"),handleHover=__name(comment=>{activeCommentId&&activeCommentId.unitId===comment.unitId&&activeCommentId.subUnitId===comment.subUnitId&&activeCommentId.commentId===comment.id||(hoverShapeId.current&&(markSelectionService.removeShape(hoverShapeId.current),hoverShapeId.current=null),hoverShapeId.current=showShape(comment))},"handleHover"),handleLeave=__name(()=>{hoverShapeId.current&&(markSelectionService.removeShape(hoverShapeId.current),hoverShapeId.current=null)},"handleLeave"),handleResolve=__name((id,resolved)=>{resolved&&sheetsThreadCommentPopupService.hidePopup()},"handleResolve");return React.useEffect(()=>{!panelVisible&&hoverShapeId.current&&markSelectionService.removeShape(hoverShapeId.current)},[markSelectionService,panelVisible]),React.createElement(threadCommentUi.ThreadCommentPanel,{unitId,subUnitId$,type:core.UniverInstanceType.UNIVER_SHEET,onAdd:handleAdd,getSubUnitName,onResolve:handleResolve,sortComments,onItemEnter:handleHover,onItemLeave:handleLeave,onDeleteComment:__name(()=>(handleLeave(),!0),"onDeleteComment")})},"SheetsThreadCommentPanel"),threadCommentMenuFactory=__name(accessor=>({id:ShowAddSheetCommentModalOperation.id,type:ui.MenuItemType.BUTTON,icon:COMMENT_SINGLE_ICON,title:"sheetThreadComment.menu.addComment",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookCommentPermission],worksheetTypes:[sheets.WorksheetViewPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint]})}),"threadCommentMenuFactory"),threadPanelMenuFactory=__name(accessor=>({id:threadCommentUi.ToggleSheetCommentPanelOperation.id,type:ui.MenuItemType.BUTTON,icon:COMMENT_SINGLE_ICON,tooltip:"sheetThreadComment.menu.commentManagement",disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookCommentPermission],worksheetTypes:[sheets.WorksheetViewPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}),"threadPanelMenuFactory"),AddCommentShortcut={id:ShowAddSheetCommentModalOperation.id,binding:ui.KeyCode.M|ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.ALT,preconditions:sheetsUi.whenSheetEditorFocused},menuSchema={[ui.RibbonStartGroup.OTHERS]:{[threadCommentUi.ToggleSheetCommentPanelOperation.id]:{order:1,menuItemFactory:threadPanelMenuFactory}},[ui.ContextMenuPosition.MAIN_AREA]:{[ui.ContextMenuGroup.OTHERS]:{[ShowAddSheetCommentModalOperation.id]:{order:0,menuItemFactory:threadCommentMenuFactory}}}};var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$5(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$5(target,key,result),result},"__decorateClass$5"),__decorateParam$5=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$5"),_a3;let SheetsThreadCommentController=(_a3=class extends core.Disposable{constructor(_menuManagerService,_componentManager,_shortcutService){super(),this._menuManagerService=_menuManagerService,this._componentManager=_componentManager,this._shortcutService=_shortcutService,this._initMenu(),this._initShortcut(),this._initComponent()}_initShortcut(){this._shortcutService.registerShortcut(AddCommentShortcut)}_initMenu(){this._menuManagerService.mergeMenu(menuSchema)}_initComponent(){[[SHEETS_THREAD_COMMENT_MODAL,SheetsThreadCommentCell],[threadCommentUi.THREAD_COMMENT_PANEL,SheetsThreadCommentPanel],[COMMENT_SINGLE_ICON,CommentSingle]].forEach(([key,comp])=>{this._componentManager.register(key,comp)})}},__name(_a3,"SheetsThreadCommentController"),_a3);SheetsThreadCommentController=__decorateClass$5([__decorateParam$5(0,ui.IMenuManagerService),__decorateParam$5(1,core.Inject(ui.ComponentManager)),__decorateParam$5(2,ui.IShortcutService)],SheetsThreadCommentController);var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4");const transformRef=__name((ref,source,target)=>{const refObj=engineFormula.singleReferenceToGrid(ref),offsetRow=target.row-source.row,offsetCol=target.column-source.column,targetRange={startColumn:refObj.column+offsetCol,startRow:refObj.row+offsetRow,endColumn:refObj.column+offsetCol,endRow:refObj.row+offsetRow};return engineFormula.serializeRange(targetRange)},"transformRef");var _a4;let SheetsThreadCommentCopyPasteController=(_a4=class extends core.Disposable{constructor(_sheetClipboardService,_sheetsThreadCommentModel,_threadCommentDataSourceService){super();__publicField(this,"_copyInfo");this._sheetClipboardService=_sheetClipboardService,this._sheetsThreadCommentModel=_sheetsThreadCommentModel,this._threadCommentDataSourceService=_threadCommentDataSourceService,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:SHEETS_THREAD_COMMENT,onBeforeCopy:__name((unitId,subUnitId,range)=>{this._copyInfo={unitId,subUnitId,range}},"onBeforeCopy"),onPasteCells:__name((_pasteFrom,pasteTo,_data,payload)=>{const{unitId:targetUnitId,subUnitId:targetSubUnitId,range}=pasteTo,targetPos={row:range.rows[0],column:range.cols[0]};if(payload.copyType===sheetsUi.COPY_TYPE.CUT&&this._copyInfo){const{range:range2,unitId:sourceUnitId,subUnitId:sourceSubUnitId}=this._copyInfo,sourcePos={row:range2.startRow,column:range2.startColumn};if(!(targetUnitId===sourceUnitId&&targetSubUnitId===sourceSubUnitId)){const roots=[];core.Range.foreach(range2,(row,col)=>{const comments=this._sheetsThreadCommentModel.getAllByLocation(sourceUnitId,sourceSubUnitId,row,col);this._threadCommentDataSourceService.syncUpdateMutationToColla?comments.forEach(comment=>{roots.push(comment)}):comments.forEach(({children,...comment})=>{comment.parentId||roots.push(comment)})});const sourceRedos=[],sourceUndos=[],targetRedos=[],targetUndos=[],handleCommentItem=__name(item=>{sourceRedos.unshift({id:threadComment.DeleteCommentMutation.id,params:{unitId:sourceUnitId,subUnitId:sourceSubUnitId,commentId:item.id}}),targetRedos.push({id:threadComment.AddCommentMutation.id,params:{unitId:targetUnitId,subUnitId:targetSubUnitId,comment:{...item,ref:transformRef(item.ref,sourcePos,targetPos),unitId:targetUnitId,subUnitId:targetSubUnitId},sync:!0}}),sourceUndos.push({id:threadComment.AddCommentMutation.id,params:{unitId:sourceUnitId,subUnitId:sourceSubUnitId,comment:item,sync:!0}}),targetUndos.unshift({id:threadComment.DeleteCommentMutation.id,params:{unitId:targetUnitId,subUnitId:targetSubUnitId,commentId:item.id}})},"handleCommentItem");return roots.forEach(root=>{handleCommentItem(root)}),{redos:[...sourceRedos,...targetRedos],undos:[...targetUndos,...sourceUndos]}}}return{redos:[],undos:[]}},"onPasteCells")}))}},__name(_a4,"SheetsThreadCommentCopyPasteController"),_a4);SheetsThreadCommentCopyPasteController=__decorateClass$4([__decorateParam$4(0,core.Inject(sheetsUi.ISheetClipboardService)),__decorateParam$4(1,core.Inject(sheetsThreadCommentBase.SheetsThreadCommentModel)),__decorateParam$4(2,threadComment.IThreadCommentDataSourceService)],SheetsThreadCommentCopyPasteController);var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3"),_a5;let SheetsThreadCommentHoverController=(_a5=class extends core.Disposable{constructor(_hoverManagerService,_sheetsThreadCommentPopupService,_sheetsThreadCommentModel,_sheetPermissionInterceptorBaseController){super(),this._hoverManagerService=_hoverManagerService,this._sheetsThreadCommentPopupService=_sheetsThreadCommentPopupService,this._sheetsThreadCommentModel=_sheetsThreadCommentModel,this._sheetPermissionInterceptorBaseController=_sheetPermissionInterceptorBaseController,this._initHoverEvent()}_initHoverEvent(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(rxjs.debounceTime(100)).subscribe(cell=>{const currentPopup=this._sheetsThreadCommentPopupService.activePopup;if(cell&&(currentPopup&¤tPopup.temp||!currentPopup)){const{location}=cell,{unitId,subUnitId,row,col}=location,commentId=this._sheetsThreadCommentModel.getByLocation(unitId,subUnitId,row,col);if(commentId){if(!this._sheetPermissionInterceptorBaseController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookCommentPermission],worksheetTypes:[sheets.WorksheetViewPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint]},[{startRow:row,startColumn:col,endRow:row,endColumn:col}]))return;const comment=this._sheetsThreadCommentModel.getComment(unitId,subUnitId,commentId);comment&&!comment.resolved&&this._sheetsThreadCommentPopupService.showPopup({unitId,subUnitId,row,col,commentId,temp:!0})}else currentPopup&&this._sheetsThreadCommentPopupService.hidePopup()}}))}},__name(_a5,"SheetsThreadCommentHoverController"),_a5);SheetsThreadCommentHoverController=__decorateClass$3([__decorateParam$3(0,core.Inject(sheetsUi.HoverManagerService)),__decorateParam$3(1,core.Inject(exports.SheetsThreadCommentPopupService)),__decorateParam$3(2,core.Inject(sheetsThreadCommentBase.SheetsThreadCommentModel)),__decorateParam$3(3,core.Inject(sheetsUi.SheetPermissionInterceptorBaseController))],SheetsThreadCommentHoverController);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a6;let SheetsThreadCommentPopupController=(_a6=class extends core.Disposable{constructor(_commandService,_sheetsThreadCommentPopupService,_sheetsThreadCommentModel,_threadCommentPanelService,_univerInstanceService,_sheetPermissionInterceptorBaseController,_markSelectionService,_sheetSelectionService,_editorBridgeService,_renderManagerService){super();__publicField(this,"_isSwitchToCommenting",!1);__publicField(this,"_selectionShapeInfo",null);this._commandService=_commandService,this._sheetsThreadCommentPopupService=_sheetsThreadCommentPopupService,this._sheetsThreadCommentModel=_sheetsThreadCommentModel,this._threadCommentPanelService=_threadCommentPanelService,this._univerInstanceService=_univerInstanceService,this._sheetPermissionInterceptorBaseController=_sheetPermissionInterceptorBaseController,this._markSelectionService=_markSelectionService,this._sheetSelectionService=_sheetSelectionService,this._editorBridgeService=_editorBridgeService,this._renderManagerService=_renderManagerService,this._initCommandListener(),this._initPanelListener(),this._initMarkSelection(),this._initSelectionUpdateListener(),this._initEditorBridge()}_handleSelectionChange(selections,unitId,subUnitId){var _a9,_b,_c;const range=(_a9=selections[0])==null?void 0:_a9.range,render2=this._renderManagerService.getRenderById(unitId),skeleton=(_b=render2==null?void 0:render2.with(sheetsUi.SheetSkeletonManagerService).getWorksheetSkeleton(subUnitId))==null?void 0:_b.skeleton;if(!skeleton||!range)return;const actualCell=skeleton.getCellByIndex(range.startRow,range.startColumn);if((((_c=range.rangeType)!=null?_c:core.RANGE_TYPE.NORMAL)!==core.RANGE_TYPE.NORMAL||range.endColumn-range.startColumn>0||range.endRow-range.startRow>0)&&!((actualCell.isMerged||actualCell.isMergedMainCell)&&core.Rectangle.equals(actualCell.mergeInfo,range))){this._threadCommentPanelService.activeCommentId&&this._commandService.executeCommand(threadCommentUi.SetActiveCommentOperation.id);return}const row=actualCell.actualRow,col=actualCell.actualColumn;if(!this._sheetsThreadCommentModel.showCommentMarker(unitId,subUnitId,row,col)){this._threadCommentPanelService.activeCommentId&&this._commandService.executeCommand(threadCommentUi.SetActiveCommentOperation.id);return}const commentId=this._sheetsThreadCommentModel.getByLocation(unitId,subUnitId,row,col);commentId&&this._commandService.executeCommand(threadCommentUi.SetActiveCommentOperation.id,{unitId,subUnitId,commentId})}_initSelectionUpdateListener(){this.disposeWithMe(this._sheetSelectionService.selectionMoveEnd$.subscribe(selections=>{if(this._isSwitchToCommenting)return;const current=this._sheetSelectionService.currentSelectionParam;current&&this._handleSelectionChange(selections,current.unitId,current.sheetId)}))}_initEditorBridge(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(visible=>{visible.visible&&this._sheetsThreadCommentPopupService.hidePopup()}))}_initCommandListener(){this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===threadComment.DeleteCommentMutation.id){const params=commandInfo.params,active=this._sheetsThreadCommentPopupService.activePopup;if(!active)return;const{unitId,subUnitId,commentId}=active;params.unitId===unitId&¶ms.subUnitId===subUnitId&¶ms.commentId===commentId&&this._sheetsThreadCommentPopupService.hidePopup()}})}_initPanelListener(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.subscribe(async commentInfo=>{var _a9;if(commentInfo){const{unitId,subUnitId,commentId,trigger}=commentInfo,comment=this._sheetsThreadCommentModel.getComment(unitId,subUnitId,commentId);if(!comment||comment.resolved)return;const currentUnit=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!currentUnit||currentUnit.getUnitId()!==unitId)return;this._isSwitchToCommenting=!0,((_a9=currentUnit.getActiveSheet())==null?void 0:_a9.getSheetId())!==subUnitId&&await this._commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{unitId,subUnitId}),this._isSwitchToCommenting=!1;const location=engineFormula.singleReferenceToGrid(comment.ref),{row,column:col}=location;if(!this._sheetPermissionInterceptorBaseController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookCommentPermission],worksheetTypes:[sheets.WorksheetViewPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint]},[{startRow:row,startColumn:col,endRow:row,endColumn:col}]))return;const GAP=1;if(await this._commandService.executeCommand(sheetsUi.ScrollToRangeOperation.id,{range:{startRow:Math.max(location.row-GAP,0),endRow:location.row+GAP,startColumn:Math.max(location.column-GAP,0),endColumn:location.column+GAP}}),this._editorBridgeService.isVisible().visible)return;this._sheetsThreadCommentPopupService.showPopup({unitId,subUnitId,row:location.row,col:location.column,commentId:comment.id,trigger})}else this._sheetsThreadCommentPopupService.hidePopup()}))}_initMarkSelection(){this.disposeWithMe(this._threadCommentPanelService.activeCommentId$.pipe(rxjs.debounceTime(100)).subscribe(activeComment=>{var _a9,_b;if(!activeComment){this._selectionShapeInfo&&(this._markSelectionService.removeShape(this._selectionShapeInfo.shapeId),this._selectionShapeInfo=null);return}const{unitId,subUnitId,commentId}=activeComment;this._selectionShapeInfo&&(this._markSelectionService.removeShape(this._selectionShapeInfo.shapeId),this._selectionShapeInfo=null);const comment=this._sheetsThreadCommentModel.getComment(unitId,subUnitId,commentId);if(!comment)return;const location=engineFormula.singleReferenceToGrid(comment.ref),{row,column}=location;if(Number.isNaN(row)||Number.isNaN(column))return null;const worksheet=(_a9=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a9.getSheetBySheetId(subUnitId),mergeInfo=(_b=worksheet==null?void 0:worksheet.getMergedCell(row,column))!=null?_b:{startColumn:column,endColumn:column,startRow:row,endRow:row},shapeId=this._markSelectionService.addShape({range:mergeInfo,style:{hasAutoFill:!1,fill:"rgb(255, 189, 55, 0.35)",strokeWidth:1,stroke:"#FFBD37",widgets:{}},primary:null},[],-1);shapeId&&(this._selectionShapeInfo={...activeComment,shapeId})}))}},__name(_a6,"SheetsThreadCommentPopupController"),_a6);SheetsThreadCommentPopupController=__decorateClass$2([__decorateParam$2(0,core.ICommandService),__decorateParam$2(1,core.Inject(exports.SheetsThreadCommentPopupService)),__decorateParam$2(2,core.Inject(sheetsThreadCommentBase.SheetsThreadCommentModel)),__decorateParam$2(3,core.Inject(threadCommentUi.ThreadCommentPanelService)),__decorateParam$2(4,core.IUniverInstanceService),__decorateParam$2(5,core.Inject(sheetsUi.SheetPermissionInterceptorBaseController)),__decorateParam$2(6,sheetsUi.IMarkSelectionService),__decorateParam$2(7,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$2(8,sheetsUi.IEditorBridgeService),__decorateParam$2(9,engineRender.IRenderManagerService)],SheetsThreadCommentPopupController);var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),_a7;let ThreadCommentRemoveSheetsController=(_a7=class extends core.Disposable{constructor(_sheetInterceptorService,_univerInstanceService,_threadCommentModel,_threadCommentDataSourceService){super(),this._sheetInterceptorService=_sheetInterceptorService,this._univerInstanceService=_univerInstanceService,this._threadCommentModel=_threadCommentModel,this._threadCommentDataSourceService=_threadCommentDataSourceService,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:__name(commandInfo=>{var _a9;if(commandInfo.id===sheets.RemoveSheetCommand.id){const params=commandInfo.params,workbook=params.unitId?this._univerInstanceService.getUnit(params.unitId):this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return{redos:[],undos:[]};const unitId=workbook.getUnitId(),subUnitId=params.subUnitId||((_a9=workbook.getActiveSheet())==null?void 0:_a9.getSheetId());if(!subUnitId)return{redos:[],undos:[]};const commentMap=this._threadCommentModel.ensureMap(unitId,subUnitId),comments=Array.from(commentMap.values()).filter(comment=>!comment.parentId),ids=comments.map(comment=>comment.id),shouldSync=this._threadCommentDataSourceService.syncUpdateMutationToColla,redos=ids.map(id=>({id:threadComment.DeleteCommentMutation.id,params:{unitId,subUnitId,commentId:id}})),undos=comments.map(({children,...comment})=>({id:threadComment.AddCommentMutation.id,params:{unitId,subUnitId,comment:{...comment,children:shouldSync?children:void 0},sync:!shouldSync}}));return{redos,undos}}return{redos:[],undos:[]}},"getMutations")}))}},__name(_a7,"ThreadCommentRemoveSheetsController"),_a7);ThreadCommentRemoveSheetsController=__decorateClass$1([__decorateParam$1(0,core.Inject(sheets.SheetInterceptorService)),__decorateParam$1(1,core.IUniverInstanceService),__decorateParam$1(2,core.Inject(threadComment.ThreadCommentModel)),__decorateParam$1(3,threadComment.IThreadCommentDataSourceService)],ThreadCommentRemoveSheetsController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__defNormalProp2=__name((obj,key,value)=>key in obj?__defProp2(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp"),__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam"),__publicField2=__name((obj,key,value)=>__defNormalProp2(obj,typeof key!="symbol"?key+"":key,value),"__publicField"),_a8;exports.UniverSheetsThreadCommentPlugin=(_a8=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_commandService,_configService){super(),this._config=_config,this._injector=_injector,this._commandService=_commandService,this._configService=_configService;const{menu,...rest}=this._config;menu&&this._configService.setConfig("menu",menu,{merge:!0}),this._configService.setConfig(PLUGIN_CONFIG_KEY,rest)}onStarting(){[[SheetsThreadCommentController],[SheetsThreadCommentRenderController],[SheetsThreadCommentCopyPasteController],[SheetsThreadCommentHoverController],[ThreadCommentRemoveSheetsController],[SheetsThreadCommentPopupController],[exports.SheetsThreadCommentPopupService]].forEach(dep=>{this._injector.add(dep)}),[ShowAddSheetCommentModalOperation].forEach(command=>{this._commandService.registerCommand(command)}),this._injector.get(SheetsThreadCommentController)}onReady(){this._injector.get(SheetsThreadCommentRenderController),this._injector.get(ThreadCommentRemoveSheetsController)}onRendered(){this._injector.get(SheetsThreadCommentCopyPasteController),this._injector.get(SheetsThreadCommentHoverController),this._injector.get(SheetsThreadCommentPopupController)}},__name(_a8,"UniverSheetsThreadCommentPlugin"),_a8);__publicField2(exports.UniverSheetsThreadCommentPlugin,"pluginName",SHEETS_THREAD_COMMENT);__publicField2(exports.UniverSheetsThreadCommentPlugin,"type",core.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsThreadCommentPlugin=__decorateClass([core.DependentOn(threadCommentUi.UniverThreadCommentUIPlugin,sheetsThreadCommentBase.UniverSheetsThreadCommentBasePlugin),__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,core.Inject(core.ICommandService)),__decorateParam(3,core.IConfigService)],exports.UniverSheetsThreadCommentPlugin);Object.defineProperty(exports,"SheetsThreadCommentModel",{enumerable:!0,get:__name(()=>sheetsThreadCommentBase.SheetsThreadCommentModel,"get")});Object.defineProperty(exports,"IThreadCommentMentionDataService",{enumerable:!0,get:__name(()=>threadCommentUi.IThreadCommentMentionDataService,"get")});Object.defineProperty(exports,"UniverThreadCommentUIPlugin",{enumerable:!0,get:__name(()=>threadCommentUi.UniverThreadCommentUIPlugin,"get")});Object.defineProperty(exports,"AddCommentCommand",{enumerable:!0,get:__name(()=>threadComment.AddCommentCommand,"get")});Object.defineProperty(exports,"DeleteCommentCommand",{enumerable:!0,get:__name(()=>threadComment.DeleteCommentCommand,"get")});Object.defineProperty(exports,"DeleteCommentTreeCommand",{enumerable:!0,get:__name(()=>threadComment.DeleteCommentTreeCommand,"get")});Object.defineProperty(exports,"IThreadCommentDataSourceService",{enumerable:!0,get:__name(()=>threadComment.IThreadCommentDataSourceService,"get")});Object.defineProperty(exports,"ResolveCommentCommand",{enumerable:!0,get:__name(()=>threadComment.ResolveCommentCommand,"get")});Object.defineProperty(exports,"UpdateCommentCommand",{enumerable:!0,get:__name(()=>threadComment.UpdateCommentCommand,"get")});exports.SHEETS_THREAD_COMMENT=SHEETS_THREAD_COMMENT;exports.ShowAddSheetCommentModalOperation=ShowAddSheetCommentModalOperation;
|
|
1
|
+
"use strict";var w=Object.defineProperty;var S=(c,a,e)=>a in c?w(c,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):c[a]=e;var _=(c,a,e)=>S(c,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@univerjs/core"),u=require("@univerjs/engine-formula"),g=require("@univerjs/sheets"),f=require("@univerjs/thread-comment"),T=require("rxjs");var I=Object.defineProperty,y=Object.getOwnPropertyDescriptor,b=(c,a,e,n)=>{for(var t=n>1?void 0:n?y(a,e):a,r=c.length-1,o;r>=0;r--)(o=c[r])&&(t=(n?o(a,e,t):o(t))||t);return n&&t&&I(a,e,t),t},C=(c,a)=>(e,n)=>a(e,n,c);exports.SheetsThreadCommentModel=class extends d.Disposable{constructor(e,n){super();_(this,"_matrixMap",new Map);_(this,"_locationMap",new Map);_(this,"_commentUpdate$",new T.Subject);_(this,"commentUpdate$",this._commentUpdate$.asObservable());this._threadCommentModel=e,this._univerInstanceService=n,this._init(),this.disposeWithMe(()=>{this._commentUpdate$.complete()})}_init(){this._initData(),this._initUpdateTransform()}_ensureCommentMatrix(e,n){let t=this._matrixMap.get(e);t||(t=new Map,this._matrixMap.set(e,t));let r=t.get(n);return r||(r=new d.ObjectMatrix,t.set(n,r)),r}_ensureCommentLocationMap(e,n){let t=this._locationMap.get(e);t||(t=new Map,this._locationMap.set(e,t));let r=t.get(n);return r||(r=new Map,t.set(n,r)),r}_addCommentToMatrix(e,n,t,r){var s;const o=(s=e.getValue(n,t))!=null?s:new Set;o.add(r),e.setValue(n,t,o)}_deleteCommentFromMatrix(e,n,t,r){if(n>=0&&t>=0){const o=e.getValue(n,t);o&&o.has(r)&&(o.delete(r),o.size===0&&e.realDeleteValue(n,t))}}_ensure(e,n){const t=this._ensureCommentMatrix(e,n),r=this._ensureCommentLocationMap(e,n);return{matrix:t,locationMap:r}}_initData(){const e=this._threadCommentModel.getAll();for(const n of e)for(const t of n.threads){const{unitId:r,subUnitId:o,root:s}=t;this._addComment(r,o,s)}}_addComment(e,n,t){const r=u.singleReferenceToGrid(t.ref),o=t.parentId,{row:s,column:i}=r,m=t.id,{matrix:h,locationMap:l}=this._ensure(e,n);!o&&s>=0&&i>=0&&(this._addCommentToMatrix(h,s,i,m),l.set(m,{row:s,column:i})),o||this._commentUpdate$.next({unitId:e,subUnitId:n,payload:t,type:"add",isRoot:!o,...r})}_initUpdateTransform(){this.disposeWithMe(this._threadCommentModel.commentUpdate$.subscribe(e=>{const{unitId:n,subUnitId:t}=e;try{if(this._univerInstanceService.getUnitType(n)!==d.UniverInstanceType.UNIVER_SHEET)return}catch{}const{matrix:r,locationMap:o}=this._ensure(n,t);switch(e.type){case"add":{this._addComment(e.unitId,e.subUnitId,e.payload);break}case"delete":{const{isRoot:s,comment:i}=e.payload;if(s){const m=u.singleReferenceToGrid(i.ref),{row:h,column:l}=m;this._deleteCommentFromMatrix(r,h,l,i.id),this._commentUpdate$.next({...e,...m})}break}case"update":{const{commentId:s}=e.payload,i=this._threadCommentModel.getComment(n,t,s);if(!i)return;const m=u.singleReferenceToGrid(i.ref);this._commentUpdate$.next({...e,...m});break}case"updateRef":{const s=u.singleReferenceToGrid(e.payload.ref),{commentId:i}=e.payload,m=o.get(i);if(!m)return;const{row:h,column:l}=m;this._deleteCommentFromMatrix(r,h,l,i),o.delete(i),s.row>=0&&s.column>=0&&(this._addCommentToMatrix(r,s.row,s.column,i),o.set(i,{row:s.row,column:s.column})),this._commentUpdate$.next({...e,...s});break}case"resolve":{const{unitId:s,subUnitId:i,payload:m}=e,{locationMap:h}=this._ensure(s,i),l=h.get(m.commentId);l&&this._commentUpdate$.next({...e,...l});break}}}))}getByLocation(e,n,t,r){var i;return(i=this.getAllByLocation(e,n,t,r).filter(m=>!m.resolved)[0])==null?void 0:i.id}getAllByLocation(e,n,t,r){const s=this._ensureCommentMatrix(e,n).getValue(t,r);return s?Array.from(s).map(i=>this.getComment(e,n,i)).filter(Boolean):[]}getComment(e,n,t){return this._threadCommentModel.getComment(e,n,t)}getCommentWithChildren(e,n,t,r){const o=this.getByLocation(e,n,t,r);if(!o)return;const s=this.getComment(e,n,o);if(s)return this._threadCommentModel.getThread(e,n,s.threadId)}showCommentMarker(e,n,t,r){const o=this.getByLocation(e,n,t,r);if(!o)return!1;const s=this.getComment(e,n,o);return!!(s&&!s.resolved)}getSubUnitAll(e,n){return this._threadCommentModel.getUnit(e).filter(t=>t.subUnitId===n).map(t=>t.root)}};exports.SheetsThreadCommentModel=b([C(0,d.Inject(f.ThreadCommentModel)),C(1,d.IUniverInstanceService)],exports.SheetsThreadCommentModel);var U=Object.defineProperty,x=Object.getOwnPropertyDescriptor,P=(c,a,e,n)=>{for(var t=n>1?void 0:n?x(a,e):a,r=c.length-1,o;r>=0;r--)(o=c[r])&&(t=(n?o(a,e,t):o(t))||t);return n&&t&&U(a,e,t),t},p=(c,a)=>(e,n)=>a(e,n,c);exports.SheetsThreadCommentRefRangeController=class extends d.Disposable{constructor(e,n,t,r,o){super();_(this,"_disposableMap",new Map);_(this,"_watcherMap",new Map);_(this,"_handleRangeChange",(e,n,t,r,o)=>{const s=t.id,i={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};return r?{redos:[{id:f.UpdateCommentRefMutation.id,params:{unitId:e,subUnitId:n,payload:{ref:u.serializeRange(r),commentId:s},silent:o}}],undos:[{id:f.UpdateCommentRefMutation.id,params:{unitId:e,subUnitId:n,payload:{ref:u.serializeRange(i),commentId:s},silent:o}}]}:{redos:[{id:f.DeleteCommentMutation.id,params:{unitId:e,subUnitId:n,commentId:s}}],undos:[{id:f.AddCommentMutation.id,params:{unitId:e,subUnitId:n,comment:t,sync:!0}}]}});this._refRangeService=e,this._sheetsThreadCommentModel=n,this._threadCommentModel=t,this._selectionManagerService=r,this._commandService=o,this._initData(),this._initRefRange()}_getIdWithUnitId(e,n,t){return`${e}-${n}-${t}`}_register(e,n,t){const r=t.id,o={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};this._disposableMap.set(this._getIdWithUnitId(e,n,r),this._refRangeService.registerRefRange(o,s=>{const i=g.handleCommonRangeChangeWithEffectRefCommandsSkipNoInterests(o,s,{selectionManagerService:this._selectionManagerService}),m=Array.isArray(i)?i[0]:i;return m&&m.startColumn===o.startColumn&&m.startRow===o.startRow?{undos:[],redos:[]}:this._handleRangeChange(e,n,t,m,!1)},e,n))}_watch(e,n,t){const r=t.id,o={startColumn:t.column,endColumn:t.column,startRow:t.row,endRow:t.row};this._watcherMap.set(this._getIdWithUnitId(e,n,r),this._refRangeService.watchRange(e,n,o,(s,i)=>{const{redos:m}=this._handleRangeChange(e,n,t,i,!0);d.sequenceExecuteAsync(m,this._commandService,{onlyLocal:!0})},!0))}_unwatch(e,n,t){var o;const r=this._getIdWithUnitId(e,n,t);(o=this._watcherMap.get(r))==null||o.dispose(),this._watcherMap.delete(r)}_unregister(e,n,t){var o;const r=this._getIdWithUnitId(e,n,t);(o=this._disposableMap.get(r))==null||o.dispose(),this._disposableMap.delete(r)}_initData(){const e=this._threadCommentModel.getAll();for(const n of e)for(const t of n.threads){const{unitId:r,subUnitId:o,root:s}=t,i=u.singleReferenceToGrid(s.ref),m={...s,...i};this._register(r,o,m),this._watch(r,o,m)}}_initRefRange(){this.disposeWithMe(this._sheetsThreadCommentModel.commentUpdate$.subscribe(e=>{const{unitId:n,subUnitId:t}=e;switch(e.type){case"add":{if(e.payload.parentId)return;const r={...e.payload,row:e.row,column:e.column};this._register(e.unitId,e.subUnitId,r),this._watch(e.unitId,e.subUnitId,r);break}case"delete":{this._unregister(n,t,e.payload.commentId),this._unwatch(n,t,e.payload.commentId);break}case"updateRef":{const r=this._sheetsThreadCommentModel.getComment(n,t,e.payload.commentId);if(!r)return;this._unregister(n,t,e.payload.commentId);const o={...r,row:e.row,column:e.column};e.silent||(this._unwatch(n,t,e.payload.commentId),this._watch(n,t,o)),this._register(e.unitId,e.subUnitId,o);break}}})),this.disposeWithMe(d.toDisposable(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};exports.SheetsThreadCommentRefRangeController=P([p(0,d.Inject(g.RefRangeService)),p(1,d.Inject(exports.SheetsThreadCommentModel)),p(2,d.Inject(f.ThreadCommentModel)),p(3,d.Inject(g.SheetsSelectionsService)),p(4,d.ICommandService)],exports.SheetsThreadCommentRefRangeController);const $="SHEET_THREAD_COMMENT_BASE_PLUGIN";var v=Object.defineProperty,E=Object.getOwnPropertyDescriptor,j=(c,a,e)=>a in c?v(c,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):c[a]=e,D=(c,a,e,n)=>{for(var t=n>1?void 0:n?E(a,e):a,r=c.length-1,o;r>=0;r--)(o=c[r])&&(t=(n?o(a,e,t):o(t))||t);return n&&t&&v(a,e,t),t},M=(c,a)=>(e,n)=>a(e,n,c),R=(c,a,e)=>j(c,typeof a!="symbol"?a+"":a,e);exports.UniverSheetsThreadCommentPlugin=class extends d.Plugin{constructor(a,e,n){super(),this._injector=e,this._commandService=n}onStarting(){[[exports.SheetsThreadCommentModel],[exports.SheetsThreadCommentRefRangeController]].forEach(a=>{this._injector.add(a)}),this._injector.get(exports.SheetsThreadCommentRefRangeController)}};R(exports.UniverSheetsThreadCommentPlugin,"pluginName",$);R(exports.UniverSheetsThreadCommentPlugin,"type",d.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsThreadCommentPlugin=D([d.DependentOn(f.UniverThreadCommentPlugin),M(1,d.Inject(d.Injector)),M(2,d.Inject(d.ICommandService))],exports.UniverSheetsThreadCommentPlugin);
|
package/lib/es/facade.js
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { Inject as g, Injector as x, UniverInstanceType as T, ICommandService as h, IUniverInstanceService as j, UserManagerService as R, Tools as l, toDisposable as m } from "@univerjs/core";
|
|
2
|
+
import { FRange as c, FWorkbook as p, FWorksheet as f } from "@univerjs/sheets/facade";
|
|
3
|
+
import { SheetsThreadCommentModel as u } from "@univerjs/sheets-thread-comment";
|
|
4
|
+
import { DeleteCommentTreeCommand as _, DeleteCommentCommand as b, getDT as U, UpdateCommentCommand as k, ResolveCommentCommand as M, AddCommentCommand as v, ThreadCommentModel as D } from "@univerjs/thread-comment";
|
|
5
|
+
import { deserializeRangeWithSheet as y } from "@univerjs/engine-formula";
|
|
6
|
+
import { filter as B } from "rxjs";
|
|
7
|
+
var E = Object.defineProperty, F = Object.getOwnPropertyDescriptor, P = (r, t, e, n) => {
|
|
8
|
+
for (var o = n > 1 ? void 0 : n ? F(t, e) : t, i = r.length - 1, s; i >= 0; i--)
|
|
9
|
+
(s = r[i]) && (o = (n ? s(t, e, o) : s(o)) || o);
|
|
10
|
+
return n && o && E(t, e, o), o;
|
|
11
|
+
}, a = (r, t) => (e, n) => t(e, n, r);
|
|
12
|
+
let d = class {
|
|
13
|
+
constructor(r, t, e, n, o, i) {
|
|
14
|
+
this._thread = r, this._parent = t, this._injector = e, this._commandService = n, this._univerInstanceService = o, this._threadCommentModel = i;
|
|
15
|
+
}
|
|
16
|
+
_getRef() {
|
|
17
|
+
var e;
|
|
18
|
+
const r = ((e = this._parent) == null ? void 0 : e.ref) || this._thread.ref;
|
|
19
|
+
return y(r).range;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Whether the comment is a root comment
|
|
23
|
+
* @returns Whether the comment is a root comment
|
|
24
|
+
*/
|
|
25
|
+
getIsRoot() {
|
|
26
|
+
return !this._parent;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get the comment data
|
|
30
|
+
* @returns The comment data
|
|
31
|
+
*/
|
|
32
|
+
getCommentData() {
|
|
33
|
+
const { children: r, ...t } = this._thread;
|
|
34
|
+
return t;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the replies of the comment
|
|
38
|
+
* @returns the replies of the comment
|
|
39
|
+
*/
|
|
40
|
+
getReplies() {
|
|
41
|
+
var e;
|
|
42
|
+
const r = this._getRef(), t = this._threadCommentModel.getCommentWithChildren(this._thread.unitId, this._thread.subUnitId, r.startRow, r.startColumn);
|
|
43
|
+
return (e = t == null ? void 0 : t.children) == null ? void 0 : e.map((n) => this._injector.createInstance(d, n));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get the range of the comment
|
|
47
|
+
* @returns The range of the comment
|
|
48
|
+
*/
|
|
49
|
+
getRange() {
|
|
50
|
+
const r = this._univerInstanceService.getUnit(this._thread.unitId, T.UNIVER_SHEET);
|
|
51
|
+
if (!r)
|
|
52
|
+
return null;
|
|
53
|
+
const t = r.getSheetBySheetId(this._thread.subUnitId);
|
|
54
|
+
if (!t)
|
|
55
|
+
return null;
|
|
56
|
+
const e = this._getRef();
|
|
57
|
+
return this._injector.createInstance(c, r, t, e);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get the content of the comment
|
|
61
|
+
* @returns The content of the comment
|
|
62
|
+
*/
|
|
63
|
+
getContent() {
|
|
64
|
+
return this._thread.text;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Delete the comment and it's replies
|
|
68
|
+
* @returns success or not
|
|
69
|
+
*/
|
|
70
|
+
delete() {
|
|
71
|
+
return this._commandService.executeCommand(
|
|
72
|
+
this.getIsRoot() ? _.id : b.id,
|
|
73
|
+
{
|
|
74
|
+
commentId: this._thread.id,
|
|
75
|
+
unitId: this._thread.unitId,
|
|
76
|
+
subUnitId: this._thread.subUnitId
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Update the comment content
|
|
82
|
+
* @param content The new content of the comment
|
|
83
|
+
* @returns success or not
|
|
84
|
+
*/
|
|
85
|
+
async update(r) {
|
|
86
|
+
const t = U();
|
|
87
|
+
return await this._commandService.executeCommand(
|
|
88
|
+
k.id,
|
|
89
|
+
{
|
|
90
|
+
unitId: this._thread.unitId,
|
|
91
|
+
subUnitId: this._thread.subUnitId,
|
|
92
|
+
payload: {
|
|
93
|
+
commentId: this._thread.id,
|
|
94
|
+
text: r,
|
|
95
|
+
updated: !0,
|
|
96
|
+
updateT: t
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Resolve the comment
|
|
103
|
+
* @param resolved Whether the comment is resolved
|
|
104
|
+
* @returns success or not
|
|
105
|
+
*/
|
|
106
|
+
resolve(r) {
|
|
107
|
+
return this._commandService.executeCommand(
|
|
108
|
+
M.id,
|
|
109
|
+
{
|
|
110
|
+
unitId: this._thread.unitId,
|
|
111
|
+
subUnitId: this._thread.subUnitId,
|
|
112
|
+
commentId: this._thread.id,
|
|
113
|
+
resolved: r != null ? r : !this._thread.resolved
|
|
114
|
+
}
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
d = P([
|
|
119
|
+
a(2, g(x)),
|
|
120
|
+
a(3, h),
|
|
121
|
+
a(4, j),
|
|
122
|
+
a(5, g(u))
|
|
123
|
+
], d);
|
|
124
|
+
class A extends c {
|
|
125
|
+
getComment() {
|
|
126
|
+
const e = this._injector.get(u), n = this._workbook.getUnitId(), o = this._worksheet.getSheetId(), i = e.getByLocation(n, o, this._range.startRow, this._range.startColumn);
|
|
127
|
+
if (!i)
|
|
128
|
+
return null;
|
|
129
|
+
const s = e.getComment(n, o, i);
|
|
130
|
+
return s ? this._injector.createInstance(d, s) : null;
|
|
131
|
+
}
|
|
132
|
+
addComment(t) {
|
|
133
|
+
var C;
|
|
134
|
+
const e = this._injector, n = (C = this.getComment()) == null ? void 0 : C.getCommentData(), o = e.get(h), i = e.get(R), s = this._workbook.getUnitId(), I = this._worksheet.getSheetId(), w = `${l.chatAtABC(this._range.startColumn)}${this._range.startRow + 1}`, S = i.getCurrentUser();
|
|
135
|
+
return o.executeCommand(v.id, {
|
|
136
|
+
unitId: s,
|
|
137
|
+
subUnitId: I,
|
|
138
|
+
comment: {
|
|
139
|
+
text: t,
|
|
140
|
+
attachments: [],
|
|
141
|
+
dT: U(),
|
|
142
|
+
id: l.generateRandomId(),
|
|
143
|
+
ref: w,
|
|
144
|
+
personId: S.userID,
|
|
145
|
+
parentId: n == null ? void 0 : n.id,
|
|
146
|
+
unitId: s,
|
|
147
|
+
subUnitId: I,
|
|
148
|
+
threadId: n == null ? void 0 : n.threadId
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
clearComment() {
|
|
153
|
+
var s;
|
|
154
|
+
const t = this._injector, e = (s = this.getComment()) == null ? void 0 : s.getCommentData(), n = t.get(h), o = this._workbook.getUnitId(), i = this._worksheet.getSheetId();
|
|
155
|
+
return e ? n.executeCommand(_.id, {
|
|
156
|
+
unitId: o,
|
|
157
|
+
subUnitId: i,
|
|
158
|
+
threadId: e.threadId,
|
|
159
|
+
commentId: e.id
|
|
160
|
+
}) : Promise.resolve(!0);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
c.extend(A);
|
|
164
|
+
class W extends p {
|
|
165
|
+
_initialize() {
|
|
166
|
+
Object.defineProperty(this, "_threadCommentModel", {
|
|
167
|
+
get() {
|
|
168
|
+
return this._injector.get(D);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
onThreadCommentChange(t) {
|
|
173
|
+
return m(this._threadCommentModel.commentUpdate$.pipe(B((e) => e.unitId === this._workbook.getUnitId())).subscribe(t));
|
|
174
|
+
}
|
|
175
|
+
onBeforeAddThreadComment(t) {
|
|
176
|
+
return m(this._commandService.beforeCommandExecuted((e, n) => {
|
|
177
|
+
const o = e.params;
|
|
178
|
+
if (e.id === v.id) {
|
|
179
|
+
if (o.unitId !== this._workbook.getUnitId())
|
|
180
|
+
return;
|
|
181
|
+
if (t(o, n) === !1)
|
|
182
|
+
throw new Error("Command is stopped by the hook onBeforeAddThreadComment");
|
|
183
|
+
}
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
onBeforeUpdateThreadComment(t) {
|
|
187
|
+
return m(this._commandService.beforeCommandExecuted((e, n) => {
|
|
188
|
+
const o = e.params;
|
|
189
|
+
if (e.id === k.id) {
|
|
190
|
+
if (o.unitId !== this._workbook.getUnitId())
|
|
191
|
+
return;
|
|
192
|
+
if (t(o, n) === !1)
|
|
193
|
+
throw new Error("Command is stopped by the hook onBeforeUpdateThreadComment");
|
|
194
|
+
}
|
|
195
|
+
}));
|
|
196
|
+
}
|
|
197
|
+
onBeforeDeleteThreadComment(t) {
|
|
198
|
+
return m(this._commandService.beforeCommandExecuted((e, n) => {
|
|
199
|
+
const o = e.params;
|
|
200
|
+
if (e.id === b.id || e.id === _.id) {
|
|
201
|
+
if (o.unitId !== this._workbook.getUnitId())
|
|
202
|
+
return;
|
|
203
|
+
if (t(o, n) === !1)
|
|
204
|
+
throw new Error("Command is stopped by the hook onBeforeDeleteThreadComment");
|
|
205
|
+
}
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
p.extend(W);
|
|
210
|
+
class O extends f {
|
|
211
|
+
getComments() {
|
|
212
|
+
return this._injector.get(u).getSubUnitAll(this._workbook.getUnitId(), this._worksheet.getSheetId()).map((n) => this._injector.createInstance(d, n));
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
f.extend(O);
|
|
216
|
+
export {
|
|
217
|
+
d as FThreadComment
|
|
218
|
+
};
|