@ckeditor/ckeditor5-real-time-collaboration 49.0.0-alpha.7 → 49.0.0-alpha.8
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.umd.js +1 -1
- package/dist/translations/ar.umd.js +1 -1
- package/dist/translations/ast.umd.js +1 -1
- package/dist/translations/az.umd.js +1 -1
- package/dist/translations/be.umd.js +1 -1
- package/dist/translations/bg.umd.js +1 -1
- package/dist/translations/bn.umd.js +1 -1
- package/dist/translations/bs.umd.js +1 -1
- package/dist/translations/ca.umd.js +1 -1
- package/dist/translations/cs.umd.js +1 -1
- package/dist/translations/da.umd.js +1 -1
- package/dist/translations/de-ch.umd.js +1 -1
- package/dist/translations/de.umd.js +1 -1
- package/dist/translations/el.umd.js +1 -1
- package/dist/translations/en-au.umd.js +1 -1
- package/dist/translations/en-gb.umd.js +1 -1
- package/dist/translations/en.umd.js +1 -1
- package/dist/translations/eo.umd.js +1 -1
- package/dist/translations/es-co.umd.js +1 -1
- package/dist/translations/es.umd.js +1 -1
- package/dist/translations/et.umd.js +1 -1
- package/dist/translations/eu.umd.js +1 -1
- package/dist/translations/fa.umd.js +1 -1
- package/dist/translations/fi.umd.js +1 -1
- package/dist/translations/fr.umd.js +1 -1
- package/dist/translations/gl.umd.js +1 -1
- package/dist/translations/gu.umd.js +1 -1
- package/dist/translations/he.umd.js +1 -1
- package/dist/translations/hi.umd.js +1 -1
- package/dist/translations/hr.umd.js +1 -1
- package/dist/translations/hu.umd.js +1 -1
- package/dist/translations/hy.umd.js +1 -1
- package/dist/translations/id.umd.js +1 -1
- package/dist/translations/it.umd.js +1 -1
- package/dist/translations/ja.umd.js +1 -1
- package/dist/translations/jv.umd.js +1 -1
- package/dist/translations/kk.umd.js +1 -1
- package/dist/translations/km.umd.js +1 -1
- package/dist/translations/kn.umd.js +1 -1
- package/dist/translations/ko.umd.js +1 -1
- package/dist/translations/ku.umd.js +1 -1
- package/dist/translations/lt.umd.js +1 -1
- package/dist/translations/lv.umd.js +1 -1
- package/dist/translations/ms.umd.js +1 -1
- package/dist/translations/nb.umd.js +1 -1
- package/dist/translations/ne.umd.js +1 -1
- package/dist/translations/nl.umd.js +1 -1
- package/dist/translations/no.umd.js +1 -1
- package/dist/translations/oc.umd.js +1 -1
- package/dist/translations/pl.umd.js +1 -1
- package/dist/translations/pt-br.umd.js +1 -1
- package/dist/translations/pt.umd.js +1 -1
- package/dist/translations/ro.umd.js +1 -1
- package/dist/translations/ru.umd.js +1 -1
- package/dist/translations/si.umd.js +1 -1
- package/dist/translations/sk.umd.js +1 -1
- package/dist/translations/sl.umd.js +1 -1
- package/dist/translations/sq.umd.js +1 -1
- package/dist/translations/sr-latn.umd.js +1 -1
- package/dist/translations/sr.umd.js +1 -1
- package/dist/translations/sv.umd.js +1 -1
- package/dist/translations/th.umd.js +1 -1
- package/dist/translations/ti.umd.js +1 -1
- package/dist/translations/tk.umd.js +1 -1
- package/dist/translations/tr.umd.js +1 -1
- package/dist/translations/tt.umd.js +1 -1
- package/dist/translations/ug.umd.js +1 -1
- package/dist/translations/uk.umd.js +1 -1
- package/dist/translations/ur.umd.js +1 -1
- package/dist/translations/uz.umd.js +1 -1
- package/dist/translations/vi.umd.js +1 -1
- package/dist/translations/zh-cn.umd.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{Context as
|
|
24
|
-
((()=>_0x198653)());static initialReconnectionInterval=0x3e8;connection;_reconnectionStack;_shouldPluginsReconnect;_domEmitter;static get requires(){return[_0x48b051,_0x530464];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3cd0a3){super(_0x3cd0a3),this['set']('state',_0x2a4354['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x22893b())();}init(){const _0x1b4e75=this['context'],_0x20ebef=_0x1b4e75['plugins']['get'](_0x48b051),_0x3e5fc0=_0x1b4e75['plugins']['get'](_0x530464);if(!_0x20ebef['token'])throw new _0x285801('websocketgateway-missing-token',this);if(!_0x20ebef['webSocketUrl'])throw new _0x285801('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'](_0x20ebef['token'],_0x20ebef['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0x5c7de5=>{if(this['connection']=_0x5c7de5,this['bind']('state')['to'](_0x5c7de5,'state',this,'_isBrowserOffline',(_0x39eefb,_0x54f1f0)=>('connected'!==_0x39eefb&&(this['_shouldPluginsReconnect']=!0x0),_0x54f1f0||_0x39eefb!==_0x2a4354['CONNECTED']?_0x2a4354['DISCONNECTED']:this['state']==_0x2a4354['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x2a4354['CONNECTING']):_0x2a4354['CONNECTED'])),this['connection']['on']('error',(_0x472ead,_0x4478ce)=>{if('limitExceeded'!==_0x4478ce['code'])throw console['error'](_0x4478ce),new _0x285801('cloudservices-init',null,{'originalError':_0x4478ce});_0x3e5fc0['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'});}),!_0x5c7de5['me'])return new Promise(_0x3ad2d0=>_0x5c7de5['on']('change:me',_0x3ad2d0));})['catch'](_0x4e62dc=>{throw console['error'](_0x4e62dc),new _0x285801('cloudservices-init',null,{'originalError':_0x4e62dc});});}addToReconnectionStack(_0x16172c){if('function'!=typeof _0x16172c['reconnect'])throw new _0x285801('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x16172c))throw new _0x285801('websocketgateway-plugin-already-registered',this,{'name':_0x16172c['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x16172c);}removeFromReconnectionStack(_0x1986b7){this['_reconnectionStack']['delete'](_0x1986b7);}isInReconnectionStack(_0x34c9f5){return this['_reconnectionStack']['has'](_0x34c9f5);}_reconnect(){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0xd17145=>_0xd17145['reconnect']())))['then'](()=>this['state']=_0x2a4354['CONNECTED'])['catch'](_0x1f9d8d=>{throw console['error'](_0x1f9d8d),new _0x285801('cloudservices-reconnection-error',this['context']);});}disconnect(){this['connection']&&this['connection']['disconnect'](),this['state']=_0x2a4354['DISCONNECTED'],this['_domEmitter']['stopListening']();}destroy(){this['disconnect'](),super['destroy']();}},Q=class extends _0x438626{['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[J,_0x3f8d3d];}constructor(_0x50af85){super(_0x50af85),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x265f56(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x3f8d3d);}init(){const _0x27a0c9=this['context']['plugins']['get'](J);this['listenTo'](_0x27a0c9,'change:state',(_0x189b86,_0x48179e,_0x3bbcde)=>{if('connected'!==_0x3bbcde)this['channelSessions']['forEach'](_0x4b4b93=>_0x4b4b93['clear']()),this['channelConnectedUsers']['forEach'](_0x230f99=>_0x230f99['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x2709be,_0x1925f6]of this['_registeredSessions'])for(const _0x469928 of _0x1925f6)this['_handleSessionAdd'](_0x2709be,_0x469928);}}),this['_createUser'](_0x27a0c9['connection']['me'],!0x0);}register(_0x8f6c7f,_0x48f48f){if(this['_registeredSessions']['has'](_0x8f6c7f))throw new _0x285801('sessions-register-already-registered',null,{'channelId':_0x8f6c7f});this['_registeredSessions']['set'](_0x8f6c7f,_0x48f48f),this['channelSessions']['set'](_0x8f6c7f,new _0x265f56()),this['channelConnectedUsers']['set'](_0x8f6c7f,new _0x265f56()),this['listenTo'](_0x48f48f,'add',(_0x4506c4,_0x407416)=>this['_handleSessionAdd'](_0x8f6c7f,_0x407416)),this['listenTo'](_0x48f48f,'remove',(_0x13d023,_0x1aae8e)=>this['_handleSessionRemove'](_0x8f6c7f,_0x1aae8e));for(const _0xe1b43a of _0x48f48f)this['_handleSessionAdd'](_0x8f6c7f,_0xe1b43a);}unregister(_0x6f032){if(!this['_registeredSessions']['has'](_0x6f032))throw new _0x285801('sessions-unregister-not-exist',null,{'channelId':_0x6f032});const _0x1bde75=this['_registeredSessions']['get'](_0x6f032);this['stopListening'](_0x1bde75);for(const _0x1f707a of _0x1bde75)'connected'===this['context']['plugins']['get'](J)['state']&&this['_handleSessionRemove'](_0x6f032,_0x1f707a);this['_registeredSessions']['delete'](_0x6f032),this['channelSessions']['delete'](_0x6f032),this['channelConnectedUsers']['delete'](_0x6f032);}get['mySessionId'](){return this['context']['plugins']['get'](J)['connection']['sessionId'];}getUserBySessionId(_0x2b7f00){for(const _0x4741b4 of this['channelSessions']['values']())for(const _0x4b7ecd of _0x4741b4)if(_0x4b7ecd['id']===_0x2b7f00)return _0x4b7ecd['user'];}getUserSessions(_0x2740ec,_0x28142e){const _0x5bb9ad=_0x28142e?[this['channelSessions']['get'](_0x28142e)]:this['channelSessions']['values'](),_0x31b368=new Set();for(const _0x5be9c0 of _0x5bb9ad)for(const _0x499922 of _0x5be9c0)_0x499922['user']['id']===_0x2740ec['id']&&_0x31b368['add'](_0x499922['id']);return _0x31b368;}getUserRole(_0x44f89e){for(const _0x517781 of this['channelSessions']['values']())for(const _0x11ae0e of _0x517781)if(_0x11ae0e['user']===_0x44f89e)return _0x11ae0e['role'];}['_handleSessionAdd'](_0x2d9353,_0x50a5ce){if('connected'!==this['context']['plugins']['get'](J)['state'])return;const _0x5eeff3=_0x50a5ce['user'],_0x4db0a9=this['_users']['getUser'](_0x5eeff3['id'])||this['_createUser'](_0x5eeff3),_0x1af5df=Object['assign']({},_0x50a5ce,{'user':_0x4db0a9});if(this['channelSessions']['get'](_0x2d9353)['add'](_0x1af5df),!_0x5eeff3['hiddenInPresenceList']){const _0x4e56d0=this['channelConnectedUsers']['get'](_0x2d9353);_0x4e56d0['has'](_0x4db0a9['id'])||_0x4e56d0['add'](_0x4db0a9),this['allConnectedUsers']['has'](_0x4db0a9['id'])||_0x5eeff3['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x4db0a9,_0x4db0a9['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x2d9353,{'channelId':_0x2d9353,'session':_0x1af5df});}['_handleSessionRemove'](_0xb0c68,_0x17c59e){if('connected'!==this['context']['plugins']['get'](J)['state'])return;const _0xd1f586=this['channelConnectedUsers']['get'](_0xb0c68),_0x1d5619=_0x17c59e['user'];_0x1d5619['id']&&(this['channelSessions']['get'](_0xb0c68)['remove'](_0x17c59e['id']),_0xd1f586['has'](_0x1d5619['id'])&&!this['getUserSessions'](_0x1d5619,_0xb0c68)['size']&&_0xd1f586['remove'](_0x1d5619['id']),this['allConnectedUsers']['get'](_0x1d5619['id'])&&!this['getUserSessions'](_0x1d5619)['size']&&this['allConnectedUsers']['remove'](_0x1d5619['id']));}_createUser(_0x489599,_0x56a36c){const _0x4bec94=this['_users']['addUser'](_0x489599);return _0x56a36c&&this['_users']['defineMe'](_0x489599['id']),_0x4bec94['orderNumber']=this['_uniqueUsersCount']++,_0x4bec94;}},X=class extends _0x15a09f{_domEmitter=new(_0x22893b())();static get requires(){return[Q];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}init(){const _0x15043a=this['editor'],_0x189854=_0x15043a['plugins']['get'](Q);_0x15043a['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x141b89,{writer:_0x3072f9})=>function(_0x1de7a0,_0x112b77,_0x4feb9f,_0x133221){const _0x5dbc88=_0x1de7a0['markerName']['split'](':')[0x2],_0x4cfc45=_0x4feb9f['getUserBySessionId'](_0x5dbc88);if(!_0x4cfc45||_0x5dbc88===_0x4feb9f['mySessionId'])return;if(!_0x133221['model']['schema']['checkChild'](_0x1de7a0['markerRange']['start'],'$text'))return;const _0x5c31e9={'class':'ck-user__marker\x20'+_0x4cfc45['color']['getMarkerClass'](),'style':tt(_0x4cfc45),'data-name':_0x4cfc45['name'],'data-session-id':_0x5dbc88},_0x21776d=_0x133221['model']['markers']['get'](_0x1de7a0['markerName'])['getStart'](),_0x290119=_0x21776d['nodeAfter'],_0x519cd5=_0x133221['model']['schema'];if(_0x290119&&_0x519cd5['isObject'](_0x290119)&&_0x519cd5['isInline'](_0x290119)&&!_0x133221['model']['markers']['get']('user:range:'+_0x5dbc88)['getRange']()['isCollapsed'])return;const _0x530cb=_0x21776d['parent'];return _0x133221['model']['schema']['isLimit'](_0x530cb)&&!_0x133221['model']['hasContent'](_0x530cb)&&(_0x5c31e9['contenteditable']=!0x1),function(_0x208737,_0x3dc2f2,_0x25d2c7){const _0x5806af=_0x208737['createUIElement']('span',_0x3dc2f2);return _0x208737['setCustomProperty']('userPositionMarker',!0x0,_0x5806af),_0x5806af['render']=function(_0x535066){const _0x423513=this['toDomElement'](_0x535066),_0x521ab7=document['createElement']('span');return _0x521ab7['classList']['add']('ck-user__marker-tooltip'),_0x521ab7['setAttribute']('contenteditable','false'),_0x521ab7['setAttribute']('spellcheck','false'),_0x521ab7['textContent']=_0x25d2c7['name'],_0x423513['innerHTML']=_0x19fe19('<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x521ab7['outerHTML']+''),_0x423513['addEventListener']('mouseenter',()=>{_0x423513['classList']['add']('ck-user__marker_hovered');}),_0x423513['addEventListener']('mouseleave',()=>{_0x423513['classList']['remove']('ck-user__marker_hovered');}),_0x423513;},_0x5806af['isSimilar']=function(_0x189c08){return!(!this['getCustomProperty']('userPositionMarker')||!_0x189c08['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x189c08['getAttribute']('data-session-id'));},_0x5806af;}(_0x112b77,_0x5c31e9,_0x4cfc45);}(_0x141b89,_0x3072f9,_0x189854,_0x15043a)}),_0x15043a['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x29e7e8=>function(_0x315cad,_0x3ec869){const _0x601e61=_0x315cad['markerName']['split'](':')[0x2];if(_0x601e61===_0x3ec869['mySessionId'])return null;const _0x97609d=_0x3ec869['getUserBySessionId'](_0x601e61);return _0x97609d?{'id':_0x601e61,'classes':['ck-user__selection',_0x97609d['color']['getSelectionClass']()],'attributes':{'style':tt(_0x97609d),'data-session-id':_0x601e61},'priority':0x7d0+_0x97609d['orderNumber']}:{'id':_0x601e61,'classes':[]};}(_0x29e7e8,_0x189854)}),function(_0x59b624){const _0x5104bb=_0x59b624['model'],_0x347577=new Map(),_0x2bfbc9=_0x59b624['plugins']['get'](Q);_0x5104bb['markers']['on']('update:user:range',(_0x2272a6,_0x1c733e,_0x42577a,_0x29985e)=>{if(!_0x29985e&&_0x347577['get'](_0x1c733e['name']))return _0x347577['get'](_0x1c733e['name'])['detach'](),void _0x347577['delete'](_0x1c733e['name']);const _0x4c1f0b=_0x1c733e['name']['split'](':')[0x2];if(_0x4c1f0b===_0x2bfbc9['mySessionId'])return;const _0x3f7451='user:position:'+_0x4c1f0b;_0x5104bb['markers']['has'](_0x3f7451)&&_0x59b624['editing']['reconvertMarker'](_0x3f7451),_0x1c733e['on']('change:range',(_0x4047a8,_0x4c4bbb,_0x3328ca)=>{if('$graveyard'!=_0x4c4bbb['root']['rootName']&&'$graveyard'==_0x1c733e['getRange']()['root']['rootName']&&!_0x347577['has'](_0x1c733e['name'])){const _0x14b4a7=_0x5104bb['schema']['getNearestSelectionRange'](_0x3328ca['deletionPosition']);if(_0x14b4a7){const _0x465132=_0x135767['fromRange'](_0x14b4a7);_0x347577['set'](_0x1c733e['name'],_0x465132),_0x465132['on']('change:range',(_0x46c614,_0xb654eb,_0x54bcc0)=>{if('$graveyard'==_0x465132['root']['rootName']){const _0x583794=_0x5104bb['schema']['getNearestSelectionRange'](_0x54bcc0['deletionPosition']);_0x583794?(_0x465132['start']=_0x583794['start'],_0x465132['end']=_0x583794['end']):(_0x347577['delete'](_0x1c733e['name']),_0x465132['detach']());}});}}});}),_0x5104bb['document']['on']('change',()=>{_0x347577['size']>0x0&&_0x5104bb['enqueueChange']({'isUndoable':!0x1},_0x1c6f51=>{for(const [_0xfc1eca,_0x5df19c]of _0x347577)'$graveyard'==_0x5104bb['markers']['get'](_0xfc1eca)['getRange']()['root']['rootName']&&(Z(_0xfc1eca['split'](':')[0x2],_0x5df19c['toRange'](),_0x5104bb,_0x1c6f51),_0x5df19c['detach']());_0x347577['clear']();});});}(_0x15043a),this['_domEmitter']['listenTo'](_0x5e4f24['document'],'keydown',(_0x3b2398,{key:_0x36c0f2})=>{'Escape'===_0x36c0f2&&function(_0x2044d8){_0x2044d8['editing']['view']['change'](_0x6ed479=>{for(const _0x1326f6 of _0x2044d8['model']['markers']){if(!_0x1326f6['name']['startsWith']('user:position'))continue;const _0x36de22=_0x2044d8['editing']['mapper']['markerNameToElements'](_0x1326f6['name']);if(_0x36de22){for(const _0x203b84 of _0x36de22)_0x6ed479['removeClass']('ck-user__marker_hovered',_0x203b84);}}});}(_0x15043a);},{'useCapture':!0x0});}afterInit(){const _0x4e8d09=this['editor'],_0xb4d96d=_0x4e8d09['commands']['get']('undo');_0xb4d96d&&_0x4e8d09['model']['on']('applyOperation',(_0x3b68c8,_0x4058bf)=>{const _0x3cf8db=_0x4058bf[0x0];if(!_0x3cf8db['isDocumentOperation'])return;if('marker'!=_0x3cf8db['type']||!_0x3cf8db['name']['startsWith']('user:'))return;const _0x2b950d=_0x3cf8db['batch'];_0xb4d96d['_createdBatches']['has'](_0x2b950d)&&(_0x3cf8db['newRange']=_0x3cf8db['oldRange']?_0x4e8d09['model']['createRange'](_0x3cf8db['oldRange']['start'],_0x3cf8db['oldRange']['end']):null);},{'priority':'highest'});}destroy(){return this['_domEmitter']['stopListening'](),super['destroy']();}createUserMarkerOperations(){const _0x570d6c=this['editor'],_0x4c1b7a=_0x570d6c['model']['document'],_0x54d448=_0x570d6c['plugins']['get'](Q);_0x570d6c['model']['enqueueChange']({'isUndoable':!0x1},_0x49379d=>{const _0x37b6db='user:range:'+_0x54d448['mySessionId'],_0x429d64='user:position:'+_0x54d448['mySessionId'],_0x5be489=_0x570d6c['model']['markers']['has'](_0x37b6db);_0x570d6c['editing']['view']['hasDomSelection']?Z(_0x54d448['mySessionId'],_0x4c1b7a['selection']['getFirstRange'](),_0x570d6c['model'],_0x49379d):_0x5be489&&(_0x49379d['removeMarker'](_0x37b6db),_0x49379d['removeMarker'](_0x429d64));});}};function Z(_0x455c43,_0x2d32af,_0x49d040,_0x2ef8f1){const _0x33b240='user:range:'+_0x455c43,_0x582227='user:position:'+_0x455c43,_0x293a22=_0x2d32af['getContainedElement']();let _0xd15db7=_0x2d32af['start'];if(_0x293a22&&_0x293a22['is']('element','tableCell')){const _0x30eaea=function(_0x4c3da9,_0x549064){for(const _0x157401 of _0x4c3da9['getPositions']())if(_0x549064['schema']['checkChild'](_0x157401,'$text'))return _0x157401;}(_0x2d32af,_0x49d040);_0x30eaea&&(_0xd15db7=_0x30eaea,_0x2d32af=_0x2ef8f1['createRange'](_0xd15db7));}const _0x459aba=_0x2ef8f1['createRange'](_0xd15db7);_0x49d040['markers']['has'](_0x33b240)?(_0x2ef8f1['updateMarker'](_0x33b240,{'range':_0x2d32af}),_0x2ef8f1['updateMarker'](_0x582227,{'range':_0x459aba})):(_0x2ef8f1['addMarker'](_0x33b240,{'range':_0x2d32af,'usingOperation':!0x0}),_0x2ef8f1['addMarker'](_0x582227,{'range':_0x459aba,'usingOperation':!0x0}));}function tt(_0x629744){return'--ck-user-color:'+_0x629744['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x629744['color']['getColorAlphaVariable']()+';';}function et(_0x5b0cdd,_0x5da44a,_0x2976f5){const _0x2efc16=_0x5b0cdd['t'],t=_0x5b0cdd['t'];switch(_0x5da44a){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 _0x2efc16({'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'},_0x2976f5);default:return'';}}let st=0x1;var it=class RealTimeCollaborationClient extends _0x15a09f{static CollaborativeEditingService=/* #__PURE__ -- @preserve */
|
|
25
|
-
((()=>_0x5143d3)());_offset;['sessionId'];serverHistory;['_channelId'];['_service'];_document;['_compressor'];_bufferedOperations;_knownOperations;_knownRootNames;_pendingAction;_hasSelectionChanged;_sendBufferedOperationsDelayId;['_baseBufferDelay'];_currentBufferDelay;_lastSyncedOperationId;_disconnectionOperations;_operationIdentifier;static get requires(){return[J,Q,X,_0x5ddea2,_0x3f8d3d,_0x530464];}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 _0x3ee44b=this['serverHistory']['getOperations']();for(let _0x368642=_0x3ee44b['length']-0x1;_0x368642>=0x0;_0x368642--){const _0x1ba332=_0x3ee44b[_0x368642];if(!this['_disconnectionOperations']['has'](_0x1ba332))return _0x1ba332['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x1c870a){if(super(_0x1c870a),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x3bea19(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x285801('collaboration-missing-channelid',this);const _0x2b077e=_0x1c870a['config']['get']('cloudServices.bundleVersion')||_0x39faf5;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x2b077e,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x58afcf(),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 rt(this['_disconnectionOperations']);}init(){const _0x467cb2=this['editor'],_0x46d723=_0x467cb2['plugins']['get'](_0x3f8d3d),_0x4a436e=_0x467cb2['plugins']['get'](J);this['listenTo'](_0x46d723,'getOperationAuthor',(_0x26a2c5,_0x51a1b7)=>{const _0x25144a=_0x51a1b7[0x0];_0x25144a['_authorId']&&(_0x26a2c5['return']=_0x46d723['getUser'](_0x25144a['_authorId']),_0x26a2c5['stop']()),null===_0x25144a['_authorId']&&(_0x26a2c5['return']=null,_0x26a2c5['stop']());},{'priority':'high'}),this['listenTo'](_0x467cb2['model']['document']['selection'],'change:range',(_0x49584c,_0x3d37d6)=>{_0x3d37d6['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x467cb2['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x467cb2['model']['on']('applyOperation',(_0x5f295f,_0x5510b0)=>{const _0x18470f=_0x5510b0[0x0];_0x18470f['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x18470f),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['set']('_isChannelFlushed',!0x1),this['bind']('_isEditingAllowed')['to'](_0x4a436e,'state',this,'_hasSynchronizationProblem',this,'_isChannelFlushed',(_0x5177ef,_0x4118a5,_0x19519d)=>'connected'===_0x5177ef&&!_0x4118a5&&!_0x19519d),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x467cb2['disableReadOnlyMode']('rtc-offline'):_0x467cb2['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x467cb2['disableReadOnlyMode']('rtc-offline'):_0x467cb2['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async reconnect(){const _0x57b2f4=this['editor']['plugins']['get'](Q),_0x273846=this['editor']['plugins']['get'](J);try{this['_isPendingUpdate']=!0x0,_0x57b2f4['unregister'](this['_channelId']);const _0xc3bf3f=await this['_service']['reconnect'](_0x273846['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0xc3bf3f)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x543b16=await this['_service']['getConnectedSessions']();_0x57b2f4['register'](this['_channelId'],_0x543b16),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x4f45ce){if(function(_0x523e19){return'404'===_0x523e19['code'];}(_0x4f45ce)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x4b1062){return'409'===_0x4b1062['code'];}(_0x4f45ce)){const _0x634a44=et(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'](_0x634a44);}else{if(!(_0x4f45ce instanceof nt))throw _0x4f45ce;this['_handleReconnectionError']();}}}}destroy(){const _0x5393c3=this['editor']['plugins']['get'](J),_0x2e3b36=this['editor']['plugins']['get'](Q);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x2e3b36['channelSessions']['has'](this['_channelId'])&&_0x2e3b36['unregister'](this['_channelId']),_0x5393c3['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async _handleReconnectionResponse(_0x299c9f){if(this['sessionId']!==_0x299c9f['sessionId']&&this['_lastSyncedOperationId']!==_0x299c9f['lastOperationId'])throw new nt();return this['sessionId']=_0x299c9f['sessionId'],this['_handleServerResponse']([],{..._0x299c9f,'wereChangesApplied':!0x1,'data':_0x299c9f['data']},'reconnect');}async _connectService(_0x35ce71,_0x160bc5=!0x1){const {connection:_0x5626f4}=this['editor']['plugins']['get'](J);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x5626f4,this['_channelId'])['then'](_0x5004e9=>this['_initSessionsHandling'](_0x5004e9))['catch'](_0x3750e4=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x3750e4);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x5d866a,_0x2b58a5)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x2b58a5);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_handleChannelDisconnected']();});const _0x506c09=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x35ce71);this['_isPendingUpdate']=!0x0;const _0x36bb7f=await this['_service']['connect'](_0x5626f4,this['_compressOperations'](_0x35ce71),_0x506c09);if(this['sessionId']=_0x36bb7f['sessionId'],_0x160bc5){if(!_0x36bb7f['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x36bb7f['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x35ce71,_0x36bb7f,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x36bb7f,_0x35ce71);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}_handleSendingSelectionMarkers(){const _0x76a0f3=this['editor']['plugins']['get'](Q),_0xc6695e=this['editor']['plugins']['get'](X),_0x1cc54d=_0x76a0f3['channelSessions']['get'](this['_channelId']);_0x1cc54d&&_0x1cc54d['length']>0x1?_0xc6695e['createUserMarkerOperations']():this['listenTo'](_0x76a0f3,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x76a0f3['channelSessions']['get'](this['_channelId'])['length']&&_0xc6695e['createUserMarkerOperations']();});}async _handleReceivedOperations(_0x225a6f,_0x379ab7,_0x139e24,_0x7787dd){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x379ab7){const _0x13da7c=this['_decompressOperations'](_0x139e24,_0x7787dd);await this['_fetchMissingUsers'](_0x13da7c),this['_handleExternalOperations'](_0x13da7c,_0x379ab7,_0x139e24['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async _connectAfterSessionHasBeenFlushed(){this['_disconnectService']();const {locale:_0x545afd}=this['editor'];let _0xdd58f;try{_0xdd58f=await this['_service']['getDocumentDetails']();}catch{const _0x40c7d6=et(_0x545afd,'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'](_0x40c7d6);}const _0x463496=_0xdd58f['currentDocumentSession']||_0xdd58f['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x463496['lastOperationId']){const _0x30610c=et(_0x545afd,'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'](_0x30610c);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}_handleChannelDisconnected(){const _0x31d8cc=this['editor']['plugins']['get'](J);if(this['_isConnected']=!0x1,!_0x31d8cc['connection']||'connected'!==_0x31d8cc['connection']['state'])return;this['_isChannelFlushed']=!0x0;const _0xd1c343=this['editor']['plugins']['get'](Q);_0xd1c343['channelSessions']['has'](this['_channelId'])&&_0xd1c343['unregister'](this['_channelId']),_0x31d8cc['removeFromReconnectionStack'](this),this['_disconnectService']();}_disconnectService(){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['stopListening'](this['_service']);}_initSessionsHandling(_0x557291){const _0x14945e=this['editor']['plugins']['get'](Q);this['listenTo'](_0x14945e,'sessionAdd:'+this['_channelId'],(_0x4230c4,{session:_0x4b946d})=>{if(_0x4b946d['id']===_0x14945e['mySessionId']){_0x4230c4['off']();const _0x237113=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0xa5892=_0x4b946d['permissions'];_0x237113&&_0x237113['isEnabled']&&(_0xa5892=_0xa5892['filter'](_0x770b47=>'document:write'!==_0x770b47)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0xa5892,this['_channelId']);}}),_0x14945e['register'](this['_channelId'],_0x557291);}_initThrowingOnDataSet(){const _0x26ebdb=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x37ae62)=>{if(!_0x37ae62[_0x37ae62['length']-0x1]['suppressErrorInCollaboration'])throw new _0x285801('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x26ebdb['apply'](this['editor']['data'],_0x37ae62);};}_setUpDataInit(){this['editor']['data']['on']('init',(_0x50041a,[_0x52ad1b])=>{if(this['_document']['version'])throw new _0x285801('realtimecollaborationclient-init-document-already-initialized',this);_0x50041a['stop'](),this['_setPendingAction']();const _0x51fecc=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x48d53a])=>!_0x48d53a['lazyLoad'])['map'](([_0x329bef,_0x1e5a15])=>[_0x329bef,_0x1e5a15['modelAttributes']||{}])),_0x3ceee4=this['_getOperationsFromInitData'](_0x52ad1b,_0x51fecc);0x0==_0x3ceee4['length']&&_0x3ceee4['push'](new _0x147a36(0x0)),_0x50041a['return']=this['_connectService'](_0x3ceee4)['then'](()=>{this['editor']['plugins']['get'](J)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x5ed73c=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x5ed73c))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x924802,[_0x2846f5,_0x5d84ad])=>{_0x924802['stop']();const _0x251387=this['editor']['model']['document']['getRoot'](_0x2846f5);if(!this['_knownRootNames']['has'](_0x2846f5)){const _0x5bdd9b=_0x5d84ad&&_0x5d84ad['data']?_0x5d84ad['data']:'',_0x2e2cd5=_0x5d84ad&&_0x5d84ad['attributes']?_0x5d84ad['attributes']:{};await this['_loadRoot'](_0x2846f5,_0x5bdd9b,_0x2e2cd5);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x251387['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x251387);});},{'priority':'high'});}async _fetchMissingUsers(_0x42ba38){const _0x328477=this['editor']['plugins']['get'](_0x3f8d3d),{connection:_0xf37a93}=this['editor']['plugins']['get'](J),_0x4cccf7=new Set();for(const _0xea4e31 of _0x42ba38){const _0x2d9505=_0xea4e31['_authorId'];_0x2d9505&&!_0x328477['getUser'](_0x2d9505)&&_0x4cccf7['add'](_0x2d9505);}if(0x0===_0x4cccf7['size'])return;const _0xfa43c8=await _0x3df04e['getMany'](_0xf37a93,Array['from'](_0x4cccf7));for(const _0x5afe2a of _0xfa43c8)_0x328477['getUser'](_0x5afe2a['id'])||_0x328477['addUser'](_0x5afe2a);}_getOperationsFromInitData(_0x1f2574,_0x2db806={}){const _0x554275=this['editor']['model'],_0x3b203=[];let _0x3911cb=0x0;const _0x15cd64='string'==typeof _0x1f2574?{'main':_0x1f2574}:_0x1f2574;for(const _0x3c564c of Object['keys'](_0x15cd64)){if(!this['_document']['roots']['has'](_0x3c564c))throw new _0x285801('realtimecollaborationclient-init-non-existent-root',this);const _0x566b20=this['_document']['getRoot'](_0x3c564c),_0x66381a=this['editor']['data']['parse'](_0x15cd64[_0x3c564c],_0x566b20),_0x30da05=new _0x3f58af(_0x554275['createPositionAt'](_0x566b20,0x0),_0x66381a,_0x3911cb++);_0x3b203['push'](_0x30da05);for(const [_0x37ca62,_0x3d079c]of _0x66381a['markers']){const _0x224904=_0x554275['createRange'](_0x554275['createPositionFromPath'](_0x566b20,_0x3d079c['start']['path']['slice']()),_0x554275['createPositionFromPath'](_0x566b20,_0x3d079c['end']['path']['slice']())),_0x39d9cc=new _0x379f17(_0x37ca62,null,_0x224904,_0x554275['markers'],!0x0,_0x3911cb++);_0x3b203['push'](_0x39d9cc);}}if(_0x2db806)for(const [_0x35187a,_0x3a3cc3]of Object['entries'](_0x2db806)){const _0x217167=_0x554275['document']['getRoot'](_0x35187a);if(!_0x217167)throw new _0x285801('multi-root-editor-root-attributes-no-root',null);for(const [_0x1b693e,_0x37f497]of Object['entries'](_0x3a3cc3))if(null!==_0x37f497){const _0x39f2c2=new _0x3b940f(_0x217167,_0x1b693e,null,_0x37f497,_0x3911cb++);_0x3b203['push'](_0x39f2c2);}}return _0x3b203;}async _loadRoot(_0x2cb34c,_0x295337,_0x395ada){this['_getOperationsFromInitData']({[_0x2cb34c]:_0x295337},{[_0x2cb34c]:_0x395ada})['forEach']((_0x1a403f,_0x2c6b97)=>{_0x1a403f['baseVersion']=this['_document']['version']+_0x2c6b97,_0x1a403f['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x1a403f);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async _handleInitialConnectionData(_0x2007b1,_0x3f5f64){let _0x23b6d8;this['_offset']=_0x2007b1['offset'];const _0xde241d=_0x2007b1['wereChangesApplied']&&!_0x2007b1['initData'],_0x15a7a2=_0xde241d?0x0:_0x2007b1['data']['baseVersion'];if(_0x3f5f64['forEach'](_0x409246=>{_0x409246['_isInit']=!0x0,_0x409246['createdAt']=_0x2007b1['sessionCreatedAt'],_0x409246['_authorId']=null;}),_0xde241d)_0x23b6d8=_0x3f5f64,this['_applyOperationsSet'](_0x23b6d8,_0xde241d);else{if(_0x2007b1['initData']){const _0x1ff93e=this['_getOperationsFromInitData'](_0x2007b1['initData']);this['_document']['history']['version']=-_0x1ff93e['length'],_0x1ff93e['forEach'](_0xf459f7=>{_0xf459f7['baseVersion']-=_0x1ff93e['length'],_0xf459f7['createdAt']=_0x2007b1['sessionCreatedAt'],_0xf459f7['_isInit']=!0x0,_0xf459f7['_authorId']=null;}),this['_applyOperationsSet'](_0x1ff93e,!0x0),this['serverHistory']['version']=-_0x1ff93e['length']+this['_offset'],this['_updateServerHistory'](_0x1ff93e);}this['_document']['history']['version']=_0x15a7a2,_0x23b6d8=this['_decompressOperations'](_0x2007b1['data'],_0x2007b1['metadata']),await this['_fetchMissingUsers'](_0x23b6d8),this['_applyOperationsSet'](_0x23b6d8,_0xde241d);}_0x2007b1['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x23b6d8,_0x2007b1['lastOperationId']),this['_lastSyncedOperationId']=_0x2007b1['lastOperationId']),this['serverHistory']['version']=_0x15a7a2+this['_offset'],this['_updateServerHistory'](_0x23b6d8),_0x3f5f64['filter'](_0x588d6d=>{const _0x2a5480=this['_getAffectedRoot'](_0x588d6d);return _0x2a5480&&!this['_knownRootNames']['has'](_0x2a5480);})['forEach']((_0x3c9bb3,_0x5906f3)=>{_0x3c9bb3['baseVersion']=this['_document']['version']+_0x5906f3,this['_saveOperationInBuffer'](_0x3c9bb3);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x1cfd06,_0x4c57d6){const _0x56e65c=_0x4c57d6&&_0x4c57d6['message'];if(_0x56e65c&&_0x56e65c['startsWith']('realtimecollaborationclient'))throw _0x4c57d6;const _0x16e3da=this['editor']['plugins']['get'](J);throw this['_isPendingUpdate']=!0x0,_0x16e3da['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x285801(_0x1cfd06,this['editor'],_0x56e65c?{'originalError':_0x56e65c}:void 0x0);}_saveOperationInBuffer(_0x4c4810){this['_knownOperations']['has'](_0x4c4810)||(this['_knownOperations']['add'](_0x4c4810),this['_bufferedOperations']['push'](_0x4c4810),this['_pendingAction']||'marker'==_0x4c4810['type']&&!_0x4c4810['affectsData']||this['_setPendingAction']());}_sendBufferedOperationsDelayed(_0x558c59=!0x1){!_0x558c59&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0x45762f=>{_0x45762f&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0x2c9615=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x2ffe12){return _0x2ffe12['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x2ffe12['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x2ffe12['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0x2c9615)||this['_crash'](_0x2c9615['message'],_0x2c9615);});},this['_currentBufferDelay']));}_waitUntilSynced(){return new Promise(_0x26915e=>{this['on']('change:_isPendingUpdate',()=>{_0x26915e();});});}async _sendBufferedOperations(){const _0x4234c7=this['editor']['plugins']['get'](X);if(this['_shouldSendSelectionUpdate']()&&(_0x4234c7['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x3fcc28=[...this['_bufferedOperations']];for(const _0x53872a of _0x3fcc28)_0x53872a['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x53872a);const _0x130e1f=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x3fcc28),_0x68d941=st++,_0x35b88e=this['_compressOperations'](_0x3fcc28),_0x26d42f=await this['_service']['sendOperations'](_0x35b88e,_0x35b88e['baseVersion'],_0x130e1f);try{return await this['_handleServerResponse'](_0x3fcc28,_0x26d42f,_0x68d941);}catch(_0x256e6f){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0x256e6f);}}async['_handleServerResponse'](_0x39af75,_0x17a5ee,_0x25d618){if('error'in _0x17a5ee)throw _0x17a5ee['error'];let _0xe8797e;if(_0x17a5ee['wereChangesApplied']){_0x17a5ee['lastOperationId']&&(this['_lastSyncedOperationId']=_0x17a5ee['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x33b434=>!_0x39af75['includes'](_0x33b434));for(const _0x3fd815 of _0x39af75)_0x3fd815['createdAt']='lastOperationAcceptedAt'in _0x17a5ee&&_0x17a5ee['lastOperationAcceptedAt']||void 0x0;ot(_0x39af75,_0x17a5ee['version']-_0x39af75['length']),this['_updateServerHistory'](_0x39af75);const _0x38d1ec=_0x39af75['filter'](_0x379c51=>{if(!_0x379c51['_isInit'])return!0x1;const _0x7d0bb7=this['_getAffectedRoot'](_0x379c51);return _0x7d0bb7&&!this['_knownRootNames']['has'](_0x7d0bb7);});ot(_0x38d1ec,this['_document']['version']),this['_applyOperationsSet'](_0x38d1ec),_0xe8797e=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x3b8268=this['_decompressOperations'](_0x17a5ee['data'],_0x17a5ee['metadata'])['filter'](_0x3846d7=>_0x3846d7['baseVersion']>=this['_lastServerVersion']);_0x3b8268['forEach'](_0x216b7b=>this['_addKnownRoot'](_0x216b7b)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x21e916=>!_0x21e916['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x21e916))),this['_bufferedOperations']['length']&&ot(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x3b8268),_0xe8797e=this['_handleExternalOperations'](_0x3b8268,_0x17a5ee['version'],_0x17a5ee['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0xe8797e?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}_handleExternalOperations(_0x3bc490,_0x2a688d,_0x49e0ba){try{const _0x144c92={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x527648,operationsB:_0x33b124,originalOperations:_0x24fcc9}=_0xf848a(_0x3bc490,this['_bufferedOperations'],_0x144c92);ot(_0x527648,this['_document']['version']),ot(_0x33b124,_0x2a688d);for(const _0x865c8f of _0x527648){const _0x4e3254=_0x24fcc9['get'](_0x865c8f);_0x4e3254?(_0x865c8f['_authorId']=_0x4e3254['_authorId'],'noop'!==_0x865c8f['type']&&(_0x865c8f['_aiSource']=_0x4e3254['_aiSource'])):_0x865c8f['_authorId']=null;}for(const _0x33aec4 of _0x33b124)'noop'!==_0x33aec4['type']&&(_0x33aec4['_aiSource']=_0x24fcc9['get'](_0x33aec4)?.['_aiSource']);_0x49e0ba&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x3bc490,_0x49e0ba),this['_lastSyncedOperationId']=_0x49e0ba),this['_bufferedOperations']=[..._0x33b124],this['_applyOperationsSet'](_0x527648),this['_updateServerHistory'](_0x3bc490);}catch(_0x31f864){return console['error'](_0x31f864),!0x1;}return!0x0;}_applyOperationsSet(_0x14ddb9,_0x1e88fb=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x347cb6=>{for(const _0x57b75e of _0x14ddb9)this['_knownOperations']['add'](_0x57b75e),this['_addKnownRoot'](_0x57b75e),_0x347cb6['batch']['addOperation'](_0x57b75e),this['editor']['model']['applyOperation'](_0x57b75e);});}_addKnownRoot(_0x434f1d){const _0x297ea7=this['_getAffectedRoot'](_0x434f1d);_0x297ea7&&this['_knownRootNames']['add'](_0x297ea7);}_getAffectedRoot(_0x1971b2){let _0x1fd2e2,_0x124e3c;switch(_0x1971b2['type']){case'insert':_0x1fd2e2=_0x1971b2['position']['root'];break;case'marker':if(_0x124e3c=_0x1971b2['newRange'],!_0x124e3c)return null;_0x1fd2e2=_0x124e3c['root'];break;case'addRootAttribute':_0x1fd2e2=_0x1971b2['root'];break;case'addRoot':_0x1fd2e2=_0x1971b2['affectedSelectable'];break;case'move':_0x1fd2e2=_0x1971b2['targetPosition']['root'];break;default:return null;}return _0x1fd2e2['rootName'];}_updateServerHistory(_0x4961f7){_0x4961f7['forEach'](_0x4523a6=>{const _0x474563=_0x4523a6['clone']();_0x474563['_authorId']=_0x4523a6['_authorId'],_0x474563['_isInit']=!!_0x4523a6['_isInit'],_0x474563['_aiSource']=_0x4523a6['_aiSource'],_0x474563['createdAt']=_0x4523a6['createdAt'],_0x474563['baseVersion']+=this['_offset'],_0x4523a6['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x474563),this['serverHistory']['addOperation'](_0x474563);});}_handleReconnectionError(_0x51c396){const _0x4e219e=this['editor']['plugins']['get']('Notification'),_0x191b27=this['editor']['locale'];_0x51c396||(_0x51c396=et(_0x191b27,'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.')),_0x4e219e['showWarning'](_0x51c396,{'title':et(_0x191b27,'Synchronization\x20issue'),'namespace':'real-time-collaboration'}),this['_hasSynchronizationProblem']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_bufferedOperations']=[],this['editor']['plugins']['get'](J)['disconnect']();}_setPendingAction(){this['_pendingAction']||(this['_pendingAction']=this['editor']['plugins']['get'](_0x5ddea2)['add'](et(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}_clearPendingAction(){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x5ddea2)['remove'](this['_pendingAction']),this['_pendingAction']=null);}_compressOperations(_0x83e734){const _0x32a69b=_0x83e734['map'](_0x5b6b42=>_0x5b6b42['toJSON']());return this['_compressor']['compress'](_0x32a69b);}_decompressOperations(_0x4fd275,_0x5ac950){return this['_compressor']['decompress'](_0x4fd275)['map']((_0x9b32ac,_0x31218b)=>{const _0x2c2330='init'==_0x5ac950[_0x31218b]['type'];if('InsertOperation'==_0x9b32ac['__className']){const _0x1367d9=_0x9b32ac['position']['root'];!this['_document']['getRoot'](_0x1367d9)&&(this['_document']['createRoot']('$unknown',_0x1367d9)['_isAttached']=!0x1);}else{if('RootOperation'==_0x9b32ac['__className']){const _0x365e62=this['_document']['getRoot'](_0x9b32ac['rootName']);_0x365e62&&'$unknown'==_0x365e62['name']&&_0x9b32ac['elementName']!=_0x365e62['name']&&(_0x365e62['name']=_0x9b32ac['elementName']);}}const _0x488acf=_0x284e3a['fromJSON'](_0x9b32ac,this['_document']);return _0x488acf['wasUndone']=_0x9b32ac['wasUndone'],_0x488acf['_isInit']=_0x2c2330,_0x488acf['_authorId']=_0x2c2330?null:_0x5ac950[_0x31218b]['userId'],_0x488acf['_isDisconnection']='cs:removeUser'===_0x5ac950[_0x31218b]['type'],_0x488acf['_aiSource']=_0x9b32ac['_aiSource']||void 0x0,_0x488acf['createdAt']=_0x5ac950[_0x31218b]['createdAt'],_0x488acf;});}_refreshUserSelectionMarkers(){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}_shouldSendSelectionUpdate(){const _0x193f82=this['editor']['plugins']['get'](Q)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x193f82&&_0x193f82['length']>0x1&&this['_hasSelectionChanged'];}_shouldSendUpdate(){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}},nt=class extends Error{};function ot(_0x3a1576,_0x517166){for(const _0x14af23 of _0x3a1576)_0x14af23['baseVersion']=_0x517166++;}var rt=class{_ignoredOperations;_operationToId;constructor(_0x2f2962){this['_ignoredOperations']=_0x2f2962,this['_operationToId']=new WeakMap();}getIdOfTheLastOperation(_0x31ebf9){let _0x59941a=_0x31ebf9['length'];for(;_0x59941a--;){const _0x61effe=_0x31ebf9[_0x59941a];if(!this['_ignoredOperations']['has'](_0x61effe)){if(!this['_operationToId']['has'](_0x61effe)){const _0x6989dc=_0x41c486()['slice'](0x1,0x12);this['_operationToId']['set'](_0x61effe,_0x6989dc);}return this['_operationToId']['get'](_0x61effe);}}}setIdForTheLastOperation(_0x4c2d31,_0x2509d2){if(!_0x2509d2)return;let _0x4d130d=_0x4c2d31['length'];for(;_0x4d130d--;){const _0x354abf=_0x4c2d31[_0x4d130d];this['_ignoredOperations']['has'](_0x354abf)||this['_operationToId']['set'](_0x354abf,_0x2509d2);}}},ct=class extends _0x15a09f{static get requires(){return[it];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}},at=class CloudServicesCommentsAdapter extends _0x438626{static CommentsService=/* #__PURE__ -- @preserve */
|
|
26
|
-
((()=>_0x321ef2)());['_services'];static get requires(){return[J,_0x2739e7,Q,_0x3f8d3d];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x18c7c7){super(_0x18c7c7),this['_services']=new Map();}async init(){const _0x1f9af6=this['context'],_0x1c2f51=_0x1f9af6['plugins']['get'](_0x2739e7);if(_0x1f9af6['plugins']['get'](J)['addToReconnectionStack'](this),_0x1c2f51['adapter']={'addCommentThread':async({channelId:_0x21a46f,threadId:_0x375829,comments:_0x4e7aca,resolvedAt:_0x584b62,resolvedBy:_0x543789,context:_0x3934b1,attributes:_0x5d3677})=>{const _0x1005c5=await this['_getService'](_0x21a46f)['addCommentThread']({'commentThreadId':_0x375829,'comments':_0x4e7aca['map'](_0x17cacd=>function(_0xeac3d8,_0x41c590,_0x3a1f5d){return{'commentThreadId':_0x3a1f5d,'commentId':_0xeac3d8['commentId'],'userId':_0xeac3d8['authorId'],'content':_0xeac3d8['content'],'documentId':_0x41c590,'createdAt':_0xeac3d8['createdAt'],'attributes':_0xeac3d8['attributes']||{}};}(_0x17cacd,_0x21a46f,_0x375829)),'resolvedAt':_0x584b62,'resolvedBy':_0x543789,'context':_0x3934b1,'attributes':_0x5d3677})['catch'](lt);return{'threadId':_0x1005c5['commentThreadId'],'comments':_0x1005c5['comments']};},'getCommentThread':async({channelId:_0x46b343,threadId:_0xf68a5f})=>{const _0x28d17d=await this['_getService'](_0x46b343)['getCommentThread'](_0xf68a5f)['catch'](ht)['catch'](lt);return _0x28d17d?_0x28d17d['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x28d17d]),{'threadId':_0x28d17d['commentThreadId'],'comments':_0x28d17d['comments']['map'](dt),'context':_0x28d17d['context'],'resolvedAt':_0x28d17d['resolvedAt'],'resolvedBy':_0x28d17d['resolvedBy'],'attributes':_0x28d17d['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x4d58e9,threadId:_0x3383f3,context:_0x24a4da,unlinkedAt:_0x209b07,attributes:_0x300085})=>this['_getService'](_0x4d58e9)['updateCommentThread']({'commentThreadId':_0x3383f3,'context':_0x24a4da,'attributes':_0x300085,'unlinkedAt':_0x209b07})['catch'](ht)['catch'](lt),'resolveCommentThread':async({channelId:_0x15852c,threadId:_0x15c122})=>{const _0x2bcbe1=await this['_getService'](_0x15852c)['resolveCommentThread'](_0x15c122)['catch'](ht)['catch'](lt);return{'threadId':_0x2bcbe1['commentThreadId'],'resolvedAt':_0x2bcbe1['resolvedAt'],'resolvedBy':_0x2bcbe1['resolvedBy']};},'reopenCommentThread':async({channelId:_0x56459f,threadId:_0x2aac0d})=>this['_getService'](_0x56459f)['reopenCommentThread'](_0x2aac0d)['catch'](ht)['catch'](lt),'removeCommentThread':({channelId:_0x1a492c,threadId:_0x9857a1})=>this['_getService'](_0x1a492c)['removeCommentThread'](_0x9857a1)['catch'](ht)['catch'](lt),'addComment':({channelId:_0x27b7c4,threadId:_0x452d8f,commentId:_0xfeb3f4,content:_0x5025a1,attributes:_0x32056b})=>this['_getService'](_0x27b7c4)['addComment'](_0x452d8f,_0xfeb3f4,_0x5025a1,_0x32056b)['catch'](lt),'updateComment':({channelId:_0x48c649,threadId:_0x1525b9,commentId:_0x584497,content:_0x54734d,attributes:_0x31cbd3})=>this['_getService'](_0x48c649)['updateComment'](_0x1525b9,_0x584497,_0x54734d,_0x31cbd3)['catch'](ht)['catch'](lt),'removeComment':({channelId:_0x27b666,threadId:_0x473fea,commentId:_0xb58e9b})=>this['_getService'](_0x27b666)['removeComment'](_0x473fea,_0xb58e9b)['catch'](ht)['catch'](lt)},_0x1f9af6 instanceof _0x3acbaa){const _0x1d7eeb=_0x1f9af6['config']['get']('collaboration.channelId'),_0x3d94c8=_0x1f9af6['plugins']['get'](Q);await this['_setUpService'](_0x1d7eeb);const _0x3211aa=await this['_services']['get'](_0x1d7eeb)['getConnectedSessions']();this['listenTo'](_0x3d94c8,'sessionAdd:'+_0x1d7eeb,(_0x33de35,{session:_0x1811d2})=>{_0x1811d2['id']===_0x3d94c8['mySessionId']&&(_0x33de35['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x1811d2['permissions'],_0x1d7eeb));}),_0x3d94c8['register'](_0x1d7eeb,_0x3211aa);}}async _setUpService(_0x229efb){if(this['_services']['has'](_0x229efb))throw new _0x285801('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x229efb});const _0x1e53d9=this['context']['plugins']['get'](_0x2739e7),_0x558239=new CloudServicesCommentsAdapter['CommentsService'](_0x229efb);this['_services']['set'](_0x229efb,_0x558239),this['listenTo'](_0x558239,'commentThreadAdded',(_0x258354,_0x3b0aae)=>{const {commentThreadId:_0x3f12a0,documentId:_0x458c83,context:_0x2599fe,attributes:_0x532016,resolvedAt:_0x76444f,resolvedBy:_0x198748,comments:_0x5d7cab}=_0x3b0aae;_0x1e53d9['getCommentThread'](_0x3f12a0)||_0x1e53d9['addCommentThread']({'threadId':_0x3f12a0,'channelId':_0x458c83,'comments':_0x5d7cab?_0x5d7cab['map'](dt):[],'context':_0x2599fe,'attributes':_0x532016,'resolvedAt':_0x76444f,'resolvedBy':_0x198748,'isFromAdapter':!0x0});}),this['listenTo'](_0x558239,'commentThreadUpdated',(_0x154399,{commentThreadId:_0x409868,documentId:_0x32066f,context:_0x515e99,unlinkedAt:_0x3d7ed1,attributes:_0x3caae4})=>{_0x1e53d9['getCommentThread'](_0x409868)&&_0x1e53d9['updateCommentThread']({'threadId':_0x409868,'channelId':_0x32066f,'context':_0x515e99,'unlinkedAt':_0x3d7ed1,'attributes':_0x3caae4,'isFromAdapter':!0x0});}),this['listenTo'](_0x558239,'commentThreadResolved',(_0x361e1b,{commentThreadId:_0x2ca076,resolvedBy:_0x5e980a,resolvedAt:_0x5a03d9})=>{const _0x4edbae=_0x1e53d9['getCommentThread'](_0x2ca076);_0x4edbae&&_0x4edbae['resolve']({'resolvedBy':_0x5e980a,'resolvedAt':_0x5a03d9,'isFromAdapter':!0x0});}),this['listenTo'](_0x558239,'commentThreadReopened',(_0x25c66b,{commentThreadId:_0x337c48})=>{const _0x5910ef=_0x1e53d9['getCommentThread'](_0x337c48);_0x5910ef&&_0x5910ef['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x558239,'commentThreadRemoved',(_0x3249f5,{commentThreadId:_0x1e6680})=>{const _0xd9e01=_0x1e53d9['getCommentThread'](_0x1e6680);_0xd9e01&&_0xd9e01['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x558239,'commentAdded',(_0x28268a,_0x3d0019)=>{const _0x1d4e18=_0x3d0019['commentThreadId'],_0x3d52bf=_0x1e53d9['getCommentThread'](_0x1d4e18);_0x3d52bf&&_0x3d52bf['addComment']({...dt(_0x3d0019),'isFromAdapter':!0x0});}),this['listenTo'](_0x558239,'commentUpdated',(_0x53b7d1,{commentThreadId:_0x155bb0,commentId:_0x5b72a6,content:_0x25c8d2,attributes:_0x3ff805})=>{const _0x2ca846=_0x1e53d9['getCommentThread'](_0x155bb0);if(_0x2ca846){const _0x13e992=_0x2ca846['getComment'](_0x5b72a6);_0x13e992&&_0x13e992['update']({'content':_0x25c8d2,'attributes':_0x3ff805,'isFromAdapter':!0x0});}}),this['listenTo'](_0x558239,'commentRemoved',(_0x555a3c,{commentThreadId:_0x5b7671,commentId:_0x58c8f4})=>{const _0xde73bd=_0x1e53d9['getCommentThread'](_0x5b7671);if(_0xde73bd){const _0x558219=_0xde73bd['getComment'](_0x58c8f4);_0x558219&&_0x558219['remove']({'isFromAdapter':!0x0});}}),this['listenTo'](_0x558239,'disconnected',()=>{'connected'===this['context']['plugins']['get'](J)['connection']?.['state']&&(this['_services']['delete'](_0x229efb),this['stopListening'](_0x558239));}),await this['_connectService'](_0x229efb);}destroy(){if(this['context']instanceof _0x3acbaa){const _0x463473=this['context']['config']['get']('collaboration.channelId');this['_services']['has'](_0x463473)&&this['_terminateService'](_0x463473);}}_terminateService(_0x2a806e){if(!this['_services']['has'](_0x2a806e))throw new _0x285801('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x2a806e});this['_getService'](_0x2a806e)['disconnect'](),this['_services']['delete'](_0x2a806e);}async reconnect(){for(const _0x5b2390 of this['_services']['keys']())await this['_connectService'](_0x5b2390);if(this['context']instanceof _0x3acbaa){const _0x5b3b5d=this['context']['config']['get']('collaboration.channelId');if(this['_services']['has'](_0x5b3b5d)){const _0x55c2cf=this['context']['plugins']['get'](Q);_0x55c2cf['unregister'](_0x5b3b5d);const _0x14c9f2=await this['_services']['get'](_0x5b3b5d)['getConnectedSessions']();_0x55c2cf['register'](_0x5b3b5d,_0x14c9f2);}}}async _connectService(_0x16f184){const {connection:_0x58219b}=this['context']['plugins']['get'](J),_0x12e411=this['context']['plugins']['get'](_0x2739e7),_0x2b5b01=await this['_services']['get'](_0x16f184)['connect'](_0x58219b);await this['_fetchMissingUsersForThreads'](_0x2b5b01);const _0x1e1bbf=new Set(Array['from'](_0x12e411['getCommentThreads']({'channelId':_0x16f184}),_0xaba73c=>_0xaba73c['id']));for(const _0x3842df of _0x2b5b01)_0x3842df['deletedAt']||_0x1e1bbf['delete'](_0x3842df['commentThreadId']);for(const _0x37d96a of _0x1e1bbf)_0x12e411['getCommentThread'](_0x37d96a)['remove']({'isFromAdapter':!0x0});for(const _0x3db823 of _0x2b5b01){let _0x1e06c4=_0x12e411['getCommentThread'](_0x3db823['commentThreadId']);const {commentThreadId:_0x5bd864,context:_0x2b7386,attributes:_0x286d02,resolvedBy:_0x55b44d,resolvedAt:_0x1a8c9c,unlinkedAt:_0x21e943,deletedAt:_0x89b40e}=_0x3db823;if(_0x89b40e)continue;_0x1e06c4||(_0x1e06c4=_0x12e411['addCommentThread']({'channelId':_0x16f184,'threadId':_0x5bd864,'context':_0x2b7386,'attributes':_0x286d02||{},'resolvedBy':_0x55b44d,'resolvedAt':_0x1a8c9c,'unlinkedAt':_0x21e943,'isFromAdapter':!0x0}));const _0x1a2b91=new Set(Array['from'](_0x1e06c4['comments'],_0x25c4a8=>_0x25c4a8['id']));for(const _0x5ef533 of _0x3db823['comments'])_0x1a2b91['delete'](_0x5ef533['commentId']);for(const _0x465c74 of _0x1a2b91)_0x1e06c4['getComment'](_0x465c74)['remove']({'isFromAdapter':!0x0});for(const _0x1a5c38 of _0x3db823['comments']){const _0x2bb0db=_0x1e06c4['getComment'](_0x1a5c38['commentId']);_0x2bb0db?_0x2bb0db['content']!==_0x1a5c38['content']&&_0x2bb0db['update']({'content':_0x1a5c38['content'],'isFromAdapter':!0x0}):_0x1e06c4['addComment'](Object['assign'](dt(_0x1a5c38),{'isFromAdapter':!0x0}));}}}_getService(_0x1e8d6e){if(!this['_services']['has'](_0x1e8d6e))throw new _0x285801('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x1e8d6e});return this['_services']['get'](_0x1e8d6e);}async _fetchMissingUsersForThreads(_0x563fd8){const _0x14d53b=this['context']['plugins']['get'](_0x3f8d3d),{connection:_0x3d91a2}=this['context']['plugins']['get'](J),_0x257175=new Set();for(const {resolvedBy:_0x52d7c7,comments:_0x43ea49}of _0x563fd8){_0x52d7c7&&!_0x14d53b['getUser'](_0x52d7c7)&&_0x257175['add'](_0x52d7c7);for(const {userId:_0x591e64}of _0x43ea49)_0x14d53b['getUser'](_0x591e64)||_0x257175['add'](_0x591e64);}if(0x0===_0x257175['size'])return;const _0x525ec2=await _0x3df04e['getMany'](_0x3d91a2,Array['from'](_0x257175));for(const _0x2ab1a5 of _0x525ec2)_0x14d53b['getUser'](_0x2ab1a5['id'])||_0x14d53b['addUser'](_0x2ab1a5);}};async function ht(_0xc9859c){if('404'!==_0xc9859c['code'])throw _0xc9859c;}function lt(_0x2b29d0){if((_0x2d922d=_0x2b29d0)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x2d922d['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x2d922d['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x2d922d;throw _0x2b29d0;}function dt(_0x15f379){return{'threadId':_0x15f379['commentThreadId'],'commentId':_0x15f379['commentId'],'content':_0x15f379['content'],'createdAt':_0x15f379['createdAt'],'authorId':_0x15f379['userId'],'attributes':_0x15f379['attributes']||{}};}var ut=class CloudServicesTrackChangesAdapter extends _0x15a09f{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
|
|
27
|
-
((()=>
|
|
28
|
-
((()=>_0x2b9e5e)());_lastRequestId;['_revisionTracker'];_revisionHistoryService;_oldOffset;static get requires(){return[J,it,_0x1c9ff7,Q,_0x3f8d3d];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0xb08bd0){super(_0xb08bd0);const _0x3dce37=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x3dce37);}async init(){const _0x3dc9f0=this['editor']['plugins']['get'](it),_0x453db0=_0x3dc9f0['serverHistory'],_0x52336b=this['editor']['plugins']['get'](J);this['_revisionTracker']['setSource']({'history':_0x453db0,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x3dc9f0['sessionId']});const _0x1bf236=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x39faf5,_0x254039=await _0x56d4ea['isBundleUploaded'](_0x52336b['connection'],_0x1bf236);this['editor']['plugins']['get'](_0x1c9ff7)['adapter']={'getRevision':async({revisionId:_0x1b3d5c})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x1b3d5c)),'updateRevisions':async _0x17691f=>{await this['_waitForServiceReady']();const _0x14e061=this['_revisionTracker']['currentRevision'];if(_0x254039&&0x1===_0x17691f['length']&&_0x17691f[0x0]['id']===_0x14e061['id'])return _0x17691f;for(const _0x33ca07 of _0x17691f)_0x33ca07['id']===_0x14e061['id']&&(_0x33ca07['isEmptyCurrent']=_0x33ca07['fromVersion']===_0x33ca07['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x17691f,this['_lastRequestId'])['then'](_0x2facba=>(this['_lastRequestId']=_0x2facba,_0x17691f))['catch'](_0x387363=>{if(vt(_0x387363)||'400'===_0x387363['code']&&void 0x0!==_0x387363['data']['wrongRequestId']){for(const _0x44ea21 of _0x17691f)this['_revisionTracker']['repository']['getRevision'](_0x44ea21['id'])&&this['_revisionTracker']['_bufferUpdate'](_0x44ea21['id'],_0x44ea21,!0x1);if(vt(_0x387363)&&'destroyed'!==this['editor']['state'])throw _0x387363;return _0x17691f;}throw _0x387363;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x15a62c,{revisionsData:_0x3d2432,requestId:_0x1df668})=>{Math['max'](..._0x3d2432['map'](_0x35c25d=>_0x35c25d['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x3d2432,_0x1df668);}):this['_handleRevisionsUpdate'](_0x3d2432,_0x1df668);}),this['set']('_isServiceConnected',!0x1),this['listenTo'](this['_revisionHistoryService'],'connected',()=>{this['_isServiceConnected']=!0x0;}),this['listenTo'](this['_revisionHistoryService'],'disconnected',()=>{this['_isServiceConnected']=!0x1,'connected'===_0x52336b['connection']?.['state']&&(_0x52336b['removeFromReconnectionStack'](this),this['stopListening'](this['_revisionHistoryService']));});const {revisions:_0x130262,requestId:_0x3449db}=await this['_revisionHistoryService']['connect'](_0x52336b['connection']);_0x52336b['addToReconnectionStack'](this),this['_lastRequestId']=_0x3449db,await this['_fetchMissingUsers'](_0x130262);for(const _0x5077ef of _0x130262)this['_revisionTracker']['addRevisionData'](_0x5077ef);this['listenTo'](_0x3dc9f0,'change:_isConnected',(_0x30a95b,_0x13771b,_0x4146a9)=>{_0x4146a9&&(this['_oldOffset']=_0x3dc9f0['_offset'],_0x30a95b['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](this,'_isServiceConnected');}async reconnect(){const _0x593704=this['editor']['plugins']['get'](J),_0x33929b=this['editor']['plugins']['get'](it),_0x588a76=async()=>{const _0x480d53=this['_revisionTracker']['currentRevision'],_0xfffbbc=_0x480d53['id'],_0x24d8f5=_0xfffbbc!==_0x33929b['sessionId'];if(_0x24d8f5){const _0x4566e8=_0x33929b['_offset']-this['_oldOffset'],_0x4f41df=this['_getLatestVersionFromServerOperations']();if(this['_revisionTracker']['_revisionDataBuilder']['reInit'](),_0x480d53['toVersion']+_0x4566e8!==_0x4f41df){const _0x3bc56e=_0x480d53['fromVersion']+_0x4566e8,_0x28c93e=this['editor']['plugins']['get'](_0x3f8d3d),_0x3a14ea=this['_revisionTracker']['buildRevisionData']({'revision':_0x480d53,'from':_0x3bc56e,'to':_0x4f41df});_0x3a14ea['id']=_0x480d53['id'];const _0x3f4ca8=_0x3a14ea['authorsIds']['map'](_0x4cf5cd=>_0x28c93e['getUser'](_0x4cf5cd));_0x480d53['_update']({..._0x3a14ea,'authors':_0x3f4ca8},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x480d53['id'],_0x3a14ea,!0x0);}this['_revisionTracker']['_startingVersion']=_0x4f41df,_0x480d53['toVersion']!==_0x480d53['fromVersion']||this['_revisionTracker']['_bufferedUpdates']['has'](_0xfffbbc)||this['_revisionTracker']['repository']['_revisions']['remove'](_0xfffbbc),this['_revisionTracker']['_createCurrentRevision'](_0x4f41df);}const {revisions:_0x466b2c,requestId:_0x4d2cab}=await this['_revisionHistoryService']['reconnect'](_0x593704['connection'],this['_lastRequestId']);_0x24d8f5&&_0x466b2c['length']>0x0?_0x33929b['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x466b2c),this['_handleRevisionsUpdate'](_0x466b2c,_0x4d2cab),this['_revisionTracker']['sendBufferedUpdates']());};return _0x33929b['_isConnected']?_0x588a76():new Promise((_0x43ca10,_0x2551e7)=>{_0x33929b['once']('change:_isConnected',()=>{_0x588a76()['then'](_0x43ca10)['catch'](_0x2551e7);});});}destroy(){super['destroy']();}async _waitForServiceReady(){this['_revisionHistoryService']['isConnected']||await new Promise(_0x41e477=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x7e7c=>{_0x7e7c['off'](),_0x41e477();});});}_getLatestVersionFromServerOperations(){const _0x51289c=this['editor']['plugins']['get'](it)['serverHistory']['getOperations']()['reverse']();for(const _0x44e9f6 of _0x51289c)if('marker'!==_0x44e9f6['type']||_0x44e9f6['affectsData'])return _0x44e9f6['baseVersion']+0x1;}_getLatestVersion(){const _0x751660=this['editor']['plugins']['get'](it);return new Promise(_0x20be7c=>{_0x751660['_isPendingUpdate']?_0x751660['once']('change:_isPendingUpdate',()=>{_0x20be7c(this['_getLatestVersionFromServerOperations']());}):_0x20be7c(this['_getLatestVersionFromServerOperations']());});}_handleRevisionsUpdate(_0x142c91,_0x1da3e5){const _0x3af8ee=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x1da3e5;for(const _0x1177b2 of _0x142c91){const _0x489f47=_0x3af8ee['getRevision'](_0x1177b2['id']);if(_0x489f47){if((_0x1177b2['fromVersion']||_0x1177b2['toVersion'])&&(_0x1177b2['diffData']=null),_0x489f47===this['_revisionTracker']['currentRevision']){const _0x282469=Math['max'](_0x489f47['toVersion'],_0x1177b2['toVersion']),_0x589ae9=Math['max'](_0x489f47['fromVersion'],_0x1177b2['fromVersion']);let _0x3b9929;_0x489f47['toVersion']===_0x1177b2['toVersion']&&_0x489f47['fromVersion']===_0x1177b2['fromVersion']?(_0x3b9929=!0x0,this['_preventResendingRevisionData'](_0x1177b2)):_0x1177b2['toVersion']===_0x282469&&_0x1177b2['fromVersion']===_0x589ae9?_0x3b9929=!0x1:(_0x489f47['toVersion']===_0x282469&&_0x489f47['fromVersion']===_0x589ae9||this['_fixRevision']({'revision':_0x489f47,'from':_0x589ae9,'to':_0x282469}),_0x3b9929=!0x0),_0x3b9929&&(delete _0x1177b2['fromVersion'],delete _0x1177b2['toVersion'],delete _0x1177b2['diffData'],delete _0x1177b2['createdAt'],delete _0x1177b2['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x1177b2),this['_preventResendingRevisionData'](_0x1177b2);}else this['_revisionTracker']['addRevisionData'](_0x1177b2);}const _0x10c74f=_0x3af8ee['getRevisions']();_0x10c74f['reverse']();for(let _0xf9149d=0x0;_0xf9149d<_0x10c74f['length']-0x1;_0xf9149d++){const _0x1314d4=_0x10c74f[_0xf9149d],_0x3e3471=_0x10c74f[_0xf9149d+0x1];if(_0x1314d4['fromVersion']<_0x3e3471['toVersion']){const _0x1d5b3a=_0x3e3471['toVersion'],_0x183576=Math['max'](_0x1d5b3a,_0x1314d4['toVersion']);this['_fixRevision']({'revision':_0x1314d4,'from':_0x1d5b3a,'to':_0x183576});}}}['_fixRevision']({revision:_0x4d2eb7,from:_0x1edd1e,to:_0x2ccadc}={}){const _0x3201a2=this['editor']['plugins']['get'](_0x3f8d3d),_0x49d101=this['_revisionTracker']['buildRevisionData']({'revision':_0x4d2eb7,'from':_0x1edd1e,'to':_0x2ccadc});_0x49d101['authors']=_0x49d101['authorsIds']['map'](_0x32afbd=>_0x3201a2['getUser'](_0x32afbd)),_0x4d2eb7['_update'](_0x49d101);}_preventResendingRevisionData(_0xac25aa){const _0x4b606f={};_0x4b606f['id']=_0xac25aa['id'];for(const _0x44e798 of Object['keys'](_0xac25aa))'id'!==_0x44e798&&(_0x4b606f[_0x44e798]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x4b606f['id'],_0x4b606f,!0x0);}async _fetchMissingUsers(_0x40ae2e){const _0x12c2f6=this['editor']['plugins']['get'](_0x3f8d3d),{connection:_0x545364}=this['editor']['plugins']['get'](J),_0x3dd7d1=new Set();for(const _0x370a4e of _0x40ae2e){for(const _0x21f8dd of _0x370a4e['authorsIds'])_0x2a16bd(_0x21f8dd);_0x370a4e['creatorId']&&_0x2a16bd(_0x370a4e['creatorId']);}if(0x0===_0x3dd7d1['size'])return;const _0x33c47e=await _0x3df04e['getMany'](_0x545364,Array['from'](_0x3dd7d1));for(const _0x371b2d of _0x33c47e)_0x12c2f6['getUser'](_0x371b2d['id'])||_0x12c2f6['addUser'](_0x371b2d);function _0x2a16bd(_0x556b5d){_0x12c2f6['getUser'](_0x556b5d)||_0x3dd7d1['add'](_0x556b5d);}}};function vt(_0xd64d07){return _0xd64d07['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0xd64d07['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0xd64d07['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}var _t=class extends _0x15a09f{static get requires(){return[_0x1c9ff7,wt,ct];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}},yt=class extends _0x3703cb{_collapseAt;constructor(_0x31b96b,_0x24f198=0x6){super(_0x31b96b);const _0x32cf86=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x24f198,this['bind']('isHidden')['to'](this,'usersCount',_0x54c54c=>_0x54c54c<_0x24f198),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x32cf86['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':_0x32cf86['to']('usersCount',_0x4f6e18=>'+'+(_0x4f6e18-this['_collapseAt']+0x2)['toString']())}]}]}]});}},bt=class extends _0x3703cb{items;keystrokes;constructor(_0x3f240c){super(_0x3f240c);const _0x4c39b6=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x2ce588(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0x4c39b6['if']('hasPopup'),'aria-expanded':_0x4c39b6['to']('isExpanded',_0x52c666=>this['hasPopup']&&String(_0x52c666)),'aria-label':_0x4c39b6['to']('hasPopup',_0x28b164=>et(_0x3f240c,_0x28b164?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0x4c39b6['to']('hasPopup',_0x490931=>!!_0x490931&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items']}),this['on']('change:hasPopup',(_0x226f49,_0x20db38,_0x56859b)=>{this['element']&&(_0x56859b?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']);}},kt=class extends _0x3703cb{counterView;inlineListView;constructor(_0x14ba71,_0xf4e471=0x6){super(_0x14ba71);const _0x18e4c1=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new yt(this['locale'],_0xf4e471),this['inlineListView']=new bt(_0x14ba71),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x4207c9 of this['inlineListView']['items'])_0x4207c9['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',_0x18e4c1['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}},It=class extends _0x3703cb{listWrapperView;constructor(_0x350df3,_0x1dadb9){super(_0x350df3),this['listWrapperView']=new St(_0x350df3,_0x1dadb9),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':et(_0x350df3,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']]});}},St=class extends _0x5b42d9{constructor(_0x12568e,_0x362578){super(_0x12568e);const _0x4e3f6a=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x362578?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0x4e3f6a['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0x4e3f6a['to']('role'),'aria-label':_0x4e3f6a['to']('ariaLabel'),'aria-labelledby':_0x4e3f6a['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x5e4f24['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x5cd894=this['element'];_0x5cd894&&(this['_isScrollable']=Math['max'](_0x5cd894['scrollHeight'],_0x5cd894['clientHeight'])>0.8*window['innerHeight']);}},Tt=class extends _0x6981e8{['userView'];constructor(_0x5b453b,_0x332f63,_0x553301){super(_0x5b453b);const _0x116871=this['bindTemplate'];this['userView']=new _0xb3ff22(_0x5b453b,_0x332f63);const _0x15c7c8={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0x332f63['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0x332f63['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x332f63['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x332f63['color']['getColorVariable'](),'--ck-user-color-alpha':_0x332f63['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x553301&&(_0x15c7c8['tag']='button',_0x15c7c8['on']={'click':_0x116871['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x15c7c8);}['focus'](){this['element']['focus']();}},Ct=class extends _0x3703cb{['userView'];['markerView'];constructor(_0x245bc4,_0x1d4d2f,_0x6cd9c7){super(_0x245bc4);const _0x5ce5a0=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0xb3ff22(_0x245bc4,_0x1d4d2f),this['markerView']=new At(_0x245bc4,_0x1d4d2f);const _0x44b580=new _0x3782ba(_0x245bc4);_0x44b580['template']['tag']='span',_0x44b580['text']=_0x1d4d2f['name'];const _0x2ccf73={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x5ce5a0['to']('isFocusable',_0x385423=>_0x385423?0x0:-0x1),'aria-labelledby':_0x44b580['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x5ce5a0['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x5ce5a0['to']('hasTooltip',_0x1805f5=>!_0x1805f5),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x44b580]};_0x6cd9c7&&(_0x2ccf73['tag']='button',_0x2ccf73['on']={'click':_0x5ce5a0['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x2ccf73);}},At=class extends _0x3703cb{constructor(_0x5ba5b3,_0x408a04){super(_0x5ba5b3),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x408a04['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x408a04['color']['getColorVariable'](),'--ck-user-color-alpha':_0x408a04['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}};const Pt={'collapseAt':0x6,'displayMe':!0x0};var Ot=class extends _0x438626{currentDisplayedUsers;['balloonPanelView'];['view'];['presenceDropdownView'];_overlayHost=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x1d5813){super(_0x1d5813),this['context']['config']['define']('presenceList',Pt);const _0x392627=_0x1d5813['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x392627)throw new _0x285801('presencelist-collapseat-invalid-format',this);if(_0x392627<0x1)throw new _0x285801('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Q)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x265f56(),this['balloonPanelView']=new _0x30be94(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get requires(){return[Q];}init(){for(const _0x32de19 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x32de19);this['listenTo'](this['_allConnectedUsers'],'add',(_0x4d8033,_0x8f2579)=>{this['_handleUserAdd'](_0x8f2579);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x3b86c9,_0x41f5ba)=>{this['_handleUserRemove'](_0x41f5ba);});}_createView(){const _0x190312=this['context'],_0x39094c=new kt(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x160b6a=this['balloonPanelView'];if(!_0x49cf94(_0x190312['config']['get']('presenceList.container')))throw new _0x285801('presencelist-missing-container',this);_0x39094c['counterView']['bind']('usersCount')['to'](this),_0x39094c['bind']('isCollapsed')['to'](this,'usersCount',_0x33b068=>{const {collapseAt:_0x2cec62}=_0x190312['config']['get']('presenceList'),_0x2cd909=_0x33b068>=_0x2cec62;if(_0x2cd909&&!_0x39094c['inlineListView']['items']['find'](_0x39af61=>_0x39af61 instanceof yt)){const _0x40794c=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x40794c&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x39094c['inlineListView']['items']['add'](_0x39094c['counterView']);}return _0x2cd909||this['hideDropdown'](),_0x2cd909;}),_0x39094c['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x2e90=>{const _0x3575e4=_0x190312['config']['get']('presenceList'),_0x1fc6c9=new Ct(_0x190312['locale'],_0x2e90,!!_0x3575e4['onClick']);return _0x1fc6c9['bind']('hasTooltip')['to'](_0x39094c,'isCollapsed',_0x192579=>!_0x192579),_0x1fc6c9['bind']('isFocusable')['to'](_0x39094c,'isCollapsed',_0x28cc84=>!_0x28cc84),_0x3575e4['onClick']&&this['listenTo'](_0x1fc6c9,'execute',()=>{this['view']['isCollapsed']||_0x3575e4['onClick'](_0x2e90,_0x1fc6c9['element']);}),_0x1fc6c9;}),_0x39094c['inlineListView']['keystrokes']['set']('Enter',(_0x207652,_0x31295a)=>{this['view']['isCollapsed']&&(this['showDropdown'](),this['presenceDropdownView']?.['listWrapperView']['focus'](),_0x31295a());}),_0x39094c['render'](),_0x160b6a['render'](),_0x39094c['listenTo'](_0x39094c['inlineListView']['element'],'mouseenter',()=>{this['view']['isCollapsed']&&this['showDropdown']();});const _0x395fad=(_0x2ca938,_0x51d2df)=>{this['_hideDropdownUnlessPointerInside'](_0x51d2df);};return _0x39094c['listenTo'](_0x39094c['inlineListView']['element'],'mouseleave',_0x395fad),_0x39094c['listenTo'](_0x160b6a['element'],'mouseleave',_0x395fad),_0x27e434({'emitter':_0x39094c,'activator':()=>_0x160b6a['isVisible'],'contextElements':[_0x160b6a['element'],_0x39094c['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0x190312['config']['get']('presenceList.container')['appendChild'](_0x39094c['element']),this['_overlayHost']=new _0x31c53a(this['context']['locale'],{'resolveMountTarget':()=>this['_resolveOverlayTarget'](),'resolveInlineContainer':()=>this['context']['config']['get']('presenceList.container')}),this['_overlayHost']['sync'](),this['_overlayHost']['bodyCollection']['add'](this['balloonPanelView']),_0x39094c;}_resolveOverlayTarget(){const _0x1e7879=this['context']['config']['get']('presenceList.overlayContainer')||this['context']['config']['get']('ui.overlayContainer');if(_0x1e7879)return _0x1e7879;const _0x32a4aa=this['context']['config']['get']('presenceList.container');return _0x32a4aa?_0xe1b5ee(_0x32a4aa):null;}['_handleUserAdd'](_0x1c0e3e){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x1c0e3e['isMe'])return;const _0x250d9c=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x250d9c-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x286417=_0x1c0e3e['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x1c0e3e,_0x286417);}['_handleUserRemove'](_0x3fa84e){this['usersCount']--;const {collapseAt:_0x2ebf7a}=this['context']['config']['get']('presenceList'),_0x5d34fe=this['usersCount']>=_0x2ebf7a;if(this['currentDisplayedUsers']['get'](_0x3fa84e['id']))this['currentDisplayedUsers']['remove'](_0x3fa84e['id']);else{if(_0x5d34fe&&this['currentDisplayedUsers']['length']+0x1===_0x2ebf7a-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x5d34fe?0x1:0x0)<this['usersCount']){for(const _0x226866 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x226866['id'])&&(this['currentDisplayedUsers']['add'](_0x226866,Math['min'](this['currentDisplayedUsers']['length']-(_0x5d34fe?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x5d34fe?0x1:0x0)===_0x2ebf7a-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x461bc6=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new It(this['context']['locale'],!!_0x461bc6['onClick']),this['view']['inlineListView']['isExpanded']=!0x0;const {listWrapperView:_0x197145}=this['presenceDropdownView'];_0x197145['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x1d2bcf=>{if(!_0x461bc6['displayMe']&&_0x1d2bcf['isMe'])return null;const _0x42baa7=new Tt(this['context']['locale'],_0x1d2bcf,!!_0x461bc6['onClick']);return _0x461bc6['onClick']&&this['listenTo'](_0x42baa7,'execute',()=>{_0x461bc6['onClick'](_0x1d2bcf,_0x42baa7['element']);}),_0x42baa7;}),this['_overlayHost']?.['sync'](),this['balloonPanelView']['content']['add'](this['presenceDropdownView']);const _0x27f335=_0x30be94['generatePositions']({'heightOffset':0x3,'config':{'withArrow':!0x1}});this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element'],'positions':[_0x27f335['southArrowNorth'],_0x27f335['southArrowNorthMiddleWest'],_0x27f335['southArrowNorthMiddleEast'],_0x27f335['southArrowNorthWest'],_0x27f335['southArrowNorthEast'],_0x27f335['northArrowSouth'],_0x27f335['northArrowSouthMiddleWest'],_0x27f335['northArrowSouthMiddleEast'],_0x27f335['northArrowSouthWest'],_0x27f335['northArrowSouthEast'],_0x27f335['viewportStickyNorth']]}),_0x197145['focus'](),_0x197145['checkIfScrollable']();const _0x4b637e=(_0x1e2c5e,_0x6f4890)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0x6f4890();};_0x197145['keystrokes']['set']('Esc',_0x4b637e),_0x197145['keystrokes']['set']('Shift+Tab',_0x4b637e),_0x197145['keystrokes']['set']('Tab',()=>{this['view']['inlineListView']['focus'](),this['hideDropdown']();}),_0x197145['focusTracker']['add'](this['view']['element']),_0x197145['focusTracker']['on']('change:isFocused',(_0x176da2,_0x15bbda,_0x226927)=>{_0x226927||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);}_hideDropdownUnlessPointerInside(_0xc6ace9){this['presenceDropdownView']&&([this['view']['inlineListView']['element'],this['balloonPanelView']['element']]['some'](_0x132fcd=>_0x5b648d(_0x132fcd,_0xc6ace9))||this['hideDropdown']());}destroy(){super['destroy'](),this['view']&&this['view']['isRendered']&&this['view']['destroy'](),this['_overlayHost']&&(this['_overlayHost']['destroy'](),this['_overlayHost']=null);}},xt=class extends _0x438626{static get requires(){return[Q,Ot];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}};export{at as CloudServicesCommentsAdapter,wt as CloudServicesRevisionHistoryAdapter,ut as CloudServicesTrackChangesAdapter,xt as PresenceList,Ot as PresenceListUI,it as RealTimeCollaborationClient,pt as RealTimeCollaborativeComments,ct as RealTimeCollaborativeEditing,_t as RealTimeCollaborativeRevisionHistory,gt as RealTimeCollaborativeTrackChanges,Q as Sessions,J as WebSocketGateway};
|
|
23
|
+
import{Context as _0x46ea9b,ContextPlugin as _0x2470ea,PendingActions as _0x1bbdfc,Plugin as _0x2b96e7}from'@ckeditor/ckeditor5-core';import{CKEditorError as _0x1cba4d,Collection as _0x30b45c,DomEmitterMixin as _0x54b94a,KeystrokeHandler as _0x4cd84c,getOverlayMountRoot as _0x445939,global as _0x327fcb,trustedHtml as _0x74deec,uid as _0x467ff8,version as _0x3a3f2b}from'@ckeditor/ckeditor5-utils';import{BalloonPanelView as _0x92771e,LabelView as _0x2576ff,ListItemView as _0x3fc642,ListView as _0x461b02,Notification as _0x3bbe7d,OverlayHost as _0x52da97,View as _0x1bdd03,clickOutsideHandler as _0x4d491f}from'@ckeditor/ckeditor5-ui';import{History as _0x31e537,InsertOperation as _0x215f26,MarkerOperation as _0x524ea7,ModelLiveRange as _0x294958,NoOperation as _0x3884c7,OperationFactory as _0x5bcd72,RootAttributeOperation as _0xdd6fed,transformOperationSets as _0x94c6ca}from'@ckeditor/ckeditor5-engine';import{CloudServices as _0x395891}from'@ckeditor/ckeditor5-cloud-services';import{CollaborativeEditingService as _0x1c22d4,CommentsService as _0x1f5016,EditorService as _0x4f77ac,RevisionHistoryService as _0x15f775,TrackChangesService as _0x58ce33,User as _0x11acf3,WEB_SOCKET_GATEWAY_STATES as _0x5377a0,WebSocketGateway as _0x261987}from'@ckeditor/ckeditor-cloud-services-collaboration';import{UserView as _0x30b579,Users as _0x4857ba,isPointerStillOver as _0x149d83}from'@ckeditor/ckeditor5-collaboration-core';import{Compressor as _0x3559a5}from'@ckeditor/ckeditor5-operations-compressor';import{TrackChanges as _0x318f0b,TrackChangesEditing as _0x5d8e67}from'@ckeditor/ckeditor5-track-changes';import{Comments as _0x1ea26e,CommentsEditing as _0x360017,CommentsRepository as _0x5ee2c7}from'@ckeditor/ckeditor5-comments';import{RevisionHistory as _0x422c21}from'@ckeditor/ckeditor5-revision-history';import{isElement as _0x3663b3}from'es-toolkit/compat';var J=class WebSocketGateway extends _0x2470ea{static WebSocketGateway=/* #__PURE__ -- @preserve */
|
|
24
|
+
((()=>_0x261987)());static initialReconnectionInterval=0x3e8;connection;_reconnectionStack;_shouldPluginsReconnect;_domEmitter;static get requires(){return[_0x395891,_0x3bbe7d];}static get['pluginName'](){return'WebSocketGateway';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x182969){super(_0x182969),this['set']('state',_0x5377a0['CONNECTED']),this['set']('_isBrowserOffline',!0x1),this['_reconnectionStack']=new Set(),this['_shouldPluginsReconnect']=!0x1,this['_domEmitter']=new(_0x54b94a())();}init(){const _0x2ae94b=this['context'],_0x516a7e=_0x2ae94b['plugins']['get'](_0x395891),_0x5ad676=_0x2ae94b['plugins']['get'](_0x3bbe7d);if(!_0x516a7e['token'])throw new _0x1cba4d('websocketgateway-missing-token',this);if(!_0x516a7e['webSocketUrl'])throw new _0x1cba4d('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'](_0x516a7e['token'],_0x516a7e['webSocketUrl'],{'timeout':0x3e8*this['context']['config']['get']('cloudServices.connectionTimeout'),'requestTimeout':0x3e8*this['context']['config']['get']('cloudServices.requestTimeout')})['then'](_0xb09b33=>{if(this['connection']=_0xb09b33,this['bind']('state')['to'](_0xb09b33,'state',this,'_isBrowserOffline',(_0x33dd00,_0x1fbd3a)=>('connected'!==_0x33dd00&&(this['_shouldPluginsReconnect']=!0x0),_0x1fbd3a||_0x33dd00!==_0x5377a0['CONNECTED']?_0x5377a0['DISCONNECTED']:this['state']==_0x5377a0['DISCONNECTED']&&this['_shouldPluginsReconnect']?(this['_shouldPluginsReconnect']=!0x1,this['_reconnect'](),_0x5377a0['CONNECTING']):_0x5377a0['CONNECTED'])),this['connection']['on']('error',(_0x2db714,_0x209d14)=>{if('limitExceeded'!==_0x209d14['code'])throw console['error'](_0x209d14),new _0x1cba4d('cloudservices-init',null,{'originalError':_0x209d14});_0x5ad676['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'});}),!_0xb09b33['me'])return new Promise(_0x2af85c=>_0xb09b33['on']('change:me',_0x2af85c));})['catch'](_0xe743e=>{throw console['error'](_0xe743e),new _0x1cba4d('cloudservices-init',null,{'originalError':_0xe743e});});}addToReconnectionStack(_0x5e731a){if('function'!=typeof _0x5e731a['reconnect'])throw new _0x1cba4d('websocketgateway-invalid-plugin-interface',this);if(this['isInReconnectionStack'](_0x5e731a))throw new _0x1cba4d('websocketgateway-plugin-already-registered',this,{'name':_0x5e731a['constructor']['pluginName']});this['_reconnectionStack']['add'](_0x5e731a);}removeFromReconnectionStack(_0x35f1a9){this['_reconnectionStack']['delete'](_0x35f1a9);}isInReconnectionStack(_0x493c8b){return this['_reconnectionStack']['has'](_0x493c8b);}_reconnect(){return this['connection']['reconnect']()['then'](()=>Promise['all'](Array['from'](this['_reconnectionStack'],_0x4f0e13=>_0x4f0e13['reconnect']())))['then'](()=>this['state']=_0x5377a0['CONNECTED'])['catch'](_0x4fa554=>{throw console['error'](_0x4fa554),new _0x1cba4d('cloudservices-reconnection-error',this['context']);});}disconnect(){this['connection']&&this['connection']['disconnect'](),this['state']=_0x5377a0['DISCONNECTED'],this['_domEmitter']['stopListening']();}destroy(){this['disconnect'](),super['destroy']();}},Q=class extends _0x2470ea{['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[J,_0x4857ba];}constructor(_0x57e4fb){super(_0x57e4fb),this['channelSessions']=new Map(),this['channelConnectedUsers']=new Map(),this['allConnectedUsers']=new _0x30b45c(),this['_registeredSessions']=new Map(),this['_uniqueUsersCount']=0x0,this['_users']=this['context']['plugins']['get'](_0x4857ba);}init(){const _0x4fbad8=this['context']['plugins']['get'](J);this['listenTo'](_0x4fbad8,'change:state',(_0x568dc8,_0x52bf15,_0x5c38bb)=>{if('connected'!==_0x5c38bb)this['channelSessions']['forEach'](_0x4d422f=>_0x4d422f['clear']()),this['channelConnectedUsers']['forEach'](_0x435150=>_0x435150['clear']()),this['allConnectedUsers']['clear']();else{for(const [_0x3395b4,_0x2e10bd]of this['_registeredSessions'])for(const _0x5f3685 of _0x2e10bd)this['_handleSessionAdd'](_0x3395b4,_0x5f3685);}}),this['_createUser'](_0x4fbad8['connection']['me'],!0x0);}register(_0x106e6a,_0x2a6a6b){if(this['_registeredSessions']['has'](_0x106e6a))throw new _0x1cba4d('sessions-register-already-registered',null,{'channelId':_0x106e6a});this['_registeredSessions']['set'](_0x106e6a,_0x2a6a6b),this['channelSessions']['set'](_0x106e6a,new _0x30b45c()),this['channelConnectedUsers']['set'](_0x106e6a,new _0x30b45c()),this['listenTo'](_0x2a6a6b,'add',(_0x4d7a8e,_0x1d61d6)=>this['_handleSessionAdd'](_0x106e6a,_0x1d61d6)),this['listenTo'](_0x2a6a6b,'remove',(_0xd8b718,_0x151af6)=>this['_handleSessionRemove'](_0x106e6a,_0x151af6));for(const _0x2e9583 of _0x2a6a6b)this['_handleSessionAdd'](_0x106e6a,_0x2e9583);}unregister(_0x3fbdfa){if(!this['_registeredSessions']['has'](_0x3fbdfa))throw new _0x1cba4d('sessions-unregister-not-exist',null,{'channelId':_0x3fbdfa});const _0x42fbac=this['_registeredSessions']['get'](_0x3fbdfa);this['stopListening'](_0x42fbac);for(const _0x3b4368 of _0x42fbac)'connected'===this['context']['plugins']['get'](J)['state']&&this['_handleSessionRemove'](_0x3fbdfa,_0x3b4368);this['_registeredSessions']['delete'](_0x3fbdfa),this['channelSessions']['delete'](_0x3fbdfa),this['channelConnectedUsers']['delete'](_0x3fbdfa);}get['mySessionId'](){return this['context']['plugins']['get'](J)['connection']['sessionId'];}getUserBySessionId(_0x5d9a08){for(const _0xfa848b of this['channelSessions']['values']())for(const _0x12b49f of _0xfa848b)if(_0x12b49f['id']===_0x5d9a08)return _0x12b49f['user'];}getUserSessions(_0x4e6cfb,_0x1430d2){const _0x5a9579=_0x1430d2?[this['channelSessions']['get'](_0x1430d2)]:this['channelSessions']['values'](),_0x19b95a=new Set();for(const _0x3ceba8 of _0x5a9579)for(const _0x108fe7 of _0x3ceba8)_0x108fe7['user']['id']===_0x4e6cfb['id']&&_0x19b95a['add'](_0x108fe7['id']);return _0x19b95a;}getUserRole(_0x249e51){for(const _0x5ebcbe of this['channelSessions']['values']())for(const _0x2adf27 of _0x5ebcbe)if(_0x2adf27['user']===_0x249e51)return _0x2adf27['role'];}['_handleSessionAdd'](_0x4cc9c7,_0x569434){if('connected'!==this['context']['plugins']['get'](J)['state'])return;const _0x113243=_0x569434['user'],_0x3c892f=this['_users']['getUser'](_0x113243['id'])||this['_createUser'](_0x113243),_0x2ad924=Object['assign']({},_0x569434,{'user':_0x3c892f});if(this['channelSessions']['get'](_0x4cc9c7)['add'](_0x2ad924),!_0x113243['hiddenInPresenceList']){const _0x3ddc15=this['channelConnectedUsers']['get'](_0x4cc9c7);_0x3ddc15['has'](_0x3c892f['id'])||_0x3ddc15['add'](_0x3c892f),this['allConnectedUsers']['has'](_0x3c892f['id'])||_0x113243['hiddenInPresenceList']||this['allConnectedUsers']['add'](_0x3c892f,_0x3c892f['isMe']?0x0:void 0x0);}this['fire']('sessionAdd:'+_0x4cc9c7,{'channelId':_0x4cc9c7,'session':_0x2ad924});}['_handleSessionRemove'](_0x51862d,_0x15f636){if('connected'!==this['context']['plugins']['get'](J)['state'])return;const _0x51f197=this['channelConnectedUsers']['get'](_0x51862d),_0x177ad=_0x15f636['user'];_0x177ad['id']&&(this['channelSessions']['get'](_0x51862d)['remove'](_0x15f636['id']),_0x51f197['has'](_0x177ad['id'])&&!this['getUserSessions'](_0x177ad,_0x51862d)['size']&&_0x51f197['remove'](_0x177ad['id']),this['allConnectedUsers']['get'](_0x177ad['id'])&&!this['getUserSessions'](_0x177ad)['size']&&this['allConnectedUsers']['remove'](_0x177ad['id']));}_createUser(_0x4d9ead,_0x5a9e4f){const _0x109ec5=this['_users']['addUser'](_0x4d9ead);return _0x5a9e4f&&this['_users']['defineMe'](_0x4d9ead['id']),_0x109ec5['orderNumber']=this['_uniqueUsersCount']++,_0x109ec5;}},X=class extends _0x2b96e7{_domEmitter=new(_0x54b94a())();static get requires(){return[Q];}static get['pluginName'](){return'UserMarkers';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}init(){const _0x1f2a25=this['editor'],_0x146a26=_0x1f2a25['plugins']['get'](Q);_0x1f2a25['conversion']['for']('editingDowncast')['markerToElement']({'model':'user:position','view':(_0x194cc5,{writer:_0x58917d})=>function(_0x155671,_0x309a2f,_0x598766,_0x546bbf){const _0x110dd1=_0x155671['markerName']['split'](':')[0x2],_0x19e7b4=_0x598766['getUserBySessionId'](_0x110dd1);if(!_0x19e7b4||_0x110dd1===_0x598766['mySessionId'])return;if(!_0x546bbf['model']['schema']['checkChild'](_0x155671['markerRange']['start'],'$text'))return;const _0x39ad66={'class':'ck-user__marker\x20'+_0x19e7b4['color']['getMarkerClass'](),'style':tt(_0x19e7b4),'data-name':_0x19e7b4['name'],'data-session-id':_0x110dd1},_0x1781dd=_0x546bbf['model']['markers']['get'](_0x155671['markerName'])['getStart'](),_0x190c1c=_0x1781dd['nodeAfter'],_0x4c624f=_0x546bbf['model']['schema'];if(_0x190c1c&&_0x4c624f['isObject'](_0x190c1c)&&_0x4c624f['isInline'](_0x190c1c)&&!_0x546bbf['model']['markers']['get']('user:range:'+_0x110dd1)['getRange']()['isCollapsed'])return;const _0x45f301=_0x1781dd['parent'];return _0x546bbf['model']['schema']['isLimit'](_0x45f301)&&!_0x546bbf['model']['hasContent'](_0x45f301)&&(_0x39ad66['contenteditable']=!0x1),function(_0x462f52,_0x2fa887,_0x269e15){const _0x57fc22=_0x462f52['createUIElement']('span',_0x2fa887);return _0x462f52['setCustomProperty']('userPositionMarker',!0x0,_0x57fc22),_0x57fc22['render']=function(_0x1ee579){const _0x3ac6d7=this['toDomElement'](_0x1ee579),_0x34a5a0=document['createElement']('span');return _0x34a5a0['classList']['add']('ck-user__marker-tooltip'),_0x34a5a0['setAttribute']('contenteditable','false'),_0x34a5a0['setAttribute']('spellcheck','false'),_0x34a5a0['textContent']=_0x269e15['name'],_0x3ac6d7['innerHTML']=_0x74deec('<span\x20class=\x22ck-user__marker-line\x22\x20contenteditable=\x22false\x22><span\x20class=\x22ck-user__marker-dot\x22></span></span>'+_0x34a5a0['outerHTML']+''),_0x3ac6d7['addEventListener']('mouseenter',()=>{_0x3ac6d7['classList']['add']('ck-user__marker_hovered');}),_0x3ac6d7['addEventListener']('mouseleave',()=>{_0x3ac6d7['classList']['remove']('ck-user__marker_hovered');}),_0x3ac6d7;},_0x57fc22['isSimilar']=function(_0x220943){return!(!this['getCustomProperty']('userPositionMarker')||!_0x220943['getCustomProperty']('userPositionMarker')||this['getAttribute']('data-session-id')!=_0x220943['getAttribute']('data-session-id'));},_0x57fc22;}(_0x309a2f,_0x39ad66,_0x19e7b4);}(_0x194cc5,_0x58917d,_0x146a26,_0x1f2a25)}),_0x1f2a25['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'user:range','view':_0x54997c=>function(_0x320e8a,_0x6e38a0){const _0x27eb24=_0x320e8a['markerName']['split'](':')[0x2];if(_0x27eb24===_0x6e38a0['mySessionId'])return null;const _0x25f60c=_0x6e38a0['getUserBySessionId'](_0x27eb24);return _0x25f60c?{'id':_0x27eb24,'classes':['ck-user__selection',_0x25f60c['color']['getSelectionClass']()],'attributes':{'style':tt(_0x25f60c),'data-session-id':_0x27eb24},'priority':0x7d0+_0x25f60c['orderNumber']}:{'id':_0x27eb24,'classes':[]};}(_0x54997c,_0x146a26)}),function(_0x52a7d0){const _0xe893f5=_0x52a7d0['model'],_0x4577a5=new Map(),_0x38953f=_0x52a7d0['plugins']['get'](Q);_0xe893f5['markers']['on']('update:user:range',(_0x3cba9c,_0x5111c3,_0x352bf8,_0x47fbc7)=>{if(!_0x47fbc7&&_0x4577a5['get'](_0x5111c3['name']))return _0x4577a5['get'](_0x5111c3['name'])['detach'](),void _0x4577a5['delete'](_0x5111c3['name']);const _0x2ce23e=_0x5111c3['name']['split'](':')[0x2];if(_0x2ce23e===_0x38953f['mySessionId'])return;const _0x3f0ea3='user:position:'+_0x2ce23e;_0xe893f5['markers']['has'](_0x3f0ea3)&&_0x52a7d0['editing']['reconvertMarker'](_0x3f0ea3),_0x5111c3['on']('change:range',(_0x4dd89d,_0x5c2c14,_0x18e5b8)=>{if('$graveyard'!=_0x5c2c14['root']['rootName']&&'$graveyard'==_0x5111c3['getRange']()['root']['rootName']&&!_0x4577a5['has'](_0x5111c3['name'])){const _0x4e022d=_0xe893f5['schema']['getNearestSelectionRange'](_0x18e5b8['deletionPosition']);if(_0x4e022d){const _0x4192d9=_0x294958['fromRange'](_0x4e022d);_0x4577a5['set'](_0x5111c3['name'],_0x4192d9),_0x4192d9['on']('change:range',(_0xe6b2d0,_0x3285aa,_0x2d46b8)=>{if('$graveyard'==_0x4192d9['root']['rootName']){const _0xecfbf5=_0xe893f5['schema']['getNearestSelectionRange'](_0x2d46b8['deletionPosition']);_0xecfbf5?(_0x4192d9['start']=_0xecfbf5['start'],_0x4192d9['end']=_0xecfbf5['end']):(_0x4577a5['delete'](_0x5111c3['name']),_0x4192d9['detach']());}});}}});}),_0xe893f5['document']['on']('change',()=>{_0x4577a5['size']>0x0&&_0xe893f5['enqueueChange']({'isUndoable':!0x1},_0x19cbd7=>{for(const [_0x1b44eb,_0x34cfdc]of _0x4577a5)'$graveyard'==_0xe893f5['markers']['get'](_0x1b44eb)['getRange']()['root']['rootName']&&(Z(_0x1b44eb['split'](':')[0x2],_0x34cfdc['toRange'](),_0xe893f5,_0x19cbd7),_0x34cfdc['detach']());_0x4577a5['clear']();});});}(_0x1f2a25),this['_domEmitter']['listenTo'](_0x327fcb['document'],'keydown',(_0x4c7349,{key:_0x5a9249})=>{'Escape'===_0x5a9249&&function(_0x2dfca9){_0x2dfca9['editing']['view']['change'](_0xdb818=>{for(const _0x4ea777 of _0x2dfca9['model']['markers']){if(!_0x4ea777['name']['startsWith']('user:position'))continue;const _0x4dbbf9=_0x2dfca9['editing']['mapper']['markerNameToElements'](_0x4ea777['name']);if(_0x4dbbf9){for(const _0x417d4d of _0x4dbbf9)_0xdb818['removeClass']('ck-user__marker_hovered',_0x417d4d);}}});}(_0x1f2a25);},{'useCapture':!0x0});}afterInit(){const _0x2bc6c8=this['editor'],_0x13c1d8=_0x2bc6c8['commands']['get']('undo');_0x13c1d8&&_0x2bc6c8['model']['on']('applyOperation',(_0x409e53,_0x5b8d31)=>{const _0x3f9f7d=_0x5b8d31[0x0];if(!_0x3f9f7d['isDocumentOperation'])return;if('marker'!=_0x3f9f7d['type']||!_0x3f9f7d['name']['startsWith']('user:'))return;const _0x414d3d=_0x3f9f7d['batch'];_0x13c1d8['_createdBatches']['has'](_0x414d3d)&&(_0x3f9f7d['newRange']=_0x3f9f7d['oldRange']?_0x2bc6c8['model']['createRange'](_0x3f9f7d['oldRange']['start'],_0x3f9f7d['oldRange']['end']):null);},{'priority':'highest'});}destroy(){return this['_domEmitter']['stopListening'](),super['destroy']();}createUserMarkerOperations(){const _0x53f523=this['editor'],_0x42c516=_0x53f523['model']['document'],_0x4a2f7a=_0x53f523['plugins']['get'](Q);_0x53f523['model']['enqueueChange']({'isUndoable':!0x1},_0x10eec7=>{const _0x4503f0='user:range:'+_0x4a2f7a['mySessionId'],_0x5ab6f9='user:position:'+_0x4a2f7a['mySessionId'],_0x2b76de=_0x53f523['model']['markers']['has'](_0x4503f0);_0x53f523['editing']['view']['hasDomSelection']?Z(_0x4a2f7a['mySessionId'],_0x42c516['selection']['getFirstRange'](),_0x53f523['model'],_0x10eec7):_0x2b76de&&(_0x10eec7['removeMarker'](_0x4503f0),_0x10eec7['removeMarker'](_0x5ab6f9));});}};function Z(_0x2d2478,_0xc75fd7,_0x4153bf,_0x4d480e){const _0x2fe118='user:range:'+_0x2d2478,_0x1d0243='user:position:'+_0x2d2478,_0x38520d=_0xc75fd7['getContainedElement']();let _0x5bf7da=_0xc75fd7['start'];if(_0x38520d&&_0x38520d['is']('element','tableCell')){const _0x4063c9=function(_0x3e0141,_0x59dfe6){for(const _0x2b0bd1 of _0x3e0141['getPositions']())if(_0x59dfe6['schema']['checkChild'](_0x2b0bd1,'$text'))return _0x2b0bd1;}(_0xc75fd7,_0x4153bf);_0x4063c9&&(_0x5bf7da=_0x4063c9,_0xc75fd7=_0x4d480e['createRange'](_0x5bf7da));}const _0xc692df=_0x4d480e['createRange'](_0x5bf7da);_0x4153bf['markers']['has'](_0x2fe118)?(_0x4d480e['updateMarker'](_0x2fe118,{'range':_0xc75fd7}),_0x4d480e['updateMarker'](_0x1d0243,{'range':_0xc692df})):(_0x4d480e['addMarker'](_0x2fe118,{'range':_0xc75fd7,'usingOperation':!0x0}),_0x4d480e['addMarker'](_0x1d0243,{'range':_0xc692df,'usingOperation':!0x0}));}function tt(_0x32a0b6){return'--ck-user-color:'+_0x32a0b6['color']['getColorVariable']()+';--ck-user-color-alpha:'+_0x32a0b6['color']['getColorAlphaVariable']()+';';}function et(_0x1a4a1c,_0x486945,_0x2b5ac9){const _0x45e1e5=_0x1a4a1c['t'],t=_0x1a4a1c['t'];switch(_0x486945){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 _0x45e1e5({'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'},_0x2b5ac9);default:return'';}}let st=0x1;var it=class RealTimeCollaborationClient extends _0x2b96e7{static CollaborativeEditingService=/* #__PURE__ -- @preserve */
|
|
25
|
+
((()=>_0x1c22d4)());_offset;['sessionId'];serverHistory;['_channelId'];['_service'];_document;['_compressor'];_bufferedOperations;_knownOperations;_knownRootNames;_pendingAction;_hasSelectionChanged;_sendBufferedOperationsDelayId;['_baseBufferDelay'];_currentBufferDelay;_lastSyncedOperationId;_disconnectionOperations;_operationIdentifier;static get requires(){return[J,Q,X,_0x1bbdfc,_0x4857ba,_0x3bbe7d];}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 _0x587a56=this['serverHistory']['getOperations']();for(let _0x3f93c0=_0x587a56['length']-0x1;_0x3f93c0>=0x0;_0x3f93c0--){const _0xd0e3cd=_0x587a56[_0x3f93c0];if(!this['_disconnectionOperations']['has'](_0xd0e3cd))return _0xd0e3cd['baseVersion']+0x1-this['_offset'];}return 0x0;}constructor(_0x1eb691){if(super(_0x1eb691),this['_offset']=0x0,this['sessionId']=null,this['serverHistory']=new _0x31e537(),this['editor']['config']['define']('collaboration',{}),this['_channelId']=this['editor']['config']['get']('collaboration.channelId'),!this['_channelId'])throw new _0x1cba4d('collaboration-missing-channelid',this);const _0x62e0fb=_0x1eb691['config']['get']('cloudServices.bundleVersion')||_0x3a3f2b;this['_service']=new RealTimeCollaborationClient['CollaborativeEditingService'](_0x62e0fb,this['_channelId']),this['_document']=this['editor']['model']['document'],this['_compressor']=new _0x3559a5(),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 rt(this['_disconnectionOperations']);}init(){const _0x113caf=this['editor'],_0x10efa8=_0x113caf['plugins']['get'](_0x4857ba),_0x3c2ee4=_0x113caf['plugins']['get'](J);this['listenTo'](_0x10efa8,'getOperationAuthor',(_0x29b5f7,_0x7e56be)=>{const _0x5e1645=_0x7e56be[0x0];_0x5e1645['_authorId']&&(_0x29b5f7['return']=_0x10efa8['getUser'](_0x5e1645['_authorId']),_0x29b5f7['stop']()),null===_0x5e1645['_authorId']&&(_0x29b5f7['return']=null,_0x29b5f7['stop']());},{'priority':'high'}),this['listenTo'](_0x113caf['model']['document']['selection'],'change:range',(_0x40b134,_0x19ff98)=>{_0x19ff98['directChange']&&this['_refreshUserSelectionMarkers']();}),this['listenTo'](_0x113caf['editing']['view'],'change:hasDomSelection',()=>{this['_refreshUserSelectionMarkers']();}),this['_initThrowingOnDataSet'](),_0x113caf['model']['on']('applyOperation',(_0x418991,_0x160673)=>{const _0x1f1b2c=_0x160673[0x0];_0x1f1b2c['isDocumentOperation']&&(this['_saveOperationInBuffer'](_0x1f1b2c),this['_shouldSendUpdate']()&&this['_sendBufferedOperationsDelayed']());}),this['_setUpDataInit'](),this['set']('_isChannelFlushed',!0x1),this['bind']('_isEditingAllowed')['to'](_0x3c2ee4,'state',this,'_hasSynchronizationProblem',this,'_isChannelFlushed',(_0xd1e5cd,_0x451249,_0x9bca16)=>'connected'===_0xd1e5cd&&!_0x451249&&!_0x9bca16),this['on']('change:_isEditingAllowed',()=>{this['_isEditingAllowed']?_0x113caf['disableReadOnlyMode']('rtc-offline'):_0x113caf['enableReadOnlyMode']('rtc-offline');}),this['_isEditingAllowed']?_0x113caf['disableReadOnlyMode']('rtc-offline'):_0x113caf['enableReadOnlyMode']('rtc-offline'),this['set']('_isConnected',!0x1);}async reconnect(){const _0x408179=this['editor']['plugins']['get'](Q),_0x1034fe=this['editor']['plugins']['get'](J);try{this['_isPendingUpdate']=!0x0,_0x408179['unregister'](this['_channelId']);const _0x142bf7=await this['_service']['reconnect'](_0x1034fe['connection'],this['lastSyncVersion']);await this['_handleReconnectionResponse'](_0x142bf7)&&(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());const _0x4a832f=await this['_service']['getConnectedSessions']();_0x408179['register'](this['_channelId'],_0x4a832f),this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}catch(_0x292e2a){if(function(_0x2da8fe){return'404'===_0x2da8fe['code'];}(_0x292e2a)&&this['sessionId'])await this['_connectAfterSessionHasBeenFlushed']();else{if(function(_0x5ef61f){return'409'===_0x5ef61f['code'];}(_0x292e2a)){const _0x35f2fc=et(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'](_0x35f2fc);}else{if(!(_0x292e2a instanceof nt))throw _0x292e2a;this['_handleReconnectionError']();}}}}destroy(){const _0x493432=this['editor']['plugins']['get'](J),_0x5bcd54=this['editor']['plugins']['get'](Q);this['editor']['enableReadOnlyMode']('rtc-destroyed'),_0x5bcd54['channelSessions']['has'](this['_channelId'])&&_0x5bcd54['unregister'](this['_channelId']),_0x493432['removeFromReconnectionStack'](this),this['_disconnectService'](),super['destroy']();}async _handleReconnectionResponse(_0x28c1c3){if(this['sessionId']!==_0x28c1c3['sessionId']&&this['_lastSyncedOperationId']!==_0x28c1c3['lastOperationId'])throw new nt();return this['sessionId']=_0x28c1c3['sessionId'],this['_handleServerResponse']([],{..._0x28c1c3,'wereChangesApplied':!0x1,'data':_0x28c1c3['data']},'reconnect');}async _connectService(_0x24a14a,_0x27bcb6=!0x1){const {connection:_0x555c4c}=this['editor']['plugins']['get'](J);RealTimeCollaborationClient['CollaborativeEditingService']['getConnectedSessions'](_0x555c4c,this['_channelId'])['then'](_0x3eb2fa=>this['_initSessionsHandling'](_0x3eb2fa))['catch'](_0x22d122=>{this['_crash']('realtimecollaborationclient-init-session-connection-error',_0x22d122);}),this['listenTo'](this['_service'],'operationsReceived',this['_handleReceivedOperations']['bind'](this)),this['listenTo'](this['_service'],'error',(_0x1132a0,_0x4d5a1c)=>{this['_crash']('realtimecollaborationclient-init-service-internal-error',_0x4d5a1c);}),this['listenTo'](this['_service'],'disconnected',()=>{this['_handleChannelDisconnected']();});const _0x1a6c35=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x24a14a);this['_isPendingUpdate']=!0x0;const _0x3c12f5=await this['_service']['connect'](_0x555c4c,this['_compressOperations'](_0x24a14a),_0x1a6c35);if(this['sessionId']=_0x3c12f5['sessionId'],_0x27bcb6){if(!_0x3c12f5['wereChangesApplied'])return void this['_handleReconnectionError']();this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['serverHistory']['reset'](),this['_offset']=_0x3c12f5['offset'],this['serverHistory']['version']=this['_offset'],await this['_handleServerResponse'](_0x24a14a,_0x3c12f5,'reconnection:\x20flushed\x20session');}else await this['_handleInitialConnectionData'](_0x3c12f5,_0x24a14a);this['_handleSendingSelectionMarkers'](),this['_isConnected']=!0x0;}_handleSendingSelectionMarkers(){const _0x3f0981=this['editor']['plugins']['get'](Q),_0x12b822=this['editor']['plugins']['get'](X),_0x556ab1=_0x3f0981['channelSessions']['get'](this['_channelId']);_0x556ab1&&_0x556ab1['length']>0x1?_0x12b822['createUserMarkerOperations']():this['listenTo'](_0x3f0981,'sessionAdd:'+this['_channelId'],()=>{0x2===_0x3f0981['channelSessions']['get'](this['_channelId'])['length']&&_0x12b822['createUserMarkerOperations']();});}async _handleReceivedOperations(_0x3b0354,_0x2a256a,_0x1675d4,_0x4b4b64){if(!this['_isPendingUpdate']&&this['_document']['version']==_0x2a256a){const _0x16b33e=this['_decompressOperations'](_0x1675d4,_0x4b4b64);await this['_fetchMissingUsers'](_0x16b33e),this['_handleExternalOperations'](_0x16b33e,_0x2a256a,_0x1675d4['lastOperationId'])||this['_crash']('realtimecollaborationclient-init-service-incorrect-server-operation');}}async _connectAfterSessionHasBeenFlushed(){this['_disconnectService']();const {locale:_0x56e421}=this['editor'];let _0x153180;try{_0x153180=await this['_service']['getDocumentDetails']();}catch{const _0x2fae61=et(_0x56e421,'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'](_0x2fae61);}const _0x2392e5=_0x153180['currentDocumentSession']||_0x153180['lastDocumentSession'];if(this['_lastSyncedOperationId']!==_0x2392e5['lastOperationId']){const _0x11820a=et(_0x56e421,'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'](_0x11820a);}await this['_connectService'](this['editor']['model']['document']['history']['getOperations'](),!0x0);}_handleChannelDisconnected(){const _0x467bb6=this['editor']['plugins']['get'](J);if(this['_isConnected']=!0x1,!_0x467bb6['connection']||'connected'!==_0x467bb6['connection']['state'])return;this['_isChannelFlushed']=!0x0;const _0x18edf1=this['editor']['plugins']['get'](Q);_0x18edf1['channelSessions']['has'](this['_channelId'])&&_0x18edf1['unregister'](this['_channelId']),_0x467bb6['removeFromReconnectionStack'](this),this['_disconnectService']();}_disconnectService(){this['_service']['disconnect'](),this['_bufferedOperations']=[],clearTimeout(this['_sendBufferedOperationsDelayId']),this['_isPendingUpdate']=!0x1,this['_clearPendingAction'](),this['stopListening'](this['_service']);}_initSessionsHandling(_0xb93949){const _0x37f805=this['editor']['plugins']['get'](Q);this['listenTo'](_0x37f805,'sessionAdd:'+this['_channelId'],(_0x199cf7,{session:_0x1f6e85})=>{if(_0x1f6e85['id']===_0x37f805['mySessionId']){_0x199cf7['off']();const _0x2ac4ea=this['editor']['plugins']['has']('CommentsOnly')&&this['editor']['plugins']['get']('CommentsOnly');let _0x144823=_0x1f6e85['permissions'];_0x2ac4ea&&_0x2ac4ea['isEnabled']&&(_0x144823=_0x144823['filter'](_0xa1f040=>'document:write'!==_0xa1f040)),this['editor']['plugins']['get']('Permissions')['setPermissions'](_0x144823,this['_channelId']);}}),_0x37f805['register'](this['_channelId'],_0xb93949);}_initThrowingOnDataSet(){const _0x2e0c92=this['editor']['data']['set'];this['editor']['data']['set']=(..._0x146860)=>{if(!_0x146860[_0x146860['length']-0x1]['suppressErrorInCollaboration'])throw new _0x1cba4d('realtimecollaborationclient-editor-setdata-and-editor-data-set-are-forbidden-in-real-time-collaboration',this);_0x2e0c92['apply'](this['editor']['data'],_0x146860);};}_setUpDataInit(){this['editor']['data']['on']('init',(_0x3aff83,[_0x49ed80])=>{if(this['_document']['version'])throw new _0x1cba4d('realtimecollaborationclient-init-document-already-initialized',this);_0x3aff83['stop'](),this['_setPendingAction']();const _0x50f38e=Object['fromEntries'](Object['entries'](this['editor']['config']['get']('roots')||{})['filter'](([,_0x11c12a])=>!_0x11c12a['lazyLoad'])['map'](([_0xf032d2,_0x5f4584])=>[_0xf032d2,_0x5f4584['modelAttributes']||{}])),_0x586c24=this['_getOperationsFromInitData'](_0x49ed80,_0x50f38e);0x0==_0x586c24['length']&&_0x586c24['push'](new _0x3884c7(0x0)),_0x3aff83['return']=this['_connectService'](_0x586c24)['then'](()=>{this['editor']['plugins']['get'](J)['addToReconnectionStack'](this),this['editor']['data']['fire']('ready');})['catch'](_0x482828=>this['_crash']('realtimecollaborationclient-init-connection-failed',_0x482828))['finally'](()=>this['_clearPendingAction']());},{'priority':'high'}),this['editor']['on']('loadRoot',async(_0x159885,[_0x5aeb41,_0x3ddb7f])=>{_0x159885['stop']();const _0x6a65c6=this['editor']['model']['document']['getRoot'](_0x5aeb41);if(!this['_knownRootNames']['has'](_0x5aeb41)){const _0x54e52b=_0x3ddb7f&&_0x3ddb7f['data']?_0x3ddb7f['data']:'',_0x1bbb92=_0x3ddb7f&&_0x3ddb7f['attributes']?_0x3ddb7f['attributes']:{};await this['_loadRoot'](_0x5aeb41,_0x54e52b,_0x1bbb92);}this['editor']['model']['enqueueChange']({'isUndoable':!0x1},()=>{_0x6a65c6['_isLoaded']=!0x0,this['editor']['model']['document']['differ']['_bufferRootLoad'](_0x6a65c6);});},{'priority':'high'});}async _fetchMissingUsers(_0x3b91a8){const _0x1fda01=this['editor']['plugins']['get'](_0x4857ba),{connection:_0x30ecec}=this['editor']['plugins']['get'](J),_0x107b21=new Set();for(const _0x1db2b4 of _0x3b91a8){const _0x112db8=_0x1db2b4['_authorId'];_0x112db8&&!_0x1fda01['getUser'](_0x112db8)&&_0x107b21['add'](_0x112db8);}if(0x0===_0x107b21['size'])return;const _0x205927=await _0x11acf3['getMany'](_0x30ecec,Array['from'](_0x107b21));for(const _0x5718b8 of _0x205927)_0x1fda01['getUser'](_0x5718b8['id'])||_0x1fda01['addUser'](_0x5718b8);}_getOperationsFromInitData(_0x3b5b75,_0x581ef1={}){const _0x2129f1=this['editor']['model'],_0x156b26=[];let _0xd2fef2=0x0;const _0x21ac30='string'==typeof _0x3b5b75?{'main':_0x3b5b75}:_0x3b5b75;for(const _0x458c89 of Object['keys'](_0x21ac30)){if(!this['_document']['roots']['has'](_0x458c89))throw new _0x1cba4d('realtimecollaborationclient-init-non-existent-root',this);const _0x24cc2f=this['_document']['getRoot'](_0x458c89),_0x5f4b3b=this['editor']['data']['parse'](_0x21ac30[_0x458c89],_0x24cc2f),_0x1d6e02=new _0x215f26(_0x2129f1['createPositionAt'](_0x24cc2f,0x0),_0x5f4b3b,_0xd2fef2++);_0x156b26['push'](_0x1d6e02);for(const [_0x46faa5,_0x2ebb76]of _0x5f4b3b['markers']){const _0x3c483d=_0x2129f1['createRange'](_0x2129f1['createPositionFromPath'](_0x24cc2f,_0x2ebb76['start']['path']['slice']()),_0x2129f1['createPositionFromPath'](_0x24cc2f,_0x2ebb76['end']['path']['slice']())),_0x56a61f=new _0x524ea7(_0x46faa5,null,_0x3c483d,_0x2129f1['markers'],!0x0,_0xd2fef2++);_0x156b26['push'](_0x56a61f);}}if(_0x581ef1)for(const [_0xe9d46c,_0x13a8f4]of Object['entries'](_0x581ef1)){const _0x3e1761=_0x2129f1['document']['getRoot'](_0xe9d46c);if(!_0x3e1761)throw new _0x1cba4d('multi-root-editor-root-attributes-no-root',null);for(const [_0x5de652,_0x49b02c]of Object['entries'](_0x13a8f4))if(null!==_0x49b02c){const _0x1d3200=new _0xdd6fed(_0x3e1761,_0x5de652,null,_0x49b02c,_0xd2fef2++);_0x156b26['push'](_0x1d3200);}}return _0x156b26;}async _loadRoot(_0x40485f,_0x5120f0,_0x4f1888){this['_getOperationsFromInitData']({[_0x40485f]:_0x5120f0},{[_0x40485f]:_0x4f1888})['forEach']((_0x2684c7,_0x56d6d2)=>{_0x2684c7['baseVersion']=this['_document']['version']+_0x56d6d2,_0x2684c7['_isInit']=!0x0,this['_saveOperationInBuffer'](_0x2684c7);}),this['_sendBufferedOperationsDelayed'](),await this['_waitUntilSynced']();}async _handleInitialConnectionData(_0x3b3fed,_0x4c5fd2){let _0x2a2098;this['_offset']=_0x3b3fed['offset'];const _0x1b1701=_0x3b3fed['wereChangesApplied']&&!_0x3b3fed['initData'],_0x393dd8=_0x1b1701?0x0:_0x3b3fed['data']['baseVersion'];if(_0x4c5fd2['forEach'](_0x352ce5=>{_0x352ce5['_isInit']=!0x0,_0x352ce5['createdAt']=_0x3b3fed['sessionCreatedAt'],_0x352ce5['_authorId']=null;}),_0x1b1701)_0x2a2098=_0x4c5fd2,this['_applyOperationsSet'](_0x2a2098,_0x1b1701);else{if(_0x3b3fed['initData']){const _0x3d9e6f=this['_getOperationsFromInitData'](_0x3b3fed['initData']);this['_document']['history']['version']=-_0x3d9e6f['length'],_0x3d9e6f['forEach'](_0x5d4dcd=>{_0x5d4dcd['baseVersion']-=_0x3d9e6f['length'],_0x5d4dcd['createdAt']=_0x3b3fed['sessionCreatedAt'],_0x5d4dcd['_isInit']=!0x0,_0x5d4dcd['_authorId']=null;}),this['_applyOperationsSet'](_0x3d9e6f,!0x0),this['serverHistory']['version']=-_0x3d9e6f['length']+this['_offset'],this['_updateServerHistory'](_0x3d9e6f);}this['_document']['history']['version']=_0x393dd8,_0x2a2098=this['_decompressOperations'](_0x3b3fed['data'],_0x3b3fed['metadata']),await this['_fetchMissingUsers'](_0x2a2098),this['_applyOperationsSet'](_0x2a2098,_0x1b1701);}_0x3b3fed['lastOperationId']&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x2a2098,_0x3b3fed['lastOperationId']),this['_lastSyncedOperationId']=_0x3b3fed['lastOperationId']),this['serverHistory']['version']=_0x393dd8+this['_offset'],this['_updateServerHistory'](_0x2a2098),_0x4c5fd2['filter'](_0x5b0f56=>{const _0x25eb18=this['_getAffectedRoot'](_0x5b0f56);return _0x25eb18&&!this['_knownRootNames']['has'](_0x25eb18);})['forEach']((_0x4ee752,_0x330946)=>{_0x4ee752['baseVersion']=this['_document']['version']+_0x330946,this['_saveOperationInBuffer'](_0x4ee752);}),this['_shouldSendUpdate']()?(this['_currentBufferDelay']=0x0,this['_sendBufferedOperationsDelayed'](!0x0),await this['_waitUntilSynced']()):(this['_isPendingUpdate']=!0x1,this['_clearPendingAction']());}['_crash'](_0x2ef435,_0x5ebe70){const _0x3a9b5a=_0x5ebe70&&_0x5ebe70['message'];if(_0x3a9b5a&&_0x3a9b5a['startsWith']('realtimecollaborationclient'))throw _0x5ebe70;const _0x128ec9=this['editor']['plugins']['get'](J);throw this['_isPendingUpdate']=!0x0,_0x128ec9['disconnect'](),this['editor']['enableReadOnlyMode']('realtimecollaborationclient-error'),new _0x1cba4d(_0x2ef435,this['editor'],_0x3a9b5a?{'originalError':_0x3a9b5a}:void 0x0);}_saveOperationInBuffer(_0x332a2b){this['_knownOperations']['has'](_0x332a2b)||(this['_knownOperations']['add'](_0x332a2b),this['_bufferedOperations']['push'](_0x332a2b),this['_pendingAction']||'marker'==_0x332a2b['type']&&!_0x332a2b['affectsData']||this['_setPendingAction']());}_sendBufferedOperationsDelayed(_0x5481c1=!0x1){!_0x5481c1&&this['_isPendingUpdate']||(this['_isPendingUpdate']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_sendBufferedOperationsDelayId']=setTimeout(()=>{this['_sendBufferedOperations']()['then'](_0xcc4d95=>{_0xcc4d95&&(this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1);})['catch'](_0xb5c27e=>{this['_clearPendingAction'](),this['_isPendingUpdate']=!0x1,function(_0x2fa172){return _0x2fa172['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x2fa172['message']['startsWith']('cloud-services-internal-error:\x20Collaborative\x20Editing\x20Service\x20is\x20not\x20connected.')||_0x2fa172['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}(_0xb5c27e)||this['_crash'](_0xb5c27e['message'],_0xb5c27e);});},this['_currentBufferDelay']));}_waitUntilSynced(){return new Promise(_0x26c031=>{this['on']('change:_isPendingUpdate',()=>{_0x26c031();});});}async _sendBufferedOperations(){const _0x275be4=this['editor']['plugins']['get'](X);if(this['_shouldSendSelectionUpdate']()&&(_0x275be4['createUserMarkerOperations'](),this['_hasSelectionChanged']=!0x1),!this['_shouldSendUpdate']())return!0x0;const _0x1d80f3=[...this['_bufferedOperations']];for(const _0x25207b of _0x1d80f3)_0x25207b['wasUndone']=this['_document']['history']['isUndoneOperation'](_0x25207b);const _0x31e202=this['_operationIdentifier']['getIdOfTheLastOperation'](_0x1d80f3),_0x53a232=st++,_0x2421d3=this['_compressOperations'](_0x1d80f3),_0x46e209=await this['_service']['sendOperations'](_0x2421d3,_0x2421d3['baseVersion'],_0x31e202);try{return await this['_handleServerResponse'](_0x1d80f3,_0x46e209,_0x53a232);}catch(_0xb54601){return this['_crash']('realtimecollaborationclient-sendbufferedoperations',_0xb54601);}}async['_handleServerResponse'](_0xe832cb,_0xe027fe,_0x44b504){if('error'in _0xe027fe)throw _0xe027fe['error'];let _0x3d875c;if(_0xe027fe['wereChangesApplied']){_0xe027fe['lastOperationId']&&(this['_lastSyncedOperationId']=_0xe027fe['lastOperationId']),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x46587d=>!_0xe832cb['includes'](_0x46587d));for(const _0x585158 of _0xe832cb)_0x585158['createdAt']='lastOperationAcceptedAt'in _0xe027fe&&_0xe027fe['lastOperationAcceptedAt']||void 0x0;ot(_0xe832cb,_0xe027fe['version']-_0xe832cb['length']),this['_updateServerHistory'](_0xe832cb);const _0x6a258c=_0xe832cb['filter'](_0x1144ed=>{if(!_0x1144ed['_isInit'])return!0x1;const _0x436ff3=this['_getAffectedRoot'](_0x1144ed);return _0x436ff3&&!this['_knownRootNames']['has'](_0x436ff3);});ot(_0x6a258c,this['_document']['version']),this['_applyOperationsSet'](_0x6a258c),_0x3d875c=!0x0,this['_currentBufferDelay']=this['_baseBufferDelay'];}else{const _0x3a80b4=this['_decompressOperations'](_0xe027fe['data'],_0xe027fe['metadata'])['filter'](_0xbf30c6=>_0xbf30c6['baseVersion']>=this['_lastServerVersion']);_0x3a80b4['forEach'](_0x4a85ca=>this['_addKnownRoot'](_0x4a85ca)),this['_bufferedOperations']=this['_bufferedOperations']['filter'](_0x370cea=>!_0x370cea['_isInit']||!this['_knownRootNames']['has'](this['_getAffectedRoot'](_0x370cea))),this['_bufferedOperations']['length']&&ot(this['_bufferedOperations'],this['_bufferedOperations'][0x0]['baseVersion']),await this['_fetchMissingUsers'](_0x3a80b4),_0x3d875c=this['_handleExternalOperations'](_0x3a80b4,_0xe027fe['version'],_0xe027fe['lastOperationId']),this['_currentBufferDelay']=Math['round'](this['_currentBufferDelay']/0x2);}return _0x3d875c?!this['_shouldSendUpdate']()||(this['_sendBufferedOperationsDelayed'](!0x0),!0x1):this['_crash']('realtimecollaborationclient-handleserverresponse');}_handleExternalOperations(_0x3d3f87,_0x31b514,_0x487c79){try{const _0x4a55a0={'document':this['_document'],'useRelations':!0x1,'padWithNoOps':!0x0},{operationsA:_0x288df3,operationsB:_0x19a241,originalOperations:_0xd7c972}=_0x94c6ca(_0x3d3f87,this['_bufferedOperations'],_0x4a55a0);ot(_0x288df3,this['_document']['version']),ot(_0x19a241,_0x31b514);for(const _0x385820 of _0x288df3){const _0x5e2c89=_0xd7c972['get'](_0x385820);_0x5e2c89?(_0x385820['_authorId']=_0x5e2c89['_authorId'],'noop'!==_0x385820['type']&&(_0x385820['_aiSource']=_0x5e2c89['_aiSource'])):_0x385820['_authorId']=null;}for(const _0x8aac99 of _0x19a241)'noop'!==_0x8aac99['type']&&(_0x8aac99['_aiSource']=_0xd7c972['get'](_0x8aac99)?.['_aiSource']);_0x487c79&&(this['_operationIdentifier']['setIdForTheLastOperation'](_0x3d3f87,_0x487c79),this['_lastSyncedOperationId']=_0x487c79),this['_bufferedOperations']=[..._0x19a241],this['_applyOperationsSet'](_0x288df3),this['_updateServerHistory'](_0x3d3f87);}catch(_0x3d6c48){return console['error'](_0x3d6c48),!0x1;}return!0x0;}_applyOperationsSet(_0x4f01c0,_0x3f78a7=!0x1){this['editor']['model']['enqueueChange']({'isUndoable':!0x1,'isLocal':!0x1},_0x693090=>{for(const _0xaa2a40 of _0x4f01c0)this['_knownOperations']['add'](_0xaa2a40),this['_addKnownRoot'](_0xaa2a40),_0x693090['batch']['addOperation'](_0xaa2a40),this['editor']['model']['applyOperation'](_0xaa2a40);});}_addKnownRoot(_0x1d773b){const _0x3c4ab5=this['_getAffectedRoot'](_0x1d773b);_0x3c4ab5&&this['_knownRootNames']['add'](_0x3c4ab5);}_getAffectedRoot(_0x48c3d8){let _0x12375f,_0x2907ee;switch(_0x48c3d8['type']){case'insert':_0x12375f=_0x48c3d8['position']['root'];break;case'marker':if(_0x2907ee=_0x48c3d8['newRange'],!_0x2907ee)return null;_0x12375f=_0x2907ee['root'];break;case'addRootAttribute':_0x12375f=_0x48c3d8['root'];break;case'addRoot':_0x12375f=_0x48c3d8['affectedSelectable'];break;case'move':_0x12375f=_0x48c3d8['targetPosition']['root'];break;default:return null;}return _0x12375f['rootName'];}_updateServerHistory(_0x15922a){_0x15922a['forEach'](_0x34c1a4=>{const _0x5a6217=_0x34c1a4['clone']();_0x5a6217['_authorId']=_0x34c1a4['_authorId'],_0x5a6217['_isInit']=!!_0x34c1a4['_isInit'],_0x5a6217['_aiSource']=_0x34c1a4['_aiSource'],_0x5a6217['createdAt']=_0x34c1a4['createdAt'],_0x5a6217['baseVersion']+=this['_offset'],_0x34c1a4['_isDisconnection']&&this['_disconnectionOperations']['add'](_0x5a6217),this['serverHistory']['addOperation'](_0x5a6217);});}_handleReconnectionError(_0x3353bb){const _0x45209b=this['editor']['plugins']['get']('Notification'),_0x366872=this['editor']['locale'];_0x3353bb||(_0x3353bb=et(_0x366872,'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.')),_0x45209b['showWarning'](_0x3353bb,{'title':et(_0x366872,'Synchronization\x20issue'),'namespace':'real-time-collaboration'}),this['_hasSynchronizationProblem']=!0x0,clearTimeout(this['_sendBufferedOperationsDelayId']),this['_bufferedOperations']=[],this['editor']['plugins']['get'](J)['disconnect']();}_setPendingAction(){this['_pendingAction']||(this['_pendingAction']=this['editor']['plugins']['get'](_0x1bbdfc)['add'](et(this['editor']['locale'],'PENDING_ACTION_SENDING_DATA')));}_clearPendingAction(){this['_pendingAction']&&(this['editor']['plugins']['get'](_0x1bbdfc)['remove'](this['_pendingAction']),this['_pendingAction']=null);}_compressOperations(_0x2b5187){const _0x178797=_0x2b5187['map'](_0x12c1c0=>_0x12c1c0['toJSON']());return this['_compressor']['compress'](_0x178797);}_decompressOperations(_0x148e45,_0x4edd98){return this['_compressor']['decompress'](_0x148e45)['map']((_0x347c83,_0x344b96)=>{const _0x4a8e7a='init'==_0x4edd98[_0x344b96]['type'];if('InsertOperation'==_0x347c83['__className']){const _0x3c12ad=_0x347c83['position']['root'];!this['_document']['getRoot'](_0x3c12ad)&&(this['_document']['createRoot']('$unknown',_0x3c12ad)['_isAttached']=!0x1);}else{if('RootOperation'==_0x347c83['__className']){const _0x563c77=this['_document']['getRoot'](_0x347c83['rootName']);_0x563c77&&'$unknown'==_0x563c77['name']&&_0x347c83['elementName']!=_0x563c77['name']&&(_0x563c77['name']=_0x347c83['elementName']);}}const _0xa6e8a0=_0x5bcd72['fromJSON'](_0x347c83,this['_document']);return _0xa6e8a0['wasUndone']=_0x347c83['wasUndone'],_0xa6e8a0['_isInit']=_0x4a8e7a,_0xa6e8a0['_authorId']=_0x4a8e7a?null:_0x4edd98[_0x344b96]['userId'],_0xa6e8a0['_isDisconnection']='cs:removeUser'===_0x4edd98[_0x344b96]['type'],_0xa6e8a0['_aiSource']=_0x347c83['_aiSource']||void 0x0,_0xa6e8a0['createdAt']=_0x4edd98[_0x344b96]['createdAt'],_0xa6e8a0;});}_refreshUserSelectionMarkers(){this['_hasSelectionChanged']=!0x0,this['_shouldSendSelectionUpdate']()?this['_sendBufferedOperationsDelayed']():this['_hasSelectionChanged']=!0x1;}_shouldSendSelectionUpdate(){const _0x1a4ef5=this['editor']['plugins']['get'](Q)['channelSessions']['get'](this['_channelId']);return!this['editor']['isReadOnly']&&!!_0x1a4ef5&&_0x1a4ef5['length']>0x1&&this['_hasSelectionChanged'];}_shouldSendUpdate(){return this['_bufferedOperations']['length']>0x0||this['_shouldSendSelectionUpdate']();}},nt=class extends Error{};function ot(_0x29a2a9,_0x3945cf){for(const _0x439aa6 of _0x29a2a9)_0x439aa6['baseVersion']=_0x3945cf++;}var rt=class{_ignoredOperations;_operationToId;constructor(_0x2ac582){this['_ignoredOperations']=_0x2ac582,this['_operationToId']=new WeakMap();}getIdOfTheLastOperation(_0x19ff3b){let _0x42b3a0=_0x19ff3b['length'];for(;_0x42b3a0--;){const _0x13ffd2=_0x19ff3b[_0x42b3a0];if(!this['_ignoredOperations']['has'](_0x13ffd2)){if(!this['_operationToId']['has'](_0x13ffd2)){const _0x5ea22e=_0x467ff8()['slice'](0x1,0x12);this['_operationToId']['set'](_0x13ffd2,_0x5ea22e);}return this['_operationToId']['get'](_0x13ffd2);}}}setIdForTheLastOperation(_0x21ae6e,_0x1997e6){if(!_0x1997e6)return;let _0x1c29f3=_0x21ae6e['length'];for(;_0x1c29f3--;){const _0x28b801=_0x21ae6e[_0x1c29f3];this['_ignoredOperations']['has'](_0x28b801)||this['_operationToId']['set'](_0x28b801,_0x1997e6);}}},ct=class extends _0x2b96e7{static get requires(){return[it];}static get['pluginName'](){return'RealTimeCollaborativeEditing';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}},at=class CloudServicesCommentsAdapter extends _0x2470ea{static CommentsService=/* #__PURE__ -- @preserve */
|
|
26
|
+
((()=>_0x1f5016)());['_services'];static get requires(){return[J,_0x5ee2c7,Q,_0x4857ba];}static get['pluginName'](){return'CloudServicesCommentsAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x15ccc1){super(_0x15ccc1),this['_services']=new Map();}async init(){const _0x1bf167=this['context'],_0x3f13ac=_0x1bf167['plugins']['get'](_0x5ee2c7);if(_0x1bf167['plugins']['get'](J)['addToReconnectionStack'](this),_0x3f13ac['adapter']={'addCommentThread':async({channelId:_0x4beff3,threadId:_0x18caa7,comments:_0x5c2792,resolvedAt:_0x2927ba,resolvedBy:_0x156437,context:_0x4bc959,attributes:_0x3ddcf4})=>{const _0x3e63e3=await this['_getService'](_0x4beff3)['addCommentThread']({'commentThreadId':_0x18caa7,'comments':_0x5c2792['map'](_0x3a15a0=>function(_0x27cfcf,_0x20447f,_0x32b559){return{'commentThreadId':_0x32b559,'commentId':_0x27cfcf['commentId'],'userId':_0x27cfcf['authorId'],'content':_0x27cfcf['content'],'documentId':_0x20447f,'createdAt':_0x27cfcf['createdAt'],'attributes':_0x27cfcf['attributes']||{}};}(_0x3a15a0,_0x4beff3,_0x18caa7)),'resolvedAt':_0x2927ba,'resolvedBy':_0x156437,'context':_0x4bc959,'attributes':_0x3ddcf4})['catch'](lt);return{'threadId':_0x3e63e3['commentThreadId'],'comments':_0x3e63e3['comments']};},'getCommentThread':async({channelId:_0x254049,threadId:_0x51245d})=>{const _0x19e859=await this['_getService'](_0x254049)['getCommentThread'](_0x51245d)['catch'](ht)['catch'](lt);return _0x19e859?_0x19e859['deletedAt']?null:(await this['_fetchMissingUsersForThreads']([_0x19e859]),{'threadId':_0x19e859['commentThreadId'],'comments':_0x19e859['comments']['map'](dt),'context':_0x19e859['context'],'resolvedAt':_0x19e859['resolvedAt'],'resolvedBy':_0x19e859['resolvedBy'],'attributes':_0x19e859['attributes']||{}}):null;},'updateCommentThread':async({channelId:_0x3f4bfa,threadId:_0x6480b2,context:_0x2db593,unlinkedAt:_0x55ada6,attributes:_0x2f69d0})=>this['_getService'](_0x3f4bfa)['updateCommentThread']({'commentThreadId':_0x6480b2,'context':_0x2db593,'attributes':_0x2f69d0,'unlinkedAt':_0x55ada6})['catch'](ht)['catch'](lt),'resolveCommentThread':async({channelId:_0x315351,threadId:_0x22e629})=>{const _0x286b11=await this['_getService'](_0x315351)['resolveCommentThread'](_0x22e629)['catch'](ht)['catch'](lt);return{'threadId':_0x286b11['commentThreadId'],'resolvedAt':_0x286b11['resolvedAt'],'resolvedBy':_0x286b11['resolvedBy']};},'reopenCommentThread':async({channelId:_0xca9231,threadId:_0x10873d})=>this['_getService'](_0xca9231)['reopenCommentThread'](_0x10873d)['catch'](ht)['catch'](lt),'removeCommentThread':({channelId:_0x55d11e,threadId:_0x4452d3})=>this['_getService'](_0x55d11e)['removeCommentThread'](_0x4452d3)['catch'](ht)['catch'](lt),'addComment':({channelId:_0x11a3e1,threadId:_0x44212a,commentId:_0x15b44e,content:_0x5766cb,attributes:_0x3a3608})=>this['_getService'](_0x11a3e1)['addComment'](_0x44212a,_0x15b44e,_0x5766cb,_0x3a3608)['catch'](lt),'updateComment':({channelId:_0x41a17f,threadId:_0x279e96,commentId:_0x38ca7d,content:_0x37eb78,attributes:_0x4797ca})=>this['_getService'](_0x41a17f)['updateComment'](_0x279e96,_0x38ca7d,_0x37eb78,_0x4797ca)['catch'](ht)['catch'](lt),'removeComment':({channelId:_0x1b140e,threadId:_0x59883f,commentId:_0x73061})=>this['_getService'](_0x1b140e)['removeComment'](_0x59883f,_0x73061)['catch'](ht)['catch'](lt)},_0x1bf167 instanceof _0x46ea9b){const _0x40bcc7=_0x1bf167['config']['get']('collaboration.channelId'),_0x1a718e=_0x1bf167['plugins']['get'](Q);await this['_setUpService'](_0x40bcc7);const _0x1286ce=await this['_services']['get'](_0x40bcc7)['getConnectedSessions']();this['listenTo'](_0x1a718e,'sessionAdd:'+_0x40bcc7,(_0x1b64c7,{session:_0x184cb3})=>{_0x184cb3['id']===_0x1a718e['mySessionId']&&(_0x1b64c7['off'](),this['context']['plugins']['get']('Permissions')['setPermissions'](_0x184cb3['permissions'],_0x40bcc7));}),_0x1a718e['register'](_0x40bcc7,_0x1286ce);}}async _setUpService(_0x32c545){if(this['_services']['has'](_0x32c545))throw new _0x1cba4d('cloudservicescommentsadapter-connect-already-connected',null,{'channelId':_0x32c545});const _0x496bac=this['context']['plugins']['get'](_0x5ee2c7),_0x9fd76c=new CloudServicesCommentsAdapter['CommentsService'](_0x32c545);this['_services']['set'](_0x32c545,_0x9fd76c),this['listenTo'](_0x9fd76c,'commentThreadAdded',(_0x1bc7fa,_0x533ef5)=>{const {commentThreadId:_0x21cd86,documentId:_0x33d231,context:_0x1a6eb0,attributes:_0x1c8b2c,resolvedAt:_0x156dde,resolvedBy:_0x26f26a,comments:_0x493754}=_0x533ef5;_0x496bac['getCommentThread'](_0x21cd86)||_0x496bac['addCommentThread']({'threadId':_0x21cd86,'channelId':_0x33d231,'comments':_0x493754?_0x493754['map'](dt):[],'context':_0x1a6eb0,'attributes':_0x1c8b2c,'resolvedAt':_0x156dde,'resolvedBy':_0x26f26a,'isFromAdapter':!0x0});}),this['listenTo'](_0x9fd76c,'commentThreadUpdated',(_0x6f0754,{commentThreadId:_0x4ceb24,documentId:_0x3a6eab,context:_0x486287,unlinkedAt:_0x5b8aa8,attributes:_0x1ae8e1})=>{_0x496bac['getCommentThread'](_0x4ceb24)&&_0x496bac['updateCommentThread']({'threadId':_0x4ceb24,'channelId':_0x3a6eab,'context':_0x486287,'unlinkedAt':_0x5b8aa8,'attributes':_0x1ae8e1,'isFromAdapter':!0x0});}),this['listenTo'](_0x9fd76c,'commentThreadResolved',(_0x25aa1b,{commentThreadId:_0xd36ddb,resolvedBy:_0x52748f,resolvedAt:_0x41b099})=>{const _0x28ec49=_0x496bac['getCommentThread'](_0xd36ddb);_0x28ec49&&_0x28ec49['resolve']({'resolvedBy':_0x52748f,'resolvedAt':_0x41b099,'isFromAdapter':!0x0});}),this['listenTo'](_0x9fd76c,'commentThreadReopened',(_0x32285d,{commentThreadId:_0x2028e2})=>{const _0x33b09e=_0x496bac['getCommentThread'](_0x2028e2);_0x33b09e&&_0x33b09e['reopen']({'isFromAdapter':!0x0});}),this['listenTo'](_0x9fd76c,'commentThreadRemoved',(_0x473158,{commentThreadId:_0xaddebf})=>{const _0x5b760d=_0x496bac['getCommentThread'](_0xaddebf);_0x5b760d&&_0x5b760d['remove']({'isFromAdapter':!0x0});}),this['listenTo'](_0x9fd76c,'commentAdded',(_0x3e2b65,_0x3986c3)=>{const _0x3fa505=_0x3986c3['commentThreadId'],_0x494a7a=_0x496bac['getCommentThread'](_0x3fa505);_0x494a7a&&_0x494a7a['addComment']({...dt(_0x3986c3),'isFromAdapter':!0x0});}),this['listenTo'](_0x9fd76c,'commentUpdated',(_0x5ec0ce,{commentThreadId:_0x5295bd,commentId:_0x31aefd,content:_0xda58d5,attributes:_0x2a7641})=>{const _0xdc5667=_0x496bac['getCommentThread'](_0x5295bd);if(_0xdc5667){const _0xda8afb=_0xdc5667['getComment'](_0x31aefd);_0xda8afb&&_0xda8afb['update']({'content':_0xda58d5,'attributes':_0x2a7641,'isFromAdapter':!0x0});}}),this['listenTo'](_0x9fd76c,'commentRemoved',(_0x5029b3,{commentThreadId:_0x146876,commentId:_0xd1b908})=>{const _0x194905=_0x496bac['getCommentThread'](_0x146876);if(_0x194905){const _0xde32cb=_0x194905['getComment'](_0xd1b908);_0xde32cb&&_0xde32cb['remove']({'isFromAdapter':!0x0});}}),this['listenTo'](_0x9fd76c,'disconnected',()=>{'connected'===this['context']['plugins']['get'](J)['connection']?.['state']&&(this['_services']['delete'](_0x32c545),this['stopListening'](_0x9fd76c));}),await this['_connectService'](_0x32c545);}destroy(){if(this['context']instanceof _0x46ea9b){const _0x4e6047=this['context']['config']['get']('collaboration.channelId');this['_services']['has'](_0x4e6047)&&this['_terminateService'](_0x4e6047);}}_terminateService(_0x2c3a0f){if(!this['_services']['has'](_0x2c3a0f))throw new _0x1cba4d('cloudservicescommentsadapter-disconnect-not-exist',null,{'channelId':_0x2c3a0f});this['_getService'](_0x2c3a0f)['disconnect'](),this['_services']['delete'](_0x2c3a0f);}async reconnect(){for(const _0x41c5e0 of this['_services']['keys']())await this['_connectService'](_0x41c5e0);if(this['context']instanceof _0x46ea9b){const _0x3345c9=this['context']['config']['get']('collaboration.channelId');if(this['_services']['has'](_0x3345c9)){const _0x526938=this['context']['plugins']['get'](Q);_0x526938['unregister'](_0x3345c9);const _0x3dd858=await this['_services']['get'](_0x3345c9)['getConnectedSessions']();_0x526938['register'](_0x3345c9,_0x3dd858);}}}async _connectService(_0x4f156c){const {connection:_0x2347a4}=this['context']['plugins']['get'](J),_0x1b4738=this['context']['plugins']['get'](_0x5ee2c7),_0x2fc9d0=await this['_services']['get'](_0x4f156c)['connect'](_0x2347a4);await this['_fetchMissingUsersForThreads'](_0x2fc9d0);const _0x5abbea=new Set(Array['from'](_0x1b4738['getCommentThreads']({'channelId':_0x4f156c}),_0x286024=>_0x286024['id']));for(const _0x5e1dd7 of _0x2fc9d0)_0x5e1dd7['deletedAt']||_0x5abbea['delete'](_0x5e1dd7['commentThreadId']);for(const _0x499242 of _0x5abbea)_0x1b4738['getCommentThread'](_0x499242)['remove']({'isFromAdapter':!0x0});for(const _0x28275d of _0x2fc9d0){let _0x5d9d93=_0x1b4738['getCommentThread'](_0x28275d['commentThreadId']);const {commentThreadId:_0x323574,context:_0x30cb2c,attributes:_0x100d56,resolvedBy:_0x3e9e3c,resolvedAt:_0x5b1648,unlinkedAt:_0x4a7908,deletedAt:_0x5a4fa7}=_0x28275d;if(_0x5a4fa7)continue;_0x5d9d93||(_0x5d9d93=_0x1b4738['addCommentThread']({'channelId':_0x4f156c,'threadId':_0x323574,'context':_0x30cb2c,'attributes':_0x100d56||{},'resolvedBy':_0x3e9e3c,'resolvedAt':_0x5b1648,'unlinkedAt':_0x4a7908,'isFromAdapter':!0x0}));const _0x37e888=new Set(Array['from'](_0x5d9d93['comments'],_0x15e5b2=>_0x15e5b2['id']));for(const _0x534b90 of _0x28275d['comments'])_0x37e888['delete'](_0x534b90['commentId']);for(const _0x15077b of _0x37e888)_0x5d9d93['getComment'](_0x15077b)['remove']({'isFromAdapter':!0x0});for(const _0x4615ad of _0x28275d['comments']){const _0x44285a=_0x5d9d93['getComment'](_0x4615ad['commentId']);_0x44285a?_0x44285a['content']!==_0x4615ad['content']&&_0x44285a['update']({'content':_0x4615ad['content'],'isFromAdapter':!0x0}):_0x5d9d93['addComment'](Object['assign'](dt(_0x4615ad),{'isFromAdapter':!0x0}));}}}_getService(_0x3197c7){if(!this['_services']['has'](_0x3197c7))throw new _0x1cba4d('cloudservicescommentsadapter-service-not-exist',null,{'channelId':_0x3197c7});return this['_services']['get'](_0x3197c7);}async _fetchMissingUsersForThreads(_0x5e89dc){const _0x597a9d=this['context']['plugins']['get'](_0x4857ba),{connection:_0x19379e}=this['context']['plugins']['get'](J),_0x316747=new Set();for(const {resolvedBy:_0x25de98,comments:_0x538666}of _0x5e89dc){_0x25de98&&!_0x597a9d['getUser'](_0x25de98)&&_0x316747['add'](_0x25de98);for(const {userId:_0x229c15}of _0x538666)_0x597a9d['getUser'](_0x229c15)||_0x316747['add'](_0x229c15);}if(0x0===_0x316747['size'])return;const _0x5e924b=await _0x11acf3['getMany'](_0x19379e,Array['from'](_0x316747));for(const _0x3d9d5f of _0x5e924b)_0x597a9d['getUser'](_0x3d9d5f['id'])||_0x597a9d['addUser'](_0x3d9d5f);}};async function ht(_0x19d3c0){if('404'!==_0x19d3c0['code'])throw _0x19d3c0;}function lt(_0x492a71){if((_0x181ef1=_0x492a71)['message']['startsWith']('cloud-services-internal-error:\x20Comments\x20Service\x20is\x20not\x20connected.')||_0x181ef1['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x181ef1['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.'))return new Promise(()=>{});var _0x181ef1;throw _0x492a71;}function dt(_0x5e448b){return{'threadId':_0x5e448b['commentThreadId'],'commentId':_0x5e448b['commentId'],'content':_0x5e448b['content'],'createdAt':_0x5e448b['createdAt'],'authorId':_0x5e448b['userId'],'attributes':_0x5e448b['attributes']||{}};}var ut=class CloudServicesTrackChangesAdapter extends _0x2b96e7{static ['TrackChangesService']=/* #__PURE__ -- @preserve */
|
|
27
|
+
((()=>_0x58ce33)());_bufferedRequests;_trackChangesService;static get requires(){return[at,_0x5d8e67,J];}static get['pluginName'](){return'CloudServicesTrackChangesAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x5cdeae){super(_0x5cdeae);const _0x1b0fde=this['editor']['config']['get']('collaboration.channelId');this['_bufferedRequests']=new Map(),this['_trackChangesService']=new CloudServicesTrackChangesAdapter['TrackChangesService'](_0x1b0fde);}init(){const _0x4be64b=this['editor']['plugins']['get'](J),_0x49a395=this['editor']['plugins']['get'](_0x5d8e67);return _0x49a395['adapter']={'getSuggestion':async _0x57e8a1=>{await this['_waitForServiceReady']();const _0x283778=await this['_trackChangesService']['get'](_0x57e8a1)['catch'](ft);return await this['_fetchMissingUsersForThreads']([_0x283778]),_0x283778;},'addSuggestion':async({id:_0x1eb1ab,type:_0x49666e,data:_0x1a7830,originalSuggestionId:_0x3badba,attributes:_0x4d0ab4})=>{await this['_waitForServiceReady']();const _0x2def0c={'id':_0x1eb1ab,'type':_0x49666e,'data':_0x1a7830,'originalSuggestionId':_0x3badba,'attributes':_0x4d0ab4},_0x5d9810=await this['_trackChangesService']['add'](_0x1eb1ab,_0x49666e,_0x1a7830,_0x3badba,_0x4d0ab4)['catch'](_0x53ab14=>{if(mt(_0x53ab14))return new Promise(_0x448e43=>{this['_bufferedRequests']['set'](_0x1eb1ab,{'resolve':_0x448e43,'suggestionData':_0x2def0c});});throw _0x53ab14;});return this['_bufferedRequests']['delete'](_0x1eb1ab),_0x5d9810;},'updateSuggestion':async(_0x300f24,_0x5cad25)=>{if(await this['_waitForServiceReady'](),'open'!==_0x5cad25['state'])return this['_trackChangesService']['update'](_0x300f24,_0x5cad25)['catch'](ft);}},this['listenTo'](this['_trackChangesService'],'suggestionUpdated',(_0x20711d,_0x505230)=>{_0x49a395['hasSuggestion'](_0x505230['id'])&&(_0x49a395['getSuggestion'](_0x505230['id'])['attributes']=_0x505230['attributes']);}),this['listenTo'](this['_trackChangesService'],'disconnected',()=>{'connected'===_0x4be64b['connection']?.['state']&&(_0x4be64b['removeFromReconnectionStack'](this),this['stopListening'](this['_trackChangesService']));}),this['_trackChangesService']['connect'](_0x4be64b['connection'])['then'](_0x399187=>(_0x4be64b['addToReconnectionStack'](this),this['_fetchMissingUsersForThreads'](_0x399187)['then'](()=>{for(const _0x1da3b3 of _0x399187){_0x49a395['addSuggestionData'](_0x1da3b3)['_saved']=!0x0;}})));}async reconnect(){const _0x18d2f5=this['editor']['plugins']['get']('TrackChangesEditing'),{connection:_0x3a9637}=this['editor']['plugins']['get'](J),_0x45d00b=await this['_trackChangesService']['connect'](_0x3a9637);await this['_fetchMissingUsersForThreads'](_0x45d00b);for(const {suggestionData:_0xd6b477,resolve:_0x2650a3}of this['_bufferedRequests']['values']()){let _0x196edc=_0x45d00b['find'](_0x2c9753=>_0x2c9753['id']===_0xd6b477['id']);_0x196edc||(_0x196edc=await this['_trackChangesService']['add'](_0xd6b477['id'],_0xd6b477['type'],_0xd6b477['data'],_0xd6b477['originalSuggestionId'])),_0x2650a3(_0x196edc);}for(const _0x499133 of _0x45d00b)_0x18d2f5['hasSuggestion'](_0x499133['id'])||_0x18d2f5['addSuggestionData'](_0x499133);}async _waitForServiceReady(){this['_trackChangesService']['isConnected']||await new Promise(_0x23d121=>{this['listenTo'](this['_trackChangesService'],'connected',_0x19a850=>{_0x19a850['off'](),_0x23d121();});});}async _fetchMissingUsersForThreads(_0x5d9d28){const _0x3d2f7f=this['editor']['plugins']['get'](_0x4857ba),{connection:_0x22fd6b}=this['editor']['plugins']['get'](J),_0x1ee263=new Set();for(const {authorId:_0x2127a5}of _0x5d9d28)_0x3d2f7f['getUser'](_0x2127a5)||_0x1ee263['add'](_0x2127a5);if(0x0===_0x1ee263['size'])return;const _0xfa296e=await _0x11acf3['getMany'](_0x22fd6b,Array['from'](_0x1ee263));for(const _0x34f132 of _0xfa296e)_0x3d2f7f['getUser'](_0x34f132['id'])||_0x3d2f7f['addUser'](_0x34f132);}};function ft(_0x142031){if(mt(_0x142031))return new Promise(()=>{});throw _0x142031;}function mt(_0x2655ba){return _0x2655ba['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0x2655ba['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}var pt=class extends _0x2b96e7{static get requires(){return[_0x1ea26e,at,ct,J];}static get['pluginName'](){return'RealTimeCollaborativeComments';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}init(){const _0x446873=this['editor']['plugins']['get'](J),_0x546eff=this['editor']['plugins']['get'](_0x360017),_0x3781ee=this['editor']['plugins']['get'](at);return this['editor']['data']['once']('ready',()=>{this['listenTo'](_0x446873,'change:state',(_0x13fa0e,_0x3749a2,_0x24589f)=>{_0x546eff['isThreadsLoadingPaused']='connected'!==_0x24589f;});}),this['listenTo'](_0x446873,'change:state',(_0x3460bd,_0x349359,_0x3ad233)=>{this['editor']['plugins']['get'](_0x5ee2c7)['switchReadOnly']('connected'!==_0x3ad233);}),_0x3781ee['_setUpService'](this['editor']['config']['get']('collaboration.channelId'));}destroy(){const _0x47fc53=this['editor']['plugins']['get'](at),_0x20cb6d=this['editor']['config']['get']('collaboration.channelId');_0x47fc53['_services']['has'](_0x20cb6d)&&_0x47fc53['_terminateService'](_0x20cb6d),super['destroy']();}},gt=class extends _0x2b96e7{static get requires(){return[pt,ut,_0x318f0b];}static get['pluginName'](){return'RealTimeCollaborativeTrackChanges';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}},wt=class CloudServicesRevisionHistoryAdapter extends _0x2b96e7{static RevisionHistoryService=/* #__PURE__ -- @preserve */
|
|
28
|
+
((()=>_0x15f775)());_lastRequestId;['_revisionTracker'];_revisionHistoryService;_oldOffset;static get requires(){return[J,it,_0x422c21,Q,_0x4857ba];}static get['pluginName'](){return'CloudServicesRevisionHistoryAdapter';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x12190a){super(_0x12190a);const _0x45b128=this['editor']['config']['get']('collaboration.channelId');this['_lastRequestId']=null,this['_revisionTracker']=this['editor']['plugins']['get']('RevisionTracker'),this['_revisionHistoryService']=new CloudServicesRevisionHistoryAdapter['RevisionHistoryService'](_0x45b128);}async init(){const _0x9682e6=this['editor']['plugins']['get'](it),_0x4c398e=_0x9682e6['serverHistory'],_0x588f25=this['editor']['plugins']['get'](J);this['_revisionTracker']['setSource']({'history':_0x4c398e,'getLatestVersion':()=>this['_getLatestVersion'](),'getCurrentRevisionId':()=>_0x9682e6['sessionId']});const _0x549b04=this['editor']['config']['get']('cloudServices.bundleVersion')||_0x3a3f2b,_0x1bb4c5=await _0x4f77ac['isBundleUploaded'](_0x588f25['connection'],_0x549b04);this['editor']['plugins']['get'](_0x422c21)['adapter']={'getRevision':async({revisionId:_0x2c5953})=>(await this['_waitForServiceReady'](),await this['_revisionHistoryService']['getRevision'](_0x2c5953)),'updateRevisions':async _0x25aecd=>{await this['_waitForServiceReady']();const _0x4f512b=this['_revisionTracker']['currentRevision'];if(_0x1bb4c5&&0x1===_0x25aecd['length']&&_0x25aecd[0x0]['id']===_0x4f512b['id'])return _0x25aecd;for(const _0x29a23e of _0x25aecd)_0x29a23e['id']===_0x4f512b['id']&&(_0x29a23e['isEmptyCurrent']=_0x29a23e['fromVersion']===_0x29a23e['toVersion']);return this['_revisionHistoryService']['updateRevisions'](_0x25aecd,this['_lastRequestId'])['then'](_0x1cfb9=>(this['_lastRequestId']=_0x1cfb9,_0x25aecd))['catch'](_0x31afe2=>{if(vt(_0x31afe2)||'400'===_0x31afe2['code']&&void 0x0!==_0x31afe2['data']['wrongRequestId']){for(const _0x473188 of _0x25aecd)this['_revisionTracker']['repository']['getRevision'](_0x473188['id'])&&this['_revisionTracker']['_bufferUpdate'](_0x473188['id'],_0x473188,!0x1);if(vt(_0x31afe2)&&'destroyed'!==this['editor']['state'])throw _0x31afe2;return _0x25aecd;}throw _0x31afe2;});}},this['listenTo'](this['_revisionHistoryService'],'revisionsUpdated',(_0x4d9e41,{revisionsData:_0x31d010,requestId:_0x53258c})=>{Math['max'](..._0x31d010['map'](_0x388b26=>_0x388b26['toVersion']))>this['_getLatestVersionFromServerOperations']()-0x1?this['_getLatestVersion']()['then'](()=>{this['_handleRevisionsUpdate'](_0x31d010,_0x53258c);}):this['_handleRevisionsUpdate'](_0x31d010,_0x53258c);}),this['set']('_isServiceConnected',!0x1),this['listenTo'](this['_revisionHistoryService'],'connected',()=>{this['_isServiceConnected']=!0x0;}),this['listenTo'](this['_revisionHistoryService'],'disconnected',()=>{this['_isServiceConnected']=!0x1,'connected'===_0x588f25['connection']?.['state']&&(_0x588f25['removeFromReconnectionStack'](this),this['stopListening'](this['_revisionHistoryService']));});const {revisions:_0x47f72c,requestId:_0x5492b6}=await this['_revisionHistoryService']['connect'](_0x588f25['connection']);_0x588f25['addToReconnectionStack'](this),this['_lastRequestId']=_0x5492b6,await this['_fetchMissingUsers'](_0x47f72c);for(const _0x2c5f98 of _0x47f72c)this['_revisionTracker']['addRevisionData'](_0x2c5f98);this['listenTo'](_0x9682e6,'change:_isConnected',(_0x270eb3,_0x45ef92,_0x3023c1)=>{_0x3023c1&&(this['_oldOffset']=_0x9682e6['_offset'],_0x270eb3['off']());}),this['_revisionTracker']['bind']('isEnabled')['to'](this,'_isServiceConnected');}async reconnect(){const _0xa42c4a=this['editor']['plugins']['get'](J),_0x5f53ff=this['editor']['plugins']['get'](it),_0x2ab015=async()=>{const _0x290328=this['_revisionTracker']['currentRevision'],_0x4600a2=_0x290328['id'],_0x582ff0=_0x4600a2!==_0x5f53ff['sessionId'];if(_0x582ff0){const _0x48b4fe=_0x5f53ff['_offset']-this['_oldOffset'],_0x37eef3=this['_getLatestVersionFromServerOperations']();if(this['_revisionTracker']['_revisionDataBuilder']['reInit'](),_0x290328['toVersion']+_0x48b4fe!==_0x37eef3){const _0x33f02c=_0x290328['fromVersion']+_0x48b4fe,_0x244613=this['editor']['plugins']['get'](_0x4857ba),_0x43cdaf=this['_revisionTracker']['buildRevisionData']({'revision':_0x290328,'from':_0x33f02c,'to':_0x37eef3});_0x43cdaf['id']=_0x290328['id'];const _0x17697f=_0x43cdaf['authorsIds']['map'](_0x3083f9=>_0x244613['getUser'](_0x3083f9));_0x290328['_update']({..._0x43cdaf,'authors':_0x17697f},!0x0),this['_revisionTracker']['_bufferUpdate'](_0x290328['id'],_0x43cdaf,!0x0);}this['_revisionTracker']['_startingVersion']=_0x37eef3,_0x290328['toVersion']!==_0x290328['fromVersion']||this['_revisionTracker']['_bufferedUpdates']['has'](_0x4600a2)||this['_revisionTracker']['repository']['_revisions']['remove'](_0x4600a2),this['_revisionTracker']['_createCurrentRevision'](_0x37eef3);}const {revisions:_0x42ab51,requestId:_0x156b3a}=await this['_revisionHistoryService']['reconnect'](_0xa42c4a['connection'],this['_lastRequestId']);_0x582ff0&&_0x42ab51['length']>0x0?_0x5f53ff['_handleReconnectionError']():(await this['_fetchMissingUsers'](_0x42ab51),this['_handleRevisionsUpdate'](_0x42ab51,_0x156b3a),this['_revisionTracker']['sendBufferedUpdates']());};return _0x5f53ff['_isConnected']?_0x2ab015():new Promise((_0x4b8ab8,_0x8417de)=>{_0x5f53ff['once']('change:_isConnected',()=>{_0x2ab015()['then'](_0x4b8ab8)['catch'](_0x8417de);});});}destroy(){super['destroy']();}async _waitForServiceReady(){this['_revisionHistoryService']['isConnected']||await new Promise(_0x335017=>{this['listenTo'](this['_revisionHistoryService'],'connected',_0x5cb928=>{_0x5cb928['off'](),_0x335017();});});}_getLatestVersionFromServerOperations(){const _0x3193a4=this['editor']['plugins']['get'](it)['serverHistory']['getOperations']()['reverse']();for(const _0x414c16 of _0x3193a4)if('marker'!==_0x414c16['type']||_0x414c16['affectsData'])return _0x414c16['baseVersion']+0x1;}_getLatestVersion(){const _0x5a80e5=this['editor']['plugins']['get'](it);return new Promise(_0xd0e871=>{_0x5a80e5['_isPendingUpdate']?_0x5a80e5['once']('change:_isPendingUpdate',()=>{_0xd0e871(this['_getLatestVersionFromServerOperations']());}):_0xd0e871(this['_getLatestVersionFromServerOperations']());});}_handleRevisionsUpdate(_0x558426,_0x3133){const _0x489b76=this['_revisionTracker']['repository'];this['_lastRequestId']=_0x3133;for(const _0x354312 of _0x558426){const _0x339aba=_0x489b76['getRevision'](_0x354312['id']);if(_0x339aba){if((_0x354312['fromVersion']||_0x354312['toVersion'])&&(_0x354312['diffData']=null),_0x339aba===this['_revisionTracker']['currentRevision']){const _0x5b266d=Math['max'](_0x339aba['toVersion'],_0x354312['toVersion']),_0x28cba4=Math['max'](_0x339aba['fromVersion'],_0x354312['fromVersion']);let _0x2c58a4;_0x339aba['toVersion']===_0x354312['toVersion']&&_0x339aba['fromVersion']===_0x354312['fromVersion']?(_0x2c58a4=!0x0,this['_preventResendingRevisionData'](_0x354312)):_0x354312['toVersion']===_0x5b266d&&_0x354312['fromVersion']===_0x28cba4?_0x2c58a4=!0x1:(_0x339aba['toVersion']===_0x5b266d&&_0x339aba['fromVersion']===_0x28cba4||this['_fixRevision']({'revision':_0x339aba,'from':_0x28cba4,'to':_0x5b266d}),_0x2c58a4=!0x0),_0x2c58a4&&(delete _0x354312['fromVersion'],delete _0x354312['toVersion'],delete _0x354312['diffData'],delete _0x354312['createdAt'],delete _0x354312['authorsIds']);}this['_revisionTracker']['setRevisionData'](_0x354312),this['_preventResendingRevisionData'](_0x354312);}else this['_revisionTracker']['addRevisionData'](_0x354312);}const _0x5252f3=_0x489b76['getRevisions']();_0x5252f3['reverse']();for(let _0x5a9c91=0x0;_0x5a9c91<_0x5252f3['length']-0x1;_0x5a9c91++){const _0x2adb0f=_0x5252f3[_0x5a9c91],_0x25980a=_0x5252f3[_0x5a9c91+0x1];if(_0x2adb0f['fromVersion']<_0x25980a['toVersion']){const _0x4b19b=_0x25980a['toVersion'],_0x37d95a=Math['max'](_0x4b19b,_0x2adb0f['toVersion']);this['_fixRevision']({'revision':_0x2adb0f,'from':_0x4b19b,'to':_0x37d95a});}}}['_fixRevision']({revision:_0x3620ae,from:_0x5acd4e,to:_0x3bb4b4}={}){const _0x112a06=this['editor']['plugins']['get'](_0x4857ba),_0x5201fd=this['_revisionTracker']['buildRevisionData']({'revision':_0x3620ae,'from':_0x5acd4e,'to':_0x3bb4b4});_0x5201fd['authors']=_0x5201fd['authorsIds']['map'](_0x34b99b=>_0x112a06['getUser'](_0x34b99b)),_0x3620ae['_update'](_0x5201fd);}_preventResendingRevisionData(_0x37f5ae){const _0x12067a={};_0x12067a['id']=_0x37f5ae['id'];for(const _0x1f2417 of Object['keys'](_0x37f5ae))'id'!==_0x1f2417&&(_0x12067a[_0x1f2417]=void 0x0);this['_revisionTracker']['_bufferUpdate'](_0x12067a['id'],_0x12067a,!0x0);}async _fetchMissingUsers(_0x157750){const _0x5bac06=this['editor']['plugins']['get'](_0x4857ba),{connection:_0x8f8e3}=this['editor']['plugins']['get'](J),_0xb22b5f=new Set();for(const _0x558d03 of _0x157750){for(const _0x14f162 of _0x558d03['authorsIds'])_0x1223fd(_0x14f162);_0x558d03['creatorId']&&_0x1223fd(_0x558d03['creatorId']);}if(0x0===_0xb22b5f['size'])return;const _0x4ef119=await _0x11acf3['getMany'](_0x8f8e3,Array['from'](_0xb22b5f));for(const _0x167644 of _0x4ef119)_0x5bac06['getUser'](_0x167644['id'])||_0x5bac06['addUser'](_0x167644);function _0x1223fd(_0x5d05ac){_0x5bac06['getUser'](_0x5d05ac)||_0xb22b5f['add'](_0x5d05ac);}}};function vt(_0xe7dc9a){return _0xe7dc9a['message']['startsWith']('cloud-services-internal-error:\x20Revision\x20History\x20Service\x20is\x20not\x20connected.')||_0xe7dc9a['message']['startsWith']('cloud-services-internal-error:\x20Not\x20connected.')||_0xe7dc9a['message']['startsWith']('cloud-services-internal-error:\x20Request\x20timeout.');}var _t=class extends _0x2b96e7{static get requires(){return[_0x422c21,wt,ct];}static get['pluginName'](){return'RealTimeCollaborativeRevisionHistory';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}},yt=class extends _0x1bdd03{_collapseAt;constructor(_0x397476,_0x575d84=0x6){super(_0x397476);const _0x1404fa=this['bindTemplate'];this['set']('isHidden',!0x0),this['set']('usersCount',0x0),this['_collapseAt']=_0x575d84,this['bind']('isHidden')['to'](this,'usersCount',_0x3788c3=>_0x3788c3<_0x575d84),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item',_0x1404fa['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':_0x1404fa['to']('usersCount',_0x34723c=>'+'+(_0x34723c-this['_collapseAt']+0x2)['toString']())}]}]}]});}},bt=class extends _0x1bdd03{items;keystrokes;constructor(_0xb1f413){super(_0xb1f413);const _0xc8ce28=this['bindTemplate'];this['items']=this['createCollection'](),this['keystrokes']=new _0x4cd84c(),this['set']({'hasPopup':!0x1,'isExpanded':!0x1}),this['setTemplate']({'tag':'div','attributes':{'aria-haspopup':_0xc8ce28['if']('hasPopup'),'aria-expanded':_0xc8ce28['to']('isExpanded',_0xc53284=>this['hasPopup']&&String(_0xc53284)),'aria-label':_0xc8ce28['to']('hasPopup',_0x367e96=>et(_0xb1f413,_0x367e96?'Collapsed\x20connected\x20users\x20list\x20(press\x20ENTER\x20to\x20open\x20it)':'Connected\x20users\x20list')),'role':'list','tabindex':_0xc8ce28['to']('hasPopup',_0x5f1b42=>!!_0x5f1b42&&0x0),'class':['ck','ck-presence-list__list']},'children':this['items']}),this['on']('change:hasPopup',(_0x2e5ac5,_0x16db95,_0x5ad3cd)=>{this['element']&&(_0x5ad3cd?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']);}},kt=class extends _0x1bdd03{counterView;inlineListView;constructor(_0x10e938,_0x27f9ab=0x6){super(_0x10e938);const _0x32a7e8=this['bindTemplate'];this['set']('isCollapsed',!0x0),this['counterView']=new yt(this['locale'],_0x27f9ab),this['inlineListView']=new bt(_0x10e938),this['inlineListView']['bind']('hasPopup')['to'](this,'isCollapsed'),this['listenTo'](this['inlineListView']['items'],'change',()=>{for(const _0x205f4c of this['inlineListView']['items'])_0x205f4c['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',_0x32a7e8['if']('isCollapsed','ck-presence-list--collapsed')]},'children':[this['inlineListView']]});}},It=class extends _0x1bdd03{listWrapperView;constructor(_0x288956,_0x45c6af){super(_0x288956),this['listWrapperView']=new St(_0x288956,_0x45c6af),this['setTemplate']({'tag':'div','attributes':{'tabindex':-0x1,'role':'application','class':['ck','ck-presence-list__dropdown-list'],'aria-label':et(_0x288956,'Connected\x20users\x20list\x20dropdown\x20menu')},'children':[this['listWrapperView']]});}},St=class extends _0x461b02{constructor(_0x22211f,_0x21a6a4){super(_0x22211f);const _0xef543e=this['bindTemplate'];this['set']('_isScrollable',!0x1),this['setTemplate']({'tag':_0x21a6a4?'div':'ul','attributes':{'class':['ck','ck-reset','ck-list','ck-presence-list__dropdown-list-wrapper',_0xef543e['if']('_isScrollable','ck-presence-list__dropdown-list-wrapper_scrollable')],'role':_0xef543e['to']('role'),'aria-label':_0xef543e['to']('ariaLabel'),'aria-labelledby':_0xef543e['to']('ariaLabelledBy')},'children':this['items']}),this['listenTo'](_0x327fcb['window'],'resize',()=>this['checkIfScrollable']()),this['items']['on']('change',()=>this['checkIfScrollable']());}['render'](){super['render'](),this['checkIfScrollable']();}['checkIfScrollable'](){const _0x1a895e=this['element'];_0x1a895e&&(this['_isScrollable']=Math['max'](_0x1a895e['scrollHeight'],_0x1a895e['clientHeight'])>0.8*window['innerHeight']);}},Tt=class extends _0x3fc642{['userView'];constructor(_0x130637,_0xe0d589,_0x124563){super(_0x130637);const _0x2a1598=this['bindTemplate'];this['userView']=new _0x30b579(_0x130637,_0xe0d589);const _0x1fd676={'tag':'li','attributes':{'class':['ck','ck-presence-list__dropdown-list-item'],'tabindex':-0x1,'role':'presentation','aria-label':_0xe0d589['name']},'children':[this['userView'],{'tag':'span','attributes':{'class':['ck','ck-user__full-name']},'children':[{'text':_0xe0d589['name']}]},{'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0xe0d589['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0xe0d589['color']['getColorVariable'](),'--ck-user-color-alpha':_0xe0d589['color']['getColorAlphaVariable']()},'aria-hidden':'true'}}]};_0x124563&&(_0x1fd676['tag']='button',_0x1fd676['on']={'click':_0x2a1598['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x1fd676);}['focus'](){this['element']['focus']();}},Ct=class extends _0x1bdd03{['userView'];['markerView'];constructor(_0x36bb9b,_0x18be7d,_0x4a3b85){super(_0x36bb9b);const _0x577e43=this['bindTemplate'];this['set']('isFocusable',!0x1),this['set']('hasTooltip',!0x0),this['set']('tooltipPosition',''),this['userView']=new _0x30b579(_0x36bb9b,_0x18be7d),this['markerView']=new At(_0x36bb9b,_0x18be7d);const _0x559385=new _0x2576ff(_0x36bb9b);_0x559385['template']['tag']='span',_0x559385['text']=_0x18be7d['name'];const _0x5dd60d={'tag':'div','attributes':{'class':['ck','ck-presence-list__list-item'],'role':'listitem','tabindex':_0x577e43['to']('isFocusable',_0xa08e26=>_0xa08e26?0x0:-0x1),'aria-labelledby':_0x559385['id'],'data-cke-tooltip-text':this['userView']['name'],'data-cke-tooltip-position':_0x577e43['to']('tooltipPosition'),'data-cke-tooltip-disabled':_0x577e43['to']('hasTooltip',_0x1950d5=>!_0x1950d5),'data-cke-tooltip-class':'ck-presence-list__list-item__tooltip'},'children':[this['userView'],this['markerView'],_0x559385]};_0x4a3b85&&(_0x5dd60d['tag']='button',_0x5dd60d['on']={'click':_0x577e43['to'](()=>this['fire']('execute'))}),this['setTemplate'](_0x5dd60d);}},At=class extends _0x1bdd03{constructor(_0x55702c,_0x26254d){super(_0x55702c),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-presence-list__marker',_0x26254d['color']['getBackgroundColorClass']()],'style':{'--ck-user-color':_0x26254d['color']['getColorVariable'](),'--ck-user-color-alpha':_0x26254d['color']['getColorAlphaVariable']()},'aria-hidden':'true'}});}};const Pt={'collapseAt':0x6,'displayMe':!0x0};var Ot=class extends _0x2470ea{currentDisplayedUsers;['balloonPanelView'];['view'];['presenceDropdownView'];_overlayHost=null;static get['pluginName'](){return'PresenceListUI';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}constructor(_0x3b3fe5){super(_0x3b3fe5),this['context']['config']['define']('presenceList',Pt);const _0x3a71b3=_0x3b3fe5['config']['get']('presenceList.collapseAt');if('number'!=typeof _0x3a71b3)throw new _0x1cba4d('presencelist-collapseat-invalid-format',this);if(_0x3a71b3<0x1)throw new _0x1cba4d('presencelist-collapseat-invalid-format',this);this['_allConnectedUsers']=this['context']['plugins']['get'](Q)['allConnectedUsers'],this['set']('usersCount',0x0),this['currentDisplayedUsers']=new _0x30b45c(),this['balloonPanelView']=new _0x92771e(),this['balloonPanelView']['class']='ck\x20ck-presence-list__balloon',this['view']=this['_createView'](),this['presenceDropdownView']=void 0x0;}static get requires(){return[Q];}init(){for(const _0x55de38 of this['_allConnectedUsers'])this['_handleUserAdd'](_0x55de38);this['listenTo'](this['_allConnectedUsers'],'add',(_0x5aac83,_0x4f0772)=>{this['_handleUserAdd'](_0x4f0772);}),this['listenTo'](this['_allConnectedUsers'],'remove',(_0x9a56e7,_0x4cff28)=>{this['_handleUserRemove'](_0x4cff28);});}_createView(){const _0xfb0b34=this['context'],_0x2ff383=new kt(this['context']['locale'],this['context']['config']['get']('presenceList.collapseAt')),_0x110a68=this['balloonPanelView'];if(!_0x3663b3(_0xfb0b34['config']['get']('presenceList.container')))throw new _0x1cba4d('presencelist-missing-container',this);_0x2ff383['counterView']['bind']('usersCount')['to'](this),_0x2ff383['bind']('isCollapsed')['to'](this,'usersCount',_0x5a05e1=>{const {collapseAt:_0x9bde70}=_0xfb0b34['config']['get']('presenceList'),_0x53583b=_0x5a05e1>=_0x9bde70;if(_0x53583b&&!_0x2ff383['inlineListView']['items']['find'](_0x53dbb2=>_0x53dbb2 instanceof yt)){const _0x48d0f9=this['context']['config']['get']('presenceList.collapseAt')-0x1;this['currentDisplayedUsers']['length']==_0x48d0f9&&this['currentDisplayedUsers']['length']>0x1&&this['currentDisplayedUsers']['remove'](this['currentDisplayedUsers']['length']-0x1),_0x2ff383['inlineListView']['items']['add'](_0x2ff383['counterView']);}return _0x53583b||this['hideDropdown'](),_0x53583b;}),_0x2ff383['inlineListView']['items']['bindTo'](this['currentDisplayedUsers'])['using'](_0x13ac4c=>{const _0x19b2f1=_0xfb0b34['config']['get']('presenceList'),_0x45ae07=new Ct(_0xfb0b34['locale'],_0x13ac4c,!!_0x19b2f1['onClick']);return _0x45ae07['bind']('hasTooltip')['to'](_0x2ff383,'isCollapsed',_0x2b1c6e=>!_0x2b1c6e),_0x45ae07['bind']('isFocusable')['to'](_0x2ff383,'isCollapsed',_0x47f810=>!_0x47f810),_0x19b2f1['onClick']&&this['listenTo'](_0x45ae07,'execute',()=>{this['view']['isCollapsed']||_0x19b2f1['onClick'](_0x13ac4c,_0x45ae07['element']);}),_0x45ae07;}),_0x2ff383['inlineListView']['keystrokes']['set']('Enter',(_0x392460,_0x49bf9d)=>{this['view']['isCollapsed']&&(this['showDropdown'](),this['presenceDropdownView']?.['listWrapperView']['focus'](),_0x49bf9d());}),_0x2ff383['render'](),_0x110a68['render'](),_0x2ff383['listenTo'](_0x2ff383['inlineListView']['element'],'mouseenter',()=>{this['view']['isCollapsed']&&this['showDropdown']();});const _0x4e2e4f=(_0xbbf262,_0x3fd55a)=>{this['_hideDropdownUnlessPointerInside'](_0x3fd55a);};return _0x2ff383['listenTo'](_0x2ff383['inlineListView']['element'],'mouseleave',_0x4e2e4f),_0x2ff383['listenTo'](_0x110a68['element'],'mouseleave',_0x4e2e4f),_0x4d491f({'emitter':_0x2ff383,'activator':()=>_0x110a68['isVisible'],'contextElements':[_0x110a68['element'],_0x2ff383['inlineListView']['element']],'callback':()=>this['hideDropdown']()}),_0xfb0b34['config']['get']('presenceList.container')['appendChild'](_0x2ff383['element']),this['_overlayHost']=new _0x52da97(this['context']['locale'],{'resolveMountTarget':()=>this['_resolveOverlayTarget'](),'resolveInlineContainer':()=>this['context']['config']['get']('presenceList.container')}),this['_overlayHost']['sync'](),this['_overlayHost']['bodyCollection']['add'](this['balloonPanelView']),_0x2ff383;}_resolveOverlayTarget(){const _0x5d3218=this['context']['config']['get']('presenceList.overlayContainer')||this['context']['config']['get']('ui.overlayContainer');if(_0x5d3218)return _0x5d3218;const _0x55d362=this['context']['config']['get']('presenceList.container');return _0x55d362?_0x445939(_0x55d362):null;}['_handleUserAdd'](_0x233a04){if(!this['context']['config']['get']('presenceList.displayMe')&&_0x233a04['isMe'])return;const _0x26fd14=this['context']['config']['get']('presenceList.collapseAt')-0x1;for(this['usersCount']++;this['currentDisplayedUsers']['length']>=_0x26fd14-(this['view']['isCollapsed']?0x1:0x0)&&this['currentDisplayedUsers']['length']>0x1;)this['currentDisplayedUsers']['remove'](0x1);const _0x3faa74=_0x233a04['isMe']?0x0:this['currentDisplayedUsers']['length'];this['currentDisplayedUsers']['add'](_0x233a04,_0x3faa74);}['_handleUserRemove'](_0x342fdd){this['usersCount']--;const {collapseAt:_0x36332b}=this['context']['config']['get']('presenceList'),_0x3cdf11=this['usersCount']>=_0x36332b;if(this['currentDisplayedUsers']['get'](_0x342fdd['id']))this['currentDisplayedUsers']['remove'](_0x342fdd['id']);else{if(_0x3cdf11&&this['currentDisplayedUsers']['length']+0x1===_0x36332b-0x1)return;}if(this['currentDisplayedUsers']['length']+(_0x3cdf11?0x1:0x0)<this['usersCount']){for(const _0x129af0 of Array['from'](this['_allConnectedUsers'])['reverse']())if(!this['currentDisplayedUsers']['get'](_0x129af0['id'])&&(this['currentDisplayedUsers']['add'](_0x129af0,Math['min'](this['currentDisplayedUsers']['length']-(_0x3cdf11?0x1:0x0),0x1)),this['currentDisplayedUsers']['length']+(_0x3cdf11?0x1:0x0)===_0x36332b-0x1))return;}}['showDropdown'](){if(this['presenceDropdownView'])return;const _0x3606be=this['context']['config']['get']('presenceList');this['presenceDropdownView']=new It(this['context']['locale'],!!_0x3606be['onClick']),this['view']['inlineListView']['isExpanded']=!0x0;const {listWrapperView:_0x4cac2a}=this['presenceDropdownView'];_0x4cac2a['items']['bindTo'](this['_allConnectedUsers'])['using'](_0x288a3b=>{if(!_0x3606be['displayMe']&&_0x288a3b['isMe'])return null;const _0xe2fe14=new Tt(this['context']['locale'],_0x288a3b,!!_0x3606be['onClick']);return _0x3606be['onClick']&&this['listenTo'](_0xe2fe14,'execute',()=>{_0x3606be['onClick'](_0x288a3b,_0xe2fe14['element']);}),_0xe2fe14;}),this['_overlayHost']?.['sync'](),this['balloonPanelView']['content']['add'](this['presenceDropdownView']);const _0x560a53=_0x92771e['generatePositions']({'heightOffset':0x3,'config':{'withArrow':!0x1}});this['balloonPanelView']['pin']({'target':this['view']['inlineListView']['element'],'positions':[_0x560a53['southArrowNorth'],_0x560a53['southArrowNorthMiddleWest'],_0x560a53['southArrowNorthMiddleEast'],_0x560a53['southArrowNorthWest'],_0x560a53['southArrowNorthEast'],_0x560a53['northArrowSouth'],_0x560a53['northArrowSouthMiddleWest'],_0x560a53['northArrowSouthMiddleEast'],_0x560a53['northArrowSouthWest'],_0x560a53['northArrowSouthEast'],_0x560a53['viewportStickyNorth']]}),_0x4cac2a['focus'](),_0x4cac2a['checkIfScrollable']();const _0x4ce5b8=(_0x4f2035,_0xf6353)=>{this['hideDropdown'](),this['view']['inlineListView']['focus'](),_0xf6353();};_0x4cac2a['keystrokes']['set']('Esc',_0x4ce5b8),_0x4cac2a['keystrokes']['set']('Shift+Tab',_0x4ce5b8),_0x4cac2a['keystrokes']['set']('Tab',()=>{this['view']['inlineListView']['focus'](),this['hideDropdown']();}),_0x4cac2a['focusTracker']['add'](this['view']['element']),_0x4cac2a['focusTracker']['on']('change:isFocused',(_0x45550e,_0x352a18,_0x817355)=>{_0x817355||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);}_hideDropdownUnlessPointerInside(_0x483e9e){this['presenceDropdownView']&&([this['view']['inlineListView']['element'],this['balloonPanelView']['element']]['some'](_0x156215=>_0x149d83(_0x156215,_0x483e9e))||this['hideDropdown']());}destroy(){super['destroy'](),this['view']&&this['view']['isRendered']&&this['view']['destroy'](),this['_overlayHost']&&(this['_overlayHost']['destroy'](),this['_overlayHost']=null);}},xt=class extends _0x2470ea{static get requires(){return[Q,Ot];}static get['pluginName'](){return'PresenceList';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}};export{at as CloudServicesCommentsAdapter,wt as CloudServicesRevisionHistoryAdapter,ut as CloudServicesTrackChangesAdapter,xt as PresenceList,Ot as PresenceListUI,it as RealTimeCollaborationClient,pt as RealTimeCollaborativeComments,ct as RealTimeCollaborativeEditing,_t as RealTimeCollaborativeRevisionHistory,gt as RealTimeCollaborativeTrackChanges,Q as Sessions,J as WebSocketGateway};
|