@ckeditor/ckeditor5-collaboration-core
Version:
Base utilities used by CKEditor 5 collaboration features to support multiple users working together in a rich text editor.
23 lines • 22.6 kB
JavaScript
/*
* Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
*
*
*
*
* +---------------------------------------------------------------------------------+
* | |
* | Hello stranger! |
* | |
* | |
* | What you're currently looking at is the source code of a legally protected, |
* | proprietary software. Any attempts to deobfuscate / disassemble this code |
* | are forbidden and will result in legal consequences. |
* | |
* | |
* +---------------------------------------------------------------------------------+
*
*
*
*
*/
import{ContextPlugin as _0x49e3c0,Editor as _0x77daae}from'@ckeditor/ckeditor5-core/dist/index.js';import{CKEditorError as _0x402de1,Collection as _0x1b5d4b,uid as _0x518b7e,first as _0xdf8c6a,FocusTracker as _0x4e9696,KeystrokeHandler as _0x3ee782}from'@ckeditor/ckeditor5-utils/dist/index.js';import{View as _0x304fde,IconView as _0x4ee74f,ButtonView as _0x3fc8d8,DropdownButtonView as _0x4ced9d,FocusCycler as _0x403dae,isViewWithFocusCycler as _0x499f58}from'@ckeditor/ckeditor5-ui/dist/index.js';import{IconNotification as _0x5d5109,IconCheck as _0x5ade09,IconCancel as _0x38f513}from'@ckeditor/ckeditor5-icons/dist/index.js';import{DateTime as _0x445972}from'luxon';class n extends _0x49e3c0{static get['pluginName'](){return'Permissions';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['setPermissions'](_0x36adae,_0x1cc3d8){let _0x343e12;if(_0x1cc3d8||(_0x1cc3d8=this['context']['config']['get']('collaboration.channelId')),this['context']['config']['get']('collaboration.channelId')==_0x1cc3d8?_0x343e12=this['context']:'editors'in this['context']&&this['context']['editors']&&(_0x343e12=this['context']['editors']['find'](_0x516bd6=>_0x516bd6['config']['get']('collaboration.channelId')==_0x1cc3d8)),!_0x343e12)throw new _0x402de1('permissions-set-permissions-invalid-channel-id',null);const _0xa1fdc2=_0x343e12['plugins'],_0x1a6b36=_0xa1fdc2['has']('CommentsRepository')?_0xa1fdc2['get']('CommentsRepository'):void 0x0,_0xc636b2=_0xa1fdc2['has']('CommentsOnly')&&_0xa1fdc2['get']('CommentsOnly'),_0xf85ea3=_0x36adae['includes']('document:write'),_0x45b559=_0x36adae['includes']('comment:modify_all'),_0x54c479=_0x36adae['includes']('comment:admin'),_0x28e016=_0x36adae['includes']('comment:write'),_0x52baff=_0x28e016||_0x54c479,_0xe73c03=_0x52baff||_0x45b559,_0x5e1236=_0xf85ea3||_0x52baff;(_0xc636b2&&(_0xc636b2['isEnabled']=!_0xf85ea3&&_0xe73c03),_0x343e12 instanceof _0x77daae)&&(!(_0xf85ea3||_0xe73c03&&_0x1a6b36)?_0x343e12['enableReadOnlyMode']('no-permissions'):_0x343e12['disableReadOnlyMode']('no-permissions'));if(_0x1a6b36){_0x1a6b36['setPermissions']({'admin':_0x54c479,'modifyAll':_0x45b559,'write':_0x28e016,'resolve':_0x5e1236},_0x1cc3d8);const _0xeff1f3=_0x343e12 instanceof _0x77daae&&_0x343e12['commands']['get']('addCommentThread');_0xeff1f3&&(_0x52baff?_0xeff1f3['clearForceDisabled']('noPermissions'):_0xeff1f3['forceDisabled']('noPermissions'));}}}function o(_0x4dc48c,_0xfa0c46){const t=_0x4dc48c['t'];switch(_0xfa0c46){case'Anonymous':return t('Anonymous');case'Yes':return t('Yes');case'No':return t('No');case'Are\x20you\x20sure?':return t('Are\x20you\x20sure?');case'Today':return t('Today');case'Yesterday':return t('Yesterday');case'Last':return t('Last');case'Monday':return t('Monday');case'Tuesday':return t('Tuesday');case'Wednesday':return t('Wednesday');case'Thursday':return t('Thursday');case'Friday':return t('Friday');case'Saturday':return t('Saturday');case'Sunday':return t('Sunday');default:return'';}}class u extends _0x49e3c0{['users'];['_lastColor'];['_myId'];['_locale'];static get['pluginName'](){return'Users';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}static get['requires'](){return[n];}constructor(_0x53132e){super(_0x53132e),this['context']['config']['define']('users.anonymousUserId','anonymous-user'),this['context']['config']['define']('users.colorsCount',0x8),this['users']=new _0x1b5d4b(),this['_locale']=_0x53132e['locale'],this['_lastColor']=0x0,this['_myId']=null,this['decorate']('getOperationAuthor');}['init'](){this['_addAnonymousUser']();}get['me'](){return null==this['_myId']?null:this['getUser'](this['_myId']);}['addUser']({id:_0x268e7d,name:_0x52af58,..._0x2f516d}){if(!_0x268e7d||'string'!=typeof _0x268e7d)throw new _0x402de1('users-add-invalid-id');if(this['users']['has'](_0x268e7d))throw new _0x402de1('users-add-duplicated-id',null,{'id':_0x268e7d});const _0x4c31a0=this['context']['config']['get']('users.getInitialsCallback'),_0x28b047={..._0x2f516d,'id':_0x268e7d,'name':h(this['_locale'],_0x52af58),'color':this['_getNextColor']()};_0x28b047['name']=h(this['_locale'],_0x28b047['name']);const _0x5ca571=new P(_0x28b047,_0x4c31a0);return this['users']['add'](_0x5ca571),_0x5ca571;}['getUser'](_0x32ddb3){return this['users']['get'](_0x32ddb3);}['useAnonymousUser'](){const _0xc931a3=this['context']['config']['get']('users.anonymousUserId');this['_myId']||this['defineMe'](_0xc931a3);}['defineMe'](_0x3acbb1){if(this['_myId'])throw new _0x402de1('users-me-already-defined',null);const _0xe7d7c6=this['getUser'](_0x3acbb1);if(!_0xe7d7c6)throw new _0x402de1('users-me-missing-user',null);this['_myId']=_0x3acbb1,_0xe7d7c6['_isMe']=!0x0;}['getOperationAuthor'](){return this['me'];}['_getNextColor'](){const _0x5353d2=this['context']['config']['get']('users.colorsCount');return this['_lastColor']>=_0x5353d2&&(this['_lastColor']=0x0),new l(this['_lastColor']++);}['_addAnonymousUser'](){const _0x2a538b=this['context']['config']['get']('users.anonymousUserId');this['addUser']({'id':_0x2a538b,'name':o(this['_locale'],'Anonymous')})['_isAnonymous']=!0x0;}}class P{['id'];['color'];['name'];['initials'];['avatar'];['_isMe'];['_isAnonymous'];constructor(_0xec8e64,_0xc4eb71){this['id']=_0xec8e64['id'],this['color']=_0xec8e64['color'],this['name']=_0xec8e64['name'],this['initials']=_0xc4eb71?_0xc4eb71(this['name']):this['_computeInitials'](),this['avatar']=_0xec8e64['avatar'],this['_isAnonymous']=!0x1,this['_isMe']=!0x1;}get['isAnonymous'](){return this['_isAnonymous'];}get['isMe'](){return this['_isMe'];}['_computeInitials'](){const _0x4f6b2b=this['name']['split']('\x20')['filter'](_0x4dd9d8=>/^[\p{Letter}]/u['test'](_0x4dd9d8));return 0x1===_0x4f6b2b['length']?this['_getInitial'](_0x4f6b2b[0x0]):0x0===_0x4f6b2b['length']?this['_getInitial'](this['name']):this['_getInitial'](_0x4f6b2b[0x0])+this['_getInitial'](_0x4f6b2b[_0x4f6b2b['length']-0x1]);}['_getInitial'](_0x1da169){return String['fromCodePoint'](_0x1da169['codePointAt'](0x0))['toUpperCase']();}}function h(_0x4dafae,_0x4ea4ae=''){return''==(_0x4ea4ae=_0x4ea4ae['trim']())?o(_0x4dafae,'Anonymous'):_0x4ea4ae;}class l{['_id'];constructor(_0x4043cd){this['_id']=_0x4043cd;}['getBackgroundColorClass'](){return'ck-user__bg-color--'+this['_id'];}['getSelectionClass'](){return'ck-user__selection--'+this['_id'];}['getMarkerClass'](){return'ck-user__marker--'+this['_id'];}}class F extends _0x304fde{['name'];['notificationView'];constructor(_0x35d18a,_0x197171,_0xf2267f){super(_0x35d18a),this['name']=_0x197171['name'],this['notificationView']=null;const _0x4410fb=['ck','ck-user'],_0x286f3c=['ck','ck-user__img'];if(_0x197171['isAnonymous']&&_0x286f3c['push']('ck-user__anonymous'),!_0x197171['isAnonymous']&&_0x197171['isMe']&&_0x4410fb['push']('ck-user_me'),_0x197171['avatar']&&_0x286f3c['push']('ck-user__avatar'),_0xf2267f){const _0x49f767=new _0x4ee74f();_0x49f767['extendTemplate']({'attributes':{'class':['ck-user__icon']}}),_0x49f767['content']=_0x5d5109,this['notificationView']={'tag':'div','attributes':{'class':['ck','ck-user__notification'],'data-cke-tooltip-position':'n','data-cke-tooltip-text':_0xf2267f},'children':[_0x49f767]};}const _0xa285dc=[{'tag':'div','attributes':{'class':_0x286f3c,'style':{'background-image':_0x197171['avatar']?'url(\x27'+_0x197171['avatar']+'\x27)':''}}},{'tag':'div','attributes':{'class':_0x197171['avatar']?'ck\x20ck-user__name\x20ck-user__name--hidden':'ck\x20ck-user__name','aria-label':_0x197171['name']},'children':[{'text':_0x197171['initials']}]}];this['notificationView']&&_0xa285dc['push'](this['notificationView']),this['setTemplate']({'tag':'div','attributes':{'class':_0x4410fb,'data-user-id':_0x197171['id']},'children':_0xa285dc});}}class H extends _0x304fde{['id'];constructor(_0xbf27bf,_0x11682e){super(_0xbf27bf),this['id']='ck-aria-description-'+_0x518b7e(),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-aria-description'],'id':this['id']},'children':[{'text':_0x11682e}]});}}class U extends _0x3fc8d8{['render'](){super['render'](),I(this);}}class Y extends _0x4ced9d{['render'](){super['render'](),I(this);}}function I(_0x3bf2af){_0x3bf2af['listenTo'](_0x3bf2af['element'],'mousedown',(_0x2ac8fc,_0x23ee58)=>{_0x23ee58['stopPropagation'](),_0x23ee58['preventDefault']();}),_0x3bf2af['listenTo'](_0x3bf2af['element'],'mouseup',()=>{_0x3bf2af['element']['focus']();});}function E(_0x111a5e={},_0x551cb5){if(void 0x0!==_0x111a5e['dateTimeFormat']&&'function'!=typeof _0x111a5e['dateTimeFormat'])throw new _0x402de1('invalid-date-time-format');return _0x5e402d=>{const _0x538172='string'==typeof _0x5e402d?_0x445972['fromISO'](_0x5e402d):_0x445972['fromJSDate'](_0x5e402d),_0x142600=_0x445972['now'](),_0xbe8b90=Math['floor'](_0x142600['diff'](_0x538172,'days')['days']);return _0x111a5e['dateTimeFormat']?_0x111a5e['dateTimeFormat'](_0x538172['toJSDate'](),_0x551cb5&&_0x551cb5['t']?_0x551cb5['t']:void 0x0):0x0===_0xbe8b90?_0x551cb5?o(_0x551cb5,'Today')+'\x20'+_0x538172['toFormat']('hh:mma'):_0x538172['toFormat']('\x27Today\x27\x20hh:mma'):0x1===_0xbe8b90?_0x551cb5?o(_0x551cb5,'Yesterday')+'\x20'+_0x538172['toFormat']('hh:mma'):_0x538172['toFormat']('\x27Yesterday\x27\x20hh:mma'):_0xbe8b90<0x7?_0x551cb5?o(_0x551cb5,'Last')+'\x20'+o(_0x551cb5,_0x538172['toFormat']('EEEE'))+'\x20'+_0x538172['toFormat']('hh:mma'):_0x538172['toFormat']('\x27Last\x27\x20EEEE\x20hh:mma'):_0x538172['toFormat']('LL-dd-yyyy\x20hh:mma');};}function A(_0x1d3c06,_0x3e8d69){const _0xb74084=_0x1d3c06['mapper']['markerNameToElements'](_0x3e8d69['name']);if(!_0xb74084)return null;const _0x354441=_0xdf8c6a(_0xb74084['values']());return _0x1d3c06['view']['domConverter']['mapViewToDom'](_0x354441)||null;}function R(_0x3f7af9,_0x3c88f1){if(0x0===_0x3c88f1['length'])return null;const _0x150233=[],_0x4ed135=_0x3f7af9['view']['domConverter'];for(const _0x1e079c of _0x3c88f1){const _0x358938=_0x3f7af9['mapper']['markerNameToElements'](_0x1e079c['name']);if(!_0x358938)continue;const _0x57bcc9=Array['from'](_0x358938)['map'](_0x39418e=>_0x4ed135['mapViewToDom'](_0x39418e))['filter'](_0x3083d0=>!!_0x3083d0);_0x150233['push'](..._0x57bcc9);}if(0x0===_0x150233['length'])return null;const _0x286675=[];for(const _0x3d3146 of _0x150233){const _0x1b2fff=_0x3d3146['getClientRects']()['item'](0x0);_0x1b2fff&&_0x286675['push']({'x':_0x1b2fff['x'],'y':_0x1b2fff['y'],'domElement':_0x3d3146});}return 0x0===_0x286675['length']?null:(_0x286675['sort']((_0x2a3273,_0x27a4a5)=>_0x2a3273['y']-_0x27a4a5['y']||_0x2a3273['x']-_0x27a4a5['x']),_0x286675['map'](_0x1e68aa=>_0x1e68aa['domElement']));}function Z(_0xd7d8a4,{limit:_0x7a5b3b,suffix:_0x278c61='...'}){const _0x298930=[];let _0x33ce6a=0x0;const _0x1f11ec=_0xd7d8a4['replace'](/</g,'\x0a<')['replace'](/>/g,'>\x0a')['replace'](/^\n/g,'')['replace'](/\n$/g,'')['split']('\x0a');for(let _0x5a0395=0x0;_0x5a0395<_0x1f11ec['length'];_0x5a0395++){let _0x46311f=_0x1f11ec[_0x5a0395];const _0x3e2d20=$(_0x46311f);if(_0x46311f['startsWith']('<')){if(_0x33ce6a>=_0x7a5b3b){const _0x58be5c=_0x46311f['match'](/[a-zA-Z]+/);if(!_0x58be5c){_0x1f11ec[_0x5a0395]='';continue;}const _0x61904d=_0x58be5c[0x0];_0x46311f['startsWith']('</')?(_0x298930['length']&&(_0x46311f=''),_0x298930['pop']()):(_0x298930['push'](_0x61904d),_0x46311f='');}}else{if(_0x33ce6a>=_0x7a5b3b)_0x46311f='';else{if(_0x33ce6a+_0x3e2d20['length']>=_0x7a5b3b){let _0x17fc40=_0x7a5b3b-_0x33ce6a;if('\x20'===_0x3e2d20[_0x17fc40-0x1])_0x17fc40--;else{const _0x2154af=_0x3e2d20['slice'](_0x17fc40)['indexOf']('\x20');-0x1!==_0x2154af?_0x17fc40+=_0x2154af:_0x17fc40=_0x46311f['length'];}_0x46311f=_0x3e2d20['slice'](0x0,_0x17fc40)['join']('')+_0x278c61,_0x33ce6a=_0x7a5b3b;}else _0x33ce6a+=_0x3e2d20['length'];}}_0x1f11ec[_0x5a0395]=_0x46311f;}return _0x1f11ec['join']('\x0a')['replace'](/\n/g,'');}function $(_0x126172){const _0x5484a6=[];for(let _0x3d314e=0x0;_0x3d314e<_0x126172['length'];_0x3d314e++){const _0x291572=_0x126172['substring'](_0x3d314e)['match'](/^&[a-z0-9#]+;/);if(_0x291572){const _0x30998d=_0x291572[0x0];_0x5484a6['push'](_0x30998d),_0x3d314e+=_0x30998d['length']-0x1;}else _0x5484a6['push'](_0x126172[_0x3d314e]);}return _0x5484a6;}class m extends _0x304fde{['submitView'];['cancelView'];['focusTracker'];['keystrokes'];['focusCycler'];['focusables'];constructor(_0x3f8671){super(_0x3f8671);const _0x208d4b=this['bindTemplate'];this['set']('message',o(_0x3f8671,'Are\x20you\x20sure?')),this['submitView']=this['_createButtonView'](_0x3f8671,o(_0x3f8671,'Yes'),_0x5ade09,'submit'),this['cancelView']=this['_createButtonView'](_0x3f8671,o(_0x3f8671,'No'),_0x38f513,'cancel'),this['focusables']=this['createCollection']([this['submitView'],this['cancelView']]),this['focusTracker']=new _0x4e9696(),this['keystrokes']=new _0x3ee782(),this['focusCycler']=new _0x403dae({'focusables':this['focusables'],'focusTracker':this['focusTracker'],'keystrokeHandler':this['keystrokes'],'actions':{'focusPrevious':'shift+tab','focusNext':'tab'}}),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-thread__remove-confirm'],'tabindex':-0x1,'role':'alertdialog'},'children':[{'tag':'div','attributes':{'class':'ck-thread__remove-confirm-inner','role':'presentation'},'children':[{'tag':'p','children':[{'text':_0x208d4b['to']('message')}]},{'tag':'div','attributes':{'class':'ck-thread__remove-confirm-actions'},'children':[this['submitView'],this['cancelView']]}]}]});}['render'](){super['render'](),this['_setupKeyboardNavigation']();}['focus'](){this['cancelView']['element']['focus']({'preventScroll':!0x0});}['_createButtonView'](_0x440a64,_0x24ed82,_0x35d7d2,_0x5b22df){const _0x2e50da=new _0x3fc8d8(_0x440a64);return _0x2e50da['label']=_0x24ed82,_0x2e50da['icon']=_0x35d7d2,_0x2e50da['extendTemplate']({'attributes':{'class':'ck-thread__remove-confirm-'+_0x5b22df}}),_0x2e50da['on']('execute',()=>this['fire'](_0x5b22df)),_0x2e50da;}['_setupKeyboardNavigation'](){this['focusables']['forEach'](_0x171a1f=>{this['keystrokes']['listenTo'](_0x171a1f['element']),this['focusTracker']['add'](_0x171a1f['element']);}),this['keystrokes']['set']('esc',(_0x47fba3,_0x1772e2)=>{this['fire']('cancel'),_0x1772e2();});}}function c(_0x10ddc3){return class extends _0x10ddc3{['showConfirm'](_0x15133b,_0x2f47fd){return this['confirmView']=new m(this['locale']),this['confirmView']['render'](),this['confirmView']['message']=_0x15133b,this['confirmView']['once']('cancel',()=>{this['_removeConfirm']();}),this['confirmView']['once']('submit',()=>{this['_removeConfirm']();}),_0x2f47fd['appendChild'](this['confirmView']['element']),this['registerChild'](this['confirmView']),this['confirmView']['focus'](),this['set']('isConfirm',!0x0),new Promise(_0x4b307f=>this['confirmView']['on']('submit',_0x4b307f));}['cancelConfirm'](){this['isConfirm']&&this['confirmView']['fire']('cancel');}['_removeConfirm'](){this['element']&&this['confirmView']&&this['confirmView']['element']&&(this['element']['focus'](),this['confirmView']['element']['remove'](),this['deregisterChild'](this['confirmView']),this['isConfirm']=!0x1,this['fire']('removeConfirm'),this['confirmView']['destroy'](),this['confirmView']=void 0x0);}};}function j(_0x55cdba){let _0x11a447=0x0,_0x3d812b=0x0;for(const _0x39b06a of M(_0x55cdba))_0x11a447=(_0x11a447<<0x5)-_0x11a447+_0x39b06a,_0x11a447&=_0x11a447,[_0x11a447,_0x3d812b]=[_0x3d812b,_0x11a447];return w(_0x11a447)+w(_0x3d812b);}function*g(_0x376008){null==_0x376008||null==_0x376008?yield 0x12b9b0a1:0x0===_0x376008||!0x1===_0x376008?yield 0x0:0x1===_0x376008||0x1==_0x376008?yield 0x1:Array['isArray'](_0x376008)?yield*function*(_0x3504d7){for(const _0x4529ad of _0x3504d7)yield*g(_0x4529ad);}(_0x376008):'object'==typeof _0x376008?yield*M(_0x376008):'string'==typeof _0x376008?yield*O(_0x376008):'number'==typeof _0x376008&&(yield _0x376008);}function*M(_0x7e9e3d){if(yield q('{'),_0x7e9e3d){const _0x400b94=Object['keys'](_0x7e9e3d)['sort']();for(const _0x5f5157 of _0x400b94){yield*O(_0x5f5157),yield q(':');const _0x7fec3b=_0x7e9e3d[_0x5f5157];yield*g(_0x7fec3b);}}yield q('}');}function*O(_0x46410a){yield q('\x22');for(const _0x562cc0 of _0x46410a)yield q(_0x562cc0);yield q('\x22');}function q(_0x1d4d54){return _0x1d4d54['charCodeAt'](0x0);}function w(_0xa30c06){return(_0xa30c06*=Math['sign'](_0xa30c06))['toString'](0x24);}const W=['initialData','context','toolbar','rootsAttributes'],D=['WebSocketGateway','RevisionTracker','Autosave','WordCount','DocumentOutline','WProofreader'];function S(_0x2abf80,_0x291515,_0x55ba3c,_0x333fa3=[]){const _0x25b9ff='string'==typeof _0x2abf80?_0x55ba3c['get'](_0x2abf80)['constructor']:_0x2abf80['prototype']['constructor'];if(_0x291515['has'](_0x25b9ff))return _0x291515['get'](_0x25b9ff);_0x291515['set'](_0x25b9ff,!0x0);const _0x169894=[...D,..._0x333fa3]['map'](_0x5a2167=>{if(_0x55ba3c['has'](_0x5a2167))return _0x55ba3c['get'](_0x5a2167)['constructor'];})['filter'](_0x2d0f37=>_0x2d0f37);if(_0x25b9ff&&_0x169894['includes'](_0x25b9ff))return _0x291515['set'](_0x25b9ff,!0x1),!0x1;if(!_0x25b9ff['requires'])return _0x291515['set'](_0x25b9ff,!0x0),!0x0;const _0x5b8c05=_0x25b9ff['requires']['every'](_0x5997f2=>S(_0x5997f2,_0x291515,_0x55ba3c,_0x333fa3));return _0x291515['set'](_0x25b9ff,_0x5b8c05),_0x5b8c05;}function C(_0x421566,_0x2ca927){const _0x3fbb54={};for(const _0x377e6e of _0x421566['config']['names']())W['includes'](_0x377e6e)||(_0x3fbb54[_0x377e6e]=_0x421566['config']['get'](_0x377e6e));const _0xcd33e1=_0x3fbb54['plugins']||[],_0x37694f=_0x421566['constructor']['builtinPlugins']||[],_0x46c8d1=_0xcd33e1['length']?_0xcd33e1:_0x37694f,_0x4a3c4e=_0x3fbb54['extraPlugins']||[];delete _0x3fbb54['extraPlugins'];const _0x3a7c6a=_0x3fbb54['removePlugins']||[];delete _0x3fbb54['removePlugins'];const _0x31b324=_0x421566['_context']['config']['get']('plugins')||[],_0x4bed4b=_0x46c8d1['concat'](_0x4a3c4e)['concat'](_0x31b324)['map'](_0x115e2f=>'string'==typeof _0x115e2f?_0x37694f['find'](_0x31711c=>_0x31711c['pluginName']==_0x115e2f):_0x115e2f)['filter'](_0x55b7ce=>!_0x3a7c6a['includes'](_0x55b7ce)&&!_0x3a7c6a['includes'](_0x55b7ce['pluginName'])),_0x509b29=Array['from'](new Set(_0x4bed4b)),_0x40b67d=new Map();return _0x3fbb54['plugins']=_0x509b29['filter'](_0x1ea047=>S(_0x1ea047,_0x40b67d,_0x421566['plugins'],_0x2ca927)),_0x3fbb54;}function z(_0x2996c8,_0x386d3d){const _0x50ca31=[];_0x2996c8['document']['selection']['on']('change:range',()=>{const _0x30b4fc=function(_0x402761,_0x4f13d8){const _0x6f2078=[];for(const _0x4dd2eb of _0x402761['markers']){const _0x22dd33=_0x4dd2eb['getRange']();(_0x22dd33['containsPosition'](_0x4f13d8)||_0x22dd33['start']['isEqual'](_0x4f13d8)||_0x22dd33['end']['isEqual'](_0x4f13d8))&&_0x6f2078['push'](_0x4dd2eb);}return _0x6f2078;}(_0x2996c8,_0x2996c8['document']['selection']['focus']),_0x4eb7f0=[],_0x4cc391=[],_0x5de0d0=[];for(const _0x3f507e of _0x50ca31)_0x30b4fc['includes'](_0x3f507e)||_0x4eb7f0['push'](_0x3f507e);for(const _0x23eaaa of _0x30b4fc)_0x50ca31['includes'](_0x23eaaa)||_0x4cc391['push'](_0x23eaaa),_0x5de0d0['push'](_0x23eaaa);(_0x4eb7f0['length']||_0x4cc391['length'])&&_0x386d3d({'left':_0x4eb7f0,'entered':_0x4cc391}),_0x50ca31['length']=0x0,_0x50ca31['push'](..._0x5de0d0);});}const J='Ctrl+Shift+E';function T(_0x3f58b0,_0x2abcdf){const _0x1fd89c=_0x3f58b0['element'];_0x3f58b0['keystrokes']['listenTo'](_0x1fd89c);for(const _0x324368 of _0x2abcdf)K(_0x3f58b0,_0x324368);_0x2abcdf['on']('change',(_0x3afbe8,_0xac2e0d)=>{for(const _0xa5c37f of _0xac2e0d['removed'])_(_0x3f58b0,_0xa5c37f);for(const _0x4dc7ae of Array['from'](_0xac2e0d['added'])['reverse']())K(_0x3f58b0,_0x4dc7ae);}),_0x3f58b0['keystrokes']['set']('enter',(_0x1d7568,_0x296bbc)=>{_0x1fd89c===_0x1d7568['target']&&(_0x3f58b0['focusCycler']['focusFirst'](),_0x296bbc());},{'filter':_0x16a963=>_0x16a963['target']===_0x1fd89c}),_0x3f58b0['keystrokes']['set']('esc',(_0x5f1504,_0x4d3949)=>{_0x1fd89c!==_0x5f1504['target']?_0x3f58b0['focus']():_0x3f58b0['fire']('escape'),_0x4d3949();}),_0x3f58b0['keystrokes']['set']('arrowdown',(_0x5a4776,_0x36502c)=>{_0x1fd89c===_0x5a4776['target']&&(_0x3f58b0['fire']('arrowdown'),_0x36502c());}),_0x3f58b0['keystrokes']['set']('arrowup',(_0x122dbe,_0x489a19)=>{_0x1fd89c===_0x122dbe['target']&&(_0x3f58b0['fire']('arrowup'),_0x489a19());});}function K(_0x2d50a6,_0x206660){_0x206660['isRendered']&&(_0x2d50a6['focusTracker']['add'](_0x206660['element']),_0x2d50a6['keystrokes']['listenTo'](_0x206660['element']),_0x499f58(_0x206660)&&function(_0x51329d,_0x113544){const _0xdcfc3d=_0x51329d['actions'],_0x1f411f=_0x113544['actions'];for(const _0x5c5aed of Object['keys'](_0xdcfc3d))if(_0x5c5aed in _0x1f411f&&_0xdcfc3d[_0x5c5aed]!==_0x1f411f[_0x5c5aed])return!0x1;return!0x0;}(_0x2d50a6['focusCycler'],_0x206660['focusCycler'])&&_0x2d50a6['focusCycler']['chain'](_0x206660['focusCycler']));}function _(_0x57fdb6,_0x5acd44){_0x57fdb6['focusTracker']['remove'](_0x5acd44['element']),_0x57fdb6['keystrokes']['stopListening'](_0x5acd44['element']),_0x499f58(_0x5acd44)&&_0x57fdb6['focusCycler']['unchain'](_0x5acd44['focusCycler']);}export{H as AriaDescriptionView,c as ConfirmMixin,J as FOCUS_ANNOTATION_KEYSTROKE,U as LateFocusButtonView,Y as LateFocusDropdownButtonView,n as Permissions,F as UserView,u as Users,R as getAllMarkersDomElementsSorted,E as getDateTimeFormatter,A as getMarkerDomElement,j as hashObject,C as sanitizeEditorConfig,T as setupThreadKeyboardNavigation,z as surroundingMarkersDetector,Z as trimHtml};