@ckeditor/ckeditor5-real-time-collaboration 44.1.0 → 44.2.0-alpha.1

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 (367) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +1 -1
  3. package/build/real-time-collaboration.js +2 -2
  4. package/dist/index-content.css +2 -2
  5. package/dist/index-editor.css +2 -2
  6. package/dist/index.css +9 -9
  7. package/dist/index.js +7 -7
  8. package/dist/translations/af.d.ts +2 -2
  9. package/dist/translations/af.js +2 -2
  10. package/dist/translations/af.umd.js +2 -2
  11. package/dist/translations/ar.d.ts +2 -2
  12. package/dist/translations/ar.js +2 -2
  13. package/dist/translations/ar.umd.js +2 -2
  14. package/dist/translations/ast.d.ts +2 -2
  15. package/dist/translations/ast.js +2 -2
  16. package/dist/translations/ast.umd.js +2 -2
  17. package/dist/translations/az.d.ts +2 -2
  18. package/dist/translations/az.js +2 -2
  19. package/dist/translations/az.umd.js +2 -2
  20. package/dist/translations/bg.d.ts +2 -2
  21. package/dist/translations/bg.js +2 -2
  22. package/dist/translations/bg.umd.js +2 -2
  23. package/dist/translations/bn.d.ts +2 -2
  24. package/dist/translations/bn.js +2 -2
  25. package/dist/translations/bn.umd.js +2 -2
  26. package/dist/translations/bs.d.ts +2 -2
  27. package/dist/translations/bs.js +2 -2
  28. package/dist/translations/bs.umd.js +2 -2
  29. package/dist/translations/ca.d.ts +2 -2
  30. package/dist/translations/ca.js +2 -2
  31. package/dist/translations/ca.umd.js +2 -2
  32. package/dist/translations/cs.d.ts +2 -2
  33. package/dist/translations/cs.js +2 -2
  34. package/dist/translations/cs.umd.js +2 -2
  35. package/dist/translations/da.d.ts +2 -2
  36. package/dist/translations/da.js +2 -2
  37. package/dist/translations/da.umd.js +2 -2
  38. package/dist/translations/de-ch.d.ts +2 -2
  39. package/dist/translations/de-ch.js +2 -2
  40. package/dist/translations/de-ch.umd.js +2 -2
  41. package/dist/translations/de.d.ts +2 -2
  42. package/dist/translations/de.js +2 -2
  43. package/dist/translations/de.umd.js +2 -2
  44. package/dist/translations/el.d.ts +2 -2
  45. package/dist/translations/el.js +2 -2
  46. package/dist/translations/el.umd.js +2 -2
  47. package/dist/translations/en-au.d.ts +2 -2
  48. package/dist/translations/en-au.js +2 -2
  49. package/dist/translations/en-au.umd.js +2 -2
  50. package/dist/translations/en-gb.d.ts +2 -2
  51. package/dist/translations/en-gb.js +2 -2
  52. package/dist/translations/en-gb.umd.js +2 -2
  53. package/dist/translations/en.d.ts +2 -2
  54. package/dist/translations/en.js +2 -2
  55. package/dist/translations/en.umd.js +2 -2
  56. package/dist/translations/eo.d.ts +2 -2
  57. package/dist/translations/eo.js +2 -2
  58. package/dist/translations/eo.umd.js +2 -2
  59. package/dist/translations/es-co.d.ts +2 -2
  60. package/dist/translations/es-co.js +2 -2
  61. package/dist/translations/es-co.umd.js +2 -2
  62. package/dist/translations/es.d.ts +2 -2
  63. package/dist/translations/es.js +2 -2
  64. package/dist/translations/es.umd.js +2 -2
  65. package/dist/translations/et.d.ts +2 -2
  66. package/dist/translations/et.js +2 -2
  67. package/dist/translations/et.umd.js +2 -2
  68. package/dist/translations/eu.d.ts +2 -2
  69. package/dist/translations/eu.js +2 -2
  70. package/dist/translations/eu.umd.js +2 -2
  71. package/dist/translations/fa.d.ts +2 -2
  72. package/dist/translations/fa.js +2 -2
  73. package/dist/translations/fa.umd.js +2 -2
  74. package/dist/translations/fi.d.ts +2 -2
  75. package/dist/translations/fi.js +2 -2
  76. package/dist/translations/fi.umd.js +2 -2
  77. package/dist/translations/fr.d.ts +2 -2
  78. package/dist/translations/fr.js +2 -2
  79. package/dist/translations/fr.umd.js +2 -2
  80. package/dist/translations/gl.d.ts +2 -2
  81. package/dist/translations/gl.js +2 -2
  82. package/dist/translations/gl.umd.js +2 -2
  83. package/dist/translations/gu.d.ts +2 -2
  84. package/dist/translations/gu.js +2 -2
  85. package/dist/translations/gu.umd.js +2 -2
  86. package/dist/translations/he.d.ts +2 -2
  87. package/dist/translations/he.js +2 -2
  88. package/dist/translations/he.umd.js +2 -2
  89. package/dist/translations/hi.d.ts +2 -2
  90. package/dist/translations/hi.js +2 -2
  91. package/dist/translations/hi.umd.js +2 -2
  92. package/dist/translations/hr.d.ts +2 -2
  93. package/dist/translations/hr.js +2 -2
  94. package/dist/translations/hr.umd.js +2 -2
  95. package/dist/translations/hu.d.ts +2 -2
  96. package/dist/translations/hu.js +2 -2
  97. package/dist/translations/hu.umd.js +2 -2
  98. package/dist/translations/hy.d.ts +2 -2
  99. package/dist/translations/hy.js +2 -2
  100. package/dist/translations/hy.umd.js +2 -2
  101. package/dist/translations/id.d.ts +2 -2
  102. package/dist/translations/id.js +2 -2
  103. package/dist/translations/id.umd.js +2 -2
  104. package/dist/translations/it.d.ts +2 -2
  105. package/dist/translations/it.js +2 -2
  106. package/dist/translations/it.umd.js +2 -2
  107. package/dist/translations/ja.d.ts +2 -2
  108. package/dist/translations/ja.js +2 -2
  109. package/dist/translations/ja.umd.js +2 -2
  110. package/dist/translations/jv.d.ts +2 -2
  111. package/dist/translations/jv.js +2 -2
  112. package/dist/translations/jv.umd.js +2 -2
  113. package/dist/translations/kk.d.ts +2 -2
  114. package/dist/translations/kk.js +2 -2
  115. package/dist/translations/kk.umd.js +2 -2
  116. package/dist/translations/km.d.ts +2 -2
  117. package/dist/translations/km.js +2 -2
  118. package/dist/translations/km.umd.js +2 -2
  119. package/dist/translations/kn.d.ts +2 -2
  120. package/dist/translations/kn.js +2 -2
  121. package/dist/translations/kn.umd.js +2 -2
  122. package/dist/translations/ko.d.ts +2 -2
  123. package/dist/translations/ko.js +2 -2
  124. package/dist/translations/ko.umd.js +2 -2
  125. package/dist/translations/ku.d.ts +2 -2
  126. package/dist/translations/ku.js +2 -2
  127. package/dist/translations/ku.umd.js +2 -2
  128. package/dist/translations/lt.d.ts +2 -2
  129. package/dist/translations/lt.js +2 -2
  130. package/dist/translations/lt.umd.js +2 -2
  131. package/dist/translations/lv.d.ts +2 -2
  132. package/dist/translations/lv.js +2 -2
  133. package/dist/translations/lv.umd.js +2 -2
  134. package/dist/translations/ms.d.ts +2 -2
  135. package/dist/translations/ms.js +2 -2
  136. package/dist/translations/ms.umd.js +2 -2
  137. package/dist/translations/nb.d.ts +2 -2
  138. package/dist/translations/nb.js +2 -2
  139. package/dist/translations/nb.umd.js +2 -2
  140. package/dist/translations/ne.d.ts +2 -2
  141. package/dist/translations/ne.js +2 -2
  142. package/dist/translations/ne.umd.js +2 -2
  143. package/dist/translations/nl.d.ts +2 -2
  144. package/dist/translations/nl.js +2 -2
  145. package/dist/translations/nl.umd.js +2 -2
  146. package/dist/translations/no.d.ts +2 -2
  147. package/dist/translations/no.js +2 -2
  148. package/dist/translations/no.umd.js +2 -2
  149. package/dist/translations/oc.d.ts +2 -2
  150. package/dist/translations/oc.js +2 -2
  151. package/dist/translations/oc.umd.js +2 -2
  152. package/dist/translations/pl.d.ts +2 -2
  153. package/dist/translations/pl.js +2 -2
  154. package/dist/translations/pl.umd.js +2 -2
  155. package/dist/translations/pt-br.d.ts +2 -2
  156. package/dist/translations/pt-br.js +2 -2
  157. package/dist/translations/pt-br.umd.js +2 -2
  158. package/dist/translations/pt.d.ts +2 -2
  159. package/dist/translations/pt.js +2 -2
  160. package/dist/translations/pt.umd.js +2 -2
  161. package/dist/translations/ro.d.ts +2 -2
  162. package/dist/translations/ro.js +2 -2
  163. package/dist/translations/ro.umd.js +2 -2
  164. package/dist/translations/ru.d.ts +2 -2
  165. package/dist/translations/ru.js +2 -2
  166. package/dist/translations/ru.umd.js +2 -2
  167. package/dist/translations/si.d.ts +2 -2
  168. package/dist/translations/si.js +2 -2
  169. package/dist/translations/si.umd.js +2 -2
  170. package/dist/translations/sk.d.ts +2 -2
  171. package/dist/translations/sk.js +2 -2
  172. package/dist/translations/sk.umd.js +2 -2
  173. package/dist/translations/sl.d.ts +2 -2
  174. package/dist/translations/sl.js +2 -2
  175. package/dist/translations/sl.umd.js +2 -2
  176. package/dist/translations/sq.d.ts +2 -2
  177. package/dist/translations/sq.js +2 -2
  178. package/dist/translations/sq.umd.js +2 -2
  179. package/dist/translations/sr-latn.d.ts +2 -2
  180. package/dist/translations/sr-latn.js +2 -2
  181. package/dist/translations/sr-latn.umd.js +2 -2
  182. package/dist/translations/sr.d.ts +2 -2
  183. package/dist/translations/sr.js +2 -2
  184. package/dist/translations/sr.umd.js +2 -2
  185. package/dist/translations/sv.d.ts +2 -2
  186. package/dist/translations/sv.js +2 -2
  187. package/dist/translations/sv.umd.js +2 -2
  188. package/dist/translations/th.d.ts +2 -2
  189. package/dist/translations/th.js +2 -2
  190. package/dist/translations/th.umd.js +2 -2
  191. package/dist/translations/ti.d.ts +2 -2
  192. package/dist/translations/ti.js +2 -2
  193. package/dist/translations/ti.umd.js +2 -2
  194. package/dist/translations/tk.d.ts +2 -2
  195. package/dist/translations/tk.js +2 -2
  196. package/dist/translations/tk.umd.js +2 -2
  197. package/dist/translations/tr.d.ts +2 -2
  198. package/dist/translations/tr.js +2 -2
  199. package/dist/translations/tr.umd.js +2 -2
  200. package/dist/translations/tt.d.ts +2 -2
  201. package/dist/translations/tt.js +2 -2
  202. package/dist/translations/tt.umd.js +2 -2
  203. package/dist/translations/ug.d.ts +2 -2
  204. package/dist/translations/ug.js +2 -2
  205. package/dist/translations/ug.umd.js +2 -2
  206. package/dist/translations/uk.d.ts +2 -2
  207. package/dist/translations/uk.js +2 -2
  208. package/dist/translations/uk.umd.js +2 -2
  209. package/dist/translations/ur.d.ts +2 -2
  210. package/dist/translations/ur.js +2 -2
  211. package/dist/translations/ur.umd.js +2 -2
  212. package/dist/translations/uz.d.ts +2 -2
  213. package/dist/translations/uz.js +2 -2
  214. package/dist/translations/uz.umd.js +2 -2
  215. package/dist/translations/vi.d.ts +2 -2
  216. package/dist/translations/vi.js +2 -2
  217. package/dist/translations/vi.umd.js +2 -2
  218. package/dist/translations/zh-cn.d.ts +2 -2
  219. package/dist/translations/zh-cn.js +2 -2
  220. package/dist/translations/zh-cn.umd.js +2 -2
  221. package/dist/translations/zh.d.ts +2 -2
  222. package/dist/translations/zh.js +2 -2
  223. package/dist/translations/zh.umd.js +2 -2
  224. package/lang/translations/af.po +1 -1
  225. package/lang/translations/ar.po +1 -1
  226. package/lang/translations/ast.po +1 -1
  227. package/lang/translations/az.po +1 -1
  228. package/lang/translations/bg.po +1 -1
  229. package/lang/translations/bn.po +1 -1
  230. package/lang/translations/bs.po +1 -1
  231. package/lang/translations/ca.po +1 -1
  232. package/lang/translations/cs.po +1 -1
  233. package/lang/translations/da.po +1 -1
  234. package/lang/translations/de-ch.po +1 -1
  235. package/lang/translations/de.po +1 -1
  236. package/lang/translations/el.po +1 -1
  237. package/lang/translations/en-au.po +1 -1
  238. package/lang/translations/en-gb.po +1 -1
  239. package/lang/translations/en.po +1 -1
  240. package/lang/translations/eo.po +1 -1
  241. package/lang/translations/es-co.po +1 -1
  242. package/lang/translations/es.po +1 -1
  243. package/lang/translations/et.po +1 -1
  244. package/lang/translations/eu.po +1 -1
  245. package/lang/translations/fa.po +1 -1
  246. package/lang/translations/fi.po +1 -1
  247. package/lang/translations/fr.po +1 -1
  248. package/lang/translations/gl.po +1 -1
  249. package/lang/translations/gu.po +1 -1
  250. package/lang/translations/he.po +1 -1
  251. package/lang/translations/hi.po +1 -1
  252. package/lang/translations/hr.po +1 -1
  253. package/lang/translations/hu.po +1 -1
  254. package/lang/translations/hy.po +1 -1
  255. package/lang/translations/id.po +1 -1
  256. package/lang/translations/it.po +1 -1
  257. package/lang/translations/ja.po +1 -1
  258. package/lang/translations/jv.po +1 -1
  259. package/lang/translations/kk.po +1 -1
  260. package/lang/translations/km.po +1 -1
  261. package/lang/translations/kn.po +1 -1
  262. package/lang/translations/ko.po +1 -1
  263. package/lang/translations/ku.po +1 -1
  264. package/lang/translations/lt.po +1 -1
  265. package/lang/translations/lv.po +1 -1
  266. package/lang/translations/ms.po +1 -1
  267. package/lang/translations/nb.po +1 -1
  268. package/lang/translations/ne.po +1 -1
  269. package/lang/translations/nl.po +1 -1
  270. package/lang/translations/no.po +1 -1
  271. package/lang/translations/oc.po +1 -1
  272. package/lang/translations/pl.po +1 -1
  273. package/lang/translations/pt-br.po +1 -1
  274. package/lang/translations/pt.po +1 -1
  275. package/lang/translations/ro.po +1 -1
  276. package/lang/translations/ru.po +1 -1
  277. package/lang/translations/si.po +1 -1
  278. package/lang/translations/sk.po +1 -1
  279. package/lang/translations/sl.po +1 -1
  280. package/lang/translations/sq.po +1 -1
  281. package/lang/translations/sr-latn.po +1 -1
  282. package/lang/translations/sr.po +1 -1
  283. package/lang/translations/sv.po +1 -1
  284. package/lang/translations/th.po +1 -1
  285. package/lang/translations/ti.po +1 -1
  286. package/lang/translations/tk.po +1 -1
  287. package/lang/translations/tr.po +1 -1
  288. package/lang/translations/tt.po +1 -1
  289. package/lang/translations/ug.po +1 -1
  290. package/lang/translations/uk.po +1 -1
  291. package/lang/translations/ur.po +1 -1
  292. package/lang/translations/uz.po +1 -1
  293. package/lang/translations/vi.po +1 -1
  294. package/lang/translations/zh-cn.po +1 -1
  295. package/lang/translations/zh.po +1 -1
  296. package/package.json +36 -9
  297. package/src/augmentation.d.ts +1 -1
  298. package/src/augmentation.js +1 -1
  299. package/src/common-translations.d.ts +1 -1
  300. package/src/common-translations.js +2 -2
  301. package/src/config.d.ts +1 -1
  302. package/src/config.js +1 -1
  303. package/src/index.d.ts +2 -1
  304. package/src/index.js +2 -2
  305. package/src/presencelist/presencelistui.d.ts +1 -1
  306. package/src/presencelist/presencelistui.js +2 -2
  307. package/src/presencelist/view/presencecounterview.d.ts +1 -1
  308. package/src/presencelist/view/presencecounterview.js +2 -2
  309. package/src/presencelist/view/presencedropdownlistitemview.d.ts +1 -1
  310. package/src/presencelist/view/presencedropdownlistitemview.js +2 -2
  311. package/src/presencelist/view/presencedropdownlistview.d.ts +1 -1
  312. package/src/presencelist/view/presencedropdownlistview.js +2 -2
  313. package/src/presencelist/view/presenceinlinelistitemview.d.ts +1 -1
  314. package/src/presencelist/view/presenceinlinelistitemview.js +2 -2
  315. package/src/presencelist/view/presenceinlinelistview.d.ts +1 -1
  316. package/src/presencelist/view/presenceinlinelistview.js +2 -2
  317. package/src/presencelist/view/presencelistview.d.ts +1 -1
  318. package/src/presencelist/view/presencelistview.js +2 -2
  319. package/src/presencelist.d.ts +1 -1
  320. package/src/presencelist.js +2 -2
  321. package/src/realtimecollaborativecomments/cloudservicescommentsadapter.d.ts +1 -1
  322. package/src/realtimecollaborativecomments/cloudservicescommentsadapter.js +2 -2
  323. package/src/realtimecollaborativecomments.d.ts +1 -1
  324. package/src/realtimecollaborativecomments.js +2 -2
  325. package/src/realtimecollaborativeediting/realtimecollaborationclient.d.ts +1 -1
  326. package/src/realtimecollaborativeediting/realtimecollaborationclient.js +2 -2
  327. package/src/realtimecollaborativeediting/sessions.d.ts +1 -1
  328. package/src/realtimecollaborativeediting/sessions.js +2 -2
  329. package/src/realtimecollaborativeediting/usermarkers.d.ts +1 -1
  330. package/src/realtimecollaborativeediting/usermarkers.js +2 -2
  331. package/src/realtimecollaborativeediting/websocketgateway.d.ts +5 -1
  332. package/src/realtimecollaborativeediting/websocketgateway.js +2 -2
  333. package/src/realtimecollaborativeediting.d.ts +1 -1
  334. package/src/realtimecollaborativeediting.js +2 -2
  335. package/src/realtimecollaborativerevisionhistory/cloudservicesrevisionhistoryadapter.d.ts +1 -1
  336. package/src/realtimecollaborativerevisionhistory/cloudservicesrevisionhistoryadapter.js +2 -2
  337. package/src/realtimecollaborativerevisionhistory.d.ts +1 -1
  338. package/src/realtimecollaborativerevisionhistory.js +2 -2
  339. package/src/realtimecollaborativetrackchanges/cloudservicestrackchangesadapter.d.ts +1 -1
  340. package/src/realtimecollaborativetrackchanges/cloudservicestrackchangesadapter.js +2 -2
  341. package/src/realtimecollaborativetrackchanges.d.ts +1 -1
  342. package/src/realtimecollaborativetrackchanges.js +2 -2
  343. package/theme/presencelist.css +1 -1
  344. package/theme/usermarkers.css +1 -1
  345. package/dist/augmentation.d.ts +0 -75
  346. package/dist/common-translations.d.ts +0 -13
  347. package/dist/config.d.ts +0 -52
  348. package/dist/index.d.ts +0 -18
  349. package/dist/presencelist/presencelistui.d.ts +0 -51
  350. package/dist/presencelist/view/presencecounterview.d.ts +0 -15
  351. package/dist/presencelist/view/presencedropdownlistitemview.d.ts +0 -19
  352. package/dist/presencelist/view/presencedropdownlistview.d.ts +0 -36
  353. package/dist/presencelist/view/presenceinlinelistitemview.d.ts +0 -23
  354. package/dist/presencelist/view/presenceinlinelistview.d.ts +0 -38
  355. package/dist/presencelist/view/presencelistview.d.ts +0 -24
  356. package/dist/presencelist.d.ts +0 -40
  357. package/dist/realtimecollaborativecomments/cloudservicescommentsadapter.d.ts +0 -64
  358. package/dist/realtimecollaborativecomments.d.ts +0 -48
  359. package/dist/realtimecollaborativeediting/realtimecollaborationclient.d.ts +0 -149
  360. package/dist/realtimecollaborativeediting/sessions.d.ts +0 -130
  361. package/dist/realtimecollaborativeediting/usermarkers.d.ts +0 -52
  362. package/dist/realtimecollaborativeediting/websocketgateway.d.ts +0 -67
  363. package/dist/realtimecollaborativeediting.d.ts +0 -38
  364. package/dist/realtimecollaborativerevisionhistory/cloudservicesrevisionhistoryadapter.d.ts +0 -61
  365. package/dist/realtimecollaborativerevisionhistory.d.ts +0 -41
  366. package/dist/realtimecollaborativetrackchanges/cloudservicestrackchangesadapter.d.ts +0 -55
  367. package/dist/realtimecollaborativetrackchanges.d.ts +0 -39
@@ -1,48 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module real-time-collaboration/realtimecollaborativecomments
11
- * @publicApi
12
- */
13
- import { Plugin } from 'ckeditor5/src/core.js';
14
- import CloudServicesCommentsAdapter from './realtimecollaborativecomments/cloudservicescommentsadapter.js';
15
- import RealTimeCollaborativeEditing from './realtimecollaborativeediting.js';
16
- import WebSocketGateway from './realtimecollaborativeediting/websocketgateway.js';
17
- /**
18
- * Enables the real-time collaborative comments feature.
19
- *
20
- * Check the {@glink features/collaboration/real-time-collaboration/real-time-collaboration-integration Real-time collaboration guide}
21
- * to see how to launch the editor in the real-time collaboration mode.
22
- */
23
- export default class RealTimeCollaborativeComments extends Plugin {
24
- /**
25
- * @inheritDoc
26
- */
27
- static get requires(): readonly ["Comments", typeof CloudServicesCommentsAdapter, typeof RealTimeCollaborativeEditing, typeof WebSocketGateway];
28
- /**
29
- * @inheritDoc
30
- */
31
- static get pluginName(): "RealTimeCollaborativeComments";
32
- /**
33
- * @inheritDoc
34
- */
35
- static get isOfficialPlugin(): true;
36
- /**
37
- * @inheritDoc
38
- */
39
- static get isPremiumPlugin(): true;
40
- /**
41
- * @inheritDoc
42
- */
43
- init(): Promise<void>;
44
- /**
45
- * @inheritDoc
46
- */
47
- destroy(): void;
48
- }
@@ -1,149 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module real-time-collaboration/realtimecollaborativeediting/realtimecollaborationclient
11
- * @publicApi
12
- */
13
- import { Plugin, PendingActions, type Editor } from 'ckeditor5/src/core.js';
14
- import { Notification } from 'ckeditor5/src/ui.js';
15
- import WebSocketGateway from './websocketgateway.js';
16
- import Sessions from './sessions.js';
17
- import UserMarkers from './usermarkers.js';
18
- import { Users, type CollaborationHistory } from 'ckeditor5-collaboration/src/collaboration-core.js';
19
- import { CollaborativeEditingService } from '@ckeditor/ckeditor-cloud-services-collaboration/src/services.js';
20
- /**
21
- * Handles the real-time collaborative editing.
22
- */
23
- export default class RealTimeCollaborationClient extends Plugin {
24
- static CollaborativeEditingService: typeof CollaborativeEditingService;
25
- /**
26
- * The ID of the current editing session to which the client is connected (or was connected before losing the connection).
27
- */
28
- sessionId: string | null;
29
- /**
30
- * Holds the history of operations that have been applied on the collaboration server.
31
- *
32
- * Contains only these operations, that have been already synchronized. It is exactly the same for all clients
33
- * connected to the same editing session.
34
- *
35
- * All original operations are cloned.
36
- */
37
- serverHistory: CollaborationHistory;
38
- /**
39
- * @inheritDoc
40
- */
41
- static get requires(): readonly [typeof WebSocketGateway, typeof Sessions, typeof UserMarkers, typeof PendingActions, typeof Users, typeof Notification];
42
- /**
43
- * @inheritDoc
44
- */
45
- static get pluginName(): "RealTimeCollaborationClient";
46
- /**
47
- * @inheritDoc
48
- */
49
- static get isOfficialPlugin(): true;
50
- /**
51
- * @inheritDoc
52
- */
53
- static get isPremiumPlugin(): true;
54
- /**
55
- * Incremented every time the document is synchronized with Cloud Services server. It can be treated as the server's current document
56
- * version. This number is stored between editing sessions, so even when all clients disconnect, the editing session is closed, the
57
- * next time the document is initialized, the version number will stay the same and will continue to be incremented with
58
- * subsequent document changes.
59
- *
60
- * Use this version to compare which client has a newer version of the document. It is recommended to save it together with the
61
- * document content in the database. Comparing `cloudDocumentVersion` can be used to prevent overwriting a newer content with
62
- * an older one from another client.
63
- */
64
- get cloudDocumentVersion(): number;
65
- /**
66
- * The last document version synchronized with the server during current real-time collaboration session.
67
- *
68
- * Equals to `0` when the client is not connected to the server yet.
69
- *
70
- * This includes only operations created by this or other clients. Notably, user selection markers operations created by
71
- * the server are excluded.
72
- */
73
- get lastSyncVersion(): number;
74
- constructor(editor: Editor);
75
- /**
76
- * @inheritDoc
77
- */
78
- init(): void;
79
- /**
80
- * Reconnects the client to the document.
81
- *
82
- * If the document has been flushed (editing session for that document was closed) in the meantime, the editing session is recreated
83
- * using the local operations history.
84
- *
85
- * There are several scenarios where the reconnection can fail because it is impossible to synchronize local document state with the
86
- * server editing session or with the document state saved in the database. In those situations, the editor switches to read-only
87
- * mode and a {@link module:ui/notification/notification~Notification `Notification`} is created.
88
- */
89
- reconnect(): Promise<void>;
90
- /**
91
- * @inheritDoc
92
- */
93
- destroy(): void;
94
- /**
95
- * Handles the server response after the reconnection.
96
- */
97
- private _handleReconnectionResponse;
98
- /**
99
- * Connects the client to the editing session.
100
- *
101
- * If this client is the first one that tries connecting to the session, the session will be created based on its
102
- * local operations. Otherwise, the server will respond with server operations that are already stored on the server for the
103
- * existing session and those operations will replace this client's editor content.
104
- *
105
- * @param isReconnectionProcess Set to `true` when reconnecting to the document after the document has been flushed.
106
- */
107
- private _connectService;
108
- /**
109
- * Handles operations received from the server. Callback for the `CollaborativeEditingService#event:operationsReceived`.
110
- */
111
- private _handleReceivedOperations;
112
- /**
113
- * Connects the client to the editing session after it has been flushed. The client will use the local operations history to re-create
114
- * the editing session on the server.
115
- */
116
- private _connectAfterSessionHasBeenFlushed;
117
- /**
118
- * Fetches missing users based on author IDs of the given operations.
119
- */
120
- private _fetchMissingUsers;
121
- /**
122
- * Performs root loading in a way that is safe for real-time collaboration. Synchronizes with the server and use the local data only
123
- * if the given root has not been loaded on any other client yet. Returns a promise which resolves after the root is ready.
124
- *
125
- * It transforms given data and root attributes into operations and tries to send them to the server. The operations are sent in
126
- * a regular way. The root is ready after they are finally applied on the server.
127
- *
128
- * @private
129
- */
130
- private _loadRoot;
131
- /**
132
- * Handles the initial connection.
133
- */
134
- private _handleInitialConnectionData;
135
- private _sendBufferedOperations;
136
- /**
137
- * Handles a response from the server for the following actions:
138
- * - connection
139
- * - reconnection
140
- * - sending buffered operations.
141
- *
142
- * @param sentOperations Operations sent to the server.
143
- * @param response The server's response.
144
- * @param requestId
145
- * @returns Resolves to `true` if the updates process has finished,
146
- * resolves to `false` if next batch of updates was sent to the server.
147
- */
148
- private _handleServerResponse;
149
- }
@@ -1,130 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module real-time-collaboration/realtimecollaborativeediting/sessions
11
- * @publicApi
12
- */
13
- import { ContextPlugin, type Editor, type Context } from 'ckeditor5/src/core.js';
14
- import { Collection } from 'ckeditor5/src/utils.js';
15
- import WebSocketGateway from './websocketgateway.js';
16
- import { Users, type User } from 'ckeditor5-collaboration/src/collaboration-core.js';
17
- import type { User as ServerUserModel, SessionCollection, ISocket } from '@ckeditor/ckeditor-cloud-services-collaboration/src/services.js';
18
- export type ServerUser = ServerUserModel & User;
19
- /**
20
- *
21
- * The `Sessions` plugin stores the information about the users and sessions connected to the rich text editor.
22
- *
23
- * The difference between the sessions plugin and the {@link module:collaboration-core/users~Users `Users` plugin} is that
24
- * `Users` also keeps information about the users who are not currently connected to the editor (for example, a comment
25
- * author who is currently offline).
26
- *
27
- * If your integration uses {@link module:core/context~Context} and there are multiple channels used, the `Sessions` plugin
28
- * aggregates users connected to all the channels.
29
- *
30
- * There are two types of entries in the sessions plugin: connected users and sessions.
31
- *
32
- * There is one session for each connection to a given channel. For example, for each open editor instance connecting
33
- * to a given channel ID, there will be a session. Every session has a user. However, the same user can be linked
34
- * with multiple sessions (for example, the same user opened the same URL in multiple tabs).
35
- *
36
- * In other words, if the same user (with the same user ID) opens the same document in two different tabs, they will create
37
- * two sessions but only one user will be connected. You will be able to see two selections in the same document, both in
38
- * the same color, but only a single user in the {@link module:real-time-collaboration/presencelist~PresenceList user presence list}.
39
- */
40
- export default class Sessions extends ContextPlugin {
41
- /**
42
- * A map of session collections connected to the separate channels.
43
- *
44
- * The keys of the map are channel IDs and the values are collections of sessions.
45
- *
46
- * A session is represented by an object with the following properties:
47
- * * `id` - A unique session ID.
48
- * * `user` - A reference to the user.
49
- */
50
- channelSessions: Map<string, Collection<ISocket>>;
51
- /**
52
- * A map of user collections connected to the separate channels.
53
- *
54
- * The keys of the map are channel IDs and the values are collections of users.
55
- */
56
- channelConnectedUsers: Map<string, Collection<ISocket>>;
57
- /**
58
- * A collection of users currently connected to all channels.
59
- *
60
- * A local user is always the first element in this collection.
61
- */
62
- allConnectedUsers: Collection<User>;
63
- /**
64
- * @inheritDoc
65
- */
66
- static get pluginName(): "Sessions";
67
- /**
68
- * @inheritDoc
69
- */
70
- static get isOfficialPlugin(): true;
71
- /**
72
- * @inheritDoc
73
- */
74
- static get isPremiumPlugin(): true;
75
- /**
76
- * @inheritDoc
77
- */
78
- static get requires(): readonly [typeof WebSocketGateway, typeof Users];
79
- /**
80
- * @inheritDoc
81
- */
82
- constructor(context: Editor | Context);
83
- /**
84
- * @inheritDoc
85
- */
86
- init(): void;
87
- /**
88
- * Observes given service sessions and updates session and users according to it.
89
- */
90
- register(channelId: string, serviceSessions: SessionCollection): void;
91
- /**
92
- * Stops observing given service sessions and remove all related sessions and users.
93
- */
94
- unregister(channelId: string): void;
95
- /**
96
- * Session id of the current client.
97
- */
98
- get mySessionId(): string;
99
- /**
100
- * Returns a reference to the user connected with a session with the given ID.
101
- */
102
- getUserBySessionId(sessionId: string): ServerUser | undefined;
103
- /**
104
- * Returns a set of ids of all currently connected sessions for the given user.
105
- *
106
- * When one user is connected to the same document in two separate browser tabs
107
- * then this users belongs to the two sessions.
108
- *
109
- * Optionally the result can be limited to the given channelId.
110
- */
111
- getUserSessions(user: ServerUser, channelId?: string): Set<string>;
112
- /**
113
- * Returns the role of a given user.
114
- */
115
- getUserRole(user: ServerUser): string | undefined;
116
- }
117
- /**
118
- * Fired when the new user session is added.
119
- *
120
- * @eventName ~Sessions#sessionAdd:channelId
121
- */
122
- export type SessionAddEvent = {
123
- name: 'sessionAdd' | `sessionAdd:${string}`;
124
- args: [
125
- {
126
- channelId: string;
127
- session: ISocket;
128
- }
129
- ];
130
- };
@@ -1,52 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- import { Plugin } from 'ckeditor5/src/core.js';
10
- import Sessions from './sessions.js';
11
- import '../../theme/usermarkers.css';
12
- /**
13
- * This plugin:
14
- *
15
- * 1. Creates marker operations with current user selection on demand.
16
- * 2. Renders clients selection markers.
17
- *
18
- * This plugin does not create markers automatically, instead it provides an API for it {@link #createUserMarkerOperations}.
19
- * {@link RealTimeCollaborationClient} uses this API to create user selection operations in the most optimal moment
20
- * (as the last operation in the operations package) - this is to reach the best compression result.
21
- */
22
- export default class UserMarkers extends Plugin {
23
- /**
24
- * @inheritDoc
25
- */
26
- static get requires(): readonly [typeof Sessions];
27
- /**
28
- * @inheritDoc
29
- */
30
- static get pluginName(): "UserMarkers";
31
- /**
32
- * @inheritDoc
33
- */
34
- static get isOfficialPlugin(): true;
35
- /**
36
- * @inheritDoc
37
- */
38
- static get isPremiumPlugin(): true;
39
- /**
40
- * @inheritDoc
41
- */
42
- init(): void;
43
- afterInit(): void;
44
- /**
45
- * @inheritDoc
46
- */
47
- destroy(): void;
48
- /**
49
- * Creates marker operations with current user selection.
50
- */
51
- createUserMarkerOperations(): void;
52
- }
@@ -1,67 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module real-time-collaboration/realtimecollaborativeediting/websocketgateway
11
- * @publicApi
12
- */
13
- import { ContextPlugin, type Plugin, type Editor, type Context } from 'ckeditor5/src/core.js';
14
- import { WebSocketGateway as WebSocketGatewayProvider, type WebSocketGatewayState } from '@ckeditor/ckeditor-cloud-services-collaboration/src/services.js';
15
- import { Notification } from 'ckeditor5/src/ui.js';
16
- export default class WebSocketGateway extends ContextPlugin {
17
- static WebSocketGateway: typeof WebSocketGatewayProvider;
18
- static initialReconnectionInterval: number;
19
- connection: WebSocketGatewayProvider;
20
- /**
21
- * The connection state.
22
- *
23
- * The `connected` state is set when both, the browser and the WebSocket, are connected.
24
- */
25
- state: WebSocketGatewayState;
26
- static get requires(): readonly ["CloudServices", typeof Notification];
27
- /**
28
- * @inheritDoc
29
- */
30
- static get pluginName(): "WebSocketGateway";
31
- /**
32
- * @inheritDoc
33
- */
34
- static get isOfficialPlugin(): true;
35
- /**
36
- * @inheritDoc
37
- */
38
- static get isPremiumPlugin(): true;
39
- constructor(context: Editor | Context);
40
- /**
41
- * @inheritDoc
42
- */
43
- init(): Promise<unknown>;
44
- /**
45
- * Registers a plugin that will be reconnected when the connection is back.
46
- * The plugin needs to implement the `reconnect()` method.
47
- */
48
- addToReconnectionStack(plugin: ReconnectPlugin | ReconnectContextPlugin): void;
49
- /**
50
- * Removes the plugin from the reconnection stack.
51
- */
52
- removeFromReconnectionStack(plugin: ReconnectPlugin | ReconnectContextPlugin): void;
53
- /**
54
- * Checks if the plugin is present in the reconnection stack.
55
- */
56
- isInReconnectionStack(plugin: ReconnectPlugin | ReconnectContextPlugin): boolean;
57
- /**
58
- * @inheritDoc
59
- */
60
- destroy(): void;
61
- }
62
- interface Reconnect {
63
- reconnect: () => void | Promise<void>;
64
- }
65
- export type ReconnectPlugin = Plugin & Reconnect;
66
- export type ReconnectContextPlugin = ContextPlugin & Reconnect;
67
- export {};
@@ -1,38 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module real-time-collaboration/realtimecollaborativeediting
11
- * @publicApi
12
- */
13
- import { Plugin } from 'ckeditor5/src/core.js';
14
- import RealTimeCollaborationClient from './realtimecollaborativeediting/realtimecollaborationclient.js';
15
- /**
16
- * Enables the real-time collaborative editing feature.
17
- *
18
- * Check the {@glink features/collaboration/real-time-collaboration/real-time-collaboration-integration Real-time collaboration} guide
19
- * to see how to launch the editor in the real-time collaboration mode.
20
- */
21
- export default class RealTimeCollaborativeEditing extends Plugin {
22
- /**
23
- * @inheritDoc
24
- */
25
- static get requires(): readonly [typeof RealTimeCollaborationClient];
26
- /**
27
- * @inheritDoc
28
- */
29
- static get pluginName(): "RealTimeCollaborativeEditing";
30
- /**
31
- * @inheritDoc
32
- */
33
- static get isOfficialPlugin(): true;
34
- /**
35
- * @inheritDoc
36
- */
37
- static get isPremiumPlugin(): true;
38
- }
@@ -1,61 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module real-time-collaboration/realtimecollaborativerevisionhistory/cloudservicesrevisionhistoryadapter
11
- * @publicApi
12
- */
13
- import { Plugin, type Editor } from 'ckeditor5/src/core.js';
14
- import { Users } from 'ckeditor5-collaboration/src/collaboration-core.js';
15
- import RealTimeCollaborationClient from '../realtimecollaborativeediting/realtimecollaborationclient.js';
16
- import WebSocketGateway, { type ReconnectPlugin } from '../realtimecollaborativeediting/websocketgateway.js';
17
- import Sessions from '../realtimecollaborativeediting/sessions.js';
18
- import { RevisionHistoryService } from '@ckeditor/ckeditor-cloud-services-collaboration/src/services.js';
19
- /**
20
- * The Cloud Services revision history adapter plugin.
21
- */
22
- export default class CloudServicesRevisionHistoryAdapter extends Plugin implements ReconnectPlugin {
23
- static RevisionHistoryService: typeof RevisionHistoryService;
24
- /**
25
- * @inheritDoc
26
- */
27
- static get requires(): readonly [typeof WebSocketGateway, typeof RealTimeCollaborationClient, "RevisionTracker", typeof Sessions, typeof Users];
28
- /**
29
- * @inheritDoc
30
- */
31
- static get pluginName(): "CloudServicesRevisionHistoryAdapter";
32
- /**
33
- * @inheritDoc
34
- */
35
- static get isOfficialPlugin(): true;
36
- /**
37
- * @inheritDoc
38
- */
39
- static get isPremiumPlugin(): true;
40
- /**
41
- * @inheritDoc
42
- */
43
- constructor(editor: Editor);
44
- /**
45
- * @inheritDoc
46
- */
47
- init(): Promise<void>;
48
- /**
49
- * A method that will be executed when the `WebSocketGateway` will reconnect.
50
- */
51
- reconnect(): Promise<void>;
52
- /**
53
- * @inheritDoc
54
- */
55
- destroy(): void;
56
- /**
57
- * Waits for the service to be ready before calling the service API.
58
- */
59
- private _waitForServiceReady;
60
- private _fetchMissingUsers;
61
- }
@@ -1,41 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module real-time-collaboration/realtimecollaborativerevisionhistory
11
- * @publicApi
12
- */
13
- import { Plugin } from 'ckeditor5/src/core.js';
14
- import CloudServicesRevisionHistoryAdapter from './realtimecollaborativerevisionhistory/cloudservicesrevisionhistoryadapter.js';
15
- import RealTimeCollaborativeEditing from './realtimecollaborativeediting.js';
16
- /**
17
- * Enables the real-time collaborative revision history feature.
18
- *
19
- * Requires adding `RevisionHistory` to the list of editor plugins.
20
- *
21
- * Check the {@glink features/collaboration/real-time-collaboration/real-time-collaboration-integration Real-time collaboration guide}
22
- * to see how to launch the editor in the real-time collaboration mode.
23
- */
24
- export default class RealTimeCollaborativeRevisionHistory extends Plugin {
25
- /**
26
- * @inheritDoc
27
- */
28
- static get requires(): readonly ["RevisionHistory", typeof CloudServicesRevisionHistoryAdapter, typeof RealTimeCollaborativeEditing];
29
- /**
30
- * @inheritDoc
31
- */
32
- static get pluginName(): "RealTimeCollaborativeRevisionHistory";
33
- /**
34
- * @inheritDoc
35
- */
36
- static get isOfficialPlugin(): true;
37
- /**
38
- * @inheritDoc
39
- */
40
- static get isPremiumPlugin(): true;
41
- }
@@ -1,55 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module real-time-collaboration/realtimecollaborativetrackchanges/cloudservicestrackchangesadapter
11
- * @publicApi
12
- */
13
- import { Plugin, type Editor } from 'ckeditor5/src/core.js';
14
- import { TrackChangesService } from '@ckeditor/ckeditor-cloud-services-collaboration/src/services.js';
15
- import WebSocketGateway, { type ReconnectPlugin } from '../realtimecollaborativeediting/websocketgateway.js';
16
- import CloudServicesCommentsAdapter from '../realtimecollaborativecomments/cloudservicescommentsadapter.js';
17
- /**
18
- * The Cloud Services Track Changes Adapter plugin.
19
- */
20
- export default class CloudServicesTrackChangesAdapter extends Plugin implements ReconnectPlugin {
21
- static TrackChangesService: typeof TrackChangesService;
22
- /**
23
- * @inheritDoc
24
- */
25
- static get requires(): readonly [typeof CloudServicesCommentsAdapter, "TrackChangesEditing", typeof WebSocketGateway];
26
- /**
27
- * @inheritDoc
28
- */
29
- static get pluginName(): "CloudServicesTrackChangesAdapter";
30
- /**
31
- * @inheritDoc
32
- */
33
- static get isOfficialPlugin(): true;
34
- /**
35
- * @inheritDoc
36
- */
37
- static get isPremiumPlugin(): true;
38
- /**
39
- * @inheritDoc
40
- */
41
- constructor(editor: Editor);
42
- /**
43
- * @inheritDoc
44
- */
45
- init(): Promise<void>;
46
- /**
47
- * A method that will be executed when the `WebSocketGateway` will reconnect.
48
- */
49
- reconnect(): Promise<void>;
50
- /**
51
- * Waits for the service to be ready before calling the service API.
52
- */
53
- private _waitForServiceReady;
54
- private _fetchMissingUsersForThreads;
55
- }
@@ -1,39 +0,0 @@
1
- /**
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
- /**
10
- * @module real-time-collaboration/realtimecollaborativetrackchanges
11
- * @publicApi
12
- */
13
- import { Plugin } from 'ckeditor5/src/core.js';
14
- import CloudServicesTrackChangesAdapter from './realtimecollaborativetrackchanges/cloudservicestrackchangesadapter.js';
15
- import RealTimeCollaborativeComments from './realtimecollaborativecomments.js';
16
- /**
17
- * Enables the real-time collaborative track changes feature.
18
- *
19
- * Check the {@glink features/collaboration/real-time-collaboration/real-time-collaboration-integration Real-time collaboration}
20
- * guide to see how to launch the editor in the real-time collaboration mode.
21
- */
22
- export default class RealTimeCollaborativeTrackChanges extends Plugin {
23
- /**
24
- * @inheritDoc
25
- */
26
- static get requires(): readonly [typeof RealTimeCollaborativeComments, typeof CloudServicesTrackChangesAdapter, "TrackChanges"];
27
- /**
28
- * @inheritDoc
29
- */
30
- static get pluginName(): "RealTimeCollaborativeTrackChanges";
31
- /**
32
- * @inheritDoc
33
- */
34
- static get isOfficialPlugin(): true;
35
- /**
36
- * @inheritDoc
37
- */
38
- static get isPremiumPlugin(): true;
39
- }