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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/index.js +6 -6
  2. package/dist/translations/af.js +1 -1
  3. package/dist/translations/af.umd.js +1 -1
  4. package/dist/translations/ar.js +1 -1
  5. package/dist/translations/ar.umd.js +1 -1
  6. package/dist/translations/ast.js +1 -1
  7. package/dist/translations/ast.umd.js +1 -1
  8. package/dist/translations/az.js +1 -1
  9. package/dist/translations/az.umd.js +1 -1
  10. package/dist/translations/be.js +1 -1
  11. package/dist/translations/be.umd.js +1 -1
  12. package/dist/translations/bg.js +1 -1
  13. package/dist/translations/bg.umd.js +1 -1
  14. package/dist/translations/bn.js +1 -1
  15. package/dist/translations/bn.umd.js +1 -1
  16. package/dist/translations/bs.js +1 -1
  17. package/dist/translations/bs.umd.js +1 -1
  18. package/dist/translations/ca.js +1 -1
  19. package/dist/translations/ca.umd.js +1 -1
  20. package/dist/translations/cs.js +1 -1
  21. package/dist/translations/cs.umd.js +1 -1
  22. package/dist/translations/da.js +1 -1
  23. package/dist/translations/da.umd.js +1 -1
  24. package/dist/translations/de-ch.js +1 -1
  25. package/dist/translations/de-ch.umd.js +1 -1
  26. package/dist/translations/de.js +1 -1
  27. package/dist/translations/de.umd.js +1 -1
  28. package/dist/translations/el.js +1 -1
  29. package/dist/translations/el.umd.js +1 -1
  30. package/dist/translations/en-au.js +1 -1
  31. package/dist/translations/en-au.umd.js +1 -1
  32. package/dist/translations/en-gb.js +1 -1
  33. package/dist/translations/en-gb.umd.js +1 -1
  34. package/dist/translations/en.js +1 -1
  35. package/dist/translations/en.umd.js +1 -1
  36. package/dist/translations/eo.js +1 -1
  37. package/dist/translations/eo.umd.js +1 -1
  38. package/dist/translations/es-co.js +1 -1
  39. package/dist/translations/es-co.umd.js +1 -1
  40. package/dist/translations/es.js +1 -1
  41. package/dist/translations/es.umd.js +1 -1
  42. package/dist/translations/et.js +1 -1
  43. package/dist/translations/et.umd.js +1 -1
  44. package/dist/translations/eu.js +1 -1
  45. package/dist/translations/eu.umd.js +1 -1
  46. package/dist/translations/fa.js +1 -1
  47. package/dist/translations/fa.umd.js +1 -1
  48. package/dist/translations/fi.js +1 -1
  49. package/dist/translations/fi.umd.js +1 -1
  50. package/dist/translations/fr.js +1 -1
  51. package/dist/translations/fr.umd.js +1 -1
  52. package/dist/translations/gl.js +1 -1
  53. package/dist/translations/gl.umd.js +1 -1
  54. package/dist/translations/gu.js +1 -1
  55. package/dist/translations/gu.umd.js +1 -1
  56. package/dist/translations/he.js +1 -1
  57. package/dist/translations/he.umd.js +1 -1
  58. package/dist/translations/hi.js +1 -1
  59. package/dist/translations/hi.umd.js +1 -1
  60. package/dist/translations/hr.js +1 -1
  61. package/dist/translations/hr.umd.js +1 -1
  62. package/dist/translations/hu.js +1 -1
  63. package/dist/translations/hu.umd.js +1 -1
  64. package/dist/translations/hy.js +1 -1
  65. package/dist/translations/hy.umd.js +1 -1
  66. package/dist/translations/id.js +1 -1
  67. package/dist/translations/id.umd.js +1 -1
  68. package/dist/translations/it.js +1 -1
  69. package/dist/translations/it.umd.js +1 -1
  70. package/dist/translations/ja.js +1 -1
  71. package/dist/translations/ja.umd.js +1 -1
  72. package/dist/translations/jv.js +1 -1
  73. package/dist/translations/jv.umd.js +1 -1
  74. package/dist/translations/kk.js +1 -1
  75. package/dist/translations/kk.umd.js +1 -1
  76. package/dist/translations/km.js +1 -1
  77. package/dist/translations/km.umd.js +1 -1
  78. package/dist/translations/kn.js +1 -1
  79. package/dist/translations/kn.umd.js +1 -1
  80. package/dist/translations/ko.js +1 -1
  81. package/dist/translations/ko.umd.js +1 -1
  82. package/dist/translations/ku.js +1 -1
  83. package/dist/translations/ku.umd.js +1 -1
  84. package/dist/translations/lt.js +1 -1
  85. package/dist/translations/lt.umd.js +1 -1
  86. package/dist/translations/lv.js +1 -1
  87. package/dist/translations/lv.umd.js +1 -1
  88. package/dist/translations/ms.js +1 -1
  89. package/dist/translations/ms.umd.js +1 -1
  90. package/dist/translations/nb.js +1 -1
  91. package/dist/translations/nb.umd.js +1 -1
  92. package/dist/translations/ne.js +1 -1
  93. package/dist/translations/ne.umd.js +1 -1
  94. package/dist/translations/nl.js +1 -1
  95. package/dist/translations/nl.umd.js +1 -1
  96. package/dist/translations/no.js +1 -1
  97. package/dist/translations/no.umd.js +1 -1
  98. package/dist/translations/oc.js +1 -1
  99. package/dist/translations/oc.umd.js +1 -1
  100. package/dist/translations/pl.js +1 -1
  101. package/dist/translations/pl.umd.js +1 -1
  102. package/dist/translations/pt-br.js +1 -1
  103. package/dist/translations/pt-br.umd.js +1 -1
  104. package/dist/translations/pt.js +1 -1
  105. package/dist/translations/pt.umd.js +1 -1
  106. package/dist/translations/ro.js +1 -1
  107. package/dist/translations/ro.umd.js +1 -1
  108. package/dist/translations/ru.js +1 -1
  109. package/dist/translations/ru.umd.js +1 -1
  110. package/dist/translations/si.js +1 -1
  111. package/dist/translations/si.umd.js +1 -1
  112. package/dist/translations/sk.js +1 -1
  113. package/dist/translations/sk.umd.js +1 -1
  114. package/dist/translations/sl.js +1 -1
  115. package/dist/translations/sl.umd.js +1 -1
  116. package/dist/translations/sq.js +1 -1
  117. package/dist/translations/sq.umd.js +1 -1
  118. package/dist/translations/sr-latn.js +1 -1
  119. package/dist/translations/sr-latn.umd.js +1 -1
  120. package/dist/translations/sr.js +1 -1
  121. package/dist/translations/sr.umd.js +1 -1
  122. package/dist/translations/sv.js +1 -1
  123. package/dist/translations/sv.umd.js +1 -1
  124. package/dist/translations/th.js +1 -1
  125. package/dist/translations/th.umd.js +1 -1
  126. package/dist/translations/ti.js +1 -1
  127. package/dist/translations/ti.umd.js +1 -1
  128. package/dist/translations/tk.js +1 -1
  129. package/dist/translations/tk.umd.js +1 -1
  130. package/dist/translations/tr.js +1 -1
  131. package/dist/translations/tr.umd.js +1 -1
  132. package/dist/translations/tt.js +1 -1
  133. package/dist/translations/tt.umd.js +1 -1
  134. package/dist/translations/ug.js +1 -1
  135. package/dist/translations/ug.umd.js +1 -1
  136. package/dist/translations/uk.js +1 -1
  137. package/dist/translations/uk.umd.js +1 -1
  138. package/dist/translations/ur.js +1 -1
  139. package/dist/translations/ur.umd.js +1 -1
  140. package/dist/translations/uz.js +1 -1
  141. package/dist/translations/uz.umd.js +1 -1
  142. package/dist/translations/vi.js +1 -1
  143. package/dist/translations/vi.umd.js +1 -1
  144. package/dist/translations/zh-cn.js +1 -1
  145. package/dist/translations/zh-cn.umd.js +1 -1
  146. package/dist/translations/zh.js +1 -1
  147. package/dist/translations/zh.umd.js +1 -1
  148. package/package.json +12 -12
package/dist/index.js CHANGED
@@ -20,9 +20,9 @@
20
20
  *
21
21
  *
22
22
  */
23
- import{ContextPlugin as _0x891fdc,Plugin as _0x18e830,PendingActions as _0x459582,Context as _0x1db326}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x1c552b,CKEditorError as _0x10b4e1,Collection as _0x20fb3f,global as _0x17d194,version as _0x51023f,uid as _0x9f4ec6,KeystrokeHandler as _0x5cc69c}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x5b9c9b,View as _0x4a5408,ListView as _0x4c2180,ListItemView as _0x57caa1,LabelView as _0x28a401,BalloonPanelView as _0x2a43c7,clickOutsideHandler as _0x154176,BodyCollection as _0x1c2f2b}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x23f357,History as _0xde6414,NoOperation as _0x4a4bb9,InsertOperation as _0x5ec806,MarkerOperation as _0x28fe23,RootAttributeOperation as _0x1603ea,transformOperationSets as _0x52cee7,OperationFactory as _0x124a27}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x5c766a}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x59254a,WEB_SOCKET_GATEWAY_STATES as _0x3c6eda,CollaborativeEditingService as _0x25acf6,User as _0x544a92,CommentsService as _0x1962a0,TrackChangesService as _0x743596,RevisionHistoryService as _0x4a0099,EditorService as _0x483c48}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x531388,UserView as _0x6af10f}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x5cd15f}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x400485,TrackChanges as _0x250f30}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x5d9000,Comments as _0x494d20,CommentsEditing as _0x3be2c1}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x43f978}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x594a36}from'es-toolkit/compat';class WebSocketGateway extends _0x891fdc{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
- ((()=>_0x59254a)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x5c766a,_0x5b9c9b];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x9d24b4){super(_0x9d24b4),this['set']('state',_0x3c6eda['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x1c552b())();}['init'](){const _0x3f3785=this['context'],_0x4f45b9=_0x3f3785['plugins']['get'](_0x5c766a),_0x35ad41=_0x3f3785['plugins']['get'](_0x5b9c9b);if(!_0x4f45b9['token'])throw new _0x10b4e1('websocketgateway-missing-token',this);if(!_0x4f45b9['webSocketUrl'])throw new _0x10b4e1('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'](_0x4f45b9['token'],_0x4f45b9['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x2ee97d=>{if(this['connection']=_0x2ee97d,this['bind']('state')['to'](_0x2ee97d,'state',this,'_isBrowserOffline',(_0x57a070,_0x220f3e)=>('connected'!==_0x57a070&&(this['_shouldPluginsReconnect']=!0x0),_0x220f3e||_0x57a070!==_0x3c6eda['CONNECTED']?_0x3c6eda['DISCONNECTED']:this['state']==_0x3c6eda['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x3c6eda['CONNECTING']):_0x3c6eda['CONNECTED'])),this['connection']['on']('error',(_0x1d61b4,_0x54f712)=>{if('limitExceeded'!==_0x54f712['code'])throw console['error'](_0x54f712),new _0x10b4e1('cloudservices-init',null,{'originalError':_0x54f712});_0x35ad41['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'});}),!_0x2ee97d['me'])return new Promise(_0x4e212d=>_0x2ee97d['on']('change:me',_0x4e212d));})['catch'](_0x432282=>{throw console['error'](_0x432282),new _0x10b4e1('cloudservices-init',null,{'originalError':_0x432282});});}['addToReconnectionStack'](_0x5da3f1){if('function'!=typeof _0x5da3f1['reconnect'])throw new _0x10b4e1('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x5da3f1))throw new _0x10b4e1('websocketgateway-plugin-already-registered',this,{'name':_0x5da3f1['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x5da3f1);}['removeFromReconnectionStack'](_0x175e33){this['_reconnectionStack']['delete'](_0x175e33);}['isInReconnectionStack'](_0x3261cd){return this['_reconnectionStack']['has'](_0x3261cd);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x4808f7=>_0x4808f7['reconnect']())))['then'](()=>this['state']=_0x3c6eda['CONNECTED'])['catch'](_0x569d95=>{throw console['error'](_0x569d95),new _0x10b4e1('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x3c6eda['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x891fdc{['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,_0x531388];}constructor(_0x255938){super(_0x255938),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x20fb3f(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x531388);}['init'](){const _0x456542=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x456542,'change:state',(_0xe07415,_0xfd89e4,_0x376271)=>{if('connected'!==_0x376271)this['channelSessions']['forEach'](_0x1c5e0c=>_0x1c5e0c['clear']()),this['channelConnectedUsers']['forEach'](_0x2adb02=>_0x2adb02['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x1fb288,_0x41de78]of this['_registeredSessions'])for(const _0x12aeb0 of _0x41de78)this['_handleSessionAdd'](_0x1fb288,_0x12aeb0);}}),this['_createUser'](_0x456542['connection']['me'],!0x0);}['register'](_0x1dcda7,_0x223fe4){if(this['_registeredSessions']['has'](_0x1dcda7))throw new _0x10b4e1('sessions-register-already-registered',null,{'channelId':_0x1dcda7});this['_registeredSessions']['set'](_0x1dcda7,_0x223fe4),this['channelSessions']['set'](_0x1dcda7,new _0x20fb3f()),this['channelConnectedUsers']['set'](_0x1dcda7,new _0x20fb3f()),this['listenTo'](_0x223fe4,'add',(_0x11dda5,_0x1521f9)=>this['_handleSessionAdd'](_0x1dcda7,_0x1521f9)),this['listenTo'](_0x223fe4,'remove',(_0x260655,_0x284998)=>this['_handleSessionRemove'](_0x1dcda7,_0x284998));for(const _0x51e4ac of _0x223fe4)this['_handleSessionAdd'](_0x1dcda7,_0x51e4ac);}['unregister'](_0xeb776f){if(!this['_registeredSessions']['has'](_0xeb776f))throw new _0x10b4e1('sessions-unregister-not-exist',null,{'channelId':_0xeb776f});const _0x2cc4dd=this['_registeredSessions']['get'](_0xeb776f);this['stopListening'](_0x2cc4dd);for(const _0x3e435b of _0x2cc4dd)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0xeb776f,_0x3e435b);this['_registeredSessions']['delete'](_0xeb776f),this['channelSessions']['delete'](_0xeb776f),this['channelConnectedUsers']['delete'](_0xeb776f);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x4ef3ed){for(const _0xec600e of this['channelSessions']['values']())for(const _0x506c92 of _0xec600e)if(_0x506c92['id']===_0x4ef3ed)return _0x506c92['user'];}['getUserSessions'](_0x12fa11,_0x4c8ac1){const _0x37d273=_0x4c8ac1?[this['channelSessions']['get'](_0x4c8ac1)]:this['channelSessions']['values'](),_0x147506=new Set();for(const _0x4d9e62 of _0x37d273)for(const _0x4762ef of _0x4d9e62)_0x4762ef['user']['id']===_0x12fa11['id']&&_0x147506['add'](_0x4762ef['id']);return _0x147506;}['getUserRole'](_0x4ad32c){for(const _0x358f77 of this['channelSessions']['values']())for(const _0x2cbca0 of _0x358f77)if(_0x2cbca0['user']===_0x4ad32c)return _0x2cbca0['role'];}['_handleSessionAdd'](_0x38e48d,_0x5da4a1){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x4d613d=_0x5da4a1['user'],_0x284a5a=this['_users']['getUser'](_0x4d613d['id'])||this['_createUser'](_0x4d613d),_0x50e0d8=Object['assign']({},_0x5da4a1,{'user':_0x284a5a});if(this['channelSessions']['get'](_0x38e48d)['add'](_0x50e0d8),!_0x4d613d['hiddenInPresenceList']){const _0x552e3c=this['channelConnectedUsers']['get'](_0x38e48d);_0x552e3c['has'](_0x284a5a['id'])||_0x552e3c['add'](_0x284a5a),this['allConnectedUsers']['has'](_0x284a5a['id'])||_0x4d613d['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x284a5a,_0x284a5a['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x38e48d,{'channelId':_0x38e48d,'session':_0x50e0d8});}['_handleSessionRemove'](_0x243e34,_0x25abe2){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x7f216b=this['channelConnectedUsers']['get'](_0x243e34),_0x10f066=_0x25abe2['user'];_0x10f066['id']&&(this['channelSessions']['get'](_0x243e34)['remove'](_0x25abe2['id']),_0x7f216b['has'](_0x10f066['id'])&&!this['getUserSessions'](_0x10f066,_0x243e34)['size']&&_0x7f216b['remove'](_0x10f066['id']),this['allConnectedUsers']['get'](_0x10f066['id'])&&!this['getUserSessions'](_0x10f066)['size']&&this['allConnectedUsers']['remove'](_0x10f066['id']));}['_createUser'](_0x4b88f2,_0xc194cd){const _0x47b116=this['_users']['addUser'](_0x4b88f2);return _0xc194cd&&this['_users']['defineMe'](_0x4b88f2['id']),_0x47b116['orderNumber']=this['_uniqueUsersCount']++,_0x47b116;}}class UserMarkers extends _0x18e830{['_domEmitter']=new(_0x1c552b())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x16d763=this['editor'],_0x12e57b=_0x16d763['plugins']['get'](Sessions);_0x16d763['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x945411,{writer:_0x2656c5})=>function(_0xa9a14,_0x21a10f,_0x50fa26,_0x339016){const _0x4f7477=_0xa9a14['markerName']['split'](':')[0x2],_0x440851=_0x50fa26['getUserBySessionId'](_0x4f7477);if(!_0x440851||_0x4f7477===_0x50fa26['mySessionId'])return;if(!_0x339016['model']['schema']['checkChild'](_0xa9a14['markerRange']['start'],'$text'))return;const _0x340df6={'class':'ck-user__marker\x20'+_0x440851['color']['getMarkerClass'](),'style':Y(_0x440851),'data-name':_0x440851['name'],'data-session-id':_0x4f7477},_0x597176=_0x339016['model']['markers']['get'](_0xa9a14['markerName']),_0x3a8f88=_0x597176['getStart'](),_0x245e45=_0x3a8f88['nodeAfter'],_0x19a168=_0x339016['model']['schema'];if(_0x245e45&&_0x19a168['isObject'](_0x245e45)&&_0x19a168['isInline'](_0x245e45)&&!_0x339016['model']['markers']['get']('user:range:'+_0x4f7477)['getRange']()['isCollapsed'])return;const _0x261e9b=_0x3a8f88['parent'];return _0x339016['model']['schema']['isLimit'](_0x261e9b)&&!_0x339016['model']['hasContent'](_0x261e9b)&&(_0x340df6['contenteditable']=!0x1),function(_0x2bafb8,_0x5bbf65,_0x559b4b){const _0x24497b=_0x2bafb8['createUIElement']('span',_0x5bbf65);return _0x2bafb8['setCustomProperty']('userPositionMarker',!0x0,_0x24497b),_0x24497b['render']=function(_0x46b722){const _0x15334a=this['toDomElement'](_0x46b722),_0x3f9253=document['createElement']('span');return _0x3f9253['classList']['add']('ck-user__marker-tooltip'),_0x3f9253['setAttribute']('contenteditable','false'),_0x3f9253['setAttribute']('spellcheck','false'),_0x3f9253['textContent']=_0x559b4b['name'],_0x15334a['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x3f9253['outerHTML']+'⁠',_0x15334a['addEventListener']('mouseenter',()=>{_0x15334a['classList']['add']('ck-user__marker_hovered');}),_0x15334a['addEventListener']('mouseleave',()=>{_0x15334a['classList']['remove']('ck-user__marker_hovered');}),_0x15334a;},_0x24497b['isSimilar']=function(_0x16e044){return!(!this['getCustomProperty']('userPositionMarker')||!_0x16e044['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x16e044['getAttribute']('data-session-id'));},_0x24497b;}(_0x21a10f,_0x340df6,_0x440851);}(_0x945411,_0x2656c5,_0x12e57b,_0x16d763)}),_0x16d763['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x12b97b=>function(_0x45b8e0,_0x2cf952){const _0x2196c5=_0x45b8e0['markerName']['split'](':')[0x2];if(_0x2196c5===_0x2cf952['mySessionId'])return null;const _0x47a28a=_0x2cf952['getUserBySessionId'](_0x2196c5);if(!_0x47a28a)return{'id':_0x2196c5,'classes':[]};return{'id':_0x2196c5,'classes':['ck-user__selection',_0x47a28a['color']['getSelectionClass']()],'attributes':{'style':Y(_0x47a28a),'data-session-id':_0x2196c5},'priority':0x7d0+_0x47a28a['orderNumber']};}(_0x12b97b,_0x12e57b)}),function(_0x552444){const _0x543ed5=_0x552444['model'],_0x1b217d=new Map(),_0x3f3b1d=_0x552444['plugins']['get'](Sessions);_0x543ed5['markers']['on']('update:user:range',(_0x50657c,_0x1845a4,_0x239918,_0x3f302a)=>{if(!_0x3f302a&&_0x1b217d['get'](_0x1845a4['name']))return _0x1b217d['get'](_0x1845a4['name'])['detach'](),void _0x1b217d['delete'](_0x1845a4['name']);const _0x59fbf4=_0x1845a4['name']['split'](':')[0x2];if(_0x59fbf4===_0x3f3b1d['mySessionId'])return;const _0xd0ad6='user:position:'+_0x59fbf4;_0x543ed5['markers']['has'](_0xd0ad6)&&_0x552444['editing']['reconvertMarker'](_0xd0ad6),_0x1845a4['on']('change:range',(_0x3cf329,_0xde7148,_0x31d3e7)=>{if('$graveyard'!=_0xde7148['root']['rootName']&&'$graveyard'==_0x1845a4['getRange']()['root']['rootName']&&!_0x1b217d['has'](_0x1845a4['name'])){const _0x4b6793=_0x543ed5['schema']['getNearestSelectionRange'](_0x31d3e7['deletionPosition']);if(_0x4b6793){const _0x551255=_0x23f357['fromRange'](_0x4b6793);_0x1b217d['set'](_0x1845a4['name'],_0x551255),_0x551255['on']('change:range',(_0x2d803b,_0x12908e,_0x2b7163)=>{if('$graveyard'==_0x551255['root']['rootName']){const _0x4dac57=_0x543ed5['schema']['getNearestSelectionRange'](_0x2b7163['deletionPosition']);_0x4dac57?(_0x551255['start']=_0x4dac57['start'],_0x551255['end']=_0x4dac57['end']):(_0x1b217d['delete'](_0x1845a4['name']),_0x551255['detach']());}});}}});}),_0x543ed5['document']['on']('change',()=>{_0x1b217d['size']>0x0&&_0x543ed5['enqueueChange']({'isUndoable':!0x1},_0x3d56f3=>{for(const [_0x2d1d4c,_0x543be8]of _0x1b217d)'$graveyard'==_0x543ed5['markers']['get'](_0x2d1d4c)['getRange']()['root']['rootName']&&(z(_0x2d1d4c['split'](':')[0x2],_0x543be8['toRange'](),_0x543ed5,_0x3d56f3),_0x543be8['detach']());_0x1b217d['clear']();});});}(_0x16d763),this['_domEmitter']['listenTo'](_0x17d194['document'],'keydown',(_0x1a9a69,{key:_0x151170})=>{'Escape'===_0x151170&&function(_0x102853){_0x102853['editing']['view']['change'](_0x2e4b5b=>{for(const _0x373439 of _0x102853['model']['markers']){if(!_0x373439['name']['startsWith']('user:position'))continue;const _0x14cb5c=_0x102853['editing']['mapper']['markerNameToElements'](_0x373439['name']);if(_0x14cb5c){for(const _0x13ed7e of _0x14cb5c)_0x2e4b5b['removeClass']('ck-user__marker_hovered',_0x13ed7e);}}});}(_0x16d763);},{'useCapture':!0x0});}['afterInit'](){const _0x3ce797=this['editor'],_0x1cbbae=_0x3ce797['commands']['get']('undo');_0x1cbbae&&_0x3ce797['model']['on']('applyOperation',(_0xabe29d,_0x125946)=>{const _0x11b2e4=_0x125946[0x0];if(!_0x11b2e4['isDocumentOperation'])return;if('marker'!=_0x11b2e4['type']||!_0x11b2e4['name']['startsWith']('user:'))return;const _0x57d914=_0x11b2e4['batch'];_0x1cbbae['_createdBatches']['has'](_0x57d914)&&(_0x11b2e4['newRange']=_0x11b2e4['oldRange']?_0x3ce797['model']['createRange'](_0x11b2e4['oldRange']['start'],_0x11b2e4['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x1bc0af=this['editor'],_0xe5b02d=_0x1bc0af['model']['document'],_0x516cec=_0x1bc0af['plugins']['get'](Sessions);_0x1bc0af['model']['enqueueChange']({'isUndoable':!0x1},_0x27a2bf=>{const _0xc8753='user:range:'+_0x516cec['mySessionId'],_0x341539='user:position:'+_0x516cec['mySessionId'],_0x30d801=_0x1bc0af['model']['markers']['has'](_0xc8753);_0x1bc0af['editing']['view']['hasDomSelection']?z(_0x516cec['mySessionId'],_0xe5b02d['selection']['getFirstRange'](),_0x1bc0af['model'],_0x27a2bf):_0x30d801&&(_0x27a2bf['removeMarker'](_0xc8753),_0x27a2bf['removeMarker'](_0x341539));});}}function z(_0x18e98a,_0x228da7,_0x1c5f53,_0x27482c){const _0x3f28b1='user:range:'+_0x18e98a,_0xfc1539='user:position:'+_0x18e98a,_0x1d38b9=_0x228da7['getContainedElement']();let _0x2e7614=_0x228da7['start'];if(_0x1d38b9&&_0x1d38b9['is']('element','tableCell')){const _0x412497=function(_0x1c6a5e,_0x3b32bb){for(const _0x10ab8b of _0x1c6a5e['getPositions']())if(_0x3b32bb['schema']['checkChild'](_0x10ab8b,'$text'))return _0x10ab8b;}(_0x228da7,_0x1c5f53);_0x412497&&(_0x2e7614=_0x412497,_0x228da7=_0x27482c['createRange'](_0x2e7614));}const _0x21a67a=_0x27482c['createRange'](_0x2e7614);_0x1c5f53['markers']['has'](_0x3f28b1)?(_0x27482c['updateMarker'](_0x3f28b1,{'range':_0x228da7}),_0x27482c['updateMarker'](_0xfc1539,{'range':_0x21a67a})):(_0x27482c['addMarker'](_0x3f28b1,{'range':_0x228da7,'usingOperation':!0x0}),_0x27482c['addMarker'](_0xfc1539,{'range':_0x21a67a,'usingOperation':!0x0}));}function Y(_0xe1d44d){return'--ck-user-color:'+_0xe1d44d['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0xe1d44d['color']['getColorAlphaVariable']()+';';}function K(_0x162267,_0x5ef377,_0x53877d){const _0x2a36c6=_0x162267['t'],t=_0x162267['t'];switch(_0x5ef377){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 _0x2a36c6({'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'},_0x53877d);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x18e830{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
- ((()=>_0x25acf6)());['_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,_0x459582,_0x531388,_0x5b9c9b];}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 _0x4e768f=this['serverHistory']['getOperations']();for(let _0x3d79ac=_0x4e768f['length']-0x1;_0x3d79ac>=0x0;_0x3d79ac--){const _0x560332=_0x4e768f[_0x3d79ac];if(!this['_disconnectionOperations']['has'](_0x560332))return _0x560332['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x1c49af){if(super(_0x1c49af),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0xde6414(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x10b4e1('collaboration-missing-channelid',this);const _0x3ecf27=_0x1c49af['config']['get']('cloudServices.bundleVersion')||_0x51023f;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x3ecf27,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x5cd15f(),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 _0x2a80a0=this['editor'],_0x273ac9=_0x2a80a0['plugins']['get'](_0x531388),_0xf8cbbd=_0x2a80a0['plugins']['get'](WebSocketGateway);this['listenTo'](_0x273ac9,'getOperationAuthor',(_0x3b5c57,_0x354017)=>{const _0x4a361e=_0x354017[0x0];_0x4a361e['_authorId']&&(_0x3b5c57['return']=_0x273ac9['getUser'](_0x4a361e['_authorId']),_0x3b5c57['stop']()),null===_0x4a361e['_authorId']&&(_0x3b5c57['return']=null,_0x3b5c57['stop']());},{'priority':'high'}),this['listenTo'](_0x2a80a0['model']['document']['selection'],'change:range',(_0x57b2e5,_0x35b602)=>{_0x35b602['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x2a80a0['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x2a80a0['model']['on']('applyOperation',(_0x46bb3b,_0x234992)=>{const _0xfe223d=_0x234992[0x0];_0xfe223d['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0xfe223d),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0xf8cbbd,'state',this,'_hasSynchronizationProblem',(_0x4ec21c,_0x44a648)=>'connected'===_0x4ec21c&&!_0x44a648),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x2a80a0['disableReadOnlyMode']('rtc-offline'):_0x2a80a0['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x2a80a0['disableReadOnlyMode']('rtc-offline'):_0x2a80a0['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x4c015d=this['editor']['plugins']['get'](Sessions),_0x3f63f0=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x4c015d['unregister'](this['_channelId']);const _0x10be54=await this['_service']['reconnect'](_0x3f63f0['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x10be54)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x5842a1=await this['_service']['getConnectedSessions']();_0x4c015d['register'](this['_channelId'],_0x5842a1),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x5156fa){if(function(_0xabe03f){return'404'===_0xabe03f['code'];}(_0x5156fa)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x36653a){return'409'===_0x36653a['code'];}(_0x5156fa)){const _0x11ec5c=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'](_0x11ec5c);}else{if(!(_0x5156fa instanceof ReconnectionError))throw _0x5156fa;this['_handleReconnectionError']();}}}}['destroy'](){const _0x2f2d89=this['editor']['plugins']['get'](WebSocketGateway),_0x1902a6=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x1902a6['channelSessions']['has'](this['_channelId'])&&_0x1902a6['unregister'](this['_channelId']),_0x2f2d89['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x5ec3ce){if(this['sessionId']!==_0x5ec3ce['sessionId']&&this['_lastSyncedOperationId']!==_0x5ec3ce['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x5ec3ce['sessionId'],this['_handleServerResponse']([],{..._0x5ec3ce,'wereChangesApplied':!0x1,'data':_0x5ec3ce['data']},'reconnect');}async['_connectService'](_0x2c2826,_0x31fdfe=!0x1){const {connection:_0x5611d4}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x5611d4,this['_channelId'])['then'](_0x51296f=>this['_initSessionsHandling'](_0x51296f))['catch'](_0x3703e2=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x3703e2);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x132819,_0x3dcc69)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x3dcc69);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x4d7124=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x2c2826);this['_isPendingUpdate']=!0x0;const _0x3131f7=await this['_service']['connect'](_0x5611d4,this['_compressOperations'](_0x2c2826),_0x4d7124);if(this['sessionId']=_0x3131f7['sessionId'],_0x31fdfe){if(!_0x3131f7['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x3131f7['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x2c2826,_0x3131f7,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x3131f7,_0x2c2826);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x3b8887=this['editor']['plugins']['get'](Sessions),_0x94112c=this['editor']['plugins']['get'](UserMarkers),_0x227e60=_0x3b8887['channelSessions']['get'](this['_channelId']);_0x227e60&&_0x227e60['length']>0x1?_0x94112c['createUserMarkerOperations']():this['listenTo'](_0x3b8887,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x3b8887['channelSessions']['get'](this['_channelId'])['length']&&_0x94112c['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x39bc23,_0x161aa0,_0xae2892,_0x4cfc6a){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x161aa0){const _0x37d770=this['_decompressOperations'](_0xae2892,_0x4cfc6a);await this['_fetchMissingUsers'](_0x37d770),this['_handleExternalOperations'](_0x37d770,_0x161aa0,_0xae2892['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x3264d9}=this['editor'];let _0x229510;try{_0x229510=await this['_service']['getDocumentDetails']();}catch{const _0x13ed5c=K(_0x3264d9,'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'](_0x13ed5c);}const _0x454fb7=_0x229510['currentDocumentSession']||_0x229510['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x454fb7['lastOperationId']){const _0x319331=K(_0x3264d9,'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'](_0x319331);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x5543d9){const _0x4a9913=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x4a9913,'sessionAdd:'+this['_channelId'],(_0x8e2899,{session:_0x1de28f})=>{if(_0x1de28f['id']===_0x4a9913['mySessionId']){_0x8e2899['off']();const _0x4c7c1f=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x5b9206=_0x1de28f['permissions'];_0x4c7c1f&&_0x4c7c1f['isEnabled']&&(_0x5b9206=_0x5b9206['filter'](_0x4501f6=>'document:write'!==_0x4501f6)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x5b9206,this['_channelId']);}}),_0x4a9913['register'](this['_channelId'],_0x5543d9);}['_initThrowingOnDataSet'](){const _0x56a03d=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x391fed)=>{if(!_0x391fed[_0x391fed['length']-0x1]['suppressErrorInCollaboration'])throw new _0x10b4e1('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x56a03d['apply'](this['editor']['data'],_0x391fed);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x3aa586,[_0x4a507c])=>{if(this['_document']['version'])throw new _0x10b4e1('realtimecollaborationclient-init-document-already-initialized',this);_0x3aa586['stop'](),this['_setPendingAction']();const _0x3d4035=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x3b1505])=>!_0x3b1505['lazyLoad'])['map'](([_0x26d34c,_0x5192a1])=>[_0x26d34c,_0x5192a1['modelAttributes']||{}])),_0x4b83b2=this['_getOperationsFromInitData'](_0x4a507c,_0x3d4035);0x0==_0x4b83b2['length']&&_0x4b83b2['push'](new _0x4a4bb9(0x0)),_0x3aa586['return']=this['_connectService'](_0x4b83b2)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x372b38=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x372b38))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0xf19d2f,[_0x29beca,_0x2f9ee7])=>{_0xf19d2f['stop']();const _0x44be9c=this['editor']['model']['document']['getRoot'](_0x29beca);if(!this['_knownRootNames']['has'](_0x29beca)){const _0x562e94=_0x2f9ee7&&_0x2f9ee7['data']?_0x2f9ee7['data']:'',_0x150072=_0x2f9ee7&&_0x2f9ee7['attributes']?_0x2f9ee7['attributes']:{};await this['_loadRoot'](_0x29beca,_0x562e94,_0x150072);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x44be9c['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x44be9c);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x4c916f){const _0x46d8a1=this['editor']['plugins']['get'](_0x531388),{connection:_0x3d0881}=this['editor']['plugins']['get'](WebSocketGateway),_0x7fece6=new Set();for(const _0x3a721b of _0x4c916f){const _0x4f540c=_0x3a721b['_authorId'];_0x4f540c&&!_0x46d8a1['getUser'](_0x4f540c)&&_0x7fece6['add'](_0x4f540c);}if(0x0===_0x7fece6['size'])return;const _0x486fb4=await _0x544a92['getMany'](_0x3d0881,Array['from'](_0x7fece6));for(const _0x388202 of _0x486fb4)_0x46d8a1['getUser'](_0x388202['id'])||_0x46d8a1['addUser'](_0x388202);}['_getOperationsFromInitData'](_0x48c3e1,_0x4e80f5={}){const _0xaee820=this['editor']['model'],_0xf96d26=[];let _0x15ce18=0x0;const _0x1a7d5f='string'==typeof _0x48c3e1?{'main':_0x48c3e1}:_0x48c3e1;for(const _0x4de1c9 of Object['keys'](_0x1a7d5f)){if(!this['_document']['roots']['has'](_0x4de1c9))throw new _0x10b4e1('realtimecollaborationclient-init-non-existent-root',this);const _0x4ce655=this['_document']['getRoot'](_0x4de1c9),_0x435350=this['editor']['data']['parse'](_0x1a7d5f[_0x4de1c9],_0x4ce655),_0x5db5c1=new _0x5ec806(_0xaee820['createPositionAt'](_0x4ce655,0x0),_0x435350,_0x15ce18++);_0xf96d26['push'](_0x5db5c1);for(const [_0x5c666f,_0x258551]of _0x435350['markers']){const _0x4bc44b=_0xaee820['createRange'](_0xaee820['createPositionFromPath'](_0x4ce655,_0x258551['start']['path']['slice']()),_0xaee820['createPositionFromPath'](_0x4ce655,_0x258551['end']['path']['slice']())),_0x63aa33=new _0x28fe23(_0x5c666f,null,_0x4bc44b,_0xaee820['markers'],!0x0,_0x15ce18++);_0xf96d26['push'](_0x63aa33);}}if(_0x4e80f5)for(const [_0x18d857,_0x4e7783]of Object['entries'](_0x4e80f5)){const _0x4d1787=_0xaee820['document']['getRoot'](_0x18d857);if(!_0x4d1787)throw new _0x10b4e1('multi-root-editor-root-attributes-no-root',null);for(const [_0x1160eb,_0x3bfa21]of Object['entries'](_0x4e7783))if(null!==_0x3bfa21){const _0xaf69e4=new _0x1603ea(_0x4d1787,_0x1160eb,null,_0x3bfa21,_0x15ce18++);_0xf96d26['push'](_0xaf69e4);}}return _0xf96d26;}async['_loadRoot'](_0x56f657,_0xec446e,_0x49dffa){this['_getOperationsFromInitData']({[_0x56f657]:_0xec446e},{[_0x56f657]:_0x49dffa})['forEach']((_0x2cde3b,_0x5a9aca)=>{_0x2cde3b['baseVersion']=this['_document']['version']+_0x5a9aca,_0x2cde3b['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x2cde3b);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x154c06,_0x48627a){let _0x26f0d8;this['_offset']=_0x154c06['offset'];const _0x4b5e17=_0x154c06['wereChangesApplied']&&!_0x154c06['initData'],_0x5e6426=_0x4b5e17?0x0:_0x154c06['data']['baseVersion'];if(_0x48627a['forEach'](_0x3ffed0=>{_0x3ffed0['_isInit']=!0x0,_0x3ffed0['createdAt']=_0x154c06['sessionCreatedAt'],_0x3ffed0['_authorId']=null;}),_0x4b5e17)_0x26f0d8=_0x48627a,this['_applyOperationsSet'](_0x26f0d8,_0x4b5e17);else{if(_0x154c06['initData']){const _0x554a87=this['_getOperationsFromInitData'](_0x154c06['initData']);this['_document']['history']['version']=-_0x554a87['length'],_0x554a87['forEach'](_0xafb2e8=>{_0xafb2e8['baseVersion']-=_0x554a87['length'],_0xafb2e8['createdAt']=_0x154c06['sessionCreatedAt'],_0xafb2e8['_isInit']=!0x0,_0xafb2e8['_authorId']=null;}),this['_applyOperationsSet'](_0x554a87,!0x0),this['serverHistory']['version']=-_0x554a87['length']+this['_offset'],this['_updateServerHistory'](_0x554a87);}this['_document']['history']['version']=_0x5e6426,_0x26f0d8=this['_decompressOperations'](_0x154c06['data'],_0x154c06['metadata']),await this['_fetchMissingUsers'](_0x26f0d8),this['_applyOperationsSet'](_0x26f0d8,_0x4b5e17);}_0x154c06['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x26f0d8,_0x154c06['lastOperationId']),this['_lastSyncedOperationId']=_0x154c06['lastOperationId']),this['serverHistory']['version']=_0x5e6426+this['_offset'],this['_updateServerHistory'](_0x26f0d8),_0x48627a['filter'](_0x46d38c=>{const _0x4f1748=this['_getAffectedRoot'](_0x46d38c);return _0x4f1748&&!this['_knownRootNames']['has'](_0x4f1748);})['forEach']((_0x3c66da,_0x363d0b)=>{_0x3c66da['baseVersion']=this['_document']['version']+_0x363d0b,this['_saveOperationInBuffer'](_0x3c66da);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x211123,_0x504e5d){const _0x25a06c=_0x504e5d&&_0x504e5d['message'];if(_0x25a06c&&_0x25a06c['startsWith']('realtimecollaborationclient'))throw _0x504e5d;const _0x5b2221=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x5b2221['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x10b4e1(_0x211123,this['editor'],_0x25a06c?{'originalError':_0x25a06c}:void 0x0);}['_saveOperationInBuffer'](_0x55b10e){this['_knownOperations']['has'](_0x55b10e)||(this['_knownOperations']['add'](_0x55b10e),this['_bufferedOperations']['push'](_0x55b10e),this['_pendingAction']||'marker'==_0x55b10e['type']&&!_0x55b10e['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x27e2a5=!0x1){!_0x27e2a5&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x1c1c9d=>{_0x1c1c9d&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x5d56ff=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x28aa67){return _0x28aa67['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x28aa67['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x28aa67['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x5d56ff)||this['_crash'](_0x5d56ff['message'],_0x5d56ff);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x7dce91=>{this['on']('change:_isPendingUpdate',()=>{_0x7dce91();});});}async['_sendBufferedOperations'](){const _0x5221fb=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x5221fb['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x540157=[...this['_bufferedOperations']];for(const _0x3cdc11 of _0x540157)_0x3cdc11['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x3cdc11);const _0x1ade7e=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x540157),_0x416ab1=J++,_0x5bcb37=this['_compressOperations'](_0x540157),_0x46fa50=await this['_service']['sendOperations'](_0x5bcb37,_0x5bcb37['baseVersion'],_0x1ade7e);try{return await this['_handleServerResponse'](_0x540157,_0x46fa50,_0x416ab1);}catch(_0x4b86af){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x4b86af);}}async['_handleServerResponse'](_0x2d103a,_0x34e4d9,_0x53d618){if('error'in _0x34e4d9)throw _0x34e4d9['error'];let _0x136fc8=!0x1;if(_0x34e4d9['wereChangesApplied']){_0x34e4d9['lastOperationId']&&(this['_lastSyncedOperationId']=_0x34e4d9['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x4c3728=>!_0x2d103a['includes'](_0x4c3728));for(const _0x58091c of _0x2d103a)_0x58091c['createdAt']='lastOperationAcceptedAt'in _0x34e4d9&&_0x34e4d9['lastOperationAcceptedAt']||void 0x0;Q(_0x2d103a,_0x34e4d9['version']-_0x2d103a['length']),this['_updateServerHistory'](_0x2d103a);const _0x2e0e85=_0x2d103a['filter'](_0x1bdf23=>{if(!_0x1bdf23['_isInit'])return!0x1;const _0xd26358=this['_getAffectedRoot'](_0x1bdf23);return _0xd26358&&!this['_knownRootNames']['has'](_0xd26358);});Q(_0x2e0e85,this['_document']['version']),this['_applyOperationsSet'](_0x2e0e85),_0x136fc8=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x1402f8=this['_decompressOperations'](_0x34e4d9['data'],_0x34e4d9['metadata'])['filter'](_0x11adb1=>_0x11adb1['baseVersion']>=this['_lastServerVersion']);_0x1402f8['forEach'](_0x60b258=>this['_addKnownRoot'](_0x60b258)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x35ecab=>!_0x35ecab['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x35ecab))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x1402f8),_0x136fc8=this['_handleExternalOperations'](_0x1402f8,_0x34e4d9['version'],_0x34e4d9['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x136fc8?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x3c6419,_0x4b2c9b,_0x1a1bf6){try{const _0x4001b7={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x271f40,operationsB:_0x3b1f1f,originalOperations:_0x209c86}=_0x52cee7(_0x3c6419,this['_bufferedOperations'],_0x4001b7);Q(_0x271f40,this['_document']['version']),Q(_0x3b1f1f,_0x4b2c9b);for(const _0x1ce822 of _0x271f40){const _0x8dbeb9=_0x209c86['get'](_0x1ce822);_0x1ce822['_authorId']=_0x8dbeb9?_0x8dbeb9['_authorId']:null;}_0x1a1bf6&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x3c6419,_0x1a1bf6),this['_lastSyncedOperationId']=_0x1a1bf6),this['_bufferedOperations']=[..._0x3b1f1f],this['_applyOperationsSet'](_0x271f40),this['_updateServerHistory'](_0x3c6419);}catch(_0x4f75c8){return console['error'](_0x4f75c8),!0x1;}return!0x0;}['_applyOperationsSet'](_0x2bae45,_0x372e8b=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x385ce8=>{for(const _0x3fed54 of _0x2bae45)this['_knownOperations']['add'](_0x3fed54),this['_addKnownRoot'](_0x3fed54),_0x385ce8['batch']['addOperation'](_0x3fed54),this['editor']['model']['applyOperation'](_0x3fed54);});}['_addKnownRoot'](_0x21eea9){const _0x40d122=this['_getAffectedRoot'](_0x21eea9);_0x40d122&&this['_knownRootNames']['add'](_0x40d122);}['_getAffectedRoot'](_0x43b6e8){let _0x3a98f0,_0x48afc9;switch(_0x43b6e8['type']){case'insert':_0x3a98f0=_0x43b6e8['position']['root'];break;case'marker':if(_0x48afc9=_0x43b6e8['newRange'],!_0x48afc9)return null;_0x3a98f0=_0x48afc9['root'];break;case'addRootAttribute':_0x3a98f0=_0x43b6e8['root'];break;case'addRoot':_0x3a98f0=_0x43b6e8['affectedSelectable'];break;case'move':_0x3a98f0=_0x43b6e8['targetPosition']['root'];break;default:return null;}return _0x3a98f0['rootName'];}['_updateServerHistory'](_0x24eb9b){_0x24eb9b['forEach'](_0xa31262=>{const _0x2fc7ed=_0xa31262['clone']();_0x2fc7ed['_authorId']=_0xa31262['_authorId'],_0x2fc7ed['_isInit']=!!_0xa31262['_isInit'],_0x2fc7ed['createdAt']=_0xa31262['createdAt'],_0x2fc7ed['baseVersion']+=this['_offset'],_0xa31262['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x2fc7ed),this['serverHistory']['addOperation'](_0x2fc7ed);});}['_handleReconnectionError'](_0x588c5f){const _0x42cd83=this['editor']['plugins']['get']('Notification'),_0x34e94d=this['editor']['locale'];_0x588c5f||(_0x588c5f=K(_0x34e94d,'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.')),_0x42cd83['showWarning'](_0x588c5f,{'title':K(_0x34e94d,'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'](_0x459582)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x459582)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x28717e){const _0x60d59=_0x28717e['map'](_0x31aaf5=>_0x31aaf5['toJSON']());return this['_compressor']['compress'](_0x60d59);}['_decompressOperations'](_0x548819,_0x417d5c){return this['_compressor']['decompress'](_0x548819)['map']((_0x281827,_0x987f72)=>{const _0x4911b9='init'==_0x417d5c[_0x987f72]['type'];if('InsertOperation'==_0x281827['__className']){const _0x40aa0b=_0x281827['position']['root'];!this['_document']['getRoot'](_0x40aa0b)&&(this['_document']['createRoot']('$unknown',_0x40aa0b)['_isAttached']=!0x1);}else{if('RootOperation'==_0x281827['__className']){const _0x214e4d=this['_document']['getRoot'](_0x281827['rootName']);_0x214e4d&&'$unknown'==_0x214e4d['name']&&_0x281827['elementName']!=_0x214e4d['name']&&(_0x214e4d['name']=_0x281827['elementName']);}}const _0x31d2c8=_0x124a27['fromJSON'](_0x281827,this['_document']);return _0x31d2c8['wasUndone']=_0x281827['wasUndone'],_0x31d2c8['_isInit']=_0x4911b9,_0x31d2c8['_authorId']=_0x4911b9?null:_0x417d5c[_0x987f72]['userId'],_0x31d2c8['_isDisconnection']='cs:removeUser'===_0x417d5c[_0x987f72]['type'],_0x31d2c8['createdAt']=_0x417d5c[_0x987f72]['createdAt'],_0x31d2c8;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x4280ae=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x4280ae&&_0x4280ae['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x2d009a,_0x87a806){for(const _0x5c8100 of _0x2d009a)_0x5c8100['baseVersion']=_0x87a806++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x34bbbb){this['_ignoredOperations']=_0x34bbbb,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x43f604){let _0x5dedc6=_0x43f604['length'];for(;_0x5dedc6--;){const _0x1822de=_0x43f604[_0x5dedc6];if(!this['_ignoredOperations']['has'](_0x1822de)){if(!this['_operationToId']['has'](_0x1822de)){const _0x2e7c46=_0x9f4ec6()['slice'](0x1,0x12);this['_operationToId']['set'](_0x1822de,_0x2e7c46);}return this['_operationToId']['get'](_0x1822de);}}}['setIdForTheLastOperation'](_0x53008c,_0xba05f5){if(!_0xba05f5)return;let _0x33082d=_0x53008c['length'];for(;_0x33082d--;){const _0x5c3356=_0x53008c[_0x33082d];this['_ignoredOperations']['has'](_0x5c3356)||this['_operationToId']['set'](_0x5c3356,_0xba05f5);}}}class RealTimeCollaborativeEditing extends _0x18e830{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x891fdc{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
- ((()=>_0x1962a0)());['_services'];static get['requires'](){return[WebSocketGateway,_0x5d9000,Sessions,_0x531388];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3c1c90){super(_0x3c1c90),this['_services']=new Map();}async['init'](){const _0x2f6fd3=this['context'],_0x62a408=_0x2f6fd3['plugins']['get'](_0x5d9000);if(_0x2f6fd3['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x62a408['adapter']={'addCommentThread':async({channelId:_0x52dbc4,threadId:_0x30751e,comments:_0x2fbd4e,resolvedAt:_0x5bcc4e,resolvedBy:_0x363788,context:_0x440b14,attributes:_0x426e07})=>{const _0x37b226=await this['_getService'](_0x52dbc4)['addCommentThread']({'commentThreadId':_0x30751e,'comments':_0x2fbd4e['map'](_0x437788=>function(_0x211ed6,_0x22471a,_0x3e2190){return{'commentThreadId':_0x3e2190,'commentId':_0x211ed6['commentId'],'userId':_0x211ed6['authorId'],'content':_0x211ed6['content'],'documentId':_0x22471a,'createdAt':_0x211ed6['createdAt'],'attributes':_0x211ed6['attributes']||{}};}(_0x437788,_0x52dbc4,_0x30751e)),'resolvedAt':_0x5bcc4e,'resolvedBy':_0x363788,'context':_0x440b14,'attributes':_0x426e07})['catch'](Z);return{'threadId':_0x37b226['commentThreadId'],'comments':_0x37b226['comments']};},'getCommentThread':async({channelId:_0x8bda26,threadId:_0x3bde6f})=>{const _0x49f5f5=await this['_getService'](_0x8bda26)['getCommentThread'](_0x3bde6f)['catch'](X)['catch'](Z);return _0x49f5f5?_0x49f5f5['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x49f5f5]),{'threadId':_0x49f5f5['commentThreadId'],'comments':_0x49f5f5['comments']['map'](tt),'context':_0x49f5f5['context'],'resolvedAt':_0x49f5f5['resolvedAt'],'resolvedBy':_0x49f5f5['resolvedBy'],'attributes':_0x49f5f5['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x590802,threadId:_0x162954,context:_0x45b5da,unlinkedAt:_0x4e7bd2,attributes:_0x435365})=>this['_getService'](_0x590802)['updateCommentThread']({'commentThreadId':_0x162954,'context':_0x45b5da,'attributes':_0x435365,'unlinkedAt':_0x4e7bd2})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x309aeb,threadId:_0x1e30ab})=>{const _0x3b80c8=await this['_getService'](_0x309aeb)['resolveCommentThread'](_0x1e30ab)['catch'](X)['catch'](Z);return{'threadId':_0x3b80c8['commentThreadId'],'resolvedAt':_0x3b80c8['resolvedAt'],'resolvedBy':_0x3b80c8['resolvedBy']};},'reopenCommentThread':async({channelId:_0x445992,threadId:_0x255d94})=>this['_getService'](_0x445992)['reopenCommentThread'](_0x255d94)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x37a9f1,threadId:_0x55add2})=>this['_getService'](_0x37a9f1)['removeCommentThread'](_0x55add2)['catch'](X)['catch'](Z),'addComment':({channelId:_0x31fae7,threadId:_0x2fd3d9,commentId:_0x1efa9a,content:_0x3ef28b,attributes:_0x14c51b})=>this['_getService'](_0x31fae7)['addComment'](_0x2fd3d9,_0x1efa9a,_0x3ef28b,_0x14c51b)['catch'](Z),'updateComment':({channelId:_0x54fce6,threadId:_0x3b9de9,commentId:_0x4da672,content:_0x4030d9,attributes:_0x41a752})=>this['_getService'](_0x54fce6)['updateComment'](_0x3b9de9,_0x4da672,_0x4030d9,_0x41a752)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x3c51ec,threadId:_0x43fc04,commentId:_0x40677a})=>this['_getService'](_0x3c51ec)['removeComment'](_0x43fc04,_0x40677a)['catch'](X)['catch'](Z)},_0x2f6fd3 instanceof _0x1db326){const _0x1505f0=_0x2f6fd3['config']['get']('collaboration.channelId'),_0x28457f=_0x2f6fd3['plugins']['get'](Sessions);await this['_setUpService'](_0x1505f0);const _0x2ff3a5=await this['_services']['get'](_0x1505f0)['getConnectedSessions']();this['listenTo'](_0x28457f,'sessionAdd:'+_0x1505f0,(_0x4f8adc,{session:_0x39bd70})=>{_0x39bd70['id']===_0x28457f['mySessionId']&&(_0x4f8adc['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x39bd70['permissions'],_0x1505f0));}),_0x28457f['register'](_0x1505f0,_0x2ff3a5);}}async['_setUpService'](_0x3e7d0c){if(this['_services']['has'](_0x3e7d0c))throw new _0x10b4e1('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x3e7d0c});const _0x448ecd=this['context']['plugins']['get'](_0x5d9000),_0xeb0bb0=new CloudServicesCommentsAdapter['CommentsService'](_0x3e7d0c);this['_services']['set'](_0x3e7d0c,_0xeb0bb0),this['listenTo'](_0xeb0bb0,'commentThreadAdded',(_0x1fc936,_0x4ead19)=>{const {commentThreadId:_0x4af15f,documentId:_0x2c3f54,context:_0x384fb4,attributes:_0x54ddb0,resolvedAt:_0x18e2a5,resolvedBy:_0x41a9a2,comments:_0x4203a6}=_0x4ead19;_0x448ecd['getCommentThread'](_0x4af15f)||_0x448ecd['addCommentThread']({'threadId':_0x4af15f,'channelId':_0x2c3f54,'comments':_0x4203a6?_0x4203a6['map'](tt):[],'context':_0x384fb4,'attributes':_0x54ddb0,'resolvedAt':_0x18e2a5,'resolvedBy':_0x41a9a2,'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentThreadUpdated',(_0x2d9752,{commentThreadId:_0x619c59,documentId:_0x445fbd,context:_0x2259d2,unlinkedAt:_0x8f456d,attributes:_0x2b9b23})=>{_0x448ecd['getCommentThread'](_0x619c59)&&_0x448ecd['updateCommentThread']({'threadId':_0x619c59,'channelId':_0x445fbd,'context':_0x2259d2,'unlinkedAt':_0x8f456d,'attributes':_0x2b9b23,'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentThreadResolved',(_0x42bd50,{commentThreadId:_0xc1ff06,resolvedBy:_0x265f4b,resolvedAt:_0x2e69c5})=>{const _0x34aa05=_0x448ecd['getCommentThread'](_0xc1ff06);_0x34aa05&&_0x34aa05['resolve']({'resolvedBy':_0x265f4b,'resolvedAt':_0x2e69c5,'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentThreadReopened',(_0x3f1eb5,{commentThreadId:_0xfac516})=>{const _0x41d21c=_0x448ecd['getCommentThread'](_0xfac516);_0x41d21c&&_0x41d21c['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentThreadRemoved',(_0x2ce5db,{commentThreadId:_0x359275})=>{const _0x101605=_0x448ecd['getCommentThread'](_0x359275);_0x101605&&_0x101605['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentAdded',(_0xc4abe1,_0x586875)=>{const _0x4f8219=_0x586875['commentThreadId'],_0x544bfe=_0x448ecd['getCommentThread'](_0x4f8219);_0x544bfe&&_0x544bfe['addComment']({...tt(_0x586875),'isFromAdapter':!0x0});}),this['listenTo'](_0xeb0bb0,'commentUpdated',(_0x44d3f2,{commentThreadId:_0x7a94b3,commentId:_0xd99d13,content:_0x4033e4,attributes:_0x34f7ab})=>{const _0x11963d=_0x448ecd['getCommentThread'](_0x7a94b3);if(_0x11963d){const _0x28d5da=_0x11963d['getComment'](_0xd99d13);_0x28d5da&&_0x28d5da['update']({'content':_0x4033e4,'attributes':_0x34f7ab,'isFromAdapter':!0x0});}}),this['listenTo'](_0xeb0bb0,'commentRemoved',(_0x237623,{commentThreadId:_0x5c1dd8,commentId:_0x1a3705})=>{const _0x26d5d1=_0x448ecd['getCommentThread'](_0x5c1dd8);if(_0x26d5d1){const _0x1d553b=_0x26d5d1['getComment'](_0x1a3705);_0x1d553b&&_0x1d553b['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x3e7d0c);}['destroy'](){if(this['context']instanceof _0x1db326){const _0x85bb97=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x85bb97);}}['_terminateService'](_0x1d68fa){if(!this['_services']['has'](_0x1d68fa))throw new _0x10b4e1('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x1d68fa});this['_getService'](_0x1d68fa)['disconnect'](),this['_services']['delete'](_0x1d68fa);}async['reconnect'](){for(const _0x618cf4 of this['_services']['keys']())await this['_connectService'](_0x618cf4);if(this['context']instanceof _0x1db326){const _0x4be86a=this['context']['config']['get']('collaboration.channelId'),_0x7e9aad=this['context']['plugins']['get'](Sessions);_0x7e9aad['unregister'](_0x4be86a);const _0x4f5dd8=await this['_services']['get'](_0x4be86a)['getConnectedSessions']();_0x7e9aad['register'](_0x4be86a,_0x4f5dd8);}}async['_connectService'](_0x349362){const {connection:_0x2cd312}=this['context']['plugins']['get'](WebSocketGateway),_0x3f916f=this['context']['plugins']['get'](_0x5d9000),_0x3e696d=this['_services']['get'](_0x349362),_0xd27a16=await _0x3e696d['connect'](_0x2cd312);await this['_fetchMissingUsersForThreads'](_0xd27a16);const _0x218b2b=new Set(Array['from'](_0x3f916f['getCommentThreads']({'channelId':_0x349362}),_0x56b831=>_0x56b831['id']));for(const _0x550f46 of _0xd27a16)_0x550f46['deletedAt']||_0x218b2b['delete'](_0x550f46['commentThreadId']);for(const _0x1f873a of _0x218b2b)_0x3f916f['getCommentThread'](_0x1f873a)['remove']({'isFromAdapter':!0x0});for(const _0x5af7ef of _0xd27a16){let _0x5bba64=_0x3f916f['getCommentThread'](_0x5af7ef['commentThreadId']);const {commentThreadId:_0x78e8c0,context:_0x499217,attributes:_0x1da7f9,resolvedBy:_0xa4078a,resolvedAt:_0x1c2560,unlinkedAt:_0x4f3a3a,deletedAt:_0x4c8fbb}=_0x5af7ef;if(_0x4c8fbb)continue;_0x5bba64||(_0x5bba64=_0x3f916f['addCommentThread']({'channelId':_0x349362,'threadId':_0x78e8c0,'context':_0x499217,'attributes':_0x1da7f9||{},'resolvedBy':_0xa4078a,'resolvedAt':_0x1c2560,'unlinkedAt':_0x4f3a3a,'isFromAdapter':!0x0}));const _0x2b7978=new Set(Array['from'](_0x5bba64['comments'],_0x5c10f0=>_0x5c10f0['id']));for(const _0x6d53fc of _0x5af7ef['comments'])_0x2b7978['delete'](_0x6d53fc['commentId']);for(const _0x575d2c of _0x2b7978)_0x5bba64['getComment'](_0x575d2c)['remove']({'isFromAdapter':!0x0});for(const _0x62fa01 of _0x5af7ef['comments']){const _0x156dfb=_0x5bba64['getComment'](_0x62fa01['commentId']);_0x156dfb?_0x156dfb['content']!==_0x62fa01['content']&&_0x156dfb['update']({'content':_0x62fa01['content'],'isFromAdapter':!0x0}):_0x5bba64['addComment'](Object['assign'](tt(_0x62fa01),{'isFromAdapter':!0x0}));}}}['_getService'](_0x20097d){if(!this['_services']['has'](_0x20097d))throw new _0x10b4e1('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x20097d});return this['_services']['get'](_0x20097d);}async['_fetchMissingUsersForThreads'](_0x4fdfdc){const _0xd78920=this['context']['plugins']['get'](_0x531388),{connection:_0x39e582}=this['context']['plugins']['get'](WebSocketGateway),_0x8b96b7=new Set();for(const {resolvedBy:_0x19ee9e,comments:_0x57bd99}of _0x4fdfdc){_0x19ee9e&&!_0xd78920['getUser'](_0x19ee9e)&&_0x8b96b7['add'](_0x19ee9e);for(const {userId:_0x6d027b}of _0x57bd99)_0xd78920['getUser'](_0x6d027b)||_0x8b96b7['add'](_0x6d027b);}if(0x0===_0x8b96b7['size'])return;const _0x299278=await _0x544a92['getMany'](_0x39e582,Array['from'](_0x8b96b7));for(const _0x32d193 of _0x299278)_0xd78920['getUser'](_0x32d193['id'])||_0xd78920['addUser'](_0x32d193);}}async function X(_0x4c542c){if('404'!==_0x4c542c['code'])throw _0x4c542c;}function Z(_0x38e5c3){if((_0x34f57f=_0x38e5c3)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x34f57f['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x34f57f['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x34f57f;throw _0x38e5c3;}function tt(_0x3d0d22){return{'threadId':_0x3d0d22['commentThreadId'],'commentId':_0x3d0d22['commentId'],'content':_0x3d0d22['content'],'createdAt':_0x3d0d22['createdAt'],'authorId':_0x3d0d22['userId'],'attributes':_0x3d0d22['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x18e830{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
- ((()=>_0x743596)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x400485,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3b21f2){super(_0x3b21f2);const _0x5841a9=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x5841a9);}['init'](){const _0x523343=this['editor']['plugins']['get'](WebSocketGateway),_0x14c05a=this['editor']['plugins']['get'](_0x400485);return _0x14c05a['adapter']={'getSuggestion':async _0x2f56cd=>{await this['_waitForServiceReady']();const _0x3db97e=await this['_trackChangesService']['get'](_0x2f56cd)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x3db97e]),_0x3db97e;},'addSuggestion':async({id:_0x2bbf66,type:_0x5b5897,data:_0xdec7c5,originalSuggestionId:_0x3c45ee,attributes:_0x3ed3f9})=>{await this['_waitForServiceReady']();const _0x1bfdba={'id':_0x2bbf66,'type':_0x5b5897,'data':_0xdec7c5,'originalSuggestionId':_0x3c45ee,'attributes':_0x3ed3f9},_0x2b3b5f=await this['_trackChangesService']['add'](_0x2bbf66,_0x5b5897,_0xdec7c5,_0x3c45ee,_0x3ed3f9)['catch'](_0x9e1af7=>{if(st(_0x9e1af7))return new Promise(_0x50cda6=>{this['_bufferedRequests']['set'](_0x2bbf66,{'resolve':_0x50cda6,'suggestionData':_0x1bfdba});});throw _0x9e1af7;});return this['_bufferedRequests']['delete'](_0x2bbf66),_0x2b3b5f;},'updateSuggestion':async(_0x1d113f,_0x33ba69)=>{if(await this['_waitForServiceReady'](),'open'!==_0x33ba69['state'])return this['_trackChangesService']['update'](_0x1d113f,_0x33ba69)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x114400,_0x1a361a)=>{_0x14c05a['hasSuggestion'](_0x1a361a['id'])&&(_0x14c05a['getSuggestion'](_0x1a361a['id'])['attributes']=_0x1a361a['attributes']);}),this['_trackChangesService']['connect'](_0x523343['connection'])['then'](_0x49c754=>(_0x523343['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x49c754)['then'](()=>{for(const _0x2aca13 of _0x49c754){_0x14c05a['addSuggestionData'](_0x2aca13)['_saved']=!0x0;}})));}async['reconnect'](){const _0x1b75bd=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x184136}=this['editor']['plugins']['get'](WebSocketGateway),_0x5b47c1=await this['_trackChangesService']['connect'](_0x184136);await this['_fetchMissingUsersForThreads'](_0x5b47c1);for(const {suggestionData:_0x2cd127,resolve:_0x338046}of this['_bufferedRequests']['values']()){let _0x399049=_0x5b47c1['find'](_0x2fb3f4=>_0x2fb3f4['id']===_0x2cd127['id']);_0x399049||(_0x399049=await this['_trackChangesService']['add'](_0x2cd127['id'],_0x2cd127['type'],_0x2cd127['data'],_0x2cd127['originalSuggestionId'])),_0x338046(_0x399049);}for(const _0x53fd8c of _0x5b47c1)_0x1b75bd['hasSuggestion'](_0x53fd8c['id'])||_0x1b75bd['addSuggestionData'](_0x53fd8c);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x16971c=>{this['listenTo'](this['_trackChangesService'],'connected',_0x457bb8=>{_0x457bb8['off'](),_0x16971c();});});}async['_fetchMissingUsersForThreads'](_0x4b910e){const _0x4f58f4=this['editor']['plugins']['get'](_0x531388),{connection:_0x4b7f7f}=this['editor']['plugins']['get'](WebSocketGateway),_0x92ea4=new Set();for(const {authorId:_0x58849}of _0x4b910e)_0x4f58f4['getUser'](_0x58849)||_0x92ea4['add'](_0x58849);if(0x0===_0x92ea4['size'])return;const _0x5ea84e=await _0x544a92['getMany'](_0x4b7f7f,Array['from'](_0x92ea4));for(const _0x4597dc of _0x5ea84e)_0x4f58f4['getUser'](_0x4597dc['id'])||_0x4f58f4['addUser'](_0x4597dc);}}function et(_0x561c40){if(st(_0x561c40))return new Promise(()=>{});throw _0x561c40;}function st(_0x527137){return _0x527137['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x527137['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x18e830{static get['requires'](){return[_0x494d20,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x44301b=this['editor']['plugins']['get'](WebSocketGateway),_0x5545b4=this['editor']['plugins']['get'](_0x3be2c1),_0x44ddc5=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x44301b,'change:state',(_0x48f6ec,_0x15163a,_0x1d1bb0)=>{_0x5545b4['isThreadsLoadingPaused']='connected'!==_0x1d1bb0;});}),this['listenTo'](_0x44301b,'change:state',(_0x5da9a6,_0x9d0dcc,_0xce0343)=>{this['editor']['plugins']['get'](_0x5d9000)['switchReadOnly']('connected'!==_0xce0343);}),_0x44ddc5['_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 _0x18e830{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x250f30];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x18e830{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
- ((()=>_0x4a0099)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x43f978,Sessions,_0x531388];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3d3f42){super(_0x3d3f42);const _0x37c102=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x37c102);}async['init'](){const _0x4a1364=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x53a95c=_0x4a1364['serverHistory'],_0xbfb1d2=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x53a95c,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x4a1364['sessionId']});const _0x5808dc=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x51023f,_0x578e28=await _0x483c48['isBundleUploaded'](_0xbfb1d2['connection'],_0x5808dc);this['editor']['plugins']['get'](_0x43f978)['adapter']={'getRevision':async({revisionId:_0x303f32})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x303f32)),'updateRevisions':async _0x31d787=>{await this['_waitForServiceReady']();const _0x4e7017=this['_revisionTracker']['currentRevision'];if(_0x578e28&&0x1===_0x31d787['length']&&_0x31d787[0x0]['id']===_0x4e7017['id'])return _0x31d787;for(const _0x2d3c99 of _0x31d787)_0x2d3c99['id']===_0x4e7017['id']&&(_0x2d3c99['isEmptyCurrent']=_0x2d3c99['fromVersion']===_0x2d3c99['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x31d787,this['_lastRequestId'])['then'](_0x5c5de4=>(this['_lastRequestId']=_0x5c5de4,_0x31d787))['catch'](_0x265c49=>{if(it(_0x265c49)||'400'===_0x265c49['code']&&void 0x0!==_0x265c49['data']['wrongRequestId']){for(const _0x45e291 of _0x31d787){!this['_revisionTracker']['repository']['getRevision'](_0x45e291['id'])||this['_revisionTracker']['_bufferUpdate'](_0x45e291['id'],_0x45e291,!0x1);}if(it(_0x265c49)&&'destroyed'!==this['editor']['state'])throw _0x265c49;return _0x31d787;}throw _0x265c49;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x3b5aed,{revisionsData:_0x543ce3,requestId:_0x531c4e})=>{Math['max'](..._0x543ce3['map'](_0x128102=>_0x128102['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x543ce3,_0x531c4e);}):this['_handleRevisionsUpdate'](_0x543ce3,_0x531c4e);});const {revisions:_0x1ce387,requestId:_0x19af44}=await this['_revisionHistoryService']['connect'](_0xbfb1d2['connection']);_0xbfb1d2['addToReconnectionStack'](this),this['_lastRequestId']=_0x19af44,await this['_fetchMissingUsers'](_0x1ce387);for(const _0x1f9b7b of _0x1ce387)this['_revisionTracker']['addRevisionData'](_0x1f9b7b);this['listenTo'](_0x4a1364,'change:_isConnected',(_0x132447,_0x3697a0,_0x74da85)=>{_0x74da85&&(this['_oldOffset']=_0x4a1364['_offset'],_0x132447['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0xbfb1d2,'state',_0x1c9930=>_0x1c9930===_0x3c6eda['CONNECTED']);}async['reconnect'](){const _0x3ce8b4=this['editor']['plugins']['get'](WebSocketGateway),_0x38ec1d=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x350075=async()=>{const _0x38c0a2=this['_revisionTracker']['currentRevision'],_0x16ed8e=_0x38c0a2['id'],_0x1cad5b=_0x16ed8e!==_0x38ec1d['sessionId'];if(_0x1cad5b){const _0xf15354=_0x38ec1d['_offset']-this['_oldOffset'],_0x3472eb=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x38c0a2['toVersion']+_0xf15354!==_0x3472eb){const _0x478d61=_0x38c0a2['fromVersion']+_0xf15354,_0x815a90=this['editor']['plugins']['get'](_0x531388),_0xa32f3a=this['_revisionTracker']['buildRevisionData']({'revision':_0x38c0a2,'from':_0x478d61,'to':_0x3472eb});_0xa32f3a['id']=_0x38c0a2['id'];const _0x29bc9e=_0xa32f3a['authorsIds']['map'](_0x4913da=>_0x815a90['getUser'](_0x4913da));_0x38c0a2['_update']({..._0xa32f3a,'authors':_0x29bc9e},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x38c0a2['id'],_0xa32f3a,!0x0);}this['_revisionTracker']['_startingVersion']=_0x3472eb,(_0x38c0a2['toVersion']===_0x38c0a2['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x16ed8e)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x16ed8e),this['_revisionTracker']['_createCurrentRevision'](_0x3472eb));}const {revisions:_0xf7ef8f,requestId:_0x4732e3}=await this['_revisionHistoryService']['reconnect'](_0x3ce8b4['connection'],this['_lastRequestId']);_0x1cad5b&&_0xf7ef8f['length']>0x0?_0x38ec1d['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0xf7ef8f),this['_handleRevisionsUpdate'](_0xf7ef8f,_0x4732e3),this['_revisionTracker']['sendBufferedUpdates']());};return _0x38ec1d['_isConnected']?_0x350075():new Promise((_0x12a5c2,_0x48e6c1)=>{_0x38ec1d['once']('change:_isConnected',()=>{_0x350075()['then'](_0x12a5c2)['catch'](_0x48e6c1);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x3166fc=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x5d6285=>{_0x5d6285['off'](),_0x3166fc();});});}['_getLatestVersionFromServerOperations'](){const _0x5ade46=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x52969c of _0x5ade46)if('marker'!==_0x52969c['type']||_0x52969c['affectsData'])return _0x52969c['baseVersion']+0x1;}['_getLatestVersion'](){const _0xb9c4bf=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0xb14c9c=>{_0xb9c4bf['_isPendingUpdate']?_0xb9c4bf['once']('change:_isPendingUpdate',()=>{_0xb14c9c(this['_getLatestVersionFromServerOperations']());}):_0xb14c9c(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x1f1e50,_0x211d56){const _0x3f8a93=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x211d56;for(const _0x5ced0b of _0x1f1e50){const _0x4518c8=_0x3f8a93['getRevision'](_0x5ced0b['id']);if(_0x4518c8){if((_0x5ced0b['fromVersion']||_0x5ced0b['toVersion'])&&(_0x5ced0b['diffData']=null),_0x4518c8===this['_revisionTracker']['currentRevision']){const _0x387f47=Math['max'](_0x4518c8['toVersion'],_0x5ced0b['toVersion']),_0x3d6a36=Math['max'](_0x4518c8['fromVersion'],_0x5ced0b['fromVersion']);let _0x20b11e;_0x4518c8['toVersion']===_0x5ced0b['toVersion']&&_0x4518c8['fromVersion']===_0x5ced0b['fromVersion']?(_0x20b11e=!0x0,this['_preventResendingRevisionData'](_0x5ced0b)):_0x5ced0b['toVersion']===_0x387f47&&_0x5ced0b['fromVersion']===_0x3d6a36?_0x20b11e=!0x1:(_0x4518c8['toVersion']===_0x387f47&&_0x4518c8['fromVersion']===_0x3d6a36||this['_fixRevision']({'revision':_0x4518c8,'from':_0x3d6a36,'to':_0x387f47}),_0x20b11e=!0x0),_0x20b11e&&(delete _0x5ced0b['fromVersion'],delete _0x5ced0b['toVersion'],delete _0x5ced0b['diffData'],delete _0x5ced0b['createdAt'],delete _0x5ced0b['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x5ced0b),this['_preventResendingRevisionData'](_0x5ced0b);}else this['_revisionTracker']['addRevisionData'](_0x5ced0b);}const _0x53146b=_0x3f8a93['getRevisions']();_0x53146b['reverse']();for(let _0x26f8fe=0x0;_0x26f8fe<_0x53146b['length']-0x1;_0x26f8fe++){const _0x3d5dcb=_0x53146b[_0x26f8fe],_0x29da64=_0x53146b[_0x26f8fe+0x1];if(_0x3d5dcb['fromVersion']<_0x29da64['toVersion']){const _0x2ed919=_0x29da64['toVersion'],_0x2ec977=Math['max'](_0x2ed919,_0x3d5dcb['toVersion']);this['_fixRevision']({'revision':_0x3d5dcb,'from':_0x2ed919,'to':_0x2ec977});}}}['_fixRevision']({revision:_0x237333,from:_0x2a92a1,to:_0x304f1f}={}){const _0x115495=this['editor']['plugins']['get'](_0x531388),_0x461e6b=this['_revisionTracker']['buildRevisionData']({'revision':_0x237333,'from':_0x2a92a1,'to':_0x304f1f});_0x461e6b['authors']=_0x461e6b['authorsIds']['map'](_0x2d7522=>_0x115495['getUser'](_0x2d7522)),_0x237333['_update'](_0x461e6b);}['_preventResendingRevisionData'](_0x5d6b75){const _0x3a9dac={};_0x3a9dac['id']=_0x5d6b75['id'];for(const _0x374d47 of Object['keys'](_0x5d6b75))'id'!==_0x374d47&&(_0x3a9dac[_0x374d47]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x3a9dac['id'],_0x3a9dac,!0x0);}async['_fetchMissingUsers'](_0x3d8a2a){const _0x2aca8b=this['editor']['plugins']['get'](_0x531388),{connection:_0x339d9d}=this['editor']['plugins']['get'](WebSocketGateway),_0x29ff68=new Set();for(const _0x4e3625 of _0x3d8a2a){for(const _0x5098ec of _0x4e3625['authorsIds'])_0x4d32d9(_0x5098ec);_0x4e3625['creatorId']&&_0x4d32d9(_0x4e3625['creatorId']);}if(0x0===_0x29ff68['size'])return;const _0x106b2b=await _0x544a92['getMany'](_0x339d9d,Array['from'](_0x29ff68));for(const _0x1cb1a1 of _0x106b2b)_0x2aca8b['getUser'](_0x1cb1a1['id'])||_0x2aca8b['addUser'](_0x1cb1a1);function _0x4d32d9(_0x2ece74){_0x2aca8b['getUser'](_0x2ece74)||_0x29ff68['add'](_0x2ece74);}}}function it(_0xc67ef5){return _0xc67ef5['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0xc67ef5['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0xc67ef5['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x18e830{static get['requires'](){return[_0x43f978,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x4a5408{['_collapseAt'];constructor(_0xc1f1c1,_0x72d161=0x6){super(_0xc1f1c1);const _0x6eaeb8=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x72d161,this['bind']('isHidden')['to'](this,'usersCount',_0x42b05f=>_0x42b05f<_0x72d161),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x6eaeb8['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':_0x6eaeb8['to']('usersCount',_0x165a92=>'+'+(_0x165a92-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x4a5408{['items'];['keystrokes'];constructor(_0x50d85a){super(_0x50d85a);const _0x50fa4e=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x5cc69c(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x50fa4e['if']('hasPopup'),'aria-expanded':_0x50fa4e['to']('isExpanded',_0x4454f7=>this['hasPopup']&&String(_0x4454f7)),'aria-label':_0x50fa4e['to']('hasPopup',_0xa66f7c=>K(_0x50d85a,_0xa66f7c?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x50fa4e['to']('hasPopup',_0x3b5f3f=>!!_0x3b5f3f&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x50fa4e['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x50fa4e['to'](_0x3bd121=>{const _0x13998b=_0x3bd121,_0x3337c2=document['querySelector']('.ck-presence-list__dropdown-list'),_0x33874f=document['querySelector']('.ck-balloon-panel_with-arrow');_0x3337c2?.['contains'](_0x13998b['relatedTarget'])||_0x33874f?.['contains'](_0x13998b['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x43bfe8,_0x3fa9a3,_0x464c69)=>{this['element']&&(_0x464c69?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 _0x4a5408{['counterView'];['inlineListView'];constructor(_0x151d79,_0x983e7c=0x6){super(_0x151d79);const _0x4f56ad=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x983e7c),this['inlineListView']=new PresenceInlineListView(_0x151d79),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x288dd0 of this['inlineListView']['items'])_0x288dd0['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',_0x4f56ad['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x4a5408{['listWrapperView'];constructor(_0x14db03,_0x97bc72){super(_0x14db03);const _0x57e0d0=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x14db03,_0x97bc72),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x14db03,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x57e0d0['to'](_0x253570=>{const _0x7acf0d=_0x253570,_0x5a7acb=document['querySelector']('.ck-presence-list__list'),_0x13be0f=document['querySelector']('.ck-balloon-panel_with-arrow');_0x5a7acb?.['contains'](_0x7acf0d['relatedTarget'])||_0x13be0f?.['contains'](_0x7acf0d['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x4c2180{constructor(_0x21599f,_0x55c335){super(_0x21599f);const _0x31c5ca=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x55c335?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x31c5ca['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x31c5ca['to']('role'),'aria-label':_0x31c5ca['to']('ariaLabel'),'aria-labelledby':_0x31c5ca['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x17d194['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0xed085=this['element'];_0xed085&&(this['_isScrollable']=Math['max'](_0xed085['scrollHeight'],_0xed085['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x57caa1{['userView'];constructor(_0x12dbdb,_0x361225,_0x1dc6f9){super(_0x12dbdb);const _0x5eda21=this['bindTemplate'];this['userView']=new _0x6af10f(_0x12dbdb,_0x361225);const _0x175d92={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x361225['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x361225['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x361225['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x361225['color']['getColorVariable'](),'--ck-user-color-alpha':_0x361225['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x1dc6f9&&(_0x175d92['tag']='button',_0x175d92['on']={'click':_0x5eda21['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x175d92);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x4a5408{['userView'];['markerView'];constructor(_0x2fbfb1,_0x2b8bb5,_0x4bf6b3){super(_0x2fbfb1);const _0x3425c5=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x6af10f(_0x2fbfb1,_0x2b8bb5),this['markerView']=new MarkerView(_0x2fbfb1,_0x2b8bb5);const _0x5a826e=new _0x28a401(_0x2fbfb1);_0x5a826e['template']['tag']='span',_0x5a826e['text']=_0x2b8bb5['name'];const _0x1ce76c={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x3425c5['to']('isFocusable',_0x1e0528=>!!_0x1e0528&&0x0),'aria-labelledby':_0x5a826e['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x3425c5['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x3425c5['to']('hasTooltip',_0x4c60b1=>!_0x4c60b1),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x5a826e]};_0x4bf6b3&&(_0x1ce76c['tag']='button',_0x1ce76c['on']={'click':_0x3425c5['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1ce76c);}}class MarkerView extends _0x4a5408{constructor(_0x1b750e,_0x64a3d8){super(_0x1b750e),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x64a3d8['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x64a3d8['color']['getColorVariable'](),'--ck-user-color-alpha':_0x64a3d8['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x891fdc{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x7730ae){super(_0x7730ae),this['context']['config']['define']('presenceList',nt);const _0x4d12d1=_0x7730ae['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x4d12d1)throw new _0x10b4e1('presencelist-collapseat-invalid-format',this);if(_0x4d12d1<0x1)throw new _0x10b4e1('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x20fb3f(),this['balloonPanelView']=new _0x2a43c7(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x37a71b of this['_allConnectedUsers'])this['_handleUserAdd'](_0x37a71b);this['listenTo'](this['_allConnectedUsers'],'add',(_0x237b8f,_0x1f862d)=>{this['_handleUserAdd'](_0x1f862d);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x8fa8dc,_0x5e924b)=>{this['_handleUserRemove'](_0x5e924b);});}['_createView'](){const _0x2fd0e7=this['context'],_0x32e723=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x18d8a9=this['balloonPanelView'];if(!_0x594a36(_0x2fd0e7['config']['get']('presenceList.container')))throw new _0x10b4e1('presencelist-missing-container',this);return _0x32e723['counterView']['bind']('usersCount')['to'](this),_0x32e723['bind']('isCollapsed')['to'](this,'usersCount',_0x4fc745=>{const {collapseAt:_0x32a6bc}=_0x2fd0e7['config']['get']('presenceList'),_0x491457=_0x4fc745>=_0x32a6bc;if(_0x491457&&!_0x32e723['inlineListView']['items']['find'](_0x582993=>_0x582993 instanceof PresenceCounterView)){const _0x11bd61=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x11bd61&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x32e723['inlineListView']['items']['add'](_0x32e723['counterView']);}return _0x491457||this['hideDropdown'](),_0x491457;}),_0x32e723['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x16d1c8=>{const _0x40c8ee=_0x2fd0e7['config']['get']('presenceList'),_0x3b3a44=new PresenceInlineListItemView(_0x2fd0e7['locale'],_0x16d1c8,!!_0x40c8ee['onClick']);return _0x3b3a44['bind']('hasTooltip')['to'](_0x32e723,'isCollapsed',_0x8a583e=>!_0x8a583e),_0x3b3a44['bind']('isFocusable')['to'](_0x32e723,'isCollapsed',_0x10b8cd=>!_0x10b8cd),_0x40c8ee['onClick']&&this['listenTo'](_0x3b3a44,'execute',()=>{this['view']['isCollapsed']||_0x40c8ee['onClick'](_0x16d1c8,_0x3b3a44['element']);}),_0x3b3a44;}),this['listenTo'](_0x32e723['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x32e723['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x32e723['inlineListView']['keystrokes']['set']('Enter',(_0x8ceb86,_0x108218)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x108218());}),_0x32e723['render'](),_0x18d8a9['render'](),_0x154176({'emitter':_0x32e723,'activator':()=>_0x18d8a9['isVisible'],'contextElements':[_0x18d8a9['element'],_0x32e723['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x2fd0e7['config']['get']('presenceList.container')['appendChild'](_0x32e723['element']),this['_bodyCollection']=new _0x1c2f2b(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x32e723;}['_handleUserAdd'](_0x5347d7){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x5347d7['isMe'])return;const _0x6eba07=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x6eba07-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x1f02de=_0x5347d7['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x5347d7,_0x1f02de);}['_handleUserRemove'](_0x512aef){this['usersCount']--;const {collapseAt:_0x1b6bf2}=this['context']['config']['get']('presenceList'),_0x19e6b9=this['usersCount']>=_0x1b6bf2;if(this['currentDisplayedUsers']['get'](_0x512aef['id']))this['currentDisplayedUsers']['remove'](_0x512aef['id']);else{if(_0x19e6b9&&this['currentDisplayedUsers']['length']+0x1===_0x1b6bf2-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x19e6b9?0x1:0x0)<this['usersCount']){for(const _0xe19187 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0xe19187['id'])&&(this['currentDisplayedUsers']['add'](_0xe19187,Math['min'](this['currentDisplayedUsers']['length']-(_0x19e6b9?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x19e6b9?0x1:0x0)===_0x1b6bf2-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x1cce0c=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x1cce0c['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x39f6da}=this['presenceDropdownView'];_0x39f6da['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x5810a5=>{if(!_0x1cce0c['displayMe']&&_0x5810a5['isMe'])return null;const _0x32881a=new PresenceDropdownListItemView(this['context']['locale'],_0x5810a5,!!_0x1cce0c['onClick']);return _0x1cce0c['onClick']&&this['listenTo'](_0x32881a,'execute',()=>{_0x1cce0c['onClick'](_0x5810a5,_0x32881a['element']);}),_0x32881a;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x39f6da['focus'](),_0x39f6da['checkIfScrollable']();const _0x275158=(_0x4488b6,_0x259eb3)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x259eb3();};_0x39f6da['keystrokes']['set']('Esc',_0x275158),_0x39f6da['keystrokes']['set']('Shift+Tab',_0x275158),_0x39f6da['keystrokes']['set']('Tab',(_0x3d3e84,_0x1da97c)=>{!function(_0x57566c){const _0x3cd900=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x3e4384=>_0x3e4384+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x3aa1bf=[...document['body']['querySelectorAll'](_0x3cd900)]['filter'](_0x20c23c=>_0x20c23c===document['activeElement']||_0x20c23c['offsetWidth']+_0x20c23c['offsetHeight']>0x0)['sort']((_0x1368d6,_0x3619f9)=>(_0x1368d6['tabIndex']||0x0)-(_0x3619f9['tabIndex']||0x0)),_0x5848f8=_0x3aa1bf['indexOf'](_0x57566c),_0x428b53=_0x3aa1bf[(_0x5848f8+0x1)%_0x3aa1bf['length']];_0x428b53&&_0x428b53['focus']();}(this['view']['element']),this['hideDropdown'](),_0x1da97c();}),_0x39f6da['focusTracker']['add'](this['view']['element']),_0x39f6da['focusTracker']['on']('change:isFocused',(_0x3c8b61,_0x2afe35,_0x4d5db7)=>{_0x4d5db7||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 _0x891fdc{static get['requires'](){return[Sessions,PresenceListUI];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}export{CloudServicesCommentsAdapter,CloudServicesRevisionHistoryAdapter,CloudServicesTrackChangesAdapter,PresenceList,PresenceListUI,RealTimeCollaborationClient,RealTimeCollaborativeComments,RealTimeCollaborativeEditing,RealTimeCollaborativeRevisionHistory,RealTimeCollaborativeTrackChanges,Sessions,WebSocketGateway};
23
+ import{ContextPlugin as _0x1ab0c4,Plugin as _0xa8b5d6,PendingActions as _0x3c80a1,Context as _0xada907}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x5e26f0,CKEditorError as _0x71eab6,Collection as _0x3fb7b9,global as _0x47d9e9,version as _0x858cb6,uid as _0x1b2b49,KeystrokeHandler as _0x2a5d42}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x13581e,View as _0xf9dd42,ListView as _0x24c869,ListItemView as _0x58b41f,LabelView as _0x1c8043,BalloonPanelView as _0x6ecd60,clickOutsideHandler as _0xe0e90e,BodyCollection as _0x5691eb}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x475f72,History as _0xffd32b,NoOperation as _0x391ddc,InsertOperation as _0x51e5d9,MarkerOperation as _0x4d1aba,RootAttributeOperation as _0x42715b,transformOperationSets as _0x241ccf,OperationFactory as _0x1ea6fa}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x36caf0}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x1cd472,WEB_SOCKET_GATEWAY_STATES as _0x4b45bf,CollaborativeEditingService as _0x1bc08e,User as _0x4e51b9,CommentsService as _0x5ec125,TrackChangesService as _0x270adf,RevisionHistoryService as _0xa09a6c,EditorService as _0x29a061}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x39f5d8,UserView as _0x2fc51c}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x5edac}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x4a4f9b,TrackChanges as _0x19261}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0xb43395,Comments as _0x14dbd7,CommentsEditing as _0xfce3b8}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x312c1b}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x412e30}from'es-toolkit/compat';class WebSocketGateway extends _0x1ab0c4{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
+ ((()=>_0x1cd472)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x36caf0,_0x13581e];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x4234ed){super(_0x4234ed),this['set']('state',_0x4b45bf['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x5e26f0())();}['init'](){const _0x2dae58=this['context'],_0x6ae009=_0x2dae58['plugins']['get'](_0x36caf0),_0x590028=_0x2dae58['plugins']['get'](_0x13581e);if(!_0x6ae009['token'])throw new _0x71eab6('websocketgateway-missing-token',this);if(!_0x6ae009['webSocketUrl'])throw new _0x71eab6('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'](_0x6ae009['token'],_0x6ae009['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x960d2b=>{if(this['connection']=_0x960d2b,this['bind']('state')['to'](_0x960d2b,'state',this,'_isBrowserOffline',(_0x4d86d2,_0x30d33e)=>('connected'!==_0x4d86d2&&(this['_shouldPluginsReconnect']=!0x0),_0x30d33e||_0x4d86d2!==_0x4b45bf['CONNECTED']?_0x4b45bf['DISCONNECTED']:this['state']==_0x4b45bf['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x4b45bf['CONNECTING']):_0x4b45bf['CONNECTED'])),this['connection']['on']('error',(_0x2bc765,_0x178de5)=>{if('limitExceeded'!==_0x178de5['code'])throw console['error'](_0x178de5),new _0x71eab6('cloudservices-init',null,{'originalError':_0x178de5});_0x590028['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'});}),!_0x960d2b['me'])return new Promise(_0x8ed3c9=>_0x960d2b['on']('change:me',_0x8ed3c9));})['catch'](_0x42b9a9=>{throw console['error'](_0x42b9a9),new _0x71eab6('cloudservices-init',null,{'originalError':_0x42b9a9});});}['addToReconnectionStack'](_0x59631b){if('function'!=typeof _0x59631b['reconnect'])throw new _0x71eab6('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x59631b))throw new _0x71eab6('websocketgateway-plugin-already-registered',this,{'name':_0x59631b['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x59631b);}['removeFromReconnectionStack'](_0x181d5a){this['_reconnectionStack']['delete'](_0x181d5a);}['isInReconnectionStack'](_0x31a7b3){return this['_reconnectionStack']['has'](_0x31a7b3);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x23379f=>_0x23379f['reconnect']())))['then'](()=>this['state']=_0x4b45bf['CONNECTED'])['catch'](_0x1eb09f=>{throw console['error'](_0x1eb09f),new _0x71eab6('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x4b45bf['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x1ab0c4{['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,_0x39f5d8];}constructor(_0x1c852c){super(_0x1c852c),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x3fb7b9(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x39f5d8);}['init'](){const _0x21b5e2=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x21b5e2,'change:state',(_0x5ebed2,_0x47ce86,_0x399f4e)=>{if('connected'!==_0x399f4e)this['channelSessions']['forEach'](_0x1778f9=>_0x1778f9['clear']()),this['channelConnectedUsers']['forEach'](_0x53f865=>_0x53f865['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x3d810c,_0x2eb7a1]of this['_registeredSessions'])for(const _0x1019a3 of _0x2eb7a1)this['_handleSessionAdd'](_0x3d810c,_0x1019a3);}}),this['_createUser'](_0x21b5e2['connection']['me'],!0x0);}['register'](_0x50a0c4,_0x16be3c){if(this['_registeredSessions']['has'](_0x50a0c4))throw new _0x71eab6('sessions-register-already-registered',null,{'channelId':_0x50a0c4});this['_registeredSessions']['set'](_0x50a0c4,_0x16be3c),this['channelSessions']['set'](_0x50a0c4,new _0x3fb7b9()),this['channelConnectedUsers']['set'](_0x50a0c4,new _0x3fb7b9()),this['listenTo'](_0x16be3c,'add',(_0x3f73e3,_0x32cb0a)=>this['_handleSessionAdd'](_0x50a0c4,_0x32cb0a)),this['listenTo'](_0x16be3c,'remove',(_0xd07e61,_0x4bae18)=>this['_handleSessionRemove'](_0x50a0c4,_0x4bae18));for(const _0xeb6ec1 of _0x16be3c)this['_handleSessionAdd'](_0x50a0c4,_0xeb6ec1);}['unregister'](_0x349ea4){if(!this['_registeredSessions']['has'](_0x349ea4))throw new _0x71eab6('sessions-unregister-not-exist',null,{'channelId':_0x349ea4});const _0x12c2d7=this['_registeredSessions']['get'](_0x349ea4);this['stopListening'](_0x12c2d7);for(const _0x38b9f5 of _0x12c2d7)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x349ea4,_0x38b9f5);this['_registeredSessions']['delete'](_0x349ea4),this['channelSessions']['delete'](_0x349ea4),this['channelConnectedUsers']['delete'](_0x349ea4);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x4d865b){for(const _0x2c4eec of this['channelSessions']['values']())for(const _0x1ede2d of _0x2c4eec)if(_0x1ede2d['id']===_0x4d865b)return _0x1ede2d['user'];}['getUserSessions'](_0x2cc7d4,_0x5658a0){const _0x38f5e7=_0x5658a0?[this['channelSessions']['get'](_0x5658a0)]:this['channelSessions']['values'](),_0x3044fe=new Set();for(const _0x4a2b25 of _0x38f5e7)for(const _0x3f7cbd of _0x4a2b25)_0x3f7cbd['user']['id']===_0x2cc7d4['id']&&_0x3044fe['add'](_0x3f7cbd['id']);return _0x3044fe;}['getUserRole'](_0x6ece86){for(const _0x4aba1a of this['channelSessions']['values']())for(const _0xc4a633 of _0x4aba1a)if(_0xc4a633['user']===_0x6ece86)return _0xc4a633['role'];}['_handleSessionAdd'](_0x305d84,_0xb2392d){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x19e40f=_0xb2392d['user'],_0x2b0284=this['_users']['getUser'](_0x19e40f['id'])||this['_createUser'](_0x19e40f),_0x4a1ead=Object['assign']({},_0xb2392d,{'user':_0x2b0284});if(this['channelSessions']['get'](_0x305d84)['add'](_0x4a1ead),!_0x19e40f['hiddenInPresenceList']){const _0x1504ab=this['channelConnectedUsers']['get'](_0x305d84);_0x1504ab['has'](_0x2b0284['id'])||_0x1504ab['add'](_0x2b0284),this['allConnectedUsers']['has'](_0x2b0284['id'])||_0x19e40f['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x2b0284,_0x2b0284['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x305d84,{'channelId':_0x305d84,'session':_0x4a1ead});}['_handleSessionRemove'](_0x21e9ce,_0x5178cc){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x43a065=this['channelConnectedUsers']['get'](_0x21e9ce),_0x58e77d=_0x5178cc['user'];_0x58e77d['id']&&(this['channelSessions']['get'](_0x21e9ce)['remove'](_0x5178cc['id']),_0x43a065['has'](_0x58e77d['id'])&&!this['getUserSessions'](_0x58e77d,_0x21e9ce)['size']&&_0x43a065['remove'](_0x58e77d['id']),this['allConnectedUsers']['get'](_0x58e77d['id'])&&!this['getUserSessions'](_0x58e77d)['size']&&this['allConnectedUsers']['remove'](_0x58e77d['id']));}['_createUser'](_0x2869c3,_0x2dc8ac){const _0x43371f=this['_users']['addUser'](_0x2869c3);return _0x2dc8ac&&this['_users']['defineMe'](_0x2869c3['id']),_0x43371f['orderNumber']=this['_uniqueUsersCount']++,_0x43371f;}}class UserMarkers extends _0xa8b5d6{['_domEmitter']=new(_0x5e26f0())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x16ed3e=this['editor'],_0x127505=_0x16ed3e['plugins']['get'](Sessions);_0x16ed3e['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x21217c,{writer:_0x8e724e})=>function(_0x10d8e1,_0x2c6728,_0x25b22a,_0x31fc85){const _0x177f01=_0x10d8e1['markerName']['split'](':')[0x2],_0x14406b=_0x25b22a['getUserBySessionId'](_0x177f01);if(!_0x14406b||_0x177f01===_0x25b22a['mySessionId'])return;if(!_0x31fc85['model']['schema']['checkChild'](_0x10d8e1['markerRange']['start'],'$text'))return;const _0x8ec8c2={'class':'ck-user__marker\x20'+_0x14406b['color']['getMarkerClass'](),'style':Y(_0x14406b),'data-name':_0x14406b['name'],'data-session-id':_0x177f01},_0x2a9e6f=_0x31fc85['model']['markers']['get'](_0x10d8e1['markerName']),_0x418c32=_0x2a9e6f['getStart'](),_0xf2b59=_0x418c32['nodeAfter'],_0x4bfad1=_0x31fc85['model']['schema'];if(_0xf2b59&&_0x4bfad1['isObject'](_0xf2b59)&&_0x4bfad1['isInline'](_0xf2b59)&&!_0x31fc85['model']['markers']['get']('user:range:'+_0x177f01)['getRange']()['isCollapsed'])return;const _0x5c9e9e=_0x418c32['parent'];return _0x31fc85['model']['schema']['isLimit'](_0x5c9e9e)&&!_0x31fc85['model']['hasContent'](_0x5c9e9e)&&(_0x8ec8c2['contenteditable']=!0x1),function(_0x29f6e2,_0x55a537,_0x1c4507){const _0x2079f6=_0x29f6e2['createUIElement']('span',_0x55a537);return _0x29f6e2['setCustomProperty']('userPositionMarker',!0x0,_0x2079f6),_0x2079f6['render']=function(_0x1f2d27){const _0x5d7055=this['toDomElement'](_0x1f2d27),_0xb34d0=document['createElement']('span');return _0xb34d0['classList']['add']('ck-user__marker-tooltip'),_0xb34d0['setAttribute']('contenteditable','false'),_0xb34d0['setAttribute']('spellcheck','false'),_0xb34d0['textContent']=_0x1c4507['name'],_0x5d7055['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0xb34d0['outerHTML']+'⁠',_0x5d7055['addEventListener']('mouseenter',()=>{_0x5d7055['classList']['add']('ck-user__marker_hovered');}),_0x5d7055['addEventListener']('mouseleave',()=>{_0x5d7055['classList']['remove']('ck-user__marker_hovered');}),_0x5d7055;},_0x2079f6['isSimilar']=function(_0x221599){return!(!this['getCustomProperty']('userPositionMarker')||!_0x221599['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x221599['getAttribute']('data-session-id'));},_0x2079f6;}(_0x2c6728,_0x8ec8c2,_0x14406b);}(_0x21217c,_0x8e724e,_0x127505,_0x16ed3e)}),_0x16ed3e['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x390603=>function(_0x3a24a1,_0x28aff7){const _0x51fe2b=_0x3a24a1['markerName']['split'](':')[0x2];if(_0x51fe2b===_0x28aff7['mySessionId'])return null;const _0x55d1d0=_0x28aff7['getUserBySessionId'](_0x51fe2b);if(!_0x55d1d0)return{'id':_0x51fe2b,'classes':[]};return{'id':_0x51fe2b,'classes':['ck-user__selection',_0x55d1d0['color']['getSelectionClass']()],'attributes':{'style':Y(_0x55d1d0),'data-session-id':_0x51fe2b},'priority':0x7d0+_0x55d1d0['orderNumber']};}(_0x390603,_0x127505)}),function(_0x226219){const _0x59dba1=_0x226219['model'],_0x5c2a0b=new Map(),_0x9f6472=_0x226219['plugins']['get'](Sessions);_0x59dba1['markers']['on']('update:user:range',(_0x55bb32,_0x1e409b,_0x4c412d,_0x55363f)=>{if(!_0x55363f&&_0x5c2a0b['get'](_0x1e409b['name']))return _0x5c2a0b['get'](_0x1e409b['name'])['detach'](),void _0x5c2a0b['delete'](_0x1e409b['name']);const _0x43bff6=_0x1e409b['name']['split'](':')[0x2];if(_0x43bff6===_0x9f6472['mySessionId'])return;const _0x17d555='user:position:'+_0x43bff6;_0x59dba1['markers']['has'](_0x17d555)&&_0x226219['editing']['reconvertMarker'](_0x17d555),_0x1e409b['on']('change:range',(_0x5e3699,_0x5599f1,_0x2622e5)=>{if('$graveyard'!=_0x5599f1['root']['rootName']&&'$graveyard'==_0x1e409b['getRange']()['root']['rootName']&&!_0x5c2a0b['has'](_0x1e409b['name'])){const _0x62db56=_0x59dba1['schema']['getNearestSelectionRange'](_0x2622e5['deletionPosition']);if(_0x62db56){const _0x1129e7=_0x475f72['fromRange'](_0x62db56);_0x5c2a0b['set'](_0x1e409b['name'],_0x1129e7),_0x1129e7['on']('change:range',(_0x5bbf83,_0x3cb74e,_0x1e1b4f)=>{if('$graveyard'==_0x1129e7['root']['rootName']){const _0x2f218e=_0x59dba1['schema']['getNearestSelectionRange'](_0x1e1b4f['deletionPosition']);_0x2f218e?(_0x1129e7['start']=_0x2f218e['start'],_0x1129e7['end']=_0x2f218e['end']):(_0x5c2a0b['delete'](_0x1e409b['name']),_0x1129e7['detach']());}});}}});}),_0x59dba1['document']['on']('change',()=>{_0x5c2a0b['size']>0x0&&_0x59dba1['enqueueChange']({'isUndoable':!0x1},_0x3d65cb=>{for(const [_0x5e47ed,_0x1f7fce]of _0x5c2a0b)'$graveyard'==_0x59dba1['markers']['get'](_0x5e47ed)['getRange']()['root']['rootName']&&(z(_0x5e47ed['split'](':')[0x2],_0x1f7fce['toRange'](),_0x59dba1,_0x3d65cb),_0x1f7fce['detach']());_0x5c2a0b['clear']();});});}(_0x16ed3e),this['_domEmitter']['listenTo'](_0x47d9e9['document'],'keydown',(_0x5b4f40,{key:_0x2b9d0e})=>{'Escape'===_0x2b9d0e&&function(_0x503226){_0x503226['editing']['view']['change'](_0x2c2f66=>{for(const _0x2abf8b of _0x503226['model']['markers']){if(!_0x2abf8b['name']['startsWith']('user:position'))continue;const _0x3e4057=_0x503226['editing']['mapper']['markerNameToElements'](_0x2abf8b['name']);if(_0x3e4057){for(const _0x213d70 of _0x3e4057)_0x2c2f66['removeClass']('ck-user__marker_hovered',_0x213d70);}}});}(_0x16ed3e);},{'useCapture':!0x0});}['afterInit'](){const _0x6f9e2b=this['editor'],_0x43c4c4=_0x6f9e2b['commands']['get']('undo');_0x43c4c4&&_0x6f9e2b['model']['on']('applyOperation',(_0x33b166,_0x531cb5)=>{const _0xd48a66=_0x531cb5[0x0];if(!_0xd48a66['isDocumentOperation'])return;if('marker'!=_0xd48a66['type']||!_0xd48a66['name']['startsWith']('user:'))return;const _0x50c0e2=_0xd48a66['batch'];_0x43c4c4['_createdBatches']['has'](_0x50c0e2)&&(_0xd48a66['newRange']=_0xd48a66['oldRange']?_0x6f9e2b['model']['createRange'](_0xd48a66['oldRange']['start'],_0xd48a66['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x2cb82b=this['editor'],_0x5c5b69=_0x2cb82b['model']['document'],_0x153d18=_0x2cb82b['plugins']['get'](Sessions);_0x2cb82b['model']['enqueueChange']({'isUndoable':!0x1},_0x3c25c9=>{const _0x25608a='user:range:'+_0x153d18['mySessionId'],_0x4291ac='user:position:'+_0x153d18['mySessionId'],_0x2039e8=_0x2cb82b['model']['markers']['has'](_0x25608a);_0x2cb82b['editing']['view']['hasDomSelection']?z(_0x153d18['mySessionId'],_0x5c5b69['selection']['getFirstRange'](),_0x2cb82b['model'],_0x3c25c9):_0x2039e8&&(_0x3c25c9['removeMarker'](_0x25608a),_0x3c25c9['removeMarker'](_0x4291ac));});}}function z(_0x229afe,_0x51108a,_0x4288b5,_0x597bc1){const _0xc4d587='user:range:'+_0x229afe,_0x5d4cb0='user:position:'+_0x229afe,_0x4a3bdf=_0x51108a['getContainedElement']();let _0x1d3e6e=_0x51108a['start'];if(_0x4a3bdf&&_0x4a3bdf['is']('element','tableCell')){const _0x1d2a03=function(_0x1a6381,_0x4e093f){for(const _0x4c03fd of _0x1a6381['getPositions']())if(_0x4e093f['schema']['checkChild'](_0x4c03fd,'$text'))return _0x4c03fd;}(_0x51108a,_0x4288b5);_0x1d2a03&&(_0x1d3e6e=_0x1d2a03,_0x51108a=_0x597bc1['createRange'](_0x1d3e6e));}const _0x167a39=_0x597bc1['createRange'](_0x1d3e6e);_0x4288b5['markers']['has'](_0xc4d587)?(_0x597bc1['updateMarker'](_0xc4d587,{'range':_0x51108a}),_0x597bc1['updateMarker'](_0x5d4cb0,{'range':_0x167a39})):(_0x597bc1['addMarker'](_0xc4d587,{'range':_0x51108a,'usingOperation':!0x0}),_0x597bc1['addMarker'](_0x5d4cb0,{'range':_0x167a39,'usingOperation':!0x0}));}function Y(_0xaee37b){return'--ck-user-color:'+_0xaee37b['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0xaee37b['color']['getColorAlphaVariable']()+';';}function K(_0x11a4df,_0x2ac652,_0x58e9a8){const _0x879dd4=_0x11a4df['t'],t=_0x11a4df['t'];switch(_0x2ac652){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 _0x879dd4({'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'},_0x58e9a8);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0xa8b5d6{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
+ ((()=>_0x1bc08e)());['_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,_0x3c80a1,_0x39f5d8,_0x13581e];}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 _0x2d6b8e=this['serverHistory']['getOperations']();for(let _0x3712a8=_0x2d6b8e['length']-0x1;_0x3712a8>=0x0;_0x3712a8--){const _0x4601d0=_0x2d6b8e[_0x3712a8];if(!this['_disconnectionOperations']['has'](_0x4601d0))return _0x4601d0['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x3163ab){if(super(_0x3163ab),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0xffd32b(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x71eab6('collaboration-missing-channelid',this);const _0x175ea8=_0x3163ab['config']['get']('cloudServices.bundleVersion')||_0x858cb6;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x175ea8,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x5edac(),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 _0x581e94=this['editor'],_0x564ac7=_0x581e94['plugins']['get'](_0x39f5d8),_0x241531=_0x581e94['plugins']['get'](WebSocketGateway);this['listenTo'](_0x564ac7,'getOperationAuthor',(_0x310355,_0x2f68ce)=>{const _0x3a2020=_0x2f68ce[0x0];_0x3a2020['_authorId']&&(_0x310355['return']=_0x564ac7['getUser'](_0x3a2020['_authorId']),_0x310355['stop']()),null===_0x3a2020['_authorId']&&(_0x310355['return']=null,_0x310355['stop']());},{'priority':'high'}),this['listenTo'](_0x581e94['model']['document']['selection'],'change:range',(_0x56403a,_0x3e8f5d)=>{_0x3e8f5d['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x581e94['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x581e94['model']['on']('applyOperation',(_0x18151d,_0x2dfe40)=>{const _0x4cf924=_0x2dfe40[0x0];_0x4cf924['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x4cf924),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x241531,'state',this,'_hasSynchronizationProblem',(_0x1f3795,_0x1e0813)=>'connected'===_0x1f3795&&!_0x1e0813),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x581e94['disableReadOnlyMode']('rtc-offline'):_0x581e94['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x581e94['disableReadOnlyMode']('rtc-offline'):_0x581e94['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x97d22d=this['editor']['plugins']['get'](Sessions),_0x12a442=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x97d22d['unregister'](this['_channelId']);const _0x433298=await this['_service']['reconnect'](_0x12a442['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x433298)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0xfd0d2f=await this['_service']['getConnectedSessions']();_0x97d22d['register'](this['_channelId'],_0xfd0d2f),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x1a0bcd){if(function(_0xa21057){return'404'===_0xa21057['code'];}(_0x1a0bcd)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x1b6865){return'409'===_0x1b6865['code'];}(_0x1a0bcd)){const _0x103f3f=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'](_0x103f3f);}else{if(!(_0x1a0bcd instanceof ReconnectionError))throw _0x1a0bcd;this['_handleReconnectionError']();}}}}['destroy'](){const _0xbe6f0c=this['editor']['plugins']['get'](WebSocketGateway),_0x404437=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x404437['channelSessions']['has'](this['_channelId'])&&_0x404437['unregister'](this['_channelId']),_0xbe6f0c['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x2a4fa3){if(this['sessionId']!==_0x2a4fa3['sessionId']&&this['_lastSyncedOperationId']!==_0x2a4fa3['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x2a4fa3['sessionId'],this['_handleServerResponse']([],{..._0x2a4fa3,'wereChangesApplied':!0x1,'data':_0x2a4fa3['data']},'reconnect');}async['_connectService'](_0x468b7b,_0x569a1e=!0x1){const {connection:_0x3b7aaf}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x3b7aaf,this['_channelId'])['then'](_0x103ca1=>this['_initSessionsHandling'](_0x103ca1))['catch'](_0x51b549=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x51b549);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x2306fd,_0x5d8263)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x5d8263);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x3b0fbb=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x468b7b);this['_isPendingUpdate']=!0x0;const _0x81de04=await this['_service']['connect'](_0x3b7aaf,this['_compressOperations'](_0x468b7b),_0x3b0fbb);if(this['sessionId']=_0x81de04['sessionId'],_0x569a1e){if(!_0x81de04['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x81de04['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x468b7b,_0x81de04,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x81de04,_0x468b7b);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x228071=this['editor']['plugins']['get'](Sessions),_0x408787=this['editor']['plugins']['get'](UserMarkers),_0xe9dd57=_0x228071['channelSessions']['get'](this['_channelId']);_0xe9dd57&&_0xe9dd57['length']>0x1?_0x408787['createUserMarkerOperations']():this['listenTo'](_0x228071,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x228071['channelSessions']['get'](this['_channelId'])['length']&&_0x408787['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x3a9955,_0x1ddc05,_0x1ecf25,_0xa66563){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x1ddc05){const _0x490f64=this['_decompressOperations'](_0x1ecf25,_0xa66563);await this['_fetchMissingUsers'](_0x490f64),this['_handleExternalOperations'](_0x490f64,_0x1ddc05,_0x1ecf25['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x8a6d48}=this['editor'];let _0x555216;try{_0x555216=await this['_service']['getDocumentDetails']();}catch{const _0x3df823=K(_0x8a6d48,'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'](_0x3df823);}const _0x504348=_0x555216['currentDocumentSession']||_0x555216['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x504348['lastOperationId']){const _0x5a3d24=K(_0x8a6d48,'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'](_0x5a3d24);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x58f921){const _0x547fee=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x547fee,'sessionAdd:'+this['_channelId'],(_0x4a8e21,{session:_0x499d0c})=>{if(_0x499d0c['id']===_0x547fee['mySessionId']){_0x4a8e21['off']();const _0x447816=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x3c40a3=_0x499d0c['permissions'];_0x447816&&_0x447816['isEnabled']&&(_0x3c40a3=_0x3c40a3['filter'](_0x3bc323=>'document:write'!==_0x3bc323)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x3c40a3,this['_channelId']);}}),_0x547fee['register'](this['_channelId'],_0x58f921);}['_initThrowingOnDataSet'](){const _0x29254f=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x4bc7a8)=>{if(!_0x4bc7a8[_0x4bc7a8['length']-0x1]['suppressErrorInCollaboration'])throw new _0x71eab6('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x29254f['apply'](this['editor']['data'],_0x4bc7a8);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x2336ae,[_0x777f76])=>{if(this['_document']['version'])throw new _0x71eab6('realtimecollaborationclient-init-document-already-initialized',this);_0x2336ae['stop'](),this['_setPendingAction']();const _0x449f6d=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x2e5bf1])=>!_0x2e5bf1['lazyLoad'])['map'](([_0x1a21b9,_0x4174eb])=>[_0x1a21b9,_0x4174eb['modelAttributes']||{}])),_0xba612a=this['_getOperationsFromInitData'](_0x777f76,_0x449f6d);0x0==_0xba612a['length']&&_0xba612a['push'](new _0x391ddc(0x0)),_0x2336ae['return']=this['_connectService'](_0xba612a)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x31b2e5=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x31b2e5))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0xb847e8,[_0x2f2cf5,_0x217521])=>{_0xb847e8['stop']();const _0x3a95cb=this['editor']['model']['document']['getRoot'](_0x2f2cf5);if(!this['_knownRootNames']['has'](_0x2f2cf5)){const _0x28f3cc=_0x217521&&_0x217521['data']?_0x217521['data']:'',_0x1c2226=_0x217521&&_0x217521['attributes']?_0x217521['attributes']:{};await this['_loadRoot'](_0x2f2cf5,_0x28f3cc,_0x1c2226);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x3a95cb['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x3a95cb);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x5cc6a9){const _0x41bef8=this['editor']['plugins']['get'](_0x39f5d8),{connection:_0x473ee4}=this['editor']['plugins']['get'](WebSocketGateway),_0xf006c7=new Set();for(const _0x3fac27 of _0x5cc6a9){const _0x1c516c=_0x3fac27['_authorId'];_0x1c516c&&!_0x41bef8['getUser'](_0x1c516c)&&_0xf006c7['add'](_0x1c516c);}if(0x0===_0xf006c7['size'])return;const _0x7138d4=await _0x4e51b9['getMany'](_0x473ee4,Array['from'](_0xf006c7));for(const _0x383280 of _0x7138d4)_0x41bef8['getUser'](_0x383280['id'])||_0x41bef8['addUser'](_0x383280);}['_getOperationsFromInitData'](_0x32b845,_0x508494={}){const _0x3ad73d=this['editor']['model'],_0x196ba7=[];let _0x1f094c=0x0;const _0x486d3c='string'==typeof _0x32b845?{'main':_0x32b845}:_0x32b845;for(const _0x333834 of Object['keys'](_0x486d3c)){if(!this['_document']['roots']['has'](_0x333834))throw new _0x71eab6('realtimecollaborationclient-init-non-existent-root',this);const _0x397758=this['_document']['getRoot'](_0x333834),_0x29a77f=this['editor']['data']['parse'](_0x486d3c[_0x333834],_0x397758),_0x2e694d=new _0x51e5d9(_0x3ad73d['createPositionAt'](_0x397758,0x0),_0x29a77f,_0x1f094c++);_0x196ba7['push'](_0x2e694d);for(const [_0x54bf28,_0x295985]of _0x29a77f['markers']){const _0x34707c=_0x3ad73d['createRange'](_0x3ad73d['createPositionFromPath'](_0x397758,_0x295985['start']['path']['slice']()),_0x3ad73d['createPositionFromPath'](_0x397758,_0x295985['end']['path']['slice']())),_0x164f5c=new _0x4d1aba(_0x54bf28,null,_0x34707c,_0x3ad73d['markers'],!0x0,_0x1f094c++);_0x196ba7['push'](_0x164f5c);}}if(_0x508494)for(const [_0x2ea127,_0x2d8276]of Object['entries'](_0x508494)){const _0x3b5c62=_0x3ad73d['document']['getRoot'](_0x2ea127);if(!_0x3b5c62)throw new _0x71eab6('multi-root-editor-root-attributes-no-root',null);for(const [_0x1dc567,_0xb13e88]of Object['entries'](_0x2d8276))if(null!==_0xb13e88){const _0x49438d=new _0x42715b(_0x3b5c62,_0x1dc567,null,_0xb13e88,_0x1f094c++);_0x196ba7['push'](_0x49438d);}}return _0x196ba7;}async['_loadRoot'](_0x52a423,_0x33ee8f,_0x2c8352){this['_getOperationsFromInitData']({[_0x52a423]:_0x33ee8f},{[_0x52a423]:_0x2c8352})['forEach']((_0x1f4933,_0x528a21)=>{_0x1f4933['baseVersion']=this['_document']['version']+_0x528a21,_0x1f4933['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x1f4933);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x396fea,_0x27958e){let _0x467551;this['_offset']=_0x396fea['offset'];const _0x4f121f=_0x396fea['wereChangesApplied']&&!_0x396fea['initData'],_0x213016=_0x4f121f?0x0:_0x396fea['data']['baseVersion'];if(_0x27958e['forEach'](_0x32ee97=>{_0x32ee97['_isInit']=!0x0,_0x32ee97['createdAt']=_0x396fea['sessionCreatedAt'],_0x32ee97['_authorId']=null;}),_0x4f121f)_0x467551=_0x27958e,this['_applyOperationsSet'](_0x467551,_0x4f121f);else{if(_0x396fea['initData']){const _0x3c7f22=this['_getOperationsFromInitData'](_0x396fea['initData']);this['_document']['history']['version']=-_0x3c7f22['length'],_0x3c7f22['forEach'](_0x49478a=>{_0x49478a['baseVersion']-=_0x3c7f22['length'],_0x49478a['createdAt']=_0x396fea['sessionCreatedAt'],_0x49478a['_isInit']=!0x0,_0x49478a['_authorId']=null;}),this['_applyOperationsSet'](_0x3c7f22,!0x0),this['serverHistory']['version']=-_0x3c7f22['length']+this['_offset'],this['_updateServerHistory'](_0x3c7f22);}this['_document']['history']['version']=_0x213016,_0x467551=this['_decompressOperations'](_0x396fea['data'],_0x396fea['metadata']),await this['_fetchMissingUsers'](_0x467551),this['_applyOperationsSet'](_0x467551,_0x4f121f);}_0x396fea['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x467551,_0x396fea['lastOperationId']),this['_lastSyncedOperationId']=_0x396fea['lastOperationId']),this['serverHistory']['version']=_0x213016+this['_offset'],this['_updateServerHistory'](_0x467551),_0x27958e['filter'](_0x2a90e2=>{const _0xb2db2a=this['_getAffectedRoot'](_0x2a90e2);return _0xb2db2a&&!this['_knownRootNames']['has'](_0xb2db2a);})['forEach']((_0x43c5e5,_0x160df5)=>{_0x43c5e5['baseVersion']=this['_document']['version']+_0x160df5,this['_saveOperationInBuffer'](_0x43c5e5);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x4b4340,_0x427540){const _0x283da0=_0x427540&&_0x427540['message'];if(_0x283da0&&_0x283da0['startsWith']('realtimecollaborationclient'))throw _0x427540;const _0x476896=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x476896['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x71eab6(_0x4b4340,this['editor'],_0x283da0?{'originalError':_0x283da0}:void 0x0);}['_saveOperationInBuffer'](_0x4f5d2d){this['_knownOperations']['has'](_0x4f5d2d)||(this['_knownOperations']['add'](_0x4f5d2d),this['_bufferedOperations']['push'](_0x4f5d2d),this['_pendingAction']||'marker'==_0x4f5d2d['type']&&!_0x4f5d2d['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x27dfec=!0x1){!_0x27dfec&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x29e3fe=>{_0x29e3fe&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x153857=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x5cea4f){return _0x5cea4f['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x5cea4f['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x5cea4f['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x153857)||this['_crash'](_0x153857['message'],_0x153857);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x5f2c15=>{this['on']('change:_isPendingUpdate',()=>{_0x5f2c15();});});}async['_sendBufferedOperations'](){const _0x364cbb=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x364cbb['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x19b6e8=[...this['_bufferedOperations']];for(const _0x55a2b7 of _0x19b6e8)_0x55a2b7['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x55a2b7);const _0x1e57d9=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x19b6e8),_0x26d7c8=J++,_0x5314d3=this['_compressOperations'](_0x19b6e8),_0x3f13f6=await this['_service']['sendOperations'](_0x5314d3,_0x5314d3['baseVersion'],_0x1e57d9);try{return await this['_handleServerResponse'](_0x19b6e8,_0x3f13f6,_0x26d7c8);}catch(_0x501c21){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x501c21);}}async['_handleServerResponse'](_0x478011,_0x25a3ef,_0x1d044e){if('error'in _0x25a3ef)throw _0x25a3ef['error'];let _0x260b73=!0x1;if(_0x25a3ef['wereChangesApplied']){_0x25a3ef['lastOperationId']&&(this['_lastSyncedOperationId']=_0x25a3ef['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x1afc6d=>!_0x478011['includes'](_0x1afc6d));for(const _0x4a07cc of _0x478011)_0x4a07cc['createdAt']='lastOperationAcceptedAt'in _0x25a3ef&&_0x25a3ef['lastOperationAcceptedAt']||void 0x0;Q(_0x478011,_0x25a3ef['version']-_0x478011['length']),this['_updateServerHistory'](_0x478011);const _0x2b25be=_0x478011['filter'](_0x3e46fc=>{if(!_0x3e46fc['_isInit'])return!0x1;const _0x426763=this['_getAffectedRoot'](_0x3e46fc);return _0x426763&&!this['_knownRootNames']['has'](_0x426763);});Q(_0x2b25be,this['_document']['version']),this['_applyOperationsSet'](_0x2b25be),_0x260b73=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x4b98e9=this['_decompressOperations'](_0x25a3ef['data'],_0x25a3ef['metadata'])['filter'](_0xed7b7f=>_0xed7b7f['baseVersion']>=this['_lastServerVersion']);_0x4b98e9['forEach'](_0x1627f5=>this['_addKnownRoot'](_0x1627f5)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x35e003=>!_0x35e003['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x35e003))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x4b98e9),_0x260b73=this['_handleExternalOperations'](_0x4b98e9,_0x25a3ef['version'],_0x25a3ef['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x260b73?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x15af88,_0x1696c9,_0x301531){try{const _0x47a664={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x5cf6d4,operationsB:_0x5c4368,originalOperations:_0x6cad08}=_0x241ccf(_0x15af88,this['_bufferedOperations'],_0x47a664);Q(_0x5cf6d4,this['_document']['version']),Q(_0x5c4368,_0x1696c9);for(const _0x385f21 of _0x5cf6d4){const _0x3d6ef3=_0x6cad08['get'](_0x385f21);_0x385f21['_authorId']=_0x3d6ef3?_0x3d6ef3['_authorId']:null;}_0x301531&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x15af88,_0x301531),this['_lastSyncedOperationId']=_0x301531),this['_bufferedOperations']=[..._0x5c4368],this['_applyOperationsSet'](_0x5cf6d4),this['_updateServerHistory'](_0x15af88);}catch(_0x2895f8){return console['error'](_0x2895f8),!0x1;}return!0x0;}['_applyOperationsSet'](_0x550680,_0x452810=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x3d3e34=>{for(const _0x25092a of _0x550680)this['_knownOperations']['add'](_0x25092a),this['_addKnownRoot'](_0x25092a),_0x3d3e34['batch']['addOperation'](_0x25092a),this['editor']['model']['applyOperation'](_0x25092a);});}['_addKnownRoot'](_0x1b7947){const _0x678ca5=this['_getAffectedRoot'](_0x1b7947);_0x678ca5&&this['_knownRootNames']['add'](_0x678ca5);}['_getAffectedRoot'](_0x31defa){let _0x1e7f92,_0x2f2e3a;switch(_0x31defa['type']){case'insert':_0x1e7f92=_0x31defa['position']['root'];break;case'marker':if(_0x2f2e3a=_0x31defa['newRange'],!_0x2f2e3a)return null;_0x1e7f92=_0x2f2e3a['root'];break;case'addRootAttribute':_0x1e7f92=_0x31defa['root'];break;case'addRoot':_0x1e7f92=_0x31defa['affectedSelectable'];break;case'move':_0x1e7f92=_0x31defa['targetPosition']['root'];break;default:return null;}return _0x1e7f92['rootName'];}['_updateServerHistory'](_0x2bc27d){_0x2bc27d['forEach'](_0x581271=>{const _0x137867=_0x581271['clone']();_0x137867['_authorId']=_0x581271['_authorId'],_0x137867['_isInit']=!!_0x581271['_isInit'],_0x137867['createdAt']=_0x581271['createdAt'],_0x137867['baseVersion']+=this['_offset'],_0x581271['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x137867),this['serverHistory']['addOperation'](_0x137867);});}['_handleReconnectionError'](_0x11beb0){const _0x4001d7=this['editor']['plugins']['get']('Notification'),_0x50fb4a=this['editor']['locale'];_0x11beb0||(_0x11beb0=K(_0x50fb4a,'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.')),_0x4001d7['showWarning'](_0x11beb0,{'title':K(_0x50fb4a,'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'](_0x3c80a1)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x3c80a1)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x140c1c){const _0x41a180=_0x140c1c['map'](_0x1d71bd=>_0x1d71bd['toJSON']());return this['_compressor']['compress'](_0x41a180);}['_decompressOperations'](_0x145886,_0x488f33){return this['_compressor']['decompress'](_0x145886)['map']((_0x1e176a,_0x16f1a2)=>{const _0x371619='init'==_0x488f33[_0x16f1a2]['type'];if('InsertOperation'==_0x1e176a['__className']){const _0x41f34b=_0x1e176a['position']['root'];!this['_document']['getRoot'](_0x41f34b)&&(this['_document']['createRoot']('$unknown',_0x41f34b)['_isAttached']=!0x1);}else{if('RootOperation'==_0x1e176a['__className']){const _0x4fe84c=this['_document']['getRoot'](_0x1e176a['rootName']);_0x4fe84c&&'$unknown'==_0x4fe84c['name']&&_0x1e176a['elementName']!=_0x4fe84c['name']&&(_0x4fe84c['name']=_0x1e176a['elementName']);}}const _0x451f8f=_0x1ea6fa['fromJSON'](_0x1e176a,this['_document']);return _0x451f8f['wasUndone']=_0x1e176a['wasUndone'],_0x451f8f['_isInit']=_0x371619,_0x451f8f['_authorId']=_0x371619?null:_0x488f33[_0x16f1a2]['userId'],_0x451f8f['_isDisconnection']='cs:removeUser'===_0x488f33[_0x16f1a2]['type'],_0x451f8f['createdAt']=_0x488f33[_0x16f1a2]['createdAt'],_0x451f8f;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x1f03f5=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x1f03f5&&_0x1f03f5['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x276a66,_0x37a52a){for(const _0x3643c7 of _0x276a66)_0x3643c7['baseVersion']=_0x37a52a++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x49fa76){this['_ignoredOperations']=_0x49fa76,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x1086e0){let _0x4f0c76=_0x1086e0['length'];for(;_0x4f0c76--;){const _0x17a415=_0x1086e0[_0x4f0c76];if(!this['_ignoredOperations']['has'](_0x17a415)){if(!this['_operationToId']['has'](_0x17a415)){const _0x1d6846=_0x1b2b49()['slice'](0x1,0x12);this['_operationToId']['set'](_0x17a415,_0x1d6846);}return this['_operationToId']['get'](_0x17a415);}}}['setIdForTheLastOperation'](_0x4b7b75,_0x3db72e){if(!_0x3db72e)return;let _0x5be3a6=_0x4b7b75['length'];for(;_0x5be3a6--;){const _0x342e33=_0x4b7b75[_0x5be3a6];this['_ignoredOperations']['has'](_0x342e33)||this['_operationToId']['set'](_0x342e33,_0x3db72e);}}}class RealTimeCollaborativeEditing extends _0xa8b5d6{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x1ab0c4{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
+ ((()=>_0x5ec125)());['_services'];static get['requires'](){return[WebSocketGateway,_0xb43395,Sessions,_0x39f5d8];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0xce9dc2){super(_0xce9dc2),this['_services']=new Map();}async['init'](){const _0x182189=this['context'],_0x181b31=_0x182189['plugins']['get'](_0xb43395);if(_0x182189['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x181b31['adapter']={'addCommentThread':async({channelId:_0x48615e,threadId:_0x293fe7,comments:_0x1c5090,resolvedAt:_0x47188b,resolvedBy:_0xd4e7e6,context:_0x3ba9eb,attributes:_0x5634b8})=>{const _0x170ab4=await this['_getService'](_0x48615e)['addCommentThread']({'commentThreadId':_0x293fe7,'comments':_0x1c5090['map'](_0xa2404e=>function(_0x5c7861,_0x542fdc,_0x22ea26){return{'commentThreadId':_0x22ea26,'commentId':_0x5c7861['commentId'],'userId':_0x5c7861['authorId'],'content':_0x5c7861['content'],'documentId':_0x542fdc,'createdAt':_0x5c7861['createdAt'],'attributes':_0x5c7861['attributes']||{}};}(_0xa2404e,_0x48615e,_0x293fe7)),'resolvedAt':_0x47188b,'resolvedBy':_0xd4e7e6,'context':_0x3ba9eb,'attributes':_0x5634b8})['catch'](Z);return{'threadId':_0x170ab4['commentThreadId'],'comments':_0x170ab4['comments']};},'getCommentThread':async({channelId:_0x4dbacc,threadId:_0x5d7b15})=>{const _0x10ec9f=await this['_getService'](_0x4dbacc)['getCommentThread'](_0x5d7b15)['catch'](X)['catch'](Z);return _0x10ec9f?_0x10ec9f['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x10ec9f]),{'threadId':_0x10ec9f['commentThreadId'],'comments':_0x10ec9f['comments']['map'](tt),'context':_0x10ec9f['context'],'resolvedAt':_0x10ec9f['resolvedAt'],'resolvedBy':_0x10ec9f['resolvedBy'],'attributes':_0x10ec9f['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x1166b3,threadId:_0x3a0f36,context:_0x4f78be,unlinkedAt:_0x1ecea9,attributes:_0x422c2b})=>this['_getService'](_0x1166b3)['updateCommentThread']({'commentThreadId':_0x3a0f36,'context':_0x4f78be,'attributes':_0x422c2b,'unlinkedAt':_0x1ecea9})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x1d65e6,threadId:_0x218598})=>{const _0x1fb71c=await this['_getService'](_0x1d65e6)['resolveCommentThread'](_0x218598)['catch'](X)['catch'](Z);return{'threadId':_0x1fb71c['commentThreadId'],'resolvedAt':_0x1fb71c['resolvedAt'],'resolvedBy':_0x1fb71c['resolvedBy']};},'reopenCommentThread':async({channelId:_0x4dff8d,threadId:_0x4939cc})=>this['_getService'](_0x4dff8d)['reopenCommentThread'](_0x4939cc)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x4339ed,threadId:_0x48ec07})=>this['_getService'](_0x4339ed)['removeCommentThread'](_0x48ec07)['catch'](X)['catch'](Z),'addComment':({channelId:_0xe6c1a6,threadId:_0x2ee36d,commentId:_0x2ae978,content:_0x132d53,attributes:_0x2aabcf})=>this['_getService'](_0xe6c1a6)['addComment'](_0x2ee36d,_0x2ae978,_0x132d53,_0x2aabcf)['catch'](Z),'updateComment':({channelId:_0x596def,threadId:_0x5ca6b4,commentId:_0x915c92,content:_0x44867b,attributes:_0x1c0568})=>this['_getService'](_0x596def)['updateComment'](_0x5ca6b4,_0x915c92,_0x44867b,_0x1c0568)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x323fb0,threadId:_0x179aab,commentId:_0x2dfddb})=>this['_getService'](_0x323fb0)['removeComment'](_0x179aab,_0x2dfddb)['catch'](X)['catch'](Z)},_0x182189 instanceof _0xada907){const _0x18452c=_0x182189['config']['get']('collaboration.channelId'),_0x34aed6=_0x182189['plugins']['get'](Sessions);await this['_setUpService'](_0x18452c);const _0x2eeaa8=await this['_services']['get'](_0x18452c)['getConnectedSessions']();this['listenTo'](_0x34aed6,'sessionAdd:'+_0x18452c,(_0x4efbf4,{session:_0x59271b})=>{_0x59271b['id']===_0x34aed6['mySessionId']&&(_0x4efbf4['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x59271b['permissions'],_0x18452c));}),_0x34aed6['register'](_0x18452c,_0x2eeaa8);}}async['_setUpService'](_0x326c55){if(this['_services']['has'](_0x326c55))throw new _0x71eab6('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x326c55});const _0x9cd693=this['context']['plugins']['get'](_0xb43395),_0x304270=new CloudServicesCommentsAdapter['CommentsService'](_0x326c55);this['_services']['set'](_0x326c55,_0x304270),this['listenTo'](_0x304270,'commentThreadAdded',(_0x10a7b8,_0x4c15a6)=>{const {commentThreadId:_0x3c79d6,documentId:_0x1e1b9b,context:_0x1eff1a,attributes:_0x4107dc,resolvedAt:_0x15a5d6,resolvedBy:_0x29e92c,comments:_0x59adb5}=_0x4c15a6;_0x9cd693['getCommentThread'](_0x3c79d6)||_0x9cd693['addCommentThread']({'threadId':_0x3c79d6,'channelId':_0x1e1b9b,'comments':_0x59adb5?_0x59adb5['map'](tt):[],'context':_0x1eff1a,'attributes':_0x4107dc,'resolvedAt':_0x15a5d6,'resolvedBy':_0x29e92c,'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadUpdated',(_0x2ce6ea,{commentThreadId:_0x85e5b0,documentId:_0x118714,context:_0x1cd15d,unlinkedAt:_0x1ee2f0,attributes:_0x413844})=>{_0x9cd693['getCommentThread'](_0x85e5b0)&&_0x9cd693['updateCommentThread']({'threadId':_0x85e5b0,'channelId':_0x118714,'context':_0x1cd15d,'unlinkedAt':_0x1ee2f0,'attributes':_0x413844,'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadResolved',(_0x1f2f00,{commentThreadId:_0x108c8f,resolvedBy:_0xd800da,resolvedAt:_0x173016})=>{const _0x4860a0=_0x9cd693['getCommentThread'](_0x108c8f);_0x4860a0&&_0x4860a0['resolve']({'resolvedBy':_0xd800da,'resolvedAt':_0x173016,'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadReopened',(_0x156b1c,{commentThreadId:_0x49d2fe})=>{const _0x209f7a=_0x9cd693['getCommentThread'](_0x49d2fe);_0x209f7a&&_0x209f7a['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadRemoved',(_0x406664,{commentThreadId:_0x34c1a5})=>{const _0x1a9318=_0x9cd693['getCommentThread'](_0x34c1a5);_0x1a9318&&_0x1a9318['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentAdded',(_0x5439fd,_0x2e605d)=>{const _0x1b176a=_0x2e605d['commentThreadId'],_0x56c5af=_0x9cd693['getCommentThread'](_0x1b176a);_0x56c5af&&_0x56c5af['addComment']({...tt(_0x2e605d),'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentUpdated',(_0x50706b,{commentThreadId:_0x192c08,commentId:_0xaf84a1,content:_0x50d9d9,attributes:_0x286860})=>{const _0x367f13=_0x9cd693['getCommentThread'](_0x192c08);if(_0x367f13){const _0x13c470=_0x367f13['getComment'](_0xaf84a1);_0x13c470&&_0x13c470['update']({'content':_0x50d9d9,'attributes':_0x286860,'isFromAdapter':!0x0});}}),this['listenTo'](_0x304270,'commentRemoved',(_0x53121c,{commentThreadId:_0x3b89ae,commentId:_0x555d15})=>{const _0x36aed3=_0x9cd693['getCommentThread'](_0x3b89ae);if(_0x36aed3){const _0x17c05f=_0x36aed3['getComment'](_0x555d15);_0x17c05f&&_0x17c05f['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x326c55);}['destroy'](){if(this['context']instanceof _0xada907){const _0x502136=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x502136);}}['_terminateService'](_0x4f33af){if(!this['_services']['has'](_0x4f33af))throw new _0x71eab6('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x4f33af});this['_getService'](_0x4f33af)['disconnect'](),this['_services']['delete'](_0x4f33af);}async['reconnect'](){for(const _0x5e65e0 of this['_services']['keys']())await this['_connectService'](_0x5e65e0);if(this['context']instanceof _0xada907){const _0x49d8f1=this['context']['config']['get']('collaboration.channelId'),_0x3412aa=this['context']['plugins']['get'](Sessions);_0x3412aa['unregister'](_0x49d8f1);const _0x5391c4=await this['_services']['get'](_0x49d8f1)['getConnectedSessions']();_0x3412aa['register'](_0x49d8f1,_0x5391c4);}}async['_connectService'](_0x28e4b6){const {connection:_0x278583}=this['context']['plugins']['get'](WebSocketGateway),_0x1c246d=this['context']['plugins']['get'](_0xb43395),_0x1c955c=this['_services']['get'](_0x28e4b6),_0x3c4cf3=await _0x1c955c['connect'](_0x278583);await this['_fetchMissingUsersForThreads'](_0x3c4cf3);const _0x5e4b23=new Set(Array['from'](_0x1c246d['getCommentThreads']({'channelId':_0x28e4b6}),_0xb7f57e=>_0xb7f57e['id']));for(const _0x530a04 of _0x3c4cf3)_0x530a04['deletedAt']||_0x5e4b23['delete'](_0x530a04['commentThreadId']);for(const _0x1f2b19 of _0x5e4b23)_0x1c246d['getCommentThread'](_0x1f2b19)['remove']({'isFromAdapter':!0x0});for(const _0x50a3da of _0x3c4cf3){let _0x99c792=_0x1c246d['getCommentThread'](_0x50a3da['commentThreadId']);const {commentThreadId:_0x3daab5,context:_0x53f63a,attributes:_0x156593,resolvedBy:_0x3cc944,resolvedAt:_0x28a7a7,unlinkedAt:_0x2ae88a,deletedAt:_0x11d276}=_0x50a3da;if(_0x11d276)continue;_0x99c792||(_0x99c792=_0x1c246d['addCommentThread']({'channelId':_0x28e4b6,'threadId':_0x3daab5,'context':_0x53f63a,'attributes':_0x156593||{},'resolvedBy':_0x3cc944,'resolvedAt':_0x28a7a7,'unlinkedAt':_0x2ae88a,'isFromAdapter':!0x0}));const _0x48b01b=new Set(Array['from'](_0x99c792['comments'],_0x1bc9ab=>_0x1bc9ab['id']));for(const _0x3679bc of _0x50a3da['comments'])_0x48b01b['delete'](_0x3679bc['commentId']);for(const _0x384412 of _0x48b01b)_0x99c792['getComment'](_0x384412)['remove']({'isFromAdapter':!0x0});for(const _0x3535bf of _0x50a3da['comments']){const _0x2fee7c=_0x99c792['getComment'](_0x3535bf['commentId']);_0x2fee7c?_0x2fee7c['content']!==_0x3535bf['content']&&_0x2fee7c['update']({'content':_0x3535bf['content'],'isFromAdapter':!0x0}):_0x99c792['addComment'](Object['assign'](tt(_0x3535bf),{'isFromAdapter':!0x0}));}}}['_getService'](_0x1f7db7){if(!this['_services']['has'](_0x1f7db7))throw new _0x71eab6('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x1f7db7});return this['_services']['get'](_0x1f7db7);}async['_fetchMissingUsersForThreads'](_0x2cde65){const _0x84c2f=this['context']['plugins']['get'](_0x39f5d8),{connection:_0x4f2c15}=this['context']['plugins']['get'](WebSocketGateway),_0x367a02=new Set();for(const {resolvedBy:_0x780c82,comments:_0x483518}of _0x2cde65){_0x780c82&&!_0x84c2f['getUser'](_0x780c82)&&_0x367a02['add'](_0x780c82);for(const {userId:_0x54794d}of _0x483518)_0x84c2f['getUser'](_0x54794d)||_0x367a02['add'](_0x54794d);}if(0x0===_0x367a02['size'])return;const _0x50d8f1=await _0x4e51b9['getMany'](_0x4f2c15,Array['from'](_0x367a02));for(const _0x3af34f of _0x50d8f1)_0x84c2f['getUser'](_0x3af34f['id'])||_0x84c2f['addUser'](_0x3af34f);}}async function X(_0x5ae59b){if('404'!==_0x5ae59b['code'])throw _0x5ae59b;}function Z(_0x2256d8){if((_0x542f6a=_0x2256d8)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x542f6a['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x542f6a['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x542f6a;throw _0x2256d8;}function tt(_0x131b67){return{'threadId':_0x131b67['commentThreadId'],'commentId':_0x131b67['commentId'],'content':_0x131b67['content'],'createdAt':_0x131b67['createdAt'],'authorId':_0x131b67['userId'],'attributes':_0x131b67['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0xa8b5d6{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
+ ((()=>_0x270adf)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x4a4f9b,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x45cadf){super(_0x45cadf);const _0x224cda=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x224cda);}['init'](){const _0x875b69=this['editor']['plugins']['get'](WebSocketGateway),_0x3e0d91=this['editor']['plugins']['get'](_0x4a4f9b);return _0x3e0d91['adapter']={'getSuggestion':async _0x45e852=>{await this['_waitForServiceReady']();const _0x284db8=await this['_trackChangesService']['get'](_0x45e852)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x284db8]),_0x284db8;},'addSuggestion':async({id:_0x143f86,type:_0x12d6fe,data:_0x381d0b,originalSuggestionId:_0x344238,attributes:_0x210fab})=>{await this['_waitForServiceReady']();const _0x64c904={'id':_0x143f86,'type':_0x12d6fe,'data':_0x381d0b,'originalSuggestionId':_0x344238,'attributes':_0x210fab},_0x174003=await this['_trackChangesService']['add'](_0x143f86,_0x12d6fe,_0x381d0b,_0x344238,_0x210fab)['catch'](_0x3e0077=>{if(st(_0x3e0077))return new Promise(_0x30ac5a=>{this['_bufferedRequests']['set'](_0x143f86,{'resolve':_0x30ac5a,'suggestionData':_0x64c904});});throw _0x3e0077;});return this['_bufferedRequests']['delete'](_0x143f86),_0x174003;},'updateSuggestion':async(_0x153572,_0x535303)=>{if(await this['_waitForServiceReady'](),'open'!==_0x535303['state'])return this['_trackChangesService']['update'](_0x153572,_0x535303)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x5509f0,_0x1d8190)=>{_0x3e0d91['hasSuggestion'](_0x1d8190['id'])&&(_0x3e0d91['getSuggestion'](_0x1d8190['id'])['attributes']=_0x1d8190['attributes']);}),this['_trackChangesService']['connect'](_0x875b69['connection'])['then'](_0x29579f=>(_0x875b69['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x29579f)['then'](()=>{for(const _0x5a0952 of _0x29579f){_0x3e0d91['addSuggestionData'](_0x5a0952)['_saved']=!0x0;}})));}async['reconnect'](){const _0x341c5f=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x1724c3}=this['editor']['plugins']['get'](WebSocketGateway),_0x5ec1cc=await this['_trackChangesService']['connect'](_0x1724c3);await this['_fetchMissingUsersForThreads'](_0x5ec1cc);for(const {suggestionData:_0x5d994b,resolve:_0xb40f1e}of this['_bufferedRequests']['values']()){let _0x2d54fd=_0x5ec1cc['find'](_0x177404=>_0x177404['id']===_0x5d994b['id']);_0x2d54fd||(_0x2d54fd=await this['_trackChangesService']['add'](_0x5d994b['id'],_0x5d994b['type'],_0x5d994b['data'],_0x5d994b['originalSuggestionId'])),_0xb40f1e(_0x2d54fd);}for(const _0x344958 of _0x5ec1cc)_0x341c5f['hasSuggestion'](_0x344958['id'])||_0x341c5f['addSuggestionData'](_0x344958);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x26cb28=>{this['listenTo'](this['_trackChangesService'],'connected',_0x2bb1e0=>{_0x2bb1e0['off'](),_0x26cb28();});});}async['_fetchMissingUsersForThreads'](_0x5139dc){const _0x58e81f=this['editor']['plugins']['get'](_0x39f5d8),{connection:_0x22fd30}=this['editor']['plugins']['get'](WebSocketGateway),_0x544380=new Set();for(const {authorId:_0x510b93}of _0x5139dc)_0x58e81f['getUser'](_0x510b93)||_0x544380['add'](_0x510b93);if(0x0===_0x544380['size'])return;const _0x336c16=await _0x4e51b9['getMany'](_0x22fd30,Array['from'](_0x544380));for(const _0x24bca8 of _0x336c16)_0x58e81f['getUser'](_0x24bca8['id'])||_0x58e81f['addUser'](_0x24bca8);}}function et(_0x139c64){if(st(_0x139c64))return new Promise(()=>{});throw _0x139c64;}function st(_0x41ce7c){return _0x41ce7c['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x41ce7c['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0xa8b5d6{static get['requires'](){return[_0x14dbd7,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0xdedb35=this['editor']['plugins']['get'](WebSocketGateway),_0x52c4f6=this['editor']['plugins']['get'](_0xfce3b8),_0x57f5b2=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0xdedb35,'change:state',(_0x4a3ccf,_0x47f9c2,_0x2b8bc4)=>{_0x52c4f6['isThreadsLoadingPaused']='connected'!==_0x2b8bc4;});}),this['listenTo'](_0xdedb35,'change:state',(_0x361612,_0x1925fc,_0x20f38e)=>{this['editor']['plugins']['get'](_0xb43395)['switchReadOnly']('connected'!==_0x20f38e);}),_0x57f5b2['_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 _0xa8b5d6{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x19261];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0xa8b5d6{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
+ ((()=>_0xa09a6c)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x312c1b,Sessions,_0x39f5d8];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x451bda){super(_0x451bda);const _0x292fef=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x292fef);}async['init'](){const _0x3346cb=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x1f0bc7=_0x3346cb['serverHistory'],_0x507517=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x1f0bc7,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x3346cb['sessionId']});const _0x5da9ae=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x858cb6,_0x342453=await _0x29a061['isBundleUploaded'](_0x507517['connection'],_0x5da9ae);this['editor']['plugins']['get'](_0x312c1b)['adapter']={'getRevision':async({revisionId:_0x4a1fc0})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x4a1fc0)),'updateRevisions':async _0xbb8ca6=>{await this['_waitForServiceReady']();const _0x158dcb=this['_revisionTracker']['currentRevision'];if(_0x342453&&0x1===_0xbb8ca6['length']&&_0xbb8ca6[0x0]['id']===_0x158dcb['id'])return _0xbb8ca6;for(const _0x3a92c3 of _0xbb8ca6)_0x3a92c3['id']===_0x158dcb['id']&&(_0x3a92c3['isEmptyCurrent']=_0x3a92c3['fromVersion']===_0x3a92c3['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0xbb8ca6,this['_lastRequestId'])['then'](_0x34b8bd=>(this['_lastRequestId']=_0x34b8bd,_0xbb8ca6))['catch'](_0x3bd4d3=>{if(it(_0x3bd4d3)||'400'===_0x3bd4d3['code']&&void 0x0!==_0x3bd4d3['data']['wrongRequestId']){for(const _0xd07395 of _0xbb8ca6){!this['_revisionTracker']['repository']['getRevision'](_0xd07395['id'])||this['_revisionTracker']['_bufferUpdate'](_0xd07395['id'],_0xd07395,!0x1);}if(it(_0x3bd4d3)&&'destroyed'!==this['editor']['state'])throw _0x3bd4d3;return _0xbb8ca6;}throw _0x3bd4d3;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x52bb8,{revisionsData:_0x4ec5a0,requestId:_0x5402a1})=>{Math['max'](..._0x4ec5a0['map'](_0x1d57d9=>_0x1d57d9['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x4ec5a0,_0x5402a1);}):this['_handleRevisionsUpdate'](_0x4ec5a0,_0x5402a1);});const {revisions:_0x2b81ee,requestId:_0x9c08f0}=await this['_revisionHistoryService']['connect'](_0x507517['connection']);_0x507517['addToReconnectionStack'](this),this['_lastRequestId']=_0x9c08f0,await this['_fetchMissingUsers'](_0x2b81ee);for(const _0x1d557c of _0x2b81ee)this['_revisionTracker']['addRevisionData'](_0x1d557c);this['listenTo'](_0x3346cb,'change:_isConnected',(_0x5dbf12,_0xc745e7,_0x4349e3)=>{_0x4349e3&&(this['_oldOffset']=_0x3346cb['_offset'],_0x5dbf12['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x507517,'state',_0x287345=>_0x287345===_0x4b45bf['CONNECTED']);}async['reconnect'](){const _0x2f1049=this['editor']['plugins']['get'](WebSocketGateway),_0x5d8511=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x4aedb2=async()=>{const _0x1eda36=this['_revisionTracker']['currentRevision'],_0x7536=_0x1eda36['id'],_0xc846bf=_0x7536!==_0x5d8511['sessionId'];if(_0xc846bf){const _0xd6e946=_0x5d8511['_offset']-this['_oldOffset'],_0x5400b5=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x1eda36['toVersion']+_0xd6e946!==_0x5400b5){const _0x2735cb=_0x1eda36['fromVersion']+_0xd6e946,_0x4347c8=this['editor']['plugins']['get'](_0x39f5d8),_0x4c3ae1=this['_revisionTracker']['buildRevisionData']({'revision':_0x1eda36,'from':_0x2735cb,'to':_0x5400b5});_0x4c3ae1['id']=_0x1eda36['id'];const _0x40e0c5=_0x4c3ae1['authorsIds']['map'](_0xc3e80e=>_0x4347c8['getUser'](_0xc3e80e));_0x1eda36['_update']({..._0x4c3ae1,'authors':_0x40e0c5},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x1eda36['id'],_0x4c3ae1,!0x0);}this['_revisionTracker']['_startingVersion']=_0x5400b5,(_0x1eda36['toVersion']===_0x1eda36['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x7536)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x7536),this['_revisionTracker']['_createCurrentRevision'](_0x5400b5));}const {revisions:_0x29943f,requestId:_0x1d565f}=await this['_revisionHistoryService']['reconnect'](_0x2f1049['connection'],this['_lastRequestId']);_0xc846bf&&_0x29943f['length']>0x0?_0x5d8511['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x29943f),this['_handleRevisionsUpdate'](_0x29943f,_0x1d565f),this['_revisionTracker']['sendBufferedUpdates']());};return _0x5d8511['_isConnected']?_0x4aedb2():new Promise((_0x26e8d1,_0x6e2c21)=>{_0x5d8511['once']('change:_isConnected',()=>{_0x4aedb2()['then'](_0x26e8d1)['catch'](_0x6e2c21);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x211796=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x6ef6d7=>{_0x6ef6d7['off'](),_0x211796();});});}['_getLatestVersionFromServerOperations'](){const _0x56a83e=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x3c66f0 of _0x56a83e)if('marker'!==_0x3c66f0['type']||_0x3c66f0['affectsData'])return _0x3c66f0['baseVersion']+0x1;}['_getLatestVersion'](){const _0x3073a1=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x56bce9=>{_0x3073a1['_isPendingUpdate']?_0x3073a1['once']('change:_isPendingUpdate',()=>{_0x56bce9(this['_getLatestVersionFromServerOperations']());}):_0x56bce9(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x4bca89,_0x2256e2){const _0x35540e=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x2256e2;for(const _0x287cfb of _0x4bca89){const _0xcafaff=_0x35540e['getRevision'](_0x287cfb['id']);if(_0xcafaff){if((_0x287cfb['fromVersion']||_0x287cfb['toVersion'])&&(_0x287cfb['diffData']=null),_0xcafaff===this['_revisionTracker']['currentRevision']){const _0x20097a=Math['max'](_0xcafaff['toVersion'],_0x287cfb['toVersion']),_0x1d070e=Math['max'](_0xcafaff['fromVersion'],_0x287cfb['fromVersion']);let _0x2fb86a;_0xcafaff['toVersion']===_0x287cfb['toVersion']&&_0xcafaff['fromVersion']===_0x287cfb['fromVersion']?(_0x2fb86a=!0x0,this['_preventResendingRevisionData'](_0x287cfb)):_0x287cfb['toVersion']===_0x20097a&&_0x287cfb['fromVersion']===_0x1d070e?_0x2fb86a=!0x1:(_0xcafaff['toVersion']===_0x20097a&&_0xcafaff['fromVersion']===_0x1d070e||this['_fixRevision']({'revision':_0xcafaff,'from':_0x1d070e,'to':_0x20097a}),_0x2fb86a=!0x0),_0x2fb86a&&(delete _0x287cfb['fromVersion'],delete _0x287cfb['toVersion'],delete _0x287cfb['diffData'],delete _0x287cfb['createdAt'],delete _0x287cfb['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x287cfb),this['_preventResendingRevisionData'](_0x287cfb);}else this['_revisionTracker']['addRevisionData'](_0x287cfb);}const _0x4fa6de=_0x35540e['getRevisions']();_0x4fa6de['reverse']();for(let _0x445467=0x0;_0x445467<_0x4fa6de['length']-0x1;_0x445467++){const _0x28785f=_0x4fa6de[_0x445467],_0x10efa9=_0x4fa6de[_0x445467+0x1];if(_0x28785f['fromVersion']<_0x10efa9['toVersion']){const _0x1b0a8f=_0x10efa9['toVersion'],_0x1dca85=Math['max'](_0x1b0a8f,_0x28785f['toVersion']);this['_fixRevision']({'revision':_0x28785f,'from':_0x1b0a8f,'to':_0x1dca85});}}}['_fixRevision']({revision:_0x5aa50f,from:_0x45ae27,to:_0x1f3e2d}={}){const _0x2718b4=this['editor']['plugins']['get'](_0x39f5d8),_0x3b1a47=this['_revisionTracker']['buildRevisionData']({'revision':_0x5aa50f,'from':_0x45ae27,'to':_0x1f3e2d});_0x3b1a47['authors']=_0x3b1a47['authorsIds']['map'](_0x137d2f=>_0x2718b4['getUser'](_0x137d2f)),_0x5aa50f['_update'](_0x3b1a47);}['_preventResendingRevisionData'](_0x440e35){const _0x12c53a={};_0x12c53a['id']=_0x440e35['id'];for(const _0x1d19c5 of Object['keys'](_0x440e35))'id'!==_0x1d19c5&&(_0x12c53a[_0x1d19c5]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x12c53a['id'],_0x12c53a,!0x0);}async['_fetchMissingUsers'](_0x380e80){const _0x56d690=this['editor']['plugins']['get'](_0x39f5d8),{connection:_0x5eea69}=this['editor']['plugins']['get'](WebSocketGateway),_0x5dedfa=new Set();for(const _0x1c3ed0 of _0x380e80){for(const _0x46b814 of _0x1c3ed0['authorsIds'])_0x7bdae3(_0x46b814);_0x1c3ed0['creatorId']&&_0x7bdae3(_0x1c3ed0['creatorId']);}if(0x0===_0x5dedfa['size'])return;const _0x4b8913=await _0x4e51b9['getMany'](_0x5eea69,Array['from'](_0x5dedfa));for(const _0x40c3a0 of _0x4b8913)_0x56d690['getUser'](_0x40c3a0['id'])||_0x56d690['addUser'](_0x40c3a0);function _0x7bdae3(_0xae823f){_0x56d690['getUser'](_0xae823f)||_0x5dedfa['add'](_0xae823f);}}}function it(_0x3d9527){return _0x3d9527['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x3d9527['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x3d9527['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0xa8b5d6{static get['requires'](){return[_0x312c1b,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0xf9dd42{['_collapseAt'];constructor(_0xa799ca,_0x1bb204=0x6){super(_0xa799ca);const _0x46e56b=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x1bb204,this['bind']('isHidden')['to'](this,'usersCount',_0xd2c466=>_0xd2c466<_0x1bb204),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x46e56b['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':_0x46e56b['to']('usersCount',_0xcc10e1=>'+'+(_0xcc10e1-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0xf9dd42{['items'];['keystrokes'];constructor(_0x437960){super(_0x437960);const _0x32bf87=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x2a5d42(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x32bf87['if']('hasPopup'),'aria-expanded':_0x32bf87['to']('isExpanded',_0x977ba4=>this['hasPopup']&&String(_0x977ba4)),'aria-label':_0x32bf87['to']('hasPopup',_0x4560d8=>K(_0x437960,_0x4560d8?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x32bf87['to']('hasPopup',_0x1a2496=>!!_0x1a2496&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x32bf87['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x32bf87['to'](_0x5dcae3=>{const _0x4686a3=_0x5dcae3,_0x3feb53=document['querySelector']('.ck-presence-list__dropdown-list'),_0xee7d35=document['querySelector']('.ck-balloon-panel_with-arrow');_0x3feb53?.['contains'](_0x4686a3['relatedTarget'])||_0xee7d35?.['contains'](_0x4686a3['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x356d08,_0x42e706,_0x4a7460)=>{this['element']&&(_0x4a7460?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 _0xf9dd42{['counterView'];['inlineListView'];constructor(_0x54982b,_0x5574ba=0x6){super(_0x54982b);const _0x4f0567=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x5574ba),this['inlineListView']=new PresenceInlineListView(_0x54982b),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x4ac470 of this['inlineListView']['items'])_0x4ac470['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',_0x4f0567['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0xf9dd42{['listWrapperView'];constructor(_0x3da719,_0x509d04){super(_0x3da719);const _0xcc9823=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x3da719,_0x509d04),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x3da719,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0xcc9823['to'](_0x860788=>{const _0x59702b=_0x860788,_0x4ce0e7=document['querySelector']('.ck-presence-list__list'),_0x147970=document['querySelector']('.ck-balloon-panel_with-arrow');_0x4ce0e7?.['contains'](_0x59702b['relatedTarget'])||_0x147970?.['contains'](_0x59702b['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x24c869{constructor(_0x1f8ea8,_0x13ff76){super(_0x1f8ea8);const _0x290f2f=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x13ff76?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x290f2f['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x290f2f['to']('role'),'aria-label':_0x290f2f['to']('ariaLabel'),'aria-labelledby':_0x290f2f['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x47d9e9['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x6720c1=this['element'];_0x6720c1&&(this['_isScrollable']=Math['max'](_0x6720c1['scrollHeight'],_0x6720c1['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x58b41f{['userView'];constructor(_0x1a2cb5,_0x110c3f,_0x2fbcff){super(_0x1a2cb5);const _0x14d108=this['bindTemplate'];this['userView']=new _0x2fc51c(_0x1a2cb5,_0x110c3f);const _0x113344={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x110c3f['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x110c3f['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x110c3f['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x110c3f['color']['getColorVariable'](),'--ck-user-color-alpha':_0x110c3f['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x2fbcff&&(_0x113344['tag']='button',_0x113344['on']={'click':_0x14d108['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x113344);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0xf9dd42{['userView'];['markerView'];constructor(_0x2aac38,_0x4426dc,_0x436359){super(_0x2aac38);const _0x78c43e=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x2fc51c(_0x2aac38,_0x4426dc),this['markerView']=new MarkerView(_0x2aac38,_0x4426dc);const _0x57a185=new _0x1c8043(_0x2aac38);_0x57a185['template']['tag']='span',_0x57a185['text']=_0x4426dc['name'];const _0x512b41={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x78c43e['to']('isFocusable',_0xe8f6b1=>!!_0xe8f6b1&&0x0),'aria-labelledby':_0x57a185['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x78c43e['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x78c43e['to']('hasTooltip',_0x7e2b79=>!_0x7e2b79),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x57a185]};_0x436359&&(_0x512b41['tag']='button',_0x512b41['on']={'click':_0x78c43e['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x512b41);}}class MarkerView extends _0xf9dd42{constructor(_0x5e5cb9,_0x2df329){super(_0x5e5cb9),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x2df329['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x2df329['color']['getColorVariable'](),'--ck-user-color-alpha':_0x2df329['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x1ab0c4{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x34921d){super(_0x34921d),this['context']['config']['define']('presenceList',nt);const _0x278b70=_0x34921d['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x278b70)throw new _0x71eab6('presencelist-collapseat-invalid-format',this);if(_0x278b70<0x1)throw new _0x71eab6('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x3fb7b9(),this['balloonPanelView']=new _0x6ecd60(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x551db5 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x551db5);this['listenTo'](this['_allConnectedUsers'],'add',(_0x548b31,_0x491290)=>{this['_handleUserAdd'](_0x491290);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x253027,_0x271701)=>{this['_handleUserRemove'](_0x271701);});}['_createView'](){const _0x59c4ba=this['context'],_0x13b00b=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x431e40=this['balloonPanelView'];if(!_0x412e30(_0x59c4ba['config']['get']('presenceList.container')))throw new _0x71eab6('presencelist-missing-container',this);return _0x13b00b['counterView']['bind']('usersCount')['to'](this),_0x13b00b['bind']('isCollapsed')['to'](this,'usersCount',_0x4145e3=>{const {collapseAt:_0x2e7f37}=_0x59c4ba['config']['get']('presenceList'),_0x4ca89b=_0x4145e3>=_0x2e7f37;if(_0x4ca89b&&!_0x13b00b['inlineListView']['items']['find'](_0x4a8a09=>_0x4a8a09 instanceof PresenceCounterView)){const _0x16f93f=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x16f93f&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x13b00b['inlineListView']['items']['add'](_0x13b00b['counterView']);}return _0x4ca89b||this['hideDropdown'](),_0x4ca89b;}),_0x13b00b['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x197e13=>{const _0x2142d3=_0x59c4ba['config']['get']('presenceList'),_0x4d8906=new PresenceInlineListItemView(_0x59c4ba['locale'],_0x197e13,!!_0x2142d3['onClick']);return _0x4d8906['bind']('hasTooltip')['to'](_0x13b00b,'isCollapsed',_0x338f07=>!_0x338f07),_0x4d8906['bind']('isFocusable')['to'](_0x13b00b,'isCollapsed',_0x494be1=>!_0x494be1),_0x2142d3['onClick']&&this['listenTo'](_0x4d8906,'execute',()=>{this['view']['isCollapsed']||_0x2142d3['onClick'](_0x197e13,_0x4d8906['element']);}),_0x4d8906;}),this['listenTo'](_0x13b00b['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x13b00b['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x13b00b['inlineListView']['keystrokes']['set']('Enter',(_0x2e4ed4,_0x110931)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x110931());}),_0x13b00b['render'](),_0x431e40['render'](),_0xe0e90e({'emitter':_0x13b00b,'activator':()=>_0x431e40['isVisible'],'contextElements':[_0x431e40['element'],_0x13b00b['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x59c4ba['config']['get']('presenceList.container')['appendChild'](_0x13b00b['element']),this['_bodyCollection']=new _0x5691eb(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x13b00b;}['_handleUserAdd'](_0x453d78){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x453d78['isMe'])return;const _0x283e90=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x283e90-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x8a0e4e=_0x453d78['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x453d78,_0x8a0e4e);}['_handleUserRemove'](_0x26607e){this['usersCount']--;const {collapseAt:_0x15832d}=this['context']['config']['get']('presenceList'),_0xd773a5=this['usersCount']>=_0x15832d;if(this['currentDisplayedUsers']['get'](_0x26607e['id']))this['currentDisplayedUsers']['remove'](_0x26607e['id']);else{if(_0xd773a5&&this['currentDisplayedUsers']['length']+0x1===_0x15832d-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0xd773a5?0x1:0x0)<this['usersCount']){for(const _0x1d2959 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x1d2959['id'])&&(this['currentDisplayedUsers']['add'](_0x1d2959,Math['min'](this['currentDisplayedUsers']['length']-(_0xd773a5?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0xd773a5?0x1:0x0)===_0x15832d-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x59a9ba=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x59a9ba['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x11da4b}=this['presenceDropdownView'];_0x11da4b['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x559bde=>{if(!_0x59a9ba['displayMe']&&_0x559bde['isMe'])return null;const _0x2bdf7e=new PresenceDropdownListItemView(this['context']['locale'],_0x559bde,!!_0x59a9ba['onClick']);return _0x59a9ba['onClick']&&this['listenTo'](_0x2bdf7e,'execute',()=>{_0x59a9ba['onClick'](_0x559bde,_0x2bdf7e['element']);}),_0x2bdf7e;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x11da4b['focus'](),_0x11da4b['checkIfScrollable']();const _0x4185c4=(_0x56a6c5,_0x4931da)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x4931da();};_0x11da4b['keystrokes']['set']('Esc',_0x4185c4),_0x11da4b['keystrokes']['set']('Shift+Tab',_0x4185c4),_0x11da4b['keystrokes']['set']('Tab',(_0x8be03c,_0x3ffbed)=>{!function(_0xd4ff7f){const _0x7c0032=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x54a34a=>_0x54a34a+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x20bf0e=[...document['body']['querySelectorAll'](_0x7c0032)]['filter'](_0x2087b5=>_0x2087b5===document['activeElement']||_0x2087b5['offsetWidth']+_0x2087b5['offsetHeight']>0x0)['sort']((_0x3d4796,_0x5e9f66)=>(_0x3d4796['tabIndex']||0x0)-(_0x5e9f66['tabIndex']||0x0)),_0x41a481=_0x20bf0e['indexOf'](_0xd4ff7f),_0x282597=_0x20bf0e[(_0x41a481+0x1)%_0x20bf0e['length']];_0x282597&&_0x282597['focus']();}(this['view']['element']),this['hideDropdown'](),_0x3ffbed();}),_0x11da4b['focusTracker']['add'](this['view']['element']),_0x11da4b['focusTracker']['on']('change:isFocused',(_0x57d982,_0x2f35db,_0x429798)=>{_0x429798||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 _0x1ab0c4{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};