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

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 _0x548445,Plugin as _0x300c8b,PendingActions as _0x3513e1,Context as _0x2ff439}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x32339d,CKEditorError as _0x351432,Collection as _0x34528e,global as _0x143e42,version as _0x6388ea,uid as _0x4215b6,KeystrokeHandler as _0x5caf56}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x3adc1e,View as _0x5510d0,ListView as _0x55910f,ListItemView as _0xcf9da3,LabelView as _0x5b81f0,BalloonPanelView as _0x33f98f,clickOutsideHandler as _0x6e4637,BodyCollection as _0x233bd9}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x515600,History as _0x281616,NoOperation as _0x2a766a,InsertOperation as _0x1d0940,MarkerOperation as _0x23582a,RootAttributeOperation as _0x5da110,transformOperationSets as _0x10be08,OperationFactory as _0x18abfd}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x2c105b}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x23e91d,WEB_SOCKET_GATEWAY_STATES as _0x57a7c5,CollaborativeEditingService as _0x3e2b79,User as _0x167379,CommentsService as _0x4c9f59,TrackChangesService as _0x444fdd,RevisionHistoryService as _0xf4e34f,EditorService as _0x30df8b}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x351d2b,UserView as _0x5b5282}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x465c23}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x3e38ba,TrackChanges as _0x5f27f3}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x184887,Comments as _0x14ef29,CommentsEditing as _0x4a8d6b}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x5fa821}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x48bc4d}from'es-toolkit/compat';class WebSocketGateway extends _0x548445{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
24
+ ((()=>_0x23e91d)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x2c105b,_0x3adc1e];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x2afb84){super(_0x2afb84),this['set']('state',_0x57a7c5['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x32339d())();}['init'](){const _0x3136b5=this['context'],_0x68fa30=_0x3136b5['plugins']['get'](_0x2c105b),_0x1a581c=_0x3136b5['plugins']['get'](_0x3adc1e);if(!_0x68fa30['token'])throw new _0x351432('websocketgateway-missing-token',this);if(!_0x68fa30['webSocketUrl'])throw new _0x351432('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'](_0x68fa30['token'],_0x68fa30['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x52f7fd=>{if(this['connection']=_0x52f7fd,this['bind']('state')['to'](_0x52f7fd,'state',this,'_isBrowserOffline',(_0x1b356b,_0x42acb8)=>('connected'!==_0x1b356b&&(this['_shouldPluginsReconnect']=!0x0),_0x42acb8||_0x1b356b!==_0x57a7c5['CONNECTED']?_0x57a7c5['DISCONNECTED']:this['state']==_0x57a7c5['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x57a7c5['CONNECTING']):_0x57a7c5['CONNECTED'])),this['connection']['on']('error',(_0x2572c9,_0x388b4c)=>{if('limitExceeded'!==_0x388b4c['code'])throw console['error'](_0x388b4c),new _0x351432('cloudservices-init',null,{'originalError':_0x388b4c});_0x1a581c['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'});}),!_0x52f7fd['me'])return new Promise(_0x5b7ee7=>_0x52f7fd['on']('change:me',_0x5b7ee7));})['catch'](_0x3f8448=>{throw console['error'](_0x3f8448),new _0x351432('cloudservices-init',null,{'originalError':_0x3f8448});});}['addToReconnectionStack'](_0x2b5e7b){if('function'!=typeof _0x2b5e7b['reconnect'])throw new _0x351432('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x2b5e7b))throw new _0x351432('websocketgateway-plugin-already-registered',this,{'name':_0x2b5e7b['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x2b5e7b);}['removeFromReconnectionStack'](_0xd5de82){this['_reconnectionStack']['delete'](_0xd5de82);}['isInReconnectionStack'](_0x54de66){return this['_reconnectionStack']['has'](_0x54de66);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x53591d=>_0x53591d['reconnect']())))['then'](()=>this['state']=_0x57a7c5['CONNECTED'])['catch'](_0x154cd2=>{throw console['error'](_0x154cd2),new _0x351432('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x57a7c5['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x548445{['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,_0x351d2b];}constructor(_0x3beb4e){super(_0x3beb4e),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x34528e(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x351d2b);}['init'](){const _0x4e16fd=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x4e16fd,'change:state',(_0x206de4,_0x18247a,_0x5d6fe8)=>{if('connected'!==_0x5d6fe8)this['channelSessions']['forEach'](_0x235171=>_0x235171['clear']()),this['channelConnectedUsers']['forEach'](_0xe1e127=>_0xe1e127['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x54e3cb,_0x29f70d]of this['_registeredSessions'])for(const _0x9d77ae of _0x29f70d)this['_handleSessionAdd'](_0x54e3cb,_0x9d77ae);}}),this['_createUser'](_0x4e16fd['connection']['me'],!0x0);}['register'](_0x325809,_0x2740bc){if(this['_registeredSessions']['has'](_0x325809))throw new _0x351432('sessions-register-already-registered',null,{'channelId':_0x325809});this['_registeredSessions']['set'](_0x325809,_0x2740bc),this['channelSessions']['set'](_0x325809,new _0x34528e()),this['channelConnectedUsers']['set'](_0x325809,new _0x34528e()),this['listenTo'](_0x2740bc,'add',(_0x2860b1,_0x3f77ab)=>this['_handleSessionAdd'](_0x325809,_0x3f77ab)),this['listenTo'](_0x2740bc,'remove',(_0xf2cc5a,_0x1a4803)=>this['_handleSessionRemove'](_0x325809,_0x1a4803));for(const _0xb65075 of _0x2740bc)this['_handleSessionAdd'](_0x325809,_0xb65075);}['unregister'](_0x32f6db){if(!this['_registeredSessions']['has'](_0x32f6db))throw new _0x351432('sessions-unregister-not-exist',null,{'channelId':_0x32f6db});const _0x31c8ec=this['_registeredSessions']['get'](_0x32f6db);this['stopListening'](_0x31c8ec);for(const _0x5de056 of _0x31c8ec)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x32f6db,_0x5de056);this['_registeredSessions']['delete'](_0x32f6db),this['channelSessions']['delete'](_0x32f6db),this['channelConnectedUsers']['delete'](_0x32f6db);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x15a1fb){for(const _0x41c944 of this['channelSessions']['values']())for(const _0x2b49e7 of _0x41c944)if(_0x2b49e7['id']===_0x15a1fb)return _0x2b49e7['user'];}['getUserSessions'](_0x45d954,_0x192e4b){const _0x2cd5a9=_0x192e4b?[this['channelSessions']['get'](_0x192e4b)]:this['channelSessions']['values'](),_0x51135d=new Set();for(const _0x39b267 of _0x2cd5a9)for(const _0x47bbf3 of _0x39b267)_0x47bbf3['user']['id']===_0x45d954['id']&&_0x51135d['add'](_0x47bbf3['id']);return _0x51135d;}['getUserRole'](_0x254715){for(const _0x3be676 of this['channelSessions']['values']())for(const _0xc5bc00 of _0x3be676)if(_0xc5bc00['user']===_0x254715)return _0xc5bc00['role'];}['_handleSessionAdd'](_0x42379e,_0x25b4a2){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x2019d1=_0x25b4a2['user'],_0xb838b4=this['_users']['getUser'](_0x2019d1['id'])||this['_createUser'](_0x2019d1),_0x442ed9=Object['assign']({},_0x25b4a2,{'user':_0xb838b4});if(this['channelSessions']['get'](_0x42379e)['add'](_0x442ed9),!_0x2019d1['hiddenInPresenceList']){const _0x3eb7c5=this['channelConnectedUsers']['get'](_0x42379e);_0x3eb7c5['has'](_0xb838b4['id'])||_0x3eb7c5['add'](_0xb838b4),this['allConnectedUsers']['has'](_0xb838b4['id'])||_0x2019d1['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0xb838b4,_0xb838b4['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x42379e,{'channelId':_0x42379e,'session':_0x442ed9});}['_handleSessionRemove'](_0x3507c3,_0x81c58b){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x4a4012=this['channelConnectedUsers']['get'](_0x3507c3),_0x123c67=_0x81c58b['user'];_0x123c67['id']&&(this['channelSessions']['get'](_0x3507c3)['remove'](_0x81c58b['id']),_0x4a4012['has'](_0x123c67['id'])&&!this['getUserSessions'](_0x123c67,_0x3507c3)['size']&&_0x4a4012['remove'](_0x123c67['id']),this['allConnectedUsers']['get'](_0x123c67['id'])&&!this['getUserSessions'](_0x123c67)['size']&&this['allConnectedUsers']['remove'](_0x123c67['id']));}['_createUser'](_0x4511cc,_0x5db21c){const _0x416f6b=this['_users']['addUser'](_0x4511cc);return _0x5db21c&&this['_users']['defineMe'](_0x4511cc['id']),_0x416f6b['orderNumber']=this['_uniqueUsersCount']++,_0x416f6b;}}class UserMarkers extends _0x300c8b{['_domEmitter']=new(_0x32339d())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x499a93=this['editor'],_0x5ea90a=_0x499a93['plugins']['get'](Sessions);_0x499a93['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x28c0c6,{writer:_0x598f88})=>function(_0x1f8868,_0xfe1f94,_0x254d06,_0x137b11){const _0x73996b=_0x1f8868['markerName']['split'](':')[0x2],_0x338faa=_0x254d06['getUserBySessionId'](_0x73996b);if(!_0x338faa||_0x73996b===_0x254d06['mySessionId'])return;if(!_0x137b11['model']['schema']['checkChild'](_0x1f8868['markerRange']['start'],'$text'))return;const _0x169a37={'class':'ck-user__marker\x20'+_0x338faa['color']['getMarkerClass'](),'style':Y(_0x338faa),'data-name':_0x338faa['name'],'data-session-id':_0x73996b},_0x4a3c06=_0x137b11['model']['markers']['get'](_0x1f8868['markerName']),_0x2c248a=_0x4a3c06['getStart'](),_0x462dde=_0x2c248a['nodeAfter'],_0x329e56=_0x137b11['model']['schema'];if(_0x462dde&&_0x329e56['isObject'](_0x462dde)&&_0x329e56['isInline'](_0x462dde)&&!_0x137b11['model']['markers']['get']('user:range:'+_0x73996b)['getRange']()['isCollapsed'])return;const _0x3f5b08=_0x2c248a['parent'];return _0x137b11['model']['schema']['isLimit'](_0x3f5b08)&&!_0x137b11['model']['hasContent'](_0x3f5b08)&&(_0x169a37['contenteditable']=!0x1),function(_0x9f88e8,_0x1b6cc7,_0x473ea3){const _0x4f2e3b=_0x9f88e8['createUIElement']('span',_0x1b6cc7);return _0x9f88e8['setCustomProperty']('userPositionMarker',!0x0,_0x4f2e3b),_0x4f2e3b['render']=function(_0x4b8b9f){const _0x2fd0c8=this['toDomElement'](_0x4b8b9f),_0x28f06e=document['createElement']('span');return _0x28f06e['classList']['add']('ck-user__marker-tooltip'),_0x28f06e['setAttribute']('contenteditable','false'),_0x28f06e['setAttribute']('spellcheck','false'),_0x28f06e['textContent']=_0x473ea3['name'],_0x2fd0c8['innerHTML']='⁠<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x28f06e['outerHTML']+'⁠',_0x2fd0c8['addEventListener']('mouseenter',()=>{_0x2fd0c8['classList']['add']('ck-user__marker_hovered');}),_0x2fd0c8['addEventListener']('mouseleave',()=>{_0x2fd0c8['classList']['remove']('ck-user__marker_hovered');}),_0x2fd0c8;},_0x4f2e3b['isSimilar']=function(_0x27ea24){return!(!this['getCustomProperty']('userPositionMarker')||!_0x27ea24['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x27ea24['getAttribute']('data-session-id'));},_0x4f2e3b;}(_0xfe1f94,_0x169a37,_0x338faa);}(_0x28c0c6,_0x598f88,_0x5ea90a,_0x499a93)}),_0x499a93['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x5786f8=>function(_0x32f8f8,_0x3ad0ad){const _0x226a0a=_0x32f8f8['markerName']['split'](':')[0x2];if(_0x226a0a===_0x3ad0ad['mySessionId'])return null;const _0x5e2b1f=_0x3ad0ad['getUserBySessionId'](_0x226a0a);if(!_0x5e2b1f)return{'id':_0x226a0a,'classes':[]};return{'id':_0x226a0a,'classes':['ck-user__selection',_0x5e2b1f['color']['getSelectionClass']()],'attributes':{'style':Y(_0x5e2b1f),'data-session-id':_0x226a0a},'priority':0x7d0+_0x5e2b1f['orderNumber']};}(_0x5786f8,_0x5ea90a)}),function(_0x32a450){const _0x578a62=_0x32a450['model'],_0x26ffe4=new Map(),_0x34f9a7=_0x32a450['plugins']['get'](Sessions);_0x578a62['markers']['on']('update:user:range',(_0x214f88,_0x52f29b,_0x44d3de,_0x2ac210)=>{if(!_0x2ac210&&_0x26ffe4['get'](_0x52f29b['name']))return _0x26ffe4['get'](_0x52f29b['name'])['detach'](),void _0x26ffe4['delete'](_0x52f29b['name']);const _0x2f5abe=_0x52f29b['name']['split'](':')[0x2];if(_0x2f5abe===_0x34f9a7['mySessionId'])return;const _0x40a97d='user:position:'+_0x2f5abe;_0x578a62['markers']['has'](_0x40a97d)&&_0x32a450['editing']['reconvertMarker'](_0x40a97d),_0x52f29b['on']('change:range',(_0x340cae,_0x45a794,_0x2c2028)=>{if('$graveyard'!=_0x45a794['root']['rootName']&&'$graveyard'==_0x52f29b['getRange']()['root']['rootName']&&!_0x26ffe4['has'](_0x52f29b['name'])){const _0x35ca33=_0x578a62['schema']['getNearestSelectionRange'](_0x2c2028['deletionPosition']);if(_0x35ca33){const _0x4a7280=_0x515600['fromRange'](_0x35ca33);_0x26ffe4['set'](_0x52f29b['name'],_0x4a7280),_0x4a7280['on']('change:range',(_0x53fed3,_0x162b76,_0x5d0131)=>{if('$graveyard'==_0x4a7280['root']['rootName']){const _0x15efb9=_0x578a62['schema']['getNearestSelectionRange'](_0x5d0131['deletionPosition']);_0x15efb9?(_0x4a7280['start']=_0x15efb9['start'],_0x4a7280['end']=_0x15efb9['end']):(_0x26ffe4['delete'](_0x52f29b['name']),_0x4a7280['detach']());}});}}});}),_0x578a62['document']['on']('change',()=>{_0x26ffe4['size']>0x0&&_0x578a62['enqueueChange']({'isUndoable':!0x1},_0x16e2eb=>{for(const [_0x1c470c,_0x50a1af]of _0x26ffe4)'$graveyard'==_0x578a62['markers']['get'](_0x1c470c)['getRange']()['root']['rootName']&&(z(_0x1c470c['split'](':')[0x2],_0x50a1af['toRange'](),_0x578a62,_0x16e2eb),_0x50a1af['detach']());_0x26ffe4['clear']();});});}(_0x499a93),this['_domEmitter']['listenTo'](_0x143e42['document'],'keydown',(_0x65c30d,{key:_0x67fd05})=>{'Escape'===_0x67fd05&&function(_0x420421){_0x420421['editing']['view']['change'](_0x36f6ad=>{for(const _0x1cd00d of _0x420421['model']['markers']){if(!_0x1cd00d['name']['startsWith']('user:position'))continue;const _0x2bf7a6=_0x420421['editing']['mapper']['markerNameToElements'](_0x1cd00d['name']);if(_0x2bf7a6){for(const _0x54430c of _0x2bf7a6)_0x36f6ad['removeClass']('ck-user__marker_hovered',_0x54430c);}}});}(_0x499a93);},{'useCapture':!0x0});}['afterInit'](){const _0x36702b=this['editor'],_0x588807=_0x36702b['commands']['get']('undo');_0x588807&&_0x36702b['model']['on']('applyOperation',(_0x3b3e3b,_0xb43885)=>{const _0x3820fc=_0xb43885[0x0];if(!_0x3820fc['isDocumentOperation'])return;if('marker'!=_0x3820fc['type']||!_0x3820fc['name']['startsWith']('user:'))return;const _0x5e54b2=_0x3820fc['batch'];_0x588807['_createdBatches']['has'](_0x5e54b2)&&(_0x3820fc['newRange']=_0x3820fc['oldRange']?_0x36702b['model']['createRange'](_0x3820fc['oldRange']['start'],_0x3820fc['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x3b952f=this['editor'],_0x12ceb6=_0x3b952f['model']['document'],_0x5f1e4=_0x3b952f['plugins']['get'](Sessions);_0x3b952f['model']['enqueueChange']({'isUndoable':!0x1},_0x556761=>{const _0x2cc066='user:range:'+_0x5f1e4['mySessionId'],_0x2e75bb='user:position:'+_0x5f1e4['mySessionId'],_0x573bd3=_0x3b952f['model']['markers']['has'](_0x2cc066);_0x3b952f['editing']['view']['hasDomSelection']?z(_0x5f1e4['mySessionId'],_0x12ceb6['selection']['getFirstRange'](),_0x3b952f['model'],_0x556761):_0x573bd3&&(_0x556761['removeMarker'](_0x2cc066),_0x556761['removeMarker'](_0x2e75bb));});}}function z(_0xef2a2c,_0x4d22b4,_0x27da11,_0x24a758){const _0x177e08='user:range:'+_0xef2a2c,_0x301d2d='user:position:'+_0xef2a2c,_0x1d7cdf=_0x4d22b4['getContainedElement']();let _0x16ec98=_0x4d22b4['start'];if(_0x1d7cdf&&_0x1d7cdf['is']('element','tableCell')){const _0x11950c=function(_0x51234d,_0x5165f0){for(const _0x1002d3 of _0x51234d['getPositions']())if(_0x5165f0['schema']['checkChild'](_0x1002d3,'$text'))return _0x1002d3;}(_0x4d22b4,_0x27da11);_0x11950c&&(_0x16ec98=_0x11950c,_0x4d22b4=_0x24a758['createRange'](_0x16ec98));}const _0x47dd7d=_0x24a758['createRange'](_0x16ec98);_0x27da11['markers']['has'](_0x177e08)?(_0x24a758['updateMarker'](_0x177e08,{'range':_0x4d22b4}),_0x24a758['updateMarker'](_0x301d2d,{'range':_0x47dd7d})):(_0x24a758['addMarker'](_0x177e08,{'range':_0x4d22b4,'usingOperation':!0x0}),_0x24a758['addMarker'](_0x301d2d,{'range':_0x47dd7d,'usingOperation':!0x0}));}function Y(_0x3e2892){return'--ck-user-color:'+_0x3e2892['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x3e2892['color']['getColorAlphaVariable']()+';';}function K(_0x3fc6d8,_0x5b69ff,_0x21d19f){const _0xe9c56c=_0x3fc6d8['t'],t=_0x3fc6d8['t'];switch(_0x5b69ff){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 _0xe9c56c({'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'},_0x21d19f);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x300c8b{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
25
+ ((()=>_0x3e2b79)());['_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,_0x3513e1,_0x351d2b,_0x3adc1e];}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 _0x192309=this['serverHistory']['getOperations']();for(let _0x2bc1d4=_0x192309['length']-0x1;_0x2bc1d4>=0x0;_0x2bc1d4--){const _0x55f962=_0x192309[_0x2bc1d4];if(!this['_disconnectionOperations']['has'](_0x55f962))return _0x55f962['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x1e563c){if(super(_0x1e563c),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x281616(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x351432('collaboration-missing-channelid',this);const _0x55e94d=_0x1e563c['config']['get']('cloudServices.bundleVersion')||_0x6388ea;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x55e94d,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x465c23(),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 _0x270c70=this['editor'],_0x464cc2=_0x270c70['plugins']['get'](_0x351d2b),_0x23f63c=_0x270c70['plugins']['get'](WebSocketGateway);this['listenTo'](_0x464cc2,'getOperationAuthor',(_0x4e1cfa,_0x2f76a6)=>{const _0x4da640=_0x2f76a6[0x0];_0x4da640['_authorId']&&(_0x4e1cfa['return']=_0x464cc2['getUser'](_0x4da640['_authorId']),_0x4e1cfa['stop']()),null===_0x4da640['_authorId']&&(_0x4e1cfa['return']=null,_0x4e1cfa['stop']());},{'priority':'high'}),this['listenTo'](_0x270c70['model']['document']['selection'],'change:range',(_0x20e89a,_0x1c0f95)=>{_0x1c0f95['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x270c70['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x270c70['model']['on']('applyOperation',(_0x139a58,_0x58c76c)=>{const _0x6e7741=_0x58c76c[0x0];_0x6e7741['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x6e7741),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x23f63c,'state',this,'_hasSynchronizationProblem',(_0x44e40c,_0x32cc61)=>'connected'===_0x44e40c&&!_0x32cc61),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x270c70['disableReadOnlyMode']('rtc-offline'):_0x270c70['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x270c70['disableReadOnlyMode']('rtc-offline'):_0x270c70['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0xf15534=this['editor']['plugins']['get'](Sessions),_0x4ffd23=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0xf15534['unregister'](this['_channelId']);const _0x142b96=await this['_service']['reconnect'](_0x4ffd23['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x142b96)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x203949=await this['_service']['getConnectedSessions']();_0xf15534['register'](this['_channelId'],_0x203949),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x28cacc){if(function(_0x2e267d){return'404'===_0x2e267d['code'];}(_0x28cacc)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x1dae15){return'409'===_0x1dae15['code'];}(_0x28cacc)){const _0x46a89a=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'](_0x46a89a);}else{if(!(_0x28cacc instanceof ReconnectionError))throw _0x28cacc;this['_handleReconnectionError']();}}}}['destroy'](){const _0xfac075=this['editor']['plugins']['get'](WebSocketGateway),_0x2435c6=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x2435c6['channelSessions']['has'](this['_channelId'])&&_0x2435c6['unregister'](this['_channelId']),_0xfac075['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x3ce21b){if(this['sessionId']!==_0x3ce21b['sessionId']&&this['_lastSyncedOperationId']!==_0x3ce21b['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x3ce21b['sessionId'],this['_handleServerResponse']([],{..._0x3ce21b,'wereChangesApplied':!0x1,'data':_0x3ce21b['data']},'reconnect');}async['_connectService'](_0x1fbb02,_0x1f9cb5=!0x1){const {connection:_0xf86ef4}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0xf86ef4,this['_channelId'])['then'](_0x2b76c4=>this['_initSessionsHandling'](_0x2b76c4))['catch'](_0x11bc2e=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x11bc2e);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x57904b,_0x47fd58)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x47fd58);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x5e8c02=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x1fbb02);this['_isPendingUpdate']=!0x0;const _0x361e55=await this['_service']['connect'](_0xf86ef4,this['_compressOperations'](_0x1fbb02),_0x5e8c02);if(this['sessionId']=_0x361e55['sessionId'],_0x1f9cb5){if(!_0x361e55['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x361e55['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x1fbb02,_0x361e55,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x361e55,_0x1fbb02);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x16d1b1=this['editor']['plugins']['get'](Sessions),_0x152a84=this['editor']['plugins']['get'](UserMarkers),_0x22d1e8=_0x16d1b1['channelSessions']['get'](this['_channelId']);_0x22d1e8&&_0x22d1e8['length']>0x1?_0x152a84['createUserMarkerOperations']():this['listenTo'](_0x16d1b1,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x16d1b1['channelSessions']['get'](this['_channelId'])['length']&&_0x152a84['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x2543e0,_0x105be9,_0x4f85f7,_0x1cb747){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x105be9){const _0x346f17=this['_decompressOperations'](_0x4f85f7,_0x1cb747);await this['_fetchMissingUsers'](_0x346f17),this['_handleExternalOperations'](_0x346f17,_0x105be9,_0x4f85f7['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x8aa1ed}=this['editor'];let _0x543502;try{_0x543502=await this['_service']['getDocumentDetails']();}catch{const _0x388de6=K(_0x8aa1ed,'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'](_0x388de6);}const _0x50daa6=_0x543502['currentDocumentSession']||_0x543502['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x50daa6['lastOperationId']){const _0x4a1821=K(_0x8aa1ed,'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'](_0x4a1821);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x1ffb1f){const _0x591490=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x591490,'sessionAdd:'+this['_channelId'],(_0x14357d,{session:_0x38f468})=>{if(_0x38f468['id']===_0x591490['mySessionId']){_0x14357d['off']();const _0x525c5b=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x52022e=_0x38f468['permissions'];_0x525c5b&&_0x525c5b['isEnabled']&&(_0x52022e=_0x52022e['filter'](_0x1292b8=>'document:write'!==_0x1292b8)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x52022e,this['_channelId']);}}),_0x591490['register'](this['_channelId'],_0x1ffb1f);}['_initThrowingOnDataSet'](){const _0x570981=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x5ae753)=>{if(!_0x5ae753[_0x5ae753['length']-0x1]['suppressErrorInCollaboration'])throw new _0x351432('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x570981['apply'](this['editor']['data'],_0x5ae753);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x4240e8,[_0x1be240])=>{if(this['_document']['version'])throw new _0x351432('realtimecollaborationclient-init-document-already-initialized',this);_0x4240e8['stop'](),this['_setPendingAction']();const _0x9399e7=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x3c2618])=>!_0x3c2618['lazyLoad'])['map'](([_0x45a7bc,_0x589ec7])=>[_0x45a7bc,_0x589ec7['modelAttributes']||{}])),_0x1c669f=this['_getOperationsFromInitData'](_0x1be240,_0x9399e7);0x0==_0x1c669f['length']&&_0x1c669f['push'](new _0x2a766a(0x0)),_0x4240e8['return']=this['_connectService'](_0x1c669f)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x4d9936=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x4d9936))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x49f1b6,[_0x32dad2,_0x111015])=>{_0x49f1b6['stop']();const _0x162adc=this['editor']['model']['document']['getRoot'](_0x32dad2);if(!this['_knownRootNames']['has'](_0x32dad2)){const _0x584665=_0x111015&&_0x111015['data']?_0x111015['data']:'',_0x340950=_0x111015&&_0x111015['attributes']?_0x111015['attributes']:{};await this['_loadRoot'](_0x32dad2,_0x584665,_0x340950);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x162adc['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x162adc);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x3cb340){const _0x3be658=this['editor']['plugins']['get'](_0x351d2b),{connection:_0x592496}=this['editor']['plugins']['get'](WebSocketGateway),_0x5a13c3=new Set();for(const _0x52ccc6 of _0x3cb340){const _0x33d629=_0x52ccc6['_authorId'];_0x33d629&&!_0x3be658['getUser'](_0x33d629)&&_0x5a13c3['add'](_0x33d629);}if(0x0===_0x5a13c3['size'])return;const _0x15f851=await _0x167379['getMany'](_0x592496,Array['from'](_0x5a13c3));for(const _0x16dc3a of _0x15f851)_0x3be658['getUser'](_0x16dc3a['id'])||_0x3be658['addUser'](_0x16dc3a);}['_getOperationsFromInitData'](_0x9e1ed0,_0x35bc5a={}){const _0x3fb64f=this['editor']['model'],_0x3014d0=[];let _0x52f382=0x0;const _0x2f36b0='string'==typeof _0x9e1ed0?{'main':_0x9e1ed0}:_0x9e1ed0;for(const _0x3966eb of Object['keys'](_0x2f36b0)){if(!this['_document']['roots']['has'](_0x3966eb))throw new _0x351432('realtimecollaborationclient-init-non-existent-root',this);const _0x2d27d=this['_document']['getRoot'](_0x3966eb),_0x405892=this['editor']['data']['parse'](_0x2f36b0[_0x3966eb],_0x2d27d),_0x2f0021=new _0x1d0940(_0x3fb64f['createPositionAt'](_0x2d27d,0x0),_0x405892,_0x52f382++);_0x3014d0['push'](_0x2f0021);for(const [_0x5d3c8d,_0xce1a69]of _0x405892['markers']){const _0xfd1084=_0x3fb64f['createRange'](_0x3fb64f['createPositionFromPath'](_0x2d27d,_0xce1a69['start']['path']['slice']()),_0x3fb64f['createPositionFromPath'](_0x2d27d,_0xce1a69['end']['path']['slice']())),_0x1ff126=new _0x23582a(_0x5d3c8d,null,_0xfd1084,_0x3fb64f['markers'],!0x0,_0x52f382++);_0x3014d0['push'](_0x1ff126);}}if(_0x35bc5a)for(const [_0x508469,_0x279886]of Object['entries'](_0x35bc5a)){const _0x654651=_0x3fb64f['document']['getRoot'](_0x508469);if(!_0x654651)throw new _0x351432('multi-root-editor-root-attributes-no-root',null);for(const [_0x1f5ff2,_0x237bd6]of Object['entries'](_0x279886))if(null!==_0x237bd6){const _0x4de2ea=new _0x5da110(_0x654651,_0x1f5ff2,null,_0x237bd6,_0x52f382++);_0x3014d0['push'](_0x4de2ea);}}return _0x3014d0;}async['_loadRoot'](_0x41c855,_0x14c4da,_0x5c3621){this['_getOperationsFromInitData']({[_0x41c855]:_0x14c4da},{[_0x41c855]:_0x5c3621})['forEach']((_0xaaf8e8,_0x3be63c)=>{_0xaaf8e8['baseVersion']=this['_document']['version']+_0x3be63c,_0xaaf8e8['_isInit']=!0x0,this['_saveOperationInBuffer'](_0xaaf8e8);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x2fecb4,_0x50990c){let _0x4da63a;this['_offset']=_0x2fecb4['offset'];const _0x253822=_0x2fecb4['wereChangesApplied']&&!_0x2fecb4['initData'],_0x52369b=_0x253822?0x0:_0x2fecb4['data']['baseVersion'];if(_0x50990c['forEach'](_0x467b82=>{_0x467b82['_isInit']=!0x0,_0x467b82['createdAt']=_0x2fecb4['sessionCreatedAt'],_0x467b82['_authorId']=null;}),_0x253822)_0x4da63a=_0x50990c,this['_applyOperationsSet'](_0x4da63a,_0x253822);else{if(_0x2fecb4['initData']){const _0x25da9b=this['_getOperationsFromInitData'](_0x2fecb4['initData']);this['_document']['history']['version']=-_0x25da9b['length'],_0x25da9b['forEach'](_0x51014a=>{_0x51014a['baseVersion']-=_0x25da9b['length'],_0x51014a['createdAt']=_0x2fecb4['sessionCreatedAt'],_0x51014a['_isInit']=!0x0,_0x51014a['_authorId']=null;}),this['_applyOperationsSet'](_0x25da9b,!0x0),this['serverHistory']['version']=-_0x25da9b['length']+this['_offset'],this['_updateServerHistory'](_0x25da9b);}this['_document']['history']['version']=_0x52369b,_0x4da63a=this['_decompressOperations'](_0x2fecb4['data'],_0x2fecb4['metadata']),await this['_fetchMissingUsers'](_0x4da63a),this['_applyOperationsSet'](_0x4da63a,_0x253822);}_0x2fecb4['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x4da63a,_0x2fecb4['lastOperationId']),this['_lastSyncedOperationId']=_0x2fecb4['lastOperationId']),this['serverHistory']['version']=_0x52369b+this['_offset'],this['_updateServerHistory'](_0x4da63a),_0x50990c['filter'](_0x1ea538=>{const _0xbf9d85=this['_getAffectedRoot'](_0x1ea538);return _0xbf9d85&&!this['_knownRootNames']['has'](_0xbf9d85);})['forEach']((_0x236dc9,_0x27a8e7)=>{_0x236dc9['baseVersion']=this['_document']['version']+_0x27a8e7,this['_saveOperationInBuffer'](_0x236dc9);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x3721c1,_0xb48406){const _0x2dba2d=_0xb48406&&_0xb48406['message'];if(_0x2dba2d&&_0x2dba2d['startsWith']('realtimecollaborationclient'))throw _0xb48406;const _0x182714=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x182714['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x351432(_0x3721c1,this['editor'],_0x2dba2d?{'originalError':_0x2dba2d}:void 0x0);}['_saveOperationInBuffer'](_0x39f541){this['_knownOperations']['has'](_0x39f541)||(this['_knownOperations']['add'](_0x39f541),this['_bufferedOperations']['push'](_0x39f541),this['_pendingAction']||'marker'==_0x39f541['type']&&!_0x39f541['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x24a40b=!0x1){!_0x24a40b&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x5082e3=>{_0x5082e3&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x243caf=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x3de1fa){return _0x3de1fa['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x3de1fa['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x3de1fa['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x243caf)||this['_crash'](_0x243caf['message'],_0x243caf);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x11adf8=>{this['on']('change:_isPendingUpdate',()=>{_0x11adf8();});});}async['_sendBufferedOperations'](){const _0xb85685=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0xb85685['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x4d04b7=[...this['_bufferedOperations']];for(const _0x3f8b9c of _0x4d04b7)_0x3f8b9c['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x3f8b9c);const _0x650c09=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x4d04b7),_0x472894=J++,_0xae2479=this['_compressOperations'](_0x4d04b7),_0x49d8cd=await this['_service']['sendOperations'](_0xae2479,_0xae2479['baseVersion'],_0x650c09);try{return await this['_handleServerResponse'](_0x4d04b7,_0x49d8cd,_0x472894);}catch(_0x1c63b1){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x1c63b1);}}async['_handleServerResponse'](_0x49363f,_0x12817b,_0x5505f){if('error'in _0x12817b)throw _0x12817b['error'];let _0x363488=!0x1;if(_0x12817b['wereChangesApplied']){_0x12817b['lastOperationId']&&(this['_lastSyncedOperationId']=_0x12817b['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x3ab050=>!_0x49363f['includes'](_0x3ab050));for(const _0x4ebdc4 of _0x49363f)_0x4ebdc4['createdAt']='lastOperationAcceptedAt'in _0x12817b&&_0x12817b['lastOperationAcceptedAt']||void 0x0;Q(_0x49363f,_0x12817b['version']-_0x49363f['length']),this['_updateServerHistory'](_0x49363f);const _0x539fea=_0x49363f['filter'](_0x58a679=>{if(!_0x58a679['_isInit'])return!0x1;const _0xacba5d=this['_getAffectedRoot'](_0x58a679);return _0xacba5d&&!this['_knownRootNames']['has'](_0xacba5d);});Q(_0x539fea,this['_document']['version']),this['_applyOperationsSet'](_0x539fea),_0x363488=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x5c60a1=this['_decompressOperations'](_0x12817b['data'],_0x12817b['metadata'])['filter'](_0x2b157a=>_0x2b157a['baseVersion']>=this['_lastServerVersion']);_0x5c60a1['forEach'](_0x2acc1a=>this['_addKnownRoot'](_0x2acc1a)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0xf29e3b=>!_0xf29e3b['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0xf29e3b))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x5c60a1),_0x363488=this['_handleExternalOperations'](_0x5c60a1,_0x12817b['version'],_0x12817b['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x363488?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x199907,_0x181ea0,_0x33baea){try{const _0x4e4731={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x2a7792,operationsB:_0x595f4c,originalOperations:_0x3633a8}=_0x10be08(_0x199907,this['_bufferedOperations'],_0x4e4731);Q(_0x2a7792,this['_document']['version']),Q(_0x595f4c,_0x181ea0);for(const _0x2025e4 of _0x2a7792){const _0x48a0c4=_0x3633a8['get'](_0x2025e4);_0x2025e4['_authorId']=_0x48a0c4?_0x48a0c4['_authorId']:null;}_0x33baea&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x199907,_0x33baea),this['_lastSyncedOperationId']=_0x33baea),this['_bufferedOperations']=[..._0x595f4c],this['_applyOperationsSet'](_0x2a7792),this['_updateServerHistory'](_0x199907);}catch(_0x211777){return console['error'](_0x211777),!0x1;}return!0x0;}['_applyOperationsSet'](_0xe76e10,_0x355151=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x5437fb=>{for(const _0x3d703f of _0xe76e10)this['_knownOperations']['add'](_0x3d703f),this['_addKnownRoot'](_0x3d703f),_0x5437fb['batch']['addOperation'](_0x3d703f),this['editor']['model']['applyOperation'](_0x3d703f);});}['_addKnownRoot'](_0x11254f){const _0x3f5cb8=this['_getAffectedRoot'](_0x11254f);_0x3f5cb8&&this['_knownRootNames']['add'](_0x3f5cb8);}['_getAffectedRoot'](_0x2e7d73){let _0x2add73,_0x4bd27e;switch(_0x2e7d73['type']){case'insert':_0x2add73=_0x2e7d73['position']['root'];break;case'marker':if(_0x4bd27e=_0x2e7d73['newRange'],!_0x4bd27e)return null;_0x2add73=_0x4bd27e['root'];break;case'addRootAttribute':_0x2add73=_0x2e7d73['root'];break;case'addRoot':_0x2add73=_0x2e7d73['affectedSelectable'];break;case'move':_0x2add73=_0x2e7d73['targetPosition']['root'];break;default:return null;}return _0x2add73['rootName'];}['_updateServerHistory'](_0x2787cf){_0x2787cf['forEach'](_0x4648f7=>{const _0x2edb4d=_0x4648f7['clone']();_0x2edb4d['_authorId']=_0x4648f7['_authorId'],_0x2edb4d['_isInit']=!!_0x4648f7['_isInit'],_0x2edb4d['createdAt']=_0x4648f7['createdAt'],_0x2edb4d['baseVersion']+=this['_offset'],_0x4648f7['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x2edb4d),this['serverHistory']['addOperation'](_0x2edb4d);});}['_handleReconnectionError'](_0x17d88b){const _0x5cec8f=this['editor']['plugins']['get']('Notification'),_0x242993=this['editor']['locale'];_0x17d88b||(_0x17d88b=K(_0x242993,'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.')),_0x5cec8f['showWarning'](_0x17d88b,{'title':K(_0x242993,'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'](_0x3513e1)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x3513e1)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x1b64b4){const _0x3e1f68=_0x1b64b4['map'](_0x26f290=>_0x26f290['toJSON']());return this['_compressor']['compress'](_0x3e1f68);}['_decompressOperations'](_0x509332,_0x1a9cf4){return this['_compressor']['decompress'](_0x509332)['map']((_0x3b71ae,_0x4506fc)=>{const _0x167fda='init'==_0x1a9cf4[_0x4506fc]['type'];if('InsertOperation'==_0x3b71ae['__className']){const _0x35b1a5=_0x3b71ae['position']['root'];!this['_document']['getRoot'](_0x35b1a5)&&(this['_document']['createRoot']('$unknown',_0x35b1a5)['_isAttached']=!0x1);}else{if('RootOperation'==_0x3b71ae['__className']){const _0x2089fe=this['_document']['getRoot'](_0x3b71ae['rootName']);_0x2089fe&&'$unknown'==_0x2089fe['name']&&_0x3b71ae['elementName']!=_0x2089fe['name']&&(_0x2089fe['name']=_0x3b71ae['elementName']);}}const _0x1e28ec=_0x18abfd['fromJSON'](_0x3b71ae,this['_document']);return _0x1e28ec['wasUndone']=_0x3b71ae['wasUndone'],_0x1e28ec['_isInit']=_0x167fda,_0x1e28ec['_authorId']=_0x167fda?null:_0x1a9cf4[_0x4506fc]['userId'],_0x1e28ec['_isDisconnection']='cs:removeUser'===_0x1a9cf4[_0x4506fc]['type'],_0x1e28ec['createdAt']=_0x1a9cf4[_0x4506fc]['createdAt'],_0x1e28ec;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x27f3f9=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x27f3f9&&_0x27f3f9['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x1a1650,_0x366062){for(const _0x4a0f34 of _0x1a1650)_0x4a0f34['baseVersion']=_0x366062++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0xf61852){this['_ignoredOperations']=_0xf61852,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x737eaf){let _0xe48cb0=_0x737eaf['length'];for(;_0xe48cb0--;){const _0x3113e6=_0x737eaf[_0xe48cb0];if(!this['_ignoredOperations']['has'](_0x3113e6)){if(!this['_operationToId']['has'](_0x3113e6)){const _0x34ec7a=_0x4215b6()['slice'](0x1,0x12);this['_operationToId']['set'](_0x3113e6,_0x34ec7a);}return this['_operationToId']['get'](_0x3113e6);}}}['setIdForTheLastOperation'](_0x5464f9,_0x20157a){if(!_0x20157a)return;let _0x1e15e9=_0x5464f9['length'];for(;_0x1e15e9--;){const _0x3aa662=_0x5464f9[_0x1e15e9];this['_ignoredOperations']['has'](_0x3aa662)||this['_operationToId']['set'](_0x3aa662,_0x20157a);}}}class RealTimeCollaborativeEditing extends _0x300c8b{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x548445{static ['CommentsService']=/* #__PURE__ -- @preserve */
26
+ ((()=>_0x4c9f59)());['_services'];static get['requires'](){return[WebSocketGateway,_0x184887,Sessions,_0x351d2b];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x35ad96){super(_0x35ad96),this['_services']=new Map();}async['init'](){const _0x19dfcd=this['context'],_0x49370e=_0x19dfcd['plugins']['get'](_0x184887);if(_0x19dfcd['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x49370e['adapter']={'addCommentThread':async({channelId:_0x31e15e,threadId:_0x288992,comments:_0x1311d3,resolvedAt:_0x660377,resolvedBy:_0x150df4,context:_0xc5d45d,attributes:_0x11f8a5})=>{const _0xa65ce7=await this['_getService'](_0x31e15e)['addCommentThread']({'commentThreadId':_0x288992,'comments':_0x1311d3['map'](_0x268e42=>function(_0x1088d4,_0x5e2ed4,_0x491c63){return{'commentThreadId':_0x491c63,'commentId':_0x1088d4['commentId'],'userId':_0x1088d4['authorId'],'content':_0x1088d4['content'],'documentId':_0x5e2ed4,'createdAt':_0x1088d4['createdAt'],'attributes':_0x1088d4['attributes']||{}};}(_0x268e42,_0x31e15e,_0x288992)),'resolvedAt':_0x660377,'resolvedBy':_0x150df4,'context':_0xc5d45d,'attributes':_0x11f8a5})['catch'](Z);return{'threadId':_0xa65ce7['commentThreadId'],'comments':_0xa65ce7['comments']};},'getCommentThread':async({channelId:_0x77b2a9,threadId:_0x19287f})=>{const _0x5714e2=await this['_getService'](_0x77b2a9)['getCommentThread'](_0x19287f)['catch'](X)['catch'](Z);return _0x5714e2?_0x5714e2['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x5714e2]),{'threadId':_0x5714e2['commentThreadId'],'comments':_0x5714e2['comments']['map'](tt),'context':_0x5714e2['context'],'resolvedAt':_0x5714e2['resolvedAt'],'resolvedBy':_0x5714e2['resolvedBy'],'attributes':_0x5714e2['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x33f046,threadId:_0x3646dc,context:_0x146fca,unlinkedAt:_0xe07032,attributes:_0x5e47b8})=>this['_getService'](_0x33f046)['updateCommentThread']({'commentThreadId':_0x3646dc,'context':_0x146fca,'attributes':_0x5e47b8,'unlinkedAt':_0xe07032})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x332939,threadId:_0x28bd04})=>{const _0x410b10=await this['_getService'](_0x332939)['resolveCommentThread'](_0x28bd04)['catch'](X)['catch'](Z);return{'threadId':_0x410b10['commentThreadId'],'resolvedAt':_0x410b10['resolvedAt'],'resolvedBy':_0x410b10['resolvedBy']};},'reopenCommentThread':async({channelId:_0xb68dd3,threadId:_0x3cd74d})=>this['_getService'](_0xb68dd3)['reopenCommentThread'](_0x3cd74d)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x24cbd5,threadId:_0x54bcd})=>this['_getService'](_0x24cbd5)['removeCommentThread'](_0x54bcd)['catch'](X)['catch'](Z),'addComment':({channelId:_0x344370,threadId:_0x51092d,commentId:_0x46ee43,content:_0x459fa8,attributes:_0x1bddc0})=>this['_getService'](_0x344370)['addComment'](_0x51092d,_0x46ee43,_0x459fa8,_0x1bddc0)['catch'](Z),'updateComment':({channelId:_0x564d5e,threadId:_0x5296fa,commentId:_0x1f985f,content:_0x5ef135,attributes:_0x5b9036})=>this['_getService'](_0x564d5e)['updateComment'](_0x5296fa,_0x1f985f,_0x5ef135,_0x5b9036)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x8b77b2,threadId:_0xeb4550,commentId:_0x1be939})=>this['_getService'](_0x8b77b2)['removeComment'](_0xeb4550,_0x1be939)['catch'](X)['catch'](Z)},_0x19dfcd instanceof _0x2ff439){const _0x33ba2c=_0x19dfcd['config']['get']('collaboration.channelId'),_0x51998c=_0x19dfcd['plugins']['get'](Sessions);await this['_setUpService'](_0x33ba2c);const _0x1a277f=await this['_services']['get'](_0x33ba2c)['getConnectedSessions']();this['listenTo'](_0x51998c,'sessionAdd:'+_0x33ba2c,(_0x388401,{session:_0x3076b2})=>{_0x3076b2['id']===_0x51998c['mySessionId']&&(_0x388401['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x3076b2['permissions'],_0x33ba2c));}),_0x51998c['register'](_0x33ba2c,_0x1a277f);}}async['_setUpService'](_0x2c20a7){if(this['_services']['has'](_0x2c20a7))throw new _0x351432('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x2c20a7});const _0x51188b=this['context']['plugins']['get'](_0x184887),_0x50edd3=new CloudServicesCommentsAdapter['CommentsService'](_0x2c20a7);this['_services']['set'](_0x2c20a7,_0x50edd3),this['listenTo'](_0x50edd3,'commentThreadAdded',(_0x116977,_0x5071b1)=>{const {commentThreadId:_0x4bf712,documentId:_0x5ea2f4,context:_0x503520,attributes:_0x39856c,resolvedAt:_0x1864ab,resolvedBy:_0x181204,comments:_0x3fd4ae}=_0x5071b1;_0x51188b['getCommentThread'](_0x4bf712)||_0x51188b['addCommentThread']({'threadId':_0x4bf712,'channelId':_0x5ea2f4,'comments':_0x3fd4ae?_0x3fd4ae['map'](tt):[],'context':_0x503520,'attributes':_0x39856c,'resolvedAt':_0x1864ab,'resolvedBy':_0x181204,'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentThreadUpdated',(_0x5019a9,{commentThreadId:_0x5e2a47,documentId:_0x56b2fa,context:_0x23a1dc,unlinkedAt:_0x241a32,attributes:_0x832eed})=>{_0x51188b['getCommentThread'](_0x5e2a47)&&_0x51188b['updateCommentThread']({'threadId':_0x5e2a47,'channelId':_0x56b2fa,'context':_0x23a1dc,'unlinkedAt':_0x241a32,'attributes':_0x832eed,'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentThreadResolved',(_0x5ad540,{commentThreadId:_0x1e50b4,resolvedBy:_0x59a418,resolvedAt:_0x521867})=>{const _0x2893ea=_0x51188b['getCommentThread'](_0x1e50b4);_0x2893ea&&_0x2893ea['resolve']({'resolvedBy':_0x59a418,'resolvedAt':_0x521867,'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentThreadReopened',(_0x2eabab,{commentThreadId:_0x2a60cc})=>{const _0x169afa=_0x51188b['getCommentThread'](_0x2a60cc);_0x169afa&&_0x169afa['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentThreadRemoved',(_0x11e656,{commentThreadId:_0x15d100})=>{const _0x50c9c4=_0x51188b['getCommentThread'](_0x15d100);_0x50c9c4&&_0x50c9c4['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentAdded',(_0x1f3e97,_0x68ae5a)=>{const _0x1dfd96=_0x68ae5a['commentThreadId'],_0x14c4c2=_0x51188b['getCommentThread'](_0x1dfd96);_0x14c4c2&&_0x14c4c2['addComment']({...tt(_0x68ae5a),'isFromAdapter':!0x0});}),this['listenTo'](_0x50edd3,'commentUpdated',(_0x2ed10d,{commentThreadId:_0x697c73,commentId:_0x281c63,content:_0x2c8f0f,attributes:_0x56cbf6})=>{const _0x1e5d6a=_0x51188b['getCommentThread'](_0x697c73);if(_0x1e5d6a){const _0x13d399=_0x1e5d6a['getComment'](_0x281c63);_0x13d399&&_0x13d399['update']({'content':_0x2c8f0f,'attributes':_0x56cbf6,'isFromAdapter':!0x0});}}),this['listenTo'](_0x50edd3,'commentRemoved',(_0x34b72c,{commentThreadId:_0x437bc0,commentId:_0x1d76c8})=>{const _0x33db48=_0x51188b['getCommentThread'](_0x437bc0);if(_0x33db48){const _0x8e2f1e=_0x33db48['getComment'](_0x1d76c8);_0x8e2f1e&&_0x8e2f1e['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x2c20a7);}['destroy'](){if(this['context']instanceof _0x2ff439){const _0x280607=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x280607);}}['_terminateService'](_0x126fca){if(!this['_services']['has'](_0x126fca))throw new _0x351432('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x126fca});this['_getService'](_0x126fca)['disconnect'](),this['_services']['delete'](_0x126fca);}async['reconnect'](){for(const _0x4f6549 of this['_services']['keys']())await this['_connectService'](_0x4f6549);if(this['context']instanceof _0x2ff439){const _0x2d84b8=this['context']['config']['get']('collaboration.channelId'),_0x481a37=this['context']['plugins']['get'](Sessions);_0x481a37['unregister'](_0x2d84b8);const _0x577f97=await this['_services']['get'](_0x2d84b8)['getConnectedSessions']();_0x481a37['register'](_0x2d84b8,_0x577f97);}}async['_connectService'](_0x5ea5a7){const {connection:_0x580fe7}=this['context']['plugins']['get'](WebSocketGateway),_0x3d461f=this['context']['plugins']['get'](_0x184887),_0x51f374=this['_services']['get'](_0x5ea5a7),_0x401a8d=await _0x51f374['connect'](_0x580fe7);await this['_fetchMissingUsersForThreads'](_0x401a8d);const _0x511137=new Set(Array['from'](_0x3d461f['getCommentThreads']({'channelId':_0x5ea5a7}),_0x3e4371=>_0x3e4371['id']));for(const _0x23c78f of _0x401a8d)_0x23c78f['deletedAt']||_0x511137['delete'](_0x23c78f['commentThreadId']);for(const _0x44534d of _0x511137)_0x3d461f['getCommentThread'](_0x44534d)['remove']({'isFromAdapter':!0x0});for(const _0x11a96b of _0x401a8d){let _0x11c7b2=_0x3d461f['getCommentThread'](_0x11a96b['commentThreadId']);const {commentThreadId:_0x2df7be,context:_0x534984,attributes:_0x43ea32,resolvedBy:_0x417380,resolvedAt:_0x32ebba,unlinkedAt:_0x124c2a,deletedAt:_0xefc7c0}=_0x11a96b;if(_0xefc7c0)continue;_0x11c7b2||(_0x11c7b2=_0x3d461f['addCommentThread']({'channelId':_0x5ea5a7,'threadId':_0x2df7be,'context':_0x534984,'attributes':_0x43ea32||{},'resolvedBy':_0x417380,'resolvedAt':_0x32ebba,'unlinkedAt':_0x124c2a,'isFromAdapter':!0x0}));const _0x467132=new Set(Array['from'](_0x11c7b2['comments'],_0x5861ce=>_0x5861ce['id']));for(const _0x4edd96 of _0x11a96b['comments'])_0x467132['delete'](_0x4edd96['commentId']);for(const _0x5030fe of _0x467132)_0x11c7b2['getComment'](_0x5030fe)['remove']({'isFromAdapter':!0x0});for(const _0x26ed9b of _0x11a96b['comments']){const _0x47fa95=_0x11c7b2['getComment'](_0x26ed9b['commentId']);_0x47fa95?_0x47fa95['content']!==_0x26ed9b['content']&&_0x47fa95['update']({'content':_0x26ed9b['content'],'isFromAdapter':!0x0}):_0x11c7b2['addComment'](Object['assign'](tt(_0x26ed9b),{'isFromAdapter':!0x0}));}}}['_getService'](_0x52d5bf){if(!this['_services']['has'](_0x52d5bf))throw new _0x351432('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x52d5bf});return this['_services']['get'](_0x52d5bf);}async['_fetchMissingUsersForThreads'](_0x364f0f){const _0x5dabd1=this['context']['plugins']['get'](_0x351d2b),{connection:_0x4fd2a2}=this['context']['plugins']['get'](WebSocketGateway),_0x535163=new Set();for(const {resolvedBy:_0x19e4bf,comments:_0x271684}of _0x364f0f){_0x19e4bf&&!_0x5dabd1['getUser'](_0x19e4bf)&&_0x535163['add'](_0x19e4bf);for(const {userId:_0x24c9d6}of _0x271684)_0x5dabd1['getUser'](_0x24c9d6)||_0x535163['add'](_0x24c9d6);}if(0x0===_0x535163['size'])return;const _0x16d53a=await _0x167379['getMany'](_0x4fd2a2,Array['from'](_0x535163));for(const _0x51afd7 of _0x16d53a)_0x5dabd1['getUser'](_0x51afd7['id'])||_0x5dabd1['addUser'](_0x51afd7);}}async function X(_0x13b930){if('404'!==_0x13b930['code'])throw _0x13b930;}function Z(_0x4e732c){if((_0x1843c7=_0x4e732c)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x1843c7['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x1843c7['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x1843c7;throw _0x4e732c;}function tt(_0x342967){return{'threadId':_0x342967['commentThreadId'],'commentId':_0x342967['commentId'],'content':_0x342967['content'],'createdAt':_0x342967['createdAt'],'authorId':_0x342967['userId'],'attributes':_0x342967['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x300c8b{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
27
+ ((()=>_0x444fdd)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x3e38ba,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1c4b62){super(_0x1c4b62);const _0x240e6c=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x240e6c);}['init'](){const _0x55893a=this['editor']['plugins']['get'](WebSocketGateway),_0x2fabcb=this['editor']['plugins']['get'](_0x3e38ba);return _0x2fabcb['adapter']={'getSuggestion':async _0x40825d=>{await this['_waitForServiceReady']();const _0x5560bf=await this['_trackChangesService']['get'](_0x40825d)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x5560bf]),_0x5560bf;},'addSuggestion':async({id:_0x21e338,type:_0x161569,data:_0x1c1cb1,originalSuggestionId:_0x1b6989,attributes:_0x35ee9d})=>{await this['_waitForServiceReady']();const _0x44f822={'id':_0x21e338,'type':_0x161569,'data':_0x1c1cb1,'originalSuggestionId':_0x1b6989,'attributes':_0x35ee9d},_0x13b2cb=await this['_trackChangesService']['add'](_0x21e338,_0x161569,_0x1c1cb1,_0x1b6989,_0x35ee9d)['catch'](_0x3b67d9=>{if(st(_0x3b67d9))return new Promise(_0x4164c4=>{this['_bufferedRequests']['set'](_0x21e338,{'resolve':_0x4164c4,'suggestionData':_0x44f822});});throw _0x3b67d9;});return this['_bufferedRequests']['delete'](_0x21e338),_0x13b2cb;},'updateSuggestion':async(_0x4c20ac,_0x1a51bc)=>{if(await this['_waitForServiceReady'](),'open'!==_0x1a51bc['state'])return this['_trackChangesService']['update'](_0x4c20ac,_0x1a51bc)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x48814e,_0xb62fe3)=>{_0x2fabcb['hasSuggestion'](_0xb62fe3['id'])&&(_0x2fabcb['getSuggestion'](_0xb62fe3['id'])['attributes']=_0xb62fe3['attributes']);}),this['_trackChangesService']['connect'](_0x55893a['connection'])['then'](_0x4a7674=>(_0x55893a['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x4a7674)['then'](()=>{for(const _0x4ea267 of _0x4a7674){_0x2fabcb['addSuggestionData'](_0x4ea267)['_saved']=!0x0;}})));}async['reconnect'](){const _0x1837a9=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x5a8af7}=this['editor']['plugins']['get'](WebSocketGateway),_0x4823c7=await this['_trackChangesService']['connect'](_0x5a8af7);await this['_fetchMissingUsersForThreads'](_0x4823c7);for(const {suggestionData:_0x78eae,resolve:_0x5dba83}of this['_bufferedRequests']['values']()){let _0x4af577=_0x4823c7['find'](_0x47f611=>_0x47f611['id']===_0x78eae['id']);_0x4af577||(_0x4af577=await this['_trackChangesService']['add'](_0x78eae['id'],_0x78eae['type'],_0x78eae['data'],_0x78eae['originalSuggestionId'])),_0x5dba83(_0x4af577);}for(const _0x3339bb of _0x4823c7)_0x1837a9['hasSuggestion'](_0x3339bb['id'])||_0x1837a9['addSuggestionData'](_0x3339bb);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x4ae8ac=>{this['listenTo'](this['_trackChangesService'],'connected',_0x282b9a=>{_0x282b9a['off'](),_0x4ae8ac();});});}async['_fetchMissingUsersForThreads'](_0x20f133){const _0x55ca7c=this['editor']['plugins']['get'](_0x351d2b),{connection:_0x464dd5}=this['editor']['plugins']['get'](WebSocketGateway),_0x4053eb=new Set();for(const {authorId:_0x53fee6}of _0x20f133)_0x55ca7c['getUser'](_0x53fee6)||_0x4053eb['add'](_0x53fee6);if(0x0===_0x4053eb['size'])return;const _0x392cc5=await _0x167379['getMany'](_0x464dd5,Array['from'](_0x4053eb));for(const _0x13ff25 of _0x392cc5)_0x55ca7c['getUser'](_0x13ff25['id'])||_0x55ca7c['addUser'](_0x13ff25);}}function et(_0x31b84e){if(st(_0x31b84e))return new Promise(()=>{});throw _0x31b84e;}function st(_0x365d89){return _0x365d89['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x365d89['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x300c8b{static get['requires'](){return[_0x14ef29,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x5d31f9=this['editor']['plugins']['get'](WebSocketGateway),_0x567005=this['editor']['plugins']['get'](_0x4a8d6b),_0x564c67=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x5d31f9,'change:state',(_0x158e73,_0x36420c,_0x3c55e4)=>{_0x567005['isThreadsLoadingPaused']='connected'!==_0x3c55e4;});}),this['listenTo'](_0x5d31f9,'change:state',(_0x1b70d9,_0x8b512f,_0x7c41e5)=>{this['editor']['plugins']['get'](_0x184887)['switchReadOnly']('connected'!==_0x7c41e5);}),_0x564c67['_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 _0x300c8b{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x5f27f3];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x300c8b{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
28
+ ((()=>_0xf4e34f)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x5fa821,Sessions,_0x351d2b];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3ea2d3){super(_0x3ea2d3);const _0xa7614e=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0xa7614e);}async['init'](){const _0x4f8186=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x10e387=_0x4f8186['serverHistory'],_0x235a49=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x10e387,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x4f8186['sessionId']});const _0xd53d90=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x6388ea,_0x22d85c=await _0x30df8b['isBundleUploaded'](_0x235a49['connection'],_0xd53d90);this['editor']['plugins']['get'](_0x5fa821)['adapter']={'getRevision':async({revisionId:_0x870aab})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x870aab)),'updateRevisions':async _0x37155f=>{await this['_waitForServiceReady']();const _0x71b8ac=this['_revisionTracker']['currentRevision'];if(_0x22d85c&&0x1===_0x37155f['length']&&_0x37155f[0x0]['id']===_0x71b8ac['id'])return _0x37155f;for(const _0x231908 of _0x37155f)_0x231908['id']===_0x71b8ac['id']&&(_0x231908['isEmptyCurrent']=_0x231908['fromVersion']===_0x231908['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x37155f,this['_lastRequestId'])['then'](_0x5e2f47=>(this['_lastRequestId']=_0x5e2f47,_0x37155f))['catch'](_0x22cfa6=>{if(it(_0x22cfa6)||'400'===_0x22cfa6['code']&&void 0x0!==_0x22cfa6['data']['wrongRequestId']){for(const _0x510677 of _0x37155f){!this['_revisionTracker']['repository']['getRevision'](_0x510677['id'])||this['_revisionTracker']['_bufferUpdate'](_0x510677['id'],_0x510677,!0x1);}if(it(_0x22cfa6)&&'destroyed'!==this['editor']['state'])throw _0x22cfa6;return _0x37155f;}throw _0x22cfa6;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x13c5e6,{revisionsData:_0x12c653,requestId:_0x2eeb8b})=>{Math['max'](..._0x12c653['map'](_0x59de25=>_0x59de25['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x12c653,_0x2eeb8b);}):this['_handleRevisionsUpdate'](_0x12c653,_0x2eeb8b);});const {revisions:_0x80c7d4,requestId:_0x316e6f}=await this['_revisionHistoryService']['connect'](_0x235a49['connection']);_0x235a49['addToReconnectionStack'](this),this['_lastRequestId']=_0x316e6f,await this['_fetchMissingUsers'](_0x80c7d4);for(const _0x2f2dd7 of _0x80c7d4)this['_revisionTracker']['addRevisionData'](_0x2f2dd7);this['listenTo'](_0x4f8186,'change:_isConnected',(_0x40bc1a,_0x571be1,_0x29f9d4)=>{_0x29f9d4&&(this['_oldOffset']=_0x4f8186['_offset'],_0x40bc1a['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x235a49,'state',_0x136f28=>_0x136f28===_0x57a7c5['CONNECTED']);}async['reconnect'](){const _0x146150=this['editor']['plugins']['get'](WebSocketGateway),_0x10d518=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x34cc70=async()=>{const _0x482c74=this['_revisionTracker']['currentRevision'],_0x19c85b=_0x482c74['id'],_0x193d03=_0x19c85b!==_0x10d518['sessionId'];if(_0x193d03){const _0x5e5755=_0x10d518['_offset']-this['_oldOffset'],_0x243183=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x482c74['toVersion']+_0x5e5755!==_0x243183){const _0x198d19=_0x482c74['fromVersion']+_0x5e5755,_0x5a5ee0=this['editor']['plugins']['get'](_0x351d2b),_0x373dcd=this['_revisionTracker']['buildRevisionData']({'revision':_0x482c74,'from':_0x198d19,'to':_0x243183});_0x373dcd['id']=_0x482c74['id'];const _0x5d7da0=_0x373dcd['authorsIds']['map'](_0x36336a=>_0x5a5ee0['getUser'](_0x36336a));_0x482c74['_update']({..._0x373dcd,'authors':_0x5d7da0},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x482c74['id'],_0x373dcd,!0x0);}this['_revisionTracker']['_startingVersion']=_0x243183,(_0x482c74['toVersion']===_0x482c74['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x19c85b)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x19c85b),this['_revisionTracker']['_createCurrentRevision'](_0x243183));}const {revisions:_0x5abc96,requestId:_0x33065c}=await this['_revisionHistoryService']['reconnect'](_0x146150['connection'],this['_lastRequestId']);_0x193d03&&_0x5abc96['length']>0x0?_0x10d518['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x5abc96),this['_handleRevisionsUpdate'](_0x5abc96,_0x33065c),this['_revisionTracker']['sendBufferedUpdates']());};return _0x10d518['_isConnected']?_0x34cc70():new Promise((_0x1d3b88,_0x313788)=>{_0x10d518['once']('change:_isConnected',()=>{_0x34cc70()['then'](_0x1d3b88)['catch'](_0x313788);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x282579=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x2aa6a0=>{_0x2aa6a0['off'](),_0x282579();});});}['_getLatestVersionFromServerOperations'](){const _0x2a0009=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x3ec1ec of _0x2a0009)if('marker'!==_0x3ec1ec['type']||_0x3ec1ec['affectsData'])return _0x3ec1ec['baseVersion']+0x1;}['_getLatestVersion'](){const _0x5bc383=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x19bfde=>{_0x5bc383['_isPendingUpdate']?_0x5bc383['once']('change:_isPendingUpdate',()=>{_0x19bfde(this['_getLatestVersionFromServerOperations']());}):_0x19bfde(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x4c67e9,_0x1e32b2){const _0x483e6c=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x1e32b2;for(const _0x405d40 of _0x4c67e9){const _0x2d8563=_0x483e6c['getRevision'](_0x405d40['id']);if(_0x2d8563){if((_0x405d40['fromVersion']||_0x405d40['toVersion'])&&(_0x405d40['diffData']=null),_0x2d8563===this['_revisionTracker']['currentRevision']){const _0x57e897=Math['max'](_0x2d8563['toVersion'],_0x405d40['toVersion']),_0x521c4f=Math['max'](_0x2d8563['fromVersion'],_0x405d40['fromVersion']);let _0x4f43cc;_0x2d8563['toVersion']===_0x405d40['toVersion']&&_0x2d8563['fromVersion']===_0x405d40['fromVersion']?(_0x4f43cc=!0x0,this['_preventResendingRevisionData'](_0x405d40)):_0x405d40['toVersion']===_0x57e897&&_0x405d40['fromVersion']===_0x521c4f?_0x4f43cc=!0x1:(_0x2d8563['toVersion']===_0x57e897&&_0x2d8563['fromVersion']===_0x521c4f||this['_fixRevision']({'revision':_0x2d8563,'from':_0x521c4f,'to':_0x57e897}),_0x4f43cc=!0x0),_0x4f43cc&&(delete _0x405d40['fromVersion'],delete _0x405d40['toVersion'],delete _0x405d40['diffData'],delete _0x405d40['createdAt'],delete _0x405d40['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x405d40),this['_preventResendingRevisionData'](_0x405d40);}else this['_revisionTracker']['addRevisionData'](_0x405d40);}const _0x3195bf=_0x483e6c['getRevisions']();_0x3195bf['reverse']();for(let _0x2ca235=0x0;_0x2ca235<_0x3195bf['length']-0x1;_0x2ca235++){const _0x11275e=_0x3195bf[_0x2ca235],_0x5a0cbb=_0x3195bf[_0x2ca235+0x1];if(_0x11275e['fromVersion']<_0x5a0cbb['toVersion']){const _0x2b003c=_0x5a0cbb['toVersion'],_0x1ca36b=Math['max'](_0x2b003c,_0x11275e['toVersion']);this['_fixRevision']({'revision':_0x11275e,'from':_0x2b003c,'to':_0x1ca36b});}}}['_fixRevision']({revision:_0x2c239d,from:_0x2737a6,to:_0x1d2474}={}){const _0xa89260=this['editor']['plugins']['get'](_0x351d2b),_0xceeedb=this['_revisionTracker']['buildRevisionData']({'revision':_0x2c239d,'from':_0x2737a6,'to':_0x1d2474});_0xceeedb['authors']=_0xceeedb['authorsIds']['map'](_0x31e76e=>_0xa89260['getUser'](_0x31e76e)),_0x2c239d['_update'](_0xceeedb);}['_preventResendingRevisionData'](_0x5ca9aa){const _0x5ecdb9={};_0x5ecdb9['id']=_0x5ca9aa['id'];for(const _0x40875b of Object['keys'](_0x5ca9aa))'id'!==_0x40875b&&(_0x5ecdb9[_0x40875b]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x5ecdb9['id'],_0x5ecdb9,!0x0);}async['_fetchMissingUsers'](_0x598a2f){const _0x3e8a62=this['editor']['plugins']['get'](_0x351d2b),{connection:_0x1f1059}=this['editor']['plugins']['get'](WebSocketGateway),_0x1fa411=new Set();for(const _0x53e763 of _0x598a2f){for(const _0x4391a4 of _0x53e763['authorsIds'])_0x1870a0(_0x4391a4);_0x53e763['creatorId']&&_0x1870a0(_0x53e763['creatorId']);}if(0x0===_0x1fa411['size'])return;const _0x479c11=await _0x167379['getMany'](_0x1f1059,Array['from'](_0x1fa411));for(const _0x56bdbd of _0x479c11)_0x3e8a62['getUser'](_0x56bdbd['id'])||_0x3e8a62['addUser'](_0x56bdbd);function _0x1870a0(_0x3ee3af){_0x3e8a62['getUser'](_0x3ee3af)||_0x1fa411['add'](_0x3ee3af);}}}function it(_0x2f1cb5){return _0x2f1cb5['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x2f1cb5['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x2f1cb5['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x300c8b{static get['requires'](){return[_0x5fa821,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x5510d0{['_collapseAt'];constructor(_0x256f14,_0x303f0f=0x6){super(_0x256f14);const _0x1c0948=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x303f0f,this['bind']('isHidden')['to'](this,'usersCount',_0x42a12e=>_0x42a12e<_0x303f0f),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x1c0948['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':_0x1c0948['to']('usersCount',_0x6fa6f7=>'+'+(_0x6fa6f7-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x5510d0{['items'];['keystrokes'];constructor(_0x624e84){super(_0x624e84);const _0x9f12f1=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x5caf56(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x9f12f1['if']('hasPopup'),'aria-expanded':_0x9f12f1['to']('isExpanded',_0xb1a7f0=>this['hasPopup']&&String(_0xb1a7f0)),'aria-label':_0x9f12f1['to']('hasPopup',_0x3bd4ba=>K(_0x624e84,_0x3bd4ba?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x9f12f1['to']('hasPopup',_0x2bf8db=>!!_0x2bf8db&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x9f12f1['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x9f12f1['to'](_0x5d2d7d=>{const _0x5c3580=_0x5d2d7d,_0x4cc745=document['querySelector']('.ck-presence-list__dropdown-list'),_0x41313c=document['querySelector']('.ck-balloon-panel_with-arrow');_0x4cc745?.['contains'](_0x5c3580['relatedTarget'])||_0x41313c?.['contains'](_0x5c3580['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0xf0e24b,_0x1ea5c2,_0x4e3784)=>{this['element']&&(_0x4e3784?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 _0x5510d0{['counterView'];['inlineListView'];constructor(_0x4ae73f,_0x11161a=0x6){super(_0x4ae73f);const _0x45f370=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x11161a),this['inlineListView']=new PresenceInlineListView(_0x4ae73f),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x45ba7c of this['inlineListView']['items'])_0x45ba7c['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',_0x45f370['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x5510d0{['listWrapperView'];constructor(_0x8210f1,_0x4b8acf){super(_0x8210f1);const _0x2837fb=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x8210f1,_0x4b8acf),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x8210f1,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x2837fb['to'](_0x50e79d=>{const _0x1b5aa0=_0x50e79d,_0x5a2010=document['querySelector']('.ck-presence-list__list'),_0x14415b=document['querySelector']('.ck-balloon-panel_with-arrow');_0x5a2010?.['contains'](_0x1b5aa0['relatedTarget'])||_0x14415b?.['contains'](_0x1b5aa0['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x55910f{constructor(_0x258932,_0x4955fd){super(_0x258932);const _0x5ce7a3=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x4955fd?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x5ce7a3['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x5ce7a3['to']('role'),'aria-label':_0x5ce7a3['to']('ariaLabel'),'aria-labelledby':_0x5ce7a3['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x143e42['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x478d25=this['element'];_0x478d25&&(this['_isScrollable']=Math['max'](_0x478d25['scrollHeight'],_0x478d25['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0xcf9da3{['userView'];constructor(_0x4ba1b8,_0x149774,_0x575d5c){super(_0x4ba1b8);const _0x4e4f2c=this['bindTemplate'];this['userView']=new _0x5b5282(_0x4ba1b8,_0x149774);const _0x4780df={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x149774['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x149774['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x149774['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x149774['color']['getColorVariable'](),'--ck-user-color-alpha':_0x149774['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x575d5c&&(_0x4780df['tag']='button',_0x4780df['on']={'click':_0x4e4f2c['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x4780df);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x5510d0{['userView'];['markerView'];constructor(_0x4e0f9f,_0x49d5cb,_0x3d539a){super(_0x4e0f9f);const _0x9bf86e=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x5b5282(_0x4e0f9f,_0x49d5cb),this['markerView']=new MarkerView(_0x4e0f9f,_0x49d5cb);const _0x312967=new _0x5b81f0(_0x4e0f9f);_0x312967['template']['tag']='span',_0x312967['text']=_0x49d5cb['name'];const _0x1404b1={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x9bf86e['to']('isFocusable',_0x713d9e=>!!_0x713d9e&&0x0),'aria-labelledby':_0x312967['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x9bf86e['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x9bf86e['to']('hasTooltip',_0x26cf7b=>!_0x26cf7b),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x312967]};_0x3d539a&&(_0x1404b1['tag']='button',_0x1404b1['on']={'click':_0x9bf86e['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1404b1);}}class MarkerView extends _0x5510d0{constructor(_0x9b4111,_0x4f51a5){super(_0x9b4111),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x4f51a5['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x4f51a5['color']['getColorVariable'](),'--ck-user-color-alpha':_0x4f51a5['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x548445{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x17cbca){super(_0x17cbca),this['context']['config']['define']('presenceList',nt);const _0x11fcba=_0x17cbca['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x11fcba)throw new _0x351432('presencelist-collapseat-invalid-format',this);if(_0x11fcba<0x1)throw new _0x351432('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x34528e(),this['balloonPanelView']=new _0x33f98f(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x5393ea of this['_allConnectedUsers'])this['_handleUserAdd'](_0x5393ea);this['listenTo'](this['_allConnectedUsers'],'add',(_0x8e0a76,_0x429055)=>{this['_handleUserAdd'](_0x429055);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x41d0ba,_0x12c2cd)=>{this['_handleUserRemove'](_0x12c2cd);});}['_createView'](){const _0x221404=this['context'],_0x5d035e=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x22814a=this['balloonPanelView'];if(!_0x48bc4d(_0x221404['config']['get']('presenceList.container')))throw new _0x351432('presencelist-missing-container',this);return _0x5d035e['counterView']['bind']('usersCount')['to'](this),_0x5d035e['bind']('isCollapsed')['to'](this,'usersCount',_0x1e163c=>{const {collapseAt:_0x33f8e3}=_0x221404['config']['get']('presenceList'),_0x3d1dee=_0x1e163c>=_0x33f8e3;if(_0x3d1dee&&!_0x5d035e['inlineListView']['items']['find'](_0x6a930=>_0x6a930 instanceof PresenceCounterView)){const _0x58af59=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x58af59&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x5d035e['inlineListView']['items']['add'](_0x5d035e['counterView']);}return _0x3d1dee||this['hideDropdown'](),_0x3d1dee;}),_0x5d035e['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x46d8a3=>{const _0x96e042=_0x221404['config']['get']('presenceList'),_0x44277d=new PresenceInlineListItemView(_0x221404['locale'],_0x46d8a3,!!_0x96e042['onClick']);return _0x44277d['bind']('hasTooltip')['to'](_0x5d035e,'isCollapsed',_0x7caa05=>!_0x7caa05),_0x44277d['bind']('isFocusable')['to'](_0x5d035e,'isCollapsed',_0x33574a=>!_0x33574a),_0x96e042['onClick']&&this['listenTo'](_0x44277d,'execute',()=>{this['view']['isCollapsed']||_0x96e042['onClick'](_0x46d8a3,_0x44277d['element']);}),_0x44277d;}),this['listenTo'](_0x5d035e['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x5d035e['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x5d035e['inlineListView']['keystrokes']['set']('Enter',(_0x3dcdee,_0x6de6a4)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x6de6a4());}),_0x5d035e['render'](),_0x22814a['render'](),_0x6e4637({'emitter':_0x5d035e,'activator':()=>_0x22814a['isVisible'],'contextElements':[_0x22814a['element'],_0x5d035e['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x221404['config']['get']('presenceList.container')['appendChild'](_0x5d035e['element']),this['_bodyCollection']=new _0x233bd9(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x5d035e;}['_handleUserAdd'](_0x3a40fd){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x3a40fd['isMe'])return;const _0x2ddabf=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x2ddabf-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x436eef=_0x3a40fd['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x3a40fd,_0x436eef);}['_handleUserRemove'](_0x4a191){this['usersCount']--;const {collapseAt:_0x1c882c}=this['context']['config']['get']('presenceList'),_0x11c67e=this['usersCount']>=_0x1c882c;if(this['currentDisplayedUsers']['get'](_0x4a191['id']))this['currentDisplayedUsers']['remove'](_0x4a191['id']);else{if(_0x11c67e&&this['currentDisplayedUsers']['length']+0x1===_0x1c882c-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x11c67e?0x1:0x0)<this['usersCount']){for(const _0x26edc1 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x26edc1['id'])&&(this['currentDisplayedUsers']['add'](_0x26edc1,Math['min'](this['currentDisplayedUsers']['length']-(_0x11c67e?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x11c67e?0x1:0x0)===_0x1c882c-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x11cca4=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x11cca4['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x31a677}=this['presenceDropdownView'];_0x31a677['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x5c4a14=>{if(!_0x11cca4['displayMe']&&_0x5c4a14['isMe'])return null;const _0x37b785=new PresenceDropdownListItemView(this['context']['locale'],_0x5c4a14,!!_0x11cca4['onClick']);return _0x11cca4['onClick']&&this['listenTo'](_0x37b785,'execute',()=>{_0x11cca4['onClick'](_0x5c4a14,_0x37b785['element']);}),_0x37b785;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x31a677['focus'](),_0x31a677['checkIfScrollable']();const _0x283dd5=(_0x5c1efe,_0x573433)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x573433();};_0x31a677['keystrokes']['set']('Esc',_0x283dd5),_0x31a677['keystrokes']['set']('Shift+Tab',_0x283dd5),_0x31a677['keystrokes']['set']('Tab',(_0x278c0e,_0x1d2e56)=>{!function(_0x1edd23){const _0x17d832=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x1b0ae7=>_0x1b0ae7+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x4a4a86=[...document['body']['querySelectorAll'](_0x17d832)]['filter'](_0x1e64f8=>_0x1e64f8===document['activeElement']||_0x1e64f8['offsetWidth']+_0x1e64f8['offsetHeight']>0x0)['sort']((_0x269a76,_0x4ff61e)=>(_0x269a76['tabIndex']||0x0)-(_0x4ff61e['tabIndex']||0x0)),_0x1538f4=_0x4a4a86['indexOf'](_0x1edd23),_0x23ee18=_0x4a4a86[(_0x1538f4+0x1)%_0x4a4a86['length']];_0x23ee18&&_0x23ee18['focus']();}(this['view']['element']),this['hideDropdown'](),_0x1d2e56();}),_0x31a677['focusTracker']['add'](this['view']['element']),_0x31a677['focusTracker']['on']('change:isFocused',(_0x44d87b,_0x2c9fb0,_0x367c1a)=>{_0x367c1a||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 _0x548445{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};