@ckeditor/ckeditor5-real-time-collaboration 48.2.0-alpha.0 → 48.2.0-alpha.2

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 _0x548445,Plugin as _0x300c8b,PendingActions as _0x3513e1,Context as _0x2ff439}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x32339d,CKEditorError as _0x351432,Collection as _0x34528e,global as _0x143e42,version as _0x6388ea,uid as _0x4215b6,KeystrokeHandler as _0x5caf56}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x3adc1e,View as _0x5510d0,ListView as _0x55910f,ListItemView as _0xcf9da3,LabelView as _0x5b81f0,BalloonPanelView as _0x33f98f,clickOutsideHandler as _0x6e4637,BodyCollection as _0x233bd9}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x515600,History as _0x281616,NoOperation as _0x2a766a,InsertOperation as _0x1d0940,MarkerOperation as _0x23582a,RootAttributeOperation as _0x5da110,transformOperationSets as _0x10be08,OperationFactory as _0x18abfd}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x2c105b}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x23e91d,WEB_SOCKET_GATEWAY_STATES as _0x57a7c5,CollaborativeEditingService as _0x3e2b79,User as _0x167379,CommentsService as _0x4c9f59,TrackChangesService as _0x444fdd,RevisionHistoryService as _0xf4e34f,EditorService as _0x30df8b}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x351d2b,UserView as _0x5b5282}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x465c23}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x3e38ba,TrackChanges as _0x5f27f3}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x184887,Comments as _0x14ef29,CommentsEditing as _0x4a8d6b}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x5fa821}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x48bc4d}from'es-toolkit/compat';class WebSocketGateway extends _0x548445{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
+ ((()=>_0x23e91d)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x2c105b,_0x3adc1e];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x2afb84){super(_0x2afb84),this['set']('state',_0x57a7c5['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x32339d())();}['init'](){const _0x3136b5=this['context'],_0x68fa30=_0x3136b5['plugins']['get'](_0x2c105b),_0x1a581c=_0x3136b5['plugins']['get'](_0x3adc1e);if(!_0x68fa30['token'])throw new _0x351432('websocketgateway-missing-token',this);if(!_0x68fa30['webSocketUrl'])throw new _0x351432('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'](_0x68fa30['token'],_0x68fa30['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x52f7fd=>{if(this['connection']=_0x52f7fd,this['bind']('state')['to'](_0x52f7fd,'state',this,'_isBrowserOffline',(_0x1b356b,_0x42acb8)=>('connected'!==_0x1b356b&&(this['_shouldPluginsReconnect']=!0x0),_0x42acb8||_0x1b356b!==_0x57a7c5['CONNECTED']?_0x57a7c5['DISCONNECTED']:this['state']==_0x57a7c5['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x57a7c5['CONNECTING']):_0x57a7c5['CONNECTED'])),this['connection']['on']('error',(_0x2572c9,_0x388b4c)=>{if('limitExceeded'!==_0x388b4c['code'])throw console['error'](_0x388b4c),new _0x351432('cloudservices-init',null,{'originalError':_0x388b4c});_0x1a581c['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'});}),!_0x52f7fd['me'])return new Promise(_0x5b7ee7=>_0x52f7fd['on']('change:me',_0x5b7ee7));})['catch'](_0x3f8448=>{throw console['error'](_0x3f8448),new _0x351432('cloudservices-init',null,{'originalError':_0x3f8448});});}['addToReconnectionStack'](_0x2b5e7b){if('function'!=typeof _0x2b5e7b['reconnect'])throw new _0x351432('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x2b5e7b))throw new _0x351432('websocketgateway-plugin-already-registered',this,{'name':_0x2b5e7b['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x2b5e7b);}['removeFromReconnectionStack'](_0xd5de82){this['_reconnectionStack']['delete'](_0xd5de82);}['isInReconnectionStack'](_0x54de66){return this['_reconnectionStack']['has'](_0x54de66);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x53591d=>_0x53591d['reconnect']())))['then'](()=>this['state']=_0x57a7c5['CONNECTED'])['catch'](_0x154cd2=>{throw console['error'](_0x154cd2),new _0x351432('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x57a7c5['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x548445{['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,_0x351d2b];}constructor(_0x3beb4e){super(_0x3beb4e),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x34528e(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x351d2b);}['init'](){const _0x4e16fd=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x4e16fd,'change:state',(_0x206de4,_0x18247a,_0x5d6fe8)=>{if('connected'!==_0x5d6fe8)this['channelSessions']['forEach'](_0x235171=>_0x235171['clear']()),this['channelConnectedUsers']['forEach'](_0xe1e127=>_0xe1e127['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x54e3cb,_0x29f70d]of this['_registeredSessions'])for(const _0x9d77ae of _0x29f70d)this['_handleSessionAdd'](_0x54e3cb,_0x9d77ae);}}),this['_createUser'](_0x4e16fd['connection']['me'],!0x0);}['register'](_0x325809,_0x2740bc){if(this['_registeredSessions']['has'](_0x325809))throw new _0x351432('sessions-register-already-registered',null,{'channelId':_0x325809});this['_registeredSessions']['set'](_0x325809,_0x2740bc),this['channelSessions']['set'](_0x325809,new _0x34528e()),this['channelConnectedUsers']['set'](_0x325809,new _0x34528e()),this['listenTo'](_0x2740bc,'add',(_0x2860b1,_0x3f77ab)=>this['_handleSessionAdd'](_0x325809,_0x3f77ab)),this['listenTo'](_0x2740bc,'remove',(_0xf2cc5a,_0x1a4803)=>this['_handleSessionRemove'](_0x325809,_0x1a4803));for(const _0xb65075 of _0x2740bc)this['_handleSessionAdd'](_0x325809,_0xb65075);}['unregister'](_0x32f6db){if(!this['_registeredSessions']['has'](_0x32f6db))throw new _0x351432('sessions-unregister-not-exist',null,{'channelId':_0x32f6db});const _0x31c8ec=this['_registeredSessions']['get'](_0x32f6db);this['stopListening'](_0x31c8ec);for(const _0x5de056 of _0x31c8ec)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x32f6db,_0x5de056);this['_registeredSessions']['delete'](_0x32f6db),this['channelSessions']['delete'](_0x32f6db),this['channelConnectedUsers']['delete'](_0x32f6db);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x15a1fb){for(const _0x41c944 of this['channelSessions']['values']())for(const _0x2b49e7 of _0x41c944)if(_0x2b49e7['id']===_0x15a1fb)return _0x2b49e7['user'];}['getUserSessions'](_0x45d954,_0x192e4b){const _0x2cd5a9=_0x192e4b?[this['channelSessions']['get'](_0x192e4b)]:this['channelSessions']['values'](),_0x51135d=new Set();for(const _0x39b267 of _0x2cd5a9)for(const _0x47bbf3 of _0x39b267)_0x47bbf3['user']['id']===_0x45d954['id']&&_0x51135d['add'](_0x47bbf3['id']);return _0x51135d;}['getUserRole'](_0x254715){for(const _0x3be676 of this['channelSessions']['values']())for(const _0xc5bc00 of _0x3be676)if(_0xc5bc00['user']===_0x254715)return _0xc5bc00['role'];}['_handleSessionAdd'](_0x42379e,_0x25b4a2){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x2019d1=_0x25b4a2['user'],_0xb838b4=this['_users']['getUser'](_0x2019d1['id'])||this['_createUser'](_0x2019d1),_0x442ed9=Object['assign']({},_0x25b4a2,{'user':_0xb838b4});if(this['channelSessions']['get'](_0x42379e)['add'](_0x442ed9),!_0x2019d1['hiddenInPresenceList']){const _0x3eb7c5=this['channelConnectedUsers']['get'](_0x42379e);_0x3eb7c5['has'](_0xb838b4['id'])||_0x3eb7c5['add'](_0xb838b4),this['allConnectedUsers']['has'](_0xb838b4['id'])||_0x2019d1['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0xb838b4,_0xb838b4['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x42379e,{'channelId':_0x42379e,'session':_0x442ed9});}['_handleSessionRemove'](_0x3507c3,_0x81c58b){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x4a4012=this['channelConnectedUsers']['get'](_0x3507c3),_0x123c67=_0x81c58b['user'];_0x123c67['id']&&(this['channelSessions']['get'](_0x3507c3)['remove'](_0x81c58b['id']),_0x4a4012['has'](_0x123c67['id'])&&!this['getUserSessions'](_0x123c67,_0x3507c3)['size']&&_0x4a4012['remove'](_0x123c67['id']),this['allConnectedUsers']['get'](_0x123c67['id'])&&!this['getUserSessions'](_0x123c67)['size']&&this['allConnectedUsers']['remove'](_0x123c67['id']));}['_createUser'](_0x4511cc,_0x5db21c){const _0x416f6b=this['_users']['addUser'](_0x4511cc);return _0x5db21c&&this['_users']['defineMe'](_0x4511cc['id']),_0x416f6b['orderNumber']=this['_uniqueUsersCount']++,_0x416f6b;}}class UserMarkers extends _0x300c8b{['_domEmitter']=new(_0x32339d())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x499a93=this['editor'],_0x5ea90a=_0x499a93['plugins']['get'](Sessions);_0x499a93['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x28c0c6,{writer:_0x598f88})=>function(_0x1f8868,_0xfe1f94,_0x254d06,_0x137b11){const _0x73996b=_0x1f8868['markerName']['split'](':')[0x2],_0x338faa=_0x254d06['getUserBySessionId'](_0x73996b);if(!_0x338faa||_0x73996b===_0x254d06['mySessionId'])return;if(!_0x137b11['model']['schema']['checkChild'](_0x1f8868['markerRange']['start'],'$text'))return;const _0x169a37={'class':'ck-user__marker\x20'+_0x338faa['color']['getMarkerClass'](),'style':Y(_0x338faa),'data-name':_0x338faa['name'],'data-session-id':_0x73996b},_0x4a3c06=_0x137b11['model']['markers']['get'](_0x1f8868['markerName']),_0x2c248a=_0x4a3c06['getStart'](),_0x462dde=_0x2c248a['nodeAfter'],_0x329e56=_0x137b11['model']['schema'];if(_0x462dde&&_0x329e56['isObject'](_0x462dde)&&_0x329e56['isInline'](_0x462dde)&&!_0x137b11['model']['markers']['get']('user:range:'+_0x73996b)['getRange']()['isCollapsed'])return;const _0x3f5b08=_0x2c248a['parent'];return _0x137b11['model']['schema']['isLimit'](_0x3f5b08)&&!_0x137b11['model']['hasContent'](_0x3f5b08)&&(_0x169a37['contenteditable']=!0x1),function(_0x9f88e8,_0x1b6cc7,_0x473ea3){const _0x4f2e3b=_0x9f88e8['createUIElement']('span',_0x1b6cc7);return _0x9f88e8['setCustomProperty']('userPositionMarker',!0x0,_0x4f2e3b),_0x4f2e3b['render']=function(_0x4b8b9f){const _0x2fd0c8=this['toDomElement'](_0x4b8b9f),_0x28f06e=document['createElement']('span');return _0x28f06e['classList']['add']('ck-user__marker-tooltip'),_0x28f06e['setAttribute']('contenteditable','false'),_0x28f06e['setAttribute']('spellcheck','false'),_0x28f06e['textContent']=_0x473ea3['name'],_0x2fd0c8['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x28f06e['outerHTML']+'⁠',_0x2fd0c8['addEventListener']('mouseenter',()=>{_0x2fd0c8['classList']['add']('ck-user__marker_hovered');}),_0x2fd0c8['addEventListener']('mouseleave',()=>{_0x2fd0c8['classList']['remove']('ck-user__marker_hovered');}),_0x2fd0c8;},_0x4f2e3b['isSimilar']=function(_0x27ea24){return!(!this['getCustomProperty']('userPositionMarker')||!_0x27ea24['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x27ea24['getAttribute']('data-session-id'));},_0x4f2e3b;}(_0xfe1f94,_0x169a37,_0x338faa);}(_0x28c0c6,_0x598f88,_0x5ea90a,_0x499a93)}),_0x499a93['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x5786f8=>function(_0x32f8f8,_0x3ad0ad){const _0x226a0a=_0x32f8f8['markerName']['split'](':')[0x2];if(_0x226a0a===_0x3ad0ad['mySessionId'])return null;const _0x5e2b1f=_0x3ad0ad['getUserBySessionId'](_0x226a0a);if(!_0x5e2b1f)return{'id':_0x226a0a,'classes':[]};return{'id':_0x226a0a,'classes':['ck-user__selection',_0x5e2b1f['color']['getSelectionClass']()],'attributes':{'style':Y(_0x5e2b1f),'data-session-id':_0x226a0a},'priority':0x7d0+_0x5e2b1f['orderNumber']};}(_0x5786f8,_0x5ea90a)}),function(_0x32a450){const _0x578a62=_0x32a450['model'],_0x26ffe4=new Map(),_0x34f9a7=_0x32a450['plugins']['get'](Sessions);_0x578a62['markers']['on']('update:user:range',(_0x214f88,_0x52f29b,_0x44d3de,_0x2ac210)=>{if(!_0x2ac210&&_0x26ffe4['get'](_0x52f29b['name']))return _0x26ffe4['get'](_0x52f29b['name'])['detach'](),void _0x26ffe4['delete'](_0x52f29b['name']);const _0x2f5abe=_0x52f29b['name']['split'](':')[0x2];if(_0x2f5abe===_0x34f9a7['mySessionId'])return;const _0x40a97d='user:position:'+_0x2f5abe;_0x578a62['markers']['has'](_0x40a97d)&&_0x32a450['editing']['reconvertMarker'](_0x40a97d),_0x52f29b['on']('change:range',(_0x340cae,_0x45a794,_0x2c2028)=>{if('$graveyard'!=_0x45a794['root']['rootName']&&'$graveyard'==_0x52f29b['getRange']()['root']['rootName']&&!_0x26ffe4['has'](_0x52f29b['name'])){const _0x35ca33=_0x578a62['schema']['getNearestSelectionRange'](_0x2c2028['deletionPosition']);if(_0x35ca33){const _0x4a7280=_0x515600['fromRange'](_0x35ca33);_0x26ffe4['set'](_0x52f29b['name'],_0x4a7280),_0x4a7280['on']('change:range',(_0x53fed3,_0x162b76,_0x5d0131)=>{if('$graveyard'==_0x4a7280['root']['rootName']){const _0x15efb9=_0x578a62['schema']['getNearestSelectionRange'](_0x5d0131['deletionPosition']);_0x15efb9?(_0x4a7280['start']=_0x15efb9['start'],_0x4a7280['end']=_0x15efb9['end']):(_0x26ffe4['delete'](_0x52f29b['name']),_0x4a7280['detach']());}});}}});}),_0x578a62['document']['on']('change',()=>{_0x26ffe4['size']>0x0&&_0x578a62['enqueueChange']({'isUndoable':!0x1},_0x16e2eb=>{for(const [_0x1c470c,_0x50a1af]of _0x26ffe4)'$graveyard'==_0x578a62['markers']['get'](_0x1c470c)['getRange']()['root']['rootName']&&(z(_0x1c470c['split'](':')[0x2],_0x50a1af['toRange'](),_0x578a62,_0x16e2eb),_0x50a1af['detach']());_0x26ffe4['clear']();});});}(_0x499a93),this['_domEmitter']['listenTo'](_0x143e42['document'],'keydown',(_0x65c30d,{key:_0x67fd05})=>{'Escape'===_0x67fd05&&function(_0x420421){_0x420421['editing']['view']['change'](_0x36f6ad=>{for(const _0x1cd00d of _0x420421['model']['markers']){if(!_0x1cd00d['name']['startsWith']('user:position'))continue;const _0x2bf7a6=_0x420421['editing']['mapper']['markerNameToElements'](_0x1cd00d['name']);if(_0x2bf7a6){for(const _0x54430c of _0x2bf7a6)_0x36f6ad['removeClass']('ck-user__marker_hovered',_0x54430c);}}});}(_0x499a93);},{'useCapture':!0x0});}['afterInit'](){const _0x36702b=this['editor'],_0x588807=_0x36702b['commands']['get']('undo');_0x588807&&_0x36702b['model']['on']('applyOperation',(_0x3b3e3b,_0xb43885)=>{const _0x3820fc=_0xb43885[0x0];if(!_0x3820fc['isDocumentOperation'])return;if('marker'!=_0x3820fc['type']||!_0x3820fc['name']['startsWith']('user:'))return;const _0x5e54b2=_0x3820fc['batch'];_0x588807['_createdBatches']['has'](_0x5e54b2)&&(_0x3820fc['newRange']=_0x3820fc['oldRange']?_0x36702b['model']['createRange'](_0x3820fc['oldRange']['start'],_0x3820fc['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x3b952f=this['editor'],_0x12ceb6=_0x3b952f['model']['document'],_0x5f1e4=_0x3b952f['plugins']['get'](Sessions);_0x3b952f['model']['enqueueChange']({'isUndoable':!0x1},_0x556761=>{const _0x2cc066='user:range:'+_0x5f1e4['mySessionId'],_0x2e75bb='user:position:'+_0x5f1e4['mySessionId'],_0x573bd3=_0x3b952f['model']['markers']['has'](_0x2cc066);_0x3b952f['editing']['view']['hasDomSelection']?z(_0x5f1e4['mySessionId'],_0x12ceb6['selection']['getFirstRange'](),_0x3b952f['model'],_0x556761):_0x573bd3&&(_0x556761['removeMarker'](_0x2cc066),_0x556761['removeMarker'](_0x2e75bb));});}}function z(_0xef2a2c,_0x4d22b4,_0x27da11,_0x24a758){const _0x177e08='user:range:'+_0xef2a2c,_0x301d2d='user:position:'+_0xef2a2c,_0x1d7cdf=_0x4d22b4['getContainedElement']();let _0x16ec98=_0x4d22b4['start'];if(_0x1d7cdf&&_0x1d7cdf['is']('element','tableCell')){const _0x11950c=function(_0x51234d,_0x5165f0){for(const _0x1002d3 of _0x51234d['getPositions']())if(_0x5165f0['schema']['checkChild'](_0x1002d3,'$text'))return _0x1002d3;}(_0x4d22b4,_0x27da11);_0x11950c&&(_0x16ec98=_0x11950c,_0x4d22b4=_0x24a758['createRange'](_0x16ec98));}const _0x47dd7d=_0x24a758['createRange'](_0x16ec98);_0x27da11['markers']['has'](_0x177e08)?(_0x24a758['updateMarker'](_0x177e08,{'range':_0x4d22b4}),_0x24a758['updateMarker'](_0x301d2d,{'range':_0x47dd7d})):(_0x24a758['addMarker'](_0x177e08,{'range':_0x4d22b4,'usingOperation':!0x0}),_0x24a758['addMarker'](_0x301d2d,{'range':_0x47dd7d,'usingOperation':!0x0}));}function Y(_0x3e2892){return'--ck-user-color:'+_0x3e2892['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x3e2892['color']['getColorAlphaVariable']()+';';}function K(_0x3fc6d8,_0x5b69ff,_0x21d19f){const _0xe9c56c=_0x3fc6d8['t'],t=_0x3fc6d8['t'];switch(_0x5b69ff){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 _0xe9c56c({'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'},_0x21d19f);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x300c8b{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
+ ((()=>_0x3e2b79)());['_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,_0x3513e1,_0x351d2b,_0x3adc1e];}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 _0x192309=this['serverHistory']['getOperations']();for(let _0x2bc1d4=_0x192309['length']-0x1;_0x2bc1d4>=0x0;_0x2bc1d4--){const _0x55f962=_0x192309[_0x2bc1d4];if(!this['_disconnectionOperations']['has'](_0x55f962))return _0x55f962['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x1e563c){if(super(_0x1e563c),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x281616(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x351432('collaboration-missing-channelid',this);const _0x55e94d=_0x1e563c['config']['get']('cloudServices.bundleVersion')||_0x6388ea;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x55e94d,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x465c23(),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 _0x270c70=this['editor'],_0x464cc2=_0x270c70['plugins']['get'](_0x351d2b),_0x23f63c=_0x270c70['plugins']['get'](WebSocketGateway);this['listenTo'](_0x464cc2,'getOperationAuthor',(_0x4e1cfa,_0x2f76a6)=>{const _0x4da640=_0x2f76a6[0x0];_0x4da640['_authorId']&&(_0x4e1cfa['return']=_0x464cc2['getUser'](_0x4da640['_authorId']),_0x4e1cfa['stop']()),null===_0x4da640['_authorId']&&(_0x4e1cfa['return']=null,_0x4e1cfa['stop']());},{'priority':'high'}),this['listenTo'](_0x270c70['model']['document']['selection'],'change:range',(_0x20e89a,_0x1c0f95)=>{_0x1c0f95['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x270c70['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x270c70['model']['on']('applyOperation',(_0x139a58,_0x58c76c)=>{const _0x6e7741=_0x58c76c[0x0];_0x6e7741['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x6e7741),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x23f63c,'state',this,'_hasSynchronizationProblem',(_0x44e40c,_0x32cc61)=>'connected'===_0x44e40c&&!_0x32cc61),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x270c70['disableReadOnlyMode']('rtc-offline'):_0x270c70['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x270c70['disableReadOnlyMode']('rtc-offline'):_0x270c70['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0xf15534=this['editor']['plugins']['get'](Sessions),_0x4ffd23=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0xf15534['unregister'](this['_channelId']);const _0x142b96=await this['_service']['reconnect'](_0x4ffd23['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x142b96)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x203949=await this['_service']['getConnectedSessions']();_0xf15534['register'](this['_channelId'],_0x203949),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x28cacc){if(function(_0x2e267d){return'404'===_0x2e267d['code'];}(_0x28cacc)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x1dae15){return'409'===_0x1dae15['code'];}(_0x28cacc)){const _0x46a89a=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'](_0x46a89a);}else{if(!(_0x28cacc instanceof ReconnectionError))throw _0x28cacc;this['_handleReconnectionError']();}}}}['destroy'](){const _0xfac075=this['editor']['plugins']['get'](WebSocketGateway),_0x2435c6=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x2435c6['channelSessions']['has'](this['_channelId'])&&_0x2435c6['unregister'](this['_channelId']),_0xfac075['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x3ce21b){if(this['sessionId']!==_0x3ce21b['sessionId']&&this['_lastSyncedOperationId']!==_0x3ce21b['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x3ce21b['sessionId'],this['_handleServerResponse']([],{..._0x3ce21b,'wereChangesApplied':!0x1,'data':_0x3ce21b['data']},'reconnect');}async['_connectService'](_0x1fbb02,_0x1f9cb5=!0x1){const {connection:_0xf86ef4}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0xf86ef4,this['_channelId'])['then'](_0x2b76c4=>this['_initSessionsHandling'](_0x2b76c4))['catch'](_0x11bc2e=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x11bc2e);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x57904b,_0x47fd58)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x47fd58);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x5e8c02=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x1fbb02);this['_isPendingUpdate']=!0x0;const _0x361e55=await this['_service']['connect'](_0xf86ef4,this['_compressOperations'](_0x1fbb02),_0x5e8c02);if(this['sessionId']=_0x361e55['sessionId'],_0x1f9cb5){if(!_0x361e55['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x361e55['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x1fbb02,_0x361e55,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x361e55,_0x1fbb02);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x16d1b1=this['editor']['plugins']['get'](Sessions),_0x152a84=this['editor']['plugins']['get'](UserMarkers),_0x22d1e8=_0x16d1b1['channelSessions']['get'](this['_channelId']);_0x22d1e8&&_0x22d1e8['length']>0x1?_0x152a84['createUserMarkerOperations']():this['listenTo'](_0x16d1b1,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x16d1b1['channelSessions']['get'](this['_channelId'])['length']&&_0x152a84['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x2543e0,_0x105be9,_0x4f85f7,_0x1cb747){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x105be9){const _0x346f17=this['_decompressOperations'](_0x4f85f7,_0x1cb747);await this['_fetchMissingUsers'](_0x346f17),this['_handleExternalOperations'](_0x346f17,_0x105be9,_0x4f85f7['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x8aa1ed}=this['editor'];let _0x543502;try{_0x543502=await this['_service']['getDocumentDetails']();}catch{const _0x388de6=K(_0x8aa1ed,'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'](_0x388de6);}const _0x50daa6=_0x543502['currentDocumentSession']||_0x543502['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x50daa6['lastOperationId']){const _0x4a1821=K(_0x8aa1ed,'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'](_0x4a1821);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x1ffb1f){const _0x591490=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x591490,'sessionAdd:'+this['_channelId'],(_0x14357d,{session:_0x38f468})=>{if(_0x38f468['id']===_0x591490['mySessionId']){_0x14357d['off']();const _0x525c5b=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x52022e=_0x38f468['permissions'];_0x525c5b&&_0x525c5b['isEnabled']&&(_0x52022e=_0x52022e['filter'](_0x1292b8=>'document:write'!==_0x1292b8)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x52022e,this['_channelId']);}}),_0x591490['register'](this['_channelId'],_0x1ffb1f);}['_initThrowingOnDataSet'](){const _0x570981=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x5ae753)=>{if(!_0x5ae753[_0x5ae753['length']-0x1]['suppressErrorInCollaboration'])throw new _0x351432('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x570981['apply'](this['editor']['data'],_0x5ae753);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x4240e8,[_0x1be240])=>{if(this['_document']['version'])throw new _0x351432('realtimecollaborationclient-init-document-already-initialized',this);_0x4240e8['stop'](),this['_setPendingAction']();const _0x9399e7=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x3c2618])=>!_0x3c2618['lazyLoad'])['map'](([_0x45a7bc,_0x589ec7])=>[_0x45a7bc,_0x589ec7['modelAttributes']||{}])),_0x1c669f=this['_getOperationsFromInitData'](_0x1be240,_0x9399e7);0x0==_0x1c669f['length']&&_0x1c669f['push'](new _0x2a766a(0x0)),_0x4240e8['return']=this['_connectService'](_0x1c669f)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x4d9936=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x4d9936))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x49f1b6,[_0x32dad2,_0x111015])=>{_0x49f1b6['stop']();const _0x162adc=this['editor']['model']['document']['getRoot'](_0x32dad2);if(!this['_knownRootNames']['has'](_0x32dad2)){const _0x584665=_0x111015&&_0x111015['data']?_0x111015['data']:'',_0x340950=_0x111015&&_0x111015['attributes']?_0x111015['attributes']:{};await this['_loadRoot'](_0x32dad2,_0x584665,_0x340950);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x162adc['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x162adc);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x3cb340){const _0x3be658=this['editor']['plugins']['get'](_0x351d2b),{connection:_0x592496}=this['editor']['plugins']['get'](WebSocketGateway),_0x5a13c3=new Set();for(const _0x52ccc6 of _0x3cb340){const _0x33d629=_0x52ccc6['_authorId'];_0x33d629&&!_0x3be658['getUser'](_0x33d629)&&_0x5a13c3['add'](_0x33d629);}if(0x0===_0x5a13c3['size'])return;const _0x15f851=await _0x167379['getMany'](_0x592496,Array['from'](_0x5a13c3));for(const _0x16dc3a of _0x15f851)_0x3be658['getUser'](_0x16dc3a['id'])||_0x3be658['addUser'](_0x16dc3a);}['_getOperationsFromInitData'](_0x9e1ed0,_0x35bc5a={}){const _0x3fb64f=this['editor']['model'],_0x3014d0=[];let _0x52f382=0x0;const _0x2f36b0='string'==typeof _0x9e1ed0?{'main':_0x9e1ed0}:_0x9e1ed0;for(const _0x3966eb of Object['keys'](_0x2f36b0)){if(!this['_document']['roots']['has'](_0x3966eb))throw new _0x351432('realtimecollaborationclient-init-non-existent-root',this);const _0x2d27d=this['_document']['getRoot'](_0x3966eb),_0x405892=this['editor']['data']['parse'](_0x2f36b0[_0x3966eb],_0x2d27d),_0x2f0021=new _0x1d0940(_0x3fb64f['createPositionAt'](_0x2d27d,0x0),_0x405892,_0x52f382++);_0x3014d0['push'](_0x2f0021);for(const [_0x5d3c8d,_0xce1a69]of _0x405892['markers']){const _0xfd1084=_0x3fb64f['createRange'](_0x3fb64f['createPositionFromPath'](_0x2d27d,_0xce1a69['start']['path']['slice']()),_0x3fb64f['createPositionFromPath'](_0x2d27d,_0xce1a69['end']['path']['slice']())),_0x1ff126=new _0x23582a(_0x5d3c8d,null,_0xfd1084,_0x3fb64f['markers'],!0x0,_0x52f382++);_0x3014d0['push'](_0x1ff126);}}if(_0x35bc5a)for(const [_0x508469,_0x279886]of Object['entries'](_0x35bc5a)){const _0x654651=_0x3fb64f['document']['getRoot'](_0x508469);if(!_0x654651)throw new _0x351432('multi-root-editor-root-attributes-no-root',null);for(const [_0x1f5ff2,_0x237bd6]of Object['entries'](_0x279886))if(null!==_0x237bd6){const _0x4de2ea=new _0x5da110(_0x654651,_0x1f5ff2,null,_0x237bd6,_0x52f382++);_0x3014d0['push'](_0x4de2ea);}}return _0x3014d0;}async['_loadRoot'](_0x41c855,_0x14c4da,_0x5c3621){this['_getOperationsFromInitData']({[_0x41c855]:_0x14c4da},{[_0x41c855]:_0x5c3621})['forEach']((_0xaaf8e8,_0x3be63c)=>{_0xaaf8e8['baseVersion']=this['_document']['version']+_0x3be63c,_0xaaf8e8['_isInit']=!0x0,this['_saveOperationInBuffer'](_0xaaf8e8);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x2fecb4,_0x50990c){let _0x4da63a;this['_offset']=_0x2fecb4['offset'];const _0x253822=_0x2fecb4['wereChangesApplied']&&!_0x2fecb4['initData'],_0x52369b=_0x253822?0x0:_0x2fecb4['data']['baseVersion'];if(_0x50990c['forEach'](_0x467b82=>{_0x467b82['_isInit']=!0x0,_0x467b82['createdAt']=_0x2fecb4['sessionCreatedAt'],_0x467b82['_authorId']=null;}),_0x253822)_0x4da63a=_0x50990c,this['_applyOperationsSet'](_0x4da63a,_0x253822);else{if(_0x2fecb4['initData']){const _0x25da9b=this['_getOperationsFromInitData'](_0x2fecb4['initData']);this['_document']['history']['version']=-_0x25da9b['length'],_0x25da9b['forEach'](_0x51014a=>{_0x51014a['baseVersion']-=_0x25da9b['length'],_0x51014a['createdAt']=_0x2fecb4['sessionCreatedAt'],_0x51014a['_isInit']=!0x0,_0x51014a['_authorId']=null;}),this['_applyOperationsSet'](_0x25da9b,!0x0),this['serverHistory']['version']=-_0x25da9b['length']+this['_offset'],this['_updateServerHistory'](_0x25da9b);}this['_document']['history']['version']=_0x52369b,_0x4da63a=this['_decompressOperations'](_0x2fecb4['data'],_0x2fecb4['metadata']),await this['_fetchMissingUsers'](_0x4da63a),this['_applyOperationsSet'](_0x4da63a,_0x253822);}_0x2fecb4['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x4da63a,_0x2fecb4['lastOperationId']),this['_lastSyncedOperationId']=_0x2fecb4['lastOperationId']),this['serverHistory']['version']=_0x52369b+this['_offset'],this['_updateServerHistory'](_0x4da63a),_0x50990c['filter'](_0x1ea538=>{const _0xbf9d85=this['_getAffectedRoot'](_0x1ea538);return _0xbf9d85&&!this['_knownRootNames']['has'](_0xbf9d85);})['forEach']((_0x236dc9,_0x27a8e7)=>{_0x236dc9['baseVersion']=this['_document']['version']+_0x27a8e7,this['_saveOperationInBuffer'](_0x236dc9);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x3721c1,_0xb48406){const _0x2dba2d=_0xb48406&&_0xb48406['message'];if(_0x2dba2d&&_0x2dba2d['startsWith']('realtimecollaborationclient'))throw _0xb48406;const _0x182714=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x182714['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x351432(_0x3721c1,this['editor'],_0x2dba2d?{'originalError':_0x2dba2d}:void 0x0);}['_saveOperationInBuffer'](_0x39f541){this['_knownOperations']['has'](_0x39f541)||(this['_knownOperations']['add'](_0x39f541),this['_bufferedOperations']['push'](_0x39f541),this['_pendingAction']||'marker'==_0x39f541['type']&&!_0x39f541['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x24a40b=!0x1){!_0x24a40b&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x5082e3=>{_0x5082e3&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x243caf=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x3de1fa){return _0x3de1fa['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x3de1fa['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x3de1fa['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x243caf)||this['_crash'](_0x243caf['message'],_0x243caf);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x11adf8=>{this['on']('change:_isPendingUpdate',()=>{_0x11adf8();});});}async['_sendBufferedOperations'](){const _0xb85685=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0xb85685['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x4d04b7=[...this['_bufferedOperations']];for(const _0x3f8b9c of _0x4d04b7)_0x3f8b9c['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x3f8b9c);const _0x650c09=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x4d04b7),_0x472894=J++,_0xae2479=this['_compressOperations'](_0x4d04b7),_0x49d8cd=await this['_service']['sendOperations'](_0xae2479,_0xae2479['baseVersion'],_0x650c09);try{return await this['_handleServerResponse'](_0x4d04b7,_0x49d8cd,_0x472894);}catch(_0x1c63b1){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x1c63b1);}}async['_handleServerResponse'](_0x49363f,_0x12817b,_0x5505f){if('error'in _0x12817b)throw _0x12817b['error'];let _0x363488=!0x1;if(_0x12817b['wereChangesApplied']){_0x12817b['lastOperationId']&&(this['_lastSyncedOperationId']=_0x12817b['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x3ab050=>!_0x49363f['includes'](_0x3ab050));for(const _0x4ebdc4 of _0x49363f)_0x4ebdc4['createdAt']='lastOperationAcceptedAt'in _0x12817b&&_0x12817b['lastOperationAcceptedAt']||void 0x0;Q(_0x49363f,_0x12817b['version']-_0x49363f['length']),this['_updateServerHistory'](_0x49363f);const _0x539fea=_0x49363f['filter'](_0x58a679=>{if(!_0x58a679['_isInit'])return!0x1;const _0xacba5d=this['_getAffectedRoot'](_0x58a679);return _0xacba5d&&!this['_knownRootNames']['has'](_0xacba5d);});Q(_0x539fea,this['_document']['version']),this['_applyOperationsSet'](_0x539fea),_0x363488=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x5c60a1=this['_decompressOperations'](_0x12817b['data'],_0x12817b['metadata'])['filter'](_0x2b157a=>_0x2b157a['baseVersion']>=this['_lastServerVersion']);_0x5c60a1['forEach'](_0x2acc1a=>this['_addKnownRoot'](_0x2acc1a)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0xf29e3b=>!_0xf29e3b['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0xf29e3b))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x5c60a1),_0x363488=this['_handleExternalOperations'](_0x5c60a1,_0x12817b['version'],_0x12817b['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x363488?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x199907,_0x181ea0,_0x33baea){try{const _0x4e4731={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x2a7792,operationsB:_0x595f4c,originalOperations:_0x3633a8}=_0x10be08(_0x199907,this['_bufferedOperations'],_0x4e4731);Q(_0x2a7792,this['_document']['version']),Q(_0x595f4c,_0x181ea0);for(const _0x2025e4 of _0x2a7792){const _0x48a0c4=_0x3633a8['get'](_0x2025e4);_0x2025e4['_authorId']=_0x48a0c4?_0x48a0c4['_authorId']:null;}_0x33baea&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x199907,_0x33baea),this['_lastSyncedOperationId']=_0x33baea),this['_bufferedOperations']=[..._0x595f4c],this['_applyOperationsSet'](_0x2a7792),this['_updateServerHistory'](_0x199907);}catch(_0x211777){return console['error'](_0x211777),!0x1;}return!0x0;}['_applyOperationsSet'](_0xe76e10,_0x355151=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x5437fb=>{for(const _0x3d703f of _0xe76e10)this['_knownOperations']['add'](_0x3d703f),this['_addKnownRoot'](_0x3d703f),_0x5437fb['batch']['addOperation'](_0x3d703f),this['editor']['model']['applyOperation'](_0x3d703f);});}['_addKnownRoot'](_0x11254f){const _0x3f5cb8=this['_getAffectedRoot'](_0x11254f);_0x3f5cb8&&this['_knownRootNames']['add'](_0x3f5cb8);}['_getAffectedRoot'](_0x2e7d73){let _0x2add73,_0x4bd27e;switch(_0x2e7d73['type']){case'insert':_0x2add73=_0x2e7d73['position']['root'];break;case'marker':if(_0x4bd27e=_0x2e7d73['newRange'],!_0x4bd27e)return null;_0x2add73=_0x4bd27e['root'];break;case'addRootAttribute':_0x2add73=_0x2e7d73['root'];break;case'addRoot':_0x2add73=_0x2e7d73['affectedSelectable'];break;case'move':_0x2add73=_0x2e7d73['targetPosition']['root'];break;default:return null;}return _0x2add73['rootName'];}['_updateServerHistory'](_0x2787cf){_0x2787cf['forEach'](_0x4648f7=>{const _0x2edb4d=_0x4648f7['clone']();_0x2edb4d['_authorId']=_0x4648f7['_authorId'],_0x2edb4d['_isInit']=!!_0x4648f7['_isInit'],_0x2edb4d['createdAt']=_0x4648f7['createdAt'],_0x2edb4d['baseVersion']+=this['_offset'],_0x4648f7['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x2edb4d),this['serverHistory']['addOperation'](_0x2edb4d);});}['_handleReconnectionError'](_0x17d88b){const _0x5cec8f=this['editor']['plugins']['get']('Notification'),_0x242993=this['editor']['locale'];_0x17d88b||(_0x17d88b=K(_0x242993,'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.')),_0x5cec8f['showWarning'](_0x17d88b,{'title':K(_0x242993,'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'](_0x3513e1)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x3513e1)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x1b64b4){const _0x3e1f68=_0x1b64b4['map'](_0x26f290=>_0x26f290['toJSON']());return this['_compressor']['compress'](_0x3e1f68);}['_decompressOperations'](_0x509332,_0x1a9cf4){return this['_compressor']['decompress'](_0x509332)['map']((_0x3b71ae,_0x4506fc)=>{const _0x167fda='init'==_0x1a9cf4[_0x4506fc]['type'];if('InsertOperation'==_0x3b71ae['__className']){const _0x35b1a5=_0x3b71ae['position']['root'];!this['_document']['getRoot'](_0x35b1a5)&&(this['_document']['createRoot']('$unknown',_0x35b1a5)['_isAttached']=!0x1);}else{if('RootOperation'==_0x3b71ae['__className']){const _0x2089fe=this['_document']['getRoot'](_0x3b71ae['rootName']);_0x2089fe&&'$unknown'==_0x2089fe['name']&&_0x3b71ae['elementName']!=_0x2089fe['name']&&(_0x2089fe['name']=_0x3b71ae['elementName']);}}const _0x1e28ec=_0x18abfd['fromJSON'](_0x3b71ae,this['_document']);return _0x1e28ec['wasUndone']=_0x3b71ae['wasUndone'],_0x1e28ec['_isInit']=_0x167fda,_0x1e28ec['_authorId']=_0x167fda?null:_0x1a9cf4[_0x4506fc]['userId'],_0x1e28ec['_isDisconnection']='cs:removeUser'===_0x1a9cf4[_0x4506fc]['type'],_0x1e28ec['createdAt']=_0x1a9cf4[_0x4506fc]['createdAt'],_0x1e28ec;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x27f3f9=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x27f3f9&&_0x27f3f9['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x1a1650,_0x366062){for(const _0x4a0f34 of _0x1a1650)_0x4a0f34['baseVersion']=_0x366062++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0xf61852){this['_ignoredOperations']=_0xf61852,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x737eaf){let _0xe48cb0=_0x737eaf['length'];for(;_0xe48cb0--;){const _0x3113e6=_0x737eaf[_0xe48cb0];if(!this['_ignoredOperations']['has'](_0x3113e6)){if(!this['_operationToId']['has'](_0x3113e6)){const _0x34ec7a=_0x4215b6()['slice'](0x1,0x12);this['_operationToId']['set'](_0x3113e6,_0x34ec7a);}return this['_operationToId']['get'](_0x3113e6);}}}['setIdForTheLastOperation'](_0x5464f9,_0x20157a){if(!_0x20157a)return;let _0x1e15e9=_0x5464f9['length'];for(;_0x1e15e9--;){const _0x3aa662=_0x5464f9[_0x1e15e9];this['_ignoredOperations']['has'](_0x3aa662)||this['_operationToId']['set'](_0x3aa662,_0x20157a);}}}class RealTimeCollaborativeEditing extends _0x300c8b{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x548445{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
+ ((()=>_0x4c9f59)());['_services'];static get['requires'](){return[WebSocketGateway,_0x184887,Sessions,_0x351d2b];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x35ad96){super(_0x35ad96),this['_services']=new Map();}async['init'](){const _0x19dfcd=this['context'],_0x49370e=_0x19dfcd['plugins']['get'](_0x184887);if(_0x19dfcd['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x49370e['adapter']={'addCommentThread':async({channelId:_0x31e15e,threadId:_0x288992,comments:_0x1311d3,resolvedAt:_0x660377,resolvedBy:_0x150df4,context:_0xc5d45d,attributes:_0x11f8a5})=>{const _0xa65ce7=await this['_getService'](_0x31e15e)['addCommentThread']({'commentThreadId':_0x288992,'comments':_0x1311d3['map'](_0x268e42=>function(_0x1088d4,_0x5e2ed4,_0x491c63){return{'commentThreadId':_0x491c63,'commentId':_0x1088d4['commentId'],'userId':_0x1088d4['authorId'],'content':_0x1088d4['content'],'documentId':_0x5e2ed4,'createdAt':_0x1088d4['createdAt'],'attributes':_0x1088d4['attributes']||{}};}(_0x268e42,_0x31e15e,_0x288992)),'resolvedAt':_0x660377,'resolvedBy':_0x150df4,'context':_0xc5d45d,'attributes':_0x11f8a5})['catch'](Z);return{'threadId':_0xa65ce7['commentThreadId'],'comments':_0xa65ce7['comments']};},'getCommentThread':async({channelId:_0x77b2a9,threadId:_0x19287f})=>{const _0x5714e2=await this['_getService'](_0x77b2a9)['getCommentThread'](_0x19287f)['catch'](X)['catch'](Z);return _0x5714e2?_0x5714e2['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x5714e2]),{'threadId':_0x5714e2['commentThreadId'],'comments':_0x5714e2['comments']['map'](tt),'context':_0x5714e2['context'],'resolvedAt':_0x5714e2['resolvedAt'],'resolvedBy':_0x5714e2['resolvedBy'],'attributes':_0x5714e2['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x33f046,threadId:_0x3646dc,context:_0x146fca,unlinkedAt:_0xe07032,attributes:_0x5e47b8})=>this['_getService'](_0x33f046)['updateCommentThread']({'commentThreadId':_0x3646dc,'context':_0x146fca,'attributes':_0x5e47b8,'unlinkedAt':_0xe07032})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x332939,threadId:_0x28bd04})=>{const _0x410b10=await this['_getService'](_0x332939)['resolveCommentThread'](_0x28bd04)['catch'](X)['catch'](Z);return{'threadId':_0x410b10['commentThreadId'],'resolvedAt':_0x410b10['resolvedAt'],'resolvedBy':_0x410b10['resolvedBy']};},'reopenCommentThread':async({channelId:_0xb68dd3,threadId:_0x3cd74d})=>this['_getService'](_0xb68dd3)['reopenCommentThread'](_0x3cd74d)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x24cbd5,threadId:_0x54bcd})=>this['_getService'](_0x24cbd5)['removeCommentThread'](_0x54bcd)['catch'](X)['catch'](Z),'addComment':({channelId:_0x344370,threadId:_0x51092d,commentId:_0x46ee43,content:_0x459fa8,attributes:_0x1bddc0})=>this['_getService'](_0x344370)['addComment'](_0x51092d,_0x46ee43,_0x459fa8,_0x1bddc0)['catch'](Z),'updateComment':({channelId:_0x564d5e,threadId:_0x5296fa,commentId:_0x1f985f,content:_0x5ef135,attributes:_0x5b9036})=>this['_getService'](_0x564d5e)['updateComment'](_0x5296fa,_0x1f985f,_0x5ef135,_0x5b9036)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x8b77b2,threadId:_0xeb4550,commentId:_0x1be939})=>this['_getService'](_0x8b77b2)['removeComment'](_0xeb4550,_0x1be939)['catch'](X)['catch'](Z)},_0x19dfcd instanceof _0x2ff439){const _0x33ba2c=_0x19dfcd['config']['get']('collaboration.channelId'),_0x51998c=_0x19dfcd['plugins']['get'](Sessions);await this['_setUpService'](_0x33ba2c);const _0x1a277f=await this['_services']['get'](_0x33ba2c)['getConnectedSessions']();this['listenTo'](_0x51998c,'sessionAdd:'+_0x33ba2c,(_0x388401,{session:_0x3076b2})=>{_0x3076b2['id']===_0x51998c['mySessionId']&&(_0x388401['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x3076b2['permissions'],_0x33ba2c));}),_0x51998c['register'](_0x33ba2c,_0x1a277f);}}async['_setUpService'](_0x2c20a7){if(this['_services']['has'](_0x2c20a7))throw new _0x351432('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x2c20a7});const _0x51188b=this['context']['plugins']['get'](_0x184887),_0x50edd3=new CloudServicesCommentsAdapter['CommentsService'](_0x2c20a7);this['_services']['set'](_0x2c20a7,_0x50edd3),this['listenTo'](_0x50edd3,'commentThreadAdded',(_0x116977,_0x5071b1)=>{const {commentThreadId:_0x4bf712,documentId:_0x5ea2f4,context:_0x503520,attributes:_0x39856c,resolvedAt:_0x1864ab,resolvedBy:_0x181204,comments:_0x3fd4ae}=_0x5071b1;_0x51188b['getCommentThread'](_0x4bf712)||_0x51188b['addCommentThread']({'threadId':_0x4bf712,'channelId':_0x5ea2f4,'comments':_0x3fd4ae?_0x3fd4ae['map'](tt):[],'context':_0x503520,'attributes':_0x39856c,'resolvedAt':_0x1864ab,'resolvedBy':_0x181204,'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentThreadUpdated',(_0x5019a9,{commentThreadId:_0x5e2a47,documentId:_0x56b2fa,context:_0x23a1dc,unlinkedAt:_0x241a32,attributes:_0x832eed})=>{_0x51188b['getCommentThread'](_0x5e2a47)&&_0x51188b['updateCommentThread']({'threadId':_0x5e2a47,'channelId':_0x56b2fa,'context':_0x23a1dc,'unlinkedAt':_0x241a32,'attributes':_0x832eed,'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentThreadResolved',(_0x5ad540,{commentThreadId:_0x1e50b4,resolvedBy:_0x59a418,resolvedAt:_0x521867})=>{const _0x2893ea=_0x51188b['getCommentThread'](_0x1e50b4);_0x2893ea&&_0x2893ea['resolve']({'resolvedBy':_0x59a418,'resolvedAt':_0x521867,'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentThreadReopened',(_0x2eabab,{commentThreadId:_0x2a60cc})=>{const _0x169afa=_0x51188b['getCommentThread'](_0x2a60cc);_0x169afa&&_0x169afa['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentThreadRemoved',(_0x11e656,{commentThreadId:_0x15d100})=>{const _0x50c9c4=_0x51188b['getCommentThread'](_0x15d100);_0x50c9c4&&_0x50c9c4['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentAdded',(_0x1f3e97,_0x68ae5a)=>{const _0x1dfd96=_0x68ae5a['commentThreadId'],_0x14c4c2=_0x51188b['getCommentThread'](_0x1dfd96);_0x14c4c2&&_0x14c4c2['addComment']({...tt(_0x68ae5a),'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentUpdated',(_0x2ed10d,{commentThreadId:_0x697c73,commentId:_0x281c63,content:_0x2c8f0f,attributes:_0x56cbf6})=>{const _0x1e5d6a=_0x51188b['getCommentThread'](_0x697c73);if(_0x1e5d6a){const _0x13d399=_0x1e5d6a['getComment'](_0x281c63);_0x13d399&&_0x13d399['update']({'content':_0x2c8f0f,'attributes':_0x56cbf6,'isFromAdapter':!0x0});}}),this['listenTo'](_0x50edd3,'commentRemoved',(_0x34b72c,{commentThreadId:_0x437bc0,commentId:_0x1d76c8})=>{const _0x33db48=_0x51188b['getCommentThread'](_0x437bc0);if(_0x33db48){const _0x8e2f1e=_0x33db48['getComment'](_0x1d76c8);_0x8e2f1e&&_0x8e2f1e['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x2c20a7);}['destroy'](){if(this['context']instanceof _0x2ff439){const _0x280607=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x280607);}}['_terminateService'](_0x126fca){if(!this['_services']['has'](_0x126fca))throw new _0x351432('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x126fca});this['_getService'](_0x126fca)['disconnect'](),this['_services']['delete'](_0x126fca);}async['reconnect'](){for(const _0x4f6549 of this['_services']['keys']())await this['_connectService'](_0x4f6549);if(this['context']instanceof _0x2ff439){const _0x2d84b8=this['context']['config']['get']('collaboration.channelId'),_0x481a37=this['context']['plugins']['get'](Sessions);_0x481a37['unregister'](_0x2d84b8);const _0x577f97=await this['_services']['get'](_0x2d84b8)['getConnectedSessions']();_0x481a37['register'](_0x2d84b8,_0x577f97);}}async['_connectService'](_0x5ea5a7){const {connection:_0x580fe7}=this['context']['plugins']['get'](WebSocketGateway),_0x3d461f=this['context']['plugins']['get'](_0x184887),_0x51f374=this['_services']['get'](_0x5ea5a7),_0x401a8d=await _0x51f374['connect'](_0x580fe7);await this['_fetchMissingUsersForThreads'](_0x401a8d);const _0x511137=new Set(Array['from'](_0x3d461f['getCommentThreads']({'channelId':_0x5ea5a7}),_0x3e4371=>_0x3e4371['id']));for(const _0x23c78f of _0x401a8d)_0x23c78f['deletedAt']||_0x511137['delete'](_0x23c78f['commentThreadId']);for(const _0x44534d of _0x511137)_0x3d461f['getCommentThread'](_0x44534d)['remove']({'isFromAdapter':!0x0});for(const _0x11a96b of _0x401a8d){let _0x11c7b2=_0x3d461f['getCommentThread'](_0x11a96b['commentThreadId']);const {commentThreadId:_0x2df7be,context:_0x534984,attributes:_0x43ea32,resolvedBy:_0x417380,resolvedAt:_0x32ebba,unlinkedAt:_0x124c2a,deletedAt:_0xefc7c0}=_0x11a96b;if(_0xefc7c0)continue;_0x11c7b2||(_0x11c7b2=_0x3d461f['addCommentThread']({'channelId':_0x5ea5a7,'threadId':_0x2df7be,'context':_0x534984,'attributes':_0x43ea32||{},'resolvedBy':_0x417380,'resolvedAt':_0x32ebba,'unlinkedAt':_0x124c2a,'isFromAdapter':!0x0}));const _0x467132=new Set(Array['from'](_0x11c7b2['comments'],_0x5861ce=>_0x5861ce['id']));for(const _0x4edd96 of _0x11a96b['comments'])_0x467132['delete'](_0x4edd96['commentId']);for(const _0x5030fe of _0x467132)_0x11c7b2['getComment'](_0x5030fe)['remove']({'isFromAdapter':!0x0});for(const _0x26ed9b of _0x11a96b['comments']){const _0x47fa95=_0x11c7b2['getComment'](_0x26ed9b['commentId']);_0x47fa95?_0x47fa95['content']!==_0x26ed9b['content']&&_0x47fa95['update']({'content':_0x26ed9b['content'],'isFromAdapter':!0x0}):_0x11c7b2['addComment'](Object['assign'](tt(_0x26ed9b),{'isFromAdapter':!0x0}));}}}['_getService'](_0x52d5bf){if(!this['_services']['has'](_0x52d5bf))throw new _0x351432('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x52d5bf});return this['_services']['get'](_0x52d5bf);}async['_fetchMissingUsersForThreads'](_0x364f0f){const _0x5dabd1=this['context']['plugins']['get'](_0x351d2b),{connection:_0x4fd2a2}=this['context']['plugins']['get'](WebSocketGateway),_0x535163=new Set();for(const {resolvedBy:_0x19e4bf,comments:_0x271684}of _0x364f0f){_0x19e4bf&&!_0x5dabd1['getUser'](_0x19e4bf)&&_0x535163['add'](_0x19e4bf);for(const {userId:_0x24c9d6}of _0x271684)_0x5dabd1['getUser'](_0x24c9d6)||_0x535163['add'](_0x24c9d6);}if(0x0===_0x535163['size'])return;const _0x16d53a=await _0x167379['getMany'](_0x4fd2a2,Array['from'](_0x535163));for(const _0x51afd7 of _0x16d53a)_0x5dabd1['getUser'](_0x51afd7['id'])||_0x5dabd1['addUser'](_0x51afd7);}}async function X(_0x13b930){if('404'!==_0x13b930['code'])throw _0x13b930;}function Z(_0x4e732c){if((_0x1843c7=_0x4e732c)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x1843c7['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x1843c7['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x1843c7;throw _0x4e732c;}function tt(_0x342967){return{'threadId':_0x342967['commentThreadId'],'commentId':_0x342967['commentId'],'content':_0x342967['content'],'createdAt':_0x342967['createdAt'],'authorId':_0x342967['userId'],'attributes':_0x342967['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x300c8b{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
+ ((()=>_0x444fdd)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x3e38ba,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1c4b62){super(_0x1c4b62);const _0x240e6c=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x240e6c);}['init'](){const _0x55893a=this['editor']['plugins']['get'](WebSocketGateway),_0x2fabcb=this['editor']['plugins']['get'](_0x3e38ba);return _0x2fabcb['adapter']={'getSuggestion':async _0x40825d=>{await this['_waitForServiceReady']();const _0x5560bf=await this['_trackChangesService']['get'](_0x40825d)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x5560bf]),_0x5560bf;},'addSuggestion':async({id:_0x21e338,type:_0x161569,data:_0x1c1cb1,originalSuggestionId:_0x1b6989,attributes:_0x35ee9d})=>{await this['_waitForServiceReady']();const _0x44f822={'id':_0x21e338,'type':_0x161569,'data':_0x1c1cb1,'originalSuggestionId':_0x1b6989,'attributes':_0x35ee9d},_0x13b2cb=await this['_trackChangesService']['add'](_0x21e338,_0x161569,_0x1c1cb1,_0x1b6989,_0x35ee9d)['catch'](_0x3b67d9=>{if(st(_0x3b67d9))return new Promise(_0x4164c4=>{this['_bufferedRequests']['set'](_0x21e338,{'resolve':_0x4164c4,'suggestionData':_0x44f822});});throw _0x3b67d9;});return this['_bufferedRequests']['delete'](_0x21e338),_0x13b2cb;},'updateSuggestion':async(_0x4c20ac,_0x1a51bc)=>{if(await this['_waitForServiceReady'](),'open'!==_0x1a51bc['state'])return this['_trackChangesService']['update'](_0x4c20ac,_0x1a51bc)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x48814e,_0xb62fe3)=>{_0x2fabcb['hasSuggestion'](_0xb62fe3['id'])&&(_0x2fabcb['getSuggestion'](_0xb62fe3['id'])['attributes']=_0xb62fe3['attributes']);}),this['_trackChangesService']['connect'](_0x55893a['connection'])['then'](_0x4a7674=>(_0x55893a['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x4a7674)['then'](()=>{for(const _0x4ea267 of _0x4a7674){_0x2fabcb['addSuggestionData'](_0x4ea267)['_saved']=!0x0;}})));}async['reconnect'](){const _0x1837a9=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x5a8af7}=this['editor']['plugins']['get'](WebSocketGateway),_0x4823c7=await this['_trackChangesService']['connect'](_0x5a8af7);await this['_fetchMissingUsersForThreads'](_0x4823c7);for(const {suggestionData:_0x78eae,resolve:_0x5dba83}of this['_bufferedRequests']['values']()){let _0x4af577=_0x4823c7['find'](_0x47f611=>_0x47f611['id']===_0x78eae['id']);_0x4af577||(_0x4af577=await this['_trackChangesService']['add'](_0x78eae['id'],_0x78eae['type'],_0x78eae['data'],_0x78eae['originalSuggestionId'])),_0x5dba83(_0x4af577);}for(const _0x3339bb of _0x4823c7)_0x1837a9['hasSuggestion'](_0x3339bb['id'])||_0x1837a9['addSuggestionData'](_0x3339bb);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x4ae8ac=>{this['listenTo'](this['_trackChangesService'],'connected',_0x282b9a=>{_0x282b9a['off'](),_0x4ae8ac();});});}async['_fetchMissingUsersForThreads'](_0x20f133){const _0x55ca7c=this['editor']['plugins']['get'](_0x351d2b),{connection:_0x464dd5}=this['editor']['plugins']['get'](WebSocketGateway),_0x4053eb=new Set();for(const {authorId:_0x53fee6}of _0x20f133)_0x55ca7c['getUser'](_0x53fee6)||_0x4053eb['add'](_0x53fee6);if(0x0===_0x4053eb['size'])return;const _0x392cc5=await _0x167379['getMany'](_0x464dd5,Array['from'](_0x4053eb));for(const _0x13ff25 of _0x392cc5)_0x55ca7c['getUser'](_0x13ff25['id'])||_0x55ca7c['addUser'](_0x13ff25);}}function et(_0x31b84e){if(st(_0x31b84e))return new Promise(()=>{});throw _0x31b84e;}function st(_0x365d89){return _0x365d89['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x365d89['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x300c8b{static get['requires'](){return[_0x14ef29,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x5d31f9=this['editor']['plugins']['get'](WebSocketGateway),_0x567005=this['editor']['plugins']['get'](_0x4a8d6b),_0x564c67=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x5d31f9,'change:state',(_0x158e73,_0x36420c,_0x3c55e4)=>{_0x567005['isThreadsLoadingPaused']='connected'!==_0x3c55e4;});}),this['listenTo'](_0x5d31f9,'change:state',(_0x1b70d9,_0x8b512f,_0x7c41e5)=>{this['editor']['plugins']['get'](_0x184887)['switchReadOnly']('connected'!==_0x7c41e5);}),_0x564c67['_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 _0x300c8b{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x5f27f3];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x300c8b{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
+ ((()=>_0xf4e34f)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x5fa821,Sessions,_0x351d2b];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3ea2d3){super(_0x3ea2d3);const _0xa7614e=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0xa7614e);}async['init'](){const _0x4f8186=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x10e387=_0x4f8186['serverHistory'],_0x235a49=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x10e387,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x4f8186['sessionId']});const _0xd53d90=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x6388ea,_0x22d85c=await _0x30df8b['isBundleUploaded'](_0x235a49['connection'],_0xd53d90);this['editor']['plugins']['get'](_0x5fa821)['adapter']={'getRevision':async({revisionId:_0x870aab})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x870aab)),'updateRevisions':async _0x37155f=>{await this['_waitForServiceReady']();const _0x71b8ac=this['_revisionTracker']['currentRevision'];if(_0x22d85c&&0x1===_0x37155f['length']&&_0x37155f[0x0]['id']===_0x71b8ac['id'])return _0x37155f;for(const _0x231908 of _0x37155f)_0x231908['id']===_0x71b8ac['id']&&(_0x231908['isEmptyCurrent']=_0x231908['fromVersion']===_0x231908['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x37155f,this['_lastRequestId'])['then'](_0x5e2f47=>(this['_lastRequestId']=_0x5e2f47,_0x37155f))['catch'](_0x22cfa6=>{if(it(_0x22cfa6)||'400'===_0x22cfa6['code']&&void 0x0!==_0x22cfa6['data']['wrongRequestId']){for(const _0x510677 of _0x37155f){!this['_revisionTracker']['repository']['getRevision'](_0x510677['id'])||this['_revisionTracker']['_bufferUpdate'](_0x510677['id'],_0x510677,!0x1);}if(it(_0x22cfa6)&&'destroyed'!==this['editor']['state'])throw _0x22cfa6;return _0x37155f;}throw _0x22cfa6;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x13c5e6,{revisionsData:_0x12c653,requestId:_0x2eeb8b})=>{Math['max'](..._0x12c653['map'](_0x59de25=>_0x59de25['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x12c653,_0x2eeb8b);}):this['_handleRevisionsUpdate'](_0x12c653,_0x2eeb8b);});const {revisions:_0x80c7d4,requestId:_0x316e6f}=await this['_revisionHistoryService']['connect'](_0x235a49['connection']);_0x235a49['addToReconnectionStack'](this),this['_lastRequestId']=_0x316e6f,await this['_fetchMissingUsers'](_0x80c7d4);for(const _0x2f2dd7 of _0x80c7d4)this['_revisionTracker']['addRevisionData'](_0x2f2dd7);this['listenTo'](_0x4f8186,'change:_isConnected',(_0x40bc1a,_0x571be1,_0x29f9d4)=>{_0x29f9d4&&(this['_oldOffset']=_0x4f8186['_offset'],_0x40bc1a['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x235a49,'state',_0x136f28=>_0x136f28===_0x57a7c5['CONNECTED']);}async['reconnect'](){const _0x146150=this['editor']['plugins']['get'](WebSocketGateway),_0x10d518=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x34cc70=async()=>{const _0x482c74=this['_revisionTracker']['currentRevision'],_0x19c85b=_0x482c74['id'],_0x193d03=_0x19c85b!==_0x10d518['sessionId'];if(_0x193d03){const _0x5e5755=_0x10d518['_offset']-this['_oldOffset'],_0x243183=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x482c74['toVersion']+_0x5e5755!==_0x243183){const _0x198d19=_0x482c74['fromVersion']+_0x5e5755,_0x5a5ee0=this['editor']['plugins']['get'](_0x351d2b),_0x373dcd=this['_revisionTracker']['buildRevisionData']({'revision':_0x482c74,'from':_0x198d19,'to':_0x243183});_0x373dcd['id']=_0x482c74['id'];const _0x5d7da0=_0x373dcd['authorsIds']['map'](_0x36336a=>_0x5a5ee0['getUser'](_0x36336a));_0x482c74['_update']({..._0x373dcd,'authors':_0x5d7da0},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x482c74['id'],_0x373dcd,!0x0);}this['_revisionTracker']['_startingVersion']=_0x243183,(_0x482c74['toVersion']===_0x482c74['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x19c85b)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x19c85b),this['_revisionTracker']['_createCurrentRevision'](_0x243183));}const {revisions:_0x5abc96,requestId:_0x33065c}=await this['_revisionHistoryService']['reconnect'](_0x146150['connection'],this['_lastRequestId']);_0x193d03&&_0x5abc96['length']>0x0?_0x10d518['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x5abc96),this['_handleRevisionsUpdate'](_0x5abc96,_0x33065c),this['_revisionTracker']['sendBufferedUpdates']());};return _0x10d518['_isConnected']?_0x34cc70():new Promise((_0x1d3b88,_0x313788)=>{_0x10d518['once']('change:_isConnected',()=>{_0x34cc70()['then'](_0x1d3b88)['catch'](_0x313788);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x282579=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x2aa6a0=>{_0x2aa6a0['off'](),_0x282579();});});}['_getLatestVersionFromServerOperations'](){const _0x2a0009=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x3ec1ec of _0x2a0009)if('marker'!==_0x3ec1ec['type']||_0x3ec1ec['affectsData'])return _0x3ec1ec['baseVersion']+0x1;}['_getLatestVersion'](){const _0x5bc383=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x19bfde=>{_0x5bc383['_isPendingUpdate']?_0x5bc383['once']('change:_isPendingUpdate',()=>{_0x19bfde(this['_getLatestVersionFromServerOperations']());}):_0x19bfde(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x4c67e9,_0x1e32b2){const _0x483e6c=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x1e32b2;for(const _0x405d40 of _0x4c67e9){const _0x2d8563=_0x483e6c['getRevision'](_0x405d40['id']);if(_0x2d8563){if((_0x405d40['fromVersion']||_0x405d40['toVersion'])&&(_0x405d40['diffData']=null),_0x2d8563===this['_revisionTracker']['currentRevision']){const _0x57e897=Math['max'](_0x2d8563['toVersion'],_0x405d40['toVersion']),_0x521c4f=Math['max'](_0x2d8563['fromVersion'],_0x405d40['fromVersion']);let _0x4f43cc;_0x2d8563['toVersion']===_0x405d40['toVersion']&&_0x2d8563['fromVersion']===_0x405d40['fromVersion']?(_0x4f43cc=!0x0,this['_preventResendingRevisionData'](_0x405d40)):_0x405d40['toVersion']===_0x57e897&&_0x405d40['fromVersion']===_0x521c4f?_0x4f43cc=!0x1:(_0x2d8563['toVersion']===_0x57e897&&_0x2d8563['fromVersion']===_0x521c4f||this['_fixRevision']({'revision':_0x2d8563,'from':_0x521c4f,'to':_0x57e897}),_0x4f43cc=!0x0),_0x4f43cc&&(delete _0x405d40['fromVersion'],delete _0x405d40['toVersion'],delete _0x405d40['diffData'],delete _0x405d40['createdAt'],delete _0x405d40['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x405d40),this['_preventResendingRevisionData'](_0x405d40);}else this['_revisionTracker']['addRevisionData'](_0x405d40);}const _0x3195bf=_0x483e6c['getRevisions']();_0x3195bf['reverse']();for(let _0x2ca235=0x0;_0x2ca235<_0x3195bf['length']-0x1;_0x2ca235++){const _0x11275e=_0x3195bf[_0x2ca235],_0x5a0cbb=_0x3195bf[_0x2ca235+0x1];if(_0x11275e['fromVersion']<_0x5a0cbb['toVersion']){const _0x2b003c=_0x5a0cbb['toVersion'],_0x1ca36b=Math['max'](_0x2b003c,_0x11275e['toVersion']);this['_fixRevision']({'revision':_0x11275e,'from':_0x2b003c,'to':_0x1ca36b});}}}['_fixRevision']({revision:_0x2c239d,from:_0x2737a6,to:_0x1d2474}={}){const _0xa89260=this['editor']['plugins']['get'](_0x351d2b),_0xceeedb=this['_revisionTracker']['buildRevisionData']({'revision':_0x2c239d,'from':_0x2737a6,'to':_0x1d2474});_0xceeedb['authors']=_0xceeedb['authorsIds']['map'](_0x31e76e=>_0xa89260['getUser'](_0x31e76e)),_0x2c239d['_update'](_0xceeedb);}['_preventResendingRevisionData'](_0x5ca9aa){const _0x5ecdb9={};_0x5ecdb9['id']=_0x5ca9aa['id'];for(const _0x40875b of Object['keys'](_0x5ca9aa))'id'!==_0x40875b&&(_0x5ecdb9[_0x40875b]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x5ecdb9['id'],_0x5ecdb9,!0x0);}async['_fetchMissingUsers'](_0x598a2f){const _0x3e8a62=this['editor']['plugins']['get'](_0x351d2b),{connection:_0x1f1059}=this['editor']['plugins']['get'](WebSocketGateway),_0x1fa411=new Set();for(const _0x53e763 of _0x598a2f){for(const _0x4391a4 of _0x53e763['authorsIds'])_0x1870a0(_0x4391a4);_0x53e763['creatorId']&&_0x1870a0(_0x53e763['creatorId']);}if(0x0===_0x1fa411['size'])return;const _0x479c11=await _0x167379['getMany'](_0x1f1059,Array['from'](_0x1fa411));for(const _0x56bdbd of _0x479c11)_0x3e8a62['getUser'](_0x56bdbd['id'])||_0x3e8a62['addUser'](_0x56bdbd);function _0x1870a0(_0x3ee3af){_0x3e8a62['getUser'](_0x3ee3af)||_0x1fa411['add'](_0x3ee3af);}}}function it(_0x2f1cb5){return _0x2f1cb5['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x2f1cb5['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x2f1cb5['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x300c8b{static get['requires'](){return[_0x5fa821,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x5510d0{['_collapseAt'];constructor(_0x256f14,_0x303f0f=0x6){super(_0x256f14);const _0x1c0948=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x303f0f,this['bind']('isHidden')['to'](this,'usersCount',_0x42a12e=>_0x42a12e<_0x303f0f),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x1c0948['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':_0x1c0948['to']('usersCount',_0x6fa6f7=>'+'+(_0x6fa6f7-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x5510d0{['items'];['keystrokes'];constructor(_0x624e84){super(_0x624e84);const _0x9f12f1=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x5caf56(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x9f12f1['if']('hasPopup'),'aria-expanded':_0x9f12f1['to']('isExpanded',_0xb1a7f0=>this['hasPopup']&&String(_0xb1a7f0)),'aria-label':_0x9f12f1['to']('hasPopup',_0x3bd4ba=>K(_0x624e84,_0x3bd4ba?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x9f12f1['to']('hasPopup',_0x2bf8db=>!!_0x2bf8db&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x9f12f1['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x9f12f1['to'](_0x5d2d7d=>{const _0x5c3580=_0x5d2d7d,_0x4cc745=document['querySelector']('.ck-presence-list__dropdown-list'),_0x41313c=document['querySelector']('.ck-balloon-panel_with-arrow');_0x4cc745?.['contains'](_0x5c3580['relatedTarget'])||_0x41313c?.['contains'](_0x5c3580['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0xf0e24b,_0x1ea5c2,_0x4e3784)=>{this['element']&&(_0x4e3784?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 _0x5510d0{['counterView'];['inlineListView'];constructor(_0x4ae73f,_0x11161a=0x6){super(_0x4ae73f);const _0x45f370=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x11161a),this['inlineListView']=new PresenceInlineListView(_0x4ae73f),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x45ba7c of this['inlineListView']['items'])_0x45ba7c['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',_0x45f370['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x5510d0{['listWrapperView'];constructor(_0x8210f1,_0x4b8acf){super(_0x8210f1);const _0x2837fb=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x8210f1,_0x4b8acf),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x8210f1,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x2837fb['to'](_0x50e79d=>{const _0x1b5aa0=_0x50e79d,_0x5a2010=document['querySelector']('.ck-presence-list__list'),_0x14415b=document['querySelector']('.ck-balloon-panel_with-arrow');_0x5a2010?.['contains'](_0x1b5aa0['relatedTarget'])||_0x14415b?.['contains'](_0x1b5aa0['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x55910f{constructor(_0x258932,_0x4955fd){super(_0x258932);const _0x5ce7a3=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x4955fd?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x5ce7a3['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x5ce7a3['to']('role'),'aria-label':_0x5ce7a3['to']('ariaLabel'),'aria-labelledby':_0x5ce7a3['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x143e42['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x478d25=this['element'];_0x478d25&&(this['_isScrollable']=Math['max'](_0x478d25['scrollHeight'],_0x478d25['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0xcf9da3{['userView'];constructor(_0x4ba1b8,_0x149774,_0x575d5c){super(_0x4ba1b8);const _0x4e4f2c=this['bindTemplate'];this['userView']=new _0x5b5282(_0x4ba1b8,_0x149774);const _0x4780df={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x149774['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x149774['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x149774['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x149774['color']['getColorVariable'](),'--ck-user-color-alpha':_0x149774['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x575d5c&&(_0x4780df['tag']='button',_0x4780df['on']={'click':_0x4e4f2c['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x4780df);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x5510d0{['userView'];['markerView'];constructor(_0x4e0f9f,_0x49d5cb,_0x3d539a){super(_0x4e0f9f);const _0x9bf86e=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x5b5282(_0x4e0f9f,_0x49d5cb),this['markerView']=new MarkerView(_0x4e0f9f,_0x49d5cb);const _0x312967=new _0x5b81f0(_0x4e0f9f);_0x312967['template']['tag']='span',_0x312967['text']=_0x49d5cb['name'];const _0x1404b1={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x9bf86e['to']('isFocusable',_0x713d9e=>!!_0x713d9e&&0x0),'aria-labelledby':_0x312967['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x9bf86e['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x9bf86e['to']('hasTooltip',_0x26cf7b=>!_0x26cf7b),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x312967]};_0x3d539a&&(_0x1404b1['tag']='button',_0x1404b1['on']={'click':_0x9bf86e['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1404b1);}}class MarkerView extends _0x5510d0{constructor(_0x9b4111,_0x4f51a5){super(_0x9b4111),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x4f51a5['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x4f51a5['color']['getColorVariable'](),'--ck-user-color-alpha':_0x4f51a5['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x548445{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x17cbca){super(_0x17cbca),this['context']['config']['define']('presenceList',nt);const _0x11fcba=_0x17cbca['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x11fcba)throw new _0x351432('presencelist-collapseat-invalid-format',this);if(_0x11fcba<0x1)throw new _0x351432('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x34528e(),this['balloonPanelView']=new _0x33f98f(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x5393ea of this['_allConnectedUsers'])this['_handleUserAdd'](_0x5393ea);this['listenTo'](this['_allConnectedUsers'],'add',(_0x8e0a76,_0x429055)=>{this['_handleUserAdd'](_0x429055);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x41d0ba,_0x12c2cd)=>{this['_handleUserRemove'](_0x12c2cd);});}['_createView'](){const _0x221404=this['context'],_0x5d035e=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x22814a=this['balloonPanelView'];if(!_0x48bc4d(_0x221404['config']['get']('presenceList.container')))throw new _0x351432('presencelist-missing-container',this);return _0x5d035e['counterView']['bind']('usersCount')['to'](this),_0x5d035e['bind']('isCollapsed')['to'](this,'usersCount',_0x1e163c=>{const {collapseAt:_0x33f8e3}=_0x221404['config']['get']('presenceList'),_0x3d1dee=_0x1e163c>=_0x33f8e3;if(_0x3d1dee&&!_0x5d035e['inlineListView']['items']['find'](_0x6a930=>_0x6a930 instanceof PresenceCounterView)){const _0x58af59=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x58af59&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x5d035e['inlineListView']['items']['add'](_0x5d035e['counterView']);}return _0x3d1dee||this['hideDropdown'](),_0x3d1dee;}),_0x5d035e['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x46d8a3=>{const _0x96e042=_0x221404['config']['get']('presenceList'),_0x44277d=new PresenceInlineListItemView(_0x221404['locale'],_0x46d8a3,!!_0x96e042['onClick']);return _0x44277d['bind']('hasTooltip')['to'](_0x5d035e,'isCollapsed',_0x7caa05=>!_0x7caa05),_0x44277d['bind']('isFocusable')['to'](_0x5d035e,'isCollapsed',_0x33574a=>!_0x33574a),_0x96e042['onClick']&&this['listenTo'](_0x44277d,'execute',()=>{this['view']['isCollapsed']||_0x96e042['onClick'](_0x46d8a3,_0x44277d['element']);}),_0x44277d;}),this['listenTo'](_0x5d035e['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x5d035e['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x5d035e['inlineListView']['keystrokes']['set']('Enter',(_0x3dcdee,_0x6de6a4)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x6de6a4());}),_0x5d035e['render'](),_0x22814a['render'](),_0x6e4637({'emitter':_0x5d035e,'activator':()=>_0x22814a['isVisible'],'contextElements':[_0x22814a['element'],_0x5d035e['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x221404['config']['get']('presenceList.container')['appendChild'](_0x5d035e['element']),this['_bodyCollection']=new _0x233bd9(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x5d035e;}['_handleUserAdd'](_0x3a40fd){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x3a40fd['isMe'])return;const _0x2ddabf=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x2ddabf-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x436eef=_0x3a40fd['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x3a40fd,_0x436eef);}['_handleUserRemove'](_0x4a191){this['usersCount']--;const {collapseAt:_0x1c882c}=this['context']['config']['get']('presenceList'),_0x11c67e=this['usersCount']>=_0x1c882c;if(this['currentDisplayedUsers']['get'](_0x4a191['id']))this['currentDisplayedUsers']['remove'](_0x4a191['id']);else{if(_0x11c67e&&this['currentDisplayedUsers']['length']+0x1===_0x1c882c-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x11c67e?0x1:0x0)<this['usersCount']){for(const _0x26edc1 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x26edc1['id'])&&(this['currentDisplayedUsers']['add'](_0x26edc1,Math['min'](this['currentDisplayedUsers']['length']-(_0x11c67e?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x11c67e?0x1:0x0)===_0x1c882c-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x11cca4=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x11cca4['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x31a677}=this['presenceDropdownView'];_0x31a677['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x5c4a14=>{if(!_0x11cca4['displayMe']&&_0x5c4a14['isMe'])return null;const _0x37b785=new PresenceDropdownListItemView(this['context']['locale'],_0x5c4a14,!!_0x11cca4['onClick']);return _0x11cca4['onClick']&&this['listenTo'](_0x37b785,'execute',()=>{_0x11cca4['onClick'](_0x5c4a14,_0x37b785['element']);}),_0x37b785;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x31a677['focus'](),_0x31a677['checkIfScrollable']();const _0x283dd5=(_0x5c1efe,_0x573433)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x573433();};_0x31a677['keystrokes']['set']('Esc',_0x283dd5),_0x31a677['keystrokes']['set']('Shift+Tab',_0x283dd5),_0x31a677['keystrokes']['set']('Tab',(_0x278c0e,_0x1d2e56)=>{!function(_0x1edd23){const _0x17d832=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x1b0ae7=>_0x1b0ae7+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x4a4a86=[...document['body']['querySelectorAll'](_0x17d832)]['filter'](_0x1e64f8=>_0x1e64f8===document['activeElement']||_0x1e64f8['offsetWidth']+_0x1e64f8['offsetHeight']>0x0)['sort']((_0x269a76,_0x4ff61e)=>(_0x269a76['tabIndex']||0x0)-(_0x4ff61e['tabIndex']||0x0)),_0x1538f4=_0x4a4a86['indexOf'](_0x1edd23),_0x23ee18=_0x4a4a86[(_0x1538f4+0x1)%_0x4a4a86['length']];_0x23ee18&&_0x23ee18['focus']();}(this['view']['element']),this['hideDropdown'](),_0x1d2e56();}),_0x31a677['focusTracker']['add'](this['view']['element']),_0x31a677['focusTracker']['on']('change:isFocused',(_0x44d87b,_0x2c9fb0,_0x367c1a)=>{_0x367c1a||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 _0x548445{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};