@ckeditor/ckeditor5-real-time-collaboration 48.2.0-alpha.5 → 48.2.0-alpha.7
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 _0x191ab4,Plugin as _0x523d5c,PendingActions as _0x8e714,Context as _0x82da95}from'@ckeditor/ckeditor5-core/dist/index.js';import{DomEmitterMixin as _0x80e1e9,CKEditorError as _0x44690c,Collection as _0xd26e88,global as _0x14a421,version as _0x146c5e,uid as _0x2e2a43,KeystrokeHandler as _0x4de09d}from'@ckeditor/ckeditor5-utils/dist/index.js';import{Notification as _0x552a0d,View as _0x59157b,ListView as _0x3a285a,ListItemView as _0x245139,LabelView as _0x1c19b1,BalloonPanelView as _0x19c131,clickOutsideHandler as _0x52aaad,BodyCollection as _0x418f13}from'@ckeditor/ckeditor5-ui/dist/index.js';import{ModelLiveRange as _0xee587a,History as _0x5bc90f,NoOperation as _0x2303ac,InsertOperation as _0x484853,MarkerOperation as _0x1fb70f,RootAttributeOperation as _0x3050ce,transformOperationSets as _0x2638b1,OperationFactory as _0x18bdd0}from'@ckeditor/ckeditor5-engine/dist/index.js';import{CloudServices as _0x4caa52}from'@ckeditor/ckeditor5-cloud-services/dist/index.js';import{WebSocketGateway as _0x3b949e,WEB_SOCKET_GATEWAY_STATES as _0xb53f3f,CollaborativeEditingService as _0xe673cf,User as _0x270274,CommentsService as _0x177deb,TrackChangesService as _0x26d7c6,RevisionHistoryService as _0x3b4c9e,EditorService as _0x5b3750}from'@ckeditor/ckeditor-cloud-services-collaboration';import{Users as _0xbd9206,UserView as _0x1b8b54}from'@ckeditor/ckeditor5-collaboration-core/dist/index.js';import{Compressor as _0x7f9a95}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChangesEditing as _0x1a1529,TrackChanges as _0x2d4889}from'@ckeditor/ckeditor5-track-changes/dist/index.js';import{CommentsRepository as _0x55664d,Comments as _0x42ae2e,CommentsEditing as _0x121bef}from'@ckeditor/ckeditor5-comments/dist/index.js';import{RevisionHistory as _0x510d56}from'@ckeditor/ckeditor5-revision-history/dist/index.js';import{isElement as _0x54c657}from'es-toolkit/compat';class WebSocketGateway extends _0x191ab4{static ['WebSocketGateway']=/* #__PURE__ -- @preserve */
|
|
24
|
+
((()=>_0x3b949e)());static ['initialReconnectionInterval']=0x3e8;['connection'];['_reconnectionStack'];['_shouldPluginsReconnect'];['_domEmitter'];static get['requires'](){return[_0x4caa52,_0x552a0d];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x513899){super(_0x513899),this['set']('state',_0xb53f3f['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x80e1e9())();}['init'](){const _0x187e61=this['context'],_0x203ca3=_0x187e61['plugins']['get'](_0x4caa52),_0x19da8d=_0x187e61['plugins']['get'](_0x552a0d);if(!_0x203ca3['token'])throw new _0x44690c('websocketgateway-missing-token',this);if(!_0x203ca3['webSocketUrl'])throw new _0x44690c('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'](_0x203ca3['token'],_0x203ca3['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x5e4304=>{if(this['connection']=_0x5e4304,this['bind']('state')['to'](_0x5e4304,'state',this,'_isBrowserOffline',(_0x38001b,_0x240d5c)=>('connected'!==_0x38001b&&(this['_shouldPluginsReconnect']=!0x0),_0x240d5c||_0x38001b!==_0xb53f3f['CONNECTED']?_0xb53f3f['DISCONNECTED']:this['state']==_0xb53f3f['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0xb53f3f['CONNECTING']):_0xb53f3f['CONNECTED'])),this['connection']['on']('error',(_0xa36fd,_0x127978)=>{if('limitExceeded'!==_0x127978['code'])throw console['error'](_0x127978),new _0x44690c('cloudservices-init',null,{'originalError':_0x127978});_0x19da8d['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'});}),!_0x5e4304['me'])return new Promise(_0x1100db=>_0x5e4304['on']('change:me',_0x1100db));})['catch'](_0x26c310=>{throw console['error'](_0x26c310),new _0x44690c('cloudservices-init',null,{'originalError':_0x26c310});});}['addToReconnectionStack'](_0x1d97f7){if('function'!=typeof _0x1d97f7['reconnect'])throw new _0x44690c('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x1d97f7))throw new _0x44690c('websocketgateway-plugin-already-registered',this,{'name':_0x1d97f7['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x1d97f7);}['removeFromReconnectionStack'](_0x4701f2){this['_reconnectionStack']['delete'](_0x4701f2);}['isInReconnectionStack'](_0x102ab8){return this['_reconnectionStack']['has'](_0x102ab8);}['_reconnect'](){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x3bf125=>_0x3bf125['reconnect']())))['then'](()=>this['state']=_0xb53f3f['CONNECTED'])['catch'](_0x19260e=>{throw console['error'](_0x19260e),new _0x44690c('cloudservices-reconnection-error',this['context']);});}['disconnect'](){this['connection']&&this['connection']['disconnect'](),this['state']=_0xb53f3f['DISCONNECTED'],this['_domEmitter']['stopListening']();}['destroy'](){this['disconnect'](),super['destroy']();}}class Sessions extends _0x191ab4{['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,_0xbd9206];}constructor(_0x2df428){super(_0x2df428),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0xd26e88(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0xbd9206);}['init'](){const _0xb96130=this['context']['plugins']['get'](WebSocketGateway);this['listenTo'](_0xb96130,'change:state',(_0x54b028,_0x32894e,_0x4e3c7e)=>{if('connected'!==_0x4e3c7e)this['channelSessions']['forEach'](_0x166367=>_0x166367['clear']()),this['channelConnectedUsers']['forEach'](_0x522339=>_0x522339['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x23c085,_0x2f1d23]of this['_registeredSessions'])for(const _0x3ea320 of _0x2f1d23)this['_handleSessionAdd'](_0x23c085,_0x3ea320);}}),this['_createUser'](_0xb96130['connection']['me'],!0x0);}['register'](_0x2048e1,_0x415608){if(this['_registeredSessions']['has'](_0x2048e1))throw new _0x44690c('sessions-register-already-registered',null,{'channelId':_0x2048e1});this['_registeredSessions']['set'](_0x2048e1,_0x415608),this['channelSessions']['set'](_0x2048e1,new _0xd26e88()),this['channelConnectedUsers']['set'](_0x2048e1,new _0xd26e88()),this['listenTo'](_0x415608,'add',(_0x1b7bf5,_0x3e079e)=>this['_handleSessionAdd'](_0x2048e1,_0x3e079e)),this['listenTo'](_0x415608,'remove',(_0x53f7d6,_0x2079b3)=>this['_handleSessionRemove'](_0x2048e1,_0x2079b3));for(const _0x312b38 of _0x415608)this['_handleSessionAdd'](_0x2048e1,_0x312b38);}['unregister'](_0x3a23cf){if(!this['_registeredSessions']['has'](_0x3a23cf))throw new _0x44690c('sessions-unregister-not-exist',null,{'channelId':_0x3a23cf});const _0x2adf34=this['_registeredSessions']['get'](_0x3a23cf);this['stopListening'](_0x2adf34);for(const _0x4df2f1 of _0x2adf34)'connected'===this['context']['plugins']['get'](WebSocketGateway)['state']&&this['_handleSessionRemove'](_0x3a23cf,_0x4df2f1);this['_registeredSessions']['delete'](_0x3a23cf),this['channelSessions']['delete'](_0x3a23cf),this['channelConnectedUsers']['delete'](_0x3a23cf);}get['mySessionId'](){return this['context']['plugins']['get'](WebSocketGateway)['connection']['sessionId'];}['getUserBySessionId'](_0x354c45){for(const _0x14a592 of this['channelSessions']['values']())for(const _0x52b844 of _0x14a592)if(_0x52b844['id']===_0x354c45)return _0x52b844['user'];}['getUserSessions'](_0x241ea6,_0x4298a6){const _0x5edb91=_0x4298a6?[this['channelSessions']['get'](_0x4298a6)]:this['channelSessions']['values'](),_0x22cb7c=new Set();for(const _0x16b3a3 of _0x5edb91)for(const _0x466cd8 of _0x16b3a3)_0x466cd8['user']['id']===_0x241ea6['id']&&_0x22cb7c['add'](_0x466cd8['id']);return _0x22cb7c;}['getUserRole'](_0x1715c3){for(const _0x55c30b of this['channelSessions']['values']())for(const _0x4da46f of _0x55c30b)if(_0x4da46f['user']===_0x1715c3)return _0x4da46f['role'];}['_handleSessionAdd'](_0x1fdce3,_0x269bf5){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x2ae26e=_0x269bf5['user'],_0x478c01=this['_users']['getUser'](_0x2ae26e['id'])||this['_createUser'](_0x2ae26e),_0x19b6f3=Object['assign']({},_0x269bf5,{'user':_0x478c01});if(this['channelSessions']['get'](_0x1fdce3)['add'](_0x19b6f3),!_0x2ae26e['hiddenInPresenceList']){const _0x344ba1=this['channelConnectedUsers']['get'](_0x1fdce3);_0x344ba1['has'](_0x478c01['id'])||_0x344ba1['add'](_0x478c01),this['allConnectedUsers']['has'](_0x478c01['id'])||_0x2ae26e['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x478c01,_0x478c01['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x1fdce3,{'channelId':_0x1fdce3,'session':_0x19b6f3});}['_handleSessionRemove'](_0x591a9c,_0x5b06c2){if('connected'!==this['context']['plugins']['get'](WebSocketGateway)['state'])return;const _0x1dd670=this['channelConnectedUsers']['get'](_0x591a9c),_0x4bd192=_0x5b06c2['user'];_0x4bd192['id']&&(this['channelSessions']['get'](_0x591a9c)['remove'](_0x5b06c2['id']),_0x1dd670['has'](_0x4bd192['id'])&&!this['getUserSessions'](_0x4bd192,_0x591a9c)['size']&&_0x1dd670['remove'](_0x4bd192['id']),this['allConnectedUsers']['get'](_0x4bd192['id'])&&!this['getUserSessions'](_0x4bd192)['size']&&this['allConnectedUsers']['remove'](_0x4bd192['id']));}['_createUser'](_0x492396,_0x5f42d4){const _0x5f129a=this['_users']['addUser'](_0x492396);return _0x5f42d4&&this['_users']['defineMe'](_0x492396['id']),_0x5f129a['orderNumber']=this['_uniqueUsersCount']++,_0x5f129a;}}class UserMarkers extends _0x523d5c{['_domEmitter']=new(_0x80e1e9())();static get['requires'](){return[Sessions];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x5098bd=this['editor'],_0x4f47bb=_0x5098bd['plugins']['get'](Sessions);_0x5098bd['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x5df524,{writer:_0x1eb55c})=>function(_0x5b1462,_0x25a01b,_0x5e0ad6,_0x5be1b6){const _0xb9e396=_0x5b1462['markerName']['split'](':')[0x2],_0x396894=_0x5e0ad6['getUserBySessionId'](_0xb9e396);if(!_0x396894||_0xb9e396===_0x5e0ad6['mySessionId'])return;if(!_0x5be1b6['model']['schema']['checkChild'](_0x5b1462['markerRange']['start'],'$text'))return;const _0x289e6a={'class':'ck-user__marker\x20'+_0x396894['color']['getMarkerClass'](),'style':Y(_0x396894),'data-name':_0x396894['name'],'data-session-id':_0xb9e396},_0x432f57=_0x5be1b6['model']['markers']['get'](_0x5b1462['markerName']),_0x30d25f=_0x432f57['getStart'](),_0x4777f3=_0x30d25f['nodeAfter'],_0x3c28d1=_0x5be1b6['model']['schema'];if(_0x4777f3&&_0x3c28d1['isObject'](_0x4777f3)&&_0x3c28d1['isInline'](_0x4777f3)&&!_0x5be1b6['model']['markers']['get']('user:range:'+_0xb9e396)['getRange']()['isCollapsed'])return;const _0xdfdc99=_0x30d25f['parent'];return _0x5be1b6['model']['schema']['isLimit'](_0xdfdc99)&&!_0x5be1b6['model']['hasContent'](_0xdfdc99)&&(_0x289e6a['contenteditable']=!0x1),function(_0x10d397,_0xad0c51,_0xb3703f){const _0x41dc2c=_0x10d397['createUIElement']('span',_0xad0c51);return _0x10d397['setCustomProperty']('userPositionMarker',!0x0,_0x41dc2c),_0x41dc2c['render']=function(_0x38b259){const _0x4663b7=this['toDomElement'](_0x38b259),_0x1a49a8=document['createElement']('span');return _0x1a49a8['classList']['add']('ck-user__marker-tooltip'),_0x1a49a8['setAttribute']('contenteditable','false'),_0x1a49a8['setAttribute']('spellcheck','false'),_0x1a49a8['textContent']=_0xb3703f['name'],_0x4663b7['innerHTML']='<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x1a49a8['outerHTML']+'',_0x4663b7['addEventListener']('mouseenter',()=>{_0x4663b7['classList']['add']('ck-user__marker_hovered');}),_0x4663b7['addEventListener']('mouseleave',()=>{_0x4663b7['classList']['remove']('ck-user__marker_hovered');}),_0x4663b7;},_0x41dc2c['isSimilar']=function(_0x52af88){return!(!this['getCustomProperty']('userPositionMarker')||!_0x52af88['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x52af88['getAttribute']('data-session-id'));},_0x41dc2c;}(_0x25a01b,_0x289e6a,_0x396894);}(_0x5df524,_0x1eb55c,_0x4f47bb,_0x5098bd)}),_0x5098bd['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x1e4d22=>function(_0xaf186f,_0x3109c2){const _0x499d64=_0xaf186f['markerName']['split'](':')[0x2];if(_0x499d64===_0x3109c2['mySessionId'])return null;const _0x1b8a9f=_0x3109c2['getUserBySessionId'](_0x499d64);if(!_0x1b8a9f)return{'id':_0x499d64,'classes':[]};return{'id':_0x499d64,'classes':['ck-user__selection',_0x1b8a9f['color']['getSelectionClass']()],'attributes':{'style':Y(_0x1b8a9f),'data-session-id':_0x499d64},'priority':0x7d0+_0x1b8a9f['orderNumber']};}(_0x1e4d22,_0x4f47bb)}),function(_0x463034){const _0x4feccb=_0x463034['model'],_0x2b1513=new Map(),_0x824683=_0x463034['plugins']['get'](Sessions);_0x4feccb['markers']['on']('update:user:range',(_0x3916ee,_0x2aa9f6,_0x528e95,_0x4d60b6)=>{if(!_0x4d60b6&&_0x2b1513['get'](_0x2aa9f6['name']))return _0x2b1513['get'](_0x2aa9f6['name'])['detach'](),void _0x2b1513['delete'](_0x2aa9f6['name']);const _0x2abb73=_0x2aa9f6['name']['split'](':')[0x2];if(_0x2abb73===_0x824683['mySessionId'])return;const _0x4980e1='user:position:'+_0x2abb73;_0x4feccb['markers']['has'](_0x4980e1)&&_0x463034['editing']['reconvertMarker'](_0x4980e1),_0x2aa9f6['on']('change:range',(_0x22c262,_0x27b806,_0x2bf0e1)=>{if('$graveyard'!=_0x27b806['root']['rootName']&&'$graveyard'==_0x2aa9f6['getRange']()['root']['rootName']&&!_0x2b1513['has'](_0x2aa9f6['name'])){const _0x4648d1=_0x4feccb['schema']['getNearestSelectionRange'](_0x2bf0e1['deletionPosition']);if(_0x4648d1){const _0x42fda=_0xee587a['fromRange'](_0x4648d1);_0x2b1513['set'](_0x2aa9f6['name'],_0x42fda),_0x42fda['on']('change:range',(_0x53567f,_0x54e0bb,_0x251f29)=>{if('$graveyard'==_0x42fda['root']['rootName']){const _0x51da16=_0x4feccb['schema']['getNearestSelectionRange'](_0x251f29['deletionPosition']);_0x51da16?(_0x42fda['start']=_0x51da16['start'],_0x42fda['end']=_0x51da16['end']):(_0x2b1513['delete'](_0x2aa9f6['name']),_0x42fda['detach']());}});}}});}),_0x4feccb['document']['on']('change',()=>{_0x2b1513['size']>0x0&&_0x4feccb['enqueueChange']({'isUndoable':!0x1},_0x122a23=>{for(const [_0xef7e10,_0x12fc45]of _0x2b1513)'$graveyard'==_0x4feccb['markers']['get'](_0xef7e10)['getRange']()['root']['rootName']&&(z(_0xef7e10['split'](':')[0x2],_0x12fc45['toRange'](),_0x4feccb,_0x122a23),_0x12fc45['detach']());_0x2b1513['clear']();});});}(_0x5098bd),this['_domEmitter']['listenTo'](_0x14a421['document'],'keydown',(_0x1e002e,{key:_0x567262})=>{'Escape'===_0x567262&&function(_0x5c5e04){_0x5c5e04['editing']['view']['change'](_0x2fa77a=>{for(const _0x1ea49c of _0x5c5e04['model']['markers']){if(!_0x1ea49c['name']['startsWith']('user:position'))continue;const _0x1a4464=_0x5c5e04['editing']['mapper']['markerNameToElements'](_0x1ea49c['name']);if(_0x1a4464){for(const _0x5965c2 of _0x1a4464)_0x2fa77a['removeClass']('ck-user__marker_hovered',_0x5965c2);}}});}(_0x5098bd);},{'useCapture':!0x0});}['afterInit'](){const _0xd61f81=this['editor'],_0x42dc76=_0xd61f81['commands']['get']('undo');_0x42dc76&&_0xd61f81['model']['on']('applyOperation',(_0x36a31c,_0x5b9e30)=>{const _0x5a9bae=_0x5b9e30[0x0];if(!_0x5a9bae['isDocumentOperation'])return;if('marker'!=_0x5a9bae['type']||!_0x5a9bae['name']['startsWith']('user:'))return;const _0x5adabb=_0x5a9bae['batch'];_0x42dc76['_createdBatches']['has'](_0x5adabb)&&(_0x5a9bae['newRange']=_0x5a9bae['oldRange']?_0xd61f81['model']['createRange'](_0x5a9bae['oldRange']['start'],_0x5a9bae['oldRange']['end']):null);},{'priority':'highest'});}['destroy'](){return this['_domEmitter']['stopListening'](),super['destroy']();}['createUserMarkerOperations'](){const _0x246040=this['editor'],_0x1d4bea=_0x246040['model']['document'],_0x56ba5=_0x246040['plugins']['get'](Sessions);_0x246040['model']['enqueueChange']({'isUndoable':!0x1},_0x4027c3=>{const _0x145715='user:range:'+_0x56ba5['mySessionId'],_0x386cc9='user:position:'+_0x56ba5['mySessionId'],_0x26ca12=_0x246040['model']['markers']['has'](_0x145715);_0x246040['editing']['view']['hasDomSelection']?z(_0x56ba5['mySessionId'],_0x1d4bea['selection']['getFirstRange'](),_0x246040['model'],_0x4027c3):_0x26ca12&&(_0x4027c3['removeMarker'](_0x145715),_0x4027c3['removeMarker'](_0x386cc9));});}}function z(_0x41bcec,_0x4fe375,_0x4c7ff2,_0x260a01){const _0x6a1773='user:range:'+_0x41bcec,_0x3d823d='user:position:'+_0x41bcec,_0x28e68a=_0x4fe375['getContainedElement']();let _0x27d65b=_0x4fe375['start'];if(_0x28e68a&&_0x28e68a['is']('element','tableCell')){const _0x3b1072=function(_0x41331b,_0xf6037){for(const _0x49f567 of _0x41331b['getPositions']())if(_0xf6037['schema']['checkChild'](_0x49f567,'$text'))return _0x49f567;}(_0x4fe375,_0x4c7ff2);_0x3b1072&&(_0x27d65b=_0x3b1072,_0x4fe375=_0x260a01['createRange'](_0x27d65b));}const _0x46a364=_0x260a01['createRange'](_0x27d65b);_0x4c7ff2['markers']['has'](_0x6a1773)?(_0x260a01['updateMarker'](_0x6a1773,{'range':_0x4fe375}),_0x260a01['updateMarker'](_0x3d823d,{'range':_0x46a364})):(_0x260a01['addMarker'](_0x6a1773,{'range':_0x4fe375,'usingOperation':!0x0}),_0x260a01['addMarker'](_0x3d823d,{'range':_0x46a364,'usingOperation':!0x0}));}function Y(_0x102306){return'--ck-user-color:'+_0x102306['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x102306['color']['getColorAlphaVariable']()+';';}function K(_0x57c499,_0x4e62d4,_0xbaaedc){const _0x52f620=_0x57c499['t'],t=_0x57c499['t'];switch(_0x4e62d4){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 _0x52f620({'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'},_0xbaaedc);default:return'';}}let J=0x1;class RealTimeCollaborationClient extends _0x523d5c{static ['CollaborativeEditingService']=/* #__PURE__ -- @preserve */
|
|
25
|
+
((()=>_0xe673cf)());['_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,_0x8e714,_0xbd9206,_0x552a0d];}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 _0x4f4125=this['serverHistory']['getOperations']();for(let _0x30330e=_0x4f4125['length']-0x1;_0x30330e>=0x0;_0x30330e--){const _0x3b2780=_0x4f4125[_0x30330e];if(!this['_disconnectionOperations']['has'](_0x3b2780))return _0x3b2780['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0xfe4128){if(super(_0xfe4128),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x5bc90f(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x44690c('collaboration-missing-channelid',this);const _0x184176=_0xfe4128['config']['get']('cloudServices.bundleVersion')||_0x146c5e;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x184176,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x7f9a95(),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 _0x8986c7=this['editor'],_0x1e6dc2=_0x8986c7['plugins']['get'](_0xbd9206),_0x2323ee=_0x8986c7['plugins']['get'](WebSocketGateway);this['listenTo'](_0x1e6dc2,'getOperationAuthor',(_0x5bdf10,_0x4b8b7b)=>{const _0x5a0fe9=_0x4b8b7b[0x0];_0x5a0fe9['_authorId']&&(_0x5bdf10['return']=_0x1e6dc2['getUser'](_0x5a0fe9['_authorId']),_0x5bdf10['stop']()),null===_0x5a0fe9['_authorId']&&(_0x5bdf10['return']=null,_0x5bdf10['stop']());},{'priority':'high'}),this['listenTo'](_0x8986c7['model']['document']['selection'],'change:range',(_0x299731,_0x4eff9b)=>{_0x4eff9b['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x8986c7['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x8986c7['model']['on']('applyOperation',(_0x454379,_0x1cc0dc)=>{const _0x4d1743=_0x1cc0dc[0x0];_0x4d1743['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x4d1743),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['bind']('_isEditingAllowed')['to'](_0x2323ee,'state',this,'_hasSynchronizationProblem',(_0x297ad3,_0x1e5dfc)=>'connected'===_0x297ad3&&!_0x1e5dfc),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x8986c7['disableReadOnlyMode']('rtc-offline'):_0x8986c7['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x8986c7['disableReadOnlyMode']('rtc-offline'):_0x8986c7['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async['reconnect'](){const _0x543821=this['editor']['plugins']['get'](Sessions),_0x277521=this['editor']['plugins']['get'](WebSocketGateway);try{this['_isPendingUpdate']=!0x0,_0x543821['unregister'](this['_channelId']);const _0x50b4e9=await this['_service']['reconnect'](_0x277521['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x50b4e9)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x3372bd=await this['_service']['getConnectedSessions']();_0x543821['register'](this['_channelId'],_0x3372bd),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x37f918){if(function(_0x5ce158){return'404'===_0x5ce158['code'];}(_0x37f918)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x33eae8){return'409'===_0x33eae8['code'];}(_0x37f918)){const _0x590af5=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'](_0x590af5);}else{if(!(_0x37f918 instanceof ReconnectionError))throw _0x37f918;this['_handleReconnectionError']();}}}}['destroy'](){const _0x4fcf57=this['editor']['plugins']['get'](WebSocketGateway),_0x524bd1=this['editor']['plugins']['get'](Sessions);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x524bd1['channelSessions']['has'](this['_channelId'])&&_0x524bd1['unregister'](this['_channelId']),_0x4fcf57['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async['_handleReconnectionResponse'](_0x5ace4e){if(this['sessionId']!==_0x5ace4e['sessionId']&&this['_lastSyncedOperationId']!==_0x5ace4e['lastOperationId'])throw new ReconnectionError();return this['sessionId']=_0x5ace4e['sessionId'],this['_handleServerResponse']([],{..._0x5ace4e,'wereChangesApplied':!0x1,'data':_0x5ace4e['data']},'reconnect');}async['_connectService'](_0x1219e7,_0x274b05=!0x1){const {connection:_0xbd3287}=this['editor']['plugins']['get'](WebSocketGateway);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0xbd3287,this['_channelId'])['then'](_0x451ac6=>this['_initSessionsHandling'](_0x451ac6))['catch'](_0x4e28b3=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x4e28b3);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x205534,_0x1ccbfc)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x1ccbfc);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_isConnected']=!0x1;});const _0x52664a=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x1219e7);this['_isPendingUpdate']=!0x0;const _0x1423d1=await this['_service']['connect'](_0xbd3287,this['_compressOperations'](_0x1219e7),_0x52664a);if(this['sessionId']=_0x1423d1['sessionId'],_0x274b05){if(!_0x1423d1['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x1423d1['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x1219e7,_0x1423d1,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x1423d1,_0x1219e7);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}['_handleSendingSelectionMarkers'](){const _0x571bc9=this['editor']['plugins']['get'](Sessions),_0x45b989=this['editor']['plugins']['get'](UserMarkers),_0x3a0145=_0x571bc9['channelSessions']['get'](this['_channelId']);_0x3a0145&&_0x3a0145['length']>0x1?_0x45b989['createUserMarkerOperations']():this['listenTo'](_0x571bc9,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x571bc9['channelSessions']['get'](this['_channelId'])['length']&&_0x45b989['createUserMarkerOperations']();});}async['_handleReceivedOperations'](_0x31145f,_0xe2a458,_0x39df33,_0x311276){if(!this['_isPendingUpdate']&&this['_document']['version']==_0xe2a458){const _0x2b1759=this['_decompressOperations'](_0x39df33,_0x311276);await this['_fetchMissingUsers'](_0x2b1759),this['_handleExternalOperations'](_0x2b1759,_0xe2a458,_0x39df33['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async['_connectAfterSessionHasBeenFlushed'](){this['_disconnectService']();const {locale:_0x3de7d5}=this['editor'];let _0x3ebfa5;try{_0x3ebfa5=await this['_service']['getDocumentDetails']();}catch{const _0x4f8e6c=K(_0x3de7d5,'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'](_0x4f8e6c);}const _0x471562=_0x3ebfa5['currentDocumentSession']||_0x3ebfa5['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x471562['lastOperationId']){const _0x359fb3=K(_0x3de7d5,'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'](_0x359fb3);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}['_disconnectService'](){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['stopListening'](this['_service']);}['_initSessionsHandling'](_0x503027){const _0x38de83=this['editor']['plugins']['get'](Sessions);this['listenTo'](_0x38de83,'sessionAdd:'+this['_channelId'],(_0x1adf35,{session:_0x453c2c})=>{if(_0x453c2c['id']===_0x38de83['mySessionId']){_0x1adf35['off']();const _0x46e195=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x4e9b3b=_0x453c2c['permissions'];_0x46e195&&_0x46e195['isEnabled']&&(_0x4e9b3b=_0x4e9b3b['filter'](_0x38652d=>'document:write'!==_0x38652d)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x4e9b3b,this['_channelId']);}}),_0x38de83['register'](this['_channelId'],_0x503027);}['_initThrowingOnDataSet'](){const _0x3ff501=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x399ace)=>{if(!_0x399ace[_0x399ace['length']-0x1]['suppressErrorInCollaboration'])throw new _0x44690c('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x3ff501['apply'](this['editor']['data'],_0x399ace);};}['_setUpDataInit'](){this['editor']['data']['on']('init',(_0x1261f2,[_0x568d14])=>{if(this['_document']['version'])throw new _0x44690c('realtimecollaborationclient-init-document-already-initialized',this);_0x1261f2['stop'](),this['_setPendingAction']();const _0x18098f=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x43c3e4])=>!_0x43c3e4['lazyLoad'])['map'](([_0x3d2e36,_0x5b1df0])=>[_0x3d2e36,_0x5b1df0['modelAttributes']||{}])),_0x55e6bd=this['_getOperationsFromInitData'](_0x568d14,_0x18098f);0x0==_0x55e6bd['length']&&_0x55e6bd['push'](new _0x2303ac(0x0)),_0x1261f2['return']=this['_connectService'](_0x55e6bd)['then'](()=>{this['editor']['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x25bd9d=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x25bd9d))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x1eb99e,[_0x470ff8,_0x3a2445])=>{_0x1eb99e['stop']();const _0x21eb63=this['editor']['model']['document']['getRoot'](_0x470ff8);if(!this['_knownRootNames']['has'](_0x470ff8)){const _0x24aa79=_0x3a2445&&_0x3a2445['data']?_0x3a2445['data']:'',_0x468758=_0x3a2445&&_0x3a2445['attributes']?_0x3a2445['attributes']:{};await this['_loadRoot'](_0x470ff8,_0x24aa79,_0x468758);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x21eb63['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x21eb63);});},{'priority':'high'});}async['_fetchMissingUsers'](_0x38ebb6){const _0x47880b=this['editor']['plugins']['get'](_0xbd9206),{connection:_0x4f7680}=this['editor']['plugins']['get'](WebSocketGateway),_0x12b8ca=new Set();for(const _0x5168d6 of _0x38ebb6){const _0x1a4e73=_0x5168d6['_authorId'];_0x1a4e73&&!_0x47880b['getUser'](_0x1a4e73)&&_0x12b8ca['add'](_0x1a4e73);}if(0x0===_0x12b8ca['size'])return;const _0xfaa9d0=await _0x270274['getMany'](_0x4f7680,Array['from'](_0x12b8ca));for(const _0x4675e8 of _0xfaa9d0)_0x47880b['getUser'](_0x4675e8['id'])||_0x47880b['addUser'](_0x4675e8);}['_getOperationsFromInitData'](_0x1a4b18,_0x7ab4e0={}){const _0x338a71=this['editor']['model'],_0x7a3d09=[];let _0x129fb5=0x0;const _0x48910e='string'==typeof _0x1a4b18?{'main':_0x1a4b18}:_0x1a4b18;for(const _0x318e37 of Object['keys'](_0x48910e)){if(!this['_document']['roots']['has'](_0x318e37))throw new _0x44690c('realtimecollaborationclient-init-non-existent-root',this);const _0x31ef8c=this['_document']['getRoot'](_0x318e37),_0x72bea8=this['editor']['data']['parse'](_0x48910e[_0x318e37],_0x31ef8c),_0x213db1=new _0x484853(_0x338a71['createPositionAt'](_0x31ef8c,0x0),_0x72bea8,_0x129fb5++);_0x7a3d09['push'](_0x213db1);for(const [_0x5ef695,_0x220989]of _0x72bea8['markers']){const _0x74f07=_0x338a71['createRange'](_0x338a71['createPositionFromPath'](_0x31ef8c,_0x220989['start']['path']['slice']()),_0x338a71['createPositionFromPath'](_0x31ef8c,_0x220989['end']['path']['slice']())),_0x412b40=new _0x1fb70f(_0x5ef695,null,_0x74f07,_0x338a71['markers'],!0x0,_0x129fb5++);_0x7a3d09['push'](_0x412b40);}}if(_0x7ab4e0)for(const [_0x5cfb40,_0x5024da]of Object['entries'](_0x7ab4e0)){const _0x196a73=_0x338a71['document']['getRoot'](_0x5cfb40);if(!_0x196a73)throw new _0x44690c('multi-root-editor-root-attributes-no-root',null);for(const [_0x5601d8,_0xb3ef30]of Object['entries'](_0x5024da))if(null!==_0xb3ef30){const _0x57e8aa=new _0x3050ce(_0x196a73,_0x5601d8,null,_0xb3ef30,_0x129fb5++);_0x7a3d09['push'](_0x57e8aa);}}return _0x7a3d09;}async['_loadRoot'](_0x3b512c,_0x4f7c38,_0x42e04b){this['_getOperationsFromInitData']({[_0x3b512c]:_0x4f7c38},{[_0x3b512c]:_0x42e04b})['forEach']((_0x751384,_0x58313a)=>{_0x751384['baseVersion']=this['_document']['version']+_0x58313a,_0x751384['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x751384);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async['_handleInitialConnectionData'](_0x378645,_0x47730a){let _0x311976;this['_offset']=_0x378645['offset'];const _0x1a4bbd=_0x378645['wereChangesApplied']&&!_0x378645['initData'],_0x543ec0=_0x1a4bbd?0x0:_0x378645['data']['baseVersion'];if(_0x47730a['forEach'](_0xc81d3c=>{_0xc81d3c['_isInit']=!0x0,_0xc81d3c['createdAt']=_0x378645['sessionCreatedAt'],_0xc81d3c['_authorId']=null;}),_0x1a4bbd)_0x311976=_0x47730a,this['_applyOperationsSet'](_0x311976,_0x1a4bbd);else{if(_0x378645['initData']){const _0x4ea333=this['_getOperationsFromInitData'](_0x378645['initData']);this['_document']['history']['version']=-_0x4ea333['length'],_0x4ea333['forEach'](_0x4dd2bf=>{_0x4dd2bf['baseVersion']-=_0x4ea333['length'],_0x4dd2bf['createdAt']=_0x378645['sessionCreatedAt'],_0x4dd2bf['_isInit']=!0x0,_0x4dd2bf['_authorId']=null;}),this['_applyOperationsSet'](_0x4ea333,!0x0),this['serverHistory']['version']=-_0x4ea333['length']+this['_offset'],this['_updateServerHistory'](_0x4ea333);}this['_document']['history']['version']=_0x543ec0,_0x311976=this['_decompressOperations'](_0x378645['data'],_0x378645['metadata']),await this['_fetchMissingUsers'](_0x311976),this['_applyOperationsSet'](_0x311976,_0x1a4bbd);}_0x378645['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x311976,_0x378645['lastOperationId']),this['_lastSyncedOperationId']=_0x378645['lastOperationId']),this['serverHistory']['version']=_0x543ec0+this['_offset'],this['_updateServerHistory'](_0x311976),_0x47730a['filter'](_0x20382c=>{const _0x24bcb3=this['_getAffectedRoot'](_0x20382c);return _0x24bcb3&&!this['_knownRootNames']['has'](_0x24bcb3);})['forEach']((_0x2bcf4e,_0xe75f8e)=>{_0x2bcf4e['baseVersion']=this['_document']['version']+_0xe75f8e,this['_saveOperationInBuffer'](_0x2bcf4e);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x145ff9,_0x2474e8){const _0x4f2658=_0x2474e8&&_0x2474e8['message'];if(_0x4f2658&&_0x4f2658['startsWith']('realtimecollaborationclient'))throw _0x2474e8;const _0x27d2d3=this['editor']['plugins']['get'](WebSocketGateway);throw this['_isPendingUpdate']=!0x0,_0x27d2d3['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x44690c(_0x145ff9,this['editor'],_0x4f2658?{'originalError':_0x4f2658}:void 0x0);}['_saveOperationInBuffer'](_0x9a76cd){this['_knownOperations']['has'](_0x9a76cd)||(this['_knownOperations']['add'](_0x9a76cd),this['_bufferedOperations']['push'](_0x9a76cd),this['_pendingAction']||'marker'==_0x9a76cd['type']&&!_0x9a76cd['affectsData']||this['_setPendingAction']());}['_sendBufferedOperationsDelayed'](_0x4a47b5=!0x1){!_0x4a47b5&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x144d31=>{_0x144d31&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x3698b8=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x446249){return _0x446249['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x446249['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x446249['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x3698b8)||this['_crash'](_0x3698b8['message'],_0x3698b8);});},this['_currentBufferDelay']));}['_waitUntilSynced'](){return new Promise(_0xb69190=>{this['on']('change:_isPendingUpdate',()=>{_0xb69190();});});}async['_sendBufferedOperations'](){const _0x10c8ea=this['editor']['plugins']['get'](UserMarkers);if(this['_shouldSendSelectionUpdate']()&&(_0x10c8ea['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x2efa2f=[...this['_bufferedOperations']];for(const _0x18cd96 of _0x2efa2f)_0x18cd96['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x18cd96);const _0xeb6a3b=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x2efa2f),_0x7a205b=J++,_0x293f41=this['_compressOperations'](_0x2efa2f),_0xcdf4ea=await this['_service']['sendOperations'](_0x293f41,_0x293f41['baseVersion'],_0xeb6a3b);try{return await this['_handleServerResponse'](_0x2efa2f,_0xcdf4ea,_0x7a205b);}catch(_0x1343f3){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x1343f3);}}async['_handleServerResponse'](_0x536120,_0x237c8a,_0x598780){if('error'in _0x237c8a)throw _0x237c8a['error'];let _0x471a9f=!0x1;if(_0x237c8a['wereChangesApplied']){_0x237c8a['lastOperationId']&&(this['_lastSyncedOperationId']=_0x237c8a['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x16c407=>!_0x536120['includes'](_0x16c407));for(const _0x40ef21 of _0x536120)_0x40ef21['createdAt']='lastOperationAcceptedAt'in _0x237c8a&&_0x237c8a['lastOperationAcceptedAt']||void 0x0;Q(_0x536120,_0x237c8a['version']-_0x536120['length']),this['_updateServerHistory'](_0x536120);const _0x2ef52f=_0x536120['filter'](_0x29b6f2=>{if(!_0x29b6f2['_isInit'])return!0x1;const _0x2f6a3a=this['_getAffectedRoot'](_0x29b6f2);return _0x2f6a3a&&!this['_knownRootNames']['has'](_0x2f6a3a);});Q(_0x2ef52f,this['_document']['version']),this['_applyOperationsSet'](_0x2ef52f),_0x471a9f=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x21175d=this['_decompressOperations'](_0x237c8a['data'],_0x237c8a['metadata'])['filter'](_0x64b6b9=>_0x64b6b9['baseVersion']>=this['_lastServerVersion']);_0x21175d['forEach'](_0x11130d=>this['_addKnownRoot'](_0x11130d)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x3824a1=>!_0x3824a1['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x3824a1))),this['_bufferedOperations']['length']&&Q(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x21175d),_0x471a9f=this['_handleExternalOperations'](_0x21175d,_0x237c8a['version'],_0x237c8a['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x471a9f?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}['_handleExternalOperations'](_0x564cee,_0x3afffb,_0x2179f6){try{const _0x5dfa53={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x4846b1,operationsB:_0x46085,originalOperations:_0x37af4d}=_0x2638b1(_0x564cee,this['_bufferedOperations'],_0x5dfa53);Q(_0x4846b1,this['_document']['version']),Q(_0x46085,_0x3afffb);for(const _0x31f098 of _0x4846b1){const _0x1bd806=_0x37af4d['get'](_0x31f098);_0x31f098['_authorId']=_0x1bd806?_0x1bd806['_authorId']:null;}_0x2179f6&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x564cee,_0x2179f6),this['_lastSyncedOperationId']=_0x2179f6),this['_bufferedOperations']=[..._0x46085],this['_applyOperationsSet'](_0x4846b1),this['_updateServerHistory'](_0x564cee);}catch(_0x124107){return console['error'](_0x124107),!0x1;}return!0x0;}['_applyOperationsSet'](_0xbf3ebe,_0x2370e0=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x493065=>{for(const _0x32cdcc of _0xbf3ebe)this['_knownOperations']['add'](_0x32cdcc),this['_addKnownRoot'](_0x32cdcc),_0x493065['batch']['addOperation'](_0x32cdcc),this['editor']['model']['applyOperation'](_0x32cdcc);});}['_addKnownRoot'](_0x5d9aad){const _0x2cc8ba=this['_getAffectedRoot'](_0x5d9aad);_0x2cc8ba&&this['_knownRootNames']['add'](_0x2cc8ba);}['_getAffectedRoot'](_0x180e5c){let _0x169a6d,_0x54d172;switch(_0x180e5c['type']){case'insert':_0x169a6d=_0x180e5c['position']['root'];break;case'marker':if(_0x54d172=_0x180e5c['newRange'],!_0x54d172)return null;_0x169a6d=_0x54d172['root'];break;case'addRootAttribute':_0x169a6d=_0x180e5c['root'];break;case'addRoot':_0x169a6d=_0x180e5c['affectedSelectable'];break;case'move':_0x169a6d=_0x180e5c['targetPosition']['root'];break;default:return null;}return _0x169a6d['rootName'];}['_updateServerHistory'](_0x3ba679){_0x3ba679['forEach'](_0x44edad=>{const _0x25b735=_0x44edad['clone']();_0x25b735['_authorId']=_0x44edad['_authorId'],_0x25b735['_isInit']=!!_0x44edad['_isInit'],_0x25b735['createdAt']=_0x44edad['createdAt'],_0x25b735['baseVersion']+=this['_offset'],_0x44edad['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x25b735),this['serverHistory']['addOperation'](_0x25b735);});}['_handleReconnectionError'](_0xb4ec75){const _0x5d3f3c=this['editor']['plugins']['get']('Notification'),_0x3962d7=this['editor']['locale'];_0xb4ec75||(_0xb4ec75=K(_0x3962d7,'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.')),_0x5d3f3c['showWarning'](_0xb4ec75,{'title':K(_0x3962d7,'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'](_0x8e714)['add'](K(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}['_clearPendingAction'](){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x8e714)['remove'](this['_pendingAction']),this['_pendingAction']=null);}['_compressOperations'](_0x7ac0b4){const _0x38ac9c=_0x7ac0b4['map'](_0x46a298=>_0x46a298['toJSON']());return this['_compressor']['compress'](_0x38ac9c);}['_decompressOperations'](_0x484560,_0x42b59c){return this['_compressor']['decompress'](_0x484560)['map']((_0x5d67e7,_0x3299fe)=>{const _0x43ed07='init'==_0x42b59c[_0x3299fe]['type'];if('InsertOperation'==_0x5d67e7['__className']){const _0x2b0bb1=_0x5d67e7['position']['root'];!this['_document']['getRoot'](_0x2b0bb1)&&(this['_document']['createRoot']('$unknown',_0x2b0bb1)['_isAttached']=!0x1);}else{if('RootOperation'==_0x5d67e7['__className']){const _0x12a4d2=this['_document']['getRoot'](_0x5d67e7['rootName']);_0x12a4d2&&'$unknown'==_0x12a4d2['name']&&_0x5d67e7['elementName']!=_0x12a4d2['name']&&(_0x12a4d2['name']=_0x5d67e7['elementName']);}}const _0x3bb9d4=_0x18bdd0['fromJSON'](_0x5d67e7,this['_document']);return _0x3bb9d4['wasUndone']=_0x5d67e7['wasUndone'],_0x3bb9d4['_isInit']=_0x43ed07,_0x3bb9d4['_authorId']=_0x43ed07?null:_0x42b59c[_0x3299fe]['userId'],_0x3bb9d4['_isDisconnection']='cs:removeUser'===_0x42b59c[_0x3299fe]['type'],_0x3bb9d4['createdAt']=_0x42b59c[_0x3299fe]['createdAt'],_0x3bb9d4;});}['_refreshUserSelectionMarkers'](){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}['_shouldSendSelectionUpdate'](){const _0x316473=this['editor']['plugins']['get'](Sessions)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x316473&&_0x316473['length']>0x1&&this['_hasSelectionChanged'];}['_shouldSendUpdate'](){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}}class ReconnectionError extends Error{}function Q(_0x3cf784,_0x29c237){for(const _0x2ec6cb of _0x3cf784)_0x2ec6cb['baseVersion']=_0x29c237++;}class OperationIdentifier{['_ignoredOperations'];['_operationToId'];constructor(_0x1c8e90){this['_ignoredOperations']=_0x1c8e90,this['_operationToId']=new WeakMap();}['getIdOfTheLastOperation'](_0x53c450){let _0x16ecb9=_0x53c450['length'];for(;_0x16ecb9--;){const _0x143c6c=_0x53c450[_0x16ecb9];if(!this['_ignoredOperations']['has'](_0x143c6c)){if(!this['_operationToId']['has'](_0x143c6c)){const _0x249236=_0x2e2a43()['slice'](0x1,0x12);this['_operationToId']['set'](_0x143c6c,_0x249236);}return this['_operationToId']['get'](_0x143c6c);}}}['setIdForTheLastOperation'](_0x1cfed1,_0x5c3dba){if(!_0x5c3dba)return;let _0x4d14ef=_0x1cfed1['length'];for(;_0x4d14ef--;){const _0xfa4134=_0x1cfed1[_0x4d14ef];this['_ignoredOperations']['has'](_0xfa4134)||this['_operationToId']['set'](_0xfa4134,_0x5c3dba);}}}class RealTimeCollaborativeEditing extends _0x523d5c{static get['requires'](){return[RealTimeCollaborationClient];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesCommentsAdapter extends _0x191ab4{static ['CommentsService']=/* #__PURE__ -- @preserve */
|
|
26
|
+
((()=>_0x177deb)());['_services'];static get['requires'](){return[WebSocketGateway,_0x55664d,Sessions,_0xbd9206];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x185ebc){super(_0x185ebc),this['_services']=new Map();}async['init'](){const _0x5b2546=this['context'],_0x30cf8a=_0x5b2546['plugins']['get'](_0x55664d);if(_0x5b2546['plugins']['get'](WebSocketGateway)['addToReconnectionStack'](this),_0x30cf8a['adapter']={'addCommentThread':async({channelId:_0x1ba310,threadId:_0x250930,comments:_0x3657ed,resolvedAt:_0x592664,resolvedBy:_0x2be353,context:_0x2ddca5,attributes:_0x576789})=>{const _0x1c0c26=await this['_getService'](_0x1ba310)['addCommentThread']({'commentThreadId':_0x250930,'comments':_0x3657ed['map'](_0x617155=>function(_0x289111,_0x6fdaa3,_0xcb7616){return{'commentThreadId':_0xcb7616,'commentId':_0x289111['commentId'],'userId':_0x289111['authorId'],'content':_0x289111['content'],'documentId':_0x6fdaa3,'createdAt':_0x289111['createdAt'],'attributes':_0x289111['attributes']||{}};}(_0x617155,_0x1ba310,_0x250930)),'resolvedAt':_0x592664,'resolvedBy':_0x2be353,'context':_0x2ddca5,'attributes':_0x576789})['catch'](Z);return{'threadId':_0x1c0c26['commentThreadId'],'comments':_0x1c0c26['comments']};},'getCommentThread':async({channelId:_0x5b8d88,threadId:_0x1ed2a3})=>{const _0x41a447=await this['_getService'](_0x5b8d88)['getCommentThread'](_0x1ed2a3)['catch'](X)['catch'](Z);return _0x41a447?_0x41a447['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x41a447]),{'threadId':_0x41a447['commentThreadId'],'comments':_0x41a447['comments']['map'](tt),'context':_0x41a447['context'],'resolvedAt':_0x41a447['resolvedAt'],'resolvedBy':_0x41a447['resolvedBy'],'attributes':_0x41a447['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x7ebf6d,threadId:_0x5b9dc6,context:_0x31ec65,unlinkedAt:_0x48c7db,attributes:_0x1b4e68})=>this['_getService'](_0x7ebf6d)['updateCommentThread']({'commentThreadId':_0x5b9dc6,'context':_0x31ec65,'attributes':_0x1b4e68,'unlinkedAt':_0x48c7db})['catch'](X)['catch'](Z),'resolveCommentThread':async({channelId:_0x3cf8c3,threadId:_0x52a794})=>{const _0x50564c=await this['_getService'](_0x3cf8c3)['resolveCommentThread'](_0x52a794)['catch'](X)['catch'](Z);return{'threadId':_0x50564c['commentThreadId'],'resolvedAt':_0x50564c['resolvedAt'],'resolvedBy':_0x50564c['resolvedBy']};},'reopenCommentThread':async({channelId:_0x7e4e35,threadId:_0x1c2218})=>this['_getService'](_0x7e4e35)['reopenCommentThread'](_0x1c2218)['catch'](X)['catch'](Z),'removeCommentThread':({channelId:_0x2e2f97,threadId:_0x5a0cac})=>this['_getService'](_0x2e2f97)['removeCommentThread'](_0x5a0cac)['catch'](X)['catch'](Z),'addComment':({channelId:_0x17e203,threadId:_0x1610a8,commentId:_0x198cee,content:_0x58585c,attributes:_0x3f99f2})=>this['_getService'](_0x17e203)['addComment'](_0x1610a8,_0x198cee,_0x58585c,_0x3f99f2)['catch'](Z),'updateComment':({channelId:_0x4ff8ff,threadId:_0xe6a85,commentId:_0x386913,content:_0x2dffde,attributes:_0x6b0638})=>this['_getService'](_0x4ff8ff)['updateComment'](_0xe6a85,_0x386913,_0x2dffde,_0x6b0638)['catch'](X)['catch'](Z),'removeComment':({channelId:_0x4416f9,threadId:_0x177588,commentId:_0x597f53})=>this['_getService'](_0x4416f9)['removeComment'](_0x177588,_0x597f53)['catch'](X)['catch'](Z)},_0x5b2546 instanceof _0x82da95){const _0xc7d2e4=_0x5b2546['config']['get']('collaboration.channelId'),_0x8c1c56=_0x5b2546['plugins']['get'](Sessions);await this['_setUpService'](_0xc7d2e4);const _0x22d7f3=await this['_services']['get'](_0xc7d2e4)['getConnectedSessions']();this['listenTo'](_0x8c1c56,'sessionAdd:'+_0xc7d2e4,(_0x8ee34c,{session:_0x11ff1a})=>{_0x11ff1a['id']===_0x8c1c56['mySessionId']&&(_0x8ee34c['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x11ff1a['permissions'],_0xc7d2e4));}),_0x8c1c56['register'](_0xc7d2e4,_0x22d7f3);}}async['_setUpService'](_0x1ec095){if(this['_services']['has'](_0x1ec095))throw new _0x44690c('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x1ec095});const _0x129482=this['context']['plugins']['get'](_0x55664d),_0x497cda=new CloudServicesCommentsAdapter['CommentsService'](_0x1ec095);this['_services']['set'](_0x1ec095,_0x497cda),this['listenTo'](_0x497cda,'commentThreadAdded',(_0x4673f1,_0x312c02)=>{const {commentThreadId:_0x4c0800,documentId:_0x29182b,context:_0x7a181f,attributes:_0x488a3c,resolvedAt:_0x646b94,resolvedBy:_0xa2f5c2,comments:_0x4fe032}=_0x312c02;_0x129482['getCommentThread'](_0x4c0800)||_0x129482['addCommentThread']({'threadId':_0x4c0800,'channelId':_0x29182b,'comments':_0x4fe032?_0x4fe032['map'](tt):[],'context':_0x7a181f,'attributes':_0x488a3c,'resolvedAt':_0x646b94,'resolvedBy':_0xa2f5c2,'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadUpdated',(_0x68c40e,{commentThreadId:_0x3f4f33,documentId:_0x2bf988,context:_0xbfa976,unlinkedAt:_0x2538cd,attributes:_0x5f3630})=>{_0x129482['getCommentThread'](_0x3f4f33)&&_0x129482['updateCommentThread']({'threadId':_0x3f4f33,'channelId':_0x2bf988,'context':_0xbfa976,'unlinkedAt':_0x2538cd,'attributes':_0x5f3630,'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadResolved',(_0x2e1bb7,{commentThreadId:_0x53dff5,resolvedBy:_0x631a0e,resolvedAt:_0x1b07da})=>{const _0x5c6c80=_0x129482['getCommentThread'](_0x53dff5);_0x5c6c80&&_0x5c6c80['resolve']({'resolvedBy':_0x631a0e,'resolvedAt':_0x1b07da,'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadReopened',(_0x12a10b,{commentThreadId:_0x15dd3e})=>{const _0x3b90c8=_0x129482['getCommentThread'](_0x15dd3e);_0x3b90c8&&_0x3b90c8['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentThreadRemoved',(_0xc6ec16,{commentThreadId:_0x3ddb42})=>{const _0x35bfe9=_0x129482['getCommentThread'](_0x3ddb42);_0x35bfe9&&_0x35bfe9['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentAdded',(_0x4a0b9a,_0x52dca8)=>{const _0x3382a9=_0x52dca8['commentThreadId'],_0x42dfb3=_0x129482['getCommentThread'](_0x3382a9);_0x42dfb3&&_0x42dfb3['addComment']({...tt(_0x52dca8),'isFromAdapter':!0x0});}),this['listenTo'](_0x497cda,'commentUpdated',(_0x79a338,{commentThreadId:_0x1468aa,commentId:_0x1ae649,content:_0x53532d,attributes:_0x4a00cc})=>{const _0x4ec929=_0x129482['getCommentThread'](_0x1468aa);if(_0x4ec929){const _0x122dfc=_0x4ec929['getComment'](_0x1ae649);_0x122dfc&&_0x122dfc['update']({'content':_0x53532d,'attributes':_0x4a00cc,'isFromAdapter':!0x0});}}),this['listenTo'](_0x497cda,'commentRemoved',(_0x3d349a,{commentThreadId:_0xf7829c,commentId:_0x5b348f})=>{const _0x5f5c75=_0x129482['getCommentThread'](_0xf7829c);if(_0x5f5c75){const _0x3f363f=_0x5f5c75['getComment'](_0x5b348f);_0x3f363f&&_0x3f363f['remove']({'isFromAdapter':!0x0});}}),await this['_connectService'](_0x1ec095);}['destroy'](){if(this['context']instanceof _0x82da95){const _0x4bf845=this['context']['config']['get']('collaboration.channelId');this['_terminateService'](_0x4bf845);}}['_terminateService'](_0x31a7b7){if(!this['_services']['has'](_0x31a7b7))throw new _0x44690c('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x31a7b7});this['_getService'](_0x31a7b7)['disconnect'](),this['_services']['delete'](_0x31a7b7);}async['reconnect'](){for(const _0x2caa4a of this['_services']['keys']())await this['_connectService'](_0x2caa4a);if(this['context']instanceof _0x82da95){const _0x36dd3b=this['context']['config']['get']('collaboration.channelId'),_0x4230b4=this['context']['plugins']['get'](Sessions);_0x4230b4['unregister'](_0x36dd3b);const _0x7eb1e5=await this['_services']['get'](_0x36dd3b)['getConnectedSessions']();_0x4230b4['register'](_0x36dd3b,_0x7eb1e5);}}async['_connectService'](_0x5ca8a6){const {connection:_0x9839f9}=this['context']['plugins']['get'](WebSocketGateway),_0x2684de=this['context']['plugins']['get'](_0x55664d),_0x17ccb8=this['_services']['get'](_0x5ca8a6),_0x3c044d=await _0x17ccb8['connect'](_0x9839f9);await this['_fetchMissingUsersForThreads'](_0x3c044d);const _0x5b1ae2=new Set(Array['from'](_0x2684de['getCommentThreads']({'channelId':_0x5ca8a6}),_0x3b9063=>_0x3b9063['id']));for(const _0x110f71 of _0x3c044d)_0x110f71['deletedAt']||_0x5b1ae2['delete'](_0x110f71['commentThreadId']);for(const _0x13c382 of _0x5b1ae2)_0x2684de['getCommentThread'](_0x13c382)['remove']({'isFromAdapter':!0x0});for(const _0x5ec00f of _0x3c044d){let _0x426e14=_0x2684de['getCommentThread'](_0x5ec00f['commentThreadId']);const {commentThreadId:_0x482c51,context:_0x1440f7,attributes:_0x1e903a,resolvedBy:_0x1e584b,resolvedAt:_0x562344,unlinkedAt:_0x511a9a,deletedAt:_0x1f682b}=_0x5ec00f;if(_0x1f682b)continue;_0x426e14||(_0x426e14=_0x2684de['addCommentThread']({'channelId':_0x5ca8a6,'threadId':_0x482c51,'context':_0x1440f7,'attributes':_0x1e903a||{},'resolvedBy':_0x1e584b,'resolvedAt':_0x562344,'unlinkedAt':_0x511a9a,'isFromAdapter':!0x0}));const _0x2ba026=new Set(Array['from'](_0x426e14['comments'],_0x388faf=>_0x388faf['id']));for(const _0x865216 of _0x5ec00f['comments'])_0x2ba026['delete'](_0x865216['commentId']);for(const _0x4af905 of _0x2ba026)_0x426e14['getComment'](_0x4af905)['remove']({'isFromAdapter':!0x0});for(const _0x34fe46 of _0x5ec00f['comments']){const _0x340796=_0x426e14['getComment'](_0x34fe46['commentId']);_0x340796?_0x340796['content']!==_0x34fe46['content']&&_0x340796['update']({'content':_0x34fe46['content'],'isFromAdapter':!0x0}):_0x426e14['addComment'](Object['assign'](tt(_0x34fe46),{'isFromAdapter':!0x0}));}}}['_getService'](_0xd79d34){if(!this['_services']['has'](_0xd79d34))throw new _0x44690c('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0xd79d34});return this['_services']['get'](_0xd79d34);}async['_fetchMissingUsersForThreads'](_0x4eda1f){const _0x383406=this['context']['plugins']['get'](_0xbd9206),{connection:_0x196bb1}=this['context']['plugins']['get'](WebSocketGateway),_0x5d587c=new Set();for(const {resolvedBy:_0xfe76bd,comments:_0x2c5eb6}of _0x4eda1f){_0xfe76bd&&!_0x383406['getUser'](_0xfe76bd)&&_0x5d587c['add'](_0xfe76bd);for(const {userId:_0x13a44c}of _0x2c5eb6)_0x383406['getUser'](_0x13a44c)||_0x5d587c['add'](_0x13a44c);}if(0x0===_0x5d587c['size'])return;const _0xef9e30=await _0x270274['getMany'](_0x196bb1,Array['from'](_0x5d587c));for(const _0x2d2ee5 of _0xef9e30)_0x383406['getUser'](_0x2d2ee5['id'])||_0x383406['addUser'](_0x2d2ee5);}}async function X(_0x5f19f7){if('404'!==_0x5f19f7['code'])throw _0x5f19f7;}function Z(_0x71e5){if((_0x7f1587=_0x71e5)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x7f1587['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x7f1587['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x7f1587;throw _0x71e5;}function tt(_0x47c469){return{'threadId':_0x47c469['commentThreadId'],'commentId':_0x47c469['commentId'],'content':_0x47c469['content'],'createdAt':_0x47c469['createdAt'],'authorId':_0x47c469['userId'],'attributes':_0x47c469['attributes']||{}};}class CloudServicesTrackChangesAdapter extends _0x523d5c{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
|
|
27
|
+
((()=>_0x26d7c6)());['_bufferedRequests'];['_trackChangesService'];static get['requires'](){return[CloudServicesCommentsAdapter,_0x1a1529,WebSocketGateway];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x40c4ed){super(_0x40c4ed);const _0x1feeee=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x1feeee);}['init'](){const _0x9a3808=this['editor']['plugins']['get'](WebSocketGateway),_0x5956a2=this['editor']['plugins']['get'](_0x1a1529);return _0x5956a2['adapter']={'getSuggestion':async _0x4e6e99=>{await this['_waitForServiceReady']();const _0x1b9d5a=await this['_trackChangesService']['get'](_0x4e6e99)['catch'](et);return await this['_fetchMissingUsersForThreads']([_0x1b9d5a]),_0x1b9d5a;},'addSuggestion':async({id:_0x440086,type:_0x30d5d3,data:_0x2e2299,originalSuggestionId:_0x33a79b,attributes:_0x279bb0})=>{await this['_waitForServiceReady']();const _0x40ce98={'id':_0x440086,'type':_0x30d5d3,'data':_0x2e2299,'originalSuggestionId':_0x33a79b,'attributes':_0x279bb0},_0x598265=await this['_trackChangesService']['add'](_0x440086,_0x30d5d3,_0x2e2299,_0x33a79b,_0x279bb0)['catch'](_0xd6e1af=>{if(st(_0xd6e1af))return new Promise(_0x2a1a3b=>{this['_bufferedRequests']['set'](_0x440086,{'resolve':_0x2a1a3b,'suggestionData':_0x40ce98});});throw _0xd6e1af;});return this['_bufferedRequests']['delete'](_0x440086),_0x598265;},'updateSuggestion':async(_0x592446,_0x4b0fee)=>{if(await this['_waitForServiceReady'](),'open'!==_0x4b0fee['state'])return this['_trackChangesService']['update'](_0x592446,_0x4b0fee)['catch'](et);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x57ff47,_0x184fb5)=>{_0x5956a2['hasSuggestion'](_0x184fb5['id'])&&(_0x5956a2['getSuggestion'](_0x184fb5['id'])['attributes']=_0x184fb5['attributes']);}),this['_trackChangesService']['connect'](_0x9a3808['connection'])['then'](_0x5dde67=>(_0x9a3808['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x5dde67)['then'](()=>{for(const _0x4e9f3a of _0x5dde67){_0x5956a2['addSuggestionData'](_0x4e9f3a)['_saved']=!0x0;}})));}async['reconnect'](){const _0x2db223=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x214714}=this['editor']['plugins']['get'](WebSocketGateway),_0x2fc806=await this['_trackChangesService']['connect'](_0x214714);await this['_fetchMissingUsersForThreads'](_0x2fc806);for(const {suggestionData:_0x5d0335,resolve:_0x10265a}of this['_bufferedRequests']['values']()){let _0x4d697a=_0x2fc806['find'](_0x49d230=>_0x49d230['id']===_0x5d0335['id']);_0x4d697a||(_0x4d697a=await this['_trackChangesService']['add'](_0x5d0335['id'],_0x5d0335['type'],_0x5d0335['data'],_0x5d0335['originalSuggestionId'])),_0x10265a(_0x4d697a);}for(const _0x357ff0 of _0x2fc806)_0x2db223['hasSuggestion'](_0x357ff0['id'])||_0x2db223['addSuggestionData'](_0x357ff0);}async['_waitForServiceReady'](){this['_trackChangesService']['isConnected']||await new Promise(_0x38f0b0=>{this['listenTo'](this['_trackChangesService'],'connected',_0xf66b56=>{_0xf66b56['off'](),_0x38f0b0();});});}async['_fetchMissingUsersForThreads'](_0x1618d2){const _0x35900d=this['editor']['plugins']['get'](_0xbd9206),{connection:_0x113a75}=this['editor']['plugins']['get'](WebSocketGateway),_0x32acf8=new Set();for(const {authorId:_0x5de262}of _0x1618d2)_0x35900d['getUser'](_0x5de262)||_0x32acf8['add'](_0x5de262);if(0x0===_0x32acf8['size'])return;const _0x421806=await _0x270274['getMany'](_0x113a75,Array['from'](_0x32acf8));for(const _0x3e38ff of _0x421806)_0x35900d['getUser'](_0x3e38ff['id'])||_0x35900d['addUser'](_0x3e38ff);}}function et(_0x562248){if(st(_0x562248))return new Promise(()=>{});throw _0x562248;}function st(_0x5d00f0){return _0x5d00f0['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x5d00f0['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeComments extends _0x523d5c{static get['requires'](){return[_0x42ae2e,CloudServicesCommentsAdapter,RealTimeCollaborativeEditing,WebSocketGateway];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x5a4d7e=this['editor']['plugins']['get'](WebSocketGateway),_0x1cab93=this['editor']['plugins']['get'](_0x121bef),_0x486787=this['editor']['plugins']['get'](CloudServicesCommentsAdapter);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x5a4d7e,'change:state',(_0xbb640b,_0x5c473f,_0x435f2c)=>{_0x1cab93['isThreadsLoadingPaused']='connected'!==_0x435f2c;});}),this['listenTo'](_0x5a4d7e,'change:state',(_0x1cf0b1,_0x19ad81,_0x56658d)=>{this['editor']['plugins']['get'](_0x55664d)['switchReadOnly']('connected'!==_0x56658d);}),_0x486787['_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 _0x523d5c{static get['requires'](){return[RealTimeCollaborativeComments,CloudServicesTrackChangesAdapter,_0x2d4889];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class CloudServicesRevisionHistoryAdapter extends _0x523d5c{static ['RevisionHistoryService']=/* #__PURE__ -- @preserve */
|
|
28
|
+
((()=>_0x3b4c9e)());['_lastRequestId'];['_revisionTracker'];['_revisionHistoryService'];['_oldOffset'];static get['requires'](){return[WebSocketGateway,RealTimeCollaborationClient,_0x510d56,Sessions,_0xbd9206];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x51a4ca){super(_0x51a4ca);const _0x4ab4f6=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x4ab4f6);}async['init'](){const _0x8b2b91=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x3a1555=_0x8b2b91['serverHistory'],_0x1ef059=this['editor']['plugins']['get'](WebSocketGateway);this['_revisionTracker']['setSource']({'history':_0x3a1555,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x8b2b91['sessionId']});const _0x93e260=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x146c5e,_0x1f1ca6=await _0x5b3750['isBundleUploaded'](_0x1ef059['connection'],_0x93e260);this['editor']['plugins']['get'](_0x510d56)['adapter']={'getRevision':async({revisionId:_0x599ad2})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x599ad2)),'updateRevisions':async _0x53c689=>{await this['_waitForServiceReady']();const _0x2af103=this['_revisionTracker']['currentRevision'];if(_0x1f1ca6&&0x1===_0x53c689['length']&&_0x53c689[0x0]['id']===_0x2af103['id'])return _0x53c689;for(const _0x16b5e8 of _0x53c689)_0x16b5e8['id']===_0x2af103['id']&&(_0x16b5e8['isEmptyCurrent']=_0x16b5e8['fromVersion']===_0x16b5e8['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x53c689,this['_lastRequestId'])['then'](_0x443986=>(this['_lastRequestId']=_0x443986,_0x53c689))['catch'](_0x4ccd92=>{if(it(_0x4ccd92)||'400'===_0x4ccd92['code']&&void 0x0!==_0x4ccd92['data']['wrongRequestId']){for(const _0x4ed028 of _0x53c689){!this['_revisionTracker']['repository']['getRevision'](_0x4ed028['id'])||this['_revisionTracker']['_bufferUpdate'](_0x4ed028['id'],_0x4ed028,!0x1);}if(it(_0x4ccd92)&&'destroyed'!==this['editor']['state'])throw _0x4ccd92;return _0x53c689;}throw _0x4ccd92;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x742007,{revisionsData:_0x2ab476,requestId:_0x5adb88})=>{Math['max'](..._0x2ab476['map'](_0x247a2c=>_0x247a2c['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x2ab476,_0x5adb88);}):this['_handleRevisionsUpdate'](_0x2ab476,_0x5adb88);});const {revisions:_0x1c5213,requestId:_0x8acce3}=await this['_revisionHistoryService']['connect'](_0x1ef059['connection']);_0x1ef059['addToReconnectionStack'](this),this['_lastRequestId']=_0x8acce3,await this['_fetchMissingUsers'](_0x1c5213);for(const _0x25ee99 of _0x1c5213)this['_revisionTracker']['addRevisionData'](_0x25ee99);this['listenTo'](_0x8b2b91,'change:_isConnected',(_0x3e5ba6,_0x2f005e,_0x37d912)=>{_0x37d912&&(this['_oldOffset']=_0x8b2b91['_offset'],_0x3e5ba6['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](_0x1ef059,'state',_0x1b9d42=>_0x1b9d42===_0xb53f3f['CONNECTED']);}async['reconnect'](){const _0x100a0f=this['editor']['plugins']['get'](WebSocketGateway),_0x13b048=this['editor']['plugins']['get'](RealTimeCollaborationClient),_0x2a5a6a=async()=>{const _0x1dd0e7=this['_revisionTracker']['currentRevision'],_0x39d004=_0x1dd0e7['id'],_0x5bfa3d=_0x39d004!==_0x13b048['sessionId'];if(_0x5bfa3d){const _0x35b24d=_0x13b048['_offset']-this['_oldOffset'],_0x251b57=this['_getLatestVersionFromServerOperations']();this['_revisionTracker']['_revisionDataBuilder']['reInit']();if(_0x1dd0e7['toVersion']+_0x35b24d!==_0x251b57){const _0x4dc783=_0x1dd0e7['fromVersion']+_0x35b24d,_0x2aed49=this['editor']['plugins']['get'](_0xbd9206),_0x44f001=this['_revisionTracker']['buildRevisionData']({'revision':_0x1dd0e7,'from':_0x4dc783,'to':_0x251b57});_0x44f001['id']=_0x1dd0e7['id'];const _0x4927f0=_0x44f001['authorsIds']['map'](_0x35bd68=>_0x2aed49['getUser'](_0x35bd68));_0x1dd0e7['_update']({..._0x44f001,'authors':_0x4927f0},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x1dd0e7['id'],_0x44f001,!0x0);}this['_revisionTracker']['_startingVersion']=_0x251b57,(_0x1dd0e7['toVersion']===_0x1dd0e7['fromVersion']&&!this['_revisionTracker']['_bufferedUpdates']['has'](_0x39d004)&&this['_revisionTracker']['repository']['_revisions']['remove'](_0x39d004),this['_revisionTracker']['_createCurrentRevision'](_0x251b57));}const {revisions:_0x428d26,requestId:_0x3209eb}=await this['_revisionHistoryService']['reconnect'](_0x100a0f['connection'],this['_lastRequestId']);_0x5bfa3d&&_0x428d26['length']>0x0?_0x13b048['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x428d26),this['_handleRevisionsUpdate'](_0x428d26,_0x3209eb),this['_revisionTracker']['sendBufferedUpdates']());};return _0x13b048['_isConnected']?_0x2a5a6a():new Promise((_0x3570ac,_0x304f3f)=>{_0x13b048['once']('change:_isConnected',()=>{_0x2a5a6a()['then'](_0x3570ac)['catch'](_0x304f3f);});});}['destroy'](){super['destroy']();}async['_waitForServiceReady'](){this['_revisionHistoryService']['isConnected']||await new Promise(_0x1c90f7=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x4a8b4f=>{_0x4a8b4f['off'](),_0x1c90f7();});});}['_getLatestVersionFromServerOperations'](){const _0x11e519=this['editor']['plugins']['get'](RealTimeCollaborationClient)['serverHistory']['getOperations']()['reverse']();for(const _0x5c67fd of _0x11e519)if('marker'!==_0x5c67fd['type']||_0x5c67fd['affectsData'])return _0x5c67fd['baseVersion']+0x1;}['_getLatestVersion'](){const _0xcedb55=this['editor']['plugins']['get'](RealTimeCollaborationClient);return new Promise(_0x1d82f7=>{_0xcedb55['_isPendingUpdate']?_0xcedb55['once']('change:_isPendingUpdate',()=>{_0x1d82f7(this['_getLatestVersionFromServerOperations']());}):_0x1d82f7(this['_getLatestVersionFromServerOperations']());});}['_handleRevisionsUpdate'](_0x9d3d42,_0x5b00f7){const _0x3ec4d4=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x5b00f7;for(const _0x38758c of _0x9d3d42){const _0x5cde11=_0x3ec4d4['getRevision'](_0x38758c['id']);if(_0x5cde11){if((_0x38758c['fromVersion']||_0x38758c['toVersion'])&&(_0x38758c['diffData']=null),_0x5cde11===this['_revisionTracker']['currentRevision']){const _0x35cfe7=Math['max'](_0x5cde11['toVersion'],_0x38758c['toVersion']),_0x9ee17b=Math['max'](_0x5cde11['fromVersion'],_0x38758c['fromVersion']);let _0x45fb80;_0x5cde11['toVersion']===_0x38758c['toVersion']&&_0x5cde11['fromVersion']===_0x38758c['fromVersion']?(_0x45fb80=!0x0,this['_preventResendingRevisionData'](_0x38758c)):_0x38758c['toVersion']===_0x35cfe7&&_0x38758c['fromVersion']===_0x9ee17b?_0x45fb80=!0x1:(_0x5cde11['toVersion']===_0x35cfe7&&_0x5cde11['fromVersion']===_0x9ee17b||this['_fixRevision']({'revision':_0x5cde11,'from':_0x9ee17b,'to':_0x35cfe7}),_0x45fb80=!0x0),_0x45fb80&&(delete _0x38758c['fromVersion'],delete _0x38758c['toVersion'],delete _0x38758c['diffData'],delete _0x38758c['createdAt'],delete _0x38758c['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x38758c),this['_preventResendingRevisionData'](_0x38758c);}else this['_revisionTracker']['addRevisionData'](_0x38758c);}const _0x1b4e15=_0x3ec4d4['getRevisions']();_0x1b4e15['reverse']();for(let _0x57941f=0x0;_0x57941f<_0x1b4e15['length']-0x1;_0x57941f++){const _0x273a31=_0x1b4e15[_0x57941f],_0x371b11=_0x1b4e15[_0x57941f+0x1];if(_0x273a31['fromVersion']<_0x371b11['toVersion']){const _0x3525d4=_0x371b11['toVersion'],_0x4eb205=Math['max'](_0x3525d4,_0x273a31['toVersion']);this['_fixRevision']({'revision':_0x273a31,'from':_0x3525d4,'to':_0x4eb205});}}}['_fixRevision']({revision:_0xfc44bc,from:_0x4536d1,to:_0x3bf614}={}){const _0x3f6cac=this['editor']['plugins']['get'](_0xbd9206),_0x514180=this['_revisionTracker']['buildRevisionData']({'revision':_0xfc44bc,'from':_0x4536d1,'to':_0x3bf614});_0x514180['authors']=_0x514180['authorsIds']['map'](_0x1c6cf1=>_0x3f6cac['getUser'](_0x1c6cf1)),_0xfc44bc['_update'](_0x514180);}['_preventResendingRevisionData'](_0x328a90){const _0x5bd0bc={};_0x5bd0bc['id']=_0x328a90['id'];for(const _0x27b777 of Object['keys'](_0x328a90))'id'!==_0x27b777&&(_0x5bd0bc[_0x27b777]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x5bd0bc['id'],_0x5bd0bc,!0x0);}async['_fetchMissingUsers'](_0x518281){const _0x453470=this['editor']['plugins']['get'](_0xbd9206),{connection:_0x439f8f}=this['editor']['plugins']['get'](WebSocketGateway),_0x1593e9=new Set();for(const _0x2f8fd3 of _0x518281){for(const _0x3de52b of _0x2f8fd3['authorsIds'])_0xe0e850(_0x3de52b);_0x2f8fd3['creatorId']&&_0xe0e850(_0x2f8fd3['creatorId']);}if(0x0===_0x1593e9['size'])return;const _0x334685=await _0x270274['getMany'](_0x439f8f,Array['from'](_0x1593e9));for(const _0x3d4cfd of _0x334685)_0x453470['getUser'](_0x3d4cfd['id'])||_0x453470['addUser'](_0x3d4cfd);function _0xe0e850(_0x5a5486){_0x453470['getUser'](_0x5a5486)||_0x1593e9['add'](_0x5a5486);}}}function it(_0x34f286){return _0x34f286['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0x34f286['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x34f286['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}class RealTimeCollaborativeRevisionHistory extends _0x523d5c{static get['requires'](){return[_0x510d56,CloudServicesRevisionHistoryAdapter,RealTimeCollaborativeEditing];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}}class PresenceCounterView extends _0x59157b{['_collapseAt'];constructor(_0x1d2d42,_0x410939=0x6){super(_0x1d2d42);const _0x19dac8=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x410939,this['bind']('isHidden')['to'](this,'usersCount',_0x336703=>_0x336703<_0x410939),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x19dac8['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':_0x19dac8['to']('usersCount',_0x221312=>'+'+(_0x221312-this['_collapseAt']+0x2)['toString']())}]}]}]});}}class PresenceInlineListView extends _0x59157b{['items'];['keystrokes'];constructor(_0x33ba9a){super(_0x33ba9a);const _0x35a3fd=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x4de09d(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x35a3fd['if']('hasPopup'),'aria-expanded':_0x35a3fd['to']('isExpanded',_0xc8a4f5=>this['hasPopup']&&String(_0xc8a4f5)),'aria-label':_0x35a3fd['to']('hasPopup',_0x1af98c=>K(_0x33ba9a,_0x1af98c?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x35a3fd['to']('hasPopup',_0x45f12e=>!!_0x45f12e&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items'],'on':{'mouseenter':_0x35a3fd['to'](()=>this['fire']('presencelist:show')),'mouseleave':_0x35a3fd['to'](_0xe607de=>{const _0x39f53b=_0xe607de,_0x32833d=document['querySelector']('.ck-presence-list__dropdown-list'),_0x531ec5=document['querySelector']('.ck-balloon-panel_with-arrow');_0x32833d?.['contains'](_0x39f53b['relatedTarget'])||_0x531ec5?.['contains'](_0x39f53b['relatedTarget'])||this['fire']('presencelist:hide');})}}),this['on']('change:hasPopup',(_0x81ee10,_0x3648ca,_0x2512ab)=>{this['element']&&(_0x2512ab?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 _0x59157b{['counterView'];['inlineListView'];constructor(_0xfc885d,_0x42c08e=0x6){super(_0xfc885d);const _0x280ab9=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new PresenceCounterView(this['locale'],_0x42c08e),this['inlineListView']=new PresenceInlineListView(_0xfc885d),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x28b482 of this['inlineListView']['items'])_0x28b482['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',_0x280ab9['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}}class PresenceDropdownListView extends _0x59157b{['listWrapperView'];constructor(_0x261e58,_0x44a21d){super(_0x261e58);const _0x5ca4c2=this['bindTemplate'];this['listWrapperView']=new PresenceDropdownListWrapperView(_0x261e58,_0x44a21d),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':K(_0x261e58,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']],'on':{'mouseleave':_0x5ca4c2['to'](_0x50baeb=>{const _0xf0ffa3=_0x50baeb,_0x551f1d=document['querySelector']('.ck-presence-list__list'),_0x3ddefc=document['querySelector']('.ck-balloon-panel_with-arrow');_0x551f1d?.['contains'](_0xf0ffa3['relatedTarget'])||_0x3ddefc?.['contains'](_0xf0ffa3['relatedTarget'])||this['fire']('presencelist:hide');})}});}}class PresenceDropdownListWrapperView extends _0x3a285a{constructor(_0x33dfec,_0x50ecfb){super(_0x33dfec);const _0x276136=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x50ecfb?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x276136['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x276136['to']('role'),'aria-label':_0x276136['to']('ariaLabel'),'aria-labelledby':_0x276136['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x14a421['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x11ac01=this['element'];_0x11ac01&&(this['_isScrollable']=Math['max'](_0x11ac01['scrollHeight'],_0x11ac01['clientHeight'])>0.8*window['innerHeight']);}}class PresenceDropdownListItemView extends _0x245139{['userView'];constructor(_0x4a0428,_0xebcc3,_0x4e9c86){super(_0x4a0428);const _0x3a4724=this['bindTemplate'];this['userView']=new _0x1b8b54(_0x4a0428,_0xebcc3);const _0x1f70dc={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0xebcc3['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0xebcc3['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0xebcc3['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0xebcc3['color']['getColorVariable'](),'--ck-user-color-alpha':_0xebcc3['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x4e9c86&&(_0x1f70dc['tag']='button',_0x1f70dc['on']={'click':_0x3a4724['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1f70dc);}['focus'](){this['element']['focus']();}}class PresenceInlineListItemView extends _0x59157b{['userView'];['markerView'];constructor(_0x7c1a90,_0x176e97,_0x3cc627){super(_0x7c1a90);const _0x3abf2a=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x1b8b54(_0x7c1a90,_0x176e97),this['markerView']=new MarkerView(_0x7c1a90,_0x176e97);const _0x3a36d6=new _0x1c19b1(_0x7c1a90);_0x3a36d6['template']['tag']='span',_0x3a36d6['text']=_0x176e97['name'];const _0x56d939={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x3abf2a['to']('isFocusable',_0x590853=>!!_0x590853&&0x0),'aria-labelledby':_0x3a36d6['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x3abf2a['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x3abf2a['to']('hasTooltip',_0x33d49d=>!_0x33d49d),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x3a36d6]};_0x3cc627&&(_0x56d939['tag']='button',_0x56d939['on']={'click':_0x3abf2a['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x56d939);}}class MarkerView extends _0x59157b{constructor(_0x11d041,_0x18201b){super(_0x11d041),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x18201b['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x18201b['color']['getColorVariable'](),'--ck-user-color-alpha':_0x18201b['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}}const nt={'collapseAt':0x6,'displayMe':!0x0};class PresenceListUI extends _0x191ab4{['currentDisplayedUsers'];['balloonPanelView'];['view'];['presenceDropdownView'];['_bodyCollection']=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x49e441){super(_0x49e441),this['context']['config']['define']('presenceList',nt);const _0x4772a3=_0x49e441['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x4772a3)throw new _0x44690c('presencelist-collapseat-invalid-format',this);if(_0x4772a3<0x1)throw new _0x44690c('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Sessions)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0xd26e88(),this['balloonPanelView']=new _0x19c131(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get['requires'](){return[Sessions];}['init'](){for(const _0x506cd9 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x506cd9);this['listenTo'](this['_allConnectedUsers'],'add',(_0x5abd12,_0x1df10b)=>{this['_handleUserAdd'](_0x1df10b);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x519c26,_0x710a0a)=>{this['_handleUserRemove'](_0x710a0a);});}['_createView'](){const _0x51aa71=this['context'],_0x4988ee=new PresenceListView(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x1b1c58=this['balloonPanelView'];if(!_0x54c657(_0x51aa71['config']['get']('presenceList.container')))throw new _0x44690c('presencelist-missing-container',this);return _0x4988ee['counterView']['bind']('usersCount')['to'](this),_0x4988ee['bind']('isCollapsed')['to'](this,'usersCount',_0x225c7f=>{const {collapseAt:_0x503af1}=_0x51aa71['config']['get']('presenceList'),_0x1c29b0=_0x225c7f>=_0x503af1;if(_0x1c29b0&&!_0x4988ee['inlineListView']['items']['find'](_0xdbbeae=>_0xdbbeae instanceof PresenceCounterView)){const _0x227d83=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x227d83&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x4988ee['inlineListView']['items']['add'](_0x4988ee['counterView']);}return _0x1c29b0||this['hideDropdown'](),_0x1c29b0;}),_0x4988ee['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x3846eb=>{const _0x192f7a=_0x51aa71['config']['get']('presenceList'),_0x44f8b7=new PresenceInlineListItemView(_0x51aa71['locale'],_0x3846eb,!!_0x192f7a['onClick']);return _0x44f8b7['bind']('hasTooltip')['to'](_0x4988ee,'isCollapsed',_0x278501=>!_0x278501),_0x44f8b7['bind']('isFocusable')['to'](_0x4988ee,'isCollapsed',_0x328d39=>!_0x328d39),_0x192f7a['onClick']&&this['listenTo'](_0x44f8b7,'execute',()=>{this['view']['isCollapsed']||_0x192f7a['onClick'](_0x3846eb,_0x44f8b7['element']);}),_0x44f8b7;}),this['listenTo'](_0x4988ee['inlineListView'],'presencelist:show',()=>{this['view']['isCollapsed']&&this['showDropdown']();}),this['listenTo'](_0x4988ee['inlineListView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();}),_0x4988ee['inlineListView']['keystrokes']['set']('Enter',(_0x5d3066,_0x49636c)=>{this['view']['isCollapsed']&&(this['showDropdown'](),_0x49636c());}),_0x4988ee['render'](),_0x1b1c58['render'](),_0x52aaad({'emitter':_0x4988ee,'activator':()=>_0x1b1c58['isVisible'],'contextElements':[_0x1b1c58['element'],_0x4988ee['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x51aa71['config']['get']('presenceList.container')['appendChild'](_0x4988ee['element']),this['_bodyCollection']=new _0x418f13(this['context']['locale']),this['_bodyCollection']['attachToDom'](),this['_bodyCollection']['add'](this['balloonPanelView']),_0x4988ee;}['_handleUserAdd'](_0x10c75b){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x10c75b['isMe'])return;const _0x48fcc9=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x48fcc9-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x1a5be1=_0x10c75b['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x10c75b,_0x1a5be1);}['_handleUserRemove'](_0x20e536){this['usersCount']--;const {collapseAt:_0x49b39b}=this['context']['config']['get']('presenceList'),_0x190cfa=this['usersCount']>=_0x49b39b;if(this['currentDisplayedUsers']['get'](_0x20e536['id']))this['currentDisplayedUsers']['remove'](_0x20e536['id']);else{if(_0x190cfa&&this['currentDisplayedUsers']['length']+0x1===_0x49b39b-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x190cfa?0x1:0x0)<this['usersCount']){for(const _0x24cddb of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x24cddb['id'])&&(this['currentDisplayedUsers']['add'](_0x24cddb,Math['min'](this['currentDisplayedUsers']['length']-(_0x190cfa?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x190cfa?0x1:0x0)===_0x49b39b-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x365e1f=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new PresenceDropdownListView(this['context']['locale'],!!_0x365e1f['onClick']),this['view']['inlineListView']['isExpanded']=!0x0,this['listenTo'](this['presenceDropdownView'],'presencelist:hide',()=>{this['presenceDropdownView']&&this['hideDropdown']();});const {listWrapperView:_0x3e2661}=this['presenceDropdownView'];_0x3e2661['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x2a246a=>{if(!_0x365e1f['displayMe']&&_0x2a246a['isMe'])return null;const _0x40d507=new PresenceDropdownListItemView(this['context']['locale'],_0x2a246a,!!_0x365e1f['onClick']);return _0x365e1f['onClick']&&this['listenTo'](_0x40d507,'execute',()=>{_0x365e1f['onClick'](_0x2a246a,_0x40d507['element']);}),_0x40d507;}),this['balloonPanelView']['content']['add'](this['presenceDropdownView']),this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element']}),_0x3e2661['focus'](),_0x3e2661['checkIfScrollable']();const _0x2cc556=(_0x5cb864,_0x4f031a)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x4f031a();};_0x3e2661['keystrokes']['set']('Esc',_0x2cc556),_0x3e2661['keystrokes']['set']('Shift+Tab',_0x2cc556),_0x3e2661['keystrokes']['set']('Tab',(_0x963499,_0x24b7f8)=>{!function(_0x34a1d4){const _0x4f3024=['a','button','input','select','textarea','[tabindex]','[contenteditable]']['map'](_0x3c6c9d=>_0x3c6c9d+':not([disabled]):not([tabindex=\x22-1\x22])')['join'](','),_0x380dfb=[...document['body']['querySelectorAll'](_0x4f3024)]['filter'](_0x20e04e=>_0x20e04e===document['activeElement']||_0x20e04e['offsetWidth']+_0x20e04e['offsetHeight']>0x0)['sort']((_0x451683,_0x35ea7b)=>(_0x451683['tabIndex']||0x0)-(_0x35ea7b['tabIndex']||0x0)),_0xa3da46=_0x380dfb['indexOf'](_0x34a1d4),_0x2887ce=_0x380dfb[(_0xa3da46+0x1)%_0x380dfb['length']];_0x2887ce&&_0x2887ce['focus']();}(this['view']['element']),this['hideDropdown'](),_0x24b7f8();}),_0x3e2661['focusTracker']['add'](this['view']['element']),_0x3e2661['focusTracker']['on']('change:isFocused',(_0x109d8d,_0x1b97be,_0x4fa51e)=>{_0x4fa51e||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 _0x191ab4{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};
|