@ckeditor/ckeditor5-real-time-collaboration 48.8.1-alpha.3 → 48.8.1-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 _0x1b9cff,Plugin as _0x25acfb,PendingActions as _0x31943e,Context as _0x35a8e1}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x3daabf,CKEditorError as _0x146074,Collection as _0x340917,global as _0x248dd9,version as _0x429b78,uid as _0x2f36df,KeystrokeHandler as _0x39c4bd}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x532a35,View as _0x1aa21a,ListView as _0x6e06a0,ListItemView as _0x9a4d5e,LabelView as _0x52e315,BalloonPanelView as _0x30020e,clickOutsideHandler as _0x1b7bff,BodyCollection as _0x31aa2b}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x5d0016,History as _0xb0b44f,NoOperation as _0x5ea7c9,InsertOperation as _0x10dd3e,MarkerOperation as _0x40006b,RootAttributeOperation as _0x411e94,transformOperationSets as _0x325962,OperationFactory as _0x44417e}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x162121}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x38b55b,WEB_SOCKET_GATEWAY_STATES as _0x4e17ce,CollaborativeEditingService as _0x2cf64e,User as _0x3383d3,CommentsService as _0x476c1f,TrackChangesService as _0x277557,RevisionHistoryService as _0x524689,EditorService as _0x548b3a}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x3e9224,UserView as _0xb6d3d9}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x41afd4}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x27f4c9,TrackChanges as _0x22209a}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x33588d,Comments as _0x257b99,CommentsEditing as _0x58c2be}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x547c0a}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0xecfd2a}from'es-toolkit/compat';class WebSocketGateway extends _0x1b9cff{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
- ((()=>_0x38b55b)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x162121,_0x532a35];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x14bba5){super(_0x14bba5),this['set']('state',_0x4e17ce['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x3daabf())();}['init'](){const _0x4d14d8=this['context'],_0x429829=_0x4d14d8['plugins']['get'](_0x162121),_0x2ac04c=_0x4d14d8['plugins']['get'](_0x532a35);if(!_0x429829['token'])throw new _0x146074('websocketgateway-missing-token',this);if(!_0x429829['webSocketUrl'])throw new _0x146074('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'](_0x429829['token'],_0x429829['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x391952=>{if(this['connection']=_0x391952,this['bind']('state')['to'](_0x391952,'state',this,'_isBrowserOffline',(_0x361914,_0x2f4a41)=>('connected'!==_0x361914&&(this['_shouldPluginsReconnect']=!0x0),_0x2f4a41||_0x361914!==_0x4e17ce['CONNECTED']?_0x4e17ce['DISCONNECTED']:this['state']==_0x4e17ce['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x4e17ce['CONNECTING']):_0x4e17ce['CONNECTED'])),this['connection']['on']('error',(_0x2855ec,_0x1c0ff7)=>{if('limitExceeded'!==_0x1c0ff7['code'])throw console['error'](_0x1c0ff7),new _0x146074('cloudservices-init',null,{'originalError':_0x1c0ff7});_0x2ac04c['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'});}),!_0x391952['me'])return new Promise(_0x299c39=>_0x391952['on']('change:me',_0x299c39));})['catch'](_0xa2723b=>{throw console['error'](_0xa2723b),new _0x146074('cloudservices-init',null,{'originalError':_0xa2723b});});}['addToReconnectionStack'](_0x1ea049){if('function'!=typeof _0x1ea049['reconnect'])throw new _0x146074('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x1ea049))throw new _0x146074('websocketgateway-plugin-already-registered',this,{'name':_0x1ea049['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x1ea049);}['removeFromReconnectionStack'](_0x5e8d8c){this['_reconnectionStack']['delete'](_0x5e8d8c);}['isInReconnectionStack'](_0x195352){return this['_reconnectionStack']['has'](_0x195352);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x4e12cf=>_0x4e12cf['reconnect']())))['then'](()=>this['state']=_0x4e17ce['CONNECTED'])['catch'](_0x75db37=>{throw console['error'](_0x75db37),new _0x146074('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x4e17ce['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x1b9cff{['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,_0x3e9224];}constructor(_0x1e08b9){super(_0x1e08b9),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x340917(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x3e9224);}['init'](){const _0x2ca04c=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x2ca04c,'change:state',(_0x1ec655,_0x4ed08a,_0x18a927)=>{if('connected'!==_0x18a927)this['channelSessions']['forEach'](_0x372c72=>_0x372c72['clear']()),this['channelConnectedUsers']['forEach'](_0x417c1a=>_0x417c1a['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x17c5b8,_0x353fcf]of this['_registeredSessions'])for(const _0x1a5374 of _0x353fcf)this['_handleSessionAdd'](_0x17c5b8,_0x1a5374);}}),this['_createUser'](_0x2ca04c['connection']['me'],!0x0);}['register'](_0x577280,_0xf6e01){if(this['_registeredSessions']['has'](_0x577280))throw new _0x146074('sessions-register-already-registered',null,{'channelId':_0x577280});this['_registeredSessions']['set'](_0x577280,_0xf6e01),this['channelSessions']['set'](_0x577280,new _0x340917()),this['channelConnectedUsers']['set'](_0x577280,new _0x340917()),this['listenTo'](_0xf6e01,'add',(_0x53a7e0,_0xcb8861)=>this['_handleSessionAdd'](_0x577280,_0xcb8861)),this['listenTo'](_0xf6e01,'remove',(_0x4afd8a,_0x1b2703)=>this['_handleSessionRemove'](_0x577280,_0x1b2703));for(const _0xc0262c of _0xf6e01)this['_handleSessionAdd'](_0x577280,_0xc0262c);}['unregister'](_0x869e36){if(!this['_registeredSessions']['has'](_0x869e36))throw new _0x146074('sessions-unregister-not-exist',null,{'channelId':_0x869e36});const _0xb493df=this['_registeredSessions']['get'](_0x869e36);this['stopListening'](_0xb493df);for(const _0x201a20 of _0xb493df)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x869e36,_0x201a20);this['_registeredSessions']['delete'](_0x869e36),this['channelSessions']['delete'](_0x869e36),this['channelConnectedUsers']['delete'](_0x869e36);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x2d6edc){for(const _0x130710 of this['channelSessions']['values']())for(const _0x598c0d of _0x130710)if(_0x598c0d['id']===_0x2d6edc)return _0x598c0d['user'];}['getUserSessions'](_0x766f00,_0x354b28){const _0x18bed8=_0x354b28?[this['channelSessions']['get'](_0x354b28)]:this['channelSessions']['values'](),_0x39d9bf=new Set();for(const _0x5335e1 of _0x18bed8)for(const _0x2bb8e3 of _0x5335e1)_0x2bb8e3['user']['id']===_0x766f00['id']&&_0x39d9bf['add'](_0x2bb8e3['id']);return _0x39d9bf;}['getUserRole'](_0x1b9de6){for(const _0x2ef450 of this['channelSessions']['values']())for(const _0x38f0bd of _0x2ef450)if(_0x38f0bd['user']===_0x1b9de6)return _0x38f0bd['role'];}['_handleSessionAdd'](_0x179593,_0x1d4d8a){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x1429cc=_0x1d4d8a['user'],_0x23063d=this['_users']['getUser'](_0x1429cc['id'])||this['_createUser'](_0x1429cc),_0x24fc96=Object['assign']({},_0x1d4d8a,{'user':_0x23063d});if(this['channelSessions']['get'](_0x179593)['add'](_0x24fc96),!_0x1429cc['hiddenInPresenceList']){const _0x2e0f46=this['channelConnectedUsers']['get'](_0x179593);_0x2e0f46['has'](_0x23063d['id'])||_0x2e0f46['add'](_0x23063d),this['allConnectedUsers']['has'](_0x23063d['id'])||_0x1429cc['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x23063d,_0x23063d['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x179593,{'channelId':_0x179593,'session':_0x24fc96});}['_handleSessionRemove'](_0x2e49af,_0x230126){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x25068f=this['channelConnectedUsers']['get'](_0x2e49af),_0x3bce15=_0x230126['user'];_0x3bce15['id']&&(this['channelSessions']['get'](_0x2e49af)['remove'](_0x230126['id']),_0x25068f['has'](_0x3bce15['id'])&&!this['getUserSessions'](_0x3bce15,_0x2e49af)['size']&&_0x25068f['remove'](_0x3bce15['id']),this['allConnectedUsers']['get'](_0x3bce15['id'])&&!this['getUserSessions'](_0x3bce15)['size']&&this['allConnectedUsers']['remove'](_0x3bce15['id']));}['_createUser'](_0x4fa32d,_0x3c9496){const _0x4dff0f=this['_users']['addUser'](_0x4fa32d);return _0x3c9496&&this['_users']['defineMe'](_0x4fa32d['id']),_0x4dff0f['orderNumber']=this['_uniqueUsersCount']++,_0x4dff0f;}}class UserMarkers extends _0x25acfb{['_domEmitter']=new(_0x3daabf())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x1c744e=this['editor'],_0x17f8ec=_0x1c744e['plugins']['get'](Sessions);_0x1c744e['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x110bf1,{writer:_0x4fca7b})=>function(_0x435555,_0x22e618,_0x5590b8,_0x56a491){const _0x1308e8=_0x435555['markerName']['split'](':')[0x2],_0x12cc05=_0x5590b8['getUserBySessionId'](_0x1308e8);if(!_0x12cc05||_0x1308e8===_0x5590b8['mySessionId'])return;if(!_0x56a491['model']['schema']['checkChild'](_0x435555['markerRange']['start'],'$text'))return;const _0x191944={'class':'ck-user__marker\x20'+_0x12cc05['color']['getMarkerClass'](),'style':Y(_0x12cc05),'data-name':_0x12cc05['name'],'data-session-id':_0x1308e8},_0x1250de=_0x56a491['model']['markers']['get'](_0x435555['markerName']),_0x9eb81e=_0x1250de['getStart'](),_0x251116=_0x9eb81e['nodeAfter'],_0x34f2b9=_0x56a491['model']['schema'];if(_0x251116&&_0x34f2b9['isObject'](_0x251116)&&_0x34f2b9['isInline'](_0x251116)&&!_0x56a491['model']['markers']['get']('user:range:'+_0x1308e8)['getRange']()['isCollapsed'])return;const _0x4cd3f3=_0x9eb81e['parent'];return _0x56a491['model']['schema']['isLimit'](_0x4cd3f3)&&!_0x56a491['model']['hasContent'](_0x4cd3f3)&&(_0x191944['contenteditable']=!0x1),function(_0x50d7fc,_0x213b72,_0xea48ec){const _0x588475=_0x50d7fc['createUIElement']('span',_0x213b72);return _0x50d7fc['setCustomProperty']('userPositionMarker',!0x0,_0x588475),_0x588475['render']=function(_0x17ae13){const _0x56fa49=this['toDomElement'](_0x17ae13),_0x540e92=document['createElement']('span');return _0x540e92['classList']['add']('ck-user__marker-tooltip'),_0x540e92['setAttribute']('contenteditable','false'),_0x540e92['setAttribute']('spellcheck','false'),_0x540e92['textContent']=_0xea48ec['name'],_0x56fa49['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x540e92['outerHTML']+'⁠',_0x56fa49['addEventListener']('mouseenter',()=>{_0x56fa49['classList']['add']('ck-user__marker_hovered');}),_0x56fa49['addEventListener']('mouseleave',()=>{_0x56fa49['classList']['remove']('ck-user__marker_hovered');}),_0x56fa49;},_0x588475['isSimilar']=function(_0xbbe249){return!(!this['getCustomProperty']('userPositionMarker')||!_0xbbe249['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0xbbe249['getAttribute']('data-session-id'));},_0x588475;}(_0x22e618,_0x191944,_0x12cc05);}(_0x110bf1,_0x4fca7b,_0x17f8ec,_0x1c744e)}),_0x1c744e['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x2fcd16=>function(_0x3a8068,_0x1cc68c){const _0x5a3777=_0x3a8068['markerName']['split'](':')[0x2];if(_0x5a3777===_0x1cc68c['mySessionId'])return null;const _0x41dbf7=_0x1cc68c['getUserBySessionId'](_0x5a3777);if(!_0x41dbf7)return{'id':_0x5a3777,'classes':[]};return{'id':_0x5a3777,'classes':['ck-user__selection',_0x41dbf7['color']['getSelectionClass']()],'attributes':{'style':Y(_0x41dbf7),'data-session-id':_0x5a3777},'priority':0x7d0+_0x41dbf7['orderNumber']};}(_0x2fcd16,_0x17f8ec)}),function(_0x55468f){const _0x35fd94=_0x55468f['model'],_0x4192e2=new Map(),_0x1ebad6=_0x55468f['plugins']['get'](Sessions);_0x35fd94['markers']['on']('update:user:range',(_0x5038fb,_0x2ed3a4,_0x51d79f,_0xc4419e)=>{if(!_0xc4419e&&_0x4192e2['get'](_0x2ed3a4['name']))return _0x4192e2['get'](_0x2ed3a4['name'])['detach'](),void _0x4192e2['delete'](_0x2ed3a4['name']);const _0x47d06e=_0x2ed3a4['name']['split'](':')[0x2];if(_0x47d06e===_0x1ebad6['mySessionId'])return;const _0x36d155='user:position:'+_0x47d06e;_0x35fd94['markers']['has'](_0x36d155)&&_0x55468f['editing']['reconvertMarker'](_0x36d155),_0x2ed3a4['on']('change:range',(_0x3a5cb4,_0xdea481,_0x25d880)=>{if('$graveyard'!=_0xdea481['root']['rootName']&&'$graveyard'==_0x2ed3a4['getRange']()['root']['rootName']&&!_0x4192e2['has'](_0x2ed3a4['name'])){const _0x269c14=_0x35fd94['schema']['getNearestSelectionRange'](_0x25d880['deletionPosition']);if(_0x269c14){const _0x17dac3=_0x5d0016['fromRange'](_0x269c14);_0x4192e2['set'](_0x2ed3a4['name'],_0x17dac3),_0x17dac3['on']('change:range',(_0x58f15e,_0x4f0b0c,_0x22a73c)=>{if('$graveyard'==_0x17dac3['root']['rootName']){const _0x1cf256=_0x35fd94['schema']['getNearestSelectionRange'](_0x22a73c['deletionPosition']);_0x1cf256?(_0x17dac3['start']=_0x1cf256['start'],_0x17dac3['end']=_0x1cf256['end']):(_0x4192e2['delete'](_0x2ed3a4['name']),_0x17dac3['detach']());}});}}});}),_0x35fd94['document']['on']('change',()=>{_0x4192e2['size']>0x0&&_0x35fd94['enqueueChange']({'isUndoable':!0x1},_0x3a393c=>{for(const [_0x2e22ff,_0x8e7abd]of _0x4192e2)'$graveyard'==_0x35fd94['markers']['get'](_0x2e22ff)['getRange']()['root']['rootName']&&(z(_0x2e22ff['split'](':')[0x2],_0x8e7abd['toRange'](),_0x35fd94,_0x3a393c),_0x8e7abd['detach']());_0x4192e2['clear']();});});}(_0x1c744e),this['_domEmitter']['listenTo'](_0x248dd9['document'],'keydown',(_0x5db12d,{key:_0x1d2e63})=>{'Escape'===_0x1d2e63&&function(_0x394511){_0x394511['editing']['view']['change'](_0x327a79=>{for(const _0x5c2e1c of _0x394511['model']['markers']){if(!_0x5c2e1c['name']['startsWith']('user:position'))continue;const _0x296c41=_0x394511['editing']['mapper']['markerNameToElements'](_0x5c2e1c['name']);if(_0x296c41){for(const _0x58150b of _0x296c41)_0x327a79['removeClass']('ck-user__marker_hovered',_0x58150b);}}});}(_0x1c744e);},{'useCapture':!0x0});}['afterInit'](){const _0x3c7656=this['editor'],_0x468305=_0x3c7656['commands']['get']('undo');_0x468305&&_0x3c7656['model']['on']('applyOperation',(_0x43fcf0,_0x16dd51)=>{const _0x305a65=_0x16dd51[0x0];if(!_0x305a65['isDocumentOperation'])return;if('marker'!=_0x305a65['type']||!_0x305a65['name']['startsWith']('user:'))return;const _0x466ec2=_0x305a65['batch'];_0x468305['_createdBatches']['has'](_0x466ec2)&&(_0x305a65['newRange']=_0x305a65['oldRange']?_0x3c7656['model']['createRange'](_0x305a65['oldRange']['start'],_0x305a65['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x1c3d2d=this['editor'],_0x5d6ef7=_0x1c3d2d['model']['document'],_0x589626=_0x1c3d2d['plugins']['get'](Sessions);_0x1c3d2d['model']['enqueueChange']({'isUndoable':!0x1},_0x17bdc=>{const _0x49fa24='user:range:'+_0x589626['mySessionId'],_0x25c6d3='user:position:'+_0x589626['mySessionId'],_0x29de2a=_0x1c3d2d['model']['markers']['has'](_0x49fa24);_0x1c3d2d['editing']['view']['hasDomSelection']?z(_0x589626['mySessionId'],_0x5d6ef7['selection']['getFirstRange'](),_0x1c3d2d['model'],_0x17bdc):_0x29de2a&&(_0x17bdc['removeMarker'](_0x49fa24),_0x17bdc['removeMarker'](_0x25c6d3));});}}function z(_0x3c0f6e,_0x20112b,_0x1b4e78,_0x30fa75){const _0x9d9b5d='user:range:'+_0x3c0f6e,_0x43baa1='user:position:'+_0x3c0f6e,_0x32ce0e=_0x20112b['getContainedElement']();let _0x2e5be0=_0x20112b['start'];if(_0x32ce0e&&_0x32ce0e['is']('element','tableCell')){const _0x54faf1=function(_0x47fc28,_0xabfdf7){for(const _0x165e8d of _0x47fc28['getPositions']())if(_0xabfdf7['schema']['checkChild'](_0x165e8d,'$text'))return _0x165e8d;}(_0x20112b,_0x1b4e78);_0x54faf1&&(_0x2e5be0=_0x54faf1,_0x20112b=_0x30fa75['createRange'](_0x2e5be0));}const _0x37a96d=_0x30fa75['createRange'](_0x2e5be0);_0x1b4e78['markers']['has'](_0x9d9b5d)?(_0x30fa75['updateMarker'](_0x9d9b5d,{'range':_0x20112b}),_0x30fa75['updateMarker'](_0x43baa1,{'range':_0x37a96d})):(_0x30fa75['addMarker'](_0x9d9b5d,{'range':_0x20112b,'usingOperation':!0x0}),_0x30fa75['addMarker'](_0x43baa1,{'range':_0x37a96d,'usingOperation':!0x0}));}function Y(_0x1160b1){return'--ck-user-color:'+_0x1160b1['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x1160b1['color']['getColorAlphaVariable']()+';';}function K(_0x524bec,_0x3ed2cd,_0x25243d){const _0x142560=_0x524bec['t'],t=_0x524bec['t'];switch(_0x3ed2cd){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 _0x142560({'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'},_0x25243d);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x25acfb{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
- ((()=>_0x2cf64e)());['_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,_0x31943e,_0x3e9224,_0x532a35];}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 _0x3409a7=this['serverHistory']['getOperations']();for(let _0x3ed423=_0x3409a7['length']-0x1;_0x3ed423>=0x0;_0x3ed423--){const _0x1928ee=_0x3409a7[_0x3ed423];if(!this['_disconnectionOperations']['has'](_0x1928ee))return _0x1928ee['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x1c90e7){if(super(_0x1c90e7),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0xb0b44f(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x146074('collaboration-missing-channelid',this);const _0x456fc5=_0x1c90e7['config']['get']('cloudServices.bundleVersion')||_0x429b78;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x456fc5,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x41afd4(),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 _0x295fca=this['editor'],_0x29e352=_0x295fca['plugins']['get'](_0x3e9224),_0x6feeac=_0x295fca['plugins']['get'](WebSocketGateway);this['listenTo'](_0x29e352,'getOperationAuthor',(_0x2fdad6,_0x540be5)=>{const _0x5a0498=_0x540be5[0x0];_0x5a0498['_authorId']&&(_0x2fdad6['return']=_0x29e352['getUser'](_0x5a0498['_authorId']),_0x2fdad6['stop']()),null===_0x5a0498['_authorId']&&(_0x2fdad6['return']=null,_0x2fdad6['stop']());},{'priority':'high'}),this['listenTo'](_0x295fca['model']['document']['selection'],'change:range',(_0x46da0d,_0x2598c1)=>{_0x2598c1['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x295fca['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x295fca['model']['on']('applyOperation',(_0x4fabd1,_0x593575)=>{const _0x35c339=_0x593575[0x0];_0x35c339['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x35c339),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x6feeac,'state',this,'_hasSynchronizationProblem',(_0x30e6ff,_0x1aa68c)=>'connected'===_0x30e6ff&&!_0x1aa68c),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x295fca['disableReadOnlyMode']('rtc-offline'):_0x295fca['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x295fca['disableReadOnlyMode']('rtc-offline'):_0x295fca['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x5db02f=this['editor']['plugins']['get'](Sessions),_0x4a5c88=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x5db02f['unregister'](this['_channelId']);const _0x3ca5cc=await this['_service']['reconnect'](_0x4a5c88['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x3ca5cc)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x1142e3=await this['_service']['getConnectedSessions']();_0x5db02f['register'](this['_channelId'],_0x1142e3),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x2abfe7){if(function(_0x2c399e){return'404'===_0x2c399e['code'];}(_0x2abfe7)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0xfcd4f){return'409'===_0xfcd4f['code'];}(_0x2abfe7)){const _0x178c3f=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'](_0x178c3f);}else{if(!(_0x2abfe7 instanceof ReconnectionError))throw _0x2abfe7;this['_handleReconnectionError']();}}}}['destroy'](){const _0x3d6ac9=this['editor']['plugins']['get'](WebSocketGateway),_0x46d7aa=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x46d7aa['channelSessions']['has'](this['_channelId'])&&_0x46d7aa['unregister'](this['_channelId']),_0x3d6ac9['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x5e7fa5){if(this['sessionId']!==_0x5e7fa5['sessionId']&&this['_lastSyncedOperationId']!==_0x5e7fa5['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x5e7fa5['sessionId'],this['_handleServerResponse']([],{..._0x5e7fa5,'wereChangesApplied':!0x1,'data':_0x5e7fa5['data']},'reconnect');}async['_connectService'](_0x222de6,_0x552094=!0x1){const {connection:_0x1b9b90}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x1b9b90,this['_channelId'])['then'](_0x330465=>this['_initSessionsHandling'](_0x330465))['catch'](_0x5c5986=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x5c5986);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x23e7f0,_0x122fe0)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x122fe0);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x3761d7=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x222de6);this['_isPendingUpdate']=!0x0;const _0x3bb3d8=await this['_service']['connect'](_0x1b9b90,this['_compressOperations'](_0x222de6),_0x3761d7);if(this['sessionId']=_0x3bb3d8['sessionId'],_0x552094){if(!_0x3bb3d8['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x3bb3d8['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x222de6,_0x3bb3d8,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x3bb3d8,_0x222de6);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x35024d=this['editor']['plugins']['get'](Sessions),_0x534157=this['editor']['plugins']['get'](UserMarkers),_0x4aa9b2=_0x35024d['channelSessions']['get'](this['_channelId']);_0x4aa9b2&&_0x4aa9b2['length']>0x1?_0x534157['createUserMarkerOperations']():this['listenTo'](_0x35024d,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x35024d['channelSessions']['get'](this['_channelId'])['length']&&_0x534157['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x129e92,_0x530153,_0x95609,_0x145836){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x530153){const _0x1fcc73=this['_decompressOperations'](_0x95609,_0x145836);await this['_fetchMissingUsers'](_0x1fcc73),this['_handleExternalOperations'](_0x1fcc73,_0x530153,_0x95609['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x564161}=this['editor'];let _0x4ece56;try{_0x4ece56=await this['_service']['getDocumentDetails']();}catch{const _0x964b98=K(_0x564161,'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'](_0x964b98);}const _0x526cf9=_0x4ece56['currentDocumentSession']||_0x4ece56['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x526cf9['lastOperationId']){const _0x12a8ea=K(_0x564161,'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'](_0x12a8ea);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0xfefdf1){const _0x256c47=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x256c47,'sessionAdd:'+this['_channelId'],(_0x155916,{session:_0x58fc9f})=>{if(_0x58fc9f['id']===_0x256c47['mySessionId']){_0x155916['off']();const _0x2c68c2=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x2d1049=_0x58fc9f['permissions'];_0x2c68c2&&_0x2c68c2['isEnabled']&&(_0x2d1049=_0x2d1049['filter'](_0x1cb5ba=>'document:write'!==_0x1cb5ba)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x2d1049,this['_channelId']);}}),_0x256c47['register'](this['_channelId'],_0xfefdf1);}['_initThrowingOnDataSet'](){const _0x2ef210=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x31ca1c)=>{if(!_0x31ca1c[_0x31ca1c['length']-0x1]['suppressErrorInCollaboration'])throw new _0x146074('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x2ef210['apply'](this['editor']['data'],_0x31ca1c);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x3bca1d,[_0x409118])=>{if(this['_document']['version'])throw new _0x146074('realtimecollaborationclient-init-document-already-initialized',this);_0x3bca1d['stop'](),this['_setPendingAction']();const _0x23ea78=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x1fbf61])=>!_0x1fbf61['lazyLoad'])['map'](([_0x2469e4,_0x13d6b4])=>[_0x2469e4,_0x13d6b4['modelAttributes']||{}])),_0x2e2b15=this['_getOperationsFromInitData'](_0x409118,_0x23ea78);0x0==_0x2e2b15['length']&&_0x2e2b15['push'](new _0x5ea7c9(0x0)),_0x3bca1d['return']=this['_connectService'](_0x2e2b15)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x28956d=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x28956d))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x57bf82,[_0x5e66b2,_0x2d0a69])=>{_0x57bf82['stop']();const _0x5cac3d=this['editor']['model']['document']['getRoot'](_0x5e66b2);if(!this['_knownRootNames']['has'](_0x5e66b2)){const _0x110af5=_0x2d0a69&&_0x2d0a69['data']?_0x2d0a69['data']:'',_0x26c064=_0x2d0a69&&_0x2d0a69['attributes']?_0x2d0a69['attributes']:{};await this['_loadRoot'](_0x5e66b2,_0x110af5,_0x26c064);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x5cac3d['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x5cac3d);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x17bb91){const _0x41f9a9=this['editor']['plugins']['get'](_0x3e9224),{connection:_0x52163a}=this['editor']['plugins']['get'](WebSocketGateway),_0x2ce6f6=new Set();for(const _0x7fa9 of _0x17bb91){const _0x2db2e1=_0x7fa9['_authorId'];_0x2db2e1&&!_0x41f9a9['getUser'](_0x2db2e1)&&_0x2ce6f6['add'](_0x2db2e1);}if(0x0===_0x2ce6f6['size'])return;const _0x554c2e=await _0x3383d3['getMany'](_0x52163a,Array['from'](_0x2ce6f6));for(const _0x230bab of _0x554c2e)_0x41f9a9['getUser'](_0x230bab['id'])||_0x41f9a9['addUser'](_0x230bab);}['_getOperationsFromInitData'](_0x3349fa,_0x496afa={}){const _0x4a543a=this['editor']['model'],_0x4ece16=[];let _0x1375af=0x0;const _0x114998='string'==typeof _0x3349fa?{'main':_0x3349fa}:_0x3349fa;for(const _0x3df09f of Object['keys'](_0x114998)){if(!this['_document']['roots']['has'](_0x3df09f))throw new _0x146074('realtimecollaborationclient-init-non-existent-root',this);const _0x5d49e5=this['editor']['data']['parse'](_0x114998[_0x3df09f]),_0x53f242=this['_document']['getRoot'](_0x3df09f),_0x4b9802=new _0x10dd3e(_0x4a543a['createPositionAt'](_0x53f242,0x0),_0x5d49e5,_0x1375af++);_0x4ece16['push'](_0x4b9802);for(const [_0x482cd1,_0x2be80d]of _0x5d49e5['markers']){const _0x3c3b0a=_0x4a543a['createRange'](_0x4a543a['createPositionFromPath'](_0x53f242,_0x2be80d['start']['path']['slice']()),_0x4a543a['createPositionFromPath'](_0x53f242,_0x2be80d['end']['path']['slice']())),_0x123a05=new _0x40006b(_0x482cd1,null,_0x3c3b0a,_0x4a543a['markers'],!0x0,_0x1375af++);_0x4ece16['push'](_0x123a05);}}if(_0x496afa)for(const [_0x3d3696,_0x17b135]of Object['entries'](_0x496afa)){const _0x8af1cd=_0x4a543a['document']['getRoot'](_0x3d3696);if(!_0x8af1cd)throw new _0x146074('multi-root-editor-root-attributes-no-root',null);for(const [_0x1fa0ff,_0x5efa23]of Object['entries'](_0x17b135))if(null!==_0x5efa23){const _0x4bcb46=new _0x411e94(_0x8af1cd,_0x1fa0ff,null,_0x5efa23,_0x1375af++);_0x4ece16['push'](_0x4bcb46);}}return _0x4ece16;}async['_loadRoot'](_0x38e74c,_0x39c8b3,_0x48245b){this['_getOperationsFromInitData']({[_0x38e74c]:_0x39c8b3},{[_0x38e74c]:_0x48245b})['forEach']((_0x14f1f1,_0x457912)=>{_0x14f1f1['baseVersion']=this['_document']['version']+_0x457912,_0x14f1f1['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x14f1f1);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x3683d0,_0x2ff763){let _0x652b1b;this['_offset']=_0x3683d0['offset'];const _0x313ff0=_0x3683d0['wereChangesApplied']&&!_0x3683d0['initData'],_0x374655=_0x313ff0?0x0:_0x3683d0['data']['baseVersion'];if(_0x2ff763['forEach'](_0x248a23=>{_0x248a23['_isInit']=!0x0,_0x248a23['createdAt']=_0x3683d0['sessionCreatedAt'],_0x248a23['_authorId']=null;}),_0x313ff0)_0x652b1b=_0x2ff763,this['_applyOperationsSet'](_0x652b1b,_0x313ff0);else{if(_0x3683d0['initData']){const _0x3726cf=this['_getOperationsFromInitData'](_0x3683d0['initData']);this['_document']['history']['version']=-_0x3726cf['length'],_0x3726cf['forEach'](_0xf3ca1f=>{_0xf3ca1f['baseVersion']-=_0x3726cf['length'],_0xf3ca1f['createdAt']=_0x3683d0['sessionCreatedAt'],_0xf3ca1f['_isInit']=!0x0,_0xf3ca1f['_authorId']=null;}),this['_applyOperationsSet'](_0x3726cf,!0x0),this['serverHistory']['version']=-_0x3726cf['length']+this['_offset'],this['_updateServerHistory'](_0x3726cf);}this['_document']['history']['version']=_0x374655,_0x652b1b=this['_decompressOperations'](_0x3683d0['data'],_0x3683d0['metadata']),await this['_fetchMissingUsers'](_0x652b1b),this['_applyOperationsSet'](_0x652b1b,_0x313ff0);}_0x3683d0['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x652b1b,_0x3683d0['lastOperationId']),this['_lastSyncedOperationId']=_0x3683d0['lastOperationId']),this['serverHistory']['version']=_0x374655+this['_offset'],this['_updateServerHistory'](_0x652b1b),_0x2ff763['filter'](_0x4901e9=>{const _0xa36c7a=this['_getAffectedRoot'](_0x4901e9);return _0xa36c7a&&!this['_knownRootNames']['has'](_0xa36c7a);})['forEach']((_0x163b4a,_0x52fd9b)=>{_0x163b4a['baseVersion']=this['_document']['version']+_0x52fd9b,this['_saveOperationInBuffer'](_0x163b4a);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x1707ec,_0x41bb27){const _0x3051e3=_0x41bb27&&_0x41bb27['message'];if(_0x3051e3&&_0x3051e3['startsWith']('realtimecollaborationclient'))throw _0x41bb27;const _0x44c659=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x44c659['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x146074(_0x1707ec,this['editor'],_0x3051e3?{'originalError':_0x3051e3}:void 0x0);}['_saveOperationInBuffer'](_0x545d50){this['_knownOperations']['has'](_0x545d50)||(this['_knownOperations']['add'](_0x545d50),this['_bufferedOperations']['push'](_0x545d50),this['_pendingAction']||'marker'==_0x545d50['type']&&!_0x545d50['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x153bcf=!0x1){!_0x153bcf&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x34c599=>{_0x34c599&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x525539=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x44cce5){return _0x44cce5['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x44cce5['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x44cce5['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x525539)||this['_crash'](_0x525539['message'],_0x525539);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x5a89e8=>{this['on']('change:_isPendingUpdate',()=>{_0x5a89e8();});});}async['_sendBufferedOperations'](){const _0x79cb55=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x79cb55['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x4e6a2a=[...this['_bufferedOperations']];for(const _0x28b098 of _0x4e6a2a)_0x28b098['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x28b098);const _0x4237e8=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x4e6a2a),_0x5b06a1=J++,_0x1e51ff=this['_compressOperations'](_0x4e6a2a),_0x42196b=await this['_service']['sendOperations'](_0x1e51ff,_0x1e51ff['baseVersion'],_0x4237e8);try{return await this['_handleServerResponse'](_0x4e6a2a,_0x42196b,_0x5b06a1);}catch(_0x20d090){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x20d090);}}async['_handleServerResponse'](_0x1d9651,_0x2871c0,_0x30f470){if('error'in _0x2871c0)throw _0x2871c0['error'];let _0x1f37f3=!0x1;if(_0x2871c0['wereChangesApplied']){_0x2871c0['lastOperationId']&&(this['_lastSyncedOperationId']=_0x2871c0['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x4b26ce=>!_0x1d9651['includes'](_0x4b26ce));for(const _0x2b2643 of _0x1d9651)_0x2b2643['createdAt']='lastOperationAcceptedAt'in _0x2871c0&&_0x2871c0['lastOperationAcceptedAt']||void 0x0;Q(_0x1d9651,_0x2871c0['version']-_0x1d9651['length']),this['_updateServerHistory'](_0x1d9651);const _0x205575=_0x1d9651['filter'](_0x1eee4b=>{if(!_0x1eee4b['_isInit'])return!0x1;const _0x494dfb=this['_getAffectedRoot'](_0x1eee4b);return _0x494dfb&&!this['_knownRootNames']['has'](_0x494dfb);});Q(_0x205575,this['_document']['version']),this['_applyOperationsSet'](_0x205575),_0x1f37f3=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x476070=this['_decompressOperations'](_0x2871c0['data'],_0x2871c0['metadata'])['filter'](_0xac0aac=>_0xac0aac['baseVersion']>=this['_lastServerVersion']);_0x476070['forEach'](_0x2c790c=>this['_addKnownRoot'](_0x2c790c)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x299d69=>!_0x299d69['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x299d69))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x476070),_0x1f37f3=this['_handleExternalOperations'](_0x476070,_0x2871c0['version'],_0x2871c0['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x1f37f3?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x1f7d49,_0x1008b3,_0x29b543){try{const _0x475489={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x21c66e,operationsB:_0x491164,originalOperations:_0x46fab3}=_0x325962(_0x1f7d49,this['_bufferedOperations'],_0x475489);Q(_0x21c66e,this['_document']['version']),Q(_0x491164,_0x1008b3);for(const _0x291c98 of _0x21c66e){const _0x4d9a70=_0x46fab3['get'](_0x291c98);_0x291c98['_authorId']=_0x4d9a70?_0x4d9a70['_authorId']:null;}_0x29b543&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x1f7d49,_0x29b543),this['_lastSyncedOperationId']=_0x29b543),this['_bufferedOperations']=[..._0x491164],this['_applyOperationsSet'](_0x21c66e),this['_updateServerHistory'](_0x1f7d49);}catch(_0x3295c1){return console['error'](_0x3295c1),!0x1;}return!0x0;}['_applyOperationsSet'](_0x22d622,_0x36e994=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x55d6b5=>{for(const _0x2a0917 of _0x22d622)this['_knownOperations']['add'](_0x2a0917),this['_addKnownRoot'](_0x2a0917),_0x55d6b5['batch']['addOperation'](_0x2a0917),this['editor']['model']['applyOperation'](_0x2a0917);});}['_addKnownRoot'](_0x35de3f){const _0x4edd40=this['_getAffectedRoot'](_0x35de3f);_0x4edd40&&this['_knownRootNames']['add'](_0x4edd40);}['_getAffectedRoot'](_0xb3351f){let _0x2ae70c,_0x3c70b0;switch(_0xb3351f['type']){case'insert':_0x2ae70c=_0xb3351f['position']['root'];break;case'marker':if(_0x3c70b0=_0xb3351f['newRange'],!_0x3c70b0)return null;_0x2ae70c=_0x3c70b0['root'];break;case'addRootAttribute':_0x2ae70c=_0xb3351f['root'];break;case'addRoot':_0x2ae70c=_0xb3351f['affectedSelectable'];break;case'move':_0x2ae70c=_0xb3351f['targetPosition']['root'];break;default:return null;}return _0x2ae70c['rootName'];}['_updateServerHistory'](_0x2ba994){_0x2ba994['forEach'](_0x474aa2=>{const _0x1d2930=_0x474aa2['clone']();_0x1d2930['_authorId']=_0x474aa2['_authorId'],_0x1d2930['_isInit']=!!_0x474aa2['_isInit'],_0x1d2930['createdAt']=_0x474aa2['createdAt'],_0x1d2930['baseVersion']+=this['_offset'],_0x474aa2['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x1d2930),this['serverHistory']['addOperation'](_0x1d2930);});}['_handleReconnectionError'](_0x690d1f){const _0x3a9d53=this['editor']['plugins']['get']('Notification'),_0x4a30e4=this['editor']['locale'];_0x690d1f||(_0x690d1f=K(_0x4a30e4,'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.')),_0x3a9d53['showWarning'](_0x690d1f,{'title':K(_0x4a30e4,'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'](_0x31943e)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x31943e)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x296904){const _0x5eef7f=_0x296904['map'](_0x2bbd42=>_0x2bbd42['toJSON']());return this['_compressor']['compress'](_0x5eef7f);}['_decompressOperations'](_0x50aa8f,_0x51bcb3){return this['_compressor']['decompress'](_0x50aa8f)['map']((_0x46893a,_0x41f355)=>{const _0x5e7f98='init'==_0x51bcb3[_0x41f355]['type'];if('InsertOperation'==_0x46893a['__className']){const _0x43d373=_0x46893a['position']['root'];!this['_document']['getRoot'](_0x43d373)&&(this['_document']['createRoot']('$root',_0x43d373)['_isAttached']=!0x1);}const _0x39c333=_0x44417e['fromJSON'](_0x46893a,this['_document']);return _0x39c333['wasUndone']=_0x46893a['wasUndone'],_0x39c333['_isInit']=_0x5e7f98,_0x39c333['_authorId']=_0x5e7f98?null:_0x51bcb3[_0x41f355]['userId'],_0x39c333['_isDisconnection']='cs:removeUser'===_0x51bcb3[_0x41f355]['type'],_0x39c333['createdAt']=_0x51bcb3[_0x41f355]['createdAt'],_0x39c333;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x14c80a=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x14c80a&&_0x14c80a['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x22f9fb,_0xc8390c){for(const _0x3878af of _0x22f9fb)_0x3878af['baseVersion']=_0xc8390c++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x4f71b5){this['_ignoredOperations']=_0x4f71b5,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x37ca51){let _0x3405e0=_0x37ca51['length'];for(;_0x3405e0--;){const _0x4c14a4=_0x37ca51[_0x3405e0];if(!this['_ignoredOperations']['has'](_0x4c14a4)){if(!this['_operationToId']['has'](_0x4c14a4)){const _0x41e90b=_0x2f36df()['slice'](0x1,0x12);this['_operationToId']['set'](_0x4c14a4,_0x41e90b);}return this['_operationToId']['get'](_0x4c14a4);}}}['setIdForTheLastOperation'](_0x34818f,_0x13b2d4){if(!_0x13b2d4)return;let _0xfaa36f=_0x34818f['length'];for(;_0xfaa36f--;){const _0x2b9d58=_0x34818f[_0xfaa36f];this['_ignoredOperations']['has'](_0x2b9d58)||this['_operationToId']['set'](_0x2b9d58,_0x13b2d4);}}}class RealTimeCollaborativeEditing extends _0x25acfb{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x1b9cff{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
- ((()=>_0x476c1f)());['_services'];static get['requires'](){return[WebSocketGateway,_0x33588d,Sessions,_0x3e9224];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x31d85e){super(_0x31d85e),this['_services']=new Map();}async['init'](){const _0x9ff1f4=this['context'],_0x2427c6=_0x9ff1f4['plugins']['get'](_0x33588d);if(_0x9ff1f4['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x2427c6['adapter']={'addCommentThread':async({channelId:_0x3169cb,threadId:_0x280f7d,comments:_0x3dbd8b,resolvedAt:_0x169fb3,resolvedBy:_0x3724bd,context:_0x243f65,attributes:_0xe06c9f})=>{const _0x9f744=await this['_getService'](_0x3169cb)['addCommentThread']({'commentThreadId':_0x280f7d,'comments':_0x3dbd8b['map'](_0x1c3e01=>function(_0x24faa9,_0x1d6894,_0x533bec){return{'commentThreadId':_0x533bec,'commentId':_0x24faa9['commentId'],'userId':_0x24faa9['authorId'],'content':_0x24faa9['content'],'documentId':_0x1d6894,'createdAt':_0x24faa9['createdAt'],'attributes':_0x24faa9['attributes']||{}};}(_0x1c3e01,_0x3169cb,_0x280f7d)),'resolvedAt':_0x169fb3,'resolvedBy':_0x3724bd,'context':_0x243f65,'attributes':_0xe06c9f})['catch'](Z);return{'threadId':_0x9f744['commentThreadId'],'comments':_0x9f744['comments']};},'getCommentThread':async({channelId:_0x5df763,threadId:_0x3ea4f5})=>{const _0xa1316e=await this['_getService'](_0x5df763)['getCommentThread'](_0x3ea4f5)['catch'](X)['catch'](Z);return _0xa1316e?_0xa1316e['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0xa1316e]),{'threadId':_0xa1316e['commentThreadId'],'comments':_0xa1316e['comments']['map'](tt),'context':_0xa1316e['context'],'resolvedAt':_0xa1316e['resolvedAt'],'resolvedBy':_0xa1316e['resolvedBy'],'attributes':_0xa1316e['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x54c7d9,threadId:_0x521538,context:_0x894c19,unlinkedAt:_0x51447b,attributes:_0x53035b})=>this['_getService'](_0x54c7d9)['updateCommentThread']({'commentThreadId':_0x521538,'context':_0x894c19,'attributes':_0x53035b,'unlinkedAt':_0x51447b})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x341d79,threadId:_0x54cfa4})=>{const _0xa13a0e=await this['_getService'](_0x341d79)['resolveCommentThread'](_0x54cfa4)['catch'](X)['catch'](Z);return{'threadId':_0xa13a0e['commentThreadId'],'resolvedAt':_0xa13a0e['resolvedAt'],'resolvedBy':_0xa13a0e['resolvedBy']};},'reopenCommentThread':async({channelId:_0x5d7c97,threadId:_0x3936fb})=>this['_getService'](_0x5d7c97)['reopenCommentThread'](_0x3936fb)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x18fc10,threadId:_0x491325})=>this['_getService'](_0x18fc10)['removeCommentThread'](_0x491325)['catch'](X)['catch'](Z),'addComment':({channelId:_0x3c5ad0,threadId:_0x44237e,commentId:_0x413bdd,content:_0x222c31,attributes:_0x5a5614})=>this['_getService'](_0x3c5ad0)['addComment'](_0x44237e,_0x413bdd,_0x222c31,_0x5a5614)['catch'](Z),'updateComment':({channelId:_0xc9077f,threadId:_0x3ce6e7,commentId:_0x2e7e06,content:_0x41d9fc,attributes:_0x1510d7})=>this['_getService'](_0xc9077f)['updateComment'](_0x3ce6e7,_0x2e7e06,_0x41d9fc,_0x1510d7)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x118f7b,threadId:_0x5926e0,commentId:_0x11103d})=>this['_getService'](_0x118f7b)['removeComment'](_0x5926e0,_0x11103d)['catch'](X)['catch'](Z)},_0x9ff1f4 instanceof _0x35a8e1){const _0x11c02d=_0x9ff1f4['config']['get']('collaboration.channelId'),_0x11c64c=_0x9ff1f4['plugins']['get'](Sessions);await this['_setUpService'](_0x11c02d);const _0x1f60c9=await this['_services']['get'](_0x11c02d)['getConnectedSessions']();this['listenTo'](_0x11c64c,'sessionAdd:'+_0x11c02d,(_0x28e380,{session:_0x44df57})=>{_0x44df57['id']===_0x11c64c['mySessionId']&&(_0x28e380['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x44df57['permissions'],_0x11c02d));}),_0x11c64c['register'](_0x11c02d,_0x1f60c9);}}async['_setUpService'](_0x5af1a4){if(this['_services']['has'](_0x5af1a4))throw new _0x146074('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x5af1a4});const _0x141914=this['context']['plugins']['get'](_0x33588d),_0x2db820=new CloudServicesCommentsAdapter['CommentsService'](_0x5af1a4);this['_services']['set'](_0x5af1a4,_0x2db820),this['listenTo'](_0x2db820,'commentThreadAdded',(_0x434c00,_0x6d217c)=>{const {commentThreadId:_0x363ece,documentId:_0x21768c,context:_0x1d37ba,attributes:_0x2d47df,resolvedAt:_0x4e2b42,resolvedBy:_0x29f844,comments:_0x5645b0}=_0x6d217c;_0x141914['getCommentThread'](_0x363ece)||_0x141914['addCommentThread']({'threadId':_0x363ece,'channelId':_0x21768c,'comments':_0x5645b0?_0x5645b0['map'](tt):[],'context':_0x1d37ba,'attributes':_0x2d47df,'resolvedAt':_0x4e2b42,'resolvedBy':_0x29f844,'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadUpdated',(_0x1660e9,{commentThreadId:_0x333ba7,documentId:_0x4f2f8f,context:_0x185d42,unlinkedAt:_0x325769,attributes:_0x149abf})=>{_0x141914['getCommentThread'](_0x333ba7)&&_0x141914['updateCommentThread']({'threadId':_0x333ba7,'channelId':_0x4f2f8f,'context':_0x185d42,'unlinkedAt':_0x325769,'attributes':_0x149abf,'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadResolved',(_0x4e7b2d,{commentThreadId:_0x5ae350,resolvedBy:_0x138c16,resolvedAt:_0xd89d39})=>{const _0x3d934d=_0x141914['getCommentThread'](_0x5ae350);_0x3d934d&&_0x3d934d['resolve']({'resolvedBy':_0x138c16,'resolvedAt':_0xd89d39,'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadReopened',(_0x305b0e,{commentThreadId:_0x432c45})=>{const _0x2abe71=_0x141914['getCommentThread'](_0x432c45);_0x2abe71&&_0x2abe71['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadRemoved',(_0x38de18,{commentThreadId:_0x15a6a4})=>{const _0x39080d=_0x141914['getCommentThread'](_0x15a6a4);_0x39080d&&_0x39080d['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentAdded',(_0x38b61b,_0x1a6fa9)=>{const _0x2bf146=_0x1a6fa9['commentThreadId'],_0x33fb6b=_0x141914['getCommentThread'](_0x2bf146);_0x33fb6b&&_0x33fb6b['addComment']({...tt(_0x1a6fa9),'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentUpdated',(_0x847696,{commentThreadId:_0xee0d9f,commentId:_0x309b75,content:_0x4693c2,attributes:_0x132cf9})=>{const _0x38133e=_0x141914['getCommentThread'](_0xee0d9f);if(_0x38133e){const _0x4a322a=_0x38133e['getComment'](_0x309b75);_0x4a322a&&_0x4a322a['update']({'content':_0x4693c2,'attributes':_0x132cf9,'isFromAdapter':!0x0});}}),this['listenTo'](_0x2db820,'commentRemoved',(_0x1cb75f,{commentThreadId:_0x1cda52,commentId:_0x516aa5})=>{const _0x25e19e=_0x141914['getCommentThread'](_0x1cda52);if(_0x25e19e){const _0x5796df=_0x25e19e['getComment'](_0x516aa5);_0x5796df&&_0x5796df['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x5af1a4);}['destroy'](){if(this['context']instanceof _0x35a8e1){const _0x385029=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x385029);}}['_terminateService'](_0x4300d5){if(!this['_services']['has'](_0x4300d5))throw new _0x146074('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x4300d5});this['_getService'](_0x4300d5)['disconnect'](),this['_services']['delete'](_0x4300d5);}async['reconnect'](){for(const _0x2ab768 of this['_services']['keys']())await this['_connectService'](_0x2ab768);if(this['context']instanceof _0x35a8e1){const _0x489702=this['context']['config']['get']('collaboration.channelId'),_0xe2fca5=this['context']['plugins']['get'](Sessions);_0xe2fca5['unregister'](_0x489702);const _0x102518=await this['_services']['get'](_0x489702)['getConnectedSessions']();_0xe2fca5['register'](_0x489702,_0x102518);}}async['_connectService'](_0x1bb390){const {connection:_0x44b86d}=this['context']['plugins']['get'](WebSocketGateway),_0x20bd46=this['context']['plugins']['get'](_0x33588d),_0x377445=this['_services']['get'](_0x1bb390),_0x3da09d=await _0x377445['connect'](_0x44b86d);await this['_fetchMissingUsersForThreads'](_0x3da09d);const _0x597c3c=new Set(Array['from'](_0x20bd46['getCommentThreads']({'channelId':_0x1bb390}),_0x15f5f3=>_0x15f5f3['id']));for(const _0x251218 of _0x3da09d)_0x251218['deletedAt']||_0x597c3c['delete'](_0x251218['commentThreadId']);for(const _0x268898 of _0x597c3c)_0x20bd46['getCommentThread'](_0x268898)['remove']({'isFromAdapter':!0x0});for(const _0x5caf6a of _0x3da09d){let _0xd282cd=_0x20bd46['getCommentThread'](_0x5caf6a['commentThreadId']);const {commentThreadId:_0x48eebc,context:_0x1f01ce,attributes:_0x2eadf,resolvedBy:_0x427df7,resolvedAt:_0x3e77b,unlinkedAt:_0x2c62cc,deletedAt:_0x58ec63}=_0x5caf6a;if(_0x58ec63)continue;_0xd282cd||(_0xd282cd=_0x20bd46['addCommentThread']({'channelId':_0x1bb390,'threadId':_0x48eebc,'context':_0x1f01ce,'attributes':_0x2eadf||{},'resolvedBy':_0x427df7,'resolvedAt':_0x3e77b,'unlinkedAt':_0x2c62cc,'isFromAdapter':!0x0}));const _0x56e81d=new Set(Array['from'](_0xd282cd['comments'],_0x323703=>_0x323703['id']));for(const _0x6b030a of _0x5caf6a['comments'])_0x56e81d['delete'](_0x6b030a['commentId']);for(const _0x5ec673 of _0x56e81d)_0xd282cd['getComment'](_0x5ec673)['remove']({'isFromAdapter':!0x0});for(const _0x1eb0d7 of _0x5caf6a['comments']){const _0x4b5fa4=_0xd282cd['getComment'](_0x1eb0d7['commentId']);_0x4b5fa4?_0x4b5fa4['content']!==_0x1eb0d7['content']&&_0x4b5fa4['update']({'content':_0x1eb0d7['content'],'isFromAdapter':!0x0}):_0xd282cd['addComment'](Object['assign'](tt(_0x1eb0d7),{'isFromAdapter':!0x0}));}}}['_getService'](_0x52d549){if(!this['_services']['has'](_0x52d549))throw new _0x146074('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x52d549});return this['_services']['get'](_0x52d549);}async['_fetchMissingUsersForThreads'](_0xec45d4){const _0x48804c=this['context']['plugins']['get'](_0x3e9224),{connection:_0x272d74}=this['context']['plugins']['get'](WebSocketGateway),_0xa71af0=new Set();for(const {resolvedBy:_0x2c415a,comments:_0x322f0a}of _0xec45d4){_0x2c415a&&!_0x48804c['getUser'](_0x2c415a)&&_0xa71af0['add'](_0x2c415a);for(const {userId:_0x452302}of _0x322f0a)_0x48804c['getUser'](_0x452302)||_0xa71af0['add'](_0x452302);}if(0x0===_0xa71af0['size'])return;const _0xcb73c1=await _0x3383d3['getMany'](_0x272d74,Array['from'](_0xa71af0));for(const _0x81d4cf of _0xcb73c1)_0x48804c['getUser'](_0x81d4cf['id'])||_0x48804c['addUser'](_0x81d4cf);}}async function X(_0x273a20){if('404'!==_0x273a20['code'])throw _0x273a20;}function Z(_0x5e43cf){if((_0x4046b0=_0x5e43cf)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x4046b0['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x4046b0['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x4046b0;throw _0x5e43cf;}function tt(_0x2ebdd8){return{'threadId':_0x2ebdd8['commentThreadId'],'commentId':_0x2ebdd8['commentId'],'content':_0x2ebdd8['content'],'createdAt':_0x2ebdd8['createdAt'],'authorId':_0x2ebdd8['userId'],'attributes':_0x2ebdd8['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x25acfb{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
- ((()=>_0x277557)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x27f4c9,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x403ba2){super(_0x403ba2);const _0x11415b=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x11415b);}['init'](){const _0xcc1a82=this['editor']['plugins']['get'](WebSocketGateway),_0x3a48da=this['editor']['plugins']['get'](_0x27f4c9);return _0x3a48da['adapter']={'getSuggestion':async _0x444d17=>{await this['_waitForServiceReady']();const _0x1699eb=await this['_trackChangesService']['get'](_0x444d17)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x1699eb]),_0x1699eb;},'addSuggestion':async({id:_0x71a1b7,type:_0x2e34ed,data:_0x21f981,originalSuggestionId:_0x4b4edc,attributes:_0x4e8267})=>{await this['_waitForServiceReady']();const _0x212fc5={'id':_0x71a1b7,'type':_0x2e34ed,'data':_0x21f981,'originalSuggestionId':_0x4b4edc,'attributes':_0x4e8267},_0x59c5b0=await this['_trackChangesService']['add'](_0x71a1b7,_0x2e34ed,_0x21f981,_0x4b4edc,_0x4e8267)['catch'](_0xd089ed=>{if(st(_0xd089ed))return new Promise(_0x289ae8=>{this['_bufferedRequests']['set'](_0x71a1b7,{'resolve':_0x289ae8,'suggestionData':_0x212fc5});});throw _0xd089ed;});return this['_bufferedRequests']['delete'](_0x71a1b7),_0x59c5b0;},'updateSuggestion':async(_0x5aeb10,_0x1d99db)=>{if(await this['_waitForServiceReady'](),'open'!==_0x1d99db['state'])return this['_trackChangesService']['update'](_0x5aeb10,_0x1d99db)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x48fd47,_0x4efdb4)=>{_0x3a48da['hasSuggestion'](_0x4efdb4['id'])&&(_0x3a48da['getSuggestion'](_0x4efdb4['id'])['attributes']=_0x4efdb4['attributes']);}),this['_trackChangesService']['connect'](_0xcc1a82['connection'])['then'](_0xbb1895=>(_0xcc1a82['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0xbb1895)['then'](()=>{for(const _0xdb19d9 of _0xbb1895){_0x3a48da['addSuggestionData'](_0xdb19d9)['_saved']=!0x0;}})));}async['reconnect'](){const _0x4eddf2=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x56b777}=this['editor']['plugins']['get'](WebSocketGateway),_0x177a7b=await this['_trackChangesService']['connect'](_0x56b777);await this['_fetchMissingUsersForThreads'](_0x177a7b);for(const {suggestionData:_0x2f04cb,resolve:_0x486a7e}of this['_bufferedRequests']['values']()){let _0x3fb2af=_0x177a7b['find'](_0x49d869=>_0x49d869['id']===_0x2f04cb['id']);_0x3fb2af||(_0x3fb2af=await this['_trackChangesService']['add'](_0x2f04cb['id'],_0x2f04cb['type'],_0x2f04cb['data'],_0x2f04cb['originalSuggestionId'])),_0x486a7e(_0x3fb2af);}for(const _0x36a303 of _0x177a7b)_0x4eddf2['hasSuggestion'](_0x36a303['id'])||_0x4eddf2['addSuggestionData'](_0x36a303);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x4caca2=>{this['listenTo'](this['_trackChangesService'],'connected',_0xca156c=>{_0xca156c['off'](),_0x4caca2();});});}async['_fetchMissingUsersForThreads'](_0xf390b4){const _0x2b36cb=this['editor']['plugins']['get'](_0x3e9224),{connection:_0x16b52e}=this['editor']['plugins']['get'](WebSocketGateway),_0x503397=new Set();for(const {authorId:_0x2af91d}of _0xf390b4)_0x2b36cb['getUser'](_0x2af91d)||_0x503397['add'](_0x2af91d);if(0x0===_0x503397['size'])return;const _0x4238f7=await _0x3383d3['getMany'](_0x16b52e,Array['from'](_0x503397));for(const _0xb32749 of _0x4238f7)_0x2b36cb['getUser'](_0xb32749['id'])||_0x2b36cb['addUser'](_0xb32749);}}function et(_0x3ce9a4){if(st(_0x3ce9a4))return new Promise(()=>{});throw _0x3ce9a4;}function st(_0x521f30){return _0x521f30['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x521f30['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x25acfb{static get['requires'](){return[_0x257b99,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x564d0e=this['editor']['plugins']['get'](WebSocketGateway),_0x18d50e=this['editor']['plugins']['get'](_0x58c2be),_0x36c486=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x564d0e,'change:state',(_0xeeb3,_0xd99d51,_0xd61b29)=>{_0x18d50e['isThreadsLoadingPaused']='connected'!==_0xd61b29;});}),this['listenTo'](_0x564d0e,'change:state',(_0x57603f,_0x2a9741,_0x5ec1f1)=>{this['editor']['plugins']['get'](_0x33588d)['switchReadOnly']('connected'!==_0x5ec1f1);}),_0x36c486['_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 _0x25acfb{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x22209a];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x25acfb{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
- ((()=>_0x524689)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x547c0a,Sessions,_0x3e9224];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1498c2){super(_0x1498c2);const _0x2c40da=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x2c40da);}async['init'](){const _0x4e52f7=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x8e884b=_0x4e52f7['serverHistory'],_0x44523a=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x8e884b,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x4e52f7['sessionId']});const _0x3e2104=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x429b78,_0x48de88=await _0x548b3a['isBundleUploaded'](_0x44523a['connection'],_0x3e2104);this['editor']['plugins']['get'](_0x547c0a)['adapter']={'getRevision':async({revisionId:_0x189205})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x189205)),'updateRevisions':async _0x3f150b=>{await this['_waitForServiceReady']();const _0x21d2c8=this['_revisionTracker']['currentRevision'];if(_0x48de88&&0x1===_0x3f150b['length']&&_0x3f150b[0x0]['id']===_0x21d2c8['id'])return _0x3f150b;for(const _0x3e1cc7 of _0x3f150b)_0x3e1cc7['id']===_0x21d2c8['id']&&(_0x3e1cc7['isEmptyCurrent']=_0x3e1cc7['fromVersion']===_0x3e1cc7['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x3f150b,this['_lastRequestId'])['then'](_0x501b48=>(this['_lastRequestId']=_0x501b48,_0x3f150b))['catch'](_0x25ec79=>{if(it(_0x25ec79)||'400'===_0x25ec79['code']&&void 0x0!==_0x25ec79['data']['wrongRequestId']){for(const _0x5b3e96 of _0x3f150b){!this['_revisionTracker']['repository']['getRevision'](_0x5b3e96['id'])||this['_revisionTracker']['_bufferUpdate'](_0x5b3e96['id'],_0x5b3e96,!0x1);}if(it(_0x25ec79)&&'destroyed'!==this['editor']['state'])throw _0x25ec79;return _0x3f150b;}throw _0x25ec79;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x5280b1,{revisionsData:_0xc36ee9,requestId:_0x21e5ba})=>{Math['max'](..._0xc36ee9['map'](_0x2041bb=>_0x2041bb['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0xc36ee9,_0x21e5ba);}):this['_handleRevisionsUpdate'](_0xc36ee9,_0x21e5ba);});const {revisions:_0x3279dd,requestId:_0x4bff77}=await this['_revisionHistoryService']['connect'](_0x44523a['connection']);_0x44523a['addToReconnectionStack'](this),this['_lastRequestId']=_0x4bff77,await this['_fetchMissingUsers'](_0x3279dd);for(const _0x5944ce of _0x3279dd)this['_revisionTracker']['addRevisionData'](_0x5944ce);this['listenTo'](_0x4e52f7,'change:_isConnected',(_0x225a8f,_0x508899,_0x49afe6)=>{_0x49afe6&&(this['_oldOffset']=_0x4e52f7['_offset'],_0x225a8f['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x44523a,'state',_0x33a983=>_0x33a983===_0x4e17ce['CONNECTED']);}async['reconnect'](){const _0x175028=this['editor']['plugins']['get'](WebSocketGateway),_0x3c5ed1=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0xe99d09=async()=>{const _0xac0ef8=this['_revisionTracker']['currentRevision'],_0x544cde=_0xac0ef8['id'],_0x12c9f7=_0x544cde!==_0x3c5ed1['sessionId'];if(_0x12c9f7){const _0x4f989f=_0x3c5ed1['_offset']-this['_oldOffset'],_0xf04d77=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0xac0ef8['toVersion']+_0x4f989f!==_0xf04d77){const _0x4f1a1b=_0xac0ef8['fromVersion']+_0x4f989f,_0x55236c=this['editor']['plugins']['get'](_0x3e9224),_0x2883e6=this['_revisionTracker']['buildRevisionData']({'revision':_0xac0ef8,'from':_0x4f1a1b,'to':_0xf04d77});_0x2883e6['id']=_0xac0ef8['id'];const _0x2f8f42=_0x2883e6['authorsIds']['map'](_0x1a657a=>_0x55236c['getUser'](_0x1a657a));_0xac0ef8['_update']({..._0x2883e6,'authors':_0x2f8f42},!0x0),this['_revisionTracker']['_bufferUpdate'](_0xac0ef8['id'],_0x2883e6,!0x0);}this['_revisionTracker']['_startingVersion']=_0xf04d77,(_0xac0ef8['toVersion']===_0xac0ef8['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x544cde)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x544cde),this['_revisionTracker']['_createCurrentRevision'](_0xf04d77));}const {revisions:_0x2c894e,requestId:_0x30b08c}=await this['_revisionHistoryService']['reconnect'](_0x175028['connection'],this['_lastRequestId']);_0x12c9f7&&_0x2c894e['length']>0x0?_0x3c5ed1['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x2c894e),this['_handleRevisionsUpdate'](_0x2c894e,_0x30b08c),this['_revisionTracker']['sendBufferedUpdates']());};return _0x3c5ed1['_isConnected']?_0xe99d09():new Promise((_0x2c20d3,_0x303db4)=>{_0x3c5ed1['once']('change:_isConnected',()=>{_0xe99d09()['then'](_0x2c20d3)['catch'](_0x303db4);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x25f591=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x33ea32=>{_0x33ea32['off'](),_0x25f591();});});}['_getLatestVersionFromServerOperations'](){const _0xd15da2=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x5b74ac of _0xd15da2)if('marker'!==_0x5b74ac['type']||_0x5b74ac['affectsData'])return _0x5b74ac['baseVersion']+0x1;}['_getLatestVersion'](){const _0x2e788c=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x2d3d66=>{_0x2e788c['_isPendingUpdate']?_0x2e788c['once']('change:_isPendingUpdate',()=>{_0x2d3d66(this['_getLatestVersionFromServerOperations']());}):_0x2d3d66(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x1d4705,_0x54a052){const _0x286f8c=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x54a052;for(const _0x837444 of _0x1d4705){const _0x1ff06b=_0x286f8c['getRevision'](_0x837444['id']);if(_0x1ff06b){if((_0x837444['fromVersion']||_0x837444['toVersion'])&&(_0x837444['diffData']=null),_0x1ff06b===this['_revisionTracker']['currentRevision']){const _0x4e681c=Math['max'](_0x1ff06b['toVersion'],_0x837444['toVersion']),_0x36d31a=Math['max'](_0x1ff06b['fromVersion'],_0x837444['fromVersion']);let _0x392f40;_0x1ff06b['toVersion']===_0x837444['toVersion']&&_0x1ff06b['fromVersion']===_0x837444['fromVersion']?(_0x392f40=!0x0,this['_preventResendingRevisionData'](_0x837444)):_0x837444['toVersion']===_0x4e681c&&_0x837444['fromVersion']===_0x36d31a?_0x392f40=!0x1:(_0x1ff06b['toVersion']===_0x4e681c&&_0x1ff06b['fromVersion']===_0x36d31a||this['_fixRevision']({'revision':_0x1ff06b,'from':_0x36d31a,'to':_0x4e681c}),_0x392f40=!0x0),_0x392f40&&(delete _0x837444['fromVersion'],delete _0x837444['toVersion'],delete _0x837444['diffData'],delete _0x837444['createdAt'],delete _0x837444['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x837444),this['_preventResendingRevisionData'](_0x837444);}else this['_revisionTracker']['addRevisionData'](_0x837444);}const _0x1163a3=_0x286f8c['getRevisions']();_0x1163a3['reverse']();for(let _0x3199fd=0x0;_0x3199fd<_0x1163a3['length']-0x1;_0x3199fd++){const _0x403980=_0x1163a3[_0x3199fd],_0x1aa939=_0x1163a3[_0x3199fd+0x1];if(_0x403980['fromVersion']<_0x1aa939['toVersion']){const _0x2f6869=_0x1aa939['toVersion'],_0x501647=Math['max'](_0x2f6869,_0x403980['toVersion']);this['_fixRevision']({'revision':_0x403980,'from':_0x2f6869,'to':_0x501647});}}}['_fixRevision']({revision:_0x88df30,from:_0x59702a,to:_0x198ade}={}){const _0x3e324f=this['editor']['plugins']['get'](_0x3e9224),_0x12875c=this['_revisionTracker']['buildRevisionData']({'revision':_0x88df30,'from':_0x59702a,'to':_0x198ade});_0x12875c['authors']=_0x12875c['authorsIds']['map'](_0x5b1703=>_0x3e324f['getUser'](_0x5b1703)),_0x88df30['_update'](_0x12875c);}['_preventResendingRevisionData'](_0x46ee17){const _0x1c17d7={};_0x1c17d7['id']=_0x46ee17['id'];for(const _0x2aa9a3 of Object['keys'](_0x46ee17))'id'!==_0x2aa9a3&&(_0x1c17d7[_0x2aa9a3]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x1c17d7['id'],_0x1c17d7,!0x0);}async['_fetchMissingUsers'](_0x3ce50e){const _0x309b4a=this['editor']['plugins']['get'](_0x3e9224),{connection:_0x582a51}=this['editor']['plugins']['get'](WebSocketGateway),_0x525985=new Set();for(const _0x5d615e of _0x3ce50e){for(const _0x56ee97 of _0x5d615e['authorsIds'])_0x205b7f(_0x56ee97);_0x5d615e['creatorId']&&_0x205b7f(_0x5d615e['creatorId']);}if(0x0===_0x525985['size'])return;const _0x11f621=await _0x3383d3['getMany'](_0x582a51,Array['from'](_0x525985));for(const _0x2f2577 of _0x11f621)_0x309b4a['getUser'](_0x2f2577['id'])||_0x309b4a['addUser'](_0x2f2577);function _0x205b7f(_0x244151){_0x309b4a['getUser'](_0x244151)||_0x525985['add'](_0x244151);}}}function it(_0x4a2517){return _0x4a2517['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x4a2517['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x4a2517['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x25acfb{static get['requires'](){return[_0x547c0a,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x1aa21a{['_collapseAt'];constructor(_0x54e7c6,_0x5adb69=0x6){super(_0x54e7c6);const _0x35047e=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x5adb69,this['bind']('isHidden')['to'](this,'usersCount',_0x223333=>_0x223333<_0x5adb69),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x35047e['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':_0x35047e['to']('usersCount',_0x47f631=>'+'+(_0x47f631-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x1aa21a{['items'];['keystrokes'];constructor(_0x203923){super(_0x203923);const _0x5493d8=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x39c4bd(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x5493d8['if']('hasPopup'),'aria-expanded':_0x5493d8['to']('isExpanded',_0x1fa5f2=>this['hasPopup']&&String(_0x1fa5f2)),'aria-label':_0x5493d8['to']('hasPopup',_0x1e018b=>K(_0x203923,_0x1e018b?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x5493d8['to']('hasPopup',_0xbcab11=>!!_0xbcab11&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x5493d8['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x5493d8['to'](_0x3283f0=>{const _0xbc2010=_0x3283f0,_0x36baec=document['querySelector']('.ck-presence-list__dropdown-list'),_0x324c36=document['querySelector']('.ck-balloon-panel_with-arrow');_0x36baec?.['contains'](_0xbc2010['relatedTarget'])||_0x324c36?.['contains'](_0xbc2010['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x1d7b57,_0x48c9c4,_0x56b0a6)=>{this['element']&&(_0x56b0a6?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 _0x1aa21a{['counterView'];['inlineListView'];constructor(_0x119a10,_0x357c94=0x6){super(_0x119a10);const _0x580eeb=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x357c94),this['inlineListView']=new PresenceInlineListView(_0x119a10),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x58e0a4 of this['inlineListView']['items'])_0x58e0a4['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',_0x580eeb['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x1aa21a{['listWrapperView'];constructor(_0x1b1c54,_0x1cf9c7){super(_0x1b1c54);const _0x40e0b1=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x1b1c54,_0x1cf9c7),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x1b1c54,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x40e0b1['to'](_0x1fed7a=>{const _0xb1c164=_0x1fed7a,_0x1d9a3b=document['querySelector']('.ck-presence-list__list'),_0x242d2d=document['querySelector']('.ck-balloon-panel_with-arrow');_0x1d9a3b?.['contains'](_0xb1c164['relatedTarget'])||_0x242d2d?.['contains'](_0xb1c164['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x6e06a0{constructor(_0x4d6930,_0x7c573b){super(_0x4d6930);const _0xb84e7c=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x7c573b?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0xb84e7c['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0xb84e7c['to']('role'),'aria-label':_0xb84e7c['to']('ariaLabel'),'aria-labelledby':_0xb84e7c['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x248dd9['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x463a63=this['element'];_0x463a63&&(this['_isScrollable']=Math['max'](_0x463a63['scrollHeight'],_0x463a63['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x9a4d5e{['userView'];constructor(_0x186ed2,_0xa4b587,_0x33bb40){super(_0x186ed2);const _0x4b1359=this['bindTemplate'];this['userView']=new _0xb6d3d9(_0x186ed2,_0xa4b587);const _0x2930d8={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0xa4b587['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0xa4b587['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0xa4b587['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0xa4b587['color']['getColorVariable'](),'--ck-user-color-alpha':_0xa4b587['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x33bb40&&(_0x2930d8['tag']='button',_0x2930d8['on']={'click':_0x4b1359['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x2930d8);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x1aa21a{['userView'];['markerView'];constructor(_0x33c214,_0x147fdc,_0x2b391b){super(_0x33c214);const _0xd9eba5=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0xb6d3d9(_0x33c214,_0x147fdc),this['markerView']=new MarkerView(_0x33c214,_0x147fdc);const _0x44b6a1=new _0x52e315(_0x33c214);_0x44b6a1['template']['tag']='span',_0x44b6a1['text']=_0x147fdc['name'];const _0x1fa50a={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0xd9eba5['to']('isFocusable',_0x174e18=>!!_0x174e18&&0x0),'aria-labelledby':_0x44b6a1['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0xd9eba5['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0xd9eba5['to']('hasTooltip',_0x3a7fe7=>!_0x3a7fe7),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x44b6a1]};_0x2b391b&&(_0x1fa50a['tag']='button',_0x1fa50a['on']={'click':_0xd9eba5['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1fa50a);}}class MarkerView extends _0x1aa21a{constructor(_0x2e6d8a,_0x3c4aaa){super(_0x2e6d8a),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x3c4aaa['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x3c4aaa['color']['getColorVariable'](),'--ck-user-color-alpha':_0x3c4aaa['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x1b9cff{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3ea392){super(_0x3ea392),this['context']['config']['define']('presenceList',nt);const _0x54485f=_0x3ea392['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x54485f)throw new _0x146074('presencelist-collapseat-invalid-format',this);if(_0x54485f<0x1)throw new _0x146074('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x340917(),this['balloonPanelView']=new _0x30020e(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x4480b4 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x4480b4);this['listenTo'](this['_allConnectedUsers'],'add',(_0x24b0c8,_0x22457c)=>{this['_handleUserAdd'](_0x22457c);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x5d1eb8,_0x327861)=>{this['_handleUserRemove'](_0x327861);});}['_createView'](){const _0x3e0482=this['context'],_0x4fed84=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x35bfd3=this['balloonPanelView'];if(!_0xecfd2a(_0x3e0482['config']['get']('presenceList.container')))throw new _0x146074('presencelist-missing-container',this);return _0x4fed84['counterView']['bind']('usersCount')['to'](this),_0x4fed84['bind']('isCollapsed')['to'](this,'usersCount',_0x461710=>{const {collapseAt:_0x28785e}=_0x3e0482['config']['get']('presenceList'),_0x463b7e=_0x461710>=_0x28785e;if(_0x463b7e&&!_0x4fed84['inlineListView']['items']['find'](_0x7df740=>_0x7df740 instanceof PresenceCounterView)){const _0x3b0e79=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x3b0e79&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x4fed84['inlineListView']['items']['add'](_0x4fed84['counterView']);}return _0x463b7e||this['hideDropdown'](),_0x463b7e;}),_0x4fed84['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x32c292=>{const _0x48d4ca=_0x3e0482['config']['get']('presenceList'),_0x4e8120=new PresenceInlineListItemView(_0x3e0482['locale'],_0x32c292,!!_0x48d4ca['onClick']);return _0x4e8120['bind']('hasTooltip')['to'](_0x4fed84,'isCollapsed',_0x5037a0=>!_0x5037a0),_0x4e8120['bind']('isFocusable')['to'](_0x4fed84,'isCollapsed',_0x1d2afa=>!_0x1d2afa),_0x48d4ca['onClick']&&this['listenTo'](_0x4e8120,'execute',()=>{this['view']['isCollapsed']||_0x48d4ca['onClick'](_0x32c292,_0x4e8120['element']);}),_0x4e8120;}),this['listenTo'](_0x4fed84['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x4fed84['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x4fed84['inlineListView']['keystrokes']['set']('Enter',(_0x37bfaa,_0x5f2b91)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x5f2b91());}),_0x4fed84['render'](),_0x35bfd3['render'](),_0x1b7bff({'emitter':_0x4fed84,'activator':()=>_0x35bfd3['isVisible'],'contextElements':[_0x35bfd3['element'],_0x4fed84['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x3e0482['config']['get']('presenceList.container')['appendChild'](_0x4fed84['element']),this['_bodyCollection']=new _0x31aa2b(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x4fed84;}['_handleUserAdd'](_0x2dd407){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x2dd407['isMe'])return;const _0x1fe5ff=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x1fe5ff-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x3f0e28=_0x2dd407['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x2dd407,_0x3f0e28);}['_handleUserRemove'](_0xc4c792){this['usersCount']--;const {collapseAt:_0x32f19e}=this['context']['config']['get']('presenceList'),_0x49458a=this['usersCount']>=_0x32f19e;if(this['currentDisplayedUsers']['get'](_0xc4c792['id']))this['currentDisplayedUsers']['remove'](_0xc4c792['id']);else{if(_0x49458a&&this['currentDisplayedUsers']['length']+0x1===_0x32f19e-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x49458a?0x1:0x0)<this['usersCount']){for(const _0x5c97cf of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x5c97cf['id'])&&(this['currentDisplayedUsers']['add'](_0x5c97cf,Math['min'](this['currentDisplayedUsers']['length']-(_0x49458a?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x49458a?0x1:0x0)===_0x32f19e-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x28e09f=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x28e09f['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x5a310e}=this['presenceDropdownView'];_0x5a310e['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x143c5e=>{if(!_0x28e09f['displayMe']&&_0x143c5e['isMe'])return null;const _0xf4fb8a=new PresenceDropdownListItemView(this['context']['locale'],_0x143c5e,!!_0x28e09f['onClick']);return _0x28e09f['onClick']&&this['listenTo'](_0xf4fb8a,'execute',()=>{_0x28e09f['onClick'](_0x143c5e,_0xf4fb8a['element']);}),_0xf4fb8a;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x5a310e['focus'](),_0x5a310e['checkIfScrollable']();const _0x43d4fe=(_0x543648,_0x353d9d)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x353d9d();};_0x5a310e['keystrokes']['set']('Esc',_0x43d4fe),_0x5a310e['keystrokes']['set']('Shift+Tab',_0x43d4fe),_0x5a310e['keystrokes']['set']('Tab',(_0x1b8102,_0x1df1f6)=>{!function(_0x54c3ff){const _0x3d9e6e=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x365741=>_0x365741+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x28480a=[...document['body']['querySelectorAll'](_0x3d9e6e)]['filter'](_0x111d4a=>_0x111d4a===document['activeElement']||_0x111d4a['offsetWidth']+_0x111d4a['offsetHeight']>0x0)['sort']((_0x5b5010,_0x2a2fe8)=>(_0x5b5010['tabIndex']||0x0)-(_0x2a2fe8['tabIndex']||0x0)),_0x7130b=_0x28480a['indexOf'](_0x54c3ff),_0x38e5ee=_0x28480a[(_0x7130b+0x1)%_0x28480a['length']];_0x38e5ee&&_0x38e5ee['focus']();}(this['view']['element']),this['hideDropdown'](),_0x1df1f6();}),_0x5a310e['focusTracker']['add'](this['view']['element']),_0x5a310e['focusTracker']['on']('change:isFocused',(_0x20bd05,_0x25549a,_0x11e0f5)=>{_0x11e0f5||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 _0x1b9cff{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 _0xa3b26a,Plugin as _0x3e1b2c,PendingActions as _0x3cac90,Context as _0x2d4166}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x1b98bf,CKEditorError as _0x1a0846,Collection as _0x4632e2,global as _0x4bc758,version as _0x413b54,uid as _0x4610fb,KeystrokeHandler as _0x266233}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x533667,View as _0xd98b1,ListView as _0x25a08d,ListItemView as _0x33a920,LabelView as _0x185ec1,BalloonPanelView as _0x5a7b8e,clickOutsideHandler as _0x6a8b92,BodyCollection as _0x47bd89}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x149575,History as _0x2bb064,NoOperation as _0x5da136,InsertOperation as _0x36b2c1,MarkerOperation as _0x3376ca,RootAttributeOperation as _0x2a0d30,transformOperationSets as _0x1efb71,OperationFactory as _0x2b980b}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x105264}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x55c0ad,WEB_SOCKET_GATEWAY_STATES as _0x34ec08,CollaborativeEditingService as _0xd68c02,User as _0x3f347c,CommentsService as _0x43f74a,TrackChangesService as _0x17a138,RevisionHistoryService as _0x37164c,EditorService as _0x11f591}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x564ea4,UserView as _0x14c100}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x39c453}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x34092a,TrackChanges as _0x2f2b1c}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x5941a0,Comments as _0x1adcd7,CommentsEditing as _0xded297}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x2074bb}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x45e499}from'es-toolkit/compat';class WebSocketGateway extends _0xa3b26a{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
+ ((()=>_0x55c0ad)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x105264,_0x533667];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x632641){super(_0x632641),this['set']('state',_0x34ec08['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x1b98bf())();}['init'](){const _0x42db59=this['context'],_0x367626=_0x42db59['plugins']['get'](_0x105264),_0x567e96=_0x42db59['plugins']['get'](_0x533667);if(!_0x367626['token'])throw new _0x1a0846('websocketgateway-missing-token',this);if(!_0x367626['webSocketUrl'])throw new _0x1a0846('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'](_0x367626['token'],_0x367626['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x1889a1=>{if(this['connection']=_0x1889a1,this['bind']('state')['to'](_0x1889a1,'state',this,'_isBrowserOffline',(_0x24e00c,_0x5c7982)=>('connected'!==_0x24e00c&&(this['_shouldPluginsReconnect']=!0x0),_0x5c7982||_0x24e00c!==_0x34ec08['CONNECTED']?_0x34ec08['DISCONNECTED']:this['state']==_0x34ec08['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x34ec08['CONNECTING']):_0x34ec08['CONNECTED'])),this['connection']['on']('error',(_0x4c4878,_0x1b593d)=>{if('limitExceeded'!==_0x1b593d['code'])throw console['error'](_0x1b593d),new _0x1a0846('cloudservices-init',null,{'originalError':_0x1b593d});_0x567e96['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'});}),!_0x1889a1['me'])return new Promise(_0x4c7eb9=>_0x1889a1['on']('change:me',_0x4c7eb9));})['catch'](_0x451b71=>{throw console['error'](_0x451b71),new _0x1a0846('cloudservices-init',null,{'originalError':_0x451b71});});}['addToReconnectionStack'](_0x43cf65){if('function'!=typeof _0x43cf65['reconnect'])throw new _0x1a0846('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x43cf65))throw new _0x1a0846('websocketgateway-plugin-already-registered',this,{'name':_0x43cf65['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x43cf65);}['removeFromReconnectionStack'](_0x455e9a){this['_reconnectionStack']['delete'](_0x455e9a);}['isInReconnectionStack'](_0x5ec453){return this['_reconnectionStack']['has'](_0x5ec453);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x452a12=>_0x452a12['reconnect']())))['then'](()=>this['state']=_0x34ec08['CONNECTED'])['catch'](_0x4d3fa7=>{throw console['error'](_0x4d3fa7),new _0x1a0846('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x34ec08['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0xa3b26a{['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,_0x564ea4];}constructor(_0x546bd7){super(_0x546bd7),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x4632e2(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x564ea4);}['init'](){const _0x6dddd5=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x6dddd5,'change:state',(_0x5542b1,_0x529731,_0x2b7216)=>{if('connected'!==_0x2b7216)this['channelSessions']['forEach'](_0x56c4b6=>_0x56c4b6['clear']()),this['channelConnectedUsers']['forEach'](_0x1b4a1c=>_0x1b4a1c['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x3fe7eb,_0x2b1f28]of this['_registeredSessions'])for(const _0x21416d of _0x2b1f28)this['_handleSessionAdd'](_0x3fe7eb,_0x21416d);}}),this['_createUser'](_0x6dddd5['connection']['me'],!0x0);}['register'](_0x22570d,_0x2fbdbc){if(this['_registeredSessions']['has'](_0x22570d))throw new _0x1a0846('sessions-register-already-registered',null,{'channelId':_0x22570d});this['_registeredSessions']['set'](_0x22570d,_0x2fbdbc),this['channelSessions']['set'](_0x22570d,new _0x4632e2()),this['channelConnectedUsers']['set'](_0x22570d,new _0x4632e2()),this['listenTo'](_0x2fbdbc,'add',(_0x5ef500,_0x49d24f)=>this['_handleSessionAdd'](_0x22570d,_0x49d24f)),this['listenTo'](_0x2fbdbc,'remove',(_0x40babd,_0xf1c88c)=>this['_handleSessionRemove'](_0x22570d,_0xf1c88c));for(const _0xfa5451 of _0x2fbdbc)this['_handleSessionAdd'](_0x22570d,_0xfa5451);}['unregister'](_0x63a8b9){if(!this['_registeredSessions']['has'](_0x63a8b9))throw new _0x1a0846('sessions-unregister-not-exist',null,{'channelId':_0x63a8b9});const _0x1f8c92=this['_registeredSessions']['get'](_0x63a8b9);this['stopListening'](_0x1f8c92);for(const _0x35e9f0 of _0x1f8c92)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x63a8b9,_0x35e9f0);this['_registeredSessions']['delete'](_0x63a8b9),this['channelSessions']['delete'](_0x63a8b9),this['channelConnectedUsers']['delete'](_0x63a8b9);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0xc8a903){for(const _0x35d90c of this['channelSessions']['values']())for(const _0x385823 of _0x35d90c)if(_0x385823['id']===_0xc8a903)return _0x385823['user'];}['getUserSessions'](_0x2b68cc,_0x22703c){const _0x126d7f=_0x22703c?[this['channelSessions']['get'](_0x22703c)]:this['channelSessions']['values'](),_0x189f71=new Set();for(const _0x2d2ce1 of _0x126d7f)for(const _0xb1f086 of _0x2d2ce1)_0xb1f086['user']['id']===_0x2b68cc['id']&&_0x189f71['add'](_0xb1f086['id']);return _0x189f71;}['getUserRole'](_0x59a19a){for(const _0x10c3a3 of this['channelSessions']['values']())for(const _0x461593 of _0x10c3a3)if(_0x461593['user']===_0x59a19a)return _0x461593['role'];}['_handleSessionAdd'](_0x213f8c,_0x5e64c1){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x4762db=_0x5e64c1['user'],_0x5e1096=this['_users']['getUser'](_0x4762db['id'])||this['_createUser'](_0x4762db),_0xea586c=Object['assign']({},_0x5e64c1,{'user':_0x5e1096});if(this['channelSessions']['get'](_0x213f8c)['add'](_0xea586c),!_0x4762db['hiddenInPresenceList']){const _0x306f9c=this['channelConnectedUsers']['get'](_0x213f8c);_0x306f9c['has'](_0x5e1096['id'])||_0x306f9c['add'](_0x5e1096),this['allConnectedUsers']['has'](_0x5e1096['id'])||_0x4762db['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x5e1096,_0x5e1096['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x213f8c,{'channelId':_0x213f8c,'session':_0xea586c});}['_handleSessionRemove'](_0x421ac2,_0x248b7e){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x578dd4=this['channelConnectedUsers']['get'](_0x421ac2),_0x3412c3=_0x248b7e['user'];_0x3412c3['id']&&(this['channelSessions']['get'](_0x421ac2)['remove'](_0x248b7e['id']),_0x578dd4['has'](_0x3412c3['id'])&&!this['getUserSessions'](_0x3412c3,_0x421ac2)['size']&&_0x578dd4['remove'](_0x3412c3['id']),this['allConnectedUsers']['get'](_0x3412c3['id'])&&!this['getUserSessions'](_0x3412c3)['size']&&this['allConnectedUsers']['remove'](_0x3412c3['id']));}['_createUser'](_0x139600,_0x39aee8){const _0x494b51=this['_users']['addUser'](_0x139600);return _0x39aee8&&this['_users']['defineMe'](_0x139600['id']),_0x494b51['orderNumber']=this['_uniqueUsersCount']++,_0x494b51;}}class UserMarkers extends _0x3e1b2c{['_domEmitter']=new(_0x1b98bf())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x23ddf4=this['editor'],_0x443933=_0x23ddf4['plugins']['get'](Sessions);_0x23ddf4['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x118494,{writer:_0x4ae16d})=>function(_0x1e1142,_0x1eeefd,_0x244d67,_0x3e2004){const _0x5ad651=_0x1e1142['markerName']['split'](':')[0x2],_0x4fe61d=_0x244d67['getUserBySessionId'](_0x5ad651);if(!_0x4fe61d||_0x5ad651===_0x244d67['mySessionId'])return;if(!_0x3e2004['model']['schema']['checkChild'](_0x1e1142['markerRange']['start'],'$text'))return;const _0x2cc05={'class':'ck-user__marker\x20'+_0x4fe61d['color']['getMarkerClass'](),'style':Y(_0x4fe61d),'data-name':_0x4fe61d['name'],'data-session-id':_0x5ad651},_0x4b21f2=_0x3e2004['model']['markers']['get'](_0x1e1142['markerName']),_0x5f1880=_0x4b21f2['getStart'](),_0x586125=_0x5f1880['nodeAfter'],_0x3861c7=_0x3e2004['model']['schema'];if(_0x586125&&_0x3861c7['isObject'](_0x586125)&&_0x3861c7['isInline'](_0x586125)&&!_0x3e2004['model']['markers']['get']('user:range:'+_0x5ad651)['getRange']()['isCollapsed'])return;const _0x470613=_0x5f1880['parent'];return _0x3e2004['model']['schema']['isLimit'](_0x470613)&&!_0x3e2004['model']['hasContent'](_0x470613)&&(_0x2cc05['contenteditable']=!0x1),function(_0x3dac1f,_0x404ccd,_0x414d43){const _0x10bc19=_0x3dac1f['createUIElement']('span',_0x404ccd);return _0x3dac1f['setCustomProperty']('userPositionMarker',!0x0,_0x10bc19),_0x10bc19['render']=function(_0x182ed1){const _0xc66a76=this['toDomElement'](_0x182ed1),_0x3f3a30=document['createElement']('span');return _0x3f3a30['classList']['add']('ck-user__marker-tooltip'),_0x3f3a30['setAttribute']('contenteditable','false'),_0x3f3a30['setAttribute']('spellcheck','false'),_0x3f3a30['textContent']=_0x414d43['name'],_0xc66a76['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x3f3a30['outerHTML']+'⁠',_0xc66a76['addEventListener']('mouseenter',()=>{_0xc66a76['classList']['add']('ck-user__marker_hovered');}),_0xc66a76['addEventListener']('mouseleave',()=>{_0xc66a76['classList']['remove']('ck-user__marker_hovered');}),_0xc66a76;},_0x10bc19['isSimilar']=function(_0x3a6244){return!(!this['getCustomProperty']('userPositionMarker')||!_0x3a6244['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x3a6244['getAttribute']('data-session-id'));},_0x10bc19;}(_0x1eeefd,_0x2cc05,_0x4fe61d);}(_0x118494,_0x4ae16d,_0x443933,_0x23ddf4)}),_0x23ddf4['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x3112fa=>function(_0x33a5d5,_0x20677b){const _0x1d836d=_0x33a5d5['markerName']['split'](':')[0x2];if(_0x1d836d===_0x20677b['mySessionId'])return null;const _0x3d376f=_0x20677b['getUserBySessionId'](_0x1d836d);if(!_0x3d376f)return{'id':_0x1d836d,'classes':[]};return{'id':_0x1d836d,'classes':['ck-user__selection',_0x3d376f['color']['getSelectionClass']()],'attributes':{'style':Y(_0x3d376f),'data-session-id':_0x1d836d},'priority':0x7d0+_0x3d376f['orderNumber']};}(_0x3112fa,_0x443933)}),function(_0x3585fb){const _0x693200=_0x3585fb['model'],_0x2889ab=new Map(),_0x3f8124=_0x3585fb['plugins']['get'](Sessions);_0x693200['markers']['on']('update:user:range',(_0x120f74,_0x2e2673,_0x191bdb,_0x1d1d36)=>{if(!_0x1d1d36&&_0x2889ab['get'](_0x2e2673['name']))return _0x2889ab['get'](_0x2e2673['name'])['detach'](),void _0x2889ab['delete'](_0x2e2673['name']);const _0x580aee=_0x2e2673['name']['split'](':')[0x2];if(_0x580aee===_0x3f8124['mySessionId'])return;const _0x405f6a='user:position:'+_0x580aee;_0x693200['markers']['has'](_0x405f6a)&&_0x3585fb['editing']['reconvertMarker'](_0x405f6a),_0x2e2673['on']('change:range',(_0x534314,_0x39c394,_0x293b73)=>{if('$graveyard'!=_0x39c394['root']['rootName']&&'$graveyard'==_0x2e2673['getRange']()['root']['rootName']&&!_0x2889ab['has'](_0x2e2673['name'])){const _0xc0d683=_0x693200['schema']['getNearestSelectionRange'](_0x293b73['deletionPosition']);if(_0xc0d683){const _0x26fcfd=_0x149575['fromRange'](_0xc0d683);_0x2889ab['set'](_0x2e2673['name'],_0x26fcfd),_0x26fcfd['on']('change:range',(_0x3abfaf,_0x53f45c,_0x52584a)=>{if('$graveyard'==_0x26fcfd['root']['rootName']){const _0x167b03=_0x693200['schema']['getNearestSelectionRange'](_0x52584a['deletionPosition']);_0x167b03?(_0x26fcfd['start']=_0x167b03['start'],_0x26fcfd['end']=_0x167b03['end']):(_0x2889ab['delete'](_0x2e2673['name']),_0x26fcfd['detach']());}});}}});}),_0x693200['document']['on']('change',()=>{_0x2889ab['size']>0x0&&_0x693200['enqueueChange']({'isUndoable':!0x1},_0xf5318c=>{for(const [_0x4e2e5f,_0x2ebe1b]of _0x2889ab)'$graveyard'==_0x693200['markers']['get'](_0x4e2e5f)['getRange']()['root']['rootName']&&(z(_0x4e2e5f['split'](':')[0x2],_0x2ebe1b['toRange'](),_0x693200,_0xf5318c),_0x2ebe1b['detach']());_0x2889ab['clear']();});});}(_0x23ddf4),this['_domEmitter']['listenTo'](_0x4bc758['document'],'keydown',(_0x3de571,{key:_0x511ff6})=>{'Escape'===_0x511ff6&&function(_0x53c85a){_0x53c85a['editing']['view']['change'](_0xf75225=>{for(const _0x6d496a of _0x53c85a['model']['markers']){if(!_0x6d496a['name']['startsWith']('user:position'))continue;const _0x439c65=_0x53c85a['editing']['mapper']['markerNameToElements'](_0x6d496a['name']);if(_0x439c65){for(const _0x1076ef of _0x439c65)_0xf75225['removeClass']('ck-user__marker_hovered',_0x1076ef);}}});}(_0x23ddf4);},{'useCapture':!0x0});}['afterInit'](){const _0x37a5ad=this['editor'],_0x48837f=_0x37a5ad['commands']['get']('undo');_0x48837f&&_0x37a5ad['model']['on']('applyOperation',(_0x59ef60,_0xe9eef)=>{const _0x2e2507=_0xe9eef[0x0];if(!_0x2e2507['isDocumentOperation'])return;if('marker'!=_0x2e2507['type']||!_0x2e2507['name']['startsWith']('user:'))return;const _0x32bae6=_0x2e2507['batch'];_0x48837f['_createdBatches']['has'](_0x32bae6)&&(_0x2e2507['newRange']=_0x2e2507['oldRange']?_0x37a5ad['model']['createRange'](_0x2e2507['oldRange']['start'],_0x2e2507['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x51f3d5=this['editor'],_0x47f9e9=_0x51f3d5['model']['document'],_0x2f971a=_0x51f3d5['plugins']['get'](Sessions);_0x51f3d5['model']['enqueueChange']({'isUndoable':!0x1},_0x4ada60=>{const _0x59c5e1='user:range:'+_0x2f971a['mySessionId'],_0x5d6187='user:position:'+_0x2f971a['mySessionId'],_0x26c4a0=_0x51f3d5['model']['markers']['has'](_0x59c5e1);_0x51f3d5['editing']['view']['hasDomSelection']?z(_0x2f971a['mySessionId'],_0x47f9e9['selection']['getFirstRange'](),_0x51f3d5['model'],_0x4ada60):_0x26c4a0&&(_0x4ada60['removeMarker'](_0x59c5e1),_0x4ada60['removeMarker'](_0x5d6187));});}}function z(_0x11f9a1,_0x8bcbaa,_0x5d9e4a,_0xd21b3c){const _0x445c2a='user:range:'+_0x11f9a1,_0x104a76='user:position:'+_0x11f9a1,_0x4638a4=_0x8bcbaa['getContainedElement']();let _0x3ddf23=_0x8bcbaa['start'];if(_0x4638a4&&_0x4638a4['is']('element','tableCell')){const _0x365760=function(_0xb3bb4,_0x33b13a){for(const _0x10e7fc of _0xb3bb4['getPositions']())if(_0x33b13a['schema']['checkChild'](_0x10e7fc,'$text'))return _0x10e7fc;}(_0x8bcbaa,_0x5d9e4a);_0x365760&&(_0x3ddf23=_0x365760,_0x8bcbaa=_0xd21b3c['createRange'](_0x3ddf23));}const _0x1096f9=_0xd21b3c['createRange'](_0x3ddf23);_0x5d9e4a['markers']['has'](_0x445c2a)?(_0xd21b3c['updateMarker'](_0x445c2a,{'range':_0x8bcbaa}),_0xd21b3c['updateMarker'](_0x104a76,{'range':_0x1096f9})):(_0xd21b3c['addMarker'](_0x445c2a,{'range':_0x8bcbaa,'usingOperation':!0x0}),_0xd21b3c['addMarker'](_0x104a76,{'range':_0x1096f9,'usingOperation':!0x0}));}function Y(_0x47557c){return'--ck-user-color:'+_0x47557c['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x47557c['color']['getColorAlphaVariable']()+';';}function K(_0x257f3b,_0x547d62,_0x36f3a6){const _0x35f971=_0x257f3b['t'],t=_0x257f3b['t'];switch(_0x547d62){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 _0x35f971({'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'},_0x36f3a6);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x3e1b2c{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
+ ((()=>_0xd68c02)());['_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,_0x3cac90,_0x564ea4,_0x533667];}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 _0x39c2c1=this['serverHistory']['getOperations']();for(let _0x5a0649=_0x39c2c1['length']-0x1;_0x5a0649>=0x0;_0x5a0649--){const _0x1a60d0=_0x39c2c1[_0x5a0649];if(!this['_disconnectionOperations']['has'](_0x1a60d0))return _0x1a60d0['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x7a7fac){if(super(_0x7a7fac),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x2bb064(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x1a0846('collaboration-missing-channelid',this);const _0x5c32cd=_0x7a7fac['config']['get']('cloudServices.bundleVersion')||_0x413b54;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x5c32cd,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x39c453(),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 _0x5b4005=this['editor'],_0x57a687=_0x5b4005['plugins']['get'](_0x564ea4),_0x49562b=_0x5b4005['plugins']['get'](WebSocketGateway);this['listenTo'](_0x57a687,'getOperationAuthor',(_0x2415cf,_0x137c7c)=>{const _0x5591b2=_0x137c7c[0x0];_0x5591b2['_authorId']&&(_0x2415cf['return']=_0x57a687['getUser'](_0x5591b2['_authorId']),_0x2415cf['stop']()),null===_0x5591b2['_authorId']&&(_0x2415cf['return']=null,_0x2415cf['stop']());},{'priority':'high'}),this['listenTo'](_0x5b4005['model']['document']['selection'],'change:range',(_0x3d1d64,_0x104c8a)=>{_0x104c8a['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x5b4005['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x5b4005['model']['on']('applyOperation',(_0x1b1efb,_0x61e38f)=>{const _0x47f871=_0x61e38f[0x0];_0x47f871['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x47f871),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x49562b,'state',this,'_hasSynchronizationProblem',(_0x2b10f1,_0x48bd2e)=>'connected'===_0x2b10f1&&!_0x48bd2e),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x5b4005['disableReadOnlyMode']('rtc-offline'):_0x5b4005['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x5b4005['disableReadOnlyMode']('rtc-offline'):_0x5b4005['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x5baf3b=this['editor']['plugins']['get'](Sessions),_0x499d8e=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x5baf3b['unregister'](this['_channelId']);const _0x2c5f19=await this['_service']['reconnect'](_0x499d8e['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x2c5f19)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x2f0973=await this['_service']['getConnectedSessions']();_0x5baf3b['register'](this['_channelId'],_0x2f0973),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0xd6957){if(function(_0x4834d3){return'404'===_0x4834d3['code'];}(_0xd6957)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x344edc){return'409'===_0x344edc['code'];}(_0xd6957)){const _0x2afd63=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'](_0x2afd63);}else{if(!(_0xd6957 instanceof ReconnectionError))throw _0xd6957;this['_handleReconnectionError']();}}}}['destroy'](){const _0x2776fd=this['editor']['plugins']['get'](WebSocketGateway),_0x55fa1f=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x55fa1f['channelSessions']['has'](this['_channelId'])&&_0x55fa1f['unregister'](this['_channelId']),_0x2776fd['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x54f600){if(this['sessionId']!==_0x54f600['sessionId']&&this['_lastSyncedOperationId']!==_0x54f600['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x54f600['sessionId'],this['_handleServerResponse']([],{..._0x54f600,'wereChangesApplied':!0x1,'data':_0x54f600['data']},'reconnect');}async['_connectService'](_0x433823,_0x3d1f26=!0x1){const {connection:_0x31b5ab}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x31b5ab,this['_channelId'])['then'](_0x187488=>this['_initSessionsHandling'](_0x187488))['catch'](_0x2db40c=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x2db40c);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x23b8b8,_0x191ae8)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x191ae8);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x4b72d3=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x433823);this['_isPendingUpdate']=!0x0;const _0x31ad6b=await this['_service']['connect'](_0x31b5ab,this['_compressOperations'](_0x433823),_0x4b72d3);if(this['sessionId']=_0x31ad6b['sessionId'],_0x3d1f26){if(!_0x31ad6b['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x31ad6b['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x433823,_0x31ad6b,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x31ad6b,_0x433823);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x2f7751=this['editor']['plugins']['get'](Sessions),_0x2ae05e=this['editor']['plugins']['get'](UserMarkers),_0x53050a=_0x2f7751['channelSessions']['get'](this['_channelId']);_0x53050a&&_0x53050a['length']>0x1?_0x2ae05e['createUserMarkerOperations']():this['listenTo'](_0x2f7751,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x2f7751['channelSessions']['get'](this['_channelId'])['length']&&_0x2ae05e['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x49e584,_0x504586,_0x38dc50,_0x4a70df){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x504586){const _0xfc2ca1=this['_decompressOperations'](_0x38dc50,_0x4a70df);await this['_fetchMissingUsers'](_0xfc2ca1),this['_handleExternalOperations'](_0xfc2ca1,_0x504586,_0x38dc50['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x1140b1}=this['editor'];let _0x34073b;try{_0x34073b=await this['_service']['getDocumentDetails']();}catch{const _0xc83245=K(_0x1140b1,'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'](_0xc83245);}const _0x1d7228=_0x34073b['currentDocumentSession']||_0x34073b['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x1d7228['lastOperationId']){const _0xd87caf=K(_0x1140b1,'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'](_0xd87caf);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x4f1809){const _0x4183a9=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x4183a9,'sessionAdd:'+this['_channelId'],(_0x413c0e,{session:_0x44e63f})=>{if(_0x44e63f['id']===_0x4183a9['mySessionId']){_0x413c0e['off']();const _0x411889=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x20b4fc=_0x44e63f['permissions'];_0x411889&&_0x411889['isEnabled']&&(_0x20b4fc=_0x20b4fc['filter'](_0x479262=>'document:write'!==_0x479262)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x20b4fc,this['_channelId']);}}),_0x4183a9['register'](this['_channelId'],_0x4f1809);}['_initThrowingOnDataSet'](){const _0x547021=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x21c9ea)=>{if(!_0x21c9ea[_0x21c9ea['length']-0x1]['suppressErrorInCollaboration'])throw new _0x1a0846('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x547021['apply'](this['editor']['data'],_0x21c9ea);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x2757a8,[_0x58a93e])=>{if(this['_document']['version'])throw new _0x1a0846('realtimecollaborationclient-init-document-already-initialized',this);_0x2757a8['stop'](),this['_setPendingAction']();const _0x56698a=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x20ed3b])=>!_0x20ed3b['lazyLoad'])['map'](([_0x38ad95,_0x1e1160])=>[_0x38ad95,_0x1e1160['modelAttributes']||{}])),_0x4803e4=this['_getOperationsFromInitData'](_0x58a93e,_0x56698a);0x0==_0x4803e4['length']&&_0x4803e4['push'](new _0x5da136(0x0)),_0x2757a8['return']=this['_connectService'](_0x4803e4)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x39ab79=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x39ab79))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0xaf27a0,[_0x1e78a2,_0x4419df])=>{_0xaf27a0['stop']();const _0x1fbb6d=this['editor']['model']['document']['getRoot'](_0x1e78a2);if(!this['_knownRootNames']['has'](_0x1e78a2)){const _0x426c07=_0x4419df&&_0x4419df['data']?_0x4419df['data']:'',_0x50b55e=_0x4419df&&_0x4419df['attributes']?_0x4419df['attributes']:{};await this['_loadRoot'](_0x1e78a2,_0x426c07,_0x50b55e);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x1fbb6d['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x1fbb6d);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x219af2){const _0x896083=this['editor']['plugins']['get'](_0x564ea4),{connection:_0x1d4782}=this['editor']['plugins']['get'](WebSocketGateway),_0x38411a=new Set();for(const _0x17ed14 of _0x219af2){const _0x3a50c2=_0x17ed14['_authorId'];_0x3a50c2&&!_0x896083['getUser'](_0x3a50c2)&&_0x38411a['add'](_0x3a50c2);}if(0x0===_0x38411a['size'])return;const _0xe1ea6f=await _0x3f347c['getMany'](_0x1d4782,Array['from'](_0x38411a));for(const _0x1046ad of _0xe1ea6f)_0x896083['getUser'](_0x1046ad['id'])||_0x896083['addUser'](_0x1046ad);}['_getOperationsFromInitData'](_0x52d7b0,_0x1fbc17={}){const _0x20f9aa=this['editor']['model'],_0x37382e=[];let _0x2b5b04=0x0;const _0x47ff30='string'==typeof _0x52d7b0?{'main':_0x52d7b0}:_0x52d7b0;for(const _0x588d78 of Object['keys'](_0x47ff30)){if(!this['_document']['roots']['has'](_0x588d78))throw new _0x1a0846('realtimecollaborationclient-init-non-existent-root',this);const _0x1b05fa=this['editor']['data']['parse'](_0x47ff30[_0x588d78]),_0xc88568=this['_document']['getRoot'](_0x588d78),_0x50c84c=new _0x36b2c1(_0x20f9aa['createPositionAt'](_0xc88568,0x0),_0x1b05fa,_0x2b5b04++);_0x37382e['push'](_0x50c84c);for(const [_0x208274,_0x62916a]of _0x1b05fa['markers']){const _0x190a86=_0x20f9aa['createRange'](_0x20f9aa['createPositionFromPath'](_0xc88568,_0x62916a['start']['path']['slice']()),_0x20f9aa['createPositionFromPath'](_0xc88568,_0x62916a['end']['path']['slice']())),_0x5b06f4=new _0x3376ca(_0x208274,null,_0x190a86,_0x20f9aa['markers'],!0x0,_0x2b5b04++);_0x37382e['push'](_0x5b06f4);}}if(_0x1fbc17)for(const [_0x3966b6,_0x5c5132]of Object['entries'](_0x1fbc17)){const _0xb61766=_0x20f9aa['document']['getRoot'](_0x3966b6);if(!_0xb61766)throw new _0x1a0846('multi-root-editor-root-attributes-no-root',null);for(const [_0x8bd12b,_0x42ab77]of Object['entries'](_0x5c5132))if(null!==_0x42ab77){const _0x28aab4=new _0x2a0d30(_0xb61766,_0x8bd12b,null,_0x42ab77,_0x2b5b04++);_0x37382e['push'](_0x28aab4);}}return _0x37382e;}async['_loadRoot'](_0x3365c1,_0x3347cc,_0x3f9917){this['_getOperationsFromInitData']({[_0x3365c1]:_0x3347cc},{[_0x3365c1]:_0x3f9917})['forEach']((_0x83387b,_0x334e44)=>{_0x83387b['baseVersion']=this['_document']['version']+_0x334e44,_0x83387b['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x83387b);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x37d1ad,_0x51e925){let _0x35ec82;this['_offset']=_0x37d1ad['offset'];const _0x1b5dd7=_0x37d1ad['wereChangesApplied']&&!_0x37d1ad['initData'],_0x22b73b=_0x1b5dd7?0x0:_0x37d1ad['data']['baseVersion'];if(_0x51e925['forEach'](_0x3976bd=>{_0x3976bd['_isInit']=!0x0,_0x3976bd['createdAt']=_0x37d1ad['sessionCreatedAt'],_0x3976bd['_authorId']=null;}),_0x1b5dd7)_0x35ec82=_0x51e925,this['_applyOperationsSet'](_0x35ec82,_0x1b5dd7);else{if(_0x37d1ad['initData']){const _0x88a9a3=this['_getOperationsFromInitData'](_0x37d1ad['initData']);this['_document']['history']['version']=-_0x88a9a3['length'],_0x88a9a3['forEach'](_0x58f4e7=>{_0x58f4e7['baseVersion']-=_0x88a9a3['length'],_0x58f4e7['createdAt']=_0x37d1ad['sessionCreatedAt'],_0x58f4e7['_isInit']=!0x0,_0x58f4e7['_authorId']=null;}),this['_applyOperationsSet'](_0x88a9a3,!0x0),this['serverHistory']['version']=-_0x88a9a3['length']+this['_offset'],this['_updateServerHistory'](_0x88a9a3);}this['_document']['history']['version']=_0x22b73b,_0x35ec82=this['_decompressOperations'](_0x37d1ad['data'],_0x37d1ad['metadata']),await this['_fetchMissingUsers'](_0x35ec82),this['_applyOperationsSet'](_0x35ec82,_0x1b5dd7);}_0x37d1ad['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x35ec82,_0x37d1ad['lastOperationId']),this['_lastSyncedOperationId']=_0x37d1ad['lastOperationId']),this['serverHistory']['version']=_0x22b73b+this['_offset'],this['_updateServerHistory'](_0x35ec82),_0x51e925['filter'](_0xc92b8a=>{const _0x1fa3c9=this['_getAffectedRoot'](_0xc92b8a);return _0x1fa3c9&&!this['_knownRootNames']['has'](_0x1fa3c9);})['forEach']((_0x3aba25,_0x4c7e27)=>{_0x3aba25['baseVersion']=this['_document']['version']+_0x4c7e27,this['_saveOperationInBuffer'](_0x3aba25);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x51be8e,_0x5ac02f){const _0x264fc7=_0x5ac02f&&_0x5ac02f['message'];if(_0x264fc7&&_0x264fc7['startsWith']('realtimecollaborationclient'))throw _0x5ac02f;const _0x33fca3=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x33fca3['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x1a0846(_0x51be8e,this['editor'],_0x264fc7?{'originalError':_0x264fc7}:void 0x0);}['_saveOperationInBuffer'](_0x3b8efa){this['_knownOperations']['has'](_0x3b8efa)||(this['_knownOperations']['add'](_0x3b8efa),this['_bufferedOperations']['push'](_0x3b8efa),this['_pendingAction']||'marker'==_0x3b8efa['type']&&!_0x3b8efa['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x3a92c4=!0x1){!_0x3a92c4&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0xe2e16b=>{_0xe2e16b&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x330c16=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0xd9a495){return _0xd9a495['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0xd9a495['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0xd9a495['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x330c16)||this['_crash'](_0x330c16['message'],_0x330c16);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x3739fe=>{this['on']('change:_isPendingUpdate',()=>{_0x3739fe();});});}async['_sendBufferedOperations'](){const _0x3ce940=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x3ce940['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x33f9bb=[...this['_bufferedOperations']];for(const _0x945300 of _0x33f9bb)_0x945300['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x945300);const _0x22e8c0=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x33f9bb),_0x2f227a=J++,_0x584bcf=this['_compressOperations'](_0x33f9bb),_0xe19c36=await this['_service']['sendOperations'](_0x584bcf,_0x584bcf['baseVersion'],_0x22e8c0);try{return await this['_handleServerResponse'](_0x33f9bb,_0xe19c36,_0x2f227a);}catch(_0x911223){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x911223);}}async['_handleServerResponse'](_0x21240d,_0x3d93b3,_0x16a43c){if('error'in _0x3d93b3)throw _0x3d93b3['error'];let _0xf005ab=!0x1;if(_0x3d93b3['wereChangesApplied']){_0x3d93b3['lastOperationId']&&(this['_lastSyncedOperationId']=_0x3d93b3['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x44a99c=>!_0x21240d['includes'](_0x44a99c));for(const _0x53065a of _0x21240d)_0x53065a['createdAt']='lastOperationAcceptedAt'in _0x3d93b3&&_0x3d93b3['lastOperationAcceptedAt']||void 0x0;Q(_0x21240d,_0x3d93b3['version']-_0x21240d['length']),this['_updateServerHistory'](_0x21240d);const _0x5215b5=_0x21240d['filter'](_0x47ed2c=>{if(!_0x47ed2c['_isInit'])return!0x1;const _0x4f5933=this['_getAffectedRoot'](_0x47ed2c);return _0x4f5933&&!this['_knownRootNames']['has'](_0x4f5933);});Q(_0x5215b5,this['_document']['version']),this['_applyOperationsSet'](_0x5215b5),_0xf005ab=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x755acc=this['_decompressOperations'](_0x3d93b3['data'],_0x3d93b3['metadata'])['filter'](_0x5937ae=>_0x5937ae['baseVersion']>=this['_lastServerVersion']);_0x755acc['forEach'](_0x22c510=>this['_addKnownRoot'](_0x22c510)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x146397=>!_0x146397['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x146397))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x755acc),_0xf005ab=this['_handleExternalOperations'](_0x755acc,_0x3d93b3['version'],_0x3d93b3['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0xf005ab?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x47fa4d,_0x16a2a3,_0x489f07){try{const _0x68ac99={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x48063f,operationsB:_0x508c6c,originalOperations:_0x47e686}=_0x1efb71(_0x47fa4d,this['_bufferedOperations'],_0x68ac99);Q(_0x48063f,this['_document']['version']),Q(_0x508c6c,_0x16a2a3);for(const _0x14ea9e of _0x48063f){const _0x25bc53=_0x47e686['get'](_0x14ea9e);_0x14ea9e['_authorId']=_0x25bc53?_0x25bc53['_authorId']:null;}_0x489f07&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x47fa4d,_0x489f07),this['_lastSyncedOperationId']=_0x489f07),this['_bufferedOperations']=[..._0x508c6c],this['_applyOperationsSet'](_0x48063f),this['_updateServerHistory'](_0x47fa4d);}catch(_0x50c4e0){return console['error'](_0x50c4e0),!0x1;}return!0x0;}['_applyOperationsSet'](_0xeb5d7,_0x1166b2=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x2740ec=>{for(const _0x5a7a47 of _0xeb5d7)this['_knownOperations']['add'](_0x5a7a47),this['_addKnownRoot'](_0x5a7a47),_0x2740ec['batch']['addOperation'](_0x5a7a47),this['editor']['model']['applyOperation'](_0x5a7a47);});}['_addKnownRoot'](_0x512a2e){const _0x14d802=this['_getAffectedRoot'](_0x512a2e);_0x14d802&&this['_knownRootNames']['add'](_0x14d802);}['_getAffectedRoot'](_0x341c9e){let _0x3dc9dd,_0x3abb5e;switch(_0x341c9e['type']){case'insert':_0x3dc9dd=_0x341c9e['position']['root'];break;case'marker':if(_0x3abb5e=_0x341c9e['newRange'],!_0x3abb5e)return null;_0x3dc9dd=_0x3abb5e['root'];break;case'addRootAttribute':_0x3dc9dd=_0x341c9e['root'];break;case'addRoot':_0x3dc9dd=_0x341c9e['affectedSelectable'];break;case'move':_0x3dc9dd=_0x341c9e['targetPosition']['root'];break;default:return null;}return _0x3dc9dd['rootName'];}['_updateServerHistory'](_0x213342){_0x213342['forEach'](_0x37c3da=>{const _0x404f93=_0x37c3da['clone']();_0x404f93['_authorId']=_0x37c3da['_authorId'],_0x404f93['_isInit']=!!_0x37c3da['_isInit'],_0x404f93['createdAt']=_0x37c3da['createdAt'],_0x404f93['baseVersion']+=this['_offset'],_0x37c3da['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x404f93),this['serverHistory']['addOperation'](_0x404f93);});}['_handleReconnectionError'](_0x14ae80){const _0x50ee00=this['editor']['plugins']['get']('Notification'),_0x13ca12=this['editor']['locale'];_0x14ae80||(_0x14ae80=K(_0x13ca12,'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.')),_0x50ee00['showWarning'](_0x14ae80,{'title':K(_0x13ca12,'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'](_0x3cac90)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x3cac90)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x4ac0e7){const _0x100fd7=_0x4ac0e7['map'](_0x29a70e=>_0x29a70e['toJSON']());return this['_compressor']['compress'](_0x100fd7);}['_decompressOperations'](_0x2c2b5e,_0xb80b10){return this['_compressor']['decompress'](_0x2c2b5e)['map']((_0x556dac,_0x303b3f)=>{const _0x23dc8e='init'==_0xb80b10[_0x303b3f]['type'];if('InsertOperation'==_0x556dac['__className']){const _0x1ee2c4=_0x556dac['position']['root'];!this['_document']['getRoot'](_0x1ee2c4)&&(this['_document']['createRoot']('$root',_0x1ee2c4)['_isAttached']=!0x1);}const _0x42243d=_0x2b980b['fromJSON'](_0x556dac,this['_document']);return _0x42243d['wasUndone']=_0x556dac['wasUndone'],_0x42243d['_isInit']=_0x23dc8e,_0x42243d['_authorId']=_0x23dc8e?null:_0xb80b10[_0x303b3f]['userId'],_0x42243d['_isDisconnection']='cs:removeUser'===_0xb80b10[_0x303b3f]['type'],_0x42243d['createdAt']=_0xb80b10[_0x303b3f]['createdAt'],_0x42243d;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x2ce13a=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x2ce13a&&_0x2ce13a['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x22a741,_0x214b8d){for(const _0x2e371d of _0x22a741)_0x2e371d['baseVersion']=_0x214b8d++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x48b6e6){this['_ignoredOperations']=_0x48b6e6,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x54d587){let _0x41b28a=_0x54d587['length'];for(;_0x41b28a--;){const _0x3dbdbf=_0x54d587[_0x41b28a];if(!this['_ignoredOperations']['has'](_0x3dbdbf)){if(!this['_operationToId']['has'](_0x3dbdbf)){const _0x9422d5=_0x4610fb()['slice'](0x1,0x12);this['_operationToId']['set'](_0x3dbdbf,_0x9422d5);}return this['_operationToId']['get'](_0x3dbdbf);}}}['setIdForTheLastOperation'](_0x1dd02c,_0x4259d2){if(!_0x4259d2)return;let _0x371fa3=_0x1dd02c['length'];for(;_0x371fa3--;){const _0xbfdd67=_0x1dd02c[_0x371fa3];this['_ignoredOperations']['has'](_0xbfdd67)||this['_operationToId']['set'](_0xbfdd67,_0x4259d2);}}}class RealTimeCollaborativeEditing extends _0x3e1b2c{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0xa3b26a{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
+ ((()=>_0x43f74a)());['_services'];static get['requires'](){return[WebSocketGateway,_0x5941a0,Sessions,_0x564ea4];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0xe9e542){super(_0xe9e542),this['_services']=new Map();}async['init'](){const _0x139de5=this['context'],_0x4552f8=_0x139de5['plugins']['get'](_0x5941a0);if(_0x139de5['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x4552f8['adapter']={'addCommentThread':async({channelId:_0x5e1ec3,threadId:_0x4cbc95,comments:_0x1895c2,resolvedAt:_0x3bb801,resolvedBy:_0x139962,context:_0x4a67d9,attributes:_0x48edae})=>{const _0x1a7945=await this['_getService'](_0x5e1ec3)['addCommentThread']({'commentThreadId':_0x4cbc95,'comments':_0x1895c2['map'](_0x355b69=>function(_0x160120,_0x1ea619,_0x3b0339){return{'commentThreadId':_0x3b0339,'commentId':_0x160120['commentId'],'userId':_0x160120['authorId'],'content':_0x160120['content'],'documentId':_0x1ea619,'createdAt':_0x160120['createdAt'],'attributes':_0x160120['attributes']||{}};}(_0x355b69,_0x5e1ec3,_0x4cbc95)),'resolvedAt':_0x3bb801,'resolvedBy':_0x139962,'context':_0x4a67d9,'attributes':_0x48edae})['catch'](Z);return{'threadId':_0x1a7945['commentThreadId'],'comments':_0x1a7945['comments']};},'getCommentThread':async({channelId:_0x154b1b,threadId:_0x320458})=>{const _0x5e887c=await this['_getService'](_0x154b1b)['getCommentThread'](_0x320458)['catch'](X)['catch'](Z);return _0x5e887c?_0x5e887c['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x5e887c]),{'threadId':_0x5e887c['commentThreadId'],'comments':_0x5e887c['comments']['map'](tt),'context':_0x5e887c['context'],'resolvedAt':_0x5e887c['resolvedAt'],'resolvedBy':_0x5e887c['resolvedBy'],'attributes':_0x5e887c['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x1aacfa,threadId:_0x18fb4d,context:_0xd8de54,unlinkedAt:_0x1aca6d,attributes:_0x5c0429})=>this['_getService'](_0x1aacfa)['updateCommentThread']({'commentThreadId':_0x18fb4d,'context':_0xd8de54,'attributes':_0x5c0429,'unlinkedAt':_0x1aca6d})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x22f83a,threadId:_0x14bf01})=>{const _0xfe9f4f=await this['_getService'](_0x22f83a)['resolveCommentThread'](_0x14bf01)['catch'](X)['catch'](Z);return{'threadId':_0xfe9f4f['commentThreadId'],'resolvedAt':_0xfe9f4f['resolvedAt'],'resolvedBy':_0xfe9f4f['resolvedBy']};},'reopenCommentThread':async({channelId:_0x1d2fd5,threadId:_0x2f36bf})=>this['_getService'](_0x1d2fd5)['reopenCommentThread'](_0x2f36bf)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x352705,threadId:_0x5d1190})=>this['_getService'](_0x352705)['removeCommentThread'](_0x5d1190)['catch'](X)['catch'](Z),'addComment':({channelId:_0xcc7333,threadId:_0x62cf4b,commentId:_0x4256e6,content:_0x203e21,attributes:_0x40c7ac})=>this['_getService'](_0xcc7333)['addComment'](_0x62cf4b,_0x4256e6,_0x203e21,_0x40c7ac)['catch'](Z),'updateComment':({channelId:_0x13c1a3,threadId:_0x291565,commentId:_0x2613c4,content:_0xf2e48b,attributes:_0x3df1b5})=>this['_getService'](_0x13c1a3)['updateComment'](_0x291565,_0x2613c4,_0xf2e48b,_0x3df1b5)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x35065a,threadId:_0x40eb38,commentId:_0x355565})=>this['_getService'](_0x35065a)['removeComment'](_0x40eb38,_0x355565)['catch'](X)['catch'](Z)},_0x139de5 instanceof _0x2d4166){const _0x413f99=_0x139de5['config']['get']('collaboration.channelId'),_0x2a6dc7=_0x139de5['plugins']['get'](Sessions);await this['_setUpService'](_0x413f99);const _0x49662e=await this['_services']['get'](_0x413f99)['getConnectedSessions']();this['listenTo'](_0x2a6dc7,'sessionAdd:'+_0x413f99,(_0x3b04b0,{session:_0x543e5e})=>{_0x543e5e['id']===_0x2a6dc7['mySessionId']&&(_0x3b04b0['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x543e5e['permissions'],_0x413f99));}),_0x2a6dc7['register'](_0x413f99,_0x49662e);}}async['_setUpService'](_0x5efb5c){if(this['_services']['has'](_0x5efb5c))throw new _0x1a0846('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x5efb5c});const _0x90d8be=this['context']['plugins']['get'](_0x5941a0),_0x2844cd=new CloudServicesCommentsAdapter['CommentsService'](_0x5efb5c);this['_services']['set'](_0x5efb5c,_0x2844cd),this['listenTo'](_0x2844cd,'commentThreadAdded',(_0x4a4564,_0x1243c5)=>{const {commentThreadId:_0x3ac1e1,documentId:_0x34a461,context:_0x7fc02e,attributes:_0x34d5b2,resolvedAt:_0x15c418,resolvedBy:_0x1fc87e,comments:_0x22a1a0}=_0x1243c5;_0x90d8be['getCommentThread'](_0x3ac1e1)||_0x90d8be['addCommentThread']({'threadId':_0x3ac1e1,'channelId':_0x34a461,'comments':_0x22a1a0?_0x22a1a0['map'](tt):[],'context':_0x7fc02e,'attributes':_0x34d5b2,'resolvedAt':_0x15c418,'resolvedBy':_0x1fc87e,'isFromAdapter':!0x0});}),this['listenTo'](_0x2844cd,'commentThreadUpdated',(_0x4dd5a0,{commentThreadId:_0x337e08,documentId:_0x11043d,context:_0xb43243,unlinkedAt:_0x4b896a,attributes:_0x580fb7})=>{_0x90d8be['getCommentThread'](_0x337e08)&&_0x90d8be['updateCommentThread']({'threadId':_0x337e08,'channelId':_0x11043d,'context':_0xb43243,'unlinkedAt':_0x4b896a,'attributes':_0x580fb7,'isFromAdapter':!0x0});}),this['listenTo'](_0x2844cd,'commentThreadResolved',(_0xd1f8c6,{commentThreadId:_0x45ec61,resolvedBy:_0x122525,resolvedAt:_0x5ce6ac})=>{const _0x3ea922=_0x90d8be['getCommentThread'](_0x45ec61);_0x3ea922&&_0x3ea922['resolve']({'resolvedBy':_0x122525,'resolvedAt':_0x5ce6ac,'isFromAdapter':!0x0});}),this['listenTo'](_0x2844cd,'commentThreadReopened',(_0x3d5b4a,{commentThreadId:_0x58f50e})=>{const _0x4d6fdf=_0x90d8be['getCommentThread'](_0x58f50e);_0x4d6fdf&&_0x4d6fdf['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x2844cd,'commentThreadRemoved',(_0x515902,{commentThreadId:_0x36313f})=>{const _0x39b8cb=_0x90d8be['getCommentThread'](_0x36313f);_0x39b8cb&&_0x39b8cb['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x2844cd,'commentAdded',(_0x2f1cc8,_0x18e665)=>{const _0x5cfc6c=_0x18e665['commentThreadId'],_0x1fa74a=_0x90d8be['getCommentThread'](_0x5cfc6c);_0x1fa74a&&_0x1fa74a['addComment']({...tt(_0x18e665),'isFromAdapter':!0x0});}),this['listenTo'](_0x2844cd,'commentUpdated',(_0x3a70e5,{commentThreadId:_0x43291c,commentId:_0x1fb83b,content:_0x53232f,attributes:_0x569adb})=>{const _0x2001f8=_0x90d8be['getCommentThread'](_0x43291c);if(_0x2001f8){const _0x454f5e=_0x2001f8['getComment'](_0x1fb83b);_0x454f5e&&_0x454f5e['update']({'content':_0x53232f,'attributes':_0x569adb,'isFromAdapter':!0x0});}}),this['listenTo'](_0x2844cd,'commentRemoved',(_0x30094b,{commentThreadId:_0x43b6a5,commentId:_0x5a1057})=>{const _0x323ef0=_0x90d8be['getCommentThread'](_0x43b6a5);if(_0x323ef0){const _0x48fbe9=_0x323ef0['getComment'](_0x5a1057);_0x48fbe9&&_0x48fbe9['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x5efb5c);}['destroy'](){if(this['context']instanceof _0x2d4166){const _0x48d729=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x48d729);}}['_terminateService'](_0x37c88e){if(!this['_services']['has'](_0x37c88e))throw new _0x1a0846('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x37c88e});this['_getService'](_0x37c88e)['disconnect'](),this['_services']['delete'](_0x37c88e);}async['reconnect'](){for(const _0x5d9403 of this['_services']['keys']())await this['_connectService'](_0x5d9403);if(this['context']instanceof _0x2d4166){const _0x43247a=this['context']['config']['get']('collaboration.channelId'),_0x37b112=this['context']['plugins']['get'](Sessions);_0x37b112['unregister'](_0x43247a);const _0xc3b947=await this['_services']['get'](_0x43247a)['getConnectedSessions']();_0x37b112['register'](_0x43247a,_0xc3b947);}}async['_connectService'](_0xddc394){const {connection:_0x4011c4}=this['context']['plugins']['get'](WebSocketGateway),_0xb02106=this['context']['plugins']['get'](_0x5941a0),_0x1b1e53=this['_services']['get'](_0xddc394),_0x1b15f3=await _0x1b1e53['connect'](_0x4011c4);await this['_fetchMissingUsersForThreads'](_0x1b15f3);const _0x2930aa=new Set(Array['from'](_0xb02106['getCommentThreads']({'channelId':_0xddc394}),_0x8be08d=>_0x8be08d['id']));for(const _0x49771d of _0x1b15f3)_0x49771d['deletedAt']||_0x2930aa['delete'](_0x49771d['commentThreadId']);for(const _0x1e0a6b of _0x2930aa)_0xb02106['getCommentThread'](_0x1e0a6b)['remove']({'isFromAdapter':!0x0});for(const _0xf47ec1 of _0x1b15f3){let _0x3c4cef=_0xb02106['getCommentThread'](_0xf47ec1['commentThreadId']);const {commentThreadId:_0x5eb26e,context:_0x5a2050,attributes:_0x12d860,resolvedBy:_0x14b7aa,resolvedAt:_0x3cf8a9,unlinkedAt:_0x11e114,deletedAt:_0x41f697}=_0xf47ec1;if(_0x41f697)continue;_0x3c4cef||(_0x3c4cef=_0xb02106['addCommentThread']({'channelId':_0xddc394,'threadId':_0x5eb26e,'context':_0x5a2050,'attributes':_0x12d860||{},'resolvedBy':_0x14b7aa,'resolvedAt':_0x3cf8a9,'unlinkedAt':_0x11e114,'isFromAdapter':!0x0}));const _0x513238=new Set(Array['from'](_0x3c4cef['comments'],_0x47056f=>_0x47056f['id']));for(const _0x222948 of _0xf47ec1['comments'])_0x513238['delete'](_0x222948['commentId']);for(const _0x42cfaa of _0x513238)_0x3c4cef['getComment'](_0x42cfaa)['remove']({'isFromAdapter':!0x0});for(const _0x5a267f of _0xf47ec1['comments']){const _0x1d0504=_0x3c4cef['getComment'](_0x5a267f['commentId']);_0x1d0504?_0x1d0504['content']!==_0x5a267f['content']&&_0x1d0504['update']({'content':_0x5a267f['content'],'isFromAdapter':!0x0}):_0x3c4cef['addComment'](Object['assign'](tt(_0x5a267f),{'isFromAdapter':!0x0}));}}}['_getService'](_0x1e4038){if(!this['_services']['has'](_0x1e4038))throw new _0x1a0846('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x1e4038});return this['_services']['get'](_0x1e4038);}async['_fetchMissingUsersForThreads'](_0x3f8a67){const _0x3eae85=this['context']['plugins']['get'](_0x564ea4),{connection:_0x153d32}=this['context']['plugins']['get'](WebSocketGateway),_0x2a0001=new Set();for(const {resolvedBy:_0x33968a,comments:_0x74102a}of _0x3f8a67){_0x33968a&&!_0x3eae85['getUser'](_0x33968a)&&_0x2a0001['add'](_0x33968a);for(const {userId:_0x25c49d}of _0x74102a)_0x3eae85['getUser'](_0x25c49d)||_0x2a0001['add'](_0x25c49d);}if(0x0===_0x2a0001['size'])return;const _0x52ea6a=await _0x3f347c['getMany'](_0x153d32,Array['from'](_0x2a0001));for(const _0x44a503 of _0x52ea6a)_0x3eae85['getUser'](_0x44a503['id'])||_0x3eae85['addUser'](_0x44a503);}}async function X(_0x17b32e){if('404'!==_0x17b32e['code'])throw _0x17b32e;}function Z(_0x2b4867){if((_0x35ac41=_0x2b4867)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x35ac41['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x35ac41['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x35ac41;throw _0x2b4867;}function tt(_0x52b6c4){return{'threadId':_0x52b6c4['commentThreadId'],'commentId':_0x52b6c4['commentId'],'content':_0x52b6c4['content'],'createdAt':_0x52b6c4['createdAt'],'authorId':_0x52b6c4['userId'],'attributes':_0x52b6c4['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x3e1b2c{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
+ ((()=>_0x17a138)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x34092a,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x4caf7e){super(_0x4caf7e);const _0x34b38a=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x34b38a);}['init'](){const _0x226dfc=this['editor']['plugins']['get'](WebSocketGateway),_0x3f1cc3=this['editor']['plugins']['get'](_0x34092a);return _0x3f1cc3['adapter']={'getSuggestion':async _0x3a0907=>{await this['_waitForServiceReady']();const _0x3c69be=await this['_trackChangesService']['get'](_0x3a0907)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x3c69be]),_0x3c69be;},'addSuggestion':async({id:_0x3f2745,type:_0x141490,data:_0x486c91,originalSuggestionId:_0x46df3b,attributes:_0x3b1b1e})=>{await this['_waitForServiceReady']();const _0x1e99bf={'id':_0x3f2745,'type':_0x141490,'data':_0x486c91,'originalSuggestionId':_0x46df3b,'attributes':_0x3b1b1e},_0x12e209=await this['_trackChangesService']['add'](_0x3f2745,_0x141490,_0x486c91,_0x46df3b,_0x3b1b1e)['catch'](_0x5b32da=>{if(st(_0x5b32da))return new Promise(_0x428e49=>{this['_bufferedRequests']['set'](_0x3f2745,{'resolve':_0x428e49,'suggestionData':_0x1e99bf});});throw _0x5b32da;});return this['_bufferedRequests']['delete'](_0x3f2745),_0x12e209;},'updateSuggestion':async(_0x4bfb49,_0x19423a)=>{if(await this['_waitForServiceReady'](),'open'!==_0x19423a['state'])return this['_trackChangesService']['update'](_0x4bfb49,_0x19423a)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x4537e2,_0x4a6aab)=>{_0x3f1cc3['hasSuggestion'](_0x4a6aab['id'])&&(_0x3f1cc3['getSuggestion'](_0x4a6aab['id'])['attributes']=_0x4a6aab['attributes']);}),this['_trackChangesService']['connect'](_0x226dfc['connection'])['then'](_0x379e60=>(_0x226dfc['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x379e60)['then'](()=>{for(const _0x47e1e0 of _0x379e60){_0x3f1cc3['addSuggestionData'](_0x47e1e0)['_saved']=!0x0;}})));}async['reconnect'](){const _0x489d81=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x4b8931}=this['editor']['plugins']['get'](WebSocketGateway),_0x532dac=await this['_trackChangesService']['connect'](_0x4b8931);await this['_fetchMissingUsersForThreads'](_0x532dac);for(const {suggestionData:_0x583744,resolve:_0x1e6dd1}of this['_bufferedRequests']['values']()){let _0x1d1ba0=_0x532dac['find'](_0x25e962=>_0x25e962['id']===_0x583744['id']);_0x1d1ba0||(_0x1d1ba0=await this['_trackChangesService']['add'](_0x583744['id'],_0x583744['type'],_0x583744['data'],_0x583744['originalSuggestionId'])),_0x1e6dd1(_0x1d1ba0);}for(const _0x2bb385 of _0x532dac)_0x489d81['hasSuggestion'](_0x2bb385['id'])||_0x489d81['addSuggestionData'](_0x2bb385);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x23712c=>{this['listenTo'](this['_trackChangesService'],'connected',_0x3da126=>{_0x3da126['off'](),_0x23712c();});});}async['_fetchMissingUsersForThreads'](_0x32288a){const _0xfb45a6=this['editor']['plugins']['get'](_0x564ea4),{connection:_0x512740}=this['editor']['plugins']['get'](WebSocketGateway),_0x4fab12=new Set();for(const {authorId:_0x1728d2}of _0x32288a)_0xfb45a6['getUser'](_0x1728d2)||_0x4fab12['add'](_0x1728d2);if(0x0===_0x4fab12['size'])return;const _0x2b20a5=await _0x3f347c['getMany'](_0x512740,Array['from'](_0x4fab12));for(const _0x30f7ad of _0x2b20a5)_0xfb45a6['getUser'](_0x30f7ad['id'])||_0xfb45a6['addUser'](_0x30f7ad);}}function et(_0x2124b0){if(st(_0x2124b0))return new Promise(()=>{});throw _0x2124b0;}function st(_0x5e5760){return _0x5e5760['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x5e5760['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x3e1b2c{static get['requires'](){return[_0x1adcd7,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x3b5439=this['editor']['plugins']['get'](WebSocketGateway),_0x2edafa=this['editor']['plugins']['get'](_0xded297),_0x4c769c=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x3b5439,'change:state',(_0x34ef3b,_0x2f2264,_0x14047f)=>{_0x2edafa['isThreadsLoadingPaused']='connected'!==_0x14047f;});}),this['listenTo'](_0x3b5439,'change:state',(_0x241def,_0x16b219,_0x2bf814)=>{this['editor']['plugins']['get'](_0x5941a0)['switchReadOnly']('connected'!==_0x2bf814);}),_0x4c769c['_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 _0x3e1b2c{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x2f2b1c];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x3e1b2c{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
+ ((()=>_0x37164c)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x2074bb,Sessions,_0x564ea4];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x35ae4e){super(_0x35ae4e);const _0x3214a4=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x3214a4);}async['init'](){const _0x3cd5db=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x587f97=_0x3cd5db['serverHistory'],_0x28e5b3=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x587f97,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x3cd5db['sessionId']});const _0x1055c6=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x413b54,_0x3e9c28=await _0x11f591['isBundleUploaded'](_0x28e5b3['connection'],_0x1055c6);this['editor']['plugins']['get'](_0x2074bb)['adapter']={'getRevision':async({revisionId:_0x2a588d})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x2a588d)),'updateRevisions':async _0x10a7c2=>{await this['_waitForServiceReady']();const _0x1e6e87=this['_revisionTracker']['currentRevision'];if(_0x3e9c28&&0x1===_0x10a7c2['length']&&_0x10a7c2[0x0]['id']===_0x1e6e87['id'])return _0x10a7c2;for(const _0x46a594 of _0x10a7c2)_0x46a594['id']===_0x1e6e87['id']&&(_0x46a594['isEmptyCurrent']=_0x46a594['fromVersion']===_0x46a594['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x10a7c2,this['_lastRequestId'])['then'](_0x2decaa=>(this['_lastRequestId']=_0x2decaa,_0x10a7c2))['catch'](_0x146c57=>{if(it(_0x146c57)||'400'===_0x146c57['code']&&void 0x0!==_0x146c57['data']['wrongRequestId']){for(const _0x2ad996 of _0x10a7c2){!this['_revisionTracker']['repository']['getRevision'](_0x2ad996['id'])||this['_revisionTracker']['_bufferUpdate'](_0x2ad996['id'],_0x2ad996,!0x1);}if(it(_0x146c57)&&'destroyed'!==this['editor']['state'])throw _0x146c57;return _0x10a7c2;}throw _0x146c57;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x4c491b,{revisionsData:_0x513faa,requestId:_0x58e760})=>{Math['max'](..._0x513faa['map'](_0x3fcbea=>_0x3fcbea['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x513faa,_0x58e760);}):this['_handleRevisionsUpdate'](_0x513faa,_0x58e760);});const {revisions:_0x209083,requestId:_0x5291e9}=await this['_revisionHistoryService']['connect'](_0x28e5b3['connection']);_0x28e5b3['addToReconnectionStack'](this),this['_lastRequestId']=_0x5291e9,await this['_fetchMissingUsers'](_0x209083);for(const _0x4435b1 of _0x209083)this['_revisionTracker']['addRevisionData'](_0x4435b1);this['listenTo'](_0x3cd5db,'change:_isConnected',(_0x4c27d3,_0x233c13,_0x149656)=>{_0x149656&&(this['_oldOffset']=_0x3cd5db['_offset'],_0x4c27d3['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x28e5b3,'state',_0x5ee14f=>_0x5ee14f===_0x34ec08['CONNECTED']);}async['reconnect'](){const _0x109699=this['editor']['plugins']['get'](WebSocketGateway),_0x282637=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x3c333d=async()=>{const _0x87d03a=this['_revisionTracker']['currentRevision'],_0x2e27ac=_0x87d03a['id'],_0x56e489=_0x2e27ac!==_0x282637['sessionId'];if(_0x56e489){const _0x396fa5=_0x282637['_offset']-this['_oldOffset'],_0x1e3af9=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x87d03a['toVersion']+_0x396fa5!==_0x1e3af9){const _0xca63cf=_0x87d03a['fromVersion']+_0x396fa5,_0x39ee11=this['editor']['plugins']['get'](_0x564ea4),_0x3767f5=this['_revisionTracker']['buildRevisionData']({'revision':_0x87d03a,'from':_0xca63cf,'to':_0x1e3af9});_0x3767f5['id']=_0x87d03a['id'];const _0x2f21f3=_0x3767f5['authorsIds']['map'](_0x58b174=>_0x39ee11['getUser'](_0x58b174));_0x87d03a['_update']({..._0x3767f5,'authors':_0x2f21f3},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x87d03a['id'],_0x3767f5,!0x0);}this['_revisionTracker']['_startingVersion']=_0x1e3af9,(_0x87d03a['toVersion']===_0x87d03a['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x2e27ac)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x2e27ac),this['_revisionTracker']['_createCurrentRevision'](_0x1e3af9));}const {revisions:_0x4eff5b,requestId:_0x90c178}=await this['_revisionHistoryService']['reconnect'](_0x109699['connection'],this['_lastRequestId']);_0x56e489&&_0x4eff5b['length']>0x0?_0x282637['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x4eff5b),this['_handleRevisionsUpdate'](_0x4eff5b,_0x90c178),this['_revisionTracker']['sendBufferedUpdates']());};return _0x282637['_isConnected']?_0x3c333d():new Promise((_0x4a2424,_0x39898c)=>{_0x282637['once']('change:_isConnected',()=>{_0x3c333d()['then'](_0x4a2424)['catch'](_0x39898c);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x3944ac=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x19aa5e=>{_0x19aa5e['off'](),_0x3944ac();});});}['_getLatestVersionFromServerOperations'](){const _0x2972a5=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x2ff34c of _0x2972a5)if('marker'!==_0x2ff34c['type']||_0x2ff34c['affectsData'])return _0x2ff34c['baseVersion']+0x1;}['_getLatestVersion'](){const _0x2a20ca=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x2a2a3e=>{_0x2a20ca['_isPendingUpdate']?_0x2a20ca['once']('change:_isPendingUpdate',()=>{_0x2a2a3e(this['_getLatestVersionFromServerOperations']());}):_0x2a2a3e(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x30e659,_0x5d75dd){const _0x51f173=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x5d75dd;for(const _0x2a0625 of _0x30e659){const _0x9b6bc6=_0x51f173['getRevision'](_0x2a0625['id']);if(_0x9b6bc6){if((_0x2a0625['fromVersion']||_0x2a0625['toVersion'])&&(_0x2a0625['diffData']=null),_0x9b6bc6===this['_revisionTracker']['currentRevision']){const _0x4921ba=Math['max'](_0x9b6bc6['toVersion'],_0x2a0625['toVersion']),_0xae6e4=Math['max'](_0x9b6bc6['fromVersion'],_0x2a0625['fromVersion']);let _0x4aae67;_0x9b6bc6['toVersion']===_0x2a0625['toVersion']&&_0x9b6bc6['fromVersion']===_0x2a0625['fromVersion']?(_0x4aae67=!0x0,this['_preventResendingRevisionData'](_0x2a0625)):_0x2a0625['toVersion']===_0x4921ba&&_0x2a0625['fromVersion']===_0xae6e4?_0x4aae67=!0x1:(_0x9b6bc6['toVersion']===_0x4921ba&&_0x9b6bc6['fromVersion']===_0xae6e4||this['_fixRevision']({'revision':_0x9b6bc6,'from':_0xae6e4,'to':_0x4921ba}),_0x4aae67=!0x0),_0x4aae67&&(delete _0x2a0625['fromVersion'],delete _0x2a0625['toVersion'],delete _0x2a0625['diffData'],delete _0x2a0625['createdAt'],delete _0x2a0625['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x2a0625),this['_preventResendingRevisionData'](_0x2a0625);}else this['_revisionTracker']['addRevisionData'](_0x2a0625);}const _0x36dad5=_0x51f173['getRevisions']();_0x36dad5['reverse']();for(let _0x3ed84d=0x0;_0x3ed84d<_0x36dad5['length']-0x1;_0x3ed84d++){const _0x4a00fc=_0x36dad5[_0x3ed84d],_0x2fc194=_0x36dad5[_0x3ed84d+0x1];if(_0x4a00fc['fromVersion']<_0x2fc194['toVersion']){const _0x4cb161=_0x2fc194['toVersion'],_0x2fa211=Math['max'](_0x4cb161,_0x4a00fc['toVersion']);this['_fixRevision']({'revision':_0x4a00fc,'from':_0x4cb161,'to':_0x2fa211});}}}['_fixRevision']({revision:_0x53cf5,from:_0x2639bb,to:_0x449955}={}){const _0x246bad=this['editor']['plugins']['get'](_0x564ea4),_0x4af062=this['_revisionTracker']['buildRevisionData']({'revision':_0x53cf5,'from':_0x2639bb,'to':_0x449955});_0x4af062['authors']=_0x4af062['authorsIds']['map'](_0x8ce0d0=>_0x246bad['getUser'](_0x8ce0d0)),_0x53cf5['_update'](_0x4af062);}['_preventResendingRevisionData'](_0x4f0dd3){const _0x2f9950={};_0x2f9950['id']=_0x4f0dd3['id'];for(const _0x4d4840 of Object['keys'](_0x4f0dd3))'id'!==_0x4d4840&&(_0x2f9950[_0x4d4840]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x2f9950['id'],_0x2f9950,!0x0);}async['_fetchMissingUsers'](_0x4aaf91){const _0x43faec=this['editor']['plugins']['get'](_0x564ea4),{connection:_0x54791c}=this['editor']['plugins']['get'](WebSocketGateway),_0x49522b=new Set();for(const _0x3c328d of _0x4aaf91){for(const _0x4bad93 of _0x3c328d['authorsIds'])_0xd2982e(_0x4bad93);_0x3c328d['creatorId']&&_0xd2982e(_0x3c328d['creatorId']);}if(0x0===_0x49522b['size'])return;const _0x27e456=await _0x3f347c['getMany'](_0x54791c,Array['from'](_0x49522b));for(const _0x387407 of _0x27e456)_0x43faec['getUser'](_0x387407['id'])||_0x43faec['addUser'](_0x387407);function _0xd2982e(_0x5ecf6f){_0x43faec['getUser'](_0x5ecf6f)||_0x49522b['add'](_0x5ecf6f);}}}function it(_0x20c6d4){return _0x20c6d4['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x20c6d4['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x20c6d4['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x3e1b2c{static get['requires'](){return[_0x2074bb,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0xd98b1{['_collapseAt'];constructor(_0x10220a,_0x1ab6b0=0x6){super(_0x10220a);const _0x1ce330=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x1ab6b0,this['bind']('isHidden')['to'](this,'usersCount',_0x528f66=>_0x528f66<_0x1ab6b0),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x1ce330['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':_0x1ce330['to']('usersCount',_0x25b870=>'+'+(_0x25b870-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0xd98b1{['items'];['keystrokes'];constructor(_0xd7fd6a){super(_0xd7fd6a);const _0x4f6772=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x266233(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x4f6772['if']('hasPopup'),'aria-expanded':_0x4f6772['to']('isExpanded',_0x43489f=>this['hasPopup']&&String(_0x43489f)),'aria-label':_0x4f6772['to']('hasPopup',_0x363f5c=>K(_0xd7fd6a,_0x363f5c?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x4f6772['to']('hasPopup',_0x2cd16e=>!!_0x2cd16e&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x4f6772['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x4f6772['to'](_0x4d4364=>{const _0x4d665a=_0x4d4364,_0x1135f0=document['querySelector']('.ck-presence-list__dropdown-list'),_0x2882f8=document['querySelector']('.ck-balloon-panel_with-arrow');_0x1135f0?.['contains'](_0x4d665a['relatedTarget'])||_0x2882f8?.['contains'](_0x4d665a['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x1ea403,_0x100611,_0x1ff6f9)=>{this['element']&&(_0x1ff6f9?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 _0xd98b1{['counterView'];['inlineListView'];constructor(_0x3b2e1d,_0x33cfbc=0x6){super(_0x3b2e1d);const _0x5e849c=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x33cfbc),this['inlineListView']=new PresenceInlineListView(_0x3b2e1d),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x559303 of this['inlineListView']['items'])_0x559303['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',_0x5e849c['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0xd98b1{['listWrapperView'];constructor(_0x2a2b6a,_0x50339c){super(_0x2a2b6a);const _0x445fd0=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x2a2b6a,_0x50339c),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x2a2b6a,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x445fd0['to'](_0x228f0a=>{const _0x52656f=_0x228f0a,_0x75b543=document['querySelector']('.ck-presence-list__list'),_0x32e87f=document['querySelector']('.ck-balloon-panel_with-arrow');_0x75b543?.['contains'](_0x52656f['relatedTarget'])||_0x32e87f?.['contains'](_0x52656f['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x25a08d{constructor(_0x374f1c,_0x5dfb98){super(_0x374f1c);const _0xe06368=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x5dfb98?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0xe06368['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0xe06368['to']('role'),'aria-label':_0xe06368['to']('ariaLabel'),'aria-labelledby':_0xe06368['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x4bc758['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0xb7aac8=this['element'];_0xb7aac8&&(this['_isScrollable']=Math['max'](_0xb7aac8['scrollHeight'],_0xb7aac8['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x33a920{['userView'];constructor(_0x4be05c,_0x53efdd,_0x25c50b){super(_0x4be05c);const _0x54abcd=this['bindTemplate'];this['userView']=new _0x14c100(_0x4be05c,_0x53efdd);const _0x41f62e={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x53efdd['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x53efdd['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x53efdd['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x53efdd['color']['getColorVariable'](),'--ck-user-color-alpha':_0x53efdd['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x25c50b&&(_0x41f62e['tag']='button',_0x41f62e['on']={'click':_0x54abcd['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x41f62e);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0xd98b1{['userView'];['markerView'];constructor(_0x5b8a61,_0x5ec3d4,_0x53b35d){super(_0x5b8a61);const _0x2e8bda=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x14c100(_0x5b8a61,_0x5ec3d4),this['markerView']=new MarkerView(_0x5b8a61,_0x5ec3d4);const _0x167b3b=new _0x185ec1(_0x5b8a61);_0x167b3b['template']['tag']='span',_0x167b3b['text']=_0x5ec3d4['name'];const _0x8a452d={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x2e8bda['to']('isFocusable',_0x25f2c5=>!!_0x25f2c5&&0x0),'aria-labelledby':_0x167b3b['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x2e8bda['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x2e8bda['to']('hasTooltip',_0x114c86=>!_0x114c86),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x167b3b]};_0x53b35d&&(_0x8a452d['tag']='button',_0x8a452d['on']={'click':_0x2e8bda['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x8a452d);}}class MarkerView extends _0xd98b1{constructor(_0x5768bd,_0x94a35a){super(_0x5768bd),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x94a35a['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x94a35a['color']['getColorVariable'](),'--ck-user-color-alpha':_0x94a35a['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0xa3b26a{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x37a3b2){super(_0x37a3b2),this['context']['config']['define']('presenceList',nt);const _0x323ce7=_0x37a3b2['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x323ce7)throw new _0x1a0846('presencelist-collapseat-invalid-format',this);if(_0x323ce7<0x1)throw new _0x1a0846('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x4632e2(),this['balloonPanelView']=new _0x5a7b8e(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x71250b of this['_allConnectedUsers'])this['_handleUserAdd'](_0x71250b);this['listenTo'](this['_allConnectedUsers'],'add',(_0x4bd68a,_0x3032f3)=>{this['_handleUserAdd'](_0x3032f3);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x275322,_0x3d657b)=>{this['_handleUserRemove'](_0x3d657b);});}['_createView'](){const _0x5162de=this['context'],_0x47d9f3=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x381224=this['balloonPanelView'];if(!_0x45e499(_0x5162de['config']['get']('presenceList.container')))throw new _0x1a0846('presencelist-missing-container',this);return _0x47d9f3['counterView']['bind']('usersCount')['to'](this),_0x47d9f3['bind']('isCollapsed')['to'](this,'usersCount',_0x4e4191=>{const {collapseAt:_0x4faee8}=_0x5162de['config']['get']('presenceList'),_0x3a1726=_0x4e4191>=_0x4faee8;if(_0x3a1726&&!_0x47d9f3['inlineListView']['items']['find'](_0x231933=>_0x231933 instanceof PresenceCounterView)){const _0x6fe771=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x6fe771&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x47d9f3['inlineListView']['items']['add'](_0x47d9f3['counterView']);}return _0x3a1726||this['hideDropdown'](),_0x3a1726;}),_0x47d9f3['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x188ef1=>{const _0x2d8b41=_0x5162de['config']['get']('presenceList'),_0x1646b4=new PresenceInlineListItemView(_0x5162de['locale'],_0x188ef1,!!_0x2d8b41['onClick']);return _0x1646b4['bind']('hasTooltip')['to'](_0x47d9f3,'isCollapsed',_0x431279=>!_0x431279),_0x1646b4['bind']('isFocusable')['to'](_0x47d9f3,'isCollapsed',_0xe1e622=>!_0xe1e622),_0x2d8b41['onClick']&&this['listenTo'](_0x1646b4,'execute',()=>{this['view']['isCollapsed']||_0x2d8b41['onClick'](_0x188ef1,_0x1646b4['element']);}),_0x1646b4;}),this['listenTo'](_0x47d9f3['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x47d9f3['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x47d9f3['inlineListView']['keystrokes']['set']('Enter',(_0xceed21,_0x4e0e03)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x4e0e03());}),_0x47d9f3['render'](),_0x381224['render'](),_0x6a8b92({'emitter':_0x47d9f3,'activator':()=>_0x381224['isVisible'],'contextElements':[_0x381224['element'],_0x47d9f3['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x5162de['config']['get']('presenceList.container')['appendChild'](_0x47d9f3['element']),this['_bodyCollection']=new _0x47bd89(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x47d9f3;}['_handleUserAdd'](_0x39732f){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x39732f['isMe'])return;const _0x2d4d50=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x2d4d50-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0xfc26b6=_0x39732f['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x39732f,_0xfc26b6);}['_handleUserRemove'](_0x58fbb3){this['usersCount']--;const {collapseAt:_0x2149e6}=this['context']['config']['get']('presenceList'),_0x3c7d48=this['usersCount']>=_0x2149e6;if(this['currentDisplayedUsers']['get'](_0x58fbb3['id']))this['currentDisplayedUsers']['remove'](_0x58fbb3['id']);else{if(_0x3c7d48&&this['currentDisplayedUsers']['length']+0x1===_0x2149e6-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x3c7d48?0x1:0x0)<this['usersCount']){for(const _0x1cdcfa of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x1cdcfa['id'])&&(this['currentDisplayedUsers']['add'](_0x1cdcfa,Math['min'](this['currentDisplayedUsers']['length']-(_0x3c7d48?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x3c7d48?0x1:0x0)===_0x2149e6-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x111dd5=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x111dd5['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x3ae740}=this['presenceDropdownView'];_0x3ae740['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x28a8c6=>{if(!_0x111dd5['displayMe']&&_0x28a8c6['isMe'])return null;const _0x120156=new PresenceDropdownListItemView(this['context']['locale'],_0x28a8c6,!!_0x111dd5['onClick']);return _0x111dd5['onClick']&&this['listenTo'](_0x120156,'execute',()=>{_0x111dd5['onClick'](_0x28a8c6,_0x120156['element']);}),_0x120156;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x3ae740['focus'](),_0x3ae740['checkIfScrollable']();const _0x437c0a=(_0x5e8ee8,_0x9acef7)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x9acef7();};_0x3ae740['keystrokes']['set']('Esc',_0x437c0a),_0x3ae740['keystrokes']['set']('Shift+Tab',_0x437c0a),_0x3ae740['keystrokes']['set']('Tab',(_0x31f8a1,_0x47587a)=>{!function(_0x2fff42){const _0x382713=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x28b83e=>_0x28b83e+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x15363e=[...document['body']['querySelectorAll'](_0x382713)]['filter'](_0x4acf4a=>_0x4acf4a===document['activeElement']||_0x4acf4a['offsetWidth']+_0x4acf4a['offsetHeight']>0x0)['sort']((_0x37a7a2,_0x203546)=>(_0x37a7a2['tabIndex']||0x0)-(_0x203546['tabIndex']||0x0)),_0x14d43d=_0x15363e['indexOf'](_0x2fff42),_0xf8c1de=_0x15363e[(_0x14d43d+0x1)%_0x15363e['length']];_0xf8c1de&&_0xf8c1de['focus']();}(this['view']['element']),this['hideDropdown'](),_0x47587a();}),_0x3ae740['focusTracker']['add'](this['view']['element']),_0x3ae740['focusTracker']['on']('change:isFocused',(_0x3e6743,_0xe2703b,_0x302578)=>{_0x302578||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 _0xa3b26a{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};