@ckeditor/ckeditor5-real-time-collaboration 48.2.0-alpha.6 → 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 _0xb2e98b,Plugin as _0x3399ad,PendingActions as _0x102644,Context as _0x250b69}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0xa1d399,CKEditorError as _0x1cc85d,Collection as _0x36c9b5,global as _0x22ef6c,version as _0xb80067,uid as _0x46f444,KeystrokeHandler as _0x260cbc}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x1ef4aa,View as _0x461b17,ListView as _0x178ec2,ListItemView as _0x373600,LabelView as _0x4d304a,BalloonPanelView as _0x212c7c,clickOutsideHandler as _0x171c4b,BodyCollection as _0x144898}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x19d676,History as _0x5d2057,NoOperation as _0x4bd98e,InsertOperation as _0x2e3a70,MarkerOperation as _0x468417,RootAttributeOperation as _0x35d36f,transformOperationSets as _0x37b6f0,OperationFactory as _0x4ad0ad}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x301824}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x3efdcb,WEB_SOCKET_GATEWAY_STATES as _0x3a74ac,CollaborativeEditingService as _0x2660a5,User as _0xeb9635,CommentsService as _0x5ac7b7,TrackChangesService as _0x2a5b56,RevisionHistoryService as _0x38ed0c,EditorService as _0x12985e}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x110378,UserView as _0x3115e5}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x252856}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x38cfce,TrackChanges as _0x4946b3}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x1503c2,Comments as _0x1c96ee,CommentsEditing as _0x181b81}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x3bca10}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x27aa18}from'es-toolkit/compat';class WebSocketGateway extends _0xb2e98b{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
- ((()=>_0x3efdcb)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x301824,_0x1ef4aa];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x29abd7){super(_0x29abd7),this['set']('state',_0x3a74ac['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0xa1d399())();}['init'](){const _0x450a5b=this['context'],_0x1b4315=_0x450a5b['plugins']['get'](_0x301824),_0x49bee4=_0x450a5b['plugins']['get'](_0x1ef4aa);if(!_0x1b4315['token'])throw new _0x1cc85d('websocketgateway-missing-token',this);if(!_0x1b4315['webSocketUrl'])throw new _0x1cc85d('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'](_0x1b4315['token'],_0x1b4315['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0xee3db8=>{if(this['connection']=_0xee3db8,this['bind']('state')['to'](_0xee3db8,'state',this,'_isBrowserOffline',(_0x47c186,_0x26daa4)=>('connected'!==_0x47c186&&(this['_shouldPluginsReconnect']=!0x0),_0x26daa4||_0x47c186!==_0x3a74ac['CONNECTED']?_0x3a74ac['DISCONNECTED']:this['state']==_0x3a74ac['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x3a74ac['CONNECTING']):_0x3a74ac['CONNECTED'])),this['connection']['on']('error',(_0x40d7c6,_0x13b77d)=>{if('limitExceeded'!==_0x13b77d['code'])throw console['error'](_0x13b77d),new _0x1cc85d('cloudservices-init',null,{'originalError':_0x13b77d});_0x49bee4['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'});}),!_0xee3db8['me'])return new Promise(_0x1cea77=>_0xee3db8['on']('change:me',_0x1cea77));})['catch'](_0x37b86d=>{throw console['error'](_0x37b86d),new _0x1cc85d('cloudservices-init',null,{'originalError':_0x37b86d});});}['addToReconnectionStack'](_0x3278ac){if('function'!=typeof _0x3278ac['reconnect'])throw new _0x1cc85d('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x3278ac))throw new _0x1cc85d('websocketgateway-plugin-already-registered',this,{'name':_0x3278ac['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x3278ac);}['removeFromReconnectionStack'](_0x34475a){this['_reconnectionStack']['delete'](_0x34475a);}['isInReconnectionStack'](_0x478d41){return this['_reconnectionStack']['has'](_0x478d41);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x373400=>_0x373400['reconnect']())))['then'](()=>this['state']=_0x3a74ac['CONNECTED'])['catch'](_0x305f14=>{throw console['error'](_0x305f14),new _0x1cc85d('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x3a74ac['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0xb2e98b{['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,_0x110378];}constructor(_0x3ddc08){super(_0x3ddc08),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x36c9b5(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x110378);}['init'](){const _0x3c8873=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x3c8873,'change:state',(_0xd9637e,_0x29663d,_0x17646a)=>{if('connected'!==_0x17646a)this['channelSessions']['forEach'](_0x3b049f=>_0x3b049f['clear']()),this['channelConnectedUsers']['forEach'](_0x4ddd6b=>_0x4ddd6b['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x40284a,_0xf20479]of this['_registeredSessions'])for(const _0x5aa8d1 of _0xf20479)this['_handleSessionAdd'](_0x40284a,_0x5aa8d1);}}),this['_createUser'](_0x3c8873['connection']['me'],!0x0);}['register'](_0x32de16,_0x461ff5){if(this['_registeredSessions']['has'](_0x32de16))throw new _0x1cc85d('sessions-register-already-registered',null,{'channelId':_0x32de16});this['_registeredSessions']['set'](_0x32de16,_0x461ff5),this['channelSessions']['set'](_0x32de16,new _0x36c9b5()),this['channelConnectedUsers']['set'](_0x32de16,new _0x36c9b5()),this['listenTo'](_0x461ff5,'add',(_0x33eb9f,_0x526e67)=>this['_handleSessionAdd'](_0x32de16,_0x526e67)),this['listenTo'](_0x461ff5,'remove',(_0x486b2e,_0x31d2b3)=>this['_handleSessionRemove'](_0x32de16,_0x31d2b3));for(const _0xd50fe2 of _0x461ff5)this['_handleSessionAdd'](_0x32de16,_0xd50fe2);}['unregister'](_0x3911bf){if(!this['_registeredSessions']['has'](_0x3911bf))throw new _0x1cc85d('sessions-unregister-not-exist',null,{'channelId':_0x3911bf});const _0x2bf195=this['_registeredSessions']['get'](_0x3911bf);this['stopListening'](_0x2bf195);for(const _0x31f516 of _0x2bf195)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x3911bf,_0x31f516);this['_registeredSessions']['delete'](_0x3911bf),this['channelSessions']['delete'](_0x3911bf),this['channelConnectedUsers']['delete'](_0x3911bf);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x5e3308){for(const _0x262df5 of this['channelSessions']['values']())for(const _0x4e2b9b of _0x262df5)if(_0x4e2b9b['id']===_0x5e3308)return _0x4e2b9b['user'];}['getUserSessions'](_0x26205c,_0x50fc91){const _0x520cbe=_0x50fc91?[this['channelSessions']['get'](_0x50fc91)]:this['channelSessions']['values'](),_0x34f218=new Set();for(const _0x24a8ef of _0x520cbe)for(const _0x273384 of _0x24a8ef)_0x273384['user']['id']===_0x26205c['id']&&_0x34f218['add'](_0x273384['id']);return _0x34f218;}['getUserRole'](_0x2de062){for(const _0x4271a9 of this['channelSessions']['values']())for(const _0x703ca7 of _0x4271a9)if(_0x703ca7['user']===_0x2de062)return _0x703ca7['role'];}['_handleSessionAdd'](_0x4515ab,_0x298dc8){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x4b920b=_0x298dc8['user'],_0x14af43=this['_users']['getUser'](_0x4b920b['id'])||this['_createUser'](_0x4b920b),_0x39086f=Object['assign']({},_0x298dc8,{'user':_0x14af43});if(this['channelSessions']['get'](_0x4515ab)['add'](_0x39086f),!_0x4b920b['hiddenInPresenceList']){const _0x2533f9=this['channelConnectedUsers']['get'](_0x4515ab);_0x2533f9['has'](_0x14af43['id'])||_0x2533f9['add'](_0x14af43),this['allConnectedUsers']['has'](_0x14af43['id'])||_0x4b920b['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x14af43,_0x14af43['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x4515ab,{'channelId':_0x4515ab,'session':_0x39086f});}['_handleSessionRemove'](_0x39bc0a,_0x286c90){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x190d5f=this['channelConnectedUsers']['get'](_0x39bc0a),_0x4277e8=_0x286c90['user'];_0x4277e8['id']&&(this['channelSessions']['get'](_0x39bc0a)['remove'](_0x286c90['id']),_0x190d5f['has'](_0x4277e8['id'])&&!this['getUserSessions'](_0x4277e8,_0x39bc0a)['size']&&_0x190d5f['remove'](_0x4277e8['id']),this['allConnectedUsers']['get'](_0x4277e8['id'])&&!this['getUserSessions'](_0x4277e8)['size']&&this['allConnectedUsers']['remove'](_0x4277e8['id']));}['_createUser'](_0x1bccd0,_0x48c3bb){const _0x2bd991=this['_users']['addUser'](_0x1bccd0);return _0x48c3bb&&this['_users']['defineMe'](_0x1bccd0['id']),_0x2bd991['orderNumber']=this['_uniqueUsersCount']++,_0x2bd991;}}class UserMarkers extends _0x3399ad{['_domEmitter']=new(_0xa1d399())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x346333=this['editor'],_0xd0143=_0x346333['plugins']['get'](Sessions);_0x346333['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x33a1e2,{writer:_0xf7cf8a})=>function(_0x5ce3bb,_0x4c6639,_0xfb323c,_0x35a95b){const _0x4f1bf6=_0x5ce3bb['markerName']['split'](':')[0x2],_0x1b2b3a=_0xfb323c['getUserBySessionId'](_0x4f1bf6);if(!_0x1b2b3a||_0x4f1bf6===_0xfb323c['mySessionId'])return;if(!_0x35a95b['model']['schema']['checkChild'](_0x5ce3bb['markerRange']['start'],'$text'))return;const _0x409525={'class':'ck-user__marker\x20'+_0x1b2b3a['color']['getMarkerClass'](),'style':Y(_0x1b2b3a),'data-name':_0x1b2b3a['name'],'data-session-id':_0x4f1bf6},_0x5c1cae=_0x35a95b['model']['markers']['get'](_0x5ce3bb['markerName']),_0x11819a=_0x5c1cae['getStart'](),_0x266709=_0x11819a['nodeAfter'],_0x1143de=_0x35a95b['model']['schema'];if(_0x266709&&_0x1143de['isObject'](_0x266709)&&_0x1143de['isInline'](_0x266709)&&!_0x35a95b['model']['markers']['get']('user:range:'+_0x4f1bf6)['getRange']()['isCollapsed'])return;const _0x360b53=_0x11819a['parent'];return _0x35a95b['model']['schema']['isLimit'](_0x360b53)&&!_0x35a95b['model']['hasContent'](_0x360b53)&&(_0x409525['contenteditable']=!0x1),function(_0x386989,_0xa1563f,_0x132d17){const _0x18def9=_0x386989['createUIElement']('span',_0xa1563f);return _0x386989['setCustomProperty']('userPositionMarker',!0x0,_0x18def9),_0x18def9['render']=function(_0x537ee6){const _0x5ca4f6=this['toDomElement'](_0x537ee6),_0x36eeb8=document['createElement']('span');return _0x36eeb8['classList']['add']('ck-user__marker-tooltip'),_0x36eeb8['setAttribute']('contenteditable','false'),_0x36eeb8['setAttribute']('spellcheck','false'),_0x36eeb8['textContent']=_0x132d17['name'],_0x5ca4f6['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x36eeb8['outerHTML']+'⁠',_0x5ca4f6['addEventListener']('mouseenter',()=>{_0x5ca4f6['classList']['add']('ck-user__marker_hovered');}),_0x5ca4f6['addEventListener']('mouseleave',()=>{_0x5ca4f6['classList']['remove']('ck-user__marker_hovered');}),_0x5ca4f6;},_0x18def9['isSimilar']=function(_0x14ea1f){return!(!this['getCustomProperty']('userPositionMarker')||!_0x14ea1f['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x14ea1f['getAttribute']('data-session-id'));},_0x18def9;}(_0x4c6639,_0x409525,_0x1b2b3a);}(_0x33a1e2,_0xf7cf8a,_0xd0143,_0x346333)}),_0x346333['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x1ae826=>function(_0x158a8a,_0x5c6c92){const _0x54b418=_0x158a8a['markerName']['split'](':')[0x2];if(_0x54b418===_0x5c6c92['mySessionId'])return null;const _0x219afd=_0x5c6c92['getUserBySessionId'](_0x54b418);if(!_0x219afd)return{'id':_0x54b418,'classes':[]};return{'id':_0x54b418,'classes':['ck-user__selection',_0x219afd['color']['getSelectionClass']()],'attributes':{'style':Y(_0x219afd),'data-session-id':_0x54b418},'priority':0x7d0+_0x219afd['orderNumber']};}(_0x1ae826,_0xd0143)}),function(_0xf5797b){const _0x37f4c3=_0xf5797b['model'],_0x26522d=new Map(),_0x2d149d=_0xf5797b['plugins']['get'](Sessions);_0x37f4c3['markers']['on']('update:user:range',(_0x313a7b,_0x28a7df,_0x497460,_0x399590)=>{if(!_0x399590&&_0x26522d['get'](_0x28a7df['name']))return _0x26522d['get'](_0x28a7df['name'])['detach'](),void _0x26522d['delete'](_0x28a7df['name']);const _0x27d5bd=_0x28a7df['name']['split'](':')[0x2];if(_0x27d5bd===_0x2d149d['mySessionId'])return;const _0x1e590a='user:position:'+_0x27d5bd;_0x37f4c3['markers']['has'](_0x1e590a)&&_0xf5797b['editing']['reconvertMarker'](_0x1e590a),_0x28a7df['on']('change:range',(_0x58394c,_0x13cadf,_0x38e843)=>{if('$graveyard'!=_0x13cadf['root']['rootName']&&'$graveyard'==_0x28a7df['getRange']()['root']['rootName']&&!_0x26522d['has'](_0x28a7df['name'])){const _0x41ab4b=_0x37f4c3['schema']['getNearestSelectionRange'](_0x38e843['deletionPosition']);if(_0x41ab4b){const _0x28fffe=_0x19d676['fromRange'](_0x41ab4b);_0x26522d['set'](_0x28a7df['name'],_0x28fffe),_0x28fffe['on']('change:range',(_0x2b8057,_0x3758bf,_0x57e83f)=>{if('$graveyard'==_0x28fffe['root']['rootName']){const _0x29159b=_0x37f4c3['schema']['getNearestSelectionRange'](_0x57e83f['deletionPosition']);_0x29159b?(_0x28fffe['start']=_0x29159b['start'],_0x28fffe['end']=_0x29159b['end']):(_0x26522d['delete'](_0x28a7df['name']),_0x28fffe['detach']());}});}}});}),_0x37f4c3['document']['on']('change',()=>{_0x26522d['size']>0x0&&_0x37f4c3['enqueueChange']({'isUndoable':!0x1},_0x3296a6=>{for(const [_0x326834,_0x4583d8]of _0x26522d)'$graveyard'==_0x37f4c3['markers']['get'](_0x326834)['getRange']()['root']['rootName']&&(z(_0x326834['split'](':')[0x2],_0x4583d8['toRange'](),_0x37f4c3,_0x3296a6),_0x4583d8['detach']());_0x26522d['clear']();});});}(_0x346333),this['_domEmitter']['listenTo'](_0x22ef6c['document'],'keydown',(_0x494f5a,{key:_0x2447e1})=>{'Escape'===_0x2447e1&&function(_0x3393fb){_0x3393fb['editing']['view']['change'](_0xd0e6bc=>{for(const _0x179d52 of _0x3393fb['model']['markers']){if(!_0x179d52['name']['startsWith']('user:position'))continue;const _0x2980a7=_0x3393fb['editing']['mapper']['markerNameToElements'](_0x179d52['name']);if(_0x2980a7){for(const _0x3c8735 of _0x2980a7)_0xd0e6bc['removeClass']('ck-user__marker_hovered',_0x3c8735);}}});}(_0x346333);},{'useCapture':!0x0});}['afterInit'](){const _0xf6ad9=this['editor'],_0x199192=_0xf6ad9['commands']['get']('undo');_0x199192&&_0xf6ad9['model']['on']('applyOperation',(_0x1ef687,_0x905c50)=>{const _0x4bc722=_0x905c50[0x0];if(!_0x4bc722['isDocumentOperation'])return;if('marker'!=_0x4bc722['type']||!_0x4bc722['name']['startsWith']('user:'))return;const _0xe80065=_0x4bc722['batch'];_0x199192['_createdBatches']['has'](_0xe80065)&&(_0x4bc722['newRange']=_0x4bc722['oldRange']?_0xf6ad9['model']['createRange'](_0x4bc722['oldRange']['start'],_0x4bc722['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x45f800=this['editor'],_0x28c867=_0x45f800['model']['document'],_0xe4fa6a=_0x45f800['plugins']['get'](Sessions);_0x45f800['model']['enqueueChange']({'isUndoable':!0x1},_0x67290d=>{const _0x174d67='user:range:'+_0xe4fa6a['mySessionId'],_0x36c1d7='user:position:'+_0xe4fa6a['mySessionId'],_0x1c04fd=_0x45f800['model']['markers']['has'](_0x174d67);_0x45f800['editing']['view']['hasDomSelection']?z(_0xe4fa6a['mySessionId'],_0x28c867['selection']['getFirstRange'](),_0x45f800['model'],_0x67290d):_0x1c04fd&&(_0x67290d['removeMarker'](_0x174d67),_0x67290d['removeMarker'](_0x36c1d7));});}}function z(_0xf0901c,_0x316532,_0x1d4f31,_0x582d2a){const _0x56defa='user:range:'+_0xf0901c,_0x25e803='user:position:'+_0xf0901c,_0x386b61=_0x316532['getContainedElement']();let _0x4acbcf=_0x316532['start'];if(_0x386b61&&_0x386b61['is']('element','tableCell')){const _0x36af24=function(_0x1f3ef5,_0x3b000c){for(const _0x30700a of _0x1f3ef5['getPositions']())if(_0x3b000c['schema']['checkChild'](_0x30700a,'$text'))return _0x30700a;}(_0x316532,_0x1d4f31);_0x36af24&&(_0x4acbcf=_0x36af24,_0x316532=_0x582d2a['createRange'](_0x4acbcf));}const _0x494660=_0x582d2a['createRange'](_0x4acbcf);_0x1d4f31['markers']['has'](_0x56defa)?(_0x582d2a['updateMarker'](_0x56defa,{'range':_0x316532}),_0x582d2a['updateMarker'](_0x25e803,{'range':_0x494660})):(_0x582d2a['addMarker'](_0x56defa,{'range':_0x316532,'usingOperation':!0x0}),_0x582d2a['addMarker'](_0x25e803,{'range':_0x494660,'usingOperation':!0x0}));}function Y(_0x464820){return'--ck-user-color:'+_0x464820['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x464820['color']['getColorAlphaVariable']()+';';}function K(_0x553d8f,_0x2e5537,_0x572495){const _0x124896=_0x553d8f['t'],t=_0x553d8f['t'];switch(_0x2e5537){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 _0x124896({'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'},_0x572495);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x3399ad{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
- ((()=>_0x2660a5)());['_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,_0x102644,_0x110378,_0x1ef4aa];}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 _0x1bd74d=this['serverHistory']['getOperations']();for(let _0xabf553=_0x1bd74d['length']-0x1;_0xabf553>=0x0;_0xabf553--){const _0x415015=_0x1bd74d[_0xabf553];if(!this['_disconnectionOperations']['has'](_0x415015))return _0x415015['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x401b6c){if(super(_0x401b6c),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x5d2057(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x1cc85d('collaboration-missing-channelid',this);const _0x4808e1=_0x401b6c['config']['get']('cloudServices.bundleVersion')||_0xb80067;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x4808e1,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x252856(),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 _0x213b55=this['editor'],_0x3cbb71=_0x213b55['plugins']['get'](_0x110378),_0x3b8b8d=_0x213b55['plugins']['get'](WebSocketGateway);this['listenTo'](_0x3cbb71,'getOperationAuthor',(_0x1b1de1,_0x4a6f2b)=>{const _0x5d6008=_0x4a6f2b[0x0];_0x5d6008['_authorId']&&(_0x1b1de1['return']=_0x3cbb71['getUser'](_0x5d6008['_authorId']),_0x1b1de1['stop']()),null===_0x5d6008['_authorId']&&(_0x1b1de1['return']=null,_0x1b1de1['stop']());},{'priority':'high'}),this['listenTo'](_0x213b55['model']['document']['selection'],'change:range',(_0x199134,_0x3cf4a9)=>{_0x3cf4a9['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x213b55['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x213b55['model']['on']('applyOperation',(_0x19bbba,_0x20b1e8)=>{const _0x32ab7d=_0x20b1e8[0x0];_0x32ab7d['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x32ab7d),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x3b8b8d,'state',this,'_hasSynchronizationProblem',(_0x38ffb2,_0x2a69b2)=>'connected'===_0x38ffb2&&!_0x2a69b2),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x213b55['disableReadOnlyMode']('rtc-offline'):_0x213b55['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x213b55['disableReadOnlyMode']('rtc-offline'):_0x213b55['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x216b0b=this['editor']['plugins']['get'](Sessions),_0x45d3d3=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x216b0b['unregister'](this['_channelId']);const _0x36bb18=await this['_service']['reconnect'](_0x45d3d3['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x36bb18)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x225ef5=await this['_service']['getConnectedSessions']();_0x216b0b['register'](this['_channelId'],_0x225ef5),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x57240e){if(function(_0x336299){return'404'===_0x336299['code'];}(_0x57240e)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x740c67){return'409'===_0x740c67['code'];}(_0x57240e)){const _0x4b494e=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'](_0x4b494e);}else{if(!(_0x57240e instanceof ReconnectionError))throw _0x57240e;this['_handleReconnectionError']();}}}}['destroy'](){const _0x2dfa44=this['editor']['plugins']['get'](WebSocketGateway),_0x4478a1=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x4478a1['channelSessions']['has'](this['_channelId'])&&_0x4478a1['unregister'](this['_channelId']),_0x2dfa44['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x25e1f8){if(this['sessionId']!==_0x25e1f8['sessionId']&&this['_lastSyncedOperationId']!==_0x25e1f8['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x25e1f8['sessionId'],this['_handleServerResponse']([],{..._0x25e1f8,'wereChangesApplied':!0x1,'data':_0x25e1f8['data']},'reconnect');}async['_connectService'](_0x1b044b,_0x28b02c=!0x1){const {connection:_0x72ca7e}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x72ca7e,this['_channelId'])['then'](_0x287d0c=>this['_initSessionsHandling'](_0x287d0c))['catch'](_0x22261a=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x22261a);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x42a92d,_0x2a9645)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x2a9645);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x32377e=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x1b044b);this['_isPendingUpdate']=!0x0;const _0x26dc6a=await this['_service']['connect'](_0x72ca7e,this['_compressOperations'](_0x1b044b),_0x32377e);if(this['sessionId']=_0x26dc6a['sessionId'],_0x28b02c){if(!_0x26dc6a['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x26dc6a['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x1b044b,_0x26dc6a,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x26dc6a,_0x1b044b);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0xa1cfd6=this['editor']['plugins']['get'](Sessions),_0xf8a9cd=this['editor']['plugins']['get'](UserMarkers),_0x561be7=_0xa1cfd6['channelSessions']['get'](this['_channelId']);_0x561be7&&_0x561be7['length']>0x1?_0xf8a9cd['createUserMarkerOperations']():this['listenTo'](_0xa1cfd6,'sessionAdd:'+this['_channelId'],()=>{0x2===_0xa1cfd6['channelSessions']['get'](this['_channelId'])['length']&&_0xf8a9cd['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x3e2748,_0x46c2b3,_0x3d7d12,_0x2c5d05){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x46c2b3){const _0x176f75=this['_decompressOperations'](_0x3d7d12,_0x2c5d05);await this['_fetchMissingUsers'](_0x176f75),this['_handleExternalOperations'](_0x176f75,_0x46c2b3,_0x3d7d12['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x25c0f0}=this['editor'];let _0x342e84;try{_0x342e84=await this['_service']['getDocumentDetails']();}catch{const _0x144d8a=K(_0x25c0f0,'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'](_0x144d8a);}const _0x110b1f=_0x342e84['currentDocumentSession']||_0x342e84['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x110b1f['lastOperationId']){const _0x3457e5=K(_0x25c0f0,'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'](_0x3457e5);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x4e214b){const _0x4bf01f=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x4bf01f,'sessionAdd:'+this['_channelId'],(_0x13b746,{session:_0x4062bc})=>{if(_0x4062bc['id']===_0x4bf01f['mySessionId']){_0x13b746['off']();const _0xfe602e=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x330e5e=_0x4062bc['permissions'];_0xfe602e&&_0xfe602e['isEnabled']&&(_0x330e5e=_0x330e5e['filter'](_0x5120e8=>'document:write'!==_0x5120e8)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x330e5e,this['_channelId']);}}),_0x4bf01f['register'](this['_channelId'],_0x4e214b);}['_initThrowingOnDataSet'](){const _0x1a1ec2=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x2f020e)=>{if(!_0x2f020e[_0x2f020e['length']-0x1]['suppressErrorInCollaboration'])throw new _0x1cc85d('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x1a1ec2['apply'](this['editor']['data'],_0x2f020e);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x4d600b,[_0x50b061])=>{if(this['_document']['version'])throw new _0x1cc85d('realtimecollaborationclient-init-document-already-initialized',this);_0x4d600b['stop'](),this['_setPendingAction']();const _0x5e0211=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x53ec4d])=>!_0x53ec4d['lazyLoad'])['map'](([_0x2b5e3b,_0x3058a7])=>[_0x2b5e3b,_0x3058a7['modelAttributes']||{}])),_0x36f24a=this['_getOperationsFromInitData'](_0x50b061,_0x5e0211);0x0==_0x36f24a['length']&&_0x36f24a['push'](new _0x4bd98e(0x0)),_0x4d600b['return']=this['_connectService'](_0x36f24a)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x45fedc=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x45fedc))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x21faac,[_0x44bec0,_0xc65a67])=>{_0x21faac['stop']();const _0x42af62=this['editor']['model']['document']['getRoot'](_0x44bec0);if(!this['_knownRootNames']['has'](_0x44bec0)){const _0xdccc9=_0xc65a67&&_0xc65a67['data']?_0xc65a67['data']:'',_0x198b6f=_0xc65a67&&_0xc65a67['attributes']?_0xc65a67['attributes']:{};await this['_loadRoot'](_0x44bec0,_0xdccc9,_0x198b6f);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x42af62['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x42af62);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x113f43){const _0x1fa176=this['editor']['plugins']['get'](_0x110378),{connection:_0x29973e}=this['editor']['plugins']['get'](WebSocketGateway),_0x5145fd=new Set();for(const _0x18245f of _0x113f43){const _0x567f8b=_0x18245f['_authorId'];_0x567f8b&&!_0x1fa176['getUser'](_0x567f8b)&&_0x5145fd['add'](_0x567f8b);}if(0x0===_0x5145fd['size'])return;const _0x3a192=await _0xeb9635['getMany'](_0x29973e,Array['from'](_0x5145fd));for(const _0x3fd05b of _0x3a192)_0x1fa176['getUser'](_0x3fd05b['id'])||_0x1fa176['addUser'](_0x3fd05b);}['_getOperationsFromInitData'](_0x11aed0,_0x2330db={}){const _0x48ae28=this['editor']['model'],_0x1994c4=[];let _0x4f2f0f=0x0;const _0x111d44='string'==typeof _0x11aed0?{'main':_0x11aed0}:_0x11aed0;for(const _0xa4594e of Object['keys'](_0x111d44)){if(!this['_document']['roots']['has'](_0xa4594e))throw new _0x1cc85d('realtimecollaborationclient-init-non-existent-root',this);const _0x186cc0=this['_document']['getRoot'](_0xa4594e),_0x2a4a94=this['editor']['data']['parse'](_0x111d44[_0xa4594e],_0x186cc0),_0x1c491e=new _0x2e3a70(_0x48ae28['createPositionAt'](_0x186cc0,0x0),_0x2a4a94,_0x4f2f0f++);_0x1994c4['push'](_0x1c491e);for(const [_0x59e308,_0x4ffc71]of _0x2a4a94['markers']){const _0x2ac310=_0x48ae28['createRange'](_0x48ae28['createPositionFromPath'](_0x186cc0,_0x4ffc71['start']['path']['slice']()),_0x48ae28['createPositionFromPath'](_0x186cc0,_0x4ffc71['end']['path']['slice']())),_0x37099f=new _0x468417(_0x59e308,null,_0x2ac310,_0x48ae28['markers'],!0x0,_0x4f2f0f++);_0x1994c4['push'](_0x37099f);}}if(_0x2330db)for(const [_0xddaef3,_0x1f8894]of Object['entries'](_0x2330db)){const _0x21cf92=_0x48ae28['document']['getRoot'](_0xddaef3);if(!_0x21cf92)throw new _0x1cc85d('multi-root-editor-root-attributes-no-root',null);for(const [_0x287de6,_0x565379]of Object['entries'](_0x1f8894))if(null!==_0x565379){const _0x1111a7=new _0x35d36f(_0x21cf92,_0x287de6,null,_0x565379,_0x4f2f0f++);_0x1994c4['push'](_0x1111a7);}}return _0x1994c4;}async['_loadRoot'](_0x2e20c2,_0x5eb78e,_0x4fbe82){this['_getOperationsFromInitData']({[_0x2e20c2]:_0x5eb78e},{[_0x2e20c2]:_0x4fbe82})['forEach']((_0xef389c,_0x44fd52)=>{_0xef389c['baseVersion']=this['_document']['version']+_0x44fd52,_0xef389c['_isInit']=!0x0,this['_saveOperationInBuffer'](_0xef389c);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x35c65a,_0x4bb392){let _0x21ac48;this['_offset']=_0x35c65a['offset'];const _0x16e435=_0x35c65a['wereChangesApplied']&&!_0x35c65a['initData'],_0x18c0d7=_0x16e435?0x0:_0x35c65a['data']['baseVersion'];if(_0x4bb392['forEach'](_0x15532c=>{_0x15532c['_isInit']=!0x0,_0x15532c['createdAt']=_0x35c65a['sessionCreatedAt'],_0x15532c['_authorId']=null;}),_0x16e435)_0x21ac48=_0x4bb392,this['_applyOperationsSet'](_0x21ac48,_0x16e435);else{if(_0x35c65a['initData']){const _0x1c872c=this['_getOperationsFromInitData'](_0x35c65a['initData']);this['_document']['history']['version']=-_0x1c872c['length'],_0x1c872c['forEach'](_0x24b67c=>{_0x24b67c['baseVersion']-=_0x1c872c['length'],_0x24b67c['createdAt']=_0x35c65a['sessionCreatedAt'],_0x24b67c['_isInit']=!0x0,_0x24b67c['_authorId']=null;}),this['_applyOperationsSet'](_0x1c872c,!0x0),this['serverHistory']['version']=-_0x1c872c['length']+this['_offset'],this['_updateServerHistory'](_0x1c872c);}this['_document']['history']['version']=_0x18c0d7,_0x21ac48=this['_decompressOperations'](_0x35c65a['data'],_0x35c65a['metadata']),await this['_fetchMissingUsers'](_0x21ac48),this['_applyOperationsSet'](_0x21ac48,_0x16e435);}_0x35c65a['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x21ac48,_0x35c65a['lastOperationId']),this['_lastSyncedOperationId']=_0x35c65a['lastOperationId']),this['serverHistory']['version']=_0x18c0d7+this['_offset'],this['_updateServerHistory'](_0x21ac48),_0x4bb392['filter'](_0x39b6c4=>{const _0x1789ca=this['_getAffectedRoot'](_0x39b6c4);return _0x1789ca&&!this['_knownRootNames']['has'](_0x1789ca);})['forEach']((_0x4e6ab9,_0x4c8103)=>{_0x4e6ab9['baseVersion']=this['_document']['version']+_0x4c8103,this['_saveOperationInBuffer'](_0x4e6ab9);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x4e7213,_0x5ee964){const _0x3ac199=_0x5ee964&&_0x5ee964['message'];if(_0x3ac199&&_0x3ac199['startsWith']('realtimecollaborationclient'))throw _0x5ee964;const _0xaf2f15=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0xaf2f15['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x1cc85d(_0x4e7213,this['editor'],_0x3ac199?{'originalError':_0x3ac199}:void 0x0);}['_saveOperationInBuffer'](_0x3bc38c){this['_knownOperations']['has'](_0x3bc38c)||(this['_knownOperations']['add'](_0x3bc38c),this['_bufferedOperations']['push'](_0x3bc38c),this['_pendingAction']||'marker'==_0x3bc38c['type']&&!_0x3bc38c['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x56eef1=!0x1){!_0x56eef1&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x31d2e9=>{_0x31d2e9&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x4c4c2c=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0xcbd12e){return _0xcbd12e['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0xcbd12e['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0xcbd12e['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x4c4c2c)||this['_crash'](_0x4c4c2c['message'],_0x4c4c2c);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x26d06c=>{this['on']('change:_isPendingUpdate',()=>{_0x26d06c();});});}async['_sendBufferedOperations'](){const _0x5c7199=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x5c7199['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x118d71=[...this['_bufferedOperations']];for(const _0x431686 of _0x118d71)_0x431686['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x431686);const _0x6d629e=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x118d71),_0x278f72=J++,_0xb585d6=this['_compressOperations'](_0x118d71),_0x333f4f=await this['_service']['sendOperations'](_0xb585d6,_0xb585d6['baseVersion'],_0x6d629e);try{return await this['_handleServerResponse'](_0x118d71,_0x333f4f,_0x278f72);}catch(_0x51aa34){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x51aa34);}}async['_handleServerResponse'](_0x1dc379,_0x34f2be,_0x1ff20c){if('error'in _0x34f2be)throw _0x34f2be['error'];let _0x4c1145=!0x1;if(_0x34f2be['wereChangesApplied']){_0x34f2be['lastOperationId']&&(this['_lastSyncedOperationId']=_0x34f2be['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x3fe3ef=>!_0x1dc379['includes'](_0x3fe3ef));for(const _0x544258 of _0x1dc379)_0x544258['createdAt']='lastOperationAcceptedAt'in _0x34f2be&&_0x34f2be['lastOperationAcceptedAt']||void 0x0;Q(_0x1dc379,_0x34f2be['version']-_0x1dc379['length']),this['_updateServerHistory'](_0x1dc379);const _0x2cf6a6=_0x1dc379['filter'](_0x1ad36d=>{if(!_0x1ad36d['_isInit'])return!0x1;const _0x2a05ec=this['_getAffectedRoot'](_0x1ad36d);return _0x2a05ec&&!this['_knownRootNames']['has'](_0x2a05ec);});Q(_0x2cf6a6,this['_document']['version']),this['_applyOperationsSet'](_0x2cf6a6),_0x4c1145=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x3b06f6=this['_decompressOperations'](_0x34f2be['data'],_0x34f2be['metadata'])['filter'](_0x20c7e0=>_0x20c7e0['baseVersion']>=this['_lastServerVersion']);_0x3b06f6['forEach'](_0x8c1412=>this['_addKnownRoot'](_0x8c1412)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x524188=>!_0x524188['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x524188))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x3b06f6),_0x4c1145=this['_handleExternalOperations'](_0x3b06f6,_0x34f2be['version'],_0x34f2be['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x4c1145?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x410bd1,_0x156ca6,_0x1c98bf){try{const _0x163663={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x25ee4e,operationsB:_0x4a3ae4,originalOperations:_0x48fb57}=_0x37b6f0(_0x410bd1,this['_bufferedOperations'],_0x163663);Q(_0x25ee4e,this['_document']['version']),Q(_0x4a3ae4,_0x156ca6);for(const _0x3721d7 of _0x25ee4e){const _0x4d68b1=_0x48fb57['get'](_0x3721d7);_0x3721d7['_authorId']=_0x4d68b1?_0x4d68b1['_authorId']:null;}_0x1c98bf&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x410bd1,_0x1c98bf),this['_lastSyncedOperationId']=_0x1c98bf),this['_bufferedOperations']=[..._0x4a3ae4],this['_applyOperationsSet'](_0x25ee4e),this['_updateServerHistory'](_0x410bd1);}catch(_0x29430d){return console['error'](_0x29430d),!0x1;}return!0x0;}['_applyOperationsSet'](_0x1eeaae,_0x42606a=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0xe9747c=>{for(const _0x4e5586 of _0x1eeaae)this['_knownOperations']['add'](_0x4e5586),this['_addKnownRoot'](_0x4e5586),_0xe9747c['batch']['addOperation'](_0x4e5586),this['editor']['model']['applyOperation'](_0x4e5586);});}['_addKnownRoot'](_0x12c0f7){const _0x3cf79a=this['_getAffectedRoot'](_0x12c0f7);_0x3cf79a&&this['_knownRootNames']['add'](_0x3cf79a);}['_getAffectedRoot'](_0x3afb14){let _0x39358b,_0x1cd205;switch(_0x3afb14['type']){case'insert':_0x39358b=_0x3afb14['position']['root'];break;case'marker':if(_0x1cd205=_0x3afb14['newRange'],!_0x1cd205)return null;_0x39358b=_0x1cd205['root'];break;case'addRootAttribute':_0x39358b=_0x3afb14['root'];break;case'addRoot':_0x39358b=_0x3afb14['affectedSelectable'];break;case'move':_0x39358b=_0x3afb14['targetPosition']['root'];break;default:return null;}return _0x39358b['rootName'];}['_updateServerHistory'](_0x1b6c74){_0x1b6c74['forEach'](_0xd20ecb=>{const _0x111a1a=_0xd20ecb['clone']();_0x111a1a['_authorId']=_0xd20ecb['_authorId'],_0x111a1a['_isInit']=!!_0xd20ecb['_isInit'],_0x111a1a['createdAt']=_0xd20ecb['createdAt'],_0x111a1a['baseVersion']+=this['_offset'],_0xd20ecb['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x111a1a),this['serverHistory']['addOperation'](_0x111a1a);});}['_handleReconnectionError'](_0x39b0f5){const _0x498481=this['editor']['plugins']['get']('Notification'),_0x3f4cfc=this['editor']['locale'];_0x39b0f5||(_0x39b0f5=K(_0x3f4cfc,'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.')),_0x498481['showWarning'](_0x39b0f5,{'title':K(_0x3f4cfc,'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'](_0x102644)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x102644)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x45262f){const _0x2ea0cf=_0x45262f['map'](_0x5056eb=>_0x5056eb['toJSON']());return this['_compressor']['compress'](_0x2ea0cf);}['_decompressOperations'](_0x2d83c6,_0x1a9ab){return this['_compressor']['decompress'](_0x2d83c6)['map']((_0x2607b5,_0x1468db)=>{const _0x3bd39f='init'==_0x1a9ab[_0x1468db]['type'];if('InsertOperation'==_0x2607b5['__className']){const _0x2a2997=_0x2607b5['position']['root'];!this['_document']['getRoot'](_0x2a2997)&&(this['_document']['createRoot']('$unknown',_0x2a2997)['_isAttached']=!0x1);}else{if('RootOperation'==_0x2607b5['__className']){const _0x1c65ed=this['_document']['getRoot'](_0x2607b5['rootName']);_0x1c65ed&&'$unknown'==_0x1c65ed['name']&&_0x2607b5['elementName']!=_0x1c65ed['name']&&(_0x1c65ed['name']=_0x2607b5['elementName']);}}const _0x5ee8ce=_0x4ad0ad['fromJSON'](_0x2607b5,this['_document']);return _0x5ee8ce['wasUndone']=_0x2607b5['wasUndone'],_0x5ee8ce['_isInit']=_0x3bd39f,_0x5ee8ce['_authorId']=_0x3bd39f?null:_0x1a9ab[_0x1468db]['userId'],_0x5ee8ce['_isDisconnection']='cs:removeUser'===_0x1a9ab[_0x1468db]['type'],_0x5ee8ce['createdAt']=_0x1a9ab[_0x1468db]['createdAt'],_0x5ee8ce;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x19430e=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x19430e&&_0x19430e['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x54515e,_0x40dd0){for(const _0x363953 of _0x54515e)_0x363953['baseVersion']=_0x40dd0++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x519ae3){this['_ignoredOperations']=_0x519ae3,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x70d2a){let _0x3f65db=_0x70d2a['length'];for(;_0x3f65db--;){const _0xe1c966=_0x70d2a[_0x3f65db];if(!this['_ignoredOperations']['has'](_0xe1c966)){if(!this['_operationToId']['has'](_0xe1c966)){const _0x2420a4=_0x46f444()['slice'](0x1,0x12);this['_operationToId']['set'](_0xe1c966,_0x2420a4);}return this['_operationToId']['get'](_0xe1c966);}}}['setIdForTheLastOperation'](_0x25c1cb,_0x2e1a2e){if(!_0x2e1a2e)return;let _0x466626=_0x25c1cb['length'];for(;_0x466626--;){const _0x54255e=_0x25c1cb[_0x466626];this['_ignoredOperations']['has'](_0x54255e)||this['_operationToId']['set'](_0x54255e,_0x2e1a2e);}}}class RealTimeCollaborativeEditing extends _0x3399ad{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0xb2e98b{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
- ((()=>_0x5ac7b7)());['_services'];static get['requires'](){return[WebSocketGateway,_0x1503c2,Sessions,_0x110378];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1ebd27){super(_0x1ebd27),this['_services']=new Map();}async['init'](){const _0x491a5c=this['context'],_0x330004=_0x491a5c['plugins']['get'](_0x1503c2);if(_0x491a5c['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x330004['adapter']={'addCommentThread':async({channelId:_0x27a8ba,threadId:_0x24342f,comments:_0x13dea6,resolvedAt:_0xbf1743,resolvedBy:_0x9bf90a,context:_0x53511e,attributes:_0xf7aa51})=>{const _0x2e518b=await this['_getService'](_0x27a8ba)['addCommentThread']({'commentThreadId':_0x24342f,'comments':_0x13dea6['map'](_0x10af75=>function(_0x2d034c,_0x116ac7,_0x5bec3a){return{'commentThreadId':_0x5bec3a,'commentId':_0x2d034c['commentId'],'userId':_0x2d034c['authorId'],'content':_0x2d034c['content'],'documentId':_0x116ac7,'createdAt':_0x2d034c['createdAt'],'attributes':_0x2d034c['attributes']||{}};}(_0x10af75,_0x27a8ba,_0x24342f)),'resolvedAt':_0xbf1743,'resolvedBy':_0x9bf90a,'context':_0x53511e,'attributes':_0xf7aa51})['catch'](Z);return{'threadId':_0x2e518b['commentThreadId'],'comments':_0x2e518b['comments']};},'getCommentThread':async({channelId:_0x257f39,threadId:_0x5dee1a})=>{const _0x34a68e=await this['_getService'](_0x257f39)['getCommentThread'](_0x5dee1a)['catch'](X)['catch'](Z);return _0x34a68e?_0x34a68e['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x34a68e]),{'threadId':_0x34a68e['commentThreadId'],'comments':_0x34a68e['comments']['map'](tt),'context':_0x34a68e['context'],'resolvedAt':_0x34a68e['resolvedAt'],'resolvedBy':_0x34a68e['resolvedBy'],'attributes':_0x34a68e['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x3b0974,threadId:_0x317ca1,context:_0x258abc,unlinkedAt:_0x2b509c,attributes:_0xfb9e5f})=>this['_getService'](_0x3b0974)['updateCommentThread']({'commentThreadId':_0x317ca1,'context':_0x258abc,'attributes':_0xfb9e5f,'unlinkedAt':_0x2b509c})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x10f28e,threadId:_0x13a2e0})=>{const _0x16d7a7=await this['_getService'](_0x10f28e)['resolveCommentThread'](_0x13a2e0)['catch'](X)['catch'](Z);return{'threadId':_0x16d7a7['commentThreadId'],'resolvedAt':_0x16d7a7['resolvedAt'],'resolvedBy':_0x16d7a7['resolvedBy']};},'reopenCommentThread':async({channelId:_0x39e879,threadId:_0x589f21})=>this['_getService'](_0x39e879)['reopenCommentThread'](_0x589f21)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x3eb9b3,threadId:_0x92114a})=>this['_getService'](_0x3eb9b3)['removeCommentThread'](_0x92114a)['catch'](X)['catch'](Z),'addComment':({channelId:_0x4129b4,threadId:_0x5d83a7,commentId:_0x203485,content:_0x74f247,attributes:_0x53eecb})=>this['_getService'](_0x4129b4)['addComment'](_0x5d83a7,_0x203485,_0x74f247,_0x53eecb)['catch'](Z),'updateComment':({channelId:_0x15f75e,threadId:_0x5aa583,commentId:_0x30106f,content:_0x21bf37,attributes:_0x45a60f})=>this['_getService'](_0x15f75e)['updateComment'](_0x5aa583,_0x30106f,_0x21bf37,_0x45a60f)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x92952b,threadId:_0x23ca42,commentId:_0x10112e})=>this['_getService'](_0x92952b)['removeComment'](_0x23ca42,_0x10112e)['catch'](X)['catch'](Z)},_0x491a5c instanceof _0x250b69){const _0x52f144=_0x491a5c['config']['get']('collaboration.channelId'),_0x103aa5=_0x491a5c['plugins']['get'](Sessions);await this['_setUpService'](_0x52f144);const _0x3867b1=await this['_services']['get'](_0x52f144)['getConnectedSessions']();this['listenTo'](_0x103aa5,'sessionAdd:'+_0x52f144,(_0x332ad3,{session:_0x585c98})=>{_0x585c98['id']===_0x103aa5['mySessionId']&&(_0x332ad3['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x585c98['permissions'],_0x52f144));}),_0x103aa5['register'](_0x52f144,_0x3867b1);}}async['_setUpService'](_0x5b80a9){if(this['_services']['has'](_0x5b80a9))throw new _0x1cc85d('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x5b80a9});const _0x6da2f5=this['context']['plugins']['get'](_0x1503c2),_0x40317e=new CloudServicesCommentsAdapter['CommentsService'](_0x5b80a9);this['_services']['set'](_0x5b80a9,_0x40317e),this['listenTo'](_0x40317e,'commentThreadAdded',(_0x403ae2,_0x3e5c20)=>{const {commentThreadId:_0x1cef10,documentId:_0x58bbfd,context:_0x41e256,attributes:_0x56dd29,resolvedAt:_0x175e6e,resolvedBy:_0x1da106,comments:_0x52c767}=_0x3e5c20;_0x6da2f5['getCommentThread'](_0x1cef10)||_0x6da2f5['addCommentThread']({'threadId':_0x1cef10,'channelId':_0x58bbfd,'comments':_0x52c767?_0x52c767['map'](tt):[],'context':_0x41e256,'attributes':_0x56dd29,'resolvedAt':_0x175e6e,'resolvedBy':_0x1da106,'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentThreadUpdated',(_0x31cb78,{commentThreadId:_0x13d11f,documentId:_0x4f5efa,context:_0x120f34,unlinkedAt:_0x227a95,attributes:_0x39ac4b})=>{_0x6da2f5['getCommentThread'](_0x13d11f)&&_0x6da2f5['updateCommentThread']({'threadId':_0x13d11f,'channelId':_0x4f5efa,'context':_0x120f34,'unlinkedAt':_0x227a95,'attributes':_0x39ac4b,'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentThreadResolved',(_0x2bc422,{commentThreadId:_0xf6d6eb,resolvedBy:_0x3ea407,resolvedAt:_0x3550e3})=>{const _0x34ea97=_0x6da2f5['getCommentThread'](_0xf6d6eb);_0x34ea97&&_0x34ea97['resolve']({'resolvedBy':_0x3ea407,'resolvedAt':_0x3550e3,'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentThreadReopened',(_0x4e9df5,{commentThreadId:_0xf7b6b1})=>{const _0x49c2ba=_0x6da2f5['getCommentThread'](_0xf7b6b1);_0x49c2ba&&_0x49c2ba['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentThreadRemoved',(_0x40846e,{commentThreadId:_0x2618a2})=>{const _0x1f6f6a=_0x6da2f5['getCommentThread'](_0x2618a2);_0x1f6f6a&&_0x1f6f6a['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentAdded',(_0x5334fa,_0x492960)=>{const _0x10d22e=_0x492960['commentThreadId'],_0x2b14f7=_0x6da2f5['getCommentThread'](_0x10d22e);_0x2b14f7&&_0x2b14f7['addComment']({...tt(_0x492960),'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentUpdated',(_0x1c26b6,{commentThreadId:_0x33a550,commentId:_0x4b2839,content:_0x1df4e1,attributes:_0x2f71be})=>{const _0x472718=_0x6da2f5['getCommentThread'](_0x33a550);if(_0x472718){const _0x58d894=_0x472718['getComment'](_0x4b2839);_0x58d894&&_0x58d894['update']({'content':_0x1df4e1,'attributes':_0x2f71be,'isFromAdapter':!0x0});}}),this['listenTo'](_0x40317e,'commentRemoved',(_0x2e9f8e,{commentThreadId:_0x5b6407,commentId:_0x28d44d})=>{const _0x31199e=_0x6da2f5['getCommentThread'](_0x5b6407);if(_0x31199e){const _0x41cbbd=_0x31199e['getComment'](_0x28d44d);_0x41cbbd&&_0x41cbbd['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x5b80a9);}['destroy'](){if(this['context']instanceof _0x250b69){const _0x2a3a6a=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x2a3a6a);}}['_terminateService'](_0x720d57){if(!this['_services']['has'](_0x720d57))throw new _0x1cc85d('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x720d57});this['_getService'](_0x720d57)['disconnect'](),this['_services']['delete'](_0x720d57);}async['reconnect'](){for(const _0x3a5cf3 of this['_services']['keys']())await this['_connectService'](_0x3a5cf3);if(this['context']instanceof _0x250b69){const _0x5a875f=this['context']['config']['get']('collaboration.channelId'),_0x266a8b=this['context']['plugins']['get'](Sessions);_0x266a8b['unregister'](_0x5a875f);const _0xb2a348=await this['_services']['get'](_0x5a875f)['getConnectedSessions']();_0x266a8b['register'](_0x5a875f,_0xb2a348);}}async['_connectService'](_0x46c527){const {connection:_0x3987bd}=this['context']['plugins']['get'](WebSocketGateway),_0x2af1b2=this['context']['plugins']['get'](_0x1503c2),_0x57b450=this['_services']['get'](_0x46c527),_0x5d41f2=await _0x57b450['connect'](_0x3987bd);await this['_fetchMissingUsersForThreads'](_0x5d41f2);const _0x3cbd17=new Set(Array['from'](_0x2af1b2['getCommentThreads']({'channelId':_0x46c527}),_0x2cde58=>_0x2cde58['id']));for(const _0x3b6c63 of _0x5d41f2)_0x3b6c63['deletedAt']||_0x3cbd17['delete'](_0x3b6c63['commentThreadId']);for(const _0x230cf8 of _0x3cbd17)_0x2af1b2['getCommentThread'](_0x230cf8)['remove']({'isFromAdapter':!0x0});for(const _0x3508bd of _0x5d41f2){let _0x6675f4=_0x2af1b2['getCommentThread'](_0x3508bd['commentThreadId']);const {commentThreadId:_0x5b1513,context:_0x44d972,attributes:_0x24bb4c,resolvedBy:_0x44f474,resolvedAt:_0x151bf2,unlinkedAt:_0x36a61b,deletedAt:_0x188991}=_0x3508bd;if(_0x188991)continue;_0x6675f4||(_0x6675f4=_0x2af1b2['addCommentThread']({'channelId':_0x46c527,'threadId':_0x5b1513,'context':_0x44d972,'attributes':_0x24bb4c||{},'resolvedBy':_0x44f474,'resolvedAt':_0x151bf2,'unlinkedAt':_0x36a61b,'isFromAdapter':!0x0}));const _0x1c85e8=new Set(Array['from'](_0x6675f4['comments'],_0x175b37=>_0x175b37['id']));for(const _0x199e86 of _0x3508bd['comments'])_0x1c85e8['delete'](_0x199e86['commentId']);for(const _0x29fef9 of _0x1c85e8)_0x6675f4['getComment'](_0x29fef9)['remove']({'isFromAdapter':!0x0});for(const _0x7897cc of _0x3508bd['comments']){const _0x366d93=_0x6675f4['getComment'](_0x7897cc['commentId']);_0x366d93?_0x366d93['content']!==_0x7897cc['content']&&_0x366d93['update']({'content':_0x7897cc['content'],'isFromAdapter':!0x0}):_0x6675f4['addComment'](Object['assign'](tt(_0x7897cc),{'isFromAdapter':!0x0}));}}}['_getService'](_0x4fc74b){if(!this['_services']['has'](_0x4fc74b))throw new _0x1cc85d('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x4fc74b});return this['_services']['get'](_0x4fc74b);}async['_fetchMissingUsersForThreads'](_0x358ec2){const _0x7de811=this['context']['plugins']['get'](_0x110378),{connection:_0x59d923}=this['context']['plugins']['get'](WebSocketGateway),_0xebe65=new Set();for(const {resolvedBy:_0x19415e,comments:_0x29cfb2}of _0x358ec2){_0x19415e&&!_0x7de811['getUser'](_0x19415e)&&_0xebe65['add'](_0x19415e);for(const {userId:_0x5d8030}of _0x29cfb2)_0x7de811['getUser'](_0x5d8030)||_0xebe65['add'](_0x5d8030);}if(0x0===_0xebe65['size'])return;const _0x1738bd=await _0xeb9635['getMany'](_0x59d923,Array['from'](_0xebe65));for(const _0xa369a6 of _0x1738bd)_0x7de811['getUser'](_0xa369a6['id'])||_0x7de811['addUser'](_0xa369a6);}}async function X(_0x186cd3){if('404'!==_0x186cd3['code'])throw _0x186cd3;}function Z(_0x14aa49){if((_0x54e731=_0x14aa49)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x54e731['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x54e731['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x54e731;throw _0x14aa49;}function tt(_0x29c4d2){return{'threadId':_0x29c4d2['commentThreadId'],'commentId':_0x29c4d2['commentId'],'content':_0x29c4d2['content'],'createdAt':_0x29c4d2['createdAt'],'authorId':_0x29c4d2['userId'],'attributes':_0x29c4d2['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x3399ad{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
- ((()=>_0x2a5b56)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x38cfce,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x12857c){super(_0x12857c);const _0x3be58a=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x3be58a);}['init'](){const _0x6164ee=this['editor']['plugins']['get'](WebSocketGateway),_0x14b0f4=this['editor']['plugins']['get'](_0x38cfce);return _0x14b0f4['adapter']={'getSuggestion':async _0x896485=>{await this['_waitForServiceReady']();const _0x22bab8=await this['_trackChangesService']['get'](_0x896485)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x22bab8]),_0x22bab8;},'addSuggestion':async({id:_0x2cb37c,type:_0x5e3231,data:_0x48b94f,originalSuggestionId:_0x27fd98,attributes:_0xcf2618})=>{await this['_waitForServiceReady']();const _0x432fdc={'id':_0x2cb37c,'type':_0x5e3231,'data':_0x48b94f,'originalSuggestionId':_0x27fd98,'attributes':_0xcf2618},_0x4f9431=await this['_trackChangesService']['add'](_0x2cb37c,_0x5e3231,_0x48b94f,_0x27fd98,_0xcf2618)['catch'](_0x305419=>{if(st(_0x305419))return new Promise(_0x145296=>{this['_bufferedRequests']['set'](_0x2cb37c,{'resolve':_0x145296,'suggestionData':_0x432fdc});});throw _0x305419;});return this['_bufferedRequests']['delete'](_0x2cb37c),_0x4f9431;},'updateSuggestion':async(_0x500d91,_0x1f6006)=>{if(await this['_waitForServiceReady'](),'open'!==_0x1f6006['state'])return this['_trackChangesService']['update'](_0x500d91,_0x1f6006)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x466b90,_0x453ba5)=>{_0x14b0f4['hasSuggestion'](_0x453ba5['id'])&&(_0x14b0f4['getSuggestion'](_0x453ba5['id'])['attributes']=_0x453ba5['attributes']);}),this['_trackChangesService']['connect'](_0x6164ee['connection'])['then'](_0x5cbd4c=>(_0x6164ee['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x5cbd4c)['then'](()=>{for(const _0x4e25ec of _0x5cbd4c){_0x14b0f4['addSuggestionData'](_0x4e25ec)['_saved']=!0x0;}})));}async['reconnect'](){const _0x1c72aa=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x3e6b73}=this['editor']['plugins']['get'](WebSocketGateway),_0x26021b=await this['_trackChangesService']['connect'](_0x3e6b73);await this['_fetchMissingUsersForThreads'](_0x26021b);for(const {suggestionData:_0x163de4,resolve:_0xe9b003}of this['_bufferedRequests']['values']()){let _0x14a006=_0x26021b['find'](_0x1b3610=>_0x1b3610['id']===_0x163de4['id']);_0x14a006||(_0x14a006=await this['_trackChangesService']['add'](_0x163de4['id'],_0x163de4['type'],_0x163de4['data'],_0x163de4['originalSuggestionId'])),_0xe9b003(_0x14a006);}for(const _0xd60ee1 of _0x26021b)_0x1c72aa['hasSuggestion'](_0xd60ee1['id'])||_0x1c72aa['addSuggestionData'](_0xd60ee1);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x5856fc=>{this['listenTo'](this['_trackChangesService'],'connected',_0x369b82=>{_0x369b82['off'](),_0x5856fc();});});}async['_fetchMissingUsersForThreads'](_0x35018a){const _0x5289d8=this['editor']['plugins']['get'](_0x110378),{connection:_0x4fa2ff}=this['editor']['plugins']['get'](WebSocketGateway),_0x49616d=new Set();for(const {authorId:_0x4339b7}of _0x35018a)_0x5289d8['getUser'](_0x4339b7)||_0x49616d['add'](_0x4339b7);if(0x0===_0x49616d['size'])return;const _0x3f8108=await _0xeb9635['getMany'](_0x4fa2ff,Array['from'](_0x49616d));for(const _0x1e464c of _0x3f8108)_0x5289d8['getUser'](_0x1e464c['id'])||_0x5289d8['addUser'](_0x1e464c);}}function et(_0x26b8d6){if(st(_0x26b8d6))return new Promise(()=>{});throw _0x26b8d6;}function st(_0x1340a7){return _0x1340a7['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x1340a7['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x3399ad{static get['requires'](){return[_0x1c96ee,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x36bafc=this['editor']['plugins']['get'](WebSocketGateway),_0x1f6f17=this['editor']['plugins']['get'](_0x181b81),_0x5ee55c=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x36bafc,'change:state',(_0x65496f,_0x573643,_0x278555)=>{_0x1f6f17['isThreadsLoadingPaused']='connected'!==_0x278555;});}),this['listenTo'](_0x36bafc,'change:state',(_0x2d69e1,_0xa79b1f,_0x3c7fc4)=>{this['editor']['plugins']['get'](_0x1503c2)['switchReadOnly']('connected'!==_0x3c7fc4);}),_0x5ee55c['_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 _0x3399ad{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x4946b3];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x3399ad{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
- ((()=>_0x38ed0c)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x3bca10,Sessions,_0x110378];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x27bb33){super(_0x27bb33);const _0x42c18e=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x42c18e);}async['init'](){const _0x4550a3=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x5f11dd=_0x4550a3['serverHistory'],_0x543a45=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x5f11dd,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x4550a3['sessionId']});const _0x574fa3=this['editor']['config']['get']('cloudServices.bundleVersion')||_0xb80067,_0x4ce535=await _0x12985e['isBundleUploaded'](_0x543a45['connection'],_0x574fa3);this['editor']['plugins']['get'](_0x3bca10)['adapter']={'getRevision':async({revisionId:_0x44ac9c})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x44ac9c)),'updateRevisions':async _0xaaef7c=>{await this['_waitForServiceReady']();const _0x3f66e5=this['_revisionTracker']['currentRevision'];if(_0x4ce535&&0x1===_0xaaef7c['length']&&_0xaaef7c[0x0]['id']===_0x3f66e5['id'])return _0xaaef7c;for(const _0x16d6e8 of _0xaaef7c)_0x16d6e8['id']===_0x3f66e5['id']&&(_0x16d6e8['isEmptyCurrent']=_0x16d6e8['fromVersion']===_0x16d6e8['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0xaaef7c,this['_lastRequestId'])['then'](_0x5c6b40=>(this['_lastRequestId']=_0x5c6b40,_0xaaef7c))['catch'](_0x37903f=>{if(it(_0x37903f)||'400'===_0x37903f['code']&&void 0x0!==_0x37903f['data']['wrongRequestId']){for(const _0x2dbcd7 of _0xaaef7c){!this['_revisionTracker']['repository']['getRevision'](_0x2dbcd7['id'])||this['_revisionTracker']['_bufferUpdate'](_0x2dbcd7['id'],_0x2dbcd7,!0x1);}if(it(_0x37903f)&&'destroyed'!==this['editor']['state'])throw _0x37903f;return _0xaaef7c;}throw _0x37903f;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x51e9b9,{revisionsData:_0x239302,requestId:_0x36f26a})=>{Math['max'](..._0x239302['map'](_0x15c0ce=>_0x15c0ce['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x239302,_0x36f26a);}):this['_handleRevisionsUpdate'](_0x239302,_0x36f26a);});const {revisions:_0x4630b4,requestId:_0x349f48}=await this['_revisionHistoryService']['connect'](_0x543a45['connection']);_0x543a45['addToReconnectionStack'](this),this['_lastRequestId']=_0x349f48,await this['_fetchMissingUsers'](_0x4630b4);for(const _0x262926 of _0x4630b4)this['_revisionTracker']['addRevisionData'](_0x262926);this['listenTo'](_0x4550a3,'change:_isConnected',(_0x4734b6,_0xa3d50c,_0x1dbe69)=>{_0x1dbe69&&(this['_oldOffset']=_0x4550a3['_offset'],_0x4734b6['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x543a45,'state',_0x40cf07=>_0x40cf07===_0x3a74ac['CONNECTED']);}async['reconnect'](){const _0xd13a5d=this['editor']['plugins']['get'](WebSocketGateway),_0x36770b=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x2c6524=async()=>{const _0x3185d1=this['_revisionTracker']['currentRevision'],_0x4852c0=_0x3185d1['id'],_0x3fc571=_0x4852c0!==_0x36770b['sessionId'];if(_0x3fc571){const _0x5c0f88=_0x36770b['_offset']-this['_oldOffset'],_0x5cade6=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x3185d1['toVersion']+_0x5c0f88!==_0x5cade6){const _0x1d267d=_0x3185d1['fromVersion']+_0x5c0f88,_0x561864=this['editor']['plugins']['get'](_0x110378),_0x12ff4d=this['_revisionTracker']['buildRevisionData']({'revision':_0x3185d1,'from':_0x1d267d,'to':_0x5cade6});_0x12ff4d['id']=_0x3185d1['id'];const _0x2f50dd=_0x12ff4d['authorsIds']['map'](_0x28c602=>_0x561864['getUser'](_0x28c602));_0x3185d1['_update']({..._0x12ff4d,'authors':_0x2f50dd},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x3185d1['id'],_0x12ff4d,!0x0);}this['_revisionTracker']['_startingVersion']=_0x5cade6,(_0x3185d1['toVersion']===_0x3185d1['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x4852c0)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x4852c0),this['_revisionTracker']['_createCurrentRevision'](_0x5cade6));}const {revisions:_0x2c8371,requestId:_0x41db18}=await this['_revisionHistoryService']['reconnect'](_0xd13a5d['connection'],this['_lastRequestId']);_0x3fc571&&_0x2c8371['length']>0x0?_0x36770b['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x2c8371),this['_handleRevisionsUpdate'](_0x2c8371,_0x41db18),this['_revisionTracker']['sendBufferedUpdates']());};return _0x36770b['_isConnected']?_0x2c6524():new Promise((_0x36321f,_0x424371)=>{_0x36770b['once']('change:_isConnected',()=>{_0x2c6524()['then'](_0x36321f)['catch'](_0x424371);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x387712=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x95259b=>{_0x95259b['off'](),_0x387712();});});}['_getLatestVersionFromServerOperations'](){const _0x1f16a3=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x1303c5 of _0x1f16a3)if('marker'!==_0x1303c5['type']||_0x1303c5['affectsData'])return _0x1303c5['baseVersion']+0x1;}['_getLatestVersion'](){const _0x211120=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x315632=>{_0x211120['_isPendingUpdate']?_0x211120['once']('change:_isPendingUpdate',()=>{_0x315632(this['_getLatestVersionFromServerOperations']());}):_0x315632(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0xe24f26,_0x226189){const _0x3c2abe=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x226189;for(const _0x54743b of _0xe24f26){const _0x581d80=_0x3c2abe['getRevision'](_0x54743b['id']);if(_0x581d80){if((_0x54743b['fromVersion']||_0x54743b['toVersion'])&&(_0x54743b['diffData']=null),_0x581d80===this['_revisionTracker']['currentRevision']){const _0x44f342=Math['max'](_0x581d80['toVersion'],_0x54743b['toVersion']),_0x4f79f4=Math['max'](_0x581d80['fromVersion'],_0x54743b['fromVersion']);let _0x4a200e;_0x581d80['toVersion']===_0x54743b['toVersion']&&_0x581d80['fromVersion']===_0x54743b['fromVersion']?(_0x4a200e=!0x0,this['_preventResendingRevisionData'](_0x54743b)):_0x54743b['toVersion']===_0x44f342&&_0x54743b['fromVersion']===_0x4f79f4?_0x4a200e=!0x1:(_0x581d80['toVersion']===_0x44f342&&_0x581d80['fromVersion']===_0x4f79f4||this['_fixRevision']({'revision':_0x581d80,'from':_0x4f79f4,'to':_0x44f342}),_0x4a200e=!0x0),_0x4a200e&&(delete _0x54743b['fromVersion'],delete _0x54743b['toVersion'],delete _0x54743b['diffData'],delete _0x54743b['createdAt'],delete _0x54743b['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x54743b),this['_preventResendingRevisionData'](_0x54743b);}else this['_revisionTracker']['addRevisionData'](_0x54743b);}const _0xc772b2=_0x3c2abe['getRevisions']();_0xc772b2['reverse']();for(let _0x55e2e4=0x0;_0x55e2e4<_0xc772b2['length']-0x1;_0x55e2e4++){const _0x204641=_0xc772b2[_0x55e2e4],_0x4a9cc5=_0xc772b2[_0x55e2e4+0x1];if(_0x204641['fromVersion']<_0x4a9cc5['toVersion']){const _0x4b6cf0=_0x4a9cc5['toVersion'],_0xd458b9=Math['max'](_0x4b6cf0,_0x204641['toVersion']);this['_fixRevision']({'revision':_0x204641,'from':_0x4b6cf0,'to':_0xd458b9});}}}['_fixRevision']({revision:_0x24cc21,from:_0x2ce66f,to:_0x5195e2}={}){const _0x10a840=this['editor']['plugins']['get'](_0x110378),_0x1e40f7=this['_revisionTracker']['buildRevisionData']({'revision':_0x24cc21,'from':_0x2ce66f,'to':_0x5195e2});_0x1e40f7['authors']=_0x1e40f7['authorsIds']['map'](_0x2afe5a=>_0x10a840['getUser'](_0x2afe5a)),_0x24cc21['_update'](_0x1e40f7);}['_preventResendingRevisionData'](_0x2e953c){const _0x13ac8a={};_0x13ac8a['id']=_0x2e953c['id'];for(const _0x5a73f0 of Object['keys'](_0x2e953c))'id'!==_0x5a73f0&&(_0x13ac8a[_0x5a73f0]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x13ac8a['id'],_0x13ac8a,!0x0);}async['_fetchMissingUsers'](_0x4a5a0e){const _0x4dda68=this['editor']['plugins']['get'](_0x110378),{connection:_0x5a7237}=this['editor']['plugins']['get'](WebSocketGateway),_0x1e003f=new Set();for(const _0x31a19b of _0x4a5a0e){for(const _0x5de093 of _0x31a19b['authorsIds'])_0x39284b(_0x5de093);_0x31a19b['creatorId']&&_0x39284b(_0x31a19b['creatorId']);}if(0x0===_0x1e003f['size'])return;const _0x407880=await _0xeb9635['getMany'](_0x5a7237,Array['from'](_0x1e003f));for(const _0xebdd1e of _0x407880)_0x4dda68['getUser'](_0xebdd1e['id'])||_0x4dda68['addUser'](_0xebdd1e);function _0x39284b(_0x314526){_0x4dda68['getUser'](_0x314526)||_0x1e003f['add'](_0x314526);}}}function it(_0x5e9974){return _0x5e9974['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x5e9974['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x5e9974['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x3399ad{static get['requires'](){return[_0x3bca10,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x461b17{['_collapseAt'];constructor(_0x228a43,_0x429c19=0x6){super(_0x228a43);const _0x4e8d40=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x429c19,this['bind']('isHidden')['to'](this,'usersCount',_0x2d8243=>_0x2d8243<_0x429c19),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x4e8d40['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':_0x4e8d40['to']('usersCount',_0x4a2701=>'+'+(_0x4a2701-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x461b17{['items'];['keystrokes'];constructor(_0x5107c3){super(_0x5107c3);const _0x1ce2f=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x260cbc(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x1ce2f['if']('hasPopup'),'aria-expanded':_0x1ce2f['to']('isExpanded',_0x1db3c4=>this['hasPopup']&&String(_0x1db3c4)),'aria-label':_0x1ce2f['to']('hasPopup',_0x294dd2=>K(_0x5107c3,_0x294dd2?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x1ce2f['to']('hasPopup',_0x216557=>!!_0x216557&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x1ce2f['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x1ce2f['to'](_0x4e6a4f=>{const _0x16e391=_0x4e6a4f,_0x3c5bf3=document['querySelector']('.ck-presence-list__dropdown-list'),_0x557546=document['querySelector']('.ck-balloon-panel_with-arrow');_0x3c5bf3?.['contains'](_0x16e391['relatedTarget'])||_0x557546?.['contains'](_0x16e391['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x396f30,_0xb01d96,_0x22d76f)=>{this['element']&&(_0x22d76f?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 _0x461b17{['counterView'];['inlineListView'];constructor(_0x35301c,_0x1f8119=0x6){super(_0x35301c);const _0x1a2901=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x1f8119),this['inlineListView']=new PresenceInlineListView(_0x35301c),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x3b90b5 of this['inlineListView']['items'])_0x3b90b5['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',_0x1a2901['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x461b17{['listWrapperView'];constructor(_0x16de08,_0x4def5e){super(_0x16de08);const _0xc28230=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x16de08,_0x4def5e),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x16de08,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0xc28230['to'](_0x210356=>{const _0x4c41aa=_0x210356,_0x9cb05f=document['querySelector']('.ck-presence-list__list'),_0x4dd9d1=document['querySelector']('.ck-balloon-panel_with-arrow');_0x9cb05f?.['contains'](_0x4c41aa['relatedTarget'])||_0x4dd9d1?.['contains'](_0x4c41aa['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x178ec2{constructor(_0x68a2b7,_0x2aa58e){super(_0x68a2b7);const _0xf86cdd=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x2aa58e?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0xf86cdd['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0xf86cdd['to']('role'),'aria-label':_0xf86cdd['to']('ariaLabel'),'aria-labelledby':_0xf86cdd['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x22ef6c['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x6676d5=this['element'];_0x6676d5&&(this['_isScrollable']=Math['max'](_0x6676d5['scrollHeight'],_0x6676d5['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x373600{['userView'];constructor(_0x45d99c,_0x11ddba,_0x1c1fdf){super(_0x45d99c);const _0x5319f0=this['bindTemplate'];this['userView']=new _0x3115e5(_0x45d99c,_0x11ddba);const _0x38b8a6={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x11ddba['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x11ddba['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x11ddba['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x11ddba['color']['getColorVariable'](),'--ck-user-color-alpha':_0x11ddba['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x1c1fdf&&(_0x38b8a6['tag']='button',_0x38b8a6['on']={'click':_0x5319f0['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x38b8a6);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x461b17{['userView'];['markerView'];constructor(_0x24afe5,_0x498134,_0x198fc1){super(_0x24afe5);const _0x503521=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x3115e5(_0x24afe5,_0x498134),this['markerView']=new MarkerView(_0x24afe5,_0x498134);const _0x24ef58=new _0x4d304a(_0x24afe5);_0x24ef58['template']['tag']='span',_0x24ef58['text']=_0x498134['name'];const _0x143cd5={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x503521['to']('isFocusable',_0x3e6718=>!!_0x3e6718&&0x0),'aria-labelledby':_0x24ef58['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x503521['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x503521['to']('hasTooltip',_0xa0916e=>!_0xa0916e),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x24ef58]};_0x198fc1&&(_0x143cd5['tag']='button',_0x143cd5['on']={'click':_0x503521['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x143cd5);}}class MarkerView extends _0x461b17{constructor(_0x258df9,_0x16de91){super(_0x258df9),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x16de91['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x16de91['color']['getColorVariable'](),'--ck-user-color-alpha':_0x16de91['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0xb2e98b{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x2b8159){super(_0x2b8159),this['context']['config']['define']('presenceList',nt);const _0x5aa5e1=_0x2b8159['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x5aa5e1)throw new _0x1cc85d('presencelist-collapseat-invalid-format',this);if(_0x5aa5e1<0x1)throw new _0x1cc85d('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x36c9b5(),this['balloonPanelView']=new _0x212c7c(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x44d116 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x44d116);this['listenTo'](this['_allConnectedUsers'],'add',(_0x80a2f8,_0x32408a)=>{this['_handleUserAdd'](_0x32408a);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x74f6a2,_0x2b9701)=>{this['_handleUserRemove'](_0x2b9701);});}['_createView'](){const _0x7db562=this['context'],_0xdb4899=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x35480d=this['balloonPanelView'];if(!_0x27aa18(_0x7db562['config']['get']('presenceList.container')))throw new _0x1cc85d('presencelist-missing-container',this);return _0xdb4899['counterView']['bind']('usersCount')['to'](this),_0xdb4899['bind']('isCollapsed')['to'](this,'usersCount',_0x15a710=>{const {collapseAt:_0x101359}=_0x7db562['config']['get']('presenceList'),_0x2bba28=_0x15a710>=_0x101359;if(_0x2bba28&&!_0xdb4899['inlineListView']['items']['find'](_0x3c98f7=>_0x3c98f7 instanceof PresenceCounterView)){const _0x1af164=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x1af164&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0xdb4899['inlineListView']['items']['add'](_0xdb4899['counterView']);}return _0x2bba28||this['hideDropdown'](),_0x2bba28;}),_0xdb4899['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0xf984cf=>{const _0x312707=_0x7db562['config']['get']('presenceList'),_0x2c7cf6=new PresenceInlineListItemView(_0x7db562['locale'],_0xf984cf,!!_0x312707['onClick']);return _0x2c7cf6['bind']('hasTooltip')['to'](_0xdb4899,'isCollapsed',_0x2a3638=>!_0x2a3638),_0x2c7cf6['bind']('isFocusable')['to'](_0xdb4899,'isCollapsed',_0x339f84=>!_0x339f84),_0x312707['onClick']&&this['listenTo'](_0x2c7cf6,'execute',()=>{this['view']['isCollapsed']||_0x312707['onClick'](_0xf984cf,_0x2c7cf6['element']);}),_0x2c7cf6;}),this['listenTo'](_0xdb4899['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0xdb4899['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0xdb4899['inlineListView']['keystrokes']['set']('Enter',(_0xb0f239,_0x38ee06)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x38ee06());}),_0xdb4899['render'](),_0x35480d['render'](),_0x171c4b({'emitter':_0xdb4899,'activator':()=>_0x35480d['isVisible'],'contextElements':[_0x35480d['element'],_0xdb4899['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x7db562['config']['get']('presenceList.container')['appendChild'](_0xdb4899['element']),this['_bodyCollection']=new _0x144898(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0xdb4899;}['_handleUserAdd'](_0xdaf316){if(!this['context']['config']['get']('presenceList.displayMe')&&_0xdaf316['isMe'])return;const _0x461836=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x461836-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x4d8179=_0xdaf316['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0xdaf316,_0x4d8179);}['_handleUserRemove'](_0x2d3414){this['usersCount']--;const {collapseAt:_0x4e845a}=this['context']['config']['get']('presenceList'),_0x58f4f8=this['usersCount']>=_0x4e845a;if(this['currentDisplayedUsers']['get'](_0x2d3414['id']))this['currentDisplayedUsers']['remove'](_0x2d3414['id']);else{if(_0x58f4f8&&this['currentDisplayedUsers']['length']+0x1===_0x4e845a-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x58f4f8?0x1:0x0)<this['usersCount']){for(const _0x8fded9 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x8fded9['id'])&&(this['currentDisplayedUsers']['add'](_0x8fded9,Math['min'](this['currentDisplayedUsers']['length']-(_0x58f4f8?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x58f4f8?0x1:0x0)===_0x4e845a-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x1edf46=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x1edf46['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x2930cb}=this['presenceDropdownView'];_0x2930cb['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x537718=>{if(!_0x1edf46['displayMe']&&_0x537718['isMe'])return null;const _0x53e3a4=new PresenceDropdownListItemView(this['context']['locale'],_0x537718,!!_0x1edf46['onClick']);return _0x1edf46['onClick']&&this['listenTo'](_0x53e3a4,'execute',()=>{_0x1edf46['onClick'](_0x537718,_0x53e3a4['element']);}),_0x53e3a4;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x2930cb['focus'](),_0x2930cb['checkIfScrollable']();const _0x4833df=(_0x58d755,_0x4bd21e)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x4bd21e();};_0x2930cb['keystrokes']['set']('Esc',_0x4833df),_0x2930cb['keystrokes']['set']('Shift+Tab',_0x4833df),_0x2930cb['keystrokes']['set']('Tab',(_0x136e46,_0x1b1730)=>{!function(_0x5d87ef){const _0x5edc46=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x5bcfea=>_0x5bcfea+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x30861d=[...document['body']['querySelectorAll'](_0x5edc46)]['filter'](_0x161481=>_0x161481===document['activeElement']||_0x161481['offsetWidth']+_0x161481['offsetHeight']>0x0)['sort']((_0x415fb3,_0x372f1a)=>(_0x415fb3['tabIndex']||0x0)-(_0x372f1a['tabIndex']||0x0)),_0x5a319c=_0x30861d['indexOf'](_0x5d87ef),_0xed236a=_0x30861d[(_0x5a319c+0x1)%_0x30861d['length']];_0xed236a&&_0xed236a['focus']();}(this['view']['element']),this['hideDropdown'](),_0x1b1730();}),_0x2930cb['focusTracker']['add'](this['view']['element']),_0x2930cb['focusTracker']['on']('change:isFocused',(_0x2a5a46,_0x31dfed,_0x5b4c9d)=>{_0x5b4c9d||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 _0xb2e98b{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};