@univerjs/thread-comment-ui 0.3.0-alpha.0 → 0.3.0-nightly.202410101606

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/es/index.js CHANGED
@@ -1,767 +1 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
3
- var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
- import dayjs from "dayjs";
6
- import { UniverThreadCommentPlugin, ThreadCommentModel, AddCommentCommand, UpdateCommentCommand, ResolveCommentCommand, DeleteCommentTreeCommand, DeleteCommentCommand } from "@univerjs/thread-comment";
7
- import { Inject, Disposable, UniverInstanceType, IUniverInstanceService, CommandType, createIdentifier, DependentOn, Injector, Plugin, mergeOverrideWithDependencies, ICommandService, IConfigService, CustomRangeType, useDependency, LocaleService, UserManagerService, generateRandomId } from "@univerjs/core";
8
- import { ISidebarService, useObservable } from "@univerjs/ui";
9
- import { BehaviorSubject, filter } from "rxjs";
10
- import { Mentions, Mention, Button, Tooltip, Dropdown, Menu, MenuItem, Select } from "@univerjs/design";
11
- import React, { forwardRef, useRef, createElement, useState, useImperativeHandle, useEffect, useMemo } from "react";
12
- import cs from "clsx";
13
- import { DocSelectionManagerService } from "@univerjs/docs";
14
- import { DocSelectionRenderService } from "@univerjs/docs-ui";
15
- import { IRenderManagerService } from "@univerjs/engine-render";
16
- function getDT() {
17
- return dayjs().format("YYYY/MM/DD HH:mm");
18
- }
19
- __name(getDT, "getDT");
20
- const THREAD_COMMENT_PANEL = "thread-comment-panel", PLUGIN_NAME = "UNIVER_THREAD_COMMENT_UI_PLUGIN";
21
- var __defProp$1 = Object.defineProperty, __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor, __decorateClass$1 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
22
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
23
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
24
- return kind && result && __defProp$1(target, key, result), result;
25
- }, "__decorateClass$1"), __decorateParam$1 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$1"), _a;
26
- let ThreadCommentPanelService = (_a = class extends Disposable {
27
- constructor(_sidebarService, _univerInstanceService) {
28
- super();
29
- __publicField(this, "_panelVisible", !1);
30
- __publicField(this, "_panelVisible$", new BehaviorSubject(!1));
31
- __publicField(this, "_activeCommentId");
32
- __publicField(this, "_activeCommentId$", new BehaviorSubject(void 0));
33
- __publicField(this, "panelVisible$", this._panelVisible$.asObservable());
34
- __publicField(this, "activeCommentId$", this._activeCommentId$.asObservable());
35
- this._sidebarService = _sidebarService, this._univerInstanceService = _univerInstanceService, this._init(), this.disposeWithMe(() => {
36
- this._activeCommentId$.complete(), this._panelVisible$.complete();
37
- });
38
- }
39
- _init() {
40
- this.disposeWithMe(
41
- this._sidebarService.sidebarOptions$.subscribe((opt) => {
42
- opt.visible || this.setPanelVisible(!1);
43
- })
44
- ), this.disposeWithMe(
45
- this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).pipe(filter((sheet) => !sheet)).subscribe(() => {
46
- this._sidebarService.close();
47
- })
48
- );
49
- }
50
- get panelVisible() {
51
- return this._panelVisible;
52
- }
53
- get activeCommentId() {
54
- return this._activeCommentId;
55
- }
56
- setPanelVisible(visible) {
57
- this._panelVisible = visible, this._panelVisible$.next(visible);
58
- }
59
- setActiveComment(commentInfo) {
60
- this._activeCommentId = commentInfo, this._activeCommentId$.next(commentInfo);
61
- }
62
- }, __name(_a, "ThreadCommentPanelService"), _a);
63
- ThreadCommentPanelService = __decorateClass$1([
64
- __decorateParam$1(0, Inject(ISidebarService)),
65
- __decorateParam$1(1, IUniverInstanceService)
66
- ], ThreadCommentPanelService);
67
- const ToggleSheetCommentPanelOperation = {
68
- id: "thread-comment-ui.operation.toggle-panel",
69
- type: CommandType.OPERATION,
70
- handler(accessor) {
71
- const sidebarService = accessor.get(ISidebarService), panelService = accessor.get(ThreadCommentPanelService);
72
- return panelService.panelVisible ? (sidebarService.close(), panelService.setPanelVisible(!1)) : (sidebarService.open({
73
- header: { title: "threadCommentUI.panel.title" },
74
- children: { label: THREAD_COMMENT_PANEL },
75
- width: 330
76
- }), panelService.setPanelVisible(!0)), !0;
77
- }
78
- }, SetActiveCommentOperation = {
79
- id: "thread-comment-ui.operation.set-active-comment",
80
- type: CommandType.OPERATION,
81
- handler(accessor, params) {
82
- return accessor.get(ThreadCommentPanelService).setActiveComment(params), !0;
83
- }
84
- }, _ThreadCommentMentionDataService = class _ThreadCommentMentionDataService {
85
- constructor() {
86
- __publicField(this, "dataSource");
87
- __publicField(this, "renderSuggestion");
88
- __publicField(this, "trigger", "@");
89
- }
90
- async getMentions(search, unitId, subUnitId) {
91
- return this.dataSource ? this.dataSource.getMentions(search, unitId, subUnitId) : [];
92
- }
93
- };
94
- __name(_ThreadCommentMentionDataService, "ThreadCommentMentionDataService");
95
- let ThreadCommentMentionDataService = _ThreadCommentMentionDataService;
96
- const IThreadCommentMentionDataService = createIdentifier("thread-comment.mention-data.service"), PLUGIN_CONFIG_KEY = "thread-comment-ui.config", defaultPluginConfig = {};
97
- var __defProp2 = Object.defineProperty, __getOwnPropDesc = Object.getOwnPropertyDescriptor, __defNormalProp2 = /* @__PURE__ */ __name((obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, "__defNormalProp"), __decorateClass = /* @__PURE__ */ __name((decorators, target, key, kind) => {
98
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
99
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
100
- return kind && result && __defProp2(target, key, result), result;
101
- }, "__decorateClass"), __decorateParam = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam"), __publicField2 = /* @__PURE__ */ __name((obj, key, value) => __defNormalProp2(obj, typeof key != "symbol" ? key + "" : key, value), "__publicField"), _a2;
102
- let UniverThreadCommentUIPlugin = (_a2 = class extends Plugin {
103
- constructor(_config = defaultPluginConfig, _injector, _commandService, _configService) {
104
- super(), this._config = _config, this._injector = _injector, this._commandService = _commandService, this._configService = _configService;
105
- const { menu, ...rest } = this._config;
106
- menu && this._configService.setConfig("menu", menu, { merge: !0 }), this._configService.setConfig(PLUGIN_CONFIG_KEY, rest);
107
- }
108
- onStarting() {
109
- var _a3;
110
- mergeOverrideWithDependencies([
111
- [ThreadCommentPanelService],
112
- [IThreadCommentMentionDataService, { useClass: ThreadCommentMentionDataService }]
113
- ], (_a3 = this._config) == null ? void 0 : _a3.overrides).forEach((dep) => {
114
- this._injector.add(dep);
115
- }), [ToggleSheetCommentPanelOperation, SetActiveCommentOperation].forEach((command) => {
116
- this._commandService.registerCommand(command);
117
- });
118
- }
119
- }, __name(_a2, "UniverThreadCommentUIPlugin"), _a2);
120
- __publicField2(UniverThreadCommentUIPlugin, "pluginName", PLUGIN_NAME);
121
- __publicField2(UniverThreadCommentUIPlugin, "type", UniverInstanceType.UNIVER_UNKNOWN);
122
- UniverThreadCommentUIPlugin = __decorateClass([
123
- DependentOn(UniverThreadCommentPlugin),
124
- __decorateParam(1, Inject(Injector)),
125
- __decorateParam(2, ICommandService),
126
- __decorateParam(3, IConfigService)
127
- ], UniverThreadCommentUIPlugin);
128
- var __assign = function() {
129
- return __assign = Object.assign || function(t) {
130
- for (var s, i = 1, n = arguments.length; i < n; i++) {
131
- s = arguments[i];
132
- for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && (t[p] = s[p]);
133
- }
134
- return t;
135
- }, __assign.apply(this, arguments);
136
- }, __rest = function(s, e) {
137
- var t = {};
138
- for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
139
- if (s != null && typeof Object.getOwnPropertySymbols == "function")
140
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)
141
- e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
142
- return t;
143
- }, IconBase = forwardRef(function(props, ref) {
144
- 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 = useRef("_".concat(generateShortUuid()));
145
- return render(icon, "".concat(id), { defIds: icon.defIds, idSuffix: idSuffix.current }, __assign({ ref, className: cls }, restProps), extend);
146
- });
147
- function render(node, id, runtimeProps, rootProps, extend) {
148
- return createElement(node.tag, __assign(__assign({ key: id }, replaceRuntimeIdsAndExtInAttrs(node, runtimeProps, extend)), rootProps), (replaceRuntimeIdsInDefs(node, runtimeProps).children || []).map(function(child, index) {
149
- return render(child, "".concat(id, "-").concat(node.tag, "-").concat(index), runtimeProps, void 0, extend);
150
- }));
151
- }
152
- __name(render, "render");
153
- function replaceRuntimeIdsAndExtInAttrs(node, runtimeProps, extend) {
154
- var attrs = __assign({}, node.attrs);
155
- extend != null && extend.colorChannel1 && attrs.fill === "colorChannel1" && (attrs.fill = extend.colorChannel1);
156
- var defIds = runtimeProps.defIds;
157
- return !defIds || defIds.length === 0 || (node.tag === "use" && attrs["xlink:href"] && (attrs["xlink:href"] = attrs["xlink:href"] + runtimeProps.idSuffix), Object.entries(attrs).forEach(function(_a3) {
158
- var key = _a3[0], value = _a3[1];
159
- typeof value == "string" && (attrs[key] = value.replace(/url\(#(.*)\)/, "url(#$1".concat(runtimeProps.idSuffix, ")")));
160
- })), attrs;
161
- }
162
- __name(replaceRuntimeIdsAndExtInAttrs, "replaceRuntimeIdsAndExtInAttrs");
163
- function replaceRuntimeIdsInDefs(node, runtimeProps) {
164
- var _a3, defIds = runtimeProps.defIds;
165
- return !defIds || defIds.length === 0 ? node : node.tag === "defs" && (!((_a3 = node.children) === null || _a3 === void 0) && _a3.length) ? __assign(__assign({}, node), { children: node.children.map(function(child) {
166
- 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;
167
- }) }) : node;
168
- }
169
- __name(replaceRuntimeIdsInDefs, "replaceRuntimeIdsInDefs");
170
- function generateShortUuid() {
171
- return Math.random().toString(36).substring(2, 8);
172
- }
173
- __name(generateShortUuid, "generateShortUuid");
174
- IconBase.displayName = "UniverIcon";
175
- var element$5 = { 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" } }] }, DeleteSingle = forwardRef(function(props, ref) {
176
- return createElement(IconBase, Object.assign({}, props, {
177
- id: "delete-single",
178
- ref,
179
- icon: element$5
180
- }));
181
- });
182
- DeleteSingle.displayName = "DeleteSingle";
183
- var element$4 = { 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" } }] }, IncreaseSingle = forwardRef(function(props, ref) {
184
- return createElement(IconBase, Object.assign({}, props, {
185
- id: "increase-single",
186
- ref,
187
- icon: element$4
188
- }));
189
- });
190
- IncreaseSingle.displayName = "IncreaseSingle";
191
- var element$3 = { 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" } }] }, MoreHorizontalSingle = forwardRef(function(props, ref) {
192
- return createElement(IconBase, Object.assign({}, props, {
193
- id: "more-horizontal-single",
194
- ref,
195
- icon: element$3
196
- }));
197
- });
198
- MoreHorizontalSingle.displayName = "MoreHorizontalSingle";
199
- var element$2 = { 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 } }] }, ReplyToCommentSingle = forwardRef(function(props, ref) {
200
- return createElement(IconBase, Object.assign({}, props, {
201
- id: "reply-to-comment-single",
202
- ref,
203
- icon: element$2
204
- }));
205
- });
206
- ReplyToCommentSingle.displayName = "ReplyToCommentSingle";
207
- var element$1 = { 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" } }] }, ResolvedSingle = forwardRef(function(props, ref) {
208
- return createElement(IconBase, Object.assign({}, props, {
209
- id: "resolved-single",
210
- ref,
211
- icon: element$1
212
- }));
213
- });
214
- ResolvedSingle.displayName = "ResolvedSingle";
215
- var element = { 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 } }] }, SolveSingle = forwardRef(function(props, ref) {
216
- return createElement(IconBase, Object.assign({}, props, {
217
- id: "solve-single",
218
- ref,
219
- icon: element
220
- }));
221
- });
222
- SolveSingle.displayName = "SolveSingle";
223
- const threadCommentEditorButtons = "univer-thread-comment-editor-buttons", threadCommentEditorSuggestion = "univer-thread-comment-editor-suggestion", threadCommentEditorSuggestionActive = "univer-thread-comment-editor-suggestionActive", threadCommentEditorSuggestionIcon = "univer-thread-comment-editor-suggestion-icon", styles$2 = {
224
- threadCommentEditorButtons,
225
- threadCommentEditorSuggestion,
226
- threadCommentEditorSuggestionActive,
227
- threadCommentEditorSuggestionIcon
228
- }, parseMentions = /* @__PURE__ */ __name((text) => {
229
- const regex = /@\[(.*?)\]\((.*?)\)|(\w+)/g;
230
- let match, lastIndex = 0;
231
- const result = [];
232
- for (; (match = regex.exec(text)) !== null; )
233
- match.index > lastIndex && result.push({
234
- type: "text",
235
- content: text.substring(lastIndex, match.index)
236
- }), match[1] && match[2] ? result.push({
237
- type: "mention",
238
- content: {
239
- label: match[1],
240
- id: match[2]
241
- }
242
- }) : match[3] && result.push({
243
- type: "text",
244
- content: match[3]
245
- }), lastIndex = regex.lastIndex;
246
- return lastIndex < text.length && result.push({
247
- type: "text",
248
- content: text.substring(lastIndex)
249
- }), result;
250
- }, "parseMentions"), transformTextNode2Text = /* @__PURE__ */ __name((nodes) => nodes.map((item) => {
251
- switch (item.type) {
252
- case "mention":
253
- return `@[${item.content.label}](${item.content.id})`;
254
- default:
255
- return item.content;
256
- }
257
- }).join(""), "transformTextNode2Text"), transformDocument2TextNodes = /* @__PURE__ */ __name((doc) => {
258
- const { dataStream, customRanges } = doc, end = dataStream.length - 2, textNodes = [];
259
- let lastIndex = 0;
260
- return customRanges == null || customRanges.forEach((range) => {
261
- lastIndex < range.startIndex && textNodes.push({
262
- type: "text",
263
- content: dataStream.slice(lastIndex, range.startIndex)
264
- }), textNodes.push({
265
- type: "mention",
266
- content: {
267
- label: dataStream.slice(range.startIndex, range.endIndex).slice(1, -1),
268
- id: range.rangeId
269
- }
270
- }), lastIndex = range.endIndex;
271
- }), textNodes.push({
272
- type: "text",
273
- content: dataStream.slice(lastIndex, end)
274
- }), textNodes;
275
- }, "transformDocument2TextNodes"), transformTextNodes2Document = /* @__PURE__ */ __name((nodes) => {
276
- let str = "";
277
- const customRanges = [];
278
- return nodes.forEach((node) => {
279
- switch (node.type) {
280
- case "text":
281
- str += node.content;
282
- break;
283
- case "mention": {
284
- const start = str.length;
285
- str += `${node.content.label}`;
286
- const end = str.length;
287
- customRanges.push({
288
- rangeId: node.content.id,
289
- rangeType: CustomRangeType.MENTION,
290
- startIndex: start,
291
- endIndex: end
292
- });
293
- break;
294
- }
295
- }
296
- }), str += `
297
- \r`, {
298
- textRuns: [],
299
- paragraphs: [
300
- {
301
- startIndex: str.length - 2,
302
- paragraphStyle: {}
303
- }
304
- ],
305
- sectionBreaks: [
306
- {
307
- startIndex: str.length - 1
308
- }
309
- ],
310
- dataStream: str,
311
- customRanges
312
- };
313
- }, "transformTextNodes2Document"), transformMention = /* @__PURE__ */ __name((mention) => ({
314
- display: mention.label,
315
- id: `${mention.id}`,
316
- raw: mention
317
- }), "transformMention"), defaultRenderSuggestion = /* @__PURE__ */ __name((mention, search, highlightedDisplay, index, focused) => {
318
- var _a3, _b;
319
- const icon = (_a3 = mention.raw) == null ? void 0 : _a3.icon;
320
- return /* @__PURE__ */ React.createElement("div", { className: styles$2.threadCommentEditorSuggestion }, icon ? /* @__PURE__ */ React.createElement("img", { className: styles$2.threadCommentEditorSuggestionIcon, src: icon }) : null, /* @__PURE__ */ React.createElement("div", null, (_b = mention.display) != null ? _b : mention.id));
321
- }, "defaultRenderSuggestion"), ThreadCommentEditor = forwardRef((props, ref) => {
322
- var _a3, _b;
323
- const { comment, onSave, id, onCancel, autoFocus, unitId, subUnitId } = props, mentionDataService = useDependency(IThreadCommentMentionDataService), commandService = useDependency(ICommandService), localeService = useDependency(LocaleService), [localComment, setLocalComment] = useState({ ...comment }), [editing, setEditing] = useState(!1), inputRef = useRef(null), docSelectionManagerService = useDependency(DocSelectionManagerService), docSelectionRenderService = (_a3 = useDependency(IRenderManagerService).getCurrentTypeOfRenderer(UniverInstanceType.UNIVER_DOC)) == null ? void 0 : _a3.with(DocSelectionRenderService);
324
- useImperativeHandle(ref, () => ({
325
- reply(text) {
326
- var _a4;
327
- setLocalComment({
328
- ...comment,
329
- text,
330
- attachments: []
331
- }), (_a4 = inputRef.current) == null || _a4.inputElement.focus();
332
- }
333
- }));
334
- const handleSave = /* @__PURE__ */ __name(() => {
335
- var _a4;
336
- localComment.text && (onSave == null || onSave({
337
- ...localComment,
338
- text: localComment.text
339
- }), setEditing(!1), setLocalComment({ text: void 0 }), (_a4 = inputRef.current) == null || _a4.inputElement.blur());
340
- }, "handleSave");
341
- return /* @__PURE__ */ React.createElement("div", { className: styles$2.threadCommentEditor, onClick: /* @__PURE__ */ __name((e) => e.preventDefault(), "onClick") }, /* @__PURE__ */ React.createElement(
342
- Mentions,
343
- {
344
- ref: inputRef,
345
- autoFocus,
346
- style: { width: "100%" },
347
- placeholder: localeService.t("threadCommentUI.editor.placeholder"),
348
- value: localComment != null && localComment.text ? transformTextNode2Text(transformDocument2TextNodes(localComment.text)) : "",
349
- onChange: /* @__PURE__ */ __name((e) => {
350
- e.target.value || setLocalComment({ ...comment, text: void 0 }), setLocalComment == null || setLocalComment({ ...comment, text: transformTextNodes2Document(parseMentions(e.target.value)) });
351
- }, "onChange"),
352
- onFocus: /* @__PURE__ */ __name(() => {
353
- const activeRange = docSelectionManagerService.getActiveTextRange();
354
- activeRange && activeRange.collapsed && (docSelectionRenderService == null || docSelectionRenderService.removeAllRanges()), docSelectionRenderService == null || docSelectionRenderService.blur(), setEditing(!0);
355
- }, "onFocus")
356
- },
357
- /* @__PURE__ */ React.createElement(
358
- Mention,
359
- {
360
- key: mentionDataService.trigger,
361
- trigger: mentionDataService.trigger,
362
- data: /* @__PURE__ */ __name((query, callback) => mentionDataService.getMentions(query, unitId, subUnitId).then((res) => res.map(transformMention)).then(callback), "data"),
363
- displayTransform: /* @__PURE__ */ __name((id2, label) => `@${label} `, "displayTransform"),
364
- renderSuggestion: (_b = mentionDataService.renderSuggestion) != null ? _b : defaultRenderSuggestion
365
- }
366
- )
367
- ), editing ? /* @__PURE__ */ React.createElement("div", { className: styles$2.threadCommentEditorButtons }, /* @__PURE__ */ React.createElement(
368
- Button,
369
- {
370
- style: { marginRight: 12 },
371
- onClick: /* @__PURE__ */ __name(() => {
372
- onCancel == null || onCancel(), setEditing(!1), setLocalComment({ text: void 0 }), commandService.executeCommand(SetActiveCommentOperation.id);
373
- }, "onClick")
374
- },
375
- localeService.t("threadCommentUI.editor.cancel")
376
- ), /* @__PURE__ */ React.createElement(
377
- Button,
378
- {
379
- type: "primary",
380
- disabled: !localComment.text,
381
- onClick: handleSave
382
- },
383
- localeService.t(id ? "threadCommentUI.editor.save" : "threadCommentUI.editor.reply")
384
- )) : null);
385
- }), threadComment$1 = "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", threadCommentItemTitlePosition = "univer-thread-comment-item-title-position", threadCommentItemTitleHighlight = "univer-thread-comment-item-title-highlight", threadCommentItemTime = "univer-thread-comment-item-time", threadCommentItemContent = "univer-thread-comment-item-content", threadCommentItemAt = "univer-thread-comment-item-at", styles$1 = {
386
- threadComment: threadComment$1,
387
- threadCommentActive,
388
- threadCommentContent,
389
- threadCommentHighlight,
390
- threadCommentIconContainer,
391
- threadCommentIcon,
392
- threadCommentTitle,
393
- threadCommentTitlePosition,
394
- threadCommentTitleHighlight,
395
- threadCommentTitlePositionText,
396
- threadCommentUsername,
397
- threadCommentItem,
398
- threadCommentItemHead,
399
- threadCommentItemTitle,
400
- threadCommentItemTitlePosition,
401
- threadCommentItemTitleHighlight,
402
- threadCommentItemTime,
403
- threadCommentItemContent,
404
- threadCommentItemAt
405
- }, MOCK_ID = "__mock__", ThreadCommentItem = /* @__PURE__ */ __name((props) => {
406
- const { item, unitId, subUnitId, editing, onEditingChange, onReply, resolved, isRoot, onClose, onDeleteComment } = props, commandService = useDependency(ICommandService), localeService = useDependency(LocaleService), userManagerService = useDependency(UserManagerService), user = userManagerService.getUser(item.personId), currentUser = useObservable(userManagerService.currentUser$), isCommentBySelf = (currentUser == null ? void 0 : currentUser.userID) === item.personId, isMock = item.id === MOCK_ID, [showReply, setShowReply] = useState(!1), handleDeleteItem = /* @__PURE__ */ __name(() => {
407
- (onDeleteComment == null ? void 0 : onDeleteComment(item)) !== !1 && (commandService.executeCommand(
408
- isRoot ? DeleteCommentTreeCommand.id : DeleteCommentCommand.id,
409
- {
410
- unitId,
411
- subUnitId,
412
- commentId: item.id
413
- }
414
- ), isRoot && (onClose == null || onClose()));
415
- }, "handleDeleteItem");
416
- return /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentItem, onMouseLeave: /* @__PURE__ */ __name(() => setShowReply(!1), "onMouseLeave"), onMouseEnter: /* @__PURE__ */ __name(() => setShowReply(!0), "onMouseEnter") }, /* @__PURE__ */ React.createElement("img", { className: styles$1.threadCommentItemHead, src: user == null ? void 0 : user.avatar }), /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentItemTitle }, /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentUsername }, (user == null ? void 0 : user.name) || " "), /* @__PURE__ */ React.createElement("div", null, isMock || resolved ? null : showReply ? /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentIcon, onClick: /* @__PURE__ */ __name(() => onReply(user), "onClick") }, /* @__PURE__ */ React.createElement(ReplyToCommentSingle, null)) : null, isCommentBySelf && !isMock && !resolved ? /* @__PURE__ */ React.createElement(
417
- Dropdown,
418
- {
419
- overlay: /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(MenuItem, { key: "edit", onClick: /* @__PURE__ */ __name(() => onEditingChange == null ? void 0 : onEditingChange(!0), "onClick") }, localeService.t("threadCommentUI.item.edit")), /* @__PURE__ */ React.createElement(MenuItem, { key: "delete", onClick: handleDeleteItem }, localeService.t("threadCommentUI.item.delete")))
420
- },
421
- /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentIcon }, /* @__PURE__ */ React.createElement(MoreHorizontalSingle, null))
422
- ) : null)), /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentItemTime }, item.dT), editing ? /* @__PURE__ */ React.createElement(
423
- ThreadCommentEditor,
424
- {
425
- id: item.id,
426
- comment: item,
427
- onCancel: /* @__PURE__ */ __name(() => onEditingChange == null ? void 0 : onEditingChange(!1), "onCancel"),
428
- autoFocus: !0,
429
- unitId,
430
- subUnitId,
431
- onSave: /* @__PURE__ */ __name(({ text, attachments }) => {
432
- onEditingChange == null || onEditingChange(!1), commandService.executeCommand(
433
- UpdateCommentCommand.id,
434
- {
435
- unitId,
436
- subUnitId,
437
- payload: {
438
- commentId: item.id,
439
- text,
440
- attachments
441
- }
442
- }
443
- );
444
- }, "onSave")
445
- }
446
- ) : /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentItemContent }, transformDocument2TextNodes(item.text).map((item2, i) => {
447
- switch (item2.type) {
448
- case "mention":
449
- return /* @__PURE__ */ React.createElement("a", { className: styles$1.threadCommentItemAt, key: i }, "@", item2.content.label, " ");
450
- default:
451
- return item2.content;
452
- }
453
- })));
454
- }, "ThreadCommentItem"), ThreadCommentTree = /* @__PURE__ */ __name((props) => {
455
- var _a3, _b, _c;
456
- const {
457
- id,
458
- unitId,
459
- subUnitId,
460
- refStr,
461
- showEdit = !0,
462
- onClick,
463
- showHighlight,
464
- onClose,
465
- getSubUnitName,
466
- prefix,
467
- autoFocus,
468
- onMouseEnter,
469
- onMouseLeave,
470
- onAddComment,
471
- onDeleteComment,
472
- onResolve
473
- } = props, threadCommentModel = useDependency(ThreadCommentModel), [isHover, setIsHover] = useState(!1), [editingId, setEditingId] = useState("");
474
- useObservable(threadCommentModel.commentMap$);
475
- const comments = id ? threadCommentModel.getCommentWithChildren(unitId, subUnitId, id) : null, commandService = useDependency(ICommandService), userManagerService = useDependency(UserManagerService), resolved = comments == null ? void 0 : comments.root.resolved, currentUser = useObservable(userManagerService.currentUser$), editorRef = useRef(null), renderComments = [
476
- ...comments ? [comments.root] : (
477
- // mock empty comment
478
- [{
479
- id: MOCK_ID,
480
- text: {
481
- dataStream: `
482
- \r`
483
- },
484
- personId: (_a3 = currentUser == null ? void 0 : currentUser.userID) != null ? _a3 : "",
485
- ref: refStr != null ? refStr : "",
486
- dT: "",
487
- unitId,
488
- subUnitId,
489
- threadId: ""
490
- }]
491
- ),
492
- ...(_b = comments == null ? void 0 : comments.children) != null ? _b : []
493
- ], scroller = useRef(null), handleResolve = /* @__PURE__ */ __name((e) => {
494
- e.stopPropagation(), resolved ? commandService.executeCommand(SetActiveCommentOperation.id, {
495
- unitId,
496
- subUnitId,
497
- commentId: id
498
- }) : commandService.executeCommand(SetActiveCommentOperation.id), commandService.executeCommand(ResolveCommentCommand.id, {
499
- unitId,
500
- subUnitId,
501
- commentId: id,
502
- resolved: !resolved
503
- }), onResolve == null || onResolve(!resolved);
504
- }, "handleResolve"), handleDeleteRoot = /* @__PURE__ */ __name((e) => {
505
- e.stopPropagation(), commandService.executeCommand(SetActiveCommentOperation.id), !(comments != null && comments.root && (onDeleteComment == null ? void 0 : onDeleteComment(comments.root)) === !1) && (commandService.executeCommand(
506
- DeleteCommentTreeCommand.id,
507
- {
508
- unitId,
509
- subUnitId,
510
- commentId: id
511
- }
512
- ), onClose == null || onClose());
513
- }, "handleDeleteRoot");
514
- useEffect(() => onMouseLeave == null ? void 0 : onMouseLeave(), []);
515
- const subUnitName = getSubUnitName((_c = comments == null ? void 0 : comments.root.subUnitId) != null ? _c : subUnitId), editorVisible = showEdit && !editingId && !resolved, title = `${refStr || (comments == null ? void 0 : comments.root.ref) || ""}${subUnitName ? " · " : ""}${subUnitName}`;
516
- return /* @__PURE__ */ React.createElement(
517
- "div",
518
- {
519
- className: cs(styles$1.threadComment, {
520
- [styles$1.threadCommentActive]: !resolved && (showHighlight || isHover || prefix === "cell")
521
- }),
522
- onClick,
523
- id: `${prefix}-${unitId}-${subUnitId}-${id}`,
524
- onMouseEnter: /* @__PURE__ */ __name(() => {
525
- onMouseEnter == null || onMouseEnter(), setIsHover(!0);
526
- }, "onMouseEnter"),
527
- onMouseLeave: /* @__PURE__ */ __name(() => {
528
- onMouseLeave == null || onMouseLeave(), setIsHover(!1);
529
- }, "onMouseLeave")
530
- },
531
- !resolved && showHighlight ? /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentHighlight }) : null,
532
- /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentTitle }, /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentTitlePosition }, /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentTitleHighlight }), /* @__PURE__ */ React.createElement(Tooltip, { showIfEllipsis: !0, title }, /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentTitlePositionText }, title))), comments ? /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentIconContainer }, /* @__PURE__ */ React.createElement(
533
- "div",
534
- {
535
- onClick: handleResolve,
536
- className: styles$1.threadCommentIcon,
537
- style: { color: resolved ? "rgb(var(--green-500))" : "" }
538
- },
539
- resolved ? /* @__PURE__ */ React.createElement(ResolvedSingle, null) : /* @__PURE__ */ React.createElement(SolveSingle, null)
540
- ), (currentUser == null ? void 0 : currentUser.userID) === comments.root.personId ? /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentIcon, onClick: handleDeleteRoot }, /* @__PURE__ */ React.createElement(DeleteSingle, null)) : null) : null),
541
- /* @__PURE__ */ React.createElement("div", { className: styles$1.threadCommentContent, ref: scroller }, renderComments.map(
542
- (item) => /* @__PURE__ */ React.createElement(
543
- ThreadCommentItem,
544
- {
545
- onClose,
546
- unitId,
547
- subUnitId,
548
- item,
549
- key: item.id,
550
- isRoot: item.id === (comments == null ? void 0 : comments.root.id),
551
- editing: editingId === item.id,
552
- resolved: comments == null ? void 0 : comments.root.resolved,
553
- onEditingChange: /* @__PURE__ */ __name((editing) => {
554
- setEditingId(editing ? item.id : "");
555
- }, "onEditingChange"),
556
- onReply: /* @__PURE__ */ __name((user) => {
557
- user && requestAnimationFrame(() => {
558
- var _a4;
559
- (_a4 = editorRef.current) == null || _a4.reply(transformTextNodes2Document([{
560
- type: "mention",
561
- content: {
562
- id: user.userID,
563
- label: user.name
564
- }
565
- }]));
566
- });
567
- }, "onReply"),
568
- onAddComment,
569
- onDeleteComment
570
- }
571
- )
572
- )),
573
- editorVisible ? /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(
574
- ThreadCommentEditor,
575
- {
576
- key: `${autoFocus}`,
577
- ref: editorRef,
578
- unitId,
579
- subUnitId,
580
- onSave: /* @__PURE__ */ __name(async ({ text, attachments }) => {
581
- const comment = {
582
- text,
583
- attachments,
584
- dT: getDT(),
585
- id: generateRandomId(),
586
- ref: refStr,
587
- personId: currentUser == null ? void 0 : currentUser.userID,
588
- parentId: comments == null ? void 0 : comments.root.id,
589
- unitId,
590
- subUnitId,
591
- threadId: comments == null ? void 0 : comments.root.threadId
592
- };
593
- (onAddComment == null ? void 0 : onAddComment(comment)) !== !1 && (await commandService.executeCommand(
594
- AddCommentCommand.id,
595
- {
596
- unitId,
597
- subUnitId,
598
- comment
599
- }
600
- ), scroller.current && (scroller.current.scrollTop = scroller.current.scrollHeight));
601
- }, "onSave"),
602
- autoFocus: autoFocus || !comments,
603
- onCancel: /* @__PURE__ */ __name(() => {
604
- comments || onClose == null || onClose();
605
- }, "onCancel")
606
- }
607
- )) : null
608
- );
609
- }, "ThreadCommentTree"), threadCommentPanel = "univer-thread-comment-panel", threadComment = "univer-thread-comment", threadCommentPanelForms = "univer-thread-comment-panel-forms", select = "univer-select", threadCommentPanelEmpty = "univer-thread-comment-panel-empty", threadCommentPanelAdd = "univer-thread-comment-panel-add", threadCommentPanelSolved = "univer-thread-comment-panel-solved", styles = {
610
- threadCommentPanel,
611
- threadComment,
612
- threadCommentPanelForms,
613
- select,
614
- threadCommentPanelEmpty,
615
- threadCommentPanelAdd,
616
- threadCommentPanelSolved
617
- }, ThreadCommentPanel = /* @__PURE__ */ __name((props) => {
618
- const {
619
- unitId,
620
- subUnitId$,
621
- type,
622
- onAdd,
623
- getSubUnitName,
624
- onResolve,
625
- sortComments,
626
- onItemLeave,
627
- onItemEnter,
628
- disableAdd,
629
- tempComment,
630
- onAddComment,
631
- onDeleteComment,
632
- showComments
633
- } = props, [unit, setUnit] = useState("all"), [status, setStatus] = useState("all"), localeService = useDependency(LocaleService), userService = useDependency(UserManagerService), threadCommentModel = useDependency(ThreadCommentModel), [unitComments, setUnitComments] = useState(() => threadCommentModel.getUnit(unitId)), panelService = useDependency(ThreadCommentPanelService), activeCommentId = useObservable(panelService.activeCommentId$), update = useObservable(threadCommentModel.commentUpdate$), commandService = useDependency(ICommandService), subUnitId = useObservable(subUnitId$), shouldScroll = useRef(!0), prefix = "panel", currentUser = useObservable(userService.currentUser$), comments = useMemo(() => {
634
- var _a3, _b;
635
- const allComments = (unit === "all" ? unitComments.map((i) => i[1]).flat() : (_b = (_a3 = unitComments.find((i) => i[0] === subUnitId)) == null ? void 0 : _a3[1]) != null ? _b : []).filter((i) => !i.parentId), sort = sortComments != null ? sortComments : (a) => a, res = allComments;
636
- if (showComments) {
637
- const map = /* @__PURE__ */ new Map();
638
- return res.forEach((comment) => {
639
- map.set(comment.id, comment);
640
- }), [...showComments, ""].map((id) => map.get(id)).filter(Boolean);
641
- } else
642
- return sort(res);
643
- }, [showComments, unit, unitComments, sortComments, subUnitId]), commentsSorted = useMemo(() => [
644
- ...comments.filter((comment) => !comment.resolved),
645
- ...comments.filter((comment) => comment.resolved)
646
- ], [comments]), statuedComments = useMemo(() => status === "resolved" ? commentsSorted.filter((comment) => comment.resolved) : status === "unsolved" ? commentsSorted.filter((comment) => !comment.resolved) : status === "concern_me" && currentUser != null && currentUser.userID ? commentsSorted.map((comment) => threadCommentModel.getCommentWithChildren(comment.unitId, comment.subUnitId, comment.id)).map((comment) => comment != null && comment.relativeUsers.has(currentUser.userID) ? comment.root : null).filter(Boolean) : commentsSorted, [commentsSorted, currentUser == null ? void 0 : currentUser.userID, status, threadCommentModel]), renderComments = tempComment ? [tempComment, ...statuedComments] : statuedComments, unSolvedComments = renderComments.filter((comment) => !comment.resolved), solvedComments = renderComments.filter((comment) => comment.resolved), isFiltering = status !== "all" || unit !== "all", onReset = /* @__PURE__ */ __name(() => {
647
- setStatus("all"), setUnit("all");
648
- }, "onReset");
649
- useEffect(() => {
650
- unitId && setUnitComments(
651
- threadCommentModel.getUnit(unitId)
652
- );
653
- }, [unitId, threadCommentModel, update]), useEffect(() => {
654
- var _a3;
655
- if (!activeCommentId)
656
- return;
657
- if (!shouldScroll.current) {
658
- shouldScroll.current = !0;
659
- return;
660
- }
661
- const { unitId: unitId2, subUnitId: subUnitId2, commentId } = activeCommentId, id = `${prefix}-${unitId2}-${subUnitId2}-${commentId}`;
662
- (_a3 = document.getElementById(id)) == null || _a3.scrollIntoView({ block: "center" });
663
- }, [activeCommentId]);
664
- const renderComment = /* @__PURE__ */ __name((comment) => /* @__PURE__ */ React.createElement(
665
- ThreadCommentTree,
666
- {
667
- prefix,
668
- getSubUnitName,
669
- key: comment.id,
670
- id: comment.id,
671
- unitId: comment.unitId,
672
- subUnitId: comment.subUnitId,
673
- refStr: comment.ref,
674
- type,
675
- showEdit: (activeCommentId == null ? void 0 : activeCommentId.commentId) === comment.id,
676
- showHighlight: (activeCommentId == null ? void 0 : activeCommentId.commentId) === comment.id,
677
- onClick: /* @__PURE__ */ __name(() => {
678
- shouldScroll.current = !1, comment.resolved ? commandService.executeCommand(SetActiveCommentOperation.id) : commandService.executeCommand(
679
- SetActiveCommentOperation.id,
680
- {
681
- unitId: comment.unitId,
682
- subUnitId: comment.subUnitId,
683
- commentId: comment.id,
684
- temp: !1
685
- }
686
- );
687
- }, "onClick"),
688
- onMouseEnter: /* @__PURE__ */ __name(() => onItemEnter == null ? void 0 : onItemEnter(comment), "onMouseEnter"),
689
- onMouseLeave: /* @__PURE__ */ __name(() => onItemLeave == null ? void 0 : onItemLeave(comment), "onMouseLeave"),
690
- onAddComment,
691
- onDeleteComment,
692
- onResolve: /* @__PURE__ */ __name((resolved) => onResolve == null ? void 0 : onResolve(comment.id, resolved), "onResolve")
693
- }
694
- ), "renderComment");
695
- return /* @__PURE__ */ React.createElement("div", { className: styles.threadCommentPanel }, /* @__PURE__ */ React.createElement("div", { className: styles.threadCommentPanelForms }, type === UniverInstanceType.UNIVER_SHEET ? /* @__PURE__ */ React.createElement(
696
- Select,
697
- {
698
- borderless: !0,
699
- value: unit,
700
- onChange: /* @__PURE__ */ __name((e) => setUnit(e), "onChange"),
701
- options: [
702
- {
703
- value: "current",
704
- label: localeService.t("threadCommentUI.filter.sheet.current")
705
- },
706
- {
707
- value: "all",
708
- label: localeService.t("threadCommentUI.filter.sheet.all")
709
- }
710
- ]
711
- }
712
- ) : null, /* @__PURE__ */ React.createElement(
713
- Select,
714
- {
715
- borderless: !0,
716
- value: status,
717
- onChange: /* @__PURE__ */ __name((e) => setStatus(e), "onChange"),
718
- options: [
719
- {
720
- value: "all",
721
- label: localeService.t("threadCommentUI.filter.status.all")
722
- },
723
- {
724
- value: "resolved",
725
- label: localeService.t("threadCommentUI.filter.status.resolved")
726
- },
727
- {
728
- value: "unsolved",
729
- label: localeService.t("threadCommentUI.filter.status.unsolved")
730
- },
731
- {
732
- value: "concern_me",
733
- label: localeService.t("threadCommentUI.filter.status.concernMe")
734
- }
735
- ]
736
- }
737
- )), unSolvedComments.map(renderComment), solvedComments.length ? /* @__PURE__ */ React.createElement("div", { className: styles.threadCommentPanelSolved }, "已解决") : null, solvedComments.map(renderComment), renderComments.length ? null : /* @__PURE__ */ React.createElement("div", { className: styles.threadCommentPanelEmpty }, isFiltering ? localeService.t("threadCommentUI.panel.filterEmpty") : localeService.t("threadCommentUI.panel.empty"), isFiltering ? /* @__PURE__ */ React.createElement(
738
- Button,
739
- {
740
- onClick: onReset,
741
- type: "link"
742
- },
743
- localeService.t("threadCommentUI.panel.reset")
744
- ) : /* @__PURE__ */ React.createElement(
745
- Button,
746
- {
747
- id: "thread-comment-add",
748
- className: styles.threadCommentPanelAdd,
749
- type: "primary",
750
- onClick: onAdd,
751
- disabled: disableAdd
752
- },
753
- /* @__PURE__ */ React.createElement(IncreaseSingle, null),
754
- localeService.t("threadCommentUI.panel.addComment")
755
- )));
756
- }, "ThreadCommentPanel");
757
- export {
758
- IThreadCommentMentionDataService,
759
- SetActiveCommentOperation,
760
- THREAD_COMMENT_PANEL,
761
- ThreadCommentPanel,
762
- ThreadCommentPanelService,
763
- ThreadCommentTree,
764
- ToggleSheetCommentPanelOperation,
765
- UniverThreadCommentUIPlugin,
766
- getDT
767
- };
1
+ var _0x4f2b8a=_0x1d3e;(function(_0x245643,_0x2259c3){var _0x68b3f7=_0x1d3e,_0x1d3c5e=_0x245643();while(!![]){try{var _0x3449ec=-parseInt(_0x68b3f7(0x1fd))/0x1+parseInt(_0x68b3f7(0x1d4))/0x2*(parseInt(_0x68b3f7(0x1b7))/0x3)+-parseInt(_0x68b3f7(0x13d))/0x4*(parseInt(_0x68b3f7(0x155))/0x5)+-parseInt(_0x68b3f7(0x1bc))/0x6+-parseInt(_0x68b3f7(0x175))/0x7*(-parseInt(_0x68b3f7(0x22d))/0x8)+-parseInt(_0x68b3f7(0x1f7))/0x9+parseInt(_0x68b3f7(0x22f))/0xa;if(_0x3449ec===_0x2259c3)break;else _0x1d3c5e['push'](_0x1d3c5e['shift']());}catch(_0x324cdf){_0x1d3c5e['push'](_0x1d3c5e['shift']());}}}(_0x5a93,0xbafb4));var __defProp=Object[_0x4f2b8a(0x206)],__defNormalProp=(_0x5599fd,_0x26e25c,_0x4519ab)=>_0x26e25c in _0x5599fd?__defProp(_0x5599fd,_0x26e25c,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0x4519ab}):_0x5599fd[_0x26e25c]=_0x4519ab,__name=(_0x2894e2,_0x422e9b)=>__defProp(_0x2894e2,_0x4f2b8a(0x1d6),{'value':_0x422e9b,'configurable':!0x0}),__publicField=(_0x425ec7,_0x425a5c,_0x25c60a)=>__defNormalProp(_0x425ec7,typeof _0x425a5c!=_0x4f2b8a(0x1ce)?_0x425a5c+'':_0x425a5c,_0x25c60a);import _0xca383c from'dayjs';import{UniverThreadCommentPlugin,ThreadCommentModel,AddCommentCommand,UpdateCommentCommand,ResolveCommentCommand,DeleteCommentTreeCommand,DeleteCommentCommand}from'@univerjs/thread-comment';import{Inject,Disposable,UniverInstanceType,IUniverInstanceService,CommandType,createIdentifier,DependentOn,Injector,Plugin,mergeOverrideWithDependencies,ICommandService,IConfigService,CustomRangeType,useDependency,LocaleService,UserManagerService,generateRandomId}from'@univerjs/core';import{ISidebarService,useObservable}from'@univerjs/ui';import{BehaviorSubject,filter}from'rxjs';import{Mentions,Mention,Button,Tooltip,Dropdown,Menu,MenuItem,Select}from'@univerjs/design';import _0x37a111,{forwardRef,useRef,createElement,useState,useImperativeHandle,useEffect,useMemo}from'react';import _0x1494ab from'clsx';import{DocSelectionManagerService}from'@univerjs/docs';import{DocSelectionRenderService}from'@univerjs/docs-ui';function _0x1d3e(_0x32b0fc,_0xa2c39e){var _0x5a931e=_0x5a93();return _0x1d3e=function(_0x1d3eb5,_0x3289de){_0x1d3eb5=_0x1d3eb5-0x132;var _0x4cc499=_0x5a931e[_0x1d3eb5];return _0x4cc499;},_0x1d3e(_0x32b0fc,_0xa2c39e);}import{IRenderManagerService}from'@univerjs/engine-render';function getDT(){var _0x1430f3=_0x4f2b8a;return _0xca383c()[_0x1430f3(0x1f1)]('YYYY/MM/DD\x20HH:mm');}__name(getDT,_0x4f2b8a(0x227));const THREAD_COMMENT_PANEL=_0x4f2b8a(0x1ed),PLUGIN_NAME=_0x4f2b8a(0x1ae);var __defProp$1=Object[_0x4f2b8a(0x206)],__getOwnPropDesc$1=Object[_0x4f2b8a(0x13a)],__decorateClass$1=__name((_0x82e56d,_0x4c4403,_0x1f3baa,_0x9b14c4)=>{var _0x352696=_0x4f2b8a;for(var _0xd5095a=_0x9b14c4>0x1?void 0x0:_0x9b14c4?__getOwnPropDesc$1(_0x4c4403,_0x1f3baa):_0x4c4403,_0x225504=_0x82e56d[_0x352696(0x151)]-0x1,_0x45d8d2;_0x225504>=0x0;_0x225504--)(_0x45d8d2=_0x82e56d[_0x225504])&&(_0xd5095a=(_0x9b14c4?_0x45d8d2(_0x4c4403,_0x1f3baa,_0xd5095a):_0x45d8d2(_0xd5095a))||_0xd5095a);return _0x9b14c4&&_0xd5095a&&__defProp$1(_0x4c4403,_0x1f3baa,_0xd5095a),_0xd5095a;},_0x4f2b8a(0x1e9)),__decorateParam$1=__name((_0x228674,_0xe5d2c3)=>(_0x2ea40c,_0x453333)=>_0xe5d2c3(_0x2ea40c,_0x453333,_0x228674),'__decorateParam$1'),_a;let ThreadCommentPanelService=(_a=class extends Disposable{constructor(_0x10cf77,_0xf77a11){var _0x2625f4=_0x4f2b8a;super(),__publicField(this,'_panelVisible',!0x1),__publicField(this,'_panelVisible$',new BehaviorSubject(!0x1)),__publicField(this,_0x2625f4(0x136)),__publicField(this,'_activeCommentId$',new BehaviorSubject(void 0x0)),__publicField(this,_0x2625f4(0x164),this[_0x2625f4(0x20d)][_0x2625f4(0x14c)]()),__publicField(this,_0x2625f4(0x228),this[_0x2625f4(0x190)][_0x2625f4(0x14c)]()),(this[_0x2625f4(0x1db)]=_0x10cf77,this[_0x2625f4(0x143)]=_0xf77a11,this[_0x2625f4(0x1a2)](),this[_0x2625f4(0x1a3)](()=>{var _0x462608=_0x2625f4;this[_0x462608(0x190)][_0x462608(0x217)](),this[_0x462608(0x20d)][_0x462608(0x217)]();}));}[_0x4f2b8a(0x1a2)](){var _0x1a2691=_0x4f2b8a;this[_0x1a2691(0x1a3)](this[_0x1a2691(0x1db)][_0x1a2691(0x243)][_0x1a2691(0x1bd)](_0x28a687=>{_0x28a687['visible']||this['setPanelVisible'](!0x1);})),this['disposeWithMe'](this[_0x1a2691(0x143)]['getCurrentTypeOfUnit$'](UniverInstanceType[_0x1a2691(0x159)])['pipe'](filter(_0x22e852=>!_0x22e852))[_0x1a2691(0x1bd)](()=>{var _0x355b00=_0x1a2691;this[_0x355b00(0x1db)][_0x355b00(0x1c6)]();}));}get[_0x4f2b8a(0x179)](){return this['_panelVisible'];}get['activeCommentId'](){var _0x3cd37a=_0x4f2b8a;return this[_0x3cd37a(0x136)];}[_0x4f2b8a(0x1c9)](_0x5e7891){var _0x490ffb=_0x4f2b8a;this[_0x490ffb(0x17f)]=_0x5e7891,this[_0x490ffb(0x20d)][_0x490ffb(0x140)](_0x5e7891);}['setActiveComment'](_0x4571ac){var _0x3f38f7=_0x4f2b8a;this['_activeCommentId']=_0x4571ac,this[_0x3f38f7(0x190)]['next'](_0x4571ac);}},__name(_a,'ThreadCommentPanelService'),_a);ThreadCommentPanelService=__decorateClass$1([__decorateParam$1(0x0,Inject(ISidebarService)),__decorateParam$1(0x1,IUniverInstanceService)],ThreadCommentPanelService);const ToggleSheetCommentPanelOperation={'id':'thread-comment-ui.operation.toggle-panel','type':CommandType[_0x4f2b8a(0x226)],'handler'(_0x467353){var _0x2ea3d5=_0x4f2b8a;const _0x3701e6=_0x467353[_0x2ea3d5(0x20e)](ISidebarService),_0xefaa41=_0x467353['get'](ThreadCommentPanelService);return _0xefaa41[_0x2ea3d5(0x179)]?(_0x3701e6[_0x2ea3d5(0x1c6)](),_0xefaa41[_0x2ea3d5(0x1c9)](!0x1)):(_0x3701e6[_0x2ea3d5(0x201)]({'header':{'title':'threadCommentUI.panel.title'},'children':{'label':THREAD_COMMENT_PANEL},'width':0x14a}),_0xefaa41[_0x2ea3d5(0x1c9)](!0x0)),!0x0;}},SetActiveCommentOperation={'id':_0x4f2b8a(0x215),'type':CommandType['OPERATION'],'handler'(_0x4ec6c2,_0x1ccc00){var _0x5e8143=_0x4f2b8a;return _0x4ec6c2['get'](ThreadCommentPanelService)[_0x5e8143(0x20c)](_0x1ccc00),!0x0;}},_ThreadCommentMentionDataService=class _ThreadCommentMentionDataService{constructor(){var _0x3b8a57=_0x4f2b8a;__publicField(this,'dataSource'),__publicField(this,_0x3b8a57(0x147)),__publicField(this,_0x3b8a57(0x172),'@');}async[_0x4f2b8a(0x1dc)](_0x284a47,_0x576b45,_0x3f81e4){var _0x39a24f=_0x4f2b8a;return this[_0x39a24f(0x1fc)]?this[_0x39a24f(0x1fc)][_0x39a24f(0x1dc)](_0x284a47,_0x576b45,_0x3f81e4):[];}};__name(_ThreadCommentMentionDataService,_0x4f2b8a(0x15f));let ThreadCommentMentionDataService=_ThreadCommentMentionDataService;const IThreadCommentMentionDataService=createIdentifier(_0x4f2b8a(0x16f)),PLUGIN_CONFIG_KEY=_0x4f2b8a(0x1fe),defaultPluginConfig={};var __defProp2=Object[_0x4f2b8a(0x206)],__getOwnPropDesc=Object[_0x4f2b8a(0x13a)],__defNormalProp2=__name((_0x1c6ac2,_0x5e8746,_0x26fd2d)=>_0x5e8746 in _0x1c6ac2?__defProp2(_0x1c6ac2,_0x5e8746,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0x26fd2d}):_0x1c6ac2[_0x5e8746]=_0x26fd2d,'__defNormalProp'),__decorateClass=__name((_0x7abc9f,_0x13b8a1,_0x2e5f27,_0x52b54f)=>{var _0x1283f6=_0x4f2b8a;for(var _0x6fbbf2=_0x52b54f>0x1?void 0x0:_0x52b54f?__getOwnPropDesc(_0x13b8a1,_0x2e5f27):_0x13b8a1,_0x26d1fe=_0x7abc9f[_0x1283f6(0x151)]-0x1,_0x424fc4;_0x26d1fe>=0x0;_0x26d1fe--)(_0x424fc4=_0x7abc9f[_0x26d1fe])&&(_0x6fbbf2=(_0x52b54f?_0x424fc4(_0x13b8a1,_0x2e5f27,_0x6fbbf2):_0x424fc4(_0x6fbbf2))||_0x6fbbf2);return _0x52b54f&&_0x6fbbf2&&__defProp2(_0x13b8a1,_0x2e5f27,_0x6fbbf2),_0x6fbbf2;},_0x4f2b8a(0x220)),__decorateParam=__name((_0x40f2ff,_0x1ce697)=>(_0x449540,_0x1e8989)=>_0x1ce697(_0x449540,_0x1e8989,_0x40f2ff),_0x4f2b8a(0x20b)),__publicField2=__name((_0xdad92a,_0x3696bb,_0x248c9b)=>__defNormalProp2(_0xdad92a,typeof _0x3696bb!='symbol'?_0x3696bb+'':_0x3696bb,_0x248c9b),'__publicField'),_a2;let UniverThreadCommentUIPlugin=(_a2=class extends Plugin{constructor(_0x5d7b35=defaultPluginConfig,_0x2856e5,_0x15bd27,_0x2b7eb7){var _0xd63704=_0x4f2b8a;super(),this[_0xd63704(0x153)]=_0x5d7b35,this[_0xd63704(0x174)]=_0x2856e5,this[_0xd63704(0x173)]=_0x15bd27,this[_0xd63704(0x163)]=_0x2b7eb7;const {menu:_0x473948,..._0x2b762b}=this[_0xd63704(0x153)];_0x473948&&this['_configService']['setConfig']('menu',_0x473948,{'merge':!0x0}),this[_0xd63704(0x163)]['setConfig'](PLUGIN_CONFIG_KEY,_0x2b762b);}[_0x4f2b8a(0x239)](){var _0xbd3083=_0x4f2b8a,_0x36861a;mergeOverrideWithDependencies([[ThreadCommentPanelService],[IThreadCommentMentionDataService,{'useClass':ThreadCommentMentionDataService}]],(_0x36861a=this[_0xbd3083(0x153)])==null?void 0x0:_0x36861a[_0xbd3083(0x181)])[_0xbd3083(0x16c)](_0x11ff61=>{var _0x2610bf=_0xbd3083;this['_injector'][_0x2610bf(0x1eb)](_0x11ff61);}),[ToggleSheetCommentPanelOperation,SetActiveCommentOperation][_0xbd3083(0x16c)](_0x200b76=>{var _0x1cb02e=_0xbd3083;this[_0x1cb02e(0x173)]['registerCommand'](_0x200b76);});}},__name(_a2,_0x4f2b8a(0x233)),_a2);__publicField2(UniverThreadCommentUIPlugin,_0x4f2b8a(0x17d),PLUGIN_NAME),__publicField2(UniverThreadCommentUIPlugin,_0x4f2b8a(0x1bf),UniverInstanceType[_0x4f2b8a(0x19d)]),UniverThreadCommentUIPlugin=__decorateClass([DependentOn(UniverThreadCommentPlugin),__decorateParam(0x1,Inject(Injector)),__decorateParam(0x2,ICommandService),__decorateParam(0x3,IConfigService)],UniverThreadCommentUIPlugin);var __assign=function(){var _0x37ff28=_0x4f2b8a;return __assign=Object[_0x37ff28(0x17e)]||function(_0x211b13){var _0x135192=_0x37ff28;for(var _0x23fa33,_0x3dec98=0x1,_0x3b09c2=arguments[_0x135192(0x151)];_0x3dec98<_0x3b09c2;_0x3dec98++){_0x23fa33=arguments[_0x3dec98];for(var _0x4471e5 in _0x23fa33)Object[_0x135192(0x1d1)]['hasOwnProperty'][_0x135192(0x15e)](_0x23fa33,_0x4471e5)&&(_0x211b13[_0x4471e5]=_0x23fa33[_0x4471e5]);}return _0x211b13;},__assign[_0x37ff28(0x245)](this,arguments);},__rest=function(_0x5bc90c,_0x4eb9ee){var _0x3f107d=_0x4f2b8a,_0x54dfe4={};for(var _0x1c779f in _0x5bc90c)Object[_0x3f107d(0x1d1)][_0x3f107d(0x1c4)]['call'](_0x5bc90c,_0x1c779f)&&_0x4eb9ee[_0x3f107d(0x1d0)](_0x1c779f)<0x0&&(_0x54dfe4[_0x1c779f]=_0x5bc90c[_0x1c779f]);if(_0x5bc90c!=null&&typeof Object[_0x3f107d(0x1e6)]==_0x3f107d(0x149)){for(var _0x5ddf8f=0x0,_0x1c779f=Object['getOwnPropertySymbols'](_0x5bc90c);_0x5ddf8f<_0x1c779f[_0x3f107d(0x151)];_0x5ddf8f++)_0x4eb9ee['indexOf'](_0x1c779f[_0x5ddf8f])<0x0&&Object[_0x3f107d(0x1d1)][_0x3f107d(0x156)][_0x3f107d(0x15e)](_0x5bc90c,_0x1c779f[_0x5ddf8f])&&(_0x54dfe4[_0x1c779f[_0x5ddf8f]]=_0x5bc90c[_0x1c779f[_0x5ddf8f]]);}return _0x54dfe4;},IconBase=forwardRef(function(_0x311ce6,_0x3a4cec){var _0x589e7f=_0x4f2b8a,_0x4ec39a=_0x311ce6[_0x589e7f(0x188)],_0x1e368e=_0x311ce6['id'],_0x395f8d=_0x311ce6[_0x589e7f(0x15d)],_0x3dbbc5=_0x311ce6[_0x589e7f(0x211)],_0x511442=__rest(_0x311ce6,[_0x589e7f(0x188),'id','className','extend']),_0x486e6a=_0x589e7f(0x18f)[_0x589e7f(0x23e)](_0x1e368e,'\x20')['concat'](_0x395f8d||'')[_0x589e7f(0x203)](),_0x2781e3=useRef('_'[_0x589e7f(0x23e)](generateShortUuid()));return render(_0x4ec39a,''[_0x589e7f(0x23e)](_0x1e368e),{'defIds':_0x4ec39a[_0x589e7f(0x21e)],'idSuffix':_0x2781e3[_0x589e7f(0x187)]},__assign({'ref':_0x3a4cec,'className':_0x486e6a},_0x511442),_0x3dbbc5);});function render(_0x2a19f5,_0x52c7b,_0x5afa43,_0x2ed2ad,_0x7dc1b){var _0x162cd5=_0x4f2b8a;return createElement(_0x2a19f5['tag'],__assign(__assign({'key':_0x52c7b},replaceRuntimeIdsAndExtInAttrs(_0x2a19f5,_0x5afa43,_0x7dc1b)),_0x2ed2ad),(replaceRuntimeIdsInDefs(_0x2a19f5,_0x5afa43)[_0x162cd5(0x223)]||[])[_0x162cd5(0x1a8)](function(_0x386ad8,_0x4ac4fa){var _0x420c10=_0x162cd5;return render(_0x386ad8,''[_0x420c10(0x23e)](_0x52c7b,'-')['concat'](_0x2a19f5['tag'],'-')[_0x420c10(0x23e)](_0x4ac4fa),_0x5afa43,void 0x0,_0x7dc1b);}));}__name(render,_0x4f2b8a(0x1ba));function replaceRuntimeIdsAndExtInAttrs(_0x50807d,_0x2c0521,_0x572883){var _0x152959=_0x4f2b8a,_0x380b45=__assign({},_0x50807d[_0x152959(0x1b3)]);_0x572883!=null&&_0x572883[_0x152959(0x1c2)]&&_0x380b45[_0x152959(0x1b5)]===_0x152959(0x1c2)&&(_0x380b45[_0x152959(0x1b5)]=_0x572883['colorChannel1']);var _0x392c74=_0x2c0521[_0x152959(0x21e)];return!_0x392c74||_0x392c74['length']===0x0||(_0x50807d[_0x152959(0x19e)]===_0x152959(0x1e7)&&_0x380b45[_0x152959(0x16d)]&&(_0x380b45[_0x152959(0x16d)]=_0x380b45['xlink:href']+_0x2c0521['idSuffix']),Object[_0x152959(0x225)](_0x380b45)[_0x152959(0x16c)](function(_0x1d2b49){var _0x3415d4=_0x152959,_0x49a18b=_0x1d2b49[0x0],_0x3ed299=_0x1d2b49[0x1];typeof _0x3ed299==_0x3415d4(0x1e4)&&(_0x380b45[_0x49a18b]=_0x3ed299[_0x3415d4(0x16a)](/url\(#(.*)\)/,_0x3415d4(0x1e0)[_0x3415d4(0x23e)](_0x2c0521['idSuffix'],')')));})),_0x380b45;}function _0x5a93(){var _0x282963=['SolveSingle','target','getUser','format','M0.840332\x203.73535C0.840332\x202.63078\x201.73576\x201.73535\x202.84033\x201.73535H10.2955C11.4001\x201.73535\x2012.2955\x202.63078\x2012.2955\x203.73535V8.32676C12.2955\x209.43132\x2011.4001\x2010.3268\x2010.2955\x2010.3268H5.6014L4.1695\x2011.7587L3.05978\x2010.3268H2.84033C1.73576\x2010.3268\x200.840332\x209.43133\x200.840332\x208.32676V3.73535Z','commentId','threadCommentItemContent','join','reply','3053853IzgdnX','__mock__','M8.6\x201.99991C8.60001\x201.66854\x208.33138\x201.39991\x208.00001\x201.3999C7.66864\x201.3999\x207.40001\x201.66853\x207.4\x201.9999L7.39996\x207.3999H1.9999C1.66853\x207.3999\x201.3999\x207.66853\x201.3999\x207.9999C1.3999\x208.33127\x201.66853\x208.5999\x201.9999\x208.5999H7.39995L7.3999\x2013.9999C7.3999\x2014.3313\x207.66853\x2014.5999\x207.9999\x2014.5999C8.33127\x2014.5999\x208.5999\x2014.3313\x208.5999\x2013.9999L8.59995\x208.5999H13.9999C14.3313\x208.5999\x2014.5999\x208.33127\x2014.5999\x207.9999C14.5999\x207.66853\x2014.3313\x207.3999\x2013.9999\x207.3999H8.59996L8.6\x201.99991Z','IncreaseSingle','univer-thread-comment-editor-suggestionActive','dataSource','980086JtVymB','thread-comment-ui.config','onFocus','currentUser$','open','threadCommentUI.panel.filterEmpty','trim','univer-thread-comment-item-content','evenodd','defineProperty','resolved-single','threadCommentUI.panel.reset','img','thread-comment-add','__decorateParam','setActiveComment','_panelVisible$','get','threadCommentTitlePosition','transformDocument2TextNodes','extend','userID','unsolved','univer-thread-comment-icon-container','thread-comment-ui.operation.set-active-comment','已解决','complete','transformTextNode2Text','M6.41016\x206.1311H6.76813M8.91626\x206.1311H9.27424M3.90454\x206.1311H4.26252','with','center','circle','threadCommentTitle','defIds','univer-thread-comment-title-highlight','__decorateClass','univer-thread-comment-editor-suggestion-icon','getCurrentTypeOfRenderer','children','threadCommentUsername','entries','OPERATION','getDT','activeCommentId$','threadCommentIconContainer','threadCommentUI.editor.cancel','threadCommentUI.editor.reply','0\x200\x2016\x2016','74416gmRDlR','content','44581530DYcnfy','univer-thread-comment-editor-suggestion','M4.75332\x205.22217C3.86966\x205.22217\x203.15332\x205.93851\x203.15332\x206.82217V12.5331C3.15332\x2013.9691\x204.31738\x2015.1332\x205.75332\x2015.1332H10.2465C11.6825\x2015.1332\x2012.8465\x2013.9691\x2012.8465\x2012.5331V6.82217C12.8465\x205.93851\x2012.1302\x205.22217\x2011.2465\x205.22217H4.75332ZM4.35332\x206.82217C4.35332\x206.60125\x204.53241\x206.42217\x204.75332\x206.42217H11.2465C11.4674\x206.42217\x2011.6465\x206.60125\x2011.6465\x206.82217V12.5331C11.6465\x2013.3063\x2011.0197\x2013.9332\x2010.2465\x2013.9332H5.75332C4.98012\x2013.9332\x204.35332\x2013.3063\x204.35332\x2012.5331V6.82217Z','univer-thread-comment-content','UniverThreadCommentUIPlugin','root','threadCommentPanelSolved','threadCommentUI.panel.addComment','univer-thread-comment-panel-forms','univer-thread-comment-panel-empty','onStarting','panel','primary','univer-thread-comment-title-position-text','0\x200\x2017\x2017','concat','onMouseEnter','scrollTop','threadCommentUI.filter.status.unsolved','univer-thread-comment-item-title-highlight','sidebarOptions$','univer-thread-comment-item-head','apply','threadCommentUI.filter.sheet.current','exec','univer-thread-comment-editor-buttons','data','M3\x209C3.55228\x209\x204\x208.55228\x204\x208\x204\x207.44772\x203.55228\x207\x203\x207\x202.44772\x207\x202\x207.44772\x202\x208\x202\x208.55228\x202.44772\x209\x203\x209zM8\x209C8.55228\x209\x209\x208.55228\x209\x208\x209\x207.44772\x208.55228\x207\x208\x207\x207.44772\x207\x207\x207.44772\x207\x208\x207\x208.55228\x207.44772\x209\x208\x209zM13\x209C13.5523\x209\x2014\x208.55228\x2014\x208\x2014\x207.44772\x2013.5523\x207\x2013\x207\x2012.4477\x207\x2012\x207.44772\x2012\x208\x2012\x208.55228\x2012.4477\x209\x2013\x209z','_activeCommentId','threadCommentUI.editor.placeholder','threadCommentTitlePositionText','createElement','getOwnPropertyDescriptor','1em','avatar','4710808yWBssC','MENTION','raw','next','concern_me','removeAllRanges','_univerInstanceService','UNIVER_DOC','set','threadCommentEditorSuggestion','renderSuggestion','M5.3313\x201.4667C5.3313\x201.13533\x205.59993.866699\x205.9313.866699H10.069C10.4004.866699\x2010.669\x201.13533\x2010.669\x201.4667\x2010.669\x201.79807\x2010.4004\x202.0667\x2010.069\x202.0667H5.9313C5.59993\x202.0667\x205.3313\x201.79807\x205.3313\x201.4667zM1.09985\x203.64443C1.09985\x203.31306\x201.36848\x203.04443\x201.69985\x203.04443H14.2999C14.6312\x203.04443\x2014.8999\x203.31306\x2014.8999\x203.64443\x2014.8999\x203.9758\x2014.6312\x204.24443\x2014.2999\x204.24443H1.69985C1.36848\x204.24443\x201.09985\x203.9758\x201.09985\x203.64443zM6.12398\x208.30171C6.35829\x208.0674\x206.73819\x208.0674\x206.97251\x208.30171L8.00007\x209.32928\x209.02764\x208.30171C9.26195\x208.0674\x209.64185\x208.0674\x209.87617\x208.30171\x2010.1105\x208.53603\x2010.1105\x208.91593\x209.87617\x209.15024L8.8486\x2010.1778\x209.87617\x2011.2054C10.1105\x2011.4397\x2010.1105\x2011.8196\x209.87617\x2012.0539\x209.64185\x2012.2882\x209.26195\x2012.2882\x209.02764\x2012.0539L8.00007\x2011.0263\x206.97251\x2012.0539C6.73819\x2012.2882\x206.35829\x2012.2882\x206.12398\x2012.0539\x205.88966\x2011.8196\x205.88966\x2011.4397\x206.12398\x2011.2054L7.15154\x2010.1778\x206.12398\x209.15024C5.88966\x208.91593\x205.88966\x208.53603\x206.12398\x208.30171z','function','threadCommentEditor','getUnit','asObservable','threadCommentPanelEmpty','onCancel','getElementById','display','length','index','_config','toString','5kDhfbw','propertyIsEnumerable','onChange','unitId','UNIVER_SHEET','transformTextNodes2Document','threadCommentItemTime','threadCommentUI.item.edit','className','call','ThreadCommentMentionDataService','threadCommentActive','commentMap$','handleDeleteItem','_configService','panelVisible$','solve-single','resolved','univer-thread-comment-panel','then','onClick','replace','threadCommentUI.filter.status.resolved','forEach','xlink:href','currentColor','thread-comment.mention-data.service','handleSave','ref','trigger','_commandService','_injector','28zIJUsE','path','rgb(var(--green-500))','replaceRuntimeIdsAndExtInAttrs','panelVisible','round','onMouseLeave','executeCommand','pluginName','assign','_panelVisible','univer-thread-comment-item-title-position','overrides','ThreadCommentPanel','ThreadCommentItem','value','threadCommentContent','label','current','icon','slice','increase-single','push','all','collapsed','none','univerjs-icon\x20univerjs-icon-','_activeCommentId$','svg','displayName','threadCommentPanelAdd','univer-thread-comment-active','univer-select','threadCommentUI.editor.save','threadCommentUI.filter.sheet.all','handleResolve','threadCommentItemAt','univer-thread-comment-title-position','onEditingChange','endIndex','UNIVER_UNKNOWN','tag','transformMention','threadCommentUI.filter.status.concernMe','more-horizontal-single','_init','disposeWithMe','personId','ThreadCommentTree','substring','onReset','map','DeleteSingle','generateShortUuid','parseMentions','renderComment','threadComment','UNIVER_THREAD_COMMENT_UI_PLUGIN','univer-thread-comment-panel-solved','threadCommentUI.panel.empty','MoreHorizontalSingle','div','attrs','threadCommentItemTitle','fill','filter','171NAAbcK','blur','idSuffix','render','defaultRenderSuggestion','8213370zsExuA','subscribe','M6.02637\x208.40356L8.02637\x2010.4036L12.0264\x206.40356','type','threadCommentItem','threadId','colorChannel1','focus','hasOwnProperty','subUnitId','close','ResolvedSingle','inputElement','setPanelVisible','has','handleDeleteRoot','preventDefault','startIndex','symbol','defs','indexOf','prototype','mention','getCommentWithChildren','4790xaRhdD','onResolve','name','univer-thread-comment-item-at','delete','threadCommentHighlight','lastIndex','_sidebarService','getMentions','cell','threadCommentUI.item.delete','text','url(#$1','threadCommentPanel','flat','threadCommentUI.filter.status.all','string','threadCommentIcon','getOwnPropertySymbols','use','getActiveTextRange','__decorateClass$1','univer-thread-comment-title','add','univer-thread-comment','thread-comment-panel'];_0x5a93=function(){return _0x282963;};return _0x5a93();}__name(replaceRuntimeIdsAndExtInAttrs,_0x4f2b8a(0x178));function replaceRuntimeIdsInDefs(_0x30ffb4,_0xa3f34e){var _0x40b6d=_0x4f2b8a,_0xa23e33,_0x4043ec=_0xa3f34e[_0x40b6d(0x21e)];return!_0x4043ec||_0x4043ec[_0x40b6d(0x151)]===0x0?_0x30ffb4:_0x30ffb4['tag']===_0x40b6d(0x1cf)&&(!((_0xa23e33=_0x30ffb4[_0x40b6d(0x223)])===null||_0xa23e33===void 0x0)&&_0xa23e33[_0x40b6d(0x151)])?__assign(__assign({},_0x30ffb4),{'children':_0x30ffb4[_0x40b6d(0x223)][_0x40b6d(0x1a8)](function(_0x3282e1){var _0x1be0c2=_0x40b6d;return typeof _0x3282e1[_0x1be0c2(0x1b3)]['id']==_0x1be0c2(0x1e4)&&_0x4043ec&&_0x4043ec['indexOf'](_0x3282e1[_0x1be0c2(0x1b3)]['id'])>-0x1?__assign(__assign({},_0x3282e1),{'attrs':__assign(__assign({},_0x3282e1[_0x1be0c2(0x1b3)]),{'id':_0x3282e1[_0x1be0c2(0x1b3)]['id']+_0xa3f34e[_0x1be0c2(0x1b9)]})}):_0x3282e1;})}):_0x30ffb4;}__name(replaceRuntimeIdsInDefs,'replaceRuntimeIdsInDefs');function generateShortUuid(){var _0x1fcd2c=_0x4f2b8a;return Math['random']()[_0x1fcd2c(0x154)](0x24)[_0x1fcd2c(0x1a6)](0x2,0x8);}__name(generateShortUuid,_0x4f2b8a(0x1aa)),IconBase[_0x4f2b8a(0x192)]='UniverIcon';var element$5={'tag':_0x4f2b8a(0x191),'attrs':{'fill':_0x4f2b8a(0x18e),'viewBox':'0\x200\x2016\x2016','width':_0x4f2b8a(0x13b),'height':_0x4f2b8a(0x13b)},'children':[{'tag':_0x4f2b8a(0x176),'attrs':{'fill':'currentColor','d':_0x4f2b8a(0x148)}},{'tag':'path','attrs':{'fill':_0x4f2b8a(0x16e),'d':_0x4f2b8a(0x231),'fillRule':_0x4f2b8a(0x205),'clipRule':_0x4f2b8a(0x205)}}]},DeleteSingle=forwardRef(function(_0x1084b1,_0x4e4536){return createElement(IconBase,Object['assign']({},_0x1084b1,{'id':'delete-single','ref':_0x4e4536,'icon':element$5}));});DeleteSingle[_0x4f2b8a(0x192)]=_0x4f2b8a(0x1a9);var element$4={'tag':_0x4f2b8a(0x191),'attrs':{'fill':_0x4f2b8a(0x18e),'viewBox':'0\x200\x2016\x2016','width':_0x4f2b8a(0x13b),'height':_0x4f2b8a(0x13b)},'children':[{'tag':_0x4f2b8a(0x176),'attrs':{'fill':_0x4f2b8a(0x16e),'d':_0x4f2b8a(0x1f9)}}]},IncreaseSingle=forwardRef(function(_0x1026d1,_0x38ac13){var _0xb77a4f=_0x4f2b8a;return createElement(IconBase,Object[_0xb77a4f(0x17e)]({},_0x1026d1,{'id':_0xb77a4f(0x18a),'ref':_0x38ac13,'icon':element$4}));});IncreaseSingle[_0x4f2b8a(0x192)]=_0x4f2b8a(0x1fa);var element$3={'tag':_0x4f2b8a(0x191),'attrs':{'fill':_0x4f2b8a(0x18e),'viewBox':_0x4f2b8a(0x22c),'width':_0x4f2b8a(0x13b),'height':_0x4f2b8a(0x13b)},'children':[{'tag':_0x4f2b8a(0x176),'attrs':{'fill':_0x4f2b8a(0x16e),'d':_0x4f2b8a(0x135)}}]},MoreHorizontalSingle=forwardRef(function(_0x3948c4,_0x304f59){var _0x1904e7=_0x4f2b8a;return createElement(IconBase,Object[_0x1904e7(0x17e)]({},_0x3948c4,{'id':_0x1904e7(0x1a1),'ref':_0x304f59,'icon':element$3}));});MoreHorizontalSingle[_0x4f2b8a(0x192)]=_0x4f2b8a(0x1b1);var element$2={'tag':'svg','attrs':{'fill':_0x4f2b8a(0x18e),'viewBox':_0x4f2b8a(0x22c),'width':_0x4f2b8a(0x13b),'height':'1em'},'children':[{'tag':_0x4f2b8a(0x176),'attrs':{'stroke':_0x4f2b8a(0x16e),'d':'M7.48389\x2010.3267V12.1905C7.48389\x2012.7428\x207.9316\x2013.1905\x208.48389\x2013.1905H11.2216L12.2955\x2014.2644L13.3695\x2013.1905H14.1593C14.7116\x2013.1905\x2015.1593\x2012.7428\x2015.1593\x2012.1905V8.46289C15.1593\x207.91061\x2014.7116\x207.46289\x2014.1593\x207.46289H12.2955','strokeLinecap':'round','strokeLinejoin':_0x4f2b8a(0x17a),'strokeWidth':1.2}},{'tag':'path','attrs':{'stroke':_0x4f2b8a(0x16e),'d':_0x4f2b8a(0x1f2),'strokeLinecap':_0x4f2b8a(0x17a),'strokeLinejoin':_0x4f2b8a(0x17a),'strokeWidth':1.2}},{'tag':_0x4f2b8a(0x176),'attrs':{'stroke':'currentColor','d':_0x4f2b8a(0x219),'strokeLinecap':'round','strokeWidth':1.2}}]},ReplyToCommentSingle=forwardRef(function(_0xf4ba0f,_0x42cc8b){var _0x3c4be7=_0x4f2b8a;return createElement(IconBase,Object[_0x3c4be7(0x17e)]({},_0xf4ba0f,{'id':'reply-to-comment-single','ref':_0x42cc8b,'icon':element$2}));});ReplyToCommentSingle[_0x4f2b8a(0x192)]='ReplyToCommentSingle';var element$1={'tag':_0x4f2b8a(0x191),'attrs':{'fill':_0x4f2b8a(0x18e),'viewBox':_0x4f2b8a(0x23d),'width':'1em','height':_0x4f2b8a(0x13b)},'children':[{'tag':_0x4f2b8a(0x176),'attrs':{'fill':_0x4f2b8a(0x16e),'d':'M8.6106\x2015.4036C12.4766\x2015.4036\x2015.6106\x2012.2696\x2015.6106\x208.40356C15.6106\x204.53757\x2012.4766\x201.40356\x208.6106\x201.40356C4.7446\x201.40356\x201.6106\x204.53757\x201.6106\x208.40356C1.6106\x2012.2696\x204.7446\x2015.4036\x208.6106\x2015.4036ZM12.3351\x206.82773C12.5694\x206.59342\x2012.5694\x206.21352\x2012.3351\x205.9792C12.1007\x205.74489\x2011.7208\x205.74489\x2011.4865\x205.9792L7.91079\x209.55494L6.33506\x207.9792C6.10074\x207.74489\x205.72084\x207.74489\x205.48653\x207.9792C5.25221\x208.21352\x205.25221\x208.59342\x205.48653\x208.82773L7.48653\x2010.8277C7.72084\x2011.062\x208.10074\x2011.062\x208.33506\x2010.8277L12.3351\x206.82773Z','fillRule':_0x4f2b8a(0x205),'clipRule':_0x4f2b8a(0x205)}}]},ResolvedSingle=forwardRef(function(_0x481c41,_0x2af1de){var _0x3097ea=_0x4f2b8a;return createElement(IconBase,Object[_0x3097ea(0x17e)]({},_0x481c41,{'id':_0x3097ea(0x207),'ref':_0x2af1de,'icon':element$1}));});ResolvedSingle[_0x4f2b8a(0x192)]=_0x4f2b8a(0x1c7);var element={'tag':_0x4f2b8a(0x191),'attrs':{'fill':'none','viewBox':_0x4f2b8a(0x23d),'width':'1em','height':'1em'},'children':[{'tag':_0x4f2b8a(0x21c),'attrs':{'cx':8.73,'cy':8.4,'r':6.4,'stroke':_0x4f2b8a(0x16e),'strokeWidth':1.2}},{'tag':_0x4f2b8a(0x176),'attrs':{'stroke':_0x4f2b8a(0x16e),'d':_0x4f2b8a(0x1be),'strokeLinecap':_0x4f2b8a(0x17a),'strokeLinejoin':_0x4f2b8a(0x17a),'strokeWidth':1.2}}]},SolveSingle=forwardRef(function(_0x2651fc,_0x511553){var _0x55b701=_0x4f2b8a;return createElement(IconBase,Object[_0x55b701(0x17e)]({},_0x2651fc,{'id':_0x55b701(0x165),'ref':_0x511553,'icon':element}));});SolveSingle['displayName']=_0x4f2b8a(0x1ee);const threadCommentEditorButtons=_0x4f2b8a(0x133),threadCommentEditorSuggestion=_0x4f2b8a(0x230),threadCommentEditorSuggestionActive=_0x4f2b8a(0x1fb),threadCommentEditorSuggestionIcon=_0x4f2b8a(0x221),styles$2={'threadCommentEditorButtons':threadCommentEditorButtons,'threadCommentEditorSuggestion':threadCommentEditorSuggestion,'threadCommentEditorSuggestionActive':threadCommentEditorSuggestionActive,'threadCommentEditorSuggestionIcon':threadCommentEditorSuggestionIcon},parseMentions=__name(_0x3ceb6f=>{var _0x478a51=_0x4f2b8a;const _0x9ef54f=/@\[(.*?)\]\((.*?)\)|(\w+)/g;let _0xa642ff,_0x18c6fa=0x0;const _0x53d91d=[];for(;(_0xa642ff=_0x9ef54f[_0x478a51(0x132)](_0x3ceb6f))!==null;)_0xa642ff[_0x478a51(0x152)]>_0x18c6fa&&_0x53d91d[_0x478a51(0x18b)]({'type':_0x478a51(0x1df),'content':_0x3ceb6f['substring'](_0x18c6fa,_0xa642ff[_0x478a51(0x152)])}),_0xa642ff[0x1]&&_0xa642ff[0x2]?_0x53d91d[_0x478a51(0x18b)]({'type':_0x478a51(0x1d2),'content':{'label':_0xa642ff[0x1],'id':_0xa642ff[0x2]}}):_0xa642ff[0x3]&&_0x53d91d[_0x478a51(0x18b)]({'type':_0x478a51(0x1df),'content':_0xa642ff[0x3]}),_0x18c6fa=_0x9ef54f[_0x478a51(0x1da)];return _0x18c6fa<_0x3ceb6f[_0x478a51(0x151)]&&_0x53d91d[_0x478a51(0x18b)]({'type':'text','content':_0x3ceb6f[_0x478a51(0x1a6)](_0x18c6fa)}),_0x53d91d;},_0x4f2b8a(0x1ab)),transformTextNode2Text=__name(_0x24c601=>_0x24c601[_0x4f2b8a(0x1a8)](_0x58a87b=>{var _0x3bdf45=_0x4f2b8a;switch(_0x58a87b[_0x3bdf45(0x1bf)]){case _0x3bdf45(0x1d2):return'@['+_0x58a87b['content'][_0x3bdf45(0x186)]+']('+_0x58a87b[_0x3bdf45(0x22e)]['id']+')';default:return _0x58a87b[_0x3bdf45(0x22e)];}})[_0x4f2b8a(0x1f5)](''),_0x4f2b8a(0x218)),transformDocument2TextNodes=__name(_0x36dd9d=>{var _0x2600f8=_0x4f2b8a;const {dataStream:_0x1f1e96,customRanges:_0x854968}=_0x36dd9d,_0x22c65b=_0x1f1e96[_0x2600f8(0x151)]-0x2,_0x452865=[];let _0x1f6a64=0x0;return _0x854968==null||_0x854968[_0x2600f8(0x16c)](_0x42d9da=>{var _0x4d3ace=_0x2600f8;_0x1f6a64<_0x42d9da[_0x4d3ace(0x1cd)]&&_0x452865[_0x4d3ace(0x18b)]({'type':_0x4d3ace(0x1df),'content':_0x1f1e96[_0x4d3ace(0x189)](_0x1f6a64,_0x42d9da[_0x4d3ace(0x1cd)])}),_0x452865[_0x4d3ace(0x18b)]({'type':'mention','content':{'label':_0x1f1e96[_0x4d3ace(0x189)](_0x42d9da[_0x4d3ace(0x1cd)],_0x42d9da[_0x4d3ace(0x19c)])['slice'](0x1,-0x1),'id':_0x42d9da['rangeId']}}),_0x1f6a64=_0x42d9da['endIndex'];}),_0x452865['push']({'type':_0x2600f8(0x1df),'content':_0x1f1e96['slice'](_0x1f6a64,_0x22c65b)}),_0x452865;},_0x4f2b8a(0x210)),transformTextNodes2Document=__name(_0x511aca=>{var _0x1b1440=_0x4f2b8a;let _0x2d6a11='';const _0x445aa9=[];return _0x511aca[_0x1b1440(0x16c)](_0x37f74d=>{var _0x15eff3=_0x1b1440;switch(_0x37f74d['type']){case _0x15eff3(0x1df):_0x2d6a11+=_0x37f74d['content'];break;case _0x15eff3(0x1d2):{const _0x2be622=_0x2d6a11['length'];_0x2d6a11+='\x1f'+_0x37f74d['content']['label']+'\x1e';const _0x216cb0=_0x2d6a11[_0x15eff3(0x151)];_0x445aa9[_0x15eff3(0x18b)]({'rangeId':_0x37f74d[_0x15eff3(0x22e)]['id'],'rangeType':CustomRangeType[_0x15eff3(0x13e)],'startIndex':_0x2be622,'endIndex':_0x216cb0});break;}}}),_0x2d6a11+='\x0a\x0d',{'textRuns':[],'paragraphs':[{'startIndex':_0x2d6a11[_0x1b1440(0x151)]-0x2,'paragraphStyle':{}}],'sectionBreaks':[{'startIndex':_0x2d6a11[_0x1b1440(0x151)]-0x1}],'dataStream':_0x2d6a11,'customRanges':_0x445aa9};},_0x4f2b8a(0x15a)),transformMention=__name(_0x23edb3=>({'display':_0x23edb3[_0x4f2b8a(0x186)],'id':''+_0x23edb3['id'],'raw':_0x23edb3}),_0x4f2b8a(0x19f)),defaultRenderSuggestion=__name((_0x3948e9,_0x31a7cf,_0x447ece,_0x165188,_0x554589)=>{var _0x373f10=_0x4f2b8a,_0x40697d,_0xe5b1a1;const _0x3df767=(_0x40697d=_0x3948e9[_0x373f10(0x13f)])==null?void 0x0:_0x40697d[_0x373f10(0x188)];return _0x37a111[_0x373f10(0x139)](_0x373f10(0x1b2),{'className':styles$2[_0x373f10(0x146)]},_0x3df767?_0x37a111[_0x373f10(0x139)](_0x373f10(0x209),{'className':styles$2['threadCommentEditorSuggestionIcon'],'src':_0x3df767}):null,_0x37a111[_0x373f10(0x139)](_0x373f10(0x1b2),null,(_0xe5b1a1=_0x3948e9[_0x373f10(0x150)])!=null?_0xe5b1a1:_0x3948e9['id']));},_0x4f2b8a(0x1bb)),ThreadCommentEditor=forwardRef((_0x44deed,_0x447e04)=>{var _0x5806a8=_0x4f2b8a,_0x342d06,_0x28df8c;const {comment:_0x5db6a7,onSave:_0x430bc2,id:_0x5d82b6,onCancel:_0x406156,autoFocus:_0x310881,unitId:_0x5d0c1d,subUnitId:_0x5b52be}=_0x44deed,_0x359246=useDependency(IThreadCommentMentionDataService),_0x5ca59d=useDependency(ICommandService),_0xa80d05=useDependency(LocaleService),[_0x25c97e,_0x1d7396]=useState({..._0x5db6a7}),[_0x4c845f,_0x45c8a9]=useState(!0x1),_0x1f7aba=useRef(null),_0x1a1d2b=useDependency(DocSelectionManagerService),_0x307bda=(_0x342d06=useDependency(IRenderManagerService)[_0x5806a8(0x222)](UniverInstanceType[_0x5806a8(0x144)]))==null?void 0x0:_0x342d06[_0x5806a8(0x21a)](DocSelectionRenderService);useImperativeHandle(_0x447e04,()=>({'reply'(_0xd68420){var _0x358bff=_0x5806a8,_0x47b38f;_0x1d7396({..._0x5db6a7,'text':_0xd68420,'attachments':[]}),(_0x47b38f=_0x1f7aba['current'])==null||_0x47b38f[_0x358bff(0x1c8)][_0x358bff(0x1c3)]();}}));const _0x2ae35d=__name(()=>{var _0x539504=_0x5806a8,_0x431c63;_0x25c97e[_0x539504(0x1df)]&&(_0x430bc2==null||_0x430bc2({..._0x25c97e,'text':_0x25c97e[_0x539504(0x1df)]}),_0x45c8a9(!0x1),_0x1d7396({'text':void 0x0}),(_0x431c63=_0x1f7aba[_0x539504(0x187)])==null||_0x431c63[_0x539504(0x1c8)][_0x539504(0x1b8)]());},_0x5806a8(0x170));return _0x37a111['createElement'](_0x5806a8(0x1b2),{'className':styles$2[_0x5806a8(0x14a)],'onClick':__name(_0x3403dd=>_0x3403dd[_0x5806a8(0x1cc)](),_0x5806a8(0x169))},_0x37a111['createElement'](Mentions,{'ref':_0x1f7aba,'autoFocus':_0x310881,'style':{'width':'100%'},'placeholder':_0xa80d05['t'](_0x5806a8(0x137)),'value':_0x25c97e!=null&&_0x25c97e[_0x5806a8(0x1df)]?transformTextNode2Text(transformDocument2TextNodes(_0x25c97e[_0x5806a8(0x1df)])):'','onChange':__name(_0x48f312=>{var _0x4f7053=_0x5806a8;_0x48f312[_0x4f7053(0x1ef)][_0x4f7053(0x184)]||_0x1d7396({..._0x5db6a7,'text':void 0x0}),_0x1d7396==null||_0x1d7396({..._0x5db6a7,'text':transformTextNodes2Document(parseMentions(_0x48f312['target'][_0x4f7053(0x184)]))});},_0x5806a8(0x157)),'onFocus':__name(()=>{var _0x4ddf1c=_0x5806a8;const _0x41ddd5=_0x1a1d2b[_0x4ddf1c(0x1e8)]();_0x41ddd5&&_0x41ddd5[_0x4ddf1c(0x18d)]&&(_0x307bda==null||_0x307bda[_0x4ddf1c(0x142)]()),_0x307bda==null||_0x307bda['blur'](),_0x45c8a9(!0x0);},_0x5806a8(0x1ff))},_0x37a111[_0x5806a8(0x139)](Mention,{'key':_0x359246['trigger'],'trigger':_0x359246['trigger'],'data':__name((_0x59c709,_0xc96527)=>_0x359246[_0x5806a8(0x1dc)](_0x59c709,_0x5d0c1d,_0x5b52be)[_0x5806a8(0x168)](_0x58b38c=>_0x58b38c[_0x5806a8(0x1a8)](transformMention))[_0x5806a8(0x168)](_0xc96527),_0x5806a8(0x134)),'displayTransform':__name((_0x1fa1fd,_0x52fba6)=>'@'+_0x52fba6+'\x20','displayTransform'),'renderSuggestion':(_0x28df8c=_0x359246[_0x5806a8(0x147)])!=null?_0x28df8c:defaultRenderSuggestion})),_0x4c845f?_0x37a111[_0x5806a8(0x139)]('div',{'className':styles$2['threadCommentEditorButtons']},_0x37a111['createElement'](Button,{'style':{'marginRight':0xc},'onClick':__name(()=>{var _0x3bb97b=_0x5806a8;_0x406156==null||_0x406156(),_0x45c8a9(!0x1),_0x1d7396({'text':void 0x0}),_0x5ca59d[_0x3bb97b(0x17c)](SetActiveCommentOperation['id']);},'onClick')},_0xa80d05['t'](_0x5806a8(0x22a))),_0x37a111[_0x5806a8(0x139)](Button,{'type':_0x5806a8(0x23b),'disabled':!_0x25c97e[_0x5806a8(0x1df)],'onClick':_0x2ae35d},_0xa80d05['t'](_0x5d82b6?_0x5806a8(0x196):_0x5806a8(0x22b)))):null);}),threadComment$1=_0x4f2b8a(0x1ec),threadCommentActive=_0x4f2b8a(0x194),threadCommentContent=_0x4f2b8a(0x232),threadCommentHighlight='univer-thread-comment-highlight',threadCommentIconContainer=_0x4f2b8a(0x214),threadCommentIcon='univer-thread-comment-icon',threadCommentTitle=_0x4f2b8a(0x1ea),threadCommentTitlePosition=_0x4f2b8a(0x19a),threadCommentTitleHighlight=_0x4f2b8a(0x21f),threadCommentTitlePositionText=_0x4f2b8a(0x23c),threadCommentUsername='univer-thread-comment-username',threadCommentItem='univer-thread-comment-item',threadCommentItemHead=_0x4f2b8a(0x244),threadCommentItemTitle='univer-thread-comment-item-title',threadCommentItemTitlePosition=_0x4f2b8a(0x180),threadCommentItemTitleHighlight=_0x4f2b8a(0x242),threadCommentItemTime='univer-thread-comment-item-time',threadCommentItemContent=_0x4f2b8a(0x204),threadCommentItemAt=_0x4f2b8a(0x1d7),styles$1={'threadComment':threadComment$1,'threadCommentActive':threadCommentActive,'threadCommentContent':threadCommentContent,'threadCommentHighlight':threadCommentHighlight,'threadCommentIconContainer':threadCommentIconContainer,'threadCommentIcon':threadCommentIcon,'threadCommentTitle':threadCommentTitle,'threadCommentTitlePosition':threadCommentTitlePosition,'threadCommentTitleHighlight':threadCommentTitleHighlight,'threadCommentTitlePositionText':threadCommentTitlePositionText,'threadCommentUsername':threadCommentUsername,'threadCommentItem':threadCommentItem,'threadCommentItemHead':threadCommentItemHead,'threadCommentItemTitle':threadCommentItemTitle,'threadCommentItemTitlePosition':threadCommentItemTitlePosition,'threadCommentItemTitleHighlight':threadCommentItemTitleHighlight,'threadCommentItemTime':threadCommentItemTime,'threadCommentItemContent':threadCommentItemContent,'threadCommentItemAt':threadCommentItemAt},MOCK_ID=_0x4f2b8a(0x1f8),ThreadCommentItem=__name(_0x56b0f5=>{var _0x5f147f=_0x4f2b8a;const {item:_0x3a4470,unitId:_0xa08781,subUnitId:_0x4aa57e,editing:_0x230167,onEditingChange:_0x4ebb82,onReply:_0x2fcd51,resolved:_0x3fbfe3,isRoot:_0x309abe,onClose:_0x3c5596,onDeleteComment:_0x274c80}=_0x56b0f5,_0xd95989=useDependency(ICommandService),_0x1cadd2=useDependency(LocaleService),_0x5d2dae=useDependency(UserManagerService),_0x4a14e4=_0x5d2dae[_0x5f147f(0x1f0)](_0x3a4470[_0x5f147f(0x1a4)]),_0x52b844=useObservable(_0x5d2dae[_0x5f147f(0x200)]),_0x4063b1=(_0x52b844==null?void 0x0:_0x52b844[_0x5f147f(0x212)])===_0x3a4470[_0x5f147f(0x1a4)],_0xb46d13=_0x3a4470['id']===MOCK_ID,[_0xc3f93d,_0x82ac8e]=useState(!0x1),_0x2eae51=__name(()=>{(_0x274c80==null?void 0x0:_0x274c80(_0x3a4470))!==!0x1&&(_0xd95989['executeCommand'](_0x309abe?DeleteCommentTreeCommand['id']:DeleteCommentCommand['id'],{'unitId':_0xa08781,'subUnitId':_0x4aa57e,'commentId':_0x3a4470['id']}),_0x309abe&&(_0x3c5596==null||_0x3c5596()));},_0x5f147f(0x162));return _0x37a111[_0x5f147f(0x139)]('div',{'className':styles$1[_0x5f147f(0x1c0)],'onMouseLeave':__name(()=>_0x82ac8e(!0x1),_0x5f147f(0x17b)),'onMouseEnter':__name(()=>_0x82ac8e(!0x0),'onMouseEnter')},_0x37a111[_0x5f147f(0x139)](_0x5f147f(0x209),{'className':styles$1['threadCommentItemHead'],'src':_0x4a14e4==null?void 0x0:_0x4a14e4[_0x5f147f(0x13c)]}),_0x37a111[_0x5f147f(0x139)]('div',{'className':styles$1[_0x5f147f(0x1b4)]},_0x37a111[_0x5f147f(0x139)](_0x5f147f(0x1b2),{'className':styles$1[_0x5f147f(0x224)]},(_0x4a14e4==null?void 0x0:_0x4a14e4['name'])||'\x20'),_0x37a111[_0x5f147f(0x139)](_0x5f147f(0x1b2),null,_0xb46d13||_0x3fbfe3?null:_0xc3f93d?_0x37a111['createElement'](_0x5f147f(0x1b2),{'className':styles$1[_0x5f147f(0x1e5)],'onClick':__name(()=>_0x2fcd51(_0x4a14e4),_0x5f147f(0x169))},_0x37a111['createElement'](ReplyToCommentSingle,null)):null,_0x4063b1&&!_0xb46d13&&!_0x3fbfe3?_0x37a111['createElement'](Dropdown,{'overlay':_0x37a111[_0x5f147f(0x139)](Menu,null,_0x37a111[_0x5f147f(0x139)](MenuItem,{'key':'edit','onClick':__name(()=>_0x4ebb82==null?void 0x0:_0x4ebb82(!0x0),_0x5f147f(0x169))},_0x1cadd2['t'](_0x5f147f(0x15c))),_0x37a111[_0x5f147f(0x139)](MenuItem,{'key':_0x5f147f(0x1d8),'onClick':_0x2eae51},_0x1cadd2['t'](_0x5f147f(0x1de))))},_0x37a111[_0x5f147f(0x139)](_0x5f147f(0x1b2),{'className':styles$1[_0x5f147f(0x1e5)]},_0x37a111['createElement'](MoreHorizontalSingle,null))):null)),_0x37a111[_0x5f147f(0x139)](_0x5f147f(0x1b2),{'className':styles$1[_0x5f147f(0x15b)]},_0x3a4470['dT']),_0x230167?_0x37a111[_0x5f147f(0x139)](ThreadCommentEditor,{'id':_0x3a4470['id'],'comment':_0x3a4470,'onCancel':__name(()=>_0x4ebb82==null?void 0x0:_0x4ebb82(!0x1),_0x5f147f(0x14e)),'autoFocus':!0x0,'unitId':_0xa08781,'subUnitId':_0x4aa57e,'onSave':__name(({text:_0x440662,attachments:_0x5536be})=>{var _0x372894=_0x5f147f;_0x4ebb82==null||_0x4ebb82(!0x1),_0xd95989[_0x372894(0x17c)](UpdateCommentCommand['id'],{'unitId':_0xa08781,'subUnitId':_0x4aa57e,'payload':{'commentId':_0x3a4470['id'],'text':_0x440662,'attachments':_0x5536be}});},'onSave')}):_0x37a111[_0x5f147f(0x139)](_0x5f147f(0x1b2),{'className':styles$1[_0x5f147f(0x1f4)]},transformDocument2TextNodes(_0x3a4470[_0x5f147f(0x1df)])['map']((_0x3fe5cd,_0x23e2bc)=>{var _0x49f3cd=_0x5f147f;switch(_0x3fe5cd['type']){case _0x49f3cd(0x1d2):return _0x37a111[_0x49f3cd(0x139)]('a',{'className':styles$1[_0x49f3cd(0x199)],'key':_0x23e2bc},'@',_0x3fe5cd[_0x49f3cd(0x22e)][_0x49f3cd(0x186)],'\x20');default:return _0x3fe5cd[_0x49f3cd(0x22e)];}})));},_0x4f2b8a(0x183)),ThreadCommentTree=__name(_0x2e6214=>{var _0x12e262=_0x4f2b8a,_0x1c7768,_0x3f390b,_0x583038;const {id:_0x316589,unitId:_0x47babc,subUnitId:_0x55b8a8,refStr:_0x4bd987,showEdit:showEdit=!0x0,onClick:_0x2211ff,showHighlight:_0x34af98,onClose:_0x55f927,getSubUnitName:_0x112515,prefix:_0x5350a0,autoFocus:_0x27b4bd,onMouseEnter:_0xf12936,onMouseLeave:_0x11b693,onAddComment:_0x3e8af8,onDeleteComment:_0x4ccdad,onResolve:_0x2fbeb1}=_0x2e6214,_0x144d90=useDependency(ThreadCommentModel),[_0xf714e2,_0x1e45b9]=useState(!0x1),[_0x106aff,_0x3419b9]=useState('');useObservable(_0x144d90[_0x12e262(0x161)]);const _0x379511=_0x316589?_0x144d90[_0x12e262(0x1d3)](_0x47babc,_0x55b8a8,_0x316589):null,_0x2b5ffd=useDependency(ICommandService),_0x70e86=useDependency(UserManagerService),_0x1be5fe=_0x379511==null?void 0x0:_0x379511[_0x12e262(0x234)]['resolved'],_0x3b3658=useObservable(_0x70e86[_0x12e262(0x200)]),_0x230594=useRef(null),_0x5df251=[..._0x379511?[_0x379511['root']]:[{'id':MOCK_ID,'text':{'dataStream':'\x0a\x0d'},'personId':(_0x1c7768=_0x3b3658==null?void 0x0:_0x3b3658[_0x12e262(0x212)])!=null?_0x1c7768:'','ref':_0x4bd987!=null?_0x4bd987:'','dT':'','unitId':_0x47babc,'subUnitId':_0x55b8a8,'threadId':''}],...(_0x3f390b=_0x379511==null?void 0x0:_0x379511[_0x12e262(0x223)])!=null?_0x3f390b:[]],_0x422de3=useRef(null),_0x18f492=__name(_0xddbc0=>{var _0x5dca0b=_0x12e262;_0xddbc0['stopPropagation'](),_0x1be5fe?_0x2b5ffd[_0x5dca0b(0x17c)](SetActiveCommentOperation['id'],{'unitId':_0x47babc,'subUnitId':_0x55b8a8,'commentId':_0x316589}):_0x2b5ffd[_0x5dca0b(0x17c)](SetActiveCommentOperation['id']),_0x2b5ffd['executeCommand'](ResolveCommentCommand['id'],{'unitId':_0x47babc,'subUnitId':_0x55b8a8,'commentId':_0x316589,'resolved':!_0x1be5fe}),_0x2fbeb1==null||_0x2fbeb1(!_0x1be5fe);},_0x12e262(0x198)),_0x3eaf64=__name(_0xf500=>{var _0x38e9ee=_0x12e262;_0xf500['stopPropagation'](),_0x2b5ffd[_0x38e9ee(0x17c)](SetActiveCommentOperation['id']),!(_0x379511!=null&&_0x379511[_0x38e9ee(0x234)]&&(_0x4ccdad==null?void 0x0:_0x4ccdad(_0x379511[_0x38e9ee(0x234)]))===!0x1)&&(_0x2b5ffd[_0x38e9ee(0x17c)](DeleteCommentTreeCommand['id'],{'unitId':_0x47babc,'subUnitId':_0x55b8a8,'commentId':_0x316589}),_0x55f927==null||_0x55f927());},_0x12e262(0x1cb));useEffect(()=>_0x11b693==null?void 0x0:_0x11b693(),[]);const _0x1ab218=_0x112515((_0x583038=_0x379511==null?void 0x0:_0x379511[_0x12e262(0x234)]['subUnitId'])!=null?_0x583038:_0x55b8a8),_0x40b860=showEdit&&!_0x106aff&&!_0x1be5fe,_0x311551=''+(_0x4bd987||(_0x379511==null?void 0x0:_0x379511[_0x12e262(0x234)][_0x12e262(0x171)])||'')+(_0x1ab218?'\x20·\x20':'')+_0x1ab218;return _0x37a111[_0x12e262(0x139)](_0x12e262(0x1b2),{'className':_0x1494ab(styles$1[_0x12e262(0x1ad)],{[styles$1[_0x12e262(0x160)]]:!_0x1be5fe&&(_0x34af98||_0xf714e2||_0x5350a0===_0x12e262(0x1dd))}),'onClick':_0x2211ff,'id':_0x5350a0+'-'+_0x47babc+'-'+_0x55b8a8+'-'+_0x316589,'onMouseEnter':__name(()=>{_0xf12936==null||_0xf12936(),_0x1e45b9(!0x0);},_0x12e262(0x23f)),'onMouseLeave':__name(()=>{_0x11b693==null||_0x11b693(),_0x1e45b9(!0x1);},_0x12e262(0x17b))},!_0x1be5fe&&_0x34af98?_0x37a111[_0x12e262(0x139)](_0x12e262(0x1b2),{'className':styles$1[_0x12e262(0x1d9)]}):null,_0x37a111[_0x12e262(0x139)](_0x12e262(0x1b2),{'className':styles$1[_0x12e262(0x21d)]},_0x37a111[_0x12e262(0x139)](_0x12e262(0x1b2),{'className':styles$1[_0x12e262(0x20f)]},_0x37a111[_0x12e262(0x139)]('div',{'className':styles$1['threadCommentTitleHighlight']}),_0x37a111['createElement'](Tooltip,{'showIfEllipsis':!0x0,'title':_0x311551},_0x37a111[_0x12e262(0x139)](_0x12e262(0x1b2),{'className':styles$1[_0x12e262(0x138)]},_0x311551))),_0x379511?_0x37a111[_0x12e262(0x139)](_0x12e262(0x1b2),{'className':styles$1[_0x12e262(0x229)]},_0x37a111[_0x12e262(0x139)](_0x12e262(0x1b2),{'onClick':_0x18f492,'className':styles$1[_0x12e262(0x1e5)],'style':{'color':_0x1be5fe?_0x12e262(0x177):''}},_0x1be5fe?_0x37a111[_0x12e262(0x139)](ResolvedSingle,null):_0x37a111['createElement'](SolveSingle,null)),(_0x3b3658==null?void 0x0:_0x3b3658[_0x12e262(0x212)])===_0x379511[_0x12e262(0x234)]['personId']?_0x37a111[_0x12e262(0x139)](_0x12e262(0x1b2),{'className':styles$1['threadCommentIcon'],'onClick':_0x3eaf64},_0x37a111['createElement'](DeleteSingle,null)):null):null),_0x37a111[_0x12e262(0x139)](_0x12e262(0x1b2),{'className':styles$1[_0x12e262(0x185)],'ref':_0x422de3},_0x5df251['map'](_0x132912=>_0x37a111['createElement'](ThreadCommentItem,{'onClose':_0x55f927,'unitId':_0x47babc,'subUnitId':_0x55b8a8,'item':_0x132912,'key':_0x132912['id'],'isRoot':_0x132912['id']===(_0x379511==null?void 0x0:_0x379511[_0x12e262(0x234)]['id']),'editing':_0x106aff===_0x132912['id'],'resolved':_0x379511==null?void 0x0:_0x379511[_0x12e262(0x234)][_0x12e262(0x166)],'onEditingChange':__name(_0x4e81c1=>{_0x3419b9(_0x4e81c1?_0x132912['id']:'');},_0x12e262(0x19b)),'onReply':__name(_0x19fe5d=>{_0x19fe5d&&requestAnimationFrame(()=>{var _0x13dd8f=_0x1d3e,_0x29e94d;(_0x29e94d=_0x230594['current'])==null||_0x29e94d[_0x13dd8f(0x1f6)](transformTextNodes2Document([{'type':_0x13dd8f(0x1d2),'content':{'id':_0x19fe5d[_0x13dd8f(0x212)],'label':_0x19fe5d['name']}}]));});},'onReply'),'onAddComment':_0x3e8af8,'onDeleteComment':_0x4ccdad}))),_0x40b860?_0x37a111[_0x12e262(0x139)](_0x12e262(0x1b2),null,_0x37a111[_0x12e262(0x139)](ThreadCommentEditor,{'key':''+_0x27b4bd,'ref':_0x230594,'unitId':_0x47babc,'subUnitId':_0x55b8a8,'onSave':__name(async({text:_0x30dc47,attachments:_0x1831d0})=>{var _0x29ecdb=_0x12e262;const _0x224aa7={'text':_0x30dc47,'attachments':_0x1831d0,'dT':getDT(),'id':generateRandomId(),'ref':_0x4bd987,'personId':_0x3b3658==null?void 0x0:_0x3b3658[_0x29ecdb(0x212)],'parentId':_0x379511==null?void 0x0:_0x379511[_0x29ecdb(0x234)]['id'],'unitId':_0x47babc,'subUnitId':_0x55b8a8,'threadId':_0x379511==null?void 0x0:_0x379511[_0x29ecdb(0x234)][_0x29ecdb(0x1c1)]};(_0x3e8af8==null?void 0x0:_0x3e8af8(_0x224aa7))!==!0x1&&(await _0x2b5ffd['executeCommand'](AddCommentCommand['id'],{'unitId':_0x47babc,'subUnitId':_0x55b8a8,'comment':_0x224aa7}),_0x422de3['current']&&(_0x422de3[_0x29ecdb(0x187)][_0x29ecdb(0x240)]=_0x422de3[_0x29ecdb(0x187)]['scrollHeight']));},'onSave'),'autoFocus':_0x27b4bd||!_0x379511,'onCancel':__name(()=>{_0x379511||_0x55f927==null||_0x55f927();},_0x12e262(0x14e))})):null);},_0x4f2b8a(0x1a5)),threadCommentPanel=_0x4f2b8a(0x167),threadComment='univer-thread-comment',threadCommentPanelForms=_0x4f2b8a(0x237),select=_0x4f2b8a(0x195),threadCommentPanelEmpty=_0x4f2b8a(0x238),threadCommentPanelAdd='univer-thread-comment-panel-add',threadCommentPanelSolved=_0x4f2b8a(0x1af),styles={'threadCommentPanel':threadCommentPanel,'threadComment':threadComment,'threadCommentPanelForms':threadCommentPanelForms,'select':select,'threadCommentPanelEmpty':threadCommentPanelEmpty,'threadCommentPanelAdd':threadCommentPanelAdd,'threadCommentPanelSolved':threadCommentPanelSolved},ThreadCommentPanel=__name(_0x180f17=>{var _0x262c33=_0x4f2b8a;const {unitId:_0x4bb1a2,subUnitId$:_0x306993,type:_0x296d18,onAdd:_0x3cb9e4,getSubUnitName:_0x14f493,onResolve:_0x53e1cb,sortComments:_0x5b71e0,onItemLeave:_0xf6e5eb,onItemEnter:_0x168bc6,disableAdd:_0x4733e3,tempComment:_0x121f8e,onAddComment:_0x1c4506,onDeleteComment:_0x449229,showComments:_0x2aed52}=_0x180f17,[_0x8ce7da,_0x532701]=useState('all'),[_0x57a738,_0x475506]=useState(_0x262c33(0x18c)),_0x118612=useDependency(LocaleService),_0x9ec09d=useDependency(UserManagerService),_0x78162a=useDependency(ThreadCommentModel),[_0xb319ff,_0x5f5291]=useState(()=>_0x78162a[_0x262c33(0x14b)](_0x4bb1a2)),_0x98a44b=useDependency(ThreadCommentPanelService),_0x2a946f=useObservable(_0x98a44b[_0x262c33(0x228)]),_0x396e1b=useObservable(_0x78162a['commentUpdate$']),_0x5a4de8=useDependency(ICommandService),_0x3671ba=useObservable(_0x306993),_0x372f6d=useRef(!0x0),_0x2b743b=_0x262c33(0x23a),_0x1b6842=useObservable(_0x9ec09d['currentUser$']),_0xb864db=useMemo(()=>{var _0x23f370=_0x262c33,_0x457083,_0x279832;const _0x1794d3=(_0x8ce7da===_0x23f370(0x18c)?_0xb319ff['map'](_0x492a61=>_0x492a61[0x1])[_0x23f370(0x1e2)]():(_0x279832=(_0x457083=_0xb319ff['find'](_0x11c18b=>_0x11c18b[0x0]===_0x3671ba))==null?void 0x0:_0x457083[0x1])!=null?_0x279832:[])['filter'](_0x2736a5=>!_0x2736a5['parentId']),_0x2be986=_0x5b71e0!=null?_0x5b71e0:_0x50cd1a=>_0x50cd1a,_0x43a771=_0x1794d3;if(_0x2aed52){const _0x4cbb03=new Map();return _0x43a771[_0x23f370(0x16c)](_0x2fa95b=>{var _0x1d9fd9=_0x23f370;_0x4cbb03[_0x1d9fd9(0x145)](_0x2fa95b['id'],_0x2fa95b);}),[..._0x2aed52,''][_0x23f370(0x1a8)](_0x32a56f=>_0x4cbb03[_0x23f370(0x20e)](_0x32a56f))[_0x23f370(0x1b6)](Boolean);}else return _0x2be986(_0x43a771);},[_0x2aed52,_0x8ce7da,_0xb319ff,_0x5b71e0,_0x3671ba]),_0x344094=useMemo(()=>[..._0xb864db[_0x262c33(0x1b6)](_0x2b2699=>!_0x2b2699['resolved']),..._0xb864db[_0x262c33(0x1b6)](_0x1b15ab=>_0x1b15ab[_0x262c33(0x166)])],[_0xb864db]),_0x3bd3b3=useMemo(()=>_0x57a738==='resolved'?_0x344094[_0x262c33(0x1b6)](_0x192e0e=>_0x192e0e[_0x262c33(0x166)]):_0x57a738===_0x262c33(0x213)?_0x344094[_0x262c33(0x1b6)](_0x44e348=>!_0x44e348[_0x262c33(0x166)]):_0x57a738===_0x262c33(0x141)&&_0x1b6842!=null&&_0x1b6842[_0x262c33(0x212)]?_0x344094[_0x262c33(0x1a8)](_0x25eac2=>_0x78162a[_0x262c33(0x1d3)](_0x25eac2['unitId'],_0x25eac2[_0x262c33(0x1c5)],_0x25eac2['id']))[_0x262c33(0x1a8)](_0x1690ac=>_0x1690ac!=null&&_0x1690ac['relativeUsers'][_0x262c33(0x1ca)](_0x1b6842[_0x262c33(0x212)])?_0x1690ac['root']:null)[_0x262c33(0x1b6)](Boolean):_0x344094,[_0x344094,_0x1b6842==null?void 0x0:_0x1b6842[_0x262c33(0x212)],_0x57a738,_0x78162a]),_0x1dac90=_0x121f8e?[_0x121f8e,..._0x3bd3b3]:_0x3bd3b3,_0x175226=_0x1dac90[_0x262c33(0x1b6)](_0x1c9326=>!_0x1c9326['resolved']),_0x131f4d=_0x1dac90[_0x262c33(0x1b6)](_0x2752e3=>_0x2752e3['resolved']),_0x14cabb=_0x57a738!==_0x262c33(0x18c)||_0x8ce7da!==_0x262c33(0x18c),_0x1bb14c=__name(()=>{var _0x3fbddc=_0x262c33;_0x475506(_0x3fbddc(0x18c)),_0x532701(_0x3fbddc(0x18c));},_0x262c33(0x1a7));useEffect(()=>{var _0x54e61f=_0x262c33;_0x4bb1a2&&_0x5f5291(_0x78162a[_0x54e61f(0x14b)](_0x4bb1a2));},[_0x4bb1a2,_0x78162a,_0x396e1b]),useEffect(()=>{var _0x33d9ed=_0x262c33,_0x11ba59;if(!_0x2a946f)return;if(!_0x372f6d[_0x33d9ed(0x187)]){_0x372f6d['current']=!0x0;return;}const {unitId:_0x40571a,subUnitId:_0x4c4a6e,commentId:_0xba9e62}=_0x2a946f,_0x3054b5=_0x2b743b+'-'+_0x40571a+'-'+_0x4c4a6e+'-'+_0xba9e62;(_0x11ba59=document[_0x33d9ed(0x14f)](_0x3054b5))==null||_0x11ba59['scrollIntoView']({'block':_0x33d9ed(0x21b)});},[_0x2a946f]);const _0x835ab4=__name(_0x325652=>_0x37a111[_0x262c33(0x139)](ThreadCommentTree,{'prefix':_0x2b743b,'getSubUnitName':_0x14f493,'key':_0x325652['id'],'id':_0x325652['id'],'unitId':_0x325652[_0x262c33(0x158)],'subUnitId':_0x325652[_0x262c33(0x1c5)],'refStr':_0x325652['ref'],'type':_0x296d18,'showEdit':(_0x2a946f==null?void 0x0:_0x2a946f[_0x262c33(0x1f3)])===_0x325652['id'],'showHighlight':(_0x2a946f==null?void 0x0:_0x2a946f[_0x262c33(0x1f3)])===_0x325652['id'],'onClick':__name(()=>{var _0x5d990e=_0x262c33;_0x372f6d[_0x5d990e(0x187)]=!0x1,_0x325652[_0x5d990e(0x166)]?_0x5a4de8[_0x5d990e(0x17c)](SetActiveCommentOperation['id']):_0x5a4de8[_0x5d990e(0x17c)](SetActiveCommentOperation['id'],{'unitId':_0x325652['unitId'],'subUnitId':_0x325652[_0x5d990e(0x1c5)],'commentId':_0x325652['id'],'temp':!0x1});},_0x262c33(0x169)),'onMouseEnter':__name(()=>_0x168bc6==null?void 0x0:_0x168bc6(_0x325652),_0x262c33(0x23f)),'onMouseLeave':__name(()=>_0xf6e5eb==null?void 0x0:_0xf6e5eb(_0x325652),_0x262c33(0x17b)),'onAddComment':_0x1c4506,'onDeleteComment':_0x449229,'onResolve':__name(_0x2ef94=>_0x53e1cb==null?void 0x0:_0x53e1cb(_0x325652['id'],_0x2ef94),_0x262c33(0x1d5))}),_0x262c33(0x1ac));return _0x37a111[_0x262c33(0x139)](_0x262c33(0x1b2),{'className':styles[_0x262c33(0x1e1)]},_0x37a111[_0x262c33(0x139)](_0x262c33(0x1b2),{'className':styles['threadCommentPanelForms']},_0x296d18===UniverInstanceType[_0x262c33(0x159)]?_0x37a111[_0x262c33(0x139)](Select,{'borderless':!0x0,'value':_0x8ce7da,'onChange':__name(_0x34e91e=>_0x532701(_0x34e91e),_0x262c33(0x157)),'options':[{'value':_0x262c33(0x187),'label':_0x118612['t'](_0x262c33(0x246))},{'value':_0x262c33(0x18c),'label':_0x118612['t'](_0x262c33(0x197))}]}):null,_0x37a111['createElement'](Select,{'borderless':!0x0,'value':_0x57a738,'onChange':__name(_0x735846=>_0x475506(_0x735846),_0x262c33(0x157)),'options':[{'value':_0x262c33(0x18c),'label':_0x118612['t'](_0x262c33(0x1e3))},{'value':'resolved','label':_0x118612['t'](_0x262c33(0x16b))},{'value':_0x262c33(0x213),'label':_0x118612['t'](_0x262c33(0x241))},{'value':_0x262c33(0x141),'label':_0x118612['t'](_0x262c33(0x1a0))}]})),_0x175226[_0x262c33(0x1a8)](_0x835ab4),_0x131f4d[_0x262c33(0x151)]?_0x37a111[_0x262c33(0x139)](_0x262c33(0x1b2),{'className':styles[_0x262c33(0x235)]},_0x262c33(0x216)):null,_0x131f4d['map'](_0x835ab4),_0x1dac90[_0x262c33(0x151)]?null:_0x37a111[_0x262c33(0x139)]('div',{'className':styles[_0x262c33(0x14d)]},_0x14cabb?_0x118612['t'](_0x262c33(0x202)):_0x118612['t'](_0x262c33(0x1b0)),_0x14cabb?_0x37a111[_0x262c33(0x139)](Button,{'onClick':_0x1bb14c,'type':'link'},_0x118612['t'](_0x262c33(0x208))):_0x37a111['createElement'](Button,{'id':_0x262c33(0x20a),'className':styles[_0x262c33(0x193)],'type':'primary','onClick':_0x3cb9e4,'disabled':_0x4733e3},_0x37a111[_0x262c33(0x139)](IncreaseSingle,null),_0x118612['t'](_0x262c33(0x236)))));},_0x4f2b8a(0x182));export{IThreadCommentMentionDataService,SetActiveCommentOperation,THREAD_COMMENT_PANEL,ThreadCommentPanel,ThreadCommentPanelService,ThreadCommentTree,ToggleSheetCommentPanelOperation,UniverThreadCommentUIPlugin,getDT};