@ckeditor/ckeditor5-comments 36.0.1 → 37.0.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 (202) hide show
  1. package/build/comments.js +2 -2
  2. package/build/translations/af.js +1 -1
  3. package/build/translations/ar.js +1 -1
  4. package/build/translations/bg.js +1 -1
  5. package/build/translations/bn.js +1 -1
  6. package/build/translations/bs.js +1 -1
  7. package/build/translations/ca.js +1 -1
  8. package/build/translations/cs.js +1 -1
  9. package/build/translations/da.js +1 -1
  10. package/build/translations/de-ch.js +1 -1
  11. package/build/translations/de.js +1 -1
  12. package/build/translations/el.js +1 -1
  13. package/build/translations/en-au.js +1 -1
  14. package/build/translations/es-co.js +1 -1
  15. package/build/translations/es.js +1 -1
  16. package/build/translations/et.js +1 -1
  17. package/build/translations/fa.js +1 -1
  18. package/build/translations/fi.js +1 -1
  19. package/build/translations/fr.js +1 -1
  20. package/build/translations/gl.js +1 -1
  21. package/build/translations/he.js +1 -1
  22. package/build/translations/hi.js +1 -1
  23. package/build/translations/hr.js +1 -1
  24. package/build/translations/hu.js +1 -1
  25. package/build/translations/id.js +1 -1
  26. package/build/translations/it.js +1 -1
  27. package/build/translations/ja.js +1 -1
  28. package/build/translations/jv.js +1 -1
  29. package/build/translations/ko.js +1 -1
  30. package/build/translations/lt.js +1 -1
  31. package/build/translations/lv.js +1 -1
  32. package/build/translations/ms.js +1 -1
  33. package/build/translations/nl.js +1 -1
  34. package/build/translations/no.js +1 -1
  35. package/build/translations/pl.js +1 -1
  36. package/build/translations/pt-br.js +1 -1
  37. package/build/translations/pt.js +1 -1
  38. package/build/translations/ro.js +1 -1
  39. package/build/translations/ru.js +1 -1
  40. package/build/translations/sk.js +1 -1
  41. package/build/translations/sr-latn.js +1 -1
  42. package/build/translations/sr.js +1 -1
  43. package/build/translations/sv.js +1 -1
  44. package/build/translations/th.js +1 -1
  45. package/build/translations/tk.js +1 -1
  46. package/build/translations/tr.js +1 -1
  47. package/build/translations/tt.js +1 -1
  48. package/build/translations/ug.js +1 -1
  49. package/build/translations/uk.js +1 -1
  50. package/build/translations/ur.js +1 -1
  51. package/build/translations/vi.js +1 -1
  52. package/build/translations/zh-cn.js +1 -1
  53. package/build/translations/zh.js +1 -1
  54. package/lang/contexts.json +8 -1
  55. package/lang/translations/af.po +28 -0
  56. package/lang/translations/ar.po +28 -0
  57. package/lang/translations/bg.po +28 -0
  58. package/lang/translations/bn.po +28 -0
  59. package/lang/translations/bs.po +28 -0
  60. package/lang/translations/ca.po +28 -0
  61. package/lang/translations/cs.po +28 -0
  62. package/lang/translations/da.po +28 -0
  63. package/lang/translations/de-ch.po +28 -0
  64. package/lang/translations/de.po +28 -0
  65. package/lang/translations/el.po +28 -0
  66. package/lang/translations/en-au.po +28 -0
  67. package/lang/translations/en.po +28 -0
  68. package/lang/translations/es-co.po +28 -0
  69. package/lang/translations/es.po +28 -0
  70. package/lang/translations/et.po +28 -0
  71. package/lang/translations/fa.po +28 -0
  72. package/lang/translations/fi.po +28 -0
  73. package/lang/translations/fr.po +28 -0
  74. package/lang/translations/gl.po +28 -0
  75. package/lang/translations/he.po +28 -0
  76. package/lang/translations/hi.po +28 -0
  77. package/lang/translations/hr.po +28 -0
  78. package/lang/translations/hu.po +28 -0
  79. package/lang/translations/id.po +28 -0
  80. package/lang/translations/it.po +28 -0
  81. package/lang/translations/ja.po +28 -0
  82. package/lang/translations/jv.po +28 -0
  83. package/lang/translations/ko.po +28 -0
  84. package/lang/translations/lt.po +28 -0
  85. package/lang/translations/lv.po +28 -0
  86. package/lang/translations/ms.po +28 -0
  87. package/lang/translations/nl.po +28 -0
  88. package/lang/translations/no.po +28 -0
  89. package/lang/translations/pl.po +28 -0
  90. package/lang/translations/pt-br.po +28 -0
  91. package/lang/translations/pt.po +28 -0
  92. package/lang/translations/ro.po +28 -0
  93. package/lang/translations/ru.po +28 -0
  94. package/lang/translations/sk.po +28 -0
  95. package/lang/translations/sr-latn.po +28 -0
  96. package/lang/translations/sr.po +29 -1
  97. package/lang/translations/sv.po +28 -0
  98. package/lang/translations/th.po +28 -0
  99. package/lang/translations/tk.po +28 -0
  100. package/lang/translations/tr.po +28 -0
  101. package/lang/translations/tt.po +28 -0
  102. package/lang/translations/ug.po +28 -0
  103. package/lang/translations/uk.po +28 -0
  104. package/lang/translations/ur.po +28 -0
  105. package/lang/translations/vi.po +28 -0
  106. package/lang/translations/zh-cn.po +28 -0
  107. package/lang/translations/zh.po +28 -0
  108. package/package.json +19 -3
  109. package/src/annotations/annotation.d.ts +86 -0
  110. package/src/annotations/annotation.js +1 -1
  111. package/src/annotations/annotationcollection.d.ts +94 -0
  112. package/src/annotations/annotationcollection.js +1 -1
  113. package/src/annotations/annotations.d.ts +150 -0
  114. package/src/annotations/annotations.js +1 -1
  115. package/src/annotations/annotationsuis.d.ts +227 -0
  116. package/src/annotations/annotationsuis.js +1 -1
  117. package/src/annotations/editorannotations.d.ts +62 -0
  118. package/src/annotations/editorannotations.js +1 -1
  119. package/src/annotations/inlineannotations.d.ts +84 -0
  120. package/src/annotations/inlineannotations.js +1 -1
  121. package/src/annotations/narrowsidebar.d.ts +80 -0
  122. package/src/annotations/narrowsidebar.js +1 -1
  123. package/src/annotations/sidebar.d.ts +96 -0
  124. package/src/annotations/sidebar.js +1 -1
  125. package/src/annotations/view/annotationcounterbuttonview.d.ts +25 -0
  126. package/src/annotations/view/annotationcounterbuttonview.js +1 -1
  127. package/src/annotations/view/annotationview.d.ts +86 -0
  128. package/src/annotations/view/annotationview.js +1 -1
  129. package/src/annotations/view/sidebaritemview.d.ts +51 -0
  130. package/src/annotations/view/sidebaritemview.js +1 -1
  131. package/src/annotations/view/sidebarview.d.ts +28 -0
  132. package/src/annotations/view/sidebarview.js +1 -1
  133. package/src/annotations/widesidebar.d.ts +72 -0
  134. package/src/annotations/widesidebar.js +1 -1
  135. package/src/augmentation.d.ts +54 -0
  136. package/src/augmentation.js +23 -0
  137. package/src/comments/addcommentthreadcommand.d.ts +31 -0
  138. package/src/comments/addcommentthreadcommand.js +1 -1
  139. package/src/comments/commentsarchive.d.ts +25 -0
  140. package/src/comments/commentsarchive.js +23 -0
  141. package/src/comments/commentsarchiveui.d.ts +32 -0
  142. package/src/comments/commentsarchiveui.js +23 -0
  143. package/src/comments/commentsediting.d.ts +71 -0
  144. package/src/comments/commentsediting.js +1 -1
  145. package/src/comments/commentsrepository.d.ts +1009 -0
  146. package/src/comments/commentsrepository.js +1 -1
  147. package/src/comments/commentsui.d.ts +25 -0
  148. package/src/comments/commentsui.js +1 -1
  149. package/src/comments/integrations/commentsrestrictededitingmode.d.ts +13 -0
  150. package/src/comments/integrations/commentsrestrictededitingmode.js +1 -1
  151. package/src/comments/integrations/importword.d.ts +17 -0
  152. package/src/comments/integrations/importword.js +1 -1
  153. package/src/comments/ui/commenteditor/commenteditor.d.ts +32 -0
  154. package/src/comments/ui/commenteditor/commenteditor.js +1 -1
  155. package/src/comments/ui/commenteditor/commenteditorui.d.ts +27 -0
  156. package/src/comments/ui/commenteditor/commenteditorui.js +1 -1
  157. package/src/comments/ui/commenteditor/commenteditoruiview.d.ts +32 -0
  158. package/src/comments/ui/commenteditor/commenteditoruiview.js +1 -1
  159. package/src/comments/ui/commentthreadcontroller.d.ts +64 -0
  160. package/src/comments/ui/commentthreadcontroller.js +1 -1
  161. package/src/comments/ui/view/basecommentthreadview.d.ts +108 -0
  162. package/src/comments/ui/view/basecommentthreadview.js +1 -1
  163. package/src/comments/ui/view/basecommentview.d.ts +108 -0
  164. package/src/comments/ui/view/basecommentview.js +1 -1
  165. package/src/comments/ui/view/collapsedcommentsview.d.ts +9 -0
  166. package/src/comments/ui/view/collapsedcommentsview.js +1 -1
  167. package/src/comments/ui/view/commentcontentview.d.ts +10 -0
  168. package/src/comments/ui/view/commentcontentview.js +1 -1
  169. package/src/comments/ui/view/commentinputview.d.ts +76 -0
  170. package/src/comments/ui/view/commentinputview.js +1 -1
  171. package/src/comments/ui/view/commentsarchiveview.d.ts +34 -0
  172. package/src/comments/ui/view/commentsarchiveview.js +23 -0
  173. package/src/comments/ui/view/commentslistview.d.ts +96 -0
  174. package/src/comments/ui/view/commentslistview.js +1 -1
  175. package/src/comments/ui/view/commentthreadheaderview.d.ts +46 -0
  176. package/src/comments/ui/view/commentthreadheaderview.js +23 -0
  177. package/src/comments/ui/view/commentthreadinputview.d.ts +37 -0
  178. package/src/comments/ui/view/commentthreadinputview.js +1 -1
  179. package/src/comments/ui/view/commentthreadview.d.ts +108 -0
  180. package/src/comments/ui/view/commentthreadview.js +1 -1
  181. package/src/comments/ui/view/commentview.d.ts +231 -0
  182. package/src/comments/ui/view/commentview.js +1 -1
  183. package/src/comments.d.ts +22 -0
  184. package/src/comments.js +1 -1
  185. package/src/commentsonly.d.ts +28 -0
  186. package/src/commentsonly.js +1 -1
  187. package/src/config.d.ts +172 -0
  188. package/src/config.js +23 -0
  189. package/src/index.d.ts +19 -0
  190. package/src/index.js +1 -1
  191. package/src/utils/common-translations.d.ts +5 -0
  192. package/src/utils/common-translations.js +1 -1
  193. package/src/utils/createmutationobserver.d.ts +13 -0
  194. package/src/utils/createmutationobserver.js +1 -1
  195. package/theme/annotation.css +1 -0
  196. package/theme/comment.css +31 -0
  197. package/theme/commentsarchive.css +40 -0
  198. package/theme/commentthread.css +68 -1
  199. package/theme/icons/add-comment.svg +1 -1
  200. package/theme/icons/comments-archive.svg +11 -0
  201. package/theme/icons/undo.svg +1 -0
  202. package/theme/sidebar.css +4 -0
@@ -36,14 +36,30 @@ msgctxt "The placeholder for the reply field."
36
36
  msgid "Reply..."
37
37
  msgstr "Відповісти..."
38
38
 
39
+ msgctxt "The placeholder for the reply field when the comment thread is resolved."
40
+ msgid "Reply to reopen discussion..."
41
+ msgstr "Відповісти, щоб відновити обговорення..."
42
+
39
43
  msgctxt "The placeholder for the new commend field."
40
44
  msgid "Write a comment..."
41
45
  msgstr "Написати коментар..."
42
46
 
47
+ msgctxt "The information that comment was made on element and has no context"
48
+ msgid "Comment was made on an element"
49
+ msgstr "Було зроблено коментар до елемента"
50
+
43
51
  msgctxt "The label for the button that enables editing a comment."
44
52
  msgid "Edit"
45
53
  msgstr "Редагувати"
46
54
 
55
+ msgctxt "The label for the button that resolves a comment thread."
56
+ msgid "Resolve"
57
+ msgstr "Вирішити"
58
+
59
+ msgctxt "The label for the button that reopens a resolved comment thread."
60
+ msgid "Reopen"
61
+ msgstr "Відновити"
62
+
47
63
  msgctxt "The label for the button that deletes a comment."
48
64
  msgid "Remove"
49
65
  msgstr "Видалити"
@@ -60,6 +76,10 @@ msgctxt "The confirmation message shown after pressing the delete comment thread
60
76
  msgid "Delete comment thread?"
61
77
  msgstr "Видати ланцюжок коментарів?"
62
78
 
79
+ msgctxt "A message informing that the comment has been resolved"
80
+ msgid "Marked as resolved"
81
+ msgstr "Позначено як вирішене"
82
+
63
83
  msgctxt "The tooltip for the comment toolbar button."
64
84
  msgid "Comment"
65
85
  msgstr "Коментар"
@@ -83,3 +103,11 @@ msgstr "Показане ім'я автора походить із зовніш
83
103
  msgctxt "The additional information that displayed author name comes from imported Word file."
84
104
  msgid "EXTERNAL_IMPORT_WORD_AVATAR"
85
105
  msgstr "Показане ім'я автора походить із документу Word імпортованого %0"
106
+
107
+ msgctxt "The label for the comments archive dropdown UI."
108
+ msgid "COMMENTS_ARCHIVE"
109
+ msgstr "Архів коментарів"
110
+
111
+ msgctxt "The information that comments archive is empty."
112
+ msgid "EMPTY_COMMENTS_ARCHIVE"
113
+ msgstr "Немає архівних гілок коментарів."
@@ -34,14 +34,30 @@ msgctxt "The placeholder for the reply field."
34
34
  msgid "Reply..."
35
35
  msgstr "جواب۔۔۔"
36
36
 
37
+ msgctxt "The placeholder for the reply field when the comment thread is resolved."
38
+ msgid "Reply to reopen discussion..."
39
+ msgstr ""
40
+
37
41
  msgctxt "The placeholder for the new commend field."
38
42
  msgid "Write a comment..."
39
43
  msgstr "تبصرہ کریں۔۔۔"
40
44
 
45
+ msgctxt "The information that comment was made on element and has no context"
46
+ msgid "Comment was made on an element"
47
+ msgstr ""
48
+
41
49
  msgctxt "The label for the button that enables editing a comment."
42
50
  msgid "Edit"
43
51
  msgstr "ترمیم"
44
52
 
53
+ msgctxt "The label for the button that resolves a comment thread."
54
+ msgid "Resolve"
55
+ msgstr ""
56
+
57
+ msgctxt "The label for the button that reopens a resolved comment thread."
58
+ msgid "Reopen"
59
+ msgstr ""
60
+
45
61
  msgctxt "The label for the button that deletes a comment."
46
62
  msgid "Remove"
47
63
  msgstr "حذف کریں"
@@ -58,6 +74,10 @@ msgctxt "The confirmation message shown after pressing the delete comment thread
58
74
  msgid "Delete comment thread?"
59
75
  msgstr "تبصرے کا دھاگہ حذف کریں؟"
60
76
 
77
+ msgctxt "A message informing that the comment has been resolved"
78
+ msgid "Marked as resolved"
79
+ msgstr ""
80
+
61
81
  msgctxt "The tooltip for the comment toolbar button."
62
82
  msgid "Comment"
63
83
  msgstr "تبصرہ"
@@ -81,3 +101,11 @@ msgstr ""
81
101
  msgctxt "The additional information that displayed author name comes from imported Word file."
82
102
  msgid "EXTERNAL_IMPORT_WORD_AVATAR"
83
103
  msgstr ""
104
+
105
+ msgctxt "The label for the comments archive dropdown UI."
106
+ msgid "COMMENTS_ARCHIVE"
107
+ msgstr ""
108
+
109
+ msgctxt "The information that comments archive is empty."
110
+ msgid "EMPTY_COMMENTS_ARCHIVE"
111
+ msgstr ""
@@ -33,14 +33,30 @@ msgctxt "The placeholder for the reply field."
33
33
  msgid "Reply..."
34
34
  msgstr "Trả lời..."
35
35
 
36
+ msgctxt "The placeholder for the reply field when the comment thread is resolved."
37
+ msgid "Reply to reopen discussion..."
38
+ msgstr "Trả lời để mở lại cuộc thảo luận..."
39
+
36
40
  msgctxt "The placeholder for the new commend field."
37
41
  msgid "Write a comment..."
38
42
  msgstr "Viết bình luận..."
39
43
 
44
+ msgctxt "The information that comment was made on element and has no context"
45
+ msgid "Comment was made on an element"
46
+ msgstr "Bình luận được tạo trên một yếu tố"
47
+
40
48
  msgctxt "The label for the button that enables editing a comment."
41
49
  msgid "Edit"
42
50
  msgstr "Chỉnh sửa"
43
51
 
52
+ msgctxt "The label for the button that resolves a comment thread."
53
+ msgid "Resolve"
54
+ msgstr "Xử lí"
55
+
56
+ msgctxt "The label for the button that reopens a resolved comment thread."
57
+ msgid "Reopen"
58
+ msgstr "Mở lại"
59
+
44
60
  msgctxt "The label for the button that deletes a comment."
45
61
  msgid "Remove"
46
62
  msgstr "Xóa"
@@ -57,6 +73,10 @@ msgctxt "The confirmation message shown after pressing the delete comment thread
57
73
  msgid "Delete comment thread?"
58
74
  msgstr "Xóa chuỗi bình luận?"
59
75
 
76
+ msgctxt "A message informing that the comment has been resolved"
77
+ msgid "Marked as resolved"
78
+ msgstr "Đánh dấu là đã xử lí"
79
+
60
80
  msgctxt "The tooltip for the comment toolbar button."
61
81
  msgid "Comment"
62
82
  msgstr "Bình luận"
@@ -80,3 +100,11 @@ msgstr "Tên tác giả được hiển thị đến từ nguồn bên ngoài (
80
100
  msgctxt "The additional information that displayed author name comes from imported Word file."
81
101
  msgid "EXTERNAL_IMPORT_WORD_AVATAR"
82
102
  msgstr "Tên tác giả được hiển thị đến từ một tài liệu Word do %0 nhập"
103
+
104
+ msgctxt "The label for the comments archive dropdown UI."
105
+ msgid "COMMENTS_ARCHIVE"
106
+ msgstr "Kho lưu trữ bình luận"
107
+
108
+ msgctxt "The information that comments archive is empty."
109
+ msgid "EMPTY_COMMENTS_ARCHIVE"
110
+ msgstr "Không có chủ đề bình luận nào được lưu trữ."
@@ -33,14 +33,30 @@ msgctxt "The placeholder for the reply field."
33
33
  msgid "Reply..."
34
34
  msgstr "回复..."
35
35
 
36
+ msgctxt "The placeholder for the reply field when the comment thread is resolved."
37
+ msgid "Reply to reopen discussion..."
38
+ msgstr "回复以重新开启讨论……"
39
+
36
40
  msgctxt "The placeholder for the new commend field."
37
41
  msgid "Write a comment..."
38
42
  msgstr "编写评论..."
39
43
 
44
+ msgctxt "The information that comment was made on element and has no context"
45
+ msgid "Comment was made on an element"
46
+ msgstr "对元素进行了评论"
47
+
40
48
  msgctxt "The label for the button that enables editing a comment."
41
49
  msgid "Edit"
42
50
  msgstr "编辑"
43
51
 
52
+ msgctxt "The label for the button that resolves a comment thread."
53
+ msgid "Resolve"
54
+ msgstr "解决"
55
+
56
+ msgctxt "The label for the button that reopens a resolved comment thread."
57
+ msgid "Reopen"
58
+ msgstr "重新开启"
59
+
44
60
  msgctxt "The label for the button that deletes a comment."
45
61
  msgid "Remove"
46
62
  msgstr "删除"
@@ -57,6 +73,10 @@ msgctxt "The confirmation message shown after pressing the delete comment thread
57
73
  msgid "Delete comment thread?"
58
74
  msgstr "删除这组评论?"
59
75
 
76
+ msgctxt "A message informing that the comment has been resolved"
77
+ msgid "Marked as resolved"
78
+ msgstr "标记为已解决"
79
+
60
80
  msgctxt "The tooltip for the comment toolbar button."
61
81
  msgid "Comment"
62
82
  msgstr "评论"
@@ -80,3 +100,11 @@ msgstr "显示的作者名来自(%0 添加的)外部来源"
80
100
  msgctxt "The additional information that displayed author name comes from imported Word file."
81
101
  msgid "EXTERNAL_IMPORT_WORD_AVATAR"
82
102
  msgstr "显示的作者名来自 %0 导入的 Word 文件"
103
+
104
+ msgctxt "The label for the comments archive dropdown UI."
105
+ msgid "COMMENTS_ARCHIVE"
106
+ msgstr "评论存档"
107
+
108
+ msgctxt "The information that comments archive is empty."
109
+ msgid "EMPTY_COMMENTS_ARCHIVE"
110
+ msgstr "没有已存档的评论。"
@@ -33,14 +33,30 @@ msgctxt "The placeholder for the reply field."
33
33
  msgid "Reply..."
34
34
  msgstr "回覆..."
35
35
 
36
+ msgctxt "The placeholder for the reply field when the comment thread is resolved."
37
+ msgid "Reply to reopen discussion..."
38
+ msgstr "回覆以重新開啟討論..."
39
+
36
40
  msgctxt "The placeholder for the new commend field."
37
41
  msgid "Write a comment..."
38
42
  msgstr "撰寫留言..."
39
43
 
44
+ msgctxt "The information that comment was made on element and has no context"
45
+ msgid "Comment was made on an element"
46
+ msgstr "對元件進行的留言"
47
+
40
48
  msgctxt "The label for the button that enables editing a comment."
41
49
  msgid "Edit"
42
50
  msgstr "編輯"
43
51
 
52
+ msgctxt "The label for the button that resolves a comment thread."
53
+ msgid "Resolve"
54
+ msgstr "解決"
55
+
56
+ msgctxt "The label for the button that reopens a resolved comment thread."
57
+ msgid "Reopen"
58
+ msgstr "重新開啟"
59
+
44
60
  msgctxt "The label for the button that deletes a comment."
45
61
  msgid "Remove"
46
62
  msgstr "刪除"
@@ -57,6 +73,10 @@ msgctxt "The confirmation message shown after pressing the delete comment thread
57
73
  msgid "Delete comment thread?"
58
74
  msgstr "刪除討論串?"
59
75
 
76
+ msgctxt "A message informing that the comment has been resolved"
77
+ msgid "Marked as resolved"
78
+ msgstr "已標記為解決"
79
+
60
80
  msgctxt "The tooltip for the comment toolbar button."
61
81
  msgid "Comment"
62
82
  msgstr "留言"
@@ -80,3 +100,11 @@ msgstr "顯示的作者名稱來自外部來源(由 %0 新增)"
80
100
  msgctxt "The additional information that displayed author name comes from imported Word file."
81
101
  msgid "EXTERNAL_IMPORT_WORD_AVATAR"
82
102
  msgstr "顯示的作者名稱來自由 %0 匯入的 Word 文件"
103
+
104
+ msgctxt "The label for the comments archive dropdown UI."
105
+ msgid "COMMENTS_ARCHIVE"
106
+ msgstr "留言封存紀錄"
107
+
108
+ msgctxt "The information that comments archive is empty."
109
+ msgid "EMPTY_COMMENTS_ARCHIVE"
110
+ msgstr "無封存的留言串。"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-comments",
3
- "version": "36.0.1",
3
+ "version": "37.0.0",
4
4
  "description": "Collaborative comments feature for CKEditor 5.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "CKSource (http://cksource.com/)",
@@ -30,9 +30,25 @@
30
30
  "discussions"
31
31
  ],
32
32
  "main": "src/index.js",
33
+ "files": [
34
+ "build",
35
+ "lang",
36
+ "src/**/*.js",
37
+ "src/**/*.d.ts",
38
+ "theme",
39
+ "ckeditor5-metadata.json",
40
+ "CHANGELOG.md"
41
+ ],
42
+ "scripts": {
43
+ "dll:build": "webpack",
44
+ "build": "tsc -p ./tsconfig.json",
45
+ "postversion": "npm run build"
46
+ },
33
47
  "dependencies": {
34
- "ckeditor5": "^36.0.1",
48
+ "ckeditor5": "^37.0.0",
35
49
  "ckeditor5-collaboration": "^36.0.1",
36
50
  "lodash-es": "^4.17.11"
37
- }
51
+ },
52
+ "types": "src/index.d.ts",
53
+ "obfuscated": true
38
54
  }
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @module comments/annotations/annotation
3
+ * @publicApi
4
+ */
5
+ import { Rect, Collection } from 'ckeditor5/src/utils';
6
+ import type { View } from 'ckeditor5/src/ui';
7
+ import type AnnotationView from './view/annotationview';
8
+ import type { AnnotationOptions } from './annotations';
9
+ declare const Annotation_base: {
10
+ new (): import("ckeditor5/src/utils").Observable;
11
+ prototype: import("ckeditor5/src/utils").Observable;
12
+ };
13
+ /**
14
+ * Represents an annotation.
15
+ *
16
+ * Annotation is an entity that combines an {@link module:comments/annotations/view/annotationview~AnnotationView}
17
+ * and an annotation target (a DOM element or a {@link module:utils/dom/rect~Rect}) to which the annotation is bound.
18
+ */
19
+ export default class Annotation extends Annotation_base {
20
+ /**
21
+ * The visibility of the annotation. Annotations that are not visible, are filtered from Annotation UI collections.
22
+ *
23
+ * @observable
24
+ */
25
+ isVisible: boolean;
26
+ /**
27
+ * The annotation view.
28
+ */
29
+ view: AnnotationView;
30
+ /**
31
+ * A collection of DOM elements which, when focused, make the annotation active.
32
+ *
33
+ * By default, this collection only contains the annotation view element.
34
+ * It can be extended with custom targets that will be tracked by the annotation focus tracking system.
35
+ */
36
+ focusableElements: Collection<HTMLElement>;
37
+ /**
38
+ * Creates an instance of the {@link module:comments/annotations/annotation~Annotation}.
39
+ */
40
+ constructor({ view, target, type, isVisible }: AnnotationOptions);
41
+ /**
42
+ * The type of the annotation.
43
+ */
44
+ get type(): string;
45
+ /**
46
+ * The annotation inner view.
47
+ *
48
+ * It is the view that is wrapped by the annotation view.*
49
+ */
50
+ get innerView(): View;
51
+ /**
52
+ * The annotation target to which the annotation view should be pinned.
53
+ *
54
+ * It can be an array of DOM elements or {@link module:utils/dom/rect~Rect a rect instance} or `null`.
55
+ */
56
+ get target(): Rect | Array<HTMLElement> | null;
57
+ /**
58
+ * The position and dimensions of the annotation target to which the annotation is bound.
59
+ */
60
+ get targetRect(): Rect | null;
61
+ /**
62
+ * The state of the annotation.
63
+ */
64
+ get isActive(): boolean;
65
+ set isActive(value: boolean);
66
+ /**
67
+ * Updates the target rect in the annotation view instance.
68
+ */
69
+ updateTargetRect(): void;
70
+ /**
71
+ * Clears all event listeners and internal collections.
72
+ */
73
+ destroy(): void;
74
+ /**
75
+ * Refreshes the visibility of the annotation based on the visibility of the annotation target.
76
+ *
77
+ * It sets the {@link #isVisible} property when the target is not attached to DOM or if the target or its descendant has
78
+ * set the `display` attribute to `none`.
79
+ *
80
+ * This method only updates an annotation if the annotation target is an HTML Element.
81
+ */
82
+ refreshVisibility(): void;
83
+ }
84
+ type Target = Rect | HTMLElement | null;
85
+ export type AnnotationTarget = Target | (() => Target | Array<Target>);
86
+ export {};
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x5cbb=['add','refreshVisibility','view','render','_getNormalizedTarget','remove','destroy','nodeType','mainView','innerView','function','target','focusTracker','_id','_type','every','type','filter','item','targetRect','getClientRects','isVisible','isActive','offsetParent','focusableElements','stopListening','_assertCorrectTarget','updateTargetRect','length','_target','element'];(function(_0x4aa9ea,_0x5cbbcf){const _0x459f19=function(_0x39eb5a){while(--_0x39eb5a){_0x4aa9ea['push'](_0x4aa9ea['shift']());}};_0x459f19(++_0x5cbbcf);}(_0x5cbb,0x19d));const _0x459f=function(_0x4aa9ea,_0x5cbbcf){_0x4aa9ea=_0x4aa9ea-0x0;let _0x459f19=_0x5cbb[_0x4aa9ea];return _0x459f19;};import{CKEditorError as _0x3230cb,Rect as _0x31c47d,Collection as _0x24fb1f,mix as _0x44559c,ObservableMixin as _0x5f44f2}from'ckeditor5/src/utils';export default class d{constructor({view:_0x5619b3,target:_0x5349fa,type:_0x45a2d1,isVisible:_0x240135=!0x0}){this[_0x459f('0x17')]=_0x5619b3,this['view'][_0x459f('0x14')]||this['view'][_0x459f('0x18')](),this[_0x459f('0x4')]=_0x45a2d1,this[_0x459f('0x13')]=_0x5349fa,d[_0x459f('0x10')](this['_getNormalizedTarget']()),this[_0x459f('0xe')]=new _0x24fb1f([this['view'][_0x459f('0x14')]],{'idProperty':_0x459f('0x3')}),this[_0x459f('0xe')]['on'](_0x459f('0x15'),(_0x3a130f,_0xd019c1)=>{this[_0x459f('0x17')][_0x459f('0x2')]['add'](_0xd019c1);}),this['focusableElements']['on'](_0x459f('0x1a'),(_0x2a319c,_0x56eb7c)=>{this[_0x459f('0x17')]['focusTracker'][_0x459f('0x1a')](_0x56eb7c);}),this['set'](_0x459f('0xb'),_0x240135);}get[_0x459f('0x6')](){return'function'==typeof this[_0x459f('0x4')]?this['_type']():this[_0x459f('0x4')];}get[_0x459f('0x1e')](){return this[_0x459f('0x17')][_0x459f('0x1d')];}get[_0x459f('0x1')](){const _0x53362d=this[_0x459f('0x19')]();return d[_0x459f('0x10')](_0x53362d),_0x53362d;}get[_0x459f('0x9')](){const _0x1fed67=this['target'];if(null===_0x1fed67)return null;if(_0x1fed67 instanceof _0x31c47d)return _0x1fed67;const _0x51d11d=_0x1fed67[_0x459f('0x7')](_0x7dfca4=>function(_0x28253c){const _0x2ebd16=_0x28253c[_0x459f('0xd')];if(_0x2ebd16)return!0x0;const _0x41f11a=_0x28253c[_0x459f('0xa')]()[_0x459f('0x8')](0x0);return!!_0x41f11a;}(_0x7dfca4));return 0x0===_0x51d11d[_0x459f('0x12')]?null:new _0x31c47d(_0x51d11d[0x0][_0x459f('0xa')]()['item'](0x0));}get[_0x459f('0xc')](){return this[_0x459f('0x17')][_0x459f('0xc')];}set[_0x459f('0xc')](_0x4382db){this[_0x459f('0x17')][_0x459f('0xc')]=_0x4382db,this['view']['mainView']['isActive']=_0x4382db;}[_0x459f('0x11')](){this[_0x459f('0x17')]['targetRect']=this[_0x459f('0x9')];}[_0x459f('0x1b')](){this[_0x459f('0xe')]['stopListening'](),this[_0x459f('0xe')]['clear'](),this[_0x459f('0xf')]();}[_0x459f('0x16')](){this['isVisible']=!!this[_0x459f('0x9')];}static[_0x459f('0x10')](_0x17d70c){if(!(null===_0x17d70c||_0x17d70c instanceof _0x31c47d||Array['isArray'](_0x17d70c)&&_0x17d70c[_0x459f('0x5')](_0x5d6383=>p(_0x5d6383))))throw new _0x3230cb('annotation-invalid-target',null,{'target':_0x17d70c});}['_getNormalizedTarget'](){let _0x4d3ce7=_0x459f('0x0')==typeof this[_0x459f('0x13')]?this[_0x459f('0x13')]():this[_0x459f('0x13')];return _0x4d3ce7=p(_0x4d3ce7)?[_0x4d3ce7]:_0x4d3ce7,_0x4d3ce7;}}function p(_0x140d8a){return null!==_0x140d8a&&'object'==typeof _0x140d8a&&0x1===_0x140d8a[_0x459f('0x1c')];}_0x44559c(d,_0x5f44f2);
23
+ const _0x4219=['filter','item','mainView','targetRect','function','focusableElements','getClientRects','set','isActive','element','updateTargetRect','focusTracker','destroy','target','_assertCorrectTarget','annotation-invalid-target','_target','clear','_getNormalizedTarget','add','offsetParent','_type','isVisible','view','stopListening','remove','length','every','refreshVisibility','nodeType','innerView'];(function(_0xc09e6e,_0x421957){const _0x2f3c02=function(_0x581287){while(--_0x581287){_0xc09e6e['push'](_0xc09e6e['shift']());}};_0x2f3c02(++_0x421957);}(_0x4219,0x96));const _0x2f3c=function(_0xc09e6e,_0x421957){_0xc09e6e=_0xc09e6e-0x0;let _0x2f3c02=_0x4219[_0xc09e6e];return _0x2f3c02;};import{CKEditorError as _0x39190c,Rect as _0x100afd,Collection as _0x13ddaf,ObservableMixin as _0x146ec4}from'ckeditor5/src/utils';export default class d extends _0x146ec4(){constructor({view:_0x551cab,target:_0x3d17d9,type:_0x111136,isVisible:_0x272e01=!0x0}){super(),this['view']=_0x551cab,this[_0x2f3c('0x1c')][_0x2f3c('0xe')]||this[_0x2f3c('0x1c')]['render'](),this[_0x2f3c('0x1a')]=_0x111136,this[_0x2f3c('0x15')]=_0x3d17d9,d[_0x2f3c('0x13')](this[_0x2f3c('0x17')]()),this['focusableElements']=new _0x13ddaf([this['view'][_0x2f3c('0xe')]],{'idProperty':'_id'}),this[_0x2f3c('0xa')]['on'](_0x2f3c('0x18'),(_0x4ae4b9,_0x381d9d)=>{this[_0x2f3c('0x1c')][_0x2f3c('0x10')][_0x2f3c('0x18')](_0x381d9d);}),this[_0x2f3c('0xa')]['on'](_0x2f3c('0x1e'),(_0x206f6c,_0x2217ca)=>{this[_0x2f3c('0x1c')][_0x2f3c('0x10')][_0x2f3c('0x1e')](_0x2217ca);}),this[_0x2f3c('0xc')](_0x2f3c('0x1b'),_0x272e01);}get['type'](){return'function'==typeof this[_0x2f3c('0x1a')]?this[_0x2f3c('0x1a')]():this[_0x2f3c('0x1a')];}get[_0x2f3c('0x4')](){return this[_0x2f3c('0x1c')][_0x2f3c('0x7')];}get[_0x2f3c('0x12')](){const _0x3c2670=this[_0x2f3c('0x17')]();return d[_0x2f3c('0x13')](_0x3c2670),_0x3c2670;}get['targetRect'](){const _0x5c73aa=this['target'];if(null===_0x5c73aa)return null;if(_0x5c73aa instanceof _0x100afd)return _0x5c73aa;const _0x32fc63=_0x5c73aa[_0x2f3c('0x5')](_0x8239df=>function(_0x928fc9){const _0x3fd192=_0x928fc9[_0x2f3c('0x19')];if(_0x3fd192)return!0x0;const _0x2417d5=_0x928fc9['getClientRects']()[_0x2f3c('0x6')](0x0);return!!_0x2417d5;}(_0x8239df));return 0x0===_0x32fc63[_0x2f3c('0x0')]?null:new _0x100afd(_0x32fc63[0x0][_0x2f3c('0xb')]()[_0x2f3c('0x6')](0x0));}get[_0x2f3c('0xd')](){return this[_0x2f3c('0x1c')][_0x2f3c('0xd')];}set[_0x2f3c('0xd')](_0x1078e0){this['view']['isActive']=_0x1078e0,this[_0x2f3c('0x1c')][_0x2f3c('0x7')]['isActive']=_0x1078e0;}[_0x2f3c('0xf')](){this[_0x2f3c('0x1c')][_0x2f3c('0x8')]=this[_0x2f3c('0x8')];}[_0x2f3c('0x11')](){this['focusableElements'][_0x2f3c('0x1d')](),this[_0x2f3c('0xa')][_0x2f3c('0x16')](),this[_0x2f3c('0x1d')]();}[_0x2f3c('0x2')](){this['isVisible']=!!this['targetRect'];}static[_0x2f3c('0x13')](_0x184f4b){if(!(null===_0x184f4b||_0x184f4b instanceof _0x100afd||Array['isArray'](_0x184f4b)&&_0x184f4b[_0x2f3c('0x1')](_0x29490f=>y(_0x29490f))))throw new _0x39190c(_0x2f3c('0x14'),null,{'target':_0x184f4b});}['_getNormalizedTarget'](){const _0x1e029e=_0x2f3c('0x9')==typeof this['_target']?this[_0x2f3c('0x15')]():this[_0x2f3c('0x15')];return y(_0x1e029e)?[_0x1e029e]:_0x1e029e;}}function y(_0x2c4faa){return null!==_0x2c4faa&&'object'==typeof _0x2c4faa&&_0x2f3c('0x3')in _0x2c4faa&&0x1===_0x2c4faa['nodeType'];}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @module comments/annotations/annotationcollection
3
+ * @publicApi
4
+ */
5
+ import { Collection } from 'ckeditor5/src/utils';
6
+ import type { View } from 'ckeditor5/src/ui';
7
+ import type Annotation from './annotation';
8
+ /**
9
+ * A collection of {@link module:comments/annotations/annotation~Annotation annotations}.
10
+ *
11
+ * It implements methods for managing annotations and creates a focus tracker for them to make it easier to manage
12
+ * the focus for all annotations.
13
+ *
14
+ * `AnnotationCollection` fires {@link module:comments/annotations/annotationcollection~AnnotationCollection#event:focus} when an annotation
15
+ * becomes focused and {@link module:comments/annotations/annotationcollection~AnnotationCollection#event:blur} when all annotations
16
+ * lose focus.
17
+ */
18
+ export default class AnnotationCollection extends Collection<Annotation> {
19
+ /**
20
+ * @param annotations Initial annotations.
21
+ */
22
+ constructor(annotations?: Iterable<Annotation>);
23
+ /**
24
+ * Equals to `true` when one of the annotation in the collection is focused.
25
+ */
26
+ get isFocused(): boolean;
27
+ /**
28
+ * Adds an annotation to the collection.
29
+ */
30
+ add(annotation: Annotation): this;
31
+ /**
32
+ * Removes the annotation from the collection.
33
+ */
34
+ remove(annotation: Annotation): Annotation;
35
+ /**
36
+ * Gets the annotation for a given annotation view's inner view.
37
+ */
38
+ getByInnerView(innerView: View): Annotation | undefined;
39
+ /**
40
+ * Gets the annotation for a given annotation view.
41
+ */
42
+ getByView(view: View): Annotation | undefined;
43
+ /**
44
+ * Destroys all bindings and clears the collection.
45
+ */
46
+ destroy(): void;
47
+ /**
48
+ * Refreshes the positioning of all annotations and sorts them topmost and leftmost.
49
+ */
50
+ refreshPositioning(): void;
51
+ }
52
+ /**
53
+ * Fired when an annotation becomes active.
54
+ *
55
+ * @eventName ~AnnotationCollection#focus
56
+ * @param annotation An annotation that was focused.
57
+ */
58
+ export type AnnotationFocusEvent = {
59
+ name: 'focus';
60
+ args: [annotation: Annotation];
61
+ };
62
+ /**
63
+ * Fired when all annotations become blurred.
64
+ *
65
+ * @eventName ~AnnotationCollection#blur
66
+ */
67
+ export type AnnotationBlurEvent = {
68
+ name: 'blur';
69
+ args: [];
70
+ };
71
+ /**
72
+ * A helper function that binds two {@link module:comments/annotations/annotationcollection~AnnotationCollection AnnotationCollection}s
73
+ * and allows filtering items based on the passed callback.
74
+ *
75
+ * Since {@link module:comments/annotations/annotationcollection~AnnotationCollection#refreshPositioning}
76
+ * sorts the annotations by removing and inserting items, the binding implemented by the `bindTo()` method is lost. This is why
77
+ * this helper needs to be used.
78
+ *
79
+ * This helper is used by the annotations UIs to filter which annotations from the
80
+ * {@link module:comments/annotations/annotations~Annotations#collection main annotation collection} should be handled by
81
+ * a given annotations UI.
82
+ *
83
+ * @param `options.source` The source collection
84
+ * from which the annotations will be taken.
85
+ * @param `options.target` The target collection
86
+ * that will be synced to the source collection.
87
+ * @param options.filter Filtering function that gets an annotation and should return `true` if the annotation should be
88
+ * copied to the `target` collection.
89
+ */
90
+ export declare function bindAnnotationCollections({ source, target, filter }: {
91
+ source: AnnotationCollection;
92
+ target: AnnotationCollection;
93
+ filter: (annotation: Annotation) => boolean;
94
+ }): void;
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x1d75=['delete','get','_sort','innerView','_viewToAnnotation','blur','from','set','_focusTracker','targetRect','add','focusableElements','_items','focus','left','fire','getIndex','clear','_innerViewToAnnotation','stopListening','destroy','isFocused','remove','updateTargetRect','change:isFocused','view','has','listenTo','length','top','annotationcollection-not-existing-item','annotationcollection-duplicated-item','focusTracker','_getOrderInContent'];(function(_0x29065e,_0x1d7561){const _0x5ca990=function(_0x3add6a){while(--_0x3add6a){_0x29065e['push'](_0x29065e['shift']());}};_0x5ca990(++_0x1d7561);}(_0x1d75,0x110));const _0x5ca9=function(_0x29065e,_0x1d7561){_0x29065e=_0x29065e-0x0;let _0x5ca990=_0x1d75[_0x29065e];return _0x5ca990;};import{CKEditorError as _0x168375,Collection as _0x2f760d,FocusTracker as _0x4f0564}from'ckeditor5/src/utils';export default class x extends _0x2f760d{constructor(_0x256044=[]){super(),this[_0x5ca9('0x12')]=new Map(),this[_0x5ca9('0x4')]=new Map(),this[_0x5ca9('0x8')]=new _0x4f0564(),this[_0x5ca9('0x8')]['on'](_0x5ca9('0x18'),(_0x2a558b,_0x1cda4d,_0x31a795)=>{_0x31a795||this[_0x5ca9('0xf')](_0x5ca9('0x5'));});for(const _0x208adb of _0x256044)this[_0x5ca9('0xa')](_0x208adb);}get[_0x5ca9('0x15')](){return this[_0x5ca9('0x8')][_0x5ca9('0x15')];}[_0x5ca9('0xa')](_0x2815b9){if(this[_0x5ca9('0x1a')](_0x2815b9))throw new _0x168375(_0x5ca9('0x1f'),null);this[_0x5ca9('0x12')][_0x5ca9('0x7')](_0x2815b9[_0x5ca9('0x3')],_0x2815b9),this[_0x5ca9('0x4')][_0x5ca9('0x7')](_0x2815b9[_0x5ca9('0x19')],_0x2815b9);for(const _0x87403f of _0x2815b9[_0x5ca9('0xb')])this[_0x5ca9('0x8')][_0x5ca9('0xa')](_0x87403f);this[_0x5ca9('0x1b')](_0x2815b9[_0x5ca9('0xb')],'add',(_0x3b0b8d,_0x20a9e3)=>{this[_0x5ca9('0x8')][_0x5ca9('0xa')](_0x20a9e3);}),this[_0x5ca9('0x1b')](_0x2815b9[_0x5ca9('0xb')],'remove',(_0x1329be,_0x85c974)=>{this[_0x5ca9('0x8')][_0x5ca9('0x16')](_0x85c974);}),this[_0x5ca9('0x1b')](_0x2815b9['view'][_0x5ca9('0x20')],_0x5ca9('0x18'),(_0x5bc089,_0x1bd36b,_0x457b9a)=>{_0x457b9a&&this['fire'](_0x5ca9('0xd'),_0x2815b9);}),_0x2815b9[_0x5ca9('0x17')]();const _0x128b47=this[_0x5ca9('0x21')](_0x2815b9[_0x5ca9('0x19')][_0x5ca9('0x9')]);super[_0x5ca9('0xa')](_0x2815b9,_0x128b47);}['remove'](_0x41c10c){if(!this[_0x5ca9('0x1a')](_0x41c10c))throw new _0x168375(_0x5ca9('0x1e'),null);this[_0x5ca9('0x13')](_0x41c10c[_0x5ca9('0x19')][_0x5ca9('0x20')]),this['stopListening'](_0x41c10c[_0x5ca9('0xb')]);for(const _0x20d953 of _0x41c10c[_0x5ca9('0xb')])this['_focusTracker']['remove'](_0x20d953);this[_0x5ca9('0x4')][_0x5ca9('0x0')](_0x41c10c[_0x5ca9('0x19')]),this[_0x5ca9('0x12')][_0x5ca9('0x0')](_0x41c10c[_0x5ca9('0x3')]),super[_0x5ca9('0x16')](_0x41c10c);}['getByInnerView'](_0x5f28b1){return this[_0x5ca9('0x12')][_0x5ca9('0x1')](_0x5f28b1);}['getByView'](_0x43beff){return this['_viewToAnnotation']['get'](_0x43beff);}[_0x5ca9('0x14')](){super['clear'](),this[_0x5ca9('0x13')](),this['_innerViewToAnnotation'][_0x5ca9('0x11')](),this[_0x5ca9('0x4')][_0x5ca9('0x11')](),this['_focusTracker']['destroy']();}['refreshPositioning'](){for(const _0x5593fd of this)_0x5593fd['updateTargetRect']();this[_0x5ca9('0x2')]();}[_0x5ca9('0x2')](){const _0x411b83=Array[_0x5ca9('0x6')](this)['sort']((_0x5d4998,_0x39a42c)=>y(_0x5d4998[_0x5ca9('0x19')][_0x5ca9('0x9')],_0x39a42c[_0x5ca9('0x19')]['targetRect']));for(let _0x24c7f2=_0x411b83[_0x5ca9('0x1c')]-0x1;_0x24c7f2>0x0;_0x24c7f2--){const _0x506fa6=_0x411b83[_0x24c7f2];_0x24c7f2!==this[_0x5ca9('0x10')](_0x506fa6)&&(this['remove'](_0x506fa6),this[_0x5ca9('0xa')](_0x506fa6,_0x24c7f2));}}[_0x5ca9('0x21')](_0x501b51){let _0x1eed03=0x0;if(!_0x501b51)return this[_0x5ca9('0xc')]['length'];for(const _0x11e978 of this){const _0x5c37e8=_0x11e978[_0x5ca9('0x19')]['targetRect'];if(_0x5c37e8){if(y(_0x501b51,_0x5c37e8)<0x0)return _0x1eed03;_0x1eed03++;}}return _0x1eed03;}}export function bindAnnotationCollections({source:_0x11e2d3,target:_0x131a42,filter:_0x3cc393}){for(const _0x5979c0 of _0x11e2d3)_0x3cc393(_0x5979c0)&&_0x131a42[_0x5ca9('0xa')](_0x5979c0);_0x131a42['listenTo'](_0x11e2d3,_0x5ca9('0xa'),(_0x4a7981,_0x3530b7)=>{_0x3cc393(_0x3530b7)&&_0x131a42['add'](_0x3530b7);}),_0x131a42['listenTo'](_0x11e2d3,_0x5ca9('0x16'),(_0x581f4b,_0x405fca)=>{_0x131a42[_0x5ca9('0x1a')](_0x405fca)&&_0x131a42[_0x5ca9('0x16')](_0x405fca);});}function y(_0x4dac6e,_0x3ce51c){if(null===_0x4dac6e&&null===_0x3ce51c)return 0x0;if(null===_0x4dac6e)return-0x1;if(null===_0x3ce51c)return 0x1;const _0x3235d3=_0x4dac6e[_0x5ca9('0x1d')]-_0x3ce51c[_0x5ca9('0x1d')];return 0x0==_0x3235d3?_0x4dac6e[_0x5ca9('0xe')]-_0x3ce51c[_0x5ca9('0xe')]:_0x3235d3;}
23
+ const _0x533b=['get','from','add','_sort','_getOrderInContent','length','fire','top','remove','focus','getByInnerView','stopListening','listenTo','view','clear','_innerViewToAnnotation','annotationcollection-not-existing-item','getIndex','annotationcollection-duplicated-item','getByView','_focusTracker','focusableElements','blur','delete','has','refreshPositioning','updateTargetRect','set','innerView','change:isFocused','targetRect','_viewToAnnotation'];(function(_0x52f59f,_0x533bc1){const _0x5ca27c=function(_0x144e3c){while(--_0x144e3c){_0x52f59f['push'](_0x52f59f['shift']());}};_0x5ca27c(++_0x533bc1);}(_0x533b,0x1c0));const _0x5ca2=function(_0x52f59f,_0x533bc1){_0x52f59f=_0x52f59f-0x0;let _0x5ca27c=_0x533b[_0x52f59f];return _0x5ca27c;};import{CKEditorError as _0x3500a6,Collection as _0xcc458b,FocusTracker as _0x5a5bd2}from'ckeditor5/src/utils';export default class x extends _0xcc458b{constructor(_0x15cc32=[]){super(),this[_0x5ca2('0xf')]=new Map(),this[_0x5ca2('0x1f')]=new Map(),this[_0x5ca2('0x14')]=new _0x5a5bd2(),this[_0x5ca2('0x14')]['on'](_0x5ca2('0x1d'),(_0x30b14f,_0x77dba5,_0x56989a)=>{_0x56989a||this[_0x5ca2('0x6')](_0x5ca2('0x16'));});for(const _0x22e550 of _0x15cc32)this['add'](_0x22e550);}get['isFocused'](){return this['_focusTracker']['isFocused'];}['add'](_0x55427c){if(this[_0x5ca2('0x18')](_0x55427c))throw new _0x3500a6(_0x5ca2('0x12'),null);this[_0x5ca2('0xf')]['set'](_0x55427c[_0x5ca2('0x1c')],_0x55427c),this[_0x5ca2('0x1f')][_0x5ca2('0x1b')](_0x55427c[_0x5ca2('0xd')],_0x55427c);for(const _0x336fab of _0x55427c['focusableElements'])this[_0x5ca2('0x14')][_0x5ca2('0x2')](_0x336fab);this[_0x5ca2('0xc')](_0x55427c['focusableElements'],_0x5ca2('0x2'),(_0x409890,_0x46bb3c)=>{this[_0x5ca2('0x14')]['add'](_0x46bb3c);}),this['listenTo'](_0x55427c[_0x5ca2('0x15')],_0x5ca2('0x8'),(_0x53c979,_0x50c393)=>{this[_0x5ca2('0x14')][_0x5ca2('0x8')](_0x50c393);}),this[_0x5ca2('0xc')](_0x55427c['view']['focusTracker'],_0x5ca2('0x1d'),(_0x34ef4b,_0x2ce32d,_0x22b5c0)=>{_0x22b5c0&&this[_0x5ca2('0x6')](_0x5ca2('0x9'),_0x55427c);}),_0x55427c[_0x5ca2('0x1a')]();const _0x353f69=this[_0x5ca2('0x4')](_0x55427c[_0x5ca2('0xd')][_0x5ca2('0x1e')]);return super[_0x5ca2('0x2')](_0x55427c,_0x353f69);}[_0x5ca2('0x8')](_0x268392){if(!this[_0x5ca2('0x18')](_0x268392))throw new _0x3500a6(_0x5ca2('0x10'),null);this[_0x5ca2('0xb')](_0x268392[_0x5ca2('0xd')]['focusTracker']),this[_0x5ca2('0xb')](_0x268392['focusableElements']);for(const _0x453fb5 of _0x268392[_0x5ca2('0x15')])this[_0x5ca2('0x14')][_0x5ca2('0x8')](_0x453fb5);return this[_0x5ca2('0x1f')][_0x5ca2('0x17')](_0x268392[_0x5ca2('0xd')]),this[_0x5ca2('0xf')][_0x5ca2('0x17')](_0x268392[_0x5ca2('0x1c')]),super[_0x5ca2('0x8')](_0x268392);}[_0x5ca2('0xa')](_0x4a7429){return this['_innerViewToAnnotation'][_0x5ca2('0x0')](_0x4a7429);}[_0x5ca2('0x13')](_0x51a91a){return this[_0x5ca2('0x1f')][_0x5ca2('0x0')](_0x51a91a);}['destroy'](){super[_0x5ca2('0xe')](),this[_0x5ca2('0xb')](),this[_0x5ca2('0xf')][_0x5ca2('0xe')](),this[_0x5ca2('0x1f')][_0x5ca2('0xe')](),this['_focusTracker']['destroy']();}[_0x5ca2('0x19')](){for(const _0xf3f0f8 of this)_0xf3f0f8[_0x5ca2('0x1a')]();this[_0x5ca2('0x3')]();}['_sort'](){const _0x36a32b=Array[_0x5ca2('0x1')](this)['sort']((_0x352002,_0x3aa1e0)=>v(_0x352002['view'][_0x5ca2('0x1e')],_0x3aa1e0[_0x5ca2('0xd')][_0x5ca2('0x1e')]));for(let _0x3b819d=_0x36a32b['length']-0x1;_0x3b819d>0x0;_0x3b819d--){const _0x243329=_0x36a32b[_0x3b819d];_0x3b819d!==this[_0x5ca2('0x11')](_0x243329)&&(this[_0x5ca2('0x8')](_0x243329),this[_0x5ca2('0x2')](_0x243329));}}[_0x5ca2('0x4')](_0x591b78){let _0x20d20d=0x0;if(!_0x591b78)return this[_0x5ca2('0x5')];for(const _0xd35c96 of this){const _0x3f6f17=_0xd35c96[_0x5ca2('0xd')][_0x5ca2('0x1e')];if(_0x3f6f17){if(v(_0x591b78,_0x3f6f17)<0x0)return _0x20d20d;_0x20d20d++;}}return _0x20d20d;}}export function bindAnnotationCollections({source:_0xee54f8,target:_0x57a66e,filter:_0x34e3a9}){for(const _0x1331ff of _0xee54f8)_0x34e3a9(_0x1331ff)&&_0x57a66e[_0x5ca2('0x2')](_0x1331ff);_0x57a66e[_0x5ca2('0xc')](_0xee54f8,'add',(_0x5df793,_0x941097)=>{_0x34e3a9(_0x941097)&&_0x57a66e[_0x5ca2('0x2')](_0x941097);}),_0x57a66e['listenTo'](_0xee54f8,_0x5ca2('0x8'),(_0x1cbb6e,_0x5951b4)=>{_0x57a66e[_0x5ca2('0x18')](_0x5951b4)&&_0x57a66e['remove'](_0x5951b4);});}function v(_0x163526,_0x3c8709){if(null===_0x163526&&null===_0x3c8709)return 0x0;if(null===_0x163526)return-0x1;if(null===_0x3c8709)return 0x1;const _0x53cff0=_0x163526['top']-_0x3c8709[_0x5ca2('0x7')];return 0x0==_0x53cff0?_0x163526['left']-_0x3c8709['left']:_0x53cff0;}