@univerjs/thread-comment-ui 1.0.4 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/lib/cjs/index.js +74 -28
  2. package/lib/cjs/locale/ar-SA.js +2 -0
  3. package/lib/cjs/locale/ca-ES.js +2 -0
  4. package/lib/cjs/locale/de-DE.js +2 -0
  5. package/lib/cjs/locale/en-US.js +2 -0
  6. package/lib/cjs/locale/es-ES.js +2 -0
  7. package/lib/cjs/locale/fa-IR.js +2 -0
  8. package/lib/cjs/locale/fr-FR.js +2 -0
  9. package/lib/cjs/locale/id-ID.js +2 -0
  10. package/lib/cjs/locale/it-IT.js +2 -0
  11. package/lib/cjs/locale/ja-JP.js +2 -0
  12. package/lib/cjs/locale/ko-KR.js +2 -0
  13. package/lib/cjs/locale/pl-PL.js +2 -0
  14. package/lib/cjs/locale/pt-BR.js +2 -0
  15. package/lib/cjs/locale/ru-RU.js +2 -0
  16. package/lib/cjs/locale/sk-SK.js +2 -0
  17. package/lib/cjs/locale/vi-VN.js +2 -0
  18. package/lib/cjs/locale/zh-CN.js +2 -0
  19. package/lib/cjs/locale/zh-HK.js +2 -0
  20. package/lib/cjs/locale/zh-TW.js +2 -0
  21. package/lib/es/index.js +71 -25
  22. package/lib/es/locale/ar-SA.js +2 -0
  23. package/lib/es/locale/ca-ES.js +2 -0
  24. package/lib/es/locale/de-DE.js +2 -0
  25. package/lib/es/locale/en-US.js +2 -0
  26. package/lib/es/locale/es-ES.js +2 -0
  27. package/lib/es/locale/fa-IR.js +2 -0
  28. package/lib/es/locale/fr-FR.js +2 -0
  29. package/lib/es/locale/id-ID.js +2 -0
  30. package/lib/es/locale/it-IT.js +2 -0
  31. package/lib/es/locale/ja-JP.js +2 -0
  32. package/lib/es/locale/ko-KR.js +2 -0
  33. package/lib/es/locale/pl-PL.js +2 -0
  34. package/lib/es/locale/pt-BR.js +2 -0
  35. package/lib/es/locale/ru-RU.js +2 -0
  36. package/lib/es/locale/sk-SK.js +2 -0
  37. package/lib/es/locale/vi-VN.js +2 -0
  38. package/lib/es/locale/zh-CN.js +2 -0
  39. package/lib/es/locale/zh-HK.js +2 -0
  40. package/lib/es/locale/zh-TW.js +2 -0
  41. package/lib/index.css +8 -0
  42. package/lib/index.js +71 -25
  43. package/lib/locale/ar-SA.js +2 -0
  44. package/lib/locale/ca-ES.js +2 -0
  45. package/lib/locale/de-DE.js +2 -0
  46. package/lib/locale/en-US.js +2 -0
  47. package/lib/locale/es-ES.js +2 -0
  48. package/lib/locale/fa-IR.js +2 -0
  49. package/lib/locale/fr-FR.js +2 -0
  50. package/lib/locale/id-ID.js +2 -0
  51. package/lib/locale/it-IT.js +2 -0
  52. package/lib/locale/ja-JP.js +2 -0
  53. package/lib/locale/ko-KR.js +2 -0
  54. package/lib/locale/pl-PL.js +2 -0
  55. package/lib/locale/pt-BR.js +2 -0
  56. package/lib/locale/ru-RU.js +2 -0
  57. package/lib/locale/sk-SK.js +2 -0
  58. package/lib/locale/vi-VN.js +2 -0
  59. package/lib/locale/zh-CN.js +2 -0
  60. package/lib/locale/zh-HK.js +2 -0
  61. package/lib/locale/zh-TW.js +2 -0
  62. package/lib/types/locale/en-US.d.ts +2 -0
  63. package/lib/types/views/thread-comment-editor/util.d.ts +5 -1
  64. package/lib/umd/index.js +5 -5
  65. package/lib/umd/locale/ar-SA.js +1 -1
  66. package/lib/umd/locale/ca-ES.js +1 -1
  67. package/lib/umd/locale/de-DE.js +1 -1
  68. package/lib/umd/locale/en-US.js +1 -1
  69. package/lib/umd/locale/es-ES.js +1 -1
  70. package/lib/umd/locale/fa-IR.js +1 -1
  71. package/lib/umd/locale/fr-FR.js +1 -1
  72. package/lib/umd/locale/id-ID.js +1 -1
  73. package/lib/umd/locale/it-IT.js +1 -1
  74. package/lib/umd/locale/ja-JP.js +1 -1
  75. package/lib/umd/locale/ko-KR.js +1 -1
  76. package/lib/umd/locale/pl-PL.js +1 -1
  77. package/lib/umd/locale/pt-BR.js +1 -1
  78. package/lib/umd/locale/ru-RU.js +1 -1
  79. package/lib/umd/locale/sk-SK.js +1 -1
  80. package/lib/umd/locale/vi-VN.js +1 -1
  81. package/lib/umd/locale/zh-CN.js +1 -1
  82. package/lib/umd/locale/zh-HK.js +1 -1
  83. package/lib/umd/locale/zh-TW.js +1 -1
  84. package/package.json +12 -12
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Speichern"
16
16
  },
17
17
  item: {
18
+ markResolved: "Als gelöst markieren",
19
+ markUnresolved: "Als ungelöst markieren",
18
20
  edit: "Bearbeiten",
19
21
  delete: "Diesen Kommentar löschen",
20
22
  more: "Mehr"
@@ -30,6 +30,8 @@ const locale = { "thread-comment-ui": {
30
30
  save: "Save"
31
31
  },
32
32
  item: {
33
+ markResolved: "Mark as resolved",
34
+ markUnresolved: "Mark as unresolved",
33
35
  edit: "Edit",
34
36
  delete: "Delete This Comment",
35
37
  more: "More"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Guardar"
16
16
  },
17
17
  item: {
18
+ markResolved: "Marcar como resuelto",
19
+ markUnresolved: "Marcar como no resuelto",
18
20
  edit: "Editar",
19
21
  delete: "Eliminar este comentario",
20
22
  more: "Más"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "ذخیره"
16
16
  },
17
17
  item: {
18
+ markResolved: "علامت‌گذاری به‌عنوان حل‌شده",
19
+ markUnresolved: "علامت‌گذاری به‌عنوان حل‌نشده",
18
20
  edit: "ویرایش",
19
21
  delete: "حذف این نظر",
20
22
  more: "بیشتر"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Enregistrer"
16
16
  },
17
17
  item: {
18
+ markResolved: "Marquer comme résolu",
19
+ markUnresolved: "Marquer comme non résolu",
18
20
  edit: "Modifier",
19
21
  delete: "Supprimer ce commentaire",
20
22
  more: "Plus"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Simpan"
16
16
  },
17
17
  item: {
18
+ markResolved: "Tandai sebagai terselesaikan",
19
+ markUnresolved: "Tandai sebagai belum terselesaikan",
18
20
  edit: "Edit",
19
21
  delete: "Hapus Komentar Ini",
20
22
  more: "Lebih Banyak"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Salva"
16
16
  },
17
17
  item: {
18
+ markResolved: "Segna come risolto",
19
+ markUnresolved: "Segna come non risolto",
18
20
  edit: "Modifica",
19
21
  delete: "Elimina questo commento",
20
22
  more: "Altro"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "保存"
16
16
  },
17
17
  item: {
18
+ markResolved: "解決済みにする",
19
+ markUnresolved: "未解決にする",
18
20
  edit: "編集",
19
21
  delete: "コメントを削除",
20
22
  more: "もっと見る"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "저장"
16
16
  },
17
17
  item: {
18
+ markResolved: "해결됨으로 표시",
19
+ markUnresolved: "미해결로 표시",
18
20
  edit: "편집",
19
21
  delete: "댓글 삭제",
20
22
  more: "더 보기"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Zapisz"
16
16
  },
17
17
  item: {
18
+ markResolved: "Oznacz jako rozwiązane",
19
+ markUnresolved: "Oznacz jako nierozwiązane",
18
20
  edit: "Edytuj",
19
21
  delete: "Usuń ten komentarz",
20
22
  more: "Więcej"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Salvar"
16
16
  },
17
17
  item: {
18
+ markResolved: "Marcar como resolvido",
19
+ markUnresolved: "Marcar como não resolvido",
18
20
  edit: "Editar",
19
21
  delete: "Excluir Este Comentário",
20
22
  more: "Mais"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Сохранить"
16
16
  },
17
17
  item: {
18
+ markResolved: "Отметить как решённое",
19
+ markUnresolved: "Отметить как нерешённое",
18
20
  edit: "Редактировать",
19
21
  delete: "Удалить",
20
22
  more: "Больше"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Uložiť"
16
16
  },
17
17
  item: {
18
+ markResolved: "Označiť ako vyriešené",
19
+ markUnresolved: "Označiť ako nevyriešené",
18
20
  edit: "Upraviť",
19
21
  delete: "Odstrániť tento komentár",
20
22
  more: "Viac"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Lưu"
16
16
  },
17
17
  item: {
18
+ markResolved: "Đánh dấu là đã giải quyết",
19
+ markUnresolved: "Đánh dấu là chưa giải quyết",
18
20
  edit: "Chỉnh sửa",
19
21
  delete: "Xóa",
20
22
  more: "Thêm"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "保存"
16
16
  },
17
17
  item: {
18
+ markResolved: "标记为已解决",
19
+ markUnresolved: "标记为未解决",
18
20
  edit: "编辑",
19
21
  delete: "删除",
20
22
  more: "更多"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "儲存"
16
16
  },
17
17
  item: {
18
+ markResolved: "標記為已解決",
19
+ markUnresolved: "標記為未解決",
18
20
  edit: "編輯",
19
21
  delete: "刪除",
20
22
  more: "更多"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "儲存"
16
16
  },
17
17
  item: {
18
+ markResolved: "標記為已解決",
19
+ markUnresolved: "標記為未解決",
18
20
  edit: "編輯",
19
21
  delete: "刪除",
20
22
  more: "更多"
package/lib/index.css CHANGED
@@ -149,6 +149,10 @@
149
149
  cursor: pointer;
150
150
  }
151
151
 
152
+ .univer-select-text {
153
+ user-select: text;
154
+ }
155
+
152
156
  .univer-list-none {
153
157
  list-style-type: none;
154
158
  }
@@ -399,6 +403,10 @@
399
403
  color: var(--univer-primary-600);
400
404
  }
401
405
 
406
+ .univer-underline {
407
+ text-decoration-line: underline;
408
+ }
409
+
402
410
  .univer-shadow {
403
411
  --univer-tw-shadow: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;
404
412
  --univer-tw-shadow-colored: 0 1px 3px 0 var(--univer-tw-shadow-color), 0 1px 2px -1px var(--univer-tw-shadow-color);
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { BuildTextUtils, CommandType, CustomRangeType, DOCS_COMMENT_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, DependentOn, Disposable, ICommandService, IConfigService, IUniverInstanceService, Inject, Injector, LOCALE_META, LocaleService, Plugin, RegionService, Tools, UniverInstanceType, UserManagerService, createParagraphId, createSectionId, dateKit, generateRandomId, getBodySlice, merge, mergeOverrideWithDependencies, toDisposable } from "@univerjs/core";
1
+ import { BuildTextUtils, CommandType, CustomRangeType, DOCS_COMMENT_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, DependentOn, Disposable, ICommandService, IConfigService, IUniverInstanceService, Inject, Injector, LOCALE_META, LocaleService, Plugin, RegionService, Tools, UniverInstanceType, UserManagerService, createParagraphId, createSectionId, dateKit, generateRandomId, getBodySlice, isSafeUrl, merge, mergeOverrideWithDependencies, toDisposable } from "@univerjs/core";
2
2
  import { ISidebarService, KeyCode, UI_PLUGIN_CONFIG_KEY, UniverMobileUIPlugin, useConfigValue, useDependency, useEvent, useObservable } from "@univerjs/ui";
3
3
  import { BehaviorSubject, debounceTime, map, of, startWith } from "rxjs";
4
4
  import { BreakLineCommand, DeleteLeftCommand, DeleteRightCommand, IEditorService, RichTextEditor, UniverDocsUIPlugin } from "@univerjs/docs-ui";
@@ -9,7 +9,7 @@ import { DeleteIcon, IncreaseIcon, MoreHorizontalIcon, MoreLeftIcon, ReplyToComm
9
9
  import { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
11
 
12
- //#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
12
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
13
13
  function _typeof(o) {
14
14
  "@babel/helpers - typeof";
15
15
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -20,7 +20,7 @@ function _typeof(o) {
20
20
  }
21
21
 
22
22
  //#endregion
23
- //#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
23
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
24
24
  function toPrimitive(t, r) {
25
25
  if ("object" != _typeof(t) || !t) return t;
26
26
  var e = t[Symbol.toPrimitive];
@@ -33,14 +33,14 @@ function toPrimitive(t, r) {
33
33
  }
34
34
 
35
35
  //#endregion
36
- //#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
36
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
37
37
  function toPropertyKey(t) {
38
38
  var i = toPrimitive(t, "string");
39
39
  return "symbol" == _typeof(i) ? i : i + "";
40
40
  }
41
41
 
42
42
  //#endregion
43
- //#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
43
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
44
44
  function _defineProperty(e, r, t) {
45
45
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
46
46
  value: t,
@@ -51,7 +51,7 @@ function _defineProperty(e, r, t) {
51
51
  }
52
52
 
53
53
  //#endregion
54
- //#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateParam.js
54
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateParam.js
55
55
  function __decorateParam(paramIndex, decorator) {
56
56
  return function(target, key) {
57
57
  decorator(target, key, paramIndex);
@@ -59,7 +59,7 @@ function __decorateParam(paramIndex, decorator) {
59
59
  }
60
60
 
61
61
  //#endregion
62
- //#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
62
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
63
63
  function __decorate(decorators, target, key, desc) {
64
64
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
65
65
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -133,7 +133,7 @@ const SetActiveCommentOperation = {
133
133
  //#endregion
134
134
  //#region package.json
135
135
  var name = "@univerjs/thread-comment-ui";
136
- var version = "1.0.4";
136
+ var version = "1.2.0";
137
137
 
138
138
  //#endregion
139
139
  //#region src/config/config.ts
@@ -487,13 +487,23 @@ const transformDocument2TextNodesInParagraph = (doc) => {
487
487
  type: "text",
488
488
  content: dataStream.slice(lastIndex, range.startIndex)
489
489
  });
490
- textNodes.push({
490
+ const content = dataStream.slice(range.startIndex, range.endIndex + 1);
491
+ if (range.rangeType === CustomRangeType.MENTION) textNodes.push({
491
492
  type: "mention",
492
493
  content: {
493
- label: dataStream.slice(range.startIndex, range.endIndex + 1),
494
+ label: content,
494
495
  id: range.rangeId
495
496
  }
496
497
  });
498
+ else if (range.rangeType === CustomRangeType.HYPERLINK) textNodes.push({
499
+ type: "hyperlink",
500
+ content,
501
+ range
502
+ });
503
+ else textNodes.push({
504
+ type: "text",
505
+ content
506
+ });
497
507
  lastIndex = range.endIndex + 1;
498
508
  });
499
509
  textNodes.push({
@@ -533,6 +543,16 @@ const transformTextNodes2Document = (nodes) => {
533
543
  });
534
544
  break;
535
545
  }
546
+ case "hyperlink": {
547
+ const startIndex = str.length;
548
+ str += node.content;
549
+ customRanges.push({
550
+ ...node.range,
551
+ startIndex,
552
+ endIndex: str.length - 1
553
+ });
554
+ break;
555
+ }
536
556
  }
537
557
  });
538
558
  str += "\r\n";
@@ -861,7 +881,8 @@ const ThreadCommentItem = (props) => {
861
881
  return success;
862
882
  }
863
883
  }) : /* @__PURE__ */ jsx("div", {
864
- className: "univer-text-sm univer-text-gray-900 dark:!univer-text-gray-0",
884
+ tabIndex: -1,
885
+ className: "univer-select-text univer-text-sm univer-text-gray-900 dark:!univer-text-gray-0",
865
886
  children: transformDocument2TextNodes(item.text).map((paragraph, paragraphIndex) => {
866
887
  var _item$text$paragraphs;
867
888
  let offset = 0;
@@ -871,10 +892,23 @@ const ThreadCommentItem = (props) => {
871
892
  const key = offset;
872
893
  offset += node.type === "mention" ? node.content.label.length : node.content.length;
873
894
  switch (node.type) {
874
- case "mention": return /* @__PURE__ */ jsxs("a", {
895
+ case "mention": return /* @__PURE__ */ jsxs("span", {
875
896
  className: "univer-text-primary-600",
876
897
  children: [node.content.label, " "]
877
898
  }, key);
899
+ case "hyperlink": {
900
+ var _node$range$propertie;
901
+ const url = (_node$range$propertie = node.range.properties) === null || _node$range$propertie === void 0 ? void 0 : _node$range$propertie.url;
902
+ if (!isSafeUrl(url)) return node.content;
903
+ return /* @__PURE__ */ jsx("a", {
904
+ href: url,
905
+ target: "_blank",
906
+ rel: "noopener noreferrer",
907
+ className: "univer-text-primary-600 univer-underline",
908
+ onClick: (event) => event.stopPropagation(),
909
+ children: node.content
910
+ }, key);
911
+ }
878
912
  default: return node.content;
879
913
  }
880
914
  })
@@ -957,6 +991,8 @@ const ThreadCommentTree = (props) => {
957
991
  const subUnitName = getSubUnitName((comments === null || comments === void 0 ? void 0 : comments.root.subUnitId) ?? subUnitId);
958
992
  const editorVisible = showEdit && !editingId && !resolved;
959
993
  const title = `${displayRef ?? refStr ?? (comments === null || comments === void 0 ? void 0 : comments.root.ref) ?? ""}${subUnitName ? " · " : ""}${subUnitName}`;
994
+ const resolveLabel = localeService.t(resolved ? "thread-comment-ui.item.markUnresolved" : "thread-comment-ui.item.markResolved");
995
+ const deleteLabel = localeService.t("thread-comment-ui.item.delete");
960
996
  const threadCommentEditorId = getThreadCommentEditorId({
961
997
  location,
962
998
  unitId,
@@ -972,7 +1008,11 @@ const ThreadCommentTree = (props) => {
972
1008
  "univer-shadow": !resolved && (showHighlight || isHover || location === "CELL")
973
1009
  }),
974
1010
  style,
975
- onClick,
1011
+ onClick: (event) => {
1012
+ const selection = event.currentTarget.ownerDocument.getSelection();
1013
+ if (selection && !selection.isCollapsed && selection.anchorNode && selection.focusNode && event.currentTarget.contains(selection.anchorNode) && event.currentTarget.contains(selection.focusNode)) return;
1014
+ onClick === null || onClick === void 0 || onClick();
1015
+ },
976
1016
  onMouseEnter: () => {
977
1017
  onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter();
978
1018
  setIsHover(true);
@@ -997,18 +1037,24 @@ const ThreadCommentTree = (props) => {
997
1037
  })]
998
1038
  }), !!comments && /* @__PURE__ */ jsxs("div", {
999
1039
  className: "univer-flex univer-flex-shrink-0 univer-flex-grow-0 univer-flex-row",
1000
- children: [/* @__PURE__ */ jsx("button", {
1001
- type: "button",
1002
- "aria-label": localeService.t(resolved ? "thread-comment-ui.filter.status.unsolved" : "thread-comment-ui.filter.status.resolved"),
1003
- className: clsx("univer-ml-1 univer-inline-flex univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-[3px] univer-border-0 univer-bg-transparent univer-p-0 univer-text-base hover:univer-bg-gray-50 rtl:univer-ml-0 rtl:univer-mr-1 dark:hover:!univer-bg-gray-800", { "univer-text-green-500": resolved }),
1004
- onClick: handleResolve,
1005
- children: resolved ? /* @__PURE__ */ jsx(SuccessIcon, {}) : /* @__PURE__ */ jsx(SuccessOutlineIcon, {})
1006
- }), (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userID) === comments.root.personId ? /* @__PURE__ */ jsx("button", {
1007
- type: "button",
1008
- "aria-label": localeService.t("thread-comment-ui.item.delete"),
1009
- className: "univer-ml-1 univer-inline-flex univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-[3px] univer-border-0 univer-bg-transparent univer-p-0 univer-text-base hover:univer-bg-gray-50 rtl:univer-ml-0 rtl:univer-mr-1 dark:hover:!univer-bg-gray-800",
1010
- onClick: handleDeleteRoot,
1011
- children: /* @__PURE__ */ jsx(DeleteIcon, {})
1040
+ children: [/* @__PURE__ */ jsx(Tooltip, {
1041
+ title: resolveLabel,
1042
+ children: /* @__PURE__ */ jsx("button", {
1043
+ type: "button",
1044
+ "aria-label": resolveLabel,
1045
+ className: clsx("univer-ml-1 univer-inline-flex univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-[3px] univer-border-0 univer-bg-transparent univer-p-0 univer-text-base hover:univer-bg-gray-50 rtl:univer-ml-0 rtl:univer-mr-1 dark:hover:!univer-bg-gray-800", { "univer-text-green-500": resolved }),
1046
+ onClick: handleResolve,
1047
+ children: resolved ? /* @__PURE__ */ jsx(SuccessIcon, {}) : /* @__PURE__ */ jsx(SuccessOutlineIcon, {})
1048
+ })
1049
+ }), (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userID) === comments.root.personId ? /* @__PURE__ */ jsx(Tooltip, {
1050
+ title: deleteLabel,
1051
+ children: /* @__PURE__ */ jsx("button", {
1052
+ type: "button",
1053
+ "aria-label": deleteLabel,
1054
+ className: "univer-ml-1 univer-inline-flex univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-[3px] univer-border-0 univer-bg-transparent univer-p-0 univer-text-base hover:univer-bg-gray-50 rtl:univer-ml-0 rtl:univer-mr-1 dark:hover:!univer-bg-gray-800",
1055
+ onClick: handleDeleteRoot,
1056
+ children: /* @__PURE__ */ jsx(DeleteIcon, {})
1057
+ })
1012
1058
  }) : null]
1013
1059
  })]
1014
1060
  }),
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "حفظ"
16
16
  },
17
17
  item: {
18
+ markResolved: "وضع علامة كمحلول",
19
+ markUnresolved: "وضع علامة كغير محلول",
18
20
  edit: "تحرير",
19
21
  delete: "حذف هذا التعليق",
20
22
  more: "المزيد"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Desa"
16
16
  },
17
17
  item: {
18
+ markResolved: "Marca com a resolt",
19
+ markUnresolved: "Marca com a no resolt",
18
20
  edit: "Edita",
19
21
  delete: "Elimina aquest comentari",
20
22
  more: "Més"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Speichern"
16
16
  },
17
17
  item: {
18
+ markResolved: "Als gelöst markieren",
19
+ markUnresolved: "Als ungelöst markieren",
18
20
  edit: "Bearbeiten",
19
21
  delete: "Diesen Kommentar löschen",
20
22
  more: "Mehr"
@@ -30,6 +30,8 @@ const locale = { "thread-comment-ui": {
30
30
  save: "Save"
31
31
  },
32
32
  item: {
33
+ markResolved: "Mark as resolved",
34
+ markUnresolved: "Mark as unresolved",
33
35
  edit: "Edit",
34
36
  delete: "Delete This Comment",
35
37
  more: "More"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Guardar"
16
16
  },
17
17
  item: {
18
+ markResolved: "Marcar como resuelto",
19
+ markUnresolved: "Marcar como no resuelto",
18
20
  edit: "Editar",
19
21
  delete: "Eliminar este comentario",
20
22
  more: "Más"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "ذخیره"
16
16
  },
17
17
  item: {
18
+ markResolved: "علامت‌گذاری به‌عنوان حل‌شده",
19
+ markUnresolved: "علامت‌گذاری به‌عنوان حل‌نشده",
18
20
  edit: "ویرایش",
19
21
  delete: "حذف این نظر",
20
22
  more: "بیشتر"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Enregistrer"
16
16
  },
17
17
  item: {
18
+ markResolved: "Marquer comme résolu",
19
+ markUnresolved: "Marquer comme non résolu",
18
20
  edit: "Modifier",
19
21
  delete: "Supprimer ce commentaire",
20
22
  more: "Plus"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Simpan"
16
16
  },
17
17
  item: {
18
+ markResolved: "Tandai sebagai terselesaikan",
19
+ markUnresolved: "Tandai sebagai belum terselesaikan",
18
20
  edit: "Edit",
19
21
  delete: "Hapus Komentar Ini",
20
22
  more: "Lebih Banyak"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Salva"
16
16
  },
17
17
  item: {
18
+ markResolved: "Segna come risolto",
19
+ markUnresolved: "Segna come non risolto",
18
20
  edit: "Modifica",
19
21
  delete: "Elimina questo commento",
20
22
  more: "Altro"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "保存"
16
16
  },
17
17
  item: {
18
+ markResolved: "解決済みにする",
19
+ markUnresolved: "未解決にする",
18
20
  edit: "編集",
19
21
  delete: "コメントを削除",
20
22
  more: "もっと見る"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "저장"
16
16
  },
17
17
  item: {
18
+ markResolved: "해결됨으로 표시",
19
+ markUnresolved: "미해결로 표시",
18
20
  edit: "편집",
19
21
  delete: "댓글 삭제",
20
22
  more: "더 보기"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Zapisz"
16
16
  },
17
17
  item: {
18
+ markResolved: "Oznacz jako rozwiązane",
19
+ markUnresolved: "Oznacz jako nierozwiązane",
18
20
  edit: "Edytuj",
19
21
  delete: "Usuń ten komentarz",
20
22
  more: "Więcej"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Salvar"
16
16
  },
17
17
  item: {
18
+ markResolved: "Marcar como resolvido",
19
+ markUnresolved: "Marcar como não resolvido",
18
20
  edit: "Editar",
19
21
  delete: "Excluir Este Comentário",
20
22
  more: "Mais"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Сохранить"
16
16
  },
17
17
  item: {
18
+ markResolved: "Отметить как решённое",
19
+ markUnresolved: "Отметить как нерешённое",
18
20
  edit: "Редактировать",
19
21
  delete: "Удалить",
20
22
  more: "Больше"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Uložiť"
16
16
  },
17
17
  item: {
18
+ markResolved: "Označiť ako vyriešené",
19
+ markUnresolved: "Označiť ako nevyriešené",
18
20
  edit: "Upraviť",
19
21
  delete: "Odstrániť tento komentár",
20
22
  more: "Viac"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "Lưu"
16
16
  },
17
17
  item: {
18
+ markResolved: "Đánh dấu là đã giải quyết",
19
+ markUnresolved: "Đánh dấu là chưa giải quyết",
18
20
  edit: "Chỉnh sửa",
19
21
  delete: "Xóa",
20
22
  more: "Thêm"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "保存"
16
16
  },
17
17
  item: {
18
+ markResolved: "标记为已解决",
19
+ markUnresolved: "标记为未解决",
18
20
  edit: "编辑",
19
21
  delete: "删除",
20
22
  more: "更多"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "儲存"
16
16
  },
17
17
  item: {
18
+ markResolved: "標記為已解決",
19
+ markUnresolved: "標記為未解決",
18
20
  edit: "編輯",
19
21
  delete: "刪除",
20
22
  more: "更多"
@@ -15,6 +15,8 @@ const locale = { "thread-comment-ui": {
15
15
  save: "儲存"
16
16
  },
17
17
  item: {
18
+ markResolved: "標記為已解決",
19
+ markUnresolved: "標記為未解決",
18
20
  edit: "編輯",
19
21
  delete: "刪除",
20
22
  more: "更多"
@@ -32,6 +32,8 @@ declare const locale: {
32
32
  save: string;
33
33
  };
34
34
  item: {
35
+ markResolved: string;
36
+ markUnresolved: string;
35
37
  edit: string;
36
38
  delete: string;
37
39
  more: string;
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IDocumentBody } from '@univerjs/core';
16
+ import type { ICustomRange, IDocumentBody } from '@univerjs/core';
17
17
  import type { IThreadCommentMention } from '@univerjs/thread-comment';
18
18
  interface IThreadCommentEditorFocusService {
19
19
  focus: (editorId: string) => void;
@@ -27,6 +27,10 @@ export type TextNode = {
27
27
  } | {
28
28
  type: 'mention';
29
29
  content: IThreadCommentMention;
30
+ } | {
31
+ type: 'hyperlink';
32
+ content: string;
33
+ range: ICustomRange;
30
34
  };
31
35
  export declare const transformDocument2TextNodes: (doc: IDocumentBody) => TextNode[][];
32
36
  export declare const transformTextNodes2Document: (nodes: TextNode[]) => IDocumentBody;