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

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 _0x191ab4,Plugin as _0x523d5c,PendingActions as _0x8e714,Context as _0x82da95}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x80e1e9,CKEditorError as _0x44690c,Collection as _0xd26e88,global as _0x14a421,version as _0x146c5e,uid as _0x2e2a43,KeystrokeHandler as _0x4de09d}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x552a0d,View as _0x59157b,ListView as _0x3a285a,ListItemView as _0x245139,LabelView as _0x1c19b1,BalloonPanelView as _0x19c131,clickOutsideHandler as _0x52aaad,BodyCollection as _0x418f13}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0xee587a,History as _0x5bc90f,NoOperation as _0x2303ac,InsertOperation as _0x484853,MarkerOperation as _0x1fb70f,RootAttributeOperation as _0x3050ce,transformOperationSets as _0x2638b1,OperationFactory as _0x18bdd0}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x4caa52}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x3b949e,WEB_SOCKET_GATEWAY_STATES as _0xb53f3f,CollaborativeEditingService as _0xe673cf,User as _0x270274,CommentsService as _0x177deb,TrackChangesService as _0x26d7c6,RevisionHistoryService as _0x3b4c9e,EditorService as _0x5b3750}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0xbd9206,UserView as _0x1b8b54}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x7f9a95}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x1a1529,TrackChanges as _0x2d4889}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x55664d,Comments as _0x42ae2e,CommentsEditing as _0x121bef}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x510d56}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x54c657}from'es-toolkit/compat';class WebSocketGateway extends _0x191ab4{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
- ((()=>_0x3b949e)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x4caa52,_0x552a0d];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x513899){super(_0x513899),this['set']('state',_0xb53f3f['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x80e1e9())();}['init'](){const _0x187e61=this['context'],_0x203ca3=_0x187e61['plugins']['get'](_0x4caa52),_0x19da8d=_0x187e61['plugins']['get'](_0x552a0d);if(!_0x203ca3['token'])throw new _0x44690c('websocketgateway-missing-token',this);if(!_0x203ca3['webSocketUrl'])throw new _0x44690c('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'](_0x203ca3['token'],_0x203ca3['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x5e4304=>{if(this['connection']=_0x5e4304,this['bind']('state')['to'](_0x5e4304,'state',this,'_isBrowserOffline',(_0x38001b,_0x240d5c)=>('connected'!==_0x38001b&&(this['_shouldPluginsReconnect']=!0x0),_0x240d5c||_0x38001b!==_0xb53f3f['CONNECTED']?_0xb53f3f['DISCONNECTED']:this['state']==_0xb53f3f['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0xb53f3f['CONNECTING']):_0xb53f3f['CONNECTED'])),this['connection']['on']('error',(_0xa36fd,_0x127978)=>{if('limitExceeded'!==_0x127978['code'])throw console['error'](_0x127978),new _0x44690c('cloudservices-init',null,{'originalError':_0x127978});_0x19da8d['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'});}),!_0x5e4304['me'])return new Promise(_0x1100db=>_0x5e4304['on']('change:me',_0x1100db));})['catch'](_0x26c310=>{throw console['error'](_0x26c310),new _0x44690c('cloudservices-init',null,{'originalError':_0x26c310});});}['addToReconnectionStack'](_0x1d97f7){if('function'!=typeof _0x1d97f7['reconnect'])throw new _0x44690c('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x1d97f7))throw new _0x44690c('websocketgateway-plugin-already-registered',this,{'name':_0x1d97f7['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x1d97f7);}['removeFromReconnectionStack'](_0x4701f2){this['_reconnectionStack']['delete'](_0x4701f2);}['isInReconnectionStack'](_0x102ab8){return this['_reconnectionStack']['has'](_0x102ab8);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x3bf125=>_0x3bf125['reconnect']())))['then'](()=>this['state']=_0xb53f3f['CONNECTED'])['catch'](_0x19260e=>{throw console['error'](_0x19260e),new _0x44690c('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0xb53f3f['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x191ab4{['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,_0xbd9206];}constructor(_0x2df428){super(_0x2df428),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0xd26e88(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0xbd9206);}['init'](){const _0xb96130=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0xb96130,'change:state',(_0x54b028,_0x32894e,_0x4e3c7e)=>{if('connected'!==_0x4e3c7e)this['channelSessions']['forEach'](_0x166367=>_0x166367['clear']()),this['channelConnectedUsers']['forEach'](_0x522339=>_0x522339['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x23c085,_0x2f1d23]of this['_registeredSessions'])for(const _0x3ea320 of _0x2f1d23)this['_handleSessionAdd'](_0x23c085,_0x3ea320);}}),this['_createUser'](_0xb96130['connection']['me'],!0x0);}['register'](_0x2048e1,_0x415608){if(this['_registeredSessions']['has'](_0x2048e1))throw new _0x44690c('sessions-register-already-registered',null,{'channelId':_0x2048e1});this['_registeredSessions']['set'](_0x2048e1,_0x415608),this['channelSessions']['set'](_0x2048e1,new _0xd26e88()),this['channelConnectedUsers']['set'](_0x2048e1,new _0xd26e88()),this['listenTo'](_0x415608,'add',(_0x1b7bf5,_0x3e079e)=>this['_handleSessionAdd'](_0x2048e1,_0x3e079e)),this['listenTo'](_0x415608,'remove',(_0x53f7d6,_0x2079b3)=>this['_handleSessionRemove'](_0x2048e1,_0x2079b3));for(const _0x312b38 of _0x415608)this['_handleSessionAdd'](_0x2048e1,_0x312b38);}['unregister'](_0x3a23cf){if(!this['_registeredSessions']['has'](_0x3a23cf))throw new _0x44690c('sessions-unregister-not-exist',null,{'channelId':_0x3a23cf});const _0x2adf34=this['_registeredSessions']['get'](_0x3a23cf);this['stopListening'](_0x2adf34);for(const _0x4df2f1 of _0x2adf34)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x3a23cf,_0x4df2f1);this['_registeredSessions']['delete'](_0x3a23cf),this['channelSessions']['delete'](_0x3a23cf),this['channelConnectedUsers']['delete'](_0x3a23cf);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x354c45){for(const _0x14a592 of this['channelSessions']['values']())for(const _0x52b844 of _0x14a592)if(_0x52b844['id']===_0x354c45)return _0x52b844['user'];}['getUserSessions'](_0x241ea6,_0x4298a6){const _0x5edb91=_0x4298a6?[this['channelSessions']['get'](_0x4298a6)]:this['channelSessions']['values'](),_0x22cb7c=new Set();for(const _0x16b3a3 of _0x5edb91)for(const _0x466cd8 of _0x16b3a3)_0x466cd8['user']['id']===_0x241ea6['id']&&_0x22cb7c['add'](_0x466cd8['id']);return _0x22cb7c;}['getUserRole'](_0x1715c3){for(const _0x55c30b of this['channelSessions']['values']())for(const _0x4da46f of _0x55c30b)if(_0x4da46f['user']===_0x1715c3)return _0x4da46f['role'];}['_handleSessionAdd'](_0x1fdce3,_0x269bf5){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x2ae26e=_0x269bf5['user'],_0x478c01=this['_users']['getUser'](_0x2ae26e['id'])||this['_createUser'](_0x2ae26e),_0x19b6f3=Object['assign']({},_0x269bf5,{'user':_0x478c01});if(this['channelSessions']['get'](_0x1fdce3)['add'](_0x19b6f3),!_0x2ae26e['hiddenInPresenceList']){const _0x344ba1=this['channelConnectedUsers']['get'](_0x1fdce3);_0x344ba1['has'](_0x478c01['id'])||_0x344ba1['add'](_0x478c01),this['allConnectedUsers']['has'](_0x478c01['id'])||_0x2ae26e['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x478c01,_0x478c01['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x1fdce3,{'channelId':_0x1fdce3,'session':_0x19b6f3});}['_handleSessionRemove'](_0x591a9c,_0x5b06c2){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x1dd670=this['channelConnectedUsers']['get'](_0x591a9c),_0x4bd192=_0x5b06c2['user'];_0x4bd192['id']&&(this['channelSessions']['get'](_0x591a9c)['remove'](_0x5b06c2['id']),_0x1dd670['has'](_0x4bd192['id'])&&!this['getUserSessions'](_0x4bd192,_0x591a9c)['size']&&_0x1dd670['remove'](_0x4bd192['id']),this['allConnectedUsers']['get'](_0x4bd192['id'])&&!this['getUserSessions'](_0x4bd192)['size']&&this['allConnectedUsers']['remove'](_0x4bd192['id']));}['_createUser'](_0x492396,_0x5f42d4){const _0x5f129a=this['_users']['addUser'](_0x492396);return _0x5f42d4&&this['_users']['defineMe'](_0x492396['id']),_0x5f129a['orderNumber']=this['_uniqueUsersCount']++,_0x5f129a;}}class UserMarkers extends _0x523d5c{['_domEmitter']=new(_0x80e1e9())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x5098bd=this['editor'],_0x4f47bb=_0x5098bd['plugins']['get'](Sessions);_0x5098bd['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x5df524,{writer:_0x1eb55c})=>function(_0x5b1462,_0x25a01b,_0x5e0ad6,_0x5be1b6){const _0xb9e396=_0x5b1462['markerName']['split'](':')[0x2],_0x396894=_0x5e0ad6['getUserBySessionId'](_0xb9e396);if(!_0x396894||_0xb9e396===_0x5e0ad6['mySessionId'])return;if(!_0x5be1b6['model']['schema']['checkChild'](_0x5b1462['markerRange']['start'],'$text'))return;const _0x289e6a={'class':'ck-user__marker\x20'+_0x396894['color']['getMarkerClass'](),'style':Y(_0x396894),'data-name':_0x396894['name'],'data-session-id':_0xb9e396},_0x432f57=_0x5be1b6['model']['markers']['get'](_0x5b1462['markerName']),_0x30d25f=_0x432f57['getStart'](),_0x4777f3=_0x30d25f['nodeAfter'],_0x3c28d1=_0x5be1b6['model']['schema'];if(_0x4777f3&&_0x3c28d1['isObject'](_0x4777f3)&&_0x3c28d1['isInline'](_0x4777f3)&&!_0x5be1b6['model']['markers']['get']('user:range:'+_0xb9e396)['getRange']()['isCollapsed'])return;const _0xdfdc99=_0x30d25f['parent'];return _0x5be1b6['model']['schema']['isLimit'](_0xdfdc99)&&!_0x5be1b6['model']['hasContent'](_0xdfdc99)&&(_0x289e6a['contenteditable']=!0x1),function(_0x10d397,_0xad0c51,_0xb3703f){const _0x41dc2c=_0x10d397['createUIElement']('span',_0xad0c51);return _0x10d397['setCustomProperty']('userPositionMarker',!0x0,_0x41dc2c),_0x41dc2c['render']=function(_0x38b259){const _0x4663b7=this['toDomElement'](_0x38b259),_0x1a49a8=document['createElement']('span');return _0x1a49a8['classList']['add']('ck-user__marker-tooltip'),_0x1a49a8['setAttribute']('contenteditable','false'),_0x1a49a8['setAttribute']('spellcheck','false'),_0x1a49a8['textContent']=_0xb3703f['name'],_0x4663b7['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x1a49a8['outerHTML']+'⁠',_0x4663b7['addEventListener']('mouseenter',()=>{_0x4663b7['classList']['add']('ck-user__marker_hovered');}),_0x4663b7['addEventListener']('mouseleave',()=>{_0x4663b7['classList']['remove']('ck-user__marker_hovered');}),_0x4663b7;},_0x41dc2c['isSimilar']=function(_0x52af88){return!(!this['getCustomProperty']('userPositionMarker')||!_0x52af88['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x52af88['getAttribute']('data-session-id'));},_0x41dc2c;}(_0x25a01b,_0x289e6a,_0x396894);}(_0x5df524,_0x1eb55c,_0x4f47bb,_0x5098bd)}),_0x5098bd['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x1e4d22=>function(_0xaf186f,_0x3109c2){const _0x499d64=_0xaf186f['markerName']['split'](':')[0x2];if(_0x499d64===_0x3109c2['mySessionId'])return null;const _0x1b8a9f=_0x3109c2['getUserBySessionId'](_0x499d64);if(!_0x1b8a9f)return{'id':_0x499d64,'classes':[]};return{'id':_0x499d64,'classes':['ck-user__selection',_0x1b8a9f['color']['getSelectionClass']()],'attributes':{'style':Y(_0x1b8a9f),'data-session-id':_0x499d64},'priority':0x7d0+_0x1b8a9f['orderNumber']};}(_0x1e4d22,_0x4f47bb)}),function(_0x463034){const _0x4feccb=_0x463034['model'],_0x2b1513=new Map(),_0x824683=_0x463034['plugins']['get'](Sessions);_0x4feccb['markers']['on']('update:user:range',(_0x3916ee,_0x2aa9f6,_0x528e95,_0x4d60b6)=>{if(!_0x4d60b6&&_0x2b1513['get'](_0x2aa9f6['name']))return _0x2b1513['get'](_0x2aa9f6['name'])['detach'](),void _0x2b1513['delete'](_0x2aa9f6['name']);const _0x2abb73=_0x2aa9f6['name']['split'](':')[0x2];if(_0x2abb73===_0x824683['mySessionId'])return;const _0x4980e1='user:position:'+_0x2abb73;_0x4feccb['markers']['has'](_0x4980e1)&&_0x463034['editing']['reconvertMarker'](_0x4980e1),_0x2aa9f6['on']('change:range',(_0x22c262,_0x27b806,_0x2bf0e1)=>{if('$graveyard'!=_0x27b806['root']['rootName']&&'$graveyard'==_0x2aa9f6['getRange']()['root']['rootName']&&!_0x2b1513['has'](_0x2aa9f6['name'])){const _0x4648d1=_0x4feccb['schema']['getNearestSelectionRange'](_0x2bf0e1['deletionPosition']);if(_0x4648d1){const _0x42fda=_0xee587a['fromRange'](_0x4648d1);_0x2b1513['set'](_0x2aa9f6['name'],_0x42fda),_0x42fda['on']('change:range',(_0x53567f,_0x54e0bb,_0x251f29)=>{if('$graveyard'==_0x42fda['root']['rootName']){const _0x51da16=_0x4feccb['schema']['getNearestSelectionRange'](_0x251f29['deletionPosition']);_0x51da16?(_0x42fda['start']=_0x51da16['start'],_0x42fda['end']=_0x51da16['end']):(_0x2b1513['delete'](_0x2aa9f6['name']),_0x42fda['detach']());}});}}});}),_0x4feccb['document']['on']('change',()=>{_0x2b1513['size']>0x0&&_0x4feccb['enqueueChange']({'isUndoable':!0x1},_0x122a23=>{for(const [_0xef7e10,_0x12fc45]of _0x2b1513)'$graveyard'==_0x4feccb['markers']['get'](_0xef7e10)['getRange']()['root']['rootName']&&(z(_0xef7e10['split'](':')[0x2],_0x12fc45['toRange'](),_0x4feccb,_0x122a23),_0x12fc45['detach']());_0x2b1513['clear']();});});}(_0x5098bd),this['_domEmitter']['listenTo'](_0x14a421['document'],'keydown',(_0x1e002e,{key:_0x567262})=>{'Escape'===_0x567262&&function(_0x5c5e04){_0x5c5e04['editing']['view']['change'](_0x2fa77a=>{for(const _0x1ea49c of _0x5c5e04['model']['markers']){if(!_0x1ea49c['name']['startsWith']('user:position'))continue;const _0x1a4464=_0x5c5e04['editing']['mapper']['markerNameToElements'](_0x1ea49c['name']);if(_0x1a4464){for(const _0x5965c2 of _0x1a4464)_0x2fa77a['removeClass']('ck-user__marker_hovered',_0x5965c2);}}});}(_0x5098bd);},{'useCapture':!0x0});}['afterInit'](){const _0xd61f81=this['editor'],_0x42dc76=_0xd61f81['commands']['get']('undo');_0x42dc76&&_0xd61f81['model']['on']('applyOperation',(_0x36a31c,_0x5b9e30)=>{const _0x5a9bae=_0x5b9e30[0x0];if(!_0x5a9bae['isDocumentOperation'])return;if('marker'!=_0x5a9bae['type']||!_0x5a9bae['name']['startsWith']('user:'))return;const _0x5adabb=_0x5a9bae['batch'];_0x42dc76['_createdBatches']['has'](_0x5adabb)&&(_0x5a9bae['newRange']=_0x5a9bae['oldRange']?_0xd61f81['model']['createRange'](_0x5a9bae['oldRange']['start'],_0x5a9bae['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x246040=this['editor'],_0x1d4bea=_0x246040['model']['document'],_0x56ba5=_0x246040['plugins']['get'](Sessions);_0x246040['model']['enqueueChange']({'isUndoable':!0x1},_0x4027c3=>{const _0x145715='user:range:'+_0x56ba5['mySessionId'],_0x386cc9='user:position:'+_0x56ba5['mySessionId'],_0x26ca12=_0x246040['model']['markers']['has'](_0x145715);_0x246040['editing']['view']['hasDomSelection']?z(_0x56ba5['mySessionId'],_0x1d4bea['selection']['getFirstRange'](),_0x246040['model'],_0x4027c3):_0x26ca12&&(_0x4027c3['removeMarker'](_0x145715),_0x4027c3['removeMarker'](_0x386cc9));});}}function z(_0x41bcec,_0x4fe375,_0x4c7ff2,_0x260a01){const _0x6a1773='user:range:'+_0x41bcec,_0x3d823d='user:position:'+_0x41bcec,_0x28e68a=_0x4fe375['getContainedElement']();let _0x27d65b=_0x4fe375['start'];if(_0x28e68a&&_0x28e68a['is']('element','tableCell')){const _0x3b1072=function(_0x41331b,_0xf6037){for(const _0x49f567 of _0x41331b['getPositions']())if(_0xf6037['schema']['checkChild'](_0x49f567,'$text'))return _0x49f567;}(_0x4fe375,_0x4c7ff2);_0x3b1072&&(_0x27d65b=_0x3b1072,_0x4fe375=_0x260a01['createRange'](_0x27d65b));}const _0x46a364=_0x260a01['createRange'](_0x27d65b);_0x4c7ff2['markers']['has'](_0x6a1773)?(_0x260a01['updateMarker'](_0x6a1773,{'range':_0x4fe375}),_0x260a01['updateMarker'](_0x3d823d,{'range':_0x46a364})):(_0x260a01['addMarker'](_0x6a1773,{'range':_0x4fe375,'usingOperation':!0x0}),_0x260a01['addMarker'](_0x3d823d,{'range':_0x46a364,'usingOperation':!0x0}));}function Y(_0x102306){return'--ck-user-color:'+_0x102306['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x102306['color']['getColorAlphaVariable']()+';';}function K(_0x57c499,_0x4e62d4,_0xbaaedc){const _0x52f620=_0x57c499['t'],t=_0x57c499['t'];switch(_0x4e62d4){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 _0x52f620({'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'},_0xbaaedc);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x523d5c{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
- ((()=>_0xe673cf)());['_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,_0x8e714,_0xbd9206,_0x552a0d];}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 _0x4f4125=this['serverHistory']['getOperations']();for(let _0x30330e=_0x4f4125['length']-0x1;_0x30330e>=0x0;_0x30330e--){const _0x3b2780=_0x4f4125[_0x30330e];if(!this['_disconnectionOperations']['has'](_0x3b2780))return _0x3b2780['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0xfe4128){if(super(_0xfe4128),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x5bc90f(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x44690c('collaboration-missing-channelid',this);const _0x184176=_0xfe4128['config']['get']('cloudServices.bundleVersion')||_0x146c5e;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x184176,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x7f9a95(),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 _0x8986c7=this['editor'],_0x1e6dc2=_0x8986c7['plugins']['get'](_0xbd9206),_0x2323ee=_0x8986c7['plugins']['get'](WebSocketGateway);this['listenTo'](_0x1e6dc2,'getOperationAuthor',(_0x5bdf10,_0x4b8b7b)=>{const _0x5a0fe9=_0x4b8b7b[0x0];_0x5a0fe9['_authorId']&&(_0x5bdf10['return']=_0x1e6dc2['getUser'](_0x5a0fe9['_authorId']),_0x5bdf10['stop']()),null===_0x5a0fe9['_authorId']&&(_0x5bdf10['return']=null,_0x5bdf10['stop']());},{'priority':'high'}),this['listenTo'](_0x8986c7['model']['document']['selection'],'change:range',(_0x299731,_0x4eff9b)=>{_0x4eff9b['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x8986c7['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x8986c7['model']['on']('applyOperation',(_0x454379,_0x1cc0dc)=>{const _0x4d1743=_0x1cc0dc[0x0];_0x4d1743['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x4d1743),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x2323ee,'state',this,'_hasSynchronizationProblem',(_0x297ad3,_0x1e5dfc)=>'connected'===_0x297ad3&&!_0x1e5dfc),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x8986c7['disableReadOnlyMode']('rtc-offline'):_0x8986c7['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x8986c7['disableReadOnlyMode']('rtc-offline'):_0x8986c7['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x543821=this['editor']['plugins']['get'](Sessions),_0x277521=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x543821['unregister'](this['_channelId']);const _0x50b4e9=await this['_service']['reconnect'](_0x277521['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x50b4e9)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x3372bd=await this['_service']['getConnectedSessions']();_0x543821['register'](this['_channelId'],_0x3372bd),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x37f918){if(function(_0x5ce158){return'404'===_0x5ce158['code'];}(_0x37f918)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x33eae8){return'409'===_0x33eae8['code'];}(_0x37f918)){const _0x590af5=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'](_0x590af5);}else{if(!(_0x37f918 instanceof ReconnectionError))throw _0x37f918;this['_handleReconnectionError']();}}}}['destroy'](){const _0x4fcf57=this['editor']['plugins']['get'](WebSocketGateway),_0x524bd1=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x524bd1['channelSessions']['has'](this['_channelId'])&&_0x524bd1['unregister'](this['_channelId']),_0x4fcf57['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x5ace4e){if(this['sessionId']!==_0x5ace4e['sessionId']&&this['_lastSyncedOperationId']!==_0x5ace4e['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x5ace4e['sessionId'],this['_handleServerResponse']([],{..._0x5ace4e,'wereChangesApplied':!0x1,'data':_0x5ace4e['data']},'reconnect');}async['_connectService'](_0x1219e7,_0x274b05=!0x1){const {connection:_0xbd3287}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0xbd3287,this['_channelId'])['then'](_0x451ac6=>this['_initSessionsHandling'](_0x451ac6))['catch'](_0x4e28b3=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x4e28b3);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x205534,_0x1ccbfc)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x1ccbfc);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x52664a=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x1219e7);this['_isPendingUpdate']=!0x0;const _0x1423d1=await this['_service']['connect'](_0xbd3287,this['_compressOperations'](_0x1219e7),_0x52664a);if(this['sessionId']=_0x1423d1['sessionId'],_0x274b05){if(!_0x1423d1['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x1423d1['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x1219e7,_0x1423d1,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x1423d1,_0x1219e7);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x571bc9=this['editor']['plugins']['get'](Sessions),_0x45b989=this['editor']['plugins']['get'](UserMarkers),_0x3a0145=_0x571bc9['channelSessions']['get'](this['_channelId']);_0x3a0145&&_0x3a0145['length']>0x1?_0x45b989['createUserMarkerOperations']():this['listenTo'](_0x571bc9,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x571bc9['channelSessions']['get'](this['_channelId'])['length']&&_0x45b989['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x31145f,_0xe2a458,_0x39df33,_0x311276){if(!this['_isPendingUpdate']&&this['_document']['version']==_0xe2a458){const _0x2b1759=this['_decompressOperations'](_0x39df33,_0x311276);await this['_fetchMissingUsers'](_0x2b1759),this['_handleExternalOperations'](_0x2b1759,_0xe2a458,_0x39df33['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x3de7d5}=this['editor'];let _0x3ebfa5;try{_0x3ebfa5=await this['_service']['getDocumentDetails']();}catch{const _0x4f8e6c=K(_0x3de7d5,'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'](_0x4f8e6c);}const _0x471562=_0x3ebfa5['currentDocumentSession']||_0x3ebfa5['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x471562['lastOperationId']){const _0x359fb3=K(_0x3de7d5,'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'](_0x359fb3);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x503027){const _0x38de83=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x38de83,'sessionAdd:'+this['_channelId'],(_0x1adf35,{session:_0x453c2c})=>{if(_0x453c2c['id']===_0x38de83['mySessionId']){_0x1adf35['off']();const _0x46e195=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x4e9b3b=_0x453c2c['permissions'];_0x46e195&&_0x46e195['isEnabled']&&(_0x4e9b3b=_0x4e9b3b['filter'](_0x38652d=>'document:write'!==_0x38652d)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x4e9b3b,this['_channelId']);}}),_0x38de83['register'](this['_channelId'],_0x503027);}['_initThrowingOnDataSet'](){const _0x3ff501=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x399ace)=>{if(!_0x399ace[_0x399ace['length']-0x1]['suppressErrorInCollaboration'])throw new _0x44690c('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x3ff501['apply'](this['editor']['data'],_0x399ace);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x1261f2,[_0x568d14])=>{if(this['_document']['version'])throw new _0x44690c('realtimecollaborationclient-init-document-already-initialized',this);_0x1261f2['stop'](),this['_setPendingAction']();const _0x18098f=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x43c3e4])=>!_0x43c3e4['lazyLoad'])['map'](([_0x3d2e36,_0x5b1df0])=>[_0x3d2e36,_0x5b1df0['modelAttributes']||{}])),_0x55e6bd=this['_getOperationsFromInitData'](_0x568d14,_0x18098f);0x0==_0x55e6bd['length']&&_0x55e6bd['push'](new _0x2303ac(0x0)),_0x1261f2['return']=this['_connectService'](_0x55e6bd)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x25bd9d=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x25bd9d))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x1eb99e,[_0x470ff8,_0x3a2445])=>{_0x1eb99e['stop']();const _0x21eb63=this['editor']['model']['document']['getRoot'](_0x470ff8);if(!this['_knownRootNames']['has'](_0x470ff8)){const _0x24aa79=_0x3a2445&&_0x3a2445['data']?_0x3a2445['data']:'',_0x468758=_0x3a2445&&_0x3a2445['attributes']?_0x3a2445['attributes']:{};await this['_loadRoot'](_0x470ff8,_0x24aa79,_0x468758);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x21eb63['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x21eb63);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x38ebb6){const _0x47880b=this['editor']['plugins']['get'](_0xbd9206),{connection:_0x4f7680}=this['editor']['plugins']['get'](WebSocketGateway),_0x12b8ca=new Set();for(const _0x5168d6 of _0x38ebb6){const _0x1a4e73=_0x5168d6['_authorId'];_0x1a4e73&&!_0x47880b['getUser'](_0x1a4e73)&&_0x12b8ca['add'](_0x1a4e73);}if(0x0===_0x12b8ca['size'])return;const _0xfaa9d0=await _0x270274['getMany'](_0x4f7680,Array['from'](_0x12b8ca));for(const _0x4675e8 of _0xfaa9d0)_0x47880b['getUser'](_0x4675e8['id'])||_0x47880b['addUser'](_0x4675e8);}['_getOperationsFromInitData'](_0x1a4b18,_0x7ab4e0={}){const _0x338a71=this['editor']['model'],_0x7a3d09=[];let _0x129fb5=0x0;const _0x48910e='string'==typeof _0x1a4b18?{'main':_0x1a4b18}:_0x1a4b18;for(const _0x318e37 of Object['keys'](_0x48910e)){if(!this['_document']['roots']['has'](_0x318e37))throw new _0x44690c('realtimecollaborationclient-init-non-existent-root',this);const _0x31ef8c=this['_document']['getRoot'](_0x318e37),_0x72bea8=this['editor']['data']['parse'](_0x48910e[_0x318e37],_0x31ef8c),_0x213db1=new _0x484853(_0x338a71['createPositionAt'](_0x31ef8c,0x0),_0x72bea8,_0x129fb5++);_0x7a3d09['push'](_0x213db1);for(const [_0x5ef695,_0x220989]of _0x72bea8['markers']){const _0x74f07=_0x338a71['createRange'](_0x338a71['createPositionFromPath'](_0x31ef8c,_0x220989['start']['path']['slice']()),_0x338a71['createPositionFromPath'](_0x31ef8c,_0x220989['end']['path']['slice']())),_0x412b40=new _0x1fb70f(_0x5ef695,null,_0x74f07,_0x338a71['markers'],!0x0,_0x129fb5++);_0x7a3d09['push'](_0x412b40);}}if(_0x7ab4e0)for(const [_0x5cfb40,_0x5024da]of Object['entries'](_0x7ab4e0)){const _0x196a73=_0x338a71['document']['getRoot'](_0x5cfb40);if(!_0x196a73)throw new _0x44690c('multi-root-editor-root-attributes-no-root',null);for(const [_0x5601d8,_0xb3ef30]of Object['entries'](_0x5024da))if(null!==_0xb3ef30){const _0x57e8aa=new _0x3050ce(_0x196a73,_0x5601d8,null,_0xb3ef30,_0x129fb5++);_0x7a3d09['push'](_0x57e8aa);}}return _0x7a3d09;}async['_loadRoot'](_0x3b512c,_0x4f7c38,_0x42e04b){this['_getOperationsFromInitData']({[_0x3b512c]:_0x4f7c38},{[_0x3b512c]:_0x42e04b})['forEach']((_0x751384,_0x58313a)=>{_0x751384['baseVersion']=this['_document']['version']+_0x58313a,_0x751384['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x751384);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x378645,_0x47730a){let _0x311976;this['_offset']=_0x378645['offset'];const _0x1a4bbd=_0x378645['wereChangesApplied']&&!_0x378645['initData'],_0x543ec0=_0x1a4bbd?0x0:_0x378645['data']['baseVersion'];if(_0x47730a['forEach'](_0xc81d3c=>{_0xc81d3c['_isInit']=!0x0,_0xc81d3c['createdAt']=_0x378645['sessionCreatedAt'],_0xc81d3c['_authorId']=null;}),_0x1a4bbd)_0x311976=_0x47730a,this['_applyOperationsSet'](_0x311976,_0x1a4bbd);else{if(_0x378645['initData']){const _0x4ea333=this['_getOperationsFromInitData'](_0x378645['initData']);this['_document']['history']['version']=-_0x4ea333['length'],_0x4ea333['forEach'](_0x4dd2bf=>{_0x4dd2bf['baseVersion']-=_0x4ea333['length'],_0x4dd2bf['createdAt']=_0x378645['sessionCreatedAt'],_0x4dd2bf['_isInit']=!0x0,_0x4dd2bf['_authorId']=null;}),this['_applyOperationsSet'](_0x4ea333,!0x0),this['serverHistory']['version']=-_0x4ea333['length']+this['_offset'],this['_updateServerHistory'](_0x4ea333);}this['_document']['history']['version']=_0x543ec0,_0x311976=this['_decompressOperations'](_0x378645['data'],_0x378645['metadata']),await this['_fetchMissingUsers'](_0x311976),this['_applyOperationsSet'](_0x311976,_0x1a4bbd);}_0x378645['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x311976,_0x378645['lastOperationId']),this['_lastSyncedOperationId']=_0x378645['lastOperationId']),this['serverHistory']['version']=_0x543ec0+this['_offset'],this['_updateServerHistory'](_0x311976),_0x47730a['filter'](_0x20382c=>{const _0x24bcb3=this['_getAffectedRoot'](_0x20382c);return _0x24bcb3&&!this['_knownRootNames']['has'](_0x24bcb3);})['forEach']((_0x2bcf4e,_0xe75f8e)=>{_0x2bcf4e['baseVersion']=this['_document']['version']+_0xe75f8e,this['_saveOperationInBuffer'](_0x2bcf4e);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x145ff9,_0x2474e8){const _0x4f2658=_0x2474e8&&_0x2474e8['message'];if(_0x4f2658&&_0x4f2658['startsWith']('realtimecollaborationclient'))throw _0x2474e8;const _0x27d2d3=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x27d2d3['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x44690c(_0x145ff9,this['editor'],_0x4f2658?{'originalError':_0x4f2658}:void 0x0);}['_saveOperationInBuffer'](_0x9a76cd){this['_knownOperations']['has'](_0x9a76cd)||(this['_knownOperations']['add'](_0x9a76cd),this['_bufferedOperations']['push'](_0x9a76cd),this['_pendingAction']||'marker'==_0x9a76cd['type']&&!_0x9a76cd['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x4a47b5=!0x1){!_0x4a47b5&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x144d31=>{_0x144d31&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x3698b8=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x446249){return _0x446249['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x446249['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x446249['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x3698b8)||this['_crash'](_0x3698b8['message'],_0x3698b8);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0xb69190=>{this['on']('change:_isPendingUpdate',()=>{_0xb69190();});});}async['_sendBufferedOperations'](){const _0x10c8ea=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x10c8ea['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x2efa2f=[...this['_bufferedOperations']];for(const _0x18cd96 of _0x2efa2f)_0x18cd96['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x18cd96);const _0xeb6a3b=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x2efa2f),_0x7a205b=J++,_0x293f41=this['_compressOperations'](_0x2efa2f),_0xcdf4ea=await this['_service']['sendOperations'](_0x293f41,_0x293f41['baseVersion'],_0xeb6a3b);try{return await this['_handleServerResponse'](_0x2efa2f,_0xcdf4ea,_0x7a205b);}catch(_0x1343f3){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x1343f3);}}async['_handleServerResponse'](_0x536120,_0x237c8a,_0x598780){if('error'in _0x237c8a)throw _0x237c8a['error'];let _0x471a9f=!0x1;if(_0x237c8a['wereChangesApplied']){_0x237c8a['lastOperationId']&&(this['_lastSyncedOperationId']=_0x237c8a['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x16c407=>!_0x536120['includes'](_0x16c407));for(const _0x40ef21 of _0x536120)_0x40ef21['createdAt']='lastOperationAcceptedAt'in _0x237c8a&&_0x237c8a['lastOperationAcceptedAt']||void 0x0;Q(_0x536120,_0x237c8a['version']-_0x536120['length']),this['_updateServerHistory'](_0x536120);const _0x2ef52f=_0x536120['filter'](_0x29b6f2=>{if(!_0x29b6f2['_isInit'])return!0x1;const _0x2f6a3a=this['_getAffectedRoot'](_0x29b6f2);return _0x2f6a3a&&!this['_knownRootNames']['has'](_0x2f6a3a);});Q(_0x2ef52f,this['_document']['version']),this['_applyOperationsSet'](_0x2ef52f),_0x471a9f=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x21175d=this['_decompressOperations'](_0x237c8a['data'],_0x237c8a['metadata'])['filter'](_0x64b6b9=>_0x64b6b9['baseVersion']>=this['_lastServerVersion']);_0x21175d['forEach'](_0x11130d=>this['_addKnownRoot'](_0x11130d)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x3824a1=>!_0x3824a1['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x3824a1))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x21175d),_0x471a9f=this['_handleExternalOperations'](_0x21175d,_0x237c8a['version'],_0x237c8a['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x471a9f?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x564cee,_0x3afffb,_0x2179f6){try{const _0x5dfa53={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x4846b1,operationsB:_0x46085,originalOperations:_0x37af4d}=_0x2638b1(_0x564cee,this['_bufferedOperations'],_0x5dfa53);Q(_0x4846b1,this['_document']['version']),Q(_0x46085,_0x3afffb);for(const _0x31f098 of _0x4846b1){const _0x1bd806=_0x37af4d['get'](_0x31f098);_0x31f098['_authorId']=_0x1bd806?_0x1bd806['_authorId']:null;}_0x2179f6&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x564cee,_0x2179f6),this['_lastSyncedOperationId']=_0x2179f6),this['_bufferedOperations']=[..._0x46085],this['_applyOperationsSet'](_0x4846b1),this['_updateServerHistory'](_0x564cee);}catch(_0x124107){return console['error'](_0x124107),!0x1;}return!0x0;}['_applyOperationsSet'](_0xbf3ebe,_0x2370e0=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x493065=>{for(const _0x32cdcc of _0xbf3ebe)this['_knownOperations']['add'](_0x32cdcc),this['_addKnownRoot'](_0x32cdcc),_0x493065['batch']['addOperation'](_0x32cdcc),this['editor']['model']['applyOperation'](_0x32cdcc);});}['_addKnownRoot'](_0x5d9aad){const _0x2cc8ba=this['_getAffectedRoot'](_0x5d9aad);_0x2cc8ba&&this['_knownRootNames']['add'](_0x2cc8ba);}['_getAffectedRoot'](_0x180e5c){let _0x169a6d,_0x54d172;switch(_0x180e5c['type']){case'insert':_0x169a6d=_0x180e5c['position']['root'];break;case'marker':if(_0x54d172=_0x180e5c['newRange'],!_0x54d172)return null;_0x169a6d=_0x54d172['root'];break;case'addRootAttribute':_0x169a6d=_0x180e5c['root'];break;case'addRoot':_0x169a6d=_0x180e5c['affectedSelectable'];break;case'move':_0x169a6d=_0x180e5c['targetPosition']['root'];break;default:return null;}return _0x169a6d['rootName'];}['_updateServerHistory'](_0x3ba679){_0x3ba679['forEach'](_0x44edad=>{const _0x25b735=_0x44edad['clone']();_0x25b735['_authorId']=_0x44edad['_authorId'],_0x25b735['_isInit']=!!_0x44edad['_isInit'],_0x25b735['createdAt']=_0x44edad['createdAt'],_0x25b735['baseVersion']+=this['_offset'],_0x44edad['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x25b735),this['serverHistory']['addOperation'](_0x25b735);});}['_handleReconnectionError'](_0xb4ec75){const _0x5d3f3c=this['editor']['plugins']['get']('Notification'),_0x3962d7=this['editor']['locale'];_0xb4ec75||(_0xb4ec75=K(_0x3962d7,'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.')),_0x5d3f3c['showWarning'](_0xb4ec75,{'title':K(_0x3962d7,'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'](_0x8e714)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x8e714)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x7ac0b4){const _0x38ac9c=_0x7ac0b4['map'](_0x46a298=>_0x46a298['toJSON']());return this['_compressor']['compress'](_0x38ac9c);}['_decompressOperations'](_0x484560,_0x42b59c){return this['_compressor']['decompress'](_0x484560)['map']((_0x5d67e7,_0x3299fe)=>{const _0x43ed07='init'==_0x42b59c[_0x3299fe]['type'];if('InsertOperation'==_0x5d67e7['__className']){const _0x2b0bb1=_0x5d67e7['position']['root'];!this['_document']['getRoot'](_0x2b0bb1)&&(this['_document']['createRoot']('$unknown',_0x2b0bb1)['_isAttached']=!0x1);}else{if('RootOperation'==_0x5d67e7['__className']){const _0x12a4d2=this['_document']['getRoot'](_0x5d67e7['rootName']);_0x12a4d2&&'$unknown'==_0x12a4d2['name']&&_0x5d67e7['elementName']!=_0x12a4d2['name']&&(_0x12a4d2['name']=_0x5d67e7['elementName']);}}const _0x3bb9d4=_0x18bdd0['fromJSON'](_0x5d67e7,this['_document']);return _0x3bb9d4['wasUndone']=_0x5d67e7['wasUndone'],_0x3bb9d4['_isInit']=_0x43ed07,_0x3bb9d4['_authorId']=_0x43ed07?null:_0x42b59c[_0x3299fe]['userId'],_0x3bb9d4['_isDisconnection']='cs:removeUser'===_0x42b59c[_0x3299fe]['type'],_0x3bb9d4['createdAt']=_0x42b59c[_0x3299fe]['createdAt'],_0x3bb9d4;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x316473=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x316473&&_0x316473['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x3cf784,_0x29c237){for(const _0x2ec6cb of _0x3cf784)_0x2ec6cb['baseVersion']=_0x29c237++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x1c8e90){this['_ignoredOperations']=_0x1c8e90,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x53c450){let _0x16ecb9=_0x53c450['length'];for(;_0x16ecb9--;){const _0x143c6c=_0x53c450[_0x16ecb9];if(!this['_ignoredOperations']['has'](_0x143c6c)){if(!this['_operationToId']['has'](_0x143c6c)){const _0x249236=_0x2e2a43()['slice'](0x1,0x12);this['_operationToId']['set'](_0x143c6c,_0x249236);}return this['_operationToId']['get'](_0x143c6c);}}}['setIdForTheLastOperation'](_0x1cfed1,_0x5c3dba){if(!_0x5c3dba)return;let _0x4d14ef=_0x1cfed1['length'];for(;_0x4d14ef--;){const _0xfa4134=_0x1cfed1[_0x4d14ef];this['_ignoredOperations']['has'](_0xfa4134)||this['_operationToId']['set'](_0xfa4134,_0x5c3dba);}}}class RealTimeCollaborativeEditing extends _0x523d5c{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x191ab4{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
- ((()=>_0x177deb)());['_services'];static get['requires'](){return[WebSocketGateway,_0x55664d,Sessions,_0xbd9206];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x185ebc){super(_0x185ebc),this['_services']=new Map();}async['init'](){const _0x5b2546=this['context'],_0x30cf8a=_0x5b2546['plugins']['get'](_0x55664d);if(_0x5b2546['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x30cf8a['adapter']={'addCommentThread':async({channelId:_0x1ba310,threadId:_0x250930,comments:_0x3657ed,resolvedAt:_0x592664,resolvedBy:_0x2be353,context:_0x2ddca5,attributes:_0x576789})=>{const _0x1c0c26=await this['_getService'](_0x1ba310)['addCommentThread']({'commentThreadId':_0x250930,'comments':_0x3657ed['map'](_0x617155=>function(_0x289111,_0x6fdaa3,_0xcb7616){return{'commentThreadId':_0xcb7616,'commentId':_0x289111['commentId'],'userId':_0x289111['authorId'],'content':_0x289111['content'],'documentId':_0x6fdaa3,'createdAt':_0x289111['createdAt'],'attributes':_0x289111['attributes']||{}};}(_0x617155,_0x1ba310,_0x250930)),'resolvedAt':_0x592664,'resolvedBy':_0x2be353,'context':_0x2ddca5,'attributes':_0x576789})['catch'](Z);return{'threadId':_0x1c0c26['commentThreadId'],'comments':_0x1c0c26['comments']};},'getCommentThread':async({channelId:_0x5b8d88,threadId:_0x1ed2a3})=>{const _0x41a447=await this['_getService'](_0x5b8d88)['getCommentThread'](_0x1ed2a3)['catch'](X)['catch'](Z);return _0x41a447?_0x41a447['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x41a447]),{'threadId':_0x41a447['commentThreadId'],'comments':_0x41a447['comments']['map'](tt),'context':_0x41a447['context'],'resolvedAt':_0x41a447['resolvedAt'],'resolvedBy':_0x41a447['resolvedBy'],'attributes':_0x41a447['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x7ebf6d,threadId:_0x5b9dc6,context:_0x31ec65,unlinkedAt:_0x48c7db,attributes:_0x1b4e68})=>this['_getService'](_0x7ebf6d)['updateCommentThread']({'commentThreadId':_0x5b9dc6,'context':_0x31ec65,'attributes':_0x1b4e68,'unlinkedAt':_0x48c7db})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x3cf8c3,threadId:_0x52a794})=>{const _0x50564c=await this['_getService'](_0x3cf8c3)['resolveCommentThread'](_0x52a794)['catch'](X)['catch'](Z);return{'threadId':_0x50564c['commentThreadId'],'resolvedAt':_0x50564c['resolvedAt'],'resolvedBy':_0x50564c['resolvedBy']};},'reopenCommentThread':async({channelId:_0x7e4e35,threadId:_0x1c2218})=>this['_getService'](_0x7e4e35)['reopenCommentThread'](_0x1c2218)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x2e2f97,threadId:_0x5a0cac})=>this['_getService'](_0x2e2f97)['removeCommentThread'](_0x5a0cac)['catch'](X)['catch'](Z),'addComment':({channelId:_0x17e203,threadId:_0x1610a8,commentId:_0x198cee,content:_0x58585c,attributes:_0x3f99f2})=>this['_getService'](_0x17e203)['addComment'](_0x1610a8,_0x198cee,_0x58585c,_0x3f99f2)['catch'](Z),'updateComment':({channelId:_0x4ff8ff,threadId:_0xe6a85,commentId:_0x386913,content:_0x2dffde,attributes:_0x6b0638})=>this['_getService'](_0x4ff8ff)['updateComment'](_0xe6a85,_0x386913,_0x2dffde,_0x6b0638)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x4416f9,threadId:_0x177588,commentId:_0x597f53})=>this['_getService'](_0x4416f9)['removeComment'](_0x177588,_0x597f53)['catch'](X)['catch'](Z)},_0x5b2546 instanceof _0x82da95){const _0xc7d2e4=_0x5b2546['config']['get']('collaboration.channelId'),_0x8c1c56=_0x5b2546['plugins']['get'](Sessions);await this['_setUpService'](_0xc7d2e4);const _0x22d7f3=await this['_services']['get'](_0xc7d2e4)['getConnectedSessions']();this['listenTo'](_0x8c1c56,'sessionAdd:'+_0xc7d2e4,(_0x8ee34c,{session:_0x11ff1a})=>{_0x11ff1a['id']===_0x8c1c56['mySessionId']&&(_0x8ee34c['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x11ff1a['permissions'],_0xc7d2e4));}),_0x8c1c56['register'](_0xc7d2e4,_0x22d7f3);}}async['_setUpService'](_0x1ec095){if(this['_services']['has'](_0x1ec095))throw new _0x44690c('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x1ec095});const _0x129482=this['context']['plugins']['get'](_0x55664d),_0x497cda=new CloudServicesCommentsAdapter['CommentsService'](_0x1ec095);this['_services']['set'](_0x1ec095,_0x497cda),this['listenTo'](_0x497cda,'commentThreadAdded',(_0x4673f1,_0x312c02)=>{const {commentThreadId:_0x4c0800,documentId:_0x29182b,context:_0x7a181f,attributes:_0x488a3c,resolvedAt:_0x646b94,resolvedBy:_0xa2f5c2,comments:_0x4fe032}=_0x312c02;_0x129482['getCommentThread'](_0x4c0800)||_0x129482['addCommentThread']({'threadId':_0x4c0800,'channelId':_0x29182b,'comments':_0x4fe032?_0x4fe032['map'](tt):[],'context':_0x7a181f,'attributes':_0x488a3c,'resolvedAt':_0x646b94,'resolvedBy':_0xa2f5c2,'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadUpdated',(_0x68c40e,{commentThreadId:_0x3f4f33,documentId:_0x2bf988,context:_0xbfa976,unlinkedAt:_0x2538cd,attributes:_0x5f3630})=>{_0x129482['getCommentThread'](_0x3f4f33)&&_0x129482['updateCommentThread']({'threadId':_0x3f4f33,'channelId':_0x2bf988,'context':_0xbfa976,'unlinkedAt':_0x2538cd,'attributes':_0x5f3630,'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadResolved',(_0x2e1bb7,{commentThreadId:_0x53dff5,resolvedBy:_0x631a0e,resolvedAt:_0x1b07da})=>{const _0x5c6c80=_0x129482['getCommentThread'](_0x53dff5);_0x5c6c80&&_0x5c6c80['resolve']({'resolvedBy':_0x631a0e,'resolvedAt':_0x1b07da,'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadReopened',(_0x12a10b,{commentThreadId:_0x15dd3e})=>{const _0x3b90c8=_0x129482['getCommentThread'](_0x15dd3e);_0x3b90c8&&_0x3b90c8['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadRemoved',(_0xc6ec16,{commentThreadId:_0x3ddb42})=>{const _0x35bfe9=_0x129482['getCommentThread'](_0x3ddb42);_0x35bfe9&&_0x35bfe9['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentAdded',(_0x4a0b9a,_0x52dca8)=>{const _0x3382a9=_0x52dca8['commentThreadId'],_0x42dfb3=_0x129482['getCommentThread'](_0x3382a9);_0x42dfb3&&_0x42dfb3['addComment']({...tt(_0x52dca8),'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentUpdated',(_0x79a338,{commentThreadId:_0x1468aa,commentId:_0x1ae649,content:_0x53532d,attributes:_0x4a00cc})=>{const _0x4ec929=_0x129482['getCommentThread'](_0x1468aa);if(_0x4ec929){const _0x122dfc=_0x4ec929['getComment'](_0x1ae649);_0x122dfc&&_0x122dfc['update']({'content':_0x53532d,'attributes':_0x4a00cc,'isFromAdapter':!0x0});}}),this['listenTo'](_0x497cda,'commentRemoved',(_0x3d349a,{commentThreadId:_0xf7829c,commentId:_0x5b348f})=>{const _0x5f5c75=_0x129482['getCommentThread'](_0xf7829c);if(_0x5f5c75){const _0x3f363f=_0x5f5c75['getComment'](_0x5b348f);_0x3f363f&&_0x3f363f['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x1ec095);}['destroy'](){if(this['context']instanceof _0x82da95){const _0x4bf845=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x4bf845);}}['_terminateService'](_0x31a7b7){if(!this['_services']['has'](_0x31a7b7))throw new _0x44690c('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x31a7b7});this['_getService'](_0x31a7b7)['disconnect'](),this['_services']['delete'](_0x31a7b7);}async['reconnect'](){for(const _0x2caa4a of this['_services']['keys']())await this['_connectService'](_0x2caa4a);if(this['context']instanceof _0x82da95){const _0x36dd3b=this['context']['config']['get']('collaboration.channelId'),_0x4230b4=this['context']['plugins']['get'](Sessions);_0x4230b4['unregister'](_0x36dd3b);const _0x7eb1e5=await this['_services']['get'](_0x36dd3b)['getConnectedSessions']();_0x4230b4['register'](_0x36dd3b,_0x7eb1e5);}}async['_connectService'](_0x5ca8a6){const {connection:_0x9839f9}=this['context']['plugins']['get'](WebSocketGateway),_0x2684de=this['context']['plugins']['get'](_0x55664d),_0x17ccb8=this['_services']['get'](_0x5ca8a6),_0x3c044d=await _0x17ccb8['connect'](_0x9839f9);await this['_fetchMissingUsersForThreads'](_0x3c044d);const _0x5b1ae2=new Set(Array['from'](_0x2684de['getCommentThreads']({'channelId':_0x5ca8a6}),_0x3b9063=>_0x3b9063['id']));for(const _0x110f71 of _0x3c044d)_0x110f71['deletedAt']||_0x5b1ae2['delete'](_0x110f71['commentThreadId']);for(const _0x13c382 of _0x5b1ae2)_0x2684de['getCommentThread'](_0x13c382)['remove']({'isFromAdapter':!0x0});for(const _0x5ec00f of _0x3c044d){let _0x426e14=_0x2684de['getCommentThread'](_0x5ec00f['commentThreadId']);const {commentThreadId:_0x482c51,context:_0x1440f7,attributes:_0x1e903a,resolvedBy:_0x1e584b,resolvedAt:_0x562344,unlinkedAt:_0x511a9a,deletedAt:_0x1f682b}=_0x5ec00f;if(_0x1f682b)continue;_0x426e14||(_0x426e14=_0x2684de['addCommentThread']({'channelId':_0x5ca8a6,'threadId':_0x482c51,'context':_0x1440f7,'attributes':_0x1e903a||{},'resolvedBy':_0x1e584b,'resolvedAt':_0x562344,'unlinkedAt':_0x511a9a,'isFromAdapter':!0x0}));const _0x2ba026=new Set(Array['from'](_0x426e14['comments'],_0x388faf=>_0x388faf['id']));for(const _0x865216 of _0x5ec00f['comments'])_0x2ba026['delete'](_0x865216['commentId']);for(const _0x4af905 of _0x2ba026)_0x426e14['getComment'](_0x4af905)['remove']({'isFromAdapter':!0x0});for(const _0x34fe46 of _0x5ec00f['comments']){const _0x340796=_0x426e14['getComment'](_0x34fe46['commentId']);_0x340796?_0x340796['content']!==_0x34fe46['content']&&_0x340796['update']({'content':_0x34fe46['content'],'isFromAdapter':!0x0}):_0x426e14['addComment'](Object['assign'](tt(_0x34fe46),{'isFromAdapter':!0x0}));}}}['_getService'](_0xd79d34){if(!this['_services']['has'](_0xd79d34))throw new _0x44690c('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0xd79d34});return this['_services']['get'](_0xd79d34);}async['_fetchMissingUsersForThreads'](_0x4eda1f){const _0x383406=this['context']['plugins']['get'](_0xbd9206),{connection:_0x196bb1}=this['context']['plugins']['get'](WebSocketGateway),_0x5d587c=new Set();for(const {resolvedBy:_0xfe76bd,comments:_0x2c5eb6}of _0x4eda1f){_0xfe76bd&&!_0x383406['getUser'](_0xfe76bd)&&_0x5d587c['add'](_0xfe76bd);for(const {userId:_0x13a44c}of _0x2c5eb6)_0x383406['getUser'](_0x13a44c)||_0x5d587c['add'](_0x13a44c);}if(0x0===_0x5d587c['size'])return;const _0xef9e30=await _0x270274['getMany'](_0x196bb1,Array['from'](_0x5d587c));for(const _0x2d2ee5 of _0xef9e30)_0x383406['getUser'](_0x2d2ee5['id'])||_0x383406['addUser'](_0x2d2ee5);}}async function X(_0x5f19f7){if('404'!==_0x5f19f7['code'])throw _0x5f19f7;}function Z(_0x71e5){if((_0x7f1587=_0x71e5)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x7f1587['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x7f1587['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x7f1587;throw _0x71e5;}function tt(_0x47c469){return{'threadId':_0x47c469['commentThreadId'],'commentId':_0x47c469['commentId'],'content':_0x47c469['content'],'createdAt':_0x47c469['createdAt'],'authorId':_0x47c469['userId'],'attributes':_0x47c469['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x523d5c{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
- ((()=>_0x26d7c6)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x1a1529,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x40c4ed){super(_0x40c4ed);const _0x1feeee=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x1feeee);}['init'](){const _0x9a3808=this['editor']['plugins']['get'](WebSocketGateway),_0x5956a2=this['editor']['plugins']['get'](_0x1a1529);return _0x5956a2['adapter']={'getSuggestion':async _0x4e6e99=>{await this['_waitForServiceReady']();const _0x1b9d5a=await this['_trackChangesService']['get'](_0x4e6e99)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x1b9d5a]),_0x1b9d5a;},'addSuggestion':async({id:_0x440086,type:_0x30d5d3,data:_0x2e2299,originalSuggestionId:_0x33a79b,attributes:_0x279bb0})=>{await this['_waitForServiceReady']();const _0x40ce98={'id':_0x440086,'type':_0x30d5d3,'data':_0x2e2299,'originalSuggestionId':_0x33a79b,'attributes':_0x279bb0},_0x598265=await this['_trackChangesService']['add'](_0x440086,_0x30d5d3,_0x2e2299,_0x33a79b,_0x279bb0)['catch'](_0xd6e1af=>{if(st(_0xd6e1af))return new Promise(_0x2a1a3b=>{this['_bufferedRequests']['set'](_0x440086,{'resolve':_0x2a1a3b,'suggestionData':_0x40ce98});});throw _0xd6e1af;});return this['_bufferedRequests']['delete'](_0x440086),_0x598265;},'updateSuggestion':async(_0x592446,_0x4b0fee)=>{if(await this['_waitForServiceReady'](),'open'!==_0x4b0fee['state'])return this['_trackChangesService']['update'](_0x592446,_0x4b0fee)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x57ff47,_0x184fb5)=>{_0x5956a2['hasSuggestion'](_0x184fb5['id'])&&(_0x5956a2['getSuggestion'](_0x184fb5['id'])['attributes']=_0x184fb5['attributes']);}),this['_trackChangesService']['connect'](_0x9a3808['connection'])['then'](_0x5dde67=>(_0x9a3808['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x5dde67)['then'](()=>{for(const _0x4e9f3a of _0x5dde67){_0x5956a2['addSuggestionData'](_0x4e9f3a)['_saved']=!0x0;}})));}async['reconnect'](){const _0x2db223=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x214714}=this['editor']['plugins']['get'](WebSocketGateway),_0x2fc806=await this['_trackChangesService']['connect'](_0x214714);await this['_fetchMissingUsersForThreads'](_0x2fc806);for(const {suggestionData:_0x5d0335,resolve:_0x10265a}of this['_bufferedRequests']['values']()){let _0x4d697a=_0x2fc806['find'](_0x49d230=>_0x49d230['id']===_0x5d0335['id']);_0x4d697a||(_0x4d697a=await this['_trackChangesService']['add'](_0x5d0335['id'],_0x5d0335['type'],_0x5d0335['data'],_0x5d0335['originalSuggestionId'])),_0x10265a(_0x4d697a);}for(const _0x357ff0 of _0x2fc806)_0x2db223['hasSuggestion'](_0x357ff0['id'])||_0x2db223['addSuggestionData'](_0x357ff0);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x38f0b0=>{this['listenTo'](this['_trackChangesService'],'connected',_0xf66b56=>{_0xf66b56['off'](),_0x38f0b0();});});}async['_fetchMissingUsersForThreads'](_0x1618d2){const _0x35900d=this['editor']['plugins']['get'](_0xbd9206),{connection:_0x113a75}=this['editor']['plugins']['get'](WebSocketGateway),_0x32acf8=new Set();for(const {authorId:_0x5de262}of _0x1618d2)_0x35900d['getUser'](_0x5de262)||_0x32acf8['add'](_0x5de262);if(0x0===_0x32acf8['size'])return;const _0x421806=await _0x270274['getMany'](_0x113a75,Array['from'](_0x32acf8));for(const _0x3e38ff of _0x421806)_0x35900d['getUser'](_0x3e38ff['id'])||_0x35900d['addUser'](_0x3e38ff);}}function et(_0x562248){if(st(_0x562248))return new Promise(()=>{});throw _0x562248;}function st(_0x5d00f0){return _0x5d00f0['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x5d00f0['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x523d5c{static get['requires'](){return[_0x42ae2e,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x5a4d7e=this['editor']['plugins']['get'](WebSocketGateway),_0x1cab93=this['editor']['plugins']['get'](_0x121bef),_0x486787=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x5a4d7e,'change:state',(_0xbb640b,_0x5c473f,_0x435f2c)=>{_0x1cab93['isThreadsLoadingPaused']='connected'!==_0x435f2c;});}),this['listenTo'](_0x5a4d7e,'change:state',(_0x1cf0b1,_0x19ad81,_0x56658d)=>{this['editor']['plugins']['get'](_0x55664d)['switchReadOnly']('connected'!==_0x56658d);}),_0x486787['_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 _0x523d5c{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x2d4889];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x523d5c{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
- ((()=>_0x3b4c9e)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x510d56,Sessions,_0xbd9206];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x51a4ca){super(_0x51a4ca);const _0x4ab4f6=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x4ab4f6);}async['init'](){const _0x8b2b91=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x3a1555=_0x8b2b91['serverHistory'],_0x1ef059=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x3a1555,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x8b2b91['sessionId']});const _0x93e260=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x146c5e,_0x1f1ca6=await _0x5b3750['isBundleUploaded'](_0x1ef059['connection'],_0x93e260);this['editor']['plugins']['get'](_0x510d56)['adapter']={'getRevision':async({revisionId:_0x599ad2})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x599ad2)),'updateRevisions':async _0x53c689=>{await this['_waitForServiceReady']();const _0x2af103=this['_revisionTracker']['currentRevision'];if(_0x1f1ca6&&0x1===_0x53c689['length']&&_0x53c689[0x0]['id']===_0x2af103['id'])return _0x53c689;for(const _0x16b5e8 of _0x53c689)_0x16b5e8['id']===_0x2af103['id']&&(_0x16b5e8['isEmptyCurrent']=_0x16b5e8['fromVersion']===_0x16b5e8['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x53c689,this['_lastRequestId'])['then'](_0x443986=>(this['_lastRequestId']=_0x443986,_0x53c689))['catch'](_0x4ccd92=>{if(it(_0x4ccd92)||'400'===_0x4ccd92['code']&&void 0x0!==_0x4ccd92['data']['wrongRequestId']){for(const _0x4ed028 of _0x53c689){!this['_revisionTracker']['repository']['getRevision'](_0x4ed028['id'])||this['_revisionTracker']['_bufferUpdate'](_0x4ed028['id'],_0x4ed028,!0x1);}if(it(_0x4ccd92)&&'destroyed'!==this['editor']['state'])throw _0x4ccd92;return _0x53c689;}throw _0x4ccd92;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x742007,{revisionsData:_0x2ab476,requestId:_0x5adb88})=>{Math['max'](..._0x2ab476['map'](_0x247a2c=>_0x247a2c['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x2ab476,_0x5adb88);}):this['_handleRevisionsUpdate'](_0x2ab476,_0x5adb88);});const {revisions:_0x1c5213,requestId:_0x8acce3}=await this['_revisionHistoryService']['connect'](_0x1ef059['connection']);_0x1ef059['addToReconnectionStack'](this),this['_lastRequestId']=_0x8acce3,await this['_fetchMissingUsers'](_0x1c5213);for(const _0x25ee99 of _0x1c5213)this['_revisionTracker']['addRevisionData'](_0x25ee99);this['listenTo'](_0x8b2b91,'change:_isConnected',(_0x3e5ba6,_0x2f005e,_0x37d912)=>{_0x37d912&&(this['_oldOffset']=_0x8b2b91['_offset'],_0x3e5ba6['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x1ef059,'state',_0x1b9d42=>_0x1b9d42===_0xb53f3f['CONNECTED']);}async['reconnect'](){const _0x100a0f=this['editor']['plugins']['get'](WebSocketGateway),_0x13b048=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x2a5a6a=async()=>{const _0x1dd0e7=this['_revisionTracker']['currentRevision'],_0x39d004=_0x1dd0e7['id'],_0x5bfa3d=_0x39d004!==_0x13b048['sessionId'];if(_0x5bfa3d){const _0x35b24d=_0x13b048['_offset']-this['_oldOffset'],_0x251b57=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x1dd0e7['toVersion']+_0x35b24d!==_0x251b57){const _0x4dc783=_0x1dd0e7['fromVersion']+_0x35b24d,_0x2aed49=this['editor']['plugins']['get'](_0xbd9206),_0x44f001=this['_revisionTracker']['buildRevisionData']({'revision':_0x1dd0e7,'from':_0x4dc783,'to':_0x251b57});_0x44f001['id']=_0x1dd0e7['id'];const _0x4927f0=_0x44f001['authorsIds']['map'](_0x35bd68=>_0x2aed49['getUser'](_0x35bd68));_0x1dd0e7['_update']({..._0x44f001,'authors':_0x4927f0},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x1dd0e7['id'],_0x44f001,!0x0);}this['_revisionTracker']['_startingVersion']=_0x251b57,(_0x1dd0e7['toVersion']===_0x1dd0e7['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x39d004)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x39d004),this['_revisionTracker']['_createCurrentRevision'](_0x251b57));}const {revisions:_0x428d26,requestId:_0x3209eb}=await this['_revisionHistoryService']['reconnect'](_0x100a0f['connection'],this['_lastRequestId']);_0x5bfa3d&&_0x428d26['length']>0x0?_0x13b048['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x428d26),this['_handleRevisionsUpdate'](_0x428d26,_0x3209eb),this['_revisionTracker']['sendBufferedUpdates']());};return _0x13b048['_isConnected']?_0x2a5a6a():new Promise((_0x3570ac,_0x304f3f)=>{_0x13b048['once']('change:_isConnected',()=>{_0x2a5a6a()['then'](_0x3570ac)['catch'](_0x304f3f);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x1c90f7=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x4a8b4f=>{_0x4a8b4f['off'](),_0x1c90f7();});});}['_getLatestVersionFromServerOperations'](){const _0x11e519=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x5c67fd of _0x11e519)if('marker'!==_0x5c67fd['type']||_0x5c67fd['affectsData'])return _0x5c67fd['baseVersion']+0x1;}['_getLatestVersion'](){const _0xcedb55=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x1d82f7=>{_0xcedb55['_isPendingUpdate']?_0xcedb55['once']('change:_isPendingUpdate',()=>{_0x1d82f7(this['_getLatestVersionFromServerOperations']());}):_0x1d82f7(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x9d3d42,_0x5b00f7){const _0x3ec4d4=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x5b00f7;for(const _0x38758c of _0x9d3d42){const _0x5cde11=_0x3ec4d4['getRevision'](_0x38758c['id']);if(_0x5cde11){if((_0x38758c['fromVersion']||_0x38758c['toVersion'])&&(_0x38758c['diffData']=null),_0x5cde11===this['_revisionTracker']['currentRevision']){const _0x35cfe7=Math['max'](_0x5cde11['toVersion'],_0x38758c['toVersion']),_0x9ee17b=Math['max'](_0x5cde11['fromVersion'],_0x38758c['fromVersion']);let _0x45fb80;_0x5cde11['toVersion']===_0x38758c['toVersion']&&_0x5cde11['fromVersion']===_0x38758c['fromVersion']?(_0x45fb80=!0x0,this['_preventResendingRevisionData'](_0x38758c)):_0x38758c['toVersion']===_0x35cfe7&&_0x38758c['fromVersion']===_0x9ee17b?_0x45fb80=!0x1:(_0x5cde11['toVersion']===_0x35cfe7&&_0x5cde11['fromVersion']===_0x9ee17b||this['_fixRevision']({'revision':_0x5cde11,'from':_0x9ee17b,'to':_0x35cfe7}),_0x45fb80=!0x0),_0x45fb80&&(delete _0x38758c['fromVersion'],delete _0x38758c['toVersion'],delete _0x38758c['diffData'],delete _0x38758c['createdAt'],delete _0x38758c['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x38758c),this['_preventResendingRevisionData'](_0x38758c);}else this['_revisionTracker']['addRevisionData'](_0x38758c);}const _0x1b4e15=_0x3ec4d4['getRevisions']();_0x1b4e15['reverse']();for(let _0x57941f=0x0;_0x57941f<_0x1b4e15['length']-0x1;_0x57941f++){const _0x273a31=_0x1b4e15[_0x57941f],_0x371b11=_0x1b4e15[_0x57941f+0x1];if(_0x273a31['fromVersion']<_0x371b11['toVersion']){const _0x3525d4=_0x371b11['toVersion'],_0x4eb205=Math['max'](_0x3525d4,_0x273a31['toVersion']);this['_fixRevision']({'revision':_0x273a31,'from':_0x3525d4,'to':_0x4eb205});}}}['_fixRevision']({revision:_0xfc44bc,from:_0x4536d1,to:_0x3bf614}={}){const _0x3f6cac=this['editor']['plugins']['get'](_0xbd9206),_0x514180=this['_revisionTracker']['buildRevisionData']({'revision':_0xfc44bc,'from':_0x4536d1,'to':_0x3bf614});_0x514180['authors']=_0x514180['authorsIds']['map'](_0x1c6cf1=>_0x3f6cac['getUser'](_0x1c6cf1)),_0xfc44bc['_update'](_0x514180);}['_preventResendingRevisionData'](_0x328a90){const _0x5bd0bc={};_0x5bd0bc['id']=_0x328a90['id'];for(const _0x27b777 of Object['keys'](_0x328a90))'id'!==_0x27b777&&(_0x5bd0bc[_0x27b777]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x5bd0bc['id'],_0x5bd0bc,!0x0);}async['_fetchMissingUsers'](_0x518281){const _0x453470=this['editor']['plugins']['get'](_0xbd9206),{connection:_0x439f8f}=this['editor']['plugins']['get'](WebSocketGateway),_0x1593e9=new Set();for(const _0x2f8fd3 of _0x518281){for(const _0x3de52b of _0x2f8fd3['authorsIds'])_0xe0e850(_0x3de52b);_0x2f8fd3['creatorId']&&_0xe0e850(_0x2f8fd3['creatorId']);}if(0x0===_0x1593e9['size'])return;const _0x334685=await _0x270274['getMany'](_0x439f8f,Array['from'](_0x1593e9));for(const _0x3d4cfd of _0x334685)_0x453470['getUser'](_0x3d4cfd['id'])||_0x453470['addUser'](_0x3d4cfd);function _0xe0e850(_0x5a5486){_0x453470['getUser'](_0x5a5486)||_0x1593e9['add'](_0x5a5486);}}}function it(_0x34f286){return _0x34f286['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x34f286['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x34f286['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x523d5c{static get['requires'](){return[_0x510d56,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x59157b{['_collapseAt'];constructor(_0x1d2d42,_0x410939=0x6){super(_0x1d2d42);const _0x19dac8=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x410939,this['bind']('isHidden')['to'](this,'usersCount',_0x336703=>_0x336703<_0x410939),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x19dac8['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':_0x19dac8['to']('usersCount',_0x221312=>'+'+(_0x221312-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x59157b{['items'];['keystrokes'];constructor(_0x33ba9a){super(_0x33ba9a);const _0x35a3fd=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x4de09d(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x35a3fd['if']('hasPopup'),'aria-expanded':_0x35a3fd['to']('isExpanded',_0xc8a4f5=>this['hasPopup']&&String(_0xc8a4f5)),'aria-label':_0x35a3fd['to']('hasPopup',_0x1af98c=>K(_0x33ba9a,_0x1af98c?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x35a3fd['to']('hasPopup',_0x45f12e=>!!_0x45f12e&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x35a3fd['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x35a3fd['to'](_0xe607de=>{const _0x39f53b=_0xe607de,_0x32833d=document['querySelector']('.ck-presence-list__dropdown-list'),_0x531ec5=document['querySelector']('.ck-balloon-panel_with-arrow');_0x32833d?.['contains'](_0x39f53b['relatedTarget'])||_0x531ec5?.['contains'](_0x39f53b['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x81ee10,_0x3648ca,_0x2512ab)=>{this['element']&&(_0x2512ab?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 _0x59157b{['counterView'];['inlineListView'];constructor(_0xfc885d,_0x42c08e=0x6){super(_0xfc885d);const _0x280ab9=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x42c08e),this['inlineListView']=new PresenceInlineListView(_0xfc885d),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x28b482 of this['inlineListView']['items'])_0x28b482['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',_0x280ab9['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x59157b{['listWrapperView'];constructor(_0x261e58,_0x44a21d){super(_0x261e58);const _0x5ca4c2=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x261e58,_0x44a21d),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x261e58,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x5ca4c2['to'](_0x50baeb=>{const _0xf0ffa3=_0x50baeb,_0x551f1d=document['querySelector']('.ck-presence-list__list'),_0x3ddefc=document['querySelector']('.ck-balloon-panel_with-arrow');_0x551f1d?.['contains'](_0xf0ffa3['relatedTarget'])||_0x3ddefc?.['contains'](_0xf0ffa3['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x3a285a{constructor(_0x33dfec,_0x50ecfb){super(_0x33dfec);const _0x276136=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x50ecfb?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x276136['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x276136['to']('role'),'aria-label':_0x276136['to']('ariaLabel'),'aria-labelledby':_0x276136['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x14a421['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x11ac01=this['element'];_0x11ac01&&(this['_isScrollable']=Math['max'](_0x11ac01['scrollHeight'],_0x11ac01['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x245139{['userView'];constructor(_0x4a0428,_0xebcc3,_0x4e9c86){super(_0x4a0428);const _0x3a4724=this['bindTemplate'];this['userView']=new _0x1b8b54(_0x4a0428,_0xebcc3);const _0x1f70dc={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0xebcc3['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0xebcc3['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0xebcc3['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0xebcc3['color']['getColorVariable'](),'--ck-user-color-alpha':_0xebcc3['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x4e9c86&&(_0x1f70dc['tag']='button',_0x1f70dc['on']={'click':_0x3a4724['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1f70dc);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x59157b{['userView'];['markerView'];constructor(_0x7c1a90,_0x176e97,_0x3cc627){super(_0x7c1a90);const _0x3abf2a=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x1b8b54(_0x7c1a90,_0x176e97),this['markerView']=new MarkerView(_0x7c1a90,_0x176e97);const _0x3a36d6=new _0x1c19b1(_0x7c1a90);_0x3a36d6['template']['tag']='span',_0x3a36d6['text']=_0x176e97['name'];const _0x56d939={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x3abf2a['to']('isFocusable',_0x590853=>!!_0x590853&&0x0),'aria-labelledby':_0x3a36d6['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x3abf2a['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x3abf2a['to']('hasTooltip',_0x33d49d=>!_0x33d49d),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x3a36d6]};_0x3cc627&&(_0x56d939['tag']='button',_0x56d939['on']={'click':_0x3abf2a['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x56d939);}}class MarkerView extends _0x59157b{constructor(_0x11d041,_0x18201b){super(_0x11d041),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x18201b['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x18201b['color']['getColorVariable'](),'--ck-user-color-alpha':_0x18201b['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x191ab4{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x49e441){super(_0x49e441),this['context']['config']['define']('presenceList',nt);const _0x4772a3=_0x49e441['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x4772a3)throw new _0x44690c('presencelist-collapseat-invalid-format',this);if(_0x4772a3<0x1)throw new _0x44690c('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0xd26e88(),this['balloonPanelView']=new _0x19c131(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x506cd9 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x506cd9);this['listenTo'](this['_allConnectedUsers'],'add',(_0x5abd12,_0x1df10b)=>{this['_handleUserAdd'](_0x1df10b);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x519c26,_0x710a0a)=>{this['_handleUserRemove'](_0x710a0a);});}['_createView'](){const _0x51aa71=this['context'],_0x4988ee=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x1b1c58=this['balloonPanelView'];if(!_0x54c657(_0x51aa71['config']['get']('presenceList.container')))throw new _0x44690c('presencelist-missing-container',this);return _0x4988ee['counterView']['bind']('usersCount')['to'](this),_0x4988ee['bind']('isCollapsed')['to'](this,'usersCount',_0x225c7f=>{const {collapseAt:_0x503af1}=_0x51aa71['config']['get']('presenceList'),_0x1c29b0=_0x225c7f>=_0x503af1;if(_0x1c29b0&&!_0x4988ee['inlineListView']['items']['find'](_0xdbbeae=>_0xdbbeae instanceof PresenceCounterView)){const _0x227d83=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x227d83&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x4988ee['inlineListView']['items']['add'](_0x4988ee['counterView']);}return _0x1c29b0||this['hideDropdown'](),_0x1c29b0;}),_0x4988ee['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x3846eb=>{const _0x192f7a=_0x51aa71['config']['get']('presenceList'),_0x44f8b7=new PresenceInlineListItemView(_0x51aa71['locale'],_0x3846eb,!!_0x192f7a['onClick']);return _0x44f8b7['bind']('hasTooltip')['to'](_0x4988ee,'isCollapsed',_0x278501=>!_0x278501),_0x44f8b7['bind']('isFocusable')['to'](_0x4988ee,'isCollapsed',_0x328d39=>!_0x328d39),_0x192f7a['onClick']&&this['listenTo'](_0x44f8b7,'execute',()=>{this['view']['isCollapsed']||_0x192f7a['onClick'](_0x3846eb,_0x44f8b7['element']);}),_0x44f8b7;}),this['listenTo'](_0x4988ee['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x4988ee['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x4988ee['inlineListView']['keystrokes']['set']('Enter',(_0x5d3066,_0x49636c)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x49636c());}),_0x4988ee['render'](),_0x1b1c58['render'](),_0x52aaad({'emitter':_0x4988ee,'activator':()=>_0x1b1c58['isVisible'],'contextElements':[_0x1b1c58['element'],_0x4988ee['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x51aa71['config']['get']('presenceList.container')['appendChild'](_0x4988ee['element']),this['_bodyCollection']=new _0x418f13(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x4988ee;}['_handleUserAdd'](_0x10c75b){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x10c75b['isMe'])return;const _0x48fcc9=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x48fcc9-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x1a5be1=_0x10c75b['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x10c75b,_0x1a5be1);}['_handleUserRemove'](_0x20e536){this['usersCount']--;const {collapseAt:_0x49b39b}=this['context']['config']['get']('presenceList'),_0x190cfa=this['usersCount']>=_0x49b39b;if(this['currentDisplayedUsers']['get'](_0x20e536['id']))this['currentDisplayedUsers']['remove'](_0x20e536['id']);else{if(_0x190cfa&&this['currentDisplayedUsers']['length']+0x1===_0x49b39b-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x190cfa?0x1:0x0)<this['usersCount']){for(const _0x24cddb of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x24cddb['id'])&&(this['currentDisplayedUsers']['add'](_0x24cddb,Math['min'](this['currentDisplayedUsers']['length']-(_0x190cfa?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x190cfa?0x1:0x0)===_0x49b39b-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x365e1f=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x365e1f['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x3e2661}=this['presenceDropdownView'];_0x3e2661['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x2a246a=>{if(!_0x365e1f['displayMe']&&_0x2a246a['isMe'])return null;const _0x40d507=new PresenceDropdownListItemView(this['context']['locale'],_0x2a246a,!!_0x365e1f['onClick']);return _0x365e1f['onClick']&&this['listenTo'](_0x40d507,'execute',()=>{_0x365e1f['onClick'](_0x2a246a,_0x40d507['element']);}),_0x40d507;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x3e2661['focus'](),_0x3e2661['checkIfScrollable']();const _0x2cc556=(_0x5cb864,_0x4f031a)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x4f031a();};_0x3e2661['keystrokes']['set']('Esc',_0x2cc556),_0x3e2661['keystrokes']['set']('Shift+Tab',_0x2cc556),_0x3e2661['keystrokes']['set']('Tab',(_0x963499,_0x24b7f8)=>{!function(_0x34a1d4){const _0x4f3024=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x3c6c9d=>_0x3c6c9d+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x380dfb=[...document['body']['querySelectorAll'](_0x4f3024)]['filter'](_0x20e04e=>_0x20e04e===document['activeElement']||_0x20e04e['offsetWidth']+_0x20e04e['offsetHeight']>0x0)['sort']((_0x451683,_0x35ea7b)=>(_0x451683['tabIndex']||0x0)-(_0x35ea7b['tabIndex']||0x0)),_0xa3da46=_0x380dfb['indexOf'](_0x34a1d4),_0x2887ce=_0x380dfb[(_0xa3da46+0x1)%_0x380dfb['length']];_0x2887ce&&_0x2887ce['focus']();}(this['view']['element']),this['hideDropdown'](),_0x24b7f8();}),_0x3e2661['focusTracker']['add'](this['view']['element']),_0x3e2661['focusTracker']['on']('change:isFocused',(_0x109d8d,_0x1b97be,_0x4fa51e)=>{_0x4fa51e||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 _0x191ab4{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 _0x394a1b,Plugin as _0x39f59e,PendingActions as _0x21d2f4,Context as _0x24b668}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x19d0fb,CKEditorError as _0x243503,Collection as _0x4e20c8,global as _0x83c1e,version as _0x48cf3d,uid as _0x438389,KeystrokeHandler as _0x14a27d}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x4674d2,View as _0x11fac4,ListView as _0x57db8b,ListItemView as _0x2c1667,LabelView as _0x4191d9,BalloonPanelView as _0x317f08,clickOutsideHandler as _0x13bc91,BodyCollection as _0xe18bfe}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x95f11e,History as _0x33b12d,NoOperation as _0x5197d8,InsertOperation as _0x203f45,MarkerOperation as _0x12333c,RootAttributeOperation as _0x3d0c24,transformOperationSets as _0x233e00,OperationFactory as _0x1b7c05}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x171d85}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x36da21,WEB_SOCKET_GATEWAY_STATES as _0x3534a0,CollaborativeEditingService as _0x2b269e,User as _0x34df4b,CommentsService as _0x1b1ea1,TrackChangesService as _0x5c2a30,RevisionHistoryService as _0x150025,EditorService as _0x27f1a5}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x3536cf,UserView as _0x4e6de2}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x96b0a0}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x4ec4de,TrackChanges as _0x36fd6b}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x3fd35f,Comments as _0x514b66,CommentsEditing as _0x83c134}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0xb826a}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x3ce7c0}from'es-toolkit/compat';class WebSocketGateway extends _0x394a1b{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
+ ((()=>_0x36da21)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x171d85,_0x4674d2];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x493528){super(_0x493528),this['set']('state',_0x3534a0['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x19d0fb())();}['init'](){const _0x3fe20c=this['context'],_0x1228a8=_0x3fe20c['plugins']['get'](_0x171d85),_0x158cd4=_0x3fe20c['plugins']['get'](_0x4674d2);if(!_0x1228a8['token'])throw new _0x243503('websocketgateway-missing-token',this);if(!_0x1228a8['webSocketUrl'])throw new _0x243503('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'](_0x1228a8['token'],_0x1228a8['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0xefee9=>{if(this['connection']=_0xefee9,this['bind']('state')['to'](_0xefee9,'state',this,'_isBrowserOffline',(_0x39fe1f,_0x566557)=>('connected'!==_0x39fe1f&&(this['_shouldPluginsReconnect']=!0x0),_0x566557||_0x39fe1f!==_0x3534a0['CONNECTED']?_0x3534a0['DISCONNECTED']:this['state']==_0x3534a0['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x3534a0['CONNECTING']):_0x3534a0['CONNECTED'])),this['connection']['on']('error',(_0x49b349,_0x5cf69a)=>{if('limitExceeded'!==_0x5cf69a['code'])throw console['error'](_0x5cf69a),new _0x243503('cloudservices-init',null,{'originalError':_0x5cf69a});_0x158cd4['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'});}),!_0xefee9['me'])return new Promise(_0x23490f=>_0xefee9['on']('change:me',_0x23490f));})['catch'](_0x3c1e2d=>{throw console['error'](_0x3c1e2d),new _0x243503('cloudservices-init',null,{'originalError':_0x3c1e2d});});}['addToReconnectionStack'](_0x2fcda7){if('function'!=typeof _0x2fcda7['reconnect'])throw new _0x243503('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x2fcda7))throw new _0x243503('websocketgateway-plugin-already-registered',this,{'name':_0x2fcda7['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x2fcda7);}['removeFromReconnectionStack'](_0x4ae221){this['_reconnectionStack']['delete'](_0x4ae221);}['isInReconnectionStack'](_0x1c766e){return this['_reconnectionStack']['has'](_0x1c766e);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x2102d2=>_0x2102d2['reconnect']())))['then'](()=>this['state']=_0x3534a0['CONNECTED'])['catch'](_0x3917d4=>{throw console['error'](_0x3917d4),new _0x243503('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x3534a0['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x394a1b{['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,_0x3536cf];}constructor(_0x577745){super(_0x577745),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x4e20c8(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x3536cf);}['init'](){const _0x443730=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x443730,'change:state',(_0x715bf8,_0x241dd4,_0x3dffcd)=>{if('connected'!==_0x3dffcd)this['channelSessions']['forEach'](_0x354c7d=>_0x354c7d['clear']()),this['channelConnectedUsers']['forEach'](_0xa7371a=>_0xa7371a['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x23647f,_0x2aa1b4]of this['_registeredSessions'])for(const _0x3d6f0f of _0x2aa1b4)this['_handleSessionAdd'](_0x23647f,_0x3d6f0f);}}),this['_createUser'](_0x443730['connection']['me'],!0x0);}['register'](_0x377bff,_0x275229){if(this['_registeredSessions']['has'](_0x377bff))throw new _0x243503('sessions-register-already-registered',null,{'channelId':_0x377bff});this['_registeredSessions']['set'](_0x377bff,_0x275229),this['channelSessions']['set'](_0x377bff,new _0x4e20c8()),this['channelConnectedUsers']['set'](_0x377bff,new _0x4e20c8()),this['listenTo'](_0x275229,'add',(_0x21062b,_0x1878a1)=>this['_handleSessionAdd'](_0x377bff,_0x1878a1)),this['listenTo'](_0x275229,'remove',(_0x4ae252,_0x280a52)=>this['_handleSessionRemove'](_0x377bff,_0x280a52));for(const _0x4f40fb of _0x275229)this['_handleSessionAdd'](_0x377bff,_0x4f40fb);}['unregister'](_0x27aaec){if(!this['_registeredSessions']['has'](_0x27aaec))throw new _0x243503('sessions-unregister-not-exist',null,{'channelId':_0x27aaec});const _0x1453ba=this['_registeredSessions']['get'](_0x27aaec);this['stopListening'](_0x1453ba);for(const _0x212b97 of _0x1453ba)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x27aaec,_0x212b97);this['_registeredSessions']['delete'](_0x27aaec),this['channelSessions']['delete'](_0x27aaec),this['channelConnectedUsers']['delete'](_0x27aaec);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x2c7f01){for(const _0xddfc75 of this['channelSessions']['values']())for(const _0x474300 of _0xddfc75)if(_0x474300['id']===_0x2c7f01)return _0x474300['user'];}['getUserSessions'](_0x2c61f8,_0x2b5828){const _0x1326b6=_0x2b5828?[this['channelSessions']['get'](_0x2b5828)]:this['channelSessions']['values'](),_0xfeecc0=new Set();for(const _0x172db2 of _0x1326b6)for(const _0x18ecbc of _0x172db2)_0x18ecbc['user']['id']===_0x2c61f8['id']&&_0xfeecc0['add'](_0x18ecbc['id']);return _0xfeecc0;}['getUserRole'](_0x36b5c8){for(const _0x5b735f of this['channelSessions']['values']())for(const _0x13f3aa of _0x5b735f)if(_0x13f3aa['user']===_0x36b5c8)return _0x13f3aa['role'];}['_handleSessionAdd'](_0x365330,_0x34b99e){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x117984=_0x34b99e['user'],_0x38dc5e=this['_users']['getUser'](_0x117984['id'])||this['_createUser'](_0x117984),_0x13902d=Object['assign']({},_0x34b99e,{'user':_0x38dc5e});if(this['channelSessions']['get'](_0x365330)['add'](_0x13902d),!_0x117984['hiddenInPresenceList']){const _0x47de85=this['channelConnectedUsers']['get'](_0x365330);_0x47de85['has'](_0x38dc5e['id'])||_0x47de85['add'](_0x38dc5e),this['allConnectedUsers']['has'](_0x38dc5e['id'])||_0x117984['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x38dc5e,_0x38dc5e['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x365330,{'channelId':_0x365330,'session':_0x13902d});}['_handleSessionRemove'](_0x3590c9,_0x345788){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x4fedb3=this['channelConnectedUsers']['get'](_0x3590c9),_0x18b0e8=_0x345788['user'];_0x18b0e8['id']&&(this['channelSessions']['get'](_0x3590c9)['remove'](_0x345788['id']),_0x4fedb3['has'](_0x18b0e8['id'])&&!this['getUserSessions'](_0x18b0e8,_0x3590c9)['size']&&_0x4fedb3['remove'](_0x18b0e8['id']),this['allConnectedUsers']['get'](_0x18b0e8['id'])&&!this['getUserSessions'](_0x18b0e8)['size']&&this['allConnectedUsers']['remove'](_0x18b0e8['id']));}['_createUser'](_0x529c7d,_0x12ff64){const _0x544605=this['_users']['addUser'](_0x529c7d);return _0x12ff64&&this['_users']['defineMe'](_0x529c7d['id']),_0x544605['orderNumber']=this['_uniqueUsersCount']++,_0x544605;}}class UserMarkers extends _0x39f59e{['_domEmitter']=new(_0x19d0fb())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x1b44fb=this['editor'],_0x225eac=_0x1b44fb['plugins']['get'](Sessions);_0x1b44fb['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x4b09eb,{writer:_0x3d841b})=>function(_0x2e2a16,_0x1ffcfa,_0x2ecd65,_0x5af396){const _0x10d84b=_0x2e2a16['markerName']['split'](':')[0x2],_0x4ce4d1=_0x2ecd65['getUserBySessionId'](_0x10d84b);if(!_0x4ce4d1||_0x10d84b===_0x2ecd65['mySessionId'])return;if(!_0x5af396['model']['schema']['checkChild'](_0x2e2a16['markerRange']['start'],'$text'))return;const _0x3f4008={'class':'ck-user__marker\x20'+_0x4ce4d1['color']['getMarkerClass'](),'style':Y(_0x4ce4d1),'data-name':_0x4ce4d1['name'],'data-session-id':_0x10d84b},_0x1e351f=_0x5af396['model']['markers']['get'](_0x2e2a16['markerName']),_0x2c9e63=_0x1e351f['getStart'](),_0x279d3e=_0x2c9e63['nodeAfter'],_0x5267e1=_0x5af396['model']['schema'];if(_0x279d3e&&_0x5267e1['isObject'](_0x279d3e)&&_0x5267e1['isInline'](_0x279d3e)&&!_0x5af396['model']['markers']['get']('user:range:'+_0x10d84b)['getRange']()['isCollapsed'])return;const _0x52fdfa=_0x2c9e63['parent'];return _0x5af396['model']['schema']['isLimit'](_0x52fdfa)&&!_0x5af396['model']['hasContent'](_0x52fdfa)&&(_0x3f4008['contenteditable']=!0x1),function(_0xb5f199,_0xaeab4,_0x1591c0){const _0x226e0c=_0xb5f199['createUIElement']('span',_0xaeab4);return _0xb5f199['setCustomProperty']('userPositionMarker',!0x0,_0x226e0c),_0x226e0c['render']=function(_0x119045){const _0x6f4cc3=this['toDomElement'](_0x119045),_0x365fde=document['createElement']('span');return _0x365fde['classList']['add']('ck-user__marker-tooltip'),_0x365fde['setAttribute']('contenteditable','false'),_0x365fde['setAttribute']('spellcheck','false'),_0x365fde['textContent']=_0x1591c0['name'],_0x6f4cc3['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x365fde['outerHTML']+'⁠',_0x6f4cc3['addEventListener']('mouseenter',()=>{_0x6f4cc3['classList']['add']('ck-user__marker_hovered');}),_0x6f4cc3['addEventListener']('mouseleave',()=>{_0x6f4cc3['classList']['remove']('ck-user__marker_hovered');}),_0x6f4cc3;},_0x226e0c['isSimilar']=function(_0x247532){return!(!this['getCustomProperty']('userPositionMarker')||!_0x247532['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x247532['getAttribute']('data-session-id'));},_0x226e0c;}(_0x1ffcfa,_0x3f4008,_0x4ce4d1);}(_0x4b09eb,_0x3d841b,_0x225eac,_0x1b44fb)}),_0x1b44fb['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0xd3e482=>function(_0x2603dd,_0x4c7935){const _0x2d22cf=_0x2603dd['markerName']['split'](':')[0x2];if(_0x2d22cf===_0x4c7935['mySessionId'])return null;const _0x5355ec=_0x4c7935['getUserBySessionId'](_0x2d22cf);if(!_0x5355ec)return{'id':_0x2d22cf,'classes':[]};return{'id':_0x2d22cf,'classes':['ck-user__selection',_0x5355ec['color']['getSelectionClass']()],'attributes':{'style':Y(_0x5355ec),'data-session-id':_0x2d22cf},'priority':0x7d0+_0x5355ec['orderNumber']};}(_0xd3e482,_0x225eac)}),function(_0x21c095){const _0x33778d=_0x21c095['model'],_0xb5a306=new Map(),_0x3c1191=_0x21c095['plugins']['get'](Sessions);_0x33778d['markers']['on']('update:user:range',(_0x300388,_0xedfc1d,_0x48aac6,_0x1d1e94)=>{if(!_0x1d1e94&&_0xb5a306['get'](_0xedfc1d['name']))return _0xb5a306['get'](_0xedfc1d['name'])['detach'](),void _0xb5a306['delete'](_0xedfc1d['name']);const _0x593c0c=_0xedfc1d['name']['split'](':')[0x2];if(_0x593c0c===_0x3c1191['mySessionId'])return;const _0x21f2d2='user:position:'+_0x593c0c;_0x33778d['markers']['has'](_0x21f2d2)&&_0x21c095['editing']['reconvertMarker'](_0x21f2d2),_0xedfc1d['on']('change:range',(_0x131087,_0xf3a8ed,_0x680c3d)=>{if('$graveyard'!=_0xf3a8ed['root']['rootName']&&'$graveyard'==_0xedfc1d['getRange']()['root']['rootName']&&!_0xb5a306['has'](_0xedfc1d['name'])){const _0x4a1aba=_0x33778d['schema']['getNearestSelectionRange'](_0x680c3d['deletionPosition']);if(_0x4a1aba){const _0x317589=_0x95f11e['fromRange'](_0x4a1aba);_0xb5a306['set'](_0xedfc1d['name'],_0x317589),_0x317589['on']('change:range',(_0x58a472,_0x51c300,_0x3e39f0)=>{if('$graveyard'==_0x317589['root']['rootName']){const _0x407e01=_0x33778d['schema']['getNearestSelectionRange'](_0x3e39f0['deletionPosition']);_0x407e01?(_0x317589['start']=_0x407e01['start'],_0x317589['end']=_0x407e01['end']):(_0xb5a306['delete'](_0xedfc1d['name']),_0x317589['detach']());}});}}});}),_0x33778d['document']['on']('change',()=>{_0xb5a306['size']>0x0&&_0x33778d['enqueueChange']({'isUndoable':!0x1},_0x3c8d5f=>{for(const [_0x4bc588,_0x3c9906]of _0xb5a306)'$graveyard'==_0x33778d['markers']['get'](_0x4bc588)['getRange']()['root']['rootName']&&(z(_0x4bc588['split'](':')[0x2],_0x3c9906['toRange'](),_0x33778d,_0x3c8d5f),_0x3c9906['detach']());_0xb5a306['clear']();});});}(_0x1b44fb),this['_domEmitter']['listenTo'](_0x83c1e['document'],'keydown',(_0x177401,{key:_0x5dabcb})=>{'Escape'===_0x5dabcb&&function(_0x564811){_0x564811['editing']['view']['change'](_0x3bca76=>{for(const _0x2ddee5 of _0x564811['model']['markers']){if(!_0x2ddee5['name']['startsWith']('user:position'))continue;const _0x231ac5=_0x564811['editing']['mapper']['markerNameToElements'](_0x2ddee5['name']);if(_0x231ac5){for(const _0xab5c22 of _0x231ac5)_0x3bca76['removeClass']('ck-user__marker_hovered',_0xab5c22);}}});}(_0x1b44fb);},{'useCapture':!0x0});}['afterInit'](){const _0x42958e=this['editor'],_0xadea62=_0x42958e['commands']['get']('undo');_0xadea62&&_0x42958e['model']['on']('applyOperation',(_0x131b97,_0x36d634)=>{const _0x1f077c=_0x36d634[0x0];if(!_0x1f077c['isDocumentOperation'])return;if('marker'!=_0x1f077c['type']||!_0x1f077c['name']['startsWith']('user:'))return;const _0x5caec2=_0x1f077c['batch'];_0xadea62['_createdBatches']['has'](_0x5caec2)&&(_0x1f077c['newRange']=_0x1f077c['oldRange']?_0x42958e['model']['createRange'](_0x1f077c['oldRange']['start'],_0x1f077c['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x2f9b81=this['editor'],_0x2ca018=_0x2f9b81['model']['document'],_0x222ec2=_0x2f9b81['plugins']['get'](Sessions);_0x2f9b81['model']['enqueueChange']({'isUndoable':!0x1},_0x3a23a4=>{const _0x438b77='user:range:'+_0x222ec2['mySessionId'],_0x5b339f='user:position:'+_0x222ec2['mySessionId'],_0x59fce9=_0x2f9b81['model']['markers']['has'](_0x438b77);_0x2f9b81['editing']['view']['hasDomSelection']?z(_0x222ec2['mySessionId'],_0x2ca018['selection']['getFirstRange'](),_0x2f9b81['model'],_0x3a23a4):_0x59fce9&&(_0x3a23a4['removeMarker'](_0x438b77),_0x3a23a4['removeMarker'](_0x5b339f));});}}function z(_0x3c7291,_0x2f5846,_0x173750,_0x187ea1){const _0x2982e2='user:range:'+_0x3c7291,_0x17a2b6='user:position:'+_0x3c7291,_0x37111d=_0x2f5846['getContainedElement']();let _0x31b497=_0x2f5846['start'];if(_0x37111d&&_0x37111d['is']('element','tableCell')){const _0x152857=function(_0x591a01,_0x5036f6){for(const _0x306b6a of _0x591a01['getPositions']())if(_0x5036f6['schema']['checkChild'](_0x306b6a,'$text'))return _0x306b6a;}(_0x2f5846,_0x173750);_0x152857&&(_0x31b497=_0x152857,_0x2f5846=_0x187ea1['createRange'](_0x31b497));}const _0x3c1ffb=_0x187ea1['createRange'](_0x31b497);_0x173750['markers']['has'](_0x2982e2)?(_0x187ea1['updateMarker'](_0x2982e2,{'range':_0x2f5846}),_0x187ea1['updateMarker'](_0x17a2b6,{'range':_0x3c1ffb})):(_0x187ea1['addMarker'](_0x2982e2,{'range':_0x2f5846,'usingOperation':!0x0}),_0x187ea1['addMarker'](_0x17a2b6,{'range':_0x3c1ffb,'usingOperation':!0x0}));}function Y(_0x3741ce){return'--ck-user-color:'+_0x3741ce['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x3741ce['color']['getColorAlphaVariable']()+';';}function K(_0x6cb83c,_0x2cd517,_0x5e9cbd){const _0x5a38ab=_0x6cb83c['t'],t=_0x6cb83c['t'];switch(_0x2cd517){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 _0x5a38ab({'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'},_0x5e9cbd);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x39f59e{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
+ ((()=>_0x2b269e)());['_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,_0x21d2f4,_0x3536cf,_0x4674d2];}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 _0x2992f7=this['serverHistory']['getOperations']();for(let _0x22f139=_0x2992f7['length']-0x1;_0x22f139>=0x0;_0x22f139--){const _0x5d7222=_0x2992f7[_0x22f139];if(!this['_disconnectionOperations']['has'](_0x5d7222))return _0x5d7222['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x5c0c2d){if(super(_0x5c0c2d),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x33b12d(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x243503('collaboration-missing-channelid',this);const _0x525c8c=_0x5c0c2d['config']['get']('cloudServices.bundleVersion')||_0x48cf3d;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x525c8c,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x96b0a0(),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 _0x54c511=this['editor'],_0x4b4078=_0x54c511['plugins']['get'](_0x3536cf),_0x23209a=_0x54c511['plugins']['get'](WebSocketGateway);this['listenTo'](_0x4b4078,'getOperationAuthor',(_0x3e25fc,_0x322a0e)=>{const _0x101216=_0x322a0e[0x0];_0x101216['_authorId']&&(_0x3e25fc['return']=_0x4b4078['getUser'](_0x101216['_authorId']),_0x3e25fc['stop']()),null===_0x101216['_authorId']&&(_0x3e25fc['return']=null,_0x3e25fc['stop']());},{'priority':'high'}),this['listenTo'](_0x54c511['model']['document']['selection'],'change:range',(_0xe33f90,_0xd1b967)=>{_0xd1b967['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x54c511['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x54c511['model']['on']('applyOperation',(_0x1197d2,_0x5e75ad)=>{const _0x4450bb=_0x5e75ad[0x0];_0x4450bb['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x4450bb),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x23209a,'state',this,'_hasSynchronizationProblem',(_0xb9ae7d,_0x3199a7)=>'connected'===_0xb9ae7d&&!_0x3199a7),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x54c511['disableReadOnlyMode']('rtc-offline'):_0x54c511['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x54c511['disableReadOnlyMode']('rtc-offline'):_0x54c511['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x5856e9=this['editor']['plugins']['get'](Sessions),_0xc6e0e5=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x5856e9['unregister'](this['_channelId']);const _0x3d07a0=await this['_service']['reconnect'](_0xc6e0e5['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x3d07a0)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x3d5a7b=await this['_service']['getConnectedSessions']();_0x5856e9['register'](this['_channelId'],_0x3d5a7b),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x11d246){if(function(_0xe3d799){return'404'===_0xe3d799['code'];}(_0x11d246)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x2fc04d){return'409'===_0x2fc04d['code'];}(_0x11d246)){const _0x8bedc1=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'](_0x8bedc1);}else{if(!(_0x11d246 instanceof ReconnectionError))throw _0x11d246;this['_handleReconnectionError']();}}}}['destroy'](){const _0x52e5e5=this['editor']['plugins']['get'](WebSocketGateway),_0x5b2dbe=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x5b2dbe['channelSessions']['has'](this['_channelId'])&&_0x5b2dbe['unregister'](this['_channelId']),_0x52e5e5['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x5e31f9){if(this['sessionId']!==_0x5e31f9['sessionId']&&this['_lastSyncedOperationId']!==_0x5e31f9['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x5e31f9['sessionId'],this['_handleServerResponse']([],{..._0x5e31f9,'wereChangesApplied':!0x1,'data':_0x5e31f9['data']},'reconnect');}async['_connectService'](_0x3d30da,_0x219b38=!0x1){const {connection:_0x416772}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x416772,this['_channelId'])['then'](_0x4cf78a=>this['_initSessionsHandling'](_0x4cf78a))['catch'](_0x1e10bb=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x1e10bb);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x51e251,_0xb13e17)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0xb13e17);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x5d67b6=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x3d30da);this['_isPendingUpdate']=!0x0;const _0x7bf8d0=await this['_service']['connect'](_0x416772,this['_compressOperations'](_0x3d30da),_0x5d67b6);if(this['sessionId']=_0x7bf8d0['sessionId'],_0x219b38){if(!_0x7bf8d0['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x7bf8d0['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x3d30da,_0x7bf8d0,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x7bf8d0,_0x3d30da);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x25f7ca=this['editor']['plugins']['get'](Sessions),_0x379217=this['editor']['plugins']['get'](UserMarkers),_0x172c22=_0x25f7ca['channelSessions']['get'](this['_channelId']);_0x172c22&&_0x172c22['length']>0x1?_0x379217['createUserMarkerOperations']():this['listenTo'](_0x25f7ca,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x25f7ca['channelSessions']['get'](this['_channelId'])['length']&&_0x379217['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x2d2eb9,_0x5c3bb0,_0x498488,_0x252893){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x5c3bb0){const _0x516abd=this['_decompressOperations'](_0x498488,_0x252893);await this['_fetchMissingUsers'](_0x516abd),this['_handleExternalOperations'](_0x516abd,_0x5c3bb0,_0x498488['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x280c14}=this['editor'];let _0x4f1fdd;try{_0x4f1fdd=await this['_service']['getDocumentDetails']();}catch{const _0x39bd73=K(_0x280c14,'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'](_0x39bd73);}const _0x2ce777=_0x4f1fdd['currentDocumentSession']||_0x4f1fdd['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x2ce777['lastOperationId']){const _0x542ac6=K(_0x280c14,'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'](_0x542ac6);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x24f632){const _0x3672c4=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x3672c4,'sessionAdd:'+this['_channelId'],(_0x3e4892,{session:_0x364da6})=>{if(_0x364da6['id']===_0x3672c4['mySessionId']){_0x3e4892['off']();const _0x131f6d=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x53ec6c=_0x364da6['permissions'];_0x131f6d&&_0x131f6d['isEnabled']&&(_0x53ec6c=_0x53ec6c['filter'](_0x1da141=>'document:write'!==_0x1da141)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x53ec6c,this['_channelId']);}}),_0x3672c4['register'](this['_channelId'],_0x24f632);}['_initThrowingOnDataSet'](){const _0x464eed=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x18f99c)=>{if(!_0x18f99c[_0x18f99c['length']-0x1]['suppressErrorInCollaboration'])throw new _0x243503('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x464eed['apply'](this['editor']['data'],_0x18f99c);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0xe0777a,[_0x363b90])=>{if(this['_document']['version'])throw new _0x243503('realtimecollaborationclient-init-document-already-initialized',this);_0xe0777a['stop'](),this['_setPendingAction']();const _0x3af6cb=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x42c31f])=>!_0x42c31f['lazyLoad'])['map'](([_0x2c1d97,_0x557ed6])=>[_0x2c1d97,_0x557ed6['modelAttributes']||{}])),_0xe165ad=this['_getOperationsFromInitData'](_0x363b90,_0x3af6cb);0x0==_0xe165ad['length']&&_0xe165ad['push'](new _0x5197d8(0x0)),_0xe0777a['return']=this['_connectService'](_0xe165ad)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x148419=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x148419))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0xf4b7dc,[_0x180b8e,_0x1bb445])=>{_0xf4b7dc['stop']();const _0x5cfe97=this['editor']['model']['document']['getRoot'](_0x180b8e);if(!this['_knownRootNames']['has'](_0x180b8e)){const _0x18e896=_0x1bb445&&_0x1bb445['data']?_0x1bb445['data']:'',_0x3f97d6=_0x1bb445&&_0x1bb445['attributes']?_0x1bb445['attributes']:{};await this['_loadRoot'](_0x180b8e,_0x18e896,_0x3f97d6);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x5cfe97['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x5cfe97);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x5839f3){const _0x466311=this['editor']['plugins']['get'](_0x3536cf),{connection:_0x5868ab}=this['editor']['plugins']['get'](WebSocketGateway),_0x674d7b=new Set();for(const _0x5940b7 of _0x5839f3){const _0x52d192=_0x5940b7['_authorId'];_0x52d192&&!_0x466311['getUser'](_0x52d192)&&_0x674d7b['add'](_0x52d192);}if(0x0===_0x674d7b['size'])return;const _0x4ec212=await _0x34df4b['getMany'](_0x5868ab,Array['from'](_0x674d7b));for(const _0x3a8dd8 of _0x4ec212)_0x466311['getUser'](_0x3a8dd8['id'])||_0x466311['addUser'](_0x3a8dd8);}['_getOperationsFromInitData'](_0x2933c1,_0x387129={}){const _0x210d87=this['editor']['model'],_0x408f79=[];let _0x416168=0x0;const _0x529a67='string'==typeof _0x2933c1?{'main':_0x2933c1}:_0x2933c1;for(const _0x3ea26a of Object['keys'](_0x529a67)){if(!this['_document']['roots']['has'](_0x3ea26a))throw new _0x243503('realtimecollaborationclient-init-non-existent-root',this);const _0x2ae180=this['_document']['getRoot'](_0x3ea26a),_0x52780f=this['editor']['data']['parse'](_0x529a67[_0x3ea26a],_0x2ae180),_0x265267=new _0x203f45(_0x210d87['createPositionAt'](_0x2ae180,0x0),_0x52780f,_0x416168++);_0x408f79['push'](_0x265267);for(const [_0x33690c,_0x1aa544]of _0x52780f['markers']){const _0x3e554d=_0x210d87['createRange'](_0x210d87['createPositionFromPath'](_0x2ae180,_0x1aa544['start']['path']['slice']()),_0x210d87['createPositionFromPath'](_0x2ae180,_0x1aa544['end']['path']['slice']())),_0x1d1d2c=new _0x12333c(_0x33690c,null,_0x3e554d,_0x210d87['markers'],!0x0,_0x416168++);_0x408f79['push'](_0x1d1d2c);}}if(_0x387129)for(const [_0x4c5a51,_0x56a564]of Object['entries'](_0x387129)){const _0x294594=_0x210d87['document']['getRoot'](_0x4c5a51);if(!_0x294594)throw new _0x243503('multi-root-editor-root-attributes-no-root',null);for(const [_0x1ce66d,_0xd73879]of Object['entries'](_0x56a564))if(null!==_0xd73879){const _0x3cfaac=new _0x3d0c24(_0x294594,_0x1ce66d,null,_0xd73879,_0x416168++);_0x408f79['push'](_0x3cfaac);}}return _0x408f79;}async['_loadRoot'](_0x3495c2,_0x462c58,_0x320858){this['_getOperationsFromInitData']({[_0x3495c2]:_0x462c58},{[_0x3495c2]:_0x320858})['forEach']((_0x27dda0,_0x184384)=>{_0x27dda0['baseVersion']=this['_document']['version']+_0x184384,_0x27dda0['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x27dda0);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x2da156,_0x8651ef){let _0x2e361c;this['_offset']=_0x2da156['offset'];const _0x2ccf0b=_0x2da156['wereChangesApplied']&&!_0x2da156['initData'],_0x5c5f33=_0x2ccf0b?0x0:_0x2da156['data']['baseVersion'];if(_0x8651ef['forEach'](_0x5c79be=>{_0x5c79be['_isInit']=!0x0,_0x5c79be['createdAt']=_0x2da156['sessionCreatedAt'],_0x5c79be['_authorId']=null;}),_0x2ccf0b)_0x2e361c=_0x8651ef,this['_applyOperationsSet'](_0x2e361c,_0x2ccf0b);else{if(_0x2da156['initData']){const _0x283e64=this['_getOperationsFromInitData'](_0x2da156['initData']);this['_document']['history']['version']=-_0x283e64['length'],_0x283e64['forEach'](_0x3586b1=>{_0x3586b1['baseVersion']-=_0x283e64['length'],_0x3586b1['createdAt']=_0x2da156['sessionCreatedAt'],_0x3586b1['_isInit']=!0x0,_0x3586b1['_authorId']=null;}),this['_applyOperationsSet'](_0x283e64,!0x0),this['serverHistory']['version']=-_0x283e64['length']+this['_offset'],this['_updateServerHistory'](_0x283e64);}this['_document']['history']['version']=_0x5c5f33,_0x2e361c=this['_decompressOperations'](_0x2da156['data'],_0x2da156['metadata']),await this['_fetchMissingUsers'](_0x2e361c),this['_applyOperationsSet'](_0x2e361c,_0x2ccf0b);}_0x2da156['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x2e361c,_0x2da156['lastOperationId']),this['_lastSyncedOperationId']=_0x2da156['lastOperationId']),this['serverHistory']['version']=_0x5c5f33+this['_offset'],this['_updateServerHistory'](_0x2e361c),_0x8651ef['filter'](_0x5cd1a6=>{const _0x453e60=this['_getAffectedRoot'](_0x5cd1a6);return _0x453e60&&!this['_knownRootNames']['has'](_0x453e60);})['forEach']((_0x4eb299,_0x3f1c5e)=>{_0x4eb299['baseVersion']=this['_document']['version']+_0x3f1c5e,this['_saveOperationInBuffer'](_0x4eb299);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x13b683,_0x1975dc){const _0x115f67=_0x1975dc&&_0x1975dc['message'];if(_0x115f67&&_0x115f67['startsWith']('realtimecollaborationclient'))throw _0x1975dc;const _0x22db40=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x22db40['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x243503(_0x13b683,this['editor'],_0x115f67?{'originalError':_0x115f67}:void 0x0);}['_saveOperationInBuffer'](_0x4853d4){this['_knownOperations']['has'](_0x4853d4)||(this['_knownOperations']['add'](_0x4853d4),this['_bufferedOperations']['push'](_0x4853d4),this['_pendingAction']||'marker'==_0x4853d4['type']&&!_0x4853d4['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x22a42e=!0x1){!_0x22a42e&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x3f60fb=>{_0x3f60fb&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x19631c=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x333a97){return _0x333a97['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x333a97['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x333a97['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x19631c)||this['_crash'](_0x19631c['message'],_0x19631c);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0xfdf696=>{this['on']('change:_isPendingUpdate',()=>{_0xfdf696();});});}async['_sendBufferedOperations'](){const _0x4003a0=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x4003a0['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x2e1f41=[...this['_bufferedOperations']];for(const _0x2f015d of _0x2e1f41)_0x2f015d['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x2f015d);const _0x338f2f=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x2e1f41),_0x2a52f7=J++,_0x35c205=this['_compressOperations'](_0x2e1f41),_0x104abc=await this['_service']['sendOperations'](_0x35c205,_0x35c205['baseVersion'],_0x338f2f);try{return await this['_handleServerResponse'](_0x2e1f41,_0x104abc,_0x2a52f7);}catch(_0x43b75a){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x43b75a);}}async['_handleServerResponse'](_0x59bd4a,_0x3a4d32,_0xfc5dee){if('error'in _0x3a4d32)throw _0x3a4d32['error'];let _0x25c730=!0x1;if(_0x3a4d32['wereChangesApplied']){_0x3a4d32['lastOperationId']&&(this['_lastSyncedOperationId']=_0x3a4d32['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x2797bd=>!_0x59bd4a['includes'](_0x2797bd));for(const _0x3c5b9b of _0x59bd4a)_0x3c5b9b['createdAt']='lastOperationAcceptedAt'in _0x3a4d32&&_0x3a4d32['lastOperationAcceptedAt']||void 0x0;Q(_0x59bd4a,_0x3a4d32['version']-_0x59bd4a['length']),this['_updateServerHistory'](_0x59bd4a);const _0x44aa51=_0x59bd4a['filter'](_0x13d23b=>{if(!_0x13d23b['_isInit'])return!0x1;const _0x498f39=this['_getAffectedRoot'](_0x13d23b);return _0x498f39&&!this['_knownRootNames']['has'](_0x498f39);});Q(_0x44aa51,this['_document']['version']),this['_applyOperationsSet'](_0x44aa51),_0x25c730=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x353ea9=this['_decompressOperations'](_0x3a4d32['data'],_0x3a4d32['metadata'])['filter'](_0x2b1289=>_0x2b1289['baseVersion']>=this['_lastServerVersion']);_0x353ea9['forEach'](_0x1ac4dc=>this['_addKnownRoot'](_0x1ac4dc)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x423fdd=>!_0x423fdd['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x423fdd))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x353ea9),_0x25c730=this['_handleExternalOperations'](_0x353ea9,_0x3a4d32['version'],_0x3a4d32['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x25c730?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x1c9cf0,_0x2da236,_0x4b15ab){try{const _0x242d50={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0xe4e8b2,operationsB:_0x3995a9,originalOperations:_0x460906}=_0x233e00(_0x1c9cf0,this['_bufferedOperations'],_0x242d50);Q(_0xe4e8b2,this['_document']['version']),Q(_0x3995a9,_0x2da236);for(const _0x15378e of _0xe4e8b2){const _0x49844c=_0x460906['get'](_0x15378e);_0x15378e['_authorId']=_0x49844c?_0x49844c['_authorId']:null;}_0x4b15ab&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x1c9cf0,_0x4b15ab),this['_lastSyncedOperationId']=_0x4b15ab),this['_bufferedOperations']=[..._0x3995a9],this['_applyOperationsSet'](_0xe4e8b2),this['_updateServerHistory'](_0x1c9cf0);}catch(_0x5acf46){return console['error'](_0x5acf46),!0x1;}return!0x0;}['_applyOperationsSet'](_0xc88faa,_0x27ada4=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x1d48c2=>{for(const _0x218952 of _0xc88faa)this['_knownOperations']['add'](_0x218952),this['_addKnownRoot'](_0x218952),_0x1d48c2['batch']['addOperation'](_0x218952),this['editor']['model']['applyOperation'](_0x218952);});}['_addKnownRoot'](_0x66c2ad){const _0x42bdf4=this['_getAffectedRoot'](_0x66c2ad);_0x42bdf4&&this['_knownRootNames']['add'](_0x42bdf4);}['_getAffectedRoot'](_0x3a89a5){let _0x56d1fe,_0x18350c;switch(_0x3a89a5['type']){case'insert':_0x56d1fe=_0x3a89a5['position']['root'];break;case'marker':if(_0x18350c=_0x3a89a5['newRange'],!_0x18350c)return null;_0x56d1fe=_0x18350c['root'];break;case'addRootAttribute':_0x56d1fe=_0x3a89a5['root'];break;case'addRoot':_0x56d1fe=_0x3a89a5['affectedSelectable'];break;case'move':_0x56d1fe=_0x3a89a5['targetPosition']['root'];break;default:return null;}return _0x56d1fe['rootName'];}['_updateServerHistory'](_0x34fa6e){_0x34fa6e['forEach'](_0x56ffd5=>{const _0x1ce28c=_0x56ffd5['clone']();_0x1ce28c['_authorId']=_0x56ffd5['_authorId'],_0x1ce28c['_isInit']=!!_0x56ffd5['_isInit'],_0x1ce28c['createdAt']=_0x56ffd5['createdAt'],_0x1ce28c['baseVersion']+=this['_offset'],_0x56ffd5['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x1ce28c),this['serverHistory']['addOperation'](_0x1ce28c);});}['_handleReconnectionError'](_0x3e50e9){const _0x9cdfc0=this['editor']['plugins']['get']('Notification'),_0x22d08c=this['editor']['locale'];_0x3e50e9||(_0x3e50e9=K(_0x22d08c,'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.')),_0x9cdfc0['showWarning'](_0x3e50e9,{'title':K(_0x22d08c,'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'](_0x21d2f4)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x21d2f4)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x54107f){const _0x15513e=_0x54107f['map'](_0x567002=>_0x567002['toJSON']());return this['_compressor']['compress'](_0x15513e);}['_decompressOperations'](_0x4ae7d3,_0x37ebe6){return this['_compressor']['decompress'](_0x4ae7d3)['map']((_0x4411a8,_0x7bbd90)=>{const _0x5ada0c='init'==_0x37ebe6[_0x7bbd90]['type'];if('InsertOperation'==_0x4411a8['__className']){const _0x5142bb=_0x4411a8['position']['root'];!this['_document']['getRoot'](_0x5142bb)&&(this['_document']['createRoot']('$unknown',_0x5142bb)['_isAttached']=!0x1);}else{if('RootOperation'==_0x4411a8['__className']){const _0x4e01e3=this['_document']['getRoot'](_0x4411a8['rootName']);_0x4e01e3&&'$unknown'==_0x4e01e3['name']&&_0x4411a8['elementName']!=_0x4e01e3['name']&&(_0x4e01e3['name']=_0x4411a8['elementName']);}}const _0x444210=_0x1b7c05['fromJSON'](_0x4411a8,this['_document']);return _0x444210['wasUndone']=_0x4411a8['wasUndone'],_0x444210['_isInit']=_0x5ada0c,_0x444210['_authorId']=_0x5ada0c?null:_0x37ebe6[_0x7bbd90]['userId'],_0x444210['_isDisconnection']='cs:removeUser'===_0x37ebe6[_0x7bbd90]['type'],_0x444210['createdAt']=_0x37ebe6[_0x7bbd90]['createdAt'],_0x444210;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x28bbf4=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x28bbf4&&_0x28bbf4['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x4f0cd9,_0x545467){for(const _0x1cb32c of _0x4f0cd9)_0x1cb32c['baseVersion']=_0x545467++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x397bd6){this['_ignoredOperations']=_0x397bd6,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x358c82){let _0x1b8b0e=_0x358c82['length'];for(;_0x1b8b0e--;){const _0x217780=_0x358c82[_0x1b8b0e];if(!this['_ignoredOperations']['has'](_0x217780)){if(!this['_operationToId']['has'](_0x217780)){const _0x592702=_0x438389()['slice'](0x1,0x12);this['_operationToId']['set'](_0x217780,_0x592702);}return this['_operationToId']['get'](_0x217780);}}}['setIdForTheLastOperation'](_0x2ca159,_0x1bb6dd){if(!_0x1bb6dd)return;let _0x58ce93=_0x2ca159['length'];for(;_0x58ce93--;){const _0x61c658=_0x2ca159[_0x58ce93];this['_ignoredOperations']['has'](_0x61c658)||this['_operationToId']['set'](_0x61c658,_0x1bb6dd);}}}class RealTimeCollaborativeEditing extends _0x39f59e{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x394a1b{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
+ ((()=>_0x1b1ea1)());['_services'];static get['requires'](){return[WebSocketGateway,_0x3fd35f,Sessions,_0x3536cf];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x518453){super(_0x518453),this['_services']=new Map();}async['init'](){const _0x5234b4=this['context'],_0x3a4ae2=_0x5234b4['plugins']['get'](_0x3fd35f);if(_0x5234b4['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x3a4ae2['adapter']={'addCommentThread':async({channelId:_0x1389f8,threadId:_0x1b9434,comments:_0x166ee6,resolvedAt:_0xff6b0d,resolvedBy:_0x2dc753,context:_0x1c9bd1,attributes:_0x128387})=>{const _0x5d4cef=await this['_getService'](_0x1389f8)['addCommentThread']({'commentThreadId':_0x1b9434,'comments':_0x166ee6['map'](_0x2a2a70=>function(_0x503975,_0x2c8068,_0x236180){return{'commentThreadId':_0x236180,'commentId':_0x503975['commentId'],'userId':_0x503975['authorId'],'content':_0x503975['content'],'documentId':_0x2c8068,'createdAt':_0x503975['createdAt'],'attributes':_0x503975['attributes']||{}};}(_0x2a2a70,_0x1389f8,_0x1b9434)),'resolvedAt':_0xff6b0d,'resolvedBy':_0x2dc753,'context':_0x1c9bd1,'attributes':_0x128387})['catch'](Z);return{'threadId':_0x5d4cef['commentThreadId'],'comments':_0x5d4cef['comments']};},'getCommentThread':async({channelId:_0x4b2d2f,threadId:_0x17b339})=>{const _0x1462f0=await this['_getService'](_0x4b2d2f)['getCommentThread'](_0x17b339)['catch'](X)['catch'](Z);return _0x1462f0?_0x1462f0['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x1462f0]),{'threadId':_0x1462f0['commentThreadId'],'comments':_0x1462f0['comments']['map'](tt),'context':_0x1462f0['context'],'resolvedAt':_0x1462f0['resolvedAt'],'resolvedBy':_0x1462f0['resolvedBy'],'attributes':_0x1462f0['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0xa8be0f,threadId:_0x5c53c1,context:_0x3dfb71,unlinkedAt:_0x14685e,attributes:_0x370859})=>this['_getService'](_0xa8be0f)['updateCommentThread']({'commentThreadId':_0x5c53c1,'context':_0x3dfb71,'attributes':_0x370859,'unlinkedAt':_0x14685e})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0xa486f5,threadId:_0x4a924f})=>{const _0x57ad8e=await this['_getService'](_0xa486f5)['resolveCommentThread'](_0x4a924f)['catch'](X)['catch'](Z);return{'threadId':_0x57ad8e['commentThreadId'],'resolvedAt':_0x57ad8e['resolvedAt'],'resolvedBy':_0x57ad8e['resolvedBy']};},'reopenCommentThread':async({channelId:_0x475956,threadId:_0x365367})=>this['_getService'](_0x475956)['reopenCommentThread'](_0x365367)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x16d54a,threadId:_0x3b488f})=>this['_getService'](_0x16d54a)['removeCommentThread'](_0x3b488f)['catch'](X)['catch'](Z),'addComment':({channelId:_0x38b8cd,threadId:_0x5eab8e,commentId:_0x53d7a5,content:_0x2e2216,attributes:_0x41cc31})=>this['_getService'](_0x38b8cd)['addComment'](_0x5eab8e,_0x53d7a5,_0x2e2216,_0x41cc31)['catch'](Z),'updateComment':({channelId:_0xed51cd,threadId:_0x35e887,commentId:_0x5e8a85,content:_0x2092c1,attributes:_0x3954f5})=>this['_getService'](_0xed51cd)['updateComment'](_0x35e887,_0x5e8a85,_0x2092c1,_0x3954f5)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x3a11de,threadId:_0x58aeb2,commentId:_0x204673})=>this['_getService'](_0x3a11de)['removeComment'](_0x58aeb2,_0x204673)['catch'](X)['catch'](Z)},_0x5234b4 instanceof _0x24b668){const _0x23360d=_0x5234b4['config']['get']('collaboration.channelId'),_0x4f94ba=_0x5234b4['plugins']['get'](Sessions);await this['_setUpService'](_0x23360d);const _0x92f899=await this['_services']['get'](_0x23360d)['getConnectedSessions']();this['listenTo'](_0x4f94ba,'sessionAdd:'+_0x23360d,(_0x2b9848,{session:_0x1d9b0d})=>{_0x1d9b0d['id']===_0x4f94ba['mySessionId']&&(_0x2b9848['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x1d9b0d['permissions'],_0x23360d));}),_0x4f94ba['register'](_0x23360d,_0x92f899);}}async['_setUpService'](_0x271130){if(this['_services']['has'](_0x271130))throw new _0x243503('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x271130});const _0x526480=this['context']['plugins']['get'](_0x3fd35f),_0x1fe5ab=new CloudServicesCommentsAdapter['CommentsService'](_0x271130);this['_services']['set'](_0x271130,_0x1fe5ab),this['listenTo'](_0x1fe5ab,'commentThreadAdded',(_0x34eeee,_0x354617)=>{const {commentThreadId:_0x1281a3,documentId:_0xd1aaf,context:_0x135130,attributes:_0x1b2766,resolvedAt:_0x6eb82d,resolvedBy:_0x54962b,comments:_0x119684}=_0x354617;_0x526480['getCommentThread'](_0x1281a3)||_0x526480['addCommentThread']({'threadId':_0x1281a3,'channelId':_0xd1aaf,'comments':_0x119684?_0x119684['map'](tt):[],'context':_0x135130,'attributes':_0x1b2766,'resolvedAt':_0x6eb82d,'resolvedBy':_0x54962b,'isFromAdapter':!0x0});}),this['listenTo'](_0x1fe5ab,'commentThreadUpdated',(_0xf471f,{commentThreadId:_0xd76f7b,documentId:_0x13684b,context:_0x34650b,unlinkedAt:_0x24294a,attributes:_0x35fd98})=>{_0x526480['getCommentThread'](_0xd76f7b)&&_0x526480['updateCommentThread']({'threadId':_0xd76f7b,'channelId':_0x13684b,'context':_0x34650b,'unlinkedAt':_0x24294a,'attributes':_0x35fd98,'isFromAdapter':!0x0});}),this['listenTo'](_0x1fe5ab,'commentThreadResolved',(_0xf4b1e2,{commentThreadId:_0x4aa93d,resolvedBy:_0x55ef01,resolvedAt:_0x53c685})=>{const _0x155e87=_0x526480['getCommentThread'](_0x4aa93d);_0x155e87&&_0x155e87['resolve']({'resolvedBy':_0x55ef01,'resolvedAt':_0x53c685,'isFromAdapter':!0x0});}),this['listenTo'](_0x1fe5ab,'commentThreadReopened',(_0x1e34aa,{commentThreadId:_0x29a42})=>{const _0x2fbebb=_0x526480['getCommentThread'](_0x29a42);_0x2fbebb&&_0x2fbebb['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x1fe5ab,'commentThreadRemoved',(_0x437066,{commentThreadId:_0x15d1f5})=>{const _0x55cb04=_0x526480['getCommentThread'](_0x15d1f5);_0x55cb04&&_0x55cb04['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x1fe5ab,'commentAdded',(_0x21528a,_0x39ccda)=>{const _0x432913=_0x39ccda['commentThreadId'],_0x427cb9=_0x526480['getCommentThread'](_0x432913);_0x427cb9&&_0x427cb9['addComment']({...tt(_0x39ccda),'isFromAdapter':!0x0});}),this['listenTo'](_0x1fe5ab,'commentUpdated',(_0x2f6f29,{commentThreadId:_0x2926b9,commentId:_0x28250b,content:_0x260378,attributes:_0x2eba67})=>{const _0x5de1d0=_0x526480['getCommentThread'](_0x2926b9);if(_0x5de1d0){const _0x189a58=_0x5de1d0['getComment'](_0x28250b);_0x189a58&&_0x189a58['update']({'content':_0x260378,'attributes':_0x2eba67,'isFromAdapter':!0x0});}}),this['listenTo'](_0x1fe5ab,'commentRemoved',(_0xcf6ae3,{commentThreadId:_0x18bf6f,commentId:_0x3aa324})=>{const _0x53f066=_0x526480['getCommentThread'](_0x18bf6f);if(_0x53f066){const _0x280460=_0x53f066['getComment'](_0x3aa324);_0x280460&&_0x280460['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x271130);}['destroy'](){if(this['context']instanceof _0x24b668){const _0x309792=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x309792);}}['_terminateService'](_0x14bc3d){if(!this['_services']['has'](_0x14bc3d))throw new _0x243503('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x14bc3d});this['_getService'](_0x14bc3d)['disconnect'](),this['_services']['delete'](_0x14bc3d);}async['reconnect'](){for(const _0x22e9c6 of this['_services']['keys']())await this['_connectService'](_0x22e9c6);if(this['context']instanceof _0x24b668){const _0x4c5ba2=this['context']['config']['get']('collaboration.channelId'),_0x314853=this['context']['plugins']['get'](Sessions);_0x314853['unregister'](_0x4c5ba2);const _0x4346e9=await this['_services']['get'](_0x4c5ba2)['getConnectedSessions']();_0x314853['register'](_0x4c5ba2,_0x4346e9);}}async['_connectService'](_0x44234b){const {connection:_0x32663f}=this['context']['plugins']['get'](WebSocketGateway),_0x41bfc9=this['context']['plugins']['get'](_0x3fd35f),_0x1b33ff=this['_services']['get'](_0x44234b),_0x11bcad=await _0x1b33ff['connect'](_0x32663f);await this['_fetchMissingUsersForThreads'](_0x11bcad);const _0x1d0816=new Set(Array['from'](_0x41bfc9['getCommentThreads']({'channelId':_0x44234b}),_0x135445=>_0x135445['id']));for(const _0x5654ee of _0x11bcad)_0x5654ee['deletedAt']||_0x1d0816['delete'](_0x5654ee['commentThreadId']);for(const _0x75a60 of _0x1d0816)_0x41bfc9['getCommentThread'](_0x75a60)['remove']({'isFromAdapter':!0x0});for(const _0x516c92 of _0x11bcad){let _0x29869c=_0x41bfc9['getCommentThread'](_0x516c92['commentThreadId']);const {commentThreadId:_0x2cbe04,context:_0x3c4700,attributes:_0x26e7cb,resolvedBy:_0x574ff1,resolvedAt:_0xd8f485,unlinkedAt:_0x33dc19,deletedAt:_0x501aa7}=_0x516c92;if(_0x501aa7)continue;_0x29869c||(_0x29869c=_0x41bfc9['addCommentThread']({'channelId':_0x44234b,'threadId':_0x2cbe04,'context':_0x3c4700,'attributes':_0x26e7cb||{},'resolvedBy':_0x574ff1,'resolvedAt':_0xd8f485,'unlinkedAt':_0x33dc19,'isFromAdapter':!0x0}));const _0x1f6385=new Set(Array['from'](_0x29869c['comments'],_0x493c00=>_0x493c00['id']));for(const _0x5bec28 of _0x516c92['comments'])_0x1f6385['delete'](_0x5bec28['commentId']);for(const _0x19c790 of _0x1f6385)_0x29869c['getComment'](_0x19c790)['remove']({'isFromAdapter':!0x0});for(const _0x1c18b2 of _0x516c92['comments']){const _0x53ec67=_0x29869c['getComment'](_0x1c18b2['commentId']);_0x53ec67?_0x53ec67['content']!==_0x1c18b2['content']&&_0x53ec67['update']({'content':_0x1c18b2['content'],'isFromAdapter':!0x0}):_0x29869c['addComment'](Object['assign'](tt(_0x1c18b2),{'isFromAdapter':!0x0}));}}}['_getService'](_0x2a170e){if(!this['_services']['has'](_0x2a170e))throw new _0x243503('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x2a170e});return this['_services']['get'](_0x2a170e);}async['_fetchMissingUsersForThreads'](_0x561d0c){const _0x5d0656=this['context']['plugins']['get'](_0x3536cf),{connection:_0x1a2fe5}=this['context']['plugins']['get'](WebSocketGateway),_0x2ed920=new Set();for(const {resolvedBy:_0x5029f0,comments:_0x401a8d}of _0x561d0c){_0x5029f0&&!_0x5d0656['getUser'](_0x5029f0)&&_0x2ed920['add'](_0x5029f0);for(const {userId:_0x36698b}of _0x401a8d)_0x5d0656['getUser'](_0x36698b)||_0x2ed920['add'](_0x36698b);}if(0x0===_0x2ed920['size'])return;const _0xac8952=await _0x34df4b['getMany'](_0x1a2fe5,Array['from'](_0x2ed920));for(const _0x42965e of _0xac8952)_0x5d0656['getUser'](_0x42965e['id'])||_0x5d0656['addUser'](_0x42965e);}}async function X(_0x2f0ddd){if('404'!==_0x2f0ddd['code'])throw _0x2f0ddd;}function Z(_0x1a7dec){if((_0x2d4aa6=_0x1a7dec)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x2d4aa6['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x2d4aa6['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x2d4aa6;throw _0x1a7dec;}function tt(_0x25660a){return{'threadId':_0x25660a['commentThreadId'],'commentId':_0x25660a['commentId'],'content':_0x25660a['content'],'createdAt':_0x25660a['createdAt'],'authorId':_0x25660a['userId'],'attributes':_0x25660a['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x39f59e{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
+ ((()=>_0x5c2a30)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x4ec4de,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x467731){super(_0x467731);const _0x62000c=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x62000c);}['init'](){const _0x2aaf37=this['editor']['plugins']['get'](WebSocketGateway),_0x40b08d=this['editor']['plugins']['get'](_0x4ec4de);return _0x40b08d['adapter']={'getSuggestion':async _0x23bb68=>{await this['_waitForServiceReady']();const _0x397b4c=await this['_trackChangesService']['get'](_0x23bb68)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x397b4c]),_0x397b4c;},'addSuggestion':async({id:_0x4fe5e1,type:_0x4dae8c,data:_0x552b56,originalSuggestionId:_0x23941a,attributes:_0x379be1})=>{await this['_waitForServiceReady']();const _0x48514d={'id':_0x4fe5e1,'type':_0x4dae8c,'data':_0x552b56,'originalSuggestionId':_0x23941a,'attributes':_0x379be1},_0x441fc4=await this['_trackChangesService']['add'](_0x4fe5e1,_0x4dae8c,_0x552b56,_0x23941a,_0x379be1)['catch'](_0x376111=>{if(st(_0x376111))return new Promise(_0xf34bf0=>{this['_bufferedRequests']['set'](_0x4fe5e1,{'resolve':_0xf34bf0,'suggestionData':_0x48514d});});throw _0x376111;});return this['_bufferedRequests']['delete'](_0x4fe5e1),_0x441fc4;},'updateSuggestion':async(_0x496a7d,_0x154c7b)=>{if(await this['_waitForServiceReady'](),'open'!==_0x154c7b['state'])return this['_trackChangesService']['update'](_0x496a7d,_0x154c7b)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x10fa3c,_0x31b529)=>{_0x40b08d['hasSuggestion'](_0x31b529['id'])&&(_0x40b08d['getSuggestion'](_0x31b529['id'])['attributes']=_0x31b529['attributes']);}),this['_trackChangesService']['connect'](_0x2aaf37['connection'])['then'](_0x5c89d1=>(_0x2aaf37['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x5c89d1)['then'](()=>{for(const _0x3640e9 of _0x5c89d1){_0x40b08d['addSuggestionData'](_0x3640e9)['_saved']=!0x0;}})));}async['reconnect'](){const _0x57c774=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x501846}=this['editor']['plugins']['get'](WebSocketGateway),_0x18aa84=await this['_trackChangesService']['connect'](_0x501846);await this['_fetchMissingUsersForThreads'](_0x18aa84);for(const {suggestionData:_0x5abb3c,resolve:_0xb4c981}of this['_bufferedRequests']['values']()){let _0x98500d=_0x18aa84['find'](_0x7b5bf5=>_0x7b5bf5['id']===_0x5abb3c['id']);_0x98500d||(_0x98500d=await this['_trackChangesService']['add'](_0x5abb3c['id'],_0x5abb3c['type'],_0x5abb3c['data'],_0x5abb3c['originalSuggestionId'])),_0xb4c981(_0x98500d);}for(const _0xb524d0 of _0x18aa84)_0x57c774['hasSuggestion'](_0xb524d0['id'])||_0x57c774['addSuggestionData'](_0xb524d0);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x2c0f69=>{this['listenTo'](this['_trackChangesService'],'connected',_0x4a18b1=>{_0x4a18b1['off'](),_0x2c0f69();});});}async['_fetchMissingUsersForThreads'](_0xcd37c8){const _0x5bb4df=this['editor']['plugins']['get'](_0x3536cf),{connection:_0x3fc0d8}=this['editor']['plugins']['get'](WebSocketGateway),_0x439798=new Set();for(const {authorId:_0xd771b6}of _0xcd37c8)_0x5bb4df['getUser'](_0xd771b6)||_0x439798['add'](_0xd771b6);if(0x0===_0x439798['size'])return;const _0x23d061=await _0x34df4b['getMany'](_0x3fc0d8,Array['from'](_0x439798));for(const _0x53c574 of _0x23d061)_0x5bb4df['getUser'](_0x53c574['id'])||_0x5bb4df['addUser'](_0x53c574);}}function et(_0x1ce27c){if(st(_0x1ce27c))return new Promise(()=>{});throw _0x1ce27c;}function st(_0xa5d06a){return _0xa5d06a['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0xa5d06a['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x39f59e{static get['requires'](){return[_0x514b66,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x1f517e=this['editor']['plugins']['get'](WebSocketGateway),_0x500eca=this['editor']['plugins']['get'](_0x83c134),_0x177a8a=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x1f517e,'change:state',(_0xc3aa77,_0x6ef80d,_0x169740)=>{_0x500eca['isThreadsLoadingPaused']='connected'!==_0x169740;});}),this['listenTo'](_0x1f517e,'change:state',(_0xca5932,_0x463071,_0x364944)=>{this['editor']['plugins']['get'](_0x3fd35f)['switchReadOnly']('connected'!==_0x364944);}),_0x177a8a['_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 _0x39f59e{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x36fd6b];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x39f59e{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
+ ((()=>_0x150025)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0xb826a,Sessions,_0x3536cf];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x589f76){super(_0x589f76);const _0x1257b3=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x1257b3);}async['init'](){const _0x5671dd=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x52afc1=_0x5671dd['serverHistory'],_0x399409=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x52afc1,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x5671dd['sessionId']});const _0x11bad2=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x48cf3d,_0x3fbabf=await _0x27f1a5['isBundleUploaded'](_0x399409['connection'],_0x11bad2);this['editor']['plugins']['get'](_0xb826a)['adapter']={'getRevision':async({revisionId:_0x1ed825})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x1ed825)),'updateRevisions':async _0x1c3932=>{await this['_waitForServiceReady']();const _0x47a83f=this['_revisionTracker']['currentRevision'];if(_0x3fbabf&&0x1===_0x1c3932['length']&&_0x1c3932[0x0]['id']===_0x47a83f['id'])return _0x1c3932;for(const _0x3b575b of _0x1c3932)_0x3b575b['id']===_0x47a83f['id']&&(_0x3b575b['isEmptyCurrent']=_0x3b575b['fromVersion']===_0x3b575b['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x1c3932,this['_lastRequestId'])['then'](_0x5ed0e8=>(this['_lastRequestId']=_0x5ed0e8,_0x1c3932))['catch'](_0x1f3da0=>{if(it(_0x1f3da0)||'400'===_0x1f3da0['code']&&void 0x0!==_0x1f3da0['data']['wrongRequestId']){for(const _0x203c72 of _0x1c3932){!this['_revisionTracker']['repository']['getRevision'](_0x203c72['id'])||this['_revisionTracker']['_bufferUpdate'](_0x203c72['id'],_0x203c72,!0x1);}if(it(_0x1f3da0)&&'destroyed'!==this['editor']['state'])throw _0x1f3da0;return _0x1c3932;}throw _0x1f3da0;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x6d12a9,{revisionsData:_0x87f218,requestId:_0x3b2aab})=>{Math['max'](..._0x87f218['map'](_0x159fa5=>_0x159fa5['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x87f218,_0x3b2aab);}):this['_handleRevisionsUpdate'](_0x87f218,_0x3b2aab);});const {revisions:_0x4927cb,requestId:_0x388505}=await this['_revisionHistoryService']['connect'](_0x399409['connection']);_0x399409['addToReconnectionStack'](this),this['_lastRequestId']=_0x388505,await this['_fetchMissingUsers'](_0x4927cb);for(const _0x4dbbee of _0x4927cb)this['_revisionTracker']['addRevisionData'](_0x4dbbee);this['listenTo'](_0x5671dd,'change:_isConnected',(_0x276af8,_0x180118,_0x5afa9d)=>{_0x5afa9d&&(this['_oldOffset']=_0x5671dd['_offset'],_0x276af8['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x399409,'state',_0x527e1f=>_0x527e1f===_0x3534a0['CONNECTED']);}async['reconnect'](){const _0x27d5a8=this['editor']['plugins']['get'](WebSocketGateway),_0x49f976=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x5f44de=async()=>{const _0x265620=this['_revisionTracker']['currentRevision'],_0x437d59=_0x265620['id'],_0x40783d=_0x437d59!==_0x49f976['sessionId'];if(_0x40783d){const _0x3de90f=_0x49f976['_offset']-this['_oldOffset'],_0x44dda3=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x265620['toVersion']+_0x3de90f!==_0x44dda3){const _0x4c318b=_0x265620['fromVersion']+_0x3de90f,_0xee97d7=this['editor']['plugins']['get'](_0x3536cf),_0xe6dba6=this['_revisionTracker']['buildRevisionData']({'revision':_0x265620,'from':_0x4c318b,'to':_0x44dda3});_0xe6dba6['id']=_0x265620['id'];const _0x581843=_0xe6dba6['authorsIds']['map'](_0x2ecc8f=>_0xee97d7['getUser'](_0x2ecc8f));_0x265620['_update']({..._0xe6dba6,'authors':_0x581843},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x265620['id'],_0xe6dba6,!0x0);}this['_revisionTracker']['_startingVersion']=_0x44dda3,(_0x265620['toVersion']===_0x265620['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x437d59)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x437d59),this['_revisionTracker']['_createCurrentRevision'](_0x44dda3));}const {revisions:_0x105d73,requestId:_0x16b7ef}=await this['_revisionHistoryService']['reconnect'](_0x27d5a8['connection'],this['_lastRequestId']);_0x40783d&&_0x105d73['length']>0x0?_0x49f976['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x105d73),this['_handleRevisionsUpdate'](_0x105d73,_0x16b7ef),this['_revisionTracker']['sendBufferedUpdates']());};return _0x49f976['_isConnected']?_0x5f44de():new Promise((_0x100490,_0x28650d)=>{_0x49f976['once']('change:_isConnected',()=>{_0x5f44de()['then'](_0x100490)['catch'](_0x28650d);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x47605f=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x2ca5dc=>{_0x2ca5dc['off'](),_0x47605f();});});}['_getLatestVersionFromServerOperations'](){const _0x1a726a=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x3d8363 of _0x1a726a)if('marker'!==_0x3d8363['type']||_0x3d8363['affectsData'])return _0x3d8363['baseVersion']+0x1;}['_getLatestVersion'](){const _0x5118a3=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x49c6ad=>{_0x5118a3['_isPendingUpdate']?_0x5118a3['once']('change:_isPendingUpdate',()=>{_0x49c6ad(this['_getLatestVersionFromServerOperations']());}):_0x49c6ad(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x47d25d,_0x3d854e){const _0x5993b8=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x3d854e;for(const _0x206731 of _0x47d25d){const _0xefdc37=_0x5993b8['getRevision'](_0x206731['id']);if(_0xefdc37){if((_0x206731['fromVersion']||_0x206731['toVersion'])&&(_0x206731['diffData']=null),_0xefdc37===this['_revisionTracker']['currentRevision']){const _0x4634be=Math['max'](_0xefdc37['toVersion'],_0x206731['toVersion']),_0x27d6ab=Math['max'](_0xefdc37['fromVersion'],_0x206731['fromVersion']);let _0x3df1d0;_0xefdc37['toVersion']===_0x206731['toVersion']&&_0xefdc37['fromVersion']===_0x206731['fromVersion']?(_0x3df1d0=!0x0,this['_preventResendingRevisionData'](_0x206731)):_0x206731['toVersion']===_0x4634be&&_0x206731['fromVersion']===_0x27d6ab?_0x3df1d0=!0x1:(_0xefdc37['toVersion']===_0x4634be&&_0xefdc37['fromVersion']===_0x27d6ab||this['_fixRevision']({'revision':_0xefdc37,'from':_0x27d6ab,'to':_0x4634be}),_0x3df1d0=!0x0),_0x3df1d0&&(delete _0x206731['fromVersion'],delete _0x206731['toVersion'],delete _0x206731['diffData'],delete _0x206731['createdAt'],delete _0x206731['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x206731),this['_preventResendingRevisionData'](_0x206731);}else this['_revisionTracker']['addRevisionData'](_0x206731);}const _0x21b298=_0x5993b8['getRevisions']();_0x21b298['reverse']();for(let _0x487ba3=0x0;_0x487ba3<_0x21b298['length']-0x1;_0x487ba3++){const _0xe3f051=_0x21b298[_0x487ba3],_0x249514=_0x21b298[_0x487ba3+0x1];if(_0xe3f051['fromVersion']<_0x249514['toVersion']){const _0xbf81dd=_0x249514['toVersion'],_0x59b693=Math['max'](_0xbf81dd,_0xe3f051['toVersion']);this['_fixRevision']({'revision':_0xe3f051,'from':_0xbf81dd,'to':_0x59b693});}}}['_fixRevision']({revision:_0x28a1e8,from:_0x429652,to:_0x1c924a}={}){const _0x3224fd=this['editor']['plugins']['get'](_0x3536cf),_0x5cec03=this['_revisionTracker']['buildRevisionData']({'revision':_0x28a1e8,'from':_0x429652,'to':_0x1c924a});_0x5cec03['authors']=_0x5cec03['authorsIds']['map'](_0x313fd0=>_0x3224fd['getUser'](_0x313fd0)),_0x28a1e8['_update'](_0x5cec03);}['_preventResendingRevisionData'](_0x8d3f41){const _0x5ba6ec={};_0x5ba6ec['id']=_0x8d3f41['id'];for(const _0x21e1a2 of Object['keys'](_0x8d3f41))'id'!==_0x21e1a2&&(_0x5ba6ec[_0x21e1a2]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x5ba6ec['id'],_0x5ba6ec,!0x0);}async['_fetchMissingUsers'](_0x55ff32){const _0x5f1e98=this['editor']['plugins']['get'](_0x3536cf),{connection:_0x50dd1e}=this['editor']['plugins']['get'](WebSocketGateway),_0x171ef6=new Set();for(const _0x49818b of _0x55ff32){for(const _0x5462c9 of _0x49818b['authorsIds'])_0x59b073(_0x5462c9);_0x49818b['creatorId']&&_0x59b073(_0x49818b['creatorId']);}if(0x0===_0x171ef6['size'])return;const _0x47f079=await _0x34df4b['getMany'](_0x50dd1e,Array['from'](_0x171ef6));for(const _0x307ce0 of _0x47f079)_0x5f1e98['getUser'](_0x307ce0['id'])||_0x5f1e98['addUser'](_0x307ce0);function _0x59b073(_0x294822){_0x5f1e98['getUser'](_0x294822)||_0x171ef6['add'](_0x294822);}}}function it(_0x1c7252){return _0x1c7252['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x1c7252['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x1c7252['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x39f59e{static get['requires'](){return[_0xb826a,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x11fac4{['_collapseAt'];constructor(_0xda7bd4,_0xe11f3f=0x6){super(_0xda7bd4);const _0x181fef=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0xe11f3f,this['bind']('isHidden')['to'](this,'usersCount',_0x5b0e88=>_0x5b0e88<_0xe11f3f),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x181fef['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':_0x181fef['to']('usersCount',_0x3b2218=>'+'+(_0x3b2218-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x11fac4{['items'];['keystrokes'];constructor(_0x52ae39){super(_0x52ae39);const _0x5de516=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x14a27d(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x5de516['if']('hasPopup'),'aria-expanded':_0x5de516['to']('isExpanded',_0x36cefa=>this['hasPopup']&&String(_0x36cefa)),'aria-label':_0x5de516['to']('hasPopup',_0x56d746=>K(_0x52ae39,_0x56d746?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x5de516['to']('hasPopup',_0x1d8c6c=>!!_0x1d8c6c&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x5de516['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x5de516['to'](_0x9d06c3=>{const _0xb8e69=_0x9d06c3,_0x1a9002=document['querySelector']('.ck-presence-list__dropdown-list'),_0x1c4cb0=document['querySelector']('.ck-balloon-panel_with-arrow');_0x1a9002?.['contains'](_0xb8e69['relatedTarget'])||_0x1c4cb0?.['contains'](_0xb8e69['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x55581b,_0x4b3f28,_0x4f8fd2)=>{this['element']&&(_0x4f8fd2?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 _0x11fac4{['counterView'];['inlineListView'];constructor(_0x2c7af5,_0x17751c=0x6){super(_0x2c7af5);const _0x2b1095=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x17751c),this['inlineListView']=new PresenceInlineListView(_0x2c7af5),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x24aff3 of this['inlineListView']['items'])_0x24aff3['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',_0x2b1095['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x11fac4{['listWrapperView'];constructor(_0x5cd99f,_0x42d5e5){super(_0x5cd99f);const _0x48070c=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x5cd99f,_0x42d5e5),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x5cd99f,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x48070c['to'](_0x349ab1=>{const _0x765cd5=_0x349ab1,_0x37cfd7=document['querySelector']('.ck-presence-list__list'),_0xe0900=document['querySelector']('.ck-balloon-panel_with-arrow');_0x37cfd7?.['contains'](_0x765cd5['relatedTarget'])||_0xe0900?.['contains'](_0x765cd5['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x57db8b{constructor(_0x4e488a,_0x5783ed){super(_0x4e488a);const _0x383841=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x5783ed?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x383841['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x383841['to']('role'),'aria-label':_0x383841['to']('ariaLabel'),'aria-labelledby':_0x383841['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x83c1e['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x516a6a=this['element'];_0x516a6a&&(this['_isScrollable']=Math['max'](_0x516a6a['scrollHeight'],_0x516a6a['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x2c1667{['userView'];constructor(_0x456a6c,_0x5cf8a3,_0x48801c){super(_0x456a6c);const _0x3f00f7=this['bindTemplate'];this['userView']=new _0x4e6de2(_0x456a6c,_0x5cf8a3);const _0x1e2dc0={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x5cf8a3['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x5cf8a3['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x5cf8a3['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x5cf8a3['color']['getColorVariable'](),'--ck-user-color-alpha':_0x5cf8a3['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x48801c&&(_0x1e2dc0['tag']='button',_0x1e2dc0['on']={'click':_0x3f00f7['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1e2dc0);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x11fac4{['userView'];['markerView'];constructor(_0x5b5bba,_0x25e8dc,_0x5de134){super(_0x5b5bba);const _0x586874=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x4e6de2(_0x5b5bba,_0x25e8dc),this['markerView']=new MarkerView(_0x5b5bba,_0x25e8dc);const _0x2321ab=new _0x4191d9(_0x5b5bba);_0x2321ab['template']['tag']='span',_0x2321ab['text']=_0x25e8dc['name'];const _0x1a229c={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x586874['to']('isFocusable',_0x36e1a4=>!!_0x36e1a4&&0x0),'aria-labelledby':_0x2321ab['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x586874['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x586874['to']('hasTooltip',_0x2c2983=>!_0x2c2983),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x2321ab]};_0x5de134&&(_0x1a229c['tag']='button',_0x1a229c['on']={'click':_0x586874['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1a229c);}}class MarkerView extends _0x11fac4{constructor(_0x3b5a57,_0x5e9ea9){super(_0x3b5a57),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x5e9ea9['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x5e9ea9['color']['getColorVariable'](),'--ck-user-color-alpha':_0x5e9ea9['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x394a1b{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x9480b8){super(_0x9480b8),this['context']['config']['define']('presenceList',nt);const _0x26d954=_0x9480b8['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x26d954)throw new _0x243503('presencelist-collapseat-invalid-format',this);if(_0x26d954<0x1)throw new _0x243503('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x4e20c8(),this['balloonPanelView']=new _0x317f08(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x52203c of this['_allConnectedUsers'])this['_handleUserAdd'](_0x52203c);this['listenTo'](this['_allConnectedUsers'],'add',(_0x534775,_0x54d707)=>{this['_handleUserAdd'](_0x54d707);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0xff19c0,_0x121908)=>{this['_handleUserRemove'](_0x121908);});}['_createView'](){const _0x4e4ab1=this['context'],_0x1270a3=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x28a43e=this['balloonPanelView'];if(!_0x3ce7c0(_0x4e4ab1['config']['get']('presenceList.container')))throw new _0x243503('presencelist-missing-container',this);return _0x1270a3['counterView']['bind']('usersCount')['to'](this),_0x1270a3['bind']('isCollapsed')['to'](this,'usersCount',_0x44963e=>{const {collapseAt:_0x560886}=_0x4e4ab1['config']['get']('presenceList'),_0x4577aa=_0x44963e>=_0x560886;if(_0x4577aa&&!_0x1270a3['inlineListView']['items']['find'](_0x1fd923=>_0x1fd923 instanceof PresenceCounterView)){const _0x123ae3=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x123ae3&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x1270a3['inlineListView']['items']['add'](_0x1270a3['counterView']);}return _0x4577aa||this['hideDropdown'](),_0x4577aa;}),_0x1270a3['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x544bca=>{const _0x272aa8=_0x4e4ab1['config']['get']('presenceList'),_0x3bd50b=new PresenceInlineListItemView(_0x4e4ab1['locale'],_0x544bca,!!_0x272aa8['onClick']);return _0x3bd50b['bind']('hasTooltip')['to'](_0x1270a3,'isCollapsed',_0x2cbe1e=>!_0x2cbe1e),_0x3bd50b['bind']('isFocusable')['to'](_0x1270a3,'isCollapsed',_0x55820c=>!_0x55820c),_0x272aa8['onClick']&&this['listenTo'](_0x3bd50b,'execute',()=>{this['view']['isCollapsed']||_0x272aa8['onClick'](_0x544bca,_0x3bd50b['element']);}),_0x3bd50b;}),this['listenTo'](_0x1270a3['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x1270a3['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x1270a3['inlineListView']['keystrokes']['set']('Enter',(_0x5bdccf,_0x2037ae)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x2037ae());}),_0x1270a3['render'](),_0x28a43e['render'](),_0x13bc91({'emitter':_0x1270a3,'activator':()=>_0x28a43e['isVisible'],'contextElements':[_0x28a43e['element'],_0x1270a3['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x4e4ab1['config']['get']('presenceList.container')['appendChild'](_0x1270a3['element']),this['_bodyCollection']=new _0xe18bfe(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x1270a3;}['_handleUserAdd'](_0x3e2d28){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x3e2d28['isMe'])return;const _0x37f387=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x37f387-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x207b22=_0x3e2d28['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x3e2d28,_0x207b22);}['_handleUserRemove'](_0x14290d){this['usersCount']--;const {collapseAt:_0x4ed23a}=this['context']['config']['get']('presenceList'),_0x4ec7c3=this['usersCount']>=_0x4ed23a;if(this['currentDisplayedUsers']['get'](_0x14290d['id']))this['currentDisplayedUsers']['remove'](_0x14290d['id']);else{if(_0x4ec7c3&&this['currentDisplayedUsers']['length']+0x1===_0x4ed23a-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x4ec7c3?0x1:0x0)<this['usersCount']){for(const _0x5334a8 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x5334a8['id'])&&(this['currentDisplayedUsers']['add'](_0x5334a8,Math['min'](this['currentDisplayedUsers']['length']-(_0x4ec7c3?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x4ec7c3?0x1:0x0)===_0x4ed23a-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x1f81d4=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x1f81d4['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x5d06ce}=this['presenceDropdownView'];_0x5d06ce['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x18e7d2=>{if(!_0x1f81d4['displayMe']&&_0x18e7d2['isMe'])return null;const _0x5e2010=new PresenceDropdownListItemView(this['context']['locale'],_0x18e7d2,!!_0x1f81d4['onClick']);return _0x1f81d4['onClick']&&this['listenTo'](_0x5e2010,'execute',()=>{_0x1f81d4['onClick'](_0x18e7d2,_0x5e2010['element']);}),_0x5e2010;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x5d06ce['focus'](),_0x5d06ce['checkIfScrollable']();const _0x3f824d=(_0x30d8d5,_0x31796b)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x31796b();};_0x5d06ce['keystrokes']['set']('Esc',_0x3f824d),_0x5d06ce['keystrokes']['set']('Shift+Tab',_0x3f824d),_0x5d06ce['keystrokes']['set']('Tab',(_0x4bbb50,_0x5eadae)=>{!function(_0x1c9ac3){const _0x17c262=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x47bf49=>_0x47bf49+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x4054b7=[...document['body']['querySelectorAll'](_0x17c262)]['filter'](_0x54967d=>_0x54967d===document['activeElement']||_0x54967d['offsetWidth']+_0x54967d['offsetHeight']>0x0)['sort']((_0x11ed70,_0x36eae2)=>(_0x11ed70['tabIndex']||0x0)-(_0x36eae2['tabIndex']||0x0)),_0x7355f1=_0x4054b7['indexOf'](_0x1c9ac3),_0x18f8ae=_0x4054b7[(_0x7355f1+0x1)%_0x4054b7['length']];_0x18f8ae&&_0x18f8ae['focus']();}(this['view']['element']),this['hideDropdown'](),_0x5eadae();}),_0x5d06ce['focusTracker']['add'](this['view']['element']),_0x5d06ce['focusTracker']['on']('change:isFocused',(_0x1669c9,_0x159d6a,_0x4910a1)=>{_0x4910a1||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 _0x394a1b{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};