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

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 _0x191ab4,Plugin as _0x523d5c,PendingActions as _0x8e714,Context as _0x82da95}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x80e1e9,CKEditorError as _0x44690c,Collection as _0xd26e88,global as _0x14a421,version as _0x146c5e,uid as _0x2e2a43,KeystrokeHandler as _0x4de09d}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x552a0d,View as _0x59157b,ListView as _0x3a285a,ListItemView as _0x245139,LabelView as _0x1c19b1,BalloonPanelView as _0x19c131,clickOutsideHandler as _0x52aaad,BodyCollection as _0x418f13}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0xee587a,History as _0x5bc90f,NoOperation as _0x2303ac,InsertOperation as _0x484853,MarkerOperation as _0x1fb70f,RootAttributeOperation as _0x3050ce,transformOperationSets as _0x2638b1,OperationFactory as _0x18bdd0}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x4caa52}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x3b949e,WEB_SOCKET_GATEWAY_STATES as _0xb53f3f,CollaborativeEditingService as _0xe673cf,User as _0x270274,CommentsService as _0x177deb,TrackChangesService as _0x26d7c6,RevisionHistoryService as _0x3b4c9e,EditorService as _0x5b3750}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0xbd9206,UserView as _0x1b8b54}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x7f9a95}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x1a1529,TrackChanges as _0x2d4889}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x55664d,Comments as _0x42ae2e,CommentsEditing as _0x121bef}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x510d56}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x54c657}from'es-toolkit/compat';class WebSocketGateway extends _0x191ab4{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
+ ((()=>_0x3b949e)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x4caa52,_0x552a0d];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x513899){super(_0x513899),this['set']('state',_0xb53f3f['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x80e1e9())();}['init'](){const _0x187e61=this['context'],_0x203ca3=_0x187e61['plugins']['get'](_0x4caa52),_0x19da8d=_0x187e61['plugins']['get'](_0x552a0d);if(!_0x203ca3['token'])throw new _0x44690c('websocketgateway-missing-token',this);if(!_0x203ca3['webSocketUrl'])throw new _0x44690c('websocketgateway-missing-websocket-url',this);return this['_domEmitter']['listenTo'](window,'offline',()=>this['_isBrowserOffline']=!0x0),this['_domEmitter']['listenTo'](window,'online',()=>this['_isBrowserOffline']=!0x1),this['context']['config']['define']('cloudServices.connectionTimeout',0xa),this['context']['config']['define']('cloudServices.requestTimeout',0x14),WebSocketGateway['WebSocketGateway']['connect'](_0x203ca3['token'],_0x203ca3['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x5e4304=>{if(this['connection']=_0x5e4304,this['bind']('state')['to'](_0x5e4304,'state',this,'_isBrowserOffline',(_0x38001b,_0x240d5c)=>('connected'!==_0x38001b&&(this['_shouldPluginsReconnect']=!0x0),_0x240d5c||_0x38001b!==_0xb53f3f['CONNECTED']?_0xb53f3f['DISCONNECTED']:this['state']==_0xb53f3f['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0xb53f3f['CONNECTING']):_0xb53f3f['CONNECTED'])),this['connection']['on']('error',(_0xa36fd,_0x127978)=>{if('limitExceeded'!==_0x127978['code'])throw console['error'](_0x127978),new _0x44690c('cloudservices-init',null,{'originalError':_0x127978});_0x19da8d['showWarning']('The\x20limit\x20of\x20maximum\x20concurrent\x20connections\x20that\x20the\x20collaboration\x20server\x20can\x20handle\x20has\x20been\x20reached.\x20Try\x20opening\x20the\x20document\x20again\x20in\x20a\x20few\x20minutes.\x20Please\x20contact\x20your\x20system\x20administrator\x20if\x20the\x20problem\x20persists.',{'title':'Connected\x20users\x20limit\x20exceeded','namespace':'real-time-collaboration'});}),!_0x5e4304['me'])return new Promise(_0x1100db=>_0x5e4304['on']('change:me',_0x1100db));})['catch'](_0x26c310=>{throw console['error'](_0x26c310),new _0x44690c('cloudservices-init',null,{'originalError':_0x26c310});});}['addToReconnectionStack'](_0x1d97f7){if('function'!=typeof _0x1d97f7['reconnect'])throw new _0x44690c('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x1d97f7))throw new _0x44690c('websocketgateway-plugin-already-registered',this,{'name':_0x1d97f7['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x1d97f7);}['removeFromReconnectionStack'](_0x4701f2){this['_reconnectionStack']['delete'](_0x4701f2);}['isInReconnectionStack'](_0x102ab8){return this['_reconnectionStack']['has'](_0x102ab8);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x3bf125=>_0x3bf125['reconnect']())))['then'](()=>this['state']=_0xb53f3f['CONNECTED'])['catch'](_0x19260e=>{throw console['error'](_0x19260e),new _0x44690c('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0xb53f3f['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x191ab4{['channelSessions'];['channelConnectedUsers'];['allConnectedUsers'];['_registeredSessions'];['_uniqueUsersCount'];['_users'];static get['pluginName'](){return'Sessions';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}static get['requires'](){return[WebSocketGateway,_0xbd9206];}constructor(_0x2df428){super(_0x2df428),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0xd26e88(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0xbd9206);}['init'](){const _0xb96130=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0xb96130,'change:state',(_0x54b028,_0x32894e,_0x4e3c7e)=>{if('connected'!==_0x4e3c7e)this['channelSessions']['forEach'](_0x166367=>_0x166367['clear']()),this['channelConnectedUsers']['forEach'](_0x522339=>_0x522339['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x23c085,_0x2f1d23]of this['_registeredSessions'])for(const _0x3ea320 of _0x2f1d23)this['_handleSessionAdd'](_0x23c085,_0x3ea320);}}),this['_createUser'](_0xb96130['connection']['me'],!0x0);}['register'](_0x2048e1,_0x415608){if(this['_registeredSessions']['has'](_0x2048e1))throw new _0x44690c('sessions-register-already-registered',null,{'channelId':_0x2048e1});this['_registeredSessions']['set'](_0x2048e1,_0x415608),this['channelSessions']['set'](_0x2048e1,new _0xd26e88()),this['channelConnectedUsers']['set'](_0x2048e1,new _0xd26e88()),this['listenTo'](_0x415608,'add',(_0x1b7bf5,_0x3e079e)=>this['_handleSessionAdd'](_0x2048e1,_0x3e079e)),this['listenTo'](_0x415608,'remove',(_0x53f7d6,_0x2079b3)=>this['_handleSessionRemove'](_0x2048e1,_0x2079b3));for(const _0x312b38 of _0x415608)this['_handleSessionAdd'](_0x2048e1,_0x312b38);}['unregister'](_0x3a23cf){if(!this['_registeredSessions']['has'](_0x3a23cf))throw new _0x44690c('sessions-unregister-not-exist',null,{'channelId':_0x3a23cf});const _0x2adf34=this['_registeredSessions']['get'](_0x3a23cf);this['stopListening'](_0x2adf34);for(const _0x4df2f1 of _0x2adf34)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x3a23cf,_0x4df2f1);this['_registeredSessions']['delete'](_0x3a23cf),this['channelSessions']['delete'](_0x3a23cf),this['channelConnectedUsers']['delete'](_0x3a23cf);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x354c45){for(const _0x14a592 of this['channelSessions']['values']())for(const _0x52b844 of _0x14a592)if(_0x52b844['id']===_0x354c45)return _0x52b844['user'];}['getUserSessions'](_0x241ea6,_0x4298a6){const _0x5edb91=_0x4298a6?[this['channelSessions']['get'](_0x4298a6)]:this['channelSessions']['values'](),_0x22cb7c=new Set();for(const _0x16b3a3 of _0x5edb91)for(const _0x466cd8 of _0x16b3a3)_0x466cd8['user']['id']===_0x241ea6['id']&&_0x22cb7c['add'](_0x466cd8['id']);return _0x22cb7c;}['getUserRole'](_0x1715c3){for(const _0x55c30b of this['channelSessions']['values']())for(const _0x4da46f of _0x55c30b)if(_0x4da46f['user']===_0x1715c3)return _0x4da46f['role'];}['_handleSessionAdd'](_0x1fdce3,_0x269bf5){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x2ae26e=_0x269bf5['user'],_0x478c01=this['_users']['getUser'](_0x2ae26e['id'])||this['_createUser'](_0x2ae26e),_0x19b6f3=Object['assign']({},_0x269bf5,{'user':_0x478c01});if(this['channelSessions']['get'](_0x1fdce3)['add'](_0x19b6f3),!_0x2ae26e['hiddenInPresenceList']){const _0x344ba1=this['channelConnectedUsers']['get'](_0x1fdce3);_0x344ba1['has'](_0x478c01['id'])||_0x344ba1['add'](_0x478c01),this['allConnectedUsers']['has'](_0x478c01['id'])||_0x2ae26e['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x478c01,_0x478c01['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x1fdce3,{'channelId':_0x1fdce3,'session':_0x19b6f3});}['_handleSessionRemove'](_0x591a9c,_0x5b06c2){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x1dd670=this['channelConnectedUsers']['get'](_0x591a9c),_0x4bd192=_0x5b06c2['user'];_0x4bd192['id']&&(this['channelSessions']['get'](_0x591a9c)['remove'](_0x5b06c2['id']),_0x1dd670['has'](_0x4bd192['id'])&&!this['getUserSessions'](_0x4bd192,_0x591a9c)['size']&&_0x1dd670['remove'](_0x4bd192['id']),this['allConnectedUsers']['get'](_0x4bd192['id'])&&!this['getUserSessions'](_0x4bd192)['size']&&this['allConnectedUsers']['remove'](_0x4bd192['id']));}['_createUser'](_0x492396,_0x5f42d4){const _0x5f129a=this['_users']['addUser'](_0x492396);return _0x5f42d4&&this['_users']['defineMe'](_0x492396['id']),_0x5f129a['orderNumber']=this['_uniqueUsersCount']++,_0x5f129a;}}class UserMarkers extends _0x523d5c{['_domEmitter']=new(_0x80e1e9())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x5098bd=this['editor'],_0x4f47bb=_0x5098bd['plugins']['get'](Sessions);_0x5098bd['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x5df524,{writer:_0x1eb55c})=>function(_0x5b1462,_0x25a01b,_0x5e0ad6,_0x5be1b6){const _0xb9e396=_0x5b1462['markerName']['split'](':')[0x2],_0x396894=_0x5e0ad6['getUserBySessionId'](_0xb9e396);if(!_0x396894||_0xb9e396===_0x5e0ad6['mySessionId'])return;if(!_0x5be1b6['model']['schema']['checkChild'](_0x5b1462['markerRange']['start'],'$text'))return;const _0x289e6a={'class':'ck-user__marker\x20'+_0x396894['color']['getMarkerClass'](),'style':Y(_0x396894),'data-name':_0x396894['name'],'data-session-id':_0xb9e396},_0x432f57=_0x5be1b6['model']['markers']['get'](_0x5b1462['markerName']),_0x30d25f=_0x432f57['getStart'](),_0x4777f3=_0x30d25f['nodeAfter'],_0x3c28d1=_0x5be1b6['model']['schema'];if(_0x4777f3&&_0x3c28d1['isObject'](_0x4777f3)&&_0x3c28d1['isInline'](_0x4777f3)&&!_0x5be1b6['model']['markers']['get']('user:range:'+_0xb9e396)['getRange']()['isCollapsed'])return;const _0xdfdc99=_0x30d25f['parent'];return _0x5be1b6['model']['schema']['isLimit'](_0xdfdc99)&&!_0x5be1b6['model']['hasContent'](_0xdfdc99)&&(_0x289e6a['contenteditable']=!0x1),function(_0x10d397,_0xad0c51,_0xb3703f){const _0x41dc2c=_0x10d397['createUIElement']('span',_0xad0c51);return _0x10d397['setCustomProperty']('userPositionMarker',!0x0,_0x41dc2c),_0x41dc2c['render']=function(_0x38b259){const _0x4663b7=this['toDomElement'](_0x38b259),_0x1a49a8=document['createElement']('span');return _0x1a49a8['classList']['add']('ck-user__marker-tooltip'),_0x1a49a8['setAttribute']('contenteditable','false'),_0x1a49a8['setAttribute']('spellcheck','false'),_0x1a49a8['textContent']=_0xb3703f['name'],_0x4663b7['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x1a49a8['outerHTML']+'⁠',_0x4663b7['addEventListener']('mouseenter',()=>{_0x4663b7['classList']['add']('ck-user__marker_hovered');}),_0x4663b7['addEventListener']('mouseleave',()=>{_0x4663b7['classList']['remove']('ck-user__marker_hovered');}),_0x4663b7;},_0x41dc2c['isSimilar']=function(_0x52af88){return!(!this['getCustomProperty']('userPositionMarker')||!_0x52af88['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x52af88['getAttribute']('data-session-id'));},_0x41dc2c;}(_0x25a01b,_0x289e6a,_0x396894);}(_0x5df524,_0x1eb55c,_0x4f47bb,_0x5098bd)}),_0x5098bd['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x1e4d22=>function(_0xaf186f,_0x3109c2){const _0x499d64=_0xaf186f['markerName']['split'](':')[0x2];if(_0x499d64===_0x3109c2['mySessionId'])return null;const _0x1b8a9f=_0x3109c2['getUserBySessionId'](_0x499d64);if(!_0x1b8a9f)return{'id':_0x499d64,'classes':[]};return{'id':_0x499d64,'classes':['ck-user__selection',_0x1b8a9f['color']['getSelectionClass']()],'attributes':{'style':Y(_0x1b8a9f),'data-session-id':_0x499d64},'priority':0x7d0+_0x1b8a9f['orderNumber']};}(_0x1e4d22,_0x4f47bb)}),function(_0x463034){const _0x4feccb=_0x463034['model'],_0x2b1513=new Map(),_0x824683=_0x463034['plugins']['get'](Sessions);_0x4feccb['markers']['on']('update:user:range',(_0x3916ee,_0x2aa9f6,_0x528e95,_0x4d60b6)=>{if(!_0x4d60b6&&_0x2b1513['get'](_0x2aa9f6['name']))return _0x2b1513['get'](_0x2aa9f6['name'])['detach'](),void _0x2b1513['delete'](_0x2aa9f6['name']);const _0x2abb73=_0x2aa9f6['name']['split'](':')[0x2];if(_0x2abb73===_0x824683['mySessionId'])return;const _0x4980e1='user:position:'+_0x2abb73;_0x4feccb['markers']['has'](_0x4980e1)&&_0x463034['editing']['reconvertMarker'](_0x4980e1),_0x2aa9f6['on']('change:range',(_0x22c262,_0x27b806,_0x2bf0e1)=>{if('$graveyard'!=_0x27b806['root']['rootName']&&'$graveyard'==_0x2aa9f6['getRange']()['root']['rootName']&&!_0x2b1513['has'](_0x2aa9f6['name'])){const _0x4648d1=_0x4feccb['schema']['getNearestSelectionRange'](_0x2bf0e1['deletionPosition']);if(_0x4648d1){const _0x42fda=_0xee587a['fromRange'](_0x4648d1);_0x2b1513['set'](_0x2aa9f6['name'],_0x42fda),_0x42fda['on']('change:range',(_0x53567f,_0x54e0bb,_0x251f29)=>{if('$graveyard'==_0x42fda['root']['rootName']){const _0x51da16=_0x4feccb['schema']['getNearestSelectionRange'](_0x251f29['deletionPosition']);_0x51da16?(_0x42fda['start']=_0x51da16['start'],_0x42fda['end']=_0x51da16['end']):(_0x2b1513['delete'](_0x2aa9f6['name']),_0x42fda['detach']());}});}}});}),_0x4feccb['document']['on']('change',()=>{_0x2b1513['size']>0x0&&_0x4feccb['enqueueChange']({'isUndoable':!0x1},_0x122a23=>{for(const [_0xef7e10,_0x12fc45]of _0x2b1513)'$graveyard'==_0x4feccb['markers']['get'](_0xef7e10)['getRange']()['root']['rootName']&&(z(_0xef7e10['split'](':')[0x2],_0x12fc45['toRange'](),_0x4feccb,_0x122a23),_0x12fc45['detach']());_0x2b1513['clear']();});});}(_0x5098bd),this['_domEmitter']['listenTo'](_0x14a421['document'],'keydown',(_0x1e002e,{key:_0x567262})=>{'Escape'===_0x567262&&function(_0x5c5e04){_0x5c5e04['editing']['view']['change'](_0x2fa77a=>{for(const _0x1ea49c of _0x5c5e04['model']['markers']){if(!_0x1ea49c['name']['startsWith']('user:position'))continue;const _0x1a4464=_0x5c5e04['editing']['mapper']['markerNameToElements'](_0x1ea49c['name']);if(_0x1a4464){for(const _0x5965c2 of _0x1a4464)_0x2fa77a['removeClass']('ck-user__marker_hovered',_0x5965c2);}}});}(_0x5098bd);},{'useCapture':!0x0});}['afterInit'](){const _0xd61f81=this['editor'],_0x42dc76=_0xd61f81['commands']['get']('undo');_0x42dc76&&_0xd61f81['model']['on']('applyOperation',(_0x36a31c,_0x5b9e30)=>{const _0x5a9bae=_0x5b9e30[0x0];if(!_0x5a9bae['isDocumentOperation'])return;if('marker'!=_0x5a9bae['type']||!_0x5a9bae['name']['startsWith']('user:'))return;const _0x5adabb=_0x5a9bae['batch'];_0x42dc76['_createdBatches']['has'](_0x5adabb)&&(_0x5a9bae['newRange']=_0x5a9bae['oldRange']?_0xd61f81['model']['createRange'](_0x5a9bae['oldRange']['start'],_0x5a9bae['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x246040=this['editor'],_0x1d4bea=_0x246040['model']['document'],_0x56ba5=_0x246040['plugins']['get'](Sessions);_0x246040['model']['enqueueChange']({'isUndoable':!0x1},_0x4027c3=>{const _0x145715='user:range:'+_0x56ba5['mySessionId'],_0x386cc9='user:position:'+_0x56ba5['mySessionId'],_0x26ca12=_0x246040['model']['markers']['has'](_0x145715);_0x246040['editing']['view']['hasDomSelection']?z(_0x56ba5['mySessionId'],_0x1d4bea['selection']['getFirstRange'](),_0x246040['model'],_0x4027c3):_0x26ca12&&(_0x4027c3['removeMarker'](_0x145715),_0x4027c3['removeMarker'](_0x386cc9));});}}function z(_0x41bcec,_0x4fe375,_0x4c7ff2,_0x260a01){const _0x6a1773='user:range:'+_0x41bcec,_0x3d823d='user:position:'+_0x41bcec,_0x28e68a=_0x4fe375['getContainedElement']();let _0x27d65b=_0x4fe375['start'];if(_0x28e68a&&_0x28e68a['is']('element','tableCell')){const _0x3b1072=function(_0x41331b,_0xf6037){for(const _0x49f567 of _0x41331b['getPositions']())if(_0xf6037['schema']['checkChild'](_0x49f567,'$text'))return _0x49f567;}(_0x4fe375,_0x4c7ff2);_0x3b1072&&(_0x27d65b=_0x3b1072,_0x4fe375=_0x260a01['createRange'](_0x27d65b));}const _0x46a364=_0x260a01['createRange'](_0x27d65b);_0x4c7ff2['markers']['has'](_0x6a1773)?(_0x260a01['updateMarker'](_0x6a1773,{'range':_0x4fe375}),_0x260a01['updateMarker'](_0x3d823d,{'range':_0x46a364})):(_0x260a01['addMarker'](_0x6a1773,{'range':_0x4fe375,'usingOperation':!0x0}),_0x260a01['addMarker'](_0x3d823d,{'range':_0x46a364,'usingOperation':!0x0}));}function Y(_0x102306){return'--ck-user-color:'+_0x102306['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x102306['color']['getColorAlphaVariable']()+';';}function K(_0x57c499,_0x4e62d4,_0xbaaedc){const _0x52f620=_0x57c499['t'],t=_0x57c499['t'];switch(_0x4e62d4){case'PENDING_ACTION_SENDING_DATA':return t({'string':'Sending\x20data\x20to\x20the\x20server.','id':'PENDING_ACTION_SENDING_DATA'});case'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'Synchronization\x20issue':return t('Synchronization\x20issue');case'Connected\x20users\x20list\x20dropdown\x20menu':return t('Connected\x20users\x20list\x20dropdown\x20menu');case'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':return t('Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)');case'Connected\x20users\x20list':return t('Connected\x20users\x20list');case'PENDING_ACTION_REVISION_HISTORY':return _0x52f620({'string':'Unsaved\x20change\x20in\x20revision\x20history.','id':'PENDING_ACTION_REVISION_HISTORY'});case'CONNECTED_USERS':return t({'string':'1\x20connected\x20user\x20(me)','plural':'%0\x20connected\x20users','id':'CONNECTED_USERS'},_0xbaaedc);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x523d5c{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
+ ((()=>_0xe673cf)());['_offset'];['sessionId'];['serverHistory'];['_channelId'];['_service'];['_document'];['_compressor'];['_bufferedOperations'];['_knownOperations'];['_knownRootNames'];['_pendingAction'];['_hasSelectionChanged'];['_sendBufferedOperationsDelayId'];['_baseBufferDelay'];['_currentBufferDelay'];['_lastSyncedOperationId'];['_disconnectionOperations'];['_operationIdentifier'];static get['requires'](){return[WebSocketGateway,Sessions,UserMarkers,_0x8e714,_0xbd9206,_0x552a0d];}static get['pluginName'](){return'RealTimeCollaborationClient';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}get['cloudDocumentVersion'](){return this['_lastServerVersion']+this['_offset'];}get['_lastServerVersion'](){return this['serverHistory']['version']-this['_offset'];}get['lastSyncVersion'](){const _0x4f4125=this['serverHistory']['getOperations']();for(let _0x30330e=_0x4f4125['length']-0x1;_0x30330e>=0x0;_0x30330e--){const _0x3b2780=_0x4f4125[_0x30330e];if(!this['_disconnectionOperations']['has'](_0x3b2780))return _0x3b2780['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0xfe4128){if(super(_0xfe4128),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x5bc90f(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x44690c('collaboration-missing-channelid',this);const _0x184176=_0xfe4128['config']['get']('cloudServices.bundleVersion')||_0x146c5e;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x184176,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x7f9a95(),this['_bufferedOperations']=[],this['_knownOperations']=new WeakSet(),this['_knownRootNames']=new Set(),this['set']('_isPendingUpdate',!0x1),this['set']('_hasSynchronizationProblem',!0x1),this['_pendingAction']=null,this['_hasSelectionChanged']=!0x1,this['_sendBufferedOperationsDelayId']=null,this['_baseBufferDelay']=0x12c,this['_currentBufferDelay']=this['_baseBufferDelay'],this['_lastSyncedOperationId']=null,this['_disconnectionOperations']=new WeakSet(),this['_operationIdentifier']=new OperationIdentifier(this['_disconnectionOperations']);}['init'](){const _0x8986c7=this['editor'],_0x1e6dc2=_0x8986c7['plugins']['get'](_0xbd9206),_0x2323ee=_0x8986c7['plugins']['get'](WebSocketGateway);this['listenTo'](_0x1e6dc2,'getOperationAuthor',(_0x5bdf10,_0x4b8b7b)=>{const _0x5a0fe9=_0x4b8b7b[0x0];_0x5a0fe9['_authorId']&&(_0x5bdf10['return']=_0x1e6dc2['getUser'](_0x5a0fe9['_authorId']),_0x5bdf10['stop']()),null===_0x5a0fe9['_authorId']&&(_0x5bdf10['return']=null,_0x5bdf10['stop']());},{'priority':'high'}),this['listenTo'](_0x8986c7['model']['document']['selection'],'change:range',(_0x299731,_0x4eff9b)=>{_0x4eff9b['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x8986c7['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x8986c7['model']['on']('applyOperation',(_0x454379,_0x1cc0dc)=>{const _0x4d1743=_0x1cc0dc[0x0];_0x4d1743['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x4d1743),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x2323ee,'state',this,'_hasSynchronizationProblem',(_0x297ad3,_0x1e5dfc)=>'connected'===_0x297ad3&&!_0x1e5dfc),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x8986c7['disableReadOnlyMode']('rtc-offline'):_0x8986c7['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x8986c7['disableReadOnlyMode']('rtc-offline'):_0x8986c7['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x543821=this['editor']['plugins']['get'](Sessions),_0x277521=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x543821['unregister'](this['_channelId']);const _0x50b4e9=await this['_service']['reconnect'](_0x277521['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x50b4e9)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x3372bd=await this['_service']['getConnectedSessions']();_0x543821['register'](this['_channelId'],_0x3372bd),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x37f918){if(function(_0x5ce158){return'404'===_0x5ce158['code'];}(_0x37f918)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x33eae8){return'409'===_0x33eae8['code'];}(_0x37f918)){const _0x590af5=K(this['editor']['locale'],'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');this['_handleReconnectionError'](_0x590af5);}else{if(!(_0x37f918 instanceof ReconnectionError))throw _0x37f918;this['_handleReconnectionError']();}}}}['destroy'](){const _0x4fcf57=this['editor']['plugins']['get'](WebSocketGateway),_0x524bd1=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x524bd1['channelSessions']['has'](this['_channelId'])&&_0x524bd1['unregister'](this['_channelId']),_0x4fcf57['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x5ace4e){if(this['sessionId']!==_0x5ace4e['sessionId']&&this['_lastSyncedOperationId']!==_0x5ace4e['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x5ace4e['sessionId'],this['_handleServerResponse']([],{..._0x5ace4e,'wereChangesApplied':!0x1,'data':_0x5ace4e['data']},'reconnect');}async['_connectService'](_0x1219e7,_0x274b05=!0x1){const {connection:_0xbd3287}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0xbd3287,this['_channelId'])['then'](_0x451ac6=>this['_initSessionsHandling'](_0x451ac6))['catch'](_0x4e28b3=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x4e28b3);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x205534,_0x1ccbfc)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x1ccbfc);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x52664a=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x1219e7);this['_isPendingUpdate']=!0x0;const _0x1423d1=await this['_service']['connect'](_0xbd3287,this['_compressOperations'](_0x1219e7),_0x52664a);if(this['sessionId']=_0x1423d1['sessionId'],_0x274b05){if(!_0x1423d1['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x1423d1['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x1219e7,_0x1423d1,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x1423d1,_0x1219e7);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x571bc9=this['editor']['plugins']['get'](Sessions),_0x45b989=this['editor']['plugins']['get'](UserMarkers),_0x3a0145=_0x571bc9['channelSessions']['get'](this['_channelId']);_0x3a0145&&_0x3a0145['length']>0x1?_0x45b989['createUserMarkerOperations']():this['listenTo'](_0x571bc9,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x571bc9['channelSessions']['get'](this['_channelId'])['length']&&_0x45b989['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x31145f,_0xe2a458,_0x39df33,_0x311276){if(!this['_isPendingUpdate']&&this['_document']['version']==_0xe2a458){const _0x2b1759=this['_decompressOperations'](_0x39df33,_0x311276);await this['_fetchMissingUsers'](_0x2b1759),this['_handleExternalOperations'](_0x2b1759,_0xe2a458,_0x39df33['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x3de7d5}=this['editor'];let _0x3ebfa5;try{_0x3ebfa5=await this['_service']['getDocumentDetails']();}catch{const _0x4f8e6c=K(_0x3de7d5,'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x4f8e6c);}const _0x471562=_0x3ebfa5['currentDocumentSession']||_0x3ebfa5['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x471562['lastOperationId']){const _0x359fb3=K(_0x3de7d5,'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x359fb3);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x503027){const _0x38de83=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x38de83,'sessionAdd:'+this['_channelId'],(_0x1adf35,{session:_0x453c2c})=>{if(_0x453c2c['id']===_0x38de83['mySessionId']){_0x1adf35['off']();const _0x46e195=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x4e9b3b=_0x453c2c['permissions'];_0x46e195&&_0x46e195['isEnabled']&&(_0x4e9b3b=_0x4e9b3b['filter'](_0x38652d=>'document:write'!==_0x38652d)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x4e9b3b,this['_channelId']);}}),_0x38de83['register'](this['_channelId'],_0x503027);}['_initThrowingOnDataSet'](){const _0x3ff501=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x399ace)=>{if(!_0x399ace[_0x399ace['length']-0x1]['suppressErrorInCollaboration'])throw new _0x44690c('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x3ff501['apply'](this['editor']['data'],_0x399ace);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x1261f2,[_0x568d14])=>{if(this['_document']['version'])throw new _0x44690c('realtimecollaborationclient-init-document-already-initialized',this);_0x1261f2['stop'](),this['_setPendingAction']();const _0x18098f=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x43c3e4])=>!_0x43c3e4['lazyLoad'])['map'](([_0x3d2e36,_0x5b1df0])=>[_0x3d2e36,_0x5b1df0['modelAttributes']||{}])),_0x55e6bd=this['_getOperationsFromInitData'](_0x568d14,_0x18098f);0x0==_0x55e6bd['length']&&_0x55e6bd['push'](new _0x2303ac(0x0)),_0x1261f2['return']=this['_connectService'](_0x55e6bd)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x25bd9d=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x25bd9d))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x1eb99e,[_0x470ff8,_0x3a2445])=>{_0x1eb99e['stop']();const _0x21eb63=this['editor']['model']['document']['getRoot'](_0x470ff8);if(!this['_knownRootNames']['has'](_0x470ff8)){const _0x24aa79=_0x3a2445&&_0x3a2445['data']?_0x3a2445['data']:'',_0x468758=_0x3a2445&&_0x3a2445['attributes']?_0x3a2445['attributes']:{};await this['_loadRoot'](_0x470ff8,_0x24aa79,_0x468758);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x21eb63['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x21eb63);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x38ebb6){const _0x47880b=this['editor']['plugins']['get'](_0xbd9206),{connection:_0x4f7680}=this['editor']['plugins']['get'](WebSocketGateway),_0x12b8ca=new Set();for(const _0x5168d6 of _0x38ebb6){const _0x1a4e73=_0x5168d6['_authorId'];_0x1a4e73&&!_0x47880b['getUser'](_0x1a4e73)&&_0x12b8ca['add'](_0x1a4e73);}if(0x0===_0x12b8ca['size'])return;const _0xfaa9d0=await _0x270274['getMany'](_0x4f7680,Array['from'](_0x12b8ca));for(const _0x4675e8 of _0xfaa9d0)_0x47880b['getUser'](_0x4675e8['id'])||_0x47880b['addUser'](_0x4675e8);}['_getOperationsFromInitData'](_0x1a4b18,_0x7ab4e0={}){const _0x338a71=this['editor']['model'],_0x7a3d09=[];let _0x129fb5=0x0;const _0x48910e='string'==typeof _0x1a4b18?{'main':_0x1a4b18}:_0x1a4b18;for(const _0x318e37 of Object['keys'](_0x48910e)){if(!this['_document']['roots']['has'](_0x318e37))throw new _0x44690c('realtimecollaborationclient-init-non-existent-root',this);const _0x31ef8c=this['_document']['getRoot'](_0x318e37),_0x72bea8=this['editor']['data']['parse'](_0x48910e[_0x318e37],_0x31ef8c),_0x213db1=new _0x484853(_0x338a71['createPositionAt'](_0x31ef8c,0x0),_0x72bea8,_0x129fb5++);_0x7a3d09['push'](_0x213db1);for(const [_0x5ef695,_0x220989]of _0x72bea8['markers']){const _0x74f07=_0x338a71['createRange'](_0x338a71['createPositionFromPath'](_0x31ef8c,_0x220989['start']['path']['slice']()),_0x338a71['createPositionFromPath'](_0x31ef8c,_0x220989['end']['path']['slice']())),_0x412b40=new _0x1fb70f(_0x5ef695,null,_0x74f07,_0x338a71['markers'],!0x0,_0x129fb5++);_0x7a3d09['push'](_0x412b40);}}if(_0x7ab4e0)for(const [_0x5cfb40,_0x5024da]of Object['entries'](_0x7ab4e0)){const _0x196a73=_0x338a71['document']['getRoot'](_0x5cfb40);if(!_0x196a73)throw new _0x44690c('multi-root-editor-root-attributes-no-root',null);for(const [_0x5601d8,_0xb3ef30]of Object['entries'](_0x5024da))if(null!==_0xb3ef30){const _0x57e8aa=new _0x3050ce(_0x196a73,_0x5601d8,null,_0xb3ef30,_0x129fb5++);_0x7a3d09['push'](_0x57e8aa);}}return _0x7a3d09;}async['_loadRoot'](_0x3b512c,_0x4f7c38,_0x42e04b){this['_getOperationsFromInitData']({[_0x3b512c]:_0x4f7c38},{[_0x3b512c]:_0x42e04b})['forEach']((_0x751384,_0x58313a)=>{_0x751384['baseVersion']=this['_document']['version']+_0x58313a,_0x751384['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x751384);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x378645,_0x47730a){let _0x311976;this['_offset']=_0x378645['offset'];const _0x1a4bbd=_0x378645['wereChangesApplied']&&!_0x378645['initData'],_0x543ec0=_0x1a4bbd?0x0:_0x378645['data']['baseVersion'];if(_0x47730a['forEach'](_0xc81d3c=>{_0xc81d3c['_isInit']=!0x0,_0xc81d3c['createdAt']=_0x378645['sessionCreatedAt'],_0xc81d3c['_authorId']=null;}),_0x1a4bbd)_0x311976=_0x47730a,this['_applyOperationsSet'](_0x311976,_0x1a4bbd);else{if(_0x378645['initData']){const _0x4ea333=this['_getOperationsFromInitData'](_0x378645['initData']);this['_document']['history']['version']=-_0x4ea333['length'],_0x4ea333['forEach'](_0x4dd2bf=>{_0x4dd2bf['baseVersion']-=_0x4ea333['length'],_0x4dd2bf['createdAt']=_0x378645['sessionCreatedAt'],_0x4dd2bf['_isInit']=!0x0,_0x4dd2bf['_authorId']=null;}),this['_applyOperationsSet'](_0x4ea333,!0x0),this['serverHistory']['version']=-_0x4ea333['length']+this['_offset'],this['_updateServerHistory'](_0x4ea333);}this['_document']['history']['version']=_0x543ec0,_0x311976=this['_decompressOperations'](_0x378645['data'],_0x378645['metadata']),await this['_fetchMissingUsers'](_0x311976),this['_applyOperationsSet'](_0x311976,_0x1a4bbd);}_0x378645['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x311976,_0x378645['lastOperationId']),this['_lastSyncedOperationId']=_0x378645['lastOperationId']),this['serverHistory']['version']=_0x543ec0+this['_offset'],this['_updateServerHistory'](_0x311976),_0x47730a['filter'](_0x20382c=>{const _0x24bcb3=this['_getAffectedRoot'](_0x20382c);return _0x24bcb3&&!this['_knownRootNames']['has'](_0x24bcb3);})['forEach']((_0x2bcf4e,_0xe75f8e)=>{_0x2bcf4e['baseVersion']=this['_document']['version']+_0xe75f8e,this['_saveOperationInBuffer'](_0x2bcf4e);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x145ff9,_0x2474e8){const _0x4f2658=_0x2474e8&&_0x2474e8['message'];if(_0x4f2658&&_0x4f2658['startsWith']('realtimecollaborationclient'))throw _0x2474e8;const _0x27d2d3=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x27d2d3['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x44690c(_0x145ff9,this['editor'],_0x4f2658?{'originalError':_0x4f2658}:void 0x0);}['_saveOperationInBuffer'](_0x9a76cd){this['_knownOperations']['has'](_0x9a76cd)||(this['_knownOperations']['add'](_0x9a76cd),this['_bufferedOperations']['push'](_0x9a76cd),this['_pendingAction']||'marker'==_0x9a76cd['type']&&!_0x9a76cd['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x4a47b5=!0x1){!_0x4a47b5&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x144d31=>{_0x144d31&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x3698b8=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x446249){return _0x446249['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x446249['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x446249['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x3698b8)||this['_crash'](_0x3698b8['message'],_0x3698b8);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0xb69190=>{this['on']('change:_isPendingUpdate',()=>{_0xb69190();});});}async['_sendBufferedOperations'](){const _0x10c8ea=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x10c8ea['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x2efa2f=[...this['_bufferedOperations']];for(const _0x18cd96 of _0x2efa2f)_0x18cd96['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x18cd96);const _0xeb6a3b=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x2efa2f),_0x7a205b=J++,_0x293f41=this['_compressOperations'](_0x2efa2f),_0xcdf4ea=await this['_service']['sendOperations'](_0x293f41,_0x293f41['baseVersion'],_0xeb6a3b);try{return await this['_handleServerResponse'](_0x2efa2f,_0xcdf4ea,_0x7a205b);}catch(_0x1343f3){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x1343f3);}}async['_handleServerResponse'](_0x536120,_0x237c8a,_0x598780){if('error'in _0x237c8a)throw _0x237c8a['error'];let _0x471a9f=!0x1;if(_0x237c8a['wereChangesApplied']){_0x237c8a['lastOperationId']&&(this['_lastSyncedOperationId']=_0x237c8a['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x16c407=>!_0x536120['includes'](_0x16c407));for(const _0x40ef21 of _0x536120)_0x40ef21['createdAt']='lastOperationAcceptedAt'in _0x237c8a&&_0x237c8a['lastOperationAcceptedAt']||void 0x0;Q(_0x536120,_0x237c8a['version']-_0x536120['length']),this['_updateServerHistory'](_0x536120);const _0x2ef52f=_0x536120['filter'](_0x29b6f2=>{if(!_0x29b6f2['_isInit'])return!0x1;const _0x2f6a3a=this['_getAffectedRoot'](_0x29b6f2);return _0x2f6a3a&&!this['_knownRootNames']['has'](_0x2f6a3a);});Q(_0x2ef52f,this['_document']['version']),this['_applyOperationsSet'](_0x2ef52f),_0x471a9f=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x21175d=this['_decompressOperations'](_0x237c8a['data'],_0x237c8a['metadata'])['filter'](_0x64b6b9=>_0x64b6b9['baseVersion']>=this['_lastServerVersion']);_0x21175d['forEach'](_0x11130d=>this['_addKnownRoot'](_0x11130d)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x3824a1=>!_0x3824a1['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x3824a1))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x21175d),_0x471a9f=this['_handleExternalOperations'](_0x21175d,_0x237c8a['version'],_0x237c8a['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x471a9f?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x564cee,_0x3afffb,_0x2179f6){try{const _0x5dfa53={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x4846b1,operationsB:_0x46085,originalOperations:_0x37af4d}=_0x2638b1(_0x564cee,this['_bufferedOperations'],_0x5dfa53);Q(_0x4846b1,this['_document']['version']),Q(_0x46085,_0x3afffb);for(const _0x31f098 of _0x4846b1){const _0x1bd806=_0x37af4d['get'](_0x31f098);_0x31f098['_authorId']=_0x1bd806?_0x1bd806['_authorId']:null;}_0x2179f6&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x564cee,_0x2179f6),this['_lastSyncedOperationId']=_0x2179f6),this['_bufferedOperations']=[..._0x46085],this['_applyOperationsSet'](_0x4846b1),this['_updateServerHistory'](_0x564cee);}catch(_0x124107){return console['error'](_0x124107),!0x1;}return!0x0;}['_applyOperationsSet'](_0xbf3ebe,_0x2370e0=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x493065=>{for(const _0x32cdcc of _0xbf3ebe)this['_knownOperations']['add'](_0x32cdcc),this['_addKnownRoot'](_0x32cdcc),_0x493065['batch']['addOperation'](_0x32cdcc),this['editor']['model']['applyOperation'](_0x32cdcc);});}['_addKnownRoot'](_0x5d9aad){const _0x2cc8ba=this['_getAffectedRoot'](_0x5d9aad);_0x2cc8ba&&this['_knownRootNames']['add'](_0x2cc8ba);}['_getAffectedRoot'](_0x180e5c){let _0x169a6d,_0x54d172;switch(_0x180e5c['type']){case'insert':_0x169a6d=_0x180e5c['position']['root'];break;case'marker':if(_0x54d172=_0x180e5c['newRange'],!_0x54d172)return null;_0x169a6d=_0x54d172['root'];break;case'addRootAttribute':_0x169a6d=_0x180e5c['root'];break;case'addRoot':_0x169a6d=_0x180e5c['affectedSelectable'];break;case'move':_0x169a6d=_0x180e5c['targetPosition']['root'];break;default:return null;}return _0x169a6d['rootName'];}['_updateServerHistory'](_0x3ba679){_0x3ba679['forEach'](_0x44edad=>{const _0x25b735=_0x44edad['clone']();_0x25b735['_authorId']=_0x44edad['_authorId'],_0x25b735['_isInit']=!!_0x44edad['_isInit'],_0x25b735['createdAt']=_0x44edad['createdAt'],_0x25b735['baseVersion']+=this['_offset'],_0x44edad['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x25b735),this['serverHistory']['addOperation'](_0x25b735);});}['_handleReconnectionError'](_0xb4ec75){const _0x5d3f3c=this['editor']['plugins']['get']('Notification'),_0x3962d7=this['editor']['locale'];_0xb4ec75||(_0xb4ec75=K(_0x3962d7,'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.')),_0x5d3f3c['showWarning'](_0xb4ec75,{'title':K(_0x3962d7,'Synchronization\x20issue'),'namespace':'real-time-collaboration'}),this['_hasSynchronizationProblem']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_bufferedOperations']=[],this['editor']['plugins']['get'](WebSocketGateway)['disconnect']();}['_setPendingAction'](){this['_pendingAction']||(this['_pendingAction']=this['editor']['plugins']['get'](_0x8e714)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x8e714)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x7ac0b4){const _0x38ac9c=_0x7ac0b4['map'](_0x46a298=>_0x46a298['toJSON']());return this['_compressor']['compress'](_0x38ac9c);}['_decompressOperations'](_0x484560,_0x42b59c){return this['_compressor']['decompress'](_0x484560)['map']((_0x5d67e7,_0x3299fe)=>{const _0x43ed07='init'==_0x42b59c[_0x3299fe]['type'];if('InsertOperation'==_0x5d67e7['__className']){const _0x2b0bb1=_0x5d67e7['position']['root'];!this['_document']['getRoot'](_0x2b0bb1)&&(this['_document']['createRoot']('$unknown',_0x2b0bb1)['_isAttached']=!0x1);}else{if('RootOperation'==_0x5d67e7['__className']){const _0x12a4d2=this['_document']['getRoot'](_0x5d67e7['rootName']);_0x12a4d2&&'$unknown'==_0x12a4d2['name']&&_0x5d67e7['elementName']!=_0x12a4d2['name']&&(_0x12a4d2['name']=_0x5d67e7['elementName']);}}const _0x3bb9d4=_0x18bdd0['fromJSON'](_0x5d67e7,this['_document']);return _0x3bb9d4['wasUndone']=_0x5d67e7['wasUndone'],_0x3bb9d4['_isInit']=_0x43ed07,_0x3bb9d4['_authorId']=_0x43ed07?null:_0x42b59c[_0x3299fe]['userId'],_0x3bb9d4['_isDisconnection']='cs:removeUser'===_0x42b59c[_0x3299fe]['type'],_0x3bb9d4['createdAt']=_0x42b59c[_0x3299fe]['createdAt'],_0x3bb9d4;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x316473=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x316473&&_0x316473['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x3cf784,_0x29c237){for(const _0x2ec6cb of _0x3cf784)_0x2ec6cb['baseVersion']=_0x29c237++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x1c8e90){this['_ignoredOperations']=_0x1c8e90,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x53c450){let _0x16ecb9=_0x53c450['length'];for(;_0x16ecb9--;){const _0x143c6c=_0x53c450[_0x16ecb9];if(!this['_ignoredOperations']['has'](_0x143c6c)){if(!this['_operationToId']['has'](_0x143c6c)){const _0x249236=_0x2e2a43()['slice'](0x1,0x12);this['_operationToId']['set'](_0x143c6c,_0x249236);}return this['_operationToId']['get'](_0x143c6c);}}}['setIdForTheLastOperation'](_0x1cfed1,_0x5c3dba){if(!_0x5c3dba)return;let _0x4d14ef=_0x1cfed1['length'];for(;_0x4d14ef--;){const _0xfa4134=_0x1cfed1[_0x4d14ef];this['_ignoredOperations']['has'](_0xfa4134)||this['_operationToId']['set'](_0xfa4134,_0x5c3dba);}}}class RealTimeCollaborativeEditing extends _0x523d5c{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x191ab4{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
+ ((()=>_0x177deb)());['_services'];static get['requires'](){return[WebSocketGateway,_0x55664d,Sessions,_0xbd9206];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x185ebc){super(_0x185ebc),this['_services']=new Map();}async['init'](){const _0x5b2546=this['context'],_0x30cf8a=_0x5b2546['plugins']['get'](_0x55664d);if(_0x5b2546['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x30cf8a['adapter']={'addCommentThread':async({channelId:_0x1ba310,threadId:_0x250930,comments:_0x3657ed,resolvedAt:_0x592664,resolvedBy:_0x2be353,context:_0x2ddca5,attributes:_0x576789})=>{const _0x1c0c26=await this['_getService'](_0x1ba310)['addCommentThread']({'commentThreadId':_0x250930,'comments':_0x3657ed['map'](_0x617155=>function(_0x289111,_0x6fdaa3,_0xcb7616){return{'commentThreadId':_0xcb7616,'commentId':_0x289111['commentId'],'userId':_0x289111['authorId'],'content':_0x289111['content'],'documentId':_0x6fdaa3,'createdAt':_0x289111['createdAt'],'attributes':_0x289111['attributes']||{}};}(_0x617155,_0x1ba310,_0x250930)),'resolvedAt':_0x592664,'resolvedBy':_0x2be353,'context':_0x2ddca5,'attributes':_0x576789})['catch'](Z);return{'threadId':_0x1c0c26['commentThreadId'],'comments':_0x1c0c26['comments']};},'getCommentThread':async({channelId:_0x5b8d88,threadId:_0x1ed2a3})=>{const _0x41a447=await this['_getService'](_0x5b8d88)['getCommentThread'](_0x1ed2a3)['catch'](X)['catch'](Z);return _0x41a447?_0x41a447['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x41a447]),{'threadId':_0x41a447['commentThreadId'],'comments':_0x41a447['comments']['map'](tt),'context':_0x41a447['context'],'resolvedAt':_0x41a447['resolvedAt'],'resolvedBy':_0x41a447['resolvedBy'],'attributes':_0x41a447['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x7ebf6d,threadId:_0x5b9dc6,context:_0x31ec65,unlinkedAt:_0x48c7db,attributes:_0x1b4e68})=>this['_getService'](_0x7ebf6d)['updateCommentThread']({'commentThreadId':_0x5b9dc6,'context':_0x31ec65,'attributes':_0x1b4e68,'unlinkedAt':_0x48c7db})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x3cf8c3,threadId:_0x52a794})=>{const _0x50564c=await this['_getService'](_0x3cf8c3)['resolveCommentThread'](_0x52a794)['catch'](X)['catch'](Z);return{'threadId':_0x50564c['commentThreadId'],'resolvedAt':_0x50564c['resolvedAt'],'resolvedBy':_0x50564c['resolvedBy']};},'reopenCommentThread':async({channelId:_0x7e4e35,threadId:_0x1c2218})=>this['_getService'](_0x7e4e35)['reopenCommentThread'](_0x1c2218)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x2e2f97,threadId:_0x5a0cac})=>this['_getService'](_0x2e2f97)['removeCommentThread'](_0x5a0cac)['catch'](X)['catch'](Z),'addComment':({channelId:_0x17e203,threadId:_0x1610a8,commentId:_0x198cee,content:_0x58585c,attributes:_0x3f99f2})=>this['_getService'](_0x17e203)['addComment'](_0x1610a8,_0x198cee,_0x58585c,_0x3f99f2)['catch'](Z),'updateComment':({channelId:_0x4ff8ff,threadId:_0xe6a85,commentId:_0x386913,content:_0x2dffde,attributes:_0x6b0638})=>this['_getService'](_0x4ff8ff)['updateComment'](_0xe6a85,_0x386913,_0x2dffde,_0x6b0638)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x4416f9,threadId:_0x177588,commentId:_0x597f53})=>this['_getService'](_0x4416f9)['removeComment'](_0x177588,_0x597f53)['catch'](X)['catch'](Z)},_0x5b2546 instanceof _0x82da95){const _0xc7d2e4=_0x5b2546['config']['get']('collaboration.channelId'),_0x8c1c56=_0x5b2546['plugins']['get'](Sessions);await this['_setUpService'](_0xc7d2e4);const _0x22d7f3=await this['_services']['get'](_0xc7d2e4)['getConnectedSessions']();this['listenTo'](_0x8c1c56,'sessionAdd:'+_0xc7d2e4,(_0x8ee34c,{session:_0x11ff1a})=>{_0x11ff1a['id']===_0x8c1c56['mySessionId']&&(_0x8ee34c['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x11ff1a['permissions'],_0xc7d2e4));}),_0x8c1c56['register'](_0xc7d2e4,_0x22d7f3);}}async['_setUpService'](_0x1ec095){if(this['_services']['has'](_0x1ec095))throw new _0x44690c('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x1ec095});const _0x129482=this['context']['plugins']['get'](_0x55664d),_0x497cda=new CloudServicesCommentsAdapter['CommentsService'](_0x1ec095);this['_services']['set'](_0x1ec095,_0x497cda),this['listenTo'](_0x497cda,'commentThreadAdded',(_0x4673f1,_0x312c02)=>{const {commentThreadId:_0x4c0800,documentId:_0x29182b,context:_0x7a181f,attributes:_0x488a3c,resolvedAt:_0x646b94,resolvedBy:_0xa2f5c2,comments:_0x4fe032}=_0x312c02;_0x129482['getCommentThread'](_0x4c0800)||_0x129482['addCommentThread']({'threadId':_0x4c0800,'channelId':_0x29182b,'comments':_0x4fe032?_0x4fe032['map'](tt):[],'context':_0x7a181f,'attributes':_0x488a3c,'resolvedAt':_0x646b94,'resolvedBy':_0xa2f5c2,'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadUpdated',(_0x68c40e,{commentThreadId:_0x3f4f33,documentId:_0x2bf988,context:_0xbfa976,unlinkedAt:_0x2538cd,attributes:_0x5f3630})=>{_0x129482['getCommentThread'](_0x3f4f33)&&_0x129482['updateCommentThread']({'threadId':_0x3f4f33,'channelId':_0x2bf988,'context':_0xbfa976,'unlinkedAt':_0x2538cd,'attributes':_0x5f3630,'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadResolved',(_0x2e1bb7,{commentThreadId:_0x53dff5,resolvedBy:_0x631a0e,resolvedAt:_0x1b07da})=>{const _0x5c6c80=_0x129482['getCommentThread'](_0x53dff5);_0x5c6c80&&_0x5c6c80['resolve']({'resolvedBy':_0x631a0e,'resolvedAt':_0x1b07da,'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadReopened',(_0x12a10b,{commentThreadId:_0x15dd3e})=>{const _0x3b90c8=_0x129482['getCommentThread'](_0x15dd3e);_0x3b90c8&&_0x3b90c8['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadRemoved',(_0xc6ec16,{commentThreadId:_0x3ddb42})=>{const _0x35bfe9=_0x129482['getCommentThread'](_0x3ddb42);_0x35bfe9&&_0x35bfe9['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentAdded',(_0x4a0b9a,_0x52dca8)=>{const _0x3382a9=_0x52dca8['commentThreadId'],_0x42dfb3=_0x129482['getCommentThread'](_0x3382a9);_0x42dfb3&&_0x42dfb3['addComment']({...tt(_0x52dca8),'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentUpdated',(_0x79a338,{commentThreadId:_0x1468aa,commentId:_0x1ae649,content:_0x53532d,attributes:_0x4a00cc})=>{const _0x4ec929=_0x129482['getCommentThread'](_0x1468aa);if(_0x4ec929){const _0x122dfc=_0x4ec929['getComment'](_0x1ae649);_0x122dfc&&_0x122dfc['update']({'content':_0x53532d,'attributes':_0x4a00cc,'isFromAdapter':!0x0});}}),this['listenTo'](_0x497cda,'commentRemoved',(_0x3d349a,{commentThreadId:_0xf7829c,commentId:_0x5b348f})=>{const _0x5f5c75=_0x129482['getCommentThread'](_0xf7829c);if(_0x5f5c75){const _0x3f363f=_0x5f5c75['getComment'](_0x5b348f);_0x3f363f&&_0x3f363f['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x1ec095);}['destroy'](){if(this['context']instanceof _0x82da95){const _0x4bf845=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x4bf845);}}['_terminateService'](_0x31a7b7){if(!this['_services']['has'](_0x31a7b7))throw new _0x44690c('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x31a7b7});this['_getService'](_0x31a7b7)['disconnect'](),this['_services']['delete'](_0x31a7b7);}async['reconnect'](){for(const _0x2caa4a of this['_services']['keys']())await this['_connectService'](_0x2caa4a);if(this['context']instanceof _0x82da95){const _0x36dd3b=this['context']['config']['get']('collaboration.channelId'),_0x4230b4=this['context']['plugins']['get'](Sessions);_0x4230b4['unregister'](_0x36dd3b);const _0x7eb1e5=await this['_services']['get'](_0x36dd3b)['getConnectedSessions']();_0x4230b4['register'](_0x36dd3b,_0x7eb1e5);}}async['_connectService'](_0x5ca8a6){const {connection:_0x9839f9}=this['context']['plugins']['get'](WebSocketGateway),_0x2684de=this['context']['plugins']['get'](_0x55664d),_0x17ccb8=this['_services']['get'](_0x5ca8a6),_0x3c044d=await _0x17ccb8['connect'](_0x9839f9);await this['_fetchMissingUsersForThreads'](_0x3c044d);const _0x5b1ae2=new Set(Array['from'](_0x2684de['getCommentThreads']({'channelId':_0x5ca8a6}),_0x3b9063=>_0x3b9063['id']));for(const _0x110f71 of _0x3c044d)_0x110f71['deletedAt']||_0x5b1ae2['delete'](_0x110f71['commentThreadId']);for(const _0x13c382 of _0x5b1ae2)_0x2684de['getCommentThread'](_0x13c382)['remove']({'isFromAdapter':!0x0});for(const _0x5ec00f of _0x3c044d){let _0x426e14=_0x2684de['getCommentThread'](_0x5ec00f['commentThreadId']);const {commentThreadId:_0x482c51,context:_0x1440f7,attributes:_0x1e903a,resolvedBy:_0x1e584b,resolvedAt:_0x562344,unlinkedAt:_0x511a9a,deletedAt:_0x1f682b}=_0x5ec00f;if(_0x1f682b)continue;_0x426e14||(_0x426e14=_0x2684de['addCommentThread']({'channelId':_0x5ca8a6,'threadId':_0x482c51,'context':_0x1440f7,'attributes':_0x1e903a||{},'resolvedBy':_0x1e584b,'resolvedAt':_0x562344,'unlinkedAt':_0x511a9a,'isFromAdapter':!0x0}));const _0x2ba026=new Set(Array['from'](_0x426e14['comments'],_0x388faf=>_0x388faf['id']));for(const _0x865216 of _0x5ec00f['comments'])_0x2ba026['delete'](_0x865216['commentId']);for(const _0x4af905 of _0x2ba026)_0x426e14['getComment'](_0x4af905)['remove']({'isFromAdapter':!0x0});for(const _0x34fe46 of _0x5ec00f['comments']){const _0x340796=_0x426e14['getComment'](_0x34fe46['commentId']);_0x340796?_0x340796['content']!==_0x34fe46['content']&&_0x340796['update']({'content':_0x34fe46['content'],'isFromAdapter':!0x0}):_0x426e14['addComment'](Object['assign'](tt(_0x34fe46),{'isFromAdapter':!0x0}));}}}['_getService'](_0xd79d34){if(!this['_services']['has'](_0xd79d34))throw new _0x44690c('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0xd79d34});return this['_services']['get'](_0xd79d34);}async['_fetchMissingUsersForThreads'](_0x4eda1f){const _0x383406=this['context']['plugins']['get'](_0xbd9206),{connection:_0x196bb1}=this['context']['plugins']['get'](WebSocketGateway),_0x5d587c=new Set();for(const {resolvedBy:_0xfe76bd,comments:_0x2c5eb6}of _0x4eda1f){_0xfe76bd&&!_0x383406['getUser'](_0xfe76bd)&&_0x5d587c['add'](_0xfe76bd);for(const {userId:_0x13a44c}of _0x2c5eb6)_0x383406['getUser'](_0x13a44c)||_0x5d587c['add'](_0x13a44c);}if(0x0===_0x5d587c['size'])return;const _0xef9e30=await _0x270274['getMany'](_0x196bb1,Array['from'](_0x5d587c));for(const _0x2d2ee5 of _0xef9e30)_0x383406['getUser'](_0x2d2ee5['id'])||_0x383406['addUser'](_0x2d2ee5);}}async function X(_0x5f19f7){if('404'!==_0x5f19f7['code'])throw _0x5f19f7;}function Z(_0x71e5){if((_0x7f1587=_0x71e5)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x7f1587['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x7f1587['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x7f1587;throw _0x71e5;}function tt(_0x47c469){return{'threadId':_0x47c469['commentThreadId'],'commentId':_0x47c469['commentId'],'content':_0x47c469['content'],'createdAt':_0x47c469['createdAt'],'authorId':_0x47c469['userId'],'attributes':_0x47c469['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x523d5c{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
+ ((()=>_0x26d7c6)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x1a1529,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x40c4ed){super(_0x40c4ed);const _0x1feeee=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x1feeee);}['init'](){const _0x9a3808=this['editor']['plugins']['get'](WebSocketGateway),_0x5956a2=this['editor']['plugins']['get'](_0x1a1529);return _0x5956a2['adapter']={'getSuggestion':async _0x4e6e99=>{await this['_waitForServiceReady']();const _0x1b9d5a=await this['_trackChangesService']['get'](_0x4e6e99)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x1b9d5a]),_0x1b9d5a;},'addSuggestion':async({id:_0x440086,type:_0x30d5d3,data:_0x2e2299,originalSuggestionId:_0x33a79b,attributes:_0x279bb0})=>{await this['_waitForServiceReady']();const _0x40ce98={'id':_0x440086,'type':_0x30d5d3,'data':_0x2e2299,'originalSuggestionId':_0x33a79b,'attributes':_0x279bb0},_0x598265=await this['_trackChangesService']['add'](_0x440086,_0x30d5d3,_0x2e2299,_0x33a79b,_0x279bb0)['catch'](_0xd6e1af=>{if(st(_0xd6e1af))return new Promise(_0x2a1a3b=>{this['_bufferedRequests']['set'](_0x440086,{'resolve':_0x2a1a3b,'suggestionData':_0x40ce98});});throw _0xd6e1af;});return this['_bufferedRequests']['delete'](_0x440086),_0x598265;},'updateSuggestion':async(_0x592446,_0x4b0fee)=>{if(await this['_waitForServiceReady'](),'open'!==_0x4b0fee['state'])return this['_trackChangesService']['update'](_0x592446,_0x4b0fee)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x57ff47,_0x184fb5)=>{_0x5956a2['hasSuggestion'](_0x184fb5['id'])&&(_0x5956a2['getSuggestion'](_0x184fb5['id'])['attributes']=_0x184fb5['attributes']);}),this['_trackChangesService']['connect'](_0x9a3808['connection'])['then'](_0x5dde67=>(_0x9a3808['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x5dde67)['then'](()=>{for(const _0x4e9f3a of _0x5dde67){_0x5956a2['addSuggestionData'](_0x4e9f3a)['_saved']=!0x0;}})));}async['reconnect'](){const _0x2db223=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x214714}=this['editor']['plugins']['get'](WebSocketGateway),_0x2fc806=await this['_trackChangesService']['connect'](_0x214714);await this['_fetchMissingUsersForThreads'](_0x2fc806);for(const {suggestionData:_0x5d0335,resolve:_0x10265a}of this['_bufferedRequests']['values']()){let _0x4d697a=_0x2fc806['find'](_0x49d230=>_0x49d230['id']===_0x5d0335['id']);_0x4d697a||(_0x4d697a=await this['_trackChangesService']['add'](_0x5d0335['id'],_0x5d0335['type'],_0x5d0335['data'],_0x5d0335['originalSuggestionId'])),_0x10265a(_0x4d697a);}for(const _0x357ff0 of _0x2fc806)_0x2db223['hasSuggestion'](_0x357ff0['id'])||_0x2db223['addSuggestionData'](_0x357ff0);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x38f0b0=>{this['listenTo'](this['_trackChangesService'],'connected',_0xf66b56=>{_0xf66b56['off'](),_0x38f0b0();});});}async['_fetchMissingUsersForThreads'](_0x1618d2){const _0x35900d=this['editor']['plugins']['get'](_0xbd9206),{connection:_0x113a75}=this['editor']['plugins']['get'](WebSocketGateway),_0x32acf8=new Set();for(const {authorId:_0x5de262}of _0x1618d2)_0x35900d['getUser'](_0x5de262)||_0x32acf8['add'](_0x5de262);if(0x0===_0x32acf8['size'])return;const _0x421806=await _0x270274['getMany'](_0x113a75,Array['from'](_0x32acf8));for(const _0x3e38ff of _0x421806)_0x35900d['getUser'](_0x3e38ff['id'])||_0x35900d['addUser'](_0x3e38ff);}}function et(_0x562248){if(st(_0x562248))return new Promise(()=>{});throw _0x562248;}function st(_0x5d00f0){return _0x5d00f0['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x5d00f0['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x523d5c{static get['requires'](){return[_0x42ae2e,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x5a4d7e=this['editor']['plugins']['get'](WebSocketGateway),_0x1cab93=this['editor']['plugins']['get'](_0x121bef),_0x486787=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x5a4d7e,'change:state',(_0xbb640b,_0x5c473f,_0x435f2c)=>{_0x1cab93['isThreadsLoadingPaused']='connected'!==_0x435f2c;});}),this['listenTo'](_0x5a4d7e,'change:state',(_0x1cf0b1,_0x19ad81,_0x56658d)=>{this['editor']['plugins']['get'](_0x55664d)['switchReadOnly']('connected'!==_0x56658d);}),_0x486787['_setUpService'](this['editor']['config']['get']('collaboration.channelId'));}['destroy'](){this['editor']['plugins']['get'](CloudServicesCommentsAdapter)['_terminateService'](this['editor']['config']['get']('collaboration.channelId')),super['destroy']();}}class RealTimeCollaborativeTrackChanges extends _0x523d5c{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x2d4889];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x523d5c{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
+ ((()=>_0x3b4c9e)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x510d56,Sessions,_0xbd9206];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x51a4ca){super(_0x51a4ca);const _0x4ab4f6=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x4ab4f6);}async['init'](){const _0x8b2b91=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x3a1555=_0x8b2b91['serverHistory'],_0x1ef059=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x3a1555,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x8b2b91['sessionId']});const _0x93e260=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x146c5e,_0x1f1ca6=await _0x5b3750['isBundleUploaded'](_0x1ef059['connection'],_0x93e260);this['editor']['plugins']['get'](_0x510d56)['adapter']={'getRevision':async({revisionId:_0x599ad2})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x599ad2)),'updateRevisions':async _0x53c689=>{await this['_waitForServiceReady']();const _0x2af103=this['_revisionTracker']['currentRevision'];if(_0x1f1ca6&&0x1===_0x53c689['length']&&_0x53c689[0x0]['id']===_0x2af103['id'])return _0x53c689;for(const _0x16b5e8 of _0x53c689)_0x16b5e8['id']===_0x2af103['id']&&(_0x16b5e8['isEmptyCurrent']=_0x16b5e8['fromVersion']===_0x16b5e8['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x53c689,this['_lastRequestId'])['then'](_0x443986=>(this['_lastRequestId']=_0x443986,_0x53c689))['catch'](_0x4ccd92=>{if(it(_0x4ccd92)||'400'===_0x4ccd92['code']&&void 0x0!==_0x4ccd92['data']['wrongRequestId']){for(const _0x4ed028 of _0x53c689){!this['_revisionTracker']['repository']['getRevision'](_0x4ed028['id'])||this['_revisionTracker']['_bufferUpdate'](_0x4ed028['id'],_0x4ed028,!0x1);}if(it(_0x4ccd92)&&'destroyed'!==this['editor']['state'])throw _0x4ccd92;return _0x53c689;}throw _0x4ccd92;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x742007,{revisionsData:_0x2ab476,requestId:_0x5adb88})=>{Math['max'](..._0x2ab476['map'](_0x247a2c=>_0x247a2c['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x2ab476,_0x5adb88);}):this['_handleRevisionsUpdate'](_0x2ab476,_0x5adb88);});const {revisions:_0x1c5213,requestId:_0x8acce3}=await this['_revisionHistoryService']['connect'](_0x1ef059['connection']);_0x1ef059['addToReconnectionStack'](this),this['_lastRequestId']=_0x8acce3,await this['_fetchMissingUsers'](_0x1c5213);for(const _0x25ee99 of _0x1c5213)this['_revisionTracker']['addRevisionData'](_0x25ee99);this['listenTo'](_0x8b2b91,'change:_isConnected',(_0x3e5ba6,_0x2f005e,_0x37d912)=>{_0x37d912&&(this['_oldOffset']=_0x8b2b91['_offset'],_0x3e5ba6['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x1ef059,'state',_0x1b9d42=>_0x1b9d42===_0xb53f3f['CONNECTED']);}async['reconnect'](){const _0x100a0f=this['editor']['plugins']['get'](WebSocketGateway),_0x13b048=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x2a5a6a=async()=>{const _0x1dd0e7=this['_revisionTracker']['currentRevision'],_0x39d004=_0x1dd0e7['id'],_0x5bfa3d=_0x39d004!==_0x13b048['sessionId'];if(_0x5bfa3d){const _0x35b24d=_0x13b048['_offset']-this['_oldOffset'],_0x251b57=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x1dd0e7['toVersion']+_0x35b24d!==_0x251b57){const _0x4dc783=_0x1dd0e7['fromVersion']+_0x35b24d,_0x2aed49=this['editor']['plugins']['get'](_0xbd9206),_0x44f001=this['_revisionTracker']['buildRevisionData']({'revision':_0x1dd0e7,'from':_0x4dc783,'to':_0x251b57});_0x44f001['id']=_0x1dd0e7['id'];const _0x4927f0=_0x44f001['authorsIds']['map'](_0x35bd68=>_0x2aed49['getUser'](_0x35bd68));_0x1dd0e7['_update']({..._0x44f001,'authors':_0x4927f0},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x1dd0e7['id'],_0x44f001,!0x0);}this['_revisionTracker']['_startingVersion']=_0x251b57,(_0x1dd0e7['toVersion']===_0x1dd0e7['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x39d004)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x39d004),this['_revisionTracker']['_createCurrentRevision'](_0x251b57));}const {revisions:_0x428d26,requestId:_0x3209eb}=await this['_revisionHistoryService']['reconnect'](_0x100a0f['connection'],this['_lastRequestId']);_0x5bfa3d&&_0x428d26['length']>0x0?_0x13b048['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x428d26),this['_handleRevisionsUpdate'](_0x428d26,_0x3209eb),this['_revisionTracker']['sendBufferedUpdates']());};return _0x13b048['_isConnected']?_0x2a5a6a():new Promise((_0x3570ac,_0x304f3f)=>{_0x13b048['once']('change:_isConnected',()=>{_0x2a5a6a()['then'](_0x3570ac)['catch'](_0x304f3f);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x1c90f7=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x4a8b4f=>{_0x4a8b4f['off'](),_0x1c90f7();});});}['_getLatestVersionFromServerOperations'](){const _0x11e519=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x5c67fd of _0x11e519)if('marker'!==_0x5c67fd['type']||_0x5c67fd['affectsData'])return _0x5c67fd['baseVersion']+0x1;}['_getLatestVersion'](){const _0xcedb55=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x1d82f7=>{_0xcedb55['_isPendingUpdate']?_0xcedb55['once']('change:_isPendingUpdate',()=>{_0x1d82f7(this['_getLatestVersionFromServerOperations']());}):_0x1d82f7(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x9d3d42,_0x5b00f7){const _0x3ec4d4=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x5b00f7;for(const _0x38758c of _0x9d3d42){const _0x5cde11=_0x3ec4d4['getRevision'](_0x38758c['id']);if(_0x5cde11){if((_0x38758c['fromVersion']||_0x38758c['toVersion'])&&(_0x38758c['diffData']=null),_0x5cde11===this['_revisionTracker']['currentRevision']){const _0x35cfe7=Math['max'](_0x5cde11['toVersion'],_0x38758c['toVersion']),_0x9ee17b=Math['max'](_0x5cde11['fromVersion'],_0x38758c['fromVersion']);let _0x45fb80;_0x5cde11['toVersion']===_0x38758c['toVersion']&&_0x5cde11['fromVersion']===_0x38758c['fromVersion']?(_0x45fb80=!0x0,this['_preventResendingRevisionData'](_0x38758c)):_0x38758c['toVersion']===_0x35cfe7&&_0x38758c['fromVersion']===_0x9ee17b?_0x45fb80=!0x1:(_0x5cde11['toVersion']===_0x35cfe7&&_0x5cde11['fromVersion']===_0x9ee17b||this['_fixRevision']({'revision':_0x5cde11,'from':_0x9ee17b,'to':_0x35cfe7}),_0x45fb80=!0x0),_0x45fb80&&(delete _0x38758c['fromVersion'],delete _0x38758c['toVersion'],delete _0x38758c['diffData'],delete _0x38758c['createdAt'],delete _0x38758c['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x38758c),this['_preventResendingRevisionData'](_0x38758c);}else this['_revisionTracker']['addRevisionData'](_0x38758c);}const _0x1b4e15=_0x3ec4d4['getRevisions']();_0x1b4e15['reverse']();for(let _0x57941f=0x0;_0x57941f<_0x1b4e15['length']-0x1;_0x57941f++){const _0x273a31=_0x1b4e15[_0x57941f],_0x371b11=_0x1b4e15[_0x57941f+0x1];if(_0x273a31['fromVersion']<_0x371b11['toVersion']){const _0x3525d4=_0x371b11['toVersion'],_0x4eb205=Math['max'](_0x3525d4,_0x273a31['toVersion']);this['_fixRevision']({'revision':_0x273a31,'from':_0x3525d4,'to':_0x4eb205});}}}['_fixRevision']({revision:_0xfc44bc,from:_0x4536d1,to:_0x3bf614}={}){const _0x3f6cac=this['editor']['plugins']['get'](_0xbd9206),_0x514180=this['_revisionTracker']['buildRevisionData']({'revision':_0xfc44bc,'from':_0x4536d1,'to':_0x3bf614});_0x514180['authors']=_0x514180['authorsIds']['map'](_0x1c6cf1=>_0x3f6cac['getUser'](_0x1c6cf1)),_0xfc44bc['_update'](_0x514180);}['_preventResendingRevisionData'](_0x328a90){const _0x5bd0bc={};_0x5bd0bc['id']=_0x328a90['id'];for(const _0x27b777 of Object['keys'](_0x328a90))'id'!==_0x27b777&&(_0x5bd0bc[_0x27b777]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x5bd0bc['id'],_0x5bd0bc,!0x0);}async['_fetchMissingUsers'](_0x518281){const _0x453470=this['editor']['plugins']['get'](_0xbd9206),{connection:_0x439f8f}=this['editor']['plugins']['get'](WebSocketGateway),_0x1593e9=new Set();for(const _0x2f8fd3 of _0x518281){for(const _0x3de52b of _0x2f8fd3['authorsIds'])_0xe0e850(_0x3de52b);_0x2f8fd3['creatorId']&&_0xe0e850(_0x2f8fd3['creatorId']);}if(0x0===_0x1593e9['size'])return;const _0x334685=await _0x270274['getMany'](_0x439f8f,Array['from'](_0x1593e9));for(const _0x3d4cfd of _0x334685)_0x453470['getUser'](_0x3d4cfd['id'])||_0x453470['addUser'](_0x3d4cfd);function _0xe0e850(_0x5a5486){_0x453470['getUser'](_0x5a5486)||_0x1593e9['add'](_0x5a5486);}}}function it(_0x34f286){return _0x34f286['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x34f286['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x34f286['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x523d5c{static get['requires'](){return[_0x510d56,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x59157b{['_collapseAt'];constructor(_0x1d2d42,_0x410939=0x6){super(_0x1d2d42);const _0x19dac8=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x410939,this['bind']('isHidden')['to'](this,'usersCount',_0x336703=>_0x336703<_0x410939),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x19dac8['if']('isHidden','ck-presence-list__counter--hidden')],'role':'listitem'},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter']},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter__text']},'children':[{'text':_0x19dac8['to']('usersCount',_0x221312=>'+'+(_0x221312-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x59157b{['items'];['keystrokes'];constructor(_0x33ba9a){super(_0x33ba9a);const _0x35a3fd=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x4de09d(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x35a3fd['if']('hasPopup'),'aria-expanded':_0x35a3fd['to']('isExpanded',_0xc8a4f5=>this['hasPopup']&&String(_0xc8a4f5)),'aria-label':_0x35a3fd['to']('hasPopup',_0x1af98c=>K(_0x33ba9a,_0x1af98c?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x35a3fd['to']('hasPopup',_0x45f12e=>!!_0x45f12e&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x35a3fd['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x35a3fd['to'](_0xe607de=>{const _0x39f53b=_0xe607de,_0x32833d=document['querySelector']('.ck-presence-list__dropdown-list'),_0x531ec5=document['querySelector']('.ck-balloon-panel_with-arrow');_0x32833d?.['contains'](_0x39f53b['relatedTarget'])||_0x531ec5?.['contains'](_0x39f53b['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x81ee10,_0x3648ca,_0x2512ab)=>{this['element']&&(_0x2512ab?this['element']['setAttribute']('aria-expanded',String(this['isExpanded'])):this['element']['removeAttribute']('aria-expanded'));});}['focus'](){this['element']['focus']();}['render'](){super['render'](),this['keystrokes']['listenTo'](this['element']);}}class PresenceListView extends _0x59157b{['counterView'];['inlineListView'];constructor(_0xfc885d,_0x42c08e=0x6){super(_0xfc885d);const _0x280ab9=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x42c08e),this['inlineListView']=new PresenceInlineListView(_0xfc885d),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x28b482 of this['inlineListView']['items'])_0x28b482['tooltipPosition']='s';this['inlineListView']['items']['first']&&(this['inlineListView']['items']['first']['tooltipPosition']='se');}),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list','ck-reset','ck-rounded-corners',_0x280ab9['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x59157b{['listWrapperView'];constructor(_0x261e58,_0x44a21d){super(_0x261e58);const _0x5ca4c2=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x261e58,_0x44a21d),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x261e58,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x5ca4c2['to'](_0x50baeb=>{const _0xf0ffa3=_0x50baeb,_0x551f1d=document['querySelector']('.ck-presence-list__list'),_0x3ddefc=document['querySelector']('.ck-balloon-panel_with-arrow');_0x551f1d?.['contains'](_0xf0ffa3['relatedTarget'])||_0x3ddefc?.['contains'](_0xf0ffa3['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x3a285a{constructor(_0x33dfec,_0x50ecfb){super(_0x33dfec);const _0x276136=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x50ecfb?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x276136['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x276136['to']('role'),'aria-label':_0x276136['to']('ariaLabel'),'aria-labelledby':_0x276136['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x14a421['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x11ac01=this['element'];_0x11ac01&&(this['_isScrollable']=Math['max'](_0x11ac01['scrollHeight'],_0x11ac01['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x245139{['userView'];constructor(_0x4a0428,_0xebcc3,_0x4e9c86){super(_0x4a0428);const _0x3a4724=this['bindTemplate'];this['userView']=new _0x1b8b54(_0x4a0428,_0xebcc3);const _0x1f70dc={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0xebcc3['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0xebcc3['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0xebcc3['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0xebcc3['color']['getColorVariable'](),'--ck-user-color-alpha':_0xebcc3['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x4e9c86&&(_0x1f70dc['tag']='button',_0x1f70dc['on']={'click':_0x3a4724['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1f70dc);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x59157b{['userView'];['markerView'];constructor(_0x7c1a90,_0x176e97,_0x3cc627){super(_0x7c1a90);const _0x3abf2a=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x1b8b54(_0x7c1a90,_0x176e97),this['markerView']=new MarkerView(_0x7c1a90,_0x176e97);const _0x3a36d6=new _0x1c19b1(_0x7c1a90);_0x3a36d6['template']['tag']='span',_0x3a36d6['text']=_0x176e97['name'];const _0x56d939={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x3abf2a['to']('isFocusable',_0x590853=>!!_0x590853&&0x0),'aria-labelledby':_0x3a36d6['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x3abf2a['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x3abf2a['to']('hasTooltip',_0x33d49d=>!_0x33d49d),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x3a36d6]};_0x3cc627&&(_0x56d939['tag']='button',_0x56d939['on']={'click':_0x3abf2a['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x56d939);}}class MarkerView extends _0x59157b{constructor(_0x11d041,_0x18201b){super(_0x11d041),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x18201b['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x18201b['color']['getColorVariable'](),'--ck-user-color-alpha':_0x18201b['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x191ab4{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x49e441){super(_0x49e441),this['context']['config']['define']('presenceList',nt);const _0x4772a3=_0x49e441['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x4772a3)throw new _0x44690c('presencelist-collapseat-invalid-format',this);if(_0x4772a3<0x1)throw new _0x44690c('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0xd26e88(),this['balloonPanelView']=new _0x19c131(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x506cd9 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x506cd9);this['listenTo'](this['_allConnectedUsers'],'add',(_0x5abd12,_0x1df10b)=>{this['_handleUserAdd'](_0x1df10b);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x519c26,_0x710a0a)=>{this['_handleUserRemove'](_0x710a0a);});}['_createView'](){const _0x51aa71=this['context'],_0x4988ee=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x1b1c58=this['balloonPanelView'];if(!_0x54c657(_0x51aa71['config']['get']('presenceList.container')))throw new _0x44690c('presencelist-missing-container',this);return _0x4988ee['counterView']['bind']('usersCount')['to'](this),_0x4988ee['bind']('isCollapsed')['to'](this,'usersCount',_0x225c7f=>{const {collapseAt:_0x503af1}=_0x51aa71['config']['get']('presenceList'),_0x1c29b0=_0x225c7f>=_0x503af1;if(_0x1c29b0&&!_0x4988ee['inlineListView']['items']['find'](_0xdbbeae=>_0xdbbeae instanceof PresenceCounterView)){const _0x227d83=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x227d83&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x4988ee['inlineListView']['items']['add'](_0x4988ee['counterView']);}return _0x1c29b0||this['hideDropdown'](),_0x1c29b0;}),_0x4988ee['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x3846eb=>{const _0x192f7a=_0x51aa71['config']['get']('presenceList'),_0x44f8b7=new PresenceInlineListItemView(_0x51aa71['locale'],_0x3846eb,!!_0x192f7a['onClick']);return _0x44f8b7['bind']('hasTooltip')['to'](_0x4988ee,'isCollapsed',_0x278501=>!_0x278501),_0x44f8b7['bind']('isFocusable')['to'](_0x4988ee,'isCollapsed',_0x328d39=>!_0x328d39),_0x192f7a['onClick']&&this['listenTo'](_0x44f8b7,'execute',()=>{this['view']['isCollapsed']||_0x192f7a['onClick'](_0x3846eb,_0x44f8b7['element']);}),_0x44f8b7;}),this['listenTo'](_0x4988ee['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x4988ee['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x4988ee['inlineListView']['keystrokes']['set']('Enter',(_0x5d3066,_0x49636c)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x49636c());}),_0x4988ee['render'](),_0x1b1c58['render'](),_0x52aaad({'emitter':_0x4988ee,'activator':()=>_0x1b1c58['isVisible'],'contextElements':[_0x1b1c58['element'],_0x4988ee['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x51aa71['config']['get']('presenceList.container')['appendChild'](_0x4988ee['element']),this['_bodyCollection']=new _0x418f13(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x4988ee;}['_handleUserAdd'](_0x10c75b){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x10c75b['isMe'])return;const _0x48fcc9=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x48fcc9-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x1a5be1=_0x10c75b['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x10c75b,_0x1a5be1);}['_handleUserRemove'](_0x20e536){this['usersCount']--;const {collapseAt:_0x49b39b}=this['context']['config']['get']('presenceList'),_0x190cfa=this['usersCount']>=_0x49b39b;if(this['currentDisplayedUsers']['get'](_0x20e536['id']))this['currentDisplayedUsers']['remove'](_0x20e536['id']);else{if(_0x190cfa&&this['currentDisplayedUsers']['length']+0x1===_0x49b39b-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x190cfa?0x1:0x0)<this['usersCount']){for(const _0x24cddb of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x24cddb['id'])&&(this['currentDisplayedUsers']['add'](_0x24cddb,Math['min'](this['currentDisplayedUsers']['length']-(_0x190cfa?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x190cfa?0x1:0x0)===_0x49b39b-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x365e1f=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x365e1f['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x3e2661}=this['presenceDropdownView'];_0x3e2661['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x2a246a=>{if(!_0x365e1f['displayMe']&&_0x2a246a['isMe'])return null;const _0x40d507=new PresenceDropdownListItemView(this['context']['locale'],_0x2a246a,!!_0x365e1f['onClick']);return _0x365e1f['onClick']&&this['listenTo'](_0x40d507,'execute',()=>{_0x365e1f['onClick'](_0x2a246a,_0x40d507['element']);}),_0x40d507;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x3e2661['focus'](),_0x3e2661['checkIfScrollable']();const _0x2cc556=(_0x5cb864,_0x4f031a)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x4f031a();};_0x3e2661['keystrokes']['set']('Esc',_0x2cc556),_0x3e2661['keystrokes']['set']('Shift+Tab',_0x2cc556),_0x3e2661['keystrokes']['set']('Tab',(_0x963499,_0x24b7f8)=>{!function(_0x34a1d4){const _0x4f3024=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x3c6c9d=>_0x3c6c9d+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x380dfb=[...document['body']['querySelectorAll'](_0x4f3024)]['filter'](_0x20e04e=>_0x20e04e===document['activeElement']||_0x20e04e['offsetWidth']+_0x20e04e['offsetHeight']>0x0)['sort']((_0x451683,_0x35ea7b)=>(_0x451683['tabIndex']||0x0)-(_0x35ea7b['tabIndex']||0x0)),_0xa3da46=_0x380dfb['indexOf'](_0x34a1d4),_0x2887ce=_0x380dfb[(_0xa3da46+0x1)%_0x380dfb['length']];_0x2887ce&&_0x2887ce['focus']();}(this['view']['element']),this['hideDropdown'](),_0x24b7f8();}),_0x3e2661['focusTracker']['add'](this['view']['element']),_0x3e2661['focusTracker']['on']('change:isFocused',(_0x109d8d,_0x1b97be,_0x4fa51e)=>{_0x4fa51e||this['hideDropdown']();});}['hideDropdown'](){this['presenceDropdownView']&&(this['view']['inlineListView']['isExpanded']=!0x1,this['balloonPanelView']['unpin'](),this['balloonPanelView']['content']['remove'](this['presenceDropdownView']),this['presenceDropdownView']['destroy'](),this['presenceDropdownView']=void 0x0);}['destroy'](){super['destroy'](),this['view']&&this['view']['isRendered']&&this['view']['destroy'](),this['_bodyCollection']&&(this['_bodyCollection']['detachFromDom'](),this['_bodyCollection']['destroy'](),this['_bodyCollection']=null);}}class PresenceList extends _0x191ab4{static get['requires'](){return[Sessions,PresenceListUI];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}export{CloudServicesCommentsAdapter,CloudServicesRevisionHistoryAdapter,CloudServicesTrackChangesAdapter,PresenceList,PresenceListUI,RealTimeCollaborationClient,RealTimeCollaborativeComments,RealTimeCollaborativeEditing,RealTimeCollaborativeRevisionHistory,RealTimeCollaborativeTrackChanges,Sessions,WebSocketGateway};