@ckeditor/ckeditor5-real-time-collaboration 48.2.0-alpha.0 → 48.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 (148) hide show
  1. package/dist/index.js +6 -6
  2. package/dist/translations/af.js +1 -1
  3. package/dist/translations/af.umd.js +1 -1
  4. package/dist/translations/ar.js +1 -1
  5. package/dist/translations/ar.umd.js +1 -1
  6. package/dist/translations/ast.js +1 -1
  7. package/dist/translations/ast.umd.js +1 -1
  8. package/dist/translations/az.js +1 -1
  9. package/dist/translations/az.umd.js +1 -1
  10. package/dist/translations/be.js +1 -1
  11. package/dist/translations/be.umd.js +1 -1
  12. package/dist/translations/bg.js +1 -1
  13. package/dist/translations/bg.umd.js +1 -1
  14. package/dist/translations/bn.js +1 -1
  15. package/dist/translations/bn.umd.js +1 -1
  16. package/dist/translations/bs.js +1 -1
  17. package/dist/translations/bs.umd.js +1 -1
  18. package/dist/translations/ca.js +1 -1
  19. package/dist/translations/ca.umd.js +1 -1
  20. package/dist/translations/cs.js +1 -1
  21. package/dist/translations/cs.umd.js +1 -1
  22. package/dist/translations/da.js +1 -1
  23. package/dist/translations/da.umd.js +1 -1
  24. package/dist/translations/de-ch.js +1 -1
  25. package/dist/translations/de-ch.umd.js +1 -1
  26. package/dist/translations/de.js +1 -1
  27. package/dist/translations/de.umd.js +1 -1
  28. package/dist/translations/el.js +1 -1
  29. package/dist/translations/el.umd.js +1 -1
  30. package/dist/translations/en-au.js +1 -1
  31. package/dist/translations/en-au.umd.js +1 -1
  32. package/dist/translations/en-gb.js +1 -1
  33. package/dist/translations/en-gb.umd.js +1 -1
  34. package/dist/translations/en.js +1 -1
  35. package/dist/translations/en.umd.js +1 -1
  36. package/dist/translations/eo.js +1 -1
  37. package/dist/translations/eo.umd.js +1 -1
  38. package/dist/translations/es-co.js +1 -1
  39. package/dist/translations/es-co.umd.js +1 -1
  40. package/dist/translations/es.js +1 -1
  41. package/dist/translations/es.umd.js +1 -1
  42. package/dist/translations/et.js +1 -1
  43. package/dist/translations/et.umd.js +1 -1
  44. package/dist/translations/eu.js +1 -1
  45. package/dist/translations/eu.umd.js +1 -1
  46. package/dist/translations/fa.js +1 -1
  47. package/dist/translations/fa.umd.js +1 -1
  48. package/dist/translations/fi.js +1 -1
  49. package/dist/translations/fi.umd.js +1 -1
  50. package/dist/translations/fr.js +1 -1
  51. package/dist/translations/fr.umd.js +1 -1
  52. package/dist/translations/gl.js +1 -1
  53. package/dist/translations/gl.umd.js +1 -1
  54. package/dist/translations/gu.js +1 -1
  55. package/dist/translations/gu.umd.js +1 -1
  56. package/dist/translations/he.js +1 -1
  57. package/dist/translations/he.umd.js +1 -1
  58. package/dist/translations/hi.js +1 -1
  59. package/dist/translations/hi.umd.js +1 -1
  60. package/dist/translations/hr.js +1 -1
  61. package/dist/translations/hr.umd.js +1 -1
  62. package/dist/translations/hu.js +1 -1
  63. package/dist/translations/hu.umd.js +1 -1
  64. package/dist/translations/hy.js +1 -1
  65. package/dist/translations/hy.umd.js +1 -1
  66. package/dist/translations/id.js +1 -1
  67. package/dist/translations/id.umd.js +1 -1
  68. package/dist/translations/it.js +1 -1
  69. package/dist/translations/it.umd.js +1 -1
  70. package/dist/translations/ja.js +1 -1
  71. package/dist/translations/ja.umd.js +1 -1
  72. package/dist/translations/jv.js +1 -1
  73. package/dist/translations/jv.umd.js +1 -1
  74. package/dist/translations/kk.js +1 -1
  75. package/dist/translations/kk.umd.js +1 -1
  76. package/dist/translations/km.js +1 -1
  77. package/dist/translations/km.umd.js +1 -1
  78. package/dist/translations/kn.js +1 -1
  79. package/dist/translations/kn.umd.js +1 -1
  80. package/dist/translations/ko.js +1 -1
  81. package/dist/translations/ko.umd.js +1 -1
  82. package/dist/translations/ku.js +1 -1
  83. package/dist/translations/ku.umd.js +1 -1
  84. package/dist/translations/lt.js +1 -1
  85. package/dist/translations/lt.umd.js +1 -1
  86. package/dist/translations/lv.js +1 -1
  87. package/dist/translations/lv.umd.js +1 -1
  88. package/dist/translations/ms.js +1 -1
  89. package/dist/translations/ms.umd.js +1 -1
  90. package/dist/translations/nb.js +1 -1
  91. package/dist/translations/nb.umd.js +1 -1
  92. package/dist/translations/ne.js +1 -1
  93. package/dist/translations/ne.umd.js +1 -1
  94. package/dist/translations/nl.js +1 -1
  95. package/dist/translations/nl.umd.js +1 -1
  96. package/dist/translations/no.js +1 -1
  97. package/dist/translations/no.umd.js +1 -1
  98. package/dist/translations/oc.js +1 -1
  99. package/dist/translations/oc.umd.js +1 -1
  100. package/dist/translations/pl.js +1 -1
  101. package/dist/translations/pl.umd.js +1 -1
  102. package/dist/translations/pt-br.js +1 -1
  103. package/dist/translations/pt-br.umd.js +1 -1
  104. package/dist/translations/pt.js +1 -1
  105. package/dist/translations/pt.umd.js +1 -1
  106. package/dist/translations/ro.js +1 -1
  107. package/dist/translations/ro.umd.js +1 -1
  108. package/dist/translations/ru.js +1 -1
  109. package/dist/translations/ru.umd.js +1 -1
  110. package/dist/translations/si.js +1 -1
  111. package/dist/translations/si.umd.js +1 -1
  112. package/dist/translations/sk.js +1 -1
  113. package/dist/translations/sk.umd.js +1 -1
  114. package/dist/translations/sl.js +1 -1
  115. package/dist/translations/sl.umd.js +1 -1
  116. package/dist/translations/sq.js +1 -1
  117. package/dist/translations/sq.umd.js +1 -1
  118. package/dist/translations/sr-latn.js +1 -1
  119. package/dist/translations/sr-latn.umd.js +1 -1
  120. package/dist/translations/sr.js +1 -1
  121. package/dist/translations/sr.umd.js +1 -1
  122. package/dist/translations/sv.js +1 -1
  123. package/dist/translations/sv.umd.js +1 -1
  124. package/dist/translations/th.js +1 -1
  125. package/dist/translations/th.umd.js +1 -1
  126. package/dist/translations/ti.js +1 -1
  127. package/dist/translations/ti.umd.js +1 -1
  128. package/dist/translations/tk.js +1 -1
  129. package/dist/translations/tk.umd.js +1 -1
  130. package/dist/translations/tr.js +1 -1
  131. package/dist/translations/tr.umd.js +1 -1
  132. package/dist/translations/tt.js +1 -1
  133. package/dist/translations/tt.umd.js +1 -1
  134. package/dist/translations/ug.js +1 -1
  135. package/dist/translations/ug.umd.js +1 -1
  136. package/dist/translations/uk.js +1 -1
  137. package/dist/translations/uk.umd.js +1 -1
  138. package/dist/translations/ur.js +1 -1
  139. package/dist/translations/ur.umd.js +1 -1
  140. package/dist/translations/uz.js +1 -1
  141. package/dist/translations/uz.umd.js +1 -1
  142. package/dist/translations/vi.js +1 -1
  143. package/dist/translations/vi.umd.js +1 -1
  144. package/dist/translations/zh-cn.js +1 -1
  145. package/dist/translations/zh-cn.umd.js +1 -1
  146. package/dist/translations/zh.js +1 -1
  147. package/dist/translations/zh.umd.js +1 -1
  148. package/package.json +12 -12
package/dist/index.js CHANGED
@@ -20,9 +20,9 @@
20
20
  *
21
21
  *
22
22
  */
23
- import{ContextPlugin as _0x301857,Plugin as _0x525919,PendingActions as _0x2e9287,Context as _0x8106a0}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x15074d,CKEditorError as _0x5ca446,Collection as _0x4be9e8,global as _0x410313,version as _0x53ac72,uid as _0x53ed0a,KeystrokeHandler as _0x3192ca}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x5338a0,View as _0x5f3d1a,ListView as _0x2aa0a6,ListItemView as _0xf6d61d,LabelView as _0x3a59ab,BalloonPanelView as _0x31f4d8,clickOutsideHandler as _0x507db1,BodyCollection as _0x6aff50}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x1edf96,History as _0x3cef10,NoOperation as _0x4f98a8,InsertOperation as _0x59cbf4,MarkerOperation as _0x2eb419,RootAttributeOperation as _0x3bb171,transformOperationSets as _0x337fb0,OperationFactory as _0x4fb23e}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x3dbb6d}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x2c7745,WEB_SOCKET_GATEWAY_STATES as _0xf3d8b5,CollaborativeEditingService as _0x4052b4,User as _0x36e987,CommentsService as _0x3f36bf,TrackChangesService as _0x5d9822,RevisionHistoryService as _0x3af4a6,EditorService as _0x39cbd3}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x5783db,UserView as _0x5a2b39}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0xc14c8}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x438d69,TrackChanges as _0x5a552b}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x27c5eb,Comments as _0x6f1f0e,CommentsEditing as _0x3a954d}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x134b36}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x15a965}from'es-toolkit/compat';class WebSocketGateway extends _0x301857{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
- ((()=>_0x2c7745)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x3dbb6d,_0x5338a0];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x2532a7){super(_0x2532a7),this['set']('state',_0xf3d8b5['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x15074d())();}['init'](){const _0x2bd552=this['context'],_0x58b3f1=_0x2bd552['plugins']['get'](_0x3dbb6d),_0x30061c=_0x2bd552['plugins']['get'](_0x5338a0);if(!_0x58b3f1['token'])throw new _0x5ca446('websocketgateway-missing-token',this);if(!_0x58b3f1['webSocketUrl'])throw new _0x5ca446('websocketgateway-missing-websocket-url',this);return this['_domEmitter']['listenTo'](window,'offline',()=>this['_isBrowserOffline']=!0x0),this['_domEmitter']['listenTo'](window,'online',()=>this['_isBrowserOffline']=!0x1),this['context']['config']['define']('cloudServices.connectionTimeout',0xa),this['context']['config']['define']('cloudServices.requestTimeout',0x14),WebSocketGateway['WebSocketGateway']['connect'](_0x58b3f1['token'],_0x58b3f1['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x48dea2=>{if(this['connection']=_0x48dea2,this['bind']('state')['to'](_0x48dea2,'state',this,'_isBrowserOffline',(_0x4ab84d,_0x475a61)=>('connected'!==_0x4ab84d&&(this['_shouldPluginsReconnect']=!0x0),_0x475a61||_0x4ab84d!==_0xf3d8b5['CONNECTED']?_0xf3d8b5['DISCONNECTED']:this['state']==_0xf3d8b5['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0xf3d8b5['CONNECTING']):_0xf3d8b5['CONNECTED'])),this['connection']['on']('error',(_0x5e2908,_0x1d15e9)=>{if('limitExceeded'!==_0x1d15e9['code'])throw console['error'](_0x1d15e9),new _0x5ca446('cloudservices-init',null,{'originalError':_0x1d15e9});_0x30061c['showWarning']('The\x20limit\x20of\x20maximum\x20concurrent\x20connections\x20that\x20the\x20collaboration\x20server\x20can\x20handle\x20has\x20been\x20reached.\x20Try\x20opening\x20the\x20document\x20again\x20in\x20a\x20few\x20minutes.\x20Please\x20contact\x20your\x20system\x20administrator\x20if\x20the\x20problem\x20persists.',{'title':'Connected\x20users\x20limit\x20exceeded','namespace':'real-time-collaboration'});}),!_0x48dea2['me'])return new Promise(_0x5075e3=>_0x48dea2['on']('change:me',_0x5075e3));})['catch'](_0x1a07d7=>{throw console['error'](_0x1a07d7),new _0x5ca446('cloudservices-init',null,{'originalError':_0x1a07d7});});}['addToReconnectionStack'](_0x4b4da9){if('function'!=typeof _0x4b4da9['reconnect'])throw new _0x5ca446('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x4b4da9))throw new _0x5ca446('websocketgateway-plugin-already-registered',this,{'name':_0x4b4da9['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x4b4da9);}['removeFromReconnectionStack'](_0x441200){this['_reconnectionStack']['delete'](_0x441200);}['isInReconnectionStack'](_0x1ef9e4){return this['_reconnectionStack']['has'](_0x1ef9e4);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x5ac5e6=>_0x5ac5e6['reconnect']())))['then'](()=>this['state']=_0xf3d8b5['CONNECTED'])['catch'](_0x5bd149=>{throw console['error'](_0x5bd149),new _0x5ca446('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0xf3d8b5['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x301857{['channelSessions'];['channelConnectedUsers'];['allConnectedUsers'];['_registeredSessions'];['_uniqueUsersCount'];['_users'];static get['pluginName'](){return'Sessions';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}static get['requires'](){return[WebSocketGateway,_0x5783db];}constructor(_0x232993){super(_0x232993),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x4be9e8(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x5783db);}['init'](){const _0x17d243=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x17d243,'change:state',(_0x2928d1,_0x279e3a,_0x18646c)=>{if('connected'!==_0x18646c)this['channelSessions']['forEach'](_0x52a0f3=>_0x52a0f3['clear']()),this['channelConnectedUsers']['forEach'](_0x309a4a=>_0x309a4a['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0xac541b,_0x305eec]of this['_registeredSessions'])for(const _0x536169 of _0x305eec)this['_handleSessionAdd'](_0xac541b,_0x536169);}}),this['_createUser'](_0x17d243['connection']['me'],!0x0);}['register'](_0x1fd193,_0xb0e96e){if(this['_registeredSessions']['has'](_0x1fd193))throw new _0x5ca446('sessions-register-already-registered',null,{'channelId':_0x1fd193});this['_registeredSessions']['set'](_0x1fd193,_0xb0e96e),this['channelSessions']['set'](_0x1fd193,new _0x4be9e8()),this['channelConnectedUsers']['set'](_0x1fd193,new _0x4be9e8()),this['listenTo'](_0xb0e96e,'add',(_0x54ab9,_0x2d49bd)=>this['_handleSessionAdd'](_0x1fd193,_0x2d49bd)),this['listenTo'](_0xb0e96e,'remove',(_0x4f850d,_0x13a637)=>this['_handleSessionRemove'](_0x1fd193,_0x13a637));for(const _0x842870 of _0xb0e96e)this['_handleSessionAdd'](_0x1fd193,_0x842870);}['unregister'](_0x30e284){if(!this['_registeredSessions']['has'](_0x30e284))throw new _0x5ca446('sessions-unregister-not-exist',null,{'channelId':_0x30e284});const _0x555223=this['_registeredSessions']['get'](_0x30e284);this['stopListening'](_0x555223);for(const _0x405db5 of _0x555223)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x30e284,_0x405db5);this['_registeredSessions']['delete'](_0x30e284),this['channelSessions']['delete'](_0x30e284),this['channelConnectedUsers']['delete'](_0x30e284);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x32c8b6){for(const _0x35b04f of this['channelSessions']['values']())for(const _0xfd7923 of _0x35b04f)if(_0xfd7923['id']===_0x32c8b6)return _0xfd7923['user'];}['getUserSessions'](_0x599287,_0x50f7d2){const _0xadb424=_0x50f7d2?[this['channelSessions']['get'](_0x50f7d2)]:this['channelSessions']['values'](),_0x509b30=new Set();for(const _0x9e106d of _0xadb424)for(const _0x3823fe of _0x9e106d)_0x3823fe['user']['id']===_0x599287['id']&&_0x509b30['add'](_0x3823fe['id']);return _0x509b30;}['getUserRole'](_0x161153){for(const _0x1d796a of this['channelSessions']['values']())for(const _0x3b15a7 of _0x1d796a)if(_0x3b15a7['user']===_0x161153)return _0x3b15a7['role'];}['_handleSessionAdd'](_0x29b31a,_0x2220d2){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0xba6404=_0x2220d2['user'],_0x4cf4b0=this['_users']['getUser'](_0xba6404['id'])||this['_createUser'](_0xba6404),_0x64e116=Object['assign']({},_0x2220d2,{'user':_0x4cf4b0});if(this['channelSessions']['get'](_0x29b31a)['add'](_0x64e116),!_0xba6404['hiddenInPresenceList']){const _0x501a96=this['channelConnectedUsers']['get'](_0x29b31a);_0x501a96['has'](_0x4cf4b0['id'])||_0x501a96['add'](_0x4cf4b0),this['allConnectedUsers']['has'](_0x4cf4b0['id'])||_0xba6404['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x4cf4b0,_0x4cf4b0['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x29b31a,{'channelId':_0x29b31a,'session':_0x64e116});}['_handleSessionRemove'](_0x663099,_0x479344){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x50a9de=this['channelConnectedUsers']['get'](_0x663099),_0x2bdd6f=_0x479344['user'];_0x2bdd6f['id']&&(this['channelSessions']['get'](_0x663099)['remove'](_0x479344['id']),_0x50a9de['has'](_0x2bdd6f['id'])&&!this['getUserSessions'](_0x2bdd6f,_0x663099)['size']&&_0x50a9de['remove'](_0x2bdd6f['id']),this['allConnectedUsers']['get'](_0x2bdd6f['id'])&&!this['getUserSessions'](_0x2bdd6f)['size']&&this['allConnectedUsers']['remove'](_0x2bdd6f['id']));}['_createUser'](_0xc5f41f,_0x1ba7f0){const _0x53ead1=this['_users']['addUser'](_0xc5f41f);return _0x1ba7f0&&this['_users']['defineMe'](_0xc5f41f['id']),_0x53ead1['orderNumber']=this['_uniqueUsersCount']++,_0x53ead1;}}class UserMarkers extends _0x525919{['_domEmitter']=new(_0x15074d())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x39bf3c=this['editor'],_0x21f59c=_0x39bf3c['plugins']['get'](Sessions);_0x39bf3c['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x187461,{writer:_0x490e1c})=>function(_0x357a71,_0x11611e,_0xa26fe4,_0xccabf3){const _0x3cac5d=_0x357a71['markerName']['split'](':')[0x2],_0x4eb7fb=_0xa26fe4['getUserBySessionId'](_0x3cac5d);if(!_0x4eb7fb||_0x3cac5d===_0xa26fe4['mySessionId'])return;if(!_0xccabf3['model']['schema']['checkChild'](_0x357a71['markerRange']['start'],'$text'))return;const _0xdad9ff={'class':'ck-user__marker\x20'+_0x4eb7fb['color']['getMarkerClass'](),'style':Y(_0x4eb7fb),'data-name':_0x4eb7fb['name'],'data-session-id':_0x3cac5d},_0x10a76b=_0xccabf3['model']['markers']['get'](_0x357a71['markerName']),_0x183560=_0x10a76b['getStart'](),_0xd7a97=_0x183560['nodeAfter'],_0x55b70e=_0xccabf3['model']['schema'];if(_0xd7a97&&_0x55b70e['isObject'](_0xd7a97)&&_0x55b70e['isInline'](_0xd7a97)&&!_0xccabf3['model']['markers']['get']('user:range:'+_0x3cac5d)['getRange']()['isCollapsed'])return;const _0x1205a3=_0x183560['parent'];return _0xccabf3['model']['schema']['isLimit'](_0x1205a3)&&!_0xccabf3['model']['hasContent'](_0x1205a3)&&(_0xdad9ff['contenteditable']=!0x1),function(_0x1a2405,_0x56acff,_0x893ebb){const _0x2ad96b=_0x1a2405['createUIElement']('span',_0x56acff);return _0x1a2405['setCustomProperty']('userPositionMarker',!0x0,_0x2ad96b),_0x2ad96b['render']=function(_0x11039e){const _0x257c5b=this['toDomElement'](_0x11039e),_0x295671=document['createElement']('span');return _0x295671['classList']['add']('ck-user__marker-tooltip'),_0x295671['setAttribute']('contenteditable','false'),_0x295671['setAttribute']('spellcheck','false'),_0x295671['textContent']=_0x893ebb['name'],_0x257c5b['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x295671['outerHTML']+'⁠',_0x257c5b['addEventListener']('mouseenter',()=>{_0x257c5b['classList']['add']('ck-user__marker_hovered');}),_0x257c5b['addEventListener']('mouseleave',()=>{_0x257c5b['classList']['remove']('ck-user__marker_hovered');}),_0x257c5b;},_0x2ad96b['isSimilar']=function(_0x498578){return!(!this['getCustomProperty']('userPositionMarker')||!_0x498578['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x498578['getAttribute']('data-session-id'));},_0x2ad96b;}(_0x11611e,_0xdad9ff,_0x4eb7fb);}(_0x187461,_0x490e1c,_0x21f59c,_0x39bf3c)}),_0x39bf3c['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x425a64=>function(_0x3b7807,_0x1e84ec){const _0x328756=_0x3b7807['markerName']['split'](':')[0x2];if(_0x328756===_0x1e84ec['mySessionId'])return null;const _0x1402bd=_0x1e84ec['getUserBySessionId'](_0x328756);if(!_0x1402bd)return{'id':_0x328756,'classes':[]};return{'id':_0x328756,'classes':['ck-user__selection',_0x1402bd['color']['getSelectionClass']()],'attributes':{'style':Y(_0x1402bd),'data-session-id':_0x328756},'priority':0x7d0+_0x1402bd['orderNumber']};}(_0x425a64,_0x21f59c)}),function(_0x2fd968){const _0x1a02ee=_0x2fd968['model'],_0x44cc20=new Map(),_0x591c14=_0x2fd968['plugins']['get'](Sessions);_0x1a02ee['markers']['on']('update:user:range',(_0xf450ad,_0x409320,_0x239dd9,_0x48ccfd)=>{if(!_0x48ccfd&&_0x44cc20['get'](_0x409320['name']))return _0x44cc20['get'](_0x409320['name'])['detach'](),void _0x44cc20['delete'](_0x409320['name']);const _0x21315e=_0x409320['name']['split'](':')[0x2];if(_0x21315e===_0x591c14['mySessionId'])return;const _0x2659f9='user:position:'+_0x21315e;_0x1a02ee['markers']['has'](_0x2659f9)&&_0x2fd968['editing']['reconvertMarker'](_0x2659f9),_0x409320['on']('change:range',(_0x144aad,_0x5c2211,_0x3b2ce6)=>{if('$graveyard'!=_0x5c2211['root']['rootName']&&'$graveyard'==_0x409320['getRange']()['root']['rootName']&&!_0x44cc20['has'](_0x409320['name'])){const _0x26135b=_0x1a02ee['schema']['getNearestSelectionRange'](_0x3b2ce6['deletionPosition']);if(_0x26135b){const _0xe78982=_0x1edf96['fromRange'](_0x26135b);_0x44cc20['set'](_0x409320['name'],_0xe78982),_0xe78982['on']('change:range',(_0x3feeda,_0x18fc2f,_0x3f8292)=>{if('$graveyard'==_0xe78982['root']['rootName']){const _0x383041=_0x1a02ee['schema']['getNearestSelectionRange'](_0x3f8292['deletionPosition']);_0x383041?(_0xe78982['start']=_0x383041['start'],_0xe78982['end']=_0x383041['end']):(_0x44cc20['delete'](_0x409320['name']),_0xe78982['detach']());}});}}});}),_0x1a02ee['document']['on']('change',()=>{_0x44cc20['size']>0x0&&_0x1a02ee['enqueueChange']({'isUndoable':!0x1},_0x3e6a33=>{for(const [_0x229978,_0x213213]of _0x44cc20)'$graveyard'==_0x1a02ee['markers']['get'](_0x229978)['getRange']()['root']['rootName']&&(z(_0x229978['split'](':')[0x2],_0x213213['toRange'](),_0x1a02ee,_0x3e6a33),_0x213213['detach']());_0x44cc20['clear']();});});}(_0x39bf3c),this['_domEmitter']['listenTo'](_0x410313['document'],'keydown',(_0x93f7d7,{key:_0x3ca933})=>{'Escape'===_0x3ca933&&function(_0x1b1a26){_0x1b1a26['editing']['view']['change'](_0x449b2d=>{for(const _0x51d0a5 of _0x1b1a26['model']['markers']){if(!_0x51d0a5['name']['startsWith']('user:position'))continue;const _0x5a5cf4=_0x1b1a26['editing']['mapper']['markerNameToElements'](_0x51d0a5['name']);if(_0x5a5cf4){for(const _0x161c0f of _0x5a5cf4)_0x449b2d['removeClass']('ck-user__marker_hovered',_0x161c0f);}}});}(_0x39bf3c);},{'useCapture':!0x0});}['afterInit'](){const _0x32dd3e=this['editor'],_0x109469=_0x32dd3e['commands']['get']('undo');_0x109469&&_0x32dd3e['model']['on']('applyOperation',(_0x2d91f1,_0x1225fb)=>{const _0x32b869=_0x1225fb[0x0];if(!_0x32b869['isDocumentOperation'])return;if('marker'!=_0x32b869['type']||!_0x32b869['name']['startsWith']('user:'))return;const _0x104b5c=_0x32b869['batch'];_0x109469['_createdBatches']['has'](_0x104b5c)&&(_0x32b869['newRange']=_0x32b869['oldRange']?_0x32dd3e['model']['createRange'](_0x32b869['oldRange']['start'],_0x32b869['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x2908c9=this['editor'],_0x2d2777=_0x2908c9['model']['document'],_0x53f2db=_0x2908c9['plugins']['get'](Sessions);_0x2908c9['model']['enqueueChange']({'isUndoable':!0x1},_0x4a9ca3=>{const _0x51e5c6='user:range:'+_0x53f2db['mySessionId'],_0x46b3a3='user:position:'+_0x53f2db['mySessionId'],_0x2b2271=_0x2908c9['model']['markers']['has'](_0x51e5c6);_0x2908c9['editing']['view']['hasDomSelection']?z(_0x53f2db['mySessionId'],_0x2d2777['selection']['getFirstRange'](),_0x2908c9['model'],_0x4a9ca3):_0x2b2271&&(_0x4a9ca3['removeMarker'](_0x51e5c6),_0x4a9ca3['removeMarker'](_0x46b3a3));});}}function z(_0x195dcb,_0x4a056c,_0x204417,_0x2d895e){const _0xcc794='user:range:'+_0x195dcb,_0x37a262='user:position:'+_0x195dcb,_0x5de51b=_0x4a056c['getContainedElement']();let _0x282edd=_0x4a056c['start'];if(_0x5de51b&&_0x5de51b['is']('element','tableCell')){const _0x33a412=function(_0x1dbdd2,_0x153cc8){for(const _0x542cad of _0x1dbdd2['getPositions']())if(_0x153cc8['schema']['checkChild'](_0x542cad,'$text'))return _0x542cad;}(_0x4a056c,_0x204417);_0x33a412&&(_0x282edd=_0x33a412,_0x4a056c=_0x2d895e['createRange'](_0x282edd));}const _0x3f5bd8=_0x2d895e['createRange'](_0x282edd);_0x204417['markers']['has'](_0xcc794)?(_0x2d895e['updateMarker'](_0xcc794,{'range':_0x4a056c}),_0x2d895e['updateMarker'](_0x37a262,{'range':_0x3f5bd8})):(_0x2d895e['addMarker'](_0xcc794,{'range':_0x4a056c,'usingOperation':!0x0}),_0x2d895e['addMarker'](_0x37a262,{'range':_0x3f5bd8,'usingOperation':!0x0}));}function Y(_0x15bf11){return'--ck-user-color:'+_0x15bf11['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x15bf11['color']['getColorAlphaVariable']()+';';}function K(_0x3a7227,_0x2c5488,_0x18e41d){const _0x2b58c3=_0x3a7227['t'],t=_0x3a7227['t'];switch(_0x2c5488){case'PENDING_ACTION_SENDING_DATA':return t({'string':'Sending\x20data\x20to\x20the\x20server.','id':'PENDING_ACTION_SENDING_DATA'});case'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'Synchronization\x20issue':return t('Synchronization\x20issue');case'Connected\x20users\x20list\x20dropdown\x20menu':return t('Connected\x20users\x20list\x20dropdown\x20menu');case'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':return t('Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)');case'Connected\x20users\x20list':return t('Connected\x20users\x20list');case'PENDING_ACTION_REVISION_HISTORY':return _0x2b58c3({'string':'Unsaved\x20change\x20in\x20revision\x20history.','id':'PENDING_ACTION_REVISION_HISTORY'});case'CONNECTED_USERS':return t({'string':'1\x20connected\x20user\x20(me)','plural':'%0\x20connected\x20users','id':'CONNECTED_USERS'},_0x18e41d);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x525919{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
- ((()=>_0x4052b4)());['_offset'];['sessionId'];['serverHistory'];['_channelId'];['_service'];['_document'];['_compressor'];['_bufferedOperations'];['_knownOperations'];['_knownRootNames'];['_pendingAction'];['_hasSelectionChanged'];['_sendBufferedOperationsDelayId'];['_baseBufferDelay'];['_currentBufferDelay'];['_lastSyncedOperationId'];['_disconnectionOperations'];['_operationIdentifier'];static get['requires'](){return[WebSocketGateway,Sessions,UserMarkers,_0x2e9287,_0x5783db,_0x5338a0];}static get['pluginName'](){return'RealTimeCollaborationClient';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}get['cloudDocumentVersion'](){return this['_lastServerVersion']+this['_offset'];}get['_lastServerVersion'](){return this['serverHistory']['version']-this['_offset'];}get['lastSyncVersion'](){const _0x440945=this['serverHistory']['getOperations']();for(let _0x1f3fca=_0x440945['length']-0x1;_0x1f3fca>=0x0;_0x1f3fca--){const _0x2612cf=_0x440945[_0x1f3fca];if(!this['_disconnectionOperations']['has'](_0x2612cf))return _0x2612cf['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x2646a7){if(super(_0x2646a7),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x3cef10(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x5ca446('collaboration-missing-channelid',this);const _0x49c118=_0x2646a7['config']['get']('cloudServices.bundleVersion')||_0x53ac72;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x49c118,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0xc14c8(),this['_bufferedOperations']=[],this['_knownOperations']=new WeakSet(),this['_knownRootNames']=new Set(),this['set']('_isPendingUpdate',!0x1),this['set']('_hasSynchronizationProblem',!0x1),this['_pendingAction']=null,this['_hasSelectionChanged']=!0x1,this['_sendBufferedOperationsDelayId']=null,this['_baseBufferDelay']=0x12c,this['_currentBufferDelay']=this['_baseBufferDelay'],this['_lastSyncedOperationId']=null,this['_disconnectionOperations']=new WeakSet(),this['_operationIdentifier']=new OperationIdentifier(this['_disconnectionOperations']);}['init'](){const _0x3adc82=this['editor'],_0x42d936=_0x3adc82['plugins']['get'](_0x5783db),_0x35943a=_0x3adc82['plugins']['get'](WebSocketGateway);this['listenTo'](_0x42d936,'getOperationAuthor',(_0x185bc0,_0x20ea7a)=>{const _0x2fe27f=_0x20ea7a[0x0];_0x2fe27f['_authorId']&&(_0x185bc0['return']=_0x42d936['getUser'](_0x2fe27f['_authorId']),_0x185bc0['stop']()),null===_0x2fe27f['_authorId']&&(_0x185bc0['return']=null,_0x185bc0['stop']());},{'priority':'high'}),this['listenTo'](_0x3adc82['model']['document']['selection'],'change:range',(_0x5c9735,_0x338d4f)=>{_0x338d4f['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x3adc82['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x3adc82['model']['on']('applyOperation',(_0x359ef8,_0x201289)=>{const _0x576c1f=_0x201289[0x0];_0x576c1f['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x576c1f),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x35943a,'state',this,'_hasSynchronizationProblem',(_0x145848,_0x3600e7)=>'connected'===_0x145848&&!_0x3600e7),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x3adc82['disableReadOnlyMode']('rtc-offline'):_0x3adc82['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x3adc82['disableReadOnlyMode']('rtc-offline'):_0x3adc82['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x574b74=this['editor']['plugins']['get'](Sessions),_0x33c1b6=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x574b74['unregister'](this['_channelId']);const _0x31dfdf=await this['_service']['reconnect'](_0x33c1b6['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x31dfdf)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x4b5891=await this['_service']['getConnectedSessions']();_0x574b74['register'](this['_channelId'],_0x4b5891),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x393f80){if(function(_0x24d467){return'404'===_0x24d467['code'];}(_0x393f80)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0xfbe0fa){return'409'===_0xfbe0fa['code'];}(_0x393f80)){const _0x2079e1=K(this['editor']['locale'],'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');this['_handleReconnectionError'](_0x2079e1);}else{if(!(_0x393f80 instanceof ReconnectionError))throw _0x393f80;this['_handleReconnectionError']();}}}}['destroy'](){const _0x3a7427=this['editor']['plugins']['get'](WebSocketGateway),_0x3ec89a=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x3ec89a['channelSessions']['has'](this['_channelId'])&&_0x3ec89a['unregister'](this['_channelId']),_0x3a7427['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x3c2fbf){if(this['sessionId']!==_0x3c2fbf['sessionId']&&this['_lastSyncedOperationId']!==_0x3c2fbf['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x3c2fbf['sessionId'],this['_handleServerResponse']([],{..._0x3c2fbf,'wereChangesApplied':!0x1,'data':_0x3c2fbf['data']},'reconnect');}async['_connectService'](_0x3b2a09,_0x46d740=!0x1){const {connection:_0x1a24df}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x1a24df,this['_channelId'])['then'](_0x17e0a7=>this['_initSessionsHandling'](_0x17e0a7))['catch'](_0x43f9c9=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x43f9c9);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x7ec2ef,_0x4ff8d5)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x4ff8d5);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x267174=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x3b2a09);this['_isPendingUpdate']=!0x0;const _0x204159=await this['_service']['connect'](_0x1a24df,this['_compressOperations'](_0x3b2a09),_0x267174);if(this['sessionId']=_0x204159['sessionId'],_0x46d740){if(!_0x204159['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x204159['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x3b2a09,_0x204159,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x204159,_0x3b2a09);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x9ce6b5=this['editor']['plugins']['get'](Sessions),_0x3aed22=this['editor']['plugins']['get'](UserMarkers),_0x11ccb8=_0x9ce6b5['channelSessions']['get'](this['_channelId']);_0x11ccb8&&_0x11ccb8['length']>0x1?_0x3aed22['createUserMarkerOperations']():this['listenTo'](_0x9ce6b5,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x9ce6b5['channelSessions']['get'](this['_channelId'])['length']&&_0x3aed22['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x5e60b6,_0x1b44b3,_0x831e13,_0x5015d9){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x1b44b3){const _0x4d3c1b=this['_decompressOperations'](_0x831e13,_0x5015d9);await this['_fetchMissingUsers'](_0x4d3c1b),this['_handleExternalOperations'](_0x4d3c1b,_0x1b44b3,_0x831e13['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0xe23bc}=this['editor'];let _0xb7f70b;try{_0xb7f70b=await this['_service']['getDocumentDetails']();}catch{const _0x52c514=K(_0xe23bc,'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x52c514);}const _0x1d7c31=_0xb7f70b['currentDocumentSession']||_0xb7f70b['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x1d7c31['lastOperationId']){const _0x25265e=K(_0xe23bc,'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x25265e);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x33e59b){const _0x5d5b68=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x5d5b68,'sessionAdd:'+this['_channelId'],(_0x5ac746,{session:_0x4677e6})=>{if(_0x4677e6['id']===_0x5d5b68['mySessionId']){_0x5ac746['off']();const _0x432bb8=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x352df3=_0x4677e6['permissions'];_0x432bb8&&_0x432bb8['isEnabled']&&(_0x352df3=_0x352df3['filter'](_0x2424d9=>'document:write'!==_0x2424d9)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x352df3,this['_channelId']);}}),_0x5d5b68['register'](this['_channelId'],_0x33e59b);}['_initThrowingOnDataSet'](){const _0x37c760=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x46751f)=>{if(!_0x46751f[_0x46751f['length']-0x1]['suppressErrorInCollaboration'])throw new _0x5ca446('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x37c760['apply'](this['editor']['data'],_0x46751f);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x3a9c7b,[_0x19755b])=>{if(this['_document']['version'])throw new _0x5ca446('realtimecollaborationclient-init-document-already-initialized',this);_0x3a9c7b['stop'](),this['_setPendingAction']();const _0x124de6=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x10c181])=>!_0x10c181['lazyLoad'])['map'](([_0x2202c6,_0x2b08f2])=>[_0x2202c6,_0x2b08f2['modelAttributes']||{}])),_0x260f23=this['_getOperationsFromInitData'](_0x19755b,_0x124de6);0x0==_0x260f23['length']&&_0x260f23['push'](new _0x4f98a8(0x0)),_0x3a9c7b['return']=this['_connectService'](_0x260f23)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0xbcf569=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0xbcf569))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x8b4d4c,[_0x52b2ba,_0x9ca499])=>{_0x8b4d4c['stop']();const _0x4dc381=this['editor']['model']['document']['getRoot'](_0x52b2ba);if(!this['_knownRootNames']['has'](_0x52b2ba)){const _0x15ab83=_0x9ca499&&_0x9ca499['data']?_0x9ca499['data']:'',_0xf9785a=_0x9ca499&&_0x9ca499['attributes']?_0x9ca499['attributes']:{};await this['_loadRoot'](_0x52b2ba,_0x15ab83,_0xf9785a);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x4dc381['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x4dc381);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x45ce55){const _0x4168fc=this['editor']['plugins']['get'](_0x5783db),{connection:_0x256f2a}=this['editor']['plugins']['get'](WebSocketGateway),_0x5d4ba9=new Set();for(const _0x2304c7 of _0x45ce55){const _0x3f8608=_0x2304c7['_authorId'];_0x3f8608&&!_0x4168fc['getUser'](_0x3f8608)&&_0x5d4ba9['add'](_0x3f8608);}if(0x0===_0x5d4ba9['size'])return;const _0x449a64=await _0x36e987['getMany'](_0x256f2a,Array['from'](_0x5d4ba9));for(const _0x2b7493 of _0x449a64)_0x4168fc['getUser'](_0x2b7493['id'])||_0x4168fc['addUser'](_0x2b7493);}['_getOperationsFromInitData'](_0x3d2dc5,_0x5a9cac={}){const _0x159957=this['editor']['model'],_0x186518=[];let _0x52d1cf=0x0;const _0x1aa9b1='string'==typeof _0x3d2dc5?{'main':_0x3d2dc5}:_0x3d2dc5;for(const _0x2b6275 of Object['keys'](_0x1aa9b1)){if(!this['_document']['roots']['has'](_0x2b6275))throw new _0x5ca446('realtimecollaborationclient-init-non-existent-root',this);const _0x580f7a=this['_document']['getRoot'](_0x2b6275),_0xfd18=this['editor']['data']['parse'](_0x1aa9b1[_0x2b6275],_0x580f7a),_0x441755=new _0x59cbf4(_0x159957['createPositionAt'](_0x580f7a,0x0),_0xfd18,_0x52d1cf++);_0x186518['push'](_0x441755);for(const [_0x29cb48,_0xed0d24]of _0xfd18['markers']){const _0x271b3d=_0x159957['createRange'](_0x159957['createPositionFromPath'](_0x580f7a,_0xed0d24['start']['path']['slice']()),_0x159957['createPositionFromPath'](_0x580f7a,_0xed0d24['end']['path']['slice']())),_0x185350=new _0x2eb419(_0x29cb48,null,_0x271b3d,_0x159957['markers'],!0x0,_0x52d1cf++);_0x186518['push'](_0x185350);}}if(_0x5a9cac)for(const [_0x33ebe4,_0x201fd9]of Object['entries'](_0x5a9cac)){const _0x42ddab=_0x159957['document']['getRoot'](_0x33ebe4);if(!_0x42ddab)throw new _0x5ca446('multi-root-editor-root-attributes-no-root',null);for(const [_0x4193b3,_0x4d7860]of Object['entries'](_0x201fd9))if(null!==_0x4d7860){const _0x2a3d59=new _0x3bb171(_0x42ddab,_0x4193b3,null,_0x4d7860,_0x52d1cf++);_0x186518['push'](_0x2a3d59);}}return _0x186518;}async['_loadRoot'](_0x4e5138,_0x2367aa,_0x571e39){this['_getOperationsFromInitData']({[_0x4e5138]:_0x2367aa},{[_0x4e5138]:_0x571e39})['forEach']((_0x369b03,_0x2e5019)=>{_0x369b03['baseVersion']=this['_document']['version']+_0x2e5019,_0x369b03['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x369b03);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x5f4dfd,_0x3631d7){let _0x54cb45;this['_offset']=_0x5f4dfd['offset'];const _0x292d35=_0x5f4dfd['wereChangesApplied']&&!_0x5f4dfd['initData'],_0x1d3de3=_0x292d35?0x0:_0x5f4dfd['data']['baseVersion'];if(_0x3631d7['forEach'](_0x48857d=>{_0x48857d['_isInit']=!0x0,_0x48857d['createdAt']=_0x5f4dfd['sessionCreatedAt'],_0x48857d['_authorId']=null;}),_0x292d35)_0x54cb45=_0x3631d7,this['_applyOperationsSet'](_0x54cb45,_0x292d35);else{if(_0x5f4dfd['initData']){const _0x529462=this['_getOperationsFromInitData'](_0x5f4dfd['initData']);this['_document']['history']['version']=-_0x529462['length'],_0x529462['forEach'](_0x71b3b=>{_0x71b3b['baseVersion']-=_0x529462['length'],_0x71b3b['createdAt']=_0x5f4dfd['sessionCreatedAt'],_0x71b3b['_isInit']=!0x0,_0x71b3b['_authorId']=null;}),this['_applyOperationsSet'](_0x529462,!0x0),this['serverHistory']['version']=-_0x529462['length']+this['_offset'],this['_updateServerHistory'](_0x529462);}this['_document']['history']['version']=_0x1d3de3,_0x54cb45=this['_decompressOperations'](_0x5f4dfd['data'],_0x5f4dfd['metadata']),await this['_fetchMissingUsers'](_0x54cb45),this['_applyOperationsSet'](_0x54cb45,_0x292d35);}_0x5f4dfd['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x54cb45,_0x5f4dfd['lastOperationId']),this['_lastSyncedOperationId']=_0x5f4dfd['lastOperationId']),this['serverHistory']['version']=_0x1d3de3+this['_offset'],this['_updateServerHistory'](_0x54cb45),_0x3631d7['filter'](_0x1b344a=>{const _0x119f59=this['_getAffectedRoot'](_0x1b344a);return _0x119f59&&!this['_knownRootNames']['has'](_0x119f59);})['forEach']((_0x2028e3,_0x9aca79)=>{_0x2028e3['baseVersion']=this['_document']['version']+_0x9aca79,this['_saveOperationInBuffer'](_0x2028e3);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x441842,_0x25b6f4){const _0x4672cf=_0x25b6f4&&_0x25b6f4['message'];if(_0x4672cf&&_0x4672cf['startsWith']('realtimecollaborationclient'))throw _0x25b6f4;const _0x3e9d46=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x3e9d46['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x5ca446(_0x441842,this['editor'],_0x4672cf?{'originalError':_0x4672cf}:void 0x0);}['_saveOperationInBuffer'](_0x4b1743){this['_knownOperations']['has'](_0x4b1743)||(this['_knownOperations']['add'](_0x4b1743),this['_bufferedOperations']['push'](_0x4b1743),this['_pendingAction']||'marker'==_0x4b1743['type']&&!_0x4b1743['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0xe45ce7=!0x1){!_0xe45ce7&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x535641=>{_0x535641&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x3f70c9=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x450727){return _0x450727['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x450727['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x450727['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x3f70c9)||this['_crash'](_0x3f70c9['message'],_0x3f70c9);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x9cbaed=>{this['on']('change:_isPendingUpdate',()=>{_0x9cbaed();});});}async['_sendBufferedOperations'](){const _0x7e5e9f=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x7e5e9f['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x973614=[...this['_bufferedOperations']];for(const _0xd66915 of _0x973614)_0xd66915['wasUndone']=this['_document']['history']['isUndoneOperation'](_0xd66915);const _0x4f7e37=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x973614),_0x12e51a=J++,_0x605a19=this['_compressOperations'](_0x973614),_0x49b5d6=await this['_service']['sendOperations'](_0x605a19,_0x605a19['baseVersion'],_0x4f7e37);try{return await this['_handleServerResponse'](_0x973614,_0x49b5d6,_0x12e51a);}catch(_0x1e0379){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x1e0379);}}async['_handleServerResponse'](_0x19d869,_0x313096,_0x573fe1){if('error'in _0x313096)throw _0x313096['error'];let _0x567e00=!0x1;if(_0x313096['wereChangesApplied']){_0x313096['lastOperationId']&&(this['_lastSyncedOperationId']=_0x313096['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x7ef04f=>!_0x19d869['includes'](_0x7ef04f));for(const _0x4c0d7f of _0x19d869)_0x4c0d7f['createdAt']='lastOperationAcceptedAt'in _0x313096&&_0x313096['lastOperationAcceptedAt']||void 0x0;Q(_0x19d869,_0x313096['version']-_0x19d869['length']),this['_updateServerHistory'](_0x19d869);const _0x411c83=_0x19d869['filter'](_0x429f4e=>{if(!_0x429f4e['_isInit'])return!0x1;const _0x4f50b2=this['_getAffectedRoot'](_0x429f4e);return _0x4f50b2&&!this['_knownRootNames']['has'](_0x4f50b2);});Q(_0x411c83,this['_document']['version']),this['_applyOperationsSet'](_0x411c83),_0x567e00=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x58513c=this['_decompressOperations'](_0x313096['data'],_0x313096['metadata'])['filter'](_0x2b84d0=>_0x2b84d0['baseVersion']>=this['_lastServerVersion']);_0x58513c['forEach'](_0x49d308=>this['_addKnownRoot'](_0x49d308)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x16cc7d=>!_0x16cc7d['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x16cc7d))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x58513c),_0x567e00=this['_handleExternalOperations'](_0x58513c,_0x313096['version'],_0x313096['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x567e00?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x1085bc,_0x17c8f2,_0x152c8f){try{const _0x506635={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x2eba07,operationsB:_0x3038a0,originalOperations:_0x170477}=_0x337fb0(_0x1085bc,this['_bufferedOperations'],_0x506635);Q(_0x2eba07,this['_document']['version']),Q(_0x3038a0,_0x17c8f2);for(const _0x5987f7 of _0x2eba07){const _0x53d398=_0x170477['get'](_0x5987f7);_0x5987f7['_authorId']=_0x53d398?_0x53d398['_authorId']:null;}_0x152c8f&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x1085bc,_0x152c8f),this['_lastSyncedOperationId']=_0x152c8f),this['_bufferedOperations']=[..._0x3038a0],this['_applyOperationsSet'](_0x2eba07),this['_updateServerHistory'](_0x1085bc);}catch(_0x44fa2c){return console['error'](_0x44fa2c),!0x1;}return!0x0;}['_applyOperationsSet'](_0x415d6c,_0x309df5=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x1c22dd=>{for(const _0x90c462 of _0x415d6c)this['_knownOperations']['add'](_0x90c462),this['_addKnownRoot'](_0x90c462),_0x1c22dd['batch']['addOperation'](_0x90c462),this['editor']['model']['applyOperation'](_0x90c462);});}['_addKnownRoot'](_0x4aa549){const _0x6d92d5=this['_getAffectedRoot'](_0x4aa549);_0x6d92d5&&this['_knownRootNames']['add'](_0x6d92d5);}['_getAffectedRoot'](_0x4302c1){let _0x3ad684,_0x46ceae;switch(_0x4302c1['type']){case'insert':_0x3ad684=_0x4302c1['position']['root'];break;case'marker':if(_0x46ceae=_0x4302c1['newRange'],!_0x46ceae)return null;_0x3ad684=_0x46ceae['root'];break;case'addRootAttribute':_0x3ad684=_0x4302c1['root'];break;case'addRoot':_0x3ad684=_0x4302c1['affectedSelectable'];break;case'move':_0x3ad684=_0x4302c1['targetPosition']['root'];break;default:return null;}return _0x3ad684['rootName'];}['_updateServerHistory'](_0x17072e){_0x17072e['forEach'](_0x1087ea=>{const _0x3d2909=_0x1087ea['clone']();_0x3d2909['_authorId']=_0x1087ea['_authorId'],_0x3d2909['_isInit']=!!_0x1087ea['_isInit'],_0x3d2909['createdAt']=_0x1087ea['createdAt'],_0x3d2909['baseVersion']+=this['_offset'],_0x1087ea['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x3d2909),this['serverHistory']['addOperation'](_0x3d2909);});}['_handleReconnectionError'](_0x53b0af){const _0x425885=this['editor']['plugins']['get']('Notification'),_0x33a7f1=this['editor']['locale'];_0x53b0af||(_0x53b0af=K(_0x33a7f1,'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.')),_0x425885['showWarning'](_0x53b0af,{'title':K(_0x33a7f1,'Synchronization\x20issue'),'namespace':'real-time-collaboration'}),this['_hasSynchronizationProblem']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_bufferedOperations']=[],this['editor']['plugins']['get'](WebSocketGateway)['disconnect']();}['_setPendingAction'](){this['_pendingAction']||(this['_pendingAction']=this['editor']['plugins']['get'](_0x2e9287)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x2e9287)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x50b0c5){const _0x38f790=_0x50b0c5['map'](_0xddf554=>_0xddf554['toJSON']());return this['_compressor']['compress'](_0x38f790);}['_decompressOperations'](_0x2eeca8,_0x44a813){return this['_compressor']['decompress'](_0x2eeca8)['map']((_0x4b49ca,_0x878ef2)=>{const _0x4771a1='init'==_0x44a813[_0x878ef2]['type'];if('InsertOperation'==_0x4b49ca['__className']){const _0x2f6ed7=_0x4b49ca['position']['root'];!this['_document']['getRoot'](_0x2f6ed7)&&(this['_document']['createRoot']('$unknown',_0x2f6ed7)['_isAttached']=!0x1);}else{if('RootOperation'==_0x4b49ca['__className']){const _0x421f5f=this['_document']['getRoot'](_0x4b49ca['rootName']);_0x421f5f&&'$unknown'==_0x421f5f['name']&&_0x4b49ca['elementName']!=_0x421f5f['name']&&(_0x421f5f['name']=_0x4b49ca['elementName']);}}const _0x1cfeb6=_0x4fb23e['fromJSON'](_0x4b49ca,this['_document']);return _0x1cfeb6['wasUndone']=_0x4b49ca['wasUndone'],_0x1cfeb6['_isInit']=_0x4771a1,_0x1cfeb6['_authorId']=_0x4771a1?null:_0x44a813[_0x878ef2]['userId'],_0x1cfeb6['_isDisconnection']='cs:removeUser'===_0x44a813[_0x878ef2]['type'],_0x1cfeb6['createdAt']=_0x44a813[_0x878ef2]['createdAt'],_0x1cfeb6;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x25c028=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x25c028&&_0x25c028['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x14bdfe,_0x48d75d){for(const _0x7b9dfa of _0x14bdfe)_0x7b9dfa['baseVersion']=_0x48d75d++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x571ebf){this['_ignoredOperations']=_0x571ebf,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x3ebff8){let _0x383068=_0x3ebff8['length'];for(;_0x383068--;){const _0xb7cd09=_0x3ebff8[_0x383068];if(!this['_ignoredOperations']['has'](_0xb7cd09)){if(!this['_operationToId']['has'](_0xb7cd09)){const _0x3fd513=_0x53ed0a()['slice'](0x1,0x12);this['_operationToId']['set'](_0xb7cd09,_0x3fd513);}return this['_operationToId']['get'](_0xb7cd09);}}}['setIdForTheLastOperation'](_0x4d25da,_0x3de40f){if(!_0x3de40f)return;let _0x2a5ed9=_0x4d25da['length'];for(;_0x2a5ed9--;){const _0x698e90=_0x4d25da[_0x2a5ed9];this['_ignoredOperations']['has'](_0x698e90)||this['_operationToId']['set'](_0x698e90,_0x3de40f);}}}class RealTimeCollaborativeEditing extends _0x525919{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x301857{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
- ((()=>_0x3f36bf)());['_services'];static get['requires'](){return[WebSocketGateway,_0x27c5eb,Sessions,_0x5783db];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x45e325){super(_0x45e325),this['_services']=new Map();}async['init'](){const _0x310cec=this['context'],_0x64a978=_0x310cec['plugins']['get'](_0x27c5eb);if(_0x310cec['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x64a978['adapter']={'addCommentThread':async({channelId:_0x24b152,threadId:_0x43dd85,comments:_0x439097,resolvedAt:_0x1c182d,resolvedBy:_0x538df0,context:_0x1ae0cf,attributes:_0x26dee9})=>{const _0x464e4d=await this['_getService'](_0x24b152)['addCommentThread']({'commentThreadId':_0x43dd85,'comments':_0x439097['map'](_0x1a75a4=>function(_0x4d7f23,_0x549541,_0x53ecb1){return{'commentThreadId':_0x53ecb1,'commentId':_0x4d7f23['commentId'],'userId':_0x4d7f23['authorId'],'content':_0x4d7f23['content'],'documentId':_0x549541,'createdAt':_0x4d7f23['createdAt'],'attributes':_0x4d7f23['attributes']||{}};}(_0x1a75a4,_0x24b152,_0x43dd85)),'resolvedAt':_0x1c182d,'resolvedBy':_0x538df0,'context':_0x1ae0cf,'attributes':_0x26dee9})['catch'](Z);return{'threadId':_0x464e4d['commentThreadId'],'comments':_0x464e4d['comments']};},'getCommentThread':async({channelId:_0x148899,threadId:_0x1aeb60})=>{const _0x50fda7=await this['_getService'](_0x148899)['getCommentThread'](_0x1aeb60)['catch'](X)['catch'](Z);return _0x50fda7?_0x50fda7['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x50fda7]),{'threadId':_0x50fda7['commentThreadId'],'comments':_0x50fda7['comments']['map'](tt),'context':_0x50fda7['context'],'resolvedAt':_0x50fda7['resolvedAt'],'resolvedBy':_0x50fda7['resolvedBy'],'attributes':_0x50fda7['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x2ccf09,threadId:_0x433fb5,context:_0x2ce8e4,unlinkedAt:_0x908eda,attributes:_0x3c0063})=>this['_getService'](_0x2ccf09)['updateCommentThread']({'commentThreadId':_0x433fb5,'context':_0x2ce8e4,'attributes':_0x3c0063,'unlinkedAt':_0x908eda})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0xa27697,threadId:_0x514edb})=>{const _0x3f8927=await this['_getService'](_0xa27697)['resolveCommentThread'](_0x514edb)['catch'](X)['catch'](Z);return{'threadId':_0x3f8927['commentThreadId'],'resolvedAt':_0x3f8927['resolvedAt'],'resolvedBy':_0x3f8927['resolvedBy']};},'reopenCommentThread':async({channelId:_0x442611,threadId:_0x48e36c})=>this['_getService'](_0x442611)['reopenCommentThread'](_0x48e36c)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x510d7e,threadId:_0x109c90})=>this['_getService'](_0x510d7e)['removeCommentThread'](_0x109c90)['catch'](X)['catch'](Z),'addComment':({channelId:_0x56b840,threadId:_0x39c200,commentId:_0x50126e,content:_0x2afe66,attributes:_0x11a5de})=>this['_getService'](_0x56b840)['addComment'](_0x39c200,_0x50126e,_0x2afe66,_0x11a5de)['catch'](Z),'updateComment':({channelId:_0x1f0fd6,threadId:_0x561880,commentId:_0x3d988d,content:_0x42126c,attributes:_0x3f889f})=>this['_getService'](_0x1f0fd6)['updateComment'](_0x561880,_0x3d988d,_0x42126c,_0x3f889f)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x165f44,threadId:_0x2efc6d,commentId:_0x53b28d})=>this['_getService'](_0x165f44)['removeComment'](_0x2efc6d,_0x53b28d)['catch'](X)['catch'](Z)},_0x310cec instanceof _0x8106a0){const _0x49b691=_0x310cec['config']['get']('collaboration.channelId'),_0x497db5=_0x310cec['plugins']['get'](Sessions);await this['_setUpService'](_0x49b691);const _0xc2681b=await this['_services']['get'](_0x49b691)['getConnectedSessions']();this['listenTo'](_0x497db5,'sessionAdd:'+_0x49b691,(_0x2730aa,{session:_0x164f5c})=>{_0x164f5c['id']===_0x497db5['mySessionId']&&(_0x2730aa['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x164f5c['permissions'],_0x49b691));}),_0x497db5['register'](_0x49b691,_0xc2681b);}}async['_setUpService'](_0x2986ac){if(this['_services']['has'](_0x2986ac))throw new _0x5ca446('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x2986ac});const _0x287c70=this['context']['plugins']['get'](_0x27c5eb),_0x1d9351=new CloudServicesCommentsAdapter['CommentsService'](_0x2986ac);this['_services']['set'](_0x2986ac,_0x1d9351),this['listenTo'](_0x1d9351,'commentThreadAdded',(_0x26b9a6,_0x49c9fa)=>{const {commentThreadId:_0x4efd3a,documentId:_0x1798b8,context:_0x5858a2,attributes:_0x5972e6,resolvedAt:_0x2cb39d,resolvedBy:_0xc84b4e,comments:_0x528f7b}=_0x49c9fa;_0x287c70['getCommentThread'](_0x4efd3a)||_0x287c70['addCommentThread']({'threadId':_0x4efd3a,'channelId':_0x1798b8,'comments':_0x528f7b?_0x528f7b['map'](tt):[],'context':_0x5858a2,'attributes':_0x5972e6,'resolvedAt':_0x2cb39d,'resolvedBy':_0xc84b4e,'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentThreadUpdated',(_0x5eb3c2,{commentThreadId:_0x4e38f4,documentId:_0x3ac04b,context:_0x1e4265,unlinkedAt:_0x3c24c6,attributes:_0x35e615})=>{_0x287c70['getCommentThread'](_0x4e38f4)&&_0x287c70['updateCommentThread']({'threadId':_0x4e38f4,'channelId':_0x3ac04b,'context':_0x1e4265,'unlinkedAt':_0x3c24c6,'attributes':_0x35e615,'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentThreadResolved',(_0x5f3db4,{commentThreadId:_0x9541f4,resolvedBy:_0x24de50,resolvedAt:_0x1a54fe})=>{const _0x55852d=_0x287c70['getCommentThread'](_0x9541f4);_0x55852d&&_0x55852d['resolve']({'resolvedBy':_0x24de50,'resolvedAt':_0x1a54fe,'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentThreadReopened',(_0x4e1c0d,{commentThreadId:_0xb399f2})=>{const _0x4b9190=_0x287c70['getCommentThread'](_0xb399f2);_0x4b9190&&_0x4b9190['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentThreadRemoved',(_0x31b1a1,{commentThreadId:_0x4173fb})=>{const _0x57a933=_0x287c70['getCommentThread'](_0x4173fb);_0x57a933&&_0x57a933['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentAdded',(_0x2892b3,_0x28d4e9)=>{const _0x5db292=_0x28d4e9['commentThreadId'],_0x113c74=_0x287c70['getCommentThread'](_0x5db292);_0x113c74&&_0x113c74['addComment']({...tt(_0x28d4e9),'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentUpdated',(_0x170496,{commentThreadId:_0x555ee2,commentId:_0x467e5f,content:_0x15c8f0,attributes:_0x5c3b7b})=>{const _0x871636=_0x287c70['getCommentThread'](_0x555ee2);if(_0x871636){const _0x18f243=_0x871636['getComment'](_0x467e5f);_0x18f243&&_0x18f243['update']({'content':_0x15c8f0,'attributes':_0x5c3b7b,'isFromAdapter':!0x0});}}),this['listenTo'](_0x1d9351,'commentRemoved',(_0x57faca,{commentThreadId:_0x302a16,commentId:_0x45c472})=>{const _0xc5797c=_0x287c70['getCommentThread'](_0x302a16);if(_0xc5797c){const _0x16050d=_0xc5797c['getComment'](_0x45c472);_0x16050d&&_0x16050d['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x2986ac);}['destroy'](){if(this['context']instanceof _0x8106a0){const _0x1b8942=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x1b8942);}}['_terminateService'](_0x4c588c){if(!this['_services']['has'](_0x4c588c))throw new _0x5ca446('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x4c588c});this['_getService'](_0x4c588c)['disconnect'](),this['_services']['delete'](_0x4c588c);}async['reconnect'](){for(const _0x8a9b70 of this['_services']['keys']())await this['_connectService'](_0x8a9b70);if(this['context']instanceof _0x8106a0){const _0x38d22c=this['context']['config']['get']('collaboration.channelId'),_0x541ece=this['context']['plugins']['get'](Sessions);_0x541ece['unregister'](_0x38d22c);const _0x3f1169=await this['_services']['get'](_0x38d22c)['getConnectedSessions']();_0x541ece['register'](_0x38d22c,_0x3f1169);}}async['_connectService'](_0x2adfa7){const {connection:_0x587547}=this['context']['plugins']['get'](WebSocketGateway),_0x1f1220=this['context']['plugins']['get'](_0x27c5eb),_0x2f9773=this['_services']['get'](_0x2adfa7),_0x5c06ed=await _0x2f9773['connect'](_0x587547);await this['_fetchMissingUsersForThreads'](_0x5c06ed);const _0x9f0060=new Set(Array['from'](_0x1f1220['getCommentThreads']({'channelId':_0x2adfa7}),_0x92126e=>_0x92126e['id']));for(const _0x20ab28 of _0x5c06ed)_0x20ab28['deletedAt']||_0x9f0060['delete'](_0x20ab28['commentThreadId']);for(const _0x3df88b of _0x9f0060)_0x1f1220['getCommentThread'](_0x3df88b)['remove']({'isFromAdapter':!0x0});for(const _0x525fff of _0x5c06ed){let _0x5267e0=_0x1f1220['getCommentThread'](_0x525fff['commentThreadId']);const {commentThreadId:_0x4ed941,context:_0x2a36e7,attributes:_0x5e9298,resolvedBy:_0x6b0873,resolvedAt:_0x1b669c,unlinkedAt:_0x8880e1,deletedAt:_0x3a2d85}=_0x525fff;if(_0x3a2d85)continue;_0x5267e0||(_0x5267e0=_0x1f1220['addCommentThread']({'channelId':_0x2adfa7,'threadId':_0x4ed941,'context':_0x2a36e7,'attributes':_0x5e9298||{},'resolvedBy':_0x6b0873,'resolvedAt':_0x1b669c,'unlinkedAt':_0x8880e1,'isFromAdapter':!0x0}));const _0x1d00b9=new Set(Array['from'](_0x5267e0['comments'],_0x497df7=>_0x497df7['id']));for(const _0x1a3f47 of _0x525fff['comments'])_0x1d00b9['delete'](_0x1a3f47['commentId']);for(const _0x14c884 of _0x1d00b9)_0x5267e0['getComment'](_0x14c884)['remove']({'isFromAdapter':!0x0});for(const _0x3160be of _0x525fff['comments']){const _0x547a8f=_0x5267e0['getComment'](_0x3160be['commentId']);_0x547a8f?_0x547a8f['content']!==_0x3160be['content']&&_0x547a8f['update']({'content':_0x3160be['content'],'isFromAdapter':!0x0}):_0x5267e0['addComment'](Object['assign'](tt(_0x3160be),{'isFromAdapter':!0x0}));}}}['_getService'](_0x3000c1){if(!this['_services']['has'](_0x3000c1))throw new _0x5ca446('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x3000c1});return this['_services']['get'](_0x3000c1);}async['_fetchMissingUsersForThreads'](_0x3fac74){const _0x2a971f=this['context']['plugins']['get'](_0x5783db),{connection:_0x16a8fe}=this['context']['plugins']['get'](WebSocketGateway),_0x1fbb93=new Set();for(const {resolvedBy:_0x1bc653,comments:_0x245328}of _0x3fac74){_0x1bc653&&!_0x2a971f['getUser'](_0x1bc653)&&_0x1fbb93['add'](_0x1bc653);for(const {userId:_0x4ec9d7}of _0x245328)_0x2a971f['getUser'](_0x4ec9d7)||_0x1fbb93['add'](_0x4ec9d7);}if(0x0===_0x1fbb93['size'])return;const _0x35c7a0=await _0x36e987['getMany'](_0x16a8fe,Array['from'](_0x1fbb93));for(const _0x276e6f of _0x35c7a0)_0x2a971f['getUser'](_0x276e6f['id'])||_0x2a971f['addUser'](_0x276e6f);}}async function X(_0x3c30cf){if('404'!==_0x3c30cf['code'])throw _0x3c30cf;}function Z(_0x3f3028){if((_0xf8a5e2=_0x3f3028)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0xf8a5e2['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0xf8a5e2['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0xf8a5e2;throw _0x3f3028;}function tt(_0x76e811){return{'threadId':_0x76e811['commentThreadId'],'commentId':_0x76e811['commentId'],'content':_0x76e811['content'],'createdAt':_0x76e811['createdAt'],'authorId':_0x76e811['userId'],'attributes':_0x76e811['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x525919{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
- ((()=>_0x5d9822)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x438d69,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3a079d){super(_0x3a079d);const _0x2683c2=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x2683c2);}['init'](){const _0xadbe51=this['editor']['plugins']['get'](WebSocketGateway),_0x33fbc2=this['editor']['plugins']['get'](_0x438d69);return _0x33fbc2['adapter']={'getSuggestion':async _0x33e705=>{await this['_waitForServiceReady']();const _0x71a25e=await this['_trackChangesService']['get'](_0x33e705)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x71a25e]),_0x71a25e;},'addSuggestion':async({id:_0x201484,type:_0xd30377,data:_0x19b7a5,originalSuggestionId:_0x2aceb2,attributes:_0x4554c4})=>{await this['_waitForServiceReady']();const _0x1c32b7={'id':_0x201484,'type':_0xd30377,'data':_0x19b7a5,'originalSuggestionId':_0x2aceb2,'attributes':_0x4554c4},_0x5546f0=await this['_trackChangesService']['add'](_0x201484,_0xd30377,_0x19b7a5,_0x2aceb2,_0x4554c4)['catch'](_0x4b3c57=>{if(st(_0x4b3c57))return new Promise(_0x286ed4=>{this['_bufferedRequests']['set'](_0x201484,{'resolve':_0x286ed4,'suggestionData':_0x1c32b7});});throw _0x4b3c57;});return this['_bufferedRequests']['delete'](_0x201484),_0x5546f0;},'updateSuggestion':async(_0x1d1019,_0x35affc)=>{if(await this['_waitForServiceReady'](),'open'!==_0x35affc['state'])return this['_trackChangesService']['update'](_0x1d1019,_0x35affc)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x209c8d,_0x61099)=>{_0x33fbc2['hasSuggestion'](_0x61099['id'])&&(_0x33fbc2['getSuggestion'](_0x61099['id'])['attributes']=_0x61099['attributes']);}),this['_trackChangesService']['connect'](_0xadbe51['connection'])['then'](_0x11465c=>(_0xadbe51['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x11465c)['then'](()=>{for(const _0x1b1c9d of _0x11465c){_0x33fbc2['addSuggestionData'](_0x1b1c9d)['_saved']=!0x0;}})));}async['reconnect'](){const _0x23f075=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x18b81a}=this['editor']['plugins']['get'](WebSocketGateway),_0x4bb54d=await this['_trackChangesService']['connect'](_0x18b81a);await this['_fetchMissingUsersForThreads'](_0x4bb54d);for(const {suggestionData:_0x91e49b,resolve:_0x427bcc}of this['_bufferedRequests']['values']()){let _0x2d6035=_0x4bb54d['find'](_0x16f711=>_0x16f711['id']===_0x91e49b['id']);_0x2d6035||(_0x2d6035=await this['_trackChangesService']['add'](_0x91e49b['id'],_0x91e49b['type'],_0x91e49b['data'],_0x91e49b['originalSuggestionId'])),_0x427bcc(_0x2d6035);}for(const _0x598095 of _0x4bb54d)_0x23f075['hasSuggestion'](_0x598095['id'])||_0x23f075['addSuggestionData'](_0x598095);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x7fe1fa=>{this['listenTo'](this['_trackChangesService'],'connected',_0x5047b2=>{_0x5047b2['off'](),_0x7fe1fa();});});}async['_fetchMissingUsersForThreads'](_0x12546f){const _0x4341d2=this['editor']['plugins']['get'](_0x5783db),{connection:_0x50f296}=this['editor']['plugins']['get'](WebSocketGateway),_0xf78488=new Set();for(const {authorId:_0x3c74ea}of _0x12546f)_0x4341d2['getUser'](_0x3c74ea)||_0xf78488['add'](_0x3c74ea);if(0x0===_0xf78488['size'])return;const _0x31186d=await _0x36e987['getMany'](_0x50f296,Array['from'](_0xf78488));for(const _0x1ea51e of _0x31186d)_0x4341d2['getUser'](_0x1ea51e['id'])||_0x4341d2['addUser'](_0x1ea51e);}}function et(_0x707dc5){if(st(_0x707dc5))return new Promise(()=>{});throw _0x707dc5;}function st(_0x37434f){return _0x37434f['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x37434f['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x525919{static get['requires'](){return[_0x6f1f0e,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x18ed83=this['editor']['plugins']['get'](WebSocketGateway),_0x46b68f=this['editor']['plugins']['get'](_0x3a954d),_0x178ca4=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x18ed83,'change:state',(_0x3b8ec7,_0x5db085,_0xc5531f)=>{_0x46b68f['isThreadsLoadingPaused']='connected'!==_0xc5531f;});}),this['listenTo'](_0x18ed83,'change:state',(_0x23928f,_0x2e137d,_0x3ae3f9)=>{this['editor']['plugins']['get'](_0x27c5eb)['switchReadOnly']('connected'!==_0x3ae3f9);}),_0x178ca4['_setUpService'](this['editor']['config']['get']('collaboration.channelId'));}['destroy'](){this['editor']['plugins']['get'](CloudServicesCommentsAdapter)['_terminateService'](this['editor']['config']['get']('collaboration.channelId')),super['destroy']();}}class RealTimeCollaborativeTrackChanges extends _0x525919{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x5a552b];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x525919{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
- ((()=>_0x3af4a6)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x134b36,Sessions,_0x5783db];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1b7faa){super(_0x1b7faa);const _0x19b20a=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x19b20a);}async['init'](){const _0x41d5a0=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0xc265da=_0x41d5a0['serverHistory'],_0x324637=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0xc265da,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x41d5a0['sessionId']});const _0x3279db=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x53ac72,_0x43a706=await _0x39cbd3['isBundleUploaded'](_0x324637['connection'],_0x3279db);this['editor']['plugins']['get'](_0x134b36)['adapter']={'getRevision':async({revisionId:_0x2c6e0f})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x2c6e0f)),'updateRevisions':async _0x3fa2ce=>{await this['_waitForServiceReady']();const _0x36d0a0=this['_revisionTracker']['currentRevision'];if(_0x43a706&&0x1===_0x3fa2ce['length']&&_0x3fa2ce[0x0]['id']===_0x36d0a0['id'])return _0x3fa2ce;for(const _0x11e449 of _0x3fa2ce)_0x11e449['id']===_0x36d0a0['id']&&(_0x11e449['isEmptyCurrent']=_0x11e449['fromVersion']===_0x11e449['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x3fa2ce,this['_lastRequestId'])['then'](_0x1c7968=>(this['_lastRequestId']=_0x1c7968,_0x3fa2ce))['catch'](_0x2e55b5=>{if(it(_0x2e55b5)||'400'===_0x2e55b5['code']&&void 0x0!==_0x2e55b5['data']['wrongRequestId']){for(const _0x2052de of _0x3fa2ce){!this['_revisionTracker']['repository']['getRevision'](_0x2052de['id'])||this['_revisionTracker']['_bufferUpdate'](_0x2052de['id'],_0x2052de,!0x1);}if(it(_0x2e55b5)&&'destroyed'!==this['editor']['state'])throw _0x2e55b5;return _0x3fa2ce;}throw _0x2e55b5;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0xf0b2d9,{revisionsData:_0x115c3d,requestId:_0x102678})=>{Math['max'](..._0x115c3d['map'](_0x178663=>_0x178663['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x115c3d,_0x102678);}):this['_handleRevisionsUpdate'](_0x115c3d,_0x102678);});const {revisions:_0x111102,requestId:_0x386487}=await this['_revisionHistoryService']['connect'](_0x324637['connection']);_0x324637['addToReconnectionStack'](this),this['_lastRequestId']=_0x386487,await this['_fetchMissingUsers'](_0x111102);for(const _0x36ef3c of _0x111102)this['_revisionTracker']['addRevisionData'](_0x36ef3c);this['listenTo'](_0x41d5a0,'change:_isConnected',(_0x3b4ede,_0x3e8671,_0x66cd40)=>{_0x66cd40&&(this['_oldOffset']=_0x41d5a0['_offset'],_0x3b4ede['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x324637,'state',_0x20dbfb=>_0x20dbfb===_0xf3d8b5['CONNECTED']);}async['reconnect'](){const _0x9d61a6=this['editor']['plugins']['get'](WebSocketGateway),_0x3ef2fd=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x5eca00=async()=>{const _0x257ff8=this['_revisionTracker']['currentRevision'],_0x444b3d=_0x257ff8['id'],_0x1be6cc=_0x444b3d!==_0x3ef2fd['sessionId'];if(_0x1be6cc){const _0x1e010d=_0x3ef2fd['_offset']-this['_oldOffset'],_0x2f0467=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x257ff8['toVersion']+_0x1e010d!==_0x2f0467){const _0x33382d=_0x257ff8['fromVersion']+_0x1e010d,_0x681b8d=this['editor']['plugins']['get'](_0x5783db),_0x1ccc56=this['_revisionTracker']['buildRevisionData']({'revision':_0x257ff8,'from':_0x33382d,'to':_0x2f0467});_0x1ccc56['id']=_0x257ff8['id'];const _0x29d3d9=_0x1ccc56['authorsIds']['map'](_0x55e0bf=>_0x681b8d['getUser'](_0x55e0bf));_0x257ff8['_update']({..._0x1ccc56,'authors':_0x29d3d9},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x257ff8['id'],_0x1ccc56,!0x0);}this['_revisionTracker']['_startingVersion']=_0x2f0467,(_0x257ff8['toVersion']===_0x257ff8['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x444b3d)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x444b3d),this['_revisionTracker']['_createCurrentRevision'](_0x2f0467));}const {revisions:_0x31135b,requestId:_0x4ca50a}=await this['_revisionHistoryService']['reconnect'](_0x9d61a6['connection'],this['_lastRequestId']);_0x1be6cc&&_0x31135b['length']>0x0?_0x3ef2fd['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x31135b),this['_handleRevisionsUpdate'](_0x31135b,_0x4ca50a),this['_revisionTracker']['sendBufferedUpdates']());};return _0x3ef2fd['_isConnected']?_0x5eca00():new Promise((_0x4404d2,_0x532e26)=>{_0x3ef2fd['once']('change:_isConnected',()=>{_0x5eca00()['then'](_0x4404d2)['catch'](_0x532e26);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x205c4f=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x4d9186=>{_0x4d9186['off'](),_0x205c4f();});});}['_getLatestVersionFromServerOperations'](){const _0xffe20c=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x4ec062 of _0xffe20c)if('marker'!==_0x4ec062['type']||_0x4ec062['affectsData'])return _0x4ec062['baseVersion']+0x1;}['_getLatestVersion'](){const _0xb7d0a8=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x43ea78=>{_0xb7d0a8['_isPendingUpdate']?_0xb7d0a8['once']('change:_isPendingUpdate',()=>{_0x43ea78(this['_getLatestVersionFromServerOperations']());}):_0x43ea78(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x3e5ee4,_0x1d4e37){const _0x387fef=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x1d4e37;for(const _0x3690f8 of _0x3e5ee4){const _0xac7572=_0x387fef['getRevision'](_0x3690f8['id']);if(_0xac7572){if((_0x3690f8['fromVersion']||_0x3690f8['toVersion'])&&(_0x3690f8['diffData']=null),_0xac7572===this['_revisionTracker']['currentRevision']){const _0x37c998=Math['max'](_0xac7572['toVersion'],_0x3690f8['toVersion']),_0x3db5c9=Math['max'](_0xac7572['fromVersion'],_0x3690f8['fromVersion']);let _0x549e33;_0xac7572['toVersion']===_0x3690f8['toVersion']&&_0xac7572['fromVersion']===_0x3690f8['fromVersion']?(_0x549e33=!0x0,this['_preventResendingRevisionData'](_0x3690f8)):_0x3690f8['toVersion']===_0x37c998&&_0x3690f8['fromVersion']===_0x3db5c9?_0x549e33=!0x1:(_0xac7572['toVersion']===_0x37c998&&_0xac7572['fromVersion']===_0x3db5c9||this['_fixRevision']({'revision':_0xac7572,'from':_0x3db5c9,'to':_0x37c998}),_0x549e33=!0x0),_0x549e33&&(delete _0x3690f8['fromVersion'],delete _0x3690f8['toVersion'],delete _0x3690f8['diffData'],delete _0x3690f8['createdAt'],delete _0x3690f8['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x3690f8),this['_preventResendingRevisionData'](_0x3690f8);}else this['_revisionTracker']['addRevisionData'](_0x3690f8);}const _0x532663=_0x387fef['getRevisions']();_0x532663['reverse']();for(let _0x5981da=0x0;_0x5981da<_0x532663['length']-0x1;_0x5981da++){const _0x5dde37=_0x532663[_0x5981da],_0x2d4556=_0x532663[_0x5981da+0x1];if(_0x5dde37['fromVersion']<_0x2d4556['toVersion']){const _0x348a18=_0x2d4556['toVersion'],_0x53175b=Math['max'](_0x348a18,_0x5dde37['toVersion']);this['_fixRevision']({'revision':_0x5dde37,'from':_0x348a18,'to':_0x53175b});}}}['_fixRevision']({revision:_0x348b07,from:_0x5e7556,to:_0x1bcafc}={}){const _0x2c663c=this['editor']['plugins']['get'](_0x5783db),_0x356ae8=this['_revisionTracker']['buildRevisionData']({'revision':_0x348b07,'from':_0x5e7556,'to':_0x1bcafc});_0x356ae8['authors']=_0x356ae8['authorsIds']['map'](_0x34df5e=>_0x2c663c['getUser'](_0x34df5e)),_0x348b07['_update'](_0x356ae8);}['_preventResendingRevisionData'](_0x4a81bd){const _0x28b9ba={};_0x28b9ba['id']=_0x4a81bd['id'];for(const _0x13b282 of Object['keys'](_0x4a81bd))'id'!==_0x13b282&&(_0x28b9ba[_0x13b282]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x28b9ba['id'],_0x28b9ba,!0x0);}async['_fetchMissingUsers'](_0x12fcd0){const _0x2d1365=this['editor']['plugins']['get'](_0x5783db),{connection:_0x547665}=this['editor']['plugins']['get'](WebSocketGateway),_0x3beae2=new Set();for(const _0x1362ce of _0x12fcd0){for(const _0x549608 of _0x1362ce['authorsIds'])_0x554e1f(_0x549608);_0x1362ce['creatorId']&&_0x554e1f(_0x1362ce['creatorId']);}if(0x0===_0x3beae2['size'])return;const _0x5377f7=await _0x36e987['getMany'](_0x547665,Array['from'](_0x3beae2));for(const _0x783c66 of _0x5377f7)_0x2d1365['getUser'](_0x783c66['id'])||_0x2d1365['addUser'](_0x783c66);function _0x554e1f(_0x5a6d82){_0x2d1365['getUser'](_0x5a6d82)||_0x3beae2['add'](_0x5a6d82);}}}function it(_0x442a95){return _0x442a95['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x442a95['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x442a95['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x525919{static get['requires'](){return[_0x134b36,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x5f3d1a{['_collapseAt'];constructor(_0x4f8a49,_0x5f1617=0x6){super(_0x4f8a49);const _0x163c6d=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x5f1617,this['bind']('isHidden')['to'](this,'usersCount',_0x2d4d4b=>_0x2d4d4b<_0x5f1617),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x163c6d['if']('isHidden','ck-presence-list__counter--hidden')],'role':'listitem'},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter']},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter__text']},'children':[{'text':_0x163c6d['to']('usersCount',_0x529307=>'+'+(_0x529307-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x5f3d1a{['items'];['keystrokes'];constructor(_0xe7f3a5){super(_0xe7f3a5);const _0x259aeb=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x3192ca(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x259aeb['if']('hasPopup'),'aria-expanded':_0x259aeb['to']('isExpanded',_0x5f2629=>this['hasPopup']&&String(_0x5f2629)),'aria-label':_0x259aeb['to']('hasPopup',_0x411e5e=>K(_0xe7f3a5,_0x411e5e?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x259aeb['to']('hasPopup',_0x453755=>!!_0x453755&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x259aeb['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x259aeb['to'](_0x509982=>{const _0x1cbdb9=_0x509982,_0x42bef2=document['querySelector']('.ck-presence-list__dropdown-list'),_0x149810=document['querySelector']('.ck-balloon-panel_with-arrow');_0x42bef2?.['contains'](_0x1cbdb9['relatedTarget'])||_0x149810?.['contains'](_0x1cbdb9['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x39b393,_0x8c6db8,_0x3dace6)=>{this['element']&&(_0x3dace6?this['element']['setAttribute']('aria-expanded',String(this['isExpanded'])):this['element']['removeAttribute']('aria-expanded'));});}['focus'](){this['element']['focus']();}['render'](){super['render'](),this['keystrokes']['listenTo'](this['element']);}}class PresenceListView extends _0x5f3d1a{['counterView'];['inlineListView'];constructor(_0xa47ce7,_0x17aeed=0x6){super(_0xa47ce7);const _0x645691=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x17aeed),this['inlineListView']=new PresenceInlineListView(_0xa47ce7),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x1599d6 of this['inlineListView']['items'])_0x1599d6['tooltipPosition']='s';this['inlineListView']['items']['first']&&(this['inlineListView']['items']['first']['tooltipPosition']='se');}),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list','ck-reset','ck-rounded-corners',_0x645691['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x5f3d1a{['listWrapperView'];constructor(_0x3b30ab,_0x2cddab){super(_0x3b30ab);const _0x3bb737=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x3b30ab,_0x2cddab),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x3b30ab,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x3bb737['to'](_0x539c19=>{const _0x4c4c40=_0x539c19,_0x5ab531=document['querySelector']('.ck-presence-list__list'),_0x38ae41=document['querySelector']('.ck-balloon-panel_with-arrow');_0x5ab531?.['contains'](_0x4c4c40['relatedTarget'])||_0x38ae41?.['contains'](_0x4c4c40['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x2aa0a6{constructor(_0x145179,_0x572313){super(_0x145179);const _0x181570=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x572313?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x181570['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x181570['to']('role'),'aria-label':_0x181570['to']('ariaLabel'),'aria-labelledby':_0x181570['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x410313['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x44d8ea=this['element'];_0x44d8ea&&(this['_isScrollable']=Math['max'](_0x44d8ea['scrollHeight'],_0x44d8ea['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0xf6d61d{['userView'];constructor(_0x330cba,_0x54c151,_0x50ca0e){super(_0x330cba);const _0x2d04b4=this['bindTemplate'];this['userView']=new _0x5a2b39(_0x330cba,_0x54c151);const _0x2683f5={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x54c151['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x54c151['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x54c151['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x54c151['color']['getColorVariable'](),'--ck-user-color-alpha':_0x54c151['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x50ca0e&&(_0x2683f5['tag']='button',_0x2683f5['on']={'click':_0x2d04b4['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x2683f5);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x5f3d1a{['userView'];['markerView'];constructor(_0xf4855b,_0x3e3ad3,_0x307dfb){super(_0xf4855b);const _0x336995=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x5a2b39(_0xf4855b,_0x3e3ad3),this['markerView']=new MarkerView(_0xf4855b,_0x3e3ad3);const _0x18a10b=new _0x3a59ab(_0xf4855b);_0x18a10b['template']['tag']='span',_0x18a10b['text']=_0x3e3ad3['name'];const _0x13fa5c={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x336995['to']('isFocusable',_0x18f7fa=>!!_0x18f7fa&&0x0),'aria-labelledby':_0x18a10b['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x336995['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x336995['to']('hasTooltip',_0x197c66=>!_0x197c66),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x18a10b]};_0x307dfb&&(_0x13fa5c['tag']='button',_0x13fa5c['on']={'click':_0x336995['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x13fa5c);}}class MarkerView extends _0x5f3d1a{constructor(_0xf1a6ea,_0x3d8432){super(_0xf1a6ea),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x3d8432['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x3d8432['color']['getColorVariable'](),'--ck-user-color-alpha':_0x3d8432['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x301857{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x579062){super(_0x579062),this['context']['config']['define']('presenceList',nt);const _0x41b1db=_0x579062['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x41b1db)throw new _0x5ca446('presencelist-collapseat-invalid-format',this);if(_0x41b1db<0x1)throw new _0x5ca446('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x4be9e8(),this['balloonPanelView']=new _0x31f4d8(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x4f477f of this['_allConnectedUsers'])this['_handleUserAdd'](_0x4f477f);this['listenTo'](this['_allConnectedUsers'],'add',(_0x1b1643,_0x12c858)=>{this['_handleUserAdd'](_0x12c858);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x4f3076,_0xd68de2)=>{this['_handleUserRemove'](_0xd68de2);});}['_createView'](){const _0x1d6631=this['context'],_0x524297=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x574409=this['balloonPanelView'];if(!_0x15a965(_0x1d6631['config']['get']('presenceList.container')))throw new _0x5ca446('presencelist-missing-container',this);return _0x524297['counterView']['bind']('usersCount')['to'](this),_0x524297['bind']('isCollapsed')['to'](this,'usersCount',_0x2e1bff=>{const {collapseAt:_0x292c7e}=_0x1d6631['config']['get']('presenceList'),_0x532085=_0x2e1bff>=_0x292c7e;if(_0x532085&&!_0x524297['inlineListView']['items']['find'](_0x2ebc69=>_0x2ebc69 instanceof PresenceCounterView)){const _0x25df38=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x25df38&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x524297['inlineListView']['items']['add'](_0x524297['counterView']);}return _0x532085||this['hideDropdown'](),_0x532085;}),_0x524297['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x4494ce=>{const _0x392115=_0x1d6631['config']['get']('presenceList'),_0x487abf=new PresenceInlineListItemView(_0x1d6631['locale'],_0x4494ce,!!_0x392115['onClick']);return _0x487abf['bind']('hasTooltip')['to'](_0x524297,'isCollapsed',_0x217c12=>!_0x217c12),_0x487abf['bind']('isFocusable')['to'](_0x524297,'isCollapsed',_0x4633bf=>!_0x4633bf),_0x392115['onClick']&&this['listenTo'](_0x487abf,'execute',()=>{this['view']['isCollapsed']||_0x392115['onClick'](_0x4494ce,_0x487abf['element']);}),_0x487abf;}),this['listenTo'](_0x524297['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x524297['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x524297['inlineListView']['keystrokes']['set']('Enter',(_0x5b8dcc,_0x55a78f)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x55a78f());}),_0x524297['render'](),_0x574409['render'](),_0x507db1({'emitter':_0x524297,'activator':()=>_0x574409['isVisible'],'contextElements':[_0x574409['element'],_0x524297['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x1d6631['config']['get']('presenceList.container')['appendChild'](_0x524297['element']),this['_bodyCollection']=new _0x6aff50(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x524297;}['_handleUserAdd'](_0x18dd54){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x18dd54['isMe'])return;const _0x5a378d=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x5a378d-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x141ab1=_0x18dd54['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x18dd54,_0x141ab1);}['_handleUserRemove'](_0x321f85){this['usersCount']--;const {collapseAt:_0x565725}=this['context']['config']['get']('presenceList'),_0x53edaa=this['usersCount']>=_0x565725;if(this['currentDisplayedUsers']['get'](_0x321f85['id']))this['currentDisplayedUsers']['remove'](_0x321f85['id']);else{if(_0x53edaa&&this['currentDisplayedUsers']['length']+0x1===_0x565725-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x53edaa?0x1:0x0)<this['usersCount']){for(const _0xaa381d of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0xaa381d['id'])&&(this['currentDisplayedUsers']['add'](_0xaa381d,Math['min'](this['currentDisplayedUsers']['length']-(_0x53edaa?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x53edaa?0x1:0x0)===_0x565725-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x59b485=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x59b485['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x2cac6f}=this['presenceDropdownView'];_0x2cac6f['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x547d7b=>{if(!_0x59b485['displayMe']&&_0x547d7b['isMe'])return null;const _0xf384bd=new PresenceDropdownListItemView(this['context']['locale'],_0x547d7b,!!_0x59b485['onClick']);return _0x59b485['onClick']&&this['listenTo'](_0xf384bd,'execute',()=>{_0x59b485['onClick'](_0x547d7b,_0xf384bd['element']);}),_0xf384bd;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x2cac6f['focus'](),_0x2cac6f['checkIfScrollable']();const _0x296c0e=(_0x16cfb5,_0x2ac26b)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x2ac26b();};_0x2cac6f['keystrokes']['set']('Esc',_0x296c0e),_0x2cac6f['keystrokes']['set']('Shift+Tab',_0x296c0e),_0x2cac6f['keystrokes']['set']('Tab',(_0x2933cd,_0x36d16c)=>{!function(_0x4c7d4f){const _0x595c45=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x21f423=>_0x21f423+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x45b435=[...document['body']['querySelectorAll'](_0x595c45)]['filter'](_0x50fd59=>_0x50fd59===document['activeElement']||_0x50fd59['offsetWidth']+_0x50fd59['offsetHeight']>0x0)['sort']((_0x46e8e5,_0x17c8d1)=>(_0x46e8e5['tabIndex']||0x0)-(_0x17c8d1['tabIndex']||0x0)),_0x157018=_0x45b435['indexOf'](_0x4c7d4f),_0x10883e=_0x45b435[(_0x157018+0x1)%_0x45b435['length']];_0x10883e&&_0x10883e['focus']();}(this['view']['element']),this['hideDropdown'](),_0x36d16c();}),_0x2cac6f['focusTracker']['add'](this['view']['element']),_0x2cac6f['focusTracker']['on']('change:isFocused',(_0x54f347,_0x35cb54,_0x2cda73)=>{_0x2cda73||this['hideDropdown']();});}['hideDropdown'](){this['presenceDropdownView']&&(this['view']['inlineListView']['isExpanded']=!0x1,this['balloonPanelView']['unpin'](),this['balloonPanelView']['content']['remove'](this['presenceDropdownView']),this['presenceDropdownView']['destroy'](),this['presenceDropdownView']=void 0x0);}['destroy'](){super['destroy'](),this['view']&&this['view']['isRendered']&&this['view']['destroy'](),this['_bodyCollection']&&(this['_bodyCollection']['detachFromDom'](),this['_bodyCollection']['destroy'](),this['_bodyCollection']=null);}}class PresenceList extends _0x301857{static get['requires'](){return[Sessions,PresenceListUI];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}export{CloudServicesCommentsAdapter,CloudServicesRevisionHistoryAdapter,CloudServicesTrackChangesAdapter,PresenceList,PresenceListUI,RealTimeCollaborationClient,RealTimeCollaborativeComments,RealTimeCollaborativeEditing,RealTimeCollaborativeRevisionHistory,RealTimeCollaborativeTrackChanges,Sessions,WebSocketGateway};
23
+ import{ContextPlugin as _0x891fdc,Plugin as _0x18e830,PendingActions as _0x459582,Context as _0x1db326}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x1c552b,CKEditorError as _0x10b4e1,Collection as _0x20fb3f,global as _0x17d194,version as _0x51023f,uid as _0x9f4ec6,KeystrokeHandler as _0x5cc69c}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x5b9c9b,View as _0x4a5408,ListView as _0x4c2180,ListItemView as _0x57caa1,LabelView as _0x28a401,BalloonPanelView as _0x2a43c7,clickOutsideHandler as _0x154176,BodyCollection as _0x1c2f2b}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x23f357,History as _0xde6414,NoOperation as _0x4a4bb9,InsertOperation as _0x5ec806,MarkerOperation as _0x28fe23,RootAttributeOperation as _0x1603ea,transformOperationSets as _0x52cee7,OperationFactory as _0x124a27}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x5c766a}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x59254a,WEB_SOCKET_GATEWAY_STATES as _0x3c6eda,CollaborativeEditingService as _0x25acf6,User as _0x544a92,CommentsService as _0x1962a0,TrackChangesService as _0x743596,RevisionHistoryService as _0x4a0099,EditorService as _0x483c48}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x531388,UserView as _0x6af10f}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x5cd15f}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x400485,TrackChanges as _0x250f30}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x5d9000,Comments as _0x494d20,CommentsEditing as _0x3be2c1}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x43f978}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x594a36}from'es-toolkit/compat';class WebSocketGateway extends _0x891fdc{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
+ ((()=>_0x59254a)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x5c766a,_0x5b9c9b];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x9d24b4){super(_0x9d24b4),this['set']('state',_0x3c6eda['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x1c552b())();}['init'](){const _0x3f3785=this['context'],_0x4f45b9=_0x3f3785['plugins']['get'](_0x5c766a),_0x35ad41=_0x3f3785['plugins']['get'](_0x5b9c9b);if(!_0x4f45b9['token'])throw new _0x10b4e1('websocketgateway-missing-token',this);if(!_0x4f45b9['webSocketUrl'])throw new _0x10b4e1('websocketgateway-missing-websocket-url',this);return this['_domEmitter']['listenTo'](window,'offline',()=>this['_isBrowserOffline']=!0x0),this['_domEmitter']['listenTo'](window,'online',()=>this['_isBrowserOffline']=!0x1),this['context']['config']['define']('cloudServices.connectionTimeout',0xa),this['context']['config']['define']('cloudServices.requestTimeout',0x14),WebSocketGateway['WebSocketGateway']['connect'](_0x4f45b9['token'],_0x4f45b9['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x2ee97d=>{if(this['connection']=_0x2ee97d,this['bind']('state')['to'](_0x2ee97d,'state',this,'_isBrowserOffline',(_0x57a070,_0x220f3e)=>('connected'!==_0x57a070&&(this['_shouldPluginsReconnect']=!0x0),_0x220f3e||_0x57a070!==_0x3c6eda['CONNECTED']?_0x3c6eda['DISCONNECTED']:this['state']==_0x3c6eda['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x3c6eda['CONNECTING']):_0x3c6eda['CONNECTED'])),this['connection']['on']('error',(_0x1d61b4,_0x54f712)=>{if('limitExceeded'!==_0x54f712['code'])throw console['error'](_0x54f712),new _0x10b4e1('cloudservices-init',null,{'originalError':_0x54f712});_0x35ad41['showWarning']('The\x20limit\x20of\x20maximum\x20concurrent\x20connections\x20that\x20the\x20collaboration\x20server\x20can\x20handle\x20has\x20been\x20reached.\x20Try\x20opening\x20the\x20document\x20again\x20in\x20a\x20few\x20minutes.\x20Please\x20contact\x20your\x20system\x20administrator\x20if\x20the\x20problem\x20persists.',{'title':'Connected\x20users\x20limit\x20exceeded','namespace':'real-time-collaboration'});}),!_0x2ee97d['me'])return new Promise(_0x4e212d=>_0x2ee97d['on']('change:me',_0x4e212d));})['catch'](_0x432282=>{throw console['error'](_0x432282),new _0x10b4e1('cloudservices-init',null,{'originalError':_0x432282});});}['addToReconnectionStack'](_0x5da3f1){if('function'!=typeof _0x5da3f1['reconnect'])throw new _0x10b4e1('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x5da3f1))throw new _0x10b4e1('websocketgateway-plugin-already-registered',this,{'name':_0x5da3f1['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x5da3f1);}['removeFromReconnectionStack'](_0x175e33){this['_reconnectionStack']['delete'](_0x175e33);}['isInReconnectionStack'](_0x3261cd){return this['_reconnectionStack']['has'](_0x3261cd);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x4808f7=>_0x4808f7['reconnect']())))['then'](()=>this['state']=_0x3c6eda['CONNECTED'])['catch'](_0x569d95=>{throw console['error'](_0x569d95),new _0x10b4e1('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x3c6eda['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x891fdc{['channelSessions'];['channelConnectedUsers'];['allConnectedUsers'];['_registeredSessions'];['_uniqueUsersCount'];['_users'];static get['pluginName'](){return'Sessions';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}static get['requires'](){return[WebSocketGateway,_0x531388];}constructor(_0x255938){super(_0x255938),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x20fb3f(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x531388);}['init'](){const _0x456542=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x456542,'change:state',(_0xe07415,_0xfd89e4,_0x376271)=>{if('connected'!==_0x376271)this['channelSessions']['forEach'](_0x1c5e0c=>_0x1c5e0c['clear']()),this['channelConnectedUsers']['forEach'](_0x2adb02=>_0x2adb02['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x1fb288,_0x41de78]of this['_registeredSessions'])for(const _0x12aeb0 of _0x41de78)this['_handleSessionAdd'](_0x1fb288,_0x12aeb0);}}),this['_createUser'](_0x456542['connection']['me'],!0x0);}['register'](_0x1dcda7,_0x223fe4){if(this['_registeredSessions']['has'](_0x1dcda7))throw new _0x10b4e1('sessions-register-already-registered',null,{'channelId':_0x1dcda7});this['_registeredSessions']['set'](_0x1dcda7,_0x223fe4),this['channelSessions']['set'](_0x1dcda7,new _0x20fb3f()),this['channelConnectedUsers']['set'](_0x1dcda7,new _0x20fb3f()),this['listenTo'](_0x223fe4,'add',(_0x11dda5,_0x1521f9)=>this['_handleSessionAdd'](_0x1dcda7,_0x1521f9)),this['listenTo'](_0x223fe4,'remove',(_0x260655,_0x284998)=>this['_handleSessionRemove'](_0x1dcda7,_0x284998));for(const _0x51e4ac of _0x223fe4)this['_handleSessionAdd'](_0x1dcda7,_0x51e4ac);}['unregister'](_0xeb776f){if(!this['_registeredSessions']['has'](_0xeb776f))throw new _0x10b4e1('sessions-unregister-not-exist',null,{'channelId':_0xeb776f});const _0x2cc4dd=this['_registeredSessions']['get'](_0xeb776f);this['stopListening'](_0x2cc4dd);for(const _0x3e435b of _0x2cc4dd)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0xeb776f,_0x3e435b);this['_registeredSessions']['delete'](_0xeb776f),this['channelSessions']['delete'](_0xeb776f),this['channelConnectedUsers']['delete'](_0xeb776f);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x4ef3ed){for(const _0xec600e of this['channelSessions']['values']())for(const _0x506c92 of _0xec600e)if(_0x506c92['id']===_0x4ef3ed)return _0x506c92['user'];}['getUserSessions'](_0x12fa11,_0x4c8ac1){const _0x37d273=_0x4c8ac1?[this['channelSessions']['get'](_0x4c8ac1)]:this['channelSessions']['values'](),_0x147506=new Set();for(const _0x4d9e62 of _0x37d273)for(const _0x4762ef of _0x4d9e62)_0x4762ef['user']['id']===_0x12fa11['id']&&_0x147506['add'](_0x4762ef['id']);return _0x147506;}['getUserRole'](_0x4ad32c){for(const _0x358f77 of this['channelSessions']['values']())for(const _0x2cbca0 of _0x358f77)if(_0x2cbca0['user']===_0x4ad32c)return _0x2cbca0['role'];}['_handleSessionAdd'](_0x38e48d,_0x5da4a1){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x4d613d=_0x5da4a1['user'],_0x284a5a=this['_users']['getUser'](_0x4d613d['id'])||this['_createUser'](_0x4d613d),_0x50e0d8=Object['assign']({},_0x5da4a1,{'user':_0x284a5a});if(this['channelSessions']['get'](_0x38e48d)['add'](_0x50e0d8),!_0x4d613d['hiddenInPresenceList']){const _0x552e3c=this['channelConnectedUsers']['get'](_0x38e48d);_0x552e3c['has'](_0x284a5a['id'])||_0x552e3c['add'](_0x284a5a),this['allConnectedUsers']['has'](_0x284a5a['id'])||_0x4d613d['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x284a5a,_0x284a5a['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x38e48d,{'channelId':_0x38e48d,'session':_0x50e0d8});}['_handleSessionRemove'](_0x243e34,_0x25abe2){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x7f216b=this['channelConnectedUsers']['get'](_0x243e34),_0x10f066=_0x25abe2['user'];_0x10f066['id']&&(this['channelSessions']['get'](_0x243e34)['remove'](_0x25abe2['id']),_0x7f216b['has'](_0x10f066['id'])&&!this['getUserSessions'](_0x10f066,_0x243e34)['size']&&_0x7f216b['remove'](_0x10f066['id']),this['allConnectedUsers']['get'](_0x10f066['id'])&&!this['getUserSessions'](_0x10f066)['size']&&this['allConnectedUsers']['remove'](_0x10f066['id']));}['_createUser'](_0x4b88f2,_0xc194cd){const _0x47b116=this['_users']['addUser'](_0x4b88f2);return _0xc194cd&&this['_users']['defineMe'](_0x4b88f2['id']),_0x47b116['orderNumber']=this['_uniqueUsersCount']++,_0x47b116;}}class UserMarkers extends _0x18e830{['_domEmitter']=new(_0x1c552b())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x16d763=this['editor'],_0x12e57b=_0x16d763['plugins']['get'](Sessions);_0x16d763['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x945411,{writer:_0x2656c5})=>function(_0xa9a14,_0x21a10f,_0x50fa26,_0x339016){const _0x4f7477=_0xa9a14['markerName']['split'](':')[0x2],_0x440851=_0x50fa26['getUserBySessionId'](_0x4f7477);if(!_0x440851||_0x4f7477===_0x50fa26['mySessionId'])return;if(!_0x339016['model']['schema']['checkChild'](_0xa9a14['markerRange']['start'],'$text'))return;const _0x340df6={'class':'ck-user__marker\x20'+_0x440851['color']['getMarkerClass'](),'style':Y(_0x440851),'data-name':_0x440851['name'],'data-session-id':_0x4f7477},_0x597176=_0x339016['model']['markers']['get'](_0xa9a14['markerName']),_0x3a8f88=_0x597176['getStart'](),_0x245e45=_0x3a8f88['nodeAfter'],_0x19a168=_0x339016['model']['schema'];if(_0x245e45&&_0x19a168['isObject'](_0x245e45)&&_0x19a168['isInline'](_0x245e45)&&!_0x339016['model']['markers']['get']('user:range:'+_0x4f7477)['getRange']()['isCollapsed'])return;const _0x261e9b=_0x3a8f88['parent'];return _0x339016['model']['schema']['isLimit'](_0x261e9b)&&!_0x339016['model']['hasContent'](_0x261e9b)&&(_0x340df6['contenteditable']=!0x1),function(_0x2bafb8,_0x5bbf65,_0x559b4b){const _0x24497b=_0x2bafb8['createUIElement']('span',_0x5bbf65);return _0x2bafb8['setCustomProperty']('userPositionMarker',!0x0,_0x24497b),_0x24497b['render']=function(_0x46b722){const _0x15334a=this['toDomElement'](_0x46b722),_0x3f9253=document['createElement']('span');return _0x3f9253['classList']['add']('ck-user__marker-tooltip'),_0x3f9253['setAttribute']('contenteditable','false'),_0x3f9253['setAttribute']('spellcheck','false'),_0x3f9253['textContent']=_0x559b4b['name'],_0x15334a['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x3f9253['outerHTML']+'⁠',_0x15334a['addEventListener']('mouseenter',()=>{_0x15334a['classList']['add']('ck-user__marker_hovered');}),_0x15334a['addEventListener']('mouseleave',()=>{_0x15334a['classList']['remove']('ck-user__marker_hovered');}),_0x15334a;},_0x24497b['isSimilar']=function(_0x16e044){return!(!this['getCustomProperty']('userPositionMarker')||!_0x16e044['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x16e044['getAttribute']('data-session-id'));},_0x24497b;}(_0x21a10f,_0x340df6,_0x440851);}(_0x945411,_0x2656c5,_0x12e57b,_0x16d763)}),_0x16d763['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x12b97b=>function(_0x45b8e0,_0x2cf952){const _0x2196c5=_0x45b8e0['markerName']['split'](':')[0x2];if(_0x2196c5===_0x2cf952['mySessionId'])return null;const _0x47a28a=_0x2cf952['getUserBySessionId'](_0x2196c5);if(!_0x47a28a)return{'id':_0x2196c5,'classes':[]};return{'id':_0x2196c5,'classes':['ck-user__selection',_0x47a28a['color']['getSelectionClass']()],'attributes':{'style':Y(_0x47a28a),'data-session-id':_0x2196c5},'priority':0x7d0+_0x47a28a['orderNumber']};}(_0x12b97b,_0x12e57b)}),function(_0x552444){const _0x543ed5=_0x552444['model'],_0x1b217d=new Map(),_0x3f3b1d=_0x552444['plugins']['get'](Sessions);_0x543ed5['markers']['on']('update:user:range',(_0x50657c,_0x1845a4,_0x239918,_0x3f302a)=>{if(!_0x3f302a&&_0x1b217d['get'](_0x1845a4['name']))return _0x1b217d['get'](_0x1845a4['name'])['detach'](),void _0x1b217d['delete'](_0x1845a4['name']);const _0x59fbf4=_0x1845a4['name']['split'](':')[0x2];if(_0x59fbf4===_0x3f3b1d['mySessionId'])return;const _0xd0ad6='user:position:'+_0x59fbf4;_0x543ed5['markers']['has'](_0xd0ad6)&&_0x552444['editing']['reconvertMarker'](_0xd0ad6),_0x1845a4['on']('change:range',(_0x3cf329,_0xde7148,_0x31d3e7)=>{if('$graveyard'!=_0xde7148['root']['rootName']&&'$graveyard'==_0x1845a4['getRange']()['root']['rootName']&&!_0x1b217d['has'](_0x1845a4['name'])){const _0x4b6793=_0x543ed5['schema']['getNearestSelectionRange'](_0x31d3e7['deletionPosition']);if(_0x4b6793){const _0x551255=_0x23f357['fromRange'](_0x4b6793);_0x1b217d['set'](_0x1845a4['name'],_0x551255),_0x551255['on']('change:range',(_0x2d803b,_0x12908e,_0x2b7163)=>{if('$graveyard'==_0x551255['root']['rootName']){const _0x4dac57=_0x543ed5['schema']['getNearestSelectionRange'](_0x2b7163['deletionPosition']);_0x4dac57?(_0x551255['start']=_0x4dac57['start'],_0x551255['end']=_0x4dac57['end']):(_0x1b217d['delete'](_0x1845a4['name']),_0x551255['detach']());}});}}});}),_0x543ed5['document']['on']('change',()=>{_0x1b217d['size']>0x0&&_0x543ed5['enqueueChange']({'isUndoable':!0x1},_0x3d56f3=>{for(const [_0x2d1d4c,_0x543be8]of _0x1b217d)'$graveyard'==_0x543ed5['markers']['get'](_0x2d1d4c)['getRange']()['root']['rootName']&&(z(_0x2d1d4c['split'](':')[0x2],_0x543be8['toRange'](),_0x543ed5,_0x3d56f3),_0x543be8['detach']());_0x1b217d['clear']();});});}(_0x16d763),this['_domEmitter']['listenTo'](_0x17d194['document'],'keydown',(_0x1a9a69,{key:_0x151170})=>{'Escape'===_0x151170&&function(_0x102853){_0x102853['editing']['view']['change'](_0x2e4b5b=>{for(const _0x373439 of _0x102853['model']['markers']){if(!_0x373439['name']['startsWith']('user:position'))continue;const _0x14cb5c=_0x102853['editing']['mapper']['markerNameToElements'](_0x373439['name']);if(_0x14cb5c){for(const _0x13ed7e of _0x14cb5c)_0x2e4b5b['removeClass']('ck-user__marker_hovered',_0x13ed7e);}}});}(_0x16d763);},{'useCapture':!0x0});}['afterInit'](){const _0x3ce797=this['editor'],_0x1cbbae=_0x3ce797['commands']['get']('undo');_0x1cbbae&&_0x3ce797['model']['on']('applyOperation',(_0xabe29d,_0x125946)=>{const _0x11b2e4=_0x125946[0x0];if(!_0x11b2e4['isDocumentOperation'])return;if('marker'!=_0x11b2e4['type']||!_0x11b2e4['name']['startsWith']('user:'))return;const _0x57d914=_0x11b2e4['batch'];_0x1cbbae['_createdBatches']['has'](_0x57d914)&&(_0x11b2e4['newRange']=_0x11b2e4['oldRange']?_0x3ce797['model']['createRange'](_0x11b2e4['oldRange']['start'],_0x11b2e4['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x1bc0af=this['editor'],_0xe5b02d=_0x1bc0af['model']['document'],_0x516cec=_0x1bc0af['plugins']['get'](Sessions);_0x1bc0af['model']['enqueueChange']({'isUndoable':!0x1},_0x27a2bf=>{const _0xc8753='user:range:'+_0x516cec['mySessionId'],_0x341539='user:position:'+_0x516cec['mySessionId'],_0x30d801=_0x1bc0af['model']['markers']['has'](_0xc8753);_0x1bc0af['editing']['view']['hasDomSelection']?z(_0x516cec['mySessionId'],_0xe5b02d['selection']['getFirstRange'](),_0x1bc0af['model'],_0x27a2bf):_0x30d801&&(_0x27a2bf['removeMarker'](_0xc8753),_0x27a2bf['removeMarker'](_0x341539));});}}function z(_0x18e98a,_0x228da7,_0x1c5f53,_0x27482c){const _0x3f28b1='user:range:'+_0x18e98a,_0xfc1539='user:position:'+_0x18e98a,_0x1d38b9=_0x228da7['getContainedElement']();let _0x2e7614=_0x228da7['start'];if(_0x1d38b9&&_0x1d38b9['is']('element','tableCell')){const _0x412497=function(_0x1c6a5e,_0x3b32bb){for(const _0x10ab8b of _0x1c6a5e['getPositions']())if(_0x3b32bb['schema']['checkChild'](_0x10ab8b,'$text'))return _0x10ab8b;}(_0x228da7,_0x1c5f53);_0x412497&&(_0x2e7614=_0x412497,_0x228da7=_0x27482c['createRange'](_0x2e7614));}const _0x21a67a=_0x27482c['createRange'](_0x2e7614);_0x1c5f53['markers']['has'](_0x3f28b1)?(_0x27482c['updateMarker'](_0x3f28b1,{'range':_0x228da7}),_0x27482c['updateMarker'](_0xfc1539,{'range':_0x21a67a})):(_0x27482c['addMarker'](_0x3f28b1,{'range':_0x228da7,'usingOperation':!0x0}),_0x27482c['addMarker'](_0xfc1539,{'range':_0x21a67a,'usingOperation':!0x0}));}function Y(_0xe1d44d){return'--ck-user-color:'+_0xe1d44d['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0xe1d44d['color']['getColorAlphaVariable']()+';';}function K(_0x162267,_0x5ef377,_0x53877d){const _0x2a36c6=_0x162267['t'],t=_0x162267['t'];switch(_0x5ef377){case'PENDING_ACTION_SENDING_DATA':return t({'string':'Sending\x20data\x20to\x20the\x20server.','id':'PENDING_ACTION_SENDING_DATA'});case'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'Synchronization\x20issue':return t('Synchronization\x20issue');case'Connected\x20users\x20list\x20dropdown\x20menu':return t('Connected\x20users\x20list\x20dropdown\x20menu');case'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':return t('Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)');case'Connected\x20users\x20list':return t('Connected\x20users\x20list');case'PENDING_ACTION_REVISION_HISTORY':return _0x2a36c6({'string':'Unsaved\x20change\x20in\x20revision\x20history.','id':'PENDING_ACTION_REVISION_HISTORY'});case'CONNECTED_USERS':return t({'string':'1\x20connected\x20user\x20(me)','plural':'%0\x20connected\x20users','id':'CONNECTED_USERS'},_0x53877d);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x18e830{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
+ ((()=>_0x25acf6)());['_offset'];['sessionId'];['serverHistory'];['_channelId'];['_service'];['_document'];['_compressor'];['_bufferedOperations'];['_knownOperations'];['_knownRootNames'];['_pendingAction'];['_hasSelectionChanged'];['_sendBufferedOperationsDelayId'];['_baseBufferDelay'];['_currentBufferDelay'];['_lastSyncedOperationId'];['_disconnectionOperations'];['_operationIdentifier'];static get['requires'](){return[WebSocketGateway,Sessions,UserMarkers,_0x459582,_0x531388,_0x5b9c9b];}static get['pluginName'](){return'RealTimeCollaborationClient';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}get['cloudDocumentVersion'](){return this['_lastServerVersion']+this['_offset'];}get['_lastServerVersion'](){return this['serverHistory']['version']-this['_offset'];}get['lastSyncVersion'](){const _0x4e768f=this['serverHistory']['getOperations']();for(let _0x3d79ac=_0x4e768f['length']-0x1;_0x3d79ac>=0x0;_0x3d79ac--){const _0x560332=_0x4e768f[_0x3d79ac];if(!this['_disconnectionOperations']['has'](_0x560332))return _0x560332['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x1c49af){if(super(_0x1c49af),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0xde6414(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x10b4e1('collaboration-missing-channelid',this);const _0x3ecf27=_0x1c49af['config']['get']('cloudServices.bundleVersion')||_0x51023f;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x3ecf27,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x5cd15f(),this['_bufferedOperations']=[],this['_knownOperations']=new WeakSet(),this['_knownRootNames']=new Set(),this['set']('_isPendingUpdate',!0x1),this['set']('_hasSynchronizationProblem',!0x1),this['_pendingAction']=null,this['_hasSelectionChanged']=!0x1,this['_sendBufferedOperationsDelayId']=null,this['_baseBufferDelay']=0x12c,this['_currentBufferDelay']=this['_baseBufferDelay'],this['_lastSyncedOperationId']=null,this['_disconnectionOperations']=new WeakSet(),this['_operationIdentifier']=new OperationIdentifier(this['_disconnectionOperations']);}['init'](){const _0x2a80a0=this['editor'],_0x273ac9=_0x2a80a0['plugins']['get'](_0x531388),_0xf8cbbd=_0x2a80a0['plugins']['get'](WebSocketGateway);this['listenTo'](_0x273ac9,'getOperationAuthor',(_0x3b5c57,_0x354017)=>{const _0x4a361e=_0x354017[0x0];_0x4a361e['_authorId']&&(_0x3b5c57['return']=_0x273ac9['getUser'](_0x4a361e['_authorId']),_0x3b5c57['stop']()),null===_0x4a361e['_authorId']&&(_0x3b5c57['return']=null,_0x3b5c57['stop']());},{'priority':'high'}),this['listenTo'](_0x2a80a0['model']['document']['selection'],'change:range',(_0x57b2e5,_0x35b602)=>{_0x35b602['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x2a80a0['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x2a80a0['model']['on']('applyOperation',(_0x46bb3b,_0x234992)=>{const _0xfe223d=_0x234992[0x0];_0xfe223d['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0xfe223d),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0xf8cbbd,'state',this,'_hasSynchronizationProblem',(_0x4ec21c,_0x44a648)=>'connected'===_0x4ec21c&&!_0x44a648),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x2a80a0['disableReadOnlyMode']('rtc-offline'):_0x2a80a0['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x2a80a0['disableReadOnlyMode']('rtc-offline'):_0x2a80a0['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x4c015d=this['editor']['plugins']['get'](Sessions),_0x3f63f0=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x4c015d['unregister'](this['_channelId']);const _0x10be54=await this['_service']['reconnect'](_0x3f63f0['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x10be54)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x5842a1=await this['_service']['getConnectedSessions']();_0x4c015d['register'](this['_channelId'],_0x5842a1),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x5156fa){if(function(_0xabe03f){return'404'===_0xabe03f['code'];}(_0x5156fa)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x36653a){return'409'===_0x36653a['code'];}(_0x5156fa)){const _0x11ec5c=K(this['editor']['locale'],'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');this['_handleReconnectionError'](_0x11ec5c);}else{if(!(_0x5156fa instanceof ReconnectionError))throw _0x5156fa;this['_handleReconnectionError']();}}}}['destroy'](){const _0x2f2d89=this['editor']['plugins']['get'](WebSocketGateway),_0x1902a6=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x1902a6['channelSessions']['has'](this['_channelId'])&&_0x1902a6['unregister'](this['_channelId']),_0x2f2d89['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x5ec3ce){if(this['sessionId']!==_0x5ec3ce['sessionId']&&this['_lastSyncedOperationId']!==_0x5ec3ce['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x5ec3ce['sessionId'],this['_handleServerResponse']([],{..._0x5ec3ce,'wereChangesApplied':!0x1,'data':_0x5ec3ce['data']},'reconnect');}async['_connectService'](_0x2c2826,_0x31fdfe=!0x1){const {connection:_0x5611d4}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x5611d4,this['_channelId'])['then'](_0x51296f=>this['_initSessionsHandling'](_0x51296f))['catch'](_0x3703e2=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x3703e2);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x132819,_0x3dcc69)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x3dcc69);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x4d7124=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x2c2826);this['_isPendingUpdate']=!0x0;const _0x3131f7=await this['_service']['connect'](_0x5611d4,this['_compressOperations'](_0x2c2826),_0x4d7124);if(this['sessionId']=_0x3131f7['sessionId'],_0x31fdfe){if(!_0x3131f7['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x3131f7['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x2c2826,_0x3131f7,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x3131f7,_0x2c2826);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x3b8887=this['editor']['plugins']['get'](Sessions),_0x94112c=this['editor']['plugins']['get'](UserMarkers),_0x227e60=_0x3b8887['channelSessions']['get'](this['_channelId']);_0x227e60&&_0x227e60['length']>0x1?_0x94112c['createUserMarkerOperations']():this['listenTo'](_0x3b8887,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x3b8887['channelSessions']['get'](this['_channelId'])['length']&&_0x94112c['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x39bc23,_0x161aa0,_0xae2892,_0x4cfc6a){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x161aa0){const _0x37d770=this['_decompressOperations'](_0xae2892,_0x4cfc6a);await this['_fetchMissingUsers'](_0x37d770),this['_handleExternalOperations'](_0x37d770,_0x161aa0,_0xae2892['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x3264d9}=this['editor'];let _0x229510;try{_0x229510=await this['_service']['getDocumentDetails']();}catch{const _0x13ed5c=K(_0x3264d9,'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x13ed5c);}const _0x454fb7=_0x229510['currentDocumentSession']||_0x229510['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x454fb7['lastOperationId']){const _0x319331=K(_0x3264d9,'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x319331);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x5543d9){const _0x4a9913=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x4a9913,'sessionAdd:'+this['_channelId'],(_0x8e2899,{session:_0x1de28f})=>{if(_0x1de28f['id']===_0x4a9913['mySessionId']){_0x8e2899['off']();const _0x4c7c1f=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x5b9206=_0x1de28f['permissions'];_0x4c7c1f&&_0x4c7c1f['isEnabled']&&(_0x5b9206=_0x5b9206['filter'](_0x4501f6=>'document:write'!==_0x4501f6)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x5b9206,this['_channelId']);}}),_0x4a9913['register'](this['_channelId'],_0x5543d9);}['_initThrowingOnDataSet'](){const _0x56a03d=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x391fed)=>{if(!_0x391fed[_0x391fed['length']-0x1]['suppressErrorInCollaboration'])throw new _0x10b4e1('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x56a03d['apply'](this['editor']['data'],_0x391fed);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x3aa586,[_0x4a507c])=>{if(this['_document']['version'])throw new _0x10b4e1('realtimecollaborationclient-init-document-already-initialized',this);_0x3aa586['stop'](),this['_setPendingAction']();const _0x3d4035=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x3b1505])=>!_0x3b1505['lazyLoad'])['map'](([_0x26d34c,_0x5192a1])=>[_0x26d34c,_0x5192a1['modelAttributes']||{}])),_0x4b83b2=this['_getOperationsFromInitData'](_0x4a507c,_0x3d4035);0x0==_0x4b83b2['length']&&_0x4b83b2['push'](new _0x4a4bb9(0x0)),_0x3aa586['return']=this['_connectService'](_0x4b83b2)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x372b38=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x372b38))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0xf19d2f,[_0x29beca,_0x2f9ee7])=>{_0xf19d2f['stop']();const _0x44be9c=this['editor']['model']['document']['getRoot'](_0x29beca);if(!this['_knownRootNames']['has'](_0x29beca)){const _0x562e94=_0x2f9ee7&&_0x2f9ee7['data']?_0x2f9ee7['data']:'',_0x150072=_0x2f9ee7&&_0x2f9ee7['attributes']?_0x2f9ee7['attributes']:{};await this['_loadRoot'](_0x29beca,_0x562e94,_0x150072);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x44be9c['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x44be9c);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x4c916f){const _0x46d8a1=this['editor']['plugins']['get'](_0x531388),{connection:_0x3d0881}=this['editor']['plugins']['get'](WebSocketGateway),_0x7fece6=new Set();for(const _0x3a721b of _0x4c916f){const _0x4f540c=_0x3a721b['_authorId'];_0x4f540c&&!_0x46d8a1['getUser'](_0x4f540c)&&_0x7fece6['add'](_0x4f540c);}if(0x0===_0x7fece6['size'])return;const _0x486fb4=await _0x544a92['getMany'](_0x3d0881,Array['from'](_0x7fece6));for(const _0x388202 of _0x486fb4)_0x46d8a1['getUser'](_0x388202['id'])||_0x46d8a1['addUser'](_0x388202);}['_getOperationsFromInitData'](_0x48c3e1,_0x4e80f5={}){const _0xaee820=this['editor']['model'],_0xf96d26=[];let _0x15ce18=0x0;const _0x1a7d5f='string'==typeof _0x48c3e1?{'main':_0x48c3e1}:_0x48c3e1;for(const _0x4de1c9 of Object['keys'](_0x1a7d5f)){if(!this['_document']['roots']['has'](_0x4de1c9))throw new _0x10b4e1('realtimecollaborationclient-init-non-existent-root',this);const _0x4ce655=this['_document']['getRoot'](_0x4de1c9),_0x435350=this['editor']['data']['parse'](_0x1a7d5f[_0x4de1c9],_0x4ce655),_0x5db5c1=new _0x5ec806(_0xaee820['createPositionAt'](_0x4ce655,0x0),_0x435350,_0x15ce18++);_0xf96d26['push'](_0x5db5c1);for(const [_0x5c666f,_0x258551]of _0x435350['markers']){const _0x4bc44b=_0xaee820['createRange'](_0xaee820['createPositionFromPath'](_0x4ce655,_0x258551['start']['path']['slice']()),_0xaee820['createPositionFromPath'](_0x4ce655,_0x258551['end']['path']['slice']())),_0x63aa33=new _0x28fe23(_0x5c666f,null,_0x4bc44b,_0xaee820['markers'],!0x0,_0x15ce18++);_0xf96d26['push'](_0x63aa33);}}if(_0x4e80f5)for(const [_0x18d857,_0x4e7783]of Object['entries'](_0x4e80f5)){const _0x4d1787=_0xaee820['document']['getRoot'](_0x18d857);if(!_0x4d1787)throw new _0x10b4e1('multi-root-editor-root-attributes-no-root',null);for(const [_0x1160eb,_0x3bfa21]of Object['entries'](_0x4e7783))if(null!==_0x3bfa21){const _0xaf69e4=new _0x1603ea(_0x4d1787,_0x1160eb,null,_0x3bfa21,_0x15ce18++);_0xf96d26['push'](_0xaf69e4);}}return _0xf96d26;}async['_loadRoot'](_0x56f657,_0xec446e,_0x49dffa){this['_getOperationsFromInitData']({[_0x56f657]:_0xec446e},{[_0x56f657]:_0x49dffa})['forEach']((_0x2cde3b,_0x5a9aca)=>{_0x2cde3b['baseVersion']=this['_document']['version']+_0x5a9aca,_0x2cde3b['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x2cde3b);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x154c06,_0x48627a){let _0x26f0d8;this['_offset']=_0x154c06['offset'];const _0x4b5e17=_0x154c06['wereChangesApplied']&&!_0x154c06['initData'],_0x5e6426=_0x4b5e17?0x0:_0x154c06['data']['baseVersion'];if(_0x48627a['forEach'](_0x3ffed0=>{_0x3ffed0['_isInit']=!0x0,_0x3ffed0['createdAt']=_0x154c06['sessionCreatedAt'],_0x3ffed0['_authorId']=null;}),_0x4b5e17)_0x26f0d8=_0x48627a,this['_applyOperationsSet'](_0x26f0d8,_0x4b5e17);else{if(_0x154c06['initData']){const _0x554a87=this['_getOperationsFromInitData'](_0x154c06['initData']);this['_document']['history']['version']=-_0x554a87['length'],_0x554a87['forEach'](_0xafb2e8=>{_0xafb2e8['baseVersion']-=_0x554a87['length'],_0xafb2e8['createdAt']=_0x154c06['sessionCreatedAt'],_0xafb2e8['_isInit']=!0x0,_0xafb2e8['_authorId']=null;}),this['_applyOperationsSet'](_0x554a87,!0x0),this['serverHistory']['version']=-_0x554a87['length']+this['_offset'],this['_updateServerHistory'](_0x554a87);}this['_document']['history']['version']=_0x5e6426,_0x26f0d8=this['_decompressOperations'](_0x154c06['data'],_0x154c06['metadata']),await this['_fetchMissingUsers'](_0x26f0d8),this['_applyOperationsSet'](_0x26f0d8,_0x4b5e17);}_0x154c06['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x26f0d8,_0x154c06['lastOperationId']),this['_lastSyncedOperationId']=_0x154c06['lastOperationId']),this['serverHistory']['version']=_0x5e6426+this['_offset'],this['_updateServerHistory'](_0x26f0d8),_0x48627a['filter'](_0x46d38c=>{const _0x4f1748=this['_getAffectedRoot'](_0x46d38c);return _0x4f1748&&!this['_knownRootNames']['has'](_0x4f1748);})['forEach']((_0x3c66da,_0x363d0b)=>{_0x3c66da['baseVersion']=this['_document']['version']+_0x363d0b,this['_saveOperationInBuffer'](_0x3c66da);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x211123,_0x504e5d){const _0x25a06c=_0x504e5d&&_0x504e5d['message'];if(_0x25a06c&&_0x25a06c['startsWith']('realtimecollaborationclient'))throw _0x504e5d;const _0x5b2221=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x5b2221['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x10b4e1(_0x211123,this['editor'],_0x25a06c?{'originalError':_0x25a06c}:void 0x0);}['_saveOperationInBuffer'](_0x55b10e){this['_knownOperations']['has'](_0x55b10e)||(this['_knownOperations']['add'](_0x55b10e),this['_bufferedOperations']['push'](_0x55b10e),this['_pendingAction']||'marker'==_0x55b10e['type']&&!_0x55b10e['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x27e2a5=!0x1){!_0x27e2a5&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x1c1c9d=>{_0x1c1c9d&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x5d56ff=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x28aa67){return _0x28aa67['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x28aa67['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x28aa67['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x5d56ff)||this['_crash'](_0x5d56ff['message'],_0x5d56ff);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x7dce91=>{this['on']('change:_isPendingUpdate',()=>{_0x7dce91();});});}async['_sendBufferedOperations'](){const _0x5221fb=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x5221fb['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x540157=[...this['_bufferedOperations']];for(const _0x3cdc11 of _0x540157)_0x3cdc11['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x3cdc11);const _0x1ade7e=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x540157),_0x416ab1=J++,_0x5bcb37=this['_compressOperations'](_0x540157),_0x46fa50=await this['_service']['sendOperations'](_0x5bcb37,_0x5bcb37['baseVersion'],_0x1ade7e);try{return await this['_handleServerResponse'](_0x540157,_0x46fa50,_0x416ab1);}catch(_0x4b86af){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x4b86af);}}async['_handleServerResponse'](_0x2d103a,_0x34e4d9,_0x53d618){if('error'in _0x34e4d9)throw _0x34e4d9['error'];let _0x136fc8=!0x1;if(_0x34e4d9['wereChangesApplied']){_0x34e4d9['lastOperationId']&&(this['_lastSyncedOperationId']=_0x34e4d9['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x4c3728=>!_0x2d103a['includes'](_0x4c3728));for(const _0x58091c of _0x2d103a)_0x58091c['createdAt']='lastOperationAcceptedAt'in _0x34e4d9&&_0x34e4d9['lastOperationAcceptedAt']||void 0x0;Q(_0x2d103a,_0x34e4d9['version']-_0x2d103a['length']),this['_updateServerHistory'](_0x2d103a);const _0x2e0e85=_0x2d103a['filter'](_0x1bdf23=>{if(!_0x1bdf23['_isInit'])return!0x1;const _0xd26358=this['_getAffectedRoot'](_0x1bdf23);return _0xd26358&&!this['_knownRootNames']['has'](_0xd26358);});Q(_0x2e0e85,this['_document']['version']),this['_applyOperationsSet'](_0x2e0e85),_0x136fc8=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x1402f8=this['_decompressOperations'](_0x34e4d9['data'],_0x34e4d9['metadata'])['filter'](_0x11adb1=>_0x11adb1['baseVersion']>=this['_lastServerVersion']);_0x1402f8['forEach'](_0x60b258=>this['_addKnownRoot'](_0x60b258)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x35ecab=>!_0x35ecab['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x35ecab))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x1402f8),_0x136fc8=this['_handleExternalOperations'](_0x1402f8,_0x34e4d9['version'],_0x34e4d9['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x136fc8?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x3c6419,_0x4b2c9b,_0x1a1bf6){try{const _0x4001b7={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x271f40,operationsB:_0x3b1f1f,originalOperations:_0x209c86}=_0x52cee7(_0x3c6419,this['_bufferedOperations'],_0x4001b7);Q(_0x271f40,this['_document']['version']),Q(_0x3b1f1f,_0x4b2c9b);for(const _0x1ce822 of _0x271f40){const _0x8dbeb9=_0x209c86['get'](_0x1ce822);_0x1ce822['_authorId']=_0x8dbeb9?_0x8dbeb9['_authorId']:null;}_0x1a1bf6&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x3c6419,_0x1a1bf6),this['_lastSyncedOperationId']=_0x1a1bf6),this['_bufferedOperations']=[..._0x3b1f1f],this['_applyOperationsSet'](_0x271f40),this['_updateServerHistory'](_0x3c6419);}catch(_0x4f75c8){return console['error'](_0x4f75c8),!0x1;}return!0x0;}['_applyOperationsSet'](_0x2bae45,_0x372e8b=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x385ce8=>{for(const _0x3fed54 of _0x2bae45)this['_knownOperations']['add'](_0x3fed54),this['_addKnownRoot'](_0x3fed54),_0x385ce8['batch']['addOperation'](_0x3fed54),this['editor']['model']['applyOperation'](_0x3fed54);});}['_addKnownRoot'](_0x21eea9){const _0x40d122=this['_getAffectedRoot'](_0x21eea9);_0x40d122&&this['_knownRootNames']['add'](_0x40d122);}['_getAffectedRoot'](_0x43b6e8){let _0x3a98f0,_0x48afc9;switch(_0x43b6e8['type']){case'insert':_0x3a98f0=_0x43b6e8['position']['root'];break;case'marker':if(_0x48afc9=_0x43b6e8['newRange'],!_0x48afc9)return null;_0x3a98f0=_0x48afc9['root'];break;case'addRootAttribute':_0x3a98f0=_0x43b6e8['root'];break;case'addRoot':_0x3a98f0=_0x43b6e8['affectedSelectable'];break;case'move':_0x3a98f0=_0x43b6e8['targetPosition']['root'];break;default:return null;}return _0x3a98f0['rootName'];}['_updateServerHistory'](_0x24eb9b){_0x24eb9b['forEach'](_0xa31262=>{const _0x2fc7ed=_0xa31262['clone']();_0x2fc7ed['_authorId']=_0xa31262['_authorId'],_0x2fc7ed['_isInit']=!!_0xa31262['_isInit'],_0x2fc7ed['createdAt']=_0xa31262['createdAt'],_0x2fc7ed['baseVersion']+=this['_offset'],_0xa31262['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x2fc7ed),this['serverHistory']['addOperation'](_0x2fc7ed);});}['_handleReconnectionError'](_0x588c5f){const _0x42cd83=this['editor']['plugins']['get']('Notification'),_0x34e94d=this['editor']['locale'];_0x588c5f||(_0x588c5f=K(_0x34e94d,'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.')),_0x42cd83['showWarning'](_0x588c5f,{'title':K(_0x34e94d,'Synchronization\x20issue'),'namespace':'real-time-collaboration'}),this['_hasSynchronizationProblem']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_bufferedOperations']=[],this['editor']['plugins']['get'](WebSocketGateway)['disconnect']();}['_setPendingAction'](){this['_pendingAction']||(this['_pendingAction']=this['editor']['plugins']['get'](_0x459582)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x459582)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x28717e){const _0x60d59=_0x28717e['map'](_0x31aaf5=>_0x31aaf5['toJSON']());return this['_compressor']['compress'](_0x60d59);}['_decompressOperations'](_0x548819,_0x417d5c){return this['_compressor']['decompress'](_0x548819)['map']((_0x281827,_0x987f72)=>{const _0x4911b9='init'==_0x417d5c[_0x987f72]['type'];if('InsertOperation'==_0x281827['__className']){const _0x40aa0b=_0x281827['position']['root'];!this['_document']['getRoot'](_0x40aa0b)&&(this['_document']['createRoot']('$unknown',_0x40aa0b)['_isAttached']=!0x1);}else{if('RootOperation'==_0x281827['__className']){const _0x214e4d=this['_document']['getRoot'](_0x281827['rootName']);_0x214e4d&&'$unknown'==_0x214e4d['name']&&_0x281827['elementName']!=_0x214e4d['name']&&(_0x214e4d['name']=_0x281827['elementName']);}}const _0x31d2c8=_0x124a27['fromJSON'](_0x281827,this['_document']);return _0x31d2c8['wasUndone']=_0x281827['wasUndone'],_0x31d2c8['_isInit']=_0x4911b9,_0x31d2c8['_authorId']=_0x4911b9?null:_0x417d5c[_0x987f72]['userId'],_0x31d2c8['_isDisconnection']='cs:removeUser'===_0x417d5c[_0x987f72]['type'],_0x31d2c8['createdAt']=_0x417d5c[_0x987f72]['createdAt'],_0x31d2c8;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x4280ae=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x4280ae&&_0x4280ae['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x2d009a,_0x87a806){for(const _0x5c8100 of _0x2d009a)_0x5c8100['baseVersion']=_0x87a806++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x34bbbb){this['_ignoredOperations']=_0x34bbbb,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x43f604){let _0x5dedc6=_0x43f604['length'];for(;_0x5dedc6--;){const _0x1822de=_0x43f604[_0x5dedc6];if(!this['_ignoredOperations']['has'](_0x1822de)){if(!this['_operationToId']['has'](_0x1822de)){const _0x2e7c46=_0x9f4ec6()['slice'](0x1,0x12);this['_operationToId']['set'](_0x1822de,_0x2e7c46);}return this['_operationToId']['get'](_0x1822de);}}}['setIdForTheLastOperation'](_0x53008c,_0xba05f5){if(!_0xba05f5)return;let _0x33082d=_0x53008c['length'];for(;_0x33082d--;){const _0x5c3356=_0x53008c[_0x33082d];this['_ignoredOperations']['has'](_0x5c3356)||this['_operationToId']['set'](_0x5c3356,_0xba05f5);}}}class RealTimeCollaborativeEditing extends _0x18e830{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x891fdc{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
+ ((()=>_0x1962a0)());['_services'];static get['requires'](){return[WebSocketGateway,_0x5d9000,Sessions,_0x531388];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3c1c90){super(_0x3c1c90),this['_services']=new Map();}async['init'](){const _0x2f6fd3=this['context'],_0x62a408=_0x2f6fd3['plugins']['get'](_0x5d9000);if(_0x2f6fd3['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x62a408['adapter']={'addCommentThread':async({channelId:_0x52dbc4,threadId:_0x30751e,comments:_0x2fbd4e,resolvedAt:_0x5bcc4e,resolvedBy:_0x363788,context:_0x440b14,attributes:_0x426e07})=>{const _0x37b226=await this['_getService'](_0x52dbc4)['addCommentThread']({'commentThreadId':_0x30751e,'comments':_0x2fbd4e['map'](_0x437788=>function(_0x211ed6,_0x22471a,_0x3e2190){return{'commentThreadId':_0x3e2190,'commentId':_0x211ed6['commentId'],'userId':_0x211ed6['authorId'],'content':_0x211ed6['content'],'documentId':_0x22471a,'createdAt':_0x211ed6['createdAt'],'attributes':_0x211ed6['attributes']||{}};}(_0x437788,_0x52dbc4,_0x30751e)),'resolvedAt':_0x5bcc4e,'resolvedBy':_0x363788,'context':_0x440b14,'attributes':_0x426e07})['catch'](Z);return{'threadId':_0x37b226['commentThreadId'],'comments':_0x37b226['comments']};},'getCommentThread':async({channelId:_0x8bda26,threadId:_0x3bde6f})=>{const _0x49f5f5=await this['_getService'](_0x8bda26)['getCommentThread'](_0x3bde6f)['catch'](X)['catch'](Z);return _0x49f5f5?_0x49f5f5['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x49f5f5]),{'threadId':_0x49f5f5['commentThreadId'],'comments':_0x49f5f5['comments']['map'](tt),'context':_0x49f5f5['context'],'resolvedAt':_0x49f5f5['resolvedAt'],'resolvedBy':_0x49f5f5['resolvedBy'],'attributes':_0x49f5f5['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x590802,threadId:_0x162954,context:_0x45b5da,unlinkedAt:_0x4e7bd2,attributes:_0x435365})=>this['_getService'](_0x590802)['updateCommentThread']({'commentThreadId':_0x162954,'context':_0x45b5da,'attributes':_0x435365,'unlinkedAt':_0x4e7bd2})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x309aeb,threadId:_0x1e30ab})=>{const _0x3b80c8=await this['_getService'](_0x309aeb)['resolveCommentThread'](_0x1e30ab)['catch'](X)['catch'](Z);return{'threadId':_0x3b80c8['commentThreadId'],'resolvedAt':_0x3b80c8['resolvedAt'],'resolvedBy':_0x3b80c8['resolvedBy']};},'reopenCommentThread':async({channelId:_0x445992,threadId:_0x255d94})=>this['_getService'](_0x445992)['reopenCommentThread'](_0x255d94)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x37a9f1,threadId:_0x55add2})=>this['_getService'](_0x37a9f1)['removeCommentThread'](_0x55add2)['catch'](X)['catch'](Z),'addComment':({channelId:_0x31fae7,threadId:_0x2fd3d9,commentId:_0x1efa9a,content:_0x3ef28b,attributes:_0x14c51b})=>this['_getService'](_0x31fae7)['addComment'](_0x2fd3d9,_0x1efa9a,_0x3ef28b,_0x14c51b)['catch'](Z),'updateComment':({channelId:_0x54fce6,threadId:_0x3b9de9,commentId:_0x4da672,content:_0x4030d9,attributes:_0x41a752})=>this['_getService'](_0x54fce6)['updateComment'](_0x3b9de9,_0x4da672,_0x4030d9,_0x41a752)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x3c51ec,threadId:_0x43fc04,commentId:_0x40677a})=>this['_getService'](_0x3c51ec)['removeComment'](_0x43fc04,_0x40677a)['catch'](X)['catch'](Z)},_0x2f6fd3 instanceof _0x1db326){const _0x1505f0=_0x2f6fd3['config']['get']('collaboration.channelId'),_0x28457f=_0x2f6fd3['plugins']['get'](Sessions);await this['_setUpService'](_0x1505f0);const _0x2ff3a5=await this['_services']['get'](_0x1505f0)['getConnectedSessions']();this['listenTo'](_0x28457f,'sessionAdd:'+_0x1505f0,(_0x4f8adc,{session:_0x39bd70})=>{_0x39bd70['id']===_0x28457f['mySessionId']&&(_0x4f8adc['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x39bd70['permissions'],_0x1505f0));}),_0x28457f['register'](_0x1505f0,_0x2ff3a5);}}async['_setUpService'](_0x3e7d0c){if(this['_services']['has'](_0x3e7d0c))throw new _0x10b4e1('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x3e7d0c});const _0x448ecd=this['context']['plugins']['get'](_0x5d9000),_0xeb0bb0=new CloudServicesCommentsAdapter['CommentsService'](_0x3e7d0c);this['_services']['set'](_0x3e7d0c,_0xeb0bb0),this['listenTo'](_0xeb0bb0,'commentThreadAdded',(_0x1fc936,_0x4ead19)=>{const {commentThreadId:_0x4af15f,documentId:_0x2c3f54,context:_0x384fb4,attributes:_0x54ddb0,resolvedAt:_0x18e2a5,resolvedBy:_0x41a9a2,comments:_0x4203a6}=_0x4ead19;_0x448ecd['getCommentThread'](_0x4af15f)||_0x448ecd['addCommentThread']({'threadId':_0x4af15f,'channelId':_0x2c3f54,'comments':_0x4203a6?_0x4203a6['map'](tt):[],'context':_0x384fb4,'attributes':_0x54ddb0,'resolvedAt':_0x18e2a5,'resolvedBy':_0x41a9a2,'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentThreadUpdated',(_0x2d9752,{commentThreadId:_0x619c59,documentId:_0x445fbd,context:_0x2259d2,unlinkedAt:_0x8f456d,attributes:_0x2b9b23})=>{_0x448ecd['getCommentThread'](_0x619c59)&&_0x448ecd['updateCommentThread']({'threadId':_0x619c59,'channelId':_0x445fbd,'context':_0x2259d2,'unlinkedAt':_0x8f456d,'attributes':_0x2b9b23,'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentThreadResolved',(_0x42bd50,{commentThreadId:_0xc1ff06,resolvedBy:_0x265f4b,resolvedAt:_0x2e69c5})=>{const _0x34aa05=_0x448ecd['getCommentThread'](_0xc1ff06);_0x34aa05&&_0x34aa05['resolve']({'resolvedBy':_0x265f4b,'resolvedAt':_0x2e69c5,'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentThreadReopened',(_0x3f1eb5,{commentThreadId:_0xfac516})=>{const _0x41d21c=_0x448ecd['getCommentThread'](_0xfac516);_0x41d21c&&_0x41d21c['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentThreadRemoved',(_0x2ce5db,{commentThreadId:_0x359275})=>{const _0x101605=_0x448ecd['getCommentThread'](_0x359275);_0x101605&&_0x101605['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentAdded',(_0xc4abe1,_0x586875)=>{const _0x4f8219=_0x586875['commentThreadId'],_0x544bfe=_0x448ecd['getCommentThread'](_0x4f8219);_0x544bfe&&_0x544bfe['addComment']({...tt(_0x586875),'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentUpdated',(_0x44d3f2,{commentThreadId:_0x7a94b3,commentId:_0xd99d13,content:_0x4033e4,attributes:_0x34f7ab})=>{const _0x11963d=_0x448ecd['getCommentThread'](_0x7a94b3);if(_0x11963d){const _0x28d5da=_0x11963d['getComment'](_0xd99d13);_0x28d5da&&_0x28d5da['update']({'content':_0x4033e4,'attributes':_0x34f7ab,'isFromAdapter':!0x0});}}),this['listenTo'](_0xeb0bb0,'commentRemoved',(_0x237623,{commentThreadId:_0x5c1dd8,commentId:_0x1a3705})=>{const _0x26d5d1=_0x448ecd['getCommentThread'](_0x5c1dd8);if(_0x26d5d1){const _0x1d553b=_0x26d5d1['getComment'](_0x1a3705);_0x1d553b&&_0x1d553b['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x3e7d0c);}['destroy'](){if(this['context']instanceof _0x1db326){const _0x85bb97=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x85bb97);}}['_terminateService'](_0x1d68fa){if(!this['_services']['has'](_0x1d68fa))throw new _0x10b4e1('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x1d68fa});this['_getService'](_0x1d68fa)['disconnect'](),this['_services']['delete'](_0x1d68fa);}async['reconnect'](){for(const _0x618cf4 of this['_services']['keys']())await this['_connectService'](_0x618cf4);if(this['context']instanceof _0x1db326){const _0x4be86a=this['context']['config']['get']('collaboration.channelId'),_0x7e9aad=this['context']['plugins']['get'](Sessions);_0x7e9aad['unregister'](_0x4be86a);const _0x4f5dd8=await this['_services']['get'](_0x4be86a)['getConnectedSessions']();_0x7e9aad['register'](_0x4be86a,_0x4f5dd8);}}async['_connectService'](_0x349362){const {connection:_0x2cd312}=this['context']['plugins']['get'](WebSocketGateway),_0x3f916f=this['context']['plugins']['get'](_0x5d9000),_0x3e696d=this['_services']['get'](_0x349362),_0xd27a16=await _0x3e696d['connect'](_0x2cd312);await this['_fetchMissingUsersForThreads'](_0xd27a16);const _0x218b2b=new Set(Array['from'](_0x3f916f['getCommentThreads']({'channelId':_0x349362}),_0x56b831=>_0x56b831['id']));for(const _0x550f46 of _0xd27a16)_0x550f46['deletedAt']||_0x218b2b['delete'](_0x550f46['commentThreadId']);for(const _0x1f873a of _0x218b2b)_0x3f916f['getCommentThread'](_0x1f873a)['remove']({'isFromAdapter':!0x0});for(const _0x5af7ef of _0xd27a16){let _0x5bba64=_0x3f916f['getCommentThread'](_0x5af7ef['commentThreadId']);const {commentThreadId:_0x78e8c0,context:_0x499217,attributes:_0x1da7f9,resolvedBy:_0xa4078a,resolvedAt:_0x1c2560,unlinkedAt:_0x4f3a3a,deletedAt:_0x4c8fbb}=_0x5af7ef;if(_0x4c8fbb)continue;_0x5bba64||(_0x5bba64=_0x3f916f['addCommentThread']({'channelId':_0x349362,'threadId':_0x78e8c0,'context':_0x499217,'attributes':_0x1da7f9||{},'resolvedBy':_0xa4078a,'resolvedAt':_0x1c2560,'unlinkedAt':_0x4f3a3a,'isFromAdapter':!0x0}));const _0x2b7978=new Set(Array['from'](_0x5bba64['comments'],_0x5c10f0=>_0x5c10f0['id']));for(const _0x6d53fc of _0x5af7ef['comments'])_0x2b7978['delete'](_0x6d53fc['commentId']);for(const _0x575d2c of _0x2b7978)_0x5bba64['getComment'](_0x575d2c)['remove']({'isFromAdapter':!0x0});for(const _0x62fa01 of _0x5af7ef['comments']){const _0x156dfb=_0x5bba64['getComment'](_0x62fa01['commentId']);_0x156dfb?_0x156dfb['content']!==_0x62fa01['content']&&_0x156dfb['update']({'content':_0x62fa01['content'],'isFromAdapter':!0x0}):_0x5bba64['addComment'](Object['assign'](tt(_0x62fa01),{'isFromAdapter':!0x0}));}}}['_getService'](_0x20097d){if(!this['_services']['has'](_0x20097d))throw new _0x10b4e1('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x20097d});return this['_services']['get'](_0x20097d);}async['_fetchMissingUsersForThreads'](_0x4fdfdc){const _0xd78920=this['context']['plugins']['get'](_0x531388),{connection:_0x39e582}=this['context']['plugins']['get'](WebSocketGateway),_0x8b96b7=new Set();for(const {resolvedBy:_0x19ee9e,comments:_0x57bd99}of _0x4fdfdc){_0x19ee9e&&!_0xd78920['getUser'](_0x19ee9e)&&_0x8b96b7['add'](_0x19ee9e);for(const {userId:_0x6d027b}of _0x57bd99)_0xd78920['getUser'](_0x6d027b)||_0x8b96b7['add'](_0x6d027b);}if(0x0===_0x8b96b7['size'])return;const _0x299278=await _0x544a92['getMany'](_0x39e582,Array['from'](_0x8b96b7));for(const _0x32d193 of _0x299278)_0xd78920['getUser'](_0x32d193['id'])||_0xd78920['addUser'](_0x32d193);}}async function X(_0x4c542c){if('404'!==_0x4c542c['code'])throw _0x4c542c;}function Z(_0x38e5c3){if((_0x34f57f=_0x38e5c3)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x34f57f['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x34f57f['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x34f57f;throw _0x38e5c3;}function tt(_0x3d0d22){return{'threadId':_0x3d0d22['commentThreadId'],'commentId':_0x3d0d22['commentId'],'content':_0x3d0d22['content'],'createdAt':_0x3d0d22['createdAt'],'authorId':_0x3d0d22['userId'],'attributes':_0x3d0d22['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x18e830{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
+ ((()=>_0x743596)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x400485,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3b21f2){super(_0x3b21f2);const _0x5841a9=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x5841a9);}['init'](){const _0x523343=this['editor']['plugins']['get'](WebSocketGateway),_0x14c05a=this['editor']['plugins']['get'](_0x400485);return _0x14c05a['adapter']={'getSuggestion':async _0x2f56cd=>{await this['_waitForServiceReady']();const _0x3db97e=await this['_trackChangesService']['get'](_0x2f56cd)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x3db97e]),_0x3db97e;},'addSuggestion':async({id:_0x2bbf66,type:_0x5b5897,data:_0xdec7c5,originalSuggestionId:_0x3c45ee,attributes:_0x3ed3f9})=>{await this['_waitForServiceReady']();const _0x1bfdba={'id':_0x2bbf66,'type':_0x5b5897,'data':_0xdec7c5,'originalSuggestionId':_0x3c45ee,'attributes':_0x3ed3f9},_0x2b3b5f=await this['_trackChangesService']['add'](_0x2bbf66,_0x5b5897,_0xdec7c5,_0x3c45ee,_0x3ed3f9)['catch'](_0x9e1af7=>{if(st(_0x9e1af7))return new Promise(_0x50cda6=>{this['_bufferedRequests']['set'](_0x2bbf66,{'resolve':_0x50cda6,'suggestionData':_0x1bfdba});});throw _0x9e1af7;});return this['_bufferedRequests']['delete'](_0x2bbf66),_0x2b3b5f;},'updateSuggestion':async(_0x1d113f,_0x33ba69)=>{if(await this['_waitForServiceReady'](),'open'!==_0x33ba69['state'])return this['_trackChangesService']['update'](_0x1d113f,_0x33ba69)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x114400,_0x1a361a)=>{_0x14c05a['hasSuggestion'](_0x1a361a['id'])&&(_0x14c05a['getSuggestion'](_0x1a361a['id'])['attributes']=_0x1a361a['attributes']);}),this['_trackChangesService']['connect'](_0x523343['connection'])['then'](_0x49c754=>(_0x523343['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x49c754)['then'](()=>{for(const _0x2aca13 of _0x49c754){_0x14c05a['addSuggestionData'](_0x2aca13)['_saved']=!0x0;}})));}async['reconnect'](){const _0x1b75bd=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x184136}=this['editor']['plugins']['get'](WebSocketGateway),_0x5b47c1=await this['_trackChangesService']['connect'](_0x184136);await this['_fetchMissingUsersForThreads'](_0x5b47c1);for(const {suggestionData:_0x2cd127,resolve:_0x338046}of this['_bufferedRequests']['values']()){let _0x399049=_0x5b47c1['find'](_0x2fb3f4=>_0x2fb3f4['id']===_0x2cd127['id']);_0x399049||(_0x399049=await this['_trackChangesService']['add'](_0x2cd127['id'],_0x2cd127['type'],_0x2cd127['data'],_0x2cd127['originalSuggestionId'])),_0x338046(_0x399049);}for(const _0x53fd8c of _0x5b47c1)_0x1b75bd['hasSuggestion'](_0x53fd8c['id'])||_0x1b75bd['addSuggestionData'](_0x53fd8c);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x16971c=>{this['listenTo'](this['_trackChangesService'],'connected',_0x457bb8=>{_0x457bb8['off'](),_0x16971c();});});}async['_fetchMissingUsersForThreads'](_0x4b910e){const _0x4f58f4=this['editor']['plugins']['get'](_0x531388),{connection:_0x4b7f7f}=this['editor']['plugins']['get'](WebSocketGateway),_0x92ea4=new Set();for(const {authorId:_0x58849}of _0x4b910e)_0x4f58f4['getUser'](_0x58849)||_0x92ea4['add'](_0x58849);if(0x0===_0x92ea4['size'])return;const _0x5ea84e=await _0x544a92['getMany'](_0x4b7f7f,Array['from'](_0x92ea4));for(const _0x4597dc of _0x5ea84e)_0x4f58f4['getUser'](_0x4597dc['id'])||_0x4f58f4['addUser'](_0x4597dc);}}function et(_0x561c40){if(st(_0x561c40))return new Promise(()=>{});throw _0x561c40;}function st(_0x527137){return _0x527137['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x527137['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x18e830{static get['requires'](){return[_0x494d20,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x44301b=this['editor']['plugins']['get'](WebSocketGateway),_0x5545b4=this['editor']['plugins']['get'](_0x3be2c1),_0x44ddc5=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x44301b,'change:state',(_0x48f6ec,_0x15163a,_0x1d1bb0)=>{_0x5545b4['isThreadsLoadingPaused']='connected'!==_0x1d1bb0;});}),this['listenTo'](_0x44301b,'change:state',(_0x5da9a6,_0x9d0dcc,_0xce0343)=>{this['editor']['plugins']['get'](_0x5d9000)['switchReadOnly']('connected'!==_0xce0343);}),_0x44ddc5['_setUpService'](this['editor']['config']['get']('collaboration.channelId'));}['destroy'](){this['editor']['plugins']['get'](CloudServicesCommentsAdapter)['_terminateService'](this['editor']['config']['get']('collaboration.channelId')),super['destroy']();}}class RealTimeCollaborativeTrackChanges extends _0x18e830{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x250f30];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x18e830{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
+ ((()=>_0x4a0099)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x43f978,Sessions,_0x531388];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3d3f42){super(_0x3d3f42);const _0x37c102=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x37c102);}async['init'](){const _0x4a1364=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x53a95c=_0x4a1364['serverHistory'],_0xbfb1d2=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x53a95c,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x4a1364['sessionId']});const _0x5808dc=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x51023f,_0x578e28=await _0x483c48['isBundleUploaded'](_0xbfb1d2['connection'],_0x5808dc);this['editor']['plugins']['get'](_0x43f978)['adapter']={'getRevision':async({revisionId:_0x303f32})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x303f32)),'updateRevisions':async _0x31d787=>{await this['_waitForServiceReady']();const _0x4e7017=this['_revisionTracker']['currentRevision'];if(_0x578e28&&0x1===_0x31d787['length']&&_0x31d787[0x0]['id']===_0x4e7017['id'])return _0x31d787;for(const _0x2d3c99 of _0x31d787)_0x2d3c99['id']===_0x4e7017['id']&&(_0x2d3c99['isEmptyCurrent']=_0x2d3c99['fromVersion']===_0x2d3c99['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x31d787,this['_lastRequestId'])['then'](_0x5c5de4=>(this['_lastRequestId']=_0x5c5de4,_0x31d787))['catch'](_0x265c49=>{if(it(_0x265c49)||'400'===_0x265c49['code']&&void 0x0!==_0x265c49['data']['wrongRequestId']){for(const _0x45e291 of _0x31d787){!this['_revisionTracker']['repository']['getRevision'](_0x45e291['id'])||this['_revisionTracker']['_bufferUpdate'](_0x45e291['id'],_0x45e291,!0x1);}if(it(_0x265c49)&&'destroyed'!==this['editor']['state'])throw _0x265c49;return _0x31d787;}throw _0x265c49;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x3b5aed,{revisionsData:_0x543ce3,requestId:_0x531c4e})=>{Math['max'](..._0x543ce3['map'](_0x128102=>_0x128102['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x543ce3,_0x531c4e);}):this['_handleRevisionsUpdate'](_0x543ce3,_0x531c4e);});const {revisions:_0x1ce387,requestId:_0x19af44}=await this['_revisionHistoryService']['connect'](_0xbfb1d2['connection']);_0xbfb1d2['addToReconnectionStack'](this),this['_lastRequestId']=_0x19af44,await this['_fetchMissingUsers'](_0x1ce387);for(const _0x1f9b7b of _0x1ce387)this['_revisionTracker']['addRevisionData'](_0x1f9b7b);this['listenTo'](_0x4a1364,'change:_isConnected',(_0x132447,_0x3697a0,_0x74da85)=>{_0x74da85&&(this['_oldOffset']=_0x4a1364['_offset'],_0x132447['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0xbfb1d2,'state',_0x1c9930=>_0x1c9930===_0x3c6eda['CONNECTED']);}async['reconnect'](){const _0x3ce8b4=this['editor']['plugins']['get'](WebSocketGateway),_0x38ec1d=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x350075=async()=>{const _0x38c0a2=this['_revisionTracker']['currentRevision'],_0x16ed8e=_0x38c0a2['id'],_0x1cad5b=_0x16ed8e!==_0x38ec1d['sessionId'];if(_0x1cad5b){const _0xf15354=_0x38ec1d['_offset']-this['_oldOffset'],_0x3472eb=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x38c0a2['toVersion']+_0xf15354!==_0x3472eb){const _0x478d61=_0x38c0a2['fromVersion']+_0xf15354,_0x815a90=this['editor']['plugins']['get'](_0x531388),_0xa32f3a=this['_revisionTracker']['buildRevisionData']({'revision':_0x38c0a2,'from':_0x478d61,'to':_0x3472eb});_0xa32f3a['id']=_0x38c0a2['id'];const _0x29bc9e=_0xa32f3a['authorsIds']['map'](_0x4913da=>_0x815a90['getUser'](_0x4913da));_0x38c0a2['_update']({..._0xa32f3a,'authors':_0x29bc9e},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x38c0a2['id'],_0xa32f3a,!0x0);}this['_revisionTracker']['_startingVersion']=_0x3472eb,(_0x38c0a2['toVersion']===_0x38c0a2['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x16ed8e)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x16ed8e),this['_revisionTracker']['_createCurrentRevision'](_0x3472eb));}const {revisions:_0xf7ef8f,requestId:_0x4732e3}=await this['_revisionHistoryService']['reconnect'](_0x3ce8b4['connection'],this['_lastRequestId']);_0x1cad5b&&_0xf7ef8f['length']>0x0?_0x38ec1d['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0xf7ef8f),this['_handleRevisionsUpdate'](_0xf7ef8f,_0x4732e3),this['_revisionTracker']['sendBufferedUpdates']());};return _0x38ec1d['_isConnected']?_0x350075():new Promise((_0x12a5c2,_0x48e6c1)=>{_0x38ec1d['once']('change:_isConnected',()=>{_0x350075()['then'](_0x12a5c2)['catch'](_0x48e6c1);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x3166fc=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x5d6285=>{_0x5d6285['off'](),_0x3166fc();});});}['_getLatestVersionFromServerOperations'](){const _0x5ade46=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x52969c of _0x5ade46)if('marker'!==_0x52969c['type']||_0x52969c['affectsData'])return _0x52969c['baseVersion']+0x1;}['_getLatestVersion'](){const _0xb9c4bf=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0xb14c9c=>{_0xb9c4bf['_isPendingUpdate']?_0xb9c4bf['once']('change:_isPendingUpdate',()=>{_0xb14c9c(this['_getLatestVersionFromServerOperations']());}):_0xb14c9c(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x1f1e50,_0x211d56){const _0x3f8a93=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x211d56;for(const _0x5ced0b of _0x1f1e50){const _0x4518c8=_0x3f8a93['getRevision'](_0x5ced0b['id']);if(_0x4518c8){if((_0x5ced0b['fromVersion']||_0x5ced0b['toVersion'])&&(_0x5ced0b['diffData']=null),_0x4518c8===this['_revisionTracker']['currentRevision']){const _0x387f47=Math['max'](_0x4518c8['toVersion'],_0x5ced0b['toVersion']),_0x3d6a36=Math['max'](_0x4518c8['fromVersion'],_0x5ced0b['fromVersion']);let _0x20b11e;_0x4518c8['toVersion']===_0x5ced0b['toVersion']&&_0x4518c8['fromVersion']===_0x5ced0b['fromVersion']?(_0x20b11e=!0x0,this['_preventResendingRevisionData'](_0x5ced0b)):_0x5ced0b['toVersion']===_0x387f47&&_0x5ced0b['fromVersion']===_0x3d6a36?_0x20b11e=!0x1:(_0x4518c8['toVersion']===_0x387f47&&_0x4518c8['fromVersion']===_0x3d6a36||this['_fixRevision']({'revision':_0x4518c8,'from':_0x3d6a36,'to':_0x387f47}),_0x20b11e=!0x0),_0x20b11e&&(delete _0x5ced0b['fromVersion'],delete _0x5ced0b['toVersion'],delete _0x5ced0b['diffData'],delete _0x5ced0b['createdAt'],delete _0x5ced0b['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x5ced0b),this['_preventResendingRevisionData'](_0x5ced0b);}else this['_revisionTracker']['addRevisionData'](_0x5ced0b);}const _0x53146b=_0x3f8a93['getRevisions']();_0x53146b['reverse']();for(let _0x26f8fe=0x0;_0x26f8fe<_0x53146b['length']-0x1;_0x26f8fe++){const _0x3d5dcb=_0x53146b[_0x26f8fe],_0x29da64=_0x53146b[_0x26f8fe+0x1];if(_0x3d5dcb['fromVersion']<_0x29da64['toVersion']){const _0x2ed919=_0x29da64['toVersion'],_0x2ec977=Math['max'](_0x2ed919,_0x3d5dcb['toVersion']);this['_fixRevision']({'revision':_0x3d5dcb,'from':_0x2ed919,'to':_0x2ec977});}}}['_fixRevision']({revision:_0x237333,from:_0x2a92a1,to:_0x304f1f}={}){const _0x115495=this['editor']['plugins']['get'](_0x531388),_0x461e6b=this['_revisionTracker']['buildRevisionData']({'revision':_0x237333,'from':_0x2a92a1,'to':_0x304f1f});_0x461e6b['authors']=_0x461e6b['authorsIds']['map'](_0x2d7522=>_0x115495['getUser'](_0x2d7522)),_0x237333['_update'](_0x461e6b);}['_preventResendingRevisionData'](_0x5d6b75){const _0x3a9dac={};_0x3a9dac['id']=_0x5d6b75['id'];for(const _0x374d47 of Object['keys'](_0x5d6b75))'id'!==_0x374d47&&(_0x3a9dac[_0x374d47]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x3a9dac['id'],_0x3a9dac,!0x0);}async['_fetchMissingUsers'](_0x3d8a2a){const _0x2aca8b=this['editor']['plugins']['get'](_0x531388),{connection:_0x339d9d}=this['editor']['plugins']['get'](WebSocketGateway),_0x29ff68=new Set();for(const _0x4e3625 of _0x3d8a2a){for(const _0x5098ec of _0x4e3625['authorsIds'])_0x4d32d9(_0x5098ec);_0x4e3625['creatorId']&&_0x4d32d9(_0x4e3625['creatorId']);}if(0x0===_0x29ff68['size'])return;const _0x106b2b=await _0x544a92['getMany'](_0x339d9d,Array['from'](_0x29ff68));for(const _0x1cb1a1 of _0x106b2b)_0x2aca8b['getUser'](_0x1cb1a1['id'])||_0x2aca8b['addUser'](_0x1cb1a1);function _0x4d32d9(_0x2ece74){_0x2aca8b['getUser'](_0x2ece74)||_0x29ff68['add'](_0x2ece74);}}}function it(_0xc67ef5){return _0xc67ef5['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0xc67ef5['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0xc67ef5['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x18e830{static get['requires'](){return[_0x43f978,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x4a5408{['_collapseAt'];constructor(_0xc1f1c1,_0x72d161=0x6){super(_0xc1f1c1);const _0x6eaeb8=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x72d161,this['bind']('isHidden')['to'](this,'usersCount',_0x42b05f=>_0x42b05f<_0x72d161),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x6eaeb8['if']('isHidden','ck-presence-list__counter--hidden')],'role':'listitem'},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter']},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter__text']},'children':[{'text':_0x6eaeb8['to']('usersCount',_0x165a92=>'+'+(_0x165a92-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x4a5408{['items'];['keystrokes'];constructor(_0x50d85a){super(_0x50d85a);const _0x50fa4e=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x5cc69c(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x50fa4e['if']('hasPopup'),'aria-expanded':_0x50fa4e['to']('isExpanded',_0x4454f7=>this['hasPopup']&&String(_0x4454f7)),'aria-label':_0x50fa4e['to']('hasPopup',_0xa66f7c=>K(_0x50d85a,_0xa66f7c?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x50fa4e['to']('hasPopup',_0x3b5f3f=>!!_0x3b5f3f&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x50fa4e['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x50fa4e['to'](_0x3bd121=>{const _0x13998b=_0x3bd121,_0x3337c2=document['querySelector']('.ck-presence-list__dropdown-list'),_0x33874f=document['querySelector']('.ck-balloon-panel_with-arrow');_0x3337c2?.['contains'](_0x13998b['relatedTarget'])||_0x33874f?.['contains'](_0x13998b['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x43bfe8,_0x3fa9a3,_0x464c69)=>{this['element']&&(_0x464c69?this['element']['setAttribute']('aria-expanded',String(this['isExpanded'])):this['element']['removeAttribute']('aria-expanded'));});}['focus'](){this['element']['focus']();}['render'](){super['render'](),this['keystrokes']['listenTo'](this['element']);}}class PresenceListView extends _0x4a5408{['counterView'];['inlineListView'];constructor(_0x151d79,_0x983e7c=0x6){super(_0x151d79);const _0x4f56ad=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x983e7c),this['inlineListView']=new PresenceInlineListView(_0x151d79),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x288dd0 of this['inlineListView']['items'])_0x288dd0['tooltipPosition']='s';this['inlineListView']['items']['first']&&(this['inlineListView']['items']['first']['tooltipPosition']='se');}),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list','ck-reset','ck-rounded-corners',_0x4f56ad['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x4a5408{['listWrapperView'];constructor(_0x14db03,_0x97bc72){super(_0x14db03);const _0x57e0d0=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x14db03,_0x97bc72),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x14db03,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x57e0d0['to'](_0x253570=>{const _0x7acf0d=_0x253570,_0x5a7acb=document['querySelector']('.ck-presence-list__list'),_0x13be0f=document['querySelector']('.ck-balloon-panel_with-arrow');_0x5a7acb?.['contains'](_0x7acf0d['relatedTarget'])||_0x13be0f?.['contains'](_0x7acf0d['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x4c2180{constructor(_0x21599f,_0x55c335){super(_0x21599f);const _0x31c5ca=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x55c335?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x31c5ca['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x31c5ca['to']('role'),'aria-label':_0x31c5ca['to']('ariaLabel'),'aria-labelledby':_0x31c5ca['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x17d194['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0xed085=this['element'];_0xed085&&(this['_isScrollable']=Math['max'](_0xed085['scrollHeight'],_0xed085['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x57caa1{['userView'];constructor(_0x12dbdb,_0x361225,_0x1dc6f9){super(_0x12dbdb);const _0x5eda21=this['bindTemplate'];this['userView']=new _0x6af10f(_0x12dbdb,_0x361225);const _0x175d92={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x361225['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x361225['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x361225['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x361225['color']['getColorVariable'](),'--ck-user-color-alpha':_0x361225['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x1dc6f9&&(_0x175d92['tag']='button',_0x175d92['on']={'click':_0x5eda21['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x175d92);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x4a5408{['userView'];['markerView'];constructor(_0x2fbfb1,_0x2b8bb5,_0x4bf6b3){super(_0x2fbfb1);const _0x3425c5=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x6af10f(_0x2fbfb1,_0x2b8bb5),this['markerView']=new MarkerView(_0x2fbfb1,_0x2b8bb5);const _0x5a826e=new _0x28a401(_0x2fbfb1);_0x5a826e['template']['tag']='span',_0x5a826e['text']=_0x2b8bb5['name'];const _0x1ce76c={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x3425c5['to']('isFocusable',_0x1e0528=>!!_0x1e0528&&0x0),'aria-labelledby':_0x5a826e['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x3425c5['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x3425c5['to']('hasTooltip',_0x4c60b1=>!_0x4c60b1),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x5a826e]};_0x4bf6b3&&(_0x1ce76c['tag']='button',_0x1ce76c['on']={'click':_0x3425c5['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1ce76c);}}class MarkerView extends _0x4a5408{constructor(_0x1b750e,_0x64a3d8){super(_0x1b750e),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x64a3d8['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x64a3d8['color']['getColorVariable'](),'--ck-user-color-alpha':_0x64a3d8['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x891fdc{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x7730ae){super(_0x7730ae),this['context']['config']['define']('presenceList',nt);const _0x4d12d1=_0x7730ae['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x4d12d1)throw new _0x10b4e1('presencelist-collapseat-invalid-format',this);if(_0x4d12d1<0x1)throw new _0x10b4e1('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x20fb3f(),this['balloonPanelView']=new _0x2a43c7(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x37a71b of this['_allConnectedUsers'])this['_handleUserAdd'](_0x37a71b);this['listenTo'](this['_allConnectedUsers'],'add',(_0x237b8f,_0x1f862d)=>{this['_handleUserAdd'](_0x1f862d);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x8fa8dc,_0x5e924b)=>{this['_handleUserRemove'](_0x5e924b);});}['_createView'](){const _0x2fd0e7=this['context'],_0x32e723=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x18d8a9=this['balloonPanelView'];if(!_0x594a36(_0x2fd0e7['config']['get']('presenceList.container')))throw new _0x10b4e1('presencelist-missing-container',this);return _0x32e723['counterView']['bind']('usersCount')['to'](this),_0x32e723['bind']('isCollapsed')['to'](this,'usersCount',_0x4fc745=>{const {collapseAt:_0x32a6bc}=_0x2fd0e7['config']['get']('presenceList'),_0x491457=_0x4fc745>=_0x32a6bc;if(_0x491457&&!_0x32e723['inlineListView']['items']['find'](_0x582993=>_0x582993 instanceof PresenceCounterView)){const _0x11bd61=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x11bd61&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x32e723['inlineListView']['items']['add'](_0x32e723['counterView']);}return _0x491457||this['hideDropdown'](),_0x491457;}),_0x32e723['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x16d1c8=>{const _0x40c8ee=_0x2fd0e7['config']['get']('presenceList'),_0x3b3a44=new PresenceInlineListItemView(_0x2fd0e7['locale'],_0x16d1c8,!!_0x40c8ee['onClick']);return _0x3b3a44['bind']('hasTooltip')['to'](_0x32e723,'isCollapsed',_0x8a583e=>!_0x8a583e),_0x3b3a44['bind']('isFocusable')['to'](_0x32e723,'isCollapsed',_0x10b8cd=>!_0x10b8cd),_0x40c8ee['onClick']&&this['listenTo'](_0x3b3a44,'execute',()=>{this['view']['isCollapsed']||_0x40c8ee['onClick'](_0x16d1c8,_0x3b3a44['element']);}),_0x3b3a44;}),this['listenTo'](_0x32e723['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x32e723['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x32e723['inlineListView']['keystrokes']['set']('Enter',(_0x8ceb86,_0x108218)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x108218());}),_0x32e723['render'](),_0x18d8a9['render'](),_0x154176({'emitter':_0x32e723,'activator':()=>_0x18d8a9['isVisible'],'contextElements':[_0x18d8a9['element'],_0x32e723['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x2fd0e7['config']['get']('presenceList.container')['appendChild'](_0x32e723['element']),this['_bodyCollection']=new _0x1c2f2b(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x32e723;}['_handleUserAdd'](_0x5347d7){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x5347d7['isMe'])return;const _0x6eba07=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x6eba07-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x1f02de=_0x5347d7['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x5347d7,_0x1f02de);}['_handleUserRemove'](_0x512aef){this['usersCount']--;const {collapseAt:_0x1b6bf2}=this['context']['config']['get']('presenceList'),_0x19e6b9=this['usersCount']>=_0x1b6bf2;if(this['currentDisplayedUsers']['get'](_0x512aef['id']))this['currentDisplayedUsers']['remove'](_0x512aef['id']);else{if(_0x19e6b9&&this['currentDisplayedUsers']['length']+0x1===_0x1b6bf2-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x19e6b9?0x1:0x0)<this['usersCount']){for(const _0xe19187 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0xe19187['id'])&&(this['currentDisplayedUsers']['add'](_0xe19187,Math['min'](this['currentDisplayedUsers']['length']-(_0x19e6b9?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x19e6b9?0x1:0x0)===_0x1b6bf2-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x1cce0c=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x1cce0c['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x39f6da}=this['presenceDropdownView'];_0x39f6da['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x5810a5=>{if(!_0x1cce0c['displayMe']&&_0x5810a5['isMe'])return null;const _0x32881a=new PresenceDropdownListItemView(this['context']['locale'],_0x5810a5,!!_0x1cce0c['onClick']);return _0x1cce0c['onClick']&&this['listenTo'](_0x32881a,'execute',()=>{_0x1cce0c['onClick'](_0x5810a5,_0x32881a['element']);}),_0x32881a;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x39f6da['focus'](),_0x39f6da['checkIfScrollable']();const _0x275158=(_0x4488b6,_0x259eb3)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x259eb3();};_0x39f6da['keystrokes']['set']('Esc',_0x275158),_0x39f6da['keystrokes']['set']('Shift+Tab',_0x275158),_0x39f6da['keystrokes']['set']('Tab',(_0x3d3e84,_0x1da97c)=>{!function(_0x57566c){const _0x3cd900=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x3e4384=>_0x3e4384+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x3aa1bf=[...document['body']['querySelectorAll'](_0x3cd900)]['filter'](_0x20c23c=>_0x20c23c===document['activeElement']||_0x20c23c['offsetWidth']+_0x20c23c['offsetHeight']>0x0)['sort']((_0x1368d6,_0x3619f9)=>(_0x1368d6['tabIndex']||0x0)-(_0x3619f9['tabIndex']||0x0)),_0x5848f8=_0x3aa1bf['indexOf'](_0x57566c),_0x428b53=_0x3aa1bf[(_0x5848f8+0x1)%_0x3aa1bf['length']];_0x428b53&&_0x428b53['focus']();}(this['view']['element']),this['hideDropdown'](),_0x1da97c();}),_0x39f6da['focusTracker']['add'](this['view']['element']),_0x39f6da['focusTracker']['on']('change:isFocused',(_0x3c8b61,_0x2afe35,_0x4d5db7)=>{_0x4d5db7||this['hideDropdown']();});}['hideDropdown'](){this['presenceDropdownView']&&(this['view']['inlineListView']['isExpanded']=!0x1,this['balloonPanelView']['unpin'](),this['balloonPanelView']['content']['remove'](this['presenceDropdownView']),this['presenceDropdownView']['destroy'](),this['presenceDropdownView']=void 0x0);}['destroy'](){super['destroy'](),this['view']&&this['view']['isRendered']&&this['view']['destroy'](),this['_bodyCollection']&&(this['_bodyCollection']['detachFromDom'](),this['_bodyCollection']['destroy'](),this['_bodyCollection']=null);}}class PresenceList extends _0x891fdc{static get['requires'](){return[Sessions,PresenceListUI];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}export{CloudServicesCommentsAdapter,CloudServicesRevisionHistoryAdapter,CloudServicesTrackChangesAdapter,PresenceList,PresenceListUI,RealTimeCollaborationClient,RealTimeCollaborativeComments,RealTimeCollaborativeEditing,RealTimeCollaborativeRevisionHistory,RealTimeCollaborativeTrackChanges,Sessions,WebSocketGateway};