@ckeditor/ckeditor5-real-time-collaboration 48.1.1 → 48.2.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +6 -6
- package/dist/translations/af.js +1 -1
- package/dist/translations/af.umd.js +1 -1
- package/dist/translations/ar.js +1 -1
- package/dist/translations/ar.umd.js +1 -1
- package/dist/translations/ast.js +1 -1
- package/dist/translations/ast.umd.js +1 -1
- package/dist/translations/az.js +1 -1
- package/dist/translations/az.umd.js +1 -1
- package/dist/translations/be.js +1 -1
- package/dist/translations/be.umd.js +1 -1
- package/dist/translations/bg.js +1 -1
- package/dist/translations/bg.umd.js +1 -1
- package/dist/translations/bn.js +1 -1
- package/dist/translations/bn.umd.js +1 -1
- package/dist/translations/bs.js +1 -1
- package/dist/translations/bs.umd.js +1 -1
- package/dist/translations/ca.js +1 -1
- package/dist/translations/ca.umd.js +1 -1
- package/dist/translations/cs.js +1 -1
- package/dist/translations/cs.umd.js +1 -1
- package/dist/translations/da.js +1 -1
- package/dist/translations/da.umd.js +1 -1
- package/dist/translations/de-ch.js +1 -1
- package/dist/translations/de-ch.umd.js +1 -1
- package/dist/translations/de.js +1 -1
- package/dist/translations/de.umd.js +1 -1
- package/dist/translations/el.js +1 -1
- package/dist/translations/el.umd.js +1 -1
- package/dist/translations/en-au.js +1 -1
- package/dist/translations/en-au.umd.js +1 -1
- package/dist/translations/en-gb.js +1 -1
- package/dist/translations/en-gb.umd.js +1 -1
- package/dist/translations/en.js +1 -1
- package/dist/translations/en.umd.js +1 -1
- package/dist/translations/eo.js +1 -1
- package/dist/translations/eo.umd.js +1 -1
- package/dist/translations/es-co.js +1 -1
- package/dist/translations/es-co.umd.js +1 -1
- package/dist/translations/es.js +1 -1
- package/dist/translations/es.umd.js +1 -1
- package/dist/translations/et.js +1 -1
- package/dist/translations/et.umd.js +1 -1
- package/dist/translations/eu.js +1 -1
- package/dist/translations/eu.umd.js +1 -1
- package/dist/translations/fa.js +1 -1
- package/dist/translations/fa.umd.js +1 -1
- package/dist/translations/fi.js +1 -1
- package/dist/translations/fi.umd.js +1 -1
- package/dist/translations/fr.js +1 -1
- package/dist/translations/fr.umd.js +1 -1
- package/dist/translations/gl.js +1 -1
- package/dist/translations/gl.umd.js +1 -1
- package/dist/translations/gu.js +1 -1
- package/dist/translations/gu.umd.js +1 -1
- package/dist/translations/he.js +1 -1
- package/dist/translations/he.umd.js +1 -1
- package/dist/translations/hi.js +1 -1
- package/dist/translations/hi.umd.js +1 -1
- package/dist/translations/hr.js +1 -1
- package/dist/translations/hr.umd.js +1 -1
- package/dist/translations/hu.js +1 -1
- package/dist/translations/hu.umd.js +1 -1
- package/dist/translations/hy.js +1 -1
- package/dist/translations/hy.umd.js +1 -1
- package/dist/translations/id.js +1 -1
- package/dist/translations/id.umd.js +1 -1
- package/dist/translations/it.js +1 -1
- package/dist/translations/it.umd.js +1 -1
- package/dist/translations/ja.js +1 -1
- package/dist/translations/ja.umd.js +1 -1
- package/dist/translations/jv.js +1 -1
- package/dist/translations/jv.umd.js +1 -1
- package/dist/translations/kk.js +1 -1
- package/dist/translations/kk.umd.js +1 -1
- package/dist/translations/km.js +1 -1
- package/dist/translations/km.umd.js +1 -1
- package/dist/translations/kn.js +1 -1
- package/dist/translations/kn.umd.js +1 -1
- package/dist/translations/ko.js +1 -1
- package/dist/translations/ko.umd.js +1 -1
- package/dist/translations/ku.js +1 -1
- package/dist/translations/ku.umd.js +1 -1
- package/dist/translations/lt.js +1 -1
- package/dist/translations/lt.umd.js +1 -1
- package/dist/translations/lv.js +1 -1
- package/dist/translations/lv.umd.js +1 -1
- package/dist/translations/ms.js +1 -1
- package/dist/translations/ms.umd.js +1 -1
- package/dist/translations/nb.js +1 -1
- package/dist/translations/nb.umd.js +1 -1
- package/dist/translations/ne.js +1 -1
- package/dist/translations/ne.umd.js +1 -1
- package/dist/translations/nl.js +1 -1
- package/dist/translations/nl.umd.js +1 -1
- package/dist/translations/no.js +1 -1
- package/dist/translations/no.umd.js +1 -1
- package/dist/translations/oc.js +1 -1
- package/dist/translations/oc.umd.js +1 -1
- package/dist/translations/pl.js +1 -1
- package/dist/translations/pl.umd.js +1 -1
- package/dist/translations/pt-br.js +1 -1
- package/dist/translations/pt-br.umd.js +1 -1
- package/dist/translations/pt.js +1 -1
- package/dist/translations/pt.umd.js +1 -1
- package/dist/translations/ro.js +1 -1
- package/dist/translations/ro.umd.js +1 -1
- package/dist/translations/ru.js +1 -1
- package/dist/translations/ru.umd.js +1 -1
- package/dist/translations/si.js +1 -1
- package/dist/translations/si.umd.js +1 -1
- package/dist/translations/sk.js +1 -1
- package/dist/translations/sk.umd.js +1 -1
- package/dist/translations/sl.js +1 -1
- package/dist/translations/sl.umd.js +1 -1
- package/dist/translations/sq.js +1 -1
- package/dist/translations/sq.umd.js +1 -1
- package/dist/translations/sr-latn.js +1 -1
- package/dist/translations/sr-latn.umd.js +1 -1
- package/dist/translations/sr.js +1 -1
- package/dist/translations/sr.umd.js +1 -1
- package/dist/translations/sv.js +1 -1
- package/dist/translations/sv.umd.js +1 -1
- package/dist/translations/th.js +1 -1
- package/dist/translations/th.umd.js +1 -1
- package/dist/translations/ti.js +1 -1
- package/dist/translations/ti.umd.js +1 -1
- package/dist/translations/tk.js +1 -1
- package/dist/translations/tk.umd.js +1 -1
- package/dist/translations/tr.js +1 -1
- package/dist/translations/tr.umd.js +1 -1
- package/dist/translations/tt.js +1 -1
- package/dist/translations/tt.umd.js +1 -1
- package/dist/translations/ug.js +1 -1
- package/dist/translations/ug.umd.js +1 -1
- package/dist/translations/uk.js +1 -1
- package/dist/translations/uk.umd.js +1 -1
- package/dist/translations/ur.js +1 -1
- package/dist/translations/ur.umd.js +1 -1
- package/dist/translations/uz.js +1 -1
- package/dist/translations/uz.umd.js +1 -1
- package/dist/translations/vi.js +1 -1
- package/dist/translations/vi.umd.js +1 -1
- package/dist/translations/zh-cn.js +1 -1
- package/dist/translations/zh-cn.umd.js +1 -1
- package/dist/translations/zh.js +1 -1
- package/dist/translations/zh.umd.js +1 -1
- package/package.json +12 -12
package/dist/index.js
CHANGED
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
*
|
|
21
21
|
*
|
|
22
22
|
*/
|
|
23
|
-
import{ContextPlugin as
|
|
24
|
-
((()=>_0x38b55b)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x162121,_0x532a35];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x14bba5){super(_0x14bba5),this['set']('state',_0x4e17ce['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x3daabf())();}['init'](){const _0x4d14d8=this['context'],_0x429829=_0x4d14d8['plugins']['get'](_0x162121),_0x2ac04c=_0x4d14d8['plugins']['get'](_0x532a35);if(!_0x429829['token'])throw new _0x146074('websocketgateway-missing-token',this);if(!_0x429829['webSocketUrl'])throw new _0x146074('websocketgateway-missing-websocket-url',this);return this['_domEmitter']['listenTo'](window,'offline',()=>this['_isBrowserOffline']=!0x0),this['_domEmitter']['listenTo'](window,'online',()=>this['_isBrowserOffline']=!0x1),this['context']['config']['define']('cloudServices.connectionTimeout',0xa),this['context']['config']['define']('cloudServices.requestTimeout',0x14),WebSocketGateway['WebSocketGateway']['connect'](_0x429829['token'],_0x429829['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x391952=>{if(this['connection']=_0x391952,this['bind']('state')['to'](_0x391952,'state',this,'_isBrowserOffline',(_0x361914,_0x2f4a41)=>('connected'!==_0x361914&&(this['_shouldPluginsReconnect']=!0x0),_0x2f4a41||_0x361914!==_0x4e17ce['CONNECTED']?_0x4e17ce['DISCONNECTED']:this['state']==_0x4e17ce['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x4e17ce['CONNECTING']):_0x4e17ce['CONNECTED'])),this['connection']['on']('error',(_0x2855ec,_0x1c0ff7)=>{if('limitExceeded'!==_0x1c0ff7['code'])throw console['error'](_0x1c0ff7),new _0x146074('cloudservices-init',null,{'originalError':_0x1c0ff7});_0x2ac04c['showWarning']('The\x20limit\x20of\x20maximum\x20concurrent\x20connections\x20that\x20the\x20collaboration\x20server\x20can\x20handle\x20has\x20been\x20reached.\x20Try\x20opening\x20the\x20document\x20again\x20in\x20a\x20few\x20minutes.\x20Please\x20contact\x20your\x20system\x20administrator\x20if\x20the\x20problem\x20persists.',{'title':'Connected\x20users\x20limit\x20exceeded','namespace':'real-time-collaboration'});}),!_0x391952['me'])return new Promise(_0x299c39=>_0x391952['on']('change:me',_0x299c39));})['catch'](_0xa2723b=>{throw console['error'](_0xa2723b),new _0x146074('cloudservices-init',null,{'originalError':_0xa2723b});});}['addToReconnectionStack'](_0x1ea049){if('function'!=typeof _0x1ea049['reconnect'])throw new _0x146074('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x1ea049))throw new _0x146074('websocketgateway-plugin-already-registered',this,{'name':_0x1ea049['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x1ea049);}['removeFromReconnectionStack'](_0x5e8d8c){this['_reconnectionStack']['delete'](_0x5e8d8c);}['isInReconnectionStack'](_0x195352){return this['_reconnectionStack']['has'](_0x195352);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x4e12cf=>_0x4e12cf['reconnect']())))['then'](()=>this['state']=_0x4e17ce['CONNECTED'])['catch'](_0x75db37=>{throw console['error'](_0x75db37),new _0x146074('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x4e17ce['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x1b9cff{['channelSessions'];['channelConnectedUsers'];['allConnectedUsers'];['_registeredSessions'];['_uniqueUsersCount'];['_users'];static get['pluginName'](){return'Sessions';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}static get['requires'](){return[WebSocketGateway,_0x3e9224];}constructor(_0x1e08b9){super(_0x1e08b9),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x340917(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x3e9224);}['init'](){const _0x2ca04c=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x2ca04c,'change:state',(_0x1ec655,_0x4ed08a,_0x18a927)=>{if('connected'!==_0x18a927)this['channelSessions']['forEach'](_0x372c72=>_0x372c72['clear']()),this['channelConnectedUsers']['forEach'](_0x417c1a=>_0x417c1a['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x17c5b8,_0x353fcf]of this['_registeredSessions'])for(const _0x1a5374 of _0x353fcf)this['_handleSessionAdd'](_0x17c5b8,_0x1a5374);}}),this['_createUser'](_0x2ca04c['connection']['me'],!0x0);}['register'](_0x577280,_0xf6e01){if(this['_registeredSessions']['has'](_0x577280))throw new _0x146074('sessions-register-already-registered',null,{'channelId':_0x577280});this['_registeredSessions']['set'](_0x577280,_0xf6e01),this['channelSessions']['set'](_0x577280,new _0x340917()),this['channelConnectedUsers']['set'](_0x577280,new _0x340917()),this['listenTo'](_0xf6e01,'add',(_0x53a7e0,_0xcb8861)=>this['_handleSessionAdd'](_0x577280,_0xcb8861)),this['listenTo'](_0xf6e01,'remove',(_0x4afd8a,_0x1b2703)=>this['_handleSessionRemove'](_0x577280,_0x1b2703));for(const _0xc0262c of _0xf6e01)this['_handleSessionAdd'](_0x577280,_0xc0262c);}['unregister'](_0x869e36){if(!this['_registeredSessions']['has'](_0x869e36))throw new _0x146074('sessions-unregister-not-exist',null,{'channelId':_0x869e36});const _0xb493df=this['_registeredSessions']['get'](_0x869e36);this['stopListening'](_0xb493df);for(const _0x201a20 of _0xb493df)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x869e36,_0x201a20);this['_registeredSessions']['delete'](_0x869e36),this['channelSessions']['delete'](_0x869e36),this['channelConnectedUsers']['delete'](_0x869e36);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x2d6edc){for(const _0x130710 of this['channelSessions']['values']())for(const _0x598c0d of _0x130710)if(_0x598c0d['id']===_0x2d6edc)return _0x598c0d['user'];}['getUserSessions'](_0x766f00,_0x354b28){const _0x18bed8=_0x354b28?[this['channelSessions']['get'](_0x354b28)]:this['channelSessions']['values'](),_0x39d9bf=new Set();for(const _0x5335e1 of _0x18bed8)for(const _0x2bb8e3 of _0x5335e1)_0x2bb8e3['user']['id']===_0x766f00['id']&&_0x39d9bf['add'](_0x2bb8e3['id']);return _0x39d9bf;}['getUserRole'](_0x1b9de6){for(const _0x2ef450 of this['channelSessions']['values']())for(const _0x38f0bd of _0x2ef450)if(_0x38f0bd['user']===_0x1b9de6)return _0x38f0bd['role'];}['_handleSessionAdd'](_0x179593,_0x1d4d8a){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x1429cc=_0x1d4d8a['user'],_0x23063d=this['_users']['getUser'](_0x1429cc['id'])||this['_createUser'](_0x1429cc),_0x24fc96=Object['assign']({},_0x1d4d8a,{'user':_0x23063d});if(this['channelSessions']['get'](_0x179593)['add'](_0x24fc96),!_0x1429cc['hiddenInPresenceList']){const _0x2e0f46=this['channelConnectedUsers']['get'](_0x179593);_0x2e0f46['has'](_0x23063d['id'])||_0x2e0f46['add'](_0x23063d),this['allConnectedUsers']['has'](_0x23063d['id'])||_0x1429cc['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x23063d,_0x23063d['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x179593,{'channelId':_0x179593,'session':_0x24fc96});}['_handleSessionRemove'](_0x2e49af,_0x230126){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x25068f=this['channelConnectedUsers']['get'](_0x2e49af),_0x3bce15=_0x230126['user'];_0x3bce15['id']&&(this['channelSessions']['get'](_0x2e49af)['remove'](_0x230126['id']),_0x25068f['has'](_0x3bce15['id'])&&!this['getUserSessions'](_0x3bce15,_0x2e49af)['size']&&_0x25068f['remove'](_0x3bce15['id']),this['allConnectedUsers']['get'](_0x3bce15['id'])&&!this['getUserSessions'](_0x3bce15)['size']&&this['allConnectedUsers']['remove'](_0x3bce15['id']));}['_createUser'](_0x4fa32d,_0x3c9496){const _0x4dff0f=this['_users']['addUser'](_0x4fa32d);return _0x3c9496&&this['_users']['defineMe'](_0x4fa32d['id']),_0x4dff0f['orderNumber']=this['_uniqueUsersCount']++,_0x4dff0f;}}class UserMarkers extends _0x25acfb{['_domEmitter']=new(_0x3daabf())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x1c744e=this['editor'],_0x17f8ec=_0x1c744e['plugins']['get'](Sessions);_0x1c744e['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x110bf1,{writer:_0x4fca7b})=>function(_0x435555,_0x22e618,_0x5590b8,_0x56a491){const _0x1308e8=_0x435555['markerName']['split'](':')[0x2],_0x12cc05=_0x5590b8['getUserBySessionId'](_0x1308e8);if(!_0x12cc05||_0x1308e8===_0x5590b8['mySessionId'])return;if(!_0x56a491['model']['schema']['checkChild'](_0x435555['markerRange']['start'],'$text'))return;const _0x191944={'class':'ck-user__marker\x20'+_0x12cc05['color']['getMarkerClass'](),'style':Y(_0x12cc05),'data-name':_0x12cc05['name'],'data-session-id':_0x1308e8},_0x1250de=_0x56a491['model']['markers']['get'](_0x435555['markerName']),_0x9eb81e=_0x1250de['getStart'](),_0x251116=_0x9eb81e['nodeAfter'],_0x34f2b9=_0x56a491['model']['schema'];if(_0x251116&&_0x34f2b9['isObject'](_0x251116)&&_0x34f2b9['isInline'](_0x251116)&&!_0x56a491['model']['markers']['get']('user:range:'+_0x1308e8)['getRange']()['isCollapsed'])return;const _0x4cd3f3=_0x9eb81e['parent'];return _0x56a491['model']['schema']['isLimit'](_0x4cd3f3)&&!_0x56a491['model']['hasContent'](_0x4cd3f3)&&(_0x191944['contenteditable']=!0x1),function(_0x50d7fc,_0x213b72,_0xea48ec){const _0x588475=_0x50d7fc['createUIElement']('span',_0x213b72);return _0x50d7fc['setCustomProperty']('userPositionMarker',!0x0,_0x588475),_0x588475['render']=function(_0x17ae13){const _0x56fa49=this['toDomElement'](_0x17ae13),_0x540e92=document['createElement']('span');return _0x540e92['classList']['add']('ck-user__marker-tooltip'),_0x540e92['setAttribute']('contenteditable','false'),_0x540e92['setAttribute']('spellcheck','false'),_0x540e92['textContent']=_0xea48ec['name'],_0x56fa49['innerHTML']='<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x540e92['outerHTML']+'',_0x56fa49['addEventListener']('mouseenter',()=>{_0x56fa49['classList']['add']('ck-user__marker_hovered');}),_0x56fa49['addEventListener']('mouseleave',()=>{_0x56fa49['classList']['remove']('ck-user__marker_hovered');}),_0x56fa49;},_0x588475['isSimilar']=function(_0xbbe249){return!(!this['getCustomProperty']('userPositionMarker')||!_0xbbe249['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0xbbe249['getAttribute']('data-session-id'));},_0x588475;}(_0x22e618,_0x191944,_0x12cc05);}(_0x110bf1,_0x4fca7b,_0x17f8ec,_0x1c744e)}),_0x1c744e['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x2fcd16=>function(_0x3a8068,_0x1cc68c){const _0x5a3777=_0x3a8068['markerName']['split'](':')[0x2];if(_0x5a3777===_0x1cc68c['mySessionId'])return null;const _0x41dbf7=_0x1cc68c['getUserBySessionId'](_0x5a3777);if(!_0x41dbf7)return{'id':_0x5a3777,'classes':[]};return{'id':_0x5a3777,'classes':['ck-user__selection',_0x41dbf7['color']['getSelectionClass']()],'attributes':{'style':Y(_0x41dbf7),'data-session-id':_0x5a3777},'priority':0x7d0+_0x41dbf7['orderNumber']};}(_0x2fcd16,_0x17f8ec)}),function(_0x55468f){const _0x35fd94=_0x55468f['model'],_0x4192e2=new Map(),_0x1ebad6=_0x55468f['plugins']['get'](Sessions);_0x35fd94['markers']['on']('update:user:range',(_0x5038fb,_0x2ed3a4,_0x51d79f,_0xc4419e)=>{if(!_0xc4419e&&_0x4192e2['get'](_0x2ed3a4['name']))return _0x4192e2['get'](_0x2ed3a4['name'])['detach'](),void _0x4192e2['delete'](_0x2ed3a4['name']);const _0x47d06e=_0x2ed3a4['name']['split'](':')[0x2];if(_0x47d06e===_0x1ebad6['mySessionId'])return;const _0x36d155='user:position:'+_0x47d06e;_0x35fd94['markers']['has'](_0x36d155)&&_0x55468f['editing']['reconvertMarker'](_0x36d155),_0x2ed3a4['on']('change:range',(_0x3a5cb4,_0xdea481,_0x25d880)=>{if('$graveyard'!=_0xdea481['root']['rootName']&&'$graveyard'==_0x2ed3a4['getRange']()['root']['rootName']&&!_0x4192e2['has'](_0x2ed3a4['name'])){const _0x269c14=_0x35fd94['schema']['getNearestSelectionRange'](_0x25d880['deletionPosition']);if(_0x269c14){const _0x17dac3=_0x5d0016['fromRange'](_0x269c14);_0x4192e2['set'](_0x2ed3a4['name'],_0x17dac3),_0x17dac3['on']('change:range',(_0x58f15e,_0x4f0b0c,_0x22a73c)=>{if('$graveyard'==_0x17dac3['root']['rootName']){const _0x1cf256=_0x35fd94['schema']['getNearestSelectionRange'](_0x22a73c['deletionPosition']);_0x1cf256?(_0x17dac3['start']=_0x1cf256['start'],_0x17dac3['end']=_0x1cf256['end']):(_0x4192e2['delete'](_0x2ed3a4['name']),_0x17dac3['detach']());}});}}});}),_0x35fd94['document']['on']('change',()=>{_0x4192e2['size']>0x0&&_0x35fd94['enqueueChange']({'isUndoable':!0x1},_0x3a393c=>{for(const [_0x2e22ff,_0x8e7abd]of _0x4192e2)'$graveyard'==_0x35fd94['markers']['get'](_0x2e22ff)['getRange']()['root']['rootName']&&(z(_0x2e22ff['split'](':')[0x2],_0x8e7abd['toRange'](),_0x35fd94,_0x3a393c),_0x8e7abd['detach']());_0x4192e2['clear']();});});}(_0x1c744e),this['_domEmitter']['listenTo'](_0x248dd9['document'],'keydown',(_0x5db12d,{key:_0x1d2e63})=>{'Escape'===_0x1d2e63&&function(_0x394511){_0x394511['editing']['view']['change'](_0x327a79=>{for(const _0x5c2e1c of _0x394511['model']['markers']){if(!_0x5c2e1c['name']['startsWith']('user:position'))continue;const _0x296c41=_0x394511['editing']['mapper']['markerNameToElements'](_0x5c2e1c['name']);if(_0x296c41){for(const _0x58150b of _0x296c41)_0x327a79['removeClass']('ck-user__marker_hovered',_0x58150b);}}});}(_0x1c744e);},{'useCapture':!0x0});}['afterInit'](){const _0x3c7656=this['editor'],_0x468305=_0x3c7656['commands']['get']('undo');_0x468305&&_0x3c7656['model']['on']('applyOperation',(_0x43fcf0,_0x16dd51)=>{const _0x305a65=_0x16dd51[0x0];if(!_0x305a65['isDocumentOperation'])return;if('marker'!=_0x305a65['type']||!_0x305a65['name']['startsWith']('user:'))return;const _0x466ec2=_0x305a65['batch'];_0x468305['_createdBatches']['has'](_0x466ec2)&&(_0x305a65['newRange']=_0x305a65['oldRange']?_0x3c7656['model']['createRange'](_0x305a65['oldRange']['start'],_0x305a65['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x1c3d2d=this['editor'],_0x5d6ef7=_0x1c3d2d['model']['document'],_0x589626=_0x1c3d2d['plugins']['get'](Sessions);_0x1c3d2d['model']['enqueueChange']({'isUndoable':!0x1},_0x17bdc=>{const _0x49fa24='user:range:'+_0x589626['mySessionId'],_0x25c6d3='user:position:'+_0x589626['mySessionId'],_0x29de2a=_0x1c3d2d['model']['markers']['has'](_0x49fa24);_0x1c3d2d['editing']['view']['hasDomSelection']?z(_0x589626['mySessionId'],_0x5d6ef7['selection']['getFirstRange'](),_0x1c3d2d['model'],_0x17bdc):_0x29de2a&&(_0x17bdc['removeMarker'](_0x49fa24),_0x17bdc['removeMarker'](_0x25c6d3));});}}function z(_0x3c0f6e,_0x20112b,_0x1b4e78,_0x30fa75){const _0x9d9b5d='user:range:'+_0x3c0f6e,_0x43baa1='user:position:'+_0x3c0f6e,_0x32ce0e=_0x20112b['getContainedElement']();let _0x2e5be0=_0x20112b['start'];if(_0x32ce0e&&_0x32ce0e['is']('element','tableCell')){const _0x54faf1=function(_0x47fc28,_0xabfdf7){for(const _0x165e8d of _0x47fc28['getPositions']())if(_0xabfdf7['schema']['checkChild'](_0x165e8d,'$text'))return _0x165e8d;}(_0x20112b,_0x1b4e78);_0x54faf1&&(_0x2e5be0=_0x54faf1,_0x20112b=_0x30fa75['createRange'](_0x2e5be0));}const _0x37a96d=_0x30fa75['createRange'](_0x2e5be0);_0x1b4e78['markers']['has'](_0x9d9b5d)?(_0x30fa75['updateMarker'](_0x9d9b5d,{'range':_0x20112b}),_0x30fa75['updateMarker'](_0x43baa1,{'range':_0x37a96d})):(_0x30fa75['addMarker'](_0x9d9b5d,{'range':_0x20112b,'usingOperation':!0x0}),_0x30fa75['addMarker'](_0x43baa1,{'range':_0x37a96d,'usingOperation':!0x0}));}function Y(_0x1160b1){return'--ck-user-color:'+_0x1160b1['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x1160b1['color']['getColorAlphaVariable']()+';';}function K(_0x524bec,_0x3ed2cd,_0x25243d){const _0x142560=_0x524bec['t'],t=_0x524bec['t'];switch(_0x3ed2cd){case'PENDING_ACTION_SENDING_DATA':return t({'string':'Sending\x20data\x20to\x20the\x20server.','id':'PENDING_ACTION_SENDING_DATA'});case'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'Synchronization\x20issue':return t('Synchronization\x20issue');case'Connected\x20users\x20list\x20dropdown\x20menu':return t('Connected\x20users\x20list\x20dropdown\x20menu');case'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':return t('Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)');case'Connected\x20users\x20list':return t('Connected\x20users\x20list');case'PENDING_ACTION_REVISION_HISTORY':return _0x142560({'string':'Unsaved\x20change\x20in\x20revision\x20history.','id':'PENDING_ACTION_REVISION_HISTORY'});case'CONNECTED_USERS':return t({'string':'1\x20connected\x20user\x20(me)','plural':'%0\x20connected\x20users','id':'CONNECTED_USERS'},_0x25243d);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x25acfb{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
|
|
25
|
-
((()=>_0x2cf64e)());['_offset'];['sessionId'];['serverHistory'];['_channelId'];['_service'];['_document'];['_compressor'];['_bufferedOperations'];['_knownOperations'];['_knownRootNames'];['_pendingAction'];['_hasSelectionChanged'];['_sendBufferedOperationsDelayId'];['_baseBufferDelay'];['_currentBufferDelay'];['_lastSyncedOperationId'];['_disconnectionOperations'];['_operationIdentifier'];static get['requires'](){return[WebSocketGateway,Sessions,UserMarkers,_0x31943e,_0x3e9224,_0x532a35];}static get['pluginName'](){return'RealTimeCollaborationClient';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}get['cloudDocumentVersion'](){return this['_lastServerVersion']+this['_offset'];}get['_lastServerVersion'](){return this['serverHistory']['version']-this['_offset'];}get['lastSyncVersion'](){const _0x3409a7=this['serverHistory']['getOperations']();for(let _0x3ed423=_0x3409a7['length']-0x1;_0x3ed423>=0x0;_0x3ed423--){const _0x1928ee=_0x3409a7[_0x3ed423];if(!this['_disconnectionOperations']['has'](_0x1928ee))return _0x1928ee['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x1c90e7){if(super(_0x1c90e7),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0xb0b44f(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x146074('collaboration-missing-channelid',this);const _0x456fc5=_0x1c90e7['config']['get']('cloudServices.bundleVersion')||_0x429b78;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x456fc5,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x41afd4(),this['_bufferedOperations']=[],this['_knownOperations']=new WeakSet(),this['_knownRootNames']=new Set(),this['set']('_isPendingUpdate',!0x1),this['set']('_hasSynchronizationProblem',!0x1),this['_pendingAction']=null,this['_hasSelectionChanged']=!0x1,this['_sendBufferedOperationsDelayId']=null,this['_baseBufferDelay']=0x12c,this['_currentBufferDelay']=this['_baseBufferDelay'],this['_lastSyncedOperationId']=null,this['_disconnectionOperations']=new WeakSet(),this['_operationIdentifier']=new OperationIdentifier(this['_disconnectionOperations']);}['init'](){const _0x295fca=this['editor'],_0x29e352=_0x295fca['plugins']['get'](_0x3e9224),_0x6feeac=_0x295fca['plugins']['get'](WebSocketGateway);this['listenTo'](_0x29e352,'getOperationAuthor',(_0x2fdad6,_0x540be5)=>{const _0x5a0498=_0x540be5[0x0];_0x5a0498['_authorId']&&(_0x2fdad6['return']=_0x29e352['getUser'](_0x5a0498['_authorId']),_0x2fdad6['stop']()),null===_0x5a0498['_authorId']&&(_0x2fdad6['return']=null,_0x2fdad6['stop']());},{'priority':'high'}),this['listenTo'](_0x295fca['model']['document']['selection'],'change:range',(_0x46da0d,_0x2598c1)=>{_0x2598c1['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x295fca['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x295fca['model']['on']('applyOperation',(_0x4fabd1,_0x593575)=>{const _0x35c339=_0x593575[0x0];_0x35c339['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x35c339),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x6feeac,'state',this,'_hasSynchronizationProblem',(_0x30e6ff,_0x1aa68c)=>'connected'===_0x30e6ff&&!_0x1aa68c),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x295fca['disableReadOnlyMode']('rtc-offline'):_0x295fca['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x295fca['disableReadOnlyMode']('rtc-offline'):_0x295fca['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x5db02f=this['editor']['plugins']['get'](Sessions),_0x4a5c88=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x5db02f['unregister'](this['_channelId']);const _0x3ca5cc=await this['_service']['reconnect'](_0x4a5c88['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x3ca5cc)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x1142e3=await this['_service']['getConnectedSessions']();_0x5db02f['register'](this['_channelId'],_0x1142e3),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x2abfe7){if(function(_0x2c399e){return'404'===_0x2c399e['code'];}(_0x2abfe7)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0xfcd4f){return'409'===_0xfcd4f['code'];}(_0x2abfe7)){const _0x178c3f=K(this['editor']['locale'],'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');this['_handleReconnectionError'](_0x178c3f);}else{if(!(_0x2abfe7 instanceof ReconnectionError))throw _0x2abfe7;this['_handleReconnectionError']();}}}}['destroy'](){const _0x3d6ac9=this['editor']['plugins']['get'](WebSocketGateway),_0x46d7aa=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x46d7aa['channelSessions']['has'](this['_channelId'])&&_0x46d7aa['unregister'](this['_channelId']),_0x3d6ac9['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x5e7fa5){if(this['sessionId']!==_0x5e7fa5['sessionId']&&this['_lastSyncedOperationId']!==_0x5e7fa5['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x5e7fa5['sessionId'],this['_handleServerResponse']([],{..._0x5e7fa5,'wereChangesApplied':!0x1,'data':_0x5e7fa5['data']},'reconnect');}async['_connectService'](_0x222de6,_0x552094=!0x1){const {connection:_0x1b9b90}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x1b9b90,this['_channelId'])['then'](_0x330465=>this['_initSessionsHandling'](_0x330465))['catch'](_0x5c5986=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x5c5986);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x23e7f0,_0x122fe0)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x122fe0);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x3761d7=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x222de6);this['_isPendingUpdate']=!0x0;const _0x3bb3d8=await this['_service']['connect'](_0x1b9b90,this['_compressOperations'](_0x222de6),_0x3761d7);if(this['sessionId']=_0x3bb3d8['sessionId'],_0x552094){if(!_0x3bb3d8['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x3bb3d8['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x222de6,_0x3bb3d8,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x3bb3d8,_0x222de6);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x35024d=this['editor']['plugins']['get'](Sessions),_0x534157=this['editor']['plugins']['get'](UserMarkers),_0x4aa9b2=_0x35024d['channelSessions']['get'](this['_channelId']);_0x4aa9b2&&_0x4aa9b2['length']>0x1?_0x534157['createUserMarkerOperations']():this['listenTo'](_0x35024d,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x35024d['channelSessions']['get'](this['_channelId'])['length']&&_0x534157['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x129e92,_0x530153,_0x95609,_0x145836){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x530153){const _0x1fcc73=this['_decompressOperations'](_0x95609,_0x145836);await this['_fetchMissingUsers'](_0x1fcc73),this['_handleExternalOperations'](_0x1fcc73,_0x530153,_0x95609['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x564161}=this['editor'];let _0x4ece56;try{_0x4ece56=await this['_service']['getDocumentDetails']();}catch{const _0x964b98=K(_0x564161,'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x964b98);}const _0x526cf9=_0x4ece56['currentDocumentSession']||_0x4ece56['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x526cf9['lastOperationId']){const _0x12a8ea=K(_0x564161,'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x12a8ea);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0xfefdf1){const _0x256c47=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x256c47,'sessionAdd:'+this['_channelId'],(_0x155916,{session:_0x58fc9f})=>{if(_0x58fc9f['id']===_0x256c47['mySessionId']){_0x155916['off']();const _0x2c68c2=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x2d1049=_0x58fc9f['permissions'];_0x2c68c2&&_0x2c68c2['isEnabled']&&(_0x2d1049=_0x2d1049['filter'](_0x1cb5ba=>'document:write'!==_0x1cb5ba)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x2d1049,this['_channelId']);}}),_0x256c47['register'](this['_channelId'],_0xfefdf1);}['_initThrowingOnDataSet'](){const _0x2ef210=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x31ca1c)=>{if(!_0x31ca1c[_0x31ca1c['length']-0x1]['suppressErrorInCollaboration'])throw new _0x146074('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x2ef210['apply'](this['editor']['data'],_0x31ca1c);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x3bca1d,[_0x409118])=>{if(this['_document']['version'])throw new _0x146074('realtimecollaborationclient-init-document-already-initialized',this);_0x3bca1d['stop'](),this['_setPendingAction']();const _0x23ea78=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x1fbf61])=>!_0x1fbf61['lazyLoad'])['map'](([_0x2469e4,_0x13d6b4])=>[_0x2469e4,_0x13d6b4['modelAttributes']||{}])),_0x2e2b15=this['_getOperationsFromInitData'](_0x409118,_0x23ea78);0x0==_0x2e2b15['length']&&_0x2e2b15['push'](new _0x5ea7c9(0x0)),_0x3bca1d['return']=this['_connectService'](_0x2e2b15)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x28956d=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x28956d))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x57bf82,[_0x5e66b2,_0x2d0a69])=>{_0x57bf82['stop']();const _0x5cac3d=this['editor']['model']['document']['getRoot'](_0x5e66b2);if(!this['_knownRootNames']['has'](_0x5e66b2)){const _0x110af5=_0x2d0a69&&_0x2d0a69['data']?_0x2d0a69['data']:'',_0x26c064=_0x2d0a69&&_0x2d0a69['attributes']?_0x2d0a69['attributes']:{};await this['_loadRoot'](_0x5e66b2,_0x110af5,_0x26c064);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x5cac3d['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x5cac3d);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x17bb91){const _0x41f9a9=this['editor']['plugins']['get'](_0x3e9224),{connection:_0x52163a}=this['editor']['plugins']['get'](WebSocketGateway),_0x2ce6f6=new Set();for(const _0x7fa9 of _0x17bb91){const _0x2db2e1=_0x7fa9['_authorId'];_0x2db2e1&&!_0x41f9a9['getUser'](_0x2db2e1)&&_0x2ce6f6['add'](_0x2db2e1);}if(0x0===_0x2ce6f6['size'])return;const _0x554c2e=await _0x3383d3['getMany'](_0x52163a,Array['from'](_0x2ce6f6));for(const _0x230bab of _0x554c2e)_0x41f9a9['getUser'](_0x230bab['id'])||_0x41f9a9['addUser'](_0x230bab);}['_getOperationsFromInitData'](_0x3349fa,_0x496afa={}){const _0x4a543a=this['editor']['model'],_0x4ece16=[];let _0x1375af=0x0;const _0x114998='string'==typeof _0x3349fa?{'main':_0x3349fa}:_0x3349fa;for(const _0x3df09f of Object['keys'](_0x114998)){if(!this['_document']['roots']['has'](_0x3df09f))throw new _0x146074('realtimecollaborationclient-init-non-existent-root',this);const _0x5d49e5=this['editor']['data']['parse'](_0x114998[_0x3df09f]),_0x53f242=this['_document']['getRoot'](_0x3df09f),_0x4b9802=new _0x10dd3e(_0x4a543a['createPositionAt'](_0x53f242,0x0),_0x5d49e5,_0x1375af++);_0x4ece16['push'](_0x4b9802);for(const [_0x482cd1,_0x2be80d]of _0x5d49e5['markers']){const _0x3c3b0a=_0x4a543a['createRange'](_0x4a543a['createPositionFromPath'](_0x53f242,_0x2be80d['start']['path']['slice']()),_0x4a543a['createPositionFromPath'](_0x53f242,_0x2be80d['end']['path']['slice']())),_0x123a05=new _0x40006b(_0x482cd1,null,_0x3c3b0a,_0x4a543a['markers'],!0x0,_0x1375af++);_0x4ece16['push'](_0x123a05);}}if(_0x496afa)for(const [_0x3d3696,_0x17b135]of Object['entries'](_0x496afa)){const _0x8af1cd=_0x4a543a['document']['getRoot'](_0x3d3696);if(!_0x8af1cd)throw new _0x146074('multi-root-editor-root-attributes-no-root',null);for(const [_0x1fa0ff,_0x5efa23]of Object['entries'](_0x17b135))if(null!==_0x5efa23){const _0x4bcb46=new _0x411e94(_0x8af1cd,_0x1fa0ff,null,_0x5efa23,_0x1375af++);_0x4ece16['push'](_0x4bcb46);}}return _0x4ece16;}async['_loadRoot'](_0x38e74c,_0x39c8b3,_0x48245b){this['_getOperationsFromInitData']({[_0x38e74c]:_0x39c8b3},{[_0x38e74c]:_0x48245b})['forEach']((_0x14f1f1,_0x457912)=>{_0x14f1f1['baseVersion']=this['_document']['version']+_0x457912,_0x14f1f1['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x14f1f1);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x3683d0,_0x2ff763){let _0x652b1b;this['_offset']=_0x3683d0['offset'];const _0x313ff0=_0x3683d0['wereChangesApplied']&&!_0x3683d0['initData'],_0x374655=_0x313ff0?0x0:_0x3683d0['data']['baseVersion'];if(_0x2ff763['forEach'](_0x248a23=>{_0x248a23['_isInit']=!0x0,_0x248a23['createdAt']=_0x3683d0['sessionCreatedAt'],_0x248a23['_authorId']=null;}),_0x313ff0)_0x652b1b=_0x2ff763,this['_applyOperationsSet'](_0x652b1b,_0x313ff0);else{if(_0x3683d0['initData']){const _0x3726cf=this['_getOperationsFromInitData'](_0x3683d0['initData']);this['_document']['history']['version']=-_0x3726cf['length'],_0x3726cf['forEach'](_0xf3ca1f=>{_0xf3ca1f['baseVersion']-=_0x3726cf['length'],_0xf3ca1f['createdAt']=_0x3683d0['sessionCreatedAt'],_0xf3ca1f['_isInit']=!0x0,_0xf3ca1f['_authorId']=null;}),this['_applyOperationsSet'](_0x3726cf,!0x0),this['serverHistory']['version']=-_0x3726cf['length']+this['_offset'],this['_updateServerHistory'](_0x3726cf);}this['_document']['history']['version']=_0x374655,_0x652b1b=this['_decompressOperations'](_0x3683d0['data'],_0x3683d0['metadata']),await this['_fetchMissingUsers'](_0x652b1b),this['_applyOperationsSet'](_0x652b1b,_0x313ff0);}_0x3683d0['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x652b1b,_0x3683d0['lastOperationId']),this['_lastSyncedOperationId']=_0x3683d0['lastOperationId']),this['serverHistory']['version']=_0x374655+this['_offset'],this['_updateServerHistory'](_0x652b1b),_0x2ff763['filter'](_0x4901e9=>{const _0xa36c7a=this['_getAffectedRoot'](_0x4901e9);return _0xa36c7a&&!this['_knownRootNames']['has'](_0xa36c7a);})['forEach']((_0x163b4a,_0x52fd9b)=>{_0x163b4a['baseVersion']=this['_document']['version']+_0x52fd9b,this['_saveOperationInBuffer'](_0x163b4a);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x1707ec,_0x41bb27){const _0x3051e3=_0x41bb27&&_0x41bb27['message'];if(_0x3051e3&&_0x3051e3['startsWith']('realtimecollaborationclient'))throw _0x41bb27;const _0x44c659=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x44c659['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x146074(_0x1707ec,this['editor'],_0x3051e3?{'originalError':_0x3051e3}:void 0x0);}['_saveOperationInBuffer'](_0x545d50){this['_knownOperations']['has'](_0x545d50)||(this['_knownOperations']['add'](_0x545d50),this['_bufferedOperations']['push'](_0x545d50),this['_pendingAction']||'marker'==_0x545d50['type']&&!_0x545d50['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x153bcf=!0x1){!_0x153bcf&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x34c599=>{_0x34c599&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x525539=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x44cce5){return _0x44cce5['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x44cce5['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x44cce5['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x525539)||this['_crash'](_0x525539['message'],_0x525539);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x5a89e8=>{this['on']('change:_isPendingUpdate',()=>{_0x5a89e8();});});}async['_sendBufferedOperations'](){const _0x79cb55=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x79cb55['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x4e6a2a=[...this['_bufferedOperations']];for(const _0x28b098 of _0x4e6a2a)_0x28b098['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x28b098);const _0x4237e8=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x4e6a2a),_0x5b06a1=J++,_0x1e51ff=this['_compressOperations'](_0x4e6a2a),_0x42196b=await this['_service']['sendOperations'](_0x1e51ff,_0x1e51ff['baseVersion'],_0x4237e8);try{return await this['_handleServerResponse'](_0x4e6a2a,_0x42196b,_0x5b06a1);}catch(_0x20d090){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x20d090);}}async['_handleServerResponse'](_0x1d9651,_0x2871c0,_0x30f470){if('error'in _0x2871c0)throw _0x2871c0['error'];let _0x1f37f3=!0x1;if(_0x2871c0['wereChangesApplied']){_0x2871c0['lastOperationId']&&(this['_lastSyncedOperationId']=_0x2871c0['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x4b26ce=>!_0x1d9651['includes'](_0x4b26ce));for(const _0x2b2643 of _0x1d9651)_0x2b2643['createdAt']='lastOperationAcceptedAt'in _0x2871c0&&_0x2871c0['lastOperationAcceptedAt']||void 0x0;Q(_0x1d9651,_0x2871c0['version']-_0x1d9651['length']),this['_updateServerHistory'](_0x1d9651);const _0x205575=_0x1d9651['filter'](_0x1eee4b=>{if(!_0x1eee4b['_isInit'])return!0x1;const _0x494dfb=this['_getAffectedRoot'](_0x1eee4b);return _0x494dfb&&!this['_knownRootNames']['has'](_0x494dfb);});Q(_0x205575,this['_document']['version']),this['_applyOperationsSet'](_0x205575),_0x1f37f3=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x476070=this['_decompressOperations'](_0x2871c0['data'],_0x2871c0['metadata'])['filter'](_0xac0aac=>_0xac0aac['baseVersion']>=this['_lastServerVersion']);_0x476070['forEach'](_0x2c790c=>this['_addKnownRoot'](_0x2c790c)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x299d69=>!_0x299d69['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x299d69))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x476070),_0x1f37f3=this['_handleExternalOperations'](_0x476070,_0x2871c0['version'],_0x2871c0['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x1f37f3?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x1f7d49,_0x1008b3,_0x29b543){try{const _0x475489={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x21c66e,operationsB:_0x491164,originalOperations:_0x46fab3}=_0x325962(_0x1f7d49,this['_bufferedOperations'],_0x475489);Q(_0x21c66e,this['_document']['version']),Q(_0x491164,_0x1008b3);for(const _0x291c98 of _0x21c66e){const _0x4d9a70=_0x46fab3['get'](_0x291c98);_0x291c98['_authorId']=_0x4d9a70?_0x4d9a70['_authorId']:null;}_0x29b543&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x1f7d49,_0x29b543),this['_lastSyncedOperationId']=_0x29b543),this['_bufferedOperations']=[..._0x491164],this['_applyOperationsSet'](_0x21c66e),this['_updateServerHistory'](_0x1f7d49);}catch(_0x3295c1){return console['error'](_0x3295c1),!0x1;}return!0x0;}['_applyOperationsSet'](_0x22d622,_0x36e994=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x55d6b5=>{for(const _0x2a0917 of _0x22d622)this['_knownOperations']['add'](_0x2a0917),this['_addKnownRoot'](_0x2a0917),_0x55d6b5['batch']['addOperation'](_0x2a0917),this['editor']['model']['applyOperation'](_0x2a0917);});}['_addKnownRoot'](_0x35de3f){const _0x4edd40=this['_getAffectedRoot'](_0x35de3f);_0x4edd40&&this['_knownRootNames']['add'](_0x4edd40);}['_getAffectedRoot'](_0xb3351f){let _0x2ae70c,_0x3c70b0;switch(_0xb3351f['type']){case'insert':_0x2ae70c=_0xb3351f['position']['root'];break;case'marker':if(_0x3c70b0=_0xb3351f['newRange'],!_0x3c70b0)return null;_0x2ae70c=_0x3c70b0['root'];break;case'addRootAttribute':_0x2ae70c=_0xb3351f['root'];break;case'addRoot':_0x2ae70c=_0xb3351f['affectedSelectable'];break;case'move':_0x2ae70c=_0xb3351f['targetPosition']['root'];break;default:return null;}return _0x2ae70c['rootName'];}['_updateServerHistory'](_0x2ba994){_0x2ba994['forEach'](_0x474aa2=>{const _0x1d2930=_0x474aa2['clone']();_0x1d2930['_authorId']=_0x474aa2['_authorId'],_0x1d2930['_isInit']=!!_0x474aa2['_isInit'],_0x1d2930['createdAt']=_0x474aa2['createdAt'],_0x1d2930['baseVersion']+=this['_offset'],_0x474aa2['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x1d2930),this['serverHistory']['addOperation'](_0x1d2930);});}['_handleReconnectionError'](_0x690d1f){const _0x3a9d53=this['editor']['plugins']['get']('Notification'),_0x4a30e4=this['editor']['locale'];_0x690d1f||(_0x690d1f=K(_0x4a30e4,'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.')),_0x3a9d53['showWarning'](_0x690d1f,{'title':K(_0x4a30e4,'Synchronization\x20issue'),'namespace':'real-time-collaboration'}),this['_hasSynchronizationProblem']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_bufferedOperations']=[],this['editor']['plugins']['get'](WebSocketGateway)['disconnect']();}['_setPendingAction'](){this['_pendingAction']||(this['_pendingAction']=this['editor']['plugins']['get'](_0x31943e)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x31943e)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x296904){const _0x5eef7f=_0x296904['map'](_0x2bbd42=>_0x2bbd42['toJSON']());return this['_compressor']['compress'](_0x5eef7f);}['_decompressOperations'](_0x50aa8f,_0x51bcb3){return this['_compressor']['decompress'](_0x50aa8f)['map']((_0x46893a,_0x41f355)=>{const _0x5e7f98='init'==_0x51bcb3[_0x41f355]['type'];if('InsertOperation'==_0x46893a['__className']){const _0x43d373=_0x46893a['position']['root'];!this['_document']['getRoot'](_0x43d373)&&(this['_document']['createRoot']('$root',_0x43d373)['_isAttached']=!0x1);}const _0x39c333=_0x44417e['fromJSON'](_0x46893a,this['_document']);return _0x39c333['wasUndone']=_0x46893a['wasUndone'],_0x39c333['_isInit']=_0x5e7f98,_0x39c333['_authorId']=_0x5e7f98?null:_0x51bcb3[_0x41f355]['userId'],_0x39c333['_isDisconnection']='cs:removeUser'===_0x51bcb3[_0x41f355]['type'],_0x39c333['createdAt']=_0x51bcb3[_0x41f355]['createdAt'],_0x39c333;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x14c80a=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x14c80a&&_0x14c80a['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x22f9fb,_0xc8390c){for(const _0x3878af of _0x22f9fb)_0x3878af['baseVersion']=_0xc8390c++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x4f71b5){this['_ignoredOperations']=_0x4f71b5,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x37ca51){let _0x3405e0=_0x37ca51['length'];for(;_0x3405e0--;){const _0x4c14a4=_0x37ca51[_0x3405e0];if(!this['_ignoredOperations']['has'](_0x4c14a4)){if(!this['_operationToId']['has'](_0x4c14a4)){const _0x41e90b=_0x2f36df()['slice'](0x1,0x12);this['_operationToId']['set'](_0x4c14a4,_0x41e90b);}return this['_operationToId']['get'](_0x4c14a4);}}}['setIdForTheLastOperation'](_0x34818f,_0x13b2d4){if(!_0x13b2d4)return;let _0xfaa36f=_0x34818f['length'];for(;_0xfaa36f--;){const _0x2b9d58=_0x34818f[_0xfaa36f];this['_ignoredOperations']['has'](_0x2b9d58)||this['_operationToId']['set'](_0x2b9d58,_0x13b2d4);}}}class RealTimeCollaborativeEditing extends _0x25acfb{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x1b9cff{static ['CommentsService']=/* #__PURE__ -- @preserve */
|
|
26
|
-
((()=>_0x476c1f)());['_services'];static get['requires'](){return[WebSocketGateway,_0x33588d,Sessions,_0x3e9224];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x31d85e){super(_0x31d85e),this['_services']=new Map();}async['init'](){const _0x9ff1f4=this['context'],_0x2427c6=_0x9ff1f4['plugins']['get'](_0x33588d);if(_0x9ff1f4['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x2427c6['adapter']={'addCommentThread':async({channelId:_0x3169cb,threadId:_0x280f7d,comments:_0x3dbd8b,resolvedAt:_0x169fb3,resolvedBy:_0x3724bd,context:_0x243f65,attributes:_0xe06c9f})=>{const _0x9f744=await this['_getService'](_0x3169cb)['addCommentThread']({'commentThreadId':_0x280f7d,'comments':_0x3dbd8b['map'](_0x1c3e01=>function(_0x24faa9,_0x1d6894,_0x533bec){return{'commentThreadId':_0x533bec,'commentId':_0x24faa9['commentId'],'userId':_0x24faa9['authorId'],'content':_0x24faa9['content'],'documentId':_0x1d6894,'createdAt':_0x24faa9['createdAt'],'attributes':_0x24faa9['attributes']||{}};}(_0x1c3e01,_0x3169cb,_0x280f7d)),'resolvedAt':_0x169fb3,'resolvedBy':_0x3724bd,'context':_0x243f65,'attributes':_0xe06c9f})['catch'](Z);return{'threadId':_0x9f744['commentThreadId'],'comments':_0x9f744['comments']};},'getCommentThread':async({channelId:_0x5df763,threadId:_0x3ea4f5})=>{const _0xa1316e=await this['_getService'](_0x5df763)['getCommentThread'](_0x3ea4f5)['catch'](X)['catch'](Z);return _0xa1316e?_0xa1316e['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0xa1316e]),{'threadId':_0xa1316e['commentThreadId'],'comments':_0xa1316e['comments']['map'](tt),'context':_0xa1316e['context'],'resolvedAt':_0xa1316e['resolvedAt'],'resolvedBy':_0xa1316e['resolvedBy'],'attributes':_0xa1316e['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x54c7d9,threadId:_0x521538,context:_0x894c19,unlinkedAt:_0x51447b,attributes:_0x53035b})=>this['_getService'](_0x54c7d9)['updateCommentThread']({'commentThreadId':_0x521538,'context':_0x894c19,'attributes':_0x53035b,'unlinkedAt':_0x51447b})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x341d79,threadId:_0x54cfa4})=>{const _0xa13a0e=await this['_getService'](_0x341d79)['resolveCommentThread'](_0x54cfa4)['catch'](X)['catch'](Z);return{'threadId':_0xa13a0e['commentThreadId'],'resolvedAt':_0xa13a0e['resolvedAt'],'resolvedBy':_0xa13a0e['resolvedBy']};},'reopenCommentThread':async({channelId:_0x5d7c97,threadId:_0x3936fb})=>this['_getService'](_0x5d7c97)['reopenCommentThread'](_0x3936fb)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x18fc10,threadId:_0x491325})=>this['_getService'](_0x18fc10)['removeCommentThread'](_0x491325)['catch'](X)['catch'](Z),'addComment':({channelId:_0x3c5ad0,threadId:_0x44237e,commentId:_0x413bdd,content:_0x222c31,attributes:_0x5a5614})=>this['_getService'](_0x3c5ad0)['addComment'](_0x44237e,_0x413bdd,_0x222c31,_0x5a5614)['catch'](Z),'updateComment':({channelId:_0xc9077f,threadId:_0x3ce6e7,commentId:_0x2e7e06,content:_0x41d9fc,attributes:_0x1510d7})=>this['_getService'](_0xc9077f)['updateComment'](_0x3ce6e7,_0x2e7e06,_0x41d9fc,_0x1510d7)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x118f7b,threadId:_0x5926e0,commentId:_0x11103d})=>this['_getService'](_0x118f7b)['removeComment'](_0x5926e0,_0x11103d)['catch'](X)['catch'](Z)},_0x9ff1f4 instanceof _0x35a8e1){const _0x11c02d=_0x9ff1f4['config']['get']('collaboration.channelId'),_0x11c64c=_0x9ff1f4['plugins']['get'](Sessions);await this['_setUpService'](_0x11c02d);const _0x1f60c9=await this['_services']['get'](_0x11c02d)['getConnectedSessions']();this['listenTo'](_0x11c64c,'sessionAdd:'+_0x11c02d,(_0x28e380,{session:_0x44df57})=>{_0x44df57['id']===_0x11c64c['mySessionId']&&(_0x28e380['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x44df57['permissions'],_0x11c02d));}),_0x11c64c['register'](_0x11c02d,_0x1f60c9);}}async['_setUpService'](_0x5af1a4){if(this['_services']['has'](_0x5af1a4))throw new _0x146074('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x5af1a4});const _0x141914=this['context']['plugins']['get'](_0x33588d),_0x2db820=new CloudServicesCommentsAdapter['CommentsService'](_0x5af1a4);this['_services']['set'](_0x5af1a4,_0x2db820),this['listenTo'](_0x2db820,'commentThreadAdded',(_0x434c00,_0x6d217c)=>{const {commentThreadId:_0x363ece,documentId:_0x21768c,context:_0x1d37ba,attributes:_0x2d47df,resolvedAt:_0x4e2b42,resolvedBy:_0x29f844,comments:_0x5645b0}=_0x6d217c;_0x141914['getCommentThread'](_0x363ece)||_0x141914['addCommentThread']({'threadId':_0x363ece,'channelId':_0x21768c,'comments':_0x5645b0?_0x5645b0['map'](tt):[],'context':_0x1d37ba,'attributes':_0x2d47df,'resolvedAt':_0x4e2b42,'resolvedBy':_0x29f844,'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadUpdated',(_0x1660e9,{commentThreadId:_0x333ba7,documentId:_0x4f2f8f,context:_0x185d42,unlinkedAt:_0x325769,attributes:_0x149abf})=>{_0x141914['getCommentThread'](_0x333ba7)&&_0x141914['updateCommentThread']({'threadId':_0x333ba7,'channelId':_0x4f2f8f,'context':_0x185d42,'unlinkedAt':_0x325769,'attributes':_0x149abf,'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadResolved',(_0x4e7b2d,{commentThreadId:_0x5ae350,resolvedBy:_0x138c16,resolvedAt:_0xd89d39})=>{const _0x3d934d=_0x141914['getCommentThread'](_0x5ae350);_0x3d934d&&_0x3d934d['resolve']({'resolvedBy':_0x138c16,'resolvedAt':_0xd89d39,'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadReopened',(_0x305b0e,{commentThreadId:_0x432c45})=>{const _0x2abe71=_0x141914['getCommentThread'](_0x432c45);_0x2abe71&&_0x2abe71['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentThreadRemoved',(_0x38de18,{commentThreadId:_0x15a6a4})=>{const _0x39080d=_0x141914['getCommentThread'](_0x15a6a4);_0x39080d&&_0x39080d['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentAdded',(_0x38b61b,_0x1a6fa9)=>{const _0x2bf146=_0x1a6fa9['commentThreadId'],_0x33fb6b=_0x141914['getCommentThread'](_0x2bf146);_0x33fb6b&&_0x33fb6b['addComment']({...tt(_0x1a6fa9),'isFromAdapter':!0x0});}),this['listenTo'](_0x2db820,'commentUpdated',(_0x847696,{commentThreadId:_0xee0d9f,commentId:_0x309b75,content:_0x4693c2,attributes:_0x132cf9})=>{const _0x38133e=_0x141914['getCommentThread'](_0xee0d9f);if(_0x38133e){const _0x4a322a=_0x38133e['getComment'](_0x309b75);_0x4a322a&&_0x4a322a['update']({'content':_0x4693c2,'attributes':_0x132cf9,'isFromAdapter':!0x0});}}),this['listenTo'](_0x2db820,'commentRemoved',(_0x1cb75f,{commentThreadId:_0x1cda52,commentId:_0x516aa5})=>{const _0x25e19e=_0x141914['getCommentThread'](_0x1cda52);if(_0x25e19e){const _0x5796df=_0x25e19e['getComment'](_0x516aa5);_0x5796df&&_0x5796df['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x5af1a4);}['destroy'](){if(this['context']instanceof _0x35a8e1){const _0x385029=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x385029);}}['_terminateService'](_0x4300d5){if(!this['_services']['has'](_0x4300d5))throw new _0x146074('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x4300d5});this['_getService'](_0x4300d5)['disconnect'](),this['_services']['delete'](_0x4300d5);}async['reconnect'](){for(const _0x2ab768 of this['_services']['keys']())await this['_connectService'](_0x2ab768);if(this['context']instanceof _0x35a8e1){const _0x489702=this['context']['config']['get']('collaboration.channelId'),_0xe2fca5=this['context']['plugins']['get'](Sessions);_0xe2fca5['unregister'](_0x489702);const _0x102518=await this['_services']['get'](_0x489702)['getConnectedSessions']();_0xe2fca5['register'](_0x489702,_0x102518);}}async['_connectService'](_0x1bb390){const {connection:_0x44b86d}=this['context']['plugins']['get'](WebSocketGateway),_0x20bd46=this['context']['plugins']['get'](_0x33588d),_0x377445=this['_services']['get'](_0x1bb390),_0x3da09d=await _0x377445['connect'](_0x44b86d);await this['_fetchMissingUsersForThreads'](_0x3da09d);const _0x597c3c=new Set(Array['from'](_0x20bd46['getCommentThreads']({'channelId':_0x1bb390}),_0x15f5f3=>_0x15f5f3['id']));for(const _0x251218 of _0x3da09d)_0x251218['deletedAt']||_0x597c3c['delete'](_0x251218['commentThreadId']);for(const _0x268898 of _0x597c3c)_0x20bd46['getCommentThread'](_0x268898)['remove']({'isFromAdapter':!0x0});for(const _0x5caf6a of _0x3da09d){let _0xd282cd=_0x20bd46['getCommentThread'](_0x5caf6a['commentThreadId']);const {commentThreadId:_0x48eebc,context:_0x1f01ce,attributes:_0x2eadf,resolvedBy:_0x427df7,resolvedAt:_0x3e77b,unlinkedAt:_0x2c62cc,deletedAt:_0x58ec63}=_0x5caf6a;if(_0x58ec63)continue;_0xd282cd||(_0xd282cd=_0x20bd46['addCommentThread']({'channelId':_0x1bb390,'threadId':_0x48eebc,'context':_0x1f01ce,'attributes':_0x2eadf||{},'resolvedBy':_0x427df7,'resolvedAt':_0x3e77b,'unlinkedAt':_0x2c62cc,'isFromAdapter':!0x0}));const _0x56e81d=new Set(Array['from'](_0xd282cd['comments'],_0x323703=>_0x323703['id']));for(const _0x6b030a of _0x5caf6a['comments'])_0x56e81d['delete'](_0x6b030a['commentId']);for(const _0x5ec673 of _0x56e81d)_0xd282cd['getComment'](_0x5ec673)['remove']({'isFromAdapter':!0x0});for(const _0x1eb0d7 of _0x5caf6a['comments']){const _0x4b5fa4=_0xd282cd['getComment'](_0x1eb0d7['commentId']);_0x4b5fa4?_0x4b5fa4['content']!==_0x1eb0d7['content']&&_0x4b5fa4['update']({'content':_0x1eb0d7['content'],'isFromAdapter':!0x0}):_0xd282cd['addComment'](Object['assign'](tt(_0x1eb0d7),{'isFromAdapter':!0x0}));}}}['_getService'](_0x52d549){if(!this['_services']['has'](_0x52d549))throw new _0x146074('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x52d549});return this['_services']['get'](_0x52d549);}async['_fetchMissingUsersForThreads'](_0xec45d4){const _0x48804c=this['context']['plugins']['get'](_0x3e9224),{connection:_0x272d74}=this['context']['plugins']['get'](WebSocketGateway),_0xa71af0=new Set();for(const {resolvedBy:_0x2c415a,comments:_0x322f0a}of _0xec45d4){_0x2c415a&&!_0x48804c['getUser'](_0x2c415a)&&_0xa71af0['add'](_0x2c415a);for(const {userId:_0x452302}of _0x322f0a)_0x48804c['getUser'](_0x452302)||_0xa71af0['add'](_0x452302);}if(0x0===_0xa71af0['size'])return;const _0xcb73c1=await _0x3383d3['getMany'](_0x272d74,Array['from'](_0xa71af0));for(const _0x81d4cf of _0xcb73c1)_0x48804c['getUser'](_0x81d4cf['id'])||_0x48804c['addUser'](_0x81d4cf);}}async function X(_0x273a20){if('404'!==_0x273a20['code'])throw _0x273a20;}function Z(_0x5e43cf){if((_0x4046b0=_0x5e43cf)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x4046b0['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x4046b0['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x4046b0;throw _0x5e43cf;}function tt(_0x2ebdd8){return{'threadId':_0x2ebdd8['commentThreadId'],'commentId':_0x2ebdd8['commentId'],'content':_0x2ebdd8['content'],'createdAt':_0x2ebdd8['createdAt'],'authorId':_0x2ebdd8['userId'],'attributes':_0x2ebdd8['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x25acfb{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
|
|
27
|
-
((()=>
|
|
28
|
-
((()=>_0x524689)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x547c0a,Sessions,_0x3e9224];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1498c2){super(_0x1498c2);const _0x2c40da=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x2c40da);}async['init'](){const _0x4e52f7=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x8e884b=_0x4e52f7['serverHistory'],_0x44523a=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x8e884b,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x4e52f7['sessionId']});const _0x3e2104=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x429b78,_0x48de88=await _0x548b3a['isBundleUploaded'](_0x44523a['connection'],_0x3e2104);this['editor']['plugins']['get'](_0x547c0a)['adapter']={'getRevision':async({revisionId:_0x189205})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x189205)),'updateRevisions':async _0x3f150b=>{await this['_waitForServiceReady']();const _0x21d2c8=this['_revisionTracker']['currentRevision'];if(_0x48de88&&0x1===_0x3f150b['length']&&_0x3f150b[0x0]['id']===_0x21d2c8['id'])return _0x3f150b;for(const _0x3e1cc7 of _0x3f150b)_0x3e1cc7['id']===_0x21d2c8['id']&&(_0x3e1cc7['isEmptyCurrent']=_0x3e1cc7['fromVersion']===_0x3e1cc7['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x3f150b,this['_lastRequestId'])['then'](_0x501b48=>(this['_lastRequestId']=_0x501b48,_0x3f150b))['catch'](_0x25ec79=>{if(it(_0x25ec79)||'400'===_0x25ec79['code']&&void 0x0!==_0x25ec79['data']['wrongRequestId']){for(const _0x5b3e96 of _0x3f150b){!this['_revisionTracker']['repository']['getRevision'](_0x5b3e96['id'])||this['_revisionTracker']['_bufferUpdate'](_0x5b3e96['id'],_0x5b3e96,!0x1);}if(it(_0x25ec79)&&'destroyed'!==this['editor']['state'])throw _0x25ec79;return _0x3f150b;}throw _0x25ec79;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x5280b1,{revisionsData:_0xc36ee9,requestId:_0x21e5ba})=>{Math['max'](..._0xc36ee9['map'](_0x2041bb=>_0x2041bb['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0xc36ee9,_0x21e5ba);}):this['_handleRevisionsUpdate'](_0xc36ee9,_0x21e5ba);});const {revisions:_0x3279dd,requestId:_0x4bff77}=await this['_revisionHistoryService']['connect'](_0x44523a['connection']);_0x44523a['addToReconnectionStack'](this),this['_lastRequestId']=_0x4bff77,await this['_fetchMissingUsers'](_0x3279dd);for(const _0x5944ce of _0x3279dd)this['_revisionTracker']['addRevisionData'](_0x5944ce);this['listenTo'](_0x4e52f7,'change:_isConnected',(_0x225a8f,_0x508899,_0x49afe6)=>{_0x49afe6&&(this['_oldOffset']=_0x4e52f7['_offset'],_0x225a8f['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x44523a,'state',_0x33a983=>_0x33a983===_0x4e17ce['CONNECTED']);}async['reconnect'](){const _0x175028=this['editor']['plugins']['get'](WebSocketGateway),_0x3c5ed1=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0xe99d09=async()=>{const _0xac0ef8=this['_revisionTracker']['currentRevision'],_0x544cde=_0xac0ef8['id'],_0x12c9f7=_0x544cde!==_0x3c5ed1['sessionId'];if(_0x12c9f7){const _0x4f989f=_0x3c5ed1['_offset']-this['_oldOffset'],_0xf04d77=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0xac0ef8['toVersion']+_0x4f989f!==_0xf04d77){const _0x4f1a1b=_0xac0ef8['fromVersion']+_0x4f989f,_0x55236c=this['editor']['plugins']['get'](_0x3e9224),_0x2883e6=this['_revisionTracker']['buildRevisionData']({'revision':_0xac0ef8,'from':_0x4f1a1b,'to':_0xf04d77});_0x2883e6['id']=_0xac0ef8['id'];const _0x2f8f42=_0x2883e6['authorsIds']['map'](_0x1a657a=>_0x55236c['getUser'](_0x1a657a));_0xac0ef8['_update']({..._0x2883e6,'authors':_0x2f8f42},!0x0),this['_revisionTracker']['_bufferUpdate'](_0xac0ef8['id'],_0x2883e6,!0x0);}this['_revisionTracker']['_startingVersion']=_0xf04d77,(_0xac0ef8['toVersion']===_0xac0ef8['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x544cde)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x544cde),this['_revisionTracker']['_createCurrentRevision'](_0xf04d77));}const {revisions:_0x2c894e,requestId:_0x30b08c}=await this['_revisionHistoryService']['reconnect'](_0x175028['connection'],this['_lastRequestId']);_0x12c9f7&&_0x2c894e['length']>0x0?_0x3c5ed1['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x2c894e),this['_handleRevisionsUpdate'](_0x2c894e,_0x30b08c),this['_revisionTracker']['sendBufferedUpdates']());};return _0x3c5ed1['_isConnected']?_0xe99d09():new Promise((_0x2c20d3,_0x303db4)=>{_0x3c5ed1['once']('change:_isConnected',()=>{_0xe99d09()['then'](_0x2c20d3)['catch'](_0x303db4);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x25f591=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x33ea32=>{_0x33ea32['off'](),_0x25f591();});});}['_getLatestVersionFromServerOperations'](){const _0xd15da2=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x5b74ac of _0xd15da2)if('marker'!==_0x5b74ac['type']||_0x5b74ac['affectsData'])return _0x5b74ac['baseVersion']+0x1;}['_getLatestVersion'](){const _0x2e788c=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x2d3d66=>{_0x2e788c['_isPendingUpdate']?_0x2e788c['once']('change:_isPendingUpdate',()=>{_0x2d3d66(this['_getLatestVersionFromServerOperations']());}):_0x2d3d66(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x1d4705,_0x54a052){const _0x286f8c=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x54a052;for(const _0x837444 of _0x1d4705){const _0x1ff06b=_0x286f8c['getRevision'](_0x837444['id']);if(_0x1ff06b){if((_0x837444['fromVersion']||_0x837444['toVersion'])&&(_0x837444['diffData']=null),_0x1ff06b===this['_revisionTracker']['currentRevision']){const _0x4e681c=Math['max'](_0x1ff06b['toVersion'],_0x837444['toVersion']),_0x36d31a=Math['max'](_0x1ff06b['fromVersion'],_0x837444['fromVersion']);let _0x392f40;_0x1ff06b['toVersion']===_0x837444['toVersion']&&_0x1ff06b['fromVersion']===_0x837444['fromVersion']?(_0x392f40=!0x0,this['_preventResendingRevisionData'](_0x837444)):_0x837444['toVersion']===_0x4e681c&&_0x837444['fromVersion']===_0x36d31a?_0x392f40=!0x1:(_0x1ff06b['toVersion']===_0x4e681c&&_0x1ff06b['fromVersion']===_0x36d31a||this['_fixRevision']({'revision':_0x1ff06b,'from':_0x36d31a,'to':_0x4e681c}),_0x392f40=!0x0),_0x392f40&&(delete _0x837444['fromVersion'],delete _0x837444['toVersion'],delete _0x837444['diffData'],delete _0x837444['createdAt'],delete _0x837444['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x837444),this['_preventResendingRevisionData'](_0x837444);}else this['_revisionTracker']['addRevisionData'](_0x837444);}const _0x1163a3=_0x286f8c['getRevisions']();_0x1163a3['reverse']();for(let _0x3199fd=0x0;_0x3199fd<_0x1163a3['length']-0x1;_0x3199fd++){const _0x403980=_0x1163a3[_0x3199fd],_0x1aa939=_0x1163a3[_0x3199fd+0x1];if(_0x403980['fromVersion']<_0x1aa939['toVersion']){const _0x2f6869=_0x1aa939['toVersion'],_0x501647=Math['max'](_0x2f6869,_0x403980['toVersion']);this['_fixRevision']({'revision':_0x403980,'from':_0x2f6869,'to':_0x501647});}}}['_fixRevision']({revision:_0x88df30,from:_0x59702a,to:_0x198ade}={}){const _0x3e324f=this['editor']['plugins']['get'](_0x3e9224),_0x12875c=this['_revisionTracker']['buildRevisionData']({'revision':_0x88df30,'from':_0x59702a,'to':_0x198ade});_0x12875c['authors']=_0x12875c['authorsIds']['map'](_0x5b1703=>_0x3e324f['getUser'](_0x5b1703)),_0x88df30['_update'](_0x12875c);}['_preventResendingRevisionData'](_0x46ee17){const _0x1c17d7={};_0x1c17d7['id']=_0x46ee17['id'];for(const _0x2aa9a3 of Object['keys'](_0x46ee17))'id'!==_0x2aa9a3&&(_0x1c17d7[_0x2aa9a3]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x1c17d7['id'],_0x1c17d7,!0x0);}async['_fetchMissingUsers'](_0x3ce50e){const _0x309b4a=this['editor']['plugins']['get'](_0x3e9224),{connection:_0x582a51}=this['editor']['plugins']['get'](WebSocketGateway),_0x525985=new Set();for(const _0x5d615e of _0x3ce50e){for(const _0x56ee97 of _0x5d615e['authorsIds'])_0x205b7f(_0x56ee97);_0x5d615e['creatorId']&&_0x205b7f(_0x5d615e['creatorId']);}if(0x0===_0x525985['size'])return;const _0x11f621=await _0x3383d3['getMany'](_0x582a51,Array['from'](_0x525985));for(const _0x2f2577 of _0x11f621)_0x309b4a['getUser'](_0x2f2577['id'])||_0x309b4a['addUser'](_0x2f2577);function _0x205b7f(_0x244151){_0x309b4a['getUser'](_0x244151)||_0x525985['add'](_0x244151);}}}function it(_0x4a2517){return _0x4a2517['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x4a2517['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x4a2517['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x25acfb{static get['requires'](){return[_0x547c0a,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x1aa21a{['_collapseAt'];constructor(_0x54e7c6,_0x5adb69=0x6){super(_0x54e7c6);const _0x35047e=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x5adb69,this['bind']('isHidden')['to'](this,'usersCount',_0x223333=>_0x223333<_0x5adb69),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x35047e['if']('isHidden','ck-presence-list__counter--hidden')],'role':'listitem'},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter']},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter__text']},'children':[{'text':_0x35047e['to']('usersCount',_0x47f631=>'+'+(_0x47f631-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x1aa21a{['items'];['keystrokes'];constructor(_0x203923){super(_0x203923);const _0x5493d8=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x39c4bd(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x5493d8['if']('hasPopup'),'aria-expanded':_0x5493d8['to']('isExpanded',_0x1fa5f2=>this['hasPopup']&&String(_0x1fa5f2)),'aria-label':_0x5493d8['to']('hasPopup',_0x1e018b=>K(_0x203923,_0x1e018b?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x5493d8['to']('hasPopup',_0xbcab11=>!!_0xbcab11&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x5493d8['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x5493d8['to'](_0x3283f0=>{const _0xbc2010=_0x3283f0,_0x36baec=document['querySelector']('.ck-presence-list__dropdown-list'),_0x324c36=document['querySelector']('.ck-balloon-panel_with-arrow');_0x36baec?.['contains'](_0xbc2010['relatedTarget'])||_0x324c36?.['contains'](_0xbc2010['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x1d7b57,_0x48c9c4,_0x56b0a6)=>{this['element']&&(_0x56b0a6?this['element']['setAttribute']('aria-expanded',String(this['isExpanded'])):this['element']['removeAttribute']('aria-expanded'));});}['focus'](){this['element']['focus']();}['render'](){super['render'](),this['keystrokes']['listenTo'](this['element']);}}class PresenceListView extends _0x1aa21a{['counterView'];['inlineListView'];constructor(_0x119a10,_0x357c94=0x6){super(_0x119a10);const _0x580eeb=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x357c94),this['inlineListView']=new PresenceInlineListView(_0x119a10),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x58e0a4 of this['inlineListView']['items'])_0x58e0a4['tooltipPosition']='s';this['inlineListView']['items']['first']&&(this['inlineListView']['items']['first']['tooltipPosition']='se');}),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list','ck-reset','ck-rounded-corners',_0x580eeb['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x1aa21a{['listWrapperView'];constructor(_0x1b1c54,_0x1cf9c7){super(_0x1b1c54);const _0x40e0b1=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x1b1c54,_0x1cf9c7),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x1b1c54,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x40e0b1['to'](_0x1fed7a=>{const _0xb1c164=_0x1fed7a,_0x1d9a3b=document['querySelector']('.ck-presence-list__list'),_0x242d2d=document['querySelector']('.ck-balloon-panel_with-arrow');_0x1d9a3b?.['contains'](_0xb1c164['relatedTarget'])||_0x242d2d?.['contains'](_0xb1c164['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x6e06a0{constructor(_0x4d6930,_0x7c573b){super(_0x4d6930);const _0xb84e7c=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x7c573b?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0xb84e7c['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0xb84e7c['to']('role'),'aria-label':_0xb84e7c['to']('ariaLabel'),'aria-labelledby':_0xb84e7c['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x248dd9['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x463a63=this['element'];_0x463a63&&(this['_isScrollable']=Math['max'](_0x463a63['scrollHeight'],_0x463a63['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x9a4d5e{['userView'];constructor(_0x186ed2,_0xa4b587,_0x33bb40){super(_0x186ed2);const _0x4b1359=this['bindTemplate'];this['userView']=new _0xb6d3d9(_0x186ed2,_0xa4b587);const _0x2930d8={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0xa4b587['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0xa4b587['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0xa4b587['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0xa4b587['color']['getColorVariable'](),'--ck-user-color-alpha':_0xa4b587['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x33bb40&&(_0x2930d8['tag']='button',_0x2930d8['on']={'click':_0x4b1359['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x2930d8);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x1aa21a{['userView'];['markerView'];constructor(_0x33c214,_0x147fdc,_0x2b391b){super(_0x33c214);const _0xd9eba5=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0xb6d3d9(_0x33c214,_0x147fdc),this['markerView']=new MarkerView(_0x33c214,_0x147fdc);const _0x44b6a1=new _0x52e315(_0x33c214);_0x44b6a1['template']['tag']='span',_0x44b6a1['text']=_0x147fdc['name'];const _0x1fa50a={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0xd9eba5['to']('isFocusable',_0x174e18=>!!_0x174e18&&0x0),'aria-labelledby':_0x44b6a1['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0xd9eba5['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0xd9eba5['to']('hasTooltip',_0x3a7fe7=>!_0x3a7fe7),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x44b6a1]};_0x2b391b&&(_0x1fa50a['tag']='button',_0x1fa50a['on']={'click':_0xd9eba5['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1fa50a);}}class MarkerView extends _0x1aa21a{constructor(_0x2e6d8a,_0x3c4aaa){super(_0x2e6d8a),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x3c4aaa['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x3c4aaa['color']['getColorVariable'](),'--ck-user-color-alpha':_0x3c4aaa['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x1b9cff{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3ea392){super(_0x3ea392),this['context']['config']['define']('presenceList',nt);const _0x54485f=_0x3ea392['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x54485f)throw new _0x146074('presencelist-collapseat-invalid-format',this);if(_0x54485f<0x1)throw new _0x146074('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x340917(),this['balloonPanelView']=new _0x30020e(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x4480b4 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x4480b4);this['listenTo'](this['_allConnectedUsers'],'add',(_0x24b0c8,_0x22457c)=>{this['_handleUserAdd'](_0x22457c);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x5d1eb8,_0x327861)=>{this['_handleUserRemove'](_0x327861);});}['_createView'](){const _0x3e0482=this['context'],_0x4fed84=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x35bfd3=this['balloonPanelView'];if(!_0xecfd2a(_0x3e0482['config']['get']('presenceList.container')))throw new _0x146074('presencelist-missing-container',this);return _0x4fed84['counterView']['bind']('usersCount')['to'](this),_0x4fed84['bind']('isCollapsed')['to'](this,'usersCount',_0x461710=>{const {collapseAt:_0x28785e}=_0x3e0482['config']['get']('presenceList'),_0x463b7e=_0x461710>=_0x28785e;if(_0x463b7e&&!_0x4fed84['inlineListView']['items']['find'](_0x7df740=>_0x7df740 instanceof PresenceCounterView)){const _0x3b0e79=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x3b0e79&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x4fed84['inlineListView']['items']['add'](_0x4fed84['counterView']);}return _0x463b7e||this['hideDropdown'](),_0x463b7e;}),_0x4fed84['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x32c292=>{const _0x48d4ca=_0x3e0482['config']['get']('presenceList'),_0x4e8120=new PresenceInlineListItemView(_0x3e0482['locale'],_0x32c292,!!_0x48d4ca['onClick']);return _0x4e8120['bind']('hasTooltip')['to'](_0x4fed84,'isCollapsed',_0x5037a0=>!_0x5037a0),_0x4e8120['bind']('isFocusable')['to'](_0x4fed84,'isCollapsed',_0x1d2afa=>!_0x1d2afa),_0x48d4ca['onClick']&&this['listenTo'](_0x4e8120,'execute',()=>{this['view']['isCollapsed']||_0x48d4ca['onClick'](_0x32c292,_0x4e8120['element']);}),_0x4e8120;}),this['listenTo'](_0x4fed84['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x4fed84['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x4fed84['inlineListView']['keystrokes']['set']('Enter',(_0x37bfaa,_0x5f2b91)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x5f2b91());}),_0x4fed84['render'](),_0x35bfd3['render'](),_0x1b7bff({'emitter':_0x4fed84,'activator':()=>_0x35bfd3['isVisible'],'contextElements':[_0x35bfd3['element'],_0x4fed84['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x3e0482['config']['get']('presenceList.container')['appendChild'](_0x4fed84['element']),this['_bodyCollection']=new _0x31aa2b(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x4fed84;}['_handleUserAdd'](_0x2dd407){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x2dd407['isMe'])return;const _0x1fe5ff=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x1fe5ff-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x3f0e28=_0x2dd407['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x2dd407,_0x3f0e28);}['_handleUserRemove'](_0xc4c792){this['usersCount']--;const {collapseAt:_0x32f19e}=this['context']['config']['get']('presenceList'),_0x49458a=this['usersCount']>=_0x32f19e;if(this['currentDisplayedUsers']['get'](_0xc4c792['id']))this['currentDisplayedUsers']['remove'](_0xc4c792['id']);else{if(_0x49458a&&this['currentDisplayedUsers']['length']+0x1===_0x32f19e-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x49458a?0x1:0x0)<this['usersCount']){for(const _0x5c97cf of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x5c97cf['id'])&&(this['currentDisplayedUsers']['add'](_0x5c97cf,Math['min'](this['currentDisplayedUsers']['length']-(_0x49458a?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x49458a?0x1:0x0)===_0x32f19e-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x28e09f=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x28e09f['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x5a310e}=this['presenceDropdownView'];_0x5a310e['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x143c5e=>{if(!_0x28e09f['displayMe']&&_0x143c5e['isMe'])return null;const _0xf4fb8a=new PresenceDropdownListItemView(this['context']['locale'],_0x143c5e,!!_0x28e09f['onClick']);return _0x28e09f['onClick']&&this['listenTo'](_0xf4fb8a,'execute',()=>{_0x28e09f['onClick'](_0x143c5e,_0xf4fb8a['element']);}),_0xf4fb8a;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x5a310e['focus'](),_0x5a310e['checkIfScrollable']();const _0x43d4fe=(_0x543648,_0x353d9d)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x353d9d();};_0x5a310e['keystrokes']['set']('Esc',_0x43d4fe),_0x5a310e['keystrokes']['set']('Shift+Tab',_0x43d4fe),_0x5a310e['keystrokes']['set']('Tab',(_0x1b8102,_0x1df1f6)=>{!function(_0x54c3ff){const _0x3d9e6e=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x365741=>_0x365741+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x28480a=[...document['body']['querySelectorAll'](_0x3d9e6e)]['filter'](_0x111d4a=>_0x111d4a===document['activeElement']||_0x111d4a['offsetWidth']+_0x111d4a['offsetHeight']>0x0)['sort']((_0x5b5010,_0x2a2fe8)=>(_0x5b5010['tabIndex']||0x0)-(_0x2a2fe8['tabIndex']||0x0)),_0x7130b=_0x28480a['indexOf'](_0x54c3ff),_0x38e5ee=_0x28480a[(_0x7130b+0x1)%_0x28480a['length']];_0x38e5ee&&_0x38e5ee['focus']();}(this['view']['element']),this['hideDropdown'](),_0x1df1f6();}),_0x5a310e['focusTracker']['add'](this['view']['element']),_0x5a310e['focusTracker']['on']('change:isFocused',(_0x20bd05,_0x25549a,_0x11e0f5)=>{_0x11e0f5||this['hideDropdown']();});}['hideDropdown'](){this['presenceDropdownView']&&(this['view']['inlineListView']['isExpanded']=!0x1,this['balloonPanelView']['unpin'](),this['balloonPanelView']['content']['remove'](this['presenceDropdownView']),this['presenceDropdownView']['destroy'](),this['presenceDropdownView']=void 0x0);}['destroy'](){super['destroy'](),this['view']&&this['view']['isRendered']&&this['view']['destroy'](),this['_bodyCollection']&&(this['_bodyCollection']['detachFromDom'](),this['_bodyCollection']['destroy'](),this['_bodyCollection']=null);}}class PresenceList extends _0x1b9cff{static get['requires'](){return[Sessions,PresenceListUI];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}export{CloudServicesCommentsAdapter,CloudServicesRevisionHistoryAdapter,CloudServicesTrackChangesAdapter,PresenceList,PresenceListUI,RealTimeCollaborationClient,RealTimeCollaborativeComments,RealTimeCollaborativeEditing,RealTimeCollaborativeRevisionHistory,RealTimeCollaborativeTrackChanges,Sessions,WebSocketGateway};
|
|
23
|
+
import{ContextPlugin as _0x301857,Plugin as _0x525919,PendingActions as _0x2e9287,Context as _0x8106a0}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x15074d,CKEditorError as _0x5ca446,Collection as _0x4be9e8,global as _0x410313,version as _0x53ac72,uid as _0x53ed0a,KeystrokeHandler as _0x3192ca}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x5338a0,View as _0x5f3d1a,ListView as _0x2aa0a6,ListItemView as _0xf6d61d,LabelView as _0x3a59ab,BalloonPanelView as _0x31f4d8,clickOutsideHandler as _0x507db1,BodyCollection as _0x6aff50}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x1edf96,History as _0x3cef10,NoOperation as _0x4f98a8,InsertOperation as _0x59cbf4,MarkerOperation as _0x2eb419,RootAttributeOperation as _0x3bb171,transformOperationSets as _0x337fb0,OperationFactory as _0x4fb23e}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x3dbb6d}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x2c7745,WEB_SOCKET_GATEWAY_STATES as _0xf3d8b5,CollaborativeEditingService as _0x4052b4,User as _0x36e987,CommentsService as _0x3f36bf,TrackChangesService as _0x5d9822,RevisionHistoryService as _0x3af4a6,EditorService as _0x39cbd3}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x5783db,UserView as _0x5a2b39}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0xc14c8}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x438d69,TrackChanges as _0x5a552b}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x27c5eb,Comments as _0x6f1f0e,CommentsEditing as _0x3a954d}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x134b36}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x15a965}from'es-toolkit/compat';class WebSocketGateway extends _0x301857{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
|
|
24
|
+
((()=>_0x2c7745)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x3dbb6d,_0x5338a0];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x2532a7){super(_0x2532a7),this['set']('state',_0xf3d8b5['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x15074d())();}['init'](){const _0x2bd552=this['context'],_0x58b3f1=_0x2bd552['plugins']['get'](_0x3dbb6d),_0x30061c=_0x2bd552['plugins']['get'](_0x5338a0);if(!_0x58b3f1['token'])throw new _0x5ca446('websocketgateway-missing-token',this);if(!_0x58b3f1['webSocketUrl'])throw new _0x5ca446('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'](_0x58b3f1['token'],_0x58b3f1['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x48dea2=>{if(this['connection']=_0x48dea2,this['bind']('state')['to'](_0x48dea2,'state',this,'_isBrowserOffline',(_0x4ab84d,_0x475a61)=>('connected'!==_0x4ab84d&&(this['_shouldPluginsReconnect']=!0x0),_0x475a61||_0x4ab84d!==_0xf3d8b5['CONNECTED']?_0xf3d8b5['DISCONNECTED']:this['state']==_0xf3d8b5['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0xf3d8b5['CONNECTING']):_0xf3d8b5['CONNECTED'])),this['connection']['on']('error',(_0x5e2908,_0x1d15e9)=>{if('limitExceeded'!==_0x1d15e9['code'])throw console['error'](_0x1d15e9),new _0x5ca446('cloudservices-init',null,{'originalError':_0x1d15e9});_0x30061c['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'});}),!_0x48dea2['me'])return new Promise(_0x5075e3=>_0x48dea2['on']('change:me',_0x5075e3));})['catch'](_0x1a07d7=>{throw console['error'](_0x1a07d7),new _0x5ca446('cloudservices-init',null,{'originalError':_0x1a07d7});});}['addToReconnectionStack'](_0x4b4da9){if('function'!=typeof _0x4b4da9['reconnect'])throw new _0x5ca446('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x4b4da9))throw new _0x5ca446('websocketgateway-plugin-already-registered',this,{'name':_0x4b4da9['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x4b4da9);}['removeFromReconnectionStack'](_0x441200){this['_reconnectionStack']['delete'](_0x441200);}['isInReconnectionStack'](_0x1ef9e4){return this['_reconnectionStack']['has'](_0x1ef9e4);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x5ac5e6=>_0x5ac5e6['reconnect']())))['then'](()=>this['state']=_0xf3d8b5['CONNECTED'])['catch'](_0x5bd149=>{throw console['error'](_0x5bd149),new _0x5ca446('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0xf3d8b5['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x301857{['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,_0x5783db];}constructor(_0x232993){super(_0x232993),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x4be9e8(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x5783db);}['init'](){const _0x17d243=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x17d243,'change:state',(_0x2928d1,_0x279e3a,_0x18646c)=>{if('connected'!==_0x18646c)this['channelSessions']['forEach'](_0x52a0f3=>_0x52a0f3['clear']()),this['channelConnectedUsers']['forEach'](_0x309a4a=>_0x309a4a['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0xac541b,_0x305eec]of this['_registeredSessions'])for(const _0x536169 of _0x305eec)this['_handleSessionAdd'](_0xac541b,_0x536169);}}),this['_createUser'](_0x17d243['connection']['me'],!0x0);}['register'](_0x1fd193,_0xb0e96e){if(this['_registeredSessions']['has'](_0x1fd193))throw new _0x5ca446('sessions-register-already-registered',null,{'channelId':_0x1fd193});this['_registeredSessions']['set'](_0x1fd193,_0xb0e96e),this['channelSessions']['set'](_0x1fd193,new _0x4be9e8()),this['channelConnectedUsers']['set'](_0x1fd193,new _0x4be9e8()),this['listenTo'](_0xb0e96e,'add',(_0x54ab9,_0x2d49bd)=>this['_handleSessionAdd'](_0x1fd193,_0x2d49bd)),this['listenTo'](_0xb0e96e,'remove',(_0x4f850d,_0x13a637)=>this['_handleSessionRemove'](_0x1fd193,_0x13a637));for(const _0x842870 of _0xb0e96e)this['_handleSessionAdd'](_0x1fd193,_0x842870);}['unregister'](_0x30e284){if(!this['_registeredSessions']['has'](_0x30e284))throw new _0x5ca446('sessions-unregister-not-exist',null,{'channelId':_0x30e284});const _0x555223=this['_registeredSessions']['get'](_0x30e284);this['stopListening'](_0x555223);for(const _0x405db5 of _0x555223)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x30e284,_0x405db5);this['_registeredSessions']['delete'](_0x30e284),this['channelSessions']['delete'](_0x30e284),this['channelConnectedUsers']['delete'](_0x30e284);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x32c8b6){for(const _0x35b04f of this['channelSessions']['values']())for(const _0xfd7923 of _0x35b04f)if(_0xfd7923['id']===_0x32c8b6)return _0xfd7923['user'];}['getUserSessions'](_0x599287,_0x50f7d2){const _0xadb424=_0x50f7d2?[this['channelSessions']['get'](_0x50f7d2)]:this['channelSessions']['values'](),_0x509b30=new Set();for(const _0x9e106d of _0xadb424)for(const _0x3823fe of _0x9e106d)_0x3823fe['user']['id']===_0x599287['id']&&_0x509b30['add'](_0x3823fe['id']);return _0x509b30;}['getUserRole'](_0x161153){for(const _0x1d796a of this['channelSessions']['values']())for(const _0x3b15a7 of _0x1d796a)if(_0x3b15a7['user']===_0x161153)return _0x3b15a7['role'];}['_handleSessionAdd'](_0x29b31a,_0x2220d2){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0xba6404=_0x2220d2['user'],_0x4cf4b0=this['_users']['getUser'](_0xba6404['id'])||this['_createUser'](_0xba6404),_0x64e116=Object['assign']({},_0x2220d2,{'user':_0x4cf4b0});if(this['channelSessions']['get'](_0x29b31a)['add'](_0x64e116),!_0xba6404['hiddenInPresenceList']){const _0x501a96=this['channelConnectedUsers']['get'](_0x29b31a);_0x501a96['has'](_0x4cf4b0['id'])||_0x501a96['add'](_0x4cf4b0),this['allConnectedUsers']['has'](_0x4cf4b0['id'])||_0xba6404['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x4cf4b0,_0x4cf4b0['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x29b31a,{'channelId':_0x29b31a,'session':_0x64e116});}['_handleSessionRemove'](_0x663099,_0x479344){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x50a9de=this['channelConnectedUsers']['get'](_0x663099),_0x2bdd6f=_0x479344['user'];_0x2bdd6f['id']&&(this['channelSessions']['get'](_0x663099)['remove'](_0x479344['id']),_0x50a9de['has'](_0x2bdd6f['id'])&&!this['getUserSessions'](_0x2bdd6f,_0x663099)['size']&&_0x50a9de['remove'](_0x2bdd6f['id']),this['allConnectedUsers']['get'](_0x2bdd6f['id'])&&!this['getUserSessions'](_0x2bdd6f)['size']&&this['allConnectedUsers']['remove'](_0x2bdd6f['id']));}['_createUser'](_0xc5f41f,_0x1ba7f0){const _0x53ead1=this['_users']['addUser'](_0xc5f41f);return _0x1ba7f0&&this['_users']['defineMe'](_0xc5f41f['id']),_0x53ead1['orderNumber']=this['_uniqueUsersCount']++,_0x53ead1;}}class UserMarkers extends _0x525919{['_domEmitter']=new(_0x15074d())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x39bf3c=this['editor'],_0x21f59c=_0x39bf3c['plugins']['get'](Sessions);_0x39bf3c['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x187461,{writer:_0x490e1c})=>function(_0x357a71,_0x11611e,_0xa26fe4,_0xccabf3){const _0x3cac5d=_0x357a71['markerName']['split'](':')[0x2],_0x4eb7fb=_0xa26fe4['getUserBySessionId'](_0x3cac5d);if(!_0x4eb7fb||_0x3cac5d===_0xa26fe4['mySessionId'])return;if(!_0xccabf3['model']['schema']['checkChild'](_0x357a71['markerRange']['start'],'$text'))return;const _0xdad9ff={'class':'ck-user__marker\x20'+_0x4eb7fb['color']['getMarkerClass'](),'style':Y(_0x4eb7fb),'data-name':_0x4eb7fb['name'],'data-session-id':_0x3cac5d},_0x10a76b=_0xccabf3['model']['markers']['get'](_0x357a71['markerName']),_0x183560=_0x10a76b['getStart'](),_0xd7a97=_0x183560['nodeAfter'],_0x55b70e=_0xccabf3['model']['schema'];if(_0xd7a97&&_0x55b70e['isObject'](_0xd7a97)&&_0x55b70e['isInline'](_0xd7a97)&&!_0xccabf3['model']['markers']['get']('user:range:'+_0x3cac5d)['getRange']()['isCollapsed'])return;const _0x1205a3=_0x183560['parent'];return _0xccabf3['model']['schema']['isLimit'](_0x1205a3)&&!_0xccabf3['model']['hasContent'](_0x1205a3)&&(_0xdad9ff['contenteditable']=!0x1),function(_0x1a2405,_0x56acff,_0x893ebb){const _0x2ad96b=_0x1a2405['createUIElement']('span',_0x56acff);return _0x1a2405['setCustomProperty']('userPositionMarker',!0x0,_0x2ad96b),_0x2ad96b['render']=function(_0x11039e){const _0x257c5b=this['toDomElement'](_0x11039e),_0x295671=document['createElement']('span');return _0x295671['classList']['add']('ck-user__marker-tooltip'),_0x295671['setAttribute']('contenteditable','false'),_0x295671['setAttribute']('spellcheck','false'),_0x295671['textContent']=_0x893ebb['name'],_0x257c5b['innerHTML']='<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x295671['outerHTML']+'',_0x257c5b['addEventListener']('mouseenter',()=>{_0x257c5b['classList']['add']('ck-user__marker_hovered');}),_0x257c5b['addEventListener']('mouseleave',()=>{_0x257c5b['classList']['remove']('ck-user__marker_hovered');}),_0x257c5b;},_0x2ad96b['isSimilar']=function(_0x498578){return!(!this['getCustomProperty']('userPositionMarker')||!_0x498578['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x498578['getAttribute']('data-session-id'));},_0x2ad96b;}(_0x11611e,_0xdad9ff,_0x4eb7fb);}(_0x187461,_0x490e1c,_0x21f59c,_0x39bf3c)}),_0x39bf3c['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x425a64=>function(_0x3b7807,_0x1e84ec){const _0x328756=_0x3b7807['markerName']['split'](':')[0x2];if(_0x328756===_0x1e84ec['mySessionId'])return null;const _0x1402bd=_0x1e84ec['getUserBySessionId'](_0x328756);if(!_0x1402bd)return{'id':_0x328756,'classes':[]};return{'id':_0x328756,'classes':['ck-user__selection',_0x1402bd['color']['getSelectionClass']()],'attributes':{'style':Y(_0x1402bd),'data-session-id':_0x328756},'priority':0x7d0+_0x1402bd['orderNumber']};}(_0x425a64,_0x21f59c)}),function(_0x2fd968){const _0x1a02ee=_0x2fd968['model'],_0x44cc20=new Map(),_0x591c14=_0x2fd968['plugins']['get'](Sessions);_0x1a02ee['markers']['on']('update:user:range',(_0xf450ad,_0x409320,_0x239dd9,_0x48ccfd)=>{if(!_0x48ccfd&&_0x44cc20['get'](_0x409320['name']))return _0x44cc20['get'](_0x409320['name'])['detach'](),void _0x44cc20['delete'](_0x409320['name']);const _0x21315e=_0x409320['name']['split'](':')[0x2];if(_0x21315e===_0x591c14['mySessionId'])return;const _0x2659f9='user:position:'+_0x21315e;_0x1a02ee['markers']['has'](_0x2659f9)&&_0x2fd968['editing']['reconvertMarker'](_0x2659f9),_0x409320['on']('change:range',(_0x144aad,_0x5c2211,_0x3b2ce6)=>{if('$graveyard'!=_0x5c2211['root']['rootName']&&'$graveyard'==_0x409320['getRange']()['root']['rootName']&&!_0x44cc20['has'](_0x409320['name'])){const _0x26135b=_0x1a02ee['schema']['getNearestSelectionRange'](_0x3b2ce6['deletionPosition']);if(_0x26135b){const _0xe78982=_0x1edf96['fromRange'](_0x26135b);_0x44cc20['set'](_0x409320['name'],_0xe78982),_0xe78982['on']('change:range',(_0x3feeda,_0x18fc2f,_0x3f8292)=>{if('$graveyard'==_0xe78982['root']['rootName']){const _0x383041=_0x1a02ee['schema']['getNearestSelectionRange'](_0x3f8292['deletionPosition']);_0x383041?(_0xe78982['start']=_0x383041['start'],_0xe78982['end']=_0x383041['end']):(_0x44cc20['delete'](_0x409320['name']),_0xe78982['detach']());}});}}});}),_0x1a02ee['document']['on']('change',()=>{_0x44cc20['size']>0x0&&_0x1a02ee['enqueueChange']({'isUndoable':!0x1},_0x3e6a33=>{for(const [_0x229978,_0x213213]of _0x44cc20)'$graveyard'==_0x1a02ee['markers']['get'](_0x229978)['getRange']()['root']['rootName']&&(z(_0x229978['split'](':')[0x2],_0x213213['toRange'](),_0x1a02ee,_0x3e6a33),_0x213213['detach']());_0x44cc20['clear']();});});}(_0x39bf3c),this['_domEmitter']['listenTo'](_0x410313['document'],'keydown',(_0x93f7d7,{key:_0x3ca933})=>{'Escape'===_0x3ca933&&function(_0x1b1a26){_0x1b1a26['editing']['view']['change'](_0x449b2d=>{for(const _0x51d0a5 of _0x1b1a26['model']['markers']){if(!_0x51d0a5['name']['startsWith']('user:position'))continue;const _0x5a5cf4=_0x1b1a26['editing']['mapper']['markerNameToElements'](_0x51d0a5['name']);if(_0x5a5cf4){for(const _0x161c0f of _0x5a5cf4)_0x449b2d['removeClass']('ck-user__marker_hovered',_0x161c0f);}}});}(_0x39bf3c);},{'useCapture':!0x0});}['afterInit'](){const _0x32dd3e=this['editor'],_0x109469=_0x32dd3e['commands']['get']('undo');_0x109469&&_0x32dd3e['model']['on']('applyOperation',(_0x2d91f1,_0x1225fb)=>{const _0x32b869=_0x1225fb[0x0];if(!_0x32b869['isDocumentOperation'])return;if('marker'!=_0x32b869['type']||!_0x32b869['name']['startsWith']('user:'))return;const _0x104b5c=_0x32b869['batch'];_0x109469['_createdBatches']['has'](_0x104b5c)&&(_0x32b869['newRange']=_0x32b869['oldRange']?_0x32dd3e['model']['createRange'](_0x32b869['oldRange']['start'],_0x32b869['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x2908c9=this['editor'],_0x2d2777=_0x2908c9['model']['document'],_0x53f2db=_0x2908c9['plugins']['get'](Sessions);_0x2908c9['model']['enqueueChange']({'isUndoable':!0x1},_0x4a9ca3=>{const _0x51e5c6='user:range:'+_0x53f2db['mySessionId'],_0x46b3a3='user:position:'+_0x53f2db['mySessionId'],_0x2b2271=_0x2908c9['model']['markers']['has'](_0x51e5c6);_0x2908c9['editing']['view']['hasDomSelection']?z(_0x53f2db['mySessionId'],_0x2d2777['selection']['getFirstRange'](),_0x2908c9['model'],_0x4a9ca3):_0x2b2271&&(_0x4a9ca3['removeMarker'](_0x51e5c6),_0x4a9ca3['removeMarker'](_0x46b3a3));});}}function z(_0x195dcb,_0x4a056c,_0x204417,_0x2d895e){const _0xcc794='user:range:'+_0x195dcb,_0x37a262='user:position:'+_0x195dcb,_0x5de51b=_0x4a056c['getContainedElement']();let _0x282edd=_0x4a056c['start'];if(_0x5de51b&&_0x5de51b['is']('element','tableCell')){const _0x33a412=function(_0x1dbdd2,_0x153cc8){for(const _0x542cad of _0x1dbdd2['getPositions']())if(_0x153cc8['schema']['checkChild'](_0x542cad,'$text'))return _0x542cad;}(_0x4a056c,_0x204417);_0x33a412&&(_0x282edd=_0x33a412,_0x4a056c=_0x2d895e['createRange'](_0x282edd));}const _0x3f5bd8=_0x2d895e['createRange'](_0x282edd);_0x204417['markers']['has'](_0xcc794)?(_0x2d895e['updateMarker'](_0xcc794,{'range':_0x4a056c}),_0x2d895e['updateMarker'](_0x37a262,{'range':_0x3f5bd8})):(_0x2d895e['addMarker'](_0xcc794,{'range':_0x4a056c,'usingOperation':!0x0}),_0x2d895e['addMarker'](_0x37a262,{'range':_0x3f5bd8,'usingOperation':!0x0}));}function Y(_0x15bf11){return'--ck-user-color:'+_0x15bf11['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x15bf11['color']['getColorAlphaVariable']()+';';}function K(_0x3a7227,_0x2c5488,_0x18e41d){const _0x2b58c3=_0x3a7227['t'],t=_0x3a7227['t'];switch(_0x2c5488){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 _0x2b58c3({'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'},_0x18e41d);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x525919{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
|
|
25
|
+
((()=>_0x4052b4)());['_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,_0x2e9287,_0x5783db,_0x5338a0];}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 _0x440945=this['serverHistory']['getOperations']();for(let _0x1f3fca=_0x440945['length']-0x1;_0x1f3fca>=0x0;_0x1f3fca--){const _0x2612cf=_0x440945[_0x1f3fca];if(!this['_disconnectionOperations']['has'](_0x2612cf))return _0x2612cf['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x2646a7){if(super(_0x2646a7),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x3cef10(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x5ca446('collaboration-missing-channelid',this);const _0x49c118=_0x2646a7['config']['get']('cloudServices.bundleVersion')||_0x53ac72;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x49c118,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0xc14c8(),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 _0x3adc82=this['editor'],_0x42d936=_0x3adc82['plugins']['get'](_0x5783db),_0x35943a=_0x3adc82['plugins']['get'](WebSocketGateway);this['listenTo'](_0x42d936,'getOperationAuthor',(_0x185bc0,_0x20ea7a)=>{const _0x2fe27f=_0x20ea7a[0x0];_0x2fe27f['_authorId']&&(_0x185bc0['return']=_0x42d936['getUser'](_0x2fe27f['_authorId']),_0x185bc0['stop']()),null===_0x2fe27f['_authorId']&&(_0x185bc0['return']=null,_0x185bc0['stop']());},{'priority':'high'}),this['listenTo'](_0x3adc82['model']['document']['selection'],'change:range',(_0x5c9735,_0x338d4f)=>{_0x338d4f['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x3adc82['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x3adc82['model']['on']('applyOperation',(_0x359ef8,_0x201289)=>{const _0x576c1f=_0x201289[0x0];_0x576c1f['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x576c1f),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x35943a,'state',this,'_hasSynchronizationProblem',(_0x145848,_0x3600e7)=>'connected'===_0x145848&&!_0x3600e7),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x3adc82['disableReadOnlyMode']('rtc-offline'):_0x3adc82['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x3adc82['disableReadOnlyMode']('rtc-offline'):_0x3adc82['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x574b74=this['editor']['plugins']['get'](Sessions),_0x33c1b6=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x574b74['unregister'](this['_channelId']);const _0x31dfdf=await this['_service']['reconnect'](_0x33c1b6['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x31dfdf)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x4b5891=await this['_service']['getConnectedSessions']();_0x574b74['register'](this['_channelId'],_0x4b5891),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x393f80){if(function(_0x24d467){return'404'===_0x24d467['code'];}(_0x393f80)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0xfbe0fa){return'409'===_0xfbe0fa['code'];}(_0x393f80)){const _0x2079e1=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'](_0x2079e1);}else{if(!(_0x393f80 instanceof ReconnectionError))throw _0x393f80;this['_handleReconnectionError']();}}}}['destroy'](){const _0x3a7427=this['editor']['plugins']['get'](WebSocketGateway),_0x3ec89a=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x3ec89a['channelSessions']['has'](this['_channelId'])&&_0x3ec89a['unregister'](this['_channelId']),_0x3a7427['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x3c2fbf){if(this['sessionId']!==_0x3c2fbf['sessionId']&&this['_lastSyncedOperationId']!==_0x3c2fbf['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x3c2fbf['sessionId'],this['_handleServerResponse']([],{..._0x3c2fbf,'wereChangesApplied':!0x1,'data':_0x3c2fbf['data']},'reconnect');}async['_connectService'](_0x3b2a09,_0x46d740=!0x1){const {connection:_0x1a24df}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x1a24df,this['_channelId'])['then'](_0x17e0a7=>this['_initSessionsHandling'](_0x17e0a7))['catch'](_0x43f9c9=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x43f9c9);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x7ec2ef,_0x4ff8d5)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x4ff8d5);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x267174=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x3b2a09);this['_isPendingUpdate']=!0x0;const _0x204159=await this['_service']['connect'](_0x1a24df,this['_compressOperations'](_0x3b2a09),_0x267174);if(this['sessionId']=_0x204159['sessionId'],_0x46d740){if(!_0x204159['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x204159['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x3b2a09,_0x204159,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x204159,_0x3b2a09);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x9ce6b5=this['editor']['plugins']['get'](Sessions),_0x3aed22=this['editor']['plugins']['get'](UserMarkers),_0x11ccb8=_0x9ce6b5['channelSessions']['get'](this['_channelId']);_0x11ccb8&&_0x11ccb8['length']>0x1?_0x3aed22['createUserMarkerOperations']():this['listenTo'](_0x9ce6b5,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x9ce6b5['channelSessions']['get'](this['_channelId'])['length']&&_0x3aed22['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x5e60b6,_0x1b44b3,_0x831e13,_0x5015d9){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x1b44b3){const _0x4d3c1b=this['_decompressOperations'](_0x831e13,_0x5015d9);await this['_fetchMissingUsers'](_0x4d3c1b),this['_handleExternalOperations'](_0x4d3c1b,_0x1b44b3,_0x831e13['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0xe23bc}=this['editor'];let _0xb7f70b;try{_0xb7f70b=await this['_service']['getDocumentDetails']();}catch{const _0x52c514=K(_0xe23bc,'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'](_0x52c514);}const _0x1d7c31=_0xb7f70b['currentDocumentSession']||_0xb7f70b['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x1d7c31['lastOperationId']){const _0x25265e=K(_0xe23bc,'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'](_0x25265e);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x33e59b){const _0x5d5b68=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x5d5b68,'sessionAdd:'+this['_channelId'],(_0x5ac746,{session:_0x4677e6})=>{if(_0x4677e6['id']===_0x5d5b68['mySessionId']){_0x5ac746['off']();const _0x432bb8=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x352df3=_0x4677e6['permissions'];_0x432bb8&&_0x432bb8['isEnabled']&&(_0x352df3=_0x352df3['filter'](_0x2424d9=>'document:write'!==_0x2424d9)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x352df3,this['_channelId']);}}),_0x5d5b68['register'](this['_channelId'],_0x33e59b);}['_initThrowingOnDataSet'](){const _0x37c760=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x46751f)=>{if(!_0x46751f[_0x46751f['length']-0x1]['suppressErrorInCollaboration'])throw new _0x5ca446('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x37c760['apply'](this['editor']['data'],_0x46751f);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x3a9c7b,[_0x19755b])=>{if(this['_document']['version'])throw new _0x5ca446('realtimecollaborationclient-init-document-already-initialized',this);_0x3a9c7b['stop'](),this['_setPendingAction']();const _0x124de6=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x10c181])=>!_0x10c181['lazyLoad'])['map'](([_0x2202c6,_0x2b08f2])=>[_0x2202c6,_0x2b08f2['modelAttributes']||{}])),_0x260f23=this['_getOperationsFromInitData'](_0x19755b,_0x124de6);0x0==_0x260f23['length']&&_0x260f23['push'](new _0x4f98a8(0x0)),_0x3a9c7b['return']=this['_connectService'](_0x260f23)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0xbcf569=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0xbcf569))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x8b4d4c,[_0x52b2ba,_0x9ca499])=>{_0x8b4d4c['stop']();const _0x4dc381=this['editor']['model']['document']['getRoot'](_0x52b2ba);if(!this['_knownRootNames']['has'](_0x52b2ba)){const _0x15ab83=_0x9ca499&&_0x9ca499['data']?_0x9ca499['data']:'',_0xf9785a=_0x9ca499&&_0x9ca499['attributes']?_0x9ca499['attributes']:{};await this['_loadRoot'](_0x52b2ba,_0x15ab83,_0xf9785a);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x4dc381['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x4dc381);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x45ce55){const _0x4168fc=this['editor']['plugins']['get'](_0x5783db),{connection:_0x256f2a}=this['editor']['plugins']['get'](WebSocketGateway),_0x5d4ba9=new Set();for(const _0x2304c7 of _0x45ce55){const _0x3f8608=_0x2304c7['_authorId'];_0x3f8608&&!_0x4168fc['getUser'](_0x3f8608)&&_0x5d4ba9['add'](_0x3f8608);}if(0x0===_0x5d4ba9['size'])return;const _0x449a64=await _0x36e987['getMany'](_0x256f2a,Array['from'](_0x5d4ba9));for(const _0x2b7493 of _0x449a64)_0x4168fc['getUser'](_0x2b7493['id'])||_0x4168fc['addUser'](_0x2b7493);}['_getOperationsFromInitData'](_0x3d2dc5,_0x5a9cac={}){const _0x159957=this['editor']['model'],_0x186518=[];let _0x52d1cf=0x0;const _0x1aa9b1='string'==typeof _0x3d2dc5?{'main':_0x3d2dc5}:_0x3d2dc5;for(const _0x2b6275 of Object['keys'](_0x1aa9b1)){if(!this['_document']['roots']['has'](_0x2b6275))throw new _0x5ca446('realtimecollaborationclient-init-non-existent-root',this);const _0x580f7a=this['_document']['getRoot'](_0x2b6275),_0xfd18=this['editor']['data']['parse'](_0x1aa9b1[_0x2b6275],_0x580f7a),_0x441755=new _0x59cbf4(_0x159957['createPositionAt'](_0x580f7a,0x0),_0xfd18,_0x52d1cf++);_0x186518['push'](_0x441755);for(const [_0x29cb48,_0xed0d24]of _0xfd18['markers']){const _0x271b3d=_0x159957['createRange'](_0x159957['createPositionFromPath'](_0x580f7a,_0xed0d24['start']['path']['slice']()),_0x159957['createPositionFromPath'](_0x580f7a,_0xed0d24['end']['path']['slice']())),_0x185350=new _0x2eb419(_0x29cb48,null,_0x271b3d,_0x159957['markers'],!0x0,_0x52d1cf++);_0x186518['push'](_0x185350);}}if(_0x5a9cac)for(const [_0x33ebe4,_0x201fd9]of Object['entries'](_0x5a9cac)){const _0x42ddab=_0x159957['document']['getRoot'](_0x33ebe4);if(!_0x42ddab)throw new _0x5ca446('multi-root-editor-root-attributes-no-root',null);for(const [_0x4193b3,_0x4d7860]of Object['entries'](_0x201fd9))if(null!==_0x4d7860){const _0x2a3d59=new _0x3bb171(_0x42ddab,_0x4193b3,null,_0x4d7860,_0x52d1cf++);_0x186518['push'](_0x2a3d59);}}return _0x186518;}async['_loadRoot'](_0x4e5138,_0x2367aa,_0x571e39){this['_getOperationsFromInitData']({[_0x4e5138]:_0x2367aa},{[_0x4e5138]:_0x571e39})['forEach']((_0x369b03,_0x2e5019)=>{_0x369b03['baseVersion']=this['_document']['version']+_0x2e5019,_0x369b03['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x369b03);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x5f4dfd,_0x3631d7){let _0x54cb45;this['_offset']=_0x5f4dfd['offset'];const _0x292d35=_0x5f4dfd['wereChangesApplied']&&!_0x5f4dfd['initData'],_0x1d3de3=_0x292d35?0x0:_0x5f4dfd['data']['baseVersion'];if(_0x3631d7['forEach'](_0x48857d=>{_0x48857d['_isInit']=!0x0,_0x48857d['createdAt']=_0x5f4dfd['sessionCreatedAt'],_0x48857d['_authorId']=null;}),_0x292d35)_0x54cb45=_0x3631d7,this['_applyOperationsSet'](_0x54cb45,_0x292d35);else{if(_0x5f4dfd['initData']){const _0x529462=this['_getOperationsFromInitData'](_0x5f4dfd['initData']);this['_document']['history']['version']=-_0x529462['length'],_0x529462['forEach'](_0x71b3b=>{_0x71b3b['baseVersion']-=_0x529462['length'],_0x71b3b['createdAt']=_0x5f4dfd['sessionCreatedAt'],_0x71b3b['_isInit']=!0x0,_0x71b3b['_authorId']=null;}),this['_applyOperationsSet'](_0x529462,!0x0),this['serverHistory']['version']=-_0x529462['length']+this['_offset'],this['_updateServerHistory'](_0x529462);}this['_document']['history']['version']=_0x1d3de3,_0x54cb45=this['_decompressOperations'](_0x5f4dfd['data'],_0x5f4dfd['metadata']),await this['_fetchMissingUsers'](_0x54cb45),this['_applyOperationsSet'](_0x54cb45,_0x292d35);}_0x5f4dfd['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x54cb45,_0x5f4dfd['lastOperationId']),this['_lastSyncedOperationId']=_0x5f4dfd['lastOperationId']),this['serverHistory']['version']=_0x1d3de3+this['_offset'],this['_updateServerHistory'](_0x54cb45),_0x3631d7['filter'](_0x1b344a=>{const _0x119f59=this['_getAffectedRoot'](_0x1b344a);return _0x119f59&&!this['_knownRootNames']['has'](_0x119f59);})['forEach']((_0x2028e3,_0x9aca79)=>{_0x2028e3['baseVersion']=this['_document']['version']+_0x9aca79,this['_saveOperationInBuffer'](_0x2028e3);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x441842,_0x25b6f4){const _0x4672cf=_0x25b6f4&&_0x25b6f4['message'];if(_0x4672cf&&_0x4672cf['startsWith']('realtimecollaborationclient'))throw _0x25b6f4;const _0x3e9d46=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x3e9d46['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x5ca446(_0x441842,this['editor'],_0x4672cf?{'originalError':_0x4672cf}:void 0x0);}['_saveOperationInBuffer'](_0x4b1743){this['_knownOperations']['has'](_0x4b1743)||(this['_knownOperations']['add'](_0x4b1743),this['_bufferedOperations']['push'](_0x4b1743),this['_pendingAction']||'marker'==_0x4b1743['type']&&!_0x4b1743['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0xe45ce7=!0x1){!_0xe45ce7&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x535641=>{_0x535641&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x3f70c9=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x450727){return _0x450727['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x450727['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x450727['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x3f70c9)||this['_crash'](_0x3f70c9['message'],_0x3f70c9);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x9cbaed=>{this['on']('change:_isPendingUpdate',()=>{_0x9cbaed();});});}async['_sendBufferedOperations'](){const _0x7e5e9f=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x7e5e9f['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x973614=[...this['_bufferedOperations']];for(const _0xd66915 of _0x973614)_0xd66915['wasUndone']=this['_document']['history']['isUndoneOperation'](_0xd66915);const _0x4f7e37=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x973614),_0x12e51a=J++,_0x605a19=this['_compressOperations'](_0x973614),_0x49b5d6=await this['_service']['sendOperations'](_0x605a19,_0x605a19['baseVersion'],_0x4f7e37);try{return await this['_handleServerResponse'](_0x973614,_0x49b5d6,_0x12e51a);}catch(_0x1e0379){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x1e0379);}}async['_handleServerResponse'](_0x19d869,_0x313096,_0x573fe1){if('error'in _0x313096)throw _0x313096['error'];let _0x567e00=!0x1;if(_0x313096['wereChangesApplied']){_0x313096['lastOperationId']&&(this['_lastSyncedOperationId']=_0x313096['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x7ef04f=>!_0x19d869['includes'](_0x7ef04f));for(const _0x4c0d7f of _0x19d869)_0x4c0d7f['createdAt']='lastOperationAcceptedAt'in _0x313096&&_0x313096['lastOperationAcceptedAt']||void 0x0;Q(_0x19d869,_0x313096['version']-_0x19d869['length']),this['_updateServerHistory'](_0x19d869);const _0x411c83=_0x19d869['filter'](_0x429f4e=>{if(!_0x429f4e['_isInit'])return!0x1;const _0x4f50b2=this['_getAffectedRoot'](_0x429f4e);return _0x4f50b2&&!this['_knownRootNames']['has'](_0x4f50b2);});Q(_0x411c83,this['_document']['version']),this['_applyOperationsSet'](_0x411c83),_0x567e00=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x58513c=this['_decompressOperations'](_0x313096['data'],_0x313096['metadata'])['filter'](_0x2b84d0=>_0x2b84d0['baseVersion']>=this['_lastServerVersion']);_0x58513c['forEach'](_0x49d308=>this['_addKnownRoot'](_0x49d308)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x16cc7d=>!_0x16cc7d['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x16cc7d))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x58513c),_0x567e00=this['_handleExternalOperations'](_0x58513c,_0x313096['version'],_0x313096['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x567e00?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x1085bc,_0x17c8f2,_0x152c8f){try{const _0x506635={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x2eba07,operationsB:_0x3038a0,originalOperations:_0x170477}=_0x337fb0(_0x1085bc,this['_bufferedOperations'],_0x506635);Q(_0x2eba07,this['_document']['version']),Q(_0x3038a0,_0x17c8f2);for(const _0x5987f7 of _0x2eba07){const _0x53d398=_0x170477['get'](_0x5987f7);_0x5987f7['_authorId']=_0x53d398?_0x53d398['_authorId']:null;}_0x152c8f&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x1085bc,_0x152c8f),this['_lastSyncedOperationId']=_0x152c8f),this['_bufferedOperations']=[..._0x3038a0],this['_applyOperationsSet'](_0x2eba07),this['_updateServerHistory'](_0x1085bc);}catch(_0x44fa2c){return console['error'](_0x44fa2c),!0x1;}return!0x0;}['_applyOperationsSet'](_0x415d6c,_0x309df5=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x1c22dd=>{for(const _0x90c462 of _0x415d6c)this['_knownOperations']['add'](_0x90c462),this['_addKnownRoot'](_0x90c462),_0x1c22dd['batch']['addOperation'](_0x90c462),this['editor']['model']['applyOperation'](_0x90c462);});}['_addKnownRoot'](_0x4aa549){const _0x6d92d5=this['_getAffectedRoot'](_0x4aa549);_0x6d92d5&&this['_knownRootNames']['add'](_0x6d92d5);}['_getAffectedRoot'](_0x4302c1){let _0x3ad684,_0x46ceae;switch(_0x4302c1['type']){case'insert':_0x3ad684=_0x4302c1['position']['root'];break;case'marker':if(_0x46ceae=_0x4302c1['newRange'],!_0x46ceae)return null;_0x3ad684=_0x46ceae['root'];break;case'addRootAttribute':_0x3ad684=_0x4302c1['root'];break;case'addRoot':_0x3ad684=_0x4302c1['affectedSelectable'];break;case'move':_0x3ad684=_0x4302c1['targetPosition']['root'];break;default:return null;}return _0x3ad684['rootName'];}['_updateServerHistory'](_0x17072e){_0x17072e['forEach'](_0x1087ea=>{const _0x3d2909=_0x1087ea['clone']();_0x3d2909['_authorId']=_0x1087ea['_authorId'],_0x3d2909['_isInit']=!!_0x1087ea['_isInit'],_0x3d2909['createdAt']=_0x1087ea['createdAt'],_0x3d2909['baseVersion']+=this['_offset'],_0x1087ea['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x3d2909),this['serverHistory']['addOperation'](_0x3d2909);});}['_handleReconnectionError'](_0x53b0af){const _0x425885=this['editor']['plugins']['get']('Notification'),_0x33a7f1=this['editor']['locale'];_0x53b0af||(_0x53b0af=K(_0x33a7f1,'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.')),_0x425885['showWarning'](_0x53b0af,{'title':K(_0x33a7f1,'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'](_0x2e9287)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x2e9287)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x50b0c5){const _0x38f790=_0x50b0c5['map'](_0xddf554=>_0xddf554['toJSON']());return this['_compressor']['compress'](_0x38f790);}['_decompressOperations'](_0x2eeca8,_0x44a813){return this['_compressor']['decompress'](_0x2eeca8)['map']((_0x4b49ca,_0x878ef2)=>{const _0x4771a1='init'==_0x44a813[_0x878ef2]['type'];if('InsertOperation'==_0x4b49ca['__className']){const _0x2f6ed7=_0x4b49ca['position']['root'];!this['_document']['getRoot'](_0x2f6ed7)&&(this['_document']['createRoot']('$unknown',_0x2f6ed7)['_isAttached']=!0x1);}else{if('RootOperation'==_0x4b49ca['__className']){const _0x421f5f=this['_document']['getRoot'](_0x4b49ca['rootName']);_0x421f5f&&'$unknown'==_0x421f5f['name']&&_0x4b49ca['elementName']!=_0x421f5f['name']&&(_0x421f5f['name']=_0x4b49ca['elementName']);}}const _0x1cfeb6=_0x4fb23e['fromJSON'](_0x4b49ca,this['_document']);return _0x1cfeb6['wasUndone']=_0x4b49ca['wasUndone'],_0x1cfeb6['_isInit']=_0x4771a1,_0x1cfeb6['_authorId']=_0x4771a1?null:_0x44a813[_0x878ef2]['userId'],_0x1cfeb6['_isDisconnection']='cs:removeUser'===_0x44a813[_0x878ef2]['type'],_0x1cfeb6['createdAt']=_0x44a813[_0x878ef2]['createdAt'],_0x1cfeb6;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x25c028=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x25c028&&_0x25c028['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x14bdfe,_0x48d75d){for(const _0x7b9dfa of _0x14bdfe)_0x7b9dfa['baseVersion']=_0x48d75d++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x571ebf){this['_ignoredOperations']=_0x571ebf,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x3ebff8){let _0x383068=_0x3ebff8['length'];for(;_0x383068--;){const _0xb7cd09=_0x3ebff8[_0x383068];if(!this['_ignoredOperations']['has'](_0xb7cd09)){if(!this['_operationToId']['has'](_0xb7cd09)){const _0x3fd513=_0x53ed0a()['slice'](0x1,0x12);this['_operationToId']['set'](_0xb7cd09,_0x3fd513);}return this['_operationToId']['get'](_0xb7cd09);}}}['setIdForTheLastOperation'](_0x4d25da,_0x3de40f){if(!_0x3de40f)return;let _0x2a5ed9=_0x4d25da['length'];for(;_0x2a5ed9--;){const _0x698e90=_0x4d25da[_0x2a5ed9];this['_ignoredOperations']['has'](_0x698e90)||this['_operationToId']['set'](_0x698e90,_0x3de40f);}}}class RealTimeCollaborativeEditing extends _0x525919{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x301857{static ['CommentsService']=/* #__PURE__ -- @preserve */
|
|
26
|
+
((()=>_0x3f36bf)());['_services'];static get['requires'](){return[WebSocketGateway,_0x27c5eb,Sessions,_0x5783db];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x45e325){super(_0x45e325),this['_services']=new Map();}async['init'](){const _0x310cec=this['context'],_0x64a978=_0x310cec['plugins']['get'](_0x27c5eb);if(_0x310cec['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x64a978['adapter']={'addCommentThread':async({channelId:_0x24b152,threadId:_0x43dd85,comments:_0x439097,resolvedAt:_0x1c182d,resolvedBy:_0x538df0,context:_0x1ae0cf,attributes:_0x26dee9})=>{const _0x464e4d=await this['_getService'](_0x24b152)['addCommentThread']({'commentThreadId':_0x43dd85,'comments':_0x439097['map'](_0x1a75a4=>function(_0x4d7f23,_0x549541,_0x53ecb1){return{'commentThreadId':_0x53ecb1,'commentId':_0x4d7f23['commentId'],'userId':_0x4d7f23['authorId'],'content':_0x4d7f23['content'],'documentId':_0x549541,'createdAt':_0x4d7f23['createdAt'],'attributes':_0x4d7f23['attributes']||{}};}(_0x1a75a4,_0x24b152,_0x43dd85)),'resolvedAt':_0x1c182d,'resolvedBy':_0x538df0,'context':_0x1ae0cf,'attributes':_0x26dee9})['catch'](Z);return{'threadId':_0x464e4d['commentThreadId'],'comments':_0x464e4d['comments']};},'getCommentThread':async({channelId:_0x148899,threadId:_0x1aeb60})=>{const _0x50fda7=await this['_getService'](_0x148899)['getCommentThread'](_0x1aeb60)['catch'](X)['catch'](Z);return _0x50fda7?_0x50fda7['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x50fda7]),{'threadId':_0x50fda7['commentThreadId'],'comments':_0x50fda7['comments']['map'](tt),'context':_0x50fda7['context'],'resolvedAt':_0x50fda7['resolvedAt'],'resolvedBy':_0x50fda7['resolvedBy'],'attributes':_0x50fda7['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x2ccf09,threadId:_0x433fb5,context:_0x2ce8e4,unlinkedAt:_0x908eda,attributes:_0x3c0063})=>this['_getService'](_0x2ccf09)['updateCommentThread']({'commentThreadId':_0x433fb5,'context':_0x2ce8e4,'attributes':_0x3c0063,'unlinkedAt':_0x908eda})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0xa27697,threadId:_0x514edb})=>{const _0x3f8927=await this['_getService'](_0xa27697)['resolveCommentThread'](_0x514edb)['catch'](X)['catch'](Z);return{'threadId':_0x3f8927['commentThreadId'],'resolvedAt':_0x3f8927['resolvedAt'],'resolvedBy':_0x3f8927['resolvedBy']};},'reopenCommentThread':async({channelId:_0x442611,threadId:_0x48e36c})=>this['_getService'](_0x442611)['reopenCommentThread'](_0x48e36c)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x510d7e,threadId:_0x109c90})=>this['_getService'](_0x510d7e)['removeCommentThread'](_0x109c90)['catch'](X)['catch'](Z),'addComment':({channelId:_0x56b840,threadId:_0x39c200,commentId:_0x50126e,content:_0x2afe66,attributes:_0x11a5de})=>this['_getService'](_0x56b840)['addComment'](_0x39c200,_0x50126e,_0x2afe66,_0x11a5de)['catch'](Z),'updateComment':({channelId:_0x1f0fd6,threadId:_0x561880,commentId:_0x3d988d,content:_0x42126c,attributes:_0x3f889f})=>this['_getService'](_0x1f0fd6)['updateComment'](_0x561880,_0x3d988d,_0x42126c,_0x3f889f)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x165f44,threadId:_0x2efc6d,commentId:_0x53b28d})=>this['_getService'](_0x165f44)['removeComment'](_0x2efc6d,_0x53b28d)['catch'](X)['catch'](Z)},_0x310cec instanceof _0x8106a0){const _0x49b691=_0x310cec['config']['get']('collaboration.channelId'),_0x497db5=_0x310cec['plugins']['get'](Sessions);await this['_setUpService'](_0x49b691);const _0xc2681b=await this['_services']['get'](_0x49b691)['getConnectedSessions']();this['listenTo'](_0x497db5,'sessionAdd:'+_0x49b691,(_0x2730aa,{session:_0x164f5c})=>{_0x164f5c['id']===_0x497db5['mySessionId']&&(_0x2730aa['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x164f5c['permissions'],_0x49b691));}),_0x497db5['register'](_0x49b691,_0xc2681b);}}async['_setUpService'](_0x2986ac){if(this['_services']['has'](_0x2986ac))throw new _0x5ca446('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x2986ac});const _0x287c70=this['context']['plugins']['get'](_0x27c5eb),_0x1d9351=new CloudServicesCommentsAdapter['CommentsService'](_0x2986ac);this['_services']['set'](_0x2986ac,_0x1d9351),this['listenTo'](_0x1d9351,'commentThreadAdded',(_0x26b9a6,_0x49c9fa)=>{const {commentThreadId:_0x4efd3a,documentId:_0x1798b8,context:_0x5858a2,attributes:_0x5972e6,resolvedAt:_0x2cb39d,resolvedBy:_0xc84b4e,comments:_0x528f7b}=_0x49c9fa;_0x287c70['getCommentThread'](_0x4efd3a)||_0x287c70['addCommentThread']({'threadId':_0x4efd3a,'channelId':_0x1798b8,'comments':_0x528f7b?_0x528f7b['map'](tt):[],'context':_0x5858a2,'attributes':_0x5972e6,'resolvedAt':_0x2cb39d,'resolvedBy':_0xc84b4e,'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentThreadUpdated',(_0x5eb3c2,{commentThreadId:_0x4e38f4,documentId:_0x3ac04b,context:_0x1e4265,unlinkedAt:_0x3c24c6,attributes:_0x35e615})=>{_0x287c70['getCommentThread'](_0x4e38f4)&&_0x287c70['updateCommentThread']({'threadId':_0x4e38f4,'channelId':_0x3ac04b,'context':_0x1e4265,'unlinkedAt':_0x3c24c6,'attributes':_0x35e615,'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentThreadResolved',(_0x5f3db4,{commentThreadId:_0x9541f4,resolvedBy:_0x24de50,resolvedAt:_0x1a54fe})=>{const _0x55852d=_0x287c70['getCommentThread'](_0x9541f4);_0x55852d&&_0x55852d['resolve']({'resolvedBy':_0x24de50,'resolvedAt':_0x1a54fe,'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentThreadReopened',(_0x4e1c0d,{commentThreadId:_0xb399f2})=>{const _0x4b9190=_0x287c70['getCommentThread'](_0xb399f2);_0x4b9190&&_0x4b9190['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentThreadRemoved',(_0x31b1a1,{commentThreadId:_0x4173fb})=>{const _0x57a933=_0x287c70['getCommentThread'](_0x4173fb);_0x57a933&&_0x57a933['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentAdded',(_0x2892b3,_0x28d4e9)=>{const _0x5db292=_0x28d4e9['commentThreadId'],_0x113c74=_0x287c70['getCommentThread'](_0x5db292);_0x113c74&&_0x113c74['addComment']({...tt(_0x28d4e9),'isFromAdapter':!0x0});}),this['listenTo'](_0x1d9351,'commentUpdated',(_0x170496,{commentThreadId:_0x555ee2,commentId:_0x467e5f,content:_0x15c8f0,attributes:_0x5c3b7b})=>{const _0x871636=_0x287c70['getCommentThread'](_0x555ee2);if(_0x871636){const _0x18f243=_0x871636['getComment'](_0x467e5f);_0x18f243&&_0x18f243['update']({'content':_0x15c8f0,'attributes':_0x5c3b7b,'isFromAdapter':!0x0});}}),this['listenTo'](_0x1d9351,'commentRemoved',(_0x57faca,{commentThreadId:_0x302a16,commentId:_0x45c472})=>{const _0xc5797c=_0x287c70['getCommentThread'](_0x302a16);if(_0xc5797c){const _0x16050d=_0xc5797c['getComment'](_0x45c472);_0x16050d&&_0x16050d['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x2986ac);}['destroy'](){if(this['context']instanceof _0x8106a0){const _0x1b8942=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x1b8942);}}['_terminateService'](_0x4c588c){if(!this['_services']['has'](_0x4c588c))throw new _0x5ca446('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x4c588c});this['_getService'](_0x4c588c)['disconnect'](),this['_services']['delete'](_0x4c588c);}async['reconnect'](){for(const _0x8a9b70 of this['_services']['keys']())await this['_connectService'](_0x8a9b70);if(this['context']instanceof _0x8106a0){const _0x38d22c=this['context']['config']['get']('collaboration.channelId'),_0x541ece=this['context']['plugins']['get'](Sessions);_0x541ece['unregister'](_0x38d22c);const _0x3f1169=await this['_services']['get'](_0x38d22c)['getConnectedSessions']();_0x541ece['register'](_0x38d22c,_0x3f1169);}}async['_connectService'](_0x2adfa7){const {connection:_0x587547}=this['context']['plugins']['get'](WebSocketGateway),_0x1f1220=this['context']['plugins']['get'](_0x27c5eb),_0x2f9773=this['_services']['get'](_0x2adfa7),_0x5c06ed=await _0x2f9773['connect'](_0x587547);await this['_fetchMissingUsersForThreads'](_0x5c06ed);const _0x9f0060=new Set(Array['from'](_0x1f1220['getCommentThreads']({'channelId':_0x2adfa7}),_0x92126e=>_0x92126e['id']));for(const _0x20ab28 of _0x5c06ed)_0x20ab28['deletedAt']||_0x9f0060['delete'](_0x20ab28['commentThreadId']);for(const _0x3df88b of _0x9f0060)_0x1f1220['getCommentThread'](_0x3df88b)['remove']({'isFromAdapter':!0x0});for(const _0x525fff of _0x5c06ed){let _0x5267e0=_0x1f1220['getCommentThread'](_0x525fff['commentThreadId']);const {commentThreadId:_0x4ed941,context:_0x2a36e7,attributes:_0x5e9298,resolvedBy:_0x6b0873,resolvedAt:_0x1b669c,unlinkedAt:_0x8880e1,deletedAt:_0x3a2d85}=_0x525fff;if(_0x3a2d85)continue;_0x5267e0||(_0x5267e0=_0x1f1220['addCommentThread']({'channelId':_0x2adfa7,'threadId':_0x4ed941,'context':_0x2a36e7,'attributes':_0x5e9298||{},'resolvedBy':_0x6b0873,'resolvedAt':_0x1b669c,'unlinkedAt':_0x8880e1,'isFromAdapter':!0x0}));const _0x1d00b9=new Set(Array['from'](_0x5267e0['comments'],_0x497df7=>_0x497df7['id']));for(const _0x1a3f47 of _0x525fff['comments'])_0x1d00b9['delete'](_0x1a3f47['commentId']);for(const _0x14c884 of _0x1d00b9)_0x5267e0['getComment'](_0x14c884)['remove']({'isFromAdapter':!0x0});for(const _0x3160be of _0x525fff['comments']){const _0x547a8f=_0x5267e0['getComment'](_0x3160be['commentId']);_0x547a8f?_0x547a8f['content']!==_0x3160be['content']&&_0x547a8f['update']({'content':_0x3160be['content'],'isFromAdapter':!0x0}):_0x5267e0['addComment'](Object['assign'](tt(_0x3160be),{'isFromAdapter':!0x0}));}}}['_getService'](_0x3000c1){if(!this['_services']['has'](_0x3000c1))throw new _0x5ca446('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x3000c1});return this['_services']['get'](_0x3000c1);}async['_fetchMissingUsersForThreads'](_0x3fac74){const _0x2a971f=this['context']['plugins']['get'](_0x5783db),{connection:_0x16a8fe}=this['context']['plugins']['get'](WebSocketGateway),_0x1fbb93=new Set();for(const {resolvedBy:_0x1bc653,comments:_0x245328}of _0x3fac74){_0x1bc653&&!_0x2a971f['getUser'](_0x1bc653)&&_0x1fbb93['add'](_0x1bc653);for(const {userId:_0x4ec9d7}of _0x245328)_0x2a971f['getUser'](_0x4ec9d7)||_0x1fbb93['add'](_0x4ec9d7);}if(0x0===_0x1fbb93['size'])return;const _0x35c7a0=await _0x36e987['getMany'](_0x16a8fe,Array['from'](_0x1fbb93));for(const _0x276e6f of _0x35c7a0)_0x2a971f['getUser'](_0x276e6f['id'])||_0x2a971f['addUser'](_0x276e6f);}}async function X(_0x3c30cf){if('404'!==_0x3c30cf['code'])throw _0x3c30cf;}function Z(_0x3f3028){if((_0xf8a5e2=_0x3f3028)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0xf8a5e2['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0xf8a5e2['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0xf8a5e2;throw _0x3f3028;}function tt(_0x76e811){return{'threadId':_0x76e811['commentThreadId'],'commentId':_0x76e811['commentId'],'content':_0x76e811['content'],'createdAt':_0x76e811['createdAt'],'authorId':_0x76e811['userId'],'attributes':_0x76e811['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x525919{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
|
|
27
|
+
((()=>_0x5d9822)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x438d69,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3a079d){super(_0x3a079d);const _0x2683c2=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x2683c2);}['init'](){const _0xadbe51=this['editor']['plugins']['get'](WebSocketGateway),_0x33fbc2=this['editor']['plugins']['get'](_0x438d69);return _0x33fbc2['adapter']={'getSuggestion':async _0x33e705=>{await this['_waitForServiceReady']();const _0x71a25e=await this['_trackChangesService']['get'](_0x33e705)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x71a25e]),_0x71a25e;},'addSuggestion':async({id:_0x201484,type:_0xd30377,data:_0x19b7a5,originalSuggestionId:_0x2aceb2,attributes:_0x4554c4})=>{await this['_waitForServiceReady']();const _0x1c32b7={'id':_0x201484,'type':_0xd30377,'data':_0x19b7a5,'originalSuggestionId':_0x2aceb2,'attributes':_0x4554c4},_0x5546f0=await this['_trackChangesService']['add'](_0x201484,_0xd30377,_0x19b7a5,_0x2aceb2,_0x4554c4)['catch'](_0x4b3c57=>{if(st(_0x4b3c57))return new Promise(_0x286ed4=>{this['_bufferedRequests']['set'](_0x201484,{'resolve':_0x286ed4,'suggestionData':_0x1c32b7});});throw _0x4b3c57;});return this['_bufferedRequests']['delete'](_0x201484),_0x5546f0;},'updateSuggestion':async(_0x1d1019,_0x35affc)=>{if(await this['_waitForServiceReady'](),'open'!==_0x35affc['state'])return this['_trackChangesService']['update'](_0x1d1019,_0x35affc)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x209c8d,_0x61099)=>{_0x33fbc2['hasSuggestion'](_0x61099['id'])&&(_0x33fbc2['getSuggestion'](_0x61099['id'])['attributes']=_0x61099['attributes']);}),this['_trackChangesService']['connect'](_0xadbe51['connection'])['then'](_0x11465c=>(_0xadbe51['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x11465c)['then'](()=>{for(const _0x1b1c9d of _0x11465c){_0x33fbc2['addSuggestionData'](_0x1b1c9d)['_saved']=!0x0;}})));}async['reconnect'](){const _0x23f075=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x18b81a}=this['editor']['plugins']['get'](WebSocketGateway),_0x4bb54d=await this['_trackChangesService']['connect'](_0x18b81a);await this['_fetchMissingUsersForThreads'](_0x4bb54d);for(const {suggestionData:_0x91e49b,resolve:_0x427bcc}of this['_bufferedRequests']['values']()){let _0x2d6035=_0x4bb54d['find'](_0x16f711=>_0x16f711['id']===_0x91e49b['id']);_0x2d6035||(_0x2d6035=await this['_trackChangesService']['add'](_0x91e49b['id'],_0x91e49b['type'],_0x91e49b['data'],_0x91e49b['originalSuggestionId'])),_0x427bcc(_0x2d6035);}for(const _0x598095 of _0x4bb54d)_0x23f075['hasSuggestion'](_0x598095['id'])||_0x23f075['addSuggestionData'](_0x598095);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x7fe1fa=>{this['listenTo'](this['_trackChangesService'],'connected',_0x5047b2=>{_0x5047b2['off'](),_0x7fe1fa();});});}async['_fetchMissingUsersForThreads'](_0x12546f){const _0x4341d2=this['editor']['plugins']['get'](_0x5783db),{connection:_0x50f296}=this['editor']['plugins']['get'](WebSocketGateway),_0xf78488=new Set();for(const {authorId:_0x3c74ea}of _0x12546f)_0x4341d2['getUser'](_0x3c74ea)||_0xf78488['add'](_0x3c74ea);if(0x0===_0xf78488['size'])return;const _0x31186d=await _0x36e987['getMany'](_0x50f296,Array['from'](_0xf78488));for(const _0x1ea51e of _0x31186d)_0x4341d2['getUser'](_0x1ea51e['id'])||_0x4341d2['addUser'](_0x1ea51e);}}function et(_0x707dc5){if(st(_0x707dc5))return new Promise(()=>{});throw _0x707dc5;}function st(_0x37434f){return _0x37434f['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x37434f['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x525919{static get['requires'](){return[_0x6f1f0e,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x18ed83=this['editor']['plugins']['get'](WebSocketGateway),_0x46b68f=this['editor']['plugins']['get'](_0x3a954d),_0x178ca4=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x18ed83,'change:state',(_0x3b8ec7,_0x5db085,_0xc5531f)=>{_0x46b68f['isThreadsLoadingPaused']='connected'!==_0xc5531f;});}),this['listenTo'](_0x18ed83,'change:state',(_0x23928f,_0x2e137d,_0x3ae3f9)=>{this['editor']['plugins']['get'](_0x27c5eb)['switchReadOnly']('connected'!==_0x3ae3f9);}),_0x178ca4['_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 _0x525919{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x5a552b];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x525919{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
|
|
28
|
+
((()=>_0x3af4a6)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x134b36,Sessions,_0x5783db];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1b7faa){super(_0x1b7faa);const _0x19b20a=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x19b20a);}async['init'](){const _0x41d5a0=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0xc265da=_0x41d5a0['serverHistory'],_0x324637=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0xc265da,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x41d5a0['sessionId']});const _0x3279db=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x53ac72,_0x43a706=await _0x39cbd3['isBundleUploaded'](_0x324637['connection'],_0x3279db);this['editor']['plugins']['get'](_0x134b36)['adapter']={'getRevision':async({revisionId:_0x2c6e0f})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x2c6e0f)),'updateRevisions':async _0x3fa2ce=>{await this['_waitForServiceReady']();const _0x36d0a0=this['_revisionTracker']['currentRevision'];if(_0x43a706&&0x1===_0x3fa2ce['length']&&_0x3fa2ce[0x0]['id']===_0x36d0a0['id'])return _0x3fa2ce;for(const _0x11e449 of _0x3fa2ce)_0x11e449['id']===_0x36d0a0['id']&&(_0x11e449['isEmptyCurrent']=_0x11e449['fromVersion']===_0x11e449['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x3fa2ce,this['_lastRequestId'])['then'](_0x1c7968=>(this['_lastRequestId']=_0x1c7968,_0x3fa2ce))['catch'](_0x2e55b5=>{if(it(_0x2e55b5)||'400'===_0x2e55b5['code']&&void 0x0!==_0x2e55b5['data']['wrongRequestId']){for(const _0x2052de of _0x3fa2ce){!this['_revisionTracker']['repository']['getRevision'](_0x2052de['id'])||this['_revisionTracker']['_bufferUpdate'](_0x2052de['id'],_0x2052de,!0x1);}if(it(_0x2e55b5)&&'destroyed'!==this['editor']['state'])throw _0x2e55b5;return _0x3fa2ce;}throw _0x2e55b5;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0xf0b2d9,{revisionsData:_0x115c3d,requestId:_0x102678})=>{Math['max'](..._0x115c3d['map'](_0x178663=>_0x178663['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x115c3d,_0x102678);}):this['_handleRevisionsUpdate'](_0x115c3d,_0x102678);});const {revisions:_0x111102,requestId:_0x386487}=await this['_revisionHistoryService']['connect'](_0x324637['connection']);_0x324637['addToReconnectionStack'](this),this['_lastRequestId']=_0x386487,await this['_fetchMissingUsers'](_0x111102);for(const _0x36ef3c of _0x111102)this['_revisionTracker']['addRevisionData'](_0x36ef3c);this['listenTo'](_0x41d5a0,'change:_isConnected',(_0x3b4ede,_0x3e8671,_0x66cd40)=>{_0x66cd40&&(this['_oldOffset']=_0x41d5a0['_offset'],_0x3b4ede['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x324637,'state',_0x20dbfb=>_0x20dbfb===_0xf3d8b5['CONNECTED']);}async['reconnect'](){const _0x9d61a6=this['editor']['plugins']['get'](WebSocketGateway),_0x3ef2fd=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x5eca00=async()=>{const _0x257ff8=this['_revisionTracker']['currentRevision'],_0x444b3d=_0x257ff8['id'],_0x1be6cc=_0x444b3d!==_0x3ef2fd['sessionId'];if(_0x1be6cc){const _0x1e010d=_0x3ef2fd['_offset']-this['_oldOffset'],_0x2f0467=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x257ff8['toVersion']+_0x1e010d!==_0x2f0467){const _0x33382d=_0x257ff8['fromVersion']+_0x1e010d,_0x681b8d=this['editor']['plugins']['get'](_0x5783db),_0x1ccc56=this['_revisionTracker']['buildRevisionData']({'revision':_0x257ff8,'from':_0x33382d,'to':_0x2f0467});_0x1ccc56['id']=_0x257ff8['id'];const _0x29d3d9=_0x1ccc56['authorsIds']['map'](_0x55e0bf=>_0x681b8d['getUser'](_0x55e0bf));_0x257ff8['_update']({..._0x1ccc56,'authors':_0x29d3d9},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x257ff8['id'],_0x1ccc56,!0x0);}this['_revisionTracker']['_startingVersion']=_0x2f0467,(_0x257ff8['toVersion']===_0x257ff8['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x444b3d)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x444b3d),this['_revisionTracker']['_createCurrentRevision'](_0x2f0467));}const {revisions:_0x31135b,requestId:_0x4ca50a}=await this['_revisionHistoryService']['reconnect'](_0x9d61a6['connection'],this['_lastRequestId']);_0x1be6cc&&_0x31135b['length']>0x0?_0x3ef2fd['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x31135b),this['_handleRevisionsUpdate'](_0x31135b,_0x4ca50a),this['_revisionTracker']['sendBufferedUpdates']());};return _0x3ef2fd['_isConnected']?_0x5eca00():new Promise((_0x4404d2,_0x532e26)=>{_0x3ef2fd['once']('change:_isConnected',()=>{_0x5eca00()['then'](_0x4404d2)['catch'](_0x532e26);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x205c4f=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x4d9186=>{_0x4d9186['off'](),_0x205c4f();});});}['_getLatestVersionFromServerOperations'](){const _0xffe20c=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x4ec062 of _0xffe20c)if('marker'!==_0x4ec062['type']||_0x4ec062['affectsData'])return _0x4ec062['baseVersion']+0x1;}['_getLatestVersion'](){const _0xb7d0a8=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x43ea78=>{_0xb7d0a8['_isPendingUpdate']?_0xb7d0a8['once']('change:_isPendingUpdate',()=>{_0x43ea78(this['_getLatestVersionFromServerOperations']());}):_0x43ea78(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x3e5ee4,_0x1d4e37){const _0x387fef=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x1d4e37;for(const _0x3690f8 of _0x3e5ee4){const _0xac7572=_0x387fef['getRevision'](_0x3690f8['id']);if(_0xac7572){if((_0x3690f8['fromVersion']||_0x3690f8['toVersion'])&&(_0x3690f8['diffData']=null),_0xac7572===this['_revisionTracker']['currentRevision']){const _0x37c998=Math['max'](_0xac7572['toVersion'],_0x3690f8['toVersion']),_0x3db5c9=Math['max'](_0xac7572['fromVersion'],_0x3690f8['fromVersion']);let _0x549e33;_0xac7572['toVersion']===_0x3690f8['toVersion']&&_0xac7572['fromVersion']===_0x3690f8['fromVersion']?(_0x549e33=!0x0,this['_preventResendingRevisionData'](_0x3690f8)):_0x3690f8['toVersion']===_0x37c998&&_0x3690f8['fromVersion']===_0x3db5c9?_0x549e33=!0x1:(_0xac7572['toVersion']===_0x37c998&&_0xac7572['fromVersion']===_0x3db5c9||this['_fixRevision']({'revision':_0xac7572,'from':_0x3db5c9,'to':_0x37c998}),_0x549e33=!0x0),_0x549e33&&(delete _0x3690f8['fromVersion'],delete _0x3690f8['toVersion'],delete _0x3690f8['diffData'],delete _0x3690f8['createdAt'],delete _0x3690f8['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x3690f8),this['_preventResendingRevisionData'](_0x3690f8);}else this['_revisionTracker']['addRevisionData'](_0x3690f8);}const _0x532663=_0x387fef['getRevisions']();_0x532663['reverse']();for(let _0x5981da=0x0;_0x5981da<_0x532663['length']-0x1;_0x5981da++){const _0x5dde37=_0x532663[_0x5981da],_0x2d4556=_0x532663[_0x5981da+0x1];if(_0x5dde37['fromVersion']<_0x2d4556['toVersion']){const _0x348a18=_0x2d4556['toVersion'],_0x53175b=Math['max'](_0x348a18,_0x5dde37['toVersion']);this['_fixRevision']({'revision':_0x5dde37,'from':_0x348a18,'to':_0x53175b});}}}['_fixRevision']({revision:_0x348b07,from:_0x5e7556,to:_0x1bcafc}={}){const _0x2c663c=this['editor']['plugins']['get'](_0x5783db),_0x356ae8=this['_revisionTracker']['buildRevisionData']({'revision':_0x348b07,'from':_0x5e7556,'to':_0x1bcafc});_0x356ae8['authors']=_0x356ae8['authorsIds']['map'](_0x34df5e=>_0x2c663c['getUser'](_0x34df5e)),_0x348b07['_update'](_0x356ae8);}['_preventResendingRevisionData'](_0x4a81bd){const _0x28b9ba={};_0x28b9ba['id']=_0x4a81bd['id'];for(const _0x13b282 of Object['keys'](_0x4a81bd))'id'!==_0x13b282&&(_0x28b9ba[_0x13b282]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x28b9ba['id'],_0x28b9ba,!0x0);}async['_fetchMissingUsers'](_0x12fcd0){const _0x2d1365=this['editor']['plugins']['get'](_0x5783db),{connection:_0x547665}=this['editor']['plugins']['get'](WebSocketGateway),_0x3beae2=new Set();for(const _0x1362ce of _0x12fcd0){for(const _0x549608 of _0x1362ce['authorsIds'])_0x554e1f(_0x549608);_0x1362ce['creatorId']&&_0x554e1f(_0x1362ce['creatorId']);}if(0x0===_0x3beae2['size'])return;const _0x5377f7=await _0x36e987['getMany'](_0x547665,Array['from'](_0x3beae2));for(const _0x783c66 of _0x5377f7)_0x2d1365['getUser'](_0x783c66['id'])||_0x2d1365['addUser'](_0x783c66);function _0x554e1f(_0x5a6d82){_0x2d1365['getUser'](_0x5a6d82)||_0x3beae2['add'](_0x5a6d82);}}}function it(_0x442a95){return _0x442a95['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x442a95['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x442a95['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x525919{static get['requires'](){return[_0x134b36,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x5f3d1a{['_collapseAt'];constructor(_0x4f8a49,_0x5f1617=0x6){super(_0x4f8a49);const _0x163c6d=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x5f1617,this['bind']('isHidden')['to'](this,'usersCount',_0x2d4d4b=>_0x2d4d4b<_0x5f1617),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x163c6d['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':_0x163c6d['to']('usersCount',_0x529307=>'+'+(_0x529307-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x5f3d1a{['items'];['keystrokes'];constructor(_0xe7f3a5){super(_0xe7f3a5);const _0x259aeb=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x3192ca(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x259aeb['if']('hasPopup'),'aria-expanded':_0x259aeb['to']('isExpanded',_0x5f2629=>this['hasPopup']&&String(_0x5f2629)),'aria-label':_0x259aeb['to']('hasPopup',_0x411e5e=>K(_0xe7f3a5,_0x411e5e?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x259aeb['to']('hasPopup',_0x453755=>!!_0x453755&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x259aeb['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x259aeb['to'](_0x509982=>{const _0x1cbdb9=_0x509982,_0x42bef2=document['querySelector']('.ck-presence-list__dropdown-list'),_0x149810=document['querySelector']('.ck-balloon-panel_with-arrow');_0x42bef2?.['contains'](_0x1cbdb9['relatedTarget'])||_0x149810?.['contains'](_0x1cbdb9['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x39b393,_0x8c6db8,_0x3dace6)=>{this['element']&&(_0x3dace6?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 _0x5f3d1a{['counterView'];['inlineListView'];constructor(_0xa47ce7,_0x17aeed=0x6){super(_0xa47ce7);const _0x645691=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x17aeed),this['inlineListView']=new PresenceInlineListView(_0xa47ce7),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x1599d6 of this['inlineListView']['items'])_0x1599d6['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',_0x645691['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x5f3d1a{['listWrapperView'];constructor(_0x3b30ab,_0x2cddab){super(_0x3b30ab);const _0x3bb737=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x3b30ab,_0x2cddab),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x3b30ab,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x3bb737['to'](_0x539c19=>{const _0x4c4c40=_0x539c19,_0x5ab531=document['querySelector']('.ck-presence-list__list'),_0x38ae41=document['querySelector']('.ck-balloon-panel_with-arrow');_0x5ab531?.['contains'](_0x4c4c40['relatedTarget'])||_0x38ae41?.['contains'](_0x4c4c40['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x2aa0a6{constructor(_0x145179,_0x572313){super(_0x145179);const _0x181570=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x572313?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x181570['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x181570['to']('role'),'aria-label':_0x181570['to']('ariaLabel'),'aria-labelledby':_0x181570['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x410313['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x44d8ea=this['element'];_0x44d8ea&&(this['_isScrollable']=Math['max'](_0x44d8ea['scrollHeight'],_0x44d8ea['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0xf6d61d{['userView'];constructor(_0x330cba,_0x54c151,_0x50ca0e){super(_0x330cba);const _0x2d04b4=this['bindTemplate'];this['userView']=new _0x5a2b39(_0x330cba,_0x54c151);const _0x2683f5={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x54c151['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x54c151['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x54c151['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x54c151['color']['getColorVariable'](),'--ck-user-color-alpha':_0x54c151['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x50ca0e&&(_0x2683f5['tag']='button',_0x2683f5['on']={'click':_0x2d04b4['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x2683f5);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x5f3d1a{['userView'];['markerView'];constructor(_0xf4855b,_0x3e3ad3,_0x307dfb){super(_0xf4855b);const _0x336995=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x5a2b39(_0xf4855b,_0x3e3ad3),this['markerView']=new MarkerView(_0xf4855b,_0x3e3ad3);const _0x18a10b=new _0x3a59ab(_0xf4855b);_0x18a10b['template']['tag']='span',_0x18a10b['text']=_0x3e3ad3['name'];const _0x13fa5c={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x336995['to']('isFocusable',_0x18f7fa=>!!_0x18f7fa&&0x0),'aria-labelledby':_0x18a10b['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x336995['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x336995['to']('hasTooltip',_0x197c66=>!_0x197c66),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x18a10b]};_0x307dfb&&(_0x13fa5c['tag']='button',_0x13fa5c['on']={'click':_0x336995['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x13fa5c);}}class MarkerView extends _0x5f3d1a{constructor(_0xf1a6ea,_0x3d8432){super(_0xf1a6ea),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x3d8432['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x3d8432['color']['getColorVariable'](),'--ck-user-color-alpha':_0x3d8432['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x301857{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x579062){super(_0x579062),this['context']['config']['define']('presenceList',nt);const _0x41b1db=_0x579062['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x41b1db)throw new _0x5ca446('presencelist-collapseat-invalid-format',this);if(_0x41b1db<0x1)throw new _0x5ca446('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x4be9e8(),this['balloonPanelView']=new _0x31f4d8(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x4f477f of this['_allConnectedUsers'])this['_handleUserAdd'](_0x4f477f);this['listenTo'](this['_allConnectedUsers'],'add',(_0x1b1643,_0x12c858)=>{this['_handleUserAdd'](_0x12c858);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x4f3076,_0xd68de2)=>{this['_handleUserRemove'](_0xd68de2);});}['_createView'](){const _0x1d6631=this['context'],_0x524297=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x574409=this['balloonPanelView'];if(!_0x15a965(_0x1d6631['config']['get']('presenceList.container')))throw new _0x5ca446('presencelist-missing-container',this);return _0x524297['counterView']['bind']('usersCount')['to'](this),_0x524297['bind']('isCollapsed')['to'](this,'usersCount',_0x2e1bff=>{const {collapseAt:_0x292c7e}=_0x1d6631['config']['get']('presenceList'),_0x532085=_0x2e1bff>=_0x292c7e;if(_0x532085&&!_0x524297['inlineListView']['items']['find'](_0x2ebc69=>_0x2ebc69 instanceof PresenceCounterView)){const _0x25df38=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x25df38&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x524297['inlineListView']['items']['add'](_0x524297['counterView']);}return _0x532085||this['hideDropdown'](),_0x532085;}),_0x524297['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x4494ce=>{const _0x392115=_0x1d6631['config']['get']('presenceList'),_0x487abf=new PresenceInlineListItemView(_0x1d6631['locale'],_0x4494ce,!!_0x392115['onClick']);return _0x487abf['bind']('hasTooltip')['to'](_0x524297,'isCollapsed',_0x217c12=>!_0x217c12),_0x487abf['bind']('isFocusable')['to'](_0x524297,'isCollapsed',_0x4633bf=>!_0x4633bf),_0x392115['onClick']&&this['listenTo'](_0x487abf,'execute',()=>{this['view']['isCollapsed']||_0x392115['onClick'](_0x4494ce,_0x487abf['element']);}),_0x487abf;}),this['listenTo'](_0x524297['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x524297['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x524297['inlineListView']['keystrokes']['set']('Enter',(_0x5b8dcc,_0x55a78f)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x55a78f());}),_0x524297['render'](),_0x574409['render'](),_0x507db1({'emitter':_0x524297,'activator':()=>_0x574409['isVisible'],'contextElements':[_0x574409['element'],_0x524297['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x1d6631['config']['get']('presenceList.container')['appendChild'](_0x524297['element']),this['_bodyCollection']=new _0x6aff50(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x524297;}['_handleUserAdd'](_0x18dd54){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x18dd54['isMe'])return;const _0x5a378d=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x5a378d-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x141ab1=_0x18dd54['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x18dd54,_0x141ab1);}['_handleUserRemove'](_0x321f85){this['usersCount']--;const {collapseAt:_0x565725}=this['context']['config']['get']('presenceList'),_0x53edaa=this['usersCount']>=_0x565725;if(this['currentDisplayedUsers']['get'](_0x321f85['id']))this['currentDisplayedUsers']['remove'](_0x321f85['id']);else{if(_0x53edaa&&this['currentDisplayedUsers']['length']+0x1===_0x565725-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x53edaa?0x1:0x0)<this['usersCount']){for(const _0xaa381d of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0xaa381d['id'])&&(this['currentDisplayedUsers']['add'](_0xaa381d,Math['min'](this['currentDisplayedUsers']['length']-(_0x53edaa?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x53edaa?0x1:0x0)===_0x565725-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x59b485=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x59b485['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x2cac6f}=this['presenceDropdownView'];_0x2cac6f['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x547d7b=>{if(!_0x59b485['displayMe']&&_0x547d7b['isMe'])return null;const _0xf384bd=new PresenceDropdownListItemView(this['context']['locale'],_0x547d7b,!!_0x59b485['onClick']);return _0x59b485['onClick']&&this['listenTo'](_0xf384bd,'execute',()=>{_0x59b485['onClick'](_0x547d7b,_0xf384bd['element']);}),_0xf384bd;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x2cac6f['focus'](),_0x2cac6f['checkIfScrollable']();const _0x296c0e=(_0x16cfb5,_0x2ac26b)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x2ac26b();};_0x2cac6f['keystrokes']['set']('Esc',_0x296c0e),_0x2cac6f['keystrokes']['set']('Shift+Tab',_0x296c0e),_0x2cac6f['keystrokes']['set']('Tab',(_0x2933cd,_0x36d16c)=>{!function(_0x4c7d4f){const _0x595c45=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x21f423=>_0x21f423+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x45b435=[...document['body']['querySelectorAll'](_0x595c45)]['filter'](_0x50fd59=>_0x50fd59===document['activeElement']||_0x50fd59['offsetWidth']+_0x50fd59['offsetHeight']>0x0)['sort']((_0x46e8e5,_0x17c8d1)=>(_0x46e8e5['tabIndex']||0x0)-(_0x17c8d1['tabIndex']||0x0)),_0x157018=_0x45b435['indexOf'](_0x4c7d4f),_0x10883e=_0x45b435[(_0x157018+0x1)%_0x45b435['length']];_0x10883e&&_0x10883e['focus']();}(this['view']['element']),this['hideDropdown'](),_0x36d16c();}),_0x2cac6f['focusTracker']['add'](this['view']['element']),_0x2cac6f['focusTracker']['on']('change:isFocused',(_0x54f347,_0x35cb54,_0x2cda73)=>{_0x2cda73||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 _0x301857{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};
|