@ckeditor/ckeditor5-real-time-collaboration 48.2.0-alpha.5 → 48.2.0-alpha.6
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
|
-
((()=>_0x1cd472)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x36caf0,_0x13581e];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x4234ed){super(_0x4234ed),this['set']('state',_0x4b45bf['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x5e26f0())();}['init'](){const _0x2dae58=this['context'],_0x6ae009=_0x2dae58['plugins']['get'](_0x36caf0),_0x590028=_0x2dae58['plugins']['get'](_0x13581e);if(!_0x6ae009['token'])throw new _0x71eab6('websocketgateway-missing-token',this);if(!_0x6ae009['webSocketUrl'])throw new _0x71eab6('websocketgateway-missing-websocket-url',this);return this['_domEmitter']['listenTo'](window,'offline',()=>this['_isBrowserOffline']=!0x0),this['_domEmitter']['listenTo'](window,'online',()=>this['_isBrowserOffline']=!0x1),this['context']['config']['define']('cloudServices.connectionTimeout',0xa),this['context']['config']['define']('cloudServices.requestTimeout',0x14),WebSocketGateway['WebSocketGateway']['connect'](_0x6ae009['token'],_0x6ae009['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x960d2b=>{if(this['connection']=_0x960d2b,this['bind']('state')['to'](_0x960d2b,'state',this,'_isBrowserOffline',(_0x4d86d2,_0x30d33e)=>('connected'!==_0x4d86d2&&(this['_shouldPluginsReconnect']=!0x0),_0x30d33e||_0x4d86d2!==_0x4b45bf['CONNECTED']?_0x4b45bf['DISCONNECTED']:this['state']==_0x4b45bf['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x4b45bf['CONNECTING']):_0x4b45bf['CONNECTED'])),this['connection']['on']('error',(_0x2bc765,_0x178de5)=>{if('limitExceeded'!==_0x178de5['code'])throw console['error'](_0x178de5),new _0x71eab6('cloudservices-init',null,{'originalError':_0x178de5});_0x590028['showWarning']('The\x20limit\x20of\x20maximum\x20concurrent\x20connections\x20that\x20the\x20collaboration\x20server\x20can\x20handle\x20has\x20been\x20reached.\x20Try\x20opening\x20the\x20document\x20again\x20in\x20a\x20few\x20minutes.\x20Please\x20contact\x20your\x20system\x20administrator\x20if\x20the\x20problem\x20persists.',{'title':'Connected\x20users\x20limit\x20exceeded','namespace':'real-time-collaboration'});}),!_0x960d2b['me'])return new Promise(_0x8ed3c9=>_0x960d2b['on']('change:me',_0x8ed3c9));})['catch'](_0x42b9a9=>{throw console['error'](_0x42b9a9),new _0x71eab6('cloudservices-init',null,{'originalError':_0x42b9a9});});}['addToReconnectionStack'](_0x59631b){if('function'!=typeof _0x59631b['reconnect'])throw new _0x71eab6('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x59631b))throw new _0x71eab6('websocketgateway-plugin-already-registered',this,{'name':_0x59631b['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x59631b);}['removeFromReconnectionStack'](_0x181d5a){this['_reconnectionStack']['delete'](_0x181d5a);}['isInReconnectionStack'](_0x31a7b3){return this['_reconnectionStack']['has'](_0x31a7b3);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x23379f=>_0x23379f['reconnect']())))['then'](()=>this['state']=_0x4b45bf['CONNECTED'])['catch'](_0x1eb09f=>{throw console['error'](_0x1eb09f),new _0x71eab6('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x4b45bf['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x1ab0c4{['channelSessions'];['channelConnectedUsers'];['allConnectedUsers'];['_registeredSessions'];['_uniqueUsersCount'];['_users'];static get['pluginName'](){return'Sessions';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}static get['requires'](){return[WebSocketGateway,_0x39f5d8];}constructor(_0x1c852c){super(_0x1c852c),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x3fb7b9(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x39f5d8);}['init'](){const _0x21b5e2=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x21b5e2,'change:state',(_0x5ebed2,_0x47ce86,_0x399f4e)=>{if('connected'!==_0x399f4e)this['channelSessions']['forEach'](_0x1778f9=>_0x1778f9['clear']()),this['channelConnectedUsers']['forEach'](_0x53f865=>_0x53f865['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x3d810c,_0x2eb7a1]of this['_registeredSessions'])for(const _0x1019a3 of _0x2eb7a1)this['_handleSessionAdd'](_0x3d810c,_0x1019a3);}}),this['_createUser'](_0x21b5e2['connection']['me'],!0x0);}['register'](_0x50a0c4,_0x16be3c){if(this['_registeredSessions']['has'](_0x50a0c4))throw new _0x71eab6('sessions-register-already-registered',null,{'channelId':_0x50a0c4});this['_registeredSessions']['set'](_0x50a0c4,_0x16be3c),this['channelSessions']['set'](_0x50a0c4,new _0x3fb7b9()),this['channelConnectedUsers']['set'](_0x50a0c4,new _0x3fb7b9()),this['listenTo'](_0x16be3c,'add',(_0x3f73e3,_0x32cb0a)=>this['_handleSessionAdd'](_0x50a0c4,_0x32cb0a)),this['listenTo'](_0x16be3c,'remove',(_0xd07e61,_0x4bae18)=>this['_handleSessionRemove'](_0x50a0c4,_0x4bae18));for(const _0xeb6ec1 of _0x16be3c)this['_handleSessionAdd'](_0x50a0c4,_0xeb6ec1);}['unregister'](_0x349ea4){if(!this['_registeredSessions']['has'](_0x349ea4))throw new _0x71eab6('sessions-unregister-not-exist',null,{'channelId':_0x349ea4});const _0x12c2d7=this['_registeredSessions']['get'](_0x349ea4);this['stopListening'](_0x12c2d7);for(const _0x38b9f5 of _0x12c2d7)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x349ea4,_0x38b9f5);this['_registeredSessions']['delete'](_0x349ea4),this['channelSessions']['delete'](_0x349ea4),this['channelConnectedUsers']['delete'](_0x349ea4);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x4d865b){for(const _0x2c4eec of this['channelSessions']['values']())for(const _0x1ede2d of _0x2c4eec)if(_0x1ede2d['id']===_0x4d865b)return _0x1ede2d['user'];}['getUserSessions'](_0x2cc7d4,_0x5658a0){const _0x38f5e7=_0x5658a0?[this['channelSessions']['get'](_0x5658a0)]:this['channelSessions']['values'](),_0x3044fe=new Set();for(const _0x4a2b25 of _0x38f5e7)for(const _0x3f7cbd of _0x4a2b25)_0x3f7cbd['user']['id']===_0x2cc7d4['id']&&_0x3044fe['add'](_0x3f7cbd['id']);return _0x3044fe;}['getUserRole'](_0x6ece86){for(const _0x4aba1a of this['channelSessions']['values']())for(const _0xc4a633 of _0x4aba1a)if(_0xc4a633['user']===_0x6ece86)return _0xc4a633['role'];}['_handleSessionAdd'](_0x305d84,_0xb2392d){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x19e40f=_0xb2392d['user'],_0x2b0284=this['_users']['getUser'](_0x19e40f['id'])||this['_createUser'](_0x19e40f),_0x4a1ead=Object['assign']({},_0xb2392d,{'user':_0x2b0284});if(this['channelSessions']['get'](_0x305d84)['add'](_0x4a1ead),!_0x19e40f['hiddenInPresenceList']){const _0x1504ab=this['channelConnectedUsers']['get'](_0x305d84);_0x1504ab['has'](_0x2b0284['id'])||_0x1504ab['add'](_0x2b0284),this['allConnectedUsers']['has'](_0x2b0284['id'])||_0x19e40f['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x2b0284,_0x2b0284['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x305d84,{'channelId':_0x305d84,'session':_0x4a1ead});}['_handleSessionRemove'](_0x21e9ce,_0x5178cc){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x43a065=this['channelConnectedUsers']['get'](_0x21e9ce),_0x58e77d=_0x5178cc['user'];_0x58e77d['id']&&(this['channelSessions']['get'](_0x21e9ce)['remove'](_0x5178cc['id']),_0x43a065['has'](_0x58e77d['id'])&&!this['getUserSessions'](_0x58e77d,_0x21e9ce)['size']&&_0x43a065['remove'](_0x58e77d['id']),this['allConnectedUsers']['get'](_0x58e77d['id'])&&!this['getUserSessions'](_0x58e77d)['size']&&this['allConnectedUsers']['remove'](_0x58e77d['id']));}['_createUser'](_0x2869c3,_0x2dc8ac){const _0x43371f=this['_users']['addUser'](_0x2869c3);return _0x2dc8ac&&this['_users']['defineMe'](_0x2869c3['id']),_0x43371f['orderNumber']=this['_uniqueUsersCount']++,_0x43371f;}}class UserMarkers extends _0xa8b5d6{['_domEmitter']=new(_0x5e26f0())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x16ed3e=this['editor'],_0x127505=_0x16ed3e['plugins']['get'](Sessions);_0x16ed3e['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x21217c,{writer:_0x8e724e})=>function(_0x10d8e1,_0x2c6728,_0x25b22a,_0x31fc85){const _0x177f01=_0x10d8e1['markerName']['split'](':')[0x2],_0x14406b=_0x25b22a['getUserBySessionId'](_0x177f01);if(!_0x14406b||_0x177f01===_0x25b22a['mySessionId'])return;if(!_0x31fc85['model']['schema']['checkChild'](_0x10d8e1['markerRange']['start'],'$text'))return;const _0x8ec8c2={'class':'ck-user__marker\x20'+_0x14406b['color']['getMarkerClass'](),'style':Y(_0x14406b),'data-name':_0x14406b['name'],'data-session-id':_0x177f01},_0x2a9e6f=_0x31fc85['model']['markers']['get'](_0x10d8e1['markerName']),_0x418c32=_0x2a9e6f['getStart'](),_0xf2b59=_0x418c32['nodeAfter'],_0x4bfad1=_0x31fc85['model']['schema'];if(_0xf2b59&&_0x4bfad1['isObject'](_0xf2b59)&&_0x4bfad1['isInline'](_0xf2b59)&&!_0x31fc85['model']['markers']['get']('user:range:'+_0x177f01)['getRange']()['isCollapsed'])return;const _0x5c9e9e=_0x418c32['parent'];return _0x31fc85['model']['schema']['isLimit'](_0x5c9e9e)&&!_0x31fc85['model']['hasContent'](_0x5c9e9e)&&(_0x8ec8c2['contenteditable']=!0x1),function(_0x29f6e2,_0x55a537,_0x1c4507){const _0x2079f6=_0x29f6e2['createUIElement']('span',_0x55a537);return _0x29f6e2['setCustomProperty']('userPositionMarker',!0x0,_0x2079f6),_0x2079f6['render']=function(_0x1f2d27){const _0x5d7055=this['toDomElement'](_0x1f2d27),_0xb34d0=document['createElement']('span');return _0xb34d0['classList']['add']('ck-user__marker-tooltip'),_0xb34d0['setAttribute']('contenteditable','false'),_0xb34d0['setAttribute']('spellcheck','false'),_0xb34d0['textContent']=_0x1c4507['name'],_0x5d7055['innerHTML']='<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0xb34d0['outerHTML']+'',_0x5d7055['addEventListener']('mouseenter',()=>{_0x5d7055['classList']['add']('ck-user__marker_hovered');}),_0x5d7055['addEventListener']('mouseleave',()=>{_0x5d7055['classList']['remove']('ck-user__marker_hovered');}),_0x5d7055;},_0x2079f6['isSimilar']=function(_0x221599){return!(!this['getCustomProperty']('userPositionMarker')||!_0x221599['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x221599['getAttribute']('data-session-id'));},_0x2079f6;}(_0x2c6728,_0x8ec8c2,_0x14406b);}(_0x21217c,_0x8e724e,_0x127505,_0x16ed3e)}),_0x16ed3e['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x390603=>function(_0x3a24a1,_0x28aff7){const _0x51fe2b=_0x3a24a1['markerName']['split'](':')[0x2];if(_0x51fe2b===_0x28aff7['mySessionId'])return null;const _0x55d1d0=_0x28aff7['getUserBySessionId'](_0x51fe2b);if(!_0x55d1d0)return{'id':_0x51fe2b,'classes':[]};return{'id':_0x51fe2b,'classes':['ck-user__selection',_0x55d1d0['color']['getSelectionClass']()],'attributes':{'style':Y(_0x55d1d0),'data-session-id':_0x51fe2b},'priority':0x7d0+_0x55d1d0['orderNumber']};}(_0x390603,_0x127505)}),function(_0x226219){const _0x59dba1=_0x226219['model'],_0x5c2a0b=new Map(),_0x9f6472=_0x226219['plugins']['get'](Sessions);_0x59dba1['markers']['on']('update:user:range',(_0x55bb32,_0x1e409b,_0x4c412d,_0x55363f)=>{if(!_0x55363f&&_0x5c2a0b['get'](_0x1e409b['name']))return _0x5c2a0b['get'](_0x1e409b['name'])['detach'](),void _0x5c2a0b['delete'](_0x1e409b['name']);const _0x43bff6=_0x1e409b['name']['split'](':')[0x2];if(_0x43bff6===_0x9f6472['mySessionId'])return;const _0x17d555='user:position:'+_0x43bff6;_0x59dba1['markers']['has'](_0x17d555)&&_0x226219['editing']['reconvertMarker'](_0x17d555),_0x1e409b['on']('change:range',(_0x5e3699,_0x5599f1,_0x2622e5)=>{if('$graveyard'!=_0x5599f1['root']['rootName']&&'$graveyard'==_0x1e409b['getRange']()['root']['rootName']&&!_0x5c2a0b['has'](_0x1e409b['name'])){const _0x62db56=_0x59dba1['schema']['getNearestSelectionRange'](_0x2622e5['deletionPosition']);if(_0x62db56){const _0x1129e7=_0x475f72['fromRange'](_0x62db56);_0x5c2a0b['set'](_0x1e409b['name'],_0x1129e7),_0x1129e7['on']('change:range',(_0x5bbf83,_0x3cb74e,_0x1e1b4f)=>{if('$graveyard'==_0x1129e7['root']['rootName']){const _0x2f218e=_0x59dba1['schema']['getNearestSelectionRange'](_0x1e1b4f['deletionPosition']);_0x2f218e?(_0x1129e7['start']=_0x2f218e['start'],_0x1129e7['end']=_0x2f218e['end']):(_0x5c2a0b['delete'](_0x1e409b['name']),_0x1129e7['detach']());}});}}});}),_0x59dba1['document']['on']('change',()=>{_0x5c2a0b['size']>0x0&&_0x59dba1['enqueueChange']({'isUndoable':!0x1},_0x3d65cb=>{for(const [_0x5e47ed,_0x1f7fce]of _0x5c2a0b)'$graveyard'==_0x59dba1['markers']['get'](_0x5e47ed)['getRange']()['root']['rootName']&&(z(_0x5e47ed['split'](':')[0x2],_0x1f7fce['toRange'](),_0x59dba1,_0x3d65cb),_0x1f7fce['detach']());_0x5c2a0b['clear']();});});}(_0x16ed3e),this['_domEmitter']['listenTo'](_0x47d9e9['document'],'keydown',(_0x5b4f40,{key:_0x2b9d0e})=>{'Escape'===_0x2b9d0e&&function(_0x503226){_0x503226['editing']['view']['change'](_0x2c2f66=>{for(const _0x2abf8b of _0x503226['model']['markers']){if(!_0x2abf8b['name']['startsWith']('user:position'))continue;const _0x3e4057=_0x503226['editing']['mapper']['markerNameToElements'](_0x2abf8b['name']);if(_0x3e4057){for(const _0x213d70 of _0x3e4057)_0x2c2f66['removeClass']('ck-user__marker_hovered',_0x213d70);}}});}(_0x16ed3e);},{'useCapture':!0x0});}['afterInit'](){const _0x6f9e2b=this['editor'],_0x43c4c4=_0x6f9e2b['commands']['get']('undo');_0x43c4c4&&_0x6f9e2b['model']['on']('applyOperation',(_0x33b166,_0x531cb5)=>{const _0xd48a66=_0x531cb5[0x0];if(!_0xd48a66['isDocumentOperation'])return;if('marker'!=_0xd48a66['type']||!_0xd48a66['name']['startsWith']('user:'))return;const _0x50c0e2=_0xd48a66['batch'];_0x43c4c4['_createdBatches']['has'](_0x50c0e2)&&(_0xd48a66['newRange']=_0xd48a66['oldRange']?_0x6f9e2b['model']['createRange'](_0xd48a66['oldRange']['start'],_0xd48a66['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x2cb82b=this['editor'],_0x5c5b69=_0x2cb82b['model']['document'],_0x153d18=_0x2cb82b['plugins']['get'](Sessions);_0x2cb82b['model']['enqueueChange']({'isUndoable':!0x1},_0x3c25c9=>{const _0x25608a='user:range:'+_0x153d18['mySessionId'],_0x4291ac='user:position:'+_0x153d18['mySessionId'],_0x2039e8=_0x2cb82b['model']['markers']['has'](_0x25608a);_0x2cb82b['editing']['view']['hasDomSelection']?z(_0x153d18['mySessionId'],_0x5c5b69['selection']['getFirstRange'](),_0x2cb82b['model'],_0x3c25c9):_0x2039e8&&(_0x3c25c9['removeMarker'](_0x25608a),_0x3c25c9['removeMarker'](_0x4291ac));});}}function z(_0x229afe,_0x51108a,_0x4288b5,_0x597bc1){const _0xc4d587='user:range:'+_0x229afe,_0x5d4cb0='user:position:'+_0x229afe,_0x4a3bdf=_0x51108a['getContainedElement']();let _0x1d3e6e=_0x51108a['start'];if(_0x4a3bdf&&_0x4a3bdf['is']('element','tableCell')){const _0x1d2a03=function(_0x1a6381,_0x4e093f){for(const _0x4c03fd of _0x1a6381['getPositions']())if(_0x4e093f['schema']['checkChild'](_0x4c03fd,'$text'))return _0x4c03fd;}(_0x51108a,_0x4288b5);_0x1d2a03&&(_0x1d3e6e=_0x1d2a03,_0x51108a=_0x597bc1['createRange'](_0x1d3e6e));}const _0x167a39=_0x597bc1['createRange'](_0x1d3e6e);_0x4288b5['markers']['has'](_0xc4d587)?(_0x597bc1['updateMarker'](_0xc4d587,{'range':_0x51108a}),_0x597bc1['updateMarker'](_0x5d4cb0,{'range':_0x167a39})):(_0x597bc1['addMarker'](_0xc4d587,{'range':_0x51108a,'usingOperation':!0x0}),_0x597bc1['addMarker'](_0x5d4cb0,{'range':_0x167a39,'usingOperation':!0x0}));}function Y(_0xaee37b){return'--ck-user-color:'+_0xaee37b['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0xaee37b['color']['getColorAlphaVariable']()+';';}function K(_0x11a4df,_0x2ac652,_0x58e9a8){const _0x879dd4=_0x11a4df['t'],t=_0x11a4df['t'];switch(_0x2ac652){case'PENDING_ACTION_SENDING_DATA':return t({'string':'Sending\x20data\x20to\x20the\x20server.','id':'PENDING_ACTION_SENDING_DATA'});case'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'Synchronization\x20issue':return t('Synchronization\x20issue');case'Connected\x20users\x20list\x20dropdown\x20menu':return t('Connected\x20users\x20list\x20dropdown\x20menu');case'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':return t('Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)');case'Connected\x20users\x20list':return t('Connected\x20users\x20list');case'PENDING_ACTION_REVISION_HISTORY':return _0x879dd4({'string':'Unsaved\x20change\x20in\x20revision\x20history.','id':'PENDING_ACTION_REVISION_HISTORY'});case'CONNECTED_USERS':return t({'string':'1\x20connected\x20user\x20(me)','plural':'%0\x20connected\x20users','id':'CONNECTED_USERS'},_0x58e9a8);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0xa8b5d6{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
|
|
25
|
-
((()=>_0x1bc08e)());['_offset'];['sessionId'];['serverHistory'];['_channelId'];['_service'];['_document'];['_compressor'];['_bufferedOperations'];['_knownOperations'];['_knownRootNames'];['_pendingAction'];['_hasSelectionChanged'];['_sendBufferedOperationsDelayId'];['_baseBufferDelay'];['_currentBufferDelay'];['_lastSyncedOperationId'];['_disconnectionOperations'];['_operationIdentifier'];static get['requires'](){return[WebSocketGateway,Sessions,UserMarkers,_0x3c80a1,_0x39f5d8,_0x13581e];}static get['pluginName'](){return'RealTimeCollaborationClient';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}get['cloudDocumentVersion'](){return this['_lastServerVersion']+this['_offset'];}get['_lastServerVersion'](){return this['serverHistory']['version']-this['_offset'];}get['lastSyncVersion'](){const _0x2d6b8e=this['serverHistory']['getOperations']();for(let _0x3712a8=_0x2d6b8e['length']-0x1;_0x3712a8>=0x0;_0x3712a8--){const _0x4601d0=_0x2d6b8e[_0x3712a8];if(!this['_disconnectionOperations']['has'](_0x4601d0))return _0x4601d0['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x3163ab){if(super(_0x3163ab),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0xffd32b(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x71eab6('collaboration-missing-channelid',this);const _0x175ea8=_0x3163ab['config']['get']('cloudServices.bundleVersion')||_0x858cb6;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x175ea8,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x5edac(),this['_bufferedOperations']=[],this['_knownOperations']=new WeakSet(),this['_knownRootNames']=new Set(),this['set']('_isPendingUpdate',!0x1),this['set']('_hasSynchronizationProblem',!0x1),this['_pendingAction']=null,this['_hasSelectionChanged']=!0x1,this['_sendBufferedOperationsDelayId']=null,this['_baseBufferDelay']=0x12c,this['_currentBufferDelay']=this['_baseBufferDelay'],this['_lastSyncedOperationId']=null,this['_disconnectionOperations']=new WeakSet(),this['_operationIdentifier']=new OperationIdentifier(this['_disconnectionOperations']);}['init'](){const _0x581e94=this['editor'],_0x564ac7=_0x581e94['plugins']['get'](_0x39f5d8),_0x241531=_0x581e94['plugins']['get'](WebSocketGateway);this['listenTo'](_0x564ac7,'getOperationAuthor',(_0x310355,_0x2f68ce)=>{const _0x3a2020=_0x2f68ce[0x0];_0x3a2020['_authorId']&&(_0x310355['return']=_0x564ac7['getUser'](_0x3a2020['_authorId']),_0x310355['stop']()),null===_0x3a2020['_authorId']&&(_0x310355['return']=null,_0x310355['stop']());},{'priority':'high'}),this['listenTo'](_0x581e94['model']['document']['selection'],'change:range',(_0x56403a,_0x3e8f5d)=>{_0x3e8f5d['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x581e94['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x581e94['model']['on']('applyOperation',(_0x18151d,_0x2dfe40)=>{const _0x4cf924=_0x2dfe40[0x0];_0x4cf924['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x4cf924),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x241531,'state',this,'_hasSynchronizationProblem',(_0x1f3795,_0x1e0813)=>'connected'===_0x1f3795&&!_0x1e0813),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x581e94['disableReadOnlyMode']('rtc-offline'):_0x581e94['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x581e94['disableReadOnlyMode']('rtc-offline'):_0x581e94['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x97d22d=this['editor']['plugins']['get'](Sessions),_0x12a442=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x97d22d['unregister'](this['_channelId']);const _0x433298=await this['_service']['reconnect'](_0x12a442['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x433298)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0xfd0d2f=await this['_service']['getConnectedSessions']();_0x97d22d['register'](this['_channelId'],_0xfd0d2f),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x1a0bcd){if(function(_0xa21057){return'404'===_0xa21057['code'];}(_0x1a0bcd)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x1b6865){return'409'===_0x1b6865['code'];}(_0x1a0bcd)){const _0x103f3f=K(this['editor']['locale'],'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');this['_handleReconnectionError'](_0x103f3f);}else{if(!(_0x1a0bcd instanceof ReconnectionError))throw _0x1a0bcd;this['_handleReconnectionError']();}}}}['destroy'](){const _0xbe6f0c=this['editor']['plugins']['get'](WebSocketGateway),_0x404437=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x404437['channelSessions']['has'](this['_channelId'])&&_0x404437['unregister'](this['_channelId']),_0xbe6f0c['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x2a4fa3){if(this['sessionId']!==_0x2a4fa3['sessionId']&&this['_lastSyncedOperationId']!==_0x2a4fa3['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x2a4fa3['sessionId'],this['_handleServerResponse']([],{..._0x2a4fa3,'wereChangesApplied':!0x1,'data':_0x2a4fa3['data']},'reconnect');}async['_connectService'](_0x468b7b,_0x569a1e=!0x1){const {connection:_0x3b7aaf}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x3b7aaf,this['_channelId'])['then'](_0x103ca1=>this['_initSessionsHandling'](_0x103ca1))['catch'](_0x51b549=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x51b549);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x2306fd,_0x5d8263)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x5d8263);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x3b0fbb=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x468b7b);this['_isPendingUpdate']=!0x0;const _0x81de04=await this['_service']['connect'](_0x3b7aaf,this['_compressOperations'](_0x468b7b),_0x3b0fbb);if(this['sessionId']=_0x81de04['sessionId'],_0x569a1e){if(!_0x81de04['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x81de04['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x468b7b,_0x81de04,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x81de04,_0x468b7b);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x228071=this['editor']['plugins']['get'](Sessions),_0x408787=this['editor']['plugins']['get'](UserMarkers),_0xe9dd57=_0x228071['channelSessions']['get'](this['_channelId']);_0xe9dd57&&_0xe9dd57['length']>0x1?_0x408787['createUserMarkerOperations']():this['listenTo'](_0x228071,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x228071['channelSessions']['get'](this['_channelId'])['length']&&_0x408787['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x3a9955,_0x1ddc05,_0x1ecf25,_0xa66563){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x1ddc05){const _0x490f64=this['_decompressOperations'](_0x1ecf25,_0xa66563);await this['_fetchMissingUsers'](_0x490f64),this['_handleExternalOperations'](_0x490f64,_0x1ddc05,_0x1ecf25['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x8a6d48}=this['editor'];let _0x555216;try{_0x555216=await this['_service']['getDocumentDetails']();}catch{const _0x3df823=K(_0x8a6d48,'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x3df823);}const _0x504348=_0x555216['currentDocumentSession']||_0x555216['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x504348['lastOperationId']){const _0x5a3d24=K(_0x8a6d48,'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x5a3d24);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x58f921){const _0x547fee=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x547fee,'sessionAdd:'+this['_channelId'],(_0x4a8e21,{session:_0x499d0c})=>{if(_0x499d0c['id']===_0x547fee['mySessionId']){_0x4a8e21['off']();const _0x447816=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x3c40a3=_0x499d0c['permissions'];_0x447816&&_0x447816['isEnabled']&&(_0x3c40a3=_0x3c40a3['filter'](_0x3bc323=>'document:write'!==_0x3bc323)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x3c40a3,this['_channelId']);}}),_0x547fee['register'](this['_channelId'],_0x58f921);}['_initThrowingOnDataSet'](){const _0x29254f=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x4bc7a8)=>{if(!_0x4bc7a8[_0x4bc7a8['length']-0x1]['suppressErrorInCollaboration'])throw new _0x71eab6('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x29254f['apply'](this['editor']['data'],_0x4bc7a8);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x2336ae,[_0x777f76])=>{if(this['_document']['version'])throw new _0x71eab6('realtimecollaborationclient-init-document-already-initialized',this);_0x2336ae['stop'](),this['_setPendingAction']();const _0x449f6d=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x2e5bf1])=>!_0x2e5bf1['lazyLoad'])['map'](([_0x1a21b9,_0x4174eb])=>[_0x1a21b9,_0x4174eb['modelAttributes']||{}])),_0xba612a=this['_getOperationsFromInitData'](_0x777f76,_0x449f6d);0x0==_0xba612a['length']&&_0xba612a['push'](new _0x391ddc(0x0)),_0x2336ae['return']=this['_connectService'](_0xba612a)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x31b2e5=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x31b2e5))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0xb847e8,[_0x2f2cf5,_0x217521])=>{_0xb847e8['stop']();const _0x3a95cb=this['editor']['model']['document']['getRoot'](_0x2f2cf5);if(!this['_knownRootNames']['has'](_0x2f2cf5)){const _0x28f3cc=_0x217521&&_0x217521['data']?_0x217521['data']:'',_0x1c2226=_0x217521&&_0x217521['attributes']?_0x217521['attributes']:{};await this['_loadRoot'](_0x2f2cf5,_0x28f3cc,_0x1c2226);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x3a95cb['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x3a95cb);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x5cc6a9){const _0x41bef8=this['editor']['plugins']['get'](_0x39f5d8),{connection:_0x473ee4}=this['editor']['plugins']['get'](WebSocketGateway),_0xf006c7=new Set();for(const _0x3fac27 of _0x5cc6a9){const _0x1c516c=_0x3fac27['_authorId'];_0x1c516c&&!_0x41bef8['getUser'](_0x1c516c)&&_0xf006c7['add'](_0x1c516c);}if(0x0===_0xf006c7['size'])return;const _0x7138d4=await _0x4e51b9['getMany'](_0x473ee4,Array['from'](_0xf006c7));for(const _0x383280 of _0x7138d4)_0x41bef8['getUser'](_0x383280['id'])||_0x41bef8['addUser'](_0x383280);}['_getOperationsFromInitData'](_0x32b845,_0x508494={}){const _0x3ad73d=this['editor']['model'],_0x196ba7=[];let _0x1f094c=0x0;const _0x486d3c='string'==typeof _0x32b845?{'main':_0x32b845}:_0x32b845;for(const _0x333834 of Object['keys'](_0x486d3c)){if(!this['_document']['roots']['has'](_0x333834))throw new _0x71eab6('realtimecollaborationclient-init-non-existent-root',this);const _0x397758=this['_document']['getRoot'](_0x333834),_0x29a77f=this['editor']['data']['parse'](_0x486d3c[_0x333834],_0x397758),_0x2e694d=new _0x51e5d9(_0x3ad73d['createPositionAt'](_0x397758,0x0),_0x29a77f,_0x1f094c++);_0x196ba7['push'](_0x2e694d);for(const [_0x54bf28,_0x295985]of _0x29a77f['markers']){const _0x34707c=_0x3ad73d['createRange'](_0x3ad73d['createPositionFromPath'](_0x397758,_0x295985['start']['path']['slice']()),_0x3ad73d['createPositionFromPath'](_0x397758,_0x295985['end']['path']['slice']())),_0x164f5c=new _0x4d1aba(_0x54bf28,null,_0x34707c,_0x3ad73d['markers'],!0x0,_0x1f094c++);_0x196ba7['push'](_0x164f5c);}}if(_0x508494)for(const [_0x2ea127,_0x2d8276]of Object['entries'](_0x508494)){const _0x3b5c62=_0x3ad73d['document']['getRoot'](_0x2ea127);if(!_0x3b5c62)throw new _0x71eab6('multi-root-editor-root-attributes-no-root',null);for(const [_0x1dc567,_0xb13e88]of Object['entries'](_0x2d8276))if(null!==_0xb13e88){const _0x49438d=new _0x42715b(_0x3b5c62,_0x1dc567,null,_0xb13e88,_0x1f094c++);_0x196ba7['push'](_0x49438d);}}return _0x196ba7;}async['_loadRoot'](_0x52a423,_0x33ee8f,_0x2c8352){this['_getOperationsFromInitData']({[_0x52a423]:_0x33ee8f},{[_0x52a423]:_0x2c8352})['forEach']((_0x1f4933,_0x528a21)=>{_0x1f4933['baseVersion']=this['_document']['version']+_0x528a21,_0x1f4933['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x1f4933);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x396fea,_0x27958e){let _0x467551;this['_offset']=_0x396fea['offset'];const _0x4f121f=_0x396fea['wereChangesApplied']&&!_0x396fea['initData'],_0x213016=_0x4f121f?0x0:_0x396fea['data']['baseVersion'];if(_0x27958e['forEach'](_0x32ee97=>{_0x32ee97['_isInit']=!0x0,_0x32ee97['createdAt']=_0x396fea['sessionCreatedAt'],_0x32ee97['_authorId']=null;}),_0x4f121f)_0x467551=_0x27958e,this['_applyOperationsSet'](_0x467551,_0x4f121f);else{if(_0x396fea['initData']){const _0x3c7f22=this['_getOperationsFromInitData'](_0x396fea['initData']);this['_document']['history']['version']=-_0x3c7f22['length'],_0x3c7f22['forEach'](_0x49478a=>{_0x49478a['baseVersion']-=_0x3c7f22['length'],_0x49478a['createdAt']=_0x396fea['sessionCreatedAt'],_0x49478a['_isInit']=!0x0,_0x49478a['_authorId']=null;}),this['_applyOperationsSet'](_0x3c7f22,!0x0),this['serverHistory']['version']=-_0x3c7f22['length']+this['_offset'],this['_updateServerHistory'](_0x3c7f22);}this['_document']['history']['version']=_0x213016,_0x467551=this['_decompressOperations'](_0x396fea['data'],_0x396fea['metadata']),await this['_fetchMissingUsers'](_0x467551),this['_applyOperationsSet'](_0x467551,_0x4f121f);}_0x396fea['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x467551,_0x396fea['lastOperationId']),this['_lastSyncedOperationId']=_0x396fea['lastOperationId']),this['serverHistory']['version']=_0x213016+this['_offset'],this['_updateServerHistory'](_0x467551),_0x27958e['filter'](_0x2a90e2=>{const _0xb2db2a=this['_getAffectedRoot'](_0x2a90e2);return _0xb2db2a&&!this['_knownRootNames']['has'](_0xb2db2a);})['forEach']((_0x43c5e5,_0x160df5)=>{_0x43c5e5['baseVersion']=this['_document']['version']+_0x160df5,this['_saveOperationInBuffer'](_0x43c5e5);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x4b4340,_0x427540){const _0x283da0=_0x427540&&_0x427540['message'];if(_0x283da0&&_0x283da0['startsWith']('realtimecollaborationclient'))throw _0x427540;const _0x476896=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x476896['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x71eab6(_0x4b4340,this['editor'],_0x283da0?{'originalError':_0x283da0}:void 0x0);}['_saveOperationInBuffer'](_0x4f5d2d){this['_knownOperations']['has'](_0x4f5d2d)||(this['_knownOperations']['add'](_0x4f5d2d),this['_bufferedOperations']['push'](_0x4f5d2d),this['_pendingAction']||'marker'==_0x4f5d2d['type']&&!_0x4f5d2d['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x27dfec=!0x1){!_0x27dfec&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x29e3fe=>{_0x29e3fe&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x153857=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x5cea4f){return _0x5cea4f['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x5cea4f['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x5cea4f['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x153857)||this['_crash'](_0x153857['message'],_0x153857);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x5f2c15=>{this['on']('change:_isPendingUpdate',()=>{_0x5f2c15();});});}async['_sendBufferedOperations'](){const _0x364cbb=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x364cbb['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x19b6e8=[...this['_bufferedOperations']];for(const _0x55a2b7 of _0x19b6e8)_0x55a2b7['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x55a2b7);const _0x1e57d9=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x19b6e8),_0x26d7c8=J++,_0x5314d3=this['_compressOperations'](_0x19b6e8),_0x3f13f6=await this['_service']['sendOperations'](_0x5314d3,_0x5314d3['baseVersion'],_0x1e57d9);try{return await this['_handleServerResponse'](_0x19b6e8,_0x3f13f6,_0x26d7c8);}catch(_0x501c21){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x501c21);}}async['_handleServerResponse'](_0x478011,_0x25a3ef,_0x1d044e){if('error'in _0x25a3ef)throw _0x25a3ef['error'];let _0x260b73=!0x1;if(_0x25a3ef['wereChangesApplied']){_0x25a3ef['lastOperationId']&&(this['_lastSyncedOperationId']=_0x25a3ef['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x1afc6d=>!_0x478011['includes'](_0x1afc6d));for(const _0x4a07cc of _0x478011)_0x4a07cc['createdAt']='lastOperationAcceptedAt'in _0x25a3ef&&_0x25a3ef['lastOperationAcceptedAt']||void 0x0;Q(_0x478011,_0x25a3ef['version']-_0x478011['length']),this['_updateServerHistory'](_0x478011);const _0x2b25be=_0x478011['filter'](_0x3e46fc=>{if(!_0x3e46fc['_isInit'])return!0x1;const _0x426763=this['_getAffectedRoot'](_0x3e46fc);return _0x426763&&!this['_knownRootNames']['has'](_0x426763);});Q(_0x2b25be,this['_document']['version']),this['_applyOperationsSet'](_0x2b25be),_0x260b73=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x4b98e9=this['_decompressOperations'](_0x25a3ef['data'],_0x25a3ef['metadata'])['filter'](_0xed7b7f=>_0xed7b7f['baseVersion']>=this['_lastServerVersion']);_0x4b98e9['forEach'](_0x1627f5=>this['_addKnownRoot'](_0x1627f5)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x35e003=>!_0x35e003['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x35e003))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x4b98e9),_0x260b73=this['_handleExternalOperations'](_0x4b98e9,_0x25a3ef['version'],_0x25a3ef['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x260b73?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x15af88,_0x1696c9,_0x301531){try{const _0x47a664={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x5cf6d4,operationsB:_0x5c4368,originalOperations:_0x6cad08}=_0x241ccf(_0x15af88,this['_bufferedOperations'],_0x47a664);Q(_0x5cf6d4,this['_document']['version']),Q(_0x5c4368,_0x1696c9);for(const _0x385f21 of _0x5cf6d4){const _0x3d6ef3=_0x6cad08['get'](_0x385f21);_0x385f21['_authorId']=_0x3d6ef3?_0x3d6ef3['_authorId']:null;}_0x301531&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x15af88,_0x301531),this['_lastSyncedOperationId']=_0x301531),this['_bufferedOperations']=[..._0x5c4368],this['_applyOperationsSet'](_0x5cf6d4),this['_updateServerHistory'](_0x15af88);}catch(_0x2895f8){return console['error'](_0x2895f8),!0x1;}return!0x0;}['_applyOperationsSet'](_0x550680,_0x452810=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x3d3e34=>{for(const _0x25092a of _0x550680)this['_knownOperations']['add'](_0x25092a),this['_addKnownRoot'](_0x25092a),_0x3d3e34['batch']['addOperation'](_0x25092a),this['editor']['model']['applyOperation'](_0x25092a);});}['_addKnownRoot'](_0x1b7947){const _0x678ca5=this['_getAffectedRoot'](_0x1b7947);_0x678ca5&&this['_knownRootNames']['add'](_0x678ca5);}['_getAffectedRoot'](_0x31defa){let _0x1e7f92,_0x2f2e3a;switch(_0x31defa['type']){case'insert':_0x1e7f92=_0x31defa['position']['root'];break;case'marker':if(_0x2f2e3a=_0x31defa['newRange'],!_0x2f2e3a)return null;_0x1e7f92=_0x2f2e3a['root'];break;case'addRootAttribute':_0x1e7f92=_0x31defa['root'];break;case'addRoot':_0x1e7f92=_0x31defa['affectedSelectable'];break;case'move':_0x1e7f92=_0x31defa['targetPosition']['root'];break;default:return null;}return _0x1e7f92['rootName'];}['_updateServerHistory'](_0x2bc27d){_0x2bc27d['forEach'](_0x581271=>{const _0x137867=_0x581271['clone']();_0x137867['_authorId']=_0x581271['_authorId'],_0x137867['_isInit']=!!_0x581271['_isInit'],_0x137867['createdAt']=_0x581271['createdAt'],_0x137867['baseVersion']+=this['_offset'],_0x581271['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x137867),this['serverHistory']['addOperation'](_0x137867);});}['_handleReconnectionError'](_0x11beb0){const _0x4001d7=this['editor']['plugins']['get']('Notification'),_0x50fb4a=this['editor']['locale'];_0x11beb0||(_0x11beb0=K(_0x50fb4a,'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.')),_0x4001d7['showWarning'](_0x11beb0,{'title':K(_0x50fb4a,'Synchronization\x20issue'),'namespace':'real-time-collaboration'}),this['_hasSynchronizationProblem']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_bufferedOperations']=[],this['editor']['plugins']['get'](WebSocketGateway)['disconnect']();}['_setPendingAction'](){this['_pendingAction']||(this['_pendingAction']=this['editor']['plugins']['get'](_0x3c80a1)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x3c80a1)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x140c1c){const _0x41a180=_0x140c1c['map'](_0x1d71bd=>_0x1d71bd['toJSON']());return this['_compressor']['compress'](_0x41a180);}['_decompressOperations'](_0x145886,_0x488f33){return this['_compressor']['decompress'](_0x145886)['map']((_0x1e176a,_0x16f1a2)=>{const _0x371619='init'==_0x488f33[_0x16f1a2]['type'];if('InsertOperation'==_0x1e176a['__className']){const _0x41f34b=_0x1e176a['position']['root'];!this['_document']['getRoot'](_0x41f34b)&&(this['_document']['createRoot']('$unknown',_0x41f34b)['_isAttached']=!0x1);}else{if('RootOperation'==_0x1e176a['__className']){const _0x4fe84c=this['_document']['getRoot'](_0x1e176a['rootName']);_0x4fe84c&&'$unknown'==_0x4fe84c['name']&&_0x1e176a['elementName']!=_0x4fe84c['name']&&(_0x4fe84c['name']=_0x1e176a['elementName']);}}const _0x451f8f=_0x1ea6fa['fromJSON'](_0x1e176a,this['_document']);return _0x451f8f['wasUndone']=_0x1e176a['wasUndone'],_0x451f8f['_isInit']=_0x371619,_0x451f8f['_authorId']=_0x371619?null:_0x488f33[_0x16f1a2]['userId'],_0x451f8f['_isDisconnection']='cs:removeUser'===_0x488f33[_0x16f1a2]['type'],_0x451f8f['createdAt']=_0x488f33[_0x16f1a2]['createdAt'],_0x451f8f;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x1f03f5=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x1f03f5&&_0x1f03f5['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x276a66,_0x37a52a){for(const _0x3643c7 of _0x276a66)_0x3643c7['baseVersion']=_0x37a52a++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x49fa76){this['_ignoredOperations']=_0x49fa76,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x1086e0){let _0x4f0c76=_0x1086e0['length'];for(;_0x4f0c76--;){const _0x17a415=_0x1086e0[_0x4f0c76];if(!this['_ignoredOperations']['has'](_0x17a415)){if(!this['_operationToId']['has'](_0x17a415)){const _0x1d6846=_0x1b2b49()['slice'](0x1,0x12);this['_operationToId']['set'](_0x17a415,_0x1d6846);}return this['_operationToId']['get'](_0x17a415);}}}['setIdForTheLastOperation'](_0x4b7b75,_0x3db72e){if(!_0x3db72e)return;let _0x5be3a6=_0x4b7b75['length'];for(;_0x5be3a6--;){const _0x342e33=_0x4b7b75[_0x5be3a6];this['_ignoredOperations']['has'](_0x342e33)||this['_operationToId']['set'](_0x342e33,_0x3db72e);}}}class RealTimeCollaborativeEditing extends _0xa8b5d6{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x1ab0c4{static ['CommentsService']=/* #__PURE__ -- @preserve */
|
|
26
|
-
((()=>_0x5ec125)());['_services'];static get['requires'](){return[WebSocketGateway,_0xb43395,Sessions,_0x39f5d8];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0xce9dc2){super(_0xce9dc2),this['_services']=new Map();}async['init'](){const _0x182189=this['context'],_0x181b31=_0x182189['plugins']['get'](_0xb43395);if(_0x182189['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x181b31['adapter']={'addCommentThread':async({channelId:_0x48615e,threadId:_0x293fe7,comments:_0x1c5090,resolvedAt:_0x47188b,resolvedBy:_0xd4e7e6,context:_0x3ba9eb,attributes:_0x5634b8})=>{const _0x170ab4=await this['_getService'](_0x48615e)['addCommentThread']({'commentThreadId':_0x293fe7,'comments':_0x1c5090['map'](_0xa2404e=>function(_0x5c7861,_0x542fdc,_0x22ea26){return{'commentThreadId':_0x22ea26,'commentId':_0x5c7861['commentId'],'userId':_0x5c7861['authorId'],'content':_0x5c7861['content'],'documentId':_0x542fdc,'createdAt':_0x5c7861['createdAt'],'attributes':_0x5c7861['attributes']||{}};}(_0xa2404e,_0x48615e,_0x293fe7)),'resolvedAt':_0x47188b,'resolvedBy':_0xd4e7e6,'context':_0x3ba9eb,'attributes':_0x5634b8})['catch'](Z);return{'threadId':_0x170ab4['commentThreadId'],'comments':_0x170ab4['comments']};},'getCommentThread':async({channelId:_0x4dbacc,threadId:_0x5d7b15})=>{const _0x10ec9f=await this['_getService'](_0x4dbacc)['getCommentThread'](_0x5d7b15)['catch'](X)['catch'](Z);return _0x10ec9f?_0x10ec9f['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x10ec9f]),{'threadId':_0x10ec9f['commentThreadId'],'comments':_0x10ec9f['comments']['map'](tt),'context':_0x10ec9f['context'],'resolvedAt':_0x10ec9f['resolvedAt'],'resolvedBy':_0x10ec9f['resolvedBy'],'attributes':_0x10ec9f['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x1166b3,threadId:_0x3a0f36,context:_0x4f78be,unlinkedAt:_0x1ecea9,attributes:_0x422c2b})=>this['_getService'](_0x1166b3)['updateCommentThread']({'commentThreadId':_0x3a0f36,'context':_0x4f78be,'attributes':_0x422c2b,'unlinkedAt':_0x1ecea9})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x1d65e6,threadId:_0x218598})=>{const _0x1fb71c=await this['_getService'](_0x1d65e6)['resolveCommentThread'](_0x218598)['catch'](X)['catch'](Z);return{'threadId':_0x1fb71c['commentThreadId'],'resolvedAt':_0x1fb71c['resolvedAt'],'resolvedBy':_0x1fb71c['resolvedBy']};},'reopenCommentThread':async({channelId:_0x4dff8d,threadId:_0x4939cc})=>this['_getService'](_0x4dff8d)['reopenCommentThread'](_0x4939cc)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x4339ed,threadId:_0x48ec07})=>this['_getService'](_0x4339ed)['removeCommentThread'](_0x48ec07)['catch'](X)['catch'](Z),'addComment':({channelId:_0xe6c1a6,threadId:_0x2ee36d,commentId:_0x2ae978,content:_0x132d53,attributes:_0x2aabcf})=>this['_getService'](_0xe6c1a6)['addComment'](_0x2ee36d,_0x2ae978,_0x132d53,_0x2aabcf)['catch'](Z),'updateComment':({channelId:_0x596def,threadId:_0x5ca6b4,commentId:_0x915c92,content:_0x44867b,attributes:_0x1c0568})=>this['_getService'](_0x596def)['updateComment'](_0x5ca6b4,_0x915c92,_0x44867b,_0x1c0568)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x323fb0,threadId:_0x179aab,commentId:_0x2dfddb})=>this['_getService'](_0x323fb0)['removeComment'](_0x179aab,_0x2dfddb)['catch'](X)['catch'](Z)},_0x182189 instanceof _0xada907){const _0x18452c=_0x182189['config']['get']('collaboration.channelId'),_0x34aed6=_0x182189['plugins']['get'](Sessions);await this['_setUpService'](_0x18452c);const _0x2eeaa8=await this['_services']['get'](_0x18452c)['getConnectedSessions']();this['listenTo'](_0x34aed6,'sessionAdd:'+_0x18452c,(_0x4efbf4,{session:_0x59271b})=>{_0x59271b['id']===_0x34aed6['mySessionId']&&(_0x4efbf4['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x59271b['permissions'],_0x18452c));}),_0x34aed6['register'](_0x18452c,_0x2eeaa8);}}async['_setUpService'](_0x326c55){if(this['_services']['has'](_0x326c55))throw new _0x71eab6('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x326c55});const _0x9cd693=this['context']['plugins']['get'](_0xb43395),_0x304270=new CloudServicesCommentsAdapter['CommentsService'](_0x326c55);this['_services']['set'](_0x326c55,_0x304270),this['listenTo'](_0x304270,'commentThreadAdded',(_0x10a7b8,_0x4c15a6)=>{const {commentThreadId:_0x3c79d6,documentId:_0x1e1b9b,context:_0x1eff1a,attributes:_0x4107dc,resolvedAt:_0x15a5d6,resolvedBy:_0x29e92c,comments:_0x59adb5}=_0x4c15a6;_0x9cd693['getCommentThread'](_0x3c79d6)||_0x9cd693['addCommentThread']({'threadId':_0x3c79d6,'channelId':_0x1e1b9b,'comments':_0x59adb5?_0x59adb5['map'](tt):[],'context':_0x1eff1a,'attributes':_0x4107dc,'resolvedAt':_0x15a5d6,'resolvedBy':_0x29e92c,'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadUpdated',(_0x2ce6ea,{commentThreadId:_0x85e5b0,documentId:_0x118714,context:_0x1cd15d,unlinkedAt:_0x1ee2f0,attributes:_0x413844})=>{_0x9cd693['getCommentThread'](_0x85e5b0)&&_0x9cd693['updateCommentThread']({'threadId':_0x85e5b0,'channelId':_0x118714,'context':_0x1cd15d,'unlinkedAt':_0x1ee2f0,'attributes':_0x413844,'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadResolved',(_0x1f2f00,{commentThreadId:_0x108c8f,resolvedBy:_0xd800da,resolvedAt:_0x173016})=>{const _0x4860a0=_0x9cd693['getCommentThread'](_0x108c8f);_0x4860a0&&_0x4860a0['resolve']({'resolvedBy':_0xd800da,'resolvedAt':_0x173016,'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadReopened',(_0x156b1c,{commentThreadId:_0x49d2fe})=>{const _0x209f7a=_0x9cd693['getCommentThread'](_0x49d2fe);_0x209f7a&&_0x209f7a['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentThreadRemoved',(_0x406664,{commentThreadId:_0x34c1a5})=>{const _0x1a9318=_0x9cd693['getCommentThread'](_0x34c1a5);_0x1a9318&&_0x1a9318['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentAdded',(_0x5439fd,_0x2e605d)=>{const _0x1b176a=_0x2e605d['commentThreadId'],_0x56c5af=_0x9cd693['getCommentThread'](_0x1b176a);_0x56c5af&&_0x56c5af['addComment']({...tt(_0x2e605d),'isFromAdapter':!0x0});}),this['listenTo'](_0x304270,'commentUpdated',(_0x50706b,{commentThreadId:_0x192c08,commentId:_0xaf84a1,content:_0x50d9d9,attributes:_0x286860})=>{const _0x367f13=_0x9cd693['getCommentThread'](_0x192c08);if(_0x367f13){const _0x13c470=_0x367f13['getComment'](_0xaf84a1);_0x13c470&&_0x13c470['update']({'content':_0x50d9d9,'attributes':_0x286860,'isFromAdapter':!0x0});}}),this['listenTo'](_0x304270,'commentRemoved',(_0x53121c,{commentThreadId:_0x3b89ae,commentId:_0x555d15})=>{const _0x36aed3=_0x9cd693['getCommentThread'](_0x3b89ae);if(_0x36aed3){const _0x17c05f=_0x36aed3['getComment'](_0x555d15);_0x17c05f&&_0x17c05f['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x326c55);}['destroy'](){if(this['context']instanceof _0xada907){const _0x502136=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x502136);}}['_terminateService'](_0x4f33af){if(!this['_services']['has'](_0x4f33af))throw new _0x71eab6('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x4f33af});this['_getService'](_0x4f33af)['disconnect'](),this['_services']['delete'](_0x4f33af);}async['reconnect'](){for(const _0x5e65e0 of this['_services']['keys']())await this['_connectService'](_0x5e65e0);if(this['context']instanceof _0xada907){const _0x49d8f1=this['context']['config']['get']('collaboration.channelId'),_0x3412aa=this['context']['plugins']['get'](Sessions);_0x3412aa['unregister'](_0x49d8f1);const _0x5391c4=await this['_services']['get'](_0x49d8f1)['getConnectedSessions']();_0x3412aa['register'](_0x49d8f1,_0x5391c4);}}async['_connectService'](_0x28e4b6){const {connection:_0x278583}=this['context']['plugins']['get'](WebSocketGateway),_0x1c246d=this['context']['plugins']['get'](_0xb43395),_0x1c955c=this['_services']['get'](_0x28e4b6),_0x3c4cf3=await _0x1c955c['connect'](_0x278583);await this['_fetchMissingUsersForThreads'](_0x3c4cf3);const _0x5e4b23=new Set(Array['from'](_0x1c246d['getCommentThreads']({'channelId':_0x28e4b6}),_0xb7f57e=>_0xb7f57e['id']));for(const _0x530a04 of _0x3c4cf3)_0x530a04['deletedAt']||_0x5e4b23['delete'](_0x530a04['commentThreadId']);for(const _0x1f2b19 of _0x5e4b23)_0x1c246d['getCommentThread'](_0x1f2b19)['remove']({'isFromAdapter':!0x0});for(const _0x50a3da of _0x3c4cf3){let _0x99c792=_0x1c246d['getCommentThread'](_0x50a3da['commentThreadId']);const {commentThreadId:_0x3daab5,context:_0x53f63a,attributes:_0x156593,resolvedBy:_0x3cc944,resolvedAt:_0x28a7a7,unlinkedAt:_0x2ae88a,deletedAt:_0x11d276}=_0x50a3da;if(_0x11d276)continue;_0x99c792||(_0x99c792=_0x1c246d['addCommentThread']({'channelId':_0x28e4b6,'threadId':_0x3daab5,'context':_0x53f63a,'attributes':_0x156593||{},'resolvedBy':_0x3cc944,'resolvedAt':_0x28a7a7,'unlinkedAt':_0x2ae88a,'isFromAdapter':!0x0}));const _0x48b01b=new Set(Array['from'](_0x99c792['comments'],_0x1bc9ab=>_0x1bc9ab['id']));for(const _0x3679bc of _0x50a3da['comments'])_0x48b01b['delete'](_0x3679bc['commentId']);for(const _0x384412 of _0x48b01b)_0x99c792['getComment'](_0x384412)['remove']({'isFromAdapter':!0x0});for(const _0x3535bf of _0x50a3da['comments']){const _0x2fee7c=_0x99c792['getComment'](_0x3535bf['commentId']);_0x2fee7c?_0x2fee7c['content']!==_0x3535bf['content']&&_0x2fee7c['update']({'content':_0x3535bf['content'],'isFromAdapter':!0x0}):_0x99c792['addComment'](Object['assign'](tt(_0x3535bf),{'isFromAdapter':!0x0}));}}}['_getService'](_0x1f7db7){if(!this['_services']['has'](_0x1f7db7))throw new _0x71eab6('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x1f7db7});return this['_services']['get'](_0x1f7db7);}async['_fetchMissingUsersForThreads'](_0x2cde65){const _0x84c2f=this['context']['plugins']['get'](_0x39f5d8),{connection:_0x4f2c15}=this['context']['plugins']['get'](WebSocketGateway),_0x367a02=new Set();for(const {resolvedBy:_0x780c82,comments:_0x483518}of _0x2cde65){_0x780c82&&!_0x84c2f['getUser'](_0x780c82)&&_0x367a02['add'](_0x780c82);for(const {userId:_0x54794d}of _0x483518)_0x84c2f['getUser'](_0x54794d)||_0x367a02['add'](_0x54794d);}if(0x0===_0x367a02['size'])return;const _0x50d8f1=await _0x4e51b9['getMany'](_0x4f2c15,Array['from'](_0x367a02));for(const _0x3af34f of _0x50d8f1)_0x84c2f['getUser'](_0x3af34f['id'])||_0x84c2f['addUser'](_0x3af34f);}}async function X(_0x5ae59b){if('404'!==_0x5ae59b['code'])throw _0x5ae59b;}function Z(_0x2256d8){if((_0x542f6a=_0x2256d8)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x542f6a['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x542f6a['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x542f6a;throw _0x2256d8;}function tt(_0x131b67){return{'threadId':_0x131b67['commentThreadId'],'commentId':_0x131b67['commentId'],'content':_0x131b67['content'],'createdAt':_0x131b67['createdAt'],'authorId':_0x131b67['userId'],'attributes':_0x131b67['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0xa8b5d6{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
|
|
27
|
-
((()=>
|
|
28
|
-
((()=>_0xa09a6c)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x312c1b,Sessions,_0x39f5d8];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x451bda){super(_0x451bda);const _0x292fef=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x292fef);}async['init'](){const _0x3346cb=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x1f0bc7=_0x3346cb['serverHistory'],_0x507517=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x1f0bc7,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x3346cb['sessionId']});const _0x5da9ae=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x858cb6,_0x342453=await _0x29a061['isBundleUploaded'](_0x507517['connection'],_0x5da9ae);this['editor']['plugins']['get'](_0x312c1b)['adapter']={'getRevision':async({revisionId:_0x4a1fc0})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x4a1fc0)),'updateRevisions':async _0xbb8ca6=>{await this['_waitForServiceReady']();const _0x158dcb=this['_revisionTracker']['currentRevision'];if(_0x342453&&0x1===_0xbb8ca6['length']&&_0xbb8ca6[0x0]['id']===_0x158dcb['id'])return _0xbb8ca6;for(const _0x3a92c3 of _0xbb8ca6)_0x3a92c3['id']===_0x158dcb['id']&&(_0x3a92c3['isEmptyCurrent']=_0x3a92c3['fromVersion']===_0x3a92c3['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0xbb8ca6,this['_lastRequestId'])['then'](_0x34b8bd=>(this['_lastRequestId']=_0x34b8bd,_0xbb8ca6))['catch'](_0x3bd4d3=>{if(it(_0x3bd4d3)||'400'===_0x3bd4d3['code']&&void 0x0!==_0x3bd4d3['data']['wrongRequestId']){for(const _0xd07395 of _0xbb8ca6){!this['_revisionTracker']['repository']['getRevision'](_0xd07395['id'])||this['_revisionTracker']['_bufferUpdate'](_0xd07395['id'],_0xd07395,!0x1);}if(it(_0x3bd4d3)&&'destroyed'!==this['editor']['state'])throw _0x3bd4d3;return _0xbb8ca6;}throw _0x3bd4d3;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x52bb8,{revisionsData:_0x4ec5a0,requestId:_0x5402a1})=>{Math['max'](..._0x4ec5a0['map'](_0x1d57d9=>_0x1d57d9['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x4ec5a0,_0x5402a1);}):this['_handleRevisionsUpdate'](_0x4ec5a0,_0x5402a1);});const {revisions:_0x2b81ee,requestId:_0x9c08f0}=await this['_revisionHistoryService']['connect'](_0x507517['connection']);_0x507517['addToReconnectionStack'](this),this['_lastRequestId']=_0x9c08f0,await this['_fetchMissingUsers'](_0x2b81ee);for(const _0x1d557c of _0x2b81ee)this['_revisionTracker']['addRevisionData'](_0x1d557c);this['listenTo'](_0x3346cb,'change:_isConnected',(_0x5dbf12,_0xc745e7,_0x4349e3)=>{_0x4349e3&&(this['_oldOffset']=_0x3346cb['_offset'],_0x5dbf12['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x507517,'state',_0x287345=>_0x287345===_0x4b45bf['CONNECTED']);}async['reconnect'](){const _0x2f1049=this['editor']['plugins']['get'](WebSocketGateway),_0x5d8511=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x4aedb2=async()=>{const _0x1eda36=this['_revisionTracker']['currentRevision'],_0x7536=_0x1eda36['id'],_0xc846bf=_0x7536!==_0x5d8511['sessionId'];if(_0xc846bf){const _0xd6e946=_0x5d8511['_offset']-this['_oldOffset'],_0x5400b5=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x1eda36['toVersion']+_0xd6e946!==_0x5400b5){const _0x2735cb=_0x1eda36['fromVersion']+_0xd6e946,_0x4347c8=this['editor']['plugins']['get'](_0x39f5d8),_0x4c3ae1=this['_revisionTracker']['buildRevisionData']({'revision':_0x1eda36,'from':_0x2735cb,'to':_0x5400b5});_0x4c3ae1['id']=_0x1eda36['id'];const _0x40e0c5=_0x4c3ae1['authorsIds']['map'](_0xc3e80e=>_0x4347c8['getUser'](_0xc3e80e));_0x1eda36['_update']({..._0x4c3ae1,'authors':_0x40e0c5},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x1eda36['id'],_0x4c3ae1,!0x0);}this['_revisionTracker']['_startingVersion']=_0x5400b5,(_0x1eda36['toVersion']===_0x1eda36['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x7536)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x7536),this['_revisionTracker']['_createCurrentRevision'](_0x5400b5));}const {revisions:_0x29943f,requestId:_0x1d565f}=await this['_revisionHistoryService']['reconnect'](_0x2f1049['connection'],this['_lastRequestId']);_0xc846bf&&_0x29943f['length']>0x0?_0x5d8511['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x29943f),this['_handleRevisionsUpdate'](_0x29943f,_0x1d565f),this['_revisionTracker']['sendBufferedUpdates']());};return _0x5d8511['_isConnected']?_0x4aedb2():new Promise((_0x26e8d1,_0x6e2c21)=>{_0x5d8511['once']('change:_isConnected',()=>{_0x4aedb2()['then'](_0x26e8d1)['catch'](_0x6e2c21);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x211796=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x6ef6d7=>{_0x6ef6d7['off'](),_0x211796();});});}['_getLatestVersionFromServerOperations'](){const _0x56a83e=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x3c66f0 of _0x56a83e)if('marker'!==_0x3c66f0['type']||_0x3c66f0['affectsData'])return _0x3c66f0['baseVersion']+0x1;}['_getLatestVersion'](){const _0x3073a1=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x56bce9=>{_0x3073a1['_isPendingUpdate']?_0x3073a1['once']('change:_isPendingUpdate',()=>{_0x56bce9(this['_getLatestVersionFromServerOperations']());}):_0x56bce9(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x4bca89,_0x2256e2){const _0x35540e=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x2256e2;for(const _0x287cfb of _0x4bca89){const _0xcafaff=_0x35540e['getRevision'](_0x287cfb['id']);if(_0xcafaff){if((_0x287cfb['fromVersion']||_0x287cfb['toVersion'])&&(_0x287cfb['diffData']=null),_0xcafaff===this['_revisionTracker']['currentRevision']){const _0x20097a=Math['max'](_0xcafaff['toVersion'],_0x287cfb['toVersion']),_0x1d070e=Math['max'](_0xcafaff['fromVersion'],_0x287cfb['fromVersion']);let _0x2fb86a;_0xcafaff['toVersion']===_0x287cfb['toVersion']&&_0xcafaff['fromVersion']===_0x287cfb['fromVersion']?(_0x2fb86a=!0x0,this['_preventResendingRevisionData'](_0x287cfb)):_0x287cfb['toVersion']===_0x20097a&&_0x287cfb['fromVersion']===_0x1d070e?_0x2fb86a=!0x1:(_0xcafaff['toVersion']===_0x20097a&&_0xcafaff['fromVersion']===_0x1d070e||this['_fixRevision']({'revision':_0xcafaff,'from':_0x1d070e,'to':_0x20097a}),_0x2fb86a=!0x0),_0x2fb86a&&(delete _0x287cfb['fromVersion'],delete _0x287cfb['toVersion'],delete _0x287cfb['diffData'],delete _0x287cfb['createdAt'],delete _0x287cfb['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x287cfb),this['_preventResendingRevisionData'](_0x287cfb);}else this['_revisionTracker']['addRevisionData'](_0x287cfb);}const _0x4fa6de=_0x35540e['getRevisions']();_0x4fa6de['reverse']();for(let _0x445467=0x0;_0x445467<_0x4fa6de['length']-0x1;_0x445467++){const _0x28785f=_0x4fa6de[_0x445467],_0x10efa9=_0x4fa6de[_0x445467+0x1];if(_0x28785f['fromVersion']<_0x10efa9['toVersion']){const _0x1b0a8f=_0x10efa9['toVersion'],_0x1dca85=Math['max'](_0x1b0a8f,_0x28785f['toVersion']);this['_fixRevision']({'revision':_0x28785f,'from':_0x1b0a8f,'to':_0x1dca85});}}}['_fixRevision']({revision:_0x5aa50f,from:_0x45ae27,to:_0x1f3e2d}={}){const _0x2718b4=this['editor']['plugins']['get'](_0x39f5d8),_0x3b1a47=this['_revisionTracker']['buildRevisionData']({'revision':_0x5aa50f,'from':_0x45ae27,'to':_0x1f3e2d});_0x3b1a47['authors']=_0x3b1a47['authorsIds']['map'](_0x137d2f=>_0x2718b4['getUser'](_0x137d2f)),_0x5aa50f['_update'](_0x3b1a47);}['_preventResendingRevisionData'](_0x440e35){const _0x12c53a={};_0x12c53a['id']=_0x440e35['id'];for(const _0x1d19c5 of Object['keys'](_0x440e35))'id'!==_0x1d19c5&&(_0x12c53a[_0x1d19c5]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x12c53a['id'],_0x12c53a,!0x0);}async['_fetchMissingUsers'](_0x380e80){const _0x56d690=this['editor']['plugins']['get'](_0x39f5d8),{connection:_0x5eea69}=this['editor']['plugins']['get'](WebSocketGateway),_0x5dedfa=new Set();for(const _0x1c3ed0 of _0x380e80){for(const _0x46b814 of _0x1c3ed0['authorsIds'])_0x7bdae3(_0x46b814);_0x1c3ed0['creatorId']&&_0x7bdae3(_0x1c3ed0['creatorId']);}if(0x0===_0x5dedfa['size'])return;const _0x4b8913=await _0x4e51b9['getMany'](_0x5eea69,Array['from'](_0x5dedfa));for(const _0x40c3a0 of _0x4b8913)_0x56d690['getUser'](_0x40c3a0['id'])||_0x56d690['addUser'](_0x40c3a0);function _0x7bdae3(_0xae823f){_0x56d690['getUser'](_0xae823f)||_0x5dedfa['add'](_0xae823f);}}}function it(_0x3d9527){return _0x3d9527['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x3d9527['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x3d9527['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0xa8b5d6{static get['requires'](){return[_0x312c1b,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0xf9dd42{['_collapseAt'];constructor(_0xa799ca,_0x1bb204=0x6){super(_0xa799ca);const _0x46e56b=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x1bb204,this['bind']('isHidden')['to'](this,'usersCount',_0xd2c466=>_0xd2c466<_0x1bb204),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x46e56b['if']('isHidden','ck-presence-list__counter--hidden')],'role':'listitem'},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter']},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter__text']},'children':[{'text':_0x46e56b['to']('usersCount',_0xcc10e1=>'+'+(_0xcc10e1-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0xf9dd42{['items'];['keystrokes'];constructor(_0x437960){super(_0x437960);const _0x32bf87=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x2a5d42(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x32bf87['if']('hasPopup'),'aria-expanded':_0x32bf87['to']('isExpanded',_0x977ba4=>this['hasPopup']&&String(_0x977ba4)),'aria-label':_0x32bf87['to']('hasPopup',_0x4560d8=>K(_0x437960,_0x4560d8?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x32bf87['to']('hasPopup',_0x1a2496=>!!_0x1a2496&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x32bf87['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x32bf87['to'](_0x5dcae3=>{const _0x4686a3=_0x5dcae3,_0x3feb53=document['querySelector']('.ck-presence-list__dropdown-list'),_0xee7d35=document['querySelector']('.ck-balloon-panel_with-arrow');_0x3feb53?.['contains'](_0x4686a3['relatedTarget'])||_0xee7d35?.['contains'](_0x4686a3['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x356d08,_0x42e706,_0x4a7460)=>{this['element']&&(_0x4a7460?this['element']['setAttribute']('aria-expanded',String(this['isExpanded'])):this['element']['removeAttribute']('aria-expanded'));});}['focus'](){this['element']['focus']();}['render'](){super['render'](),this['keystrokes']['listenTo'](this['element']);}}class PresenceListView extends _0xf9dd42{['counterView'];['inlineListView'];constructor(_0x54982b,_0x5574ba=0x6){super(_0x54982b);const _0x4f0567=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x5574ba),this['inlineListView']=new PresenceInlineListView(_0x54982b),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x4ac470 of this['inlineListView']['items'])_0x4ac470['tooltipPosition']='s';this['inlineListView']['items']['first']&&(this['inlineListView']['items']['first']['tooltipPosition']='se');}),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list','ck-reset','ck-rounded-corners',_0x4f0567['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0xf9dd42{['listWrapperView'];constructor(_0x3da719,_0x509d04){super(_0x3da719);const _0xcc9823=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x3da719,_0x509d04),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x3da719,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0xcc9823['to'](_0x860788=>{const _0x59702b=_0x860788,_0x4ce0e7=document['querySelector']('.ck-presence-list__list'),_0x147970=document['querySelector']('.ck-balloon-panel_with-arrow');_0x4ce0e7?.['contains'](_0x59702b['relatedTarget'])||_0x147970?.['contains'](_0x59702b['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x24c869{constructor(_0x1f8ea8,_0x13ff76){super(_0x1f8ea8);const _0x290f2f=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x13ff76?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x290f2f['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x290f2f['to']('role'),'aria-label':_0x290f2f['to']('ariaLabel'),'aria-labelledby':_0x290f2f['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x47d9e9['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x6720c1=this['element'];_0x6720c1&&(this['_isScrollable']=Math['max'](_0x6720c1['scrollHeight'],_0x6720c1['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x58b41f{['userView'];constructor(_0x1a2cb5,_0x110c3f,_0x2fbcff){super(_0x1a2cb5);const _0x14d108=this['bindTemplate'];this['userView']=new _0x2fc51c(_0x1a2cb5,_0x110c3f);const _0x113344={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x110c3f['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x110c3f['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x110c3f['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x110c3f['color']['getColorVariable'](),'--ck-user-color-alpha':_0x110c3f['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x2fbcff&&(_0x113344['tag']='button',_0x113344['on']={'click':_0x14d108['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x113344);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0xf9dd42{['userView'];['markerView'];constructor(_0x2aac38,_0x4426dc,_0x436359){super(_0x2aac38);const _0x78c43e=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x2fc51c(_0x2aac38,_0x4426dc),this['markerView']=new MarkerView(_0x2aac38,_0x4426dc);const _0x57a185=new _0x1c8043(_0x2aac38);_0x57a185['template']['tag']='span',_0x57a185['text']=_0x4426dc['name'];const _0x512b41={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x78c43e['to']('isFocusable',_0xe8f6b1=>!!_0xe8f6b1&&0x0),'aria-labelledby':_0x57a185['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x78c43e['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x78c43e['to']('hasTooltip',_0x7e2b79=>!_0x7e2b79),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x57a185]};_0x436359&&(_0x512b41['tag']='button',_0x512b41['on']={'click':_0x78c43e['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x512b41);}}class MarkerView extends _0xf9dd42{constructor(_0x5e5cb9,_0x2df329){super(_0x5e5cb9),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x2df329['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x2df329['color']['getColorVariable'](),'--ck-user-color-alpha':_0x2df329['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x1ab0c4{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x34921d){super(_0x34921d),this['context']['config']['define']('presenceList',nt);const _0x278b70=_0x34921d['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x278b70)throw new _0x71eab6('presencelist-collapseat-invalid-format',this);if(_0x278b70<0x1)throw new _0x71eab6('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x3fb7b9(),this['balloonPanelView']=new _0x6ecd60(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x551db5 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x551db5);this['listenTo'](this['_allConnectedUsers'],'add',(_0x548b31,_0x491290)=>{this['_handleUserAdd'](_0x491290);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x253027,_0x271701)=>{this['_handleUserRemove'](_0x271701);});}['_createView'](){const _0x59c4ba=this['context'],_0x13b00b=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x431e40=this['balloonPanelView'];if(!_0x412e30(_0x59c4ba['config']['get']('presenceList.container')))throw new _0x71eab6('presencelist-missing-container',this);return _0x13b00b['counterView']['bind']('usersCount')['to'](this),_0x13b00b['bind']('isCollapsed')['to'](this,'usersCount',_0x4145e3=>{const {collapseAt:_0x2e7f37}=_0x59c4ba['config']['get']('presenceList'),_0x4ca89b=_0x4145e3>=_0x2e7f37;if(_0x4ca89b&&!_0x13b00b['inlineListView']['items']['find'](_0x4a8a09=>_0x4a8a09 instanceof PresenceCounterView)){const _0x16f93f=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x16f93f&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x13b00b['inlineListView']['items']['add'](_0x13b00b['counterView']);}return _0x4ca89b||this['hideDropdown'](),_0x4ca89b;}),_0x13b00b['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x197e13=>{const _0x2142d3=_0x59c4ba['config']['get']('presenceList'),_0x4d8906=new PresenceInlineListItemView(_0x59c4ba['locale'],_0x197e13,!!_0x2142d3['onClick']);return _0x4d8906['bind']('hasTooltip')['to'](_0x13b00b,'isCollapsed',_0x338f07=>!_0x338f07),_0x4d8906['bind']('isFocusable')['to'](_0x13b00b,'isCollapsed',_0x494be1=>!_0x494be1),_0x2142d3['onClick']&&this['listenTo'](_0x4d8906,'execute',()=>{this['view']['isCollapsed']||_0x2142d3['onClick'](_0x197e13,_0x4d8906['element']);}),_0x4d8906;}),this['listenTo'](_0x13b00b['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x13b00b['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x13b00b['inlineListView']['keystrokes']['set']('Enter',(_0x2e4ed4,_0x110931)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x110931());}),_0x13b00b['render'](),_0x431e40['render'](),_0xe0e90e({'emitter':_0x13b00b,'activator':()=>_0x431e40['isVisible'],'contextElements':[_0x431e40['element'],_0x13b00b['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x59c4ba['config']['get']('presenceList.container')['appendChild'](_0x13b00b['element']),this['_bodyCollection']=new _0x5691eb(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x13b00b;}['_handleUserAdd'](_0x453d78){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x453d78['isMe'])return;const _0x283e90=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x283e90-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x8a0e4e=_0x453d78['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x453d78,_0x8a0e4e);}['_handleUserRemove'](_0x26607e){this['usersCount']--;const {collapseAt:_0x15832d}=this['context']['config']['get']('presenceList'),_0xd773a5=this['usersCount']>=_0x15832d;if(this['currentDisplayedUsers']['get'](_0x26607e['id']))this['currentDisplayedUsers']['remove'](_0x26607e['id']);else{if(_0xd773a5&&this['currentDisplayedUsers']['length']+0x1===_0x15832d-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0xd773a5?0x1:0x0)<this['usersCount']){for(const _0x1d2959 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x1d2959['id'])&&(this['currentDisplayedUsers']['add'](_0x1d2959,Math['min'](this['currentDisplayedUsers']['length']-(_0xd773a5?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0xd773a5?0x1:0x0)===_0x15832d-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x59a9ba=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x59a9ba['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x11da4b}=this['presenceDropdownView'];_0x11da4b['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x559bde=>{if(!_0x59a9ba['displayMe']&&_0x559bde['isMe'])return null;const _0x2bdf7e=new PresenceDropdownListItemView(this['context']['locale'],_0x559bde,!!_0x59a9ba['onClick']);return _0x59a9ba['onClick']&&this['listenTo'](_0x2bdf7e,'execute',()=>{_0x59a9ba['onClick'](_0x559bde,_0x2bdf7e['element']);}),_0x2bdf7e;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x11da4b['focus'](),_0x11da4b['checkIfScrollable']();const _0x4185c4=(_0x56a6c5,_0x4931da)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x4931da();};_0x11da4b['keystrokes']['set']('Esc',_0x4185c4),_0x11da4b['keystrokes']['set']('Shift+Tab',_0x4185c4),_0x11da4b['keystrokes']['set']('Tab',(_0x8be03c,_0x3ffbed)=>{!function(_0xd4ff7f){const _0x7c0032=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x54a34a=>_0x54a34a+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x20bf0e=[...document['body']['querySelectorAll'](_0x7c0032)]['filter'](_0x2087b5=>_0x2087b5===document['activeElement']||_0x2087b5['offsetWidth']+_0x2087b5['offsetHeight']>0x0)['sort']((_0x3d4796,_0x5e9f66)=>(_0x3d4796['tabIndex']||0x0)-(_0x5e9f66['tabIndex']||0x0)),_0x41a481=_0x20bf0e['indexOf'](_0xd4ff7f),_0x282597=_0x20bf0e[(_0x41a481+0x1)%_0x20bf0e['length']];_0x282597&&_0x282597['focus']();}(this['view']['element']),this['hideDropdown'](),_0x3ffbed();}),_0x11da4b['focusTracker']['add'](this['view']['element']),_0x11da4b['focusTracker']['on']('change:isFocused',(_0x57d982,_0x2f35db,_0x429798)=>{_0x429798||this['hideDropdown']();});}['hideDropdown'](){this['presenceDropdownView']&&(this['view']['inlineListView']['isExpanded']=!0x1,this['balloonPanelView']['unpin'](),this['balloonPanelView']['content']['remove'](this['presenceDropdownView']),this['presenceDropdownView']['destroy'](),this['presenceDropdownView']=void 0x0);}['destroy'](){super['destroy'](),this['view']&&this['view']['isRendered']&&this['view']['destroy'](),this['_bodyCollection']&&(this['_bodyCollection']['detachFromDom'](),this['_bodyCollection']['destroy'](),this['_bodyCollection']=null);}}class PresenceList extends _0x1ab0c4{static get['requires'](){return[Sessions,PresenceListUI];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}export{CloudServicesCommentsAdapter,CloudServicesRevisionHistoryAdapter,CloudServicesTrackChangesAdapter,PresenceList,PresenceListUI,RealTimeCollaborationClient,RealTimeCollaborativeComments,RealTimeCollaborativeEditing,RealTimeCollaborativeRevisionHistory,RealTimeCollaborativeTrackChanges,Sessions,WebSocketGateway};
|
|
23
|
+
import{ContextPlugin as _0xb2e98b,Plugin as _0x3399ad,PendingActions as _0x102644,Context as _0x250b69}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0xa1d399,CKEditorError as _0x1cc85d,Collection as _0x36c9b5,global as _0x22ef6c,version as _0xb80067,uid as _0x46f444,KeystrokeHandler as _0x260cbc}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x1ef4aa,View as _0x461b17,ListView as _0x178ec2,ListItemView as _0x373600,LabelView as _0x4d304a,BalloonPanelView as _0x212c7c,clickOutsideHandler as _0x171c4b,BodyCollection as _0x144898}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0x19d676,History as _0x5d2057,NoOperation as _0x4bd98e,InsertOperation as _0x2e3a70,MarkerOperation as _0x468417,RootAttributeOperation as _0x35d36f,transformOperationSets as _0x37b6f0,OperationFactory as _0x4ad0ad}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x301824}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x3efdcb,WEB_SOCKET_GATEWAY_STATES as _0x3a74ac,CollaborativeEditingService as _0x2660a5,User as _0xeb9635,CommentsService as _0x5ac7b7,TrackChangesService as _0x2a5b56,RevisionHistoryService as _0x38ed0c,EditorService as _0x12985e}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0x110378,UserView as _0x3115e5}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x252856}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x38cfce,TrackChanges as _0x4946b3}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x1503c2,Comments as _0x1c96ee,CommentsEditing as _0x181b81}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x3bca10}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x27aa18}from'es-toolkit/compat';class WebSocketGateway extends _0xb2e98b{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
|
|
24
|
+
((()=>_0x3efdcb)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x301824,_0x1ef4aa];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x29abd7){super(_0x29abd7),this['set']('state',_0x3a74ac['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0xa1d399())();}['init'](){const _0x450a5b=this['context'],_0x1b4315=_0x450a5b['plugins']['get'](_0x301824),_0x49bee4=_0x450a5b['plugins']['get'](_0x1ef4aa);if(!_0x1b4315['token'])throw new _0x1cc85d('websocketgateway-missing-token',this);if(!_0x1b4315['webSocketUrl'])throw new _0x1cc85d('websocketgateway-missing-websocket-url',this);return this['_domEmitter']['listenTo'](window,'offline',()=>this['_isBrowserOffline']=!0x0),this['_domEmitter']['listenTo'](window,'online',()=>this['_isBrowserOffline']=!0x1),this['context']['config']['define']('cloudServices.connectionTimeout',0xa),this['context']['config']['define']('cloudServices.requestTimeout',0x14),WebSocketGateway['WebSocketGateway']['connect'](_0x1b4315['token'],_0x1b4315['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0xee3db8=>{if(this['connection']=_0xee3db8,this['bind']('state')['to'](_0xee3db8,'state',this,'_isBrowserOffline',(_0x47c186,_0x26daa4)=>('connected'!==_0x47c186&&(this['_shouldPluginsReconnect']=!0x0),_0x26daa4||_0x47c186!==_0x3a74ac['CONNECTED']?_0x3a74ac['DISCONNECTED']:this['state']==_0x3a74ac['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x3a74ac['CONNECTING']):_0x3a74ac['CONNECTED'])),this['connection']['on']('error',(_0x40d7c6,_0x13b77d)=>{if('limitExceeded'!==_0x13b77d['code'])throw console['error'](_0x13b77d),new _0x1cc85d('cloudservices-init',null,{'originalError':_0x13b77d});_0x49bee4['showWarning']('The\x20limit\x20of\x20maximum\x20concurrent\x20connections\x20that\x20the\x20collaboration\x20server\x20can\x20handle\x20has\x20been\x20reached.\x20Try\x20opening\x20the\x20document\x20again\x20in\x20a\x20few\x20minutes.\x20Please\x20contact\x20your\x20system\x20administrator\x20if\x20the\x20problem\x20persists.',{'title':'Connected\x20users\x20limit\x20exceeded','namespace':'real-time-collaboration'});}),!_0xee3db8['me'])return new Promise(_0x1cea77=>_0xee3db8['on']('change:me',_0x1cea77));})['catch'](_0x37b86d=>{throw console['error'](_0x37b86d),new _0x1cc85d('cloudservices-init',null,{'originalError':_0x37b86d});});}['addToReconnectionStack'](_0x3278ac){if('function'!=typeof _0x3278ac['reconnect'])throw new _0x1cc85d('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x3278ac))throw new _0x1cc85d('websocketgateway-plugin-already-registered',this,{'name':_0x3278ac['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x3278ac);}['removeFromReconnectionStack'](_0x34475a){this['_reconnectionStack']['delete'](_0x34475a);}['isInReconnectionStack'](_0x478d41){return this['_reconnectionStack']['has'](_0x478d41);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x373400=>_0x373400['reconnect']())))['then'](()=>this['state']=_0x3a74ac['CONNECTED'])['catch'](_0x305f14=>{throw console['error'](_0x305f14),new _0x1cc85d('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0x3a74ac['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0xb2e98b{['channelSessions'];['channelConnectedUsers'];['allConnectedUsers'];['_registeredSessions'];['_uniqueUsersCount'];['_users'];static get['pluginName'](){return'Sessions';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}static get['requires'](){return[WebSocketGateway,_0x110378];}constructor(_0x3ddc08){super(_0x3ddc08),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x36c9b5(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x110378);}['init'](){const _0x3c8873=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0x3c8873,'change:state',(_0xd9637e,_0x29663d,_0x17646a)=>{if('connected'!==_0x17646a)this['channelSessions']['forEach'](_0x3b049f=>_0x3b049f['clear']()),this['channelConnectedUsers']['forEach'](_0x4ddd6b=>_0x4ddd6b['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x40284a,_0xf20479]of this['_registeredSessions'])for(const _0x5aa8d1 of _0xf20479)this['_handleSessionAdd'](_0x40284a,_0x5aa8d1);}}),this['_createUser'](_0x3c8873['connection']['me'],!0x0);}['register'](_0x32de16,_0x461ff5){if(this['_registeredSessions']['has'](_0x32de16))throw new _0x1cc85d('sessions-register-already-registered',null,{'channelId':_0x32de16});this['_registeredSessions']['set'](_0x32de16,_0x461ff5),this['channelSessions']['set'](_0x32de16,new _0x36c9b5()),this['channelConnectedUsers']['set'](_0x32de16,new _0x36c9b5()),this['listenTo'](_0x461ff5,'add',(_0x33eb9f,_0x526e67)=>this['_handleSessionAdd'](_0x32de16,_0x526e67)),this['listenTo'](_0x461ff5,'remove',(_0x486b2e,_0x31d2b3)=>this['_handleSessionRemove'](_0x32de16,_0x31d2b3));for(const _0xd50fe2 of _0x461ff5)this['_handleSessionAdd'](_0x32de16,_0xd50fe2);}['unregister'](_0x3911bf){if(!this['_registeredSessions']['has'](_0x3911bf))throw new _0x1cc85d('sessions-unregister-not-exist',null,{'channelId':_0x3911bf});const _0x2bf195=this['_registeredSessions']['get'](_0x3911bf);this['stopListening'](_0x2bf195);for(const _0x31f516 of _0x2bf195)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x3911bf,_0x31f516);this['_registeredSessions']['delete'](_0x3911bf),this['channelSessions']['delete'](_0x3911bf),this['channelConnectedUsers']['delete'](_0x3911bf);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x5e3308){for(const _0x262df5 of this['channelSessions']['values']())for(const _0x4e2b9b of _0x262df5)if(_0x4e2b9b['id']===_0x5e3308)return _0x4e2b9b['user'];}['getUserSessions'](_0x26205c,_0x50fc91){const _0x520cbe=_0x50fc91?[this['channelSessions']['get'](_0x50fc91)]:this['channelSessions']['values'](),_0x34f218=new Set();for(const _0x24a8ef of _0x520cbe)for(const _0x273384 of _0x24a8ef)_0x273384['user']['id']===_0x26205c['id']&&_0x34f218['add'](_0x273384['id']);return _0x34f218;}['getUserRole'](_0x2de062){for(const _0x4271a9 of this['channelSessions']['values']())for(const _0x703ca7 of _0x4271a9)if(_0x703ca7['user']===_0x2de062)return _0x703ca7['role'];}['_handleSessionAdd'](_0x4515ab,_0x298dc8){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x4b920b=_0x298dc8['user'],_0x14af43=this['_users']['getUser'](_0x4b920b['id'])||this['_createUser'](_0x4b920b),_0x39086f=Object['assign']({},_0x298dc8,{'user':_0x14af43});if(this['channelSessions']['get'](_0x4515ab)['add'](_0x39086f),!_0x4b920b['hiddenInPresenceList']){const _0x2533f9=this['channelConnectedUsers']['get'](_0x4515ab);_0x2533f9['has'](_0x14af43['id'])||_0x2533f9['add'](_0x14af43),this['allConnectedUsers']['has'](_0x14af43['id'])||_0x4b920b['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x14af43,_0x14af43['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x4515ab,{'channelId':_0x4515ab,'session':_0x39086f});}['_handleSessionRemove'](_0x39bc0a,_0x286c90){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x190d5f=this['channelConnectedUsers']['get'](_0x39bc0a),_0x4277e8=_0x286c90['user'];_0x4277e8['id']&&(this['channelSessions']['get'](_0x39bc0a)['remove'](_0x286c90['id']),_0x190d5f['has'](_0x4277e8['id'])&&!this['getUserSessions'](_0x4277e8,_0x39bc0a)['size']&&_0x190d5f['remove'](_0x4277e8['id']),this['allConnectedUsers']['get'](_0x4277e8['id'])&&!this['getUserSessions'](_0x4277e8)['size']&&this['allConnectedUsers']['remove'](_0x4277e8['id']));}['_createUser'](_0x1bccd0,_0x48c3bb){const _0x2bd991=this['_users']['addUser'](_0x1bccd0);return _0x48c3bb&&this['_users']['defineMe'](_0x1bccd0['id']),_0x2bd991['orderNumber']=this['_uniqueUsersCount']++,_0x2bd991;}}class UserMarkers extends _0x3399ad{['_domEmitter']=new(_0xa1d399())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x346333=this['editor'],_0xd0143=_0x346333['plugins']['get'](Sessions);_0x346333['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x33a1e2,{writer:_0xf7cf8a})=>function(_0x5ce3bb,_0x4c6639,_0xfb323c,_0x35a95b){const _0x4f1bf6=_0x5ce3bb['markerName']['split'](':')[0x2],_0x1b2b3a=_0xfb323c['getUserBySessionId'](_0x4f1bf6);if(!_0x1b2b3a||_0x4f1bf6===_0xfb323c['mySessionId'])return;if(!_0x35a95b['model']['schema']['checkChild'](_0x5ce3bb['markerRange']['start'],'$text'))return;const _0x409525={'class':'ck-user__marker\x20'+_0x1b2b3a['color']['getMarkerClass'](),'style':Y(_0x1b2b3a),'data-name':_0x1b2b3a['name'],'data-session-id':_0x4f1bf6},_0x5c1cae=_0x35a95b['model']['markers']['get'](_0x5ce3bb['markerName']),_0x11819a=_0x5c1cae['getStart'](),_0x266709=_0x11819a['nodeAfter'],_0x1143de=_0x35a95b['model']['schema'];if(_0x266709&&_0x1143de['isObject'](_0x266709)&&_0x1143de['isInline'](_0x266709)&&!_0x35a95b['model']['markers']['get']('user:range:'+_0x4f1bf6)['getRange']()['isCollapsed'])return;const _0x360b53=_0x11819a['parent'];return _0x35a95b['model']['schema']['isLimit'](_0x360b53)&&!_0x35a95b['model']['hasContent'](_0x360b53)&&(_0x409525['contenteditable']=!0x1),function(_0x386989,_0xa1563f,_0x132d17){const _0x18def9=_0x386989['createUIElement']('span',_0xa1563f);return _0x386989['setCustomProperty']('userPositionMarker',!0x0,_0x18def9),_0x18def9['render']=function(_0x537ee6){const _0x5ca4f6=this['toDomElement'](_0x537ee6),_0x36eeb8=document['createElement']('span');return _0x36eeb8['classList']['add']('ck-user__marker-tooltip'),_0x36eeb8['setAttribute']('contenteditable','false'),_0x36eeb8['setAttribute']('spellcheck','false'),_0x36eeb8['textContent']=_0x132d17['name'],_0x5ca4f6['innerHTML']='<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x36eeb8['outerHTML']+'',_0x5ca4f6['addEventListener']('mouseenter',()=>{_0x5ca4f6['classList']['add']('ck-user__marker_hovered');}),_0x5ca4f6['addEventListener']('mouseleave',()=>{_0x5ca4f6['classList']['remove']('ck-user__marker_hovered');}),_0x5ca4f6;},_0x18def9['isSimilar']=function(_0x14ea1f){return!(!this['getCustomProperty']('userPositionMarker')||!_0x14ea1f['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x14ea1f['getAttribute']('data-session-id'));},_0x18def9;}(_0x4c6639,_0x409525,_0x1b2b3a);}(_0x33a1e2,_0xf7cf8a,_0xd0143,_0x346333)}),_0x346333['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x1ae826=>function(_0x158a8a,_0x5c6c92){const _0x54b418=_0x158a8a['markerName']['split'](':')[0x2];if(_0x54b418===_0x5c6c92['mySessionId'])return null;const _0x219afd=_0x5c6c92['getUserBySessionId'](_0x54b418);if(!_0x219afd)return{'id':_0x54b418,'classes':[]};return{'id':_0x54b418,'classes':['ck-user__selection',_0x219afd['color']['getSelectionClass']()],'attributes':{'style':Y(_0x219afd),'data-session-id':_0x54b418},'priority':0x7d0+_0x219afd['orderNumber']};}(_0x1ae826,_0xd0143)}),function(_0xf5797b){const _0x37f4c3=_0xf5797b['model'],_0x26522d=new Map(),_0x2d149d=_0xf5797b['plugins']['get'](Sessions);_0x37f4c3['markers']['on']('update:user:range',(_0x313a7b,_0x28a7df,_0x497460,_0x399590)=>{if(!_0x399590&&_0x26522d['get'](_0x28a7df['name']))return _0x26522d['get'](_0x28a7df['name'])['detach'](),void _0x26522d['delete'](_0x28a7df['name']);const _0x27d5bd=_0x28a7df['name']['split'](':')[0x2];if(_0x27d5bd===_0x2d149d['mySessionId'])return;const _0x1e590a='user:position:'+_0x27d5bd;_0x37f4c3['markers']['has'](_0x1e590a)&&_0xf5797b['editing']['reconvertMarker'](_0x1e590a),_0x28a7df['on']('change:range',(_0x58394c,_0x13cadf,_0x38e843)=>{if('$graveyard'!=_0x13cadf['root']['rootName']&&'$graveyard'==_0x28a7df['getRange']()['root']['rootName']&&!_0x26522d['has'](_0x28a7df['name'])){const _0x41ab4b=_0x37f4c3['schema']['getNearestSelectionRange'](_0x38e843['deletionPosition']);if(_0x41ab4b){const _0x28fffe=_0x19d676['fromRange'](_0x41ab4b);_0x26522d['set'](_0x28a7df['name'],_0x28fffe),_0x28fffe['on']('change:range',(_0x2b8057,_0x3758bf,_0x57e83f)=>{if('$graveyard'==_0x28fffe['root']['rootName']){const _0x29159b=_0x37f4c3['schema']['getNearestSelectionRange'](_0x57e83f['deletionPosition']);_0x29159b?(_0x28fffe['start']=_0x29159b['start'],_0x28fffe['end']=_0x29159b['end']):(_0x26522d['delete'](_0x28a7df['name']),_0x28fffe['detach']());}});}}});}),_0x37f4c3['document']['on']('change',()=>{_0x26522d['size']>0x0&&_0x37f4c3['enqueueChange']({'isUndoable':!0x1},_0x3296a6=>{for(const [_0x326834,_0x4583d8]of _0x26522d)'$graveyard'==_0x37f4c3['markers']['get'](_0x326834)['getRange']()['root']['rootName']&&(z(_0x326834['split'](':')[0x2],_0x4583d8['toRange'](),_0x37f4c3,_0x3296a6),_0x4583d8['detach']());_0x26522d['clear']();});});}(_0x346333),this['_domEmitter']['listenTo'](_0x22ef6c['document'],'keydown',(_0x494f5a,{key:_0x2447e1})=>{'Escape'===_0x2447e1&&function(_0x3393fb){_0x3393fb['editing']['view']['change'](_0xd0e6bc=>{for(const _0x179d52 of _0x3393fb['model']['markers']){if(!_0x179d52['name']['startsWith']('user:position'))continue;const _0x2980a7=_0x3393fb['editing']['mapper']['markerNameToElements'](_0x179d52['name']);if(_0x2980a7){for(const _0x3c8735 of _0x2980a7)_0xd0e6bc['removeClass']('ck-user__marker_hovered',_0x3c8735);}}});}(_0x346333);},{'useCapture':!0x0});}['afterInit'](){const _0xf6ad9=this['editor'],_0x199192=_0xf6ad9['commands']['get']('undo');_0x199192&&_0xf6ad9['model']['on']('applyOperation',(_0x1ef687,_0x905c50)=>{const _0x4bc722=_0x905c50[0x0];if(!_0x4bc722['isDocumentOperation'])return;if('marker'!=_0x4bc722['type']||!_0x4bc722['name']['startsWith']('user:'))return;const _0xe80065=_0x4bc722['batch'];_0x199192['_createdBatches']['has'](_0xe80065)&&(_0x4bc722['newRange']=_0x4bc722['oldRange']?_0xf6ad9['model']['createRange'](_0x4bc722['oldRange']['start'],_0x4bc722['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x45f800=this['editor'],_0x28c867=_0x45f800['model']['document'],_0xe4fa6a=_0x45f800['plugins']['get'](Sessions);_0x45f800['model']['enqueueChange']({'isUndoable':!0x1},_0x67290d=>{const _0x174d67='user:range:'+_0xe4fa6a['mySessionId'],_0x36c1d7='user:position:'+_0xe4fa6a['mySessionId'],_0x1c04fd=_0x45f800['model']['markers']['has'](_0x174d67);_0x45f800['editing']['view']['hasDomSelection']?z(_0xe4fa6a['mySessionId'],_0x28c867['selection']['getFirstRange'](),_0x45f800['model'],_0x67290d):_0x1c04fd&&(_0x67290d['removeMarker'](_0x174d67),_0x67290d['removeMarker'](_0x36c1d7));});}}function z(_0xf0901c,_0x316532,_0x1d4f31,_0x582d2a){const _0x56defa='user:range:'+_0xf0901c,_0x25e803='user:position:'+_0xf0901c,_0x386b61=_0x316532['getContainedElement']();let _0x4acbcf=_0x316532['start'];if(_0x386b61&&_0x386b61['is']('element','tableCell')){const _0x36af24=function(_0x1f3ef5,_0x3b000c){for(const _0x30700a of _0x1f3ef5['getPositions']())if(_0x3b000c['schema']['checkChild'](_0x30700a,'$text'))return _0x30700a;}(_0x316532,_0x1d4f31);_0x36af24&&(_0x4acbcf=_0x36af24,_0x316532=_0x582d2a['createRange'](_0x4acbcf));}const _0x494660=_0x582d2a['createRange'](_0x4acbcf);_0x1d4f31['markers']['has'](_0x56defa)?(_0x582d2a['updateMarker'](_0x56defa,{'range':_0x316532}),_0x582d2a['updateMarker'](_0x25e803,{'range':_0x494660})):(_0x582d2a['addMarker'](_0x56defa,{'range':_0x316532,'usingOperation':!0x0}),_0x582d2a['addMarker'](_0x25e803,{'range':_0x494660,'usingOperation':!0x0}));}function Y(_0x464820){return'--ck-user-color:'+_0x464820['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x464820['color']['getColorAlphaVariable']()+';';}function K(_0x553d8f,_0x2e5537,_0x572495){const _0x124896=_0x553d8f['t'],t=_0x553d8f['t'];switch(_0x2e5537){case'PENDING_ACTION_SENDING_DATA':return t({'string':'Sending\x20data\x20to\x20the\x20server.','id':'PENDING_ACTION_SENDING_DATA'});case'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.':return t('The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');case'Synchronization\x20issue':return t('Synchronization\x20issue');case'Connected\x20users\x20list\x20dropdown\x20menu':return t('Connected\x20users\x20list\x20dropdown\x20menu');case'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':return t('Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)');case'Connected\x20users\x20list':return t('Connected\x20users\x20list');case'PENDING_ACTION_REVISION_HISTORY':return _0x124896({'string':'Unsaved\x20change\x20in\x20revision\x20history.','id':'PENDING_ACTION_REVISION_HISTORY'});case'CONNECTED_USERS':return t({'string':'1\x20connected\x20user\x20(me)','plural':'%0\x20connected\x20users','id':'CONNECTED_USERS'},_0x572495);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x3399ad{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
|
|
25
|
+
((()=>_0x2660a5)());['_offset'];['sessionId'];['serverHistory'];['_channelId'];['_service'];['_document'];['_compressor'];['_bufferedOperations'];['_knownOperations'];['_knownRootNames'];['_pendingAction'];['_hasSelectionChanged'];['_sendBufferedOperationsDelayId'];['_baseBufferDelay'];['_currentBufferDelay'];['_lastSyncedOperationId'];['_disconnectionOperations'];['_operationIdentifier'];static get['requires'](){return[WebSocketGateway,Sessions,UserMarkers,_0x102644,_0x110378,_0x1ef4aa];}static get['pluginName'](){return'RealTimeCollaborationClient';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}get['cloudDocumentVersion'](){return this['_lastServerVersion']+this['_offset'];}get['_lastServerVersion'](){return this['serverHistory']['version']-this['_offset'];}get['lastSyncVersion'](){const _0x1bd74d=this['serverHistory']['getOperations']();for(let _0xabf553=_0x1bd74d['length']-0x1;_0xabf553>=0x0;_0xabf553--){const _0x415015=_0x1bd74d[_0xabf553];if(!this['_disconnectionOperations']['has'](_0x415015))return _0x415015['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x401b6c){if(super(_0x401b6c),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x5d2057(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x1cc85d('collaboration-missing-channelid',this);const _0x4808e1=_0x401b6c['config']['get']('cloudServices.bundleVersion')||_0xb80067;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x4808e1,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x252856(),this['_bufferedOperations']=[],this['_knownOperations']=new WeakSet(),this['_knownRootNames']=new Set(),this['set']('_isPendingUpdate',!0x1),this['set']('_hasSynchronizationProblem',!0x1),this['_pendingAction']=null,this['_hasSelectionChanged']=!0x1,this['_sendBufferedOperationsDelayId']=null,this['_baseBufferDelay']=0x12c,this['_currentBufferDelay']=this['_baseBufferDelay'],this['_lastSyncedOperationId']=null,this['_disconnectionOperations']=new WeakSet(),this['_operationIdentifier']=new OperationIdentifier(this['_disconnectionOperations']);}['init'](){const _0x213b55=this['editor'],_0x3cbb71=_0x213b55['plugins']['get'](_0x110378),_0x3b8b8d=_0x213b55['plugins']['get'](WebSocketGateway);this['listenTo'](_0x3cbb71,'getOperationAuthor',(_0x1b1de1,_0x4a6f2b)=>{const _0x5d6008=_0x4a6f2b[0x0];_0x5d6008['_authorId']&&(_0x1b1de1['return']=_0x3cbb71['getUser'](_0x5d6008['_authorId']),_0x1b1de1['stop']()),null===_0x5d6008['_authorId']&&(_0x1b1de1['return']=null,_0x1b1de1['stop']());},{'priority':'high'}),this['listenTo'](_0x213b55['model']['document']['selection'],'change:range',(_0x199134,_0x3cf4a9)=>{_0x3cf4a9['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x213b55['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x213b55['model']['on']('applyOperation',(_0x19bbba,_0x20b1e8)=>{const _0x32ab7d=_0x20b1e8[0x0];_0x32ab7d['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x32ab7d),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x3b8b8d,'state',this,'_hasSynchronizationProblem',(_0x38ffb2,_0x2a69b2)=>'connected'===_0x38ffb2&&!_0x2a69b2),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x213b55['disableReadOnlyMode']('rtc-offline'):_0x213b55['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x213b55['disableReadOnlyMode']('rtc-offline'):_0x213b55['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x216b0b=this['editor']['plugins']['get'](Sessions),_0x45d3d3=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x216b0b['unregister'](this['_channelId']);const _0x36bb18=await this['_service']['reconnect'](_0x45d3d3['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x36bb18)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x225ef5=await this['_service']['getConnectedSessions']();_0x216b0b['register'](this['_channelId'],_0x225ef5),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x57240e){if(function(_0x336299){return'404'===_0x336299['code'];}(_0x57240e)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x740c67){return'409'===_0x740c67['code'];}(_0x57240e)){const _0x4b494e=K(this['editor']['locale'],'The\x20document\x20cannot\x20be\x20connected\x20back\x20to\x20the\x20server.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');this['_handleReconnectionError'](_0x4b494e);}else{if(!(_0x57240e instanceof ReconnectionError))throw _0x57240e;this['_handleReconnectionError']();}}}}['destroy'](){const _0x2dfa44=this['editor']['plugins']['get'](WebSocketGateway),_0x4478a1=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x4478a1['channelSessions']['has'](this['_channelId'])&&_0x4478a1['unregister'](this['_channelId']),_0x2dfa44['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x25e1f8){if(this['sessionId']!==_0x25e1f8['sessionId']&&this['_lastSyncedOperationId']!==_0x25e1f8['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x25e1f8['sessionId'],this['_handleServerResponse']([],{..._0x25e1f8,'wereChangesApplied':!0x1,'data':_0x25e1f8['data']},'reconnect');}async['_connectService'](_0x1b044b,_0x28b02c=!0x1){const {connection:_0x72ca7e}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x72ca7e,this['_channelId'])['then'](_0x287d0c=>this['_initSessionsHandling'](_0x287d0c))['catch'](_0x22261a=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x22261a);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x42a92d,_0x2a9645)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x2a9645);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x32377e=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x1b044b);this['_isPendingUpdate']=!0x0;const _0x26dc6a=await this['_service']['connect'](_0x72ca7e,this['_compressOperations'](_0x1b044b),_0x32377e);if(this['sessionId']=_0x26dc6a['sessionId'],_0x28b02c){if(!_0x26dc6a['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x26dc6a['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x1b044b,_0x26dc6a,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x26dc6a,_0x1b044b);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0xa1cfd6=this['editor']['plugins']['get'](Sessions),_0xf8a9cd=this['editor']['plugins']['get'](UserMarkers),_0x561be7=_0xa1cfd6['channelSessions']['get'](this['_channelId']);_0x561be7&&_0x561be7['length']>0x1?_0xf8a9cd['createUserMarkerOperations']():this['listenTo'](_0xa1cfd6,'sessionAdd:'+this['_channelId'],()=>{0x2===_0xa1cfd6['channelSessions']['get'](this['_channelId'])['length']&&_0xf8a9cd['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x3e2748,_0x46c2b3,_0x3d7d12,_0x2c5d05){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x46c2b3){const _0x176f75=this['_decompressOperations'](_0x3d7d12,_0x2c5d05);await this['_fetchMissingUsers'](_0x176f75),this['_handleExternalOperations'](_0x176f75,_0x46c2b3,_0x3d7d12['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x25c0f0}=this['editor'];let _0x342e84;try{_0x342e84=await this['_service']['getDocumentDetails']();}catch{const _0x144d8a=K(_0x25c0f0,'The\x20document\x20details\x20could\x20not\x20be\x20taken\x20during\x20the\x20reconnection.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x144d8a);}const _0x110b1f=_0x342e84['currentDocumentSession']||_0x342e84['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x110b1f['lastOperationId']){const _0x3457e5=K(_0x25c0f0,'The\x20last\x20saved\x20version\x20of\x20the\x20document\x20does\x20not\x20match\x20the\x20local\x20version.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.');return void this['_handleReconnectionError'](_0x3457e5);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x4e214b){const _0x4bf01f=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x4bf01f,'sessionAdd:'+this['_channelId'],(_0x13b746,{session:_0x4062bc})=>{if(_0x4062bc['id']===_0x4bf01f['mySessionId']){_0x13b746['off']();const _0xfe602e=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x330e5e=_0x4062bc['permissions'];_0xfe602e&&_0xfe602e['isEnabled']&&(_0x330e5e=_0x330e5e['filter'](_0x5120e8=>'document:write'!==_0x5120e8)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x330e5e,this['_channelId']);}}),_0x4bf01f['register'](this['_channelId'],_0x4e214b);}['_initThrowingOnDataSet'](){const _0x1a1ec2=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x2f020e)=>{if(!_0x2f020e[_0x2f020e['length']-0x1]['suppressErrorInCollaboration'])throw new _0x1cc85d('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x1a1ec2['apply'](this['editor']['data'],_0x2f020e);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x4d600b,[_0x50b061])=>{if(this['_document']['version'])throw new _0x1cc85d('realtimecollaborationclient-init-document-already-initialized',this);_0x4d600b['stop'](),this['_setPendingAction']();const _0x5e0211=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x53ec4d])=>!_0x53ec4d['lazyLoad'])['map'](([_0x2b5e3b,_0x3058a7])=>[_0x2b5e3b,_0x3058a7['modelAttributes']||{}])),_0x36f24a=this['_getOperationsFromInitData'](_0x50b061,_0x5e0211);0x0==_0x36f24a['length']&&_0x36f24a['push'](new _0x4bd98e(0x0)),_0x4d600b['return']=this['_connectService'](_0x36f24a)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x45fedc=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x45fedc))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x21faac,[_0x44bec0,_0xc65a67])=>{_0x21faac['stop']();const _0x42af62=this['editor']['model']['document']['getRoot'](_0x44bec0);if(!this['_knownRootNames']['has'](_0x44bec0)){const _0xdccc9=_0xc65a67&&_0xc65a67['data']?_0xc65a67['data']:'',_0x198b6f=_0xc65a67&&_0xc65a67['attributes']?_0xc65a67['attributes']:{};await this['_loadRoot'](_0x44bec0,_0xdccc9,_0x198b6f);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x42af62['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x42af62);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x113f43){const _0x1fa176=this['editor']['plugins']['get'](_0x110378),{connection:_0x29973e}=this['editor']['plugins']['get'](WebSocketGateway),_0x5145fd=new Set();for(const _0x18245f of _0x113f43){const _0x567f8b=_0x18245f['_authorId'];_0x567f8b&&!_0x1fa176['getUser'](_0x567f8b)&&_0x5145fd['add'](_0x567f8b);}if(0x0===_0x5145fd['size'])return;const _0x3a192=await _0xeb9635['getMany'](_0x29973e,Array['from'](_0x5145fd));for(const _0x3fd05b of _0x3a192)_0x1fa176['getUser'](_0x3fd05b['id'])||_0x1fa176['addUser'](_0x3fd05b);}['_getOperationsFromInitData'](_0x11aed0,_0x2330db={}){const _0x48ae28=this['editor']['model'],_0x1994c4=[];let _0x4f2f0f=0x0;const _0x111d44='string'==typeof _0x11aed0?{'main':_0x11aed0}:_0x11aed0;for(const _0xa4594e of Object['keys'](_0x111d44)){if(!this['_document']['roots']['has'](_0xa4594e))throw new _0x1cc85d('realtimecollaborationclient-init-non-existent-root',this);const _0x186cc0=this['_document']['getRoot'](_0xa4594e),_0x2a4a94=this['editor']['data']['parse'](_0x111d44[_0xa4594e],_0x186cc0),_0x1c491e=new _0x2e3a70(_0x48ae28['createPositionAt'](_0x186cc0,0x0),_0x2a4a94,_0x4f2f0f++);_0x1994c4['push'](_0x1c491e);for(const [_0x59e308,_0x4ffc71]of _0x2a4a94['markers']){const _0x2ac310=_0x48ae28['createRange'](_0x48ae28['createPositionFromPath'](_0x186cc0,_0x4ffc71['start']['path']['slice']()),_0x48ae28['createPositionFromPath'](_0x186cc0,_0x4ffc71['end']['path']['slice']())),_0x37099f=new _0x468417(_0x59e308,null,_0x2ac310,_0x48ae28['markers'],!0x0,_0x4f2f0f++);_0x1994c4['push'](_0x37099f);}}if(_0x2330db)for(const [_0xddaef3,_0x1f8894]of Object['entries'](_0x2330db)){const _0x21cf92=_0x48ae28['document']['getRoot'](_0xddaef3);if(!_0x21cf92)throw new _0x1cc85d('multi-root-editor-root-attributes-no-root',null);for(const [_0x287de6,_0x565379]of Object['entries'](_0x1f8894))if(null!==_0x565379){const _0x1111a7=new _0x35d36f(_0x21cf92,_0x287de6,null,_0x565379,_0x4f2f0f++);_0x1994c4['push'](_0x1111a7);}}return _0x1994c4;}async['_loadRoot'](_0x2e20c2,_0x5eb78e,_0x4fbe82){this['_getOperationsFromInitData']({[_0x2e20c2]:_0x5eb78e},{[_0x2e20c2]:_0x4fbe82})['forEach']((_0xef389c,_0x44fd52)=>{_0xef389c['baseVersion']=this['_document']['version']+_0x44fd52,_0xef389c['_isInit']=!0x0,this['_saveOperationInBuffer'](_0xef389c);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x35c65a,_0x4bb392){let _0x21ac48;this['_offset']=_0x35c65a['offset'];const _0x16e435=_0x35c65a['wereChangesApplied']&&!_0x35c65a['initData'],_0x18c0d7=_0x16e435?0x0:_0x35c65a['data']['baseVersion'];if(_0x4bb392['forEach'](_0x15532c=>{_0x15532c['_isInit']=!0x0,_0x15532c['createdAt']=_0x35c65a['sessionCreatedAt'],_0x15532c['_authorId']=null;}),_0x16e435)_0x21ac48=_0x4bb392,this['_applyOperationsSet'](_0x21ac48,_0x16e435);else{if(_0x35c65a['initData']){const _0x1c872c=this['_getOperationsFromInitData'](_0x35c65a['initData']);this['_document']['history']['version']=-_0x1c872c['length'],_0x1c872c['forEach'](_0x24b67c=>{_0x24b67c['baseVersion']-=_0x1c872c['length'],_0x24b67c['createdAt']=_0x35c65a['sessionCreatedAt'],_0x24b67c['_isInit']=!0x0,_0x24b67c['_authorId']=null;}),this['_applyOperationsSet'](_0x1c872c,!0x0),this['serverHistory']['version']=-_0x1c872c['length']+this['_offset'],this['_updateServerHistory'](_0x1c872c);}this['_document']['history']['version']=_0x18c0d7,_0x21ac48=this['_decompressOperations'](_0x35c65a['data'],_0x35c65a['metadata']),await this['_fetchMissingUsers'](_0x21ac48),this['_applyOperationsSet'](_0x21ac48,_0x16e435);}_0x35c65a['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x21ac48,_0x35c65a['lastOperationId']),this['_lastSyncedOperationId']=_0x35c65a['lastOperationId']),this['serverHistory']['version']=_0x18c0d7+this['_offset'],this['_updateServerHistory'](_0x21ac48),_0x4bb392['filter'](_0x39b6c4=>{const _0x1789ca=this['_getAffectedRoot'](_0x39b6c4);return _0x1789ca&&!this['_knownRootNames']['has'](_0x1789ca);})['forEach']((_0x4e6ab9,_0x4c8103)=>{_0x4e6ab9['baseVersion']=this['_document']['version']+_0x4c8103,this['_saveOperationInBuffer'](_0x4e6ab9);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x4e7213,_0x5ee964){const _0x3ac199=_0x5ee964&&_0x5ee964['message'];if(_0x3ac199&&_0x3ac199['startsWith']('realtimecollaborationclient'))throw _0x5ee964;const _0xaf2f15=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0xaf2f15['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x1cc85d(_0x4e7213,this['editor'],_0x3ac199?{'originalError':_0x3ac199}:void 0x0);}['_saveOperationInBuffer'](_0x3bc38c){this['_knownOperations']['has'](_0x3bc38c)||(this['_knownOperations']['add'](_0x3bc38c),this['_bufferedOperations']['push'](_0x3bc38c),this['_pendingAction']||'marker'==_0x3bc38c['type']&&!_0x3bc38c['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x56eef1=!0x1){!_0x56eef1&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x31d2e9=>{_0x31d2e9&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x4c4c2c=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0xcbd12e){return _0xcbd12e['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0xcbd12e['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0xcbd12e['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x4c4c2c)||this['_crash'](_0x4c4c2c['message'],_0x4c4c2c);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0x26d06c=>{this['on']('change:_isPendingUpdate',()=>{_0x26d06c();});});}async['_sendBufferedOperations'](){const _0x5c7199=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x5c7199['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x118d71=[...this['_bufferedOperations']];for(const _0x431686 of _0x118d71)_0x431686['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x431686);const _0x6d629e=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x118d71),_0x278f72=J++,_0xb585d6=this['_compressOperations'](_0x118d71),_0x333f4f=await this['_service']['sendOperations'](_0xb585d6,_0xb585d6['baseVersion'],_0x6d629e);try{return await this['_handleServerResponse'](_0x118d71,_0x333f4f,_0x278f72);}catch(_0x51aa34){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x51aa34);}}async['_handleServerResponse'](_0x1dc379,_0x34f2be,_0x1ff20c){if('error'in _0x34f2be)throw _0x34f2be['error'];let _0x4c1145=!0x1;if(_0x34f2be['wereChangesApplied']){_0x34f2be['lastOperationId']&&(this['_lastSyncedOperationId']=_0x34f2be['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x3fe3ef=>!_0x1dc379['includes'](_0x3fe3ef));for(const _0x544258 of _0x1dc379)_0x544258['createdAt']='lastOperationAcceptedAt'in _0x34f2be&&_0x34f2be['lastOperationAcceptedAt']||void 0x0;Q(_0x1dc379,_0x34f2be['version']-_0x1dc379['length']),this['_updateServerHistory'](_0x1dc379);const _0x2cf6a6=_0x1dc379['filter'](_0x1ad36d=>{if(!_0x1ad36d['_isInit'])return!0x1;const _0x2a05ec=this['_getAffectedRoot'](_0x1ad36d);return _0x2a05ec&&!this['_knownRootNames']['has'](_0x2a05ec);});Q(_0x2cf6a6,this['_document']['version']),this['_applyOperationsSet'](_0x2cf6a6),_0x4c1145=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x3b06f6=this['_decompressOperations'](_0x34f2be['data'],_0x34f2be['metadata'])['filter'](_0x20c7e0=>_0x20c7e0['baseVersion']>=this['_lastServerVersion']);_0x3b06f6['forEach'](_0x8c1412=>this['_addKnownRoot'](_0x8c1412)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x524188=>!_0x524188['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x524188))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x3b06f6),_0x4c1145=this['_handleExternalOperations'](_0x3b06f6,_0x34f2be['version'],_0x34f2be['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x4c1145?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x410bd1,_0x156ca6,_0x1c98bf){try{const _0x163663={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x25ee4e,operationsB:_0x4a3ae4,originalOperations:_0x48fb57}=_0x37b6f0(_0x410bd1,this['_bufferedOperations'],_0x163663);Q(_0x25ee4e,this['_document']['version']),Q(_0x4a3ae4,_0x156ca6);for(const _0x3721d7 of _0x25ee4e){const _0x4d68b1=_0x48fb57['get'](_0x3721d7);_0x3721d7['_authorId']=_0x4d68b1?_0x4d68b1['_authorId']:null;}_0x1c98bf&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x410bd1,_0x1c98bf),this['_lastSyncedOperationId']=_0x1c98bf),this['_bufferedOperations']=[..._0x4a3ae4],this['_applyOperationsSet'](_0x25ee4e),this['_updateServerHistory'](_0x410bd1);}catch(_0x29430d){return console['error'](_0x29430d),!0x1;}return!0x0;}['_applyOperationsSet'](_0x1eeaae,_0x42606a=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0xe9747c=>{for(const _0x4e5586 of _0x1eeaae)this['_knownOperations']['add'](_0x4e5586),this['_addKnownRoot'](_0x4e5586),_0xe9747c['batch']['addOperation'](_0x4e5586),this['editor']['model']['applyOperation'](_0x4e5586);});}['_addKnownRoot'](_0x12c0f7){const _0x3cf79a=this['_getAffectedRoot'](_0x12c0f7);_0x3cf79a&&this['_knownRootNames']['add'](_0x3cf79a);}['_getAffectedRoot'](_0x3afb14){let _0x39358b,_0x1cd205;switch(_0x3afb14['type']){case'insert':_0x39358b=_0x3afb14['position']['root'];break;case'marker':if(_0x1cd205=_0x3afb14['newRange'],!_0x1cd205)return null;_0x39358b=_0x1cd205['root'];break;case'addRootAttribute':_0x39358b=_0x3afb14['root'];break;case'addRoot':_0x39358b=_0x3afb14['affectedSelectable'];break;case'move':_0x39358b=_0x3afb14['targetPosition']['root'];break;default:return null;}return _0x39358b['rootName'];}['_updateServerHistory'](_0x1b6c74){_0x1b6c74['forEach'](_0xd20ecb=>{const _0x111a1a=_0xd20ecb['clone']();_0x111a1a['_authorId']=_0xd20ecb['_authorId'],_0x111a1a['_isInit']=!!_0xd20ecb['_isInit'],_0x111a1a['createdAt']=_0xd20ecb['createdAt'],_0x111a1a['baseVersion']+=this['_offset'],_0xd20ecb['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x111a1a),this['serverHistory']['addOperation'](_0x111a1a);});}['_handleReconnectionError'](_0x39b0f5){const _0x498481=this['editor']['plugins']['get']('Notification'),_0x3f4cfc=this['editor']['locale'];_0x39b0f5||(_0x39b0f5=K(_0x3f4cfc,'The\x20local\x20document\x20and\x20server\x20document\x20differ\x20and\x20merging\x20them\x20can\x20cause\x20unexpected\x20behavior.\x20To\x20not\x20lose\x20your\x20content\x20save\x20it\x20locally\x20and\x20refresh\x20the\x20editor.')),_0x498481['showWarning'](_0x39b0f5,{'title':K(_0x3f4cfc,'Synchronization\x20issue'),'namespace':'real-time-collaboration'}),this['_hasSynchronizationProblem']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_bufferedOperations']=[],this['editor']['plugins']['get'](WebSocketGateway)['disconnect']();}['_setPendingAction'](){this['_pendingAction']||(this['_pendingAction']=this['editor']['plugins']['get'](_0x102644)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x102644)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x45262f){const _0x2ea0cf=_0x45262f['map'](_0x5056eb=>_0x5056eb['toJSON']());return this['_compressor']['compress'](_0x2ea0cf);}['_decompressOperations'](_0x2d83c6,_0x1a9ab){return this['_compressor']['decompress'](_0x2d83c6)['map']((_0x2607b5,_0x1468db)=>{const _0x3bd39f='init'==_0x1a9ab[_0x1468db]['type'];if('InsertOperation'==_0x2607b5['__className']){const _0x2a2997=_0x2607b5['position']['root'];!this['_document']['getRoot'](_0x2a2997)&&(this['_document']['createRoot']('$unknown',_0x2a2997)['_isAttached']=!0x1);}else{if('RootOperation'==_0x2607b5['__className']){const _0x1c65ed=this['_document']['getRoot'](_0x2607b5['rootName']);_0x1c65ed&&'$unknown'==_0x1c65ed['name']&&_0x2607b5['elementName']!=_0x1c65ed['name']&&(_0x1c65ed['name']=_0x2607b5['elementName']);}}const _0x5ee8ce=_0x4ad0ad['fromJSON'](_0x2607b5,this['_document']);return _0x5ee8ce['wasUndone']=_0x2607b5['wasUndone'],_0x5ee8ce['_isInit']=_0x3bd39f,_0x5ee8ce['_authorId']=_0x3bd39f?null:_0x1a9ab[_0x1468db]['userId'],_0x5ee8ce['_isDisconnection']='cs:removeUser'===_0x1a9ab[_0x1468db]['type'],_0x5ee8ce['createdAt']=_0x1a9ab[_0x1468db]['createdAt'],_0x5ee8ce;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x19430e=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x19430e&&_0x19430e['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x54515e,_0x40dd0){for(const _0x363953 of _0x54515e)_0x363953['baseVersion']=_0x40dd0++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x519ae3){this['_ignoredOperations']=_0x519ae3,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x70d2a){let _0x3f65db=_0x70d2a['length'];for(;_0x3f65db--;){const _0xe1c966=_0x70d2a[_0x3f65db];if(!this['_ignoredOperations']['has'](_0xe1c966)){if(!this['_operationToId']['has'](_0xe1c966)){const _0x2420a4=_0x46f444()['slice'](0x1,0x12);this['_operationToId']['set'](_0xe1c966,_0x2420a4);}return this['_operationToId']['get'](_0xe1c966);}}}['setIdForTheLastOperation'](_0x25c1cb,_0x2e1a2e){if(!_0x2e1a2e)return;let _0x466626=_0x25c1cb['length'];for(;_0x466626--;){const _0x54255e=_0x25c1cb[_0x466626];this['_ignoredOperations']['has'](_0x54255e)||this['_operationToId']['set'](_0x54255e,_0x2e1a2e);}}}class RealTimeCollaborativeEditing extends _0x3399ad{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0xb2e98b{static ['CommentsService']=/* #__PURE__ -- @preserve */
|
|
26
|
+
((()=>_0x5ac7b7)());['_services'];static get['requires'](){return[WebSocketGateway,_0x1503c2,Sessions,_0x110378];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1ebd27){super(_0x1ebd27),this['_services']=new Map();}async['init'](){const _0x491a5c=this['context'],_0x330004=_0x491a5c['plugins']['get'](_0x1503c2);if(_0x491a5c['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x330004['adapter']={'addCommentThread':async({channelId:_0x27a8ba,threadId:_0x24342f,comments:_0x13dea6,resolvedAt:_0xbf1743,resolvedBy:_0x9bf90a,context:_0x53511e,attributes:_0xf7aa51})=>{const _0x2e518b=await this['_getService'](_0x27a8ba)['addCommentThread']({'commentThreadId':_0x24342f,'comments':_0x13dea6['map'](_0x10af75=>function(_0x2d034c,_0x116ac7,_0x5bec3a){return{'commentThreadId':_0x5bec3a,'commentId':_0x2d034c['commentId'],'userId':_0x2d034c['authorId'],'content':_0x2d034c['content'],'documentId':_0x116ac7,'createdAt':_0x2d034c['createdAt'],'attributes':_0x2d034c['attributes']||{}};}(_0x10af75,_0x27a8ba,_0x24342f)),'resolvedAt':_0xbf1743,'resolvedBy':_0x9bf90a,'context':_0x53511e,'attributes':_0xf7aa51})['catch'](Z);return{'threadId':_0x2e518b['commentThreadId'],'comments':_0x2e518b['comments']};},'getCommentThread':async({channelId:_0x257f39,threadId:_0x5dee1a})=>{const _0x34a68e=await this['_getService'](_0x257f39)['getCommentThread'](_0x5dee1a)['catch'](X)['catch'](Z);return _0x34a68e?_0x34a68e['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x34a68e]),{'threadId':_0x34a68e['commentThreadId'],'comments':_0x34a68e['comments']['map'](tt),'context':_0x34a68e['context'],'resolvedAt':_0x34a68e['resolvedAt'],'resolvedBy':_0x34a68e['resolvedBy'],'attributes':_0x34a68e['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x3b0974,threadId:_0x317ca1,context:_0x258abc,unlinkedAt:_0x2b509c,attributes:_0xfb9e5f})=>this['_getService'](_0x3b0974)['updateCommentThread']({'commentThreadId':_0x317ca1,'context':_0x258abc,'attributes':_0xfb9e5f,'unlinkedAt':_0x2b509c})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x10f28e,threadId:_0x13a2e0})=>{const _0x16d7a7=await this['_getService'](_0x10f28e)['resolveCommentThread'](_0x13a2e0)['catch'](X)['catch'](Z);return{'threadId':_0x16d7a7['commentThreadId'],'resolvedAt':_0x16d7a7['resolvedAt'],'resolvedBy':_0x16d7a7['resolvedBy']};},'reopenCommentThread':async({channelId:_0x39e879,threadId:_0x589f21})=>this['_getService'](_0x39e879)['reopenCommentThread'](_0x589f21)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x3eb9b3,threadId:_0x92114a})=>this['_getService'](_0x3eb9b3)['removeCommentThread'](_0x92114a)['catch'](X)['catch'](Z),'addComment':({channelId:_0x4129b4,threadId:_0x5d83a7,commentId:_0x203485,content:_0x74f247,attributes:_0x53eecb})=>this['_getService'](_0x4129b4)['addComment'](_0x5d83a7,_0x203485,_0x74f247,_0x53eecb)['catch'](Z),'updateComment':({channelId:_0x15f75e,threadId:_0x5aa583,commentId:_0x30106f,content:_0x21bf37,attributes:_0x45a60f})=>this['_getService'](_0x15f75e)['updateComment'](_0x5aa583,_0x30106f,_0x21bf37,_0x45a60f)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x92952b,threadId:_0x23ca42,commentId:_0x10112e})=>this['_getService'](_0x92952b)['removeComment'](_0x23ca42,_0x10112e)['catch'](X)['catch'](Z)},_0x491a5c instanceof _0x250b69){const _0x52f144=_0x491a5c['config']['get']('collaboration.channelId'),_0x103aa5=_0x491a5c['plugins']['get'](Sessions);await this['_setUpService'](_0x52f144);const _0x3867b1=await this['_services']['get'](_0x52f144)['getConnectedSessions']();this['listenTo'](_0x103aa5,'sessionAdd:'+_0x52f144,(_0x332ad3,{session:_0x585c98})=>{_0x585c98['id']===_0x103aa5['mySessionId']&&(_0x332ad3['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x585c98['permissions'],_0x52f144));}),_0x103aa5['register'](_0x52f144,_0x3867b1);}}async['_setUpService'](_0x5b80a9){if(this['_services']['has'](_0x5b80a9))throw new _0x1cc85d('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x5b80a9});const _0x6da2f5=this['context']['plugins']['get'](_0x1503c2),_0x40317e=new CloudServicesCommentsAdapter['CommentsService'](_0x5b80a9);this['_services']['set'](_0x5b80a9,_0x40317e),this['listenTo'](_0x40317e,'commentThreadAdded',(_0x403ae2,_0x3e5c20)=>{const {commentThreadId:_0x1cef10,documentId:_0x58bbfd,context:_0x41e256,attributes:_0x56dd29,resolvedAt:_0x175e6e,resolvedBy:_0x1da106,comments:_0x52c767}=_0x3e5c20;_0x6da2f5['getCommentThread'](_0x1cef10)||_0x6da2f5['addCommentThread']({'threadId':_0x1cef10,'channelId':_0x58bbfd,'comments':_0x52c767?_0x52c767['map'](tt):[],'context':_0x41e256,'attributes':_0x56dd29,'resolvedAt':_0x175e6e,'resolvedBy':_0x1da106,'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentThreadUpdated',(_0x31cb78,{commentThreadId:_0x13d11f,documentId:_0x4f5efa,context:_0x120f34,unlinkedAt:_0x227a95,attributes:_0x39ac4b})=>{_0x6da2f5['getCommentThread'](_0x13d11f)&&_0x6da2f5['updateCommentThread']({'threadId':_0x13d11f,'channelId':_0x4f5efa,'context':_0x120f34,'unlinkedAt':_0x227a95,'attributes':_0x39ac4b,'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentThreadResolved',(_0x2bc422,{commentThreadId:_0xf6d6eb,resolvedBy:_0x3ea407,resolvedAt:_0x3550e3})=>{const _0x34ea97=_0x6da2f5['getCommentThread'](_0xf6d6eb);_0x34ea97&&_0x34ea97['resolve']({'resolvedBy':_0x3ea407,'resolvedAt':_0x3550e3,'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentThreadReopened',(_0x4e9df5,{commentThreadId:_0xf7b6b1})=>{const _0x49c2ba=_0x6da2f5['getCommentThread'](_0xf7b6b1);_0x49c2ba&&_0x49c2ba['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentThreadRemoved',(_0x40846e,{commentThreadId:_0x2618a2})=>{const _0x1f6f6a=_0x6da2f5['getCommentThread'](_0x2618a2);_0x1f6f6a&&_0x1f6f6a['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentAdded',(_0x5334fa,_0x492960)=>{const _0x10d22e=_0x492960['commentThreadId'],_0x2b14f7=_0x6da2f5['getCommentThread'](_0x10d22e);_0x2b14f7&&_0x2b14f7['addComment']({...tt(_0x492960),'isFromAdapter':!0x0});}),this['listenTo'](_0x40317e,'commentUpdated',(_0x1c26b6,{commentThreadId:_0x33a550,commentId:_0x4b2839,content:_0x1df4e1,attributes:_0x2f71be})=>{const _0x472718=_0x6da2f5['getCommentThread'](_0x33a550);if(_0x472718){const _0x58d894=_0x472718['getComment'](_0x4b2839);_0x58d894&&_0x58d894['update']({'content':_0x1df4e1,'attributes':_0x2f71be,'isFromAdapter':!0x0});}}),this['listenTo'](_0x40317e,'commentRemoved',(_0x2e9f8e,{commentThreadId:_0x5b6407,commentId:_0x28d44d})=>{const _0x31199e=_0x6da2f5['getCommentThread'](_0x5b6407);if(_0x31199e){const _0x41cbbd=_0x31199e['getComment'](_0x28d44d);_0x41cbbd&&_0x41cbbd['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x5b80a9);}['destroy'](){if(this['context']instanceof _0x250b69){const _0x2a3a6a=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x2a3a6a);}}['_terminateService'](_0x720d57){if(!this['_services']['has'](_0x720d57))throw new _0x1cc85d('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x720d57});this['_getService'](_0x720d57)['disconnect'](),this['_services']['delete'](_0x720d57);}async['reconnect'](){for(const _0x3a5cf3 of this['_services']['keys']())await this['_connectService'](_0x3a5cf3);if(this['context']instanceof _0x250b69){const _0x5a875f=this['context']['config']['get']('collaboration.channelId'),_0x266a8b=this['context']['plugins']['get'](Sessions);_0x266a8b['unregister'](_0x5a875f);const _0xb2a348=await this['_services']['get'](_0x5a875f)['getConnectedSessions']();_0x266a8b['register'](_0x5a875f,_0xb2a348);}}async['_connectService'](_0x46c527){const {connection:_0x3987bd}=this['context']['plugins']['get'](WebSocketGateway),_0x2af1b2=this['context']['plugins']['get'](_0x1503c2),_0x57b450=this['_services']['get'](_0x46c527),_0x5d41f2=await _0x57b450['connect'](_0x3987bd);await this['_fetchMissingUsersForThreads'](_0x5d41f2);const _0x3cbd17=new Set(Array['from'](_0x2af1b2['getCommentThreads']({'channelId':_0x46c527}),_0x2cde58=>_0x2cde58['id']));for(const _0x3b6c63 of _0x5d41f2)_0x3b6c63['deletedAt']||_0x3cbd17['delete'](_0x3b6c63['commentThreadId']);for(const _0x230cf8 of _0x3cbd17)_0x2af1b2['getCommentThread'](_0x230cf8)['remove']({'isFromAdapter':!0x0});for(const _0x3508bd of _0x5d41f2){let _0x6675f4=_0x2af1b2['getCommentThread'](_0x3508bd['commentThreadId']);const {commentThreadId:_0x5b1513,context:_0x44d972,attributes:_0x24bb4c,resolvedBy:_0x44f474,resolvedAt:_0x151bf2,unlinkedAt:_0x36a61b,deletedAt:_0x188991}=_0x3508bd;if(_0x188991)continue;_0x6675f4||(_0x6675f4=_0x2af1b2['addCommentThread']({'channelId':_0x46c527,'threadId':_0x5b1513,'context':_0x44d972,'attributes':_0x24bb4c||{},'resolvedBy':_0x44f474,'resolvedAt':_0x151bf2,'unlinkedAt':_0x36a61b,'isFromAdapter':!0x0}));const _0x1c85e8=new Set(Array['from'](_0x6675f4['comments'],_0x175b37=>_0x175b37['id']));for(const _0x199e86 of _0x3508bd['comments'])_0x1c85e8['delete'](_0x199e86['commentId']);for(const _0x29fef9 of _0x1c85e8)_0x6675f4['getComment'](_0x29fef9)['remove']({'isFromAdapter':!0x0});for(const _0x7897cc of _0x3508bd['comments']){const _0x366d93=_0x6675f4['getComment'](_0x7897cc['commentId']);_0x366d93?_0x366d93['content']!==_0x7897cc['content']&&_0x366d93['update']({'content':_0x7897cc['content'],'isFromAdapter':!0x0}):_0x6675f4['addComment'](Object['assign'](tt(_0x7897cc),{'isFromAdapter':!0x0}));}}}['_getService'](_0x4fc74b){if(!this['_services']['has'](_0x4fc74b))throw new _0x1cc85d('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x4fc74b});return this['_services']['get'](_0x4fc74b);}async['_fetchMissingUsersForThreads'](_0x358ec2){const _0x7de811=this['context']['plugins']['get'](_0x110378),{connection:_0x59d923}=this['context']['plugins']['get'](WebSocketGateway),_0xebe65=new Set();for(const {resolvedBy:_0x19415e,comments:_0x29cfb2}of _0x358ec2){_0x19415e&&!_0x7de811['getUser'](_0x19415e)&&_0xebe65['add'](_0x19415e);for(const {userId:_0x5d8030}of _0x29cfb2)_0x7de811['getUser'](_0x5d8030)||_0xebe65['add'](_0x5d8030);}if(0x0===_0xebe65['size'])return;const _0x1738bd=await _0xeb9635['getMany'](_0x59d923,Array['from'](_0xebe65));for(const _0xa369a6 of _0x1738bd)_0x7de811['getUser'](_0xa369a6['id'])||_0x7de811['addUser'](_0xa369a6);}}async function X(_0x186cd3){if('404'!==_0x186cd3['code'])throw _0x186cd3;}function Z(_0x14aa49){if((_0x54e731=_0x14aa49)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x54e731['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x54e731['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x54e731;throw _0x14aa49;}function tt(_0x29c4d2){return{'threadId':_0x29c4d2['commentThreadId'],'commentId':_0x29c4d2['commentId'],'content':_0x29c4d2['content'],'createdAt':_0x29c4d2['createdAt'],'authorId':_0x29c4d2['userId'],'attributes':_0x29c4d2['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x3399ad{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
|
|
27
|
+
((()=>_0x2a5b56)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x38cfce,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x12857c){super(_0x12857c);const _0x3be58a=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x3be58a);}['init'](){const _0x6164ee=this['editor']['plugins']['get'](WebSocketGateway),_0x14b0f4=this['editor']['plugins']['get'](_0x38cfce);return _0x14b0f4['adapter']={'getSuggestion':async _0x896485=>{await this['_waitForServiceReady']();const _0x22bab8=await this['_trackChangesService']['get'](_0x896485)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x22bab8]),_0x22bab8;},'addSuggestion':async({id:_0x2cb37c,type:_0x5e3231,data:_0x48b94f,originalSuggestionId:_0x27fd98,attributes:_0xcf2618})=>{await this['_waitForServiceReady']();const _0x432fdc={'id':_0x2cb37c,'type':_0x5e3231,'data':_0x48b94f,'originalSuggestionId':_0x27fd98,'attributes':_0xcf2618},_0x4f9431=await this['_trackChangesService']['add'](_0x2cb37c,_0x5e3231,_0x48b94f,_0x27fd98,_0xcf2618)['catch'](_0x305419=>{if(st(_0x305419))return new Promise(_0x145296=>{this['_bufferedRequests']['set'](_0x2cb37c,{'resolve':_0x145296,'suggestionData':_0x432fdc});});throw _0x305419;});return this['_bufferedRequests']['delete'](_0x2cb37c),_0x4f9431;},'updateSuggestion':async(_0x500d91,_0x1f6006)=>{if(await this['_waitForServiceReady'](),'open'!==_0x1f6006['state'])return this['_trackChangesService']['update'](_0x500d91,_0x1f6006)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x466b90,_0x453ba5)=>{_0x14b0f4['hasSuggestion'](_0x453ba5['id'])&&(_0x14b0f4['getSuggestion'](_0x453ba5['id'])['attributes']=_0x453ba5['attributes']);}),this['_trackChangesService']['connect'](_0x6164ee['connection'])['then'](_0x5cbd4c=>(_0x6164ee['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x5cbd4c)['then'](()=>{for(const _0x4e25ec of _0x5cbd4c){_0x14b0f4['addSuggestionData'](_0x4e25ec)['_saved']=!0x0;}})));}async['reconnect'](){const _0x1c72aa=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x3e6b73}=this['editor']['plugins']['get'](WebSocketGateway),_0x26021b=await this['_trackChangesService']['connect'](_0x3e6b73);await this['_fetchMissingUsersForThreads'](_0x26021b);for(const {suggestionData:_0x163de4,resolve:_0xe9b003}of this['_bufferedRequests']['values']()){let _0x14a006=_0x26021b['find'](_0x1b3610=>_0x1b3610['id']===_0x163de4['id']);_0x14a006||(_0x14a006=await this['_trackChangesService']['add'](_0x163de4['id'],_0x163de4['type'],_0x163de4['data'],_0x163de4['originalSuggestionId'])),_0xe9b003(_0x14a006);}for(const _0xd60ee1 of _0x26021b)_0x1c72aa['hasSuggestion'](_0xd60ee1['id'])||_0x1c72aa['addSuggestionData'](_0xd60ee1);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x5856fc=>{this['listenTo'](this['_trackChangesService'],'connected',_0x369b82=>{_0x369b82['off'](),_0x5856fc();});});}async['_fetchMissingUsersForThreads'](_0x35018a){const _0x5289d8=this['editor']['plugins']['get'](_0x110378),{connection:_0x4fa2ff}=this['editor']['plugins']['get'](WebSocketGateway),_0x49616d=new Set();for(const {authorId:_0x4339b7}of _0x35018a)_0x5289d8['getUser'](_0x4339b7)||_0x49616d['add'](_0x4339b7);if(0x0===_0x49616d['size'])return;const _0x3f8108=await _0xeb9635['getMany'](_0x4fa2ff,Array['from'](_0x49616d));for(const _0x1e464c of _0x3f8108)_0x5289d8['getUser'](_0x1e464c['id'])||_0x5289d8['addUser'](_0x1e464c);}}function et(_0x26b8d6){if(st(_0x26b8d6))return new Promise(()=>{});throw _0x26b8d6;}function st(_0x1340a7){return _0x1340a7['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x1340a7['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x3399ad{static get['requires'](){return[_0x1c96ee,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x36bafc=this['editor']['plugins']['get'](WebSocketGateway),_0x1f6f17=this['editor']['plugins']['get'](_0x181b81),_0x5ee55c=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x36bafc,'change:state',(_0x65496f,_0x573643,_0x278555)=>{_0x1f6f17['isThreadsLoadingPaused']='connected'!==_0x278555;});}),this['listenTo'](_0x36bafc,'change:state',(_0x2d69e1,_0xa79b1f,_0x3c7fc4)=>{this['editor']['plugins']['get'](_0x1503c2)['switchReadOnly']('connected'!==_0x3c7fc4);}),_0x5ee55c['_setUpService'](this['editor']['config']['get']('collaboration.channelId'));}['destroy'](){this['editor']['plugins']['get'](CloudServicesCommentsAdapter)['_terminateService'](this['editor']['config']['get']('collaboration.channelId')),super['destroy']();}}class RealTimeCollaborativeTrackChanges extends _0x3399ad{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x4946b3];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x3399ad{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
|
|
28
|
+
((()=>_0x38ed0c)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x3bca10,Sessions,_0x110378];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x27bb33){super(_0x27bb33);const _0x42c18e=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x42c18e);}async['init'](){const _0x4550a3=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x5f11dd=_0x4550a3['serverHistory'],_0x543a45=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x5f11dd,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x4550a3['sessionId']});const _0x574fa3=this['editor']['config']['get']('cloudServices.bundleVersion')||_0xb80067,_0x4ce535=await _0x12985e['isBundleUploaded'](_0x543a45['connection'],_0x574fa3);this['editor']['plugins']['get'](_0x3bca10)['adapter']={'getRevision':async({revisionId:_0x44ac9c})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x44ac9c)),'updateRevisions':async _0xaaef7c=>{await this['_waitForServiceReady']();const _0x3f66e5=this['_revisionTracker']['currentRevision'];if(_0x4ce535&&0x1===_0xaaef7c['length']&&_0xaaef7c[0x0]['id']===_0x3f66e5['id'])return _0xaaef7c;for(const _0x16d6e8 of _0xaaef7c)_0x16d6e8['id']===_0x3f66e5['id']&&(_0x16d6e8['isEmptyCurrent']=_0x16d6e8['fromVersion']===_0x16d6e8['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0xaaef7c,this['_lastRequestId'])['then'](_0x5c6b40=>(this['_lastRequestId']=_0x5c6b40,_0xaaef7c))['catch'](_0x37903f=>{if(it(_0x37903f)||'400'===_0x37903f['code']&&void 0x0!==_0x37903f['data']['wrongRequestId']){for(const _0x2dbcd7 of _0xaaef7c){!this['_revisionTracker']['repository']['getRevision'](_0x2dbcd7['id'])||this['_revisionTracker']['_bufferUpdate'](_0x2dbcd7['id'],_0x2dbcd7,!0x1);}if(it(_0x37903f)&&'destroyed'!==this['editor']['state'])throw _0x37903f;return _0xaaef7c;}throw _0x37903f;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x51e9b9,{revisionsData:_0x239302,requestId:_0x36f26a})=>{Math['max'](..._0x239302['map'](_0x15c0ce=>_0x15c0ce['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x239302,_0x36f26a);}):this['_handleRevisionsUpdate'](_0x239302,_0x36f26a);});const {revisions:_0x4630b4,requestId:_0x349f48}=await this['_revisionHistoryService']['connect'](_0x543a45['connection']);_0x543a45['addToReconnectionStack'](this),this['_lastRequestId']=_0x349f48,await this['_fetchMissingUsers'](_0x4630b4);for(const _0x262926 of _0x4630b4)this['_revisionTracker']['addRevisionData'](_0x262926);this['listenTo'](_0x4550a3,'change:_isConnected',(_0x4734b6,_0xa3d50c,_0x1dbe69)=>{_0x1dbe69&&(this['_oldOffset']=_0x4550a3['_offset'],_0x4734b6['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x543a45,'state',_0x40cf07=>_0x40cf07===_0x3a74ac['CONNECTED']);}async['reconnect'](){const _0xd13a5d=this['editor']['plugins']['get'](WebSocketGateway),_0x36770b=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x2c6524=async()=>{const _0x3185d1=this['_revisionTracker']['currentRevision'],_0x4852c0=_0x3185d1['id'],_0x3fc571=_0x4852c0!==_0x36770b['sessionId'];if(_0x3fc571){const _0x5c0f88=_0x36770b['_offset']-this['_oldOffset'],_0x5cade6=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x3185d1['toVersion']+_0x5c0f88!==_0x5cade6){const _0x1d267d=_0x3185d1['fromVersion']+_0x5c0f88,_0x561864=this['editor']['plugins']['get'](_0x110378),_0x12ff4d=this['_revisionTracker']['buildRevisionData']({'revision':_0x3185d1,'from':_0x1d267d,'to':_0x5cade6});_0x12ff4d['id']=_0x3185d1['id'];const _0x2f50dd=_0x12ff4d['authorsIds']['map'](_0x28c602=>_0x561864['getUser'](_0x28c602));_0x3185d1['_update']({..._0x12ff4d,'authors':_0x2f50dd},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x3185d1['id'],_0x12ff4d,!0x0);}this['_revisionTracker']['_startingVersion']=_0x5cade6,(_0x3185d1['toVersion']===_0x3185d1['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x4852c0)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x4852c0),this['_revisionTracker']['_createCurrentRevision'](_0x5cade6));}const {revisions:_0x2c8371,requestId:_0x41db18}=await this['_revisionHistoryService']['reconnect'](_0xd13a5d['connection'],this['_lastRequestId']);_0x3fc571&&_0x2c8371['length']>0x0?_0x36770b['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x2c8371),this['_handleRevisionsUpdate'](_0x2c8371,_0x41db18),this['_revisionTracker']['sendBufferedUpdates']());};return _0x36770b['_isConnected']?_0x2c6524():new Promise((_0x36321f,_0x424371)=>{_0x36770b['once']('change:_isConnected',()=>{_0x2c6524()['then'](_0x36321f)['catch'](_0x424371);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x387712=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x95259b=>{_0x95259b['off'](),_0x387712();});});}['_getLatestVersionFromServerOperations'](){const _0x1f16a3=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x1303c5 of _0x1f16a3)if('marker'!==_0x1303c5['type']||_0x1303c5['affectsData'])return _0x1303c5['baseVersion']+0x1;}['_getLatestVersion'](){const _0x211120=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x315632=>{_0x211120['_isPendingUpdate']?_0x211120['once']('change:_isPendingUpdate',()=>{_0x315632(this['_getLatestVersionFromServerOperations']());}):_0x315632(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0xe24f26,_0x226189){const _0x3c2abe=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x226189;for(const _0x54743b of _0xe24f26){const _0x581d80=_0x3c2abe['getRevision'](_0x54743b['id']);if(_0x581d80){if((_0x54743b['fromVersion']||_0x54743b['toVersion'])&&(_0x54743b['diffData']=null),_0x581d80===this['_revisionTracker']['currentRevision']){const _0x44f342=Math['max'](_0x581d80['toVersion'],_0x54743b['toVersion']),_0x4f79f4=Math['max'](_0x581d80['fromVersion'],_0x54743b['fromVersion']);let _0x4a200e;_0x581d80['toVersion']===_0x54743b['toVersion']&&_0x581d80['fromVersion']===_0x54743b['fromVersion']?(_0x4a200e=!0x0,this['_preventResendingRevisionData'](_0x54743b)):_0x54743b['toVersion']===_0x44f342&&_0x54743b['fromVersion']===_0x4f79f4?_0x4a200e=!0x1:(_0x581d80['toVersion']===_0x44f342&&_0x581d80['fromVersion']===_0x4f79f4||this['_fixRevision']({'revision':_0x581d80,'from':_0x4f79f4,'to':_0x44f342}),_0x4a200e=!0x0),_0x4a200e&&(delete _0x54743b['fromVersion'],delete _0x54743b['toVersion'],delete _0x54743b['diffData'],delete _0x54743b['createdAt'],delete _0x54743b['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x54743b),this['_preventResendingRevisionData'](_0x54743b);}else this['_revisionTracker']['addRevisionData'](_0x54743b);}const _0xc772b2=_0x3c2abe['getRevisions']();_0xc772b2['reverse']();for(let _0x55e2e4=0x0;_0x55e2e4<_0xc772b2['length']-0x1;_0x55e2e4++){const _0x204641=_0xc772b2[_0x55e2e4],_0x4a9cc5=_0xc772b2[_0x55e2e4+0x1];if(_0x204641['fromVersion']<_0x4a9cc5['toVersion']){const _0x4b6cf0=_0x4a9cc5['toVersion'],_0xd458b9=Math['max'](_0x4b6cf0,_0x204641['toVersion']);this['_fixRevision']({'revision':_0x204641,'from':_0x4b6cf0,'to':_0xd458b9});}}}['_fixRevision']({revision:_0x24cc21,from:_0x2ce66f,to:_0x5195e2}={}){const _0x10a840=this['editor']['plugins']['get'](_0x110378),_0x1e40f7=this['_revisionTracker']['buildRevisionData']({'revision':_0x24cc21,'from':_0x2ce66f,'to':_0x5195e2});_0x1e40f7['authors']=_0x1e40f7['authorsIds']['map'](_0x2afe5a=>_0x10a840['getUser'](_0x2afe5a)),_0x24cc21['_update'](_0x1e40f7);}['_preventResendingRevisionData'](_0x2e953c){const _0x13ac8a={};_0x13ac8a['id']=_0x2e953c['id'];for(const _0x5a73f0 of Object['keys'](_0x2e953c))'id'!==_0x5a73f0&&(_0x13ac8a[_0x5a73f0]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x13ac8a['id'],_0x13ac8a,!0x0);}async['_fetchMissingUsers'](_0x4a5a0e){const _0x4dda68=this['editor']['plugins']['get'](_0x110378),{connection:_0x5a7237}=this['editor']['plugins']['get'](WebSocketGateway),_0x1e003f=new Set();for(const _0x31a19b of _0x4a5a0e){for(const _0x5de093 of _0x31a19b['authorsIds'])_0x39284b(_0x5de093);_0x31a19b['creatorId']&&_0x39284b(_0x31a19b['creatorId']);}if(0x0===_0x1e003f['size'])return;const _0x407880=await _0xeb9635['getMany'](_0x5a7237,Array['from'](_0x1e003f));for(const _0xebdd1e of _0x407880)_0x4dda68['getUser'](_0xebdd1e['id'])||_0x4dda68['addUser'](_0xebdd1e);function _0x39284b(_0x314526){_0x4dda68['getUser'](_0x314526)||_0x1e003f['add'](_0x314526);}}}function it(_0x5e9974){return _0x5e9974['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x5e9974['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x5e9974['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x3399ad{static get['requires'](){return[_0x3bca10,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x461b17{['_collapseAt'];constructor(_0x228a43,_0x429c19=0x6){super(_0x228a43);const _0x4e8d40=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x429c19,this['bind']('isHidden')['to'](this,'usersCount',_0x2d8243=>_0x2d8243<_0x429c19),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x4e8d40['if']('isHidden','ck-presence-list__counter--hidden')],'role':'listitem'},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter']},'children':[{'tag':'div','attributes':{'class':['ck','ck-presence-list__users-counter__text']},'children':[{'text':_0x4e8d40['to']('usersCount',_0x4a2701=>'+'+(_0x4a2701-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x461b17{['items'];['keystrokes'];constructor(_0x5107c3){super(_0x5107c3);const _0x1ce2f=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x260cbc(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x1ce2f['if']('hasPopup'),'aria-expanded':_0x1ce2f['to']('isExpanded',_0x1db3c4=>this['hasPopup']&&String(_0x1db3c4)),'aria-label':_0x1ce2f['to']('hasPopup',_0x294dd2=>K(_0x5107c3,_0x294dd2?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x1ce2f['to']('hasPopup',_0x216557=>!!_0x216557&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x1ce2f['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x1ce2f['to'](_0x4e6a4f=>{const _0x16e391=_0x4e6a4f,_0x3c5bf3=document['querySelector']('.ck-presence-list__dropdown-list'),_0x557546=document['querySelector']('.ck-balloon-panel_with-arrow');_0x3c5bf3?.['contains'](_0x16e391['relatedTarget'])||_0x557546?.['contains'](_0x16e391['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x396f30,_0xb01d96,_0x22d76f)=>{this['element']&&(_0x22d76f?this['element']['setAttribute']('aria-expanded',String(this['isExpanded'])):this['element']['removeAttribute']('aria-expanded'));});}['focus'](){this['element']['focus']();}['render'](){super['render'](),this['keystrokes']['listenTo'](this['element']);}}class PresenceListView extends _0x461b17{['counterView'];['inlineListView'];constructor(_0x35301c,_0x1f8119=0x6){super(_0x35301c);const _0x1a2901=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x1f8119),this['inlineListView']=new PresenceInlineListView(_0x35301c),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x3b90b5 of this['inlineListView']['items'])_0x3b90b5['tooltipPosition']='s';this['inlineListView']['items']['first']&&(this['inlineListView']['items']['first']['tooltipPosition']='se');}),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list','ck-reset','ck-rounded-corners',_0x1a2901['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x461b17{['listWrapperView'];constructor(_0x16de08,_0x4def5e){super(_0x16de08);const _0xc28230=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x16de08,_0x4def5e),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x16de08,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0xc28230['to'](_0x210356=>{const _0x4c41aa=_0x210356,_0x9cb05f=document['querySelector']('.ck-presence-list__list'),_0x4dd9d1=document['querySelector']('.ck-balloon-panel_with-arrow');_0x9cb05f?.['contains'](_0x4c41aa['relatedTarget'])||_0x4dd9d1?.['contains'](_0x4c41aa['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x178ec2{constructor(_0x68a2b7,_0x2aa58e){super(_0x68a2b7);const _0xf86cdd=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x2aa58e?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0xf86cdd['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0xf86cdd['to']('role'),'aria-label':_0xf86cdd['to']('ariaLabel'),'aria-labelledby':_0xf86cdd['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x22ef6c['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x6676d5=this['element'];_0x6676d5&&(this['_isScrollable']=Math['max'](_0x6676d5['scrollHeight'],_0x6676d5['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x373600{['userView'];constructor(_0x45d99c,_0x11ddba,_0x1c1fdf){super(_0x45d99c);const _0x5319f0=this['bindTemplate'];this['userView']=new _0x3115e5(_0x45d99c,_0x11ddba);const _0x38b8a6={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x11ddba['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x11ddba['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x11ddba['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x11ddba['color']['getColorVariable'](),'--ck-user-color-alpha':_0x11ddba['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x1c1fdf&&(_0x38b8a6['tag']='button',_0x38b8a6['on']={'click':_0x5319f0['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x38b8a6);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x461b17{['userView'];['markerView'];constructor(_0x24afe5,_0x498134,_0x198fc1){super(_0x24afe5);const _0x503521=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x3115e5(_0x24afe5,_0x498134),this['markerView']=new MarkerView(_0x24afe5,_0x498134);const _0x24ef58=new _0x4d304a(_0x24afe5);_0x24ef58['template']['tag']='span',_0x24ef58['text']=_0x498134['name'];const _0x143cd5={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x503521['to']('isFocusable',_0x3e6718=>!!_0x3e6718&&0x0),'aria-labelledby':_0x24ef58['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x503521['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x503521['to']('hasTooltip',_0xa0916e=>!_0xa0916e),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x24ef58]};_0x198fc1&&(_0x143cd5['tag']='button',_0x143cd5['on']={'click':_0x503521['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x143cd5);}}class MarkerView extends _0x461b17{constructor(_0x258df9,_0x16de91){super(_0x258df9),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x16de91['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x16de91['color']['getColorVariable'](),'--ck-user-color-alpha':_0x16de91['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0xb2e98b{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x2b8159){super(_0x2b8159),this['context']['config']['define']('presenceList',nt);const _0x5aa5e1=_0x2b8159['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x5aa5e1)throw new _0x1cc85d('presencelist-collapseat-invalid-format',this);if(_0x5aa5e1<0x1)throw new _0x1cc85d('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x36c9b5(),this['balloonPanelView']=new _0x212c7c(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x44d116 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x44d116);this['listenTo'](this['_allConnectedUsers'],'add',(_0x80a2f8,_0x32408a)=>{this['_handleUserAdd'](_0x32408a);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x74f6a2,_0x2b9701)=>{this['_handleUserRemove'](_0x2b9701);});}['_createView'](){const _0x7db562=this['context'],_0xdb4899=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x35480d=this['balloonPanelView'];if(!_0x27aa18(_0x7db562['config']['get']('presenceList.container')))throw new _0x1cc85d('presencelist-missing-container',this);return _0xdb4899['counterView']['bind']('usersCount')['to'](this),_0xdb4899['bind']('isCollapsed')['to'](this,'usersCount',_0x15a710=>{const {collapseAt:_0x101359}=_0x7db562['config']['get']('presenceList'),_0x2bba28=_0x15a710>=_0x101359;if(_0x2bba28&&!_0xdb4899['inlineListView']['items']['find'](_0x3c98f7=>_0x3c98f7 instanceof PresenceCounterView)){const _0x1af164=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x1af164&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0xdb4899['inlineListView']['items']['add'](_0xdb4899['counterView']);}return _0x2bba28||this['hideDropdown'](),_0x2bba28;}),_0xdb4899['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0xf984cf=>{const _0x312707=_0x7db562['config']['get']('presenceList'),_0x2c7cf6=new PresenceInlineListItemView(_0x7db562['locale'],_0xf984cf,!!_0x312707['onClick']);return _0x2c7cf6['bind']('hasTooltip')['to'](_0xdb4899,'isCollapsed',_0x2a3638=>!_0x2a3638),_0x2c7cf6['bind']('isFocusable')['to'](_0xdb4899,'isCollapsed',_0x339f84=>!_0x339f84),_0x312707['onClick']&&this['listenTo'](_0x2c7cf6,'execute',()=>{this['view']['isCollapsed']||_0x312707['onClick'](_0xf984cf,_0x2c7cf6['element']);}),_0x2c7cf6;}),this['listenTo'](_0xdb4899['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0xdb4899['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0xdb4899['inlineListView']['keystrokes']['set']('Enter',(_0xb0f239,_0x38ee06)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x38ee06());}),_0xdb4899['render'](),_0x35480d['render'](),_0x171c4b({'emitter':_0xdb4899,'activator':()=>_0x35480d['isVisible'],'contextElements':[_0x35480d['element'],_0xdb4899['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x7db562['config']['get']('presenceList.container')['appendChild'](_0xdb4899['element']),this['_bodyCollection']=new _0x144898(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0xdb4899;}['_handleUserAdd'](_0xdaf316){if(!this['context']['config']['get']('presenceList.displayMe')&&_0xdaf316['isMe'])return;const _0x461836=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x461836-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x4d8179=_0xdaf316['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0xdaf316,_0x4d8179);}['_handleUserRemove'](_0x2d3414){this['usersCount']--;const {collapseAt:_0x4e845a}=this['context']['config']['get']('presenceList'),_0x58f4f8=this['usersCount']>=_0x4e845a;if(this['currentDisplayedUsers']['get'](_0x2d3414['id']))this['currentDisplayedUsers']['remove'](_0x2d3414['id']);else{if(_0x58f4f8&&this['currentDisplayedUsers']['length']+0x1===_0x4e845a-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x58f4f8?0x1:0x0)<this['usersCount']){for(const _0x8fded9 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x8fded9['id'])&&(this['currentDisplayedUsers']['add'](_0x8fded9,Math['min'](this['currentDisplayedUsers']['length']-(_0x58f4f8?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x58f4f8?0x1:0x0)===_0x4e845a-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x1edf46=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x1edf46['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x2930cb}=this['presenceDropdownView'];_0x2930cb['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x537718=>{if(!_0x1edf46['displayMe']&&_0x537718['isMe'])return null;const _0x53e3a4=new PresenceDropdownListItemView(this['context']['locale'],_0x537718,!!_0x1edf46['onClick']);return _0x1edf46['onClick']&&this['listenTo'](_0x53e3a4,'execute',()=>{_0x1edf46['onClick'](_0x537718,_0x53e3a4['element']);}),_0x53e3a4;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x2930cb['focus'](),_0x2930cb['checkIfScrollable']();const _0x4833df=(_0x58d755,_0x4bd21e)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x4bd21e();};_0x2930cb['keystrokes']['set']('Esc',_0x4833df),_0x2930cb['keystrokes']['set']('Shift+Tab',_0x4833df),_0x2930cb['keystrokes']['set']('Tab',(_0x136e46,_0x1b1730)=>{!function(_0x5d87ef){const _0x5edc46=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x5bcfea=>_0x5bcfea+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x30861d=[...document['body']['querySelectorAll'](_0x5edc46)]['filter'](_0x161481=>_0x161481===document['activeElement']||_0x161481['offsetWidth']+_0x161481['offsetHeight']>0x0)['sort']((_0x415fb3,_0x372f1a)=>(_0x415fb3['tabIndex']||0x0)-(_0x372f1a['tabIndex']||0x0)),_0x5a319c=_0x30861d['indexOf'](_0x5d87ef),_0xed236a=_0x30861d[(_0x5a319c+0x1)%_0x30861d['length']];_0xed236a&&_0xed236a['focus']();}(this['view']['element']),this['hideDropdown'](),_0x1b1730();}),_0x2930cb['focusTracker']['add'](this['view']['element']),_0x2930cb['focusTracker']['on']('change:isFocused',(_0x2a5a46,_0x31dfed,_0x5b4c9d)=>{_0x5b4c9d||this['hideDropdown']();});}['hideDropdown'](){this['presenceDropdownView']&&(this['view']['inlineListView']['isExpanded']=!0x1,this['balloonPanelView']['unpin'](),this['balloonPanelView']['content']['remove'](this['presenceDropdownView']),this['presenceDropdownView']['destroy'](),this['presenceDropdownView']=void 0x0);}['destroy'](){super['destroy'](),this['view']&&this['view']['isRendered']&&this['view']['destroy'](),this['_bodyCollection']&&(this['_bodyCollection']['detachFromDom'](),this['_bodyCollection']['destroy'](),this['_bodyCollection']=null);}}class PresenceList extends _0xb2e98b{static get['requires'](){return[Sessions,PresenceListUI];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}export{CloudServicesCommentsAdapter,CloudServicesRevisionHistoryAdapter,CloudServicesTrackChangesAdapter,PresenceList,PresenceListUI,RealTimeCollaborationClient,RealTimeCollaborativeComments,RealTimeCollaborativeEditing,RealTimeCollaborativeRevisionHistory,RealTimeCollaborativeTrackChanges,Sessions,WebSocketGateway};
|