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

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 _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};
23
+ import{ContextPlugin as _0x1ab0c4,Plugin as _0xa8b5d6,PendingActions as _0x3c80a1,Context as _0xada907}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x5e26f0,CKEditorError as _0x71eab6,Collection as _0x3fb7b9,global as _0x47d9e9,version as _0x858cb6,uid as _0x1b2b49,KeystrokeHandler as _0x2a5d42}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x13581e,View as _0xf9dd42,ListView as _0x24c869,ListItemView as _0x58b41f,LabelView as _0x1c8043,BalloonPanelView as _0x6ecd60,clickOutsideHandler as _0xe0e90e,BodyCollection as _0x5691eb}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x475f72,History as _0xffd32b,NoOperation as _0x391ddc,InsertOperation as _0x51e5d9,MarkerOperation as _0x4d1aba,RootAttributeOperation as _0x42715b,transformOperationSets as _0x241ccf,OperationFactory as _0x1ea6fa}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x36caf0}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x1cd472,WEB_SOCKET_GATEWAY_STATES as _0x4b45bf,CollaborativeEditingService as _0x1bc08e,User as _0x4e51b9,CommentsService as _0x5ec125,TrackChangesService as _0x270adf,RevisionHistoryService as _0xa09a6c,EditorService as _0x29a061}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x39f5d8,UserView as _0x2fc51c}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x5edac}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x4a4f9b,TrackChanges as _0x19261}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0xb43395,Comments as _0x14dbd7,CommentsEditing as _0xfce3b8}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x312c1b}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x412e30}from'es-toolkit/compat';class WebSocketGateway extends _0x1ab0c4{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
+ ((()=>_0x1cd472)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x36caf0,_0x13581e];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x4234ed){super(_0x4234ed),this['set']('state',_0x4b45bf['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x5e26f0())();}['init'](){const _0x2dae58=this['context'],_0x6ae009=_0x2dae58['plugins']['get'](_0x36caf0),_0x590028=_0x2dae58['plugins']['get'](_0x13581e);if(!_0x6ae009['token'])throw new _0x71eab6('websocketgateway-missing-token',this);if(!_0x6ae009['webSocketUrl'])throw new _0x71eab6('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'](_0x6ae009['token'],_0x6ae009['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x960d2b=>{if(this['connection']=_0x960d2b,this['bind']('state')['to'](_0x960d2b,'state',this,'_isBrowserOffline',(_0x4d86d2,_0x30d33e)=>('connected'!==_0x4d86d2&&(this['_shouldPluginsReconnect']=!0x0),_0x30d33e||_0x4d86d2!==_0x4b45bf['CONNECTED']?_0x4b45bf['DISCONNECTED']:this['state']==_0x4b45bf['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x4b45bf['CONNECTING']):_0x4b45bf['CONNECTED'])),this['connection']['on']('error',(_0x2bc765,_0x178de5)=>{if('limitExceeded'!==_0x178de5['code'])throw console['error'](_0x178de5),new _0x71eab6('cloudservices-init',null,{'originalError':_0x178de5});_0x590028['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'});}),!_0x960d2b['me'])return new Promise(_0x8ed3c9=>_0x960d2b['on']('change:me',_0x8ed3c9));})['catch'](_0x42b9a9=>{throw console['error'](_0x42b9a9),new _0x71eab6('cloudservices-init',null,{'originalError':_0x42b9a9});});}['addToReconnectionStack'](_0x59631b){if('function'!=typeof _0x59631b['reconnect'])throw new _0x71eab6('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x59631b))throw new _0x71eab6('websocketgateway-plugin-already-registered',this,{'name':_0x59631b['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x59631b);}['removeFromReconnectionStack'](_0x181d5a){this['_reconnectionStack']['delete'](_0x181d5a);}['isInReconnectionStack'](_0x31a7b3){return this['_reconnectionStack']['has'](_0x31a7b3);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x23379f=>_0x23379f['reconnect']())))['then'](()=>this['state']=_0x4b45bf['CONNECTED'])['catch'](_0x1eb09f=>{throw console['error'](_0x1eb09f),new _0x71eab6('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x4b45bf['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x1ab0c4{['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,_0x39f5d8];}constructor(_0x1c852c){super(_0x1c852c),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x3fb7b9(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x39f5d8);}['init'](){const _0x21b5e2=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x21b5e2,'change:state',(_0x5ebed2,_0x47ce86,_0x399f4e)=>{if('connected'!==_0x399f4e)this['channelSessions']['forEach'](_0x1778f9=>_0x1778f9['clear']()),this['channelConnectedUsers']['forEach'](_0x53f865=>_0x53f865['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x3d810c,_0x2eb7a1]of this['_registeredSessions'])for(const _0x1019a3 of _0x2eb7a1)this['_handleSessionAdd'](_0x3d810c,_0x1019a3);}}),this['_createUser'](_0x21b5e2['connection']['me'],!0x0);}['register'](_0x50a0c4,_0x16be3c){if(this['_registeredSessions']['has'](_0x50a0c4))throw new _0x71eab6('sessions-register-already-registered',null,{'channelId':_0x50a0c4});this['_registeredSessions']['set'](_0x50a0c4,_0x16be3c),this['channelSessions']['set'](_0x50a0c4,new _0x3fb7b9()),this['channelConnectedUsers']['set'](_0x50a0c4,new _0x3fb7b9()),this['listenTo'](_0x16be3c,'add',(_0x3f73e3,_0x32cb0a)=>this['_handleSessionAdd'](_0x50a0c4,_0x32cb0a)),this['listenTo'](_0x16be3c,'remove',(_0xd07e61,_0x4bae18)=>this['_handleSessionRemove'](_0x50a0c4,_0x4bae18));for(const _0xeb6ec1 of _0x16be3c)this['_handleSessionAdd'](_0x50a0c4,_0xeb6ec1);}['unregister'](_0x349ea4){if(!this['_registeredSessions']['has'](_0x349ea4))throw new _0x71eab6('sessions-unregister-not-exist',null,{'channelId':_0x349ea4});const _0x12c2d7=this['_registeredSessions']['get'](_0x349ea4);this['stopListening'](_0x12c2d7);for(const _0x38b9f5 of _0x12c2d7)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x349ea4,_0x38b9f5);this['_registeredSessions']['delete'](_0x349ea4),this['channelSessions']['delete'](_0x349ea4),this['channelConnectedUsers']['delete'](_0x349ea4);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x4d865b){for(const _0x2c4eec of this['channelSessions']['values']())for(const _0x1ede2d of _0x2c4eec)if(_0x1ede2d['id']===_0x4d865b)return _0x1ede2d['user'];}['getUserSessions'](_0x2cc7d4,_0x5658a0){const _0x38f5e7=_0x5658a0?[this['channelSessions']['get'](_0x5658a0)]:this['channelSessions']['values'](),_0x3044fe=new Set();for(const _0x4a2b25 of _0x38f5e7)for(const _0x3f7cbd of _0x4a2b25)_0x3f7cbd['user']['id']===_0x2cc7d4['id']&&_0x3044fe['add'](_0x3f7cbd['id']);return _0x3044fe;}['getUserRole'](_0x6ece86){for(const _0x4aba1a of this['channelSessions']['values']())for(const _0xc4a633 of _0x4aba1a)if(_0xc4a633['user']===_0x6ece86)return _0xc4a633['role'];}['_handleSessionAdd'](_0x305d84,_0xb2392d){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x19e40f=_0xb2392d['user'],_0x2b0284=this['_users']['getUser'](_0x19e40f['id'])||this['_createUser'](_0x19e40f),_0x4a1ead=Object['assign']({},_0xb2392d,{'user':_0x2b0284});if(this['channelSessions']['get'](_0x305d84)['add'](_0x4a1ead),!_0x19e40f['hiddenInPresenceList']){const _0x1504ab=this['channelConnectedUsers']['get'](_0x305d84);_0x1504ab['has'](_0x2b0284['id'])||_0x1504ab['add'](_0x2b0284),this['allConnectedUsers']['has'](_0x2b0284['id'])||_0x19e40f['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x2b0284,_0x2b0284['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x305d84,{'channelId':_0x305d84,'session':_0x4a1ead});}['_handleSessionRemove'](_0x21e9ce,_0x5178cc){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x43a065=this['channelConnectedUsers']['get'](_0x21e9ce),_0x58e77d=_0x5178cc['user'];_0x58e77d['id']&&(this['channelSessions']['get'](_0x21e9ce)['remove'](_0x5178cc['id']),_0x43a065['has'](_0x58e77d['id'])&&!this['getUserSessions'](_0x58e77d,_0x21e9ce)['size']&&_0x43a065['remove'](_0x58e77d['id']),this['allConnectedUsers']['get'](_0x58e77d['id'])&&!this['getUserSessions'](_0x58e77d)['size']&&this['allConnectedUsers']['remove'](_0x58e77d['id']));}['_createUser'](_0x2869c3,_0x2dc8ac){const _0x43371f=this['_users']['addUser'](_0x2869c3);return _0x2dc8ac&&this['_users']['defineMe'](_0x2869c3['id']),_0x43371f['orderNumber']=this['_uniqueUsersCount']++,_0x43371f;}}class UserMarkers extends _0xa8b5d6{['_domEmitter']=new(_0x5e26f0())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x16ed3e=this['editor'],_0x127505=_0x16ed3e['plugins']['get'](Sessions);_0x16ed3e['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x21217c,{writer:_0x8e724e})=>function(_0x10d8e1,_0x2c6728,_0x25b22a,_0x31fc85){const _0x177f01=_0x10d8e1['markerName']['split'](':')[0x2],_0x14406b=_0x25b22a['getUserBySessionId'](_0x177f01);if(!_0x14406b||_0x177f01===_0x25b22a['mySessionId'])return;if(!_0x31fc85['model']['schema']['checkChild'](_0x10d8e1['markerRange']['start'],'$text'))return;const _0x8ec8c2={'class':'ck-user__marker\x20'+_0x14406b['color']['getMarkerClass'](),'style':Y(_0x14406b),'data-name':_0x14406b['name'],'data-session-id':_0x177f01},_0x2a9e6f=_0x31fc85['model']['markers']['get'](_0x10d8e1['markerName']),_0x418c32=_0x2a9e6f['getStart'](),_0xf2b59=_0x418c32['nodeAfter'],_0x4bfad1=_0x31fc85['model']['schema'];if(_0xf2b59&&_0x4bfad1['isObject'](_0xf2b59)&&_0x4bfad1['isInline'](_0xf2b59)&&!_0x31fc85['model']['markers']['get']('user:range:'+_0x177f01)['getRange']()['isCollapsed'])return;const _0x5c9e9e=_0x418c32['parent'];return _0x31fc85['model']['schema']['isLimit'](_0x5c9e9e)&&!_0x31fc85['model']['hasContent'](_0x5c9e9e)&&(_0x8ec8c2['contenteditable']=!0x1),function(_0x29f6e2,_0x55a537,_0x1c4507){const _0x2079f6=_0x29f6e2['createUIElement']('span',_0x55a537);return _0x29f6e2['setCustomProperty']('userPositionMarker',!0x0,_0x2079f6),_0x2079f6['render']=function(_0x1f2d27){const _0x5d7055=this['toDomElement'](_0x1f2d27),_0xb34d0=document['createElement']('span');return _0xb34d0['classList']['add']('ck-user__marker-tooltip'),_0xb34d0['setAttribute']('contenteditable','false'),_0xb34d0['setAttribute']('spellcheck','false'),_0xb34d0['textContent']=_0x1c4507['name'],_0x5d7055['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0xb34d0['outerHTML']+'⁠',_0x5d7055['addEventListener']('mouseenter',()=>{_0x5d7055['classList']['add']('ck-user__marker_hovered');}),_0x5d7055['addEventListener']('mouseleave',()=>{_0x5d7055['classList']['remove']('ck-user__marker_hovered');}),_0x5d7055;},_0x2079f6['isSimilar']=function(_0x221599){return!(!this['getCustomProperty']('userPositionMarker')||!_0x221599['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x221599['getAttribute']('data-session-id'));},_0x2079f6;}(_0x2c6728,_0x8ec8c2,_0x14406b);}(_0x21217c,_0x8e724e,_0x127505,_0x16ed3e)}),_0x16ed3e['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x390603=>function(_0x3a24a1,_0x28aff7){const _0x51fe2b=_0x3a24a1['markerName']['split'](':')[0x2];if(_0x51fe2b===_0x28aff7['mySessionId'])return null;const _0x55d1d0=_0x28aff7['getUserBySessionId'](_0x51fe2b);if(!_0x55d1d0)return{'id':_0x51fe2b,'classes':[]};return{'id':_0x51fe2b,'classes':['ck-user__selection',_0x55d1d0['color']['getSelectionClass']()],'attributes':{'style':Y(_0x55d1d0),'data-session-id':_0x51fe2b},'priority':0x7d0+_0x55d1d0['orderNumber']};}(_0x390603,_0x127505)}),function(_0x226219){const _0x59dba1=_0x226219['model'],_0x5c2a0b=new Map(),_0x9f6472=_0x226219['plugins']['get'](Sessions);_0x59dba1['markers']['on']('update:user:range',(_0x55bb32,_0x1e409b,_0x4c412d,_0x55363f)=>{if(!_0x55363f&&_0x5c2a0b['get'](_0x1e409b['name']))return _0x5c2a0b['get'](_0x1e409b['name'])['detach'](),void _0x5c2a0b['delete'](_0x1e409b['name']);const _0x43bff6=_0x1e409b['name']['split'](':')[0x2];if(_0x43bff6===_0x9f6472['mySessionId'])return;const _0x17d555='user:position:'+_0x43bff6;_0x59dba1['markers']['has'](_0x17d555)&&_0x226219['editing']['reconvertMarker'](_0x17d555),_0x1e409b['on']('change:range',(_0x5e3699,_0x5599f1,_0x2622e5)=>{if('$graveyard'!=_0x5599f1['root']['rootName']&&'$graveyard'==_0x1e409b['getRange']()['root']['rootName']&&!_0x5c2a0b['has'](_0x1e409b['name'])){const _0x62db56=_0x59dba1['schema']['getNearestSelectionRange'](_0x2622e5['deletionPosition']);if(_0x62db56){const _0x1129e7=_0x475f72['fromRange'](_0x62db56);_0x5c2a0b['set'](_0x1e409b['name'],_0x1129e7),_0x1129e7['on']('change:range',(_0x5bbf83,_0x3cb74e,_0x1e1b4f)=>{if('$graveyard'==_0x1129e7['root']['rootName']){const _0x2f218e=_0x59dba1['schema']['getNearestSelectionRange'](_0x1e1b4f['deletionPosition']);_0x2f218e?(_0x1129e7['start']=_0x2f218e['start'],_0x1129e7['end']=_0x2f218e['end']):(_0x5c2a0b['delete'](_0x1e409b['name']),_0x1129e7['detach']());}});}}});}),_0x59dba1['document']['on']('change',()=>{_0x5c2a0b['size']>0x0&&_0x59dba1['enqueueChange']({'isUndoable':!0x1},_0x3d65cb=>{for(const [_0x5e47ed,_0x1f7fce]of _0x5c2a0b)'$graveyard'==_0x59dba1['markers']['get'](_0x5e47ed)['getRange']()['root']['rootName']&&(z(_0x5e47ed['split'](':')[0x2],_0x1f7fce['toRange'](),_0x59dba1,_0x3d65cb),_0x1f7fce['detach']());_0x5c2a0b['clear']();});});}(_0x16ed3e),this['_domEmitter']['listenTo'](_0x47d9e9['document'],'keydown',(_0x5b4f40,{key:_0x2b9d0e})=>{'Escape'===_0x2b9d0e&&function(_0x503226){_0x503226['editing']['view']['change'](_0x2c2f66=>{for(const _0x2abf8b of _0x503226['model']['markers']){if(!_0x2abf8b['name']['startsWith']('user:position'))continue;const _0x3e4057=_0x503226['editing']['mapper']['markerNameToElements'](_0x2abf8b['name']);if(_0x3e4057){for(const _0x213d70 of _0x3e4057)_0x2c2f66['removeClass']('ck-user__marker_hovered',_0x213d70);}}});}(_0x16ed3e);},{'useCapture':!0x0});}['afterInit'](){const _0x6f9e2b=this['editor'],_0x43c4c4=_0x6f9e2b['commands']['get']('undo');_0x43c4c4&&_0x6f9e2b['model']['on']('applyOperation',(_0x33b166,_0x531cb5)=>{const _0xd48a66=_0x531cb5[0x0];if(!_0xd48a66['isDocumentOperation'])return;if('marker'!=_0xd48a66['type']||!_0xd48a66['name']['startsWith']('user:'))return;const _0x50c0e2=_0xd48a66['batch'];_0x43c4c4['_createdBatches']['has'](_0x50c0e2)&&(_0xd48a66['newRange']=_0xd48a66['oldRange']?_0x6f9e2b['model']['createRange'](_0xd48a66['oldRange']['start'],_0xd48a66['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x2cb82b=this['editor'],_0x5c5b69=_0x2cb82b['model']['document'],_0x153d18=_0x2cb82b['plugins']['get'](Sessions);_0x2cb82b['model']['enqueueChange']({'isUndoable':!0x1},_0x3c25c9=>{const _0x25608a='user:range:'+_0x153d18['mySessionId'],_0x4291ac='user:position:'+_0x153d18['mySessionId'],_0x2039e8=_0x2cb82b['model']['markers']['has'](_0x25608a);_0x2cb82b['editing']['view']['hasDomSelection']?z(_0x153d18['mySessionId'],_0x5c5b69['selection']['getFirstRange'](),_0x2cb82b['model'],_0x3c25c9):_0x2039e8&&(_0x3c25c9['removeMarker'](_0x25608a),_0x3c25c9['removeMarker'](_0x4291ac));});}}function z(_0x229afe,_0x51108a,_0x4288b5,_0x597bc1){const _0xc4d587='user:range:'+_0x229afe,_0x5d4cb0='user:position:'+_0x229afe,_0x4a3bdf=_0x51108a['getContainedElement']();let _0x1d3e6e=_0x51108a['start'];if(_0x4a3bdf&&_0x4a3bdf['is']('element','tableCell')){const _0x1d2a03=function(_0x1a6381,_0x4e093f){for(const _0x4c03fd of _0x1a6381['getPositions']())if(_0x4e093f['schema']['checkChild'](_0x4c03fd,'$text'))return _0x4c03fd;}(_0x51108a,_0x4288b5);_0x1d2a03&&(_0x1d3e6e=_0x1d2a03,_0x51108a=_0x597bc1['createRange'](_0x1d3e6e));}const _0x167a39=_0x597bc1['createRange'](_0x1d3e6e);_0x4288b5['markers']['has'](_0xc4d587)?(_0x597bc1['updateMarker'](_0xc4d587,{'range':_0x51108a}),_0x597bc1['updateMarker'](_0x5d4cb0,{'range':_0x167a39})):(_0x597bc1['addMarker'](_0xc4d587,{'range':_0x51108a,'usingOperation':!0x0}),_0x597bc1['addMarker'](_0x5d4cb0,{'range':_0x167a39,'usingOperation':!0x0}));}function Y(_0xaee37b){return'--ck-user-color:'+_0xaee37b['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0xaee37b['color']['getColorAlphaVariable']()+';';}function K(_0x11a4df,_0x2ac652,_0x58e9a8){const _0x879dd4=_0x11a4df['t'],t=_0x11a4df['t'];switch(_0x2ac652){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 _0x879dd4({'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'},_0x58e9a8);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0xa8b5d6{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
+ ((()=>_0x1bc08e)());['_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,_0x3c80a1,_0x39f5d8,_0x13581e];}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 _0x2d6b8e=this['serverHistory']['getOperations']();for(let _0x3712a8=_0x2d6b8e['length']-0x1;_0x3712a8>=0x0;_0x3712a8--){const _0x4601d0=_0x2d6b8e[_0x3712a8];if(!this['_disconnectionOperations']['has'](_0x4601d0))return _0x4601d0['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x3163ab){if(super(_0x3163ab),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0xffd32b(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x71eab6('collaboration-missing-channelid',this);const _0x175ea8=_0x3163ab['config']['get']('cloudServices.bundleVersion')||_0x858cb6;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x175ea8,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x5edac(),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 _0x581e94=this['editor'],_0x564ac7=_0x581e94['plugins']['get'](_0x39f5d8),_0x241531=_0x581e94['plugins']['get'](WebSocketGateway);this['listenTo'](_0x564ac7,'getOperationAuthor',(_0x310355,_0x2f68ce)=>{const _0x3a2020=_0x2f68ce[0x0];_0x3a2020['_authorId']&&(_0x310355['return']=_0x564ac7['getUser'](_0x3a2020['_authorId']),_0x310355['stop']()),null===_0x3a2020['_authorId']&&(_0x310355['return']=null,_0x310355['stop']());},{'priority':'high'}),this['listenTo'](_0x581e94['model']['document']['selection'],'change:range',(_0x56403a,_0x3e8f5d)=>{_0x3e8f5d['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x581e94['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x581e94['model']['on']('applyOperation',(_0x18151d,_0x2dfe40)=>{const _0x4cf924=_0x2dfe40[0x0];_0x4cf924['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x4cf924),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x241531,'state',this,'_hasSynchronizationProblem',(_0x1f3795,_0x1e0813)=>'connected'===_0x1f3795&&!_0x1e0813),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x581e94['disableReadOnlyMode']('rtc-offline'):_0x581e94['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x581e94['disableReadOnlyMode']('rtc-offline'):_0x581e94['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x97d22d=this['editor']['plugins']['get'](Sessions),_0x12a442=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x97d22d['unregister'](this['_channelId']);const _0x433298=await this['_service']['reconnect'](_0x12a442['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x433298)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0xfd0d2f=await this['_service']['getConnectedSessions']();_0x97d22d['register'](this['_channelId'],_0xfd0d2f),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x1a0bcd){if(function(_0xa21057){return'404'===_0xa21057['code'];}(_0x1a0bcd)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x1b6865){return'409'===_0x1b6865['code'];}(_0x1a0bcd)){const _0x103f3f=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'](_0x103f3f);}else{if(!(_0x1a0bcd instanceof ReconnectionError))throw _0x1a0bcd;this['_handleReconnectionError']();}}}}['destroy'](){const _0xbe6f0c=this['editor']['plugins']['get'](WebSocketGateway),_0x404437=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x404437['channelSessions']['has'](this['_channelId'])&&_0x404437['unregister'](this['_channelId']),_0xbe6f0c['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x2a4fa3){if(this['sessionId']!==_0x2a4fa3['sessionId']&&this['_lastSyncedOperationId']!==_0x2a4fa3['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x2a4fa3['sessionId'],this['_handleServerResponse']([],{..._0x2a4fa3,'wereChangesApplied':!0x1,'data':_0x2a4fa3['data']},'reconnect');}async['_connectService'](_0x468b7b,_0x569a1e=!0x1){const {connection:_0x3b7aaf}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x3b7aaf,this['_channelId'])['then'](_0x103ca1=>this['_initSessionsHandling'](_0x103ca1))['catch'](_0x51b549=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x51b549);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x2306fd,_0x5d8263)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x5d8263);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x3b0fbb=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x468b7b);this['_isPendingUpdate']=!0x0;const _0x81de04=await this['_service']['connect'](_0x3b7aaf,this['_compressOperations'](_0x468b7b),_0x3b0fbb);if(this['sessionId']=_0x81de04['sessionId'],_0x569a1e){if(!_0x81de04['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x81de04['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x468b7b,_0x81de04,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x81de04,_0x468b7b);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x228071=this['editor']['plugins']['get'](Sessions),_0x408787=this['editor']['plugins']['get'](UserMarkers),_0xe9dd57=_0x228071['channelSessions']['get'](this['_channelId']);_0xe9dd57&&_0xe9dd57['length']>0x1?_0x408787['createUserMarkerOperations']():this['listenTo'](_0x228071,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x228071['channelSessions']['get'](this['_channelId'])['length']&&_0x408787['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x3a9955,_0x1ddc05,_0x1ecf25,_0xa66563){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x1ddc05){const _0x490f64=this['_decompressOperations'](_0x1ecf25,_0xa66563);await this['_fetchMissingUsers'](_0x490f64),this['_handleExternalOperations'](_0x490f64,_0x1ddc05,_0x1ecf25['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x8a6d48}=this['editor'];let _0x555216;try{_0x555216=await this['_service']['getDocumentDetails']();}catch{const _0x3df823=K(_0x8a6d48,'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'](_0x3df823);}const _0x504348=_0x555216['currentDocumentSession']||_0x555216['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x504348['lastOperationId']){const _0x5a3d24=K(_0x8a6d48,'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'](_0x5a3d24);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x58f921){const _0x547fee=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x547fee,'sessionAdd:'+this['_channelId'],(_0x4a8e21,{session:_0x499d0c})=>{if(_0x499d0c['id']===_0x547fee['mySessionId']){_0x4a8e21['off']();const _0x447816=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x3c40a3=_0x499d0c['permissions'];_0x447816&&_0x447816['isEnabled']&&(_0x3c40a3=_0x3c40a3['filter'](_0x3bc323=>'document:write'!==_0x3bc323)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x3c40a3,this['_channelId']);}}),_0x547fee['register'](this['_channelId'],_0x58f921);}['_initThrowingOnDataSet'](){const _0x29254f=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x4bc7a8)=>{if(!_0x4bc7a8[_0x4bc7a8['length']-0x1]['suppressErrorInCollaboration'])throw new _0x71eab6('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x29254f['apply'](this['editor']['data'],_0x4bc7a8);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x2336ae,[_0x777f76])=>{if(this['_document']['version'])throw new _0x71eab6('realtimecollaborationclient-init-document-already-initialized',this);_0x2336ae['stop'](),this['_setPendingAction']();const _0x449f6d=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x2e5bf1])=>!_0x2e5bf1['lazyLoad'])['map'](([_0x1a21b9,_0x4174eb])=>[_0x1a21b9,_0x4174eb['modelAttributes']||{}])),_0xba612a=this['_getOperationsFromInitData'](_0x777f76,_0x449f6d);0x0==_0xba612a['length']&&_0xba612a['push'](new _0x391ddc(0x0)),_0x2336ae['return']=this['_connectService'](_0xba612a)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x31b2e5=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x31b2e5))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0xb847e8,[_0x2f2cf5,_0x217521])=>{_0xb847e8['stop']();const _0x3a95cb=this['editor']['model']['document']['getRoot'](_0x2f2cf5);if(!this['_knownRootNames']['has'](_0x2f2cf5)){const _0x28f3cc=_0x217521&&_0x217521['data']?_0x217521['data']:'',_0x1c2226=_0x217521&&_0x217521['attributes']?_0x217521['attributes']:{};await this['_loadRoot'](_0x2f2cf5,_0x28f3cc,_0x1c2226);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x3a95cb['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x3a95cb);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x5cc6a9){const _0x41bef8=this['editor']['plugins']['get'](_0x39f5d8),{connection:_0x473ee4}=this['editor']['plugins']['get'](WebSocketGateway),_0xf006c7=new Set();for(const _0x3fac27 of _0x5cc6a9){const _0x1c516c=_0x3fac27['_authorId'];_0x1c516c&&!_0x41bef8['getUser'](_0x1c516c)&&_0xf006c7['add'](_0x1c516c);}if(0x0===_0xf006c7['size'])return;const _0x7138d4=await _0x4e51b9['getMany'](_0x473ee4,Array['from'](_0xf006c7));for(const _0x383280 of _0x7138d4)_0x41bef8['getUser'](_0x383280['id'])||_0x41bef8['addUser'](_0x383280);}['_getOperationsFromInitData'](_0x32b845,_0x508494={}){const _0x3ad73d=this['editor']['model'],_0x196ba7=[];let _0x1f094c=0x0;const _0x486d3c='string'==typeof _0x32b845?{'main':_0x32b845}:_0x32b845;for(const _0x333834 of Object['keys'](_0x486d3c)){if(!this['_document']['roots']['has'](_0x333834))throw new _0x71eab6('realtimecollaborationclient-init-non-existent-root',this);const _0x397758=this['_document']['getRoot'](_0x333834),_0x29a77f=this['editor']['data']['parse'](_0x486d3c[_0x333834],_0x397758),_0x2e694d=new _0x51e5d9(_0x3ad73d['createPositionAt'](_0x397758,0x0),_0x29a77f,_0x1f094c++);_0x196ba7['push'](_0x2e694d);for(const [_0x54bf28,_0x295985]of _0x29a77f['markers']){const _0x34707c=_0x3ad73d['createRange'](_0x3ad73d['createPositionFromPath'](_0x397758,_0x295985['start']['path']['slice']()),_0x3ad73d['createPositionFromPath'](_0x397758,_0x295985['end']['path']['slice']())),_0x164f5c=new _0x4d1aba(_0x54bf28,null,_0x34707c,_0x3ad73d['markers'],!0x0,_0x1f094c++);_0x196ba7['push'](_0x164f5c);}}if(_0x508494)for(const [_0x2ea127,_0x2d8276]of Object['entries'](_0x508494)){const _0x3b5c62=_0x3ad73d['document']['getRoot'](_0x2ea127);if(!_0x3b5c62)throw new _0x71eab6('multi-root-editor-root-attributes-no-root',null);for(const [_0x1dc567,_0xb13e88]of Object['entries'](_0x2d8276))if(null!==_0xb13e88){const _0x49438d=new _0x42715b(_0x3b5c62,_0x1dc567,null,_0xb13e88,_0x1f094c++);_0x196ba7['push'](_0x49438d);}}return _0x196ba7;}async['_loadRoot'](_0x52a423,_0x33ee8f,_0x2c8352){this['_getOperationsFromInitData']({[_0x52a423]:_0x33ee8f},{[_0x52a423]:_0x2c8352})['forEach']((_0x1f4933,_0x528a21)=>{_0x1f4933['baseVersion']=this['_document']['version']+_0x528a21,_0x1f4933['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x1f4933);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x396fea,_0x27958e){let _0x467551;this['_offset']=_0x396fea['offset'];const _0x4f121f=_0x396fea['wereChangesApplied']&&!_0x396fea['initData'],_0x213016=_0x4f121f?0x0:_0x396fea['data']['baseVersion'];if(_0x27958e['forEach'](_0x32ee97=>{_0x32ee97['_isInit']=!0x0,_0x32ee97['createdAt']=_0x396fea['sessionCreatedAt'],_0x32ee97['_authorId']=null;}),_0x4f121f)_0x467551=_0x27958e,this['_applyOperationsSet'](_0x467551,_0x4f121f);else{if(_0x396fea['initData']){const _0x3c7f22=this['_getOperationsFromInitData'](_0x396fea['initData']);this['_document']['history']['version']=-_0x3c7f22['length'],_0x3c7f22['forEach'](_0x49478a=>{_0x49478a['baseVersion']-=_0x3c7f22['length'],_0x49478a['createdAt']=_0x396fea['sessionCreatedAt'],_0x49478a['_isInit']=!0x0,_0x49478a['_authorId']=null;}),this['_applyOperationsSet'](_0x3c7f22,!0x0),this['serverHistory']['version']=-_0x3c7f22['length']+this['_offset'],this['_updateServerHistory'](_0x3c7f22);}this['_document']['history']['version']=_0x213016,_0x467551=this['_decompressOperations'](_0x396fea['data'],_0x396fea['metadata']),await this['_fetchMissingUsers'](_0x467551),this['_applyOperationsSet'](_0x467551,_0x4f121f);}_0x396fea['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x467551,_0x396fea['lastOperationId']),this['_lastSyncedOperationId']=_0x396fea['lastOperationId']),this['serverHistory']['version']=_0x213016+this['_offset'],this['_updateServerHistory'](_0x467551),_0x27958e['filter'](_0x2a90e2=>{const _0xb2db2a=this['_getAffectedRoot'](_0x2a90e2);return _0xb2db2a&&!this['_knownRootNames']['has'](_0xb2db2a);})['forEach']((_0x43c5e5,_0x160df5)=>{_0x43c5e5['baseVersion']=this['_document']['version']+_0x160df5,this['_saveOperationInBuffer'](_0x43c5e5);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x4b4340,_0x427540){const _0x283da0=_0x427540&&_0x427540['message'];if(_0x283da0&&_0x283da0['startsWith']('realtimecollaborationclient'))throw _0x427540;const _0x476896=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x476896['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x71eab6(_0x4b4340,this['editor'],_0x283da0?{'originalError':_0x283da0}:void 0x0);}['_saveOperationInBuffer'](_0x4f5d2d){this['_knownOperations']['has'](_0x4f5d2d)||(this['_knownOperations']['add'](_0x4f5d2d),this['_bufferedOperations']['push'](_0x4f5d2d),this['_pendingAction']||'marker'==_0x4f5d2d['type']&&!_0x4f5d2d['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x27dfec=!0x1){!_0x27dfec&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x29e3fe=>{_0x29e3fe&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x153857=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x5cea4f){return _0x5cea4f['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x5cea4f['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x5cea4f['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x153857)||this['_crash'](_0x153857['message'],_0x153857);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x5f2c15=>{this['on']('change:_isPendingUpdate',()=>{_0x5f2c15();});});}async['_sendBufferedOperations'](){const _0x364cbb=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x364cbb['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x19b6e8=[...this['_bufferedOperations']];for(const _0x55a2b7 of _0x19b6e8)_0x55a2b7['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x55a2b7);const _0x1e57d9=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x19b6e8),_0x26d7c8=J++,_0x5314d3=this['_compressOperations'](_0x19b6e8),_0x3f13f6=await this['_service']['sendOperations'](_0x5314d3,_0x5314d3['baseVersion'],_0x1e57d9);try{return await this['_handleServerResponse'](_0x19b6e8,_0x3f13f6,_0x26d7c8);}catch(_0x501c21){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x501c21);}}async['_handleServerResponse'](_0x478011,_0x25a3ef,_0x1d044e){if('error'in _0x25a3ef)throw _0x25a3ef['error'];let _0x260b73=!0x1;if(_0x25a3ef['wereChangesApplied']){_0x25a3ef['lastOperationId']&&(this['_lastSyncedOperationId']=_0x25a3ef['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x1afc6d=>!_0x478011['includes'](_0x1afc6d));for(const _0x4a07cc of _0x478011)_0x4a07cc['createdAt']='lastOperationAcceptedAt'in _0x25a3ef&&_0x25a3ef['lastOperationAcceptedAt']||void 0x0;Q(_0x478011,_0x25a3ef['version']-_0x478011['length']),this['_updateServerHistory'](_0x478011);const _0x2b25be=_0x478011['filter'](_0x3e46fc=>{if(!_0x3e46fc['_isInit'])return!0x1;const _0x426763=this['_getAffectedRoot'](_0x3e46fc);return _0x426763&&!this['_knownRootNames']['has'](_0x426763);});Q(_0x2b25be,this['_document']['version']),this['_applyOperationsSet'](_0x2b25be),_0x260b73=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x4b98e9=this['_decompressOperations'](_0x25a3ef['data'],_0x25a3ef['metadata'])['filter'](_0xed7b7f=>_0xed7b7f['baseVersion']>=this['_lastServerVersion']);_0x4b98e9['forEach'](_0x1627f5=>this['_addKnownRoot'](_0x1627f5)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x35e003=>!_0x35e003['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x35e003))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x4b98e9),_0x260b73=this['_handleExternalOperations'](_0x4b98e9,_0x25a3ef['version'],_0x25a3ef['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x260b73?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x15af88,_0x1696c9,_0x301531){try{const _0x47a664={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x5cf6d4,operationsB:_0x5c4368,originalOperations:_0x6cad08}=_0x241ccf(_0x15af88,this['_bufferedOperations'],_0x47a664);Q(_0x5cf6d4,this['_document']['version']),Q(_0x5c4368,_0x1696c9);for(const _0x385f21 of _0x5cf6d4){const _0x3d6ef3=_0x6cad08['get'](_0x385f21);_0x385f21['_authorId']=_0x3d6ef3?_0x3d6ef3['_authorId']:null;}_0x301531&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x15af88,_0x301531),this['_lastSyncedOperationId']=_0x301531),this['_bufferedOperations']=[..._0x5c4368],this['_applyOperationsSet'](_0x5cf6d4),this['_updateServerHistory'](_0x15af88);}catch(_0x2895f8){return console['error'](_0x2895f8),!0x1;}return!0x0;}['_applyOperationsSet'](_0x550680,_0x452810=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x3d3e34=>{for(const _0x25092a of _0x550680)this['_knownOperations']['add'](_0x25092a),this['_addKnownRoot'](_0x25092a),_0x3d3e34['batch']['addOperation'](_0x25092a),this['editor']['model']['applyOperation'](_0x25092a);});}['_addKnownRoot'](_0x1b7947){const _0x678ca5=this['_getAffectedRoot'](_0x1b7947);_0x678ca5&&this['_knownRootNames']['add'](_0x678ca5);}['_getAffectedRoot'](_0x31defa){let _0x1e7f92,_0x2f2e3a;switch(_0x31defa['type']){case'insert':_0x1e7f92=_0x31defa['position']['root'];break;case'marker':if(_0x2f2e3a=_0x31defa['newRange'],!_0x2f2e3a)return null;_0x1e7f92=_0x2f2e3a['root'];break;case'addRootAttribute':_0x1e7f92=_0x31defa['root'];break;case'addRoot':_0x1e7f92=_0x31defa['affectedSelectable'];break;case'move':_0x1e7f92=_0x31defa['targetPosition']['root'];break;default:return null;}return _0x1e7f92['rootName'];}['_updateServerHistory'](_0x2bc27d){_0x2bc27d['forEach'](_0x581271=>{const _0x137867=_0x581271['clone']();_0x137867['_authorId']=_0x581271['_authorId'],_0x137867['_isInit']=!!_0x581271['_isInit'],_0x137867['createdAt']=_0x581271['createdAt'],_0x137867['baseVersion']+=this['_offset'],_0x581271['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x137867),this['serverHistory']['addOperation'](_0x137867);});}['_handleReconnectionError'](_0x11beb0){const _0x4001d7=this['editor']['plugins']['get']('Notification'),_0x50fb4a=this['editor']['locale'];_0x11beb0||(_0x11beb0=K(_0x50fb4a,'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.')),_0x4001d7['showWarning'](_0x11beb0,{'title':K(_0x50fb4a,'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'](_0x3c80a1)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x3c80a1)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x140c1c){const _0x41a180=_0x140c1c['map'](_0x1d71bd=>_0x1d71bd['toJSON']());return this['_compressor']['compress'](_0x41a180);}['_decompressOperations'](_0x145886,_0x488f33){return this['_compressor']['decompress'](_0x145886)['map']((_0x1e176a,_0x16f1a2)=>{const _0x371619='init'==_0x488f33[_0x16f1a2]['type'];if('InsertOperation'==_0x1e176a['__className']){const _0x41f34b=_0x1e176a['position']['root'];!this['_document']['getRoot'](_0x41f34b)&&(this['_document']['createRoot']('$unknown',_0x41f34b)['_isAttached']=!0x1);}else{if('RootOperation'==_0x1e176a['__className']){const _0x4fe84c=this['_document']['getRoot'](_0x1e176a['rootName']);_0x4fe84c&&'$unknown'==_0x4fe84c['name']&&_0x1e176a['elementName']!=_0x4fe84c['name']&&(_0x4fe84c['name']=_0x1e176a['elementName']);}}const _0x451f8f=_0x1ea6fa['fromJSON'](_0x1e176a,this['_document']);return _0x451f8f['wasUndone']=_0x1e176a['wasUndone'],_0x451f8f['_isInit']=_0x371619,_0x451f8f['_authorId']=_0x371619?null:_0x488f33[_0x16f1a2]['userId'],_0x451f8f['_isDisconnection']='cs:removeUser'===_0x488f33[_0x16f1a2]['type'],_0x451f8f['createdAt']=_0x488f33[_0x16f1a2]['createdAt'],_0x451f8f;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x1f03f5=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x1f03f5&&_0x1f03f5['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x276a66,_0x37a52a){for(const _0x3643c7 of _0x276a66)_0x3643c7['baseVersion']=_0x37a52a++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x49fa76){this['_ignoredOperations']=_0x49fa76,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x1086e0){let _0x4f0c76=_0x1086e0['length'];for(;_0x4f0c76--;){const _0x17a415=_0x1086e0[_0x4f0c76];if(!this['_ignoredOperations']['has'](_0x17a415)){if(!this['_operationToId']['has'](_0x17a415)){const _0x1d6846=_0x1b2b49()['slice'](0x1,0x12);this['_operationToId']['set'](_0x17a415,_0x1d6846);}return this['_operationToId']['get'](_0x17a415);}}}['setIdForTheLastOperation'](_0x4b7b75,_0x3db72e){if(!_0x3db72e)return;let _0x5be3a6=_0x4b7b75['length'];for(;_0x5be3a6--;){const _0x342e33=_0x4b7b75[_0x5be3a6];this['_ignoredOperations']['has'](_0x342e33)||this['_operationToId']['set'](_0x342e33,_0x3db72e);}}}class RealTimeCollaborativeEditing extends _0xa8b5d6{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x1ab0c4{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
+ ((()=>_0x5ec125)());['_services'];static get['requires'](){return[WebSocketGateway,_0xb43395,Sessions,_0x39f5d8];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0xce9dc2){super(_0xce9dc2),this['_services']=new Map();}async['init'](){const _0x182189=this['context'],_0x181b31=_0x182189['plugins']['get'](_0xb43395);if(_0x182189['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x181b31['adapter']={'addCommentThread':async({channelId:_0x48615e,threadId:_0x293fe7,comments:_0x1c5090,resolvedAt:_0x47188b,resolvedBy:_0xd4e7e6,context:_0x3ba9eb,attributes:_0x5634b8})=>{const _0x170ab4=await this['_getService'](_0x48615e)['addCommentThread']({'commentThreadId':_0x293fe7,'comments':_0x1c5090['map'](_0xa2404e=>function(_0x5c7861,_0x542fdc,_0x22ea26){return{'commentThreadId':_0x22ea26,'commentId':_0x5c7861['commentId'],'userId':_0x5c7861['authorId'],'content':_0x5c7861['content'],'documentId':_0x542fdc,'createdAt':_0x5c7861['createdAt'],'attributes':_0x5c7861['attributes']||{}};}(_0xa2404e,_0x48615e,_0x293fe7)),'resolvedAt':_0x47188b,'resolvedBy':_0xd4e7e6,'context':_0x3ba9eb,'attributes':_0x5634b8})['catch'](Z);return{'threadId':_0x170ab4['commentThreadId'],'comments':_0x170ab4['comments']};},'getCommentThread':async({channelId:_0x4dbacc,threadId:_0x5d7b15})=>{const _0x10ec9f=await this['_getService'](_0x4dbacc)['getCommentThread'](_0x5d7b15)['catch'](X)['catch'](Z);return _0x10ec9f?_0x10ec9f['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x10ec9f]),{'threadId':_0x10ec9f['commentThreadId'],'comments':_0x10ec9f['comments']['map'](tt),'context':_0x10ec9f['context'],'resolvedAt':_0x10ec9f['resolvedAt'],'resolvedBy':_0x10ec9f['resolvedBy'],'attributes':_0x10ec9f['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x1166b3,threadId:_0x3a0f36,context:_0x4f78be,unlinkedAt:_0x1ecea9,attributes:_0x422c2b})=>this['_getService'](_0x1166b3)['updateCommentThread']({'commentThreadId':_0x3a0f36,'context':_0x4f78be,'attributes':_0x422c2b,'unlinkedAt':_0x1ecea9})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x1d65e6,threadId:_0x218598})=>{const _0x1fb71c=await this['_getService'](_0x1d65e6)['resolveCommentThread'](_0x218598)['catch'](X)['catch'](Z);return{'threadId':_0x1fb71c['commentThreadId'],'resolvedAt':_0x1fb71c['resolvedAt'],'resolvedBy':_0x1fb71c['resolvedBy']};},'reopenCommentThread':async({channelId:_0x4dff8d,threadId:_0x4939cc})=>this['_getService'](_0x4dff8d)['reopenCommentThread'](_0x4939cc)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x4339ed,threadId:_0x48ec07})=>this['_getService'](_0x4339ed)['removeCommentThread'](_0x48ec07)['catch'](X)['catch'](Z),'addComment':({channelId:_0xe6c1a6,threadId:_0x2ee36d,commentId:_0x2ae978,content:_0x132d53,attributes:_0x2aabcf})=>this['_getService'](_0xe6c1a6)['addComment'](_0x2ee36d,_0x2ae978,_0x132d53,_0x2aabcf)['catch'](Z),'updateComment':({channelId:_0x596def,threadId:_0x5ca6b4,commentId:_0x915c92,content:_0x44867b,attributes:_0x1c0568})=>this['_getService'](_0x596def)['updateComment'](_0x5ca6b4,_0x915c92,_0x44867b,_0x1c0568)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x323fb0,threadId:_0x179aab,commentId:_0x2dfddb})=>this['_getService'](_0x323fb0)['removeComment'](_0x179aab,_0x2dfddb)['catch'](X)['catch'](Z)},_0x182189 instanceof _0xada907){const _0x18452c=_0x182189['config']['get']('collaboration.channelId'),_0x34aed6=_0x182189['plugins']['get'](Sessions);await this['_setUpService'](_0x18452c);const _0x2eeaa8=await this['_services']['get'](_0x18452c)['getConnectedSessions']();this['listenTo'](_0x34aed6,'sessionAdd:'+_0x18452c,(_0x4efbf4,{session:_0x59271b})=>{_0x59271b['id']===_0x34aed6['mySessionId']&&(_0x4efbf4['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x59271b['permissions'],_0x18452c));}),_0x34aed6['register'](_0x18452c,_0x2eeaa8);}}async['_setUpService'](_0x326c55){if(this['_services']['has'](_0x326c55))throw new _0x71eab6('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x326c55});const _0x9cd693=this['context']['plugins']['get'](_0xb43395),_0x304270=new CloudServicesCommentsAdapter['CommentsService'](_0x326c55);this['_services']['set'](_0x326c55,_0x304270),this['listenTo'](_0x304270,'commentThreadAdded',(_0x10a7b8,_0x4c15a6)=>{const {commentThreadId:_0x3c79d6,documentId:_0x1e1b9b,context:_0x1eff1a,attributes:_0x4107dc,resolvedAt:_0x15a5d6,resolvedBy:_0x29e92c,comments:_0x59adb5}=_0x4c15a6;_0x9cd693['getCommentThread'](_0x3c79d6)||_0x9cd693['addCommentThread']({'threadId':_0x3c79d6,'channelId':_0x1e1b9b,'comments':_0x59adb5?_0x59adb5['map'](tt):[],'context':_0x1eff1a,'attributes':_0x4107dc,'resolvedAt':_0x15a5d6,'resolvedBy':_0x29e92c,'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadUpdated',(_0x2ce6ea,{commentThreadId:_0x85e5b0,documentId:_0x118714,context:_0x1cd15d,unlinkedAt:_0x1ee2f0,attributes:_0x413844})=>{_0x9cd693['getCommentThread'](_0x85e5b0)&&_0x9cd693['updateCommentThread']({'threadId':_0x85e5b0,'channelId':_0x118714,'context':_0x1cd15d,'unlinkedAt':_0x1ee2f0,'attributes':_0x413844,'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadResolved',(_0x1f2f00,{commentThreadId:_0x108c8f,resolvedBy:_0xd800da,resolvedAt:_0x173016})=>{const _0x4860a0=_0x9cd693['getCommentThread'](_0x108c8f);_0x4860a0&&_0x4860a0['resolve']({'resolvedBy':_0xd800da,'resolvedAt':_0x173016,'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadReopened',(_0x156b1c,{commentThreadId:_0x49d2fe})=>{const _0x209f7a=_0x9cd693['getCommentThread'](_0x49d2fe);_0x209f7a&&_0x209f7a['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadRemoved',(_0x406664,{commentThreadId:_0x34c1a5})=>{const _0x1a9318=_0x9cd693['getCommentThread'](_0x34c1a5);_0x1a9318&&_0x1a9318['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentAdded',(_0x5439fd,_0x2e605d)=>{const _0x1b176a=_0x2e605d['commentThreadId'],_0x56c5af=_0x9cd693['getCommentThread'](_0x1b176a);_0x56c5af&&_0x56c5af['addComment']({...tt(_0x2e605d),'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentUpdated',(_0x50706b,{commentThreadId:_0x192c08,commentId:_0xaf84a1,content:_0x50d9d9,attributes:_0x286860})=>{const _0x367f13=_0x9cd693['getCommentThread'](_0x192c08);if(_0x367f13){const _0x13c470=_0x367f13['getComment'](_0xaf84a1);_0x13c470&&_0x13c470['update']({'content':_0x50d9d9,'attributes':_0x286860,'isFromAdapter':!0x0});}}),this['listenTo'](_0x304270,'commentRemoved',(_0x53121c,{commentThreadId:_0x3b89ae,commentId:_0x555d15})=>{const _0x36aed3=_0x9cd693['getCommentThread'](_0x3b89ae);if(_0x36aed3){const _0x17c05f=_0x36aed3['getComment'](_0x555d15);_0x17c05f&&_0x17c05f['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x326c55);}['destroy'](){if(this['context']instanceof _0xada907){const _0x502136=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x502136);}}['_terminateService'](_0x4f33af){if(!this['_services']['has'](_0x4f33af))throw new _0x71eab6('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x4f33af});this['_getService'](_0x4f33af)['disconnect'](),this['_services']['delete'](_0x4f33af);}async['reconnect'](){for(const _0x5e65e0 of this['_services']['keys']())await this['_connectService'](_0x5e65e0);if(this['context']instanceof _0xada907){const _0x49d8f1=this['context']['config']['get']('collaboration.channelId'),_0x3412aa=this['context']['plugins']['get'](Sessions);_0x3412aa['unregister'](_0x49d8f1);const _0x5391c4=await this['_services']['get'](_0x49d8f1)['getConnectedSessions']();_0x3412aa['register'](_0x49d8f1,_0x5391c4);}}async['_connectService'](_0x28e4b6){const {connection:_0x278583}=this['context']['plugins']['get'](WebSocketGateway),_0x1c246d=this['context']['plugins']['get'](_0xb43395),_0x1c955c=this['_services']['get'](_0x28e4b6),_0x3c4cf3=await _0x1c955c['connect'](_0x278583);await this['_fetchMissingUsersForThreads'](_0x3c4cf3);const _0x5e4b23=new Set(Array['from'](_0x1c246d['getCommentThreads']({'channelId':_0x28e4b6}),_0xb7f57e=>_0xb7f57e['id']));for(const _0x530a04 of _0x3c4cf3)_0x530a04['deletedAt']||_0x5e4b23['delete'](_0x530a04['commentThreadId']);for(const _0x1f2b19 of _0x5e4b23)_0x1c246d['getCommentThread'](_0x1f2b19)['remove']({'isFromAdapter':!0x0});for(const _0x50a3da of _0x3c4cf3){let _0x99c792=_0x1c246d['getCommentThread'](_0x50a3da['commentThreadId']);const {commentThreadId:_0x3daab5,context:_0x53f63a,attributes:_0x156593,resolvedBy:_0x3cc944,resolvedAt:_0x28a7a7,unlinkedAt:_0x2ae88a,deletedAt:_0x11d276}=_0x50a3da;if(_0x11d276)continue;_0x99c792||(_0x99c792=_0x1c246d['addCommentThread']({'channelId':_0x28e4b6,'threadId':_0x3daab5,'context':_0x53f63a,'attributes':_0x156593||{},'resolvedBy':_0x3cc944,'resolvedAt':_0x28a7a7,'unlinkedAt':_0x2ae88a,'isFromAdapter':!0x0}));const _0x48b01b=new Set(Array['from'](_0x99c792['comments'],_0x1bc9ab=>_0x1bc9ab['id']));for(const _0x3679bc of _0x50a3da['comments'])_0x48b01b['delete'](_0x3679bc['commentId']);for(const _0x384412 of _0x48b01b)_0x99c792['getComment'](_0x384412)['remove']({'isFromAdapter':!0x0});for(const _0x3535bf of _0x50a3da['comments']){const _0x2fee7c=_0x99c792['getComment'](_0x3535bf['commentId']);_0x2fee7c?_0x2fee7c['content']!==_0x3535bf['content']&&_0x2fee7c['update']({'content':_0x3535bf['content'],'isFromAdapter':!0x0}):_0x99c792['addComment'](Object['assign'](tt(_0x3535bf),{'isFromAdapter':!0x0}));}}}['_getService'](_0x1f7db7){if(!this['_services']['has'](_0x1f7db7))throw new _0x71eab6('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x1f7db7});return this['_services']['get'](_0x1f7db7);}async['_fetchMissingUsersForThreads'](_0x2cde65){const _0x84c2f=this['context']['plugins']['get'](_0x39f5d8),{connection:_0x4f2c15}=this['context']['plugins']['get'](WebSocketGateway),_0x367a02=new Set();for(const {resolvedBy:_0x780c82,comments:_0x483518}of _0x2cde65){_0x780c82&&!_0x84c2f['getUser'](_0x780c82)&&_0x367a02['add'](_0x780c82);for(const {userId:_0x54794d}of _0x483518)_0x84c2f['getUser'](_0x54794d)||_0x367a02['add'](_0x54794d);}if(0x0===_0x367a02['size'])return;const _0x50d8f1=await _0x4e51b9['getMany'](_0x4f2c15,Array['from'](_0x367a02));for(const _0x3af34f of _0x50d8f1)_0x84c2f['getUser'](_0x3af34f['id'])||_0x84c2f['addUser'](_0x3af34f);}}async function X(_0x5ae59b){if('404'!==_0x5ae59b['code'])throw _0x5ae59b;}function Z(_0x2256d8){if((_0x542f6a=_0x2256d8)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x542f6a['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x542f6a['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x542f6a;throw _0x2256d8;}function tt(_0x131b67){return{'threadId':_0x131b67['commentThreadId'],'commentId':_0x131b67['commentId'],'content':_0x131b67['content'],'createdAt':_0x131b67['createdAt'],'authorId':_0x131b67['userId'],'attributes':_0x131b67['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0xa8b5d6{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
+ ((()=>_0x270adf)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x4a4f9b,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x45cadf){super(_0x45cadf);const _0x224cda=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x224cda);}['init'](){const _0x875b69=this['editor']['plugins']['get'](WebSocketGateway),_0x3e0d91=this['editor']['plugins']['get'](_0x4a4f9b);return _0x3e0d91['adapter']={'getSuggestion':async _0x45e852=>{await this['_waitForServiceReady']();const _0x284db8=await this['_trackChangesService']['get'](_0x45e852)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x284db8]),_0x284db8;},'addSuggestion':async({id:_0x143f86,type:_0x12d6fe,data:_0x381d0b,originalSuggestionId:_0x344238,attributes:_0x210fab})=>{await this['_waitForServiceReady']();const _0x64c904={'id':_0x143f86,'type':_0x12d6fe,'data':_0x381d0b,'originalSuggestionId':_0x344238,'attributes':_0x210fab},_0x174003=await this['_trackChangesService']['add'](_0x143f86,_0x12d6fe,_0x381d0b,_0x344238,_0x210fab)['catch'](_0x3e0077=>{if(st(_0x3e0077))return new Promise(_0x30ac5a=>{this['_bufferedRequests']['set'](_0x143f86,{'resolve':_0x30ac5a,'suggestionData':_0x64c904});});throw _0x3e0077;});return this['_bufferedRequests']['delete'](_0x143f86),_0x174003;},'updateSuggestion':async(_0x153572,_0x535303)=>{if(await this['_waitForServiceReady'](),'open'!==_0x535303['state'])return this['_trackChangesService']['update'](_0x153572,_0x535303)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x5509f0,_0x1d8190)=>{_0x3e0d91['hasSuggestion'](_0x1d8190['id'])&&(_0x3e0d91['getSuggestion'](_0x1d8190['id'])['attributes']=_0x1d8190['attributes']);}),this['_trackChangesService']['connect'](_0x875b69['connection'])['then'](_0x29579f=>(_0x875b69['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x29579f)['then'](()=>{for(const _0x5a0952 of _0x29579f){_0x3e0d91['addSuggestionData'](_0x5a0952)['_saved']=!0x0;}})));}async['reconnect'](){const _0x341c5f=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x1724c3}=this['editor']['plugins']['get'](WebSocketGateway),_0x5ec1cc=await this['_trackChangesService']['connect'](_0x1724c3);await this['_fetchMissingUsersForThreads'](_0x5ec1cc);for(const {suggestionData:_0x5d994b,resolve:_0xb40f1e}of this['_bufferedRequests']['values']()){let _0x2d54fd=_0x5ec1cc['find'](_0x177404=>_0x177404['id']===_0x5d994b['id']);_0x2d54fd||(_0x2d54fd=await this['_trackChangesService']['add'](_0x5d994b['id'],_0x5d994b['type'],_0x5d994b['data'],_0x5d994b['originalSuggestionId'])),_0xb40f1e(_0x2d54fd);}for(const _0x344958 of _0x5ec1cc)_0x341c5f['hasSuggestion'](_0x344958['id'])||_0x341c5f['addSuggestionData'](_0x344958);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x26cb28=>{this['listenTo'](this['_trackChangesService'],'connected',_0x2bb1e0=>{_0x2bb1e0['off'](),_0x26cb28();});});}async['_fetchMissingUsersForThreads'](_0x5139dc){const _0x58e81f=this['editor']['plugins']['get'](_0x39f5d8),{connection:_0x22fd30}=this['editor']['plugins']['get'](WebSocketGateway),_0x544380=new Set();for(const {authorId:_0x510b93}of _0x5139dc)_0x58e81f['getUser'](_0x510b93)||_0x544380['add'](_0x510b93);if(0x0===_0x544380['size'])return;const _0x336c16=await _0x4e51b9['getMany'](_0x22fd30,Array['from'](_0x544380));for(const _0x24bca8 of _0x336c16)_0x58e81f['getUser'](_0x24bca8['id'])||_0x58e81f['addUser'](_0x24bca8);}}function et(_0x139c64){if(st(_0x139c64))return new Promise(()=>{});throw _0x139c64;}function st(_0x41ce7c){return _0x41ce7c['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x41ce7c['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0xa8b5d6{static get['requires'](){return[_0x14dbd7,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0xdedb35=this['editor']['plugins']['get'](WebSocketGateway),_0x52c4f6=this['editor']['plugins']['get'](_0xfce3b8),_0x57f5b2=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0xdedb35,'change:state',(_0x4a3ccf,_0x47f9c2,_0x2b8bc4)=>{_0x52c4f6['isThreadsLoadingPaused']='connected'!==_0x2b8bc4;});}),this['listenTo'](_0xdedb35,'change:state',(_0x361612,_0x1925fc,_0x20f38e)=>{this['editor']['plugins']['get'](_0xb43395)['switchReadOnly']('connected'!==_0x20f38e);}),_0x57f5b2['_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 _0xa8b5d6{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x19261];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0xa8b5d6{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
+ ((()=>_0xa09a6c)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x312c1b,Sessions,_0x39f5d8];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x451bda){super(_0x451bda);const _0x292fef=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x292fef);}async['init'](){const _0x3346cb=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x1f0bc7=_0x3346cb['serverHistory'],_0x507517=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x1f0bc7,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x3346cb['sessionId']});const _0x5da9ae=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x858cb6,_0x342453=await _0x29a061['isBundleUploaded'](_0x507517['connection'],_0x5da9ae);this['editor']['plugins']['get'](_0x312c1b)['adapter']={'getRevision':async({revisionId:_0x4a1fc0})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x4a1fc0)),'updateRevisions':async _0xbb8ca6=>{await this['_waitForServiceReady']();const _0x158dcb=this['_revisionTracker']['currentRevision'];if(_0x342453&&0x1===_0xbb8ca6['length']&&_0xbb8ca6[0x0]['id']===_0x158dcb['id'])return _0xbb8ca6;for(const _0x3a92c3 of _0xbb8ca6)_0x3a92c3['id']===_0x158dcb['id']&&(_0x3a92c3['isEmptyCurrent']=_0x3a92c3['fromVersion']===_0x3a92c3['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0xbb8ca6,this['_lastRequestId'])['then'](_0x34b8bd=>(this['_lastRequestId']=_0x34b8bd,_0xbb8ca6))['catch'](_0x3bd4d3=>{if(it(_0x3bd4d3)||'400'===_0x3bd4d3['code']&&void 0x0!==_0x3bd4d3['data']['wrongRequestId']){for(const _0xd07395 of _0xbb8ca6){!this['_revisionTracker']['repository']['getRevision'](_0xd07395['id'])||this['_revisionTracker']['_bufferUpdate'](_0xd07395['id'],_0xd07395,!0x1);}if(it(_0x3bd4d3)&&'destroyed'!==this['editor']['state'])throw _0x3bd4d3;return _0xbb8ca6;}throw _0x3bd4d3;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x52bb8,{revisionsData:_0x4ec5a0,requestId:_0x5402a1})=>{Math['max'](..._0x4ec5a0['map'](_0x1d57d9=>_0x1d57d9['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x4ec5a0,_0x5402a1);}):this['_handleRevisionsUpdate'](_0x4ec5a0,_0x5402a1);});const {revisions:_0x2b81ee,requestId:_0x9c08f0}=await this['_revisionHistoryService']['connect'](_0x507517['connection']);_0x507517['addToReconnectionStack'](this),this['_lastRequestId']=_0x9c08f0,await this['_fetchMissingUsers'](_0x2b81ee);for(const _0x1d557c of _0x2b81ee)this['_revisionTracker']['addRevisionData'](_0x1d557c);this['listenTo'](_0x3346cb,'change:_isConnected',(_0x5dbf12,_0xc745e7,_0x4349e3)=>{_0x4349e3&&(this['_oldOffset']=_0x3346cb['_offset'],_0x5dbf12['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x507517,'state',_0x287345=>_0x287345===_0x4b45bf['CONNECTED']);}async['reconnect'](){const _0x2f1049=this['editor']['plugins']['get'](WebSocketGateway),_0x5d8511=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x4aedb2=async()=>{const _0x1eda36=this['_revisionTracker']['currentRevision'],_0x7536=_0x1eda36['id'],_0xc846bf=_0x7536!==_0x5d8511['sessionId'];if(_0xc846bf){const _0xd6e946=_0x5d8511['_offset']-this['_oldOffset'],_0x5400b5=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x1eda36['toVersion']+_0xd6e946!==_0x5400b5){const _0x2735cb=_0x1eda36['fromVersion']+_0xd6e946,_0x4347c8=this['editor']['plugins']['get'](_0x39f5d8),_0x4c3ae1=this['_revisionTracker']['buildRevisionData']({'revision':_0x1eda36,'from':_0x2735cb,'to':_0x5400b5});_0x4c3ae1['id']=_0x1eda36['id'];const _0x40e0c5=_0x4c3ae1['authorsIds']['map'](_0xc3e80e=>_0x4347c8['getUser'](_0xc3e80e));_0x1eda36['_update']({..._0x4c3ae1,'authors':_0x40e0c5},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x1eda36['id'],_0x4c3ae1,!0x0);}this['_revisionTracker']['_startingVersion']=_0x5400b5,(_0x1eda36['toVersion']===_0x1eda36['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x7536)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x7536),this['_revisionTracker']['_createCurrentRevision'](_0x5400b5));}const {revisions:_0x29943f,requestId:_0x1d565f}=await this['_revisionHistoryService']['reconnect'](_0x2f1049['connection'],this['_lastRequestId']);_0xc846bf&&_0x29943f['length']>0x0?_0x5d8511['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x29943f),this['_handleRevisionsUpdate'](_0x29943f,_0x1d565f),this['_revisionTracker']['sendBufferedUpdates']());};return _0x5d8511['_isConnected']?_0x4aedb2():new Promise((_0x26e8d1,_0x6e2c21)=>{_0x5d8511['once']('change:_isConnected',()=>{_0x4aedb2()['then'](_0x26e8d1)['catch'](_0x6e2c21);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x211796=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x6ef6d7=>{_0x6ef6d7['off'](),_0x211796();});});}['_getLatestVersionFromServerOperations'](){const _0x56a83e=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x3c66f0 of _0x56a83e)if('marker'!==_0x3c66f0['type']||_0x3c66f0['affectsData'])return _0x3c66f0['baseVersion']+0x1;}['_getLatestVersion'](){const _0x3073a1=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x56bce9=>{_0x3073a1['_isPendingUpdate']?_0x3073a1['once']('change:_isPendingUpdate',()=>{_0x56bce9(this['_getLatestVersionFromServerOperations']());}):_0x56bce9(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x4bca89,_0x2256e2){const _0x35540e=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x2256e2;for(const _0x287cfb of _0x4bca89){const _0xcafaff=_0x35540e['getRevision'](_0x287cfb['id']);if(_0xcafaff){if((_0x287cfb['fromVersion']||_0x287cfb['toVersion'])&&(_0x287cfb['diffData']=null),_0xcafaff===this['_revisionTracker']['currentRevision']){const _0x20097a=Math['max'](_0xcafaff['toVersion'],_0x287cfb['toVersion']),_0x1d070e=Math['max'](_0xcafaff['fromVersion'],_0x287cfb['fromVersion']);let _0x2fb86a;_0xcafaff['toVersion']===_0x287cfb['toVersion']&&_0xcafaff['fromVersion']===_0x287cfb['fromVersion']?(_0x2fb86a=!0x0,this['_preventResendingRevisionData'](_0x287cfb)):_0x287cfb['toVersion']===_0x20097a&&_0x287cfb['fromVersion']===_0x1d070e?_0x2fb86a=!0x1:(_0xcafaff['toVersion']===_0x20097a&&_0xcafaff['fromVersion']===_0x1d070e||this['_fixRevision']({'revision':_0xcafaff,'from':_0x1d070e,'to':_0x20097a}),_0x2fb86a=!0x0),_0x2fb86a&&(delete _0x287cfb['fromVersion'],delete _0x287cfb['toVersion'],delete _0x287cfb['diffData'],delete _0x287cfb['createdAt'],delete _0x287cfb['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x287cfb),this['_preventResendingRevisionData'](_0x287cfb);}else this['_revisionTracker']['addRevisionData'](_0x287cfb);}const _0x4fa6de=_0x35540e['getRevisions']();_0x4fa6de['reverse']();for(let _0x445467=0x0;_0x445467<_0x4fa6de['length']-0x1;_0x445467++){const _0x28785f=_0x4fa6de[_0x445467],_0x10efa9=_0x4fa6de[_0x445467+0x1];if(_0x28785f['fromVersion']<_0x10efa9['toVersion']){const _0x1b0a8f=_0x10efa9['toVersion'],_0x1dca85=Math['max'](_0x1b0a8f,_0x28785f['toVersion']);this['_fixRevision']({'revision':_0x28785f,'from':_0x1b0a8f,'to':_0x1dca85});}}}['_fixRevision']({revision:_0x5aa50f,from:_0x45ae27,to:_0x1f3e2d}={}){const _0x2718b4=this['editor']['plugins']['get'](_0x39f5d8),_0x3b1a47=this['_revisionTracker']['buildRevisionData']({'revision':_0x5aa50f,'from':_0x45ae27,'to':_0x1f3e2d});_0x3b1a47['authors']=_0x3b1a47['authorsIds']['map'](_0x137d2f=>_0x2718b4['getUser'](_0x137d2f)),_0x5aa50f['_update'](_0x3b1a47);}['_preventResendingRevisionData'](_0x440e35){const _0x12c53a={};_0x12c53a['id']=_0x440e35['id'];for(const _0x1d19c5 of Object['keys'](_0x440e35))'id'!==_0x1d19c5&&(_0x12c53a[_0x1d19c5]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x12c53a['id'],_0x12c53a,!0x0);}async['_fetchMissingUsers'](_0x380e80){const _0x56d690=this['editor']['plugins']['get'](_0x39f5d8),{connection:_0x5eea69}=this['editor']['plugins']['get'](WebSocketGateway),_0x5dedfa=new Set();for(const _0x1c3ed0 of _0x380e80){for(const _0x46b814 of _0x1c3ed0['authorsIds'])_0x7bdae3(_0x46b814);_0x1c3ed0['creatorId']&&_0x7bdae3(_0x1c3ed0['creatorId']);}if(0x0===_0x5dedfa['size'])return;const _0x4b8913=await _0x4e51b9['getMany'](_0x5eea69,Array['from'](_0x5dedfa));for(const _0x40c3a0 of _0x4b8913)_0x56d690['getUser'](_0x40c3a0['id'])||_0x56d690['addUser'](_0x40c3a0);function _0x7bdae3(_0xae823f){_0x56d690['getUser'](_0xae823f)||_0x5dedfa['add'](_0xae823f);}}}function it(_0x3d9527){return _0x3d9527['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x3d9527['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x3d9527['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0xa8b5d6{static get['requires'](){return[_0x312c1b,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0xf9dd42{['_collapseAt'];constructor(_0xa799ca,_0x1bb204=0x6){super(_0xa799ca);const _0x46e56b=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x1bb204,this['bind']('isHidden')['to'](this,'usersCount',_0xd2c466=>_0xd2c466<_0x1bb204),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x46e56b['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':_0x46e56b['to']('usersCount',_0xcc10e1=>'+'+(_0xcc10e1-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0xf9dd42{['items'];['keystrokes'];constructor(_0x437960){super(_0x437960);const _0x32bf87=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x2a5d42(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x32bf87['if']('hasPopup'),'aria-expanded':_0x32bf87['to']('isExpanded',_0x977ba4=>this['hasPopup']&&String(_0x977ba4)),'aria-label':_0x32bf87['to']('hasPopup',_0x4560d8=>K(_0x437960,_0x4560d8?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x32bf87['to']('hasPopup',_0x1a2496=>!!_0x1a2496&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x32bf87['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x32bf87['to'](_0x5dcae3=>{const _0x4686a3=_0x5dcae3,_0x3feb53=document['querySelector']('.ck-presence-list__dropdown-list'),_0xee7d35=document['querySelector']('.ck-balloon-panel_with-arrow');_0x3feb53?.['contains'](_0x4686a3['relatedTarget'])||_0xee7d35?.['contains'](_0x4686a3['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x356d08,_0x42e706,_0x4a7460)=>{this['element']&&(_0x4a7460?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 _0xf9dd42{['counterView'];['inlineListView'];constructor(_0x54982b,_0x5574ba=0x6){super(_0x54982b);const _0x4f0567=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x5574ba),this['inlineListView']=new PresenceInlineListView(_0x54982b),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x4ac470 of this['inlineListView']['items'])_0x4ac470['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',_0x4f0567['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0xf9dd42{['listWrapperView'];constructor(_0x3da719,_0x509d04){super(_0x3da719);const _0xcc9823=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x3da719,_0x509d04),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x3da719,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0xcc9823['to'](_0x860788=>{const _0x59702b=_0x860788,_0x4ce0e7=document['querySelector']('.ck-presence-list__list'),_0x147970=document['querySelector']('.ck-balloon-panel_with-arrow');_0x4ce0e7?.['contains'](_0x59702b['relatedTarget'])||_0x147970?.['contains'](_0x59702b['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x24c869{constructor(_0x1f8ea8,_0x13ff76){super(_0x1f8ea8);const _0x290f2f=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x13ff76?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x290f2f['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x290f2f['to']('role'),'aria-label':_0x290f2f['to']('ariaLabel'),'aria-labelledby':_0x290f2f['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x47d9e9['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x6720c1=this['element'];_0x6720c1&&(this['_isScrollable']=Math['max'](_0x6720c1['scrollHeight'],_0x6720c1['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x58b41f{['userView'];constructor(_0x1a2cb5,_0x110c3f,_0x2fbcff){super(_0x1a2cb5);const _0x14d108=this['bindTemplate'];this['userView']=new _0x2fc51c(_0x1a2cb5,_0x110c3f);const _0x113344={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x110c3f['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x110c3f['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x110c3f['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x110c3f['color']['getColorVariable'](),'--ck-user-color-alpha':_0x110c3f['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x2fbcff&&(_0x113344['tag']='button',_0x113344['on']={'click':_0x14d108['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x113344);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0xf9dd42{['userView'];['markerView'];constructor(_0x2aac38,_0x4426dc,_0x436359){super(_0x2aac38);const _0x78c43e=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x2fc51c(_0x2aac38,_0x4426dc),this['markerView']=new MarkerView(_0x2aac38,_0x4426dc);const _0x57a185=new _0x1c8043(_0x2aac38);_0x57a185['template']['tag']='span',_0x57a185['text']=_0x4426dc['name'];const _0x512b41={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x78c43e['to']('isFocusable',_0xe8f6b1=>!!_0xe8f6b1&&0x0),'aria-labelledby':_0x57a185['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x78c43e['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x78c43e['to']('hasTooltip',_0x7e2b79=>!_0x7e2b79),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x57a185]};_0x436359&&(_0x512b41['tag']='button',_0x512b41['on']={'click':_0x78c43e['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x512b41);}}class MarkerView extends _0xf9dd42{constructor(_0x5e5cb9,_0x2df329){super(_0x5e5cb9),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x2df329['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x2df329['color']['getColorVariable'](),'--ck-user-color-alpha':_0x2df329['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x1ab0c4{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x34921d){super(_0x34921d),this['context']['config']['define']('presenceList',nt);const _0x278b70=_0x34921d['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x278b70)throw new _0x71eab6('presencelist-collapseat-invalid-format',this);if(_0x278b70<0x1)throw new _0x71eab6('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x3fb7b9(),this['balloonPanelView']=new _0x6ecd60(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x551db5 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x551db5);this['listenTo'](this['_allConnectedUsers'],'add',(_0x548b31,_0x491290)=>{this['_handleUserAdd'](_0x491290);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x253027,_0x271701)=>{this['_handleUserRemove'](_0x271701);});}['_createView'](){const _0x59c4ba=this['context'],_0x13b00b=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x431e40=this['balloonPanelView'];if(!_0x412e30(_0x59c4ba['config']['get']('presenceList.container')))throw new _0x71eab6('presencelist-missing-container',this);return _0x13b00b['counterView']['bind']('usersCount')['to'](this),_0x13b00b['bind']('isCollapsed')['to'](this,'usersCount',_0x4145e3=>{const {collapseAt:_0x2e7f37}=_0x59c4ba['config']['get']('presenceList'),_0x4ca89b=_0x4145e3>=_0x2e7f37;if(_0x4ca89b&&!_0x13b00b['inlineListView']['items']['find'](_0x4a8a09=>_0x4a8a09 instanceof PresenceCounterView)){const _0x16f93f=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x16f93f&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x13b00b['inlineListView']['items']['add'](_0x13b00b['counterView']);}return _0x4ca89b||this['hideDropdown'](),_0x4ca89b;}),_0x13b00b['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x197e13=>{const _0x2142d3=_0x59c4ba['config']['get']('presenceList'),_0x4d8906=new PresenceInlineListItemView(_0x59c4ba['locale'],_0x197e13,!!_0x2142d3['onClick']);return _0x4d8906['bind']('hasTooltip')['to'](_0x13b00b,'isCollapsed',_0x338f07=>!_0x338f07),_0x4d8906['bind']('isFocusable')['to'](_0x13b00b,'isCollapsed',_0x494be1=>!_0x494be1),_0x2142d3['onClick']&&this['listenTo'](_0x4d8906,'execute',()=>{this['view']['isCollapsed']||_0x2142d3['onClick'](_0x197e13,_0x4d8906['element']);}),_0x4d8906;}),this['listenTo'](_0x13b00b['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x13b00b['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x13b00b['inlineListView']['keystrokes']['set']('Enter',(_0x2e4ed4,_0x110931)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x110931());}),_0x13b00b['render'](),_0x431e40['render'](),_0xe0e90e({'emitter':_0x13b00b,'activator':()=>_0x431e40['isVisible'],'contextElements':[_0x431e40['element'],_0x13b00b['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x59c4ba['config']['get']('presenceList.container')['appendChild'](_0x13b00b['element']),this['_bodyCollection']=new _0x5691eb(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x13b00b;}['_handleUserAdd'](_0x453d78){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x453d78['isMe'])return;const _0x283e90=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x283e90-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x8a0e4e=_0x453d78['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x453d78,_0x8a0e4e);}['_handleUserRemove'](_0x26607e){this['usersCount']--;const {collapseAt:_0x15832d}=this['context']['config']['get']('presenceList'),_0xd773a5=this['usersCount']>=_0x15832d;if(this['currentDisplayedUsers']['get'](_0x26607e['id']))this['currentDisplayedUsers']['remove'](_0x26607e['id']);else{if(_0xd773a5&&this['currentDisplayedUsers']['length']+0x1===_0x15832d-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0xd773a5?0x1:0x0)<this['usersCount']){for(const _0x1d2959 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x1d2959['id'])&&(this['currentDisplayedUsers']['add'](_0x1d2959,Math['min'](this['currentDisplayedUsers']['length']-(_0xd773a5?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0xd773a5?0x1:0x0)===_0x15832d-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x59a9ba=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x59a9ba['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x11da4b}=this['presenceDropdownView'];_0x11da4b['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x559bde=>{if(!_0x59a9ba['displayMe']&&_0x559bde['isMe'])return null;const _0x2bdf7e=new PresenceDropdownListItemView(this['context']['locale'],_0x559bde,!!_0x59a9ba['onClick']);return _0x59a9ba['onClick']&&this['listenTo'](_0x2bdf7e,'execute',()=>{_0x59a9ba['onClick'](_0x559bde,_0x2bdf7e['element']);}),_0x2bdf7e;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x11da4b['focus'](),_0x11da4b['checkIfScrollable']();const _0x4185c4=(_0x56a6c5,_0x4931da)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x4931da();};_0x11da4b['keystrokes']['set']('Esc',_0x4185c4),_0x11da4b['keystrokes']['set']('Shift+Tab',_0x4185c4),_0x11da4b['keystrokes']['set']('Tab',(_0x8be03c,_0x3ffbed)=>{!function(_0xd4ff7f){const _0x7c0032=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x54a34a=>_0x54a34a+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x20bf0e=[...document['body']['querySelectorAll'](_0x7c0032)]['filter'](_0x2087b5=>_0x2087b5===document['activeElement']||_0x2087b5['offsetWidth']+_0x2087b5['offsetHeight']>0x0)['sort']((_0x3d4796,_0x5e9f66)=>(_0x3d4796['tabIndex']||0x0)-(_0x5e9f66['tabIndex']||0x0)),_0x41a481=_0x20bf0e['indexOf'](_0xd4ff7f),_0x282597=_0x20bf0e[(_0x41a481+0x1)%_0x20bf0e['length']];_0x282597&&_0x282597['focus']();}(this['view']['element']),this['hideDropdown'](),_0x3ffbed();}),_0x11da4b['focusTracker']['add'](this['view']['element']),_0x11da4b['focusTracker']['on']('change:isFocused',(_0x57d982,_0x2f35db,_0x429798)=>{_0x429798||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 _0x1ab0c4{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};