@ckeditor/ckeditor5-real-time-collaboration 48.1.0 → 48.8.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/index.js +6 -6
  2. package/dist/translations/af.js +1 -1
  3. package/dist/translations/af.umd.js +1 -1
  4. package/dist/translations/ar.js +1 -1
  5. package/dist/translations/ar.umd.js +1 -1
  6. package/dist/translations/ast.js +1 -1
  7. package/dist/translations/ast.umd.js +1 -1
  8. package/dist/translations/az.js +1 -1
  9. package/dist/translations/az.umd.js +1 -1
  10. package/dist/translations/be.js +1 -1
  11. package/dist/translations/be.umd.js +1 -1
  12. package/dist/translations/bg.js +1 -1
  13. package/dist/translations/bg.umd.js +1 -1
  14. package/dist/translations/bn.js +1 -1
  15. package/dist/translations/bn.umd.js +1 -1
  16. package/dist/translations/bs.js +1 -1
  17. package/dist/translations/bs.umd.js +1 -1
  18. package/dist/translations/ca.js +1 -1
  19. package/dist/translations/ca.umd.js +1 -1
  20. package/dist/translations/cs.js +1 -1
  21. package/dist/translations/cs.umd.js +1 -1
  22. package/dist/translations/da.js +1 -1
  23. package/dist/translations/da.umd.js +1 -1
  24. package/dist/translations/de-ch.js +1 -1
  25. package/dist/translations/de-ch.umd.js +1 -1
  26. package/dist/translations/de.js +1 -1
  27. package/dist/translations/de.umd.js +1 -1
  28. package/dist/translations/el.js +1 -1
  29. package/dist/translations/el.umd.js +1 -1
  30. package/dist/translations/en-au.js +1 -1
  31. package/dist/translations/en-au.umd.js +1 -1
  32. package/dist/translations/en-gb.js +1 -1
  33. package/dist/translations/en-gb.umd.js +1 -1
  34. package/dist/translations/en.js +1 -1
  35. package/dist/translations/en.umd.js +1 -1
  36. package/dist/translations/eo.js +1 -1
  37. package/dist/translations/eo.umd.js +1 -1
  38. package/dist/translations/es-co.js +1 -1
  39. package/dist/translations/es-co.umd.js +1 -1
  40. package/dist/translations/es.js +1 -1
  41. package/dist/translations/es.umd.js +1 -1
  42. package/dist/translations/et.js +1 -1
  43. package/dist/translations/et.umd.js +1 -1
  44. package/dist/translations/eu.js +1 -1
  45. package/dist/translations/eu.umd.js +1 -1
  46. package/dist/translations/fa.js +1 -1
  47. package/dist/translations/fa.umd.js +1 -1
  48. package/dist/translations/fi.js +1 -1
  49. package/dist/translations/fi.umd.js +1 -1
  50. package/dist/translations/fr.js +1 -1
  51. package/dist/translations/fr.umd.js +1 -1
  52. package/dist/translations/gl.js +1 -1
  53. package/dist/translations/gl.umd.js +1 -1
  54. package/dist/translations/gu.js +1 -1
  55. package/dist/translations/gu.umd.js +1 -1
  56. package/dist/translations/he.js +1 -1
  57. package/dist/translations/he.umd.js +1 -1
  58. package/dist/translations/hi.js +1 -1
  59. package/dist/translations/hi.umd.js +1 -1
  60. package/dist/translations/hr.js +1 -1
  61. package/dist/translations/hr.umd.js +1 -1
  62. package/dist/translations/hu.js +1 -1
  63. package/dist/translations/hu.umd.js +1 -1
  64. package/dist/translations/hy.js +1 -1
  65. package/dist/translations/hy.umd.js +1 -1
  66. package/dist/translations/id.js +1 -1
  67. package/dist/translations/id.umd.js +1 -1
  68. package/dist/translations/it.js +1 -1
  69. package/dist/translations/it.umd.js +1 -1
  70. package/dist/translations/ja.js +1 -1
  71. package/dist/translations/ja.umd.js +1 -1
  72. package/dist/translations/jv.js +1 -1
  73. package/dist/translations/jv.umd.js +1 -1
  74. package/dist/translations/kk.js +1 -1
  75. package/dist/translations/kk.umd.js +1 -1
  76. package/dist/translations/km.js +1 -1
  77. package/dist/translations/km.umd.js +1 -1
  78. package/dist/translations/kn.js +1 -1
  79. package/dist/translations/kn.umd.js +1 -1
  80. package/dist/translations/ko.js +1 -1
  81. package/dist/translations/ko.umd.js +1 -1
  82. package/dist/translations/ku.js +1 -1
  83. package/dist/translations/ku.umd.js +1 -1
  84. package/dist/translations/lt.js +1 -1
  85. package/dist/translations/lt.umd.js +1 -1
  86. package/dist/translations/lv.js +1 -1
  87. package/dist/translations/lv.umd.js +1 -1
  88. package/dist/translations/ms.js +1 -1
  89. package/dist/translations/ms.umd.js +1 -1
  90. package/dist/translations/nb.js +1 -1
  91. package/dist/translations/nb.umd.js +1 -1
  92. package/dist/translations/ne.js +1 -1
  93. package/dist/translations/ne.umd.js +1 -1
  94. package/dist/translations/nl.js +1 -1
  95. package/dist/translations/nl.umd.js +1 -1
  96. package/dist/translations/no.js +1 -1
  97. package/dist/translations/no.umd.js +1 -1
  98. package/dist/translations/oc.js +1 -1
  99. package/dist/translations/oc.umd.js +1 -1
  100. package/dist/translations/pl.js +1 -1
  101. package/dist/translations/pl.umd.js +1 -1
  102. package/dist/translations/pt-br.js +1 -1
  103. package/dist/translations/pt-br.umd.js +1 -1
  104. package/dist/translations/pt.js +1 -1
  105. package/dist/translations/pt.umd.js +1 -1
  106. package/dist/translations/ro.js +1 -1
  107. package/dist/translations/ro.umd.js +1 -1
  108. package/dist/translations/ru.js +1 -1
  109. package/dist/translations/ru.umd.js +1 -1
  110. package/dist/translations/si.js +1 -1
  111. package/dist/translations/si.umd.js +1 -1
  112. package/dist/translations/sk.js +1 -1
  113. package/dist/translations/sk.umd.js +1 -1
  114. package/dist/translations/sl.js +1 -1
  115. package/dist/translations/sl.umd.js +1 -1
  116. package/dist/translations/sq.js +1 -1
  117. package/dist/translations/sq.umd.js +1 -1
  118. package/dist/translations/sr-latn.js +1 -1
  119. package/dist/translations/sr-latn.umd.js +1 -1
  120. package/dist/translations/sr.js +1 -1
  121. package/dist/translations/sr.umd.js +1 -1
  122. package/dist/translations/sv.js +1 -1
  123. package/dist/translations/sv.umd.js +1 -1
  124. package/dist/translations/th.js +1 -1
  125. package/dist/translations/th.umd.js +1 -1
  126. package/dist/translations/ti.js +1 -1
  127. package/dist/translations/ti.umd.js +1 -1
  128. package/dist/translations/tk.js +1 -1
  129. package/dist/translations/tk.umd.js +1 -1
  130. package/dist/translations/tr.js +1 -1
  131. package/dist/translations/tr.umd.js +1 -1
  132. package/dist/translations/tt.js +1 -1
  133. package/dist/translations/tt.umd.js +1 -1
  134. package/dist/translations/ug.js +1 -1
  135. package/dist/translations/ug.umd.js +1 -1
  136. package/dist/translations/uk.js +1 -1
  137. package/dist/translations/uk.umd.js +1 -1
  138. package/dist/translations/ur.js +1 -1
  139. package/dist/translations/ur.umd.js +1 -1
  140. package/dist/translations/uz.js +1 -1
  141. package/dist/translations/uz.umd.js +1 -1
  142. package/dist/translations/vi.js +1 -1
  143. package/dist/translations/vi.umd.js +1 -1
  144. package/dist/translations/zh-cn.js +1 -1
  145. package/dist/translations/zh-cn.umd.js +1 -1
  146. package/dist/translations/zh.js +1 -1
  147. package/dist/translations/zh.umd.js +1 -1
  148. package/package.json +13 -13
package/dist/index.js CHANGED
@@ -20,9 +20,9 @@
20
20
  *
21
21
  *
22
22
  */
23
- import{ContextPlugin as _0xb2d076,Plugin as _0x1885be,PendingActions as _0x5ed6bf,Context as _0x53fadc}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x1038f1,CKEditorError as _0x36814d,Collection as _0x2dbc61,global as _0x58cf37,version as _0x4b75a5,uid as _0x4b8b51,KeystrokeHandler as _0x154e98}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x52f767,View as _0x1cd989,ListView as _0x97e680,ListItemView as _0x1349fc,LabelView as _0x85a073,BalloonPanelView as _0x413bf4,clickOutsideHandler as _0xe12ddf,BodyCollection as _0x411c47}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x1d52d0,History as _0x5da6bc,NoOperation as _0x18749d,InsertOperation as _0x1b0982,MarkerOperation as _0x19f48f,RootAttributeOperation as _0x4e54c2,transformOperationSets as _0x231820,OperationFactory as _0x437df2}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x23396a}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x712f94,WEB_SOCKET_GATEWAY_STATES as _0x25ca68,CollaborativeEditingService as _0x396fa4,User as _0x5b2314,CommentsService as _0x2134a6,TrackChangesService as _0x1a7890,RevisionHistoryService as _0x57f877,EditorService as _0x9e6478}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x443155,UserView as _0x365ed9}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0xd752eb}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x3a4ea0,TrackChanges as _0xdaae7d}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x3f8b74,Comments as _0x512ce2,CommentsEditing as _0x379a0a}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x2ca609}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x2487a9}from'es-toolkit/compat';class z extends _0xb2d076{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
- ((()=>_0x712f94)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x23396a,_0x52f767];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x5b73ef){super(_0x5b73ef),this['set']('state',_0x25ca68['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x1038f1())();}['init'](){const _0x39355b=this['context'],_0x8eb855=_0x39355b['plugins']['get'](_0x23396a),_0x556b7f=_0x39355b['plugins']['get'](_0x52f767);if(!_0x8eb855['token'])throw new _0x36814d('websocketgateway-missing-token',this);if(!_0x8eb855['webSocketUrl'])throw new _0x36814d('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),z['WebSocketGateway']['connect'](_0x8eb855['token'],_0x8eb855['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x5df34b=>{if(this['connection']=_0x5df34b,this['bind']('state')['to'](_0x5df34b,'state',this,'_isBrowserOffline',(_0x4b3f6e,_0x3a054e)=>('connected'!==_0x4b3f6e&&(this['_shouldPluginsReconnect']=!0x0),_0x3a054e||_0x4b3f6e!==_0x25ca68['CONNECTED']?_0x25ca68['DISCONNECTED']:this['state']==_0x25ca68['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x25ca68['CONNECTING']):_0x25ca68['CONNECTED'])),this['connection']['on']('error',(_0x3894e1,_0x455f23)=>{if('limitExceeded'!==_0x455f23['code'])throw console['error'](_0x455f23),new _0x36814d('cloudservices-init',null,{'originalError':_0x455f23});_0x556b7f['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'});}),!_0x5df34b['me'])return new Promise(_0x3a6275=>_0x5df34b['on']('change:me',_0x3a6275));})['catch'](_0x4d8f56=>{throw console['error'](_0x4d8f56),new _0x36814d('cloudservices-init',null,{'originalError':_0x4d8f56});});}['addToReconnectionStack'](_0x55f0e6){if('function'!=typeof _0x55f0e6['reconnect'])throw new _0x36814d('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x55f0e6))throw new _0x36814d('websocketgateway-plugin-already-registered',this,{'name':_0x55f0e6['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x55f0e6);}['removeFromReconnectionStack'](_0x4b953b){this['_reconnectionStack']['delete'](_0x4b953b);}['isInReconnectionStack'](_0x28a86f){return this['_reconnectionStack']['has'](_0x28a86f);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x45e43a=>_0x45e43a['reconnect']())))['then'](()=>this['state']=_0x25ca68['CONNECTED'])['catch'](_0x5a9e25=>{throw console['error'](_0x5a9e25),new _0x36814d('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x25ca68['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Y extends _0xb2d076{['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[z,_0x443155];}constructor(_0x394b2f){super(_0x394b2f),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x2dbc61(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x443155);}['init'](){const _0xc2ae31=this['context']['plugins']['get'](z);this['listenTo'](_0xc2ae31,'change:state',(_0x8a7cf7,_0x2efede,_0x283d21)=>{if('connected'!==_0x283d21)this['channelSessions']['forEach'](_0x5a7694=>_0x5a7694['clear']()),this['channelConnectedUsers']['forEach'](_0x35c9be=>_0x35c9be['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x5954e1,_0x239fe9]of this['_registeredSessions'])for(const _0x154f72 of _0x239fe9)this['_handleSessionAdd'](_0x5954e1,_0x154f72);}}),this['_createUser'](_0xc2ae31['connection']['me'],!0x0);}['register'](_0x49036b,_0x2536b1){if(this['_registeredSessions']['has'](_0x49036b))throw new _0x36814d('sessions-register-already-registered',null,{'channelId':_0x49036b});this['_registeredSessions']['set'](_0x49036b,_0x2536b1),this['channelSessions']['set'](_0x49036b,new _0x2dbc61()),this['channelConnectedUsers']['set'](_0x49036b,new _0x2dbc61()),this['listenTo'](_0x2536b1,'add',(_0x1ee3b8,_0x1fee36)=>this['_handleSessionAdd'](_0x49036b,_0x1fee36)),this['listenTo'](_0x2536b1,'remove',(_0x55c37a,_0x7abc0d)=>this['_handleSessionRemove'](_0x49036b,_0x7abc0d));for(const _0x37a735 of _0x2536b1)this['_handleSessionAdd'](_0x49036b,_0x37a735);}['unregister'](_0x28530a){if(!this['_registeredSessions']['has'](_0x28530a))throw new _0x36814d('sessions-unregister-not-exist',null,{'channelId':_0x28530a});const _0x521a07=this['_registeredSessions']['get'](_0x28530a);this['stopListening'](_0x521a07);for(const _0x2a3766 of _0x521a07)'connected'===this['context']['plugins']['get'](z)['state']&&this['_handleSessionRemove'](_0x28530a,_0x2a3766);this['_registeredSessions']['delete'](_0x28530a),this['channelSessions']['delete'](_0x28530a),this['channelConnectedUsers']['delete'](_0x28530a);}get['mySessionId'](){return this['context']['plugins']['get'](z)['connection']['sessionId'];}['getUserBySessionId'](_0x46dad5){for(const _0x9e8e70 of this['channelSessions']['values']())for(const _0x902170 of _0x9e8e70)if(_0x902170['id']===_0x46dad5)return _0x902170['user'];}['getUserSessions'](_0x51f31c,_0x2a356d){const _0x11ace6=_0x2a356d?[this['channelSessions']['get'](_0x2a356d)]:this['channelSessions']['values'](),_0x1e7b09=new Set();for(const _0x1fd8f4 of _0x11ace6)for(const _0x3852af of _0x1fd8f4)_0x3852af['user']['id']===_0x51f31c['id']&&_0x1e7b09['add'](_0x3852af['id']);return _0x1e7b09;}['getUserRole'](_0x4ba90a){for(const _0x58a643 of this['channelSessions']['values']())for(const _0x4f9fc8 of _0x58a643)if(_0x4f9fc8['user']===_0x4ba90a)return _0x4f9fc8['role'];}['_handleSessionAdd'](_0x3cc26c,_0x72c74d){if('connected'!==this['context']['plugins']['get'](z)['state'])return;const _0x565691=_0x72c74d['user'],_0x274a53=this['_users']['getUser'](_0x565691['id'])||this['_createUser'](_0x565691),_0x5685fe=Object['assign']({},_0x72c74d,{'user':_0x274a53});if(this['channelSessions']['get'](_0x3cc26c)['add'](_0x5685fe),!_0x565691['hiddenInPresenceList']){const _0x4773c9=this['channelConnectedUsers']['get'](_0x3cc26c);_0x4773c9['has'](_0x274a53['id'])||_0x4773c9['add'](_0x274a53),this['allConnectedUsers']['has'](_0x274a53['id'])||_0x565691['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x274a53,_0x274a53['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x3cc26c,{'channelId':_0x3cc26c,'session':_0x5685fe});}['_handleSessionRemove'](_0x1c8436,_0x991627){if('connected'!==this['context']['plugins']['get'](z)['state'])return;const _0x4042be=this['channelConnectedUsers']['get'](_0x1c8436),_0x5455bd=_0x991627['user'];_0x5455bd['id']&&(this['channelSessions']['get'](_0x1c8436)['remove'](_0x991627['id']),_0x4042be['has'](_0x5455bd['id'])&&!this['getUserSessions'](_0x5455bd,_0x1c8436)['size']&&_0x4042be['remove'](_0x5455bd['id']),this['allConnectedUsers']['get'](_0x5455bd['id'])&&!this['getUserSessions'](_0x5455bd)['size']&&this['allConnectedUsers']['remove'](_0x5455bd['id']));}['_createUser'](_0x2bce25,_0x28c66a){const _0x41f287=this['_users']['addUser'](_0x2bce25);return _0x28c66a&&this['_users']['defineMe'](_0x2bce25['id']),_0x41f287['orderNumber']=this['_uniqueUsersCount']++,_0x41f287;}}class K extends _0x1885be{['_domEmitter']=new(_0x1038f1())();static get['requires'](){return[Y];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x2c6bf6=this['editor'],_0xe43a5a=_0x2c6bf6['plugins']['get'](Y);_0x2c6bf6['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x159a0f,{writer:_0xf180ae})=>function(_0x12f5e4,_0x2ab50d,_0x3b7bbc,_0xdacc61){const _0x367855=_0x12f5e4['markerName']['split'](':')[0x2],_0x3d90b2=_0x3b7bbc['getUserBySessionId'](_0x367855);if(!_0x3d90b2||_0x367855===_0x3b7bbc['mySessionId'])return;if(!_0xdacc61['model']['schema']['checkChild'](_0x12f5e4['markerRange']['start'],'$text'))return;const _0x1cca60={'class':'ck-user__marker\x20'+_0x3d90b2['color']['getMarkerClass'](),'style':Q(_0x3d90b2),'data-name':_0x3d90b2['name'],'data-session-id':_0x367855},_0x4cd0bd=_0xdacc61['model']['markers']['get'](_0x12f5e4['markerName']),_0x32b924=_0x4cd0bd['getStart'](),_0x4ff0b2=_0x32b924['nodeAfter'],_0x11ff9e=_0xdacc61['model']['schema'];if(_0x4ff0b2&&_0x11ff9e['isObject'](_0x4ff0b2)&&_0x11ff9e['isInline'](_0x4ff0b2)&&!_0xdacc61['model']['markers']['get']('user:range:'+_0x367855)['getRange']()['isCollapsed'])return;const _0x25efc0=_0x32b924['parent'];return _0xdacc61['model']['schema']['isLimit'](_0x25efc0)&&!_0xdacc61['model']['hasContent'](_0x25efc0)&&(_0x1cca60['contenteditable']=!0x1),function(_0xa2782a,_0x10ed87,_0x5dc214){const _0x334921=_0xa2782a['createUIElement']('span',_0x10ed87);return _0xa2782a['setCustomProperty']('userPositionMarker',!0x0,_0x334921),_0x334921['render']=function(_0x3f5aaf){const _0x2c6848=this['toDomElement'](_0x3f5aaf),_0x3136c6=document['createElement']('span');return _0x3136c6['classList']['add']('ck-user__marker-tooltip'),_0x3136c6['setAttribute']('contenteditable','false'),_0x3136c6['setAttribute']('spellcheck','false'),_0x3136c6['textContent']=_0x5dc214['name'],_0x2c6848['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x3136c6['outerHTML']+'⁠',_0x2c6848['addEventListener']('mouseenter',()=>{_0x2c6848['classList']['add']('ck-user__marker_hovered');}),_0x2c6848['addEventListener']('mouseleave',()=>{_0x2c6848['classList']['remove']('ck-user__marker_hovered');}),_0x2c6848;},_0x334921['isSimilar']=function(_0x3c96d8){return!(!this['getCustomProperty']('userPositionMarker')||!_0x3c96d8['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x3c96d8['getAttribute']('data-session-id'));},_0x334921;}(_0x2ab50d,_0x1cca60,_0x3d90b2);}(_0x159a0f,_0xf180ae,_0xe43a5a,_0x2c6bf6)}),_0x2c6bf6['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x3e6f14=>function(_0x3520a0,_0x200e2e){const _0x52ddef=_0x3520a0['markerName']['split'](':')[0x2];if(_0x52ddef===_0x200e2e['mySessionId'])return null;const _0x287637=_0x200e2e['getUserBySessionId'](_0x52ddef);if(!_0x287637)return{'id':_0x52ddef,'classes':[]};return{'id':_0x52ddef,'classes':['ck-user__selection',_0x287637['color']['getSelectionClass']()],'attributes':{'style':Q(_0x287637),'data-session-id':_0x52ddef},'priority':0x7d0+_0x287637['orderNumber']};}(_0x3e6f14,_0xe43a5a)}),function(_0x28d86b){const _0x20ab44=_0x28d86b['model'],_0x66490f=new Map(),_0x112905=_0x28d86b['plugins']['get'](Y);_0x20ab44['markers']['on']('update:user:range',(_0x2dc6f1,_0x19fd77,_0x15b60d,_0x486695)=>{if(!_0x486695&&_0x66490f['get'](_0x19fd77['name']))return _0x66490f['get'](_0x19fd77['name'])['detach'](),void _0x66490f['delete'](_0x19fd77['name']);const _0x2e9233=_0x19fd77['name']['split'](':')[0x2];if(_0x2e9233===_0x112905['mySessionId'])return;const _0x262cd3='user:position:'+_0x2e9233;_0x20ab44['markers']['has'](_0x262cd3)&&_0x28d86b['editing']['reconvertMarker'](_0x262cd3),_0x19fd77['on']('change:range',(_0x1acb77,_0xd0e1b,_0x291e22)=>{if('$graveyard'!=_0xd0e1b['root']['rootName']&&'$graveyard'==_0x19fd77['getRange']()['root']['rootName']&&!_0x66490f['has'](_0x19fd77['name'])){const _0x2b0edb=_0x20ab44['schema']['getNearestSelectionRange'](_0x291e22['deletionPosition']);if(_0x2b0edb){const _0x2f18cd=_0x1d52d0['fromRange'](_0x2b0edb);_0x66490f['set'](_0x19fd77['name'],_0x2f18cd),_0x2f18cd['on']('change:range',(_0x2d7a22,_0x542da8,_0x4b049b)=>{if('$graveyard'==_0x2f18cd['root']['rootName']){const _0x1f6b94=_0x20ab44['schema']['getNearestSelectionRange'](_0x4b049b['deletionPosition']);_0x1f6b94?(_0x2f18cd['start']=_0x1f6b94['start'],_0x2f18cd['end']=_0x1f6b94['end']):(_0x66490f['delete'](_0x19fd77['name']),_0x2f18cd['detach']());}});}}});}),_0x20ab44['document']['on']('change',()=>{_0x66490f['size']>0x0&&_0x20ab44['enqueueChange']({'isUndoable':!0x1},_0x42c482=>{for(const [_0x2eab59,_0x52acbe]of _0x66490f)'$graveyard'==_0x20ab44['markers']['get'](_0x2eab59)['getRange']()['root']['rootName']&&(J(_0x2eab59['split'](':')[0x2],_0x52acbe['toRange'](),_0x20ab44,_0x42c482),_0x52acbe['detach']());_0x66490f['clear']();});});}(_0x2c6bf6),this['_domEmitter']['listenTo'](_0x58cf37['document'],'keydown',(_0x6f42c0,{key:_0xb7984c})=>{'Escape'===_0xb7984c&&function(_0x5c3ca7){_0x5c3ca7['editing']['view']['change'](_0x35d8f3=>{for(const _0x589b64 of _0x5c3ca7['model']['markers']){if(!_0x589b64['name']['startsWith']('user:position'))continue;const _0x229a4d=_0x5c3ca7['editing']['mapper']['markerNameToElements'](_0x589b64['name']);if(_0x229a4d){for(const _0x309325 of _0x229a4d)_0x35d8f3['removeClass']('ck-user__marker_hovered',_0x309325);}}});}(_0x2c6bf6);},{'useCapture':!0x0});}['afterInit'](){const _0x551f51=this['editor'],_0x1027a3=_0x551f51['commands']['get']('undo');_0x1027a3&&_0x551f51['model']['on']('applyOperation',(_0x35b0dd,_0x48b41c)=>{const _0x3a8ae2=_0x48b41c[0x0];if(!_0x3a8ae2['isDocumentOperation'])return;if('marker'!=_0x3a8ae2['type']||!_0x3a8ae2['name']['startsWith']('user:'))return;const _0x3b48de=_0x3a8ae2['batch'];_0x1027a3['_createdBatches']['has'](_0x3b48de)&&(_0x3a8ae2['newRange']=_0x3a8ae2['oldRange']?_0x551f51['model']['createRange'](_0x3a8ae2['oldRange']['start'],_0x3a8ae2['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x9b2a2=this['editor'],_0x1fcf31=_0x9b2a2['model']['document'],_0x59e33d=_0x9b2a2['plugins']['get'](Y);_0x9b2a2['model']['enqueueChange']({'isUndoable':!0x1},_0x35b5d2=>{const _0x179c57='user:range:'+_0x59e33d['mySessionId'],_0x25eae0='user:position:'+_0x59e33d['mySessionId'],_0xc8f46f=_0x9b2a2['model']['markers']['has'](_0x179c57);_0x9b2a2['editing']['view']['hasDomSelection']?J(_0x59e33d['mySessionId'],_0x1fcf31['selection']['getFirstRange'](),_0x9b2a2['model'],_0x35b5d2):_0xc8f46f&&(_0x35b5d2['removeMarker'](_0x179c57),_0x35b5d2['removeMarker'](_0x25eae0));});}}function J(_0x32528e,_0x3ff6cb,_0x4bc1e5,_0x453482){const _0x16ecb7='user:range:'+_0x32528e,_0xde9c40='user:position:'+_0x32528e,_0x4d51b9=_0x3ff6cb['getContainedElement']();let _0x33e9b0=_0x3ff6cb['start'];if(_0x4d51b9&&_0x4d51b9['is']('element','tableCell')){const _0xc81df8=function(_0x2db78c,_0x5e70d0){for(const _0x50e579 of _0x2db78c['getPositions']())if(_0x5e70d0['schema']['checkChild'](_0x50e579,'$text'))return _0x50e579;}(_0x3ff6cb,_0x4bc1e5);_0xc81df8&&(_0x33e9b0=_0xc81df8,_0x3ff6cb=_0x453482['createRange'](_0x33e9b0));}const _0x3dcde6=_0x453482['createRange'](_0x33e9b0);_0x4bc1e5['markers']['has'](_0x16ecb7)?(_0x453482['updateMarker'](_0x16ecb7,{'range':_0x3ff6cb}),_0x453482['updateMarker'](_0xde9c40,{'range':_0x3dcde6})):(_0x453482['addMarker'](_0x16ecb7,{'range':_0x3ff6cb,'usingOperation':!0x0}),_0x453482['addMarker'](_0xde9c40,{'range':_0x3dcde6,'usingOperation':!0x0}));}function Q(_0x3878ea){return'--ck-user-color:'+_0x3878ea['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x3878ea['color']['getColorAlphaVariable']()+';';}function X(_0x5d6fd1,_0x3ee704,_0x2b11d6){const _0x1806ab=_0x5d6fd1['t'],t=_0x5d6fd1['t'];switch(_0x3ee704){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 _0x1806ab({'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'},_0x2b11d6);default:return'';}}let Z=0x1;class tt extends _0x1885be{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
- ((()=>_0x396fa4)());['_offset'];['sessionId'];['serverHistory'];['_channelId'];['_service'];['_document'];['_compressor'];['_bufferedOperations'];['_knownOperations'];['_knownRootNames'];['_pendingAction'];['_hasSelectionChanged'];['_sendBufferedOperationsDelayId'];['_baseBufferDelay'];['_currentBufferDelay'];['_lastSyncedOperationId'];['_disconnectionOperations'];['_operationIdentifier'];static get['requires'](){return[z,Y,K,_0x5ed6bf,_0x443155,_0x52f767];}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 _0x40ccec=this['serverHistory']['getOperations']();for(let _0x20dce1=_0x40ccec['length']-0x1;_0x20dce1>=0x0;_0x20dce1--){const _0x28aeb0=_0x40ccec[_0x20dce1];if(!this['_disconnectionOperations']['has'](_0x28aeb0))return _0x28aeb0['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x120ee2){if(super(_0x120ee2),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x5da6bc(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x36814d('collaboration-missing-channelid',this);const _0x3af4c4=_0x120ee2['config']['get']('cloudServices.bundleVersion')||_0x4b75a5;this['_service']=new tt['CollaborativeEditingService'](_0x3af4c4,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0xd752eb(),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 it(this['_disconnectionOperations']);}['init'](){const _0x584c96=this['editor'],_0x19df7f=_0x584c96['plugins']['get'](_0x443155),_0x1ec46c=_0x584c96['plugins']['get'](z);this['listenTo'](_0x19df7f,'getOperationAuthor',(_0x2b8f7a,_0x22c816)=>{const _0x5c95bd=_0x22c816[0x0];_0x5c95bd['_authorId']&&(_0x2b8f7a['return']=_0x19df7f['getUser'](_0x5c95bd['_authorId']),_0x2b8f7a['stop']()),null===_0x5c95bd['_authorId']&&(_0x2b8f7a['return']=null,_0x2b8f7a['stop']());},{'priority':'high'}),this['listenTo'](_0x584c96['model']['document']['selection'],'change:range',(_0x532b6e,_0x4d841c)=>{_0x4d841c['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x584c96['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x584c96['model']['on']('applyOperation',(_0x3a7826,_0x1a3092)=>{const _0x15469f=_0x1a3092[0x0];_0x15469f['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x15469f),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x1ec46c,'state',this,'_hasSynchronizationProblem',(_0x1ebfea,_0x49b073)=>'connected'===_0x1ebfea&&!_0x49b073),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x584c96['disableReadOnlyMode']('rtc-offline'):_0x584c96['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x584c96['disableReadOnlyMode']('rtc-offline'):_0x584c96['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x2dfa13=this['editor']['plugins']['get'](Y),_0x458bbe=this['editor']['plugins']['get'](z);try{this['_isPendingUpdate']=!0x0,_0x2dfa13['unregister'](this['_channelId']);const _0x4566a6=await this['_service']['reconnect'](_0x458bbe['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x4566a6)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x4823a5=await this['_service']['getConnectedSessions']();_0x2dfa13['register'](this['_channelId'],_0x4823a5),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x572992){if(function(_0x58e9c5){return'404'===_0x58e9c5['code'];}(_0x572992)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x168cc2){return'409'===_0x168cc2['code'];}(_0x572992)){const _0x496e17=X(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'](_0x496e17);}else{if(!(_0x572992 instanceof et))throw _0x572992;this['_handleReconnectionError']();}}}}['destroy'](){const _0x39bfff=this['editor']['plugins']['get'](z),_0x59f64f=this['editor']['plugins']['get'](Y);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x59f64f['channelSessions']['has'](this['_channelId'])&&_0x59f64f['unregister'](this['_channelId']),_0x39bfff['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x37cd1f){if(this['sessionId']!==_0x37cd1f['sessionId']&&this['_lastSyncedOperationId']!==_0x37cd1f['lastOperationId'])throw new et();return this['sessionId']=_0x37cd1f['sessionId'],this['_handleServerResponse']([],{..._0x37cd1f,'wereChangesApplied':!0x1,'data':_0x37cd1f['data']},'reconnect');}async['_connectService'](_0x557e22,_0x36ec34=!0x1){const {connection:_0x129442}=this['editor']['plugins']['get'](z);tt['CollaborativeEditingService']['getConnectedSessions'](_0x129442,this['_channelId'])['then'](_0x48808a=>this['_initSessionsHandling'](_0x48808a))['catch'](_0x51f1e9=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x51f1e9);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x52c938,_0x4be0c8)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x4be0c8);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x4aafeb=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x557e22);this['_isPendingUpdate']=!0x0;const _0x31fe0f=await this['_service']['connect'](_0x129442,this['_compressOperations'](_0x557e22),_0x4aafeb);if(this['sessionId']=_0x31fe0f['sessionId'],_0x36ec34){if(!_0x31fe0f['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x31fe0f['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x557e22,_0x31fe0f,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x31fe0f,_0x557e22);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x57f7f9=this['editor']['plugins']['get'](Y),_0x2edbb3=this['editor']['plugins']['get'](K),_0x42d0e4=_0x57f7f9['channelSessions']['get'](this['_channelId']);_0x42d0e4&&_0x42d0e4['length']>0x1?_0x2edbb3['createUserMarkerOperations']():this['listenTo'](_0x57f7f9,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x57f7f9['channelSessions']['get'](this['_channelId'])['length']&&_0x2edbb3['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x85b16e,_0x3aa8ff,_0x2bfd68,_0x380cbd){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x3aa8ff){const _0x540688=this['_decompressOperations'](_0x2bfd68,_0x380cbd);await this['_fetchMissingUsers'](_0x540688),this['_handleExternalOperations'](_0x540688,_0x3aa8ff,_0x2bfd68['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x53e8ac}=this['editor'];let _0x54bf63;try{_0x54bf63=await this['_service']['getDocumentDetails']();}catch{const _0x51a636=X(_0x53e8ac,'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'](_0x51a636);}const _0x3d804e=_0x54bf63['currentDocumentSession']||_0x54bf63['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x3d804e['lastOperationId']){const _0x2e5bc8=X(_0x53e8ac,'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'](_0x2e5bc8);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x284b70){const _0x13b29d=this['editor']['plugins']['get'](Y);this['listenTo'](_0x13b29d,'sessionAdd:'+this['_channelId'],(_0x4ae152,{session:_0x54ef13})=>{if(_0x54ef13['id']===_0x13b29d['mySessionId']){_0x4ae152['off']();const _0x3c5826=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x2567a5=_0x54ef13['permissions'];_0x3c5826&&_0x3c5826['isEnabled']&&(_0x2567a5=_0x2567a5['filter'](_0x3d7fc9=>'document:write'!==_0x3d7fc9)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x2567a5,this['_channelId']);}}),_0x13b29d['register'](this['_channelId'],_0x284b70);}['_initThrowingOnDataSet'](){const _0x2680bf=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x13a0c6)=>{if(!_0x13a0c6[_0x13a0c6['length']-0x1]['suppressErrorInCollaboration'])throw new _0x36814d('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x2680bf['apply'](this['editor']['data'],_0x13a0c6);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x5952a9,[_0x4cc7cf])=>{if(this['_document']['version'])throw new _0x36814d('realtimecollaborationclient-init-document-already-initialized',this);_0x5952a9['stop'](),this['_setPendingAction']();const _0x462417=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x137715])=>!_0x137715['lazyLoad'])['map'](([_0x3ada8f,_0x2cff82])=>[_0x3ada8f,_0x2cff82['modelAttributes']||{}])),_0x27e3ee=this['_getOperationsFromInitData'](_0x4cc7cf,_0x462417);0x0==_0x27e3ee['length']&&_0x27e3ee['push'](new _0x18749d(0x0)),_0x5952a9['return']=this['_connectService'](_0x27e3ee)['then'](()=>{this['editor']['plugins']['get'](z)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0xb6d282=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0xb6d282))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x21de52,[_0x30469d,_0x5dac67])=>{_0x21de52['stop']();const _0x3b3d1e=this['editor']['model']['document']['getRoot'](_0x30469d);if(!this['_knownRootNames']['has'](_0x30469d)){const _0x434726=_0x5dac67&&_0x5dac67['data']?_0x5dac67['data']:'',_0x46674d=_0x5dac67&&_0x5dac67['attributes']?_0x5dac67['attributes']:{};await this['_loadRoot'](_0x30469d,_0x434726,_0x46674d);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x3b3d1e['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x3b3d1e);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x40b431){const _0x6c72fa=this['editor']['plugins']['get'](_0x443155),{connection:_0x16e24f}=this['editor']['plugins']['get'](z),_0x1bc1d8=new Set();for(const _0xecc438 of _0x40b431){const _0x51f6be=_0xecc438['_authorId'];_0x51f6be&&!_0x6c72fa['getUser'](_0x51f6be)&&_0x1bc1d8['add'](_0x51f6be);}if(0x0===_0x1bc1d8['size'])return;const _0x51ba60=await _0x5b2314['getMany'](_0x16e24f,Array['from'](_0x1bc1d8));for(const _0x3d7843 of _0x51ba60)_0x6c72fa['getUser'](_0x3d7843['id'])||_0x6c72fa['addUser'](_0x3d7843);}['_getOperationsFromInitData'](_0x4f72b9,_0x30fd8e={}){const _0x54cc44=this['editor']['model'],_0x412112=[];let _0x1e27c=0x0;const _0x56a5c4='string'==typeof _0x4f72b9?{'main':_0x4f72b9}:_0x4f72b9;for(const _0x10aefe of Object['keys'](_0x56a5c4)){if(!this['_document']['roots']['has'](_0x10aefe))throw new _0x36814d('realtimecollaborationclient-init-non-existent-root',this);const _0x7895cb=this['editor']['data']['parse'](_0x56a5c4[_0x10aefe]),_0x2c4014=this['_document']['getRoot'](_0x10aefe),_0x1e81ac=new _0x1b0982(_0x54cc44['createPositionAt'](_0x2c4014,0x0),_0x7895cb,_0x1e27c++);_0x412112['push'](_0x1e81ac);for(const [_0x3f9bd1,_0x24809d]of _0x7895cb['markers']){const _0x3cd624=_0x54cc44['createRange'](_0x54cc44['createPositionFromPath'](_0x2c4014,_0x24809d['start']['path']['slice']()),_0x54cc44['createPositionFromPath'](_0x2c4014,_0x24809d['end']['path']['slice']())),_0x3df021=new _0x19f48f(_0x3f9bd1,null,_0x3cd624,_0x54cc44['markers'],!0x0,_0x1e27c++);_0x412112['push'](_0x3df021);}}if(_0x30fd8e)for(const [_0x3f9c42,_0x232486]of Object['entries'](_0x30fd8e)){const _0x4d7f2e=_0x54cc44['document']['getRoot'](_0x3f9c42);if(!_0x4d7f2e)throw new _0x36814d('multi-root-editor-root-attributes-no-root',null);for(const [_0x437de0,_0x136e19]of Object['entries'](_0x232486))if(null!==_0x136e19){const _0x41695c=new _0x4e54c2(_0x4d7f2e,_0x437de0,null,_0x136e19,_0x1e27c++);_0x412112['push'](_0x41695c);}}return _0x412112;}async['_loadRoot'](_0x14750e,_0x2ba13e,_0x2c9034){this['_getOperationsFromInitData']({[_0x14750e]:_0x2ba13e},{[_0x14750e]:_0x2c9034})['forEach']((_0x494304,_0x397293)=>{_0x494304['baseVersion']=this['_document']['version']+_0x397293,_0x494304['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x494304);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x2239a4,_0x224973){let _0xcf2f27;this['_offset']=_0x2239a4['offset'];const _0x26d585=_0x2239a4['wereChangesApplied']&&!_0x2239a4['initData'],_0x1c0dc1=_0x26d585?0x0:_0x2239a4['data']['baseVersion'];if(_0x224973['forEach'](_0x1d423d=>{_0x1d423d['_isInit']=!0x0,_0x1d423d['createdAt']=_0x2239a4['sessionCreatedAt'],_0x1d423d['_authorId']=null;}),_0x26d585)_0xcf2f27=_0x224973,this['_applyOperationsSet'](_0xcf2f27,_0x26d585);else{if(_0x2239a4['initData']){const _0x24d311=this['_getOperationsFromInitData'](_0x2239a4['initData']);this['_document']['history']['version']=-_0x24d311['length'],_0x24d311['forEach'](_0x3af2a9=>{_0x3af2a9['baseVersion']-=_0x24d311['length'],_0x3af2a9['createdAt']=_0x2239a4['sessionCreatedAt'],_0x3af2a9['_isInit']=!0x0,_0x3af2a9['_authorId']=null;}),this['_applyOperationsSet'](_0x24d311,!0x0),this['serverHistory']['version']=-_0x24d311['length']+this['_offset'],this['_updateServerHistory'](_0x24d311);}this['_document']['history']['version']=_0x1c0dc1,_0xcf2f27=this['_decompressOperations'](_0x2239a4['data'],_0x2239a4['metadata']),await this['_fetchMissingUsers'](_0xcf2f27),this['_applyOperationsSet'](_0xcf2f27,_0x26d585);}_0x2239a4['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0xcf2f27,_0x2239a4['lastOperationId']),this['_lastSyncedOperationId']=_0x2239a4['lastOperationId']),this['serverHistory']['version']=_0x1c0dc1+this['_offset'],this['_updateServerHistory'](_0xcf2f27),_0x224973['filter'](_0x5dd55a=>{const _0x1e7624=this['_getAffectedRoot'](_0x5dd55a);return _0x1e7624&&!this['_knownRootNames']['has'](_0x1e7624);})['forEach']((_0x238447,_0x50ed77)=>{_0x238447['baseVersion']=this['_document']['version']+_0x50ed77,this['_saveOperationInBuffer'](_0x238447);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x337b10,_0x5de699){const _0x312618=_0x5de699&&_0x5de699['message'];if(_0x312618&&_0x312618['startsWith']('realtimecollaborationclient'))throw _0x5de699;const _0x52da2d=this['editor']['plugins']['get'](z);throw this['_isPendingUpdate']=!0x0,_0x52da2d['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x36814d(_0x337b10,this['editor'],_0x312618?{'originalError':_0x312618}:void 0x0);}['_saveOperationInBuffer'](_0x19408a){this['_knownOperations']['has'](_0x19408a)||(this['_knownOperations']['add'](_0x19408a),this['_bufferedOperations']['push'](_0x19408a),this['_pendingAction']||'marker'==_0x19408a['type']&&!_0x19408a['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x357e04=!0x1){!_0x357e04&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x5e4168=>{_0x5e4168&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x4be064=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x29ee24){return _0x29ee24['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x29ee24['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x29ee24['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x4be064)||this['_crash'](_0x4be064['message'],_0x4be064);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x46f4cb=>{this['on']('change:_isPendingUpdate',()=>{_0x46f4cb();});});}async['_sendBufferedOperations'](){const _0x59e216=this['editor']['plugins']['get'](K);if(this['_shouldSendSelectionUpdate']()&&(_0x59e216['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x1f55e3=[...this['_bufferedOperations']];for(const _0x1393d5 of _0x1f55e3)_0x1393d5['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x1393d5);const _0x4d6252=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x1f55e3),_0x88b276=Z++,_0x39d33c=this['_compressOperations'](_0x1f55e3),_0x2df9dd=await this['_service']['sendOperations'](_0x39d33c,_0x39d33c['baseVersion'],_0x4d6252);try{return await this['_handleServerResponse'](_0x1f55e3,_0x2df9dd,_0x88b276);}catch(_0xfa728e){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0xfa728e);}}async['_handleServerResponse'](_0x351cf6,_0x32c7ec,_0x2f8036){if('error'in _0x32c7ec)throw _0x32c7ec['error'];let _0x2cee5b=!0x1;if(_0x32c7ec['wereChangesApplied']){_0x32c7ec['lastOperationId']&&(this['_lastSyncedOperationId']=_0x32c7ec['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x57a84c=>!_0x351cf6['includes'](_0x57a84c));for(const _0x5e09b5 of _0x351cf6)_0x5e09b5['createdAt']='lastOperationAcceptedAt'in _0x32c7ec&&_0x32c7ec['lastOperationAcceptedAt']||void 0x0;st(_0x351cf6,_0x32c7ec['version']-_0x351cf6['length']),this['_updateServerHistory'](_0x351cf6);const _0x43f012=_0x351cf6['filter'](_0x58aa76=>{if(!_0x58aa76['_isInit'])return!0x1;const _0x433df8=this['_getAffectedRoot'](_0x58aa76);return _0x433df8&&!this['_knownRootNames']['has'](_0x433df8);});st(_0x43f012,this['_document']['version']),this['_applyOperationsSet'](_0x43f012),_0x2cee5b=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x8410ee=this['_decompressOperations'](_0x32c7ec['data'],_0x32c7ec['metadata'])['filter'](_0x289bfc=>_0x289bfc['baseVersion']>=this['_lastServerVersion']);_0x8410ee['forEach'](_0x205667=>this['_addKnownRoot'](_0x205667)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x2d7b4b=>!_0x2d7b4b['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x2d7b4b))),this['_bufferedOperations']['length']&&st(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x8410ee),_0x2cee5b=this['_handleExternalOperations'](_0x8410ee,_0x32c7ec['version'],_0x32c7ec['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x2cee5b?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x188cfa,_0x3a444f,_0x1a3d33){try{const _0x382f62={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x249ebe,operationsB:_0x1b5f8b,originalOperations:_0x12f28e}=_0x231820(_0x188cfa,this['_bufferedOperations'],_0x382f62);st(_0x249ebe,this['_document']['version']),st(_0x1b5f8b,_0x3a444f);for(const _0x16184c of _0x249ebe){const _0x5660f9=_0x12f28e['get'](_0x16184c);_0x16184c['_authorId']=_0x5660f9?_0x5660f9['_authorId']:null;}_0x1a3d33&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x188cfa,_0x1a3d33),this['_lastSyncedOperationId']=_0x1a3d33),this['_bufferedOperations']=[..._0x1b5f8b],this['_applyOperationsSet'](_0x249ebe),this['_updateServerHistory'](_0x188cfa);}catch(_0x61ddb7){return console['error'](_0x61ddb7),!0x1;}return!0x0;}['_applyOperationsSet'](_0x1562da,_0x4f0ede=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x4389e0=>{for(const _0x37686e of _0x1562da)this['_knownOperations']['add'](_0x37686e),this['_addKnownRoot'](_0x37686e),_0x4389e0['batch']['addOperation'](_0x37686e),this['editor']['model']['applyOperation'](_0x37686e);});}['_addKnownRoot'](_0x4c5525){const _0xecfee0=this['_getAffectedRoot'](_0x4c5525);_0xecfee0&&this['_knownRootNames']['add'](_0xecfee0);}['_getAffectedRoot'](_0x32ffc8){let _0x4f25e2,_0x10f82f;switch(_0x32ffc8['type']){case'insert':_0x4f25e2=_0x32ffc8['position']['root'];break;case'marker':if(_0x10f82f=_0x32ffc8['newRange'],!_0x10f82f)return null;_0x4f25e2=_0x10f82f['root'];break;case'addRootAttribute':_0x4f25e2=_0x32ffc8['root'];break;case'addRoot':_0x4f25e2=_0x32ffc8['affectedSelectable'];break;case'move':_0x4f25e2=_0x32ffc8['targetPosition']['root'];break;default:return null;}return _0x4f25e2['rootName'];}['_updateServerHistory'](_0x17331d){_0x17331d['forEach'](_0x326583=>{const _0x15bebc=_0x326583['clone']();_0x15bebc['_authorId']=_0x326583['_authorId'],_0x15bebc['_isInit']=!!_0x326583['_isInit'],_0x15bebc['createdAt']=_0x326583['createdAt'],_0x15bebc['baseVersion']+=this['_offset'],_0x326583['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x15bebc),this['serverHistory']['addOperation'](_0x15bebc);});}['_handleReconnectionError'](_0x4c46ef){const _0x31c7d3=this['editor']['plugins']['get']('Notification'),_0x9d1af6=this['editor']['locale'];_0x4c46ef||(_0x4c46ef=X(_0x9d1af6,'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.')),_0x31c7d3['showWarning'](_0x4c46ef,{'title':X(_0x9d1af6,'Synchronization\x20issue'),'namespace':'real-time-collaboration'}),this['_hasSynchronizationProblem']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_bufferedOperations']=[],this['editor']['plugins']['get'](z)['disconnect']();}['_setPendingAction'](){this['_pendingAction']||(this['_pendingAction']=this['editor']['plugins']['get'](_0x5ed6bf)['add'](X(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x5ed6bf)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x5d0107){const _0x5e0d79=_0x5d0107['map'](_0x1d8c2d=>_0x1d8c2d['toJSON']());return this['_compressor']['compress'](_0x5e0d79);}['_decompressOperations'](_0x4f68b5,_0x2cdc8f){return this['_compressor']['decompress'](_0x4f68b5)['map']((_0xdf569d,_0x193e25)=>{const _0x4a363e='init'==_0x2cdc8f[_0x193e25]['type'];if('InsertOperation'==_0xdf569d['__className']){const _0x125d85=_0xdf569d['position']['root'];!this['_document']['getRoot'](_0x125d85)&&(this['_document']['createRoot']('$root',_0x125d85)['_isAttached']=!0x1);}const _0x2fbd8c=_0x437df2['fromJSON'](_0xdf569d,this['_document']);return _0x2fbd8c['wasUndone']=_0xdf569d['wasUndone'],_0x2fbd8c['_isInit']=_0x4a363e,_0x2fbd8c['_authorId']=_0x4a363e?null:_0x2cdc8f[_0x193e25]['userId'],_0x2fbd8c['_isDisconnection']='cs:removeUser'===_0x2cdc8f[_0x193e25]['type'],_0x2fbd8c['createdAt']=_0x2cdc8f[_0x193e25]['createdAt'],_0x2fbd8c;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x2853a5=this['editor']['plugins']['get'](Y)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x2853a5&&_0x2853a5['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class et extends Error{}function st(_0x11eeab,_0x4d9480){for(const _0x5774c4 of _0x11eeab)_0x5774c4['baseVersion']=_0x4d9480++;}class it{['_ignoredOperations'];['_operationToId'];constructor(_0xea71d1){this['_ignoredOperations']=_0xea71d1,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x32bc76){let _0x59c578=_0x32bc76['length'];for(;_0x59c578--;){const _0x4d60f2=_0x32bc76[_0x59c578];if(!this['_ignoredOperations']['has'](_0x4d60f2)){if(!this['_operationToId']['has'](_0x4d60f2)){const _0x67bdc1=_0x4b8b51()['slice'](0x1,0x12);this['_operationToId']['set'](_0x4d60f2,_0x67bdc1);}return this['_operationToId']['get'](_0x4d60f2);}}}['setIdForTheLastOperation'](_0x20e033,_0x5157df){if(!_0x5157df)return;let _0x44db6d=_0x20e033['length'];for(;_0x44db6d--;){const _0x3d7261=_0x20e033[_0x44db6d];this['_ignoredOperations']['has'](_0x3d7261)||this['_operationToId']['set'](_0x3d7261,_0x5157df);}}}class nt extends _0x1885be{static get['requires'](){return[tt];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class ot extends _0xb2d076{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
- ((()=>_0x2134a6)());['_services'];static get['requires'](){return[z,_0x3f8b74,Y,_0x443155];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x5267a9){super(_0x5267a9),this['_services']=new Map();}async['init'](){const _0x598e70=this['context'],_0x50872f=_0x598e70['plugins']['get'](_0x3f8b74);if(_0x598e70['plugins']['get'](z)['addToReconnectionStack'](this),_0x50872f['adapter']={'addCommentThread':async({channelId:_0x7110f2,threadId:_0x3d5f10,comments:_0x210053,resolvedAt:_0x2729a6,resolvedBy:_0x48d767,context:_0x5dc8d0,attributes:_0x2b7d7c})=>{const _0x31d8ac=await this['_getService'](_0x7110f2)['addCommentThread']({'commentThreadId':_0x3d5f10,'comments':_0x210053['map'](_0x586ada=>function(_0x533c0e,_0x2553f5,_0x5f587d){return{'commentThreadId':_0x5f587d,'commentId':_0x533c0e['commentId'],'userId':_0x533c0e['authorId'],'content':_0x533c0e['content'],'documentId':_0x2553f5,'createdAt':_0x533c0e['createdAt'],'attributes':_0x533c0e['attributes']||{}};}(_0x586ada,_0x7110f2,_0x3d5f10)),'resolvedAt':_0x2729a6,'resolvedBy':_0x48d767,'context':_0x5dc8d0,'attributes':_0x2b7d7c})['catch'](ct);return{'threadId':_0x31d8ac['commentThreadId'],'comments':_0x31d8ac['comments']};},'getCommentThread':async({channelId:_0x46bc71,threadId:_0x335d0d})=>{const _0x1e47a6=await this['_getService'](_0x46bc71)['getCommentThread'](_0x335d0d)['catch'](rt)['catch'](ct);return _0x1e47a6?_0x1e47a6['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x1e47a6]),{'threadId':_0x1e47a6['commentThreadId'],'comments':_0x1e47a6['comments']['map'](at),'context':_0x1e47a6['context'],'resolvedAt':_0x1e47a6['resolvedAt'],'resolvedBy':_0x1e47a6['resolvedBy'],'attributes':_0x1e47a6['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x8de69a,threadId:_0x45bb49,context:_0x82a619,unlinkedAt:_0x4bbb6c,attributes:_0x490c58})=>this['_getService'](_0x8de69a)['updateCommentThread']({'commentThreadId':_0x45bb49,'context':_0x82a619,'attributes':_0x490c58,'unlinkedAt':_0x4bbb6c})['catch'](rt)['catch'](ct),'resolveCommentThread':async({channelId:_0x36bc81,threadId:_0x1440f7})=>{const _0x3311b4=await this['_getService'](_0x36bc81)['resolveCommentThread'](_0x1440f7)['catch'](rt)['catch'](ct);return{'threadId':_0x3311b4['commentThreadId'],'resolvedAt':_0x3311b4['resolvedAt'],'resolvedBy':_0x3311b4['resolvedBy']};},'reopenCommentThread':async({channelId:_0x3ade52,threadId:_0x3d2be2})=>this['_getService'](_0x3ade52)['reopenCommentThread'](_0x3d2be2)['catch'](rt)['catch'](ct),'removeCommentThread':({channelId:_0x3c627e,threadId:_0x586d3a})=>this['_getService'](_0x3c627e)['removeCommentThread'](_0x586d3a)['catch'](rt)['catch'](ct),'addComment':({channelId:_0xc3edbf,threadId:_0x1ebe92,commentId:_0x37a005,content:_0x5dacc8,attributes:_0x105c83})=>this['_getService'](_0xc3edbf)['addComment'](_0x1ebe92,_0x37a005,_0x5dacc8,_0x105c83)['catch'](ct),'updateComment':({channelId:_0x43e435,threadId:_0x472a6f,commentId:_0x472526,content:_0x4a19e1,attributes:_0x4e65a1})=>this['_getService'](_0x43e435)['updateComment'](_0x472a6f,_0x472526,_0x4a19e1,_0x4e65a1)['catch'](rt)['catch'](ct),'removeComment':({channelId:_0x1ab735,threadId:_0x32de68,commentId:_0x323fc9})=>this['_getService'](_0x1ab735)['removeComment'](_0x32de68,_0x323fc9)['catch'](rt)['catch'](ct)},_0x598e70 instanceof _0x53fadc){const _0x56ab00=_0x598e70['config']['get']('collaboration.channelId'),_0x3f9890=_0x598e70['plugins']['get'](Y);await this['_setUpService'](_0x56ab00);const _0x574c5a=await this['_services']['get'](_0x56ab00)['getConnectedSessions']();this['listenTo'](_0x3f9890,'sessionAdd:'+_0x56ab00,(_0x24bbd8,{session:_0x2935ad})=>{_0x2935ad['id']===_0x3f9890['mySessionId']&&(_0x24bbd8['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x2935ad['permissions'],_0x56ab00));}),_0x3f9890['register'](_0x56ab00,_0x574c5a);}}async['_setUpService'](_0x9d4ff9){if(this['_services']['has'](_0x9d4ff9))throw new _0x36814d('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x9d4ff9});const _0x171fde=this['context']['plugins']['get'](_0x3f8b74),_0x4bd935=new ot['CommentsService'](_0x9d4ff9);this['_services']['set'](_0x9d4ff9,_0x4bd935),this['listenTo'](_0x4bd935,'commentThreadAdded',(_0x12a22a,_0x5dd1d3)=>{const {commentThreadId:_0x52bff7,documentId:_0x1a67dd,context:_0x2b98a6,attributes:_0x3fa3ac,resolvedAt:_0x2a2b67,resolvedBy:_0x187733,comments:_0xac4054}=_0x5dd1d3;_0x171fde['getCommentThread'](_0x52bff7)||_0x171fde['addCommentThread']({'threadId':_0x52bff7,'channelId':_0x1a67dd,'comments':_0xac4054?_0xac4054['map'](at):[],'context':_0x2b98a6,'attributes':_0x3fa3ac,'resolvedAt':_0x2a2b67,'resolvedBy':_0x187733,'isFromAdapter':!0x0});}),this['listenTo'](_0x4bd935,'commentThreadUpdated',(_0xda3388,{commentThreadId:_0x5cb9e9,documentId:_0x21ce44,context:_0x671e79,unlinkedAt:_0x427225,attributes:_0xd2d15c})=>{_0x171fde['getCommentThread'](_0x5cb9e9)&&_0x171fde['updateCommentThread']({'threadId':_0x5cb9e9,'channelId':_0x21ce44,'context':_0x671e79,'unlinkedAt':_0x427225,'attributes':_0xd2d15c,'isFromAdapter':!0x0});}),this['listenTo'](_0x4bd935,'commentThreadResolved',(_0x4fbb30,{commentThreadId:_0x1bb6ab,resolvedBy:_0x594b5c,resolvedAt:_0x44f697})=>{const _0x126db4=_0x171fde['getCommentThread'](_0x1bb6ab);_0x126db4&&_0x126db4['resolve']({'resolvedBy':_0x594b5c,'resolvedAt':_0x44f697,'isFromAdapter':!0x0});}),this['listenTo'](_0x4bd935,'commentThreadReopened',(_0x456b3f,{commentThreadId:_0x56f333})=>{const _0x4fe269=_0x171fde['getCommentThread'](_0x56f333);_0x4fe269&&_0x4fe269['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x4bd935,'commentThreadRemoved',(_0x1b8532,{commentThreadId:_0x1c9d97})=>{const _0x4b740b=_0x171fde['getCommentThread'](_0x1c9d97);_0x4b740b&&_0x4b740b['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x4bd935,'commentAdded',(_0x52933f,_0xafb907)=>{const _0x6d7c13=_0xafb907['commentThreadId'],_0x1e02d3=_0x171fde['getCommentThread'](_0x6d7c13);_0x1e02d3&&_0x1e02d3['addComment']({...at(_0xafb907),'isFromAdapter':!0x0});}),this['listenTo'](_0x4bd935,'commentUpdated',(_0x58183e,{commentThreadId:_0x273002,commentId:_0x4c9377,content:_0x21cf4e,attributes:_0x2d6edb})=>{const _0x3cd3fe=_0x171fde['getCommentThread'](_0x273002);if(_0x3cd3fe){const _0x34a230=_0x3cd3fe['getComment'](_0x4c9377);_0x34a230&&_0x34a230['update']({'content':_0x21cf4e,'attributes':_0x2d6edb,'isFromAdapter':!0x0});}}),this['listenTo'](_0x4bd935,'commentRemoved',(_0x1c7703,{commentThreadId:_0x185b31,commentId:_0xcf2d03})=>{const _0x137526=_0x171fde['getCommentThread'](_0x185b31);if(_0x137526){const _0x1e494d=_0x137526['getComment'](_0xcf2d03);_0x1e494d&&_0x1e494d['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x9d4ff9);}['destroy'](){if(this['context']instanceof _0x53fadc){const _0x238ad0=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x238ad0);}}['_terminateService'](_0x5070b4){if(!this['_services']['has'](_0x5070b4))throw new _0x36814d('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x5070b4});this['_getService'](_0x5070b4)['disconnect'](),this['_services']['delete'](_0x5070b4);}async['reconnect'](){for(const _0x3908d7 of this['_services']['keys']())await this['_connectService'](_0x3908d7);if(this['context']instanceof _0x53fadc){const _0x11dba2=this['context']['config']['get']('collaboration.channelId'),_0x2f2a5d=this['context']['plugins']['get'](Y);_0x2f2a5d['unregister'](_0x11dba2);const _0x1c9064=await this['_services']['get'](_0x11dba2)['getConnectedSessions']();_0x2f2a5d['register'](_0x11dba2,_0x1c9064);}}async['_connectService'](_0x46ffd8){const {connection:_0x3da4c2}=this['context']['plugins']['get'](z),_0x3f38c2=this['context']['plugins']['get'](_0x3f8b74),_0x471e3b=this['_services']['get'](_0x46ffd8),_0x5b4ca9=await _0x471e3b['connect'](_0x3da4c2);await this['_fetchMissingUsersForThreads'](_0x5b4ca9);const _0x49f610=new Set(Array['from'](_0x3f38c2['getCommentThreads']({'channelId':_0x46ffd8}),_0x318c22=>_0x318c22['id']));for(const _0xd6fa5d of _0x5b4ca9)_0xd6fa5d['deletedAt']||_0x49f610['delete'](_0xd6fa5d['commentThreadId']);for(const _0x387e50 of _0x49f610)_0x3f38c2['getCommentThread'](_0x387e50)['remove']({'isFromAdapter':!0x0});for(const _0x24bce4 of _0x5b4ca9){let _0x480422=_0x3f38c2['getCommentThread'](_0x24bce4['commentThreadId']);const {commentThreadId:_0x502c1b,context:_0x5531ad,attributes:_0x24f324,resolvedBy:_0x1272d2,resolvedAt:_0x3bcbb3,unlinkedAt:_0x3f2a3d,deletedAt:_0x4e4c46}=_0x24bce4;if(_0x4e4c46)continue;_0x480422||(_0x480422=_0x3f38c2['addCommentThread']({'channelId':_0x46ffd8,'threadId':_0x502c1b,'context':_0x5531ad,'attributes':_0x24f324||{},'resolvedBy':_0x1272d2,'resolvedAt':_0x3bcbb3,'unlinkedAt':_0x3f2a3d,'isFromAdapter':!0x0}));const _0x574eae=new Set(Array['from'](_0x480422['comments'],_0x2a6f1d=>_0x2a6f1d['id']));for(const _0x128059 of _0x24bce4['comments'])_0x574eae['delete'](_0x128059['commentId']);for(const _0x12ae85 of _0x574eae)_0x480422['getComment'](_0x12ae85)['remove']({'isFromAdapter':!0x0});for(const _0xd1aa7a of _0x24bce4['comments']){const _0x3326bc=_0x480422['getComment'](_0xd1aa7a['commentId']);_0x3326bc?_0x3326bc['content']!==_0xd1aa7a['content']&&_0x3326bc['update']({'content':_0xd1aa7a['content'],'isFromAdapter':!0x0}):_0x480422['addComment'](Object['assign'](at(_0xd1aa7a),{'isFromAdapter':!0x0}));}}}['_getService'](_0x4ad98d){if(!this['_services']['has'](_0x4ad98d))throw new _0x36814d('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x4ad98d});return this['_services']['get'](_0x4ad98d);}async['_fetchMissingUsersForThreads'](_0x4bc36e){const _0x59803d=this['context']['plugins']['get'](_0x443155),{connection:_0x2d750d}=this['context']['plugins']['get'](z),_0x221f0a=new Set();for(const {resolvedBy:_0x58bd9d,comments:_0x3f0f24}of _0x4bc36e){_0x58bd9d&&!_0x59803d['getUser'](_0x58bd9d)&&_0x221f0a['add'](_0x58bd9d);for(const {userId:_0x5ed7b8}of _0x3f0f24)_0x59803d['getUser'](_0x5ed7b8)||_0x221f0a['add'](_0x5ed7b8);}if(0x0===_0x221f0a['size'])return;const _0x14e1a6=await _0x5b2314['getMany'](_0x2d750d,Array['from'](_0x221f0a));for(const _0x2a6634 of _0x14e1a6)_0x59803d['getUser'](_0x2a6634['id'])||_0x59803d['addUser'](_0x2a6634);}}async function rt(_0x847a34){if('404'!==_0x847a34['code'])throw _0x847a34;}function ct(_0xc47c3a){if((_0x36b2d2=_0xc47c3a)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x36b2d2['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x36b2d2['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x36b2d2;throw _0xc47c3a;}function at(_0x541978){return{'threadId':_0x541978['commentThreadId'],'commentId':_0x541978['commentId'],'content':_0x541978['content'],'createdAt':_0x541978['createdAt'],'authorId':_0x541978['userId'],'attributes':_0x541978['attributes']||{}};}class ht extends _0x1885be{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
- ((()=>_0x1a7890)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[ot,_0x3a4ea0,z];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0xf45115){super(_0xf45115);const _0x32d34c=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new ht['TrackChangesService'](_0x32d34c);}['init'](){const _0x5b40b1=this['editor']['plugins']['get'](z),_0x3f53ef=this['editor']['plugins']['get'](_0x3a4ea0);return _0x3f53ef['adapter']={'getSuggestion':async _0x43fb83=>{await this['_waitForServiceReady']();const _0x23c33a=await this['_trackChangesService']['get'](_0x43fb83)['catch'](lt);return await this['_fetchMissingUsersForThreads']([_0x23c33a]),_0x23c33a;},'addSuggestion':async({id:_0x1816fd,type:_0x196719,data:_0x2c4f48,originalSuggestionId:_0x22adc1,attributes:_0x385667})=>{await this['_waitForServiceReady']();const _0x2d047d={'id':_0x1816fd,'type':_0x196719,'data':_0x2c4f48,'originalSuggestionId':_0x22adc1,'attributes':_0x385667},_0x43c73f=await this['_trackChangesService']['add'](_0x1816fd,_0x196719,_0x2c4f48,_0x22adc1,_0x385667)['catch'](_0x1537ce=>{if(dt(_0x1537ce))return new Promise(_0x1d5db6=>{this['_bufferedRequests']['set'](_0x1816fd,{'resolve':_0x1d5db6,'suggestionData':_0x2d047d});});throw _0x1537ce;});return this['_bufferedRequests']['delete'](_0x1816fd),_0x43c73f;},'updateSuggestion':async(_0x176f21,_0x2bde0b)=>{if(await this['_waitForServiceReady'](),'open'!==_0x2bde0b['state'])return this['_trackChangesService']['update'](_0x176f21,_0x2bde0b)['catch'](lt);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x35f129,_0x43b678)=>{_0x3f53ef['hasSuggestion'](_0x43b678['id'])&&(_0x3f53ef['getSuggestion'](_0x43b678['id'])['attributes']=_0x43b678['attributes']);}),this['_trackChangesService']['connect'](_0x5b40b1['connection'])['then'](_0x20a5ab=>(_0x5b40b1['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x20a5ab)['then'](()=>{for(const _0x4f8f17 of _0x20a5ab){_0x3f53ef['addSuggestionData'](_0x4f8f17)['_saved']=!0x0;}})));}async['reconnect'](){const _0x5a6394=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x346008}=this['editor']['plugins']['get'](z),_0x1caa87=await this['_trackChangesService']['connect'](_0x346008);await this['_fetchMissingUsersForThreads'](_0x1caa87);for(const {suggestionData:_0x1cb5b7,resolve:_0x290b07}of this['_bufferedRequests']['values']()){let _0x4a37b0=_0x1caa87['find'](_0x462782=>_0x462782['id']===_0x1cb5b7['id']);_0x4a37b0||(_0x4a37b0=await this['_trackChangesService']['add'](_0x1cb5b7['id'],_0x1cb5b7['type'],_0x1cb5b7['data'],_0x1cb5b7['originalSuggestionId'])),_0x290b07(_0x4a37b0);}for(const _0xe67a20 of _0x1caa87)_0x5a6394['hasSuggestion'](_0xe67a20['id'])||_0x5a6394['addSuggestionData'](_0xe67a20);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x2696a2=>{this['listenTo'](this['_trackChangesService'],'connected',_0x54bfb2=>{_0x54bfb2['off'](),_0x2696a2();});});}async['_fetchMissingUsersForThreads'](_0x2f1e8a){const _0x1c6a6b=this['editor']['plugins']['get'](_0x443155),{connection:_0x5b05d6}=this['editor']['plugins']['get'](z),_0x1c21fd=new Set();for(const {authorId:_0x2adbb4}of _0x2f1e8a)_0x1c6a6b['getUser'](_0x2adbb4)||_0x1c21fd['add'](_0x2adbb4);if(0x0===_0x1c21fd['size'])return;const _0x2b5cc2=await _0x5b2314['getMany'](_0x5b05d6,Array['from'](_0x1c21fd));for(const _0x2c1d99 of _0x2b5cc2)_0x1c6a6b['getUser'](_0x2c1d99['id'])||_0x1c6a6b['addUser'](_0x2c1d99);}}function lt(_0x2da2b8){if(dt(_0x2da2b8))return new Promise(()=>{});throw _0x2da2b8;}function dt(_0x707a07){return _0x707a07['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x707a07['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class ut extends _0x1885be{static get['requires'](){return[_0x512ce2,ot,nt,z];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x450d42=this['editor']['plugins']['get'](z),_0x29e9ed=this['editor']['plugins']['get'](_0x379a0a),_0x3a449f=this['editor']['plugins']['get'](ot);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x450d42,'change:state',(_0x5f123a,_0x3f28ad,_0x1f2075)=>{_0x29e9ed['isThreadsLoadingPaused']='connected'!==_0x1f2075;});}),this['listenTo'](_0x450d42,'change:state',(_0x28cd94,_0x5bd68f,_0x3d84de)=>{this['editor']['plugins']['get'](_0x3f8b74)['switchReadOnly']('connected'!==_0x3d84de);}),_0x3a449f['_setUpService'](this['editor']['config']['get']('collaboration.channelId'));}['destroy'](){this['editor']['plugins']['get'](ot)['_terminateService'](this['editor']['config']['get']('collaboration.channelId')),super['destroy']();}}class ft extends _0x1885be{static get['requires'](){return[ut,ht,_0xdaae7d];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class mt extends _0x1885be{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
- ((()=>_0x57f877)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[z,tt,_0x2ca609,Y,_0x443155];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0xbdba2c){super(_0xbdba2c);const _0x526e48=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new mt['RevisionHistoryService'](_0x526e48);}async['init'](){const _0x534328=this['editor']['plugins']['get'](tt),_0xc42482=_0x534328['serverHistory'],_0x1f2c88=this['editor']['plugins']['get'](z);this['_revisionTracker']['setSource']({'history':_0xc42482,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x534328['sessionId']});const _0x4a3d12=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x4b75a5,_0x8f4086=await _0x9e6478['isBundleUploaded'](_0x1f2c88['connection'],_0x4a3d12);this['editor']['plugins']['get'](_0x2ca609)['adapter']={'getRevision':async({revisionId:_0x2bd0e9})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x2bd0e9)),'updateRevisions':async _0x4d3e42=>{await this['_waitForServiceReady']();const _0x7ca433=this['_revisionTracker']['currentRevision'];if(_0x8f4086&&0x1===_0x4d3e42['length']&&_0x4d3e42[0x0]['id']===_0x7ca433['id'])return _0x4d3e42;for(const _0x45fad6 of _0x4d3e42)_0x45fad6['id']===_0x7ca433['id']&&(_0x45fad6['isEmptyCurrent']=_0x45fad6['fromVersion']===_0x45fad6['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x4d3e42,this['_lastRequestId'])['then'](_0x1fce3a=>(this['_lastRequestId']=_0x1fce3a,_0x4d3e42))['catch'](_0x1a97fe=>{if(pt(_0x1a97fe)||'400'===_0x1a97fe['code']&&void 0x0!==_0x1a97fe['data']['wrongRequestId']){for(const _0x409ac6 of _0x4d3e42){!this['_revisionTracker']['repository']['getRevision'](_0x409ac6['id'])||this['_revisionTracker']['_bufferUpdate'](_0x409ac6['id'],_0x409ac6,!0x1);}if(pt(_0x1a97fe)&&'destroyed'!==this['editor']['state'])throw _0x1a97fe;return _0x4d3e42;}throw _0x1a97fe;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x518b44,{revisionsData:_0x4572ad,requestId:_0x2ab29c})=>{Math['max'](..._0x4572ad['map'](_0x4fb891=>_0x4fb891['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x4572ad,_0x2ab29c);}):this['_handleRevisionsUpdate'](_0x4572ad,_0x2ab29c);});const {revisions:_0x15706b,requestId:_0x282494}=await this['_revisionHistoryService']['connect'](_0x1f2c88['connection']);_0x1f2c88['addToReconnectionStack'](this),this['_lastRequestId']=_0x282494,await this['_fetchMissingUsers'](_0x15706b);for(const _0x39a213 of _0x15706b)this['_revisionTracker']['addRevisionData'](_0x39a213);this['listenTo'](_0x534328,'change:_isConnected',(_0x129819,_0x2f828b,_0x2dc423)=>{_0x2dc423&&(this['_oldOffset']=_0x534328['_offset'],_0x129819['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x1f2c88,'state',_0x3a303d=>_0x3a303d===_0x25ca68['CONNECTED']);}async['reconnect'](){const _0x50d361=this['editor']['plugins']['get'](z),_0x3674a5=this['editor']['plugins']['get'](tt),_0x4e090d=async()=>{const _0x4afab6=this['_revisionTracker']['currentRevision'],_0x1114de=_0x4afab6['id'],_0x3c5bdd=_0x1114de!==_0x3674a5['sessionId'];if(_0x3c5bdd){const _0x30b90b=_0x3674a5['_offset']-this['_oldOffset'],_0xdd6bb8=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x4afab6['toVersion']+_0x30b90b!==_0xdd6bb8){const _0x409e13=_0x4afab6['fromVersion']+_0x30b90b,_0x2513bc=this['editor']['plugins']['get'](_0x443155),_0x5764c5=this['_revisionTracker']['buildRevisionData']({'revision':_0x4afab6,'from':_0x409e13,'to':_0xdd6bb8});_0x5764c5['id']=_0x4afab6['id'];const _0x22efba=_0x5764c5['authorsIds']['map'](_0x4a49f6=>_0x2513bc['getUser'](_0x4a49f6));_0x4afab6['_update']({..._0x5764c5,'authors':_0x22efba},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x4afab6['id'],_0x5764c5,!0x0);}this['_revisionTracker']['_startingVersion']=_0xdd6bb8,(_0x4afab6['toVersion']===_0x4afab6['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x1114de)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x1114de),this['_revisionTracker']['_createCurrentRevision'](_0xdd6bb8));}const {revisions:_0x253999,requestId:_0x1720e1}=await this['_revisionHistoryService']['reconnect'](_0x50d361['connection'],this['_lastRequestId']);_0x3c5bdd&&_0x253999['length']>0x0?_0x3674a5['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x253999),this['_handleRevisionsUpdate'](_0x253999,_0x1720e1),this['_revisionTracker']['sendBufferedUpdates']());};return _0x3674a5['_isConnected']?_0x4e090d():new Promise((_0x3256fa,_0x195dda)=>{_0x3674a5['once']('change:_isConnected',()=>{_0x4e090d()['then'](_0x3256fa)['catch'](_0x195dda);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x534e5d=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x1834f6=>{_0x1834f6['off'](),_0x534e5d();});});}['_getLatestVersionFromServerOperations'](){const _0x58178b=this['editor']['plugins']['get'](tt)['serverHistory']['getOperations']()['reverse']();for(const _0x15d311 of _0x58178b)if('marker'!==_0x15d311['type']||_0x15d311['affectsData'])return _0x15d311['baseVersion']+0x1;}['_getLatestVersion'](){const _0x367437=this['editor']['plugins']['get'](tt);return new Promise(_0x1eb8d6=>{_0x367437['_isPendingUpdate']?_0x367437['once']('change:_isPendingUpdate',()=>{_0x1eb8d6(this['_getLatestVersionFromServerOperations']());}):_0x1eb8d6(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x478402,_0x3e3250){const _0x4db035=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x3e3250;for(const _0x363237 of _0x478402){const _0x2178eb=_0x4db035['getRevision'](_0x363237['id']);if(_0x2178eb){if((_0x363237['fromVersion']||_0x363237['toVersion'])&&(_0x363237['diffData']=null),_0x2178eb===this['_revisionTracker']['currentRevision']){const _0x1792b9=Math['max'](_0x2178eb['toVersion'],_0x363237['toVersion']),_0x105ef8=Math['max'](_0x2178eb['fromVersion'],_0x363237['fromVersion']);let _0x4dc55f;_0x2178eb['toVersion']===_0x363237['toVersion']&&_0x2178eb['fromVersion']===_0x363237['fromVersion']?(_0x4dc55f=!0x0,this['_preventResendingRevisionData'](_0x363237)):_0x363237['toVersion']===_0x1792b9&&_0x363237['fromVersion']===_0x105ef8?_0x4dc55f=!0x1:(_0x2178eb['toVersion']===_0x1792b9&&_0x2178eb['fromVersion']===_0x105ef8||this['_fixRevision']({'revision':_0x2178eb,'from':_0x105ef8,'to':_0x1792b9}),_0x4dc55f=!0x0),_0x4dc55f&&(delete _0x363237['fromVersion'],delete _0x363237['toVersion'],delete _0x363237['diffData'],delete _0x363237['createdAt'],delete _0x363237['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x363237),this['_preventResendingRevisionData'](_0x363237);}else this['_revisionTracker']['addRevisionData'](_0x363237);}const _0x4b3f88=_0x4db035['getRevisions']();_0x4b3f88['reverse']();for(let _0x47614c=0x0;_0x47614c<_0x4b3f88['length']-0x1;_0x47614c++){const _0x56f94a=_0x4b3f88[_0x47614c],_0x5c91c2=_0x4b3f88[_0x47614c+0x1];if(_0x56f94a['fromVersion']<_0x5c91c2['toVersion']){const _0x55ef6f=_0x5c91c2['toVersion'],_0x4a54e7=Math['max'](_0x55ef6f,_0x56f94a['toVersion']);this['_fixRevision']({'revision':_0x56f94a,'from':_0x55ef6f,'to':_0x4a54e7});}}}['_fixRevision']({revision:_0x29f496,from:_0x4e7424,to:_0x2e081c}={}){const _0x53cd75=this['editor']['plugins']['get'](_0x443155),_0x217e05=this['_revisionTracker']['buildRevisionData']({'revision':_0x29f496,'from':_0x4e7424,'to':_0x2e081c});_0x217e05['authors']=_0x217e05['authorsIds']['map'](_0x3d4c4a=>_0x53cd75['getUser'](_0x3d4c4a)),_0x29f496['_update'](_0x217e05);}['_preventResendingRevisionData'](_0x4b5a8a){const _0x51f705={};_0x51f705['id']=_0x4b5a8a['id'];for(const _0x36b6e1 of Object['keys'](_0x4b5a8a))'id'!==_0x36b6e1&&(_0x51f705[_0x36b6e1]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x51f705['id'],_0x51f705,!0x0);}async['_fetchMissingUsers'](_0x5002cf){const _0x4c39e8=this['editor']['plugins']['get'](_0x443155),{connection:_0x3fac3b}=this['editor']['plugins']['get'](z),_0x2ed9cf=new Set();for(const _0x2fa6e9 of _0x5002cf){for(const _0x3da2e0 of _0x2fa6e9['authorsIds'])_0x52bd75(_0x3da2e0);_0x2fa6e9['creatorId']&&_0x52bd75(_0x2fa6e9['creatorId']);}if(0x0===_0x2ed9cf['size'])return;const _0x417d7d=await _0x5b2314['getMany'](_0x3fac3b,Array['from'](_0x2ed9cf));for(const _0xfd38da of _0x417d7d)_0x4c39e8['getUser'](_0xfd38da['id'])||_0x4c39e8['addUser'](_0xfd38da);function _0x52bd75(_0x35de35){_0x4c39e8['getUser'](_0x35de35)||_0x2ed9cf['add'](_0x35de35);}}}function pt(_0x4ef9cf){return _0x4ef9cf['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x4ef9cf['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x4ef9cf['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class gt extends _0x1885be{static get['requires'](){return[_0x2ca609,mt,nt];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class wt extends _0x1cd989{['_collapseAt'];constructor(_0x3da153,_0x23c6c7=0x6){super(_0x3da153);const _0xd0640b=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x23c6c7,this['bind']('isHidden')['to'](this,'usersCount',_0x398177=>_0x398177<_0x23c6c7),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0xd0640b['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':_0xd0640b['to']('usersCount',_0x3d21b8=>'+'+(_0x3d21b8-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class vt extends _0x1cd989{['items'];['keystrokes'];constructor(_0x5a748b){super(_0x5a748b);const _0x3b31b1=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x154e98(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x3b31b1['if']('hasPopup'),'aria-expanded':_0x3b31b1['to']('isExpanded',_0x2098a7=>this['hasPopup']&&String(_0x2098a7)),'aria-label':_0x3b31b1['to']('hasPopup',_0x504ae2=>X(_0x5a748b,_0x504ae2?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x3b31b1['to']('hasPopup',_0x671fd3=>!!_0x671fd3&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x3b31b1['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x3b31b1['to'](_0x1204bd=>{const _0x2dd950=_0x1204bd,_0x253902=document['querySelector']('.ck-presence-list__dropdown-list'),_0x19b6ad=document['querySelector']('.ck-balloon-panel_with-arrow');_0x253902?.['contains'](_0x2dd950['relatedTarget'])||_0x19b6ad?.['contains'](_0x2dd950['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x30c36a,_0x21ca19,_0x25d5a3)=>{this['element']&&(_0x25d5a3?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 _t extends _0x1cd989{['counterView'];['inlineListView'];constructor(_0x58344a,_0x3ca5dd=0x6){super(_0x58344a);const _0x67c243=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new wt(this['locale'],_0x3ca5dd),this['inlineListView']=new vt(_0x58344a),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x2f7d3a of this['inlineListView']['items'])_0x2f7d3a['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',_0x67c243['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class yt extends _0x1cd989{['listWrapperView'];constructor(_0x58fe59,_0x11bde7){super(_0x58fe59);const _0x22e409=this['bindTemplate'];this['listWrapperView']=new bt(_0x58fe59,_0x11bde7),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':X(_0x58fe59,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x22e409['to'](_0x343a09=>{const _0x36207c=_0x343a09,_0x3bbcac=document['querySelector']('.ck-presence-list__list'),_0x5a499b=document['querySelector']('.ck-balloon-panel_with-arrow');_0x3bbcac?.['contains'](_0x36207c['relatedTarget'])||_0x5a499b?.['contains'](_0x36207c['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class bt extends _0x97e680{constructor(_0xb2cf60,_0x19b355){super(_0xb2cf60);const _0x127703=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x19b355?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x127703['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x127703['to']('role'),'aria-label':_0x127703['to']('ariaLabel'),'aria-labelledby':_0x127703['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x58cf37['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x277c3d=this['element'];_0x277c3d&&(this['_isScrollable']=Math['max'](_0x277c3d['scrollHeight'],_0x277c3d['clientHeight'])>0.8*window['innerHeight']);}}class kt extends _0x1349fc{['userView'];constructor(_0x55d093,_0x58ebd6,_0x5d09a8){super(_0x55d093);const _0x5c7def=this['bindTemplate'];this['userView']=new _0x365ed9(_0x55d093,_0x58ebd6);const _0x1d5de6={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x58ebd6['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x58ebd6['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x58ebd6['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x58ebd6['color']['getColorVariable'](),'--ck-user-color-alpha':_0x58ebd6['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x5d09a8&&(_0x1d5de6['tag']='button',_0x1d5de6['on']={'click':_0x5c7def['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1d5de6);}['focus'](){this['element']['focus']();}}class It extends _0x1cd989{['userView'];['markerView'];constructor(_0x58bca8,_0x399182,_0x5deb45){super(_0x58bca8);const _0x1117bd=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x365ed9(_0x58bca8,_0x399182),this['markerView']=new St(_0x58bca8,_0x399182);const _0x5ec329=new _0x85a073(_0x58bca8);_0x5ec329['template']['tag']='span',_0x5ec329['text']=_0x399182['name'];const _0x5dab75={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x1117bd['to']('isFocusable',_0x58be6c=>!!_0x58be6c&&0x0),'aria-labelledby':_0x5ec329['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x1117bd['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x1117bd['to']('hasTooltip',_0x1cc642=>!_0x1cc642),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x5ec329]};_0x5deb45&&(_0x5dab75['tag']='button',_0x5dab75['on']={'click':_0x1117bd['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x5dab75);}}class St extends _0x1cd989{constructor(_0x15e4ae,_0x116aa1){super(_0x15e4ae),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x116aa1['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x116aa1['color']['getColorVariable'](),'--ck-user-color-alpha':_0x116aa1['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const Tt={'collapseAt':0x6,'displayMe':!0x0};class At extends _0xb2d076{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1b857d){super(_0x1b857d),this['context']['config']['define']('presenceList',Tt);const _0x500a46=_0x1b857d['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x500a46)throw new _0x36814d('presencelist-collapseat-invalid-format',this);if(_0x500a46<0x1)throw new _0x36814d('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Y)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x2dbc61(),this['balloonPanelView']=new _0x413bf4(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Y];}['init'](){for(const _0x2bdd83 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x2bdd83);this['listenTo'](this['_allConnectedUsers'],'add',(_0x4d998c,_0x5231b8)=>{this['_handleUserAdd'](_0x5231b8);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x1ece3b,_0x4cdc36)=>{this['_handleUserRemove'](_0x4cdc36);});}['_createView'](){const _0x368b5e=this['context'],_0x39f5f3=new _t(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x4e19c8=this['balloonPanelView'];if(!_0x2487a9(_0x368b5e['config']['get']('presenceList.container')))throw new _0x36814d('presencelist-missing-container',this);return _0x39f5f3['counterView']['bind']('usersCount')['to'](this),_0x39f5f3['bind']('isCollapsed')['to'](this,'usersCount',_0x3b6070=>{const {collapseAt:_0x13810b}=_0x368b5e['config']['get']('presenceList'),_0x79c5df=_0x3b6070>=_0x13810b;if(_0x79c5df&&!_0x39f5f3['inlineListView']['items']['find'](_0x58bb85=>_0x58bb85 instanceof wt)){const _0x39d28b=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x39d28b&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x39f5f3['inlineListView']['items']['add'](_0x39f5f3['counterView']);}return _0x79c5df||this['hideDropdown'](),_0x79c5df;}),_0x39f5f3['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x3b085a=>{const _0x1fee80=_0x368b5e['config']['get']('presenceList'),_0x3b998d=new It(_0x368b5e['locale'],_0x3b085a,!!_0x1fee80['onClick']);return _0x3b998d['bind']('hasTooltip')['to'](_0x39f5f3,'isCollapsed',_0x366490=>!_0x366490),_0x3b998d['bind']('isFocusable')['to'](_0x39f5f3,'isCollapsed',_0x4e4ed6=>!_0x4e4ed6),_0x1fee80['onClick']&&this['listenTo'](_0x3b998d,'execute',()=>{this['view']['isCollapsed']||_0x1fee80['onClick'](_0x3b085a,_0x3b998d['element']);}),_0x3b998d;}),this['listenTo'](_0x39f5f3['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x39f5f3['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x39f5f3['inlineListView']['keystrokes']['set']('Enter',(_0x14ff7f,_0x37e062)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x37e062());}),_0x39f5f3['render'](),_0x4e19c8['render'](),_0xe12ddf({'emitter':_0x39f5f3,'activator':()=>_0x4e19c8['isVisible'],'contextElements':[_0x4e19c8['element'],_0x39f5f3['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x368b5e['config']['get']('presenceList.container')['appendChild'](_0x39f5f3['element']),this['_bodyCollection']=new _0x411c47(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x39f5f3;}['_handleUserAdd'](_0x36ea42){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x36ea42['isMe'])return;const _0x3b6ca3=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x3b6ca3-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x376182=_0x36ea42['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x36ea42,_0x376182);}['_handleUserRemove'](_0x50843e){this['usersCount']--;const {collapseAt:_0x5981ca}=this['context']['config']['get']('presenceList'),_0x5455cd=this['usersCount']>=_0x5981ca;if(this['currentDisplayedUsers']['get'](_0x50843e['id']))this['currentDisplayedUsers']['remove'](_0x50843e['id']);else{if(_0x5455cd&&this['currentDisplayedUsers']['length']+0x1===_0x5981ca-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x5455cd?0x1:0x0)<this['usersCount']){for(const _0x286e64 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x286e64['id'])&&(this['currentDisplayedUsers']['add'](_0x286e64,Math['min'](this['currentDisplayedUsers']['length']-(_0x5455cd?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x5455cd?0x1:0x0)===_0x5981ca-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x4748f0=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new yt(this['context']['locale'],!!_0x4748f0['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x16f930}=this['presenceDropdownView'];_0x16f930['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x3c41bb=>{if(!_0x4748f0['displayMe']&&_0x3c41bb['isMe'])return null;const _0x26b8ab=new kt(this['context']['locale'],_0x3c41bb,!!_0x4748f0['onClick']);return _0x4748f0['onClick']&&this['listenTo'](_0x26b8ab,'execute',()=>{_0x4748f0['onClick'](_0x3c41bb,_0x26b8ab['element']);}),_0x26b8ab;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x16f930['focus'](),_0x16f930['checkIfScrollable']();const _0x4b27ed=(_0x393490,_0xc54018)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0xc54018();};_0x16f930['keystrokes']['set']('Esc',_0x4b27ed),_0x16f930['keystrokes']['set']('Shift+Tab',_0x4b27ed),_0x16f930['keystrokes']['set']('Tab',(_0x36f447,_0x37ad00)=>{!function(_0x42ca53){const _0x3b8c47=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x25109c=>_0x25109c+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x2fa1dd=[...document['body']['querySelectorAll'](_0x3b8c47)]['filter'](_0x85a85e=>_0x85a85e===document['activeElement']||_0x85a85e['offsetWidth']+_0x85a85e['offsetHeight']>0x0)['sort']((_0x5c351b,_0x47841f)=>(_0x5c351b['tabIndex']||0x0)-(_0x47841f['tabIndex']||0x0)),_0x4a9aa9=_0x2fa1dd['indexOf'](_0x42ca53),_0x3a0bee=_0x2fa1dd[(_0x4a9aa9+0x1)%_0x2fa1dd['length']];_0x3a0bee&&_0x3a0bee['focus']();}(this['view']['element']),this['hideDropdown'](),_0x37ad00();}),_0x16f930['focusTracker']['add'](this['view']['element']),_0x16f930['focusTracker']['on']('change:isFocused',(_0x541eb2,_0x50a546,_0x2c1c82)=>{_0x2c1c82||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 Pt extends _0xb2d076{static get['requires'](){return[Y,At];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}export{ot as CloudServicesCommentsAdapter,mt as CloudServicesRevisionHistoryAdapter,ht as CloudServicesTrackChangesAdapter,Pt as PresenceList,At as PresenceListUI,tt as RealTimeCollaborationClient,ut as RealTimeCollaborativeComments,nt as RealTimeCollaborativeEditing,gt as RealTimeCollaborativeRevisionHistory,ft as RealTimeCollaborativeTrackChanges,Y as Sessions,z as WebSocketGateway};
23
+ import{ContextPlugin as _0x1b9cff,Plugin as _0x25acfb,PendingActions as _0x31943e,Context as _0x35a8e1}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x3daabf,CKEditorError as _0x146074,Collection as _0x340917,global as _0x248dd9,version as _0x429b78,uid as _0x2f36df,KeystrokeHandler as _0x39c4bd}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x532a35,View as _0x1aa21a,ListView as _0x6e06a0,ListItemView as _0x9a4d5e,LabelView as _0x52e315,BalloonPanelView as _0x30020e,clickOutsideHandler as _0x1b7bff,BodyCollection as _0x31aa2b}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x5d0016,History as _0xb0b44f,NoOperation as _0x5ea7c9,InsertOperation as _0x10dd3e,MarkerOperation as _0x40006b,RootAttributeOperation as _0x411e94,transformOperationSets as _0x325962,OperationFactory as _0x44417e}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x162121}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x38b55b,WEB_SOCKET_GATEWAY_STATES as _0x4e17ce,CollaborativeEditingService as _0x2cf64e,User as _0x3383d3,CommentsService as _0x476c1f,TrackChangesService as _0x277557,RevisionHistoryService as _0x524689,EditorService as _0x548b3a}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x3e9224,UserView as _0xb6d3d9}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x41afd4}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x27f4c9,TrackChanges as _0x22209a}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x33588d,Comments as _0x257b99,CommentsEditing as _0x58c2be}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x547c0a}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0xecfd2a}from'es-toolkit/compat';class WebSocketGateway extends _0x1b9cff{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
+ ((()=>_0x38b55b)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x162121,_0x532a35];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x14bba5){super(_0x14bba5),this['set']('state',_0x4e17ce['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x3daabf())();}['init'](){const _0x4d14d8=this['context'],_0x429829=_0x4d14d8['plugins']['get'](_0x162121),_0x2ac04c=_0x4d14d8['plugins']['get'](_0x532a35);if(!_0x429829['token'])throw new _0x146074('websocketgateway-missing-token',this);if(!_0x429829['webSocketUrl'])throw new _0x146074('websocketgateway-missing-websocket-url',this);return this['_domEmitter']['listenTo'](window,'offline',()=>this['_isBrowserOffline']=!0x0),this['_domEmitter']['listenTo'](window,'online',()=>this['_isBrowserOffline']=!0x1),this['context']['config']['define']('cloudServices.connectionTimeout',0xa),this['context']['config']['define']('cloudServices.requestTimeout',0x14),WebSocketGateway['WebSocketGateway']['connect'](_0x429829['token'],_0x429829['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x391952=>{if(this['connection']=_0x391952,this['bind']('state')['to'](_0x391952,'state',this,'_isBrowserOffline',(_0x361914,_0x2f4a41)=>('connected'!==_0x361914&&(this['_shouldPluginsReconnect']=!0x0),_0x2f4a41||_0x361914!==_0x4e17ce['CONNECTED']?_0x4e17ce['DISCONNECTED']:this['state']==_0x4e17ce['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x4e17ce['CONNECTING']):_0x4e17ce['CONNECTED'])),this['connection']['on']('error',(_0x2855ec,_0x1c0ff7)=>{if('limitExceeded'!==_0x1c0ff7['code'])throw console['error'](_0x1c0ff7),new _0x146074('cloudservices-init',null,{'originalError':_0x1c0ff7});_0x2ac04c['showWarning']('The\x20limit\x20of\x20maximum\x20concurrent\x20connections\x20that\x20the\x20collaboration\x20server\x20can\x20handle\x20has\x20been\x20reached.\x20Try\x20opening\x20the\x20document\x20again\x20in\x20a\x20few\x20minutes.\x20Please\x20contact\x20your\x20system\x20administrator\x20if\x20the\x20problem\x20persists.',{'title':'Connected\x20users\x20limit\x20exceeded','namespace':'real-time-collaboration'});}),!_0x391952['me'])return new Promise(_0x299c39=>_0x391952['on']('change:me',_0x299c39));})['catch'](_0xa2723b=>{throw console['error'](_0xa2723b),new _0x146074('cloudservices-init',null,{'originalError':_0xa2723b});});}['addToReconnectionStack'](_0x1ea049){if('function'!=typeof _0x1ea049['reconnect'])throw new _0x146074('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x1ea049))throw new _0x146074('websocketgateway-plugin-already-registered',this,{'name':_0x1ea049['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x1ea049);}['removeFromReconnectionStack'](_0x5e8d8c){this['_reconnectionStack']['delete'](_0x5e8d8c);}['isInReconnectionStack'](_0x195352){return this['_reconnectionStack']['has'](_0x195352);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x4e12cf=>_0x4e12cf['reconnect']())))['then'](()=>this['state']=_0x4e17ce['CONNECTED'])['catch'](_0x75db37=>{throw console['error'](_0x75db37),new _0x146074('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x4e17ce['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x1b9cff{['channelSessions'];['channelConnectedUsers'];['allConnectedUsers'];['_registeredSessions'];['_uniqueUsersCount'];['_users'];static get['pluginName'](){return'Sessions';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}static get['requires'](){return[WebSocketGateway,_0x3e9224];}constructor(_0x1e08b9){super(_0x1e08b9),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x340917(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x3e9224);}['init'](){const _0x2ca04c=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x2ca04c,'change:state',(_0x1ec655,_0x4ed08a,_0x18a927)=>{if('connected'!==_0x18a927)this['channelSessions']['forEach'](_0x372c72=>_0x372c72['clear']()),this['channelConnectedUsers']['forEach'](_0x417c1a=>_0x417c1a['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x17c5b8,_0x353fcf]of this['_registeredSessions'])for(const _0x1a5374 of _0x353fcf)this['_handleSessionAdd'](_0x17c5b8,_0x1a5374);}}),this['_createUser'](_0x2ca04c['connection']['me'],!0x0);}['register'](_0x577280,_0xf6e01){if(this['_registeredSessions']['has'](_0x577280))throw new _0x146074('sessions-register-already-registered',null,{'channelId':_0x577280});this['_registeredSessions']['set'](_0x577280,_0xf6e01),this['channelSessions']['set'](_0x577280,new _0x340917()),this['channelConnectedUsers']['set'](_0x577280,new _0x340917()),this['listenTo'](_0xf6e01,'add',(_0x53a7e0,_0xcb8861)=>this['_handleSessionAdd'](_0x577280,_0xcb8861)),this['listenTo'](_0xf6e01,'remove',(_0x4afd8a,_0x1b2703)=>this['_handleSessionRemove'](_0x577280,_0x1b2703));for(const _0xc0262c of _0xf6e01)this['_handleSessionAdd'](_0x577280,_0xc0262c);}['unregister'](_0x869e36){if(!this['_registeredSessions']['has'](_0x869e36))throw new _0x146074('sessions-unregister-not-exist',null,{'channelId':_0x869e36});const _0xb493df=this['_registeredSessions']['get'](_0x869e36);this['stopListening'](_0xb493df);for(const _0x201a20 of _0xb493df)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x869e36,_0x201a20);this['_registeredSessions']['delete'](_0x869e36),this['channelSessions']['delete'](_0x869e36),this['channelConnectedUsers']['delete'](_0x869e36);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x2d6edc){for(const _0x130710 of this['channelSessions']['values']())for(const _0x598c0d of _0x130710)if(_0x598c0d['id']===_0x2d6edc)return _0x598c0d['user'];}['getUserSessions'](_0x766f00,_0x354b28){const _0x18bed8=_0x354b28?[this['channelSessions']['get'](_0x354b28)]:this['channelSessions']['values'](),_0x39d9bf=new Set();for(const _0x5335e1 of _0x18bed8)for(const _0x2bb8e3 of _0x5335e1)_0x2bb8e3['user']['id']===_0x766f00['id']&&_0x39d9bf['add'](_0x2bb8e3['id']);return _0x39d9bf;}['getUserRole'](_0x1b9de6){for(const _0x2ef450 of this['channelSessions']['values']())for(const _0x38f0bd of _0x2ef450)if(_0x38f0bd['user']===_0x1b9de6)return _0x38f0bd['role'];}['_handleSessionAdd'](_0x179593,_0x1d4d8a){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x1429cc=_0x1d4d8a['user'],_0x23063d=this['_users']['getUser'](_0x1429cc['id'])||this['_createUser'](_0x1429cc),_0x24fc96=Object['assign']({},_0x1d4d8a,{'user':_0x23063d});if(this['channelSessions']['get'](_0x179593)['add'](_0x24fc96),!_0x1429cc['hiddenInPresenceList']){const _0x2e0f46=this['channelConnectedUsers']['get'](_0x179593);_0x2e0f46['has'](_0x23063d['id'])||_0x2e0f46['add'](_0x23063d),this['allConnectedUsers']['has'](_0x23063d['id'])||_0x1429cc['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x23063d,_0x23063d['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x179593,{'channelId':_0x179593,'session':_0x24fc96});}['_handleSessionRemove'](_0x2e49af,_0x230126){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x25068f=this['channelConnectedUsers']['get'](_0x2e49af),_0x3bce15=_0x230126['user'];_0x3bce15['id']&&(this['channelSessions']['get'](_0x2e49af)['remove'](_0x230126['id']),_0x25068f['has'](_0x3bce15['id'])&&!this['getUserSessions'](_0x3bce15,_0x2e49af)['size']&&_0x25068f['remove'](_0x3bce15['id']),this['allConnectedUsers']['get'](_0x3bce15['id'])&&!this['getUserSessions'](_0x3bce15)['size']&&this['allConnectedUsers']['remove'](_0x3bce15['id']));}['_createUser'](_0x4fa32d,_0x3c9496){const _0x4dff0f=this['_users']['addUser'](_0x4fa32d);return _0x3c9496&&this['_users']['defineMe'](_0x4fa32d['id']),_0x4dff0f['orderNumber']=this['_uniqueUsersCount']++,_0x4dff0f;}}class UserMarkers extends _0x25acfb{['_domEmitter']=new(_0x3daabf())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x1c744e=this['editor'],_0x17f8ec=_0x1c744e['plugins']['get'](Sessions);_0x1c744e['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x110bf1,{writer:_0x4fca7b})=>function(_0x435555,_0x22e618,_0x5590b8,_0x56a491){const _0x1308e8=_0x435555['markerName']['split'](':')[0x2],_0x12cc05=_0x5590b8['getUserBySessionId'](_0x1308e8);if(!_0x12cc05||_0x1308e8===_0x5590b8['mySessionId'])return;if(!_0x56a491['model']['schema']['checkChild'](_0x435555['markerRange']['start'],'$text'))return;const _0x191944={'class':'ck-user__marker\x20'+_0x12cc05['color']['getMarkerClass'](),'style':Y(_0x12cc05),'data-name':_0x12cc05['name'],'data-session-id':_0x1308e8},_0x1250de=_0x56a491['model']['markers']['get'](_0x435555['markerName']),_0x9eb81e=_0x1250de['getStart'](),_0x251116=_0x9eb81e['nodeAfter'],_0x34f2b9=_0x56a491['model']['schema'];if(_0x251116&&_0x34f2b9['isObject'](_0x251116)&&_0x34f2b9['isInline'](_0x251116)&&!_0x56a491['model']['markers']['get']('user:range:'+_0x1308e8)['getRange']()['isCollapsed'])return;const _0x4cd3f3=_0x9eb81e['parent'];return _0x56a491['model']['schema']['isLimit'](_0x4cd3f3)&&!_0x56a491['model']['hasContent'](_0x4cd3f3)&&(_0x191944['contenteditable']=!0x1),function(_0x50d7fc,_0x213b72,_0xea48ec){const _0x588475=_0x50d7fc['createUIElement']('span',_0x213b72);return _0x50d7fc['setCustomProperty']('userPositionMarker',!0x0,_0x588475),_0x588475['render']=function(_0x17ae13){const _0x56fa49=this['toDomElement'](_0x17ae13),_0x540e92=document['createElement']('span');return _0x540e92['classList']['add']('ck-user__marker-tooltip'),_0x540e92['setAttribute']('contenteditable','false'),_0x540e92['setAttribute']('spellcheck','false'),_0x540e92['textContent']=_0xea48ec['name'],_0x56fa49['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x540e92['outerHTML']+'⁠',_0x56fa49['addEventListener']('mouseenter',()=>{_0x56fa49['classList']['add']('ck-user__marker_hovered');}),_0x56fa49['addEventListener']('mouseleave',()=>{_0x56fa49['classList']['remove']('ck-user__marker_hovered');}),_0x56fa49;},_0x588475['isSimilar']=function(_0xbbe249){return!(!this['getCustomProperty']('userPositionMarker')||!_0xbbe249['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0xbbe249['getAttribute']('data-session-id'));},_0x588475;}(_0x22e618,_0x191944,_0x12cc05);}(_0x110bf1,_0x4fca7b,_0x17f8ec,_0x1c744e)}),_0x1c744e['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x2fcd16=>function(_0x3a8068,_0x1cc68c){const _0x5a3777=_0x3a8068['markerName']['split'](':')[0x2];if(_0x5a3777===_0x1cc68c['mySessionId'])return null;const _0x41dbf7=_0x1cc68c['getUserBySessionId'](_0x5a3777);if(!_0x41dbf7)return{'id':_0x5a3777,'classes':[]};return{'id':_0x5a3777,'classes':['ck-user__selection',_0x41dbf7['color']['getSelectionClass']()],'attributes':{'style':Y(_0x41dbf7),'data-session-id':_0x5a3777},'priority':0x7d0+_0x41dbf7['orderNumber']};}(_0x2fcd16,_0x17f8ec)}),function(_0x55468f){const _0x35fd94=_0x55468f['model'],_0x4192e2=new Map(),_0x1ebad6=_0x55468f['plugins']['get'](Sessions);_0x35fd94['markers']['on']('update:user:range',(_0x5038fb,_0x2ed3a4,_0x51d79f,_0xc4419e)=>{if(!_0xc4419e&&_0x4192e2['get'](_0x2ed3a4['name']))return _0x4192e2['get'](_0x2ed3a4['name'])['detach'](),void _0x4192e2['delete'](_0x2ed3a4['name']);const _0x47d06e=_0x2ed3a4['name']['split'](':')[0x2];if(_0x47d06e===_0x1ebad6['mySessionId'])return;const _0x36d155='user:position:'+_0x47d06e;_0x35fd94['markers']['has'](_0x36d155)&&_0x55468f['editing']['reconvertMarker'](_0x36d155),_0x2ed3a4['on']('change:range',(_0x3a5cb4,_0xdea481,_0x25d880)=>{if('$graveyard'!=_0xdea481['root']['rootName']&&'$graveyard'==_0x2ed3a4['getRange']()['root']['rootName']&&!_0x4192e2['has'](_0x2ed3a4['name'])){const _0x269c14=_0x35fd94['schema']['getNearestSelectionRange'](_0x25d880['deletionPosition']);if(_0x269c14){const _0x17dac3=_0x5d0016['fromRange'](_0x269c14);_0x4192e2['set'](_0x2ed3a4['name'],_0x17dac3),_0x17dac3['on']('change:range',(_0x58f15e,_0x4f0b0c,_0x22a73c)=>{if('$graveyard'==_0x17dac3['root']['rootName']){const _0x1cf256=_0x35fd94['schema']['getNearestSelectionRange'](_0x22a73c['deletionPosition']);_0x1cf256?(_0x17dac3['start']=_0x1cf256['start'],_0x17dac3['end']=_0x1cf256['end']):(_0x4192e2['delete'](_0x2ed3a4['name']),_0x17dac3['detach']());}});}}});}),_0x35fd94['document']['on']('change',()=>{_0x4192e2['size']>0x0&&_0x35fd94['enqueueChange']({'isUndoable':!0x1},_0x3a393c=>{for(const [_0x2e22ff,_0x8e7abd]of _0x4192e2)'$graveyard'==_0x35fd94['markers']['get'](_0x2e22ff)['getRange']()['root']['rootName']&&(z(_0x2e22ff['split'](':')[0x2],_0x8e7abd['toRange'](),_0x35fd94,_0x3a393c),_0x8e7abd['detach']());_0x4192e2['clear']();});});}(_0x1c744e),this['_domEmitter']['listenTo'](_0x248dd9['document'],'keydown',(_0x5db12d,{key:_0x1d2e63})=>{'Escape'===_0x1d2e63&&function(_0x394511){_0x394511['editing']['view']['change'](_0x327a79=>{for(const _0x5c2e1c of _0x394511['model']['markers']){if(!_0x5c2e1c['name']['startsWith']('user:position'))continue;const _0x296c41=_0x394511['editing']['mapper']['markerNameToElements'](_0x5c2e1c['name']);if(_0x296c41){for(const _0x58150b of _0x296c41)_0x327a79['removeClass']('ck-user__marker_hovered',_0x58150b);}}});}(_0x1c744e);},{'useCapture':!0x0});}['afterInit'](){const _0x3c7656=this['editor'],_0x468305=_0x3c7656['commands']['get']('undo');_0x468305&&_0x3c7656['model']['on']('applyOperation',(_0x43fcf0,_0x16dd51)=>{const _0x305a65=_0x16dd51[0x0];if(!_0x305a65['isDocumentOperation'])return;if('marker'!=_0x305a65['type']||!_0x305a65['name']['startsWith']('user:'))return;const _0x466ec2=_0x305a65['batch'];_0x468305['_createdBatches']['has'](_0x466ec2)&&(_0x305a65['newRange']=_0x305a65['oldRange']?_0x3c7656['model']['createRange'](_0x305a65['oldRange']['start'],_0x305a65['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x1c3d2d=this['editor'],_0x5d6ef7=_0x1c3d2d['model']['document'],_0x589626=_0x1c3d2d['plugins']['get'](Sessions);_0x1c3d2d['model']['enqueueChange']({'isUndoable':!0x1},_0x17bdc=>{const _0x49fa24='user:range:'+_0x589626['mySessionId'],_0x25c6d3='user:position:'+_0x589626['mySessionId'],_0x29de2a=_0x1c3d2d['model']['markers']['has'](_0x49fa24);_0x1c3d2d['editing']['view']['hasDomSelection']?z(_0x589626['mySessionId'],_0x5d6ef7['selection']['getFirstRange'](),_0x1c3d2d['model'],_0x17bdc):_0x29de2a&&(_0x17bdc['removeMarker'](_0x49fa24),_0x17bdc['removeMarker'](_0x25c6d3));});}}function z(_0x3c0f6e,_0x20112b,_0x1b4e78,_0x30fa75){const _0x9d9b5d='user:range:'+_0x3c0f6e,_0x43baa1='user:position:'+_0x3c0f6e,_0x32ce0e=_0x20112b['getContainedElement']();let _0x2e5be0=_0x20112b['start'];if(_0x32ce0e&&_0x32ce0e['is']('element','tableCell')){const _0x54faf1=function(_0x47fc28,_0xabfdf7){for(const _0x165e8d of _0x47fc28['getPositions']())if(_0xabfdf7['schema']['checkChild'](_0x165e8d,'$text'))return _0x165e8d;}(_0x20112b,_0x1b4e78);_0x54faf1&&(_0x2e5be0=_0x54faf1,_0x20112b=_0x30fa75['createRange'](_0x2e5be0));}const _0x37a96d=_0x30fa75['createRange'](_0x2e5be0);_0x1b4e78['markers']['has'](_0x9d9b5d)?(_0x30fa75['updateMarker'](_0x9d9b5d,{'range':_0x20112b}),_0x30fa75['updateMarker'](_0x43baa1,{'range':_0x37a96d})):(_0x30fa75['addMarker'](_0x9d9b5d,{'range':_0x20112b,'usingOperation':!0x0}),_0x30fa75['addMarker'](_0x43baa1,{'range':_0x37a96d,'usingOperation':!0x0}));}function Y(_0x1160b1){return'--ck-user-color:'+_0x1160b1['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x1160b1['color']['getColorAlphaVariable']()+';';}function K(_0x524bec,_0x3ed2cd,_0x25243d){const _0x142560=_0x524bec['t'],t=_0x524bec['t'];switch(_0x3ed2cd){case'PENDING_ACTION_SENDING_DATA':return t({'string':'Sending\x20data\x20to\x20the\x20server.','id':'PENDING_ACTION_SENDING_DATA'});case'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'Synchronization\x20issue':return t('Synchronization\x20issue');case'Connected\x20users\x20list\x20dropdown\x20menu':return t('Connected\x20users\x20list\x20dropdown\x20menu');case'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':return t('Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)');case'Connected\x20users\x20list':return t('Connected\x20users\x20list');case'PENDING_ACTION_REVISION_HISTORY':return _0x142560({'string':'Unsaved\x20change\x20in\x20revision\x20history.','id':'PENDING_ACTION_REVISION_HISTORY'});case'CONNECTED_USERS':return t({'string':'1\x20connected\x20user\x20(me)','plural':'%0\x20connected\x20users','id':'CONNECTED_USERS'},_0x25243d);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x25acfb{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
+ ((()=>_0x2cf64e)());['_offset'];['sessionId'];['serverHistory'];['_channelId'];['_service'];['_document'];['_compressor'];['_bufferedOperations'];['_knownOperations'];['_knownRootNames'];['_pendingAction'];['_hasSelectionChanged'];['_sendBufferedOperationsDelayId'];['_baseBufferDelay'];['_currentBufferDelay'];['_lastSyncedOperationId'];['_disconnectionOperations'];['_operationIdentifier'];static get['requires'](){return[WebSocketGateway,Sessions,UserMarkers,_0x31943e,_0x3e9224,_0x532a35];}static get['pluginName'](){return'RealTimeCollaborationClient';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}get['cloudDocumentVersion'](){return this['_lastServerVersion']+this['_offset'];}get['_lastServerVersion'](){return this['serverHistory']['version']-this['_offset'];}get['lastSyncVersion'](){const _0x3409a7=this['serverHistory']['getOperations']();for(let _0x3ed423=_0x3409a7['length']-0x1;_0x3ed423>=0x0;_0x3ed423--){const _0x1928ee=_0x3409a7[_0x3ed423];if(!this['_disconnectionOperations']['has'](_0x1928ee))return _0x1928ee['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x1c90e7){if(super(_0x1c90e7),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0xb0b44f(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x146074('collaboration-missing-channelid',this);const _0x456fc5=_0x1c90e7['config']['get']('cloudServices.bundleVersion')||_0x429b78;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x456fc5,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x41afd4(),this['_bufferedOperations']=[],this['_knownOperations']=new WeakSet(),this['_knownRootNames']=new Set(),this['set']('_isPendingUpdate',!0x1),this['set']('_hasSynchronizationProblem',!0x1),this['_pendingAction']=null,this['_hasSelectionChanged']=!0x1,this['_sendBufferedOperationsDelayId']=null,this['_baseBufferDelay']=0x12c,this['_currentBufferDelay']=this['_baseBufferDelay'],this['_lastSyncedOperationId']=null,this['_disconnectionOperations']=new WeakSet(),this['_operationIdentifier']=new OperationIdentifier(this['_disconnectionOperations']);}['init'](){const _0x295fca=this['editor'],_0x29e352=_0x295fca['plugins']['get'](_0x3e9224),_0x6feeac=_0x295fca['plugins']['get'](WebSocketGateway);this['listenTo'](_0x29e352,'getOperationAuthor',(_0x2fdad6,_0x540be5)=>{const _0x5a0498=_0x540be5[0x0];_0x5a0498['_authorId']&&(_0x2fdad6['return']=_0x29e352['getUser'](_0x5a0498['_authorId']),_0x2fdad6['stop']()),null===_0x5a0498['_authorId']&&(_0x2fdad6['return']=null,_0x2fdad6['stop']());},{'priority':'high'}),this['listenTo'](_0x295fca['model']['document']['selection'],'change:range',(_0x46da0d,_0x2598c1)=>{_0x2598c1['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x295fca['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x295fca['model']['on']('applyOperation',(_0x4fabd1,_0x593575)=>{const _0x35c339=_0x593575[0x0];_0x35c339['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x35c339),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x6feeac,'state',this,'_hasSynchronizationProblem',(_0x30e6ff,_0x1aa68c)=>'connected'===_0x30e6ff&&!_0x1aa68c),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x295fca['disableReadOnlyMode']('rtc-offline'):_0x295fca['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x295fca['disableReadOnlyMode']('rtc-offline'):_0x295fca['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x5db02f=this['editor']['plugins']['get'](Sessions),_0x4a5c88=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x5db02f['unregister'](this['_channelId']);const _0x3ca5cc=await this['_service']['reconnect'](_0x4a5c88['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x3ca5cc)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x1142e3=await this['_service']['getConnectedSessions']();_0x5db02f['register'](this['_channelId'],_0x1142e3),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x2abfe7){if(function(_0x2c399e){return'404'===_0x2c399e['code'];}(_0x2abfe7)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0xfcd4f){return'409'===_0xfcd4f['code'];}(_0x2abfe7)){const _0x178c3f=K(this['editor']['locale'],'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');this['_handleReconnectionError'](_0x178c3f);}else{if(!(_0x2abfe7 instanceof ReconnectionError))throw _0x2abfe7;this['_handleReconnectionError']();}}}}['destroy'](){const _0x3d6ac9=this['editor']['plugins']['get'](WebSocketGateway),_0x46d7aa=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x46d7aa['channelSessions']['has'](this['_channelId'])&&_0x46d7aa['unregister'](this['_channelId']),_0x3d6ac9['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x5e7fa5){if(this['sessionId']!==_0x5e7fa5['sessionId']&&this['_lastSyncedOperationId']!==_0x5e7fa5['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x5e7fa5['sessionId'],this['_handleServerResponse']([],{..._0x5e7fa5,'wereChangesApplied':!0x1,'data':_0x5e7fa5['data']},'reconnect');}async['_connectService'](_0x222de6,_0x552094=!0x1){const {connection:_0x1b9b90}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x1b9b90,this['_channelId'])['then'](_0x330465=>this['_initSessionsHandling'](_0x330465))['catch'](_0x5c5986=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x5c5986);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x23e7f0,_0x122fe0)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x122fe0);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x3761d7=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x222de6);this['_isPendingUpdate']=!0x0;const _0x3bb3d8=await this['_service']['connect'](_0x1b9b90,this['_compressOperations'](_0x222de6),_0x3761d7);if(this['sessionId']=_0x3bb3d8['sessionId'],_0x552094){if(!_0x3bb3d8['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x3bb3d8['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x222de6,_0x3bb3d8,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x3bb3d8,_0x222de6);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x35024d=this['editor']['plugins']['get'](Sessions),_0x534157=this['editor']['plugins']['get'](UserMarkers),_0x4aa9b2=_0x35024d['channelSessions']['get'](this['_channelId']);_0x4aa9b2&&_0x4aa9b2['length']>0x1?_0x534157['createUserMarkerOperations']():this['listenTo'](_0x35024d,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x35024d['channelSessions']['get'](this['_channelId'])['length']&&_0x534157['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x129e92,_0x530153,_0x95609,_0x145836){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x530153){const _0x1fcc73=this['_decompressOperations'](_0x95609,_0x145836);await this['_fetchMissingUsers'](_0x1fcc73),this['_handleExternalOperations'](_0x1fcc73,_0x530153,_0x95609['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x564161}=this['editor'];let _0x4ece56;try{_0x4ece56=await this['_service']['getDocumentDetails']();}catch{const _0x964b98=K(_0x564161,'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x964b98);}const _0x526cf9=_0x4ece56['currentDocumentSession']||_0x4ece56['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x526cf9['lastOperationId']){const _0x12a8ea=K(_0x564161,'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x12a8ea);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0xfefdf1){const _0x256c47=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x256c47,'sessionAdd:'+this['_channelId'],(_0x155916,{session:_0x58fc9f})=>{if(_0x58fc9f['id']===_0x256c47['mySessionId']){_0x155916['off']();const _0x2c68c2=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x2d1049=_0x58fc9f['permissions'];_0x2c68c2&&_0x2c68c2['isEnabled']&&(_0x2d1049=_0x2d1049['filter'](_0x1cb5ba=>'document:write'!==_0x1cb5ba)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x2d1049,this['_channelId']);}}),_0x256c47['register'](this['_channelId'],_0xfefdf1);}['_initThrowingOnDataSet'](){const _0x2ef210=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x31ca1c)=>{if(!_0x31ca1c[_0x31ca1c['length']-0x1]['suppressErrorInCollaboration'])throw new _0x146074('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x2ef210['apply'](this['editor']['data'],_0x31ca1c);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x3bca1d,[_0x409118])=>{if(this['_document']['version'])throw new _0x146074('realtimecollaborationclient-init-document-already-initialized',this);_0x3bca1d['stop'](),this['_setPendingAction']();const _0x23ea78=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x1fbf61])=>!_0x1fbf61['lazyLoad'])['map'](([_0x2469e4,_0x13d6b4])=>[_0x2469e4,_0x13d6b4['modelAttributes']||{}])),_0x2e2b15=this['_getOperationsFromInitData'](_0x409118,_0x23ea78);0x0==_0x2e2b15['length']&&_0x2e2b15['push'](new _0x5ea7c9(0x0)),_0x3bca1d['return']=this['_connectService'](_0x2e2b15)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x28956d=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x28956d))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x57bf82,[_0x5e66b2,_0x2d0a69])=>{_0x57bf82['stop']();const _0x5cac3d=this['editor']['model']['document']['getRoot'](_0x5e66b2);if(!this['_knownRootNames']['has'](_0x5e66b2)){const _0x110af5=_0x2d0a69&&_0x2d0a69['data']?_0x2d0a69['data']:'',_0x26c064=_0x2d0a69&&_0x2d0a69['attributes']?_0x2d0a69['attributes']:{};await this['_loadRoot'](_0x5e66b2,_0x110af5,_0x26c064);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x5cac3d['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x5cac3d);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x17bb91){const _0x41f9a9=this['editor']['plugins']['get'](_0x3e9224),{connection:_0x52163a}=this['editor']['plugins']['get'](WebSocketGateway),_0x2ce6f6=new Set();for(const _0x7fa9 of _0x17bb91){const _0x2db2e1=_0x7fa9['_authorId'];_0x2db2e1&&!_0x41f9a9['getUser'](_0x2db2e1)&&_0x2ce6f6['add'](_0x2db2e1);}if(0x0===_0x2ce6f6['size'])return;const _0x554c2e=await _0x3383d3['getMany'](_0x52163a,Array['from'](_0x2ce6f6));for(const _0x230bab of _0x554c2e)_0x41f9a9['getUser'](_0x230bab['id'])||_0x41f9a9['addUser'](_0x230bab);}['_getOperationsFromInitData'](_0x3349fa,_0x496afa={}){const _0x4a543a=this['editor']['model'],_0x4ece16=[];let _0x1375af=0x0;const _0x114998='string'==typeof _0x3349fa?{'main':_0x3349fa}:_0x3349fa;for(const _0x3df09f of Object['keys'](_0x114998)){if(!this['_document']['roots']['has'](_0x3df09f))throw new _0x146074('realtimecollaborationclient-init-non-existent-root',this);const _0x5d49e5=this['editor']['data']['parse'](_0x114998[_0x3df09f]),_0x53f242=this['_document']['getRoot'](_0x3df09f),_0x4b9802=new _0x10dd3e(_0x4a543a['createPositionAt'](_0x53f242,0x0),_0x5d49e5,_0x1375af++);_0x4ece16['push'](_0x4b9802);for(const [_0x482cd1,_0x2be80d]of _0x5d49e5['markers']){const _0x3c3b0a=_0x4a543a['createRange'](_0x4a543a['createPositionFromPath'](_0x53f242,_0x2be80d['start']['path']['slice']()),_0x4a543a['createPositionFromPath'](_0x53f242,_0x2be80d['end']['path']['slice']())),_0x123a05=new _0x40006b(_0x482cd1,null,_0x3c3b0a,_0x4a543a['markers'],!0x0,_0x1375af++);_0x4ece16['push'](_0x123a05);}}if(_0x496afa)for(const [_0x3d3696,_0x17b135]of Object['entries'](_0x496afa)){const _0x8af1cd=_0x4a543a['document']['getRoot'](_0x3d3696);if(!_0x8af1cd)throw new _0x146074('multi-root-editor-root-attributes-no-root',null);for(const [_0x1fa0ff,_0x5efa23]of Object['entries'](_0x17b135))if(null!==_0x5efa23){const _0x4bcb46=new _0x411e94(_0x8af1cd,_0x1fa0ff,null,_0x5efa23,_0x1375af++);_0x4ece16['push'](_0x4bcb46);}}return _0x4ece16;}async['_loadRoot'](_0x38e74c,_0x39c8b3,_0x48245b){this['_getOperationsFromInitData']({[_0x38e74c]:_0x39c8b3},{[_0x38e74c]:_0x48245b})['forEach']((_0x14f1f1,_0x457912)=>{_0x14f1f1['baseVersion']=this['_document']['version']+_0x457912,_0x14f1f1['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x14f1f1);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x3683d0,_0x2ff763){let _0x652b1b;this['_offset']=_0x3683d0['offset'];const _0x313ff0=_0x3683d0['wereChangesApplied']&&!_0x3683d0['initData'],_0x374655=_0x313ff0?0x0:_0x3683d0['data']['baseVersion'];if(_0x2ff763['forEach'](_0x248a23=>{_0x248a23['_isInit']=!0x0,_0x248a23['createdAt']=_0x3683d0['sessionCreatedAt'],_0x248a23['_authorId']=null;}),_0x313ff0)_0x652b1b=_0x2ff763,this['_applyOperationsSet'](_0x652b1b,_0x313ff0);else{if(_0x3683d0['initData']){const _0x3726cf=this['_getOperationsFromInitData'](_0x3683d0['initData']);this['_document']['history']['version']=-_0x3726cf['length'],_0x3726cf['forEach'](_0xf3ca1f=>{_0xf3ca1f['baseVersion']-=_0x3726cf['length'],_0xf3ca1f['createdAt']=_0x3683d0['sessionCreatedAt'],_0xf3ca1f['_isInit']=!0x0,_0xf3ca1f['_authorId']=null;}),this['_applyOperationsSet'](_0x3726cf,!0x0),this['serverHistory']['version']=-_0x3726cf['length']+this['_offset'],this['_updateServerHistory'](_0x3726cf);}this['_document']['history']['version']=_0x374655,_0x652b1b=this['_decompressOperations'](_0x3683d0['data'],_0x3683d0['metadata']),await this['_fetchMissingUsers'](_0x652b1b),this['_applyOperationsSet'](_0x652b1b,_0x313ff0);}_0x3683d0['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x652b1b,_0x3683d0['lastOperationId']),this['_lastSyncedOperationId']=_0x3683d0['lastOperationId']),this['serverHistory']['version']=_0x374655+this['_offset'],this['_updateServerHistory'](_0x652b1b),_0x2ff763['filter'](_0x4901e9=>{const _0xa36c7a=this['_getAffectedRoot'](_0x4901e9);return _0xa36c7a&&!this['_knownRootNames']['has'](_0xa36c7a);})['forEach']((_0x163b4a,_0x52fd9b)=>{_0x163b4a['baseVersion']=this['_document']['version']+_0x52fd9b,this['_saveOperationInBuffer'](_0x163b4a);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x1707ec,_0x41bb27){const _0x3051e3=_0x41bb27&&_0x41bb27['message'];if(_0x3051e3&&_0x3051e3['startsWith']('realtimecollaborationclient'))throw _0x41bb27;const _0x44c659=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x44c659['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x146074(_0x1707ec,this['editor'],_0x3051e3?{'originalError':_0x3051e3}:void 0x0);}['_saveOperationInBuffer'](_0x545d50){this['_knownOperations']['has'](_0x545d50)||(this['_knownOperations']['add'](_0x545d50),this['_bufferedOperations']['push'](_0x545d50),this['_pendingAction']||'marker'==_0x545d50['type']&&!_0x545d50['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x153bcf=!0x1){!_0x153bcf&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x34c599=>{_0x34c599&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x525539=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x44cce5){return _0x44cce5['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x44cce5['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x44cce5['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x525539)||this['_crash'](_0x525539['message'],_0x525539);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x5a89e8=>{this['on']('change:_isPendingUpdate',()=>{_0x5a89e8();});});}async['_sendBufferedOperations'](){const _0x79cb55=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x79cb55['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x4e6a2a=[...this['_bufferedOperations']];for(const _0x28b098 of _0x4e6a2a)_0x28b098['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x28b098);const _0x4237e8=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x4e6a2a),_0x5b06a1=J++,_0x1e51ff=this['_compressOperations'](_0x4e6a2a),_0x42196b=await this['_service']['sendOperations'](_0x1e51ff,_0x1e51ff['baseVersion'],_0x4237e8);try{return await this['_handleServerResponse'](_0x4e6a2a,_0x42196b,_0x5b06a1);}catch(_0x20d090){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x20d090);}}async['_handleServerResponse'](_0x1d9651,_0x2871c0,_0x30f470){if('error'in _0x2871c0)throw _0x2871c0['error'];let _0x1f37f3=!0x1;if(_0x2871c0['wereChangesApplied']){_0x2871c0['lastOperationId']&&(this['_lastSyncedOperationId']=_0x2871c0['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x4b26ce=>!_0x1d9651['includes'](_0x4b26ce));for(const _0x2b2643 of _0x1d9651)_0x2b2643['createdAt']='lastOperationAcceptedAt'in _0x2871c0&&_0x2871c0['lastOperationAcceptedAt']||void 0x0;Q(_0x1d9651,_0x2871c0['version']-_0x1d9651['length']),this['_updateServerHistory'](_0x1d9651);const _0x205575=_0x1d9651['filter'](_0x1eee4b=>{if(!_0x1eee4b['_isInit'])return!0x1;const _0x494dfb=this['_getAffectedRoot'](_0x1eee4b);return _0x494dfb&&!this['_knownRootNames']['has'](_0x494dfb);});Q(_0x205575,this['_document']['version']),this['_applyOperationsSet'](_0x205575),_0x1f37f3=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x476070=this['_decompressOperations'](_0x2871c0['data'],_0x2871c0['metadata'])['filter'](_0xac0aac=>_0xac0aac['baseVersion']>=this['_lastServerVersion']);_0x476070['forEach'](_0x2c790c=>this['_addKnownRoot'](_0x2c790c)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x299d69=>!_0x299d69['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x299d69))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x476070),_0x1f37f3=this['_handleExternalOperations'](_0x476070,_0x2871c0['version'],_0x2871c0['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x1f37f3?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x1f7d49,_0x1008b3,_0x29b543){try{const _0x475489={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x21c66e,operationsB:_0x491164,originalOperations:_0x46fab3}=_0x325962(_0x1f7d49,this['_bufferedOperations'],_0x475489);Q(_0x21c66e,this['_document']['version']),Q(_0x491164,_0x1008b3);for(const _0x291c98 of _0x21c66e){const _0x4d9a70=_0x46fab3['get'](_0x291c98);_0x291c98['_authorId']=_0x4d9a70?_0x4d9a70['_authorId']:null;}_0x29b543&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x1f7d49,_0x29b543),this['_lastSyncedOperationId']=_0x29b543),this['_bufferedOperations']=[..._0x491164],this['_applyOperationsSet'](_0x21c66e),this['_updateServerHistory'](_0x1f7d49);}catch(_0x3295c1){return console['error'](_0x3295c1),!0x1;}return!0x0;}['_applyOperationsSet'](_0x22d622,_0x36e994=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x55d6b5=>{for(const _0x2a0917 of _0x22d622)this['_knownOperations']['add'](_0x2a0917),this['_addKnownRoot'](_0x2a0917),_0x55d6b5['batch']['addOperation'](_0x2a0917),this['editor']['model']['applyOperation'](_0x2a0917);});}['_addKnownRoot'](_0x35de3f){const _0x4edd40=this['_getAffectedRoot'](_0x35de3f);_0x4edd40&&this['_knownRootNames']['add'](_0x4edd40);}['_getAffectedRoot'](_0xb3351f){let _0x2ae70c,_0x3c70b0;switch(_0xb3351f['type']){case'insert':_0x2ae70c=_0xb3351f['position']['root'];break;case'marker':if(_0x3c70b0=_0xb3351f['newRange'],!_0x3c70b0)return null;_0x2ae70c=_0x3c70b0['root'];break;case'addRootAttribute':_0x2ae70c=_0xb3351f['root'];break;case'addRoot':_0x2ae70c=_0xb3351f['affectedSelectable'];break;case'move':_0x2ae70c=_0xb3351f['targetPosition']['root'];break;default:return null;}return _0x2ae70c['rootName'];}['_updateServerHistory'](_0x2ba994){_0x2ba994['forEach'](_0x474aa2=>{const _0x1d2930=_0x474aa2['clone']();_0x1d2930['_authorId']=_0x474aa2['_authorId'],_0x1d2930['_isInit']=!!_0x474aa2['_isInit'],_0x1d2930['createdAt']=_0x474aa2['createdAt'],_0x1d2930['baseVersion']+=this['_offset'],_0x474aa2['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x1d2930),this['serverHistory']['addOperation'](_0x1d2930);});}['_handleReconnectionError'](_0x690d1f){const _0x3a9d53=this['editor']['plugins']['get']('Notification'),_0x4a30e4=this['editor']['locale'];_0x690d1f||(_0x690d1f=K(_0x4a30e4,'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.')),_0x3a9d53['showWarning'](_0x690d1f,{'title':K(_0x4a30e4,'Synchronization\x20issue'),'namespace':'real-time-collaboration'}),this['_hasSynchronizationProblem']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_bufferedOperations']=[],this['editor']['plugins']['get'](WebSocketGateway)['disconnect']();}['_setPendingAction'](){this['_pendingAction']||(this['_pendingAction']=this['editor']['plugins']['get'](_0x31943e)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x31943e)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x296904){const _0x5eef7f=_0x296904['map'](_0x2bbd42=>_0x2bbd42['toJSON']());return this['_compressor']['compress'](_0x5eef7f);}['_decompressOperations'](_0x50aa8f,_0x51bcb3){return this['_compressor']['decompress'](_0x50aa8f)['map']((_0x46893a,_0x41f355)=>{const _0x5e7f98='init'==_0x51bcb3[_0x41f355]['type'];if('InsertOperation'==_0x46893a['__className']){const _0x43d373=_0x46893a['position']['root'];!this['_document']['getRoot'](_0x43d373)&&(this['_document']['createRoot']('$root',_0x43d373)['_isAttached']=!0x1);}const _0x39c333=_0x44417e['fromJSON'](_0x46893a,this['_document']);return _0x39c333['wasUndone']=_0x46893a['wasUndone'],_0x39c333['_isInit']=_0x5e7f98,_0x39c333['_authorId']=_0x5e7f98?null:_0x51bcb3[_0x41f355]['userId'],_0x39c333['_isDisconnection']='cs:removeUser'===_0x51bcb3[_0x41f355]['type'],_0x39c333['createdAt']=_0x51bcb3[_0x41f355]['createdAt'],_0x39c333;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x14c80a=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x14c80a&&_0x14c80a['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x22f9fb,_0xc8390c){for(const _0x3878af of _0x22f9fb)_0x3878af['baseVersion']=_0xc8390c++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x4f71b5){this['_ignoredOperations']=_0x4f71b5,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x37ca51){let _0x3405e0=_0x37ca51['length'];for(;_0x3405e0--;){const _0x4c14a4=_0x37ca51[_0x3405e0];if(!this['_ignoredOperations']['has'](_0x4c14a4)){if(!this['_operationToId']['has'](_0x4c14a4)){const _0x41e90b=_0x2f36df()['slice'](0x1,0x12);this['_operationToId']['set'](_0x4c14a4,_0x41e90b);}return this['_operationToId']['get'](_0x4c14a4);}}}['setIdForTheLastOperation'](_0x34818f,_0x13b2d4){if(!_0x13b2d4)return;let _0xfaa36f=_0x34818f['length'];for(;_0xfaa36f--;){const _0x2b9d58=_0x34818f[_0xfaa36f];this['_ignoredOperations']['has'](_0x2b9d58)||this['_operationToId']['set'](_0x2b9d58,_0x13b2d4);}}}class RealTimeCollaborativeEditing extends _0x25acfb{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x1b9cff{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
+ ((()=>_0x476c1f)());['_services'];static get['requires'](){return[WebSocketGateway,_0x33588d,Sessions,_0x3e9224];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x31d85e){super(_0x31d85e),this['_services']=new Map();}async['init'](){const _0x9ff1f4=this['context'],_0x2427c6=_0x9ff1f4['plugins']['get'](_0x33588d);if(_0x9ff1f4['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x2427c6['adapter']={'addCommentThread':async({channelId:_0x3169cb,threadId:_0x280f7d,comments:_0x3dbd8b,resolvedAt:_0x169fb3,resolvedBy:_0x3724bd,context:_0x243f65,attributes:_0xe06c9f})=>{const _0x9f744=await this['_getService'](_0x3169cb)['addCommentThread']({'commentThreadId':_0x280f7d,'comments':_0x3dbd8b['map'](_0x1c3e01=>function(_0x24faa9,_0x1d6894,_0x533bec){return{'commentThreadId':_0x533bec,'commentId':_0x24faa9['commentId'],'userId':_0x24faa9['authorId'],'content':_0x24faa9['content'],'documentId':_0x1d6894,'createdAt':_0x24faa9['createdAt'],'attributes':_0x24faa9['attributes']||{}};}(_0x1c3e01,_0x3169cb,_0x280f7d)),'resolvedAt':_0x169fb3,'resolvedBy':_0x3724bd,'context':_0x243f65,'attributes':_0xe06c9f})['catch'](Z);return{'threadId':_0x9f744['commentThreadId'],'comments':_0x9f744['comments']};},'getCommentThread':async({channelId:_0x5df763,threadId:_0x3ea4f5})=>{const _0xa1316e=await this['_getService'](_0x5df763)['getCommentThread'](_0x3ea4f5)['catch'](X)['catch'](Z);return _0xa1316e?_0xa1316e['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0xa1316e]),{'threadId':_0xa1316e['commentThreadId'],'comments':_0xa1316e['comments']['map'](tt),'context':_0xa1316e['context'],'resolvedAt':_0xa1316e['resolvedAt'],'resolvedBy':_0xa1316e['resolvedBy'],'attributes':_0xa1316e['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x54c7d9,threadId:_0x521538,context:_0x894c19,unlinkedAt:_0x51447b,attributes:_0x53035b})=>this['_getService'](_0x54c7d9)['updateCommentThread']({'commentThreadId':_0x521538,'context':_0x894c19,'attributes':_0x53035b,'unlinkedAt':_0x51447b})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x341d79,threadId:_0x54cfa4})=>{const _0xa13a0e=await this['_getService'](_0x341d79)['resolveCommentThread'](_0x54cfa4)['catch'](X)['catch'](Z);return{'threadId':_0xa13a0e['commentThreadId'],'resolvedAt':_0xa13a0e['resolvedAt'],'resolvedBy':_0xa13a0e['resolvedBy']};},'reopenCommentThread':async({channelId:_0x5d7c97,threadId:_0x3936fb})=>this['_getService'](_0x5d7c97)['reopenCommentThread'](_0x3936fb)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x18fc10,threadId:_0x491325})=>this['_getService'](_0x18fc10)['removeCommentThread'](_0x491325)['catch'](X)['catch'](Z),'addComment':({channelId:_0x3c5ad0,threadId:_0x44237e,commentId:_0x413bdd,content:_0x222c31,attributes:_0x5a5614})=>this['_getService'](_0x3c5ad0)['addComment'](_0x44237e,_0x413bdd,_0x222c31,_0x5a5614)['catch'](Z),'updateComment':({channelId:_0xc9077f,threadId:_0x3ce6e7,commentId:_0x2e7e06,content:_0x41d9fc,attributes:_0x1510d7})=>this['_getService'](_0xc9077f)['updateComment'](_0x3ce6e7,_0x2e7e06,_0x41d9fc,_0x1510d7)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x118f7b,threadId:_0x5926e0,commentId:_0x11103d})=>this['_getService'](_0x118f7b)['removeComment'](_0x5926e0,_0x11103d)['catch'](X)['catch'](Z)},_0x9ff1f4 instanceof _0x35a8e1){const _0x11c02d=_0x9ff1f4['config']['get']('collaboration.channelId'),_0x11c64c=_0x9ff1f4['plugins']['get'](Sessions);await this['_setUpService'](_0x11c02d);const _0x1f60c9=await this['_services']['get'](_0x11c02d)['getConnectedSessions']();this['listenTo'](_0x11c64c,'sessionAdd:'+_0x11c02d,(_0x28e380,{session:_0x44df57})=>{_0x44df57['id']===_0x11c64c['mySessionId']&&(_0x28e380['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x44df57['permissions'],_0x11c02d));}),_0x11c64c['register'](_0x11c02d,_0x1f60c9);}}async['_setUpService'](_0x5af1a4){if(this['_services']['has'](_0x5af1a4))throw new _0x146074('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x5af1a4});const _0x141914=this['context']['plugins']['get'](_0x33588d),_0x2db820=new CloudServicesCommentsAdapter['CommentsService'](_0x5af1a4);this['_services']['set'](_0x5af1a4,_0x2db820),this['listenTo'](_0x2db820,'commentThreadAdded',(_0x434c00,_0x6d217c)=>{const {commentThreadId:_0x363ece,documentId:_0x21768c,context:_0x1d37ba,attributes:_0x2d47df,resolvedAt:_0x4e2b42,resolvedBy:_0x29f844,comments:_0x5645b0}=_0x6d217c;_0x141914['getCommentThread'](_0x363ece)||_0x141914['addCommentThread']({'threadId':_0x363ece,'channelId':_0x21768c,'comments':_0x5645b0?_0x5645b0['map'](tt):[],'context':_0x1d37ba,'attributes':_0x2d47df,'resolvedAt':_0x4e2b42,'resolvedBy':_0x29f844,'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadUpdated',(_0x1660e9,{commentThreadId:_0x333ba7,documentId:_0x4f2f8f,context:_0x185d42,unlinkedAt:_0x325769,attributes:_0x149abf})=>{_0x141914['getCommentThread'](_0x333ba7)&&_0x141914['updateCommentThread']({'threadId':_0x333ba7,'channelId':_0x4f2f8f,'context':_0x185d42,'unlinkedAt':_0x325769,'attributes':_0x149abf,'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadResolved',(_0x4e7b2d,{commentThreadId:_0x5ae350,resolvedBy:_0x138c16,resolvedAt:_0xd89d39})=>{const _0x3d934d=_0x141914['getCommentThread'](_0x5ae350);_0x3d934d&&_0x3d934d['resolve']({'resolvedBy':_0x138c16,'resolvedAt':_0xd89d39,'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadReopened',(_0x305b0e,{commentThreadId:_0x432c45})=>{const _0x2abe71=_0x141914['getCommentThread'](_0x432c45);_0x2abe71&&_0x2abe71['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadRemoved',(_0x38de18,{commentThreadId:_0x15a6a4})=>{const _0x39080d=_0x141914['getCommentThread'](_0x15a6a4);_0x39080d&&_0x39080d['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentAdded',(_0x38b61b,_0x1a6fa9)=>{const _0x2bf146=_0x1a6fa9['commentThreadId'],_0x33fb6b=_0x141914['getCommentThread'](_0x2bf146);_0x33fb6b&&_0x33fb6b['addComment']({...tt(_0x1a6fa9),'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentUpdated',(_0x847696,{commentThreadId:_0xee0d9f,commentId:_0x309b75,content:_0x4693c2,attributes:_0x132cf9})=>{const _0x38133e=_0x141914['getCommentThread'](_0xee0d9f);if(_0x38133e){const _0x4a322a=_0x38133e['getComment'](_0x309b75);_0x4a322a&&_0x4a322a['update']({'content':_0x4693c2,'attributes':_0x132cf9,'isFromAdapter':!0x0});}}),this['listenTo'](_0x2db820,'commentRemoved',(_0x1cb75f,{commentThreadId:_0x1cda52,commentId:_0x516aa5})=>{const _0x25e19e=_0x141914['getCommentThread'](_0x1cda52);if(_0x25e19e){const _0x5796df=_0x25e19e['getComment'](_0x516aa5);_0x5796df&&_0x5796df['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x5af1a4);}['destroy'](){if(this['context']instanceof _0x35a8e1){const _0x385029=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x385029);}}['_terminateService'](_0x4300d5){if(!this['_services']['has'](_0x4300d5))throw new _0x146074('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x4300d5});this['_getService'](_0x4300d5)['disconnect'](),this['_services']['delete'](_0x4300d5);}async['reconnect'](){for(const _0x2ab768 of this['_services']['keys']())await this['_connectService'](_0x2ab768);if(this['context']instanceof _0x35a8e1){const _0x489702=this['context']['config']['get']('collaboration.channelId'),_0xe2fca5=this['context']['plugins']['get'](Sessions);_0xe2fca5['unregister'](_0x489702);const _0x102518=await this['_services']['get'](_0x489702)['getConnectedSessions']();_0xe2fca5['register'](_0x489702,_0x102518);}}async['_connectService'](_0x1bb390){const {connection:_0x44b86d}=this['context']['plugins']['get'](WebSocketGateway),_0x20bd46=this['context']['plugins']['get'](_0x33588d),_0x377445=this['_services']['get'](_0x1bb390),_0x3da09d=await _0x377445['connect'](_0x44b86d);await this['_fetchMissingUsersForThreads'](_0x3da09d);const _0x597c3c=new Set(Array['from'](_0x20bd46['getCommentThreads']({'channelId':_0x1bb390}),_0x15f5f3=>_0x15f5f3['id']));for(const _0x251218 of _0x3da09d)_0x251218['deletedAt']||_0x597c3c['delete'](_0x251218['commentThreadId']);for(const _0x268898 of _0x597c3c)_0x20bd46['getCommentThread'](_0x268898)['remove']({'isFromAdapter':!0x0});for(const _0x5caf6a of _0x3da09d){let _0xd282cd=_0x20bd46['getCommentThread'](_0x5caf6a['commentThreadId']);const {commentThreadId:_0x48eebc,context:_0x1f01ce,attributes:_0x2eadf,resolvedBy:_0x427df7,resolvedAt:_0x3e77b,unlinkedAt:_0x2c62cc,deletedAt:_0x58ec63}=_0x5caf6a;if(_0x58ec63)continue;_0xd282cd||(_0xd282cd=_0x20bd46['addCommentThread']({'channelId':_0x1bb390,'threadId':_0x48eebc,'context':_0x1f01ce,'attributes':_0x2eadf||{},'resolvedBy':_0x427df7,'resolvedAt':_0x3e77b,'unlinkedAt':_0x2c62cc,'isFromAdapter':!0x0}));const _0x56e81d=new Set(Array['from'](_0xd282cd['comments'],_0x323703=>_0x323703['id']));for(const _0x6b030a of _0x5caf6a['comments'])_0x56e81d['delete'](_0x6b030a['commentId']);for(const _0x5ec673 of _0x56e81d)_0xd282cd['getComment'](_0x5ec673)['remove']({'isFromAdapter':!0x0});for(const _0x1eb0d7 of _0x5caf6a['comments']){const _0x4b5fa4=_0xd282cd['getComment'](_0x1eb0d7['commentId']);_0x4b5fa4?_0x4b5fa4['content']!==_0x1eb0d7['content']&&_0x4b5fa4['update']({'content':_0x1eb0d7['content'],'isFromAdapter':!0x0}):_0xd282cd['addComment'](Object['assign'](tt(_0x1eb0d7),{'isFromAdapter':!0x0}));}}}['_getService'](_0x52d549){if(!this['_services']['has'](_0x52d549))throw new _0x146074('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x52d549});return this['_services']['get'](_0x52d549);}async['_fetchMissingUsersForThreads'](_0xec45d4){const _0x48804c=this['context']['plugins']['get'](_0x3e9224),{connection:_0x272d74}=this['context']['plugins']['get'](WebSocketGateway),_0xa71af0=new Set();for(const {resolvedBy:_0x2c415a,comments:_0x322f0a}of _0xec45d4){_0x2c415a&&!_0x48804c['getUser'](_0x2c415a)&&_0xa71af0['add'](_0x2c415a);for(const {userId:_0x452302}of _0x322f0a)_0x48804c['getUser'](_0x452302)||_0xa71af0['add'](_0x452302);}if(0x0===_0xa71af0['size'])return;const _0xcb73c1=await _0x3383d3['getMany'](_0x272d74,Array['from'](_0xa71af0));for(const _0x81d4cf of _0xcb73c1)_0x48804c['getUser'](_0x81d4cf['id'])||_0x48804c['addUser'](_0x81d4cf);}}async function X(_0x273a20){if('404'!==_0x273a20['code'])throw _0x273a20;}function Z(_0x5e43cf){if((_0x4046b0=_0x5e43cf)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x4046b0['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x4046b0['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x4046b0;throw _0x5e43cf;}function tt(_0x2ebdd8){return{'threadId':_0x2ebdd8['commentThreadId'],'commentId':_0x2ebdd8['commentId'],'content':_0x2ebdd8['content'],'createdAt':_0x2ebdd8['createdAt'],'authorId':_0x2ebdd8['userId'],'attributes':_0x2ebdd8['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x25acfb{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
+ ((()=>_0x277557)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x27f4c9,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x403ba2){super(_0x403ba2);const _0x11415b=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x11415b);}['init'](){const _0xcc1a82=this['editor']['plugins']['get'](WebSocketGateway),_0x3a48da=this['editor']['plugins']['get'](_0x27f4c9);return _0x3a48da['adapter']={'getSuggestion':async _0x444d17=>{await this['_waitForServiceReady']();const _0x1699eb=await this['_trackChangesService']['get'](_0x444d17)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x1699eb]),_0x1699eb;},'addSuggestion':async({id:_0x71a1b7,type:_0x2e34ed,data:_0x21f981,originalSuggestionId:_0x4b4edc,attributes:_0x4e8267})=>{await this['_waitForServiceReady']();const _0x212fc5={'id':_0x71a1b7,'type':_0x2e34ed,'data':_0x21f981,'originalSuggestionId':_0x4b4edc,'attributes':_0x4e8267},_0x59c5b0=await this['_trackChangesService']['add'](_0x71a1b7,_0x2e34ed,_0x21f981,_0x4b4edc,_0x4e8267)['catch'](_0xd089ed=>{if(st(_0xd089ed))return new Promise(_0x289ae8=>{this['_bufferedRequests']['set'](_0x71a1b7,{'resolve':_0x289ae8,'suggestionData':_0x212fc5});});throw _0xd089ed;});return this['_bufferedRequests']['delete'](_0x71a1b7),_0x59c5b0;},'updateSuggestion':async(_0x5aeb10,_0x1d99db)=>{if(await this['_waitForServiceReady'](),'open'!==_0x1d99db['state'])return this['_trackChangesService']['update'](_0x5aeb10,_0x1d99db)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x48fd47,_0x4efdb4)=>{_0x3a48da['hasSuggestion'](_0x4efdb4['id'])&&(_0x3a48da['getSuggestion'](_0x4efdb4['id'])['attributes']=_0x4efdb4['attributes']);}),this['_trackChangesService']['connect'](_0xcc1a82['connection'])['then'](_0xbb1895=>(_0xcc1a82['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0xbb1895)['then'](()=>{for(const _0xdb19d9 of _0xbb1895){_0x3a48da['addSuggestionData'](_0xdb19d9)['_saved']=!0x0;}})));}async['reconnect'](){const _0x4eddf2=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x56b777}=this['editor']['plugins']['get'](WebSocketGateway),_0x177a7b=await this['_trackChangesService']['connect'](_0x56b777);await this['_fetchMissingUsersForThreads'](_0x177a7b);for(const {suggestionData:_0x2f04cb,resolve:_0x486a7e}of this['_bufferedRequests']['values']()){let _0x3fb2af=_0x177a7b['find'](_0x49d869=>_0x49d869['id']===_0x2f04cb['id']);_0x3fb2af||(_0x3fb2af=await this['_trackChangesService']['add'](_0x2f04cb['id'],_0x2f04cb['type'],_0x2f04cb['data'],_0x2f04cb['originalSuggestionId'])),_0x486a7e(_0x3fb2af);}for(const _0x36a303 of _0x177a7b)_0x4eddf2['hasSuggestion'](_0x36a303['id'])||_0x4eddf2['addSuggestionData'](_0x36a303);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x4caca2=>{this['listenTo'](this['_trackChangesService'],'connected',_0xca156c=>{_0xca156c['off'](),_0x4caca2();});});}async['_fetchMissingUsersForThreads'](_0xf390b4){const _0x2b36cb=this['editor']['plugins']['get'](_0x3e9224),{connection:_0x16b52e}=this['editor']['plugins']['get'](WebSocketGateway),_0x503397=new Set();for(const {authorId:_0x2af91d}of _0xf390b4)_0x2b36cb['getUser'](_0x2af91d)||_0x503397['add'](_0x2af91d);if(0x0===_0x503397['size'])return;const _0x4238f7=await _0x3383d3['getMany'](_0x16b52e,Array['from'](_0x503397));for(const _0xb32749 of _0x4238f7)_0x2b36cb['getUser'](_0xb32749['id'])||_0x2b36cb['addUser'](_0xb32749);}}function et(_0x3ce9a4){if(st(_0x3ce9a4))return new Promise(()=>{});throw _0x3ce9a4;}function st(_0x521f30){return _0x521f30['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x521f30['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x25acfb{static get['requires'](){return[_0x257b99,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x564d0e=this['editor']['plugins']['get'](WebSocketGateway),_0x18d50e=this['editor']['plugins']['get'](_0x58c2be),_0x36c486=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x564d0e,'change:state',(_0xeeb3,_0xd99d51,_0xd61b29)=>{_0x18d50e['isThreadsLoadingPaused']='connected'!==_0xd61b29;});}),this['listenTo'](_0x564d0e,'change:state',(_0x57603f,_0x2a9741,_0x5ec1f1)=>{this['editor']['plugins']['get'](_0x33588d)['switchReadOnly']('connected'!==_0x5ec1f1);}),_0x36c486['_setUpService'](this['editor']['config']['get']('collaboration.channelId'));}['destroy'](){this['editor']['plugins']['get'](CloudServicesCommentsAdapter)['_terminateService'](this['editor']['config']['get']('collaboration.channelId')),super['destroy']();}}class RealTimeCollaborativeTrackChanges extends _0x25acfb{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x22209a];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x25acfb{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
+ ((()=>_0x524689)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x547c0a,Sessions,_0x3e9224];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1498c2){super(_0x1498c2);const _0x2c40da=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x2c40da);}async['init'](){const _0x4e52f7=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x8e884b=_0x4e52f7['serverHistory'],_0x44523a=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x8e884b,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x4e52f7['sessionId']});const _0x3e2104=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x429b78,_0x48de88=await _0x548b3a['isBundleUploaded'](_0x44523a['connection'],_0x3e2104);this['editor']['plugins']['get'](_0x547c0a)['adapter']={'getRevision':async({revisionId:_0x189205})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x189205)),'updateRevisions':async _0x3f150b=>{await this['_waitForServiceReady']();const _0x21d2c8=this['_revisionTracker']['currentRevision'];if(_0x48de88&&0x1===_0x3f150b['length']&&_0x3f150b[0x0]['id']===_0x21d2c8['id'])return _0x3f150b;for(const _0x3e1cc7 of _0x3f150b)_0x3e1cc7['id']===_0x21d2c8['id']&&(_0x3e1cc7['isEmptyCurrent']=_0x3e1cc7['fromVersion']===_0x3e1cc7['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x3f150b,this['_lastRequestId'])['then'](_0x501b48=>(this['_lastRequestId']=_0x501b48,_0x3f150b))['catch'](_0x25ec79=>{if(it(_0x25ec79)||'400'===_0x25ec79['code']&&void 0x0!==_0x25ec79['data']['wrongRequestId']){for(const _0x5b3e96 of _0x3f150b){!this['_revisionTracker']['repository']['getRevision'](_0x5b3e96['id'])||this['_revisionTracker']['_bufferUpdate'](_0x5b3e96['id'],_0x5b3e96,!0x1);}if(it(_0x25ec79)&&'destroyed'!==this['editor']['state'])throw _0x25ec79;return _0x3f150b;}throw _0x25ec79;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x5280b1,{revisionsData:_0xc36ee9,requestId:_0x21e5ba})=>{Math['max'](..._0xc36ee9['map'](_0x2041bb=>_0x2041bb['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0xc36ee9,_0x21e5ba);}):this['_handleRevisionsUpdate'](_0xc36ee9,_0x21e5ba);});const {revisions:_0x3279dd,requestId:_0x4bff77}=await this['_revisionHistoryService']['connect'](_0x44523a['connection']);_0x44523a['addToReconnectionStack'](this),this['_lastRequestId']=_0x4bff77,await this['_fetchMissingUsers'](_0x3279dd);for(const _0x5944ce of _0x3279dd)this['_revisionTracker']['addRevisionData'](_0x5944ce);this['listenTo'](_0x4e52f7,'change:_isConnected',(_0x225a8f,_0x508899,_0x49afe6)=>{_0x49afe6&&(this['_oldOffset']=_0x4e52f7['_offset'],_0x225a8f['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x44523a,'state',_0x33a983=>_0x33a983===_0x4e17ce['CONNECTED']);}async['reconnect'](){const _0x175028=this['editor']['plugins']['get'](WebSocketGateway),_0x3c5ed1=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0xe99d09=async()=>{const _0xac0ef8=this['_revisionTracker']['currentRevision'],_0x544cde=_0xac0ef8['id'],_0x12c9f7=_0x544cde!==_0x3c5ed1['sessionId'];if(_0x12c9f7){const _0x4f989f=_0x3c5ed1['_offset']-this['_oldOffset'],_0xf04d77=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0xac0ef8['toVersion']+_0x4f989f!==_0xf04d77){const _0x4f1a1b=_0xac0ef8['fromVersion']+_0x4f989f,_0x55236c=this['editor']['plugins']['get'](_0x3e9224),_0x2883e6=this['_revisionTracker']['buildRevisionData']({'revision':_0xac0ef8,'from':_0x4f1a1b,'to':_0xf04d77});_0x2883e6['id']=_0xac0ef8['id'];const _0x2f8f42=_0x2883e6['authorsIds']['map'](_0x1a657a=>_0x55236c['getUser'](_0x1a657a));_0xac0ef8['_update']({..._0x2883e6,'authors':_0x2f8f42},!0x0),this['_revisionTracker']['_bufferUpdate'](_0xac0ef8['id'],_0x2883e6,!0x0);}this['_revisionTracker']['_startingVersion']=_0xf04d77,(_0xac0ef8['toVersion']===_0xac0ef8['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x544cde)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x544cde),this['_revisionTracker']['_createCurrentRevision'](_0xf04d77));}const {revisions:_0x2c894e,requestId:_0x30b08c}=await this['_revisionHistoryService']['reconnect'](_0x175028['connection'],this['_lastRequestId']);_0x12c9f7&&_0x2c894e['length']>0x0?_0x3c5ed1['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x2c894e),this['_handleRevisionsUpdate'](_0x2c894e,_0x30b08c),this['_revisionTracker']['sendBufferedUpdates']());};return _0x3c5ed1['_isConnected']?_0xe99d09():new Promise((_0x2c20d3,_0x303db4)=>{_0x3c5ed1['once']('change:_isConnected',()=>{_0xe99d09()['then'](_0x2c20d3)['catch'](_0x303db4);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x25f591=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x33ea32=>{_0x33ea32['off'](),_0x25f591();});});}['_getLatestVersionFromServerOperations'](){const _0xd15da2=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x5b74ac of _0xd15da2)if('marker'!==_0x5b74ac['type']||_0x5b74ac['affectsData'])return _0x5b74ac['baseVersion']+0x1;}['_getLatestVersion'](){const _0x2e788c=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x2d3d66=>{_0x2e788c['_isPendingUpdate']?_0x2e788c['once']('change:_isPendingUpdate',()=>{_0x2d3d66(this['_getLatestVersionFromServerOperations']());}):_0x2d3d66(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x1d4705,_0x54a052){const _0x286f8c=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x54a052;for(const _0x837444 of _0x1d4705){const _0x1ff06b=_0x286f8c['getRevision'](_0x837444['id']);if(_0x1ff06b){if((_0x837444['fromVersion']||_0x837444['toVersion'])&&(_0x837444['diffData']=null),_0x1ff06b===this['_revisionTracker']['currentRevision']){const _0x4e681c=Math['max'](_0x1ff06b['toVersion'],_0x837444['toVersion']),_0x36d31a=Math['max'](_0x1ff06b['fromVersion'],_0x837444['fromVersion']);let _0x392f40;_0x1ff06b['toVersion']===_0x837444['toVersion']&&_0x1ff06b['fromVersion']===_0x837444['fromVersion']?(_0x392f40=!0x0,this['_preventResendingRevisionData'](_0x837444)):_0x837444['toVersion']===_0x4e681c&&_0x837444['fromVersion']===_0x36d31a?_0x392f40=!0x1:(_0x1ff06b['toVersion']===_0x4e681c&&_0x1ff06b['fromVersion']===_0x36d31a||this['_fixRevision']({'revision':_0x1ff06b,'from':_0x36d31a,'to':_0x4e681c}),_0x392f40=!0x0),_0x392f40&&(delete _0x837444['fromVersion'],delete _0x837444['toVersion'],delete _0x837444['diffData'],delete _0x837444['createdAt'],delete _0x837444['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x837444),this['_preventResendingRevisionData'](_0x837444);}else this['_revisionTracker']['addRevisionData'](_0x837444);}const _0x1163a3=_0x286f8c['getRevisions']();_0x1163a3['reverse']();for(let _0x3199fd=0x0;_0x3199fd<_0x1163a3['length']-0x1;_0x3199fd++){const _0x403980=_0x1163a3[_0x3199fd],_0x1aa939=_0x1163a3[_0x3199fd+0x1];if(_0x403980['fromVersion']<_0x1aa939['toVersion']){const _0x2f6869=_0x1aa939['toVersion'],_0x501647=Math['max'](_0x2f6869,_0x403980['toVersion']);this['_fixRevision']({'revision':_0x403980,'from':_0x2f6869,'to':_0x501647});}}}['_fixRevision']({revision:_0x88df30,from:_0x59702a,to:_0x198ade}={}){const _0x3e324f=this['editor']['plugins']['get'](_0x3e9224),_0x12875c=this['_revisionTracker']['buildRevisionData']({'revision':_0x88df30,'from':_0x59702a,'to':_0x198ade});_0x12875c['authors']=_0x12875c['authorsIds']['map'](_0x5b1703=>_0x3e324f['getUser'](_0x5b1703)),_0x88df30['_update'](_0x12875c);}['_preventResendingRevisionData'](_0x46ee17){const _0x1c17d7={};_0x1c17d7['id']=_0x46ee17['id'];for(const _0x2aa9a3 of Object['keys'](_0x46ee17))'id'!==_0x2aa9a3&&(_0x1c17d7[_0x2aa9a3]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x1c17d7['id'],_0x1c17d7,!0x0);}async['_fetchMissingUsers'](_0x3ce50e){const _0x309b4a=this['editor']['plugins']['get'](_0x3e9224),{connection:_0x582a51}=this['editor']['plugins']['get'](WebSocketGateway),_0x525985=new Set();for(const _0x5d615e of _0x3ce50e){for(const _0x56ee97 of _0x5d615e['authorsIds'])_0x205b7f(_0x56ee97);_0x5d615e['creatorId']&&_0x205b7f(_0x5d615e['creatorId']);}if(0x0===_0x525985['size'])return;const _0x11f621=await _0x3383d3['getMany'](_0x582a51,Array['from'](_0x525985));for(const _0x2f2577 of _0x11f621)_0x309b4a['getUser'](_0x2f2577['id'])||_0x309b4a['addUser'](_0x2f2577);function _0x205b7f(_0x244151){_0x309b4a['getUser'](_0x244151)||_0x525985['add'](_0x244151);}}}function it(_0x4a2517){return _0x4a2517['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x4a2517['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x4a2517['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x25acfb{static get['requires'](){return[_0x547c0a,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x1aa21a{['_collapseAt'];constructor(_0x54e7c6,_0x5adb69=0x6){super(_0x54e7c6);const _0x35047e=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x5adb69,this['bind']('isHidden')['to'](this,'usersCount',_0x223333=>_0x223333<_0x5adb69),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x35047e['if']('isHidden','ck-presence-list__counter--hidden')],'role':'listitem'},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter']},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter__text']},'children':[{'text':_0x35047e['to']('usersCount',_0x47f631=>'+'+(_0x47f631-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x1aa21a{['items'];['keystrokes'];constructor(_0x203923){super(_0x203923);const _0x5493d8=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x39c4bd(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x5493d8['if']('hasPopup'),'aria-expanded':_0x5493d8['to']('isExpanded',_0x1fa5f2=>this['hasPopup']&&String(_0x1fa5f2)),'aria-label':_0x5493d8['to']('hasPopup',_0x1e018b=>K(_0x203923,_0x1e018b?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x5493d8['to']('hasPopup',_0xbcab11=>!!_0xbcab11&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x5493d8['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x5493d8['to'](_0x3283f0=>{const _0xbc2010=_0x3283f0,_0x36baec=document['querySelector']('.ck-presence-list__dropdown-list'),_0x324c36=document['querySelector']('.ck-balloon-panel_with-arrow');_0x36baec?.['contains'](_0xbc2010['relatedTarget'])||_0x324c36?.['contains'](_0xbc2010['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x1d7b57,_0x48c9c4,_0x56b0a6)=>{this['element']&&(_0x56b0a6?this['element']['setAttribute']('aria-expanded',String(this['isExpanded'])):this['element']['removeAttribute']('aria-expanded'));});}['focus'](){this['element']['focus']();}['render'](){super['render'](),this['keystrokes']['listenTo'](this['element']);}}class PresenceListView extends _0x1aa21a{['counterView'];['inlineListView'];constructor(_0x119a10,_0x357c94=0x6){super(_0x119a10);const _0x580eeb=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x357c94),this['inlineListView']=new PresenceInlineListView(_0x119a10),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x58e0a4 of this['inlineListView']['items'])_0x58e0a4['tooltipPosition']='s';this['inlineListView']['items']['first']&&(this['inlineListView']['items']['first']['tooltipPosition']='se');}),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list','ck-reset','ck-rounded-corners',_0x580eeb['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x1aa21a{['listWrapperView'];constructor(_0x1b1c54,_0x1cf9c7){super(_0x1b1c54);const _0x40e0b1=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x1b1c54,_0x1cf9c7),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x1b1c54,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x40e0b1['to'](_0x1fed7a=>{const _0xb1c164=_0x1fed7a,_0x1d9a3b=document['querySelector']('.ck-presence-list__list'),_0x242d2d=document['querySelector']('.ck-balloon-panel_with-arrow');_0x1d9a3b?.['contains'](_0xb1c164['relatedTarget'])||_0x242d2d?.['contains'](_0xb1c164['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x6e06a0{constructor(_0x4d6930,_0x7c573b){super(_0x4d6930);const _0xb84e7c=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x7c573b?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0xb84e7c['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0xb84e7c['to']('role'),'aria-label':_0xb84e7c['to']('ariaLabel'),'aria-labelledby':_0xb84e7c['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x248dd9['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x463a63=this['element'];_0x463a63&&(this['_isScrollable']=Math['max'](_0x463a63['scrollHeight'],_0x463a63['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x9a4d5e{['userView'];constructor(_0x186ed2,_0xa4b587,_0x33bb40){super(_0x186ed2);const _0x4b1359=this['bindTemplate'];this['userView']=new _0xb6d3d9(_0x186ed2,_0xa4b587);const _0x2930d8={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0xa4b587['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0xa4b587['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0xa4b587['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0xa4b587['color']['getColorVariable'](),'--ck-user-color-alpha':_0xa4b587['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x33bb40&&(_0x2930d8['tag']='button',_0x2930d8['on']={'click':_0x4b1359['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x2930d8);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x1aa21a{['userView'];['markerView'];constructor(_0x33c214,_0x147fdc,_0x2b391b){super(_0x33c214);const _0xd9eba5=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0xb6d3d9(_0x33c214,_0x147fdc),this['markerView']=new MarkerView(_0x33c214,_0x147fdc);const _0x44b6a1=new _0x52e315(_0x33c214);_0x44b6a1['template']['tag']='span',_0x44b6a1['text']=_0x147fdc['name'];const _0x1fa50a={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0xd9eba5['to']('isFocusable',_0x174e18=>!!_0x174e18&&0x0),'aria-labelledby':_0x44b6a1['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0xd9eba5['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0xd9eba5['to']('hasTooltip',_0x3a7fe7=>!_0x3a7fe7),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x44b6a1]};_0x2b391b&&(_0x1fa50a['tag']='button',_0x1fa50a['on']={'click':_0xd9eba5['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1fa50a);}}class MarkerView extends _0x1aa21a{constructor(_0x2e6d8a,_0x3c4aaa){super(_0x2e6d8a),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x3c4aaa['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x3c4aaa['color']['getColorVariable'](),'--ck-user-color-alpha':_0x3c4aaa['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x1b9cff{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3ea392){super(_0x3ea392),this['context']['config']['define']('presenceList',nt);const _0x54485f=_0x3ea392['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x54485f)throw new _0x146074('presencelist-collapseat-invalid-format',this);if(_0x54485f<0x1)throw new _0x146074('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x340917(),this['balloonPanelView']=new _0x30020e(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x4480b4 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x4480b4);this['listenTo'](this['_allConnectedUsers'],'add',(_0x24b0c8,_0x22457c)=>{this['_handleUserAdd'](_0x22457c);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x5d1eb8,_0x327861)=>{this['_handleUserRemove'](_0x327861);});}['_createView'](){const _0x3e0482=this['context'],_0x4fed84=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x35bfd3=this['balloonPanelView'];if(!_0xecfd2a(_0x3e0482['config']['get']('presenceList.container')))throw new _0x146074('presencelist-missing-container',this);return _0x4fed84['counterView']['bind']('usersCount')['to'](this),_0x4fed84['bind']('isCollapsed')['to'](this,'usersCount',_0x461710=>{const {collapseAt:_0x28785e}=_0x3e0482['config']['get']('presenceList'),_0x463b7e=_0x461710>=_0x28785e;if(_0x463b7e&&!_0x4fed84['inlineListView']['items']['find'](_0x7df740=>_0x7df740 instanceof PresenceCounterView)){const _0x3b0e79=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x3b0e79&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x4fed84['inlineListView']['items']['add'](_0x4fed84['counterView']);}return _0x463b7e||this['hideDropdown'](),_0x463b7e;}),_0x4fed84['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x32c292=>{const _0x48d4ca=_0x3e0482['config']['get']('presenceList'),_0x4e8120=new PresenceInlineListItemView(_0x3e0482['locale'],_0x32c292,!!_0x48d4ca['onClick']);return _0x4e8120['bind']('hasTooltip')['to'](_0x4fed84,'isCollapsed',_0x5037a0=>!_0x5037a0),_0x4e8120['bind']('isFocusable')['to'](_0x4fed84,'isCollapsed',_0x1d2afa=>!_0x1d2afa),_0x48d4ca['onClick']&&this['listenTo'](_0x4e8120,'execute',()=>{this['view']['isCollapsed']||_0x48d4ca['onClick'](_0x32c292,_0x4e8120['element']);}),_0x4e8120;}),this['listenTo'](_0x4fed84['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x4fed84['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x4fed84['inlineListView']['keystrokes']['set']('Enter',(_0x37bfaa,_0x5f2b91)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x5f2b91());}),_0x4fed84['render'](),_0x35bfd3['render'](),_0x1b7bff({'emitter':_0x4fed84,'activator':()=>_0x35bfd3['isVisible'],'contextElements':[_0x35bfd3['element'],_0x4fed84['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x3e0482['config']['get']('presenceList.container')['appendChild'](_0x4fed84['element']),this['_bodyCollection']=new _0x31aa2b(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x4fed84;}['_handleUserAdd'](_0x2dd407){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x2dd407['isMe'])return;const _0x1fe5ff=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x1fe5ff-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x3f0e28=_0x2dd407['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x2dd407,_0x3f0e28);}['_handleUserRemove'](_0xc4c792){this['usersCount']--;const {collapseAt:_0x32f19e}=this['context']['config']['get']('presenceList'),_0x49458a=this['usersCount']>=_0x32f19e;if(this['currentDisplayedUsers']['get'](_0xc4c792['id']))this['currentDisplayedUsers']['remove'](_0xc4c792['id']);else{if(_0x49458a&&this['currentDisplayedUsers']['length']+0x1===_0x32f19e-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x49458a?0x1:0x0)<this['usersCount']){for(const _0x5c97cf of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x5c97cf['id'])&&(this['currentDisplayedUsers']['add'](_0x5c97cf,Math['min'](this['currentDisplayedUsers']['length']-(_0x49458a?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x49458a?0x1:0x0)===_0x32f19e-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x28e09f=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x28e09f['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x5a310e}=this['presenceDropdownView'];_0x5a310e['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x143c5e=>{if(!_0x28e09f['displayMe']&&_0x143c5e['isMe'])return null;const _0xf4fb8a=new PresenceDropdownListItemView(this['context']['locale'],_0x143c5e,!!_0x28e09f['onClick']);return _0x28e09f['onClick']&&this['listenTo'](_0xf4fb8a,'execute',()=>{_0x28e09f['onClick'](_0x143c5e,_0xf4fb8a['element']);}),_0xf4fb8a;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x5a310e['focus'](),_0x5a310e['checkIfScrollable']();const _0x43d4fe=(_0x543648,_0x353d9d)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x353d9d();};_0x5a310e['keystrokes']['set']('Esc',_0x43d4fe),_0x5a310e['keystrokes']['set']('Shift+Tab',_0x43d4fe),_0x5a310e['keystrokes']['set']('Tab',(_0x1b8102,_0x1df1f6)=>{!function(_0x54c3ff){const _0x3d9e6e=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x365741=>_0x365741+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x28480a=[...document['body']['querySelectorAll'](_0x3d9e6e)]['filter'](_0x111d4a=>_0x111d4a===document['activeElement']||_0x111d4a['offsetWidth']+_0x111d4a['offsetHeight']>0x0)['sort']((_0x5b5010,_0x2a2fe8)=>(_0x5b5010['tabIndex']||0x0)-(_0x2a2fe8['tabIndex']||0x0)),_0x7130b=_0x28480a['indexOf'](_0x54c3ff),_0x38e5ee=_0x28480a[(_0x7130b+0x1)%_0x28480a['length']];_0x38e5ee&&_0x38e5ee['focus']();}(this['view']['element']),this['hideDropdown'](),_0x1df1f6();}),_0x5a310e['focusTracker']['add'](this['view']['element']),_0x5a310e['focusTracker']['on']('change:isFocused',(_0x20bd05,_0x25549a,_0x11e0f5)=>{_0x11e0f5||this['hideDropdown']();});}['hideDropdown'](){this['presenceDropdownView']&&(this['view']['inlineListView']['isExpanded']=!0x1,this['balloonPanelView']['unpin'](),this['balloonPanelView']['content']['remove'](this['presenceDropdownView']),this['presenceDropdownView']['destroy'](),this['presenceDropdownView']=void 0x0);}['destroy'](){super['destroy'](),this['view']&&this['view']['isRendered']&&this['view']['destroy'](),this['_bodyCollection']&&(this['_bodyCollection']['detachFromDom'](),this['_bodyCollection']['destroy'](),this['_bodyCollection']=null);}}class PresenceList extends _0x1b9cff{static get['requires'](){return[Sessions,PresenceListUI];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}export{CloudServicesCommentsAdapter,CloudServicesRevisionHistoryAdapter,CloudServicesTrackChangesAdapter,PresenceList,PresenceListUI,RealTimeCollaborationClient,RealTimeCollaborativeComments,RealTimeCollaborativeEditing,RealTimeCollaborativeRevisionHistory,RealTimeCollaborativeTrackChanges,Sessions,WebSocketGateway};